From 8a38c2a88748d0a1e838c03ec37395ff77fde74d Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Tue, 10 Aug 2021 17:48:55 +0200 Subject: [PATCH] Using C declaration format for types in logs, errors, comments and more. --- .../camelot64/kickc/model/Initializers.java | 6 +- .../kickc/model/operators/OperatorTypeId.java | 10 +- .../kickc/model/statements/StatementCall.java | 2 +- .../camelot64/kickc/model/symbols/Label.java | 2 +- .../kickc/model/symbols/Procedure.java | 29 +- .../camelot64/kickc/model/symbols/Scope.java | 41 +- .../kickc/model/symbols/Variable.java | 15 - .../kickc/model/types/SymbolType.java | 28 +- .../model/types/SymbolTypeBlockScope.java | 11 +- .../kickc/model/types/SymbolTypeEnum.java | 15 +- .../kickc/model/types/SymbolTypeInteger.java | 2 + .../model/types/SymbolTypeIntegerAuto.java | 16 +- .../model/types/SymbolTypeIntegerFixed.java | 18 +- .../kickc/model/types/SymbolTypeNamed.java | 28 +- .../kickc/model/types/SymbolTypePointer.java | 26 +- .../model/types/SymbolTypeProcedure.java | 25 +- .../kickc/model/types/SymbolTypeProgram.java | 11 +- .../kickc/model/types/SymbolTypeStruct.java | 24 +- .../model/types/SymbolTypeTypeDefScope.java | 11 +- .../kickc/model/values/CastValue.java | 2 +- .../kickc/model/values/ConstantDouble.java | 2 +- .../kickc/model/values/ConstantPointer.java | 2 +- .../kickc/model/values/MemcpyValue.java | 2 +- .../kickc/model/values/MemsetValue.java | 2 +- .../kickc/model/values/StackIdxValue.java | 2 +- .../kickc/model/values/StackPullValue.java | 2 +- .../kickc/model/values/StackPushValue.java | 2 +- .../Pass0GenerateStatementSequence.java | 9 +- .../kickc/passes/Pass1StructTypeSizeFix.java | 4 +- .../kickc/passes/Pass4CodeGeneration.java | 77 +- .../passes/PassNAssertStructMembers.java | 4 +- .../kickc/passes/PassNAssertTypeDeref.java | 2 +- .../kickc/passes/PassNAssertTypeMatch.java | 8 +- .../kickc/passes/PassNTypeInference.java | 2 +- .../kickc/passes/utils/SizeOfConstants.java | 9 +- .../kickc/test/TestProgramsFast.java | 4 +- .../camelot64/kickc/test/testTypeCDecl.java | 19 + src/test/ref/address-0.log | 26 +- src/test/ref/address-0.sym | 4 +- src/test/ref/address-1.log | 18 +- src/test/ref/address-1.sym | 4 +- src/test/ref/address-2.log | 26 +- src/test/ref/address-2.sym | 4 +- src/test/ref/address-3.log | 18 +- src/test/ref/address-3.sym | 4 +- src/test/ref/address-4.log | 48 +- src/test/ref/address-4.sym | 10 +- src/test/ref/address-5.asm | 2 +- src/test/ref/address-5.cfg | 10 +- src/test/ref/address-5.log | 66 +- src/test/ref/address-5.sym | 8 +- src/test/ref/address-6.asm | 2 +- src/test/ref/address-6.cfg | 10 +- src/test/ref/address-6.log | 66 +- src/test/ref/address-6.sym | 8 +- src/test/ref/address-8.log | 22 +- src/test/ref/address-8.sym | 4 +- src/test/ref/address-9.log | 40 +- src/test/ref/address-9.sym | 4 +- src/test/ref/address-of-0.log | 36 +- src/test/ref/address-of-0.sym | 10 +- src/test/ref/address-of-1.asm | 2 +- src/test/ref/address-of-1.cfg | 8 +- src/test/ref/address-of-1.log | 106 +- src/test/ref/address-of-1.sym | 18 +- src/test/ref/address-of-2.asm | 2 + src/test/ref/address-of-2.cfg | 10 +- src/test/ref/address-of-2.log | 140 +- src/test/ref/address-of-2.sym | 24 +- src/test/ref/address-of-3.asm | 8 +- src/test/ref/address-of-3.cfg | 10 +- src/test/ref/address-of-3.log | 212 +- src/test/ref/address-of-3.sym | 30 +- .../ref/address-with-expression-value.log | 28 +- .../ref/address-with-expression-value.sym | 8 +- src/test/ref/array-16bit-init.cfg | 2 +- src/test/ref/array-16bit-init.log | 68 +- src/test/ref/array-16bit-init.sym | 12 +- src/test/ref/array-16bit-lookup.asm | 2 +- src/test/ref/array-16bit-lookup.cfg | 6 +- src/test/ref/array-16bit-lookup.log | 178 +- src/test/ref/array-16bit-lookup.sym | 34 +- src/test/ref/array-length-symbolic-min.log | 36 +- src/test/ref/array-length-symbolic-min.sym | 10 +- src/test/ref/array-length-symbolic.log | 112 +- src/test/ref/array-length-symbolic.sym | 28 +- src/test/ref/arrays-init-kasm-0.log | 20 +- src/test/ref/arrays-init-kasm-0.sym | 4 +- src/test/ref/arrays-init-kasm-1.log | 22 +- src/test/ref/arrays-init-kasm-1.sym | 4 +- src/test/ref/arrays-init-short.log | 74 +- src/test/ref/arrays-init-short.sym | 18 +- src/test/ref/arrays-init.log | 42 +- src/test/ref/arrays-init.sym | 8 +- src/test/ref/asm-culling-jmp.cfg | 2 +- src/test/ref/asm-culling-jmp.log | 14 +- src/test/ref/asm-mnemonic-names.asm | 1 + src/test/ref/asm-mnemonic-names.cfg | 4 +- src/test/ref/asm-mnemonic-names.log | 44 +- src/test/ref/asm-mnemonic-names.sym | 8 +- src/test/ref/asm-uses-0.log | 10 +- src/test/ref/asm-uses-0.sym | 2 +- src/test/ref/assignment-chained.log | 44 +- src/test/ref/assignment-chained.sym | 6 +- src/test/ref/assignment-compound.asm | 2 +- src/test/ref/assignment-compound.cfg | 24 +- src/test/ref/assignment-compound.log | 368 +- src/test/ref/assignment-compound.sym | 28 +- src/test/ref/atarixl-md5b.asm | 2 +- src/test/ref/atarixl-md5b.cfg | 14 +- src/test/ref/atarixl-md5b.log | 524 +-- src/test/ref/atarixl-md5b.sym | 102 +- src/test/ref/bgblack.log | 12 +- src/test/ref/bgblack.sym | 4 +- src/test/ref/bitmap-circle-2.asm | 6 +- src/test/ref/bitmap-circle-2.cfg | 32 +- src/test/ref/bitmap-circle-2.log | 950 ++-- src/test/ref/bitmap-circle-2.sym | 170 +- src/test/ref/bitmap-circle.asm | 5 +- src/test/ref/bitmap-circle.cfg | 34 +- src/test/ref/bitmap-circle.log | 894 ++-- src/test/ref/bitmap-circle.sym | 160 +- src/test/ref/bitmap-line-anim-1.asm | 12 +- src/test/ref/bitmap-line-anim-1.cfg | 60 +- src/test/ref/bitmap-line-anim-1.log | 1770 +++---- src/test/ref/bitmap-line-anim-1.sym | 282 +- src/test/ref/bitmap-line-anim-2.asm | 12 +- src/test/ref/bitmap-line-anim-2.cfg | 58 +- src/test/ref/bitmap-line-anim-2.log | 1754 +++---- src/test/ref/bitmap-line-anim-2.sym | 280 +- src/test/ref/bitmap-plot-0.asm | 6 +- src/test/ref/bitmap-plot-0.cfg | 34 +- src/test/ref/bitmap-plot-0.log | 1218 ++--- src/test/ref/bitmap-plot-0.sym | 196 +- src/test/ref/bitmap-plot-3.asm | 12 +- src/test/ref/bitmap-plot-3.cfg | 66 +- src/test/ref/bitmap-plot-3.log | 1976 ++++---- src/test/ref/bitmap-plot-3.sym | 310 +- src/test/ref/bitmap-plotter.asm | 2 +- src/test/ref/bitmap-plotter.cfg | 18 +- src/test/ref/bitmap-plotter.log | 648 +-- src/test/ref/bitmap-plotter.sym | 128 +- src/test/ref/bitwise-not-1.log | 14 +- src/test/ref/bitwise-not-1.sym | 4 +- src/test/ref/bitwise-not.log | 38 +- src/test/ref/bitwise-not.sym | 10 +- src/test/ref/block-error-1.log | 76 +- src/test/ref/block-error-1.sym | 14 +- src/test/ref/block-error-2.log | 66 +- src/test/ref/block-error-2.sym | 14 +- src/test/ref/bool-const.log | 96 +- src/test/ref/bool-const.sym | 2 +- src/test/ref/bool-function.asm | 2 +- src/test/ref/bool-function.cfg | 4 +- src/test/ref/bool-function.log | 128 +- src/test/ref/bool-function.sym | 28 +- src/test/ref/bool-ifs-min.log | 58 +- src/test/ref/bool-ifs-min.sym | 10 +- src/test/ref/bool-ifs.log | 280 +- src/test/ref/bool-ifs.sym | 40 +- src/test/ref/bool-not-operator-1.log | 76 +- src/test/ref/bool-not-operator-1.sym | 14 +- src/test/ref/bool-not-operator-2.log | 82 +- src/test/ref/bool-not-operator-2.sym | 16 +- src/test/ref/bool-nullpointer-exception.log | 10 +- src/test/ref/bool-nullpointer-exception.sym | 2 +- src/test/ref/bool-pointer.cfg | 10 +- src/test/ref/bool-pointer.log | 82 +- src/test/ref/bool-pointer.sym | 2 +- src/test/ref/bool-vars.log | 246 +- src/test/ref/bool-vars.sym | 44 +- src/test/ref/bresenham.log | 232 +- src/test/ref/bresenham.sym | 54 +- src/test/ref/bresenhamarr.log | 232 +- src/test/ref/bresenhamarr.sym | 52 +- src/test/ref/c-types.asm | 16 +- src/test/ref/c-types.cfg | 124 +- src/test/ref/c-types.log | 1688 +++---- src/test/ref/c-types.sym | 184 +- src/test/ref/c64dtv-8bppcharstretch.asm | 2 +- src/test/ref/c64dtv-8bppcharstretch.cfg | 22 +- src/test/ref/c64dtv-8bppcharstretch.log | 940 ++-- src/test/ref/c64dtv-8bppcharstretch.sym | 198 +- src/test/ref/c64dtv-8bppchunkystretch.asm | 2 +- src/test/ref/c64dtv-8bppchunkystretch.cfg | 24 +- src/test/ref/c64dtv-8bppchunkystretch.log | 650 +-- src/test/ref/c64dtv-8bppchunkystretch.sym | 128 +- src/test/ref/c64dtv-blitter-box.log | 286 +- src/test/ref/c64dtv-blitter-box.sym | 90 +- src/test/ref/c64dtv-blittermin.log | 310 +- src/test/ref/c64dtv-blittermin.sym | 98 +- src/test/ref/c64dtv-color.log | 110 +- src/test/ref/c64dtv-color.sym | 32 +- src/test/ref/call-parameter-autocast.asm | 2 +- src/test/ref/call-parameter-autocast.cfg | 8 +- src/test/ref/call-parameter-autocast.log | 142 +- src/test/ref/call-parameter-autocast.sym | 18 +- src/test/ref/callconstparam.asm | 2 +- src/test/ref/callconstparam.cfg | 8 +- src/test/ref/callconstparam.log | 172 +- src/test/ref/callconstparam.sym | 24 +- src/test/ref/cast-deref.cfg | 2 +- src/test/ref/cast-deref.log | 48 +- src/test/ref/cast-deref.sym | 10 +- src/test/ref/cast-not-needed-2.log | 98 +- src/test/ref/cast-not-needed-2.sym | 16 +- src/test/ref/cast-not-needed-3.log | 94 +- src/test/ref/cast-not-needed-3.sym | 18 +- src/test/ref/cast-not-needed-4.cfg | 4 +- src/test/ref/cast-not-needed-4.log | 86 +- src/test/ref/cast-not-needed-4.sym | 16 +- src/test/ref/cast-not-needed.cfg | 2 +- src/test/ref/cast-not-needed.log | 50 +- src/test/ref/cast-not-needed.sym | 8 +- src/test/ref/cast-precedence-problem.log | 96 +- src/test/ref/cast-precedence-problem.sym | 24 +- src/test/ref/casting-negative.asm | 20 +- src/test/ref/casting-negative.cfg | 90 +- src/test/ref/casting-negative.log | 2620 +++++------ src/test/ref/casting-negative.sym | 316 +- src/test/ref/casting.cfg | 8 +- src/test/ref/casting.log | 262 +- src/test/ref/casting.sym | 46 +- src/test/ref/chargen.log | 216 +- src/test/ref/chargen.sym | 46 +- src/test/ref/chessboard.cfg | 4 +- src/test/ref/chessboard.log | 186 +- src/test/ref/chessboard.sym | 34 +- src/test/ref/chipset-test.cfg | 4 +- src/test/ref/chipset-test.log | 50 +- src/test/ref/chipset-test.sym | 2 +- src/test/ref/cia-timer-cyclecount.asm | 8 +- src/test/ref/cia-timer-cyclecount.cfg | 40 +- src/test/ref/cia-timer-cyclecount.log | 568 +-- src/test/ref/cia-timer-cyclecount.sym | 104 +- src/test/ref/cia-timer-simple.asm | 8 +- src/test/ref/cia-timer-simple.cfg | 40 +- src/test/ref/cia-timer-simple.log | 548 +-- src/test/ref/cia-timer-simple.sym | 96 +- src/test/ref/clobber-a-problem.log | 88 +- src/test/ref/clobber-a-problem.sym | 22 +- src/test/ref/coalesce-assignment.log | 136 +- src/test/ref/coalesce-assignment.sym | 36 +- src/test/ref/code-after-return-1.log | 56 +- src/test/ref/code-after-return-1.sym | 6 +- src/test/ref/code-after-return.log | 12 +- src/test/ref/code-after-return.sym | 2 +- src/test/ref/comma-decl-2.log | 32 +- src/test/ref/comma-decl-2.sym | 8 +- src/test/ref/comma-decl-for.log | 56 +- src/test/ref/comma-decl-for.sym | 14 +- src/test/ref/comma-decl.log | 42 +- src/test/ref/comma-decl.sym | 12 +- src/test/ref/comma-expr-1.log | 26 +- src/test/ref/comma-expr-1.sym | 8 +- src/test/ref/comma-expr-2.log | 26 +- src/test/ref/comma-expr-2.sym | 6 +- src/test/ref/comma-expr-for.log | 56 +- src/test/ref/comma-expr-for.sym | 14 +- src/test/ref/comparison-rewriting-pointer.log | 70 +- src/test/ref/comparison-rewriting-pointer.sym | 16 +- src/test/ref/comparison-rewriting.log | 212 +- src/test/ref/comparison-rewriting.sym | 30 +- src/test/ref/complex-conditional-problem.log | 50 +- src/test/ref/complex-conditional-problem.sym | 10 +- .../ref/complex/ataritempest/ataritempest.log | 48 +- .../ref/complex/ataritempest/ataritempest.sym | 14 +- src/test/ref/complex/includes/includes-1.asm | 2 +- src/test/ref/complex/includes/includes-1.cfg | 6 +- src/test/ref/complex/includes/includes-1.log | 130 +- src/test/ref/complex/includes/includes-1.sym | 24 +- src/test/ref/complex/includes/includes-2.asm | 1 + src/test/ref/complex/includes/includes-2.cfg | 6 +- src/test/ref/complex/includes/includes-2.log | 78 +- src/test/ref/complex/includes/includes-2.sym | 10 +- src/test/ref/complex/includes/includes-3.log | 48 +- src/test/ref/complex/includes/includes-3.sym | 6 +- src/test/ref/complex/xmega65/xmega65.asm | 2 +- src/test/ref/complex/xmega65/xmega65.cfg | 12 +- src/test/ref/complex/xmega65/xmega65.log | 348 +- src/test/ref/complex/xmega65/xmega65.sym | 62 +- src/test/ref/condition-integer-0.log | 150 +- src/test/ref/condition-integer-0.sym | 30 +- src/test/ref/condition-integer-1.log | 154 +- src/test/ref/condition-integer-1.sym | 30 +- src/test/ref/condition-integer-2.log | 178 +- src/test/ref/condition-integer-2.sym | 42 +- src/test/ref/condition-integer-3.log | 86 +- src/test/ref/condition-integer-3.sym | 18 +- src/test/ref/condition-integer-4.log | 170 +- src/test/ref/condition-integer-4.sym | 18 +- src/test/ref/condition-type-mismatch.log | 16 +- src/test/ref/condition-type-mismatch.sym | 2 +- .../ref/consolidate-array-index-problem.log | 56 +- .../ref/consolidate-array-index-problem.sym | 16 +- .../ref/consolidate-constant-problem-2.log | 100 +- .../ref/consolidate-constant-problem-2.sym | 22 +- src/test/ref/consolidate-constant-problem.log | 52 +- src/test/ref/consolidate-constant-problem.sym | 4 +- src/test/ref/const-bool-0.log | 30 +- src/test/ref/const-bool-0.sym | 4 +- src/test/ref/const-condition.log | 12 +- src/test/ref/const-condition.sym | 2 +- src/test/ref/const-declaration.log | 38 +- src/test/ref/const-declaration.sym | 14 +- src/test/ref/const-early-identification.log | 66 +- src/test/ref/const-early-identification.sym | 14 +- src/test/ref/const-identification.asm | 3 +- src/test/ref/const-identification.cfg | 8 +- src/test/ref/const-identification.log | 192 +- src/test/ref/const-identification.sym | 38 +- src/test/ref/const-if-problem.log | 22 +- src/test/ref/const-if-problem.sym | 2 +- src/test/ref/const-int-cast-problem.log | 40 +- src/test/ref/const-int-cast-problem.sym | 10 +- src/test/ref/const-mult-div.log | 24 +- src/test/ref/const-mult-div.sym | 4 +- src/test/ref/const-param.asm | 2 +- src/test/ref/const-param.cfg | 8 +- src/test/ref/const-param.log | 148 +- src/test/ref/const-param.sym | 28 +- src/test/ref/const-parenthesis.log | 24 +- src/test/ref/const-parenthesis.sym | 4 +- src/test/ref/const-pointer.log | 22 +- src/test/ref/const-pointer.sym | 2 +- src/test/ref/const-signed-promotion.log | 74 +- src/test/ref/const-signed-promotion.sym | 12 +- src/test/ref/const-volatile-problem.log | 70 +- src/test/ref/const-volatile-problem.sym | 10 +- src/test/ref/const-word-pointer.log | 52 +- src/test/ref/const-word-pointer.sym | 14 +- src/test/ref/constabsmin.log | 10 +- src/test/ref/constabsmin.sym | 2 +- src/test/ref/constant-string-concat-0.log | 38 +- src/test/ref/constant-string-concat-0.sym | 10 +- src/test/ref/constant-string-concat.log | 36 +- src/test/ref/constant-string-concat.sym | 10 +- src/test/ref/constantmin.log | 84 +- src/test/ref/constantmin.sym | 16 +- src/test/ref/constants.asm | 9 +- src/test/ref/constants.cfg | 58 +- src/test/ref/constants.log | 1210 ++--- src/test/ref/constants.sym | 162 +- src/test/ref/constref-not-literal-problem.asm | 1 + src/test/ref/constref-not-literal-problem.cfg | 6 +- src/test/ref/constref-not-literal-problem.log | 132 +- src/test/ref/constref-not-literal-problem.sym | 22 +- src/test/ref/cordic-atan2-16.asm | 4 +- src/test/ref/cordic-atan2-16.cfg | 16 +- src/test/ref/cordic-atan2-16.log | 1232 ++--- src/test/ref/cordic-atan2-16.sym | 226 +- src/test/ref/cordic-atan2-clear.asm | 5 +- src/test/ref/cordic-atan2-clear.cfg | 20 +- src/test/ref/cordic-atan2-clear.log | 1408 +++--- src/test/ref/cordic-atan2-clear.sym | 256 +- src/test/ref/cordic-atan2.asm | 4 +- src/test/ref/cordic-atan2.cfg | 8 +- src/test/ref/cordic-atan2.log | 934 ++-- src/test/ref/cordic-atan2.sym | 184 +- src/test/ref/cpu-45gs02-addressing-modes.log | 8 +- src/test/ref/cpu-45gs02-addressing-modes.sym | 2 +- src/test/ref/cpu-45gs02.log | 82 +- src/test/ref/cpu-45gs02.sym | 20 +- src/test/ref/cpu-6502.log | 66 +- src/test/ref/cpu-6502.sym | 14 +- src/test/ref/cpu-65c02.log | 34 +- src/test/ref/cpu-65c02.sym | 8 +- src/test/ref/cpu-65ce02-addressing-modes.log | 8 +- src/test/ref/cpu-65ce02-addressing-modes.sym | 2 +- src/test/ref/cpu-65ce02-b.log | 34 +- src/test/ref/cpu-65ce02-b.sym | 8 +- src/test/ref/cpu-65ce02.log | 44 +- src/test/ref/cpu-65ce02.sym | 10 +- src/test/ref/cstyle-decl-function.asm | 2 +- src/test/ref/cstyle-decl-function.cfg | 6 +- src/test/ref/cstyle-decl-function.log | 124 +- src/test/ref/cstyle-decl-function.sym | 24 +- src/test/ref/cstyle-decl-var-multiple.log | 106 +- src/test/ref/cstyle-decl-var-multiple.sym | 22 +- src/test/ref/cstyle-decl-var.log | 40 +- src/test/ref/cstyle-decl-var.sym | 4 +- src/test/ref/danny-joystick-problem.cfg | 4 +- src/test/ref/danny-joystick-problem.log | 52 +- src/test/ref/danny-joystick-problem.sym | 10 +- src/test/ref/declared-memory-var-0.log | 38 +- src/test/ref/declared-memory-var-0.sym | 10 +- src/test/ref/declared-memory-var-1.log | 44 +- src/test/ref/declared-memory-var-1.sym | 12 +- src/test/ref/declared-memory-var-2.log | 40 +- src/test/ref/declared-memory-var-2.sym | 10 +- src/test/ref/declared-memory-var-3.cfg | 4 +- src/test/ref/declared-memory-var-3.log | 78 +- src/test/ref/declared-memory-var-3.sym | 10 +- src/test/ref/declared-memory-var-4.cfg | 6 +- src/test/ref/declared-memory-var-4.log | 150 +- src/test/ref/declared-memory-var-4.sym | 22 +- src/test/ref/declared-memory-var-5.cfg | 4 +- src/test/ref/declared-memory-var-5.log | 56 +- src/test/ref/declared-memory-var-5.sym | 8 +- src/test/ref/declared-memory-var-6.asm | 2 +- src/test/ref/declared-memory-var-6.cfg | 22 +- src/test/ref/declared-memory-var-6.log | 300 +- src/test/ref/declared-memory-var-6.sym | 46 +- src/test/ref/declared-memory-var-7.log | 46 +- src/test/ref/declared-memory-var-7.sym | 10 +- src/test/ref/declared-memory-var-8.log | 46 +- src/test/ref/declared-memory-var-8.sym | 10 +- src/test/ref/declared-ssa-var-0.log | 236 +- src/test/ref/declared-ssa-var-0.sym | 48 +- src/test/ref/default-font.asm | 1 + src/test/ref/default-font.cfg | 6 +- src/test/ref/default-font.log | 294 +- src/test/ref/default-font.sym | 58 +- src/test/ref/deref-to-derefidx-2.asm | 2 +- src/test/ref/deref-to-derefidx-2.cfg | 8 +- src/test/ref/deref-to-derefidx-2.log | 144 +- src/test/ref/deref-to-derefidx-2.sym | 20 +- src/test/ref/deref-to-derefidx.asm | 2 +- src/test/ref/deref-to-derefidx.cfg | 6 +- src/test/ref/deref-to-derefidx.log | 116 +- src/test/ref/deref-to-derefidx.sym | 18 +- src/test/ref/derefidx-word-0.log | 40 +- src/test/ref/derefidx-word-0.sym | 10 +- src/test/ref/derefidx-word-1.cfg | 2 +- src/test/ref/derefidx-word-1.log | 28 +- src/test/ref/derefidx-word-1.sym | 2 +- src/test/ref/derefidx-word-2.cfg | 2 +- src/test/ref/derefidx-word-2.log | 54 +- src/test/ref/derefidx-word-2.sym | 8 +- src/test/ref/divide-2s.cfg | 4 +- src/test/ref/divide-2s.log | 130 +- src/test/ref/divide-2s.sym | 20 +- src/test/ref/double-assignment.log | 36 +- src/test/ref/double-assignment.sym | 8 +- src/test/ref/double-import.log | 12 +- src/test/ref/double-import.sym | 4 +- src/test/ref/double-indexing-arrays.log | 160 +- src/test/ref/double-indexing-arrays.sym | 16 +- src/test/ref/duplicate-loop-problem.log | 60 +- src/test/ref/duplicate-loop-problem.sym | 8 +- src/test/ref/dword.cfg | 2 +- src/test/ref/dword.log | 72 +- src/test/ref/dword.sym | 18 +- src/test/ref/empty-function-0.log | 54 +- src/test/ref/empty-function-0.sym | 6 +- src/test/ref/empty-function-1.log | 14 +- src/test/ref/empty-function-1.sym | 2 +- src/test/ref/emptyblock-error.log | 32 +- src/test/ref/emptyblock-error.sym | 2 +- src/test/ref/encoding-atascii.log | 20 +- src/test/ref/encoding-atascii.sym | 4 +- src/test/ref/encoding-literal-char.log | 76 +- src/test/ref/encoding-literal-char.sym | 20 +- src/test/ref/enum-0.log | 22 +- src/test/ref/enum-0.sym | 8 +- src/test/ref/enum-1.log | 28 +- src/test/ref/enum-1.sym | 10 +- src/test/ref/enum-2.log | 26 +- src/test/ref/enum-2.sym | 10 +- src/test/ref/enum-3.log | 32 +- src/test/ref/enum-3.sym | 10 +- src/test/ref/enum-4.log | 14 +- src/test/ref/enum-4.sym | 4 +- src/test/ref/enum-5.log | 34 +- src/test/ref/enum-5.sym | 8 +- src/test/ref/enum-6.log | 30 +- src/test/ref/enum-6.sym | 8 +- src/test/ref/enum-7.log | 30 +- src/test/ref/enum-7.sym | 10 +- src/test/ref/enum-8.log | 24 +- src/test/ref/enum-8.sym | 6 +- src/test/ref/euclid-3.asm | 9 +- src/test/ref/euclid-3.cfg | 46 +- src/test/ref/euclid-3.log | 934 ++-- src/test/ref/euclid-3.sym | 126 +- src/test/ref/euclid-problem-2.asm | 2 +- src/test/ref/euclid-problem-2.cfg | 10 +- src/test/ref/euclid-problem-2.log | 266 +- src/test/ref/euclid-problem-2.sym | 40 +- src/test/ref/euclid-problem.log | 72 +- src/test/ref/euclid-problem.sym | 14 +- .../ref/examples/atari2600/atari2600-demo.cfg | 50 +- .../ref/examples/atari2600/atari2600-demo.log | 596 +-- .../ref/examples/atari2600/atari2600-demo.sym | 46 +- .../examples/atari2600/atari2600-sprites.cfg | 50 +- .../examples/atari2600/atari2600-sprites.log | 832 ++-- .../examples/atari2600/atari2600-sprites.sym | 70 +- .../ref/examples/atarixl/atarixl-hello.log | 60 +- .../ref/examples/atarixl/atarixl-hello.sym | 20 +- .../examples/atarixl/atarixl-rasterbars.cfg | 20 +- .../examples/atarixl/atarixl-rasterbars.log | 328 +- .../examples/atarixl/atarixl-rasterbars.sym | 56 +- src/test/ref/examples/c64/3d/perspective.asm | 11 +- src/test/ref/examples/c64/3d/perspective.cfg | 74 +- src/test/ref/examples/c64/3d/perspective.log | 1302 +++--- src/test/ref/examples/c64/3d/perspective.sym | 178 +- .../c64/bresenham/bitmap-bresenham.asm | 12 +- .../c64/bresenham/bitmap-bresenham.cfg | 68 +- .../c64/bresenham/bitmap-bresenham.log | 1840 ++++---- .../c64/bresenham/bitmap-bresenham.sym | 298 +- .../c64/crunching/test-byteboozer.asm | 2 +- .../c64/crunching/test-byteboozer.cfg | 6 +- .../c64/crunching/test-byteboozer.log | 166 +- .../c64/crunching/test-byteboozer.sym | 34 +- .../examples/c64/crunching/test-exomizer.cfg | 2 +- .../examples/c64/crunching/test-exomizer.log | 138 +- .../examples/c64/crunching/test-exomizer.sym | 30 +- .../c64/fastmultiply/fastmultiply8.asm | 9 +- .../c64/fastmultiply/fastmultiply8.cfg | 46 +- .../c64/fastmultiply/fastmultiply8.log | 974 ++-- .../c64/fastmultiply/fastmultiply8.sym | 184 +- src/test/ref/examples/c64/fire/fire.asm | 4 +- src/test/ref/examples/c64/fire/fire.cfg | 42 +- src/test/ref/examples/c64/fire/fire.log | 1256 ++--- src/test/ref/examples/c64/fire/fire.sym | 190 +- .../ref/examples/c64/font-2x2/font-2x2.asm | 8 +- .../ref/examples/c64/font-2x2/font-2x2.cfg | 30 +- .../ref/examples/c64/font-2x2/font-2x2.log | 1670 +++---- .../ref/examples/c64/font-2x2/font-2x2.sym | 306 +- .../ref/examples/c64/irq/irq-hyperscreen.cfg | 28 +- .../ref/examples/c64/irq/irq-hyperscreen.log | 260 +- .../ref/examples/c64/irq/irq-hyperscreen.sym | 38 +- .../examples/c64/kernalload/kernalload.asm | 11 +- .../examples/c64/kernalload/kernalload.cfg | 30 +- .../examples/c64/kernalload/kernalload.log | 544 +-- .../examples/c64/kernalload/kernalload.sym | 104 +- .../ref/examples/c64/krillload/krillload.asm | 1 + .../ref/examples/c64/krillload/krillload.cfg | 14 +- .../ref/examples/c64/krillload/krillload.log | 368 +- .../ref/examples/c64/krillload/krillload.sym | 78 +- src/test/ref/examples/c64/linking/linking.asm | 2 +- src/test/ref/examples/c64/linking/linking.cfg | 4 +- src/test/ref/examples/c64/linking/linking.log | 144 +- src/test/ref/examples/c64/linking/linking.sym | 32 +- .../c64/multiplexer/simple-multiplexer.asm | 1 + .../c64/multiplexer/simple-multiplexer.cfg | 38 +- .../c64/multiplexer/simple-multiplexer.log | 1006 ++-- .../c64/multiplexer/simple-multiplexer.sym | 182 +- src/test/ref/examples/c64/music/music.cfg | 6 +- src/test/ref/examples/c64/music/music.log | 64 +- src/test/ref/examples/c64/music/music.sym | 12 +- src/test/ref/examples/c64/music/music_irq.cfg | 14 +- src/test/ref/examples/c64/music/music_irq.log | 142 +- src/test/ref/examples/c64/music/music_irq.sym | 28 +- .../examples/c64/nmisamples/nmisamples.cfg | 22 +- .../examples/c64/nmisamples/nmisamples.log | 214 +- .../examples/c64/nmisamples/nmisamples.sym | 34 +- .../examples/c64/rasterbars/raster-bars.cfg | 10 +- .../examples/c64/rasterbars/raster-bars.log | 132 +- .../examples/c64/rasterbars/raster-bars.sym | 24 +- src/test/ref/examples/c64/scroll/scroll.asm | 1 + src/test/ref/examples/c64/scroll/scroll.cfg | 14 +- src/test/ref/examples/c64/scroll/scroll.log | 340 +- src/test/ref/examples/c64/scroll/scroll.sym | 60 +- .../ref/examples/c64/scrollbig/scrollbig.asm | 1 + .../ref/examples/c64/scrollbig/scrollbig.cfg | 26 +- .../ref/examples/c64/scrollbig/scrollbig.log | 1058 ++--- .../ref/examples/c64/scrollbig/scrollbig.sym | 118 +- .../ref/examples/c64/showlogo/showlogo.asm | 2 +- .../ref/examples/c64/showlogo/showlogo.cfg | 20 +- .../ref/examples/c64/showlogo/showlogo.log | 482 +- .../ref/examples/c64/showlogo/showlogo.sym | 70 +- src/test/ref/examples/c64/zpcode/zpcode.log | 120 +- src/test/ref/examples/c64/zpcode/zpcode.sym | 26 +- .../ref/examples/cx16/cx16-rasterbars.asm | 7 +- .../ref/examples/cx16/cx16-rasterbars.cfg | 16 +- .../ref/examples/cx16/cx16-rasterbars.log | 606 +-- .../ref/examples/cx16/cx16-rasterbars.sym | 112 +- .../ref/examples/helloworld/helloworld.asm | 10 +- .../ref/examples/helloworld/helloworld.cfg | 52 +- .../ref/examples/helloworld/helloworld.log | 960 ++-- .../ref/examples/helloworld/helloworld.sym | 136 +- .../mega65/32bit-addressing-mega65.log | 22 +- .../mega65/32bit-addressing-mega65.sym | 4 +- src/test/ref/examples/mega65/banked-music.asm | 4 +- src/test/ref/examples/mega65/banked-music.cfg | 72 +- src/test/ref/examples/mega65/banked-music.log | 956 ++-- src/test/ref/examples/mega65/banked-music.sym | 172 +- src/test/ref/examples/mega65/dma-test.asm | 1 + src/test/ref/examples/mega65/dma-test.cfg | 16 +- src/test/ref/examples/mega65/dma-test.log | 244 +- src/test/ref/examples/mega65/dma-test.sym | 32 +- src/test/ref/examples/mega65/dma-test2.asm | 2 + src/test/ref/examples/mega65/dma-test2.cfg | 28 +- src/test/ref/examples/mega65/dma-test2.log | 392 +- src/test/ref/examples/mega65/dma-test2.sym | 56 +- src/test/ref/examples/mega65/dma-test3.asm | 2 + src/test/ref/examples/mega65/dma-test3.cfg | 32 +- src/test/ref/examples/mega65/dma-test3.log | 452 +- src/test/ref/examples/mega65/dma-test3.sym | 68 +- src/test/ref/examples/mega65/dma-test4.asm | 2 + src/test/ref/examples/mega65/dma-test4.cfg | 32 +- src/test/ref/examples/mega65/dma-test4.log | 574 +-- src/test/ref/examples/mega65/dma-test4.sym | 90 +- src/test/ref/examples/mega65/dma-test5.asm | 2 + src/test/ref/examples/mega65/dma-test5.cfg | 28 +- src/test/ref/examples/mega65/dma-test5.log | 382 +- src/test/ref/examples/mega65/dma-test5.sym | 56 +- src/test/ref/examples/mega65/dma-test6.asm | 2 + src/test/ref/examples/mega65/dma-test6.cfg | 30 +- src/test/ref/examples/mega65/dma-test6.log | 504 +- src/test/ref/examples/mega65/dma-test6.sym | 78 +- src/test/ref/examples/mega65/dypp65.asm | 8 +- src/test/ref/examples/mega65/dypp65.cfg | 116 +- src/test/ref/examples/mega65/dypp65.log | 1650 +++---- src/test/ref/examples/mega65/dypp65.sym | 206 +- src/test/ref/examples/mega65/hello-mega65.log | 46 +- src/test/ref/examples/mega65/hello-mega65.sym | 12 +- .../ref/examples/mega65/helloworld-mega65.asm | 11 +- .../ref/examples/mega65/helloworld-mega65.cfg | 56 +- .../ref/examples/mega65/helloworld-mega65.log | 1094 ++--- .../ref/examples/mega65/helloworld-mega65.sym | 158 +- .../ref/examples/mega65/memorymap-test.asm | 6 +- .../ref/examples/mega65/memorymap-test.cfg | 20 +- .../ref/examples/mega65/memorymap-test.log | 584 +-- .../ref/examples/mega65/memorymap-test.sym | 118 +- src/test/ref/examples/mega65/raster65.asm | 5 +- src/test/ref/examples/mega65/raster65.cfg | 56 +- src/test/ref/examples/mega65/raster65.log | 1584 +++---- src/test/ref/examples/mega65/raster65.sym | 304 +- src/test/ref/examples/mega65/test-vic4.cfg | 4 +- src/test/ref/examples/mega65/test-vic4.log | 124 +- src/test/ref/examples/mega65/test-vic4.sym | 28 +- src/test/ref/examples/nes/nes-dxycp.asm | 7 +- src/test/ref/examples/nes/nes-dxycp.cfg | 74 +- src/test/ref/examples/nes/nes-dxycp.log | 1720 +++---- src/test/ref/examples/nes/nes-dxycp.sym | 220 +- .../ref/examples/plus4/plus4-randomwalk.asm | 2 +- .../ref/examples/plus4/plus4-randomwalk.cfg | 26 +- .../ref/examples/plus4/plus4-randomwalk.log | 828 ++-- .../ref/examples/plus4/plus4-randomwalk.sym | 128 +- src/test/ref/examples/rom/rom.asm | 6 +- src/test/ref/examples/rom/rom.cfg | 32 +- src/test/ref/examples/rom/rom.log | 420 +- src/test/ref/examples/rom/rom.sym | 68 +- src/test/ref/fibmem.log | 60 +- src/test/ref/fibmem.sym | 10 +- src/test/ref/fill-square.cfg | 2 +- src/test/ref/fill-square.log | 118 +- src/test/ref/fill-square.sym | 28 +- src/test/ref/fillscreen-1.log | 48 +- src/test/ref/fillscreen-1.sym | 8 +- src/test/ref/fillscreen-2.log | 40 +- src/test/ref/fillscreen-2.sym | 10 +- src/test/ref/fillscreen-3.log | 38 +- src/test/ref/fillscreen-3.sym | 8 +- src/test/ref/flipper-rex2.log | 392 +- src/test/ref/flipper-rex2.sym | 82 +- src/test/ref/font-hex-show.asm | 2 +- src/test/ref/font-hex-show.cfg | 4 +- src/test/ref/font-hex-show.log | 406 +- src/test/ref/font-hex-show.sym | 76 +- src/test/ref/for-empty-increment.log | 34 +- src/test/ref/for-empty-increment.sym | 8 +- src/test/ref/for-empty-init.log | 34 +- src/test/ref/for-empty-init.sym | 8 +- src/test/ref/for-ever-2.log | 28 +- src/test/ref/for-ever-2.sym | 8 +- src/test/ref/for-ever.log | 8 +- src/test/ref/for-ever.sym | 2 +- src/test/ref/for-two-vars.log | 58 +- src/test/ref/for-two-vars.sym | 14 +- src/test/ref/forced-zeropage.cfg | 8 +- src/test/ref/forced-zeropage.log | 76 +- src/test/ref/forced-zeropage.sym | 6 +- src/test/ref/forclassicmin.log | 36 +- src/test/ref/forclassicmin.sym | 8 +- src/test/ref/forincrementassign.log | 42 +- src/test/ref/forincrementassign.sym | 8 +- src/test/ref/forrangedwords.log | 88 +- src/test/ref/forrangedwords.sym | 22 +- src/test/ref/forrangemin.log | 64 +- src/test/ref/forrangemin.sym | 16 +- src/test/ref/forrangesymbolic.log | 40 +- src/test/ref/forrangesymbolic.sym | 8 +- src/test/ref/fragment-synth.asm | 2 +- src/test/ref/fragment-synth.cfg | 12 +- src/test/ref/fragment-synth.log | 216 +- src/test/ref/fragment-synth.sym | 34 +- src/test/ref/fragment-variations.asm | 12 +- src/test/ref/fragment-variations.cfg | 10 +- src/test/ref/fragment-variations.log | 220 +- src/test/ref/fragment-variations.sym | 32 +- src/test/ref/function-pointer-advanced-1.asm | 20 +- src/test/ref/function-pointer-advanced-1.cfg | 86 +- src/test/ref/function-pointer-advanced-1.log | 986 ++-- src/test/ref/function-pointer-advanced-1.sym | 154 +- src/test/ref/function-pointer-noarg-2.log | 52 +- src/test/ref/function-pointer-noarg-2.sym | 8 +- src/test/ref/function-pointer-noarg-3.cfg | 2 +- src/test/ref/function-pointer-noarg-3.log | 78 +- src/test/ref/function-pointer-noarg-3.sym | 16 +- .../ref/function-pointer-noarg-call-10.asm | 4 +- .../ref/function-pointer-noarg-call-10.cfg | 14 +- .../ref/function-pointer-noarg-call-10.log | 136 +- .../ref/function-pointer-noarg-call-10.sym | 32 +- .../ref/function-pointer-noarg-call-11.log | 42 +- .../ref/function-pointer-noarg-call-11.sym | 6 +- .../ref/function-pointer-noarg-call-12.log | 66 +- .../ref/function-pointer-noarg-call-12.sym | 14 +- .../ref/function-pointer-noarg-call-13.asm | 2 +- .../ref/function-pointer-noarg-call-13.cfg | 10 +- .../ref/function-pointer-noarg-call-13.log | 70 +- .../ref/function-pointer-noarg-call-13.sym | 6 +- .../ref/function-pointer-noarg-call-14.asm | 12 +- .../ref/function-pointer-noarg-call-14.cfg | 60 +- .../ref/function-pointer-noarg-call-14.log | 900 ++-- .../ref/function-pointer-noarg-call-14.sym | 146 +- .../ref/function-pointer-noarg-call-2.log | 76 +- .../ref/function-pointer-noarg-call-2.sym | 16 +- .../ref/function-pointer-noarg-call-3.asm | 2 +- .../ref/function-pointer-noarg-call-3.cfg | 4 +- .../ref/function-pointer-noarg-call-3.log | 110 +- .../ref/function-pointer-noarg-call-3.sym | 26 +- .../ref/function-pointer-noarg-call-4.log | 52 +- .../ref/function-pointer-noarg-call-4.sym | 8 +- .../ref/function-pointer-noarg-call-5.log | 72 +- .../ref/function-pointer-noarg-call-5.sym | 20 +- .../ref/function-pointer-noarg-call-6.cfg | 4 +- .../ref/function-pointer-noarg-call-6.log | 92 +- .../ref/function-pointer-noarg-call-6.sym | 12 +- .../ref/function-pointer-noarg-call-7.asm | 1 + .../ref/function-pointer-noarg-call-7.cfg | 6 +- .../ref/function-pointer-noarg-call-7.log | 94 +- .../ref/function-pointer-noarg-call-7.sym | 22 +- .../ref/function-pointer-noarg-call-8.asm | 1 + .../ref/function-pointer-noarg-call-8.cfg | 10 +- .../ref/function-pointer-noarg-call-8.log | 118 +- .../ref/function-pointer-noarg-call-8.sym | 26 +- .../ref/function-pointer-noarg-call-9.log | 14 +- .../ref/function-pointer-noarg-call-9.sym | 4 +- src/test/ref/function-pointer-noarg-call.log | 8 +- src/test/ref/function-pointer-noarg-call.sym | 2 +- src/test/ref/function-pointer-noarg.cfg | 8 +- src/test/ref/function-pointer-noarg.log | 124 +- src/test/ref/function-pointer-noarg.sym | 8 +- src/test/ref/function-pointer-param-0.asm | 6 +- src/test/ref/function-pointer-param-0.cfg | 16 +- src/test/ref/function-pointer-param-0.log | 272 +- src/test/ref/function-pointer-param-0.sym | 42 +- .../ref/function-pointer-param-workaround.log | 188 +- .../ref/function-pointer-param-workaround.sym | 54 +- src/test/ref/function-pointer-problem-1.asm | 2 +- src/test/ref/function-pointer-problem-1.cfg | 6 +- src/test/ref/function-pointer-problem-1.log | 50 +- src/test/ref/function-pointer-problem-1.sym | 6 +- src/test/ref/function-pointer-return-1.cfg | 10 +- src/test/ref/function-pointer-return-1.log | 214 +- src/test/ref/function-pointer-return-1.sym | 40 +- src/test/ref/function-pointer-return-2.asm | 2 +- src/test/ref/function-pointer-return-2.cfg | 12 +- src/test/ref/function-pointer-return-2.log | 154 +- src/test/ref/function-pointer-return-2.sym | 30 +- src/test/ref/function-pointer-return-3.asm | 6 +- src/test/ref/function-pointer-return-3.cfg | 14 +- src/test/ref/function-pointer-return-3.log | 248 +- src/test/ref/function-pointer-return-3.sym | 44 +- src/test/ref/function-pointer-return.cfg | 10 +- src/test/ref/function-pointer-return.log | 202 +- src/test/ref/function-pointer-return.sym | 36 +- src/test/ref/gfxbank.cfg | 4 +- src/test/ref/gfxbank.log | 106 +- src/test/ref/gfxbank.sym | 12 +- src/test/ref/global-label-problem.asm | 2 +- src/test/ref/global-label-problem.cfg | 12 +- src/test/ref/global-label-problem.log | 190 +- src/test/ref/global-label-problem.sym | 26 +- src/test/ref/global-pc-multiple.log | 28 +- src/test/ref/global-pc-multiple.sym | 4 +- src/test/ref/global-pc.log | 26 +- src/test/ref/global-pc.sym | 8 +- src/test/ref/halfscii.log | 554 +-- src/test/ref/halfscii.sym | 108 +- src/test/ref/helloworld0.log | 38 +- src/test/ref/helloworld0.sym | 10 +- src/test/ref/helloworld2-inline.log | 176 +- src/test/ref/helloworld2-inline.sym | 38 +- src/test/ref/helloworld2.asm | 2 +- src/test/ref/helloworld2.cfg | 6 +- src/test/ref/helloworld2.log | 134 +- src/test/ref/helloworld2.sym | 24 +- src/test/ref/hex2dec-ptrptr.asm | 4 +- src/test/ref/hex2dec-ptrptr.cfg | 34 +- src/test/ref/hex2dec-ptrptr.log | 522 +-- src/test/ref/hex2dec-ptrptr.sym | 66 +- src/test/ref/hex2dec.asm | 6 +- src/test/ref/hex2dec.cfg | 46 +- src/test/ref/hex2dec.log | 990 ++-- src/test/ref/hex2dec.sym | 150 +- src/test/ref/ifmin.log | 44 +- src/test/ref/ifmin.sym | 8 +- src/test/ref/immzero.log | 50 +- src/test/ref/immzero.sym | 12 +- src/test/ref/importing.log | 20 +- src/test/ref/importing.sym | 6 +- src/test/ref/incd020-2.cfg | 4 +- src/test/ref/incd020-2.log | 34 +- src/test/ref/incd020.log | 10 +- src/test/ref/incd020.sym | 2 +- src/test/ref/include-define.log | 16 +- src/test/ref/include-define.sym | 4 +- src/test/ref/incrementinarray.asm | 5 +- src/test/ref/incrementinarray.cfg | 18 +- src/test/ref/incrementinarray.log | 520 +-- src/test/ref/incrementinarray.sym | 78 +- src/test/ref/index-pointer-rewrite-0.log | 38 +- src/test/ref/index-pointer-rewrite-0.sym | 8 +- src/test/ref/index-pointer-rewrite-1.log | 52 +- src/test/ref/index-pointer-rewrite-1.sym | 10 +- src/test/ref/index-pointer-rewrite-2.log | 42 +- src/test/ref/index-pointer-rewrite-2.sym | 10 +- src/test/ref/index-pointer-rewrite-3.log | 56 +- src/test/ref/index-pointer-rewrite-3.sym | 12 +- src/test/ref/index-pointer-rewrite-4.log | 66 +- src/test/ref/index-pointer-rewrite-4.sym | 10 +- src/test/ref/index-pointer-rewrite-5.asm | 6 +- src/test/ref/index-pointer-rewrite-5.cfg | 2 +- src/test/ref/index-pointer-rewrite-5.log | 172 +- src/test/ref/index-pointer-rewrite-5.sym | 22 +- src/test/ref/index-pointer-rewrite-6.log | 78 +- src/test/ref/index-pointer-rewrite-6.sym | 16 +- src/test/ref/index-pointer-rewrite-7.asm | 6 +- src/test/ref/index-pointer-rewrite-7.cfg | 2 +- src/test/ref/index-pointer-rewrite-7.log | 182 +- src/test/ref/index-pointer-rewrite-7.sym | 28 +- src/test/ref/index-pointer-rewrite-8.cfg | 6 +- src/test/ref/index-pointer-rewrite-8.log | 106 +- src/test/ref/index-pointer-rewrite-8.sym | 16 +- src/test/ref/index-pointer-rewrite-9.cfg | 2 +- src/test/ref/index-pointer-rewrite-9.log | 110 +- src/test/ref/index-pointer-rewrite-9.sym | 18 +- src/test/ref/index-sizeof-reuse-2.cfg | 2 +- src/test/ref/index-sizeof-reuse-2.log | 168 +- src/test/ref/index-sizeof-reuse-2.sym | 26 +- src/test/ref/index-sizeof-reuse.cfg | 22 +- src/test/ref/index-sizeof-reuse.log | 378 +- src/test/ref/index-sizeof-reuse.sym | 46 +- src/test/ref/infloop-error.log | 118 +- src/test/ref/infloop-error.sym | 24 +- src/test/ref/init-value-npe.asm | 1 + src/test/ref/init-value-npe.cfg | 4 +- src/test/ref/init-value-npe.log | 130 +- src/test/ref/init-value-npe.sym | 14 +- src/test/ref/init-volatiles.log | 22 +- src/test/ref/init-volatiles.sym | 2 +- src/test/ref/initializer-0.log | 56 +- src/test/ref/initializer-0.sym | 16 +- src/test/ref/initializer-1.log | 94 +- src/test/ref/initializer-1.sym | 24 +- src/test/ref/initializer-2.cfg | 4 +- src/test/ref/initializer-2.log | 104 +- src/test/ref/initializer-2.sym | 22 +- src/test/ref/initializer-3.cfg | 6 +- src/test/ref/initializer-3.log | 140 +- src/test/ref/initializer-3.sym | 30 +- src/test/ref/initializer-4.log | 56 +- src/test/ref/initializer-4.sym | 16 +- src/test/ref/initializer-5.cfg | 6 +- src/test/ref/initializer-5.log | 140 +- src/test/ref/initializer-5.sym | 30 +- src/test/ref/inline-asm-clobber-none.log | 88 +- src/test/ref/inline-asm-clobber-none.sym | 18 +- src/test/ref/inline-asm-clobber.log | 114 +- src/test/ref/inline-asm-clobber.sym | 26 +- src/test/ref/inline-asm-jsr-clobber.log | 28 +- src/test/ref/inline-asm-jsr-clobber.sym | 6 +- src/test/ref/inline-asm-label.log | 12 +- src/test/ref/inline-asm-label.sym | 4 +- src/test/ref/inline-asm-ma-var.log | 40 +- src/test/ref/inline-asm-ma-var.sym | 10 +- src/test/ref/inline-asm-optimized.log | 14 +- src/test/ref/inline-asm-optimized.sym | 2 +- src/test/ref/inline-asm-param.log | 32 +- src/test/ref/inline-asm-param.sym | 8 +- src/test/ref/inline-asm-refout-const.log | 12 +- src/test/ref/inline-asm-refout-const.sym | 4 +- src/test/ref/inline-asm-refout-var.log | 18 +- src/test/ref/inline-asm-refout-var.sym | 4 +- src/test/ref/inline-asm-refout.log | 16 +- src/test/ref/inline-asm-refout.sym | 4 +- src/test/ref/inline-asm-uses-1.asm | 2 +- src/test/ref/inline-asm-uses-1.cfg | 4 +- src/test/ref/inline-asm-uses-1.log | 102 +- src/test/ref/inline-asm-uses-1.sym | 26 +- src/test/ref/inline-asm-uses-problem-2.cfg | 2 +- src/test/ref/inline-asm-uses-problem-2.log | 24 +- src/test/ref/inline-asm-uses-problem-2.sym | 2 +- src/test/ref/inline-assignment.log | 44 +- src/test/ref/inline-assignment.sym | 10 +- src/test/ref/inline-dword-0.log | 38 +- src/test/ref/inline-dword-0.sym | 4 +- src/test/ref/inline-function-if.log | 108 +- src/test/ref/inline-function-if.sym | 20 +- src/test/ref/inline-function-level2.cfg | 6 +- src/test/ref/inline-function-level2.log | 476 +- src/test/ref/inline-function-level2.sym | 84 +- src/test/ref/inline-function-min.log | 160 +- src/test/ref/inline-function-min.sym | 38 +- src/test/ref/inline-function-print.log | 182 +- src/test/ref/inline-function-print.sym | 38 +- src/test/ref/inline-function.log | 212 +- src/test/ref/inline-function.sym | 28 +- src/test/ref/inline-kasm-clobber.log | 92 +- src/test/ref/inline-kasm-clobber.sym | 20 +- src/test/ref/inline-kasm-data.cfg | 4 +- src/test/ref/inline-kasm-data.log | 118 +- src/test/ref/inline-kasm-data.sym | 24 +- src/test/ref/inline-kasm-loop.log | 12 +- src/test/ref/inline-kasm-loop.sym | 2 +- src/test/ref/inline-kasm-refout.log | 12 +- src/test/ref/inline-kasm-refout.sym | 4 +- src/test/ref/inline-kasm-resource.cfg | 2 +- src/test/ref/inline-kasm-resource.log | 56 +- src/test/ref/inline-kasm-resource.sym | 10 +- src/test/ref/inline-kickasm-uses-problem.asm | 1 + src/test/ref/inline-kickasm-uses-problem.cfg | 8 +- src/test/ref/inline-kickasm-uses-problem.log | 92 +- src/test/ref/inline-kickasm-uses-problem.sym | 16 +- src/test/ref/inline-pointer-0.log | 10 +- src/test/ref/inline-pointer-0.sym | 2 +- src/test/ref/inline-pointer-1.asm | 2 +- src/test/ref/inline-pointer-1.cfg | 8 +- src/test/ref/inline-pointer-1.log | 98 +- src/test/ref/inline-pointer-1.sym | 14 +- src/test/ref/inline-pointer-2.log | 14 +- src/test/ref/inline-pointer-2.sym | 2 +- src/test/ref/inline-string-2.asm | 4 +- src/test/ref/inline-string-2.cfg | 12 +- src/test/ref/inline-string-2.log | 228 +- src/test/ref/inline-string-2.sym | 32 +- src/test/ref/inline-string-3.cfg | 2 +- src/test/ref/inline-string-3.log | 48 +- src/test/ref/inline-string-3.sym | 10 +- src/test/ref/inline-string-4.asm | 1 + src/test/ref/inline-string-4.cfg | 4 +- src/test/ref/inline-string-4.log | 46 +- src/test/ref/inline-string-4.sym | 10 +- src/test/ref/inline-string.asm | 2 +- src/test/ref/inline-string.cfg | 10 +- src/test/ref/inline-string.log | 164 +- src/test/ref/inline-string.sym | 24 +- src/test/ref/inline-word-0.log | 34 +- src/test/ref/inline-word-0.sym | 4 +- src/test/ref/inline-word-1.log | 38 +- src/test/ref/inline-word-1.sym | 4 +- src/test/ref/inline-word-2.log | 36 +- src/test/ref/inline-word-2.sym | 4 +- src/test/ref/inline-word.cfg | 2 +- src/test/ref/inline-word.log | 102 +- src/test/ref/inline-word.sym | 22 +- src/test/ref/inlinearrayproblem.log | 50 +- src/test/ref/inlinearrayproblem.sym | 14 +- src/test/ref/inmem-const-array.log | 94 +- src/test/ref/inmem-const-array.sym | 26 +- src/test/ref/inmemarray.log | 78 +- src/test/ref/inmemarray.sym | 18 +- src/test/ref/inmemstring.log | 80 +- src/test/ref/inmemstring.sym | 18 +- src/test/ref/inner-increment-problem.cfg | 2 +- src/test/ref/inner-increment-problem.log | 82 +- src/test/ref/inner-increment-problem.sym | 16 +- src/test/ref/inner-index-problem.log | 66 +- src/test/ref/inner-index-problem.sym | 12 +- src/test/ref/int-conversion.asm | 98 +- src/test/ref/int-conversion.cfg | 94 +- src/test/ref/int-conversion.log | 2210 ++++----- src/test/ref/int-conversion.sym | 50 +- src/test/ref/int-literals.asm | 78 +- src/test/ref/int-literals.cfg | 40 +- src/test/ref/int-literals.log | 960 ++-- src/test/ref/int-literals.sym | 42 +- src/test/ref/intermediates-simple.asm | 2 +- src/test/ref/intermediates-simple.cfg | 4 +- src/test/ref/intermediates-simple.log | 228 +- src/test/ref/intermediates-simple.sym | 48 +- src/test/ref/intermediates-struct.asm | 2 +- src/test/ref/intermediates-struct.cfg | 14 +- src/test/ref/intermediates-struct.log | 200 +- src/test/ref/intermediates-struct.sym | 28 +- .../ref/interrupt-volatile-reuse-problem1.log | 38 +- .../ref/interrupt-volatile-reuse-problem1.sym | 8 +- .../ref/interrupt-volatile-reuse-problem2.log | 128 +- .../ref/interrupt-volatile-reuse-problem2.sym | 28 +- src/test/ref/irq-hardware-clobber-jsr.cfg | 4 +- src/test/ref/irq-hardware-clobber-jsr.log | 112 +- src/test/ref/irq-hardware-clobber-jsr.sym | 34 +- src/test/ref/irq-hardware-clobber.log | 90 +- src/test/ref/irq-hardware-clobber.sym | 32 +- src/test/ref/irq-hardware-stack.log | 90 +- src/test/ref/irq-hardware-stack.sym | 32 +- src/test/ref/irq-hardware.log | 90 +- src/test/ref/irq-hardware.sym | 32 +- src/test/ref/irq-idx-problem.cfg | 4 +- src/test/ref/irq-idx-problem.log | 168 +- src/test/ref/irq-idx-problem.sym | 40 +- src/test/ref/irq-kernel-minimal.log | 22 +- src/test/ref/irq-kernel-minimal.sym | 8 +- src/test/ref/irq-kernel.log | 64 +- src/test/ref/irq-kernel.sym | 22 +- .../ref/irq-local-var-overlap-problem.log | 474 +- .../ref/irq-local-var-overlap-problem.sym | 108 +- src/test/ref/irq-pragma.log | 18 +- src/test/ref/irq-pragma.sym | 4 +- src/test/ref/irq-raster.log | 64 +- src/test/ref/irq-raster.sym | 22 +- src/test/ref/irq-volatile-bool-problem.log | 72 +- src/test/ref/irq-volatile-bool-problem.sym | 18 +- src/test/ref/issue-594-case.log | 66 +- src/test/ref/issue-594-case.sym | 20 +- src/test/ref/iterarray.log | 56 +- src/test/ref/iterarray.sym | 10 +- src/test/ref/kc-ka-string-encoding.cfg | 2 +- src/test/ref/kc-ka-string-encoding.log | 38 +- src/test/ref/kc-ka-string-encoding.sym | 6 +- src/test/ref/keyboard-glitch.asm | 4 +- src/test/ref/keyboard-glitch.cfg | 22 +- src/test/ref/keyboard-glitch.log | 380 +- src/test/ref/keyboard-glitch.sym | 76 +- .../ref/kickasm-uses-prevent-deletion.log | 22 +- .../ref/kickasm-uses-prevent-deletion.sym | 8 +- src/test/ref/labelgoto-0.log | 36 +- src/test/ref/labelgoto-0.sym | 8 +- src/test/ref/labelgoto-2.log | 10 +- src/test/ref/labelgoto-2.sym | 2 +- src/test/ref/labelgoto-3.log | 26 +- src/test/ref/labelgoto-3.sym | 8 +- src/test/ref/labelgoto-5.log | 38 +- src/test/ref/labelgoto-5.sym | 8 +- src/test/ref/library-constructor-1.log | 38 +- src/test/ref/library-constructor-1.sym | 4 +- src/test/ref/library-constructor-2.log | 18 +- src/test/ref/library-constructor-2.sym | 2 +- src/test/ref/library-constructor-3.cfg | 12 +- src/test/ref/library-constructor-3.log | 68 +- src/test/ref/library-constructor-3.sym | 4 +- src/test/ref/linegen.asm | 17 +- src/test/ref/linegen.cfg | 86 +- src/test/ref/linegen.log | 1878 ++++---- src/test/ref/linegen.sym | 248 +- src/test/ref/literal-char-minus-number.log | 10 +- src/test/ref/literal-char-minus-number.sym | 2 +- src/test/ref/literal-string-array.cfg | 2 +- src/test/ref/literal-string-array.log | 140 +- src/test/ref/literal-string-array.sym | 36 +- src/test/ref/literal-strings.log | 42 +- src/test/ref/literal-strings.sym | 12 +- src/test/ref/literal-word-pointer-0.asm | 1 + src/test/ref/literal-word-pointer-0.cfg | 6 +- src/test/ref/literal-word-pointer-0.log | 48 +- src/test/ref/literal-word-pointer-0.sym | 6 +- src/test/ref/literal-word-pointer-1.asm | 1 + src/test/ref/literal-word-pointer-1.cfg | 6 +- src/test/ref/literal-word-pointer-1.log | 50 +- src/test/ref/literal-word-pointer-1.sym | 6 +- src/test/ref/literals.log | 66 +- src/test/ref/literals.sym | 16 +- src/test/ref/liverange-1.asm | 2 +- src/test/ref/liverange-1.cfg | 6 +- src/test/ref/liverange-1.log | 104 +- src/test/ref/liverange-1.sym | 14 +- src/test/ref/liverange-10.asm | 6 +- src/test/ref/liverange-10.cfg | 24 +- src/test/ref/liverange-10.log | 456 +- src/test/ref/liverange-10.sym | 78 +- src/test/ref/liverange-2.asm | 2 +- src/test/ref/liverange-2.cfg | 4 +- src/test/ref/liverange-2.log | 160 +- src/test/ref/liverange-2.sym | 34 +- src/test/ref/liverange-3.asm | 2 +- src/test/ref/liverange-3.cfg | 4 +- src/test/ref/liverange-3.log | 162 +- src/test/ref/liverange-3.sym | 34 +- src/test/ref/liverange-4.asm | 4 +- src/test/ref/liverange-4.cfg | 8 +- src/test/ref/liverange-4.log | 210 +- src/test/ref/liverange-4.sym | 44 +- src/test/ref/liverange-5.asm | 4 +- src/test/ref/liverange-5.cfg | 8 +- src/test/ref/liverange-5.log | 212 +- src/test/ref/liverange-5.sym | 44 +- src/test/ref/liverange-6.asm | 2 +- src/test/ref/liverange-6.cfg | 4 +- src/test/ref/liverange-6.log | 122 +- src/test/ref/liverange-6.sym | 22 +- src/test/ref/liverange-7.asm | 4 +- src/test/ref/liverange-7.cfg | 8 +- src/test/ref/liverange-7.log | 164 +- src/test/ref/liverange-7.sym | 26 +- src/test/ref/liverange-8.asm | 4 +- src/test/ref/liverange-8.cfg | 10 +- src/test/ref/liverange-8.log | 192 +- src/test/ref/liverange-8.sym | 32 +- src/test/ref/liverange-9.asm | 6 +- src/test/ref/liverange-9.cfg | 16 +- src/test/ref/liverange-9.log | 264 +- src/test/ref/liverange-9.sym | 38 +- src/test/ref/liverange-call-problem.asm | 6 +- src/test/ref/liverange-call-problem.cfg | 10 +- src/test/ref/liverange-call-problem.log | 208 +- src/test/ref/liverange-call-problem.sym | 16 +- src/test/ref/liverange-problem-0.cfg | 10 +- src/test/ref/liverange-problem-0.log | 172 +- src/test/ref/liverange-problem-0.sym | 24 +- src/test/ref/liverange.cfg | 6 +- src/test/ref/liverange.log | 166 +- src/test/ref/liverange.sym | 28 +- src/test/ref/local-string.log | 38 +- src/test/ref/local-string.sym | 10 +- src/test/ref/localscope-loops.log | 62 +- src/test/ref/localscope-loops.sym | 14 +- src/test/ref/localscope-simple.log | 16 +- src/test/ref/localscope-simple.sym | 6 +- src/test/ref/long-pointer-0.log | 12 +- src/test/ref/long-pointer-0.sym | 4 +- src/test/ref/longbranch-interrupt-problem.log | 44 +- src/test/ref/longbranch-interrupt-problem.sym | 6 +- src/test/ref/longjump.log | 32 +- src/test/ref/longjump.sym | 8 +- src/test/ref/longjump2.log | 78 +- src/test/ref/longjump2.sym | 16 +- src/test/ref/loop-break-continue.cfg | 2 +- src/test/ref/loop-break-continue.log | 90 +- src/test/ref/loop-break-continue.sym | 16 +- src/test/ref/loop-break-nested.cfg | 2 +- src/test/ref/loop-break-nested.log | 94 +- src/test/ref/loop-break-nested.sym | 12 +- src/test/ref/loop-break.log | 42 +- src/test/ref/loop-break.sym | 8 +- src/test/ref/loop-continue.log | 44 +- src/test/ref/loop-continue.sym | 8 +- src/test/ref/loop-for-continue.log | 76 +- src/test/ref/loop-for-continue.sym | 18 +- src/test/ref/loop-for-empty-body.log | 48 +- src/test/ref/loop-for-empty-body.sym | 12 +- src/test/ref/loop-for-sideeffect.log | 46 +- src/test/ref/loop-for-sideeffect.sym | 10 +- src/test/ref/loop-memset-min.asm | 1 + src/test/ref/loop-memset-min.cfg | 6 +- src/test/ref/loop-memset-min.log | 170 +- src/test/ref/loop-memset-min.sym | 28 +- src/test/ref/loop-problem.log | 60 +- src/test/ref/loop-problem.sym | 8 +- src/test/ref/loop-problem2.log | 76 +- src/test/ref/loop-problem2.sym | 14 +- src/test/ref/loop-problem3.cfg | 2 +- src/test/ref/loop-problem3.log | 42 +- src/test/ref/loop-problem3.sym | 6 +- src/test/ref/loop-while-continue.log | 44 +- src/test/ref/loop-while-continue.sym | 8 +- src/test/ref/loop-while-min.log | 36 +- src/test/ref/loop-while-min.sym | 8 +- src/test/ref/loop-while-sideeffect.log | 42 +- src/test/ref/loop-while-sideeffect.sym | 10 +- src/test/ref/loop100.log | 28 +- src/test/ref/loop100.sym | 6 +- src/test/ref/loophead-problem-2.cfg | 4 +- src/test/ref/loophead-problem-2.log | 210 +- src/test/ref/loophead-problem-2.sym | 44 +- src/test/ref/loophead-problem-3.asm | 2 +- src/test/ref/loophead-problem-3.cfg | 6 +- src/test/ref/loophead-problem-3.log | 236 +- src/test/ref/loophead-problem-3.sym | 48 +- src/test/ref/loophead-problem.log | 92 +- src/test/ref/loophead-problem.sym | 12 +- src/test/ref/loophead-trivial-1.log | 34 +- src/test/ref/loophead-trivial-1.sym | 8 +- src/test/ref/loopmin.log | 68 +- src/test/ref/loopmin.sym | 14 +- src/test/ref/loopnest.log | 68 +- src/test/ref/loopnest.sym | 14 +- src/test/ref/loopnest2.log | 190 +- src/test/ref/loopnest2.sym | 38 +- src/test/ref/loopnest3.asm | 4 +- src/test/ref/loopnest3.cfg | 8 +- src/test/ref/loopnest3.log | 132 +- src/test/ref/loopnest3.sym | 26 +- src/test/ref/loopsplit.log | 78 +- src/test/ref/loopsplit.sym | 16 +- src/test/ref/ma_coalesce_problem.log | 40 +- src/test/ref/ma_coalesce_problem.sym | 10 +- src/test/ref/main-param-0.asm | 1 + src/test/ref/main-param-0.cfg | 2 +- src/test/ref/main-param-0.log | 56 +- src/test/ref/main-param-0.sym | 8 +- src/test/ref/main-param-1.asm | 1 + src/test/ref/main-param-1.cfg | 2 +- src/test/ref/main-param-1.log | 80 +- src/test/ref/main-param-1.sym | 10 +- src/test/ref/main-return.cfg | 2 +- src/test/ref/main-return.log | 34 +- src/test/ref/main-return.sym | 4 +- src/test/ref/makelong-0.log | 78 +- src/test/ref/makelong-0.sym | 18 +- src/test/ref/makelong4-0.log | 184 +- src/test/ref/makelong4-0.sym | 38 +- src/test/ref/makelong4-1.log | 48 +- src/test/ref/makelong4-1.sym | 12 +- src/test/ref/makeword-0.log | 78 +- src/test/ref/makeword-0.sym | 18 +- src/test/ref/malloc-0.asm | 1 + src/test/ref/malloc-0.cfg | 6 +- src/test/ref/malloc-0.log | 188 +- src/test/ref/malloc-0.sym | 36 +- src/test/ref/malloc-1.asm | 5 +- src/test/ref/malloc-1.cfg | 8 +- src/test/ref/malloc-1.log | 230 +- src/test/ref/malloc-1.sym | 44 +- src/test/ref/mem-alignment.log | 86 +- src/test/ref/mem-alignment.sym | 22 +- src/test/ref/memcpy-0.asm | 2 +- src/test/ref/memcpy-0.cfg | 16 +- src/test/ref/memcpy-0.log | 404 +- src/test/ref/memcpy-0.sym | 60 +- src/test/ref/memcpy-1.asm | 2 +- src/test/ref/memcpy-1.cfg | 16 +- src/test/ref/memcpy-1.log | 424 +- src/test/ref/memcpy-1.sym | 80 +- src/test/ref/memory-heap.asm | 1 + src/test/ref/memory-heap.cfg | 10 +- src/test/ref/memory-heap.log | 316 +- src/test/ref/memory-heap.sym | 44 +- .../ref/millfork-benchmarks/linkedlist-kc.asm | 8 +- .../ref/millfork-benchmarks/linkedlist-kc.cfg | 54 +- .../ref/millfork-benchmarks/linkedlist-kc.log | 1146 ++--- .../ref/millfork-benchmarks/linkedlist-kc.sym | 142 +- .../ref/millfork-benchmarks/plasma-kc.asm | 8 +- .../ref/millfork-benchmarks/plasma-kc.cfg | 48 +- .../ref/millfork-benchmarks/plasma-kc.log | 1644 +++---- .../ref/millfork-benchmarks/plasma-kc.sym | 258 +- .../ref/millfork-benchmarks/romsum-kc.asm | 14 +- .../ref/millfork-benchmarks/romsum-kc.cfg | 54 +- .../ref/millfork-benchmarks/romsum-kc.log | 1470 +++--- .../ref/millfork-benchmarks/romsum-kc.sym | 224 +- src/test/ref/millfork-benchmarks/sieve-kc.asm | 6 +- src/test/ref/millfork-benchmarks/sieve-kc.cfg | 48 +- src/test/ref/millfork-benchmarks/sieve-kc.log | 792 ++-- src/test/ref/millfork-benchmarks/sieve-kc.sym | 100 +- src/test/ref/min-fmul-16.asm | 9 +- src/test/ref/min-fmul-16.cfg | 30 +- src/test/ref/min-fmul-16.log | 972 ++-- src/test/ref/min-fmul-16.sym | 172 +- src/test/ref/minus-precedence-problem.cfg | 2 +- src/test/ref/minus-precedence-problem.log | 26 +- src/test/ref/minus-precedence-problem.sym | 4 +- src/test/ref/missing-band.asm | 1 + src/test/ref/missing-band.cfg | 6 +- src/test/ref/missing-band.log | 110 +- src/test/ref/missing-band.sym | 22 +- src/test/ref/missing-instruction.log | 8 +- src/test/ref/missing-instruction.sym | 2 +- src/test/ref/mixed-array-0.log | 24 +- src/test/ref/mixed-array-0.sym | 4 +- src/test/ref/mixed-array-1.log | 24 +- src/test/ref/mixed-array-1.sym | 4 +- src/test/ref/modglobal.cfg | 6 +- src/test/ref/modglobal.log | 240 +- src/test/ref/modglobal.sym | 36 +- src/test/ref/modglobalmin.log | 92 +- src/test/ref/modglobalmin.sym | 12 +- src/test/ref/mul8u-min.asm | 2 +- src/test/ref/mul8u-min.cfg | 6 +- src/test/ref/mul8u-min.log | 306 +- src/test/ref/mul8u-min.sym | 62 +- .../simple-multiplexer-irq.asm | 1 + .../simple-multiplexer-irq.cfg | 22 +- .../simple-multiplexer-irq.log | 916 ++-- .../simple-multiplexer-irq.sym | 192 +- src/test/ref/multiply-1.log | 38 +- src/test/ref/multiply-1.sym | 10 +- src/test/ref/multiply-16bit-const.asm | 11 +- src/test/ref/multiply-16bit-const.cfg | 32 +- src/test/ref/multiply-16bit-const.log | 1134 ++--- src/test/ref/multiply-16bit-const.sym | 184 +- src/test/ref/multiply-2.log | 82 +- src/test/ref/multiply-2.sym | 24 +- src/test/ref/multiply-2s.cfg | 4 +- src/test/ref/multiply-2s.log | 130 +- src/test/ref/multiply-2s.sym | 20 +- src/test/ref/multiply-ns.cfg | 16 +- src/test/ref/multiply-ns.log | 284 +- src/test/ref/multiply-ns.sym | 36 +- src/test/ref/nes-array.asm | 8 +- src/test/ref/nes-array.cfg | 8 +- src/test/ref/nes-array.log | 202 +- src/test/ref/nes-array.sym | 36 +- src/test/ref/nomodify-3.log | 24 +- src/test/ref/nomodify-3.sym | 4 +- src/test/ref/nomodify-4.asm | 2 +- src/test/ref/nomodify-4.cfg | 6 +- src/test/ref/nomodify-4.log | 54 +- src/test/ref/nomodify-4.sym | 8 +- src/test/ref/noop-cast-elimination.cfg | 2 +- src/test/ref/noop-cast-elimination.log | 82 +- src/test/ref/noop-cast-elimination.sym | 16 +- src/test/ref/norom-charset.asm | 2 +- src/test/ref/norom-charset.cfg | 6 +- src/test/ref/norom-charset.log | 374 +- src/test/ref/norom-charset.sym | 64 +- src/test/ref/npe-problem-0.cfg | 4 +- src/test/ref/npe-problem-0.log | 74 +- src/test/ref/npe-problem-0.sym | 6 +- src/test/ref/null-constant.cfg | 2 +- src/test/ref/null-constant.log | 92 +- src/test/ref/null-constant.sym | 14 +- src/test/ref/number-conversion.asm | 86 +- src/test/ref/number-conversion.cfg | 76 +- src/test/ref/number-conversion.log | 1790 ++++---- src/test/ref/number-conversion.sym | 36 +- src/test/ref/number-inference-sum.log | 74 +- src/test/ref/number-inference-sum.sym | 16 +- src/test/ref/number-ternary-fail-2.asm | 2 + src/test/ref/number-ternary-fail-2.cfg | 8 +- src/test/ref/number-ternary-fail-2.log | 370 +- src/test/ref/number-ternary-fail-2.sym | 52 +- src/test/ref/number-ternary-fail-3.log | 94 +- src/test/ref/number-ternary-fail-3.sym | 20 +- src/test/ref/number-ternary-fail.log | 68 +- src/test/ref/number-ternary-fail.sym | 12 +- src/test/ref/number-type.cfg | 24 +- src/test/ref/number-type.log | 292 +- src/test/ref/number-type.sym | 8 +- src/test/ref/operator-byte0-initializer.log | 44 +- src/test/ref/operator-byte0-initializer.sym | 6 +- src/test/ref/operator-byte0-lvalue-1.asm | 10 +- src/test/ref/operator-byte0-lvalue-1.cfg | 4 +- src/test/ref/operator-byte0-lvalue-1.log | 222 +- src/test/ref/operator-byte0-lvalue-1.sym | 28 +- src/test/ref/operator-byte0.cfg | 2 +- src/test/ref/operator-byte0.log | 134 +- src/test/ref/operator-byte0.sym | 32 +- src/test/ref/operator-byte1.cfg | 2 +- src/test/ref/operator-byte1.log | 116 +- src/test/ref/operator-byte1.sym | 24 +- src/test/ref/operator-byte2.log | 88 +- src/test/ref/operator-byte2.sym | 12 +- src/test/ref/operator-byte3.log | 88 +- src/test/ref/operator-byte3.sym | 12 +- src/test/ref/operator-lohi-problem-1.cfg | 2 +- src/test/ref/operator-lohi-problem-1.log | 44 +- src/test/ref/operator-lohi-problem-1.sym | 4 +- src/test/ref/operator-lohi-problem.log | 54 +- src/test/ref/operator-lohi-problem.sym | 12 +- src/test/ref/operator-word0.asm | 34 +- src/test/ref/operator-word0.cfg | 18 +- src/test/ref/operator-word0.log | 376 +- src/test/ref/operator-word0.sym | 34 +- src/test/ref/operator-word1.asm | 34 +- src/test/ref/operator-word1.cfg | 16 +- src/test/ref/operator-word1.log | 326 +- src/test/ref/operator-word1.sym | 14 +- .../ref/optimize-unsigned-comparisons.log | 64 +- .../ref/optimize-unsigned-comparisons.sym | 8 +- src/test/ref/overlap-allocation-2.asm | 4 +- src/test/ref/overlap-allocation-2.cfg | 12 +- src/test/ref/overlap-allocation-2.log | 178 +- src/test/ref/overlap-allocation-2.sym | 34 +- src/test/ref/overlap-allocation.asm | 2 +- src/test/ref/overlap-allocation.cfg | 8 +- src/test/ref/overlap-allocation.log | 156 +- src/test/ref/overlap-allocation.sym | 32 +- src/test/ref/parse-negated-struct-ref.cfg | 2 +- src/test/ref/parse-negated-struct-ref.log | 48 +- src/test/ref/parse-negated-struct-ref.sym | 6 +- src/test/ref/platform-asm6502.log | 36 +- src/test/ref/platform-asm6502.sym | 8 +- src/test/ref/platform-default-define.log | 10 +- src/test/ref/platform-default-define.sym | 2 +- src/test/ref/platform-plus4-define.log | 10 +- src/test/ref/platform-plus4-define.sym | 2 +- src/test/ref/plus-0.asm | 2 +- src/test/ref/plus-0.cfg | 8 +- src/test/ref/plus-0.log | 162 +- src/test/ref/plus-0.sym | 22 +- src/test/ref/plus4-kbhit.cfg | 10 +- src/test/ref/plus4-kbhit.log | 124 +- src/test/ref/plus4-kbhit.sym | 16 +- src/test/ref/plus4-keyboard-test.asm | 1 + src/test/ref/plus4-keyboard-test.cfg | 6 +- src/test/ref/plus4-keyboard-test.log | 352 +- src/test/ref/plus4-keyboard-test.sym | 64 +- src/test/ref/pointer-anding.asm | 4 +- src/test/ref/pointer-anding.cfg | 6 +- src/test/ref/pointer-anding.log | 146 +- src/test/ref/pointer-anding.sym | 28 +- src/test/ref/pointer-cast-2.log | 44 +- src/test/ref/pointer-cast-2.sym | 12 +- src/test/ref/pointer-cast-3.log | 12 +- src/test/ref/pointer-cast-3.sym | 4 +- src/test/ref/pointer-cast-4.cfg | 2 +- src/test/ref/pointer-cast-4.log | 74 +- src/test/ref/pointer-cast-4.sym | 14 +- src/test/ref/pointer-cast.asm | 36 +- src/test/ref/pointer-cast.cfg | 28 +- src/test/ref/pointer-cast.log | 550 +-- src/test/ref/pointer-cast.sym | 20 +- src/test/ref/pointer-const-typedef.log | 90 +- src/test/ref/pointer-const-typedef.sym | 22 +- src/test/ref/pointer-const.log | 82 +- src/test/ref/pointer-const.sym | 18 +- src/test/ref/pointer-plus-0.asm | 1 + src/test/ref/pointer-plus-0.cfg | 6 +- src/test/ref/pointer-plus-0.log | 118 +- src/test/ref/pointer-plus-0.sym | 22 +- src/test/ref/pointer-plus-signed-word.cfg | 2 +- src/test/ref/pointer-plus-signed-word.log | 60 +- src/test/ref/pointer-plus-signed-word.sym | 12 +- src/test/ref/pointer-pointer-1.log | 24 +- src/test/ref/pointer-pointer-1.sym | 8 +- src/test/ref/pointer-pointer-2.asm | 1 + src/test/ref/pointer-pointer-2.cfg | 8 +- src/test/ref/pointer-pointer-2.log | 218 +- src/test/ref/pointer-pointer-2.sym | 34 +- src/test/ref/pointer-pointer-3.asm | 2 +- src/test/ref/pointer-pointer-3.cfg | 10 +- src/test/ref/pointer-pointer-3.log | 104 +- src/test/ref/pointer-pointer-3.sym | 14 +- src/test/ref/pointer-to-pointer-const.cfg | 2 +- src/test/ref/pointer-to-pointer-const.log | 20 +- src/test/ref/pointer-to-pointer-const.sym | 2 +- src/test/ref/pointer-to-pointer-problem.log | 12 +- src/test/ref/pointer-to-pointer-problem.sym | 4 +- src/test/ref/pointer-void-0.log | 52 +- src/test/ref/pointer-void-0.sym | 14 +- src/test/ref/pointer-void-1.asm | 2 +- src/test/ref/pointer-void-1.cfg | 10 +- src/test/ref/pointer-void-1.log | 138 +- src/test/ref/pointer-void-1.sym | 26 +- src/test/ref/pointer-void-2.asm | 2 +- src/test/ref/pointer-void-2.cfg | 12 +- src/test/ref/pointer-void-2.log | 158 +- src/test/ref/pointer-void-2.sym | 20 +- src/test/ref/pointer-void-3.cfg | 14 +- src/test/ref/pointer-void-3.log | 196 +- src/test/ref/pointer-void-3.sym | 26 +- src/test/ref/post-increment-problem-2.asm | 1 + src/test/ref/post-increment-problem-2.cfg | 4 +- src/test/ref/post-increment-problem-2.log | 92 +- src/test/ref/post-increment-problem-2.sym | 14 +- src/test/ref/post-increment-problem-3.cfg | 2 +- src/test/ref/post-increment-problem-3.log | 62 +- src/test/ref/post-increment-problem-3.sym | 14 +- src/test/ref/post-increment-problem-4.log | 78 +- src/test/ref/post-increment-problem-4.sym | 20 +- src/test/ref/post-increment-problem.log | 86 +- src/test/ref/post-increment-problem.sym | 22 +- src/test/ref/pragma-noparenthesis.log | 28 +- src/test/ref/pragma-noparenthesis.sym | 2 +- src/test/ref/pragma-unknown.log | 8 +- src/test/ref/pragma-unknown.sym | 2 +- src/test/ref/precedence-1.log | 24 +- src/test/ref/precedence-1.sym | 2 +- src/test/ref/preprocessor-0.log | 8 +- src/test/ref/preprocessor-0.sym | 2 +- src/test/ref/preprocessor-1.log | 8 +- src/test/ref/preprocessor-1.sym | 2 +- src/test/ref/preprocessor-11.log | 10 +- src/test/ref/preprocessor-11.sym | 2 +- src/test/ref/preprocessor-12.log | 10 +- src/test/ref/preprocessor-12.sym | 2 +- src/test/ref/preprocessor-13.log | 36 +- src/test/ref/preprocessor-13.sym | 4 +- src/test/ref/preprocessor-14.log | 10 +- src/test/ref/preprocessor-14.sym | 2 +- src/test/ref/preprocessor-17.log | 24 +- src/test/ref/preprocessor-17.sym | 4 +- src/test/ref/preprocessor-2.log | 18 +- src/test/ref/preprocessor-2.sym | 4 +- src/test/ref/preprocessor-3.log | 12 +- src/test/ref/preprocessor-3.sym | 2 +- src/test/ref/preprocessor-4.log | 40 +- src/test/ref/preprocessor-4.sym | 4 +- src/test/ref/preprocessor-5.log | 42 +- src/test/ref/preprocessor-5.sym | 4 +- src/test/ref/preprocessor-6.log | 46 +- src/test/ref/preprocessor-6.sym | 6 +- src/test/ref/preprocessor-7.log | 36 +- src/test/ref/preprocessor-7.sym | 4 +- src/test/ref/preprocessor-8.log | 36 +- src/test/ref/preprocessor-8.sym | 4 +- src/test/ref/preprocessor-9.log | 26 +- src/test/ref/preprocessor-9.sym | 4 +- src/test/ref/primes-1000-2.asm | 26 +- src/test/ref/primes-1000-2.cfg | 48 +- src/test/ref/primes-1000-2.log | 1934 ++++---- src/test/ref/primes-1000-2.sym | 298 +- src/test/ref/print-problem.log | 142 +- src/test/ref/print-problem.sym | 10 +- src/test/ref/printf-1.asm | 16 +- src/test/ref/printf-1.cfg | 88 +- src/test/ref/printf-1.log | 1620 +++---- src/test/ref/printf-1.sym | 232 +- src/test/ref/printf-10.asm | 3 +- src/test/ref/printf-10.cfg | 14 +- src/test/ref/printf-10.log | 220 +- src/test/ref/printf-10.sym | 32 +- src/test/ref/printf-11.asm | 3 +- src/test/ref/printf-11.cfg | 12 +- src/test/ref/printf-11.log | 320 +- src/test/ref/printf-11.sym | 58 +- src/test/ref/printf-14.asm | 17 +- src/test/ref/printf-14.cfg | 78 +- src/test/ref/printf-14.log | 2442 +++++----- src/test/ref/printf-14.sym | 288 +- src/test/ref/printf-15.asm | 10 +- src/test/ref/printf-15.cfg | 56 +- src/test/ref/printf-15.log | 1108 ++--- src/test/ref/printf-15.sym | 164 +- src/test/ref/printmsg.asm | 4 +- src/test/ref/printmsg.cfg | 18 +- src/test/ref/printmsg.log | 372 +- src/test/ref/printmsg.sym | 54 +- src/test/ref/problem-bool-compare-2.log | 16 +- src/test/ref/problem-bool-compare-2.sym | 2 +- src/test/ref/problem-bool-compare.log | 16 +- src/test/ref/problem-bool-compare.sym | 2 +- src/test/ref/problem-ma-var-overwrite.asm | 2 +- src/test/ref/problem-ma-var-overwrite.cfg | 10 +- src/test/ref/problem-ma-var-overwrite.log | 144 +- src/test/ref/problem-ma-var-overwrite.sym | 24 +- src/test/ref/problem-negate-const.asm | 1 + src/test/ref/problem-negate-const.cfg | 4 +- src/test/ref/problem-negate-const.log | 46 +- src/test/ref/problem-negate-const.sym | 6 +- src/test/ref/problem-negative-word-const.cfg | 2 +- src/test/ref/problem-negative-word-const.log | 102 +- src/test/ref/problem-negative-word-const.sym | 18 +- .../ref/problem-struct-inline-parameter-1.asm | 1 + .../ref/problem-struct-inline-parameter-1.cfg | 4 +- .../ref/problem-struct-inline-parameter-1.log | 106 +- .../ref/problem-struct-inline-parameter-1.sym | 18 +- .../ref/problem-struct-inline-parameter.asm | 1 + .../ref/problem-struct-inline-parameter.cfg | 4 +- .../ref/problem-struct-inline-parameter.log | 106 +- .../ref/problem-struct-inline-parameter.sym | 18 +- .../procedure-callingconvention-stack-0.asm | 2 +- .../procedure-callingconvention-stack-0.cfg | 14 +- .../procedure-callingconvention-stack-0.log | 176 +- .../procedure-callingconvention-stack-0.sym | 26 +- .../procedure-callingconvention-stack-1.asm | 2 +- .../procedure-callingconvention-stack-1.cfg | 14 +- .../procedure-callingconvention-stack-1.log | 176 +- .../procedure-callingconvention-stack-1.sym | 26 +- .../procedure-callingconvention-stack-10.asm | 4 +- .../procedure-callingconvention-stack-10.cfg | 16 +- .../procedure-callingconvention-stack-10.log | 216 +- .../procedure-callingconvention-stack-10.sym | 40 +- .../procedure-callingconvention-stack-11.asm | 4 +- .../procedure-callingconvention-stack-11.cfg | 24 +- .../procedure-callingconvention-stack-11.log | 294 +- .../procedure-callingconvention-stack-11.sym | 46 +- .../procedure-callingconvention-stack-12.asm | 2 +- .../procedure-callingconvention-stack-12.cfg | 14 +- .../procedure-callingconvention-stack-12.log | 224 +- .../procedure-callingconvention-stack-12.sym | 34 +- .../procedure-callingconvention-stack-13.asm | 2 +- .../procedure-callingconvention-stack-13.cfg | 14 +- .../procedure-callingconvention-stack-13.log | 178 +- .../procedure-callingconvention-stack-13.sym | 28 +- .../procedure-callingconvention-stack-2.asm | 2 +- .../procedure-callingconvention-stack-2.cfg | 14 +- .../procedure-callingconvention-stack-2.log | 190 +- .../procedure-callingconvention-stack-2.sym | 26 +- .../procedure-callingconvention-stack-3.asm | 2 +- .../procedure-callingconvention-stack-3.cfg | 14 +- .../procedure-callingconvention-stack-3.log | 184 +- .../procedure-callingconvention-stack-3.sym | 26 +- .../procedure-callingconvention-stack-4.asm | 2 +- .../procedure-callingconvention-stack-4.cfg | 16 +- .../procedure-callingconvention-stack-4.log | 224 +- .../procedure-callingconvention-stack-4.sym | 42 +- .../procedure-callingconvention-stack-5.asm | 6 +- .../procedure-callingconvention-stack-5.cfg | 12 +- .../procedure-callingconvention-stack-5.log | 158 +- .../procedure-callingconvention-stack-5.sym | 20 +- .../procedure-callingconvention-stack-7.log | 48 +- .../procedure-callingconvention-stack-7.sym | 12 +- .../procedure-callingconvention-stack-8.log | 40 +- .../procedure-callingconvention-stack-8.sym | 10 +- .../procedure-callingconvention-stack-9.log | 64 +- .../procedure-callingconvention-stack-9.sym | 16 +- src/test/ref/procedure-declare-0.log | 10 +- src/test/ref/procedure-declare-0.sym | 2 +- src/test/ref/procedure-declare-1.log | 10 +- src/test/ref/procedure-declare-1.sym | 2 +- src/test/ref/procedure-declare-10.asm | 5 +- src/test/ref/procedure-declare-10.cfg | 8 +- src/test/ref/procedure-declare-10.log | 206 +- src/test/ref/procedure-declare-10.sym | 38 +- src/test/ref/procedure-declare-11.log | 18 +- src/test/ref/procedure-declare-11.sym | 4 +- src/test/ref/procedure-declare-2.asm | 2 +- src/test/ref/procedure-declare-2.cfg | 6 +- src/test/ref/procedure-declare-2.log | 134 +- src/test/ref/procedure-declare-2.sym | 26 +- src/test/ref/procedure-declare-3.asm | 2 +- src/test/ref/procedure-declare-3.cfg | 6 +- src/test/ref/procedure-declare-3.log | 134 +- src/test/ref/procedure-declare-3.sym | 26 +- src/test/ref/procedure-declare-4.asm | 2 +- src/test/ref/procedure-declare-4.cfg | 6 +- src/test/ref/procedure-declare-4.log | 134 +- src/test/ref/procedure-declare-4.sym | 26 +- src/test/ref/procedure-declare-5.cfg | 4 +- src/test/ref/procedure-declare-5.log | 50 +- src/test/ref/procedure-declare-5.sym | 8 +- src/test/ref/procedure-declare-8.log | 40 +- src/test/ref/procedure-declare-8.sym | 4 +- src/test/ref/procedure-declare-9.log | 18 +- src/test/ref/procedure-declare-9.sym | 4 +- src/test/ref/processor-port-test.asm | 9 +- src/test/ref/processor-port-test.cfg | 106 +- src/test/ref/processor-port-test.log | 1696 +++---- src/test/ref/processor-port-test.sym | 158 +- src/test/ref/ptr-complex.cfg | 4 +- src/test/ref/ptr-complex.log | 128 +- src/test/ref/ptr-complex.sym | 20 +- src/test/ref/ptrptr-optimize-0.cfg | 2 +- src/test/ref/ptrptr-optimize-0.log | 24 +- src/test/ref/ptrptr-optimize-0.sym | 4 +- src/test/ref/ptrptr-optimize-1.asm | 2 +- src/test/ref/ptrptr-optimize-1.cfg | 8 +- src/test/ref/ptrptr-optimize-1.log | 82 +- src/test/ref/ptrptr-optimize-1.sym | 12 +- src/test/ref/ptrptr-optimize-2.asm | 2 +- src/test/ref/ptrptr-optimize-2.cfg | 8 +- src/test/ref/ptrptr-optimize-2.log | 78 +- src/test/ref/ptrptr-optimize-2.sym | 10 +- src/test/ref/ptrtest.cfg | 12 +- src/test/ref/ptrtest.log | 302 +- src/test/ref/ptrtest.sym | 60 +- src/test/ref/ptrtestmin.log | 60 +- src/test/ref/ptrtestmin.sym | 14 +- src/test/ref/register-0.asm | 2 +- src/test/ref/register-0.cfg | 10 +- src/test/ref/register-0.log | 66 +- src/test/ref/register-0.sym | 8 +- src/test/ref/reserve-zp-global-range.asm | 2 +- src/test/ref/reserve-zp-global-range.cfg | 4 +- src/test/ref/reserve-zp-global-range.log | 86 +- src/test/ref/reserve-zp-global-range.sym | 18 +- src/test/ref/reserve-zp-global.asm | 2 +- src/test/ref/reserve-zp-global.cfg | 4 +- src/test/ref/reserve-zp-global.log | 86 +- src/test/ref/reserve-zp-global.sym | 18 +- src/test/ref/reserve-zp-procedure-1.asm | 2 +- src/test/ref/reserve-zp-procedure-1.cfg | 4 +- src/test/ref/reserve-zp-procedure-1.log | 86 +- src/test/ref/reserve-zp-procedure-1.sym | 18 +- src/test/ref/reserve-zp-procedure-2.asm | 4 +- src/test/ref/reserve-zp-procedure-2.cfg | 8 +- src/test/ref/reserve-zp-procedure-2.log | 162 +- src/test/ref/reserve-zp-procedure-2.sym | 34 +- src/test/ref/reserve-zp-procedure-3.asm | 2 +- src/test/ref/reserve-zp-procedure-3.cfg | 4 +- src/test/ref/reserve-zp-procedure-3.log | 86 +- src/test/ref/reserve-zp-procedure-3.sym | 18 +- src/test/ref/reserve-zp-procedure-4.asm | 2 +- src/test/ref/reserve-zp-procedure-4.cfg | 4 +- src/test/ref/reserve-zp-procedure-4.log | 86 +- src/test/ref/reserve-zp-procedure-4.sym | 18 +- src/test/ref/robozzle64-label-problem.asm | 8 +- src/test/ref/robozzle64-label-problem.cfg | 12 +- src/test/ref/robozzle64-label-problem.log | 348 +- src/test/ref/robozzle64-label-problem.sym | 60 +- src/test/ref/roll-sprite-msb.asm | 2 +- src/test/ref/roll-sprite-msb.cfg | 4 +- src/test/ref/roll-sprite-msb.log | 194 +- src/test/ref/roll-sprite-msb.sym | 42 +- src/test/ref/roll-variable.log | 42 +- src/test/ref/roll-variable.sym | 10 +- src/test/ref/runtime-unused-procedure.log | 34 +- src/test/ref/runtime-unused-procedure.sym | 2 +- src/test/ref/sandbox-ternary-error.log | 72 +- src/test/ref/sandbox-ternary-error.sym | 12 +- src/test/ref/scan-desire-problem.asm | 6 +- src/test/ref/scan-desire-problem.cfg | 26 +- src/test/ref/scan-desire-problem.log | 972 ++-- src/test/ref/scan-desire-problem.sym | 190 +- src/test/ref/scroll-clobber.log | 96 +- src/test/ref/scroll-clobber.sym | 26 +- src/test/ref/scrollbig-clobber.cfg | 4 +- src/test/ref/scrollbig-clobber.log | 168 +- src/test/ref/scrollbig-clobber.sym | 34 +- src/test/ref/semi-struct-1.asm | 7 +- src/test/ref/semi-struct-1.cfg | 32 +- src/test/ref/semi-struct-1.log | 1096 ++--- src/test/ref/semi-struct-1.sym | 158 +- src/test/ref/sequence-locality-0.log | 90 +- src/test/ref/sequence-locality-0.sym | 20 +- src/test/ref/sequence-locality-1.log | 94 +- src/test/ref/sequence-locality-1.sym | 22 +- src/test/ref/sieve-min.asm | 7 +- src/test/ref/sieve-min.cfg | 24 +- src/test/ref/sieve-min.log | 718 +-- src/test/ref/sieve-min.sym | 124 +- src/test/ref/signed-bytes.cfg | 2 +- src/test/ref/signed-bytes.log | 68 +- src/test/ref/signed-bytes.sym | 14 +- src/test/ref/signed-char-comparison.asm | 2 +- src/test/ref/signed-char-comparison.cfg | 6 +- src/test/ref/signed-char-comparison.log | 104 +- src/test/ref/signed-char-comparison.sym | 16 +- src/test/ref/signed-indexed-subtract.asm | 11 +- src/test/ref/signed-indexed-subtract.cfg | 44 +- src/test/ref/signed-indexed-subtract.log | 910 ++-- src/test/ref/signed-indexed-subtract.sym | 132 +- src/test/ref/signed-word-minus-byte-2.log | 72 +- src/test/ref/signed-word-minus-byte-2.sym | 16 +- src/test/ref/signed-words.cfg | 10 +- src/test/ref/signed-words.log | 620 +-- src/test/ref/signed-words.sym | 96 +- src/test/ref/simple-loop.cfg | 2 +- src/test/ref/simple-loop.log | 56 +- src/test/ref/simple-loop.sym | 8 +- src/test/ref/sinus-basic.asm | 14 +- src/test/ref/sinus-basic.cfg | 64 +- src/test/ref/sinus-basic.log | 966 ++-- src/test/ref/sinus-basic.sym | 144 +- src/test/ref/sinusgen16.asm | 32 +- src/test/ref/sinusgen16.cfg | 90 +- src/test/ref/sinusgen16.log | 2330 +++++----- src/test/ref/sinusgen16.sym | 396 +- src/test/ref/sizeof-arrays.asm | 16 +- src/test/ref/sizeof-arrays.cfg | 12 +- src/test/ref/sizeof-arrays.log | 312 +- src/test/ref/sizeof-arrays.sym | 10 +- src/test/ref/sizeof-expr.asm | 8 +- src/test/ref/sizeof-expr.cfg | 6 +- src/test/ref/sizeof-expr.log | 232 +- src/test/ref/sizeof-expr.sym | 12 +- src/test/ref/sizeof-in-const-pointer.asm | 4 +- src/test/ref/sizeof-in-const-pointer.log | 28 +- src/test/ref/sizeof-in-const-pointer.sym | 4 +- src/test/ref/sizeof-noparen.asm | 12 +- src/test/ref/sizeof-noparen.cfg | 8 +- src/test/ref/sizeof-noparen.log | 122 +- src/test/ref/sizeof-noparen.sym | 10 +- src/test/ref/sizeof-problem.asm | 6 +- src/test/ref/sizeof-problem.log | 78 +- src/test/ref/sizeof-problem.sym | 14 +- src/test/ref/sizeof-struct.log | 150 +- src/test/ref/sizeof-struct.sym | 12 +- src/test/ref/sizeof-types.asm | 40 +- src/test/ref/sizeof-types.cfg | 28 +- src/test/ref/sizeof-types.log | 318 +- src/test/ref/sizeof-types.sym | 20 +- src/test/ref/sqr-delta.asm | 1 + src/test/ref/sqr-delta.cfg | 4 +- src/test/ref/sqr-delta.log | 176 +- src/test/ref/sqr-delta.sym | 34 +- src/test/ref/stack-relative-addressing.log | 22 +- src/test/ref/stack-relative-addressing.sym | 4 +- src/test/ref/stars-2.asm | 18 +- src/test/ref/stars-2.cfg | 88 +- src/test/ref/stars-2.log | 2604 +++++------ src/test/ref/stars-2.sym | 306 +- src/test/ref/statement-sequence-1.log | 88 +- src/test/ref/statement-sequence-1.sym | 18 +- src/test/ref/static-init-code-0.log | 32 +- src/test/ref/static-init-code-0.sym | 6 +- src/test/ref/static-init-code-1.log | 12 +- src/test/ref/static-init-code-1.sym | 2 +- src/test/ref/static-init-code-2.log | 22 +- src/test/ref/static-init-code-2.sym | 6 +- .../static-register-optimization-problem.cfg | 2 +- .../static-register-optimization-problem.log | 72 +- .../static-register-optimization-problem.sym | 16 +- src/test/ref/stmt-empty-1.log | 48 +- src/test/ref/stmt-empty-1.sym | 12 +- src/test/ref/stmt-empty.cfg | 2 +- src/test/ref/stmt-empty.log | 46 +- src/test/ref/stmt-empty.sym | 6 +- src/test/ref/strcmp-0.asm | 29 +- src/test/ref/strcmp-0.cfg | 78 +- src/test/ref/strcmp-0.log | 4062 +++++++++-------- src/test/ref/strcmp-0.sym | 612 +-- src/test/ref/strcpy-0.asm | 2 +- src/test/ref/strcpy-0.cfg | 6 +- src/test/ref/strcpy-0.log | 120 +- src/test/ref/strcpy-0.sym | 28 +- src/test/ref/strength-reduction-1.log | 62 +- src/test/ref/strength-reduction-1.sym | 14 +- .../ref/string-const-consolidation-noroot.asm | 2 +- .../ref/string-const-consolidation-noroot.cfg | 10 +- .../ref/string-const-consolidation-noroot.log | 156 +- .../ref/string-const-consolidation-noroot.sym | 18 +- .../ref/string-const-consolidation-root.asm | 2 +- .../ref/string-const-consolidation-root.cfg | 20 +- .../ref/string-const-consolidation-root.log | 250 +- .../ref/string-const-consolidation-root.sym | 26 +- src/test/ref/string-const-consolidation.asm | 2 +- src/test/ref/string-const-consolidation.cfg | 10 +- src/test/ref/string-const-consolidation.log | 156 +- src/test/ref/string-const-consolidation.sym | 18 +- src/test/ref/string-encoding-literals.cfg | 8 +- src/test/ref/string-encoding-literals.log | 166 +- src/test/ref/string-encoding-literals.sym | 32 +- src/test/ref/string-encoding-pragma.log | 124 +- src/test/ref/string-encoding-pragma.sym | 20 +- src/test/ref/string-escapes-0.log | 40 +- src/test/ref/string-escapes-0.sym | 10 +- src/test/ref/string-escapes-1.cfg | 4 +- src/test/ref/string-escapes-1.log | 130 +- src/test/ref/string-escapes-1.sym | 26 +- src/test/ref/string-escapes-2.asm | 2 +- src/test/ref/string-escapes-2.cfg | 4 +- src/test/ref/string-escapes-2.log | 76 +- src/test/ref/string-escapes-2.sym | 16 +- src/test/ref/string-escapes-3.cfg | 4 +- src/test/ref/string-escapes-3.log | 176 +- src/test/ref/string-escapes-3.sym | 36 +- src/test/ref/string-escapes-4.asm | 2 +- src/test/ref/string-escapes-4.cfg | 6 +- src/test/ref/string-escapes-4.log | 106 +- src/test/ref/string-escapes-4.sym | 20 +- src/test/ref/string-escapes-5.log | 46 +- src/test/ref/string-escapes-5.sym | 12 +- src/test/ref/string-escapes-6.log | Bin 10406 -> 10436 bytes src/test/ref/string-escapes-6.sym | Bin 290 -> 306 bytes src/test/ref/string-escapes-7.log | 52 +- src/test/ref/string-escapes-7.sym | 14 +- src/test/ref/string-pointer-problem.asm | 1 + src/test/ref/string-pointer-problem.cfg | 4 +- src/test/ref/string-pointer-problem.log | 82 +- src/test/ref/string-pointer-problem.sym | 18 +- src/test/ref/strip.asm | 4 +- src/test/ref/strip.cfg | 14 +- src/test/ref/strip.log | 274 +- src/test/ref/strip.sym | 48 +- src/test/ref/strncat-0.asm | 2 +- src/test/ref/strncat-0.cfg | 8 +- src/test/ref/strncat-0.log | 258 +- src/test/ref/strncat-0.sym | 46 +- src/test/ref/struct-0.cfg | 8 +- src/test/ref/struct-0.log | 88 +- src/test/ref/struct-0.sym | 8 +- src/test/ref/struct-1.cfg | 12 +- src/test/ref/struct-1.log | 118 +- src/test/ref/struct-1.sym | 10 +- src/test/ref/struct-10.asm | 14 +- src/test/ref/struct-10.cfg | 4 +- src/test/ref/struct-10.log | 122 +- src/test/ref/struct-10.sym | 6 +- src/test/ref/struct-11.asm | 2 +- src/test/ref/struct-11.cfg | 12 +- src/test/ref/struct-11.log | 254 +- src/test/ref/struct-11.sym | 44 +- src/test/ref/struct-11b.asm | 2 +- src/test/ref/struct-11b.cfg | 6 +- src/test/ref/struct-11b.log | 176 +- src/test/ref/struct-11b.sym | 30 +- src/test/ref/struct-12.asm | 2 +- src/test/ref/struct-12.cfg | 10 +- src/test/ref/struct-12.log | 238 +- src/test/ref/struct-12.sym | 46 +- src/test/ref/struct-13.cfg | 8 +- src/test/ref/struct-13.log | 88 +- src/test/ref/struct-13.sym | 8 +- src/test/ref/struct-14.cfg | 8 +- src/test/ref/struct-14.log | 132 +- src/test/ref/struct-14.sym | 6 +- src/test/ref/struct-15.cfg | 8 +- src/test/ref/struct-15.log | 96 +- src/test/ref/struct-15.sym | 10 +- src/test/ref/struct-16.cfg | 4 +- src/test/ref/struct-16.log | 60 +- src/test/ref/struct-16.sym | 10 +- src/test/ref/struct-17.cfg | 16 +- src/test/ref/struct-17.log | 168 +- src/test/ref/struct-17.sym | 10 +- src/test/ref/struct-18.cfg | 8 +- src/test/ref/struct-18.log | 100 +- src/test/ref/struct-18.sym | 12 +- src/test/ref/struct-19.cfg | 12 +- src/test/ref/struct-19.log | 142 +- src/test/ref/struct-19.sym | 20 +- src/test/ref/struct-2.cfg | 14 +- src/test/ref/struct-2.log | 144 +- src/test/ref/struct-2.sym | 10 +- src/test/ref/struct-20.cfg | 12 +- src/test/ref/struct-20.log | 140 +- src/test/ref/struct-20.sym | 18 +- src/test/ref/struct-21.cfg | 4 +- src/test/ref/struct-21.log | 78 +- src/test/ref/struct-21.sym | 12 +- src/test/ref/struct-22.asm | 2 +- src/test/ref/struct-22.cfg | 14 +- src/test/ref/struct-22.log | 156 +- src/test/ref/struct-22.sym | 32 +- src/test/ref/struct-23.asm | 1 + src/test/ref/struct-23.cfg | 22 +- src/test/ref/struct-23.log | 264 +- src/test/ref/struct-23.sym | 34 +- src/test/ref/struct-24.cfg | 12 +- src/test/ref/struct-24.log | 136 +- src/test/ref/struct-24.sym | 8 +- src/test/ref/struct-25.log | 18 +- src/test/ref/struct-25.sym | 4 +- src/test/ref/struct-26.cfg | 12 +- src/test/ref/struct-26.log | 142 +- src/test/ref/struct-26.sym | 10 +- src/test/ref/struct-27.cfg | 6 +- src/test/ref/struct-27.log | 90 +- src/test/ref/struct-27.sym | 10 +- src/test/ref/struct-28.cfg | 6 +- src/test/ref/struct-28.log | 90 +- src/test/ref/struct-28.sym | 10 +- src/test/ref/struct-29.cfg | 6 +- src/test/ref/struct-29.log | 82 +- src/test/ref/struct-29.sym | 6 +- src/test/ref/struct-3.asm | 2 +- src/test/ref/struct-3.cfg | 6 +- src/test/ref/struct-3.log | 154 +- src/test/ref/struct-3.sym | 24 +- src/test/ref/struct-30.cfg | 2 +- src/test/ref/struct-30.log | 46 +- src/test/ref/struct-30.sym | 8 +- src/test/ref/struct-31.log | 20 +- src/test/ref/struct-31.sym | 6 +- src/test/ref/struct-32.cfg | 8 +- src/test/ref/struct-32.log | 96 +- src/test/ref/struct-32.sym | 10 +- src/test/ref/struct-33.cfg | 8 +- src/test/ref/struct-33.log | 88 +- src/test/ref/struct-33.sym | 8 +- src/test/ref/struct-34.log | 70 +- src/test/ref/struct-34.sym | 10 +- src/test/ref/struct-35.cfg | 4 +- src/test/ref/struct-35.log | 66 +- src/test/ref/struct-35.sym | 12 +- src/test/ref/struct-36.cfg | 6 +- src/test/ref/struct-36.log | 82 +- src/test/ref/struct-36.sym | 6 +- src/test/ref/struct-37.cfg | 4 +- src/test/ref/struct-37.log | 134 +- src/test/ref/struct-37.sym | 38 +- src/test/ref/struct-38.cfg | 4 +- src/test/ref/struct-38.log | 166 +- src/test/ref/struct-38.sym | 42 +- src/test/ref/struct-39.cfg | 6 +- src/test/ref/struct-39.log | 164 +- src/test/ref/struct-39.sym | 38 +- src/test/ref/struct-4.log | 44 +- src/test/ref/struct-4.sym | 12 +- src/test/ref/struct-40.log | 144 +- src/test/ref/struct-40.sym | 36 +- src/test/ref/struct-41.cfg | 40 +- src/test/ref/struct-41.log | 424 +- src/test/ref/struct-41.sym | 40 +- src/test/ref/struct-42.cfg | 4 +- src/test/ref/struct-42.log | 118 +- src/test/ref/struct-42.sym | 18 +- src/test/ref/struct-43.asm | 14 +- src/test/ref/struct-43.cfg | 6 +- src/test/ref/struct-43.log | 188 +- src/test/ref/struct-43.sym | 10 +- src/test/ref/struct-44.asm | 10 +- src/test/ref/struct-44.cfg | 66 +- src/test/ref/struct-44.log | 1096 ++--- src/test/ref/struct-44.sym | 154 +- src/test/ref/struct-45.cfg | 8 +- src/test/ref/struct-45.log | 206 +- src/test/ref/struct-45.sym | 34 +- src/test/ref/struct-46.cfg | 2 +- src/test/ref/struct-46.log | 72 +- src/test/ref/struct-46.sym | 14 +- src/test/ref/struct-47.cfg | 4 +- src/test/ref/struct-47.log | 54 +- src/test/ref/struct-47.sym | 4 +- src/test/ref/struct-48.cfg | 8 +- src/test/ref/struct-48.log | 204 +- src/test/ref/struct-48.sym | 38 +- src/test/ref/struct-49.cfg | 4 +- src/test/ref/struct-49.log | 220 +- src/test/ref/struct-49.sym | 54 +- src/test/ref/struct-5.log | 80 +- src/test/ref/struct-5.sym | 14 +- src/test/ref/struct-6.log | 42 +- src/test/ref/struct-6.sym | 12 +- src/test/ref/struct-7.log | 44 +- src/test/ref/struct-7.sym | 14 +- src/test/ref/struct-8.log | 58 +- src/test/ref/struct-8.sym | 16 +- src/test/ref/struct-9.log | 56 +- src/test/ref/struct-9.sym | 14 +- src/test/ref/struct-directives.cfg | 4 +- src/test/ref/struct-directives.log | 52 +- src/test/ref/struct-directives.sym | 4 +- src/test/ref/struct-pointer-ints.asm | 1 + src/test/ref/struct-pointer-ints.cfg | 8 +- src/test/ref/struct-pointer-ints.log | 114 +- src/test/ref/struct-pointer-ints.sym | 18 +- src/test/ref/struct-pointer-to-member-2.log | 34 +- src/test/ref/struct-pointer-to-member-2.sym | 10 +- src/test/ref/struct-pointer-to-member.cfg | 2 +- src/test/ref/struct-pointer-to-member.log | 40 +- src/test/ref/struct-pointer-to-member.sym | 6 +- src/test/ref/struct-pointer-typing.cfg | 2 +- src/test/ref/struct-pointer-typing.log | 124 +- src/test/ref/struct-pointer-typing.sym | 22 +- src/test/ref/struct-pos-fill.cfg | 4 +- src/test/ref/struct-pos-fill.log | 308 +- src/test/ref/struct-pos-fill.sym | 46 +- src/test/ref/struct-ptr-0.cfg | 8 +- src/test/ref/struct-ptr-0.log | 150 +- src/test/ref/struct-ptr-0.sym | 24 +- src/test/ref/struct-ptr-1.cfg | 8 +- src/test/ref/struct-ptr-1.log | 176 +- src/test/ref/struct-ptr-1.sym | 24 +- src/test/ref/struct-ptr-10.cfg | 4 +- src/test/ref/struct-ptr-10.log | 128 +- src/test/ref/struct-ptr-10.sym | 30 +- src/test/ref/struct-ptr-11.cfg | 8 +- src/test/ref/struct-ptr-11.log | 156 +- src/test/ref/struct-ptr-11.sym | 32 +- src/test/ref/struct-ptr-12-ref.log | 38 +- src/test/ref/struct-ptr-12-ref.sym | 10 +- src/test/ref/struct-ptr-12.cfg | 4 +- src/test/ref/struct-ptr-12.log | 78 +- src/test/ref/struct-ptr-12.sym | 12 +- src/test/ref/struct-ptr-13.cfg | 8 +- src/test/ref/struct-ptr-13.log | 140 +- src/test/ref/struct-ptr-13.sym | 6 +- src/test/ref/struct-ptr-14.asm | 1 + src/test/ref/struct-ptr-14.cfg | 12 +- src/test/ref/struct-ptr-14.log | 150 +- src/test/ref/struct-ptr-14.sym | 16 +- src/test/ref/struct-ptr-15.cfg | 18 +- src/test/ref/struct-ptr-15.log | 414 +- src/test/ref/struct-ptr-15.sym | 40 +- src/test/ref/struct-ptr-16.asm | 2 +- src/test/ref/struct-ptr-16.cfg | 26 +- src/test/ref/struct-ptr-16.log | 404 +- src/test/ref/struct-ptr-16.sym | 62 +- src/test/ref/struct-ptr-17.asm | 2 +- src/test/ref/struct-ptr-17.cfg | 14 +- src/test/ref/struct-ptr-17.log | 222 +- src/test/ref/struct-ptr-17.sym | 36 +- src/test/ref/struct-ptr-18.asm | 2 +- src/test/ref/struct-ptr-18.cfg | 8 +- src/test/ref/struct-ptr-18.log | 200 +- src/test/ref/struct-ptr-18.sym | 38 +- src/test/ref/struct-ptr-19.asm | 2 +- src/test/ref/struct-ptr-19.cfg | 14 +- src/test/ref/struct-ptr-19.log | 222 +- src/test/ref/struct-ptr-19.sym | 38 +- src/test/ref/struct-ptr-2.cfg | 8 +- src/test/ref/struct-ptr-2.log | 200 +- src/test/ref/struct-ptr-2.sym | 32 +- src/test/ref/struct-ptr-20.cfg | 4 +- src/test/ref/struct-ptr-20.log | 156 +- src/test/ref/struct-ptr-20.sym | 26 +- src/test/ref/struct-ptr-21.cfg | 4 +- src/test/ref/struct-ptr-21.log | 116 +- src/test/ref/struct-ptr-21.sym | 16 +- src/test/ref/struct-ptr-22.asm | 7 +- src/test/ref/struct-ptr-22.cfg | 44 +- src/test/ref/struct-ptr-22.log | 846 ++-- src/test/ref/struct-ptr-22.sym | 110 +- src/test/ref/struct-ptr-23.asm | 2 +- src/test/ref/struct-ptr-23.cfg | 14 +- src/test/ref/struct-ptr-23.log | 258 +- src/test/ref/struct-ptr-23.sym | 40 +- src/test/ref/struct-ptr-24.asm | 2 +- src/test/ref/struct-ptr-24.cfg | 8 +- src/test/ref/struct-ptr-24.log | 112 +- src/test/ref/struct-ptr-24.sym | 18 +- src/test/ref/struct-ptr-25.cfg | 2 +- src/test/ref/struct-ptr-25.log | 132 +- src/test/ref/struct-ptr-25.sym | 6 +- src/test/ref/struct-ptr-26.asm | 6 +- src/test/ref/struct-ptr-26.cfg | 20 +- src/test/ref/struct-ptr-26.log | 424 +- src/test/ref/struct-ptr-26.sym | 64 +- src/test/ref/struct-ptr-28.asm | 2 +- src/test/ref/struct-ptr-28.cfg | 12 +- src/test/ref/struct-ptr-28.log | 262 +- src/test/ref/struct-ptr-28.sym | 46 +- src/test/ref/struct-ptr-29.asm | 2 +- src/test/ref/struct-ptr-29.cfg | 12 +- src/test/ref/struct-ptr-29.log | 248 +- src/test/ref/struct-ptr-29.sym | 40 +- src/test/ref/struct-ptr-3.cfg | 8 +- src/test/ref/struct-ptr-3.log | 140 +- src/test/ref/struct-ptr-3.sym | 8 +- src/test/ref/struct-ptr-30.asm | 2 +- src/test/ref/struct-ptr-30.cfg | 8 +- src/test/ref/struct-ptr-30.log | 210 +- src/test/ref/struct-ptr-30.sym | 44 +- src/test/ref/struct-ptr-31.asm | 2 +- src/test/ref/struct-ptr-31.cfg | 12 +- src/test/ref/struct-ptr-31.log | 248 +- src/test/ref/struct-ptr-31.sym | 40 +- src/test/ref/struct-ptr-32.cfg | 16 +- src/test/ref/struct-ptr-32.log | 262 +- src/test/ref/struct-ptr-32.sym | 14 +- src/test/ref/struct-ptr-33.cfg | 4 +- src/test/ref/struct-ptr-33.log | 90 +- src/test/ref/struct-ptr-33.sym | 12 +- src/test/ref/struct-ptr-34.asm | 2 +- src/test/ref/struct-ptr-34.cfg | 10 +- src/test/ref/struct-ptr-34.log | 238 +- src/test/ref/struct-ptr-34.sym | 46 +- src/test/ref/struct-ptr-35.cfg | 2 +- src/test/ref/struct-ptr-35.log | 118 +- src/test/ref/struct-ptr-35.sym | 30 +- src/test/ref/struct-ptr-4.cfg | 8 +- src/test/ref/struct-ptr-4.log | 222 +- src/test/ref/struct-ptr-4.sym | 42 +- src/test/ref/struct-ptr-5.cfg | 22 +- src/test/ref/struct-ptr-5.log | 372 +- src/test/ref/struct-ptr-5.sym | 42 +- src/test/ref/struct-ptr-6.cfg | 8 +- src/test/ref/struct-ptr-6.log | 140 +- src/test/ref/struct-ptr-6.sym | 8 +- src/test/ref/struct-ptr-7.cfg | 16 +- src/test/ref/struct-ptr-7.log | 242 +- src/test/ref/struct-ptr-7.sym | 8 +- src/test/ref/struct-ptr-8.cfg | 8 +- src/test/ref/struct-ptr-8.log | 188 +- src/test/ref/struct-ptr-8.sym | 36 +- src/test/ref/struct-ptr-9.cfg | 4 +- src/test/ref/struct-ptr-9.log | 112 +- src/test/ref/struct-ptr-9.sym | 24 +- src/test/ref/struct-unwinding-1.cfg | 18 +- src/test/ref/struct-unwinding-1.log | 220 +- src/test/ref/struct-unwinding-1.sym | 18 +- src/test/ref/struct-unwinding-2.asm | 4 +- src/test/ref/struct-unwinding-2.cfg | 28 +- src/test/ref/struct-unwinding-2.log | 316 +- src/test/ref/struct-unwinding-2.sym | 54 +- src/test/ref/subexpr-optimize-0.cfg | 2 +- src/test/ref/subexpr-optimize-0.log | 82 +- src/test/ref/subexpr-optimize-0.sym | 16 +- src/test/ref/subexpr-optimize-1.log | 80 +- src/test/ref/subexpr-optimize-1.sym | 8 +- src/test/ref/subexpr-optimize-2.cfg | 2 +- src/test/ref/subexpr-optimize-2.log | 106 +- src/test/ref/subexpr-optimize-2.sym | 22 +- src/test/ref/subexpr-optimize-3.cfg | 2 +- src/test/ref/subexpr-optimize-3.log | 114 +- src/test/ref/subexpr-optimize-3.sym | 22 +- src/test/ref/subexpr-optimize-4.cfg | 2 +- src/test/ref/subexpr-optimize-4.log | 186 +- src/test/ref/subexpr-optimize-4.sym | 28 +- src/test/ref/summin.asm | 2 +- src/test/ref/summin.cfg | 8 +- src/test/ref/summin.log | 198 +- src/test/ref/summin.sym | 40 +- src/test/ref/switch-0.log | 56 +- src/test/ref/switch-0.sym | 8 +- src/test/ref/switch-1.log | 48 +- src/test/ref/switch-1.sym | 8 +- src/test/ref/switch-2.log | 30 +- src/test/ref/switch-2.sym | 6 +- src/test/ref/switch-4.log | 48 +- src/test/ref/switch-4.sym | 10 +- src/test/ref/ternary-1.log | 52 +- src/test/ref/ternary-1.sym | 10 +- src/test/ref/ternary-2.log | 24 +- src/test/ref/ternary-2.sym | 2 +- src/test/ref/ternary-3.asm | 6 +- src/test/ref/ternary-3.cfg | 12 +- src/test/ref/ternary-3.log | 252 +- src/test/ref/ternary-3.sym | 50 +- src/test/ref/ternary-4.log | 198 +- src/test/ref/ternary-4.sym | 34 +- src/test/ref/ternary-inference.log | 66 +- src/test/ref/ternary-inference.sym | 12 +- src/test/ref/test-comments-block.asm | 2 +- src/test/ref/test-comments-block.cfg | 4 +- src/test/ref/test-comments-block.log | 146 +- src/test/ref/test-comments-block.sym | 34 +- src/test/ref/test-comments-global.cfg | 4 +- src/test/ref/test-comments-global.log | 28 +- src/test/ref/test-comments-global.sym | 2 +- src/test/ref/test-comments-loop.log | 32 +- src/test/ref/test-comments-loop.sym | 8 +- src/test/ref/test-comments-single.asm | 2 +- src/test/ref/test-comments-single.cfg | 4 +- src/test/ref/test-comments-single.log | 146 +- src/test/ref/test-comments-single.sym | 34 +- src/test/ref/test-comments-usage.log | 8 +- src/test/ref/test-comments-usage.sym | 2 +- src/test/ref/test-comparisons-sword.asm | 13 +- src/test/ref/test-comparisons-sword.cfg | 52 +- src/test/ref/test-comparisons-sword.log | 1592 +++---- src/test/ref/test-comparisons-sword.sym | 236 +- src/test/ref/test-comparisons-word.asm | 11 +- src/test/ref/test-comparisons-word.cfg | 44 +- src/test/ref/test-comparisons-word.log | 1480 +++--- src/test/ref/test-comparisons-word.sym | 216 +- src/test/ref/test-interrupt-notype.log | 20 +- src/test/ref/test-interrupt-notype.sym | 6 +- .../ref/test-interrupt-volatile-write.log | 44 +- .../ref/test-interrupt-volatile-write.sym | 6 +- src/test/ref/test-interrupt-volatile.log | 28 +- src/test/ref/test-interrupt-volatile.sym | 6 +- src/test/ref/test-interrupt.log | 20 +- src/test/ref/test-interrupt.sym | 6 +- src/test/ref/test-kasm-pc.log | 36 +- src/test/ref/test-kasm-pc.sym | 10 +- src/test/ref/test-kasm.log | 6 +- src/test/ref/test-kasm.sym | 2 +- src/test/ref/test-keyboard-space.asm | 2 + src/test/ref/test-keyboard-space.cfg | 18 +- src/test/ref/test-keyboard-space.log | 286 +- src/test/ref/test-keyboard-space.sym | 56 +- src/test/ref/test-keyboard.asm | 6 +- src/test/ref/test-keyboard.cfg | 28 +- src/test/ref/test-keyboard.log | 924 ++-- src/test/ref/test-keyboard.sym | 230 +- src/test/ref/test-lohiconst.log | 20 +- src/test/ref/test-lohiconst.sym | 4 +- src/test/ref/test-lowhigh.asm | 9 +- src/test/ref/test-lowhigh.cfg | 56 +- src/test/ref/test-lowhigh.log | 1040 ++--- src/test/ref/test-lowhigh.sym | 138 +- src/test/ref/test-scroll-up.cfg | 10 +- src/test/ref/test-scroll-up.log | 352 +- src/test/ref/test-scroll-up.sym | 72 +- src/test/ref/test-signed-word-minus-byte.asm | 9 +- src/test/ref/test-signed-word-minus-byte.cfg | 40 +- src/test/ref/test-signed-word-minus-byte.log | 832 ++-- src/test/ref/test-signed-word-minus-byte.sym | 120 +- src/test/ref/test-word-size-arrays.cfg | 2 +- src/test/ref/test-word-size-arrays.log | 150 +- src/test/ref/test-word-size-arrays.sym | 30 +- src/test/ref/tetris-npe.log | 114 +- src/test/ref/tetris-npe.sym | 18 +- src/test/ref/tod-1.asm | 14 +- src/test/ref/tod-1.cfg | 92 +- src/test/ref/tod-1.log | 1618 +++---- src/test/ref/tod-1.sym | 260 +- src/test/ref/tod018-problem.log | 20 +- src/test/ref/tod018-problem.sym | 6 +- src/test/ref/toupper-1.asm | 10 +- src/test/ref/toupper-1.cfg | 60 +- src/test/ref/toupper-1.log | 1208 ++--- src/test/ref/toupper-1.sym | 174 +- src/test/ref/travis1.asm | 6 +- src/test/ref/travis1.cfg | 18 +- src/test/ref/travis1.log | 558 +-- src/test/ref/travis1.sym | 84 +- src/test/ref/true-inline-words.log | 74 +- src/test/ref/true-inline-words.sym | 20 +- src/test/ref/type-inference.log | 56 +- src/test/ref/type-inference.sym | 12 +- src/test/ref/type-mix.log | 64 +- src/test/ref/type-mix.sym | 16 +- src/test/ref/type-truncate.log | 30 +- src/test/ref/type-truncate.sym | 8 +- src/test/ref/typedef-0.log | 12 +- src/test/ref/typedef-0.sym | 4 +- src/test/ref/typedef-1.cfg | 4 +- src/test/ref/typedef-1.log | 64 +- src/test/ref/typedef-1.sym | 8 +- src/test/ref/typedef-2.cfg | 6 +- src/test/ref/typedef-2.log | 70 +- src/test/ref/typedef-2.sym | 6 +- src/test/ref/typedef-3.log | 38 +- src/test/ref/typedef-3.sym | 10 +- src/test/ref/typedef-4.log | 30 +- src/test/ref/typedef-4.sym | 6 +- src/test/ref/typedef-5.log | 26 +- src/test/ref/typedef-5.sym | 6 +- src/test/ref/typedef-6.log | 26 +- src/test/ref/typedef-6.sym | 6 +- src/test/ref/typedef-7.log | 24 +- src/test/ref/typedef-7.sym | 6 +- src/test/ref/typedef-8.log | 18 +- src/test/ref/typedef-8.sym | 4 +- src/test/ref/typedef-9.log | 44 +- src/test/ref/typedef-9.sym | 14 +- src/test/ref/typeid-plus-byte-problem.log | 26 +- src/test/ref/typeid-plus-byte-problem.sym | 6 +- src/test/ref/typeid-plus-bytes.asm | 12 +- src/test/ref/typeid-plus-bytes.cfg | 44 +- src/test/ref/typeid-plus-bytes.log | 866 ++-- src/test/ref/typeid-plus-bytes.sym | 38 +- src/test/ref/typeid-simple.asm | 66 +- src/test/ref/typeid-simple.cfg | 62 +- src/test/ref/typeid-simple.log | 678 +-- src/test/ref/typeid-simple.sym | 38 +- src/test/ref/typeinference-problem.log | 46 +- src/test/ref/typeinference-problem.sym | 10 +- src/test/ref/unary-plus.asm | 6 +- src/test/ref/unary-plus.cfg | 2 +- src/test/ref/unary-plus.log | 96 +- src/test/ref/unary-plus.sym | 10 +- src/test/ref/uninitialized.log | 36 +- src/test/ref/uninitialized.sym | 4 +- src/test/ref/union-0.cfg | 4 +- src/test/ref/union-0.log | 56 +- src/test/ref/union-0.sym | 6 +- src/test/ref/union-1.cfg | 8 +- src/test/ref/union-1.log | 96 +- src/test/ref/union-1.sym | 10 +- src/test/ref/union-2.cfg | 8 +- src/test/ref/union-2.log | 94 +- src/test/ref/union-2.sym | 10 +- src/test/ref/union-3.cfg | 4 +- src/test/ref/union-3.log | 124 +- src/test/ref/union-3.sym | 22 +- src/test/ref/union-4.cfg | 10 +- src/test/ref/union-4.log | 126 +- src/test/ref/union-4.sym | 6 +- src/test/ref/union-5.cfg | 8 +- src/test/ref/union-5.log | 110 +- src/test/ref/union-5.sym | 4 +- src/test/ref/union-6.cfg | 6 +- src/test/ref/union-6.log | 70 +- src/test/ref/union-6.sym | 8 +- src/test/ref/union-7.asm | 2 +- src/test/ref/union-7.cfg | 10 +- src/test/ref/union-7.log | 156 +- src/test/ref/union-7.sym | 24 +- src/test/ref/union-8.asm | 2 +- src/test/ref/union-8.cfg | 12 +- src/test/ref/union-8.log | 156 +- src/test/ref/union-8.sym | 18 +- src/test/ref/unroll-for-min.log | 24 +- src/test/ref/unroll-for-min.sym | 4 +- src/test/ref/unroll-loop-modifyvar.log | 26 +- src/test/ref/unroll-loop-modifyvar.sym | 4 +- src/test/ref/unroll-screenfill-for-double.log | 52 +- src/test/ref/unroll-screenfill-for-double.sym | 6 +- src/test/ref/unroll-screenfill-for.log | 60 +- src/test/ref/unroll-screenfill-for.sym | 10 +- src/test/ref/unroll-screenfill-while.log | 64 +- src/test/ref/unroll-screenfill-while.sym | 10 +- src/test/ref/unroll-while-min.log | 26 +- src/test/ref/unroll-while-min.sym | 4 +- src/test/ref/unused-irq.log | 14 +- src/test/ref/unused-irq.sym | 4 +- src/test/ref/unused-method.log | 12 +- src/test/ref/unused-method.sym | 2 +- src/test/ref/unused-vars.log | 118 +- src/test/ref/unused-vars.sym | 14 +- src/test/ref/unusedblockproblem.log | 22 +- src/test/ref/unusedblockproblem.sym | 4 +- src/test/ref/useglobal.log | 12 +- src/test/ref/useglobal.sym | 2 +- src/test/ref/useuninitialized.log | 76 +- src/test/ref/useuninitialized.sym | 10 +- src/test/ref/var-export.log | 16 +- src/test/ref/var-export.sym | 4 +- src/test/ref/var-forward-problem.log | 12 +- src/test/ref/var-forward-problem.sym | 4 +- src/test/ref/var-forward-problem2.log | 66 +- src/test/ref/var-forward-problem2.sym | 8 +- src/test/ref/var-init-problem.log | 40 +- src/test/ref/var-init-problem.sym | 4 +- src/test/ref/var-register-noarg.log | 54 +- src/test/ref/var-register-noarg.sym | 12 +- src/test/ref/var-register-zp-3.asm | 4 +- src/test/ref/var-register-zp-3.cfg | 10 +- src/test/ref/var-register-zp-3.log | 214 +- src/test/ref/var-register-zp-3.sym | 42 +- src/test/ref/var-register-zp.cfg | 2 +- src/test/ref/var-register-zp.log | 80 +- src/test/ref/var-register-zp.sym | 16 +- src/test/ref/var-register.asm | 2 +- src/test/ref/var-register.cfg | 4 +- src/test/ref/var-register.log | 160 +- src/test/ref/var-register.sym | 34 +- src/test/ref/varcall-1.asm | 2 +- src/test/ref/varcall-1.cfg | 2 +- src/test/ref/varcall-1.log | 30 +- src/test/ref/varcall-1.sym | 6 +- src/test/ref/varcall-2.asm | 2 +- src/test/ref/varcall-2.cfg | 2 +- src/test/ref/varcall-2.log | 70 +- src/test/ref/varcall-2.sym | 18 +- src/test/ref/varcall-3.asm | 2 +- src/test/ref/varcall-3.cfg | 2 +- src/test/ref/varcall-3.log | 70 +- src/test/ref/varcall-3.sym | 18 +- src/test/ref/varcall-4.asm | 2 +- src/test/ref/varcall-4.cfg | 26 +- src/test/ref/varcall-4.log | 262 +- src/test/ref/varcall-4.sym | 42 +- src/test/ref/varmodel-ma_mem-2.cfg | 2 +- src/test/ref/varmodel-ma_mem-2.log | 30 +- src/test/ref/varmodel-ma_mem-2.sym | 4 +- src/test/ref/varmodel-ma_mem-3.cfg | 8 +- src/test/ref/varmodel-ma_mem-3.log | 106 +- src/test/ref/varmodel-ma_mem-3.sym | 16 +- src/test/ref/varmodel-ma_mem-4.cfg | 2 +- src/test/ref/varmodel-ma_mem-4.log | 84 +- src/test/ref/varmodel-ma_mem-4.sym | 16 +- src/test/ref/varmodel-ma_mem-5.log | 22 +- src/test/ref/varmodel-ma_mem-5.sym | 6 +- src/test/ref/varmodel-ma_mem.cfg | 2 +- src/test/ref/varmodel-ma_mem.log | 30 +- src/test/ref/varmodel-ma_mem.sym | 4 +- src/test/ref/varmodel-mem-1.asm | 2 +- src/test/ref/varmodel-mem-1.cfg | 6 +- src/test/ref/varmodel-mem-1.log | 168 +- src/test/ref/varmodel-mem-1.sym | 40 +- src/test/ref/vic20-raster.cfg | 2 +- src/test/ref/vic20-raster.log | 28 +- src/test/ref/vic20-raster.sym | 6 +- src/test/ref/vic20-simple.log | 48 +- src/test/ref/vic20-simple.sym | 14 +- src/test/ref/void-parameter.log | 86 +- src/test/ref/void-parameter.sym | 8 +- src/test/ref/volatile-0.log | 26 +- src/test/ref/volatile-0.sym | 4 +- src/test/ref/volatile-1.log | 18 +- src/test/ref/volatile-1.sym | 4 +- src/test/ref/volatile-2.log | 48 +- src/test/ref/volatile-2.sym | 10 +- src/test/ref/voronoi.asm | 2 +- src/test/ref/voronoi.cfg | 10 +- src/test/ref/voronoi.log | 748 +-- src/test/ref/voronoi.sym | 122 +- src/test/ref/weeip-bbslist.asm | 20 +- src/test/ref/weeip-bbslist.cfg | 102 +- src/test/ref/weeip-bbslist.log | 2996 ++++++------ src/test/ref/weeip-bbslist.sym | 414 +- src/test/ref/weeip-checksum.asm | 12 +- src/test/ref/weeip-checksum.cfg | 34 +- src/test/ref/weeip-checksum.log | 682 +-- src/test/ref/weeip-checksum.sym | 50 +- src/test/ref/weeip-ipv4.cfg | 8 +- src/test/ref/weeip-ipv4.log | 178 +- src/test/ref/weeip-ipv4.sym | 16 +- src/test/ref/wfragment1.asm | 2 +- src/test/ref/wfragment1.cfg | 4 +- src/test/ref/wfragment1.log | 114 +- src/test/ref/wfragment1.sym | 26 +- src/test/ref/word-array-0.asm | 10 +- src/test/ref/word-array-0.cfg | 4 +- src/test/ref/word-array-0.log | 156 +- src/test/ref/word-array-0.sym | 22 +- src/test/ref/word-array-1.log | 106 +- src/test/ref/word-array-1.sym | 30 +- src/test/ref/word-array-2.asm | 6 +- src/test/ref/word-array-2.cfg | 6 +- src/test/ref/word-array-2.log | 164 +- src/test/ref/word-array-2.sym | 24 +- src/test/ref/word-pointer-compound.asm | 10 +- src/test/ref/word-pointer-compound.cfg | 8 +- src/test/ref/word-pointer-compound.log | 260 +- src/test/ref/word-pointer-compound.sym | 26 +- src/test/ref/word-pointer-iteration-0.asm | 14 +- src/test/ref/word-pointer-iteration-0.cfg | 12 +- src/test/ref/word-pointer-iteration-0.log | 174 +- src/test/ref/word-pointer-iteration-0.sym | 18 +- src/test/ref/word-pointer-iteration.asm | 4 +- src/test/ref/word-pointer-iteration.cfg | 2 +- src/test/ref/word-pointer-iteration.log | 136 +- src/test/ref/word-pointer-iteration.sym | 36 +- src/test/ref/word-pointer-math-0.asm | 10 +- src/test/ref/word-pointer-math-0.cfg | 4 +- src/test/ref/word-pointer-math-0.log | 158 +- src/test/ref/word-pointer-math-0.sym | 22 +- src/test/ref/word-pointer-math-1.asm | 4 +- src/test/ref/word-pointer-math-1.log | 50 +- src/test/ref/word-pointer-math-1.sym | 12 +- src/test/ref/word-pointer-math.log | 108 +- src/test/ref/word-pointer-math.sym | 30 +- src/test/ref/wordexpr.cfg | 2 +- src/test/ref/wordexpr.log | 64 +- src/test/ref/wordexpr.sym | 12 +- src/test/ref/zeropage-detect-advanced.cfg | 2 +- src/test/ref/zeropage-detect-advanced.log | 32 +- src/test/ref/zeropage-detect-advanced.sym | 4 +- src/test/ref/zeropage-sinus.cfg | 10 +- src/test/ref/zeropage-sinus.log | 106 +- src/test/ref/zeropage-sinus.sym | 16 +- src/test/ref/zp-reserve-coalesce-problem.cfg | 8 +- src/test/ref/zp-reserve-coalesce-problem.log | 352 +- src/test/ref/zp-reserve-coalesce-problem.sym | 66 +- src/test/ref/zpparammin.asm | 4 +- src/test/ref/zpparammin.cfg | 8 +- src/test/ref/zpparammin.log | 274 +- src/test/ref/zpparammin.sym | 58 +- src/test/ref/zpptr.cfg | 2 +- src/test/ref/zpptr.log | 136 +- src/test/ref/zpptr.sym | 30 +- 2482 files changed, 113330 insertions(+), 112988 deletions(-) diff --git a/src/main/java/dk/camelot64/kickc/model/Initializers.java b/src/main/java/dk/camelot64/kickc/model/Initializers.java index 5361d584e..6db8334eb 100644 --- a/src/main/java/dk/camelot64/kickc/model/Initializers.java +++ b/src/main/java/dk/camelot64/kickc/model/Initializers.java @@ -42,7 +42,7 @@ public class Initializers { return new ConstantArrayFilled(typePointer.getElementType(), typePointer.getArraySpec().getArraySize()); } } else { - throw new CompileError("Default initializer not implemented for type " + typeSpec.getType().getTypeName(), statementSource); + throw new CompileError("Default initializer not implemented for type " + typeSpec.getType().toCDecl(), statementSource); } } @@ -120,7 +120,7 @@ public class Initializers { if(SymbolTypeConversion.assignmentTypeMatch(typeSpec.getType(), inferredType)) initValue = new CastValue(typeSpec.getType(), initValue); else - throw new CompileError("Type mismatch (" + typeSpec.getType().getTypeName() + ") cannot be assigned from '" + initValue + "'.", source); + throw new CompileError("Type mismatch (" + typeSpec.getType().toCDecl() + ") cannot be assigned from '" + initValue + "'.", source); } } } @@ -150,7 +150,7 @@ public class Initializers { } else { throw new CompileError( "Struct initializer has wrong size (" + valueList.getList().size() + "), " + - "which does not match the number of members in " + structType.getTypeName() + " (" + structInitNeedSize + " members).\n" + + "which does not match the number of members in " + structType.toCDecl() + " (" + structInitNeedSize + " members).\n" + " Struct initializer: " + valueList.toString(program), source); diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorTypeId.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorTypeId.java index ba93af37b..6de3d41ba 100644 --- a/src/main/java/dk/camelot64/kickc/model/operators/OperatorTypeId.java +++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorTypeId.java @@ -42,7 +42,7 @@ public class OperatorTypeId extends OperatorUnary { * @return The constant variable */ public static ConstantRef getTypeIdConstantVar(ProgramScope programScope, SymbolType type) { - String typeConstName = "TYPEID_" + getTypeIdConstantName(type); + String typeConstName = getTypeIdConstantName(type); Variable typeIdConstant = programScope.getLocalConstant(typeConstName); if(typeIdConstant == null) { // Constant not found - create it @@ -60,13 +60,7 @@ public class OperatorTypeId extends OperatorUnary { * @return The name of the constant */ private static String getTypeIdConstantName(SymbolType type) { - if(type instanceof SymbolTypeProcedure) { - return "PROCEDURE"; - } else if(type instanceof SymbolTypePointer) { - return "POINTER_" + getTypeIdConstantName(((SymbolTypePointer) type).getElementType()); - } else { - return type.getTypeBaseName().toUpperCase(Locale.ENGLISH).replace(" ", "_"); - } + return "TYPEID_" + type.getConstantFriendlyName(); } /** diff --git a/src/main/java/dk/camelot64/kickc/model/statements/StatementCall.java b/src/main/java/dk/camelot64/kickc/model/statements/StatementCall.java index 6130cfd33..db5563d05 100644 --- a/src/main/java/dk/camelot64/kickc/model/statements/StatementCall.java +++ b/src/main/java/dk/camelot64/kickc/model/statements/StatementCall.java @@ -111,7 +111,7 @@ public class StatementCall extends StatementBase implements StatementLValue, Sta first = false; if(onlyTypes) { final SymbolType symbolType = SymbolTypeInference.inferType(program.getScope(), parameter); - res.append(symbolType.getTypeName()); + res.append(symbolType.toCDecl()); } else { res.append(parameter.toString(program)); } diff --git a/src/main/java/dk/camelot64/kickc/model/symbols/Label.java b/src/main/java/dk/camelot64/kickc/model/symbols/Label.java index 6b89fe254..1ac801fd4 100644 --- a/src/main/java/dk/camelot64/kickc/model/symbols/Label.java +++ b/src/main/java/dk/camelot64/kickc/model/symbols/Label.java @@ -96,7 +96,7 @@ public class Label implements Symbol { if(program == null) { return getFullName(); } else { - return getType().getTypeName() + " " + getFullName(); + return getType().toCDecl(getFullName()); } } diff --git a/src/main/java/dk/camelot64/kickc/model/symbols/Procedure.java b/src/main/java/dk/camelot64/kickc/model/symbols/Procedure.java index f897a0d8e..fbb104cc3 100644 --- a/src/main/java/dk/camelot64/kickc/model/symbols/Procedure.java +++ b/src/main/java/dk/camelot64/kickc/model/symbols/Procedure.java @@ -224,6 +224,7 @@ public class Procedure extends Scope { /** * Get references to all constructors needed for this procedure + * * @return The references */ public List getConstructorRefs() { @@ -261,23 +262,23 @@ public class Procedure extends Scope { if(interruptType != null) { res.append("__interrupt(").append(interruptType).append(") "); } - res.append(getReturnType().getTypeName()).append(" ").append(getFullName()).append("("); - boolean first = true; - if(parameterNames != null) { - for(Variable parameter : getParameters()) { - if(!first) res.append(" , "); - first = false; - if(onlyTypes) { - res.append(parameter.getType().getTypeName()); - } else { - res.append(parameter.getType().getTypeName()+" "+parameter.toString(program)); + if(onlyTypes) { + res.append(getType().toCDecl()); + } else { + res.append(getReturnType().toCDecl()).append(" ").append(getFullName()).append("("); + boolean first = true; + if(parameterNames != null) { + for(Variable parameter : getParameters()) { + if(!first) res.append(" , "); + first = false; + res.append(parameter.toCDecl()); } } + if(isVariableLengthParameterList()) { + res.append(", ..."); + } + res.append(")"); } - if(isVariableLengthParameterList()) { - res.append(", ..."); - } - res.append(")"); return res.toString(); } diff --git a/src/main/java/dk/camelot64/kickc/model/symbols/Scope.java b/src/main/java/dk/camelot64/kickc/model/symbols/Scope.java index 896586a5e..a02f1af57 100644 --- a/src/main/java/dk/camelot64/kickc/model/symbols/Scope.java +++ b/src/main/java/dk/camelot64/kickc/model/symbols/Scope.java @@ -186,7 +186,7 @@ public abstract class Scope implements Symbol, Serializable { public Variable findVariable(String name) { final Symbol symbol = findSymbol(name); - if(symbol!=null && !(symbol instanceof Variable)) + if(symbol != null && !(symbol instanceof Variable)) throw new InternalError("Symbol is not a variable! " + symbol.toString()); return (Variable) symbol; } @@ -286,7 +286,7 @@ public abstract class Scope implements Symbol, Serializable { public Variable getLocalVar(String name) { final Symbol symbol = getLocalSymbol(name); - if(symbol!=null && !(symbol instanceof Variable)) + if(symbol != null && !(symbol instanceof Variable)) throw new InternalError("Symbol is not a variable! " + symbol.toString()); return (Variable) symbol; } @@ -307,35 +307,35 @@ public abstract class Scope implements Symbol, Serializable { public Label getLocalLabel(String name) { final Symbol symbol = getLocalSymbol(name); - if(symbol!=null && !(symbol instanceof Label)) + if(symbol != null && !(symbol instanceof Label)) throw new InternalError("Symbol is not a label! " + symbol.toString()); return (Label) getLocalSymbol(name); } public BlockScope getLocalBlockScope(String name) { final Symbol symbol = getLocalSymbol(name); - if(symbol!=null && !(symbol instanceof BlockScope)) + if(symbol != null && !(symbol instanceof BlockScope)) throw new InternalError("Symbol is not a block scope! " + symbol.toString()); return (BlockScope) symbol; } public StructDefinition getLocalStructDefinition(String name) { final Symbol symbol = getLocalSymbol(name); - if(symbol!=null && !(symbol instanceof StructDefinition)) + if(symbol != null && !(symbol instanceof StructDefinition)) throw new InternalError("Symbol is not a struct definition! " + symbol.toString()); return (StructDefinition) symbol; } public EnumDefinition getLocalEnumDefinition(String name) { final Symbol symbol = getLocalSymbol(name); - if(symbol!=null && !(symbol instanceof EnumDefinition)) + if(symbol != null && !(symbol instanceof EnumDefinition)) throw new InternalError("Symbol is not an enum definition! " + symbol.toString()); return (EnumDefinition) symbol; } public Scope getLocalScope(String name) { final Symbol symbol = getLocalSymbol(name); - if(symbol!=null && !(symbol instanceof Scope)) + if(symbol != null && !(symbol instanceof Scope)) throw new InternalError("Symbol is not a scope! " + symbol.toString()); return (Scope) symbol; } @@ -350,47 +350,44 @@ public abstract class Scope implements Symbol, Serializable { Symbol symbol = symbols.get(name); if(symbol instanceof Scope) { // Do not output struct definitions - if(symbol instanceof StructDefinition ) + if(symbol instanceof StructDefinition) continue; - if(!onlyVars || symbol instanceof Procedure || symbol instanceof BlockScope|| symbol instanceof ProgramScope) + if(!onlyVars || symbol instanceof Procedure || symbol instanceof BlockScope || symbol instanceof ProgramScope) res.append(((Scope) symbol).toStringVars(program, onlyVars)); } else if(symbol instanceof Variable) { Variable symVar = (Variable) symbol; if(!onlyVars || symVar.isVariable()) { // Output if not instructed to only output variables - or if it is a variable - res.append(symVar.typeString() + " " + symVar.toString()); - if(symVar.isArray()) { - res.append("["); - if(symVar.getArraySize() != null) { - res.append(symVar.getArraySize().toString(program)); - } - res.append("] "); + if(symVar.isKindLoadStore()) res.append("__loadstore "); + if(symVar.isKindConstant()) res.append("__constant "); + res.append(symVar.getType().toCDecl(symVar.getFullName())); + if(symVar.getInitValue() != null) { + res.append(" = " + symVar.getInitValue().toString(program)); } + boolean extra = false; if(symVar.getAsmName() != null && !symVar.getName().equals(symVar.getAsmName())) { + if(!extra) { res.append(" //"); extra = true; } res.append(" " + symVar.getAsmName()); } - if(symVar.isKindLoadStore()) { - res.append(" loadstore"); - } Registers.Register declRegister = symVar.getRegister(); if(declRegister != null) { + if(!extra) { res.append(" //"); extra = true; } res.append(" !" + declRegister); } if(symVar.isVariable()) { Registers.Register register = symVar.getAllocation(); if(register != null && !register.equals(declRegister)) { + if(!extra) { res.append(" //"); extra = true; } res.append(" " + register); } if(registerWeights != null) { Double weight = registerWeights.getWeight(symVar.getVariableRef()); if(weight != null) { + if(!extra) { res.append(" //"); extra = true; } res.append(" " + weight); } } } - if(symVar.getInitValue() != null) { - res.append(" = " + symVar.getInitValue().toString(program)); - } res.append("\n"); } } else if(!onlyVars) { diff --git a/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java b/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java index eb123bb95..c25f654c9 100644 --- a/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java +++ b/src/main/java/dk/camelot64/kickc/model/symbols/Variable.java @@ -557,21 +557,6 @@ public class Variable implements Symbol { return toString(); } - /** - * Get a string describing the type of the variable - * - * @return The type as a string - */ - public String typeString() { - final StringBuilder print = new StringBuilder(); - print - .append(isKindConstant() ? "constant " : "") - .append(getType().getTypeName()) - .append(isKindIntermediate() ? "~" : "") - ; - return print.toString(); - } - public String toCDecl() { StringBuilder cdecl = new StringBuilder(); cdecl.append(getType().toCDecl(getLocalName())); diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java index 985af22c0..9f17b5307 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolType.java @@ -103,22 +103,6 @@ public interface SymbolType extends Serializable { return null; } - /** - * Get the name of the type - * - * @return The type name - */ - default String getTypeName() { - return (isVolatile()?"volatile ":"") + (isNomodify()?"const ":"") + getTypeBaseName(); - } - - /** - * Get the type base name (without const/volatile) - * - * @return type base name - */ - String getTypeBaseName(); - /** * Get the size of the type (in bytes). * @@ -136,14 +120,24 @@ public interface SymbolType extends Serializable { return SDWORD.equals(type) || DWORD.equals(type) || SWORD.equals(type) || WORD.equals(type) || SBYTE.equals(type) || BYTE.equals(type) || NUMBER.equals(type) || UNUMBER.equals(type) || SNUMBER.equals(type); } + default String toCDecl() { + return toCDecl(""); + } + /** * Get the C declaration formatted type. * * @return The C declaration string * @param parentCDecl */ - default public String toCDecl(String parentCDecl) { + default String toCDecl(String parentCDecl) { return ""; } + /** Get a name that can be used as part of a constant (such as SIZEOF_, INDEXOF, ...) + * + * @return The name + */ + String getConstantFriendlyName(); + } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java index dde00d12d..b3ce744c5 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeBlockScope.java @@ -21,11 +21,6 @@ public class SymbolTypeBlockScope implements SymbolType { return false; } - @Override - public String getTypeBaseName() { - return "BLOCK"; - } - @Override public int getSizeBytes() { return -1; @@ -43,7 +38,11 @@ public class SymbolTypeBlockScope implements SymbolType { @Override public String toString() { - return getTypeName(); + return "block"; } + @Override + public String getConstantFriendlyName() { + return "BLOCK"; + } } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java index aa53b3cb1..ff31941bc 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeEnum.java @@ -2,6 +2,7 @@ package dk.camelot64.kickc.model.types; import dk.camelot64.kickc.model.symbols.EnumDefinition; +import java.util.Locale; import java.util.Objects; /** An enum */ @@ -44,9 +45,8 @@ public class SymbolTypeEnum implements SymbolType { return isNomodify; } - @Override - public String getTypeBaseName() { - return "enum " + this.enumName; + public String getEnumName() { + return enumName; } @Override @@ -60,7 +60,7 @@ public class SymbolTypeEnum implements SymbolType { @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -85,9 +85,14 @@ public class SymbolTypeEnum implements SymbolType { cdecl.append("const "); cdecl.append("enum "); cdecl.append(this.enumName); - cdecl.append(" "); + if(parentCDecl.length()>0) + cdecl.append(" "); cdecl.append(parentCDecl); return cdecl.toString(); } + @Override + public String getConstantFriendlyName() { + return "ENUM_"+enumName.toUpperCase(Locale.ENGLISH); + } } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInteger.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInteger.java index 485328c15..da22c06f0 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInteger.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeInteger.java @@ -3,4 +3,6 @@ package dk.camelot64.kickc.model.types; /** Integer type marker interface. */ public interface SymbolTypeInteger extends SymbolType { + public String getTypeName(); + } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java index 8cea5f86f..92d476791 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerAuto.java @@ -1,5 +1,6 @@ package dk.camelot64.kickc.model.types; +import java.util.Locale; import java.util.Objects; /** Integer type that has not yet been fixed. This is used for constant expressions. The type is fixed when the constant meets a fixed type. */ @@ -27,7 +28,7 @@ public class SymbolTypeIntegerAuto implements SymbolTypeInteger { } @Override - public String getTypeBaseName() { + public String getTypeName() { return typeName; } @@ -38,7 +39,7 @@ public class SymbolTypeIntegerAuto implements SymbolTypeInteger { @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -61,9 +62,16 @@ public class SymbolTypeIntegerAuto implements SymbolTypeInteger { cdecl.append("volatile "); if(isNomodify()) cdecl.append("const "); - cdecl.append(this.getTypeBaseName()); - cdecl.append(" "); + cdecl.append(this.typeName); + if(parentCDecl.length()>0) + cdecl.append(" "); cdecl.append(parentCDecl); return cdecl.toString(); } + + @Override + public String getConstantFriendlyName() { + return typeName.toUpperCase(Locale.ENGLISH).replace(" ", "_"); + } + } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java index d62ba54f6..d549edc5f 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeIntegerFixed.java @@ -2,6 +2,7 @@ package dk.camelot64.kickc.model.types; import java.util.ArrayList; import java.util.Collection; +import java.util.Locale; import java.util.Objects; /** Integer type with a fixed size (byte, signed byte, word, ...). */ @@ -87,6 +88,11 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger { return isNomodify; } + @Override + public String getTypeName() { + return typeBaseName; + } + /** * Determines if a value can be represented by the type without loss of information * @@ -97,11 +103,6 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger { return number >= getMinValue() && number <= getMaxValue(); } - @Override - public String getTypeBaseName() { - return typeBaseName; - } - public String getCTypeBaseName() { return cTypeBaseName; } @@ -129,7 +130,7 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger { @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -146,6 +147,11 @@ public class SymbolTypeIntegerFixed implements SymbolTypeInteger { return cdecl.toString(); } + @Override + public String getConstantFriendlyName() { + return cTypeBaseName.toUpperCase(Locale.ENGLISH).replace(" ", "_"); + } + @Override public boolean equals(Object o) { if(this == o) return true; diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java index 9dd705785..b27a8d4f9 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeNamed.java @@ -1,15 +1,17 @@ package dk.camelot64.kickc.model.types; +import java.util.Locale; + /** Basic named (string, char, ...) Symbol Types */ public class SymbolTypeNamed implements SymbolType { - private String typeBaseName; + private String typeName; private int sizeBytes; private final boolean isVolatile; private final boolean isNomodify; - SymbolTypeNamed(String typeBaseName, int sizeBytes, boolean isVolatile, boolean isNomodify) { - this.typeBaseName = typeBaseName; + SymbolTypeNamed(String typeName, int sizeBytes, boolean isVolatile, boolean isNomodify) { + this.typeName = typeName; this.sizeBytes = sizeBytes; this.isVolatile = isVolatile; this.isNomodify = isNomodify; @@ -17,7 +19,7 @@ public class SymbolTypeNamed implements SymbolType { @Override public SymbolType getQualified(boolean isVolatile, boolean isNomodify) { - return new SymbolTypeNamed(this.typeBaseName, this.sizeBytes, isVolatile, isNomodify); + return new SymbolTypeNamed(this.typeName, this.sizeBytes, isVolatile, isNomodify); } @Override @@ -30,8 +32,8 @@ public class SymbolTypeNamed implements SymbolType { return isNomodify; } - public String getTypeBaseName() { - return typeBaseName; + public String getTypeName() { + return typeName; } @Override @@ -50,17 +52,17 @@ public class SymbolTypeNamed implements SymbolType { SymbolTypeNamed that = (SymbolTypeNamed) o; - return typeBaseName != null ? typeBaseName.equals(that.typeBaseName) : that.typeBaseName == null; + return typeName != null ? typeName.equals(that.typeName) : that.typeName == null; } @Override public int hashCode() { - return typeBaseName != null ? typeBaseName.hashCode() : 0; + return typeName != null ? typeName.hashCode() : 0; } @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -70,11 +72,17 @@ public class SymbolTypeNamed implements SymbolType { cdecl.append("volatile "); if(isNomodify()) cdecl.append("const "); - cdecl.append(this.getTypeBaseName()); + cdecl.append(this.typeName); if(parentCDecl.length()>0) cdecl.append(" "); cdecl.append(parentCDecl); return cdecl.toString(); } + + @Override + public String getConstantFriendlyName() { + return typeName.toUpperCase(Locale.ENGLISH).replace(" ", "_"); + } + } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java index 201b23f0e..ba4d22fb6 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypePointer.java @@ -56,21 +56,6 @@ public class SymbolTypePointer implements SymbolType { return arraySpec; } - @Override - public String getTypeName() { - String name = elementType.getTypeName() + "*"; - if(isVolatile) - name += " volatile"; - if(isNomodify) - name += " const"; - return name; - } - - @Override - public String getTypeBaseName() { - return elementType.getTypeName() + "*"; - } - @Override public int getSizeBytes() { return SIZE_POINTER_BYTES; @@ -91,7 +76,7 @@ public class SymbolTypePointer implements SymbolType { @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -105,7 +90,8 @@ public class SymbolTypePointer implements SymbolType { if(parentCDecl.contains("*")) cdecl.append(")"); cdecl.append("["); - cdecl.append(getArraySpec().getArraySize().toString()); + if(getArraySpec().getArraySize()!=null) + cdecl.append(getArraySpec().getArraySize().toString()); cdecl.append("]"); return this.getElementType().toCDecl(cdecl.toString()); } else { @@ -122,4 +108,10 @@ public class SymbolTypePointer implements SymbolType { return this.getElementType().toCDecl(cdecl.toString()); } } + + @Override + public String getConstantFriendlyName() { + return "POINTER_"+elementType.getConstantFriendlyName(); + } + } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java index 6dcfbff45..687f875f6 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProcedure.java @@ -47,25 +47,9 @@ public class SymbolTypeProcedure implements SymbolType { this.paramTypes = paramTypes; } - @Override - public String getTypeBaseName() { - final StringBuilder typeBaseName = new StringBuilder(); - typeBaseName.append(returnType.getTypeBaseName()); - typeBaseName.append("("); - boolean first = true; - for(SymbolType paramType : paramTypes) { - if(!first) - typeBaseName.append(","); - first = false; - typeBaseName.append(paramType.getTypeBaseName()); - } - typeBaseName.append(")"); - return typeBaseName.toString(); - } - @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -92,9 +76,14 @@ public class SymbolTypeProcedure implements SymbolType { cdecl.append(")"); cdecl.append("("); StringJoiner joiner = new StringJoiner(", "); - paramTypes.stream().forEach(symbolType -> joiner.add(symbolType.toCDecl(""))); + paramTypes.stream().forEach(symbolType -> joiner.add(symbolType.toCDecl())); cdecl.append(joiner); cdecl.append(")"); return getReturnType().toCDecl(cdecl.toString()); } + + @Override + public String getConstantFriendlyName() { + return "PROCEDURE"; + } } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java index 444190076..aa61a1f6a 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeProgram.java @@ -21,11 +21,6 @@ public class SymbolTypeProgram implements SymbolType { return false; } - @Override - public String getTypeBaseName() { - return "PROGRAM"; - } - @Override public int getSizeBytes() { return -1; @@ -43,7 +38,11 @@ public class SymbolTypeProgram implements SymbolType { @Override public String toString() { - return getTypeName(); + return "program"; } + @Override + public String getConstantFriendlyName() { + return "PROGRAM"; + } } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java index 699e1a4d5..0ee5b4938 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeStruct.java @@ -7,6 +7,7 @@ import dk.camelot64.kickc.model.values.ConstantInteger; import dk.camelot64.kickc.model.values.ConstantLiteral; import dk.camelot64.kickc.model.values.ConstantValue; +import java.util.Locale; import java.util.Objects; /** A struct/union */ @@ -61,15 +62,6 @@ public class SymbolTypeStruct implements SymbolType { return isNomodify; } - @Override - public String getTypeBaseName() { - if(isUnion) { - return "union " + this.structName; - } else { - return "struct " + this.structName; - } - } - public String getStructTypeName() { return structName; } @@ -144,7 +136,7 @@ public class SymbolTypeStruct implements SymbolType { @Override public String toString() { - return getTypeName(); + return toCDecl(); } @Override @@ -160,8 +152,18 @@ public class SymbolTypeStruct implements SymbolType { cdecl.append("struct "); } cdecl.append(this.structName); - cdecl.append(" "); + if(parentCDecl.length()>0) + cdecl.append(" "); cdecl.append(parentCDecl); return cdecl.toString(); } + + @Override + public String getConstantFriendlyName() { + if(isUnion) { + return "UNION_"+structName.toUpperCase(Locale.ENGLISH); + } else { + return "STRUCT_"+structName.toUpperCase(Locale.ENGLISH); + } + } } diff --git a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java index 19fb41373..76d9d52c6 100644 --- a/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java +++ b/src/main/java/dk/camelot64/kickc/model/types/SymbolTypeTypeDefScope.java @@ -21,11 +21,6 @@ public class SymbolTypeTypeDefScope implements SymbolType { return false; } - @Override - public String getTypeBaseName() { - return "TYPEDEF"; - } - @Override public int getSizeBytes() { return -1; @@ -43,7 +38,11 @@ public class SymbolTypeTypeDefScope implements SymbolType { @Override public String toString() { - return getTypeName(); + return toCDecl(); } + @Override + public String getConstantFriendlyName() { + return "TYPEDEF"; + } } diff --git a/src/main/java/dk/camelot64/kickc/model/values/CastValue.java b/src/main/java/dk/camelot64/kickc/model/values/CastValue.java index 0586b0ea8..7812d1a0b 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/CastValue.java +++ b/src/main/java/dk/camelot64/kickc/model/values/CastValue.java @@ -38,7 +38,7 @@ public class CastValue implements RValue { @Override public String toString(Program program) { - return "("+ toType.toString()+")"+ value.toString(program); + return "("+ toType.toCDecl()+")"+ value.toString(program); } @Override diff --git a/src/main/java/dk/camelot64/kickc/model/values/ConstantDouble.java b/src/main/java/dk/camelot64/kickc/model/values/ConstantDouble.java index a6686771d..84777ae60 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/ConstantDouble.java +++ b/src/main/java/dk/camelot64/kickc/model/values/ConstantDouble.java @@ -39,7 +39,7 @@ public class ConstantDouble implements ConstantLiteral { if(program == null) { return Double.toString(number); } else { - return "(" + SymbolType.VOID.getTypeName() + ") " + Double.toString(number); + return "(" + SymbolType.VOID.toCDecl() + ") " + Double.toString(number); } } diff --git a/src/main/java/dk/camelot64/kickc/model/values/ConstantPointer.java b/src/main/java/dk/camelot64/kickc/model/values/ConstantPointer.java index dd8bf3940..ec7b2ea7a 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/ConstantPointer.java +++ b/src/main/java/dk/camelot64/kickc/model/values/ConstantPointer.java @@ -52,7 +52,7 @@ public class ConstantPointer implements ConstantEnumerable { @Override public String toString(Program program) { - return "(" + getType().getTypeName() + ") " + Long.toString(location); + return "(" + getType().toCDecl() + ") " + Long.toString(location); } @Override diff --git a/src/main/java/dk/camelot64/kickc/model/values/MemcpyValue.java b/src/main/java/dk/camelot64/kickc/model/values/MemcpyValue.java index f8a9a3f11..66cf088ee 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/MemcpyValue.java +++ b/src/main/java/dk/camelot64/kickc/model/values/MemcpyValue.java @@ -43,7 +43,7 @@ public class MemcpyValue implements RValue { @Override public String toString(Program program) { - return "memcpy("+source.toString(program)+", "+type.getTypeName()+", "+size.toString(program)+")"; + return "memcpy("+source.toString(program)+", "+ type.toCDecl() +", "+size.toString(program)+")"; } diff --git a/src/main/java/dk/camelot64/kickc/model/values/MemsetValue.java b/src/main/java/dk/camelot64/kickc/model/values/MemsetValue.java index 8efb7a27e..71815cacf 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/MemsetValue.java +++ b/src/main/java/dk/camelot64/kickc/model/values/MemsetValue.java @@ -31,7 +31,7 @@ public class MemsetValue implements RValue { @Override public String toString(Program program) { - return "memset("+type.getTypeName()+", "+size.toString(program)+")"; + return "memset("+ type.toCDecl() +", "+size.toString(program)+")"; } diff --git a/src/main/java/dk/camelot64/kickc/model/values/StackIdxValue.java b/src/main/java/dk/camelot64/kickc/model/values/StackIdxValue.java index c4a4653d6..1804d4801 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/StackIdxValue.java +++ b/src/main/java/dk/camelot64/kickc/model/values/StackIdxValue.java @@ -35,7 +35,7 @@ public class StackIdxValue implements LValue { @Override public String toString(Program program) { - return "stackidx("+valueType.getTypeName()+","+stackOffset.toString(program)+")"; + return "stackidx("+ valueType.toCDecl() +","+stackOffset.toString(program)+")"; } diff --git a/src/main/java/dk/camelot64/kickc/model/values/StackPullValue.java b/src/main/java/dk/camelot64/kickc/model/values/StackPullValue.java index 8b526313c..3ab37f9cb 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/StackPullValue.java +++ b/src/main/java/dk/camelot64/kickc/model/values/StackPullValue.java @@ -19,6 +19,6 @@ public class StackPullValue implements RValue { @Override public String toString(Program program) { - return "stackpull(" + type.getTypeName()+ ")"; + return "stackpull(" + type.toCDecl() + ")"; } } diff --git a/src/main/java/dk/camelot64/kickc/model/values/StackPushValue.java b/src/main/java/dk/camelot64/kickc/model/values/StackPushValue.java index 7a73700ff..c3d47d582 100644 --- a/src/main/java/dk/camelot64/kickc/model/values/StackPushValue.java +++ b/src/main/java/dk/camelot64/kickc/model/values/StackPushValue.java @@ -19,6 +19,6 @@ public class StackPushValue implements LValue { @Override public String toString(Program program) { - return "stackpush(" + type.getTypeName()+ ")"; + return "stackpush(" + type.toCDecl() + ")"; } } diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java index 65594d202..f53591671 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java @@ -26,7 +26,6 @@ import java.nio.file.Path; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -1017,7 +1016,7 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor versions = new ArrayList<>(procedure.getVersions(parameter)); - if(versions.size() > 0) - param = versions.get(0); - else - // Parameter optimized away to a constant or unused - continue; - } - - Registers.Register allocation = param.getAllocation(); if(i++ > 0) signature.append(", "); - signature.append(param.getType().getTypeBaseName()).append(" "); - if(allocation instanceof Registers.RegisterZpMem) { - Registers.RegisterZpMem registerZp = (Registers.RegisterZpMem) allocation; - signature.append("zp(").append(AsmFormat.getAsmNumber(registerZp.getZp())).append(")"); - } else if(allocation instanceof Registers.RegisterMainMem) { - Registers.RegisterMainMem registerMainMem = (Registers.RegisterMainMem) allocation; - signature.append("mem(").append(registerMainMem.getAddress() == null ? "" : AsmFormat.getAsmNumber(registerMainMem.getAddress())).append(")"); - } else if(allocation instanceof Registers.RegisterAByte) { - signature.append("register(A)"); - } else if(allocation instanceof Registers.RegisterXByte) { - signature.append("register(X)"); - } else if(allocation instanceof Registers.RegisterYByte) { - signature.append("register(Y)"); - } else if(allocation instanceof Registers.RegisterZByte) { - signature.append("register(Z)"); - } - signature.append(" "); - signature.append(parameter.getLocalName()); + Variable param = generateSignatureVar(parameter, procedure, signature); + signature.append(param.getType().toCDecl(parameter.getLocalName())); } signature.append(")"); if(i > 0) { @@ -260,6 +236,49 @@ public class Pass4CodeGeneration { } } + /** + * Generate part of a comment that describes a returnvalue/parameter + * @param param The variable to describe + * @param scope The scope (procedure) + * @param signature The signature to append to + * @return The version of the variable chosen + */ + Variable generateSignatureVar(Variable param, Scope scope, StringBuilder signature) { + if(param==null) return param; + if(param.isKindPhiMaster()) { + List versions = new ArrayList<>(scope.getVersions(param)); + if(versions.size() > 0) + if(param.getLocalName().equals("return")) { + // Choose the last version for return values + param = versions.get(versions.size()-1); + } else { + // Choose the first version for parameters + param = versions.get(0); + } + else + // Parameter optimized away to a constant or unused + return param; + } + + Registers.Register allocation = param.getAllocation(); + if(allocation instanceof Registers.RegisterZpMem) { + Registers.RegisterZpMem registerZp = (Registers.RegisterZpMem) allocation; + signature.append("__zp(").append(AsmFormat.getAsmNumber(registerZp.getZp())).append(") "); + } else if(allocation instanceof Registers.RegisterMainMem) { + Registers.RegisterMainMem registerMainMem = (Registers.RegisterMainMem) allocation; + signature.append("__mem(").append(registerMainMem.getAddress() == null ? "" : AsmFormat.getAsmNumber(registerMainMem.getAddress())).append(") "); + } else if(allocation instanceof Registers.RegisterAByte) { + signature.append("__register(A) "); + } else if(allocation instanceof Registers.RegisterXByte) { + signature.append("__register(X) "); + } else if(allocation instanceof Registers.RegisterYByte) { + signature.append("__register(Y) "); + } else if(allocation instanceof Registers.RegisterZByte) { + signature.append("__register(Z) "); + } + return param; + } + /** * Add comments to the assembler program * diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNAssertStructMembers.java b/src/main/java/dk/camelot64/kickc/passes/PassNAssertStructMembers.java index 161a093c4..98ac221ae 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNAssertStructMembers.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNAssertStructMembers.java @@ -31,11 +31,11 @@ public class PassNAssertStructMembers extends Pass2SsaOptimization { StructDefinition structDefinition = structType.getStructDefinition(getScope()); Variable member = structDefinition.getMember(structMemberRef.getMemberName()); if(member==null) { - throw new CompileError("Unknown struct member "+structMemberRef.getMemberName()+" in struct "+structType.getTypeName(), currentStmt); + throw new CompileError("Unknown struct member "+structMemberRef.getMemberName()+" in struct "+ structType.toCDecl(), currentStmt); } } else { if(type instanceof SymbolTypePointer) - throw new CompileError("member '"+structMemberRef.getMemberName()+"' reference type '"+type.getTypeBaseName()+"' is a pointer; did you mean to use '->'?", currentStmt); + throw new CompileError("member '"+structMemberRef.getMemberName()+"' reference type '"+type.toCDecl()+"' is a pointer; did you mean to use '->'?", currentStmt); else throw new CompileError("member '"+structMemberRef.getMemberName()+"' reference operator '.'/'->' applied to a non-struct", currentStmt); } diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeDeref.java b/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeDeref.java index f6c0d50e7..a88d11fae 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeDeref.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeDeref.java @@ -25,7 +25,7 @@ public class PassNAssertTypeDeref extends Pass2SsaAssertion { RValue pointer = ((PointerDereference) programValue.get()).getPointer(); SymbolType pointertype = SymbolTypeInference.inferType(getProgram().getScope(), pointer); if(!SymbolType.VAR.equals(pointertype) && !(pointertype instanceof SymbolTypePointer)) - throw new CompileError("Dereferencing a non-pointer type "+pointertype.getTypeName(), currentStmt); + throw new CompileError("Dereferencing a non-pointer type "+ pointertype.toCDecl(), currentStmt); } }); } diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java b/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java index 03008d8d2..f04646e32 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNAssertTypeMatch.java @@ -48,8 +48,8 @@ public class PassNAssertTypeMatch extends Pass2SsaAssertion { SymbolType rValueType = variable.getInitValue().getType(getScope()); if(SymbolTypeConversion.assignmentTypeMatch(lValueType, rValueType)) return; // Types do not match - getLog().append("ERROR! Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In initialization of " + variable.toString(getProgram())); - throw new CompileError("Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In initialization of " + variable.toString(getProgram())); + getLog().append("ERROR! Type mismatch (" + lValueType.toCDecl() + ") cannot be assigned from (" + rValueType.toCDecl() + "). In initialization of " + variable.toString(getProgram())); + throw new CompileError("Type mismatch (" + lValueType.toCDecl() + ") cannot be assigned from (" + rValueType.toCDecl() + "). In initialization of " + variable.toString(getProgram())); } private void checkAssignment(StatementAssignment statement) { @@ -66,8 +66,8 @@ public class PassNAssertTypeMatch extends Pass2SsaAssertion { SymbolType rValueType = SymbolTypeInference.inferType(getScope(), new AssignmentRValue(statement)); if(SymbolTypeConversion.assignmentTypeMatch(lValueType, rValueType)) return; // Types do not match - getLog().append("ERROR! Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In " + statement.toString(getProgram(), false)); - throw new CompileError("Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In " + statement.toString(getProgram(), false), statement.getSource()); + getLog().append("ERROR! Type mismatch (" + lValueType.toCDecl() + ") cannot be assigned from (" + rValueType.toCDecl() + "). In " + statement.toString(getProgram(), false)); + throw new CompileError("Type mismatch (" + lValueType.toCDecl() + ") cannot be assigned from (" + rValueType.toCDecl() + "). In " + statement.toString(getProgram(), false), statement.getSource()); } } diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNTypeInference.java b/src/main/java/dk/camelot64/kickc/passes/PassNTypeInference.java index 901471b8b..f0c5ecfe0 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNTypeInference.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNTypeInference.java @@ -115,7 +115,7 @@ public class PassNTypeInference extends Pass2SsaOptimization { } else if(valueType instanceof SymbolTypeInteger && type instanceof SymbolTypeInteger) { type = SymbolTypeConversion.convertedMathType((SymbolTypeInteger) valueType, (SymbolTypeInteger) type); } else { - throw new CompileError("Phi value has type mismatch " + rValue.toString() + " not matching type " + type.getTypeName()); + throw new CompileError("Phi value has type mismatch " + rValue.toString() + " not matching type " + type.toCDecl()); } } if(!SymbolType.VAR.equals(symbol.getType()) && !type.equals(symbol.getType())) { diff --git a/src/main/java/dk/camelot64/kickc/passes/utils/SizeOfConstants.java b/src/main/java/dk/camelot64/kickc/passes/utils/SizeOfConstants.java index 75c5cb63e..ecd193543 100644 --- a/src/main/java/dk/camelot64/kickc/passes/utils/SizeOfConstants.java +++ b/src/main/java/dk/camelot64/kickc/passes/utils/SizeOfConstants.java @@ -36,6 +36,7 @@ public class SizeOfConstants { /** * Fix the size value of the constant variable if needed. * Sizes for structs and other complex types is not known until late in Pass1, so they may need fixing. + * * @param programScope The program scope (used for finding/adding the constant). * @param type The type to get the variable for */ @@ -59,10 +60,10 @@ public class SizeOfConstants { */ public static String getSizeofConstantName(SymbolType type) { if(type instanceof SymbolTypePointer) { + // All pointers are the same size return "SIZEOF_POINTER"; - } else { - return "SIZEOF_" + type.getTypeBaseName().toUpperCase(Locale.ENGLISH).replace(" ", "_"); - } + } else + return "SIZEOF_"+type.getConstantFriendlyName(); } /** @@ -95,6 +96,6 @@ public class SizeOfConstants { * @return The name of the constant */ private static String getStructMemberOffsetConstantName(StructDefinition structDefinition, String memberName) { - return "OFFSET_" + structDefinition.getType().getTypeBaseName().toUpperCase(Locale.ENGLISH).replace(" ", "_") + "_" + memberName.toUpperCase(); + return "OFFSET_" + structDefinition.getType().getConstantFriendlyName()+ "_" + memberName.toUpperCase(Locale.ENGLISH); } } diff --git a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java index 6d77d3d96..c447585c6 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java +++ b/src/test/java/dk/camelot64/kickc/test/TestProgramsFast.java @@ -1588,7 +1588,7 @@ public class TestProgramsFast extends TestPrograms { @Test public void testFunctionAsArray() throws IOException { - assertError("function-as-array.c", "Dereferencing a non-pointer type void(byte)"); + assertError("function-as-array.c", "Dereferencing a non-pointer type void (char)"); } //@Test @@ -2306,7 +2306,7 @@ public class TestProgramsFast extends TestPrograms { @Test public void testStructError7() throws IOException { - assertError("struct-err-7.c", "Type mismatch (signed word) cannot be assigned from '*main::per.qwe'"); + assertError("struct-err-7.c", "Type mismatch (int) cannot be assigned from '*main::per.qwe'"); } @Test diff --git a/src/test/java/dk/camelot64/kickc/test/testTypeCDecl.java b/src/test/java/dk/camelot64/kickc/test/testTypeCDecl.java index c8a000fc1..5fb325330 100644 --- a/src/test/java/dk/camelot64/kickc/test/testTypeCDecl.java +++ b/src/test/java/dk/camelot64/kickc/test/testTypeCDecl.java @@ -14,6 +14,25 @@ import java.util.Arrays; /// https://cdecl.org public class testTypeCDecl { + @Test + void testTypes() { + Assertions.assertEquals("char",SymbolType.BYTE.toCDecl()); + Assertions.assertEquals("signed char",SymbolType.SBYTE.toCDecl()); + Assertions.assertEquals("int",SymbolType.SWORD.toCDecl()); + Assertions.assertEquals("unsigned int",SymbolType.WORD.toCDecl()); + Assertions.assertEquals("long",SymbolType.SDWORD.toCDecl()); + Assertions.assertEquals("unsigned long",SymbolType.DWORD.toCDecl()); + Assertions.assertEquals("long",SymbolType.SDWORD.toCDecl()); + Assertions.assertEquals("bool",SymbolType.BOOLEAN.toCDecl()); + Assertions.assertEquals("number",SymbolType.NUMBER.toCDecl()); + Assertions.assertEquals("snumber",SymbolType.SNUMBER.toCDecl()); + Assertions.assertEquals("unumber",SymbolType.UNUMBER.toCDecl()); + Assertions.assertEquals("volatile char", SymbolType.BYTE.getQualified(true, false).toCDecl()); + Assertions.assertEquals("char *",new SymbolTypePointer(SymbolType.BYTE).toCDecl()); + Assertions.assertEquals("int *",new SymbolTypePointer(SymbolType.SWORD).toCDecl()); + Assertions.assertEquals("unsigned long **",new SymbolTypePointer(new SymbolTypePointer(SymbolType.DWORD)).toCDecl()); + } + @Test void testSimple() { assertCDecl("char x", "x", SymbolType.BYTE); diff --git a/src/test/ref/address-0.log b/src/test/ref/address-0.log index a71220d37..46f28583e 100644 --- a/src/test/ref/address-0.log +++ b/src/test/ref/address-0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start::__init1: scope:[__start] from __start i = 3 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -33,18 +33,18 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte i loadstore !zp[-1]:2 +__loadstore char i // !zp[-1]:2 void main() -bool~ main::$0 +bool main::$0 Adding number conversion cast (unumber) 7 in main::$0 = i < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [1] if(i<7) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -97,7 +97,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -byte i loadstore !zp[-1]:2 84.49999999999999 +__loadstore char i // !zp[-1]:2 84.49999999999999 void main() Initial phi equivalence classes @@ -151,7 +151,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -204,9 +204,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte i loadstore !zp[-1]:2 zp[1]:2 84.49999999999999 +__loadstore char i // !zp[-1]:2 zp[1]:2 84.49999999999999 void main() zp[1]:2 [ i ] @@ -240,7 +240,7 @@ __start: { sta.z i // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/address-0.sym b/src/test/ref/address-0.sym index 039fd937d..7ec19e7c2 100644 --- a/src/test/ref/address-0.sym +++ b/src/test/ref/address-0.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte i loadstore !zp[-1]:2 zp[1]:2 84.49999999999999 +__loadstore char i // !zp[-1]:2 zp[1]:2 84.49999999999999 void main() zp[1]:2 [ i ] diff --git a/src/test/ref/address-1.log b/src/test/ref/address-1.log index 70fcc243e..aa1bbc515 100644 --- a/src/test/ref/address-1.log +++ b/src/test/ref/address-1.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,18 +28,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i loadstore !zp[-1]:2 +bool main::$0 +__loadstore char main::i // !zp[-1]:2 Adding number conversion cast (unumber) 7 in main::$0 = main::i < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [2] if(main::i<7) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i loadstore !zp[-1]:2 14.25 +__loadstore char main::i // !zp[-1]:2 14.25 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -148,9 +148,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i loadstore !zp[-1]:2 zp[1]:2 14.25 +__loadstore char main::i // !zp[-1]:2 zp[1]:2 14.25 zp[1]:2 [ main::i ] diff --git a/src/test/ref/address-1.sym b/src/test/ref/address-1.sym index b0a2b5cc2..cdd112028 100644 --- a/src/test/ref/address-1.sym +++ b/src/test/ref/address-1.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i loadstore !zp[-1]:2 zp[1]:2 14.25 +__loadstore char main::i // !zp[-1]:2 zp[1]:2 14.25 zp[1]:2 [ main::i ] diff --git a/src/test/ref/address-2.log b/src/test/ref/address-2.log index 06276a3ce..635b2d637 100644 --- a/src/test/ref/address-2.log +++ b/src/test/ref/address-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start::__init1: scope:[__start] from __start i = 3 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -33,18 +33,18 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte i loadstore !mem[-1]:8192 +__loadstore char i // !mem[-1]:8192 void main() -bool~ main::$0 +bool main::$0 Adding number conversion cast (unumber) 7 in main::$0 = i < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [1] if(i<7) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -97,7 +97,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -byte i loadstore !mem[-1]:8192 84.49999999999999 +__loadstore char i // !mem[-1]:8192 84.49999999999999 void main() Initial phi equivalence classes @@ -151,7 +151,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -204,9 +204,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte i loadstore !mem[-1]:8192 mem[1]:8192 84.49999999999999 +__loadstore char i // !mem[-1]:8192 mem[1]:8192 84.49999999999999 void main() mem[1]:8192 [ i ] @@ -240,7 +240,7 @@ __start: { sta i // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/address-2.sym b/src/test/ref/address-2.sym index a394f31d7..dc117f535 100644 --- a/src/test/ref/address-2.sym +++ b/src/test/ref/address-2.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte i loadstore !mem[-1]:8192 mem[1]:8192 84.49999999999999 +__loadstore char i // !mem[-1]:8192 mem[1]:8192 84.49999999999999 void main() mem[1]:8192 [ i ] diff --git a/src/test/ref/address-3.log b/src/test/ref/address-3.log index 51aa2be53..46a8d413d 100644 --- a/src/test/ref/address-3.log +++ b/src/test/ref/address-3.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,18 +28,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i loadstore !mem[-1]:8192 +bool main::$0 +__loadstore char main::i // !mem[-1]:8192 Adding number conversion cast (unumber) 7 in main::$0 = main::i < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [2] if(main::i<7) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i loadstore !mem[-1]:8192 14.25 +__loadstore char main::i // !mem[-1]:8192 14.25 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -148,9 +148,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i loadstore !mem[-1]:8192 mem[1]:8192 14.25 +__loadstore char main::i // !mem[-1]:8192 mem[1]:8192 14.25 mem[1]:8192 [ main::i ] diff --git a/src/test/ref/address-3.sym b/src/test/ref/address-3.sym index 5c82ffadc..e723c0915 100644 --- a/src/test/ref/address-3.sym +++ b/src/test/ref/address-3.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i loadstore !mem[-1]:8192 mem[1]:8192 14.25 +__loadstore char main::i // !mem[-1]:8192 mem[1]:8192 14.25 mem[1]:8192 [ main::i ] diff --git a/src/test/ref/address-4.log b/src/test/ref/address-4.log index 5a8a9aa87..94bad213e 100644 --- a/src/test/ref/address-4.log +++ b/src/test/ref/address-4.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,10 +11,10 @@ main::@1: scope:[main] from main main::@2 if(main::$0) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - main::$1 = main::i * SIZEOF_WORD + main::$1 = main::i * SIZEOF_UNSIGNED_INT SCREEN[main::$1] = main::ch main::i = ++ main::i - main::$2 = main::i * SIZEOF_WORD + main::$2 = main::i * SIZEOF_UNSIGNED_INT SCREEN[main::$2] = main::ch main::i = ++ main::i to:main::@1 @@ -28,7 +28,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -37,22 +37,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant word* SCREEN = (byte*)$400 -constant byte SIZEOF_WORD = 2 +__constant unsigned int *SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -constant const word main::ch = $102 -byte main::i loadstore !zp[-1]:2 +bool main::$0 +char main::$1 +char main::$2 +__constant const unsigned int main::ch = $102 +__loadstore char main::i // !zp[-1]:2 Adding number conversion cast (unumber) 8 in main::$0 = main::i < 8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [2] if(main::i<8) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -63,10 +63,10 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [2] main::$1 = main::i * SIZEOF_WORD -Rewriting multiplication to use shift [5] main::$2 = main::i * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$1 = main::i * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [5] main::$2 = main::i * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars CALL GRAPH @@ -97,9 +97,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte~ main::$2 22.0 -byte main::i loadstore !zp[-1]:2 9.875 +char main::$1 // 22.0 +char main::$2 // 22.0 +__loadstore char main::i // !zp[-1]:2 9.875 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -202,12 +202,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* SCREEN = (byte*) 1024 +__constant unsigned int *SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -constant const word main::ch = $102 -byte main::i loadstore !zp[-1]:2 zp[1]:2 9.875 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +__constant const unsigned int main::ch = $102 +__loadstore char main::i // !zp[-1]:2 zp[1]:2 9.875 zp[1]:2 [ main::i ] reg byte a [ main::$1 ] diff --git a/src/test/ref/address-4.sym b/src/test/ref/address-4.sym index 860f247cf..cf0da387e 100644 --- a/src/test/ref/address-4.sym +++ b/src/test/ref/address-4.sym @@ -1,9 +1,9 @@ -constant word* SCREEN = (byte*) 1024 +__constant unsigned int *SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -constant const word main::ch = $102 -byte main::i loadstore !zp[-1]:2 zp[1]:2 9.875 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +__constant const unsigned int main::ch = $102 +__loadstore char main::i // !zp[-1]:2 zp[1]:2 9.875 zp[1]:2 [ main::i ] reg byte a [ main::$1 ] diff --git a/src/test/ref/address-5.asm b/src/test/ref/address-5.asm index 181ea6c51..563d99ad5 100644 --- a/src/test/ref/address-5.asm +++ b/src/test/ref/address-5.asm @@ -34,7 +34,7 @@ main: { // } rts } -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // asm diff --git a/src/test/ref/address-5.cfg b/src/test/ref/address-5.cfg index 5966d395e..deecd8c69 100644 --- a/src/test/ref/address-5.cfg +++ b/src/test/ref/address-5.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,21 +17,21 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] print::ch = 'c' - [6] call print + [6] call print to:main::@1 main::@1: scope:[main] from main [7] print::ch = 'm' - [8] call print + [8] call print to:main::@2 main::@2: scope:[main] from main::@1 [9] print::ch = 'l' - [10] call print + [10] call print to:main::@return main::@return: scope:[main] from main::@2 [11] return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 asm { ldxidx ldach staSCREEN,x incidx } to:print::@return diff --git a/src/test/ref/address-5.log b/src/test/ref/address-5.log index a0e6bccfc..ec12d868c 100644 --- a/src/test/ref/address-5.log +++ b/src/test/ref/address-5.log @@ -1,20 +1,20 @@ Setting inferred volatile on symbol affected by address-of: print::ch in asm { ldxidx ldach staSCREEN,x incidx } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 print::ch = 'c' - call print + call print to:main::@1 main::@1: scope:[main] from main print::ch = 'm' - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 print::ch = 'l' - call print + call print to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 asm { ldxidx ldach staSCREEN,x incidx } to:print::@return @@ -37,7 +37,7 @@ __start::__init1: scope:[__start] from __start idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -46,14 +46,14 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte idx loadstore !zp[-1]:3 +__loadstore volatile char idx // !zp[-1]:3 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore +void print(volatile char ch) +__loadstore volatile char print::ch -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -81,7 +81,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -90,21 +90,21 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] print::ch = 'c' - [6] call print + [6] call print to:main::@1 main::@1: scope:[main] from main [7] print::ch = 'm' - [8] call print + [8] call print to:main::@2 main::@2: scope:[main] from main::@1 [9] print::ch = 'l' - [10] call print + [10] call print to:main::@return main::@return: scope:[main] from main::@2 [11] return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 asm { ldxidx ldach staSCREEN,x incidx } to:print::@return @@ -115,10 +115,10 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void __start() -volatile byte idx loadstore !zp[-1]:3 0.2222222222222222 +__loadstore volatile char idx // !zp[-1]:3 0.2222222222222222 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // 11.0 Initial phi equivalence classes Added variable idx to live range equivalence class [ idx ] @@ -181,7 +181,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -194,7 +194,7 @@ main: { // [5] print::ch = 'c' -- vbuz1=vbuc1 lda #'c' sta.z print.ch - // [6] call print + // [6] call print jsr print jmp __b1 // main::@1 @@ -202,7 +202,7 @@ main: { // [7] print::ch = 'm' -- vbuz1=vbuc1 lda #'m' sta.z print.ch - // [8] call print + // [8] call print jsr print jmp __b2 // main::@2 @@ -210,7 +210,7 @@ main: { // [9] print::ch = 'l' -- vbuz1=vbuc1 lda #'l' sta.z print.ch - // [10] call print + // [10] call print jsr print jmp __breturn // main::@return @@ -219,7 +219,7 @@ main: { rts } // print -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // asm { ldxidx ldach staSCREEN,x incidx } @@ -256,12 +256,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte idx loadstore !zp[-1]:3 zp[1]:3 0.2222222222222222 +__loadstore volatile char idx // !zp[-1]:3 zp[1]:3 0.2222222222222222 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore zp[1]:2 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // zp[1]:2 11.0 zp[1]:3 [ idx ] zp[1]:2 [ print::ch ] @@ -295,7 +295,7 @@ __start: { sta.z idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -307,21 +307,21 @@ main: { // [5] print::ch = 'c' -- vbuz1=vbuc1 lda #'c' sta.z print.ch - // [6] call print + // [6] call print jsr print // main::@1 // print('m') // [7] print::ch = 'm' -- vbuz1=vbuc1 lda #'m' sta.z print.ch - // [8] call print + // [8] call print jsr print // main::@2 // print('l') // [9] print::ch = 'l' -- vbuz1=vbuc1 lda #'l' sta.z print.ch - // [10] call print + // [10] call print jsr print // main::@return // } @@ -329,7 +329,7 @@ main: { rts } // print -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // asm diff --git a/src/test/ref/address-5.sym b/src/test/ref/address-5.sym index 5149ad7c0..ae6ec3913 100644 --- a/src/test/ref/address-5.sym +++ b/src/test/ref/address-5.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte idx loadstore !zp[-1]:3 zp[1]:3 0.2222222222222222 +__loadstore volatile char idx // !zp[-1]:3 zp[1]:3 0.2222222222222222 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore zp[1]:2 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // zp[1]:2 11.0 zp[1]:3 [ idx ] zp[1]:2 [ print::ch ] diff --git a/src/test/ref/address-6.asm b/src/test/ref/address-6.asm index bceec080f..6a8d81581 100644 --- a/src/test/ref/address-6.asm +++ b/src/test/ref/address-6.asm @@ -34,7 +34,7 @@ main: { // } rts } -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // asm diff --git a/src/test/ref/address-6.cfg b/src/test/ref/address-6.cfg index 5966d395e..deecd8c69 100644 --- a/src/test/ref/address-6.cfg +++ b/src/test/ref/address-6.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,21 +17,21 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] print::ch = 'c' - [6] call print + [6] call print to:main::@1 main::@1: scope:[main] from main [7] print::ch = 'm' - [8] call print + [8] call print to:main::@2 main::@2: scope:[main] from main::@1 [9] print::ch = 'l' - [10] call print + [10] call print to:main::@return main::@return: scope:[main] from main::@2 [11] return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 asm { ldxidx ldach staSCREEN,x incidx } to:print::@return diff --git a/src/test/ref/address-6.log b/src/test/ref/address-6.log index 8c7e0b4ff..40634ffb4 100644 --- a/src/test/ref/address-6.log +++ b/src/test/ref/address-6.log @@ -1,20 +1,20 @@ Setting inferred volatile on symbol affected by address-of: print::ch in asm { ldxidx ldach staSCREEN,x incidx } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 print::ch = 'c' - call print + call print to:main::@1 main::@1: scope:[main] from main print::ch = 'm' - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 print::ch = 'l' - call print + call print to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 asm { ldxidx ldach staSCREEN,x incidx } to:print::@return @@ -37,7 +37,7 @@ __start::__init1: scope:[__start] from __start idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -46,14 +46,14 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte idx loadstore !mem[-1]:12288 +__loadstore volatile char idx // !mem[-1]:12288 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore +void print(volatile char ch) +__loadstore volatile char print::ch -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -81,7 +81,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -90,21 +90,21 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] print::ch = 'c' - [6] call print + [6] call print to:main::@1 main::@1: scope:[main] from main [7] print::ch = 'm' - [8] call print + [8] call print to:main::@2 main::@2: scope:[main] from main::@1 [9] print::ch = 'l' - [10] call print + [10] call print to:main::@return main::@return: scope:[main] from main::@2 [11] return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 asm { ldxidx ldach staSCREEN,x incidx } to:print::@return @@ -115,10 +115,10 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void __start() -volatile byte idx loadstore !mem[-1]:12288 0.2222222222222222 +__loadstore volatile char idx // !mem[-1]:12288 0.2222222222222222 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // 11.0 Initial phi equivalence classes Added variable idx to live range equivalence class [ idx ] @@ -181,7 +181,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -194,7 +194,7 @@ main: { // [5] print::ch = 'c' -- vbuz1=vbuc1 lda #'c' sta.z print.ch - // [6] call print + // [6] call print jsr print jmp __b1 // main::@1 @@ -202,7 +202,7 @@ main: { // [7] print::ch = 'm' -- vbuz1=vbuc1 lda #'m' sta.z print.ch - // [8] call print + // [8] call print jsr print jmp __b2 // main::@2 @@ -210,7 +210,7 @@ main: { // [9] print::ch = 'l' -- vbuz1=vbuc1 lda #'l' sta.z print.ch - // [10] call print + // [10] call print jsr print jmp __breturn // main::@return @@ -219,7 +219,7 @@ main: { rts } // print -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // asm { ldxidx ldach staSCREEN,x incidx } @@ -256,12 +256,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte idx loadstore !mem[-1]:12288 mem[1]:12288 0.2222222222222222 +__loadstore volatile char idx // !mem[-1]:12288 mem[1]:12288 0.2222222222222222 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore zp[1]:2 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // zp[1]:2 11.0 mem[1]:12288 [ idx ] zp[1]:2 [ print::ch ] @@ -295,7 +295,7 @@ __start: { sta idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -307,21 +307,21 @@ main: { // [5] print::ch = 'c' -- vbuz1=vbuc1 lda #'c' sta.z print.ch - // [6] call print + // [6] call print jsr print // main::@1 // print('m') // [7] print::ch = 'm' -- vbuz1=vbuc1 lda #'m' sta.z print.ch - // [8] call print + // [8] call print jsr print // main::@2 // print('l') // [9] print::ch = 'l' -- vbuz1=vbuc1 lda #'l' sta.z print.ch - // [10] call print + // [10] call print jsr print // main::@return // } @@ -329,7 +329,7 @@ main: { rts } // print -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // asm diff --git a/src/test/ref/address-6.sym b/src/test/ref/address-6.sym index 4ef6ea154..5b7bc70ea 100644 --- a/src/test/ref/address-6.sym +++ b/src/test/ref/address-6.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte idx loadstore !mem[-1]:12288 mem[1]:12288 0.2222222222222222 +__loadstore volatile char idx // !mem[-1]:12288 mem[1]:12288 0.2222222222222222 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore zp[1]:2 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // zp[1]:2 11.0 mem[1]:12288 [ idx ] zp[1]:2 [ print::ch ] diff --git a/src/test/ref/address-8.log b/src/test/ref/address-8.log index c4b9693fd..97cc88cf6 100644 --- a/src/test/ref/address-8.log +++ b/src/test/ref/address-8.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,20 +20,20 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* DATA[$3e8] = { fill( $3e8, 0) } -constant byte* const SCREEN = (byte*)$400 +__constant char DATA[$3e8] = { fill( $3e8, 0) } +__constant char * const SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = DATA[0] Adding number conversion cast (unumber) 0 in SCREEN[0] = DATA[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero DATA in [0] SCREEN[0] = DATA[0] Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *DATA @@ -43,9 +43,9 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $1000 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $1000 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -118,8 +118,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DATA[$3e8] = { fill( $3e8, 0) } -constant byte* const SCREEN = (byte*) 1024 +__constant char DATA[$3e8] = { fill( $3e8, 0) } +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/address-8.sym b/src/test/ref/address-8.sym index 769498d03..cd04b86fe 100644 --- a/src/test/ref/address-8.sym +++ b/src/test/ref/address-8.sym @@ -1,4 +1,4 @@ -constant byte* DATA[$3e8] = { fill( $3e8, 0) } -constant byte* const SCREEN = (byte*) 1024 +__constant char DATA[$3e8] = { fill( $3e8, 0) } +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/address-9.log b/src/test/ref/address-9.log index d053e59b1..84d25765c 100644 --- a/src/test/ref/address-9.log +++ b/src/test/ref/address-9.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$0 = 0 * SIZEOF_SIGNED_WORD + main::$0 = 0 * SIZEOF_INT SCREEN[main::$0] = DATA[main::$0] to:main::@return main::@return: scope:[main] from main @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,42 +21,42 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant signed word* DATA[$3e8] = { fill( $3e8, 0) } -constant signed word* const SCREEN = (signed word*)$400 -constant byte SIZEOF_SIGNED_WORD = 2 +__constant int DATA[$3e8] = { fill( $3e8, 0) } +__constant int * const SCREEN = (int *)$400 +__constant char SIZEOF_INT = 2 void __start() void main() -number~ main::$0 +number main::$0 -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_INT +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_SIGNED_WORD -Constant right-side identified [0] main::$0 = 0 * SIZEOF_SIGNED_WORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_INT +Constant right-side identified [0] main::$0 = 0 * SIZEOF_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_SIGNED_WORD +Constant main::$0 = 0*SIZEOF_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_SIGNED_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero DATA in [1] SCREEN[main::$0] = DATA[main::$0] Simplifying expression containing zero SCREEN in [1] SCREEN[main::$0] = *DATA Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $1000 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $1000 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -131,8 +131,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant signed word* DATA[$3e8] = { fill( $3e8, 0) } -constant signed word* const SCREEN = (signed word*) 1024 +__constant int DATA[$3e8] = { fill( $3e8, 0) } +__constant int * const SCREEN = (int *) 1024 void main() diff --git a/src/test/ref/address-9.sym b/src/test/ref/address-9.sym index 58d5e8ece..2a221c388 100644 --- a/src/test/ref/address-9.sym +++ b/src/test/ref/address-9.sym @@ -1,4 +1,4 @@ -constant signed word* DATA[$3e8] = { fill( $3e8, 0) } -constant signed word* const SCREEN = (signed word*) 1024 +__constant int DATA[$3e8] = { fill( $3e8, 0) } +__constant int * const SCREEN = (int *) 1024 void main() diff --git a/src/test/ref/address-of-0.log b/src/test/ref/address-of-0.log index ae93a7964..82ccbd3d9 100644 --- a/src/test/ref/address-of-0.log +++ b/src/test/ref/address-of-0.log @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,19 +31,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -constant byte* main::SCREEN = (byte*)$400 -volatile byte main::b loadstore -constant byte* main::bp = &main::b -byte main::c -byte main::c#0 +bool main::$1 +__constant char *main::SCREEN = (char *)$400 +__loadstore volatile char main::b +__constant char *main::bp = &main::b +char main::c +char main::c#0 Adding number conversion cast (unumber) 1 in main::c#0 = *main::bp + 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$1 [5] if(main::b!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -58,7 +58,7 @@ Adding number conversion cast (unumber) $b in [4] if(main::b!=$b) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -84,9 +84,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -volatile byte main::b loadstore 9.200000000000001 -byte main::c -byte main::c#0 22.0 +__loadstore volatile char main::b // 9.200000000000001 +char main::c +char main::c#0 // 22.0 Initial phi equivalence classes Added variable main::b to live range equivalence class [ main::b ] @@ -167,11 +167,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -volatile byte main::b loadstore zp[1]:2 9.200000000000001 -constant byte* main::bp = &main::b -byte main::c -byte main::c#0 reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +__loadstore volatile char main::b // zp[1]:2 9.200000000000001 +__constant char *main::bp = &main::b +char main::c +char main::c#0 // reg byte a 22.0 zp[1]:2 [ main::b ] reg byte a [ main::c#0 ] diff --git a/src/test/ref/address-of-0.sym b/src/test/ref/address-of-0.sym index 6ca809802..73d7b6330 100644 --- a/src/test/ref/address-of-0.sym +++ b/src/test/ref/address-of-0.sym @@ -1,9 +1,9 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -volatile byte main::b loadstore zp[1]:2 9.200000000000001 -constant byte* main::bp = &main::b -byte main::c -byte main::c#0 reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +__loadstore volatile char main::b // zp[1]:2 9.200000000000001 +__constant char *main::bp = &main::b +char main::c +char main::c#0 // reg byte a 22.0 zp[1]:2 [ main::b ] reg byte a [ main::c#0 ] diff --git a/src/test/ref/address-of-1.asm b/src/test/ref/address-of-1.asm index 0c5c3d071..2ea930171 100644 --- a/src/test/ref/address-of-1.asm +++ b/src/test/ref/address-of-1.asm @@ -53,7 +53,7 @@ main: { // } rts } -// setByte(byte* zp(2) ptr, byte register(X) b) +// void setByte(__zp(2) char *ptr, __register(X) char b) setByte: { .label ptr = 2 // *ptr = b diff --git a/src/test/ref/address-of-1.cfg b/src/test/ref/address-of-1.cfg index c50563316..d83cbc86c 100644 --- a/src/test/ref/address-of-1.cfg +++ b/src/test/ref/address-of-1.cfg @@ -4,15 +4,15 @@ main: scope:[main] from [0] main::b1 = 0 [1] main::b2 = 0 [2] main::b3 = 0 - [3] call setByte + [3] call setByte to:main::@1 main::@1: scope:[main] from main [4] phi() - [5] call setByte + [5] call setByte to:main::@2 main::@2: scope:[main] from main::@1 [6] phi() - [7] call setByte + [7] call setByte to:main::@3 main::@3: scope:[main] from main::@2 [8] *main::SCREEN = main::b1 @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@3 [11] return to:@return -void setByte(byte* setByte::ptr , byte setByte::b) +void setByte(char *ptr , char b) setByte: scope:[setByte] from main main::@1 main::@2 [12] setByte::ptr#3 = phi( main/&main::b1, main::@1/&main::b2, main::@2/&main::b3 ) [12] setByte::b#3 = phi( main/'c', main::@1/'m', main::@2/'l' ) diff --git a/src/test/ref/address-of-1.log b/src/test/ref/address-of-1.log index a870be648..9ccbe545a 100644 --- a/src/test/ref/address-of-1.log +++ b/src/test/ref/address-of-1.log @@ -11,17 +11,17 @@ main: scope:[main] from __start main::b3 = 0 setByte::ptr#0 = &main::b1 setByte::b#0 = 'c' - call setByte + call setByte to:main::@1 main::@1: scope:[main] from main setByte::ptr#1 = &main::b2 setByte::b#1 = 'm' - call setByte + call setByte to:main::@2 main::@2: scope:[main] from main::@1 setByte::ptr#2 = &main::b3 setByte::b#2 = 'l' - call setByte + call setByte to:main::@3 main::@3: scope:[main] from main::@2 main::SCREEN[0] = main::b1 @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void setByte(byte* setByte::ptr , byte setByte::b) +void setByte(char *ptr , char b) setByte: scope:[setByte] from main main::@1 main::@2 setByte::ptr#3 = phi( main/setByte::ptr#0, main::@1/setByte::ptr#1, main::@2/setByte::ptr#2 ) setByte::b#3 = phi( main/setByte::b#0, main::@1/setByte::b#1, main::@2/setByte::b#2 ) @@ -44,7 +44,7 @@ setByte::@return: scope:[setByte] from setByte void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -55,34 +55,34 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::SCREEN = (byte*)$400 -volatile byte main::b1 loadstore -volatile byte main::b2 loadstore -volatile byte main::b3 loadstore -void setByte(byte* setByte::ptr , byte setByte::b) -byte setByte::b -byte setByte::b#0 -byte setByte::b#1 -byte setByte::b#2 -byte setByte::b#3 -byte* setByte::ptr -byte* setByte::ptr#0 -byte* setByte::ptr#1 -byte* setByte::ptr#2 -byte* setByte::ptr#3 +__constant char *main::SCREEN = (char *)$400 +__loadstore volatile char main::b1 +__loadstore volatile char main::b2 +__loadstore volatile char main::b3 +void setByte(char *ptr , char b) +char setByte::b +char setByte::b#0 +char setByte::b#1 +char setByte::b#2 +char setByte::b#3 +char *setByte::ptr +char *setByte::ptr#0 +char *setByte::ptr#1 +char *setByte::ptr#2 +char *setByte::ptr#3 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::b1 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::b2 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::b3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant setByte::ptr#0 = &main::b1 Constant setByte::b#0 = 'c' @@ -131,15 +131,15 @@ main: scope:[main] from [0] main::b1 = 0 [1] main::b2 = 0 [2] main::b3 = 0 - [3] call setByte + [3] call setByte to:main::@1 main::@1: scope:[main] from main [4] phi() - [5] call setByte + [5] call setByte to:main::@2 main::@2: scope:[main] from main::@1 [6] phi() - [7] call setByte + [7] call setByte to:main::@3 main::@3: scope:[main] from main::@2 [8] *main::SCREEN = main::b1 @@ -150,7 +150,7 @@ main::@return: scope:[main] from main::@3 [11] return to:@return -void setByte(byte* setByte::ptr , byte setByte::b) +void setByte(char *ptr , char b) setByte: scope:[setByte] from main main::@1 main::@2 [12] setByte::ptr#3 = phi( main/&main::b1, main::@1/&main::b2, main::@2/&main::b3 ) [12] setByte::b#3 = phi( main/'c', main::@1/'m', main::@2/'l' ) @@ -163,14 +163,14 @@ setByte::@return: scope:[setByte] from setByte VARIABLE REGISTER WEIGHTS void main() -volatile byte main::b1 loadstore 0.36363636363636365 -volatile byte main::b2 loadstore 0.36363636363636365 -volatile byte main::b3 loadstore 0.36363636363636365 -void setByte(byte* setByte::ptr , byte setByte::b) -byte setByte::b -byte setByte::b#3 11.0 -byte* setByte::ptr -byte* setByte::ptr#3 11.0 +__loadstore volatile char main::b1 // 0.36363636363636365 +__loadstore volatile char main::b2 // 0.36363636363636365 +__loadstore volatile char main::b3 // 0.36363636363636365 +void setByte(char *ptr , char b) +char setByte::b +char setByte::b#3 // 11.0 +char *setByte::ptr +char *setByte::ptr#3 // 11.0 Initial phi equivalence classes [ setByte::b#3 ] @@ -251,7 +251,7 @@ main: { // [2] main::b3 = 0 -- vbuz1=vbuc1 lda #0 sta.z b3 - // [3] call setByte + // [3] call setByte // [12] phi from main to setByte [phi:main->setByte] setByte_from_main: // [12] phi setByte::ptr#3 = &main::b1 [phi:main->setByte#0] -- pbuz1=pbuc1 @@ -267,7 +267,7 @@ main: { jmp __b1 // main::@1 __b1: - // [5] call setByte + // [5] call setByte // [12] phi from main::@1 to setByte [phi:main::@1->setByte] setByte_from___b1: // [12] phi setByte::ptr#3 = &main::b2 [phi:main::@1->setByte#0] -- pbuz1=pbuc1 @@ -283,7 +283,7 @@ main: { jmp __b2 // main::@2 __b2: - // [7] call setByte + // [7] call setByte // [12] phi from main::@2 to setByte [phi:main::@2->setByte] setByte_from___b2: // [12] phi setByte::ptr#3 = &main::b3 [phi:main::@2->setByte#0] -- pbuz1=pbuc1 @@ -313,7 +313,7 @@ main: { rts } // setByte -// setByte(byte* zp(2) ptr, byte register(X) b) +// void setByte(__zp(2) char *ptr, __register(X) char b) setByte: { .label ptr = 2 // [13] *setByte::ptr#3 = setByte::b#3 -- _deref_pbuz1=vbuxx @@ -353,15 +353,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -volatile byte main::b1 loadstore zp[1]:4 0.36363636363636365 -volatile byte main::b2 loadstore zp[1]:5 0.36363636363636365 -volatile byte main::b3 loadstore zp[1]:6 0.36363636363636365 -void setByte(byte* setByte::ptr , byte setByte::b) -byte setByte::b -byte setByte::b#3 reg byte x 11.0 -byte* setByte::ptr -byte* setByte::ptr#3 ptr zp[2]:2 11.0 +__constant char *main::SCREEN = (char *) 1024 +__loadstore volatile char main::b1 // zp[1]:4 0.36363636363636365 +__loadstore volatile char main::b2 // zp[1]:5 0.36363636363636365 +__loadstore volatile char main::b3 // zp[1]:6 0.36363636363636365 +void setByte(char *ptr , char b) +char setByte::b +char setByte::b#3 // reg byte x 11.0 +char *setByte::ptr +char *setByte::ptr#3 // ptr zp[2]:2 11.0 reg byte x [ setByte::b#3 ] zp[2]:2 [ setByte::ptr#3 ] @@ -403,7 +403,7 @@ main: { // [2] main::b3 = 0 -- vbuz1=vbuc1 sta.z b3 // setByte(&b1, 'c') - // [3] call setByte + // [3] call setByte // [12] phi from main to setByte [phi:main->setByte] // [12] phi setByte::ptr#3 = &main::b1 [phi:main->setByte#0] -- pbuz1=pbuc1 lda #main::@1] // main::@1 // setByte(&b2, 'm') - // [5] call setByte + // [5] call setByte // [12] phi from main::@1 to setByte [phi:main::@1->setByte] // [12] phi setByte::ptr#3 = &main::b2 [phi:main::@1->setByte#0] -- pbuz1=pbuc1 lda #main::@2] // main::@2 // setByte(&b3, 'l') - // [7] call setByte + // [7] call setByte // [12] phi from main::@2 to setByte [phi:main::@2->setByte] // [12] phi setByte::ptr#3 = &main::b3 [phi:main::@2->setByte#0] -- pbuz1=pbuc1 lda #__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -601,7 +603,7 @@ main: { lda.z ptr sta SCREEN2+3 // setv(4) - // [16] call setv + // [16] call setv // Set value directly in a call jsr setv // main::@1 @@ -614,7 +616,7 @@ main: { lda.z ptr sta SCREEN2+4 // setp(ptr, 5) - // [19] call setp + // [19] call setp // Set value through pointer in a call jsr setp // main::@2 @@ -632,6 +634,7 @@ main: { rts } // setv +// void setv(char v) setv: { .const v = 4 // val = v @@ -644,6 +647,7 @@ setv: { rts } // setp +// void setp(char *p, char v) setp: { .const v = 5 // *p = v diff --git a/src/test/ref/address-of-2.sym b/src/test/ref/address-of-2.sym index 29bce60d3..f7c460e35 100644 --- a/src/test/ref/address-of-2.sym +++ b/src/test/ref/address-of-2.sym @@ -1,16 +1,16 @@ void __start() void main() -constant byte* const main::SCREEN1 = (byte*) 1024 -constant byte* const main::SCREEN2 = main::SCREEN1+$28 -byte main::idx -constant byte* main::ptr = &val -void setp(byte* setp::p , byte setp::v) -byte* setp::p -byte setp::v -constant byte setp::v#0 v = 5 -void setv(byte setv::v) -byte setv::v -constant byte setv::v#0 v = 4 -volatile byte val loadstore zp[1]:2 14.692307692307692 +__constant char * const main::SCREEN1 = (char *) 1024 +__constant char * const main::SCREEN2 = main::SCREEN1+$28 +char main::idx +__constant char *main::ptr = &val +void setp(char *p , char v) +char *setp::p +char setp::v +__constant char setp::v#0 = 5 // v +void setv(char v) +char setv::v +__constant char setv::v#0 = 4 // v +__loadstore volatile char val // zp[1]:2 14.692307692307692 zp[1]:2 [ val ] diff --git a/src/test/ref/address-of-3.asm b/src/test/ref/address-of-3.asm index 0a03973fd..c423aeaa4 100644 --- a/src/test/ref/address-of-3.asm +++ b/src/test/ref/address-of-3.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .label SCREEN = $400 .label idx = 3 .segment Code @@ -22,9 +22,9 @@ main: { sta.z idx jsr print // print(&VALS[1]) - lda #VALS+1*SIZEOF_SIGNED_WORD + lda #>VALS+1*SIZEOF_INT sta.z print.p+1 jsr print lda #2 @@ -49,7 +49,7 @@ main: { // } rts } -// print(signed word* zp(4) p) +// void print(__zp(4) int *p) print: { .label p = 4 // SCREEN[idx++] = *p diff --git a/src/test/ref/address-of-3.cfg b/src/test/ref/address-of-3.cfg index b7f9b6a83..f4e255e8b 100644 --- a/src/test/ref/address-of-3.cfg +++ b/src/test/ref/address-of-3.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@2 main::@2: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [4] main::i#2 = phi( main::@2/2, main::@3/main::i#1 ) [5] main::$5 = main::i#2 << 1 [6] print::p#2 = VALS + main::$5 - [7] call print + [7] call print to:main::@3 main::@3: scope:[main] from main::@1 [8] main::i#1 = ++ main::i#2 @@ -22,9 +22,9 @@ main::@return: scope:[main] from main::@3 [10] return to:@return -void print(signed word* print::p) +void print(int *p) print: scope:[print] from main main::@1 main::@2 - [11] print::p#3 = phi( main/VALS, main::@1/print::p#2, main::@2/VALS+1*SIZEOF_SIGNED_WORD ) + [11] print::p#3 = phi( main/VALS, main::@1/print::p#2, main::@2/VALS+1*SIZEOF_INT ) [11] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) [12] print::$0 = idx#13 << 1 [13] SCREEN[print::$0] = *print::p#3 diff --git a/src/test/ref/address-of-3.log b/src/test/ref/address-of-3.log index bf38c5be3..e121d5313 100644 --- a/src/test/ref/address-of-3.log +++ b/src/test/ref/address-of-3.log @@ -1,5 +1,5 @@ Fixing constant pointer addition VALS+1 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,13 +7,13 @@ void main() main: scope:[main] from __start::@1 idx#17 = phi( __start::@1/idx#19 ) print::p#0 = VALS - call print + call print to:main::@2 main::@2: scope:[main] from main idx#9 = phi( main/idx#5 ) idx#0 = idx#9 - print::p#1 = VALS+1*SIZEOF_SIGNED_WORD - call print + print::p#1 = VALS+1*SIZEOF_INT + call print to:main::@3 main::@3: scope:[main] from main::@2 idx#10 = phi( main::@2/idx#5 ) @@ -23,10 +23,10 @@ main::@3: scope:[main] from main::@2 main::@1: scope:[main] from main::@3 main::@4 idx#18 = phi( main::@3/idx#1, main::@4/idx#2 ) main::i#2 = phi( main::@3/main::i#0, main::@4/main::i#1 ) - main::$5 = main::i#2 * SIZEOF_SIGNED_WORD + main::$5 = main::i#2 * SIZEOF_INT main::$2 = & VALS[main::$5] print::p#2 = main::$2 - call print + call print to:main::@4 main::@4: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -42,11 +42,11 @@ main::@return: scope:[main] from main::@4 return to:@return -void print(signed word* print::p) +void print(int *p) print: scope:[print] from main main::@1 main::@2 print::p#3 = phi( main/print::p#0, main::@1/print::p#2, main::@2/print::p#1 ) idx#13 = phi( main/idx#17, main::@1/idx#18, main::@2/idx#0 ) - print::$0 = idx#13 * SIZEOF_SIGNED_WORD + print::$0 = idx#13 * SIZEOF_INT SCREEN[print::$0] = *print::p#3 idx#4 = ++ idx#13 to:print::@return @@ -64,7 +64,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#19 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#3 ) @@ -77,56 +77,56 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant signed word* const SCREEN = (signed word*)$400 -constant byte SIZEOF_SIGNED_WORD = 2 -constant signed word* VALS[] = { 1, 2, 3, 4 } +__constant int * const SCREEN = (int *)$400 +__constant char SIZEOF_INT = 2 +__constant int VALS[] = { 1, 2, 3, 4 } void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -signed word*~ main::$2 -bool~ main::$4 -byte~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -void print(signed word* print::p) -byte~ print::$0 -signed word* print::p -signed word* print::p#0 -signed word* print::p#1 -signed word* print::p#2 -signed word* print::p#3 +int *main::$2 +bool main::$4 +char main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +void print(int *p) +char print::$0 +int *print::p +int *print::p#0 +int *print::p#1 +int *print::p#2 +int *print::p#3 -Adding number conversion cast (unumber) 1*SIZEOF_SIGNED_WORD in print::p#1 = VALS+1*SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) 1 in print::p#1 = VALS+(unumber)1*SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 1*SIZEOF_INT in print::p#1 = VALS+1*SIZEOF_INT +Adding number conversion cast (unumber) 1 in print::p#1 = VALS+(unumber)1*SIZEOF_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (signed word*) 1024 -Simplifying constant integer cast (unumber)1*SIZEOF_SIGNED_WORD +Simplifying constant pointer cast (int *) 1024 +Simplifying constant integer cast (unumber)1*SIZEOF_INT Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#9 Alias idx#1 = idx#10 @@ -150,7 +150,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting array member address-of to pointer addition [10] print::p#2 = VALS + main::$5 Successful SSA optimization PassNArrayElementAddressOfRewriting Constant print::p#0 = VALS -Constant print::p#1 = VALS+1*SIZEOF_SIGNED_WORD +Constant print::p#1 = VALS+1*SIZEOF_INT Constant main::i#0 = 2 Constant idx#19 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -167,17 +167,17 @@ Adding number conversion cast (unumber) 4 in [7] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [3] main::$5 = main::i#2 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [10] print::$0 = idx#13 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [3] main::$5 = main::i#2 * SIZEOF_INT +Rewriting multiplication to use shift [10] print::$0 = idx#13 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Inlining constant with var siblings print::p#0 Inlining constant with var siblings print::p#1 Inlining constant with var siblings idx#19 Constant inlined main::i#0 = 2 -Constant inlined print::p#1 = VALS+1*SIZEOF_SIGNED_WORD +Constant inlined print::p#1 = VALS+1*SIZEOF_INT Constant inlined print::p#0 = VALS Constant inlined idx#19 = 0 Successful SSA optimization Pass2ConstantInlining @@ -204,17 +204,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@2 main::@2: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [4] main::i#2 = phi( main::@2/2, main::@3/main::i#1 ) [5] main::$5 = main::i#2 << 1 [6] print::p#2 = VALS + main::$5 - [7] call print + [7] call print to:main::@3 main::@3: scope:[main] from main::@1 [8] main::i#1 = ++ main::i#2 @@ -224,9 +224,9 @@ main::@return: scope:[main] from main::@3 [10] return to:@return -void print(signed word* print::p) +void print(int *p) print: scope:[print] from main main::@1 main::@2 - [11] print::p#3 = phi( main/VALS, main::@1/print::p#2, main::@2/VALS+1*SIZEOF_SIGNED_WORD ) + [11] print::p#3 = phi( main/VALS, main::@1/print::p#2, main::@2/VALS+1*SIZEOF_INT ) [11] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) [12] print::$0 = idx#13 << 1 [13] SCREEN[print::$0] = *print::p#3 @@ -238,19 +238,19 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#13 71.66666666666666 -byte idx#14 10.363636363636363 +char idx +char idx#13 // 71.66666666666666 +char idx#14 // 10.363636363636363 void main() -byte~ main::$5 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.25 -void print(signed word* print::p) -byte~ print::$0 202.0 -signed word* print::p -signed word* print::p#2 22.0 -signed word* print::p#3 56.0 +char main::$5 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.25 +void print(int *p) +char print::$0 // 202.0 +int *print::p +int *print::p#2 // 22.0 +int *print::p#3 // 56.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -314,14 +314,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .label SCREEN = $400 .label idx = 3 .segment Code // main main: { .label i = 2 - // [1] call print + // [1] call print // [11] phi from main to print [phi:main->print] print_from_main: // [11] phi print::p#3 = VALS [phi:main->print#0] -- pwsz1=pwsc1 @@ -338,13 +338,13 @@ main: { jmp __b2 // main::@2 __b2: - // [3] call print + // [3] call print // [11] phi from main::@2 to print [phi:main::@2->print] print_from___b2: - // [11] phi print::p#3 = VALS+1*SIZEOF_SIGNED_WORD [phi:main::@2->print#0] -- pwsz1=pwsc1 - lda #print#0] -- pwsz1=pwsc1 + lda #VALS+1*SIZEOF_SIGNED_WORD + lda #>VALS+1*SIZEOF_INT sta.z print.p+1 // [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- register_copy jsr print @@ -370,7 +370,7 @@ main: { lda #>VALS adc #0 sta.z print.p+1 - // [7] call print + // [7] call print // [11] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [11] phi print::p#3 = print::p#2 [phi:main::@1->print#0] -- register_copy @@ -392,7 +392,7 @@ main: { rts } // print -// print(signed word* zp(4) p) +// void print(__zp(4) int *p) print: { .label p = 4 // [12] print::$0 = idx#13 << 1 -- vbuaa=vbuz1_rol_1 @@ -442,22 +442,22 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SIZEOF_SIGNED_WORD = 2 -constant signed word* VALS[] = { 1, 2, 3, 4 } -byte idx -byte idx#13 idx zp[1]:3 71.66666666666666 -byte idx#14 idx zp[1]:3 10.363636363636363 +__constant int * const SCREEN = (int *) 1024 +__constant char SIZEOF_INT = 2 +__constant int VALS[] = { 1, 2, 3, 4 } +char idx +char idx#13 // idx zp[1]:3 71.66666666666666 +char idx#14 // idx zp[1]:3 10.363636363636363 void main() -byte~ main::$5 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 8.25 -void print(signed word* print::p) -byte~ print::$0 reg byte a 202.0 -signed word* print::p -signed word* print::p#2 p zp[2]:4 22.0 -signed word* print::p#3 p zp[2]:4 56.0 +char main::$5 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 8.25 +void print(int *p) +char print::$0 // reg byte a 202.0 +int *print::p +int *print::p#2 // p zp[2]:4 22.0 +int *print::p#3 // p zp[2]:4 56.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx#13 idx#14 ] @@ -481,7 +481,7 @@ Score: 457 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .label SCREEN = $400 .label idx = 3 .segment Code @@ -489,7 +489,7 @@ Score: 457 main: { .label i = 2 // print(VALS) - // [1] call print + // [1] call print // [11] phi from main to print [phi:main->print] // [11] phi print::p#3 = VALS [phi:main->print#0] -- pwsz1=pwsc1 lda #main::@2] // main::@2 // print(&VALS[1]) - // [3] call print + // [3] call print // [11] phi from main::@2 to print [phi:main::@2->print] - // [11] phi print::p#3 = VALS+1*SIZEOF_SIGNED_WORD [phi:main::@2->print#0] -- pwsz1=pwsc1 - lda #print#0] -- pwsz1=pwsc1 + lda #VALS+1*SIZEOF_SIGNED_WORD + lda #>VALS+1*SIZEOF_INT sta.z print.p+1 // [11] phi idx#13 = idx#14 [phi:main::@2->print#1] -- register_copy jsr print @@ -532,7 +532,7 @@ main: { lda #>VALS adc #0 sta.z print.p+1 - // [7] call print + // [7] call print // [11] phi from main::@1 to print [phi:main::@1->print] // [11] phi print::p#3 = print::p#2 [phi:main::@1->print#0] -- register_copy // [11] phi idx#13 = idx#14 [phi:main::@1->print#1] -- register_copy @@ -551,7 +551,7 @@ main: { rts } // print -// print(signed word* zp(4) p) +// void print(__zp(4) int *p) print: { .label p = 4 // SCREEN[idx++] = *p diff --git a/src/test/ref/address-of-3.sym b/src/test/ref/address-of-3.sym index 884fe2fd6..e1c7a2e75 100644 --- a/src/test/ref/address-of-3.sym +++ b/src/test/ref/address-of-3.sym @@ -1,19 +1,19 @@ -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SIZEOF_SIGNED_WORD = 2 -constant signed word* VALS[] = { 1, 2, 3, 4 } -byte idx -byte idx#13 idx zp[1]:3 71.66666666666666 -byte idx#14 idx zp[1]:3 10.363636363636363 +__constant int * const SCREEN = (int *) 1024 +__constant char SIZEOF_INT = 2 +__constant int VALS[] = { 1, 2, 3, 4 } +char idx +char idx#13 // idx zp[1]:3 71.66666666666666 +char idx#14 // idx zp[1]:3 10.363636363636363 void main() -byte~ main::$5 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 8.25 -void print(signed word* print::p) -byte~ print::$0 reg byte a 202.0 -signed word* print::p -signed word* print::p#2 p zp[2]:4 22.0 -signed word* print::p#3 p zp[2]:4 56.0 +char main::$5 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 8.25 +void print(int *p) +char print::$0 // reg byte a 202.0 +int *print::p +int *print::p#2 // p zp[2]:4 22.0 +int *print::p#3 // p zp[2]:4 56.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx#13 idx#14 ] diff --git a/src/test/ref/address-with-expression-value.log b/src/test/ref/address-with-expression-value.log index f90d4e675..49d76d5e4 100644 --- a/src/test/ref/address-with-expression-value.log +++ b/src/test/ref/address-with-expression-value.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,22 +20,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* DATA[$3e8] = { fill( $3e8, 0) } -constant byte* const SCREEN = (byte*)$400 +__constant char DATA[$3e8] = { fill( $3e8, 0) } +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant const word var1 = $800 -constant const word var2 = $900 +__constant const unsigned int var1 = $800 +__constant const unsigned int var2 = $900 Adding number conversion cast (unumber) 0 in SCREEN[0] = DATA[0] Adding number conversion cast (unumber) 0 in SCREEN[0] = DATA[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero DATA in [0] SCREEN[0] = DATA[0] Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *DATA @@ -45,8 +45,8 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -121,11 +121,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DATA[$3e8] = { fill( $3e8, 0) } -constant byte* const SCREEN = (byte*) 1024 +__constant char DATA[$3e8] = { fill( $3e8, 0) } +__constant char * const SCREEN = (char *) 1024 void main() -constant const word var1 = $800 -constant const word var2 = $900 +__constant const unsigned int var1 = $800 +__constant const unsigned int var2 = $900 diff --git a/src/test/ref/address-with-expression-value.sym b/src/test/ref/address-with-expression-value.sym index 5f6fef1ac..40a86a89f 100644 --- a/src/test/ref/address-with-expression-value.sym +++ b/src/test/ref/address-with-expression-value.sym @@ -1,6 +1,6 @@ -constant byte* DATA[$3e8] = { fill( $3e8, 0) } -constant byte* const SCREEN = (byte*) 1024 +__constant char DATA[$3e8] = { fill( $3e8, 0) } +__constant char * const SCREEN = (char *) 1024 void main() -constant const word var1 = $800 -constant const word var2 = $900 +__constant const unsigned int var1 = $800 +__constant const unsigned int var2 = $900 diff --git a/src/test/ref/array-16bit-init.cfg b/src/test/ref/array-16bit-init.cfg index 291e66453..ff8253998 100644 --- a/src/test/ref/array-16bit-init.cfg +++ b/src/test/ref/array-16bit-init.cfg @@ -12,6 +12,6 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] main::$3 = main::c#2 << 1 - [5] levelRowOff[main::$3] = (byte*) 12345 + [5] levelRowOff[main::$3] = (char *) 12345 [6] main::c#1 = ++ main::c#2 to:main::@1 diff --git a/src/test/ref/array-16bit-init.log b/src/test/ref/array-16bit-init.log index e23117dd6..a93f64b67 100644 --- a/src/test/ref/array-16bit-init.log +++ b/src/test/ref/array-16bit-init.log @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::c#3 = phi( main::@1/main::c#2 ) main::$3 = main::c#3 * SIZEOF_POINTER - levelRowOff[main::$3] = (byte*)$3039 + levelRowOff[main::$3] = (char *)$3039 main::c#1 = ++ main::c#3 to:main::@1 main::@return: scope:[main] from main::@1 @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,21 +33,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void __start() -constant byte** levelRowOff[$1f] = { 1, 2, 3 } +__constant char *levelRowOff[$1f] = { 1, 2, 3 } void main() -word~ main::$0 -word~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 +unsigned int main::$0 +unsigned int main::$1 +bool main::$2 +char main::$3 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 -Simplifying constant pointer cast (byte*) 12345 +Simplifying constant pointer cast (char *) 12345 Successful SSA optimization PassNCastSimplification Alias main::c#2 = main::c#3 Successful SSA optimization Pass2AliasElimination @@ -73,7 +73,7 @@ Adding number conversion cast (unumber) $1f in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $1f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $1f +Finalized unsigned number type (char) $1f Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [2] main::$3 = main::c#2 * SIZEOF_POINTER Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -82,10 +82,10 @@ Constant inlined main::$1 = $1f*SIZEOF_POINTER/SIZEOF_POINTER Constant inlined main::c#0 = 0 Constant inlined main::$0 = $1f*SIZEOF_POINTER Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $1f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $1f Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -110,17 +110,17 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] main::$3 = main::c#2 << 1 - [5] levelRowOff[main::$3] = (byte*) 12345 + [5] levelRowOff[main::$3] = (char *) 12345 [6] main::c#1 = ++ main::c#2 to:main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 22.0 -byte main::c -byte main::c#1 22.0 -byte main::c#2 11.0 +char main::$3 // 22.0 +char main::c +char main::c#1 // 22.0 +char main::c#2 // 11.0 Initial phi equivalence classes [ main::c#2 main::c#1 ] @@ -133,9 +133,9 @@ Allocated zp[1]:3 [ main::$3 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] main::$3 = main::c#2 << 1 [ main::c#2 main::$3 ] ( [ main::c#2 main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::c#2 main::c#1 ] -Statement [5] levelRowOff[main::$3] = (byte*) 12345 [ main::c#2 ] ( [ main::c#2 ] { } ) always clobbers reg byte a +Statement [5] levelRowOff[main::$3] = (char *) 12345 [ main::c#2 ] ( [ main::c#2 ] { } ) always clobbers reg byte a Statement [4] main::$3 = main::c#2 << 1 [ main::c#2 main::$3 ] ( [ main::c#2 main::$3 ] { } ) always clobbers reg byte a -Statement [5] levelRowOff[main::$3] = (byte*) 12345 [ main::c#2 ] ( [ main::c#2 ] { } ) always clobbers reg byte a +Statement [5] levelRowOff[main::$3] = (char *) 12345 [ main::c#2 ] ( [ main::c#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::c#2 main::c#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$3 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -184,7 +184,7 @@ main: { // [4] main::$3 = main::c#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [5] levelRowOff[main::$3] = (byte*) 12345 -- qbuc1_derefidx_vbuaa=pbuc2 + // [5] levelRowOff[main::$3] = (char *) 12345 -- qbuc1_derefidx_vbuaa=pbuc2 tay lda #<$3039 sta levelRowOff,y @@ -212,13 +212,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_POINTER = 2 -constant byte** levelRowOff[$1f] = { 1, 2, 3 } +__constant char SIZEOF_POINTER = 2 +__constant char *levelRowOff[$1f] = { 1, 2, 3 } void main() -byte~ main::$3 reg byte a 22.0 -byte main::c -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 11.0 +char main::$3 // reg byte a 22.0 +char main::c +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 11.0 reg byte x [ main::c#2 main::c#1 ] reg byte a [ main::$3 ] @@ -263,7 +263,7 @@ main: { // [4] main::$3 = main::c#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [5] levelRowOff[main::$3] = (byte*) 12345 -- qbuc1_derefidx_vbuaa=pbuc2 + // [5] levelRowOff[main::$3] = (char *) 12345 -- qbuc1_derefidx_vbuaa=pbuc2 tay lda #<$3039 sta levelRowOff,y diff --git a/src/test/ref/array-16bit-init.sym b/src/test/ref/array-16bit-init.sym index 1728b2f4a..45d15ae73 100644 --- a/src/test/ref/array-16bit-init.sym +++ b/src/test/ref/array-16bit-init.sym @@ -1,10 +1,10 @@ -constant byte SIZEOF_POINTER = 2 -constant byte** levelRowOff[$1f] = { 1, 2, 3 } +__constant char SIZEOF_POINTER = 2 +__constant char *levelRowOff[$1f] = { 1, 2, 3 } void main() -byte~ main::$3 reg byte a 22.0 -byte main::c -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 11.0 +char main::$3 // reg byte a 22.0 +char main::c +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 11.0 reg byte x [ main::c#2 main::c#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/array-16bit-lookup.asm b/src/test/ref/array-16bit-lookup.asm index c4c46a7ab..a2c1ec9ce 100644 --- a/src/test/ref/array-16bit-lookup.asm +++ b/src/test/ref/array-16bit-lookup.asm @@ -35,7 +35,7 @@ main: { // } rts } -// getValue(word zp(2) index) +// __zp(4) unsigned int getValue(__zp(2) unsigned int index) getValue: { .label index = 2 .label return = 4 diff --git a/src/test/ref/array-16bit-lookup.cfg b/src/test/ref/array-16bit-lookup.cfg index 31d7d3f3e..cb80d440d 100644 --- a/src/test/ref/array-16bit-lookup.cfg +++ b/src/test/ref/array-16bit-lookup.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::idx#2 = phi( main/0, main::@2/main::idx#1 ) [2] getValue::index#0 = main::idx#2 - [3] call getValue + [3] call getValue [4] getValue::return#0 = getValue::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -20,13 +20,13 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -word getValue(word getValue::index) +unsigned int getValue(unsigned int index) getValue: scope:[getValue] from main::@1 [11] getValue::$0 = getValue::index#0 & $7f [12] getValue::$3 = getValue::$0 << 1 [13] getValue::$1 = arr16[getValue::$3] & $ff [14] getValue::$2 = getValue::$1 >> 1 - [15] getValue::return#1 = (word)getValue::$2 + [15] getValue::return#1 = (unsigned int)getValue::$2 to:getValue::@return getValue::@return: scope:[getValue] from getValue [16] return diff --git a/src/test/ref/array-16bit-lookup.log b/src/test/ref/array-16bit-lookup.log index ee4ac94c2..053283f1b 100644 --- a/src/test/ref/array-16bit-lookup.log +++ b/src/test/ref/array-16bit-lookup.log @@ -8,14 +8,14 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@2 main::idx#2 = phi( main/main::idx#0, main::@2/main::idx#1 ) getValue::index#0 = main::idx#2 - call getValue + call getValue getValue::return#0 = getValue::return#2 to:main::@2 main::@2: scope:[main] from main::@1 main::idx#3 = phi( main::@1/main::idx#2 ) getValue::return#3 = phi( main::@1/getValue::return#0 ) main::$0 = getValue::return#3 - main::$2 = main::idx#3 * SIZEOF_WORD + main::$2 = main::idx#3 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$2] = main::$0 main::idx#1 = main::idx#3 + rangenext(0,$80) main::$1 = main::idx#1 != rangelast(0,$80) @@ -25,14 +25,14 @@ main::@return: scope:[main] from main::@2 return to:@return -word getValue(word getValue::index) +unsigned int getValue(unsigned int index) getValue: scope:[getValue] from main::@1 getValue::index#1 = phi( main::@1/getValue::index#0 ) getValue::$0 = getValue::index#1 & $7f - getValue::$3 = getValue::$0 * SIZEOF_WORD + getValue::$3 = getValue::$0 * SIZEOF_UNSIGNED_INT getValue::$1 = arr16[getValue::$3] & $ff getValue::$2 = getValue::$1 >> 1 - getValue::return#1 = (word)getValue::$2 + getValue::return#1 = (unsigned int)getValue::$2 to:getValue::@return getValue::@return: scope:[getValue] from getValue getValue::return#4 = phi( getValue/getValue::return#1 ) @@ -42,7 +42,7 @@ getValue::@return: scope:[getValue] from getValue void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -51,55 +51,55 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -constant word* arr16[$80] = { fill( $80, 0) } -word getValue(word getValue::index) -number~ getValue::$0 -number~ getValue::$1 -number~ getValue::$2 -number~ getValue::$3 -word getValue::index -word getValue::index#0 -word getValue::index#1 -word getValue::return -word getValue::return#0 -word getValue::return#1 -word getValue::return#2 -word getValue::return#3 -word getValue::return#4 +__constant unsigned int arr16[$80] = { fill( $80, 0) } +unsigned int getValue(unsigned int index) +number getValue::$0 +number getValue::$1 +number getValue::$2 +number getValue::$3 +unsigned int getValue::index +unsigned int getValue::index#0 +unsigned int getValue::index#1 +unsigned int getValue::return +unsigned int getValue::return#0 +unsigned int getValue::return#1 +unsigned int getValue::return#2 +unsigned int getValue::return#3 +unsigned int getValue::return#4 void main() -word~ main::$0 -bool~ main::$1 -byte~ main::$2 -constant word* main::SCREEN = (word*)$400 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 +unsigned int main::$0 +bool main::$1 +char main::$2 +__constant unsigned int *main::SCREEN = (unsigned int *)$400 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 Adding number conversion cast (unumber) $7f in getValue::$0 = getValue::index#1 & $7f Adding number conversion cast (unumber) getValue::$0 in getValue::$0 = getValue::index#1 & (unumber)$7f -Adding number conversion cast (unumber) getValue::$3 in getValue::$3 = getValue::$0 * SIZEOF_WORD +Adding number conversion cast (unumber) getValue::$3 in getValue::$3 = getValue::$0 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) $ff in getValue::$1 = arr16[getValue::$3] & $ff Adding number conversion cast (unumber) getValue::$1 in getValue::$1 = arr16[getValue::$3] & (unumber)$ff Adding number conversion cast (unumber) 1 in getValue::$2 = getValue::$1 >> 1 Adding number conversion cast (unumber) getValue::$2 in getValue::$2 = getValue::$1 >> (unumber)1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast $7f Simplifying constant integer cast $ff Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in getValue::$0 = getValue::index#1 & $7f -Inferred type updated to byte in getValue::$3 = getValue::$0 * SIZEOF_WORD -Inferred type updated to byte in getValue::$1 = arr16[getValue::$3] & $ff -Inferred type updated to byte in getValue::$2 = getValue::$1 >> 1 +Inferred type updated to char in getValue::$0 = getValue::index#1 & $7f +Inferred type updated to char in getValue::$3 = getValue::$0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in getValue::$1 = arr16[getValue::$3] & $ff +Inferred type updated to char in getValue::$2 = getValue::$1 >> 1 Alias getValue::return#0 = getValue::return#3 Alias main::idx#2 = main::idx#3 Alias getValue::return#1 = getValue::return#4 getValue::return#2 @@ -121,18 +121,18 @@ Adding number conversion cast (unumber) $81 in [8] if(main::idx#1!=$81) goto mai Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $81 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $81 +Finalized unsigned number type (char) $81 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [5] main::$2 = main::idx#2 * SIZEOF_WORD -Rewriting multiplication to use shift [11] getValue::$3 = getValue::$0 * SIZEOF_WORD +Rewriting multiplication to use shift [5] main::$2 = main::idx#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [11] getValue::$3 = getValue::$0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::idx#0 Constant inlined main::idx#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) $80 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) $80 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@2 and main::@1) Adding NOP phi() at start of main @@ -154,7 +154,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::idx#2 = phi( main/0, main::@2/main::idx#1 ) [2] getValue::index#0 = main::idx#2 - [3] call getValue + [3] call getValue [4] getValue::return#0 = getValue::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -168,13 +168,13 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -word getValue(word getValue::index) +unsigned int getValue(unsigned int index) getValue: scope:[getValue] from main::@1 [11] getValue::$0 = getValue::index#0 & $7f [12] getValue::$3 = getValue::$0 << 1 [13] getValue::$1 = arr16[getValue::$3] & $ff [14] getValue::$2 = getValue::$1 >> 1 - [15] getValue::return#1 = (word)getValue::$2 + [15] getValue::return#1 = (unsigned int)getValue::$2 to:getValue::@return getValue::@return: scope:[getValue] from getValue [16] return @@ -182,22 +182,22 @@ getValue::@return: scope:[getValue] from getValue VARIABLE REGISTER WEIGHTS -word getValue(word getValue::index) -byte~ getValue::$0 202.0 -byte~ getValue::$1 202.0 -byte~ getValue::$2 101.0 -byte~ getValue::$3 202.0 -word getValue::index -word getValue::index#0 112.0 -word getValue::return -word getValue::return#0 22.0 -word getValue::return#1 37.33333333333333 +unsigned int getValue(unsigned int index) +char getValue::$0 // 202.0 +char getValue::$1 // 202.0 +char getValue::$2 // 101.0 +char getValue::$3 // 202.0 +unsigned int getValue::index +unsigned int getValue::index#0 // 112.0 +unsigned int getValue::return +unsigned int getValue::return#0 // 22.0 +unsigned int getValue::return#1 // 37.33333333333333 void main() -word~ main::$0 11.0 -byte~ main::$2 22.0 -byte main::idx -byte main::idx#1 16.5 -byte main::idx#2 6.285714285714286 +unsigned int main::$0 // 11.0 +char main::$2 // 22.0 +char main::idx +char main::idx#1 // 16.5 +char main::idx#2 // 6.285714285714286 Initial phi equivalence classes [ main::idx#2 main::idx#1 ] @@ -242,7 +242,7 @@ Statement [11] getValue::$0 = getValue::index#0 & $7f [ getValue::$0 ] ( getValu Statement [12] getValue::$3 = getValue::$0 << 1 [ getValue::$3 ] ( getValue:3 [ main::idx#2 getValue::$3 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [13] getValue::$1 = arr16[getValue::$3] & $ff [ getValue::$1 ] ( getValue:3 [ main::idx#2 getValue::$1 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [14] getValue::$2 = getValue::$1 >> 1 [ getValue::$2 ] ( getValue:3 [ main::idx#2 getValue::$2 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a -Statement [15] getValue::return#1 = (word)getValue::$2 [ getValue::return#1 ] ( getValue:3 [ main::idx#2 getValue::return#1 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a +Statement [15] getValue::return#1 = (unsigned int)getValue::$2 [ getValue::return#1 ] ( getValue:3 [ main::idx#2 getValue::return#1 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [2] getValue::index#0 = main::idx#2 [ main::idx#2 getValue::index#0 ] ( [ main::idx#2 getValue::index#0 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [4] getValue::return#0 = getValue::return#1 [ main::idx#2 getValue::return#0 ] ( [ main::idx#2 getValue::return#0 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [5] main::$0 = getValue::return#0 [ main::idx#2 main::$0 ] ( [ main::idx#2 main::$0 ] { } ) always clobbers reg byte a @@ -252,7 +252,7 @@ Statement [11] getValue::$0 = getValue::index#0 & $7f [ getValue::$0 ] ( getValu Statement [12] getValue::$3 = getValue::$0 << 1 [ getValue::$3 ] ( getValue:3 [ main::idx#2 getValue::$3 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [13] getValue::$1 = arr16[getValue::$3] & $ff [ getValue::$1 ] ( getValue:3 [ main::idx#2 getValue::$1 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Statement [14] getValue::$2 = getValue::$1 >> 1 [ getValue::$2 ] ( getValue:3 [ main::idx#2 getValue::$2 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a -Statement [15] getValue::return#1 = (word)getValue::$2 [ getValue::return#1 ] ( getValue:3 [ main::idx#2 getValue::return#1 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a +Statement [15] getValue::return#1 = (unsigned int)getValue::$2 [ getValue::return#1 ] ( getValue:3 [ main::idx#2 getValue::return#1 ] { { getValue::index#0 = main::idx#2 } { getValue::return#0 = getValue::return#1 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::idx#2 main::idx#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[2]:3 [ getValue::index#0 ] : zp[2]:3 , Potential registers zp[2]:5 [ getValue::return#0 ] : zp[2]:5 , @@ -313,7 +313,7 @@ main: { sta.z getValue.index lda #0 sta.z getValue.index+1 - // [3] call getValue + // [3] call getValue jsr getValue // [4] getValue::return#0 = getValue::return#1 jmp __b2 @@ -341,7 +341,7 @@ main: { rts } // getValue -// getValue(word zp(2) index) +// __zp(4) unsigned int getValue(__zp(2) unsigned int index) getValue: { .label index = 2 .label return = 4 @@ -356,7 +356,7 @@ getValue: { and arr16,y // [14] getValue::$2 = getValue::$1 >> 1 -- vbuaa=vbuaa_ror_1 lsr - // [15] getValue::return#1 = (word)getValue::$2 -- vwuz1=_word_vbuaa + // [15] getValue::return#1 = (unsigned int)getValue::$2 -- vwuz1=_word_vbuaa sta.z return lda #0 sta.z return+1 @@ -388,24 +388,24 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant word* arr16[$80] = { fill( $80, 0) } -word getValue(word getValue::index) -byte~ getValue::$0 reg byte a 202.0 -byte~ getValue::$1 reg byte a 202.0 -byte~ getValue::$2 reg byte a 101.0 -byte~ getValue::$3 reg byte a 202.0 -word getValue::index -word getValue::index#0 index zp[2]:2 112.0 -word getValue::return -word getValue::return#0 return zp[2]:4 22.0 -word getValue::return#1 return zp[2]:4 37.33333333333333 +__constant unsigned int arr16[$80] = { fill( $80, 0) } +unsigned int getValue(unsigned int index) +char getValue::$0 // reg byte a 202.0 +char getValue::$1 // reg byte a 202.0 +char getValue::$2 // reg byte a 101.0 +char getValue::$3 // reg byte a 202.0 +unsigned int getValue::index +unsigned int getValue::index#0 // index zp[2]:2 112.0 +unsigned int getValue::return +unsigned int getValue::return#0 // return zp[2]:4 22.0 +unsigned int getValue::return#1 // return zp[2]:4 37.33333333333333 void main() -word~ main::$0 zp[2]:4 11.0 -byte~ main::$2 reg byte a 22.0 -constant word* main::SCREEN = (word*) 1024 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 6.285714285714286 +unsigned int main::$0 // zp[2]:4 11.0 +char main::$2 // reg byte a 22.0 +__constant unsigned int *main::SCREEN = (unsigned int *) 1024 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 6.285714285714286 reg byte x [ main::idx#2 main::idx#1 ] zp[2]:2 [ getValue::index#0 ] @@ -451,7 +451,7 @@ main: { sta.z getValue.index lda #0 sta.z getValue.index+1 - // [3] call getValue + // [3] call getValue jsr getValue // [4] getValue::return#0 = getValue::return#1 // main::@2 @@ -478,7 +478,7 @@ main: { rts } // getValue -// getValue(word zp(2) index) +// __zp(4) unsigned int getValue(__zp(2) unsigned int index) getValue: { .label index = 2 .label return = 4 @@ -497,7 +497,7 @@ getValue: { // [14] getValue::$2 = getValue::$1 >> 1 -- vbuaa=vbuaa_ror_1 lsr // return (unsigned int)((arr16[index & 0x7f] & 0xff) >> 1); - // [15] getValue::return#1 = (word)getValue::$2 -- vwuz1=_word_vbuaa + // [15] getValue::return#1 = (unsigned int)getValue::$2 -- vwuz1=_word_vbuaa sta.z return lda #0 sta.z return+1 diff --git a/src/test/ref/array-16bit-lookup.sym b/src/test/ref/array-16bit-lookup.sym index 49977c25c..8f65264db 100644 --- a/src/test/ref/array-16bit-lookup.sym +++ b/src/test/ref/array-16bit-lookup.sym @@ -1,21 +1,21 @@ -constant word* arr16[$80] = { fill( $80, 0) } -word getValue(word getValue::index) -byte~ getValue::$0 reg byte a 202.0 -byte~ getValue::$1 reg byte a 202.0 -byte~ getValue::$2 reg byte a 101.0 -byte~ getValue::$3 reg byte a 202.0 -word getValue::index -word getValue::index#0 index zp[2]:2 112.0 -word getValue::return -word getValue::return#0 return zp[2]:4 22.0 -word getValue::return#1 return zp[2]:4 37.33333333333333 +__constant unsigned int arr16[$80] = { fill( $80, 0) } +unsigned int getValue(unsigned int index) +char getValue::$0 // reg byte a 202.0 +char getValue::$1 // reg byte a 202.0 +char getValue::$2 // reg byte a 101.0 +char getValue::$3 // reg byte a 202.0 +unsigned int getValue::index +unsigned int getValue::index#0 // index zp[2]:2 112.0 +unsigned int getValue::return +unsigned int getValue::return#0 // return zp[2]:4 22.0 +unsigned int getValue::return#1 // return zp[2]:4 37.33333333333333 void main() -word~ main::$0 zp[2]:4 11.0 -byte~ main::$2 reg byte a 22.0 -constant word* main::SCREEN = (word*) 1024 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 6.285714285714286 +unsigned int main::$0 // zp[2]:4 11.0 +char main::$2 // reg byte a 22.0 +__constant unsigned int *main::SCREEN = (unsigned int *) 1024 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 6.285714285714286 reg byte x [ main::idx#2 main::idx#1 ] zp[2]:2 [ getValue::index#0 ] diff --git a/src/test/ref/array-length-symbolic-min.log b/src/test/ref/array-length-symbolic-min.log index 91d25b7ea..a2630dbf8 100644 --- a/src/test/ref/array-length-symbolic-min.log +++ b/src/test/ref/array-length-symbolic-min.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,16 +27,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte SZ = $f +__constant const char SZ = $f void __start() -constant byte* items[SZ] = { fill( SZ, 0) } +__constant char items[SZ] = { fill( SZ, 0) } void main() -bool~ main::$0 -constant byte* main::cur_item = items -byte main::sub -byte main::sub#0 -byte main::sub#1 -byte main::sub#2 +bool main::$0 +__constant char *main::cur_item = items +char main::sub +char main::sub#0 +char main::sub#1 +char main::sub#2 Simple Condition main::$0 [5] if(main::sub#1!=rangelast(0,SZ)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -55,7 +55,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast SZ+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::sub#0 Constant inlined main::sub#0 = 0 @@ -90,9 +90,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::sub -byte main::sub#1 16.5 -byte main::sub#2 22.0 +char main::sub +char main::sub#1 // 16.5 +char main::sub#2 // 22.0 Initial phi equivalence classes [ main::sub#2 main::sub#1 ] @@ -170,12 +170,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte SZ = $f -constant byte* items[SZ] = { fill( SZ, 0) } +__constant const char SZ = $f +__constant char items[SZ] = { fill( SZ, 0) } void main() -byte main::sub -byte main::sub#1 reg byte x 16.5 -byte main::sub#2 reg byte x 22.0 +char main::sub +char main::sub#1 // reg byte x 16.5 +char main::sub#2 // reg byte x 22.0 reg byte x [ main::sub#2 main::sub#1 ] diff --git a/src/test/ref/array-length-symbolic-min.sym b/src/test/ref/array-length-symbolic-min.sym index 445be17d8..eb8aeb00e 100644 --- a/src/test/ref/array-length-symbolic-min.sym +++ b/src/test/ref/array-length-symbolic-min.sym @@ -1,8 +1,8 @@ -constant const byte SZ = $f -constant byte* items[SZ] = { fill( SZ, 0) } +__constant const char SZ = $f +__constant char items[SZ] = { fill( SZ, 0) } void main() -byte main::sub -byte main::sub#1 reg byte x 16.5 -byte main::sub#2 reg byte x 22.0 +char main::sub +char main::sub#1 // reg byte x 16.5 +char main::sub#2 // reg byte x 22.0 reg byte x [ main::sub#2 main::sub#1 ] diff --git a/src/test/ref/array-length-symbolic.log b/src/test/ref/array-length-symbolic.log index e279de791..ba10dcae8 100644 --- a/src/test/ref/array-length-symbolic.log +++ b/src/test/ref/array-length-symbolic.log @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,31 +45,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte ITEM_COUNT = 3 -constant const byte ITEM_SIZE = 5 +__constant const char ITEM_COUNT = 3 +__constant const char ITEM_SIZE = 5 void __start() -constant byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +__constant char items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } void main() -number~ main::$0 -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte* main::cur_item -byte* main::cur_item#0 -byte* main::cur_item#1 -byte* main::cur_item#2 -byte* main::cur_item#3 -byte* main::cur_item#4 -byte main::item -byte main::item#0 -byte main::item#1 -byte main::item#2 -byte main::item#3 -byte main::item#4 -byte main::sub -byte main::sub#0 -byte main::sub#1 -byte main::sub#2 +number main::$0 +number main::$1 +bool main::$2 +bool main::$3 +char *main::cur_item +char *main::cur_item#0 +char *main::cur_item#1 +char *main::cur_item#2 +char *main::cur_item#3 +char *main::cur_item#4 +char main::item +char main::item#0 +char main::item#1 +char main::item#2 +char main::item#3 +char main::item#4 +char main::sub +char main::sub#0 +char main::sub#1 +char main::sub#2 Adding number conversion cast (unumber) $10 in main::$0 = main::item#2 * $10 Adding number conversion cast (unumber) main::$0 in main::$0 = main::item#2 * (unumber)$10 @@ -81,12 +81,12 @@ Simplifying constant integer cast $10 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::item#2 * $10 -Inferred type updated to byte in main::$1 = main::$0 | main::sub#2 +Inferred type updated to char in main::$0 = main::item#2 * $10 +Inferred type updated to char in main::$1 = main::$0 | main::sub#2 Alias main::cur_item#2 = main::cur_item#3 Alias main::item#2 = main::item#3 Successful SSA optimization Pass2AliasElimination @@ -119,8 +119,8 @@ Simplifying constant integer cast 1 Simplifying constant integer cast ITEM_COUNT-1+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [2] main::$0 = main::item#4 * $10 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -175,17 +175,17 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 202.0 -byte~ main::$1 202.0 -byte* main::cur_item -byte* main::cur_item#1 7.333333333333333 -byte* main::cur_item#4 17.571428571428573 -byte main::item -byte main::item#1 16.5 -byte main::item#4 15.375 -byte main::sub -byte main::sub#1 151.5 -byte main::sub#2 101.0 +char main::$0 // 202.0 +char main::$1 // 202.0 +char *main::cur_item +char *main::cur_item#1 // 7.333333333333333 +char *main::cur_item#4 // 17.571428571428573 +char main::item +char main::item#1 // 16.5 +char main::item#4 // 15.375 +char main::sub +char main::sub#1 // 151.5 +char main::sub#2 // 101.0 Initial phi equivalence classes [ main::item#4 main::item#1 ] @@ -337,21 +337,21 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte ITEM_COUNT = 3 -constant const byte ITEM_SIZE = 5 -constant byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +__constant const char ITEM_COUNT = 3 +__constant const char ITEM_SIZE = 5 +__constant char items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } void main() -byte~ main::$0 reg byte a 202.0 -byte~ main::$1 reg byte a 202.0 -byte* main::cur_item -byte* main::cur_item#1 cur_item zp[2]:2 7.333333333333333 -byte* main::cur_item#4 cur_item zp[2]:2 17.571428571428573 -byte main::item -byte main::item#1 reg byte x 16.5 -byte main::item#4 reg byte x 15.375 -byte main::sub -byte main::sub#1 reg byte y 151.5 -byte main::sub#2 reg byte y 101.0 +char main::$0 // reg byte a 202.0 +char main::$1 // reg byte a 202.0 +char *main::cur_item +char *main::cur_item#1 // cur_item zp[2]:2 7.333333333333333 +char *main::cur_item#4 // cur_item zp[2]:2 17.571428571428573 +char main::item +char main::item#1 // reg byte x 16.5 +char main::item#4 // reg byte x 15.375 +char main::sub +char main::sub#1 // reg byte y 151.5 +char main::sub#2 // reg byte y 101.0 reg byte x [ main::item#4 main::item#1 ] zp[2]:2 [ main::cur_item#4 main::cur_item#1 ] diff --git a/src/test/ref/array-length-symbolic.sym b/src/test/ref/array-length-symbolic.sym index 387404600..47228df45 100644 --- a/src/test/ref/array-length-symbolic.sym +++ b/src/test/ref/array-length-symbolic.sym @@ -1,18 +1,18 @@ -constant const byte ITEM_COUNT = 3 -constant const byte ITEM_SIZE = 5 -constant byte* items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +__constant const char ITEM_COUNT = 3 +__constant const char ITEM_SIZE = 5 +__constant char items[ITEM_COUNT*ITEM_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } void main() -byte~ main::$0 reg byte a 202.0 -byte~ main::$1 reg byte a 202.0 -byte* main::cur_item -byte* main::cur_item#1 cur_item zp[2]:2 7.333333333333333 -byte* main::cur_item#4 cur_item zp[2]:2 17.571428571428573 -byte main::item -byte main::item#1 reg byte x 16.5 -byte main::item#4 reg byte x 15.375 -byte main::sub -byte main::sub#1 reg byte y 151.5 -byte main::sub#2 reg byte y 101.0 +char main::$0 // reg byte a 202.0 +char main::$1 // reg byte a 202.0 +char *main::cur_item +char *main::cur_item#1 // cur_item zp[2]:2 7.333333333333333 +char *main::cur_item#4 // cur_item zp[2]:2 17.571428571428573 +char main::item +char main::item#1 // reg byte x 16.5 +char main::item#4 // reg byte x 15.375 +char main::sub +char main::sub#1 // reg byte y 151.5 +char main::sub#2 // reg byte y 101.0 reg byte x [ main::item#4 main::item#1 ] zp[2]:2 [ main::cur_item#4 main::cur_item#1 ] diff --git a/src/test/ref/arrays-init-kasm-0.log b/src/test/ref/arrays-init-kasm-0.log index e0de12988..029810115 100644 --- a/src/test/ref/arrays-init-kasm-0.log +++ b/src/test/ref/arrays-init-kasm-0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,8 +25,8 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) +__constant char *SCREEN = (char *)$400 +__constant char SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }} void __start() void main() @@ -34,12 +34,12 @@ void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = SINTAB[0] Adding number conversion cast (unumber) 0 in SCREEN[0] = SINTAB[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SINTAB in [0] SCREEN[0] = SINTAB[0] Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *SINTAB @@ -51,7 +51,7 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -124,8 +124,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) +__constant char *SCREEN = (char *) 1024 +__constant char SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }} void main() diff --git a/src/test/ref/arrays-init-kasm-0.sym b/src/test/ref/arrays-init-kasm-0.sym index 02ff176d4..5514498cd 100644 --- a/src/test/ref/arrays-init-kasm-0.sym +++ b/src/test/ref/arrays-init-kasm-0.sym @@ -1,5 +1,5 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) +__constant char *SCREEN = (char *) 1024 +__constant char SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }} void main() diff --git a/src/test/ref/arrays-init-kasm-1.log b/src/test/ref/arrays-init-kasm-1.log index e29abae2a..8579fc131 100644 --- a/src/test/ref/arrays-init-kasm-1.log +++ b/src/test/ref/arrays-init-kasm-1.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,8 +25,8 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) +__constant char *SCREEN = (char *)$400 +__constant char SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }} void __start() void main() @@ -34,12 +34,12 @@ void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = SINTAB[0] Adding number conversion cast (unumber) 0 in SCREEN[0] = SINTAB[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SINTAB in [0] SCREEN[0] = SINTAB[0] Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *SINTAB @@ -51,8 +51,8 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $1000 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $1000 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -127,8 +127,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) +__constant char *SCREEN = (char *) 1024 +__constant char SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }} void main() diff --git a/src/test/ref/arrays-init-kasm-1.sym b/src/test/ref/arrays-init-kasm-1.sym index 02ff176d4..5514498cd 100644 --- a/src/test/ref/arrays-init-kasm-1.sym +++ b/src/test/ref/arrays-init-kasm-1.sym @@ -1,5 +1,5 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) +__constant char *SCREEN = (char *) 1024 +__constant char SINTAB[$100] = kickasm {{ .fill 256, 128 + 128*sin(i*2*PI/256) }} void main() diff --git a/src/test/ref/arrays-init-short.log b/src/test/ref/arrays-init-short.log index 74f29e62d..c0a004dbd 100644 --- a/src/test/ref/arrays-init-short.log +++ b/src/test/ref/arrays-init-short.log @@ -34,7 +34,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,36 +43,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::i1#3 -constant byte* msg1[$10] = "camelot" -constant byte* msg2[$10] = { 'c', 'm', 'l' } +bool main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::i1#3 +__constant char msg1[$10] = "camelot" +__constant char msg2[$10] = { 'c', 'm', 'l' } Adding number conversion cast (unumber) 0 in main::$0 = 0 != msg1[main::i#2] Adding number conversion cast (unumber) 0 in main::$1 = 0 != msg2[main::i1#2] Adding number conversion cast (unumber) $28 in (SCREEN+$28)[main::i1#3] = msg2[main::i1#3] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias main::i1#2 = main::i1#3 @@ -93,8 +93,8 @@ Inlining constant with var siblings main::i1#0 Constant inlined main::i#0 = 0 Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -138,12 +138,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 -byte main::i1 -byte main::i1#1 22.0 -byte main::i1#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 +char main::i1 +char main::i1#1 // 22.0 +char main::i1#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -262,16 +262,16 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#2 reg byte x 18.333333333333332 -constant byte* msg1[$10] = "camelot" -constant byte* msg2[$10] = { 'c', 'm', 'l' } +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#2 // reg byte x 18.333333333333332 +__constant char msg1[$10] = "camelot" +__constant char msg2[$10] = { 'c', 'm', 'l' } reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/arrays-init-short.sym b/src/test/ref/arrays-init-short.sym index 5d5ff6c58..9bea7ce76 100644 --- a/src/test/ref/arrays-init-short.sym +++ b/src/test/ref/arrays-init-short.sym @@ -1,13 +1,13 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#2 reg byte x 18.333333333333332 -constant byte* msg1[$10] = "camelot" -constant byte* msg2[$10] = { 'c', 'm', 'l' } +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#2 // reg byte x 18.333333333333332 +__constant char msg1[$10] = "camelot" +__constant char msg2[$10] = { 'c', 'm', 'l' } reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/arrays-init.log b/src/test/ref/arrays-init.log index 812329bd9..263e26c32 100644 --- a/src/test/ref/arrays-init.log +++ b/src/test/ref/arrays-init.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -21,7 +21,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -30,14 +30,14 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -constant byte* b[3] = { fill( 3, 0) } -constant byte* c[] = { 'c', 'm', 'l' } -constant byte* d[] = "cml"z +__constant char b[3] = { fill( 3, 0) } +__constant char c[] = { 'c', 'm', 'l' } +__constant char d[] = "cml"z void main() -byte*~ main::$0 -byte*~ main::$1 +char *main::$0 +char *main::$1 Adding number conversion cast (unumber) 0 in b[0] = 'c' Adding number conversion cast (unumber) 0 in *SCREEN = b[0] @@ -46,7 +46,7 @@ Adding number conversion cast (unumber) 1 in *main::$0 = c[1] Adding number conversion cast (unumber) 2 in main::$1 = SCREEN + 2 Adding number conversion cast (unumber) 2 in *main::$1 = d[2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -54,12 +54,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [2] main::$0 = SCREEN + 1 Constant right-side identified [4] main::$1 = SCREEN + 2 @@ -83,8 +83,8 @@ Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(c+1) Consolidated array index constant in *(d+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -172,10 +172,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* b[3] = { fill( 3, 0) } -constant byte* c[] = { 'c', 'm', 'l' } -constant byte* d[] = "cml"z +__constant char *SCREEN = (char *) 1024 +__constant char b[3] = { fill( 3, 0) } +__constant char c[] = { 'c', 'm', 'l' } +__constant char d[] = "cml"z void main() diff --git a/src/test/ref/arrays-init.sym b/src/test/ref/arrays-init.sym index c48054cc4..3599577c3 100644 --- a/src/test/ref/arrays-init.sym +++ b/src/test/ref/arrays-init.sym @@ -1,6 +1,6 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* b[3] = { fill( 3, 0) } -constant byte* c[] = { 'c', 'm', 'l' } -constant byte* d[] = "cml"z +__constant char *SCREEN = (char *) 1024 +__constant char b[3] = { fill( 3, 0) } +__constant char c[] = { 'c', 'm', 'l' } +__constant char d[] = "cml"z void main() diff --git a/src/test/ref/asm-culling-jmp.cfg b/src/test/ref/asm-culling-jmp.cfg index 7390f09dc..075e4b476 100644 --- a/src/test/ref/asm-culling-jmp.cfg +++ b/src/test/ref/asm-culling-jmp.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 } - [1] *((byte*) 1024) = 'c' + [1] *((char *) 1024) = 'c' to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/asm-culling-jmp.log b/src/test/ref/asm-culling-jmp.log index 21b170962..8f295f1ae 100644 --- a/src/test/ref/asm-culling-jmp.log +++ b/src/test/ref/asm-culling-jmp.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 } - *((byte*)$400) = 'c' + *((char *)$400) = 'c' to:main::@return main::@return: scope:[main] from main return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,7 +24,7 @@ SYMBOL TABLE SSA void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -41,7 +41,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 } - [1] *((byte*) 1024) = 'c' + [1] *((char *) 1024) = 'c' to:main::@return main::@return: scope:[main] from main [2] return @@ -55,7 +55,7 @@ Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 } always clobbers reg byte a -Statement [1] *((byte*) 1024) = 'c' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *) 1024) = 'c' [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -86,7 +86,7 @@ main: { .byte 0, 25, 51, 76, 102, 128, 153, 179, 204, 230 qwe: lda #$32 - // [1] *((byte*) 1024) = 'c' -- _deref_pbuc1=vbuc2 + // [1] *((char *) 1024) = 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta $400 jmp __breturn @@ -134,7 +134,7 @@ main: { qwe: lda #$32 // *((char*)0x0400) = 'c' - // [1] *((byte*) 1024) = 'c' -- _deref_pbuc1=vbuc2 + // [1] *((char *) 1024) = 'c' -- _deref_pbuc1=vbuc2 lda #'c' sta $400 // main::@return diff --git a/src/test/ref/asm-mnemonic-names.asm b/src/test/ref/asm-mnemonic-names.asm index 3f03e566f..cedb7433b 100644 --- a/src/test/ref/asm-mnemonic-names.asm +++ b/src/test/ref/asm-mnemonic-names.asm @@ -25,6 +25,7 @@ main: { // } rts } +// void bne(char jsr) bne: { // lda[1] = jsr lda #main.jmp diff --git a/src/test/ref/asm-mnemonic-names.cfg b/src/test/ref/asm-mnemonic-names.cfg index 9c33e282b..b97978227 100644 --- a/src/test/ref/asm-mnemonic-names.cfg +++ b/src/test/ref/asm-mnemonic-names.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] *lda = main::jmp - [1] call bne + [1] call bne to:main::@1 main::@1: scope:[main] from main asm { ldaa jmpa bnea a: } @@ -11,7 +11,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return -void bne(byte bne::jsr) +void bne(char jsr) bne: scope:[bne] from main [4] *(lda+1) = main::jmp to:bne::@return diff --git a/src/test/ref/asm-mnemonic-names.log b/src/test/ref/asm-mnemonic-names.log index cd5646f24..e2456e540 100644 --- a/src/test/ref/asm-mnemonic-names.log +++ b/src/test/ref/asm-mnemonic-names.log @@ -5,7 +5,7 @@ void main() main: scope:[main] from __start *lda = main::jmp bne::jsr#0 = main::jmp - call bne + call bne to:main::@1 main::@1: scope:[main] from main asm { ldaa jmpa bnea a: } @@ -14,7 +14,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void bne(byte bne::jsr) +void bne(char jsr) bne: scope:[bne] from main bne::jsr#1 = phi( main/bne::jsr#0 ) lda[1] = bne::jsr#1 @@ -25,7 +25,7 @@ bne::@return: scope:[bne] from bne void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -35,20 +35,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -void bne(byte bne::jsr) -byte bne::jsr -byte bne::jsr#0 -byte bne::jsr#1 -constant byte* const lda = (byte*)$400 +void bne(char jsr) +char bne::jsr +char bne::jsr#0 +char bne::jsr#1 +__constant char * const lda = (char *)$400 void main() -constant byte main::jmp = 1 +__constant char main::jmp = 1 Adding number conversion cast (unumber) 1 in lda[1] = bne::jsr#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Identical Phi Values bne::jsr#1 bne::jsr#0 Successful SSA optimization Pass2IdenticalPhiElimination @@ -74,7 +74,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *lda = main::jmp - [1] call bne + [1] call bne to:main::@1 main::@1: scope:[main] from main asm { ldaa jmpa bnea a: } @@ -83,7 +83,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return -void bne(byte bne::jsr) +void bne(char jsr) bne: scope:[bne] from main [4] *(lda+1) = main::jmp to:bne::@return @@ -93,8 +93,8 @@ bne::@return: scope:[bne] from bne VARIABLE REGISTER WEIGHTS -void bne(byte bne::jsr) -byte bne::jsr +void bne(char jsr) +char bne::jsr void main() Initial phi equivalence classes @@ -135,7 +135,7 @@ main: { // [0] *lda = main::jmp -- _deref_pbuc1=vbuc2 lda #jmp sta lda - // [1] call bne + // [1] call bne jsr bne jmp __b1 // main::@1 @@ -153,6 +153,7 @@ main: { rts } // bne +// void bne(char jsr) bne: { // [4] *(lda+1) = main::jmp -- _deref_pbuc1=vbuc2 lda #main.jmp @@ -180,11 +181,11 @@ Replacing jump to rts with rts in jmp a Succesful ASM optimization Pass5DoubleJumpElimination FINAL SYMBOL TABLE -void bne(byte bne::jsr) -byte bne::jsr -constant byte* const lda = (byte*) 1024 +void bne(char jsr) +char bne::jsr +__constant char * const lda = (char *) 1024 void main() -constant byte main::jmp = 1 +__constant char main::jmp = 1 @@ -214,7 +215,7 @@ main: { lda #jmp sta lda // bne(jmp) - // [1] call bne + // [1] call bne jsr bne // main::@1 // asm @@ -229,6 +230,7 @@ main: { rts } // bne +// void bne(char jsr) bne: { // lda[1] = jsr // [4] *(lda+1) = main::jmp -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/asm-mnemonic-names.sym b/src/test/ref/asm-mnemonic-names.sym index 9015ea01b..bfcae9926 100644 --- a/src/test/ref/asm-mnemonic-names.sym +++ b/src/test/ref/asm-mnemonic-names.sym @@ -1,6 +1,6 @@ -void bne(byte bne::jsr) -byte bne::jsr -constant byte* const lda = (byte*) 1024 +void bne(char jsr) +char bne::jsr +__constant char * const lda = (char *) 1024 void main() -constant byte main::jmp = 1 +__constant char main::jmp = 1 diff --git a/src/test/ref/asm-uses-0.log b/src/test/ref/asm-uses-0.log index d7a3568d5..759c72414 100644 --- a/src/test/ref/asm-uses-0.log +++ b/src/test/ref/asm-uses-0.log @@ -20,7 +20,7 @@ init::@return: scope:[init] from init void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,7 +29,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 +__constant char * const BG_COLOR = (char *)$d020 void __start() void init() void main() @@ -38,10 +38,10 @@ Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BG_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -139,7 +139,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 +__constant char * const BG_COLOR = (char *) 53280 void init() void main() diff --git a/src/test/ref/asm-uses-0.sym b/src/test/ref/asm-uses-0.sym index 7049674b5..981e2805f 100644 --- a/src/test/ref/asm-uses-0.sym +++ b/src/test/ref/asm-uses-0.sym @@ -1,4 +1,4 @@ -constant byte* const BG_COLOR = (byte*) 53280 +__constant char * const BG_COLOR = (char *) 53280 void init() void main() diff --git a/src/test/ref/assignment-chained.log b/src/test/ref/assignment-chained.log index 712e3c9d8..949bddd26 100644 --- a/src/test/ref/assignment-chained.log +++ b/src/test/ref/assignment-chained.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,13 +32,13 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -constant byte* main::screen = (byte*)$400 +number main::$0 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::screen[0] = main::a#1 Adding number conversion cast (unumber) $28 in main::screen[$28] = main::a#1 @@ -49,7 +49,7 @@ Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)1 + main Adding number conversion cast (unumber) 2 in main::screen[2] = main::$0 Adding number conversion cast (unumber) $2a in main::screen[$2a] = main::a#3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast 1 @@ -58,15 +58,15 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast $2a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $2a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $2a Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 1 + main::a#3 +Inferred type updated to char in main::$0 = 1 + main::a#3 Constant main::a#0 = 0 Constant main::a#1 = 'c' Constant main::a#3 = 'l' @@ -121,8 +121,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#2 4.0 +char main::a +char main::a#2 // 4.0 Initial phi equivalence classes Added variable main::a#2 to live range equivalence class [ main::a#2 ] @@ -200,9 +200,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::a -byte main::a#2 reg byte a 4.0 -constant byte* main::screen = (byte*) 1024 +char main::a +char main::a#2 // reg byte a 4.0 +__constant char *main::screen = (char *) 1024 reg byte a [ main::a#2 ] diff --git a/src/test/ref/assignment-chained.sym b/src/test/ref/assignment-chained.sym index 501b99c86..a7af8096c 100644 --- a/src/test/ref/assignment-chained.sym +++ b/src/test/ref/assignment-chained.sym @@ -1,6 +1,6 @@ void main() -byte main::a -byte main::a#2 reg byte a 4.0 -constant byte* main::screen = (byte*) 1024 +char main::a +char main::a#2 // reg byte a 4.0 +__constant char *main::screen = (char *) 1024 reg byte a [ main::a#2 ] diff --git a/src/test/ref/assignment-compound.asm b/src/test/ref/assignment-compound.asm index 759328fd8..e3363eae5 100644 --- a/src/test/ref/assignment-compound.asm +++ b/src/test/ref/assignment-compound.asm @@ -83,7 +83,7 @@ main: { // } rts } -// test(byte register(X) i, byte zp(2) a) +// void test(__register(X) char i, __zp(2) char a) test: { .label a = 2 // screen1[i] = a diff --git a/src/test/ref/assignment-compound.cfg b/src/test/ref/assignment-compound.cfg index 583e4c98f..bb6581a1a 100644 --- a/src/test/ref/assignment-compound.cfg +++ b/src/test/ref/assignment-compound.cfg @@ -2,53 +2,53 @@ void main() main: scope:[main] from [0] phi() - [1] call test + [1] call test to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call test + [3] call test to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call test + [5] call test to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call test + [7] call test to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call test + [9] call test to:main::@5 main::@5: scope:[main] from main::@4 [10] phi() - [11] call test + [11] call test to:main::@6 main::@6: scope:[main] from main::@5 [12] phi() - [13] call test + [13] call test to:main::@7 main::@7: scope:[main] from main::@6 [14] phi() - [15] call test + [15] call test to:main::@8 main::@8: scope:[main] from main::@7 [16] phi() - [17] call test + [17] call test to:main::@9 main::@9: scope:[main] from main::@8 [18] phi() - [19] call test + [19] call test to:main::@10 main::@10: scope:[main] from main::@9 [20] phi() - [21] call test + [21] call test to:main::@return main::@return: scope:[main] from main::@10 [22] return to:@return -void test(byte test::i , byte test::a) +void test(char i , char a) test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [23] test::i#11 = phi( main/0, main::@1/1, main::@10/$a, main::@2/2, main::@3/3, main::@4/4, main::@5/5, main::@6/6, main::@7/7, main::@8/8, main::@9/9 ) [23] test::a#11 = phi( main/3, main::@1/3+1, main::@10/3+1-1*6/2&2-1<<2>>1^6|1&1, main::@2/3+1-1, main::@3/3+1-1*6, main::@4/3+1-1*6/2, main::@5/3+1-1*6/2&2-1, main::@6/3+1-1*6/2&2-1<<2, main::@7/3+1-1*6/2&2-1<<2>>1, main::@8/3+1-1*6/2&2-1<<2>>1^6, main::@9/3+1-1*6/2&2-1<<2>>1^6|1 ) diff --git a/src/test/ref/assignment-compound.log b/src/test/ref/assignment-compound.log index 213ecdbf5..ca3437ee8 100644 --- a/src/test/ref/assignment-compound.log +++ b/src/test/ref/assignment-compound.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement __start::__init1_$0 CONTROL FLOW GRAPH SSA @@ -10,7 +10,7 @@ main: scope:[main] from __start::@1 main::a#0 = 3 test::i#0 = main::i#0 test::a#0 = main::a#0 - call test + call test to:main::@1 main::@1: scope:[main] from main screen2#5 = phi( main/screen2#4 ) @@ -20,7 +20,7 @@ main::@1: scope:[main] from main main::a#1 = main::a#11 + 1 test::i#1 = main::i#1 test::a#1 = main::a#1 - call test + call test to:main::@2 main::@2: scope:[main] from main::@1 screen2#7 = phi( main::@1/screen2#5 ) @@ -30,7 +30,7 @@ main::@2: scope:[main] from main::@1 main::a#2 = main::a#12 - 1 test::i#2 = main::i#2 test::a#2 = main::a#2 - call test + call test to:main::@3 main::@3: scope:[main] from main::@2 screen2#8 = phi( main::@2/screen2#7 ) @@ -40,7 +40,7 @@ main::@3: scope:[main] from main::@2 main::a#3 = main::a#13 * 6 test::i#3 = main::i#3 test::a#3 = main::a#3 - call test + call test to:main::@4 main::@4: scope:[main] from main::@3 screen2#9 = phi( main::@3/screen2#8 ) @@ -50,7 +50,7 @@ main::@4: scope:[main] from main::@3 main::a#4 = main::a#14 / 2 test::i#4 = main::i#4 test::a#4 = main::a#4 - call test + call test to:main::@5 main::@5: scope:[main] from main::@4 screen2#10 = phi( main::@4/screen2#9 ) @@ -60,7 +60,7 @@ main::@5: scope:[main] from main::@4 main::a#5 = main::a#15 % 2 test::i#5 = main::i#5 test::a#5 = main::a#5 - call test + call test to:main::@6 main::@6: scope:[main] from main::@5 screen2#11 = phi( main::@5/screen2#10 ) @@ -70,7 +70,7 @@ main::@6: scope:[main] from main::@5 main::a#6 = main::a#16 << 2 test::i#6 = main::i#6 test::a#6 = main::a#6 - call test + call test to:main::@7 main::@7: scope:[main] from main::@6 screen2#12 = phi( main::@6/screen2#11 ) @@ -80,7 +80,7 @@ main::@7: scope:[main] from main::@6 main::a#7 = main::a#17 >> 1 test::i#7 = main::i#7 test::a#7 = main::a#7 - call test + call test to:main::@8 main::@8: scope:[main] from main::@7 screen2#13 = phi( main::@7/screen2#12 ) @@ -90,7 +90,7 @@ main::@8: scope:[main] from main::@7 main::a#8 = main::a#18 ^ 6 test::i#8 = main::i#8 test::a#8 = main::a#8 - call test + call test to:main::@9 main::@9: scope:[main] from main::@8 screen2#14 = phi( main::@8/screen2#13 ) @@ -100,7 +100,7 @@ main::@9: scope:[main] from main::@8 main::a#9 = main::a#19 | 1 test::i#9 = main::i#9 test::a#9 = main::a#9 - call test + call test to:main::@10 main::@10: scope:[main] from main::@9 screen2#6 = phi( main::@9/screen2#14 ) @@ -110,7 +110,7 @@ main::@10: scope:[main] from main::@9 main::a#10 = main::a#20 & 1 test::i#10 = main::i#10 test::a#10 = main::a#10 - call test + call test to:main::@11 main::@11: scope:[main] from main::@10 main::i#22 = phi( main::@10/main::i#10 ) @@ -120,7 +120,7 @@ main::@return: scope:[main] from main::@11 return to:@return -void test(byte test::i , byte test::a) +void test(char i , char a) test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 screen2#2 = phi( main/screen2#4, main::@1/screen2#5, main::@10/screen2#6, main::@2/screen2#7, main::@3/screen2#8, main::@4/screen2#9, main::@5/screen2#10, main::@6/screen2#11, main::@7/screen2#12, main::@8/screen2#13, main::@9/screen2#14 ) test::i#11 = phi( main/test::i#0, main::@1/test::i#1, main::@10/test::i#10, main::@2/test::i#2, main::@3/test::i#3, main::@4/test::i#4, main::@5/test::i#5, main::@6/test::i#6, main::@7/test::i#7, main::@8/test::i#8, main::@9/test::i#9 ) @@ -150,7 +150,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen2#16 = phi( __start::__init1/screen2#0 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen2#15 = phi( __start::@1/screen2#16 ) @@ -162,107 +162,107 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte GREEN = 5 -constant byte RED = 2 +__constant char GREEN = 5 +__constant char RED = 2 void __start() -constant byte* cols = (byte*)$d800 +__constant char *cols = (char *)$d800 void main() -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#10 -byte main::a#11 -byte main::a#12 -byte main::a#13 -byte main::a#14 -byte main::a#15 -byte main::a#16 -byte main::a#17 -byte main::a#18 -byte main::a#19 -byte main::a#2 -byte main::a#20 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::a#6 -byte main::a#7 -byte main::a#8 -byte main::a#9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#11 -byte main::i#12 -byte main::i#13 -byte main::i#14 -byte main::i#15 -byte main::i#16 -byte main::i#17 -byte main::i#18 -byte main::i#19 -byte main::i#2 -byte main::i#20 -byte main::i#21 -byte main::i#22 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -constant byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } -constant byte* screen1 = (byte*)$400 -byte* screen2 -byte* screen2#0 -byte* screen2#1 -byte* screen2#10 -byte* screen2#11 -byte* screen2#12 -byte* screen2#13 -byte* screen2#14 -byte* screen2#15 -byte* screen2#16 -byte* screen2#2 -byte* screen2#3 -byte* screen2#4 -byte* screen2#5 -byte* screen2#6 -byte* screen2#7 -byte* screen2#8 -byte* screen2#9 -void test(byte test::i , byte test::a) -bool~ test::$0 -byte test::a -byte test::a#0 -byte test::a#1 -byte test::a#10 -byte test::a#11 -byte test::a#2 -byte test::a#3 -byte test::a#4 -byte test::a#5 -byte test::a#6 -byte test::a#7 -byte test::a#8 -byte test::a#9 -byte test::i -byte test::i#0 -byte test::i#1 -byte test::i#10 -byte test::i#11 -byte test::i#12 -byte test::i#13 -byte test::i#2 -byte test::i#3 -byte test::i#4 -byte test::i#5 -byte test::i#6 -byte test::i#7 -byte test::i#8 -byte test::i#9 +char main::a +char main::a#0 +char main::a#1 +char main::a#10 +char main::a#11 +char main::a#12 +char main::a#13 +char main::a#14 +char main::a#15 +char main::a#16 +char main::a#17 +char main::a#18 +char main::a#19 +char main::a#2 +char main::a#20 +char main::a#3 +char main::a#4 +char main::a#5 +char main::a#6 +char main::a#7 +char main::a#8 +char main::a#9 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#11 +char main::i#12 +char main::i#13 +char main::i#14 +char main::i#15 +char main::i#16 +char main::i#17 +char main::i#18 +char main::i#19 +char main::i#2 +char main::i#20 +char main::i#21 +char main::i#22 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__constant char ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } +__constant char *screen1 = (char *)$400 +char *screen2 +char *screen2#0 +char *screen2#1 +char *screen2#10 +char *screen2#11 +char *screen2#12 +char *screen2#13 +char *screen2#14 +char *screen2#15 +char *screen2#16 +char *screen2#2 +char *screen2#3 +char *screen2#4 +char *screen2#5 +char *screen2#6 +char *screen2#7 +char *screen2#8 +char *screen2#9 +void test(char i , char a) +bool test::$0 +char test::a +char test::a#0 +char test::a#1 +char test::a#10 +char test::a#11 +char test::a#2 +char test::a#3 +char test::a#4 +char test::a#5 +char test::a#6 +char test::a#7 +char test::a#8 +char test::a#9 +char test::i +char test::i#0 +char test::i#1 +char test::i#10 +char test::i#11 +char test::i#12 +char test::i#13 +char test::i#2 +char test::i#3 +char test::i#4 +char test::i#5 +char test::i#6 +char test::i#7 +char test::i#8 +char test::i#9 Adding number conversion cast (unumber) 1 in main::a#1 = main::a#11 + 1 Adding number conversion cast (unumber) 1 in main::a#2 = main::a#12 - 1 @@ -276,8 +276,8 @@ Adding number conversion cast (unumber) 1 in main::a#9 = main::a#19 | 1 Adding number conversion cast (unumber) 1 in main::a#10 = main::a#20 & 1 Adding number conversion cast (unumber) $28 in screen2#0 = screen1 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 6 @@ -290,17 +290,17 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#0 = main::i#12 Alias main::a#0 = main::a#11 @@ -588,53 +588,53 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call test + [1] call test to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call test + [3] call test to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call test + [5] call test to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call test + [7] call test to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call test + [9] call test to:main::@5 main::@5: scope:[main] from main::@4 [10] phi() - [11] call test + [11] call test to:main::@6 main::@6: scope:[main] from main::@5 [12] phi() - [13] call test + [13] call test to:main::@7 main::@7: scope:[main] from main::@6 [14] phi() - [15] call test + [15] call test to:main::@8 main::@8: scope:[main] from main::@7 [16] phi() - [17] call test + [17] call test to:main::@9 main::@9: scope:[main] from main::@8 [18] phi() - [19] call test + [19] call test to:main::@10 main::@10: scope:[main] from main::@9 [20] phi() - [21] call test + [21] call test to:main::@return main::@return: scope:[main] from main::@10 [22] return to:@return -void test(byte test::i , byte test::a) +void test(char i , char a) test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [23] test::i#11 = phi( main/0, main::@1/1, main::@10/$a, main::@2/2, main::@3/3, main::@4/4, main::@5/5, main::@6/6, main::@7/7, main::@8/8, main::@9/9 ) [23] test::a#11 = phi( main/3, main::@1/3+1, main::@10/3+1-1*6/2&2-1<<2>>1^6|1&1, main::@2/3+1-1, main::@3/3+1-1*6, main::@4/3+1-1*6/2, main::@5/3+1-1*6/2&2-1, main::@6/3+1-1*6/2&2-1<<2, main::@7/3+1-1*6/2&2-1<<2>>1, main::@8/3+1-1*6/2&2-1<<2>>1^6, main::@9/3+1-1*6/2&2-1<<2>>1^6|1 ) @@ -655,14 +655,14 @@ test::@1: scope:[test] from test VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::i -byte* screen2 -void test(byte test::i , byte test::a) -byte test::a -byte test::a#11 7.333333333333333 -byte test::i -byte test::i#11 16.5 +char main::a +char main::i +char *screen2 +void test(char i , char a) +char test::a +char test::a#11 // 7.333333333333333 +char test::i +char test::i#11 // 16.5 Initial phi equivalence classes [ test::a#11 ] @@ -719,7 +719,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call test + // [1] call test //3 // [23] phi from main to test [phi:main->test] test_from_main: @@ -734,7 +734,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call test + // [3] call test //4 // [23] phi from main::@1 to test [phi:main::@1->test] test_from___b1: @@ -749,7 +749,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call test + // [5] call test //3 // [23] phi from main::@2 to test [phi:main::@2->test] test_from___b2: @@ -764,7 +764,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call test + // [7] call test //18 // [23] phi from main::@3 to test [phi:main::@3->test] test_from___b3: @@ -779,7 +779,7 @@ main: { jmp __b4 // main::@4 __b4: - // [9] call test + // [9] call test //9 // [23] phi from main::@4 to test [phi:main::@4->test] test_from___b4: @@ -794,7 +794,7 @@ main: { jmp __b5 // main::@5 __b5: - // [11] call test + // [11] call test //1 // [23] phi from main::@5 to test [phi:main::@5->test] test_from___b5: @@ -809,7 +809,7 @@ main: { jmp __b6 // main::@6 __b6: - // [13] call test + // [13] call test //4 // [23] phi from main::@6 to test [phi:main::@6->test] test_from___b6: @@ -824,7 +824,7 @@ main: { jmp __b7 // main::@7 __b7: - // [15] call test + // [15] call test //2 // [23] phi from main::@7 to test [phi:main::@7->test] test_from___b7: @@ -839,7 +839,7 @@ main: { jmp __b8 // main::@8 __b8: - // [17] call test + // [17] call test //4 // [23] phi from main::@8 to test [phi:main::@8->test] test_from___b8: @@ -854,7 +854,7 @@ main: { jmp __b9 // main::@9 __b9: - // [19] call test + // [19] call test //5 // [23] phi from main::@9 to test [phi:main::@9->test] test_from___b9: @@ -869,7 +869,7 @@ main: { jmp __b10 // main::@10 __b10: - // [21] call test + // [21] call test //1 // [23] phi from main::@10 to test [phi:main::@10->test] test_from___b10: @@ -886,7 +886,7 @@ main: { rts } // test -// test(byte register(X) i, byte zp(2) a) +// void test(__register(X) char i, __zp(2) char a) test: { .label a = 2 // [24] screen1[test::i#11] = test::a#11 -- pbuc1_derefidx_vbuxx=vbuz1 @@ -977,21 +977,21 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte GREEN = 5 -constant byte RED = 2 -constant byte* cols = (byte*) 55296 +__constant char GREEN = 5 +__constant char RED = 2 +__constant char *cols = (char *) 55296 void main() -byte main::a -byte main::i -constant byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } -constant byte* screen1 = (byte*) 1024 -byte* screen2 -constant byte* screen2#0 screen2 = screen1+$28 -void test(byte test::i , byte test::a) -byte test::a -byte test::a#11 a zp[1]:2 7.333333333333333 -byte test::i -byte test::i#11 reg byte x 16.5 +char main::a +char main::i +__constant char ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } +__constant char *screen1 = (char *) 1024 +char *screen2 +__constant char *screen2#0 = screen1+$28 // screen2 +void test(char i , char a) +char test::a +char test::a#11 // a zp[1]:2 7.333333333333333 +char test::i +char test::i#11 // reg byte x 16.5 zp[1]:2 [ test::a#11 ] reg byte x [ test::i#11 ] @@ -1021,7 +1021,7 @@ Score: 202 // main main: { // test(i++, a) - // [1] call test + // [1] call test //3 // [23] phi from main to test [phi:main->test] // [23] phi test::i#11 = 0 [phi:main->test#0] -- vbuxx=vbuc1 @@ -1033,7 +1033,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // test(i++, a) - // [3] call test + // [3] call test //4 // [23] phi from main::@1 to test [phi:main::@1->test] // [23] phi test::i#11 = 1 [phi:main::@1->test#0] -- vbuxx=vbuc1 @@ -1045,7 +1045,7 @@ main: { // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // test(i++, a) - // [5] call test + // [5] call test //3 // [23] phi from main::@2 to test [phi:main::@2->test] // [23] phi test::i#11 = 2 [phi:main::@2->test#0] -- vbuxx=vbuc1 @@ -1057,7 +1057,7 @@ main: { // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // test(i++, a) - // [7] call test + // [7] call test //18 // [23] phi from main::@3 to test [phi:main::@3->test] // [23] phi test::i#11 = 3 [phi:main::@3->test#0] -- vbuxx=vbuc1 @@ -1069,7 +1069,7 @@ main: { // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // test(i++, a) - // [9] call test + // [9] call test //9 // [23] phi from main::@4 to test [phi:main::@4->test] // [23] phi test::i#11 = 4 [phi:main::@4->test#0] -- vbuxx=vbuc1 @@ -1081,7 +1081,7 @@ main: { // [10] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // test(i++, a) - // [11] call test + // [11] call test //1 // [23] phi from main::@5 to test [phi:main::@5->test] // [23] phi test::i#11 = 5 [phi:main::@5->test#0] -- vbuxx=vbuc1 @@ -1093,7 +1093,7 @@ main: { // [12] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // test(i++, a) - // [13] call test + // [13] call test //4 // [23] phi from main::@6 to test [phi:main::@6->test] // [23] phi test::i#11 = 6 [phi:main::@6->test#0] -- vbuxx=vbuc1 @@ -1105,7 +1105,7 @@ main: { // [14] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // test(i++, a) - // [15] call test + // [15] call test //2 // [23] phi from main::@7 to test [phi:main::@7->test] // [23] phi test::i#11 = 7 [phi:main::@7->test#0] -- vbuxx=vbuc1 @@ -1117,7 +1117,7 @@ main: { // [16] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // test(i++, a) - // [17] call test + // [17] call test //4 // [23] phi from main::@8 to test [phi:main::@8->test] // [23] phi test::i#11 = 8 [phi:main::@8->test#0] -- vbuxx=vbuc1 @@ -1129,7 +1129,7 @@ main: { // [18] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // test(i++, a) - // [19] call test + // [19] call test //5 // [23] phi from main::@9 to test [phi:main::@9->test] // [23] phi test::i#11 = 9 [phi:main::@9->test#0] -- vbuxx=vbuc1 @@ -1141,7 +1141,7 @@ main: { // [20] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // test(i++, a) - // [21] call test + // [21] call test //1 // [23] phi from main::@10 to test [phi:main::@10->test] // [23] phi test::i#11 = $a [phi:main::@10->test#0] -- vbuxx=vbuc1 @@ -1156,7 +1156,7 @@ main: { rts } // test -// test(byte register(X) i, byte zp(2) a) +// void test(__register(X) char i, __zp(2) char a) test: { .label a = 2 // screen1[i] = a diff --git a/src/test/ref/assignment-compound.sym b/src/test/ref/assignment-compound.sym index 6b8103201..dba12c77d 100644 --- a/src/test/ref/assignment-compound.sym +++ b/src/test/ref/assignment-compound.sym @@ -1,18 +1,18 @@ -constant byte GREEN = 5 -constant byte RED = 2 -constant byte* cols = (byte*) 55296 +__constant char GREEN = 5 +__constant char RED = 2 +__constant char *cols = (char *) 55296 void main() -byte main::a -byte main::i -constant byte* ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } -constant byte* screen1 = (byte*) 1024 -byte* screen2 -constant byte* screen2#0 screen2 = screen1+$28 -void test(byte test::i , byte test::a) -byte test::a -byte test::a#11 a zp[1]:2 7.333333333333333 -byte test::i -byte test::i#11 reg byte x 16.5 +char main::a +char main::i +__constant char ref[] = { 3, 4, 3, $12, 9, 1, 4, 2, 4, 5, 1, 0 } +__constant char *screen1 = (char *) 1024 +char *screen2 +__constant char *screen2#0 = screen1+$28 // screen2 +void test(char i , char a) +char test::a +char test::a#11 // a zp[1]:2 7.333333333333333 +char test::i +char test::i#11 // reg byte x 16.5 zp[1]:2 [ test::a#11 ] reg byte x [ test::i#11 ] diff --git a/src/test/ref/atarixl-md5b.asm b/src/test/ref/atarixl-md5b.asm index f332cd10e..ba03860fb 100644 --- a/src/test/ref/atarixl-md5b.asm +++ b/src/test/ref/atarixl-md5b.asm @@ -102,7 +102,7 @@ md5: { sta.z a jmp __b1 } -// print(byte register(X) i, byte zp(6) a, byte zp(7) b, byte zp(8) c) +// void print(__register(X) char i, __zp(6) char a, __zp(7) char b, __zp(8) char c) print: { .label a = 6 .label b = 7 diff --git a/src/test/ref/atarixl-md5b.cfg b/src/test/ref/atarixl-md5b.cfg index 6588aadf9..9a4f7055e 100644 --- a/src/test/ref/atarixl-md5b.cfg +++ b/src/test/ref/atarixl-md5b.cfg @@ -4,12 +4,12 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] line = (byte*) 1024 + [1] line = (char *) 1024 [2] idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -20,12 +20,12 @@ main: scope:[main] from __start::@1 [6] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [7] main::s#2 = phi( main/(byte*) 1024, main::@2/main::s#1 ) + [7] main::s#2 = phi( main/(char *) 1024, main::@2/main::s#1 ) [8] if(main::s#2<$800) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [9] phi() - [10] call md5 + [10] call md5 to:main::@4 main::@4: scope:[main] from main::@3 main::@4 [11] phi() @@ -54,7 +54,7 @@ md5::@2: scope:[md5] from md5::@1 [19] print::a#0 = md5::a#3 [20] print::b#0 = md5::b#2 [21] print::c#0 = md5::a#1 - [22] call print + [22] call print to:md5::@5 md5::@5: scope:[md5] from md5::@2 [23] md5::$2 = md5::i#2 & 1 @@ -69,7 +69,7 @@ md5::@3: scope:[md5] from md5::@4 md5::@5 [28] print::a#1 = md5::a#1 [29] print::b#1 = md5::b#1 [30] print::c#1 = md5::b#2 - [31] call print + [31] call print to:md5::@6 md5::@6: scope:[md5] from md5::@3 [32] md5::i#1 = ++ md5::i#2 @@ -78,7 +78,7 @@ md5::@6: scope:[md5] from md5::@3 [35] md5::a#9 = md5::b#2 to:md5::@1 -void print(byte print::i , byte print::a , byte print::b , byte print::c) +void print(char i , char a , char b , char c) print: scope:[print] from md5::@2 md5::@3 [36] print::c#2 = phi( md5::@2/print::c#0, md5::@3/print::c#1 ) [36] print::b#2 = phi( md5::@2/print::b#0, md5::@3/print::b#1 ) diff --git a/src/test/ref/atarixl-md5b.log b/src/test/ref/atarixl-md5b.log index bd6076741..b74eccf5e 100644 --- a/src/test/ref/atarixl-md5b.log +++ b/src/test/ref/atarixl-md5b.log @@ -2,14 +2,14 @@ Inlined call call print32(print::i) Inlined call call print32(print::a) Inlined call call print32(print::b) Inlined call call print32(print::c) -Inlined call call println -Inlined call call __init +Inlined call call println +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - main::s#0 = (byte*)$400 + main::s#0 = (char *)$400 to:main::@1 main::@1: scope:[main] from main main::@2 main::s#2 = phi( main/main::s#0, main::@2/main::s#1 ) @@ -22,7 +22,7 @@ main::@2: scope:[main] from main::@1 main::s#1 = ++ main::s#3 to:main::@1 main::@3: scope:[main] from main::@1 - call md5 + call md5 to:main::@5 main::@5: scope:[main] from main::@3 to:main::@4 @@ -32,7 +32,7 @@ main::@return: scope:[main] from return to:@return -void print(byte print::i , byte print::a , byte print::b , byte print::c) +void print(char i , char a , char b , char c) print: scope:[print] from md5::@2 md5::@3 print::c#8 = phi( md5::@2/print::c#0, md5::@3/print::c#1 ) print::b#6 = phi( md5::@2/print::b#0, md5::@3/print::b#1 ) @@ -137,7 +137,7 @@ md5::@2: scope:[md5] from md5::@1 print::a#0 = md5::a#3 print::b#0 = md5::b#2 print::c#0 = md5::c#2 - call print + call print to:md5::@5 md5::@5: scope:[md5] from md5::@2 md5::a#6 = phi( md5::@2/md5::a#3 ) @@ -162,7 +162,7 @@ md5::@3: scope:[md5] from md5::@4 md5::@5 print::a#1 = md5::a#1 print::b#1 = md5::b#1 print::c#1 = md5::c#1 - call print + call print to:md5::@6 md5::@6: scope:[md5] from md5::@3 md5::c#7 = phi( md5::@3/md5::c#1 ) @@ -186,11 +186,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - line = (byte*)$400 + line = (char *)$400 idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -199,110 +199,110 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* HEX[] = "0123456789abcdef" +__constant char HEX[] = "0123456789abcdef" void __start() -byte idx loadstore -byte* line loadstore +__loadstore char idx +__loadstore char *line void main() -bool~ main::$1 -byte* main::s -byte* main::s#0 -byte* main::s#1 -byte* main::s#2 -byte* main::s#3 +bool main::$1 +char *main::s +char *main::s#0 +char *main::s#1 +char *main::s#2 +char *main::s#3 void md5() -bool~ md5::$0 -number~ md5::$2 -bool~ md5::$3 -number~ md5::$4 -bool~ md5::$6 -byte md5::a -byte md5::a#0 -byte md5::a#1 -byte md5::a#2 -byte md5::a#3 -byte md5::a#4 -byte md5::a#5 -byte md5::a#6 -byte md5::a#7 -byte md5::b -byte md5::b#0 -byte md5::b#1 -byte md5::b#2 -byte md5::b#3 -byte md5::b#4 -byte md5::b#5 -byte md5::b#6 -byte md5::b#7 -byte md5::c -byte md5::c#0 -byte md5::c#1 -byte md5::c#2 -byte md5::c#3 -byte md5::c#4 -byte md5::c#5 -byte md5::c#6 -byte md5::c#7 -byte md5::i -byte md5::i#0 -byte md5::i#1 -byte md5::i#2 -byte md5::i#3 -byte md5::i#4 -byte md5::i#5 -byte md5::i#6 -byte md5::i#7 -byte md5::temp -byte md5::temp#0 -void print(byte print::i , byte print::a , byte print::b , byte print::c) -byte print::a -byte print::a#0 -byte print::a#1 -byte print::a#2 -byte print::a#3 -byte print::a#4 -byte print::b -byte print::b#0 -byte print::b#1 -byte print::b#2 -byte print::b#3 -byte print::b#4 -byte print::b#5 -byte print::b#6 -byte print::c -byte print::c#0 -byte print::c#1 -byte print::c#2 -byte print::c#3 -byte print::c#4 -byte print::c#5 -byte print::c#6 -byte print::c#7 -byte print::c#8 -byte print::i -byte print::i#0 -byte print::i#1 -byte print::i#2 -number~ print::print321_$0 -number~ print::print321_$1 -byte print::print321_l -byte print::print321_l#0 -byte print::print321_l#1 -number~ print::print322_$0 -number~ print::print322_$1 -byte print::print322_l -byte print::print322_l#0 -byte print::print322_l#1 -number~ print::print323_$0 -number~ print::print323_$1 -byte print::print323_l -byte print::print323_l#0 -byte print::print323_l#1 -number~ print::print324_$0 -number~ print::print324_$1 -byte print::print324_l -byte print::print324_l#0 -byte print::print324_l#1 +bool md5::$0 +number md5::$2 +bool md5::$3 +number md5::$4 +bool md5::$6 +char md5::a +char md5::a#0 +char md5::a#1 +char md5::a#2 +char md5::a#3 +char md5::a#4 +char md5::a#5 +char md5::a#6 +char md5::a#7 +char md5::b +char md5::b#0 +char md5::b#1 +char md5::b#2 +char md5::b#3 +char md5::b#4 +char md5::b#5 +char md5::b#6 +char md5::b#7 +char md5::c +char md5::c#0 +char md5::c#1 +char md5::c#2 +char md5::c#3 +char md5::c#4 +char md5::c#5 +char md5::c#6 +char md5::c#7 +char md5::i +char md5::i#0 +char md5::i#1 +char md5::i#2 +char md5::i#3 +char md5::i#4 +char md5::i#5 +char md5::i#6 +char md5::i#7 +char md5::temp +char md5::temp#0 +void print(char i , char a , char b , char c) +char print::a +char print::a#0 +char print::a#1 +char print::a#2 +char print::a#3 +char print::a#4 +char print::b +char print::b#0 +char print::b#1 +char print::b#2 +char print::b#3 +char print::b#4 +char print::b#5 +char print::b#6 +char print::c +char print::c#0 +char print::c#1 +char print::c#2 +char print::c#3 +char print::c#4 +char print::c#5 +char print::c#6 +char print::c#7 +char print::c#8 +char print::i +char print::i#0 +char print::i#1 +char print::i#2 +number print::print321_$0 +number print::print321_$1 +char print::print321_l +char print::print321_l#0 +char print::print321_l#1 +number print::print322_$0 +number print::print322_$1 +char print::print322_l +char print::print322_l#0 +char print::print322_l#1 +number print::print323_$0 +number print::print323_$1 +char print::print323_l +char print::print323_l#0 +char print::print323_l#1 +number print::print324_$0 +number print::print324_$1 +char print::print324_l +char print::print324_l#0 +char print::print324_l#1 Adding number conversion cast (unumber) $800 in main::$1 = main::s#2 < $800 Adding number conversion cast (unumber) $10 in print::print321_$0 = print::print321_l#1 / $10 @@ -332,7 +332,7 @@ Adding number conversion cast (unumber) md5::$4 in md5::$4 = md5::b#3 + (unumber Successful SSA optimization PassNAddNumberTypeConversions Inlining cast idx = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $800 Simplifying constant integer cast $10 Simplifying constant integer cast $f @@ -348,34 +348,34 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $800 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (unsigned int) $800 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print::print321_$0 = print::print321_l#1 / $10 -Inferred type updated to byte in print::print321_$1 = print::print321_l#1 & $f -Inferred type updated to byte in print::print322_$0 = print::print322_l#1 / $10 -Inferred type updated to byte in print::print322_$1 = print::print322_l#1 & $f -Inferred type updated to byte in print::print323_$0 = print::print323_l#1 / $10 -Inferred type updated to byte in print::print323_$1 = print::print323_l#1 & $f -Inferred type updated to byte in print::print324_$0 = print::print324_l#1 / $10 -Inferred type updated to byte in print::print324_$1 = print::print324_l#1 & $f -Inferred type updated to byte in md5::$2 = md5::i#4 & 1 -Inferred type updated to byte in md5::$4 = md5::b#3 + 1 +Inferred type updated to char in print::print321_$0 = print::print321_l#1 / $10 +Inferred type updated to char in print::print321_$1 = print::print321_l#1 & $f +Inferred type updated to char in print::print322_$0 = print::print322_l#1 / $10 +Inferred type updated to char in print::print322_$1 = print::print322_l#1 & $f +Inferred type updated to char in print::print323_$0 = print::print323_l#1 / $10 +Inferred type updated to char in print::print323_$1 = print::print323_l#1 & $f +Inferred type updated to char in print::print324_$0 = print::print324_l#1 / $10 +Inferred type updated to char in print::print324_$1 = print::print324_l#1 & $f +Inferred type updated to char in md5::$2 = md5::i#4 & 1 +Inferred type updated to char in md5::$4 = md5::b#3 + 1 Inversing boolean not [72] md5::$3 = 0 == md5::$2 from [71] md5::$6 = 0 != md5::$2 Successful SSA optimization Pass2UnaryNotSimplification Alias main::s#2 = main::s#3 @@ -403,7 +403,7 @@ Simple Condition main::$1 [3] if(main::s#2<$800) goto main::@2 Simple Condition md5::$0 [50] if(md5::i#2<4) goto md5::@2 Simple Condition md5::$3 [58] if(0==md5::$2) goto md5::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::s#0 = (byte*) 1024 +Constant main::s#0 = (char *) 1024 Constant md5::a#0 = $67 Constant md5::b#0 = $ef Constant md5::c#0 = $98 @@ -422,7 +422,7 @@ Inlining constant with var siblings main::s#0 Inlining constant with var siblings md5::a#0 Inlining constant with var siblings md5::b#0 Inlining constant with var siblings md5::i#0 -Constant inlined main::s#0 = (byte*) 1024 +Constant inlined main::s#0 = (char *) 1024 Constant inlined md5::b#0 = $ef Constant inlined md5::i#0 = 0 Constant inlined md5::a#0 = $67 @@ -479,12 +479,12 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] line = (byte*) 1024 + [1] line = (char *) 1024 [2] idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -495,12 +495,12 @@ main: scope:[main] from __start::@1 [6] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [7] main::s#2 = phi( main/(byte*) 1024, main::@2/main::s#1 ) + [7] main::s#2 = phi( main/(char *) 1024, main::@2/main::s#1 ) [8] if(main::s#2<$800) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [9] phi() - [10] call md5 + [10] call md5 to:main::@4 main::@4: scope:[main] from main::@3 main::@4 [11] phi() @@ -529,7 +529,7 @@ md5::@2: scope:[md5] from md5::@1 [19] print::a#0 = md5::a#3 [20] print::b#0 = md5::b#2 [21] print::c#0 = md5::a#1 - [22] call print + [22] call print to:md5::@5 md5::@5: scope:[md5] from md5::@2 [23] md5::$2 = md5::i#2 & 1 @@ -544,7 +544,7 @@ md5::@3: scope:[md5] from md5::@4 md5::@5 [28] print::a#1 = md5::a#1 [29] print::b#1 = md5::b#1 [30] print::c#1 = md5::b#2 - [31] call print + [31] call print to:md5::@6 md5::@6: scope:[md5] from md5::@3 [32] md5::i#1 = ++ md5::i#2 @@ -553,7 +553,7 @@ md5::@6: scope:[md5] from md5::@3 [35] md5::a#9 = md5::b#2 to:md5::@1 -void print(byte print::i , byte print::a , byte print::b , byte print::c) +void print(char i , char a , char b , char c) print: scope:[print] from md5::@2 md5::@3 [36] print::c#2 = phi( md5::@2/print::c#0, md5::@3/print::c#1 ) [36] print::b#2 = phi( md5::@2/print::b#0, md5::@3/print::b#1 ) @@ -611,57 +611,57 @@ print::@return: scope:[print] from print::println1 VARIABLE REGISTER WEIGHTS void __start() -byte idx loadstore 5873.634920634922 -byte* line loadstore 2121.4545454545455 +__loadstore char idx // 5873.634920634922 +__loadstore char *line // 2121.4545454545455 void main() -byte* main::s -byte* main::s#1 202.0 -byte* main::s#2 134.66666666666666 +char *main::s +char *main::s#1 // 202.0 +char *main::s#2 // 134.66666666666666 void md5() -byte~ md5::$2 2002.0 -byte md5::a -byte md5::a#1 235.52941176470588 -byte md5::a#3 667.3333333333334 -byte md5::a#8 667.3333333333334 -byte md5::a#9 2002.0 -byte md5::b -byte md5::b#1 375.375 -byte md5::b#2 263.42105263157896 -byte md5::b#8 1001.0 -byte md5::c -byte md5::i -byte md5::i#1 500.5 -byte md5::i#2 375.375 -byte md5::temp -void print(byte print::i , byte print::a , byte print::b , byte print::c) -byte print::a -byte print::a#0 667.3333333333334 -byte print::a#1 667.3333333333334 -byte print::a#2 1833.6666666666665 -byte print::b -byte print::b#0 1001.0 -byte print::b#1 1001.0 -byte print::b#2 1100.2 -byte print::c -byte print::c#0 2002.0 -byte print::c#1 2002.0 -byte print::c#2 785.8571428571429 -byte print::i -byte print::i#0 500.5 -byte print::i#1 500.5 -byte~ print::print321_$0 20002.0 -byte~ print::print321_$1 20002.0 -byte print::print321_l -byte print::print321_l#0 5501.0 -byte~ print::print322_$0 20002.0 -byte~ print::print322_$1 20002.0 -byte print::print322_l -byte~ print::print323_$0 20002.0 -byte~ print::print323_$1 20002.0 -byte print::print323_l -byte~ print::print324_$0 20002.0 -byte~ print::print324_$1 20002.0 -byte print::print324_l +char md5::$2 // 2002.0 +char md5::a +char md5::a#1 // 235.52941176470588 +char md5::a#3 // 667.3333333333334 +char md5::a#8 // 667.3333333333334 +char md5::a#9 // 2002.0 +char md5::b +char md5::b#1 // 375.375 +char md5::b#2 // 263.42105263157896 +char md5::b#8 // 1001.0 +char md5::c +char md5::i +char md5::i#1 // 500.5 +char md5::i#2 // 375.375 +char md5::temp +void print(char i , char a , char b , char c) +char print::a +char print::a#0 // 667.3333333333334 +char print::a#1 // 667.3333333333334 +char print::a#2 // 1833.6666666666665 +char print::b +char print::b#0 // 1001.0 +char print::b#1 // 1001.0 +char print::b#2 // 1100.2 +char print::c +char print::c#0 // 2002.0 +char print::c#1 // 2002.0 +char print::c#2 // 785.8571428571429 +char print::i +char print::i#0 // 500.5 +char print::i#1 // 500.5 +char print::print321_$0 // 20002.0 +char print::print321_$1 // 20002.0 +char print::print321_l +char print::print321_l#0 // 5501.0 +char print::print322_$0 // 20002.0 +char print::print322_$1 // 20002.0 +char print::print322_l +char print::print323_$0 // 20002.0 +char print::print323_$1 // 20002.0 +char print::print323_l +char print::print324_$0 // 20002.0 +char print::print324_$1 // 20002.0 +char print::print324_l Initial phi equivalence classes [ main::s#2 main::s#1 ] @@ -729,7 +729,7 @@ Allocated zp[1]:22 [ print::print323_$1 ] Allocated zp[1]:23 [ print::print324_$0 ] Allocated zp[1]:24 [ print::print324_$1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] line = (byte*) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a +Statement [1] line = (char *) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a Statement [2] idx = 0 [ line idx ] ( [ line idx ] { } ) always clobbers reg byte a Statement [8] if(main::s#2<$800) goto main::@2 [ line idx main::s#2 ] ( main:4 [ line idx main::s#2 ] { } ) always clobbers reg byte a Statement [12] *main::s#2 = ' ' [ line idx main::s#2 ] ( main:4 [ line idx main::s#2 ] { } ) always clobbers reg byte a reg byte y @@ -771,7 +771,7 @@ Statement [65] line[idx] = HEX[print::print324_$1] [ line idx ] ( main:4::md5:10 Statement [67] line[idx] = ' ' [ line idx ] ( main:4::md5:10::print:22 [ md5::i#2 md5::b#2 md5::a#1 line idx ] { { print::print321_l#0 = print::i#0 md5::i#2 } { print::a#0 = print::a#2 md5::a#3 } { print::b#0 = print::b#2 md5::b#2 } { print::c#0 = print::c#2 md5::a#1 } } main:4::md5:10::print:31 [ md5::i#2 md5::b#2 md5::a#1 md5::b#1 line idx ] { { print::print321_l#0 = print::i#1 md5::i#2 } { print::a#1 = print::a#2 md5::a#1 } { print::b#1 = print::b#2 md5::b#1 } { print::c#1 = print::c#2 md5::b#2 } } ) always clobbers reg byte a reg byte y Statement [69] line = line + $28 [ line ] ( main:4::md5:10::print:22 [ md5::i#2 md5::b#2 md5::a#1 line ] { { print::print321_l#0 = print::i#0 md5::i#2 } { print::a#0 = print::a#2 md5::a#3 } { print::b#0 = print::b#2 md5::b#2 } { print::c#0 = print::c#2 md5::a#1 } } main:4::md5:10::print:31 [ md5::i#2 md5::b#2 md5::a#1 md5::b#1 line ] { { print::print321_l#0 = print::i#1 md5::i#2 } { print::a#1 = print::a#2 md5::a#1 } { print::b#1 = print::b#2 md5::b#1 } { print::c#1 = print::c#2 md5::b#2 } } ) always clobbers reg byte a Statement [70] idx = 0 [ line idx ] ( main:4::md5:10::print:22 [ md5::i#2 md5::b#2 md5::a#1 line idx ] { { print::print321_l#0 = print::i#0 md5::i#2 } { print::a#0 = print::a#2 md5::a#3 } { print::b#0 = print::b#2 md5::b#2 } { print::c#0 = print::c#2 md5::a#1 } } main:4::md5:10::print:31 [ md5::i#2 md5::b#2 md5::a#1 md5::b#1 line idx ] { { print::print321_l#0 = print::i#1 md5::i#2 } { print::a#1 = print::a#2 md5::a#1 } { print::b#1 = print::b#2 md5::b#1 } { print::c#1 = print::c#2 md5::b#2 } } ) always clobbers reg byte a -Statement [1] line = (byte*) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a +Statement [1] line = (char *) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a Statement [2] idx = 0 [ line idx ] ( [ line idx ] { } ) always clobbers reg byte a Statement [8] if(main::s#2<$800) goto main::@2 [ line idx main::s#2 ] ( main:4 [ line idx main::s#2 ] { } ) always clobbers reg byte a Statement [12] *main::s#2 = ' ' [ line idx main::s#2 ] ( main:4 [ line idx main::s#2 ] { } ) always clobbers reg byte a reg byte y @@ -888,7 +888,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] line = (byte*) 1024 -- pbuz1=pbuc1 + // [1] line = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -901,7 +901,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main // [6] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -916,7 +916,7 @@ main: { .label s = 2 // [7] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [7] phi main::s#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [7] phi main::s#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z s lda #>$400 @@ -938,7 +938,7 @@ main: { jmp __b3 // main::@3 __b3: - // [10] call md5 + // [10] call md5 // [14] phi from main::@3 to md5 [phi:main::@3->md5] md5_from___b3: jsr md5 @@ -1005,7 +1005,7 @@ md5: { // [21] print::c#0 = md5::a#1 -- vbuz1=vbuz2 lda.z a sta.z print.c - // [22] call print + // [22] call print // [36] phi from md5::@2 to print [phi:md5::@2->print] print_from___b2: // [36] phi print::c#2 = print::c#0 [phi:md5::@2->print#0] -- register_copy @@ -1042,7 +1042,7 @@ md5: { // [30] print::c#1 = md5::b#2 -- vbuz1=vbuz2 lda.z b_1 sta.z print.c - // [31] call print + // [31] call print // [36] phi from md5::@3 to print [phi:md5::@3->print] print_from___b3: // [36] phi print::c#2 = print::c#1 [phi:md5::@3->print#0] -- register_copy @@ -1072,7 +1072,7 @@ md5: { jmp __b1 } // print -// print(byte register(X) i, byte zp(6) a, byte zp(7) b, byte zp(8) c) +// void print(__register(X) char i, __zp(6) char a, __zp(7) char b, __zp(8) char c) print: { .label a = 6 .label b = 7 @@ -1288,60 +1288,60 @@ Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* HEX[] = "0123456789abcdef" +__constant char HEX[] = "0123456789abcdef" void __start() -byte idx loadstore zp[1]:11 5873.634920634922 -byte* line loadstore zp[2]:9 2121.4545454545455 +__loadstore char idx // zp[1]:11 5873.634920634922 +__loadstore char *line // zp[2]:9 2121.4545454545455 void main() -byte* main::s -byte* main::s#1 s zp[2]:2 202.0 -byte* main::s#2 s zp[2]:2 134.66666666666666 +char *main::s +char *main::s#1 // s zp[2]:2 202.0 +char *main::s#2 // s zp[2]:2 134.66666666666666 void md5() -byte~ md5::$2 reg byte a 2002.0 -byte md5::a -byte md5::a#1 a zp[1]:5 235.52941176470588 -byte md5::a#3 reg byte y 667.3333333333334 -byte md5::a#8 reg byte y 667.3333333333334 -byte md5::a#9 a zp[1]:5 2002.0 -byte md5::b -byte md5::b#1 b zp[1]:7 375.375 -byte md5::b#2 b_1 zp[1]:4 263.42105263157896 -byte md5::b#8 b_1 zp[1]:4 1001.0 -byte md5::c -constant byte md5::c#0 c = $98 -byte md5::i -byte md5::i#1 reg byte x 500.5 -byte md5::i#2 reg byte x 375.375 -byte md5::temp -void print(byte print::i , byte print::a , byte print::b , byte print::c) -byte print::a -byte print::a#0 a zp[1]:6 667.3333333333334 -byte print::a#1 a zp[1]:6 667.3333333333334 -byte print::a#2 a zp[1]:6 1833.6666666666665 -byte print::b -byte print::b#0 b zp[1]:7 1001.0 -byte print::b#1 b zp[1]:7 1001.0 -byte print::b#2 b zp[1]:7 1100.2 -byte print::c -byte print::c#0 c zp[1]:8 2002.0 -byte print::c#1 c zp[1]:8 2002.0 -byte print::c#2 c zp[1]:8 785.8571428571429 -byte print::i -byte print::i#0 reg byte x 500.5 -byte print::i#1 reg byte x 500.5 -byte~ print::print321_$0 reg byte a 20002.0 -byte~ print::print321_$1 reg byte a 20002.0 -byte print::print321_l -byte print::print321_l#0 reg byte x 5501.0 -byte~ print::print322_$0 reg byte a 20002.0 -byte~ print::print322_$1 reg byte a 20002.0 -byte print::print322_l -byte~ print::print323_$0 reg byte a 20002.0 -byte~ print::print323_$1 reg byte a 20002.0 -byte print::print323_l -byte~ print::print324_$0 reg byte a 20002.0 -byte~ print::print324_$1 reg byte a 20002.0 -byte print::print324_l +char md5::$2 // reg byte a 2002.0 +char md5::a +char md5::a#1 // a zp[1]:5 235.52941176470588 +char md5::a#3 // reg byte y 667.3333333333334 +char md5::a#8 // reg byte y 667.3333333333334 +char md5::a#9 // a zp[1]:5 2002.0 +char md5::b +char md5::b#1 // b zp[1]:7 375.375 +char md5::b#2 // b_1 zp[1]:4 263.42105263157896 +char md5::b#8 // b_1 zp[1]:4 1001.0 +char md5::c +__constant char md5::c#0 = $98 // c +char md5::i +char md5::i#1 // reg byte x 500.5 +char md5::i#2 // reg byte x 375.375 +char md5::temp +void print(char i , char a , char b , char c) +char print::a +char print::a#0 // a zp[1]:6 667.3333333333334 +char print::a#1 // a zp[1]:6 667.3333333333334 +char print::a#2 // a zp[1]:6 1833.6666666666665 +char print::b +char print::b#0 // b zp[1]:7 1001.0 +char print::b#1 // b zp[1]:7 1001.0 +char print::b#2 // b zp[1]:7 1100.2 +char print::c +char print::c#0 // c zp[1]:8 2002.0 +char print::c#1 // c zp[1]:8 2002.0 +char print::c#2 // c zp[1]:8 785.8571428571429 +char print::i +char print::i#0 // reg byte x 500.5 +char print::i#1 // reg byte x 500.5 +char print::print321_$0 // reg byte a 20002.0 +char print::print321_$1 // reg byte a 20002.0 +char print::print321_l +char print::print321_l#0 // reg byte x 5501.0 +char print::print322_$0 // reg byte a 20002.0 +char print::print322_$1 // reg byte a 20002.0 +char print::print322_l +char print::print323_$0 // reg byte a 20002.0 +char print::print323_$1 // reg byte a 20002.0 +char print::print323_l +char print::print324_$0 // reg byte a 20002.0 +char print::print324_$1 // reg byte a 20002.0 +char print::print324_l zp[2]:2 [ main::s#2 main::s#1 ] reg byte x [ md5::i#2 md5::i#1 ] @@ -1387,7 +1387,7 @@ Score: 1690 __start: { // __start::__init1 // __ma char * line = (char*)0x0400 - // [1] line = (byte*) 1024 -- pbuz1=pbuc1 + // [1] line = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -1398,7 +1398,7 @@ __start: { sta.z idx // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main // [6] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -1409,7 +1409,7 @@ __start: { main: { .label s = 2 // [7] phi from main to main::@1 [phi:main->main::@1] - // [7] phi main::s#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [7] phi main::s#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z s lda #>$400 @@ -1429,7 +1429,7 @@ main: { // [9] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // main::@3 // md5() - // [10] call md5 + // [10] call md5 // [14] phi from main::@3 to md5 [phi:main::@3->md5] jsr md5 // [11] phi from main::@3 main::@4 to main::@4 [phi:main::@3/main::@4->main::@4] @@ -1492,7 +1492,7 @@ md5: { // [21] print::c#0 = md5::a#1 -- vbuz1=vbuz2 lda.z a sta.z print.c - // [22] call print + // [22] call print // [36] phi from md5::@2 to print [phi:md5::@2->print] // [36] phi print::c#2 = print::c#0 [phi:md5::@2->print#0] -- register_copy // [36] phi print::b#2 = print::b#0 [phi:md5::@2->print#1] -- register_copy @@ -1524,7 +1524,7 @@ md5: { // [30] print::c#1 = md5::b#2 -- vbuz1=vbuz2 lda.z b_1 sta.z print.c - // [31] call print + // [31] call print // [36] phi from md5::@3 to print [phi:md5::@3->print] // [36] phi print::c#2 = print::c#1 [phi:md5::@3->print#0] -- register_copy // [36] phi print::b#2 = print::b#1 [phi:md5::@3->print#1] -- register_copy @@ -1550,7 +1550,7 @@ md5: { jmp __b1 } // print -// print(byte register(X) i, byte zp(6) a, byte zp(7) b, byte zp(8) c) +// void print(__register(X) char i, __zp(6) char a, __zp(7) char b, __zp(8) char c) print: { .label a = 6 .label b = 7 diff --git a/src/test/ref/atarixl-md5b.sym b/src/test/ref/atarixl-md5b.sym index b4b9d9892..9db372b90 100644 --- a/src/test/ref/atarixl-md5b.sym +++ b/src/test/ref/atarixl-md5b.sym @@ -1,57 +1,57 @@ -constant byte* HEX[] = "0123456789abcdef" +__constant char HEX[] = "0123456789abcdef" void __start() -byte idx loadstore zp[1]:11 5873.634920634922 -byte* line loadstore zp[2]:9 2121.4545454545455 +__loadstore char idx // zp[1]:11 5873.634920634922 +__loadstore char *line // zp[2]:9 2121.4545454545455 void main() -byte* main::s -byte* main::s#1 s zp[2]:2 202.0 -byte* main::s#2 s zp[2]:2 134.66666666666666 +char *main::s +char *main::s#1 // s zp[2]:2 202.0 +char *main::s#2 // s zp[2]:2 134.66666666666666 void md5() -byte~ md5::$2 reg byte a 2002.0 -byte md5::a -byte md5::a#1 a zp[1]:5 235.52941176470588 -byte md5::a#3 reg byte y 667.3333333333334 -byte md5::a#8 reg byte y 667.3333333333334 -byte md5::a#9 a zp[1]:5 2002.0 -byte md5::b -byte md5::b#1 b zp[1]:7 375.375 -byte md5::b#2 b_1 zp[1]:4 263.42105263157896 -byte md5::b#8 b_1 zp[1]:4 1001.0 -byte md5::c -constant byte md5::c#0 c = $98 -byte md5::i -byte md5::i#1 reg byte x 500.5 -byte md5::i#2 reg byte x 375.375 -byte md5::temp -void print(byte print::i , byte print::a , byte print::b , byte print::c) -byte print::a -byte print::a#0 a zp[1]:6 667.3333333333334 -byte print::a#1 a zp[1]:6 667.3333333333334 -byte print::a#2 a zp[1]:6 1833.6666666666665 -byte print::b -byte print::b#0 b zp[1]:7 1001.0 -byte print::b#1 b zp[1]:7 1001.0 -byte print::b#2 b zp[1]:7 1100.2 -byte print::c -byte print::c#0 c zp[1]:8 2002.0 -byte print::c#1 c zp[1]:8 2002.0 -byte print::c#2 c zp[1]:8 785.8571428571429 -byte print::i -byte print::i#0 reg byte x 500.5 -byte print::i#1 reg byte x 500.5 -byte~ print::print321_$0 reg byte a 20002.0 -byte~ print::print321_$1 reg byte a 20002.0 -byte print::print321_l -byte print::print321_l#0 reg byte x 5501.0 -byte~ print::print322_$0 reg byte a 20002.0 -byte~ print::print322_$1 reg byte a 20002.0 -byte print::print322_l -byte~ print::print323_$0 reg byte a 20002.0 -byte~ print::print323_$1 reg byte a 20002.0 -byte print::print323_l -byte~ print::print324_$0 reg byte a 20002.0 -byte~ print::print324_$1 reg byte a 20002.0 -byte print::print324_l +char md5::$2 // reg byte a 2002.0 +char md5::a +char md5::a#1 // a zp[1]:5 235.52941176470588 +char md5::a#3 // reg byte y 667.3333333333334 +char md5::a#8 // reg byte y 667.3333333333334 +char md5::a#9 // a zp[1]:5 2002.0 +char md5::b +char md5::b#1 // b zp[1]:7 375.375 +char md5::b#2 // b_1 zp[1]:4 263.42105263157896 +char md5::b#8 // b_1 zp[1]:4 1001.0 +char md5::c +__constant char md5::c#0 = $98 // c +char md5::i +char md5::i#1 // reg byte x 500.5 +char md5::i#2 // reg byte x 375.375 +char md5::temp +void print(char i , char a , char b , char c) +char print::a +char print::a#0 // a zp[1]:6 667.3333333333334 +char print::a#1 // a zp[1]:6 667.3333333333334 +char print::a#2 // a zp[1]:6 1833.6666666666665 +char print::b +char print::b#0 // b zp[1]:7 1001.0 +char print::b#1 // b zp[1]:7 1001.0 +char print::b#2 // b zp[1]:7 1100.2 +char print::c +char print::c#0 // c zp[1]:8 2002.0 +char print::c#1 // c zp[1]:8 2002.0 +char print::c#2 // c zp[1]:8 785.8571428571429 +char print::i +char print::i#0 // reg byte x 500.5 +char print::i#1 // reg byte x 500.5 +char print::print321_$0 // reg byte a 20002.0 +char print::print321_$1 // reg byte a 20002.0 +char print::print321_l +char print::print321_l#0 // reg byte x 5501.0 +char print::print322_$0 // reg byte a 20002.0 +char print::print322_$1 // reg byte a 20002.0 +char print::print322_l +char print::print323_$0 // reg byte a 20002.0 +char print::print323_$1 // reg byte a 20002.0 +char print::print323_l +char print::print324_$0 // reg byte a 20002.0 +char print::print324_$1 // reg byte a 20002.0 +char print::print324_l zp[2]:2 [ main::s#2 main::s#1 ] reg byte x [ md5::i#2 md5::i#1 ] diff --git a/src/test/ref/bgblack.log b/src/test/ref/bgblack.log index 0774b21df..75b02b1a0 100644 --- a/src/test/ref/bgblack.log +++ b/src/test/ref/bgblack.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,12 +20,12 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte BLACK = 0 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char BLACK = 0 void __start() void main() -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -98,8 +98,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 void main() diff --git a/src/test/ref/bgblack.sym b/src/test/ref/bgblack.sym index 7de0b3515..afb53b147 100644 --- a/src/test/ref/bgblack.sym +++ b/src/test/ref/bgblack.sym @@ -1,4 +1,4 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 void main() diff --git a/src/test/ref/bitmap-circle-2.asm b/src/test/ref/bitmap-circle-2.asm index c06d7ac5b..1cac8e187 100644 --- a/src/test/ref/bitmap-circle-2.asm +++ b/src/test/ref/bitmap-circle-2.asm @@ -104,7 +104,7 @@ main: { jmp __b1 } // Fill some memory with a value -// fill(signed word zp(4) size, byte register(X) val) +// void fill(char *start, __zp(4) int size, __register(X) char val) fill: { .label end = 4 .label addr = 6 @@ -139,7 +139,7 @@ fill: { !: jmp __b1 } -// circle(signed word zp(6) r) +// void circle(int xc, int yc, __zp(6) int r) circle: { .const xc = $a0 .const yc = $64 @@ -389,7 +389,7 @@ circle: { sta.z p+1 jmp __b4 } -// plot(signed word zp($a) x, signed word zp($c) y) +// void plot(__zp($a) int x, __zp($c) int y) plot: { .label __8 = $e .label __11 = $c diff --git a/src/test/ref/bitmap-circle-2.cfg b/src/test/ref/bitmap-circle-2.cfg index c51d6106d..55c036f53 100644 --- a/src/test/ref/bitmap-circle-2.cfg +++ b/src/test/ref/bitmap-circle-2.cfg @@ -2,16 +2,16 @@ void main() main: scope:[main] from [0] phi() - [1] call fill + [1] call fill to:main::@4 main::@4: scope:[main] from main [2] phi() - [3] call fill + [3] call fill to:main::@5 main::@5: scope:[main] from main::@4 [4] *BORDER_COLOR = BLUE [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 to:main::@1 main::@1: scope:[main] from main::@5 main::@6 [7] main::i#2 = phi( main::@5/1, main::@6/main::i#1 ) @@ -22,16 +22,16 @@ main::@3: scope:[main] from main::@1 main::@3 to:main::@3 main::@2: scope:[main] from main::@1 [10] circle::r#0 = main::i#2 - [11] call circle + [11] call circle to:main::@6 main::@6: scope:[main] from main::@2 [12] main::i#1 = main::i#2 + 5 to:main::@1 -void fill(byte* fill::start , signed word fill::size , byte fill::val) +void fill(char *start , int size , char val) fill: scope:[fill] from main main::@4 [13] fill::val#4 = phi( main/0, main::@4/$16 ) - [13] fill::size#2 = phi( main/(signed word)$28*$19*8, main::@4/(signed word)$28*$19 ) + [13] fill::size#2 = phi( main/(int)$28*$19*8, main::@4/(int)$28*$19 ) [13] fill::addr#0 = phi( main/BITMAP, main::@4/SCREEN ) [14] fill::end#0 = fill::addr#0 + fill::size#2 to:fill::@1 @@ -47,7 +47,7 @@ fill::@2: scope:[fill] from fill::@1 [19] fill::addr#1 = ++ fill::addr#2 to:fill::@1 -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) +void circle(int xc , int yc , int r) circle: scope:[circle] from main::@2 [20] circle::$0 = circle::r#0 << 1 [21] circle::p#0 = 3 - circle::$0 @@ -76,42 +76,42 @@ circle::@4: scope:[circle] from circle::@3 circle::@5 [31] circle::y#10 = phi( circle::@3/circle::y#13, circle::@5/circle::y#1 ) [32] plot::x#0 = circle::xc#0 + circle::x1#10 [33] plot::y#0 = circle::yc#0 - circle::y#10 - [34] call plot + [34] call plot to:circle::@6 circle::@6: scope:[circle] from circle::@4 [35] plot::x#1 = circle::xc#0 - circle::x1#10 [36] plot::y#1 = circle::yc#0 - circle::y#10 - [37] call plot + [37] call plot to:circle::@7 circle::@7: scope:[circle] from circle::@6 [38] plot::x#2 = circle::xc#0 + circle::x1#10 [39] plot::y#2 = circle::yc#0 + circle::y#10 - [40] call plot + [40] call plot to:circle::@8 circle::@8: scope:[circle] from circle::@7 [41] plot::x#3 = circle::xc#0 - circle::x1#10 [42] plot::y#3 = circle::yc#0 + circle::y#10 - [43] call plot + [43] call plot to:circle::@9 circle::@9: scope:[circle] from circle::@8 [44] plot::x#4 = circle::xc#0 + circle::y#10 [45] plot::y#4 = circle::yc#0 - circle::x1#10 - [46] call plot + [46] call plot to:circle::@10 circle::@10: scope:[circle] from circle::@9 [47] plot::x#5 = circle::xc#0 - circle::y#10 [48] plot::y#5 = circle::yc#0 - circle::x1#10 - [49] call plot + [49] call plot to:circle::@11 circle::@11: scope:[circle] from circle::@10 [50] plot::x#6 = circle::xc#0 + circle::y#10 [51] plot::y#6 = circle::yc#0 + circle::x1#10 - [52] call plot + [52] call plot to:circle::@12 circle::@12: scope:[circle] from circle::@11 [53] plot::x#7 = circle::xc#0 - circle::y#10 [54] plot::y#7 = circle::yc#0 + circle::x1#10 - [55] call plot + [55] call plot to:circle::@13 circle::@13: scope:[circle] from circle::@12 [56] circle::x1#1 = ++ circle::x1#10 @@ -122,7 +122,7 @@ circle::@3: scope:[circle] from circle::@2 [59] circle::p#1 = circle::$10 + 6 to:circle::@4 -void plot(signed word plot::x , signed word plot::y) +void plot(int x , int y) plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9 [60] plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 ) [60] plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 ) diff --git a/src/test/ref/bitmap-circle-2.log b/src/test/ref/bitmap-circle-2.log index 6547a8abb..ea1b75ac4 100644 --- a/src/test/ref/bitmap-circle-2.log +++ b/src/test/ref/bitmap-circle-2.log @@ -9,18 +9,18 @@ main: scope:[main] from __start fill::start#0 = BITMAP fill::size#0 = $28*$19*8 fill::val#0 = 0 - call fill + call fill to:main::@4 main::@4: scope:[main] from main fill::start#1 = SCREEN fill::size#1 = $28*$19 fill::val#1 = $16 - call fill + call fill to:main::@5 main::@5: scope:[main] from main::@4 *BORDER_COLOR = BLUE *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 main::i#0 = 1 to:main::@1 main::@1: scope:[main] from main::@5 main::@6 @@ -33,7 +33,7 @@ main::@2: scope:[main] from main::@1 circle::xc#0 = $a0 circle::yc#0 = $64 circle::r#0 = main::i#3 - call circle + call circle to:main::@6 main::@6: scope:[main] from main::@2 main::i#4 = phi( main::@2/main::i#3 ) @@ -46,7 +46,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) +void circle(int xc , int yc , int r) circle: scope:[circle] from main::@2 circle::yc#13 = phi( main::@2/circle::yc#0 ) circle::xc#13 = phi( main::@2/circle::xc#0 ) @@ -109,7 +109,7 @@ circle::@4: scope:[circle] from circle::@3 circle::@5 circle::$13 = circle::yc#1 - circle::y#4 plot::x#0 = circle::$12 plot::y#0 = circle::$13 - call plot + call plot to:circle::@6 circle::@6: scope:[circle] from circle::@4 circle::p#14 = phi( circle::@4/circle::p#15 ) @@ -121,7 +121,7 @@ circle::@6: scope:[circle] from circle::@4 circle::$16 = circle::yc#2 - circle::y#5 plot::x#1 = circle::$15 plot::y#1 = circle::$16 - call plot + call plot to:circle::@7 circle::@7: scope:[circle] from circle::@6 circle::p#13 = phi( circle::@6/circle::p#14 ) @@ -133,7 +133,7 @@ circle::@7: scope:[circle] from circle::@6 circle::$19 = circle::yc#3 + circle::y#6 plot::x#2 = circle::$18 plot::y#2 = circle::$19 - call plot + call plot to:circle::@8 circle::@8: scope:[circle] from circle::@7 circle::p#12 = phi( circle::@7/circle::p#13 ) @@ -145,7 +145,7 @@ circle::@8: scope:[circle] from circle::@7 circle::$22 = circle::yc#4 + circle::y#7 plot::x#3 = circle::$21 plot::y#3 = circle::$22 - call plot + call plot to:circle::@9 circle::@9: scope:[circle] from circle::@8 circle::p#11 = phi( circle::@8/circle::p#12 ) @@ -157,7 +157,7 @@ circle::@9: scope:[circle] from circle::@8 circle::$25 = circle::yc#5 - circle::x1#9 plot::x#4 = circle::$24 plot::y#4 = circle::$25 - call plot + call plot to:circle::@10 circle::@10: scope:[circle] from circle::@9 circle::p#10 = phi( circle::@9/circle::p#11 ) @@ -169,7 +169,7 @@ circle::@10: scope:[circle] from circle::@9 circle::$28 = circle::yc#6 - circle::x1#10 plot::x#5 = circle::$27 plot::y#5 = circle::$28 - call plot + call plot to:circle::@11 circle::@11: scope:[circle] from circle::@10 circle::p#9 = phi( circle::@10/circle::p#10 ) @@ -181,7 +181,7 @@ circle::@11: scope:[circle] from circle::@10 circle::$31 = circle::yc#7 + circle::x1#11 plot::x#6 = circle::$30 plot::y#6 = circle::$31 - call plot + call plot to:circle::@12 circle::@12: scope:[circle] from circle::@11 circle::p#8 = phi( circle::@11/circle::p#9 ) @@ -193,7 +193,7 @@ circle::@12: scope:[circle] from circle::@11 circle::$34 = circle::yc#8 + circle::x1#12 plot::x#7 = circle::$33 plot::y#7 = circle::$34 - call plot + call plot to:circle::@13 circle::@13: scope:[circle] from circle::@12 circle::yc#14 = phi( circle::@12/circle::yc#8 ) @@ -207,7 +207,7 @@ circle::@return: scope:[circle] from circle::@1 return to:@return -void plot(signed word plot::x , signed word plot::y) +void plot(int x , int y) plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9 plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 ) plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 ) @@ -241,7 +241,7 @@ plot::@return: scope:[plot] from plot plot::@1 return to:@return -void fill(byte* fill::start , signed word fill::size , byte fill::val) +void fill(char *start , int size , char val) fill: scope:[fill] from main main::@4 fill::val#4 = phi( main/fill::val#0, main::@4/fill::val#1 ) fill::size#2 = phi( main/fill::size#0, main::@4/fill::size#1 ) @@ -269,7 +269,7 @@ fill::@return: scope:[fill] from fill::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -278,205 +278,205 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BITMAP = (byte*)$2000 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const D011 = (byte*)$d011 -constant byte* const SCREEN = (byte*)$400 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 +__constant char * const BITMAP = (char *)$2000 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const D011 = (char *)$d011 +__constant char * const SCREEN = (char *)$400 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 void __start() -constant byte* bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$0 -signed word~ circle::$10 -number~ circle::$11 -signed word~ circle::$12 -signed word~ circle::$13 -signed word~ circle::$15 -signed word~ circle::$16 -signed word~ circle::$18 -signed word~ circle::$19 -bool~ circle::$2 -signed word~ circle::$21 -signed word~ circle::$22 -signed word~ circle::$24 -signed word~ circle::$25 -signed word~ circle::$27 -signed word~ circle::$28 -bool~ circle::$3 -signed word~ circle::$30 -signed word~ circle::$31 -signed word~ circle::$33 -signed word~ circle::$34 -number~ circle::$4 -signed word~ circle::$5 -signed word~ circle::$6 -signed word~ circle::$7 -number~ circle::$8 -signed word~ circle::$9 -signed word circle::p -signed word circle::p#0 -signed word circle::p#1 -signed word circle::p#10 -signed word circle::p#11 -signed word circle::p#12 -signed word circle::p#13 -signed word circle::p#14 -signed word circle::p#15 -signed word circle::p#2 -signed word circle::p#3 -signed word circle::p#4 -signed word circle::p#5 -signed word circle::p#6 -signed word circle::p#7 -signed word circle::p#8 -signed word circle::p#9 -signed word circle::r -signed word circle::r#0 -signed word circle::r#1 -signed word circle::x1 -signed word circle::x1#0 -signed word circle::x1#1 -signed word circle::x1#10 -signed word circle::x1#11 -signed word circle::x1#12 -signed word circle::x1#13 -signed word circle::x1#14 -signed word circle::x1#2 -signed word circle::x1#3 -signed word circle::x1#4 -signed word circle::x1#5 -signed word circle::x1#6 -signed word circle::x1#7 -signed word circle::x1#8 -signed word circle::x1#9 -signed word circle::xc -signed word circle::xc#0 -signed word circle::xc#1 -signed word circle::xc#10 -signed word circle::xc#11 -signed word circle::xc#12 -signed word circle::xc#13 -signed word circle::xc#14 -signed word circle::xc#2 -signed word circle::xc#3 -signed word circle::xc#4 -signed word circle::xc#5 -signed word circle::xc#6 -signed word circle::xc#7 -signed word circle::xc#8 -signed word circle::xc#9 -signed word circle::y -signed word circle::y#0 -signed word circle::y#1 -signed word circle::y#10 -signed word circle::y#11 -signed word circle::y#12 -signed word circle::y#13 -signed word circle::y#14 -signed word circle::y#2 -signed word circle::y#3 -signed word circle::y#4 -signed word circle::y#5 -signed word circle::y#6 -signed word circle::y#7 -signed word circle::y#8 -signed word circle::y#9 -signed word circle::yc -signed word circle::yc#0 -signed word circle::yc#1 -signed word circle::yc#10 -signed word circle::yc#11 -signed word circle::yc#12 -signed word circle::yc#13 -signed word circle::yc#14 -signed word circle::yc#2 -signed word circle::yc#3 -signed word circle::yc#4 -signed word circle::yc#5 -signed word circle::yc#6 -signed word circle::yc#7 -signed word circle::yc#8 -signed word circle::yc#9 -void fill(byte* fill::start , signed word fill::size , byte fill::val) -bool~ fill::$1 -byte* fill::addr -byte* fill::addr#0 -byte* fill::addr#1 -byte* fill::addr#2 -byte* fill::addr#3 -byte* fill::end -byte* fill::end#0 -byte* fill::end#1 -byte* fill::end#2 -signed word fill::size -signed word fill::size#0 -signed word fill::size#1 -signed word fill::size#2 -byte* fill::start -byte* fill::start#0 -byte* fill::start#1 -byte* fill::start#2 -byte fill::val -byte fill::val#0 -byte fill::val#1 -byte fill::val#2 -byte fill::val#3 -byte fill::val#4 +__constant char bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } +void circle(int xc , int yc , int r) +int circle::$0 +int circle::$10 +number circle::$11 +int circle::$12 +int circle::$13 +int circle::$15 +int circle::$16 +int circle::$18 +int circle::$19 +bool circle::$2 +int circle::$21 +int circle::$22 +int circle::$24 +int circle::$25 +int circle::$27 +int circle::$28 +bool circle::$3 +int circle::$30 +int circle::$31 +int circle::$33 +int circle::$34 +number circle::$4 +int circle::$5 +int circle::$6 +int circle::$7 +number circle::$8 +int circle::$9 +int circle::p +int circle::p#0 +int circle::p#1 +int circle::p#10 +int circle::p#11 +int circle::p#12 +int circle::p#13 +int circle::p#14 +int circle::p#15 +int circle::p#2 +int circle::p#3 +int circle::p#4 +int circle::p#5 +int circle::p#6 +int circle::p#7 +int circle::p#8 +int circle::p#9 +int circle::r +int circle::r#0 +int circle::r#1 +int circle::x1 +int circle::x1#0 +int circle::x1#1 +int circle::x1#10 +int circle::x1#11 +int circle::x1#12 +int circle::x1#13 +int circle::x1#14 +int circle::x1#2 +int circle::x1#3 +int circle::x1#4 +int circle::x1#5 +int circle::x1#6 +int circle::x1#7 +int circle::x1#8 +int circle::x1#9 +int circle::xc +int circle::xc#0 +int circle::xc#1 +int circle::xc#10 +int circle::xc#11 +int circle::xc#12 +int circle::xc#13 +int circle::xc#14 +int circle::xc#2 +int circle::xc#3 +int circle::xc#4 +int circle::xc#5 +int circle::xc#6 +int circle::xc#7 +int circle::xc#8 +int circle::xc#9 +int circle::y +int circle::y#0 +int circle::y#1 +int circle::y#10 +int circle::y#11 +int circle::y#12 +int circle::y#13 +int circle::y#14 +int circle::y#2 +int circle::y#3 +int circle::y#4 +int circle::y#5 +int circle::y#6 +int circle::y#7 +int circle::y#8 +int circle::y#9 +int circle::yc +int circle::yc#0 +int circle::yc#1 +int circle::yc#10 +int circle::yc#11 +int circle::yc#12 +int circle::yc#13 +int circle::yc#14 +int circle::yc#2 +int circle::yc#3 +int circle::yc#4 +int circle::yc#5 +int circle::yc#6 +int circle::yc#7 +int circle::yc#8 +int circle::yc#9 +void fill(char *start , int size , char val) +bool fill::$1 +char *fill::addr +char *fill::addr#0 +char *fill::addr#1 +char *fill::addr#2 +char *fill::addr#3 +char *fill::end +char *fill::end#0 +char *fill::end#1 +char *fill::end#2 +int fill::size +int fill::size#0 +int fill::size#1 +int fill::size#2 +char *fill::start +char *fill::start#0 +char *fill::start#1 +char *fill::start#2 +char fill::val +char fill::val#0 +char fill::val#1 +char fill::val#2 +char fill::val#3 +char fill::val#4 void main() -bool~ main::$2 -signed word main::i -signed word main::i#0 -signed word main::i#1 -signed word main::i#2 -signed word main::i#3 -signed word main::i#4 -void plot(signed word plot::x , signed word plot::y) -bool~ plot::$0 -bool~ plot::$1 -number~ plot::$10 -signed word~ plot::$11 -number~ plot::$12 -number~ plot::$13 -byte~ plot::$14 -bool~ plot::$2 -bool~ plot::$3 -bool~ plot::$4 -bool~ plot::$5 -bool~ plot::$6 -bool~ plot::$7 -number~ plot::$8 -byte~ plot::$9 -byte* plot::location -byte* plot::location#0 -byte* plot::location#1 -byte* plot::location#2 -byte* plot::location#3 -signed word plot::x -signed word plot::x#0 -signed word plot::x#1 -signed word plot::x#2 -signed word plot::x#3 -signed word plot::x#4 -signed word plot::x#5 -signed word plot::x#6 -signed word plot::x#7 -signed word plot::x#8 -signed word plot::x#9 -signed word plot::y -signed word plot::y#0 -signed word plot::y#1 -signed word plot::y#2 -signed word plot::y#3 -signed word plot::y#4 -signed word plot::y#5 -signed word plot::y#6 -signed word plot::y#7 -signed word plot::y#8 -signed word plot::y#9 +bool main::$2 +int main::i +int main::i#0 +int main::i#1 +int main::i#2 +int main::i#3 +int main::i#4 +void plot(int x , int y) +bool plot::$0 +bool plot::$1 +number plot::$10 +int plot::$11 +number plot::$12 +number plot::$13 +char plot::$14 +bool plot::$2 +bool plot::$3 +bool plot::$4 +bool plot::$5 +bool plot::$6 +bool plot::$7 +number plot::$8 +char plot::$9 +char *plot::location +char *plot::location#0 +char *plot::location#1 +char *plot::location#2 +char *plot::location#3 +int plot::x +int plot::x#0 +int plot::x#1 +int plot::x#2 +int plot::x#3 +int plot::x#4 +int plot::x#5 +int plot::x#6 +int plot::x#7 +int plot::x#8 +int plot::x#9 +int plot::y +int plot::y#0 +int plot::y#1 +int plot::y#2 +int plot::y#3 +int plot::y#4 +int plot::y#5 +int plot::y#6 +int plot::y#7 +int plot::y#8 +int plot::y#9 Adding number conversion cast (snumber) $28*$19*8 in fill::size#0 = $28*$19*8 Adding number conversion cast (unumber) 0 in fill::val#0 = 0 @@ -484,8 +484,8 @@ Adding number conversion cast (snumber) $28*$19 in fill::size#1 = $28*$19 Adding number conversion cast (unumber) $16 in fill::val#1 = $16 Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&$3fff/$400 Adding number conversion cast (snumber) $b4 in main::$2 = main::i#2 < $b4 Adding number conversion cast (snumber) $a0 in circle::xc#0 = $a0 Adding number conversion cast (snumber) $64 in circle::yc#0 = $64 @@ -515,8 +515,8 @@ Adding number conversion cast (snumber) plot::$12 in plot::$12 = plot::$11 * (sn Adding number conversion cast (snumber) 7 in plot::$13 = plot::x#9 & 7 Adding number conversion cast (snumber) plot::$13 in plot::$13 = plot::x#9 & (snumber)7 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&(unumber)$3fff/$400 -Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(word)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unsigned int)BITMAP&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fill::size#0 = (snumber)$28*$19*8 Inlining cast fill::val#0 = (unumber)0 @@ -526,11 +526,11 @@ Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 Inlining cast circle::xc#0 = (snumber)$a0 Inlining cast circle::yc#0 = (snumber)$64 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 0 Simplifying constant integer cast $16 Simplifying constant integer cast VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 @@ -561,42 +561,42 @@ Simplifying constant integer cast 3 Simplifying constant integer cast $140 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $16 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (word) $400 -Finalized signed number type (signed word) $b4 -Finalized signed number type (signed word) $a0 -Finalized signed number type (signed byte) $64 -Finalized signed number type (signed byte) 5 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 3 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) 6 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) $a -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed word) $13f -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed word) $c7 -Finalized signed number type (signed dword) $fff8 -Finalized unsigned number type (byte) 7 -Finalized signed number type (signed byte) 3 -Finalized signed number type (signed word) $140 -Finalized signed number type (signed byte) 7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $16 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (unsigned int) $400 +Finalized signed number type (int) $b4 +Finalized signed number type (int) $a0 +Finalized signed number type (signed char) $64 +Finalized signed number type (signed char) 5 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 3 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) 6 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) $a +Finalized signed number type (signed char) 0 +Finalized signed number type (int) $13f +Finalized signed number type (signed char) 0 +Finalized signed number type (int) $c7 +Finalized signed number type (long) $fff8 +Finalized unsigned number type (char) 7 +Finalized signed number type (signed char) 3 +Finalized signed number type (int) $140 +Finalized signed number type (signed char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed word in circle::$11 = circle::$10 + 6 -Inferred type updated to signed word in circle::$4 = circle::y#3 - 1 -Inferred type updated to signed word in circle::$8 = circle::$7 + $a -Inferred type updated to signed word in plot::$8 = plot::x#9 & $fff8 -Inferred type updated to byte in plot::$10 = plot::$9 & 7 -Inferred type updated to signed word in plot::$12 = plot::$11 * $140 -Inferred type updated to signed byte in plot::$13 = plot::x#9 & 7 +Inferred type updated to int in circle::$11 = circle::$10 + 6 +Inferred type updated to int in circle::$4 = circle::y#3 - 1 +Inferred type updated to int in circle::$8 = circle::$7 + $a +Inferred type updated to int in plot::$8 = plot::x#9 & $fff8 +Inferred type updated to char in plot::$10 = plot::$9 & 7 +Inferred type updated to int in plot::$12 = plot::$11 * $140 +Inferred type updated to signed char in plot::$13 = plot::x#9 & 7 Alias main::i#2 = main::i#3 main::i#4 Alias circle::y#0 = circle::r#1 Alias circle::p#3 = circle::p#6 circle::p#4 circle::p#5 @@ -693,7 +693,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c7+(snumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 1 +Finalized signed number type (signed char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[58] plot::$12 = plot::$11 * $140 Inlining constant with var siblings main::i#0 @@ -710,16 +710,16 @@ Constant inlined fill::start#0 = BITMAP Constant inlined circle::x1#0 = 0 Constant inlined fill::val#1 = $16 Constant inlined main::i#0 = 1 -Constant inlined fill::size#1 = (signed word)$28*$19 -Constant inlined fill::size#0 = (signed word)$28*$19*8 +Constant inlined fill::size#1 = (int)$28*$19 +Constant inlined fill::size#0 = (int)$28*$19*8 Successful SSA optimization Pass2ConstantInlining Alias plot::$12 = plot::$17 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@4 @@ -767,16 +767,16 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call fill + [1] call fill to:main::@4 main::@4: scope:[main] from main [2] phi() - [3] call fill + [3] call fill to:main::@5 main::@5: scope:[main] from main::@4 [4] *BORDER_COLOR = BLUE [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 to:main::@1 main::@1: scope:[main] from main::@5 main::@6 [7] main::i#2 = phi( main::@5/1, main::@6/main::i#1 ) @@ -787,16 +787,16 @@ main::@3: scope:[main] from main::@1 main::@3 to:main::@3 main::@2: scope:[main] from main::@1 [10] circle::r#0 = main::i#2 - [11] call circle + [11] call circle to:main::@6 main::@6: scope:[main] from main::@2 [12] main::i#1 = main::i#2 + 5 to:main::@1 -void fill(byte* fill::start , signed word fill::size , byte fill::val) +void fill(char *start , int size , char val) fill: scope:[fill] from main main::@4 [13] fill::val#4 = phi( main/0, main::@4/$16 ) - [13] fill::size#2 = phi( main/(signed word)$28*$19*8, main::@4/(signed word)$28*$19 ) + [13] fill::size#2 = phi( main/(int)$28*$19*8, main::@4/(int)$28*$19 ) [13] fill::addr#0 = phi( main/BITMAP, main::@4/SCREEN ) [14] fill::end#0 = fill::addr#0 + fill::size#2 to:fill::@1 @@ -812,7 +812,7 @@ fill::@2: scope:[fill] from fill::@1 [19] fill::addr#1 = ++ fill::addr#2 to:fill::@1 -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) +void circle(int xc , int yc , int r) circle: scope:[circle] from main::@2 [20] circle::$0 = circle::r#0 << 1 [21] circle::p#0 = 3 - circle::$0 @@ -841,42 +841,42 @@ circle::@4: scope:[circle] from circle::@3 circle::@5 [31] circle::y#10 = phi( circle::@3/circle::y#13, circle::@5/circle::y#1 ) [32] plot::x#0 = circle::xc#0 + circle::x1#10 [33] plot::y#0 = circle::yc#0 - circle::y#10 - [34] call plot + [34] call plot to:circle::@6 circle::@6: scope:[circle] from circle::@4 [35] plot::x#1 = circle::xc#0 - circle::x1#10 [36] plot::y#1 = circle::yc#0 - circle::y#10 - [37] call plot + [37] call plot to:circle::@7 circle::@7: scope:[circle] from circle::@6 [38] plot::x#2 = circle::xc#0 + circle::x1#10 [39] plot::y#2 = circle::yc#0 + circle::y#10 - [40] call plot + [40] call plot to:circle::@8 circle::@8: scope:[circle] from circle::@7 [41] plot::x#3 = circle::xc#0 - circle::x1#10 [42] plot::y#3 = circle::yc#0 + circle::y#10 - [43] call plot + [43] call plot to:circle::@9 circle::@9: scope:[circle] from circle::@8 [44] plot::x#4 = circle::xc#0 + circle::y#10 [45] plot::y#4 = circle::yc#0 - circle::x1#10 - [46] call plot + [46] call plot to:circle::@10 circle::@10: scope:[circle] from circle::@9 [47] plot::x#5 = circle::xc#0 - circle::y#10 [48] plot::y#5 = circle::yc#0 - circle::x1#10 - [49] call plot + [49] call plot to:circle::@11 circle::@11: scope:[circle] from circle::@10 [50] plot::x#6 = circle::xc#0 + circle::y#10 [51] plot::y#6 = circle::yc#0 + circle::x1#10 - [52] call plot + [52] call plot to:circle::@12 circle::@12: scope:[circle] from circle::@11 [53] plot::x#7 = circle::xc#0 - circle::y#10 [54] plot::y#7 = circle::yc#0 + circle::x1#10 - [55] call plot + [55] call plot to:circle::@13 circle::@13: scope:[circle] from circle::@12 [56] circle::x1#1 = ++ circle::x1#10 @@ -887,7 +887,7 @@ circle::@3: scope:[circle] from circle::@2 [59] circle::p#1 = circle::$10 + 6 to:circle::@4 -void plot(signed word plot::x , signed word plot::y) +void plot(int x , int y) plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9 [60] plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 ) [60] plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 ) @@ -923,80 +923,80 @@ plot::@return: scope:[plot] from plot plot::@1 plot::@2 plot::@3 plot::@4 VARIABLE REGISTER WEIGHTS -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$0 202.0 -signed word~ circle::$10 20002.0 -signed word~ circle::$5 20002.0 -signed word~ circle::$6 20002.0 -signed word~ circle::$7 20002.0 -signed word~ circle::$9 20002.0 -signed word circle::p -signed word circle::p#0 202.0 -signed word circle::p#1 20002.0 -signed word circle::p#10 1153.9615384615383 -signed word circle::p#2 20002.0 -signed word circle::p#3 5729.285714285716 -signed word circle::r -signed word circle::r#0 71.0 -signed word circle::x1 -signed word circle::x1#1 20002.0 -signed word circle::x1#10 3611.472222222223 -signed word circle::xc -signed word circle::y -signed word circle::y#1 6000.6 -signed word circle::y#10 4231.192307692308 -signed word circle::y#13 6684.166666666666 -signed word circle::yc -void fill(byte* fill::start , signed word fill::size , byte fill::val) -byte* fill::addr -byte* fill::addr#0 11.0 -byte* fill::addr#1 202.0 -byte* fill::addr#2 138.33333333333331 -byte* fill::end -byte* fill::end#0 22.4 -signed word fill::size -signed word fill::size#2 11.0 -byte* fill::start -byte fill::val -byte fill::val#4 16.833333333333332 +void circle(int xc , int yc , int r) +int circle::$0 // 202.0 +int circle::$10 // 20002.0 +int circle::$5 // 20002.0 +int circle::$6 // 20002.0 +int circle::$7 // 20002.0 +int circle::$9 // 20002.0 +int circle::p +int circle::p#0 // 202.0 +int circle::p#1 // 20002.0 +int circle::p#10 // 1153.9615384615383 +int circle::p#2 // 20002.0 +int circle::p#3 // 5729.285714285716 +int circle::r +int circle::r#0 // 71.0 +int circle::x1 +int circle::x1#1 // 20002.0 +int circle::x1#10 // 3611.472222222223 +int circle::xc +int circle::y +int circle::y#1 // 6000.6 +int circle::y#10 // 4231.192307692308 +int circle::y#13 // 6684.166666666666 +int circle::yc +void fill(char *start , int size , char val) +char *fill::addr +char *fill::addr#0 // 11.0 +char *fill::addr#1 // 202.0 +char *fill::addr#2 // 138.33333333333331 +char *fill::end +char *fill::end#0 // 22.4 +int fill::size +int fill::size#2 // 11.0 +char *fill::start +char fill::val +char fill::val#4 // 16.833333333333332 void main() -signed word main::i -signed word main::i#1 22.0 -signed word main::i#2 11.0 -void plot(signed word plot::x , signed word plot::y) -byte~ plot::$10 200002.0 -signed word~ plot::$11 150001.5 -signed word~ plot::$12 200002.0 -signed byte~ plot::$13 200002.0 -byte~ plot::$14 200002.0 -signed word~ plot::$15 200002.0 -signed word~ plot::$16 200002.0 -signed word~ plot::$8 200002.0 -byte~ plot::$9 200002.0 -byte* plot::location -byte* plot::location#1 66667.33333333333 -byte* plot::location#2 40000.4 -byte* plot::location#3 100001.0 -signed word plot::x -signed word plot::x#0 10001.0 -signed word plot::x#1 10001.0 -signed word plot::x#2 10001.0 -signed word plot::x#3 10001.0 -signed word plot::x#4 10001.0 -signed word plot::x#5 10001.0 -signed word plot::x#6 10001.0 -signed word plot::x#7 10001.0 -signed word plot::x#8 32000.800000000003 -signed word plot::y -signed word plot::y#0 20002.0 -signed word plot::y#1 20002.0 -signed word plot::y#2 20002.0 -signed word plot::y#3 20002.0 -signed word plot::y#4 20002.0 -signed word plot::y#5 20002.0 -signed word plot::y#6 20002.0 -signed word plot::y#7 20002.0 -signed word plot::y#8 48001.2 +int main::i +int main::i#1 // 22.0 +int main::i#2 // 11.0 +void plot(int x , int y) +char plot::$10 // 200002.0 +int plot::$11 // 150001.5 +int plot::$12 // 200002.0 +signed char plot::$13 // 200002.0 +char plot::$14 // 200002.0 +int plot::$15 // 200002.0 +int plot::$16 // 200002.0 +int plot::$8 // 200002.0 +char plot::$9 // 200002.0 +char *plot::location +char *plot::location#1 // 66667.33333333333 +char *plot::location#2 // 40000.4 +char *plot::location#3 // 100001.0 +int plot::x +int plot::x#0 // 10001.0 +int plot::x#1 // 10001.0 +int plot::x#2 // 10001.0 +int plot::x#3 // 10001.0 +int plot::x#4 // 10001.0 +int plot::x#5 // 10001.0 +int plot::x#6 // 10001.0 +int plot::x#7 // 10001.0 +int plot::x#8 // 32000.800000000003 +int plot::y +int plot::y#0 // 20002.0 +int plot::y#1 // 20002.0 +int plot::y#2 // 20002.0 +int plot::y#3 // 20002.0 +int plot::y#4 // 20002.0 +int plot::y#5 // 20002.0 +int plot::y#6 // 20002.0 +int plot::y#7 // 20002.0 +int plot::y#8 // 48001.2 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -1087,7 +1087,7 @@ Allocated zp[1]:52 [ plot::$14 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] *BORDER_COLOR = BLUE [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] if(main::i#2<$b4) goto main::@2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [10] circle::r#0 = main::i#2 [ main::i#2 circle::r#0 ] ( [ main::i#2 circle::r#0 ] { { circle::r#0 = main::i#2 } } ) always clobbers reg byte a Statement [12] main::i#1 = main::i#2 + 5 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a @@ -1141,7 +1141,7 @@ Statement [76] plot::$14 = *plot::location#3 | bitmask[plot::$13] [ plot::locati Statement [77] *plot::location#3 = plot::$14 [ ] ( circle:11::plot:34 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:11::plot:37 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:11::plot:40 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:11::plot:43 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:11::plot:46 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:11::plot:49 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:11::plot:52 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:11::plot:55 [ main::i#2 circle::x1#10 circle::y#10 circle::p#10 ] { { circle::r#0 = main::i#2 } { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte y Statement [4] *BORDER_COLOR = BLUE [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] if(main::i#2<$b4) goto main::@2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [10] circle::r#0 = main::i#2 [ main::i#2 circle::r#0 ] ( [ main::i#2 circle::r#0 ] { { circle::r#0 = main::i#2 } } ) always clobbers reg byte a Statement [12] main::i#1 = main::i#2 + 5 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a @@ -1308,12 +1308,12 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label i = 2 - // [1] call fill + // [1] call fill // [13] phi from main to fill [phi:main->fill] fill_from_main: // [13] phi fill::val#4 = 0 [phi:main->fill#0] -- vbuxx=vbuc1 ldx #0 - // [13] phi fill::size#2 = (signed word)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 + // [13] phi fill::size#2 = (int)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 lda #<$28*$19*8 sta.z fill.size lda #>$28*$19*8 @@ -1329,12 +1329,12 @@ main: { jmp __b4 // main::@4 __b4: - // [3] call fill + // [3] call fill // [13] phi from main::@4 to fill [phi:main::@4->fill] fill_from___b4: // [13] phi fill::val#4 = $16 [phi:main::@4->fill#0] -- vbuxx=vbuc1 ldx #$16 - // [13] phi fill::size#2 = (signed word)$28*$19 [phi:main::@4->fill#1] -- vwsz1=vwsc1 + // [13] phi fill::size#2 = (int)$28*$19 [phi:main::@4->fill#1] -- vwsz1=vwsc1 lda #<$28*$19 sta.z fill.size lda #>$28*$19 @@ -1354,7 +1354,7 @@ main: { // [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 - // [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // [7] phi from main::@5 to main::@1 [phi:main::@5->main::@1] @@ -1390,7 +1390,7 @@ main: { sta.z circle.r lda.z i+1 sta.z circle.r+1 - // [11] call circle + // [11] call circle jsr circle jmp __b6 // main::@6 @@ -1410,7 +1410,7 @@ main: { } // fill // Fill some memory with a value -// fill(signed word zp(4) size, byte register(X) val) +// void fill(char *start, __zp(4) int size, __register(X) char val) fill: { .label end = 4 .label addr = 6 @@ -1456,7 +1456,7 @@ fill: { jmp __b1_from___b2 } // circle -// circle(signed word zp(6) r) +// void circle(int xc, int yc, __zp(6) int r) circle: { .const xc = $a0 .const yc = $64 @@ -1580,7 +1580,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [34] call plot + // [34] call plot // [60] phi from circle::@4 to plot [phi:circle::@4->plot] plot_from___b4: // [60] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy @@ -1605,7 +1605,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [37] call plot + // [37] call plot // [60] phi from circle::@6 to plot [phi:circle::@6->plot] plot_from___b6: // [60] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy @@ -1630,7 +1630,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [40] call plot + // [40] call plot // [60] phi from circle::@7 to plot [phi:circle::@7->plot] plot_from___b7: // [60] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy @@ -1655,7 +1655,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [43] call plot + // [43] call plot // [60] phi from circle::@8 to plot [phi:circle::@8->plot] plot_from___b8: // [60] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy @@ -1680,7 +1680,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [46] call plot + // [46] call plot // [60] phi from circle::@9 to plot [phi:circle::@9->plot] plot_from___b9: // [60] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy @@ -1705,7 +1705,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [49] call plot + // [49] call plot // [60] phi from circle::@10 to plot [phi:circle::@10->plot] plot_from___b10: // [60] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy @@ -1730,7 +1730,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [52] call plot + // [52] call plot // [60] phi from circle::@11 to plot [phi:circle::@11->plot] plot_from___b11: // [60] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy @@ -1755,7 +1755,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [55] call plot + // [55] call plot // [60] phi from circle::@12 to plot [phi:circle::@12->plot] plot_from___b12: // [60] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy @@ -1805,7 +1805,7 @@ circle: { jmp __b4_from___b3 } // plot -// plot(signed word zp($a) x, signed word zp($c) y) +// void plot(__zp($a) int x, __zp($c) int y) plot: { .label __8 = $e .label __11 = $c @@ -2029,92 +2029,92 @@ Fixing long branch [381] bmi __breturn to bpl Fixing long branch [391] bpl __breturn to bmi FINAL SYMBOL TABLE -constant byte* const BITMAP = (byte*) 8192 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant byte* bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$0 zp[2]:8 202.0 -signed word~ circle::$10 zp[2]:8 20002.0 -signed word~ circle::$5 zp[2]:10 20002.0 -signed word~ circle::$6 zp[2]:10 20002.0 -signed word~ circle::$7 zp[2]:8 20002.0 -signed word~ circle::$9 zp[2]:12 20002.0 -signed word circle::p -signed word circle::p#0 p zp[2]:8 202.0 -signed word circle::p#1 p zp[2]:8 20002.0 -signed word circle::p#10 p zp[2]:8 1153.9615384615383 -signed word circle::p#2 p zp[2]:8 20002.0 -signed word circle::p#3 p zp[2]:8 5729.285714285716 -signed word circle::r -signed word circle::r#0 r zp[2]:6 71.0 -signed word circle::x1 -signed word circle::x1#1 x1 zp[2]:4 20002.0 -signed word circle::x1#10 x1 zp[2]:4 3611.472222222223 -signed word circle::xc -constant signed word circle::xc#0 xc = $a0 -signed word circle::y -signed word circle::y#1 y zp[2]:6 6000.6 -signed word circle::y#10 y zp[2]:6 4231.192307692308 -signed word circle::y#13 y zp[2]:6 6684.166666666666 -signed word circle::yc -constant signed word circle::yc#0 yc = $64 -void fill(byte* fill::start , signed word fill::size , byte fill::val) -byte* fill::addr -byte* fill::addr#0 addr zp[2]:6 11.0 -byte* fill::addr#1 addr zp[2]:6 202.0 -byte* fill::addr#2 addr zp[2]:6 138.33333333333331 -byte* fill::end -byte* fill::end#0 end zp[2]:4 22.4 -signed word fill::size -signed word fill::size#2 size zp[2]:4 11.0 -byte* fill::start -byte fill::val -byte fill::val#4 reg byte x 16.833333333333332 +__constant char * const BITMAP = (char *) 8192 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant char bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } +void circle(int xc , int yc , int r) +int circle::$0 // zp[2]:8 202.0 +int circle::$10 // zp[2]:8 20002.0 +int circle::$5 // zp[2]:10 20002.0 +int circle::$6 // zp[2]:10 20002.0 +int circle::$7 // zp[2]:8 20002.0 +int circle::$9 // zp[2]:12 20002.0 +int circle::p +int circle::p#0 // p zp[2]:8 202.0 +int circle::p#1 // p zp[2]:8 20002.0 +int circle::p#10 // p zp[2]:8 1153.9615384615383 +int circle::p#2 // p zp[2]:8 20002.0 +int circle::p#3 // p zp[2]:8 5729.285714285716 +int circle::r +int circle::r#0 // r zp[2]:6 71.0 +int circle::x1 +int circle::x1#1 // x1 zp[2]:4 20002.0 +int circle::x1#10 // x1 zp[2]:4 3611.472222222223 +int circle::xc +__constant int circle::xc#0 = $a0 // xc +int circle::y +int circle::y#1 // y zp[2]:6 6000.6 +int circle::y#10 // y zp[2]:6 4231.192307692308 +int circle::y#13 // y zp[2]:6 6684.166666666666 +int circle::yc +__constant int circle::yc#0 = $64 // yc +void fill(char *start , int size , char val) +char *fill::addr +char *fill::addr#0 // addr zp[2]:6 11.0 +char *fill::addr#1 // addr zp[2]:6 202.0 +char *fill::addr#2 // addr zp[2]:6 138.33333333333331 +char *fill::end +char *fill::end#0 // end zp[2]:4 22.4 +int fill::size +int fill::size#2 // size zp[2]:4 11.0 +char *fill::start +char fill::val +char fill::val#4 // reg byte x 16.833333333333332 void main() -signed word main::i -signed word main::i#1 i zp[2]:2 22.0 -signed word main::i#2 i zp[2]:2 11.0 -void plot(signed word plot::x , signed word plot::y) -byte~ plot::$10 reg byte a 200002.0 -signed word~ plot::$11 zp[2]:12 150001.5 -signed word~ plot::$12 zp[2]:16 200002.0 -signed byte~ plot::$13 reg byte a 200002.0 -byte~ plot::$14 reg byte a 200002.0 -signed word~ plot::$15 zp[2]:16 200002.0 -signed word~ plot::$16 zp[2]:16 200002.0 -signed word~ plot::$8 zp[2]:14 200002.0 -byte~ plot::$9 reg byte a 200002.0 -byte* plot::location -byte* plot::location#1 location zp[2]:14 66667.33333333333 -byte* plot::location#2 location zp[2]:14 40000.4 -byte* plot::location#3 location zp[2]:14 100001.0 -signed word plot::x -signed word plot::x#0 x zp[2]:10 10001.0 -signed word plot::x#1 x zp[2]:10 10001.0 -signed word plot::x#2 x zp[2]:10 10001.0 -signed word plot::x#3 x zp[2]:10 10001.0 -signed word plot::x#4 x zp[2]:10 10001.0 -signed word plot::x#5 x zp[2]:10 10001.0 -signed word plot::x#6 x zp[2]:10 10001.0 -signed word plot::x#7 x zp[2]:10 10001.0 -signed word plot::x#8 x zp[2]:10 32000.800000000003 -signed word plot::y -signed word plot::y#0 y zp[2]:12 20002.0 -signed word plot::y#1 y zp[2]:12 20002.0 -signed word plot::y#2 y zp[2]:12 20002.0 -signed word plot::y#3 y zp[2]:12 20002.0 -signed word plot::y#4 y zp[2]:12 20002.0 -signed word plot::y#5 y zp[2]:12 20002.0 -signed word plot::y#6 y zp[2]:12 20002.0 -signed word plot::y#7 y zp[2]:12 20002.0 -signed word plot::y#8 y zp[2]:12 48001.2 +int main::i +int main::i#1 // i zp[2]:2 22.0 +int main::i#2 // i zp[2]:2 11.0 +void plot(int x , int y) +char plot::$10 // reg byte a 200002.0 +int plot::$11 // zp[2]:12 150001.5 +int plot::$12 // zp[2]:16 200002.0 +signed char plot::$13 // reg byte a 200002.0 +char plot::$14 // reg byte a 200002.0 +int plot::$15 // zp[2]:16 200002.0 +int plot::$16 // zp[2]:16 200002.0 +int plot::$8 // zp[2]:14 200002.0 +char plot::$9 // reg byte a 200002.0 +char *plot::location +char *plot::location#1 // location zp[2]:14 66667.33333333333 +char *plot::location#2 // location zp[2]:14 40000.4 +char *plot::location#3 // location zp[2]:14 100001.0 +int plot::x +int plot::x#0 // x zp[2]:10 10001.0 +int plot::x#1 // x zp[2]:10 10001.0 +int plot::x#2 // x zp[2]:10 10001.0 +int plot::x#3 // x zp[2]:10 10001.0 +int plot::x#4 // x zp[2]:10 10001.0 +int plot::x#5 // x zp[2]:10 10001.0 +int plot::x#6 // x zp[2]:10 10001.0 +int plot::x#7 // x zp[2]:10 10001.0 +int plot::x#8 // x zp[2]:10 32000.800000000003 +int plot::y +int plot::y#0 // y zp[2]:12 20002.0 +int plot::y#1 // y zp[2]:12 20002.0 +int plot::y#2 // y zp[2]:12 20002.0 +int plot::y#3 // y zp[2]:12 20002.0 +int plot::y#4 // y zp[2]:12 20002.0 +int plot::y#5 // y zp[2]:12 20002.0 +int plot::y#6 // y zp[2]:12 20002.0 +int plot::y#7 // y zp[2]:12 20002.0 +int plot::y#8 // y zp[2]:12 48001.2 zp[2]:2 [ main::i#2 main::i#1 ] reg byte x [ fill::val#4 ] @@ -2180,11 +2180,11 @@ Score: 51752 main: { .label i = 2 // fill(BITMAP,40*25*8,0) - // [1] call fill + // [1] call fill // [13] phi from main to fill [phi:main->fill] // [13] phi fill::val#4 = 0 [phi:main->fill#0] -- vbuxx=vbuc1 ldx #0 - // [13] phi fill::size#2 = (signed word)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 + // [13] phi fill::size#2 = (int)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 lda #<$28*$19*8 sta.z fill.size lda #>$28*$19*8 @@ -2198,11 +2198,11 @@ main: { // [2] phi from main to main::@4 [phi:main->main::@4] // main::@4 // fill(SCREEN,40*25,$16) - // [3] call fill + // [3] call fill // [13] phi from main::@4 to fill [phi:main::@4->fill] // [13] phi fill::val#4 = $16 [phi:main::@4->fill#0] -- vbuxx=vbuc1 ldx #$16 - // [13] phi fill::size#2 = (signed word)$28*$19 [phi:main::@4->fill#1] -- vwsz1=vwsc1 + // [13] phi fill::size#2 = (int)$28*$19 [phi:main::@4->fill#1] -- vwsz1=vwsc1 lda #<$28*$19 sta.z fill.size lda #>$28*$19 @@ -2223,7 +2223,7 @@ main: { lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // *VICII_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400)) - // [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // [7] phi from main::@5 to main::@1 [phi:main::@5->main::@1] @@ -2256,7 +2256,7 @@ main: { sta.z circle.r lda.z i+1 sta.z circle.r+1 - // [11] call circle + // [11] call circle jsr circle // main::@6 // i += 5 @@ -2274,7 +2274,7 @@ main: { } // fill // Fill some memory with a value -// fill(signed word zp(4) size, byte register(X) val) +// void fill(char *start, __zp(4) int size, __register(X) char val) fill: { .label end = 4 .label addr = 6 @@ -2320,7 +2320,7 @@ fill: { jmp __b1 } // circle -// circle(signed word zp(6) r) +// void circle(int xc, int yc, __zp(6) int r) circle: { .const xc = $a0 .const yc = $64 @@ -2447,7 +2447,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [34] call plot + // [34] call plot // [60] phi from circle::@4 to plot [phi:circle::@4->plot] // [60] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- register_copy @@ -2470,7 +2470,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [37] call plot + // [37] call plot // [60] phi from circle::@6 to plot [phi:circle::@6->plot] // [60] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- register_copy @@ -2493,7 +2493,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [40] call plot + // [40] call plot // [60] phi from circle::@7 to plot [phi:circle::@7->plot] // [60] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- register_copy @@ -2516,7 +2516,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [43] call plot + // [43] call plot // [60] phi from circle::@8 to plot [phi:circle::@8->plot] // [60] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- register_copy @@ -2539,7 +2539,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [46] call plot + // [46] call plot // [60] phi from circle::@9 to plot [phi:circle::@9->plot] // [60] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- register_copy @@ -2562,7 +2562,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [49] call plot + // [49] call plot // [60] phi from circle::@10 to plot [phi:circle::@10->plot] // [60] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- register_copy @@ -2585,7 +2585,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [52] call plot + // [52] call plot // [60] phi from circle::@11 to plot [phi:circle::@11->plot] // [60] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- register_copy @@ -2608,7 +2608,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [55] call plot + // [55] call plot // [60] phi from circle::@12 to plot [phi:circle::@12->plot] // [60] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy // [60] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- register_copy @@ -2658,7 +2658,7 @@ circle: { jmp __b4 } // plot -// plot(signed word zp($a) x, signed word zp($c) y) +// void plot(__zp($a) int x, __zp($c) int y) plot: { .label __8 = $e .label __11 = $c diff --git a/src/test/ref/bitmap-circle-2.sym b/src/test/ref/bitmap-circle-2.sym index 95f6ea803..5b373b160 100644 --- a/src/test/ref/bitmap-circle-2.sym +++ b/src/test/ref/bitmap-circle-2.sym @@ -1,89 +1,89 @@ -constant byte* const BITMAP = (byte*) 8192 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant byte* bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$0 zp[2]:8 202.0 -signed word~ circle::$10 zp[2]:8 20002.0 -signed word~ circle::$5 zp[2]:10 20002.0 -signed word~ circle::$6 zp[2]:10 20002.0 -signed word~ circle::$7 zp[2]:8 20002.0 -signed word~ circle::$9 zp[2]:12 20002.0 -signed word circle::p -signed word circle::p#0 p zp[2]:8 202.0 -signed word circle::p#1 p zp[2]:8 20002.0 -signed word circle::p#10 p zp[2]:8 1153.9615384615383 -signed word circle::p#2 p zp[2]:8 20002.0 -signed word circle::p#3 p zp[2]:8 5729.285714285716 -signed word circle::r -signed word circle::r#0 r zp[2]:6 71.0 -signed word circle::x1 -signed word circle::x1#1 x1 zp[2]:4 20002.0 -signed word circle::x1#10 x1 zp[2]:4 3611.472222222223 -signed word circle::xc -constant signed word circle::xc#0 xc = $a0 -signed word circle::y -signed word circle::y#1 y zp[2]:6 6000.6 -signed word circle::y#10 y zp[2]:6 4231.192307692308 -signed word circle::y#13 y zp[2]:6 6684.166666666666 -signed word circle::yc -constant signed word circle::yc#0 yc = $64 -void fill(byte* fill::start , signed word fill::size , byte fill::val) -byte* fill::addr -byte* fill::addr#0 addr zp[2]:6 11.0 -byte* fill::addr#1 addr zp[2]:6 202.0 -byte* fill::addr#2 addr zp[2]:6 138.33333333333331 -byte* fill::end -byte* fill::end#0 end zp[2]:4 22.4 -signed word fill::size -signed word fill::size#2 size zp[2]:4 11.0 -byte* fill::start -byte fill::val -byte fill::val#4 reg byte x 16.833333333333332 +__constant char * const BITMAP = (char *) 8192 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant char bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } +void circle(int xc , int yc , int r) +int circle::$0 // zp[2]:8 202.0 +int circle::$10 // zp[2]:8 20002.0 +int circle::$5 // zp[2]:10 20002.0 +int circle::$6 // zp[2]:10 20002.0 +int circle::$7 // zp[2]:8 20002.0 +int circle::$9 // zp[2]:12 20002.0 +int circle::p +int circle::p#0 // p zp[2]:8 202.0 +int circle::p#1 // p zp[2]:8 20002.0 +int circle::p#10 // p zp[2]:8 1153.9615384615383 +int circle::p#2 // p zp[2]:8 20002.0 +int circle::p#3 // p zp[2]:8 5729.285714285716 +int circle::r +int circle::r#0 // r zp[2]:6 71.0 +int circle::x1 +int circle::x1#1 // x1 zp[2]:4 20002.0 +int circle::x1#10 // x1 zp[2]:4 3611.472222222223 +int circle::xc +__constant int circle::xc#0 = $a0 // xc +int circle::y +int circle::y#1 // y zp[2]:6 6000.6 +int circle::y#10 // y zp[2]:6 4231.192307692308 +int circle::y#13 // y zp[2]:6 6684.166666666666 +int circle::yc +__constant int circle::yc#0 = $64 // yc +void fill(char *start , int size , char val) +char *fill::addr +char *fill::addr#0 // addr zp[2]:6 11.0 +char *fill::addr#1 // addr zp[2]:6 202.0 +char *fill::addr#2 // addr zp[2]:6 138.33333333333331 +char *fill::end +char *fill::end#0 // end zp[2]:4 22.4 +int fill::size +int fill::size#2 // size zp[2]:4 11.0 +char *fill::start +char fill::val +char fill::val#4 // reg byte x 16.833333333333332 void main() -signed word main::i -signed word main::i#1 i zp[2]:2 22.0 -signed word main::i#2 i zp[2]:2 11.0 -void plot(signed word plot::x , signed word plot::y) -byte~ plot::$10 reg byte a 200002.0 -signed word~ plot::$11 zp[2]:12 150001.5 -signed word~ plot::$12 zp[2]:16 200002.0 -signed byte~ plot::$13 reg byte a 200002.0 -byte~ plot::$14 reg byte a 200002.0 -signed word~ plot::$15 zp[2]:16 200002.0 -signed word~ plot::$16 zp[2]:16 200002.0 -signed word~ plot::$8 zp[2]:14 200002.0 -byte~ plot::$9 reg byte a 200002.0 -byte* plot::location -byte* plot::location#1 location zp[2]:14 66667.33333333333 -byte* plot::location#2 location zp[2]:14 40000.4 -byte* plot::location#3 location zp[2]:14 100001.0 -signed word plot::x -signed word plot::x#0 x zp[2]:10 10001.0 -signed word plot::x#1 x zp[2]:10 10001.0 -signed word plot::x#2 x zp[2]:10 10001.0 -signed word plot::x#3 x zp[2]:10 10001.0 -signed word plot::x#4 x zp[2]:10 10001.0 -signed word plot::x#5 x zp[2]:10 10001.0 -signed word plot::x#6 x zp[2]:10 10001.0 -signed word plot::x#7 x zp[2]:10 10001.0 -signed word plot::x#8 x zp[2]:10 32000.800000000003 -signed word plot::y -signed word plot::y#0 y zp[2]:12 20002.0 -signed word plot::y#1 y zp[2]:12 20002.0 -signed word plot::y#2 y zp[2]:12 20002.0 -signed word plot::y#3 y zp[2]:12 20002.0 -signed word plot::y#4 y zp[2]:12 20002.0 -signed word plot::y#5 y zp[2]:12 20002.0 -signed word plot::y#6 y zp[2]:12 20002.0 -signed word plot::y#7 y zp[2]:12 20002.0 -signed word plot::y#8 y zp[2]:12 48001.2 +int main::i +int main::i#1 // i zp[2]:2 22.0 +int main::i#2 // i zp[2]:2 11.0 +void plot(int x , int y) +char plot::$10 // reg byte a 200002.0 +int plot::$11 // zp[2]:12 150001.5 +int plot::$12 // zp[2]:16 200002.0 +signed char plot::$13 // reg byte a 200002.0 +char plot::$14 // reg byte a 200002.0 +int plot::$15 // zp[2]:16 200002.0 +int plot::$16 // zp[2]:16 200002.0 +int plot::$8 // zp[2]:14 200002.0 +char plot::$9 // reg byte a 200002.0 +char *plot::location +char *plot::location#1 // location zp[2]:14 66667.33333333333 +char *plot::location#2 // location zp[2]:14 40000.4 +char *plot::location#3 // location zp[2]:14 100001.0 +int plot::x +int plot::x#0 // x zp[2]:10 10001.0 +int plot::x#1 // x zp[2]:10 10001.0 +int plot::x#2 // x zp[2]:10 10001.0 +int plot::x#3 // x zp[2]:10 10001.0 +int plot::x#4 // x zp[2]:10 10001.0 +int plot::x#5 // x zp[2]:10 10001.0 +int plot::x#6 // x zp[2]:10 10001.0 +int plot::x#7 // x zp[2]:10 10001.0 +int plot::x#8 // x zp[2]:10 32000.800000000003 +int plot::y +int plot::y#0 // y zp[2]:12 20002.0 +int plot::y#1 // y zp[2]:12 20002.0 +int plot::y#2 // y zp[2]:12 20002.0 +int plot::y#3 // y zp[2]:12 20002.0 +int plot::y#4 // y zp[2]:12 20002.0 +int plot::y#5 // y zp[2]:12 20002.0 +int plot::y#6 // y zp[2]:12 20002.0 +int plot::y#7 // y zp[2]:12 20002.0 +int plot::y#8 // y zp[2]:12 48001.2 zp[2]:2 [ main::i#2 main::i#1 ] reg byte x [ fill::val#4 ] diff --git a/src/test/ref/bitmap-circle.asm b/src/test/ref/bitmap-circle.asm index 2a2233fab..0c723dd7c 100644 --- a/src/test/ref/bitmap-circle.asm +++ b/src/test/ref/bitmap-circle.asm @@ -72,7 +72,7 @@ main: { jmp __b1 } // Fill some memory with a value -// fill(signed word zp(2) size, byte register(X) val) +// void fill(char *start, __zp(2) int size, __register(X) char val) fill: { .label end = 2 .label addr = 4 @@ -107,6 +107,7 @@ fill: { !: jmp __b1 } +// void circle(int xc, int yc, int r) circle: { .const xc = $64 .const yc = $64 @@ -348,7 +349,7 @@ circle: { sta.z p+1 jmp __b4 } -// plot(signed word zp(8) x, signed word zp($a) y) +// void plot(__zp(8) int x, __zp($a) int y) plot: { .label __0 = $c .label __2 = $a diff --git a/src/test/ref/bitmap-circle.cfg b/src/test/ref/bitmap-circle.cfg index d8491e714..cf405a0db 100644 --- a/src/test/ref/bitmap-circle.cfg +++ b/src/test/ref/bitmap-circle.cfg @@ -2,26 +2,26 @@ void main() main: scope:[main] from [0] phi() - [1] call fill + [1] call fill to:main::@2 main::@2: scope:[main] from main [2] phi() - [3] call fill + [3] call fill to:main::@3 main::@3: scope:[main] from main::@2 [4] *BORDER_COLOR = BLUE [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [7] call circle + [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [7] call circle to:main::@1 main::@1: scope:[main] from main::@1 main::@3 [8] phi() to:main::@1 -void fill(byte* fill::start , signed word fill::size , byte fill::val) +void fill(char *start , int size , char val) fill: scope:[fill] from main main::@2 [9] fill::val#4 = phi( main/0, main::@2/$16 ) - [9] fill::size#2 = phi( main/(signed word)$28*$19*8, main::@2/(signed word)$28*$19 ) + [9] fill::size#2 = phi( main/(int)$28*$19*8, main::@2/(int)$28*$19 ) [9] fill::addr#0 = phi( main/BITMAP, main::@2/SCREEN ) [10] fill::end#0 = fill::addr#0 + fill::size#2 to:fill::@1 @@ -37,7 +37,7 @@ fill::@2: scope:[fill] from fill::@1 [15] fill::addr#1 = ++ fill::addr#2 to:fill::@1 -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) +void circle(int xc , int yc , int r) circle: scope:[circle] from main::@3 [16] phi() to:circle::@1 @@ -65,42 +65,42 @@ circle::@4: scope:[circle] from circle::@3 circle::@5 [26] circle::y#10 = phi( circle::@3/circle::y#13, circle::@5/circle::y#1 ) [27] plot::x#0 = circle::xc#0 + circle::x1#10 [28] plot::y#0 = circle::yc#0 - circle::y#10 - [29] call plot + [29] call plot to:circle::@6 circle::@6: scope:[circle] from circle::@4 [30] plot::x#1 = circle::xc#0 - circle::x1#10 [31] plot::y#1 = circle::yc#0 - circle::y#10 - [32] call plot + [32] call plot to:circle::@7 circle::@7: scope:[circle] from circle::@6 [33] plot::x#2 = circle::xc#0 + circle::x1#10 [34] plot::y#2 = circle::yc#0 + circle::y#10 - [35] call plot + [35] call plot to:circle::@8 circle::@8: scope:[circle] from circle::@7 [36] plot::x#3 = circle::xc#0 - circle::x1#10 [37] plot::y#3 = circle::yc#0 + circle::y#10 - [38] call plot + [38] call plot to:circle::@9 circle::@9: scope:[circle] from circle::@8 [39] plot::x#4 = circle::xc#0 + circle::y#10 [40] plot::y#4 = circle::yc#0 - circle::x1#10 - [41] call plot + [41] call plot to:circle::@10 circle::@10: scope:[circle] from circle::@9 [42] plot::x#5 = circle::xc#0 - circle::y#10 [43] plot::y#5 = circle::yc#0 - circle::x1#10 - [44] call plot + [44] call plot to:circle::@11 circle::@11: scope:[circle] from circle::@10 [45] plot::x#6 = circle::xc#0 + circle::y#10 [46] plot::y#6 = circle::yc#0 + circle::x1#10 - [47] call plot + [47] call plot to:circle::@12 circle::@12: scope:[circle] from circle::@11 [48] plot::x#7 = circle::xc#0 - circle::y#10 [49] plot::y#7 = circle::yc#0 + circle::x1#10 - [50] call plot + [50] call plot to:circle::@13 circle::@13: scope:[circle] from circle::@12 [51] circle::x1#1 = ++ circle::x1#10 @@ -111,13 +111,13 @@ circle::@3: scope:[circle] from circle::@2 [54] circle::p#1 = circle::$10 + 6 to:circle::@4 -void plot(signed word plot::x , signed word plot::y) +void plot(int x , int y) plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9 [55] plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 ) [55] plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 ) [56] plot::$0 = plot::x#8 & $fff8 [57] plot::location#1 = BITMAP + plot::$0 - [58] plot::$6 = (byte)plot::y#8 + [58] plot::$6 = (char)plot::y#8 [59] plot::$1 = plot::$6 & 7 [60] plot::location#2 = plot::location#1 + plot::$1 [61] plot::$2 = plot::y#8 >> 3 diff --git a/src/test/ref/bitmap-circle.log b/src/test/ref/bitmap-circle.log index 1bfd73e22..9e76ff82c 100644 --- a/src/test/ref/bitmap-circle.log +++ b/src/test/ref/bitmap-circle.log @@ -9,22 +9,22 @@ main: scope:[main] from __start fill::start#0 = BITMAP fill::size#0 = $28*$19*8 fill::val#0 = 0 - call fill + call fill to:main::@2 main::@2: scope:[main] from main fill::start#1 = SCREEN fill::size#1 = $28*$19 fill::val#1 = $16 - call fill + call fill to:main::@3 main::@3: scope:[main] from main::@2 *BORDER_COLOR = BLUE *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 circle::xc#0 = $64 circle::yc#0 = $64 circle::r#0 = $32 - call circle + call circle to:main::@4 main::@4: scope:[main] from main::@3 to:main::@1 @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) +void circle(int xc , int yc , int r) circle: scope:[circle] from main::@3 circle::yc#13 = phi( main::@3/circle::yc#0 ) circle::xc#13 = phi( main::@3/circle::xc#0 ) @@ -98,7 +98,7 @@ circle::@4: scope:[circle] from circle::@3 circle::@5 circle::$13 = circle::yc#1 - circle::y#4 plot::x#0 = circle::$12 plot::y#0 = circle::$13 - call plot + call plot to:circle::@6 circle::@6: scope:[circle] from circle::@4 circle::p#14 = phi( circle::@4/circle::p#15 ) @@ -110,7 +110,7 @@ circle::@6: scope:[circle] from circle::@4 circle::$16 = circle::yc#2 - circle::y#5 plot::x#1 = circle::$15 plot::y#1 = circle::$16 - call plot + call plot to:circle::@7 circle::@7: scope:[circle] from circle::@6 circle::p#13 = phi( circle::@6/circle::p#14 ) @@ -122,7 +122,7 @@ circle::@7: scope:[circle] from circle::@6 circle::$19 = circle::yc#3 + circle::y#6 plot::x#2 = circle::$18 plot::y#2 = circle::$19 - call plot + call plot to:circle::@8 circle::@8: scope:[circle] from circle::@7 circle::p#12 = phi( circle::@7/circle::p#13 ) @@ -134,7 +134,7 @@ circle::@8: scope:[circle] from circle::@7 circle::$22 = circle::yc#4 + circle::y#7 plot::x#3 = circle::$21 plot::y#3 = circle::$22 - call plot + call plot to:circle::@9 circle::@9: scope:[circle] from circle::@8 circle::p#11 = phi( circle::@8/circle::p#12 ) @@ -146,7 +146,7 @@ circle::@9: scope:[circle] from circle::@8 circle::$25 = circle::yc#5 - circle::x1#9 plot::x#4 = circle::$24 plot::y#4 = circle::$25 - call plot + call plot to:circle::@10 circle::@10: scope:[circle] from circle::@9 circle::p#10 = phi( circle::@9/circle::p#11 ) @@ -158,7 +158,7 @@ circle::@10: scope:[circle] from circle::@9 circle::$28 = circle::yc#6 - circle::x1#10 plot::x#5 = circle::$27 plot::y#5 = circle::$28 - call plot + call plot to:circle::@11 circle::@11: scope:[circle] from circle::@10 circle::p#9 = phi( circle::@10/circle::p#10 ) @@ -170,7 +170,7 @@ circle::@11: scope:[circle] from circle::@10 circle::$31 = circle::yc#7 + circle::x1#11 plot::x#6 = circle::$30 plot::y#6 = circle::$31 - call plot + call plot to:circle::@12 circle::@12: scope:[circle] from circle::@11 circle::p#8 = phi( circle::@11/circle::p#9 ) @@ -182,7 +182,7 @@ circle::@12: scope:[circle] from circle::@11 circle::$34 = circle::yc#8 + circle::x1#12 plot::x#7 = circle::$33 plot::y#7 = circle::$34 - call plot + call plot to:circle::@13 circle::@13: scope:[circle] from circle::@12 circle::yc#14 = phi( circle::@12/circle::yc#8 ) @@ -196,14 +196,14 @@ circle::@return: scope:[circle] from circle::@1 return to:@return -void plot(signed word plot::x , signed word plot::y) +void plot(int x , int y) plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9 plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 ) plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 ) plot::location#0 = BITMAP plot::$0 = plot::x#8 & $fff8 plot::location#1 = plot::location#0 + plot::$0 - plot::$6 = (byte)plot::y#8 + plot::$6 = (char)plot::y#8 plot::$1 = plot::$6 & 7 plot::location#2 = plot::location#1 + plot::$1 plot::$2 = plot::y#8 >> 3 @@ -217,7 +217,7 @@ plot::@return: scope:[plot] from plot return to:@return -void fill(byte* fill::start , signed word fill::size , byte fill::val) +void fill(char *start , int size , char val) fill: scope:[fill] from main main::@2 fill::val#4 = phi( main/fill::val#0, main::@2/fill::val#1 ) fill::size#2 = phi( main/fill::size#0, main::@2/fill::size#1 ) @@ -245,7 +245,7 @@ fill::@return: scope:[fill] from fill::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -254,188 +254,188 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BITMAP = (byte*)$2000 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const D011 = (byte*)$d011 -constant byte* const SCREEN = (byte*)$400 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 +__constant char * const BITMAP = (char *)$2000 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const D011 = (char *)$d011 +__constant char * const SCREEN = (char *)$400 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 void __start() -constant byte* bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$0 -signed word~ circle::$10 -number~ circle::$11 -signed word~ circle::$12 -signed word~ circle::$13 -signed word~ circle::$15 -signed word~ circle::$16 -signed word~ circle::$18 -signed word~ circle::$19 -bool~ circle::$2 -signed word~ circle::$21 -signed word~ circle::$22 -signed word~ circle::$24 -signed word~ circle::$25 -signed word~ circle::$27 -signed word~ circle::$28 -bool~ circle::$3 -signed word~ circle::$30 -signed word~ circle::$31 -signed word~ circle::$33 -signed word~ circle::$34 -number~ circle::$4 -signed word~ circle::$5 -signed word~ circle::$6 -signed word~ circle::$7 -number~ circle::$8 -signed word~ circle::$9 -signed word circle::p -signed word circle::p#0 -signed word circle::p#1 -signed word circle::p#10 -signed word circle::p#11 -signed word circle::p#12 -signed word circle::p#13 -signed word circle::p#14 -signed word circle::p#15 -signed word circle::p#2 -signed word circle::p#3 -signed word circle::p#4 -signed word circle::p#5 -signed word circle::p#6 -signed word circle::p#7 -signed word circle::p#8 -signed word circle::p#9 -signed word circle::r -signed word circle::r#0 -signed word circle::r#1 -signed word circle::x1 -signed word circle::x1#0 -signed word circle::x1#1 -signed word circle::x1#10 -signed word circle::x1#11 -signed word circle::x1#12 -signed word circle::x1#13 -signed word circle::x1#14 -signed word circle::x1#2 -signed word circle::x1#3 -signed word circle::x1#4 -signed word circle::x1#5 -signed word circle::x1#6 -signed word circle::x1#7 -signed word circle::x1#8 -signed word circle::x1#9 -signed word circle::xc -signed word circle::xc#0 -signed word circle::xc#1 -signed word circle::xc#10 -signed word circle::xc#11 -signed word circle::xc#12 -signed word circle::xc#13 -signed word circle::xc#14 -signed word circle::xc#2 -signed word circle::xc#3 -signed word circle::xc#4 -signed word circle::xc#5 -signed word circle::xc#6 -signed word circle::xc#7 -signed word circle::xc#8 -signed word circle::xc#9 -signed word circle::y -signed word circle::y#0 -signed word circle::y#1 -signed word circle::y#10 -signed word circle::y#11 -signed word circle::y#12 -signed word circle::y#13 -signed word circle::y#14 -signed word circle::y#2 -signed word circle::y#3 -signed word circle::y#4 -signed word circle::y#5 -signed word circle::y#6 -signed word circle::y#7 -signed word circle::y#8 -signed word circle::y#9 -signed word circle::yc -signed word circle::yc#0 -signed word circle::yc#1 -signed word circle::yc#10 -signed word circle::yc#11 -signed word circle::yc#12 -signed word circle::yc#13 -signed word circle::yc#14 -signed word circle::yc#2 -signed word circle::yc#3 -signed word circle::yc#4 -signed word circle::yc#5 -signed word circle::yc#6 -signed word circle::yc#7 -signed word circle::yc#8 -signed word circle::yc#9 -void fill(byte* fill::start , signed word fill::size , byte fill::val) -bool~ fill::$1 -byte* fill::addr -byte* fill::addr#0 -byte* fill::addr#1 -byte* fill::addr#2 -byte* fill::addr#3 -byte* fill::end -byte* fill::end#0 -byte* fill::end#1 -byte* fill::end#2 -signed word fill::size -signed word fill::size#0 -signed word fill::size#1 -signed word fill::size#2 -byte* fill::start -byte* fill::start#0 -byte* fill::start#1 -byte* fill::start#2 -byte fill::val -byte fill::val#0 -byte fill::val#1 -byte fill::val#2 -byte fill::val#3 -byte fill::val#4 +__constant char bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } +void circle(int xc , int yc , int r) +int circle::$0 +int circle::$10 +number circle::$11 +int circle::$12 +int circle::$13 +int circle::$15 +int circle::$16 +int circle::$18 +int circle::$19 +bool circle::$2 +int circle::$21 +int circle::$22 +int circle::$24 +int circle::$25 +int circle::$27 +int circle::$28 +bool circle::$3 +int circle::$30 +int circle::$31 +int circle::$33 +int circle::$34 +number circle::$4 +int circle::$5 +int circle::$6 +int circle::$7 +number circle::$8 +int circle::$9 +int circle::p +int circle::p#0 +int circle::p#1 +int circle::p#10 +int circle::p#11 +int circle::p#12 +int circle::p#13 +int circle::p#14 +int circle::p#15 +int circle::p#2 +int circle::p#3 +int circle::p#4 +int circle::p#5 +int circle::p#6 +int circle::p#7 +int circle::p#8 +int circle::p#9 +int circle::r +int circle::r#0 +int circle::r#1 +int circle::x1 +int circle::x1#0 +int circle::x1#1 +int circle::x1#10 +int circle::x1#11 +int circle::x1#12 +int circle::x1#13 +int circle::x1#14 +int circle::x1#2 +int circle::x1#3 +int circle::x1#4 +int circle::x1#5 +int circle::x1#6 +int circle::x1#7 +int circle::x1#8 +int circle::x1#9 +int circle::xc +int circle::xc#0 +int circle::xc#1 +int circle::xc#10 +int circle::xc#11 +int circle::xc#12 +int circle::xc#13 +int circle::xc#14 +int circle::xc#2 +int circle::xc#3 +int circle::xc#4 +int circle::xc#5 +int circle::xc#6 +int circle::xc#7 +int circle::xc#8 +int circle::xc#9 +int circle::y +int circle::y#0 +int circle::y#1 +int circle::y#10 +int circle::y#11 +int circle::y#12 +int circle::y#13 +int circle::y#14 +int circle::y#2 +int circle::y#3 +int circle::y#4 +int circle::y#5 +int circle::y#6 +int circle::y#7 +int circle::y#8 +int circle::y#9 +int circle::yc +int circle::yc#0 +int circle::yc#1 +int circle::yc#10 +int circle::yc#11 +int circle::yc#12 +int circle::yc#13 +int circle::yc#14 +int circle::yc#2 +int circle::yc#3 +int circle::yc#4 +int circle::yc#5 +int circle::yc#6 +int circle::yc#7 +int circle::yc#8 +int circle::yc#9 +void fill(char *start , int size , char val) +bool fill::$1 +char *fill::addr +char *fill::addr#0 +char *fill::addr#1 +char *fill::addr#2 +char *fill::addr#3 +char *fill::end +char *fill::end#0 +char *fill::end#1 +char *fill::end#2 +int fill::size +int fill::size#0 +int fill::size#1 +int fill::size#2 +char *fill::start +char *fill::start#0 +char *fill::start#1 +char *fill::start#2 +char fill::val +char fill::val#0 +char fill::val#1 +char fill::val#2 +char fill::val#3 +char fill::val#4 void main() -void plot(signed word plot::x , signed word plot::y) -number~ plot::$0 -number~ plot::$1 -signed word~ plot::$2 -number~ plot::$3 -number~ plot::$4 -byte~ plot::$5 -byte~ plot::$6 -byte* plot::location -byte* plot::location#0 -byte* plot::location#1 -byte* plot::location#2 -byte* plot::location#3 -signed word plot::x -signed word plot::x#0 -signed word plot::x#1 -signed word plot::x#2 -signed word plot::x#3 -signed word plot::x#4 -signed word plot::x#5 -signed word plot::x#6 -signed word plot::x#7 -signed word plot::x#8 -signed word plot::y -signed word plot::y#0 -signed word plot::y#1 -signed word plot::y#2 -signed word plot::y#3 -signed word plot::y#4 -signed word plot::y#5 -signed word plot::y#6 -signed word plot::y#7 -signed word plot::y#8 +void plot(int x , int y) +number plot::$0 +number plot::$1 +int plot::$2 +number plot::$3 +number plot::$4 +char plot::$5 +char plot::$6 +char *plot::location +char *plot::location#0 +char *plot::location#1 +char *plot::location#2 +char *plot::location#3 +int plot::x +int plot::x#0 +int plot::x#1 +int plot::x#2 +int plot::x#3 +int plot::x#4 +int plot::x#5 +int plot::x#6 +int plot::x#7 +int plot::x#8 +int plot::y +int plot::y#0 +int plot::y#1 +int plot::y#2 +int plot::y#3 +int plot::y#4 +int plot::y#5 +int plot::y#6 +int plot::y#7 +int plot::y#8 Adding number conversion cast (snumber) $28*$19*8 in fill::size#0 = $28*$19*8 Adding number conversion cast (unumber) 0 in fill::val#0 = 0 @@ -443,8 +443,8 @@ Adding number conversion cast (snumber) $28*$19 in fill::size#1 = $28*$19 Adding number conversion cast (unumber) $16 in fill::val#1 = $16 Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&$3fff/$400 Adding number conversion cast (snumber) $64 in circle::xc#0 = $64 Adding number conversion cast (snumber) $64 in circle::yc#0 = $64 Adding number conversion cast (snumber) $32 in circle::r#0 = $32 @@ -469,8 +469,8 @@ Adding number conversion cast (snumber) plot::$3 in plot::$3 = plot::$2 * (snumb Adding number conversion cast (snumber) 7 in plot::$4 = plot::x#8 & 7 Adding number conversion cast (snumber) plot::$4 in plot::$4 = plot::x#8 & (snumber)7 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&(unumber)$3fff/$400 -Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(word)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unsigned int)BITMAP&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fill::size#0 = (snumber)$28*$19*8 Inlining cast fill::val#0 = (unumber)0 @@ -481,11 +481,11 @@ Inlining cast circle::xc#0 = (snumber)$64 Inlining cast circle::yc#0 = (snumber)$64 Inlining cast circle::r#0 = (snumber)$32 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 0 Simplifying constant integer cast $16 Simplifying constant integer cast VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 @@ -511,37 +511,37 @@ Simplifying constant integer cast 3 Simplifying constant integer cast $140 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $16 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (word) $400 -Finalized signed number type (signed byte) $64 -Finalized signed number type (signed byte) $64 -Finalized signed number type (signed byte) $32 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 3 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) 6 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) $a -Finalized signed number type (signed dword) $fff8 -Finalized unsigned number type (byte) 7 -Finalized signed number type (signed byte) 3 -Finalized signed number type (signed word) $140 -Finalized signed number type (signed byte) 7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $16 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (unsigned int) $400 +Finalized signed number type (signed char) $64 +Finalized signed number type (signed char) $64 +Finalized signed number type (signed char) $32 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 3 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) 6 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) $a +Finalized signed number type (long) $fff8 +Finalized unsigned number type (char) 7 +Finalized signed number type (signed char) 3 +Finalized signed number type (int) $140 +Finalized signed number type (signed char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed word in circle::$11 = circle::$10 + 6 -Inferred type updated to signed word in circle::$4 = circle::y#3 - 1 -Inferred type updated to signed word in circle::$8 = circle::$7 + $a -Inferred type updated to signed word in plot::$0 = plot::x#8 & $fff8 -Inferred type updated to byte in plot::$1 = plot::$6 & 7 -Inferred type updated to signed word in plot::$3 = plot::$2 * $140 -Inferred type updated to signed byte in plot::$4 = plot::x#8 & 7 +Inferred type updated to int in circle::$11 = circle::$10 + 6 +Inferred type updated to int in circle::$4 = circle::y#3 - 1 +Inferred type updated to int in circle::$8 = circle::$7 + $a +Inferred type updated to int in plot::$0 = plot::x#8 & $fff8 +Inferred type updated to char in plot::$1 = plot::$6 & 7 +Inferred type updated to int in plot::$3 = plot::$2 * $140 +Inferred type updated to signed char in plot::$4 = plot::x#8 & 7 Alias circle::y#0 = circle::r#1 Alias circle::p#3 = circle::p#6 circle::p#4 circle::p#5 Alias circle::x1#14 = circle::x1#2 circle::x1#3 circle::x1#4 @@ -640,17 +640,17 @@ Constant inlined fill::start#1 = SCREEN Constant inlined fill::start#0 = BITMAP Constant inlined circle::x1#0 = 0 Constant inlined fill::val#1 = $16 -Constant inlined fill::size#1 = (signed word)$28*$19 -Constant inlined fill::size#0 = (signed word)$28*$19*8 +Constant inlined fill::size#1 = (int)$28*$19 +Constant inlined fill::size#0 = (int)$28*$19*8 Constant inlined circle::p#0 = 3-circle::r#0<<1 Successful SSA optimization Pass2ConstantInlining Alias plot::$3 = plot::$9 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -699,26 +699,26 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call fill + [1] call fill to:main::@2 main::@2: scope:[main] from main [2] phi() - [3] call fill + [3] call fill to:main::@3 main::@3: scope:[main] from main::@2 [4] *BORDER_COLOR = BLUE [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [7] call circle + [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [7] call circle to:main::@1 main::@1: scope:[main] from main::@1 main::@3 [8] phi() to:main::@1 -void fill(byte* fill::start , signed word fill::size , byte fill::val) +void fill(char *start , int size , char val) fill: scope:[fill] from main main::@2 [9] fill::val#4 = phi( main/0, main::@2/$16 ) - [9] fill::size#2 = phi( main/(signed word)$28*$19*8, main::@2/(signed word)$28*$19 ) + [9] fill::size#2 = phi( main/(int)$28*$19*8, main::@2/(int)$28*$19 ) [9] fill::addr#0 = phi( main/BITMAP, main::@2/SCREEN ) [10] fill::end#0 = fill::addr#0 + fill::size#2 to:fill::@1 @@ -734,7 +734,7 @@ fill::@2: scope:[fill] from fill::@1 [15] fill::addr#1 = ++ fill::addr#2 to:fill::@1 -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) +void circle(int xc , int yc , int r) circle: scope:[circle] from main::@3 [16] phi() to:circle::@1 @@ -762,42 +762,42 @@ circle::@4: scope:[circle] from circle::@3 circle::@5 [26] circle::y#10 = phi( circle::@3/circle::y#13, circle::@5/circle::y#1 ) [27] plot::x#0 = circle::xc#0 + circle::x1#10 [28] plot::y#0 = circle::yc#0 - circle::y#10 - [29] call plot + [29] call plot to:circle::@6 circle::@6: scope:[circle] from circle::@4 [30] plot::x#1 = circle::xc#0 - circle::x1#10 [31] plot::y#1 = circle::yc#0 - circle::y#10 - [32] call plot + [32] call plot to:circle::@7 circle::@7: scope:[circle] from circle::@6 [33] plot::x#2 = circle::xc#0 + circle::x1#10 [34] plot::y#2 = circle::yc#0 + circle::y#10 - [35] call plot + [35] call plot to:circle::@8 circle::@8: scope:[circle] from circle::@7 [36] plot::x#3 = circle::xc#0 - circle::x1#10 [37] plot::y#3 = circle::yc#0 + circle::y#10 - [38] call plot + [38] call plot to:circle::@9 circle::@9: scope:[circle] from circle::@8 [39] plot::x#4 = circle::xc#0 + circle::y#10 [40] plot::y#4 = circle::yc#0 - circle::x1#10 - [41] call plot + [41] call plot to:circle::@10 circle::@10: scope:[circle] from circle::@9 [42] plot::x#5 = circle::xc#0 - circle::y#10 [43] plot::y#5 = circle::yc#0 - circle::x1#10 - [44] call plot + [44] call plot to:circle::@11 circle::@11: scope:[circle] from circle::@10 [45] plot::x#6 = circle::xc#0 + circle::y#10 [46] plot::y#6 = circle::yc#0 + circle::x1#10 - [47] call plot + [47] call plot to:circle::@12 circle::@12: scope:[circle] from circle::@11 [48] plot::x#7 = circle::xc#0 - circle::y#10 [49] plot::y#7 = circle::yc#0 + circle::x1#10 - [50] call plot + [50] call plot to:circle::@13 circle::@13: scope:[circle] from circle::@12 [51] circle::x1#1 = ++ circle::x1#10 @@ -808,13 +808,13 @@ circle::@3: scope:[circle] from circle::@2 [54] circle::p#1 = circle::$10 + 6 to:circle::@4 -void plot(signed word plot::x , signed word plot::y) +void plot(int x , int y) plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9 [55] plot::y#8 = phi( circle::@10/plot::y#5, circle::@11/plot::y#6, circle::@12/plot::y#7, circle::@4/plot::y#0, circle::@6/plot::y#1, circle::@7/plot::y#2, circle::@8/plot::y#3, circle::@9/plot::y#4 ) [55] plot::x#8 = phi( circle::@10/plot::x#5, circle::@11/plot::x#6, circle::@12/plot::x#7, circle::@4/plot::x#0, circle::@6/plot::x#1, circle::@7/plot::x#2, circle::@8/plot::x#3, circle::@9/plot::x#4 ) [56] plot::$0 = plot::x#8 & $fff8 [57] plot::location#1 = BITMAP + plot::$0 - [58] plot::$6 = (byte)plot::y#8 + [58] plot::$6 = (char)plot::y#8 [59] plot::$1 = plot::$6 & 7 [60] plot::location#2 = plot::location#1 + plot::$1 [61] plot::$2 = plot::y#8 >> 3 @@ -832,74 +832,74 @@ plot::@return: scope:[plot] from plot VARIABLE REGISTER WEIGHTS -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$10 202.0 -signed word~ circle::$5 202.0 -signed word~ circle::$6 202.0 -signed word~ circle::$7 202.0 -signed word~ circle::$9 202.0 -signed word circle::p -signed word circle::p#1 202.0 -signed word circle::p#10 11.653846153846153 -signed word circle::p#2 202.0 -signed word circle::p#3 57.714285714285715 -signed word circle::r -signed word circle::x1 -signed word circle::x1#1 202.0 -signed word circle::x1#10 36.47222222222223 -signed word circle::xc -signed word circle::y -signed word circle::y#1 60.599999999999994 -signed word circle::y#10 42.73076923076923 -signed word circle::y#13 67.33333333333333 -signed word circle::yc -void fill(byte* fill::start , signed word fill::size , byte fill::val) -byte* fill::addr -byte* fill::addr#0 11.0 -byte* fill::addr#1 202.0 -byte* fill::addr#2 138.33333333333331 -byte* fill::end -byte* fill::end#0 22.4 -signed word fill::size -signed word fill::size#2 11.0 -byte* fill::start -byte fill::val -byte fill::val#4 16.833333333333332 +void circle(int xc , int yc , int r) +int circle::$10 // 202.0 +int circle::$5 // 202.0 +int circle::$6 // 202.0 +int circle::$7 // 202.0 +int circle::$9 // 202.0 +int circle::p +int circle::p#1 // 202.0 +int circle::p#10 // 11.653846153846153 +int circle::p#2 // 202.0 +int circle::p#3 // 57.714285714285715 +int circle::r +int circle::x1 +int circle::x1#1 // 202.0 +int circle::x1#10 // 36.47222222222223 +int circle::xc +int circle::y +int circle::y#1 // 60.599999999999994 +int circle::y#10 // 42.73076923076923 +int circle::y#13 // 67.33333333333333 +int circle::yc +void fill(char *start , int size , char val) +char *fill::addr +char *fill::addr#0 // 11.0 +char *fill::addr#1 // 202.0 +char *fill::addr#2 // 138.33333333333331 +char *fill::end +char *fill::end#0 // 22.4 +int fill::size +int fill::size#2 // 11.0 +char *fill::start +char fill::val +char fill::val#4 // 16.833333333333332 void main() -void plot(signed word plot::x , signed word plot::y) -signed word~ plot::$0 2002.0 -byte~ plot::$1 2002.0 -signed word~ plot::$2 1501.5 -signed word~ plot::$3 2002.0 -signed byte~ plot::$4 2002.0 -byte~ plot::$5 2002.0 -byte~ plot::$6 2002.0 -signed word~ plot::$7 2002.0 -signed word~ plot::$8 2002.0 -byte* plot::location -byte* plot::location#1 667.3333333333334 -byte* plot::location#2 400.4 -byte* plot::location#3 1001.0 -signed word plot::x -signed word plot::x#0 101.0 -signed word plot::x#1 101.0 -signed word plot::x#2 101.0 -signed word plot::x#3 101.0 -signed word plot::x#4 101.0 -signed word plot::x#5 101.0 -signed word plot::x#6 101.0 -signed word plot::x#7 101.0 -signed word plot::x#8 255.45454545454544 -signed word plot::y -signed word plot::y#0 202.0 -signed word plot::y#1 202.0 -signed word plot::y#2 202.0 -signed word plot::y#3 202.0 -signed word plot::y#4 202.0 -signed word plot::y#5 202.0 -signed word plot::y#6 202.0 -signed word plot::y#7 202.0 -signed word plot::y#8 301.5 +void plot(int x , int y) +int plot::$0 // 2002.0 +char plot::$1 // 2002.0 +int plot::$2 // 1501.5 +int plot::$3 // 2002.0 +signed char plot::$4 // 2002.0 +char plot::$5 // 2002.0 +char plot::$6 // 2002.0 +int plot::$7 // 2002.0 +int plot::$8 // 2002.0 +char *plot::location +char *plot::location#1 // 667.3333333333334 +char *plot::location#2 // 400.4 +char *plot::location#3 // 1001.0 +int plot::x +int plot::x#0 // 101.0 +int plot::x#1 // 101.0 +int plot::x#2 // 101.0 +int plot::x#3 // 101.0 +int plot::x#4 // 101.0 +int plot::x#5 // 101.0 +int plot::x#6 // 101.0 +int plot::x#7 // 101.0 +int plot::x#8 // 255.45454545454544 +int plot::y +int plot::y#0 // 202.0 +int plot::y#1 // 202.0 +int plot::y#2 // 202.0 +int plot::y#3 // 202.0 +int plot::y#4 // 202.0 +int plot::y#5 // 202.0 +int plot::y#6 // 202.0 +int plot::y#7 // 202.0 +int plot::y#8 // 301.5 Initial phi equivalence classes [ fill::size#2 ] @@ -984,7 +984,7 @@ Allocated zp[1]:48 [ plot::$5 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] *BORDER_COLOR = BLUE [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] fill::end#0 = fill::addr#0 + fill::size#2 [ fill::addr#0 fill::val#4 fill::end#0 ] ( fill:1 [ fill::addr#0 fill::val#4 fill::end#0 ] { } fill:3 [ fill::addr#0 fill::val#4 fill::end#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ fill::val#4 ] Statement [12] if(fill::addr#2!=fill::end#0) goto fill::@2 [ fill::val#4 fill::end#0 fill::addr#2 ] ( fill:1 [ fill::val#4 fill::end#0 fill::addr#2 ] { } fill:3 [ fill::val#4 fill::end#0 fill::addr#2 ] { } ) always clobbers reg byte a @@ -1018,7 +1018,7 @@ Statement [53] circle::$10 = circle::p#3 + circle::$9 [ circle::x1#10 circle::y# Statement [54] circle::p#1 = circle::$10 + 6 [ circle::x1#10 circle::y#13 circle::p#1 ] ( circle:7 [ circle::x1#10 circle::y#13 circle::p#1 ] { } ) always clobbers reg byte a Statement [56] plot::$0 = plot::x#8 & $fff8 [ plot::x#8 plot::y#8 plot::$0 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [57] plot::location#1 = BITMAP + plot::$0 [ plot::x#8 plot::y#8 plot::location#1 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a -Statement [58] plot::$6 = (byte)plot::y#8 [ plot::x#8 plot::y#8 plot::location#1 plot::$6 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a +Statement [58] plot::$6 = (char)plot::y#8 [ plot::x#8 plot::y#8 plot::location#1 plot::$6 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [60] plot::location#2 = plot::location#1 + plot::$1 [ plot::x#8 plot::y#8 plot::location#2 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [61] plot::$2 = plot::y#8 >> 3 [ plot::x#8 plot::location#2 plot::$2 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [62] plot::$7 = plot::$2 << 2 [ plot::x#8 plot::location#2 plot::$2 plot::$7 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a @@ -1030,7 +1030,7 @@ Statement [67] plot::$5 = *plot::location#3 | bitmask[plot::$4] [ plot::location Statement [68] *plot::location#3 = plot::$5 [ ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte y Statement [4] *BORDER_COLOR = BLUE [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] fill::end#0 = fill::addr#0 + fill::size#2 [ fill::addr#0 fill::val#4 fill::end#0 ] ( fill:1 [ fill::addr#0 fill::val#4 fill::end#0 ] { } fill:3 [ fill::addr#0 fill::val#4 fill::end#0 ] { } ) always clobbers reg byte a Statement [12] if(fill::addr#2!=fill::end#0) goto fill::@2 [ fill::val#4 fill::end#0 fill::addr#2 ] ( fill:1 [ fill::val#4 fill::end#0 fill::addr#2 ] { } fill:3 [ fill::val#4 fill::end#0 fill::addr#2 ] { } ) always clobbers reg byte a Statement [14] *fill::addr#2 = fill::val#4 [ fill::val#4 fill::end#0 fill::addr#2 ] ( fill:1 [ fill::val#4 fill::end#0 fill::addr#2 ] { } fill:3 [ fill::val#4 fill::end#0 fill::addr#2 ] { } ) always clobbers reg byte a reg byte y @@ -1062,7 +1062,7 @@ Statement [53] circle::$10 = circle::p#3 + circle::$9 [ circle::x1#10 circle::y# Statement [54] circle::p#1 = circle::$10 + 6 [ circle::x1#10 circle::y#13 circle::p#1 ] ( circle:7 [ circle::x1#10 circle::y#13 circle::p#1 ] { } ) always clobbers reg byte a Statement [56] plot::$0 = plot::x#8 & $fff8 [ plot::x#8 plot::y#8 plot::$0 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::$0 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [57] plot::location#1 = BITMAP + plot::$0 [ plot::x#8 plot::y#8 plot::location#1 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a -Statement [58] plot::$6 = (byte)plot::y#8 [ plot::x#8 plot::y#8 plot::location#1 plot::$6 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a +Statement [58] plot::$6 = (char)plot::y#8 [ plot::x#8 plot::y#8 plot::location#1 plot::$6 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#1 plot::$6 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [60] plot::location#2 = plot::location#1 + plot::$1 [ plot::x#8 plot::y#8 plot::location#2 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::y#8 plot::location#2 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [61] plot::$2 = plot::y#8 >> 3 [ plot::x#8 plot::location#2 plot::$2 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a Statement [62] plot::$7 = plot::$2 << 2 [ plot::x#8 plot::location#2 plot::$2 plot::$7 ] ( circle:7::plot:29 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#0 = plot::x#8 } { plot::y#0 = plot::y#8 } } circle:7::plot:32 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#1 = plot::x#8 } { plot::y#1 = plot::y#8 } } circle:7::plot:35 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#2 = plot::x#8 } { plot::y#2 = plot::y#8 } } circle:7::plot:38 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#3 = plot::x#8 } { plot::y#3 = plot::y#8 } } circle:7::plot:41 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#4 = plot::x#8 } { plot::y#4 = plot::y#8 } } circle:7::plot:44 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#5 = plot::x#8 } { plot::y#5 = plot::y#8 } } circle:7::plot:47 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#6 = plot::x#8 } { plot::y#6 = plot::y#8 } } circle:7::plot:50 [ circle::x1#10 circle::y#10 circle::p#10 plot::x#8 plot::location#2 plot::$2 plot::$7 ] { { plot::x#7 = plot::x#8 } { plot::y#7 = plot::y#8 } } ) always clobbers reg byte a @@ -1182,12 +1182,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call fill + // [1] call fill // [9] phi from main to fill [phi:main->fill] fill_from_main: // [9] phi fill::val#4 = 0 [phi:main->fill#0] -- vbuxx=vbuc1 ldx #0 - // [9] phi fill::size#2 = (signed word)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 + // [9] phi fill::size#2 = (int)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 lda #<$28*$19*8 sta.z fill.size lda #>$28*$19*8 @@ -1203,12 +1203,12 @@ main: { jmp __b2 // main::@2 __b2: - // [3] call fill + // [3] call fill // [9] phi from main::@2 to fill [phi:main::@2->fill] fill_from___b2: // [9] phi fill::val#4 = $16 [phi:main::@2->fill#0] -- vbuxx=vbuc1 ldx #$16 - // [9] phi fill::size#2 = (signed word)$28*$19 [phi:main::@2->fill#1] -- vwsz1=vwsc1 + // [9] phi fill::size#2 = (int)$28*$19 [phi:main::@2->fill#1] -- vwsz1=vwsc1 lda #<$28*$19 sta.z fill.size lda #>$28*$19 @@ -1228,10 +1228,10 @@ main: { // [5] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 - // [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY - // [7] call circle + // [7] call circle // [16] phi from main::@3 to circle [phi:main::@3->circle] circle_from___b3: jsr circle @@ -1245,7 +1245,7 @@ main: { } // fill // Fill some memory with a value -// fill(signed word zp(2) size, byte register(X) val) +// void fill(char *start, __zp(2) int size, __register(X) char val) fill: { .label end = 2 .label addr = 4 @@ -1291,6 +1291,7 @@ fill: { jmp __b1_from___b2 } // circle +// void circle(int xc, int yc, int r) circle: { .const xc = $64 .const yc = $64 @@ -1406,7 +1407,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [29] call plot + // [29] call plot // [55] phi from circle::@4 to plot [phi:circle::@4->plot] plot_from___b4: // [55] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy @@ -1431,7 +1432,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [32] call plot + // [32] call plot // [55] phi from circle::@6 to plot [phi:circle::@6->plot] plot_from___b6: // [55] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy @@ -1456,7 +1457,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [35] call plot + // [35] call plot // [55] phi from circle::@7 to plot [phi:circle::@7->plot] plot_from___b7: // [55] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy @@ -1481,7 +1482,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [38] call plot + // [38] call plot // [55] phi from circle::@8 to plot [phi:circle::@8->plot] plot_from___b8: // [55] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy @@ -1506,7 +1507,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [41] call plot + // [41] call plot // [55] phi from circle::@9 to plot [phi:circle::@9->plot] plot_from___b9: // [55] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy @@ -1531,7 +1532,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [44] call plot + // [44] call plot // [55] phi from circle::@10 to plot [phi:circle::@10->plot] plot_from___b10: // [55] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy @@ -1556,7 +1557,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [47] call plot + // [47] call plot // [55] phi from circle::@11 to plot [phi:circle::@11->plot] plot_from___b11: // [55] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy @@ -1581,7 +1582,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [50] call plot + // [50] call plot // [55] phi from circle::@12 to plot [phi:circle::@12->plot] plot_from___b12: // [55] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy @@ -1631,7 +1632,7 @@ circle: { jmp __b4_from___b3 } // plot -// plot(signed word zp(8) x, signed word zp($a) y) +// void plot(__zp(8) int x, __zp($a) int y) plot: { .label __0 = $c .label __2 = $a @@ -1656,7 +1657,7 @@ plot: { lda #>BITMAP adc.z location+1 sta.z location+1 - // [58] plot::$6 = (byte)plot::y#8 -- vbuaa=_byte_vwsz1 + // [58] plot::$6 = (char)plot::y#8 -- vbuaa=_byte_vwsz1 lda.z y // [59] plot::$1 = plot::$6 & 7 -- vbuaa=vbuaa_band_vbuc1 and #7 @@ -1801,90 +1802,90 @@ Removing instruction __b13: Removing instruction __b1_from___b13: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [133] bmi __b3 to bpl +Fixing long branch [134] bmi __b3 to bpl FINAL SYMBOL TABLE -constant byte* const BITMAP = (byte*) 8192 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant byte* bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$10 zp[2]:6 202.0 -signed word~ circle::$5 zp[2]:8 202.0 -signed word~ circle::$6 zp[2]:8 202.0 -signed word~ circle::$7 zp[2]:6 202.0 -signed word~ circle::$9 zp[2]:10 202.0 -signed word circle::p -signed word circle::p#1 p zp[2]:6 202.0 -signed word circle::p#10 p zp[2]:6 11.653846153846153 -signed word circle::p#2 p zp[2]:6 202.0 -signed word circle::p#3 p zp[2]:6 57.714285714285715 -signed word circle::r -constant signed word circle::r#0 r = $32 -signed word circle::x1 -signed word circle::x1#1 x1 zp[2]:2 202.0 -signed word circle::x1#10 x1 zp[2]:2 36.47222222222223 -signed word circle::xc -constant signed word circle::xc#0 xc = $64 -signed word circle::y -signed word circle::y#1 y zp[2]:4 60.599999999999994 -signed word circle::y#10 y zp[2]:4 42.73076923076923 -signed word circle::y#13 y zp[2]:4 67.33333333333333 -signed word circle::yc -constant signed word circle::yc#0 yc = $64 -void fill(byte* fill::start , signed word fill::size , byte fill::val) -byte* fill::addr -byte* fill::addr#0 addr zp[2]:4 11.0 -byte* fill::addr#1 addr zp[2]:4 202.0 -byte* fill::addr#2 addr zp[2]:4 138.33333333333331 -byte* fill::end -byte* fill::end#0 end zp[2]:2 22.4 -signed word fill::size -signed word fill::size#2 size zp[2]:2 11.0 -byte* fill::start -byte fill::val -byte fill::val#4 reg byte x 16.833333333333332 +__constant char * const BITMAP = (char *) 8192 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant char bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } +void circle(int xc , int yc , int r) +int circle::$10 // zp[2]:6 202.0 +int circle::$5 // zp[2]:8 202.0 +int circle::$6 // zp[2]:8 202.0 +int circle::$7 // zp[2]:6 202.0 +int circle::$9 // zp[2]:10 202.0 +int circle::p +int circle::p#1 // p zp[2]:6 202.0 +int circle::p#10 // p zp[2]:6 11.653846153846153 +int circle::p#2 // p zp[2]:6 202.0 +int circle::p#3 // p zp[2]:6 57.714285714285715 +int circle::r +__constant int circle::r#0 = $32 // r +int circle::x1 +int circle::x1#1 // x1 zp[2]:2 202.0 +int circle::x1#10 // x1 zp[2]:2 36.47222222222223 +int circle::xc +__constant int circle::xc#0 = $64 // xc +int circle::y +int circle::y#1 // y zp[2]:4 60.599999999999994 +int circle::y#10 // y zp[2]:4 42.73076923076923 +int circle::y#13 // y zp[2]:4 67.33333333333333 +int circle::yc +__constant int circle::yc#0 = $64 // yc +void fill(char *start , int size , char val) +char *fill::addr +char *fill::addr#0 // addr zp[2]:4 11.0 +char *fill::addr#1 // addr zp[2]:4 202.0 +char *fill::addr#2 // addr zp[2]:4 138.33333333333331 +char *fill::end +char *fill::end#0 // end zp[2]:2 22.4 +int fill::size +int fill::size#2 // size zp[2]:2 11.0 +char *fill::start +char fill::val +char fill::val#4 // reg byte x 16.833333333333332 void main() -void plot(signed word plot::x , signed word plot::y) -signed word~ plot::$0 zp[2]:12 2002.0 -byte~ plot::$1 reg byte a 2002.0 -signed word~ plot::$2 zp[2]:10 1501.5 -signed word~ plot::$3 zp[2]:14 2002.0 -signed byte~ plot::$4 reg byte a 2002.0 -byte~ plot::$5 reg byte a 2002.0 -byte~ plot::$6 reg byte a 2002.0 -signed word~ plot::$7 zp[2]:14 2002.0 -signed word~ plot::$8 zp[2]:14 2002.0 -byte* plot::location -byte* plot::location#1 location zp[2]:12 667.3333333333334 -byte* plot::location#2 location zp[2]:12 400.4 -byte* plot::location#3 location zp[2]:12 1001.0 -signed word plot::x -signed word plot::x#0 x zp[2]:8 101.0 -signed word plot::x#1 x zp[2]:8 101.0 -signed word plot::x#2 x zp[2]:8 101.0 -signed word plot::x#3 x zp[2]:8 101.0 -signed word plot::x#4 x zp[2]:8 101.0 -signed word plot::x#5 x zp[2]:8 101.0 -signed word plot::x#6 x zp[2]:8 101.0 -signed word plot::x#7 x zp[2]:8 101.0 -signed word plot::x#8 x zp[2]:8 255.45454545454544 -signed word plot::y -signed word plot::y#0 y zp[2]:10 202.0 -signed word plot::y#1 y zp[2]:10 202.0 -signed word plot::y#2 y zp[2]:10 202.0 -signed word plot::y#3 y zp[2]:10 202.0 -signed word plot::y#4 y zp[2]:10 202.0 -signed word plot::y#5 y zp[2]:10 202.0 -signed word plot::y#6 y zp[2]:10 202.0 -signed word plot::y#7 y zp[2]:10 202.0 -signed word plot::y#8 y zp[2]:10 301.5 +void plot(int x , int y) +int plot::$0 // zp[2]:12 2002.0 +char plot::$1 // reg byte a 2002.0 +int plot::$2 // zp[2]:10 1501.5 +int plot::$3 // zp[2]:14 2002.0 +signed char plot::$4 // reg byte a 2002.0 +char plot::$5 // reg byte a 2002.0 +char plot::$6 // reg byte a 2002.0 +int plot::$7 // zp[2]:14 2002.0 +int plot::$8 // zp[2]:14 2002.0 +char *plot::location +char *plot::location#1 // location zp[2]:12 667.3333333333334 +char *plot::location#2 // location zp[2]:12 400.4 +char *plot::location#3 // location zp[2]:12 1001.0 +int plot::x +int plot::x#0 // x zp[2]:8 101.0 +int plot::x#1 // x zp[2]:8 101.0 +int plot::x#2 // x zp[2]:8 101.0 +int plot::x#3 // x zp[2]:8 101.0 +int plot::x#4 // x zp[2]:8 101.0 +int plot::x#5 // x zp[2]:8 101.0 +int plot::x#6 // x zp[2]:8 101.0 +int plot::x#7 // x zp[2]:8 101.0 +int plot::x#8 // x zp[2]:8 255.45454545454544 +int plot::y +int plot::y#0 // y zp[2]:10 202.0 +int plot::y#1 // y zp[2]:10 202.0 +int plot::y#2 // y zp[2]:10 202.0 +int plot::y#3 // y zp[2]:10 202.0 +int plot::y#4 // y zp[2]:10 202.0 +int plot::y#5 // y zp[2]:10 202.0 +int plot::y#6 // y zp[2]:10 202.0 +int plot::y#7 // y zp[2]:10 202.0 +int plot::y#8 // y zp[2]:10 301.5 reg byte x [ fill::val#4 ] zp[2]:2 [ circle::x1#10 circle::x1#1 fill::size#2 fill::end#0 ] @@ -1945,11 +1946,11 @@ Score: 6073 // main main: { // fill(BITMAP,40*25*8,0) - // [1] call fill + // [1] call fill // [9] phi from main to fill [phi:main->fill] // [9] phi fill::val#4 = 0 [phi:main->fill#0] -- vbuxx=vbuc1 ldx #0 - // [9] phi fill::size#2 = (signed word)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 + // [9] phi fill::size#2 = (int)$28*$19*8 [phi:main->fill#1] -- vwsz1=vwsc1 lda #<$28*$19*8 sta.z fill.size lda #>$28*$19*8 @@ -1963,11 +1964,11 @@ main: { // [2] phi from main to main::@2 [phi:main->main::@2] // main::@2 // fill(SCREEN,40*25,$16) - // [3] call fill + // [3] call fill // [9] phi from main::@2 to fill [phi:main::@2->fill] // [9] phi fill::val#4 = $16 [phi:main::@2->fill#0] -- vbuxx=vbuc1 ldx #$16 - // [9] phi fill::size#2 = (signed word)$28*$19 [phi:main::@2->fill#1] -- vwsz1=vwsc1 + // [9] phi fill::size#2 = (int)$28*$19 [phi:main::@2->fill#1] -- vwsz1=vwsc1 lda #<$28*$19 sta.z fill.size lda #>$28*$19 @@ -1988,11 +1989,11 @@ main: { lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // *VICII_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400)) - // [6] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [6] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // circle(100,100,50) - // [7] call circle + // [7] call circle // [16] phi from main::@3 to circle [phi:main::@3->circle] jsr circle // [8] phi from main::@1 main::@3 to main::@1 [phi:main::@1/main::@3->main::@1] @@ -2002,7 +2003,7 @@ main: { } // fill // Fill some memory with a value -// fill(signed word zp(2) size, byte register(X) val) +// void fill(char *start, __zp(2) int size, __register(X) char val) fill: { .label end = 2 .label addr = 4 @@ -2048,6 +2049,7 @@ fill: { jmp __b1 } // circle +// void circle(int xc, int yc, int r) circle: { .const xc = $64 .const yc = $64 @@ -2164,7 +2166,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [29] call plot + // [29] call plot // [55] phi from circle::@4 to plot [phi:circle::@4->plot] // [55] phi plot::y#8 = plot::y#0 [phi:circle::@4->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#0 [phi:circle::@4->plot#1] -- register_copy @@ -2187,7 +2189,7 @@ circle: { lda #>yc sbc.z y+1 sta.z plot.y+1 - // [32] call plot + // [32] call plot // [55] phi from circle::@6 to plot [phi:circle::@6->plot] // [55] phi plot::y#8 = plot::y#1 [phi:circle::@6->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#1 [phi:circle::@6->plot#1] -- register_copy @@ -2210,7 +2212,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [35] call plot + // [35] call plot // [55] phi from circle::@7 to plot [phi:circle::@7->plot] // [55] phi plot::y#8 = plot::y#2 [phi:circle::@7->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#2 [phi:circle::@7->plot#1] -- register_copy @@ -2233,7 +2235,7 @@ circle: { lda.z y+1 adc #>yc sta.z plot.y+1 - // [38] call plot + // [38] call plot // [55] phi from circle::@8 to plot [phi:circle::@8->plot] // [55] phi plot::y#8 = plot::y#3 [phi:circle::@8->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#3 [phi:circle::@8->plot#1] -- register_copy @@ -2256,7 +2258,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [41] call plot + // [41] call plot // [55] phi from circle::@9 to plot [phi:circle::@9->plot] // [55] phi plot::y#8 = plot::y#4 [phi:circle::@9->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#4 [phi:circle::@9->plot#1] -- register_copy @@ -2279,7 +2281,7 @@ circle: { lda #>yc sbc.z x1+1 sta.z plot.y+1 - // [44] call plot + // [44] call plot // [55] phi from circle::@10 to plot [phi:circle::@10->plot] // [55] phi plot::y#8 = plot::y#5 [phi:circle::@10->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#5 [phi:circle::@10->plot#1] -- register_copy @@ -2302,7 +2304,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [47] call plot + // [47] call plot // [55] phi from circle::@11 to plot [phi:circle::@11->plot] // [55] phi plot::y#8 = plot::y#6 [phi:circle::@11->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#6 [phi:circle::@11->plot#1] -- register_copy @@ -2325,7 +2327,7 @@ circle: { lda.z x1+1 adc #>yc sta.z plot.y+1 - // [50] call plot + // [50] call plot // [55] phi from circle::@12 to plot [phi:circle::@12->plot] // [55] phi plot::y#8 = plot::y#7 [phi:circle::@12->plot#0] -- register_copy // [55] phi plot::x#8 = plot::x#7 [phi:circle::@12->plot#1] -- register_copy @@ -2375,7 +2377,7 @@ circle: { jmp __b4 } // plot -// plot(signed word zp(8) x, signed word zp($a) y) +// void plot(__zp(8) int x, __zp($a) int y) plot: { .label __0 = $c .label __2 = $a @@ -2403,7 +2405,7 @@ plot: { adc.z location+1 sta.z location+1 // (char)y & 7 - // [58] plot::$6 = (byte)plot::y#8 -- vbuaa=_byte_vwsz1 + // [58] plot::$6 = (char)plot::y#8 -- vbuaa=_byte_vwsz1 lda.z y // [59] plot::$1 = plot::$6 & 7 -- vbuaa=vbuaa_band_vbuc1 and #7 diff --git a/src/test/ref/bitmap-circle.sym b/src/test/ref/bitmap-circle.sym index 25996884b..10f9de307 100644 --- a/src/test/ref/bitmap-circle.sym +++ b/src/test/ref/bitmap-circle.sym @@ -1,84 +1,84 @@ -constant byte* const BITMAP = (byte*) 8192 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant byte* bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } -void circle(signed word circle::xc , signed word circle::yc , signed word circle::r) -signed word~ circle::$10 zp[2]:6 202.0 -signed word~ circle::$5 zp[2]:8 202.0 -signed word~ circle::$6 zp[2]:8 202.0 -signed word~ circle::$7 zp[2]:6 202.0 -signed word~ circle::$9 zp[2]:10 202.0 -signed word circle::p -signed word circle::p#1 p zp[2]:6 202.0 -signed word circle::p#10 p zp[2]:6 11.653846153846153 -signed word circle::p#2 p zp[2]:6 202.0 -signed word circle::p#3 p zp[2]:6 57.714285714285715 -signed word circle::r -constant signed word circle::r#0 r = $32 -signed word circle::x1 -signed word circle::x1#1 x1 zp[2]:2 202.0 -signed word circle::x1#10 x1 zp[2]:2 36.47222222222223 -signed word circle::xc -constant signed word circle::xc#0 xc = $64 -signed word circle::y -signed word circle::y#1 y zp[2]:4 60.599999999999994 -signed word circle::y#10 y zp[2]:4 42.73076923076923 -signed word circle::y#13 y zp[2]:4 67.33333333333333 -signed word circle::yc -constant signed word circle::yc#0 yc = $64 -void fill(byte* fill::start , signed word fill::size , byte fill::val) -byte* fill::addr -byte* fill::addr#0 addr zp[2]:4 11.0 -byte* fill::addr#1 addr zp[2]:4 202.0 -byte* fill::addr#2 addr zp[2]:4 138.33333333333331 -byte* fill::end -byte* fill::end#0 end zp[2]:2 22.4 -signed word fill::size -signed word fill::size#2 size zp[2]:2 11.0 -byte* fill::start -byte fill::val -byte fill::val#4 reg byte x 16.833333333333332 +__constant char * const BITMAP = (char *) 8192 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant char bitmask[] = { $80, $40, $20, $10, 8, 4, 2, 1 } +void circle(int xc , int yc , int r) +int circle::$10 // zp[2]:6 202.0 +int circle::$5 // zp[2]:8 202.0 +int circle::$6 // zp[2]:8 202.0 +int circle::$7 // zp[2]:6 202.0 +int circle::$9 // zp[2]:10 202.0 +int circle::p +int circle::p#1 // p zp[2]:6 202.0 +int circle::p#10 // p zp[2]:6 11.653846153846153 +int circle::p#2 // p zp[2]:6 202.0 +int circle::p#3 // p zp[2]:6 57.714285714285715 +int circle::r +__constant int circle::r#0 = $32 // r +int circle::x1 +int circle::x1#1 // x1 zp[2]:2 202.0 +int circle::x1#10 // x1 zp[2]:2 36.47222222222223 +int circle::xc +__constant int circle::xc#0 = $64 // xc +int circle::y +int circle::y#1 // y zp[2]:4 60.599999999999994 +int circle::y#10 // y zp[2]:4 42.73076923076923 +int circle::y#13 // y zp[2]:4 67.33333333333333 +int circle::yc +__constant int circle::yc#0 = $64 // yc +void fill(char *start , int size , char val) +char *fill::addr +char *fill::addr#0 // addr zp[2]:4 11.0 +char *fill::addr#1 // addr zp[2]:4 202.0 +char *fill::addr#2 // addr zp[2]:4 138.33333333333331 +char *fill::end +char *fill::end#0 // end zp[2]:2 22.4 +int fill::size +int fill::size#2 // size zp[2]:2 11.0 +char *fill::start +char fill::val +char fill::val#4 // reg byte x 16.833333333333332 void main() -void plot(signed word plot::x , signed word plot::y) -signed word~ plot::$0 zp[2]:12 2002.0 -byte~ plot::$1 reg byte a 2002.0 -signed word~ plot::$2 zp[2]:10 1501.5 -signed word~ plot::$3 zp[2]:14 2002.0 -signed byte~ plot::$4 reg byte a 2002.0 -byte~ plot::$5 reg byte a 2002.0 -byte~ plot::$6 reg byte a 2002.0 -signed word~ plot::$7 zp[2]:14 2002.0 -signed word~ plot::$8 zp[2]:14 2002.0 -byte* plot::location -byte* plot::location#1 location zp[2]:12 667.3333333333334 -byte* plot::location#2 location zp[2]:12 400.4 -byte* plot::location#3 location zp[2]:12 1001.0 -signed word plot::x -signed word plot::x#0 x zp[2]:8 101.0 -signed word plot::x#1 x zp[2]:8 101.0 -signed word plot::x#2 x zp[2]:8 101.0 -signed word plot::x#3 x zp[2]:8 101.0 -signed word plot::x#4 x zp[2]:8 101.0 -signed word plot::x#5 x zp[2]:8 101.0 -signed word plot::x#6 x zp[2]:8 101.0 -signed word plot::x#7 x zp[2]:8 101.0 -signed word plot::x#8 x zp[2]:8 255.45454545454544 -signed word plot::y -signed word plot::y#0 y zp[2]:10 202.0 -signed word plot::y#1 y zp[2]:10 202.0 -signed word plot::y#2 y zp[2]:10 202.0 -signed word plot::y#3 y zp[2]:10 202.0 -signed word plot::y#4 y zp[2]:10 202.0 -signed word plot::y#5 y zp[2]:10 202.0 -signed word plot::y#6 y zp[2]:10 202.0 -signed word plot::y#7 y zp[2]:10 202.0 -signed word plot::y#8 y zp[2]:10 301.5 +void plot(int x , int y) +int plot::$0 // zp[2]:12 2002.0 +char plot::$1 // reg byte a 2002.0 +int plot::$2 // zp[2]:10 1501.5 +int plot::$3 // zp[2]:14 2002.0 +signed char plot::$4 // reg byte a 2002.0 +char plot::$5 // reg byte a 2002.0 +char plot::$6 // reg byte a 2002.0 +int plot::$7 // zp[2]:14 2002.0 +int plot::$8 // zp[2]:14 2002.0 +char *plot::location +char *plot::location#1 // location zp[2]:12 667.3333333333334 +char *plot::location#2 // location zp[2]:12 400.4 +char *plot::location#3 // location zp[2]:12 1001.0 +int plot::x +int plot::x#0 // x zp[2]:8 101.0 +int plot::x#1 // x zp[2]:8 101.0 +int plot::x#2 // x zp[2]:8 101.0 +int plot::x#3 // x zp[2]:8 101.0 +int plot::x#4 // x zp[2]:8 101.0 +int plot::x#5 // x zp[2]:8 101.0 +int plot::x#6 // x zp[2]:8 101.0 +int plot::x#7 // x zp[2]:8 101.0 +int plot::x#8 // x zp[2]:8 255.45454545454544 +int plot::y +int plot::y#0 // y zp[2]:10 202.0 +int plot::y#1 // y zp[2]:10 202.0 +int plot::y#2 // y zp[2]:10 202.0 +int plot::y#3 // y zp[2]:10 202.0 +int plot::y#4 // y zp[2]:10 202.0 +int plot::y#5 // y zp[2]:10 202.0 +int plot::y#6 // y zp[2]:10 202.0 +int plot::y#7 // y zp[2]:10 202.0 +int plot::y#8 // y zp[2]:10 301.5 reg byte x [ fill::val#4 ] zp[2]:2 [ circle::x1#10 circle::x1#1 fill::size#2 fill::end#0 ] diff --git a/src/test/ref/bitmap-line-anim-1.asm b/src/test/ref/bitmap-line-anim-1.asm index c0be63174..04bbe8947 100644 --- a/src/test/ref/bitmap-line-anim-1.asm +++ b/src/test/ref/bitmap-line-anim-1.asm @@ -68,6 +68,7 @@ main: { jmp __b1 } // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $10 .label yoffs = 2 @@ -129,6 +130,7 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) @@ -185,7 +187,7 @@ init_screen: { jmp __b1 } // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp($e) x2) +// void bitmap_line(unsigned int x1, unsigned int y1, __zp($e) unsigned int x2, unsigned int y2) bitmap_line: { .const x1 = 0 .const y1 = 0 @@ -409,7 +411,7 @@ bitmap_line: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(8) str, byte register(X) c, word zp(6) num) +// void * memset(__zp(8) void *str, __register(X) char c, __zp(6) unsigned int num) memset: { .label end = 6 .label dst = 8 @@ -453,7 +455,7 @@ memset: { jmp __b2 } // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($a) w) +// __zp($a) unsigned int abs_u16(__zp($a) unsigned int w) abs_u16: { .label w = $a .label return = $a @@ -479,7 +481,7 @@ abs_u16: { } // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($15) w) +// __zp($c) unsigned int sgn_u16(__zp($15) unsigned int w) sgn_u16: { .label w = $15 .label return = $c @@ -503,7 +505,7 @@ sgn_u16: { rts } // Plot a single dot in the bitmap -// bitmap_plot(word zp(8) x, byte register(X) y) +// void bitmap_plot(__zp(8) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $17 .label plotter = $15 diff --git a/src/test/ref/bitmap-line-anim-1.cfg b/src/test/ref/bitmap-line-anim-1.cfg index cb016a5a4..ca277fad2 100644 --- a/src/test/ref/bitmap-line-anim-1.cfg +++ b/src/test/ref/bitmap-line-anim-1.cfg @@ -4,27 +4,27 @@ main: scope:[main] from [0] *BORDER_COLOR = 0 [1] *BG_COLOR = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [4] call bitmap_init + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [4] call bitmap_init to:main::@2 main::@2: scope:[main] from main [5] phi() - [6] call bitmap_clear + [6] call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 [7] phi() - [8] call init_screen + [8] call init_screen to:main::@1 main::@1: scope:[main] from main::@3 main::@4 [9] next#5 = phi( main::@3/0, main::@4/next#0 ) [10] bitmap_line::x2#0 = next#5 - [11] call bitmap_line + [11] call bitmap_line to:main::@4 main::@4: scope:[main] from main::@1 [12] next#0 = ++ next#5 to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [13] phi() to:bitmap_init::@1 @@ -55,7 +55,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [29] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [31] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -66,14 +66,14 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [34] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@2 [35] phi() - [36] call memset + [36] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [37] phi() - [38] call memset + [38] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [39] return @@ -95,15 +95,15 @@ init_screen::@2: scope:[init_screen] from init_screen::@1 [45] init_screen::c#1 = ++ init_screen::c#2 to:init_screen::@1 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@1 [46] abs_u16::w#0 = bitmap_line::x2#0 - [47] call abs_u16 + [47] call abs_u16 [48] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [49] bitmap_line::dx#0 = abs_u16::return#0 - [50] call abs_u16 + [50] call abs_u16 [51] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -115,12 +115,12 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [55] sgn_u16::w#0 = bitmap_line::x2#0 - [56] call sgn_u16 + [56] call sgn_u16 [57] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [58] bitmap_line::sx#0 = sgn_u16::return#0 - [59] call sgn_u16 + [59] call sgn_u16 [60] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -135,8 +135,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [64] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [64] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [65] bitmap_plot::x#1 = bitmap_line::x#13 - [66] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [67] call bitmap_plot + [66] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [67] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [68] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -156,8 +156,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [75] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [75] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [76] bitmap_plot::x#2 = bitmap_line::x#6 - [77] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [78] call bitmap_plot + [77] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [78] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [79] return @@ -170,8 +170,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [81] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [81] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [82] bitmap_plot::x#3 = bitmap_line::x#7 - [83] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [84] call bitmap_plot + [83] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [84] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [85] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -189,19 +189,19 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [92] phi() - [93] call bitmap_plot + [93] call bitmap_plot to:bitmap_line::@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [94] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [94] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [94] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [94] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [95] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [96] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [97] memset::dst#4 = (byte*)memset::str#3 + [96] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [97] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [98] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -215,7 +215,7 @@ memset::@3: scope:[memset] from memset::@2 [102] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [103] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/bitmap_line::y2#0 ) [104] abs_u16::$0 = byte1 abs_u16::w#2 @@ -230,7 +230,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [109] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [110] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/bitmap_line::y2#0 ) [111] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -245,13 +245,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [116] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [117] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_line::x1#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [117] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [119] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [120] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [121] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return diff --git a/src/test/ref/bitmap-line-anim-1.log b/src/test/ref/bitmap-line-anim-1.log index 39ad68325..420bb1b93 100644 --- a/src/test/ref/bitmap-line-anim-1.log +++ b/src/test/ref/bitmap-line-anim-1.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement bitmap_clear::$1 Eliminating unused variable with no statement bitmap_line::$1 Eliminating unused variable with no statement bitmap_line::$3 @@ -11,7 +11,7 @@ Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main bitmap_init::screen#1 = phi( main/bitmap_init::screen#0 ) bitmap_init::gfx#1 = phi( main/bitmap_init::gfx#0 ) @@ -97,7 +97,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6 return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@2 bitmap_gfx#14 = phi( main::@2/bitmap_gfx#2 ) bitmap_screen#8 = phi( main::@2/bitmap_screen#2 ) @@ -105,18 +105,18 @@ bitmap_clear: scope:[bitmap_clear] from main::@2 bitmap_clear::fgcol#1 = phi( main::@2/bitmap_clear::fgcol#0 ) bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#1 - memset::str#0 = (void*)bitmap_screen#8 + memset::str#0 = (void *)bitmap_screen#8 memset::c#0 = bitmap_clear::col#0 memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_gfx#8 = phi( bitmap_clear/bitmap_gfx#14 ) - memset::str#1 = (void*)bitmap_gfx#8 + memset::str#1 = (void *)bitmap_gfx#8 memset::c#1 = 0 memset::num#1 = $1f40 - call memset + call memset memset::return#1 = memset::return#3 to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 @@ -125,12 +125,12 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2 return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] - bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 + bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1 bitmap_plot::$2 = byte0 bitmap_plot::x#4 @@ -140,7 +140,7 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@1 bitmap_line::y2#4 = phi( main::@1/bitmap_line::y2#0 ) bitmap_line::x2#1 = phi( main::@1/bitmap_line::x2#0 ) @@ -150,7 +150,7 @@ bitmap_line: scope:[bitmap_line] from main::@1 bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::$0 = bitmap_line::x2#1 - bitmap_line::x1#1 abs_u16::w#0 = bitmap_line::$0 - call abs_u16 + call abs_u16 abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line @@ -164,7 +164,7 @@ bitmap_line::@12: scope:[bitmap_line] from bitmap_line bitmap_line::dx#0 = abs_u16::return#5 bitmap_line::$2 = bitmap_line::y2#1 - bitmap_line::y1#2 abs_u16::w#1 = bitmap_line::$2 - call abs_u16 + call abs_u16 abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -194,7 +194,7 @@ bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::x2#2 = phi( bitmap_line::@13/bitmap_line::x2#4 ) bitmap_line::$8 = bitmap_line::x2#2 - bitmap_line::x1#2 sgn_u16::w#0 = bitmap_line::$8 - call sgn_u16 + call sgn_u16 sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 @@ -209,7 +209,7 @@ bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::sx#0 = sgn_u16::return#5 bitmap_line::$10 = bitmap_line::y2#2 - bitmap_line::y1#3 sgn_u16::w#1 = bitmap_line::$10 - call sgn_u16 + call sgn_u16 sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -229,8 +229,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::y#3 = phi( bitmap_line::@13/bitmap_line::y#10 ) bitmap_line::x#3 = phi( bitmap_line::@13/bitmap_line::x#10 ) bitmap_plot::x#0 = bitmap_line::x#3 - bitmap_plot::y#0 = (byte)bitmap_line::y#3 - call bitmap_plot + bitmap_plot::y#0 = (char)bitmap_line::y#3 + call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4 to:bitmap_line::@return @@ -267,8 +267,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y#11, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#4 = phi( bitmap_line::@5/bitmap_line::x#11, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#1 = bitmap_line::x#4 - bitmap_plot::y#1 = (byte)bitmap_line::y#4 - call bitmap_plot + bitmap_plot::y#1 = (char)bitmap_line::y#4 + call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@6 bitmap_line::sx#3 = phi( bitmap_line::@6/bitmap_line::sx#5 ) @@ -313,8 +313,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#2 = bitmap_line::x#6 - bitmap_plot::y#2 = (byte)bitmap_line::y#7 - call bitmap_plot + bitmap_plot::y#2 = (char)bitmap_line::y#7 + call bitmap_plot to:bitmap_line::@18 bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@3 to:bitmap_line::@return @@ -328,8 +328,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 bitmap_line::y#8 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y#14 ) bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@2/bitmap_line::x#14 ) bitmap_plot::x#3 = bitmap_line::x#7 - bitmap_plot::y#3 = (byte)bitmap_line::y#8 - call bitmap_plot + bitmap_plot::y#3 = (char)bitmap_line::y#8 + call bitmap_plot to:bitmap_line::@19 bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@9 bitmap_line::sy#4 = phi( bitmap_line::@9/bitmap_line::sy#7 ) @@ -371,7 +371,7 @@ bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@19 bitmap_line::e1#2 = bitmap_line::e1#4 - bitmap_line::dx#6 to:bitmap_line::@10 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 memset::c#5 = phi( bitmap_clear/memset::c#0, bitmap_clear::@1/memset::c#1 ) memset::str#4 = phi( bitmap_clear/memset::str#0, bitmap_clear::@1/memset::str#1 ) @@ -388,9 +388,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -414,7 +414,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) abs_u16::$0 = byte1 abs_u16::w#2 @@ -437,7 +437,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@2 return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -465,10 +465,10 @@ main: scope:[main] from __start::@1 *BORDER_COLOR = 0 *BG_COLOR = 0 *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 bitmap_init::gfx#0 = BITMAP bitmap_init::screen#0 = SCREEN - call bitmap_init + call bitmap_init to:main::@2 main::@2: scope:[main] from main next#13 = phi( main/next#14 ) @@ -478,13 +478,13 @@ main::@2: scope:[main] from main bitmap_screen#2 = bitmap_screen#9 bitmap_clear::bgcol#0 = BLACK bitmap_clear::fgcol#0 = WHITE - call bitmap_clear + call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 bitmap_screen#23 = phi( main::@2/bitmap_screen#2 ) bitmap_gfx#24 = phi( main::@2/bitmap_gfx#2 ) next#12 = phi( main::@2/next#13 ) - call init_screen + call init_screen to:main::@4 main::@4: scope:[main] from main::@3 bitmap_screen#21 = phi( main::@3/bitmap_screen#23 ) @@ -499,7 +499,7 @@ main::@1: scope:[main] from main::@4 main::@5 bitmap_line::y1#0 = 0 bitmap_line::x2#0 = next#5 bitmap_line::y2#0 = $64 - call bitmap_line + call bitmap_line to:main::@5 main::@5: scope:[main] from main::@1 bitmap_screen#15 = phi( main::@1/bitmap_screen#19 ) @@ -540,15 +540,15 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bitmap_screen#4 = (byte*) 0 - bitmap_gfx#4 = (byte*) 0 + bitmap_screen#4 = (char *) 0 + bitmap_gfx#4 = (char *) 0 next#2 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 next#11 = phi( __start::__init1/next#2 ) bitmap_screen#16 = phi( __start::__init1/bitmap_screen#4 ) bitmap_gfx#17 = phi( __start::__init1/bitmap_gfx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 next#8 = phi( __start::@1/next#1 ) @@ -569,422 +569,422 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const BITMAP = (byte*)$2000 -constant const byte BLACK = 0 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const D011 = (byte*)$d011 -constant byte* const SCREEN = (byte*)$400 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const BITMAP = (char *)$2000 +__constant const char BLACK = 0 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const D011 = (char *)$d011 +__constant char * const SCREEN = (char *)$400 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 -number~ abs_u16::$1 -word~ abs_u16::$2 -bool~ abs_u16::$3 -word abs_u16::return -word abs_u16::return#0 -word abs_u16::return#1 -word abs_u16::return#2 -word abs_u16::return#3 -word abs_u16::return#4 -word abs_u16::return#5 -word abs_u16::return#6 -word abs_u16::return#7 -word abs_u16::w -word abs_u16::w#0 -word abs_u16::w#1 -word abs_u16::w#2 -word abs_u16::w#3 -word abs_u16::w#4 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -number~ bitmap_clear::$0 -byte bitmap_clear::bgcol -byte bitmap_clear::bgcol#0 -byte bitmap_clear::bgcol#1 -byte bitmap_clear::col -byte bitmap_clear::col#0 -byte bitmap_clear::fgcol -byte bitmap_clear::fgcol#0 -byte bitmap_clear::fgcol#1 -byte* bitmap_gfx -byte* bitmap_gfx#0 -byte* bitmap_gfx#1 -byte* bitmap_gfx#10 -byte* bitmap_gfx#11 -byte* bitmap_gfx#12 -byte* bitmap_gfx#13 -byte* bitmap_gfx#14 -byte* bitmap_gfx#15 -byte* bitmap_gfx#16 -byte* bitmap_gfx#17 -byte* bitmap_gfx#18 -byte* bitmap_gfx#19 -byte* bitmap_gfx#2 -byte* bitmap_gfx#20 -byte* bitmap_gfx#21 -byte* bitmap_gfx#22 -byte* bitmap_gfx#23 -byte* bitmap_gfx#24 -byte* bitmap_gfx#25 -byte* bitmap_gfx#26 -byte* bitmap_gfx#3 -byte* bitmap_gfx#4 -byte* bitmap_gfx#5 -byte* bitmap_gfx#6 -byte* bitmap_gfx#7 -byte* bitmap_gfx#8 -byte* bitmap_gfx#9 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -bool~ bitmap_init::$0 -bool~ bitmap_init::$1 -byte*~ bitmap_init::$10 -bool~ bitmap_init::$11 -bool~ bitmap_init::$2 -number~ bitmap_init::$3 -byte~ bitmap_init::$4 -number~ bitmap_init::$5 -byte~ bitmap_init::$6 -number~ bitmap_init::$7 -bool~ bitmap_init::$8 -bool~ bitmap_init::$9 -byte bitmap_init::bits -byte bitmap_init::bits#0 -byte bitmap_init::bits#1 -byte bitmap_init::bits#2 -byte bitmap_init::bits#3 -byte bitmap_init::bits#4 -byte* bitmap_init::gfx -byte* bitmap_init::gfx#0 -byte* bitmap_init::gfx#1 -byte* bitmap_init::gfx#2 -byte* bitmap_init::gfx#3 -byte* bitmap_init::gfx#4 -byte* bitmap_init::gfx#5 -byte* bitmap_init::screen -byte* bitmap_init::screen#0 -byte* bitmap_init::screen#1 -byte bitmap_init::x -byte bitmap_init::x#0 -byte bitmap_init::x#1 -byte bitmap_init::x#2 -byte bitmap_init::x#3 -byte bitmap_init::x#4 -byte bitmap_init::y -byte bitmap_init::y#0 -byte bitmap_init::y#1 -byte bitmap_init::y#2 -byte bitmap_init::y#3 -byte bitmap_init::y#4 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#0 -byte* bitmap_init::yoffs#1 -byte* bitmap_init::yoffs#2 -byte* bitmap_init::yoffs#3 -byte* bitmap_init::yoffs#4 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word~ bitmap_line::$0 -word~ bitmap_line::$10 -bool~ bitmap_line::$12 -bool~ bitmap_line::$17 -bool~ bitmap_line::$18 -bool~ bitmap_line::$19 -word~ bitmap_line::$2 -bool~ bitmap_line::$22 -bool~ bitmap_line::$23 -bool~ bitmap_line::$24 -bool~ bitmap_line::$4 -bool~ bitmap_line::$5 -bool~ bitmap_line::$6 -bool~ bitmap_line::$7 -word~ bitmap_line::$8 -word bitmap_line::dx -word bitmap_line::dx#0 -word bitmap_line::dx#1 -word bitmap_line::dx#10 -word bitmap_line::dx#11 -word bitmap_line::dx#12 -word bitmap_line::dx#13 -word bitmap_line::dx#14 -word bitmap_line::dx#2 -word bitmap_line::dx#3 -word bitmap_line::dx#4 -word bitmap_line::dx#5 -word bitmap_line::dx#6 -word bitmap_line::dx#7 -word bitmap_line::dx#8 -word bitmap_line::dx#9 -word bitmap_line::dy -word bitmap_line::dy#0 -word bitmap_line::dy#1 -word bitmap_line::dy#10 -word bitmap_line::dy#11 -word bitmap_line::dy#12 -word bitmap_line::dy#13 -word bitmap_line::dy#2 -word bitmap_line::dy#3 -word bitmap_line::dy#4 -word bitmap_line::dy#5 -word bitmap_line::dy#6 -word bitmap_line::dy#7 -word bitmap_line::dy#8 -word bitmap_line::dy#9 -word bitmap_line::e -word bitmap_line::e#0 -word bitmap_line::e#1 -word bitmap_line::e#2 -word bitmap_line::e#3 -word bitmap_line::e#4 -word bitmap_line::e#5 -word bitmap_line::e#6 -word bitmap_line::e1 -word bitmap_line::e1#0 -word bitmap_line::e1#1 -word bitmap_line::e1#2 -word bitmap_line::e1#3 -word bitmap_line::e1#4 -word bitmap_line::e1#5 -word bitmap_line::e1#6 -word bitmap_line::sx -word bitmap_line::sx#0 -word bitmap_line::sx#1 -word bitmap_line::sx#10 -word bitmap_line::sx#11 -word bitmap_line::sx#2 -word bitmap_line::sx#3 -word bitmap_line::sx#4 -word bitmap_line::sx#5 -word bitmap_line::sx#6 -word bitmap_line::sx#7 -word bitmap_line::sx#8 -word bitmap_line::sx#9 -word bitmap_line::sy -word bitmap_line::sy#0 -word bitmap_line::sy#1 -word bitmap_line::sy#10 -word bitmap_line::sy#2 -word bitmap_line::sy#3 -word bitmap_line::sy#4 -word bitmap_line::sy#5 -word bitmap_line::sy#6 -word bitmap_line::sy#7 -word bitmap_line::sy#8 -word bitmap_line::sy#9 -word bitmap_line::x -word bitmap_line::x#0 -word bitmap_line::x#1 -word bitmap_line::x#10 -word bitmap_line::x#11 -word bitmap_line::x#12 -word bitmap_line::x#13 -word bitmap_line::x#14 -word bitmap_line::x#15 -word bitmap_line::x#16 -word bitmap_line::x#17 -word bitmap_line::x#18 -word bitmap_line::x#19 -word bitmap_line::x#2 -word bitmap_line::x#3 -word bitmap_line::x#4 -word bitmap_line::x#5 -word bitmap_line::x#6 -word bitmap_line::x#7 -word bitmap_line::x#8 -word bitmap_line::x#9 -word bitmap_line::x1 -word bitmap_line::x1#0 -word bitmap_line::x1#1 -word bitmap_line::x1#2 -word bitmap_line::x1#3 -word bitmap_line::x1#4 -word bitmap_line::x2 -word bitmap_line::x2#0 -word bitmap_line::x2#1 -word bitmap_line::x2#10 -word bitmap_line::x2#11 -word bitmap_line::x2#2 -word bitmap_line::x2#3 -word bitmap_line::x2#4 -word bitmap_line::x2#5 -word bitmap_line::x2#6 -word bitmap_line::x2#7 -word bitmap_line::x2#8 -word bitmap_line::x2#9 -word bitmap_line::y -word bitmap_line::y#0 -word bitmap_line::y#1 -word bitmap_line::y#10 -word bitmap_line::y#11 -word bitmap_line::y#12 -word bitmap_line::y#13 -word bitmap_line::y#14 -word bitmap_line::y#15 -word bitmap_line::y#16 -word bitmap_line::y#17 -word bitmap_line::y#18 -word bitmap_line::y#19 -word bitmap_line::y#2 -word bitmap_line::y#3 -word bitmap_line::y#4 -word bitmap_line::y#5 -word bitmap_line::y#6 -word bitmap_line::y#7 -word bitmap_line::y#8 -word bitmap_line::y#9 -word bitmap_line::y1 -word bitmap_line::y1#0 -word bitmap_line::y1#1 -word bitmap_line::y1#2 -word bitmap_line::y1#3 -word bitmap_line::y1#4 -word bitmap_line::y1#5 -word bitmap_line::y2 -word bitmap_line::y2#0 -word bitmap_line::y2#1 -word bitmap_line::y2#10 -word bitmap_line::y2#11 -word bitmap_line::y2#2 -word bitmap_line::y2#3 -word bitmap_line::y2#4 -word bitmap_line::y2#5 -word bitmap_line::y2#6 -word bitmap_line::y2#7 -word bitmap_line::y2#8 -word bitmap_line::y2#9 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$0 -number~ bitmap_plot::$1 -byte~ bitmap_plot::$2 -byte* bitmap_plot::plotter -byte* bitmap_plot::plotter#0 -byte* bitmap_plot::plotter#1 -word bitmap_plot::x -word bitmap_plot::x#0 -word bitmap_plot::x#1 -word bitmap_plot::x#2 -word bitmap_plot::x#3 -word bitmap_plot::x#4 -byte bitmap_plot::y -byte bitmap_plot::y#0 -byte bitmap_plot::y#1 -byte bitmap_plot::y#2 -byte bitmap_plot::y#3 -byte bitmap_plot::y#4 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -byte* bitmap_screen#0 -byte* bitmap_screen#1 -byte* bitmap_screen#10 -byte* bitmap_screen#11 -byte* bitmap_screen#12 -byte* bitmap_screen#13 -byte* bitmap_screen#14 -byte* bitmap_screen#15 -byte* bitmap_screen#16 -byte* bitmap_screen#17 -byte* bitmap_screen#18 -byte* bitmap_screen#19 -byte* bitmap_screen#2 -byte* bitmap_screen#20 -byte* bitmap_screen#21 -byte* bitmap_screen#22 -byte* bitmap_screen#23 -byte* bitmap_screen#24 -byte* bitmap_screen#25 -byte* bitmap_screen#3 -byte* bitmap_screen#4 -byte* bitmap_screen#5 -byte* bitmap_screen#6 -byte* bitmap_screen#7 -byte* bitmap_screen#8 -byte* bitmap_screen#9 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 +number abs_u16::$1 +unsigned int abs_u16::$2 +bool abs_u16::$3 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 +unsigned int abs_u16::return#1 +unsigned int abs_u16::return#2 +unsigned int abs_u16::return#3 +unsigned int abs_u16::return#4 +unsigned int abs_u16::return#5 +unsigned int abs_u16::return#6 +unsigned int abs_u16::return#7 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 +unsigned int abs_u16::w#1 +unsigned int abs_u16::w#2 +unsigned int abs_u16::w#3 +unsigned int abs_u16::w#4 +void bitmap_clear(char bgcol , char fgcol) +number bitmap_clear::$0 +char bitmap_clear::bgcol +char bitmap_clear::bgcol#0 +char bitmap_clear::bgcol#1 +char bitmap_clear::col +char bitmap_clear::col#0 +char bitmap_clear::fgcol +char bitmap_clear::fgcol#0 +char bitmap_clear::fgcol#1 +char *bitmap_gfx +char *bitmap_gfx#0 +char *bitmap_gfx#1 +char *bitmap_gfx#10 +char *bitmap_gfx#11 +char *bitmap_gfx#12 +char *bitmap_gfx#13 +char *bitmap_gfx#14 +char *bitmap_gfx#15 +char *bitmap_gfx#16 +char *bitmap_gfx#17 +char *bitmap_gfx#18 +char *bitmap_gfx#19 +char *bitmap_gfx#2 +char *bitmap_gfx#20 +char *bitmap_gfx#21 +char *bitmap_gfx#22 +char *bitmap_gfx#23 +char *bitmap_gfx#24 +char *bitmap_gfx#25 +char *bitmap_gfx#26 +char *bitmap_gfx#3 +char *bitmap_gfx#4 +char *bitmap_gfx#5 +char *bitmap_gfx#6 +char *bitmap_gfx#7 +char *bitmap_gfx#8 +char *bitmap_gfx#9 +void bitmap_init(char *gfx , char *screen) +bool bitmap_init::$0 +bool bitmap_init::$1 +char *bitmap_init::$10 +bool bitmap_init::$11 +bool bitmap_init::$2 +number bitmap_init::$3 +char bitmap_init::$4 +number bitmap_init::$5 +char bitmap_init::$6 +number bitmap_init::$7 +bool bitmap_init::$8 +bool bitmap_init::$9 +char bitmap_init::bits +char bitmap_init::bits#0 +char bitmap_init::bits#1 +char bitmap_init::bits#2 +char bitmap_init::bits#3 +char bitmap_init::bits#4 +char *bitmap_init::gfx +char *bitmap_init::gfx#0 +char *bitmap_init::gfx#1 +char *bitmap_init::gfx#2 +char *bitmap_init::gfx#3 +char *bitmap_init::gfx#4 +char *bitmap_init::gfx#5 +char *bitmap_init::screen +char *bitmap_init::screen#0 +char *bitmap_init::screen#1 +char bitmap_init::x +char bitmap_init::x#0 +char bitmap_init::x#1 +char bitmap_init::x#2 +char bitmap_init::x#3 +char bitmap_init::x#4 +char bitmap_init::y +char bitmap_init::y#0 +char bitmap_init::y#1 +char bitmap_init::y#2 +char bitmap_init::y#3 +char bitmap_init::y#4 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#0 +char *bitmap_init::yoffs#1 +char *bitmap_init::yoffs#2 +char *bitmap_init::yoffs#3 +char *bitmap_init::yoffs#4 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::$0 +unsigned int bitmap_line::$10 +bool bitmap_line::$12 +bool bitmap_line::$17 +bool bitmap_line::$18 +bool bitmap_line::$19 +unsigned int bitmap_line::$2 +bool bitmap_line::$22 +bool bitmap_line::$23 +bool bitmap_line::$24 +bool bitmap_line::$4 +bool bitmap_line::$5 +bool bitmap_line::$6 +bool bitmap_line::$7 +unsigned int bitmap_line::$8 +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 +unsigned int bitmap_line::dx#1 +unsigned int bitmap_line::dx#10 +unsigned int bitmap_line::dx#11 +unsigned int bitmap_line::dx#12 +unsigned int bitmap_line::dx#13 +unsigned int bitmap_line::dx#14 +unsigned int bitmap_line::dx#2 +unsigned int bitmap_line::dx#3 +unsigned int bitmap_line::dx#4 +unsigned int bitmap_line::dx#5 +unsigned int bitmap_line::dx#6 +unsigned int bitmap_line::dx#7 +unsigned int bitmap_line::dx#8 +unsigned int bitmap_line::dx#9 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 +unsigned int bitmap_line::dy#1 +unsigned int bitmap_line::dy#10 +unsigned int bitmap_line::dy#11 +unsigned int bitmap_line::dy#12 +unsigned int bitmap_line::dy#13 +unsigned int bitmap_line::dy#2 +unsigned int bitmap_line::dy#3 +unsigned int bitmap_line::dy#4 +unsigned int bitmap_line::dy#5 +unsigned int bitmap_line::dy#6 +unsigned int bitmap_line::dy#7 +unsigned int bitmap_line::dy#8 +unsigned int bitmap_line::dy#9 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 +unsigned int bitmap_line::e#1 +unsigned int bitmap_line::e#2 +unsigned int bitmap_line::e#3 +unsigned int bitmap_line::e#4 +unsigned int bitmap_line::e#5 +unsigned int bitmap_line::e#6 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 +unsigned int bitmap_line::e1#1 +unsigned int bitmap_line::e1#2 +unsigned int bitmap_line::e1#3 +unsigned int bitmap_line::e1#4 +unsigned int bitmap_line::e1#5 +unsigned int bitmap_line::e1#6 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 +unsigned int bitmap_line::sx#1 +unsigned int bitmap_line::sx#10 +unsigned int bitmap_line::sx#11 +unsigned int bitmap_line::sx#2 +unsigned int bitmap_line::sx#3 +unsigned int bitmap_line::sx#4 +unsigned int bitmap_line::sx#5 +unsigned int bitmap_line::sx#6 +unsigned int bitmap_line::sx#7 +unsigned int bitmap_line::sx#8 +unsigned int bitmap_line::sx#9 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 +unsigned int bitmap_line::sy#1 +unsigned int bitmap_line::sy#10 +unsigned int bitmap_line::sy#2 +unsigned int bitmap_line::sy#3 +unsigned int bitmap_line::sy#4 +unsigned int bitmap_line::sy#5 +unsigned int bitmap_line::sy#6 +unsigned int bitmap_line::sy#7 +unsigned int bitmap_line::sy#8 +unsigned int bitmap_line::sy#9 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#0 +unsigned int bitmap_line::x#1 +unsigned int bitmap_line::x#10 +unsigned int bitmap_line::x#11 +unsigned int bitmap_line::x#12 +unsigned int bitmap_line::x#13 +unsigned int bitmap_line::x#14 +unsigned int bitmap_line::x#15 +unsigned int bitmap_line::x#16 +unsigned int bitmap_line::x#17 +unsigned int bitmap_line::x#18 +unsigned int bitmap_line::x#19 +unsigned int bitmap_line::x#2 +unsigned int bitmap_line::x#3 +unsigned int bitmap_line::x#4 +unsigned int bitmap_line::x#5 +unsigned int bitmap_line::x#6 +unsigned int bitmap_line::x#7 +unsigned int bitmap_line::x#8 +unsigned int bitmap_line::x#9 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 +unsigned int bitmap_line::x1#1 +unsigned int bitmap_line::x1#2 +unsigned int bitmap_line::x1#3 +unsigned int bitmap_line::x1#4 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 +unsigned int bitmap_line::x2#1 +unsigned int bitmap_line::x2#10 +unsigned int bitmap_line::x2#11 +unsigned int bitmap_line::x2#2 +unsigned int bitmap_line::x2#3 +unsigned int bitmap_line::x2#4 +unsigned int bitmap_line::x2#5 +unsigned int bitmap_line::x2#6 +unsigned int bitmap_line::x2#7 +unsigned int bitmap_line::x2#8 +unsigned int bitmap_line::x2#9 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#0 +unsigned int bitmap_line::y#1 +unsigned int bitmap_line::y#10 +unsigned int bitmap_line::y#11 +unsigned int bitmap_line::y#12 +unsigned int bitmap_line::y#13 +unsigned int bitmap_line::y#14 +unsigned int bitmap_line::y#15 +unsigned int bitmap_line::y#16 +unsigned int bitmap_line::y#17 +unsigned int bitmap_line::y#18 +unsigned int bitmap_line::y#19 +unsigned int bitmap_line::y#2 +unsigned int bitmap_line::y#3 +unsigned int bitmap_line::y#4 +unsigned int bitmap_line::y#5 +unsigned int bitmap_line::y#6 +unsigned int bitmap_line::y#7 +unsigned int bitmap_line::y#8 +unsigned int bitmap_line::y#9 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 +unsigned int bitmap_line::y1#1 +unsigned int bitmap_line::y1#2 +unsigned int bitmap_line::y1#3 +unsigned int bitmap_line::y1#4 +unsigned int bitmap_line::y1#5 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 +unsigned int bitmap_line::y2#1 +unsigned int bitmap_line::y2#10 +unsigned int bitmap_line::y2#11 +unsigned int bitmap_line::y2#2 +unsigned int bitmap_line::y2#3 +unsigned int bitmap_line::y2#4 +unsigned int bitmap_line::y2#5 +unsigned int bitmap_line::y2#6 +unsigned int bitmap_line::y2#7 +unsigned int bitmap_line::y2#8 +unsigned int bitmap_line::y2#9 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$0 +number bitmap_plot::$1 +char bitmap_plot::$2 +char *bitmap_plot::plotter +char *bitmap_plot::plotter#0 +char *bitmap_plot::plotter#1 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 +unsigned int bitmap_plot::x#1 +unsigned int bitmap_plot::x#2 +unsigned int bitmap_plot::x#3 +unsigned int bitmap_plot::x#4 +char bitmap_plot::y +char bitmap_plot::y#0 +char bitmap_plot::y#1 +char bitmap_plot::y#2 +char bitmap_plot::y#3 +char bitmap_plot::y#4 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +char *bitmap_screen#0 +char *bitmap_screen#1 +char *bitmap_screen#10 +char *bitmap_screen#11 +char *bitmap_screen#12 +char *bitmap_screen#13 +char *bitmap_screen#14 +char *bitmap_screen#15 +char *bitmap_screen#16 +char *bitmap_screen#17 +char *bitmap_screen#18 +char *bitmap_screen#19 +char *bitmap_screen#2 +char *bitmap_screen#20 +char *bitmap_screen#21 +char *bitmap_screen#22 +char *bitmap_screen#23 +char *bitmap_screen#24 +char *bitmap_screen#25 +char *bitmap_screen#3 +char *bitmap_screen#4 +char *bitmap_screen#5 +char *bitmap_screen#6 +char *bitmap_screen#7 +char *bitmap_screen#8 +char *bitmap_screen#9 void init_screen() -bool~ init_screen::$0 -byte* init_screen::c -byte* init_screen::c#0 -byte* init_screen::c#1 -byte* init_screen::c#2 -byte* init_screen::c#3 +bool init_screen::$0 +char *init_screen::c +char *init_screen::c#0 +char *init_screen::c#1 +char *init_screen::c#2 +char *init_screen::c#3 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -byte next -byte next#0 -byte next#1 -byte next#10 -byte next#11 -byte next#12 -byte next#13 -byte next#14 -byte next#2 -byte next#3 -byte next#4 -byte next#5 -byte next#6 -byte next#7 -byte next#8 -byte next#9 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 -number~ sgn_u16::$1 -bool~ sgn_u16::$2 -word sgn_u16::return -word sgn_u16::return#0 -word sgn_u16::return#1 -word sgn_u16::return#2 -word sgn_u16::return#3 -word sgn_u16::return#4 -word sgn_u16::return#5 -word sgn_u16::return#6 -word sgn_u16::return#7 -word sgn_u16::w -word sgn_u16::w#0 -word sgn_u16::w#1 -word sgn_u16::w#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +char next +char next#0 +char next#1 +char next#10 +char next#11 +char next#12 +char next#13 +char next#14 +char next#2 +char next#3 +char next#4 +char next#5 +char next#6 +char next#7 +char next#8 +char next#9 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 +number sgn_u16::$1 +bool sgn_u16::$2 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 +unsigned int sgn_u16::return#1 +unsigned int sgn_u16::return#2 +unsigned int sgn_u16::return#3 +unsigned int sgn_u16::return#4 +unsigned int sgn_u16::return#5 +unsigned int sgn_u16::return#6 +unsigned int sgn_u16::return#7 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 +unsigned int sgn_u16::w#1 +unsigned int sgn_u16::w#2 Adding number conversion cast (unumber) 1 in bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 Adding number conversion cast (unumber) 0 in bitmap_init::$0 = bitmap_init::bits#1 == 0 @@ -1018,20 +1018,20 @@ Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0 Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&$3fff/$400 Adding number conversion cast (unumber) 0 in bitmap_line::x1#0 = 0 Adding number conversion cast (unumber) 0 in bitmap_line::y1#0 = 0 Adding number conversion cast (unumber) $64 in bitmap_line::y2#0 = $64 Adding number conversion cast (unumber) $400 in init_screen::$0 = init_screen::c#2 != SCREEN+$400 Adding number conversion cast (unumber) $14 in *init_screen::c#3 = $14 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&(unumber)$3fff/$400 -Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(word)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unsigned int)BITMAP&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast bitmap_init::bits#2 = (unumber)$80 Inlining cast memset::c#1 = (unumber)0 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast sgn_u16::return#2 = (unumber)-1 Inlining cast sgn_u16::return#3 = (unumber)1 Inlining cast *BORDER_COLOR = (unumber)0 @@ -1042,12 +1042,12 @@ Inlining cast bitmap_line::y1#0 = (unumber)0 Inlining cast bitmap_line::y2#0 = (unumber)$64 Inlining cast *init_screen::c#3 = (unumber)$14 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $80 @@ -1082,46 +1082,46 @@ Simplifying constant integer cast $64 Simplifying constant integer cast $400 Simplifying constant integer cast $14 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $fff8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) -1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $14 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $fff8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) -1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $14 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 -Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 -Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 -Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 +Inferred type updated to char in bitmap_init::$3 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 +Inferred type updated to char in bitmap_init::$7 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 +Inferred type updated to unsigned int in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 +Inferred type updated to char in abs_u16::$1 = abs_u16::$0 & $80 +Inferred type updated to char in sgn_u16::$1 = sgn_u16::$0 & $80 Inversing boolean not [9] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [8] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [29] bitmap_init::$9 = bitmap_init::$7 != 7 from [28] bitmap_init::$8 = bitmap_init::$7 == 7 Inversing boolean not [117] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [116] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 @@ -1304,17 +1304,17 @@ Constant bitmap_line::x1#0 = 0 Constant bitmap_line::y1#0 = 0 Constant bitmap_line::y2#0 = $64 Constant init_screen::c#0 = SCREEN -Constant bitmap_screen#16 = (byte*) 0 -Constant bitmap_gfx#17 = (byte*) 0 +Constant bitmap_screen#16 = (char *) 0 +Constant bitmap_gfx#17 = (char *) 0 Constant next#11 = 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_gfx#0 = bitmap_init::gfx#0 Constant bitmap_screen#0 = bitmap_init::screen#0 Constant bitmap_plot::x#0 = bitmap_line::x1#0 -Constant bitmap_plot::y#0 = (byte)bitmap_line::y1#0 +Constant bitmap_plot::y#0 = (char)bitmap_line::y1#0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)bitmap_screen#0 -Constant memset::str#1 = (void*)bitmap_gfx#0 +Constant memset::str#0 = (void *)bitmap_screen#0 +Constant memset::str#1 = (void *)bitmap_gfx#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [164] if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -1322,7 +1322,7 @@ Resolved ranged next value [11] bitmap_init::x#1 = ++ bitmap_init::x#2 to ++ Resolved ranged comparison value [13] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to 0 Resolved ranged next value [27] bitmap_init::y#1 = ++ bitmap_init::y#2 to ++ Resolved ranged comparison value [29] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to 0 -Simplifying constant evaluating to zero (byte)bitmap_line::y1#0 in +Simplifying constant evaluating to zero (char)bitmap_line::y1#0 in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero bitmap_clear::$0 in [34] bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#0 Simplifying expression containing zero bitmap_line::x2#0 in [55] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 @@ -1353,8 +1353,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bitmap_init::$7 = bitmap_init::$3 Alias bitmap_clear::col#0 = bitmap_clear::$0 @@ -1372,10 +1372,10 @@ Constant sgn_u16::w#1 = bitmap_line::y2#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::c#0 = bitmap_clear::col#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [25] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [79] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [81] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [79] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [81] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [49] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [50] bitmap_line::e#0 = bitmap_line::dx#0 / 2 @@ -1399,8 +1399,8 @@ Inlining constant with var siblings sgn_u16::w#1 Inlining constant with var siblings init_screen::c#0 Inlining constant with var siblings next#11 Constant inlined bitmap_init::screen#0 = SCREEN -Constant inlined memset::str#1 = (void*)BITMAP -Constant inlined memset::str#0 = (void*)SCREEN +Constant inlined memset::str#1 = (void *)BITMAP +Constant inlined memset::str#0 = (void *)SCREEN Constant inlined bitmap_init::gfx#0 = BITMAP Constant inlined sgn_u16::w#1 = bitmap_line::y2#0 Constant inlined next#11 = 0 @@ -1422,14 +1422,14 @@ Constant inlined bitmap_init::x#0 = 0 Constant inlined init_screen::c#0 = SCREEN Constant inlined memset::c#1 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1) Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2) @@ -1550,27 +1550,27 @@ main: scope:[main] from [0] *BORDER_COLOR = 0 [1] *BG_COLOR = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [4] call bitmap_init + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [4] call bitmap_init to:main::@2 main::@2: scope:[main] from main [5] phi() - [6] call bitmap_clear + [6] call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 [7] phi() - [8] call init_screen + [8] call init_screen to:main::@1 main::@1: scope:[main] from main::@3 main::@4 [9] next#5 = phi( main::@3/0, main::@4/next#0 ) [10] bitmap_line::x2#0 = next#5 - [11] call bitmap_line + [11] call bitmap_line to:main::@4 main::@4: scope:[main] from main::@1 [12] next#0 = ++ next#5 to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [13] phi() to:bitmap_init::@1 @@ -1601,7 +1601,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [29] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [31] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -1612,14 +1612,14 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [34] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@2 [35] phi() - [36] call memset + [36] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [37] phi() - [38] call memset + [38] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [39] return @@ -1641,15 +1641,15 @@ init_screen::@2: scope:[init_screen] from init_screen::@1 [45] init_screen::c#1 = ++ init_screen::c#2 to:init_screen::@1 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@1 [46] abs_u16::w#0 = bitmap_line::x2#0 - [47] call abs_u16 + [47] call abs_u16 [48] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [49] bitmap_line::dx#0 = abs_u16::return#0 - [50] call abs_u16 + [50] call abs_u16 [51] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -1661,12 +1661,12 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [55] sgn_u16::w#0 = bitmap_line::x2#0 - [56] call sgn_u16 + [56] call sgn_u16 [57] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [58] bitmap_line::sx#0 = sgn_u16::return#0 - [59] call sgn_u16 + [59] call sgn_u16 [60] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -1681,8 +1681,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [64] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [64] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [65] bitmap_plot::x#1 = bitmap_line::x#13 - [66] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [67] call bitmap_plot + [66] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [67] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [68] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -1702,8 +1702,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [75] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [75] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [76] bitmap_plot::x#2 = bitmap_line::x#6 - [77] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [78] call bitmap_plot + [77] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [78] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [79] return @@ -1716,8 +1716,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [81] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [81] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [82] bitmap_plot::x#3 = bitmap_line::x#7 - [83] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [84] call bitmap_plot + [83] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [84] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [85] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -1735,19 +1735,19 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [92] phi() - [93] call bitmap_plot + [93] call bitmap_plot to:bitmap_line::@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [94] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [94] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [94] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [94] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [95] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [96] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [97] memset::dst#4 = (byte*)memset::str#3 + [96] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [97] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [98] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1761,7 +1761,7 @@ memset::@3: scope:[memset] from memset::@2 [102] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [103] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/bitmap_line::y2#0 ) [104] abs_u16::$0 = byte1 abs_u16::w#2 @@ -1776,7 +1776,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [109] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [110] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/bitmap_line::y2#0 ) [111] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -1791,13 +1791,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [116] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [117] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_line::x1#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [117] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [119] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [120] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [121] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return @@ -1807,132 +1807,132 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot VARIABLE REGISTER WEIGHTS -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 2002.0 -byte~ abs_u16::$1 2002.0 -word abs_u16::return -word abs_u16::return#0 202.0 -word abs_u16::return#1 202.0 -word abs_u16::return#2 2002.0 -word abs_u16::return#4 551.0 -word abs_u16::w -word abs_u16::w#0 202.0 -word abs_u16::w#2 776.0 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 202.0 -byte~ bitmap_init::$5 202.0 -byte~ bitmap_init::$6 202.0 -byte~ bitmap_init::$7 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 101.0 -byte bitmap_init::bits#3 151.5 -byte bitmap_init::bits#4 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 151.5 -byte bitmap_init::x#2 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 151.5 -byte bitmap_init::y#2 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 202.0 -byte* bitmap_init::yoffs#2 63.125 -byte* bitmap_init::yoffs#4 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 800.1842105263158 -word bitmap_line::dy -word bitmap_line::dy#0 868.7714285714285 -word bitmap_line::e -word bitmap_line::e#0 202.0 -word bitmap_line::e#1 13334.666666666666 -word bitmap_line::e#2 20002.0 -word bitmap_line::e#3 4020.6000000000004 -word bitmap_line::e#6 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 202.0 -word bitmap_line::e1#1 13334.666666666666 -word bitmap_line::e1#2 20002.0 -word bitmap_line::e1#3 4020.6000000000004 -word bitmap_line::e1#6 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 693.2068965517242 -word bitmap_line::sy -word bitmap_line::sy#0 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 10001.0 -word bitmap_line::x#12 20002.0 -word bitmap_line::x#13 5714.857142857143 -word bitmap_line::x#15 5714.857142857143 -word bitmap_line::x#6 20103.0 -word bitmap_line::x#7 7500.75 -word bitmap_line::x1 -word bitmap_line::x2 -word bitmap_line::x2#0 340.4666666666667 -word bitmap_line::y -word bitmap_line::y#1 5714.857142857143 -word bitmap_line::y#13 20002.0 -word bitmap_line::y#15 4286.142857142857 -word bitmap_line::y#2 10001.0 -word bitmap_line::y#4 5000.5 -word bitmap_line::y#7 10001.0 -word bitmap_line::y1 -word bitmap_line::y2 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 200002.0 -byte~ bitmap_plot::$2 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 50000.5 -byte* bitmap_plot::plotter#1 150001.5 -word bitmap_plot::x -word bitmap_plot::x#1 10001.0 -word bitmap_plot::x#2 101.0 -word bitmap_plot::x#3 10001.0 -word bitmap_plot::x#4 55026.25 -byte bitmap_plot::y -byte bitmap_plot::y#1 20002.0 -byte bitmap_plot::y#2 202.0 -byte bitmap_plot::y#3 20002.0 -byte bitmap_plot::y#4 220105.0 -byte* bitmap_screen +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // 2002.0 +char abs_u16::$1 // 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // 202.0 +unsigned int abs_u16::return#1 // 202.0 +unsigned int abs_u16::return#2 // 2002.0 +unsigned int abs_u16::return#4 // 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // 202.0 +unsigned int abs_u16::w#2 // 776.0 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // 202.0 +char bitmap_init::$5 // 202.0 +char bitmap_init::$6 // 202.0 +char bitmap_init::$7 // 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // 101.0 +char bitmap_init::bits#3 // 151.5 +char bitmap_init::bits#4 // 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // 151.5 +char bitmap_init::x#2 // 50.5 +char bitmap_init::y +char bitmap_init::y#1 // 151.5 +char bitmap_init::y#2 // 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // 202.0 +char *bitmap_init::yoffs#2 // 63.125 +char *bitmap_init::yoffs#4 // 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // 800.1842105263158 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // 868.7714285714285 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // 202.0 +unsigned int bitmap_line::e#1 // 13334.666666666666 +unsigned int bitmap_line::e#2 // 20002.0 +unsigned int bitmap_line::e#3 // 4020.6000000000004 +unsigned int bitmap_line::e#6 // 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // 202.0 +unsigned int bitmap_line::e1#1 // 13334.666666666666 +unsigned int bitmap_line::e1#2 // 20002.0 +unsigned int bitmap_line::e1#3 // 4020.6000000000004 +unsigned int bitmap_line::e1#6 // 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // 693.2068965517242 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // 10001.0 +unsigned int bitmap_line::x#12 // 20002.0 +unsigned int bitmap_line::x#13 // 5714.857142857143 +unsigned int bitmap_line::x#15 // 5714.857142857143 +unsigned int bitmap_line::x#6 // 20103.0 +unsigned int bitmap_line::x#7 // 7500.75 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // 340.4666666666667 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // 5714.857142857143 +unsigned int bitmap_line::y#13 // 20002.0 +unsigned int bitmap_line::y#15 // 4286.142857142857 +unsigned int bitmap_line::y#2 // 10001.0 +unsigned int bitmap_line::y#4 // 5000.5 +unsigned int bitmap_line::y#7 // 10001.0 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y2 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // 200002.0 +char bitmap_plot::$2 // 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // 50000.5 +char *bitmap_plot::plotter#1 // 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#1 // 10001.0 +unsigned int bitmap_plot::x#2 // 101.0 +unsigned int bitmap_plot::x#3 // 10001.0 +unsigned int bitmap_plot::x#4 // 55026.25 +char bitmap_plot::y +char bitmap_plot::y#1 // 20002.0 +char bitmap_plot::y#2 // 202.0 +char bitmap_plot::y#3 // 20002.0 +char bitmap_plot::y#4 // 220105.0 +char *bitmap_screen void init_screen() -byte* init_screen::c -byte* init_screen::c#1 202.0 -byte* init_screen::c#2 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // 202.0 +char *init_screen::c#2 // 134.66666666666666 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 125.125 -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1368.3333333333335 -byte* memset::dst#4 202.0 -byte* memset::end -byte* memset::end#0 183.66666666666669 -word memset::num -word memset::num#2 101.0 -void* memset::return -void* memset::str -void* memset::str#3 -byte next -byte next#0 22.0 -byte next#5 11.0 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 2002.0 -byte~ sgn_u16::$1 2002.0 -word sgn_u16::return -word sgn_u16::return#0 202.0 -word sgn_u16::return#1 202.0 -word sgn_u16::return#4 50.5 -word sgn_u16::w -word sgn_u16::w#0 202.0 -word sgn_u16::w#2 1102.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 125.125 +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1368.3333333333335 +char *memset::dst#4 // 202.0 +char *memset::end +char *memset::end#0 // 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // 101.0 +void *memset::return +void *memset::str +void *memset::str#3 +char next +char next#0 // 22.0 +char next#5 // 11.0 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // 2002.0 +char sgn_u16::$1 // 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // 202.0 +unsigned int sgn_u16::return#1 // 202.0 +unsigned int sgn_u16::return#4 // 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // 202.0 +unsigned int sgn_u16::w#2 // 1102.0 Initial phi equivalence classes [ next#5 next#0 ] @@ -2064,10 +2064,10 @@ Equivalence Class zp[1]:37 [ bitmap_init::$4 ] has ALU potential. Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] bitmap_line::x2#0 = next#5 [ next#5 bitmap_line::x2#0 ] ( [ next#5 bitmap_line::x2#0 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ next#5 next#0 ] -Statement [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [42] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [44] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y @@ -2103,24 +2103,24 @@ Statement [89] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitma Statement [91] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:11 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [95] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:36 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:38 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:22 [ memset::c#4 ] -Statement [96] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:38 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [97] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [96] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:38 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [97] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [99] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [101] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:22 [ memset::c#4 ] Statement [107] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:11::abs_u16:47 [ next#5 bitmap_line::x2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#5 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:11::abs_u16:50 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { next#5 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [119] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a -Statement [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a +Statement [120] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ next#5 next#0 ] Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] bitmap_line::x2#0 = next#5 [ next#5 bitmap_line::x2#0 ] ( [ next#5 bitmap_line::x2#0 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [23] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [42] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [44] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [46] abs_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 abs_u16::w#0 ] ( bitmap_line:11 [ next#5 bitmap_line::x2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#5 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2154,14 +2154,14 @@ Statement [88] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0 [ bitmap Statement [89] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] ( bitmap_line:11 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [91] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:11 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [95] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:36 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:38 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [96] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:38 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [97] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [96] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:38 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [97] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [99] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [101] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:38 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [107] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:11::abs_u16:47 [ next#5 bitmap_line::x2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#5 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:11::abs_u16:50 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { next#5 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [118] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [119] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a -Statement [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a +Statement [120] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [122] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:11::bitmap_plot:67 [ next#5 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:11::bitmap_plot:78 [ next#5 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:11::bitmap_plot:84 [ next#5 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#5 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:11::bitmap_plot:93 [ next#5 ] { { next#5 = bitmap_line::x2#0 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ next#5 next#0 ] : zp[1]:2 , reg byte x , Potential registers zp[1]:3 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -2324,10 +2324,10 @@ main: { // [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 - // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY - // [4] call bitmap_init + // [4] call bitmap_init // [13] phi from main to bitmap_init [phi:main->bitmap_init] bitmap_init_from_main: jsr bitmap_init @@ -2336,7 +2336,7 @@ main: { jmp __b2 // main::@2 __b2: - // [6] call bitmap_clear + // [6] call bitmap_clear // [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] bitmap_clear_from___b2: jsr bitmap_clear @@ -2345,7 +2345,7 @@ main: { jmp __b3 // main::@3 __b3: - // [8] call init_screen + // [8] call init_screen // [40] phi from main::@3 to init_screen [phi:main::@3->init_screen] init_screen_from___b3: jsr init_screen @@ -2362,7 +2362,7 @@ main: { sta.z bitmap_line.x2 lda #0 sta.z bitmap_line.x2+1 - // [11] call bitmap_line + // [11] call bitmap_line jsr bitmap_line jmp __b4 // main::@4 @@ -2376,6 +2376,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $10 .label yoffs = 2 @@ -2458,7 +2459,7 @@ bitmap_init: { jmp __b5 // bitmap_init::@5 __b5: - // [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -2488,14 +2489,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 - // [36] call memset + // [36] call memset // [94] phi from bitmap_clear to memset [phi:bitmap_clear->memset] memset_from_bitmap_clear: // [94] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [94] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [94] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -2511,12 +2513,12 @@ bitmap_clear: { jmp __b1 // bitmap_clear::@1 __b1: - // [38] call memset + // [38] call memset // [94] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] memset_from___b1: // [94] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [94] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [94] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -2576,7 +2578,7 @@ init_screen: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp($e) x2) +// void bitmap_line(unsigned int x1, unsigned int y1, __zp($e) unsigned int x2, unsigned int y2) bitmap_line: { .const x1 = 0 .const y1 = 0 @@ -2595,7 +2597,7 @@ bitmap_line: { sta.z abs_u16.w lda.z x2+1 sta.z abs_u16.w+1 - // [47] call abs_u16 + // [47] call abs_u16 // [103] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] abs_u16_from_bitmap_line: // [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy @@ -2609,7 +2611,7 @@ bitmap_line: { sta.z dx lda.z abs_u16.return+1 sta.z dx+1 - // [50] call abs_u16 + // [50] call abs_u16 // [103] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] abs_u16_from___b12: // [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1 @@ -2642,7 +2644,7 @@ bitmap_line: { sta.z sgn_u16.w lda.z x2+1 sta.z sgn_u16.w+1 - // [56] call sgn_u16 + // [56] call sgn_u16 // [110] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] sgn_u16_from___b1: // [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy @@ -2656,7 +2658,7 @@ bitmap_line: { sta.z sx lda.z sgn_u16.return+1 sta.z sx+1 - // [59] call sgn_u16 + // [59] call sgn_u16 // [110] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] sgn_u16_from___b14: // [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1 @@ -2713,9 +2715,9 @@ bitmap_line: { // bitmap_line::@6 __b6: // [65] bitmap_plot::x#1 = bitmap_line::x#13 - // [66] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 + // [66] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 ldx.z y - // [67] call bitmap_plot + // [67] call bitmap_plot // [117] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] bitmap_plot_from___b6: // [117] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy @@ -2792,9 +2794,9 @@ bitmap_line: { // bitmap_line::@3 __b3: // [76] bitmap_plot::x#2 = bitmap_line::x#6 - // [77] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [77] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [78] call bitmap_plot + // [78] call bitmap_plot // [117] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] bitmap_plot_from___b3: // [117] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy @@ -2838,9 +2840,9 @@ bitmap_line: { // bitmap_line::@9 __b9: // [82] bitmap_plot::x#3 = bitmap_line::x#7 - // [83] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [83] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [84] call bitmap_plot + // [84] call bitmap_plot // [117] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] bitmap_plot_from___b9: // [117] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy @@ -2914,7 +2916,7 @@ bitmap_line: { jmp __b4 // bitmap_line::@4 __b4: - // [93] call bitmap_plot + // [93] call bitmap_plot // [117] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] bitmap_plot_from___b4: // [117] phi bitmap_plot::x#4 = bitmap_line::x1#0 [phi:bitmap_line::@4->bitmap_plot#0] -- vwuz1=vwuc1 @@ -2929,7 +2931,7 @@ bitmap_line: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(8) str, byte register(X) c, word zp(6) num) +// void * memset(__zp(8) void *str, __register(X) char c, __zp(6) unsigned int num) memset: { .label end = 6 .label dst = 8 @@ -2944,7 +2946,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [96] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [96] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -2952,7 +2954,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [97] memset::dst#4 = (byte*)memset::str#3 + // [97] memset::dst#4 = (char *)memset::str#3 // [98] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2987,7 +2989,7 @@ memset: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($a) w) +// __zp($a) unsigned int abs_u16(__zp($a) unsigned int w) abs_u16: { .label w = $a .label return = $a @@ -3022,7 +3024,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($15) w) +// __zp($c) unsigned int sgn_u16(__zp($15) unsigned int w) sgn_u16: { .label w = $15 .label return = $c @@ -3061,7 +3063,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(8) x, byte register(X) y) +// void bitmap_plot(__zp(8) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $17 .label plotter = $15 @@ -3078,7 +3080,7 @@ bitmap_plot: { lda.z x+1 and #>$fff8 sta.z __1+1 - // [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [120] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 @@ -3256,152 +3258,152 @@ Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [190] beq __b4 to bne +Fixing long branch [192] beq __b4 to bne FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BITMAP = (byte*) 8192 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2002.0 -byte~ abs_u16::$1 reg byte a 2002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:10 202.0 -word abs_u16::return#1 return zp[2]:10 202.0 -word abs_u16::return#2 return zp[2]:10 2002.0 -word abs_u16::return#4 return zp[2]:10 551.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:10 202.0 -word abs_u16::w#2 w zp[2]:10 776.0 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:16 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:2 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:2 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:2 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:17 800.1842105263158 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:10 868.7714285714285 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:6 202.0 -word bitmap_line::e#1 e zp[2]:6 13334.666666666666 -word bitmap_line::e#2 e zp[2]:6 20002.0 -word bitmap_line::e#3 e zp[2]:6 4020.6000000000004 -word bitmap_line::e#6 e zp[2]:6 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:4 202.0 -word bitmap_line::e1#1 e1 zp[2]:4 13334.666666666666 -word bitmap_line::e1#2 e1 zp[2]:4 20002.0 -word bitmap_line::e1#3 e1 zp[2]:4 4020.6000000000004 -word bitmap_line::e1#6 e1 zp[2]:4 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:19 693.2068965517242 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:12 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:8 10001.0 -word bitmap_line::x#12 x zp[2]:8 20002.0 -word bitmap_line::x#13 x zp[2]:8 5714.857142857143 -word bitmap_line::x#15 x zp[2]:8 5714.857142857143 -word bitmap_line::x#6 x zp[2]:8 20103.0 -word bitmap_line::x#7 x zp[2]:8 7500.75 -word bitmap_line::x1 -constant word bitmap_line::x1#0 x1 = 0 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:14 340.4666666666667 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:2 5714.857142857143 -word bitmap_line::y#13 y zp[2]:2 20002.0 -word bitmap_line::y#15 y zp[2]:2 4286.142857142857 -word bitmap_line::y#2 y zp[2]:2 10001.0 -word bitmap_line::y#4 y zp[2]:2 5000.5 -word bitmap_line::y#7 y zp[2]:2 10001.0 -word bitmap_line::y1 -constant word bitmap_line::y1#0 y1 = 0 -word bitmap_line::y2 -constant word bitmap_line::y2#0 y2 = $64 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:23 200002.0 -byte~ bitmap_plot::$2 reg byte x 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:21 50000.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:21 150001.5 -word bitmap_plot::x -word bitmap_plot::x#1 x zp[2]:8 10001.0 -word bitmap_plot::x#2 x zp[2]:8 101.0 -word bitmap_plot::x#3 x zp[2]:8 10001.0 -word bitmap_plot::x#4 x zp[2]:8 55026.25 -byte bitmap_plot::y -byte bitmap_plot::y#1 reg byte x 20002.0 -byte bitmap_plot::y#2 reg byte x 202.0 -byte bitmap_plot::y#3 reg byte x 20002.0 -byte bitmap_plot::y#4 reg byte x 220105.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BITMAP = (char *) 8192 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2002.0 +char abs_u16::$1 // reg byte a 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:10 202.0 +unsigned int abs_u16::return#1 // return zp[2]:10 202.0 +unsigned int abs_u16::return#2 // return zp[2]:10 2002.0 +unsigned int abs_u16::return#4 // return zp[2]:10 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:10 202.0 +unsigned int abs_u16::w#2 // w zp[2]:10 776.0 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:16 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:2 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:2 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:2 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:17 800.1842105263158 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:10 868.7714285714285 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:6 202.0 +unsigned int bitmap_line::e#1 // e zp[2]:6 13334.666666666666 +unsigned int bitmap_line::e#2 // e zp[2]:6 20002.0 +unsigned int bitmap_line::e#3 // e zp[2]:6 4020.6000000000004 +unsigned int bitmap_line::e#6 // e zp[2]:6 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:4 202.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:4 13334.666666666666 +unsigned int bitmap_line::e1#2 // e1 zp[2]:4 20002.0 +unsigned int bitmap_line::e1#3 // e1 zp[2]:4 4020.6000000000004 +unsigned int bitmap_line::e1#6 // e1 zp[2]:4 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:19 693.2068965517242 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:12 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:8 10001.0 +unsigned int bitmap_line::x#12 // x zp[2]:8 20002.0 +unsigned int bitmap_line::x#13 // x zp[2]:8 5714.857142857143 +unsigned int bitmap_line::x#15 // x zp[2]:8 5714.857142857143 +unsigned int bitmap_line::x#6 // x zp[2]:8 20103.0 +unsigned int bitmap_line::x#7 // x zp[2]:8 7500.75 +unsigned int bitmap_line::x1 +__constant unsigned int bitmap_line::x1#0 = 0 // x1 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:14 340.4666666666667 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:2 5714.857142857143 +unsigned int bitmap_line::y#13 // y zp[2]:2 20002.0 +unsigned int bitmap_line::y#15 // y zp[2]:2 4286.142857142857 +unsigned int bitmap_line::y#2 // y zp[2]:2 10001.0 +unsigned int bitmap_line::y#4 // y zp[2]:2 5000.5 +unsigned int bitmap_line::y#7 // y zp[2]:2 10001.0 +unsigned int bitmap_line::y1 +__constant unsigned int bitmap_line::y1#0 = 0 // y1 +unsigned int bitmap_line::y2 +__constant unsigned int bitmap_line::y2#0 = $64 // y2 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:23 200002.0 +char bitmap_plot::$2 // reg byte x 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:21 50000.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:21 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#1 // x zp[2]:8 10001.0 +unsigned int bitmap_plot::x#2 // x zp[2]:8 101.0 +unsigned int bitmap_plot::x#3 // x zp[2]:8 10001.0 +unsigned int bitmap_plot::x#4 // x zp[2]:8 55026.25 +char bitmap_plot::y +char bitmap_plot::y#1 // reg byte x 20002.0 +char bitmap_plot::y#2 // reg byte x 202.0 +char bitmap_plot::y#3 // reg byte x 20002.0 +char bitmap_plot::y#4 // reg byte x 220105.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void init_screen() -byte* init_screen::c -byte* init_screen::c#1 c zp[2]:2 202.0 -byte* init_screen::c#2 c zp[2]:2 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // c zp[2]:2 202.0 +char *init_screen::c#2 // c zp[2]:2 134.66666666666666 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2002.0 -byte* memset::dst#2 dst zp[2]:8 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:8 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:6 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:6 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:8 -byte next -byte next#0 next zp[1]:16 22.0 -byte next#5 next zp[1]:16 11.0 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2002.0 -byte~ sgn_u16::$1 reg byte a 2002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:12 202.0 -word sgn_u16::return#1 return zp[2]:12 202.0 -word sgn_u16::return#4 return zp[2]:12 50.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:21 202.0 -word sgn_u16::w#2 w zp[2]:21 1102.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2002.0 +char *memset::dst#2 // dst zp[2]:8 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:8 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:6 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:6 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:8 +char next +char next#0 // next zp[1]:16 22.0 +char next#5 // next zp[1]:16 11.0 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2002.0 +char sgn_u16::$1 // reg byte a 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:12 202.0 +unsigned int sgn_u16::return#1 // return zp[2]:12 202.0 +unsigned int sgn_u16::return#4 // return zp[2]:12 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:21 202.0 +unsigned int sgn_u16::w#2 // w zp[2]:21 1102.0 reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] @@ -3488,23 +3490,23 @@ main: { lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // *VICII_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400)) - // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // bitmap_init(BITMAP, SCREEN) - // [4] call bitmap_init + // [4] call bitmap_init // [13] phi from main to bitmap_init [phi:main->bitmap_init] jsr bitmap_init // [5] phi from main to main::@2 [phi:main->main::@2] // main::@2 // bitmap_clear(BLACK, WHITE) - // [6] call bitmap_clear + // [6] call bitmap_clear // [35] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] jsr bitmap_clear // [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // init_screen() - // [8] call init_screen + // [8] call init_screen // [40] phi from main::@3 to init_screen [phi:main::@3->init_screen] jsr init_screen // [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1] @@ -3519,7 +3521,7 @@ main: { sta.z bitmap_line.x2 lda #0 sta.z bitmap_line.x2+1 - // [11] call bitmap_line + // [11] call bitmap_line jsr bitmap_line // main::@4 // next++; @@ -3531,6 +3533,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $10 .label yoffs = 2 @@ -3608,7 +3611,7 @@ bitmap_init: { bne __b4 // bitmap_init::@5 // yoffs = yoffs + 40*8 - // [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [30] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -3635,14 +3638,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) - // [36] call memset + // [36] call memset // [94] phi from bitmap_clear to memset [phi:bitmap_clear->memset] // [94] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [94] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [94] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -3656,11 +3660,11 @@ bitmap_clear: { // [37] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] // bitmap_clear::@1 // memset(bitmap_gfx, 0, 8000uw) - // [38] call memset + // [38] call memset // [94] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] // [94] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [94] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [94] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -3718,7 +3722,7 @@ init_screen: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp($e) x2) +// void bitmap_line(unsigned int x1, unsigned int y1, __zp($e) unsigned int x2, unsigned int y2) bitmap_line: { .const x1 = 0 .const y1 = 0 @@ -3738,7 +3742,7 @@ bitmap_line: { sta.z abs_u16.w lda.z x2+1 sta.z abs_u16.w+1 - // [47] call abs_u16 + // [47] call abs_u16 // [103] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] // [103] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy jsr abs_u16 @@ -3751,7 +3755,7 @@ bitmap_line: { lda.z abs_u16.return+1 sta.z dx+1 // unsigned int dy = abs_u16(y2-y1) - // [50] call abs_u16 + // [50] call abs_u16 // [103] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] // [103] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1 lda #sgn_u16] // [110] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy jsr sgn_u16 @@ -3796,7 +3800,7 @@ bitmap_line: { lda.z sgn_u16.return+1 sta.z sx+1 // unsigned int sy = sgn_u16(y2-y1) - // [59] call sgn_u16 + // [59] call sgn_u16 // [110] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] // [110] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1 lda #bitmap_plot] // [117] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy // [117] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy @@ -3922,9 +3926,9 @@ bitmap_line: { __b3: // bitmap_plot(x,(char)y) // [76] bitmap_plot::x#2 = bitmap_line::x#6 - // [77] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [77] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [78] call bitmap_plot + // [78] call bitmap_plot // [117] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] // [117] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy // [117] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy @@ -3964,9 +3968,9 @@ bitmap_line: { __b9: // bitmap_plot(x,(char)y) // [82] bitmap_plot::x#3 = bitmap_line::x#7 - // [83] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [83] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [84] call bitmap_plot + // [84] call bitmap_plot // [117] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] // [117] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy // [117] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy @@ -4036,7 +4040,7 @@ bitmap_line: { // bitmap_line::@4 __b4: // bitmap_plot(x,(char)y) - // [93] call bitmap_plot + // [93] call bitmap_plot // [117] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] // [117] phi bitmap_plot::x#4 = bitmap_line::x1#0 [phi:bitmap_line::@4->bitmap_plot#0] -- vwuz1=vwuc1 lda #memset::@2] // [98] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 @@ -4108,7 +4112,7 @@ memset: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($a) w) +// __zp($a) unsigned int abs_u16(__zp($a) unsigned int w) abs_u16: { .label w = $a .label return = $a @@ -4144,7 +4148,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($15) w) +// __zp($c) unsigned int sgn_u16(__zp($15) unsigned int w) sgn_u16: { .label w = $15 .label return = $c @@ -4180,7 +4184,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(8) x, byte register(X) y) +// void bitmap_plot(__zp(8) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $17 .label plotter = $15 @@ -4200,7 +4204,7 @@ bitmap_plot: { and #>$fff8 sta.z __1+1 // plotter += ( x & $fff8 ) - // [120] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [120] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 diff --git a/src/test/ref/bitmap-line-anim-1.sym b/src/test/ref/bitmap-line-anim-1.sym index 6adf945f5..f0c36ae2e 100644 --- a/src/test/ref/bitmap-line-anim-1.sym +++ b/src/test/ref/bitmap-line-anim-1.sym @@ -1,146 +1,146 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BITMAP = (byte*) 8192 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2002.0 -byte~ abs_u16::$1 reg byte a 2002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:10 202.0 -word abs_u16::return#1 return zp[2]:10 202.0 -word abs_u16::return#2 return zp[2]:10 2002.0 -word abs_u16::return#4 return zp[2]:10 551.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:10 202.0 -word abs_u16::w#2 w zp[2]:10 776.0 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:16 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:2 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:2 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:2 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:17 800.1842105263158 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:10 868.7714285714285 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:6 202.0 -word bitmap_line::e#1 e zp[2]:6 13334.666666666666 -word bitmap_line::e#2 e zp[2]:6 20002.0 -word bitmap_line::e#3 e zp[2]:6 4020.6000000000004 -word bitmap_line::e#6 e zp[2]:6 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:4 202.0 -word bitmap_line::e1#1 e1 zp[2]:4 13334.666666666666 -word bitmap_line::e1#2 e1 zp[2]:4 20002.0 -word bitmap_line::e1#3 e1 zp[2]:4 4020.6000000000004 -word bitmap_line::e1#6 e1 zp[2]:4 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:19 693.2068965517242 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:12 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:8 10001.0 -word bitmap_line::x#12 x zp[2]:8 20002.0 -word bitmap_line::x#13 x zp[2]:8 5714.857142857143 -word bitmap_line::x#15 x zp[2]:8 5714.857142857143 -word bitmap_line::x#6 x zp[2]:8 20103.0 -word bitmap_line::x#7 x zp[2]:8 7500.75 -word bitmap_line::x1 -constant word bitmap_line::x1#0 x1 = 0 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:14 340.4666666666667 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:2 5714.857142857143 -word bitmap_line::y#13 y zp[2]:2 20002.0 -word bitmap_line::y#15 y zp[2]:2 4286.142857142857 -word bitmap_line::y#2 y zp[2]:2 10001.0 -word bitmap_line::y#4 y zp[2]:2 5000.5 -word bitmap_line::y#7 y zp[2]:2 10001.0 -word bitmap_line::y1 -constant word bitmap_line::y1#0 y1 = 0 -word bitmap_line::y2 -constant word bitmap_line::y2#0 y2 = $64 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:23 200002.0 -byte~ bitmap_plot::$2 reg byte x 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:21 50000.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:21 150001.5 -word bitmap_plot::x -word bitmap_plot::x#1 x zp[2]:8 10001.0 -word bitmap_plot::x#2 x zp[2]:8 101.0 -word bitmap_plot::x#3 x zp[2]:8 10001.0 -word bitmap_plot::x#4 x zp[2]:8 55026.25 -byte bitmap_plot::y -byte bitmap_plot::y#1 reg byte x 20002.0 -byte bitmap_plot::y#2 reg byte x 202.0 -byte bitmap_plot::y#3 reg byte x 20002.0 -byte bitmap_plot::y#4 reg byte x 220105.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BITMAP = (char *) 8192 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2002.0 +char abs_u16::$1 // reg byte a 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:10 202.0 +unsigned int abs_u16::return#1 // return zp[2]:10 202.0 +unsigned int abs_u16::return#2 // return zp[2]:10 2002.0 +unsigned int abs_u16::return#4 // return zp[2]:10 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:10 202.0 +unsigned int abs_u16::w#2 // w zp[2]:10 776.0 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:16 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:2 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:2 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:2 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:17 800.1842105263158 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:10 868.7714285714285 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:6 202.0 +unsigned int bitmap_line::e#1 // e zp[2]:6 13334.666666666666 +unsigned int bitmap_line::e#2 // e zp[2]:6 20002.0 +unsigned int bitmap_line::e#3 // e zp[2]:6 4020.6000000000004 +unsigned int bitmap_line::e#6 // e zp[2]:6 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:4 202.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:4 13334.666666666666 +unsigned int bitmap_line::e1#2 // e1 zp[2]:4 20002.0 +unsigned int bitmap_line::e1#3 // e1 zp[2]:4 4020.6000000000004 +unsigned int bitmap_line::e1#6 // e1 zp[2]:4 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:19 693.2068965517242 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:12 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:8 10001.0 +unsigned int bitmap_line::x#12 // x zp[2]:8 20002.0 +unsigned int bitmap_line::x#13 // x zp[2]:8 5714.857142857143 +unsigned int bitmap_line::x#15 // x zp[2]:8 5714.857142857143 +unsigned int bitmap_line::x#6 // x zp[2]:8 20103.0 +unsigned int bitmap_line::x#7 // x zp[2]:8 7500.75 +unsigned int bitmap_line::x1 +__constant unsigned int bitmap_line::x1#0 = 0 // x1 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:14 340.4666666666667 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:2 5714.857142857143 +unsigned int bitmap_line::y#13 // y zp[2]:2 20002.0 +unsigned int bitmap_line::y#15 // y zp[2]:2 4286.142857142857 +unsigned int bitmap_line::y#2 // y zp[2]:2 10001.0 +unsigned int bitmap_line::y#4 // y zp[2]:2 5000.5 +unsigned int bitmap_line::y#7 // y zp[2]:2 10001.0 +unsigned int bitmap_line::y1 +__constant unsigned int bitmap_line::y1#0 = 0 // y1 +unsigned int bitmap_line::y2 +__constant unsigned int bitmap_line::y2#0 = $64 // y2 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:23 200002.0 +char bitmap_plot::$2 // reg byte x 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:21 50000.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:21 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#1 // x zp[2]:8 10001.0 +unsigned int bitmap_plot::x#2 // x zp[2]:8 101.0 +unsigned int bitmap_plot::x#3 // x zp[2]:8 10001.0 +unsigned int bitmap_plot::x#4 // x zp[2]:8 55026.25 +char bitmap_plot::y +char bitmap_plot::y#1 // reg byte x 20002.0 +char bitmap_plot::y#2 // reg byte x 202.0 +char bitmap_plot::y#3 // reg byte x 20002.0 +char bitmap_plot::y#4 // reg byte x 220105.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void init_screen() -byte* init_screen::c -byte* init_screen::c#1 c zp[2]:2 202.0 -byte* init_screen::c#2 c zp[2]:2 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // c zp[2]:2 202.0 +char *init_screen::c#2 // c zp[2]:2 134.66666666666666 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2002.0 -byte* memset::dst#2 dst zp[2]:8 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:8 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:6 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:6 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:8 -byte next -byte next#0 next zp[1]:16 22.0 -byte next#5 next zp[1]:16 11.0 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2002.0 -byte~ sgn_u16::$1 reg byte a 2002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:12 202.0 -word sgn_u16::return#1 return zp[2]:12 202.0 -word sgn_u16::return#4 return zp[2]:12 50.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:21 202.0 -word sgn_u16::w#2 w zp[2]:21 1102.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2002.0 +char *memset::dst#2 // dst zp[2]:8 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:8 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:6 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:6 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:8 +char next +char next#0 // next zp[1]:16 22.0 +char next#5 // next zp[1]:16 11.0 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2002.0 +char sgn_u16::$1 // reg byte a 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:12 202.0 +unsigned int sgn_u16::return#1 // return zp[2]:12 202.0 +unsigned int sgn_u16::return#4 // return zp[2]:12 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:21 202.0 +unsigned int sgn_u16::w#2 // w zp[2]:21 1102.0 reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] diff --git a/src/test/ref/bitmap-line-anim-2.asm b/src/test/ref/bitmap-line-anim-2.asm index 774352026..2707f69d0 100644 --- a/src/test/ref/bitmap-line-anim-2.asm +++ b/src/test/ref/bitmap-line-anim-2.asm @@ -77,6 +77,7 @@ main: { jmp __b1 } // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $10 .label yoffs = 2 @@ -138,6 +139,7 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10+PURPLE // memset(bitmap_screen, col, 1000uw) @@ -166,7 +168,7 @@ bitmap_clear: { rts } // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(2) x2) +// void bitmap_line(unsigned int x1, unsigned int y1, __zp(2) unsigned int x2, unsigned int y2) bitmap_line: { .const x1 = 0 .const y1 = 0 @@ -390,7 +392,7 @@ bitmap_line: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp(8) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp(8) unsigned int num) memset: { .label end = 8 .label dst = $a @@ -434,7 +436,7 @@ memset: { jmp __b2 } // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($c) w) +// __zp($c) unsigned int abs_u16(__zp($c) unsigned int w) abs_u16: { .label w = $c .label return = $c @@ -460,7 +462,7 @@ abs_u16: { } // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($15) w) +// __zp($e) unsigned int sgn_u16(__zp($15) unsigned int w) sgn_u16: { .label w = $15 .label return = $e @@ -484,7 +486,7 @@ sgn_u16: { rts } // Plot a single dot in the bitmap -// bitmap_plot(word zp($a) x, byte register(X) y) +// void bitmap_plot(__zp($a) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $17 .label plotter = $15 diff --git a/src/test/ref/bitmap-line-anim-2.cfg b/src/test/ref/bitmap-line-anim-2.cfg index 9d577c1b3..b24608f88 100644 --- a/src/test/ref/bitmap-line-anim-2.cfg +++ b/src/test/ref/bitmap-line-anim-2.cfg @@ -4,17 +4,17 @@ main: scope:[main] from [0] *BORDER_COLOR = 0 [1] *BG_COLOR = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [4] call bitmap_init + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [4] call bitmap_init to:main::@3 main::@3: scope:[main] from main [5] phi() - [6] call bitmap_clear + [6] call bitmap_clear to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [7] next#6 = phi( main::@2/next#11, main::@3/0 ) [8] bitmap_line::x2#0 = next#6 - [9] call bitmap_line + [9] call bitmap_line to:main::@4 main::@4: scope:[main] from main::@1 [10] next#0 = ++ next#6 @@ -27,7 +27,7 @@ main::@2: scope:[main] from main::@4 main::@5 [13] next#11 = phi( main::@4/0, main::@5/next#0 ) to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [14] phi() to:bitmap_init::@1 @@ -58,7 +58,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [30] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [32] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -69,28 +69,28 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [35] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@3 [36] phi() - [37] call memset + [37] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [38] phi() - [39] call memset + [39] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [40] return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@1 [41] abs_u16::w#0 = bitmap_line::x2#0 - [42] call abs_u16 + [42] call abs_u16 [43] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [44] bitmap_line::dx#0 = abs_u16::return#0 - [45] call abs_u16 + [45] call abs_u16 [46] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -102,12 +102,12 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [50] sgn_u16::w#0 = bitmap_line::x2#0 - [51] call sgn_u16 + [51] call sgn_u16 [52] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [53] bitmap_line::sx#0 = sgn_u16::return#0 - [54] call sgn_u16 + [54] call sgn_u16 [55] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -122,8 +122,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [59] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [59] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [60] bitmap_plot::x#1 = bitmap_line::x#13 - [61] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [62] call bitmap_plot + [61] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [62] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -143,8 +143,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [70] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [70] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [71] bitmap_plot::x#2 = bitmap_line::x#6 - [72] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [73] call bitmap_plot + [72] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [73] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [74] return @@ -157,8 +157,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [76] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [76] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [77] bitmap_plot::x#3 = bitmap_line::x#7 - [78] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [79] call bitmap_plot + [78] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [79] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -176,19 +176,19 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [87] phi() - [88] call bitmap_plot + [88] call bitmap_plot to:bitmap_line::@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [89] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [89] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [89] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [89] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [90] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [91] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [92] memset::dst#4 = (byte*)memset::str#3 + [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [92] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [93] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -202,7 +202,7 @@ memset::@3: scope:[memset] from memset::@2 [97] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [98] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/bitmap_line::y2#0 ) [99] abs_u16::$0 = byte1 abs_u16::w#2 @@ -217,7 +217,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [104] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [105] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/bitmap_line::y2#0 ) [106] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -232,13 +232,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [111] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [112] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_line::x1#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [112] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [116] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return diff --git a/src/test/ref/bitmap-line-anim-2.log b/src/test/ref/bitmap-line-anim-2.log index 28efbedd0..7cdfe596d 100644 --- a/src/test/ref/bitmap-line-anim-2.log +++ b/src/test/ref/bitmap-line-anim-2.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement bitmap_clear::$1 Eliminating unused variable with no statement bitmap_line::$1 Eliminating unused variable with no statement bitmap_line::$3 @@ -11,7 +11,7 @@ Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main bitmap_init::screen#1 = phi( main/bitmap_init::screen#0 ) bitmap_init::gfx#1 = phi( main/bitmap_init::gfx#0 ) @@ -97,7 +97,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6 return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@4 bitmap_gfx#14 = phi( main::@4/bitmap_gfx#2 ) bitmap_screen#8 = phi( main::@4/bitmap_screen#2 ) @@ -105,18 +105,18 @@ bitmap_clear: scope:[bitmap_clear] from main::@4 bitmap_clear::fgcol#1 = phi( main::@4/bitmap_clear::fgcol#0 ) bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#1 - memset::str#0 = (void*)bitmap_screen#8 + memset::str#0 = (void *)bitmap_screen#8 memset::c#0 = bitmap_clear::col#0 memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_gfx#8 = phi( bitmap_clear/bitmap_gfx#14 ) - memset::str#1 = (void*)bitmap_gfx#8 + memset::str#1 = (void *)bitmap_gfx#8 memset::c#1 = 0 memset::num#1 = $1f40 - call memset + call memset memset::return#1 = memset::return#3 to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 @@ -125,12 +125,12 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2 return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] - bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 + bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1 bitmap_plot::$2 = byte0 bitmap_plot::x#4 @@ -140,7 +140,7 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@1 bitmap_line::y2#4 = phi( main::@1/bitmap_line::y2#0 ) bitmap_line::x2#1 = phi( main::@1/bitmap_line::x2#0 ) @@ -150,7 +150,7 @@ bitmap_line: scope:[bitmap_line] from main::@1 bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::$0 = bitmap_line::x2#1 - bitmap_line::x1#1 abs_u16::w#0 = bitmap_line::$0 - call abs_u16 + call abs_u16 abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line @@ -164,7 +164,7 @@ bitmap_line::@12: scope:[bitmap_line] from bitmap_line bitmap_line::dx#0 = abs_u16::return#5 bitmap_line::$2 = bitmap_line::y2#1 - bitmap_line::y1#2 abs_u16::w#1 = bitmap_line::$2 - call abs_u16 + call abs_u16 abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -194,7 +194,7 @@ bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::x2#2 = phi( bitmap_line::@13/bitmap_line::x2#4 ) bitmap_line::$8 = bitmap_line::x2#2 - bitmap_line::x1#2 sgn_u16::w#0 = bitmap_line::$8 - call sgn_u16 + call sgn_u16 sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 @@ -209,7 +209,7 @@ bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::sx#0 = sgn_u16::return#5 bitmap_line::$10 = bitmap_line::y2#2 - bitmap_line::y1#3 sgn_u16::w#1 = bitmap_line::$10 - call sgn_u16 + call sgn_u16 sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -229,8 +229,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::y#3 = phi( bitmap_line::@13/bitmap_line::y#10 ) bitmap_line::x#3 = phi( bitmap_line::@13/bitmap_line::x#10 ) bitmap_plot::x#0 = bitmap_line::x#3 - bitmap_plot::y#0 = (byte)bitmap_line::y#3 - call bitmap_plot + bitmap_plot::y#0 = (char)bitmap_line::y#3 + call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4 to:bitmap_line::@return @@ -267,8 +267,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y#11, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#4 = phi( bitmap_line::@5/bitmap_line::x#11, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#1 = bitmap_line::x#4 - bitmap_plot::y#1 = (byte)bitmap_line::y#4 - call bitmap_plot + bitmap_plot::y#1 = (char)bitmap_line::y#4 + call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@6 bitmap_line::sx#3 = phi( bitmap_line::@6/bitmap_line::sx#5 ) @@ -313,8 +313,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#2 = bitmap_line::x#6 - bitmap_plot::y#2 = (byte)bitmap_line::y#7 - call bitmap_plot + bitmap_plot::y#2 = (char)bitmap_line::y#7 + call bitmap_plot to:bitmap_line::@18 bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@3 to:bitmap_line::@return @@ -328,8 +328,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 bitmap_line::y#8 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y#14 ) bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@2/bitmap_line::x#14 ) bitmap_plot::x#3 = bitmap_line::x#7 - bitmap_plot::y#3 = (byte)bitmap_line::y#8 - call bitmap_plot + bitmap_plot::y#3 = (char)bitmap_line::y#8 + call bitmap_plot to:bitmap_line::@19 bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@9 bitmap_line::sy#4 = phi( bitmap_line::@9/bitmap_line::sy#7 ) @@ -371,7 +371,7 @@ bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@19 bitmap_line::e1#2 = bitmap_line::e1#4 - bitmap_line::dx#6 to:bitmap_line::@10 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 memset::c#5 = phi( bitmap_clear/memset::c#0, bitmap_clear::@1/memset::c#1 ) memset::str#4 = phi( bitmap_clear/memset::str#0, bitmap_clear::@1/memset::str#1 ) @@ -388,9 +388,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -414,7 +414,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) abs_u16::$0 = byte1 abs_u16::w#2 @@ -437,7 +437,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@2 return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -465,10 +465,10 @@ main: scope:[main] from __start::@1 *BORDER_COLOR = 0 *BG_COLOR = 0 *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 bitmap_init::gfx#0 = BITMAP bitmap_init::screen#0 = SCREEN - call bitmap_init + call bitmap_init to:main::@4 main::@4: scope:[main] from main next#14 = phi( main/next#15 ) @@ -478,7 +478,7 @@ main::@4: scope:[main] from main bitmap_screen#2 = bitmap_screen#9 bitmap_clear::bgcol#0 = PURPLE bitmap_clear::fgcol#0 = WHITE - call bitmap_clear + call bitmap_clear to:main::@5 main::@5: scope:[main] from main::@4 bitmap_screen#24 = phi( main::@4/bitmap_screen#2 ) @@ -493,7 +493,7 @@ main::@1: scope:[main] from main::@2 main::@5 bitmap_line::y1#0 = 0 bitmap_line::x2#0 = next#6 bitmap_line::y2#0 = $64 - call bitmap_line + call bitmap_line to:main::@6 main::@6: scope:[main] from main::@1 bitmap_screen#20 = phi( main::@1/bitmap_screen#22 ) @@ -529,15 +529,15 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bitmap_screen#4 = (byte*) 0 - bitmap_gfx#4 = (byte*) 0 + bitmap_screen#4 = (char *) 0 + bitmap_gfx#4 = (char *) 0 next#3 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 next#13 = phi( __start::__init1/next#3 ) bitmap_screen#16 = phi( __start::__init1/bitmap_screen#4 ) bitmap_gfx#17 = phi( __start::__init1/bitmap_gfx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 next#9 = phi( __start::@1/next#2 ) @@ -558,420 +558,420 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const BITMAP = (byte*)$2000 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const D011 = (byte*)$d011 -constant const byte PURPLE = 4 -constant byte* const SCREEN = (byte*)$400 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const BITMAP = (char *)$2000 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const D011 = (char *)$d011 +__constant const char PURPLE = 4 +__constant char * const SCREEN = (char *)$400 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 -number~ abs_u16::$1 -word~ abs_u16::$2 -bool~ abs_u16::$3 -word abs_u16::return -word abs_u16::return#0 -word abs_u16::return#1 -word abs_u16::return#2 -word abs_u16::return#3 -word abs_u16::return#4 -word abs_u16::return#5 -word abs_u16::return#6 -word abs_u16::return#7 -word abs_u16::w -word abs_u16::w#0 -word abs_u16::w#1 -word abs_u16::w#2 -word abs_u16::w#3 -word abs_u16::w#4 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -number~ bitmap_clear::$0 -byte bitmap_clear::bgcol -byte bitmap_clear::bgcol#0 -byte bitmap_clear::bgcol#1 -byte bitmap_clear::col -byte bitmap_clear::col#0 -byte bitmap_clear::fgcol -byte bitmap_clear::fgcol#0 -byte bitmap_clear::fgcol#1 -byte* bitmap_gfx -byte* bitmap_gfx#0 -byte* bitmap_gfx#1 -byte* bitmap_gfx#10 -byte* bitmap_gfx#11 -byte* bitmap_gfx#12 -byte* bitmap_gfx#13 -byte* bitmap_gfx#14 -byte* bitmap_gfx#15 -byte* bitmap_gfx#16 -byte* bitmap_gfx#17 -byte* bitmap_gfx#18 -byte* bitmap_gfx#19 -byte* bitmap_gfx#2 -byte* bitmap_gfx#20 -byte* bitmap_gfx#21 -byte* bitmap_gfx#22 -byte* bitmap_gfx#23 -byte* bitmap_gfx#24 -byte* bitmap_gfx#25 -byte* bitmap_gfx#26 -byte* bitmap_gfx#27 -byte* bitmap_gfx#3 -byte* bitmap_gfx#4 -byte* bitmap_gfx#5 -byte* bitmap_gfx#6 -byte* bitmap_gfx#7 -byte* bitmap_gfx#8 -byte* bitmap_gfx#9 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -bool~ bitmap_init::$0 -bool~ bitmap_init::$1 -byte*~ bitmap_init::$10 -bool~ bitmap_init::$11 -bool~ bitmap_init::$2 -number~ bitmap_init::$3 -byte~ bitmap_init::$4 -number~ bitmap_init::$5 -byte~ bitmap_init::$6 -number~ bitmap_init::$7 -bool~ bitmap_init::$8 -bool~ bitmap_init::$9 -byte bitmap_init::bits -byte bitmap_init::bits#0 -byte bitmap_init::bits#1 -byte bitmap_init::bits#2 -byte bitmap_init::bits#3 -byte bitmap_init::bits#4 -byte* bitmap_init::gfx -byte* bitmap_init::gfx#0 -byte* bitmap_init::gfx#1 -byte* bitmap_init::gfx#2 -byte* bitmap_init::gfx#3 -byte* bitmap_init::gfx#4 -byte* bitmap_init::gfx#5 -byte* bitmap_init::screen -byte* bitmap_init::screen#0 -byte* bitmap_init::screen#1 -byte bitmap_init::x -byte bitmap_init::x#0 -byte bitmap_init::x#1 -byte bitmap_init::x#2 -byte bitmap_init::x#3 -byte bitmap_init::x#4 -byte bitmap_init::y -byte bitmap_init::y#0 -byte bitmap_init::y#1 -byte bitmap_init::y#2 -byte bitmap_init::y#3 -byte bitmap_init::y#4 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#0 -byte* bitmap_init::yoffs#1 -byte* bitmap_init::yoffs#2 -byte* bitmap_init::yoffs#3 -byte* bitmap_init::yoffs#4 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word~ bitmap_line::$0 -word~ bitmap_line::$10 -bool~ bitmap_line::$12 -bool~ bitmap_line::$17 -bool~ bitmap_line::$18 -bool~ bitmap_line::$19 -word~ bitmap_line::$2 -bool~ bitmap_line::$22 -bool~ bitmap_line::$23 -bool~ bitmap_line::$24 -bool~ bitmap_line::$4 -bool~ bitmap_line::$5 -bool~ bitmap_line::$6 -bool~ bitmap_line::$7 -word~ bitmap_line::$8 -word bitmap_line::dx -word bitmap_line::dx#0 -word bitmap_line::dx#1 -word bitmap_line::dx#10 -word bitmap_line::dx#11 -word bitmap_line::dx#12 -word bitmap_line::dx#13 -word bitmap_line::dx#14 -word bitmap_line::dx#2 -word bitmap_line::dx#3 -word bitmap_line::dx#4 -word bitmap_line::dx#5 -word bitmap_line::dx#6 -word bitmap_line::dx#7 -word bitmap_line::dx#8 -word bitmap_line::dx#9 -word bitmap_line::dy -word bitmap_line::dy#0 -word bitmap_line::dy#1 -word bitmap_line::dy#10 -word bitmap_line::dy#11 -word bitmap_line::dy#12 -word bitmap_line::dy#13 -word bitmap_line::dy#2 -word bitmap_line::dy#3 -word bitmap_line::dy#4 -word bitmap_line::dy#5 -word bitmap_line::dy#6 -word bitmap_line::dy#7 -word bitmap_line::dy#8 -word bitmap_line::dy#9 -word bitmap_line::e -word bitmap_line::e#0 -word bitmap_line::e#1 -word bitmap_line::e#2 -word bitmap_line::e#3 -word bitmap_line::e#4 -word bitmap_line::e#5 -word bitmap_line::e#6 -word bitmap_line::e1 -word bitmap_line::e1#0 -word bitmap_line::e1#1 -word bitmap_line::e1#2 -word bitmap_line::e1#3 -word bitmap_line::e1#4 -word bitmap_line::e1#5 -word bitmap_line::e1#6 -word bitmap_line::sx -word bitmap_line::sx#0 -word bitmap_line::sx#1 -word bitmap_line::sx#10 -word bitmap_line::sx#11 -word bitmap_line::sx#2 -word bitmap_line::sx#3 -word bitmap_line::sx#4 -word bitmap_line::sx#5 -word bitmap_line::sx#6 -word bitmap_line::sx#7 -word bitmap_line::sx#8 -word bitmap_line::sx#9 -word bitmap_line::sy -word bitmap_line::sy#0 -word bitmap_line::sy#1 -word bitmap_line::sy#10 -word bitmap_line::sy#2 -word bitmap_line::sy#3 -word bitmap_line::sy#4 -word bitmap_line::sy#5 -word bitmap_line::sy#6 -word bitmap_line::sy#7 -word bitmap_line::sy#8 -word bitmap_line::sy#9 -word bitmap_line::x -word bitmap_line::x#0 -word bitmap_line::x#1 -word bitmap_line::x#10 -word bitmap_line::x#11 -word bitmap_line::x#12 -word bitmap_line::x#13 -word bitmap_line::x#14 -word bitmap_line::x#15 -word bitmap_line::x#16 -word bitmap_line::x#17 -word bitmap_line::x#18 -word bitmap_line::x#19 -word bitmap_line::x#2 -word bitmap_line::x#3 -word bitmap_line::x#4 -word bitmap_line::x#5 -word bitmap_line::x#6 -word bitmap_line::x#7 -word bitmap_line::x#8 -word bitmap_line::x#9 -word bitmap_line::x1 -word bitmap_line::x1#0 -word bitmap_line::x1#1 -word bitmap_line::x1#2 -word bitmap_line::x1#3 -word bitmap_line::x1#4 -word bitmap_line::x2 -word bitmap_line::x2#0 -word bitmap_line::x2#1 -word bitmap_line::x2#10 -word bitmap_line::x2#11 -word bitmap_line::x2#2 -word bitmap_line::x2#3 -word bitmap_line::x2#4 -word bitmap_line::x2#5 -word bitmap_line::x2#6 -word bitmap_line::x2#7 -word bitmap_line::x2#8 -word bitmap_line::x2#9 -word bitmap_line::y -word bitmap_line::y#0 -word bitmap_line::y#1 -word bitmap_line::y#10 -word bitmap_line::y#11 -word bitmap_line::y#12 -word bitmap_line::y#13 -word bitmap_line::y#14 -word bitmap_line::y#15 -word bitmap_line::y#16 -word bitmap_line::y#17 -word bitmap_line::y#18 -word bitmap_line::y#19 -word bitmap_line::y#2 -word bitmap_line::y#3 -word bitmap_line::y#4 -word bitmap_line::y#5 -word bitmap_line::y#6 -word bitmap_line::y#7 -word bitmap_line::y#8 -word bitmap_line::y#9 -word bitmap_line::y1 -word bitmap_line::y1#0 -word bitmap_line::y1#1 -word bitmap_line::y1#2 -word bitmap_line::y1#3 -word bitmap_line::y1#4 -word bitmap_line::y1#5 -word bitmap_line::y2 -word bitmap_line::y2#0 -word bitmap_line::y2#1 -word bitmap_line::y2#10 -word bitmap_line::y2#11 -word bitmap_line::y2#2 -word bitmap_line::y2#3 -word bitmap_line::y2#4 -word bitmap_line::y2#5 -word bitmap_line::y2#6 -word bitmap_line::y2#7 -word bitmap_line::y2#8 -word bitmap_line::y2#9 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$0 -number~ bitmap_plot::$1 -byte~ bitmap_plot::$2 -byte* bitmap_plot::plotter -byte* bitmap_plot::plotter#0 -byte* bitmap_plot::plotter#1 -word bitmap_plot::x -word bitmap_plot::x#0 -word bitmap_plot::x#1 -word bitmap_plot::x#2 -word bitmap_plot::x#3 -word bitmap_plot::x#4 -byte bitmap_plot::y -byte bitmap_plot::y#0 -byte bitmap_plot::y#1 -byte bitmap_plot::y#2 -byte bitmap_plot::y#3 -byte bitmap_plot::y#4 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -byte* bitmap_screen#0 -byte* bitmap_screen#1 -byte* bitmap_screen#10 -byte* bitmap_screen#11 -byte* bitmap_screen#12 -byte* bitmap_screen#13 -byte* bitmap_screen#14 -byte* bitmap_screen#15 -byte* bitmap_screen#16 -byte* bitmap_screen#17 -byte* bitmap_screen#18 -byte* bitmap_screen#19 -byte* bitmap_screen#2 -byte* bitmap_screen#20 -byte* bitmap_screen#21 -byte* bitmap_screen#22 -byte* bitmap_screen#23 -byte* bitmap_screen#24 -byte* bitmap_screen#25 -byte* bitmap_screen#26 -byte* bitmap_screen#3 -byte* bitmap_screen#4 -byte* bitmap_screen#5 -byte* bitmap_screen#6 -byte* bitmap_screen#7 -byte* bitmap_screen#8 -byte* bitmap_screen#9 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 +number abs_u16::$1 +unsigned int abs_u16::$2 +bool abs_u16::$3 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 +unsigned int abs_u16::return#1 +unsigned int abs_u16::return#2 +unsigned int abs_u16::return#3 +unsigned int abs_u16::return#4 +unsigned int abs_u16::return#5 +unsigned int abs_u16::return#6 +unsigned int abs_u16::return#7 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 +unsigned int abs_u16::w#1 +unsigned int abs_u16::w#2 +unsigned int abs_u16::w#3 +unsigned int abs_u16::w#4 +void bitmap_clear(char bgcol , char fgcol) +number bitmap_clear::$0 +char bitmap_clear::bgcol +char bitmap_clear::bgcol#0 +char bitmap_clear::bgcol#1 +char bitmap_clear::col +char bitmap_clear::col#0 +char bitmap_clear::fgcol +char bitmap_clear::fgcol#0 +char bitmap_clear::fgcol#1 +char *bitmap_gfx +char *bitmap_gfx#0 +char *bitmap_gfx#1 +char *bitmap_gfx#10 +char *bitmap_gfx#11 +char *bitmap_gfx#12 +char *bitmap_gfx#13 +char *bitmap_gfx#14 +char *bitmap_gfx#15 +char *bitmap_gfx#16 +char *bitmap_gfx#17 +char *bitmap_gfx#18 +char *bitmap_gfx#19 +char *bitmap_gfx#2 +char *bitmap_gfx#20 +char *bitmap_gfx#21 +char *bitmap_gfx#22 +char *bitmap_gfx#23 +char *bitmap_gfx#24 +char *bitmap_gfx#25 +char *bitmap_gfx#26 +char *bitmap_gfx#27 +char *bitmap_gfx#3 +char *bitmap_gfx#4 +char *bitmap_gfx#5 +char *bitmap_gfx#6 +char *bitmap_gfx#7 +char *bitmap_gfx#8 +char *bitmap_gfx#9 +void bitmap_init(char *gfx , char *screen) +bool bitmap_init::$0 +bool bitmap_init::$1 +char *bitmap_init::$10 +bool bitmap_init::$11 +bool bitmap_init::$2 +number bitmap_init::$3 +char bitmap_init::$4 +number bitmap_init::$5 +char bitmap_init::$6 +number bitmap_init::$7 +bool bitmap_init::$8 +bool bitmap_init::$9 +char bitmap_init::bits +char bitmap_init::bits#0 +char bitmap_init::bits#1 +char bitmap_init::bits#2 +char bitmap_init::bits#3 +char bitmap_init::bits#4 +char *bitmap_init::gfx +char *bitmap_init::gfx#0 +char *bitmap_init::gfx#1 +char *bitmap_init::gfx#2 +char *bitmap_init::gfx#3 +char *bitmap_init::gfx#4 +char *bitmap_init::gfx#5 +char *bitmap_init::screen +char *bitmap_init::screen#0 +char *bitmap_init::screen#1 +char bitmap_init::x +char bitmap_init::x#0 +char bitmap_init::x#1 +char bitmap_init::x#2 +char bitmap_init::x#3 +char bitmap_init::x#4 +char bitmap_init::y +char bitmap_init::y#0 +char bitmap_init::y#1 +char bitmap_init::y#2 +char bitmap_init::y#3 +char bitmap_init::y#4 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#0 +char *bitmap_init::yoffs#1 +char *bitmap_init::yoffs#2 +char *bitmap_init::yoffs#3 +char *bitmap_init::yoffs#4 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::$0 +unsigned int bitmap_line::$10 +bool bitmap_line::$12 +bool bitmap_line::$17 +bool bitmap_line::$18 +bool bitmap_line::$19 +unsigned int bitmap_line::$2 +bool bitmap_line::$22 +bool bitmap_line::$23 +bool bitmap_line::$24 +bool bitmap_line::$4 +bool bitmap_line::$5 +bool bitmap_line::$6 +bool bitmap_line::$7 +unsigned int bitmap_line::$8 +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 +unsigned int bitmap_line::dx#1 +unsigned int bitmap_line::dx#10 +unsigned int bitmap_line::dx#11 +unsigned int bitmap_line::dx#12 +unsigned int bitmap_line::dx#13 +unsigned int bitmap_line::dx#14 +unsigned int bitmap_line::dx#2 +unsigned int bitmap_line::dx#3 +unsigned int bitmap_line::dx#4 +unsigned int bitmap_line::dx#5 +unsigned int bitmap_line::dx#6 +unsigned int bitmap_line::dx#7 +unsigned int bitmap_line::dx#8 +unsigned int bitmap_line::dx#9 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 +unsigned int bitmap_line::dy#1 +unsigned int bitmap_line::dy#10 +unsigned int bitmap_line::dy#11 +unsigned int bitmap_line::dy#12 +unsigned int bitmap_line::dy#13 +unsigned int bitmap_line::dy#2 +unsigned int bitmap_line::dy#3 +unsigned int bitmap_line::dy#4 +unsigned int bitmap_line::dy#5 +unsigned int bitmap_line::dy#6 +unsigned int bitmap_line::dy#7 +unsigned int bitmap_line::dy#8 +unsigned int bitmap_line::dy#9 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 +unsigned int bitmap_line::e#1 +unsigned int bitmap_line::e#2 +unsigned int bitmap_line::e#3 +unsigned int bitmap_line::e#4 +unsigned int bitmap_line::e#5 +unsigned int bitmap_line::e#6 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 +unsigned int bitmap_line::e1#1 +unsigned int bitmap_line::e1#2 +unsigned int bitmap_line::e1#3 +unsigned int bitmap_line::e1#4 +unsigned int bitmap_line::e1#5 +unsigned int bitmap_line::e1#6 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 +unsigned int bitmap_line::sx#1 +unsigned int bitmap_line::sx#10 +unsigned int bitmap_line::sx#11 +unsigned int bitmap_line::sx#2 +unsigned int bitmap_line::sx#3 +unsigned int bitmap_line::sx#4 +unsigned int bitmap_line::sx#5 +unsigned int bitmap_line::sx#6 +unsigned int bitmap_line::sx#7 +unsigned int bitmap_line::sx#8 +unsigned int bitmap_line::sx#9 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 +unsigned int bitmap_line::sy#1 +unsigned int bitmap_line::sy#10 +unsigned int bitmap_line::sy#2 +unsigned int bitmap_line::sy#3 +unsigned int bitmap_line::sy#4 +unsigned int bitmap_line::sy#5 +unsigned int bitmap_line::sy#6 +unsigned int bitmap_line::sy#7 +unsigned int bitmap_line::sy#8 +unsigned int bitmap_line::sy#9 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#0 +unsigned int bitmap_line::x#1 +unsigned int bitmap_line::x#10 +unsigned int bitmap_line::x#11 +unsigned int bitmap_line::x#12 +unsigned int bitmap_line::x#13 +unsigned int bitmap_line::x#14 +unsigned int bitmap_line::x#15 +unsigned int bitmap_line::x#16 +unsigned int bitmap_line::x#17 +unsigned int bitmap_line::x#18 +unsigned int bitmap_line::x#19 +unsigned int bitmap_line::x#2 +unsigned int bitmap_line::x#3 +unsigned int bitmap_line::x#4 +unsigned int bitmap_line::x#5 +unsigned int bitmap_line::x#6 +unsigned int bitmap_line::x#7 +unsigned int bitmap_line::x#8 +unsigned int bitmap_line::x#9 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 +unsigned int bitmap_line::x1#1 +unsigned int bitmap_line::x1#2 +unsigned int bitmap_line::x1#3 +unsigned int bitmap_line::x1#4 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 +unsigned int bitmap_line::x2#1 +unsigned int bitmap_line::x2#10 +unsigned int bitmap_line::x2#11 +unsigned int bitmap_line::x2#2 +unsigned int bitmap_line::x2#3 +unsigned int bitmap_line::x2#4 +unsigned int bitmap_line::x2#5 +unsigned int bitmap_line::x2#6 +unsigned int bitmap_line::x2#7 +unsigned int bitmap_line::x2#8 +unsigned int bitmap_line::x2#9 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#0 +unsigned int bitmap_line::y#1 +unsigned int bitmap_line::y#10 +unsigned int bitmap_line::y#11 +unsigned int bitmap_line::y#12 +unsigned int bitmap_line::y#13 +unsigned int bitmap_line::y#14 +unsigned int bitmap_line::y#15 +unsigned int bitmap_line::y#16 +unsigned int bitmap_line::y#17 +unsigned int bitmap_line::y#18 +unsigned int bitmap_line::y#19 +unsigned int bitmap_line::y#2 +unsigned int bitmap_line::y#3 +unsigned int bitmap_line::y#4 +unsigned int bitmap_line::y#5 +unsigned int bitmap_line::y#6 +unsigned int bitmap_line::y#7 +unsigned int bitmap_line::y#8 +unsigned int bitmap_line::y#9 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 +unsigned int bitmap_line::y1#1 +unsigned int bitmap_line::y1#2 +unsigned int bitmap_line::y1#3 +unsigned int bitmap_line::y1#4 +unsigned int bitmap_line::y1#5 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 +unsigned int bitmap_line::y2#1 +unsigned int bitmap_line::y2#10 +unsigned int bitmap_line::y2#11 +unsigned int bitmap_line::y2#2 +unsigned int bitmap_line::y2#3 +unsigned int bitmap_line::y2#4 +unsigned int bitmap_line::y2#5 +unsigned int bitmap_line::y2#6 +unsigned int bitmap_line::y2#7 +unsigned int bitmap_line::y2#8 +unsigned int bitmap_line::y2#9 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$0 +number bitmap_plot::$1 +char bitmap_plot::$2 +char *bitmap_plot::plotter +char *bitmap_plot::plotter#0 +char *bitmap_plot::plotter#1 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 +unsigned int bitmap_plot::x#1 +unsigned int bitmap_plot::x#2 +unsigned int bitmap_plot::x#3 +unsigned int bitmap_plot::x#4 +char bitmap_plot::y +char bitmap_plot::y#0 +char bitmap_plot::y#1 +char bitmap_plot::y#2 +char bitmap_plot::y#3 +char bitmap_plot::y#4 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +char *bitmap_screen#0 +char *bitmap_screen#1 +char *bitmap_screen#10 +char *bitmap_screen#11 +char *bitmap_screen#12 +char *bitmap_screen#13 +char *bitmap_screen#14 +char *bitmap_screen#15 +char *bitmap_screen#16 +char *bitmap_screen#17 +char *bitmap_screen#18 +char *bitmap_screen#19 +char *bitmap_screen#2 +char *bitmap_screen#20 +char *bitmap_screen#21 +char *bitmap_screen#22 +char *bitmap_screen#23 +char *bitmap_screen#24 +char *bitmap_screen#25 +char *bitmap_screen#26 +char *bitmap_screen#3 +char *bitmap_screen#4 +char *bitmap_screen#5 +char *bitmap_screen#6 +char *bitmap_screen#7 +char *bitmap_screen#8 +char *bitmap_screen#9 void main() -bool~ main::$3 -bool~ main::$4 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -word next -word next#0 -word next#1 -word next#10 -word next#11 -word next#12 -word next#13 -word next#14 -word next#15 -word next#2 -word next#3 -word next#4 -word next#5 -word next#6 -word next#7 -word next#8 -word next#9 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 -number~ sgn_u16::$1 -bool~ sgn_u16::$2 -word sgn_u16::return -word sgn_u16::return#0 -word sgn_u16::return#1 -word sgn_u16::return#2 -word sgn_u16::return#3 -word sgn_u16::return#4 -word sgn_u16::return#5 -word sgn_u16::return#6 -word sgn_u16::return#7 -word sgn_u16::w -word sgn_u16::w#0 -word sgn_u16::w#1 -word sgn_u16::w#2 +bool main::$3 +bool main::$4 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +unsigned int next +unsigned int next#0 +unsigned int next#1 +unsigned int next#10 +unsigned int next#11 +unsigned int next#12 +unsigned int next#13 +unsigned int next#14 +unsigned int next#15 +unsigned int next#2 +unsigned int next#3 +unsigned int next#4 +unsigned int next#5 +unsigned int next#6 +unsigned int next#7 +unsigned int next#8 +unsigned int next#9 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 +number sgn_u16::$1 +bool sgn_u16::$2 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 +unsigned int sgn_u16::return#1 +unsigned int sgn_u16::return#2 +unsigned int sgn_u16::return#3 +unsigned int sgn_u16::return#4 +unsigned int sgn_u16::return#5 +unsigned int sgn_u16::return#6 +unsigned int sgn_u16::return#7 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 +unsigned int sgn_u16::w#1 +unsigned int sgn_u16::w#2 Adding number conversion cast (unumber) 1 in bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 Adding number conversion cast (unumber) 0 in bitmap_init::$0 = bitmap_init::bits#1 == 0 @@ -1005,20 +1005,20 @@ Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0 Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&$3fff/$400 Adding number conversion cast (unumber) 0 in bitmap_line::x1#0 = 0 Adding number conversion cast (unumber) 0 in bitmap_line::y1#0 = 0 Adding number conversion cast (unumber) $64 in bitmap_line::y2#0 = $64 Adding number conversion cast (unumber) $140 in main::$3 = next#0 == $140 Adding number conversion cast (unumber) 0 in next#1 = 0 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&(unumber)$3fff/$400 -Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(word)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unsigned int)BITMAP&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast bitmap_init::bits#2 = (unumber)$80 Inlining cast memset::c#1 = (unumber)0 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast sgn_u16::return#2 = (unumber)-1 Inlining cast sgn_u16::return#3 = (unumber)1 Inlining cast *BORDER_COLOR = (unumber)0 @@ -1029,12 +1029,12 @@ Inlining cast bitmap_line::y1#0 = (unumber)0 Inlining cast bitmap_line::y2#0 = (unumber)$64 Inlining cast next#1 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $80 @@ -1069,46 +1069,46 @@ Simplifying constant integer cast $64 Simplifying constant integer cast $140 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $fff8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) -1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (word) $140 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $fff8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) -1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (unsigned int) $140 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 -Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 -Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 -Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 +Inferred type updated to char in bitmap_init::$3 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 +Inferred type updated to char in bitmap_init::$7 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 +Inferred type updated to unsigned int in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 +Inferred type updated to char in abs_u16::$1 = abs_u16::$0 & $80 +Inferred type updated to char in sgn_u16::$1 = sgn_u16::$0 & $80 Inversing boolean not [9] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [8] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [29] bitmap_init::$9 = bitmap_init::$7 != 7 from [28] bitmap_init::$8 = bitmap_init::$7 == 7 Inversing boolean not [117] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [116] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 @@ -1295,17 +1295,17 @@ Constant bitmap_line::x1#0 = 0 Constant bitmap_line::y1#0 = 0 Constant bitmap_line::y2#0 = $64 Constant next#1 = 0 -Constant bitmap_screen#16 = (byte*) 0 -Constant bitmap_gfx#17 = (byte*) 0 +Constant bitmap_screen#16 = (char *) 0 +Constant bitmap_gfx#17 = (char *) 0 Constant next#13 = 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_gfx#0 = bitmap_init::gfx#0 Constant bitmap_screen#0 = bitmap_init::screen#0 Constant bitmap_plot::x#0 = bitmap_line::x1#0 -Constant bitmap_plot::y#0 = (byte)bitmap_line::y1#0 +Constant bitmap_plot::y#0 = (char)bitmap_line::y1#0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)bitmap_screen#0 -Constant memset::str#1 = (void*)bitmap_gfx#0 +Constant memset::str#0 = (void *)bitmap_screen#0 +Constant memset::str#1 = (void *)bitmap_gfx#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [166] if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -1313,7 +1313,7 @@ Resolved ranged next value [11] bitmap_init::x#1 = ++ bitmap_init::x#2 to ++ Resolved ranged comparison value [13] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to 0 Resolved ranged next value [27] bitmap_init::y#1 = ++ bitmap_init::y#2 to ++ Resolved ranged comparison value [29] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to 0 -Simplifying constant evaluating to zero (byte)bitmap_line::y1#0 in +Simplifying constant evaluating to zero (char)bitmap_line::y1#0 in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero bitmap_line::x2#0 in [55] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 Simplifying expression containing zero bitmap_line::y2#0 in [59] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 @@ -1340,8 +1340,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bitmap_init::$7 = bitmap_init::$3 Successful SSA optimization Pass2AliasElimination @@ -1362,10 +1362,10 @@ Constant bitmap_clear::col#0 = bitmap_clear::$0+bitmap_clear::bgcol#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::c#0 = bitmap_clear::col#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [25] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [79] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [81] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [79] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [81] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [49] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [50] bitmap_line::e#0 = bitmap_line::dx#0 / 2 @@ -1401,8 +1401,8 @@ Constant inlined bitmap_plot::y#0 = 0 Constant inlined sgn_u16::return#3 = 1 Constant inlined sgn_u16::return#2 = -1 Constant inlined next#1 = 0 -Constant inlined memset::str#1 = (void*)BITMAP -Constant inlined memset::str#0 = (void*)SCREEN +Constant inlined memset::str#1 = (void *)BITMAP +Constant inlined memset::str#0 = (void *)SCREEN Constant inlined sgn_u16::w#1 = bitmap_line::y2#0 Constant inlined next#13 = 0 Constant inlined bitmap_clear::fgcol#0 = WHITE @@ -1414,14 +1414,14 @@ Constant inlined memset::c#0 = bitmap_clear::col#0 Constant inlined bitmap_init::x#0 = 0 Constant inlined memset::c#1 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1) Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2) @@ -1544,17 +1544,17 @@ main: scope:[main] from [0] *BORDER_COLOR = 0 [1] *BG_COLOR = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [4] call bitmap_init + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [4] call bitmap_init to:main::@3 main::@3: scope:[main] from main [5] phi() - [6] call bitmap_clear + [6] call bitmap_clear to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [7] next#6 = phi( main::@2/next#11, main::@3/0 ) [8] bitmap_line::x2#0 = next#6 - [9] call bitmap_line + [9] call bitmap_line to:main::@4 main::@4: scope:[main] from main::@1 [10] next#0 = ++ next#6 @@ -1567,7 +1567,7 @@ main::@2: scope:[main] from main::@4 main::@5 [13] next#11 = phi( main::@4/0, main::@5/next#0 ) to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [14] phi() to:bitmap_init::@1 @@ -1598,7 +1598,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [30] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [32] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -1609,28 +1609,28 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [35] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@3 [36] phi() - [37] call memset + [37] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [38] phi() - [39] call memset + [39] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [40] return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@1 [41] abs_u16::w#0 = bitmap_line::x2#0 - [42] call abs_u16 + [42] call abs_u16 [43] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [44] bitmap_line::dx#0 = abs_u16::return#0 - [45] call abs_u16 + [45] call abs_u16 [46] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -1642,12 +1642,12 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [50] sgn_u16::w#0 = bitmap_line::x2#0 - [51] call sgn_u16 + [51] call sgn_u16 [52] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [53] bitmap_line::sx#0 = sgn_u16::return#0 - [54] call sgn_u16 + [54] call sgn_u16 [55] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -1662,8 +1662,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [59] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [59] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [60] bitmap_plot::x#1 = bitmap_line::x#13 - [61] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [62] call bitmap_plot + [61] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [62] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [63] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -1683,8 +1683,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [70] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [70] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [71] bitmap_plot::x#2 = bitmap_line::x#6 - [72] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [73] call bitmap_plot + [72] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [73] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [74] return @@ -1697,8 +1697,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [76] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [76] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [77] bitmap_plot::x#3 = bitmap_line::x#7 - [78] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [79] call bitmap_plot + [78] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [79] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [80] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -1716,19 +1716,19 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [87] phi() - [88] call bitmap_plot + [88] call bitmap_plot to:bitmap_line::@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [89] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [89] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [89] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [89] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [90] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [91] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [92] memset::dst#4 = (byte*)memset::str#3 + [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [92] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [93] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1742,7 +1742,7 @@ memset::@3: scope:[memset] from memset::@2 [97] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [98] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/bitmap_line::y2#0 ) [99] abs_u16::$0 = byte1 abs_u16::w#2 @@ -1757,7 +1757,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [104] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [105] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/bitmap_line::y2#0 ) [106] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -1772,13 +1772,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [111] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [112] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_line::x1#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [112] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [116] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return @@ -1788,129 +1788,129 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot VARIABLE REGISTER WEIGHTS -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 2002.0 -byte~ abs_u16::$1 2002.0 -word abs_u16::return -word abs_u16::return#0 202.0 -word abs_u16::return#1 202.0 -word abs_u16::return#2 2002.0 -word abs_u16::return#4 551.0 -word abs_u16::w -word abs_u16::w#0 202.0 -word abs_u16::w#2 776.0 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 202.0 -byte~ bitmap_init::$5 202.0 -byte~ bitmap_init::$6 202.0 -byte~ bitmap_init::$7 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 101.0 -byte bitmap_init::bits#3 151.5 -byte bitmap_init::bits#4 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 151.5 -byte bitmap_init::x#2 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 151.5 -byte bitmap_init::y#2 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 202.0 -byte* bitmap_init::yoffs#2 63.125 -byte* bitmap_init::yoffs#4 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 800.1842105263158 -word bitmap_line::dy -word bitmap_line::dy#0 868.7714285714285 -word bitmap_line::e -word bitmap_line::e#0 202.0 -word bitmap_line::e#1 13334.666666666666 -word bitmap_line::e#2 20002.0 -word bitmap_line::e#3 4020.6000000000004 -word bitmap_line::e#6 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 202.0 -word bitmap_line::e1#1 13334.666666666666 -word bitmap_line::e1#2 20002.0 -word bitmap_line::e1#3 4020.6000000000004 -word bitmap_line::e1#6 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 693.2068965517242 -word bitmap_line::sy -word bitmap_line::sy#0 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 10001.0 -word bitmap_line::x#12 20002.0 -word bitmap_line::x#13 5714.857142857143 -word bitmap_line::x#15 5714.857142857143 -word bitmap_line::x#6 20103.0 -word bitmap_line::x#7 7500.75 -word bitmap_line::x1 -word bitmap_line::x2 -word bitmap_line::x2#0 340.4666666666667 -word bitmap_line::y -word bitmap_line::y#1 5714.857142857143 -word bitmap_line::y#13 20002.0 -word bitmap_line::y#15 4286.142857142857 -word bitmap_line::y#2 10001.0 -word bitmap_line::y#4 5000.5 -word bitmap_line::y#7 10001.0 -word bitmap_line::y1 -word bitmap_line::y2 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 200002.0 -byte~ bitmap_plot::$2 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 50000.5 -byte* bitmap_plot::plotter#1 150001.5 -word bitmap_plot::x -word bitmap_plot::x#1 10001.0 -word bitmap_plot::x#2 101.0 -word bitmap_plot::x#3 10001.0 -word bitmap_plot::x#4 55026.25 -byte bitmap_plot::y -byte bitmap_plot::y#1 20002.0 -byte bitmap_plot::y#2 202.0 -byte bitmap_plot::y#3 20002.0 -byte bitmap_plot::y#4 220105.0 -byte* bitmap_screen +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // 2002.0 +char abs_u16::$1 // 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // 202.0 +unsigned int abs_u16::return#1 // 202.0 +unsigned int abs_u16::return#2 // 2002.0 +unsigned int abs_u16::return#4 // 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // 202.0 +unsigned int abs_u16::w#2 // 776.0 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // 202.0 +char bitmap_init::$5 // 202.0 +char bitmap_init::$6 // 202.0 +char bitmap_init::$7 // 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // 101.0 +char bitmap_init::bits#3 // 151.5 +char bitmap_init::bits#4 // 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // 151.5 +char bitmap_init::x#2 // 50.5 +char bitmap_init::y +char bitmap_init::y#1 // 151.5 +char bitmap_init::y#2 // 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // 202.0 +char *bitmap_init::yoffs#2 // 63.125 +char *bitmap_init::yoffs#4 // 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // 800.1842105263158 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // 868.7714285714285 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // 202.0 +unsigned int bitmap_line::e#1 // 13334.666666666666 +unsigned int bitmap_line::e#2 // 20002.0 +unsigned int bitmap_line::e#3 // 4020.6000000000004 +unsigned int bitmap_line::e#6 // 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // 202.0 +unsigned int bitmap_line::e1#1 // 13334.666666666666 +unsigned int bitmap_line::e1#2 // 20002.0 +unsigned int bitmap_line::e1#3 // 4020.6000000000004 +unsigned int bitmap_line::e1#6 // 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // 693.2068965517242 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // 10001.0 +unsigned int bitmap_line::x#12 // 20002.0 +unsigned int bitmap_line::x#13 // 5714.857142857143 +unsigned int bitmap_line::x#15 // 5714.857142857143 +unsigned int bitmap_line::x#6 // 20103.0 +unsigned int bitmap_line::x#7 // 7500.75 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // 340.4666666666667 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // 5714.857142857143 +unsigned int bitmap_line::y#13 // 20002.0 +unsigned int bitmap_line::y#15 // 4286.142857142857 +unsigned int bitmap_line::y#2 // 10001.0 +unsigned int bitmap_line::y#4 // 5000.5 +unsigned int bitmap_line::y#7 // 10001.0 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y2 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // 200002.0 +char bitmap_plot::$2 // 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // 50000.5 +char *bitmap_plot::plotter#1 // 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#1 // 10001.0 +unsigned int bitmap_plot::x#2 // 101.0 +unsigned int bitmap_plot::x#3 // 10001.0 +unsigned int bitmap_plot::x#4 // 55026.25 +char bitmap_plot::y +char bitmap_plot::y#1 // 20002.0 +char bitmap_plot::y#2 // 202.0 +char bitmap_plot::y#3 // 20002.0 +char bitmap_plot::y#4 // 220105.0 +char *bitmap_screen void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 125.125 -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1368.3333333333335 -byte* memset::dst#4 202.0 -byte* memset::end -byte* memset::end#0 183.66666666666669 -word memset::num -word memset::num#2 101.0 -void* memset::return -void* memset::str -void* memset::str#3 -word next -word next#0 11.0 -word next#11 22.0 -word next#6 11.0 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 2002.0 -byte~ sgn_u16::$1 2002.0 -word sgn_u16::return -word sgn_u16::return#0 202.0 -word sgn_u16::return#1 202.0 -word sgn_u16::return#4 50.5 -word sgn_u16::w -word sgn_u16::w#0 202.0 -word sgn_u16::w#2 1102.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 125.125 +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1368.3333333333335 +char *memset::dst#4 // 202.0 +char *memset::end +char *memset::end#0 // 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // 101.0 +void *memset::return +void *memset::str +void *memset::str#3 +unsigned int next +unsigned int next#0 // 11.0 +unsigned int next#11 // 22.0 +unsigned int next#6 // 11.0 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // 2002.0 +char sgn_u16::$1 // 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // 202.0 +unsigned int sgn_u16::return#1 // 202.0 +unsigned int sgn_u16::return#4 // 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // 202.0 +unsigned int sgn_u16::w#2 // 1102.0 Initial phi equivalence classes [ next#6 next#11 next#0 ] @@ -2039,10 +2039,10 @@ Equivalence Class zp[1]:36 [ bitmap_init::$4 ] has ALU potential. Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] bitmap_line::x2#0 = next#6 [ next#6 bitmap_line::x2#0 ] ( [ next#6 bitmap_line::x2#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [11] if(next#0!=$140) goto main::@5 [ next#0 ] ( [ next#0 ] { } ) always clobbers reg byte a -Statement [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [41] abs_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 abs_u16::w#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [43] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x2#0 abs_u16::return#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2076,24 +2076,24 @@ Statement [84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitma Statement [86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [90] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:37 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:39 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:21 [ memset::c#4 ] -Statement [91] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:37 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:39 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [92] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:37 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:39 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [92] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [94] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [96] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:21 [ memset::c#4 ] Statement [102] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:9::abs_u16:42 [ next#6 bitmap_line::x2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:9::abs_u16:45 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a -Statement [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a +Statement [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a reg byte y Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] bitmap_line::x2#0 = next#6 [ next#6 bitmap_line::x2#0 ] ( [ next#6 bitmap_line::x2#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [11] if(next#0!=$140) goto main::@5 [ next#0 ] ( [ next#0 ] { } ) always clobbers reg byte a Statement [24] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [41] abs_u16::w#0 = bitmap_line::x2#0 [ bitmap_line::x2#0 abs_u16::w#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [43] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x2#0 abs_u16::return#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [44] bitmap_line::dx#0 = abs_u16::return#0 [ bitmap_line::x2#0 bitmap_line::dx#0 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2125,14 +2125,14 @@ Statement [83] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0 [ bitmap Statement [84] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#2 bitmap_line::e1#2 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [86] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:9 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [90] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:37 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:39 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [91] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:37 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:39 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [92] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:37 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:39 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [92] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [94] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [96] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:37 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:39 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [102] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:9::abs_u16:42 [ next#6 bitmap_line::x2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 bitmap_line::x2#0 next#6 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:9::abs_u16:45 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { next#6 = bitmap_line::x2#0 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [113] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [114] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a -Statement [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a +Statement [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a Statement [117] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:9::bitmap_plot:62 [ next#6 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:9::bitmap_plot:73 [ next#6 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:9::bitmap_plot:79 [ next#6 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { next#6 = bitmap_line::x2#0 } { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:9::bitmap_plot:88 [ next#6 ] { { next#6 = bitmap_line::x2#0 } } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ next#6 next#11 next#0 ] : zp[2]:2 , Potential registers zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -2290,10 +2290,10 @@ main: { // [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 - // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY - // [4] call bitmap_init + // [4] call bitmap_init // [14] phi from main to bitmap_init [phi:main->bitmap_init] bitmap_init_from_main: jsr bitmap_init @@ -2302,7 +2302,7 @@ main: { jmp __b3 // main::@3 __b3: - // [6] call bitmap_clear + // [6] call bitmap_clear // [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear] bitmap_clear_from___b3: jsr bitmap_clear @@ -2317,7 +2317,7 @@ main: { // main::@1 __b1: // [8] bitmap_line::x2#0 = next#6 - // [9] call bitmap_line + // [9] call bitmap_line jsr bitmap_line jmp __b4 // main::@4 @@ -2360,6 +2360,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $10 .label yoffs = 2 @@ -2442,7 +2443,7 @@ bitmap_init: { jmp __b5 // bitmap_init::@5 __b5: - // [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -2472,14 +2473,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10+PURPLE - // [37] call memset + // [37] call memset // [89] phi from bitmap_clear to memset [phi:bitmap_clear->memset] memset_from_bitmap_clear: // [89] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [89] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [89] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -2495,12 +2497,12 @@ bitmap_clear: { jmp __b1 // bitmap_clear::@1 __b1: - // [39] call memset + // [39] call memset // [89] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] memset_from___b1: // [89] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [89] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [89] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -2519,7 +2521,7 @@ bitmap_clear: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(2) x2) +// void bitmap_line(unsigned int x1, unsigned int y1, __zp(2) unsigned int x2, unsigned int y2) bitmap_line: { .const x1 = 0 .const y1 = 0 @@ -2538,7 +2540,7 @@ bitmap_line: { sta.z abs_u16.w lda.z x2+1 sta.z abs_u16.w+1 - // [42] call abs_u16 + // [42] call abs_u16 // [98] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] abs_u16_from_bitmap_line: // [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy @@ -2552,7 +2554,7 @@ bitmap_line: { sta.z dx lda.z abs_u16.return+1 sta.z dx+1 - // [45] call abs_u16 + // [45] call abs_u16 // [98] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] abs_u16_from___b12: // [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1 @@ -2585,7 +2587,7 @@ bitmap_line: { sta.z sgn_u16.w lda.z x2+1 sta.z sgn_u16.w+1 - // [51] call sgn_u16 + // [51] call sgn_u16 // [105] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] sgn_u16_from___b1: // [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy @@ -2599,7 +2601,7 @@ bitmap_line: { sta.z sx lda.z sgn_u16.return+1 sta.z sx+1 - // [54] call sgn_u16 + // [54] call sgn_u16 // [105] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] sgn_u16_from___b14: // [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1 @@ -2656,9 +2658,9 @@ bitmap_line: { // bitmap_line::@6 __b6: // [60] bitmap_plot::x#1 = bitmap_line::x#13 - // [61] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 + // [61] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 ldx.z y - // [62] call bitmap_plot + // [62] call bitmap_plot // [112] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] bitmap_plot_from___b6: // [112] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy @@ -2735,9 +2737,9 @@ bitmap_line: { // bitmap_line::@3 __b3: // [71] bitmap_plot::x#2 = bitmap_line::x#6 - // [72] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [72] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [73] call bitmap_plot + // [73] call bitmap_plot // [112] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] bitmap_plot_from___b3: // [112] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy @@ -2781,9 +2783,9 @@ bitmap_line: { // bitmap_line::@9 __b9: // [77] bitmap_plot::x#3 = bitmap_line::x#7 - // [78] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [78] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [79] call bitmap_plot + // [79] call bitmap_plot // [112] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] bitmap_plot_from___b9: // [112] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy @@ -2857,7 +2859,7 @@ bitmap_line: { jmp __b4 // bitmap_line::@4 __b4: - // [88] call bitmap_plot + // [88] call bitmap_plot // [112] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] bitmap_plot_from___b4: // [112] phi bitmap_plot::x#4 = bitmap_line::x1#0 [phi:bitmap_line::@4->bitmap_plot#0] -- vwuz1=vwuc1 @@ -2872,7 +2874,7 @@ bitmap_line: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp(8) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp(8) unsigned int num) memset: { .label end = 8 .label dst = $a @@ -2887,7 +2889,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [91] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [91] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -2895,7 +2897,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [92] memset::dst#4 = (byte*)memset::str#3 + // [92] memset::dst#4 = (char *)memset::str#3 // [93] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2930,7 +2932,7 @@ memset: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($c) w) +// __zp($c) unsigned int abs_u16(__zp($c) unsigned int w) abs_u16: { .label w = $c .label return = $c @@ -2965,7 +2967,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($15) w) +// __zp($e) unsigned int sgn_u16(__zp($15) unsigned int w) sgn_u16: { .label w = $15 .label return = $e @@ -3004,7 +3006,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp($a) x, byte register(X) y) +// void bitmap_plot(__zp($a) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $17 .label plotter = $15 @@ -3021,7 +3023,7 @@ bitmap_plot: { lda.z x+1 and #>$fff8 sta.z __1+1 - // [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 @@ -3206,150 +3208,150 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination Removing unreachable instruction jmp __b1 Succesful ASM optimization Pass5UnreachableCodeElimination -Fixing long branch [175] beq __b4 to bne +Fixing long branch [177] beq __b4 to bne FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BITMAP = (byte*) 8192 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant const byte PURPLE = 4 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2002.0 -byte~ abs_u16::$1 reg byte a 2002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:12 202.0 -word abs_u16::return#1 return zp[2]:12 202.0 -word abs_u16::return#2 return zp[2]:12 2002.0 -word abs_u16::return#4 return zp[2]:12 551.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:12 202.0 -word abs_u16::w#2 w zp[2]:12 776.0 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10+PURPLE -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:16 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:2 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:2 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:2 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:17 800.1842105263158 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:12 868.7714285714285 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:8 202.0 -word bitmap_line::e#1 e zp[2]:8 13334.666666666666 -word bitmap_line::e#2 e zp[2]:8 20002.0 -word bitmap_line::e#3 e zp[2]:8 4020.6000000000004 -word bitmap_line::e#6 e zp[2]:8 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:6 202.0 -word bitmap_line::e1#1 e1 zp[2]:6 13334.666666666666 -word bitmap_line::e1#2 e1 zp[2]:6 20002.0 -word bitmap_line::e1#3 e1 zp[2]:6 4020.6000000000004 -word bitmap_line::e1#6 e1 zp[2]:6 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:19 693.2068965517242 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:14 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:10 10001.0 -word bitmap_line::x#12 x zp[2]:10 20002.0 -word bitmap_line::x#13 x zp[2]:10 5714.857142857143 -word bitmap_line::x#15 x zp[2]:10 5714.857142857143 -word bitmap_line::x#6 x zp[2]:10 20103.0 -word bitmap_line::x#7 x zp[2]:10 7500.75 -word bitmap_line::x1 -constant word bitmap_line::x1#0 x1 = 0 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:2 340.4666666666667 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:4 5714.857142857143 -word bitmap_line::y#13 y zp[2]:4 20002.0 -word bitmap_line::y#15 y zp[2]:4 4286.142857142857 -word bitmap_line::y#2 y zp[2]:4 10001.0 -word bitmap_line::y#4 y zp[2]:4 5000.5 -word bitmap_line::y#7 y zp[2]:4 10001.0 -word bitmap_line::y1 -constant word bitmap_line::y1#0 y1 = 0 -word bitmap_line::y2 -constant word bitmap_line::y2#0 y2 = $64 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:23 200002.0 -byte~ bitmap_plot::$2 reg byte x 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:21 50000.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:21 150001.5 -word bitmap_plot::x -word bitmap_plot::x#1 x zp[2]:10 10001.0 -word bitmap_plot::x#2 x zp[2]:10 101.0 -word bitmap_plot::x#3 x zp[2]:10 10001.0 -word bitmap_plot::x#4 x zp[2]:10 55026.25 -byte bitmap_plot::y -byte bitmap_plot::y#1 reg byte x 20002.0 -byte bitmap_plot::y#2 reg byte x 202.0 -byte bitmap_plot::y#3 reg byte x 20002.0 -byte bitmap_plot::y#4 reg byte x 220105.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BITMAP = (char *) 8192 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant const char PURPLE = 4 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2002.0 +char abs_u16::$1 // reg byte a 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:12 202.0 +unsigned int abs_u16::return#1 // return zp[2]:12 202.0 +unsigned int abs_u16::return#2 // return zp[2]:12 2002.0 +unsigned int abs_u16::return#4 // return zp[2]:12 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:12 202.0 +unsigned int abs_u16::w#2 // w zp[2]:12 776.0 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10+PURPLE // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:16 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:2 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:2 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:2 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:17 800.1842105263158 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:12 868.7714285714285 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:8 202.0 +unsigned int bitmap_line::e#1 // e zp[2]:8 13334.666666666666 +unsigned int bitmap_line::e#2 // e zp[2]:8 20002.0 +unsigned int bitmap_line::e#3 // e zp[2]:8 4020.6000000000004 +unsigned int bitmap_line::e#6 // e zp[2]:8 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:6 202.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:6 13334.666666666666 +unsigned int bitmap_line::e1#2 // e1 zp[2]:6 20002.0 +unsigned int bitmap_line::e1#3 // e1 zp[2]:6 4020.6000000000004 +unsigned int bitmap_line::e1#6 // e1 zp[2]:6 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:19 693.2068965517242 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:14 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:10 10001.0 +unsigned int bitmap_line::x#12 // x zp[2]:10 20002.0 +unsigned int bitmap_line::x#13 // x zp[2]:10 5714.857142857143 +unsigned int bitmap_line::x#15 // x zp[2]:10 5714.857142857143 +unsigned int bitmap_line::x#6 // x zp[2]:10 20103.0 +unsigned int bitmap_line::x#7 // x zp[2]:10 7500.75 +unsigned int bitmap_line::x1 +__constant unsigned int bitmap_line::x1#0 = 0 // x1 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:2 340.4666666666667 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:4 5714.857142857143 +unsigned int bitmap_line::y#13 // y zp[2]:4 20002.0 +unsigned int bitmap_line::y#15 // y zp[2]:4 4286.142857142857 +unsigned int bitmap_line::y#2 // y zp[2]:4 10001.0 +unsigned int bitmap_line::y#4 // y zp[2]:4 5000.5 +unsigned int bitmap_line::y#7 // y zp[2]:4 10001.0 +unsigned int bitmap_line::y1 +__constant unsigned int bitmap_line::y1#0 = 0 // y1 +unsigned int bitmap_line::y2 +__constant unsigned int bitmap_line::y2#0 = $64 // y2 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:23 200002.0 +char bitmap_plot::$2 // reg byte x 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:21 50000.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:21 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#1 // x zp[2]:10 10001.0 +unsigned int bitmap_plot::x#2 // x zp[2]:10 101.0 +unsigned int bitmap_plot::x#3 // x zp[2]:10 10001.0 +unsigned int bitmap_plot::x#4 // x zp[2]:10 55026.25 +char bitmap_plot::y +char bitmap_plot::y#1 // reg byte x 20002.0 +char bitmap_plot::y#2 // reg byte x 202.0 +char bitmap_plot::y#3 // reg byte x 20002.0 +char bitmap_plot::y#4 // reg byte x 220105.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:10 2002.0 -byte* memset::dst#2 dst zp[2]:10 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:10 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:8 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:8 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:10 -word next -word next#0 next zp[2]:2 11.0 -word next#11 next zp[2]:2 22.0 -word next#6 next zp[2]:2 11.0 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2002.0 -byte~ sgn_u16::$1 reg byte a 2002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:14 202.0 -word sgn_u16::return#1 return zp[2]:14 202.0 -word sgn_u16::return#4 return zp[2]:14 50.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:21 202.0 -word sgn_u16::w#2 w zp[2]:21 1102.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:10 2002.0 +char *memset::dst#2 // dst zp[2]:10 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:10 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:8 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:8 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:10 +unsigned int next +unsigned int next#0 // next zp[2]:2 11.0 +unsigned int next#11 // next zp[2]:2 22.0 +unsigned int next#6 // next zp[2]:2 11.0 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2002.0 +char sgn_u16::$1 // reg byte a 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#1 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#4 // return zp[2]:14 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:21 202.0 +unsigned int sgn_u16::w#2 // w zp[2]:21 1102.0 reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] @@ -3437,17 +3439,17 @@ main: { lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // *VICII_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400)) - // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // bitmap_init(BITMAP, SCREEN) - // [4] call bitmap_init + // [4] call bitmap_init // [14] phi from main to bitmap_init [phi:main->bitmap_init] jsr bitmap_init // [5] phi from main to main::@3 [phi:main->main::@3] // main::@3 // bitmap_clear(PURPLE, WHITE) - // [6] call bitmap_clear + // [6] call bitmap_clear // [36] phi from main::@3 to bitmap_clear [phi:main::@3->bitmap_clear] jsr bitmap_clear // [7] phi from main::@3 to main::@1 [phi:main::@3->main::@1] @@ -3459,7 +3461,7 @@ main: { __b1: // bitmap_line(0,0,next,100) // [8] bitmap_line::x2#0 = next#6 - // [9] call bitmap_line + // [9] call bitmap_line jsr bitmap_line // main::@4 // next++; @@ -3492,6 +3494,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $10 .label yoffs = 2 @@ -3569,7 +3572,7 @@ bitmap_init: { bne __b4 // bitmap_init::@5 // yoffs = yoffs + 40*8 - // [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [31] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -3596,14 +3599,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10+PURPLE // memset(bitmap_screen, col, 1000uw) - // [37] call memset + // [37] call memset // [89] phi from bitmap_clear to memset [phi:bitmap_clear->memset] // [89] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [89] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [89] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -3617,11 +3621,11 @@ bitmap_clear: { // [38] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] // bitmap_clear::@1 // memset(bitmap_gfx, 0, 8000uw) - // [39] call memset + // [39] call memset // [89] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] // [89] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [89] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [89] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -3639,7 +3643,7 @@ bitmap_clear: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(2) x2) +// void bitmap_line(unsigned int x1, unsigned int y1, __zp(2) unsigned int x2, unsigned int y2) bitmap_line: { .const x1 = 0 .const y1 = 0 @@ -3659,7 +3663,7 @@ bitmap_line: { sta.z abs_u16.w lda.z x2+1 sta.z abs_u16.w+1 - // [42] call abs_u16 + // [42] call abs_u16 // [98] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] // [98] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy jsr abs_u16 @@ -3672,7 +3676,7 @@ bitmap_line: { lda.z abs_u16.return+1 sta.z dx+1 // unsigned int dy = abs_u16(y2-y1) - // [45] call abs_u16 + // [45] call abs_u16 // [98] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] // [98] phi abs_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@12->abs_u16#0] -- vwuz1=vwuc1 lda #sgn_u16] // [105] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy jsr sgn_u16 @@ -3717,7 +3721,7 @@ bitmap_line: { lda.z sgn_u16.return+1 sta.z sx+1 // unsigned int sy = sgn_u16(y2-y1) - // [54] call sgn_u16 + // [54] call sgn_u16 // [105] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] // [105] phi sgn_u16::w#2 = bitmap_line::y2#0 [phi:bitmap_line::@14->sgn_u16#0] -- vwuz1=vwuc1 lda #bitmap_plot] // [112] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy // [112] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy @@ -3843,9 +3847,9 @@ bitmap_line: { __b3: // bitmap_plot(x,(char)y) // [71] bitmap_plot::x#2 = bitmap_line::x#6 - // [72] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [72] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [73] call bitmap_plot + // [73] call bitmap_plot // [112] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] // [112] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy // [112] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy @@ -3885,9 +3889,9 @@ bitmap_line: { __b9: // bitmap_plot(x,(char)y) // [77] bitmap_plot::x#3 = bitmap_line::x#7 - // [78] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [78] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [79] call bitmap_plot + // [79] call bitmap_plot // [112] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] // [112] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy // [112] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy @@ -3957,7 +3961,7 @@ bitmap_line: { // bitmap_line::@4 __b4: // bitmap_plot(x,(char)y) - // [88] call bitmap_plot + // [88] call bitmap_plot // [112] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] // [112] phi bitmap_plot::x#4 = bitmap_line::x1#0 [phi:bitmap_line::@4->bitmap_plot#0] -- vwuz1=vwuc1 lda #memset::@2] // [93] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 @@ -4029,7 +4033,7 @@ memset: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($c) w) +// __zp($c) unsigned int abs_u16(__zp($c) unsigned int w) abs_u16: { .label w = $c .label return = $c @@ -4065,7 +4069,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($15) w) +// __zp($e) unsigned int sgn_u16(__zp($15) unsigned int w) sgn_u16: { .label w = $15 .label return = $e @@ -4101,7 +4105,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp($a) x, byte register(X) y) +// void bitmap_plot(__zp($a) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $17 .label plotter = $15 @@ -4121,7 +4125,7 @@ bitmap_plot: { and #>$fff8 sta.z __1+1 // plotter += ( x & $fff8 ) - // [115] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [115] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 diff --git a/src/test/ref/bitmap-line-anim-2.sym b/src/test/ref/bitmap-line-anim-2.sym index 25d7c9608..947e99e77 100644 --- a/src/test/ref/bitmap-line-anim-2.sym +++ b/src/test/ref/bitmap-line-anim-2.sym @@ -1,144 +1,144 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BITMAP = (byte*) 8192 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D011 = (byte*) 53265 -constant const byte PURPLE = 4 -constant byte* const SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2002.0 -byte~ abs_u16::$1 reg byte a 2002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:12 202.0 -word abs_u16::return#1 return zp[2]:12 202.0 -word abs_u16::return#2 return zp[2]:12 2002.0 -word abs_u16::return#4 return zp[2]:12 551.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:12 202.0 -word abs_u16::w#2 w zp[2]:12 776.0 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10+PURPLE -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:16 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:2 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:2 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:2 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:17 800.1842105263158 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:12 868.7714285714285 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:8 202.0 -word bitmap_line::e#1 e zp[2]:8 13334.666666666666 -word bitmap_line::e#2 e zp[2]:8 20002.0 -word bitmap_line::e#3 e zp[2]:8 4020.6000000000004 -word bitmap_line::e#6 e zp[2]:8 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:6 202.0 -word bitmap_line::e1#1 e1 zp[2]:6 13334.666666666666 -word bitmap_line::e1#2 e1 zp[2]:6 20002.0 -word bitmap_line::e1#3 e1 zp[2]:6 4020.6000000000004 -word bitmap_line::e1#6 e1 zp[2]:6 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:19 693.2068965517242 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:14 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:10 10001.0 -word bitmap_line::x#12 x zp[2]:10 20002.0 -word bitmap_line::x#13 x zp[2]:10 5714.857142857143 -word bitmap_line::x#15 x zp[2]:10 5714.857142857143 -word bitmap_line::x#6 x zp[2]:10 20103.0 -word bitmap_line::x#7 x zp[2]:10 7500.75 -word bitmap_line::x1 -constant word bitmap_line::x1#0 x1 = 0 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:2 340.4666666666667 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:4 5714.857142857143 -word bitmap_line::y#13 y zp[2]:4 20002.0 -word bitmap_line::y#15 y zp[2]:4 4286.142857142857 -word bitmap_line::y#2 y zp[2]:4 10001.0 -word bitmap_line::y#4 y zp[2]:4 5000.5 -word bitmap_line::y#7 y zp[2]:4 10001.0 -word bitmap_line::y1 -constant word bitmap_line::y1#0 y1 = 0 -word bitmap_line::y2 -constant word bitmap_line::y2#0 y2 = $64 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:23 200002.0 -byte~ bitmap_plot::$2 reg byte x 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:21 50000.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:21 150001.5 -word bitmap_plot::x -word bitmap_plot::x#1 x zp[2]:10 10001.0 -word bitmap_plot::x#2 x zp[2]:10 101.0 -word bitmap_plot::x#3 x zp[2]:10 10001.0 -word bitmap_plot::x#4 x zp[2]:10 55026.25 -byte bitmap_plot::y -byte bitmap_plot::y#1 reg byte x 20002.0 -byte bitmap_plot::y#2 reg byte x 202.0 -byte bitmap_plot::y#3 reg byte x 20002.0 -byte bitmap_plot::y#4 reg byte x 220105.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BITMAP = (char *) 8192 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D011 = (char *) 53265 +__constant const char PURPLE = 4 +__constant char * const SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2002.0 +char abs_u16::$1 // reg byte a 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:12 202.0 +unsigned int abs_u16::return#1 // return zp[2]:12 202.0 +unsigned int abs_u16::return#2 // return zp[2]:12 2002.0 +unsigned int abs_u16::return#4 // return zp[2]:12 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:12 202.0 +unsigned int abs_u16::w#2 // w zp[2]:12 776.0 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10+PURPLE // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:16 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:2 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:2 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:2 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:17 800.1842105263158 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:12 868.7714285714285 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:8 202.0 +unsigned int bitmap_line::e#1 // e zp[2]:8 13334.666666666666 +unsigned int bitmap_line::e#2 // e zp[2]:8 20002.0 +unsigned int bitmap_line::e#3 // e zp[2]:8 4020.6000000000004 +unsigned int bitmap_line::e#6 // e zp[2]:8 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:6 202.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:6 13334.666666666666 +unsigned int bitmap_line::e1#2 // e1 zp[2]:6 20002.0 +unsigned int bitmap_line::e1#3 // e1 zp[2]:6 4020.6000000000004 +unsigned int bitmap_line::e1#6 // e1 zp[2]:6 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:19 693.2068965517242 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:14 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:10 10001.0 +unsigned int bitmap_line::x#12 // x zp[2]:10 20002.0 +unsigned int bitmap_line::x#13 // x zp[2]:10 5714.857142857143 +unsigned int bitmap_line::x#15 // x zp[2]:10 5714.857142857143 +unsigned int bitmap_line::x#6 // x zp[2]:10 20103.0 +unsigned int bitmap_line::x#7 // x zp[2]:10 7500.75 +unsigned int bitmap_line::x1 +__constant unsigned int bitmap_line::x1#0 = 0 // x1 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:2 340.4666666666667 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:4 5714.857142857143 +unsigned int bitmap_line::y#13 // y zp[2]:4 20002.0 +unsigned int bitmap_line::y#15 // y zp[2]:4 4286.142857142857 +unsigned int bitmap_line::y#2 // y zp[2]:4 10001.0 +unsigned int bitmap_line::y#4 // y zp[2]:4 5000.5 +unsigned int bitmap_line::y#7 // y zp[2]:4 10001.0 +unsigned int bitmap_line::y1 +__constant unsigned int bitmap_line::y1#0 = 0 // y1 +unsigned int bitmap_line::y2 +__constant unsigned int bitmap_line::y2#0 = $64 // y2 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:23 200002.0 +char bitmap_plot::$2 // reg byte x 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:21 50000.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:21 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#1 // x zp[2]:10 10001.0 +unsigned int bitmap_plot::x#2 // x zp[2]:10 101.0 +unsigned int bitmap_plot::x#3 // x zp[2]:10 10001.0 +unsigned int bitmap_plot::x#4 // x zp[2]:10 55026.25 +char bitmap_plot::y +char bitmap_plot::y#1 // reg byte x 20002.0 +char bitmap_plot::y#2 // reg byte x 202.0 +char bitmap_plot::y#3 // reg byte x 20002.0 +char bitmap_plot::y#4 // reg byte x 220105.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:10 2002.0 -byte* memset::dst#2 dst zp[2]:10 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:10 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:8 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:8 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:10 -word next -word next#0 next zp[2]:2 11.0 -word next#11 next zp[2]:2 22.0 -word next#6 next zp[2]:2 11.0 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2002.0 -byte~ sgn_u16::$1 reg byte a 2002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:14 202.0 -word sgn_u16::return#1 return zp[2]:14 202.0 -word sgn_u16::return#4 return zp[2]:14 50.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:21 202.0 -word sgn_u16::w#2 w zp[2]:21 1102.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:10 2002.0 +char *memset::dst#2 // dst zp[2]:10 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:10 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:8 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:8 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:10 +unsigned int next +unsigned int next#0 // next zp[2]:2 11.0 +unsigned int next#11 // next zp[2]:2 22.0 +unsigned int next#6 // next zp[2]:2 11.0 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2002.0 +char sgn_u16::$1 // reg byte a 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#1 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#4 // return zp[2]:14 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:21 202.0 +unsigned int sgn_u16::w#2 // w zp[2]:21 1102.0 reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] diff --git a/src/test/ref/bitmap-plot-0.asm b/src/test/ref/bitmap-plot-0.asm index c49c05e43..53e2be8cb 100644 --- a/src/test/ref/bitmap-plot-0.asm +++ b/src/test/ref/bitmap-plot-0.asm @@ -197,6 +197,7 @@ main: { jmp __b2 } // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = 9 .label yoffs = $c @@ -258,6 +259,7 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) @@ -324,7 +326,7 @@ init_irq: { rts } // Plot a single dot in the bitmap -// bitmap_plot(word zp(2) x, byte register(X) y) +// void bitmap_plot(__zp(2) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $c .label plotter = $a @@ -360,7 +362,7 @@ bitmap_plot: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp($c) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp($c) unsigned int num) memset: { .label end = $c .label dst = $a diff --git a/src/test/ref/bitmap-plot-0.cfg b/src/test/ref/bitmap-plot-0.cfg index e904aae09..a5e63d007 100644 --- a/src/test/ref/bitmap-plot-0.cfg +++ b/src/test/ref/bitmap-plot-0.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -33,11 +33,11 @@ irq::@return: scope:[irq] from irq::@1 void main() main: scope:[main] from __start::@1 [11] phi() - [12] call bitmap_init + [12] call bitmap_init to:main::@8 main::@8: scope:[main] from main [13] phi() - [14] call bitmap_clear + [14] call bitmap_clear to:main::@9 main::@9: scope:[main] from main::@8 [15] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 @@ -47,7 +47,7 @@ main::toD0181: scope:[main] from main::@9 to:main::@7 main::@7: scope:[main] from main::toD0181 [17] *D018 = main::toD0181_return#0 - [18] call init_irq + [18] call init_irq to:main::@1 main::@1: scope:[main] from main::@4 main::@7 [19] main::vy#2 = phi( main::@7/1, main::@4/main::vy#8 ) @@ -58,7 +58,7 @@ main::@1: scope:[main] from main::@4 main::@7 main::@2: scope:[main] from main::@1 [20] bitmap_plot::x#0 = main::x#2 [21] bitmap_plot::y#0 = main::y#2 - [22] call bitmap_plot + [22] call bitmap_plot to:main::@10 main::@10: scope:[main] from main::@2 [23] main::x#1 = main::x#2 + main::vx#2 @@ -86,7 +86,7 @@ main::@4: scope:[main] from main::@12 main::@6 [33] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [34] phi() to:bitmap_init::@1 @@ -117,7 +117,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [50] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [52] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -128,14 +128,14 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [55] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@8 [56] phi() - [57] call memset + [57] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [58] phi() - [59] call memset + [59] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [60] return @@ -146,7 +146,7 @@ init_irq: scope:[init_irq] from main::@7 asm { sei } [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [63] *PROCPORT = PROCPORT_RAM_IO - [64] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [66] *RASTER = 0 [67] *IRQ_ENABLE = IRQ_RASTER @@ -157,11 +157,11 @@ init_irq::@return: scope:[init_irq] from init_irq [70] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from main::@2 [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [72] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 - [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [74] bitmap_plot::$2 = byte0 bitmap_plot::x#0 [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return @@ -169,16 +169,16 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [76] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [77] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [77] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [77] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [77] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [78] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [79] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [80] memset::dst#4 = (byte*)memset::str#3 + [79] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [80] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [81] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log index 7f89d808f..aebe309e0 100644 --- a/src/test/ref/bitmap-plot-0.log +++ b/src/test/ref/bitmap-plot-0.log @@ -4,13 +4,13 @@ Resolved forward reference frame_cnt to frame_cnt Resolved forward reference irq to __interrupt(hardware_clobber) void irq() Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$2 = call toD018(SCREEN, BITMAP) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement bitmap_clear::$1 Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main bitmap_init::screen#1 = phi( main/bitmap_init::screen#0 ) bitmap_init::gfx#1 = phi( main/bitmap_init::gfx#0 ) @@ -96,7 +96,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6 return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@8 bitmap_gfx#14 = phi( main::@8/bitmap_gfx#2 ) bitmap_screen#8 = phi( main::@8/bitmap_screen#2 ) @@ -104,18 +104,18 @@ bitmap_clear: scope:[bitmap_clear] from main::@8 bitmap_clear::fgcol#1 = phi( main::@8/bitmap_clear::fgcol#0 ) bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#1 - memset::str#0 = (void*)bitmap_screen#8 + memset::str#0 = (void *)bitmap_screen#8 memset::c#0 = bitmap_clear::col#0 memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_gfx#8 = phi( bitmap_clear/bitmap_gfx#14 ) - memset::str#1 = (void*)bitmap_gfx#8 + memset::str#1 = (void *)bitmap_gfx#8 memset::c#1 = 0 memset::num#1 = $1f40 - call memset + call memset memset::return#1 = memset::return#3 to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 @@ -124,12 +124,12 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2 return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from main::@2 bitmap_plot::x#1 = phi( main::@2/bitmap_plot::x#0 ) bitmap_plot::y#1 = phi( main::@2/bitmap_plot::y#0 ) bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#1] w= bitmap_plot_ylo[bitmap_plot::y#1] - bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 + bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 bitmap_plot::$1 = bitmap_plot::x#1 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1 bitmap_plot::$2 = byte0 bitmap_plot::x#1 @@ -139,7 +139,7 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 memset::c#5 = phi( bitmap_clear/memset::c#0, bitmap_clear::@1/memset::c#1 ) memset::str#4 = phi( bitmap_clear/memset::str#0, bitmap_clear::@1/memset::str#1 ) @@ -156,9 +156,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -188,7 +188,7 @@ main: scope:[main] from __start::@1 bitmap_gfx#15 = phi( __start::@1/bitmap_gfx#17 ) bitmap_init::gfx#0 = BITMAP bitmap_init::screen#0 = SCREEN - call bitmap_init + call bitmap_init to:main::@8 main::@8: scope:[main] from main bitmap_screen#9 = phi( main/bitmap_screen#1 ) @@ -197,7 +197,7 @@ main::@8: scope:[main] from main bitmap_screen#2 = bitmap_screen#9 bitmap_clear::bgcol#0 = BLACK bitmap_clear::fgcol#0 = WHITE - call bitmap_clear + call bitmap_clear to:main::@9 main::@9: scope:[main] from main::@8 bitmap_screen#33 = phi( main::@8/bitmap_screen#2 ) @@ -211,11 +211,11 @@ main::toD0181: scope:[main] from main::@9 bitmap_gfx#32 = phi( main::@9/bitmap_gfx#34 ) main::toD0181_gfx#1 = phi( main::@9/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@9/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -233,7 +233,7 @@ main::@7: scope:[main] from main::toD0181_@return main::toD0181_return#3 = phi( main::toD0181_@return/main::toD0181_return#1 ) main::$2 = main::toD0181_return#3 *D018 = main::$2 - call init_irq + call init_irq to:main::@10 main::@10: scope:[main] from main::@7 bitmap_screen#19 = phi( main::@7/bitmap_screen#22 ) @@ -261,7 +261,7 @@ main::@2: scope:[main] from main::@1 main::x#2 = phi( main::@1/main::x#4 ) bitmap_plot::x#0 = main::x#2 bitmap_plot::y#0 = main::y#2 - call bitmap_plot + call bitmap_plot to:main::@11 main::@11: scope:[main] from main::@2 bitmap_screen#27 = phi( main::@2/bitmap_screen#32 ) @@ -333,7 +333,7 @@ init_irq: scope:[init_irq] from main::@7 asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -366,14 +366,14 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bitmap_screen#4 = (byte*) 0 - bitmap_gfx#4 = (byte*) 0 + bitmap_screen#4 = (char *) 0 + bitmap_gfx#4 = (char *) 0 frame_cnt = 1 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 bitmap_screen#16 = phi( __start::__init1/bitmap_screen#4 ) bitmap_gfx#17 = phi( __start::__init1/bitmap_gfx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 bitmap_screen#11 = phi( __start::@1/bitmap_screen#3 ) @@ -390,291 +390,291 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* BITMAP = (byte*)$2000 -constant const byte BLACK = 0 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const D011 = (byte*)$d011 -constant byte* const D018 = (byte*)$d018 -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*)$d012 -constant byte* SCREEN = (byte*)$400 -constant const byte VICII_BMM = $20 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant char *BITMAP = (char *)$2000 +__constant const char BLACK = 0 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const D011 = (char *)$d011 +__constant char * const D018 = (char *)$d018 +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *)$d012 +__constant char *SCREEN = (char *)$400 +__constant const char VICII_BMM = $20 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -number~ bitmap_clear::$0 -byte bitmap_clear::bgcol -byte bitmap_clear::bgcol#0 -byte bitmap_clear::bgcol#1 -byte bitmap_clear::col -byte bitmap_clear::col#0 -byte bitmap_clear::fgcol -byte bitmap_clear::fgcol#0 -byte bitmap_clear::fgcol#1 -byte* bitmap_gfx -byte* bitmap_gfx#0 -byte* bitmap_gfx#1 -byte* bitmap_gfx#10 -byte* bitmap_gfx#11 -byte* bitmap_gfx#12 -byte* bitmap_gfx#13 -byte* bitmap_gfx#14 -byte* bitmap_gfx#15 -byte* bitmap_gfx#16 -byte* bitmap_gfx#17 -byte* bitmap_gfx#18 -byte* bitmap_gfx#19 -byte* bitmap_gfx#2 -byte* bitmap_gfx#20 -byte* bitmap_gfx#21 -byte* bitmap_gfx#22 -byte* bitmap_gfx#23 -byte* bitmap_gfx#24 -byte* bitmap_gfx#25 -byte* bitmap_gfx#26 -byte* bitmap_gfx#27 -byte* bitmap_gfx#28 -byte* bitmap_gfx#29 -byte* bitmap_gfx#3 -byte* bitmap_gfx#30 -byte* bitmap_gfx#31 -byte* bitmap_gfx#32 -byte* bitmap_gfx#33 -byte* bitmap_gfx#34 -byte* bitmap_gfx#4 -byte* bitmap_gfx#5 -byte* bitmap_gfx#6 -byte* bitmap_gfx#7 -byte* bitmap_gfx#8 -byte* bitmap_gfx#9 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -bool~ bitmap_init::$0 -bool~ bitmap_init::$1 -byte*~ bitmap_init::$10 -bool~ bitmap_init::$11 -bool~ bitmap_init::$2 -number~ bitmap_init::$3 -byte~ bitmap_init::$4 -number~ bitmap_init::$5 -byte~ bitmap_init::$6 -number~ bitmap_init::$7 -bool~ bitmap_init::$8 -bool~ bitmap_init::$9 -byte bitmap_init::bits -byte bitmap_init::bits#0 -byte bitmap_init::bits#1 -byte bitmap_init::bits#2 -byte bitmap_init::bits#3 -byte bitmap_init::bits#4 -byte* bitmap_init::gfx -byte* bitmap_init::gfx#0 -byte* bitmap_init::gfx#1 -byte* bitmap_init::gfx#2 -byte* bitmap_init::gfx#3 -byte* bitmap_init::gfx#4 -byte* bitmap_init::gfx#5 -byte* bitmap_init::screen -byte* bitmap_init::screen#0 -byte* bitmap_init::screen#1 -byte bitmap_init::x -byte bitmap_init::x#0 -byte bitmap_init::x#1 -byte bitmap_init::x#2 -byte bitmap_init::x#3 -byte bitmap_init::x#4 -byte bitmap_init::y -byte bitmap_init::y#0 -byte bitmap_init::y#1 -byte bitmap_init::y#2 -byte bitmap_init::y#3 -byte bitmap_init::y#4 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#0 -byte* bitmap_init::yoffs#1 -byte* bitmap_init::yoffs#2 -byte* bitmap_init::yoffs#3 -byte* bitmap_init::yoffs#4 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$0 -number~ bitmap_plot::$1 -byte~ bitmap_plot::$2 -byte* bitmap_plot::plotter -byte* bitmap_plot::plotter#0 -byte* bitmap_plot::plotter#1 -word bitmap_plot::x -word bitmap_plot::x#0 -word bitmap_plot::x#1 -byte bitmap_plot::y -byte bitmap_plot::y#0 -byte bitmap_plot::y#1 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -byte* bitmap_screen#0 -byte* bitmap_screen#1 -byte* bitmap_screen#10 -byte* bitmap_screen#11 -byte* bitmap_screen#12 -byte* bitmap_screen#13 -byte* bitmap_screen#14 -byte* bitmap_screen#15 -byte* bitmap_screen#16 -byte* bitmap_screen#17 -byte* bitmap_screen#18 -byte* bitmap_screen#19 -byte* bitmap_screen#2 -byte* bitmap_screen#20 -byte* bitmap_screen#21 -byte* bitmap_screen#22 -byte* bitmap_screen#23 -byte* bitmap_screen#24 -byte* bitmap_screen#25 -byte* bitmap_screen#26 -byte* bitmap_screen#27 -byte* bitmap_screen#28 -byte* bitmap_screen#29 -byte* bitmap_screen#3 -byte* bitmap_screen#30 -byte* bitmap_screen#31 -byte* bitmap_screen#32 -byte* bitmap_screen#33 -byte* bitmap_screen#4 -byte* bitmap_screen#5 -byte* bitmap_screen#6 -byte* bitmap_screen#7 -byte* bitmap_screen#8 -byte* bitmap_screen#9 -volatile byte frame_cnt loadstore +void bitmap_clear(char bgcol , char fgcol) +number bitmap_clear::$0 +char bitmap_clear::bgcol +char bitmap_clear::bgcol#0 +char bitmap_clear::bgcol#1 +char bitmap_clear::col +char bitmap_clear::col#0 +char bitmap_clear::fgcol +char bitmap_clear::fgcol#0 +char bitmap_clear::fgcol#1 +char *bitmap_gfx +char *bitmap_gfx#0 +char *bitmap_gfx#1 +char *bitmap_gfx#10 +char *bitmap_gfx#11 +char *bitmap_gfx#12 +char *bitmap_gfx#13 +char *bitmap_gfx#14 +char *bitmap_gfx#15 +char *bitmap_gfx#16 +char *bitmap_gfx#17 +char *bitmap_gfx#18 +char *bitmap_gfx#19 +char *bitmap_gfx#2 +char *bitmap_gfx#20 +char *bitmap_gfx#21 +char *bitmap_gfx#22 +char *bitmap_gfx#23 +char *bitmap_gfx#24 +char *bitmap_gfx#25 +char *bitmap_gfx#26 +char *bitmap_gfx#27 +char *bitmap_gfx#28 +char *bitmap_gfx#29 +char *bitmap_gfx#3 +char *bitmap_gfx#30 +char *bitmap_gfx#31 +char *bitmap_gfx#32 +char *bitmap_gfx#33 +char *bitmap_gfx#34 +char *bitmap_gfx#4 +char *bitmap_gfx#5 +char *bitmap_gfx#6 +char *bitmap_gfx#7 +char *bitmap_gfx#8 +char *bitmap_gfx#9 +void bitmap_init(char *gfx , char *screen) +bool bitmap_init::$0 +bool bitmap_init::$1 +char *bitmap_init::$10 +bool bitmap_init::$11 +bool bitmap_init::$2 +number bitmap_init::$3 +char bitmap_init::$4 +number bitmap_init::$5 +char bitmap_init::$6 +number bitmap_init::$7 +bool bitmap_init::$8 +bool bitmap_init::$9 +char bitmap_init::bits +char bitmap_init::bits#0 +char bitmap_init::bits#1 +char bitmap_init::bits#2 +char bitmap_init::bits#3 +char bitmap_init::bits#4 +char *bitmap_init::gfx +char *bitmap_init::gfx#0 +char *bitmap_init::gfx#1 +char *bitmap_init::gfx#2 +char *bitmap_init::gfx#3 +char *bitmap_init::gfx#4 +char *bitmap_init::gfx#5 +char *bitmap_init::screen +char *bitmap_init::screen#0 +char *bitmap_init::screen#1 +char bitmap_init::x +char bitmap_init::x#0 +char bitmap_init::x#1 +char bitmap_init::x#2 +char bitmap_init::x#3 +char bitmap_init::x#4 +char bitmap_init::y +char bitmap_init::y#0 +char bitmap_init::y#1 +char bitmap_init::y#2 +char bitmap_init::y#3 +char bitmap_init::y#4 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#0 +char *bitmap_init::yoffs#1 +char *bitmap_init::yoffs#2 +char *bitmap_init::yoffs#3 +char *bitmap_init::yoffs#4 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$0 +number bitmap_plot::$1 +char bitmap_plot::$2 +char *bitmap_plot::plotter +char *bitmap_plot::plotter#0 +char *bitmap_plot::plotter#1 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 +unsigned int bitmap_plot::x#1 +char bitmap_plot::y +char bitmap_plot::y#0 +char bitmap_plot::y#1 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +char *bitmap_screen#0 +char *bitmap_screen#1 +char *bitmap_screen#10 +char *bitmap_screen#11 +char *bitmap_screen#12 +char *bitmap_screen#13 +char *bitmap_screen#14 +char *bitmap_screen#15 +char *bitmap_screen#16 +char *bitmap_screen#17 +char *bitmap_screen#18 +char *bitmap_screen#19 +char *bitmap_screen#2 +char *bitmap_screen#20 +char *bitmap_screen#21 +char *bitmap_screen#22 +char *bitmap_screen#23 +char *bitmap_screen#24 +char *bitmap_screen#25 +char *bitmap_screen#26 +char *bitmap_screen#27 +char *bitmap_screen#28 +char *bitmap_screen#29 +char *bitmap_screen#3 +char *bitmap_screen#30 +char *bitmap_screen#31 +char *bitmap_screen#32 +char *bitmap_screen#33 +char *bitmap_screen#4 +char *bitmap_screen#5 +char *bitmap_screen#6 +char *bitmap_screen#7 +char *bitmap_screen#8 +char *bitmap_screen#9 +__loadstore volatile char frame_cnt void init_irq() __interrupt(hardware_clobber) void irq() -bool~ irq::$0 -bool~ irq::$1 +bool irq::$0 +bool irq::$1 void main() -bool~ main::$10 -bool~ main::$11 -bool~ main::$12 -bool~ main::$13 -byte~ main::$14 -byte~ main::$2 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -bool~ main::$8 -word~ main::$9 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -word main::vx -word main::vx#0 -word main::vx#1 -word main::vx#2 -word main::vx#3 -word main::vx#4 -word main::vx#5 -word main::vx#6 -word main::vx#7 -word main::vx#8 -byte main::vy -byte main::vy#0 -byte main::vy#1 -byte main::vy#2 -byte main::vy#3 -byte main::vy#4 -byte main::vy#5 -byte main::vy#6 -byte main::vy#7 -byte main::vy#8 -word main::x -word main::x#0 -word main::x#1 -word main::x#2 -word main::x#3 -word main::x#4 -word main::x#5 -word main::x#6 -word main::x#7 -word main::x#8 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -byte main::y#5 -byte main::y#6 -byte main::y#7 -byte main::y#8 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -constant byte* plots_per_frame[$100] = { fill( $100, 0) } +bool main::$10 +bool main::$11 +bool main::$12 +bool main::$13 +char main::$14 +char main::$2 +bool main::$5 +bool main::$6 +bool main::$7 +bool main::$8 +unsigned int main::$9 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +unsigned int main::vx +unsigned int main::vx#0 +unsigned int main::vx#1 +unsigned int main::vx#2 +unsigned int main::vx#3 +unsigned int main::vx#4 +unsigned int main::vx#5 +unsigned int main::vx#6 +unsigned int main::vx#7 +unsigned int main::vx#8 +char main::vy +char main::vy#0 +char main::vy#1 +char main::vy#2 +char main::vy#3 +char main::vy#4 +char main::vy#5 +char main::vy#6 +char main::vy#7 +char main::vy#8 +unsigned int main::x +unsigned int main::x#0 +unsigned int main::x#1 +unsigned int main::x#2 +unsigned int main::x#3 +unsigned int main::x#4 +unsigned int main::x#5 +unsigned int main::x#6 +unsigned int main::x#7 +unsigned int main::x#8 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +char main::y#5 +char main::y#6 +char main::y#7 +char main::y#8 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +__constant char plots_per_frame[$100] = { fill( $100, 0) } Adding number conversion cast (unumber) 1 in bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 Adding number conversion cast (unumber) 0 in bitmap_init::$0 = bitmap_init::bits#1 == 0 @@ -713,23 +713,23 @@ Adding number conversion cast (unumber) 0 in irq::$1 = 0 != frame_cnt Successful SSA optimization PassNAddNumberTypeConversions Inlining cast bitmap_init::bits#2 = (unumber)$80 Inlining cast memset::c#1 = (unumber)0 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 65534 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $80 @@ -754,39 +754,39 @@ Simplifying constant integer cast $80 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $fff8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $13f -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $c7 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $fff8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $13f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $c7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 -Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 -Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#1 & $fff8 -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to char in bitmap_init::$3 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 +Inferred type updated to char in bitmap_init::$7 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 +Inferred type updated to unsigned int in bitmap_plot::$1 = bitmap_plot::x#1 & $fff8 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Inversing boolean not [9] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [8] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [29] bitmap_init::$9 = bitmap_init::$7 != 7 from [28] bitmap_init::$8 = bitmap_init::$7 == 7 Inversing boolean not [67] memset::$1 = memset::num#2 <= 0 from [66] memset::$0 = memset::num#2 > 0 @@ -914,17 +914,17 @@ Constant main::x#0 = 0 Constant main::y#0 = 0 Constant main::vx#0 = 1 Constant main::vy#0 = 1 -Constant bitmap_screen#16 = (byte*) 0 -Constant bitmap_gfx#17 = (byte*) 0 +Constant bitmap_screen#16 = (char *) 0 +Constant bitmap_gfx#17 = (char *) 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_gfx#0 = bitmap_init::gfx#0 Constant bitmap_screen#0 = bitmap_init::screen#0 -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)bitmap_screen#0 -Constant memset::str#1 = (void*)bitmap_gfx#0 +Constant memset::str#0 = (void *)bitmap_screen#0 +Constant memset::str#1 = (void *)bitmap_gfx#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [82] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [82] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [93] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -948,8 +948,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bitmap_init::$7 = bitmap_init::$3 Alias bitmap_clear::col#0 = bitmap_clear::$0 @@ -964,11 +964,11 @@ Negating conditional jump and destination [91] if(main::y#1!=0) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [20] bitmap_clear::col#0 = bitmap_clear::fgcol#0 * $10 Constant right-side identified [45] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [48] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [48] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::c#0 = bitmap_clear::col#0 Successful SSA optimization Pass2ConstantIdentification @@ -988,10 +988,10 @@ Constant right-side identified [43] main::toD0181_return#0 = main::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [24] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [24] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [32] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [34] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [32] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [34] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings bitmap_init::bits#0 Inlining constant with var siblings bitmap_init::x#0 @@ -1015,19 +1015,19 @@ Constant inlined memset::num#1 = $1f40 Constant inlined bitmap_init::bits#0 = $80 Constant inlined memset::num#0 = $3e8 Constant inlined bitmap_init::bits#2 = $80 -Constant inlined memset::str#1 = (void*)BITMAP -Constant inlined memset::str#0 = (void*)SCREEN -Constant inlined main::toD0181_$7 = (word)SCREEN -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined memset::str#1 = (void *)BITMAP +Constant inlined memset::str#0 = (void *)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined main::x#0 = 0 Constant inlined bitmap_clear::fgcol#0 = WHITE Constant inlined bitmap_gfx#0 = BITMAP Constant inlined main::y#0 = 0 -Constant inlined main::toD0181_$5 = byte1 (word)BITMAP/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)BITMAP/4 -Constant inlined main::toD0181_$3 = byte1 (word)BITMAP +Constant inlined main::toD0181_$5 = byte1 (unsigned int)BITMAP/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)BITMAP/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)BITMAP Constant inlined main::vy#0 = 1 Constant inlined main::vx#0 = 1 Constant inlined bitmap_screen#0 = SCREEN @@ -1036,16 +1036,16 @@ Constant inlined memset::c#0 = bitmap_clear::col#0 Constant inlined bitmap_init::x#0 = 0 Constant inlined memset::c#1 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1) Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2) @@ -1134,7 +1134,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -1159,11 +1159,11 @@ irq::@return: scope:[irq] from irq::@1 void main() main: scope:[main] from __start::@1 [11] phi() - [12] call bitmap_init + [12] call bitmap_init to:main::@8 main::@8: scope:[main] from main [13] phi() - [14] call bitmap_clear + [14] call bitmap_clear to:main::@9 main::@9: scope:[main] from main::@8 [15] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 @@ -1173,7 +1173,7 @@ main::toD0181: scope:[main] from main::@9 to:main::@7 main::@7: scope:[main] from main::toD0181 [17] *D018 = main::toD0181_return#0 - [18] call init_irq + [18] call init_irq to:main::@1 main::@1: scope:[main] from main::@4 main::@7 [19] main::vy#2 = phi( main::@7/1, main::@4/main::vy#8 ) @@ -1184,7 +1184,7 @@ main::@1: scope:[main] from main::@4 main::@7 main::@2: scope:[main] from main::@1 [20] bitmap_plot::x#0 = main::x#2 [21] bitmap_plot::y#0 = main::y#2 - [22] call bitmap_plot + [22] call bitmap_plot to:main::@10 main::@10: scope:[main] from main::@2 [23] main::x#1 = main::x#2 + main::vx#2 @@ -1212,7 +1212,7 @@ main::@4: scope:[main] from main::@12 main::@6 [33] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [34] phi() to:bitmap_init::@1 @@ -1243,7 +1243,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [50] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [52] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -1254,14 +1254,14 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [55] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@8 [56] phi() - [57] call memset + [57] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [58] phi() - [59] call memset + [59] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [60] return @@ -1272,7 +1272,7 @@ init_irq: scope:[init_irq] from main::@7 asm { sei } [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [63] *PROCPORT = PROCPORT_RAM_IO - [64] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [66] *RASTER = 0 [67] *IRQ_ENABLE = IRQ_RASTER @@ -1283,11 +1283,11 @@ init_irq::@return: scope:[init_irq] from init_irq [70] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from main::@2 [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [72] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 - [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [74] bitmap_plot::$2 = byte0 bitmap_plot::x#0 [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return @@ -1295,16 +1295,16 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [76] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [77] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [77] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [77] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [77] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [78] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [79] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [80] memset::dst#4 = (byte*)memset::str#3 + [79] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [80] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [81] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1321,78 +1321,78 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 2002.0 -byte~ bitmap_init::$5 2002.0 -byte~ bitmap_init::$6 2002.0 -byte~ bitmap_init::$7 500.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 1001.0 -byte bitmap_init::bits#3 1501.5 -byte bitmap_init::bits#4 667.3333333333334 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 1501.5 -byte bitmap_init::x#2 500.5 -byte bitmap_init::y -byte bitmap_init::y#1 1501.5 -byte bitmap_init::y#2 500.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 2002.0 -byte* bitmap_init::yoffs#2 625.625 -byte* bitmap_init::yoffs#4 1001.0 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 2002.0 -byte~ bitmap_plot::$2 2002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 500.5 -byte* bitmap_plot::plotter#1 1501.5 -word bitmap_plot::x -word bitmap_plot::x#0 420.59999999999997 -byte bitmap_plot::y -byte bitmap_plot::y#0 2103.0 -byte* bitmap_screen -volatile byte frame_cnt loadstore 7.777777777777779 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // 2002.0 +char bitmap_init::$5 // 2002.0 +char bitmap_init::$6 // 2002.0 +char bitmap_init::$7 // 500.5 +char bitmap_init::bits +char bitmap_init::bits#1 // 1001.0 +char bitmap_init::bits#3 // 1501.5 +char bitmap_init::bits#4 // 667.3333333333334 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // 1501.5 +char bitmap_init::x#2 // 500.5 +char bitmap_init::y +char bitmap_init::y#1 // 1501.5 +char bitmap_init::y#2 // 500.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // 2002.0 +char *bitmap_init::yoffs#2 // 625.625 +char *bitmap_init::yoffs#4 // 1001.0 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // 2002.0 +char bitmap_plot::$2 // 2002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // 500.5 +char *bitmap_plot::plotter#1 // 1501.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // 420.59999999999997 +char bitmap_plot::y +char bitmap_plot::y#0 // 2103.0 +char *bitmap_screen +__loadstore volatile char frame_cnt // 7.777777777777779 void init_irq() __interrupt(hardware_clobber) void irq() void main() -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -word main::vx -word main::vx#1 202.0 -word main::vx#2 50.5 -word main::vx#6 50.5 -byte main::vy -byte main::vy#1 202.0 -byte main::vy#2 33.666666666666664 -byte main::vy#8 151.5 -word main::x -word main::x#1 36.72727272727273 -word main::x#2 75.75 -byte main::y -byte main::y#1 40.4 -byte main::y#2 60.599999999999994 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1250.125 -byte* memset::dst -byte* memset::dst#1 20002.0 -byte* memset::dst#2 13668.333333333332 -byte* memset::dst#4 2002.0 -byte* memset::end -byte* memset::end#0 1833.6666666666665 -word memset::num -word memset::num#2 1001.0 -void* memset::return -void* memset::str -void* memset::str#3 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +unsigned int main::vx +unsigned int main::vx#1 // 202.0 +unsigned int main::vx#2 // 50.5 +unsigned int main::vx#6 // 50.5 +char main::vy +char main::vy#1 // 202.0 +char main::vy#2 // 33.666666666666664 +char main::vy#8 // 151.5 +unsigned int main::x +unsigned int main::x#1 // 36.72727272727273 +unsigned int main::x#2 // 75.75 +char main::y +char main::y#1 // 40.4 +char main::y#2 // 60.599999999999994 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1250.125 +char *memset::dst +char *memset::dst#1 // 20002.0 +char *memset::dst#2 // 13668.333333333332 +char *memset::dst#4 // 2002.0 +char *memset::end +char *memset::end#0 // 1833.6666666666665 +unsigned int memset::num +unsigned int memset::num#2 // 1001.0 +void *memset::return +void *memset::str +void *memset::str#3 Initial phi equivalence classes [ main::x#2 main::x#1 ] @@ -1490,25 +1490,25 @@ Statement [31] main::vy#1 = - main::vy#2 [ frame_cnt main::x#1 main::y#1 main::v Statement [33] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] [ frame_cnt main::x#1 main::y#1 main::vx#6 main::vy#8 ] ( main:3 [ frame_cnt main::x#1 main::y#1 main::vx#6 main::vy#8 ] { } ) always clobbers reg byte x Removing always clobbered register reg byte x as potential for zp[1]:4 [ main::y#2 main::y#1 ] Removing always clobbered register reg byte x as potential for zp[1]:7 [ main::vy#2 main::vy#8 main::vy#1 ] -Statement [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:12 [ frame_cnt bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:12 [ frame_cnt bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [63] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a -Statement [64] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a +Statement [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [66] *RASTER = 0 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [67] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [68] *HARDWARE_IRQ = &irq [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a Statement [72] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a -Statement [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a +Statement [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a Statement [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::y#2 main::y#1 ] Removing always clobbered register reg byte y as potential for zp[1]:7 [ main::vy#2 main::vy#8 main::vy#1 ] Statement [78] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::num#2 memset::str#3 memset::c#4 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:17 [ memset::c#4 ] -Statement [79] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [80] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [79] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [80] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [82] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [84] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:17 [ memset::c#4 ] @@ -1531,21 +1531,21 @@ Statement [30] if(main::y#1!=0) goto main::@4 [ frame_cnt main::vy#2 main::x#1 m Statement [31] main::vy#1 = - main::vy#2 [ frame_cnt main::x#1 main::y#1 main::vx#6 main::vy#1 ] ( main:3 [ frame_cnt main::x#1 main::y#1 main::vx#6 main::vy#1 ] { } ) always clobbers reg byte a Statement [33] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt] [ frame_cnt main::x#1 main::y#1 main::vx#6 main::vy#8 ] ( main:3 [ frame_cnt main::x#1 main::y#1 main::vx#6 main::vy#8 ] { } ) always clobbers reg byte x Statement [44] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( main:3::bitmap_init:12 [ frame_cnt bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:12 [ frame_cnt bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:3::bitmap_init:12 [ frame_cnt bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [63] *PROCPORT = PROCPORT_RAM_IO [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a -Statement [64] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a +Statement [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [66] *RASTER = 0 [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [67] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [68] *HARDWARE_IRQ = &irq [ ] ( main:3::init_irq:18 [ frame_cnt ] { } ) always clobbers reg byte a Statement [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0] [ bitmap_plot::x#0 bitmap_plot::plotter#0 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#0 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a Statement [72] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8 [ bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a -Statement [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a +Statement [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#0 bitmap_plot::plotter#1 ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 bitmap_plot::x#0 bitmap_plot::plotter#1 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a Statement [75] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( main:3::bitmap_plot:22 [ frame_cnt main::x#2 main::y#2 main::vx#2 main::vy#2 ] { { bitmap_plot::x#0 = main::x#2 } { bitmap_plot::y#0 = main::y#2 } } ) always clobbers reg byte a reg byte y Statement [78] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::num#2 memset::str#3 memset::c#4 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [79] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [80] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [79] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [80] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [82] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [84] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:3::bitmap_clear:14::memset:57 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } main:3::bitmap_clear:14::memset:59 [ frame_cnt memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ main::x#2 main::x#1 ] : zp[2]:2 , @@ -1726,7 +1726,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [11] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1778,7 +1778,7 @@ main: { .label y = 4 .label vx = 5 .label vy = 7 - // [12] call bitmap_init + // [12] call bitmap_init // [34] phi from main to bitmap_init [phi:main->bitmap_init] bitmap_init_from_main: jsr bitmap_init @@ -1787,7 +1787,7 @@ main: { jmp __b8 // main::@8 __b8: - // [14] call bitmap_clear + // [14] call bitmap_clear // [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear] bitmap_clear_from___b8: jsr bitmap_clear @@ -1808,7 +1808,7 @@ main: { // [17] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - // [18] call init_irq + // [18] call init_irq jsr init_irq // [19] phi from main::@7 to main::@1 [phi:main::@7->main::@1] __b1_from___b7: @@ -1837,7 +1837,7 @@ main: { // [20] bitmap_plot::x#0 = main::x#2 // [21] bitmap_plot::y#0 = main::y#2 -- vbuxx=vbuz1 ldx.z y - // [22] call bitmap_plot + // [22] call bitmap_plot jsr bitmap_plot jmp __b10 // main::@10 @@ -1927,6 +1927,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = 9 .label yoffs = $c @@ -2009,7 +2010,7 @@ bitmap_init: { jmp __b5 // bitmap_init::@5 __b5: - // [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -2039,14 +2040,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 - // [57] call memset + // [57] call memset // [77] phi from bitmap_clear to memset [phi:bitmap_clear->memset] memset_from_bitmap_clear: // [77] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [77] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [77] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -2062,12 +2064,12 @@ bitmap_clear: { jmp __b1 // bitmap_clear::@1 __b1: - // [59] call memset + // [59] call memset // [77] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] memset_from___b1: // [77] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [77] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [77] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -2096,7 +2098,7 @@ init_irq: { // [63] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [64] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT @@ -2128,7 +2130,7 @@ init_irq: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(2) x, byte register(X) y) +// void bitmap_plot(__zp(2) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $c .label plotter = $a @@ -2145,7 +2147,7 @@ bitmap_plot: { lda.z x+1 and #>$fff8 sta.z __1+1 - // [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 @@ -2168,7 +2170,7 @@ bitmap_plot: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp($c) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp($c) unsigned int num) memset: { .label end = $c .label dst = $a @@ -2183,7 +2185,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [79] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [79] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -2191,7 +2193,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [80] memset::dst#4 = (byte*)memset::str#3 + // [80] memset::dst#4 = (char *)memset::str#3 // [81] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2335,108 +2337,108 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* BITMAP = (byte*) 8192 -constant const byte BLACK = 0 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const D011 = (byte*) 53265 -constant byte* const D018 = (byte*) 53272 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant char *BITMAP = (char *) 8192 +__constant const char BLACK = 0 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const D011 = (char *) 53265 +__constant char * const D018 = (char *) 53272 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char *SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 2002.0 -byte~ bitmap_init::$5 reg byte a 2002.0 -byte~ bitmap_init::$6 reg byte a 2002.0 -byte~ bitmap_init::$7 zp[1]:9 500.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 1001.0 -byte bitmap_init::bits#3 reg byte a 1501.5 -byte bitmap_init::bits#4 reg byte a 667.3333333333334 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 1501.5 -byte bitmap_init::x#2 reg byte x 500.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 1501.5 -byte bitmap_init::y#2 reg byte x 500.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:12 2002.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:12 625.625 -byte* bitmap_init::yoffs#4 yoffs zp[2]:12 1001.0 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:12 2002.0 -byte~ bitmap_plot::$2 reg byte x 2002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:10 500.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:10 1501.5 -word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:2 420.59999999999997 -byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte x 2103.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -volatile byte frame_cnt loadstore zp[1]:8 7.777777777777779 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 2002.0 +char bitmap_init::$5 // reg byte a 2002.0 +char bitmap_init::$6 // reg byte a 2002.0 +char bitmap_init::$7 // zp[1]:9 500.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 1001.0 +char bitmap_init::bits#3 // reg byte a 1501.5 +char bitmap_init::bits#4 // reg byte a 667.3333333333334 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 1501.5 +char bitmap_init::x#2 // reg byte x 500.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 1501.5 +char bitmap_init::y#2 // reg byte x 500.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:12 2002.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:12 625.625 +char *bitmap_init::yoffs#4 // yoffs zp[2]:12 1001.0 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:12 2002.0 +char bitmap_plot::$2 // reg byte x 2002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:10 500.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:10 1501.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // x zp[2]:2 420.59999999999997 +char bitmap_plot::y +char bitmap_plot::y#0 // reg byte x 2103.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +__loadstore volatile char frame_cnt // zp[1]:8 7.777777777777779 void init_irq() __interrupt(hardware_clobber) void irq() void main() -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)BITMAP/4&$f -byte* main::toD0181_screen -word main::vx -word main::vx#1 vx zp[2]:5 202.0 -word main::vx#2 vx zp[2]:5 50.5 -word main::vx#6 vx zp[2]:5 50.5 -byte main::vy -byte main::vy#1 vy zp[1]:7 202.0 -byte main::vy#2 vy zp[1]:7 33.666666666666664 -byte main::vy#8 vy zp[1]:7 151.5 -word main::x -word main::x#1 x zp[2]:2 36.72727272727273 -word main::x#2 x zp[2]:2 75.75 -byte main::y -byte main::y#1 y zp[1]:4 40.4 -byte main::y#2 y zp[1]:4 60.599999999999994 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1250.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:10 20002.0 -byte* memset::dst#2 dst zp[2]:10 13668.333333333332 -byte* memset::dst#4 dst zp[2]:10 2002.0 -byte* memset::end -byte* memset::end#0 end zp[2]:12 1833.6666666666665 -word memset::num -word memset::num#2 num zp[2]:12 1001.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:10 -constant byte* plots_per_frame[$100] = { fill( $100, 0) } +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)BITMAP/4&$f // toD0181_return +char *main::toD0181_screen +unsigned int main::vx +unsigned int main::vx#1 // vx zp[2]:5 202.0 +unsigned int main::vx#2 // vx zp[2]:5 50.5 +unsigned int main::vx#6 // vx zp[2]:5 50.5 +char main::vy +char main::vy#1 // vy zp[1]:7 202.0 +char main::vy#2 // vy zp[1]:7 33.666666666666664 +char main::vy#8 // vy zp[1]:7 151.5 +unsigned int main::x +unsigned int main::x#1 // x zp[2]:2 36.72727272727273 +unsigned int main::x#2 // x zp[2]:2 75.75 +char main::y +char main::y#1 // y zp[1]:4 40.4 +char main::y#2 // y zp[1]:4 60.599999999999994 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1250.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:10 20002.0 +char *memset::dst#2 // dst zp[2]:10 13668.333333333332 +char *memset::dst#4 // dst zp[2]:10 2002.0 +char *memset::end +char *memset::end#0 // end zp[2]:12 1833.6666666666665 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:12 1001.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:10 +__constant char plots_per_frame[$100] = { fill( $100, 0) } zp[2]:2 [ main::x#2 main::x#1 bitmap_plot::x#0 ] zp[1]:4 [ main::y#2 main::y#1 ] @@ -2556,7 +2558,7 @@ __start: { sta.z frame_cnt // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [11] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -2607,13 +2609,13 @@ main: { .label vx = 5 .label vy = 7 // bitmap_init(BITMAP, SCREEN) - // [12] call bitmap_init + // [12] call bitmap_init // [34] phi from main to bitmap_init [phi:main->bitmap_init] jsr bitmap_init // [13] phi from main to main::@8 [phi:main->main::@8] // main::@8 // bitmap_clear(BLACK, WHITE) - // [14] call bitmap_clear + // [14] call bitmap_clear // [56] phi from main::@8 to bitmap_clear [phi:main::@8->bitmap_clear] jsr bitmap_clear // main::@9 @@ -2629,7 +2631,7 @@ main: { lda #toD0181_return sta D018 // init_irq() - // [18] call init_irq + // [18] call init_irq jsr init_irq // [19] phi from main::@7 to main::@1 [phi:main::@7->main::@1] // [19] phi main::vy#2 = 1 [phi:main::@7->main::@1#0] -- vbuz1=vbuc1 @@ -2651,7 +2653,7 @@ main: { // [20] bitmap_plot::x#0 = main::x#2 // [21] bitmap_plot::y#0 = main::y#2 -- vbuxx=vbuz1 ldx.z y - // [22] call bitmap_plot + // [22] call bitmap_plot jsr bitmap_plot // main::@10 // x += vx @@ -2733,6 +2735,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = 9 .label yoffs = $c @@ -2810,7 +2813,7 @@ bitmap_init: { bne __b4 // bitmap_init::@5 // yoffs = yoffs + 40*8 - // [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [51] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -2837,14 +2840,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) - // [57] call memset + // [57] call memset // [77] phi from bitmap_clear to memset [phi:bitmap_clear->memset] // [77] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [77] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [77] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -2858,11 +2862,11 @@ bitmap_clear: { // [58] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] // bitmap_clear::@1 // memset(bitmap_gfx, 0, 8000uw) - // [59] call memset + // [59] call memset // [77] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] // [77] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [77] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [77] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -2894,7 +2898,7 @@ init_irq: { lda #PROCPORT_RAM_IO sta PROCPORT // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [64] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT @@ -2930,7 +2934,7 @@ init_irq: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(2) x, byte register(X) y) +// void bitmap_plot(__zp(2) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $c .label plotter = $a @@ -2950,7 +2954,7 @@ bitmap_plot: { and #>$fff8 sta.z __1+1 // plotter += ( x & $fff8 ) - // [73] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 @@ -2974,7 +2978,7 @@ bitmap_plot: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp($c) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp($c) unsigned int num) memset: { .label end = $c .label dst = $a @@ -2989,7 +2993,7 @@ memset: { !: // memset::@1 // char* end = (char*)str + num - // [79] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [79] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -2997,7 +3001,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [80] memset::dst#4 = (byte*)memset::str#3 + // [80] memset::dst#4 = (char *)memset::str#3 // [81] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [81] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/bitmap-plot-0.sym b/src/test/ref/bitmap-plot-0.sym index 6de64fefa..b073f1869 100644 --- a/src/test/ref/bitmap-plot-0.sym +++ b/src/test/ref/bitmap-plot-0.sym @@ -1,105 +1,105 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* BITMAP = (byte*) 8192 -constant const byte BLACK = 0 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const D011 = (byte*) 53265 -constant byte* const D018 = (byte*) 53272 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* SCREEN = (byte*) 1024 -constant const byte VICII_BMM = $20 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant char *BITMAP = (char *) 8192 +__constant const char BLACK = 0 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const D011 = (char *) 53265 +__constant char * const D018 = (char *) 53272 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char *SCREEN = (char *) 1024 +__constant const char VICII_BMM = $20 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 2002.0 -byte~ bitmap_init::$5 reg byte a 2002.0 -byte~ bitmap_init::$6 reg byte a 2002.0 -byte~ bitmap_init::$7 zp[1]:9 500.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 1001.0 -byte bitmap_init::bits#3 reg byte a 1501.5 -byte bitmap_init::bits#4 reg byte a 667.3333333333334 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 1501.5 -byte bitmap_init::x#2 reg byte x 500.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 1501.5 -byte bitmap_init::y#2 reg byte x 500.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:12 2002.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:12 625.625 -byte* bitmap_init::yoffs#4 yoffs zp[2]:12 1001.0 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:12 2002.0 -byte~ bitmap_plot::$2 reg byte x 2002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:10 500.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:10 1501.5 -word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:2 420.59999999999997 -byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte x 2103.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -volatile byte frame_cnt loadstore zp[1]:8 7.777777777777779 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 2002.0 +char bitmap_init::$5 // reg byte a 2002.0 +char bitmap_init::$6 // reg byte a 2002.0 +char bitmap_init::$7 // zp[1]:9 500.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 1001.0 +char bitmap_init::bits#3 // reg byte a 1501.5 +char bitmap_init::bits#4 // reg byte a 667.3333333333334 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 1501.5 +char bitmap_init::x#2 // reg byte x 500.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 1501.5 +char bitmap_init::y#2 // reg byte x 500.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:12 2002.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:12 625.625 +char *bitmap_init::yoffs#4 // yoffs zp[2]:12 1001.0 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:12 2002.0 +char bitmap_plot::$2 // reg byte x 2002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:10 500.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:10 1501.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // x zp[2]:2 420.59999999999997 +char bitmap_plot::y +char bitmap_plot::y#0 // reg byte x 2103.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +__loadstore volatile char frame_cnt // zp[1]:8 7.777777777777779 void init_irq() __interrupt(hardware_clobber) void irq() void main() -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)BITMAP/4&$f -byte* main::toD0181_screen -word main::vx -word main::vx#1 vx zp[2]:5 202.0 -word main::vx#2 vx zp[2]:5 50.5 -word main::vx#6 vx zp[2]:5 50.5 -byte main::vy -byte main::vy#1 vy zp[1]:7 202.0 -byte main::vy#2 vy zp[1]:7 33.666666666666664 -byte main::vy#8 vy zp[1]:7 151.5 -word main::x -word main::x#1 x zp[2]:2 36.72727272727273 -word main::x#2 x zp[2]:2 75.75 -byte main::y -byte main::y#1 y zp[1]:4 40.4 -byte main::y#2 y zp[1]:4 60.599999999999994 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1250.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:10 20002.0 -byte* memset::dst#2 dst zp[2]:10 13668.333333333332 -byte* memset::dst#4 dst zp[2]:10 2002.0 -byte* memset::end -byte* memset::end#0 end zp[2]:12 1833.6666666666665 -word memset::num -word memset::num#2 num zp[2]:12 1001.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:10 -constant byte* plots_per_frame[$100] = { fill( $100, 0) } +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)BITMAP/4&$f // toD0181_return +char *main::toD0181_screen +unsigned int main::vx +unsigned int main::vx#1 // vx zp[2]:5 202.0 +unsigned int main::vx#2 // vx zp[2]:5 50.5 +unsigned int main::vx#6 // vx zp[2]:5 50.5 +char main::vy +char main::vy#1 // vy zp[1]:7 202.0 +char main::vy#2 // vy zp[1]:7 33.666666666666664 +char main::vy#8 // vy zp[1]:7 151.5 +unsigned int main::x +unsigned int main::x#1 // x zp[2]:2 36.72727272727273 +unsigned int main::x#2 // x zp[2]:2 75.75 +char main::y +char main::y#1 // y zp[1]:4 40.4 +char main::y#2 // y zp[1]:4 60.599999999999994 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1250.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:10 20002.0 +char *memset::dst#2 // dst zp[2]:10 13668.333333333332 +char *memset::dst#4 // dst zp[2]:10 2002.0 +char *memset::end +char *memset::end#0 // end zp[2]:12 1833.6666666666665 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:12 1001.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:10 +__constant char plots_per_frame[$100] = { fill( $100, 0) } zp[2]:2 [ main::x#2 main::x#1 bitmap_plot::x#0 ] zp[1]:4 [ main::y#2 main::y#1 ] diff --git a/src/test/ref/bitmap-plot-3.asm b/src/test/ref/bitmap-plot-3.asm index 19c9bd8fa..0e37817b1 100644 --- a/src/test/ref/bitmap-plot-3.asm +++ b/src/test/ref/bitmap-plot-3.asm @@ -111,6 +111,7 @@ main: { jmp __b1 } // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $14 .label yoffs = 4 @@ -172,6 +173,7 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) @@ -200,7 +202,7 @@ bitmap_clear: { rts } // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(6) x1, word zp(8) y1, word zp($10) x2, word zp($12) y2) +// void bitmap_line(__zp(6) unsigned int x1, __zp(8) unsigned int y1, __zp($10) unsigned int x2, __zp($12) unsigned int y2) bitmap_line: { .label dx = $15 .label dy = $c @@ -416,7 +418,7 @@ bitmap_line: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp(8) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp(8) unsigned int num) memset: { .label end = 8 .label dst = $a @@ -460,7 +462,7 @@ memset: { jmp __b2 } // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($c) w) +// __zp($c) unsigned int abs_u16(__zp($c) unsigned int w) abs_u16: { .label w = $c .label return = $c @@ -486,7 +488,7 @@ abs_u16: { } // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($19) w) +// __zp($e) unsigned int sgn_u16(__zp($19) unsigned int w) sgn_u16: { .label w = $19 .label return = $e @@ -510,7 +512,7 @@ sgn_u16: { rts } // Plot a single dot in the bitmap -// bitmap_plot(word zp(6) x, byte register(X) y) +// void bitmap_plot(__zp(6) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $1b .label plotter = $19 diff --git a/src/test/ref/bitmap-plot-3.cfg b/src/test/ref/bitmap-plot-3.cfg index 0469fd409..5390a391d 100644 --- a/src/test/ref/bitmap-plot-3.cfg +++ b/src/test/ref/bitmap-plot-3.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] phi() - [1] call bitmap_init + [1] call bitmap_init to:main::@5 main::@5: scope:[main] from main [2] phi() - [3] call bitmap_clear + [3] call bitmap_clear to:main::@6 main::@6: scope:[main] from main::@5 [4] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 @@ -26,20 +26,20 @@ main::@3: scope:[main] from main::@1 main::@3 [9] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) to:main::@3 main::@2: scope:[main] from main::@1 - [10] main::$13 = (word)COSTAB[main::a#2] + [10] main::$13 = (unsigned int)COSTAB[main::a#2] [11] bitmap_line::x1#0 = main::$13 + $78 - [12] main::$14 = (word)(COSTAB+$20)[main::a#2] + [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] [13] bitmap_line::x2#0 = main::$14 + $78 - [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] - [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] - [16] call bitmap_line + [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] + [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] + [16] call bitmap_line to:main::@7 main::@7: scope:[main] from main::@2 [17] main::a#1 = main::a#2 + $20 [18] main::i#1 = ++ main::i#2 to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [19] phi() to:bitmap_init::@1 @@ -70,7 +70,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [35] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [37] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -81,29 +81,29 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [40] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@5 [41] phi() - [42] call memset + [42] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [43] phi() - [44] call memset + [44] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [45] return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@2 [46] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [47] call abs_u16 + [47] call abs_u16 [48] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [49] bitmap_line::dx#0 = abs_u16::return#0 [50] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [51] call abs_u16 + [51] call abs_u16 [52] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -115,13 +115,13 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [56] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [57] call sgn_u16 + [57] call sgn_u16 [58] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [59] bitmap_line::sx#0 = sgn_u16::return#0 [60] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [61] call sgn_u16 + [61] call sgn_u16 [62] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -136,8 +136,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [66] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [66] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [67] bitmap_plot::x#1 = bitmap_line::x#13 - [68] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [69] call bitmap_plot + [68] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [69] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [70] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -157,8 +157,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [77] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [77] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [78] bitmap_plot::x#2 = bitmap_line::x#6 - [79] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [80] call bitmap_plot + [79] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [80] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [81] return @@ -171,8 +171,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [83] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [83] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [84] bitmap_plot::x#3 = bitmap_line::x#7 - [85] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [86] call bitmap_plot + [85] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [86] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [87] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -190,20 +190,20 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [94] bitmap_plot::x#0 = bitmap_line::x1#0 - [95] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 - [96] call bitmap_plot + [95] bitmap_plot::y#0 = (char)bitmap_line::y1#0 + [96] call bitmap_plot to:bitmap_line::@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [97] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [97] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [97] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [97] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [98] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [100] memset::dst#4 = (byte*)memset::str#3 + [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [100] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [101] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -217,7 +217,7 @@ memset::@3: scope:[memset] from memset::@2 [105] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [106] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) [107] abs_u16::$0 = byte1 abs_u16::w#2 @@ -232,7 +232,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [112] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [113] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) [114] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -247,13 +247,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [119] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [120] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [120] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [122] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [124] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log index 6f3b37f2d..abbedc797 100644 --- a/src/test/ref/bitmap-plot-3.log +++ b/src/test/ref/bitmap-plot-3.log @@ -1,6 +1,6 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$2 = call toD018(SCREEN, BITMAP) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement bitmap_clear::$1 Eliminating unused variable with no statement bitmap_line::$1 Eliminating unused variable with no statement bitmap_line::$3 @@ -12,7 +12,7 @@ Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main bitmap_init::screen#1 = phi( main/bitmap_init::screen#0 ) bitmap_init::gfx#1 = phi( main/bitmap_init::gfx#0 ) @@ -98,7 +98,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6 return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@6 bitmap_gfx#14 = phi( main::@6/bitmap_gfx#2 ) bitmap_screen#8 = phi( main::@6/bitmap_screen#2 ) @@ -106,18 +106,18 @@ bitmap_clear: scope:[bitmap_clear] from main::@6 bitmap_clear::fgcol#1 = phi( main::@6/bitmap_clear::fgcol#0 ) bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#1 - memset::str#0 = (void*)bitmap_screen#8 + memset::str#0 = (void *)bitmap_screen#8 memset::c#0 = bitmap_clear::col#0 memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_gfx#8 = phi( bitmap_clear/bitmap_gfx#14 ) - memset::str#1 = (void*)bitmap_gfx#8 + memset::str#1 = (void *)bitmap_gfx#8 memset::c#1 = 0 memset::num#1 = $1f40 - call memset + call memset memset::return#1 = memset::return#3 to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 @@ -126,12 +126,12 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2 return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] - bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 + bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1 bitmap_plot::$2 = byte0 bitmap_plot::x#4 @@ -141,7 +141,7 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@2 bitmap_line::y2#4 = phi( main::@2/bitmap_line::y2#0 ) bitmap_line::x2#1 = phi( main::@2/bitmap_line::x2#0 ) @@ -151,7 +151,7 @@ bitmap_line: scope:[bitmap_line] from main::@2 bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::$0 = bitmap_line::x2#1 - bitmap_line::x1#1 abs_u16::w#0 = bitmap_line::$0 - call abs_u16 + call abs_u16 abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line @@ -165,7 +165,7 @@ bitmap_line::@12: scope:[bitmap_line] from bitmap_line bitmap_line::dx#0 = abs_u16::return#5 bitmap_line::$2 = bitmap_line::y2#1 - bitmap_line::y1#2 abs_u16::w#1 = bitmap_line::$2 - call abs_u16 + call abs_u16 abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -195,7 +195,7 @@ bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::x2#2 = phi( bitmap_line::@13/bitmap_line::x2#4 ) bitmap_line::$8 = bitmap_line::x2#2 - bitmap_line::x1#2 sgn_u16::w#0 = bitmap_line::$8 - call sgn_u16 + call sgn_u16 sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 @@ -210,7 +210,7 @@ bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::sx#0 = sgn_u16::return#5 bitmap_line::$10 = bitmap_line::y2#2 - bitmap_line::y1#3 sgn_u16::w#1 = bitmap_line::$10 - call sgn_u16 + call sgn_u16 sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -230,8 +230,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::y#3 = phi( bitmap_line::@13/bitmap_line::y#10 ) bitmap_line::x#3 = phi( bitmap_line::@13/bitmap_line::x#10 ) bitmap_plot::x#0 = bitmap_line::x#3 - bitmap_plot::y#0 = (byte)bitmap_line::y#3 - call bitmap_plot + bitmap_plot::y#0 = (char)bitmap_line::y#3 + call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4 to:bitmap_line::@return @@ -268,8 +268,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y#11, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#4 = phi( bitmap_line::@5/bitmap_line::x#11, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#1 = bitmap_line::x#4 - bitmap_plot::y#1 = (byte)bitmap_line::y#4 - call bitmap_plot + bitmap_plot::y#1 = (char)bitmap_line::y#4 + call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@6 bitmap_line::sx#3 = phi( bitmap_line::@6/bitmap_line::sx#5 ) @@ -314,8 +314,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#2 = bitmap_line::x#6 - bitmap_plot::y#2 = (byte)bitmap_line::y#7 - call bitmap_plot + bitmap_plot::y#2 = (char)bitmap_line::y#7 + call bitmap_plot to:bitmap_line::@18 bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@3 to:bitmap_line::@return @@ -329,8 +329,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 bitmap_line::y#8 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y#14 ) bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@2/bitmap_line::x#14 ) bitmap_plot::x#3 = bitmap_line::x#7 - bitmap_plot::y#3 = (byte)bitmap_line::y#8 - call bitmap_plot + bitmap_plot::y#3 = (char)bitmap_line::y#8 + call bitmap_plot to:bitmap_line::@19 bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@9 bitmap_line::sy#4 = phi( bitmap_line::@9/bitmap_line::sy#7 ) @@ -372,7 +372,7 @@ bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@19 bitmap_line::e1#2 = bitmap_line::e1#4 - bitmap_line::dx#6 to:bitmap_line::@10 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 memset::c#5 = phi( bitmap_clear/memset::c#0, bitmap_clear::@1/memset::c#1 ) memset::str#4 = phi( bitmap_clear/memset::str#0, bitmap_clear::@1/memset::str#1 ) @@ -389,9 +389,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -415,7 +415,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) abs_u16::$0 = byte1 abs_u16::w#2 @@ -438,7 +438,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@2 return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -464,7 +464,7 @@ main: scope:[main] from __start::@1 bitmap_gfx#15 = phi( __start::@1/bitmap_gfx#17 ) bitmap_init::gfx#0 = BITMAP bitmap_init::screen#0 = SCREEN - call bitmap_init + call bitmap_init to:main::@6 main::@6: scope:[main] from main bitmap_screen#9 = phi( main/bitmap_screen#1 ) @@ -473,7 +473,7 @@ main::@6: scope:[main] from main bitmap_screen#2 = bitmap_screen#9 bitmap_clear::bgcol#0 = BLACK bitmap_clear::fgcol#0 = WHITE - call bitmap_clear + call bitmap_clear to:main::@7 main::@7: scope:[main] from main::@6 bitmap_screen#30 = phi( main::@6/bitmap_screen#2 ) @@ -487,11 +487,11 @@ main::toD0181: scope:[main] from main::@7 bitmap_gfx#30 = phi( main::@7/bitmap_gfx#31 ) main::toD0181_gfx#1 = phi( main::@7/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@7/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -525,17 +525,17 @@ main::@2: scope:[main] from main::@1 bitmap_gfx#27 = phi( main::@1/bitmap_gfx#20 ) main::i#4 = phi( main::@1/main::i#2 ) main::a#2 = phi( main::@1/main::a#4 ) - main::$13 = (word)COSTAB[main::a#2] + main::$13 = (unsigned int)COSTAB[main::a#2] main::$4 = main::$13 + $78 main::$5 = main::a#2 + $20 - main::$14 = (word)COSTAB[main::$5] + main::$14 = (unsigned int)COSTAB[main::$5] main::$6 = main::$14 + $78 main::$7 = main::a#2 + $20 bitmap_line::x1#0 = main::$4 - bitmap_line::y1#0 = (word)SINTAB[main::a#2] + bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] bitmap_line::x2#0 = main::$6 - bitmap_line::y2#0 = (word)SINTAB[main::$7] - call bitmap_line + bitmap_line::y2#0 = (unsigned int)SINTAB[main::$7] + call bitmap_line to:main::@8 main::@8: scope:[main] from main::@2 bitmap_screen#23 = phi( main::@2/bitmap_screen#26 ) @@ -568,13 +568,13 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bitmap_screen#4 = (byte*) 0 - bitmap_gfx#4 = (byte*) 0 + bitmap_screen#4 = (char *) 0 + bitmap_gfx#4 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 bitmap_screen#16 = phi( __start::__init1/bitmap_screen#4 ) bitmap_gfx#17 = phi( __start::__init1/bitmap_gfx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 bitmap_screen#11 = phi( __start::@1/bitmap_screen#3 ) @@ -591,453 +591,453 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BITMAP = (byte*)$2000 -constant const byte BLACK = 0 -constant byte* COSTAB = SINTAB+$40 -constant byte* const D011 = (byte*)$d011 -constant byte* const D018 = (byte*)$d018 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* SCREEN = (byte*)$400 -constant byte* SINTAB[$180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }} -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char *BITMAP = (char *)$2000 +__constant const char BLACK = 0 +__constant char *COSTAB = SINTAB+$40 +__constant char * const D011 = (char *)$d011 +__constant char * const D018 = (char *)$d018 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char *SCREEN = (char *)$400 +__constant char SINTAB[$180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }} +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 -number~ abs_u16::$1 -word~ abs_u16::$2 -bool~ abs_u16::$3 -word abs_u16::return -word abs_u16::return#0 -word abs_u16::return#1 -word abs_u16::return#2 -word abs_u16::return#3 -word abs_u16::return#4 -word abs_u16::return#5 -word abs_u16::return#6 -word abs_u16::return#7 -word abs_u16::w -word abs_u16::w#0 -word abs_u16::w#1 -word abs_u16::w#2 -word abs_u16::w#3 -word abs_u16::w#4 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -number~ bitmap_clear::$0 -byte bitmap_clear::bgcol -byte bitmap_clear::bgcol#0 -byte bitmap_clear::bgcol#1 -byte bitmap_clear::col -byte bitmap_clear::col#0 -byte bitmap_clear::fgcol -byte bitmap_clear::fgcol#0 -byte bitmap_clear::fgcol#1 -byte* bitmap_gfx -byte* bitmap_gfx#0 -byte* bitmap_gfx#1 -byte* bitmap_gfx#10 -byte* bitmap_gfx#11 -byte* bitmap_gfx#12 -byte* bitmap_gfx#13 -byte* bitmap_gfx#14 -byte* bitmap_gfx#15 -byte* bitmap_gfx#16 -byte* bitmap_gfx#17 -byte* bitmap_gfx#18 -byte* bitmap_gfx#19 -byte* bitmap_gfx#2 -byte* bitmap_gfx#20 -byte* bitmap_gfx#21 -byte* bitmap_gfx#22 -byte* bitmap_gfx#23 -byte* bitmap_gfx#24 -byte* bitmap_gfx#25 -byte* bitmap_gfx#26 -byte* bitmap_gfx#27 -byte* bitmap_gfx#28 -byte* bitmap_gfx#29 -byte* bitmap_gfx#3 -byte* bitmap_gfx#30 -byte* bitmap_gfx#31 -byte* bitmap_gfx#4 -byte* bitmap_gfx#5 -byte* bitmap_gfx#6 -byte* bitmap_gfx#7 -byte* bitmap_gfx#8 -byte* bitmap_gfx#9 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -bool~ bitmap_init::$0 -bool~ bitmap_init::$1 -byte*~ bitmap_init::$10 -bool~ bitmap_init::$11 -bool~ bitmap_init::$2 -number~ bitmap_init::$3 -byte~ bitmap_init::$4 -number~ bitmap_init::$5 -byte~ bitmap_init::$6 -number~ bitmap_init::$7 -bool~ bitmap_init::$8 -bool~ bitmap_init::$9 -byte bitmap_init::bits -byte bitmap_init::bits#0 -byte bitmap_init::bits#1 -byte bitmap_init::bits#2 -byte bitmap_init::bits#3 -byte bitmap_init::bits#4 -byte* bitmap_init::gfx -byte* bitmap_init::gfx#0 -byte* bitmap_init::gfx#1 -byte* bitmap_init::gfx#2 -byte* bitmap_init::gfx#3 -byte* bitmap_init::gfx#4 -byte* bitmap_init::gfx#5 -byte* bitmap_init::screen -byte* bitmap_init::screen#0 -byte* bitmap_init::screen#1 -byte bitmap_init::x -byte bitmap_init::x#0 -byte bitmap_init::x#1 -byte bitmap_init::x#2 -byte bitmap_init::x#3 -byte bitmap_init::x#4 -byte bitmap_init::y -byte bitmap_init::y#0 -byte bitmap_init::y#1 -byte bitmap_init::y#2 -byte bitmap_init::y#3 -byte bitmap_init::y#4 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#0 -byte* bitmap_init::yoffs#1 -byte* bitmap_init::yoffs#2 -byte* bitmap_init::yoffs#3 -byte* bitmap_init::yoffs#4 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word~ bitmap_line::$0 -word~ bitmap_line::$10 -bool~ bitmap_line::$12 -bool~ bitmap_line::$17 -bool~ bitmap_line::$18 -bool~ bitmap_line::$19 -word~ bitmap_line::$2 -bool~ bitmap_line::$22 -bool~ bitmap_line::$23 -bool~ bitmap_line::$24 -bool~ bitmap_line::$4 -bool~ bitmap_line::$5 -bool~ bitmap_line::$6 -bool~ bitmap_line::$7 -word~ bitmap_line::$8 -word bitmap_line::dx -word bitmap_line::dx#0 -word bitmap_line::dx#1 -word bitmap_line::dx#10 -word bitmap_line::dx#11 -word bitmap_line::dx#12 -word bitmap_line::dx#13 -word bitmap_line::dx#14 -word bitmap_line::dx#2 -word bitmap_line::dx#3 -word bitmap_line::dx#4 -word bitmap_line::dx#5 -word bitmap_line::dx#6 -word bitmap_line::dx#7 -word bitmap_line::dx#8 -word bitmap_line::dx#9 -word bitmap_line::dy -word bitmap_line::dy#0 -word bitmap_line::dy#1 -word bitmap_line::dy#10 -word bitmap_line::dy#11 -word bitmap_line::dy#12 -word bitmap_line::dy#13 -word bitmap_line::dy#2 -word bitmap_line::dy#3 -word bitmap_line::dy#4 -word bitmap_line::dy#5 -word bitmap_line::dy#6 -word bitmap_line::dy#7 -word bitmap_line::dy#8 -word bitmap_line::dy#9 -word bitmap_line::e -word bitmap_line::e#0 -word bitmap_line::e#1 -word bitmap_line::e#2 -word bitmap_line::e#3 -word bitmap_line::e#4 -word bitmap_line::e#5 -word bitmap_line::e#6 -word bitmap_line::e1 -word bitmap_line::e1#0 -word bitmap_line::e1#1 -word bitmap_line::e1#2 -word bitmap_line::e1#3 -word bitmap_line::e1#4 -word bitmap_line::e1#5 -word bitmap_line::e1#6 -word bitmap_line::sx -word bitmap_line::sx#0 -word bitmap_line::sx#1 -word bitmap_line::sx#10 -word bitmap_line::sx#11 -word bitmap_line::sx#2 -word bitmap_line::sx#3 -word bitmap_line::sx#4 -word bitmap_line::sx#5 -word bitmap_line::sx#6 -word bitmap_line::sx#7 -word bitmap_line::sx#8 -word bitmap_line::sx#9 -word bitmap_line::sy -word bitmap_line::sy#0 -word bitmap_line::sy#1 -word bitmap_line::sy#10 -word bitmap_line::sy#2 -word bitmap_line::sy#3 -word bitmap_line::sy#4 -word bitmap_line::sy#5 -word bitmap_line::sy#6 -word bitmap_line::sy#7 -word bitmap_line::sy#8 -word bitmap_line::sy#9 -word bitmap_line::x -word bitmap_line::x#0 -word bitmap_line::x#1 -word bitmap_line::x#10 -word bitmap_line::x#11 -word bitmap_line::x#12 -word bitmap_line::x#13 -word bitmap_line::x#14 -word bitmap_line::x#15 -word bitmap_line::x#16 -word bitmap_line::x#17 -word bitmap_line::x#18 -word bitmap_line::x#19 -word bitmap_line::x#2 -word bitmap_line::x#3 -word bitmap_line::x#4 -word bitmap_line::x#5 -word bitmap_line::x#6 -word bitmap_line::x#7 -word bitmap_line::x#8 -word bitmap_line::x#9 -word bitmap_line::x1 -word bitmap_line::x1#0 -word bitmap_line::x1#1 -word bitmap_line::x1#2 -word bitmap_line::x1#3 -word bitmap_line::x1#4 -word bitmap_line::x2 -word bitmap_line::x2#0 -word bitmap_line::x2#1 -word bitmap_line::x2#10 -word bitmap_line::x2#11 -word bitmap_line::x2#2 -word bitmap_line::x2#3 -word bitmap_line::x2#4 -word bitmap_line::x2#5 -word bitmap_line::x2#6 -word bitmap_line::x2#7 -word bitmap_line::x2#8 -word bitmap_line::x2#9 -word bitmap_line::y -word bitmap_line::y#0 -word bitmap_line::y#1 -word bitmap_line::y#10 -word bitmap_line::y#11 -word bitmap_line::y#12 -word bitmap_line::y#13 -word bitmap_line::y#14 -word bitmap_line::y#15 -word bitmap_line::y#16 -word bitmap_line::y#17 -word bitmap_line::y#18 -word bitmap_line::y#19 -word bitmap_line::y#2 -word bitmap_line::y#3 -word bitmap_line::y#4 -word bitmap_line::y#5 -word bitmap_line::y#6 -word bitmap_line::y#7 -word bitmap_line::y#8 -word bitmap_line::y#9 -word bitmap_line::y1 -word bitmap_line::y1#0 -word bitmap_line::y1#1 -word bitmap_line::y1#2 -word bitmap_line::y1#3 -word bitmap_line::y1#4 -word bitmap_line::y1#5 -word bitmap_line::y2 -word bitmap_line::y2#0 -word bitmap_line::y2#1 -word bitmap_line::y2#10 -word bitmap_line::y2#11 -word bitmap_line::y2#2 -word bitmap_line::y2#3 -word bitmap_line::y2#4 -word bitmap_line::y2#5 -word bitmap_line::y2#6 -word bitmap_line::y2#7 -word bitmap_line::y2#8 -word bitmap_line::y2#9 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$0 -number~ bitmap_plot::$1 -byte~ bitmap_plot::$2 -byte* bitmap_plot::plotter -byte* bitmap_plot::plotter#0 -byte* bitmap_plot::plotter#1 -word bitmap_plot::x -word bitmap_plot::x#0 -word bitmap_plot::x#1 -word bitmap_plot::x#2 -word bitmap_plot::x#3 -word bitmap_plot::x#4 -byte bitmap_plot::y -byte bitmap_plot::y#0 -byte bitmap_plot::y#1 -byte bitmap_plot::y#2 -byte bitmap_plot::y#3 -byte bitmap_plot::y#4 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -byte* bitmap_screen#0 -byte* bitmap_screen#1 -byte* bitmap_screen#10 -byte* bitmap_screen#11 -byte* bitmap_screen#12 -byte* bitmap_screen#13 -byte* bitmap_screen#14 -byte* bitmap_screen#15 -byte* bitmap_screen#16 -byte* bitmap_screen#17 -byte* bitmap_screen#18 -byte* bitmap_screen#19 -byte* bitmap_screen#2 -byte* bitmap_screen#20 -byte* bitmap_screen#21 -byte* bitmap_screen#22 -byte* bitmap_screen#23 -byte* bitmap_screen#24 -byte* bitmap_screen#25 -byte* bitmap_screen#26 -byte* bitmap_screen#27 -byte* bitmap_screen#28 -byte* bitmap_screen#29 -byte* bitmap_screen#3 -byte* bitmap_screen#30 -byte* bitmap_screen#4 -byte* bitmap_screen#5 -byte* bitmap_screen#6 -byte* bitmap_screen#7 -byte* bitmap_screen#8 -byte* bitmap_screen#9 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 +number abs_u16::$1 +unsigned int abs_u16::$2 +bool abs_u16::$3 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 +unsigned int abs_u16::return#1 +unsigned int abs_u16::return#2 +unsigned int abs_u16::return#3 +unsigned int abs_u16::return#4 +unsigned int abs_u16::return#5 +unsigned int abs_u16::return#6 +unsigned int abs_u16::return#7 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 +unsigned int abs_u16::w#1 +unsigned int abs_u16::w#2 +unsigned int abs_u16::w#3 +unsigned int abs_u16::w#4 +void bitmap_clear(char bgcol , char fgcol) +number bitmap_clear::$0 +char bitmap_clear::bgcol +char bitmap_clear::bgcol#0 +char bitmap_clear::bgcol#1 +char bitmap_clear::col +char bitmap_clear::col#0 +char bitmap_clear::fgcol +char bitmap_clear::fgcol#0 +char bitmap_clear::fgcol#1 +char *bitmap_gfx +char *bitmap_gfx#0 +char *bitmap_gfx#1 +char *bitmap_gfx#10 +char *bitmap_gfx#11 +char *bitmap_gfx#12 +char *bitmap_gfx#13 +char *bitmap_gfx#14 +char *bitmap_gfx#15 +char *bitmap_gfx#16 +char *bitmap_gfx#17 +char *bitmap_gfx#18 +char *bitmap_gfx#19 +char *bitmap_gfx#2 +char *bitmap_gfx#20 +char *bitmap_gfx#21 +char *bitmap_gfx#22 +char *bitmap_gfx#23 +char *bitmap_gfx#24 +char *bitmap_gfx#25 +char *bitmap_gfx#26 +char *bitmap_gfx#27 +char *bitmap_gfx#28 +char *bitmap_gfx#29 +char *bitmap_gfx#3 +char *bitmap_gfx#30 +char *bitmap_gfx#31 +char *bitmap_gfx#4 +char *bitmap_gfx#5 +char *bitmap_gfx#6 +char *bitmap_gfx#7 +char *bitmap_gfx#8 +char *bitmap_gfx#9 +void bitmap_init(char *gfx , char *screen) +bool bitmap_init::$0 +bool bitmap_init::$1 +char *bitmap_init::$10 +bool bitmap_init::$11 +bool bitmap_init::$2 +number bitmap_init::$3 +char bitmap_init::$4 +number bitmap_init::$5 +char bitmap_init::$6 +number bitmap_init::$7 +bool bitmap_init::$8 +bool bitmap_init::$9 +char bitmap_init::bits +char bitmap_init::bits#0 +char bitmap_init::bits#1 +char bitmap_init::bits#2 +char bitmap_init::bits#3 +char bitmap_init::bits#4 +char *bitmap_init::gfx +char *bitmap_init::gfx#0 +char *bitmap_init::gfx#1 +char *bitmap_init::gfx#2 +char *bitmap_init::gfx#3 +char *bitmap_init::gfx#4 +char *bitmap_init::gfx#5 +char *bitmap_init::screen +char *bitmap_init::screen#0 +char *bitmap_init::screen#1 +char bitmap_init::x +char bitmap_init::x#0 +char bitmap_init::x#1 +char bitmap_init::x#2 +char bitmap_init::x#3 +char bitmap_init::x#4 +char bitmap_init::y +char bitmap_init::y#0 +char bitmap_init::y#1 +char bitmap_init::y#2 +char bitmap_init::y#3 +char bitmap_init::y#4 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#0 +char *bitmap_init::yoffs#1 +char *bitmap_init::yoffs#2 +char *bitmap_init::yoffs#3 +char *bitmap_init::yoffs#4 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::$0 +unsigned int bitmap_line::$10 +bool bitmap_line::$12 +bool bitmap_line::$17 +bool bitmap_line::$18 +bool bitmap_line::$19 +unsigned int bitmap_line::$2 +bool bitmap_line::$22 +bool bitmap_line::$23 +bool bitmap_line::$24 +bool bitmap_line::$4 +bool bitmap_line::$5 +bool bitmap_line::$6 +bool bitmap_line::$7 +unsigned int bitmap_line::$8 +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 +unsigned int bitmap_line::dx#1 +unsigned int bitmap_line::dx#10 +unsigned int bitmap_line::dx#11 +unsigned int bitmap_line::dx#12 +unsigned int bitmap_line::dx#13 +unsigned int bitmap_line::dx#14 +unsigned int bitmap_line::dx#2 +unsigned int bitmap_line::dx#3 +unsigned int bitmap_line::dx#4 +unsigned int bitmap_line::dx#5 +unsigned int bitmap_line::dx#6 +unsigned int bitmap_line::dx#7 +unsigned int bitmap_line::dx#8 +unsigned int bitmap_line::dx#9 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 +unsigned int bitmap_line::dy#1 +unsigned int bitmap_line::dy#10 +unsigned int bitmap_line::dy#11 +unsigned int bitmap_line::dy#12 +unsigned int bitmap_line::dy#13 +unsigned int bitmap_line::dy#2 +unsigned int bitmap_line::dy#3 +unsigned int bitmap_line::dy#4 +unsigned int bitmap_line::dy#5 +unsigned int bitmap_line::dy#6 +unsigned int bitmap_line::dy#7 +unsigned int bitmap_line::dy#8 +unsigned int bitmap_line::dy#9 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 +unsigned int bitmap_line::e#1 +unsigned int bitmap_line::e#2 +unsigned int bitmap_line::e#3 +unsigned int bitmap_line::e#4 +unsigned int bitmap_line::e#5 +unsigned int bitmap_line::e#6 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 +unsigned int bitmap_line::e1#1 +unsigned int bitmap_line::e1#2 +unsigned int bitmap_line::e1#3 +unsigned int bitmap_line::e1#4 +unsigned int bitmap_line::e1#5 +unsigned int bitmap_line::e1#6 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 +unsigned int bitmap_line::sx#1 +unsigned int bitmap_line::sx#10 +unsigned int bitmap_line::sx#11 +unsigned int bitmap_line::sx#2 +unsigned int bitmap_line::sx#3 +unsigned int bitmap_line::sx#4 +unsigned int bitmap_line::sx#5 +unsigned int bitmap_line::sx#6 +unsigned int bitmap_line::sx#7 +unsigned int bitmap_line::sx#8 +unsigned int bitmap_line::sx#9 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 +unsigned int bitmap_line::sy#1 +unsigned int bitmap_line::sy#10 +unsigned int bitmap_line::sy#2 +unsigned int bitmap_line::sy#3 +unsigned int bitmap_line::sy#4 +unsigned int bitmap_line::sy#5 +unsigned int bitmap_line::sy#6 +unsigned int bitmap_line::sy#7 +unsigned int bitmap_line::sy#8 +unsigned int bitmap_line::sy#9 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#0 +unsigned int bitmap_line::x#1 +unsigned int bitmap_line::x#10 +unsigned int bitmap_line::x#11 +unsigned int bitmap_line::x#12 +unsigned int bitmap_line::x#13 +unsigned int bitmap_line::x#14 +unsigned int bitmap_line::x#15 +unsigned int bitmap_line::x#16 +unsigned int bitmap_line::x#17 +unsigned int bitmap_line::x#18 +unsigned int bitmap_line::x#19 +unsigned int bitmap_line::x#2 +unsigned int bitmap_line::x#3 +unsigned int bitmap_line::x#4 +unsigned int bitmap_line::x#5 +unsigned int bitmap_line::x#6 +unsigned int bitmap_line::x#7 +unsigned int bitmap_line::x#8 +unsigned int bitmap_line::x#9 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 +unsigned int bitmap_line::x1#1 +unsigned int bitmap_line::x1#2 +unsigned int bitmap_line::x1#3 +unsigned int bitmap_line::x1#4 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 +unsigned int bitmap_line::x2#1 +unsigned int bitmap_line::x2#10 +unsigned int bitmap_line::x2#11 +unsigned int bitmap_line::x2#2 +unsigned int bitmap_line::x2#3 +unsigned int bitmap_line::x2#4 +unsigned int bitmap_line::x2#5 +unsigned int bitmap_line::x2#6 +unsigned int bitmap_line::x2#7 +unsigned int bitmap_line::x2#8 +unsigned int bitmap_line::x2#9 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#0 +unsigned int bitmap_line::y#1 +unsigned int bitmap_line::y#10 +unsigned int bitmap_line::y#11 +unsigned int bitmap_line::y#12 +unsigned int bitmap_line::y#13 +unsigned int bitmap_line::y#14 +unsigned int bitmap_line::y#15 +unsigned int bitmap_line::y#16 +unsigned int bitmap_line::y#17 +unsigned int bitmap_line::y#18 +unsigned int bitmap_line::y#19 +unsigned int bitmap_line::y#2 +unsigned int bitmap_line::y#3 +unsigned int bitmap_line::y#4 +unsigned int bitmap_line::y#5 +unsigned int bitmap_line::y#6 +unsigned int bitmap_line::y#7 +unsigned int bitmap_line::y#8 +unsigned int bitmap_line::y#9 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 +unsigned int bitmap_line::y1#1 +unsigned int bitmap_line::y1#2 +unsigned int bitmap_line::y1#3 +unsigned int bitmap_line::y1#4 +unsigned int bitmap_line::y1#5 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 +unsigned int bitmap_line::y2#1 +unsigned int bitmap_line::y2#10 +unsigned int bitmap_line::y2#11 +unsigned int bitmap_line::y2#2 +unsigned int bitmap_line::y2#3 +unsigned int bitmap_line::y2#4 +unsigned int bitmap_line::y2#5 +unsigned int bitmap_line::y2#6 +unsigned int bitmap_line::y2#7 +unsigned int bitmap_line::y2#8 +unsigned int bitmap_line::y2#9 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$0 +number bitmap_plot::$1 +char bitmap_plot::$2 +char *bitmap_plot::plotter +char *bitmap_plot::plotter#0 +char *bitmap_plot::plotter#1 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 +unsigned int bitmap_plot::x#1 +unsigned int bitmap_plot::x#2 +unsigned int bitmap_plot::x#3 +unsigned int bitmap_plot::x#4 +char bitmap_plot::y +char bitmap_plot::y#0 +char bitmap_plot::y#1 +char bitmap_plot::y#2 +char bitmap_plot::y#3 +char bitmap_plot::y#4 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +char *bitmap_screen#0 +char *bitmap_screen#1 +char *bitmap_screen#10 +char *bitmap_screen#11 +char *bitmap_screen#12 +char *bitmap_screen#13 +char *bitmap_screen#14 +char *bitmap_screen#15 +char *bitmap_screen#16 +char *bitmap_screen#17 +char *bitmap_screen#18 +char *bitmap_screen#19 +char *bitmap_screen#2 +char *bitmap_screen#20 +char *bitmap_screen#21 +char *bitmap_screen#22 +char *bitmap_screen#23 +char *bitmap_screen#24 +char *bitmap_screen#25 +char *bitmap_screen#26 +char *bitmap_screen#27 +char *bitmap_screen#28 +char *bitmap_screen#29 +char *bitmap_screen#3 +char *bitmap_screen#30 +char *bitmap_screen#4 +char *bitmap_screen#5 +char *bitmap_screen#6 +char *bitmap_screen#7 +char *bitmap_screen#8 +char *bitmap_screen#9 void main() -byte*~ main::$12 -word~ main::$13 -word~ main::$14 -byte~ main::$2 -bool~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -number~ main::$7 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 -number~ sgn_u16::$1 -bool~ sgn_u16::$2 -word sgn_u16::return -word sgn_u16::return#0 -word sgn_u16::return#1 -word sgn_u16::return#2 -word sgn_u16::return#3 -word sgn_u16::return#4 -word sgn_u16::return#5 -word sgn_u16::return#6 -word sgn_u16::return#7 -word sgn_u16::w -word sgn_u16::w#0 -word sgn_u16::w#1 -word sgn_u16::w#2 +char *main::$12 +unsigned int main::$13 +unsigned int main::$14 +char main::$2 +bool main::$3 +number main::$4 +number main::$5 +number main::$6 +number main::$7 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 +number sgn_u16::$1 +bool sgn_u16::$2 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 +unsigned int sgn_u16::return#1 +unsigned int sgn_u16::return#2 +unsigned int sgn_u16::return#3 +unsigned int sgn_u16::return#4 +unsigned int sgn_u16::return#5 +unsigned int sgn_u16::return#6 +unsigned int sgn_u16::return#7 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 +unsigned int sgn_u16::w#1 +unsigned int sgn_u16::w#2 Adding number conversion cast (unumber) $40 in Adding number conversion cast (unumber) 1 in bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 @@ -1093,15 +1093,15 @@ Adding number conversion cast (unumber) $3e7 in main::$12 = SCREEN + $3e7 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast bitmap_init::bits#2 = (unumber)$80 Inlining cast memset::c#1 = (unumber)0 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast sgn_u16::return#2 = (unumber)-1 Inlining cast sgn_u16::return#3 = (unumber)1 Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $40 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -1137,56 +1137,56 @@ Simplifying constant integer cast $20 Simplifying constant integer cast $20 Simplifying constant integer cast $3e7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $fff8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) -1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $78 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $78 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (word) $3e7 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $fff8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) -1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $78 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $78 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (unsigned int) $3e7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 -Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 -Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 -Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 -Inferred type updated to word in main::$4 = main::$13 + $78 -Inferred type updated to byte in main::$5 = main::a#2 + $20 -Inferred type updated to word in main::$6 = main::$14 + $78 -Inferred type updated to byte in main::$7 = main::a#2 + $20 +Inferred type updated to char in bitmap_init::$3 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 +Inferred type updated to char in bitmap_init::$7 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 +Inferred type updated to unsigned int in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 +Inferred type updated to char in abs_u16::$1 = abs_u16::$0 & $80 +Inferred type updated to char in sgn_u16::$1 = sgn_u16::$0 & $80 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to unsigned int in main::$4 = main::$13 + $78 +Inferred type updated to char in main::$5 = main::a#2 + $20 +Inferred type updated to unsigned int in main::$6 = main::$14 + $78 +Inferred type updated to char in main::$7 = main::a#2 + $20 Inversing boolean not [9] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [8] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [29] bitmap_init::$9 = bitmap_init::$7 != 7 from [28] bitmap_init::$8 = bitmap_init::$7 == 7 Inversing boolean not [117] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [116] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 @@ -1375,17 +1375,17 @@ Constant main::toD0181_gfx#0 = BITMAP Constant main::i#0 = 0 Constant main::a#0 = 0 Constant main::$12 = SCREEN+$3e7 -Constant bitmap_screen#16 = (byte*) 0 -Constant bitmap_gfx#17 = (byte*) 0 +Constant bitmap_screen#16 = (char *) 0 +Constant bitmap_gfx#17 = (char *) 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_gfx#0 = bitmap_init::gfx#0 Constant bitmap_screen#0 = bitmap_init::screen#0 -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)bitmap_screen#0 -Constant memset::str#1 = (void*)bitmap_gfx#0 +Constant memset::str#0 = (void *)bitmap_screen#0 +Constant memset::str#1 = (void *)bitmap_gfx#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [159] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [159] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [181] if(true) goto main::@4 Successful SSA optimization Pass2ConstantIfs @@ -1418,8 +1418,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bitmap_init::$7 = bitmap_init::$3 Alias bitmap_clear::col#0 = bitmap_clear::$0 @@ -1431,11 +1431,11 @@ Negating conditional jump and destination [43] if(bitmap_line::dx#0!=0) goto bit Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [20] bitmap_clear::col#0 = bitmap_clear::fgcol#0 * $10 Constant right-side identified [111] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [114] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [114] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::c#0 = bitmap_clear::col#0 Successful SSA optimization Pass2ConstantIdentification @@ -1455,10 +1455,10 @@ Constant right-side identified [107] main::toD0181_return#0 = main::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [25] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [83] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [85] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [83] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [85] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [53] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [54] bitmap_line::e#0 = bitmap_line::dx#0 / 2 @@ -1490,17 +1490,17 @@ Constant inlined main::a#0 = 0 Constant inlined sgn_u16::return#3 = 1 Constant inlined main::i#0 = 0 Constant inlined sgn_u16::return#2 = -1 -Constant inlined memset::str#1 = (void*)BITMAP -Constant inlined memset::str#0 = (void*)SCREEN -Constant inlined main::toD0181_$7 = (word)SCREEN -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined memset::str#1 = (void *)BITMAP +Constant inlined memset::str#0 = (void *)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined bitmap_clear::fgcol#0 = WHITE Constant inlined bitmap_gfx#0 = BITMAP -Constant inlined main::toD0181_$5 = byte1 (word)BITMAP/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)BITMAP/4 -Constant inlined main::toD0181_$3 = byte1 (word)BITMAP +Constant inlined main::toD0181_$5 = byte1 (unsigned int)BITMAP/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)BITMAP/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)BITMAP Constant inlined bitmap_screen#0 = SCREEN Constant inlined bitmap_init::y#0 = 0 Constant inlined memset::c#0 = bitmap_clear::col#0 @@ -1512,19 +1512,19 @@ Consolidated array index constant in assignment (SINTAB+$20)[main::$7] Successful SSA optimization Pass2ConstantAdditionElimination Alias main::a#2 = main::$5 main::$7 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $180 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $180 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1) Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2) @@ -1655,11 +1655,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call bitmap_init + [1] call bitmap_init to:main::@5 main::@5: scope:[main] from main [2] phi() - [3] call bitmap_clear + [3] call bitmap_clear to:main::@6 main::@6: scope:[main] from main::@5 [4] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 @@ -1679,20 +1679,20 @@ main::@3: scope:[main] from main::@1 main::@3 [9] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) to:main::@3 main::@2: scope:[main] from main::@1 - [10] main::$13 = (word)COSTAB[main::a#2] + [10] main::$13 = (unsigned int)COSTAB[main::a#2] [11] bitmap_line::x1#0 = main::$13 + $78 - [12] main::$14 = (word)(COSTAB+$20)[main::a#2] + [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] [13] bitmap_line::x2#0 = main::$14 + $78 - [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] - [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] - [16] call bitmap_line + [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] + [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] + [16] call bitmap_line to:main::@7 main::@7: scope:[main] from main::@2 [17] main::a#1 = main::a#2 + $20 [18] main::i#1 = ++ main::i#2 to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [19] phi() to:bitmap_init::@1 @@ -1723,7 +1723,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [35] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [37] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -1734,29 +1734,29 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [40] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@5 [41] phi() - [42] call memset + [42] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [43] phi() - [44] call memset + [44] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [45] return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from main::@2 [46] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [47] call abs_u16 + [47] call abs_u16 [48] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [49] bitmap_line::dx#0 = abs_u16::return#0 [50] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [51] call abs_u16 + [51] call abs_u16 [52] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -1768,13 +1768,13 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [56] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [57] call sgn_u16 + [57] call sgn_u16 [58] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [59] bitmap_line::sx#0 = sgn_u16::return#0 [60] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [61] call sgn_u16 + [61] call sgn_u16 [62] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -1789,8 +1789,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [66] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [66] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [67] bitmap_plot::x#1 = bitmap_line::x#13 - [68] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [69] call bitmap_plot + [68] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [69] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [70] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -1810,8 +1810,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [77] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [77] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [78] bitmap_plot::x#2 = bitmap_line::x#6 - [79] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [80] call bitmap_plot + [79] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [80] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [81] return @@ -1824,8 +1824,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [83] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [83] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [84] bitmap_plot::x#3 = bitmap_line::x#7 - [85] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [86] call bitmap_plot + [85] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [86] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [87] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -1843,20 +1843,20 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [94] bitmap_plot::x#0 = bitmap_line::x1#0 - [95] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 - [96] call bitmap_plot + [95] bitmap_plot::y#0 = (char)bitmap_line::y1#0 + [96] call bitmap_plot to:bitmap_line::@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [97] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [97] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [97] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [97] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [98] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [100] memset::dst#4 = (byte*)memset::str#3 + [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [100] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [101] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1870,7 +1870,7 @@ memset::@3: scope:[memset] from memset::@2 [105] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [106] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) [107] abs_u16::$0 = byte1 abs_u16::w#2 @@ -1885,7 +1885,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [112] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [113] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) [114] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -1900,13 +1900,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [119] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [120] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [120] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [122] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [124] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return @@ -1916,143 +1916,143 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot VARIABLE REGISTER WEIGHTS -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 2002.0 -byte~ abs_u16::$1 2002.0 -word abs_u16::return -word abs_u16::return#0 202.0 -word abs_u16::return#1 202.0 -word abs_u16::return#2 2002.0 -word abs_u16::return#4 551.0 -word abs_u16::w -word abs_u16::w#0 202.0 -word abs_u16::w#1 202.0 -word abs_u16::w#2 801.25 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 202.0 -byte~ bitmap_init::$5 202.0 -byte~ bitmap_init::$6 202.0 -byte~ bitmap_init::$7 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 101.0 -byte bitmap_init::bits#3 151.5 -byte bitmap_init::bits#4 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 151.5 -byte bitmap_init::x#2 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 151.5 -byte bitmap_init::y#2 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 202.0 -byte* bitmap_init::yoffs#2 63.125 -byte* bitmap_init::yoffs#4 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 760.175 -word bitmap_line::dy -word bitmap_line::dy#0 844.6388888888889 -word bitmap_line::e -word bitmap_line::e#0 202.0 -word bitmap_line::e#1 13334.666666666666 -word bitmap_line::e#2 20002.0 -word bitmap_line::e#3 4020.6000000000004 -word bitmap_line::e#6 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 202.0 -word bitmap_line::e1#1 13334.666666666666 -word bitmap_line::e1#2 20002.0 -word bitmap_line::e1#3 4020.6000000000004 -word bitmap_line::e1#6 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 670.1 -word bitmap_line::sy -word bitmap_line::sy#0 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 10001.0 -word bitmap_line::x#12 20002.0 -word bitmap_line::x#13 5729.285714285716 -word bitmap_line::x#15 5714.857142857143 -word bitmap_line::x#6 20103.0 -word bitmap_line::x#7 7526.0 -word bitmap_line::x1 -word bitmap_line::x1#0 19.846153846153847 -word bitmap_line::x2 -word bitmap_line::x2#0 300.4117647058823 -word bitmap_line::y -word bitmap_line::y#1 5714.857142857143 -word bitmap_line::y#13 20002.0 -word bitmap_line::y#15 4300.571428571429 -word bitmap_line::y#2 10001.0 -word bitmap_line::y#4 5025.75 -word bitmap_line::y#7 10001.0 -word bitmap_line::y1 -word bitmap_line::y1#0 17.291666666666664 -word bitmap_line::y2 -word bitmap_line::y2#0 319.1875 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 200002.0 -byte~ bitmap_plot::$2 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 50000.5 -byte* bitmap_plot::plotter#1 150001.5 -word bitmap_plot::x -word bitmap_plot::x#0 101.0 -word bitmap_plot::x#1 10001.0 -word bitmap_plot::x#2 101.0 -word bitmap_plot::x#3 10001.0 -word bitmap_plot::x#4 55051.5 -byte bitmap_plot::y -byte bitmap_plot::y#0 202.0 -byte bitmap_plot::y#1 20002.0 -byte bitmap_plot::y#2 202.0 -byte bitmap_plot::y#3 20002.0 -byte bitmap_plot::y#4 220206.0 -byte* bitmap_screen +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // 2002.0 +char abs_u16::$1 // 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // 202.0 +unsigned int abs_u16::return#1 // 202.0 +unsigned int abs_u16::return#2 // 2002.0 +unsigned int abs_u16::return#4 // 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // 202.0 +unsigned int abs_u16::w#1 // 202.0 +unsigned int abs_u16::w#2 // 801.25 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // 202.0 +char bitmap_init::$5 // 202.0 +char bitmap_init::$6 // 202.0 +char bitmap_init::$7 // 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // 101.0 +char bitmap_init::bits#3 // 151.5 +char bitmap_init::bits#4 // 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // 151.5 +char bitmap_init::x#2 // 50.5 +char bitmap_init::y +char bitmap_init::y#1 // 151.5 +char bitmap_init::y#2 // 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // 202.0 +char *bitmap_init::yoffs#2 // 63.125 +char *bitmap_init::yoffs#4 // 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // 760.175 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // 844.6388888888889 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // 202.0 +unsigned int bitmap_line::e#1 // 13334.666666666666 +unsigned int bitmap_line::e#2 // 20002.0 +unsigned int bitmap_line::e#3 // 4020.6000000000004 +unsigned int bitmap_line::e#6 // 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // 202.0 +unsigned int bitmap_line::e1#1 // 13334.666666666666 +unsigned int bitmap_line::e1#2 // 20002.0 +unsigned int bitmap_line::e1#3 // 4020.6000000000004 +unsigned int bitmap_line::e1#6 // 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // 670.1 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // 10001.0 +unsigned int bitmap_line::x#12 // 20002.0 +unsigned int bitmap_line::x#13 // 5729.285714285716 +unsigned int bitmap_line::x#15 // 5714.857142857143 +unsigned int bitmap_line::x#6 // 20103.0 +unsigned int bitmap_line::x#7 // 7526.0 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 // 19.846153846153847 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // 300.4117647058823 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // 5714.857142857143 +unsigned int bitmap_line::y#13 // 20002.0 +unsigned int bitmap_line::y#15 // 4300.571428571429 +unsigned int bitmap_line::y#2 // 10001.0 +unsigned int bitmap_line::y#4 // 5025.75 +unsigned int bitmap_line::y#7 // 10001.0 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 // 17.291666666666664 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 // 319.1875 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // 200002.0 +char bitmap_plot::$2 // 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // 50000.5 +char *bitmap_plot::plotter#1 // 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // 101.0 +unsigned int bitmap_plot::x#1 // 10001.0 +unsigned int bitmap_plot::x#2 // 101.0 +unsigned int bitmap_plot::x#3 // 10001.0 +unsigned int bitmap_plot::x#4 // 55051.5 +char bitmap_plot::y +char bitmap_plot::y#0 // 202.0 +char bitmap_plot::y#1 // 20002.0 +char bitmap_plot::y#2 // 202.0 +char bitmap_plot::y#3 // 20002.0 +char bitmap_plot::y#4 // 220206.0 +char *bitmap_screen void main() -word~ main::$13 22.0 -word~ main::$14 22.0 -byte main::a -byte main::a#1 11.0 -byte main::a#2 2.4444444444444446 -byte main::i -byte main::i#1 22.0 -byte main::i#2 3.3000000000000003 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 125.125 -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1368.3333333333335 -byte* memset::dst#4 202.0 -byte* memset::end -byte* memset::end#0 183.66666666666669 -word memset::num -word memset::num#2 101.0 -void* memset::return -void* memset::str -void* memset::str#3 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 2002.0 -byte~ sgn_u16::$1 2002.0 -word sgn_u16::return -word sgn_u16::return#0 202.0 -word sgn_u16::return#1 202.0 -word sgn_u16::return#4 50.5 -word sgn_u16::w -word sgn_u16::w#0 202.0 -word sgn_u16::w#1 202.0 -word sgn_u16::w#2 1203.0 +unsigned int main::$13 // 22.0 +unsigned int main::$14 // 22.0 +char main::a +char main::a#1 // 11.0 +char main::a#2 // 2.4444444444444446 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 3.3000000000000003 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 125.125 +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1368.3333333333335 +char *memset::dst#4 // 202.0 +char *memset::end +char *memset::end#0 // 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // 101.0 +void *memset::return +void *memset::str +void *memset::str#3 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // 2002.0 +char sgn_u16::$1 // 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // 202.0 +unsigned int sgn_u16::return#1 // 202.0 +unsigned int sgn_u16::return#4 // 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // 202.0 +unsigned int sgn_u16::w#1 // 202.0 +unsigned int sgn_u16::w#2 // 1203.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -2192,16 +2192,16 @@ REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp[1]:42 [ bitmap_init::$4 ] has ALU potential. Statement [4] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] main::$13 = (word)COSTAB[main::a#2] [ main::i#2 main::a#2 main::$13 ] ( [ main::i#2 main::a#2 main::$13 ] { } ) always clobbers reg byte a +Statement [10] main::$13 = (unsigned int)COSTAB[main::a#2] [ main::i#2 main::a#2 main::$13 ] ( [ main::i#2 main::a#2 main::$13 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::a#2 main::a#1 ] Statement [11] bitmap_line::x1#0 = main::$13 + $78 [ main::i#2 main::a#2 bitmap_line::x1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 ] { } ) always clobbers reg byte a -Statement [12] main::$14 = (word)(COSTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] { } ) always clobbers reg byte a +Statement [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] { } ) always clobbers reg byte a Statement [13] bitmap_line::x2#0 = main::$14 + $78 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 ] { } ) always clobbers reg byte a -Statement [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] { } ) always clobbers reg byte a -Statement [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a +Statement [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] { } ) always clobbers reg byte a +Statement [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a Statement [17] main::a#1 = main::a#2 + $20 [ main::i#2 main::a#1 ] ( [ main::i#2 main::a#1 ] { } ) always clobbers reg byte a -Statement [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [46] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::w#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [48] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2238,30 +2238,30 @@ Statement [93] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ b Statement [94] bitmap_plot::x#0 = bitmap_line::x1#0 [ bitmap_line::y1#0 bitmap_plot::x#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::y1#0 bitmap_plot::x#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [98] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:3::memset:42 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:3::memset:44 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:21 [ memset::c#4 ] -Statement [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:3::memset:42 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:3::memset:44 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [100] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:3::memset:42 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:3::memset:44 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [100] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [102] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [104] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:21 [ memset::c#4 ] Statement [110] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:16::abs_u16:47 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:16::abs_u16:51 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [122] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::a#2 main::a#1 ] Statement [4] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] main::$13 = (word)COSTAB[main::a#2] [ main::i#2 main::a#2 main::$13 ] ( [ main::i#2 main::a#2 main::$13 ] { } ) always clobbers reg byte a +Statement [10] main::$13 = (unsigned int)COSTAB[main::a#2] [ main::i#2 main::a#2 main::$13 ] ( [ main::i#2 main::a#2 main::$13 ] { } ) always clobbers reg byte a Statement [11] bitmap_line::x1#0 = main::$13 + $78 [ main::i#2 main::a#2 bitmap_line::x1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 ] { } ) always clobbers reg byte a -Statement [12] main::$14 = (word)(COSTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] { } ) always clobbers reg byte a +Statement [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] { } ) always clobbers reg byte a Statement [13] bitmap_line::x2#0 = main::$14 + $78 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 ] { } ) always clobbers reg byte a -Statement [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] { } ) always clobbers reg byte a -Statement [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a +Statement [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] { } ) always clobbers reg byte a +Statement [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a Statement [17] main::a#1 = main::a#2 + $20 [ main::i#2 main::a#1 ] ( [ main::i#2 main::a#1 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [29] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [46] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::w#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [48] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [49] bitmap_line::dx#0 = abs_u16::return#0 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2296,27 +2296,27 @@ Statement [91] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitma Statement [93] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { } ) always clobbers reg byte a Statement [94] bitmap_plot::x#0 = bitmap_line::x1#0 [ bitmap_line::y1#0 bitmap_plot::x#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::y1#0 bitmap_plot::x#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [98] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:3::memset:42 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:3::memset:44 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:3::memset:42 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:3::memset:44 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [100] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:3::memset:42 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:3::memset:44 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [100] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [102] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [104] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [110] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:16::abs_u16:47 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:16::abs_u16:51 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [122] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Statement [4] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] if(main::i#2!=8) goto main::@2 [ main::i#2 main::a#2 ] ( [ main::i#2 main::a#2 ] { } ) always clobbers reg byte a -Statement [10] main::$13 = (word)COSTAB[main::a#2] [ main::i#2 main::a#2 main::$13 ] ( [ main::i#2 main::a#2 main::$13 ] { } ) always clobbers reg byte a +Statement [10] main::$13 = (unsigned int)COSTAB[main::a#2] [ main::i#2 main::a#2 main::$13 ] ( [ main::i#2 main::a#2 main::$13 ] { } ) always clobbers reg byte a Statement [11] bitmap_line::x1#0 = main::$13 + $78 [ main::i#2 main::a#2 bitmap_line::x1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 ] { } ) always clobbers reg byte a -Statement [12] main::$14 = (word)(COSTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] { } ) always clobbers reg byte a +Statement [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 main::$14 ] { } ) always clobbers reg byte a Statement [13] bitmap_line::x2#0 = main::$14 + $78 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 ] { } ) always clobbers reg byte a -Statement [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] { } ) always clobbers reg byte a -Statement [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a +Statement [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 ] { } ) always clobbers reg byte a +Statement [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] ( [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a Statement [17] main::a#1 = main::a#2 + $20 [ main::i#2 main::a#1 ] ( [ main::i#2 main::a#1 ] { } ) always clobbers reg byte a reg byte x Statement [29] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:1 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [46] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::w#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [48] abs_u16::return#0 = abs_u16::return#4 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [49] bitmap_line::dx#0 = abs_u16::return#0 [ bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2351,14 +2351,14 @@ Statement [91] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0 [ bitma Statement [93] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9 [ bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#15 bitmap_line::y#13 bitmap_line::e1#6 ] { } ) always clobbers reg byte a Statement [94] bitmap_plot::x#0 = bitmap_line::x1#0 [ bitmap_line::y1#0 bitmap_plot::x#0 ] ( bitmap_line:16 [ main::i#2 main::a#2 bitmap_line::y1#0 bitmap_plot::x#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [98] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:3::memset:42 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:3::memset:44 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:3::memset:42 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:3::memset:44 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [100] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:3::memset:42 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:3::memset:44 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [100] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [102] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [104] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:3::memset:42 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:3::memset:44 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [110] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( bitmap_line:16::abs_u16:47 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } bitmap_line:16::abs_u16:51 [ main::i#2 main::a#2 bitmap_line::x1#0 bitmap_line::x2#0 bitmap_line::y1#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [122] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [125] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( bitmap_line:16::bitmap_plot:69 [ main::i#2 main::a#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } bitmap_line:16::bitmap_plot:80 [ main::i#2 main::a#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } bitmap_line:16::bitmap_plot:86 [ main::i#2 main::a#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } bitmap_line:16::bitmap_plot:96 [ main::i#2 main::a#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , Potential registers zp[1]:3 [ main::a#2 main::a#1 ] : zp[1]:3 , reg byte x , @@ -2522,7 +2522,7 @@ main: { .label __14 = $10 .label a = 3 .label i = 2 - // [1] call bitmap_init + // [1] call bitmap_init // [19] phi from main to bitmap_init [phi:main->bitmap_init] bitmap_init_from_main: jsr bitmap_init @@ -2531,7 +2531,7 @@ main: { jmp __b5 // main::@5 __b5: - // [3] call bitmap_clear + // [3] call bitmap_clear // [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear] bitmap_clear_from___b5: jsr bitmap_clear @@ -2575,7 +2575,7 @@ main: { jmp __b3 // main::@2 __b2: - // [10] main::$13 = (word)COSTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [10] main::$13 = (unsigned int)COSTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda COSTAB,y sta.z __13 @@ -2589,7 +2589,7 @@ main: { bcc !+ inc.z bitmap_line.x1+1 !: - // [12] main::$14 = (word)(COSTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda COSTAB+$20,y sta.z __14 @@ -2603,19 +2603,19 @@ main: { bcc !+ inc.z bitmap_line.x2+1 !: - // [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda SINTAB,y sta.z bitmap_line.y1 lda #0 sta.z bitmap_line.y1+1 - // [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda SINTAB+$20,y sta.z bitmap_line.y2 lda #0 sta.z bitmap_line.y2+1 - // [16] call bitmap_line + // [16] call bitmap_line jsr bitmap_line jmp __b7 // main::@7 @@ -2634,6 +2634,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $14 .label yoffs = 4 @@ -2716,7 +2717,7 @@ bitmap_init: { jmp __b5 // bitmap_init::@5 __b5: - // [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -2746,14 +2747,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 - // [42] call memset + // [42] call memset // [97] phi from bitmap_clear to memset [phi:bitmap_clear->memset] memset_from_bitmap_clear: // [97] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [97] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [97] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -2769,12 +2771,12 @@ bitmap_clear: { jmp __b1 // bitmap_clear::@1 __b1: - // [44] call memset + // [44] call memset // [97] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] memset_from___b1: // [97] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [97] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [97] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -2793,7 +2795,7 @@ bitmap_clear: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(6) x1, word zp(8) y1, word zp($10) x2, word zp($12) y2) +// void bitmap_line(__zp(6) unsigned int x1, __zp(8) unsigned int y1, __zp($10) unsigned int x2, __zp($12) unsigned int y2) bitmap_line: { .label dx = $15 .label dy = $c @@ -2815,7 +2817,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z abs_u16.w+1 - // [47] call abs_u16 + // [47] call abs_u16 // [106] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] abs_u16_from_bitmap_line: // [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy @@ -2837,7 +2839,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z abs_u16.w+1 - // [51] call abs_u16 + // [51] call abs_u16 // [106] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] abs_u16_from___b12: // [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy @@ -2869,7 +2871,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z sgn_u16.w+1 - // [57] call sgn_u16 + // [57] call sgn_u16 // [113] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] sgn_u16_from___b1: // [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy @@ -2891,7 +2893,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z sgn_u16.w+1 - // [61] call sgn_u16 + // [61] call sgn_u16 // [113] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] sgn_u16_from___b14: // [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy @@ -2931,9 +2933,9 @@ bitmap_line: { // bitmap_line::@6 __b6: // [67] bitmap_plot::x#1 = bitmap_line::x#13 - // [68] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 + // [68] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 ldx.z y - // [69] call bitmap_plot + // [69] call bitmap_plot // [120] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] bitmap_plot_from___b6: // [120] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy @@ -3010,9 +3012,9 @@ bitmap_line: { // bitmap_line::@3 __b3: // [78] bitmap_plot::x#2 = bitmap_line::x#6 - // [79] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [79] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [80] call bitmap_plot + // [80] call bitmap_plot // [120] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] bitmap_plot_from___b3: // [120] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy @@ -3043,9 +3045,9 @@ bitmap_line: { // bitmap_line::@9 __b9: // [84] bitmap_plot::x#3 = bitmap_line::x#7 - // [85] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [85] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [86] call bitmap_plot + // [86] call bitmap_plot // [120] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] bitmap_plot_from___b9: // [120] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy @@ -3117,9 +3119,9 @@ bitmap_line: { // bitmap_line::@4 __b4: // [94] bitmap_plot::x#0 = bitmap_line::x1#0 - // [95] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 + // [95] bitmap_plot::y#0 = (char)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 ldx.z y1 - // [96] call bitmap_plot + // [96] call bitmap_plot // [120] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] bitmap_plot_from___b4: // [120] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy @@ -3129,7 +3131,7 @@ bitmap_line: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp(8) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp(8) unsigned int num) memset: { .label end = 8 .label dst = $a @@ -3144,7 +3146,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -3152,7 +3154,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [100] memset::dst#4 = (byte*)memset::str#3 + // [100] memset::dst#4 = (char *)memset::str#3 // [101] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -3187,7 +3189,7 @@ memset: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($c) w) +// __zp($c) unsigned int abs_u16(__zp($c) unsigned int w) abs_u16: { .label w = $c .label return = $c @@ -3222,7 +3224,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($19) w) +// __zp($e) unsigned int sgn_u16(__zp($19) unsigned int w) sgn_u16: { .label w = $19 .label return = $e @@ -3261,7 +3263,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(6) x, byte register(X) y) +// void bitmap_plot(__zp(6) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $1b .label plotter = $19 @@ -3278,7 +3280,7 @@ bitmap_plot: { lda.z x+1 and #>$fff8 sta.z __1+1 - // [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 @@ -3454,165 +3456,165 @@ Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [212] beq __b4 to bne +Fixing long branch [214] beq __b4 to bne FINAL SYMBOL TABLE -constant byte* BITMAP = (byte*) 8192 -constant byte* COSTAB = SINTAB+$40 -constant byte* const D011 = (byte*) 53265 -constant byte* const D018 = (byte*) 53272 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* SCREEN = (byte*) 1024 -constant byte* SINTAB[$180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }} -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2002.0 -byte~ abs_u16::$1 reg byte a 2002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:12 202.0 -word abs_u16::return#1 return zp[2]:12 202.0 -word abs_u16::return#2 return zp[2]:12 2002.0 -word abs_u16::return#4 return zp[2]:12 551.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:12 202.0 -word abs_u16::w#1 w zp[2]:12 202.0 -word abs_u16::w#2 w zp[2]:12 801.25 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:20 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:4 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:4 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:4 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:21 760.175 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:12 844.6388888888889 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:4 202.0 -word bitmap_line::e#1 e zp[2]:4 13334.666666666666 -word bitmap_line::e#2 e zp[2]:4 20002.0 -word bitmap_line::e#3 e zp[2]:4 4020.6000000000004 -word bitmap_line::e#6 e zp[2]:4 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:10 202.0 -word bitmap_line::e1#1 e1 zp[2]:10 13334.666666666666 -word bitmap_line::e1#2 e1 zp[2]:10 20002.0 -word bitmap_line::e1#3 e1 zp[2]:10 4020.6000000000004 -word bitmap_line::e1#6 e1 zp[2]:10 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:23 670.1 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:14 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:6 10001.0 -word bitmap_line::x#12 x zp[2]:6 20002.0 -word bitmap_line::x#13 x zp[2]:6 5729.285714285716 -word bitmap_line::x#15 x zp[2]:6 5714.857142857143 -word bitmap_line::x#6 x zp[2]:6 20103.0 -word bitmap_line::x#7 x zp[2]:6 7526.0 -word bitmap_line::x1 -word bitmap_line::x1#0 x1 zp[2]:6 19.846153846153847 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:16 300.4117647058823 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:8 5714.857142857143 -word bitmap_line::y#13 y zp[2]:8 20002.0 -word bitmap_line::y#15 y zp[2]:8 4300.571428571429 -word bitmap_line::y#2 y zp[2]:8 10001.0 -word bitmap_line::y#4 y zp[2]:8 5025.75 -word bitmap_line::y#7 y zp[2]:8 10001.0 -word bitmap_line::y1 -word bitmap_line::y1#0 y1 zp[2]:8 17.291666666666664 -word bitmap_line::y2 -word bitmap_line::y2#0 y2 zp[2]:18 319.1875 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:27 200002.0 -byte~ bitmap_plot::$2 reg byte x 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:25 50000.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:25 150001.5 -word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:6 101.0 -word bitmap_plot::x#1 x zp[2]:6 10001.0 -word bitmap_plot::x#2 x zp[2]:6 101.0 -word bitmap_plot::x#3 x zp[2]:6 10001.0 -word bitmap_plot::x#4 x zp[2]:6 55051.5 -byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte x 202.0 -byte bitmap_plot::y#1 reg byte x 20002.0 -byte bitmap_plot::y#2 reg byte x 202.0 -byte bitmap_plot::y#3 reg byte x 20002.0 -byte bitmap_plot::y#4 reg byte x 220206.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char *BITMAP = (char *) 8192 +__constant char *COSTAB = SINTAB+$40 +__constant char * const D011 = (char *) 53265 +__constant char * const D018 = (char *) 53272 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char *SCREEN = (char *) 1024 +__constant char SINTAB[$180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }} +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2002.0 +char abs_u16::$1 // reg byte a 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:12 202.0 +unsigned int abs_u16::return#1 // return zp[2]:12 202.0 +unsigned int abs_u16::return#2 // return zp[2]:12 2002.0 +unsigned int abs_u16::return#4 // return zp[2]:12 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:12 202.0 +unsigned int abs_u16::w#1 // w zp[2]:12 202.0 +unsigned int abs_u16::w#2 // w zp[2]:12 801.25 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:20 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:4 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:4 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:4 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:21 760.175 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:12 844.6388888888889 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:4 202.0 +unsigned int bitmap_line::e#1 // e zp[2]:4 13334.666666666666 +unsigned int bitmap_line::e#2 // e zp[2]:4 20002.0 +unsigned int bitmap_line::e#3 // e zp[2]:4 4020.6000000000004 +unsigned int bitmap_line::e#6 // e zp[2]:4 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:10 202.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:10 13334.666666666666 +unsigned int bitmap_line::e1#2 // e1 zp[2]:10 20002.0 +unsigned int bitmap_line::e1#3 // e1 zp[2]:10 4020.6000000000004 +unsigned int bitmap_line::e1#6 // e1 zp[2]:10 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:23 670.1 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:14 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:6 10001.0 +unsigned int bitmap_line::x#12 // x zp[2]:6 20002.0 +unsigned int bitmap_line::x#13 // x zp[2]:6 5729.285714285716 +unsigned int bitmap_line::x#15 // x zp[2]:6 5714.857142857143 +unsigned int bitmap_line::x#6 // x zp[2]:6 20103.0 +unsigned int bitmap_line::x#7 // x zp[2]:6 7526.0 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 // x1 zp[2]:6 19.846153846153847 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:16 300.4117647058823 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:8 5714.857142857143 +unsigned int bitmap_line::y#13 // y zp[2]:8 20002.0 +unsigned int bitmap_line::y#15 // y zp[2]:8 4300.571428571429 +unsigned int bitmap_line::y#2 // y zp[2]:8 10001.0 +unsigned int bitmap_line::y#4 // y zp[2]:8 5025.75 +unsigned int bitmap_line::y#7 // y zp[2]:8 10001.0 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 // y1 zp[2]:8 17.291666666666664 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 // y2 zp[2]:18 319.1875 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:27 200002.0 +char bitmap_plot::$2 // reg byte x 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:25 50000.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:25 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // x zp[2]:6 101.0 +unsigned int bitmap_plot::x#1 // x zp[2]:6 10001.0 +unsigned int bitmap_plot::x#2 // x zp[2]:6 101.0 +unsigned int bitmap_plot::x#3 // x zp[2]:6 10001.0 +unsigned int bitmap_plot::x#4 // x zp[2]:6 55051.5 +char bitmap_plot::y +char bitmap_plot::y#0 // reg byte x 202.0 +char bitmap_plot::y#1 // reg byte x 20002.0 +char bitmap_plot::y#2 // reg byte x 202.0 +char bitmap_plot::y#3 // reg byte x 20002.0 +char bitmap_plot::y#4 // reg byte x 220206.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void main() -word~ main::$13 zp[2]:6 22.0 -word~ main::$14 zp[2]:16 22.0 -byte main::a -byte main::a#1 a zp[1]:3 11.0 -byte main::a#2 a zp[1]:3 2.4444444444444446 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 3.3000000000000003 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)BITMAP/4&$f -byte* main::toD0181_screen -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:10 2002.0 -byte* memset::dst#2 dst zp[2]:10 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:10 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:8 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:8 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:10 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2002.0 -byte~ sgn_u16::$1 reg byte a 2002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:14 202.0 -word sgn_u16::return#1 return zp[2]:14 202.0 -word sgn_u16::return#4 return zp[2]:14 50.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:25 202.0 -word sgn_u16::w#1 w zp[2]:25 202.0 -word sgn_u16::w#2 w zp[2]:25 1203.0 +unsigned int main::$13 // zp[2]:6 22.0 +unsigned int main::$14 // zp[2]:16 22.0 +char main::a +char main::a#1 // a zp[1]:3 11.0 +char main::a#2 // a zp[1]:3 2.4444444444444446 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 3.3000000000000003 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)BITMAP/4&$f // toD0181_return +char *main::toD0181_screen +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:10 2002.0 +char *memset::dst#2 // dst zp[2]:10 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:10 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:8 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:8 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:10 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2002.0 +char sgn_u16::$1 // reg byte a 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#1 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#4 // return zp[2]:14 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:25 202.0 +unsigned int sgn_u16::w#1 // w zp[2]:25 202.0 +unsigned int sgn_u16::w#2 // w zp[2]:25 1203.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::a#2 main::a#1 ] @@ -3695,13 +3697,13 @@ main: { .label a = 3 .label i = 2 // bitmap_init(BITMAP, SCREEN) - // [1] call bitmap_init + // [1] call bitmap_init // [19] phi from main to bitmap_init [phi:main->bitmap_init] jsr bitmap_init // [2] phi from main to main::@5 [phi:main->main::@5] // main::@5 // bitmap_clear(BLACK, WHITE) - // [3] call bitmap_clear + // [3] call bitmap_clear // [41] phi from main::@5 to bitmap_clear [phi:main::@5->bitmap_clear] jsr bitmap_clear // main::@6 @@ -3738,7 +3740,7 @@ main: { // main::@2 __b2: // (word)COSTAB[a]+120 - // [10] main::$13 = (word)COSTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [10] main::$13 = (unsigned int)COSTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda COSTAB,y sta.z __13 @@ -3754,7 +3756,7 @@ main: { inc.z bitmap_line.x1+1 !: // (word)COSTAB[a+32]+120 - // [12] main::$14 = (word)(COSTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda COSTAB+$20,y sta.z __14 @@ -3769,18 +3771,18 @@ main: { bcc !+ inc.z bitmap_line.x2+1 !: - // [14] bitmap_line::y1#0 = (word)SINTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 ldy.z a lda SINTAB,y sta.z bitmap_line.y1 lda #0 sta.z bitmap_line.y1+1 - // [15] bitmap_line::y2#0 = (word)(SINTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 + // [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2] -- vwuz1=_word_pbuc1_derefidx_vbuz2 lda SINTAB+$20,y sta.z bitmap_line.y2 lda #0 sta.z bitmap_line.y2+1 - // [16] call bitmap_line + // [16] call bitmap_line jsr bitmap_line // main::@7 // a+=32 @@ -3798,6 +3800,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $14 .label yoffs = 4 @@ -3875,7 +3878,7 @@ bitmap_init: { bne __b4 // bitmap_init::@5 // yoffs = yoffs + 40*8 - // [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [36] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -3902,14 +3905,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) - // [42] call memset + // [42] call memset // [97] phi from bitmap_clear to memset [phi:bitmap_clear->memset] // [97] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [97] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [97] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -3923,11 +3927,11 @@ bitmap_clear: { // [43] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] // bitmap_clear::@1 // memset(bitmap_gfx, 0, 8000uw) - // [44] call memset + // [44] call memset // [97] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] // [97] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [97] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [97] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -3945,7 +3949,7 @@ bitmap_clear: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(6) x1, word zp(8) y1, word zp($10) x2, word zp($12) y2) +// void bitmap_line(__zp(6) unsigned int x1, __zp(8) unsigned int y1, __zp($10) unsigned int x2, __zp($12) unsigned int y2) bitmap_line: { .label dx = $15 .label dy = $c @@ -3968,7 +3972,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z abs_u16.w+1 - // [47] call abs_u16 + // [47] call abs_u16 // [106] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] // [106] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy jsr abs_u16 @@ -3989,7 +3993,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z abs_u16.w+1 - // [51] call abs_u16 + // [51] call abs_u16 // [106] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] // [106] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy jsr abs_u16 @@ -4020,7 +4024,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z sgn_u16.w+1 - // [57] call sgn_u16 + // [57] call sgn_u16 // [113] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] // [113] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy jsr sgn_u16 @@ -4041,7 +4045,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z sgn_u16.w+1 - // [61] call sgn_u16 + // [61] call sgn_u16 // [113] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] // [113] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy jsr sgn_u16 @@ -4077,9 +4081,9 @@ bitmap_line: { __b6: // bitmap_plot(x,(char)y) // [67] bitmap_plot::x#1 = bitmap_line::x#13 - // [68] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 + // [68] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 ldx.z y - // [69] call bitmap_plot + // [69] call bitmap_plot // [120] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] // [120] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy // [120] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy @@ -4151,9 +4155,9 @@ bitmap_line: { __b3: // bitmap_plot(x,(char)y) // [78] bitmap_plot::x#2 = bitmap_line::x#6 - // [79] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [79] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [80] call bitmap_plot + // [80] call bitmap_plot // [120] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] // [120] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy // [120] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy @@ -4181,9 +4185,9 @@ bitmap_line: { __b9: // bitmap_plot(x,(char)y) // [84] bitmap_plot::x#3 = bitmap_line::x#7 - // [85] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [85] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [86] call bitmap_plot + // [86] call bitmap_plot // [120] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] // [120] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy // [120] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy @@ -4253,9 +4257,9 @@ bitmap_line: { __b4: // bitmap_plot(x,(char)y) // [94] bitmap_plot::x#0 = bitmap_line::x1#0 - // [95] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 + // [95] bitmap_plot::y#0 = (char)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 ldx.z y1 - // [96] call bitmap_plot + // [96] call bitmap_plot // [120] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] // [120] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy // [120] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy @@ -4264,7 +4268,7 @@ bitmap_line: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c, word zp(8) num) +// void * memset(__zp($a) void *str, __register(X) char c, __zp(8) unsigned int num) memset: { .label end = 8 .label dst = $a @@ -4279,7 +4283,7 @@ memset: { !: // memset::@1 // char* end = (char*)str + num - // [99] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [99] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -4287,7 +4291,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [100] memset::dst#4 = (byte*)memset::str#3 + // [100] memset::dst#4 = (char *)memset::str#3 // [101] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [101] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 @@ -4322,7 +4326,7 @@ memset: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($c) w) +// __zp($c) unsigned int abs_u16(__zp($c) unsigned int w) abs_u16: { .label w = $c .label return = $c @@ -4358,7 +4362,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($19) w) +// __zp($e) unsigned int sgn_u16(__zp($19) unsigned int w) sgn_u16: { .label w = $19 .label return = $e @@ -4394,7 +4398,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(6) x, byte register(X) y) +// void bitmap_plot(__zp(6) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $1b .label plotter = $19 @@ -4414,7 +4418,7 @@ bitmap_plot: { and #>$fff8 sta.z __1+1 // plotter += ( x & $fff8 ) - // [123] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 diff --git a/src/test/ref/bitmap-plot-3.sym b/src/test/ref/bitmap-plot-3.sym index 3c607de92..8952ffc1f 100644 --- a/src/test/ref/bitmap-plot-3.sym +++ b/src/test/ref/bitmap-plot-3.sym @@ -1,159 +1,159 @@ -constant byte* BITMAP = (byte*) 8192 -constant byte* COSTAB = SINTAB+$40 -constant byte* const D011 = (byte*) 53265 -constant byte* const D018 = (byte*) 53272 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* SCREEN = (byte*) 1024 -constant byte* SINTAB[$180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }} -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2002.0 -byte~ abs_u16::$1 reg byte a 2002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:12 202.0 -word abs_u16::return#1 return zp[2]:12 202.0 -word abs_u16::return#2 return zp[2]:12 2002.0 -word abs_u16::return#4 return zp[2]:12 551.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:12 202.0 -word abs_u16::w#1 w zp[2]:12 202.0 -word abs_u16::w#2 w zp[2]:12 801.25 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:20 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:4 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:4 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:4 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:21 760.175 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:12 844.6388888888889 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:4 202.0 -word bitmap_line::e#1 e zp[2]:4 13334.666666666666 -word bitmap_line::e#2 e zp[2]:4 20002.0 -word bitmap_line::e#3 e zp[2]:4 4020.6000000000004 -word bitmap_line::e#6 e zp[2]:4 15001.5 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:10 202.0 -word bitmap_line::e1#1 e1 zp[2]:10 13334.666666666666 -word bitmap_line::e1#2 e1 zp[2]:10 20002.0 -word bitmap_line::e1#3 e1 zp[2]:10 4020.6000000000004 -word bitmap_line::e1#6 e1 zp[2]:10 15001.5 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:23 670.1 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:14 773.1923076923076 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:6 10001.0 -word bitmap_line::x#12 x zp[2]:6 20002.0 -word bitmap_line::x#13 x zp[2]:6 5729.285714285716 -word bitmap_line::x#15 x zp[2]:6 5714.857142857143 -word bitmap_line::x#6 x zp[2]:6 20103.0 -word bitmap_line::x#7 x zp[2]:6 7526.0 -word bitmap_line::x1 -word bitmap_line::x1#0 x1 zp[2]:6 19.846153846153847 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:16 300.4117647058823 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:8 5714.857142857143 -word bitmap_line::y#13 y zp[2]:8 20002.0 -word bitmap_line::y#15 y zp[2]:8 4300.571428571429 -word bitmap_line::y#2 y zp[2]:8 10001.0 -word bitmap_line::y#4 y zp[2]:8 5025.75 -word bitmap_line::y#7 y zp[2]:8 10001.0 -word bitmap_line::y1 -word bitmap_line::y1#0 y1 zp[2]:8 17.291666666666664 -word bitmap_line::y2 -word bitmap_line::y2#0 y2 zp[2]:18 319.1875 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:27 200002.0 -byte~ bitmap_plot::$2 reg byte x 200002.0 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:25 50000.5 -byte* bitmap_plot::plotter#1 plotter zp[2]:25 150001.5 -word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:6 101.0 -word bitmap_plot::x#1 x zp[2]:6 10001.0 -word bitmap_plot::x#2 x zp[2]:6 101.0 -word bitmap_plot::x#3 x zp[2]:6 10001.0 -word bitmap_plot::x#4 x zp[2]:6 55051.5 -byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte x 202.0 -byte bitmap_plot::y#1 reg byte x 20002.0 -byte bitmap_plot::y#2 reg byte x 202.0 -byte bitmap_plot::y#3 reg byte x 20002.0 -byte bitmap_plot::y#4 reg byte x 220206.0 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char *BITMAP = (char *) 8192 +__constant char *COSTAB = SINTAB+$40 +__constant char * const D011 = (char *) 53265 +__constant char * const D018 = (char *) 53272 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char *SCREEN = (char *) 1024 +__constant char SINTAB[$180] = kickasm {{ .fill $180, 99.5+99.5*sin(i*2*PI/256) }} +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2002.0 +char abs_u16::$1 // reg byte a 2002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:12 202.0 +unsigned int abs_u16::return#1 // return zp[2]:12 202.0 +unsigned int abs_u16::return#2 // return zp[2]:12 2002.0 +unsigned int abs_u16::return#4 // return zp[2]:12 551.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:12 202.0 +unsigned int abs_u16::w#1 // w zp[2]:12 202.0 +unsigned int abs_u16::w#2 // w zp[2]:12 801.25 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:20 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:4 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:4 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:4 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:21 760.175 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:12 844.6388888888889 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:4 202.0 +unsigned int bitmap_line::e#1 // e zp[2]:4 13334.666666666666 +unsigned int bitmap_line::e#2 // e zp[2]:4 20002.0 +unsigned int bitmap_line::e#3 // e zp[2]:4 4020.6000000000004 +unsigned int bitmap_line::e#6 // e zp[2]:4 15001.5 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:10 202.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:10 13334.666666666666 +unsigned int bitmap_line::e1#2 // e1 zp[2]:10 20002.0 +unsigned int bitmap_line::e1#3 // e1 zp[2]:10 4020.6000000000004 +unsigned int bitmap_line::e1#6 // e1 zp[2]:10 15001.5 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:23 670.1 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:14 773.1923076923076 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:6 10001.0 +unsigned int bitmap_line::x#12 // x zp[2]:6 20002.0 +unsigned int bitmap_line::x#13 // x zp[2]:6 5729.285714285716 +unsigned int bitmap_line::x#15 // x zp[2]:6 5714.857142857143 +unsigned int bitmap_line::x#6 // x zp[2]:6 20103.0 +unsigned int bitmap_line::x#7 // x zp[2]:6 7526.0 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 // x1 zp[2]:6 19.846153846153847 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:16 300.4117647058823 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:8 5714.857142857143 +unsigned int bitmap_line::y#13 // y zp[2]:8 20002.0 +unsigned int bitmap_line::y#15 // y zp[2]:8 4300.571428571429 +unsigned int bitmap_line::y#2 // y zp[2]:8 10001.0 +unsigned int bitmap_line::y#4 // y zp[2]:8 5025.75 +unsigned int bitmap_line::y#7 // y zp[2]:8 10001.0 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 // y1 zp[2]:8 17.291666666666664 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 // y2 zp[2]:18 319.1875 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:27 200002.0 +char bitmap_plot::$2 // reg byte x 200002.0 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:25 50000.5 +char *bitmap_plot::plotter#1 // plotter zp[2]:25 150001.5 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // x zp[2]:6 101.0 +unsigned int bitmap_plot::x#1 // x zp[2]:6 10001.0 +unsigned int bitmap_plot::x#2 // x zp[2]:6 101.0 +unsigned int bitmap_plot::x#3 // x zp[2]:6 10001.0 +unsigned int bitmap_plot::x#4 // x zp[2]:6 55051.5 +char bitmap_plot::y +char bitmap_plot::y#0 // reg byte x 202.0 +char bitmap_plot::y#1 // reg byte x 20002.0 +char bitmap_plot::y#2 // reg byte x 202.0 +char bitmap_plot::y#3 // reg byte x 20002.0 +char bitmap_plot::y#4 // reg byte x 220206.0 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void main() -word~ main::$13 zp[2]:6 22.0 -word~ main::$14 zp[2]:16 22.0 -byte main::a -byte main::a#1 a zp[1]:3 11.0 -byte main::a#2 a zp[1]:3 2.4444444444444446 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 3.3000000000000003 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)BITMAP/4&$f -byte* main::toD0181_screen -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:10 2002.0 -byte* memset::dst#2 dst zp[2]:10 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:10 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:8 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:8 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:10 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2002.0 -byte~ sgn_u16::$1 reg byte a 2002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:14 202.0 -word sgn_u16::return#1 return zp[2]:14 202.0 -word sgn_u16::return#4 return zp[2]:14 50.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:25 202.0 -word sgn_u16::w#1 w zp[2]:25 202.0 -word sgn_u16::w#2 w zp[2]:25 1203.0 +unsigned int main::$13 // zp[2]:6 22.0 +unsigned int main::$14 // zp[2]:16 22.0 +char main::a +char main::a#1 // a zp[1]:3 11.0 +char main::a#2 // a zp[1]:3 2.4444444444444446 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 3.3000000000000003 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)BITMAP/4&$f // toD0181_return +char *main::toD0181_screen +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:10 2002.0 +char *memset::dst#2 // dst zp[2]:10 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:10 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:8 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:8 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:10 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2002.0 +char sgn_u16::$1 // reg byte a 2002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#1 // return zp[2]:14 202.0 +unsigned int sgn_u16::return#4 // return zp[2]:14 50.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:25 202.0 +unsigned int sgn_u16::w#1 // w zp[2]:25 202.0 +unsigned int sgn_u16::w#2 // w zp[2]:25 1203.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::a#2 main::a#1 ] diff --git a/src/test/ref/bitmap-plotter.asm b/src/test/ref/bitmap-plotter.asm index 10dc1c577..430181a7e 100644 --- a/src/test/ref/bitmap-plotter.asm +++ b/src/test/ref/bitmap-plotter.asm @@ -186,7 +186,7 @@ plots: { inx jmp __b1 } -// plot(byte zp(2) x, byte zp(3) y) +// void plot(__zp(2) char x, __zp(3) char y) plot: { .label x = 2 .label y = 3 diff --git a/src/test/ref/bitmap-plotter.cfg b/src/test/ref/bitmap-plotter.cfg index e844f6908..5f5c4d799 100644 --- a/src/test/ref/bitmap-plotter.cfg +++ b/src/test/ref/bitmap-plotter.cfg @@ -4,19 +4,19 @@ main: scope:[main] from [0] *BG_COLOR = 0 [1] *FGCOL = 0 [2] *D011 = BMM|DEN|RSEL|3 - [3] *D018 = (byte)(word)SCREEN/$40|(word)BITMAP/$400 - [4] call init_screen + [3] *D018 = (char)(unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 + [4] call init_screen to:main::@3 main::@3: scope:[main] from main [5] phi() - [6] call init_plot_tables + [6] call init_plot_tables to:main::@1 main::@1: scope:[main] from main::@1 main::@3 main::@4 [7] if(*RASTER!=$ff) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [8] *BG_COLOR = ++ *BG_COLOR - [9] call plots + [9] call plots to:main::@4 main::@4: scope:[main] from main::@2 [10] *BG_COLOR = -- *BG_COLOR @@ -69,7 +69,7 @@ init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_p [32] if(init_plot_tables::x#1!=0) goto init_plot_tables::@1 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_plot_tables::@4 - [33] init_plot_tables::yoffs#2 = phi( init_plot_tables::@2/(byte*) 0, init_plot_tables::@4/init_plot_tables::yoffs#4 ) + [33] init_plot_tables::yoffs#2 = phi( init_plot_tables::@2/(char *) 0, init_plot_tables::@4/init_plot_tables::yoffs#4 ) [33] init_plot_tables::y#2 = phi( init_plot_tables::@2/0, init_plot_tables::@4/init_plot_tables::y#1 ) [34] init_plot_tables::$9 = init_plot_tables::y#2 & 7 [35] init_plot_tables::$6 = byte0 init_plot_tables::yoffs#2 @@ -80,7 +80,7 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_p [40] if(init_plot_tables::$9!=7) goto init_plot_tables::@4 to:init_plot_tables::@5 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@3 - [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 + [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (unsigned int)$28*8 to:init_plot_tables::@4 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@5 [42] init_plot_tables::yoffs#4 = phi( init_plot_tables::@3/init_plot_tables::yoffs#2, init_plot_tables::@5/init_plot_tables::yoffs#1 ) @@ -105,16 +105,16 @@ plots::@return: scope:[plots] from plots::@1 plots::@2: scope:[plots] from plots::@1 [50] plot::x#0 = plots_x[plots::i#2] [51] plot::y#0 = plots_y[plots::i#2] - [52] call plot + [52] call plot to:plots::@3 plots::@3: scope:[plots] from plots::@2 [53] plots::i#1 = ++ plots::i#2 to:plots::@1 -void plot(byte plot::x , byte plot::y) +void plot(char x , char y) plot: scope:[plot] from plots::@2 [54] plot::$6 = plot_xhi[plot::x#0] - [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 + [55] plot::plotter_x#1 = (char *) 0 byte1= plot::$6 [56] plot::$7 = plot_xlo[plot::x#0] [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 [58] plot::$8 = plot_yhi[plot::y#0] diff --git a/src/test/ref/bitmap-plotter.log b/src/test/ref/bitmap-plotter.log index 60381d144..790c9d267 100644 --- a/src/test/ref/bitmap-plotter.log +++ b/src/test/ref/bitmap-plotter.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement plot::$4 CONTROL FLOW GRAPH SSA @@ -11,14 +11,14 @@ main: scope:[main] from __start::@1 main::$1 = main::$0 | RSEL main::$2 = main::$1 | 3 *D011 = main::$2 - main::$11 = (word)SCREEN + main::$11 = (unsigned int)SCREEN main::$3 = main::$11 / $40 - main::$4 = main::$3 | (word)BITMAP/$400 - *D018 = (byte)main::$4 - call init_screen + main::$4 = main::$3 | (unsigned int)BITMAP/$400 + *D018 = (char)main::$4 + call init_screen to:main::@3 main::@3: scope:[main] from main - call init_plot_tables + call init_plot_tables to:main::@4 main::@4: scope:[main] from main::@3 to:main::@1 @@ -28,7 +28,7 @@ main::@1: scope:[main] from main::@1 main::@4 main::@5 to:main::@2 main::@2: scope:[main] from main::@1 *BG_COLOR = ++ *BG_COLOR - call plots + call plots to:main::@5 main::@5: scope:[main] from main::@2 *BG_COLOR = -- *BG_COLOR @@ -51,7 +51,7 @@ plots::@2: scope:[plots] from plots::@1 plots::i#3 = phi( plots::@1/plots::i#2 ) plot::x#0 = plots_x[plots::i#3] plot::y#0 = plots_y[plots::i#3] - call plot + call plot to:plots::@3 plots::@3: scope:[plots] from plots::@2 plots::i#4 = phi( plots::@2/plots::i#3 ) @@ -61,11 +61,11 @@ plots::@return: scope:[plots] from plots::@1 return to:@return -void plot(byte plot::x , byte plot::y) +void plot(char x , char y) plot: scope:[plot] from plots::@2 plot::y#1 = phi( plots::@2/plot::y#0 ) plot::x#1 = phi( plots::@2/plot::x#0 ) - plot::plotter_x#0 = (byte*)0 + plot::plotter_x#0 = (char *)0 plot::plotter_y#0 = 0 plot::$6 = plot_xhi[plot::x#1] plot::plotter_x#1 = plot::plotter_x#0 byte1= plot::$6 @@ -113,7 +113,7 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::bits#2 = $80 to:init_plot_tables::@2 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@2 - init_plot_tables::yoffs#0 = (byte*)0 + init_plot_tables::yoffs#0 = (char *)0 init_plot_tables::y#0 = 0 to:init_plot_tables::@5 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 @@ -185,7 +185,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -194,116 +194,116 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BG_COLOR = (byte*)$d020 -constant byte* const BITMAP = (byte*)$2000 -constant byte BMM = $20 -constant byte* D011 = (byte*)$d011 -constant byte* D018 = (byte*)$d018 -constant byte DEN = $10 -constant byte* FGCOL = (byte*)$d021 -constant byte* RASTER = (byte*)$d012 -constant byte RSEL = 8 -constant byte* SCREEN = (byte*)$400 +__constant char *BG_COLOR = (char *)$d020 +__constant char * const BITMAP = (char *)$2000 +__constant char BMM = $20 +__constant char *D011 = (char *)$d011 +__constant char *D018 = (char *)$d018 +__constant char DEN = $10 +__constant char *FGCOL = (char *)$d021 +__constant char *RASTER = (char *)$d012 +__constant char RSEL = 8 +__constant char *SCREEN = (char *)$400 void __start() void init_plot_tables() -number~ init_plot_tables::$0 -number~ init_plot_tables::$1 -bool~ init_plot_tables::$10 -bool~ init_plot_tables::$11 -byte*~ init_plot_tables::$12 -bool~ init_plot_tables::$13 -bool~ init_plot_tables::$2 -bool~ init_plot_tables::$3 -bool~ init_plot_tables::$4 -number~ init_plot_tables::$5 -byte~ init_plot_tables::$6 -number~ init_plot_tables::$7 -byte~ init_plot_tables::$8 -number~ init_plot_tables::$9 -byte init_plot_tables::bits -byte init_plot_tables::bits#0 -byte init_plot_tables::bits#1 -byte init_plot_tables::bits#2 -byte init_plot_tables::bits#3 -byte init_plot_tables::bits#4 -byte init_plot_tables::x -byte init_plot_tables::x#0 -byte init_plot_tables::x#1 -byte init_plot_tables::x#2 -byte init_plot_tables::x#3 -byte init_plot_tables::x#4 -byte init_plot_tables::y -byte init_plot_tables::y#0 -byte init_plot_tables::y#1 -byte init_plot_tables::y#2 -byte init_plot_tables::y#3 -byte init_plot_tables::y#4 -byte* init_plot_tables::yoffs -byte* init_plot_tables::yoffs#0 -byte* init_plot_tables::yoffs#1 -byte* init_plot_tables::yoffs#2 -byte* init_plot_tables::yoffs#3 -byte* init_plot_tables::yoffs#4 +number init_plot_tables::$0 +number init_plot_tables::$1 +bool init_plot_tables::$10 +bool init_plot_tables::$11 +char *init_plot_tables::$12 +bool init_plot_tables::$13 +bool init_plot_tables::$2 +bool init_plot_tables::$3 +bool init_plot_tables::$4 +number init_plot_tables::$5 +char init_plot_tables::$6 +number init_plot_tables::$7 +char init_plot_tables::$8 +number init_plot_tables::$9 +char init_plot_tables::bits +char init_plot_tables::bits#0 +char init_plot_tables::bits#1 +char init_plot_tables::bits#2 +char init_plot_tables::bits#3 +char init_plot_tables::bits#4 +char init_plot_tables::x +char init_plot_tables::x#0 +char init_plot_tables::x#1 +char init_plot_tables::x#2 +char init_plot_tables::x#3 +char init_plot_tables::x#4 +char init_plot_tables::y +char init_plot_tables::y#0 +char init_plot_tables::y#1 +char init_plot_tables::y#2 +char init_plot_tables::y#3 +char init_plot_tables::y#4 +char *init_plot_tables::yoffs +char *init_plot_tables::yoffs#0 +char *init_plot_tables::yoffs#1 +char *init_plot_tables::yoffs#2 +char *init_plot_tables::yoffs#3 +char *init_plot_tables::yoffs#4 void init_screen() -bool~ init_screen::$0 -byte*~ init_screen::$1 -bool~ init_screen::$2 -byte* init_screen::b -byte* init_screen::b#0 -byte* init_screen::b#1 -byte* init_screen::b#2 -byte* init_screen::b#3 -byte* init_screen::c -byte* init_screen::c#0 -byte* init_screen::c#1 -byte* init_screen::c#2 -byte* init_screen::c#3 +bool init_screen::$0 +char *init_screen::$1 +bool init_screen::$2 +char *init_screen::b +char *init_screen::b#0 +char *init_screen::b#1 +char *init_screen::b#2 +char *init_screen::b#3 +char *init_screen::c +char *init_screen::c#0 +char *init_screen::c#1 +char *init_screen::c#2 +char *init_screen::c#3 void main() -byte~ main::$0 -byte~ main::$1 -word~ main::$11 -number~ main::$2 -number~ main::$3 -number~ main::$4 -bool~ main::$7 -void plot(byte plot::x , byte plot::y) -byte~ plot::$5 -byte~ plot::$6 -byte~ plot::$7 -byte~ plot::$8 -byte~ plot::$9 -byte* plot::plotter -byte* plot::plotter#0 -byte* plot::plotter_x -byte* plot::plotter_x#0 -byte* plot::plotter_x#1 -byte* plot::plotter_x#2 -word plot::plotter_y -word plot::plotter_y#0 -word plot::plotter_y#1 -word plot::plotter_y#2 -byte plot::x -byte plot::x#0 -byte plot::x#1 -byte plot::y -byte plot::y#0 -byte plot::y#1 -constant const byte* plot_bit[$100] = { fill( $100, 0) } -constant const byte* plot_xhi[$100] = { fill( $100, 0) } -constant const byte* plot_xlo[$100] = { fill( $100, 0) } -constant const byte* plot_yhi[$100] = { fill( $100, 0) } -constant const byte* plot_ylo[$100] = { fill( $100, 0) } +char main::$0 +char main::$1 +unsigned int main::$11 +number main::$2 +number main::$3 +number main::$4 +bool main::$7 +void plot(char x , char y) +char plot::$5 +char plot::$6 +char plot::$7 +char plot::$8 +char plot::$9 +char *plot::plotter +char *plot::plotter#0 +char *plot::plotter_x +char *plot::plotter_x#0 +char *plot::plotter_x#1 +char *plot::plotter_x#2 +unsigned int plot::plotter_y +unsigned int plot::plotter_y#0 +unsigned int plot::plotter_y#1 +unsigned int plot::plotter_y#2 +char plot::x +char plot::x#0 +char plot::x#1 +char plot::y +char plot::y#0 +char plot::y#1 +__constant const char plot_bit[$100] = { fill( $100, 0) } +__constant const char plot_xhi[$100] = { fill( $100, 0) } +__constant const char plot_xlo[$100] = { fill( $100, 0) } +__constant const char plot_yhi[$100] = { fill( $100, 0) } +__constant const char plot_ylo[$100] = { fill( $100, 0) } void plots() -bool~ plots::$0 -byte plots::i -byte plots::i#0 -byte plots::i#1 -byte plots::i#2 -byte plots::i#3 -byte plots::i#4 -constant byte plots_cnt = 8 -constant byte* plots_x[] = { $3c, $50, $6e, $50, $3c, $28, $a, $28 } -constant byte* plots_y[] = { $a, $28, $3c, $50, $6e, $50, $3c, $28 } +bool plots::$0 +char plots::i +char plots::i#0 +char plots::i#1 +char plots::i#2 +char plots::i#3 +char plots::i#4 +__constant char plots_cnt = 8 +__constant char plots_x[] = { $3c, $50, $6e, $50, $3c, $28, $a, $28 } +__constant char plots_y[] = { $a, $28, $3c, $50, $6e, $50, $3c, $28 } Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Adding number conversion cast (unumber) 0 in *FGCOL = 0 @@ -311,9 +311,9 @@ Adding number conversion cast (unumber) 3 in main::$2 = main::$1 | 3 Adding number conversion cast (unumber) main::$2 in main::$2 = main::$1 | (unumber)3 Adding number conversion cast (unumber) $40 in main::$3 = main::$11 / $40 Adding number conversion cast (unumber) main::$3 in main::$3 = main::$11 / (unumber)$40 -Adding number conversion cast (unumber) (word)BITMAP/$400 in main::$4 = main::$3 | (word)BITMAP/$400 -Adding number conversion cast (unumber) main::$4 in main::$4 = main::$3 | (unumber)(word)BITMAP/$400 -Adding number conversion cast (unumber) $400 in main::$4 = main::$3 | (unumber)(word)BITMAP/$400 +Adding number conversion cast (unumber) (unsigned int)BITMAP/$400 in main::$4 = main::$3 | (unsigned int)BITMAP/$400 +Adding number conversion cast (unumber) main::$4 in main::$4 = main::$3 | (unumber)(unsigned int)BITMAP/$400 +Adding number conversion cast (unumber) $400 in main::$4 = main::$3 | (unumber)(unsigned int)BITMAP/$400 Adding number conversion cast (unumber) $ff in main::$7 = *RASTER != $ff Adding number conversion cast (unumber) $f8 in init_plot_tables::$0 = init_plot_tables::x#2 & $f8 Adding number conversion cast (unumber) init_plot_tables::$0 in init_plot_tables::$0 = init_plot_tables::x#2 & (unumber)$f8 @@ -339,26 +339,26 @@ Inlining cast init_plot_tables::bits#2 = (unumber)$80 Inlining cast *init_screen::b#3 = (unumber)0 Inlining cast *init_screen::c#3 = (unumber)$14 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 3 Simplifying constant integer cast $40 -Simplifying constant integer cast (word)BITMAP/(unumber)$400 +Simplifying constant integer cast (unsigned int)BITMAP/(unumber)$400 Simplifying constant integer cast $400 Simplifying constant integer cast $ff -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 0 Simplifying constant integer cast $f8 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast $80 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 0 Simplifying constant integer cast 7 Simplifying constant integer cast 7 Simplifying constant integer cast 7 @@ -367,32 +367,32 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $400 Simplifying constant integer cast $14 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $f8 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (word) $2000 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $14 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $f8 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (unsigned int) $2000 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $14 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = main::$1 | 3 -Inferred type updated to word in main::$3 = main::$11 / $40 -Inferred type updated to word in main::$4 = main::$3 | (word)BITMAP/$400 -Inferred type updated to byte in init_plot_tables::$0 = init_plot_tables::x#2 & $f8 -Inferred type updated to byte in init_plot_tables::$1 = init_plot_tables::bits#3 / 2 -Inferred type updated to byte in init_plot_tables::$5 = init_plot_tables::y#2 & 7 -Inferred type updated to byte in init_plot_tables::$7 = init_plot_tables::$5 | init_plot_tables::$6 -Inferred type updated to byte in init_plot_tables::$9 = init_plot_tables::y#2 & 7 +Inferred type updated to char in main::$2 = main::$1 | 3 +Inferred type updated to unsigned int in main::$3 = main::$11 / $40 +Inferred type updated to unsigned int in main::$4 = main::$3 | (unsigned int)BITMAP/$400 +Inferred type updated to char in init_plot_tables::$0 = init_plot_tables::x#2 & $f8 +Inferred type updated to char in init_plot_tables::$1 = init_plot_tables::bits#3 / 2 +Inferred type updated to char in init_plot_tables::$5 = init_plot_tables::y#2 & 7 +Inferred type updated to char in init_plot_tables::$7 = init_plot_tables::$5 | init_plot_tables::$6 +Inferred type updated to char in init_plot_tables::$9 = init_plot_tables::y#2 & 7 Inversing boolean not [55] init_plot_tables::$3 = init_plot_tables::bits#1 != 0 from [54] init_plot_tables::$2 = init_plot_tables::bits#1 == 0 Inversing boolean not [74] init_plot_tables::$11 = init_plot_tables::$9 != 7 from [73] init_plot_tables::$10 = init_plot_tables::$9 == 7 Successful SSA optimization Pass2UnaryNotSimplification @@ -423,18 +423,18 @@ Simple Condition init_screen::$0 [79] if(init_screen::b#2!=BITMAP+$2000) goto in Simple Condition init_screen::$2 [86] if(init_screen::c#2!=init_screen::$1) goto init_screen::@5 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [2] main::$0 = BMM | DEN -Constant right-side identified [6] main::$11 = (word)SCREEN +Constant right-side identified [6] main::$11 = (unsigned int)SCREEN Constant right-side identified [84] init_screen::$1 = SCREEN + $400 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$0 = BMM|DEN -Constant main::$11 = (word)SCREEN +Constant main::$11 = (unsigned int)SCREEN Constant plots::i#0 = 0 -Constant plot::plotter_x#0 = (byte*) 0 +Constant plot::plotter_x#0 = (char *) 0 Constant plot::plotter_y#0 = 0 Constant init_plot_tables::bits#0 = $80 Constant init_plot_tables::x#0 = 0 Constant init_plot_tables::bits#2 = $80 -Constant init_plot_tables::yoffs#0 = (byte*) 0 +Constant init_plot_tables::yoffs#0 = (char *) 0 Constant init_plot_tables::y#0 = 0 Constant init_screen::b#0 = BITMAP Constant init_screen::c#0 = SCREEN @@ -461,8 +461,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias init_plot_tables::$9 = init_plot_tables::$5 Successful SSA optimization Pass2AliasElimination @@ -473,12 +473,12 @@ Constant main::$1 = main::$0|RSEL Constant main::$3 = main::$11/$40 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [2] main::$2 = main::$1 | 3 -Constant right-side identified [4] main::$4 = main::$3 | (word)BITMAP/$400 +Constant right-side identified [4] main::$4 = main::$3 | (unsigned int)BITMAP/$400 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$2 = main::$1|3 -Constant main::$4 = main::$3|(word)BITMAP/$400 +Constant main::$4 = main::$3|(unsigned int)BITMAP/$400 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte)main::$4 in [5] *D018 = (byte)main::$4 +Constant value identified (char)main::$4 in [5] *D018 = (char)main::$4 Successful SSA optimization Pass2ConstantValues Rewriting division to use shift [34] init_plot_tables::bits#1 = init_plot_tables::bits#3 / 2 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -496,32 +496,32 @@ Constant inlined plots::i#0 = 0 Constant inlined init_plot_tables::bits#2 = $80 Constant inlined init_plot_tables::bits#0 = $80 Constant inlined plot::plotter_y#0 = 0 -Constant inlined main::$11 = (word)SCREEN -Constant inlined plot::plotter_x#0 = (byte*) 0 +Constant inlined main::$11 = (unsigned int)SCREEN +Constant inlined plot::plotter_x#0 = (char *) 0 Constant inlined init_screen::$1 = SCREEN+$400 Constant inlined main::$1 = BMM|DEN|RSEL Constant inlined main::$2 = BMM|DEN|RSEL|3 Constant inlined main::$0 = BMM|DEN Constant inlined init_plot_tables::y#0 = 0 -Constant inlined init_plot_tables::yoffs#0 = (byte*) 0 -Constant inlined main::$3 = (word)SCREEN/$40 -Constant inlined main::$4 = (word)SCREEN/$40|(word)BITMAP/$400 +Constant inlined init_plot_tables::yoffs#0 = (char *) 0 +Constant inlined main::$3 = (unsigned int)SCREEN/$40 +Constant inlined main::$4 = (unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 Constant inlined init_plot_tables::x#0 = 0 Constant inlined init_screen::c#0 = SCREEN Constant inlined init_screen::b#0 = BITMAP Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting init_plot_tables::@8(between init_plot_tables::@2 and init_plot_tables::@1) Added new block during phi lifting init_plot_tables::@9(between init_plot_tables::@1 and init_plot_tables::@2) @@ -578,19 +578,19 @@ main: scope:[main] from [0] *BG_COLOR = 0 [1] *FGCOL = 0 [2] *D011 = BMM|DEN|RSEL|3 - [3] *D018 = (byte)(word)SCREEN/$40|(word)BITMAP/$400 - [4] call init_screen + [3] *D018 = (char)(unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 + [4] call init_screen to:main::@3 main::@3: scope:[main] from main [5] phi() - [6] call init_plot_tables + [6] call init_plot_tables to:main::@1 main::@1: scope:[main] from main::@1 main::@3 main::@4 [7] if(*RASTER!=$ff) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [8] *BG_COLOR = ++ *BG_COLOR - [9] call plots + [9] call plots to:main::@4 main::@4: scope:[main] from main::@2 [10] *BG_COLOR = -- *BG_COLOR @@ -643,7 +643,7 @@ init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_p [32] if(init_plot_tables::x#1!=0) goto init_plot_tables::@1 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_plot_tables::@4 - [33] init_plot_tables::yoffs#2 = phi( init_plot_tables::@2/(byte*) 0, init_plot_tables::@4/init_plot_tables::yoffs#4 ) + [33] init_plot_tables::yoffs#2 = phi( init_plot_tables::@2/(char *) 0, init_plot_tables::@4/init_plot_tables::yoffs#4 ) [33] init_plot_tables::y#2 = phi( init_plot_tables::@2/0, init_plot_tables::@4/init_plot_tables::y#1 ) [34] init_plot_tables::$9 = init_plot_tables::y#2 & 7 [35] init_plot_tables::$6 = byte0 init_plot_tables::yoffs#2 @@ -654,7 +654,7 @@ init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_p [40] if(init_plot_tables::$9!=7) goto init_plot_tables::@4 to:init_plot_tables::@5 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@3 - [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 + [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (unsigned int)$28*8 to:init_plot_tables::@4 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@5 [42] init_plot_tables::yoffs#4 = phi( init_plot_tables::@3/init_plot_tables::yoffs#2, init_plot_tables::@5/init_plot_tables::yoffs#1 ) @@ -679,16 +679,16 @@ plots::@return: scope:[plots] from plots::@1 plots::@2: scope:[plots] from plots::@1 [50] plot::x#0 = plots_x[plots::i#2] [51] plot::y#0 = plots_y[plots::i#2] - [52] call plot + [52] call plot to:plots::@3 plots::@3: scope:[plots] from plots::@2 [53] plots::i#1 = ++ plots::i#2 to:plots::@1 -void plot(byte plot::x , byte plot::y) +void plot(char x , char y) plot: scope:[plot] from plots::@2 [54] plot::$6 = plot_xhi[plot::x#0] - [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 + [55] plot::plotter_x#1 = (char *) 0 byte1= plot::$6 [56] plot::$7 = plot_xlo[plot::x#0] [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 [58] plot::$8 = plot_yhi[plot::y#0] @@ -706,55 +706,55 @@ plot::@return: scope:[plot] from plot VARIABLE REGISTER WEIGHTS void init_plot_tables() -byte~ init_plot_tables::$0 202.0 -byte~ init_plot_tables::$6 202.0 -byte~ init_plot_tables::$7 202.0 -byte~ init_plot_tables::$8 202.0 -byte~ init_plot_tables::$9 50.5 -byte init_plot_tables::bits -byte init_plot_tables::bits#1 101.0 -byte init_plot_tables::bits#3 60.599999999999994 -byte init_plot_tables::bits#4 67.33333333333333 -byte init_plot_tables::x -byte init_plot_tables::x#1 151.5 -byte init_plot_tables::x#2 67.33333333333333 -byte init_plot_tables::y -byte init_plot_tables::y#1 151.5 -byte init_plot_tables::y#2 50.5 -byte* init_plot_tables::yoffs -byte* init_plot_tables::yoffs#1 202.0 -byte* init_plot_tables::yoffs#2 63.125 -byte* init_plot_tables::yoffs#4 101.0 +char init_plot_tables::$0 // 202.0 +char init_plot_tables::$6 // 202.0 +char init_plot_tables::$7 // 202.0 +char init_plot_tables::$8 // 202.0 +char init_plot_tables::$9 // 50.5 +char init_plot_tables::bits +char init_plot_tables::bits#1 // 101.0 +char init_plot_tables::bits#3 // 60.599999999999994 +char init_plot_tables::bits#4 // 67.33333333333333 +char init_plot_tables::x +char init_plot_tables::x#1 // 151.5 +char init_plot_tables::x#2 // 67.33333333333333 +char init_plot_tables::y +char init_plot_tables::y#1 // 151.5 +char init_plot_tables::y#2 // 50.5 +char *init_plot_tables::yoffs +char *init_plot_tables::yoffs#1 // 202.0 +char *init_plot_tables::yoffs#2 // 63.125 +char *init_plot_tables::yoffs#4 // 101.0 void init_screen() -byte* init_screen::b -byte* init_screen::b#1 202.0 -byte* init_screen::b#2 134.66666666666666 -byte* init_screen::c -byte* init_screen::c#1 202.0 -byte* init_screen::c#2 134.66666666666666 +char *init_screen::b +char *init_screen::b#1 // 202.0 +char *init_screen::b#2 // 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // 202.0 +char *init_screen::c#2 // 134.66666666666666 void main() -void plot(byte plot::x , byte plot::y) -byte~ plot::$5 200002.0 -byte~ plot::$6 200002.0 -byte~ plot::$7 200002.0 -byte~ plot::$8 200002.0 -byte~ plot::$9 200002.0 -byte* plot::plotter -byte* plot::plotter#0 150001.5 -byte* plot::plotter_x -byte* plot::plotter_x#1 100001.0 -byte* plot::plotter_x#2 40000.4 -word plot::plotter_y -word plot::plotter_y#1 100001.0 -word plot::plotter_y#2 200002.0 -byte plot::x -byte plot::x#0 28182.181818181816 -byte plot::y -byte plot::y#0 30000.428571428572 +void plot(char x , char y) +char plot::$5 // 200002.0 +char plot::$6 // 200002.0 +char plot::$7 // 200002.0 +char plot::$8 // 200002.0 +char plot::$9 // 200002.0 +char *plot::plotter +char *plot::plotter#0 // 150001.5 +char *plot::plotter_x +char *plot::plotter_x#1 // 100001.0 +char *plot::plotter_x#2 // 40000.4 +unsigned int plot::plotter_y +unsigned int plot::plotter_y#1 // 100001.0 +unsigned int plot::plotter_y#2 // 200002.0 +char plot::x +char plot::x#0 // 28182.181818181816 +char plot::y +char plot::y#0 // 30000.428571428572 void plots() -byte plots::i -byte plots::i#1 20002.0 -byte plots::i#2 10001.0 +char plots::i +char plots::i#1 // 20002.0 +char plots::i#2 // 10001.0 Initial phi equivalence classes [ init_screen::b#2 init_screen::b#1 ] @@ -835,7 +835,7 @@ Equivalence Class zp[1]:14 [ init_plot_tables::$6 ] has ALU potential. Statement [0] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *FGCOL = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = BMM|DEN|RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *D018 = (byte)(word)SCREEN/$40|(word)BITMAP/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *D018 = (char)(unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] if(*RASTER!=$ff) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] if(init_screen::b#2!=BITMAP+$2000) goto init_screen::@2 [ init_screen::b#2 ] ( init_screen:4 [ init_screen::b#2 ] { } ) always clobbers reg byte a Statement [15] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@4 [ init_screen::c#2 ] ( init_screen:4 [ init_screen::c#2 ] { } ) always clobbers reg byte a @@ -845,9 +845,9 @@ Statement [25] plot_xhi[init_plot_tables::x#2] = byte1 BITMAP [ init_plot_tables Removing always clobbered register reg byte a as potential for zp[1]:6 [ init_plot_tables::x#2 init_plot_tables::x#1 ] Removing always clobbered register reg byte a as potential for zp[1]:7 [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] Statement [26] plot_bit[init_plot_tables::x#2] = init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( init_plot_tables:6 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] { } ) always clobbers reg byte a -Statement [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] { } ) always clobbers reg byte a +Statement [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (unsigned int)$28*8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ init_plot_tables::y#2 init_plot_tables::y#1 ] -Statement [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] { } ) always clobbers reg byte a +Statement [55] plot::plotter_x#1 = (char *) 0 byte1= plot::$6 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ plots::i#2 plots::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:17 [ plot::x#0 ] Removing always clobbered register reg byte a as potential for zp[1]:18 [ plot::y#0 ] @@ -860,7 +860,7 @@ Statement [64] *plot::plotter#0 = plot::$5 [ ] ( plots:9::plot:52 [ plots::i#2 ] Statement [0] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *FGCOL = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = BMM|DEN|RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *D018 = (byte)(word)SCREEN/$40|(word)BITMAP/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *D018 = (char)(unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] if(*RASTER!=$ff) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] if(init_screen::b#2!=BITMAP+$2000) goto init_screen::@2 [ init_screen::b#2 ] ( init_screen:4 [ init_screen::b#2 ] { } ) always clobbers reg byte a Statement [15] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@4 [ init_screen::c#2 ] ( init_screen:4 [ init_screen::c#2 ] { } ) always clobbers reg byte a @@ -870,8 +870,8 @@ Statement [23] init_plot_tables::$0 = init_plot_tables::x#2 & $f8 [ init_plot_ta Statement [25] plot_xhi[init_plot_tables::x#2] = byte1 BITMAP [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( init_plot_tables:6 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] { } ) always clobbers reg byte a Statement [26] plot_bit[init_plot_tables::x#2] = init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( init_plot_tables:6 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] { } ) always clobbers reg byte a Statement [34] init_plot_tables::$9 = init_plot_tables::y#2 & 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] { } ) always clobbers reg byte a -Statement [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] { } ) always clobbers reg byte a -Statement [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] { } ) always clobbers reg byte a +Statement [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (unsigned int)$28*8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] { } ) always clobbers reg byte a +Statement [55] plot::plotter_x#1 = (char *) 0 byte1= plot::$6 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] { } ) always clobbers reg byte a Statement [57] plot::plotter_x#2 = plot::plotter_x#1 byte0= plot::$7 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] { } ) always clobbers reg byte a Statement [61] plot::plotter_y#2 = plot::plotter_y#1 byte0= plot::$9 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] { } ) always clobbers reg byte a Statement [62] plot::plotter#0 = plot::plotter_x#2 + plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( plots:9::plot:52 [ plots::i#2 plot::x#0 plot::plotter#0 ] { } ) always clobbers reg byte a @@ -979,10 +979,10 @@ main: { // [2] *D011 = BMM|DEN|RSEL|3 -- _deref_pbuc1=vbuc2 lda #BMM|DEN|RSEL|3 sta D011 - // [3] *D018 = (byte)(word)SCREEN/$40|(word)BITMAP/$400 -- _deref_pbuc1=vbuc2 + // [3] *D018 = (char)(unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|BITMAP/$400 sta D018 - // [4] call init_screen + // [4] call init_screen // [11] phi from main to init_screen [phi:main->init_screen] init_screen_from_main: jsr init_screen @@ -991,7 +991,7 @@ main: { jmp __b3 // main::@3 __b3: - // [6] call init_plot_tables + // [6] call init_plot_tables // [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables] init_plot_tables_from___b3: jsr init_plot_tables @@ -1007,7 +1007,7 @@ main: { __b2: // [8] *BG_COLOR = ++ *BG_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BG_COLOR - // [9] call plots + // [9] call plots // [46] phi from main::@2 to plots [phi:main::@2->plots] plots_from___b2: jsr plots @@ -1151,7 +1151,7 @@ init_plot_tables: { bne __b1_from___b2 // [33] phi from init_plot_tables::@2 to init_plot_tables::@3 [phi:init_plot_tables::@2->init_plot_tables::@3] __b3_from___b2: - // [33] phi init_plot_tables::yoffs#2 = (byte*) 0 [phi:init_plot_tables::@2->init_plot_tables::@3#0] -- pbuz1=pbuc1 + // [33] phi init_plot_tables::yoffs#2 = (char *) 0 [phi:init_plot_tables::@2->init_plot_tables::@3#0] -- pbuz1=pbuc1 lda #<0 sta.z yoffs lda #>0 @@ -1186,7 +1186,7 @@ init_plot_tables: { jmp __b5 // init_plot_tables::@5 __b5: - // [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -1237,7 +1237,7 @@ plots: { // [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx lda plots_y,x sta.z plot.y - // [52] call plot + // [52] call plot jsr plot jmp __b3 // plots::@3 @@ -1250,7 +1250,7 @@ plots: { jmp __b1 } // plot -// plot(byte zp(2) x, byte zp(3) y) +// void plot(__zp(2) char x, __zp(3) char y) plot: { .label x = 2 .label y = 3 @@ -1260,7 +1260,7 @@ plot: { // [54] plot::$6 = plot_xhi[plot::x#0] -- vbuaa=pbuc1_derefidx_vbuz1 ldy.z x lda plot_xhi,y - // [55] plot::plotter_x#1 = (byte*) 0 byte1= plot::$6 -- pbuz1=pbuc1_setbyte1_vbuaa + // [55] plot::plotter_x#1 = (char *) 0 byte1= plot::$6 -- pbuz1=pbuc1_setbyte1_vbuaa sta.z plotter_x+1 lda #<0 sta.z plotter_x @@ -1381,74 +1381,74 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* BG_COLOR = (byte*) 53280 -constant byte* const BITMAP = (byte*) 8192 -constant byte BMM = $20 -constant byte* D011 = (byte*) 53265 -constant byte* D018 = (byte*) 53272 -constant byte DEN = $10 -constant byte* FGCOL = (byte*) 53281 -constant byte* RASTER = (byte*) 53266 -constant byte RSEL = 8 -constant byte* SCREEN = (byte*) 1024 +__constant char *BG_COLOR = (char *) 53280 +__constant char * const BITMAP = (char *) 8192 +__constant char BMM = $20 +__constant char *D011 = (char *) 53265 +__constant char *D018 = (char *) 53272 +__constant char DEN = $10 +__constant char *FGCOL = (char *) 53281 +__constant char *RASTER = (char *) 53266 +__constant char RSEL = 8 +__constant char *SCREEN = (char *) 1024 void init_plot_tables() -byte~ init_plot_tables::$0 reg byte a 202.0 -byte~ init_plot_tables::$6 reg byte a 202.0 -byte~ init_plot_tables::$7 reg byte a 202.0 -byte~ init_plot_tables::$8 reg byte a 202.0 -byte~ init_plot_tables::$9 zp[1]:2 50.5 -byte init_plot_tables::bits -byte init_plot_tables::bits#1 reg byte y 101.0 -byte init_plot_tables::bits#3 reg byte y 60.599999999999994 -byte init_plot_tables::bits#4 reg byte y 67.33333333333333 -byte init_plot_tables::x -byte init_plot_tables::x#1 reg byte x 151.5 -byte init_plot_tables::x#2 reg byte x 67.33333333333333 -byte init_plot_tables::y -byte init_plot_tables::y#1 reg byte x 151.5 -byte init_plot_tables::y#2 reg byte x 50.5 -byte* init_plot_tables::yoffs -byte* init_plot_tables::yoffs#1 yoffs zp[2]:6 202.0 -byte* init_plot_tables::yoffs#2 yoffs zp[2]:6 63.125 -byte* init_plot_tables::yoffs#4 yoffs zp[2]:6 101.0 +char init_plot_tables::$0 // reg byte a 202.0 +char init_plot_tables::$6 // reg byte a 202.0 +char init_plot_tables::$7 // reg byte a 202.0 +char init_plot_tables::$8 // reg byte a 202.0 +char init_plot_tables::$9 // zp[1]:2 50.5 +char init_plot_tables::bits +char init_plot_tables::bits#1 // reg byte y 101.0 +char init_plot_tables::bits#3 // reg byte y 60.599999999999994 +char init_plot_tables::bits#4 // reg byte y 67.33333333333333 +char init_plot_tables::x +char init_plot_tables::x#1 // reg byte x 151.5 +char init_plot_tables::x#2 // reg byte x 67.33333333333333 +char init_plot_tables::y +char init_plot_tables::y#1 // reg byte x 151.5 +char init_plot_tables::y#2 // reg byte x 50.5 +char *init_plot_tables::yoffs +char *init_plot_tables::yoffs#1 // yoffs zp[2]:6 202.0 +char *init_plot_tables::yoffs#2 // yoffs zp[2]:6 63.125 +char *init_plot_tables::yoffs#4 // yoffs zp[2]:6 101.0 void init_screen() -byte* init_screen::b -byte* init_screen::b#1 b zp[2]:6 202.0 -byte* init_screen::b#2 b zp[2]:6 134.66666666666666 -byte* init_screen::c -byte* init_screen::c#1 c zp[2]:4 202.0 -byte* init_screen::c#2 c zp[2]:4 134.66666666666666 +char *init_screen::b +char *init_screen::b#1 // b zp[2]:6 202.0 +char *init_screen::b#2 // b zp[2]:6 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // c zp[2]:4 202.0 +char *init_screen::c#2 // c zp[2]:4 134.66666666666666 void main() -void plot(byte plot::x , byte plot::y) -byte~ plot::$5 reg byte a 200002.0 -byte~ plot::$6 reg byte a 200002.0 -byte~ plot::$7 reg byte a 200002.0 -byte~ plot::$8 reg byte a 200002.0 -byte~ plot::$9 reg byte a 200002.0 -byte* plot::plotter -byte* plot::plotter#0 plotter zp[2]:4 150001.5 -byte* plot::plotter_x -byte* plot::plotter_x#1 plotter_x zp[2]:4 100001.0 -byte* plot::plotter_x#2 plotter_x zp[2]:4 40000.4 -word plot::plotter_y -word plot::plotter_y#1 plotter_y zp[2]:6 100001.0 -word plot::plotter_y#2 plotter_y zp[2]:6 200002.0 -byte plot::x -byte plot::x#0 x zp[1]:2 28182.181818181816 -byte plot::y -byte plot::y#0 y zp[1]:3 30000.428571428572 -constant const byte* plot_bit[$100] = { fill( $100, 0) } -constant const byte* plot_xhi[$100] = { fill( $100, 0) } -constant const byte* plot_xlo[$100] = { fill( $100, 0) } -constant const byte* plot_yhi[$100] = { fill( $100, 0) } -constant const byte* plot_ylo[$100] = { fill( $100, 0) } +void plot(char x , char y) +char plot::$5 // reg byte a 200002.0 +char plot::$6 // reg byte a 200002.0 +char plot::$7 // reg byte a 200002.0 +char plot::$8 // reg byte a 200002.0 +char plot::$9 // reg byte a 200002.0 +char *plot::plotter +char *plot::plotter#0 // plotter zp[2]:4 150001.5 +char *plot::plotter_x +char *plot::plotter_x#1 // plotter_x zp[2]:4 100001.0 +char *plot::plotter_x#2 // plotter_x zp[2]:4 40000.4 +unsigned int plot::plotter_y +unsigned int plot::plotter_y#1 // plotter_y zp[2]:6 100001.0 +unsigned int plot::plotter_y#2 // plotter_y zp[2]:6 200002.0 +char plot::x +char plot::x#0 // x zp[1]:2 28182.181818181816 +char plot::y +char plot::y#0 // y zp[1]:3 30000.428571428572 +__constant const char plot_bit[$100] = { fill( $100, 0) } +__constant const char plot_xhi[$100] = { fill( $100, 0) } +__constant const char plot_xlo[$100] = { fill( $100, 0) } +__constant const char plot_yhi[$100] = { fill( $100, 0) } +__constant const char plot_ylo[$100] = { fill( $100, 0) } void plots() -byte plots::i -byte plots::i#1 reg byte x 20002.0 -byte plots::i#2 reg byte x 10001.0 -constant byte plots_cnt = 8 -constant byte* plots_x[] = { $3c, $50, $6e, $50, $3c, $28, $a, $28 } -constant byte* plots_y[] = { $a, $28, $3c, $50, $6e, $50, $3c, $28 } +char plots::i +char plots::i#1 // reg byte x 20002.0 +char plots::i#2 // reg byte x 10001.0 +__constant char plots_cnt = 8 +__constant char plots_x[] = { $3c, $50, $6e, $50, $3c, $28, $a, $28 } +__constant char plots_y[] = { $a, $28, $3c, $50, $6e, $50, $3c, $28 } reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] @@ -1509,17 +1509,17 @@ main: { lda #BMM|DEN|RSEL|3 sta D011 // *D018 = (byte)(((word)SCREEN/$40)|((word)BITMAP/$400)) - // [3] *D018 = (byte)(word)SCREEN/$40|(word)BITMAP/$400 -- _deref_pbuc1=vbuc2 + // [3] *D018 = (char)(unsigned int)SCREEN/$40|(unsigned int)BITMAP/$400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|BITMAP/$400 sta D018 // init_screen() - // [4] call init_screen + // [4] call init_screen // [11] phi from main to init_screen [phi:main->init_screen] jsr init_screen // [5] phi from main to main::@3 [phi:main->main::@3] // main::@3 // init_plot_tables() - // [6] call init_plot_tables + // [6] call init_plot_tables // [21] phi from main::@3 to init_plot_tables [phi:main::@3->init_plot_tables] jsr init_plot_tables // main::@1 @@ -1534,7 +1534,7 @@ main: { // [8] *BG_COLOR = ++ *BG_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BG_COLOR // plots() - // [9] call plots + // [9] call plots // [46] phi from main::@2 to plots [phi:main::@2->plots] jsr plots // main::@4 @@ -1670,7 +1670,7 @@ init_plot_tables: { cpx #0 bne __b1 // [33] phi from init_plot_tables::@2 to init_plot_tables::@3 [phi:init_plot_tables::@2->init_plot_tables::@3] - // [33] phi init_plot_tables::yoffs#2 = (byte*) 0 [phi:init_plot_tables::@2->init_plot_tables::@3#0] -- pbuz1=pbuc1 + // [33] phi init_plot_tables::yoffs#2 = (char *) 0 [phi:init_plot_tables::@2->init_plot_tables::@3#0] -- pbuz1=pbuc1 lda #<0 sta.z yoffs sta.z yoffs+1 @@ -1707,7 +1707,7 @@ init_plot_tables: { bne __b4 // init_plot_tables::@5 // yoffs = yoffs + 40*8 - // [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [41] init_plot_tables::yoffs#1 = init_plot_tables::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -1754,7 +1754,7 @@ plots: { // [51] plot::y#0 = plots_y[plots::i#2] -- vbuz1=pbuc1_derefidx_vbuxx lda plots_y,x sta.z plot.y - // [52] call plot + // [52] call plot jsr plot // plots::@3 // for(byte i=0; i= bool_const_vars::a from [9] bool_const_vars::$1 = $15 < bool_const_vars::a Inversing boolean not [28] bool_const_inline::$6 = $15 >= bool_const_inline::a from [27] bool_const_inline::$5 = $15 < bool_const_inline::a @@ -273,15 +273,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call bool_const_if + [1] call bool_const_if to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call bool_const_vars + [3] call bool_const_vars to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call bool_const_inline + [5] call bool_const_inline to:main::@return main::@return: scope:[main] from main::@2 [6] return @@ -367,7 +367,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call bool_const_if + // [1] call bool_const_if // [7] phi from main to bool_const_if [phi:main->bool_const_if] bool_const_if_from_main: jsr bool_const_if @@ -376,7 +376,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call bool_const_vars + // [3] call bool_const_vars // [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars] bool_const_vars_from___b1: jsr bool_const_vars @@ -385,7 +385,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call bool_const_inline + // [5] call bool_const_inline // [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline] bool_const_inline_from___b2: jsr bool_const_inline @@ -471,7 +471,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void bool_const_if() void bool_const_inline() void bool_const_vars() @@ -502,19 +502,19 @@ Score: 60 // main main: { // bool_const_if() - // [1] call bool_const_if + // [1] call bool_const_if // [7] phi from main to bool_const_if [phi:main->bool_const_if] jsr bool_const_if // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // bool_const_vars() - // [3] call bool_const_vars + // [3] call bool_const_vars // [10] phi from main::@1 to bool_const_vars [phi:main::@1->bool_const_vars] jsr bool_const_vars // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // bool_const_inline() - // [5] call bool_const_inline + // [5] call bool_const_inline // [13] phi from main::@2 to bool_const_inline [phi:main::@2->bool_const_inline] jsr bool_const_inline // main::@return diff --git a/src/test/ref/bool-const.sym b/src/test/ref/bool-const.sym index 911b64176..0695ee8c6 100644 --- a/src/test/ref/bool-const.sym +++ b/src/test/ref/bool-const.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void bool_const_if() void bool_const_inline() void bool_const_vars() diff --git a/src/test/ref/bool-function.asm b/src/test/ref/bool-function.asm index 975156b1f..9f69f188e 100644 --- a/src/test/ref/bool-function.asm +++ b/src/test/ref/bool-function.asm @@ -45,7 +45,7 @@ main: { } // Determine whether to set a char to '*. // Returns true if i&8!=0 or b=true -// isSet(byte register(A) i, bool register(Y) b) +// __register(A) bool isSet(__register(A) char i, __register(Y) bool b) isSet: { // i&8 and #8 diff --git a/src/test/ref/bool-function.cfg b/src/test/ref/bool-function.cfg index ef85c0978..1a08d16e5 100644 --- a/src/test/ref/bool-function.cfg +++ b/src/test/ref/bool-function.cfg @@ -8,7 +8,7 @@ main::@1: scope:[main] from main main::@3 [2] main::$0 = main::i#2 & 1 [3] isSet::b#0 = main::$0 == 0 [4] isSet::i#0 = main::i#2 - [5] call isSet + [5] call isSet [6] isSet::return#0 = isSet::return#1 to:main::@5 main::@5: scope:[main] from main::@1 @@ -29,7 +29,7 @@ main::@2: scope:[main] from main::@5 [13] main::screen[main::i#2] = '*' to:main::@3 -bool isSet(byte isSet::i , bool isSet::b) +bool isSet(char i , bool b) isSet: scope:[isSet] from main::@1 [14] isSet::$0 = isSet::i#0 & 8 [15] isSet::$1 = isSet::$0 != 0 diff --git a/src/test/ref/bool-function.log b/src/test/ref/bool-function.log index 67df0f56e..277acaf90 100644 --- a/src/test/ref/bool-function.log +++ b/src/test/ref/bool-function.log @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@3 main::$1 = main::$0 == 0 isSet::i#0 = main::i#2 isSet::b#0 = main::$1 - call isSet + call isSet isSet::return#0 = isSet::return#2 to:main::@5 main::@5: scope:[main] from main::@1 @@ -38,7 +38,7 @@ main::@return: scope:[main] from main::@3 return to:@return -bool isSet(byte isSet::i , bool isSet::b) +bool isSet(char i , bool b) isSet: scope:[isSet] from main::@1 isSet::b#1 = phi( main::@1/isSet::b#0 ) isSet::i#1 = phi( main::@1/isSet::i#0 ) @@ -55,7 +55,7 @@ isSet::@return: scope:[isSet] from isSet void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -65,16 +65,16 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -bool isSet(byte isSet::i , bool isSet::b) -number~ isSet::$0 -bool~ isSet::$1 -bool~ isSet::$2 +bool isSet(char i , bool b) +number isSet::$0 +bool isSet::$1 +bool isSet::$2 bool isSet::b bool isSet::b#0 bool isSet::b#1 -byte isSet::i -byte isSet::i#0 -byte isSet::i#1 +char isSet::i +char isSet::i#0 +char isSet::i#1 bool isSet::return bool isSet::return#0 bool isSet::return#1 @@ -82,19 +82,19 @@ bool isSet::return#2 bool isSet::return#3 bool isSet::return#4 void main() -number~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -constant byte* main::screen = (byte*)$400 +number main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -103,19 +103,19 @@ Adding number conversion cast (unumber) 8 in isSet::$0 = isSet::i#1 & 8 Adding number conversion cast (unumber) isSet::$0 in isSet::$0 = isSet::i#1 & (unumber)8 Adding number conversion cast (unumber) 0 in isSet::$1 = isSet::$0 != 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 -Inferred type updated to byte in isSet::$0 = isSet::i#1 & 8 +Inferred type updated to char in main::$0 = main::i#2 & 1 +Inferred type updated to char in isSet::$0 = isSet::i#1 & 8 Alias isSet::b#0 = main::$1 Alias isSet::return#0 = isSet::return#3 Alias main::i#2 = main::i#6 main::i#3 main::i#4 @@ -141,7 +141,7 @@ Adding number conversion cast (unumber) $65 in [11] if(main::i#1!=$65) goto main Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -168,7 +168,7 @@ main::@1: scope:[main] from main main::@3 [2] main::$0 = main::i#2 & 1 [3] isSet::b#0 = main::$0 == 0 [4] isSet::i#0 = main::i#2 - [5] call isSet + [5] call isSet [6] isSet::return#0 = isSet::return#1 to:main::@5 main::@5: scope:[main] from main::@1 @@ -189,7 +189,7 @@ main::@2: scope:[main] from main::@5 [13] main::screen[main::i#2] = '*' to:main::@3 -bool isSet(byte isSet::i , bool isSet::b) +bool isSet(char i , bool b) isSet: scope:[isSet] from main::@1 [14] isSet::$0 = isSet::i#0 & 8 [15] isSet::$1 = isSet::$0 != 0 @@ -201,22 +201,22 @@ isSet::@return: scope:[isSet] from isSet VARIABLE REGISTER WEIGHTS -bool isSet(byte isSet::i , bool isSet::b) -byte~ isSet::$0 202.0 -bool~ isSet::$1 202.0 +bool isSet(char i , bool b) +char isSet::$0 // 202.0 +bool isSet::$1 // 202.0 bool isSet::b -bool isSet::b#0 28.0 -byte isSet::i -byte isSet::i#0 112.0 +bool isSet::b#0 // 28.0 +char isSet::i +char isSet::i#0 // 112.0 bool isSet::return -bool isSet::return#0 22.0 -bool isSet::return#1 37.33333333333333 +bool isSet::return#0 // 22.0 +bool isSet::return#1 // 37.33333333333333 void main() -byte~ main::$0 22.0 -bool~ main::$2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.6 +char main::$0 // 22.0 +bool main::$2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.6 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -325,7 +325,7 @@ main: { tay // [4] isSet::i#0 = main::i#2 -- vbuaa=vbuxx txa - // [5] call isSet + // [5] call isSet jsr isSet // [6] isSet::return#0 = isSet::return#1 jmp __b5 @@ -364,7 +364,7 @@ main: { // isSet // Determine whether to set a char to '*. // Returns true if i&8!=0 or b=true -// isSet(byte register(A) i, bool register(Y) b) +// __register(A) bool isSet(__register(A) char i, __register(Y) bool b) isSet: { // [14] isSet::$0 = isSet::i#0 & 8 -- vbuaa=vbuaa_band_vbuc1 and #8 @@ -405,23 +405,23 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -bool isSet(byte isSet::i , bool isSet::b) -byte~ isSet::$0 reg byte a 202.0 -bool~ isSet::$1 reg byte a 202.0 +bool isSet(char i , bool b) +char isSet::$0 // reg byte a 202.0 +bool isSet::$1 // reg byte a 202.0 bool isSet::b -bool isSet::b#0 reg byte y 28.0 -byte isSet::i -byte isSet::i#0 reg byte a 112.0 +bool isSet::b#0 // reg byte y 28.0 +char isSet::i +char isSet::i#0 // reg byte a 112.0 bool isSet::return -bool isSet::return#0 reg byte a 22.0 -bool isSet::return#1 reg byte a 37.33333333333333 +bool isSet::return#0 // reg byte a 22.0 +bool isSet::return#1 // reg byte a 37.33333333333333 void main() -byte~ main::$0 reg byte a 22.0 -bool~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.6 -constant byte* main::screen = (byte*) 1024 +char main::$0 // reg byte a 22.0 +bool main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.6 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] @@ -474,7 +474,7 @@ main: { tay // [4] isSet::i#0 = main::i#2 -- vbuaa=vbuxx txa - // [5] call isSet + // [5] call isSet jsr isSet // [6] isSet::return#0 = isSet::return#1 // main::@5 @@ -511,7 +511,7 @@ main: { // isSet // Determine whether to set a char to '*. // Returns true if i&8!=0 or b=true -// isSet(byte register(A) i, bool register(Y) b) +// __register(A) bool isSet(__register(A) char i, __register(Y) bool b) isSet: { // i&8 // [14] isSet::$0 = isSet::i#0 & 8 -- vbuaa=vbuaa_band_vbuc1 diff --git a/src/test/ref/bool-function.sym b/src/test/ref/bool-function.sym index 598db9808..325552c59 100644 --- a/src/test/ref/bool-function.sym +++ b/src/test/ref/bool-function.sym @@ -1,20 +1,20 @@ -bool isSet(byte isSet::i , bool isSet::b) -byte~ isSet::$0 reg byte a 202.0 -bool~ isSet::$1 reg byte a 202.0 +bool isSet(char i , bool b) +char isSet::$0 // reg byte a 202.0 +bool isSet::$1 // reg byte a 202.0 bool isSet::b -bool isSet::b#0 reg byte y 28.0 -byte isSet::i -byte isSet::i#0 reg byte a 112.0 +bool isSet::b#0 // reg byte y 28.0 +char isSet::i +char isSet::i#0 // reg byte a 112.0 bool isSet::return -bool isSet::return#0 reg byte a 22.0 -bool isSet::return#1 reg byte a 37.33333333333333 +bool isSet::return#0 // reg byte a 22.0 +bool isSet::return#1 // reg byte a 37.33333333333333 void main() -byte~ main::$0 reg byte a 22.0 -bool~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.6 -constant byte* main::screen = (byte*) 1024 +char main::$0 // reg byte a 22.0 +bool main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.6 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/bool-ifs-min.log b/src/test/ref/bool-ifs-min.log index 695428e70..2e096fdb3 100644 --- a/src/test/ref/bool-ifs-min.log +++ b/src/test/ref/bool-ifs-min.log @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -41,35 +41,35 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +number main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Adding number conversion cast (unumber) 1 in main::$1 = main::i#2 & 1 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#2 & (unumber)1 Adding number conversion cast (unumber) 0 in main::$2 = main::$1 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#2 & 1 +Inferred type updated to char in main::$1 = main::i#2 & 1 Alias main::i#2 = main::i#4 Successful SSA optimization Pass2AliasElimination Alias main::i#2 = main::i#3 @@ -92,7 +92,7 @@ Adding number conversion cast (unumber) $15 in [6] if(main::i#1!=$15) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $15 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $15 +Finalized unsigned number type (char) $15 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [4] if(main::i#2<$a) goto main::@4 Simple Condition main::$2 [9] if(main::$1==0) goto main::@3 @@ -141,10 +141,10 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::$1 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -251,11 +251,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -constant byte* const main::screen = (byte*) 1024 +char main::$1 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/bool-ifs-min.sym b/src/test/ref/bool-ifs-min.sym index 7a20aa308..26e069e04 100644 --- a/src/test/ref/bool-ifs-min.sym +++ b/src/test/ref/bool-ifs-min.sym @@ -1,9 +1,9 @@ void main() -byte~ main::$1 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -constant byte* const main::screen = (byte*) 1024 +char main::$1 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/bool-ifs.log b/src/test/ref/bool-ifs.log index fd19600c4..93674d607 100644 --- a/src/test/ref/bool-ifs.log +++ b/src/test/ref/bool-ifs.log @@ -3,16 +3,16 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call bool_and + call bool_and to:main::@1 main::@1: scope:[main] from main - call bool_or + call bool_or to:main::@2 main::@2: scope:[main] from main::@1 - call bool_not + call bool_not to:main::@3 main::@3: scope:[main] from main::@2 - call bool_complex + call bool_complex to:main::@4 main::@4: scope:[main] from main::@3 to:main::@return @@ -149,7 +149,7 @@ bool_complex::@return: scope:[bool_complex] from bool_complex::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -160,68 +160,68 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void bool_and() -bool~ bool_and::$0 -number~ bool_and::$1 -bool~ bool_and::$2 -bool~ bool_and::$3 -bool~ bool_and::$4 -byte bool_and::i -byte bool_and::i#0 -byte bool_and::i#1 -byte bool_and::i#2 -byte bool_and::i#3 -byte bool_and::i#4 -byte bool_and::i#5 -constant byte* const bool_and::screen = (byte*)$400 +bool bool_and::$0 +number bool_and::$1 +bool bool_and::$2 +bool bool_and::$3 +bool bool_and::$4 +char bool_and::i +char bool_and::i#0 +char bool_and::i#1 +char bool_and::i#2 +char bool_and::i#3 +char bool_and::i#4 +char bool_and::i#5 +__constant char * const bool_and::screen = (char *)$400 void bool_complex() -bool~ bool_complex::$0 -number~ bool_complex::$1 -bool~ bool_complex::$10 -bool~ bool_complex::$2 -bool~ bool_complex::$3 -bool~ bool_complex::$4 -number~ bool_complex::$5 -bool~ bool_complex::$6 -bool~ bool_complex::$7 -bool~ bool_complex::$8 -bool~ bool_complex::$9 -byte bool_complex::i -byte bool_complex::i#0 -byte bool_complex::i#1 -byte bool_complex::i#2 -byte bool_complex::i#3 -byte bool_complex::i#4 -byte bool_complex::i#5 -constant byte* const bool_complex::screen = (byte*)$478 +bool bool_complex::$0 +number bool_complex::$1 +bool bool_complex::$10 +bool bool_complex::$2 +bool bool_complex::$3 +bool bool_complex::$4 +number bool_complex::$5 +bool bool_complex::$6 +bool bool_complex::$7 +bool bool_complex::$8 +bool bool_complex::$9 +char bool_complex::i +char bool_complex::i#0 +char bool_complex::i#1 +char bool_complex::i#2 +char bool_complex::i#3 +char bool_complex::i#4 +char bool_complex::i#5 +__constant char * const bool_complex::screen = (char *)$478 void bool_not() -bool~ bool_not::$0 -number~ bool_not::$1 -bool~ bool_not::$2 -bool~ bool_not::$3 -bool~ bool_not::$4 -bool~ bool_not::$5 -byte bool_not::i -byte bool_not::i#0 -byte bool_not::i#1 -byte bool_not::i#2 -byte bool_not::i#3 -byte bool_not::i#4 -byte bool_not::i#5 -constant byte* const bool_not::screen = (byte*)$450 +bool bool_not::$0 +number bool_not::$1 +bool bool_not::$2 +bool bool_not::$3 +bool bool_not::$4 +bool bool_not::$5 +char bool_not::i +char bool_not::i#0 +char bool_not::i#1 +char bool_not::i#2 +char bool_not::i#3 +char bool_not::i#4 +char bool_not::i#5 +__constant char * const bool_not::screen = (char *)$450 void bool_or() -bool~ bool_or::$0 -number~ bool_or::$1 -bool~ bool_or::$2 -bool~ bool_or::$3 -bool~ bool_or::$4 -byte bool_or::i -byte bool_or::i#0 -byte bool_or::i#1 -byte bool_or::i#2 -byte bool_or::i#3 -byte bool_or::i#4 -byte bool_or::i#5 -constant byte* const bool_or::screen = (byte*)$428 +bool bool_or::$0 +number bool_or::$1 +bool bool_or::$2 +bool bool_or::$3 +bool bool_or::$4 +char bool_or::i +char bool_or::i#0 +char bool_or::i#1 +char bool_or::i#2 +char bool_or::i#3 +char bool_or::i#4 +char bool_or::i#5 +__constant char * const bool_or::screen = (char *)$428 void main() Adding number conversion cast (unumber) $a in bool_and::$0 = bool_and::i#2 < $a @@ -245,10 +245,10 @@ Adding number conversion cast (unumber) 1 in bool_complex::$5 = bool_complex::i# Adding number conversion cast (unumber) bool_complex::$5 in bool_complex::$5 = bool_complex::i#2 & (unumber)1 Adding number conversion cast (unumber) 0 in bool_complex::$6 = bool_complex::$5 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1064 -Simplifying constant pointer cast (byte*) 1104 -Simplifying constant pointer cast (byte*) 1144 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1064 +Simplifying constant pointer cast (char *) 1104 +Simplifying constant pointer cast (char *) 1144 Simplifying constant integer cast $a Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -265,27 +265,27 @@ Simplifying constant integer cast $a Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bool_and::$1 = bool_and::i#2 & 1 -Inferred type updated to byte in bool_or::$1 = bool_or::i#2 & 1 -Inferred type updated to byte in bool_not::$1 = bool_not::i#2 & 1 -Inferred type updated to byte in bool_complex::$1 = bool_complex::i#2 & 1 -Inferred type updated to byte in bool_complex::$5 = bool_complex::i#2 & 1 +Inferred type updated to char in bool_and::$1 = bool_and::i#2 & 1 +Inferred type updated to char in bool_or::$1 = bool_or::i#2 & 1 +Inferred type updated to char in bool_not::$1 = bool_not::i#2 & 1 +Inferred type updated to char in bool_complex::$1 = bool_complex::i#2 & 1 +Inferred type updated to char in bool_complex::$5 = bool_complex::i#2 & 1 Alias bool_and::i#2 = bool_and::i#3 bool_and::i#4 Alias bool_or::i#2 = bool_or::i#3 bool_or::i#4 Alias bool_not::i#2 = bool_not::i#3 bool_not::i#4 @@ -340,10 +340,10 @@ Simplifying constant integer cast $15 Simplifying constant integer cast $15 Simplifying constant integer cast $15 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bool_complex::$5 = bool_complex::$1 Successful SSA optimization Pass2AliasElimination @@ -411,19 +411,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call bool_and + [1] call bool_and to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call bool_or + [3] call bool_or to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call bool_not + [5] call bool_not to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call bool_complex + [7] call bool_complex to:main::@return main::@return: scope:[main] from main::@3 [8] return @@ -542,25 +542,25 @@ bool_complex::@4: scope:[bool_complex] from bool_complex::@5 bool_complex::@7 VARIABLE REGISTER WEIGHTS void bool_and() -byte~ bool_and::$1 101.0 -byte bool_and::i -byte bool_and::i#1 151.5 -byte bool_and::i#2 100.99999999999999 +char bool_and::$1 // 101.0 +char bool_and::i +char bool_and::i#1 // 151.5 +char bool_and::i#2 // 100.99999999999999 void bool_complex() -byte~ bool_complex::$5 75.75 -byte bool_complex::i -byte bool_complex::i#1 151.5 -byte bool_complex::i#2 88.375 +char bool_complex::$5 // 75.75 +char bool_complex::i +char bool_complex::i#1 // 151.5 +char bool_complex::i#2 // 88.375 void bool_not() -byte~ bool_not::$1 101.0 -byte bool_not::i -byte bool_not::i#1 151.5 -byte bool_not::i#2 100.99999999999999 +char bool_not::$1 // 101.0 +char bool_not::i +char bool_not::i#1 // 151.5 +char bool_not::i#2 // 100.99999999999999 void bool_or() -byte~ bool_or::$1 101.0 -byte bool_or::i -byte bool_or::i#1 151.5 -byte bool_or::i#2 100.99999999999999 +char bool_or::$1 // 101.0 +char bool_or::i +char bool_or::i#1 // 151.5 +char bool_or::i#2 // 100.99999999999999 void main() Initial phi equivalence classes @@ -654,7 +654,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call bool_and + // [1] call bool_and // [9] phi from main to bool_and [phi:main->bool_and] bool_and_from_main: jsr bool_and @@ -663,7 +663,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call bool_or + // [3] call bool_or // [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] bool_or_from___b1: jsr bool_or @@ -672,7 +672,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call bool_not + // [5] call bool_not // [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] bool_not_from___b2: jsr bool_not @@ -681,7 +681,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call bool_complex + // [7] call bool_complex // [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] bool_complex_from___b3: jsr bool_complex @@ -985,29 +985,29 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void bool_and() -byte~ bool_and::$1 reg byte a 101.0 -byte bool_and::i -byte bool_and::i#1 reg byte x 151.5 -byte bool_and::i#2 reg byte x 100.99999999999999 -constant byte* const bool_and::screen = (byte*) 1024 +char bool_and::$1 // reg byte a 101.0 +char bool_and::i +char bool_and::i#1 // reg byte x 151.5 +char bool_and::i#2 // reg byte x 100.99999999999999 +__constant char * const bool_and::screen = (char *) 1024 void bool_complex() -byte~ bool_complex::$5 reg byte a 75.75 -byte bool_complex::i -byte bool_complex::i#1 reg byte x 151.5 -byte bool_complex::i#2 reg byte x 88.375 -constant byte* const bool_complex::screen = (byte*) 1144 +char bool_complex::$5 // reg byte a 75.75 +char bool_complex::i +char bool_complex::i#1 // reg byte x 151.5 +char bool_complex::i#2 // reg byte x 88.375 +__constant char * const bool_complex::screen = (char *) 1144 void bool_not() -byte~ bool_not::$1 reg byte a 101.0 -byte bool_not::i -byte bool_not::i#1 reg byte x 151.5 -byte bool_not::i#2 reg byte x 100.99999999999999 -constant byte* const bool_not::screen = (byte*) 1104 +char bool_not::$1 // reg byte a 101.0 +char bool_not::i +char bool_not::i#1 // reg byte x 151.5 +char bool_not::i#2 // reg byte x 100.99999999999999 +__constant char * const bool_not::screen = (char *) 1104 void bool_or() -byte~ bool_or::$1 reg byte a 101.0 -byte bool_or::i -byte bool_or::i#1 reg byte x 151.5 -byte bool_or::i#2 reg byte x 100.99999999999999 -constant byte* const bool_or::screen = (byte*) 1064 +char bool_or::$1 // reg byte a 101.0 +char bool_or::i +char bool_or::i#1 // reg byte x 151.5 +char bool_or::i#2 // reg byte x 100.99999999999999 +__constant char * const bool_or::screen = (char *) 1064 void main() reg byte x [ bool_and::i#2 bool_and::i#1 ] @@ -1039,25 +1039,25 @@ Score: 1684 // main main: { // bool_and() - // [1] call bool_and + // [1] call bool_and // [9] phi from main to bool_and [phi:main->bool_and] jsr bool_and // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // bool_or() - // [3] call bool_or + // [3] call bool_or // [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] jsr bool_or // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // bool_not() - // [5] call bool_not + // [5] call bool_not // [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] jsr bool_not // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // bool_complex() - // [7] call bool_complex + // [7] call bool_complex // [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] jsr bool_complex // main::@return diff --git a/src/test/ref/bool-ifs.sym b/src/test/ref/bool-ifs.sym index 4140b8e6a..904c597e5 100644 --- a/src/test/ref/bool-ifs.sym +++ b/src/test/ref/bool-ifs.sym @@ -1,27 +1,27 @@ void bool_and() -byte~ bool_and::$1 reg byte a 101.0 -byte bool_and::i -byte bool_and::i#1 reg byte x 151.5 -byte bool_and::i#2 reg byte x 100.99999999999999 -constant byte* const bool_and::screen = (byte*) 1024 +char bool_and::$1 // reg byte a 101.0 +char bool_and::i +char bool_and::i#1 // reg byte x 151.5 +char bool_and::i#2 // reg byte x 100.99999999999999 +__constant char * const bool_and::screen = (char *) 1024 void bool_complex() -byte~ bool_complex::$5 reg byte a 75.75 -byte bool_complex::i -byte bool_complex::i#1 reg byte x 151.5 -byte bool_complex::i#2 reg byte x 88.375 -constant byte* const bool_complex::screen = (byte*) 1144 +char bool_complex::$5 // reg byte a 75.75 +char bool_complex::i +char bool_complex::i#1 // reg byte x 151.5 +char bool_complex::i#2 // reg byte x 88.375 +__constant char * const bool_complex::screen = (char *) 1144 void bool_not() -byte~ bool_not::$1 reg byte a 101.0 -byte bool_not::i -byte bool_not::i#1 reg byte x 151.5 -byte bool_not::i#2 reg byte x 100.99999999999999 -constant byte* const bool_not::screen = (byte*) 1104 +char bool_not::$1 // reg byte a 101.0 +char bool_not::i +char bool_not::i#1 // reg byte x 151.5 +char bool_not::i#2 // reg byte x 100.99999999999999 +__constant char * const bool_not::screen = (char *) 1104 void bool_or() -byte~ bool_or::$1 reg byte a 101.0 -byte bool_or::i -byte bool_or::i#1 reg byte x 151.5 -byte bool_or::i#2 reg byte x 100.99999999999999 -constant byte* const bool_or::screen = (byte*) 1064 +char bool_or::$1 // reg byte a 101.0 +char bool_or::i +char bool_or::i#1 // reg byte x 151.5 +char bool_or::i#2 // reg byte x 100.99999999999999 +__constant char * const bool_or::screen = (char *) 1064 void main() reg byte x [ bool_and::i#2 bool_and::i#1 ] diff --git a/src/test/ref/bool-not-operator-1.log b/src/test/ref/bool-not-operator-1.log index 28be5c752..ace96d617 100644 --- a/src/test/ref/bool-not-operator-1.log +++ b/src/test/ref/bool-not-operator-1.log @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,24 +47,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -bool~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -bool~ main::$6 +number main::$0 +bool main::$2 +number main::$3 +number main::$4 +number main::$5 +bool main::$6 bool main::b bool main::b#0 -byte main::c -byte main::c#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -constant byte* const main::screen = (byte*)$400 +char main::c +char main::c#0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -73,14 +73,14 @@ Adding number conversion cast (unumber) main::$5 in main::c#0 = main::$5 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::c#0 = (unumber)main::$5 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 +Inferred type updated to char in main::$0 = main::i#2 & 1 Inversing boolean not [4] main::$2 = main::$0 != 1 from [3] main::b#0 = main::$0 == 1 Successful SSA optimization Pass2UnaryNotSimplification Alias main::i#2 = main::i#4 main::i#5 @@ -105,21 +105,21 @@ Adding number conversion cast (unumber) 8 in [7] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::$3 = 0 Constant inlined main::$4 = 1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) main::$5 in main::$5 = phi( main::@2/1, main::@3/0 ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::$5 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for main::$5 +Inferred type updated to char for main::$5 Alias main::c#0 = main::$5 Successful SSA optimization Pass2AliasElimination Added new block during phi lifting main::@5(between main::@4 and main::@1) @@ -164,13 +164,13 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 +char main::$0 // 22.0 bool main::b -byte main::c -byte main::c#0 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.333333333333333 +char main::c +char main::c#0 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -285,14 +285,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 bool main::b -byte main::c -byte main::c#0 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 -constant byte* const main::screen = (byte*) 1024 +char main::c +char main::c#0 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::c#0 ] diff --git a/src/test/ref/bool-not-operator-1.sym b/src/test/ref/bool-not-operator-1.sym index 9476bc9c6..3bd6742d6 100644 --- a/src/test/ref/bool-not-operator-1.sym +++ b/src/test/ref/bool-not-operator-1.sym @@ -1,12 +1,12 @@ void main() -byte~ main::$0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 bool main::b -byte main::c -byte main::c#0 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 -constant byte* const main::screen = (byte*) 1024 +char main::c +char main::c#0 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::c#0 ] diff --git a/src/test/ref/bool-not-operator-2.log b/src/test/ref/bool-not-operator-2.log index cdb4b98a9..875f8f83b 100644 --- a/src/test/ref/bool-not-operator-2.log +++ b/src/test/ref/bool-not-operator-2.log @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,24 +47,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$4 -bool~ main::$5 -bool~ main::$6 -byte main::b -byte main::b#0 -byte main::c -byte main::c#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -constant byte* const main::screen = (byte*)$400 +bool main::$1 +number main::$2 +number main::$3 +number main::$4 +bool main::$5 +bool main::$6 +char main::b +char main::b#0 +char main::c +char main::c#0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) 1 in main::b#0 = main::i#2 & 1 Adding number conversion cast (unumber) 0 in main::$6 = 0 != main::b#0 @@ -72,12 +72,12 @@ Adding number conversion cast (unumber) main::$4 in main::c#0 = main::$4 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::c#0 = (unumber)main::$4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [4] main::$1 = 0 == main::b#0 from [3] main::$6 = 0 != main::b#0 Successful SSA optimization Pass2UnaryNotSimplification @@ -103,21 +103,21 @@ Adding number conversion cast (unumber) 8 in [7] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::$2 = 0 Constant inlined main::$3 = 1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) main::$4 in main::$4 = phi( main::@2/1, main::@3/0 ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::$4 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for main::$4 +Inferred type updated to char for main::$4 Alias main::c#0 = main::$4 Successful SSA optimization Pass2AliasElimination Added new block during phi lifting main::@5(between main::@4 and main::@1) @@ -162,13 +162,13 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::b -byte main::b#0 22.0 -byte main::c -byte main::c#0 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.333333333333333 +char main::b +char main::b#0 // 22.0 +char main::c +char main::c#0 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -283,14 +283,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::b -byte main::b#0 reg byte a 22.0 -byte main::c -byte main::c#0 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 -constant byte* const main::screen = (byte*) 1024 +char main::b +char main::b#0 // reg byte a 22.0 +char main::c +char main::c#0 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::c#0 ] diff --git a/src/test/ref/bool-not-operator-2.sym b/src/test/ref/bool-not-operator-2.sym index b607c0a52..74385844d 100644 --- a/src/test/ref/bool-not-operator-2.sym +++ b/src/test/ref/bool-not-operator-2.sym @@ -1,12 +1,12 @@ void main() -byte main::b -byte main::b#0 reg byte a 22.0 -byte main::c -byte main::c#0 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 -constant byte* const main::screen = (byte*) 1024 +char main::b +char main::b#0 // reg byte a 22.0 +char main::c +char main::c#0 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::c#0 ] diff --git a/src/test/ref/bool-nullpointer-exception.log b/src/test/ref/bool-nullpointer-exception.log index 3906045ec..2c5b27f00 100644 --- a/src/test/ref/bool-nullpointer-exception.log +++ b/src/test/ref/bool-nullpointer-exception.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -32,7 +32,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 framedone#10 = phi( __start::__init1/framedone#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 framedone#7 = phi( __start::@1/framedone#1 ) @@ -60,7 +60,7 @@ bool framedone#7 bool framedone#8 bool framedone#9 void main() -bool~ main::$0 +bool main::$0 Alias framedone#1 = framedone#6 framedone#9 Alias framedone#10 = framedone#2 @@ -116,7 +116,7 @@ main::@2: scope:[main] from main::@1 main::@2 VARIABLE REGISTER WEIGHTS bool framedone -bool framedone#1 50.5 +bool framedone#1 // 50.5 void main() Initial phi equivalence classes @@ -186,7 +186,7 @@ Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE bool framedone -bool framedone#1 reg byte a 50.5 +bool framedone#1 // reg byte a 50.5 void main() reg byte a [ framedone#1 ] diff --git a/src/test/ref/bool-nullpointer-exception.sym b/src/test/ref/bool-nullpointer-exception.sym index c66bedcf6..ad05986cc 100644 --- a/src/test/ref/bool-nullpointer-exception.sym +++ b/src/test/ref/bool-nullpointer-exception.sym @@ -1,5 +1,5 @@ bool framedone -bool framedone#1 reg byte a 50.5 +bool framedone#1 // reg byte a 50.5 void main() reg byte a [ framedone#1 ] diff --git a/src/test/ref/bool-pointer.cfg b/src/test/ref/bool-pointer.cfg index b0d162f5e..f13e38bf2 100644 --- a/src/test/ref/bool-pointer.cfg +++ b/src/test/ref/bool-pointer.cfg @@ -1,13 +1,13 @@ void main() main: scope:[main] from - [0] *((bool*) 1024) = true - [1] *((bool*) 1024+1) = false - [2] *((bool*) 1024+2) = true - [3] if(*((bool*) 1024+2)) goto main::@1 + [0] *((bool *) 1024) = true + [1] *((bool *) 1024+1) = false + [2] *((bool *) 1024+2) = true + [3] if(*((bool *) 1024+2)) goto main::@1 to:main::@return main::@1: scope:[main] from main - [4] *((bool*) 1024+3) = true + [4] *((bool *) 1024+3) = true to:main::@return main::@return: scope:[main] from main main::@1 [5] return diff --git a/src/test/ref/bool-pointer.log b/src/test/ref/bool-pointer.log index f3b6ed56d..17d9faffb 100644 --- a/src/test/ref/bool-pointer.log +++ b/src/test/ref/bool-pointer.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::bscreen#0 = (bool*)$400 + main::bscreen#0 = (bool *)$400 main::bscreen#0[0] = true main::bscreen#0[1] = false main::$0 = main::bscreen#0 + 2 @@ -23,7 +23,7 @@ main::@return: scope:[main] from main main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,32 +34,32 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool*~ main::$0 -bool~ main::$1 -bool* main::bscreen -bool* main::bscreen#0 -bool* main::bscreen#1 -bool* main::bscreen#2 -bool* main::bscreen#3 +bool *main::$0 +bool main::$1 +bool *main::bscreen +bool *main::bscreen#0 +bool *main::bscreen#1 +bool *main::bscreen#2 +bool *main::bscreen#3 Adding number conversion cast (unumber) 0 in main::bscreen#0[0] = true Adding number conversion cast (unumber) 1 in main::bscreen#0[1] = false Adding number conversion cast (unumber) 2 in main::$0 = main::bscreen#0 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (bool*) 1024 +Simplifying constant pointer cast (bool *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::bscreen#1 = main::$0 main::bscreen#3 Successful SSA optimization Pass2AliasElimination Rewriting ! if()-condition to reversed if() [5] main::$1 = ! *main::bscreen#1 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant main::bscreen#0 = (bool*) 1024 +Constant main::bscreen#0 = (bool *) 1024 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero main::bscreen#0 in [1] main::bscreen#0[0] = true Successful SSA optimization PassNSimplifyExpressionWithZero @@ -79,13 +79,13 @@ Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::bscreen#0 Inlining constant with different constant siblings main::bscreen#1 Inlining constant with different constant siblings main::bscreen#2 -Constant inlined main::bscreen#2 = ++(bool*) 1024+2 -Constant inlined main::bscreen#0 = (bool*) 1024 -Constant inlined main::bscreen#1 = (bool*) 1024+2 +Constant inlined main::bscreen#2 = ++(bool *) 1024+2 +Constant inlined main::bscreen#0 = (bool *) 1024 +Constant inlined main::bscreen#1 = (bool *) 1024+2 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((bool*) 1024+1) +Consolidated array index constant in *((bool *) 1024+1) Successful SSA optimization Pass2ConstantAdditionElimination -Simplifying constant integer increment ++(bool*) 1024+2 +Simplifying constant integer increment ++(bool *) 1024+2 Successful SSA optimization Pass2ConstantSimplification CALL GRAPH @@ -96,13 +96,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((bool*) 1024) = true - [1] *((bool*) 1024+1) = false - [2] *((bool*) 1024+2) = true - [3] if(*((bool*) 1024+2)) goto main::@1 + [0] *((bool *) 1024) = true + [1] *((bool *) 1024+1) = false + [2] *((bool *) 1024+2) = true + [3] if(*((bool *) 1024+2)) goto main::@1 to:main::@return main::@1: scope:[main] from main - [4] *((bool*) 1024+3) = true + [4] *((bool *) 1024+3) = true to:main::@return main::@return: scope:[main] from main main::@1 [5] return @@ -111,16 +111,16 @@ main::@return: scope:[main] from main main::@1 VARIABLE REGISTER WEIGHTS void main() -bool* main::bscreen +bool *main::bscreen Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((bool*) 1024) = true [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((bool*) 1024+1) = false [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((bool*) 1024+2) = true [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] if(*((bool*) 1024+2)) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((bool*) 1024+3) = true [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((bool *) 1024) = true [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((bool *) 1024+1) = false [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((bool *) 1024+2) = true [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] if(*((bool *) 1024+2)) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((bool *) 1024+3) = true [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -145,23 +145,23 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((bool*) 1024) = true -- _deref_pboc1=vboc2 + // [0] *((bool *) 1024) = true -- _deref_pboc1=vboc2 lda #1 sta $400 - // [1] *((bool*) 1024+1) = false -- _deref_pboc1=vboc2 + // [1] *((bool *) 1024+1) = false -- _deref_pboc1=vboc2 lda #0 sta $400+1 - // [2] *((bool*) 1024+2) = true -- _deref_pboc1=vboc2 + // [2] *((bool *) 1024+2) = true -- _deref_pboc1=vboc2 lda #1 sta $400+2 - // [3] if(*((bool*) 1024+2)) goto main::@1 -- _deref_pboc1_then_la1 + // [3] if(*((bool *) 1024+2)) goto main::@1 -- _deref_pboc1_then_la1 lda $400+2 cmp #0 bne __b1 jmp __breturn // main::@1 __b1: - // [4] *((bool*) 1024+3) = true -- _deref_pboc1=vboc2 + // [4] *((bool *) 1024+3) = true -- _deref_pboc1=vboc2 lda #1 sta $400+3 jmp __breturn @@ -184,7 +184,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -bool* main::bscreen +bool *main::bscreen @@ -207,26 +207,26 @@ Score: 40 // main main: { // bscreen[0] = true - // [0] *((bool*) 1024) = true -- _deref_pboc1=vboc2 + // [0] *((bool *) 1024) = true -- _deref_pboc1=vboc2 lda #1 sta $400 // bscreen[1] = false - // [1] *((bool*) 1024+1) = false -- _deref_pboc1=vboc2 + // [1] *((bool *) 1024+1) = false -- _deref_pboc1=vboc2 lda #0 sta $400+1 // *bscreen = true - // [2] *((bool*) 1024+2) = true -- _deref_pboc1=vboc2 + // [2] *((bool *) 1024+2) = true -- _deref_pboc1=vboc2 lda #1 sta $400+2 // if(*bscreen) - // [3] if(*((bool*) 1024+2)) goto main::@1 -- _deref_pboc1_then_la1 + // [3] if(*((bool *) 1024+2)) goto main::@1 -- _deref_pboc1_then_la1 cmp #0 bne __b1 rts // main::@1 __b1: // *(++bscreen)= true - // [4] *((bool*) 1024+3) = true -- _deref_pboc1=vboc2 + // [4] *((bool *) 1024+3) = true -- _deref_pboc1=vboc2 lda #1 sta $400+3 // main::@return diff --git a/src/test/ref/bool-pointer.sym b/src/test/ref/bool-pointer.sym index 6fb2c3a64..ce184e43b 100644 --- a/src/test/ref/bool-pointer.sym +++ b/src/test/ref/bool-pointer.sym @@ -1,3 +1,3 @@ void main() -bool* main::bscreen +bool *main::bscreen diff --git a/src/test/ref/bool-vars.log b/src/test/ref/bool-vars.log index 172a38bea..034f68590 100644 --- a/src/test/ref/bool-vars.log +++ b/src/test/ref/bool-vars.log @@ -17,16 +17,16 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call bool_and + call bool_and to:main::@1 main::@1: scope:[main] from main - call bool_or + call bool_or to:main::@2 main::@2: scope:[main] from main::@1 - call bool_not + call bool_not to:main::@3 main::@3: scope:[main] from main::@2 - call bool_complex + call bool_complex to:main::@4 main::@4: scope:[main] from main::@3 to:main::@return @@ -160,7 +160,7 @@ bool_complex::@return: scope:[bool_complex] from bool_complex::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -171,33 +171,33 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void bool_and() -number~ bool_and::$1 -bool~ bool_and::$4 -byte bool_and::i -byte bool_and::i#0 -byte bool_and::i#1 -byte bool_and::i#2 -byte bool_and::i#3 -byte bool_and::i#4 -byte bool_and::i#5 +number bool_and::$1 +bool bool_and::$4 +char bool_and::i +char bool_and::i#0 +char bool_and::i#1 +char bool_and::i#2 +char bool_and::i#3 +char bool_and::i#4 +char bool_and::i#5 bool bool_and::o1 bool bool_and::o1#0 bool bool_and::o2 bool bool_and::o2#0 bool bool_and::o3 bool bool_and::o3#0 -constant byte* const bool_and::screen = (byte*)$400 +__constant char * const bool_and::screen = (char *)$400 void bool_complex() -number~ bool_complex::$1 -bool~ bool_complex::$4 -bool~ bool_complex::$7 -byte bool_complex::i -byte bool_complex::i#0 -byte bool_complex::i#1 -byte bool_complex::i#2 -byte bool_complex::i#3 -byte bool_complex::i#4 -byte bool_complex::i#5 +number bool_complex::$1 +bool bool_complex::$4 +bool bool_complex::$7 +char bool_complex::i +char bool_complex::i#0 +char bool_complex::i#1 +char bool_complex::i#2 +char bool_complex::i#3 +char bool_complex::i#4 +char bool_complex::i#5 bool bool_complex::o1 bool bool_complex::o1#0 bool bool_complex::o2 @@ -208,42 +208,42 @@ bool bool_complex::o4 bool bool_complex::o4#0 bool bool_complex::o5 bool bool_complex::o5#0 -constant byte* const bool_complex::screen = (byte*)$478 +__constant char * const bool_complex::screen = (char *)$478 void bool_not() -number~ bool_not::$1 -bool~ bool_not::$3 -bool~ bool_not::$5 -byte bool_not::i -byte bool_not::i#0 -byte bool_not::i#1 -byte bool_not::i#2 -byte bool_not::i#3 -byte bool_not::i#4 -byte bool_not::i#5 +number bool_not::$1 +bool bool_not::$3 +bool bool_not::$5 +char bool_not::i +char bool_not::i#0 +char bool_not::i#1 +char bool_not::i#2 +char bool_not::i#3 +char bool_not::i#4 +char bool_not::i#5 bool bool_not::o1 bool bool_not::o1#0 bool bool_not::o2 bool bool_not::o2#0 bool bool_not::o3 bool bool_not::o3#0 -constant byte* const bool_not::screen = (byte*)$450 +__constant char * const bool_not::screen = (char *)$450 void bool_or() -number~ bool_or::$1 -bool~ bool_or::$4 -byte bool_or::i -byte bool_or::i#0 -byte bool_or::i#1 -byte bool_or::i#2 -byte bool_or::i#3 -byte bool_or::i#4 -byte bool_or::i#5 +number bool_or::$1 +bool bool_or::$4 +char bool_or::i +char bool_or::i#0 +char bool_or::i#1 +char bool_or::i#2 +char bool_or::i#3 +char bool_or::i#4 +char bool_or::i#5 bool bool_or::o1 bool bool_or::o1#0 bool bool_or::o2 bool bool_or::o2#0 bool bool_or::o3 bool bool_or::o3#0 -constant byte* const bool_or::screen = (byte*)$428 +__constant char * const bool_or::screen = (char *)$428 void main() Adding number conversion cast (unumber) $a in bool_and::o1#0 = bool_and::i#2 < $a @@ -263,10 +263,10 @@ Adding number conversion cast (unumber) 1 in bool_complex::$1 = bool_complex::i# Adding number conversion cast (unumber) bool_complex::$1 in bool_complex::$1 = bool_complex::i#2 & (unumber)1 Adding number conversion cast (unumber) 0 in bool_complex::o2#0 = bool_complex::$1 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1064 -Simplifying constant pointer cast (byte*) 1104 -Simplifying constant pointer cast (byte*) 1144 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1064 +Simplifying constant pointer cast (char *) 1104 +Simplifying constant pointer cast (char *) 1144 Simplifying constant integer cast $a Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -280,23 +280,23 @@ Simplifying constant integer cast $a Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bool_and::$1 = bool_and::i#2 & 1 -Inferred type updated to byte in bool_or::$1 = bool_or::i#2 & 1 -Inferred type updated to byte in bool_not::$1 = bool_not::i#2 & 1 -Inferred type updated to byte in bool_complex::$1 = bool_complex::i#2 & 1 +Inferred type updated to char in bool_and::$1 = bool_and::i#2 & 1 +Inferred type updated to char in bool_or::$1 = bool_or::i#2 & 1 +Inferred type updated to char in bool_not::$1 = bool_not::i#2 & 1 +Inferred type updated to char in bool_complex::$1 = bool_complex::i#2 & 1 Alias bool_and::i#2 = bool_and::i#3 bool_and::i#4 Alias bool_or::i#2 = bool_or::i#3 bool_or::i#4 Alias bool_not::i#2 = bool_not::i#3 bool_not::i#4 @@ -349,10 +349,10 @@ Simplifying constant integer cast $15 Simplifying constant integer cast $15 Simplifying constant integer cast $15 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition bool_and::o1#0 [9] if(bool_and::i#2<$a) goto bool_and::@5 Simple Condition bool_or::o1#0 [19] if(bool_or::i#2<$a) goto bool_or::@2 @@ -412,19 +412,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call bool_and + [1] call bool_and to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call bool_or + [3] call bool_or to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call bool_not + [5] call bool_not to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call bool_complex + [7] call bool_complex to:main::@return main::@return: scope:[main] from main::@3 [8] return @@ -545,38 +545,38 @@ bool_complex::@4: scope:[bool_complex] from bool_complex::@5 bool_complex::@7 VARIABLE REGISTER WEIGHTS void bool_and() -byte~ bool_and::$1 101.0 -byte bool_and::i -byte bool_and::i#1 151.5 -byte bool_and::i#2 100.99999999999999 +char bool_and::$1 // 101.0 +char bool_and::i +char bool_and::i#1 // 151.5 +char bool_and::i#2 // 100.99999999999999 bool bool_and::o1 bool bool_and::o2 bool bool_and::o3 void bool_complex() -byte~ bool_complex::$1 202.0 -byte bool_complex::i -byte bool_complex::i#1 151.5 -byte bool_complex::i#2 60.6 +char bool_complex::$1 // 202.0 +char bool_complex::i +char bool_complex::i#1 // 151.5 +char bool_complex::i#2 // 60.6 bool bool_complex::o1 -bool bool_complex::o1#0 60.599999999999994 +bool bool_complex::o1#0 // 60.599999999999994 bool bool_complex::o2 -bool bool_complex::o2#0 75.75 +bool bool_complex::o2#0 // 75.75 bool bool_complex::o3 bool bool_complex::o4 bool bool_complex::o5 void bool_not() -byte~ bool_not::$1 101.0 -byte bool_not::i -byte bool_not::i#1 151.5 -byte bool_not::i#2 100.99999999999999 +char bool_not::$1 // 101.0 +char bool_not::i +char bool_not::i#1 // 151.5 +char bool_not::i#2 // 100.99999999999999 bool bool_not::o1 bool bool_not::o2 bool bool_not::o3 void bool_or() -byte~ bool_or::$1 101.0 -byte bool_or::i -byte bool_or::i#1 151.5 -byte bool_or::i#2 100.99999999999999 +char bool_or::$1 // 101.0 +char bool_or::i +char bool_or::i#1 // 151.5 +char bool_or::i#2 // 100.99999999999999 bool bool_or::o1 bool bool_or::o2 bool bool_or::o3 @@ -688,7 +688,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call bool_and + // [1] call bool_and // [9] phi from main to bool_and [phi:main->bool_and] bool_and_from_main: jsr bool_and @@ -697,7 +697,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call bool_or + // [3] call bool_or // [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] bool_or_from___b1: jsr bool_or @@ -706,7 +706,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call bool_not + // [5] call bool_not // [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] bool_not_from___b2: jsr bool_not @@ -715,7 +715,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call bool_complex + // [7] call bool_complex // [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] bool_complex_from___b3: jsr bool_complex @@ -1029,45 +1029,45 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void bool_and() -byte~ bool_and::$1 reg byte a 101.0 -byte bool_and::i -byte bool_and::i#1 reg byte x 151.5 -byte bool_and::i#2 reg byte x 100.99999999999999 +char bool_and::$1 // reg byte a 101.0 +char bool_and::i +char bool_and::i#1 // reg byte x 151.5 +char bool_and::i#2 // reg byte x 100.99999999999999 bool bool_and::o1 bool bool_and::o2 bool bool_and::o3 -constant byte* const bool_and::screen = (byte*) 1024 +__constant char * const bool_and::screen = (char *) 1024 void bool_complex() -byte~ bool_complex::$1 reg byte a 202.0 -byte bool_complex::i -byte bool_complex::i#1 reg byte y 151.5 -byte bool_complex::i#2 reg byte y 60.6 +char bool_complex::$1 // reg byte a 202.0 +char bool_complex::i +char bool_complex::i#1 // reg byte y 151.5 +char bool_complex::i#2 // reg byte y 60.6 bool bool_complex::o1 -bool bool_complex::o1#0 reg byte x 60.599999999999994 +bool bool_complex::o1#0 // reg byte x 60.599999999999994 bool bool_complex::o2 -bool bool_complex::o2#0 reg byte a 75.75 +bool bool_complex::o2#0 // reg byte a 75.75 bool bool_complex::o3 bool bool_complex::o4 bool bool_complex::o5 -constant byte* const bool_complex::screen = (byte*) 1144 +__constant char * const bool_complex::screen = (char *) 1144 void bool_not() -byte~ bool_not::$1 reg byte a 101.0 -byte bool_not::i -byte bool_not::i#1 reg byte x 151.5 -byte bool_not::i#2 reg byte x 100.99999999999999 +char bool_not::$1 // reg byte a 101.0 +char bool_not::i +char bool_not::i#1 // reg byte x 151.5 +char bool_not::i#2 // reg byte x 100.99999999999999 bool bool_not::o1 bool bool_not::o2 bool bool_not::o3 -constant byte* const bool_not::screen = (byte*) 1104 +__constant char * const bool_not::screen = (char *) 1104 void bool_or() -byte~ bool_or::$1 reg byte a 101.0 -byte bool_or::i -byte bool_or::i#1 reg byte x 151.5 -byte bool_or::i#2 reg byte x 100.99999999999999 +char bool_or::$1 // reg byte a 101.0 +char bool_or::i +char bool_or::i#1 // reg byte x 151.5 +char bool_or::i#2 // reg byte x 100.99999999999999 bool bool_or::o1 bool bool_or::o2 bool bool_or::o3 -constant byte* const bool_or::screen = (byte*) 1064 +__constant char * const bool_or::screen = (char *) 1064 void main() reg byte x [ bool_and::i#2 bool_and::i#1 ] @@ -1101,25 +1101,25 @@ Score: 1899 // main main: { // bool_and() - // [1] call bool_and + // [1] call bool_and // [9] phi from main to bool_and [phi:main->bool_and] jsr bool_and // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // bool_or() - // [3] call bool_or + // [3] call bool_or // [19] phi from main::@1 to bool_or [phi:main::@1->bool_or] jsr bool_or // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // bool_not() - // [5] call bool_not + // [5] call bool_not // [29] phi from main::@2 to bool_not [phi:main::@2->bool_not] jsr bool_not // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // bool_complex() - // [7] call bool_complex + // [7] call bool_complex // [39] phi from main::@3 to bool_complex [phi:main::@3->bool_complex] jsr bool_complex // main::@return diff --git a/src/test/ref/bool-vars.sym b/src/test/ref/bool-vars.sym index 92a9c86ec..343938d9f 100644 --- a/src/test/ref/bool-vars.sym +++ b/src/test/ref/bool-vars.sym @@ -1,43 +1,43 @@ void bool_and() -byte~ bool_and::$1 reg byte a 101.0 -byte bool_and::i -byte bool_and::i#1 reg byte x 151.5 -byte bool_and::i#2 reg byte x 100.99999999999999 +char bool_and::$1 // reg byte a 101.0 +char bool_and::i +char bool_and::i#1 // reg byte x 151.5 +char bool_and::i#2 // reg byte x 100.99999999999999 bool bool_and::o1 bool bool_and::o2 bool bool_and::o3 -constant byte* const bool_and::screen = (byte*) 1024 +__constant char * const bool_and::screen = (char *) 1024 void bool_complex() -byte~ bool_complex::$1 reg byte a 202.0 -byte bool_complex::i -byte bool_complex::i#1 reg byte y 151.5 -byte bool_complex::i#2 reg byte y 60.6 +char bool_complex::$1 // reg byte a 202.0 +char bool_complex::i +char bool_complex::i#1 // reg byte y 151.5 +char bool_complex::i#2 // reg byte y 60.6 bool bool_complex::o1 -bool bool_complex::o1#0 reg byte x 60.599999999999994 +bool bool_complex::o1#0 // reg byte x 60.599999999999994 bool bool_complex::o2 -bool bool_complex::o2#0 reg byte a 75.75 +bool bool_complex::o2#0 // reg byte a 75.75 bool bool_complex::o3 bool bool_complex::o4 bool bool_complex::o5 -constant byte* const bool_complex::screen = (byte*) 1144 +__constant char * const bool_complex::screen = (char *) 1144 void bool_not() -byte~ bool_not::$1 reg byte a 101.0 -byte bool_not::i -byte bool_not::i#1 reg byte x 151.5 -byte bool_not::i#2 reg byte x 100.99999999999999 +char bool_not::$1 // reg byte a 101.0 +char bool_not::i +char bool_not::i#1 // reg byte x 151.5 +char bool_not::i#2 // reg byte x 100.99999999999999 bool bool_not::o1 bool bool_not::o2 bool bool_not::o3 -constant byte* const bool_not::screen = (byte*) 1104 +__constant char * const bool_not::screen = (char *) 1104 void bool_or() -byte~ bool_or::$1 reg byte a 101.0 -byte bool_or::i -byte bool_or::i#1 reg byte x 151.5 -byte bool_or::i#2 reg byte x 100.99999999999999 +char bool_or::$1 // reg byte a 101.0 +char bool_or::i +char bool_or::i#1 // reg byte x 151.5 +char bool_or::i#2 // reg byte x 100.99999999999999 bool bool_or::o1 bool bool_or::o2 bool bool_or::o3 -constant byte* const bool_or::screen = (byte*) 1064 +__constant char * const bool_or::screen = (char *) 1064 void main() reg byte x [ bool_and::i#2 bool_and::i#1 ] diff --git a/src/test/ref/bresenham.log b/src/test/ref/bresenham.log index b38915a3b..07c046cbd 100644 --- a/src/test/ref/bresenham.log +++ b/src/test/ref/bresenham.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement main::$2 @@ -70,7 +70,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -79,62 +79,62 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN[$28*$19] = (byte*)$400 -constant byte STAR = $51 +__constant char SCREEN[$28*$19] = (char *)$400 +__constant char STAR = $51 void __start() void main() -bool~ main::$10 -number~ main::$11 -byte*~ main::$12 -byte~ main::$13 -number~ main::$14 -bool~ main::$15 -number~ main::$3 -byte*~ main::$4 -number~ main::$6 -byte*~ main::$7 -byte~ main::$8 -bool~ main::$9 -byte* main::cursor -byte* main::cursor#0 -byte* main::cursor#1 -byte* main::cursor#2 -byte* main::cursor#3 -byte* main::cursor#4 -byte* main::cursor#5 -byte main::e -byte main::e#0 -byte main::e#1 -byte main::e#2 -byte main::e#3 -byte main::e#4 -byte main::e#5 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -constant byte main::x0 = 4 -constant byte main::x1 = $27 -byte main::xd -byte main::xd#0 -byte main::xd#1 -byte main::xd#2 -byte main::xd#3 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -constant byte main::y0 = 4 -constant byte main::y1 = $18 -byte main::yd -byte main::yd#0 -byte main::yd#1 -byte main::yd#2 -byte main::yd#3 +bool main::$10 +number main::$11 +char *main::$12 +char main::$13 +number main::$14 +bool main::$15 +number main::$3 +char *main::$4 +number main::$6 +char *main::$7 +char main::$8 +bool main::$9 +char *main::cursor +char *main::cursor#0 +char *main::cursor#1 +char *main::cursor#2 +char *main::cursor#3 +char *main::cursor#4 +char *main::cursor#5 +char main::e +char main::e#0 +char main::e#1 +char main::e#2 +char main::e#3 +char main::e#4 +char main::e#5 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +__constant char main::x0 = 4 +__constant char main::x1 = $27 +char main::xd +char main::xd#0 +char main::xd#1 +char main::xd#2 +char main::xd#3 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +__constant char main::y0 = 4 +__constant char main::y1 = $18 +char main::yd +char main::yd#0 +char main::yd#1 +char main::yd#2 +char main::yd#3 Adding number conversion cast (unumber) 2 in main::e#0 = main::yd#0 / 2 Adding number conversion cast (unumber) $28 in main::$3 = main::y#0 * $28 @@ -148,7 +148,7 @@ Adding number conversion cast (unumber) 1 in main::$11 = main::y#2 + 1 Adding number conversion cast (unumber) main::$11 in main::$11 = main::y#2 + (unumber)1 Adding number conversion cast (unumber) $28 in main::$12 = main::cursor#4 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast $28 Simplifying constant integer cast 1 @@ -157,18 +157,18 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$3 = main::y#0 * $28 -Inferred type updated to byte in main::$6 = main::x#2 + 1 -Inferred type updated to byte in main::$14 = main::x1 + 1 -Inferred type updated to byte in main::$11 = main::y#2 + 1 +Inferred type updated to char in main::$3 = main::y#0 * $28 +Inferred type updated to char in main::$6 = main::x#2 + 1 +Inferred type updated to char in main::$14 = main::x1 + 1 +Inferred type updated to char in main::$11 = main::y#2 + 1 Inversing boolean not [17] main::$10 = main::xd#1 > main::e#1 from [16] main::$9 = main::xd#1 <= main::e#1 Successful SSA optimization Pass2UnaryNotSimplification Alias main::x#1 = main::$6 main::x#4 @@ -234,8 +234,8 @@ Constant inlined main::y#0 = main::y0 Constant inlined main::$4 = SCREEN+main::y0*$28 Constant inlined main::e#0 = main::yd#0/2 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@2 and main::@1) Added new block during phi lifting main::@5(between main::@1 and main::@2) @@ -293,25 +293,25 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte* main::cursor -byte* main::cursor#1 8.25 -byte* main::cursor#2 11.0 -byte* main::cursor#3 11.0 -byte* main::cursor#5 16.5 -byte main::e -byte main::e#1 11.0 -byte main::e#2 22.0 -byte main::e#3 5.5 -byte main::e#5 16.5 -byte main::x -byte main::x#1 3.666666666666667 -byte main::x#2 11.0 -byte main::xd -byte main::y -byte main::y#1 7.333333333333333 -byte main::y#2 5.5 -byte main::y#4 16.5 -byte main::yd +char *main::cursor +char *main::cursor#1 // 8.25 +char *main::cursor#2 // 11.0 +char *main::cursor#3 // 11.0 +char *main::cursor#5 // 16.5 +char main::e +char main::e#1 // 11.0 +char main::e#2 // 22.0 +char main::e#3 // 5.5 +char main::e#5 // 16.5 +char main::x +char main::x#1 // 3.666666666666667 +char main::x#2 // 11.0 +char main::xd +char main::y +char main::y#1 // 7.333333333333333 +char main::y#2 // 5.5 +char main::y#4 // 16.5 +char main::yd Initial phi equivalence classes [ main::cursor#3 main::cursor#5 main::cursor#1 main::cursor#2 ] @@ -488,34 +488,34 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN[$28*$19] = (byte*) 1024 -constant byte STAR = $51 +__constant char SCREEN[$28*$19] = (char *) 1024 +__constant char STAR = $51 void main() -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:2 8.25 -byte* main::cursor#2 cursor zp[2]:2 11.0 -byte* main::cursor#3 cursor zp[2]:2 11.0 -byte* main::cursor#5 cursor zp[2]:2 16.5 -byte main::e -byte main::e#1 reg byte x 11.0 -byte main::e#2 reg byte x 22.0 -byte main::e#3 reg byte x 5.5 -byte main::e#5 reg byte x 16.5 -byte main::x -byte main::x#1 x zp[1]:4 3.666666666666667 -byte main::x#2 x zp[1]:4 11.0 -constant byte main::x0 = 4 -constant byte main::x1 = $27 -byte main::xd -constant byte main::xd#0 xd = main::x1-main::x0 -byte main::y -byte main::y#1 y zp[1]:5 7.333333333333333 -byte main::y#2 y zp[1]:5 5.5 -byte main::y#4 y zp[1]:5 16.5 -constant byte main::y0 = 4 -constant byte main::y1 = $18 -byte main::yd -constant byte main::yd#0 yd = main::y1-main::y0 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:2 8.25 +char *main::cursor#2 // cursor zp[2]:2 11.0 +char *main::cursor#3 // cursor zp[2]:2 11.0 +char *main::cursor#5 // cursor zp[2]:2 16.5 +char main::e +char main::e#1 // reg byte x 11.0 +char main::e#2 // reg byte x 22.0 +char main::e#3 // reg byte x 5.5 +char main::e#5 // reg byte x 16.5 +char main::x +char main::x#1 // x zp[1]:4 3.666666666666667 +char main::x#2 // x zp[1]:4 11.0 +__constant char main::x0 = 4 +__constant char main::x1 = $27 +char main::xd +__constant char main::xd#0 = main::x1-main::x0 // xd +char main::y +char main::y#1 // y zp[1]:5 7.333333333333333 +char main::y#2 // y zp[1]:5 5.5 +char main::y#4 // y zp[1]:5 16.5 +__constant char main::y0 = 4 +__constant char main::y1 = $18 +char main::yd +__constant char main::yd#0 = main::y1-main::y0 // yd zp[2]:2 [ main::cursor#3 main::cursor#5 main::cursor#1 main::cursor#2 ] zp[1]:4 [ main::x#2 main::x#1 ] diff --git a/src/test/ref/bresenham.sym b/src/test/ref/bresenham.sym index 4a5655ca5..f4ba725d5 100644 --- a/src/test/ref/bresenham.sym +++ b/src/test/ref/bresenham.sym @@ -1,31 +1,31 @@ -constant byte* SCREEN[$28*$19] = (byte*) 1024 -constant byte STAR = $51 +__constant char SCREEN[$28*$19] = (char *) 1024 +__constant char STAR = $51 void main() -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:2 8.25 -byte* main::cursor#2 cursor zp[2]:2 11.0 -byte* main::cursor#3 cursor zp[2]:2 11.0 -byte* main::cursor#5 cursor zp[2]:2 16.5 -byte main::e -byte main::e#1 reg byte x 11.0 -byte main::e#2 reg byte x 22.0 -byte main::e#3 reg byte x 5.5 -byte main::e#5 reg byte x 16.5 -byte main::x -byte main::x#1 x zp[1]:4 3.666666666666667 -byte main::x#2 x zp[1]:4 11.0 -constant byte main::x0 = 4 -constant byte main::x1 = $27 -byte main::xd -constant byte main::xd#0 xd = main::x1-main::x0 -byte main::y -byte main::y#1 y zp[1]:5 7.333333333333333 -byte main::y#2 y zp[1]:5 5.5 -byte main::y#4 y zp[1]:5 16.5 -constant byte main::y0 = 4 -constant byte main::y1 = $18 -byte main::yd -constant byte main::yd#0 yd = main::y1-main::y0 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:2 8.25 +char *main::cursor#2 // cursor zp[2]:2 11.0 +char *main::cursor#3 // cursor zp[2]:2 11.0 +char *main::cursor#5 // cursor zp[2]:2 16.5 +char main::e +char main::e#1 // reg byte x 11.0 +char main::e#2 // reg byte x 22.0 +char main::e#3 // reg byte x 5.5 +char main::e#5 // reg byte x 16.5 +char main::x +char main::x#1 // x zp[1]:4 3.666666666666667 +char main::x#2 // x zp[1]:4 11.0 +__constant char main::x0 = 4 +__constant char main::x1 = $27 +char main::xd +__constant char main::xd#0 = main::x1-main::x0 // xd +char main::y +char main::y#1 // y zp[1]:5 7.333333333333333 +char main::y#2 // y zp[1]:5 5.5 +char main::y#4 // y zp[1]:5 16.5 +__constant char main::y0 = 4 +__constant char main::y1 = $18 +char main::yd +__constant char main::yd#0 = main::y1-main::y0 // yd zp[2]:2 [ main::cursor#3 main::cursor#5 main::cursor#1 main::cursor#2 ] zp[1]:4 [ main::x#2 main::x#1 ] diff --git a/src/test/ref/bresenhamarr.log b/src/test/ref/bresenhamarr.log index 4b819d15b..069e41269 100644 --- a/src/test/ref/bresenhamarr.log +++ b/src/test/ref/bresenhamarr.log @@ -64,7 +64,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -75,59 +75,59 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$10 -number~ main::$11 -byte~ main::$12 -number~ main::$13 -bool~ main::$14 -number~ main::$3 -number~ main::$5 -number~ main::$6 -byte~ main::$7 -bool~ main::$8 -bool~ main::$9 -constant byte main::STAR = $51 -byte main::e -byte main::e#0 -byte main::e#1 -byte main::e#2 -byte main::e#3 -byte main::e#4 -byte main::e#5 -word main::idx -word main::idx#0 -word main::idx#1 -word main::idx#2 -word main::idx#3 -word main::idx#4 -word main::idx#5 -constant byte* main::screen[$28*$19] = (byte*)$400 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -constant byte main::x0 = 0 -constant byte main::x1 = $27 -byte main::xd -byte main::xd#0 -byte main::xd#1 -byte main::xd#2 -byte main::xd#3 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -constant byte main::y0 = 0 -constant byte main::y1 = $18 -byte main::yd -byte main::yd#0 -byte main::yd#1 -byte main::yd#2 -byte main::yd#3 +number main::$10 +number main::$11 +char main::$12 +number main::$13 +bool main::$14 +number main::$3 +number main::$5 +number main::$6 +char main::$7 +bool main::$8 +bool main::$9 +__constant char main::STAR = $51 +char main::e +char main::e#0 +char main::e#1 +char main::e#2 +char main::e#3 +char main::e#4 +char main::e#5 +unsigned int main::idx +unsigned int main::idx#0 +unsigned int main::idx#1 +unsigned int main::idx#2 +unsigned int main::idx#3 +unsigned int main::idx#4 +unsigned int main::idx#5 +__constant char main::screen[$28*$19] = (char *)$400 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +__constant char main::x0 = 0 +__constant char main::x1 = $27 +char main::xd +char main::xd#0 +char main::xd#1 +char main::xd#2 +char main::xd#3 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +__constant char main::y0 = 0 +__constant char main::y1 = $18 +char main::yd +char main::yd#0 +char main::yd#1 +char main::yd#2 +char main::yd#3 Adding number conversion cast (unumber) 2 in main::e#0 = main::yd#0 / 2 Adding number conversion cast (unumber) $28 in main::$3 = main::y#0 * $28 @@ -143,7 +143,7 @@ Adding number conversion cast (unumber) main::$10 in main::$10 = main::y#2 + (un Adding number conversion cast (unumber) $28 in main::$11 = main::idx#4 + $28 Adding number conversion cast (unumber) main::$11 in main::$11 = main::idx#4 + (unumber)$28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast $28 Simplifying constant integer cast 1 @@ -152,20 +152,20 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$3 = main::y#0 * $28 -Inferred type updated to byte in main::$5 = main::x#2 + 1 -Inferred type updated to word in main::$6 = main::idx#3 + 1 -Inferred type updated to byte in main::$13 = main::x1 + 1 -Inferred type updated to byte in main::$10 = main::y#2 + 1 -Inferred type updated to word in main::$11 = main::idx#4 + $28 +Inferred type updated to char in main::$3 = main::y#0 * $28 +Inferred type updated to char in main::$5 = main::x#2 + 1 +Inferred type updated to unsigned int in main::$6 = main::idx#3 + 1 +Inferred type updated to char in main::$13 = main::x1 + 1 +Inferred type updated to char in main::$10 = main::y#2 + 1 +Inferred type updated to unsigned int in main::$11 = main::idx#4 + $28 Inversing boolean not [16] main::$9 = main::xd#1 >= main::e#1 from [15] main::$8 = main::xd#1 < main::e#1 Successful SSA optimization Pass2UnaryNotSimplification Alias main::x#1 = main::$5 main::x#4 @@ -231,8 +231,8 @@ Constant inlined main::xd#0 = main::x1 Constant inlined main::e#0 = main::y1/2 Constant inlined main::yd#0 = main::y1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@2 and main::@1) Added new block during phi lifting main::@5(between main::@1 and main::@2) @@ -291,26 +291,26 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$15 22.0 -byte main::e -byte main::e#1 11.0 -byte main::e#2 22.0 -byte main::e#3 4.4 -byte main::e#5 16.5 -word main::idx -word main::idx#1 8.25 -word main::idx#2 11.0 -word main::idx#3 8.25 -word main::idx#5 16.5 -byte main::x -byte main::x#1 3.666666666666667 -byte main::x#2 7.333333333333333 -byte main::xd -byte main::y -byte main::y#1 7.333333333333333 -byte main::y#2 4.714285714285714 -byte main::y#4 16.5 -byte main::yd +char *main::$15 // 22.0 +char main::e +char main::e#1 // 11.0 +char main::e#2 // 22.0 +char main::e#3 // 4.4 +char main::e#5 // 16.5 +unsigned int main::idx +unsigned int main::idx#1 // 8.25 +unsigned int main::idx#2 // 11.0 +unsigned int main::idx#3 // 8.25 +unsigned int main::idx#5 // 16.5 +char main::x +char main::x#1 // 3.666666666666667 +char main::x#2 // 7.333333333333333 +char main::xd +char main::y +char main::y#1 // 7.333333333333333 +char main::y#2 // 4.714285714285714 +char main::y#4 // 16.5 +char main::yd Initial phi equivalence classes [ main::idx#3 main::idx#5 main::idx#1 main::idx#2 ] @@ -506,32 +506,32 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte*~ main::$15 zp[2]:6 22.0 -constant byte main::STAR = $51 -byte main::e -byte main::e#1 reg byte x 11.0 -byte main::e#2 reg byte x 22.0 -byte main::e#3 reg byte x 4.4 -byte main::e#5 reg byte x 16.5 -word main::idx -word main::idx#1 idx zp[2]:2 8.25 -word main::idx#2 idx zp[2]:2 11.0 -word main::idx#3 idx zp[2]:2 8.25 -word main::idx#5 idx zp[2]:2 16.5 -constant byte* main::screen[$28*$19] = (byte*) 1024 -byte main::x -byte main::x#1 x zp[1]:4 3.666666666666667 -byte main::x#2 x zp[1]:4 7.333333333333333 -constant byte main::x0 = 0 -constant byte main::x1 = $27 -byte main::xd -byte main::y -byte main::y#1 y zp[1]:5 7.333333333333333 -byte main::y#2 y zp[1]:5 4.714285714285714 -byte main::y#4 y zp[1]:5 16.5 -constant byte main::y0 = 0 -constant byte main::y1 = $18 -byte main::yd +char *main::$15 // zp[2]:6 22.0 +__constant char main::STAR = $51 +char main::e +char main::e#1 // reg byte x 11.0 +char main::e#2 // reg byte x 22.0 +char main::e#3 // reg byte x 4.4 +char main::e#5 // reg byte x 16.5 +unsigned int main::idx +unsigned int main::idx#1 // idx zp[2]:2 8.25 +unsigned int main::idx#2 // idx zp[2]:2 11.0 +unsigned int main::idx#3 // idx zp[2]:2 8.25 +unsigned int main::idx#5 // idx zp[2]:2 16.5 +__constant char main::screen[$28*$19] = (char *) 1024 +char main::x +char main::x#1 // x zp[1]:4 3.666666666666667 +char main::x#2 // x zp[1]:4 7.333333333333333 +__constant char main::x0 = 0 +__constant char main::x1 = $27 +char main::xd +char main::y +char main::y#1 // y zp[1]:5 7.333333333333333 +char main::y#2 // y zp[1]:5 4.714285714285714 +char main::y#4 // y zp[1]:5 16.5 +__constant char main::y0 = 0 +__constant char main::y1 = $18 +char main::yd zp[2]:2 [ main::idx#3 main::idx#5 main::idx#1 main::idx#2 ] zp[1]:4 [ main::x#2 main::x#1 ] diff --git a/src/test/ref/bresenhamarr.sym b/src/test/ref/bresenhamarr.sym index f0b6d9d66..ba8c8f2a3 100644 --- a/src/test/ref/bresenhamarr.sym +++ b/src/test/ref/bresenhamarr.sym @@ -1,30 +1,30 @@ void main() -byte*~ main::$15 zp[2]:6 22.0 -constant byte main::STAR = $51 -byte main::e -byte main::e#1 reg byte x 11.0 -byte main::e#2 reg byte x 22.0 -byte main::e#3 reg byte x 4.4 -byte main::e#5 reg byte x 16.5 -word main::idx -word main::idx#1 idx zp[2]:2 8.25 -word main::idx#2 idx zp[2]:2 11.0 -word main::idx#3 idx zp[2]:2 8.25 -word main::idx#5 idx zp[2]:2 16.5 -constant byte* main::screen[$28*$19] = (byte*) 1024 -byte main::x -byte main::x#1 x zp[1]:4 3.666666666666667 -byte main::x#2 x zp[1]:4 7.333333333333333 -constant byte main::x0 = 0 -constant byte main::x1 = $27 -byte main::xd -byte main::y -byte main::y#1 y zp[1]:5 7.333333333333333 -byte main::y#2 y zp[1]:5 4.714285714285714 -byte main::y#4 y zp[1]:5 16.5 -constant byte main::y0 = 0 -constant byte main::y1 = $18 -byte main::yd +char *main::$15 // zp[2]:6 22.0 +__constant char main::STAR = $51 +char main::e +char main::e#1 // reg byte x 11.0 +char main::e#2 // reg byte x 22.0 +char main::e#3 // reg byte x 4.4 +char main::e#5 // reg byte x 16.5 +unsigned int main::idx +unsigned int main::idx#1 // idx zp[2]:2 8.25 +unsigned int main::idx#2 // idx zp[2]:2 11.0 +unsigned int main::idx#3 // idx zp[2]:2 8.25 +unsigned int main::idx#5 // idx zp[2]:2 16.5 +__constant char main::screen[$28*$19] = (char *) 1024 +char main::x +char main::x#1 // x zp[1]:4 3.666666666666667 +char main::x#2 // x zp[1]:4 7.333333333333333 +__constant char main::x0 = 0 +__constant char main::x1 = $27 +char main::xd +char main::y +char main::y#1 // y zp[1]:5 7.333333333333333 +char main::y#2 // y zp[1]:5 4.714285714285714 +char main::y#4 // y zp[1]:5 16.5 +__constant char main::y0 = 0 +__constant char main::y1 = $18 +char main::yd zp[2]:2 [ main::idx#3 main::idx#5 main::idx#1 main::idx#2 ] zp[1]:4 [ main::x#2 main::x#1 ] diff --git a/src/test/ref/c-types.asm b/src/test/ref/c-types.asm index dca58f9ef..d15529e68 100644 --- a/src/test/ref/c-types.asm +++ b/src/test/ref/c-types.asm @@ -227,6 +227,7 @@ testLong: { } .segment Code // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -260,7 +261,7 @@ memset: { jmp __b1 } // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 __b1: @@ -284,7 +285,7 @@ print_str: { jmp __b1 } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -307,7 +308,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -321,6 +322,7 @@ print_char: { rts } // Print a signed char as HEX +// void print_schar(signed char b) print_schar: { .const b = -testChar.s // print_char('-') @@ -356,7 +358,7 @@ print_ln: { rts } // Print a unsigned int as HEX -// print_uint(word zp(6) w) +// void print_uint(__zp(6) unsigned int w) print_uint: { .label w = 6 // print_uchar(BYTE1(w)) @@ -369,7 +371,7 @@ print_uint: { rts } // Print a signed int as HEX -// print_sint(signed word zp(6) w) +// void print_sint(__zp(6) int w) print_sint: { .label w = 6 // if(w<0) @@ -398,7 +400,7 @@ print_sint: { jmp __b2 } // Print a unsigned long as HEX -// print_ulong(dword zp(8) dw) +// void print_ulong(__zp(8) unsigned long dw) print_ulong: { .label dw = 8 // print_uint(WORD1(dw)) @@ -417,7 +419,7 @@ print_ulong: { rts } // Print a signed long as HEX -// print_slong(signed dword zp(8) dw) +// void print_slong(__zp(8) long dw) print_slong: { .label dw = 8 // if(dw<0) diff --git a/src/test/ref/c-types.cfg b/src/test/ref/c-types.cfg index 7d7a73731..f59d30768 100644 --- a/src/test/ref/c-types.cfg +++ b/src/test/ref/c-types.cfg @@ -2,23 +2,23 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call testChar + [3] call testChar to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call testShort + [5] call testShort to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call testInt + [7] call testInt to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call testLong + [9] call testLong to:main::@return main::@return: scope:[main] from main::@4 [10] return @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@4 void print_cls() print_cls: scope:[print_cls] from main [11] phi() - [12] call memset + [12] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [13] return @@ -36,31 +36,31 @@ print_cls::@return: scope:[print_cls] from print_cls void testChar() testChar: scope:[testChar] from main::@1 [14] phi() - [15] call print_str + [15] call print_str to:testChar::@1 testChar::@1: scope:[testChar] from testChar [16] phi() - [17] call print_uchar + [17] call print_uchar to:testChar::@2 testChar::@2: scope:[testChar] from testChar::@1 [18] phi() - [19] call print_char + [19] call print_char to:testChar::@3 testChar::@3: scope:[testChar] from testChar::@2 [20] phi() - [21] call print_uchar + [21] call print_uchar to:testChar::@4 testChar::@4: scope:[testChar] from testChar::@3 [22] phi() - [23] call print_char + [23] call print_char to:testChar::@5 testChar::@5: scope:[testChar] from testChar::@4 [24] phi() - [25] call print_schar + [25] call print_schar to:testChar::@6 testChar::@6: scope:[testChar] from testChar::@5 [26] phi() - [27] call print_ln + [27] call print_ln to:testChar::@return testChar::@return: scope:[testChar] from testChar::@6 [28] return @@ -69,31 +69,31 @@ testChar::@return: scope:[testChar] from testChar::@6 void testShort() testShort: scope:[testShort] from main::@2 [29] print_char_cursor#165 = print_line_cursor#0 - [30] call print_str + [30] call print_str to:testShort::@1 testShort::@1: scope:[testShort] from testShort [31] phi() - [32] call print_uint + [32] call print_uint to:testShort::@2 testShort::@2: scope:[testShort] from testShort::@1 [33] phi() - [34] call print_char + [34] call print_char to:testShort::@3 testShort::@3: scope:[testShort] from testShort::@2 [35] phi() - [36] call print_sint + [36] call print_sint to:testShort::@4 testShort::@4: scope:[testShort] from testShort::@3 [37] phi() - [38] call print_char + [38] call print_char to:testShort::@5 testShort::@5: scope:[testShort] from testShort::@4 [39] phi() - [40] call print_sint + [40] call print_sint to:testShort::@6 testShort::@6: scope:[testShort] from testShort::@5 [41] phi() - [42] call print_ln + [42] call print_ln to:testShort::@return testShort::@return: scope:[testShort] from testShort::@6 [43] return @@ -102,31 +102,31 @@ testShort::@return: scope:[testShort] from testShort::@6 void testInt() testInt: scope:[testInt] from main::@3 [44] print_char_cursor#163 = print_line_cursor#0 - [45] call print_str + [45] call print_str to:testInt::@1 testInt::@1: scope:[testInt] from testInt [46] phi() - [47] call print_uint + [47] call print_uint to:testInt::@2 testInt::@2: scope:[testInt] from testInt::@1 [48] phi() - [49] call print_char + [49] call print_char to:testInt::@3 testInt::@3: scope:[testInt] from testInt::@2 [50] phi() - [51] call print_sint + [51] call print_sint to:testInt::@4 testInt::@4: scope:[testInt] from testInt::@3 [52] phi() - [53] call print_char + [53] call print_char to:testInt::@5 testInt::@5: scope:[testInt] from testInt::@4 [54] phi() - [55] call print_sint + [55] call print_sint to:testInt::@6 testInt::@6: scope:[testInt] from testInt::@5 [56] phi() - [57] call print_ln + [57] call print_ln to:testInt::@return testInt::@return: scope:[testInt] from testInt::@6 [58] return @@ -135,42 +135,42 @@ testInt::@return: scope:[testInt] from testInt::@6 void testLong() testLong: scope:[testLong] from main::@4 [59] print_char_cursor#164 = print_line_cursor#0 - [60] call print_str + [60] call print_str to:testLong::@1 testLong::@1: scope:[testLong] from testLong [61] phi() - [62] call print_ulong + [62] call print_ulong to:testLong::@2 testLong::@2: scope:[testLong] from testLong::@1 [63] phi() - [64] call print_char + [64] call print_char to:testLong::@3 testLong::@3: scope:[testLong] from testLong::@2 [65] phi() - [66] call print_slong + [66] call print_slong to:testLong::@4 testLong::@4: scope:[testLong] from testLong::@3 [67] phi() - [68] call print_char + [68] call print_char to:testLong::@5 testLong::@5: scope:[testLong] from testLong::@4 [69] phi() - [70] call print_slong + [70] call print_slong to:testLong::@6 testLong::@6: scope:[testLong] from testLong::@5 [71] phi() - [72] call print_ln + [72] call print_ln to:testLong::@return testLong::@return: scope:[testLong] from testLong::@6 [73] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [74] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [75] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [75] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [76] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -181,7 +181,7 @@ memset::@2: scope:[memset] from memset::@1 [79] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from testChar testInt testLong testShort [80] print_char_cursor#159 = phi( testChar/print_screen#0, testInt/print_char_cursor#163, testLong/print_char_cursor#164, testShort/print_char_cursor#165 ) [80] print_str::str#8 = phi( testChar/testChar::str, testInt/testInt::str, testLong/testLong::str, testShort/testShort::str ) @@ -196,30 +196,30 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [84] print_char::ch#0 = *print_str::str#5 - [85] call print_char + [85] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [86] print_str::str#0 = ++ print_str::str#5 to:print_str::@1 -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_schar::@2 print_uint print_uint::@1 testChar::@1 testChar::@3 [87] print_char_cursor#152 = phi( print_schar::@2/print_char_cursor#25, print_uint/print_char_cursor#147, print_uint::@1/print_char_cursor#25, testChar::@1/print_char_cursor#1, testChar::@3/print_char_cursor#25 ) - [87] print_uchar::b#5 = phi( print_schar::@2/(byte)print_schar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/testChar::u, testChar::@3/testChar::n ) + [87] print_uchar::b#5 = phi( print_schar::@2/(char)print_schar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/testChar::u, testChar::@3/testChar::n ) [88] print_uchar::$0 = print_uchar::b#5 >> 4 [89] print_char::ch#7 = print_hextab[print_uchar::$0] - [90] call print_char + [90] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [91] print_uchar::$2 = print_uchar::b#5 & $f [92] print_char::ch#8 = print_hextab[print_uchar::$2] - [93] call print_char + [93] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [94] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_schar::@1 print_sint::@1 print_sint::@3 print_slong::@1 print_slong::@3 print_str::@2 print_uchar print_uchar::@1 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4 [95] print_char_cursor#95 = phi( print_schar::@1/print_char_cursor#25, print_sint::@1/print_char_cursor#25, print_sint::@3/print_char_cursor#25, print_slong::@1/print_char_cursor#25, print_slong::@3/print_char_cursor#25, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#152, print_uchar::@1/print_char_cursor#25, testChar::@2/print_char_cursor#25, testChar::@4/print_char_cursor#25, testInt::@2/print_char_cursor#25, testInt::@4/print_char_cursor#25, testLong::@2/print_char_cursor#25, testLong::@4/print_char_cursor#25, testShort::@2/print_char_cursor#25, testShort::@4/print_char_cursor#25 ) [95] print_char::ch#17 = phi( print_schar::@1/'-', print_sint::@1/'-', print_sint::@3/' ', print_slong::@1/'-', print_slong::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#7, print_uchar::@1/print_char::ch#8, testChar::@2/' ', testChar::@4/' ', testInt::@2/' ', testInt::@4/' ', testLong::@2/' ', testLong::@4/' ', testShort::@2/' ', testShort::@4/' ' ) @@ -230,17 +230,17 @@ print_char::@return: scope:[print_char] from print_char [98] return to:@return -void print_schar(signed byte print_schar::b) +void print_schar(signed char b) print_schar: scope:[print_schar] from testChar::@5 [99] phi() to:print_schar::@1 print_schar::@1: scope:[print_schar] from print_schar [100] phi() - [101] call print_char + [101] call print_char to:print_schar::@2 print_schar::@2: scope:[print_schar] from print_schar::@1 [102] phi() - [103] call print_uchar + [103] call print_uchar to:print_schar::@return print_schar::@return: scope:[print_schar] from print_schar::@2 [104] return @@ -259,81 +259,81 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [109] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_ulong print_ulong::@1 testInt::@1 testShort::@1 [110] print_char_cursor#147 = phi( print_sint::@2/print_char_cursor#25, print_ulong/print_char_cursor#148, print_ulong::@1/print_char_cursor#25, testInt::@1/print_char_cursor#1, testShort::@1/print_char_cursor#1 ) [110] print_uint::w#5 = phi( print_sint::@2/print_uint::w#0, print_ulong/print_uint::w#1, print_ulong::@1/print_uint::w#2, testInt::@1/testInt::u, testShort::@1/testShort::u ) [111] print_uchar::b#1 = byte1 print_uint::w#5 - [112] call print_uchar + [112] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [113] print_uchar::b#2 = byte0 print_uint::w#5 - [114] call print_uchar + [114] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [115] return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from testInt::@3 testInt::@5 testShort::@3 testShort::@5 [116] print_sint::w#10 = phi( testInt::@3/testInt::n, testInt::@5/testInt::s, testShort::@3/testShort::n, testShort::@5/testShort::s ) [117] if(print_sint::w#10<0) goto print_sint::@1 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [118] phi() - [119] call print_char + [119] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [120] print_sint::w#7 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#10 ) - [121] print_uint::w#0 = (word)print_sint::w#7 - [122] call print_uint + [121] print_uint::w#0 = (unsigned int)print_sint::w#7 + [122] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [123] return to:@return print_sint::@1: scope:[print_sint] from print_sint [124] phi() - [125] call print_char + [125] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [126] print_sint::w#0 = - print_sint::w#10 to:print_sint::@2 -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from print_slong::@2 testLong::@1 [127] print_char_cursor#148 = phi( print_slong::@2/print_char_cursor#25, testLong::@1/print_char_cursor#1 ) [127] print_ulong::dw#2 = phi( print_slong::@2/print_ulong::dw#0, testLong::@1/testLong::u ) [128] print_uint::w#1 = word1 print_ulong::dw#2 - [129] call print_uint + [129] call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong [130] print_uint::w#2 = word0 print_ulong::dw#2 - [131] call print_uint + [131] call print_uint to:print_ulong::@return print_ulong::@return: scope:[print_ulong] from print_ulong::@1 [132] return to:@return -void print_slong(signed dword print_slong::dw) +void print_slong(long dw) print_slong: scope:[print_slong] from testLong::@3 testLong::@5 [133] print_slong::dw#3 = phi( testLong::@3/testLong::n, testLong::@5/testLong::s ) [134] if(print_slong::dw#3<0) goto print_slong::@1 to:print_slong::@3 print_slong::@3: scope:[print_slong] from print_slong [135] phi() - [136] call print_char + [136] call print_char to:print_slong::@2 print_slong::@2: scope:[print_slong] from print_slong::@3 print_slong::@4 [137] print_slong::dw#5 = phi( print_slong::@4/print_slong::dw#0, print_slong::@3/print_slong::dw#3 ) - [138] print_ulong::dw#0 = (dword)print_slong::dw#5 - [139] call print_ulong + [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5 + [139] call print_ulong to:print_slong::@return print_slong::@return: scope:[print_slong] from print_slong::@2 [140] return to:@return print_slong::@1: scope:[print_slong] from print_slong [141] phi() - [142] call print_char + [142] call print_char to:print_slong::@4 print_slong::@4: scope:[print_slong] from print_slong::@1 [143] print_slong::dw#0 = - print_slong::dw#3 diff --git a/src/test/ref/c-types.log b/src/test/ref/c-types.log index e4fd68c51..3cf986632 100644 --- a/src/test/ref/c-types.log +++ b/src/test/ref/c-types.log @@ -1,9 +1,9 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from testChar testInt testLong testShort print_char_cursor#159 = phi( testChar/print_char_cursor#154, testInt/print_char_cursor#156, testLong/print_char_cursor#157, testShort/print_char_cursor#155 ) print_str::str#8 = phi( testChar/print_str::str#1, testInt/print_str::str#3, testLong/print_str::str#4, testShort/print_str::str#2 ) @@ -18,7 +18,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#138 = phi( print_str::@1/print_char_cursor#139 ) print_str::str#6 = phi( print_str::@1/print_str::str#5 ) print_char::ch#0 = *print_str::str#6 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#7 = phi( print_str::@2/print_str::str#6 ) @@ -57,7 +57,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from testInt::@3 testInt::@5 testShort::@3 testShort::@5 print_char_cursor#160 = phi( testInt::@3/print_char_cursor#53, testInt::@5/print_char_cursor#55, testShort::@3/print_char_cursor#45, testShort::@5/print_char_cursor#47 ) print_sint::w#5 = phi( testInt::@3/print_sint::w#3, testInt::@5/print_sint::w#4, testShort::@3/print_sint::w#1, testShort::@5/print_sint::w#2 ) @@ -68,7 +68,7 @@ print_sint::@1: scope:[print_sint] from print_sint print_sint::w#8 = phi( print_sint/print_sint::w#5 ) print_char_cursor#141 = phi( print_sint/print_char_cursor#160 ) print_char::ch#1 = '-' - call print_char + call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 print_sint::w#6 = phi( print_sint::@1/print_sint::w#8 ) @@ -81,7 +81,7 @@ print_sint::@3: scope:[print_sint] from print_sint print_sint::w#10 = phi( print_sint/print_sint::w#5 ) print_char_cursor#142 = phi( print_sint/print_char_cursor#160 ) print_char::ch#2 = ' ' - call print_char + call print_char to:print_sint::@5 print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::w#9 = phi( print_sint::@3/print_sint::w#10 ) @@ -91,8 +91,8 @@ print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::@2: scope:[print_sint] from print_sint::@4 print_sint::@5 print_char_cursor#143 = phi( print_sint::@4/print_char_cursor#4, print_sint::@5/print_char_cursor#5 ) print_sint::w#7 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#9 ) - print_uint::w#0 = (word)print_sint::w#7 - call print_uint + print_uint::w#0 = (unsigned int)print_sint::w#7 + call print_uint to:print_sint::@6 print_sint::@6: scope:[print_sint] from print_sint::@2 print_char_cursor#76 = phi( print_sint::@2/print_char_cursor#14 ) @@ -104,7 +104,7 @@ print_sint::@return: scope:[print_sint] from print_sint::@6 return to:@return -void print_schar(signed byte print_schar::b) +void print_schar(signed char b) print_schar: scope:[print_schar] from testChar::@5 print_char_cursor#161 = phi( testChar::@5/print_char_cursor#39 ) print_schar::b#2 = phi( testChar::@5/print_schar::b#1 ) @@ -115,7 +115,7 @@ print_schar::@1: scope:[print_schar] from print_schar print_schar::b#5 = phi( print_schar/print_schar::b#2 ) print_char_cursor#144 = phi( print_schar/print_char_cursor#161 ) print_char::ch#3 = '-' - call print_char + call print_char to:print_schar::@4 print_schar::@4: scope:[print_schar] from print_schar::@1 print_schar::b#3 = phi( print_schar::@1/print_schar::b#5 ) @@ -128,7 +128,7 @@ print_schar::@3: scope:[print_schar] from print_schar print_schar::b#7 = phi( print_schar/print_schar::b#2 ) print_char_cursor#145 = phi( print_schar/print_char_cursor#161 ) print_char::ch#4 = ' ' - call print_char + call print_char to:print_schar::@5 print_schar::@5: scope:[print_schar] from print_schar::@3 print_schar::b#6 = phi( print_schar::@3/print_schar::b#7 ) @@ -138,8 +138,8 @@ print_schar::@5: scope:[print_schar] from print_schar::@3 print_schar::@2: scope:[print_schar] from print_schar::@4 print_schar::@5 print_char_cursor#146 = phi( print_schar::@4/print_char_cursor#8, print_schar::@5/print_char_cursor#9 ) print_schar::b#4 = phi( print_schar::@4/print_schar::b#0, print_schar::@5/print_schar::b#6 ) - print_uchar::b#0 = (byte)print_schar::b#4 - call print_uchar + print_uchar::b#0 = (char)print_schar::b#4 + call print_uchar to:print_schar::@6 print_schar::@6: scope:[print_schar] from print_schar::@2 print_char_cursor#80 = phi( print_schar::@2/print_char_cursor#24 ) @@ -151,13 +151,13 @@ print_schar::@return: scope:[print_schar] from print_schar::@6 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_ulong print_ulong::@1 testInt::@1 testShort::@1 print_char_cursor#147 = phi( print_sint::@2/print_char_cursor#143, print_ulong/print_char_cursor#148, print_ulong::@1/print_char_cursor#15, testInt::@1/print_char_cursor#51, testShort::@1/print_char_cursor#43 ) print_uint::w#5 = phi( print_sint::@2/print_uint::w#0, print_ulong/print_uint::w#1, print_ulong::@1/print_uint::w#2, testInt::@1/print_uint::w#4, testShort::@1/print_uint::w#3 ) print_uint::$0 = byte1 print_uint::w#5 print_uchar::b#1 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#6 = phi( print_uint/print_uint::w#5 ) @@ -165,7 +165,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#12 = print_char_cursor#82 print_uint::$2 = byte0 print_uint::w#6 print_uchar::b#2 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#83 = phi( print_uint::@1/print_char_cursor#24 ) @@ -177,13 +177,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from print_slong::@2 testLong::@1 print_char_cursor#148 = phi( print_slong::@2/print_char_cursor#151, testLong::@1/print_char_cursor#59 ) print_ulong::dw#2 = phi( print_slong::@2/print_ulong::dw#0, testLong::@1/print_ulong::dw#1 ) print_ulong::$0 = word1 print_ulong::dw#2 print_uint::w#1 = print_ulong::$0 - call print_uint + call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong print_ulong::dw#3 = phi( print_ulong/print_ulong::dw#2 ) @@ -191,7 +191,7 @@ print_ulong::@1: scope:[print_ulong] from print_ulong print_char_cursor#15 = print_char_cursor#85 print_ulong::$2 = word0 print_ulong::dw#3 print_uint::w#2 = print_ulong::$2 - call print_uint + call print_uint to:print_ulong::@2 print_ulong::@2: scope:[print_ulong] from print_ulong::@1 print_char_cursor#86 = phi( print_ulong::@1/print_char_cursor#14 ) @@ -203,7 +203,7 @@ print_ulong::@return: scope:[print_ulong] from print_ulong::@2 return to:@return -void print_slong(signed dword print_slong::dw) +void print_slong(long dw) print_slong: scope:[print_slong] from testLong::@3 testLong::@5 print_char_cursor#162 = phi( testLong::@3/print_char_cursor#61, testLong::@5/print_char_cursor#63 ) print_slong::dw#3 = phi( testLong::@3/print_slong::dw#1, testLong::@5/print_slong::dw#2 ) @@ -214,7 +214,7 @@ print_slong::@1: scope:[print_slong] from print_slong print_slong::dw#6 = phi( print_slong/print_slong::dw#3 ) print_char_cursor#149 = phi( print_slong/print_char_cursor#162 ) print_char::ch#5 = '-' - call print_char + call print_char to:print_slong::@4 print_slong::@4: scope:[print_slong] from print_slong::@1 print_slong::dw#4 = phi( print_slong::@1/print_slong::dw#6 ) @@ -227,7 +227,7 @@ print_slong::@3: scope:[print_slong] from print_slong print_slong::dw#8 = phi( print_slong/print_slong::dw#3 ) print_char_cursor#150 = phi( print_slong/print_char_cursor#162 ) print_char::ch#6 = ' ' - call print_char + call print_char to:print_slong::@5 print_slong::@5: scope:[print_slong] from print_slong::@3 print_slong::dw#7 = phi( print_slong::@3/print_slong::dw#8 ) @@ -237,8 +237,8 @@ print_slong::@5: scope:[print_slong] from print_slong::@3 print_slong::@2: scope:[print_slong] from print_slong::@4 print_slong::@5 print_char_cursor#151 = phi( print_slong::@4/print_char_cursor#18, print_slong::@5/print_char_cursor#19 ) print_slong::dw#5 = phi( print_slong::@4/print_slong::dw#0, print_slong::@5/print_slong::dw#7 ) - print_ulong::dw#0 = (dword)print_slong::dw#5 - call print_ulong + print_ulong::dw#0 = (unsigned long)print_slong::dw#5 + call print_ulong to:print_slong::@6 print_slong::@6: scope:[print_slong] from print_slong::@2 print_char_cursor#90 = phi( print_slong::@2/print_char_cursor#17 ) @@ -250,13 +250,13 @@ print_slong::@return: scope:[print_slong] from print_slong::@6 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_schar::@2 print_uint print_uint::@1 testChar::@1 testChar::@3 print_char_cursor#152 = phi( print_schar::@2/print_char_cursor#146, print_uint/print_char_cursor#147, print_uint::@1/print_char_cursor#12, testChar::@1/print_char_cursor#35, testChar::@3/print_char_cursor#37 ) print_uchar::b#5 = phi( print_schar::@2/print_uchar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/print_uchar::b#3, testChar::@3/print_uchar::b#4 ) print_uchar::$0 = print_uchar::b#5 >> 4 print_char::ch#7 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#6 = phi( print_uchar/print_uchar::b#5 ) @@ -264,7 +264,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#22 = print_char_cursor#92 print_uchar::$2 = print_uchar::b#6 & $f print_char::ch#8 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#93 = phi( print_uchar::@1/print_char_cursor#26 ) @@ -276,7 +276,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_sint::@1 print_sint::@3 print_slong::@1 print_slong::@3 print_str::@2 print_uchar print_uchar::@1 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4 print_char_cursor#95 = phi( print_schar::@1/print_char_cursor#144, print_schar::@3/print_char_cursor#145, print_sint::@1/print_char_cursor#141, print_sint::@3/print_char_cursor#142, print_slong::@1/print_char_cursor#149, print_slong::@3/print_char_cursor#150, print_str::@2/print_char_cursor#138, print_uchar/print_char_cursor#152, print_uchar::@1/print_char_cursor#22, testChar::@2/print_char_cursor#36, testChar::@4/print_char_cursor#38, testInt::@2/print_char_cursor#52, testInt::@4/print_char_cursor#54, testLong::@2/print_char_cursor#60, testLong::@4/print_char_cursor#62, testShort::@2/print_char_cursor#44, testShort::@4/print_char_cursor#46 ) print_char::ch#17 = phi( print_schar::@1/print_char::ch#3, print_schar::@3/print_char::ch#4, print_sint::@1/print_char::ch#1, print_sint::@3/print_char::ch#2, print_slong::@1/print_char::ch#5, print_slong::@3/print_char::ch#6, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#7, print_uchar::@1/print_char::ch#8, testChar::@2/print_char::ch#9, testChar::@4/print_char::ch#10, testInt::@2/print_char::ch#13, testInt::@4/print_char::ch#14, testLong::@2/print_char::ch#15, testLong::@4/print_char::ch#16, testShort::@2/print_char::ch#11, testShort::@4/print_char::ch#12 ) @@ -292,10 +292,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -311,7 +311,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -328,9 +328,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -359,35 +359,35 @@ main: scope:[main] from __start::@1 print_char_cursor#153 = phi( __start::@1/print_char_cursor#158 ) print_line_cursor#42 = phi( __start::@1/print_line_cursor#47 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@1 main::@1: scope:[main] from main print_char_cursor#98 = phi( main/print_char_cursor#28 ) print_line_cursor#25 = phi( main/print_line_cursor#3 ) print_line_cursor#4 = print_line_cursor#25 print_char_cursor#29 = print_char_cursor#98 - call testChar + call testChar to:main::@2 main::@2: scope:[main] from main::@1 print_line_cursor#26 = phi( main::@1/print_line_cursor#11 ) print_char_cursor#99 = phi( main::@1/print_char_cursor#42 ) print_char_cursor#30 = print_char_cursor#99 print_line_cursor#5 = print_line_cursor#26 - call testShort + call testShort to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#27 = phi( main::@2/print_line_cursor#13 ) print_char_cursor#100 = phi( main::@2/print_char_cursor#50 ) print_char_cursor#31 = print_char_cursor#100 print_line_cursor#6 = print_line_cursor#27 - call testInt + call testInt to:main::@4 main::@4: scope:[main] from main::@3 print_line_cursor#28 = phi( main::@3/print_line_cursor#15 ) print_char_cursor#101 = phi( main::@3/print_char_cursor#58 ) print_char_cursor#32 = print_char_cursor#101 print_line_cursor#7 = print_line_cursor#28 - call testLong + call testLong to:main::@5 main::@5: scope:[main] from main::@4 print_line_cursor#29 = phi( main::@4/print_line_cursor#17 ) @@ -408,48 +408,48 @@ testChar: scope:[testChar] from main::@1 print_line_cursor#68 = phi( main::@1/print_line_cursor#4 ) print_char_cursor#154 = phi( main::@1/print_char_cursor#29 ) print_str::str#1 = testChar::str - call print_str + call print_str to:testChar::@1 testChar::@1: scope:[testChar] from testChar print_line_cursor#64 = phi( testChar/print_line_cursor#68 ) print_char_cursor#104 = phi( testChar/print_char_cursor#1 ) print_char_cursor#35 = print_char_cursor#104 print_uchar::b#3 = testChar::u - call print_uchar + call print_uchar to:testChar::@2 testChar::@2: scope:[testChar] from testChar::@1 print_line_cursor#60 = phi( testChar::@1/print_line_cursor#64 ) print_char_cursor#105 = phi( testChar::@1/print_char_cursor#24 ) print_char_cursor#36 = print_char_cursor#105 print_char::ch#9 = ' ' - call print_char + call print_char to:testChar::@3 testChar::@3: scope:[testChar] from testChar::@2 print_line_cursor#56 = phi( testChar::@2/print_line_cursor#60 ) print_char_cursor#106 = phi( testChar::@2/print_char_cursor#26 ) print_char_cursor#37 = print_char_cursor#106 print_uchar::b#4 = testChar::n - call print_uchar + call print_uchar to:testChar::@4 testChar::@4: scope:[testChar] from testChar::@3 print_line_cursor#52 = phi( testChar::@3/print_line_cursor#56 ) print_char_cursor#107 = phi( testChar::@3/print_char_cursor#24 ) print_char_cursor#38 = print_char_cursor#107 print_char::ch#10 = ' ' - call print_char + call print_char to:testChar::@5 testChar::@5: scope:[testChar] from testChar::@4 print_line_cursor#48 = phi( testChar::@4/print_line_cursor#52 ) print_char_cursor#108 = phi( testChar::@4/print_char_cursor#26 ) print_char_cursor#39 = print_char_cursor#108 print_schar::b#1 = testChar::s - call print_schar + call print_schar to:testChar::@6 testChar::@6: scope:[testChar] from testChar::@5 print_line_cursor#43 = phi( testChar::@5/print_line_cursor#48 ) print_char_cursor#109 = phi( testChar::@5/print_char_cursor#11 ) print_char_cursor#40 = print_char_cursor#109 - call print_ln + call print_ln to:testChar::@7 testChar::@7: scope:[testChar] from testChar::@6 print_char_cursor#110 = phi( testChar::@6/print_char_cursor#3 ) @@ -470,48 +470,48 @@ testShort: scope:[testShort] from main::@2 print_line_cursor#69 = phi( main::@2/print_line_cursor#5 ) print_char_cursor#155 = phi( main::@2/print_char_cursor#30 ) print_str::str#2 = testShort::str - call print_str + call print_str to:testShort::@1 testShort::@1: scope:[testShort] from testShort print_line_cursor#65 = phi( testShort/print_line_cursor#69 ) print_char_cursor#112 = phi( testShort/print_char_cursor#1 ) print_char_cursor#43 = print_char_cursor#112 print_uint::w#3 = testShort::u - call print_uint + call print_uint to:testShort::@2 testShort::@2: scope:[testShort] from testShort::@1 print_line_cursor#61 = phi( testShort::@1/print_line_cursor#65 ) print_char_cursor#113 = phi( testShort::@1/print_char_cursor#14 ) print_char_cursor#44 = print_char_cursor#113 print_char::ch#11 = ' ' - call print_char + call print_char to:testShort::@3 testShort::@3: scope:[testShort] from testShort::@2 print_line_cursor#57 = phi( testShort::@2/print_line_cursor#61 ) print_char_cursor#114 = phi( testShort::@2/print_char_cursor#26 ) print_char_cursor#45 = print_char_cursor#114 print_sint::w#1 = testShort::n - call print_sint + call print_sint to:testShort::@4 testShort::@4: scope:[testShort] from testShort::@3 print_line_cursor#53 = phi( testShort::@3/print_line_cursor#57 ) print_char_cursor#115 = phi( testShort::@3/print_char_cursor#7 ) print_char_cursor#46 = print_char_cursor#115 print_char::ch#12 = ' ' - call print_char + call print_char to:testShort::@5 testShort::@5: scope:[testShort] from testShort::@4 print_line_cursor#49 = phi( testShort::@4/print_line_cursor#53 ) print_char_cursor#116 = phi( testShort::@4/print_char_cursor#26 ) print_char_cursor#47 = print_char_cursor#116 print_sint::w#2 = testShort::s - call print_sint + call print_sint to:testShort::@6 testShort::@6: scope:[testShort] from testShort::@5 print_line_cursor#44 = phi( testShort::@5/print_line_cursor#49 ) print_char_cursor#117 = phi( testShort::@5/print_char_cursor#7 ) print_char_cursor#48 = print_char_cursor#117 - call print_ln + call print_ln to:testShort::@7 testShort::@7: scope:[testShort] from testShort::@6 print_char_cursor#118 = phi( testShort::@6/print_char_cursor#3 ) @@ -532,48 +532,48 @@ testInt: scope:[testInt] from main::@3 print_line_cursor#70 = phi( main::@3/print_line_cursor#6 ) print_char_cursor#156 = phi( main::@3/print_char_cursor#31 ) print_str::str#3 = testInt::str - call print_str + call print_str to:testInt::@1 testInt::@1: scope:[testInt] from testInt print_line_cursor#66 = phi( testInt/print_line_cursor#70 ) print_char_cursor#120 = phi( testInt/print_char_cursor#1 ) print_char_cursor#51 = print_char_cursor#120 print_uint::w#4 = testInt::u - call print_uint + call print_uint to:testInt::@2 testInt::@2: scope:[testInt] from testInt::@1 print_line_cursor#62 = phi( testInt::@1/print_line_cursor#66 ) print_char_cursor#121 = phi( testInt::@1/print_char_cursor#14 ) print_char_cursor#52 = print_char_cursor#121 print_char::ch#13 = ' ' - call print_char + call print_char to:testInt::@3 testInt::@3: scope:[testInt] from testInt::@2 print_line_cursor#58 = phi( testInt::@2/print_line_cursor#62 ) print_char_cursor#122 = phi( testInt::@2/print_char_cursor#26 ) print_char_cursor#53 = print_char_cursor#122 print_sint::w#3 = testInt::n - call print_sint + call print_sint to:testInt::@4 testInt::@4: scope:[testInt] from testInt::@3 print_line_cursor#54 = phi( testInt::@3/print_line_cursor#58 ) print_char_cursor#123 = phi( testInt::@3/print_char_cursor#7 ) print_char_cursor#54 = print_char_cursor#123 print_char::ch#14 = ' ' - call print_char + call print_char to:testInt::@5 testInt::@5: scope:[testInt] from testInt::@4 print_line_cursor#50 = phi( testInt::@4/print_line_cursor#54 ) print_char_cursor#124 = phi( testInt::@4/print_char_cursor#26 ) print_char_cursor#55 = print_char_cursor#124 print_sint::w#4 = testInt::s - call print_sint + call print_sint to:testInt::@6 testInt::@6: scope:[testInt] from testInt::@5 print_line_cursor#45 = phi( testInt::@5/print_line_cursor#50 ) print_char_cursor#125 = phi( testInt::@5/print_char_cursor#7 ) print_char_cursor#56 = print_char_cursor#125 - call print_ln + call print_ln to:testInt::@7 testInt::@7: scope:[testInt] from testInt::@6 print_char_cursor#126 = phi( testInt::@6/print_char_cursor#3 ) @@ -594,48 +594,48 @@ testLong: scope:[testLong] from main::@4 print_line_cursor#71 = phi( main::@4/print_line_cursor#7 ) print_char_cursor#157 = phi( main::@4/print_char_cursor#32 ) print_str::str#4 = testLong::str - call print_str + call print_str to:testLong::@1 testLong::@1: scope:[testLong] from testLong print_line_cursor#67 = phi( testLong/print_line_cursor#71 ) print_char_cursor#128 = phi( testLong/print_char_cursor#1 ) print_char_cursor#59 = print_char_cursor#128 print_ulong::dw#1 = testLong::u - call print_ulong + call print_ulong to:testLong::@2 testLong::@2: scope:[testLong] from testLong::@1 print_line_cursor#63 = phi( testLong::@1/print_line_cursor#67 ) print_char_cursor#129 = phi( testLong::@1/print_char_cursor#17 ) print_char_cursor#60 = print_char_cursor#129 print_char::ch#15 = ' ' - call print_char + call print_char to:testLong::@3 testLong::@3: scope:[testLong] from testLong::@2 print_line_cursor#59 = phi( testLong::@2/print_line_cursor#63 ) print_char_cursor#130 = phi( testLong::@2/print_char_cursor#26 ) print_char_cursor#61 = print_char_cursor#130 print_slong::dw#1 = testLong::n - call print_slong + call print_slong to:testLong::@4 testLong::@4: scope:[testLong] from testLong::@3 print_line_cursor#55 = phi( testLong::@3/print_line_cursor#59 ) print_char_cursor#131 = phi( testLong::@3/print_char_cursor#21 ) print_char_cursor#62 = print_char_cursor#131 print_char::ch#16 = ' ' - call print_char + call print_char to:testLong::@5 testLong::@5: scope:[testLong] from testLong::@4 print_line_cursor#51 = phi( testLong::@4/print_line_cursor#55 ) print_char_cursor#132 = phi( testLong::@4/print_char_cursor#26 ) print_char_cursor#63 = print_char_cursor#132 print_slong::dw#2 = testLong::s - call print_slong + call print_slong to:testLong::@6 testLong::@6: scope:[testLong] from testLong::@5 print_line_cursor#46 = phi( testLong::@5/print_line_cursor#51 ) print_char_cursor#133 = phi( testLong::@5/print_char_cursor#21 ) print_char_cursor#64 = print_char_cursor#133 - call print_ln + call print_ln to:testLong::@7 testLong::@7: scope:[testLong] from testLong::@6 print_char_cursor#134 = phi( testLong::@6/print_char_cursor#3 ) @@ -655,7 +655,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#18 = print_screen#0 print_char_cursor#67 = print_line_cursor#18 to:__start::@1 @@ -663,7 +663,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#158 = phi( __start::__init1/print_char_cursor#67 ) print_line_cursor#47 = phi( __start::__init1/print_line_cursor#18 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -683,421 +683,421 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#10 -byte print_char::ch#11 -byte print_char::ch#12 -byte print_char::ch#13 -byte print_char::ch#14 -byte print_char::ch#15 -byte print_char::ch#16 -byte print_char::ch#17 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte print_char::ch#6 -byte print_char::ch#7 -byte print_char::ch#8 -byte print_char::ch#9 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#100 -byte* print_char_cursor#101 -byte* print_char_cursor#102 -byte* print_char_cursor#103 -byte* print_char_cursor#104 -byte* print_char_cursor#105 -byte* print_char_cursor#106 -byte* print_char_cursor#107 -byte* print_char_cursor#108 -byte* print_char_cursor#109 -byte* print_char_cursor#11 -byte* print_char_cursor#110 -byte* print_char_cursor#111 -byte* print_char_cursor#112 -byte* print_char_cursor#113 -byte* print_char_cursor#114 -byte* print_char_cursor#115 -byte* print_char_cursor#116 -byte* print_char_cursor#117 -byte* print_char_cursor#118 -byte* print_char_cursor#119 -byte* print_char_cursor#12 -byte* print_char_cursor#120 -byte* print_char_cursor#121 -byte* print_char_cursor#122 -byte* print_char_cursor#123 -byte* print_char_cursor#124 -byte* print_char_cursor#125 -byte* print_char_cursor#126 -byte* print_char_cursor#127 -byte* print_char_cursor#128 -byte* print_char_cursor#129 -byte* print_char_cursor#13 -byte* print_char_cursor#130 -byte* print_char_cursor#131 -byte* print_char_cursor#132 -byte* print_char_cursor#133 -byte* print_char_cursor#134 -byte* print_char_cursor#135 -byte* print_char_cursor#136 -byte* print_char_cursor#137 -byte* print_char_cursor#138 -byte* print_char_cursor#139 -byte* print_char_cursor#14 -byte* print_char_cursor#140 -byte* print_char_cursor#141 -byte* print_char_cursor#142 -byte* print_char_cursor#143 -byte* print_char_cursor#144 -byte* print_char_cursor#145 -byte* print_char_cursor#146 -byte* print_char_cursor#147 -byte* print_char_cursor#148 -byte* print_char_cursor#149 -byte* print_char_cursor#15 -byte* print_char_cursor#150 -byte* print_char_cursor#151 -byte* print_char_cursor#152 -byte* print_char_cursor#153 -byte* print_char_cursor#154 -byte* print_char_cursor#155 -byte* print_char_cursor#156 -byte* print_char_cursor#157 -byte* print_char_cursor#158 -byte* print_char_cursor#159 -byte* print_char_cursor#16 -byte* print_char_cursor#160 -byte* print_char_cursor#161 -byte* print_char_cursor#162 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#80 -byte* print_char_cursor#81 -byte* print_char_cursor#82 -byte* print_char_cursor#83 -byte* print_char_cursor#84 -byte* print_char_cursor#85 -byte* print_char_cursor#86 -byte* print_char_cursor#87 -byte* print_char_cursor#88 -byte* print_char_cursor#89 -byte* print_char_cursor#9 -byte* print_char_cursor#90 -byte* print_char_cursor#91 -byte* print_char_cursor#92 -byte* print_char_cursor#93 -byte* print_char_cursor#94 -byte* print_char_cursor#95 -byte* print_char_cursor#96 -byte* print_char_cursor#97 -byte* print_char_cursor#98 -byte* print_char_cursor#99 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#10 +char print_char::ch#11 +char print_char::ch#12 +char print_char::ch#13 +char print_char::ch#14 +char print_char::ch#15 +char print_char::ch#16 +char print_char::ch#17 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char print_char::ch#6 +char print_char::ch#7 +char print_char::ch#8 +char print_char::ch#9 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#100 +char *print_char_cursor#101 +char *print_char_cursor#102 +char *print_char_cursor#103 +char *print_char_cursor#104 +char *print_char_cursor#105 +char *print_char_cursor#106 +char *print_char_cursor#107 +char *print_char_cursor#108 +char *print_char_cursor#109 +char *print_char_cursor#11 +char *print_char_cursor#110 +char *print_char_cursor#111 +char *print_char_cursor#112 +char *print_char_cursor#113 +char *print_char_cursor#114 +char *print_char_cursor#115 +char *print_char_cursor#116 +char *print_char_cursor#117 +char *print_char_cursor#118 +char *print_char_cursor#119 +char *print_char_cursor#12 +char *print_char_cursor#120 +char *print_char_cursor#121 +char *print_char_cursor#122 +char *print_char_cursor#123 +char *print_char_cursor#124 +char *print_char_cursor#125 +char *print_char_cursor#126 +char *print_char_cursor#127 +char *print_char_cursor#128 +char *print_char_cursor#129 +char *print_char_cursor#13 +char *print_char_cursor#130 +char *print_char_cursor#131 +char *print_char_cursor#132 +char *print_char_cursor#133 +char *print_char_cursor#134 +char *print_char_cursor#135 +char *print_char_cursor#136 +char *print_char_cursor#137 +char *print_char_cursor#138 +char *print_char_cursor#139 +char *print_char_cursor#14 +char *print_char_cursor#140 +char *print_char_cursor#141 +char *print_char_cursor#142 +char *print_char_cursor#143 +char *print_char_cursor#144 +char *print_char_cursor#145 +char *print_char_cursor#146 +char *print_char_cursor#147 +char *print_char_cursor#148 +char *print_char_cursor#149 +char *print_char_cursor#15 +char *print_char_cursor#150 +char *print_char_cursor#151 +char *print_char_cursor#152 +char *print_char_cursor#153 +char *print_char_cursor#154 +char *print_char_cursor#155 +char *print_char_cursor#156 +char *print_char_cursor#157 +char *print_char_cursor#158 +char *print_char_cursor#159 +char *print_char_cursor#16 +char *print_char_cursor#160 +char *print_char_cursor#161 +char *print_char_cursor#162 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#80 +char *print_char_cursor#81 +char *print_char_cursor#82 +char *print_char_cursor#83 +char *print_char_cursor#84 +char *print_char_cursor#85 +char *print_char_cursor#86 +char *print_char_cursor#87 +char *print_char_cursor#88 +char *print_char_cursor#89 +char *print_char_cursor#9 +char *print_char_cursor#90 +char *print_char_cursor#91 +char *print_char_cursor#92 +char *print_char_cursor#93 +char *print_char_cursor#94 +char *print_char_cursor#95 +char *print_char_cursor#96 +char *print_char_cursor#97 +char *print_char_cursor#98 +char *print_char_cursor#99 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#40 -byte* print_line_cursor#41 -byte* print_line_cursor#42 -byte* print_line_cursor#43 -byte* print_line_cursor#44 -byte* print_line_cursor#45 -byte* print_line_cursor#46 -byte* print_line_cursor#47 -byte* print_line_cursor#48 -byte* print_line_cursor#49 -byte* print_line_cursor#5 -byte* print_line_cursor#50 -byte* print_line_cursor#51 -byte* print_line_cursor#52 -byte* print_line_cursor#53 -byte* print_line_cursor#54 -byte* print_line_cursor#55 -byte* print_line_cursor#56 -byte* print_line_cursor#57 -byte* print_line_cursor#58 -byte* print_line_cursor#59 -byte* print_line_cursor#6 -byte* print_line_cursor#60 -byte* print_line_cursor#61 -byte* print_line_cursor#62 -byte* print_line_cursor#63 -byte* print_line_cursor#64 -byte* print_line_cursor#65 -byte* print_line_cursor#66 -byte* print_line_cursor#67 -byte* print_line_cursor#68 -byte* print_line_cursor#69 -byte* print_line_cursor#7 -byte* print_line_cursor#70 -byte* print_line_cursor#71 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#40 +char *print_line_cursor#41 +char *print_line_cursor#42 +char *print_line_cursor#43 +char *print_line_cursor#44 +char *print_line_cursor#45 +char *print_line_cursor#46 +char *print_line_cursor#47 +char *print_line_cursor#48 +char *print_line_cursor#49 +char *print_line_cursor#5 +char *print_line_cursor#50 +char *print_line_cursor#51 +char *print_line_cursor#52 +char *print_line_cursor#53 +char *print_line_cursor#54 +char *print_line_cursor#55 +char *print_line_cursor#56 +char *print_line_cursor#57 +char *print_line_cursor#58 +char *print_line_cursor#59 +char *print_line_cursor#6 +char *print_line_cursor#60 +char *print_line_cursor#61 +char *print_line_cursor#62 +char *print_line_cursor#63 +char *print_line_cursor#64 +char *print_line_cursor#65 +char *print_line_cursor#66 +char *print_line_cursor#67 +char *print_line_cursor#68 +char *print_line_cursor#69 +char *print_line_cursor#7 +char *print_line_cursor#70 +char *print_line_cursor#71 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -void print_schar(signed byte print_schar::b) -bool~ print_schar::$0 -signed byte~ print_schar::$4 -signed byte print_schar::b -signed byte print_schar::b#0 -signed byte print_schar::b#1 -signed byte print_schar::b#2 -signed byte print_schar::b#3 -signed byte print_schar::b#4 -signed byte print_schar::b#5 -signed byte print_schar::b#6 -signed byte print_schar::b#7 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_sint(signed word print_sint::w) -bool~ print_sint::$0 -signed word~ print_sint::$4 -signed word print_sint::w -signed word print_sint::w#0 -signed word print_sint::w#1 -signed word print_sint::w#10 -signed word print_sint::w#2 -signed word print_sint::w#3 -signed word print_sint::w#4 -signed word print_sint::w#5 -signed word print_sint::w#6 -signed word print_sint::w#7 -signed word print_sint::w#8 -signed word print_sint::w#9 -void print_slong(signed dword print_slong::dw) -bool~ print_slong::$0 -signed dword~ print_slong::$4 -signed dword print_slong::dw -signed dword print_slong::dw#0 -signed dword print_slong::dw#1 -signed dword print_slong::dw#2 -signed dword print_slong::dw#3 -signed dword print_slong::dw#4 -signed dword print_slong::dw#5 -signed dword print_slong::dw#6 -signed dword print_slong::dw#7 -signed dword print_slong::dw#8 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 -byte* print_str::str#8 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -byte print_uchar::b#4 -byte print_uchar::b#5 -byte print_uchar::b#6 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -word print_uint::w#3 -word print_uint::w#4 -word print_uint::w#5 -word print_uint::w#6 -void print_ulong(dword print_ulong::dw) -word~ print_ulong::$0 -word~ print_ulong::$2 -dword print_ulong::dw -dword print_ulong::dw#0 -dword print_ulong::dw#1 -dword print_ulong::dw#2 -dword print_ulong::dw#3 +char *print_ln::$0 +bool print_ln::$1 +void print_schar(signed char b) +bool print_schar::$0 +signed char print_schar::$4 +signed char print_schar::b +signed char print_schar::b#0 +signed char print_schar::b#1 +signed char print_schar::b#2 +signed char print_schar::b#3 +signed char print_schar::b#4 +signed char print_schar::b#5 +signed char print_schar::b#6 +signed char print_schar::b#7 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_sint(int w) +bool print_sint::$0 +int print_sint::$4 +int print_sint::w +int print_sint::w#0 +int print_sint::w#1 +int print_sint::w#10 +int print_sint::w#2 +int print_sint::w#3 +int print_sint::w#4 +int print_sint::w#5 +int print_sint::w#6 +int print_sint::w#7 +int print_sint::w#8 +int print_sint::w#9 +void print_slong(long dw) +bool print_slong::$0 +long print_slong::$4 +long print_slong::dw +long print_slong::dw#0 +long print_slong::dw#1 +long print_slong::dw#2 +long print_slong::dw#3 +long print_slong::dw#4 +long print_slong::dw#5 +long print_slong::dw#6 +long print_slong::dw#7 +long print_slong::dw#8 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 +char *print_str::str#8 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +char print_uchar::b#4 +char print_uchar::b#5 +char print_uchar::b#6 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +unsigned int print_uint::w#3 +unsigned int print_uint::w#4 +unsigned int print_uint::w#5 +unsigned int print_uint::w#6 +void print_ulong(unsigned long dw) +unsigned int print_ulong::$0 +unsigned int print_ulong::$2 +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 +unsigned long print_ulong::dw#1 +unsigned long print_ulong::dw#2 +unsigned long print_ulong::dw#3 void testChar() -constant byte testChar::n = $e -constant signed byte testChar::s = -$e -constant byte* testChar::str[7] = "char: " -constant byte testChar::u = $e +__constant char testChar::n = $e +__constant signed char testChar::s = -$e +__constant char testChar::str[7] = "char: " +__constant char testChar::u = $e void testInt() -constant signed word testInt::n = -$578 -constant signed word testInt::s = -$578 -constant byte* testInt::str[6] = "int: " -constant word testInt::u = $578 +__constant int testInt::n = -$578 +__constant int testInt::s = -$578 +__constant char testInt::str[6] = "int: " +__constant unsigned int testInt::u = $578 void testLong() -constant signed dword testLong::n = -$222e0 -constant signed dword testLong::s = -$222e0 -constant byte* testLong::str[7] = "long: " -constant dword testLong::u = $222e0 +__constant long testLong::n = -$222e0 +__constant long testLong::s = -$222e0 +__constant char testLong::str[7] = "long: " +__constant unsigned long testLong::u = $222e0 void testShort() -constant signed word testShort::n = -$578 -constant signed word testShort::s = -$578 -constant byte* testShort::str[8] = "short: " -constant word testShort::u = $578 +__constant int testShort::n = -$578 +__constant int testShort::s = -$578 +__constant char testShort::str[8] = "short: " +__constant unsigned int testShort::u = $578 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#5 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#21 + $28 @@ -1111,7 +1111,7 @@ Adding number conversion cast (unumber) $3e8 in memset::num#0 = $3e8 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast $28 @@ -1122,19 +1122,19 @@ Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#6 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#6 & $f Inversing boolean not [157] memset::$1 = memset::num#1 <= 0 from [156] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#5 = print_str::str#6 print_str::str#7 @@ -1362,13 +1362,13 @@ Constant print_char::ch#15 = ' ' Constant print_slong::dw#1 = testLong::n Constant print_char::ch#16 = ' ' Constant print_slong::dw#2 = testLong::s -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [32] if(print_schar::b#1<0) goto print_schar::@1 if() condition always false - eliminating [99] if(memset::num#0<=0) goto memset::@1 @@ -1397,7 +1397,7 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant print_schar::b#0 = -print_schar::b#1 Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Constant print_uchar::b#0 = (byte)print_schar::b#0 +Constant print_uchar::b#0 = (char)print_schar::b#0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings print_str::str#1 Inlining constant with var siblings print_str::str#2 @@ -1441,13 +1441,13 @@ Constant inlined print_sint::w#4 = testInt::s Constant inlined print_char::ch#16 = ' ' Constant inlined print_char::ch#10 = ' ' Constant inlined print_sint::w#1 = testShort::n -Constant inlined print_uchar::b#0 = (byte)print_schar::b#0 +Constant inlined print_uchar::b#0 = (char)print_schar::b#0 Constant inlined print_char::ch#11 = ' ' Constant inlined print_char::ch#12 = ' ' Constant inlined print_char::ch#6 = ' ' Constant inlined print_char::ch#9 = ' ' Constant inlined print_schar::b#1 = testChar::s -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined print_slong::dw#2 = testLong::s Constant inlined print_slong::dw#1 = testLong::n Constant inlined print_ulong::dw#1 = testLong::u @@ -1459,14 +1459,14 @@ Constant inlined print_str::str#4 = testLong::str Constant inlined print_str::str#3 = testInt::str Constant inlined print_str::str#2 = testShort::str Constant inlined print_uint::w#4 = testInt::u -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = testChar::str Constant inlined print_uint::w#3 = testShort::u Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main @@ -1639,23 +1639,23 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call testChar + [3] call testChar to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call testShort + [5] call testShort to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call testInt + [7] call testInt to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call testLong + [9] call testLong to:main::@return main::@return: scope:[main] from main::@4 [10] return @@ -1664,7 +1664,7 @@ main::@return: scope:[main] from main::@4 void print_cls() print_cls: scope:[print_cls] from main [11] phi() - [12] call memset + [12] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [13] return @@ -1673,31 +1673,31 @@ print_cls::@return: scope:[print_cls] from print_cls void testChar() testChar: scope:[testChar] from main::@1 [14] phi() - [15] call print_str + [15] call print_str to:testChar::@1 testChar::@1: scope:[testChar] from testChar [16] phi() - [17] call print_uchar + [17] call print_uchar to:testChar::@2 testChar::@2: scope:[testChar] from testChar::@1 [18] phi() - [19] call print_char + [19] call print_char to:testChar::@3 testChar::@3: scope:[testChar] from testChar::@2 [20] phi() - [21] call print_uchar + [21] call print_uchar to:testChar::@4 testChar::@4: scope:[testChar] from testChar::@3 [22] phi() - [23] call print_char + [23] call print_char to:testChar::@5 testChar::@5: scope:[testChar] from testChar::@4 [24] phi() - [25] call print_schar + [25] call print_schar to:testChar::@6 testChar::@6: scope:[testChar] from testChar::@5 [26] phi() - [27] call print_ln + [27] call print_ln to:testChar::@return testChar::@return: scope:[testChar] from testChar::@6 [28] return @@ -1706,31 +1706,31 @@ testChar::@return: scope:[testChar] from testChar::@6 void testShort() testShort: scope:[testShort] from main::@2 [29] print_char_cursor#165 = print_line_cursor#0 - [30] call print_str + [30] call print_str to:testShort::@1 testShort::@1: scope:[testShort] from testShort [31] phi() - [32] call print_uint + [32] call print_uint to:testShort::@2 testShort::@2: scope:[testShort] from testShort::@1 [33] phi() - [34] call print_char + [34] call print_char to:testShort::@3 testShort::@3: scope:[testShort] from testShort::@2 [35] phi() - [36] call print_sint + [36] call print_sint to:testShort::@4 testShort::@4: scope:[testShort] from testShort::@3 [37] phi() - [38] call print_char + [38] call print_char to:testShort::@5 testShort::@5: scope:[testShort] from testShort::@4 [39] phi() - [40] call print_sint + [40] call print_sint to:testShort::@6 testShort::@6: scope:[testShort] from testShort::@5 [41] phi() - [42] call print_ln + [42] call print_ln to:testShort::@return testShort::@return: scope:[testShort] from testShort::@6 [43] return @@ -1739,31 +1739,31 @@ testShort::@return: scope:[testShort] from testShort::@6 void testInt() testInt: scope:[testInt] from main::@3 [44] print_char_cursor#163 = print_line_cursor#0 - [45] call print_str + [45] call print_str to:testInt::@1 testInt::@1: scope:[testInt] from testInt [46] phi() - [47] call print_uint + [47] call print_uint to:testInt::@2 testInt::@2: scope:[testInt] from testInt::@1 [48] phi() - [49] call print_char + [49] call print_char to:testInt::@3 testInt::@3: scope:[testInt] from testInt::@2 [50] phi() - [51] call print_sint + [51] call print_sint to:testInt::@4 testInt::@4: scope:[testInt] from testInt::@3 [52] phi() - [53] call print_char + [53] call print_char to:testInt::@5 testInt::@5: scope:[testInt] from testInt::@4 [54] phi() - [55] call print_sint + [55] call print_sint to:testInt::@6 testInt::@6: scope:[testInt] from testInt::@5 [56] phi() - [57] call print_ln + [57] call print_ln to:testInt::@return testInt::@return: scope:[testInt] from testInt::@6 [58] return @@ -1772,42 +1772,42 @@ testInt::@return: scope:[testInt] from testInt::@6 void testLong() testLong: scope:[testLong] from main::@4 [59] print_char_cursor#164 = print_line_cursor#0 - [60] call print_str + [60] call print_str to:testLong::@1 testLong::@1: scope:[testLong] from testLong [61] phi() - [62] call print_ulong + [62] call print_ulong to:testLong::@2 testLong::@2: scope:[testLong] from testLong::@1 [63] phi() - [64] call print_char + [64] call print_char to:testLong::@3 testLong::@3: scope:[testLong] from testLong::@2 [65] phi() - [66] call print_slong + [66] call print_slong to:testLong::@4 testLong::@4: scope:[testLong] from testLong::@3 [67] phi() - [68] call print_char + [68] call print_char to:testLong::@5 testLong::@5: scope:[testLong] from testLong::@4 [69] phi() - [70] call print_slong + [70] call print_slong to:testLong::@6 testLong::@6: scope:[testLong] from testLong::@5 [71] phi() - [72] call print_ln + [72] call print_ln to:testLong::@return testLong::@return: scope:[testLong] from testLong::@6 [73] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [74] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [75] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [75] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [76] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1818,7 +1818,7 @@ memset::@2: scope:[memset] from memset::@1 [79] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from testChar testInt testLong testShort [80] print_char_cursor#159 = phi( testChar/print_screen#0, testInt/print_char_cursor#163, testLong/print_char_cursor#164, testShort/print_char_cursor#165 ) [80] print_str::str#8 = phi( testChar/testChar::str, testInt/testInt::str, testLong/testLong::str, testShort/testShort::str ) @@ -1833,30 +1833,30 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [84] print_char::ch#0 = *print_str::str#5 - [85] call print_char + [85] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [86] print_str::str#0 = ++ print_str::str#5 to:print_str::@1 -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_schar::@2 print_uint print_uint::@1 testChar::@1 testChar::@3 [87] print_char_cursor#152 = phi( print_schar::@2/print_char_cursor#25, print_uint/print_char_cursor#147, print_uint::@1/print_char_cursor#25, testChar::@1/print_char_cursor#1, testChar::@3/print_char_cursor#25 ) - [87] print_uchar::b#5 = phi( print_schar::@2/(byte)print_schar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/testChar::u, testChar::@3/testChar::n ) + [87] print_uchar::b#5 = phi( print_schar::@2/(char)print_schar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/testChar::u, testChar::@3/testChar::n ) [88] print_uchar::$0 = print_uchar::b#5 >> 4 [89] print_char::ch#7 = print_hextab[print_uchar::$0] - [90] call print_char + [90] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [91] print_uchar::$2 = print_uchar::b#5 & $f [92] print_char::ch#8 = print_hextab[print_uchar::$2] - [93] call print_char + [93] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [94] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_schar::@1 print_sint::@1 print_sint::@3 print_slong::@1 print_slong::@3 print_str::@2 print_uchar print_uchar::@1 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4 [95] print_char_cursor#95 = phi( print_schar::@1/print_char_cursor#25, print_sint::@1/print_char_cursor#25, print_sint::@3/print_char_cursor#25, print_slong::@1/print_char_cursor#25, print_slong::@3/print_char_cursor#25, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#152, print_uchar::@1/print_char_cursor#25, testChar::@2/print_char_cursor#25, testChar::@4/print_char_cursor#25, testInt::@2/print_char_cursor#25, testInt::@4/print_char_cursor#25, testLong::@2/print_char_cursor#25, testLong::@4/print_char_cursor#25, testShort::@2/print_char_cursor#25, testShort::@4/print_char_cursor#25 ) [95] print_char::ch#17 = phi( print_schar::@1/'-', print_sint::@1/'-', print_sint::@3/' ', print_slong::@1/'-', print_slong::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#7, print_uchar::@1/print_char::ch#8, testChar::@2/' ', testChar::@4/' ', testInt::@2/' ', testInt::@4/' ', testLong::@2/' ', testLong::@4/' ', testShort::@2/' ', testShort::@4/' ' ) @@ -1867,17 +1867,17 @@ print_char::@return: scope:[print_char] from print_char [98] return to:@return -void print_schar(signed byte print_schar::b) +void print_schar(signed char b) print_schar: scope:[print_schar] from testChar::@5 [99] phi() to:print_schar::@1 print_schar::@1: scope:[print_schar] from print_schar [100] phi() - [101] call print_char + [101] call print_char to:print_schar::@2 print_schar::@2: scope:[print_schar] from print_schar::@1 [102] phi() - [103] call print_uchar + [103] call print_uchar to:print_schar::@return print_schar::@return: scope:[print_schar] from print_schar::@2 [104] return @@ -1896,81 +1896,81 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [109] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_ulong print_ulong::@1 testInt::@1 testShort::@1 [110] print_char_cursor#147 = phi( print_sint::@2/print_char_cursor#25, print_ulong/print_char_cursor#148, print_ulong::@1/print_char_cursor#25, testInt::@1/print_char_cursor#1, testShort::@1/print_char_cursor#1 ) [110] print_uint::w#5 = phi( print_sint::@2/print_uint::w#0, print_ulong/print_uint::w#1, print_ulong::@1/print_uint::w#2, testInt::@1/testInt::u, testShort::@1/testShort::u ) [111] print_uchar::b#1 = byte1 print_uint::w#5 - [112] call print_uchar + [112] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [113] print_uchar::b#2 = byte0 print_uint::w#5 - [114] call print_uchar + [114] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [115] return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from testInt::@3 testInt::@5 testShort::@3 testShort::@5 [116] print_sint::w#10 = phi( testInt::@3/testInt::n, testInt::@5/testInt::s, testShort::@3/testShort::n, testShort::@5/testShort::s ) [117] if(print_sint::w#10<0) goto print_sint::@1 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [118] phi() - [119] call print_char + [119] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [120] print_sint::w#7 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#10 ) - [121] print_uint::w#0 = (word)print_sint::w#7 - [122] call print_uint + [121] print_uint::w#0 = (unsigned int)print_sint::w#7 + [122] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [123] return to:@return print_sint::@1: scope:[print_sint] from print_sint [124] phi() - [125] call print_char + [125] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [126] print_sint::w#0 = - print_sint::w#10 to:print_sint::@2 -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from print_slong::@2 testLong::@1 [127] print_char_cursor#148 = phi( print_slong::@2/print_char_cursor#25, testLong::@1/print_char_cursor#1 ) [127] print_ulong::dw#2 = phi( print_slong::@2/print_ulong::dw#0, testLong::@1/testLong::u ) [128] print_uint::w#1 = word1 print_ulong::dw#2 - [129] call print_uint + [129] call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong [130] print_uint::w#2 = word0 print_ulong::dw#2 - [131] call print_uint + [131] call print_uint to:print_ulong::@return print_ulong::@return: scope:[print_ulong] from print_ulong::@1 [132] return to:@return -void print_slong(signed dword print_slong::dw) +void print_slong(long dw) print_slong: scope:[print_slong] from testLong::@3 testLong::@5 [133] print_slong::dw#3 = phi( testLong::@3/testLong::n, testLong::@5/testLong::s ) [134] if(print_slong::dw#3<0) goto print_slong::@1 to:print_slong::@3 print_slong::@3: scope:[print_slong] from print_slong [135] phi() - [136] call print_char + [136] call print_char to:print_slong::@2 print_slong::@2: scope:[print_slong] from print_slong::@3 print_slong::@4 [137] print_slong::dw#5 = phi( print_slong::@4/print_slong::dw#0, print_slong::@3/print_slong::dw#3 ) - [138] print_ulong::dw#0 = (dword)print_slong::dw#5 - [139] call print_ulong + [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5 + [139] call print_ulong to:print_slong::@return print_slong::@return: scope:[print_slong] from print_slong::@2 [140] return to:@return print_slong::@1: scope:[print_slong] from print_slong [141] phi() - [142] call print_char + [142] call print_char to:print_slong::@4 print_slong::@4: scope:[print_slong] from print_slong::@1 [143] print_slong::dw#0 = - print_slong::dw#3 @@ -1979,73 +1979,73 @@ print_slong::@4: scope:[print_slong] from print_slong::@1 VARIABLE REGISTER WEIGHTS void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2002.0 -byte print_char::ch#17 1201004.0 -byte print_char::ch#7 200002.0 -byte print_char::ch#8 200002.0 -byte* print_char_cursor -byte* print_char_cursor#1 178.91666666666666 -byte* print_char_cursor#147 6063.0 -byte* print_char_cursor#148 556.5 -byte* print_char_cursor#152 40042.0 -byte* print_char_cursor#159 134.0 -byte* print_char_cursor#163 22.0 -byte* print_char_cursor#164 22.0 -byte* print_char_cursor#165 22.0 -byte* print_char_cursor#25 12515.876404494384 -byte* print_char_cursor#95 1100799.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2002.0 +char print_char::ch#17 // 1201004.0 +char print_char::ch#7 // 200002.0 +char print_char::ch#8 // 200002.0 +char *print_char_cursor +char *print_char_cursor#1 // 178.91666666666666 +char *print_char_cursor#147 // 6063.0 +char *print_char_cursor#148 // 556.5 +char *print_char_cursor#152 // 40042.0 +char *print_char_cursor#159 // 134.0 +char *print_char_cursor#163 // 22.0 +char *print_char_cursor#164 // 22.0 +char *print_char_cursor#165 // 22.0 +char *print_char_cursor#25 // 12515.876404494384 +char *print_char_cursor#95 // 1100799.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 56.833333333333336 -byte* print_line_cursor#21 2103.0 -byte* print_line_cursor#41 134.0 +char *print_line_cursor +char *print_line_cursor#0 // 56.833333333333336 +char *print_line_cursor#21 // 2103.0 +char *print_line_cursor#41 // 134.0 void print_ln() -void print_schar(signed byte print_schar::b) -signed byte print_schar::b -byte* print_screen -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 202.0 -signed word print_sint::w#10 50.5 -signed word print_sint::w#7 202.0 -void print_slong(signed dword print_slong::dw) -signed dword print_slong::dw -signed dword print_slong::dw#0 202.0 -signed dword print_slong::dw#3 50.5 -signed dword print_slong::dw#5 202.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 2002.0 -byte* print_str::str#5 1026.25 -byte* print_str::str#8 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 200002.0 -byte~ print_uchar::$2 200002.0 -byte print_uchar::b -byte print_uchar::b#1 20002.0 -byte print_uchar::b#2 20002.0 -byte print_uchar::b#5 55001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 202.0 -word print_uint::w#1 2002.0 -word print_uint::w#2 2002.0 -word print_uint::w#5 7368.333333333333 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 202.0 -dword print_ulong::dw#2 701.0 +void print_schar(signed char b) +signed char print_schar::b +char *print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // 202.0 +int print_sint::w#10 // 50.5 +int print_sint::w#7 // 202.0 +void print_slong(long dw) +long print_slong::dw +long print_slong::dw#0 // 202.0 +long print_slong::dw#3 // 50.5 +long print_slong::dw#5 // 202.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 2002.0 +char *print_str::str#5 // 1026.25 +char *print_str::str#8 // 101.0 +void print_uchar(char b) +char print_uchar::$0 // 200002.0 +char print_uchar::$2 // 200002.0 +char print_uchar::b +char print_uchar::b#1 // 20002.0 +char print_uchar::b#2 // 20002.0 +char print_uchar::b#5 // 55001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 202.0 +unsigned int print_uint::w#1 // 2002.0 +unsigned int print_uint::w#2 // 2002.0 +unsigned int print_uint::w#5 // 7368.333333333333 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // 202.0 +unsigned long print_ulong::dw#2 // 701.0 void testChar() void testInt() void testLong() @@ -2105,12 +2105,12 @@ Removing always clobbered register reg byte y as potential for zp[1]:6 [ print_u Statement [107] print_line_cursor#0 = print_line_cursor#21 + $28 [ print_line_cursor#0 print_char_cursor#25 ] ( testChar:3::print_ln:27 [ print_line_cursor#0 print_char_cursor#25 ] { } testShort:5::print_ln:42 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testInt:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testLong:9::print_ln:72 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } ) always clobbers reg byte a Statement [108] if(print_line_cursor#0print_cls] print_cls_from_main: jsr print_cls @@ -2220,7 +2220,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call testChar + // [3] call testChar // [14] phi from main::@1 to testChar [phi:main::@1->testChar] testChar_from___b1: jsr testChar @@ -2229,21 +2229,21 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call testShort + // [5] call testShort jsr testShort // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [7] call testInt + // [7] call testInt jsr testInt // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [9] call testLong + // [9] call testLong jsr testLong jmp __breturn // main::@return @@ -2254,7 +2254,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [12] call memset + // [12] call memset // [74] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -2269,7 +2269,7 @@ testChar: { .const u = $e .const n = $e .label s = -$e - // [15] call print_str + // [15] call print_str // [80] phi from testChar to print_str [phi:testChar->print_str] print_str_from_testChar: // [80] phi print_char_cursor#159 = print_screen#0 [phi:testChar->print_str#0] -- pbuz1=pbuc1 @@ -2288,7 +2288,7 @@ testChar: { jmp __b1 // testChar::@1 __b1: - // [17] call print_uchar + // [17] call print_uchar // [87] phi from testChar::@1 to print_uchar [phi:testChar::@1->print_uchar] print_uchar_from___b1: // [87] phi print_char_cursor#152 = print_char_cursor#1 [phi:testChar::@1->print_uchar#0] -- register_copy @@ -2300,7 +2300,7 @@ testChar: { jmp __b2 // testChar::@2 __b2: - // [19] call print_char + // [19] call print_char // [95] phi from testChar::@2 to print_char [phi:testChar::@2->print_char] print_char_from___b2: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@2->print_char#0] -- register_copy @@ -2312,7 +2312,7 @@ testChar: { jmp __b3 // testChar::@3 __b3: - // [21] call print_uchar + // [21] call print_uchar // [87] phi from testChar::@3 to print_uchar [phi:testChar::@3->print_uchar] print_uchar_from___b3: // [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:testChar::@3->print_uchar#0] -- register_copy @@ -2324,7 +2324,7 @@ testChar: { jmp __b4 // testChar::@4 __b4: - // [23] call print_char + // [23] call print_char // [95] phi from testChar::@4 to print_char [phi:testChar::@4->print_char] print_char_from___b4: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@4->print_char#0] -- register_copy @@ -2336,7 +2336,7 @@ testChar: { jmp __b5 // testChar::@5 __b5: - // [25] call print_schar + // [25] call print_schar // [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar] print_schar_from___b5: jsr print_schar @@ -2345,7 +2345,7 @@ testChar: { jmp __b6 // testChar::@6 __b6: - // [27] call print_ln + // [27] call print_ln // [105] phi from testChar::@6 to print_ln [phi:testChar::@6->print_ln] print_ln_from___b6: // [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- pbuz1=pbuc1 @@ -2374,7 +2374,7 @@ testShort: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [30] call print_str + // [30] call print_str // [80] phi from testShort to print_str [phi:testShort->print_str] print_str_from_testShort: // [80] phi print_char_cursor#159 = print_char_cursor#165 [phi:testShort->print_str#0] -- register_copy @@ -2389,7 +2389,7 @@ testShort: { jmp __b1 // testShort::@1 __b1: - // [32] call print_uint + // [32] call print_uint // [110] phi from testShort::@1 to print_uint [phi:testShort::@1->print_uint] print_uint_from___b1: // [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testShort::@1->print_uint#0] -- register_copy @@ -2404,7 +2404,7 @@ testShort: { jmp __b2 // testShort::@2 __b2: - // [34] call print_char + // [34] call print_char // [95] phi from testShort::@2 to print_char [phi:testShort::@2->print_char] print_char_from___b2: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@2->print_char#0] -- register_copy @@ -2416,7 +2416,7 @@ testShort: { jmp __b3 // testShort::@3 __b3: - // [36] call print_sint + // [36] call print_sint // [116] phi from testShort::@3 to print_sint [phi:testShort::@3->print_sint] print_sint_from___b3: // [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- vwsz1=vwsc1 @@ -2430,7 +2430,7 @@ testShort: { jmp __b4 // testShort::@4 __b4: - // [38] call print_char + // [38] call print_char // [95] phi from testShort::@4 to print_char [phi:testShort::@4->print_char] print_char_from___b4: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@4->print_char#0] -- register_copy @@ -2442,7 +2442,7 @@ testShort: { jmp __b5 // testShort::@5 __b5: - // [40] call print_sint + // [40] call print_sint // [116] phi from testShort::@5 to print_sint [phi:testShort::@5->print_sint] print_sint_from___b5: // [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- vwsz1=vwsc1 @@ -2456,7 +2456,7 @@ testShort: { jmp __b6 // testShort::@6 __b6: - // [42] call print_ln + // [42] call print_ln // [105] phi from testShort::@6 to print_ln [phi:testShort::@6->print_ln] print_ln_from___b6: // [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- register_copy @@ -2481,7 +2481,7 @@ testInt: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [45] call print_str + // [45] call print_str // [80] phi from testInt to print_str [phi:testInt->print_str] print_str_from_testInt: // [80] phi print_char_cursor#159 = print_char_cursor#163 [phi:testInt->print_str#0] -- register_copy @@ -2496,7 +2496,7 @@ testInt: { jmp __b1 // testInt::@1 __b1: - // [47] call print_uint + // [47] call print_uint // [110] phi from testInt::@1 to print_uint [phi:testInt::@1->print_uint] print_uint_from___b1: // [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testInt::@1->print_uint#0] -- register_copy @@ -2511,7 +2511,7 @@ testInt: { jmp __b2 // testInt::@2 __b2: - // [49] call print_char + // [49] call print_char // [95] phi from testInt::@2 to print_char [phi:testInt::@2->print_char] print_char_from___b2: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@2->print_char#0] -- register_copy @@ -2523,7 +2523,7 @@ testInt: { jmp __b3 // testInt::@3 __b3: - // [51] call print_sint + // [51] call print_sint // [116] phi from testInt::@3 to print_sint [phi:testInt::@3->print_sint] print_sint_from___b3: // [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- vwsz1=vwsc1 @@ -2537,7 +2537,7 @@ testInt: { jmp __b4 // testInt::@4 __b4: - // [53] call print_char + // [53] call print_char // [95] phi from testInt::@4 to print_char [phi:testInt::@4->print_char] print_char_from___b4: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@4->print_char#0] -- register_copy @@ -2549,7 +2549,7 @@ testInt: { jmp __b5 // testInt::@5 __b5: - // [55] call print_sint + // [55] call print_sint // [116] phi from testInt::@5 to print_sint [phi:testInt::@5->print_sint] print_sint_from___b5: // [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- vwsz1=vwsc1 @@ -2563,7 +2563,7 @@ testInt: { jmp __b6 // testInt::@6 __b6: - // [57] call print_ln + // [57] call print_ln // [105] phi from testInt::@6 to print_ln [phi:testInt::@6->print_ln] print_ln_from___b6: // [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- register_copy @@ -2588,7 +2588,7 @@ testLong: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [60] call print_str + // [60] call print_str // [80] phi from testLong to print_str [phi:testLong->print_str] print_str_from_testLong: // [80] phi print_char_cursor#159 = print_char_cursor#164 [phi:testLong->print_str#0] -- register_copy @@ -2603,7 +2603,7 @@ testLong: { jmp __b1 // testLong::@1 __b1: - // [62] call print_ulong + // [62] call print_ulong // [127] phi from testLong::@1 to print_ulong [phi:testLong::@1->print_ulong] print_ulong_from___b1: // [127] phi print_char_cursor#148 = print_char_cursor#1 [phi:testLong::@1->print_ulong#0] -- register_copy @@ -2622,7 +2622,7 @@ testLong: { jmp __b2 // testLong::@2 __b2: - // [64] call print_char + // [64] call print_char // [95] phi from testLong::@2 to print_char [phi:testLong::@2->print_char] print_char_from___b2: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@2->print_char#0] -- register_copy @@ -2634,7 +2634,7 @@ testLong: { jmp __b3 // testLong::@3 __b3: - // [66] call print_slong + // [66] call print_slong // [133] phi from testLong::@3 to print_slong [phi:testLong::@3->print_slong] print_slong_from___b3: // [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- vdsz1=vdsc1 @@ -2652,7 +2652,7 @@ testLong: { jmp __b4 // testLong::@4 __b4: - // [68] call print_char + // [68] call print_char // [95] phi from testLong::@4 to print_char [phi:testLong::@4->print_char] print_char_from___b4: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@4->print_char#0] -- register_copy @@ -2664,7 +2664,7 @@ testLong: { jmp __b5 // testLong::@5 __b5: - // [70] call print_slong + // [70] call print_slong // [133] phi from testLong::@5 to print_slong [phi:testLong::@5->print_slong] print_slong_from___b5: // [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- vdsz1=vdsc1 @@ -2682,7 +2682,7 @@ testLong: { jmp __b6 // testLong::@6 __b6: - // [72] call print_ln + // [72] call print_ln // [105] phi from testLong::@6 to print_ln [phi:testLong::@6->print_ln] print_ln_from___b6: // [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- register_copy @@ -2699,6 +2699,7 @@ testLong: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2707,7 +2708,7 @@ memset: { .label dst = 6 // [75] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [75] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [75] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2745,7 +2746,7 @@ memset: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 // [81] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2771,7 +2772,7 @@ print_str: { // [84] print_char::ch#0 = *print_str::str#5 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [85] call print_char + // [85] call print_char // [95] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [95] phi print_char_cursor#95 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -2789,7 +2790,7 @@ print_str: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [88] print_uchar::$0 = print_uchar::b#5 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -2800,7 +2801,7 @@ print_uchar: { // [89] print_char::ch#7 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [90] call print_char + // [90] call print_char // Table of hexadecimal digits // [95] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -2815,7 +2816,7 @@ print_uchar: { axs #0 // [92] print_char::ch#8 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [93] call print_char + // [93] call print_char // [95] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -2829,7 +2830,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [96] *print_char_cursor#95 = print_char::ch#17 -- _deref_pbuz1=vbuaa ldy #0 @@ -2847,6 +2848,7 @@ print_char: { } // print_schar // Print a signed char as HEX +// void print_schar(signed char b) print_schar: { .const b = -testChar.s // [100] phi from print_schar to print_schar::@1 [phi:print_schar->print_schar::@1] @@ -2854,7 +2856,7 @@ print_schar: { jmp __b1 // print_schar::@1 __b1: - // [101] call print_char + // [101] call print_char // [95] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char] print_char_from___b1: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_schar::@1->print_char#0] -- register_copy @@ -2866,11 +2868,11 @@ print_schar: { jmp __b2 // print_schar::@2 __b2: - // [103] call print_uchar + // [103] call print_uchar // [87] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar] print_uchar_from___b2: // [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_schar::@2->print_uchar#0] -- register_copy - // [87] phi print_uchar::b#5 = (byte)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1 + // [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1 ldx #b jsr print_uchar jmp __breturn @@ -2914,12 +2916,12 @@ print_ln: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(6) w) +// void print_uint(__zp(6) unsigned int w) print_uint: { .label w = 6 // [111] print_uchar::b#1 = byte1 print_uint::w#5 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [112] call print_uchar + // [112] call print_uchar // [87] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [87] phi print_char_cursor#152 = print_char_cursor#147 [phi:print_uint->print_uchar#0] -- register_copy @@ -2930,7 +2932,7 @@ print_uint: { __b1: // [113] print_uchar::b#2 = byte0 print_uint::w#5 -- vbuxx=_byte0_vwuz1 ldx.z w - // [114] call print_uchar + // [114] call print_uchar // [87] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -2944,7 +2946,7 @@ print_uint: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp(6) w) +// void print_sint(__zp(6) int w) print_sint: { .label w = 6 // [117] if(print_sint::w#10<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 @@ -2955,7 +2957,7 @@ print_sint: { jmp __b3 // print_sint::@3 __b3: - // [119] call print_char + // [119] call print_char // [95] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] print_char_from___b3: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@3->print_char#0] -- register_copy @@ -2969,8 +2971,8 @@ print_sint: { jmp __b2 // print_sint::@2 __b2: - // [121] print_uint::w#0 = (word)print_sint::w#7 - // [122] call print_uint + // [121] print_uint::w#0 = (unsigned int)print_sint::w#7 + // [122] call print_uint // [110] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint] print_uint_from___b2: // [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_sint::@2->print_uint#0] -- register_copy @@ -2986,7 +2988,7 @@ print_sint: { jmp __b1 // print_sint::@1 __b1: - // [125] call print_char + // [125] call print_char // [95] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] print_char_from___b1: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@1->print_char#0] -- register_copy @@ -3008,7 +3010,7 @@ print_sint: { } // print_ulong // Print a unsigned long as HEX -// print_ulong(dword zp(8) dw) +// void print_ulong(__zp(8) unsigned long dw) print_ulong: { .label dw = 8 // [128] print_uint::w#1 = word1 print_ulong::dw#2 -- vwuz1=_word1_vduz2 @@ -3016,7 +3018,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+3 sta.z print_uint.w+1 - // [129] call print_uint + // [129] call print_uint // [110] phi from print_ulong to print_uint [phi:print_ulong->print_uint] print_uint_from_print_ulong: // [110] phi print_char_cursor#147 = print_char_cursor#148 [phi:print_ulong->print_uint#0] -- register_copy @@ -3030,7 +3032,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+1 sta.z print_uint.w+1 - // [131] call print_uint + // [131] call print_uint // [110] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint] print_uint_from___b1: // [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_ulong::@1->print_uint#0] -- register_copy @@ -3044,7 +3046,7 @@ print_ulong: { } // print_slong // Print a signed long as HEX -// print_slong(signed dword zp(8) dw) +// void print_slong(__zp(8) long dw) print_slong: { .label dw = 8 // [134] if(print_slong::dw#3<0) goto print_slong::@1 -- vdsz1_lt_0_then_la1 @@ -3055,7 +3057,7 @@ print_slong: { jmp __b3 // print_slong::@3 __b3: - // [136] call print_char + // [136] call print_char // [95] phi from print_slong::@3 to print_char [phi:print_slong::@3->print_char] print_char_from___b3: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@3->print_char#0] -- register_copy @@ -3069,8 +3071,8 @@ print_slong: { jmp __b2 // print_slong::@2 __b2: - // [138] print_ulong::dw#0 = (dword)print_slong::dw#5 - // [139] call print_ulong + // [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5 + // [139] call print_ulong // [127] phi from print_slong::@2 to print_ulong [phi:print_slong::@2->print_ulong] print_ulong_from___b2: // [127] phi print_char_cursor#148 = print_char_cursor#25 [phi:print_slong::@2->print_ulong#0] -- register_copy @@ -3086,7 +3088,7 @@ print_slong: { jmp __b1 // print_slong::@1 __b1: - // [142] call print_char + // [142] call print_char // [95] phi from print_slong::@1 to print_char [phi:print_slong::@1->print_char] print_char_from___b1: // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@1->print_char#0] -- register_copy @@ -3338,105 +3340,105 @@ Removing instruction __b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2002.0 -byte* memset::dst#2 dst zp[2]:6 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#17 reg byte a 1201004.0 -byte print_char::ch#7 reg byte a 200002.0 -byte print_char::ch#8 reg byte a 200002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:2 178.91666666666666 -byte* print_char_cursor#147 print_char_cursor zp[2]:2 6063.0 -byte* print_char_cursor#148 print_char_cursor zp[2]:2 556.5 -byte* print_char_cursor#152 print_char_cursor zp[2]:2 40042.0 -byte* print_char_cursor#159 print_char_cursor zp[2]:2 134.0 -byte* print_char_cursor#163 print_char_cursor zp[2]:2 22.0 -byte* print_char_cursor#164 print_char_cursor zp[2]:2 22.0 -byte* print_char_cursor#165 print_char_cursor zp[2]:2 22.0 -byte* print_char_cursor#25 print_char_cursor zp[2]:2 12515.876404494384 -byte* print_char_cursor#95 print_char_cursor zp[2]:2 1100799.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2002.0 +char *memset::dst#2 // dst zp[2]:6 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#17 // reg byte a 1201004.0 +char print_char::ch#7 // reg byte a 200002.0 +char print_char::ch#8 // reg byte a 200002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:2 178.91666666666666 +char *print_char_cursor#147 // print_char_cursor zp[2]:2 6063.0 +char *print_char_cursor#148 // print_char_cursor zp[2]:2 556.5 +char *print_char_cursor#152 // print_char_cursor zp[2]:2 40042.0 +char *print_char_cursor#159 // print_char_cursor zp[2]:2 134.0 +char *print_char_cursor#163 // print_char_cursor zp[2]:2 22.0 +char *print_char_cursor#164 // print_char_cursor zp[2]:2 22.0 +char *print_char_cursor#165 // print_char_cursor zp[2]:2 22.0 +char *print_char_cursor#25 // print_char_cursor zp[2]:2 12515.876404494384 +char *print_char_cursor#95 // print_char_cursor zp[2]:2 1100799.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:4 56.833333333333336 -byte* print_line_cursor#21 print_line_cursor zp[2]:4 2103.0 -byte* print_line_cursor#41 print_line_cursor zp[2]:4 134.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:4 56.833333333333336 +char *print_line_cursor#21 // print_line_cursor zp[2]:4 2103.0 +char *print_line_cursor#41 // print_line_cursor zp[2]:4 134.0 void print_ln() -void print_schar(signed byte print_schar::b) -signed byte print_schar::b -constant signed byte print_schar::b#0 b = -testChar::s -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:6 202.0 -signed word print_sint::w#10 w zp[2]:6 50.5 -signed word print_sint::w#7 w zp[2]:6 202.0 -void print_slong(signed dword print_slong::dw) -signed dword print_slong::dw -signed dword print_slong::dw#0 dw zp[4]:8 202.0 -signed dword print_slong::dw#3 dw zp[4]:8 50.5 -signed dword print_slong::dw#5 dw zp[4]:8 202.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:6 2002.0 -byte* print_str::str#5 str zp[2]:6 1026.25 -byte* print_str::str#8 str zp[2]:6 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 200002.0 -byte~ print_uchar::$2 reg byte x 200002.0 -byte print_uchar::b -byte print_uchar::b#1 reg byte x 20002.0 -byte print_uchar::b#2 reg byte x 20002.0 -byte print_uchar::b#5 reg byte x 55001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:6 202.0 -word print_uint::w#1 w zp[2]:6 2002.0 -word print_uint::w#2 w zp[2]:6 2002.0 -word print_uint::w#5 w zp[2]:6 7368.333333333333 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 dw zp[4]:8 202.0 -dword print_ulong::dw#2 dw zp[4]:8 701.0 +void print_schar(signed char b) +signed char print_schar::b +__constant signed char print_schar::b#0 = -testChar::s // b +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:6 202.0 +int print_sint::w#10 // w zp[2]:6 50.5 +int print_sint::w#7 // w zp[2]:6 202.0 +void print_slong(long dw) +long print_slong::dw +long print_slong::dw#0 // dw zp[4]:8 202.0 +long print_slong::dw#3 // dw zp[4]:8 50.5 +long print_slong::dw#5 // dw zp[4]:8 202.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:6 2002.0 +char *print_str::str#5 // str zp[2]:6 1026.25 +char *print_str::str#8 // str zp[2]:6 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 200002.0 +char print_uchar::$2 // reg byte x 200002.0 +char print_uchar::b +char print_uchar::b#1 // reg byte x 20002.0 +char print_uchar::b#2 // reg byte x 20002.0 +char print_uchar::b#5 // reg byte x 55001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:6 202.0 +unsigned int print_uint::w#1 // w zp[2]:6 2002.0 +unsigned int print_uint::w#2 // w zp[2]:6 2002.0 +unsigned int print_uint::w#5 // w zp[2]:6 7368.333333333333 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // dw zp[4]:8 202.0 +unsigned long print_ulong::dw#2 // dw zp[4]:8 701.0 void testChar() -constant byte testChar::n = $e -constant signed byte testChar::s = -$e -constant byte* testChar::str[7] = "char: " -constant byte testChar::u = $e +__constant char testChar::n = $e +__constant signed char testChar::s = -$e +__constant char testChar::str[7] = "char: " +__constant char testChar::u = $e void testInt() -constant signed word testInt::n = -$578 -constant signed word testInt::s = -$578 -constant byte* testInt::str[6] = "int: " -constant word testInt::u = $578 +__constant int testInt::n = -$578 +__constant int testInt::s = -$578 +__constant char testInt::str[6] = "int: " +__constant unsigned int testInt::u = $578 void testLong() -constant signed dword testLong::n = -$222e0 -constant signed dword testLong::s = -$222e0 -constant byte* testLong::str[7] = "long: " -constant dword testLong::u = $222e0 +__constant long testLong::n = -$222e0 +__constant long testLong::s = -$222e0 +__constant char testLong::str[7] = "long: " +__constant unsigned long testLong::u = $222e0 void testShort() -constant signed word testShort::n = -$578 -constant signed word testShort::s = -$578 -constant byte* testShort::str[8] = "short: " -constant word testShort::u = $578 +__constant int testShort::n = -$578 +__constant int testShort::s = -$578 +__constant char testShort::str[8] = "short: " +__constant unsigned int testShort::u = $578 reg byte x [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ] reg byte a [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ] @@ -3470,29 +3472,29 @@ Score: 2013 // main main: { // print_cls() - // [1] call print_cls + // [1] call print_cls // [11] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // testChar() - // [3] call testChar + // [3] call testChar // [14] phi from main::@1 to testChar [phi:main::@1->testChar] jsr testChar // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // testShort() - // [5] call testShort + // [5] call testShort jsr testShort // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // testInt() - // [7] call testInt + // [7] call testInt jsr testInt // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // testLong() - // [9] call testLong + // [9] call testLong jsr testLong // main::@return // } @@ -3503,7 +3505,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [12] call memset + // [12] call memset // [74] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -3517,7 +3519,7 @@ testChar: { .const n = $e .label s = -$e // print_str("char: ") - // [15] call print_str + // [15] call print_str // [80] phi from testChar to print_str [phi:testChar->print_str] // [80] phi print_char_cursor#159 = print_screen#0 [phi:testChar->print_str#0] -- pbuz1=pbuc1 lda #testChar::@1] // testChar::@1 // print_uchar(u) - // [17] call print_uchar + // [17] call print_uchar // [87] phi from testChar::@1 to print_uchar [phi:testChar::@1->print_uchar] // [87] phi print_char_cursor#152 = print_char_cursor#1 [phi:testChar::@1->print_uchar#0] -- register_copy // [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- vbuxx=vbuc1 @@ -3542,7 +3544,7 @@ testChar: { // [18] phi from testChar::@1 to testChar::@2 [phi:testChar::@1->testChar::@2] // testChar::@2 // print_char(' ') - // [19] call print_char + // [19] call print_char // [95] phi from testChar::@2 to print_char [phi:testChar::@2->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@2->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- vbuaa=vbuc1 @@ -3551,7 +3553,7 @@ testChar: { // [20] phi from testChar::@2 to testChar::@3 [phi:testChar::@2->testChar::@3] // testChar::@3 // print_uchar(n) - // [21] call print_uchar + // [21] call print_uchar // [87] phi from testChar::@3 to print_uchar [phi:testChar::@3->print_uchar] // [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:testChar::@3->print_uchar#0] -- register_copy // [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- vbuxx=vbuc1 @@ -3560,7 +3562,7 @@ testChar: { // [22] phi from testChar::@3 to testChar::@4 [phi:testChar::@3->testChar::@4] // testChar::@4 // print_char(' ') - // [23] call print_char + // [23] call print_char // [95] phi from testChar::@4 to print_char [phi:testChar::@4->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@4->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- vbuaa=vbuc1 @@ -3569,13 +3571,13 @@ testChar: { // [24] phi from testChar::@4 to testChar::@5 [phi:testChar::@4->testChar::@5] // testChar::@5 // print_schar(s) - // [25] call print_schar + // [25] call print_schar // [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar] jsr print_schar // [26] phi from testChar::@5 to testChar::@6 [phi:testChar::@5->testChar::@6] // testChar::@6 // print_ln() - // [27] call print_ln + // [27] call print_ln // [105] phi from testChar::@6 to print_ln [phi:testChar::@6->print_ln] // [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- pbuz1=pbuc1 lda #print_str] // [80] phi print_char_cursor#159 = print_char_cursor#165 [phi:testShort->print_str#0] -- register_copy // [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1 @@ -3615,7 +3617,7 @@ testShort: { // [31] phi from testShort to testShort::@1 [phi:testShort->testShort::@1] // testShort::@1 // print_uint(u) - // [32] call print_uint + // [32] call print_uint // [110] phi from testShort::@1 to print_uint [phi:testShort::@1->print_uint] // [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testShort::@1->print_uint#0] -- register_copy // [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- vwuz1=vwuc1 @@ -3627,7 +3629,7 @@ testShort: { // [33] phi from testShort::@1 to testShort::@2 [phi:testShort::@1->testShort::@2] // testShort::@2 // print_char(' ') - // [34] call print_char + // [34] call print_char // [95] phi from testShort::@2 to print_char [phi:testShort::@2->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@2->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- vbuaa=vbuc1 @@ -3636,7 +3638,7 @@ testShort: { // [35] phi from testShort::@2 to testShort::@3 [phi:testShort::@2->testShort::@3] // testShort::@3 // print_sint(n) - // [36] call print_sint + // [36] call print_sint // [116] phi from testShort::@3 to print_sint [phi:testShort::@3->print_sint] // [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- vwsz1=vwsc1 lda #testShort::@4] // testShort::@4 // print_char(' ') - // [38] call print_char + // [38] call print_char // [95] phi from testShort::@4 to print_char [phi:testShort::@4->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@4->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- vbuaa=vbuc1 @@ -3656,7 +3658,7 @@ testShort: { // [39] phi from testShort::@4 to testShort::@5 [phi:testShort::@4->testShort::@5] // testShort::@5 // print_sint(s) - // [40] call print_sint + // [40] call print_sint // [116] phi from testShort::@5 to print_sint [phi:testShort::@5->print_sint] // [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- vwsz1=vwsc1 lda #testShort::@6] // testShort::@6 // print_ln() - // [42] call print_ln + // [42] call print_ln // [105] phi from testShort::@6 to print_ln [phi:testShort::@6->print_ln] // [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- register_copy jsr print_ln @@ -3691,7 +3693,7 @@ testInt: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("int: ") - // [45] call print_str + // [45] call print_str // [80] phi from testInt to print_str [phi:testInt->print_str] // [80] phi print_char_cursor#159 = print_char_cursor#163 [phi:testInt->print_str#0] -- register_copy // [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1 @@ -3703,7 +3705,7 @@ testInt: { // [46] phi from testInt to testInt::@1 [phi:testInt->testInt::@1] // testInt::@1 // print_uint(u) - // [47] call print_uint + // [47] call print_uint // [110] phi from testInt::@1 to print_uint [phi:testInt::@1->print_uint] // [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testInt::@1->print_uint#0] -- register_copy // [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- vwuz1=vwuc1 @@ -3715,7 +3717,7 @@ testInt: { // [48] phi from testInt::@1 to testInt::@2 [phi:testInt::@1->testInt::@2] // testInt::@2 // print_char(' ') - // [49] call print_char + // [49] call print_char // [95] phi from testInt::@2 to print_char [phi:testInt::@2->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@2->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- vbuaa=vbuc1 @@ -3724,7 +3726,7 @@ testInt: { // [50] phi from testInt::@2 to testInt::@3 [phi:testInt::@2->testInt::@3] // testInt::@3 // print_sint(n) - // [51] call print_sint + // [51] call print_sint // [116] phi from testInt::@3 to print_sint [phi:testInt::@3->print_sint] // [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- vwsz1=vwsc1 lda #testInt::@4] // testInt::@4 // print_char(' ') - // [53] call print_char + // [53] call print_char // [95] phi from testInt::@4 to print_char [phi:testInt::@4->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@4->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- vbuaa=vbuc1 @@ -3744,7 +3746,7 @@ testInt: { // [54] phi from testInt::@4 to testInt::@5 [phi:testInt::@4->testInt::@5] // testInt::@5 // print_sint(s) - // [55] call print_sint + // [55] call print_sint // [116] phi from testInt::@5 to print_sint [phi:testInt::@5->print_sint] // [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- vwsz1=vwsc1 lda #testInt::@6] // testInt::@6 // print_ln() - // [57] call print_ln + // [57] call print_ln // [105] phi from testInt::@6 to print_ln [phi:testInt::@6->print_ln] // [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- register_copy jsr print_ln @@ -3779,7 +3781,7 @@ testLong: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str("long: ") - // [60] call print_str + // [60] call print_str // [80] phi from testLong to print_str [phi:testLong->print_str] // [80] phi print_char_cursor#159 = print_char_cursor#164 [phi:testLong->print_str#0] -- register_copy // [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1 @@ -3791,7 +3793,7 @@ testLong: { // [61] phi from testLong to testLong::@1 [phi:testLong->testLong::@1] // testLong::@1 // print_ulong(u) - // [62] call print_ulong + // [62] call print_ulong // [127] phi from testLong::@1 to print_ulong [phi:testLong::@1->print_ulong] // [127] phi print_char_cursor#148 = print_char_cursor#1 [phi:testLong::@1->print_ulong#0] -- register_copy // [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- vduz1=vduc1 @@ -3807,7 +3809,7 @@ testLong: { // [63] phi from testLong::@1 to testLong::@2 [phi:testLong::@1->testLong::@2] // testLong::@2 // print_char(' ') - // [64] call print_char + // [64] call print_char // [95] phi from testLong::@2 to print_char [phi:testLong::@2->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@2->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- vbuaa=vbuc1 @@ -3816,7 +3818,7 @@ testLong: { // [65] phi from testLong::@2 to testLong::@3 [phi:testLong::@2->testLong::@3] // testLong::@3 // print_slong(n) - // [66] call print_slong + // [66] call print_slong // [133] phi from testLong::@3 to print_slong [phi:testLong::@3->print_slong] // [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- vdsz1=vdsc1 lda #testLong::@4] // testLong::@4 // print_char(' ') - // [68] call print_char + // [68] call print_char // [95] phi from testLong::@4 to print_char [phi:testLong::@4->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@4->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- vbuaa=vbuc1 @@ -3840,7 +3842,7 @@ testLong: { // [69] phi from testLong::@4 to testLong::@5 [phi:testLong::@4->testLong::@5] // testLong::@5 // print_slong(s) - // [70] call print_slong + // [70] call print_slong // [133] phi from testLong::@5 to print_slong [phi:testLong::@5->print_slong] // [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- vdsz1=vdsc1 lda #testLong::@6] // testLong::@6 // print_ln() - // [72] call print_ln + // [72] call print_ln // [105] phi from testLong::@6 to print_ln [phi:testLong::@6->print_ln] // [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- register_copy jsr print_ln @@ -3870,6 +3872,7 @@ testLong: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3877,7 +3880,7 @@ memset: { .label end = str+num .label dst = 6 // [75] phi from memset to memset::@1 [phi:memset->memset::@1] - // [75] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [75] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3915,7 +3918,7 @@ memset: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 // [81] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3939,7 +3942,7 @@ print_str: { // [84] print_char::ch#0 = *print_str::str#5 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [85] call print_char + // [85] call print_char // [95] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy // [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -3955,7 +3958,7 @@ print_str: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [88] print_uchar::$0 = print_uchar::b#5 >> 4 -- vbuaa=vbuxx_ror_4 @@ -3968,7 +3971,7 @@ print_uchar: { // [89] print_char::ch#7 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [90] call print_char + // [90] call print_char // Table of hexadecimal digits // [95] phi from print_uchar to print_char [phi:print_uchar->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#152 [phi:print_uchar->print_char#0] -- register_copy @@ -3982,7 +3985,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [92] print_char::ch#8 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [93] call print_char + // [93] call print_char // [95] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy // [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -3994,7 +3997,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [96] *print_char_cursor#95 = print_char::ch#17 -- _deref_pbuz1=vbuaa @@ -4013,12 +4016,13 @@ print_char: { } // print_schar // Print a signed char as HEX +// void print_schar(signed char b) print_schar: { .const b = -testChar.s // [100] phi from print_schar to print_schar::@1 [phi:print_schar->print_schar::@1] // print_schar::@1 // print_char('-') - // [101] call print_char + // [101] call print_char // [95] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_schar::@1->print_char#0] -- register_copy // [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1 @@ -4027,10 +4031,10 @@ print_schar: { // [102] phi from print_schar::@1 to print_schar::@2 [phi:print_schar::@1->print_schar::@2] // print_schar::@2 // print_uchar((char)b) - // [103] call print_uchar + // [103] call print_uchar // [87] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar] // [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_schar::@2->print_uchar#0] -- register_copy - // [87] phi print_uchar::b#5 = (byte)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1 + // [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1 ldx #b jsr print_uchar // print_schar::@return @@ -4071,13 +4075,13 @@ print_ln: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(6) w) +// void print_uint(__zp(6) unsigned int w) print_uint: { .label w = 6 // print_uchar(BYTE1(w)) // [111] print_uchar::b#1 = byte1 print_uint::w#5 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [112] call print_uchar + // [112] call print_uchar // [87] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [87] phi print_char_cursor#152 = print_char_cursor#147 [phi:print_uint->print_uchar#0] -- register_copy // [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy @@ -4086,7 +4090,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [113] print_uchar::b#2 = byte0 print_uint::w#5 -- vbuxx=_byte0_vwuz1 ldx.z w - // [114] call print_uchar + // [114] call print_uchar // [87] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy // [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -4098,7 +4102,7 @@ print_uint: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp(6) w) +// void print_sint(__zp(6) int w) print_sint: { .label w = 6 // if(w<0) @@ -4108,7 +4112,7 @@ print_sint: { // [118] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3] // print_sint::@3 // print_char(' ') - // [119] call print_char + // [119] call print_char // [95] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@3->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 @@ -4119,8 +4123,8 @@ print_sint: { // print_sint::@2 __b2: // print_uint((unsigned int)w) - // [121] print_uint::w#0 = (word)print_sint::w#7 - // [122] call print_uint + // [121] print_uint::w#0 = (unsigned int)print_sint::w#7 + // [122] call print_uint // [110] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint] // [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_sint::@2->print_uint#0] -- register_copy // [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy @@ -4133,7 +4137,7 @@ print_sint: { // print_sint::@1 __b1: // print_char('-') - // [125] call print_char + // [125] call print_char // [95] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@1->print_char#0] -- register_copy // [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 @@ -4153,7 +4157,7 @@ print_sint: { } // print_ulong // Print a unsigned long as HEX -// print_ulong(dword zp(8) dw) +// void print_ulong(__zp(8) unsigned long dw) print_ulong: { .label dw = 8 // print_uint(WORD1(dw)) @@ -4162,7 +4166,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+3 sta.z print_uint.w+1 - // [129] call print_uint + // [129] call print_uint // [110] phi from print_ulong to print_uint [phi:print_ulong->print_uint] // [110] phi print_char_cursor#147 = print_char_cursor#148 [phi:print_ulong->print_uint#0] -- register_copy // [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- register_copy @@ -4174,7 +4178,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+1 sta.z print_uint.w+1 - // [131] call print_uint + // [131] call print_uint // [110] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint] // [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_ulong::@1->print_uint#0] -- register_copy // [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- register_copy @@ -4186,7 +4190,7 @@ print_ulong: { } // print_slong // Print a signed long as HEX -// print_slong(signed dword zp(8) dw) +// void print_slong(__zp(8) long dw) print_slong: { .label dw = 8 // if(dw<0) @@ -4196,7 +4200,7 @@ print_slong: { // [135] phi from print_slong to print_slong::@3 [phi:print_slong->print_slong::@3] // print_slong::@3 // print_char(' ') - // [136] call print_char + // [136] call print_char // [95] phi from print_slong::@3 to print_char [phi:print_slong::@3->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@3->print_char#0] -- register_copy // [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- vbuaa=vbuc1 @@ -4207,8 +4211,8 @@ print_slong: { // print_slong::@2 __b2: // print_ulong((unsigned long)dw) - // [138] print_ulong::dw#0 = (dword)print_slong::dw#5 - // [139] call print_ulong + // [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5 + // [139] call print_ulong // [127] phi from print_slong::@2 to print_ulong [phi:print_slong::@2->print_ulong] // [127] phi print_char_cursor#148 = print_char_cursor#25 [phi:print_slong::@2->print_ulong#0] -- register_copy // [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- register_copy @@ -4221,7 +4225,7 @@ print_slong: { // print_slong::@1 __b1: // print_char('-') - // [142] call print_char + // [142] call print_char // [95] phi from print_slong::@1 to print_char [phi:print_slong::@1->print_char] // [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@1->print_char#0] -- register_copy // [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- vbuaa=vbuc1 diff --git a/src/test/ref/c-types.sym b/src/test/ref/c-types.sym index 24a7bb21c..0c6a18759 100644 --- a/src/test/ref/c-types.sym +++ b/src/test/ref/c-types.sym @@ -1,102 +1,102 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2002.0 -byte* memset::dst#2 dst zp[2]:6 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#17 reg byte a 1201004.0 -byte print_char::ch#7 reg byte a 200002.0 -byte print_char::ch#8 reg byte a 200002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:2 178.91666666666666 -byte* print_char_cursor#147 print_char_cursor zp[2]:2 6063.0 -byte* print_char_cursor#148 print_char_cursor zp[2]:2 556.5 -byte* print_char_cursor#152 print_char_cursor zp[2]:2 40042.0 -byte* print_char_cursor#159 print_char_cursor zp[2]:2 134.0 -byte* print_char_cursor#163 print_char_cursor zp[2]:2 22.0 -byte* print_char_cursor#164 print_char_cursor zp[2]:2 22.0 -byte* print_char_cursor#165 print_char_cursor zp[2]:2 22.0 -byte* print_char_cursor#25 print_char_cursor zp[2]:2 12515.876404494384 -byte* print_char_cursor#95 print_char_cursor zp[2]:2 1100799.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2002.0 +char *memset::dst#2 // dst zp[2]:6 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#17 // reg byte a 1201004.0 +char print_char::ch#7 // reg byte a 200002.0 +char print_char::ch#8 // reg byte a 200002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:2 178.91666666666666 +char *print_char_cursor#147 // print_char_cursor zp[2]:2 6063.0 +char *print_char_cursor#148 // print_char_cursor zp[2]:2 556.5 +char *print_char_cursor#152 // print_char_cursor zp[2]:2 40042.0 +char *print_char_cursor#159 // print_char_cursor zp[2]:2 134.0 +char *print_char_cursor#163 // print_char_cursor zp[2]:2 22.0 +char *print_char_cursor#164 // print_char_cursor zp[2]:2 22.0 +char *print_char_cursor#165 // print_char_cursor zp[2]:2 22.0 +char *print_char_cursor#25 // print_char_cursor zp[2]:2 12515.876404494384 +char *print_char_cursor#95 // print_char_cursor zp[2]:2 1100799.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:4 56.833333333333336 -byte* print_line_cursor#21 print_line_cursor zp[2]:4 2103.0 -byte* print_line_cursor#41 print_line_cursor zp[2]:4 134.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:4 56.833333333333336 +char *print_line_cursor#21 // print_line_cursor zp[2]:4 2103.0 +char *print_line_cursor#41 // print_line_cursor zp[2]:4 134.0 void print_ln() -void print_schar(signed byte print_schar::b) -signed byte print_schar::b -constant signed byte print_schar::b#0 b = -testChar::s -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:6 202.0 -signed word print_sint::w#10 w zp[2]:6 50.5 -signed word print_sint::w#7 w zp[2]:6 202.0 -void print_slong(signed dword print_slong::dw) -signed dword print_slong::dw -signed dword print_slong::dw#0 dw zp[4]:8 202.0 -signed dword print_slong::dw#3 dw zp[4]:8 50.5 -signed dword print_slong::dw#5 dw zp[4]:8 202.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:6 2002.0 -byte* print_str::str#5 str zp[2]:6 1026.25 -byte* print_str::str#8 str zp[2]:6 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 200002.0 -byte~ print_uchar::$2 reg byte x 200002.0 -byte print_uchar::b -byte print_uchar::b#1 reg byte x 20002.0 -byte print_uchar::b#2 reg byte x 20002.0 -byte print_uchar::b#5 reg byte x 55001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:6 202.0 -word print_uint::w#1 w zp[2]:6 2002.0 -word print_uint::w#2 w zp[2]:6 2002.0 -word print_uint::w#5 w zp[2]:6 7368.333333333333 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 dw zp[4]:8 202.0 -dword print_ulong::dw#2 dw zp[4]:8 701.0 +void print_schar(signed char b) +signed char print_schar::b +__constant signed char print_schar::b#0 = -testChar::s // b +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:6 202.0 +int print_sint::w#10 // w zp[2]:6 50.5 +int print_sint::w#7 // w zp[2]:6 202.0 +void print_slong(long dw) +long print_slong::dw +long print_slong::dw#0 // dw zp[4]:8 202.0 +long print_slong::dw#3 // dw zp[4]:8 50.5 +long print_slong::dw#5 // dw zp[4]:8 202.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:6 2002.0 +char *print_str::str#5 // str zp[2]:6 1026.25 +char *print_str::str#8 // str zp[2]:6 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 200002.0 +char print_uchar::$2 // reg byte x 200002.0 +char print_uchar::b +char print_uchar::b#1 // reg byte x 20002.0 +char print_uchar::b#2 // reg byte x 20002.0 +char print_uchar::b#5 // reg byte x 55001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:6 202.0 +unsigned int print_uint::w#1 // w zp[2]:6 2002.0 +unsigned int print_uint::w#2 // w zp[2]:6 2002.0 +unsigned int print_uint::w#5 // w zp[2]:6 7368.333333333333 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // dw zp[4]:8 202.0 +unsigned long print_ulong::dw#2 // dw zp[4]:8 701.0 void testChar() -constant byte testChar::n = $e -constant signed byte testChar::s = -$e -constant byte* testChar::str[7] = "char: " -constant byte testChar::u = $e +__constant char testChar::n = $e +__constant signed char testChar::s = -$e +__constant char testChar::str[7] = "char: " +__constant char testChar::u = $e void testInt() -constant signed word testInt::n = -$578 -constant signed word testInt::s = -$578 -constant byte* testInt::str[6] = "int: " -constant word testInt::u = $578 +__constant int testInt::n = -$578 +__constant int testInt::s = -$578 +__constant char testInt::str[6] = "int: " +__constant unsigned int testInt::u = $578 void testLong() -constant signed dword testLong::n = -$222e0 -constant signed dword testLong::s = -$222e0 -constant byte* testLong::str[7] = "long: " -constant dword testLong::u = $222e0 +__constant long testLong::n = -$222e0 +__constant long testLong::s = -$222e0 +__constant char testLong::str[7] = "long: " +__constant unsigned long testLong::u = $222e0 void testShort() -constant signed word testShort::n = -$578 -constant signed word testShort::s = -$578 -constant byte* testShort::str[8] = "short: " -constant word testShort::u = $578 +__constant int testShort::n = -$578 +__constant int testShort::s = -$578 +__constant char testShort::str[8] = "short: " +__constant unsigned int testShort::u = $578 reg byte x [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ] reg byte a [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ] diff --git a/src/test/ref/c64dtv-8bppcharstretch.asm b/src/test/ref/c64dtv-8bppcharstretch.asm index 1ced7ee6a..585c47741 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.asm +++ b/src/test/ref/c64dtv-8bppcharstretch.asm @@ -448,7 +448,7 @@ gfx_init_plane_charset8: { // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff // The actual memory addressed will be $4000*cpuSegmentIdx -// dtvSetCpuBankSegment1(byte register(A) cpuBankIdx) +// void dtvSetCpuBankSegment1(__register(A) char cpuBankIdx) dtvSetCpuBankSegment1: { // Move CPU BANK 1 SEGMENT ($4000-$7fff) .label cpuBank = $ff diff --git a/src/test/ref/c64dtv-8bppcharstretch.cfg b/src/test/ref/c64dtv-8bppcharstretch.cfg index d179b201f..624193041 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.cfg +++ b/src/test/ref/c64dtv-8bppcharstretch.cfg @@ -4,7 +4,7 @@ main: scope:[main] from asm { sei } [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [2] *PROCPORT = PROCPORT_RAM_IO - [3] call gfx_init + [3] call gfx_init to:main::@6 main::@6: scope:[main] from main [4] *DTV_FEATURE = DTV_FEATURE_ENABLE @@ -23,9 +23,9 @@ main::@6: scope:[main] from main [17] *DTV_PLANEB_STEP = 0 [18] *DTV_PLANEB_MODULO_LO = 0 [19] *DTV_PLANEB_MODULO_HI = 0 - [20] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 - [21] *((byte*)CIA2) = 3^(byte)(word)SCREEN/$4000 - [22] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 + [20] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + [21] *((char *)CIA2) = 3^(char)(unsigned int)SCREEN/$4000 + [22] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 to:main::@1 main::@1: scope:[main] from main::@1 main::@6 [23] main::j#2 = phi( main::@1/main::j#1, main::@6/0 ) @@ -58,11 +58,11 @@ main::@5: scope:[main] from main::@4 main::@5 void gfx_init() gfx_init: scope:[gfx_init] from main [40] phi() - [41] call gfx_init_screen0 + [41] call gfx_init_screen0 to:gfx_init::@1 gfx_init::@1: scope:[gfx_init] from gfx_init [42] phi() - [43] call gfx_init_plane_charset8 + [43] call gfx_init_plane_charset8 to:gfx_init::@return gfx_init::@return: scope:[gfx_init] from gfx_init::@1 [44] return @@ -99,7 +99,7 @@ gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 void gfx_init_plane_charset8() gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1 [59] phi() - [60] call dtvSetCpuBankSegment1 + [60] call dtvSetCpuBankSegment1 to:gfx_init_plane_charset8::@9 gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8 [61] *PROCPORT = PROCPORT_RAM_CHARROM @@ -107,7 +107,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [62] gfx_init_plane_charset8::ch#8 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::ch#1, gfx_init_plane_charset8::@9/0 ) [62] gfx_init_plane_charset8::col#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::col#1, gfx_init_plane_charset8::@9/0 ) - [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*) 16384 ) + [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(char *) 16384 ) [62] gfx_init_plane_charset8::chargen#3 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::chargen#1, gfx_init_plane_charset8::@9/CHARGEN+1 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -148,15 +148,15 @@ gfx_init_plane_charset8::@7: scope:[gfx_init_plane_charset8] from gfx_init_plan to:gfx_init_plane_charset8::@8 gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 [81] *PROCPORT = PROCPORT_RAM_IO - [82] call dtvSetCpuBankSegment1 + [82] call dtvSetCpuBankSegment1 to:gfx_init_plane_charset8::@return gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8 [83] return to:@return -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) +void dtvSetCpuBankSegment1(char cpuBankIdx) dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8 - [84] dtvSetCpuBankSegment1::cpuBankIdx#2 = phi( gfx_init_plane_charset8/gfx_init_plane_charset8::gfxbCpuBank#0, gfx_init_plane_charset8::@8/(byte)$4000/$4000 ) + [84] dtvSetCpuBankSegment1::cpuBankIdx#2 = phi( gfx_init_plane_charset8/gfx_init_plane_charset8::gfxbCpuBank#0, gfx_init_plane_charset8::@8/(char)$4000/$4000 ) [85] *dtvSetCpuBankSegment1::cpuBank = dtvSetCpuBankSegment1::cpuBankIdx#2 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log index 5b4011104..44bfdb3ef 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/ref/c64dtv-8bppcharstretch.log @@ -1,9 +1,9 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) +void dtvSetCpuBankSegment1(char cpuBankIdx) dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8 dtvSetCpuBankSegment1::cpuBankIdx#2 = phi( gfx_init_plane_charset8/dtvSetCpuBankSegment1::cpuBankIdx#0, gfx_init_plane_charset8::@8/dtvSetCpuBankSegment1::cpuBankIdx#1 ) *dtvSetCpuBankSegment1::cpuBank = dtvSetCpuBankSegment1::cpuBankIdx#2 @@ -18,7 +18,7 @@ main: scope:[main] from __start::@1 asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - call gfx_init + call gfx_init to:main::@7 main::@7: scope:[main] from main *DTV_FEATURE = DTV_FEATURE_ENABLE @@ -37,9 +37,9 @@ main::@7: scope:[main] from main *DTV_PLANEB_STEP = 0 *DTV_PLANEB_MODULO_LO = 0 *DTV_PLANEB_MODULO_HI = 0 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)SCREEN/$4000 - *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(char)(unsigned int)SCREEN/$4000 + *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 main::j#0 = 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@7 @@ -83,10 +83,10 @@ main::@return: scope:[main] from main::@2 void gfx_init() gfx_init: scope:[gfx_init] from main - call gfx_init_screen0 + call gfx_init_screen0 to:gfx_init::@1 gfx_init::@1: scope:[gfx_init] from gfx_init - call gfx_init_plane_charset8 + call gfx_init_plane_charset8 to:gfx_init::@2 gfx_init::@2: scope:[gfx_init] from gfx_init::@1 to:gfx_init::@return @@ -131,14 +131,14 @@ gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 void gfx_init_plane_charset8() gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1 - gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)CHARSET8/$4000 + gfx_init_plane_charset8::gfxbCpuBank#0 = (char)CHARSET8/$4000 dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_plane_charset8::gfxbCpuBank#0 - call dtvSetCpuBankSegment1 + call dtvSetCpuBankSegment1 to:gfx_init_plane_charset8::@9 gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8 gfx_init_plane_charset8::gfxbCpuBank#2 = phi( gfx_init_plane_charset8/gfx_init_plane_charset8::gfxbCpuBank#0 ) gfx_init_plane_charset8::gfxbCpuBank#1 = ++ gfx_init_plane_charset8::gfxbCpuBank#2 - gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(word)CHARSET8&$3fff + gfx_init_plane_charset8::gfxa#0 = (char *)$4000+(unsigned int)CHARSET8&$3fff gfx_init_plane_charset8::chargen#0 = CHARGEN+1 *PROCPORT = PROCPORT_RAM_CHARROM gfx_init_plane_charset8::col#0 = 0 @@ -224,8 +224,8 @@ gfx_init_plane_charset8::@7: scope:[gfx_init_plane_charset8] from gfx_init_plan to:gfx_init_plane_charset8::@8 gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 *PROCPORT = PROCPORT_RAM_IO - dtvSetCpuBankSegment1::cpuBankIdx#1 = (byte)$4000/$4000 - call dtvSetCpuBankSegment1 + dtvSetCpuBankSegment1::cpuBankIdx#1 = (char)$4000/$4000 + call dtvSetCpuBankSegment1 to:gfx_init_plane_charset8::@10 gfx_init_plane_charset8::@10: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8 to:gfx_init_plane_charset8::@return @@ -239,7 +239,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -248,169 +248,169 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const CHARGEN = (byte*)$d000 -constant byte* const CHARSET8 = (byte*)$8000 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_CHUNKY = $40 -constant byte* const DTV_CONTROL = (byte*)$d03c -constant byte* const DTV_FEATURE = (byte*)$d03f -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant const byte DTV_LINEAR = 1 -constant byte* const DTV_PALETTE = (byte*)$d200 -constant byte* const DTV_PLANEA_MODULO_HI = (byte*)$d039 -constant byte* const DTV_PLANEA_MODULO_LO = (byte*)$d038 -constant byte* const DTV_PLANEA_START_HI = (byte*)$d045 -constant byte* const DTV_PLANEA_START_LO = (byte*)$d03a -constant byte* const DTV_PLANEA_START_MI = (byte*)$d03b -constant byte* const DTV_PLANEA_STEP = (byte*)$d046 -constant byte* const DTV_PLANEB_MODULO_HI = (byte*)$d048 -constant byte* const DTV_PLANEB_MODULO_LO = (byte*)$d047 -constant byte* const DTV_PLANEB_START_HI = (byte*)$d04b -constant byte* const DTV_PLANEB_START_LO = (byte*)$d049 -constant byte* const DTV_PLANEB_START_MI = (byte*)$d04a -constant byte* const DTV_PLANEB_STEP = (byte*)$d04c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*)$d012 -constant byte* const SCREEN = (byte*)$7c00 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant byte* const VICII_CONTROL2 = (byte*)$d016 -constant const byte VICII_CSEL = 8 -constant const byte VICII_DEN = $10 -constant const byte VICII_ECM = $40 -constant const byte VICII_MCM = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const CHARGEN = (char *)$d000 +__constant char * const CHARSET8 = (char *)$8000 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_CHUNKY = $40 +__constant char * const DTV_CONTROL = (char *)$d03c +__constant char * const DTV_FEATURE = (char *)$d03f +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant const char DTV_LINEAR = 1 +__constant char * const DTV_PALETTE = (char *)$d200 +__constant char * const DTV_PLANEA_MODULO_HI = (char *)$d039 +__constant char * const DTV_PLANEA_MODULO_LO = (char *)$d038 +__constant char * const DTV_PLANEA_START_HI = (char *)$d045 +__constant char * const DTV_PLANEA_START_LO = (char *)$d03a +__constant char * const DTV_PLANEA_START_MI = (char *)$d03b +__constant char * const DTV_PLANEA_STEP = (char *)$d046 +__constant char * const DTV_PLANEB_MODULO_HI = (char *)$d048 +__constant char * const DTV_PLANEB_MODULO_LO = (char *)$d047 +__constant char * const DTV_PLANEB_START_HI = (char *)$d04b +__constant char * const DTV_PLANEB_START_LO = (char *)$d049 +__constant char * const DTV_PLANEB_START_MI = (char *)$d04a +__constant char * const DTV_PLANEB_STEP = (char *)$d04c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *)$d012 +__constant char * const SCREEN = (char *)$7c00 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant char * const VICII_CONTROL2 = (char *)$d016 +__constant const char VICII_CSEL = 8 +__constant const char VICII_DEN = $10 +__constant const char VICII_ECM = $40 +__constant const char VICII_MCM = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 void __start() -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -constant byte* dtvSetCpuBankSegment1::cpuBank = (byte*)$ff -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#0 -byte dtvSetCpuBankSegment1::cpuBankIdx#1 -byte dtvSetCpuBankSegment1::cpuBankIdx#2 +void dtvSetCpuBankSegment1(char cpuBankIdx) +__constant char *dtvSetCpuBankSegment1::cpuBank = (char *)$ff +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#0 +char dtvSetCpuBankSegment1::cpuBankIdx#1 +char dtvSetCpuBankSegment1::cpuBankIdx#2 void gfx_init() void gfx_init_plane_charset8() -number~ gfx_init_plane_charset8::$2 -bool~ gfx_init_plane_charset8::$3 -bool~ gfx_init_plane_charset8::$4 -number~ gfx_init_plane_charset8::$5 -bool~ gfx_init_plane_charset8::$6 -bool~ gfx_init_plane_charset8::$7 -bool~ gfx_init_plane_charset8::$8 -byte gfx_init_plane_charset8::bits -byte gfx_init_plane_charset8::bits#0 -byte gfx_init_plane_charset8::bits#1 -byte gfx_init_plane_charset8::bits#2 -byte gfx_init_plane_charset8::bits#3 -byte gfx_init_plane_charset8::bits#4 -byte gfx_init_plane_charset8::c -byte gfx_init_plane_charset8::c#0 -byte gfx_init_plane_charset8::c#1 -byte gfx_init_plane_charset8::c#2 -byte gfx_init_plane_charset8::ch -byte gfx_init_plane_charset8::ch#0 -byte gfx_init_plane_charset8::ch#1 -byte gfx_init_plane_charset8::ch#2 -byte gfx_init_plane_charset8::ch#3 -byte gfx_init_plane_charset8::ch#4 -byte gfx_init_plane_charset8::ch#5 -byte gfx_init_plane_charset8::ch#6 -byte gfx_init_plane_charset8::ch#7 -byte gfx_init_plane_charset8::ch#8 -byte* gfx_init_plane_charset8::chargen -byte* gfx_init_plane_charset8::chargen#0 -byte* gfx_init_plane_charset8::chargen#1 -byte* gfx_init_plane_charset8::chargen#2 -byte* gfx_init_plane_charset8::chargen#3 -byte* gfx_init_plane_charset8::chargen#4 -byte* gfx_init_plane_charset8::chargen#5 -byte* gfx_init_plane_charset8::chargen#6 -byte* gfx_init_plane_charset8::chargen#7 -byte* gfx_init_plane_charset8::chargen#8 -byte gfx_init_plane_charset8::col -byte gfx_init_plane_charset8::col#0 -byte gfx_init_plane_charset8::col#1 -byte gfx_init_plane_charset8::col#2 -byte gfx_init_plane_charset8::col#3 -byte gfx_init_plane_charset8::col#4 -byte gfx_init_plane_charset8::col#5 -byte gfx_init_plane_charset8::col#6 -byte gfx_init_plane_charset8::col#7 -byte gfx_init_plane_charset8::col#8 -byte gfx_init_plane_charset8::cp -byte gfx_init_plane_charset8::cp#0 -byte gfx_init_plane_charset8::cp#1 -byte gfx_init_plane_charset8::cp#2 -byte gfx_init_plane_charset8::cp#3 -byte gfx_init_plane_charset8::cp#4 -byte gfx_init_plane_charset8::cr -byte gfx_init_plane_charset8::cr#0 -byte gfx_init_plane_charset8::cr#1 -byte gfx_init_plane_charset8::cr#2 -byte gfx_init_plane_charset8::cr#3 -byte gfx_init_plane_charset8::cr#4 -byte gfx_init_plane_charset8::cr#5 -byte gfx_init_plane_charset8::cr#6 -byte* gfx_init_plane_charset8::gfxa -byte* gfx_init_plane_charset8::gfxa#0 -byte* gfx_init_plane_charset8::gfxa#1 -byte* gfx_init_plane_charset8::gfxa#2 -byte* gfx_init_plane_charset8::gfxa#3 -byte* gfx_init_plane_charset8::gfxa#4 -byte* gfx_init_plane_charset8::gfxa#5 -byte* gfx_init_plane_charset8::gfxa#6 -byte* gfx_init_plane_charset8::gfxa#7 -byte* gfx_init_plane_charset8::gfxa#8 -byte gfx_init_plane_charset8::gfxbCpuBank -byte gfx_init_plane_charset8::gfxbCpuBank#0 -byte gfx_init_plane_charset8::gfxbCpuBank#1 -byte gfx_init_plane_charset8::gfxbCpuBank#2 +number gfx_init_plane_charset8::$2 +bool gfx_init_plane_charset8::$3 +bool gfx_init_plane_charset8::$4 +number gfx_init_plane_charset8::$5 +bool gfx_init_plane_charset8::$6 +bool gfx_init_plane_charset8::$7 +bool gfx_init_plane_charset8::$8 +char gfx_init_plane_charset8::bits +char gfx_init_plane_charset8::bits#0 +char gfx_init_plane_charset8::bits#1 +char gfx_init_plane_charset8::bits#2 +char gfx_init_plane_charset8::bits#3 +char gfx_init_plane_charset8::bits#4 +char gfx_init_plane_charset8::c +char gfx_init_plane_charset8::c#0 +char gfx_init_plane_charset8::c#1 +char gfx_init_plane_charset8::c#2 +char gfx_init_plane_charset8::ch +char gfx_init_plane_charset8::ch#0 +char gfx_init_plane_charset8::ch#1 +char gfx_init_plane_charset8::ch#2 +char gfx_init_plane_charset8::ch#3 +char gfx_init_plane_charset8::ch#4 +char gfx_init_plane_charset8::ch#5 +char gfx_init_plane_charset8::ch#6 +char gfx_init_plane_charset8::ch#7 +char gfx_init_plane_charset8::ch#8 +char *gfx_init_plane_charset8::chargen +char *gfx_init_plane_charset8::chargen#0 +char *gfx_init_plane_charset8::chargen#1 +char *gfx_init_plane_charset8::chargen#2 +char *gfx_init_plane_charset8::chargen#3 +char *gfx_init_plane_charset8::chargen#4 +char *gfx_init_plane_charset8::chargen#5 +char *gfx_init_plane_charset8::chargen#6 +char *gfx_init_plane_charset8::chargen#7 +char *gfx_init_plane_charset8::chargen#8 +char gfx_init_plane_charset8::col +char gfx_init_plane_charset8::col#0 +char gfx_init_plane_charset8::col#1 +char gfx_init_plane_charset8::col#2 +char gfx_init_plane_charset8::col#3 +char gfx_init_plane_charset8::col#4 +char gfx_init_plane_charset8::col#5 +char gfx_init_plane_charset8::col#6 +char gfx_init_plane_charset8::col#7 +char gfx_init_plane_charset8::col#8 +char gfx_init_plane_charset8::cp +char gfx_init_plane_charset8::cp#0 +char gfx_init_plane_charset8::cp#1 +char gfx_init_plane_charset8::cp#2 +char gfx_init_plane_charset8::cp#3 +char gfx_init_plane_charset8::cp#4 +char gfx_init_plane_charset8::cr +char gfx_init_plane_charset8::cr#0 +char gfx_init_plane_charset8::cr#1 +char gfx_init_plane_charset8::cr#2 +char gfx_init_plane_charset8::cr#3 +char gfx_init_plane_charset8::cr#4 +char gfx_init_plane_charset8::cr#5 +char gfx_init_plane_charset8::cr#6 +char *gfx_init_plane_charset8::gfxa +char *gfx_init_plane_charset8::gfxa#0 +char *gfx_init_plane_charset8::gfxa#1 +char *gfx_init_plane_charset8::gfxa#2 +char *gfx_init_plane_charset8::gfxa#3 +char *gfx_init_plane_charset8::gfxa#4 +char *gfx_init_plane_charset8::gfxa#5 +char *gfx_init_plane_charset8::gfxa#6 +char *gfx_init_plane_charset8::gfxa#7 +char *gfx_init_plane_charset8::gfxa#8 +char gfx_init_plane_charset8::gfxbCpuBank +char gfx_init_plane_charset8::gfxbCpuBank#0 +char gfx_init_plane_charset8::gfxbCpuBank#1 +char gfx_init_plane_charset8::gfxbCpuBank#2 void gfx_init_screen0() -number~ gfx_init_screen0::$0 -number~ gfx_init_screen0::$1 -number~ gfx_init_screen0::$2 -number~ gfx_init_screen0::$3 -bool~ gfx_init_screen0::$4 -bool~ gfx_init_screen0::$5 -byte* gfx_init_screen0::ch -byte* gfx_init_screen0::ch#0 -byte* gfx_init_screen0::ch#1 -byte* gfx_init_screen0::ch#2 -byte* gfx_init_screen0::ch#3 -byte* gfx_init_screen0::ch#4 -byte gfx_init_screen0::cx -byte gfx_init_screen0::cx#0 -byte gfx_init_screen0::cx#1 -byte gfx_init_screen0::cx#2 -byte gfx_init_screen0::cy -byte gfx_init_screen0::cy#0 -byte gfx_init_screen0::cy#1 -byte gfx_init_screen0::cy#2 -byte gfx_init_screen0::cy#3 -byte gfx_init_screen0::cy#4 +number gfx_init_screen0::$0 +number gfx_init_screen0::$1 +number gfx_init_screen0::$2 +number gfx_init_screen0::$3 +bool gfx_init_screen0::$4 +bool gfx_init_screen0::$5 +char *gfx_init_screen0::ch +char *gfx_init_screen0::ch#0 +char *gfx_init_screen0::ch#1 +char *gfx_init_screen0::ch#2 +char *gfx_init_screen0::ch#3 +char *gfx_init_screen0::ch#4 +char gfx_init_screen0::cx +char gfx_init_screen0::cx#0 +char gfx_init_screen0::cx#1 +char gfx_init_screen0::cx#2 +char gfx_init_screen0::cy +char gfx_init_screen0::cy#0 +char gfx_init_screen0::cy#1 +char gfx_init_screen0::cy#2 +char gfx_init_screen0::cy#3 +char gfx_init_screen0::cy#4 void main() -bool~ main::$1 -bool~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -bool~ main::$6 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::rst -byte main::rst#0 -byte main::rst#1 -byte main::rst#2 +bool main::$1 +bool main::$2 +number main::$3 +number main::$4 +number main::$5 +bool main::$6 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::rst +char main::rst#0 +char main::rst#1 +char main::rst#2 Adding number conversion cast (unumber) VICII_DEN|VICII_ECM|VICII_RSEL|3 in *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *VICII_CONTROL1 = ((unumber)) VICII_DEN|VICII_ECM|VICII_RSEL|3 @@ -422,15 +422,15 @@ Adding number conversion cast (unumber) 0 in *DTV_PLANEB_START_HI = 0 Adding number conversion cast (unumber) 0 in *DTV_PLANEB_STEP = 0 Adding number conversion cast (unumber) 0 in *DTV_PLANEB_MODULO_LO = 0 Adding number conversion cast (unumber) 0 in *DTV_PLANEB_MODULO_HI = 0 -Adding number conversion cast (unumber) 3 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -Adding number conversion cast (unumber) 3^(byte)(word)SCREEN/$4000 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)SCREEN/$4000 -Adding number conversion cast (unumber) 3 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) 3^(byte)(word)SCREEN/$4000 -Adding number conversion cast (unumber) $4000 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) (unumber)3^(byte)(word)SCREEN/$4000 -Adding number conversion cast (unumber) (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 -Adding number conversion cast (unumber) byte1 (word)SCREEN&$3fff/4 in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&$3fff/$40|(unumber)byte1 (word)SCREEN&$3fff/4 -Adding number conversion cast (unumber) 4 in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&(unumber)$3fff/$40|(unumber)byte1 (word)SCREEN&$3fff/4 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&(unumber)$3fff/$40|(unumber)byte1 (word)SCREEN&$3fff/(unumber)4 +Adding number conversion cast (unumber) 3 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 +Adding number conversion cast (unumber) 3^(char)(unsigned int)SCREEN/$4000 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(char)(unsigned int)SCREEN/$4000 +Adding number conversion cast (unumber) 3 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) 3^(char)(unsigned int)SCREEN/$4000 +Adding number conversion cast (unumber) $4000 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) (unumber)3^(char)(unsigned int)SCREEN/$4000 +Adding number conversion cast (unumber) (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 +Adding number conversion cast (unumber) byte1 (unsigned int)SCREEN&$3fff/4 in *VICII_MEMORY = ((unumber)) (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (char)(unsigned int)SCREEN&$3fff/$40|(unumber)byte1 (unsigned int)SCREEN&$3fff/4 +Adding number conversion cast (unumber) 4 in *VICII_MEMORY = ((unumber)) (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unumber)byte1 (unsigned int)SCREEN&$3fff/4 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unumber)byte1 (unsigned int)SCREEN&$3fff/(unumber)4 Adding number conversion cast (unumber) VICII_DEN|VICII_ECM|VICII_RSEL|3 in *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *VICII_CONTROL1 = ((unumber)) VICII_DEN|VICII_ECM|VICII_RSEL|3 Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0 @@ -447,9 +447,9 @@ Adding number conversion cast (unumber) gfx_init_screen0::$1 in gfx_init_screen0 Adding number conversion cast (unumber) $f in gfx_init_screen0::$2 = gfx_init_screen0::cx#2 & $f Adding number conversion cast (unumber) gfx_init_screen0::$2 in gfx_init_screen0::$2 = gfx_init_screen0::cx#2 & (unumber)$f Adding number conversion cast (unumber) gfx_init_screen0::$3 in gfx_init_screen0::$3 = gfx_init_screen0::$1 | gfx_init_screen0::$2 -Adding number conversion cast (unumber) $4000 in gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)CHARSET8/$4000 -Adding number conversion cast (unumber) (word)CHARSET8&$3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(word)CHARSET8&$3fff -Adding number conversion cast (unumber) $3fff in gfx_init_plane_charset8::gfxa#0 = (byte*)$4000+(unumber)(word)CHARSET8&$3fff +Adding number conversion cast (unumber) $4000 in gfx_init_plane_charset8::gfxbCpuBank#0 = (char)CHARSET8/$4000 +Adding number conversion cast (unumber) (unsigned int)CHARSET8&$3fff in gfx_init_plane_charset8::gfxa#0 = (char *)$4000+(unsigned int)CHARSET8&$3fff +Adding number conversion cast (unumber) $3fff in gfx_init_plane_charset8::gfxa#0 = (char *)$4000+(unumber)(unsigned int)CHARSET8&$3fff Adding number conversion cast (unumber) 1 in gfx_init_plane_charset8::chargen#0 = CHARGEN+1 Adding number conversion cast (unumber) $80 in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & $80 Adding number conversion cast (unumber) gfx_init_plane_charset8::$2 in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & (unumber)$80 @@ -457,7 +457,7 @@ Adding number conversion cast (unumber) 0 in gfx_init_plane_charset8::$3 = gfx_i Adding number conversion cast (unumber) 2 in gfx_init_plane_charset8::$5 = gfx_init_plane_charset8::bits#3 * 2 Adding number conversion cast (unumber) gfx_init_plane_charset8::$5 in gfx_init_plane_charset8::$5 = gfx_init_plane_charset8::bits#3 * (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = ((unumber)) (byte)(word)SCREEN&(unumber)$3fff/$40|(unumber)byte1 (word)SCREEN&(unumber)$3fff/(unumber)4 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = ((unumber)) (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unumber)byte1 (unsigned int)SCREEN&(unumber)$3fff/(unumber)4 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *VICII_CONTROL1 = (unumber)VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Inlining cast *DTV_PLANEA_START_HI = (unumber)0 @@ -468,39 +468,39 @@ Inlining cast *DTV_PLANEB_START_HI = (unumber)0 Inlining cast *DTV_PLANEB_STEP = (unumber)0 Inlining cast *DTV_PLANEB_MODULO_LO = (unumber)0 Inlining cast *DTV_PLANEB_MODULO_HI = (unumber)0 -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = (unumber)(unumber)3^(byte)(word)SCREEN/(unumber)$4000 -Inlining cast *VICII_MEMORY = (unumber)(byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(unumber)byte1 (word)SCREEN&(unumber)$3fff/(unumber)4 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = (unumber)(unumber)3^(char)(unsigned int)SCREEN/(unumber)$4000 +Inlining cast *VICII_MEMORY = (unumber)(char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unumber)byte1 (unsigned int)SCREEN&(unumber)$3fff/(unumber)4 Inlining cast *VICII_CONTROL1 = (unumber)VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Inlining cast *BORDER_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53270 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (byte*) 53311 -Simplifying constant pointer cast (byte*) 53308 -Simplifying constant pointer cast (byte*) 53760 -Simplifying constant pointer cast (byte*) 53306 -Simplifying constant pointer cast (byte*) 53307 -Simplifying constant pointer cast (byte*) 53317 -Simplifying constant pointer cast (byte*) 53318 -Simplifying constant pointer cast (byte*) 53304 -Simplifying constant pointer cast (byte*) 53305 -Simplifying constant pointer cast (byte*) 53321 -Simplifying constant pointer cast (byte*) 53322 -Simplifying constant pointer cast (byte*) 53323 -Simplifying constant pointer cast (byte*) 53324 -Simplifying constant pointer cast (byte*) 53319 -Simplifying constant pointer cast (byte*) 53320 -Simplifying constant pointer cast (byte*) 255 -Simplifying constant pointer cast (byte*) 31744 -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53270 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (char *) 53311 +Simplifying constant pointer cast (char *) 53308 +Simplifying constant pointer cast (char *) 53760 +Simplifying constant pointer cast (char *) 53306 +Simplifying constant pointer cast (char *) 53307 +Simplifying constant pointer cast (char *) 53317 +Simplifying constant pointer cast (char *) 53318 +Simplifying constant pointer cast (char *) 53304 +Simplifying constant pointer cast (char *) 53305 +Simplifying constant pointer cast (char *) 53321 +Simplifying constant pointer cast (char *) 53322 +Simplifying constant pointer cast (char *) 53323 +Simplifying constant pointer cast (char *) 53324 +Simplifying constant pointer cast (char *) 53319 +Simplifying constant pointer cast (char *) 53320 +Simplifying constant pointer cast (char *) 255 +Simplifying constant pointer cast (char *) 31744 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Simplifying constant integer cast 3 Simplifying constant integer cast 0 @@ -512,13 +512,13 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 3 -Simplifying constant integer cast (unumber)3^(byte)(word)SCREEN/(unumber)$4000 +Simplifying constant integer cast (unumber)3^(char)(unsigned int)SCREEN/(unumber)$4000 Simplifying constant integer cast 3 Simplifying constant integer cast $4000 -Simplifying constant integer cast (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(unumber)byte1 (word)SCREEN&(unumber)$3fff/(unumber)4 +Simplifying constant integer cast (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unumber)byte1 (unsigned int)SCREEN&(unumber)$3fff/(unumber)4 Simplifying constant integer cast $3fff Simplifying constant integer cast $40 -Simplifying constant integer cast byte1 (word)SCREEN&(unumber)$3fff/(unumber)4 +Simplifying constant integer cast byte1 (unsigned int)SCREEN&(unumber)$3fff/(unumber)4 Simplifying constant integer cast $3fff Simplifying constant integer cast 4 Simplifying constant integer cast VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 @@ -531,54 +531,54 @@ Simplifying constant integer cast $f Simplifying constant integer cast $10 Simplifying constant integer cast $f Simplifying constant integer cast $4000 -Simplifying constant pointer cast (byte*) 16384 -Simplifying constant integer cast (word)CHARSET8&(unumber)$3fff +Simplifying constant pointer cast (char *) 16384 +Simplifying constant integer cast (unsigned int)CHARSET8&(unumber)$3fff Simplifying constant integer cast $3fff Simplifying constant integer cast 1 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f2 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $4000 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f2 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $4000 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$3 = main::rst#1 & 7 -Inferred type updated to byte in main::$4 = VICII_DEN|VICII_ECM|VICII_RSEL | main::$3 -Inferred type updated to byte in main::$5 = main::rst#1 * $10 -Inferred type updated to byte in gfx_init_screen0::$0 = gfx_init_screen0::cy#2 & $f -Inferred type updated to byte in gfx_init_screen0::$1 = gfx_init_screen0::$0 * $10 -Inferred type updated to byte in gfx_init_screen0::$2 = gfx_init_screen0::cx#2 & $f -Inferred type updated to byte in gfx_init_screen0::$3 = gfx_init_screen0::$1 | gfx_init_screen0::$2 -Inferred type updated to byte in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & $80 -Inferred type updated to byte in gfx_init_plane_charset8::$5 = gfx_init_plane_charset8::bits#3 * 2 +Inferred type updated to char in main::$3 = main::rst#1 & 7 +Inferred type updated to char in main::$4 = VICII_DEN|VICII_ECM|VICII_RSEL | main::$3 +Inferred type updated to char in main::$5 = main::rst#1 * $10 +Inferred type updated to char in gfx_init_screen0::$0 = gfx_init_screen0::cy#2 & $f +Inferred type updated to char in gfx_init_screen0::$1 = gfx_init_screen0::$0 * $10 +Inferred type updated to char in gfx_init_screen0::$2 = gfx_init_screen0::cx#2 & $f +Inferred type updated to char in gfx_init_screen0::$3 = gfx_init_screen0::$1 | gfx_init_screen0::$2 +Inferred type updated to char in gfx_init_plane_charset8::$2 = gfx_init_plane_charset8::bits#2 & $80 +Inferred type updated to char in gfx_init_plane_charset8::$5 = gfx_init_plane_charset8::bits#3 * 2 Inversing boolean not [94] gfx_init_plane_charset8::$4 = gfx_init_plane_charset8::$2 == 0 from [93] gfx_init_plane_charset8::$3 = gfx_init_plane_charset8::$2 != 0 Successful SSA optimization Pass2UnaryNotSimplification Alias gfx_init_screen0::cy#2 = gfx_init_screen0::cy#3 @@ -629,15 +629,15 @@ Constant main::rst#0 = $42 Constant gfx_init_screen0::ch#0 = SCREEN Constant gfx_init_screen0::cy#0 = 0 Constant gfx_init_screen0::cx#0 = 0 -Constant gfx_init_plane_charset8::gfxbCpuBank#0 = (byte)CHARSET8/$4000 -Constant gfx_init_plane_charset8::gfxa#0 = (byte*) 16384+(word)CHARSET8&$3fff +Constant gfx_init_plane_charset8::gfxbCpuBank#0 = (char)CHARSET8/$4000 +Constant gfx_init_plane_charset8::gfxa#0 = (char *) 16384+(unsigned int)CHARSET8&$3fff Constant gfx_init_plane_charset8::chargen#0 = CHARGEN+1 Constant gfx_init_plane_charset8::col#0 = 0 Constant gfx_init_plane_charset8::ch#0 = 0 Constant gfx_init_plane_charset8::cr#0 = 0 Constant gfx_init_plane_charset8::cp#0 = 0 Constant gfx_init_plane_charset8::c#0 = 0 -Constant dtvSetCpuBankSegment1::cpuBankIdx#1 = (byte)$4000/$4000 +Constant dtvSetCpuBankSegment1::cpuBankIdx#1 = (char)$4000/$4000 Successful SSA optimization Pass2ConstantIdentification Constant dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_plane_charset8::gfxbCpuBank#0 Successful SSA optimization Pass2ConstantIdentification @@ -655,12 +655,12 @@ Resolved ranged next value [101] gfx_init_plane_charset8::cr#1 = ++ gfx_init_pla Resolved ranged comparison value [103] if(gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 to 8 Resolved ranged next value [104] gfx_init_plane_charset8::ch#1 = ++ gfx_init_plane_charset8::ch#8 to ++ Resolved ranged comparison value [106] if(gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 to 0 -Simplifying constant evaluating to zero (word)CHARSET8&$3fff in +Simplifying constant evaluating to zero (unsigned int)CHARSET8&$3fff in Simplifying constant evaluating to zero byte0 SCREEN in [12] *DTV_PLANEA_START_LO = byte0 SCREEN Simplifying constant evaluating to zero byte0 CHARSET8 in [18] *DTV_PLANEB_START_LO = byte0 CHARSET8 Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*) 16384 in -Simplifying expression containing zero (byte*)CIA2 in [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)SCREEN/$4000 +Simplifying expression containing zero (char *) 16384 in +Simplifying expression containing zero (char *)CIA2 in [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(char)(unsigned int)SCREEN/$4000 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -688,12 +688,12 @@ Simplifying constant integer cast 8 Simplifying constant integer cast 8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [40] main::$5 = main::rst#1 * $10 Rewriting multiplication to use shift [50] gfx_init_screen0::$1 = gfx_init_screen0::$0 * $10 @@ -713,10 +713,10 @@ Inlining constant with var siblings gfx_init_plane_charset8::ch#0 Inlining constant with var siblings gfx_init_plane_charset8::cr#0 Inlining constant with var siblings gfx_init_plane_charset8::cp#0 Inlining constant with var siblings gfx_init_plane_charset8::c#0 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#1 = (byte)$4000/$4000 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#1 = (char)$4000/$4000 Constant inlined gfx_init_screen0::cx#0 = 0 Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_plane_charset8::gfxbCpuBank#0 -Constant inlined gfx_init_plane_charset8::gfxa#0 = (byte*) 16384 +Constant inlined gfx_init_plane_charset8::gfxa#0 = (char *) 16384 Constant inlined main::rst#0 = $42 Constant inlined gfx_init_plane_charset8::cp#0 = 0 Constant inlined gfx_init_screen0::cy#0 = 0 @@ -728,8 +728,8 @@ Constant inlined gfx_init_plane_charset8::col#0 = 0 Constant inlined gfx_init_plane_charset8::ch#0 = 0 Constant inlined main::j#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 +Finalized unsigned number type (unsigned int) $4000 +Finalized unsigned number type (unsigned int) $4000 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@8(between main::@1 and main::@1) Added new block during phi lifting gfx_init_screen0::@4(between gfx_init_screen0::@3 and gfx_init_screen0::@1) @@ -802,7 +802,7 @@ main: scope:[main] from asm { sei } [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [2] *PROCPORT = PROCPORT_RAM_IO - [3] call gfx_init + [3] call gfx_init to:main::@6 main::@6: scope:[main] from main [4] *DTV_FEATURE = DTV_FEATURE_ENABLE @@ -821,9 +821,9 @@ main::@6: scope:[main] from main [17] *DTV_PLANEB_STEP = 0 [18] *DTV_PLANEB_MODULO_LO = 0 [19] *DTV_PLANEB_MODULO_HI = 0 - [20] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 - [21] *((byte*)CIA2) = 3^(byte)(word)SCREEN/$4000 - [22] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 + [20] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + [21] *((char *)CIA2) = 3^(char)(unsigned int)SCREEN/$4000 + [22] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 to:main::@1 main::@1: scope:[main] from main::@1 main::@6 [23] main::j#2 = phi( main::@1/main::j#1, main::@6/0 ) @@ -856,11 +856,11 @@ main::@5: scope:[main] from main::@4 main::@5 void gfx_init() gfx_init: scope:[gfx_init] from main [40] phi() - [41] call gfx_init_screen0 + [41] call gfx_init_screen0 to:gfx_init::@1 gfx_init::@1: scope:[gfx_init] from gfx_init [42] phi() - [43] call gfx_init_plane_charset8 + [43] call gfx_init_plane_charset8 to:gfx_init::@return gfx_init::@return: scope:[gfx_init] from gfx_init::@1 [44] return @@ -897,7 +897,7 @@ gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3 void gfx_init_plane_charset8() gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1 [59] phi() - [60] call dtvSetCpuBankSegment1 + [60] call dtvSetCpuBankSegment1 to:gfx_init_plane_charset8::@9 gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8 [61] *PROCPORT = PROCPORT_RAM_CHARROM @@ -905,7 +905,7 @@ gfx_init_plane_charset8::@9: scope:[gfx_init_plane_charset8] from gfx_init_plan gfx_init_plane_charset8::@1: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 gfx_init_plane_charset8::@9 [62] gfx_init_plane_charset8::ch#8 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::ch#1, gfx_init_plane_charset8::@9/0 ) [62] gfx_init_plane_charset8::col#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::col#1, gfx_init_plane_charset8::@9/0 ) - [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(byte*) 16384 ) + [62] gfx_init_plane_charset8::gfxa#6 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::gfxa#1, gfx_init_plane_charset8::@9/(char *) 16384 ) [62] gfx_init_plane_charset8::chargen#3 = phi( gfx_init_plane_charset8::@7/gfx_init_plane_charset8::chargen#1, gfx_init_plane_charset8::@9/CHARGEN+1 ) to:gfx_init_plane_charset8::@2 gfx_init_plane_charset8::@2: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@1 gfx_init_plane_charset8::@6 @@ -946,15 +946,15 @@ gfx_init_plane_charset8::@7: scope:[gfx_init_plane_charset8] from gfx_init_plan to:gfx_init_plane_charset8::@8 gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@7 [81] *PROCPORT = PROCPORT_RAM_IO - [82] call dtvSetCpuBankSegment1 + [82] call dtvSetCpuBankSegment1 to:gfx_init_plane_charset8::@return gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8 [83] return to:@return -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) +void dtvSetCpuBankSegment1(char cpuBankIdx) dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8 - [84] dtvSetCpuBankSegment1::cpuBankIdx#2 = phi( gfx_init_plane_charset8/gfx_init_plane_charset8::gfxbCpuBank#0, gfx_init_plane_charset8::@8/(byte)$4000/$4000 ) + [84] dtvSetCpuBankSegment1::cpuBankIdx#2 = phi( gfx_init_plane_charset8/gfx_init_plane_charset8::gfxbCpuBank#0, gfx_init_plane_charset8::@8/(char)$4000/$4000 ) [85] *dtvSetCpuBankSegment1::cpuBank = dtvSetCpuBankSegment1::cpuBankIdx#2 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -964,67 +964,67 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan VARIABLE REGISTER WEIGHTS -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#2 1001.0 +void dtvSetCpuBankSegment1(char cpuBankIdx) +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#2 // 1001.0 void gfx_init() void gfx_init_plane_charset8() -byte~ gfx_init_plane_charset8::$2 200002.0 -byte gfx_init_plane_charset8::bits -byte gfx_init_plane_charset8::bits#0 10001.0 -byte gfx_init_plane_charset8::bits#1 50000.5 -byte gfx_init_plane_charset8::bits#2 44286.28571428572 -byte gfx_init_plane_charset8::c -byte gfx_init_plane_charset8::c#2 200002.0 -byte gfx_init_plane_charset8::c#3 200002.0 -byte gfx_init_plane_charset8::ch -byte gfx_init_plane_charset8::ch#1 1501.5 -byte gfx_init_plane_charset8::ch#8 117.76470588235294 -byte* gfx_init_plane_charset8::chargen -byte* gfx_init_plane_charset8::chargen#1 1312.6875 -byte* gfx_init_plane_charset8::chargen#2 15502.0 -byte* gfx_init_plane_charset8::chargen#3 2002.0 -byte gfx_init_plane_charset8::col -byte gfx_init_plane_charset8::col#1 30143.428571428572 -byte gfx_init_plane_charset8::col#2 38750.5 -byte gfx_init_plane_charset8::col#5 7001.0 -byte gfx_init_plane_charset8::col#6 2002.0 -byte gfx_init_plane_charset8::cp -byte gfx_init_plane_charset8::cp#1 150001.5 -byte gfx_init_plane_charset8::cp#2 22222.444444444445 -byte gfx_init_plane_charset8::cr -byte gfx_init_plane_charset8::cr#1 15001.5 -byte gfx_init_plane_charset8::cr#6 1428.7142857142858 -byte* gfx_init_plane_charset8::gfxa -byte* gfx_init_plane_charset8::gfxa#1 23444.88888888889 -byte* gfx_init_plane_charset8::gfxa#2 51667.33333333333 -byte* gfx_init_plane_charset8::gfxa#5 7001.0 -byte* gfx_init_plane_charset8::gfxa#6 2002.0 -byte gfx_init_plane_charset8::gfxbCpuBank +char gfx_init_plane_charset8::$2 // 200002.0 +char gfx_init_plane_charset8::bits +char gfx_init_plane_charset8::bits#0 // 10001.0 +char gfx_init_plane_charset8::bits#1 // 50000.5 +char gfx_init_plane_charset8::bits#2 // 44286.28571428572 +char gfx_init_plane_charset8::c +char gfx_init_plane_charset8::c#2 // 200002.0 +char gfx_init_plane_charset8::c#3 // 200002.0 +char gfx_init_plane_charset8::ch +char gfx_init_plane_charset8::ch#1 // 1501.5 +char gfx_init_plane_charset8::ch#8 // 117.76470588235294 +char *gfx_init_plane_charset8::chargen +char *gfx_init_plane_charset8::chargen#1 // 1312.6875 +char *gfx_init_plane_charset8::chargen#2 // 15502.0 +char *gfx_init_plane_charset8::chargen#3 // 2002.0 +char gfx_init_plane_charset8::col +char gfx_init_plane_charset8::col#1 // 30143.428571428572 +char gfx_init_plane_charset8::col#2 // 38750.5 +char gfx_init_plane_charset8::col#5 // 7001.0 +char gfx_init_plane_charset8::col#6 // 2002.0 +char gfx_init_plane_charset8::cp +char gfx_init_plane_charset8::cp#1 // 150001.5 +char gfx_init_plane_charset8::cp#2 // 22222.444444444445 +char gfx_init_plane_charset8::cr +char gfx_init_plane_charset8::cr#1 // 15001.5 +char gfx_init_plane_charset8::cr#6 // 1428.7142857142858 +char *gfx_init_plane_charset8::gfxa +char *gfx_init_plane_charset8::gfxa#1 // 23444.88888888889 +char *gfx_init_plane_charset8::gfxa#2 // 51667.33333333333 +char *gfx_init_plane_charset8::gfxa#5 // 7001.0 +char *gfx_init_plane_charset8::gfxa#6 // 2002.0 +char gfx_init_plane_charset8::gfxbCpuBank void gfx_init_screen0() -byte~ gfx_init_screen0::$0 20002.0 -byte~ gfx_init_screen0::$1 10001.0 -byte~ gfx_init_screen0::$2 20002.0 -byte~ gfx_init_screen0::$3 20002.0 -byte* gfx_init_screen0::ch -byte* gfx_init_screen0::ch#1 4200.6 -byte* gfx_init_screen0::ch#2 5167.333333333333 -byte* gfx_init_screen0::ch#3 2002.0 -byte gfx_init_screen0::cx -byte gfx_init_screen0::cx#1 15001.5 -byte gfx_init_screen0::cx#2 4286.142857142857 -byte gfx_init_screen0::cy -byte gfx_init_screen0::cy#1 1501.5 -byte gfx_init_screen0::cy#4 1200.3 +char gfx_init_screen0::$0 // 20002.0 +char gfx_init_screen0::$1 // 10001.0 +char gfx_init_screen0::$2 // 20002.0 +char gfx_init_screen0::$3 // 20002.0 +char *gfx_init_screen0::ch +char *gfx_init_screen0::ch#1 // 4200.6 +char *gfx_init_screen0::ch#2 // 5167.333333333333 +char *gfx_init_screen0::ch#3 // 2002.0 +char gfx_init_screen0::cx +char gfx_init_screen0::cx#1 // 15001.5 +char gfx_init_screen0::cx#2 // 4286.142857142857 +char gfx_init_screen0::cy +char gfx_init_screen0::cy#1 // 1501.5 +char gfx_init_screen0::cy#4 // 1200.3 void main() -byte~ main::$3 202.0 -byte~ main::$4 202.0 -byte~ main::$5 202.0 -byte main::j -byte main::j#1 16.5 -byte main::j#2 22.0 -byte main::rst -byte main::rst#1 57.714285714285715 +char main::$3 // 202.0 +char main::$4 // 202.0 +char main::$5 // 202.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 22.0 +char main::rst +char main::rst#1 // 57.714285714285715 Initial phi equivalence classes [ main::j#2 main::j#1 ] @@ -1113,9 +1113,9 @@ Statement [16] *DTV_PLANEB_START_HI = 0 [ ] ( [ ] { } ) always clobbers reg by Statement [17] *DTV_PLANEB_STEP = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [18] *DTV_PLANEB_MODULO_LO = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [19] *DTV_PLANEB_MODULO_HI = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [20] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [21] *((byte*)CIA2) = 3^(byte)(word)SCREEN/$4000 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [22] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [20] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [21] *((char *)CIA2) = 3^(char)(unsigned int)SCREEN/$4000 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [22] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 [ ] ( [ ] { } ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [28] *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [29] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1162,9 +1162,9 @@ Statement [16] *DTV_PLANEB_START_HI = 0 [ ] ( [ ] { } ) always clobbers reg by Statement [17] *DTV_PLANEB_STEP = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [18] *DTV_PLANEB_MODULO_LO = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [19] *DTV_PLANEB_MODULO_HI = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [20] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [21] *((byte*)CIA2) = 3^(byte)(word)SCREEN/$4000 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [22] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [20] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [21] *((char *)CIA2) = 3^(char)(unsigned int)SCREEN/$4000 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [22] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 [ ] ( [ ] { } ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [28] *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [29] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1379,7 +1379,7 @@ main: { // [2] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [3] call gfx_init + // [3] call gfx_init // [40] phi from main to gfx_init [phi:main->gfx_init] gfx_init_from_main: jsr gfx_init @@ -1438,15 +1438,15 @@ main: { // [19] *DTV_PLANEB_MODULO_HI = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - // [20] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 + // [20] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR - // [21] *((byte*)CIA2) = 3^(byte)(word)SCREEN/$4000 -- _deref_pbuc1=vbuc2 + // [21] *((char *)CIA2) = 3^(char)(unsigned int)SCREEN/$4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^SCREEN/$4000 sta CIA2 - // [22] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 -- _deref_pbuc1=vbuc2 + // [22] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(SCREEN&$3fff)/$40|(>SCREEN&$3fff)/4 @@ -1591,7 +1591,7 @@ main: { // gfx_init // Initialize the different graphics in the memory gfx_init: { - // [41] call gfx_init_screen0 + // [41] call gfx_init_screen0 // [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0] gfx_init_screen0_from_gfx_init: jsr gfx_init_screen0 @@ -1600,7 +1600,7 @@ gfx_init: { jmp __b1 // gfx_init::@1 __b1: - // [43] call gfx_init_plane_charset8 + // [43] call gfx_init_plane_charset8 // [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8] gfx_init_plane_charset8_from___b1: jsr gfx_init_plane_charset8 @@ -1700,7 +1700,7 @@ gfx_init_plane_charset8: { .label col = 8 .label cr = 9 .label ch = 2 - // [60] call dtvSetCpuBankSegment1 + // [60] call dtvSetCpuBankSegment1 // [84] phi from gfx_init_plane_charset8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_gfx_init_plane_charset8: // [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 @@ -1720,7 +1720,7 @@ gfx_init_plane_charset8: { // [62] phi gfx_init_plane_charset8::col#6 = 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 lda #0 sta.z col - // [62] phi gfx_init_plane_charset8::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + // [62] phi gfx_init_plane_charset8::gfxa#6 = (char *) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -1846,11 +1846,11 @@ gfx_init_plane_charset8: { // [81] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [82] call dtvSetCpuBankSegment1 + // [82] call dtvSetCpuBankSegment1 // Reset CPU BANK segment to $4000 // [84] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from___b8: - // [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + // [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp __breturn @@ -1863,7 +1863,7 @@ gfx_init_plane_charset8: { // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff // The actual memory addressed will be $4000*cpuSegmentIdx -// dtvSetCpuBankSegment1(byte register(A) cpuBankIdx) +// void dtvSetCpuBankSegment1(__register(A) char cpuBankIdx) dtvSetCpuBankSegment1: { // Move CPU BANK 1 SEGMENT ($4000-$7fff) .label cpuBank = $ff @@ -1964,109 +1964,109 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const CHARGEN = (byte*) 53248 -constant byte* const CHARSET8 = (byte*) 32768 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_CHUNKY = $40 -constant byte* const DTV_CONTROL = (byte*) 53308 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant const byte DTV_LINEAR = 1 -constant byte* const DTV_PALETTE = (byte*) 53760 -constant byte* const DTV_PLANEA_MODULO_HI = (byte*) 53305 -constant byte* const DTV_PLANEA_MODULO_LO = (byte*) 53304 -constant byte* const DTV_PLANEA_START_HI = (byte*) 53317 -constant byte* const DTV_PLANEA_START_LO = (byte*) 53306 -constant byte* const DTV_PLANEA_START_MI = (byte*) 53307 -constant byte* const DTV_PLANEA_STEP = (byte*) 53318 -constant byte* const DTV_PLANEB_MODULO_HI = (byte*) 53320 -constant byte* const DTV_PLANEB_MODULO_LO = (byte*) 53319 -constant byte* const DTV_PLANEB_START_HI = (byte*) 53323 -constant byte* const DTV_PLANEB_START_LO = (byte*) 53321 -constant byte* const DTV_PLANEB_START_MI = (byte*) 53322 -constant byte* const DTV_PLANEB_STEP = (byte*) 53324 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 31744 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant byte* const VICII_CONTROL2 = (byte*) 53270 -constant const byte VICII_CSEL = 8 -constant const byte VICII_DEN = $10 -constant const byte VICII_ECM = $40 -constant const byte VICII_MCM = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -constant byte* dtvSetCpuBankSegment1::cpuBank = (byte*) 255 -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#2 reg byte a 1001.0 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const CHARGEN = (char *) 53248 +__constant char * const CHARSET8 = (char *) 32768 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_CHUNKY = $40 +__constant char * const DTV_CONTROL = (char *) 53308 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant const char DTV_LINEAR = 1 +__constant char * const DTV_PALETTE = (char *) 53760 +__constant char * const DTV_PLANEA_MODULO_HI = (char *) 53305 +__constant char * const DTV_PLANEA_MODULO_LO = (char *) 53304 +__constant char * const DTV_PLANEA_START_HI = (char *) 53317 +__constant char * const DTV_PLANEA_START_LO = (char *) 53306 +__constant char * const DTV_PLANEA_START_MI = (char *) 53307 +__constant char * const DTV_PLANEA_STEP = (char *) 53318 +__constant char * const DTV_PLANEB_MODULO_HI = (char *) 53320 +__constant char * const DTV_PLANEB_MODULO_LO = (char *) 53319 +__constant char * const DTV_PLANEB_START_HI = (char *) 53323 +__constant char * const DTV_PLANEB_START_LO = (char *) 53321 +__constant char * const DTV_PLANEB_START_MI = (char *) 53322 +__constant char * const DTV_PLANEB_STEP = (char *) 53324 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 31744 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant char * const VICII_CONTROL2 = (char *) 53270 +__constant const char VICII_CSEL = 8 +__constant const char VICII_DEN = $10 +__constant const char VICII_ECM = $40 +__constant const char VICII_MCM = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +void dtvSetCpuBankSegment1(char cpuBankIdx) +__constant char *dtvSetCpuBankSegment1::cpuBank = (char *) 255 +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#2 // reg byte a 1001.0 void gfx_init() void gfx_init_plane_charset8() -byte~ gfx_init_plane_charset8::$2 reg byte a 200002.0 -byte gfx_init_plane_charset8::bits -byte gfx_init_plane_charset8::bits#0 bits zp[1]:5 10001.0 -byte gfx_init_plane_charset8::bits#1 bits zp[1]:5 50000.5 -byte gfx_init_plane_charset8::bits#2 bits zp[1]:5 44286.28571428572 -byte gfx_init_plane_charset8::c -byte gfx_init_plane_charset8::c#2 reg byte a 200002.0 -byte gfx_init_plane_charset8::c#3 reg byte a 200002.0 -byte gfx_init_plane_charset8::ch -byte gfx_init_plane_charset8::ch#1 ch zp[1]:2 1501.5 -byte gfx_init_plane_charset8::ch#8 ch zp[1]:2 117.76470588235294 -byte* gfx_init_plane_charset8::chargen -byte* gfx_init_plane_charset8::chargen#1 chargen zp[2]:3 1312.6875 -byte* gfx_init_plane_charset8::chargen#2 chargen zp[2]:3 15502.0 -byte* gfx_init_plane_charset8::chargen#3 chargen zp[2]:3 2002.0 -byte gfx_init_plane_charset8::col -byte gfx_init_plane_charset8::col#1 col zp[1]:8 30143.428571428572 -byte gfx_init_plane_charset8::col#2 col zp[1]:8 38750.5 -byte gfx_init_plane_charset8::col#5 col zp[1]:8 7001.0 -byte gfx_init_plane_charset8::col#6 col zp[1]:8 2002.0 -byte gfx_init_plane_charset8::cp -byte gfx_init_plane_charset8::cp#1 reg byte x 150001.5 -byte gfx_init_plane_charset8::cp#2 reg byte x 22222.444444444445 -byte gfx_init_plane_charset8::cr -byte gfx_init_plane_charset8::cr#1 cr zp[1]:9 15001.5 -byte gfx_init_plane_charset8::cr#6 cr zp[1]:9 1428.7142857142858 -byte* gfx_init_plane_charset8::gfxa -byte* gfx_init_plane_charset8::gfxa#1 gfxa zp[2]:6 23444.88888888889 -byte* gfx_init_plane_charset8::gfxa#2 gfxa zp[2]:6 51667.33333333333 -byte* gfx_init_plane_charset8::gfxa#5 gfxa zp[2]:6 7001.0 -byte* gfx_init_plane_charset8::gfxa#6 gfxa zp[2]:6 2002.0 -byte gfx_init_plane_charset8::gfxbCpuBank -constant byte gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = (byte)CHARSET8/$4000 +char gfx_init_plane_charset8::$2 // reg byte a 200002.0 +char gfx_init_plane_charset8::bits +char gfx_init_plane_charset8::bits#0 // bits zp[1]:5 10001.0 +char gfx_init_plane_charset8::bits#1 // bits zp[1]:5 50000.5 +char gfx_init_plane_charset8::bits#2 // bits zp[1]:5 44286.28571428572 +char gfx_init_plane_charset8::c +char gfx_init_plane_charset8::c#2 // reg byte a 200002.0 +char gfx_init_plane_charset8::c#3 // reg byte a 200002.0 +char gfx_init_plane_charset8::ch +char gfx_init_plane_charset8::ch#1 // ch zp[1]:2 1501.5 +char gfx_init_plane_charset8::ch#8 // ch zp[1]:2 117.76470588235294 +char *gfx_init_plane_charset8::chargen +char *gfx_init_plane_charset8::chargen#1 // chargen zp[2]:3 1312.6875 +char *gfx_init_plane_charset8::chargen#2 // chargen zp[2]:3 15502.0 +char *gfx_init_plane_charset8::chargen#3 // chargen zp[2]:3 2002.0 +char gfx_init_plane_charset8::col +char gfx_init_plane_charset8::col#1 // col zp[1]:8 30143.428571428572 +char gfx_init_plane_charset8::col#2 // col zp[1]:8 38750.5 +char gfx_init_plane_charset8::col#5 // col zp[1]:8 7001.0 +char gfx_init_plane_charset8::col#6 // col zp[1]:8 2002.0 +char gfx_init_plane_charset8::cp +char gfx_init_plane_charset8::cp#1 // reg byte x 150001.5 +char gfx_init_plane_charset8::cp#2 // reg byte x 22222.444444444445 +char gfx_init_plane_charset8::cr +char gfx_init_plane_charset8::cr#1 // cr zp[1]:9 15001.5 +char gfx_init_plane_charset8::cr#6 // cr zp[1]:9 1428.7142857142858 +char *gfx_init_plane_charset8::gfxa +char *gfx_init_plane_charset8::gfxa#1 // gfxa zp[2]:6 23444.88888888889 +char *gfx_init_plane_charset8::gfxa#2 // gfxa zp[2]:6 51667.33333333333 +char *gfx_init_plane_charset8::gfxa#5 // gfxa zp[2]:6 7001.0 +char *gfx_init_plane_charset8::gfxa#6 // gfxa zp[2]:6 2002.0 +char gfx_init_plane_charset8::gfxbCpuBank +__constant char gfx_init_plane_charset8::gfxbCpuBank#0 = (char)CHARSET8/$4000 // gfxbCpuBank void gfx_init_screen0() -byte~ gfx_init_screen0::$0 reg byte a 20002.0 -byte~ gfx_init_screen0::$1 zp[1]:9 10001.0 -byte~ gfx_init_screen0::$2 reg byte a 20002.0 -byte~ gfx_init_screen0::$3 reg byte a 20002.0 -byte* gfx_init_screen0::ch -byte* gfx_init_screen0::ch#1 ch zp[2]:3 4200.6 -byte* gfx_init_screen0::ch#2 ch zp[2]:3 5167.333333333333 -byte* gfx_init_screen0::ch#3 ch zp[2]:3 2002.0 -byte gfx_init_screen0::cx -byte gfx_init_screen0::cx#1 reg byte x 15001.5 -byte gfx_init_screen0::cx#2 reg byte x 4286.142857142857 -byte gfx_init_screen0::cy -byte gfx_init_screen0::cy#1 cy zp[1]:2 1501.5 -byte gfx_init_screen0::cy#4 cy zp[1]:2 1200.3 +char gfx_init_screen0::$0 // reg byte a 20002.0 +char gfx_init_screen0::$1 // zp[1]:9 10001.0 +char gfx_init_screen0::$2 // reg byte a 20002.0 +char gfx_init_screen0::$3 // reg byte a 20002.0 +char *gfx_init_screen0::ch +char *gfx_init_screen0::ch#1 // ch zp[2]:3 4200.6 +char *gfx_init_screen0::ch#2 // ch zp[2]:3 5167.333333333333 +char *gfx_init_screen0::ch#3 // ch zp[2]:3 2002.0 +char gfx_init_screen0::cx +char gfx_init_screen0::cx#1 // reg byte x 15001.5 +char gfx_init_screen0::cx#2 // reg byte x 4286.142857142857 +char gfx_init_screen0::cy +char gfx_init_screen0::cy#1 // cy zp[1]:2 1501.5 +char gfx_init_screen0::cy#4 // cy zp[1]:2 1200.3 void main() -byte~ main::$3 reg byte a 202.0 -byte~ main::$4 reg byte a 202.0 -byte~ main::$5 reg byte a 202.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 -byte main::rst -byte main::rst#1 reg byte x 57.714285714285715 +char main::$3 // reg byte a 202.0 +char main::$4 // reg byte a 202.0 +char main::$5 // reg byte a 202.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 +char main::rst +char main::rst#1 // reg byte x 57.714285714285715 reg byte x [ main::j#2 main::j#1 ] reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] @@ -2223,7 +2223,7 @@ main: { lda #PROCPORT_RAM_IO sta PROCPORT // gfx_init() - // [3] call gfx_init + // [3] call gfx_init // [40] phi from main to gfx_init [phi:main->gfx_init] jsr gfx_init // main::@6 @@ -2291,17 +2291,17 @@ main: { // [19] *DTV_PLANEB_MODULO_HI = 0 -- _deref_pbuc1=vbuc2 sta DTV_PLANEB_MODULO_HI // CIA2->PORT_A_DDR = %00000011 - // [20] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 + // [20] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR // CIA2->PORT_A = %00000011 ^ (byte)((word)SCREEN/$4000) - // [21] *((byte*)CIA2) = 3^(byte)(word)SCREEN/$4000 -- _deref_pbuc1=vbuc2 + // [21] *((char *)CIA2) = 3^(char)(unsigned int)SCREEN/$4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^SCREEN/$4000 sta CIA2 // *VICII_MEMORY = (byte)((((word)SCREEN)&$3fff)/$40) | ((BYTE1(((word)SCREEN)&$3fff))/4) - // [22] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|byte1 (word)SCREEN&$3fff/4 -- _deref_pbuc1=vbuc2 + // [22] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|byte1 (unsigned int)SCREEN&$3fff/4 -- _deref_pbuc1=vbuc2 // Set VIC Bank // VIC memory lda #(SCREEN&$3fff)/$40|(>SCREEN&$3fff)/4 @@ -2453,13 +2453,13 @@ main: { // Initialize the different graphics in the memory gfx_init: { // gfx_init_screen0() - // [41] call gfx_init_screen0 + // [41] call gfx_init_screen0 // [45] phi from gfx_init to gfx_init_screen0 [phi:gfx_init->gfx_init_screen0] jsr gfx_init_screen0 // [42] phi from gfx_init to gfx_init::@1 [phi:gfx_init->gfx_init::@1] // gfx_init::@1 // gfx_init_plane_charset8() - // [43] call gfx_init_plane_charset8 + // [43] call gfx_init_plane_charset8 // [59] phi from gfx_init::@1 to gfx_init_plane_charset8 [phi:gfx_init::@1->gfx_init_plane_charset8] jsr gfx_init_plane_charset8 // gfx_init::@return @@ -2555,7 +2555,7 @@ gfx_init_plane_charset8: { .label cr = 9 .label ch = 2 // dtvSetCpuBankSegment1(gfxbCpuBank++) - // [60] call dtvSetCpuBankSegment1 + // [60] call dtvSetCpuBankSegment1 // [84] phi from gfx_init_plane_charset8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1] // [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = gfx_init_plane_charset8::gfxbCpuBank#0 [phi:gfx_init_plane_charset8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #gfxbCpuBank @@ -2571,7 +2571,7 @@ gfx_init_plane_charset8: { sta.z ch // [62] phi gfx_init_plane_charset8::col#6 = 0 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#1] -- vbuz1=vbuc1 sta.z col - // [62] phi gfx_init_plane_charset8::gfxa#6 = (byte*) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 + // [62] phi gfx_init_plane_charset8::gfxa#6 = (char *) 16384 [phi:gfx_init_plane_charset8::@9->gfx_init_plane_charset8::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxa lda #>$4000 @@ -2688,10 +2688,10 @@ gfx_init_plane_charset8: { lda #PROCPORT_RAM_IO sta PROCPORT // dtvSetCpuBankSegment1((byte)($4000/$4000)) - // [82] call dtvSetCpuBankSegment1 + // [82] call dtvSetCpuBankSegment1 // Reset CPU BANK segment to $4000 // [84] phi from gfx_init_plane_charset8::@8 to dtvSetCpuBankSegment1 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1] - // [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + // [84] phi dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 [phi:gfx_init_plane_charset8::@8->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 // gfx_init_plane_charset8::@return @@ -2703,7 +2703,7 @@ gfx_init_plane_charset8: { // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff // The actual memory addressed will be $4000*cpuSegmentIdx -// dtvSetCpuBankSegment1(byte register(A) cpuBankIdx) +// void dtvSetCpuBankSegment1(__register(A) char cpuBankIdx) dtvSetCpuBankSegment1: { // Move CPU BANK 1 SEGMENT ($4000-$7fff) .label cpuBank = $ff diff --git a/src/test/ref/c64dtv-8bppcharstretch.sym b/src/test/ref/c64dtv-8bppcharstretch.sym index aff84b56b..73378fb6f 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.sym +++ b/src/test/ref/c64dtv-8bppcharstretch.sym @@ -1,106 +1,106 @@ -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const CHARGEN = (byte*) 53248 -constant byte* const CHARSET8 = (byte*) 32768 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_CHUNKY = $40 -constant byte* const DTV_CONTROL = (byte*) 53308 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant const byte DTV_LINEAR = 1 -constant byte* const DTV_PALETTE = (byte*) 53760 -constant byte* const DTV_PLANEA_MODULO_HI = (byte*) 53305 -constant byte* const DTV_PLANEA_MODULO_LO = (byte*) 53304 -constant byte* const DTV_PLANEA_START_HI = (byte*) 53317 -constant byte* const DTV_PLANEA_START_LO = (byte*) 53306 -constant byte* const DTV_PLANEA_START_MI = (byte*) 53307 -constant byte* const DTV_PLANEA_STEP = (byte*) 53318 -constant byte* const DTV_PLANEB_MODULO_HI = (byte*) 53320 -constant byte* const DTV_PLANEB_MODULO_LO = (byte*) 53319 -constant byte* const DTV_PLANEB_START_HI = (byte*) 53323 -constant byte* const DTV_PLANEB_START_LO = (byte*) 53321 -constant byte* const DTV_PLANEB_START_MI = (byte*) 53322 -constant byte* const DTV_PLANEB_STEP = (byte*) 53324 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 31744 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant byte* const VICII_CONTROL2 = (byte*) 53270 -constant const byte VICII_CSEL = 8 -constant const byte VICII_DEN = $10 -constant const byte VICII_ECM = $40 -constant const byte VICII_MCM = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -constant byte* dtvSetCpuBankSegment1::cpuBank = (byte*) 255 -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#2 reg byte a 1001.0 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const CHARGEN = (char *) 53248 +__constant char * const CHARSET8 = (char *) 32768 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_CHUNKY = $40 +__constant char * const DTV_CONTROL = (char *) 53308 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant const char DTV_LINEAR = 1 +__constant char * const DTV_PALETTE = (char *) 53760 +__constant char * const DTV_PLANEA_MODULO_HI = (char *) 53305 +__constant char * const DTV_PLANEA_MODULO_LO = (char *) 53304 +__constant char * const DTV_PLANEA_START_HI = (char *) 53317 +__constant char * const DTV_PLANEA_START_LO = (char *) 53306 +__constant char * const DTV_PLANEA_START_MI = (char *) 53307 +__constant char * const DTV_PLANEA_STEP = (char *) 53318 +__constant char * const DTV_PLANEB_MODULO_HI = (char *) 53320 +__constant char * const DTV_PLANEB_MODULO_LO = (char *) 53319 +__constant char * const DTV_PLANEB_START_HI = (char *) 53323 +__constant char * const DTV_PLANEB_START_LO = (char *) 53321 +__constant char * const DTV_PLANEB_START_MI = (char *) 53322 +__constant char * const DTV_PLANEB_STEP = (char *) 53324 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 31744 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant char * const VICII_CONTROL2 = (char *) 53270 +__constant const char VICII_CSEL = 8 +__constant const char VICII_DEN = $10 +__constant const char VICII_ECM = $40 +__constant const char VICII_MCM = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +void dtvSetCpuBankSegment1(char cpuBankIdx) +__constant char *dtvSetCpuBankSegment1::cpuBank = (char *) 255 +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#2 // reg byte a 1001.0 void gfx_init() void gfx_init_plane_charset8() -byte~ gfx_init_plane_charset8::$2 reg byte a 200002.0 -byte gfx_init_plane_charset8::bits -byte gfx_init_plane_charset8::bits#0 bits zp[1]:5 10001.0 -byte gfx_init_plane_charset8::bits#1 bits zp[1]:5 50000.5 -byte gfx_init_plane_charset8::bits#2 bits zp[1]:5 44286.28571428572 -byte gfx_init_plane_charset8::c -byte gfx_init_plane_charset8::c#2 reg byte a 200002.0 -byte gfx_init_plane_charset8::c#3 reg byte a 200002.0 -byte gfx_init_plane_charset8::ch -byte gfx_init_plane_charset8::ch#1 ch zp[1]:2 1501.5 -byte gfx_init_plane_charset8::ch#8 ch zp[1]:2 117.76470588235294 -byte* gfx_init_plane_charset8::chargen -byte* gfx_init_plane_charset8::chargen#1 chargen zp[2]:3 1312.6875 -byte* gfx_init_plane_charset8::chargen#2 chargen zp[2]:3 15502.0 -byte* gfx_init_plane_charset8::chargen#3 chargen zp[2]:3 2002.0 -byte gfx_init_plane_charset8::col -byte gfx_init_plane_charset8::col#1 col zp[1]:8 30143.428571428572 -byte gfx_init_plane_charset8::col#2 col zp[1]:8 38750.5 -byte gfx_init_plane_charset8::col#5 col zp[1]:8 7001.0 -byte gfx_init_plane_charset8::col#6 col zp[1]:8 2002.0 -byte gfx_init_plane_charset8::cp -byte gfx_init_plane_charset8::cp#1 reg byte x 150001.5 -byte gfx_init_plane_charset8::cp#2 reg byte x 22222.444444444445 -byte gfx_init_plane_charset8::cr -byte gfx_init_plane_charset8::cr#1 cr zp[1]:9 15001.5 -byte gfx_init_plane_charset8::cr#6 cr zp[1]:9 1428.7142857142858 -byte* gfx_init_plane_charset8::gfxa -byte* gfx_init_plane_charset8::gfxa#1 gfxa zp[2]:6 23444.88888888889 -byte* gfx_init_plane_charset8::gfxa#2 gfxa zp[2]:6 51667.33333333333 -byte* gfx_init_plane_charset8::gfxa#5 gfxa zp[2]:6 7001.0 -byte* gfx_init_plane_charset8::gfxa#6 gfxa zp[2]:6 2002.0 -byte gfx_init_plane_charset8::gfxbCpuBank -constant byte gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = (byte)CHARSET8/$4000 +char gfx_init_plane_charset8::$2 // reg byte a 200002.0 +char gfx_init_plane_charset8::bits +char gfx_init_plane_charset8::bits#0 // bits zp[1]:5 10001.0 +char gfx_init_plane_charset8::bits#1 // bits zp[1]:5 50000.5 +char gfx_init_plane_charset8::bits#2 // bits zp[1]:5 44286.28571428572 +char gfx_init_plane_charset8::c +char gfx_init_plane_charset8::c#2 // reg byte a 200002.0 +char gfx_init_plane_charset8::c#3 // reg byte a 200002.0 +char gfx_init_plane_charset8::ch +char gfx_init_plane_charset8::ch#1 // ch zp[1]:2 1501.5 +char gfx_init_plane_charset8::ch#8 // ch zp[1]:2 117.76470588235294 +char *gfx_init_plane_charset8::chargen +char *gfx_init_plane_charset8::chargen#1 // chargen zp[2]:3 1312.6875 +char *gfx_init_plane_charset8::chargen#2 // chargen zp[2]:3 15502.0 +char *gfx_init_plane_charset8::chargen#3 // chargen zp[2]:3 2002.0 +char gfx_init_plane_charset8::col +char gfx_init_plane_charset8::col#1 // col zp[1]:8 30143.428571428572 +char gfx_init_plane_charset8::col#2 // col zp[1]:8 38750.5 +char gfx_init_plane_charset8::col#5 // col zp[1]:8 7001.0 +char gfx_init_plane_charset8::col#6 // col zp[1]:8 2002.0 +char gfx_init_plane_charset8::cp +char gfx_init_plane_charset8::cp#1 // reg byte x 150001.5 +char gfx_init_plane_charset8::cp#2 // reg byte x 22222.444444444445 +char gfx_init_plane_charset8::cr +char gfx_init_plane_charset8::cr#1 // cr zp[1]:9 15001.5 +char gfx_init_plane_charset8::cr#6 // cr zp[1]:9 1428.7142857142858 +char *gfx_init_plane_charset8::gfxa +char *gfx_init_plane_charset8::gfxa#1 // gfxa zp[2]:6 23444.88888888889 +char *gfx_init_plane_charset8::gfxa#2 // gfxa zp[2]:6 51667.33333333333 +char *gfx_init_plane_charset8::gfxa#5 // gfxa zp[2]:6 7001.0 +char *gfx_init_plane_charset8::gfxa#6 // gfxa zp[2]:6 2002.0 +char gfx_init_plane_charset8::gfxbCpuBank +__constant char gfx_init_plane_charset8::gfxbCpuBank#0 = (char)CHARSET8/$4000 // gfxbCpuBank void gfx_init_screen0() -byte~ gfx_init_screen0::$0 reg byte a 20002.0 -byte~ gfx_init_screen0::$1 zp[1]:9 10001.0 -byte~ gfx_init_screen0::$2 reg byte a 20002.0 -byte~ gfx_init_screen0::$3 reg byte a 20002.0 -byte* gfx_init_screen0::ch -byte* gfx_init_screen0::ch#1 ch zp[2]:3 4200.6 -byte* gfx_init_screen0::ch#2 ch zp[2]:3 5167.333333333333 -byte* gfx_init_screen0::ch#3 ch zp[2]:3 2002.0 -byte gfx_init_screen0::cx -byte gfx_init_screen0::cx#1 reg byte x 15001.5 -byte gfx_init_screen0::cx#2 reg byte x 4286.142857142857 -byte gfx_init_screen0::cy -byte gfx_init_screen0::cy#1 cy zp[1]:2 1501.5 -byte gfx_init_screen0::cy#4 cy zp[1]:2 1200.3 +char gfx_init_screen0::$0 // reg byte a 20002.0 +char gfx_init_screen0::$1 // zp[1]:9 10001.0 +char gfx_init_screen0::$2 // reg byte a 20002.0 +char gfx_init_screen0::$3 // reg byte a 20002.0 +char *gfx_init_screen0::ch +char *gfx_init_screen0::ch#1 // ch zp[2]:3 4200.6 +char *gfx_init_screen0::ch#2 // ch zp[2]:3 5167.333333333333 +char *gfx_init_screen0::ch#3 // ch zp[2]:3 2002.0 +char gfx_init_screen0::cx +char gfx_init_screen0::cx#1 // reg byte x 15001.5 +char gfx_init_screen0::cx#2 // reg byte x 4286.142857142857 +char gfx_init_screen0::cy +char gfx_init_screen0::cy#1 // cy zp[1]:2 1501.5 +char gfx_init_screen0::cy#4 // cy zp[1]:2 1200.3 void main() -byte~ main::$3 reg byte a 202.0 -byte~ main::$4 reg byte a 202.0 -byte~ main::$5 reg byte a 202.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 -byte main::rst -byte main::rst#1 reg byte x 57.714285714285715 +char main::$3 // reg byte a 202.0 +char main::$4 // reg byte a 202.0 +char main::$5 // reg byte a 202.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 +char main::rst +char main::rst#1 // reg byte x 57.714285714285715 reg byte x [ main::j#2 main::j#1 ] reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] diff --git a/src/test/ref/c64dtv-8bppchunkystretch.asm b/src/test/ref/c64dtv-8bppchunkystretch.asm index af6a043de..6913a2dae 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.asm +++ b/src/test/ref/c64dtv-8bppchunkystretch.asm @@ -356,7 +356,7 @@ gfx_init_chunky: { // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff // The actual memory addressed will be $4000*cpuSegmentIdx -// dtvSetCpuBankSegment1(byte register(A) cpuBankIdx) +// void dtvSetCpuBankSegment1(__register(A) char cpuBankIdx) dtvSetCpuBankSegment1: { // Move CPU BANK 1 SEGMENT ($4000-$7fff) .label cpuBank = $ff diff --git a/src/test/ref/c64dtv-8bppchunkystretch.cfg b/src/test/ref/c64dtv-8bppchunkystretch.cfg index 3f6e97f7b..f342c3ed4 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.cfg +++ b/src/test/ref/c64dtv-8bppchunkystretch.cfg @@ -4,7 +4,7 @@ main: scope:[main] from asm { sei } [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [2] *PROCPORT = PROCPORT_RAM_IO - [3] call gfx_init_chunky + [3] call gfx_init_chunky to:main::@6 main::@6: scope:[main] from main [4] *DTV_FEATURE = DTV_FEATURE_ENABLE @@ -17,8 +17,8 @@ main::@6: scope:[main] from main [11] *DTV_PLANEB_STEP = 8 [12] *DTV_PLANEB_MODULO_LO = 0 [13] *DTV_PLANEB_MODULO_HI = 0 - [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 - [15] *((byte*)CIA2) = 3^(byte)(word)CHUNKY/$4000 + [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + [15] *((char *)CIA2) = 3^(char)(unsigned int)CHUNKY/$4000 [16] *VICII_MEMORY = 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@6 @@ -52,12 +52,12 @@ main::@5: scope:[main] from main::@4 main::@5 void gfx_init_chunky() gfx_init_chunky: scope:[gfx_init_chunky] from main [34] phi() - [35] call dtvSetCpuBankSegment1 + [35] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@1 gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky gfx_init_chunky::@5 - [36] gfx_init_chunky::gfxbCpuBank#7 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxbCpuBank#8, gfx_init_chunky/++(byte)CHUNKY/$4000 ) + [36] gfx_init_chunky::gfxbCpuBank#7 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxbCpuBank#8, gfx_init_chunky/++(char)CHUNKY/$4000 ) [36] gfx_init_chunky::y#6 = phi( gfx_init_chunky::@5/gfx_init_chunky::y#1, gfx_init_chunky/0 ) - [36] gfx_init_chunky::gfxb#5 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxb#1, gfx_init_chunky/(byte*) 16384 ) + [36] gfx_init_chunky::gfxb#5 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxb#1, gfx_init_chunky/(char *) 16384 ) to:gfx_init_chunky::@2 gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_chunky::@3 [37] gfx_init_chunky::gfxbCpuBank#4 = phi( gfx_init_chunky::@1/gfx_init_chunky::gfxbCpuBank#7, gfx_init_chunky::@3/gfx_init_chunky::gfxbCpuBank#8 ) @@ -67,16 +67,16 @@ gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_ to:gfx_init_chunky::@4 gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2 [39] dtvSetCpuBankSegment1::cpuBankIdx#1 = gfx_init_chunky::gfxbCpuBank#4 - [40] call dtvSetCpuBankSegment1 + [40] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@7 gfx_init_chunky::@7: scope:[gfx_init_chunky] from gfx_init_chunky::@4 [41] gfx_init_chunky::gfxbCpuBank#2 = ++ gfx_init_chunky::gfxbCpuBank#4 to:gfx_init_chunky::@3 gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_chunky::@7 [42] gfx_init_chunky::gfxbCpuBank#8 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxbCpuBank#4, gfx_init_chunky::@7/gfx_init_chunky::gfxbCpuBank#2 ) - [42] gfx_init_chunky::gfxb#4 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxb#3, gfx_init_chunky::@7/(byte*) 16384 ) + [42] gfx_init_chunky::gfxb#4 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxb#3, gfx_init_chunky::@7/(char *) 16384 ) [43] gfx_init_chunky::$5 = gfx_init_chunky::x#2 + gfx_init_chunky::y#6 - [44] gfx_init_chunky::c#0 = (byte)gfx_init_chunky::$5 + [44] gfx_init_chunky::c#0 = (char)gfx_init_chunky::$5 [45] *gfx_init_chunky::gfxb#4 = gfx_init_chunky::c#0 [46] gfx_init_chunky::gfxb#1 = ++ gfx_init_chunky::gfxb#4 [47] gfx_init_chunky::x#1 = ++ gfx_init_chunky::x#2 @@ -88,15 +88,15 @@ gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 to:gfx_init_chunky::@6 gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5 [51] phi() - [52] call dtvSetCpuBankSegment1 + [52] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@return gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6 [53] return to:@return -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) +void dtvSetCpuBankSegment1(char cpuBankIdx) dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6 - [54] dtvSetCpuBankSegment1::cpuBankIdx#3 = phi( gfx_init_chunky/(byte)CHUNKY/$4000, gfx_init_chunky::@4/dtvSetCpuBankSegment1::cpuBankIdx#1, gfx_init_chunky::@6/(byte)$4000/$4000 ) + [54] dtvSetCpuBankSegment1::cpuBankIdx#3 = phi( gfx_init_chunky/(char)CHUNKY/$4000, gfx_init_chunky::@4/dtvSetCpuBankSegment1::cpuBankIdx#1, gfx_init_chunky::@6/(char)$4000/$4000 ) [55] *dtvSetCpuBankSegment1::cpuBank = dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return diff --git a/src/test/ref/c64dtv-8bppchunkystretch.log b/src/test/ref/c64dtv-8bppchunkystretch.log index e47ec9d50..936432eca 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.log +++ b/src/test/ref/c64dtv-8bppchunkystretch.log @@ -1,9 +1,9 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) +void dtvSetCpuBankSegment1(char cpuBankIdx) dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6 dtvSetCpuBankSegment1::cpuBankIdx#3 = phi( gfx_init_chunky/dtvSetCpuBankSegment1::cpuBankIdx#0, gfx_init_chunky::@4/dtvSetCpuBankSegment1::cpuBankIdx#1, gfx_init_chunky::@6/dtvSetCpuBankSegment1::cpuBankIdx#2 ) *dtvSetCpuBankSegment1::cpuBank = dtvSetCpuBankSegment1::cpuBankIdx#3 @@ -18,7 +18,7 @@ main: scope:[main] from __start::@1 asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - call gfx_init_chunky + call gfx_init_chunky to:main::@7 main::@7: scope:[main] from main *DTV_FEATURE = DTV_FEATURE_ENABLE @@ -31,9 +31,9 @@ main::@7: scope:[main] from main *DTV_PLANEB_STEP = 8 *DTV_PLANEB_MODULO_LO = 0 *DTV_PLANEB_MODULO_HI = 0 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)CHUNKY/$4000 - *VICII_MEMORY = (byte)(word)CHUNKY&$3fff/$40|byte1 (word)CHUNKY&$3fff/4 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(char)(unsigned int)CHUNKY/$4000 + *VICII_MEMORY = (char)(unsigned int)CHUNKY&$3fff/$40|byte1 (unsigned int)CHUNKY&$3fff/4 main::j#0 = 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@7 @@ -77,14 +77,14 @@ main::@return: scope:[main] from main::@2 void gfx_init_chunky() gfx_init_chunky: scope:[gfx_init_chunky] from main - gfx_init_chunky::gfxbCpuBank#0 = (byte)CHUNKY/$4000 + gfx_init_chunky::gfxbCpuBank#0 = (char)CHUNKY/$4000 dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_chunky::gfxbCpuBank#0 - call dtvSetCpuBankSegment1 + call dtvSetCpuBankSegment1 to:gfx_init_chunky::@7 gfx_init_chunky::@7: scope:[gfx_init_chunky] from gfx_init_chunky gfx_init_chunky::gfxbCpuBank#3 = phi( gfx_init_chunky/gfx_init_chunky::gfxbCpuBank#0 ) gfx_init_chunky::gfxbCpuBank#1 = ++ gfx_init_chunky::gfxbCpuBank#3 - gfx_init_chunky::gfxb#0 = (byte*)$4000 + gfx_init_chunky::gfxb#0 = (char *)$4000 gfx_init_chunky::y#0 = 0 to:gfx_init_chunky::@1 gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky::@5 gfx_init_chunky::@7 @@ -108,7 +108,7 @@ gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_ gfx_init_chunky::y#2 = phi( gfx_init_chunky::@2/gfx_init_chunky::y#4, gfx_init_chunky::@8/gfx_init_chunky::y#5 ) gfx_init_chunky::x#2 = phi( gfx_init_chunky::@2/gfx_init_chunky::x#3, gfx_init_chunky::@8/gfx_init_chunky::x#4 ) gfx_init_chunky::$5 = gfx_init_chunky::x#2 + gfx_init_chunky::y#2 - gfx_init_chunky::c#0 = (byte)gfx_init_chunky::$5 + gfx_init_chunky::c#0 = (char)gfx_init_chunky::$5 *gfx_init_chunky::gfxb#4 = gfx_init_chunky::c#0 gfx_init_chunky::gfxb#1 = ++ gfx_init_chunky::gfxb#4 gfx_init_chunky::x#1 = gfx_init_chunky::x#2 + rangenext(0,$13f) @@ -120,14 +120,14 @@ gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_chunky::x#5 = phi( gfx_init_chunky::@2/gfx_init_chunky::x#3 ) gfx_init_chunky::gfxbCpuBank#4 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxbCpuBank#6 ) dtvSetCpuBankSegment1::cpuBankIdx#1 = gfx_init_chunky::gfxbCpuBank#4 - call dtvSetCpuBankSegment1 + call dtvSetCpuBankSegment1 to:gfx_init_chunky::@8 gfx_init_chunky::@8: scope:[gfx_init_chunky] from gfx_init_chunky::@4 gfx_init_chunky::y#5 = phi( gfx_init_chunky::@4/gfx_init_chunky::y#7 ) gfx_init_chunky::x#4 = phi( gfx_init_chunky::@4/gfx_init_chunky::x#5 ) gfx_init_chunky::gfxbCpuBank#5 = phi( gfx_init_chunky::@4/gfx_init_chunky::gfxbCpuBank#4 ) gfx_init_chunky::gfxbCpuBank#2 = ++ gfx_init_chunky::gfxbCpuBank#5 - gfx_init_chunky::gfxb#2 = (byte*)$4000 + gfx_init_chunky::gfxb#2 = (char *)$4000 to:gfx_init_chunky::@3 gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 gfx_init_chunky::gfxbCpuBank#9 = phi( gfx_init_chunky::@3/gfx_init_chunky::gfxbCpuBank#8 ) @@ -138,8 +138,8 @@ gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 if(gfx_init_chunky::$7) goto gfx_init_chunky::@1 to:gfx_init_chunky::@6 gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5 - dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 - call dtvSetCpuBankSegment1 + dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 + call dtvSetCpuBankSegment1 to:gfx_init_chunky::@9 gfx_init_chunky::@9: scope:[gfx_init_chunky] from gfx_init_chunky::@6 to:gfx_init_chunky::@return @@ -153,7 +153,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -162,105 +162,105 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const CHUNKY = (byte*)$8000 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_CHUNKY = $40 -constant const byte DTV_COLORRAM_OFF = $10 -constant byte* const DTV_CONTROL = (byte*)$d03c -constant byte* const DTV_FEATURE = (byte*)$d03f -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant const byte DTV_LINEAR = 1 -constant byte* const DTV_PALETTE = (byte*)$d200 -constant byte* const DTV_PLANEB_MODULO_HI = (byte*)$d048 -constant byte* const DTV_PLANEB_MODULO_LO = (byte*)$d047 -constant byte* const DTV_PLANEB_START_HI = (byte*)$d04b -constant byte* const DTV_PLANEB_START_LO = (byte*)$d049 -constant byte* const DTV_PLANEB_START_MI = (byte*)$d04a -constant byte* const DTV_PLANEB_STEP = (byte*)$d04c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant byte* const VICII_CONTROL2 = (byte*)$d016 -constant const byte VICII_CSEL = 8 -constant const byte VICII_DEN = $10 -constant const byte VICII_ECM = $40 -constant const byte VICII_MCM = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const CHUNKY = (char *)$8000 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_CHUNKY = $40 +__constant const char DTV_COLORRAM_OFF = $10 +__constant char * const DTV_CONTROL = (char *)$d03c +__constant char * const DTV_FEATURE = (char *)$d03f +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant const char DTV_LINEAR = 1 +__constant char * const DTV_PALETTE = (char *)$d200 +__constant char * const DTV_PLANEB_MODULO_HI = (char *)$d048 +__constant char * const DTV_PLANEB_MODULO_LO = (char *)$d047 +__constant char * const DTV_PLANEB_START_HI = (char *)$d04b +__constant char * const DTV_PLANEB_START_LO = (char *)$d049 +__constant char * const DTV_PLANEB_START_MI = (char *)$d04a +__constant char * const DTV_PLANEB_STEP = (char *)$d04c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant char * const VICII_CONTROL2 = (char *)$d016 +__constant const char VICII_CSEL = 8 +__constant const char VICII_DEN = $10 +__constant const char VICII_ECM = $40 +__constant const char VICII_MCM = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 void __start() -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -constant byte* dtvSetCpuBankSegment1::cpuBank = (byte*)$ff -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#0 -byte dtvSetCpuBankSegment1::cpuBankIdx#1 -byte dtvSetCpuBankSegment1::cpuBankIdx#2 -byte dtvSetCpuBankSegment1::cpuBankIdx#3 +void dtvSetCpuBankSegment1(char cpuBankIdx) +__constant char *dtvSetCpuBankSegment1::cpuBank = (char *)$ff +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#0 +char dtvSetCpuBankSegment1::cpuBankIdx#1 +char dtvSetCpuBankSegment1::cpuBankIdx#2 +char dtvSetCpuBankSegment1::cpuBankIdx#3 void gfx_init_chunky() -bool~ gfx_init_chunky::$2 -bool~ gfx_init_chunky::$3 -word~ gfx_init_chunky::$5 -bool~ gfx_init_chunky::$6 -bool~ gfx_init_chunky::$7 -byte gfx_init_chunky::c -byte gfx_init_chunky::c#0 -byte* gfx_init_chunky::gfxb -byte* gfx_init_chunky::gfxb#0 -byte* gfx_init_chunky::gfxb#1 -byte* gfx_init_chunky::gfxb#2 -byte* gfx_init_chunky::gfxb#3 -byte* gfx_init_chunky::gfxb#4 -byte* gfx_init_chunky::gfxb#5 -byte* gfx_init_chunky::gfxb#6 -byte gfx_init_chunky::gfxbCpuBank -byte gfx_init_chunky::gfxbCpuBank#0 -byte gfx_init_chunky::gfxbCpuBank#1 -byte gfx_init_chunky::gfxbCpuBank#2 -byte gfx_init_chunky::gfxbCpuBank#3 -byte gfx_init_chunky::gfxbCpuBank#4 -byte gfx_init_chunky::gfxbCpuBank#5 -byte gfx_init_chunky::gfxbCpuBank#6 -byte gfx_init_chunky::gfxbCpuBank#7 -byte gfx_init_chunky::gfxbCpuBank#8 -byte gfx_init_chunky::gfxbCpuBank#9 -word gfx_init_chunky::x -word gfx_init_chunky::x#0 -word gfx_init_chunky::x#1 -word gfx_init_chunky::x#2 -word gfx_init_chunky::x#3 -word gfx_init_chunky::x#4 -word gfx_init_chunky::x#5 -byte gfx_init_chunky::y -byte gfx_init_chunky::y#0 -byte gfx_init_chunky::y#1 -byte gfx_init_chunky::y#2 -byte gfx_init_chunky::y#3 -byte gfx_init_chunky::y#4 -byte gfx_init_chunky::y#5 -byte gfx_init_chunky::y#6 -byte gfx_init_chunky::y#7 +bool gfx_init_chunky::$2 +bool gfx_init_chunky::$3 +unsigned int gfx_init_chunky::$5 +bool gfx_init_chunky::$6 +bool gfx_init_chunky::$7 +char gfx_init_chunky::c +char gfx_init_chunky::c#0 +char *gfx_init_chunky::gfxb +char *gfx_init_chunky::gfxb#0 +char *gfx_init_chunky::gfxb#1 +char *gfx_init_chunky::gfxb#2 +char *gfx_init_chunky::gfxb#3 +char *gfx_init_chunky::gfxb#4 +char *gfx_init_chunky::gfxb#5 +char *gfx_init_chunky::gfxb#6 +char gfx_init_chunky::gfxbCpuBank +char gfx_init_chunky::gfxbCpuBank#0 +char gfx_init_chunky::gfxbCpuBank#1 +char gfx_init_chunky::gfxbCpuBank#2 +char gfx_init_chunky::gfxbCpuBank#3 +char gfx_init_chunky::gfxbCpuBank#4 +char gfx_init_chunky::gfxbCpuBank#5 +char gfx_init_chunky::gfxbCpuBank#6 +char gfx_init_chunky::gfxbCpuBank#7 +char gfx_init_chunky::gfxbCpuBank#8 +char gfx_init_chunky::gfxbCpuBank#9 +unsigned int gfx_init_chunky::x +unsigned int gfx_init_chunky::x#0 +unsigned int gfx_init_chunky::x#1 +unsigned int gfx_init_chunky::x#2 +unsigned int gfx_init_chunky::x#3 +unsigned int gfx_init_chunky::x#4 +unsigned int gfx_init_chunky::x#5 +char gfx_init_chunky::y +char gfx_init_chunky::y#0 +char gfx_init_chunky::y#1 +char gfx_init_chunky::y#2 +char gfx_init_chunky::y#3 +char gfx_init_chunky::y#4 +char gfx_init_chunky::y#5 +char gfx_init_chunky::y#6 +char gfx_init_chunky::y#7 void main() -bool~ main::$1 -bool~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -bool~ main::$6 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::rst -byte main::rst#0 -byte main::rst#1 -byte main::rst#2 +bool main::$1 +bool main::$2 +number main::$3 +number main::$4 +number main::$5 +bool main::$6 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::rst +char main::rst#0 +char main::rst#1 +char main::rst#2 Adding number conversion cast (unumber) VICII_DEN|VICII_ECM|VICII_RSEL|3 in *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *VICII_CONTROL1 = ((unumber)) VICII_DEN|VICII_ECM|VICII_RSEL|3 @@ -268,15 +268,15 @@ Adding number conversion cast (unumber) 0 in *DTV_PLANEB_START_HI = 0 Adding number conversion cast (unumber) 8 in *DTV_PLANEB_STEP = 8 Adding number conversion cast (unumber) 0 in *DTV_PLANEB_MODULO_LO = 0 Adding number conversion cast (unumber) 0 in *DTV_PLANEB_MODULO_HI = 0 -Adding number conversion cast (unumber) 3 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -Adding number conversion cast (unumber) 3^(byte)(word)CHUNKY/$4000 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)CHUNKY/$4000 -Adding number conversion cast (unumber) 3 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) 3^(byte)(word)CHUNKY/$4000 -Adding number conversion cast (unumber) $4000 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) (unumber)3^(byte)(word)CHUNKY/$4000 -Adding number conversion cast (unumber) (byte)(word)CHUNKY&$3fff/$40|byte1 (word)CHUNKY&$3fff/4 in *VICII_MEMORY = (byte)(word)CHUNKY&$3fff/$40|byte1 (word)CHUNKY&$3fff/4 -Adding number conversion cast (unumber) byte1 (word)CHUNKY&$3fff/4 in *VICII_MEMORY = ((unumber)) (byte)(word)CHUNKY&$3fff/$40|byte1 (word)CHUNKY&$3fff/4 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (byte)(word)CHUNKY&$3fff/$40|(unumber)byte1 (word)CHUNKY&$3fff/4 -Adding number conversion cast (unumber) 4 in *VICII_MEMORY = ((unumber)) (byte)(word)CHUNKY&(unumber)$3fff/$40|(unumber)byte1 (word)CHUNKY&$3fff/4 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (byte)(word)CHUNKY&(unumber)$3fff/$40|(unumber)byte1 (word)CHUNKY&$3fff/(unumber)4 +Adding number conversion cast (unumber) 3 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 +Adding number conversion cast (unumber) 3^(char)(unsigned int)CHUNKY/$4000 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(char)(unsigned int)CHUNKY/$4000 +Adding number conversion cast (unumber) 3 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) 3^(char)(unsigned int)CHUNKY/$4000 +Adding number conversion cast (unumber) $4000 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = ((unumber)) (unumber)3^(char)(unsigned int)CHUNKY/$4000 +Adding number conversion cast (unumber) (char)(unsigned int)CHUNKY&$3fff/$40|byte1 (unsigned int)CHUNKY&$3fff/4 in *VICII_MEMORY = (char)(unsigned int)CHUNKY&$3fff/$40|byte1 (unsigned int)CHUNKY&$3fff/4 +Adding number conversion cast (unumber) byte1 (unsigned int)CHUNKY&$3fff/4 in *VICII_MEMORY = ((unumber)) (char)(unsigned int)CHUNKY&$3fff/$40|byte1 (unsigned int)CHUNKY&$3fff/4 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (char)(unsigned int)CHUNKY&$3fff/$40|(unumber)byte1 (unsigned int)CHUNKY&$3fff/4 +Adding number conversion cast (unumber) 4 in *VICII_MEMORY = ((unumber)) (char)(unsigned int)CHUNKY&(unumber)$3fff/$40|(unumber)byte1 (unsigned int)CHUNKY&$3fff/4 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = ((unumber)) (char)(unsigned int)CHUNKY&(unumber)$3fff/$40|(unumber)byte1 (unsigned int)CHUNKY&$3fff/(unumber)4 Adding number conversion cast (unumber) VICII_DEN|VICII_ECM|VICII_RSEL|3 in *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *VICII_CONTROL1 = ((unumber)) VICII_DEN|VICII_ECM|VICII_RSEL|3 Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0 @@ -286,41 +286,41 @@ Adding number conversion cast (unumber) main::$4 in main::$4 = VICII_DEN|VICII_E Adding number conversion cast (unumber) $10 in main::$5 = main::rst#1 * $10 Adding number conversion cast (unumber) main::$5 in main::$5 = main::rst#1 * (unumber)$10 Adding number conversion cast (unumber) $f2 in main::$6 = main::rst#1 != $f2 -Adding number conversion cast (unumber) $4000 in gfx_init_chunky::gfxbCpuBank#0 = (byte)CHUNKY/$4000 +Adding number conversion cast (unumber) $4000 in gfx_init_chunky::gfxbCpuBank#0 = (char)CHUNKY/$4000 Adding number conversion cast (unumber) $8000 in gfx_init_chunky::$2 = gfx_init_chunky::gfxb#3 == $8000 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = ((unumber)) (byte)(word)CHUNKY&(unumber)$3fff/$40|(unumber)byte1 (word)CHUNKY&(unumber)$3fff/(unumber)4 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = ((unumber)) (char)(unsigned int)CHUNKY&(unumber)$3fff/$40|(unumber)byte1 (unsigned int)CHUNKY&(unumber)$3fff/(unumber)4 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *VICII_CONTROL1 = (unumber)VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Inlining cast *DTV_PLANEB_START_HI = (unumber)0 Inlining cast *DTV_PLANEB_STEP = (unumber)8 Inlining cast *DTV_PLANEB_MODULO_LO = (unumber)0 Inlining cast *DTV_PLANEB_MODULO_HI = (unumber)0 -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = (unumber)(unumber)3^(byte)(word)CHUNKY/(unumber)$4000 -Inlining cast *VICII_MEMORY = (unumber)(byte)(word)CHUNKY&(unumber)$3fff/(unumber)$40|(unumber)byte1 (word)CHUNKY&(unumber)$3fff/(unumber)4 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = (unumber)(unumber)3^(char)(unsigned int)CHUNKY/(unumber)$4000 +Inlining cast *VICII_MEMORY = (unumber)(char)(unsigned int)CHUNKY&(unumber)$3fff/(unumber)$40|(unumber)byte1 (unsigned int)CHUNKY&(unumber)$3fff/(unumber)4 Inlining cast *VICII_CONTROL1 = (unumber)VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Inlining cast *BORDER_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53270 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (byte*) 53311 -Simplifying constant pointer cast (byte*) 53308 -Simplifying constant pointer cast (byte*) 53760 -Simplifying constant pointer cast (byte*) 53321 -Simplifying constant pointer cast (byte*) 53322 -Simplifying constant pointer cast (byte*) 53323 -Simplifying constant pointer cast (byte*) 53324 -Simplifying constant pointer cast (byte*) 53319 -Simplifying constant pointer cast (byte*) 53320 -Simplifying constant pointer cast (byte*) 255 -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53270 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (char *) 53311 +Simplifying constant pointer cast (char *) 53308 +Simplifying constant pointer cast (char *) 53760 +Simplifying constant pointer cast (char *) 53321 +Simplifying constant pointer cast (char *) 53322 +Simplifying constant pointer cast (char *) 53323 +Simplifying constant pointer cast (char *) 53324 +Simplifying constant pointer cast (char *) 53319 +Simplifying constant pointer cast (char *) 53320 +Simplifying constant pointer cast (char *) 255 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 Simplifying constant integer cast 3 Simplifying constant integer cast 0 @@ -328,13 +328,13 @@ Simplifying constant integer cast 8 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 3 -Simplifying constant integer cast (unumber)3^(byte)(word)CHUNKY/(unumber)$4000 +Simplifying constant integer cast (unumber)3^(char)(unsigned int)CHUNKY/(unumber)$4000 Simplifying constant integer cast 3 Simplifying constant integer cast $4000 -Simplifying constant integer cast (byte)(word)CHUNKY&(unumber)$3fff/(unumber)$40|(unumber)byte1 (word)CHUNKY&(unumber)$3fff/(unumber)4 +Simplifying constant integer cast (char)(unsigned int)CHUNKY&(unumber)$3fff/(unumber)$40|(unumber)byte1 (unsigned int)CHUNKY&(unumber)$3fff/(unumber)4 Simplifying constant integer cast $3fff Simplifying constant integer cast $40 -Simplifying constant integer cast byte1 (word)CHUNKY&(unumber)$3fff/(unumber)4 +Simplifying constant integer cast byte1 (unsigned int)CHUNKY&(unumber)$3fff/(unumber)4 Simplifying constant integer cast $3fff Simplifying constant integer cast 4 Simplifying constant integer cast VICII_DEN|VICII_ECM|VICII_RSEL|(unumber)3 @@ -344,33 +344,33 @@ Simplifying constant integer cast 7 Simplifying constant integer cast $10 Simplifying constant integer cast $f2 Simplifying constant integer cast $4000 -Simplifying constant pointer cast (byte*) 16384 +Simplifying constant pointer cast (char *) 16384 Simplifying constant integer cast $8000 -Simplifying constant pointer cast (byte*) 16384 +Simplifying constant pointer cast (char *) 16384 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f2 -Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $8000 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $4000 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f2 +Finalized unsigned number type (unsigned int) $4000 +Finalized unsigned number type (unsigned int) $8000 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$3 = main::rst#1 & 7 -Inferred type updated to byte in main::$4 = VICII_DEN|VICII_ECM|VICII_RSEL | main::$3 -Inferred type updated to byte in main::$5 = main::rst#1 * $10 +Inferred type updated to char in main::$3 = main::rst#1 & 7 +Inferred type updated to char in main::$4 = VICII_DEN|VICII_ECM|VICII_RSEL | main::$3 +Inferred type updated to char in main::$5 = main::rst#1 * $10 Inversing boolean not [57] gfx_init_chunky::$3 = gfx_init_chunky::gfxb#3 != $8000 from [56] gfx_init_chunky::$2 = gfx_init_chunky::gfxb#3 == $8000 Successful SSA optimization Pass2UnaryNotSimplification Alias gfx_init_chunky::gfxbCpuBank#0 = gfx_init_chunky::gfxbCpuBank#3 @@ -396,12 +396,12 @@ Simple Condition gfx_init_chunky::$7 [71] if(gfx_init_chunky::y#1!=rangelast(0,$ Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::j#0 = 0 Constant main::rst#0 = $42 -Constant gfx_init_chunky::gfxbCpuBank#0 = (byte)CHUNKY/$4000 -Constant gfx_init_chunky::gfxb#0 = (byte*) 16384 +Constant gfx_init_chunky::gfxbCpuBank#0 = (char)CHUNKY/$4000 +Constant gfx_init_chunky::gfxb#0 = (char *) 16384 Constant gfx_init_chunky::y#0 = 0 Constant gfx_init_chunky::x#0 = 0 -Constant gfx_init_chunky::gfxb#2 = (byte*) 16384 -Constant dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 +Constant gfx_init_chunky::gfxb#2 = (char *) 16384 +Constant dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 Successful SSA optimization Pass2ConstantIdentification Constant dtvSetCpuBankSegment1::cpuBankIdx#0 = gfx_init_chunky::gfxbCpuBank#0 Successful SSA optimization Pass2ConstantIdentification @@ -414,9 +414,9 @@ Resolved ranged comparison value [64] if(gfx_init_chunky::x#1!=rangelast(0,$13f) Resolved ranged next value [69] gfx_init_chunky::y#1 = ++ gfx_init_chunky::y#6 to ++ Resolved ranged comparison value [71] if(gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1 to $33 Simplifying constant evaluating to zero byte0 CHUNKY in [12] *DTV_PLANEB_START_LO = byte0 CHUNKY -Simplifying constant evaluating to zero (byte)(word)CHUNKY&$3fff/$40|byte1 (word)CHUNKY&$3fff/4 in [20] *VICII_MEMORY = (byte)(word)CHUNKY&$3fff/$40|byte1 (word)CHUNKY&$3fff/4 +Simplifying constant evaluating to zero (char)(unsigned int)CHUNKY&$3fff/$40|byte1 (unsigned int)CHUNKY&$3fff/4 in [20] *VICII_MEMORY = (char)(unsigned int)CHUNKY&$3fff/$40|byte1 (unsigned int)CHUNKY&$3fff/4 Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)CIA2 in [19] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(byte)(word)CHUNKY/$4000 +Simplifying expression containing zero (char *)CIA2 in [19] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = 3^(char)(unsigned int)CHUNKY/$4000 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -437,9 +437,9 @@ Simplifying constant integer cast $10 Simplifying constant integer cast $140 Simplifying constant integer cast $33 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $140 -Finalized unsigned number type (byte) $33 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $140 +Finalized unsigned number type (char) $33 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [39] gfx_init_chunky::gfxbCpuBank#1 = ++ gfx_init_chunky::gfxbCpuBank#0 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -457,19 +457,19 @@ Inlining constant with var siblings gfx_init_chunky::y#0 Inlining constant with var siblings gfx_init_chunky::x#0 Inlining constant with var siblings gfx_init_chunky::gfxb#2 Inlining constant with var siblings gfx_init_chunky::gfxbCpuBank#1 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = (byte)CHUNKY/$4000 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#0 = (char)CHUNKY/$4000 Constant inlined main::rst#0 = $42 -Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = (byte)$4000/$4000 -Constant inlined gfx_init_chunky::gfxbCpuBank#1 = ++(byte)CHUNKY/$4000 +Constant inlined dtvSetCpuBankSegment1::cpuBankIdx#2 = (char)$4000/$4000 +Constant inlined gfx_init_chunky::gfxbCpuBank#1 = ++(char)CHUNKY/$4000 Constant inlined gfx_init_chunky::y#0 = 0 Constant inlined main::j#0 = 0 Constant inlined gfx_init_chunky::x#0 = 0 -Constant inlined gfx_init_chunky::gfxb#2 = (byte*) 16384 -Constant inlined gfx_init_chunky::gfxb#0 = (byte*) 16384 -Constant inlined gfx_init_chunky::gfxbCpuBank#0 = (byte)CHUNKY/$4000 +Constant inlined gfx_init_chunky::gfxb#2 = (char *) 16384 +Constant inlined gfx_init_chunky::gfxb#0 = (char *) 16384 +Constant inlined gfx_init_chunky::gfxbCpuBank#0 = (char)CHUNKY/$4000 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $4000 -Finalized unsigned number type (word) $4000 +Finalized unsigned number type (unsigned int) $4000 +Finalized unsigned number type (unsigned int) $4000 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@8(between main::@1 and main::@1) Added new block during phi lifting gfx_init_chunky::@10(between gfx_init_chunky::@5 and gfx_init_chunky::@1) @@ -522,7 +522,7 @@ main: scope:[main] from asm { sei } [1] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [2] *PROCPORT = PROCPORT_RAM_IO - [3] call gfx_init_chunky + [3] call gfx_init_chunky to:main::@6 main::@6: scope:[main] from main [4] *DTV_FEATURE = DTV_FEATURE_ENABLE @@ -535,8 +535,8 @@ main::@6: scope:[main] from main [11] *DTV_PLANEB_STEP = 8 [12] *DTV_PLANEB_MODULO_LO = 0 [13] *DTV_PLANEB_MODULO_HI = 0 - [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 - [15] *((byte*)CIA2) = 3^(byte)(word)CHUNKY/$4000 + [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + [15] *((char *)CIA2) = 3^(char)(unsigned int)CHUNKY/$4000 [16] *VICII_MEMORY = 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@6 @@ -570,12 +570,12 @@ main::@5: scope:[main] from main::@4 main::@5 void gfx_init_chunky() gfx_init_chunky: scope:[gfx_init_chunky] from main [34] phi() - [35] call dtvSetCpuBankSegment1 + [35] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@1 gfx_init_chunky::@1: scope:[gfx_init_chunky] from gfx_init_chunky gfx_init_chunky::@5 - [36] gfx_init_chunky::gfxbCpuBank#7 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxbCpuBank#8, gfx_init_chunky/++(byte)CHUNKY/$4000 ) + [36] gfx_init_chunky::gfxbCpuBank#7 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxbCpuBank#8, gfx_init_chunky/++(char)CHUNKY/$4000 ) [36] gfx_init_chunky::y#6 = phi( gfx_init_chunky::@5/gfx_init_chunky::y#1, gfx_init_chunky/0 ) - [36] gfx_init_chunky::gfxb#5 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxb#1, gfx_init_chunky/(byte*) 16384 ) + [36] gfx_init_chunky::gfxb#5 = phi( gfx_init_chunky::@5/gfx_init_chunky::gfxb#1, gfx_init_chunky/(char *) 16384 ) to:gfx_init_chunky::@2 gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_chunky::@3 [37] gfx_init_chunky::gfxbCpuBank#4 = phi( gfx_init_chunky::@1/gfx_init_chunky::gfxbCpuBank#7, gfx_init_chunky::@3/gfx_init_chunky::gfxbCpuBank#8 ) @@ -585,16 +585,16 @@ gfx_init_chunky::@2: scope:[gfx_init_chunky] from gfx_init_chunky::@1 gfx_init_ to:gfx_init_chunky::@4 gfx_init_chunky::@4: scope:[gfx_init_chunky] from gfx_init_chunky::@2 [39] dtvSetCpuBankSegment1::cpuBankIdx#1 = gfx_init_chunky::gfxbCpuBank#4 - [40] call dtvSetCpuBankSegment1 + [40] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@7 gfx_init_chunky::@7: scope:[gfx_init_chunky] from gfx_init_chunky::@4 [41] gfx_init_chunky::gfxbCpuBank#2 = ++ gfx_init_chunky::gfxbCpuBank#4 to:gfx_init_chunky::@3 gfx_init_chunky::@3: scope:[gfx_init_chunky] from gfx_init_chunky::@2 gfx_init_chunky::@7 [42] gfx_init_chunky::gfxbCpuBank#8 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxbCpuBank#4, gfx_init_chunky::@7/gfx_init_chunky::gfxbCpuBank#2 ) - [42] gfx_init_chunky::gfxb#4 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxb#3, gfx_init_chunky::@7/(byte*) 16384 ) + [42] gfx_init_chunky::gfxb#4 = phi( gfx_init_chunky::@2/gfx_init_chunky::gfxb#3, gfx_init_chunky::@7/(char *) 16384 ) [43] gfx_init_chunky::$5 = gfx_init_chunky::x#2 + gfx_init_chunky::y#6 - [44] gfx_init_chunky::c#0 = (byte)gfx_init_chunky::$5 + [44] gfx_init_chunky::c#0 = (char)gfx_init_chunky::$5 [45] *gfx_init_chunky::gfxb#4 = gfx_init_chunky::c#0 [46] gfx_init_chunky::gfxb#1 = ++ gfx_init_chunky::gfxb#4 [47] gfx_init_chunky::x#1 = ++ gfx_init_chunky::x#2 @@ -606,15 +606,15 @@ gfx_init_chunky::@5: scope:[gfx_init_chunky] from gfx_init_chunky::@3 to:gfx_init_chunky::@6 gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5 [51] phi() - [52] call dtvSetCpuBankSegment1 + [52] call dtvSetCpuBankSegment1 to:gfx_init_chunky::@return gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6 [53] return to:@return -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) +void dtvSetCpuBankSegment1(char cpuBankIdx) dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6 - [54] dtvSetCpuBankSegment1::cpuBankIdx#3 = phi( gfx_init_chunky/(byte)CHUNKY/$4000, gfx_init_chunky::@4/dtvSetCpuBankSegment1::cpuBankIdx#1, gfx_init_chunky::@6/(byte)$4000/$4000 ) + [54] dtvSetCpuBankSegment1::cpuBankIdx#3 = phi( gfx_init_chunky/(char)CHUNKY/$4000, gfx_init_chunky::@4/dtvSetCpuBankSegment1::cpuBankIdx#1, gfx_init_chunky::@6/(char)$4000/$4000 ) [55] *dtvSetCpuBankSegment1::cpuBank = dtvSetCpuBankSegment1::cpuBankIdx#3 asm { .byte$32,$dd lda$ff .byte$32,$00 } to:dtvSetCpuBankSegment1::@return @@ -624,39 +624,39 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan VARIABLE REGISTER WEIGHTS -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#1 2002.0 -byte dtvSetCpuBankSegment1::cpuBankIdx#3 11002.0 +void dtvSetCpuBankSegment1(char cpuBankIdx) +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#1 // 2002.0 +char dtvSetCpuBankSegment1::cpuBankIdx#3 // 11002.0 void gfx_init_chunky() -word~ gfx_init_chunky::$5 1001.0 -byte gfx_init_chunky::c -byte gfx_init_chunky::c#0 2002.0 -byte* gfx_init_chunky::gfxb -byte* gfx_init_chunky::gfxb#1 420.59999999999997 -byte* gfx_init_chunky::gfxb#3 1552.0 -byte* gfx_init_chunky::gfxb#4 750.75 -byte* gfx_init_chunky::gfxb#5 202.0 -byte gfx_init_chunky::gfxbCpuBank -byte gfx_init_chunky::gfxbCpuBank#2 2002.0 -byte gfx_init_chunky::gfxbCpuBank#4 1026.25 -byte gfx_init_chunky::gfxbCpuBank#7 202.0 -byte gfx_init_chunky::gfxbCpuBank#8 344.8888888888889 -word gfx_init_chunky::x -word gfx_init_chunky::x#1 1501.5 -word gfx_init_chunky::x#2 300.29999999999995 -byte gfx_init_chunky::y -byte gfx_init_chunky::y#1 151.5 -byte gfx_init_chunky::y#6 92.53846153846155 +unsigned int gfx_init_chunky::$5 // 1001.0 +char gfx_init_chunky::c +char gfx_init_chunky::c#0 // 2002.0 +char *gfx_init_chunky::gfxb +char *gfx_init_chunky::gfxb#1 // 420.59999999999997 +char *gfx_init_chunky::gfxb#3 // 1552.0 +char *gfx_init_chunky::gfxb#4 // 750.75 +char *gfx_init_chunky::gfxb#5 // 202.0 +char gfx_init_chunky::gfxbCpuBank +char gfx_init_chunky::gfxbCpuBank#2 // 2002.0 +char gfx_init_chunky::gfxbCpuBank#4 // 1026.25 +char gfx_init_chunky::gfxbCpuBank#7 // 202.0 +char gfx_init_chunky::gfxbCpuBank#8 // 344.8888888888889 +unsigned int gfx_init_chunky::x +unsigned int gfx_init_chunky::x#1 // 1501.5 +unsigned int gfx_init_chunky::x#2 // 300.29999999999995 +char gfx_init_chunky::y +char gfx_init_chunky::y#1 // 151.5 +char gfx_init_chunky::y#6 // 92.53846153846155 void main() -byte~ main::$3 202.0 -byte~ main::$4 202.0 -byte~ main::$5 202.0 -byte main::j -byte main::j#1 16.5 -byte main::j#2 22.0 -byte main::rst -byte main::rst#1 57.714285714285715 +char main::$3 // 202.0 +char main::$4 // 202.0 +char main::$5 // 202.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 22.0 +char main::rst +char main::rst#1 // 57.714285714285715 Initial phi equivalence classes [ main::j#2 main::j#1 ] @@ -709,8 +709,8 @@ Statement [10] *DTV_PLANEB_START_HI = 0 [ ] ( [ ] { } ) always clobbers reg by Statement [11] *DTV_PLANEB_STEP = 8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [12] *DTV_PLANEB_MODULO_LO = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] *DTV_PLANEB_MODULO_HI = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [15] *((byte*)CIA2) = 3^(byte)(word)CHUNKY/$4000 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [15] *((char *)CIA2) = 3^(char)(unsigned int)CHUNKY/$4000 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] *VICII_MEMORY = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [22] *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a @@ -740,8 +740,8 @@ Statement [10] *DTV_PLANEB_START_HI = 0 [ ] ( [ ] { } ) always clobbers reg by Statement [11] *DTV_PLANEB_STEP = 8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [12] *DTV_PLANEB_MODULO_LO = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] *DTV_PLANEB_MODULO_HI = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [15] *((byte*)CIA2) = 3^(byte)(word)CHUNKY/$4000 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [15] *((char *)CIA2) = 3^(char)(unsigned int)CHUNKY/$4000 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] *VICII_MEMORY = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement asm { ldx#$ff rff: cpxRASTER bnerff stabilize: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop cpxRASTER beqeat+0 eat: inx cpx#$08 bnestabilize } always clobbers reg byte x Statement [22] *VICII_CONTROL1 = VICII_DEN|VICII_ECM|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a @@ -910,7 +910,7 @@ main: { // [2] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [3] call gfx_init_chunky + // [3] call gfx_init_chunky // [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky] gfx_init_chunky_from_main: jsr gfx_init_chunky @@ -950,11 +950,11 @@ main: { // [13] *DTV_PLANEB_MODULO_HI = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DTV_PLANEB_MODULO_HI - // [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 + // [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR - // [15] *((byte*)CIA2) = 3^(byte)(word)CHUNKY/$4000 -- _deref_pbuc1=vbuc2 + // [15] *((char *)CIA2) = 3^(char)(unsigned int)CHUNKY/$4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHUNKY/$4000 sta CIA2 @@ -1107,20 +1107,20 @@ gfx_init_chunky: { .label gfxb = 5 .label x = 3 .label y = 2 - // [35] call dtvSetCpuBankSegment1 + // [35] call dtvSetCpuBankSegment1 // [54] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from_gfx_init_chunky: - // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (byte)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #CHUNKY/$4000 jsr dtvSetCpuBankSegment1 // [36] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1] __b1_from_gfx_init_chunky: - // [36] phi gfx_init_chunky::gfxbCpuBank#7 = ++(byte)CHUNKY/$4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 + // [36] phi gfx_init_chunky::gfxbCpuBank#7 = ++(char)CHUNKY/$4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 ldx #($ff&CHUNKY/$4000)+1 // [36] phi gfx_init_chunky::y#6 = 0 [phi:gfx_init_chunky->gfx_init_chunky::@1#1] -- vbuz1=vbuc1 lda #0 sta.z y - // [36] phi gfx_init_chunky::gfxb#5 = (byte*) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 + // [36] phi gfx_init_chunky::gfxb#5 = (char *) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxb lda #>$4000 @@ -1164,7 +1164,7 @@ gfx_init_chunky: { __b4: // [39] dtvSetCpuBankSegment1::cpuBankIdx#1 = gfx_init_chunky::gfxbCpuBank#4 -- vbuaa=vbuxx txa - // [40] call dtvSetCpuBankSegment1 + // [40] call dtvSetCpuBankSegment1 // [54] phi from gfx_init_chunky::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from___b4: // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- register_copy @@ -1177,7 +1177,7 @@ gfx_init_chunky: { // [42] phi from gfx_init_chunky::@7 to gfx_init_chunky::@3 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3] __b3_from___b7: // [42] phi gfx_init_chunky::gfxbCpuBank#8 = gfx_init_chunky::gfxbCpuBank#2 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3#0] -- register_copy - // [42] phi gfx_init_chunky::gfxb#4 = (byte*) 16384 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 + // [42] phi gfx_init_chunky::gfxb#4 = (char *) 16384 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxb lda #>$4000 @@ -1198,7 +1198,7 @@ gfx_init_chunky: { lda #0 adc.z x+1 sta.z __5+1 - // [44] gfx_init_chunky::c#0 = (byte)gfx_init_chunky::$5 -- vbuaa=_byte_vwuz1 + // [44] gfx_init_chunky::c#0 = (char)gfx_init_chunky::$5 -- vbuaa=_byte_vwuz1 lda.z __5 // [45] *gfx_init_chunky::gfxb#4 = gfx_init_chunky::c#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -1234,11 +1234,11 @@ gfx_init_chunky: { jmp __b6 // gfx_init_chunky::@6 __b6: - // [52] call dtvSetCpuBankSegment1 + // [52] call dtvSetCpuBankSegment1 // Reset CPU BANK segment to $4000 // [54] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1] dtvSetCpuBankSegment1_from___b6: - // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (byte)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 jmp __breturn @@ -1251,7 +1251,7 @@ gfx_init_chunky: { // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff // The actual memory addressed will be $4000*cpuSegmentIdx -// dtvSetCpuBankSegment1(byte register(A) cpuBankIdx) +// void dtvSetCpuBankSegment1(__register(A) char cpuBankIdx) dtvSetCpuBankSegment1: { // Move CPU BANK 1 SEGMENT ($4000-$7fff) .label cpuBank = $ff @@ -1326,72 +1326,72 @@ Succesful ASM optimization Pass5NextJumpElimination Replacing instruction ldx #0 with TAX FINAL SYMBOL TABLE -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const CHUNKY = (byte*) 32768 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_CHUNKY = $40 -constant const byte DTV_COLORRAM_OFF = $10 -constant byte* const DTV_CONTROL = (byte*) 53308 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant const byte DTV_LINEAR = 1 -constant byte* const DTV_PALETTE = (byte*) 53760 -constant byte* const DTV_PLANEB_MODULO_HI = (byte*) 53320 -constant byte* const DTV_PLANEB_MODULO_LO = (byte*) 53319 -constant byte* const DTV_PLANEB_START_HI = (byte*) 53323 -constant byte* const DTV_PLANEB_START_LO = (byte*) 53321 -constant byte* const DTV_PLANEB_START_MI = (byte*) 53322 -constant byte* const DTV_PLANEB_STEP = (byte*) 53324 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant byte* const VICII_CONTROL2 = (byte*) 53270 -constant const byte VICII_CSEL = 8 -constant const byte VICII_DEN = $10 -constant const byte VICII_ECM = $40 -constant const byte VICII_MCM = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -constant byte* dtvSetCpuBankSegment1::cpuBank = (byte*) 255 -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 2002.0 -byte dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 11002.0 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const CHUNKY = (char *) 32768 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_CHUNKY = $40 +__constant const char DTV_COLORRAM_OFF = $10 +__constant char * const DTV_CONTROL = (char *) 53308 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant const char DTV_LINEAR = 1 +__constant char * const DTV_PALETTE = (char *) 53760 +__constant char * const DTV_PLANEB_MODULO_HI = (char *) 53320 +__constant char * const DTV_PLANEB_MODULO_LO = (char *) 53319 +__constant char * const DTV_PLANEB_START_HI = (char *) 53323 +__constant char * const DTV_PLANEB_START_LO = (char *) 53321 +__constant char * const DTV_PLANEB_START_MI = (char *) 53322 +__constant char * const DTV_PLANEB_STEP = (char *) 53324 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant char * const VICII_CONTROL2 = (char *) 53270 +__constant const char VICII_CSEL = 8 +__constant const char VICII_DEN = $10 +__constant const char VICII_ECM = $40 +__constant const char VICII_MCM = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +void dtvSetCpuBankSegment1(char cpuBankIdx) +__constant char *dtvSetCpuBankSegment1::cpuBank = (char *) 255 +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#1 // reg byte a 2002.0 +char dtvSetCpuBankSegment1::cpuBankIdx#3 // reg byte a 11002.0 void gfx_init_chunky() -word~ gfx_init_chunky::$5 zp[2]:7 1001.0 -byte gfx_init_chunky::c -byte gfx_init_chunky::c#0 reg byte a 2002.0 -byte* gfx_init_chunky::gfxb -byte* gfx_init_chunky::gfxb#1 gfxb zp[2]:5 420.59999999999997 -byte* gfx_init_chunky::gfxb#3 gfxb zp[2]:5 1552.0 -byte* gfx_init_chunky::gfxb#4 gfxb zp[2]:5 750.75 -byte* gfx_init_chunky::gfxb#5 gfxb zp[2]:5 202.0 -byte gfx_init_chunky::gfxbCpuBank -byte gfx_init_chunky::gfxbCpuBank#2 reg byte x 2002.0 -byte gfx_init_chunky::gfxbCpuBank#4 reg byte x 1026.25 -byte gfx_init_chunky::gfxbCpuBank#7 reg byte x 202.0 -byte gfx_init_chunky::gfxbCpuBank#8 reg byte x 344.8888888888889 -word gfx_init_chunky::x -word gfx_init_chunky::x#1 x zp[2]:3 1501.5 -word gfx_init_chunky::x#2 x zp[2]:3 300.29999999999995 -byte gfx_init_chunky::y -byte gfx_init_chunky::y#1 y zp[1]:2 151.5 -byte gfx_init_chunky::y#6 y zp[1]:2 92.53846153846155 +unsigned int gfx_init_chunky::$5 // zp[2]:7 1001.0 +char gfx_init_chunky::c +char gfx_init_chunky::c#0 // reg byte a 2002.0 +char *gfx_init_chunky::gfxb +char *gfx_init_chunky::gfxb#1 // gfxb zp[2]:5 420.59999999999997 +char *gfx_init_chunky::gfxb#3 // gfxb zp[2]:5 1552.0 +char *gfx_init_chunky::gfxb#4 // gfxb zp[2]:5 750.75 +char *gfx_init_chunky::gfxb#5 // gfxb zp[2]:5 202.0 +char gfx_init_chunky::gfxbCpuBank +char gfx_init_chunky::gfxbCpuBank#2 // reg byte x 2002.0 +char gfx_init_chunky::gfxbCpuBank#4 // reg byte x 1026.25 +char gfx_init_chunky::gfxbCpuBank#7 // reg byte x 202.0 +char gfx_init_chunky::gfxbCpuBank#8 // reg byte x 344.8888888888889 +unsigned int gfx_init_chunky::x +unsigned int gfx_init_chunky::x#1 // x zp[2]:3 1501.5 +unsigned int gfx_init_chunky::x#2 // x zp[2]:3 300.29999999999995 +char gfx_init_chunky::y +char gfx_init_chunky::y#1 // y zp[1]:2 151.5 +char gfx_init_chunky::y#6 // y zp[1]:2 92.53846153846155 void main() -byte~ main::$3 reg byte a 202.0 -byte~ main::$4 reg byte a 202.0 -byte~ main::$5 reg byte a 202.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 -byte main::rst -byte main::rst#1 reg byte x 57.714285714285715 +char main::$3 // reg byte a 202.0 +char main::$4 // reg byte a 202.0 +char main::$5 // reg byte a 202.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 +char main::rst +char main::rst#1 // reg byte x 57.714285714285715 reg byte x [ main::j#2 main::j#1 ] zp[1]:2 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ] @@ -1529,7 +1529,7 @@ main: { lda #PROCPORT_RAM_IO sta PROCPORT // gfx_init_chunky() - // [3] call gfx_init_chunky + // [3] call gfx_init_chunky // [34] phi from main to gfx_init_chunky [phi:main->gfx_init_chunky] jsr gfx_init_chunky // main::@6 @@ -1576,12 +1576,12 @@ main: { // [13] *DTV_PLANEB_MODULO_HI = 0 -- _deref_pbuc1=vbuc2 sta DTV_PLANEB_MODULO_HI // CIA2->PORT_A_DDR = %00000011 - // [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 + // [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 // VIC Graphics Bank lda #3 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR // CIA2->PORT_A = %00000011 ^ (byte)((word)CHUNKY/$4000) - // [15] *((byte*)CIA2) = 3^(byte)(word)CHUNKY/$4000 -- _deref_pbuc1=vbuc2 + // [15] *((char *)CIA2) = 3^(char)(unsigned int)CHUNKY/$4000 -- _deref_pbuc1=vbuc2 // Set VIC Bank bits to output - all others to input lda #3^CHUNKY/$4000 sta CIA2 @@ -1742,18 +1742,18 @@ gfx_init_chunky: { .label x = 3 .label y = 2 // dtvSetCpuBankSegment1(gfxbCpuBank++) - // [35] call dtvSetCpuBankSegment1 + // [35] call dtvSetCpuBankSegment1 // [54] phi from gfx_init_chunky to dtvSetCpuBankSegment1 [phi:gfx_init_chunky->dtvSetCpuBankSegment1] - // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (byte)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)CHUNKY/$4000 [phi:gfx_init_chunky->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #CHUNKY/$4000 jsr dtvSetCpuBankSegment1 // [36] phi from gfx_init_chunky to gfx_init_chunky::@1 [phi:gfx_init_chunky->gfx_init_chunky::@1] - // [36] phi gfx_init_chunky::gfxbCpuBank#7 = ++(byte)CHUNKY/$4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 + // [36] phi gfx_init_chunky::gfxbCpuBank#7 = ++(char)CHUNKY/$4000 [phi:gfx_init_chunky->gfx_init_chunky::@1#0] -- vbuxx=vbuc1 ldx #($ff&CHUNKY/$4000)+1 // [36] phi gfx_init_chunky::y#6 = 0 [phi:gfx_init_chunky->gfx_init_chunky::@1#1] -- vbuz1=vbuc1 lda #0 sta.z y - // [36] phi gfx_init_chunky::gfxb#5 = (byte*) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 + // [36] phi gfx_init_chunky::gfxb#5 = (char *) 16384 [phi:gfx_init_chunky->gfx_init_chunky::@1#2] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxb lda #>$4000 @@ -1789,7 +1789,7 @@ gfx_init_chunky: { // dtvSetCpuBankSegment1(gfxbCpuBank++) // [39] dtvSetCpuBankSegment1::cpuBankIdx#1 = gfx_init_chunky::gfxbCpuBank#4 -- vbuaa=vbuxx txa - // [40] call dtvSetCpuBankSegment1 + // [40] call dtvSetCpuBankSegment1 // [54] phi from gfx_init_chunky::@4 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1] // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = dtvSetCpuBankSegment1::cpuBankIdx#1 [phi:gfx_init_chunky::@4->dtvSetCpuBankSegment1#0] -- register_copy jsr dtvSetCpuBankSegment1 @@ -1799,7 +1799,7 @@ gfx_init_chunky: { inx // [42] phi from gfx_init_chunky::@7 to gfx_init_chunky::@3 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3] // [42] phi gfx_init_chunky::gfxbCpuBank#8 = gfx_init_chunky::gfxbCpuBank#2 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3#0] -- register_copy - // [42] phi gfx_init_chunky::gfxb#4 = (byte*) 16384 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 + // [42] phi gfx_init_chunky::gfxb#4 = (char *) 16384 [phi:gfx_init_chunky::@7->gfx_init_chunky::@3#1] -- pbuz1=pbuc1 lda #<$4000 sta.z gfxb lda #>$4000 @@ -1819,7 +1819,7 @@ gfx_init_chunky: { adc.z x+1 sta.z __5+1 // byte c = (byte)(x+y) - // [44] gfx_init_chunky::c#0 = (byte)gfx_init_chunky::$5 -- vbuaa=_byte_vwuz1 + // [44] gfx_init_chunky::c#0 = (char)gfx_init_chunky::$5 -- vbuaa=_byte_vwuz1 lda.z __5 // *gfxb++ = c // [45] *gfx_init_chunky::gfxb#4 = gfx_init_chunky::c#0 -- _deref_pbuz1=vbuaa @@ -1855,10 +1855,10 @@ gfx_init_chunky: { // [51] phi from gfx_init_chunky::@5 to gfx_init_chunky::@6 [phi:gfx_init_chunky::@5->gfx_init_chunky::@6] // gfx_init_chunky::@6 // dtvSetCpuBankSegment1((byte)($4000/$4000)) - // [52] call dtvSetCpuBankSegment1 + // [52] call dtvSetCpuBankSegment1 // Reset CPU BANK segment to $4000 // [54] phi from gfx_init_chunky::@6 to dtvSetCpuBankSegment1 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1] - // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (byte)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 + // [54] phi dtvSetCpuBankSegment1::cpuBankIdx#3 = (char)$4000/$4000 [phi:gfx_init_chunky::@6->dtvSetCpuBankSegment1#0] -- vbuaa=vbuc1 lda #$4000/$4000 jsr dtvSetCpuBankSegment1 // gfx_init_chunky::@return @@ -1870,7 +1870,7 @@ gfx_init_chunky: { // Set the memory pointed to by CPU BANK 1 SEGMENT ($4000-$7fff) // This sets which actual memory is addressed when the CPU reads/writes to $4000-$7fff // The actual memory addressed will be $4000*cpuSegmentIdx -// dtvSetCpuBankSegment1(byte register(A) cpuBankIdx) +// void dtvSetCpuBankSegment1(__register(A) char cpuBankIdx) dtvSetCpuBankSegment1: { // Move CPU BANK 1 SEGMENT ($4000-$7fff) .label cpuBank = $ff diff --git a/src/test/ref/c64dtv-8bppchunkystretch.sym b/src/test/ref/c64dtv-8bppchunkystretch.sym index 78a5cb0bd..35b0fff80 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.sym +++ b/src/test/ref/c64dtv-8bppchunkystretch.sym @@ -1,69 +1,69 @@ -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const CHUNKY = (byte*) 32768 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_CHUNKY = $40 -constant const byte DTV_COLORRAM_OFF = $10 -constant byte* const DTV_CONTROL = (byte*) 53308 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant const byte DTV_LINEAR = 1 -constant byte* const DTV_PALETTE = (byte*) 53760 -constant byte* const DTV_PLANEB_MODULO_HI = (byte*) 53320 -constant byte* const DTV_PLANEB_MODULO_LO = (byte*) 53319 -constant byte* const DTV_PLANEB_START_HI = (byte*) 53323 -constant byte* const DTV_PLANEB_START_LO = (byte*) 53321 -constant byte* const DTV_PLANEB_START_MI = (byte*) 53322 -constant byte* const DTV_PLANEB_STEP = (byte*) 53324 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant byte* const VICII_CONTROL2 = (byte*) 53270 -constant const byte VICII_CSEL = 8 -constant const byte VICII_DEN = $10 -constant const byte VICII_ECM = $40 -constant const byte VICII_MCM = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -void dtvSetCpuBankSegment1(byte dtvSetCpuBankSegment1::cpuBankIdx) -constant byte* dtvSetCpuBankSegment1::cpuBank = (byte*) 255 -byte dtvSetCpuBankSegment1::cpuBankIdx -byte dtvSetCpuBankSegment1::cpuBankIdx#1 reg byte a 2002.0 -byte dtvSetCpuBankSegment1::cpuBankIdx#3 reg byte a 11002.0 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const CHUNKY = (char *) 32768 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_CHUNKY = $40 +__constant const char DTV_COLORRAM_OFF = $10 +__constant char * const DTV_CONTROL = (char *) 53308 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant const char DTV_LINEAR = 1 +__constant char * const DTV_PALETTE = (char *) 53760 +__constant char * const DTV_PLANEB_MODULO_HI = (char *) 53320 +__constant char * const DTV_PLANEB_MODULO_LO = (char *) 53319 +__constant char * const DTV_PLANEB_START_HI = (char *) 53323 +__constant char * const DTV_PLANEB_START_LO = (char *) 53321 +__constant char * const DTV_PLANEB_START_MI = (char *) 53322 +__constant char * const DTV_PLANEB_STEP = (char *) 53324 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant char * const VICII_CONTROL2 = (char *) 53270 +__constant const char VICII_CSEL = 8 +__constant const char VICII_DEN = $10 +__constant const char VICII_ECM = $40 +__constant const char VICII_MCM = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +void dtvSetCpuBankSegment1(char cpuBankIdx) +__constant char *dtvSetCpuBankSegment1::cpuBank = (char *) 255 +char dtvSetCpuBankSegment1::cpuBankIdx +char dtvSetCpuBankSegment1::cpuBankIdx#1 // reg byte a 2002.0 +char dtvSetCpuBankSegment1::cpuBankIdx#3 // reg byte a 11002.0 void gfx_init_chunky() -word~ gfx_init_chunky::$5 zp[2]:7 1001.0 -byte gfx_init_chunky::c -byte gfx_init_chunky::c#0 reg byte a 2002.0 -byte* gfx_init_chunky::gfxb -byte* gfx_init_chunky::gfxb#1 gfxb zp[2]:5 420.59999999999997 -byte* gfx_init_chunky::gfxb#3 gfxb zp[2]:5 1552.0 -byte* gfx_init_chunky::gfxb#4 gfxb zp[2]:5 750.75 -byte* gfx_init_chunky::gfxb#5 gfxb zp[2]:5 202.0 -byte gfx_init_chunky::gfxbCpuBank -byte gfx_init_chunky::gfxbCpuBank#2 reg byte x 2002.0 -byte gfx_init_chunky::gfxbCpuBank#4 reg byte x 1026.25 -byte gfx_init_chunky::gfxbCpuBank#7 reg byte x 202.0 -byte gfx_init_chunky::gfxbCpuBank#8 reg byte x 344.8888888888889 -word gfx_init_chunky::x -word gfx_init_chunky::x#1 x zp[2]:3 1501.5 -word gfx_init_chunky::x#2 x zp[2]:3 300.29999999999995 -byte gfx_init_chunky::y -byte gfx_init_chunky::y#1 y zp[1]:2 151.5 -byte gfx_init_chunky::y#6 y zp[1]:2 92.53846153846155 +unsigned int gfx_init_chunky::$5 // zp[2]:7 1001.0 +char gfx_init_chunky::c +char gfx_init_chunky::c#0 // reg byte a 2002.0 +char *gfx_init_chunky::gfxb +char *gfx_init_chunky::gfxb#1 // gfxb zp[2]:5 420.59999999999997 +char *gfx_init_chunky::gfxb#3 // gfxb zp[2]:5 1552.0 +char *gfx_init_chunky::gfxb#4 // gfxb zp[2]:5 750.75 +char *gfx_init_chunky::gfxb#5 // gfxb zp[2]:5 202.0 +char gfx_init_chunky::gfxbCpuBank +char gfx_init_chunky::gfxbCpuBank#2 // reg byte x 2002.0 +char gfx_init_chunky::gfxbCpuBank#4 // reg byte x 1026.25 +char gfx_init_chunky::gfxbCpuBank#7 // reg byte x 202.0 +char gfx_init_chunky::gfxbCpuBank#8 // reg byte x 344.8888888888889 +unsigned int gfx_init_chunky::x +unsigned int gfx_init_chunky::x#1 // x zp[2]:3 1501.5 +unsigned int gfx_init_chunky::x#2 // x zp[2]:3 300.29999999999995 +char gfx_init_chunky::y +char gfx_init_chunky::y#1 // y zp[1]:2 151.5 +char gfx_init_chunky::y#6 // y zp[1]:2 92.53846153846155 void main() -byte~ main::$3 reg byte a 202.0 -byte~ main::$4 reg byte a 202.0 -byte~ main::$5 reg byte a 202.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 -byte main::rst -byte main::rst#1 reg byte x 57.714285714285715 +char main::$3 // reg byte a 202.0 +char main::$4 // reg byte a 202.0 +char main::$5 // reg byte a 202.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 +char main::rst +char main::rst#1 // reg byte x 57.714285714285715 reg byte x [ main::j#2 main::j#1 ] zp[1]:2 [ gfx_init_chunky::y#6 gfx_init_chunky::y#1 ] diff --git a/src/test/ref/c64dtv-blitter-box.log b/src/test/ref/c64dtv-blitter-box.log index 12c0ca829..be58735c3 100644 --- a/src/test/ref/c64dtv-blitter-box.log +++ b/src/test/ref/c64dtv-blitter-box.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -53,7 +53,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -62,54 +62,54 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* DTV_BLITTER_ALU = (byte*)$d33e -constant byte* const DTV_BLITTER_CONTROL = (byte*)$d33a -constant byte* const DTV_BLITTER_CONTROL2 = (byte*)$d33f -constant byte* const DTV_BLITTER_DEST_HI = (byte*)$d332 -constant byte* const DTV_BLITTER_DEST_LIN_HI = (byte*)$d336 -constant byte* const DTV_BLITTER_DEST_LIN_LO = (byte*)$d335 -constant byte* const DTV_BLITTER_DEST_LO = (byte*)$d330 -constant byte* const DTV_BLITTER_DEST_MI = (byte*)$d331 -constant byte* const DTV_BLITTER_DEST_MOD_HI = (byte*)$d334 -constant byte* const DTV_BLITTER_DEST_MOD_LO = (byte*)$d333 -constant byte* const DTV_BLITTER_DEST_STEP = (byte*)$d337 -constant byte* const DTV_BLITTER_LEN_HI = (byte*)$d339 -constant byte* const DTV_BLITTER_LEN_LO = (byte*)$d338 -constant byte* const DTV_BLITTER_SRCA_HI = (byte*)$d322 -constant byte* const DTV_BLITTER_SRCA_LIN_HI = (byte*)$d326 -constant byte* const DTV_BLITTER_SRCA_LIN_LO = (byte*)$d325 -constant byte* const DTV_BLITTER_SRCA_LO = (byte*)$d320 -constant byte* const DTV_BLITTER_SRCA_MI = (byte*)$d321 -constant byte* const DTV_BLITTER_SRCA_MOD_HI = (byte*)$d324 -constant byte* const DTV_BLITTER_SRCA_MOD_LO = (byte*)$d323 -constant byte* const DTV_BLITTER_SRCA_STEP = (byte*)$d327 -constant byte* const DTV_BLITTER_SRCB_HI = (byte*)$d32a -constant byte* const DTV_BLITTER_SRCB_LIN_HI = (byte*)$d32e -constant byte* const DTV_BLITTER_SRCB_LIN_LO = (byte*)$d32d -constant byte* const DTV_BLITTER_SRCB_LO = (byte*)$d328 -constant byte* const DTV_BLITTER_SRCB_MI = (byte*)$d329 -constant byte* const DTV_BLITTER_SRCB_MOD_HI = (byte*)$d32c -constant byte* const DTV_BLITTER_SRCB_MOD_LO = (byte*)$d32b -constant byte* const DTV_BLITTER_SRCB_STEP = (byte*)$d32f -constant byte* const DTV_BLITTER_TRANSPARANCY = (byte*)$d33b -constant const byte DTV_BLIT_ADD = $30 -constant const byte DTV_BLIT_CLEAR_IRQ = 1 -constant const byte DTV_BLIT_DEST_CONT = 8 -constant const byte DTV_BLIT_DEST_FWD = 8 -constant const byte DTV_BLIT_FORCE_START = 1 -constant const byte DTV_BLIT_SRCA_FWD = 2 -constant const byte DTV_BLIT_SRCB_FWD = 4 -constant const byte DTV_BLIT_STATUS_BUSY = 1 -constant const byte DTV_BLIT_TRANSPARANCY_NONE = 0 -constant byte* const DTV_FEATURE = (byte*)$d03f -constant const byte DTV_FEATURE_ENABLE = 1 -constant byte* const SCREEN = (byte*)$400 -constant const byte* SRCA[] = "camelot rules!" -constant const byte* SRCB[] = { $80 } +__constant char *DTV_BLITTER_ALU = (char *)$d33e +__constant char * const DTV_BLITTER_CONTROL = (char *)$d33a +__constant char * const DTV_BLITTER_CONTROL2 = (char *)$d33f +__constant char * const DTV_BLITTER_DEST_HI = (char *)$d332 +__constant char * const DTV_BLITTER_DEST_LIN_HI = (char *)$d336 +__constant char * const DTV_BLITTER_DEST_LIN_LO = (char *)$d335 +__constant char * const DTV_BLITTER_DEST_LO = (char *)$d330 +__constant char * const DTV_BLITTER_DEST_MI = (char *)$d331 +__constant char * const DTV_BLITTER_DEST_MOD_HI = (char *)$d334 +__constant char * const DTV_BLITTER_DEST_MOD_LO = (char *)$d333 +__constant char * const DTV_BLITTER_DEST_STEP = (char *)$d337 +__constant char * const DTV_BLITTER_LEN_HI = (char *)$d339 +__constant char * const DTV_BLITTER_LEN_LO = (char *)$d338 +__constant char * const DTV_BLITTER_SRCA_HI = (char *)$d322 +__constant char * const DTV_BLITTER_SRCA_LIN_HI = (char *)$d326 +__constant char * const DTV_BLITTER_SRCA_LIN_LO = (char *)$d325 +__constant char * const DTV_BLITTER_SRCA_LO = (char *)$d320 +__constant char * const DTV_BLITTER_SRCA_MI = (char *)$d321 +__constant char * const DTV_BLITTER_SRCA_MOD_HI = (char *)$d324 +__constant char * const DTV_BLITTER_SRCA_MOD_LO = (char *)$d323 +__constant char * const DTV_BLITTER_SRCA_STEP = (char *)$d327 +__constant char * const DTV_BLITTER_SRCB_HI = (char *)$d32a +__constant char * const DTV_BLITTER_SRCB_LIN_HI = (char *)$d32e +__constant char * const DTV_BLITTER_SRCB_LIN_LO = (char *)$d32d +__constant char * const DTV_BLITTER_SRCB_LO = (char *)$d328 +__constant char * const DTV_BLITTER_SRCB_MI = (char *)$d329 +__constant char * const DTV_BLITTER_SRCB_MOD_HI = (char *)$d32c +__constant char * const DTV_BLITTER_SRCB_MOD_LO = (char *)$d32b +__constant char * const DTV_BLITTER_SRCB_STEP = (char *)$d32f +__constant char * const DTV_BLITTER_TRANSPARANCY = (char *)$d33b +__constant const char DTV_BLIT_ADD = $30 +__constant const char DTV_BLIT_CLEAR_IRQ = 1 +__constant const char DTV_BLIT_DEST_CONT = 8 +__constant const char DTV_BLIT_DEST_FWD = 8 +__constant const char DTV_BLIT_FORCE_START = 1 +__constant const char DTV_BLIT_SRCA_FWD = 2 +__constant const char DTV_BLIT_SRCB_FWD = 4 +__constant const char DTV_BLIT_STATUS_BUSY = 1 +__constant const char DTV_BLIT_TRANSPARANCY_NONE = 0 +__constant char * const DTV_FEATURE = (char *)$d03f +__constant const char DTV_FEATURE_ENABLE = 1 +__constant char * const SCREEN = (char *)$400 +__constant const char SRCA[] = "camelot rules!" +__constant const char SRCB[] = { $80 } void __start() void main() -byte~ main::$0 -bool~ main::$1 +char main::$0 +bool main::$1 Adding number conversion cast (unumber) 0 in *DTV_BLITTER_SRCA_HI = 0 Adding number conversion cast (unumber) 0 in *DTV_BLITTER_SRCA_MOD_LO = 0 @@ -140,38 +140,38 @@ Inlining cast *DTV_BLITTER_SRCB_STEP = (unumber)0 Inlining cast *DTV_BLITTER_DEST_HI = (unumber)0 Inlining cast *DTV_BLITTER_DEST_STEP = (unumber)$10 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53311 -Simplifying constant pointer cast (byte*) 54048 -Simplifying constant pointer cast (byte*) 54049 -Simplifying constant pointer cast (byte*) 54050 -Simplifying constant pointer cast (byte*) 54051 -Simplifying constant pointer cast (byte*) 54052 -Simplifying constant pointer cast (byte*) 54053 -Simplifying constant pointer cast (byte*) 54054 -Simplifying constant pointer cast (byte*) 54055 -Simplifying constant pointer cast (byte*) 54056 -Simplifying constant pointer cast (byte*) 54057 -Simplifying constant pointer cast (byte*) 54058 -Simplifying constant pointer cast (byte*) 54059 -Simplifying constant pointer cast (byte*) 54060 -Simplifying constant pointer cast (byte*) 54061 -Simplifying constant pointer cast (byte*) 54062 -Simplifying constant pointer cast (byte*) 54063 -Simplifying constant pointer cast (byte*) 54064 -Simplifying constant pointer cast (byte*) 54065 -Simplifying constant pointer cast (byte*) 54066 -Simplifying constant pointer cast (byte*) 54067 -Simplifying constant pointer cast (byte*) 54068 -Simplifying constant pointer cast (byte*) 54069 -Simplifying constant pointer cast (byte*) 54070 -Simplifying constant pointer cast (byte*) 54071 -Simplifying constant pointer cast (byte*) 54072 -Simplifying constant pointer cast (byte*) 54073 -Simplifying constant pointer cast (byte*) 54074 -Simplifying constant pointer cast (byte*) 54075 -Simplifying constant pointer cast (byte*) 54079 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 54078 +Simplifying constant pointer cast (char *) 53311 +Simplifying constant pointer cast (char *) 54048 +Simplifying constant pointer cast (char *) 54049 +Simplifying constant pointer cast (char *) 54050 +Simplifying constant pointer cast (char *) 54051 +Simplifying constant pointer cast (char *) 54052 +Simplifying constant pointer cast (char *) 54053 +Simplifying constant pointer cast (char *) 54054 +Simplifying constant pointer cast (char *) 54055 +Simplifying constant pointer cast (char *) 54056 +Simplifying constant pointer cast (char *) 54057 +Simplifying constant pointer cast (char *) 54058 +Simplifying constant pointer cast (char *) 54059 +Simplifying constant pointer cast (char *) 54060 +Simplifying constant pointer cast (char *) 54061 +Simplifying constant pointer cast (char *) 54062 +Simplifying constant pointer cast (char *) 54063 +Simplifying constant pointer cast (char *) 54064 +Simplifying constant pointer cast (char *) 54065 +Simplifying constant pointer cast (char *) 54066 +Simplifying constant pointer cast (char *) 54067 +Simplifying constant pointer cast (char *) 54068 +Simplifying constant pointer cast (char *) 54069 +Simplifying constant pointer cast (char *) 54070 +Simplifying constant pointer cast (char *) 54071 +Simplifying constant pointer cast (char *) 54072 +Simplifying constant pointer cast (char *) 54073 +Simplifying constant pointer cast (char *) 54074 +Simplifying constant pointer cast (char *) 54075 +Simplifying constant pointer cast (char *) 54079 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 54078 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -190,23 +190,23 @@ Simplifying constant integer cast $14 Simplifying constant integer cast $14 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$1 [34] if(main::$0!=0) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -276,7 +276,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 +char main::$0 // 22.0 Initial phi equivalence classes Added variable main::$0 to live range equivalence class [ main::$0 ] @@ -556,52 +556,52 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DTV_BLITTER_ALU = (byte*) 54078 -constant byte* const DTV_BLITTER_CONTROL = (byte*) 54074 -constant byte* const DTV_BLITTER_CONTROL2 = (byte*) 54079 -constant byte* const DTV_BLITTER_DEST_HI = (byte*) 54066 -constant byte* const DTV_BLITTER_DEST_LIN_HI = (byte*) 54070 -constant byte* const DTV_BLITTER_DEST_LIN_LO = (byte*) 54069 -constant byte* const DTV_BLITTER_DEST_LO = (byte*) 54064 -constant byte* const DTV_BLITTER_DEST_MI = (byte*) 54065 -constant byte* const DTV_BLITTER_DEST_MOD_HI = (byte*) 54068 -constant byte* const DTV_BLITTER_DEST_MOD_LO = (byte*) 54067 -constant byte* const DTV_BLITTER_DEST_STEP = (byte*) 54071 -constant byte* const DTV_BLITTER_LEN_HI = (byte*) 54073 -constant byte* const DTV_BLITTER_LEN_LO = (byte*) 54072 -constant byte* const DTV_BLITTER_SRCA_HI = (byte*) 54050 -constant byte* const DTV_BLITTER_SRCA_LIN_HI = (byte*) 54054 -constant byte* const DTV_BLITTER_SRCA_LIN_LO = (byte*) 54053 -constant byte* const DTV_BLITTER_SRCA_LO = (byte*) 54048 -constant byte* const DTV_BLITTER_SRCA_MI = (byte*) 54049 -constant byte* const DTV_BLITTER_SRCA_MOD_HI = (byte*) 54052 -constant byte* const DTV_BLITTER_SRCA_MOD_LO = (byte*) 54051 -constant byte* const DTV_BLITTER_SRCA_STEP = (byte*) 54055 -constant byte* const DTV_BLITTER_SRCB_HI = (byte*) 54058 -constant byte* const DTV_BLITTER_SRCB_LIN_HI = (byte*) 54062 -constant byte* const DTV_BLITTER_SRCB_LIN_LO = (byte*) 54061 -constant byte* const DTV_BLITTER_SRCB_LO = (byte*) 54056 -constant byte* const DTV_BLITTER_SRCB_MI = (byte*) 54057 -constant byte* const DTV_BLITTER_SRCB_MOD_HI = (byte*) 54060 -constant byte* const DTV_BLITTER_SRCB_MOD_LO = (byte*) 54059 -constant byte* const DTV_BLITTER_SRCB_STEP = (byte*) 54063 -constant byte* const DTV_BLITTER_TRANSPARANCY = (byte*) 54075 -constant const byte DTV_BLIT_ADD = $30 -constant const byte DTV_BLIT_CLEAR_IRQ = 1 -constant const byte DTV_BLIT_DEST_CONT = 8 -constant const byte DTV_BLIT_DEST_FWD = 8 -constant const byte DTV_BLIT_FORCE_START = 1 -constant const byte DTV_BLIT_SRCA_FWD = 2 -constant const byte DTV_BLIT_SRCB_FWD = 4 -constant const byte DTV_BLIT_STATUS_BUSY = 1 -constant const byte DTV_BLIT_TRANSPARANCY_NONE = 0 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SRCA[] = "camelot rules!" -constant const byte* SRCB[] = { $80 } +__constant char *DTV_BLITTER_ALU = (char *) 54078 +__constant char * const DTV_BLITTER_CONTROL = (char *) 54074 +__constant char * const DTV_BLITTER_CONTROL2 = (char *) 54079 +__constant char * const DTV_BLITTER_DEST_HI = (char *) 54066 +__constant char * const DTV_BLITTER_DEST_LIN_HI = (char *) 54070 +__constant char * const DTV_BLITTER_DEST_LIN_LO = (char *) 54069 +__constant char * const DTV_BLITTER_DEST_LO = (char *) 54064 +__constant char * const DTV_BLITTER_DEST_MI = (char *) 54065 +__constant char * const DTV_BLITTER_DEST_MOD_HI = (char *) 54068 +__constant char * const DTV_BLITTER_DEST_MOD_LO = (char *) 54067 +__constant char * const DTV_BLITTER_DEST_STEP = (char *) 54071 +__constant char * const DTV_BLITTER_LEN_HI = (char *) 54073 +__constant char * const DTV_BLITTER_LEN_LO = (char *) 54072 +__constant char * const DTV_BLITTER_SRCA_HI = (char *) 54050 +__constant char * const DTV_BLITTER_SRCA_LIN_HI = (char *) 54054 +__constant char * const DTV_BLITTER_SRCA_LIN_LO = (char *) 54053 +__constant char * const DTV_BLITTER_SRCA_LO = (char *) 54048 +__constant char * const DTV_BLITTER_SRCA_MI = (char *) 54049 +__constant char * const DTV_BLITTER_SRCA_MOD_HI = (char *) 54052 +__constant char * const DTV_BLITTER_SRCA_MOD_LO = (char *) 54051 +__constant char * const DTV_BLITTER_SRCA_STEP = (char *) 54055 +__constant char * const DTV_BLITTER_SRCB_HI = (char *) 54058 +__constant char * const DTV_BLITTER_SRCB_LIN_HI = (char *) 54062 +__constant char * const DTV_BLITTER_SRCB_LIN_LO = (char *) 54061 +__constant char * const DTV_BLITTER_SRCB_LO = (char *) 54056 +__constant char * const DTV_BLITTER_SRCB_MI = (char *) 54057 +__constant char * const DTV_BLITTER_SRCB_MOD_HI = (char *) 54060 +__constant char * const DTV_BLITTER_SRCB_MOD_LO = (char *) 54059 +__constant char * const DTV_BLITTER_SRCB_STEP = (char *) 54063 +__constant char * const DTV_BLITTER_TRANSPARANCY = (char *) 54075 +__constant const char DTV_BLIT_ADD = $30 +__constant const char DTV_BLIT_CLEAR_IRQ = 1 +__constant const char DTV_BLIT_DEST_CONT = 8 +__constant const char DTV_BLIT_DEST_FWD = 8 +__constant const char DTV_BLIT_FORCE_START = 1 +__constant const char DTV_BLIT_SRCA_FWD = 2 +__constant const char DTV_BLIT_SRCB_FWD = 4 +__constant const char DTV_BLIT_STATUS_BUSY = 1 +__constant const char DTV_BLIT_TRANSPARANCY_NONE = 0 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant char * const SCREEN = (char *) 1024 +__constant const char SRCA[] = "camelot rules!" +__constant const char SRCB[] = { $80 } void main() -byte~ main::$0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 reg byte a [ main::$0 ] diff --git a/src/test/ref/c64dtv-blitter-box.sym b/src/test/ref/c64dtv-blitter-box.sym index 7285da70b..f5a2ad68b 100644 --- a/src/test/ref/c64dtv-blitter-box.sym +++ b/src/test/ref/c64dtv-blitter-box.sym @@ -1,48 +1,48 @@ -constant byte* DTV_BLITTER_ALU = (byte*) 54078 -constant byte* const DTV_BLITTER_CONTROL = (byte*) 54074 -constant byte* const DTV_BLITTER_CONTROL2 = (byte*) 54079 -constant byte* const DTV_BLITTER_DEST_HI = (byte*) 54066 -constant byte* const DTV_BLITTER_DEST_LIN_HI = (byte*) 54070 -constant byte* const DTV_BLITTER_DEST_LIN_LO = (byte*) 54069 -constant byte* const DTV_BLITTER_DEST_LO = (byte*) 54064 -constant byte* const DTV_BLITTER_DEST_MI = (byte*) 54065 -constant byte* const DTV_BLITTER_DEST_MOD_HI = (byte*) 54068 -constant byte* const DTV_BLITTER_DEST_MOD_LO = (byte*) 54067 -constant byte* const DTV_BLITTER_DEST_STEP = (byte*) 54071 -constant byte* const DTV_BLITTER_LEN_HI = (byte*) 54073 -constant byte* const DTV_BLITTER_LEN_LO = (byte*) 54072 -constant byte* const DTV_BLITTER_SRCA_HI = (byte*) 54050 -constant byte* const DTV_BLITTER_SRCA_LIN_HI = (byte*) 54054 -constant byte* const DTV_BLITTER_SRCA_LIN_LO = (byte*) 54053 -constant byte* const DTV_BLITTER_SRCA_LO = (byte*) 54048 -constant byte* const DTV_BLITTER_SRCA_MI = (byte*) 54049 -constant byte* const DTV_BLITTER_SRCA_MOD_HI = (byte*) 54052 -constant byte* const DTV_BLITTER_SRCA_MOD_LO = (byte*) 54051 -constant byte* const DTV_BLITTER_SRCA_STEP = (byte*) 54055 -constant byte* const DTV_BLITTER_SRCB_HI = (byte*) 54058 -constant byte* const DTV_BLITTER_SRCB_LIN_HI = (byte*) 54062 -constant byte* const DTV_BLITTER_SRCB_LIN_LO = (byte*) 54061 -constant byte* const DTV_BLITTER_SRCB_LO = (byte*) 54056 -constant byte* const DTV_BLITTER_SRCB_MI = (byte*) 54057 -constant byte* const DTV_BLITTER_SRCB_MOD_HI = (byte*) 54060 -constant byte* const DTV_BLITTER_SRCB_MOD_LO = (byte*) 54059 -constant byte* const DTV_BLITTER_SRCB_STEP = (byte*) 54063 -constant byte* const DTV_BLITTER_TRANSPARANCY = (byte*) 54075 -constant const byte DTV_BLIT_ADD = $30 -constant const byte DTV_BLIT_CLEAR_IRQ = 1 -constant const byte DTV_BLIT_DEST_CONT = 8 -constant const byte DTV_BLIT_DEST_FWD = 8 -constant const byte DTV_BLIT_FORCE_START = 1 -constant const byte DTV_BLIT_SRCA_FWD = 2 -constant const byte DTV_BLIT_SRCB_FWD = 4 -constant const byte DTV_BLIT_STATUS_BUSY = 1 -constant const byte DTV_BLIT_TRANSPARANCY_NONE = 0 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SRCA[] = "camelot rules!" -constant const byte* SRCB[] = { $80 } +__constant char *DTV_BLITTER_ALU = (char *) 54078 +__constant char * const DTV_BLITTER_CONTROL = (char *) 54074 +__constant char * const DTV_BLITTER_CONTROL2 = (char *) 54079 +__constant char * const DTV_BLITTER_DEST_HI = (char *) 54066 +__constant char * const DTV_BLITTER_DEST_LIN_HI = (char *) 54070 +__constant char * const DTV_BLITTER_DEST_LIN_LO = (char *) 54069 +__constant char * const DTV_BLITTER_DEST_LO = (char *) 54064 +__constant char * const DTV_BLITTER_DEST_MI = (char *) 54065 +__constant char * const DTV_BLITTER_DEST_MOD_HI = (char *) 54068 +__constant char * const DTV_BLITTER_DEST_MOD_LO = (char *) 54067 +__constant char * const DTV_BLITTER_DEST_STEP = (char *) 54071 +__constant char * const DTV_BLITTER_LEN_HI = (char *) 54073 +__constant char * const DTV_BLITTER_LEN_LO = (char *) 54072 +__constant char * const DTV_BLITTER_SRCA_HI = (char *) 54050 +__constant char * const DTV_BLITTER_SRCA_LIN_HI = (char *) 54054 +__constant char * const DTV_BLITTER_SRCA_LIN_LO = (char *) 54053 +__constant char * const DTV_BLITTER_SRCA_LO = (char *) 54048 +__constant char * const DTV_BLITTER_SRCA_MI = (char *) 54049 +__constant char * const DTV_BLITTER_SRCA_MOD_HI = (char *) 54052 +__constant char * const DTV_BLITTER_SRCA_MOD_LO = (char *) 54051 +__constant char * const DTV_BLITTER_SRCA_STEP = (char *) 54055 +__constant char * const DTV_BLITTER_SRCB_HI = (char *) 54058 +__constant char * const DTV_BLITTER_SRCB_LIN_HI = (char *) 54062 +__constant char * const DTV_BLITTER_SRCB_LIN_LO = (char *) 54061 +__constant char * const DTV_BLITTER_SRCB_LO = (char *) 54056 +__constant char * const DTV_BLITTER_SRCB_MI = (char *) 54057 +__constant char * const DTV_BLITTER_SRCB_MOD_HI = (char *) 54060 +__constant char * const DTV_BLITTER_SRCB_MOD_LO = (char *) 54059 +__constant char * const DTV_BLITTER_SRCB_STEP = (char *) 54063 +__constant char * const DTV_BLITTER_TRANSPARANCY = (char *) 54075 +__constant const char DTV_BLIT_ADD = $30 +__constant const char DTV_BLIT_CLEAR_IRQ = 1 +__constant const char DTV_BLIT_DEST_CONT = 8 +__constant const char DTV_BLIT_DEST_FWD = 8 +__constant const char DTV_BLIT_FORCE_START = 1 +__constant const char DTV_BLIT_SRCA_FWD = 2 +__constant const char DTV_BLIT_SRCB_FWD = 4 +__constant const char DTV_BLIT_STATUS_BUSY = 1 +__constant const char DTV_BLIT_TRANSPARANCY_NONE = 0 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant char * const SCREEN = (char *) 1024 +__constant const char SRCA[] = "camelot rules!" +__constant const char SRCB[] = { $80 } void main() -byte~ main::$0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 reg byte a [ main::$0 ] diff --git a/src/test/ref/c64dtv-blittermin.log b/src/test/ref/c64dtv-blittermin.log index ba4d2b8ca..522b03efd 100644 --- a/src/test/ref/c64dtv-blittermin.log +++ b/src/test/ref/c64dtv-blittermin.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -62,7 +62,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -71,61 +71,61 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* DTV_BLITTER_ALU = (byte*)$d33e -constant byte* const DTV_BLITTER_CONTROL = (byte*)$d33a -constant byte* const DTV_BLITTER_CONTROL2 = (byte*)$d33f -constant byte* const DTV_BLITTER_DEST_HI = (byte*)$d332 -constant byte* const DTV_BLITTER_DEST_LIN_HI = (byte*)$d336 -constant byte* const DTV_BLITTER_DEST_LIN_LO = (byte*)$d335 -constant byte* const DTV_BLITTER_DEST_LO = (byte*)$d330 -constant byte* const DTV_BLITTER_DEST_MI = (byte*)$d331 -constant byte* const DTV_BLITTER_DEST_MOD_HI = (byte*)$d334 -constant byte* const DTV_BLITTER_DEST_MOD_LO = (byte*)$d333 -constant byte* const DTV_BLITTER_DEST_STEP = (byte*)$d337 -constant byte* const DTV_BLITTER_LEN_HI = (byte*)$d339 -constant byte* const DTV_BLITTER_LEN_LO = (byte*)$d338 -constant byte* const DTV_BLITTER_SRCA_HI = (byte*)$d322 -constant byte* const DTV_BLITTER_SRCA_LIN_HI = (byte*)$d326 -constant byte* const DTV_BLITTER_SRCA_LIN_LO = (byte*)$d325 -constant byte* const DTV_BLITTER_SRCA_LO = (byte*)$d320 -constant byte* const DTV_BLITTER_SRCA_MI = (byte*)$d321 -constant byte* const DTV_BLITTER_SRCA_MOD_HI = (byte*)$d324 -constant byte* const DTV_BLITTER_SRCA_MOD_LO = (byte*)$d323 -constant byte* const DTV_BLITTER_SRCA_STEP = (byte*)$d327 -constant byte* const DTV_BLITTER_SRCB_HI = (byte*)$d32a -constant byte* const DTV_BLITTER_SRCB_LIN_HI = (byte*)$d32e -constant byte* const DTV_BLITTER_SRCB_LIN_LO = (byte*)$d32d -constant byte* const DTV_BLITTER_SRCB_LO = (byte*)$d328 -constant byte* const DTV_BLITTER_SRCB_MI = (byte*)$d329 -constant byte* const DTV_BLITTER_SRCB_MOD_HI = (byte*)$d32c -constant byte* const DTV_BLITTER_SRCB_MOD_LO = (byte*)$d32b -constant byte* const DTV_BLITTER_SRCB_STEP = (byte*)$d32f -constant byte* const DTV_BLITTER_TRANSPARANCY = (byte*)$d33b -constant const byte DTV_BLIT_ADD = $30 -constant const byte DTV_BLIT_CLEAR_IRQ = 1 -constant const byte DTV_BLIT_DEST_CONT = 8 -constant const byte DTV_BLIT_DEST_FWD = 8 -constant const byte DTV_BLIT_FORCE_START = 1 -constant const byte DTV_BLIT_SRCA_FWD = 2 -constant const byte DTV_BLIT_SRCB_FWD = 4 -constant const byte DTV_BLIT_STATUS_BUSY = 1 -constant const byte DTV_BLIT_TRANSPARANCY_NONE = 0 -constant byte* const DTV_FEATURE = (byte*)$d03f -constant const byte DTV_FEATURE_ENABLE = 1 -constant byte* const SCREEN = (byte*)$400 -constant const byte* SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } -constant const byte SRCA_LEN = 9 -constant const byte* SRCB[] = { $80 } +__constant char *DTV_BLITTER_ALU = (char *)$d33e +__constant char * const DTV_BLITTER_CONTROL = (char *)$d33a +__constant char * const DTV_BLITTER_CONTROL2 = (char *)$d33f +__constant char * const DTV_BLITTER_DEST_HI = (char *)$d332 +__constant char * const DTV_BLITTER_DEST_LIN_HI = (char *)$d336 +__constant char * const DTV_BLITTER_DEST_LIN_LO = (char *)$d335 +__constant char * const DTV_BLITTER_DEST_LO = (char *)$d330 +__constant char * const DTV_BLITTER_DEST_MI = (char *)$d331 +__constant char * const DTV_BLITTER_DEST_MOD_HI = (char *)$d334 +__constant char * const DTV_BLITTER_DEST_MOD_LO = (char *)$d333 +__constant char * const DTV_BLITTER_DEST_STEP = (char *)$d337 +__constant char * const DTV_BLITTER_LEN_HI = (char *)$d339 +__constant char * const DTV_BLITTER_LEN_LO = (char *)$d338 +__constant char * const DTV_BLITTER_SRCA_HI = (char *)$d322 +__constant char * const DTV_BLITTER_SRCA_LIN_HI = (char *)$d326 +__constant char * const DTV_BLITTER_SRCA_LIN_LO = (char *)$d325 +__constant char * const DTV_BLITTER_SRCA_LO = (char *)$d320 +__constant char * const DTV_BLITTER_SRCA_MI = (char *)$d321 +__constant char * const DTV_BLITTER_SRCA_MOD_HI = (char *)$d324 +__constant char * const DTV_BLITTER_SRCA_MOD_LO = (char *)$d323 +__constant char * const DTV_BLITTER_SRCA_STEP = (char *)$d327 +__constant char * const DTV_BLITTER_SRCB_HI = (char *)$d32a +__constant char * const DTV_BLITTER_SRCB_LIN_HI = (char *)$d32e +__constant char * const DTV_BLITTER_SRCB_LIN_LO = (char *)$d32d +__constant char * const DTV_BLITTER_SRCB_LO = (char *)$d328 +__constant char * const DTV_BLITTER_SRCB_MI = (char *)$d329 +__constant char * const DTV_BLITTER_SRCB_MOD_HI = (char *)$d32c +__constant char * const DTV_BLITTER_SRCB_MOD_LO = (char *)$d32b +__constant char * const DTV_BLITTER_SRCB_STEP = (char *)$d32f +__constant char * const DTV_BLITTER_TRANSPARANCY = (char *)$d33b +__constant const char DTV_BLIT_ADD = $30 +__constant const char DTV_BLIT_CLEAR_IRQ = 1 +__constant const char DTV_BLIT_DEST_CONT = 8 +__constant const char DTV_BLIT_DEST_FWD = 8 +__constant const char DTV_BLIT_FORCE_START = 1 +__constant const char DTV_BLIT_SRCA_FWD = 2 +__constant const char DTV_BLIT_SRCB_FWD = 4 +__constant const char DTV_BLIT_STATUS_BUSY = 1 +__constant const char DTV_BLIT_TRANSPARANCY_NONE = 0 +__constant char * const DTV_FEATURE = (char *)$d03f +__constant const char DTV_FEATURE_ENABLE = 1 +__constant char * const SCREEN = (char *)$400 +__constant const char SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } +__constant const char SRCA_LEN = 9 +__constant const char SRCB[] = { $80 } void __start() void main() -byte~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::r -byte main::r#0 -byte main::r#1 -byte main::r#2 -byte main::r#3 +char main::$0 +bool main::$1 +bool main::$2 +char main::r +char main::r#0 +char main::r#1 +char main::r#2 +char main::r#3 Adding number conversion cast (unumber) 0 in *DTV_BLITTER_SRCA_HI = 0 Adding number conversion cast (unumber) 0 in *DTV_BLITTER_SRCA_MOD_LO = 0 @@ -156,38 +156,38 @@ Inlining cast *DTV_BLITTER_DEST_MOD_HI = (unumber)0 Inlining cast *DTV_BLITTER_DEST_STEP = (unumber)$10 Inlining cast *DTV_BLITTER_LEN_HI = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53311 -Simplifying constant pointer cast (byte*) 54048 -Simplifying constant pointer cast (byte*) 54049 -Simplifying constant pointer cast (byte*) 54050 -Simplifying constant pointer cast (byte*) 54051 -Simplifying constant pointer cast (byte*) 54052 -Simplifying constant pointer cast (byte*) 54053 -Simplifying constant pointer cast (byte*) 54054 -Simplifying constant pointer cast (byte*) 54055 -Simplifying constant pointer cast (byte*) 54056 -Simplifying constant pointer cast (byte*) 54057 -Simplifying constant pointer cast (byte*) 54058 -Simplifying constant pointer cast (byte*) 54059 -Simplifying constant pointer cast (byte*) 54060 -Simplifying constant pointer cast (byte*) 54061 -Simplifying constant pointer cast (byte*) 54062 -Simplifying constant pointer cast (byte*) 54063 -Simplifying constant pointer cast (byte*) 54064 -Simplifying constant pointer cast (byte*) 54065 -Simplifying constant pointer cast (byte*) 54066 -Simplifying constant pointer cast (byte*) 54067 -Simplifying constant pointer cast (byte*) 54068 -Simplifying constant pointer cast (byte*) 54069 -Simplifying constant pointer cast (byte*) 54070 -Simplifying constant pointer cast (byte*) 54071 -Simplifying constant pointer cast (byte*) 54072 -Simplifying constant pointer cast (byte*) 54073 -Simplifying constant pointer cast (byte*) 54074 -Simplifying constant pointer cast (byte*) 54075 -Simplifying constant pointer cast (byte*) 54079 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 54078 +Simplifying constant pointer cast (char *) 53311 +Simplifying constant pointer cast (char *) 54048 +Simplifying constant pointer cast (char *) 54049 +Simplifying constant pointer cast (char *) 54050 +Simplifying constant pointer cast (char *) 54051 +Simplifying constant pointer cast (char *) 54052 +Simplifying constant pointer cast (char *) 54053 +Simplifying constant pointer cast (char *) 54054 +Simplifying constant pointer cast (char *) 54055 +Simplifying constant pointer cast (char *) 54056 +Simplifying constant pointer cast (char *) 54057 +Simplifying constant pointer cast (char *) 54058 +Simplifying constant pointer cast (char *) 54059 +Simplifying constant pointer cast (char *) 54060 +Simplifying constant pointer cast (char *) 54061 +Simplifying constant pointer cast (char *) 54062 +Simplifying constant pointer cast (char *) 54063 +Simplifying constant pointer cast (char *) 54064 +Simplifying constant pointer cast (char *) 54065 +Simplifying constant pointer cast (char *) 54066 +Simplifying constant pointer cast (char *) 54067 +Simplifying constant pointer cast (char *) 54068 +Simplifying constant pointer cast (char *) 54069 +Simplifying constant pointer cast (char *) 54070 +Simplifying constant pointer cast (char *) 54071 +Simplifying constant pointer cast (char *) 54072 +Simplifying constant pointer cast (char *) 54073 +Simplifying constant pointer cast (char *) 54074 +Simplifying constant pointer cast (char *) 54075 +Simplifying constant pointer cast (char *) 54079 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 54078 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -203,20 +203,20 @@ Simplifying constant integer cast $10 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::r#2 = main::r#3 Successful SSA optimization Pass2AliasElimination @@ -243,7 +243,7 @@ Adding number conversion cast (unumber) 8 in [37] if(main::r#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::r#0 Constant inlined main::r#0 = 0 @@ -313,10 +313,10 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 202.0 -byte main::r -byte main::r#1 16.5 -byte main::r#2 56.0 +char main::$0 // 202.0 +char main::r +char main::r#1 // 16.5 +char main::r#2 // 56.0 Initial phi equivalence classes [ main::r#2 main::r#1 ] @@ -676,56 +676,56 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* DTV_BLITTER_ALU = (byte*) 54078 -constant byte* const DTV_BLITTER_CONTROL = (byte*) 54074 -constant byte* const DTV_BLITTER_CONTROL2 = (byte*) 54079 -constant byte* const DTV_BLITTER_DEST_HI = (byte*) 54066 -constant byte* const DTV_BLITTER_DEST_LIN_HI = (byte*) 54070 -constant byte* const DTV_BLITTER_DEST_LIN_LO = (byte*) 54069 -constant byte* const DTV_BLITTER_DEST_LO = (byte*) 54064 -constant byte* const DTV_BLITTER_DEST_MI = (byte*) 54065 -constant byte* const DTV_BLITTER_DEST_MOD_HI = (byte*) 54068 -constant byte* const DTV_BLITTER_DEST_MOD_LO = (byte*) 54067 -constant byte* const DTV_BLITTER_DEST_STEP = (byte*) 54071 -constant byte* const DTV_BLITTER_LEN_HI = (byte*) 54073 -constant byte* const DTV_BLITTER_LEN_LO = (byte*) 54072 -constant byte* const DTV_BLITTER_SRCA_HI = (byte*) 54050 -constant byte* const DTV_BLITTER_SRCA_LIN_HI = (byte*) 54054 -constant byte* const DTV_BLITTER_SRCA_LIN_LO = (byte*) 54053 -constant byte* const DTV_BLITTER_SRCA_LO = (byte*) 54048 -constant byte* const DTV_BLITTER_SRCA_MI = (byte*) 54049 -constant byte* const DTV_BLITTER_SRCA_MOD_HI = (byte*) 54052 -constant byte* const DTV_BLITTER_SRCA_MOD_LO = (byte*) 54051 -constant byte* const DTV_BLITTER_SRCA_STEP = (byte*) 54055 -constant byte* const DTV_BLITTER_SRCB_HI = (byte*) 54058 -constant byte* const DTV_BLITTER_SRCB_LIN_HI = (byte*) 54062 -constant byte* const DTV_BLITTER_SRCB_LIN_LO = (byte*) 54061 -constant byte* const DTV_BLITTER_SRCB_LO = (byte*) 54056 -constant byte* const DTV_BLITTER_SRCB_MI = (byte*) 54057 -constant byte* const DTV_BLITTER_SRCB_MOD_HI = (byte*) 54060 -constant byte* const DTV_BLITTER_SRCB_MOD_LO = (byte*) 54059 -constant byte* const DTV_BLITTER_SRCB_STEP = (byte*) 54063 -constant byte* const DTV_BLITTER_TRANSPARANCY = (byte*) 54075 -constant const byte DTV_BLIT_ADD = $30 -constant const byte DTV_BLIT_CLEAR_IRQ = 1 -constant const byte DTV_BLIT_DEST_CONT = 8 -constant const byte DTV_BLIT_DEST_FWD = 8 -constant const byte DTV_BLIT_FORCE_START = 1 -constant const byte DTV_BLIT_SRCA_FWD = 2 -constant const byte DTV_BLIT_SRCB_FWD = 4 -constant const byte DTV_BLIT_STATUS_BUSY = 1 -constant const byte DTV_BLIT_TRANSPARANCY_NONE = 0 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } -constant const byte SRCA_LEN = 9 -constant const byte* SRCB[] = { $80 } +__constant char *DTV_BLITTER_ALU = (char *) 54078 +__constant char * const DTV_BLITTER_CONTROL = (char *) 54074 +__constant char * const DTV_BLITTER_CONTROL2 = (char *) 54079 +__constant char * const DTV_BLITTER_DEST_HI = (char *) 54066 +__constant char * const DTV_BLITTER_DEST_LIN_HI = (char *) 54070 +__constant char * const DTV_BLITTER_DEST_LIN_LO = (char *) 54069 +__constant char * const DTV_BLITTER_DEST_LO = (char *) 54064 +__constant char * const DTV_BLITTER_DEST_MI = (char *) 54065 +__constant char * const DTV_BLITTER_DEST_MOD_HI = (char *) 54068 +__constant char * const DTV_BLITTER_DEST_MOD_LO = (char *) 54067 +__constant char * const DTV_BLITTER_DEST_STEP = (char *) 54071 +__constant char * const DTV_BLITTER_LEN_HI = (char *) 54073 +__constant char * const DTV_BLITTER_LEN_LO = (char *) 54072 +__constant char * const DTV_BLITTER_SRCA_HI = (char *) 54050 +__constant char * const DTV_BLITTER_SRCA_LIN_HI = (char *) 54054 +__constant char * const DTV_BLITTER_SRCA_LIN_LO = (char *) 54053 +__constant char * const DTV_BLITTER_SRCA_LO = (char *) 54048 +__constant char * const DTV_BLITTER_SRCA_MI = (char *) 54049 +__constant char * const DTV_BLITTER_SRCA_MOD_HI = (char *) 54052 +__constant char * const DTV_BLITTER_SRCA_MOD_LO = (char *) 54051 +__constant char * const DTV_BLITTER_SRCA_STEP = (char *) 54055 +__constant char * const DTV_BLITTER_SRCB_HI = (char *) 54058 +__constant char * const DTV_BLITTER_SRCB_LIN_HI = (char *) 54062 +__constant char * const DTV_BLITTER_SRCB_LIN_LO = (char *) 54061 +__constant char * const DTV_BLITTER_SRCB_LO = (char *) 54056 +__constant char * const DTV_BLITTER_SRCB_MI = (char *) 54057 +__constant char * const DTV_BLITTER_SRCB_MOD_HI = (char *) 54060 +__constant char * const DTV_BLITTER_SRCB_MOD_LO = (char *) 54059 +__constant char * const DTV_BLITTER_SRCB_STEP = (char *) 54063 +__constant char * const DTV_BLITTER_TRANSPARANCY = (char *) 54075 +__constant const char DTV_BLIT_ADD = $30 +__constant const char DTV_BLIT_CLEAR_IRQ = 1 +__constant const char DTV_BLIT_DEST_CONT = 8 +__constant const char DTV_BLIT_DEST_FWD = 8 +__constant const char DTV_BLIT_FORCE_START = 1 +__constant const char DTV_BLIT_SRCA_FWD = 2 +__constant const char DTV_BLIT_SRCB_FWD = 4 +__constant const char DTV_BLIT_STATUS_BUSY = 1 +__constant const char DTV_BLIT_TRANSPARANCY_NONE = 0 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant char * const SCREEN = (char *) 1024 +__constant const char SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } +__constant const char SRCA_LEN = 9 +__constant const char SRCB[] = { $80 } void main() -byte~ main::$0 reg byte a 202.0 -byte main::r -byte main::r#1 reg byte x 16.5 -byte main::r#2 reg byte x 56.0 +char main::$0 // reg byte a 202.0 +char main::r +char main::r#1 // reg byte x 16.5 +char main::r#2 // reg byte x 56.0 reg byte x [ main::r#2 main::r#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/c64dtv-blittermin.sym b/src/test/ref/c64dtv-blittermin.sym index 998197676..ae51a1304 100644 --- a/src/test/ref/c64dtv-blittermin.sym +++ b/src/test/ref/c64dtv-blittermin.sym @@ -1,53 +1,53 @@ -constant byte* DTV_BLITTER_ALU = (byte*) 54078 -constant byte* const DTV_BLITTER_CONTROL = (byte*) 54074 -constant byte* const DTV_BLITTER_CONTROL2 = (byte*) 54079 -constant byte* const DTV_BLITTER_DEST_HI = (byte*) 54066 -constant byte* const DTV_BLITTER_DEST_LIN_HI = (byte*) 54070 -constant byte* const DTV_BLITTER_DEST_LIN_LO = (byte*) 54069 -constant byte* const DTV_BLITTER_DEST_LO = (byte*) 54064 -constant byte* const DTV_BLITTER_DEST_MI = (byte*) 54065 -constant byte* const DTV_BLITTER_DEST_MOD_HI = (byte*) 54068 -constant byte* const DTV_BLITTER_DEST_MOD_LO = (byte*) 54067 -constant byte* const DTV_BLITTER_DEST_STEP = (byte*) 54071 -constant byte* const DTV_BLITTER_LEN_HI = (byte*) 54073 -constant byte* const DTV_BLITTER_LEN_LO = (byte*) 54072 -constant byte* const DTV_BLITTER_SRCA_HI = (byte*) 54050 -constant byte* const DTV_BLITTER_SRCA_LIN_HI = (byte*) 54054 -constant byte* const DTV_BLITTER_SRCA_LIN_LO = (byte*) 54053 -constant byte* const DTV_BLITTER_SRCA_LO = (byte*) 54048 -constant byte* const DTV_BLITTER_SRCA_MI = (byte*) 54049 -constant byte* const DTV_BLITTER_SRCA_MOD_HI = (byte*) 54052 -constant byte* const DTV_BLITTER_SRCA_MOD_LO = (byte*) 54051 -constant byte* const DTV_BLITTER_SRCA_STEP = (byte*) 54055 -constant byte* const DTV_BLITTER_SRCB_HI = (byte*) 54058 -constant byte* const DTV_BLITTER_SRCB_LIN_HI = (byte*) 54062 -constant byte* const DTV_BLITTER_SRCB_LIN_LO = (byte*) 54061 -constant byte* const DTV_BLITTER_SRCB_LO = (byte*) 54056 -constant byte* const DTV_BLITTER_SRCB_MI = (byte*) 54057 -constant byte* const DTV_BLITTER_SRCB_MOD_HI = (byte*) 54060 -constant byte* const DTV_BLITTER_SRCB_MOD_LO = (byte*) 54059 -constant byte* const DTV_BLITTER_SRCB_STEP = (byte*) 54063 -constant byte* const DTV_BLITTER_TRANSPARANCY = (byte*) 54075 -constant const byte DTV_BLIT_ADD = $30 -constant const byte DTV_BLIT_CLEAR_IRQ = 1 -constant const byte DTV_BLIT_DEST_CONT = 8 -constant const byte DTV_BLIT_DEST_FWD = 8 -constant const byte DTV_BLIT_FORCE_START = 1 -constant const byte DTV_BLIT_SRCA_FWD = 2 -constant const byte DTV_BLIT_SRCB_FWD = 4 -constant const byte DTV_BLIT_STATUS_BUSY = 1 -constant const byte DTV_BLIT_TRANSPARANCY_NONE = 0 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } -constant const byte SRCA_LEN = 9 -constant const byte* SRCB[] = { $80 } +__constant char *DTV_BLITTER_ALU = (char *) 54078 +__constant char * const DTV_BLITTER_CONTROL = (char *) 54074 +__constant char * const DTV_BLITTER_CONTROL2 = (char *) 54079 +__constant char * const DTV_BLITTER_DEST_HI = (char *) 54066 +__constant char * const DTV_BLITTER_DEST_LIN_HI = (char *) 54070 +__constant char * const DTV_BLITTER_DEST_LIN_LO = (char *) 54069 +__constant char * const DTV_BLITTER_DEST_LO = (char *) 54064 +__constant char * const DTV_BLITTER_DEST_MI = (char *) 54065 +__constant char * const DTV_BLITTER_DEST_MOD_HI = (char *) 54068 +__constant char * const DTV_BLITTER_DEST_MOD_LO = (char *) 54067 +__constant char * const DTV_BLITTER_DEST_STEP = (char *) 54071 +__constant char * const DTV_BLITTER_LEN_HI = (char *) 54073 +__constant char * const DTV_BLITTER_LEN_LO = (char *) 54072 +__constant char * const DTV_BLITTER_SRCA_HI = (char *) 54050 +__constant char * const DTV_BLITTER_SRCA_LIN_HI = (char *) 54054 +__constant char * const DTV_BLITTER_SRCA_LIN_LO = (char *) 54053 +__constant char * const DTV_BLITTER_SRCA_LO = (char *) 54048 +__constant char * const DTV_BLITTER_SRCA_MI = (char *) 54049 +__constant char * const DTV_BLITTER_SRCA_MOD_HI = (char *) 54052 +__constant char * const DTV_BLITTER_SRCA_MOD_LO = (char *) 54051 +__constant char * const DTV_BLITTER_SRCA_STEP = (char *) 54055 +__constant char * const DTV_BLITTER_SRCB_HI = (char *) 54058 +__constant char * const DTV_BLITTER_SRCB_LIN_HI = (char *) 54062 +__constant char * const DTV_BLITTER_SRCB_LIN_LO = (char *) 54061 +__constant char * const DTV_BLITTER_SRCB_LO = (char *) 54056 +__constant char * const DTV_BLITTER_SRCB_MI = (char *) 54057 +__constant char * const DTV_BLITTER_SRCB_MOD_HI = (char *) 54060 +__constant char * const DTV_BLITTER_SRCB_MOD_LO = (char *) 54059 +__constant char * const DTV_BLITTER_SRCB_STEP = (char *) 54063 +__constant char * const DTV_BLITTER_TRANSPARANCY = (char *) 54075 +__constant const char DTV_BLIT_ADD = $30 +__constant const char DTV_BLIT_CLEAR_IRQ = 1 +__constant const char DTV_BLIT_DEST_CONT = 8 +__constant const char DTV_BLIT_DEST_FWD = 8 +__constant const char DTV_BLIT_FORCE_START = 1 +__constant const char DTV_BLIT_SRCA_FWD = 2 +__constant const char DTV_BLIT_SRCB_FWD = 4 +__constant const char DTV_BLIT_STATUS_BUSY = 1 +__constant const char DTV_BLIT_TRANSPARANCY_NONE = 0 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant char * const SCREEN = (char *) 1024 +__constant const char SRCA[] = { 'c', 'a', 'm', 'e', 'l', 'o', 't', '!', ' ' } +__constant const char SRCA_LEN = 9 +__constant const char SRCB[] = { $80 } void main() -byte~ main::$0 reg byte a 202.0 -byte main::r -byte main::r#1 reg byte x 16.5 -byte main::r#2 reg byte x 56.0 +char main::$0 // reg byte a 202.0 +char main::r +char main::r#1 // reg byte x 16.5 +char main::r#2 // reg byte x 56.0 reg byte x [ main::r#2 main::r#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/c64dtv-color.log b/src/test/ref/c64dtv-color.log index ef94c2859..ada3e8c93 100644 --- a/src/test/ref/c64dtv-color.log +++ b/src/test/ref/c64dtv-color.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -49,7 +49,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -58,45 +58,45 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_BORDER_OFF = 2 -constant byte* const DTV_CONTROL = (byte*)$d03c -constant byte* const DTV_FEATURE = (byte*)$d03f -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant byte* const DTV_PALETTE = (byte*)$d200 -constant byte* const RASTER = (byte*)$d012 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_BORDER_OFF = 2 +__constant char * const DTV_CONTROL = (char *)$d03c +__constant char * const DTV_FEATURE = (char *)$d03f +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant char * const DTV_PALETTE = (char *)$d200 +__constant char * const RASTER = (char *)$d012 void __start() void main() -bool~ main::$0 -bool~ main::$2 -bool~ main::$4 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -constant byte* main::palette[$10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } -byte main::r -byte main::r#0 -byte main::r#1 -byte main::r#2 +bool main::$0 +bool main::$2 +bool main::$4 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +__constant char main::palette[$10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } +char main::r +char main::r#0 +char main::r#1 +char main::r#2 Adding number conversion cast (unumber) $40 in main::$0 = *RASTER != $40 Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BG_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53311 -Simplifying constant pointer cast (byte*) 53308 -Simplifying constant pointer cast (byte*) 53760 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53311 +Simplifying constant pointer cast (char *) 53308 +Simplifying constant pointer cast (char *) 53760 Simplifying constant integer cast $40 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [5] if(*RASTER!=$40) goto main::@2 Simple Condition main::$2 [13] if(main::r#1!=rangelast($31,$ff)) goto main::@4 @@ -126,15 +126,15 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast $10 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::r#0 Inlining constant with var siblings main::c#0 Constant inlined main::r#0 = $31 Constant inlined main::c#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@7(between main::@4 and main::@4) Added new block during phi lifting main::@8(between main::@6 and main::@6) @@ -187,12 +187,12 @@ main::@4: scope:[main] from main::@3 main::@4 VARIABLE REGISTER WEIGHTS void main() -byte main::c -byte main::c#1 151.5 -byte main::c#2 201.99999999999997 -byte main::r -byte main::r#1 151.5 -byte main::r#2 67.33333333333333 +char main::c +char main::c#1 // 151.5 +char main::c#2 // 201.99999999999997 +char main::r +char main::r#1 // 151.5 +char main::r#2 // 67.33333333333333 Initial phi equivalence classes [ main::r#2 main::r#1 ] @@ -374,23 +374,23 @@ Removing instruction jmp __b4 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_BORDER_OFF = 2 -constant byte* const DTV_CONTROL = (byte*) 53308 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant byte* const DTV_PALETTE = (byte*) 53760 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_BORDER_OFF = 2 +__constant char * const DTV_CONTROL = (char *) 53308 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant char * const DTV_PALETTE = (char *) 53760 +__constant char * const RASTER = (char *) 53266 void main() -byte main::c -byte main::c#1 reg byte x 151.5 -byte main::c#2 reg byte x 201.99999999999997 -constant byte* main::palette[$10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } -byte main::r -byte main::r#1 reg byte x 151.5 -byte main::r#2 reg byte x 67.33333333333333 +char main::c +char main::c#1 // reg byte x 151.5 +char main::c#2 // reg byte x 201.99999999999997 +__constant char main::palette[$10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } +char main::r +char main::r#1 // reg byte x 151.5 +char main::r#2 // reg byte x 67.33333333333333 reg byte x [ main::r#2 main::r#1 ] reg byte x [ main::c#2 main::c#1 ] diff --git a/src/test/ref/c64dtv-color.sym b/src/test/ref/c64dtv-color.sym index 52dc78261..b99ab4a6c 100644 --- a/src/test/ref/c64dtv-color.sym +++ b/src/test/ref/c64dtv-color.sym @@ -1,20 +1,20 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte DTV_BADLINE_OFF = $20 -constant const byte DTV_BORDER_OFF = 2 -constant byte* const DTV_CONTROL = (byte*) 53308 -constant byte* const DTV_FEATURE = (byte*) 53311 -constant const byte DTV_FEATURE_ENABLE = 1 -constant const byte DTV_HIGHCOLOR = 4 -constant byte* const DTV_PALETTE = (byte*) 53760 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char DTV_BADLINE_OFF = $20 +__constant const char DTV_BORDER_OFF = 2 +__constant char * const DTV_CONTROL = (char *) 53308 +__constant char * const DTV_FEATURE = (char *) 53311 +__constant const char DTV_FEATURE_ENABLE = 1 +__constant const char DTV_HIGHCOLOR = 4 +__constant char * const DTV_PALETTE = (char *) 53760 +__constant char * const RASTER = (char *) 53266 void main() -byte main::c -byte main::c#1 reg byte x 151.5 -byte main::c#2 reg byte x 201.99999999999997 -constant byte* main::palette[$10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } -byte main::r -byte main::r#1 reg byte x 151.5 -byte main::r#2 reg byte x 67.33333333333333 +char main::c +char main::c#1 // reg byte x 151.5 +char main::c#2 // reg byte x 201.99999999999997 +__constant char main::palette[$10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $a, $b, $c, $d, $e, $f } +char main::r +char main::r#1 // reg byte x 151.5 +char main::r#2 // reg byte x 67.33333333333333 reg byte x [ main::r#2 main::r#1 ] reg byte x [ main::c#2 main::c#1 ] diff --git a/src/test/ref/call-parameter-autocast.asm b/src/test/ref/call-parameter-autocast.asm index 8b04e69eb..8c5113cbc 100644 --- a/src/test/ref/call-parameter-autocast.asm +++ b/src/test/ref/call-parameter-autocast.asm @@ -33,7 +33,7 @@ main: { // } rts } -// print(word zp(2) w) +// void print(__zp(2) unsigned int w) print: { .label w = 2 // SCREEN[idx++] = w diff --git a/src/test/ref/call-parameter-autocast.cfg b/src/test/ref/call-parameter-autocast.cfg index d406340d9..f1cc0c14d 100644 --- a/src/test/ref/call-parameter-autocast.cfg +++ b/src/test/ref/call-parameter-autocast.cfg @@ -2,21 +2,21 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call print + [5] call print to:main::@return main::@return: scope:[main] from main::@2 [6] return to:@return -void print(word print::w) +void print(unsigned int w) print: scope:[print] from main main::@1 main::@2 [7] print::w#3 = phi( main/$1234, main::@1/main::w, main::@2/$12w=$34 ) [7] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) diff --git a/src/test/ref/call-parameter-autocast.log b/src/test/ref/call-parameter-autocast.log index 62d55e3e1..11dd4e36a 100644 --- a/src/test/ref/call-parameter-autocast.log +++ b/src/test/ref/call-parameter-autocast.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,19 +6,19 @@ void main() main: scope:[main] from __start::@1 idx#17 = phi( __start::@1/idx#18 ) print::w#0 = $1234 - call print + call print to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) idx#0 = idx#9 print::w#1 = main::w - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#10 = phi( main::@1/idx#5 ) idx#1 = idx#10 print::w#2 = $12w=$34 - call print + call print to:main::@3 main::@3: scope:[main] from main::@2 idx#11 = phi( main::@2/idx#5 ) @@ -30,11 +30,11 @@ main::@return: scope:[main] from main::@3 return to:@return -void print(word print::w) +void print(unsigned int w) print: scope:[print] from main main::@1 main::@2 print::w#3 = phi( main/print::w#0, main::@1/print::w#1, main::@2/print::w#2 ) idx#13 = phi( main/idx#17, main::@1/idx#0, main::@2/idx#1 ) - print::$0 = idx#13 * SIZEOF_WORD + print::$0 = idx#13 * SIZEOF_UNSIGNED_INT SCREEN[print::$0] = print::w#3 idx#4 = ++ idx#13 to:print::@return @@ -52,7 +52,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#18 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#3 ) @@ -65,47 +65,47 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant word* const SCREEN = (word*)$400 -constant byte SIZEOF_WORD = 2 +__constant unsigned int * const SCREEN = (unsigned int *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant word main::w = $1234 -void print(word print::w) -byte~ print::$0 -word print::w -word print::w#0 -word print::w#1 -word print::w#2 -word print::w#3 +__constant unsigned int main::w = $1234 +void print(unsigned int w) +char print::$0 +unsigned int print::w +unsigned int print::w#0 +unsigned int print::w#1 +unsigned int print::w#2 +unsigned int print::w#3 Adding number conversion cast (unumber) $1234 in print::w#0 = $1234 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast print::w#0 = (unumber)$1234 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast $1234 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $1234 +Finalized unsigned number type (unsigned int) $1234 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#9 Alias idx#1 = idx#10 @@ -132,7 +132,7 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [5] print::$0 = idx#13 * SIZEOF_WORD +Rewriting multiplication to use shift [5] print::$0 = idx#13 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print::w#0 Inlining constant with var siblings print::w#1 @@ -143,10 +143,10 @@ Constant inlined print::w#2 = $12w=$34 Constant inlined print::w#1 = main::w Constant inlined print::w#0 = $1234 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $12 -Finalized unsigned number type (byte) $34 +Finalized unsigned number type (char) $12 +Finalized unsigned number type (char) $34 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -167,21 +167,21 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call print + [5] call print to:main::@return main::@return: scope:[main] from main::@2 [6] return to:@return -void print(word print::w) +void print(unsigned int w) print: scope:[print] from main main::@1 main::@2 [7] print::w#3 = phi( main/$1234, main::@1/main::w, main::@2/$12w=$34 ) [7] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) @@ -195,14 +195,14 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#13 8.666666666666666 -byte idx#14 2.5 +char idx +char idx#13 // 8.666666666666666 +char idx#14 // 2.5 void main() -void print(word print::w) -byte~ print::$0 22.0 -word print::w -word print::w#3 5.5 +void print(unsigned int w) +char print::$0 // 22.0 +unsigned int print::w +unsigned int print::w#3 // 5.5 Initial phi equivalence classes [ idx#13 idx#14 ] @@ -253,7 +253,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .const w = $1234 - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] print_from_main: // [7] phi print::w#3 = $1234 [phi:main->print#0] -- vwuz1=vwuc1 @@ -269,7 +269,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [7] phi print::w#3 = main::w [phi:main::@1->print#0] -- vwuz1=vwuc1 @@ -284,7 +284,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] print_from___b2: // [7] phi print::w#3 = $12w=$34 [phi:main::@2->print#0] -- vwuz1=vwuc1 @@ -301,7 +301,7 @@ main: { rts } // print -// print(word zp(2) w) +// void print(__zp(2) unsigned int w) print: { .label w = 2 // [8] print::$0 = idx#13 << 1 -- vbuaa=vbuxx_rol_1 @@ -342,16 +342,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (word*) 1024 -byte idx -byte idx#13 reg byte x 8.666666666666666 -byte idx#14 reg byte x 2.5 +__constant unsigned int * const SCREEN = (unsigned int *) 1024 +char idx +char idx#13 // reg byte x 8.666666666666666 +char idx#14 // reg byte x 2.5 void main() -constant word main::w = $1234 -void print(word print::w) -byte~ print::$0 reg byte a 22.0 -word print::w -word print::w#3 w zp[2]:2 5.5 +__constant unsigned int main::w = $1234 +void print(unsigned int w) +char print::$0 // reg byte a 22.0 +unsigned int print::w +unsigned int print::w#3 // w zp[2]:2 5.5 reg byte x [ idx#13 idx#14 ] zp[2]:2 [ print::w#3 ] @@ -379,7 +379,7 @@ Score: 86 main: { .const w = $1234 // print(0x1234) - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] // [7] phi print::w#3 = $1234 [phi:main->print#0] -- vwuz1=vwuc1 lda #<$1234 @@ -392,7 +392,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(w) - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] // [7] phi print::w#3 = main::w [phi:main::@1->print#0] -- vwuz1=vwuc1 lda #main::@2] // main::@2 // print( MAKEWORD(0x12,0x34) ) - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] // [7] phi print::w#3 = $12w=$34 [phi:main::@2->print#0] -- vwuz1=vwuc1 lda #<$12*$100+$34 @@ -419,7 +419,7 @@ main: { rts } // print -// print(word zp(2) w) +// void print(__zp(2) unsigned int w) print: { .label w = 2 // SCREEN[idx++] = w diff --git a/src/test/ref/call-parameter-autocast.sym b/src/test/ref/call-parameter-autocast.sym index 8178239d2..2ff5f2a22 100644 --- a/src/test/ref/call-parameter-autocast.sym +++ b/src/test/ref/call-parameter-autocast.sym @@ -1,13 +1,13 @@ -constant word* const SCREEN = (word*) 1024 -byte idx -byte idx#13 reg byte x 8.666666666666666 -byte idx#14 reg byte x 2.5 +__constant unsigned int * const SCREEN = (unsigned int *) 1024 +char idx +char idx#13 // reg byte x 8.666666666666666 +char idx#14 // reg byte x 2.5 void main() -constant word main::w = $1234 -void print(word print::w) -byte~ print::$0 reg byte a 22.0 -word print::w -word print::w#3 w zp[2]:2 5.5 +__constant unsigned int main::w = $1234 +void print(unsigned int w) +char print::$0 // reg byte a 22.0 +unsigned int print::w +unsigned int print::w#3 // w zp[2]:2 5.5 reg byte x [ idx#13 idx#14 ] zp[2]:2 [ print::w#3 ] diff --git a/src/test/ref/callconstparam.asm b/src/test/ref/callconstparam.asm index 050adfdc9..413c526f7 100644 --- a/src/test/ref/callconstparam.asm +++ b/src/test/ref/callconstparam.asm @@ -29,7 +29,7 @@ main: { // } rts } -// line(byte zp(2) x1) +// void line(char x0, __zp(2) char x1) line: { .label x1 = 2 __b1: diff --git a/src/test/ref/callconstparam.cfg b/src/test/ref/callconstparam.cfg index 08d4a41ba..a9791662f 100644 --- a/src/test/ref/callconstparam.cfg +++ b/src/test/ref/callconstparam.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call line + [1] call line to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call line + [3] call line to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void line(byte line::x0 , byte line::x1) +void line(char x0 , char x1) line: scope:[line] from main main::@1 - [5] screen#18 = phi( main/(byte*) 1024, main::@1/screen#11 ) + [5] screen#18 = phi( main/(char *) 1024, main::@1/screen#11 ) [5] line::x1#3 = phi( main/2, main::@1/5 ) [5] line::x#0 = phi( main/1, main::@1/3 ) to:line::@1 diff --git a/src/test/ref/callconstparam.log b/src/test/ref/callconstparam.log index adde8b624..cf0eca635 100644 --- a/src/test/ref/callconstparam.log +++ b/src/test/ref/callconstparam.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,14 +7,14 @@ main: scope:[main] from __start::@1 screen#15 = phi( __start::@1/screen#17 ) line::x0#0 = 1 line::x1#0 = 2 - call line + call line to:main::@1 main::@1: scope:[main] from main screen#8 = phi( main/screen#4 ) screen#0 = screen#8 line::x0#1 = 3 line::x1#1 = 5 - call line + call line to:main::@2 main::@2: scope:[main] from main::@1 screen#9 = phi( main::@1/screen#4 ) @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void line(byte line::x0 , byte line::x1) +void line(char x0 , char x1) line: scope:[line] from main main::@1 screen#18 = phi( main/screen#15, main::@1/screen#0 ) line::x1#3 = phi( main/line::x1#0, main::@1/line::x1#1 ) @@ -58,11 +58,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#5 = (byte*)$400 + screen#5 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#17 = phi( __start::__init1/screen#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#13 = phi( __start::@1/screen#2 ) @@ -76,44 +76,44 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -void line(byte line::x0 , byte line::x1) -bool~ line::$0 -byte line::x -byte line::x#0 -byte line::x#1 -byte line::x#2 -byte line::x#3 -byte line::x0 -byte line::x0#0 -byte line::x0#1 -byte line::x0#2 -byte line::x1 -byte line::x1#0 -byte line::x1#1 -byte line::x1#2 -byte line::x1#3 -byte line::x1#4 +void line(char x0 , char x1) +bool line::$0 +char line::x +char line::x#0 +char line::x#1 +char line::x#2 +char line::x#3 +char line::x0 +char line::x0#0 +char line::x0#1 +char line::x0#2 +char line::x1 +char line::x1#0 +char line::x1#1 +char line::x1#2 +char line::x1#3 +char line::x1#4 void main() -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#11 -byte* screen#12 -byte* screen#13 -byte* screen#14 -byte* screen#15 -byte* screen#16 -byte* screen#17 -byte* screen#18 -byte* screen#2 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#11 +char *screen#12 +char *screen#13 +char *screen#14 +char *screen#15 +char *screen#16 +char *screen#17 +char *screen#18 +char *screen#2 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 Adding number conversion cast (unumber) 1 in line::x0#0 = 1 Adding number conversion cast (unumber) 2 in line::x1#0 = 2 @@ -129,12 +129,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 5 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias screen#0 = screen#8 Alias screen#1 = screen#9 screen#10 screen#2 @@ -157,7 +157,7 @@ Constant line::x0#0 = 1 Constant line::x1#0 = 2 Constant line::x0#1 = 3 Constant line::x1#1 = 5 -Constant screen#17 = (byte*) 1024 +Constant screen#17 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -173,7 +173,7 @@ Inlining constant with var siblings line::x1#1 Inlining constant with var siblings screen#17 Constant inlined line::x0#0 = 1 Constant inlined line::x1#1 = 5 -Constant inlined screen#17 = (byte*) 1024 +Constant inlined screen#17 = (char *) 1024 Constant inlined line::x1#0 = 2 Constant inlined line::x0#1 = 3 Successful SSA optimization Pass2ConstantInlining @@ -198,19 +198,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call line + [1] call line to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call line + [3] call line to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void line(byte line::x0 , byte line::x1) +void line(char x0 , char x1) line: scope:[line] from main main::@1 - [5] screen#18 = phi( main/(byte*) 1024, main::@1/screen#11 ) + [5] screen#18 = phi( main/(char *) 1024, main::@1/screen#11 ) [5] line::x1#3 = phi( main/2, main::@1/5 ) [5] line::x#0 = phi( main/1, main::@1/3 ) to:line::@1 @@ -230,19 +230,19 @@ line::@2: scope:[line] from line::@1 VARIABLE REGISTER WEIGHTS -void line(byte line::x0 , byte line::x1) -byte line::x -byte line::x#0 11.0 -byte line::x#1 202.0 -byte line::x#2 103.75 -byte line::x0 -byte line::x1 -byte line::x1#3 16.833333333333332 +void line(char x0 , char x1) +char line::x +char line::x#0 // 11.0 +char line::x#1 // 202.0 +char line::x#2 // 103.75 +char line::x0 +char line::x1 +char line::x1#3 // 16.833333333333332 void main() -byte* screen -byte* screen#11 52.66666666666666 -byte* screen#18 13.0 -byte* screen#3 101.0 +char *screen +char *screen#11 // 52.66666666666666 +char *screen#18 // 13.0 +char *screen#3 // 101.0 Initial phi equivalence classes [ line::x1#3 ] @@ -294,10 +294,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call line + // [1] call line // [5] phi from main to line [phi:main->line] line_from_main: - // [5] phi screen#18 = (byte*) 1024 [phi:main->line#0] -- pbuz1=pbuc1 + // [5] phi screen#18 = (char *) 1024 [phi:main->line#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -313,7 +313,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call line + // [3] call line // [5] phi from main::@1 to line [phi:main::@1->line] line_from___b1: // [5] phi screen#18 = screen#11 [phi:main::@1->line#0] -- register_copy @@ -330,7 +330,7 @@ main: { rts } // line -// line(byte zp(2) x1) +// void line(char x0, __zp(2) char x1) line: { .label x1 = 2 // [6] phi from line line::@2 to line::@1 [phi:line/line::@2->line::@1] @@ -385,19 +385,19 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void line(byte line::x0 , byte line::x1) -byte line::x -byte line::x#0 reg byte x 11.0 -byte line::x#1 reg byte x 202.0 -byte line::x#2 reg byte x 103.75 -byte line::x0 -byte line::x1 -byte line::x1#3 x1 zp[1]:2 16.833333333333332 +void line(char x0 , char x1) +char line::x +char line::x#0 // reg byte x 11.0 +char line::x#1 // reg byte x 202.0 +char line::x#2 // reg byte x 103.75 +char line::x0 +char line::x1 +char line::x1#3 // x1 zp[1]:2 16.833333333333332 void main() -byte* screen -byte* screen#11 screen zp[2]:3 52.66666666666666 -byte* screen#18 screen zp[2]:3 13.0 -byte* screen#3 screen zp[2]:3 101.0 +char *screen +char *screen#11 // screen zp[2]:3 52.66666666666666 +char *screen#18 // screen zp[2]:3 13.0 +char *screen#3 // screen zp[2]:3 101.0 zp[1]:2 [ line::x1#3 ] zp[2]:3 [ screen#18 screen#11 screen#3 ] @@ -426,9 +426,9 @@ Score: 378 // main main: { // line(1,2) - // [1] call line + // [1] call line // [5] phi from main to line [phi:main->line] - // [5] phi screen#18 = (byte*) 1024 [phi:main->line#0] -- pbuz1=pbuc1 + // [5] phi screen#18 = (char *) 1024 [phi:main->line#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -442,7 +442,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // line(3,5) - // [3] call line + // [3] call line // [5] phi from main::@1 to line [phi:main::@1->line] // [5] phi screen#18 = screen#11 [phi:main::@1->line#0] -- register_copy // [5] phi line::x1#3 = 5 [phi:main::@1->line#1] -- vbuz1=vbuc1 @@ -457,7 +457,7 @@ main: { rts } // line -// line(byte zp(2) x1) +// void line(char x0, __zp(2) char x1) line: { .label x1 = 2 // [6] phi from line line::@2 to line::@1 [phi:line/line::@2->line::@1] diff --git a/src/test/ref/callconstparam.sym b/src/test/ref/callconstparam.sym index 1798bdba1..e65c09eb1 100644 --- a/src/test/ref/callconstparam.sym +++ b/src/test/ref/callconstparam.sym @@ -1,16 +1,16 @@ -void line(byte line::x0 , byte line::x1) -byte line::x -byte line::x#0 reg byte x 11.0 -byte line::x#1 reg byte x 202.0 -byte line::x#2 reg byte x 103.75 -byte line::x0 -byte line::x1 -byte line::x1#3 x1 zp[1]:2 16.833333333333332 +void line(char x0 , char x1) +char line::x +char line::x#0 // reg byte x 11.0 +char line::x#1 // reg byte x 202.0 +char line::x#2 // reg byte x 103.75 +char line::x0 +char line::x1 +char line::x1#3 // x1 zp[1]:2 16.833333333333332 void main() -byte* screen -byte* screen#11 screen zp[2]:3 52.66666666666666 -byte* screen#18 screen zp[2]:3 13.0 -byte* screen#3 screen zp[2]:3 101.0 +char *screen +char *screen#11 // screen zp[2]:3 52.66666666666666 +char *screen#18 // screen zp[2]:3 13.0 +char *screen#3 // screen zp[2]:3 101.0 zp[1]:2 [ line::x1#3 ] zp[2]:3 [ screen#18 screen#11 screen#3 ] diff --git a/src/test/ref/cast-deref.cfg b/src/test/ref/cast-deref.cfg index 0582acf79..43620766c 100644 --- a/src/test/ref/cast-deref.cfg +++ b/src/test/ref/cast-deref.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] + [2] main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] [3] main::i#1 = ++ main::i#2 [4] if(main::i#1!=4) goto main::@1 to:main::@return diff --git a/src/test/ref/cast-deref.log b/src/test/ref/cast-deref.log index f4d7712db..9aeea4e7b 100644 --- a/src/test/ref/cast-deref.log +++ b/src/test/ref/cast-deref.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] + main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] main::i#1 = main::i#2 + rangenext(0,3) main::$0 = main::i#1 != rangelast(0,3) if(main::$0) goto main::@1 @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,15 +29,15 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant signed byte* main::sbs[] = { -1, -2, -3, -4 } +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant signed char main::sbs[] = { -1, -2, -3, -4 } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -54,7 +54,7 @@ Adding number conversion cast (unumber) 4 in [3] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -77,7 +77,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] + [2] main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] [3] main::i#1 = ++ main::i#2 [4] if(main::i#1!=4) goto main::@1 to:main::@return @@ -88,9 +88,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -98,9 +98,9 @@ Complete equivalence classes [ main::i#2 main::i#1 ] Allocated zp[1]:2 [ main::i#2 main::i#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [2] main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [2] main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [2] main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , REGISTER UPLIFT SCOPES @@ -138,7 +138,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [2] main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda sbs,x sta SCREEN,x // [3] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx @@ -171,11 +171,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 -constant signed byte* main::sbs[] = { -1, -2, -3, -4 } +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 +__constant signed char main::sbs[] = { -1, -2, -3, -4 } reg byte x [ main::i#2 main::i#1 ] @@ -207,7 +207,7 @@ main: { // main::@1 __b1: // SCREEN[i] = (byte) sbs[i] - // [2] main::SCREEN[main::i#2] = (byte)main::sbs[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [2] main::SCREEN[main::i#2] = (char)main::sbs[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda sbs,x sta SCREEN,x // for(byte i : 0..3) diff --git a/src/test/ref/cast-deref.sym b/src/test/ref/cast-deref.sym index af32e1b82..f3e94c42b 100644 --- a/src/test/ref/cast-deref.sym +++ b/src/test/ref/cast-deref.sym @@ -1,8 +1,8 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 -constant signed byte* main::sbs[] = { -1, -2, -3, -4 } +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 +__constant signed char main::sbs[] = { -1, -2, -3, -4 } reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/cast-not-needed-2.log b/src/test/ref/cast-not-needed-2.log index 660855e6a..953e132a2 100644 --- a/src/test/ref/cast-not-needed-2.log +++ b/src/test/ref/cast-not-needed-2.log @@ -5,7 +5,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*) 0 + main::screen#0 = (char *) 0 main::getScreen1_id#0 = 0 to:main::getScreen1 main::getScreen1: scope:[main] from main @@ -26,7 +26,7 @@ main::@1: scope:[main] from main::getScreen1_@return main::spritePtr1: scope:[main] from main::@1 main::spritePtr1_screen#1 = phi( main::@1/main::spritePtr1_screen#0 ) main::spritePtr1_$0 = main::spritePtr1_screen#1 + $378 - main::spritePtr1_return#0 = (byte*)main::spritePtr1_$0 + main::spritePtr1_return#0 = (char *)main::spritePtr1_$0 to:main::spritePtr1_@return main::spritePtr1_@return: scope:[main] from main::spritePtr1 main::spritePtr1_return#2 = phi( main::spritePtr1/main::spritePtr1_return#0 ) @@ -43,7 +43,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -52,33 +52,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte~ main::getScreen1_$0 -byte main::getScreen1_id -byte main::getScreen1_id#0 -byte main::getScreen1_id#1 -byte* main::getScreen1_return -byte* main::getScreen1_return#0 -byte* main::getScreen1_return#1 -byte* main::getScreen1_return#2 -byte* main::getScreen1_return#3 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte*~ main::spritePtr1_$0 -byte* main::spritePtr1_return -byte* main::spritePtr1_return#0 -byte* main::spritePtr1_return#1 -byte* main::spritePtr1_return#2 -byte* main::spritePtr1_return#3 -byte* main::spritePtr1_screen -byte* main::spritePtr1_screen#0 -byte* main::spritePtr1_screen#1 -constant byte** screens[] = { (byte*)$400, (byte*)$1400 } +char *main::$0 +char *main::$1 +char main::getScreen1_$0 +char main::getScreen1_id +char main::getScreen1_id#0 +char main::getScreen1_id#1 +char *main::getScreen1_return +char *main::getScreen1_return#0 +char *main::getScreen1_return#1 +char *main::getScreen1_return#2 +char *main::getScreen1_return#3 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::spritePtr1_$0 +char *main::spritePtr1_return +char *main::spritePtr1_return#0 +char *main::spritePtr1_return#1 +char *main::spritePtr1_return#2 +char *main::spritePtr1_return#3 +char *main::spritePtr1_screen +char *main::spritePtr1_screen#0 +char *main::spritePtr1_screen#1 +__constant char *screens[] = { (char *)$400, (char *)$1400 } Adding number conversion cast (unumber) 0 in main::getScreen1_id#0 = 0 Adding number conversion cast (unumber) $378 in main::spritePtr1_$0 = main::spritePtr1_screen#1 + $378 @@ -87,22 +87,22 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::getScreen1_id#0 = (unumber)0 Inlining cast *main::$1 = (unumber)$22 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 5120 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 5120 Simplifying constant integer cast 0 Simplifying constant integer cast $378 Simplifying constant integer cast main::spritePtr1_$0 Simplifying constant integer cast $22 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $378 -Finalized unsigned number type (byte) $22 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $378 +Finalized unsigned number type (char) $22 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::getScreen1_id#0 = main::getScreen1_id#1 Alias main::getScreen1_return#0 = main::getScreen1_return#2 main::getScreen1_return#1 main::getScreen1_return#3 main::$0 main::screen#1 main::spritePtr1_screen#0 main::spritePtr1_screen#1 Alias main::spritePtr1_return#0 = main::spritePtr1_$0 main::spritePtr1_return#2 main::spritePtr1_return#1 main::spritePtr1_return#3 main::$1 Successful SSA optimization Pass2AliasElimination -Constant main::screen#0 = (byte*) 0 +Constant main::screen#0 = (char *) 0 Constant main::getScreen1_id#0 = 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant main::screen#0 @@ -160,13 +160,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::getScreen1_id -byte* main::getScreen1_return -byte* main::getScreen1_return#0 4.0 -byte* main::screen -byte* main::spritePtr1_return -byte* main::spritePtr1_return#0 4.0 -byte* main::spritePtr1_screen +char main::getScreen1_id +char *main::getScreen1_return +char *main::getScreen1_return#0 // 4.0 +char *main::screen +char *main::spritePtr1_return +char *main::spritePtr1_return#0 // 4.0 +char *main::spritePtr1_screen Initial phi equivalence classes Added variable main::getScreen1_return#0 to live range equivalence class [ main::getScreen1_return#0 ] @@ -259,14 +259,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::getScreen1_id -byte* main::getScreen1_return -byte* main::getScreen1_return#0 getScreen1_return zp[2]:2 4.0 -byte* main::screen -byte* main::spritePtr1_return -byte* main::spritePtr1_return#0 spritePtr1_return zp[2]:2 4.0 -byte* main::spritePtr1_screen -constant byte** screens[] = { (byte*) 1024, (byte*) 5120 } +char main::getScreen1_id +char *main::getScreen1_return +char *main::getScreen1_return#0 // getScreen1_return zp[2]:2 4.0 +char *main::screen +char *main::spritePtr1_return +char *main::spritePtr1_return#0 // spritePtr1_return zp[2]:2 4.0 +char *main::spritePtr1_screen +__constant char *screens[] = { (char *) 1024, (char *) 5120 } zp[2]:2 [ main::getScreen1_return#0 main::spritePtr1_return#0 ] diff --git a/src/test/ref/cast-not-needed-2.sym b/src/test/ref/cast-not-needed-2.sym index 72eed4cac..df5f2c808 100644 --- a/src/test/ref/cast-not-needed-2.sym +++ b/src/test/ref/cast-not-needed-2.sym @@ -1,11 +1,11 @@ void main() -byte main::getScreen1_id -byte* main::getScreen1_return -byte* main::getScreen1_return#0 getScreen1_return zp[2]:2 4.0 -byte* main::screen -byte* main::spritePtr1_return -byte* main::spritePtr1_return#0 spritePtr1_return zp[2]:2 4.0 -byte* main::spritePtr1_screen -constant byte** screens[] = { (byte*) 1024, (byte*) 5120 } +char main::getScreen1_id +char *main::getScreen1_return +char *main::getScreen1_return#0 // getScreen1_return zp[2]:2 4.0 +char *main::screen +char *main::spritePtr1_return +char *main::spritePtr1_return#0 // spritePtr1_return zp[2]:2 4.0 +char *main::spritePtr1_screen +__constant char *screens[] = { (char *) 1024, (char *) 5120 } zp[2]:2 [ main::getScreen1_return#0 main::spritePtr1_return#0 ] diff --git a/src/test/ref/cast-not-needed-3.log b/src/test/ref/cast-not-needed-3.log index 025acb5e3..b05b19ee4 100644 --- a/src/test/ref/cast-not-needed-3.log +++ b/src/test/ref/cast-not-needed-3.log @@ -24,7 +24,7 @@ main::@1: scope:[main] from main::getScreen1_@return main::spritePtr1: scope:[main] from main::@1 main::spritePtr1_screen#1 = phi( main::@1/main::spritePtr1_screen#0 ) main::spritePtr1_$0 = main::spritePtr1_screen#1 + $378 - main::spritePtr1_return#0 = (byte)*main::spritePtr1_$0 + main::spritePtr1_return#0 = (char)*main::spritePtr1_$0 to:main::spritePtr1_@return main::spritePtr1_@return: scope:[main] from main::spritePtr1 main::spritePtr1_return#2 = phi( main::spritePtr1/main::spritePtr1_return#0 ) @@ -41,7 +41,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -50,31 +50,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void __start() void main() -byte*~ main::$0 -byte~ main::$1 -constant byte* main::DSP = (byte*)$400 -byte~ main::getScreen1_$0 -byte main::getScreen1_id -byte main::getScreen1_id#0 -byte main::getScreen1_id#1 -byte* main::getScreen1_return -byte* main::getScreen1_return#0 -byte* main::getScreen1_return#1 -byte* main::getScreen1_return#2 -byte* main::getScreen1_return#3 -byte*~ main::spritePtr1_$0 -byte main::spritePtr1_return -byte main::spritePtr1_return#0 -byte main::spritePtr1_return#1 -byte main::spritePtr1_return#2 -byte main::spritePtr1_return#3 -byte* main::spritePtr1_screen -byte* main::spritePtr1_screen#0 -byte* main::spritePtr1_screen#1 -constant byte** screens[] = { (byte*)$400, (byte*)$1400 } +char *main::$0 +char main::$1 +__constant char *main::DSP = (char *)$400 +char main::getScreen1_$0 +char main::getScreen1_id +char main::getScreen1_id#0 +char main::getScreen1_id#1 +char *main::getScreen1_return +char *main::getScreen1_return#0 +char *main::getScreen1_return#1 +char *main::getScreen1_return#2 +char *main::getScreen1_return#3 +char *main::spritePtr1_$0 +char main::spritePtr1_return +char main::spritePtr1_return#0 +char main::spritePtr1_return#1 +char main::spritePtr1_return#2 +char main::spritePtr1_return#3 +char *main::spritePtr1_screen +char *main::spritePtr1_screen#0 +char *main::spritePtr1_screen#1 +__constant char *screens[] = { (char *)$400, (char *)$1400 } Adding number conversion cast (unumber) 0 in main::getScreen1_id#0 = 0 Adding number conversion cast (unumber) $378 in main::spritePtr1_$0 = main::spritePtr1_screen#1 + $378 @@ -82,17 +82,17 @@ Adding number conversion cast (unumber) 0 in main::DSP[0] = main::$1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::getScreen1_id#0 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 5120 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 5120 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $378 Simplifying constant integer cast *main::spritePtr1_$0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $378 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $378 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::getScreen1_id#0 = main::getScreen1_id#1 Alias main::getScreen1_return#0 = main::getScreen1_return#2 main::getScreen1_return#1 main::getScreen1_return#3 main::$0 main::spritePtr1_screen#0 main::spritePtr1_screen#1 @@ -156,13 +156,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::getScreen1_id -byte* main::getScreen1_return -byte* main::getScreen1_return#0 4.0 -byte*~ main::spritePtr1_$0 4.0 -byte main::spritePtr1_return -byte main::spritePtr1_return#0 4.0 -byte* main::spritePtr1_screen +char main::getScreen1_id +char *main::getScreen1_return +char *main::getScreen1_return#0 // 4.0 +char *main::spritePtr1_$0 // 4.0 +char main::spritePtr1_return +char main::spritePtr1_return#0 // 4.0 +char *main::spritePtr1_screen Initial phi equivalence classes Added variable main::getScreen1_return#0 to live range equivalence class [ main::getScreen1_return#0 ] @@ -261,15 +261,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::DSP = (byte*) 1024 -byte main::getScreen1_id -byte* main::getScreen1_return -byte* main::getScreen1_return#0 getScreen1_return zp[2]:2 4.0 -byte*~ main::spritePtr1_$0 zp[2]:2 4.0 -byte main::spritePtr1_return -byte main::spritePtr1_return#0 reg byte a 4.0 -byte* main::spritePtr1_screen -constant byte** screens[] = { (byte*) 1024, (byte*) 5120 } +__constant char *main::DSP = (char *) 1024 +char main::getScreen1_id +char *main::getScreen1_return +char *main::getScreen1_return#0 // getScreen1_return zp[2]:2 4.0 +char *main::spritePtr1_$0 // zp[2]:2 4.0 +char main::spritePtr1_return +char main::spritePtr1_return#0 // reg byte a 4.0 +char *main::spritePtr1_screen +__constant char *screens[] = { (char *) 1024, (char *) 5120 } zp[2]:2 [ main::getScreen1_return#0 main::spritePtr1_$0 ] reg byte a [ main::spritePtr1_return#0 ] diff --git a/src/test/ref/cast-not-needed-3.sym b/src/test/ref/cast-not-needed-3.sym index 1fb4e033d..d216c5292 100644 --- a/src/test/ref/cast-not-needed-3.sym +++ b/src/test/ref/cast-not-needed-3.sym @@ -1,13 +1,13 @@ void main() -constant byte* main::DSP = (byte*) 1024 -byte main::getScreen1_id -byte* main::getScreen1_return -byte* main::getScreen1_return#0 getScreen1_return zp[2]:2 4.0 -byte*~ main::spritePtr1_$0 zp[2]:2 4.0 -byte main::spritePtr1_return -byte main::spritePtr1_return#0 reg byte a 4.0 -byte* main::spritePtr1_screen -constant byte** screens[] = { (byte*) 1024, (byte*) 5120 } +__constant char *main::DSP = (char *) 1024 +char main::getScreen1_id +char *main::getScreen1_return +char *main::getScreen1_return#0 // getScreen1_return zp[2]:2 4.0 +char *main::spritePtr1_$0 // zp[2]:2 4.0 +char main::spritePtr1_return +char main::spritePtr1_return#0 // reg byte a 4.0 +char *main::spritePtr1_screen +__constant char *screens[] = { (char *) 1024, (char *) 5120 } zp[2]:2 [ main::getScreen1_return#0 main::spritePtr1_$0 ] reg byte a [ main::spritePtr1_return#0 ] diff --git a/src/test/ref/cast-not-needed-4.cfg b/src/test/ref/cast-not-needed-4.cfg index 10b439d04..2d549bdc1 100644 --- a/src/test/ref/cast-not-needed-4.cfg +++ b/src/test/ref/cast-not-needed-4.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::screen#2 = phi( main/(byte*) 1024, main::@2/main::screen#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@2/main::screen#1 ) [1] main::i#2 = phi( main/-$3e8, main::@2/main::i#1 ) [2] if(main::i#2<$3e8) goto main::@2 to:main::@return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] main::c#0 = (byte)main::i#2 + [4] main::c#0 = (char)main::i#2 [5] *main::screen#2 = main::c#0 [6] main::screen#1 = ++ main::screen#2 [7] main::i#1 = ++ main::i#2 diff --git a/src/test/ref/cast-not-needed-4.log b/src/test/ref/cast-not-needed-4.log index b43c04af9..a00f0e4f5 100644 --- a/src/test/ref/cast-not-needed-4.log +++ b/src/test/ref/cast-not-needed-4.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = -$3e8 to:main::@1 main::@1: scope:[main] from main main::@2 @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::screen#2 = phi( main::@1/main::screen#3 ) main::i#3 = phi( main::@1/main::i#2 ) - main::c#0 = (byte)main::i#3 + main::c#0 = (char)main::i#3 *main::screen#2 = main::c#0 main::screen#1 = ++ main::screen#2 main::i#1 = ++ main::i#3 @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,33 +37,33 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte main::c -byte main::c#0 -signed word main::i -signed word main::i#0 -signed word main::i#1 -signed word main::i#2 -signed word main::i#3 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 +bool main::$0 +char main::c +char main::c#0 +int main::i +int main::i#0 +int main::i#1 +int main::i#2 +int main::i#3 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 Adding number conversion cast (snumber) $3e8 in main::$0 = main::i#2 < $3e8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed word) $3e8 +Finalized signed number type (int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias main::screen#2 = main::screen#3 Successful SSA optimization Pass2AliasElimination Simple Condition main::$0 [4] if(main::i#2<$3e8) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = -$3e8 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start @@ -73,7 +73,7 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = -$3e8 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main @@ -92,7 +92,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::screen#2 = phi( main/(byte*) 1024, main::@2/main::screen#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@2/main::screen#1 ) [1] main::i#2 = phi( main/-$3e8, main::@2/main::i#1 ) [2] if(main::i#2<$3e8) goto main::@2 to:main::@return @@ -100,7 +100,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] main::c#0 = (byte)main::i#2 + [4] main::c#0 = (char)main::i#2 [5] *main::screen#2 = main::c#0 [6] main::screen#1 = ++ main::screen#2 [7] main::i#1 = ++ main::i#2 @@ -109,14 +109,14 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::c -byte main::c#0 22.0 -signed word main::i -signed word main::i#1 22.0 -signed word main::i#2 6.6000000000000005 -byte* main::screen -byte* main::screen#1 11.0 -byte* main::screen#2 8.25 +char main::c +char main::c#0 // 22.0 +int main::i +int main::i#1 // 22.0 +int main::i#2 // 6.6000000000000005 +char *main::screen +char *main::screen#1 // 11.0 +char *main::screen#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -131,7 +131,7 @@ Allocated zp[2]:4 [ main::screen#2 main::screen#1 ] Allocated zp[1]:6 [ main::c#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] if(main::i#2<$3e8) goto main::@2 [ main::i#2 main::screen#2 ] ( [ main::i#2 main::screen#2 ] { } ) always clobbers reg byte a -Statement [4] main::c#0 = (byte)main::i#2 [ main::i#2 main::screen#2 main::c#0 ] ( [ main::i#2 main::screen#2 main::c#0 ] { } ) always clobbers reg byte a +Statement [4] main::c#0 = (char)main::i#2 [ main::i#2 main::screen#2 main::c#0 ] ( [ main::i#2 main::screen#2 main::c#0 ] { } ) always clobbers reg byte a Statement [5] *main::screen#2 = main::c#0 [ main::i#2 main::screen#2 ] ( [ main::i#2 main::screen#2 ] { } ) always clobbers reg byte y Potential registers zp[2]:2 [ main::i#2 main::i#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::screen#2 main::screen#1 ] : zp[2]:4 , @@ -165,7 +165,7 @@ main: { .label i = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -194,7 +194,7 @@ main: { rts // main::@2 __b2: - // [4] main::c#0 = (byte)main::i#2 -- vbuaa=_byte_vwsz1 + // [4] main::c#0 = (char)main::i#2 -- vbuaa=_byte_vwsz1 lda.z i // [5] *main::screen#2 = main::c#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -228,14 +228,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::c -byte main::c#0 reg byte a 22.0 -signed word main::i -signed word main::i#1 i zp[2]:2 22.0 -signed word main::i#2 i zp[2]:2 6.6000000000000005 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 11.0 -byte* main::screen#2 screen zp[2]:4 8.25 +char main::c +char main::c#0 // reg byte a 22.0 +int main::i +int main::i#1 // i zp[2]:2 22.0 +int main::i#2 // i zp[2]:2 6.6000000000000005 +char *main::screen +char *main::screen#1 // screen zp[2]:4 11.0 +char *main::screen#2 // screen zp[2]:4 8.25 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::screen#2 main::screen#1 ] @@ -264,7 +264,7 @@ main: { .label screen = 4 .label i = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -293,7 +293,7 @@ main: { // main::@2 __b2: // char c = i - // [4] main::c#0 = (byte)main::i#2 -- vbuaa=_byte_vwsz1 + // [4] main::c#0 = (char)main::i#2 -- vbuaa=_byte_vwsz1 lda.z i // *(screen++) = c // [5] *main::screen#2 = main::c#0 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/cast-not-needed-4.sym b/src/test/ref/cast-not-needed-4.sym index 4bfd0c925..88c9c1ba2 100644 --- a/src/test/ref/cast-not-needed-4.sym +++ b/src/test/ref/cast-not-needed-4.sym @@ -1,12 +1,12 @@ void main() -byte main::c -byte main::c#0 reg byte a 22.0 -signed word main::i -signed word main::i#1 i zp[2]:2 22.0 -signed word main::i#2 i zp[2]:2 6.6000000000000005 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 11.0 -byte* main::screen#2 screen zp[2]:4 8.25 +char main::c +char main::c#0 // reg byte a 22.0 +int main::i +int main::i#1 // i zp[2]:2 22.0 +int main::i#2 // i zp[2]:2 6.6000000000000005 +char *main::screen +char *main::screen#1 // screen zp[2]:4 11.0 +char *main::screen#2 // screen zp[2]:4 8.25 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::screen#2 main::screen#1 ] diff --git a/src/test/ref/cast-not-needed.cfg b/src/test/ref/cast-not-needed.cfg index 31318fdcd..23dd0304c 100644 --- a/src/test/ref/cast-not-needed.cfg +++ b/src/test/ref/cast-not-needed.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *main::sprite_ptr#0 = (byte)sprite/$40 + [0] *main::sprite_ptr#0 = (char)sprite/$40 to:main::@return main::@return: scope:[main] from main [1] return diff --git a/src/test/ref/cast-not-needed.log b/src/test/ref/cast-not-needed.log index 6ab0bf1ab..460a99dc1 100644 --- a/src/test/ref/cast-not-needed.log +++ b/src/test/ref/cast-not-needed.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA @@ -7,7 +7,7 @@ void main() main: scope:[main] from __start::@1 main::sprite_ptr#0 = SCREEN + $378 main::$1 = sprite / $40 - main::sprite_ptr#0[0] = (byte)main::$1 + main::sprite_ptr#0[0] = (char)main::$1 to:main::@return main::@return: scope:[main] from main return @@ -19,7 +19,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -28,27 +28,27 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$4400 +__constant char *SCREEN = (char *)$4400 void __start() void main() -byte*~ main::$1 -byte* main::sprite_ptr -byte* main::sprite_ptr#0 -constant byte* sprite = (byte*)$5000 +char *main::$1 +char *main::sprite_ptr +char *main::sprite_ptr#0 +__constant char *sprite = (char *)$5000 Adding number conversion cast (unumber) $378 in main::sprite_ptr#0 = SCREEN + $378 Adding number conversion cast (unumber) $40 in main::$1 = sprite / $40 -Adding number conversion cast (unumber) 0 in main::sprite_ptr#0[0] = (byte)main::$1 +Adding number conversion cast (unumber) 0 in main::sprite_ptr#0[0] = (char)main::$1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 20480 -Simplifying constant pointer cast (byte*) 17408 +Simplifying constant pointer cast (char *) 20480 +Simplifying constant pointer cast (char *) 17408 Simplifying constant integer cast $378 Simplifying constant integer cast $40 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $378 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (unsigned int) $378 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::sprite_ptr#0 = SCREEN + $378 Constant right-side identified [1] main::$1 = sprite / $40 @@ -56,9 +56,9 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::sprite_ptr#0 = SCREEN+$378 Constant main::$1 = sprite/$40 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte)main::$1 in [2] main::sprite_ptr#0[0] = (byte)main::$1 +Constant value identified (char)main::$1 in [2] main::sprite_ptr#0[0] = (char)main::$1 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero main::sprite_ptr#0 in [2] main::sprite_ptr#0[0] = (byte)main::$1 +Simplifying expression containing zero main::sprite_ptr#0 in [2] main::sprite_ptr#0[0] = (char)main::$1 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start @@ -78,7 +78,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::sprite_ptr#0 = (byte)sprite/$40 + [0] *main::sprite_ptr#0 = (char)sprite/$40 to:main::@return main::@return: scope:[main] from main [1] return @@ -87,12 +87,12 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* main::sprite_ptr +char *main::sprite_ptr Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::sprite_ptr#0 = (byte)sprite/$40 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *main::sprite_ptr#0 = (char)sprite/$40 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -120,7 +120,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label sprite_ptr = SCREEN+$378 - // [0] *main::sprite_ptr#0 = (byte)sprite/$40 -- _deref_pbuc1=vbuc2 + // [0] *main::sprite_ptr#0 = (char)sprite/$40 -- _deref_pbuc1=vbuc2 lda #$ff&sprite/$40 sta sprite_ptr jmp __breturn @@ -138,11 +138,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 17408 +__constant char *SCREEN = (char *) 17408 void main() -byte* main::sprite_ptr -constant byte* main::sprite_ptr#0 sprite_ptr = SCREEN+$378 -constant byte* sprite = (byte*) 20480 +char *main::sprite_ptr +__constant char *main::sprite_ptr#0 = SCREEN+$378 // sprite_ptr +__constant char *sprite = (char *) 20480 @@ -168,7 +168,7 @@ Score: 12 main: { .label sprite_ptr = SCREEN+$378 // sprite_ptr[0] = (byte)(sprite/$40) - // [0] *main::sprite_ptr#0 = (byte)sprite/$40 -- _deref_pbuc1=vbuc2 + // [0] *main::sprite_ptr#0 = (char)sprite/$40 -- _deref_pbuc1=vbuc2 lda #$ff&sprite/$40 sta sprite_ptr // main::@return diff --git a/src/test/ref/cast-not-needed.sym b/src/test/ref/cast-not-needed.sym index a28a14200..7ddef6689 100644 --- a/src/test/ref/cast-not-needed.sym +++ b/src/test/ref/cast-not-needed.sym @@ -1,6 +1,6 @@ -constant byte* SCREEN = (byte*) 17408 +__constant char *SCREEN = (char *) 17408 void main() -byte* main::sprite_ptr -constant byte* main::sprite_ptr#0 sprite_ptr = SCREEN+$378 -constant byte* sprite = (byte*) 20480 +char *main::sprite_ptr +__constant char *main::sprite_ptr#0 = SCREEN+$378 // sprite_ptr +__constant char *sprite = (char *) 20480 diff --git a/src/test/ref/cast-precedence-problem.log b/src/test/ref/cast-precedence-problem.log index d1d98c818..971c330e9 100644 --- a/src/test/ref/cast-precedence-problem.log +++ b/src/test/ref/cast-precedence-problem.log @@ -9,7 +9,7 @@ void main() main: scope:[main] from __start main::sumw#0 = main::min + main::max main::$1 = main::sumw#0 >> 1 - main::$7 = (byte)main::$1 + main::$7 = (char)main::$1 main::midw#0 = main::$7 + 1 main::SCREEN[0] = main::midw#0 main::sumb#0 = main::min + main::max @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@1 main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,22 +42,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -word~ main::$1 -byte~ main::$4 -bool~ main::$6 -byte~ main::$7 -constant byte* main::BG_COLOR = (byte*)$d021 -constant byte* main::SCREEN = (byte*)$400 -constant byte main::max = $c8 -byte main::midb -byte main::midb#0 -byte main::midw -byte main::midw#0 -constant byte main::min = $a -byte main::sumb -byte main::sumb#0 -word main::sumw -word main::sumw#0 +unsigned int main::$1 +char main::$4 +bool main::$6 +char main::$7 +__constant char *main::BG_COLOR = (char *)$d021 +__constant char *main::SCREEN = (char *)$400 +__constant char main::max = $c8 +char main::midb +char main::midb#0 +char main::midw +char main::midw#0 +__constant char main::min = $a +char main::sumb +char main::sumb#0 +unsigned int main::sumw +unsigned int main::sumw#0 Adding number conversion cast (unumber) 1 in main::$1 = main::sumw#0 >> 1 Adding number conversion cast (unumber) 1 in main::midw#0 = main::$7 + 1 @@ -73,8 +73,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::BG_COLOR = (unumber)5 Inlining cast *main::BG_COLOR = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -86,16 +86,16 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 5 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$6 [10] if(main::SCREEN[0]==main::SCREEN[1]) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -119,7 +119,7 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$1 = main::sumw#0>>1 Constant main::$4 = main::sumb#0>>1 Successful SSA optimization Pass2ConstantIdentification -Constant main::$7 = (byte)main::$1 +Constant main::$7 = (char)main::$1 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [0] main::midw#0 = main::$7 + 1 Constant right-side identified [2] main::midb#0 = main::$4 + 1 @@ -129,7 +129,7 @@ Constant main::midb#0 = main::$4+1 Successful SSA optimization Pass2ConstantIdentification Constant inlined main::$4 = main::sumb#0>>1 Constant inlined main::$1 = main::sumw#0>>1 -Constant inlined main::$7 = (byte)main::sumw#0>>1 +Constant inlined main::$7 = (char)main::sumw#0>>1 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+1) @@ -160,10 +160,10 @@ main::@1: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::midb -byte main::midw -byte main::sumb -word main::sumw +char main::midb +char main::midw +char main::sumb +unsigned int main::sumw Initial phi equivalence classes Complete equivalence classes @@ -248,18 +248,18 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::BG_COLOR = (byte*) 53281 -constant byte* main::SCREEN = (byte*) 1024 -constant byte main::max = $c8 -byte main::midb -constant byte main::midb#0 midb = main::sumb#0>>1+1 -byte main::midw -constant byte main::midw#0 midw = (byte)main::sumw#0>>1+1 -constant byte main::min = $a -byte main::sumb -constant byte main::sumb#0 sumb = main::min+main::max -word main::sumw -constant word main::sumw#0 sumw = main::min+main::max +__constant char *main::BG_COLOR = (char *) 53281 +__constant char *main::SCREEN = (char *) 1024 +__constant char main::max = $c8 +char main::midb +__constant char main::midb#0 = main::sumb#0>>1+1 // midb +char main::midw +__constant char main::midw#0 = (char)main::sumw#0>>1+1 // midw +__constant char main::min = $a +char main::sumb +__constant char main::sumb#0 = main::min+main::max // sumb +unsigned int main::sumw +__constant unsigned int main::sumw#0 = main::min+main::max // sumw diff --git a/src/test/ref/cast-precedence-problem.sym b/src/test/ref/cast-precedence-problem.sym index ab67c8508..4fcf346c9 100644 --- a/src/test/ref/cast-precedence-problem.sym +++ b/src/test/ref/cast-precedence-problem.sym @@ -1,14 +1,14 @@ void main() -constant byte* main::BG_COLOR = (byte*) 53281 -constant byte* main::SCREEN = (byte*) 1024 -constant byte main::max = $c8 -byte main::midb -constant byte main::midb#0 midb = main::sumb#0>>1+1 -byte main::midw -constant byte main::midw#0 midw = (byte)main::sumw#0>>1+1 -constant byte main::min = $a -byte main::sumb -constant byte main::sumb#0 sumb = main::min+main::max -word main::sumw -constant word main::sumw#0 sumw = main::min+main::max +__constant char *main::BG_COLOR = (char *) 53281 +__constant char *main::SCREEN = (char *) 1024 +__constant char main::max = $c8 +char main::midb +__constant char main::midb#0 = main::sumb#0>>1+1 // midb +char main::midw +__constant char main::midw#0 = (char)main::sumw#0>>1+1 // midw +__constant char main::min = $a +char main::sumb +__constant char main::sumb#0 = main::min+main::max // sumb +unsigned int main::sumw +__constant unsigned int main::sumw#0 = main::min+main::max // sumw diff --git a/src/test/ref/casting-negative.asm b/src/test/ref/casting-negative.asm index e49bf3de6..a17a6e50b 100644 --- a/src/test/ref/casting-negative.asm +++ b/src/test/ref/casting-negative.asm @@ -90,7 +90,7 @@ main: { jmp __b1 } // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $14 @@ -234,7 +234,7 @@ clrscr: { iny jmp __b3 } -// test_casting(signed word zp(3) signed_short_value) +// void test_casting(__zp(3) int signed_short_value) test_casting: { .label signed_short_value = 3 // printf("%d\n", signed_short_value) @@ -253,7 +253,7 @@ test_casting: { } .segment Code // Print a signed integer using a specific format -// printf_sint(signed word zp(3) value) +// void printf_sint(__zp(3) int value, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_sint: { .label value = 3 // printf_buffer.sign = 0 @@ -287,7 +287,7 @@ printf_sint: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(5) s) +// void cputs(__zp(5) const char *s) cputs: { .label s = 5 __b1: @@ -312,7 +312,7 @@ cputs: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp(3) value, byte* zp($18) buffer) +// void utoa(__zp(3) unsigned int value, __zp($18) char *buffer, char radix) utoa: { .const max_digits = 5 .label digit_value = $16 @@ -385,7 +385,7 @@ utoa: { } // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // if(buffer.sign) @@ -405,7 +405,7 @@ printf_number_buffer: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -439,7 +439,7 @@ cputc: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($18) buffer, word zp(3) value, word zp($16) sub) +// __zp(3) unsigned int utoa_append(__zp($18) char *buffer, __zp(3) unsigned int value, __zp($16) unsigned int sub) utoa_append: { .label buffer = $18 .label value = 3 @@ -567,7 +567,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(8) destination, void* zp($18) source) +// void * memcpy(__zp(8) void *destination, __zp($18) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = 8 @@ -609,7 +609,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(8) str, byte register(X) c) +// void * memset(__zp(8) void *str, __register(X) char c, unsigned int num) memset: { .label end = $18 .label dst = 8 diff --git a/src/test/ref/casting-negative.cfg b/src/test/ref/casting-negative.cfg index ca5300c81..af2249738 100644 --- a/src/test/ref/casting-negative.cfg +++ b/src/test/ref/casting-negative.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -29,7 +29,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -38,7 +38,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main main::@2 [18] main::signed_char_value#2 = phi( main/-5, main::@2/main::signed_char_value#1 ) @@ -50,10 +50,10 @@ main::@return: scope:[main] from main::@1 main::@2: scope:[main] from main::@1 [21] main::signed_char_value#1 = ++ main::signed_char_value#2 [22] test_casting::signed_short_value#0 = main::signed_char_value#1 - [23] call test_casting + [23] call test_casting to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [24] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -66,7 +66,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [27] conio_cursor_x = gotoxy::x#2 [28] conio_cursor_y = gotoxy::y#4 - [29] gotoxy::$7 = (word)gotoxy::y#4 + [29] gotoxy::$7 = (unsigned int)gotoxy::y#4 [30] gotoxy::$8 = gotoxy::$7 << 2 [31] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [32] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -113,42 +113,42 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [53] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void test_casting(signed word test_casting::signed_short_value) +void test_casting(int signed_short_value) test_casting: scope:[test_casting] from main::@2 [54] printf_sint::value#1 = test_casting::signed_short_value#0 - [55] call printf_sint + [55] call printf_sint to:test_casting::@1 test_casting::@1: scope:[test_casting] from test_casting [56] phi() - [57] call cputs + [57] call cputs to:test_casting::@return test_casting::@return: scope:[test_casting] from test_casting::@1 [58] return to:@return -void printf_sint(signed word printf_sint::value , byte printf_sint::format_min_length , byte printf_sint::format_justify_left , byte printf_sint::format_sign_always , byte printf_sint::format_zero_padding , byte printf_sint::format_upper_case , byte printf_sint::format_radix) +void printf_sint(int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from test_casting - [59] *((byte*)&printf_buffer) = 0 + [59] *((char *)&printf_buffer) = 0 [60] if(printf_sint::value#1<0) goto printf_sint::@1 to:printf_sint::@2 printf_sint::@1: scope:[printf_sint] from printf_sint [61] printf_sint::value#0 = - printf_sint::value#1 - [62] *((byte*)&printf_buffer) = '-' + [62] *((char *)&printf_buffer) = '-' to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint printf_sint::@1 [63] printf_sint::value#4 = phi( printf_sint::@1/printf_sint::value#0, printf_sint/printf_sint::value#1 ) - [64] utoa::value#1 = (word)printf_sint::value#4 - [65] call utoa + [64] utoa::value#1 = (unsigned int)printf_sint::value#4 + [65] call utoa to:printf_sint::@3 printf_sint::@3: scope:[printf_sint] from printf_sint::@2 - [66] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) - [67] call printf_number_buffer + [66] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [67] call printf_number_buffer to:printf_sint::@return printf_sint::@return: scope:[printf_sint] from printf_sint::@3 [68] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_number_buffer::@2 test_casting::@1 [69] cputs::s#4 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_digits#0, test_casting::@1/test_casting::s ) to:cputs::@1 @@ -163,22 +163,22 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [75] cputc::c#0 = cputs::c#1 - [76] call cputc + [76] call cputc to:cputs::@1 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_sint::@2 [77] phi() to:utoa::@1 utoa::@1: scope:[utoa] from utoa utoa::@4 - [78] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [78] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [78] utoa::started#2 = phi( utoa::@4/utoa::started#4, utoa/0 ) [78] utoa::value#2 = phi( utoa::@4/utoa::value#6, utoa/utoa::value#1 ) [78] utoa::digit#2 = phi( utoa::@4/utoa::digit#1, utoa/0 ) [79] if(utoa::digit#2= utoa::digit_value#0 utoa::$7 = utoa::started#2 || utoa::$6 @@ -522,7 +522,7 @@ utoa::@11: scope:[utoa] from utoa::@10 utoa::@12: scope:[utoa] from utoa::@10 utoa::buffer#7 = phi( utoa::@10/utoa::buffer#11 ) utoa::value#3 = phi( utoa::@10/utoa::value#5 ) - utoa::$11 = (byte)utoa::value#3 + utoa::$11 = (char)utoa::value#3 *utoa::buffer#7 = DIGITS[utoa::$11] utoa::buffer#3 = ++ utoa::buffer#7 *utoa::buffer#3 = 0 @@ -546,7 +546,7 @@ utoa::@14: scope:[utoa] from utoa::@11 utoa_append::buffer#0 = utoa::buffer#8 utoa_append::value#0 = utoa::value#4 utoa_append::sub#0 = utoa::digit_value#1 - call utoa_append + call utoa_append utoa_append::return#0 = utoa_append::return#2 to:utoa::@15 utoa::@15: scope:[utoa] from utoa::@14 @@ -561,7 +561,7 @@ utoa::@15: scope:[utoa] from utoa::@14 utoa::started#1 = 1 to:utoa::@13 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@14 utoa_append::buffer#3 = phi( utoa::@14/utoa_append::buffer#0 ) utoa_append::sub#3 = phi( utoa::@14/utoa_append::sub#0 ) @@ -597,7 +597,7 @@ utoa_append::@return: scope:[utoa_append] from utoa_append::@3 return to:@return -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_padding::pad#5 = phi( printf_number_buffer::@10/printf_padding::pad#1, printf_number_buffer::@12/printf_padding::pad#2, printf_number_buffer::@8/printf_padding::pad#0 ) printf_padding::length#4 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) @@ -615,7 +615,7 @@ printf_padding::@2: scope:[printf_padding] from printf_padding::@1 printf_padding::i#4 = phi( printf_padding::@1/printf_padding::i#2 ) printf_padding::pad#3 = phi( printf_padding::@1/printf_padding::pad#4 ) cputc::c#1 = printf_padding::pad#3 - call cputc + call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 printf_padding::pad#6 = phi( printf_padding::@2/printf_padding::pad#3 ) @@ -627,7 +627,7 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 return to:@return -void printf_sint(signed word printf_sint::value , byte printf_sint::format_min_length , byte printf_sint::format_justify_left , byte printf_sint::format_sign_always , byte printf_sint::format_zero_padding , byte printf_sint::format_upper_case , byte printf_sint::format_radix) +void printf_sint(int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from test_casting printf_sint::format_upper_case#6 = phi( test_casting/printf_sint::format_upper_case#0 ) printf_sint::format_zero_padding#6 = phi( test_casting/printf_sint::format_zero_padding#0 ) @@ -636,7 +636,7 @@ printf_sint: scope:[printf_sint] from test_casting printf_sint::format_radix#6 = phi( test_casting/printf_sint::format_radix#0 ) printf_sint::format_sign_always#3 = phi( test_casting/printf_sint::format_sign_always#0 ) printf_sint::value#2 = phi( test_casting/printf_sint::value#1 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 printf_sint::$0 = printf_sint::value#2 < 0 if(printf_sint::$0) goto printf_sint::@1 to:printf_sint::@3 @@ -650,7 +650,7 @@ printf_sint::@1: scope:[printf_sint] from printf_sint printf_sint::value#3 = phi( printf_sint/printf_sint::value#2 ) printf_sint::$4 = - printf_sint::value#3 printf_sint::value#0 = printf_sint::$4 - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' to:printf_sint::@2 printf_sint::@3: scope:[printf_sint] from printf_sint printf_sint::format_upper_case#4 = phi( printf_sint/printf_sint::format_upper_case#6 ) @@ -672,7 +672,7 @@ printf_sint::@4: scope:[printf_sint] from printf_sint::@3 printf_sint::format_min_length#5 = phi( printf_sint::@3/printf_sint::format_min_length#4 ) printf_sint::format_radix#5 = phi( printf_sint::@3/printf_sint::format_radix#4 ) printf_sint::value#6 = phi( printf_sint::@3/printf_sint::value#5 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint::@1 printf_sint::@3 printf_sint::@4 printf_sint::format_upper_case#2 = phi( printf_sint::@1/printf_sint::format_upper_case#3, printf_sint::@3/printf_sint::format_upper_case#4, printf_sint::@4/printf_sint::format_upper_case#5 ) @@ -682,11 +682,11 @@ printf_sint::@2: scope:[printf_sint] from printf_sint::@1 printf_sint::@3 print printf_sint::format_min_length#2 = phi( printf_sint::@1/printf_sint::format_min_length#3, printf_sint::@3/printf_sint::format_min_length#4, printf_sint::@4/printf_sint::format_min_length#5 ) printf_sint::format_radix#1 = phi( printf_sint::@1/printf_sint::format_radix#3, printf_sint::@3/printf_sint::format_radix#4, printf_sint::@4/printf_sint::format_radix#5 ) printf_sint::value#4 = phi( printf_sint::@1/printf_sint::value#0, printf_sint::@3/printf_sint::value#5, printf_sint::@4/printf_sint::value#6 ) - printf_sint::uvalue#0 = (word)printf_sint::value#4 + printf_sint::uvalue#0 = (unsigned int)printf_sint::value#4 utoa::value#1 = printf_sint::uvalue#0 - utoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS utoa::radix#0 = printf_sint::format_radix#1 - call utoa + call utoa to:printf_sint::@5 printf_sint::@5: scope:[printf_sint] from printf_sint::@2 printf_sint::format_radix#2 = phi( printf_sint::@2/printf_sint::format_radix#1 ) @@ -695,15 +695,15 @@ printf_sint::@5: scope:[printf_sint] from printf_sint::@2 printf_sint::format_sign_always#2 = phi( printf_sint::@2/printf_sint::format_sign_always#4 ) printf_sint::format_justify_left#1 = phi( printf_sint::@2/printf_sint::format_justify_left#2 ) printf_sint::format_min_length#1 = phi( printf_sint::@2/printf_sint::format_min_length#2 ) - printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) + printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_number_buffer::format_min_length#0 = printf_sint::format_min_length#1 printf_number_buffer::format_justify_left#0 = printf_sint::format_justify_left#1 printf_number_buffer::format_sign_always#0 = printf_sint::format_sign_always#2 printf_number_buffer::format_zero_padding#0 = printf_sint::format_zero_padding#1 printf_number_buffer::format_upper_case#0 = printf_sint::format_upper_case#1 printf_number_buffer::format_radix#0 = printf_sint::format_radix#2 - call printf_number_buffer + call printf_number_buffer to:printf_sint::@6 printf_sint::@6: scope:[printf_sint] from printf_sint::@5 to:printf_sint::@return @@ -711,7 +711,7 @@ printf_sint::@return: scope:[printf_sint] from printf_sint::@6 return to:@return -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_sint::@5 printf_number_buffer::format_upper_case#10 = phi( printf_sint::@5/printf_number_buffer::format_upper_case#0 ) printf_number_buffer::buffer_sign#7 = phi( printf_sint::@5/printf_number_buffer::buffer_sign#0 ) @@ -748,7 +748,7 @@ printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#4 = phi( printf_number_buffer/printf_number_buffer::buffer_sign#7 ) printf_number_buffer::buffer_digits#1 = phi( printf_number_buffer/printf_number_buffer::buffer_digits#4 ) strlen::str#1 = printf_number_buffer::buffer_digits#1 - call strlen + call strlen strlen::return#2 = strlen::return#1 to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@6 @@ -760,7 +760,7 @@ printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::buffer_sign#1 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_sign#4 ) strlen::return#4 = phi( printf_number_buffer::@6/strlen::return#2 ) printf_number_buffer::$19 = strlen::return#4 - printf_number_buffer::len#0 = (signed byte)printf_number_buffer::$19 + printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#1 printf_number_buffer::$20 = ! printf_number_buffer::$29 if(printf_number_buffer::$20) goto printf_number_buffer::@13 @@ -773,7 +773,7 @@ printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_justify_left#4 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#7, printf_number_buffer::@7/printf_number_buffer::format_justify_left#8 ) printf_number_buffer::len#2 = phi( printf_number_buffer::@15/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) printf_number_buffer::format_min_length#2 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#3, printf_number_buffer::@7/printf_number_buffer::format_min_length#4 ) - printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#2 + printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 printf_number_buffer::$21 = printf_number_buffer::$25 - printf_number_buffer::len#2 printf_number_buffer::padding#1 = printf_number_buffer::$21 printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0 @@ -817,8 +817,8 @@ printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#10 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#5 ) printf_number_buffer::padding#4 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3 ) printf_padding::pad#0 = ' ' - printf_padding::length#0 = (byte)printf_number_buffer::padding#4 - call printf_padding + printf_padding::length#0 = (char)printf_number_buffer::padding#4 + call printf_padding to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@8 printf_number_buffer::format_justify_left#18 = phi( printf_number_buffer::@8/printf_number_buffer::format_justify_left#20 ) @@ -846,7 +846,7 @@ printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#13 = phi( printf_number_buffer::@2/printf_number_buffer::format_zero_padding#8 ) printf_number_buffer::buffer_sign#3 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_sign#2 ) cputc::c#2 = printf_number_buffer::buffer_sign#3 - call cputc + call cputc to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@9 printf_number_buffer::format_justify_left#15 = phi( printf_number_buffer::@9/printf_number_buffer::format_justify_left#19 ) @@ -872,8 +872,8 @@ printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_upper_case#6 = phi( printf_number_buffer::@3/printf_number_buffer::format_upper_case#3 ) printf_number_buffer::padding#6 = phi( printf_number_buffer::@3/printf_number_buffer::padding#5 ) printf_padding::pad#1 = '0' - printf_padding::length#1 = (byte)printf_number_buffer::padding#6 - call printf_padding + printf_padding::length#1 = (char)printf_number_buffer::padding#6 + call printf_padding to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::padding#16 = phi( printf_number_buffer::@10/printf_number_buffer::padding#6 ) @@ -888,7 +888,7 @@ printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#9 = phi( printf_number_buffer::@20/printf_number_buffer::format_zero_padding#14, printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#2 = phi( printf_number_buffer::@20/printf_number_buffer::buffer_digits#5, printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) cputs::s#1 = printf_number_buffer::buffer_digits#2 - call cputs + call cputs to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@5 printf_number_buffer::padding#7 = phi( printf_number_buffer::@5/printf_number_buffer::padding#11 ) @@ -907,7 +907,7 @@ printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_zero_padding#19 = phi( printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#3 = phi( printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) strupr::str#0 = printf_number_buffer::buffer_digits#3 - call strupr + call strupr strupr::return#2 = strupr::return#1 to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@11 @@ -919,8 +919,8 @@ printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::padding#8 = phi( printf_number_buffer::@19/printf_number_buffer::padding#7 ) printf_padding::pad#2 = ' ' - printf_padding::length#2 = (byte)printf_number_buffer::padding#8 - call printf_padding + printf_padding::length#2 = (char)printf_number_buffer::padding#8 + call printf_padding to:printf_number_buffer::@21 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@12 to:printf_number_buffer::@return @@ -928,7 +928,7 @@ printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_ return to:@return -void test_casting(signed word test_casting::signed_short_value) +void test_casting(int signed_short_value) test_casting: scope:[test_casting] from main::@2 test_casting::signed_short_value#1 = phi( main::@2/test_casting::signed_short_value#0 ) printf_sint::value#1 = test_casting::signed_short_value#1 @@ -938,11 +938,11 @@ test_casting: scope:[test_casting] from main::@2 printf_sint::format_zero_padding#0 = 0 printf_sint::format_upper_case#0 = 0 printf_sint::format_radix#0 = DECIMAL - call printf_sint + call printf_sint to:test_casting::@1 test_casting::@1: scope:[test_casting] from test_casting cputs::s#2 = test_casting::s - call cputs + call cputs to:test_casting::@2 test_casting::@2: scope:[test_casting] from test_casting::@1 to:test_casting::@return @@ -952,7 +952,7 @@ test_casting::@return: scope:[test_casting] from test_casting::@2 void main() main: scope:[main] from __start::@1 - call clrscr + call clrscr to:main::@3 main::@3: scope:[main] from main main::signed_char_value#0 = -5 @@ -966,7 +966,7 @@ main::@2: scope:[main] from main::@1 main::signed_char_value#3 = phi( main::@1/main::signed_char_value#2 ) main::signed_char_value#1 = ++ main::signed_char_value#3 test_casting::signed_short_value#0 = main::signed_char_value#1 - call test_casting + call test_casting to:main::@4 main::@4: scope:[main] from main::@2 main::signed_char_value#4 = phi( main::@2/main::signed_char_value#1 ) @@ -985,12 +985,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -999,663 +999,663 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte DECIMAL = $a -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant const byte LIGHT_BLUE = $e -constant byte OCTAL = 8 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } -constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } -constant byte SIZEOF_WORD = 2 +__constant char BINARY = 2 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char DECIMAL = $a +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant const char LIGHT_BLUE = $e +__constant char OCTAL = 8 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } +__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void clrscr() -bool~ clrscr::$0 -bool~ clrscr::$1 -byte clrscr::c -byte clrscr::c#0 -byte clrscr::c#1 -byte clrscr::c#2 -byte clrscr::c#3 -byte clrscr::l -byte clrscr::l#0 -byte clrscr::l#1 -byte clrscr::l#2 -byte clrscr::l#3 -byte clrscr::l#4 -byte clrscr::l#5 -byte clrscr::l#6 -byte* clrscr::line_cols -byte* clrscr::line_cols#0 -byte* clrscr::line_cols#1 -byte* clrscr::line_cols#2 -byte* clrscr::line_cols#3 -byte* clrscr::line_cols#4 -byte* clrscr::line_cols#5 -byte* clrscr::line_cols#6 -byte* clrscr::line_text -byte* clrscr::line_text#0 -byte* clrscr::line_text#1 -byte* clrscr::line_text#2 -byte* clrscr::line_text#3 -byte* clrscr::line_text#4 -byte* clrscr::line_text#5 -byte* clrscr::line_text#6 +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 -byte cputc::c#4 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 +char cputc::c#4 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 -const byte* cputs::s#6 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 +const char *cputs::s#6 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -bool~ main::$1 -signed byte main::signed_char_value -signed byte main::signed_char_value#0 -signed byte main::signed_char_value#1 -signed byte main::signed_char_value#2 -signed byte main::signed_char_value#3 -signed byte main::signed_char_value#4 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -struct printf_buffer_number printf_buffer loadstore = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) -bool~ printf_number_buffer::$0 -bool~ printf_number_buffer::$1 -bool~ printf_number_buffer::$10 -bool~ printf_number_buffer::$12 -bool~ printf_number_buffer::$14 -bool~ printf_number_buffer::$15 -bool~ printf_number_buffer::$16 -bool~ printf_number_buffer::$17 -word~ printf_number_buffer::$19 -bool~ printf_number_buffer::$2 -bool~ printf_number_buffer::$20 -signed byte~ printf_number_buffer::$21 -bool~ printf_number_buffer::$22 -bool~ printf_number_buffer::$23 -signed byte~ printf_number_buffer::$25 -bool~ printf_number_buffer::$26 -bool~ printf_number_buffer::$27 -bool~ printf_number_buffer::$28 -bool~ printf_number_buffer::$29 -bool~ printf_number_buffer::$3 -bool~ printf_number_buffer::$30 -bool~ printf_number_buffer::$31 -bool~ printf_number_buffer::$32 -bool~ printf_number_buffer::$4 -bool~ printf_number_buffer::$5 -bool~ printf_number_buffer::$7 -bool~ printf_number_buffer::$9 +bool main::$1 +signed char main::signed_char_value +signed char main::signed_char_value#0 +signed char main::signed_char_value#1 +signed char main::signed_char_value#2 +signed char main::signed_char_value#3 +signed char main::signed_char_value#4 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +__loadstore struct printf_buffer_number printf_buffer = {} +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +bool printf_number_buffer::$0 +bool printf_number_buffer::$1 +bool printf_number_buffer::$10 +bool printf_number_buffer::$12 +bool printf_number_buffer::$14 +bool printf_number_buffer::$15 +bool printf_number_buffer::$16 +bool printf_number_buffer::$17 +unsigned int printf_number_buffer::$19 +bool printf_number_buffer::$2 +bool printf_number_buffer::$20 +signed char printf_number_buffer::$21 +bool printf_number_buffer::$22 +bool printf_number_buffer::$23 +signed char printf_number_buffer::$25 +bool printf_number_buffer::$26 +bool printf_number_buffer::$27 +bool printf_number_buffer::$28 +bool printf_number_buffer::$29 +bool printf_number_buffer::$3 +bool printf_number_buffer::$30 +bool printf_number_buffer::$31 +bool printf_number_buffer::$32 +bool printf_number_buffer::$4 +bool printf_number_buffer::$5 +bool printf_number_buffer::$7 +bool printf_number_buffer::$9 struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -byte* printf_number_buffer::buffer_digits#0 -byte* printf_number_buffer::buffer_digits#1 -byte* printf_number_buffer::buffer_digits#10 -byte* printf_number_buffer::buffer_digits#11 -byte* printf_number_buffer::buffer_digits#12 -byte* printf_number_buffer::buffer_digits#13 -byte* printf_number_buffer::buffer_digits#14 -byte* printf_number_buffer::buffer_digits#15 -byte* printf_number_buffer::buffer_digits#16 -byte* printf_number_buffer::buffer_digits#17 -byte* printf_number_buffer::buffer_digits#18 -byte* printf_number_buffer::buffer_digits#19 -byte* printf_number_buffer::buffer_digits#2 -byte* printf_number_buffer::buffer_digits#3 -byte* printf_number_buffer::buffer_digits#4 -byte* printf_number_buffer::buffer_digits#5 -byte* printf_number_buffer::buffer_digits#6 -byte* printf_number_buffer::buffer_digits#7 -byte* printf_number_buffer::buffer_digits#8 -byte* printf_number_buffer::buffer_digits#9 -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 -byte printf_number_buffer::buffer_sign#1 -byte printf_number_buffer::buffer_sign#10 -byte printf_number_buffer::buffer_sign#11 -byte printf_number_buffer::buffer_sign#2 -byte printf_number_buffer::buffer_sign#3 -byte printf_number_buffer::buffer_sign#4 -byte printf_number_buffer::buffer_sign#5 -byte printf_number_buffer::buffer_sign#6 -byte printf_number_buffer::buffer_sign#7 -byte printf_number_buffer::buffer_sign#8 -byte printf_number_buffer::buffer_sign#9 +char *printf_number_buffer::buffer_digits +char *printf_number_buffer::buffer_digits#0 +char *printf_number_buffer::buffer_digits#1 +char *printf_number_buffer::buffer_digits#10 +char *printf_number_buffer::buffer_digits#11 +char *printf_number_buffer::buffer_digits#12 +char *printf_number_buffer::buffer_digits#13 +char *printf_number_buffer::buffer_digits#14 +char *printf_number_buffer::buffer_digits#15 +char *printf_number_buffer::buffer_digits#16 +char *printf_number_buffer::buffer_digits#17 +char *printf_number_buffer::buffer_digits#18 +char *printf_number_buffer::buffer_digits#19 +char *printf_number_buffer::buffer_digits#2 +char *printf_number_buffer::buffer_digits#3 +char *printf_number_buffer::buffer_digits#4 +char *printf_number_buffer::buffer_digits#5 +char *printf_number_buffer::buffer_digits#6 +char *printf_number_buffer::buffer_digits#7 +char *printf_number_buffer::buffer_digits#8 +char *printf_number_buffer::buffer_digits#9 +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 +char printf_number_buffer::buffer_sign#1 +char printf_number_buffer::buffer_sign#10 +char printf_number_buffer::buffer_sign#11 +char printf_number_buffer::buffer_sign#2 +char printf_number_buffer::buffer_sign#3 +char printf_number_buffer::buffer_sign#4 +char printf_number_buffer::buffer_sign#5 +char printf_number_buffer::buffer_sign#6 +char printf_number_buffer::buffer_sign#7 +char printf_number_buffer::buffer_sign#8 +char printf_number_buffer::buffer_sign#9 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_justify_left#0 -byte printf_number_buffer::format_justify_left#1 -byte printf_number_buffer::format_justify_left#10 -byte printf_number_buffer::format_justify_left#11 -byte printf_number_buffer::format_justify_left#12 -byte printf_number_buffer::format_justify_left#13 -byte printf_number_buffer::format_justify_left#14 -byte printf_number_buffer::format_justify_left#15 -byte printf_number_buffer::format_justify_left#16 -byte printf_number_buffer::format_justify_left#17 -byte printf_number_buffer::format_justify_left#18 -byte printf_number_buffer::format_justify_left#19 -byte printf_number_buffer::format_justify_left#2 -byte printf_number_buffer::format_justify_left#20 -byte printf_number_buffer::format_justify_left#3 -byte printf_number_buffer::format_justify_left#4 -byte printf_number_buffer::format_justify_left#5 -byte printf_number_buffer::format_justify_left#6 -byte printf_number_buffer::format_justify_left#7 -byte printf_number_buffer::format_justify_left#8 -byte printf_number_buffer::format_justify_left#9 -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_min_length#0 -byte printf_number_buffer::format_min_length#1 -byte printf_number_buffer::format_min_length#2 -byte printf_number_buffer::format_min_length#3 -byte printf_number_buffer::format_min_length#4 -byte printf_number_buffer::format_min_length#5 -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_radix#0 -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_sign_always#0 -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_upper_case#0 -byte printf_number_buffer::format_upper_case#1 -byte printf_number_buffer::format_upper_case#10 -byte printf_number_buffer::format_upper_case#11 -byte printf_number_buffer::format_upper_case#12 -byte printf_number_buffer::format_upper_case#13 -byte printf_number_buffer::format_upper_case#14 -byte printf_number_buffer::format_upper_case#15 -byte printf_number_buffer::format_upper_case#16 -byte printf_number_buffer::format_upper_case#2 -byte printf_number_buffer::format_upper_case#3 -byte printf_number_buffer::format_upper_case#4 -byte printf_number_buffer::format_upper_case#5 -byte printf_number_buffer::format_upper_case#6 -byte printf_number_buffer::format_upper_case#7 -byte printf_number_buffer::format_upper_case#8 -byte printf_number_buffer::format_upper_case#9 -byte printf_number_buffer::format_zero_padding -byte printf_number_buffer::format_zero_padding#0 -byte printf_number_buffer::format_zero_padding#1 -byte printf_number_buffer::format_zero_padding#10 -byte printf_number_buffer::format_zero_padding#11 -byte printf_number_buffer::format_zero_padding#12 -byte printf_number_buffer::format_zero_padding#13 -byte printf_number_buffer::format_zero_padding#14 -byte printf_number_buffer::format_zero_padding#15 -byte printf_number_buffer::format_zero_padding#16 -byte printf_number_buffer::format_zero_padding#17 -byte printf_number_buffer::format_zero_padding#18 -byte printf_number_buffer::format_zero_padding#19 -byte printf_number_buffer::format_zero_padding#2 -byte printf_number_buffer::format_zero_padding#20 -byte printf_number_buffer::format_zero_padding#3 -byte printf_number_buffer::format_zero_padding#4 -byte printf_number_buffer::format_zero_padding#5 -byte printf_number_buffer::format_zero_padding#6 -byte printf_number_buffer::format_zero_padding#7 -byte printf_number_buffer::format_zero_padding#8 -byte printf_number_buffer::format_zero_padding#9 -signed byte printf_number_buffer::len -signed byte printf_number_buffer::len#0 -signed byte printf_number_buffer::len#1 -signed byte printf_number_buffer::len#2 -signed byte printf_number_buffer::len#3 -signed byte printf_number_buffer::padding -signed byte printf_number_buffer::padding#0 -signed byte printf_number_buffer::padding#1 -signed byte printf_number_buffer::padding#10 -signed byte printf_number_buffer::padding#11 -signed byte printf_number_buffer::padding#12 -signed byte printf_number_buffer::padding#13 -signed byte printf_number_buffer::padding#14 -signed byte printf_number_buffer::padding#15 -signed byte printf_number_buffer::padding#16 -signed byte printf_number_buffer::padding#17 -signed byte printf_number_buffer::padding#2 -signed byte printf_number_buffer::padding#3 -signed byte printf_number_buffer::padding#4 -signed byte printf_number_buffer::padding#5 -signed byte printf_number_buffer::padding#6 -signed byte printf_number_buffer::padding#7 -signed byte printf_number_buffer::padding#8 -signed byte printf_number_buffer::padding#9 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -bool~ printf_padding::$0 -byte printf_padding::i -byte printf_padding::i#0 -byte printf_padding::i#1 -byte printf_padding::i#2 -byte printf_padding::i#3 -byte printf_padding::i#4 -byte printf_padding::length -byte printf_padding::length#0 -byte printf_padding::length#1 -byte printf_padding::length#2 -byte printf_padding::length#3 -byte printf_padding::length#4 -byte printf_padding::length#5 -byte printf_padding::length#6 -byte printf_padding::pad -byte printf_padding::pad#0 -byte printf_padding::pad#1 -byte printf_padding::pad#2 -byte printf_padding::pad#3 -byte printf_padding::pad#4 -byte printf_padding::pad#5 -byte printf_padding::pad#6 -void printf_sint(signed word printf_sint::value , byte printf_sint::format_min_length , byte printf_sint::format_justify_left , byte printf_sint::format_sign_always , byte printf_sint::format_zero_padding , byte printf_sint::format_upper_case , byte printf_sint::format_radix) -bool~ printf_sint::$0 -bool~ printf_sint::$3 -signed word~ printf_sint::$4 -bool~ printf_sint::$5 +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_justify_left#0 +char printf_number_buffer::format_justify_left#1 +char printf_number_buffer::format_justify_left#10 +char printf_number_buffer::format_justify_left#11 +char printf_number_buffer::format_justify_left#12 +char printf_number_buffer::format_justify_left#13 +char printf_number_buffer::format_justify_left#14 +char printf_number_buffer::format_justify_left#15 +char printf_number_buffer::format_justify_left#16 +char printf_number_buffer::format_justify_left#17 +char printf_number_buffer::format_justify_left#18 +char printf_number_buffer::format_justify_left#19 +char printf_number_buffer::format_justify_left#2 +char printf_number_buffer::format_justify_left#20 +char printf_number_buffer::format_justify_left#3 +char printf_number_buffer::format_justify_left#4 +char printf_number_buffer::format_justify_left#5 +char printf_number_buffer::format_justify_left#6 +char printf_number_buffer::format_justify_left#7 +char printf_number_buffer::format_justify_left#8 +char printf_number_buffer::format_justify_left#9 +char printf_number_buffer::format_min_length +char printf_number_buffer::format_min_length#0 +char printf_number_buffer::format_min_length#1 +char printf_number_buffer::format_min_length#2 +char printf_number_buffer::format_min_length#3 +char printf_number_buffer::format_min_length#4 +char printf_number_buffer::format_min_length#5 +char printf_number_buffer::format_radix +char printf_number_buffer::format_radix#0 +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_sign_always#0 +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_upper_case#0 +char printf_number_buffer::format_upper_case#1 +char printf_number_buffer::format_upper_case#10 +char printf_number_buffer::format_upper_case#11 +char printf_number_buffer::format_upper_case#12 +char printf_number_buffer::format_upper_case#13 +char printf_number_buffer::format_upper_case#14 +char printf_number_buffer::format_upper_case#15 +char printf_number_buffer::format_upper_case#16 +char printf_number_buffer::format_upper_case#2 +char printf_number_buffer::format_upper_case#3 +char printf_number_buffer::format_upper_case#4 +char printf_number_buffer::format_upper_case#5 +char printf_number_buffer::format_upper_case#6 +char printf_number_buffer::format_upper_case#7 +char printf_number_buffer::format_upper_case#8 +char printf_number_buffer::format_upper_case#9 +char printf_number_buffer::format_zero_padding +char printf_number_buffer::format_zero_padding#0 +char printf_number_buffer::format_zero_padding#1 +char printf_number_buffer::format_zero_padding#10 +char printf_number_buffer::format_zero_padding#11 +char printf_number_buffer::format_zero_padding#12 +char printf_number_buffer::format_zero_padding#13 +char printf_number_buffer::format_zero_padding#14 +char printf_number_buffer::format_zero_padding#15 +char printf_number_buffer::format_zero_padding#16 +char printf_number_buffer::format_zero_padding#17 +char printf_number_buffer::format_zero_padding#18 +char printf_number_buffer::format_zero_padding#19 +char printf_number_buffer::format_zero_padding#2 +char printf_number_buffer::format_zero_padding#20 +char printf_number_buffer::format_zero_padding#3 +char printf_number_buffer::format_zero_padding#4 +char printf_number_buffer::format_zero_padding#5 +char printf_number_buffer::format_zero_padding#6 +char printf_number_buffer::format_zero_padding#7 +char printf_number_buffer::format_zero_padding#8 +char printf_number_buffer::format_zero_padding#9 +signed char printf_number_buffer::len +signed char printf_number_buffer::len#0 +signed char printf_number_buffer::len#1 +signed char printf_number_buffer::len#2 +signed char printf_number_buffer::len#3 +signed char printf_number_buffer::padding +signed char printf_number_buffer::padding#0 +signed char printf_number_buffer::padding#1 +signed char printf_number_buffer::padding#10 +signed char printf_number_buffer::padding#11 +signed char printf_number_buffer::padding#12 +signed char printf_number_buffer::padding#13 +signed char printf_number_buffer::padding#14 +signed char printf_number_buffer::padding#15 +signed char printf_number_buffer::padding#16 +signed char printf_number_buffer::padding#17 +signed char printf_number_buffer::padding#2 +signed char printf_number_buffer::padding#3 +signed char printf_number_buffer::padding#4 +signed char printf_number_buffer::padding#5 +signed char printf_number_buffer::padding#6 +signed char printf_number_buffer::padding#7 +signed char printf_number_buffer::padding#8 +signed char printf_number_buffer::padding#9 +void printf_padding(char pad , char length) +bool printf_padding::$0 +char printf_padding::i +char printf_padding::i#0 +char printf_padding::i#1 +char printf_padding::i#2 +char printf_padding::i#3 +char printf_padding::i#4 +char printf_padding::length +char printf_padding::length#0 +char printf_padding::length#1 +char printf_padding::length#2 +char printf_padding::length#3 +char printf_padding::length#4 +char printf_padding::length#5 +char printf_padding::length#6 +char printf_padding::pad +char printf_padding::pad#0 +char printf_padding::pad#1 +char printf_padding::pad#2 +char printf_padding::pad#3 +char printf_padding::pad#4 +char printf_padding::pad#5 +char printf_padding::pad#6 +void printf_sint(int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +bool printf_sint::$0 +bool printf_sint::$3 +int printf_sint::$4 +bool printf_sint::$5 struct printf_format_number printf_sint::format -byte printf_sint::format_justify_left -byte printf_sint::format_justify_left#0 -byte printf_sint::format_justify_left#1 -byte printf_sint::format_justify_left#2 -byte printf_sint::format_justify_left#3 -byte printf_sint::format_justify_left#4 -byte printf_sint::format_justify_left#5 -byte printf_sint::format_justify_left#6 -byte printf_sint::format_min_length -byte printf_sint::format_min_length#0 -byte printf_sint::format_min_length#1 -byte printf_sint::format_min_length#2 -byte printf_sint::format_min_length#3 -byte printf_sint::format_min_length#4 -byte printf_sint::format_min_length#5 -byte printf_sint::format_min_length#6 -byte printf_sint::format_radix -byte printf_sint::format_radix#0 -byte printf_sint::format_radix#1 -byte printf_sint::format_radix#2 -byte printf_sint::format_radix#3 -byte printf_sint::format_radix#4 -byte printf_sint::format_radix#5 -byte printf_sint::format_radix#6 -byte printf_sint::format_sign_always -byte printf_sint::format_sign_always#0 -byte printf_sint::format_sign_always#1 -byte printf_sint::format_sign_always#2 -byte printf_sint::format_sign_always#3 -byte printf_sint::format_sign_always#4 -byte printf_sint::format_sign_always#5 -byte printf_sint::format_sign_always#6 -byte printf_sint::format_upper_case -byte printf_sint::format_upper_case#0 -byte printf_sint::format_upper_case#1 -byte printf_sint::format_upper_case#2 -byte printf_sint::format_upper_case#3 -byte printf_sint::format_upper_case#4 -byte printf_sint::format_upper_case#5 -byte printf_sint::format_upper_case#6 -byte printf_sint::format_zero_padding -byte printf_sint::format_zero_padding#0 -byte printf_sint::format_zero_padding#1 -byte printf_sint::format_zero_padding#2 -byte printf_sint::format_zero_padding#3 -byte printf_sint::format_zero_padding#4 -byte printf_sint::format_zero_padding#5 -byte printf_sint::format_zero_padding#6 -word printf_sint::uvalue -word printf_sint::uvalue#0 -signed word printf_sint::value -signed word printf_sint::value#0 -signed word printf_sint::value#1 -signed word printf_sint::value#2 -signed word printf_sint::value#3 -signed word printf_sint::value#4 -signed word printf_sint::value#5 -signed word printf_sint::value#6 -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 -byte* strupr(byte* strupr::str) -byte~ strupr::$0 -bool~ strupr::$1 -byte* strupr::return -byte* strupr::return#0 -byte* strupr::return#1 -byte* strupr::return#2 -byte* strupr::return#3 -byte* strupr::src -byte* strupr::src#0 -byte* strupr::src#1 -byte* strupr::src#2 -byte* strupr::src#3 -byte* strupr::src#4 -byte* strupr::str -byte* strupr::str#0 -byte* strupr::str#1 -byte* strupr::str#2 -byte* strupr::str#3 -byte* strupr::str#4 -byte* strupr::str#5 -void test_casting(signed word test_casting::signed_short_value) -constant byte* test_casting::s[2] = " +char printf_sint::format_justify_left +char printf_sint::format_justify_left#0 +char printf_sint::format_justify_left#1 +char printf_sint::format_justify_left#2 +char printf_sint::format_justify_left#3 +char printf_sint::format_justify_left#4 +char printf_sint::format_justify_left#5 +char printf_sint::format_justify_left#6 +char printf_sint::format_min_length +char printf_sint::format_min_length#0 +char printf_sint::format_min_length#1 +char printf_sint::format_min_length#2 +char printf_sint::format_min_length#3 +char printf_sint::format_min_length#4 +char printf_sint::format_min_length#5 +char printf_sint::format_min_length#6 +char printf_sint::format_radix +char printf_sint::format_radix#0 +char printf_sint::format_radix#1 +char printf_sint::format_radix#2 +char printf_sint::format_radix#3 +char printf_sint::format_radix#4 +char printf_sint::format_radix#5 +char printf_sint::format_radix#6 +char printf_sint::format_sign_always +char printf_sint::format_sign_always#0 +char printf_sint::format_sign_always#1 +char printf_sint::format_sign_always#2 +char printf_sint::format_sign_always#3 +char printf_sint::format_sign_always#4 +char printf_sint::format_sign_always#5 +char printf_sint::format_sign_always#6 +char printf_sint::format_upper_case +char printf_sint::format_upper_case#0 +char printf_sint::format_upper_case#1 +char printf_sint::format_upper_case#2 +char printf_sint::format_upper_case#3 +char printf_sint::format_upper_case#4 +char printf_sint::format_upper_case#5 +char printf_sint::format_upper_case#6 +char printf_sint::format_zero_padding +char printf_sint::format_zero_padding#0 +char printf_sint::format_zero_padding#1 +char printf_sint::format_zero_padding#2 +char printf_sint::format_zero_padding#3 +char printf_sint::format_zero_padding#4 +char printf_sint::format_zero_padding#5 +char printf_sint::format_zero_padding#6 +unsigned int printf_sint::uvalue +unsigned int printf_sint::uvalue#0 +int printf_sint::value +int printf_sint::value#0 +int printf_sint::value#1 +int printf_sint::value#2 +int printf_sint::value#3 +int printf_sint::value#4 +int printf_sint::value#5 +int printf_sint::value#6 +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 +char * strupr(char *str) +char strupr::$0 +bool strupr::$1 +char *strupr::return +char *strupr::return#0 +char *strupr::return#1 +char *strupr::return#2 +char *strupr::return#3 +char *strupr::src +char *strupr::src#0 +char *strupr::src#1 +char *strupr::src#2 +char *strupr::src#3 +char *strupr::src#4 +char *strupr::str +char *strupr::str#0 +char *strupr::str#1 +char *strupr::str#2 +char *strupr::str#3 +char *strupr::str#4 +char *strupr::str#5 +void test_casting(int signed_short_value) +__constant char test_casting::s[2] = " " -signed word test_casting::signed_short_value -signed word test_casting::signed_short_value#0 -signed word test_casting::signed_short_value#1 -byte toupper(byte toupper::ch) -bool~ toupper::$0 -bool~ toupper::$1 -bool~ toupper::$2 -byte~ toupper::$3 -byte toupper::ch -byte toupper::ch#0 -byte toupper::ch#1 -byte toupper::ch#2 -byte toupper::ch#3 -byte toupper::return -byte toupper::return#0 -byte toupper::return#1 -byte toupper::return#2 -byte toupper::return#3 -byte toupper::return#4 -byte toupper::return#5 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -bool~ utoa::$0 -bool~ utoa::$1 -byte~ utoa::$10 -byte~ utoa::$11 -bool~ utoa::$2 -bool~ utoa::$3 -number~ utoa::$4 -bool~ utoa::$5 -bool~ utoa::$6 -bool~ utoa::$7 -bool~ utoa::$8 -word~ utoa::$9 -byte* utoa::buffer -byte* utoa::buffer#0 -byte* utoa::buffer#1 -byte* utoa::buffer#10 -byte* utoa::buffer#11 -byte* utoa::buffer#12 -byte* utoa::buffer#13 -byte* utoa::buffer#14 -byte* utoa::buffer#15 -byte* utoa::buffer#16 -byte* utoa::buffer#17 -byte* utoa::buffer#18 -byte* utoa::buffer#19 -byte* utoa::buffer#2 -byte* utoa::buffer#20 -byte* utoa::buffer#21 -byte* utoa::buffer#3 -byte* utoa::buffer#4 -byte* utoa::buffer#5 -byte* utoa::buffer#6 -byte* utoa::buffer#7 -byte* utoa::buffer#8 -byte* utoa::buffer#9 -byte utoa::digit -byte utoa::digit#0 -byte utoa::digit#1 -byte utoa::digit#2 -byte utoa::digit#3 -byte utoa::digit#4 -byte utoa::digit#5 -byte utoa::digit#6 -word utoa::digit_value -word utoa::digit_value#0 -word utoa::digit_value#1 -word* utoa::digit_values -word* utoa::digit_values#0 -word* utoa::digit_values#1 -word* utoa::digit_values#10 -word* utoa::digit_values#2 -word* utoa::digit_values#3 -word* utoa::digit_values#4 -word* utoa::digit_values#5 -word* utoa::digit_values#6 -word* utoa::digit_values#7 -word* utoa::digit_values#8 -word* utoa::digit_values#9 -byte utoa::max_digits -byte utoa::max_digits#0 -byte utoa::max_digits#1 -byte utoa::max_digits#10 -byte utoa::max_digits#2 -byte utoa::max_digits#3 -byte utoa::max_digits#4 -byte utoa::max_digits#5 -byte utoa::max_digits#6 -byte utoa::max_digits#7 -byte utoa::max_digits#8 -byte utoa::max_digits#9 -byte utoa::radix -byte utoa::radix#0 -byte utoa::radix#1 -byte utoa::radix#2 -byte utoa::radix#3 -byte utoa::radix#4 -byte utoa::started -byte utoa::started#0 -byte utoa::started#1 -byte utoa::started#2 -byte utoa::started#3 -byte utoa::started#4 -word utoa::value -word utoa::value#0 -word utoa::value#1 -word utoa::value#10 -word utoa::value#11 -word utoa::value#12 -word utoa::value#13 -word utoa::value#14 -word utoa::value#15 -word utoa::value#2 -word utoa::value#3 -word utoa::value#4 -word utoa::value#5 -word utoa::value#6 -word utoa::value#7 -word utoa::value#8 -word utoa::value#9 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -bool~ utoa_append::$0 -byte* utoa_append::buffer -byte* utoa_append::buffer#0 -byte* utoa_append::buffer#1 -byte* utoa_append::buffer#2 -byte* utoa_append::buffer#3 -byte* utoa_append::buffer#4 -byte utoa_append::digit -byte utoa_append::digit#0 -byte utoa_append::digit#1 -byte utoa_append::digit#2 -byte utoa_append::digit#3 -byte utoa_append::digit#4 -word utoa_append::return -word utoa_append::return#0 -word utoa_append::return#1 -word utoa_append::return#2 -word utoa_append::return#3 -word utoa_append::return#4 -word utoa_append::sub -word utoa_append::sub#0 -word utoa_append::sub#1 -word utoa_append::sub#2 -word utoa_append::sub#3 -word utoa_append::value -word utoa_append::value#0 -word utoa_append::value#1 -word utoa_append::value#2 -word utoa_append::value#3 -word utoa_append::value#4 -word utoa_append::value#5 +int test_casting::signed_short_value +int test_casting::signed_short_value#0 +int test_casting::signed_short_value#1 +char toupper(char ch) +bool toupper::$0 +bool toupper::$1 +bool toupper::$2 +char toupper::$3 +char toupper::ch +char toupper::ch#0 +char toupper::ch#1 +char toupper::ch#2 +char toupper::ch#3 +char toupper::return +char toupper::return#0 +char toupper::return#1 +char toupper::return#2 +char toupper::return#3 +char toupper::return#4 +char toupper::return#5 +void utoa(unsigned int value , char *buffer , char radix) +bool utoa::$0 +bool utoa::$1 +char utoa::$10 +char utoa::$11 +bool utoa::$2 +bool utoa::$3 +number utoa::$4 +bool utoa::$5 +bool utoa::$6 +bool utoa::$7 +bool utoa::$8 +unsigned int utoa::$9 +char *utoa::buffer +char *utoa::buffer#0 +char *utoa::buffer#1 +char *utoa::buffer#10 +char *utoa::buffer#11 +char *utoa::buffer#12 +char *utoa::buffer#13 +char *utoa::buffer#14 +char *utoa::buffer#15 +char *utoa::buffer#16 +char *utoa::buffer#17 +char *utoa::buffer#18 +char *utoa::buffer#19 +char *utoa::buffer#2 +char *utoa::buffer#20 +char *utoa::buffer#21 +char *utoa::buffer#3 +char *utoa::buffer#4 +char *utoa::buffer#5 +char *utoa::buffer#6 +char *utoa::buffer#7 +char *utoa::buffer#8 +char *utoa::buffer#9 +char utoa::digit +char utoa::digit#0 +char utoa::digit#1 +char utoa::digit#2 +char utoa::digit#3 +char utoa::digit#4 +char utoa::digit#5 +char utoa::digit#6 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 +unsigned int utoa::digit_value#1 +unsigned int *utoa::digit_values +unsigned int *utoa::digit_values#0 +unsigned int *utoa::digit_values#1 +unsigned int *utoa::digit_values#10 +unsigned int *utoa::digit_values#2 +unsigned int *utoa::digit_values#3 +unsigned int *utoa::digit_values#4 +unsigned int *utoa::digit_values#5 +unsigned int *utoa::digit_values#6 +unsigned int *utoa::digit_values#7 +unsigned int *utoa::digit_values#8 +unsigned int *utoa::digit_values#9 +char utoa::max_digits +char utoa::max_digits#0 +char utoa::max_digits#1 +char utoa::max_digits#10 +char utoa::max_digits#2 +char utoa::max_digits#3 +char utoa::max_digits#4 +char utoa::max_digits#5 +char utoa::max_digits#6 +char utoa::max_digits#7 +char utoa::max_digits#8 +char utoa::max_digits#9 +char utoa::radix +char utoa::radix#0 +char utoa::radix#1 +char utoa::radix#2 +char utoa::radix#3 +char utoa::radix#4 +char utoa::started +char utoa::started#0 +char utoa::started#1 +char utoa::started#2 +char utoa::started#3 +char utoa::started#4 +unsigned int utoa::value +unsigned int utoa::value#0 +unsigned int utoa::value#1 +unsigned int utoa::value#10 +unsigned int utoa::value#11 +unsigned int utoa::value#12 +unsigned int utoa::value#13 +unsigned int utoa::value#14 +unsigned int utoa::value#15 +unsigned int utoa::value#2 +unsigned int utoa::value#3 +unsigned int utoa::value#4 +unsigned int utoa::value#5 +unsigned int utoa::value#6 +unsigned int utoa::value#7 +unsigned int utoa::value#8 +unsigned int utoa::value#9 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +bool utoa_append::$0 +char *utoa_append::buffer +char *utoa_append::buffer#0 +char *utoa_append::buffer#1 +char *utoa_append::buffer#2 +char *utoa_append::buffer#3 +char *utoa_append::buffer#4 +char utoa_append::digit +char utoa_append::digit#0 +char utoa_append::digit#1 +char utoa_append::digit#2 +char utoa_append::digit#3 +char utoa_append::digit#4 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 +unsigned int utoa_append::return#1 +unsigned int utoa_append::return#2 +unsigned int utoa_append::return#3 +unsigned int utoa_append::return#4 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 +unsigned int utoa_append::sub#1 +unsigned int utoa_append::sub#2 +unsigned int utoa_append::sub#3 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 +unsigned int utoa_append::value#1 +unsigned int utoa_append::value#2 +unsigned int utoa_append::value#3 +unsigned int utoa_append::value#4 +unsigned int utoa_append::value#5 Adding number conversion cast (unumber) $19 in clrscr::$0 = clrscr::l#2 < $19 Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 @@ -1678,15 +1678,15 @@ Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#2 Adding number conversion cast (unumber) 0 in strupr::$1 = 0 != *strupr::src#2 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -1704,7 +1704,7 @@ Adding number conversion cast (unumber) 1 in utoa::$4 = utoa::max_digits#5 - 1 Adding number conversion cast (unumber) utoa::$4 in utoa::$4 = utoa::max_digits#5 - (unumber)1 Adding number conversion cast (unumber) 0 in *utoa::buffer#3 = 0 Adding number conversion cast (unumber) 1 in utoa::started#1 = 1 -Adding number conversion cast (unumber) 0 in *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 +Adding number conversion cast (unumber) 0 in *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 Adding number conversion cast (snumber) 0 in printf_sint::$0 = printf_sint::value#2 < 0 Adding number conversion cast (unumber) 0 in printf_sint::$5 = 0 != printf_sint::format_sign_always#1 Adding number conversion cast (unumber) 0 in printf_number_buffer::$26 = 0 != printf_number_buffer::format_min_length#1 @@ -1723,9 +1723,9 @@ Inlining cast conio_cursor_y = (unumber)0 Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast memcpy::num#0 = (unumber)$19*$28-$28 Inlining cast memcpy::num#1 = (unumber)$19*$28-$28 Inlining cast memset::num#0 = (unumber)$28 @@ -1741,12 +1741,12 @@ Inlining cast utoa::max_digits#4 = (unumber)$10 Inlining cast *utoa::buffer#2 = (unumber)0 Inlining cast *utoa::buffer#3 = (unumber)0 Inlining cast utoa::started#1 = (unumber)1 -Inlining cast *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = (unumber)0 +Inlining cast *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = (unumber)0 Inlining cast printf_number_buffer::padding#2 = (snumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -1802,62 +1802,62 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in utoa::$4 = utoa::max_digits#5 - 1 +Inferred type updated to char in utoa::$4 = utoa::max_digits#5 - 1 Inversing boolean not [26] gotoxy::$1 = gotoxy::y#3 <= $19 from [25] gotoxy::$0 = gotoxy::y#3 > $19 Inversing boolean not [30] gotoxy::$3 = gotoxy::x#3 < $28 from [29] gotoxy::$2 = gotoxy::x#3 >= $28 Inversing boolean not [55] cputc::$2 = conio_cursor_x != $28 from [54] cputc::$1 = conio_cursor_x == $28 @@ -2124,23 +2124,23 @@ Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 Constant strlen::len#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 Constant gotoxy::x#2 = 0 Constant conio_c64_init::line#1 = (unumber)$19-1 Constant utoa::max_digits#0 = 0 -Constant utoa::digit_values#0 = (word*) 0 +Constant utoa::digit_values#0 = (unsigned int *) 0 Constant utoa::max_digits#1 = 5 Constant utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant utoa::max_digits#2 = 4 @@ -2154,8 +2154,8 @@ Constant utoa::digit#0 = 0 Constant utoa::started#1 = 1 Constant utoa_append::digit#0 = 0 Constant printf_padding::i#0 = 0 -Constant utoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant printf_number_buffer::padding#0 = 0 Constant printf_number_buffer::padding#2 = 0 Constant printf_padding::pad#0 = ' ' @@ -2184,7 +2184,7 @@ Constant strlen::str#1 = printf_number_buffer::buffer_digits#0 Constant cputs::s#1 = printf_number_buffer::buffer_digits#0 Constant strupr::str#0 = printf_number_buffer::buffer_digits#0 Successful SSA optimization Pass2ConstantIdentification -Constant printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#0 +Constant printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 Constant strupr::return#2 = strupr::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [121] if(0!=conio_scroll_enable) goto cscroll::@3 @@ -2197,12 +2197,12 @@ if() condition always true - replacing block destination [258] if(0==printf_numb if() condition always true - replacing block destination [291] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5 Successful SSA optimization Pass2ConstantIfs Rewriting conditional comparison [23] if(gotoxy::y#3<=$19) goto gotoxy::@1 -Simplifying constant evaluating to zero (signed byte)printf_number_buffer::format_min_length#0 in +Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)&printf_buffer in [231] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 -Simplifying expression containing zero (byte*)&printf_buffer in [235] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' -Simplifying expression containing zero (byte*)&printf_buffer in [238] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' -Simplifying expression containing zero (byte*)&printf_buffer in [245] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (char *)&printf_buffer in [231] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 +Simplifying expression containing zero (char *)&printf_buffer in [235] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' +Simplifying expression containing zero (char *)&printf_buffer in [238] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' +Simplifying expression containing zero (char *)&printf_buffer in [245] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) Simplifying expression containing zero printf_number_buffer::len#2 in [275] printf_number_buffer::padding#1 = printf_number_buffer::$25 - printf_number_buffer::len#2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating variable strlen::str#2 from unused block strlen::@1 @@ -2337,13 +2337,13 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -2371,14 +2371,14 @@ Negating conditional jump and destination [176] if(0!=printf_number_buffer::form Negating conditional jump and destination [181] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [91] utoa::$4 = utoa::max_digits#1 - 1 -Constant right-side identified [140] printf_padding::length#0 = (byte)printf_number_buffer::padding#0 -Constant right-side identified [146] printf_padding::length#1 = (byte)printf_number_buffer::padding#0 -Constant right-side identified [152] printf_padding::length#2 = (byte)printf_number_buffer::padding#0 +Constant right-side identified [140] printf_padding::length#0 = (char)printf_number_buffer::padding#0 +Constant right-side identified [146] printf_padding::length#1 = (char)printf_number_buffer::padding#0 +Constant right-side identified [152] printf_padding::length#2 = (char)printf_number_buffer::padding#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::$4 = utoa::max_digits#1-1 -Constant printf_padding::length#0 = (byte)printf_number_buffer::padding#0 -Constant printf_padding::length#1 = (byte)printf_number_buffer::padding#0 -Constant printf_padding::length#2 = (byte)printf_number_buffer::padding#0 +Constant printf_padding::length#0 = (char)printf_number_buffer::padding#0 +Constant printf_padding::length#1 = (char)printf_number_buffer::padding#0 +Constant printf_padding::length#2 = (char)printf_number_buffer::padding#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [18] if(gotoxy::x#2<$28) goto gotoxy::@2 if() condition always false - eliminating [138] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2 @@ -2390,9 +2390,9 @@ if() condition always false - eliminating [178] if(0!=printf_number_buffer::padd if() condition always false - eliminating [180] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12 if() condition always false - eliminating [181] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in Successful SSA optimization PassNSimplifyConstantZero Eliminating variable printf_padding::length#4 from unused block printf_padding Eliminating variable printf_padding::pad#5 from unused block printf_padding @@ -2433,15 +2433,15 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [50] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [51] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [52] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [62] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [64] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [115] printf_sint::uvalue#0 = (word)printf_sint::value#4 keeping printf_sint::value#4 +Inlining Noop Cast [50] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [51] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [52] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [62] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [64] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [115] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#4 keeping printf_sint::value#4 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[20] gotoxy::line_offset#0 = gotoxy::$7 * $28 -Rewriting multiplication to use shift [88] utoa::$10 = utoa::digit#2 * SIZEOF_WORD +Rewriting multiplication to use shift [88] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings clrscr::line_text#0 Inlining constant with var siblings clrscr::line_cols#0 @@ -2474,28 +2474,28 @@ Constant inlined utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant inlined cputs::s#1 = printf_number_buffer::buffer_digits#0 Constant inlined cputs::s#2 = test_casting::s Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 Constant inlined clrscr::l#0 = 0 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined utoa::digit#0 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined main::signed_char_value#0 = -5 Constant inlined utoa::$4 = utoa::max_digits#1-1 Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN Constant inlined utoa::started#1 = 1 Constant inlined utoa::started#0 = 0 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 -Constant inlined utoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 +Constant inlined utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined gotoxy::y#0 = 0 Constant inlined memset::c#0 = ' ' Constant inlined memset::c#1 = LIGHT_BLUE @@ -2508,30 +2508,30 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [60] if($28<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -2705,11 +2705,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -2726,7 +2726,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -2735,7 +2735,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main main::@2 [18] main::signed_char_value#2 = phi( main/-5, main::@2/main::signed_char_value#1 ) @@ -2747,10 +2747,10 @@ main::@return: scope:[main] from main::@1 main::@2: scope:[main] from main::@1 [21] main::signed_char_value#1 = ++ main::signed_char_value#2 [22] test_casting::signed_short_value#0 = main::signed_char_value#1 - [23] call test_casting + [23] call test_casting to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [24] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -2763,7 +2763,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [27] conio_cursor_x = gotoxy::x#2 [28] conio_cursor_y = gotoxy::y#4 - [29] gotoxy::$7 = (word)gotoxy::y#4 + [29] gotoxy::$7 = (unsigned int)gotoxy::y#4 [30] gotoxy::$8 = gotoxy::$7 << 2 [31] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [32] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -2810,42 +2810,42 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [53] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void test_casting(signed word test_casting::signed_short_value) +void test_casting(int signed_short_value) test_casting: scope:[test_casting] from main::@2 [54] printf_sint::value#1 = test_casting::signed_short_value#0 - [55] call printf_sint + [55] call printf_sint to:test_casting::@1 test_casting::@1: scope:[test_casting] from test_casting [56] phi() - [57] call cputs + [57] call cputs to:test_casting::@return test_casting::@return: scope:[test_casting] from test_casting::@1 [58] return to:@return -void printf_sint(signed word printf_sint::value , byte printf_sint::format_min_length , byte printf_sint::format_justify_left , byte printf_sint::format_sign_always , byte printf_sint::format_zero_padding , byte printf_sint::format_upper_case , byte printf_sint::format_radix) +void printf_sint(int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_sint: scope:[printf_sint] from test_casting - [59] *((byte*)&printf_buffer) = 0 + [59] *((char *)&printf_buffer) = 0 [60] if(printf_sint::value#1<0) goto printf_sint::@1 to:printf_sint::@2 printf_sint::@1: scope:[printf_sint] from printf_sint [61] printf_sint::value#0 = - printf_sint::value#1 - [62] *((byte*)&printf_buffer) = '-' + [62] *((char *)&printf_buffer) = '-' to:printf_sint::@2 printf_sint::@2: scope:[printf_sint] from printf_sint printf_sint::@1 [63] printf_sint::value#4 = phi( printf_sint::@1/printf_sint::value#0, printf_sint/printf_sint::value#1 ) - [64] utoa::value#1 = (word)printf_sint::value#4 - [65] call utoa + [64] utoa::value#1 = (unsigned int)printf_sint::value#4 + [65] call utoa to:printf_sint::@3 printf_sint::@3: scope:[printf_sint] from printf_sint::@2 - [66] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) - [67] call printf_number_buffer + [66] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [67] call printf_number_buffer to:printf_sint::@return printf_sint::@return: scope:[printf_sint] from printf_sint::@3 [68] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_number_buffer::@2 test_casting::@1 [69] cputs::s#4 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_digits#0, test_casting::@1/test_casting::s ) to:cputs::@1 @@ -2860,22 +2860,22 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [75] cputc::c#0 = cputs::c#1 - [76] call cputc + [76] call cputc to:cputs::@1 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_sint::@2 [77] phi() to:utoa::@1 utoa::@1: scope:[utoa] from utoa utoa::@4 - [78] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [78] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [78] utoa::started#2 = phi( utoa::@4/utoa::started#4, utoa/0 ) [78] utoa::value#2 = phi( utoa::@4/utoa::value#6, utoa/utoa::value#1 ) [78] utoa::digit#2 = phi( utoa::@4/utoa::digit#1, utoa/0 ) [79] if(utoa::digit#2COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -3719,7 +3719,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -3730,7 +3730,7 @@ conio_c64_init: { // main main: { .label signed_char_value = 2 - // [17] call clrscr + // [17] call clrscr // [38] phi from main to clrscr [phi:main->clrscr] clrscr_from_main: jsr clrscr @@ -3763,7 +3763,7 @@ main: { lda #$ff !: sta.z test_casting.signed_short_value+1 - // [23] call test_casting + // [23] call test_casting jsr test_casting // [18] phi from main::@2 to main::@1 [phi:main::@2->main::@1] __b1_from___b2: @@ -3772,7 +3772,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $14 @@ -3808,7 +3808,7 @@ gotoxy: { sta.z conio_cursor_x // [28] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [29] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [29] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -3971,18 +3971,18 @@ clrscr: { jmp __b3 } // test_casting -// test_casting(signed word zp(3) signed_short_value) +// void test_casting(__zp(3) int signed_short_value) test_casting: { .label signed_short_value = 3 // [54] printf_sint::value#1 = test_casting::signed_short_value#0 - // [55] call printf_sint + // [55] call printf_sint jsr printf_sint // [56] phi from test_casting to test_casting::@1 [phi:test_casting->test_casting::@1] __b1_from_test_casting: jmp __b1 // test_casting::@1 __b1: - // [57] call cputs + // [57] call cputs // [69] phi from test_casting::@1 to cputs [phi:test_casting::@1->cputs] cputs_from___b1: // [69] phi cputs::s#4 = test_casting::s [phi:test_casting::@1->cputs#0] -- pbuz1=pbuc1 @@ -4003,10 +4003,10 @@ test_casting: { .segment Code // printf_sint // Print a signed integer using a specific format -// printf_sint(signed word zp(3) value) +// void printf_sint(__zp(3) int value, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_sint: { .label value = 3 - // [59] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [59] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer @@ -4028,23 +4028,23 @@ printf_sint: { lda #0 sbc.z value+1 sta.z value+1 - // [62] *((byte*)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 + // [62] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer jmp __b2_from___b1 // printf_sint::@2 __b2: - // [64] utoa::value#1 = (word)printf_sint::value#4 - // [65] call utoa + // [64] utoa::value#1 = (unsigned int)printf_sint::value#4 + // [65] call utoa // [77] phi from printf_sint::@2 to utoa [phi:printf_sint::@2->utoa] utoa_from___b2: jsr utoa jmp __b3 // printf_sint::@3 __b3: - // [66] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [66] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [67] call printf_number_buffer + // [67] call printf_number_buffer // Print using format // [98] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] printf_number_buffer_from___b3: @@ -4057,7 +4057,7 @@ printf_sint: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(5) s) +// void cputs(__zp(5) const char *s) cputs: { .label s = 5 // [70] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -4086,7 +4086,7 @@ cputs: { // cputs::@2 __b2: // [75] cputc::c#0 = cputs::c#1 - // [76] call cputc + // [76] call cputc // [105] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] cputc_from___b2: // [105] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy @@ -4099,7 +4099,7 @@ cputs: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp(3) value, byte* zp($18) buffer) +// void utoa(__zp(3) unsigned int value, __zp($18) char *buffer, char radix) utoa: { .const max_digits = 5 .label digit_value = $16 @@ -4108,7 +4108,7 @@ utoa: { .label value = 3 // [78] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [78] phi utoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [78] phi utoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -4129,7 +4129,7 @@ utoa: { jmp __b3 // utoa::@3 __b3: - // [80] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [80] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [81] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -4197,7 +4197,7 @@ utoa: { // [91] utoa_append::buffer#0 = utoa::buffer#11 // [92] utoa_append::value#0 = utoa::value#2 // [93] utoa_append::sub#0 = utoa::digit_value#0 - // [94] call utoa_append + // [94] call utoa_append // [116] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append @@ -4222,7 +4222,7 @@ utoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS jmp __b1 @@ -4235,7 +4235,7 @@ printf_number_buffer: { // printf_number_buffer::@3 __b3: // [100] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [101] call cputc + // [101] call cputc // [105] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] cputc_from___b3: // [105] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy @@ -4246,7 +4246,7 @@ printf_number_buffer: { jmp __b2 // printf_number_buffer::@2 __b2: - // [103] call cputs + // [103] call cputs // [69] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] cputs_from___b2: // [69] phi cputs::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->cputs#0] -- pbuz1=pbuc1 @@ -4264,7 +4264,7 @@ printf_number_buffer: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [106] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -4290,7 +4290,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [112] call cputln + // [112] call cputln jsr cputln jmp __breturn // cputc::@return @@ -4302,7 +4302,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [115] call cputln + // [115] call cputln jsr cputln jmp __breturn } @@ -4315,7 +4315,7 @@ cputc: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($18) buffer, word zp(3) value, word zp($16) sub) +// __zp(3) unsigned int utoa_append(__zp($18) char *buffer, __zp(3) unsigned int value, __zp($16) unsigned int sub) utoa_append: { .label buffer = $18 .label value = 3 @@ -4392,7 +4392,7 @@ cputln: { sta.z conio_cursor_x // [126] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [127] call cscroll + // [127] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -4412,15 +4412,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [131] call memcpy + // [131] call memcpy // [142] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [142] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [142] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [142] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [142] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -4431,15 +4431,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [133] call memcpy + // [133] call memcpy // [142] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [142] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [142] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [142] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [142] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -4450,12 +4450,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [135] call memset + // [135] call memset // [152] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [152] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [152] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [152] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -4466,12 +4466,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [137] call memset + // [137] call memset // [152] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [152] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [152] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [152] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -4507,14 +4507,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(8) destination, void* zp($18) source) +// void * memcpy(__zp(8) void *destination, __zp($18) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = 8 .label src = $18 .label source = $18 .label destination = 8 - // [143] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [143] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -4522,8 +4522,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [144] memcpy::src#4 = (byte*)memcpy::source#2 - // [145] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [144] memcpy::src#4 = (char *)memcpy::source#2 + // [145] memcpy::dst#4 = (char *)memcpy::destination#2 // [146] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -4565,7 +4565,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(8) str, byte register(X) c) +// void * memset(__zp(8) void *str, __register(X) char c, unsigned int num) memset: { .label end = $18 .label dst = 8 @@ -4573,7 +4573,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [153] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [153] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -4581,7 +4581,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [154] memset::dst#4 = (byte*)memset::str#3 + // [154] memset::dst#4 = (char *)memset::str#3 // [155] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -4794,174 +4794,174 @@ Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:5 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:5 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:3 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:3 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:5 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:5 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:3 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:3 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:10 2.777777816666666E8 -byte conio_cursor_y loadstore zp[1]:11 4.571428574414286E9 -byte* conio_line_color loadstore zp[2]:14 3.2500000030735292E9 -byte* conio_line_text loadstore zp[2]:12 3.202898553753623E9 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2.00000002E8 -byte cputc::c#2 reg byte a 200002.0 -byte cputc::c#3 reg byte a 1.050050002E9 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:10 2.777777816666666E8 +__loadstore char conio_cursor_y // zp[1]:11 4.571428574414286E9 +__loadstore char *conio_line_color // zp[2]:14 3.2500000030735292E9 +__loadstore char *conio_line_text // zp[2]:12 3.202898553753623E9 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2.00000002E8 +char cputc::c#2 // reg byte a 200002.0 +char cputc::c#3 // reg byte a 1.050050002E9 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1.00000001E8 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:5 5.00000005E7 -const byte* cputs::s#3 s zp[2]:5 1.50500002E8 -const byte* cputs::s#4 s zp[2]:5 1000001.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1.00000001E8 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:5 5.00000005E7 +const char *cputs::s#3 // s zp[2]:5 1.50500002E8 +const char *cputs::s#4 // s zp[2]:5 1000001.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:20 202.0 -byte*~ gotoxy::$6 zp[2]:16 202.0 -word~ gotoxy::$7 zp[2]:16 151.5 -word~ gotoxy::$8 zp[2]:18 202.0 -word~ gotoxy::$9 zp[2]:16 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:16 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:20 202.0 +char *gotoxy::$6 // zp[2]:16 202.0 +unsigned int gotoxy::$7 // zp[2]:16 151.5 +unsigned int gotoxy::$8 // zp[2]:18 202.0 +unsigned int gotoxy::$9 // zp[2]:16 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:16 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -signed byte main::signed_char_value -signed byte main::signed_char_value#1 signed_char_value zp[1]:2 101.0 -signed byte main::signed_char_value#2 signed_char_value zp[1]:2 151.5 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:8 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:8 1.000000000000001E15 -byte* memcpy::dst#2 dst zp[2]:8 1.0003333333333348E15 -byte* memcpy::dst#4 dst zp[2]:8 2.000000000002E12 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:24 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:24 2.000000000000002E15 -byte* memcpy::src#2 src zp[2]:24 1.0002500000000012E15 -byte* memcpy::src#4 src zp[2]:24 1.000000000001E12 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:22 1.2512500000000025E14 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.42857142857143E14 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2.000000000000002E15 -byte* memset::dst#2 dst zp[2]:8 1.3336666666666685E15 -byte* memset::dst#4 dst zp[2]:8 2.000000000002E12 -byte* memset::end -byte* memset::end#0 end zp[2]:24 1.668333333333337E14 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:8 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +signed char main::signed_char_value +signed char main::signed_char_value#1 // signed_char_value zp[1]:2 101.0 +signed char main::signed_char_value#2 // signed_char_value zp[1]:2 151.5 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:8 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:8 1.000000000000001E15 +char *memcpy::dst#2 // dst zp[2]:8 1.0003333333333348E15 +char *memcpy::dst#4 // dst zp[2]:8 2.000000000002E12 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:24 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:24 2.000000000000002E15 +char *memcpy::src#2 // src zp[2]:24 1.0002500000000012E15 +char *memcpy::src#4 // src zp[2]:24 1.000000000001E12 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:22 1.2512500000000025E14 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.42857142857143E14 +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2.000000000000002E15 +char *memset::dst#2 // dst zp[2]:8 1.3336666666666685E15 +char *memset::dst#4 // dst zp[2]:8 2.000000000002E12 +char *memset::end +char *memset::end#0 // end zp[2]:24 1.668333333333337E14 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:8 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 70001.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 70001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_sint(signed word printf_sint::value , byte printf_sint::format_min_length , byte printf_sint::format_justify_left , byte printf_sint::format_sign_always , byte printf_sint::format_zero_padding , byte printf_sint::format_upper_case , byte printf_sint::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_sint(int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_sint::format -byte printf_sint::format_justify_left -byte printf_sint::format_min_length -byte printf_sint::format_radix -byte printf_sint::format_sign_always -byte printf_sint::format_upper_case -byte printf_sint::format_zero_padding -word printf_sint::uvalue -signed word printf_sint::value -signed word printf_sint::value#0 value zp[2]:3 10001.0 -signed word printf_sint::value#1 value zp[2]:3 10334.666666666666 -signed word printf_sint::value#4 value zp[2]:3 20002.0 -void test_casting(signed word test_casting::signed_short_value) -constant byte* test_casting::s[2] = " +char printf_sint::format_justify_left +char printf_sint::format_min_length +char printf_sint::format_radix +char printf_sint::format_sign_always +char printf_sint::format_upper_case +char printf_sint::format_zero_padding +unsigned int printf_sint::uvalue +int printf_sint::value +int printf_sint::value#0 // value zp[2]:3 10001.0 +int printf_sint::value#1 // value zp[2]:3 10334.666666666666 +int printf_sint::value#4 // value zp[2]:3 20002.0 +void test_casting(int signed_short_value) +__constant char test_casting::s[2] = " " -signed word test_casting::signed_short_value -signed word test_casting::signed_short_value#0 signed_short_value zp[2]:3 1102.0 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 2.0000002E7 -byte~ utoa::$11 reg byte x 200002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:24 2871429.0 -byte* utoa::buffer#14 buffer zp[2]:24 1.50000015E7 -byte* utoa::buffer#3 buffer zp[2]:24 200002.0 -byte* utoa::buffer#4 buffer zp[2]:24 2.0000002E7 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:7 2.0000002E7 -byte utoa::digit#2 digit zp[1]:7 2857143.1428571427 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:22 6000000.6 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 5000000.5 -byte utoa::started#4 reg byte x 1.0000001E7 -word utoa::value -word utoa::value#0 value zp[2]:3 1.0000001E7 -word utoa::value#1 value zp[2]:3 55001.0 -word utoa::value#2 value zp[2]:3 5728572.142857142 -word utoa::value#6 value zp[2]:3 1.50000015E7 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:24 1.375000025E7 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.00000000001E11 -byte utoa_append::digit#2 reg byte x 1.000500000015E11 -word utoa_append::return -word utoa_append::return#0 return zp[2]:3 2.0000002E7 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:22 3.33350000005E10 -word utoa_append::value -word utoa_append::value#0 value zp[2]:3 3.6666667333333336E7 -word utoa_append::value#1 value zp[2]:3 2.00000000002E11 -word utoa_append::value#2 value zp[2]:3 5.001833333416667E10 +int test_casting::signed_short_value +int test_casting::signed_short_value#0 // signed_short_value zp[2]:3 1102.0 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 2.0000002E7 +char utoa::$11 // reg byte x 200002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:24 2871429.0 +char *utoa::buffer#14 // buffer zp[2]:24 1.50000015E7 +char *utoa::buffer#3 // buffer zp[2]:24 200002.0 +char *utoa::buffer#4 // buffer zp[2]:24 2.0000002E7 +char utoa::digit +char utoa::digit#1 // digit zp[1]:7 2.0000002E7 +char utoa::digit#2 // digit zp[1]:7 2857143.1428571427 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:22 6000000.6 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 5000000.5 +char utoa::started#4 // reg byte x 1.0000001E7 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:3 1.0000001E7 +unsigned int utoa::value#1 // value zp[2]:3 55001.0 +unsigned int utoa::value#2 // value zp[2]:3 5728572.142857142 +unsigned int utoa::value#6 // value zp[2]:3 1.50000015E7 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:24 1.375000025E7 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.00000000001E11 +char utoa_append::digit#2 // reg byte x 1.000500000015E11 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:3 2.0000002E7 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:22 3.33350000005E10 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:3 3.6666667333333336E7 +unsigned int utoa_append::value#1 // value zp[2]:3 2.00000000002E11 +unsigned int utoa_append::value#2 // value zp[2]:3 5.001833333416667E10 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[1]:2 [ main::signed_char_value#2 main::signed_char_value#1 ] @@ -5048,11 +5048,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -5082,7 +5082,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -5093,7 +5093,7 @@ conio_c64_init: { main: { .label signed_char_value = 2 // clrscr() - // [17] call clrscr + // [17] call clrscr // [38] phi from main to clrscr [phi:main->clrscr] jsr clrscr // [18] phi from main to main::@1 [phi:main->main::@1] @@ -5125,7 +5125,7 @@ main: { lda #$ff !: sta.z test_casting.signed_short_value+1 - // [23] call test_casting + // [23] call test_casting jsr test_casting // [18] phi from main::@2 to main::@1 [phi:main::@2->main::@1] // [18] phi main::signed_char_value#2 = main::signed_char_value#1 [phi:main::@2->main::@1#0] -- register_copy @@ -5133,7 +5133,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $14 @@ -5164,7 +5164,7 @@ gotoxy: { // [28] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [29] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [29] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -5331,17 +5331,17 @@ clrscr: { jmp __b3 } // test_casting -// test_casting(signed word zp(3) signed_short_value) +// void test_casting(__zp(3) int signed_short_value) test_casting: { .label signed_short_value = 3 // printf("%d\n", signed_short_value) // [54] printf_sint::value#1 = test_casting::signed_short_value#0 - // [55] call printf_sint + // [55] call printf_sint jsr printf_sint // [56] phi from test_casting to test_casting::@1 [phi:test_casting->test_casting::@1] // test_casting::@1 // printf("%d\n", signed_short_value) - // [57] call cputs + // [57] call cputs // [69] phi from test_casting::@1 to cputs [phi:test_casting::@1->cputs] // [69] phi cputs::s#4 = test_casting::s [phi:test_casting::@1->cputs#0] -- pbuz1=pbuc1 lda #utoa] jsr utoa // printf_sint::@3 // printf_number_buffer(printf_buffer, format) - // [66] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [66] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [67] call printf_number_buffer + // [67] call printf_number_buffer // Print using format // [98] phi from printf_sint::@3 to printf_number_buffer [phi:printf_sint::@3->printf_number_buffer] jsr printf_number_buffer @@ -5412,7 +5412,7 @@ printf_sint: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(5) s) +// void cputs(__zp(5) const char *s) cputs: { .label s = 5 // [70] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -5439,7 +5439,7 @@ cputs: { __b2: // cputc(c) // [75] cputc::c#0 = cputs::c#1 - // [76] call cputc + // [76] call cputc // [105] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] // [105] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy jsr cputc @@ -5451,7 +5451,7 @@ cputs: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp(3) value, byte* zp($18) buffer) +// void utoa(__zp(3) unsigned int value, __zp($18) char *buffer, char radix) utoa: { .const max_digits = 5 .label digit_value = $16 @@ -5459,7 +5459,7 @@ utoa: { .label digit = 7 .label value = 3 // [78] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - // [78] phi utoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [78] phi utoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -5479,7 +5479,7 @@ utoa: { bcc __b2 // utoa::@3 // *buffer++ = DIGITS[(char)value] - // [80] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [80] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [81] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -5546,7 +5546,7 @@ utoa: { // [91] utoa_append::buffer#0 = utoa::buffer#11 // [92] utoa_append::value#0 = utoa::value#2 // [93] utoa_append::sub#0 = utoa::digit_value#0 - // [94] call utoa_append + // [94] call utoa_append // [116] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) @@ -5570,7 +5570,7 @@ utoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // printf_number_buffer::@1 @@ -5581,7 +5581,7 @@ printf_number_buffer: { // printf_number_buffer::@3 // cputc(buffer.sign) // [100] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [101] call cputc + // [101] call cputc // [105] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] // [105] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy jsr cputc @@ -5589,7 +5589,7 @@ printf_number_buffer: { // printf_number_buffer::@2 __b2: // cputs(buffer.digits) - // [103] call cputs + // [103] call cputs // [69] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] // [69] phi cputs::s#4 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->cputs#0] -- pbuz1=pbuc1 lda #cputc::@3] // cputc::@3 // cputln() - // [112] call cputln + // [112] call cputln jsr cputln // cputc::@return __breturn: @@ -5641,7 +5641,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [115] call cputln + // [115] call cputln jsr cputln rts } @@ -5654,7 +5654,7 @@ cputc: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($18) buffer, word zp(3) value, word zp($16) sub) +// __zp(3) unsigned int utoa_append(__zp($18) char *buffer, __zp(3) unsigned int value, __zp($16) unsigned int sub) utoa_append: { .label buffer = $18 .label value = 3 @@ -5734,7 +5734,7 @@ cputln: { // [126] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [127] call cscroll + // [127] call cscroll jsr cscroll // cputln::@return // } @@ -5752,14 +5752,14 @@ cscroll: { // [130] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [131] call memcpy + // [131] call memcpy // [142] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [142] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [142] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [142] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [142] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -5768,14 +5768,14 @@ cscroll: { // [132] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [133] call memcpy + // [133] call memcpy // [142] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [142] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [142] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [142] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [142] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -5784,11 +5784,11 @@ cscroll: { // [134] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [135] call memset + // [135] call memset // [152] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [152] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [152] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [152] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -5797,11 +5797,11 @@ cscroll: { // [136] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [137] call memset + // [137] call memset // [152] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [152] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [152] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [152] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -5838,7 +5838,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(8) destination, void* zp($18) source) +// void * memcpy(__zp(8) void *destination, __zp($18) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = 8 @@ -5846,7 +5846,7 @@ memcpy: { .label source = $18 .label destination = 8 // char* src_end = (char*)source+num - // [143] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [143] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -5854,8 +5854,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [144] memcpy::src#4 = (byte*)memcpy::source#2 - // [145] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [144] memcpy::src#4 = (char *)memcpy::source#2 + // [145] memcpy::dst#4 = (char *)memcpy::destination#2 // [146] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [146] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [146] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -5895,14 +5895,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(8) str, byte register(X) c) +// void * memset(__zp(8) void *str, __register(X) char c, unsigned int num) memset: { .label end = $18 .label dst = 8 .label str = 8 // memset::@1 // char* end = (char*)str + num - // [153] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [153] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -5910,7 +5910,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [154] memset::dst#4 = (byte*)memset::str#3 + // [154] memset::dst#4 = (char *)memset::str#3 // [155] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [155] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/casting-negative.sym b/src/test/ref/casting-negative.sym index de580acdf..c9f5e43af 100644 --- a/src/test/ref/casting-negative.sym +++ b/src/test/ref/casting-negative.sym @@ -1,171 +1,171 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:5 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:5 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:3 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:3 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:5 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:5 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:3 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:3 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:10 2.777777816666666E8 -byte conio_cursor_y loadstore zp[1]:11 4.571428574414286E9 -byte* conio_line_color loadstore zp[2]:14 3.2500000030735292E9 -byte* conio_line_text loadstore zp[2]:12 3.202898553753623E9 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2.00000002E8 -byte cputc::c#2 reg byte a 200002.0 -byte cputc::c#3 reg byte a 1.050050002E9 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:10 2.777777816666666E8 +__loadstore char conio_cursor_y // zp[1]:11 4.571428574414286E9 +__loadstore char *conio_line_color // zp[2]:14 3.2500000030735292E9 +__loadstore char *conio_line_text // zp[2]:12 3.202898553753623E9 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2.00000002E8 +char cputc::c#2 // reg byte a 200002.0 +char cputc::c#3 // reg byte a 1.050050002E9 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1.00000001E8 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:5 5.00000005E7 -const byte* cputs::s#3 s zp[2]:5 1.50500002E8 -const byte* cputs::s#4 s zp[2]:5 1000001.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1.00000001E8 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:5 5.00000005E7 +const char *cputs::s#3 // s zp[2]:5 1.50500002E8 +const char *cputs::s#4 // s zp[2]:5 1000001.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:20 202.0 -byte*~ gotoxy::$6 zp[2]:16 202.0 -word~ gotoxy::$7 zp[2]:16 151.5 -word~ gotoxy::$8 zp[2]:18 202.0 -word~ gotoxy::$9 zp[2]:16 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:16 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:20 202.0 +char *gotoxy::$6 // zp[2]:16 202.0 +unsigned int gotoxy::$7 // zp[2]:16 151.5 +unsigned int gotoxy::$8 // zp[2]:18 202.0 +unsigned int gotoxy::$9 // zp[2]:16 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:16 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -signed byte main::signed_char_value -signed byte main::signed_char_value#1 signed_char_value zp[1]:2 101.0 -signed byte main::signed_char_value#2 signed_char_value zp[1]:2 151.5 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:8 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:8 1.000000000000001E15 -byte* memcpy::dst#2 dst zp[2]:8 1.0003333333333348E15 -byte* memcpy::dst#4 dst zp[2]:8 2.000000000002E12 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:24 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:24 2.000000000000002E15 -byte* memcpy::src#2 src zp[2]:24 1.0002500000000012E15 -byte* memcpy::src#4 src zp[2]:24 1.000000000001E12 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:22 1.2512500000000025E14 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.42857142857143E14 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2.000000000000002E15 -byte* memset::dst#2 dst zp[2]:8 1.3336666666666685E15 -byte* memset::dst#4 dst zp[2]:8 2.000000000002E12 -byte* memset::end -byte* memset::end#0 end zp[2]:24 1.668333333333337E14 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:8 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +signed char main::signed_char_value +signed char main::signed_char_value#1 // signed_char_value zp[1]:2 101.0 +signed char main::signed_char_value#2 // signed_char_value zp[1]:2 151.5 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:8 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:8 1.000000000000001E15 +char *memcpy::dst#2 // dst zp[2]:8 1.0003333333333348E15 +char *memcpy::dst#4 // dst zp[2]:8 2.000000000002E12 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:24 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:24 2.000000000000002E15 +char *memcpy::src#2 // src zp[2]:24 1.0002500000000012E15 +char *memcpy::src#4 // src zp[2]:24 1.000000000001E12 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:22 1.2512500000000025E14 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.42857142857143E14 +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2.000000000000002E15 +char *memset::dst#2 // dst zp[2]:8 1.3336666666666685E15 +char *memset::dst#4 // dst zp[2]:8 2.000000000002E12 +char *memset::end +char *memset::end#0 // end zp[2]:24 1.668333333333337E14 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:8 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 70001.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 70001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_sint(signed word printf_sint::value , byte printf_sint::format_min_length , byte printf_sint::format_justify_left , byte printf_sint::format_sign_always , byte printf_sint::format_zero_padding , byte printf_sint::format_upper_case , byte printf_sint::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_sint(int value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_sint::format -byte printf_sint::format_justify_left -byte printf_sint::format_min_length -byte printf_sint::format_radix -byte printf_sint::format_sign_always -byte printf_sint::format_upper_case -byte printf_sint::format_zero_padding -word printf_sint::uvalue -signed word printf_sint::value -signed word printf_sint::value#0 value zp[2]:3 10001.0 -signed word printf_sint::value#1 value zp[2]:3 10334.666666666666 -signed word printf_sint::value#4 value zp[2]:3 20002.0 -void test_casting(signed word test_casting::signed_short_value) -constant byte* test_casting::s[2] = " +char printf_sint::format_justify_left +char printf_sint::format_min_length +char printf_sint::format_radix +char printf_sint::format_sign_always +char printf_sint::format_upper_case +char printf_sint::format_zero_padding +unsigned int printf_sint::uvalue +int printf_sint::value +int printf_sint::value#0 // value zp[2]:3 10001.0 +int printf_sint::value#1 // value zp[2]:3 10334.666666666666 +int printf_sint::value#4 // value zp[2]:3 20002.0 +void test_casting(int signed_short_value) +__constant char test_casting::s[2] = " " -signed word test_casting::signed_short_value -signed word test_casting::signed_short_value#0 signed_short_value zp[2]:3 1102.0 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 2.0000002E7 -byte~ utoa::$11 reg byte x 200002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:24 2871429.0 -byte* utoa::buffer#14 buffer zp[2]:24 1.50000015E7 -byte* utoa::buffer#3 buffer zp[2]:24 200002.0 -byte* utoa::buffer#4 buffer zp[2]:24 2.0000002E7 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:7 2.0000002E7 -byte utoa::digit#2 digit zp[1]:7 2857143.1428571427 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:22 6000000.6 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 5000000.5 -byte utoa::started#4 reg byte x 1.0000001E7 -word utoa::value -word utoa::value#0 value zp[2]:3 1.0000001E7 -word utoa::value#1 value zp[2]:3 55001.0 -word utoa::value#2 value zp[2]:3 5728572.142857142 -word utoa::value#6 value zp[2]:3 1.50000015E7 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:24 1.375000025E7 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.00000000001E11 -byte utoa_append::digit#2 reg byte x 1.000500000015E11 -word utoa_append::return -word utoa_append::return#0 return zp[2]:3 2.0000002E7 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:22 3.33350000005E10 -word utoa_append::value -word utoa_append::value#0 value zp[2]:3 3.6666667333333336E7 -word utoa_append::value#1 value zp[2]:3 2.00000000002E11 -word utoa_append::value#2 value zp[2]:3 5.001833333416667E10 +int test_casting::signed_short_value +int test_casting::signed_short_value#0 // signed_short_value zp[2]:3 1102.0 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 2.0000002E7 +char utoa::$11 // reg byte x 200002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:24 2871429.0 +char *utoa::buffer#14 // buffer zp[2]:24 1.50000015E7 +char *utoa::buffer#3 // buffer zp[2]:24 200002.0 +char *utoa::buffer#4 // buffer zp[2]:24 2.0000002E7 +char utoa::digit +char utoa::digit#1 // digit zp[1]:7 2.0000002E7 +char utoa::digit#2 // digit zp[1]:7 2857143.1428571427 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:22 6000000.6 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 5000000.5 +char utoa::started#4 // reg byte x 1.0000001E7 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:3 1.0000001E7 +unsigned int utoa::value#1 // value zp[2]:3 55001.0 +unsigned int utoa::value#2 // value zp[2]:3 5728572.142857142 +unsigned int utoa::value#6 // value zp[2]:3 1.50000015E7 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:24 1.375000025E7 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.00000000001E11 +char utoa_append::digit#2 // reg byte x 1.000500000015E11 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:3 2.0000002E7 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:22 3.33350000005E10 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:3 3.6666667333333336E7 +unsigned int utoa_append::value#1 // value zp[2]:3 2.00000000002E11 +unsigned int utoa_append::value#2 // value zp[2]:3 5.001833333416667E10 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[1]:2 [ main::signed_char_value#2 main::signed_char_value#1 ] diff --git a/src/test/ref/casting.cfg b/src/test/ref/casting.cfg index 27af3a93a..cc7b269ef 100644 --- a/src/test/ref/casting.cfg +++ b/src/test/ref/casting.cfg @@ -7,14 +7,14 @@ main::@1: scope:[main] from main main::@1 [1] main::b#2 = phi( main/0, main::@1/main::b#1 ) [2] main::b2#0 = $c8 - main::b#2 [3] SCREEN[main::b#2] = main::b2#0 - [4] main::sb#0 = - (signed byte)main::b#2 - [5] SCREEN2#0[main::b#2] = (byte)main::sb#0 + [4] main::sb#0 = - (signed char)main::b#2 + [5] SCREEN2#0[main::b#2] = (char)main::sb#0 [6] main::b#1 = ++ main::b#2 [7] if(main::b#1!=$65) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [8] phi() - [9] call w + [9] call w to:main::@return main::@return: scope:[main] from main::@2 [10] return @@ -26,7 +26,7 @@ w: scope:[w] from main::@2 to:w::@1 w::@1: scope:[w] from w w::@1 [12] w::i#2 = phi( w/0, w::@1/w::i#1 ) - [13] w::b2#0 = (byte)$578-$546 + w::i#2 + [13] w::b2#0 = (char)$578-$546 + w::i#2 [14] SCREEN3#0[w::i#2] = w::b#0 [15] SCREEN4#0[w::i#2] = w::b2#0 [16] w::i#1 = ++ w::i#2 diff --git a/src/test/ref/casting.log b/src/test/ref/casting.log index b2c3848a1..74d4ec00d 100644 --- a/src/test/ref/casting.log +++ b/src/test/ref/casting.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement main::$2 Eliminating unused variable with no statement w::$1 @@ -22,8 +22,8 @@ main::@1: scope:[main] from main main::@1 main::b#2 = phi( main/main::b#0, main::@1/main::b#1 ) main::b2#0 = $c8 - main::b#2 SCREEN[main::b#2] = main::b2#0 - main::sb#0 = - (signed byte)main::b#2 - SCREEN2#2[main::b#2] = (byte)main::sb#0 + main::sb#0 = - (signed char)main::b#2 + SCREEN2#2[main::b#2] = (char)main::sb#0 main::b#1 = main::b#2 + rangenext(0,$64) main::$3 = main::b#1 != rangelast(0,$64) if(main::$3) goto main::@1 @@ -31,7 +31,7 @@ main::@1: scope:[main] from main main::@1 main::@2: scope:[main] from main::@1 SCREEN4#6 = phi( main::@1/SCREEN4#8 ) SCREEN3#6 = phi( main::@1/SCREEN3#8 ) - call w + call w to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -50,7 +50,7 @@ w::@1: scope:[w] from w w::@1 SCREEN3#2 = phi( w/SCREEN3#4, w::@1/SCREEN3#2 ) w::i#2 = phi( w/w::i#0, w::@1/w::i#1 ) w::$0 = w::w1 - w::w2 - w::b#0 = (byte)w::$0 + w::b#0 = (char)w::$0 w::b2#0 = $578-$546 + w::i#2 SCREEN3#2[w::i#2] = w::b#0 SCREEN4#2[w::i#2] = w::b2#0 @@ -74,7 +74,7 @@ __start::@1: scope:[__start] from __start::__init1 SCREEN4#7 = phi( __start::__init1/SCREEN4#0 ) SCREEN3#7 = phi( __start::__init1/SCREEN3#0 ) SCREEN2#6 = phi( __start::__init1/SCREEN2#0 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 SCREEN4#5 = phi( __start::@1/SCREEN4#7 ) @@ -92,61 +92,61 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -byte* SCREEN2 -byte* SCREEN2#0 -byte* SCREEN2#1 -byte* SCREEN2#2 -byte* SCREEN2#3 -byte* SCREEN2#4 -byte* SCREEN2#5 -byte* SCREEN2#6 -byte* SCREEN3 -byte* SCREEN3#0 -byte* SCREEN3#1 -byte* SCREEN3#2 -byte* SCREEN3#3 -byte* SCREEN3#4 -byte* SCREEN3#5 -byte* SCREEN3#6 -byte* SCREEN3#7 -byte* SCREEN3#8 -byte* SCREEN3#9 -byte* SCREEN4 -byte* SCREEN4#0 -byte* SCREEN4#1 -byte* SCREEN4#2 -byte* SCREEN4#3 -byte* SCREEN4#4 -byte* SCREEN4#5 -byte* SCREEN4#6 -byte* SCREEN4#7 -byte* SCREEN4#8 -byte* SCREEN4#9 +__constant char *SCREEN = (char *)$400 +char *SCREEN2 +char *SCREEN2#0 +char *SCREEN2#1 +char *SCREEN2#2 +char *SCREEN2#3 +char *SCREEN2#4 +char *SCREEN2#5 +char *SCREEN2#6 +char *SCREEN3 +char *SCREEN3#0 +char *SCREEN3#1 +char *SCREEN3#2 +char *SCREEN3#3 +char *SCREEN3#4 +char *SCREEN3#5 +char *SCREEN3#6 +char *SCREEN3#7 +char *SCREEN3#8 +char *SCREEN3#9 +char *SCREEN4 +char *SCREEN4#0 +char *SCREEN4#1 +char *SCREEN4#2 +char *SCREEN4#3 +char *SCREEN4#4 +char *SCREEN4#5 +char *SCREEN4#6 +char *SCREEN4#7 +char *SCREEN4#8 +char *SCREEN4#9 void __start() void main() -bool~ main::$3 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b2 -byte main::b2#0 -signed byte main::sb -signed byte main::sb#0 +bool main::$3 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b2 +char main::b2#0 +signed char main::sb +signed char main::sb#0 void w() -word~ w::$0 -bool~ w::$2 -byte w::b -byte w::b#0 -byte w::b2 -byte w::b2#0 -byte w::i -byte w::i#0 -byte w::i#1 -byte w::i#2 -constant word w::w1 = $514 -constant word w::w2 = $4e2 +unsigned int w::$0 +bool w::$2 +char w::b +char w::b#0 +char w::b2 +char w::b2#0 +char w::i +char w::i#0 +char w::i#1 +char w::i#2 +__constant unsigned int w::w1 = $514 +__constant unsigned int w::w2 = $4e2 Adding number conversion cast (unumber) $c8 in main::b2#0 = $c8 - main::b#2 Adding number conversion cast (unumber) $578-$546 in w::b2#0 = $578-$546 + w::i#2 @@ -154,10 +154,10 @@ Adding number conversion cast (unumber) $28*3 in SCREEN2#0 = SCREEN + $28*3 Adding number conversion cast (unumber) $28*6 in SCREEN3#0 = SCREEN + $28*6 Adding number conversion cast (unumber) $28*9 in SCREEN4#0 = SCREEN + $28*9 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $c8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c8 +Finalized unsigned number type (char) $c8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias SCREEN3#6 = SCREEN3#8 Alias SCREEN4#6 = SCREEN4#8 @@ -180,18 +180,18 @@ Simple Condition main::$3 [9] if(main::b#1!=rangelast(0,$64)) goto main::@1 Simple Condition w::$2 [22] if(w::i#1!=rangelast(0,$a)) goto w::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [15] w::$0 = w::w1 - w::w2 -Constant right-side identified [24] SCREEN2#0 = SCREEN + (byte)$28*3 -Constant right-side identified [25] SCREEN3#0 = SCREEN + (byte)$28*6 -Constant right-side identified [26] SCREEN4#0 = SCREEN + (word)$28*9 +Constant right-side identified [24] SCREEN2#0 = SCREEN + (char)$28*3 +Constant right-side identified [25] SCREEN3#0 = SCREEN + (char)$28*6 +Constant right-side identified [26] SCREEN4#0 = SCREEN + (unsigned int)$28*9 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::b#0 = 0 Constant w::i#0 = 0 Constant w::$0 = w::w1-w::w2 -Constant SCREEN2#0 = SCREEN+(byte)$28*3 -Constant SCREEN3#0 = SCREEN+(byte)$28*6 -Constant SCREEN4#0 = SCREEN+(word)$28*9 +Constant SCREEN2#0 = SCREEN+(char)$28*3 +Constant SCREEN3#0 = SCREEN+(char)$28*6 +Constant SCREEN4#0 = SCREEN+(unsigned int)$28*9 Successful SSA optimization Pass2ConstantIdentification -Constant w::b#0 = (byte)w::$0 +Constant w::b#0 = (char)w::$0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [7] main::b#1 = ++ main::b#2 to ++ Resolved ranged comparison value [9] if(main::b#1!=rangelast(0,$64)) goto main::@1 to $65 @@ -210,8 +210,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::b#0 Inlining constant with var siblings w::i#0 @@ -219,14 +219,14 @@ Constant inlined w::i#0 = 0 Constant inlined w::$0 = w::w1-w::w2 Constant inlined main::b#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (word) $578 -Finalized unsigned number type (word) $546 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (unsigned int) $578 +Finalized unsigned number type (unsigned int) $546 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*3 Simplifying constant integer cast $28*6 @@ -261,14 +261,14 @@ main::@1: scope:[main] from main main::@1 [1] main::b#2 = phi( main/0, main::@1/main::b#1 ) [2] main::b2#0 = $c8 - main::b#2 [3] SCREEN[main::b#2] = main::b2#0 - [4] main::sb#0 = - (signed byte)main::b#2 - [5] SCREEN2#0[main::b#2] = (byte)main::sb#0 + [4] main::sb#0 = - (signed char)main::b#2 + [5] SCREEN2#0[main::b#2] = (char)main::sb#0 [6] main::b#1 = ++ main::b#2 [7] if(main::b#1!=$65) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [8] phi() - [9] call w + [9] call w to:main::@return main::@return: scope:[main] from main::@2 [10] return @@ -280,7 +280,7 @@ w: scope:[w] from main::@2 to:w::@1 w::@1: scope:[w] from w w::@1 [12] w::i#2 = phi( w/0, w::@1/w::i#1 ) - [13] w::b2#0 = (byte)$578-$546 + w::i#2 + [13] w::b2#0 = (char)$578-$546 + w::i#2 [14] SCREEN3#0[w::i#2] = w::b#0 [15] SCREEN4#0[w::i#2] = w::b2#0 [16] w::i#1 = ++ w::i#2 @@ -292,24 +292,24 @@ w::@return: scope:[w] from w::@1 VARIABLE REGISTER WEIGHTS -byte* SCREEN2 -byte* SCREEN3 -byte* SCREEN4 +char *SCREEN2 +char *SCREEN3 +char *SCREEN4 void main() -byte main::b -byte main::b#1 16.5 -byte main::b#2 11.0 -byte main::b2 -byte main::b2#0 22.0 -signed byte main::sb -signed byte main::sb#0 11.0 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 11.0 +char main::b2 +char main::b2#0 // 22.0 +signed char main::sb +signed char main::sb#0 // 11.0 void w() -byte w::b -byte w::b2 -byte w::b2#0 101.0 -byte w::i -byte w::i#1 151.5 -byte w::i#2 126.25 +char w::b +char w::b2 +char w::b2#0 // 101.0 +char w::i +char w::i#1 // 151.5 +char w::i#2 // 126.25 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -331,14 +331,14 @@ Allocated zp[1]:6 [ w::b2#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::b2#0 = $c8 - main::b#2 [ main::b#2 main::b2#0 ] ( [ main::b#2 main::b2#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::b#2 main::b#1 ] -Statement [4] main::sb#0 = - (signed byte)main::b#2 [ main::b#2 main::sb#0 ] ( [ main::b#2 main::sb#0 ] { } ) always clobbers reg byte a +Statement [4] main::sb#0 = - (signed char)main::b#2 [ main::b#2 main::sb#0 ] ( [ main::b#2 main::sb#0 ] { } ) always clobbers reg byte a Statement [14] SCREEN3#0[w::i#2] = w::b#0 [ w::i#2 w::b2#0 ] ( w:9 [ w::i#2 w::b2#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ w::i#2 w::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:6 [ w::b2#0 ] Statement [15] SCREEN4#0[w::i#2] = w::b2#0 [ w::i#2 ] ( w:9 [ w::i#2 ] { } ) always clobbers reg byte a Statement [2] main::b2#0 = $c8 - main::b#2 [ main::b#2 main::b2#0 ] ( [ main::b#2 main::b2#0 ] { } ) always clobbers reg byte a -Statement [4] main::sb#0 = - (signed byte)main::b#2 [ main::b#2 main::sb#0 ] ( [ main::b#2 main::sb#0 ] { } ) always clobbers reg byte a -Statement [13] w::b2#0 = (byte)$578-$546 + w::i#2 [ w::i#2 w::b2#0 ] ( w:9 [ w::i#2 w::b2#0 ] { } ) always clobbers reg byte a +Statement [4] main::sb#0 = - (signed char)main::b#2 [ main::b#2 main::sb#0 ] ( [ main::b#2 main::sb#0 ] { } ) always clobbers reg byte a +Statement [13] w::b2#0 = (char)$578-$546 + w::i#2 [ w::i#2 w::b2#0 ] ( w:9 [ w::i#2 w::b2#0 ] { } ) always clobbers reg byte a Statement [14] SCREEN3#0[w::i#2] = w::b#0 [ w::i#2 w::b2#0 ] ( w:9 [ w::i#2 w::b2#0 ] { } ) always clobbers reg byte a Statement [15] SCREEN4#0[w::i#2] = w::b2#0 [ w::i#2 ] ( w:9 [ w::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::b#2 main::b#1 ] : zp[1]:2 , reg byte x , reg byte y , @@ -394,13 +394,13 @@ main: { adc #$c8 // [3] SCREEN[main::b#2] = main::b2#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x - // [4] main::sb#0 = - (signed byte)main::b#2 -- vbsaa=_neg_vbsxx + // [4] main::sb#0 = - (signed char)main::b#2 -- vbsaa=_neg_vbsxx // Cast unsigned byte to signed byte & negate txa eor #$ff clc adc #1 - // [5] SCREEN2#0[main::b#2] = (byte)main::sb#0 -- pbuc1_derefidx_vbuxx=vbuaa + // [5] SCREEN2#0[main::b#2] = (char)main::sb#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN2,x // [6] main::b#1 = ++ main::b#2 -- vbuxx=_inc_vbuxx inx @@ -412,7 +412,7 @@ main: { jmp __b2 // main::@2 __b2: - // [9] call w + // [9] call w // [11] phi from main::@2 to w [phi:main::@2->w] w_from___b2: jsr w @@ -438,7 +438,7 @@ w: { jmp __b1 // w::@1 __b1: - // [13] w::b2#0 = (byte)$578-$546 + w::i#2 -- vbuxx=vbuc1_plus_vbuyy + // [13] w::b2#0 = (char)$578-$546 + w::i#2 -- vbuxx=vbuc1_plus_vbuyy tya tax axs #-[$578-$546] @@ -486,31 +486,31 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -byte* SCREEN2 -constant byte* SCREEN2#0 SCREEN2 = SCREEN+$28*3 -byte* SCREEN3 -constant byte* SCREEN3#0 SCREEN3 = SCREEN+$28*6 -byte* SCREEN4 -constant byte* SCREEN4#0 SCREEN4 = SCREEN+(word)$28*9 +__constant char *SCREEN = (char *) 1024 +char *SCREEN2 +__constant char *SCREEN2#0 = SCREEN+$28*3 // SCREEN2 +char *SCREEN3 +__constant char *SCREEN3#0 = SCREEN+$28*6 // SCREEN3 +char *SCREEN4 +__constant char *SCREEN4#0 = SCREEN+(unsigned int)$28*9 // SCREEN4 void main() -byte main::b -byte main::b#1 reg byte x 16.5 -byte main::b#2 reg byte x 11.0 -byte main::b2 -byte main::b2#0 reg byte a 22.0 -signed byte main::sb -signed byte main::sb#0 reg byte a 11.0 +char main::b +char main::b#1 // reg byte x 16.5 +char main::b#2 // reg byte x 11.0 +char main::b2 +char main::b2#0 // reg byte a 22.0 +signed char main::sb +signed char main::sb#0 // reg byte a 11.0 void w() -byte w::b -constant byte w::b#0 b = (byte)w::w1-w::w2 -byte w::b2 -byte w::b2#0 reg byte x 101.0 -byte w::i -byte w::i#1 reg byte y 151.5 -byte w::i#2 reg byte y 126.25 -constant word w::w1 = $514 -constant word w::w2 = $4e2 +char w::b +__constant char w::b#0 = (char)w::w1-w::w2 // b +char w::b2 +char w::b2#0 // reg byte x 101.0 +char w::i +char w::i#1 // reg byte y 151.5 +char w::i#2 // reg byte y 126.25 +__constant unsigned int w::w1 = $514 +__constant unsigned int w::w2 = $4e2 reg byte x [ main::b#2 main::b#1 ] reg byte y [ w::i#2 w::i#1 ] @@ -558,14 +558,14 @@ main: { // [3] SCREEN[main::b#2] = main::b2#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x // signed byte sb = - (signed byte)b - // [4] main::sb#0 = - (signed byte)main::b#2 -- vbsaa=_neg_vbsxx + // [4] main::sb#0 = - (signed char)main::b#2 -- vbsaa=_neg_vbsxx // Cast unsigned byte to signed byte & negate txa eor #$ff clc adc #1 // SCREEN2[b] = (byte)sb - // [5] SCREEN2#0[main::b#2] = (byte)main::sb#0 -- pbuc1_derefidx_vbuxx=vbuaa + // [5] SCREEN2#0[main::b#2] = (char)main::sb#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN2,x // for( byte b: 0..100) // [6] main::b#1 = ++ main::b#2 -- vbuxx=_inc_vbuxx @@ -576,7 +576,7 @@ main: { // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // w() - // [9] call w + // [9] call w // [11] phi from main::@2 to w [phi:main::@2->w] jsr w // main::@return @@ -597,7 +597,7 @@ w: { // w::@1 __b1: // byte b2 = 1400-1350+i - // [13] w::b2#0 = (byte)$578-$546 + w::i#2 -- vbuxx=vbuc1_plus_vbuyy + // [13] w::b2#0 = (char)$578-$546 + w::i#2 -- vbuxx=vbuc1_plus_vbuyy tya tax axs #-[$578-$546] diff --git a/src/test/ref/casting.sym b/src/test/ref/casting.sym index beb972e79..6e3157e45 100644 --- a/src/test/ref/casting.sym +++ b/src/test/ref/casting.sym @@ -1,28 +1,28 @@ -constant byte* SCREEN = (byte*) 1024 -byte* SCREEN2 -constant byte* SCREEN2#0 SCREEN2 = SCREEN+$28*3 -byte* SCREEN3 -constant byte* SCREEN3#0 SCREEN3 = SCREEN+$28*6 -byte* SCREEN4 -constant byte* SCREEN4#0 SCREEN4 = SCREEN+(word)$28*9 +__constant char *SCREEN = (char *) 1024 +char *SCREEN2 +__constant char *SCREEN2#0 = SCREEN+$28*3 // SCREEN2 +char *SCREEN3 +__constant char *SCREEN3#0 = SCREEN+$28*6 // SCREEN3 +char *SCREEN4 +__constant char *SCREEN4#0 = SCREEN+(unsigned int)$28*9 // SCREEN4 void main() -byte main::b -byte main::b#1 reg byte x 16.5 -byte main::b#2 reg byte x 11.0 -byte main::b2 -byte main::b2#0 reg byte a 22.0 -signed byte main::sb -signed byte main::sb#0 reg byte a 11.0 +char main::b +char main::b#1 // reg byte x 16.5 +char main::b#2 // reg byte x 11.0 +char main::b2 +char main::b2#0 // reg byte a 22.0 +signed char main::sb +signed char main::sb#0 // reg byte a 11.0 void w() -byte w::b -constant byte w::b#0 b = (byte)w::w1-w::w2 -byte w::b2 -byte w::b2#0 reg byte x 101.0 -byte w::i -byte w::i#1 reg byte y 151.5 -byte w::i#2 reg byte y 126.25 -constant word w::w1 = $514 -constant word w::w2 = $4e2 +char w::b +__constant char w::b#0 = (char)w::w1-w::w2 // b +char w::b2 +char w::b2#0 // reg byte x 101.0 +char w::i +char w::i#1 // reg byte y 151.5 +char w::i#2 // reg byte y 126.25 +__constant unsigned int w::w1 = $514 +__constant unsigned int w::w2 = $4e2 reg byte x [ main::b#2 main::b#1 ] reg byte y [ w::i#2 w::i#1 ] diff --git a/src/test/ref/chargen.log b/src/test/ref/chargen.log index 1b92748e0..eb137fa17 100644 --- a/src/test/ref/chargen.log +++ b/src/test/ref/chargen.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA @@ -77,7 +77,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -86,58 +86,58 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* CHARGEN = (byte*)$d000 -constant byte* PROCPORT = (byte*)1 -constant byte* SCREEN = (byte*)$400 +__constant char *CHARGEN = (char *)$d000 +__constant char *PROCPORT = (char *)1 +__constant char *SCREEN = (char *)$400 void __start() void main() -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -number~ main::$4 -bool~ main::$5 -byte*~ main::$6 -bool~ main::$7 -byte* main::CHAR_A -byte* main::CHAR_A#0 -byte* main::CHAR_A#1 -byte* main::CHAR_A#2 -byte* main::CHAR_A#3 -byte* main::CHAR_A#4 -byte* main::CHAR_A#5 -byte main::bits -byte main::bits#0 -byte main::bits#1 -byte main::bits#2 -byte main::bits#3 -byte main::bits#4 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc#3 -byte* main::sc#4 -byte* main::sc#5 -byte* main::sc#6 -byte* main::sc#7 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -byte main::y#5 -byte main::y#6 +number main::$1 +bool main::$2 +bool main::$3 +number main::$4 +bool main::$5 +char *main::$6 +bool main::$7 +char *main::CHAR_A +char *main::CHAR_A#0 +char *main::CHAR_A#1 +char *main::CHAR_A#2 +char *main::CHAR_A#3 +char *main::CHAR_A#4 +char *main::CHAR_A#5 +char main::bits +char main::bits#0 +char main::bits#1 +char main::bits#2 +char main::bits#3 +char main::bits#4 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc#3 +char *main::sc#4 +char *main::sc#5 +char *main::sc#6 +char *main::sc#7 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +char main::y#5 +char main::y#6 Adding number conversion cast (unumber) 8 in main::CHAR_A#0 = CHARGEN + 8 Adding number conversion cast (unumber) $32 in *PROCPORT = $32 @@ -152,9 +152,9 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *PROCPORT = (unumber)$32 Inlining cast *PROCPORT = (unumber)$37 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 8 Simplifying constant integer cast $32 Simplifying constant integer cast $80 @@ -163,16 +163,16 @@ Simplifying constant integer cast 2 Simplifying constant integer cast $20 Simplifying constant integer cast $37 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $37 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $37 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::bits#2 & $80 -Inferred type updated to byte in main::$4 = main::bits#3 * 2 +Inferred type updated to char in main::$1 = main::bits#2 & $80 +Inferred type updated to char in main::$4 = main::bits#3 * 2 Inversing boolean not [12] main::$3 = main::$1 == 0 from [11] main::$2 = main::$1 != 0 Successful SSA optimization Pass2UnaryNotSimplification Alias main::bits#1 = main::$4 @@ -227,8 +227,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [10] main::bits#1 = main::bits#2 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -307,25 +307,25 @@ main::@return: scope:[main] from main::@6 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 202.0 -byte* main::CHAR_A -byte main::bits -byte main::bits#0 22.0 -byte main::bits#1 67.33333333333333 -byte main::bits#2 44.85714285714286 -byte main::c -byte main::c#2 101.0 -byte* main::sc -byte* main::sc#1 53.25 -byte* main::sc#2 7.333333333333333 -byte* main::sc#3 52.33333333333333 -byte* main::sc#7 11.0 -byte main::x -byte main::x#1 151.5 -byte main::x#2 25.25 -byte main::y -byte main::y#1 16.5 -byte main::y#2 2.5384615384615383 +char main::$1 // 202.0 +char *main::CHAR_A +char main::bits +char main::bits#0 // 22.0 +char main::bits#1 // 67.33333333333333 +char main::bits#2 // 44.85714285714286 +char main::c +char main::c#2 // 101.0 +char *main::sc +char *main::sc#1 // 53.25 +char *main::sc#2 // 7.333333333333333 +char *main::sc#3 // 52.33333333333333 +char *main::sc#7 // 11.0 +char main::x +char main::x#1 // 151.5 +char main::x#2 // 25.25 +char main::y +char main::y#1 // 16.5 +char main::y#2 // 2.5384615384615383 Initial phi equivalence classes [ main::y#2 main::y#1 ] @@ -544,30 +544,30 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* CHARGEN = (byte*) 53248 -constant byte* PROCPORT = (byte*) 1 -constant byte* SCREEN = (byte*) 1024 +__constant char *CHARGEN = (char *) 53248 +__constant char *PROCPORT = (char *) 1 +__constant char *SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 202.0 -byte* main::CHAR_A -constant byte* main::CHAR_A#0 CHAR_A = CHARGEN+8 -byte main::bits -byte main::bits#0 bits zp[1]:3 22.0 -byte main::bits#1 bits zp[1]:3 67.33333333333333 -byte main::bits#2 bits zp[1]:3 44.85714285714286 -byte main::c -byte main::c#2 reg byte a 101.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:4 53.25 -byte* main::sc#2 sc zp[2]:4 7.333333333333333 -byte* main::sc#3 sc zp[2]:4 52.33333333333333 -byte* main::sc#7 sc zp[2]:4 11.0 -byte main::x -byte main::x#1 reg byte x 151.5 -byte main::x#2 reg byte x 25.25 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#2 y zp[1]:2 2.5384615384615383 +char main::$1 // reg byte a 202.0 +char *main::CHAR_A +__constant char *main::CHAR_A#0 = CHARGEN+8 // CHAR_A +char main::bits +char main::bits#0 // bits zp[1]:3 22.0 +char main::bits#1 // bits zp[1]:3 67.33333333333333 +char main::bits#2 // bits zp[1]:3 44.85714285714286 +char main::c +char main::c#2 // reg byte a 101.0 +char *main::sc +char *main::sc#1 // sc zp[2]:4 53.25 +char *main::sc#2 // sc zp[2]:4 7.333333333333333 +char *main::sc#3 // sc zp[2]:4 52.33333333333333 +char *main::sc#7 // sc zp[2]:4 11.0 +char main::x +char main::x#1 // reg byte x 151.5 +char main::x#2 // reg byte x 25.25 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#2 // y zp[1]:2 2.5384615384615383 zp[1]:2 [ main::y#2 main::y#1 ] zp[1]:3 [ main::bits#2 main::bits#0 main::bits#1 ] diff --git a/src/test/ref/chargen.sym b/src/test/ref/chargen.sym index 55c509cc2..8d769f07f 100644 --- a/src/test/ref/chargen.sym +++ b/src/test/ref/chargen.sym @@ -1,27 +1,27 @@ -constant byte* CHARGEN = (byte*) 53248 -constant byte* PROCPORT = (byte*) 1 -constant byte* SCREEN = (byte*) 1024 +__constant char *CHARGEN = (char *) 53248 +__constant char *PROCPORT = (char *) 1 +__constant char *SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 202.0 -byte* main::CHAR_A -constant byte* main::CHAR_A#0 CHAR_A = CHARGEN+8 -byte main::bits -byte main::bits#0 bits zp[1]:3 22.0 -byte main::bits#1 bits zp[1]:3 67.33333333333333 -byte main::bits#2 bits zp[1]:3 44.85714285714286 -byte main::c -byte main::c#2 reg byte a 101.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:4 53.25 -byte* main::sc#2 sc zp[2]:4 7.333333333333333 -byte* main::sc#3 sc zp[2]:4 52.33333333333333 -byte* main::sc#7 sc zp[2]:4 11.0 -byte main::x -byte main::x#1 reg byte x 151.5 -byte main::x#2 reg byte x 25.25 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#2 y zp[1]:2 2.5384615384615383 +char main::$1 // reg byte a 202.0 +char *main::CHAR_A +__constant char *main::CHAR_A#0 = CHARGEN+8 // CHAR_A +char main::bits +char main::bits#0 // bits zp[1]:3 22.0 +char main::bits#1 // bits zp[1]:3 67.33333333333333 +char main::bits#2 // bits zp[1]:3 44.85714285714286 +char main::c +char main::c#2 // reg byte a 101.0 +char *main::sc +char *main::sc#1 // sc zp[2]:4 53.25 +char *main::sc#2 // sc zp[2]:4 7.333333333333333 +char *main::sc#3 // sc zp[2]:4 52.33333333333333 +char *main::sc#7 // sc zp[2]:4 11.0 +char main::x +char main::x#1 // reg byte x 151.5 +char main::x#2 // reg byte x 25.25 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#2 // y zp[1]:2 2.5384615384615383 zp[1]:2 [ main::y#2 main::y#1 ] zp[1]:3 [ main::bits#2 main::bits#0 main::bits#1 ] diff --git a/src/test/ref/chessboard.cfg b/src/test/ref/chessboard.cfg index 298d27ac0..30fc89d15 100644 --- a/src/test/ref/chessboard.cfg +++ b/src/test/ref/chessboard.cfg @@ -5,9 +5,9 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] main::row#4 = phi( main/0, main::@3/main::row#1 ) - [1] main::colors#4 = phi( main/(byte*) 55296, main::@3/main::colors#1 ) + [1] main::colors#4 = phi( main/(char *) 55296, main::@3/main::colors#1 ) [1] main::color#5 = phi( main/1, main::@3/main::color#2 ) - [1] main::screen#4 = phi( main/(byte*) 1024, main::@3/main::screen#1 ) + [1] main::screen#4 = phi( main/(char *) 1024, main::@3/main::screen#1 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [2] main::color#3 = phi( main::@1/main::color#5, main::@2/main::color#1 ) diff --git a/src/test/ref/chessboard.log b/src/test/ref/chessboard.log index a3ce6f194..d83ea29a5 100644 --- a/src/test/ref/chessboard.log +++ b/src/test/ref/chessboard.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 - main::colors#0 = (byte*)$d800 + main::screen#0 = (char *)$400 + main::colors#0 = (char *)$d800 main::color#0 = 1 main::row#0 = 0 to:main::@1 @@ -50,7 +50,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -61,41 +61,41 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -bool~ main::$1 -number~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -bool~ main::$5 -byte main::color -byte main::color#0 -byte main::color#1 -byte main::color#2 -byte main::color#3 -byte main::color#4 -byte main::color#5 -byte* main::colors -byte* main::colors#0 -byte* main::colors#1 -byte* main::colors#2 -byte* main::colors#3 -byte* main::colors#4 -byte main::column -byte main::column#0 -byte main::column#1 -byte main::column#2 -byte main::row -byte main::row#0 -byte main::row#1 -byte main::row#2 -byte main::row#3 -byte main::row#4 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 +number main::$0 +bool main::$1 +number main::$2 +char *main::$3 +char *main::$4 +bool main::$5 +char main::color +char main::color#0 +char main::color#1 +char main::color#2 +char main::color#3 +char main::color#4 +char main::color#5 +char *main::colors +char *main::colors#0 +char *main::colors#1 +char *main::colors#2 +char *main::colors#3 +char *main::colors#4 +char main::column +char main::column#0 +char main::column#1 +char main::column#2 +char main::row +char main::row#0 +char main::row#1 +char main::row#2 +char main::row#3 +char main::row#4 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 Adding number conversion cast (unumber) $a0 in main::screen#2[main::column#2] = $a0 Adding number conversion cast (unumber) 1 in main::$0 = main::color#3 ^ 1 @@ -107,22 +107,22 @@ Adding number conversion cast (unumber) $28 in main::$4 = main::colors#3 + $28 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::screen#2[main::column#2] = (unumber)$a0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast $a0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::color#3 ^ 1 -Inferred type updated to byte in main::$2 = main::color#4 ^ 1 +Inferred type updated to char in main::$0 = main::color#3 ^ 1 +Inferred type updated to char in main::$2 = main::color#4 ^ 1 Alias main::color#1 = main::$0 main::color#4 Alias main::screen#2 = main::screen#3 Alias main::colors#2 = main::colors#3 @@ -138,8 +138,8 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$1 [12] if(main::column#1!=rangelast(0,7)) goto main::@2 Simple Condition main::$5 [18] if(main::row#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 -Constant main::colors#0 = (byte*) 55296 +Constant main::screen#0 = (char *) 1024 +Constant main::colors#0 = (char *) 55296 Constant main::color#0 = 1 Constant main::row#0 = 0 Constant main::column#0 = 0 @@ -159,16 +159,16 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::colors#0 Inlining constant with var siblings main::color#0 Inlining constant with var siblings main::row#0 Inlining constant with var siblings main::column#0 -Constant inlined main::screen#0 = (byte*) 1024 -Constant inlined main::colors#0 = (byte*) 55296 +Constant inlined main::screen#0 = (char *) 1024 +Constant inlined main::colors#0 = (char *) 55296 Constant inlined main::color#0 = 1 Constant inlined main::row#0 = 0 Constant inlined main::column#0 = 0 @@ -199,9 +199,9 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] main::row#4 = phi( main/0, main::@3/main::row#1 ) - [1] main::colors#4 = phi( main/(byte*) 55296, main::@3/main::colors#1 ) + [1] main::colors#4 = phi( main/(char *) 55296, main::@3/main::colors#1 ) [1] main::color#5 = phi( main/1, main::@3/main::color#2 ) - [1] main::screen#4 = phi( main/(byte*) 1024, main::@3/main::screen#1 ) + [1] main::screen#4 = phi( main/(char *) 1024, main::@3/main::screen#1 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [2] main::color#3 = phi( main::@1/main::color#5, main::@2/main::color#1 ) @@ -226,23 +226,23 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::color -byte main::color#1 71.0 -byte main::color#2 4.4 -byte main::color#3 104.66666666666666 -byte main::color#5 22.0 -byte* main::colors -byte* main::colors#1 7.333333333333333 -byte* main::colors#4 13.666666666666664 -byte main::column -byte main::column#1 151.5 -byte main::column#2 101.0 -byte main::row -byte main::row#1 16.5 -byte main::row#4 2.2 -byte* main::screen -byte* main::screen#1 5.5 -byte* main::screen#4 15.375 +char main::color +char main::color#1 // 71.0 +char main::color#2 // 4.4 +char main::color#3 // 104.66666666666666 +char main::color#5 // 22.0 +char *main::colors +char *main::colors#1 // 7.333333333333333 +char *main::colors#4 // 13.666666666666664 +char main::column +char main::column#1 // 151.5 +char main::column#2 // 101.0 +char main::row +char main::row#1 // 16.5 +char main::row#4 // 2.2 +char *main::screen +char *main::screen#1 // 5.5 +char *main::screen#4 // 15.375 Initial phi equivalence classes [ main::screen#4 main::screen#1 ] @@ -316,14 +316,14 @@ main: { // [1] phi main::row#4 = 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z row - // [1] phi main::colors#4 = (byte*) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::colors#4 = (char *) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$d800 sta.z colors lda #>$d800 sta.z colors+1 // [1] phi main::color#5 = 1 [phi:main->main::@1#2] -- vbuxx=vbuc1 ldx #1 - // [1] phi main::screen#4 = (byte*) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + // [1] phi main::screen#4 = (char *) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -425,23 +425,23 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::color -byte main::color#1 reg byte x 71.0 -byte main::color#2 reg byte x 4.4 -byte main::color#3 reg byte x 104.66666666666666 -byte main::color#5 reg byte x 22.0 -byte* main::colors -byte* main::colors#1 colors zp[2]:4 7.333333333333333 -byte* main::colors#4 colors zp[2]:4 13.666666666666664 -byte main::column -byte main::column#1 reg byte y 151.5 -byte main::column#2 reg byte y 101.0 -byte main::row -byte main::row#1 row zp[1]:6 16.5 -byte main::row#4 row zp[1]:6 2.2 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 5.5 -byte* main::screen#4 screen zp[2]:2 15.375 +char main::color +char main::color#1 // reg byte x 71.0 +char main::color#2 // reg byte x 4.4 +char main::color#3 // reg byte x 104.66666666666666 +char main::color#5 // reg byte x 22.0 +char *main::colors +char *main::colors#1 // colors zp[2]:4 7.333333333333333 +char *main::colors#4 // colors zp[2]:4 13.666666666666664 +char main::column +char main::column#1 // reg byte y 151.5 +char main::column#2 // reg byte y 101.0 +char main::row +char main::row#1 // row zp[1]:6 16.5 +char main::row#4 // row zp[1]:6 2.2 +char *main::screen +char *main::screen#1 // screen zp[2]:2 5.5 +char *main::screen#4 // screen zp[2]:2 15.375 zp[2]:2 [ main::screen#4 main::screen#1 ] zp[2]:4 [ main::colors#4 main::colors#1 ] @@ -475,14 +475,14 @@ main: { // [1] phi main::row#4 = 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z row - // [1] phi main::colors#4 = (byte*) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::colors#4 = (char *) 55296 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$d800 sta.z colors lda #>$d800 sta.z colors+1 // [1] phi main::color#5 = 1 [phi:main->main::@1#2] -- vbuxx=vbuc1 ldx #1 - // [1] phi main::screen#4 = (byte*) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 + // [1] phi main::screen#4 = (char *) 1024 [phi:main->main::@1#3] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/chessboard.sym b/src/test/ref/chessboard.sym index 4a170b21d..37a9e1c32 100644 --- a/src/test/ref/chessboard.sym +++ b/src/test/ref/chessboard.sym @@ -1,21 +1,21 @@ void main() -byte main::color -byte main::color#1 reg byte x 71.0 -byte main::color#2 reg byte x 4.4 -byte main::color#3 reg byte x 104.66666666666666 -byte main::color#5 reg byte x 22.0 -byte* main::colors -byte* main::colors#1 colors zp[2]:4 7.333333333333333 -byte* main::colors#4 colors zp[2]:4 13.666666666666664 -byte main::column -byte main::column#1 reg byte y 151.5 -byte main::column#2 reg byte y 101.0 -byte main::row -byte main::row#1 row zp[1]:6 16.5 -byte main::row#4 row zp[1]:6 2.2 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 5.5 -byte* main::screen#4 screen zp[2]:2 15.375 +char main::color +char main::color#1 // reg byte x 71.0 +char main::color#2 // reg byte x 4.4 +char main::color#3 // reg byte x 104.66666666666666 +char main::color#5 // reg byte x 22.0 +char *main::colors +char *main::colors#1 // colors zp[2]:4 7.333333333333333 +char *main::colors#4 // colors zp[2]:4 13.666666666666664 +char main::column +char main::column#1 // reg byte y 151.5 +char main::column#2 // reg byte y 101.0 +char main::row +char main::row#1 // row zp[1]:6 16.5 +char main::row#4 // row zp[1]:6 2.2 +char *main::screen +char *main::screen#1 // screen zp[2]:2 5.5 +char *main::screen#4 // screen zp[2]:2 15.375 zp[2]:2 [ main::screen#4 main::screen#1 ] zp[2]:4 [ main::colors#4 main::colors#1 ] diff --git a/src/test/ref/chipset-test.cfg b/src/test/ref/chipset-test.cfg index 775eaf2de..2316e73cf 100644 --- a/src/test/ref/chipset-test.cfg +++ b/src/test/ref/chipset-test.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *((byte*)(struct __pia*) 54016) = 7 - [1] *((byte*)PIA2) = 7 + [0] *((char *)(struct __pia *) 54016) = 7 + [1] *((char *)PIA2) = 7 to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/chipset-test.log b/src/test/ref/chipset-test.log index 3c39a91f8..6f0ae5351 100644 --- a/src/test/ref/chipset-test.log +++ b/src/test/ref/chipset-test.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)(struct __pia*)$d300+OFFSET_STRUCT___PIA_PORTA) = 7 - *((byte*)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = 7 + *((char *)(struct __pia *)$d300+OFFSET_STRUCT___PIA_PORTA) = 7 + *((char *)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = 7 to:main::@return main::@return: scope:[main] from main return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,28 +21,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_ATARI_PIA_PORTA = 0 -constant byte OFFSET_STRUCT___PIA_PORTA = 0 -constant struct ATARI_PIA* const PIA2 = (struct ATARI_PIA*)$d300 +__constant char OFFSET_STRUCT_ATARI_PIA_PORTA = 0 +__constant char OFFSET_STRUCT___PIA_PORTA = 0 +__constant struct ATARI_PIA * const PIA2 = (struct ATARI_PIA *)$d300 void __start() void main() -Adding number conversion cast (unumber) 7 in *((byte*)(struct __pia*)$d300+OFFSET_STRUCT___PIA_PORTA) = 7 -Adding number conversion cast (unumber) 7 in *((byte*)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = 7 +Adding number conversion cast (unumber) 7 in *((char *)(struct __pia *)$d300+OFFSET_STRUCT___PIA_PORTA) = 7 +Adding number conversion cast (unumber) 7 in *((char *)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = 7 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)(struct __pia*)$d300+OFFSET_STRUCT___PIA_PORTA) = (unumber)7 -Inlining cast *((byte*)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = (unumber)7 +Inlining cast *((char *)(struct __pia *)$d300+OFFSET_STRUCT___PIA_PORTA) = (unumber)7 +Inlining cast *((char *)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct ATARI_PIA*) 54016 +Simplifying constant pointer cast (struct ATARI_PIA *) 54016 Simplifying constant integer cast 7 -Simplifying constant pointer cast (struct __pia*) 54016 +Simplifying constant pointer cast (struct __pia *) 54016 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)(struct __pia*) 54016 in [0] *((byte*)(struct __pia*) 54016+OFFSET_STRUCT___PIA_PORTA) = 7 -Simplifying expression containing zero (byte*)PIA2 in [1] *((byte*)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = 7 +Simplifying expression containing zero (char *)(struct __pia *) 54016 in [0] *((char *)(struct __pia *) 54016+OFFSET_STRUCT___PIA_PORTA) = 7 +Simplifying expression containing zero (char *)PIA2 in [1] *((char *)PIA2+OFFSET_STRUCT_ATARI_PIA_PORTA) = 7 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT___PIA_PORTA Eliminating unused constant OFFSET_STRUCT_ATARI_PIA_PORTA @@ -61,8 +61,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)(struct __pia*) 54016) = 7 - [1] *((byte*)PIA2) = 7 + [0] *((char *)(struct __pia *) 54016) = 7 + [1] *((char *)PIA2) = 7 to:main::@return main::@return: scope:[main] from main [2] return @@ -75,8 +75,8 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)(struct __pia*) 54016) = 7 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)PIA2) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)(struct __pia *) 54016) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)PIA2) = 7 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [__pia] @@ -107,10 +107,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)(struct __pia*) 54016) = 7 -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct __pia *) 54016) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta $d300 - // [1] *((byte*)PIA2) = 7 -- _deref_pbuc1=vbuc2 + // [1] *((char *)PIA2) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta PIA2 jmp __breturn @@ -130,7 +130,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct ATARI_PIA* const PIA2 = (struct ATARI_PIA*) 54016 +__constant struct ATARI_PIA * const PIA2 = (struct ATARI_PIA *) 54016 void main() @@ -156,11 +156,11 @@ Score: 16 // main main: { // PIA1.porta = 7 - // [0] *((byte*)(struct __pia*) 54016) = 7 -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct __pia *) 54016) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta $d300 // PIA2->PORTA = 7 - // [1] *((byte*)PIA2) = 7 -- _deref_pbuc1=vbuc2 + // [1] *((char *)PIA2) = 7 -- _deref_pbuc1=vbuc2 sta PIA2 // main::@return // } diff --git a/src/test/ref/chipset-test.sym b/src/test/ref/chipset-test.sym index 4326bc318..69faa383d 100644 --- a/src/test/ref/chipset-test.sym +++ b/src/test/ref/chipset-test.sym @@ -1,3 +1,3 @@ -constant struct ATARI_PIA* const PIA2 = (struct ATARI_PIA*) 54016 +__constant struct ATARI_PIA * const PIA2 = (struct ATARI_PIA *) 54016 void main() diff --git a/src/test/ref/cia-timer-cyclecount.asm b/src/test/ref/cia-timer-cyclecount.asm index 99c2c1352..ffad86e7d 100644 --- a/src/test/ref/cia-timer-cyclecount.asm +++ b/src/test/ref/cia-timer-cyclecount.asm @@ -111,7 +111,7 @@ clock: { rts } // Print a unsigned long as HEX at a specific position -// print_ulong_at(dword zp(9) dw) +// void print_ulong_at(__zp(9) unsigned long dw, char *at) print_ulong_at: { .label dw = 9 // print_uint_at(WORD1(dw), at) @@ -138,7 +138,7 @@ print_ulong_at: { rts } // Print a unsigned int as HEX at a specific position -// print_uint_at(word zp(2) w, byte* zp(4) at) +// void print_uint_at(__zp(2) unsigned int w, __zp(4) char *at) print_uint_at: { .label w = 2 .label at = 4 @@ -161,7 +161,7 @@ print_uint_at: { rts } // Print a char as HEX at a specific position -// print_uchar_at(byte zp(6) b, byte* zp(4) at) +// void print_uchar_at(__zp(6) char b, __zp(4) char *at) print_uchar_at: { .label b = 6 .label at = 4 @@ -198,7 +198,7 @@ print_uchar_at: { rts } // Print a single char -// print_char_at(byte register(X) ch, byte* zp(7) at) +// void print_char_at(__register(X) char ch, __zp(7) char *at) print_char_at: { .label at = 7 // *(at) = ch diff --git a/src/test/ref/cia-timer-cyclecount.cfg b/src/test/ref/cia-timer-cyclecount.cfg index 1d7172a17..7b4c3d8ae 100644 --- a/src/test/ref/cia-timer-cyclecount.cfg +++ b/src/test/ref/cia-timer-cyclecount.cfg @@ -5,92 +5,92 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] phi() - [2] call clock_start + [2] call clock_start to:main::@2 main::@2: scope:[main] from main::@1 asm { nop } - [4] call clock + [4] call clock [5] clock::return#2 = clock::return#0 to:main::@3 main::@3: scope:[main] from main::@2 [6] main::$1 = clock::return#2 [7] main::cyclecount#0 = main::$1 - CLOCKS_PER_INIT [8] print_ulong_at::dw#0 = main::cyclecount#0 - [9] call print_ulong_at + [9] call print_ulong_at to:main::@1 void clock_start() clock_start: scope:[clock_start] from main::@1 - [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 - [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [12] *CIA2_TIMER_AB = $ffffffff - [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start [15] return to:@return -dword clock() +unsigned long clock() clock: scope:[clock] from main::@2 - [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [16] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB - [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [18] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock::@return clock::@return: scope:[clock] from clock [19] return to:@return -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) +void print_ulong_at(unsigned long dw , char *at) print_ulong_at: scope:[print_ulong_at] from main::@3 [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 - [21] call print_uint_at + [21] call print_uint_at to:print_ulong_at::@1 print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 - [23] call print_uint_at + [23] call print_uint_at to:print_ulong_at::@return print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1 [24] return to:@return -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) +void print_uint_at(unsigned int w , char *at) print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1 [25] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 ) [25] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 ) [26] print_uchar_at::b#0 = byte1 print_uint_at::w#2 [27] print_uchar_at::at#0 = print_uint_at::at#2 - [28] call print_uchar_at + [28] call print_uchar_at to:print_uint_at::@1 print_uint_at::@1: scope:[print_uint_at] from print_uint_at [29] print_uchar_at::b#1 = byte0 print_uint_at::w#2 [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2 - [31] call print_uchar_at + [31] call print_uchar_at to:print_uint_at::@return print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1 [32] return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1 [33] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 ) [33] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 ) [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [35] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] [36] print_char_at::at#0 = print_uchar_at::at#2 - [37] call print_char_at + [37] call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f [39] print_char_at::at#1 = print_uchar_at::at#2 + 1 [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] - [41] call print_char_at + [41] call print_char_at to:print_uchar_at::@return print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1 [42] return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1 [43] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 ) [43] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 ) diff --git a/src/test/ref/cia-timer-cyclecount.log b/src/test/ref/cia-timer-cyclecount.log index 94054c20c..82cb1c2e4 100644 --- a/src/test/ref/cia-timer-cyclecount.log +++ b/src/test/ref/cia-timer-cyclecount.log @@ -1,15 +1,15 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement clock::$0 Eliminating unused variable with no statement main::$2 CONTROL FLOW GRAPH SSA -dword clock() +unsigned long clock() clock: scope:[clock] from main::@3 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES clock::ticks#0 = $ffffffff - *CIA2_TIMER_AB - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES clock::return#0 = clock::ticks#0 to:clock::@return clock::@return: scope:[clock] from clock @@ -20,24 +20,24 @@ clock::@return: scope:[clock] from clock void clock_start() clock_start: scope:[clock_start] from main::@2 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A *CIA2_TIMER_AB = $ffffffff - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start return to:@return -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) +void print_uint_at(unsigned int w , char *at) print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1 print_uint_at::at#2 = phi( print_ulong_at/print_uint_at::at#0, print_ulong_at::@1/print_uint_at::at#1 ) print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 ) print_uint_at::$0 = byte1 print_uint_at::w#2 print_uchar_at::b#0 = print_uint_at::$0 print_uchar_at::at#0 = print_uint_at::at#2 - call print_uchar_at + call print_uchar_at to:print_uint_at::@1 print_uint_at::@1: scope:[print_uint_at] from print_uint_at print_uint_at::at#3 = phi( print_uint_at/print_uint_at::at#2 ) @@ -46,7 +46,7 @@ print_uint_at::@1: scope:[print_uint_at] from print_uint_at print_uint_at::$3 = print_uint_at::at#3 + 2 print_uchar_at::b#1 = print_uint_at::$2 print_uchar_at::at#1 = print_uint_at::$3 - call print_uchar_at + call print_uchar_at to:print_uint_at::@2 print_uint_at::@2: scope:[print_uint_at] from print_uint_at::@1 to:print_uint_at::@return @@ -54,14 +54,14 @@ print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@2 return to:@return -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) +void print_ulong_at(unsigned long dw , char *at) print_ulong_at: scope:[print_ulong_at] from main::@4 print_ulong_at::at#1 = phi( main::@4/print_ulong_at::at#0 ) print_ulong_at::dw#1 = phi( main::@4/print_ulong_at::dw#0 ) print_ulong_at::$0 = word1 print_ulong_at::dw#1 print_uint_at::w#0 = print_ulong_at::$0 print_uint_at::at#0 = print_ulong_at::at#1 - call print_uint_at + call print_uint_at to:print_ulong_at::@1 print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at print_ulong_at::at#2 = phi( print_ulong_at/print_ulong_at::at#1 ) @@ -70,7 +70,7 @@ print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at print_ulong_at::$3 = print_ulong_at::at#2 + 4 print_uint_at::w#1 = print_ulong_at::$2 print_uint_at::at#1 = print_ulong_at::$3 - call print_uint_at + call print_uint_at to:print_ulong_at::@2 print_ulong_at::@2: scope:[print_ulong_at] from print_ulong_at::@1 to:print_ulong_at::@return @@ -78,14 +78,14 @@ print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@2 return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1 print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 ) print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 ) print_uchar_at::$0 = print_uchar_at::b#2 >> 4 print_char_at::ch#0 = print_hextab[print_uchar_at::$0] print_char_at::at#0 = print_uchar_at::at#2 - call print_char_at + call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at print_uchar_at::at#3 = phi( print_uchar_at/print_uchar_at::at#2 ) @@ -94,7 +94,7 @@ print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at print_uchar_at::$3 = print_uchar_at::at#3 + 1 print_char_at::ch#1 = print_hextab[print_uchar_at::$2] print_char_at::at#1 = print_uchar_at::$3 - call print_char_at + call print_char_at to:print_uchar_at::@2 print_uchar_at::@2: scope:[print_uchar_at] from print_uchar_at::@1 to:print_uchar_at::@return @@ -102,7 +102,7 @@ print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@2 return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1 print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 ) print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 ) @@ -119,11 +119,11 @@ main::@1: scope:[main] from main main::@5 if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - call clock_start + call clock_start to:main::@3 main::@3: scope:[main] from main::@2 asm { nop } - call clock + call clock clock::return#2 = clock::return#1 to:main::@4 main::@4: scope:[main] from main::@3 @@ -132,7 +132,7 @@ main::@4: scope:[main] from main::@3 main::cyclecount#0 = main::$1 - CLOCKS_PER_INIT print_ulong_at::dw#0 = main::cyclecount#0 print_ulong_at::at#0 = SCREEN - call print_ulong_at + call print_ulong_at to:main::@5 main::@5: scope:[main] from main::@4 to:main::@1 @@ -146,7 +146,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -155,86 +155,86 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant dword* const CIA2_TIMER_AB = (dword*)$dd04 -constant const byte CIA_TIMER_CONTROL_A_COUNT_CYCLES = 0 -constant const byte CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 -constant const byte CIA_TIMER_CONTROL_CONTINUOUS = 0 -constant const byte CIA_TIMER_CONTROL_START = 1 -constant const byte CIA_TIMER_CONTROL_STOP = 0 -constant const dword CLOCKS_PER_INIT = $12 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*)$400 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant unsigned long * const CIA2_TIMER_AB = (unsigned long *)$dd04 +__constant const char CIA_TIMER_CONTROL_A_COUNT_CYCLES = 0 +__constant const char CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 +__constant const char CIA_TIMER_CONTROL_CONTINUOUS = 0 +__constant const char CIA_TIMER_CONTROL_START = 1 +__constant const char CIA_TIMER_CONTROL_STOP = 0 +__constant const unsigned long CLOCKS_PER_INIT = $12 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *)$400 void __start() -dword clock() -dword clock::return -dword clock::return#0 -dword clock::return#1 -dword clock::return#2 -dword clock::return#3 -dword clock::return#4 -dword clock::ticks -dword clock::ticks#0 +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 +unsigned long clock::return#1 +unsigned long clock::return#2 +unsigned long clock::return#3 +unsigned long clock::return#4 +unsigned long clock::ticks +unsigned long clock::ticks#0 void clock_start() void main() -dword~ main::$1 -dword main::cyclecount -dword main::cyclecount#0 -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 -byte* print_char_at::at#1 -byte* print_char_at::at#2 -byte print_char_at::ch -byte print_char_at::ch#0 -byte print_char_at::ch#1 -byte print_char_at::ch#2 -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 -number~ print_uchar_at::$2 -byte*~ print_uchar_at::$3 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 -byte* print_uchar_at::at#1 -byte* print_uchar_at::at#2 -byte* print_uchar_at::at#3 -byte print_uchar_at::b -byte print_uchar_at::b#0 -byte print_uchar_at::b#1 -byte print_uchar_at::b#2 -byte print_uchar_at::b#3 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte~ print_uint_at::$0 -byte~ print_uint_at::$2 -byte*~ print_uint_at::$3 -byte* print_uint_at::at -byte* print_uint_at::at#0 -byte* print_uint_at::at#1 -byte* print_uint_at::at#2 -byte* print_uint_at::at#3 -word print_uint_at::w -word print_uint_at::w#0 -word print_uint_at::w#1 -word print_uint_at::w#2 -word print_uint_at::w#3 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -word~ print_ulong_at::$0 -word~ print_ulong_at::$2 -byte*~ print_ulong_at::$3 -byte* print_ulong_at::at -byte* print_ulong_at::at#0 -byte* print_ulong_at::at#1 -byte* print_ulong_at::at#2 -dword print_ulong_at::dw -dword print_ulong_at::dw#0 -dword print_ulong_at::dw#1 -dword print_ulong_at::dw#2 +unsigned long main::$1 +unsigned long main::cyclecount +unsigned long main::cyclecount#0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 +char *print_char_at::at#1 +char *print_char_at::at#2 +char print_char_at::ch +char print_char_at::ch#0 +char print_char_at::ch#1 +char print_char_at::ch#2 +__constant const char print_hextab[] = "0123456789abcdef"z +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 +number print_uchar_at::$2 +char *print_uchar_at::$3 +char *print_uchar_at::at +char *print_uchar_at::at#0 +char *print_uchar_at::at#1 +char *print_uchar_at::at#2 +char *print_uchar_at::at#3 +char print_uchar_at::b +char print_uchar_at::b#0 +char print_uchar_at::b#1 +char print_uchar_at::b#2 +char print_uchar_at::b#3 +void print_uint_at(unsigned int w , char *at) +char print_uint_at::$0 +char print_uint_at::$2 +char *print_uint_at::$3 +char *print_uint_at::at +char *print_uint_at::at#0 +char *print_uint_at::at#1 +char *print_uint_at::at#2 +char *print_uint_at::at#3 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 +unsigned int print_uint_at::w#1 +unsigned int print_uint_at::w#2 +unsigned int print_uint_at::w#3 +void print_ulong_at(unsigned long dw , char *at) +unsigned int print_ulong_at::$0 +unsigned int print_ulong_at::$2 +char *print_ulong_at::$3 +char *print_ulong_at::at +char *print_ulong_at::at#0 +char *print_ulong_at::at#1 +char *print_ulong_at::at#2 +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 +unsigned long print_ulong_at::dw#1 +unsigned long print_ulong_at::dw#2 Adding number conversion cast (unumber) $ffffffff in clock::ticks#0 = $ffffffff - *CIA2_TIMER_AB Adding number conversion cast (unumber) $ffffffff in *CIA2_TIMER_AB = $ffffffff @@ -247,9 +247,9 @@ Adding number conversion cast (unumber) 1 in print_uchar_at::$3 = print_uchar_at Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *CIA2_TIMER_AB = (unumber)$ffffffff Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (dword*) 56580 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (unsigned long *) 56580 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $ffffffff Simplifying constant integer cast $ffffffff Simplifying constant integer cast 2 @@ -258,15 +258,15 @@ Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (dword) $ffffffff -Finalized unsigned number type (dword) $ffffffff -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (unsigned long) $ffffffff +Finalized unsigned number type (unsigned long) $ffffffff +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar_at::$2 = print_uchar_at::b#3 & $f +Inferred type updated to char in print_uchar_at::$2 = print_uchar_at::b#3 & $f Alias clock::return#0 = clock::ticks#0 clock::return#3 clock::return#1 Alias print_uchar_at::b#0 = print_uint_at::$0 Alias print_uint_at::w#2 = print_uint_at::w#3 @@ -292,17 +292,17 @@ Constant print_uint_at::at#0 = print_ulong_at::at#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [39] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [4] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [4] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [5] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [2] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [5] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES Successful SSA optimization PassNSimplifyExpressionWithZero -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [2] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -327,10 +327,10 @@ Constant inlined print_ulong_at::at#0 = SCREEN Constant inlined print_uint_at::at#1 = SCREEN+4 Constant inlined print_uint_at::at#0 = SCREEN Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -376,92 +376,92 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] phi() - [2] call clock_start + [2] call clock_start to:main::@2 main::@2: scope:[main] from main::@1 asm { nop } - [4] call clock + [4] call clock [5] clock::return#2 = clock::return#0 to:main::@3 main::@3: scope:[main] from main::@2 [6] main::$1 = clock::return#2 [7] main::cyclecount#0 = main::$1 - CLOCKS_PER_INIT [8] print_ulong_at::dw#0 = main::cyclecount#0 - [9] call print_ulong_at + [9] call print_ulong_at to:main::@1 void clock_start() clock_start: scope:[clock_start] from main::@1 - [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 - [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [12] *CIA2_TIMER_AB = $ffffffff - [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start [15] return to:@return -dword clock() +unsigned long clock() clock: scope:[clock] from main::@2 - [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [16] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB - [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [18] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock::@return clock::@return: scope:[clock] from clock [19] return to:@return -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) +void print_ulong_at(unsigned long dw , char *at) print_ulong_at: scope:[print_ulong_at] from main::@3 [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 - [21] call print_uint_at + [21] call print_uint_at to:print_ulong_at::@1 print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 - [23] call print_uint_at + [23] call print_uint_at to:print_ulong_at::@return print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1 [24] return to:@return -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) +void print_uint_at(unsigned int w , char *at) print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1 [25] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 ) [25] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 ) [26] print_uchar_at::b#0 = byte1 print_uint_at::w#2 [27] print_uchar_at::at#0 = print_uint_at::at#2 - [28] call print_uchar_at + [28] call print_uchar_at to:print_uint_at::@1 print_uint_at::@1: scope:[print_uint_at] from print_uint_at [29] print_uchar_at::b#1 = byte0 print_uint_at::w#2 [30] print_uchar_at::at#1 = print_uint_at::at#2 + 2 - [31] call print_uchar_at + [31] call print_uchar_at to:print_uint_at::@return print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1 [32] return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1 [33] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 ) [33] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 ) [34] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [35] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] [36] print_char_at::at#0 = print_uchar_at::at#2 - [37] call print_char_at + [37] call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at [38] print_uchar_at::$2 = print_uchar_at::b#2 & $f [39] print_char_at::at#1 = print_uchar_at::at#2 + 1 [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] - [41] call print_char_at + [41] call print_char_at to:print_uchar_at::@return print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1 [42] return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1 [43] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 ) [43] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 ) @@ -473,47 +473,47 @@ print_char_at::@return: scope:[print_char_at] from print_char_at VARIABLE REGISTER WEIGHTS -dword clock() -dword clock::return -dword clock::return#0 28.0 -dword clock::return#2 22.0 -dword clock::ticks +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 // 28.0 +unsigned long clock::return#2 // 22.0 +unsigned long clock::ticks void clock_start() void main() -dword~ main::$1 22.0 -dword main::cyclecount -dword main::cyclecount#0 22.0 -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 20002.0 -byte* print_char_at::at#1 10001.0 -byte* print_char_at::at#2 120003.0 -byte print_char_at::ch -byte print_char_at::ch#0 10001.0 -byte print_char_at::ch#1 20002.0 -byte print_char_at::ch#2 120003.0 -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 20002.0 -byte~ print_uchar_at::$2 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 2002.0 -byte* print_uchar_at::at#1 2002.0 -byte* print_uchar_at::at#2 3667.333333333333 -byte print_uchar_at::b -byte print_uchar_at::b#0 1001.0 -byte print_uchar_at::b#1 1001.0 -byte print_uchar_at::b#2 4400.8 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte* print_uint_at::at -byte* print_uint_at::at#2 400.4 -word print_uint_at::w -word print_uint_at::w#0 202.0 -word print_uint_at::w#1 202.0 -word print_uint_at::w#2 551.0 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -byte* print_ulong_at::at -dword print_ulong_at::dw -dword print_ulong_at::dw#0 71.0 +unsigned long main::$1 // 22.0 +unsigned long main::cyclecount +unsigned long main::cyclecount#0 // 22.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // 20002.0 +char *print_char_at::at#1 // 10001.0 +char *print_char_at::at#2 // 120003.0 +char print_char_at::ch +char print_char_at::ch#0 // 10001.0 +char print_char_at::ch#1 // 20002.0 +char print_char_at::ch#2 // 120003.0 +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // 20002.0 +char print_uchar_at::$2 // 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // 2002.0 +char *print_uchar_at::at#1 // 2002.0 +char *print_uchar_at::at#2 // 3667.333333333333 +char print_uchar_at::b +char print_uchar_at::b#0 // 1001.0 +char print_uchar_at::b#1 // 1001.0 +char print_uchar_at::b#2 // 4400.8 +void print_uint_at(unsigned int w , char *at) +char *print_uint_at::at +char *print_uint_at::at#2 // 400.4 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 // 202.0 +unsigned int print_uint_at::w#1 // 202.0 +unsigned int print_uint_at::w#2 // 551.0 +void print_ulong_at(unsigned long dw , char *at) +char *print_ulong_at::at +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 // 71.0 Initial phi equivalence classes [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] @@ -561,14 +561,14 @@ Statement [5] clock::return#2 = clock::return#0 [ clock::return#2 ] ( [ clock:: Statement [6] main::$1 = clock::return#2 [ main::$1 ] ( [ main::$1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a Statement [7] main::cyclecount#0 = main::$1 - CLOCKS_PER_INIT [ main::cyclecount#0 ] ( [ main::cyclecount#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a Statement [8] print_ulong_at::dw#0 = main::cyclecount#0 [ print_ulong_at::dw#0 ] ( [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a -Statement [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a Statement [12] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:4 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [16] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:4 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [18] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:9 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:9 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [27] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:9::print_uint_at:21 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a @@ -586,14 +586,14 @@ Statement [5] clock::return#2 = clock::return#0 [ clock::return#2 ] ( [ clock:: Statement [6] main::$1 = clock::return#2 [ main::$1 ] ( [ main::$1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a Statement [7] main::cyclecount#0 = main::$1 - CLOCKS_PER_INIT [ main::cyclecount#0 ] ( [ main::cyclecount#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a Statement [8] print_ulong_at::dw#0 = main::cyclecount#0 [ print_ulong_at::dw#0 ] ( [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } } ) always clobbers reg byte a -Statement [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a Statement [12] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a -Statement [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:4 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:2 [ ] { } ) always clobbers reg byte a +Statement [16] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:4 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [17] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [18] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:4 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:9 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [22] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:9 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [27] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:9::print_uint_at:21 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:9::print_uint_at:23 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = main::cyclecount#0 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a @@ -691,7 +691,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call clock_start + // [2] call clock_start // Reset & start the CIA#2 timer A+B jsr clock_start jmp __b2 @@ -699,7 +699,7 @@ main: { __b2: // asm { nop } nop - // [4] call clock + // [4] call clock jsr clock // [5] clock::return#2 = clock::return#0 jmp __b3 @@ -722,7 +722,7 @@ main: { sbc #>CLOCKS_PER_INIT>>$10 sta.z cyclecount+3 // [8] print_ulong_at::dw#0 = main::cyclecount#0 - // [9] call print_ulong_at + // [9] call print_ulong_at // Print cycle count jsr print_ulong_at jmp __b1_from___b3 @@ -731,11 +731,11 @@ main: { // Reset & start the processor clock time. The value can be read using clock(). // This uses CIA #2 Timer A+B on the C64 clock_start: { - // [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // [12] *CIA2_TIMER_AB = $ffffffff -- _deref_pduc1=vduc2 @@ -747,10 +747,10 @@ clock_start: { sta CIA2_TIMER_AB+2 lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 - // [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL jmp __breturn @@ -764,7 +764,7 @@ clock_start: { // This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() clock: { .label return = 9 - // [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [16] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Stop the timer lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -782,7 +782,7 @@ clock: { lda #>$ffffffff>>$10 sbc CIA2_TIMER_AB+3 sta.z return+3 - // [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [18] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 // Start the timer lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -794,7 +794,7 @@ clock: { } // print_ulong_at // Print a unsigned long as HEX at a specific position -// print_ulong_at(dword zp(9) dw) +// void print_ulong_at(__zp(9) unsigned long dw, char *at) print_ulong_at: { .label dw = 9 // [20] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2 @@ -802,7 +802,7 @@ print_ulong_at: { sta.z print_uint_at.w lda.z dw+3 sta.z print_uint_at.w+1 - // [21] call print_uint_at + // [21] call print_uint_at // [25] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at] print_uint_at_from_print_ulong_at: // [25] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1 @@ -820,7 +820,7 @@ print_ulong_at: { sta.z print_uint_at.w lda.z dw+1 sta.z print_uint_at.w+1 - // [23] call print_uint_at + // [23] call print_uint_at // [25] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at] print_uint_at_from___b1: // [25] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1 @@ -838,7 +838,7 @@ print_ulong_at: { } // print_uint_at // Print a unsigned int as HEX at a specific position -// print_uint_at(word zp(2) w, byte* zp(4) at) +// void print_uint_at(__zp(2) unsigned int w, __zp(4) char *at) print_uint_at: { .label w = 2 .label at = 4 @@ -846,7 +846,7 @@ print_uint_at: { lda.z w+1 sta.z print_uchar_at.b // [27] print_uchar_at::at#0 = print_uint_at::at#2 - // [28] call print_uchar_at + // [28] call print_uchar_at // [33] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at] print_uchar_at_from_print_uint_at: // [33] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy @@ -866,7 +866,7 @@ print_uint_at: { bcc !+ inc.z print_uchar_at.at+1 !: - // [31] call print_uchar_at + // [31] call print_uchar_at // [33] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at] print_uchar_at_from___b1: // [33] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy @@ -880,7 +880,7 @@ print_uint_at: { } // print_uchar_at // Print a char as HEX at a specific position -// print_uchar_at(byte zp(6) b, byte* zp(4) at) +// void print_uchar_at(__zp(6) char b, __zp(4) char *at) print_uchar_at: { .label b = 6 .label at = 4 @@ -898,7 +898,7 @@ print_uchar_at: { sta.z print_char_at.at lda.z at+1 sta.z print_char_at.at+1 - // [37] call print_char_at + // [37] call print_char_at // Table of hexadecimal digits // [43] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at] print_char_at_from_print_uchar_at: @@ -922,7 +922,7 @@ print_uchar_at: { sta.z print_char_at.at+1 // [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx print_hextab,y - // [41] call print_char_at + // [41] call print_char_at // [43] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at] print_char_at_from___b1: // [43] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy @@ -936,7 +936,7 @@ print_uchar_at: { } // print_char_at // Print a single char -// print_char_at(byte register(X) ch, byte* zp(7) at) +// void print_char_at(__register(X) char ch, __zp(7) char *at) print_char_at: { .label at = 7 // [44] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx @@ -991,60 +991,60 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant dword* const CIA2_TIMER_AB = (dword*) 56580 -constant const byte CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 -constant const byte CIA_TIMER_CONTROL_START = 1 -constant const dword CLOCKS_PER_INIT = $12 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 -dword clock() -dword clock::return -dword clock::return#0 return zp[4]:9 28.0 -dword clock::return#2 return zp[4]:9 22.0 -dword clock::ticks +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant unsigned long * const CIA2_TIMER_AB = (unsigned long *) 56580 +__constant const char CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 +__constant const char CIA_TIMER_CONTROL_START = 1 +__constant const unsigned long CLOCKS_PER_INIT = $12 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 // return zp[4]:9 28.0 +unsigned long clock::return#2 // return zp[4]:9 22.0 +unsigned long clock::ticks void clock_start() void main() -dword~ main::$1 zp[4]:9 22.0 -dword main::cyclecount -dword main::cyclecount#0 cyclecount zp[4]:9 22.0 -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 at zp[2]:7 20002.0 -byte* print_char_at::at#1 at zp[2]:7 10001.0 -byte* print_char_at::at#2 at zp[2]:7 120003.0 -byte print_char_at::ch -byte print_char_at::ch#0 reg byte x 10001.0 -byte print_char_at::ch#1 reg byte x 20002.0 -byte print_char_at::ch#2 reg byte x 120003.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 reg byte a 20002.0 -byte~ print_uchar_at::$2 reg byte y 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 at zp[2]:4 2002.0 -byte* print_uchar_at::at#1 at zp[2]:4 2002.0 -byte* print_uchar_at::at#2 at zp[2]:4 3667.333333333333 -byte print_uchar_at::b -byte print_uchar_at::b#0 b zp[1]:6 1001.0 -byte print_uchar_at::b#1 b zp[1]:6 1001.0 -byte print_uchar_at::b#2 b zp[1]:6 4400.8 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte* print_uint_at::at -byte* print_uint_at::at#2 at zp[2]:4 400.4 -word print_uint_at::w -word print_uint_at::w#0 w zp[2]:2 202.0 -word print_uint_at::w#1 w zp[2]:2 202.0 -word print_uint_at::w#2 w zp[2]:2 551.0 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -byte* print_ulong_at::at -dword print_ulong_at::dw -dword print_ulong_at::dw#0 dw zp[4]:9 71.0 +unsigned long main::$1 // zp[4]:9 22.0 +unsigned long main::cyclecount +unsigned long main::cyclecount#0 // cyclecount zp[4]:9 22.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // at zp[2]:7 20002.0 +char *print_char_at::at#1 // at zp[2]:7 10001.0 +char *print_char_at::at#2 // at zp[2]:7 120003.0 +char print_char_at::ch +char print_char_at::ch#0 // reg byte x 10001.0 +char print_char_at::ch#1 // reg byte x 20002.0 +char print_char_at::ch#2 // reg byte x 120003.0 +__constant const char print_hextab[] = "0123456789abcdef"z +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // reg byte a 20002.0 +char print_uchar_at::$2 // reg byte y 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // at zp[2]:4 2002.0 +char *print_uchar_at::at#1 // at zp[2]:4 2002.0 +char *print_uchar_at::at#2 // at zp[2]:4 3667.333333333333 +char print_uchar_at::b +char print_uchar_at::b#0 // b zp[1]:6 1001.0 +char print_uchar_at::b#1 // b zp[1]:6 1001.0 +char print_uchar_at::b#2 // b zp[1]:6 4400.8 +void print_uint_at(unsigned int w , char *at) +char *print_uint_at::at +char *print_uint_at::at#2 // at zp[2]:4 400.4 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#1 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#2 // w zp[2]:2 551.0 +void print_ulong_at(unsigned long dw , char *at) +char *print_ulong_at::at +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 // dw zp[4]:9 71.0 zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] @@ -1094,7 +1094,7 @@ main: { // main::@1 __b1: // clock_start() - // [2] call clock_start + // [2] call clock_start // Reset & start the CIA#2 timer A+B jsr clock_start // main::@2 @@ -1102,7 +1102,7 @@ main: { // asm { nop } nop // clock() - // [4] call clock + // [4] call clock jsr clock // [5] clock::return#2 = clock::return#0 // main::@3 @@ -1125,7 +1125,7 @@ main: { sta.z cyclecount+3 // print_ulong_at(cyclecount, SCREEN) // [8] print_ulong_at::dw#0 = main::cyclecount#0 - // [9] call print_ulong_at + // [9] call print_ulong_at // Print cycle count jsr print_ulong_at jmp __b1 @@ -1135,12 +1135,12 @@ main: { // This uses CIA #2 Timer A+B on the C64 clock_start: { // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // CIA2->TIMER_B_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - // [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // *CIA2_TIMER_AB = 0xffffffff @@ -1154,11 +1154,11 @@ clock_start: { lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 // CIA2->TIMER_B_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - // [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [14] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [14] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // clock_start::@return @@ -1172,7 +1172,7 @@ clock_start: { clock: { .label return = 9 // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [16] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [16] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Stop the timer lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -1192,7 +1192,7 @@ clock: { sbc CIA2_TIMER_AB+3 sta.z return+3 // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [18] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [18] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 // Start the timer lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -1203,7 +1203,7 @@ clock: { } // print_ulong_at // Print a unsigned long as HEX at a specific position -// print_ulong_at(dword zp(9) dw) +// void print_ulong_at(__zp(9) unsigned long dw, char *at) print_ulong_at: { .label dw = 9 // print_uint_at(WORD1(dw), at) @@ -1212,7 +1212,7 @@ print_ulong_at: { sta.z print_uint_at.w lda.z dw+3 sta.z print_uint_at.w+1 - // [21] call print_uint_at + // [21] call print_uint_at // [25] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at] // [25] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1 lda #print_uint_at] // [25] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1 lda #print_uchar_at] // [33] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy // [33] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy @@ -1271,7 +1271,7 @@ print_uint_at: { bcc !+ inc.z print_uchar_at.at+1 !: - // [31] call print_uchar_at + // [31] call print_uchar_at // [33] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at] // [33] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy // [33] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy @@ -1283,7 +1283,7 @@ print_uint_at: { } // print_uchar_at // Print a char as HEX at a specific position -// print_uchar_at(byte zp(6) b, byte* zp(4) at) +// void print_uchar_at(__zp(6) char b, __zp(4) char *at) print_uchar_at: { .label b = 6 .label at = 4 @@ -1303,7 +1303,7 @@ print_uchar_at: { sta.z print_char_at.at lda.z at+1 sta.z print_char_at.at+1 - // [37] call print_char_at + // [37] call print_char_at // Table of hexadecimal digits // [43] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at] // [43] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy @@ -1326,7 +1326,7 @@ print_uchar_at: { sta.z print_char_at.at+1 // [40] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx print_hextab,y - // [41] call print_char_at + // [41] call print_char_at // [43] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at] // [43] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy // [43] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy @@ -1338,7 +1338,7 @@ print_uchar_at: { } // print_char_at // Print a single char -// print_char_at(byte register(X) ch, byte* zp(7) at) +// void print_char_at(__register(X) char ch, __zp(7) char *at) print_char_at: { .label at = 7 // *(at) = ch diff --git a/src/test/ref/cia-timer-cyclecount.sym b/src/test/ref/cia-timer-cyclecount.sym index 81b4cd52f..bafe36cb7 100644 --- a/src/test/ref/cia-timer-cyclecount.sym +++ b/src/test/ref/cia-timer-cyclecount.sym @@ -1,57 +1,57 @@ -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant dword* const CIA2_TIMER_AB = (dword*) 56580 -constant const byte CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 -constant const byte CIA_TIMER_CONTROL_START = 1 -constant const dword CLOCKS_PER_INIT = $12 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 -dword clock() -dword clock::return -dword clock::return#0 return zp[4]:9 28.0 -dword clock::return#2 return zp[4]:9 22.0 -dword clock::ticks +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant unsigned long * const CIA2_TIMER_AB = (unsigned long *) 56580 +__constant const char CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 +__constant const char CIA_TIMER_CONTROL_START = 1 +__constant const unsigned long CLOCKS_PER_INIT = $12 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 // return zp[4]:9 28.0 +unsigned long clock::return#2 // return zp[4]:9 22.0 +unsigned long clock::ticks void clock_start() void main() -dword~ main::$1 zp[4]:9 22.0 -dword main::cyclecount -dword main::cyclecount#0 cyclecount zp[4]:9 22.0 -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 at zp[2]:7 20002.0 -byte* print_char_at::at#1 at zp[2]:7 10001.0 -byte* print_char_at::at#2 at zp[2]:7 120003.0 -byte print_char_at::ch -byte print_char_at::ch#0 reg byte x 10001.0 -byte print_char_at::ch#1 reg byte x 20002.0 -byte print_char_at::ch#2 reg byte x 120003.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 reg byte a 20002.0 -byte~ print_uchar_at::$2 reg byte y 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 at zp[2]:4 2002.0 -byte* print_uchar_at::at#1 at zp[2]:4 2002.0 -byte* print_uchar_at::at#2 at zp[2]:4 3667.333333333333 -byte print_uchar_at::b -byte print_uchar_at::b#0 b zp[1]:6 1001.0 -byte print_uchar_at::b#1 b zp[1]:6 1001.0 -byte print_uchar_at::b#2 b zp[1]:6 4400.8 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte* print_uint_at::at -byte* print_uint_at::at#2 at zp[2]:4 400.4 -word print_uint_at::w -word print_uint_at::w#0 w zp[2]:2 202.0 -word print_uint_at::w#1 w zp[2]:2 202.0 -word print_uint_at::w#2 w zp[2]:2 551.0 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -byte* print_ulong_at::at -dword print_ulong_at::dw -dword print_ulong_at::dw#0 dw zp[4]:9 71.0 +unsigned long main::$1 // zp[4]:9 22.0 +unsigned long main::cyclecount +unsigned long main::cyclecount#0 // cyclecount zp[4]:9 22.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // at zp[2]:7 20002.0 +char *print_char_at::at#1 // at zp[2]:7 10001.0 +char *print_char_at::at#2 // at zp[2]:7 120003.0 +char print_char_at::ch +char print_char_at::ch#0 // reg byte x 10001.0 +char print_char_at::ch#1 // reg byte x 20002.0 +char print_char_at::ch#2 // reg byte x 120003.0 +__constant const char print_hextab[] = "0123456789abcdef"z +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // reg byte a 20002.0 +char print_uchar_at::$2 // reg byte y 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // at zp[2]:4 2002.0 +char *print_uchar_at::at#1 // at zp[2]:4 2002.0 +char *print_uchar_at::at#2 // at zp[2]:4 3667.333333333333 +char print_uchar_at::b +char print_uchar_at::b#0 // b zp[1]:6 1001.0 +char print_uchar_at::b#1 // b zp[1]:6 1001.0 +char print_uchar_at::b#2 // b zp[1]:6 4400.8 +void print_uint_at(unsigned int w , char *at) +char *print_uint_at::at +char *print_uint_at::at#2 // at zp[2]:4 400.4 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#1 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#2 // w zp[2]:2 551.0 +void print_ulong_at(unsigned long dw , char *at) +char *print_ulong_at::at +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 // dw zp[4]:9 71.0 zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] diff --git a/src/test/ref/cia-timer-simple.asm b/src/test/ref/cia-timer-simple.asm index 4339df80d..f2654eeae 100644 --- a/src/test/ref/cia-timer-simple.asm +++ b/src/test/ref/cia-timer-simple.asm @@ -88,7 +88,7 @@ clock: { rts } // Print a unsigned long as HEX at a specific position -// print_ulong_at(dword zp(9) dw) +// void print_ulong_at(__zp(9) unsigned long dw, char *at) print_ulong_at: { .label dw = 9 // print_uint_at(WORD1(dw), at) @@ -115,7 +115,7 @@ print_ulong_at: { rts } // Print a unsigned int as HEX at a specific position -// print_uint_at(word zp(2) w, byte* zp(4) at) +// void print_uint_at(__zp(2) unsigned int w, __zp(4) char *at) print_uint_at: { .label w = 2 .label at = 4 @@ -138,7 +138,7 @@ print_uint_at: { rts } // Print a char as HEX at a specific position -// print_uchar_at(byte zp(6) b, byte* zp(4) at) +// void print_uchar_at(__zp(6) char b, __zp(4) char *at) print_uchar_at: { .label b = 6 .label at = 4 @@ -175,7 +175,7 @@ print_uchar_at: { rts } // Print a single char -// print_char_at(byte register(X) ch, byte* zp(7) at) +// void print_char_at(__register(X) char ch, __zp(7) char *at) print_char_at: { .label at = 7 // *(at) = ch diff --git a/src/test/ref/cia-timer-simple.cfg b/src/test/ref/cia-timer-simple.cfg index ae752ea57..e09e6b765 100644 --- a/src/test/ref/cia-timer-simple.cfg +++ b/src/test/ref/cia-timer-simple.cfg @@ -2,90 +2,90 @@ void main() main: scope:[main] from [0] phi() - [1] call clock_start + [1] call clock_start to:main::@1 main::@1: scope:[main] from main main::@2 [2] phi() - [3] call clock + [3] call clock [4] clock::return#2 = clock::return#0 to:main::@2 main::@2: scope:[main] from main::@1 [5] print_ulong_at::dw#0 = clock::return#2 - [6] call print_ulong_at + [6] call print_ulong_at to:main::@1 void clock_start() clock_start: scope:[clock_start] from main - [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 - [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [9] *CIA2_TIMER_AB = $ffffffff - [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start [12] return to:@return -dword clock() +unsigned long clock() clock: scope:[clock] from main::@1 - [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB - [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [15] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock::@return clock::@return: scope:[clock] from clock [16] return to:@return -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) +void print_ulong_at(unsigned long dw , char *at) print_ulong_at: scope:[print_ulong_at] from main::@2 [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 - [18] call print_uint_at + [18] call print_uint_at to:print_ulong_at::@1 print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 - [20] call print_uint_at + [20] call print_uint_at to:print_ulong_at::@return print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1 [21] return to:@return -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) +void print_uint_at(unsigned int w , char *at) print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1 [22] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 ) [22] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 ) [23] print_uchar_at::b#0 = byte1 print_uint_at::w#2 [24] print_uchar_at::at#0 = print_uint_at::at#2 - [25] call print_uchar_at + [25] call print_uchar_at to:print_uint_at::@1 print_uint_at::@1: scope:[print_uint_at] from print_uint_at [26] print_uchar_at::b#1 = byte0 print_uint_at::w#2 [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2 - [28] call print_uchar_at + [28] call print_uchar_at to:print_uint_at::@return print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1 [29] return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1 [30] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 ) [30] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 ) [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [32] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] [33] print_char_at::at#0 = print_uchar_at::at#2 - [34] call print_char_at + [34] call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f [36] print_char_at::at#1 = print_uchar_at::at#2 + 1 [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] - [38] call print_char_at + [38] call print_char_at to:print_uchar_at::@return print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1 [39] return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1 [40] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 ) [40] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 ) diff --git a/src/test/ref/cia-timer-simple.log b/src/test/ref/cia-timer-simple.log index 2302176bc..e76984397 100644 --- a/src/test/ref/cia-timer-simple.log +++ b/src/test/ref/cia-timer-simple.log @@ -1,14 +1,14 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement clock::$0 CONTROL FLOW GRAPH SSA -dword clock() +unsigned long clock() clock: scope:[clock] from main::@2 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES clock::ticks#0 = $ffffffff - *CIA2_TIMER_AB - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES clock::return#0 = clock::ticks#0 to:clock::@return clock::@return: scope:[clock] from clock @@ -19,24 +19,24 @@ clock::@return: scope:[clock] from clock void clock_start() clock_start: scope:[clock_start] from main - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A *CIA2_TIMER_AB = $ffffffff - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start return to:@return -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) +void print_uint_at(unsigned int w , char *at) print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1 print_uint_at::at#2 = phi( print_ulong_at/print_uint_at::at#0, print_ulong_at::@1/print_uint_at::at#1 ) print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 ) print_uint_at::$0 = byte1 print_uint_at::w#2 print_uchar_at::b#0 = print_uint_at::$0 print_uchar_at::at#0 = print_uint_at::at#2 - call print_uchar_at + call print_uchar_at to:print_uint_at::@1 print_uint_at::@1: scope:[print_uint_at] from print_uint_at print_uint_at::at#3 = phi( print_uint_at/print_uint_at::at#2 ) @@ -45,7 +45,7 @@ print_uint_at::@1: scope:[print_uint_at] from print_uint_at print_uint_at::$3 = print_uint_at::at#3 + 2 print_uchar_at::b#1 = print_uint_at::$2 print_uchar_at::at#1 = print_uint_at::$3 - call print_uchar_at + call print_uchar_at to:print_uint_at::@2 print_uint_at::@2: scope:[print_uint_at] from print_uint_at::@1 to:print_uint_at::@return @@ -53,14 +53,14 @@ print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@2 return to:@return -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) +void print_ulong_at(unsigned long dw , char *at) print_ulong_at: scope:[print_ulong_at] from main::@4 print_ulong_at::at#1 = phi( main::@4/print_ulong_at::at#0 ) print_ulong_at::dw#1 = phi( main::@4/print_ulong_at::dw#0 ) print_ulong_at::$0 = word1 print_ulong_at::dw#1 print_uint_at::w#0 = print_ulong_at::$0 print_uint_at::at#0 = print_ulong_at::at#1 - call print_uint_at + call print_uint_at to:print_ulong_at::@1 print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at print_ulong_at::at#2 = phi( print_ulong_at/print_ulong_at::at#1 ) @@ -69,7 +69,7 @@ print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at print_ulong_at::$3 = print_ulong_at::at#2 + 4 print_uint_at::w#1 = print_ulong_at::$2 print_uint_at::at#1 = print_ulong_at::$3 - call print_uint_at + call print_uint_at to:print_ulong_at::@2 print_ulong_at::@2: scope:[print_ulong_at] from print_ulong_at::@1 to:print_ulong_at::@return @@ -77,14 +77,14 @@ print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@2 return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1 print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 ) print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 ) print_uchar_at::$0 = print_uchar_at::b#2 >> 4 print_char_at::ch#0 = print_hextab[print_uchar_at::$0] print_char_at::at#0 = print_uchar_at::at#2 - call print_char_at + call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at print_uchar_at::at#3 = phi( print_uchar_at/print_uchar_at::at#2 ) @@ -93,7 +93,7 @@ print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at print_uchar_at::$3 = print_uchar_at::at#3 + 1 print_char_at::ch#1 = print_hextab[print_uchar_at::$2] print_char_at::at#1 = print_uchar_at::$3 - call print_char_at + call print_char_at to:print_uchar_at::@2 print_uchar_at::@2: scope:[print_uchar_at] from print_uchar_at::@1 to:print_uchar_at::@return @@ -101,7 +101,7 @@ print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@2 return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1 print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 ) print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 ) @@ -113,7 +113,7 @@ print_char_at::@return: scope:[print_char_at] from print_char_at void main() main: scope:[main] from __start::@1 - call clock_start + call clock_start to:main::@3 main::@3: scope:[main] from main to:main::@1 @@ -121,7 +121,7 @@ main::@1: scope:[main] from main::@3 main::@5 if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - call clock + call clock clock::return#2 = clock::return#1 to:main::@4 main::@4: scope:[main] from main::@2 @@ -129,7 +129,7 @@ main::@4: scope:[main] from main::@2 main::$1 = clock::return#4 print_ulong_at::dw#0 = main::$1 print_ulong_at::at#0 = SCREEN - call print_ulong_at + call print_ulong_at to:main::@5 main::@5: scope:[main] from main::@4 to:main::@1 @@ -143,7 +143,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -152,83 +152,83 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant dword* const CIA2_TIMER_AB = (dword*)$dd04 -constant const byte CIA_TIMER_CONTROL_A_COUNT_CYCLES = 0 -constant const byte CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 -constant const byte CIA_TIMER_CONTROL_CONTINUOUS = 0 -constant const byte CIA_TIMER_CONTROL_START = 1 -constant const byte CIA_TIMER_CONTROL_STOP = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*)$400 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant unsigned long * const CIA2_TIMER_AB = (unsigned long *)$dd04 +__constant const char CIA_TIMER_CONTROL_A_COUNT_CYCLES = 0 +__constant const char CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 +__constant const char CIA_TIMER_CONTROL_CONTINUOUS = 0 +__constant const char CIA_TIMER_CONTROL_START = 1 +__constant const char CIA_TIMER_CONTROL_STOP = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *)$400 void __start() -dword clock() -dword clock::return -dword clock::return#0 -dword clock::return#1 -dword clock::return#2 -dword clock::return#3 -dword clock::return#4 -dword clock::ticks -dword clock::ticks#0 +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 +unsigned long clock::return#1 +unsigned long clock::return#2 +unsigned long clock::return#3 +unsigned long clock::return#4 +unsigned long clock::ticks +unsigned long clock::ticks#0 void clock_start() void main() -dword~ main::$1 -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 -byte* print_char_at::at#1 -byte* print_char_at::at#2 -byte print_char_at::ch -byte print_char_at::ch#0 -byte print_char_at::ch#1 -byte print_char_at::ch#2 -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 -number~ print_uchar_at::$2 -byte*~ print_uchar_at::$3 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 -byte* print_uchar_at::at#1 -byte* print_uchar_at::at#2 -byte* print_uchar_at::at#3 -byte print_uchar_at::b -byte print_uchar_at::b#0 -byte print_uchar_at::b#1 -byte print_uchar_at::b#2 -byte print_uchar_at::b#3 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte~ print_uint_at::$0 -byte~ print_uint_at::$2 -byte*~ print_uint_at::$3 -byte* print_uint_at::at -byte* print_uint_at::at#0 -byte* print_uint_at::at#1 -byte* print_uint_at::at#2 -byte* print_uint_at::at#3 -word print_uint_at::w -word print_uint_at::w#0 -word print_uint_at::w#1 -word print_uint_at::w#2 -word print_uint_at::w#3 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -word~ print_ulong_at::$0 -word~ print_ulong_at::$2 -byte*~ print_ulong_at::$3 -byte* print_ulong_at::at -byte* print_ulong_at::at#0 -byte* print_ulong_at::at#1 -byte* print_ulong_at::at#2 -dword print_ulong_at::dw -dword print_ulong_at::dw#0 -dword print_ulong_at::dw#1 -dword print_ulong_at::dw#2 +unsigned long main::$1 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 +char *print_char_at::at#1 +char *print_char_at::at#2 +char print_char_at::ch +char print_char_at::ch#0 +char print_char_at::ch#1 +char print_char_at::ch#2 +__constant const char print_hextab[] = "0123456789abcdef"z +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 +number print_uchar_at::$2 +char *print_uchar_at::$3 +char *print_uchar_at::at +char *print_uchar_at::at#0 +char *print_uchar_at::at#1 +char *print_uchar_at::at#2 +char *print_uchar_at::at#3 +char print_uchar_at::b +char print_uchar_at::b#0 +char print_uchar_at::b#1 +char print_uchar_at::b#2 +char print_uchar_at::b#3 +void print_uint_at(unsigned int w , char *at) +char print_uint_at::$0 +char print_uint_at::$2 +char *print_uint_at::$3 +char *print_uint_at::at +char *print_uint_at::at#0 +char *print_uint_at::at#1 +char *print_uint_at::at#2 +char *print_uint_at::at#3 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 +unsigned int print_uint_at::w#1 +unsigned int print_uint_at::w#2 +unsigned int print_uint_at::w#3 +void print_ulong_at(unsigned long dw , char *at) +unsigned int print_ulong_at::$0 +unsigned int print_ulong_at::$2 +char *print_ulong_at::$3 +char *print_ulong_at::at +char *print_ulong_at::at#0 +char *print_ulong_at::at#1 +char *print_ulong_at::at#2 +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 +unsigned long print_ulong_at::dw#1 +unsigned long print_ulong_at::dw#2 Adding number conversion cast (unumber) $ffffffff in clock::ticks#0 = $ffffffff - *CIA2_TIMER_AB Adding number conversion cast (unumber) $ffffffff in *CIA2_TIMER_AB = $ffffffff @@ -241,9 +241,9 @@ Adding number conversion cast (unumber) 1 in print_uchar_at::$3 = print_uchar_at Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *CIA2_TIMER_AB = (unumber)$ffffffff Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (dword*) 56580 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (unsigned long *) 56580 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $ffffffff Simplifying constant integer cast $ffffffff Simplifying constant integer cast 2 @@ -252,15 +252,15 @@ Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (dword) $ffffffff -Finalized unsigned number type (dword) $ffffffff -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (unsigned long) $ffffffff +Finalized unsigned number type (unsigned long) $ffffffff +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar_at::$2 = print_uchar_at::b#3 & $f +Inferred type updated to char in print_uchar_at::$2 = print_uchar_at::b#3 & $f Alias clock::return#0 = clock::ticks#0 clock::return#3 clock::return#1 Alias print_uchar_at::b#0 = print_uint_at::$0 Alias print_uint_at::w#2 = print_uint_at::w#3 @@ -287,17 +287,17 @@ Constant print_uint_at::at#0 = print_ulong_at::at#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [40] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [4] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES in [4] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying constant evaluating to zero CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS in [5] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_STOP|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES -Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [2] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES +Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [5] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = 0|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A +Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS|CIA_TIMER_CONTROL_A_COUNT_CYCLES Successful SSA optimization PassNSimplifyExpressionWithZero -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [2] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS -Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [2] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS +Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -322,10 +322,10 @@ Constant inlined print_ulong_at::at#0 = SCREEN Constant inlined print_uint_at::at#1 = SCREEN+4 Constant inlined print_uint_at::at#0 = SCREEN Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -369,90 +369,90 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call clock_start + [1] call clock_start to:main::@1 main::@1: scope:[main] from main main::@2 [2] phi() - [3] call clock + [3] call clock [4] clock::return#2 = clock::return#0 to:main::@2 main::@2: scope:[main] from main::@1 [5] print_ulong_at::dw#0 = clock::return#2 - [6] call print_ulong_at + [6] call print_ulong_at to:main::@1 void clock_start() clock_start: scope:[clock_start] from main - [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 - [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [9] *CIA2_TIMER_AB = $ffffffff - [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A + [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock_start::@return clock_start::@return: scope:[clock_start] from clock_start [12] return to:@return -dword clock() +unsigned long clock() clock: scope:[clock] from main::@1 - [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 + [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB - [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START + [15] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START to:clock::@return clock::@return: scope:[clock] from clock [16] return to:@return -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) +void print_ulong_at(unsigned long dw , char *at) print_ulong_at: scope:[print_ulong_at] from main::@2 [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 - [18] call print_uint_at + [18] call print_uint_at to:print_ulong_at::@1 print_ulong_at::@1: scope:[print_ulong_at] from print_ulong_at [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 - [20] call print_uint_at + [20] call print_uint_at to:print_ulong_at::@return print_ulong_at::@return: scope:[print_ulong_at] from print_ulong_at::@1 [21] return to:@return -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) +void print_uint_at(unsigned int w , char *at) print_uint_at: scope:[print_uint_at] from print_ulong_at print_ulong_at::@1 [22] print_uint_at::at#2 = phi( print_ulong_at/SCREEN, print_ulong_at::@1/SCREEN+4 ) [22] print_uint_at::w#2 = phi( print_ulong_at/print_uint_at::w#0, print_ulong_at::@1/print_uint_at::w#1 ) [23] print_uchar_at::b#0 = byte1 print_uint_at::w#2 [24] print_uchar_at::at#0 = print_uint_at::at#2 - [25] call print_uchar_at + [25] call print_uchar_at to:print_uint_at::@1 print_uint_at::@1: scope:[print_uint_at] from print_uint_at [26] print_uchar_at::b#1 = byte0 print_uint_at::w#2 [27] print_uchar_at::at#1 = print_uint_at::at#2 + 2 - [28] call print_uchar_at + [28] call print_uchar_at to:print_uint_at::@return print_uint_at::@return: scope:[print_uint_at] from print_uint_at::@1 [29] return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_uint_at print_uint_at::@1 [30] print_uchar_at::at#2 = phi( print_uint_at/print_uchar_at::at#0, print_uint_at::@1/print_uchar_at::at#1 ) [30] print_uchar_at::b#2 = phi( print_uint_at/print_uchar_at::b#0, print_uint_at::@1/print_uchar_at::b#1 ) [31] print_uchar_at::$0 = print_uchar_at::b#2 >> 4 [32] print_char_at::ch#0 = print_hextab[print_uchar_at::$0] [33] print_char_at::at#0 = print_uchar_at::at#2 - [34] call print_char_at + [34] call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at [35] print_uchar_at::$2 = print_uchar_at::b#2 & $f [36] print_char_at::at#1 = print_uchar_at::at#2 + 1 [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] - [38] call print_char_at + [38] call print_char_at to:print_uchar_at::@return print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1 [39] return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_uchar_at print_uchar_at::@1 [40] print_char_at::at#2 = phi( print_uchar_at/print_char_at::at#0, print_uchar_at::@1/print_char_at::at#1 ) [40] print_char_at::ch#2 = phi( print_uchar_at/print_char_at::ch#0, print_uchar_at::@1/print_char_at::ch#1 ) @@ -464,44 +464,44 @@ print_char_at::@return: scope:[print_char_at] from print_char_at VARIABLE REGISTER WEIGHTS -dword clock() -dword clock::return -dword clock::return#0 28.0 -dword clock::return#2 22.0 -dword clock::ticks +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 // 28.0 +unsigned long clock::return#2 // 22.0 +unsigned long clock::ticks void clock_start() void main() -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 20002.0 -byte* print_char_at::at#1 10001.0 -byte* print_char_at::at#2 120003.0 -byte print_char_at::ch -byte print_char_at::ch#0 10001.0 -byte print_char_at::ch#1 20002.0 -byte print_char_at::ch#2 120003.0 -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 20002.0 -byte~ print_uchar_at::$2 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 2002.0 -byte* print_uchar_at::at#1 2002.0 -byte* print_uchar_at::at#2 3667.333333333333 -byte print_uchar_at::b -byte print_uchar_at::b#0 1001.0 -byte print_uchar_at::b#1 1001.0 -byte print_uchar_at::b#2 4400.8 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte* print_uint_at::at -byte* print_uint_at::at#2 400.4 -word print_uint_at::w -word print_uint_at::w#0 202.0 -word print_uint_at::w#1 202.0 -word print_uint_at::w#2 551.0 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -byte* print_ulong_at::at -dword print_ulong_at::dw -dword print_ulong_at::dw#0 71.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // 20002.0 +char *print_char_at::at#1 // 10001.0 +char *print_char_at::at#2 // 120003.0 +char print_char_at::ch +char print_char_at::ch#0 // 10001.0 +char print_char_at::ch#1 // 20002.0 +char print_char_at::ch#2 // 120003.0 +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // 20002.0 +char print_uchar_at::$2 // 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // 2002.0 +char *print_uchar_at::at#1 // 2002.0 +char *print_uchar_at::at#2 // 3667.333333333333 +char print_uchar_at::b +char print_uchar_at::b#0 // 1001.0 +char print_uchar_at::b#1 // 1001.0 +char print_uchar_at::b#2 // 4400.8 +void print_uint_at(unsigned int w , char *at) +char *print_uint_at::at +char *print_uint_at::at#2 // 400.4 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 // 202.0 +unsigned int print_uint_at::w#1 // 202.0 +unsigned int print_uint_at::w#2 // 551.0 +void print_ulong_at(unsigned long dw , char *at) +char *print_ulong_at::at +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 // 71.0 Initial phi equivalence classes [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] @@ -541,14 +541,14 @@ Allocated zp[1]:25 [ print_uchar_at::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] clock::return#2 = clock::return#0 [ clock::return#2 ] ( [ clock::return#2 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [5] print_ulong_at::dw#0 = clock::return#2 [ print_ulong_at::dw#0 ] ( [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a Statement [9] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:3 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:3 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [15] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:6 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:6 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [24] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:6::print_uint_at:18 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a @@ -564,14 +564,14 @@ Statement [41] *print_char_at::at#2 = print_char_at::ch#2 [ ] ( print_ulong_at:6 Removing always clobbered register reg byte y as potential for zp[1]:6 [ print_uchar_at::b#2 print_uchar_at::b#0 print_uchar_at::b#1 ] Statement [4] clock::return#2 = clock::return#0 [ clock::return#2 ] ( [ clock::return#2 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [5] print_ulong_at::dw#0 = clock::return#2 [ print_ulong_at::dw#0 ] ( [ print_ulong_at::dw#0 ] { { print_ulong_at::dw#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a Statement [9] *CIA2_TIMER_AB = $ffffffff [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a -Statement [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:3 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ ] ( clock_start:1 [ ] { } ) always clobbers reg byte a +Statement [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 [ ] ( clock:3 [ ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [14] clock::return#0 = $ffffffff - *CIA2_TIMER_AB [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a -Statement [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a +Statement [15] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START [ clock::return#0 ] ( clock:3 [ clock::return#0 ] { { clock::return#0 = clock::return#2 } } ) always clobbers reg byte a Statement [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 [ print_ulong_at::dw#0 print_uint_at::w#0 ] ( print_ulong_at:6 [ print_ulong_at::dw#0 print_uint_at::w#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [19] print_uint_at::w#1 = word0 print_ulong_at::dw#0 [ print_uint_at::w#1 ] ( print_ulong_at:6 [ print_uint_at::w#1 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } } ) always clobbers reg byte a Statement [24] print_uchar_at::at#0 = print_uint_at::at#2 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] ( print_ulong_at:6::print_uint_at:18 [ print_ulong_at::dw#0 print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#0 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } print_ulong_at:6::print_uint_at:20 [ print_uint_at::w#2 print_uint_at::at#2 print_uchar_at::b#0 print_uchar_at::at#0 ] { { print_ulong_at::dw#0 = clock::return#2 } { print_uint_at::w#1 = print_uint_at::w#2 } { print_uchar_at::b#0 = print_uchar_at::b#2 } { print_uchar_at::at#0 = print_uchar_at::at#2 print_uint_at::at#2 } } ) always clobbers reg byte a @@ -654,7 +654,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call clock_start + // [1] call clock_start // Reset & start the CIA#2 timer A+B jsr clock_start // [2] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1] @@ -663,14 +663,14 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call clock + // [3] call clock jsr clock // [4] clock::return#2 = clock::return#0 jmp __b2 // main::@2 __b2: // [5] print_ulong_at::dw#0 = clock::return#2 - // [6] call print_ulong_at + // [6] call print_ulong_at jsr print_ulong_at jmp __b1_from___b2 } @@ -678,11 +678,11 @@ main: { // Reset & start the processor clock time. The value can be read using clock(). // This uses CIA #2 Timer A+B on the C64 clock_start: { - // [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // [9] *CIA2_TIMER_AB = $ffffffff -- _deref_pduc1=vduc2 @@ -694,10 +694,10 @@ clock_start: { sta CIA2_TIMER_AB+2 lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 - // [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL jmp __breturn @@ -711,7 +711,7 @@ clock_start: { // This uses CIA #2 Timer A+B on the C64, and must be initialized using clock_start() clock: { .label return = 9 - // [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Stop the timer lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -729,7 +729,7 @@ clock: { lda #>$ffffffff>>$10 sbc CIA2_TIMER_AB+3 sta.z return+3 - // [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [15] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 // Start the timer lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -741,7 +741,7 @@ clock: { } // print_ulong_at // Print a unsigned long as HEX at a specific position -// print_ulong_at(dword zp(9) dw) +// void print_ulong_at(__zp(9) unsigned long dw, char *at) print_ulong_at: { .label dw = 9 // [17] print_uint_at::w#0 = word1 print_ulong_at::dw#0 -- vwuz1=_word1_vduz2 @@ -749,7 +749,7 @@ print_ulong_at: { sta.z print_uint_at.w lda.z dw+3 sta.z print_uint_at.w+1 - // [18] call print_uint_at + // [18] call print_uint_at // [22] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at] print_uint_at_from_print_ulong_at: // [22] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1 @@ -767,7 +767,7 @@ print_ulong_at: { sta.z print_uint_at.w lda.z dw+1 sta.z print_uint_at.w+1 - // [20] call print_uint_at + // [20] call print_uint_at // [22] phi from print_ulong_at::@1 to print_uint_at [phi:print_ulong_at::@1->print_uint_at] print_uint_at_from___b1: // [22] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1 @@ -785,7 +785,7 @@ print_ulong_at: { } // print_uint_at // Print a unsigned int as HEX at a specific position -// print_uint_at(word zp(2) w, byte* zp(4) at) +// void print_uint_at(__zp(2) unsigned int w, __zp(4) char *at) print_uint_at: { .label w = 2 .label at = 4 @@ -793,7 +793,7 @@ print_uint_at: { lda.z w+1 sta.z print_uchar_at.b // [24] print_uchar_at::at#0 = print_uint_at::at#2 - // [25] call print_uchar_at + // [25] call print_uchar_at // [30] phi from print_uint_at to print_uchar_at [phi:print_uint_at->print_uchar_at] print_uchar_at_from_print_uint_at: // [30] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy @@ -813,7 +813,7 @@ print_uint_at: { bcc !+ inc.z print_uchar_at.at+1 !: - // [28] call print_uchar_at + // [28] call print_uchar_at // [30] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at] print_uchar_at_from___b1: // [30] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy @@ -827,7 +827,7 @@ print_uint_at: { } // print_uchar_at // Print a char as HEX at a specific position -// print_uchar_at(byte zp(6) b, byte* zp(4) at) +// void print_uchar_at(__zp(6) char b, __zp(4) char *at) print_uchar_at: { .label b = 6 .label at = 4 @@ -845,7 +845,7 @@ print_uchar_at: { sta.z print_char_at.at lda.z at+1 sta.z print_char_at.at+1 - // [34] call print_char_at + // [34] call print_char_at // Table of hexadecimal digits // [40] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at] print_char_at_from_print_uchar_at: @@ -869,7 +869,7 @@ print_uchar_at: { sta.z print_char_at.at+1 // [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx print_hextab,y - // [38] call print_char_at + // [38] call print_char_at // [40] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at] print_char_at_from___b1: // [40] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy @@ -883,7 +883,7 @@ print_uchar_at: { } // print_char_at // Print a single char -// print_char_at(byte register(X) ch, byte* zp(7) at) +// void print_char_at(__register(X) char ch, __zp(7) char *at) print_char_at: { .label at = 7 // [41] *print_char_at::at#2 = print_char_at::ch#2 -- _deref_pbuz1=vbuxx @@ -936,56 +936,56 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant dword* const CIA2_TIMER_AB = (dword*) 56580 -constant const byte CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 -constant const byte CIA_TIMER_CONTROL_START = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 -dword clock() -dword clock::return -dword clock::return#0 return zp[4]:9 28.0 -dword clock::return#2 return zp[4]:9 22.0 -dword clock::ticks +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant unsigned long * const CIA2_TIMER_AB = (unsigned long *) 56580 +__constant const char CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 +__constant const char CIA_TIMER_CONTROL_START = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 // return zp[4]:9 28.0 +unsigned long clock::return#2 // return zp[4]:9 22.0 +unsigned long clock::ticks void clock_start() void main() -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 at zp[2]:7 20002.0 -byte* print_char_at::at#1 at zp[2]:7 10001.0 -byte* print_char_at::at#2 at zp[2]:7 120003.0 -byte print_char_at::ch -byte print_char_at::ch#0 reg byte x 10001.0 -byte print_char_at::ch#1 reg byte x 20002.0 -byte print_char_at::ch#2 reg byte x 120003.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 reg byte a 20002.0 -byte~ print_uchar_at::$2 reg byte y 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 at zp[2]:4 2002.0 -byte* print_uchar_at::at#1 at zp[2]:4 2002.0 -byte* print_uchar_at::at#2 at zp[2]:4 3667.333333333333 -byte print_uchar_at::b -byte print_uchar_at::b#0 b zp[1]:6 1001.0 -byte print_uchar_at::b#1 b zp[1]:6 1001.0 -byte print_uchar_at::b#2 b zp[1]:6 4400.8 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte* print_uint_at::at -byte* print_uint_at::at#2 at zp[2]:4 400.4 -word print_uint_at::w -word print_uint_at::w#0 w zp[2]:2 202.0 -word print_uint_at::w#1 w zp[2]:2 202.0 -word print_uint_at::w#2 w zp[2]:2 551.0 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -byte* print_ulong_at::at -dword print_ulong_at::dw -dword print_ulong_at::dw#0 dw zp[4]:9 71.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // at zp[2]:7 20002.0 +char *print_char_at::at#1 // at zp[2]:7 10001.0 +char *print_char_at::at#2 // at zp[2]:7 120003.0 +char print_char_at::ch +char print_char_at::ch#0 // reg byte x 10001.0 +char print_char_at::ch#1 // reg byte x 20002.0 +char print_char_at::ch#2 // reg byte x 120003.0 +__constant const char print_hextab[] = "0123456789abcdef"z +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // reg byte a 20002.0 +char print_uchar_at::$2 // reg byte y 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // at zp[2]:4 2002.0 +char *print_uchar_at::at#1 // at zp[2]:4 2002.0 +char *print_uchar_at::at#2 // at zp[2]:4 3667.333333333333 +char print_uchar_at::b +char print_uchar_at::b#0 // b zp[1]:6 1001.0 +char print_uchar_at::b#1 // b zp[1]:6 1001.0 +char print_uchar_at::b#2 // b zp[1]:6 4400.8 +void print_uint_at(unsigned int w , char *at) +char *print_uint_at::at +char *print_uint_at::at#2 // at zp[2]:4 400.4 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#1 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#2 // w zp[2]:2 551.0 +void print_ulong_at(unsigned long dw , char *at) +char *print_ulong_at::at +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 // dw zp[4]:9 71.0 zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] @@ -1027,20 +1027,20 @@ Score: 467 // main main: { // clock_start() - // [1] call clock_start + // [1] call clock_start // Reset & start the CIA#2 timer A+B jsr clock_start // [2] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1] // main::@1 __b1: // clock() - // [3] call clock + // [3] call clock jsr clock // [4] clock::return#2 = clock::return#0 // main::@2 // print_ulong_at(clock(), SCREEN) // [5] print_ulong_at::dw#0 = clock::return#2 - // [6] call print_ulong_at + // [6] call print_ulong_at jsr print_ulong_at jmp __b1 } @@ -1049,12 +1049,12 @@ main: { // This uses CIA #2 Timer A+B on the C64 clock_start: { // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [7] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Setup CIA#2 timer A to count (down) CPU cycles lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // CIA2->TIMER_B_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - // [8] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [8] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // *CIA2_TIMER_AB = 0xffffffff @@ -1068,11 +1068,11 @@ clock_start: { lda #>$ffffffff>>$10 sta CIA2_TIMER_AB+3 // CIA2->TIMER_B_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A - // [10] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 + // [10] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [11] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [11] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // clock_start::@return @@ -1086,7 +1086,7 @@ clock_start: { clock: { .label return = 9 // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_STOP | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [13] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 + // [13] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 0 -- _deref_pbuc1=vbuc2 // Stop the timer lda #0 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -1106,7 +1106,7 @@ clock: { sbc CIA2_TIMER_AB+3 sta.z return+3 // CIA2->TIMER_A_CONTROL = CIA_TIMER_CONTROL_START | CIA_TIMER_CONTROL_CONTINUOUS | CIA_TIMER_CONTROL_A_COUNT_CYCLES - // [15] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 + // [15] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = CIA_TIMER_CONTROL_START -- _deref_pbuc1=vbuc2 // Start the timer lda #CIA_TIMER_CONTROL_START sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL @@ -1117,7 +1117,7 @@ clock: { } // print_ulong_at // Print a unsigned long as HEX at a specific position -// print_ulong_at(dword zp(9) dw) +// void print_ulong_at(__zp(9) unsigned long dw, char *at) print_ulong_at: { .label dw = 9 // print_uint_at(WORD1(dw), at) @@ -1126,7 +1126,7 @@ print_ulong_at: { sta.z print_uint_at.w lda.z dw+3 sta.z print_uint_at.w+1 - // [18] call print_uint_at + // [18] call print_uint_at // [22] phi from print_ulong_at to print_uint_at [phi:print_ulong_at->print_uint_at] // [22] phi print_uint_at::at#2 = SCREEN [phi:print_ulong_at->print_uint_at#0] -- pbuz1=pbuc1 lda #print_uint_at] // [22] phi print_uint_at::at#2 = SCREEN+4 [phi:print_ulong_at::@1->print_uint_at#0] -- pbuz1=pbuc1 lda #print_uchar_at] // [30] phi print_uchar_at::at#2 = print_uchar_at::at#0 [phi:print_uint_at->print_uchar_at#0] -- register_copy // [30] phi print_uchar_at::b#2 = print_uchar_at::b#0 [phi:print_uint_at->print_uchar_at#1] -- register_copy @@ -1185,7 +1185,7 @@ print_uint_at: { bcc !+ inc.z print_uchar_at.at+1 !: - // [28] call print_uchar_at + // [28] call print_uchar_at // [30] phi from print_uint_at::@1 to print_uchar_at [phi:print_uint_at::@1->print_uchar_at] // [30] phi print_uchar_at::at#2 = print_uchar_at::at#1 [phi:print_uint_at::@1->print_uchar_at#0] -- register_copy // [30] phi print_uchar_at::b#2 = print_uchar_at::b#1 [phi:print_uint_at::@1->print_uchar_at#1] -- register_copy @@ -1197,7 +1197,7 @@ print_uint_at: { } // print_uchar_at // Print a char as HEX at a specific position -// print_uchar_at(byte zp(6) b, byte* zp(4) at) +// void print_uchar_at(__zp(6) char b, __zp(4) char *at) print_uchar_at: { .label b = 6 .label at = 4 @@ -1217,7 +1217,7 @@ print_uchar_at: { sta.z print_char_at.at lda.z at+1 sta.z print_char_at.at+1 - // [34] call print_char_at + // [34] call print_char_at // Table of hexadecimal digits // [40] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at] // [40] phi print_char_at::at#2 = print_char_at::at#0 [phi:print_uchar_at->print_char_at#0] -- register_copy @@ -1240,7 +1240,7 @@ print_uchar_at: { sta.z print_char_at.at+1 // [37] print_char_at::ch#1 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx print_hextab,y - // [38] call print_char_at + // [38] call print_char_at // [40] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at] // [40] phi print_char_at::at#2 = print_char_at::at#1 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy // [40] phi print_char_at::ch#2 = print_char_at::ch#1 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy @@ -1252,7 +1252,7 @@ print_uchar_at: { } // print_char_at // Print a single char -// print_char_at(byte register(X) ch, byte* zp(7) at) +// void print_char_at(__register(X) char ch, __zp(7) char *at) print_char_at: { .label at = 7 // *(at) = ch diff --git a/src/test/ref/cia-timer-simple.sym b/src/test/ref/cia-timer-simple.sym index 4e0fe6728..92e1cd626 100644 --- a/src/test/ref/cia-timer-simple.sym +++ b/src/test/ref/cia-timer-simple.sym @@ -1,53 +1,53 @@ -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant dword* const CIA2_TIMER_AB = (dword*) 56580 -constant const byte CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 -constant const byte CIA_TIMER_CONTROL_START = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 -dword clock() -dword clock::return -dword clock::return#0 return zp[4]:9 28.0 -dword clock::return#2 return zp[4]:9 22.0 -dword clock::ticks +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant unsigned long * const CIA2_TIMER_AB = (unsigned long *) 56580 +__constant const char CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A = $40 +__constant const char CIA_TIMER_CONTROL_START = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 +unsigned long clock() +unsigned long clock::return +unsigned long clock::return#0 // return zp[4]:9 28.0 +unsigned long clock::return#2 // return zp[4]:9 22.0 +unsigned long clock::ticks void clock_start() void main() -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 at zp[2]:7 20002.0 -byte* print_char_at::at#1 at zp[2]:7 10001.0 -byte* print_char_at::at#2 at zp[2]:7 120003.0 -byte print_char_at::ch -byte print_char_at::ch#0 reg byte x 10001.0 -byte print_char_at::ch#1 reg byte x 20002.0 -byte print_char_at::ch#2 reg byte x 120003.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 reg byte a 20002.0 -byte~ print_uchar_at::$2 reg byte y 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 at zp[2]:4 2002.0 -byte* print_uchar_at::at#1 at zp[2]:4 2002.0 -byte* print_uchar_at::at#2 at zp[2]:4 3667.333333333333 -byte print_uchar_at::b -byte print_uchar_at::b#0 b zp[1]:6 1001.0 -byte print_uchar_at::b#1 b zp[1]:6 1001.0 -byte print_uchar_at::b#2 b zp[1]:6 4400.8 -void print_uint_at(word print_uint_at::w , byte* print_uint_at::at) -byte* print_uint_at::at -byte* print_uint_at::at#2 at zp[2]:4 400.4 -word print_uint_at::w -word print_uint_at::w#0 w zp[2]:2 202.0 -word print_uint_at::w#1 w zp[2]:2 202.0 -word print_uint_at::w#2 w zp[2]:2 551.0 -void print_ulong_at(dword print_ulong_at::dw , byte* print_ulong_at::at) -byte* print_ulong_at::at -dword print_ulong_at::dw -dword print_ulong_at::dw#0 dw zp[4]:9 71.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // at zp[2]:7 20002.0 +char *print_char_at::at#1 // at zp[2]:7 10001.0 +char *print_char_at::at#2 // at zp[2]:7 120003.0 +char print_char_at::ch +char print_char_at::ch#0 // reg byte x 10001.0 +char print_char_at::ch#1 // reg byte x 20002.0 +char print_char_at::ch#2 // reg byte x 120003.0 +__constant const char print_hextab[] = "0123456789abcdef"z +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // reg byte a 20002.0 +char print_uchar_at::$2 // reg byte y 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // at zp[2]:4 2002.0 +char *print_uchar_at::at#1 // at zp[2]:4 2002.0 +char *print_uchar_at::at#2 // at zp[2]:4 3667.333333333333 +char print_uchar_at::b +char print_uchar_at::b#0 // b zp[1]:6 1001.0 +char print_uchar_at::b#1 // b zp[1]:6 1001.0 +char print_uchar_at::b#2 // b zp[1]:6 4400.8 +void print_uint_at(unsigned int w , char *at) +char *print_uint_at::at +char *print_uint_at::at#2 // at zp[2]:4 400.4 +unsigned int print_uint_at::w +unsigned int print_uint_at::w#0 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#1 // w zp[2]:2 202.0 +unsigned int print_uint_at::w#2 // w zp[2]:2 551.0 +void print_ulong_at(unsigned long dw , char *at) +char *print_ulong_at::at +unsigned long print_ulong_at::dw +unsigned long print_ulong_at::dw#0 // dw zp[4]:9 71.0 zp[2]:2 [ print_uint_at::w#2 print_uint_at::w#0 print_uint_at::w#1 ] zp[2]:4 [ print_uint_at::at#2 print_uchar_at::at#2 print_uchar_at::at#0 print_uchar_at::at#1 ] diff --git a/src/test/ref/clobber-a-problem.log b/src/test/ref/clobber-a-problem.log index 4e8103476..e5d4baccd 100644 --- a/src/test/ref/clobber-a-problem.log +++ b/src/test/ref/clobber-a-problem.log @@ -1,5 +1,5 @@ Resolved forward reference irq to __interrupt(hardware_clobber) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -41,7 +41,7 @@ __start::__init1: scope:[__start] from __start irq_raster_next = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -50,22 +50,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte BLACK = 0 -constant byte* BORDER_COLOR = (byte*)$d020 -constant byte DARK_GREY = $b -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* RASTER = (byte*)$d012 +__constant char BLACK = 0 +__constant char *BORDER_COLOR = (char *)$d020 +__constant char DARK_GREY = $b +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char *RASTER = (char *)$d012 void __start() __interrupt(hardware_clobber) void irq() -number~ irq::$0 -bool~ irq::$1 -bool~ irq::$2 -byte irq::raster_next -byte irq::raster_next#0 -byte irq::raster_next#1 -byte irq::raster_next#2 -byte irq::raster_next#3 -volatile byte irq_raster_next loadstore +number irq::$0 +bool irq::$1 +bool irq::$2 +char irq::raster_next +char irq::raster_next#0 +char irq::raster_next#1 +char irq::raster_next#2 +char irq::raster_next#3 +__loadstore volatile char irq_raster_next void main() Adding number conversion cast (unumber) $15 in irq_raster_next = irq_raster_next + $15 @@ -74,20 +74,20 @@ Adding number conversion cast (unumber) irq::$0 in irq::$0 = irq::raster_next#0 Adding number conversion cast (unumber) 0 in irq::$1 = irq::$0 == 0 Adding number conversion cast (unumber) 1 in irq::raster_next#1 = irq::raster_next#3 - 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53266 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53266 Simplifying constant integer cast $15 Simplifying constant integer cast 7 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in irq::$0 = irq::raster_next#0 & 7 +Inferred type updated to char in irq::$0 = irq::raster_next#0 & 7 Inversing boolean not [7] irq::$2 = irq::$0 != 0 from [6] irq::$1 = irq::$0 == 0 Successful SSA optimization Pass2UnaryNotSimplification Alias irq::raster_next#0 = irq::raster_next#3 @@ -121,7 +121,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -159,12 +159,12 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() __interrupt(hardware_clobber) void irq() -byte~ irq::$0 4.0 -byte irq::raster_next -byte irq::raster_next#0 2.6666666666666665 -byte irq::raster_next#1 4.0 -byte irq::raster_next#2 6.0 -volatile byte irq_raster_next loadstore 4.0 +char irq::$0 // 4.0 +char irq::raster_next +char irq::raster_next#0 // 2.6666666666666665 +char irq::raster_next#1 // 4.0 +char irq::raster_next#2 // 6.0 +__loadstore volatile char irq_raster_next // 4.0 void main() Initial phi equivalence classes @@ -236,7 +236,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -333,19 +333,19 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte BLACK = 0 -constant byte* BORDER_COLOR = (byte*) 53280 -constant byte DARK_GREY = $b -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* RASTER = (byte*) 53266 +__constant char BLACK = 0 +__constant char *BORDER_COLOR = (char *) 53280 +__constant char DARK_GREY = $b +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char *RASTER = (char *) 53266 void __start() __interrupt(hardware_clobber) void irq() -byte~ irq::$0 reg byte a 4.0 -byte irq::raster_next -byte irq::raster_next#0 reg byte x 2.6666666666666665 -byte irq::raster_next#1 reg byte x 4.0 -byte irq::raster_next#2 reg byte x 6.0 -volatile byte irq_raster_next loadstore zp[1]:2 4.0 +char irq::$0 // reg byte a 4.0 +char irq::raster_next +char irq::raster_next#0 // reg byte x 2.6666666666666665 +char irq::raster_next#1 // reg byte x 4.0 +char irq::raster_next#2 // reg byte x 6.0 +__loadstore volatile char irq_raster_next // zp[1]:2 4.0 void main() reg byte x [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] @@ -383,7 +383,7 @@ __start: { sta.z irq_raster_next // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/clobber-a-problem.sym b/src/test/ref/clobber-a-problem.sym index c482afdad..4bb98d1a3 100644 --- a/src/test/ref/clobber-a-problem.sym +++ b/src/test/ref/clobber-a-problem.sym @@ -1,16 +1,16 @@ -constant byte BLACK = 0 -constant byte* BORDER_COLOR = (byte*) 53280 -constant byte DARK_GREY = $b -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* RASTER = (byte*) 53266 +__constant char BLACK = 0 +__constant char *BORDER_COLOR = (char *) 53280 +__constant char DARK_GREY = $b +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char *RASTER = (char *) 53266 void __start() __interrupt(hardware_clobber) void irq() -byte~ irq::$0 reg byte a 4.0 -byte irq::raster_next -byte irq::raster_next#0 reg byte x 2.6666666666666665 -byte irq::raster_next#1 reg byte x 4.0 -byte irq::raster_next#2 reg byte x 6.0 -volatile byte irq_raster_next loadstore zp[1]:2 4.0 +char irq::$0 // reg byte a 4.0 +char irq::raster_next +char irq::raster_next#0 // reg byte x 2.6666666666666665 +char irq::raster_next#1 // reg byte x 4.0 +char irq::raster_next#2 // reg byte x 6.0 +__loadstore volatile char irq_raster_next // zp[1]:2 4.0 void main() reg byte x [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] diff --git a/src/test/ref/coalesce-assignment.log b/src/test/ref/coalesce-assignment.log index f4412c727..68b05f364 100644 --- a/src/test/ref/coalesce-assignment.log +++ b/src/test/ref/coalesce-assignment.log @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -53,37 +53,37 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$3 -bool~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::c -byte main::c#0 -byte main::d -byte main::d#0 -byte main::e -byte main::e#0 -byte main::f -byte main::f#0 -byte main::g -byte main::g#0 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 +bool main::$3 +bool main::$4 +__constant char * const main::SCREEN = (char *)$400 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::c +char main::c#0 +char main::d +char main::d#0 +char main::e +char main::e#0 +char main::f +char main::f#0 +char main::g +char main::g#0 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::a#2 = main::c#0 main::a#3 Alias main::d#0 = main::b#2 @@ -115,8 +115,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::f#0 = main::e#0 Successful SSA optimization Pass2AliasElimination @@ -174,23 +174,23 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 16.5 -byte main::a#4 15.375 -byte main::b -byte main::b#1 151.5 -byte main::c -byte main::d -byte main::d#0 60.599999999999994 -byte main::e -byte main::f -byte main::f#0 303.0 -byte main::g -byte main::g#0 202.0 -byte main::idx -byte main::idx#1 42.599999999999994 -byte main::idx#2 78.5 -byte main::idx#3 22.0 +char main::a +char main::a#1 // 16.5 +char main::a#4 // 15.375 +char main::b +char main::b#1 // 151.5 +char main::c +char main::d +char main::d#0 // 60.599999999999994 +char main::e +char main::f +char main::f#0 // 303.0 +char main::g +char main::g#0 // 202.0 +char main::idx +char main::idx#1 // 42.599999999999994 +char main::idx#2 // 78.5 +char main::idx#3 // 22.0 Initial phi equivalence classes [ main::a#4 main::a#1 ] @@ -334,24 +334,24 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#4 a zp[1]:2 15.375 -byte main::b -byte main::b#1 reg byte y 151.5 -byte main::c -byte main::d -byte main::d#0 reg byte y 60.599999999999994 -byte main::e -byte main::f -byte main::f#0 reg byte a 303.0 -byte main::g -byte main::g#0 reg byte a 202.0 -byte main::idx -byte main::idx#1 reg byte x 42.599999999999994 -byte main::idx#2 reg byte x 78.5 -byte main::idx#3 reg byte x 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#4 // a zp[1]:2 15.375 +char main::b +char main::b#1 // reg byte y 151.5 +char main::c +char main::d +char main::d#0 // reg byte y 60.599999999999994 +char main::e +char main::f +char main::f#0 // reg byte a 303.0 +char main::g +char main::g#0 // reg byte a 202.0 +char main::idx +char main::idx#1 // reg byte x 42.599999999999994 +char main::idx#2 // reg byte x 78.5 +char main::idx#3 // reg byte x 22.0 zp[1]:2 [ main::a#4 main::a#1 ] reg byte y [ main::d#0 main::b#1 ] diff --git a/src/test/ref/coalesce-assignment.sym b/src/test/ref/coalesce-assignment.sym index 7bf5383e0..1981fe590 100644 --- a/src/test/ref/coalesce-assignment.sym +++ b/src/test/ref/coalesce-assignment.sym @@ -1,22 +1,22 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#4 a zp[1]:2 15.375 -byte main::b -byte main::b#1 reg byte y 151.5 -byte main::c -byte main::d -byte main::d#0 reg byte y 60.599999999999994 -byte main::e -byte main::f -byte main::f#0 reg byte a 303.0 -byte main::g -byte main::g#0 reg byte a 202.0 -byte main::idx -byte main::idx#1 reg byte x 42.599999999999994 -byte main::idx#2 reg byte x 78.5 -byte main::idx#3 reg byte x 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#4 // a zp[1]:2 15.375 +char main::b +char main::b#1 // reg byte y 151.5 +char main::c +char main::d +char main::d#0 // reg byte y 60.599999999999994 +char main::e +char main::f +char main::f#0 // reg byte a 303.0 +char main::g +char main::g#0 // reg byte a 202.0 +char main::idx +char main::idx#1 // reg byte x 42.599999999999994 +char main::idx#2 // reg byte x 78.5 +char main::idx#3 // reg byte x 22.0 zp[1]:2 [ main::a#4 main::a#1 ] reg byte y [ main::d#0 main::b#1 ] diff --git a/src/test/ref/code-after-return-1.log b/src/test/ref/code-after-return-1.log index 8922b3994..6539a8937 100644 --- a/src/test/ref/code-after-return-1.log +++ b/src/test/ref/code-after-return-1.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -14,7 +14,7 @@ main::@return: scope:[main] from main main::@2 to:@return main::@1: scope:[main] from b#15 = phi( ) - call bb + call bb to:main::@2 main::@2: scope:[main] from main::@1 b#9 = phi( main::@1/b#3 ) @@ -41,7 +41,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 b#14 = phi( __start::__init1/b#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 b#12 = phi( __start::@1/b#0 ) @@ -54,37 +54,37 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte b -byte b#0 -byte b#1 -byte b#10 -byte b#11 -byte b#12 -byte b#13 -byte b#14 -byte b#15 -byte b#2 -byte b#3 -byte b#4 -byte b#5 -byte b#6 -byte b#7 -byte b#8 -byte b#9 +char b +char b#0 +char b#1 +char b#10 +char b#11 +char b#12 +char b#13 +char b#14 +char b#15 +char b#2 +char b#3 +char b#4 +char b#5 +char b#6 +char b#7 +char b#8 +char b#9 void bb() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = b#7 Adding number conversion cast (unumber) 1 in SCREEN[1] = b#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias b#0 = b#8 Alias b#1 = b#9 @@ -136,7 +136,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte b +char b void main() Initial phi equivalence classes @@ -187,9 +187,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte b -constant byte b#14 b = 0 +__constant char * const SCREEN = (char *) 1024 +char b +__constant char b#14 = 0 // b void main() diff --git a/src/test/ref/code-after-return-1.sym b/src/test/ref/code-after-return-1.sym index 61214c699..a3df25968 100644 --- a/src/test/ref/code-after-return-1.sym +++ b/src/test/ref/code-after-return-1.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -byte b -constant byte b#14 b = 0 +__constant char * const SCREEN = (char *) 1024 +char b +__constant char b#14 = 0 // b void main() diff --git a/src/test/ref/code-after-return.log b/src/test/ref/code-after-return.log index e37f69fd3..21cc39601 100644 --- a/src/test/ref/code-after-return.log +++ b/src/test/ref/code-after-return.log @@ -14,7 +14,7 @@ main::@1: scope:[main] from void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,19 +23,19 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Adding number conversion cast (unumber) 1 in SCREEN[1] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -112,7 +112,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/code-after-return.sym b/src/test/ref/code-after-return.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/code-after-return.sym +++ b/src/test/ref/code-after-return.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/comma-decl-2.log b/src/test/ref/comma-decl-2.log index 943634812..98bc96127 100644 --- a/src/test/ref/comma-decl-2.log +++ b/src/test/ref/comma-decl-2.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,26 +24,26 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::b = 0 -constant byte* main::c[3] = { fill( 3, 0) } -constant byte main::d = 0 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::b = 0 +__constant char main::c[3] = { fill( 3, 0) } +__constant char main::d = 0 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::b Adding number conversion cast (unumber) 0 in main::SCREEN[1] = main::c[0] Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::c[(unumber)0] Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::d Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = main::b Simplifying expression containing zero main::c in [1] main::SCREEN[1] = main::c[0] @@ -56,8 +56,8 @@ Successful SSA optimization PassNEliminateEmptyStart Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -140,10 +140,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::b = 0 -constant byte* main::c[3] = { fill( 3, 0) } -constant byte main::d = 0 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::b = 0 +__constant char main::c[3] = { fill( 3, 0) } +__constant char main::d = 0 diff --git a/src/test/ref/comma-decl-2.sym b/src/test/ref/comma-decl-2.sym index 56f797348..1c7ef5187 100644 --- a/src/test/ref/comma-decl-2.sym +++ b/src/test/ref/comma-decl-2.sym @@ -1,6 +1,6 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::b = 0 -constant byte* main::c[3] = { fill( 3, 0) } -constant byte main::d = 0 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::b = 0 +__constant char main::c[3] = { fill( 3, 0) } +__constant char main::d = 0 diff --git a/src/test/ref/comma-decl-for.log b/src/test/ref/comma-decl-for.log index 81d9c3f00..244ca7d7c 100644 --- a/src/test/ref/comma-decl-for.log +++ b/src/test/ref/comma-decl-for.log @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,25 +36,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::j#2 = main::j#3 Alias main::i#2 = main::i#3 @@ -106,12 +106,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 14.666666666666666 -byte main::j -byte main::j#1 22.0 -byte main::j#2 8.25 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 14.666666666666666 +char main::j +char main::j#1 // 22.0 +char main::j#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -194,13 +194,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 14.666666666666666 -byte main::j -byte main::j#1 reg byte a 22.0 -byte main::j#2 reg byte a 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 14.666666666666666 +char main::j +char main::j#1 // reg byte a 22.0 +char main::j#2 // reg byte a 8.25 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::j#2 main::j#1 ] diff --git a/src/test/ref/comma-decl-for.sym b/src/test/ref/comma-decl-for.sym index 25998d445..86e93a63d 100644 --- a/src/test/ref/comma-decl-for.sym +++ b/src/test/ref/comma-decl-for.sym @@ -1,11 +1,11 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 14.666666666666666 -byte main::j -byte main::j#1 reg byte a 22.0 -byte main::j#2 reg byte a 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 14.666666666666666 +char main::j +char main::j#1 // reg byte a 22.0 +char main::j#2 // reg byte a 8.25 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::j#2 main::j#1 ] diff --git a/src/test/ref/comma-decl.log b/src/test/ref/comma-decl.log index 2e792f1be..c1b79b07c 100644 --- a/src/test/ref/comma-decl.log +++ b/src/test/ref/comma-decl.log @@ -17,7 +17,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,12 +28,12 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::b = 'c' -byte main::c -byte main::c#0 -byte main::d -byte main::d#0 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::b = 'c' +char main::c +char main::c#0 +char main::d +char main::d#0 Adding number conversion cast (unumber) 1 in main::c#0 = main::b + 1 Adding number conversion cast (unumber) 1 in main::d#0 = main::c#0 + 1 @@ -41,18 +41,18 @@ Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::b Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::c#0 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::d#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::c#0 = main::b + 1 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -92,8 +92,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::c -byte main::d +char main::c +char main::d Initial phi equivalence classes Complete equivalence classes @@ -154,12 +154,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::b = 'c' -byte main::c -constant byte main::c#0 c = main::b+1 -byte main::d -constant byte main::d#0 d = main::c#0+1 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::b = 'c' +char main::c +__constant char main::c#0 = main::b+1 // c +char main::d +__constant char main::d#0 = main::c#0+1 // d diff --git a/src/test/ref/comma-decl.sym b/src/test/ref/comma-decl.sym index ec548317f..8f67467a3 100644 --- a/src/test/ref/comma-decl.sym +++ b/src/test/ref/comma-decl.sym @@ -1,8 +1,8 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::b = 'c' -byte main::c -constant byte main::c#0 c = main::b+1 -byte main::d -constant byte main::d#0 d = main::c#0+1 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::b = 'c' +char main::c +__constant char main::c#0 = main::b+1 // c +char main::d +__constant char main::d#0 = main::c#0+1 // d diff --git a/src/test/ref/comma-expr-1.log b/src/test/ref/comma-expr-1.log index 7f8a8298d..6a057f358 100644 --- a/src/test/ref/comma-expr-1.log +++ b/src/test/ref/comma-expr-1.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,20 +24,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::b = 3 -byte main::c -byte main::c#0 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::b = 3 +char main::c +char main::c#0 Adding number conversion cast (unumber) 1 in main::c#0 = main::b + 1 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::c#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::c#0 = main::b + 1 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -68,7 +68,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::c +char main::c Initial phi equivalence classes Complete equivalence classes @@ -120,10 +120,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::b = 3 -byte main::c -constant byte main::c#0 c = main::b+1 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::b = 3 +char main::c +__constant char main::c#0 = main::b+1 // c diff --git a/src/test/ref/comma-expr-1.sym b/src/test/ref/comma-expr-1.sym index 6ad3d5113..7c202a471 100644 --- a/src/test/ref/comma-expr-1.sym +++ b/src/test/ref/comma-expr-1.sym @@ -1,6 +1,6 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::b = 3 -byte main::c -constant byte main::c#0 c = main::b+1 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::b = 3 +char main::c +__constant char main::c#0 = main::b+1 // c diff --git a/src/test/ref/comma-expr-2.log b/src/test/ref/comma-expr-2.log index ed6fc938d..bada577d5 100644 --- a/src/test/ref/comma-expr-2.log +++ b/src/test/ref/comma-expr-2.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,20 +24,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -byte main::c -byte main::c#0 -byte main::c#1 +__constant char * const main::SCREEN = (char *)$400 +char main::c +char main::c#0 +char main::c#1 Adding number conversion cast (unumber) 1+3 in main::c#1 = 1+3 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::c#1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::c#1 = (unumber)1+3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [1] main::c#1 = (unumber)1+3 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -53,8 +53,8 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 1+3 Successful SSA optimization PassNCastSimplification @@ -76,7 +76,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::c +char main::c Initial phi equivalence classes Complete equivalence classes @@ -127,9 +127,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::c -constant byte main::c#1 c = 1+3 +__constant char * const main::SCREEN = (char *) 1024 +char main::c +__constant char main::c#1 = 1+3 // c diff --git a/src/test/ref/comma-expr-2.sym b/src/test/ref/comma-expr-2.sym index 5e9588b3b..f461f9832 100644 --- a/src/test/ref/comma-expr-2.sym +++ b/src/test/ref/comma-expr-2.sym @@ -1,5 +1,5 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::c -constant byte main::c#1 c = 1+3 +__constant char * const main::SCREEN = (char *) 1024 +char main::c +__constant char main::c#1 = 1+3 // c diff --git a/src/test/ref/comma-expr-for.log b/src/test/ref/comma-expr-for.log index b552de1ce..63a7903a9 100644 --- a/src/test/ref/comma-expr-for.log +++ b/src/test/ref/comma-expr-for.log @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,25 +36,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 Adding number conversion cast (unumber) $a in main::$1 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::j#2 = main::j#3 Alias main::i#2 = main::i#3 @@ -106,12 +106,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 14.666666666666666 -byte main::j -byte main::j#1 22.0 -byte main::j#2 8.25 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 14.666666666666666 +char main::j +char main::j#1 // 22.0 +char main::j#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -194,13 +194,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 14.666666666666666 -byte main::j -byte main::j#1 reg byte a 22.0 -byte main::j#2 reg byte a 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 14.666666666666666 +char main::j +char main::j#1 // reg byte a 22.0 +char main::j#2 // reg byte a 8.25 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::j#2 main::j#1 ] diff --git a/src/test/ref/comma-expr-for.sym b/src/test/ref/comma-expr-for.sym index 25998d445..86e93a63d 100644 --- a/src/test/ref/comma-expr-for.sym +++ b/src/test/ref/comma-expr-for.sym @@ -1,11 +1,11 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 14.666666666666666 -byte main::j -byte main::j#1 reg byte a 22.0 -byte main::j#2 reg byte a 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 14.666666666666666 +char main::j +char main::j#1 // reg byte a 22.0 +char main::j#2 // reg byte a 8.25 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::j#2 main::j#1 ] diff --git a/src/test/ref/comparison-rewriting-pointer.log b/src/test/ref/comparison-rewriting-pointer.log index 3fdb6ed48..6ce3de09c 100644 --- a/src/test/ref/comparison-rewriting-pointer.log +++ b/src/test/ref/comparison-rewriting-pointer.log @@ -34,7 +34,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,20 +45,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte* main::cc -byte* main::cc#0 -byte* main::cc#1 -byte* main::cc#2 -byte* main::cc#3 -constant byte* const main::cols = (byte*)$d800 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc#3 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +bool main::$1 +char *main::cc +char *main::cc#0 +char *main::cc#1 +char *main::cc#2 +char *main::cc#3 +__constant char * const main::cols = (char *)$d800 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc#3 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $3e7 in main::$0 = main::sc#2 <= main::screen+$3e7 Adding number conversion cast (unumber) $3e7 in main::cc#0 = main::cols+$3e7 @@ -67,17 +67,17 @@ Adding number conversion cast (unumber) 2 in *main::cc#3 = 2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::cc#3 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast $3e7 Simplifying constant integer cast $3e7 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e7 -Finalized unsigned number type (word) $3e7 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (unsigned int) $3e7 +Finalized unsigned number type (unsigned int) $3e7 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::sc#2 = main::sc#3 Alias main::cc#2 = main::cc#3 @@ -140,12 +140,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::cc -byte* main::cc#1 22.0 -byte* main::cc#2 14.666666666666666 -byte* main::sc -byte* main::sc#1 22.0 -byte* main::sc#2 14.666666666666666 +char *main::cc +char *main::cc#1 // 22.0 +char *main::cc#2 // 14.666666666666666 +char *main::sc +char *main::sc#1 // 22.0 +char *main::sc#2 // 14.666666666666666 Initial phi equivalence classes [ main::sc#2 main::sc#1 ] @@ -282,14 +282,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte* main::cc -byte* main::cc#1 cc zp[2]:4 22.0 -byte* main::cc#2 cc zp[2]:4 14.666666666666666 -constant byte* const main::cols = (byte*) 55296 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 -constant byte* const main::screen = (byte*) 1024 +char *main::cc +char *main::cc#1 // cc zp[2]:4 22.0 +char *main::cc#2 // cc zp[2]:4 14.666666666666666 +__constant char * const main::cols = (char *) 55296 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 +__constant char * const main::screen = (char *) 1024 zp[2]:2 [ main::sc#2 main::sc#1 ] zp[2]:4 [ main::cc#2 main::cc#1 ] diff --git a/src/test/ref/comparison-rewriting-pointer.sym b/src/test/ref/comparison-rewriting-pointer.sym index d93c67941..9c3ce2e9d 100644 --- a/src/test/ref/comparison-rewriting-pointer.sym +++ b/src/test/ref/comparison-rewriting-pointer.sym @@ -1,12 +1,12 @@ void main() -byte* main::cc -byte* main::cc#1 cc zp[2]:4 22.0 -byte* main::cc#2 cc zp[2]:4 14.666666666666666 -constant byte* const main::cols = (byte*) 55296 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 -constant byte* const main::screen = (byte*) 1024 +char *main::cc +char *main::cc#1 // cc zp[2]:4 22.0 +char *main::cc#2 // cc zp[2]:4 14.666666666666666 +__constant char * const main::cols = (char *) 55296 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 +__constant char * const main::screen = (char *) 1024 zp[2]:2 [ main::sc#2 main::sc#1 ] zp[2]:4 [ main::cc#2 main::cc#1 ] diff --git a/src/test/ref/comparison-rewriting.log b/src/test/ref/comparison-rewriting.log index 1c4e9a89c..d163cf6c9 100644 --- a/src/test/ref/comparison-rewriting.log +++ b/src/test/ref/comparison-rewriting.log @@ -109,7 +109,7 @@ main::@return: scope:[main] from main::@6 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -120,61 +120,61 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$10 -bool~ main::$11 -bool~ main::$12 -bool~ main::$13 -bool~ main::$2 -byte~ main::$3 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -bool~ main::$8 -bool~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -constant byte* main::header[] = " < <= == >= >" -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#10 -byte main::i1#11 -byte main::i1#12 -byte main::i1#13 -byte main::i1#2 -byte main::i1#3 -byte main::i1#4 -byte main::i1#5 -byte main::i1#6 -byte main::i1#7 -byte main::i1#8 -byte main::i1#9 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#10 -byte* main::screen#11 -byte* main::screen#12 -byte* main::screen#13 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* main::screen#7 -byte* main::screen#8 -byte* main::screen#9 +bool main::$0 +bool main::$1 +bool main::$10 +bool main::$11 +bool main::$12 +bool main::$13 +bool main::$2 +char main::$3 +bool main::$4 +bool main::$5 +bool main::$6 +bool main::$7 +bool main::$8 +bool main::$9 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::header[] = " < <= == >= >" +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#10 +char main::i1#11 +char main::i1#12 +char main::i1#13 +char main::i1#2 +char main::i1#3 +char main::i1#4 +char main::i1#5 +char main::i1#6 +char main::i1#7 +char main::i1#8 +char main::i1#9 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#10 +char *main::screen#11 +char *main::screen#12 +char *main::screen#13 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +char *main::screen#7 +char *main::screen#8 +char *main::screen#9 Adding number conversion cast (unumber) $3e8 in main::sc#1 = main::sc#2 + rangenext(main::SCREEN,main::SCREEN+$3e8) Adding number conversion cast (unumber) 0 in main::$1 = main::header[main::i#2] != 0 @@ -192,7 +192,7 @@ Adding number conversion cast (unumber) 5 in main::$12 = main::i1#7 > 5 Adding number conversion cast (unumber) $b in main::screen#6[$b] = '+' Adding number conversion cast (unumber) $e in main::screen#7[$e] = '+' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Simplifying constant integer cast 9 @@ -209,21 +209,21 @@ Simplifying constant integer cast 5 Simplifying constant integer cast $b Simplifying constant integer cast $e Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $e +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $e Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [23] main::$5 = main::i1#3 >= 5 from [22] main::$4 = main::i1#3 < 5 Inversing boolean not [27] main::$7 = main::i1#4 > 5 from [26] main::$6 = main::i1#4 <= 5 @@ -262,7 +262,7 @@ Constant main::screen#0 = main::SCREEN Constant main::i1#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [3] main::sc#1 = ++ main::sc#2 to ++ -Resolved ranged comparison value [5] if(main::sc#1!=rangelast(main::SCREEN,main::SCREEN+$3e8)) goto main::@1 to (byte*)main::SCREEN+$3e8+1 +Resolved ranged comparison value [5] if(main::sc#1!=rangelast(main::SCREEN,main::SCREEN+$3e8)) goto main::@1 to (char *)main::SCREEN+$3e8+1 Rewriting conditional comparison [16] if(main::i1#10<=9) goto main::@7 Rewriting conditional comparison [23] if(main::i1#10>5) goto main::@9 Rewriting conditional comparison [32] if(main::i1#10<=5) goto main::@12 @@ -273,7 +273,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Adding number conversion cast (unumber) 1 in [3] if(main::sc#1!=(byte*)main::SCREEN+$3e8+1) goto main::@1 +Adding number conversion cast (unumber) 1 in [3] if(main::sc#1!=(char *)main::SCREEN+$3e8+1) goto main::@1 Adding number conversion cast (unumber) 9+1 in [9] if(main::i1#10<9+1) goto main::@7 Adding number conversion cast (unumber) 1 in [9] if(main::i1#10<(unumber)9+1) goto main::@7 Adding number conversion cast (unumber) 5+1 in [14] if(main::i1#10>=5+1) goto main::@9 @@ -290,10 +290,10 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 5+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::sc#0 Inlining constant with var siblings main::i#0 @@ -403,19 +403,19 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 -byte main::i1 -byte main::i1#1 22.0 -byte main::i1#10 6.6 -byte* main::sc -byte* main::sc#1 16.5 -byte* main::sc#2 16.5 -byte* main::screen -byte* main::screen#1 6.285714285714286 -byte* main::screen#2 11.0 +char main::$3 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 +char main::i1 +char main::i1#1 // 22.0 +char main::i1#10 // 6.6 +char *main::sc +char *main::sc#1 // 16.5 +char *main::sc#2 // 16.5 +char *main::screen +char *main::screen#1 // 6.285714285714286 +char *main::screen#2 // 11.0 Initial phi equivalence classes [ main::sc#2 main::sc#1 ] @@ -699,21 +699,21 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$3 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* main::header[] = " < <= == >= >" -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#10 reg byte x 6.6 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 16.5 -byte* main::sc#2 sc zp[2]:2 16.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 6.285714285714286 -byte* main::screen#2 screen zp[2]:4 11.0 +char main::$3 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::header[] = " < <= == >= >" +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#10 // reg byte x 6.6 +char *main::sc +char *main::sc#1 // sc zp[2]:2 16.5 +char *main::sc#2 // sc zp[2]:2 16.5 +char *main::screen +char *main::screen#1 // screen zp[2]:4 6.285714285714286 +char *main::screen#2 // screen zp[2]:4 11.0 zp[2]:2 [ main::sc#2 main::sc#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/comparison-rewriting.sym b/src/test/ref/comparison-rewriting.sym index 403192f0c..999ddd213 100644 --- a/src/test/ref/comparison-rewriting.sym +++ b/src/test/ref/comparison-rewriting.sym @@ -1,19 +1,19 @@ void main() -byte~ main::$3 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* main::header[] = " < <= == >= >" -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#10 reg byte x 6.6 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 16.5 -byte* main::sc#2 sc zp[2]:2 16.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 6.285714285714286 -byte* main::screen#2 screen zp[2]:4 11.0 +char main::$3 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::header[] = " < <= == >= >" +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#10 // reg byte x 6.6 +char *main::sc +char *main::sc#1 // sc zp[2]:2 16.5 +char *main::sc#2 // sc zp[2]:2 16.5 +char *main::screen +char *main::screen#1 // screen zp[2]:4 6.285714285714286 +char *main::screen#2 // screen zp[2]:4 11.0 zp[2]:2 [ main::sc#2 main::sc#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/complex-conditional-problem.log b/src/test/ref/complex-conditional-problem.log index 03b9c9cac..2a69fc1b1 100644 --- a/src/test/ref/complex-conditional-problem.log +++ b/src/test/ref/complex-conditional-problem.log @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,18 +37,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const RASTER = (byte*)$d012 -constant byte* const SCREEN = (byte*)$400 +__constant char * const RASTER = (char *)$d012 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::key -byte main::key#0 -byte main::key#1 -byte main::key#2 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::key +char main::key#0 +char main::key#1 +char main::key#2 Adding number conversion cast (unumber) $20 in main::$0 = main::key#0 > $20 Adding number conversion cast (unumber) $40 in main::$1 = main::key#0 < $40 @@ -56,15 +56,15 @@ Adding number conversion cast (unumber) 0 in main::key#1 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::key#1 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $20 Simplifying constant integer cast $40 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting ! if()-condition to reversed if() [5] main::$3 = ! main::$2 Rewriting || if()-condition to two if()s [4] main::$2 = main::$0 || main::$1 @@ -92,7 +92,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $20+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::key#1 Constant inlined main::key#1 = 0 @@ -139,9 +139,9 @@ main::@2: scope:[main] from main::@1 main::@3 main::@4 VARIABLE REGISTER WEIGHTS void main() -byte main::key -byte main::key#0 11.0 -byte main::key#2 22.0 +char main::key +char main::key#0 // 11.0 +char main::key#2 // 22.0 Initial phi equivalence classes [ main::key#2 main::key#0 ] @@ -234,12 +234,12 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::key -byte main::key#0 reg byte a 11.0 -byte main::key#2 reg byte a 22.0 +char main::key +char main::key#0 // reg byte a 11.0 +char main::key#2 // reg byte a 22.0 reg byte a [ main::key#2 main::key#0 ] diff --git a/src/test/ref/complex-conditional-problem.sym b/src/test/ref/complex-conditional-problem.sym index a230b237f..892380778 100644 --- a/src/test/ref/complex-conditional-problem.sym +++ b/src/test/ref/complex-conditional-problem.sym @@ -1,8 +1,8 @@ -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::key -byte main::key#0 reg byte a 11.0 -byte main::key#2 reg byte a 22.0 +char main::key +char main::key#0 // reg byte a 11.0 +char main::key#2 // reg byte a 22.0 reg byte a [ main::key#2 main::key#0 ] diff --git a/src/test/ref/complex/ataritempest/ataritempest.log b/src/test/ref/complex/ataritempest/ataritempest.log index ccea2856e..ec36cde40 100644 --- a/src/test/ref/complex/ataritempest/ataritempest.log +++ b/src/test/ref/complex/ataritempest/ataritempest.log @@ -35,7 +35,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,21 +44,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$c01a -constant byte* MESSAGE[] = "hello world" -constant byte* SCREEN[$32] = { fill( $32, 0) } -constant void()** VECTORS[] = { &nmiHandler, &entryPoint } +__constant char * const BG_COLOR = (char *)$c01a +__constant char MESSAGE[] = "hello world" +__constant char SCREEN[$32] = { fill( $32, 0) } +__constant void (*VECTORS[])() = { &nmiHandler, &entryPoint } void __start() void entryPoint() -bool~ entryPoint::$0 -byte entryPoint::i -byte entryPoint::i#0 -byte entryPoint::i#1 -byte entryPoint::i#2 +bool entryPoint::$0 +char entryPoint::i +char entryPoint::i#0 +char entryPoint::i#1 +char entryPoint::i#2 void main() __interrupt(hardware_clobber) void nmiHandler() -Simplifying constant pointer cast (byte*) 49178 +Simplifying constant pointer cast (char *) 49178 Successful SSA optimization PassNCastSimplification Simple Condition entryPoint::$0 [5] if(entryPoint::i#1!=rangelast(0,$31)) goto entryPoint::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -75,13 +75,13 @@ Adding number conversion cast (unumber) $32 in [3] if(entryPoint::i#1!=$32) goto Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $32 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $32 +Finalized unsigned number type (char) $32 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings entryPoint::i#0 Constant inlined entryPoint::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) $32 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) $32 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting entryPoint::@2(between entryPoint::@1 and entryPoint::@1) Adding NOP phi() at start of entryPoint @@ -128,9 +128,9 @@ entryPoint::@return: scope:[entryPoint] from entryPoint::@1 VARIABLE REGISTER WEIGHTS void entryPoint() -byte entryPoint::i -byte entryPoint::i#1 16.5 -byte entryPoint::i#2 22.0 +char entryPoint::i +char entryPoint::i#1 // 16.5 +char entryPoint::i#2 // 22.0 void main() __interrupt(hardware_clobber) void nmiHandler() @@ -253,14 +253,14 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 49178 -constant byte* MESSAGE[] = "hello world" -constant byte* SCREEN[$32] = { fill( $32, 0) } -constant void()** VECTORS[] = { &nmiHandler, &entryPoint } +__constant char * const BG_COLOR = (char *) 49178 +__constant char MESSAGE[] = "hello world" +__constant char SCREEN[$32] = { fill( $32, 0) } +__constant void (*VECTORS[])() = { &nmiHandler, &entryPoint } void entryPoint() -byte entryPoint::i -byte entryPoint::i#1 reg byte x 16.5 -byte entryPoint::i#2 reg byte x 22.0 +char entryPoint::i +char entryPoint::i#1 // reg byte x 16.5 +char entryPoint::i#2 // reg byte x 22.0 void main() __interrupt(hardware_clobber) void nmiHandler() diff --git a/src/test/ref/complex/ataritempest/ataritempest.sym b/src/test/ref/complex/ataritempest/ataritempest.sym index d47b98dba..61f7e8265 100644 --- a/src/test/ref/complex/ataritempest/ataritempest.sym +++ b/src/test/ref/complex/ataritempest/ataritempest.sym @@ -1,11 +1,11 @@ -constant byte* const BG_COLOR = (byte*) 49178 -constant byte* MESSAGE[] = "hello world" -constant byte* SCREEN[$32] = { fill( $32, 0) } -constant void()** VECTORS[] = { &nmiHandler, &entryPoint } +__constant char * const BG_COLOR = (char *) 49178 +__constant char MESSAGE[] = "hello world" +__constant char SCREEN[$32] = { fill( $32, 0) } +__constant void (*VECTORS[])() = { &nmiHandler, &entryPoint } void entryPoint() -byte entryPoint::i -byte entryPoint::i#1 reg byte x 16.5 -byte entryPoint::i#2 reg byte x 22.0 +char entryPoint::i +char entryPoint::i#1 // reg byte x 16.5 +char entryPoint::i#2 // reg byte x 22.0 void main() __interrupt(hardware_clobber) void nmiHandler() diff --git a/src/test/ref/complex/includes/includes-1.asm b/src/test/ref/complex/includes/includes-1.asm index aea7c921f..e5dd409b6 100644 --- a/src/test/ref/complex/includes/includes-1.asm +++ b/src/test/ref/complex/includes/includes-1.asm @@ -21,7 +21,7 @@ main: { rts } // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(2) str) +// __zp(4) unsigned int strlen(__zp(2) char *str) strlen: { .label len = 4 .label str = 2 diff --git a/src/test/ref/complex/includes/includes-1.cfg b/src/test/ref/complex/includes/includes-1.cfg index 981df2569..666ebd619 100644 --- a/src/test/ref/complex/includes/includes-1.cfg +++ b/src/test/ref/complex/includes/includes-1.cfg @@ -2,18 +2,18 @@ void main() main: scope:[main] from [0] phi() - [1] call strlen + [1] call strlen [2] strlen::return#2 = strlen::len#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = strlen::return#2 - [4] *SCREEN = (byte)main::$0 + [4] *SCREEN = (char)main::$0 to:main::@return main::@return: scope:[main] from main::@1 [5] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from main [6] phi() to:strlen::@1 diff --git a/src/test/ref/complex/includes/includes-1.log b/src/test/ref/complex/includes/includes-1.log index b7e8d2fc0..f9b16c089 100644 --- a/src/test/ref/complex/includes/includes-1.log +++ b/src/test/ref/complex/includes/includes-1.log @@ -1,8 +1,8 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from main strlen::str#4 = phi( main/strlen::str#1 ) strlen::len#0 = 0 @@ -32,13 +32,13 @@ strlen::@return: scope:[strlen] from strlen::@3 void main() main: scope:[main] from __start::@1 strlen::str#1 = STR - call strlen + call strlen strlen::return#2 = strlen::return#1 to:main::@1 main::@1: scope:[main] from main strlen::return#4 = phi( main/strlen::return#2 ) main::$0 = strlen::return#4 - SCREEN[0] = (byte)main::$0 + SCREEN[0] = (char)main::$0 to:main::@return main::@return: scope:[main] from main::@1 return @@ -50,7 +50,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -59,41 +59,41 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte* STR = "camelot!" +__constant char * const SCREEN = (char *)$400 +__constant char *STR = "camelot!" void __start() void main() -word~ main::$0 -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 +unsigned int main::$0 +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#2 -Adding number conversion cast (unumber) 0 in SCREEN[0] = (byte)main::$0 +Adding number conversion cast (unumber) 0 in SCREEN[0] = (char)main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias strlen::len#2 = strlen::len#4 strlen::len#3 strlen::return#0 strlen::return#3 strlen::return#1 Alias strlen::str#2 = strlen::str#3 @@ -106,7 +106,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant strlen::len#0 = 0 Constant strlen::str#1 = STR Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero SCREEN in [12] SCREEN[0] = (byte)main::$0 +Simplifying expression containing zero SCREEN in [12] SCREEN[0] = (char)main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start @@ -139,18 +139,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call strlen + [1] call strlen [2] strlen::return#2 = strlen::len#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = strlen::return#2 - [4] *SCREEN = (byte)main::$0 + [4] *SCREEN = (char)main::$0 to:main::@return main::@return: scope:[main] from main::@1 [5] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from main [6] phi() to:strlen::@1 @@ -170,16 +170,16 @@ strlen::@2: scope:[strlen] from strlen::@1 VARIABLE REGISTER WEIGHTS void main() -word~ main::$0 2.0 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 101.0 -word strlen::len#2 51.0 -word strlen::return -word strlen::return#2 4.0 -byte* strlen::str -byte* strlen::str#0 202.0 -byte* strlen::str#2 101.0 +unsigned int main::$0 // 2.0 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // 101.0 +unsigned int strlen::len#2 // 51.0 +unsigned int strlen::return +unsigned int strlen::return#2 // 4.0 +char *strlen::str +char *strlen::str#0 // 202.0 +char *strlen::str#2 // 101.0 Initial phi equivalence classes [ strlen::str#2 strlen::str#0 ] @@ -198,7 +198,7 @@ Allocated zp[2]:8 [ main::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] strlen::return#2 = strlen::len#2 [ strlen::return#2 ] ( [ strlen::return#2 ] { { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Statement [3] main::$0 = strlen::return#2 [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a -Statement [4] *SCREEN = (byte)main::$0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *SCREEN = (char)main::$0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] if(0!=*strlen::str#2) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( strlen:1 [ strlen::len#2 strlen::str#2 ] { { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ strlen::str#2 strlen::str#0 ] : zp[2]:2 , Potential registers zp[2]:4 [ strlen::len#2 strlen::len#1 ] : zp[2]:4 , @@ -234,7 +234,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label __0 = 4 - // [1] call strlen + // [1] call strlen // [6] phi from main to strlen [phi:main->strlen] strlen_from_main: jsr strlen @@ -243,7 +243,7 @@ main: { // main::@1 __b1: // [3] main::$0 = strlen::return#2 - // [4] *SCREEN = (byte)main::$0 -- _deref_pbuc1=_byte_vwuz1 + // [4] *SCREEN = (char)main::$0 -- _deref_pbuc1=_byte_vwuz1 lda.z __0 sta SCREEN jmp __breturn @@ -254,7 +254,7 @@ main: { } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(2) str) +// __zp(4) unsigned int strlen(__zp(2) char *str) strlen: { .label len = 4 .label str = 2 @@ -324,19 +324,19 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* STR = "camelot!" +__constant char * const SCREEN = (char *) 1024 +__constant char *STR = "camelot!" void main() -word~ main::$0 zp[2]:4 2.0 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 len zp[2]:4 101.0 -word strlen::len#2 len zp[2]:4 51.0 -word strlen::return -word strlen::return#2 return zp[2]:4 4.0 -byte* strlen::str -byte* strlen::str#0 str zp[2]:2 202.0 -byte* strlen::str#2 str zp[2]:2 101.0 +unsigned int main::$0 // zp[2]:4 2.0 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // len zp[2]:4 101.0 +unsigned int strlen::len#2 // len zp[2]:4 51.0 +unsigned int strlen::return +unsigned int strlen::return#2 // return zp[2]:4 4.0 +char *strlen::str +char *strlen::str#0 // str zp[2]:2 202.0 +char *strlen::str#2 // str zp[2]:2 101.0 zp[2]:2 [ strlen::str#2 strlen::str#0 ] zp[2]:4 [ strlen::len#2 strlen::len#1 strlen::return#2 main::$0 ] @@ -363,7 +363,7 @@ Score: 605 main: { .label __0 = 4 // strlen(STR) - // [1] call strlen + // [1] call strlen // [6] phi from main to strlen [phi:main->strlen] jsr strlen // strlen(STR) @@ -371,7 +371,7 @@ main: { // main::@1 // [3] main::$0 = strlen::return#2 // SCREEN [0] = (char) strlen(STR) - // [4] *SCREEN = (byte)main::$0 -- _deref_pbuc1=_byte_vwuz1 + // [4] *SCREEN = (char)main::$0 -- _deref_pbuc1=_byte_vwuz1 lda.z __0 sta SCREEN // main::@return @@ -381,7 +381,7 @@ main: { } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(2) str) +// __zp(4) unsigned int strlen(__zp(2) char *str) strlen: { .label len = 4 .label str = 2 diff --git a/src/test/ref/complex/includes/includes-1.sym b/src/test/ref/complex/includes/includes-1.sym index 408816591..99d0f9253 100644 --- a/src/test/ref/complex/includes/includes-1.sym +++ b/src/test/ref/complex/includes/includes-1.sym @@ -1,16 +1,16 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte* STR = "camelot!" +__constant char * const SCREEN = (char *) 1024 +__constant char *STR = "camelot!" void main() -word~ main::$0 zp[2]:4 2.0 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 len zp[2]:4 101.0 -word strlen::len#2 len zp[2]:4 51.0 -word strlen::return -word strlen::return#2 return zp[2]:4 4.0 -byte* strlen::str -byte* strlen::str#0 str zp[2]:2 202.0 -byte* strlen::str#2 str zp[2]:2 101.0 +unsigned int main::$0 // zp[2]:4 2.0 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // len zp[2]:4 101.0 +unsigned int strlen::len#2 // len zp[2]:4 51.0 +unsigned int strlen::return +unsigned int strlen::return#2 // return zp[2]:4 4.0 +char *strlen::str +char *strlen::str#0 // str zp[2]:2 202.0 +char *strlen::str#2 // str zp[2]:2 101.0 zp[2]:2 [ strlen::str#2 strlen::str#0 ] zp[2]:4 [ strlen::len#2 strlen::len#1 strlen::return#2 main::$0 ] diff --git a/src/test/ref/complex/includes/includes-2.asm b/src/test/ref/complex/includes/includes-2.asm index 5af75428c..e3d89ee6e 100644 --- a/src/test/ref/complex/includes/includes-2.asm +++ b/src/test/ref/complex/includes/includes-2.asm @@ -19,6 +19,7 @@ main: { rts } // A local stdlib include file +// unsigned int strlen(char *str) strlen: { .label return = 'x' rts diff --git a/src/test/ref/complex/includes/includes-2.cfg b/src/test/ref/complex/includes/includes-2.cfg index 4f41fa273..d95bf0877 100644 --- a/src/test/ref/complex/includes/includes-2.cfg +++ b/src/test/ref/complex/includes/includes-2.cfg @@ -2,16 +2,16 @@ void main() main: scope:[main] from [0] phi() - [1] call strlen + [1] call strlen to:main::@1 main::@1: scope:[main] from main - [2] *SCREEN = (byte)strlen::return#0 + [2] *SCREEN = (char)strlen::return#0 to:main::@return main::@return: scope:[main] from main::@1 [3] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from main [4] phi() to:strlen::@return diff --git a/src/test/ref/complex/includes/includes-2.log b/src/test/ref/complex/includes/includes-2.log index a1860a49c..ba9264981 100644 --- a/src/test/ref/complex/includes/includes-2.log +++ b/src/test/ref/complex/includes/includes-2.log @@ -1,8 +1,8 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from main strlen::return#0 = 'x' to:strlen::@return @@ -15,13 +15,13 @@ strlen::@return: scope:[strlen] from strlen void main() main: scope:[main] from __start::@1 strlen::str#0 = STR - call strlen + call strlen strlen::return#2 = strlen::return#1 to:main::@1 main::@1: scope:[main] from main strlen::return#4 = phi( main/strlen::return#2 ) main::$0 = strlen::return#4 - SCREEN[0] = (byte)main::$0 + SCREEN[0] = (char)main::$0 to:main::@return main::@return: scope:[main] from main::@1 return @@ -33,7 +33,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -42,27 +42,27 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte* STR = "camelot!" +__constant char * const SCREEN = (char *)$400 +__constant char *STR = "camelot!" void __start() void main() -word~ main::$0 -word strlen(byte* strlen::str) -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 +unsigned int main::$0 +unsigned int strlen(char *str) +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 -Adding number conversion cast (unumber) 0 in SCREEN[0] = (byte)main::$0 +Adding number conversion cast (unumber) 0 in SCREEN[0] = (char)main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias strlen::return#0 = strlen::return#3 strlen::return#1 Alias strlen::return#2 = strlen::return#4 @@ -74,9 +74,9 @@ Constant strlen::return#2 = strlen::return#0 Successful SSA optimization Pass2ConstantIdentification Constant main::$0 = strlen::return#2 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte)main::$0 in [6] SCREEN[0] = (byte)main::$0 +Constant value identified (char)main::$0 in [6] SCREEN[0] = (char)main::$0 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero SCREEN in [6] SCREEN[0] = (byte)main::$0 +Simplifying expression containing zero SCREEN in [6] SCREEN[0] = (char)main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant strlen::str#0 Successful SSA optimization PassNEliminateUnusedVars @@ -108,16 +108,16 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call strlen + [1] call strlen to:main::@1 main::@1: scope:[main] from main - [2] *SCREEN = (byte)strlen::return#0 + [2] *SCREEN = (char)strlen::return#0 to:main::@return main::@return: scope:[main] from main::@1 [3] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from main [4] phi() to:strlen::@return @@ -128,14 +128,14 @@ strlen::@return: scope:[strlen] from strlen VARIABLE REGISTER WEIGHTS void main() -word strlen(byte* strlen::str) -word strlen::return -byte* strlen::str +unsigned int strlen(char *str) +unsigned int strlen::return +char *strlen::str Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] *SCREEN = (byte)strlen::return#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *SCREEN = (char)strlen::return#0 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [strlen] @@ -163,14 +163,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call strlen + // [1] call strlen // [4] phi from main to strlen [phi:main->strlen] strlen_from_main: jsr strlen jmp __b1 // main::@1 __b1: - // [2] *SCREEN = (byte)strlen::return#0 -- _deref_pbuc1=vbuc2 + // [2] *SCREEN = (char)strlen::return#0 -- _deref_pbuc1=vbuc2 lda #strlen.return sta SCREEN jmp __breturn @@ -181,6 +181,7 @@ main: { } // strlen // A local stdlib include file +// unsigned int strlen(char *str) strlen: { .label return = 'x' jmp __breturn @@ -203,12 +204,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -word strlen(byte* strlen::str) -word strlen::return -constant word strlen::return#0 return = 'x' -byte* strlen::str +unsigned int strlen(char *str) +unsigned int strlen::return +__constant unsigned int strlen::return#0 = 'x' // return +char *strlen::str @@ -232,12 +233,12 @@ Score: 24 // main main: { // strlen(STR) - // [1] call strlen + // [1] call strlen // [4] phi from main to strlen [phi:main->strlen] jsr strlen // main::@1 // SCREEN [0] = (char) strlen(STR) - // [2] *SCREEN = (byte)strlen::return#0 -- _deref_pbuc1=vbuc2 + // [2] *SCREEN = (char)strlen::return#0 -- _deref_pbuc1=vbuc2 lda #strlen.return sta SCREEN // main::@return @@ -247,6 +248,7 @@ main: { } // strlen // A local stdlib include file +// unsigned int strlen(char *str) strlen: { .label return = 'x' // strlen::@return diff --git a/src/test/ref/complex/includes/includes-2.sym b/src/test/ref/complex/includes/includes-2.sym index 128c16824..6e1776a69 100644 --- a/src/test/ref/complex/includes/includes-2.sym +++ b/src/test/ref/complex/includes/includes-2.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -word strlen(byte* strlen::str) -word strlen::return -constant word strlen::return#0 return = 'x' -byte* strlen::str +unsigned int strlen(char *str) +unsigned int strlen::return +__constant unsigned int strlen::return#0 = 'x' // return +char *strlen::str diff --git a/src/test/ref/complex/includes/includes-3.log b/src/test/ref/complex/includes/includes-3.log index 2d14cebcb..f6908ecaa 100644 --- a/src/test/ref/complex/includes/includes-3.log +++ b/src/test/ref/complex/includes/includes-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 value#9 = phi( __start::__init1/value#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 value#7 = phi( __start::@1/value#1 ) @@ -39,26 +39,26 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte value -byte value#0 -byte value#1 -byte value#2 -byte value#3 -byte value#4 -byte value#5 -byte value#6 -byte value#7 -byte value#8 -byte value#9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char value +char value#0 +char value#1 +char value#2 +char value#3 +char value#4 +char value#5 +char value#6 +char value#7 +char value#8 +char value#9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias value#0 = value#6 value#1 Alias value#2 = value#9 @@ -118,8 +118,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte value +char main::i +char value Initial phi equivalence classes Complete equivalence classes @@ -172,10 +172,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte value +char main::i +char value diff --git a/src/test/ref/complex/includes/includes-3.sym b/src/test/ref/complex/includes/includes-3.sym index 162141259..4c7a22455 100644 --- a/src/test/ref/complex/includes/includes-3.sym +++ b/src/test/ref/complex/includes/includes-3.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte value +char main::i +char value diff --git a/src/test/ref/complex/xmega65/xmega65.asm b/src/test/ref/complex/xmega65/xmega65.asm index 8588b470a..03f8667cc 100644 --- a/src/test/ref/complex/xmega65/xmega65.asm +++ b/src/test/ref/complex/xmega65/xmega65.asm @@ -103,7 +103,7 @@ main: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = 8 .label dst = 6 diff --git a/src/test/ref/complex/xmega65/xmega65.cfg b/src/test/ref/complex/xmega65/xmega65.cfg index 4374b4f84..c1908c53b 100644 --- a/src/test/ref/complex/xmega65/xmega65.cfg +++ b/src/test/ref/complex/xmega65/xmega65.cfg @@ -18,11 +18,11 @@ syscall1::@return: scope:[syscall1] from syscall1 void main() main: scope:[main] from [4] *VICII_MEMORY = $14 - [5] call memset + [5] call memset to:main::@6 main::@6: scope:[main] from main [6] phi() - [7] call memset + [7] call memset to:main::@1 main::@1: scope:[main] from main::@2 main::@6 [8] main::sc#2 = phi( main::@2/main::sc#1, main::@6/SCREEN+$28 ) @@ -47,14 +47,14 @@ main::@2: scope:[main] from main::@1 [16] main::msg#1 = ++ main::msg#2 to:main::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main main::@6 [17] memset::c#4 = phi( main/' ', main::@6/WHITE ) - [17] memset::str#3 = phi( main/(void*)SCREEN, main::@6/(void*)COLS ) + [17] memset::str#3 = phi( main/(void *)SCREEN, main::@6/(void *)COLS ) to:memset::@1 memset::@1: scope:[memset] from memset - [18] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 - [19] memset::dst#4 = (byte*)memset::str#3 + [18] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 + [19] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [20] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/complex/xmega65/xmega65.log b/src/test/ref/complex/xmega65/xmega65.log index 0b6ecee74..e6d9d9971 100644 --- a/src/test/ref/complex/xmega65/xmega65.log +++ b/src/test/ref/complex/xmega65/xmega65.log @@ -3,7 +3,7 @@ Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main main::@7 memset::c#5 = phi( main/memset::c#0, main::@7/memset::c#1 ) memset::str#4 = phi( main/memset::str#0, main::@7/memset::str#1 ) @@ -20,9 +20,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -49,17 +49,17 @@ memset::@return: scope:[memset] from memset::@1 void main() main: scope:[main] from __start *VICII_MEMORY = $14 - memset::str#0 = (void*)SCREEN + memset::str#0 = (void *)SCREEN memset::c#0 = ' ' memset::num#0 = $28*$19 - call memset + call memset memset::return#2 = memset::return#1 to:main::@7 main::@7: scope:[main] from main - memset::str#1 = (void*)COLS + memset::str#1 = (void *)COLS memset::c#1 = WHITE memset::num#1 = $28*$19 - call memset + call memset memset::return#3 = memset::return#1 to:main::@8 main::@8: scope:[main] from main::@7 @@ -116,7 +116,7 @@ syscall2::@return: scope:[syscall2] from syscall2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -125,74 +125,74 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte BLACK = 0 -constant byte* const COLS = (byte*)$d800 -constant const byte JMP = $4c -constant byte* MESSAGE[] = "hello world!" -constant const byte NOP = $ea -constant byte* const RASTER = (byte*)$d012 -constant byte* const SCREEN = (byte*)$400 -constant struct SysCall* SYSCALLS[] = { { xjmp: JMP, syscall: &syscall1, xnop: NOP }, { xjmp: JMP, syscall: &syscall2, xnop: NOP } } -constant struct SysCall* SYSCALL_RESET[] = { { xjmp: JMP, syscall: &main, xnop: NOP } } -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char BLACK = 0 +__constant char * const COLS = (char *)$d800 +__constant const char JMP = $4c +__constant char MESSAGE[] = "hello world!" +__constant const char NOP = $ea +__constant char * const RASTER = (char *)$d012 +__constant char * const SCREEN = (char *)$400 +__constant struct SysCall SYSCALLS[] = { { xjmp: JMP, syscall: &syscall1, xnop: NOP }, { xjmp: JMP, syscall: &syscall2, xnop: NOP } } +__constant struct SysCall SYSCALL_RESET[] = { { xjmp: JMP, syscall: &main, xnop: NOP } } +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char WHITE = 1 void __start() void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte* main::msg -byte* main::msg#0 -byte* main::msg#1 -byte* main::msg#2 -byte* main::msg#3 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc#3 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +char *main::msg +char *main::msg#0 +char *main::msg#1 +char *main::msg#2 +char *main::msg#3 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc#3 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 void syscall1() void syscall2() @@ -207,16 +207,16 @@ Adding number conversion cast (unumber) $42 in main::$3 = *RASTER == $42 Adding number conversion cast (unumber) $4f in *(SCREEN+$4f) = '>' Adding number conversion cast (unumber) $4e in *(SCREEN+$4e) = '<' Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast *VICII_MEMORY = (unumber)$14 Inlining cast memset::num#0 = (unumber)$28*$19 Inlining cast memset::num#1 = (unumber)$28*$19 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 0 Simplifying constant integer cast $14 Simplifying constant integer cast $28 @@ -226,14 +226,14 @@ Simplifying constant integer cast $42 Simplifying constant integer cast $4f Simplifying constant integer cast $4e Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $36 -Finalized unsigned number type (byte) $42 -Finalized unsigned number type (byte) $4f -Finalized unsigned number type (byte) $4e +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $36 +Finalized unsigned number type (char) $42 +Finalized unsigned number type (char) $4f +Finalized unsigned number type (char) $4e Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -263,10 +263,10 @@ Successful SSA optimization Pass2ConditionalAndOrRewriting Constant right-side identified [16] memset::num#0 = (unumber)$28*$19 Constant right-side identified [21] memset::num#1 = (unumber)$28*$19 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memset::str#0 = (void*)SCREEN +Constant memset::str#0 = (void *)SCREEN Constant memset::c#0 = ' ' Constant memset::num#0 = (unumber)$28*$19 -Constant memset::str#1 = (void*)COLS +Constant memset::str#1 = (void *)COLS Constant memset::c#1 = WHITE Constant memset::num#1 = (unumber)$28*$19 Constant main::sc#0 = SCREEN+$28 @@ -287,8 +287,8 @@ Successful SSA optimization PassNEliminateEmptyStart Simple Condition main::$2 [20] if(*RASTER==$36) goto main::@5 Simple Condition main::$3 [27] if(*RASTER==$42) goto main::@5 Successful SSA optimization Pass2ConditionalJumpSimplification -Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [2] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [4] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings memset::str#0 Inlining constant with var siblings memset::c#0 @@ -298,21 +298,21 @@ Inlining constant with var siblings memset::c#1 Inlining constant with var siblings memset::num#1 Inlining constant with var siblings main::sc#0 Inlining constant with var siblings main::msg#0 -Constant inlined memset::str#1 = (void*)COLS -Constant inlined memset::str#0 = (void*)SCREEN +Constant inlined memset::str#1 = (void *)COLS +Constant inlined memset::str#0 = (void *)SCREEN Constant inlined main::msg#0 = MESSAGE -Constant inlined memset::num#1 = (word)$28*$19 +Constant inlined memset::num#1 = (unsigned int)$28*$19 Constant inlined main::sc#0 = SCREEN+$28 Constant inlined memset::c#0 = ' ' -Constant inlined memset::num#0 = (word)$28*$19 +Constant inlined memset::num#0 = (unsigned int)$28*$19 Constant inlined memset::c#1 = WHITE Successful SSA optimization Pass2ConstantInlining -Identical Phi Values memset::num#2 (word)$28*$19 +Identical Phi Values memset::num#2 (unsigned int)$28*$19 Successful SSA optimization Pass2IdenticalPhiElimination -if() condition always false - eliminating [1] if((word)$28*$19<=0) goto memset::@1 +if() condition always false - eliminating [1] if((unsigned int)$28*$19<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@7 Adding NOP phi() at start of main::@8 @@ -360,11 +360,11 @@ syscall1::@return: scope:[syscall1] from syscall1 void main() main: scope:[main] from [4] *VICII_MEMORY = $14 - [5] call memset + [5] call memset to:main::@6 main::@6: scope:[main] from main [6] phi() - [7] call memset + [7] call memset to:main::@1 main::@1: scope:[main] from main::@2 main::@6 [8] main::sc#2 = phi( main::@2/main::sc#1, main::@6/SCREEN+$28 ) @@ -389,14 +389,14 @@ main::@2: scope:[main] from main::@1 [16] main::msg#1 = ++ main::msg#2 to:main::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main main::@6 [17] memset::c#4 = phi( main/' ', main::@6/WHITE ) - [17] memset::str#3 = phi( main/(void*)SCREEN, main::@6/(void*)COLS ) + [17] memset::str#3 = phi( main/(void *)SCREEN, main::@6/(void *)COLS ) to:memset::@1 memset::@1: scope:[memset] from memset - [18] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 - [19] memset::dst#4 = (byte*)memset::str#3 + [18] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 + [19] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [20] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -413,25 +413,25 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void main() -byte* main::msg -byte* main::msg#1 22.0 -byte* main::msg#2 11.0 -byte* main::sc -byte* main::sc#1 11.0 -byte* main::sc#2 11.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 138.33333333333331 -byte* memset::dst#4 22.0 -byte* memset::end -byte* memset::end#0 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 +char *main::msg +char *main::msg#1 // 22.0 +char *main::msg#2 // 11.0 +char *main::sc +char *main::sc#1 // 11.0 +char *main::sc#2 // 11.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 14.428571428571429 +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 138.33333333333331 +char *memset::dst#4 // 22.0 +char *memset::end +char *memset::end#0 // 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 void syscall1() void syscall2() @@ -465,9 +465,9 @@ Statement [11] if(*RASTER==$42) goto main::@4 [ ] ( [ ] { } ) always clobbers Statement [12] *BG_COLOR = BLACK [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] *BG_COLOR = WHITE [ ] ( [ ] { } ) always clobbers reg byte a Statement [14] *main::sc#2 = *main::msg#2 [ main::msg#2 main::sc#2 ] ( [ main::msg#2 main::sc#2 ] { } ) always clobbers reg byte a reg byte y -Statement [18] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:5 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [18] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:5 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ memset::c#4 ] -Statement [19] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [19] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [21] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [23] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:8 [ memset::c#4 ] @@ -480,8 +480,8 @@ Statement [11] if(*RASTER==$42) goto main::@4 [ ] ( [ ] { } ) always clobbers Statement [12] *BG_COLOR = BLACK [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] *BG_COLOR = WHITE [ ] ( [ ] { } ) always clobbers reg byte a Statement [14] *main::sc#2 = *main::msg#2 [ main::msg#2 main::sc#2 ] ( [ main::msg#2 main::sc#2 ] { } ) always clobbers reg byte a reg byte y -Statement [18] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:5 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [19] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [18] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:5 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [19] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [21] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [23] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:5 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ main::msg#2 main::msg#1 ] : zp[2]:2 , @@ -563,13 +563,13 @@ main: { // Initialize screen memory lda #$14 sta VICII_MEMORY - // [5] call memset + // [5] call memset // Init screen/colors // [17] phi from main to memset [phi:main->memset] memset_from_main: // [17] phi memset::c#4 = ' ' [phi:main->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [17] phi memset::str#3 = (void*)SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + // [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -580,12 +580,12 @@ main: { jmp __b6 // main::@6 __b6: - // [7] call memset + // [7] call memset // [17] phi from main::@6 to memset [phi:main::@6->memset] memset_from___b6: // [17] phi memset::c#4 = WHITE [phi:main::@6->memset#0] -- vbuxx=vbuc1 ldx #WHITE - // [17] phi memset::str#3 = (void*)COLS [phi:main::@6->memset#1] -- pvoz1=pvoc1 + // [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- pvoz1=pvoc1 lda #COLS @@ -663,7 +663,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = 8 .label dst = 6 @@ -671,7 +671,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [18] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 + // [18] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$28*$19 @@ -679,7 +679,7 @@ memset: { lda.z str+1 adc #>$28*$19 sta.z end+1 - // [19] memset::dst#4 = (byte*)memset::str#3 + // [19] memset::dst#4 = (char *)memset::str#3 // [20] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -760,38 +760,38 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant byte* const COLS = (byte*) 55296 -constant const byte JMP = $4c -constant byte* MESSAGE[] = "hello world!" -constant const byte NOP = $ea -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 -constant struct SysCall* SYSCALLS[] = { { xjmp: JMP, syscall: &syscall1, xnop: NOP }, { xjmp: JMP, syscall: &syscall2, xnop: NOP } } -constant struct SysCall* SYSCALL_RESET[] = { { xjmp: JMP, syscall: &main, xnop: NOP } } -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant char * const COLS = (char *) 55296 +__constant const char JMP = $4c +__constant char MESSAGE[] = "hello world!" +__constant const char NOP = $ea +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 +__constant struct SysCall SYSCALLS[] = { { xjmp: JMP, syscall: &syscall1, xnop: NOP }, { xjmp: JMP, syscall: &syscall2, xnop: NOP } } +__constant struct SysCall SYSCALL_RESET[] = { { xjmp: JMP, syscall: &main, xnop: NOP } } +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char WHITE = 1 void main() -byte* main::msg -byte* main::msg#1 msg zp[2]:2 22.0 -byte* main::msg#2 msg zp[2]:2 11.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:4 11.0 -byte* main::sc#2 sc zp[2]:4 11.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 202.0 -byte* memset::dst#2 dst zp[2]:6 138.33333333333331 -byte* memset::dst#4 dst zp[2]:6 22.0 -byte* memset::end -byte* memset::end#0 end zp[2]:8 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 +char *main::msg +char *main::msg#1 // msg zp[2]:2 22.0 +char *main::msg#2 // msg zp[2]:2 11.0 +char *main::sc +char *main::sc#1 // sc zp[2]:4 11.0 +char *main::sc#2 // sc zp[2]:4 11.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 14.428571428571429 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 202.0 +char *memset::dst#2 // dst zp[2]:6 138.33333333333331 +char *memset::dst#4 // dst zp[2]:6 22.0 +char *memset::end +char *memset::end#0 // end zp[2]:8 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 void syscall1() void syscall2() @@ -861,12 +861,12 @@ main: { lda #$14 sta VICII_MEMORY // memset(SCREEN, ' ', 40*25) - // [5] call memset + // [5] call memset // Init screen/colors // [17] phi from main to memset [phi:main->memset] // [17] phi memset::c#4 = ' ' [phi:main->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [17] phi memset::str#3 = (void*)SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + // [17] phi memset::str#3 = (void *)SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -875,11 +875,11 @@ main: { // [6] phi from main to main::@6 [phi:main->main::@6] // main::@6 // memset(COLS, WHITE, 40*25) - // [7] call memset + // [7] call memset // [17] phi from main::@6 to memset [phi:main::@6->memset] // [17] phi memset::c#4 = WHITE [phi:main::@6->memset#0] -- vbuxx=vbuc1 ldx #WHITE - // [17] phi memset::str#3 = (void*)COLS [phi:main::@6->memset#1] -- pvoz1=pvoc1 + // [17] phi memset::str#3 = (void *)COLS [phi:main::@6->memset#1] -- pvoz1=pvoc1 lda #COLS @@ -954,14 +954,14 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = 8 .label dst = 6 .label str = 6 // memset::@1 // char* end = (char*)str + num - // [18] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 + // [18] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$28*$19 @@ -969,7 +969,7 @@ memset: { lda.z str+1 adc #>$28*$19 sta.z end+1 - // [19] memset::dst#4 = (byte*)memset::str#3 + // [19] memset::dst#4 = (char *)memset::str#3 // [20] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [20] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/complex/xmega65/xmega65.sym b/src/test/ref/complex/xmega65/xmega65.sym index b36b772e7..cea403a62 100644 --- a/src/test/ref/complex/xmega65/xmega65.sym +++ b/src/test/ref/complex/xmega65/xmega65.sym @@ -1,35 +1,35 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant byte* const COLS = (byte*) 55296 -constant const byte JMP = $4c -constant byte* MESSAGE[] = "hello world!" -constant const byte NOP = $ea -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 -constant struct SysCall* SYSCALLS[] = { { xjmp: JMP, syscall: &syscall1, xnop: NOP }, { xjmp: JMP, syscall: &syscall2, xnop: NOP } } -constant struct SysCall* SYSCALL_RESET[] = { { xjmp: JMP, syscall: &main, xnop: NOP } } -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant char * const COLS = (char *) 55296 +__constant const char JMP = $4c +__constant char MESSAGE[] = "hello world!" +__constant const char NOP = $ea +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 +__constant struct SysCall SYSCALLS[] = { { xjmp: JMP, syscall: &syscall1, xnop: NOP }, { xjmp: JMP, syscall: &syscall2, xnop: NOP } } +__constant struct SysCall SYSCALL_RESET[] = { { xjmp: JMP, syscall: &main, xnop: NOP } } +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char WHITE = 1 void main() -byte* main::msg -byte* main::msg#1 msg zp[2]:2 22.0 -byte* main::msg#2 msg zp[2]:2 11.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:4 11.0 -byte* main::sc#2 sc zp[2]:4 11.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 202.0 -byte* memset::dst#2 dst zp[2]:6 138.33333333333331 -byte* memset::dst#4 dst zp[2]:6 22.0 -byte* memset::end -byte* memset::end#0 end zp[2]:8 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 +char *main::msg +char *main::msg#1 // msg zp[2]:2 22.0 +char *main::msg#2 // msg zp[2]:2 11.0 +char *main::sc +char *main::sc#1 // sc zp[2]:4 11.0 +char *main::sc#2 // sc zp[2]:4 11.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 14.428571428571429 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 202.0 +char *memset::dst#2 // dst zp[2]:6 138.33333333333331 +char *memset::dst#4 // dst zp[2]:6 22.0 +char *memset::end +char *memset::end#0 // end zp[2]:8 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 void syscall1() void syscall2() diff --git a/src/test/ref/condition-integer-0.log b/src/test/ref/condition-integer-0.log index 776d79a9f..a7b26424f 100644 --- a/src/test/ref/condition-integer-0.log +++ b/src/test/ref/condition-integer-0.log @@ -80,7 +80,7 @@ main::@return: scope:[main] from main::@10 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -89,58 +89,58 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -word main::i1 -word main::i1#0 -word main::i1#1 -word main::i1#2 -word main::i1#3 -word main::i1#4 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#11 -byte main::idx#12 -byte main::idx#13 -byte main::idx#14 -byte main::idx#15 -byte main::idx#16 -byte main::idx#17 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +bool main::$6 +bool main::$7 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +unsigned int main::i1 +unsigned int main::i1#0 +unsigned int main::i1#1 +unsigned int main::i1#2 +unsigned int main::i1#3 +unsigned int main::i1#4 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#11 +char main::idx#12 +char main::idx#13 +char main::idx#14 +char main::idx#15 +char main::idx#16 +char main::idx#17 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 Adding number conversion cast (unumber) 0 in main::$6 = 0 != main::i#2 Adding number conversion cast (unumber) 0 in main::$7 = 0 != main::i1#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [18] main::$2 = 0 == main::i#2 from [17] main::$6 = 0 != main::i#2 Inversing boolean not [33] main::$4 = 0 == main::i1#2 from [32] main::$7 = 0 != main::i1#2 @@ -193,8 +193,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::idx#3 = main::idx#8 Successful SSA optimization Pass2AliasElimination @@ -314,20 +314,20 @@ main::@return: scope:[main] from main::@8 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.6000000000000005 -word main::i1 -word main::i1#1 16.5 -word main::i1#2 6.6000000000000005 -byte main::idx -byte main::idx#10 14.666666666666666 -byte main::idx#11 9.25 -byte main::idx#12 15.333333333333332 -byte main::idx#17 11.0 -byte main::idx#4 22.0 -byte main::idx#5 4.0 -byte main::idx#6 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // 16.5 +unsigned int main::i1#2 // 6.6000000000000005 +char main::idx +char main::idx#10 // 14.666666666666666 +char main::idx#11 // 9.25 +char main::idx#12 // 15.333333333333332 +char main::idx#17 // 11.0 +char main::idx#4 // 22.0 +char main::idx#5 // 4.0 +char main::idx#6 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -546,22 +546,22 @@ Removing instruction jmp __b7 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.6000000000000005 -word main::i1 -word main::i1#1 i1 zp[2]:2 16.5 -word main::i1#2 i1 zp[2]:2 6.6000000000000005 -byte main::idx -byte main::idx#10 reg byte y 14.666666666666666 -byte main::idx#11 reg byte y 9.25 -byte main::idx#12 reg byte y 15.333333333333332 -byte main::idx#17 reg byte y 11.0 -byte main::idx#4 reg byte y 22.0 -byte main::idx#5 reg byte y 4.0 -byte main::idx#6 reg byte y 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // i1 zp[2]:2 16.5 +unsigned int main::i1#2 // i1 zp[2]:2 6.6000000000000005 +char main::idx +char main::idx#10 // reg byte y 14.666666666666666 +char main::idx#11 // reg byte y 9.25 +char main::idx#12 // reg byte y 15.333333333333332 +char main::idx#17 // reg byte y 11.0 +char main::idx#4 // reg byte y 22.0 +char main::idx#5 // reg byte y 4.0 +char main::idx#6 // reg byte y 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#10 main::idx#11 main::idx#4 ] diff --git a/src/test/ref/condition-integer-0.sym b/src/test/ref/condition-integer-0.sym index 141360276..2fa349363 100644 --- a/src/test/ref/condition-integer-0.sym +++ b/src/test/ref/condition-integer-0.sym @@ -1,19 +1,19 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.6000000000000005 -word main::i1 -word main::i1#1 i1 zp[2]:2 16.5 -word main::i1#2 i1 zp[2]:2 6.6000000000000005 -byte main::idx -byte main::idx#10 reg byte y 14.666666666666666 -byte main::idx#11 reg byte y 9.25 -byte main::idx#12 reg byte y 15.333333333333332 -byte main::idx#17 reg byte y 11.0 -byte main::idx#4 reg byte y 22.0 -byte main::idx#5 reg byte y 4.0 -byte main::idx#6 reg byte y 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // i1 zp[2]:2 16.5 +unsigned int main::i1#2 // i1 zp[2]:2 6.6000000000000005 +char main::idx +char main::idx#10 // reg byte y 14.666666666666666 +char main::idx#11 // reg byte y 9.25 +char main::idx#12 // reg byte y 15.333333333333332 +char main::idx#17 // reg byte y 11.0 +char main::idx#4 // reg byte y 22.0 +char main::idx#5 // reg byte y 4.0 +char main::idx#6 // reg byte y 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#10 main::idx#11 main::idx#4 ] diff --git a/src/test/ref/condition-integer-1.log b/src/test/ref/condition-integer-1.log index 6146c8b51..7419ccd72 100644 --- a/src/test/ref/condition-integer-1.log +++ b/src/test/ref/condition-integer-1.log @@ -82,7 +82,7 @@ main::@return: scope:[main] from main::@10 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -91,60 +91,60 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -bool~ main::$8 -bool~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -word main::i1 -word main::i1#0 -word main::i1#1 -word main::i1#2 -word main::i1#3 -word main::i1#4 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#11 -byte main::idx#12 -byte main::idx#13 -byte main::idx#14 -byte main::idx#15 -byte main::idx#16 -byte main::idx#17 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +bool main::$6 +bool main::$7 +bool main::$8 +bool main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +unsigned int main::i1 +unsigned int main::i1#0 +unsigned int main::i1#1 +unsigned int main::i1#2 +unsigned int main::i1#3 +unsigned int main::i1#4 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#11 +char main::idx#12 +char main::idx#13 +char main::idx#14 +char main::idx#15 +char main::idx#16 +char main::idx#17 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 Adding number conversion cast (unumber) 0 in main::$8 = 0 != main::i#2 Adding number conversion cast (unumber) 0 in main::$9 = 0 != main::i1#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [18] main::$2 = 0 == main::i#2 from [17] main::$8 = 0 != main::i#2 Inversing boolean not [19] main::$3 = 0 != main::i#2 from [18] main::$2 = 0 == main::i#2 @@ -199,8 +199,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::idx#1 = main::idx#13 main::idx#8 Successful SSA optimization Pass2AliasElimination @@ -316,20 +316,20 @@ main::@return: scope:[main] from main::@8 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.6000000000000005 -word main::i1 -word main::i1#1 16.5 -word main::i1#2 6.6000000000000005 -byte main::idx -byte main::idx#10 14.666666666666666 -byte main::idx#11 9.25 -byte main::idx#12 15.333333333333332 -byte main::idx#17 11.0 -byte main::idx#4 22.0 -byte main::idx#5 4.0 -byte main::idx#6 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // 16.5 +unsigned int main::i1#2 // 6.6000000000000005 +char main::idx +char main::idx#10 // 14.666666666666666 +char main::idx#11 // 9.25 +char main::idx#12 // 15.333333333333332 +char main::idx#17 // 11.0 +char main::idx#4 // 22.0 +char main::idx#5 // 4.0 +char main::idx#6 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -548,22 +548,22 @@ Removing instruction jmp __b7 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.6000000000000005 -word main::i1 -word main::i1#1 i1 zp[2]:2 16.5 -word main::i1#2 i1 zp[2]:2 6.6000000000000005 -byte main::idx -byte main::idx#10 reg byte y 14.666666666666666 -byte main::idx#11 reg byte y 9.25 -byte main::idx#12 reg byte y 15.333333333333332 -byte main::idx#17 reg byte y 11.0 -byte main::idx#4 reg byte y 22.0 -byte main::idx#5 reg byte y 4.0 -byte main::idx#6 reg byte y 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // i1 zp[2]:2 16.5 +unsigned int main::i1#2 // i1 zp[2]:2 6.6000000000000005 +char main::idx +char main::idx#10 // reg byte y 14.666666666666666 +char main::idx#11 // reg byte y 9.25 +char main::idx#12 // reg byte y 15.333333333333332 +char main::idx#17 // reg byte y 11.0 +char main::idx#4 // reg byte y 22.0 +char main::idx#5 // reg byte y 4.0 +char main::idx#6 // reg byte y 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#10 main::idx#11 main::idx#4 ] diff --git a/src/test/ref/condition-integer-1.sym b/src/test/ref/condition-integer-1.sym index 141360276..2fa349363 100644 --- a/src/test/ref/condition-integer-1.sym +++ b/src/test/ref/condition-integer-1.sym @@ -1,19 +1,19 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.6000000000000005 -word main::i1 -word main::i1#1 i1 zp[2]:2 16.5 -word main::i1#2 i1 zp[2]:2 6.6000000000000005 -byte main::idx -byte main::idx#10 reg byte y 14.666666666666666 -byte main::idx#11 reg byte y 9.25 -byte main::idx#12 reg byte y 15.333333333333332 -byte main::idx#17 reg byte y 11.0 -byte main::idx#4 reg byte y 22.0 -byte main::idx#5 reg byte y 4.0 -byte main::idx#6 reg byte y 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // i1 zp[2]:2 16.5 +unsigned int main::i1#2 // i1 zp[2]:2 6.6000000000000005 +char main::idx +char main::idx#10 // reg byte y 14.666666666666666 +char main::idx#11 // reg byte y 9.25 +char main::idx#12 // reg byte y 15.333333333333332 +char main::idx#17 // reg byte y 11.0 +char main::idx#4 // reg byte y 22.0 +char main::idx#5 // reg byte y 4.0 +char main::idx#6 // reg byte y 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#10 main::idx#11 main::idx#4 ] diff --git a/src/test/ref/condition-integer-2.log b/src/test/ref/condition-integer-2.log index e70c0544e..c802f6492 100644 --- a/src/test/ref/condition-integer-2.log +++ b/src/test/ref/condition-integer-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -70,7 +70,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#19 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#5 ) @@ -83,63 +83,63 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 +char main::$0 +char main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 Adding number conversion cast (unumber) 0 in main::$2 = 0 != main::i#2 Adding number conversion cast (unumber) 0 in main::$3 = 0 != main::$0 Adding number conversion cast (unumber) 0 in main::$4 = 0 != main::$1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias idx#10 = idx#9 idx#17 @@ -247,27 +247,27 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#0 11.0 -byte idx#1 4.0 -byte idx#10 9.25 -byte idx#11 7.8 -byte idx#13 17.5 -byte idx#14 5.5 -byte idx#2 11.0 -byte idx#3 4.0 +char idx +char idx#0 // 11.0 +char idx#1 // 4.0 +char idx#10 // 9.25 +char idx#11 // 7.8 +char idx#13 // 17.5 +char idx#14 // 5.5 +char idx#2 // 11.0 +char idx#3 // 4.0 void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 -byte main::j -byte main::j#1 8.25 -byte main::j#2 16.5 -byte main::j#4 22.0 -byte main::k -byte main::k#1 11.0 -byte main::k#2 11.0 -byte main::k#3 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 +char main::j +char main::j#1 // 8.25 +char main::j#2 // 16.5 +char main::j#4 // 22.0 +char main::k +char main::k#1 // 11.0 +char main::k#2 // 11.0 +char main::k#3 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -477,28 +477,28 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#0 reg byte x 11.0 -byte idx#1 reg byte x 4.0 -byte idx#10 reg byte x 9.25 -byte idx#11 reg byte x 7.8 -byte idx#13 reg byte y 17.5 -byte idx#14 reg byte y 5.5 -byte idx#2 reg byte x 11.0 -byte idx#3 reg byte y 4.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#0 // reg byte x 11.0 +char idx#1 // reg byte x 4.0 +char idx#10 // reg byte x 9.25 +char idx#11 // reg byte x 7.8 +char idx#13 // reg byte y 17.5 +char idx#14 // reg byte y 5.5 +char idx#2 // reg byte x 11.0 +char idx#3 // reg byte y 4.0 void main() -byte main::i -byte main::i#1 reg byte a 22.0 -byte main::i#2 reg byte a 11.0 -byte main::j -byte main::j#1 reg byte y 8.25 -byte main::j#2 j zp[1]:2 16.5 -byte main::j#4 j zp[1]:2 22.0 -byte main::k -byte main::k#1 reg byte a 11.0 -byte main::k#2 reg byte x 11.0 -byte main::k#3 reg byte x 22.0 +char main::i +char main::i#1 // reg byte a 22.0 +char main::i#2 // reg byte a 11.0 +char main::j +char main::j#1 // reg byte y 8.25 +char main::j#2 // j zp[1]:2 16.5 +char main::j#4 // j zp[1]:2 22.0 +char main::k +char main::k#1 // reg byte a 11.0 +char main::k#2 // reg byte x 11.0 +char main::k#3 // reg byte x 22.0 reg byte a [ main::i#2 main::i#1 ] reg byte x [ idx#10 idx#0 ] diff --git a/src/test/ref/condition-integer-2.sym b/src/test/ref/condition-integer-2.sym index a0edc62bf..37e283e5a 100644 --- a/src/test/ref/condition-integer-2.sym +++ b/src/test/ref/condition-integer-2.sym @@ -1,25 +1,25 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#0 reg byte x 11.0 -byte idx#1 reg byte x 4.0 -byte idx#10 reg byte x 9.25 -byte idx#11 reg byte x 7.8 -byte idx#13 reg byte y 17.5 -byte idx#14 reg byte y 5.5 -byte idx#2 reg byte x 11.0 -byte idx#3 reg byte y 4.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#0 // reg byte x 11.0 +char idx#1 // reg byte x 4.0 +char idx#10 // reg byte x 9.25 +char idx#11 // reg byte x 7.8 +char idx#13 // reg byte y 17.5 +char idx#14 // reg byte y 5.5 +char idx#2 // reg byte x 11.0 +char idx#3 // reg byte y 4.0 void main() -byte main::i -byte main::i#1 reg byte a 22.0 -byte main::i#2 reg byte a 11.0 -byte main::j -byte main::j#1 reg byte y 8.25 -byte main::j#2 j zp[1]:2 16.5 -byte main::j#4 j zp[1]:2 22.0 -byte main::k -byte main::k#1 reg byte a 11.0 -byte main::k#2 reg byte x 11.0 -byte main::k#3 reg byte x 22.0 +char main::i +char main::i#1 // reg byte a 22.0 +char main::i#2 // reg byte a 11.0 +char main::j +char main::j#1 // reg byte y 8.25 +char main::j#2 // j zp[1]:2 16.5 +char main::j#4 // j zp[1]:2 22.0 +char main::k +char main::k#1 // reg byte a 11.0 +char main::k#2 // reg byte x 11.0 +char main::k#3 // reg byte x 22.0 reg byte a [ main::i#2 main::i#1 ] reg byte x [ idx#10 idx#0 ] diff --git a/src/test/ref/condition-integer-3.log b/src/test/ref/condition-integer-3.log index aaeaf58e9..33617b63f 100644 --- a/src/test/ref/condition-integer-3.log +++ b/src/test/ref/condition-integer-3.log @@ -39,7 +39,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -48,37 +48,37 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -bool~ main::$3 -bool~ main::$4 -signed byte main::i -signed byte main::i#0 -signed byte main::i#1 -signed byte main::i#2 -signed byte main::i#3 -signed byte main::i#4 -signed byte main::i#5 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::j -byte main::j#0 +char main::$0 +char main::$1 +char main::$2 +bool main::$3 +bool main::$4 +signed char main::i +signed char main::i#0 +signed char main::i#1 +signed char main::i#2 +signed char main::i#3 +signed char main::i#4 +signed char main::i#5 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::j +char main::j#0 Adding number conversion cast (snumber) 0 in main::$4 = 0 != main::i#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::idx#3 = main::idx#5 main::idx#4 Alias main::i#2 = main::i#4 main::i#5 @@ -106,7 +106,7 @@ Adding number conversion cast (snumber) 3 in [6] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 3 +Finalized signed number type (signed char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 @@ -159,14 +159,14 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -signed byte main::i -signed byte main::i#1 16.5 -signed byte main::i#2 5.5 -byte main::idx -byte main::idx#1 7.333333333333333 -byte main::idx#2 6.6000000000000005 -byte main::j -byte main::j#0 11.0 +signed char main::i +signed char main::i#1 // 16.5 +signed char main::i#2 // 5.5 +char main::idx +char main::idx#1 // 7.333333333333333 +char main::idx#2 // 6.6000000000000005 +char main::j +char main::j#0 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -280,16 +280,16 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -signed byte main::i -signed byte main::i#1 reg byte y 16.5 -signed byte main::i#2 reg byte y 5.5 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 6.6000000000000005 -byte main::j -byte main::j#0 reg byte a 11.0 +signed char main::i +signed char main::i#1 // reg byte y 16.5 +signed char main::i#2 // reg byte y 5.5 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 6.6000000000000005 +char main::j +char main::j#0 // reg byte a 11.0 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/condition-integer-3.sym b/src/test/ref/condition-integer-3.sym index 5a6d03f8b..f64a95c93 100644 --- a/src/test/ref/condition-integer-3.sym +++ b/src/test/ref/condition-integer-3.sym @@ -1,13 +1,13 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -signed byte main::i -signed byte main::i#1 reg byte y 16.5 -signed byte main::i#2 reg byte y 5.5 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 6.6000000000000005 -byte main::j -byte main::j#0 reg byte a 11.0 +signed char main::i +signed char main::i#1 // reg byte y 16.5 +signed char main::i#2 // reg byte y 5.5 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 6.6000000000000005 +char main::j +char main::j#0 // reg byte a 11.0 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/condition-integer-4.log b/src/test/ref/condition-integer-4.log index e2449f198..52e8c45b3 100644 --- a/src/test/ref/condition-integer-4.log +++ b/src/test/ref/condition-integer-4.log @@ -74,7 +74,7 @@ main::@return: scope:[main] from main::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -83,48 +83,48 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -number~ main::$0 -bool~ main::$1 -bool~ main::$10 -bool~ main::$11 -bool~ main::$12 -bool~ main::$13 -bool~ main::$14 -number~ main::$2 -bool~ main::$3 -number~ main::$4 -number~ main::$5 -bool~ main::$6 -bool~ main::$7 -number~ main::$8 -number~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +number main::$0 +bool main::$1 +bool main::$10 +bool main::$11 +bool main::$12 +bool main::$13 +bool main::$14 +number main::$2 +bool main::$3 +number main::$4 +number main::$5 +bool main::$6 +bool main::$7 +number main::$8 +number main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -145,7 +145,7 @@ Adding number conversion cast (unumber) main::$9 in main::$9 = main::i#5 & (unum Adding number conversion cast (unumber) $28*2 in (SCREEN+$28*2)[main::idx#4] = '+' Adding number conversion cast (unumber) $28*3 in (SCREEN+$28*3)[main::idx#6] = '+' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 2 @@ -155,21 +155,21 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 -Inferred type updated to byte in main::$2 = main::i#3 & 2 -Inferred type updated to byte in main::$4 = main::i#4 & 1 -Inferred type updated to byte in main::$5 = main::i#4 & 2 -Inferred type updated to byte in main::$8 = main::i#5 & 1 -Inferred type updated to byte in main::$9 = main::i#5 & 2 +Inferred type updated to char in main::$0 = main::i#2 & 1 +Inferred type updated to char in main::$2 = main::i#3 & 2 +Inferred type updated to char in main::$4 = main::i#4 & 1 +Inferred type updated to char in main::$5 = main::i#4 & 2 +Inferred type updated to char in main::$8 = main::i#5 & 1 +Inferred type updated to char in main::$9 = main::i#5 & 2 Inversing boolean not [5] main::$1 = 0 == main::$0 from [4] main::$13 = 0 != main::$0 Inversing boolean not [10] main::$3 = 0 == main::$2 from [9] main::$14 = 0 != main::$2 Successful SSA optimization Pass2UnaryNotSimplification @@ -208,7 +208,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [23] main::i#1 = ++ main::i#10 to ++ Resolved ranged comparison value [25] if(main::i#1!=rangelast(0,7)) goto main::@1 to 8 -Simplifying constant evaluating to zero (byte)$28*0 in [9] (SCREEN+(byte)$28*0)[main::idx#10] = '+' +Simplifying constant evaluating to zero (char)$28*0 in [9] (SCREEN+(char)$28*0)[main::idx#10] = '+' Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero SCREEN in [9] (SCREEN+0)[main::idx#10] = '+' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -229,11 +229,11 @@ Simplifying constant integer cast 8 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$4 = main::$0 main::$8 Alias main::$5 = main::$2 main::$9 @@ -252,12 +252,12 @@ Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::idx#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*1 Simplifying constant integer cast $28*2 @@ -326,14 +326,14 @@ main::@return: scope:[main] from main::@5 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$4 4.888888888888889 -byte~ main::$5 6.285714285714286 -byte main::i -byte main::i#1 16.5 -byte main::i#10 3.142857142857143 -byte main::idx -byte main::idx#1 7.333333333333333 -byte main::idx#10 5.076923076923077 +char main::$4 // 4.888888888888889 +char main::$5 // 6.285714285714286 +char main::i +char main::i#1 // 16.5 +char main::i#10 // 3.142857142857143 +char main::idx +char main::idx#1 // 7.333333333333333 +char main::idx#10 // 5.076923076923077 Initial phi equivalence classes [ main::i#10 main::i#1 ] @@ -527,16 +527,16 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$4 zp[1]:2 4.888888888888889 -byte~ main::$5 zp[1]:3 6.285714285714286 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#10 reg byte x 3.142857142857143 -byte main::idx -byte main::idx#1 reg byte y 7.333333333333333 -byte main::idx#10 reg byte y 5.076923076923077 +char main::$4 // zp[1]:2 4.888888888888889 +char main::$5 // zp[1]:3 6.285714285714286 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#10 // reg byte x 3.142857142857143 +char main::idx +char main::idx#1 // reg byte y 7.333333333333333 +char main::idx#10 // reg byte y 5.076923076923077 reg byte x [ main::i#10 main::i#1 ] reg byte y [ main::idx#10 main::idx#1 ] diff --git a/src/test/ref/condition-integer-4.sym b/src/test/ref/condition-integer-4.sym index 41871c8d2..547004686 100644 --- a/src/test/ref/condition-integer-4.sym +++ b/src/test/ref/condition-integer-4.sym @@ -1,13 +1,13 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$4 zp[1]:2 4.888888888888889 -byte~ main::$5 zp[1]:3 6.285714285714286 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#10 reg byte x 3.142857142857143 -byte main::idx -byte main::idx#1 reg byte y 7.333333333333333 -byte main::idx#10 reg byte y 5.076923076923077 +char main::$4 // zp[1]:2 4.888888888888889 +char main::$5 // zp[1]:3 6.285714285714286 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#10 // reg byte x 3.142857142857143 +char main::idx +char main::idx#1 // reg byte y 7.333333333333333 +char main::idx#10 // reg byte y 5.076923076923077 reg byte x [ main::i#10 main::i#1 ] reg byte y [ main::idx#10 main::idx#1 ] diff --git a/src/test/ref/condition-type-mismatch.log b/src/test/ref/condition-type-mismatch.log index 56eb2c789..7abe4ce41 100644 --- a/src/test/ref/condition-type-mismatch.log +++ b/src/test/ref/condition-type-mismatch.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from main main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,17 +27,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -constant byte main::b = $c -constant byte* main::screen = (byte*)$400 +bool main::$0 +bool main::$1 +__constant char main::b = $c +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::$1 = 0 != main::b Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [1] main::$0 = 0 == main::b from [0] main::$1 = 0 != main::b Successful SSA optimization Pass2UnaryNotSimplification @@ -129,7 +129,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/condition-type-mismatch.sym b/src/test/ref/condition-type-mismatch.sym index 7d06ab02f..2545d45d0 100644 --- a/src/test/ref/condition-type-mismatch.sym +++ b/src/test/ref/condition-type-mismatch.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/consolidate-array-index-problem.log b/src/test/ref/consolidate-array-index-problem.log index 478f570f2..6d39fa0bf 100644 --- a/src/test/ref/consolidate-array-index-problem.log +++ b/src/test/ref/consolidate-array-index-problem.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,24 +32,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -constant byte main::BLACK = 0 -constant byte* main::cols = (byte*)$d800 -constant byte* main::screen = (byte*)$400 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::y -byte main::y#0 +bool main::$1 +__constant char main::BLACK = 0 +__constant char *main::cols = (char *)$d800 +__constant char *main::screen = (char *)$400 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::y +char main::y#0 Adding number conversion cast (unumber) $c in main::y#0 = main::x#2 + $c Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$1 [7] if(main::x#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -66,7 +66,7 @@ Adding number conversion cast (unumber) $b in [5] if(main::x#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::x#0 Constant inlined main::x#0 = 0 @@ -102,11 +102,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::x -byte main::x#1 16.5 -byte main::x#2 8.25 -byte main::y -byte main::y#0 16.5 +char main::x +char main::x#1 // 16.5 +char main::x#2 // 8.25 +char main::y +char main::y#0 // 16.5 Initial phi equivalence classes [ main::x#2 main::x#1 ] @@ -201,14 +201,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte main::BLACK = 0 -constant byte* main::cols = (byte*) 55296 -constant byte* main::screen = (byte*) 1024 -byte main::x -byte main::x#1 reg byte y 16.5 -byte main::x#2 reg byte y 8.25 -byte main::y -byte main::y#0 reg byte x 16.5 +__constant char main::BLACK = 0 +__constant char *main::cols = (char *) 55296 +__constant char *main::screen = (char *) 1024 +char main::x +char main::x#1 // reg byte y 16.5 +char main::x#2 // reg byte y 8.25 +char main::y +char main::y#0 // reg byte x 16.5 reg byte y [ main::x#2 main::x#1 ] reg byte x [ main::y#0 ] diff --git a/src/test/ref/consolidate-array-index-problem.sym b/src/test/ref/consolidate-array-index-problem.sym index 0996b078d..687bfd751 100644 --- a/src/test/ref/consolidate-array-index-problem.sym +++ b/src/test/ref/consolidate-array-index-problem.sym @@ -1,12 +1,12 @@ void main() -constant byte main::BLACK = 0 -constant byte* main::cols = (byte*) 55296 -constant byte* main::screen = (byte*) 1024 -byte main::x -byte main::x#1 reg byte y 16.5 -byte main::x#2 reg byte y 8.25 -byte main::y -byte main::y#0 reg byte x 16.5 +__constant char main::BLACK = 0 +__constant char *main::cols = (char *) 55296 +__constant char *main::screen = (char *) 1024 +char main::x +char main::x#1 // reg byte y 16.5 +char main::x#2 // reg byte y 8.25 +char main::y +char main::y#0 // reg byte x 16.5 reg byte y [ main::x#2 main::x#1 ] reg byte x [ main::y#0 ] diff --git a/src/test/ref/consolidate-constant-problem-2.log b/src/test/ref/consolidate-constant-problem-2.log index 9601dd5c8..096683718 100644 --- a/src/test/ref/consolidate-constant-problem-2.log +++ b/src/test/ref/consolidate-constant-problem-2.log @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -51,30 +51,30 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -number~ main::$1 -byte*~ main::$2 -bool~ main::$4 -byte main::COLS -byte main::COLS#0 -byte main::COLS#1 -byte main::COLS#2 -byte main::COLS#3 -byte main::COLS#4 -byte main::COLS#5 -byte main::COLS#6 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 +bool main::$0 +number main::$1 +char *main::$2 +bool main::$4 +char main::COLS +char main::COLS#0 +char main::COLS#1 +char main::COLS#2 +char main::COLS#3 +char main::COLS#4 +char main::COLS#5 +char main::COLS#6 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 Adding number conversion cast (unumber) 2 in main::$0 = main::COLS#2 < 2 Adding number conversion cast (unumber) 4 in main::$1 = main::COLS#3 * 4 @@ -82,18 +82,18 @@ Adding number conversion cast (unumber) main::$1 in main::$1 = main::COLS#3 * (u Adding number conversion cast (unumber) 2 in main::sc#0 = main::$2 + 2 Adding number conversion cast (unumber) 4 in main::$4 = main::i#2 < 4 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 4 Simplifying constant integer cast 2 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::COLS#3 * 4 +Inferred type updated to char in main::$1 = main::COLS#3 * 4 Alias main::COLS#2 = main::COLS#3 Alias main::COLS#4 = main::COLS#6 main::COLS#5 Alias main::sc#1 = main::sc#2 @@ -162,16 +162,16 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte*~ main::$2 22.0 -byte main::COLS -byte main::COLS#1 22.0 -byte main::COLS#2 16.11111111111111 -byte main::i -byte main::i#1 202.0 -byte main::i#2 134.66666666666666 -byte* main::sc -byte* main::sc#0 22.4 +char main::$1 // 22.0 +char *main::$2 // 22.0 +char main::COLS +char main::COLS#1 // 22.0 +char main::COLS#2 // 16.11111111111111 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 134.66666666666666 +char *main::sc +char *main::sc#0 // 22.4 Initial phi equivalence classes [ main::COLS#2 main::COLS#1 ] @@ -319,18 +319,18 @@ Removing instruction __b3_from___b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 22.0 -byte*~ main::$2 zp[2]:2 22.0 -byte main::COLS -byte main::COLS#1 reg byte x 22.0 -byte main::COLS#2 reg byte x 16.11111111111111 -byte main::i -byte main::i#1 reg byte y 202.0 -byte main::i#2 reg byte y 134.66666666666666 -byte* main::sc -byte* main::sc#0 sc zp[2]:2 22.4 +char main::$1 // reg byte a 22.0 +char *main::$2 // zp[2]:2 22.0 +char main::COLS +char main::COLS#1 // reg byte x 22.0 +char main::COLS#2 // reg byte x 16.11111111111111 +char main::i +char main::i#1 // reg byte y 202.0 +char main::i#2 // reg byte y 134.66666666666666 +char *main::sc +char *main::sc#0 // sc zp[2]:2 22.4 reg byte x [ main::COLS#2 main::COLS#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/consolidate-constant-problem-2.sym b/src/test/ref/consolidate-constant-problem-2.sym index 20fcc9fd7..6f80f1f6b 100644 --- a/src/test/ref/consolidate-constant-problem-2.sym +++ b/src/test/ref/consolidate-constant-problem-2.sym @@ -1,15 +1,15 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 22.0 -byte*~ main::$2 zp[2]:2 22.0 -byte main::COLS -byte main::COLS#1 reg byte x 22.0 -byte main::COLS#2 reg byte x 16.11111111111111 -byte main::i -byte main::i#1 reg byte y 202.0 -byte main::i#2 reg byte y 134.66666666666666 -byte* main::sc -byte* main::sc#0 sc zp[2]:2 22.4 +char main::$1 // reg byte a 22.0 +char *main::$2 // zp[2]:2 22.0 +char main::COLS +char main::COLS#1 // reg byte x 22.0 +char main::COLS#2 // reg byte x 16.11111111111111 +char main::i +char main::i#1 // reg byte y 202.0 +char main::i#2 // reg byte y 134.66666666666666 +char *main::sc +char *main::sc#0 // sc zp[2]:2 22.4 reg byte x [ main::COLS#2 main::COLS#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/consolidate-constant-problem.log b/src/test/ref/consolidate-constant-problem.log index 69a8c41b4..5085e0d8e 100644 --- a/src/test/ref/consolidate-constant-problem.log +++ b/src/test/ref/consolidate-constant-problem.log @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -35,17 +35,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -number~ main::$3 -number~ main::$4 -bool~ main::$5 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -constant byte* const screen = (byte*)$400 +number main::$0 +char *main::$1 +char *main::$2 +number main::$3 +number main::$4 +bool main::$5 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +__constant char * const screen = (char *)$400 Adding number conversion cast (unumber) $28 in main::$0 = $28 * main::j#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)$28 * main::j#2 @@ -60,7 +60,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::$2 = (unumber)0 Inlining cast screen[main::$4] = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $27 Simplifying constant integer cast 0 @@ -68,16 +68,16 @@ Simplifying constant integer cast $28 Simplifying constant integer cast $25 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $25 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $25 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = $28 * main::j#2 -Inferred type updated to byte in main::$3 = $28 * main::j#2 -Inferred type updated to byte in main::$4 = main::$3 + $25 +Inferred type updated to char in main::$0 = $28 * main::j#2 +Inferred type updated to char in main::$3 = $28 * main::j#2 +Inferred type updated to char in main::$4 = main::$3 + $25 Identified duplicate assignment right side [6] main::$3 = $28 * main::j#2 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$5 [11] unroll if(main::j#1!=rangelast(0,1)) goto main::@1 @@ -99,7 +99,7 @@ Adding number conversion cast (unumber) 2 in [8] unroll if(main::j#1!=2) goto ma Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$3 = main::$0 Successful SSA optimization Pass2AliasElimination @@ -202,7 +202,7 @@ main::@return: scope:[main] from main::@1_1 VARIABLE REGISTER WEIGHTS void main() -byte main::j +char main::j Initial phi equivalence classes Complete equivalence classes @@ -278,8 +278,8 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -byte main::j -constant byte* const screen = (byte*) 1024 +char main::j +__constant char * const screen = (char *) 1024 diff --git a/src/test/ref/consolidate-constant-problem.sym b/src/test/ref/consolidate-constant-problem.sym index 5a03b0a58..848432a87 100644 --- a/src/test/ref/consolidate-constant-problem.sym +++ b/src/test/ref/consolidate-constant-problem.sym @@ -1,4 +1,4 @@ void main() -byte main::j -constant byte* const screen = (byte*) 1024 +char main::j +__constant char * const screen = (char *) 1024 diff --git a/src/test/ref/const-bool-0.log b/src/test/ref/const-bool-0.log index be78ba01a..c51b7687a 100644 --- a/src/test/ref/const-bool-0.log +++ b/src/test/ref/const-bool-0.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,14 +24,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte main::bError -byte main::bError#0 -byte main::bError#1 -constant byte* const main::screen = (byte*)$400 +char main::bError +char main::bError#0 +char main::bError#1 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) ~$10|$20|$40 in main::bError#1 = main::bError#0 & ~$10|$20|$40 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::bError#0 = 7 Successful SSA optimization Pass2ConstantIdentification @@ -40,18 +40,18 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [0] main::bError#1 = main::bError#0 & (byte)~$10|$20|$40 +Constant right-side identified [0] main::bError#1 = main::bError#0 & (char)~$10|$20|$40 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::bError#1 = main::bError#0&(byte)~$10|$20|$40 +Constant main::bError#1 = main::bError#0&(char)~$10|$20|$40 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::bError#0 Inlining constant with different constant siblings main::bError#1 Constant inlined main::bError#0 = 7 -Constant inlined main::bError#1 = 7&(byte)~$10|$20|$40 +Constant inlined main::bError#1 = 7&(char)~$10|$20|$40 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast ~$10|$20|$40 Successful SSA optimization PassNCastSimplification @@ -73,7 +73,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::bError +char main::bError Initial phi equivalence classes Complete equivalence classes @@ -123,8 +123,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::bError -constant byte* const main::screen = (byte*) 1024 +char main::bError +__constant char * const main::screen = (char *) 1024 diff --git a/src/test/ref/const-bool-0.sym b/src/test/ref/const-bool-0.sym index b65afd0a4..0b1c0b7e4 100644 --- a/src/test/ref/const-bool-0.sym +++ b/src/test/ref/const-bool-0.sym @@ -1,4 +1,4 @@ void main() -byte main::bError -constant byte* const main::screen = (byte*) 1024 +char main::bError +__constant char * const main::screen = (char *) 1024 diff --git a/src/test/ref/const-condition.log b/src/test/ref/const-condition.log index f3a75e8b2..a2ed5af62 100644 --- a/src/test/ref/const-condition.log +++ b/src/test/ref/const-condition.log @@ -17,7 +17,7 @@ main::@return: scope:[main] from main::@1 main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,17 +28,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = '*' Adding number conversion cast (unumber) 0 in main::SCREEN[0] = '!' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions if() condition always false - eliminating [0] if(7<4) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -130,7 +130,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/const-condition.sym b/src/test/ref/const-condition.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/const-condition.sym +++ b/src/test/ref/const-condition.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/const-declaration.log b/src/test/ref/const-declaration.log index 358caf57f..28b4037bb 100644 --- a/src/test/ref/const-declaration.log +++ b/src/test/ref/const-declaration.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,26 +21,26 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BODY1 = SCREEN+MARGIN_TOP*LINE_LEN+MARGIN_LEFT -constant byte* const BODY2 = SCREEN+OFFSET -constant const byte LINE_LEN = $28 -constant const byte MARGIN_LEFT = 4 -constant const byte MARGIN_TOP = 4 -constant const word OFFSET = (word)$28*5+5 -constant byte* const SCREEN = (byte*)$400 +__constant char * const BODY1 = SCREEN+MARGIN_TOP*LINE_LEN+MARGIN_LEFT +__constant char * const BODY2 = SCREEN+OFFSET +__constant const char LINE_LEN = $28 +__constant const char MARGIN_LEFT = 4 +__constant const char MARGIN_TOP = 4 +__constant const unsigned int OFFSET = (unsigned int)$28*5+5 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -121,13 +121,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BODY1 = SCREEN+MARGIN_TOP*LINE_LEN+MARGIN_LEFT -constant byte* const BODY2 = SCREEN+OFFSET -constant const byte LINE_LEN = $28 -constant const byte MARGIN_LEFT = 4 -constant const byte MARGIN_TOP = 4 -constant const word OFFSET = (word)$28*5+5 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const BODY1 = SCREEN+MARGIN_TOP*LINE_LEN+MARGIN_LEFT +__constant char * const BODY2 = SCREEN+OFFSET +__constant const char LINE_LEN = $28 +__constant const char MARGIN_LEFT = 4 +__constant const char MARGIN_TOP = 4 +__constant const unsigned int OFFSET = (unsigned int)$28*5+5 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/const-declaration.sym b/src/test/ref/const-declaration.sym index cf0b1dfce..8a0616b3b 100644 --- a/src/test/ref/const-declaration.sym +++ b/src/test/ref/const-declaration.sym @@ -1,9 +1,9 @@ -constant byte* const BODY1 = SCREEN+MARGIN_TOP*LINE_LEN+MARGIN_LEFT -constant byte* const BODY2 = SCREEN+OFFSET -constant const byte LINE_LEN = $28 -constant const byte MARGIN_LEFT = 4 -constant const byte MARGIN_TOP = 4 -constant const word OFFSET = (word)$28*5+5 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const BODY1 = SCREEN+MARGIN_TOP*LINE_LEN+MARGIN_LEFT +__constant char * const BODY2 = SCREEN+OFFSET +__constant const char LINE_LEN = $28 +__constant const char MARGIN_LEFT = 4 +__constant const char MARGIN_TOP = 4 +__constant const unsigned int OFFSET = (unsigned int)$28*5+5 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/const-early-identification.log b/src/test/ref/const-early-identification.log index 8ba337f2a..5923b6937 100644 --- a/src/test/ref/const-early-identification.log +++ b/src/test/ref/const-early-identification.log @@ -1,5 +1,5 @@ Setting inferred volatile on symbol affected by address-of main::addrA = &A -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement sub::$0 CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 SCREEN[0] = A SCREEN[1] = main::B SCREEN[2] = *main::addrA - call sub + call sub to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -34,7 +34,7 @@ __start::__init1: scope:[__start] from __start A = 'a' to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -43,16 +43,16 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -volatile byte A loadstore -constant byte* SCREEN = (byte*)$400 +__loadstore volatile char A +__constant char *SCREEN = (char *)$400 void __start() void main() -constant byte main::B = 'b' -constant byte* main::addrA = &A +__constant char main::B = 'b' +__constant char *main::addrA = &A void sub() -constant byte sub::C = 'c' -byte sub::D -byte sub::D#0 +__constant char sub::C = 'c' +char sub::D +char sub::D#0 Adding number conversion cast (unumber) 0 in SCREEN[0] = A Adding number conversion cast (unumber) 1 in SCREEN[1] = main::B @@ -61,7 +61,7 @@ Adding number conversion cast (unumber) 3 in SCREEN[3] = sub::C Adding number conversion cast (unumber) 1 in sub::D#0 = A + 1 Adding number conversion cast (unumber) 4 in SCREEN[4] = sub::D#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 @@ -69,12 +69,12 @@ Simplifying constant integer cast 3 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = A Successful SSA optimization PassNSimplifyExpressionWithZero @@ -109,7 +109,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -120,7 +120,7 @@ main: scope:[main] from __start::@1 [5] *SCREEN = A [6] *(SCREEN+1) = main::B [7] *(SCREEN+2) = *main::addrA - [8] call sub + [8] call sub to:main::@return main::@return: scope:[main] from main [9] return @@ -138,12 +138,12 @@ sub::@return: scope:[sub] from sub VARIABLE REGISTER WEIGHTS -volatile byte A loadstore 19.0 +__loadstore volatile char A // 19.0 void __start() void main() void sub() -byte sub::D -byte sub::D#0 202.0 +char sub::D +char sub::D#0 // 202.0 Initial phi equivalence classes Added variable A to live range equivalence class [ A ] @@ -205,7 +205,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -226,7 +226,7 @@ main: { // [7] *(SCREEN+2) = *main::addrA -- _deref_pbuc1=_deref_pbuc2 lda.z addrA sta SCREEN+2 - // [8] call sub + // [8] call sub jsr sub jmp __breturn // main::@return @@ -271,16 +271,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -volatile byte A loadstore zp[1]:2 19.0 -constant byte* SCREEN = (byte*) 1024 +__loadstore volatile char A // zp[1]:2 19.0 +__constant char *SCREEN = (char *) 1024 void __start() void main() -constant byte main::B = 'b' -constant byte* main::addrA = &A +__constant char main::B = 'b' +__constant char *main::addrA = &A void sub() -constant byte sub::C = 'c' -byte sub::D -byte sub::D#0 reg byte x 202.0 +__constant char sub::C = 'c' +char sub::D +char sub::D#0 // reg byte x 202.0 zp[1]:2 [ A ] reg byte x [ sub::D#0 ] @@ -314,7 +314,7 @@ __start: { sta.z A // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -337,7 +337,7 @@ main: { lda.z addrA sta SCREEN+2 // sub() - // [8] call sub + // [8] call sub jsr sub // main::@return // } diff --git a/src/test/ref/const-early-identification.sym b/src/test/ref/const-early-identification.sym index 795302575..544bc141d 100644 --- a/src/test/ref/const-early-identification.sym +++ b/src/test/ref/const-early-identification.sym @@ -1,13 +1,13 @@ -volatile byte A loadstore zp[1]:2 19.0 -constant byte* SCREEN = (byte*) 1024 +__loadstore volatile char A // zp[1]:2 19.0 +__constant char *SCREEN = (char *) 1024 void __start() void main() -constant byte main::B = 'b' -constant byte* main::addrA = &A +__constant char main::B = 'b' +__constant char *main::addrA = &A void sub() -constant byte sub::C = 'c' -byte sub::D -byte sub::D#0 reg byte x 202.0 +__constant char sub::C = 'c' +char sub::D +char sub::D#0 // reg byte x 202.0 zp[1]:2 [ A ] reg byte x [ sub::D#0 ] diff --git a/src/test/ref/const-identification.asm b/src/test/ref/const-identification.asm index 7d3e4a477..546333848 100644 --- a/src/test/ref/const-identification.asm +++ b/src/test/ref/const-identification.asm @@ -27,6 +27,7 @@ main: { jsr line jmp __b2 } +// void line(char x0, char x1) line: { .const x0 = 0 .const x1 = $a @@ -44,7 +45,7 @@ line: { inx jmp __b1 } -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // byte idx = plots[x] ldy plots,x diff --git a/src/test/ref/const-identification.cfg b/src/test/ref/const-identification.cfg index 1c9a19d57..070685b97 100644 --- a/src/test/ref/const-identification.cfg +++ b/src/test/ref/const-identification.cfg @@ -12,10 +12,10 @@ main::@1: scope:[main] from main main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [6] phi() - [7] call line + [7] call line to:main::@2 -void line(byte line::x0 , byte line::x1) +void line(char x0 , char x1) line: scope:[line] from main::@2 [8] phi() to:line::@1 @@ -28,13 +28,13 @@ line::@return: scope:[line] from line::@1 to:@return line::@2: scope:[line] from line::@1 [12] plot::x#1 = line::x#2 - [13] call plot + [13] call plot to:line::@3 line::@3: scope:[line] from line::@2 [14] line::x#1 = ++ line::x#2 to:line::@1 -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from line::@2 [15] plot::idx#0 = plots[plot::x#1] [16] plot::$0 = SCREEN[plot::idx#0] + 1 diff --git a/src/test/ref/const-identification.log b/src/test/ref/const-identification.log index 58a9b35d9..19b0fe7ca 100644 --- a/src/test/ref/const-identification.log +++ b/src/test/ref/const-identification.log @@ -16,7 +16,7 @@ main::@1: scope:[main] from main main::@1 main::@2: scope:[main] from main::@1 main::@3 line::x0#0 = 0 line::x1#0 = $a - call line + call line to:main::@3 main::@3: scope:[main] from main::@2 if(true) goto main::@2 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void line(byte line::x0 , byte line::x1) +void line(char x0 , char x1) line: scope:[line] from main::@2 line::x1#1 = phi( main::@2/line::x1#0 ) line::x0#1 = phi( main::@2/line::x0#0 ) @@ -40,7 +40,7 @@ line::@1: scope:[line] from line line::@2: scope:[line] from line line::x0#3 = phi( line/line::x0#1 ) plot::x#0 = line::x0#3 - call plot + call plot to:line::@5 line::@5: scope:[line] from line::@2 to:line::@return @@ -54,7 +54,7 @@ line::@4: scope:[line] from line::@3 line::x1#5 = phi( line::@3/line::x1#2 ) line::x#3 = phi( line::@3/line::x#2 ) plot::x#1 = line::x#3 - call plot + call plot to:line::@6 line::@6: scope:[line] from line::@4 line::x1#4 = phi( line::@4/line::x1#5 ) @@ -65,7 +65,7 @@ line::@return: scope:[line] from line::@3 line::@5 return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from line::@2 line::@4 plot::x#2 = phi( line::@2/plot::x#0, line::@4/plot::x#1 ) plot::idx#0 = plots[plot::x#2] @@ -78,7 +78,7 @@ plot::@return: scope:[plot] from plot void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -87,44 +87,44 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -void line(byte line::x0 , byte line::x1) -bool~ line::$0 -bool~ line::$2 -byte line::x -byte line::x#0 -byte line::x#1 -byte line::x#2 -byte line::x#3 -byte line::x#4 -byte line::x0 -byte line::x0#0 -byte line::x0#1 -byte line::x0#2 -byte line::x0#3 -byte line::x1 -byte line::x1#0 -byte line::x1#1 -byte line::x1#2 -byte line::x1#3 -byte line::x1#4 -byte line::x1#5 +void line(char x0 , char x1) +bool line::$0 +bool line::$2 +char line::x +char line::x#0 +char line::x#1 +char line::x#2 +char line::x#3 +char line::x#4 +char line::x0 +char line::x0#0 +char line::x0#1 +char line::x0#2 +char line::x0#3 +char line::x1 +char line::x1#0 +char line::x1#1 +char line::x1#2 +char line::x1#3 +char line::x1#4 +char line::x1#5 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -void plot(byte plot::x) -number~ plot::$0 -byte plot::idx -byte plot::idx#0 -byte plot::x -byte plot::x#0 -byte plot::x#1 -byte plot::x#2 -constant byte* const plots = (byte*)$1000 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +void plot(char x) +number plot::$0 +char plot::idx +char plot::idx#0 +char plot::x +char plot::x#0 +char plot::x#1 +char plot::x#2 +__constant char * const plots = (char *)$1000 Adding number conversion cast (unumber) 0 in SCREEN[main::i#2] = 0 Adding number conversion cast (unumber) 0 in line::x0#0 = 0 @@ -136,19 +136,19 @@ Inlining cast SCREEN[main::i#2] = (unumber)0 Inlining cast line::x0#0 = (unumber)0 Inlining cast line::x1#0 = (unumber)$a Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 4096 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 4096 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $a Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in plot::$0 = SCREEN[plot::idx#0] + 1 +Inferred type updated to char in plot::$0 = SCREEN[plot::idx#0] + 1 Alias line::x0#1 = line::x0#2 line::x#0 line::x0#3 Alias line::x1#1 = line::x1#3 Alias line::x#2 = line::x#3 line::x#4 @@ -194,8 +194,8 @@ Simplifying constant integer cast $28 Simplifying constant integer cast line::x1#0+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Identical Phi Values plot::x#2 plot::x#1 Successful SSA optimization Pass2IdenticalPhiElimination @@ -241,10 +241,10 @@ main::@1: scope:[main] from main main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [6] phi() - [7] call line + [7] call line to:main::@2 -void line(byte line::x0 , byte line::x1) +void line(char x0 , char x1) line: scope:[line] from main::@2 [8] phi() to:line::@1 @@ -257,13 +257,13 @@ line::@return: scope:[line] from line::@1 to:@return line::@2: scope:[line] from line::@1 [12] plot::x#1 = line::x#2 - [13] call plot + [13] call plot to:line::@3 line::@3: scope:[line] from line::@2 [14] line::x#1 = ++ line::x#2 to:line::@1 -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from line::@2 [15] plot::idx#0 = plots[plot::x#1] [16] plot::$0 = SCREEN[plot::idx#0] + 1 @@ -275,22 +275,22 @@ plot::@return: scope:[plot] from plot VARIABLE REGISTER WEIGHTS -void line(byte line::x0 , byte line::x1) -byte line::x -byte line::x#1 20002.0 -byte line::x#2 10001.0 -byte line::x0 -byte line::x1 +void line(char x0 , char x1) +char line::x +char line::x#1 // 20002.0 +char line::x#2 // 10001.0 +char line::x0 +char line::x1 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 18.333333333333332 -void plot(byte plot::x) -byte~ plot::$0 200002.0 -byte plot::idx -byte plot::idx#0 150001.5 -byte plot::x -byte plot::x#1 110002.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 18.333333333333332 +void plot(char x) +char plot::$0 // 200002.0 +char plot::idx +char plot::idx#0 // 150001.5 +char plot::x +char plot::x#1 // 110002.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -376,13 +376,14 @@ main: { jmp __b2 // main::@2 __b2: - // [7] call line + // [7] call line // [8] phi from main::@2 to line [phi:main::@2->line] line_from___b2: jsr line jmp __b2_from___b2 } // line +// void line(char x0, char x1) line: { .const x0 = 0 .const x1 = $a @@ -404,7 +405,7 @@ line: { // line::@2 __b2: // [12] plot::x#1 = line::x#2 - // [13] call plot + // [13] call plot jsr plot jmp __b3 // line::@3 @@ -417,7 +418,7 @@ line: { jmp __b1 } // plot -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // [15] plot::idx#0 = plots[plot::x#1] -- vbuyy=pbuc1_derefidx_vbuxx ldy plots,x @@ -461,26 +462,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -void line(byte line::x0 , byte line::x1) -byte line::x -byte line::x#1 reg byte x 20002.0 -byte line::x#2 reg byte x 10001.0 -byte line::x0 -constant byte line::x0#0 x0 = 0 -byte line::x1 -constant byte line::x1#0 x1 = $a +__constant char * const SCREEN = (char *) 1024 +void line(char x0 , char x1) +char line::x +char line::x#1 // reg byte x 20002.0 +char line::x#2 // reg byte x 10001.0 +char line::x0 +__constant char line::x0#0 = 0 // x0 +char line::x1 +__constant char line::x1#0 = $a // x1 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 18.333333333333332 -void plot(byte plot::x) -byte~ plot::$0 reg byte a 200002.0 -byte plot::idx -byte plot::idx#0 reg byte y 150001.5 -byte plot::x -byte plot::x#1 reg byte x 110002.0 -constant byte* const plots = (byte*) 4096 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 18.333333333333332 +void plot(char x) +char plot::$0 // reg byte a 200002.0 +char plot::idx +char plot::idx#0 // reg byte y 150001.5 +char plot::x +char plot::x#1 // reg byte x 110002.0 +__constant char * const plots = (char *) 4096 reg byte x [ main::i#2 main::i#1 ] reg byte x [ line::x#2 line::x#1 ] @@ -533,12 +534,13 @@ main: { // main::@2 __b2: // line(0, 10) - // [7] call line + // [7] call line // [8] phi from main::@2 to line [phi:main::@2->line] jsr line jmp __b2 } // line +// void line(char x0, char x1) line: { .const x0 = 0 .const x1 = $a @@ -559,7 +561,7 @@ line: { __b2: // plot(x) // [12] plot::x#1 = line::x#2 - // [13] call plot + // [13] call plot jsr plot // line::@3 // for(byte x = x0; x<=x1; x++) @@ -570,7 +572,7 @@ line: { jmp __b1 } // plot -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // byte idx = plots[x] // [15] plot::idx#0 = plots[plot::x#1] -- vbuyy=pbuc1_derefidx_vbuxx diff --git a/src/test/ref/const-identification.sym b/src/test/ref/const-identification.sym index 99f7d4410..b04f6f121 100644 --- a/src/test/ref/const-identification.sym +++ b/src/test/ref/const-identification.sym @@ -1,23 +1,23 @@ -constant byte* const SCREEN = (byte*) 1024 -void line(byte line::x0 , byte line::x1) -byte line::x -byte line::x#1 reg byte x 20002.0 -byte line::x#2 reg byte x 10001.0 -byte line::x0 -constant byte line::x0#0 x0 = 0 -byte line::x1 -constant byte line::x1#0 x1 = $a +__constant char * const SCREEN = (char *) 1024 +void line(char x0 , char x1) +char line::x +char line::x#1 // reg byte x 20002.0 +char line::x#2 // reg byte x 10001.0 +char line::x0 +__constant char line::x0#0 = 0 // x0 +char line::x1 +__constant char line::x1#0 = $a // x1 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 18.333333333333332 -void plot(byte plot::x) -byte~ plot::$0 reg byte a 200002.0 -byte plot::idx -byte plot::idx#0 reg byte y 150001.5 -byte plot::x -byte plot::x#1 reg byte x 110002.0 -constant byte* const plots = (byte*) 4096 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 18.333333333333332 +void plot(char x) +char plot::$0 // reg byte a 200002.0 +char plot::idx +char plot::idx#0 // reg byte y 150001.5 +char plot::x +char plot::x#1 // reg byte x 110002.0 +__constant char * const plots = (char *) 4096 reg byte x [ main::i#2 main::i#1 ] reg byte x [ line::x#2 line::x#1 ] diff --git a/src/test/ref/const-if-problem.log b/src/test/ref/const-if-problem.log index a9ae04a92..294cc06bf 100644 --- a/src/test/ref/const-if-problem.log +++ b/src/test/ref/const-if-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,7 +10,7 @@ main::@1: scope:[main] from main SCREEN[0] = 'a' to:main::@return main::@2: scope:[main] from main - call doit + call doit to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 main::@3 void doit() doit: scope:[doit] from main::@2 SCREEN[1] = cc - call doit2 + call doit2 to:doit::@1 doit::@1: scope:[doit] from doit to:doit::@return @@ -43,7 +43,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -52,9 +52,9 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -constant byte cc = 'b' +__constant char cc = 'b' void doit() void doit2() void main() @@ -63,14 +63,14 @@ Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Adding number conversion cast (unumber) 1 in SCREEN[1] = cc Adding number conversion cast (unumber) 2 in SCREEN[2] = cc Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions if() condition always true - replacing block destination [0] if(1==1) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -171,7 +171,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/const-if-problem.sym b/src/test/ref/const-if-problem.sym index 2527e14d5..94fb47daa 100644 --- a/src/test/ref/const-if-problem.sym +++ b/src/test/ref/const-if-problem.sym @@ -1,3 +1,3 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/const-int-cast-problem.log b/src/test/ref/const-int-cast-problem.log index fb40ec426..a5df08b1f 100644 --- a/src/test/ref/const-int-cast-problem.log +++ b/src/test/ref/const-int-cast-problem.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,22 +28,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +char main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) 4 in main::$0 = main::i#2 >> 4 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$1 [6] if(main::i#1!=rangelast($79,$7a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -60,7 +60,7 @@ Adding number conversion cast (unumber) $7b in [4] if(main::i#1!=$7b) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $7b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $7b +Finalized unsigned number type (char) $7b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = $79 @@ -95,10 +95,10 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::$0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -185,12 +185,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::$0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/const-int-cast-problem.sym b/src/test/ref/const-int-cast-problem.sym index 766bdacb3..a697d7ca3 100644 --- a/src/test/ref/const-int-cast-problem.sym +++ b/src/test/ref/const-int-cast-problem.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::$0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/const-mult-div.log b/src/test/ref/const-mult-div.log index b3fb4151f..c845e2491 100644 --- a/src/test/ref/const-mult-div.log +++ b/src/test/ref/const-mult-div.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,15 +22,15 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte main::b = (byte)6*$e/3+$16%3 -constant byte* main::screen = (byte*)$400 +__constant char main::b = (char)6*$e/3+$16%3 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::screen[0] = main::b Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::screen in [0] main::screen[0] = main::b Successful SSA optimization PassNSimplifyExpressionWithZero @@ -39,11 +39,11 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $16 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $16 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 6*$e/3+$16%3 Successful SSA optimization PassNCastSimplification @@ -115,8 +115,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte main::b = 6*$e/3+$16%3 -constant byte* main::screen = (byte*) 1024 +__constant char main::b = 6*$e/3+$16%3 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/const-mult-div.sym b/src/test/ref/const-mult-div.sym index a737f386b..5e5d45a43 100644 --- a/src/test/ref/const-mult-div.sym +++ b/src/test/ref/const-mult-div.sym @@ -1,4 +1,4 @@ void main() -constant byte main::b = 6*$e/3+$16%3 -constant byte* main::screen = (byte*) 1024 +__constant char main::b = 6*$e/3+$16%3 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/const-param.asm b/src/test/ref/const-param.asm index 61272b382..198fc2983 100644 --- a/src/test/ref/const-param.asm +++ b/src/test/ref/const-param.asm @@ -32,7 +32,7 @@ main: { // } rts } -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // a+b clc diff --git a/src/test/ref/const-param.cfg b/src/test/ref/const-param.cfg index 1a5db6328..43c6c3221 100644 --- a/src/test/ref/const-param.cfg +++ b/src/test/ref/const-param.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#0 = sum::return#3 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#0 [4] *main::screen = main::$0 - [5] call sum + [5] call sum [6] sum::return#1 = sum::return#3 to:main::@2 main::@2: scope:[main] from main::@1 [7] main::$1 = sum::return#1 [8] *(main::screen+1) = main::$1 - [9] call sum + [9] call sum [10] sum::return#2 = sum::return#3 to:main::@3 main::@3: scope:[main] from main::@2 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@3 [13] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 main::@2 [14] sum::b#3 = phi( main/'c', main::@1/'m', main::@2/'l' ) [15] sum::return#3 = main::reverse + sum::b#3 diff --git a/src/test/ref/const-param.log b/src/test/ref/const-param.log index 2d781060d..d169c1ccf 100644 --- a/src/test/ref/const-param.log +++ b/src/test/ref/const-param.log @@ -5,7 +5,7 @@ void main() main: scope:[main] from __start sum::a#0 = main::reverse sum::b#0 = 'c' - call sum + call sum sum::return#0 = sum::return#4 to:main::@1 main::@1: scope:[main] from main @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::screen[0] = main::$0 sum::a#1 = main::reverse sum::b#1 = 'm' - call sum + call sum sum::return#1 = sum::return#4 to:main::@2 main::@2: scope:[main] from main::@1 @@ -23,7 +23,7 @@ main::@2: scope:[main] from main::@1 main::screen[1] = main::$1 sum::a#2 = main::reverse sum::b#2 = 'l' - call sum + call sum sum::return#2 = sum::return#4 to:main::@3 main::@3: scope:[main] from main::@2 @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@3 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 main::@2 sum::b#3 = phi( main/sum::b#0, main::@1/sum::b#1, main::@2/sum::b#2 ) sum::a#3 = phi( main/sum::a#0, main::@1/sum::a#1, main::@2/sum::a#2 ) @@ -50,7 +50,7 @@ sum::@return: scope:[sum] from sum void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -61,46 +61,46 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -constant const byte main::reverse = $80 -constant byte* main::screen = (byte*)$400 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::a#3 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -byte sum::b#3 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 -byte sum::return#7 -byte sum::return#8 +char main::$0 +char main::$1 +char main::$2 +__constant const char main::reverse = $80 +__constant char *main::screen = (char *)$400 +char sum(char a , char b) +char sum::$0 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::a#3 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +char sum::b#3 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 +char sum::return#7 +char sum::return#8 Adding number conversion cast (unumber) 0 in main::screen[0] = main::$0 Adding number conversion cast (unumber) 1 in main::screen[1] = main::$1 Adding number conversion cast (unumber) 2 in main::screen[2] = main::$2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias sum::return#0 = sum::return#5 Alias sum::return#1 = sum::return#6 @@ -152,19 +152,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#0 = sum::return#3 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#0 [4] *main::screen = main::$0 - [5] call sum + [5] call sum [6] sum::return#1 = sum::return#3 to:main::@2 main::@2: scope:[main] from main::@1 [7] main::$1 = sum::return#1 [8] *(main::screen+1) = main::$1 - [9] call sum + [9] call sum [10] sum::return#2 = sum::return#3 to:main::@3 main::@3: scope:[main] from main::@2 @@ -175,7 +175,7 @@ main::@return: scope:[main] from main::@3 [13] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 main::@2 [14] sum::b#3 = phi( main/'c', main::@1/'m', main::@2/'l' ) [15] sum::return#3 = main::reverse + sum::b#3 @@ -187,18 +187,18 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#3 11.0 -byte sum::return -byte sum::return#0 4.0 -byte sum::return#1 4.0 -byte sum::return#2 4.0 -byte sum::return#3 3.4000000000000004 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#3 // 11.0 +char sum::return +char sum::return#0 // 4.0 +char sum::return#1 // 4.0 +char sum::return#2 // 4.0 +char sum::return#3 // 3.4000000000000004 Initial phi equivalence classes [ sum::b#3 ] @@ -266,7 +266,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label reverse = $80 .label screen = $400 - // [1] call sum + // [1] call sum // [14] phi from main to sum [phi:main->sum] sum_from_main: // [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- vbuaa=vbuc1 @@ -279,7 +279,7 @@ main: { // [3] main::$0 = sum::return#0 // [4] *main::screen = main::$0 -- _deref_pbuc1=vbuaa sta screen - // [5] call sum + // [5] call sum // [14] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- vbuaa=vbuc1 @@ -292,7 +292,7 @@ main: { // [7] main::$1 = sum::return#1 // [8] *(main::screen+1) = main::$1 -- _deref_pbuc1=vbuaa sta screen+1 - // [9] call sum + // [9] call sum // [14] phi from main::@2 to sum [phi:main::@2->sum] sum_from___b2: // [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- vbuaa=vbuc1 @@ -312,7 +312,7 @@ main: { rts } // sum -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // [15] sum::return#3 = main::reverse + sum::b#3 -- vbuaa=vbuc1_plus_vbuaa clc @@ -344,20 +344,20 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -constant const byte main::reverse = $80 -constant byte* main::screen = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#3 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -byte sum::return#1 reg byte a 4.0 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 3.4000000000000004 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +__constant const char main::reverse = $80 +__constant char *main::screen = (char *) 1024 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#3 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +char sum::return#1 // reg byte a 4.0 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 3.4000000000000004 reg byte a [ sum::b#3 ] reg byte a [ sum::return#0 ] @@ -390,7 +390,7 @@ main: { .label reverse = $80 .label screen = $400 // sum(reverse, 'c') - // [1] call sum + // [1] call sum // [14] phi from main to sum [phi:main->sum] // [14] phi sum::b#3 = 'c' [phi:main->sum#0] -- vbuaa=vbuc1 lda #'c' @@ -403,7 +403,7 @@ main: { // [4] *main::screen = main::$0 -- _deref_pbuc1=vbuaa sta screen // sum(reverse, 'm') - // [5] call sum + // [5] call sum // [14] phi from main::@1 to sum [phi:main::@1->sum] // [14] phi sum::b#3 = 'm' [phi:main::@1->sum#0] -- vbuaa=vbuc1 lda #'m' @@ -416,7 +416,7 @@ main: { // [8] *(main::screen+1) = main::$1 -- _deref_pbuc1=vbuaa sta screen+1 // sum(reverse, 'l') - // [9] call sum + // [9] call sum // [14] phi from main::@2 to sum [phi:main::@2->sum] // [14] phi sum::b#3 = 'l' [phi:main::@2->sum#0] -- vbuaa=vbuc1 lda #'l' @@ -434,7 +434,7 @@ main: { rts } // sum -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // a+b // [15] sum::return#3 = main::reverse + sum::b#3 -- vbuaa=vbuc1_plus_vbuaa diff --git a/src/test/ref/const-param.sym b/src/test/ref/const-param.sym index db9473d3e..38710064c 100644 --- a/src/test/ref/const-param.sym +++ b/src/test/ref/const-param.sym @@ -1,18 +1,18 @@ void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -constant const byte main::reverse = $80 -constant byte* main::screen = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#3 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -byte sum::return#1 reg byte a 4.0 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 3.4000000000000004 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +__constant const char main::reverse = $80 +__constant char *main::screen = (char *) 1024 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#3 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +char sum::return#1 // reg byte a 4.0 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 3.4000000000000004 reg byte a [ sum::b#3 ] reg byte a [ sum::return#0 ] diff --git a/src/test/ref/const-parenthesis.log b/src/test/ref/const-parenthesis.log index 6e3ea3ffd..2499c5d3a 100644 --- a/src/test/ref/const-parenthesis.log +++ b/src/test/ref/const-parenthesis.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,10 +21,10 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant const byte main::dy = $80 +__constant const char main::dy = $80 Adding number conversion cast (unumber) main::dy-1/$10 in SCREEN[0] = main::dy-1/$10 Adding number conversion cast (unumber) 1 in SCREEN[0] = ((unumber)) main::dy-1/$10 @@ -39,7 +39,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast SCREEN[(unumber)0] = (unumber)main::dy-(unumber)1/(unumber)$10 Inlining cast SCREEN[(unumber)1] = (unumber)main::dy-(unumber)1>>(unumber)4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast main::dy-(unumber)1/(unumber)$10 Simplifying constant integer cast 1 Simplifying constant integer cast $10 @@ -49,12 +49,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 4 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = main::dy-1/$10 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -140,9 +140,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant const byte main::dy = $80 +__constant const char main::dy = $80 diff --git a/src/test/ref/const-parenthesis.sym b/src/test/ref/const-parenthesis.sym index 8642c88a0..7c6bb3d8a 100644 --- a/src/test/ref/const-parenthesis.sym +++ b/src/test/ref/const-parenthesis.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant const byte main::dy = $80 +__constant const char main::dy = $80 diff --git a/src/test/ref/const-pointer.log b/src/test/ref/const-pointer.log index 6aeb21912..7f2e447c9 100644 --- a/src/test/ref/const-pointer.log +++ b/src/test/ref/const-pointer.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,22 +29,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::NULL = (byte*)0 -constant byte* main::rem = (byte*)$ff -constant byte* main::screen = (byte*)$400 +bool main::$0 +__constant char *main::NULL = (char *)0 +__constant char *main::rem = (char *)$ff +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::screen[0] = '*' Adding number conversion cast (unumber) 0 in main::screen[0] = '.' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 255 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 255 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [1] if(main::rem!=main::NULL) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -140,7 +140,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/const-pointer.sym b/src/test/ref/const-pointer.sym index 7d06ab02f..2545d45d0 100644 --- a/src/test/ref/const-pointer.sym +++ b/src/test/ref/const-pointer.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/const-signed-promotion.log b/src/test/ref/const-signed-promotion.log index 996c377aa..141e6eda8 100644 --- a/src/test/ref/const-signed-promotion.log +++ b/src/test/ref/const-signed-promotion.log @@ -7,14 +7,14 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$1 = main::i#2 * SIZEOF_SIGNED_WORD + main::$1 = main::i#2 * SIZEOF_INT world[main::$1] = $190 main::i#1 = main::i#2 + rangenext(0,2) main::$0 = main::i#1 != rangelast(0,2) if(main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - main::$2 = 0 * SIZEOF_SIGNED_WORD + main::$2 = 0 * SIZEOF_INT *main::screen = world[main::$2] to:main::@return main::@return: scope:[main] from main::@2 @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,43 +32,43 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -number~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant signed word* main::screen = (signed word*)$400 -constant signed word* world[3] = { fill( 3, 0) } +bool main::$0 +char main::$1 +number main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant int *main::screen = (int *)$400 +__constant int world[3] = { fill( 3, 0) } Adding number conversion cast (snumber) $190 in world[main::$1] = $190 -Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_INT +Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_INT Successful SSA optimization PassNAddNumberTypeConversions Inlining cast world[main::$1] = (snumber)$190 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Simplifying constant integer cast $190 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed word) $190 -Finalized unsigned number type (byte) 0 +Finalized signed number type (int) $190 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 0 * SIZEOF_SIGNED_WORD +Inferred type updated to char in main::$2 = 0 * SIZEOF_INT Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [7] main::$2 = 0 * SIZEOF_SIGNED_WORD +Constant right-side identified [7] main::$2 = 0 * SIZEOF_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$2 = 0*SIZEOF_SIGNED_WORD +Constant main::$2 = 0*SIZEOF_INT Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [4] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [6] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying constant evaluating to zero 0*SIZEOF_SIGNED_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero world in [8] *main::screen = world[main::$2] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -83,17 +83,17 @@ Adding number conversion cast (unumber) 3 in [4] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [1] main::$1 = main::i#2 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [1] main::$1 = main::i#2 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -128,10 +128,10 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -236,12 +236,12 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -constant signed word* main::screen = (signed word*) 1024 -constant signed word* world[3] = { fill( 3, 0) } +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +__constant int *main::screen = (int *) 1024 +__constant int world[3] = { fill( 3, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/const-signed-promotion.sym b/src/test/ref/const-signed-promotion.sym index 0de6b6d94..62b0ddb69 100644 --- a/src/test/ref/const-signed-promotion.sym +++ b/src/test/ref/const-signed-promotion.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -constant signed word* main::screen = (signed word*) 1024 -constant signed word* world[3] = { fill( 3, 0) } +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +__constant int *main::screen = (int *) 1024 +__constant int world[3] = { fill( 3, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/const-volatile-problem.log b/src/test/ref/const-volatile-problem.log index af9cfd663..9b2f5f495 100644 --- a/src/test/ref/const-volatile-problem.log +++ b/src/test/ref/const-volatile-problem.log @@ -1,11 +1,11 @@ Resolved forward reference irq to __interrupt(rom_sys_c64) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - PLEX_SCREEN_PTR1#0 = (byte*)$400 + PLEX_SCREEN_PTR1#0 = (char *)$400 *IRQ = &irq to:main::@return main::@return: scope:[main] from main @@ -29,12 +29,12 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - PLEX_SCREEN_PTR1#2 = (byte*)$400 + PLEX_SCREEN_PTR1#2 = (char *)$400 idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 PLEX_SCREEN_PTR1#9 = phi( __start::__init1/PLEX_SCREEN_PTR1#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 PLEX_SCREEN_PTR1#7 = phi( __start::@1/PLEX_SCREEN_PTR1#1 ) @@ -47,28 +47,28 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant void()** const IRQ = (void()**)$314 -byte* PLEX_SCREEN_PTR1 -byte* PLEX_SCREEN_PTR1#0 -byte* PLEX_SCREEN_PTR1#1 -byte* PLEX_SCREEN_PTR1#2 -byte* PLEX_SCREEN_PTR1#3 -byte* PLEX_SCREEN_PTR1#4 -byte* PLEX_SCREEN_PTR1#5 -byte* PLEX_SCREEN_PTR1#6 -byte* PLEX_SCREEN_PTR1#7 -byte* PLEX_SCREEN_PTR1#8 -byte* PLEX_SCREEN_PTR1#9 -constant byte* PLEX_SCREEN_PTR2 = (byte*)$500 +__constant void (** const IRQ)() = (void (**)())$314 +char *PLEX_SCREEN_PTR1 +char *PLEX_SCREEN_PTR1#0 +char *PLEX_SCREEN_PTR1#1 +char *PLEX_SCREEN_PTR1#2 +char *PLEX_SCREEN_PTR1#3 +char *PLEX_SCREEN_PTR1#4 +char *PLEX_SCREEN_PTR1#5 +char *PLEX_SCREEN_PTR1#6 +char *PLEX_SCREEN_PTR1#7 +char *PLEX_SCREEN_PTR1#8 +char *PLEX_SCREEN_PTR1#9 +__constant char *PLEX_SCREEN_PTR2 = (char *)$500 void __start() -volatile byte idx loadstore +__loadstore volatile char idx __interrupt(rom_sys_c64) void irq() void main() -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 1280 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 1280 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias PLEX_SCREEN_PTR1#0 = PLEX_SCREEN_PTR1#5 PLEX_SCREEN_PTR1#1 Alias PLEX_SCREEN_PTR1#2 = PLEX_SCREEN_PTR1#9 @@ -76,8 +76,8 @@ Alias PLEX_SCREEN_PTR1#3 = PLEX_SCREEN_PTR1#7 PLEX_SCREEN_PTR1#8 PLEX_SCREEN_PTR Successful SSA optimization Pass2AliasElimination Identical Phi Values PLEX_SCREEN_PTR1#3 PLEX_SCREEN_PTR1#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant PLEX_SCREEN_PTR1#0 = (byte*) 1024 -Constant PLEX_SCREEN_PTR1#2 = (byte*) 1024 +Constant PLEX_SCREEN_PTR1#0 = (char *) 1024 +Constant PLEX_SCREEN_PTR1#2 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant PLEX_SCREEN_PTR1#0 Eliminating unused constant PLEX_SCREEN_PTR1#2 @@ -105,7 +105,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -132,10 +132,10 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte* PLEX_SCREEN_PTR1 -byte* PLEX_SCREEN_PTR1#6 4.0 +char *PLEX_SCREEN_PTR1 +char *PLEX_SCREEN_PTR1#6 // 4.0 void __start() -volatile byte idx loadstore 4.666666666666666 +__loadstore volatile char idx // 4.666666666666666 __interrupt(rom_sys_c64) void irq() void main() @@ -204,7 +204,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -266,12 +266,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant void()** const IRQ = (void()**) 788 -byte* PLEX_SCREEN_PTR1 -byte* PLEX_SCREEN_PTR1#6 PLEX_SCREEN_PTR1 zp[2]:2 4.0 -constant byte* PLEX_SCREEN_PTR2 = (byte*) 1280 +__constant void (** const IRQ)() = (void (**)()) 788 +char *PLEX_SCREEN_PTR1 +char *PLEX_SCREEN_PTR1#6 // PLEX_SCREEN_PTR1 zp[2]:2 4.0 +__constant char *PLEX_SCREEN_PTR2 = (char *) 1280 void __start() -volatile byte idx loadstore zp[1]:4 4.666666666666666 +__loadstore volatile char idx // zp[1]:4 4.666666666666666 __interrupt(rom_sys_c64) void irq() void main() @@ -313,7 +313,7 @@ __start: { sta.z idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/const-volatile-problem.sym b/src/test/ref/const-volatile-problem.sym index e15cbeac8..0eb7ee1db 100644 --- a/src/test/ref/const-volatile-problem.sym +++ b/src/test/ref/const-volatile-problem.sym @@ -1,9 +1,9 @@ -constant void()** const IRQ = (void()**) 788 -byte* PLEX_SCREEN_PTR1 -byte* PLEX_SCREEN_PTR1#6 PLEX_SCREEN_PTR1 zp[2]:2 4.0 -constant byte* PLEX_SCREEN_PTR2 = (byte*) 1280 +__constant void (** const IRQ)() = (void (**)()) 788 +char *PLEX_SCREEN_PTR1 +char *PLEX_SCREEN_PTR1#6 // PLEX_SCREEN_PTR1 zp[2]:2 4.0 +__constant char *PLEX_SCREEN_PTR2 = (char *) 1280 void __start() -volatile byte idx loadstore zp[1]:4 4.666666666666666 +__loadstore volatile char idx // zp[1]:4 4.666666666666666 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/const-word-pointer.log b/src/test/ref/const-word-pointer.log index 40500b9b8..a3a32b45b 100644 --- a/src/test/ref/const-word-pointer.log +++ b/src/test/ref/const-word-pointer.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,13 +32,13 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -constant byte* main::screen = (byte*)$400 -volatile word main::w loadstore -constant word* main::wp = &main::w +char main::$0 +char main::$1 +char main::$2 +char main::$3 +__constant char *main::screen = (char *)$400 +__loadstore volatile unsigned int main::w +__constant unsigned int *main::wp = &main::w Adding number conversion cast (unumber) 0 in main::screen[0] = main::$0 Adding number conversion cast (unumber) 1 in main::screen[1] = main::$1 @@ -48,18 +48,18 @@ Adding number conversion cast (unumber) 3 in main::screen[3] = main::$3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::wp = (unumber)$210c Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast $210c Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $210c -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $210c +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::screen in [2] main::screen[0] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -99,11 +99,11 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 -volatile word main::w loadstore 20.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +__loadstore volatile unsigned int main::w // 20.0 Initial phi equivalence classes Added variable main::w to live range equivalence class [ main::w ] @@ -201,13 +201,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -constant byte* main::screen = (byte*) 1024 -volatile word main::w loadstore zp[2]:2 20.0 -constant word* main::wp = &main::w +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +__constant char *main::screen = (char *) 1024 +__loadstore volatile unsigned int main::w // zp[2]:2 20.0 +__constant unsigned int *main::wp = &main::w zp[2]:2 [ main::w ] reg byte a [ main::$0 ] diff --git a/src/test/ref/const-word-pointer.sym b/src/test/ref/const-word-pointer.sym index dcd1de44f..c28dab51f 100644 --- a/src/test/ref/const-word-pointer.sym +++ b/src/test/ref/const-word-pointer.sym @@ -1,11 +1,11 @@ void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -constant byte* main::screen = (byte*) 1024 -volatile word main::w loadstore zp[2]:2 20.0 -constant word* main::wp = &main::w +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +__constant char *main::screen = (char *) 1024 +__loadstore volatile unsigned int main::w // zp[2]:2 20.0 +__constant unsigned int *main::wp = &main::w zp[2]:2 [ main::w ] reg byte a [ main::$0 ] diff --git a/src/test/ref/constabsmin.log b/src/test/ref/constabsmin.log index c8aa08589..b0cbac625 100644 --- a/src/test/ref/constabsmin.log +++ b/src/test/ref/constabsmin.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,7 +20,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() @@ -28,10 +28,10 @@ Adding number conversion cast (unumber) 1 in *SCREEN = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *SCREEN = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -103,7 +103,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/constabsmin.sym b/src/test/ref/constabsmin.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/constabsmin.sym +++ b/src/test/ref/constabsmin.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/constant-string-concat-0.log b/src/test/ref/constant-string-concat-0.log index a6d1e78f8..b4f69c9eb 100644 --- a/src/test/ref/constant-string-concat-0.log +++ b/src/test/ref/constant-string-concat-0.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,21 +32,21 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* main::msg[] = "camelot" +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char main::msg[] = "camelot" Adding number conversion cast (unumber) 0 in main::$0 = main::msg[main::i#2] != 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -91,9 +91,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -176,11 +176,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* main::msg[] = "camelot" +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char main::msg[] = "camelot" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constant-string-concat-0.sym b/src/test/ref/constant-string-concat-0.sym index 878def4a2..5897276c4 100644 --- a/src/test/ref/constant-string-concat-0.sym +++ b/src/test/ref/constant-string-concat-0.sym @@ -1,8 +1,8 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* main::msg[] = "camelot" +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char main::msg[] = "camelot" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constant-string-concat.log b/src/test/ref/constant-string-concat.log index be4847970..01fbcdaeb 100644 --- a/src/test/ref/constant-string-concat.log +++ b/src/test/ref/constant-string-concat.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,15 +29,15 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* main::s[] = "camelot" +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char main::s[] = "camelot" -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -54,7 +54,7 @@ Adding number conversion cast (unumber) 8 in [3] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -88,9 +88,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -172,11 +172,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* main::s[] = "camelot" +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char main::s[] = "camelot" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constant-string-concat.sym b/src/test/ref/constant-string-concat.sym index 9c519efe7..fad69f38f 100644 --- a/src/test/ref/constant-string-concat.sym +++ b/src/test/ref/constant-string-concat.sym @@ -1,8 +1,8 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* main::s[] = "camelot" +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char main::s[] = "camelot" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constantmin.log b/src/test/ref/constantmin.log index 7a66a3b07..c8987868d 100644 --- a/src/test/ref/constantmin.log +++ b/src/test/ref/constantmin.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement __start::__init1_$1 CONTROL FLOW GRAPH SSA @@ -30,7 +30,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 BG_COLOR#4 = phi( __start::__init1/BG_COLOR#0 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 BG_COLOR#5 = phi( __start::@1/BG_COLOR#4 ) @@ -42,25 +42,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -byte* BG_COLOR -byte* BG_COLOR#0 -byte* BG_COLOR#1 -byte* BG_COLOR#2 -byte* BG_COLOR#3 -byte* BG_COLOR#4 -byte* BG_COLOR#5 -constant byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant const byte STAR = $51 -constant byte* VIC = (byte*)$d000 +char *BG_COLOR +char *BG_COLOR#0 +char *BG_COLOR#1 +char *BG_COLOR#2 +char *BG_COLOR#3 +char *BG_COLOR#4 +char *BG_COLOR#5 +__constant char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant const char STAR = $51 +__constant char *VIC = (char *)$d000 void __start() -byte*~ __start::__init1_$0 +char *__start::__init1_$0 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) STAR+1 in SCREEN[main::i#2] = STAR+1 Adding number conversion cast (unumber) 1 in SCREEN[main::i#2] = ((unumber)) STAR+1 @@ -69,14 +69,14 @@ Adding number conversion cast (unumber) 1 in BG_COLOR#0 = __start::__init1_$0 + Successful SSA optimization PassNAddNumberTypeConversions Inlining cast SCREEN[main::i#2] = (unumber)STAR+(unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53248 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53248 Simplifying constant integer cast STAR+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias BG_COLOR#0 = BG_COLOR#4 BG_COLOR#5 BG_COLOR#3 BG_COLOR#1 Successful SSA optimization Pass2AliasElimination @@ -84,10 +84,10 @@ Identical Phi Values BG_COLOR#2 BG_COLOR#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$0 [8] if(main::i#1!=rangelast($28,$4f)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [10] __start::__init1_$0 = VIC + (byte)$10*2 +Constant right-side identified [10] __start::__init1_$0 = VIC + (char)$10*2 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = $28 -Constant __start::__init1_$0 = VIC+(byte)$10*2 +Constant __start::__init1_$0 = VIC+(char)$10*2 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [6] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [8] if(main::i#1!=rangelast($28,$4f)) goto main::@1 to $50 @@ -99,13 +99,13 @@ Adding number conversion cast (unumber) $50 in [5] if(main::i#1!=$50) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $50 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $50 +Finalized unsigned number type (char) $50 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 -Constant inlined __start::__init1_$0 = VIC+(byte)$10*2 +Constant inlined __start::__init1_$0 = VIC+(char)$10*2 Constant inlined main::i#0 = $28 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(VIC+(byte)$10*2+1) +Consolidated array index constant in *(VIC+(char)$10*2+1) Successful SSA optimization Pass2ConstantAdditionElimination Removing unused procedure __start Removing unused procedure block __start @@ -114,8 +114,8 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $10*2 Successful SSA optimization PassNCastSimplification @@ -146,11 +146,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte* BG_COLOR +char *BG_COLOR void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -240,15 +240,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -byte* BG_COLOR -constant byte RED = 2 -constant byte* const SCREEN = (byte*) 1024 -constant const byte STAR = $51 -constant byte* VIC = (byte*) 53248 +char *BG_COLOR +__constant char RED = 2 +__constant char * const SCREEN = (char *) 1024 +__constant const char STAR = $51 +__constant char *VIC = (char *) 53248 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constantmin.sym b/src/test/ref/constantmin.sym index 3fd253bbd..189862df7 100644 --- a/src/test/ref/constantmin.sym +++ b/src/test/ref/constantmin.sym @@ -1,11 +1,11 @@ -byte* BG_COLOR -constant byte RED = 2 -constant byte* const SCREEN = (byte*) 1024 -constant const byte STAR = $51 -constant byte* VIC = (byte*) 53248 +char *BG_COLOR +__constant char RED = 2 +__constant char * const SCREEN = (char *) 1024 +__constant const char STAR = $51 +__constant char *VIC = (char *) 53248 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/constants.asm b/src/test/ref/constants.asm index 0d607b0ed..908486066 100644 --- a/src/test/ref/constants.asm +++ b/src/test/ref/constants.asm @@ -156,6 +156,7 @@ test_sbytes: { } .segment Code // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -188,7 +189,7 @@ memset: { !: jmp __b1 } -// assert_byte(byte* zp(2) msg, byte register(X) b, byte zp(4) c) +// void assert_byte(__zp(2) char *msg, __register(X) char b, __zp(4) char c) assert_byte: { .label msg = 2 .label c = 4 @@ -226,7 +227,7 @@ assert_byte: { jsr print_str jmp __b2 } -// assert_sbyte(byte* zp(2) msg, signed byte register(X) b, signed byte zp(4) c) +// void assert_sbyte(__zp(2) char *msg, __register(X) signed char b, __zp(4) signed char c) assert_sbyte: { .label msg = 2 .label c = 4 @@ -270,7 +271,7 @@ assert_sbyte: { jmp __b2 } // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 __b1: @@ -317,7 +318,7 @@ print_ln: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/constants.cfg b/src/test/ref/constants.cfg index f06648603..64bffe894 100644 --- a/src/test/ref/constants.cfg +++ b/src/test/ref/constants.cfg @@ -2,15 +2,15 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] *BG_COLOR = GREEN - [3] call test_bytes + [3] call test_bytes to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call test_sbytes + [5] call test_sbytes to:main::@return main::@return: scope:[main] from main::@2 [6] return @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 void print_cls() print_cls: scope:[print_cls] from main [7] phi() - [8] call memset + [8] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [9] return @@ -28,15 +28,15 @@ print_cls::@return: scope:[print_cls] from print_cls void test_bytes() test_bytes: scope:[test_bytes] from main::@1 [10] phi() - [11] call assert_byte + [11] call assert_byte to:test_bytes::@1 test_bytes::@1: scope:[test_bytes] from test_bytes [12] print_char_cursor#98 = print_line_cursor#0 - [13] call assert_byte + [13] call assert_byte to:test_bytes::@2 test_bytes::@2: scope:[test_bytes] from test_bytes::@1 [14] print_char_cursor#99 = print_line_cursor#0 - [15] call assert_byte + [15] call assert_byte to:test_bytes::@return test_bytes::@return: scope:[test_bytes] from test_bytes::@2 [16] return @@ -45,34 +45,34 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@2 void test_sbytes() test_sbytes: scope:[test_sbytes] from main::@2 [17] phi() - [18] call assert_sbyte + [18] call assert_sbyte to:test_sbytes::@1 test_sbytes::@1: scope:[test_sbytes] from test_sbytes [19] phi() - [20] call assert_sbyte + [20] call assert_sbyte to:test_sbytes::@2 test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1 [21] phi() - [22] call assert_sbyte + [22] call assert_sbyte to:test_sbytes::@3 test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2 [23] phi() - [24] call assert_sbyte + [24] call assert_sbyte to:test_sbytes::@4 test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 [25] phi() - [26] call assert_sbyte + [26] call assert_sbyte to:test_sbytes::@return test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@4 [27] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [28] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [29] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [29] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [30] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -83,7 +83,7 @@ memset::@2: scope:[memset] from memset::@1 [33] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) +void assert_byte(char *msg , char b , char c) assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 [34] print_line_cursor#52 = phi( test_bytes/print_screen#0, test_bytes::@1/print_line_cursor#0, test_bytes::@2/print_line_cursor#0 ) [34] assert_byte::c#3 = phi( test_bytes/0, test_bytes::@1/2, test_bytes::@2/$fe ) @@ -91,64 +91,64 @@ assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 [34] print_char_cursor#77 = phi( test_bytes/print_screen#0, test_bytes::@1/print_char_cursor#98, test_bytes::@2/print_char_cursor#99 ) [34] assert_byte::msg#3 = phi( test_bytes/msg, test_bytes::@1/msg1, test_bytes::@2/test_bytes::msg2 ) [35] print_str::str#1 = assert_byte::msg#3 - [36] call print_str + [36] call print_str to:assert_byte::@4 assert_byte::@4: scope:[assert_byte] from assert_byte [37] phi() - [38] call print_str + [38] call print_str to:assert_byte::@5 assert_byte::@5: scope:[assert_byte] from assert_byte::@4 [39] if(assert_byte::b#3!=assert_byte::c#3) goto assert_byte::@1 to:assert_byte::@3 assert_byte::@3: scope:[assert_byte] from assert_byte::@5 [40] phi() - [41] call print_str + [41] call print_str to:assert_byte::@2 assert_byte::@2: scope:[assert_byte] from assert_byte::@1 assert_byte::@3 [42] phi() - [43] call print_ln + [43] call print_ln to:assert_byte::@return assert_byte::@return: scope:[assert_byte] from assert_byte::@2 [44] return to:@return assert_byte::@1: scope:[assert_byte] from assert_byte::@5 [45] *BG_COLOR = RED - [46] call print_str + [46] call print_str to:assert_byte::@2 -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) +void assert_sbyte(char *msg , signed char b , signed char c) assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 [47] assert_sbyte::c#5 = phi( test_sbytes/0, test_sbytes::@1/2, test_sbytes::@2/-2, test_sbytes::@3/2, test_sbytes::@4/2 ) [47] assert_sbyte::b#5 = phi( test_sbytes/test_sbytes::bb, test_sbytes::@1/test_sbytes::bc#0, test_sbytes::@2/test_sbytes::bd#0, test_sbytes::@3/test_sbytes::be#0, test_sbytes::@4/test_sbytes::bf ) [47] assert_sbyte::msg#5 = phi( test_sbytes/msg, test_sbytes::@1/msg1, test_sbytes::@2/test_sbytes::msg2, test_sbytes::@3/test_sbytes::msg3, test_sbytes::@4/test_sbytes::msg4 ) [48] print_str::str#5 = assert_sbyte::msg#5 [49] print_char_cursor#92 = print_line_cursor#0 - [50] call print_str + [50] call print_str to:assert_sbyte::@4 assert_sbyte::@4: scope:[assert_sbyte] from assert_sbyte [51] phi() - [52] call print_str + [52] call print_str to:assert_sbyte::@5 assert_sbyte::@5: scope:[assert_sbyte] from assert_sbyte::@4 [53] if(assert_sbyte::b#5!=assert_sbyte::c#5) goto assert_sbyte::@1 to:assert_sbyte::@3 assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@5 [54] phi() - [55] call print_str + [55] call print_str to:assert_sbyte::@2 assert_sbyte::@2: scope:[assert_sbyte] from assert_sbyte::@1 assert_sbyte::@3 [56] phi() - [57] call print_ln + [57] call print_ln to:assert_sbyte::@return assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@2 [58] return to:@return assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@5 [59] *BG_COLOR = RED - [60] call print_str + [60] call print_str to:assert_sbyte::@2 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@4 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@4 [61] print_char_cursor#87 = phi( assert_byte/print_char_cursor#77, assert_byte::@1/print_char_cursor#1, assert_byte::@3/print_char_cursor#1, assert_byte::@4/print_char_cursor#1, assert_sbyte/print_char_cursor#92, assert_sbyte::@1/print_char_cursor#1, assert_sbyte::@3/print_char_cursor#1, assert_sbyte::@4/print_char_cursor#1 ) [61] print_str::str#12 = phi( assert_byte/print_str::str#1, assert_byte::@1/str1, assert_byte::@3/str2, assert_byte::@4/str, assert_sbyte/print_str::str#5, assert_sbyte::@1/str1, assert_sbyte::@3/str2, assert_sbyte::@4/str ) @@ -163,7 +163,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [65] print_char::ch#0 = *print_str::str#10 - [66] call print_char + [66] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [67] print_str::str#0 = ++ print_str::str#10 @@ -182,7 +182,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [72] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [73] *print_char_cursor#1 = print_char::ch#0 [74] print_char_cursor#4 = ++ print_char_cursor#1 diff --git a/src/test/ref/constants.log b/src/test/ref/constants.log index ba38dcd0b..cb84cfc09 100644 --- a/src/test/ref/constants.log +++ b/src/test/ref/constants.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement test_bytes::$1 Eliminating unused variable with no statement test_sbytes::$1 @@ -7,7 +7,7 @@ Eliminating unused variable with no statement test_sbytes::$5 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@4 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@4 print_char_cursor#87 = phi( assert_byte/print_char_cursor#77, assert_byte::@1/print_char_cursor#78, assert_byte::@3/print_char_cursor#79, assert_byte::@4/print_char_cursor#16, assert_sbyte/print_char_cursor#82, assert_sbyte::@1/print_char_cursor#83, assert_sbyte::@3/print_char_cursor#84, assert_sbyte::@4/print_char_cursor#28 ) print_str::str#12 = phi( assert_byte/print_str::str#1, assert_byte::@1/print_str::str#3, assert_byte::@3/print_str::str#4, assert_byte::@4/print_str::str#2, assert_sbyte/print_str::str#5, assert_sbyte::@1/print_str::str#7, assert_sbyte::@3/print_str::str#8, assert_sbyte::@4/print_str::str#6 ) @@ -22,7 +22,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#72 = phi( print_str::@1/print_char_cursor#73 ) print_str::str#10 = phi( print_str::@1/print_str::str#9 ) print_char::ch#0 = *print_str::str#10 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#11 = phi( print_str::@2/print_str::str#10 ) @@ -61,7 +61,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_char_cursor#41 = phi( print_str::@2/print_char_cursor#72 ) print_char::ch#1 = phi( print_str::@2/print_char::ch#0 ) @@ -77,10 +77,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -96,7 +96,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -113,9 +113,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -144,7 +144,7 @@ main: scope:[main] from __start::@1 print_char_cursor#75 = phi( __start::@1/print_char_cursor#86 ) print_line_cursor#50 = phi( __start::@1/print_line_cursor#55 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@1 main::@1: scope:[main] from main print_char_cursor#44 = phi( main/print_char_cursor#7 ) @@ -152,14 +152,14 @@ main::@1: scope:[main] from main print_line_cursor#4 = print_line_cursor#29 print_char_cursor#8 = print_char_cursor#44 *BG_COLOR = GREEN - call test_bytes + call test_bytes to:main::@2 main::@2: scope:[main] from main::@1 print_line_cursor#30 = phi( main::@1/print_line_cursor#11 ) print_char_cursor#45 = phi( main::@1/print_char_cursor#15 ) print_char_cursor#9 = print_char_cursor#45 print_line_cursor#5 = print_line_cursor#30 - call test_sbytes + call test_sbytes to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#31 = phi( main::@2/print_line_cursor#19 ) @@ -182,7 +182,7 @@ test_bytes: scope:[test_bytes] from main::@1 assert_byte::msg#0 = test_bytes::msg assert_byte::b#0 = test_bytes::bb assert_byte::c#0 = 0 - call assert_byte + call assert_byte to:test_bytes::@1 test_bytes::@1: scope:[test_bytes] from test_bytes print_line_cursor#33 = phi( test_bytes/print_line_cursor#13 ) @@ -193,7 +193,7 @@ test_bytes::@1: scope:[test_bytes] from test_bytes assert_byte::msg#1 = test_bytes::msg1 assert_byte::b#1 = test_bytes::bc#0 assert_byte::c#1 = 2 - call assert_byte + call assert_byte to:test_bytes::@2 test_bytes::@2: scope:[test_bytes] from test_bytes::@1 test_bytes::bc#1 = phi( test_bytes::@1/test_bytes::bc#0 ) @@ -201,13 +201,13 @@ test_bytes::@2: scope:[test_bytes] from test_bytes::@1 print_char_cursor#49 = phi( test_bytes::@1/print_char_cursor#21 ) print_char_cursor#13 = print_char_cursor#49 print_line_cursor#9 = print_line_cursor#34 - test_bytes::$5 = (signed byte)test_bytes::bc#1 + test_bytes::$5 = (signed char)test_bytes::bc#1 test_bytes::$3 = test_bytes::$5 - 4 - test_bytes::bd#0 = (byte)test_bytes::$3 + test_bytes::bd#0 = (char)test_bytes::$3 assert_byte::msg#2 = test_bytes::msg2 assert_byte::b#2 = test_bytes::bd#0 assert_byte::c#2 = $fe - call assert_byte + call assert_byte to:test_bytes::@3 test_bytes::@3: scope:[test_bytes] from test_bytes::@2 print_line_cursor#35 = phi( test_bytes::@2/print_line_cursor#13 ) @@ -223,7 +223,7 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@3 return to:@return -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) +void assert_byte(char *msg , char b , char c) assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 print_line_cursor#68 = phi( test_bytes/print_line_cursor#51, test_bytes::@1/print_line_cursor#8, test_bytes::@2/print_line_cursor#9 ) assert_byte::c#5 = phi( test_bytes/assert_byte::c#0, test_bytes::@1/assert_byte::c#1, test_bytes::@2/assert_byte::c#2 ) @@ -231,7 +231,7 @@ assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 print_char_cursor#77 = phi( test_bytes/print_char_cursor#76, test_bytes::@1/print_char_cursor#12, test_bytes::@2/print_char_cursor#13 ) assert_byte::msg#3 = phi( test_bytes/assert_byte::msg#0, test_bytes::@1/assert_byte::msg#1, test_bytes::@2/assert_byte::msg#2 ) print_str::str#1 = assert_byte::msg#3 - call print_str + call print_str to:assert_byte::@4 assert_byte::@4: scope:[assert_byte] from assert_byte print_line_cursor#66 = phi( assert_byte/print_line_cursor#68 ) @@ -240,7 +240,7 @@ assert_byte::@4: scope:[assert_byte] from assert_byte print_char_cursor#52 = phi( assert_byte/print_char_cursor#1 ) print_char_cursor#16 = print_char_cursor#52 print_str::str#2 = assert_byte::str - call print_str + call print_str to:assert_byte::@5 assert_byte::@5: scope:[assert_byte] from assert_byte::@4 print_line_cursor#64 = phi( assert_byte::@4/print_line_cursor#66 ) @@ -256,7 +256,7 @@ assert_byte::@1: scope:[assert_byte] from assert_byte::@5 print_char_cursor#78 = phi( assert_byte::@5/print_char_cursor#17 ) *BG_COLOR = RED print_str::str#3 = assert_byte::str1 - call print_str + call print_str to:assert_byte::@6 assert_byte::@6: scope:[assert_byte] from assert_byte::@1 print_line_cursor#56 = phi( assert_byte::@1/print_line_cursor#60 ) @@ -267,7 +267,7 @@ assert_byte::@3: scope:[assert_byte] from assert_byte::@5 print_line_cursor#61 = phi( assert_byte::@5/print_line_cursor#64 ) print_char_cursor#79 = phi( assert_byte::@5/print_char_cursor#17 ) print_str::str#4 = assert_byte::str2 - call print_str + call print_str to:assert_byte::@7 assert_byte::@7: scope:[assert_byte] from assert_byte::@3 print_line_cursor#57 = phi( assert_byte::@3/print_line_cursor#61 ) @@ -277,7 +277,7 @@ assert_byte::@7: scope:[assert_byte] from assert_byte::@3 assert_byte::@2: scope:[assert_byte] from assert_byte::@6 assert_byte::@7 print_char_cursor#80 = phi( assert_byte::@6/print_char_cursor#18, assert_byte::@7/print_char_cursor#19 ) print_line_cursor#52 = phi( assert_byte::@6/print_line_cursor#56, assert_byte::@7/print_line_cursor#57 ) - call print_ln + call print_ln to:assert_byte::@8 assert_byte::@8: scope:[assert_byte] from assert_byte::@2 print_char_cursor#56 = phi( assert_byte::@2/print_char_cursor#3 ) @@ -300,7 +300,7 @@ test_sbytes: scope:[test_sbytes] from main::@2 assert_sbyte::msg#0 = test_sbytes::msg assert_sbyte::b#0 = test_sbytes::bb assert_sbyte::c#0 = 0 - call assert_sbyte + call assert_sbyte to:test_sbytes::@1 test_sbytes::@1: scope:[test_sbytes] from test_sbytes print_line_cursor#39 = phi( test_sbytes/print_line_cursor#21 ) @@ -311,7 +311,7 @@ test_sbytes::@1: scope:[test_sbytes] from test_sbytes assert_sbyte::msg#1 = test_sbytes::msg1 assert_sbyte::b#1 = test_sbytes::bc#0 assert_sbyte::c#1 = 2 - call assert_sbyte + call assert_sbyte to:test_sbytes::@2 test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1 test_sbytes::bc#1 = phi( test_sbytes::@1/test_sbytes::bc#0 ) @@ -323,7 +323,7 @@ test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1 assert_sbyte::msg#2 = test_sbytes::msg2 assert_sbyte::b#2 = test_sbytes::bd#0 assert_sbyte::c#2 = -2 - call assert_sbyte + call assert_sbyte to:test_sbytes::@3 test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2 test_sbytes::bd#1 = phi( test_sbytes::@2/test_sbytes::bd#0 ) @@ -335,7 +335,7 @@ test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2 assert_sbyte::msg#3 = test_sbytes::msg3 assert_sbyte::b#3 = test_sbytes::be#0 assert_sbyte::c#3 = 2 - call assert_sbyte + call assert_sbyte to:test_sbytes::@4 test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 print_line_cursor#42 = phi( test_sbytes::@3/print_line_cursor#21 ) @@ -345,7 +345,7 @@ test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 assert_sbyte::msg#4 = test_sbytes::msg4 assert_sbyte::b#4 = test_sbytes::bf assert_sbyte::c#4 = 2 - call assert_sbyte + call assert_sbyte to:test_sbytes::@5 test_sbytes::@5: scope:[test_sbytes] from test_sbytes::@4 print_line_cursor#43 = phi( test_sbytes::@4/print_line_cursor#21 ) @@ -361,7 +361,7 @@ test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@5 return to:@return -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) +void assert_sbyte(char *msg , signed char b , signed char c) assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 print_line_cursor#69 = phi( test_sbytes/print_line_cursor#53, test_sbytes::@1/print_line_cursor#14, test_sbytes::@2/print_line_cursor#15, test_sbytes::@3/print_line_cursor#16, test_sbytes::@4/print_line_cursor#17 ) assert_sbyte::c#7 = phi( test_sbytes/assert_sbyte::c#0, test_sbytes::@1/assert_sbyte::c#1, test_sbytes::@2/assert_sbyte::c#2, test_sbytes::@3/assert_sbyte::c#3, test_sbytes::@4/assert_sbyte::c#4 ) @@ -369,7 +369,7 @@ assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes print_char_cursor#82 = phi( test_sbytes/print_char_cursor#81, test_sbytes::@1/print_char_cursor#22, test_sbytes::@2/print_char_cursor#23, test_sbytes::@3/print_char_cursor#24, test_sbytes::@4/print_char_cursor#25 ) assert_sbyte::msg#5 = phi( test_sbytes/assert_sbyte::msg#0, test_sbytes::@1/assert_sbyte::msg#1, test_sbytes::@2/assert_sbyte::msg#2, test_sbytes::@3/assert_sbyte::msg#3, test_sbytes::@4/assert_sbyte::msg#4 ) print_str::str#5 = assert_sbyte::msg#5 - call print_str + call print_str to:assert_sbyte::@4 assert_sbyte::@4: scope:[assert_sbyte] from assert_sbyte print_line_cursor#67 = phi( assert_sbyte/print_line_cursor#69 ) @@ -378,7 +378,7 @@ assert_sbyte::@4: scope:[assert_sbyte] from assert_sbyte print_char_cursor#64 = phi( assert_sbyte/print_char_cursor#1 ) print_char_cursor#28 = print_char_cursor#64 print_str::str#6 = assert_sbyte::str - call print_str + call print_str to:assert_sbyte::@5 assert_sbyte::@5: scope:[assert_sbyte] from assert_sbyte::@4 print_line_cursor#65 = phi( assert_sbyte::@4/print_line_cursor#67 ) @@ -394,7 +394,7 @@ assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@5 print_char_cursor#83 = phi( assert_sbyte::@5/print_char_cursor#29 ) *BG_COLOR = RED print_str::str#7 = assert_sbyte::str1 - call print_str + call print_str to:assert_sbyte::@6 assert_sbyte::@6: scope:[assert_sbyte] from assert_sbyte::@1 print_line_cursor#58 = phi( assert_sbyte::@1/print_line_cursor#62 ) @@ -405,7 +405,7 @@ assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@5 print_line_cursor#63 = phi( assert_sbyte::@5/print_line_cursor#65 ) print_char_cursor#84 = phi( assert_sbyte::@5/print_char_cursor#29 ) print_str::str#8 = assert_sbyte::str2 - call print_str + call print_str to:assert_sbyte::@7 assert_sbyte::@7: scope:[assert_sbyte] from assert_sbyte::@3 print_line_cursor#59 = phi( assert_sbyte::@3/print_line_cursor#63 ) @@ -415,7 +415,7 @@ assert_sbyte::@7: scope:[assert_sbyte] from assert_sbyte::@3 assert_sbyte::@2: scope:[assert_sbyte] from assert_sbyte::@6 assert_sbyte::@7 print_char_cursor#85 = phi( assert_sbyte::@6/print_char_cursor#30, assert_sbyte::@7/print_char_cursor#31 ) print_line_cursor#54 = phi( assert_sbyte::@6/print_line_cursor#58, assert_sbyte::@7/print_line_cursor#59 ) - call print_ln + call print_ln to:assert_sbyte::@8 assert_sbyte::@8: scope:[assert_sbyte] from assert_sbyte::@2 print_char_cursor#68 = phi( assert_sbyte::@2/print_char_cursor#3 ) @@ -435,7 +435,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#22 = print_screen#0 print_char_cursor#34 = print_line_cursor#22 to:__start::@1 @@ -443,7 +443,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#86 = phi( __start::__init1/print_char_cursor#34 ) print_line_cursor#55 = phi( __start::__init1/print_line_cursor#22 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -463,326 +463,326 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte GREEN = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char GREEN = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char RED = 2 void __start() -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) -bool~ assert_byte::$2 -byte assert_byte::b -byte assert_byte::b#0 -byte assert_byte::b#1 -byte assert_byte::b#2 -byte assert_byte::b#3 -byte assert_byte::b#4 -byte assert_byte::b#5 -byte assert_byte::c -byte assert_byte::c#0 -byte assert_byte::c#1 -byte assert_byte::c#2 -byte assert_byte::c#3 -byte assert_byte::c#4 -byte assert_byte::c#5 -byte* assert_byte::msg -byte* assert_byte::msg#0 -byte* assert_byte::msg#1 -byte* assert_byte::msg#2 -byte* assert_byte::msg#3 -constant byte* assert_byte::str[2] = " " -constant byte* assert_byte::str1[6] = "fail!" -constant byte* assert_byte::str2[3] = "ok" -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) -bool~ assert_sbyte::$2 -signed byte assert_sbyte::b -signed byte assert_sbyte::b#0 -signed byte assert_sbyte::b#1 -signed byte assert_sbyte::b#2 -signed byte assert_sbyte::b#3 -signed byte assert_sbyte::b#4 -signed byte assert_sbyte::b#5 -signed byte assert_sbyte::b#6 -signed byte assert_sbyte::b#7 -signed byte assert_sbyte::c -signed byte assert_sbyte::c#0 -signed byte assert_sbyte::c#1 -signed byte assert_sbyte::c#2 -signed byte assert_sbyte::c#3 -signed byte assert_sbyte::c#4 -signed byte assert_sbyte::c#5 -signed byte assert_sbyte::c#6 -signed byte assert_sbyte::c#7 -byte* assert_sbyte::msg -byte* assert_sbyte::msg#0 -byte* assert_sbyte::msg#1 -byte* assert_sbyte::msg#2 -byte* assert_sbyte::msg#3 -byte* assert_sbyte::msg#4 -byte* assert_sbyte::msg#5 -constant byte* assert_sbyte::str[2] = " " -constant byte* assert_sbyte::str1[6] = "fail!" -constant byte* assert_sbyte::str2[3] = "ok" +void assert_byte(char *msg , char b , char c) +bool assert_byte::$2 +char assert_byte::b +char assert_byte::b#0 +char assert_byte::b#1 +char assert_byte::b#2 +char assert_byte::b#3 +char assert_byte::b#4 +char assert_byte::b#5 +char assert_byte::c +char assert_byte::c#0 +char assert_byte::c#1 +char assert_byte::c#2 +char assert_byte::c#3 +char assert_byte::c#4 +char assert_byte::c#5 +char *assert_byte::msg +char *assert_byte::msg#0 +char *assert_byte::msg#1 +char *assert_byte::msg#2 +char *assert_byte::msg#3 +__constant char assert_byte::str[2] = " " +__constant char assert_byte::str1[6] = "fail!" +__constant char assert_byte::str2[3] = "ok" +void assert_sbyte(char *msg , signed char b , signed char c) +bool assert_sbyte::$2 +signed char assert_sbyte::b +signed char assert_sbyte::b#0 +signed char assert_sbyte::b#1 +signed char assert_sbyte::b#2 +signed char assert_sbyte::b#3 +signed char assert_sbyte::b#4 +signed char assert_sbyte::b#5 +signed char assert_sbyte::b#6 +signed char assert_sbyte::b#7 +signed char assert_sbyte::c +signed char assert_sbyte::c#0 +signed char assert_sbyte::c#1 +signed char assert_sbyte::c#2 +signed char assert_sbyte::c#3 +signed char assert_sbyte::c#4 +signed char assert_sbyte::c#5 +signed char assert_sbyte::c#6 +signed char assert_sbyte::c#7 +char *assert_sbyte::msg +char *assert_sbyte::msg#0 +char *assert_sbyte::msg#1 +char *assert_sbyte::msg#2 +char *assert_sbyte::msg#3 +char *assert_sbyte::msg#4 +char *assert_sbyte::msg#5 +__constant char assert_sbyte::str[2] = " " +__constant char assert_sbyte::str1[6] = "fail!" +__constant char assert_sbyte::str2[3] = "ok" void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#80 -byte* print_char_cursor#81 -byte* print_char_cursor#82 -byte* print_char_cursor#83 -byte* print_char_cursor#84 -byte* print_char_cursor#85 -byte* print_char_cursor#86 -byte* print_char_cursor#87 -byte* print_char_cursor#9 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#80 +char *print_char_cursor#81 +char *print_char_cursor#82 +char *print_char_cursor#83 +char *print_char_cursor#84 +char *print_char_cursor#85 +char *print_char_cursor#86 +char *print_char_cursor#87 +char *print_char_cursor#9 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#40 -byte* print_line_cursor#41 -byte* print_line_cursor#42 -byte* print_line_cursor#43 -byte* print_line_cursor#44 -byte* print_line_cursor#45 -byte* print_line_cursor#46 -byte* print_line_cursor#47 -byte* print_line_cursor#48 -byte* print_line_cursor#49 -byte* print_line_cursor#5 -byte* print_line_cursor#50 -byte* print_line_cursor#51 -byte* print_line_cursor#52 -byte* print_line_cursor#53 -byte* print_line_cursor#54 -byte* print_line_cursor#55 -byte* print_line_cursor#56 -byte* print_line_cursor#57 -byte* print_line_cursor#58 -byte* print_line_cursor#59 -byte* print_line_cursor#6 -byte* print_line_cursor#60 -byte* print_line_cursor#61 -byte* print_line_cursor#62 -byte* print_line_cursor#63 -byte* print_line_cursor#64 -byte* print_line_cursor#65 -byte* print_line_cursor#66 -byte* print_line_cursor#67 -byte* print_line_cursor#68 -byte* print_line_cursor#69 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#40 +char *print_line_cursor#41 +char *print_line_cursor#42 +char *print_line_cursor#43 +char *print_line_cursor#44 +char *print_line_cursor#45 +char *print_line_cursor#46 +char *print_line_cursor#47 +char *print_line_cursor#48 +char *print_line_cursor#49 +char *print_line_cursor#5 +char *print_line_cursor#50 +char *print_line_cursor#51 +char *print_line_cursor#52 +char *print_line_cursor#53 +char *print_line_cursor#54 +char *print_line_cursor#55 +char *print_line_cursor#56 +char *print_line_cursor#57 +char *print_line_cursor#58 +char *print_line_cursor#59 +char *print_line_cursor#6 +char *print_line_cursor#60 +char *print_line_cursor#61 +char *print_line_cursor#62 +char *print_line_cursor#63 +char *print_line_cursor#64 +char *print_line_cursor#65 +char *print_line_cursor#66 +char *print_line_cursor#67 +char *print_line_cursor#68 +char *print_line_cursor#69 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#10 -byte* print_str::str#11 -byte* print_str::str#12 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 -byte* print_str::str#8 -byte* print_str::str#9 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#10 +char *print_str::str#11 +char *print_str::str#12 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 +char *print_str::str#8 +char *print_str::str#9 void test_bytes() -number~ test_bytes::$3 -signed byte~ test_bytes::$5 -constant byte test_bytes::bb = 0 -byte test_bytes::bc -byte test_bytes::bc#0 -byte test_bytes::bc#1 -byte test_bytes::bd -byte test_bytes::bd#0 -constant byte* test_bytes::msg[4] = "0=0" -constant byte* test_bytes::msg1[6] = "0+2=2" -constant byte* test_bytes::msg2[$a] = "0+2-4=254" +number test_bytes::$3 +signed char test_bytes::$5 +__constant char test_bytes::bb = 0 +char test_bytes::bc +char test_bytes::bc#0 +char test_bytes::bc#1 +char test_bytes::bd +char test_bytes::bd#0 +__constant char test_bytes::msg[4] = "0=0" +__constant char test_bytes::msg1[6] = "0+2=2" +__constant char test_bytes::msg2[$a] = "0+2-4=254" void test_sbytes() -constant signed byte test_sbytes::bb = 0 -signed byte test_sbytes::bc -signed byte test_sbytes::bc#0 -signed byte test_sbytes::bc#1 -signed byte test_sbytes::bd -signed byte test_sbytes::bd#0 -signed byte test_sbytes::bd#1 -signed byte test_sbytes::be -signed byte test_sbytes::be#0 -constant signed byte test_sbytes::bf = (signed byte)-$7f-$7f -constant byte* test_sbytes::msg[4] = "0=0" -constant byte* test_sbytes::msg1[6] = "0+2=2" -constant byte* test_sbytes::msg2[9] = "0+2-4=-2" -constant byte* test_sbytes::msg3[$b] = "-(0+2-4)=2" -constant byte* test_sbytes::msg4[$b] = "-127-127=2" +__constant signed char test_sbytes::bb = 0 +signed char test_sbytes::bc +signed char test_sbytes::bc#0 +signed char test_sbytes::bc#1 +signed char test_sbytes::bd +signed char test_sbytes::bd#0 +signed char test_sbytes::bd#1 +signed char test_sbytes::be +signed char test_sbytes::be#0 +__constant signed char test_sbytes::bf = (signed char)-$7f-$7f +__constant char test_sbytes::msg[4] = "0=0" +__constant char test_sbytes::msg1[6] = "0+2=2" +__constant char test_sbytes::msg2[9] = "0+2-4=-2" +__constant char test_sbytes::msg3[$b] = "-(0+2-4)=2" +__constant char test_sbytes::msg4[$b] = "-127-127=2" Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#9 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#25 + $28 @@ -803,7 +803,7 @@ Adding number conversion cast (snumber) 2 in assert_sbyte::c#3 = 2 Adding number conversion cast (snumber) 2 in assert_sbyte::c#4 = 2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast assert_byte::c#0 = (unumber)0 Inlining cast assert_byte::c#1 = (unumber)2 Inlining cast assert_byte::c#2 = (unumber)$fe @@ -813,7 +813,7 @@ Inlining cast assert_sbyte::c#2 = (snumber)-2 Inlining cast assert_sbyte::c#3 = (snumber)2 Inlining cast assert_sbyte::c#4 = (snumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $3e8 @@ -830,26 +830,26 @@ Simplifying constant integer cast 4 Simplifying constant integer cast -2 Simplifying constant integer cast 2 Simplifying constant integer cast 2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized signed number type (signed byte) 4 -Finalized unsigned number type (byte) $fe -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) 4 -Finalized signed number type (signed byte) -2 -Finalized signed number type (signed byte) 2 -Finalized signed number type (signed byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized signed number type (signed char) 4 +Finalized unsigned number type (char) $fe +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) 4 +Finalized signed number type (signed char) -2 +Finalized signed number type (signed char) 2 +Finalized signed number type (signed char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed byte in test_bytes::$3 = test_bytes::$5 - 4 +Inferred type updated to signed char in test_bytes::$3 = test_bytes::$5 - 4 Inversing boolean not [46] memset::$1 = memset::num#1 <= 0 from [45] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#10 = print_str::str#9 print_str::str#11 @@ -1018,16 +1018,16 @@ Constant assert_sbyte::c#4 = 2 Constant print_str::str#6 = assert_sbyte::str Constant print_str::str#7 = assert_sbyte::str1 Constant print_str::str#8 = assert_sbyte::str2 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Constant assert_byte::b#1 = test_bytes::bc#0 -Constant test_bytes::$5 = (signed byte)test_bytes::bc#0 +Constant test_bytes::$5 = (signed char)test_bytes::bc#0 Constant assert_sbyte::b#1 = test_sbytes::bc#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [28] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -1057,7 +1057,7 @@ Constant memset::end#0 = memset::$4+memset::num#0 Constant test_bytes::$3 = test_bytes::$5-4 Constant test_sbytes::bd#0 = test_sbytes::bc#0-4 Successful SSA optimization Pass2ConstantIdentification -Constant test_bytes::bd#0 = (byte)test_bytes::$3 +Constant test_bytes::bd#0 = (char)test_bytes::$3 Constant assert_sbyte::b#2 = test_sbytes::bd#0 Successful SSA optimization Pass2ConstantIdentification Constant assert_byte::b#2 = test_bytes::bd#0 @@ -1113,15 +1113,15 @@ Constant inlined assert_sbyte::str2 = str2 Constant inlined assert_byte::c#0 = 0 Constant inlined assert_byte::b#2 = test_bytes::bd#0 Constant inlined assert_byte::c#1 = 2 -Constant inlined test_bytes::$3 = (signed byte)test_bytes::bc#0-4 +Constant inlined test_bytes::$3 = (signed char)test_bytes::bc#0-4 Constant inlined assert_byte::c#2 = $fe Constant inlined assert_sbyte::c#4 = 2 Constant inlined assert_sbyte::b#4 = test_sbytes::bf Constant inlined assert_sbyte::c#3 = 2 Constant inlined assert_sbyte::b#3 = test_sbytes::be#0 -Constant inlined test_bytes::$5 = (signed byte)test_bytes::bc#0 +Constant inlined test_bytes::$5 = (signed char)test_bytes::bc#0 Constant inlined assert_sbyte::c#2 = -2 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined assert_byte::str2 = str2 Constant inlined assert_byte::msg#0 = msg Constant inlined test_sbytes::msg1 = msg1 @@ -1139,17 +1139,17 @@ Constant inlined print_str::str#4 = str2 Constant inlined assert_sbyte::msg#4 = test_sbytes::msg4 Constant inlined print_str::str#3 = str1 Constant inlined print_str::str#2 = str -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#8 = str2 Constant inlined print_str::str#7 = str1 Constant inlined print_str::str#6 = str Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized signed number type (signed byte) -$7f -Finalized unsigned number type (byte) $7f +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized signed number type (signed char) -$7f +Finalized unsigned number type (char) $7f Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main @@ -1247,15 +1247,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] *BG_COLOR = GREEN - [3] call test_bytes + [3] call test_bytes to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call test_sbytes + [5] call test_sbytes to:main::@return main::@return: scope:[main] from main::@2 [6] return @@ -1264,7 +1264,7 @@ main::@return: scope:[main] from main::@2 void print_cls() print_cls: scope:[print_cls] from main [7] phi() - [8] call memset + [8] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [9] return @@ -1273,15 +1273,15 @@ print_cls::@return: scope:[print_cls] from print_cls void test_bytes() test_bytes: scope:[test_bytes] from main::@1 [10] phi() - [11] call assert_byte + [11] call assert_byte to:test_bytes::@1 test_bytes::@1: scope:[test_bytes] from test_bytes [12] print_char_cursor#98 = print_line_cursor#0 - [13] call assert_byte + [13] call assert_byte to:test_bytes::@2 test_bytes::@2: scope:[test_bytes] from test_bytes::@1 [14] print_char_cursor#99 = print_line_cursor#0 - [15] call assert_byte + [15] call assert_byte to:test_bytes::@return test_bytes::@return: scope:[test_bytes] from test_bytes::@2 [16] return @@ -1290,34 +1290,34 @@ test_bytes::@return: scope:[test_bytes] from test_bytes::@2 void test_sbytes() test_sbytes: scope:[test_sbytes] from main::@2 [17] phi() - [18] call assert_sbyte + [18] call assert_sbyte to:test_sbytes::@1 test_sbytes::@1: scope:[test_sbytes] from test_sbytes [19] phi() - [20] call assert_sbyte + [20] call assert_sbyte to:test_sbytes::@2 test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1 [21] phi() - [22] call assert_sbyte + [22] call assert_sbyte to:test_sbytes::@3 test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2 [23] phi() - [24] call assert_sbyte + [24] call assert_sbyte to:test_sbytes::@4 test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3 [25] phi() - [26] call assert_sbyte + [26] call assert_sbyte to:test_sbytes::@return test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@4 [27] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [28] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [29] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [29] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [30] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1328,7 +1328,7 @@ memset::@2: scope:[memset] from memset::@1 [33] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) +void assert_byte(char *msg , char b , char c) assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 [34] print_line_cursor#52 = phi( test_bytes/print_screen#0, test_bytes::@1/print_line_cursor#0, test_bytes::@2/print_line_cursor#0 ) [34] assert_byte::c#3 = phi( test_bytes/0, test_bytes::@1/2, test_bytes::@2/$fe ) @@ -1336,64 +1336,64 @@ assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2 [34] print_char_cursor#77 = phi( test_bytes/print_screen#0, test_bytes::@1/print_char_cursor#98, test_bytes::@2/print_char_cursor#99 ) [34] assert_byte::msg#3 = phi( test_bytes/msg, test_bytes::@1/msg1, test_bytes::@2/test_bytes::msg2 ) [35] print_str::str#1 = assert_byte::msg#3 - [36] call print_str + [36] call print_str to:assert_byte::@4 assert_byte::@4: scope:[assert_byte] from assert_byte [37] phi() - [38] call print_str + [38] call print_str to:assert_byte::@5 assert_byte::@5: scope:[assert_byte] from assert_byte::@4 [39] if(assert_byte::b#3!=assert_byte::c#3) goto assert_byte::@1 to:assert_byte::@3 assert_byte::@3: scope:[assert_byte] from assert_byte::@5 [40] phi() - [41] call print_str + [41] call print_str to:assert_byte::@2 assert_byte::@2: scope:[assert_byte] from assert_byte::@1 assert_byte::@3 [42] phi() - [43] call print_ln + [43] call print_ln to:assert_byte::@return assert_byte::@return: scope:[assert_byte] from assert_byte::@2 [44] return to:@return assert_byte::@1: scope:[assert_byte] from assert_byte::@5 [45] *BG_COLOR = RED - [46] call print_str + [46] call print_str to:assert_byte::@2 -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) +void assert_sbyte(char *msg , signed char b , signed char c) assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 [47] assert_sbyte::c#5 = phi( test_sbytes/0, test_sbytes::@1/2, test_sbytes::@2/-2, test_sbytes::@3/2, test_sbytes::@4/2 ) [47] assert_sbyte::b#5 = phi( test_sbytes/test_sbytes::bb, test_sbytes::@1/test_sbytes::bc#0, test_sbytes::@2/test_sbytes::bd#0, test_sbytes::@3/test_sbytes::be#0, test_sbytes::@4/test_sbytes::bf ) [47] assert_sbyte::msg#5 = phi( test_sbytes/msg, test_sbytes::@1/msg1, test_sbytes::@2/test_sbytes::msg2, test_sbytes::@3/test_sbytes::msg3, test_sbytes::@4/test_sbytes::msg4 ) [48] print_str::str#5 = assert_sbyte::msg#5 [49] print_char_cursor#92 = print_line_cursor#0 - [50] call print_str + [50] call print_str to:assert_sbyte::@4 assert_sbyte::@4: scope:[assert_sbyte] from assert_sbyte [51] phi() - [52] call print_str + [52] call print_str to:assert_sbyte::@5 assert_sbyte::@5: scope:[assert_sbyte] from assert_sbyte::@4 [53] if(assert_sbyte::b#5!=assert_sbyte::c#5) goto assert_sbyte::@1 to:assert_sbyte::@3 assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@5 [54] phi() - [55] call print_str + [55] call print_str to:assert_sbyte::@2 assert_sbyte::@2: scope:[assert_sbyte] from assert_sbyte::@1 assert_sbyte::@3 [56] phi() - [57] call print_ln + [57] call print_ln to:assert_sbyte::@return assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@2 [58] return to:@return assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@5 [59] *BG_COLOR = RED - [60] call print_str + [60] call print_str to:assert_sbyte::@2 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@4 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@4 [61] print_char_cursor#87 = phi( assert_byte/print_char_cursor#77, assert_byte::@1/print_char_cursor#1, assert_byte::@3/print_char_cursor#1, assert_byte::@4/print_char_cursor#1, assert_sbyte/print_char_cursor#92, assert_sbyte::@1/print_char_cursor#1, assert_sbyte::@3/print_char_cursor#1, assert_sbyte::@4/print_char_cursor#1 ) [61] print_str::str#12 = phi( assert_byte/print_str::str#1, assert_byte::@1/str1, assert_byte::@3/str2, assert_byte::@4/str, assert_sbyte/print_str::str#5, assert_sbyte::@1/str1, assert_sbyte::@3/str2, assert_sbyte::@4/str ) @@ -1408,7 +1408,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [65] print_char::ch#0 = *print_str::str#10 - [66] call print_char + [66] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [67] print_str::str#0 = ++ print_str::str#10 @@ -1427,7 +1427,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [72] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [73] *print_char_cursor#1 = print_char::ch#0 [74] print_char_cursor#4 = ++ print_char_cursor#1 @@ -1438,63 +1438,63 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) -byte assert_byte::b -byte assert_byte::b#3 20.2 -byte assert_byte::c -byte assert_byte::c#3 20.2 -byte* assert_byte::msg -byte* assert_byte::msg#3 101.0 -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) -signed byte assert_sbyte::b -signed byte assert_sbyte::b#5 16.833333333333332 -signed byte assert_sbyte::c -signed byte assert_sbyte::c#5 16.833333333333332 -byte* assert_sbyte::msg -byte* assert_sbyte::msg#5 101.0 +void assert_byte(char *msg , char b , char c) +char assert_byte::b +char assert_byte::b#3 // 20.2 +char assert_byte::c +char assert_byte::c#3 // 20.2 +char *assert_byte::msg +char *assert_byte::msg#3 // 101.0 +void assert_sbyte(char *msg , signed char b , signed char c) +signed char assert_sbyte::b +signed char assert_sbyte::b#5 // 16.833333333333332 +signed char assert_sbyte::c +signed char assert_sbyte::c#5 // 16.833333333333332 +char *assert_sbyte::msg +char *assert_sbyte::msg#5 // 101.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 110002.0 -byte* print_char_cursor -byte* print_char_cursor#1 8207.814814814814 -byte* print_char_cursor#4 27500.5 -byte* print_char_cursor#77 61.5 -byte* print_char_cursor#87 1809.0 -byte* print_char_cursor#92 202.0 -byte* print_char_cursor#98 22.0 -byte* print_char_cursor#99 22.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 110002.0 +char *print_char_cursor +char *print_char_cursor#1 // 8207.814814814814 +char *print_char_cursor#4 // 27500.5 +char *print_char_cursor#77 // 61.5 +char *print_char_cursor#87 // 1809.0 +char *print_char_cursor#92 // 202.0 +char *print_char_cursor#98 // 22.0 +char *print_char_cursor#99 // 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 840.2499999999999 -byte* print_line_cursor#25 21003.0 -byte* print_line_cursor#49 1203.0 -byte* print_line_cursor#52 11.181818181818182 +char *print_line_cursor +char *print_line_cursor#0 // 840.2499999999999 +char *print_line_cursor#25 // 21003.0 +char *print_line_cursor#49 // 1203.0 +char *print_line_cursor#52 // 11.181818181818182 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 20002.0 -byte* print_str::str#1 202.0 -byte* print_str::str#10 10251.25 -byte* print_str::str#12 1203.0 -byte* print_str::str#5 101.0 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 20002.0 +char *print_str::str#1 // 202.0 +char *print_str::str#10 // 10251.25 +char *print_str::str#12 // 1203.0 +char *print_str::str#5 // 101.0 void test_bytes() -byte test_bytes::bc -byte test_bytes::bd +char test_bytes::bc +char test_bytes::bd void test_sbytes() -signed byte test_sbytes::bc -signed byte test_sbytes::bd -signed byte test_sbytes::be +signed char test_sbytes::bc +signed char test_sbytes::bd +signed char test_sbytes::be Initial phi equivalence classes [ memset::dst#2 memset::dst#1 ] @@ -1646,7 +1646,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_cls + // [1] call print_cls // [7] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -1656,7 +1656,7 @@ main: { // [2] *BG_COLOR = GREEN -- _deref_pbuc1=vbuc2 lda #GREEN sta BG_COLOR - // [3] call test_bytes + // [3] call test_bytes // [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes] test_bytes_from___b1: jsr test_bytes @@ -1665,7 +1665,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call test_sbytes + // [5] call test_sbytes // [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes] test_sbytes_from___b2: jsr test_sbytes @@ -1678,7 +1678,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [8] call memset + // [8] call memset // [28] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1694,7 +1694,7 @@ test_bytes: { .const bb = 0 .const bc = 2 .const bd = bc-4 - // [11] call assert_byte + // [11] call assert_byte // [34] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] assert_byte_from_test_bytes: // [34] phi print_line_cursor#52 = print_screen#0 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 @@ -1726,7 +1726,7 @@ test_bytes: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [13] call assert_byte + // [13] call assert_byte // [34] phi from test_bytes::@1 to assert_byte [phi:test_bytes::@1->assert_byte] assert_byte_from___b1: // [34] phi print_line_cursor#52 = print_line_cursor#0 [phi:test_bytes::@1->assert_byte#0] -- register_copy @@ -1750,7 +1750,7 @@ test_bytes: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [15] call assert_byte + // [15] call assert_byte // [34] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] assert_byte_from___b2: // [34] phi print_line_cursor#52 = print_line_cursor#0 [phi:test_bytes::@2->assert_byte#0] -- register_copy @@ -1784,7 +1784,7 @@ test_sbytes: { .const bc = 2 .const bd = bc-4 .const be = -bd - // [18] call assert_sbyte + // [18] call assert_sbyte // [47] phi from test_sbytes to assert_sbyte [phi:test_sbytes->assert_sbyte] assert_sbyte_from_test_sbytes: // [47] phi assert_sbyte::c#5 = 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbsc1 @@ -1803,7 +1803,7 @@ test_sbytes: { jmp __b1 // test_sbytes::@1 __b1: - // [20] call assert_sbyte + // [20] call assert_sbyte // [47] phi from test_sbytes::@1 to assert_sbyte [phi:test_sbytes::@1->assert_sbyte] assert_sbyte_from___b1: // [47] phi assert_sbyte::c#5 = 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbsc1 @@ -1822,7 +1822,7 @@ test_sbytes: { jmp __b2 // test_sbytes::@2 __b2: - // [22] call assert_sbyte + // [22] call assert_sbyte // [47] phi from test_sbytes::@2 to assert_sbyte [phi:test_sbytes::@2->assert_sbyte] assert_sbyte_from___b2: // [47] phi assert_sbyte::c#5 = -2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 @@ -1841,7 +1841,7 @@ test_sbytes: { jmp __b3 // test_sbytes::@3 __b3: - // [24] call assert_sbyte + // [24] call assert_sbyte // [47] phi from test_sbytes::@3 to assert_sbyte [phi:test_sbytes::@3->assert_sbyte] assert_sbyte_from___b3: // [47] phi assert_sbyte::c#5 = 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbsc1 @@ -1860,7 +1860,7 @@ test_sbytes: { jmp __b4 // test_sbytes::@4 __b4: - // [26] call assert_sbyte + // [26] call assert_sbyte // [47] phi from test_sbytes::@4 to assert_sbyte [phi:test_sbytes::@4->assert_sbyte] assert_sbyte_from___b4: // [47] phi assert_sbyte::c#5 = 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbsc1 @@ -1890,6 +1890,7 @@ test_sbytes: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1898,7 +1899,7 @@ memset: { .label dst = 2 // [29] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [29] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [29] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1935,12 +1936,12 @@ memset: { jmp __b1 } // assert_byte -// assert_byte(byte* zp(2) msg, byte register(X) b, byte zp(4) c) +// void assert_byte(__zp(2) char *msg, __register(X) char b, __zp(4) char c) assert_byte: { .label msg = 2 .label c = 4 // [35] print_str::str#1 = assert_byte::msg#3 - // [36] call print_str + // [36] call print_str // [61] phi from assert_byte to print_str [phi:assert_byte->print_str] print_str_from_assert_byte: // [61] phi print_char_cursor#87 = print_char_cursor#77 [phi:assert_byte->print_str#0] -- register_copy @@ -1951,7 +1952,7 @@ assert_byte: { jmp __b4 // assert_byte::@4 __b4: - // [38] call print_str + // [38] call print_str // [61] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str] print_str_from___b4: // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@4->print_str#0] -- register_copy @@ -1972,7 +1973,7 @@ assert_byte: { jmp __b3 // assert_byte::@3 __b3: - // [41] call print_str + // [41] call print_str // [61] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str] print_str_from___b3: // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@3->print_str#0] -- register_copy @@ -1988,7 +1989,7 @@ assert_byte: { jmp __b2 // assert_byte::@2 __b2: - // [43] call print_ln + // [43] call print_ln // [68] phi from assert_byte::@2 to print_ln [phi:assert_byte::@2->print_ln] print_ln_from___b2: // [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- register_copy @@ -2003,7 +2004,7 @@ assert_byte: { // [45] *BG_COLOR = RED -- _deref_pbuc1=vbuc2 lda #RED sta BG_COLOR - // [46] call print_str + // [46] call print_str // [61] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str] print_str_from___b1: // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@1->print_str#0] -- register_copy @@ -2016,7 +2017,7 @@ assert_byte: { jmp __b2_from___b1 } // assert_sbyte -// assert_sbyte(byte* zp(2) msg, signed byte register(X) b, signed byte zp(4) c) +// void assert_sbyte(__zp(2) char *msg, __register(X) signed char b, __zp(4) signed char c) assert_sbyte: { .label msg = 2 .label c = 4 @@ -2026,7 +2027,7 @@ assert_sbyte: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [50] call print_str + // [50] call print_str // [61] phi from assert_sbyte to print_str [phi:assert_sbyte->print_str] print_str_from_assert_sbyte: // [61] phi print_char_cursor#87 = print_char_cursor#92 [phi:assert_sbyte->print_str#0] -- register_copy @@ -2037,7 +2038,7 @@ assert_sbyte: { jmp __b4 // assert_sbyte::@4 __b4: - // [52] call print_str + // [52] call print_str // [61] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str] print_str_from___b4: // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@4->print_str#0] -- register_copy @@ -2058,7 +2059,7 @@ assert_sbyte: { jmp __b3 // assert_sbyte::@3 __b3: - // [55] call print_str + // [55] call print_str // [61] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str] print_str_from___b3: // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@3->print_str#0] -- register_copy @@ -2074,7 +2075,7 @@ assert_sbyte: { jmp __b2 // assert_sbyte::@2 __b2: - // [57] call print_ln + // [57] call print_ln // [68] phi from assert_sbyte::@2 to print_ln [phi:assert_sbyte::@2->print_ln] print_ln_from___b2: // [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- register_copy @@ -2089,7 +2090,7 @@ assert_sbyte: { // [59] *BG_COLOR = RED -- _deref_pbuc1=vbuc2 lda #RED sta BG_COLOR - // [60] call print_str + // [60] call print_str // [61] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str] print_str_from___b1: // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@1->print_str#0] -- register_copy @@ -2103,7 +2104,7 @@ assert_sbyte: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [62] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2129,7 +2130,7 @@ print_str: { // [65] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [66] call print_char + // [66] call print_char jsr print_char jmp __b3 // print_str::@3 @@ -2176,7 +2177,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [73] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -2312,92 +2313,92 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte GREEN = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte RED = 2 -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) -byte assert_byte::b -byte assert_byte::b#3 reg byte x 20.2 -byte assert_byte::c -byte assert_byte::c#3 c zp[1]:4 20.2 -byte* assert_byte::msg -byte* assert_byte::msg#3 msg zp[2]:2 101.0 -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) -signed byte assert_sbyte::b -signed byte assert_sbyte::b#5 reg byte x 16.833333333333332 -signed byte assert_sbyte::c -signed byte assert_sbyte::c#5 c zp[1]:4 16.833333333333332 -byte* assert_sbyte::msg -byte* assert_sbyte::msg#5 msg zp[2]:2 101.0 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char GREEN = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char RED = 2 +void assert_byte(char *msg , char b , char c) +char assert_byte::b +char assert_byte::b#3 // reg byte x 20.2 +char assert_byte::c +char assert_byte::c#3 // c zp[1]:4 20.2 +char *assert_byte::msg +char *assert_byte::msg#3 // msg zp[2]:2 101.0 +void assert_sbyte(char *msg , signed char b , signed char c) +signed char assert_sbyte::b +signed char assert_sbyte::b#5 // reg byte x 16.833333333333332 +signed char assert_sbyte::c +signed char assert_sbyte::c#5 // c zp[1]:4 16.833333333333332 +char *assert_sbyte::msg +char *assert_sbyte::msg#5 // msg zp[2]:2 101.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 2002.0 -byte* memset::dst#2 dst zp[2]:2 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -constant byte* msg[4] = "0=0" -constant byte* msg1[6] = "0+2=2" -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 110002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:5 8207.814814814814 -byte* print_char_cursor#4 print_char_cursor zp[2]:5 27500.5 -byte* print_char_cursor#77 print_char_cursor zp[2]:5 61.5 -byte* print_char_cursor#87 print_char_cursor zp[2]:5 1809.0 -byte* print_char_cursor#92 print_char_cursor zp[2]:5 202.0 -byte* print_char_cursor#98 print_char_cursor zp[2]:5 22.0 -byte* print_char_cursor#99 print_char_cursor zp[2]:5 22.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 2002.0 +char *memset::dst#2 // dst zp[2]:2 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +__constant char msg[4] = "0=0" +__constant char msg1[6] = "0+2=2" +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 110002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:5 8207.814814814814 +char *print_char_cursor#4 // print_char_cursor zp[2]:5 27500.5 +char *print_char_cursor#77 // print_char_cursor zp[2]:5 61.5 +char *print_char_cursor#87 // print_char_cursor zp[2]:5 1809.0 +char *print_char_cursor#92 // print_char_cursor zp[2]:5 202.0 +char *print_char_cursor#98 // print_char_cursor zp[2]:5 22.0 +char *print_char_cursor#99 // print_char_cursor zp[2]:5 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 840.2499999999999 -byte* print_line_cursor#25 print_line_cursor zp[2]:7 21003.0 -byte* print_line_cursor#49 print_line_cursor zp[2]:7 1203.0 -byte* print_line_cursor#52 print_line_cursor zp[2]:7 11.181818181818182 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 840.2499999999999 +char *print_line_cursor#25 // print_line_cursor zp[2]:7 21003.0 +char *print_line_cursor#49 // print_line_cursor zp[2]:7 1203.0 +char *print_line_cursor#52 // print_line_cursor zp[2]:7 11.181818181818182 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 20002.0 -byte* print_str::str#1 str zp[2]:2 202.0 -byte* print_str::str#10 str zp[2]:2 10251.25 -byte* print_str::str#12 str zp[2]:2 1203.0 -byte* print_str::str#5 str zp[2]:2 101.0 -constant byte* str[2] = " " -constant byte* str1[6] = "fail!" -constant byte* str2[3] = "ok" +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 20002.0 +char *print_str::str#1 // str zp[2]:2 202.0 +char *print_str::str#10 // str zp[2]:2 10251.25 +char *print_str::str#12 // str zp[2]:2 1203.0 +char *print_str::str#5 // str zp[2]:2 101.0 +__constant char str[2] = " " +__constant char str1[6] = "fail!" +__constant char str2[3] = "ok" void test_bytes() -constant byte test_bytes::bb = 0 -byte test_bytes::bc -constant byte test_bytes::bc#0 bc = 2 -byte test_bytes::bd -constant byte test_bytes::bd#0 bd = (byte)(signed byte)test_bytes::bc#0-4 -constant byte* test_bytes::msg2[$a] = "0+2-4=254" +__constant char test_bytes::bb = 0 +char test_bytes::bc +__constant char test_bytes::bc#0 = 2 // bc +char test_bytes::bd +__constant char test_bytes::bd#0 = (char)(signed char)test_bytes::bc#0-4 // bd +__constant char test_bytes::msg2[$a] = "0+2-4=254" void test_sbytes() -constant signed byte test_sbytes::bb = 0 -signed byte test_sbytes::bc -constant signed byte test_sbytes::bc#0 bc = 2 -signed byte test_sbytes::bd -constant signed byte test_sbytes::bd#0 bd = test_sbytes::bc#0-4 -signed byte test_sbytes::be -constant signed byte test_sbytes::be#0 be = -test_sbytes::bd#0 -constant signed byte test_sbytes::bf = (signed byte)-$7f-$7f -constant byte* test_sbytes::msg2[9] = "0+2-4=-2" -constant byte* test_sbytes::msg3[$b] = "-(0+2-4)=2" -constant byte* test_sbytes::msg4[$b] = "-127-127=2" +__constant signed char test_sbytes::bb = 0 +signed char test_sbytes::bc +__constant signed char test_sbytes::bc#0 = 2 // bc +signed char test_sbytes::bd +__constant signed char test_sbytes::bd#0 = test_sbytes::bc#0-4 // bd +signed char test_sbytes::be +__constant signed char test_sbytes::be#0 = -test_sbytes::bd#0 // be +__constant signed char test_sbytes::bf = (signed char)-$7f-$7f +__constant char test_sbytes::msg2[9] = "0+2-4=-2" +__constant char test_sbytes::msg3[$b] = "-(0+2-4)=2" +__constant char test_sbytes::msg4[$b] = "-127-127=2" zp[2]:2 [ assert_byte::msg#3 print_str::str#10 print_str::str#12 print_str::str#1 print_str::str#5 print_str::str#0 assert_sbyte::msg#5 memset::dst#2 memset::dst#1 ] reg byte x [ assert_byte::b#3 ] @@ -2436,7 +2437,7 @@ Score: 1783 // main main: { // print_cls() - // [1] call print_cls + // [1] call print_cls // [7] phi from main to print_cls [phi:main->print_cls] jsr print_cls // main::@1 @@ -2445,13 +2446,13 @@ main: { lda #GREEN sta BG_COLOR // test_bytes() - // [3] call test_bytes + // [3] call test_bytes // [10] phi from main::@1 to test_bytes [phi:main::@1->test_bytes] jsr test_bytes // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // test_sbytes() - // [5] call test_sbytes + // [5] call test_sbytes // [17] phi from main::@2 to test_sbytes [phi:main::@2->test_sbytes] jsr test_sbytes // main::@return @@ -2463,7 +2464,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [8] call memset + // [8] call memset // [28] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2478,7 +2479,7 @@ test_bytes: { .const bc = 2 .const bd = bc-4 // assert_byte("0=0", bb, 0) - // [11] call assert_byte + // [11] call assert_byte // [34] phi from test_bytes to assert_byte [phi:test_bytes->assert_byte] // [34] phi print_line_cursor#52 = print_screen#0 [phi:test_bytes->assert_byte#0] -- pbuz1=pbuc1 lda #assert_byte] // [34] phi print_line_cursor#52 = print_line_cursor#0 [phi:test_bytes::@1->assert_byte#0] -- register_copy // [34] phi assert_byte::c#3 = 2 [phi:test_bytes::@1->assert_byte#1] -- vbuz1=vbuc1 @@ -2530,7 +2531,7 @@ test_bytes: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // assert_byte("0+2-4=254", bd, 254) - // [15] call assert_byte + // [15] call assert_byte // [34] phi from test_bytes::@2 to assert_byte [phi:test_bytes::@2->assert_byte] // [34] phi print_line_cursor#52 = print_line_cursor#0 [phi:test_bytes::@2->assert_byte#0] -- register_copy // [34] phi assert_byte::c#3 = $fe [phi:test_bytes::@2->assert_byte#1] -- vbuz1=vbuc1 @@ -2563,7 +2564,7 @@ test_sbytes: { .const bd = bc-4 .const be = -bd // assert_sbyte("0=0", bb, 0) - // [18] call assert_sbyte + // [18] call assert_sbyte // [47] phi from test_sbytes to assert_sbyte [phi:test_sbytes->assert_sbyte] // [47] phi assert_sbyte::c#5 = 0 [phi:test_sbytes->assert_sbyte#0] -- vbsz1=vbsc1 lda #0 @@ -2579,7 +2580,7 @@ test_sbytes: { // [19] phi from test_sbytes to test_sbytes::@1 [phi:test_sbytes->test_sbytes::@1] // test_sbytes::@1 // assert_sbyte("0+2=2", bc, 2) - // [20] call assert_sbyte + // [20] call assert_sbyte // [47] phi from test_sbytes::@1 to assert_sbyte [phi:test_sbytes::@1->assert_sbyte] // [47] phi assert_sbyte::c#5 = 2 [phi:test_sbytes::@1->assert_sbyte#0] -- vbsz1=vbsc1 lda #2 @@ -2595,7 +2596,7 @@ test_sbytes: { // [21] phi from test_sbytes::@1 to test_sbytes::@2 [phi:test_sbytes::@1->test_sbytes::@2] // test_sbytes::@2 // assert_sbyte("0+2-4=-2", bd, -2) - // [22] call assert_sbyte + // [22] call assert_sbyte // [47] phi from test_sbytes::@2 to assert_sbyte [phi:test_sbytes::@2->assert_sbyte] // [47] phi assert_sbyte::c#5 = -2 [phi:test_sbytes::@2->assert_sbyte#0] -- vbsz1=vbsc1 lda #-2 @@ -2611,7 +2612,7 @@ test_sbytes: { // [23] phi from test_sbytes::@2 to test_sbytes::@3 [phi:test_sbytes::@2->test_sbytes::@3] // test_sbytes::@3 // assert_sbyte("-(0+2-4)=2", be, 2) - // [24] call assert_sbyte + // [24] call assert_sbyte // [47] phi from test_sbytes::@3 to assert_sbyte [phi:test_sbytes::@3->assert_sbyte] // [47] phi assert_sbyte::c#5 = 2 [phi:test_sbytes::@3->assert_sbyte#0] -- vbsz1=vbsc1 lda #2 @@ -2627,7 +2628,7 @@ test_sbytes: { // [25] phi from test_sbytes::@3 to test_sbytes::@4 [phi:test_sbytes::@3->test_sbytes::@4] // test_sbytes::@4 // assert_sbyte("-127-127=2", bf, 2) - // [26] call assert_sbyte + // [26] call assert_sbyte // [47] phi from test_sbytes::@4 to assert_sbyte [phi:test_sbytes::@4->assert_sbyte] // [47] phi assert_sbyte::c#5 = 2 [phi:test_sbytes::@4->assert_sbyte#0] -- vbsz1=vbsc1 lda #2 @@ -2655,6 +2656,7 @@ test_sbytes: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2662,7 +2664,7 @@ memset: { .label end = str+num .label dst = 2 // [29] phi from memset to memset::@1 [phi:memset->memset::@1] - // [29] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [29] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2699,13 +2701,13 @@ memset: { jmp __b1 } // assert_byte -// assert_byte(byte* zp(2) msg, byte register(X) b, byte zp(4) c) +// void assert_byte(__zp(2) char *msg, __register(X) char b, __zp(4) char c) assert_byte: { .label msg = 2 .label c = 4 // print_str(msg) // [35] print_str::str#1 = assert_byte::msg#3 - // [36] call print_str + // [36] call print_str // [61] phi from assert_byte to print_str [phi:assert_byte->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#77 [phi:assert_byte->print_str#0] -- register_copy // [61] phi print_str::str#12 = print_str::str#1 [phi:assert_byte->print_str#1] -- register_copy @@ -2713,7 +2715,7 @@ assert_byte: { // [37] phi from assert_byte to assert_byte::@4 [phi:assert_byte->assert_byte::@4] // assert_byte::@4 // print_str(" ") - // [38] call print_str + // [38] call print_str // [61] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@4->print_str#0] -- register_copy // [61] phi print_str::str#12 = str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1 @@ -2730,7 +2732,7 @@ assert_byte: { // [40] phi from assert_byte::@5 to assert_byte::@3 [phi:assert_byte::@5->assert_byte::@3] // assert_byte::@3 // print_str("ok") - // [41] call print_str + // [41] call print_str // [61] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@3->print_str#0] -- register_copy // [61] phi print_str::str#12 = str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1 @@ -2743,7 +2745,7 @@ assert_byte: { // assert_byte::@2 __b2: // print_ln() - // [43] call print_ln + // [43] call print_ln // [68] phi from assert_byte::@2 to print_ln [phi:assert_byte::@2->print_ln] // [68] phi print_line_cursor#49 = print_line_cursor#52 [phi:assert_byte::@2->print_ln#0] -- register_copy jsr print_ln @@ -2758,7 +2760,7 @@ assert_byte: { lda #RED sta BG_COLOR // print_str("fail!") - // [46] call print_str + // [46] call print_str // [61] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_byte::@1->print_str#0] -- register_copy // [61] phi print_str::str#12 = str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1 @@ -2770,7 +2772,7 @@ assert_byte: { jmp __b2 } // assert_sbyte -// assert_sbyte(byte* zp(2) msg, signed byte register(X) b, signed byte zp(4) c) +// void assert_sbyte(__zp(2) char *msg, __register(X) signed char b, __zp(4) signed char c) assert_sbyte: { .label msg = 2 .label c = 4 @@ -2782,7 +2784,7 @@ assert_sbyte: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str(msg) - // [50] call print_str + // [50] call print_str // [61] phi from assert_sbyte to print_str [phi:assert_sbyte->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#92 [phi:assert_sbyte->print_str#0] -- register_copy // [61] phi print_str::str#12 = print_str::str#5 [phi:assert_sbyte->print_str#1] -- register_copy @@ -2790,7 +2792,7 @@ assert_sbyte: { // [51] phi from assert_sbyte to assert_sbyte::@4 [phi:assert_sbyte->assert_sbyte::@4] // assert_sbyte::@4 // print_str(" ") - // [52] call print_str + // [52] call print_str // [61] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@4->print_str#0] -- register_copy // [61] phi print_str::str#12 = str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1 @@ -2807,7 +2809,7 @@ assert_sbyte: { // [54] phi from assert_sbyte::@5 to assert_sbyte::@3 [phi:assert_sbyte::@5->assert_sbyte::@3] // assert_sbyte::@3 // print_str("ok") - // [55] call print_str + // [55] call print_str // [61] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@3->print_str#0] -- register_copy // [61] phi print_str::str#12 = str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1 @@ -2820,7 +2822,7 @@ assert_sbyte: { // assert_sbyte::@2 __b2: // print_ln() - // [57] call print_ln + // [57] call print_ln // [68] phi from assert_sbyte::@2 to print_ln [phi:assert_sbyte::@2->print_ln] // [68] phi print_line_cursor#49 = print_line_cursor#0 [phi:assert_sbyte::@2->print_ln#0] -- register_copy jsr print_ln @@ -2835,7 +2837,7 @@ assert_sbyte: { lda #RED sta BG_COLOR // print_str("fail!") - // [60] call print_str + // [60] call print_str // [61] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str] // [61] phi print_char_cursor#87 = print_char_cursor#1 [phi:assert_sbyte::@1->print_str#0] -- register_copy // [61] phi print_str::str#12 = str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1 @@ -2848,7 +2850,7 @@ assert_sbyte: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [62] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2872,7 +2874,7 @@ print_str: { // [65] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [66] call print_char + // [66] call print_char jsr print_char // print_str::@3 // print_char(*(str++)); @@ -2916,7 +2918,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [73] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/constants.sym b/src/test/ref/constants.sym index 88df021c1..0be4cd8a6 100644 --- a/src/test/ref/constants.sym +++ b/src/test/ref/constants.sym @@ -1,89 +1,89 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte GREEN = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte RED = 2 -void assert_byte(byte* assert_byte::msg , byte assert_byte::b , byte assert_byte::c) -byte assert_byte::b -byte assert_byte::b#3 reg byte x 20.2 -byte assert_byte::c -byte assert_byte::c#3 c zp[1]:4 20.2 -byte* assert_byte::msg -byte* assert_byte::msg#3 msg zp[2]:2 101.0 -void assert_sbyte(byte* assert_sbyte::msg , signed byte assert_sbyte::b , signed byte assert_sbyte::c) -signed byte assert_sbyte::b -signed byte assert_sbyte::b#5 reg byte x 16.833333333333332 -signed byte assert_sbyte::c -signed byte assert_sbyte::c#5 c zp[1]:4 16.833333333333332 -byte* assert_sbyte::msg -byte* assert_sbyte::msg#5 msg zp[2]:2 101.0 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char GREEN = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char RED = 2 +void assert_byte(char *msg , char b , char c) +char assert_byte::b +char assert_byte::b#3 // reg byte x 20.2 +char assert_byte::c +char assert_byte::c#3 // c zp[1]:4 20.2 +char *assert_byte::msg +char *assert_byte::msg#3 // msg zp[2]:2 101.0 +void assert_sbyte(char *msg , signed char b , signed char c) +signed char assert_sbyte::b +signed char assert_sbyte::b#5 // reg byte x 16.833333333333332 +signed char assert_sbyte::c +signed char assert_sbyte::c#5 // c zp[1]:4 16.833333333333332 +char *assert_sbyte::msg +char *assert_sbyte::msg#5 // msg zp[2]:2 101.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 2002.0 -byte* memset::dst#2 dst zp[2]:2 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -constant byte* msg[4] = "0=0" -constant byte* msg1[6] = "0+2=2" -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 110002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:5 8207.814814814814 -byte* print_char_cursor#4 print_char_cursor zp[2]:5 27500.5 -byte* print_char_cursor#77 print_char_cursor zp[2]:5 61.5 -byte* print_char_cursor#87 print_char_cursor zp[2]:5 1809.0 -byte* print_char_cursor#92 print_char_cursor zp[2]:5 202.0 -byte* print_char_cursor#98 print_char_cursor zp[2]:5 22.0 -byte* print_char_cursor#99 print_char_cursor zp[2]:5 22.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 2002.0 +char *memset::dst#2 // dst zp[2]:2 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +__constant char msg[4] = "0=0" +__constant char msg1[6] = "0+2=2" +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 110002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:5 8207.814814814814 +char *print_char_cursor#4 // print_char_cursor zp[2]:5 27500.5 +char *print_char_cursor#77 // print_char_cursor zp[2]:5 61.5 +char *print_char_cursor#87 // print_char_cursor zp[2]:5 1809.0 +char *print_char_cursor#92 // print_char_cursor zp[2]:5 202.0 +char *print_char_cursor#98 // print_char_cursor zp[2]:5 22.0 +char *print_char_cursor#99 // print_char_cursor zp[2]:5 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 840.2499999999999 -byte* print_line_cursor#25 print_line_cursor zp[2]:7 21003.0 -byte* print_line_cursor#49 print_line_cursor zp[2]:7 1203.0 -byte* print_line_cursor#52 print_line_cursor zp[2]:7 11.181818181818182 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 840.2499999999999 +char *print_line_cursor#25 // print_line_cursor zp[2]:7 21003.0 +char *print_line_cursor#49 // print_line_cursor zp[2]:7 1203.0 +char *print_line_cursor#52 // print_line_cursor zp[2]:7 11.181818181818182 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 20002.0 -byte* print_str::str#1 str zp[2]:2 202.0 -byte* print_str::str#10 str zp[2]:2 10251.25 -byte* print_str::str#12 str zp[2]:2 1203.0 -byte* print_str::str#5 str zp[2]:2 101.0 -constant byte* str[2] = " " -constant byte* str1[6] = "fail!" -constant byte* str2[3] = "ok" +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 20002.0 +char *print_str::str#1 // str zp[2]:2 202.0 +char *print_str::str#10 // str zp[2]:2 10251.25 +char *print_str::str#12 // str zp[2]:2 1203.0 +char *print_str::str#5 // str zp[2]:2 101.0 +__constant char str[2] = " " +__constant char str1[6] = "fail!" +__constant char str2[3] = "ok" void test_bytes() -constant byte test_bytes::bb = 0 -byte test_bytes::bc -constant byte test_bytes::bc#0 bc = 2 -byte test_bytes::bd -constant byte test_bytes::bd#0 bd = (byte)(signed byte)test_bytes::bc#0-4 -constant byte* test_bytes::msg2[$a] = "0+2-4=254" +__constant char test_bytes::bb = 0 +char test_bytes::bc +__constant char test_bytes::bc#0 = 2 // bc +char test_bytes::bd +__constant char test_bytes::bd#0 = (char)(signed char)test_bytes::bc#0-4 // bd +__constant char test_bytes::msg2[$a] = "0+2-4=254" void test_sbytes() -constant signed byte test_sbytes::bb = 0 -signed byte test_sbytes::bc -constant signed byte test_sbytes::bc#0 bc = 2 -signed byte test_sbytes::bd -constant signed byte test_sbytes::bd#0 bd = test_sbytes::bc#0-4 -signed byte test_sbytes::be -constant signed byte test_sbytes::be#0 be = -test_sbytes::bd#0 -constant signed byte test_sbytes::bf = (signed byte)-$7f-$7f -constant byte* test_sbytes::msg2[9] = "0+2-4=-2" -constant byte* test_sbytes::msg3[$b] = "-(0+2-4)=2" -constant byte* test_sbytes::msg4[$b] = "-127-127=2" +__constant signed char test_sbytes::bb = 0 +signed char test_sbytes::bc +__constant signed char test_sbytes::bc#0 = 2 // bc +signed char test_sbytes::bd +__constant signed char test_sbytes::bd#0 = test_sbytes::bc#0-4 // bd +signed char test_sbytes::be +__constant signed char test_sbytes::be#0 = -test_sbytes::bd#0 // be +__constant signed char test_sbytes::bf = (signed char)-$7f-$7f +__constant char test_sbytes::msg2[9] = "0+2-4=-2" +__constant char test_sbytes::msg3[$b] = "-(0+2-4)=2" +__constant char test_sbytes::msg4[$b] = "-127-127=2" zp[2]:2 [ assert_byte::msg#3 print_str::str#10 print_str::str#12 print_str::str#1 print_str::str#5 print_str::str#0 assert_sbyte::msg#5 memset::dst#2 memset::dst#1 ] reg byte x [ assert_byte::b#3 ] diff --git a/src/test/ref/constref-not-literal-problem.asm b/src/test/ref/constref-not-literal-problem.asm index fca6b3934..3b78d7542 100644 --- a/src/test/ref/constref-not-literal-problem.asm +++ b/src/test/ref/constref-not-literal-problem.asm @@ -16,6 +16,7 @@ main: { rts } // Copy a byte if the destination is after the source +// void copy(void *destination, void *source) copy: { .label destination = B .label source = A diff --git a/src/test/ref/constref-not-literal-problem.cfg b/src/test/ref/constref-not-literal-problem.cfg index 812bcf79d..c289f808e 100644 --- a/src/test/ref/constref-not-literal-problem.cfg +++ b/src/test/ref/constref-not-literal-problem.cfg @@ -2,15 +2,15 @@ void main() main: scope:[main] from [0] phi() - [1] call copy + [1] call copy to:main::@return main::@return: scope:[main] from main [2] return to:@return -void copy(void* copy::destination , void* copy::source) +void copy(void *destination , void *source) copy: scope:[copy] from main - [3] if((word)copy::destination#0<=(word)copy::source#0) goto copy::@return + [3] if((unsigned int)copy::destination#0<=(unsigned int)copy::source#0) goto copy::@return to:copy::@1 copy::@1: scope:[copy] from copy [4] *copy::dst#0 = *copy::src#0 diff --git a/src/test/ref/constref-not-literal-problem.log b/src/test/ref/constref-not-literal-problem.log index 0d0a1a880..4068dc7e4 100644 --- a/src/test/ref/constref-not-literal-problem.log +++ b/src/test/ref/constref-not-literal-problem.log @@ -1,12 +1,12 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - copy::destination#0 = (void*)B - copy::source#0 = (void*)A - call copy + copy::destination#0 = (void *)B + copy::source#0 = (void *)A + call copy to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -14,12 +14,12 @@ main::@return: scope:[main] from main::@1 return to:@return -void copy(void* copy::destination , void* copy::source) +void copy(void *destination , void *source) copy: scope:[copy] from main copy::source#1 = phi( main/copy::source#0 ) copy::destination#1 = phi( main/copy::destination#0 ) - copy::$2 = (word)copy::destination#1 - copy::$3 = (word)copy::source#1 + copy::$2 = (unsigned int)copy::destination#1 + copy::$3 = (unsigned int)copy::source#1 copy::$0 = copy::$2 > copy::$3 copy::$1 = ! copy::$0 if(copy::$1) goto copy::@return @@ -27,8 +27,8 @@ copy: scope:[copy] from main copy::@1: scope:[copy] from copy copy::destination#2 = phi( copy/copy::destination#1 ) copy::source#2 = phi( copy/copy::source#1 ) - copy::src#0 = ((byte*)) copy::source#2 - copy::dst#0 = ((byte*)) copy::destination#2 + copy::src#0 = ((char *)) copy::source#2 + copy::dst#0 = ((char *)) copy::destination#2 *copy::dst#0 = *copy::src#0 to:copy::@return copy::@return: scope:[copy] from copy copy::@1 @@ -41,7 +41,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -50,32 +50,32 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* A[] = "qwe" -constant byte* B = (byte*)$8000 +__constant char A[] = "qwe" +__constant char *B = (char *)$8000 void __start() -void copy(void* copy::destination , void* copy::source) -bool~ copy::$0 -bool~ copy::$1 -word~ copy::$2 -word~ copy::$3 -void* copy::destination -void* copy::destination#0 -void* copy::destination#1 -void* copy::destination#2 -byte* copy::dst -byte* copy::dst#0 -void* copy::source -void* copy::source#0 -void* copy::source#1 -void* copy::source#2 -byte* copy::src -byte* copy::src#0 +void copy(void *destination , void *source) +bool copy::$0 +bool copy::$1 +unsigned int copy::$2 +unsigned int copy::$3 +void *copy::destination +void *copy::destination#0 +void *copy::destination#1 +void *copy::destination#2 +char *copy::dst +char *copy::dst#0 +void *copy::source +void *copy::source#0 +void *copy::source#1 +void *copy::source#2 +char *copy::src +char *copy::src#0 void main() -Inlining cast copy::src#0 = (byte*)copy::source#2 -Inlining cast copy::dst#0 = (byte*)copy::destination#2 +Inlining cast copy::src#0 = (char *)copy::source#2 +Inlining cast copy::dst#0 = (char *)copy::destination#2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Successful SSA optimization PassNCastSimplification Inversing boolean not [8] copy::$1 = copy::$2 <= copy::$3 from [7] copy::$0 = copy::$2 > copy::$3 Successful SSA optimization Pass2UnaryNotSimplification @@ -87,15 +87,15 @@ Identical Phi Values copy::source#1 copy::source#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition copy::$1 [8] if(copy::$2<=copy::$3) goto copy::@return Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [0] copy::destination#0 = (void*)B +Constant right-side identified [0] copy::destination#0 = (void *)B Successful SSA optimization Pass2ConstantRValueConsolidation -Constant copy::destination#0 = (void*)B -Constant copy::source#0 = (void*)A +Constant copy::destination#0 = (void *)B +Constant copy::source#0 = (void *)A Successful SSA optimization Pass2ConstantIdentification -Constant copy::$2 = (word)copy::destination#0 -Constant copy::$3 = (word)copy::source#0 -Constant copy::src#0 = (byte*)copy::source#0 -Constant copy::dst#0 = (byte*)copy::destination#0 +Constant copy::$2 = (unsigned int)copy::destination#0 +Constant copy::$3 = (unsigned int)copy::source#0 +Constant copy::src#0 = (char *)copy::source#0 +Constant copy::dst#0 = (char *)copy::destination#0 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -104,8 +104,8 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined copy::$2 = (word)copy::destination#0 -Constant inlined copy::$3 = (word)copy::source#0 +Constant inlined copy::$2 = (unsigned int)copy::destination#0 +Constant inlined copy::$3 = (unsigned int)copy::source#0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -122,15 +122,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call copy + [1] call copy to:main::@return main::@return: scope:[main] from main [2] return to:@return -void copy(void* copy::destination , void* copy::source) +void copy(void *destination , void *source) copy: scope:[copy] from main - [3] if((word)copy::destination#0<=(word)copy::source#0) goto copy::@return + [3] if((unsigned int)copy::destination#0<=(unsigned int)copy::source#0) goto copy::@return to:copy::@1 copy::@1: scope:[copy] from copy [4] *copy::dst#0 = *copy::src#0 @@ -141,17 +141,17 @@ copy::@return: scope:[copy] from copy copy::@1 VARIABLE REGISTER WEIGHTS -void copy(void* copy::destination , void* copy::source) -void* copy::destination -byte* copy::dst -void* copy::source -byte* copy::src +void copy(void *destination , void *source) +void *copy::destination +char *copy::dst +void *copy::source +char *copy::src void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [3] if((word)copy::destination#0<=(word)copy::source#0) goto copy::@return [ ] ( copy:1 [ ] { } ) always clobbers reg byte a +Statement [3] if((unsigned int)copy::destination#0<=(unsigned int)copy::source#0) goto copy::@return [ ] ( copy:1 [ ] { } ) always clobbers reg byte a Statement [4] *copy::dst#0 = *copy::src#0 [ ] ( copy:1 [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES @@ -180,7 +180,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call copy + // [1] call copy jsr copy jmp __breturn // main::@return @@ -190,12 +190,13 @@ main: { } // copy // Copy a byte if the destination is after the source +// void copy(void *destination, void *source) copy: { .label destination = B .label source = A .label src = source .label dst = destination - // [3] if((word)copy::destination#0<=(word)copy::source#0) goto copy::@return -- vwuc1_le_vwuc2_then_la1 + // [3] if((unsigned int)copy::destination#0<=(unsigned int)copy::source#0) goto copy::@return -- vwuc1_le_vwuc2_then_la1 lda #>destination cmp #>source bne !+ @@ -231,17 +232,17 @@ Removing instruction __b1: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* A[] = "qwe" -constant byte* B = (byte*) 32768 -void copy(void* copy::destination , void* copy::source) -void* copy::destination -constant void* copy::destination#0 destination = (void*)B -byte* copy::dst -constant byte* copy::dst#0 dst = (byte*)copy::destination#0 -void* copy::source -constant void* copy::source#0 source = (void*)A -byte* copy::src -constant byte* copy::src#0 src = (byte*)copy::source#0 +__constant char A[] = "qwe" +__constant char *B = (char *) 32768 +void copy(void *destination , void *source) +void *copy::destination +__constant void *copy::destination#0 = (void *)B // destination +char *copy::dst +__constant char *copy::dst#0 = (char *)copy::destination#0 // dst +void *copy::source +__constant void *copy::source#0 = (void *)A // source +char *copy::src +__constant char *copy::src#0 = (char *)copy::source#0 // src void main() @@ -266,7 +267,7 @@ Score: 41 // main main: { // copy(B, A) - // [1] call copy + // [1] call copy jsr copy // main::@return // } @@ -275,13 +276,14 @@ main: { } // copy // Copy a byte if the destination is after the source +// void copy(void *destination, void *source) copy: { .label destination = B .label source = A .label src = source .label dst = destination // if((unsigned int)destination>(unsigned int)source) - // [3] if((word)copy::destination#0<=(word)copy::source#0) goto copy::@return -- vwuc1_le_vwuc2_then_la1 + // [3] if((unsigned int)copy::destination#0<=(unsigned int)copy::source#0) goto copy::@return -- vwuc1_le_vwuc2_then_la1 lda #>destination cmp #>source bne !+ diff --git a/src/test/ref/constref-not-literal-problem.sym b/src/test/ref/constref-not-literal-problem.sym index eb63b0520..a2f96f3b2 100644 --- a/src/test/ref/constref-not-literal-problem.sym +++ b/src/test/ref/constref-not-literal-problem.sym @@ -1,13 +1,13 @@ -constant byte* A[] = "qwe" -constant byte* B = (byte*) 32768 -void copy(void* copy::destination , void* copy::source) -void* copy::destination -constant void* copy::destination#0 destination = (void*)B -byte* copy::dst -constant byte* copy::dst#0 dst = (byte*)copy::destination#0 -void* copy::source -constant void* copy::source#0 source = (void*)A -byte* copy::src -constant byte* copy::src#0 src = (byte*)copy::source#0 +__constant char A[] = "qwe" +__constant char *B = (char *) 32768 +void copy(void *destination , void *source) +void *copy::destination +__constant void *copy::destination#0 = (void *)B // destination +char *copy::dst +__constant char *copy::dst#0 = (char *)copy::destination#0 // dst +void *copy::source +__constant void *copy::source#0 = (void *)A // source +char *copy::src +__constant char *copy::src#0 = (char *)copy::source#0 // src void main() diff --git a/src/test/ref/cordic-atan2-16.asm b/src/test/ref/cordic-atan2-16.asm index 731932a27..5a747c228 100644 --- a/src/test/ref/cordic-atan2-16.asm +++ b/src/test/ref/cordic-atan2-16.asm @@ -88,7 +88,7 @@ main: { jmp __b4 } // Make charset from proto chars -// init_font_hex(byte* zp($b) charset) +// void init_font_hex(__zp($b) char *charset) init_font_hex: { .label __0 = $17 .label idx = 8 @@ -196,7 +196,7 @@ init_font_hex: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_16 // Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI) -// atan2_16(signed word zp($13) x, signed word zp($15) y) +// __zp($d) unsigned int atan2_16(__zp($13) int x, __zp($15) int y) atan2_16: { .label __2 = 9 .label __7 = $b diff --git a/src/test/ref/cordic-atan2-16.cfg b/src/test/ref/cordic-atan2-16.cfg index a7db30fd9..e88ac28f3 100644 --- a/src/test/ref/cordic-atan2-16.cfg +++ b/src/test/ref/cordic-atan2-16.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call init_font_hex + [1] call init_font_hex to:main::toD0181 main::toD0181: scope:[main] from main [2] phi() @@ -17,11 +17,11 @@ main::@1: scope:[main] from main::@3 main::@5 main::@2: scope:[main] from main::@1 main::@6 [5] main::screen#2 = phi( main::@1/main::screen#4, main::@6/main::screen#1 ) [5] main::x#2 = phi( main::@1/-$13, main::@6/main::x#1 ) - [6] main::xw#0 = (byte)main::x#2 w= 0 - [7] main::yw#0 = (byte)main::y#4 w= 0 - [8] atan2_16::x#0 = (signed word)main::xw#0 - [9] atan2_16::y#0 = (signed word)main::yw#0 - [10] call atan2_16 + [6] main::xw#0 = (char)main::x#2 w= 0 + [7] main::yw#0 = (char)main::y#4 w= 0 + [8] atan2_16::x#0 = (int)main::xw#0 + [9] atan2_16::y#0 = (int)main::yw#0 + [10] call atan2_16 [11] atan2_16::return#2 = atan2_16::return#0 to:main::@6 main::@6: scope:[main] from main::@2 @@ -41,7 +41,7 @@ main::@4: scope:[main] from main::@3 main::@4 [21] *main::col00 = ++ *main::col00 to:main::@4 -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main [22] phi() to:init_font_hex::@1 @@ -85,7 +85,7 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 [44] return to:@return -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) +unsigned int atan2_16(int x , int y) atan2_16: scope:[atan2_16] from main::@2 [45] if(atan2_16::y#0>=0) goto atan2_16::@1 to:atan2_16::@2 diff --git a/src/test/ref/cordic-atan2-16.log b/src/test/ref/cordic-atan2-16.log index d0520a909..f3effc9df 100644 --- a/src/test/ref/cordic-atan2-16.log +++ b/src/test/ref/cordic-atan2-16.log @@ -7,7 +7,7 @@ Eliminating unused variable with no statement main::$6 CONTROL FLOW GRAPH SSA -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main init_font_hex::charset#6 = phi( main/init_font_hex::charset#1 ) init_font_hex::proto_hi#0 = FONT_HEX_PROTO @@ -78,7 +78,7 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 return to:@return -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) +unsigned int atan2_16(int x , int y) atan2_16: scope:[atan2_16] from main::@2 atan2_16::x#9 = phi( main::@2/atan2_16::x#0 ) atan2_16::y#1 = phi( main::@2/atan2_16::y#0 ) @@ -233,7 +233,7 @@ atan2_16::@18: scope:[atan2_16] from atan2_16::@17 atan2_16::xi#4 = phi( atan2_16::@17/atan2_16::xi#7 ) atan2_16::xi#1 = atan2_16::xi#4 + atan2_16::yd#5 atan2_16::yi#1 = atan2_16::yi#6 - atan2_16::xd#5 - atan2_16::$22 = atan2_16::i#3 * SIZEOF_WORD + atan2_16::$22 = atan2_16::i#3 * SIZEOF_UNSIGNED_INT atan2_16::angle#2 = atan2_16::angle#7 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22] to:atan2_16::@19 atan2_16::@20: scope:[atan2_16] from atan2_16::@17 @@ -247,7 +247,7 @@ atan2_16::@20: scope:[atan2_16] from atan2_16::@17 atan2_16::xi#5 = phi( atan2_16::@17/atan2_16::xi#7 ) atan2_16::xi#2 = atan2_16::xi#5 - atan2_16::yd#6 atan2_16::yi#2 = atan2_16::yi#7 + atan2_16::xd#6 - atan2_16::$23 = atan2_16::i#4 * SIZEOF_WORD + atan2_16::$23 = atan2_16::i#4 * SIZEOF_UNSIGNED_INT atan2_16::angle#3 = atan2_16::angle#8 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23] to:atan2_16::@19 atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20 @@ -292,7 +292,7 @@ atan2_16::@return: scope:[atan2_16] from atan2_16::@8 void main() main: scope:[main] from __start init_font_hex::charset#1 = CHARSET - call init_font_hex + call init_font_hex to:main::@7 main::@7: scope:[main] from main main::toD0181_screen#0 = SCREEN @@ -301,11 +301,11 @@ main::@7: scope:[main] from main main::toD0181: scope:[main] from main::@7 main::toD0181_gfx#1 = phi( main::@7/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@7/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -331,15 +331,15 @@ main::@2: scope:[main] from main::@1 main::@8 main::screen#3 = phi( main::@1/main::screen#4, main::@8/main::screen#1 ) main::y#2 = phi( main::@1/main::y#4, main::@8/main::y#5 ) main::x#2 = phi( main::@1/main::x#0, main::@8/main::x#1 ) - main::$10 = (byte)main::x#2 + main::$10 = (char)main::x#2 main::$2 = main::$10 w= 0 - main::xw#0 = (signed word)main::$2 - main::$11 = (byte)main::y#2 + main::xw#0 = (int)main::$2 + main::$11 = (char)main::y#2 main::$3 = main::$11 w= 0 - main::yw#0 = (signed word)main::$3 + main::yw#0 = (int)main::$3 atan2_16::x#0 = main::xw#0 atan2_16::y#0 = main::yw#0 - call atan2_16 + call atan2_16 atan2_16::return#2 = atan2_16::return#1 to:main::@8 main::@8: scope:[main] from main::@2 @@ -375,7 +375,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -384,297 +384,297 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHARSET = (byte*)$2000 -constant byte* const COLS = (byte*)$d800 -constant word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i= 0 from [67] atan2_16::$10 = atan2_16::x#4 < 0 Inversing boolean not [79] atan2_16::$19 = 0 == atan2_16::shift#4 from [78] atan2_16::$24 = 0 != atan2_16::shift#4 @@ -922,9 +922,9 @@ Constant main::screen#0 = SCREEN Constant main::y#0 = -$c Constant main::x#0 = -$13 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [92] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [92] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [123] if(true) goto main::@5 Successful SSA optimization Pass2ConstantIfs @@ -967,20 +967,20 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $15 Simplifying constant integer cast $d Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) $15 -Finalized signed number type (signed byte) $d +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) $15 +Finalized signed number type (signed char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [3] init_font_hex::idx#1 = ++ init_font_hex::idx#0 Constant right-side identified [62] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [65] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [65] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant init_font_hex::idx#1 = ++init_font_hex::idx#0 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [61] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [63] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -998,15 +998,15 @@ Constant right-side identified [61] main::toD0181_return#0 = main::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [64] main::$10 = (byte)main::x#2 keeping main::x#2 -Inlining Noop Cast [67] main::$11 = (byte)main::y#4 keeping main::y#4 +Inlining Noop Cast [64] main::$10 = (char)main::x#2 keeping main::x#2 +Inlining Noop Cast [67] main::$11 = (char)main::y#4 keeping main::y#4 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [66] main::xw#0 = (signed word)main::$2 keeping main::xw#0 -Inlining Noop Cast [69] main::yw#0 = (signed word)main::$3 keeping main::yw#0 +Inlining Noop Cast [66] main::xw#0 = (int)main::$2 keeping main::xw#0 +Inlining Noop Cast [69] main::yw#0 = (int)main::$3 keeping main::yw#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [31] atan2_16::angle#1 = atan2_16::angle#6 / 2 -Rewriting multiplication to use shift [45] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [49] atan2_16::$23 = atan2_16::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [45] atan2_16::$22 = atan2_16::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [49] atan2_16::$23 = atan2_16::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings init_font_hex::proto_hi#0 Inlining constant with var siblings init_font_hex::c#0 @@ -1024,19 +1024,19 @@ Inlining constant with var siblings main::x#0 Constant inlined main::screen#0 = SCREEN Constant inlined main::toD0181_screen#0 = SCREEN Constant inlined main::toD0181_gfx#0 = CHARSET -Constant inlined main::toD0181_$7 = (word)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN Constant inlined init_font_hex::proto_hi#0 = FONT_HEX_PROTO -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 Constant inlined atan2_16::i#0 = 0 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined main::x#0 = -$13 Constant inlined main::y#0 = -$c Constant inlined init_font_hex::i#0 = 0 Constant inlined atan2_16::angle#0 = 0 -Constant inlined main::toD0181_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)CHARSET/4 -Constant inlined main::toD0181_$3 = byte1 (word)CHARSET +Constant inlined main::toD0181_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)CHARSET Constant inlined init_font_hex::charset#1 = CHARSET Constant inlined init_font_hex::idx#1 = ++0 Constant inlined init_font_hex::idx#0 = 0 @@ -1046,10 +1046,10 @@ Constant inlined init_font_hex::c1#0 = 0 Successful SSA optimization Pass2ConstantInlining Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting init_font_hex::@6(between init_font_hex::@5 and init_font_hex::@1) Added new block during phi lifting init_font_hex::@7(between init_font_hex::@4 and init_font_hex::@2) @@ -1145,7 +1145,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init_font_hex + [1] call init_font_hex to:main::toD0181 main::toD0181: scope:[main] from main [2] phi() @@ -1160,11 +1160,11 @@ main::@1: scope:[main] from main::@3 main::@5 main::@2: scope:[main] from main::@1 main::@6 [5] main::screen#2 = phi( main::@1/main::screen#4, main::@6/main::screen#1 ) [5] main::x#2 = phi( main::@1/-$13, main::@6/main::x#1 ) - [6] main::xw#0 = (byte)main::x#2 w= 0 - [7] main::yw#0 = (byte)main::y#4 w= 0 - [8] atan2_16::x#0 = (signed word)main::xw#0 - [9] atan2_16::y#0 = (signed word)main::yw#0 - [10] call atan2_16 + [6] main::xw#0 = (char)main::x#2 w= 0 + [7] main::yw#0 = (char)main::y#4 w= 0 + [8] atan2_16::x#0 = (int)main::xw#0 + [9] atan2_16::y#0 = (int)main::yw#0 + [10] call atan2_16 [11] atan2_16::return#2 = atan2_16::return#0 to:main::@6 main::@6: scope:[main] from main::@2 @@ -1184,7 +1184,7 @@ main::@4: scope:[main] from main::@3 main::@4 [21] *main::col00 = ++ *main::col00 to:main::@4 -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main [22] phi() to:init_font_hex::@1 @@ -1228,7 +1228,7 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 [44] return to:@return -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) +unsigned int atan2_16(int x , int y) atan2_16: scope:[atan2_16] from main::@2 [45] if(atan2_16::y#0>=0) goto atan2_16::@1 to:atan2_16::@2 @@ -1329,111 +1329,111 @@ atan2_16::@1: scope:[atan2_16] from atan2_16 VARIABLE REGISTER WEIGHTS -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) -signed word~ atan2_16::$2 2002.0 -byte~ atan2_16::$22 2000002.0 -byte~ atan2_16::$23 2000002.0 -signed word~ atan2_16::$7 2002.0 -word atan2_16::angle -word atan2_16::angle#1 1501.5 -word atan2_16::angle#11 2002.0 -word atan2_16::angle#12 190476.38095238095 -word atan2_16::angle#13 1333334.6666666667 -word atan2_16::angle#2 2000002.0 -word atan2_16::angle#3 2000002.0 -word atan2_16::angle#4 2002.0 -word atan2_16::angle#5 2002.0 -word atan2_16::angle#6 2001003.0 -byte atan2_16::i -byte atan2_16::i#1 1500001.5 -byte atan2_16::i#2 208333.5416666667 -word atan2_16::return -word atan2_16::return#0 701.0 -word atan2_16::return#2 202.0 -byte atan2_16::shift -byte atan2_16::shift#1 2.0000002E7 -byte atan2_16::shift#2 8000001.25 -byte atan2_16::shift#5 666667.3333333334 -signed word atan2_16::x -signed word atan2_16::x#0 108.02631578947367 -signed word atan2_16::xd -signed word atan2_16::xd#1 6666667.333333333 -signed word atan2_16::xd#10 1000001.0 -signed word atan2_16::xd#2 1000001.0 -signed word atan2_16::xd#3 7666668.333333332 -signed word atan2_16::xd#5 1000001.0 -signed word atan2_16::xi -signed word atan2_16::xi#0 3003.0 -signed word atan2_16::xi#1 500000.5 -signed word atan2_16::xi#13 2002.0 -signed word atan2_16::xi#2 500000.5 -signed word atan2_16::xi#3 266733.6666666667 -signed word atan2_16::xi#8 1000001.0 -signed word atan2_16::y -signed word atan2_16::y#0 102.625 -signed word atan2_16::yd -signed word atan2_16::yd#1 1.0000001E7 -signed word atan2_16::yd#10 2000002.0 -signed word atan2_16::yd#2 2000002.0 -signed word atan2_16::yd#3 4600001.0 -signed word atan2_16::yd#5 2000002.0 -signed word atan2_16::yi -signed word atan2_16::yi#0 600.5999999999999 -signed word atan2_16::yi#1 666667.3333333334 -signed word atan2_16::yi#16 2002.0 -signed word atan2_16::yi#2 666667.3333333334 -signed word atan2_16::yi#3 353000.41176470584 -signed word atan2_16::yi#8 1000001.0 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 10001.0 -byte~ init_font_hex::$1 20002.0 -byte~ init_font_hex::$2 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 151.5 -byte init_font_hex::c#6 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 1501.5 -byte init_font_hex::c1#4 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 350.5 -byte* init_font_hex::charset#2 1079.0714285714287 -byte* init_font_hex::charset#5 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 15001.5 -byte init_font_hex::i#2 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 5501.0 -byte init_font_hex::idx#3 2002.0 -byte init_font_hex::idx#5 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 67.33333333333333 -byte* init_font_hex::proto_hi#6 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 500.5 -byte* init_font_hex::proto_lo#4 923.3076923076923 +unsigned int atan2_16(int x , int y) +int atan2_16::$2 // 2002.0 +char atan2_16::$22 // 2000002.0 +char atan2_16::$23 // 2000002.0 +int atan2_16::$7 // 2002.0 +unsigned int atan2_16::angle +unsigned int atan2_16::angle#1 // 1501.5 +unsigned int atan2_16::angle#11 // 2002.0 +unsigned int atan2_16::angle#12 // 190476.38095238095 +unsigned int atan2_16::angle#13 // 1333334.6666666667 +unsigned int atan2_16::angle#2 // 2000002.0 +unsigned int atan2_16::angle#3 // 2000002.0 +unsigned int atan2_16::angle#4 // 2002.0 +unsigned int atan2_16::angle#5 // 2002.0 +unsigned int atan2_16::angle#6 // 2001003.0 +char atan2_16::i +char atan2_16::i#1 // 1500001.5 +char atan2_16::i#2 // 208333.5416666667 +unsigned int atan2_16::return +unsigned int atan2_16::return#0 // 701.0 +unsigned int atan2_16::return#2 // 202.0 +char atan2_16::shift +char atan2_16::shift#1 // 2.0000002E7 +char atan2_16::shift#2 // 8000001.25 +char atan2_16::shift#5 // 666667.3333333334 +int atan2_16::x +int atan2_16::x#0 // 108.02631578947367 +int atan2_16::xd +int atan2_16::xd#1 // 6666667.333333333 +int atan2_16::xd#10 // 1000001.0 +int atan2_16::xd#2 // 1000001.0 +int atan2_16::xd#3 // 7666668.333333332 +int atan2_16::xd#5 // 1000001.0 +int atan2_16::xi +int atan2_16::xi#0 // 3003.0 +int atan2_16::xi#1 // 500000.5 +int atan2_16::xi#13 // 2002.0 +int atan2_16::xi#2 // 500000.5 +int atan2_16::xi#3 // 266733.6666666667 +int atan2_16::xi#8 // 1000001.0 +int atan2_16::y +int atan2_16::y#0 // 102.625 +int atan2_16::yd +int atan2_16::yd#1 // 1.0000001E7 +int atan2_16::yd#10 // 2000002.0 +int atan2_16::yd#2 // 2000002.0 +int atan2_16::yd#3 // 4600001.0 +int atan2_16::yd#5 // 2000002.0 +int atan2_16::yi +int atan2_16::yi#0 // 600.5999999999999 +int atan2_16::yi#1 // 666667.3333333334 +int atan2_16::yi#16 // 2002.0 +int atan2_16::yi#2 // 666667.3333333334 +int atan2_16::yi#3 // 353000.41176470584 +int atan2_16::yi#8 // 1000001.0 +void init_font_hex(char *charset) +char init_font_hex::$0 // 10001.0 +char init_font_hex::$1 // 20002.0 +char init_font_hex::$2 // 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // 151.5 +char init_font_hex::c#6 // 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // 1501.5 +char init_font_hex::c1#4 // 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // 350.5 +char *init_font_hex::charset#2 // 1079.0714285714287 +char *init_font_hex::charset#5 // 202.0 +char init_font_hex::i +char init_font_hex::i#1 // 15001.5 +char init_font_hex::i#2 // 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // 5501.0 +char init_font_hex::idx#3 // 2002.0 +char init_font_hex::idx#5 // 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // 67.33333333333333 +char *init_font_hex::proto_hi#6 // 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // 500.5 +char *init_font_hex::proto_lo#4 // 923.3076923076923 void main() -word~ main::$5 202.0 -byte main::ang_w -byte main::ang_w#0 202.0 -word main::angle_w -word main::angle_w#0 202.0 -byte* main::screen -byte* main::screen#1 42.599999999999994 -byte* main::screen#2 28.545454545454547 -byte* main::screen#4 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -signed byte main::x -signed byte main::x#1 151.5 -signed byte main::x#2 16.833333333333332 -signed word main::xw -word main::xw#0 50.5 -signed byte main::y -signed byte main::y#1 16.5 -signed byte main::y#4 1.4666666666666666 -signed word main::yw -word main::yw#0 50.5 +unsigned int main::$5 // 202.0 +char main::ang_w +char main::ang_w#0 // 202.0 +unsigned int main::angle_w +unsigned int main::angle_w#0 // 202.0 +char *main::screen +char *main::screen#1 // 42.599999999999994 +char *main::screen#2 // 28.545454545454547 +char *main::screen#4 // 22.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +signed char main::x +signed char main::x#1 // 151.5 +signed char main::x#2 // 16.833333333333332 +int main::xw +unsigned int main::xw#0 // 50.5 +signed char main::y +signed char main::y#1 // 16.5 +signed char main::y#4 // 1.4666666666666666 +int main::yw +unsigned int main::yw#0 // 50.5 Initial phi equivalence classes [ main::y#4 main::y#1 ] @@ -1535,10 +1535,10 @@ Allocated zp[1]:49 [ atan2_16::$23 ] Allocated zp[1]:50 [ atan2_16::$22 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [3] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] atan2_16::x#0 = (signed word)main::xw#0 [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [8] atan2_16::x#0 = (int)main::xw#0 [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::y#4 main::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::x#2 main::x#1 ] -Statement [9] atan2_16::y#0 = (signed word)main::yw#0 [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] ( [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [9] atan2_16::y#0 = (int)main::yw#0 [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] ( [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [11] atan2_16::return#2 = atan2_16::return#0 [ main::y#4 main::x#2 main::screen#2 atan2_16::return#2 ] ( [ main::y#4 main::x#2 main::screen#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [12] main::angle_w#0 = atan2_16::return#2 [ main::y#4 main::x#2 main::screen#2 main::angle_w#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::angle_w#0 ] { } ) always clobbers reg byte a Statement [13] main::$5 = main::angle_w#0 + $80 [ main::y#4 main::x#2 main::screen#2 main::$5 ] ( [ main::y#4 main::x#2 main::screen#2 main::$5 ] { } ) always clobbers reg byte a @@ -1590,10 +1590,10 @@ Statement [84] atan2_16::yd#1 = atan2_16::yd#3 >> 2 [ atan2_16::x#0 atan2_16::y# Statement [86] atan2_16::xi#13 = atan2_16::x#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::xi#13 ] ( atan2_16:10 [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#0 atan2_16::xi#13 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [87] atan2_16::yi#16 = atan2_16::y#0 [ atan2_16::x#0 atan2_16::y#0 atan2_16::yi#16 ] ( atan2_16:10 [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 atan2_16::yi#16 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [3] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] main::xw#0 = (byte)main::x#2 w= 0 [ main::y#4 main::x#2 main::screen#2 main::xw#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::xw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [7] main::yw#0 = (byte)main::y#4 w= 0 [ main::y#4 main::x#2 main::screen#2 main::xw#0 main::yw#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::xw#0 main::yw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [8] atan2_16::x#0 = (signed word)main::xw#0 [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [9] atan2_16::y#0 = (signed word)main::yw#0 [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] ( [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [6] main::xw#0 = (char)main::x#2 w= 0 [ main::y#4 main::x#2 main::screen#2 main::xw#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::xw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [7] main::yw#0 = (char)main::y#4 w= 0 [ main::y#4 main::x#2 main::screen#2 main::xw#0 main::yw#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::xw#0 main::yw#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [8] atan2_16::x#0 = (int)main::xw#0 [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [9] atan2_16::y#0 = (int)main::yw#0 [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] ( [ main::y#4 main::x#2 main::screen#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [11] atan2_16::return#2 = atan2_16::return#0 [ main::y#4 main::x#2 main::screen#2 atan2_16::return#2 ] ( [ main::y#4 main::x#2 main::screen#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [12] main::angle_w#0 = atan2_16::return#2 [ main::y#4 main::x#2 main::screen#2 main::angle_w#0 ] ( [ main::y#4 main::x#2 main::screen#2 main::angle_w#0 ] { } ) always clobbers reg byte a Statement [13] main::$5 = main::angle_w#0 + $80 [ main::y#4 main::x#2 main::screen#2 main::$5 ] ( [ main::y#4 main::x#2 main::screen#2 main::$5 ] { } ) always clobbers reg byte a @@ -1754,7 +1754,7 @@ main: { .label screen = 4 .label x = 3 .label y = 2 - // [1] call init_font_hex + // [1] call init_font_hex // [22] phi from main to init_font_hex [phi:main->init_font_hex] init_font_hex_from_main: jsr init_font_hex @@ -1801,19 +1801,19 @@ main: { jmp __b2 // main::@2 __b2: - // [6] main::xw#0 = (byte)main::x#2 w= 0 -- vwuz1=vbuz2_word_vbuc1 + // [6] main::xw#0 = (char)main::x#2 w= 0 -- vwuz1=vbuz2_word_vbuc1 lda #0 ldy.z x sty.z xw+1 sta.z xw - // [7] main::yw#0 = (byte)main::y#4 w= 0 -- vwuz1=vbuz2_word_vbuc1 + // [7] main::yw#0 = (char)main::y#4 w= 0 -- vwuz1=vbuz2_word_vbuc1 lda #0 ldy.z y sty.z yw+1 sta.z yw - // [8] atan2_16::x#0 = (signed word)main::xw#0 - // [9] atan2_16::y#0 = (signed word)main::yw#0 - // [10] call atan2_16 + // [8] atan2_16::x#0 = (int)main::xw#0 + // [9] atan2_16::y#0 = (int)main::yw#0 + // [10] call atan2_16 jsr atan2_16 // [11] atan2_16::return#2 = atan2_16::return#0 jmp __b6 @@ -1862,7 +1862,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp($b) charset) +// void init_font_hex(__zp($b) char *charset) init_font_hex: { .label __0 = $17 .label idx = 8 @@ -2022,7 +2022,7 @@ init_font_hex: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_16 // Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI) -// atan2_16(signed word zp($13) x, signed word zp($15) y) +// __zp($d) unsigned int atan2_16(__zp($13) int x, __zp($15) int y) atan2_16: { .label __2 = 9 .label __7 = $b @@ -2452,122 +2452,122 @@ Fixing long branch [183] bpl __b1 to bmi Fixing long branch [195] bpl __b4 to bmi FINAL SYMBOL TABLE -constant byte* const CHARSET = (byte*) 8192 -constant byte* const COLS = (byte*) 55296 -constant word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; iinit_font_hex] jsr init_font_hex // [2] phi from main to main::toD0181 [phi:main->main::toD0181] @@ -2667,20 +2667,20 @@ main: { // main::@2 __b2: // MAKEWORD( (byte)x, 0 ) - // [6] main::xw#0 = (byte)main::x#2 w= 0 -- vwuz1=vbuz2_word_vbuc1 + // [6] main::xw#0 = (char)main::x#2 w= 0 -- vwuz1=vbuz2_word_vbuc1 lda #0 ldy.z x sty.z xw+1 sta.z xw // MAKEWORD( (byte)y, 0 ) - // [7] main::yw#0 = (byte)main::y#4 w= 0 -- vwuz1=vbuz2_word_vbuc1 + // [7] main::yw#0 = (char)main::y#4 w= 0 -- vwuz1=vbuz2_word_vbuc1 ldy.z y sty.z yw+1 sta.z yw // word angle_w = atan2_16(xw, yw) - // [8] atan2_16::x#0 = (signed word)main::xw#0 - // [9] atan2_16::y#0 = (signed word)main::yw#0 - // [10] call atan2_16 + // [8] atan2_16::x#0 = (int)main::xw#0 + // [9] atan2_16::y#0 = (int)main::yw#0 + // [10] call atan2_16 jsr atan2_16 // [11] atan2_16::return#2 = atan2_16::return#0 // main::@6 @@ -2731,7 +2731,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp($b) charset) +// void init_font_hex(__zp($b) char *charset) init_font_hex: { .label __0 = $17 .label idx = 8 @@ -2887,7 +2887,7 @@ init_font_hex: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_16 // Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI) -// atan2_16(signed word zp($13) x, signed word zp($15) y) +// __zp($d) unsigned int atan2_16(__zp($13) int x, __zp($15) int y) atan2_16: { .label __2 = 9 .label __7 = $b diff --git a/src/test/ref/cordic-atan2-16.sym b/src/test/ref/cordic-atan2-16.sym index a3ebc28c6..a236bd60c 100644 --- a/src/test/ref/cordic-atan2-16.sym +++ b/src/test/ref/cordic-atan2-16.sym @@ -1,119 +1,119 @@ -constant byte* const CHARSET = (byte*) 8192 -constant byte* const COLS = (byte*) 55296 -constant word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i=0) goto atan2_16::@1 to:atan2_16::@2 diff --git a/src/test/ref/cordic-atan2-clear.log b/src/test/ref/cordic-atan2-clear.log index 06079c813..1b30d6090 100644 --- a/src/test/ref/cordic-atan2-clear.log +++ b/src/test/ref/cordic-atan2-clear.log @@ -9,7 +9,7 @@ Eliminating unused variable with no statement init_angle_screen::$10 CONTROL FLOW GRAPH SSA -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main init_font_hex::charset#6 = phi( main/init_font_hex::charset#1 ) init_font_hex::proto_hi#0 = FONT_HEX_PROTO @@ -80,7 +80,7 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 return to:@return -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) +unsigned int atan2_16(int x , int y) atan2_16: scope:[atan2_16] from init_angle_screen::@3 atan2_16::x#9 = phi( init_angle_screen::@3/atan2_16::x#0 ) atan2_16::y#1 = phi( init_angle_screen::@3/atan2_16::y#0 ) @@ -235,7 +235,7 @@ atan2_16::@18: scope:[atan2_16] from atan2_16::@17 atan2_16::xi#4 = phi( atan2_16::@17/atan2_16::xi#7 ) atan2_16::xi#1 = atan2_16::xi#4 + atan2_16::yd#5 atan2_16::yi#1 = atan2_16::yi#6 - atan2_16::xd#5 - atan2_16::$22 = atan2_16::i#3 * SIZEOF_WORD + atan2_16::$22 = atan2_16::i#3 * SIZEOF_UNSIGNED_INT atan2_16::angle#2 = atan2_16::angle#7 + CORDIC_ATAN2_ANGLES_16[atan2_16::$22] to:atan2_16::@19 atan2_16::@20: scope:[atan2_16] from atan2_16::@17 @@ -249,7 +249,7 @@ atan2_16::@20: scope:[atan2_16] from atan2_16::@17 atan2_16::xi#5 = phi( atan2_16::@17/atan2_16::xi#7 ) atan2_16::xi#2 = atan2_16::xi#5 - atan2_16::yd#6 atan2_16::yi#2 = atan2_16::yi#7 + atan2_16::xd#6 - atan2_16::$23 = atan2_16::i#4 * SIZEOF_WORD + atan2_16::$23 = atan2_16::i#4 * SIZEOF_UNSIGNED_INT atan2_16::angle#3 = atan2_16::angle#8 - CORDIC_ATAN2_ANGLES_16[atan2_16::$23] to:atan2_16::@19 atan2_16::@19: scope:[atan2_16] from atan2_16::@18 atan2_16::@20 @@ -294,7 +294,7 @@ atan2_16::@return: scope:[atan2_16] from atan2_16::@8 void main() main: scope:[main] from __start init_font_hex::charset#1 = CHARSET - call init_font_hex + call init_font_hex to:main::@6 main::@6: scope:[main] from main main::toD0181_screen#0 = SCREEN @@ -303,11 +303,11 @@ main::@6: scope:[main] from main main::toD0181: scope:[main] from main::@6 main::toD0181_gfx#1 = phi( main::@6/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@6/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -322,7 +322,7 @@ main::@5: scope:[main] from main::toD0181_@return main::$1 = main::toD0181_return#3 *D018 = main::$1 init_angle_screen::screen#0 = SCREEN - call init_angle_screen + call init_angle_screen to:main::@7 main::@7: scope:[main] from main::@5 main::clear_char#0 = CHARSET @@ -351,7 +351,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void init_angle_screen(byte* init_angle_screen::screen) +void init_angle_screen(char *screen) init_angle_screen: scope:[init_angle_screen] from main::@5 init_angle_screen::screen#1 = phi( main::@5/init_angle_screen::screen#0 ) init_angle_screen::screen_topline#0 = init_angle_screen::screen#1 + $28*$c @@ -383,13 +383,13 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2 init_angle_screen::$3 = init_angle_screen::x#3 * 2 init_angle_screen::$4 = $27 - init_angle_screen::$3 init_angle_screen::$5 = init_angle_screen::$4 w= 0 - init_angle_screen::xw#0 = (signed word)init_angle_screen::$5 + init_angle_screen::xw#0 = (int)init_angle_screen::$5 init_angle_screen::$6 = init_angle_screen::y#2 * 2 init_angle_screen::$7 = init_angle_screen::$6 w= 0 - init_angle_screen::yw#0 = (signed word)init_angle_screen::$7 + init_angle_screen::yw#0 = (int)init_angle_screen::$7 atan2_16::x#0 = init_angle_screen::xw#0 atan2_16::y#0 = init_angle_screen::yw#0 - call atan2_16 + call atan2_16 atan2_16::return#2 = atan2_16::return#1 to:init_angle_screen::@5 init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3 @@ -428,7 +428,7 @@ init_angle_screen::@return: scope:[init_angle_screen] from init_angle_screen::@ void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -437,331 +437,331 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHARSET = (byte*)$2000 -constant word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i= 0 from [67] atan2_16::$10 = atan2_16::x#4 < 0 Inversing boolean not [79] atan2_16::$19 = 0 == atan2_16::shift#4 from [78] atan2_16::$24 = 0 != atan2_16::shift#4 @@ -1026,7 +1026,7 @@ Identical Phi Values atan2_16::y#19 atan2_16::y#0 Identical Phi Values atan2_16::x#4 atan2_16::x#17 Identical Phi Values atan2_16::y#4 atan2_16::y#19 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [153] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c +Identified duplicate assignment right side [153] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (unsigned int)$28*$c Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition init_font_hex::$3 [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 Simple Condition init_font_hex::$4 [28] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 @@ -1064,9 +1064,9 @@ Constant init_angle_screen::y#0 = 0 Constant init_angle_screen::x#0 = 0 Constant init_angle_screen::xb#0 = $27 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [92] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [92] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [101] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -1110,24 +1110,24 @@ Simplifying constant integer cast $13+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast $d Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $d +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Alias init_angle_screen::screen_bottomline#0 = init_angle_screen::screen_topline#0 Successful SSA optimization Pass2AliasElimination Constant right-side identified [3] init_font_hex::idx#1 = ++ init_font_hex::idx#0 Constant right-side identified [62] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [65] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 -Constant right-side identified [76] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (word)$28*$c +Constant right-side identified [65] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 +Constant right-side identified [76] init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0 + (unsigned int)$28*$c Successful SSA optimization Pass2ConstantRValueConsolidation Constant init_font_hex::idx#1 = ++init_font_hex::idx#0 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 -Constant init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0+(word)$28*$c +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 +Constant init_angle_screen::screen_bottomline#0 = init_angle_screen::screen#0+(unsigned int)$28*$c Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [61] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [63] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -1145,12 +1145,12 @@ Constant right-side identified [61] main::toD0181_return#0 = main::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [74] init_angle_screen::xw#0 = (signed word)init_angle_screen::$5 keeping init_angle_screen::xw#0 -Inlining Noop Cast [77] init_angle_screen::yw#0 = (signed word)init_angle_screen::$7 keeping init_angle_screen::yw#0 +Inlining Noop Cast [74] init_angle_screen::xw#0 = (int)init_angle_screen::$5 keeping init_angle_screen::xw#0 +Inlining Noop Cast [77] init_angle_screen::yw#0 = (int)init_angle_screen::$7 keeping init_angle_screen::yw#0 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [31] atan2_16::angle#1 = atan2_16::angle#6 / 2 -Rewriting multiplication to use shift [45] atan2_16::$22 = atan2_16::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [49] atan2_16::$23 = atan2_16::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [45] atan2_16::$22 = atan2_16::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [49] atan2_16::$23 = atan2_16::i#2 * SIZEOF_UNSIGNED_INT Rewriting multiplication to use shift [71] init_angle_screen::$3 = init_angle_screen::x#2 * 2 Rewriting multiplication to use shift [75] init_angle_screen::$6 = init_angle_screen::y#5 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -1176,20 +1176,20 @@ Constant inlined init_font_hex::proto_hi#0 = FONT_HEX_PROTO Constant inlined init_angle_screen::y#0 = 0 Constant inlined init_angle_screen::x#0 = 0 Constant inlined atan2_16::angle#0 = 0 -Constant inlined init_angle_screen::screen_bottomline#0 = SCREEN+(word)$28*$c +Constant inlined init_angle_screen::screen_bottomline#0 = SCREEN+(unsigned int)$28*$c Constant inlined init_font_hex::charset#1 = CHARSET Constant inlined init_angle_screen::screen#0 = SCREEN Constant inlined init_font_hex::c1#0 = 0 -Constant inlined main::toD0181_$7 = (word)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN Constant inlined init_angle_screen::xb#0 = $27 -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 Constant inlined atan2_16::i#0 = 0 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined init_font_hex::i#0 = 0 -Constant inlined main::toD0181_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)CHARSET/4 -Constant inlined main::toD0181_$3 = byte1 (word)CHARSET +Constant inlined main::toD0181_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)CHARSET Constant inlined init_font_hex::idx#1 = ++0 Constant inlined init_font_hex::idx#0 = 0 Constant inlined init_font_hex::proto_lo#0 = FONT_HEX_PROTO @@ -1197,10 +1197,10 @@ Constant inlined init_font_hex::c#0 = 0 Successful SSA optimization Pass2ConstantInlining Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting init_font_hex::@6(between init_font_hex::@5 and init_font_hex::@1) Added new block during phi lifting init_font_hex::@7(between init_font_hex::@4 and init_font_hex::@2) @@ -1298,14 +1298,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init_font_hex + [1] call init_font_hex to:main::toD0181 main::toD0181: scope:[main] from main [2] phi() to:main::@5 main::@5: scope:[main] from main::toD0181 [3] *D018 = main::toD0181_return#0 - [4] call init_angle_screen + [4] call init_angle_screen to:main::@1 main::@1: scope:[main] from main::@3 main::@4 main::@5 [5] main::clear_char#5 = phi( main::@3/main::clear_char#5, main::@4/main::clear_char#1, main::@5/CHARSET ) @@ -1321,7 +1321,7 @@ main::@4: scope:[main] from main::@3 [9] main::clear_char#1 = ++ main::clear_char#5 to:main::@1 -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main [10] phi() to:init_font_hex::@1 @@ -1365,13 +1365,13 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 [32] return to:@return -void init_angle_screen(byte* init_angle_screen::screen) +void init_angle_screen(char *screen) init_angle_screen: scope:[init_angle_screen] from main::@5 [33] phi() to:init_angle_screen::@1 init_angle_screen::@1: scope:[init_angle_screen] from init_angle_screen init_angle_screen::@4 - [34] init_angle_screen::screen_bottomline#6 = phi( init_angle_screen/SCREEN+(word)$28*$c, init_angle_screen::@4/init_angle_screen::screen_bottomline#1 ) - [34] init_angle_screen::screen_topline#6 = phi( init_angle_screen/SCREEN+(word)$28*$c, init_angle_screen::@4/init_angle_screen::screen_topline#1 ) + [34] init_angle_screen::screen_bottomline#6 = phi( init_angle_screen/SCREEN+(unsigned int)$28*$c, init_angle_screen::@4/init_angle_screen::screen_bottomline#1 ) + [34] init_angle_screen::screen_topline#6 = phi( init_angle_screen/SCREEN+(unsigned int)$28*$c, init_angle_screen::@4/init_angle_screen::screen_topline#1 ) [34] init_angle_screen::y#5 = phi( init_angle_screen/0, init_angle_screen::@4/init_angle_screen::y#1 ) to:init_angle_screen::@2 init_angle_screen::@2: scope:[init_angle_screen] from init_angle_screen::@1 init_angle_screen::@5 @@ -1394,9 +1394,9 @@ init_angle_screen::@3: scope:[init_angle_screen] from init_angle_screen::@2 [44] init_angle_screen::xw#0 = init_angle_screen::$4 w= 0 [45] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [46] init_angle_screen::yw#0 = init_angle_screen::$6 w= 0 - [47] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 - [48] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 - [49] call atan2_16 + [47] atan2_16::x#0 = (int)init_angle_screen::xw#0 + [48] atan2_16::y#0 = (int)init_angle_screen::yw#0 + [49] call atan2_16 [50] atan2_16::return#2 = atan2_16::return#0 to:init_angle_screen::@5 init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3 @@ -1414,7 +1414,7 @@ init_angle_screen::@5: scope:[init_angle_screen] from init_angle_screen::@3 [62] init_angle_screen::xb#1 = -- init_angle_screen::xb#2 to:init_angle_screen::@2 -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) +unsigned int atan2_16(int x , int y) atan2_16: scope:[atan2_16] from init_angle_screen::@3 [63] if(atan2_16::y#0>=0) goto atan2_16::@1 to:atan2_16::@2 @@ -1515,127 +1515,127 @@ atan2_16::@1: scope:[atan2_16] from atan2_16 VARIABLE REGISTER WEIGHTS -word atan2_16(signed word atan2_16::x , signed word atan2_16::y) -signed word~ atan2_16::$2 20002.0 -byte~ atan2_16::$22 2.0000002E7 -byte~ atan2_16::$23 2.0000002E7 -signed word~ atan2_16::$7 20002.0 -word atan2_16::angle -word atan2_16::angle#1 15001.5 -word atan2_16::angle#11 20002.0 -word atan2_16::angle#12 1904762.0952380951 -word atan2_16::angle#13 1.3333334666666666E7 -word atan2_16::angle#2 2.0000002E7 -word atan2_16::angle#3 2.0000002E7 -word atan2_16::angle#4 20002.0 -word atan2_16::angle#5 20002.0 -word atan2_16::angle#6 2.0010003E7 -byte atan2_16::i -byte atan2_16::i#1 1.50000015E7 -byte atan2_16::i#2 2083333.5416666665 -word atan2_16::return -word atan2_16::return#0 7001.0 -word atan2_16::return#2 2002.0 -byte atan2_16::shift -byte atan2_16::shift#1 2.00000002E8 -byte atan2_16::shift#2 8.000000125E7 -byte atan2_16::shift#5 6666667.333333333 -signed word atan2_16::x -signed word atan2_16::x#0 1079.078947368421 -signed word atan2_16::xd -signed word atan2_16::xd#1 6.6666667333333336E7 -signed word atan2_16::xd#10 1.0000001E7 -signed word atan2_16::xd#2 1.0000001E7 -signed word atan2_16::xd#3 7.666666833333333E7 -signed word atan2_16::xd#5 1.0000001E7 -signed word atan2_16::xi -signed word atan2_16::xi#0 30003.0 -signed word atan2_16::xi#1 5000000.5 -signed word atan2_16::xi#13 20002.0 -signed word atan2_16::xi#2 5000000.5 -signed word atan2_16::xi#3 2667333.6666666665 -signed word atan2_16::xi#8 1.0000001E7 -signed word atan2_16::y -signed word atan2_16::y#0 1025.125 -signed word atan2_16::yd -signed word atan2_16::yd#1 1.00000001E8 -signed word atan2_16::yd#10 2.0000002E7 -signed word atan2_16::yd#2 2.0000002E7 -signed word atan2_16::yd#3 4.6000001E7 -signed word atan2_16::yd#5 2.0000002E7 -signed word atan2_16::yi -signed word atan2_16::yi#0 6000.6 -signed word atan2_16::yi#1 6666667.333333333 -signed word atan2_16::yi#16 20002.0 -signed word atan2_16::yi#2 6666667.333333333 -signed word atan2_16::yi#3 3530000.4117647056 -signed word atan2_16::yi#8 1.0000001E7 -void init_angle_screen(byte* init_angle_screen::screen) -byte~ init_angle_screen::$11 2002.0 -byte~ init_angle_screen::$12 2002.0 -byte~ init_angle_screen::$13 2002.0 -byte~ init_angle_screen::$3 2002.0 -byte~ init_angle_screen::$4 2002.0 -byte~ init_angle_screen::$6 2002.0 -word~ init_angle_screen::$9 2002.0 -byte init_angle_screen::ang_w -byte init_angle_screen::ang_w#0 715.0 -word init_angle_screen::angle_w -word init_angle_screen::angle_w#0 2002.0 -byte* init_angle_screen::screen -byte* init_angle_screen::screen_bottomline -byte* init_angle_screen::screen_bottomline#1 67.33333333333333 -byte* init_angle_screen::screen_bottomline#6 88.16 -byte* init_angle_screen::screen_topline -byte* init_angle_screen::screen_topline#1 50.5 -byte* init_angle_screen::screen_topline#6 91.83333333333334 -byte init_angle_screen::x -byte init_angle_screen::x#1 1001.0 -byte init_angle_screen::x#2 286.0 -byte init_angle_screen::xb -byte init_angle_screen::xb#1 2002.0 -byte init_angle_screen::xb#2 182.0 -signed word init_angle_screen::xw -word init_angle_screen::xw#0 333.6666666666667 -byte init_angle_screen::y -byte init_angle_screen::y#1 151.5 -byte init_angle_screen::y#5 46.26923076923077 -signed word init_angle_screen::yw -word init_angle_screen::yw#0 500.5 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 10001.0 -byte~ init_font_hex::$1 20002.0 -byte~ init_font_hex::$2 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 151.5 -byte init_font_hex::c#6 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 1501.5 -byte init_font_hex::c1#4 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 350.5 -byte* init_font_hex::charset#2 1079.0714285714287 -byte* init_font_hex::charset#5 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 15001.5 -byte init_font_hex::i#2 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 5501.0 -byte init_font_hex::idx#3 2002.0 -byte init_font_hex::idx#5 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 67.33333333333333 -byte* init_font_hex::proto_hi#6 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 500.5 -byte* init_font_hex::proto_lo#4 923.3076923076923 +unsigned int atan2_16(int x , int y) +int atan2_16::$2 // 20002.0 +char atan2_16::$22 // 2.0000002E7 +char atan2_16::$23 // 2.0000002E7 +int atan2_16::$7 // 20002.0 +unsigned int atan2_16::angle +unsigned int atan2_16::angle#1 // 15001.5 +unsigned int atan2_16::angle#11 // 20002.0 +unsigned int atan2_16::angle#12 // 1904762.0952380951 +unsigned int atan2_16::angle#13 // 1.3333334666666666E7 +unsigned int atan2_16::angle#2 // 2.0000002E7 +unsigned int atan2_16::angle#3 // 2.0000002E7 +unsigned int atan2_16::angle#4 // 20002.0 +unsigned int atan2_16::angle#5 // 20002.0 +unsigned int atan2_16::angle#6 // 2.0010003E7 +char atan2_16::i +char atan2_16::i#1 // 1.50000015E7 +char atan2_16::i#2 // 2083333.5416666665 +unsigned int atan2_16::return +unsigned int atan2_16::return#0 // 7001.0 +unsigned int atan2_16::return#2 // 2002.0 +char atan2_16::shift +char atan2_16::shift#1 // 2.00000002E8 +char atan2_16::shift#2 // 8.000000125E7 +char atan2_16::shift#5 // 6666667.333333333 +int atan2_16::x +int atan2_16::x#0 // 1079.078947368421 +int atan2_16::xd +int atan2_16::xd#1 // 6.6666667333333336E7 +int atan2_16::xd#10 // 1.0000001E7 +int atan2_16::xd#2 // 1.0000001E7 +int atan2_16::xd#3 // 7.666666833333333E7 +int atan2_16::xd#5 // 1.0000001E7 +int atan2_16::xi +int atan2_16::xi#0 // 30003.0 +int atan2_16::xi#1 // 5000000.5 +int atan2_16::xi#13 // 20002.0 +int atan2_16::xi#2 // 5000000.5 +int atan2_16::xi#3 // 2667333.6666666665 +int atan2_16::xi#8 // 1.0000001E7 +int atan2_16::y +int atan2_16::y#0 // 1025.125 +int atan2_16::yd +int atan2_16::yd#1 // 1.00000001E8 +int atan2_16::yd#10 // 2.0000002E7 +int atan2_16::yd#2 // 2.0000002E7 +int atan2_16::yd#3 // 4.6000001E7 +int atan2_16::yd#5 // 2.0000002E7 +int atan2_16::yi +int atan2_16::yi#0 // 6000.6 +int atan2_16::yi#1 // 6666667.333333333 +int atan2_16::yi#16 // 20002.0 +int atan2_16::yi#2 // 6666667.333333333 +int atan2_16::yi#3 // 3530000.4117647056 +int atan2_16::yi#8 // 1.0000001E7 +void init_angle_screen(char *screen) +char init_angle_screen::$11 // 2002.0 +char init_angle_screen::$12 // 2002.0 +char init_angle_screen::$13 // 2002.0 +char init_angle_screen::$3 // 2002.0 +char init_angle_screen::$4 // 2002.0 +char init_angle_screen::$6 // 2002.0 +unsigned int init_angle_screen::$9 // 2002.0 +char init_angle_screen::ang_w +char init_angle_screen::ang_w#0 // 715.0 +unsigned int init_angle_screen::angle_w +unsigned int init_angle_screen::angle_w#0 // 2002.0 +char *init_angle_screen::screen +char *init_angle_screen::screen_bottomline +char *init_angle_screen::screen_bottomline#1 // 67.33333333333333 +char *init_angle_screen::screen_bottomline#6 // 88.16 +char *init_angle_screen::screen_topline +char *init_angle_screen::screen_topline#1 // 50.5 +char *init_angle_screen::screen_topline#6 // 91.83333333333334 +char init_angle_screen::x +char init_angle_screen::x#1 // 1001.0 +char init_angle_screen::x#2 // 286.0 +char init_angle_screen::xb +char init_angle_screen::xb#1 // 2002.0 +char init_angle_screen::xb#2 // 182.0 +int init_angle_screen::xw +unsigned int init_angle_screen::xw#0 // 333.6666666666667 +char init_angle_screen::y +char init_angle_screen::y#1 // 151.5 +char init_angle_screen::y#5 // 46.26923076923077 +int init_angle_screen::yw +unsigned int init_angle_screen::yw#0 // 500.5 +void init_font_hex(char *charset) +char init_font_hex::$0 // 10001.0 +char init_font_hex::$1 // 20002.0 +char init_font_hex::$2 // 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // 151.5 +char init_font_hex::c#6 // 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // 1501.5 +char init_font_hex::c1#4 // 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // 350.5 +char *init_font_hex::charset#2 // 1079.0714285714287 +char *init_font_hex::charset#5 // 202.0 +char init_font_hex::i +char init_font_hex::i#1 // 15001.5 +char init_font_hex::i#2 // 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // 5501.0 +char init_font_hex::idx#3 // 2002.0 +char init_font_hex::idx#5 // 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // 67.33333333333333 +char *init_font_hex::proto_hi#6 // 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // 500.5 +char *init_font_hex::proto_lo#4 // 923.3076923076923 void main() -byte* main::clear_char -byte* main::clear_char#1 22.0 -byte* main::clear_char#5 84.0 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen +char *main::clear_char +char *main::clear_char#1 // 22.0 +char *main::clear_char#5 // 84.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen Initial phi equivalence classes [ main::clear_char#5 main::clear_char#1 ] @@ -1790,8 +1790,8 @@ Removing always clobbered register reg byte a as potential for zp[1]:19 [ init_a Removing always clobbered register reg byte a as potential for zp[1]:20 [ init_angle_screen::xb#2 init_angle_screen::xb#1 ] Statement [43] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [45] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [47] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [48] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [47] atan2_16::x#0 = (int)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [48] atan2_16::y#0 = (int)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [50] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [51] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a Statement [52] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a @@ -1845,8 +1845,8 @@ Statement [38] init_angle_screen::screen_bottomline#1 = init_angle_screen::scree Statement [42] init_angle_screen::$3 = init_angle_screen::x#2 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$3 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [43] init_angle_screen::$4 = $27 - init_angle_screen::$3 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$4 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [45] init_angle_screen::$6 = init_angle_screen::y#5 << 1 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::xw#0 init_angle_screen::$6 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [47] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a -Statement [48] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [47] atan2_16::x#0 = (int)init_angle_screen::xw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::yw#0 atan2_16::x#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a +Statement [48] atan2_16::y#0 = (int)init_angle_screen::yw#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::x#0 atan2_16::y#0 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [50] atan2_16::return#2 = atan2_16::return#0 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 atan2_16::return#2 ] { { atan2_16::return#0 = atan2_16::return#2 } } ) always clobbers reg byte a Statement [51] init_angle_screen::angle_w#0 = atan2_16::return#2 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::angle_w#0 ] { } ) always clobbers reg byte a Statement [52] init_angle_screen::$9 = init_angle_screen::angle_w#0 + $80 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] ( init_angle_screen:4 [ init_angle_screen::y#5 init_angle_screen::screen_topline#6 init_angle_screen::screen_bottomline#6 init_angle_screen::x#2 init_angle_screen::xb#2 init_angle_screen::$9 ] { } ) always clobbers reg byte a @@ -2025,7 +2025,7 @@ main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>CHARSET)/4&$f // Clear the screen by modifying the charset .label clear_char = 2 - // [1] call init_font_hex + // [1] call init_font_hex // [10] phi from main to init_font_hex [phi:main->init_font_hex] init_font_hex_from_main: jsr init_font_hex @@ -2040,7 +2040,7 @@ main: { // [3] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - // [4] call init_angle_screen + // [4] call init_angle_screen // [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen] init_angle_screen_from___b5: jsr init_angle_screen @@ -2094,7 +2094,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp(7) charset) +// void init_font_hex(__zp(7) char *charset) init_font_hex: { .label __0 = $19 .label idx = $a @@ -2253,6 +2253,7 @@ init_font_hex: { // init_angle_screen // Populates 1000 bytes (a screen) with values representing the angle to the center. // Utilizes symmetry around the center +// void init_angle_screen(char *screen) init_angle_screen: { .label __9 = $f .label xw = $15 @@ -2266,12 +2267,12 @@ init_angle_screen: { .label y = 4 // [34] phi from init_angle_screen to init_angle_screen::@1 [phi:init_angle_screen->init_angle_screen::@1] __b1_from_init_angle_screen: - // [34] phi init_angle_screen::screen_bottomline#6 = SCREEN+(word)$28*$c [phi:init_angle_screen->init_angle_screen::@1#0] -- pbuz1=pbuc1 + // [34] phi init_angle_screen::screen_bottomline#6 = SCREEN+(unsigned int)$28*$c [phi:init_angle_screen->init_angle_screen::@1#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$c sta.z screen_bottomline+1 - // [34] phi init_angle_screen::screen_topline#6 = SCREEN+(word)$28*$c [phi:init_angle_screen->init_angle_screen::@1#1] -- pbuz1=pbuc1 + // [34] phi init_angle_screen::screen_topline#6 = SCREEN+(unsigned int)$28*$c [phi:init_angle_screen->init_angle_screen::@1#1] -- pbuz1=pbuc1 lda #SCREEN+$28*$c @@ -2353,9 +2354,9 @@ init_angle_screen: { ldy #0 sta.z yw+1 sty.z yw - // [47] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 - // [48] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 - // [49] call atan2_16 + // [47] atan2_16::x#0 = (int)init_angle_screen::xw#0 + // [48] atan2_16::y#0 = (int)init_angle_screen::yw#0 + // [49] call atan2_16 jsr atan2_16 // [50] atan2_16::return#2 = atan2_16::return#0 jmp __b5 @@ -2413,7 +2414,7 @@ init_angle_screen: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_16 // Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI) -// atan2_16(signed word zp($15) x, signed word zp($17) y) +// __zp($f) unsigned int atan2_16(__zp($15) int x, __zp($17) int y) atan2_16: { .label __2 = $b .label __7 = $d @@ -2856,142 +2857,142 @@ Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination -Fixing long branch [360] beq __b12 to bne -Fixing long branch [255] bpl __b1 to bmi -Fixing long branch [267] bpl __b4 to bmi +Fixing long branch [361] beq __b12 to bne +Fixing long branch [256] bpl __b1 to bmi +Fixing long branch [268] bpl __b4 to bmi FINAL SYMBOL TABLE -constant byte* const CHARSET = (byte*) 8192 -constant word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; iinit_font_hex] jsr init_font_hex // [2] phi from main to main::toD0181 [phi:main->main::toD0181] @@ -3067,7 +3068,7 @@ main: { lda #toD0181_return sta D018 // init_angle_screen(SCREEN) - // [4] call init_angle_screen + // [4] call init_angle_screen // [33] phi from main::@5 to init_angle_screen [phi:main::@5->init_angle_screen] jsr init_angle_screen // [5] phi from main::@5 to main::@1 [phi:main::@5->main::@1] @@ -3113,7 +3114,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp(7) charset) +// void init_font_hex(__zp(7) char *charset) init_font_hex: { .label __0 = $19 .label idx = $a @@ -3268,6 +3269,7 @@ init_font_hex: { // init_angle_screen // Populates 1000 bytes (a screen) with values representing the angle to the center. // Utilizes symmetry around the center +// void init_angle_screen(char *screen) init_angle_screen: { .label __9 = $f .label xw = $15 @@ -3280,12 +3282,12 @@ init_angle_screen: { .label screen_bottomline = 7 .label y = 4 // [34] phi from init_angle_screen to init_angle_screen::@1 [phi:init_angle_screen->init_angle_screen::@1] - // [34] phi init_angle_screen::screen_bottomline#6 = SCREEN+(word)$28*$c [phi:init_angle_screen->init_angle_screen::@1#0] -- pbuz1=pbuc1 + // [34] phi init_angle_screen::screen_bottomline#6 = SCREEN+(unsigned int)$28*$c [phi:init_angle_screen->init_angle_screen::@1#0] -- pbuz1=pbuc1 lda #SCREEN+$28*$c sta.z screen_bottomline+1 - // [34] phi init_angle_screen::screen_topline#6 = SCREEN+(word)$28*$c [phi:init_angle_screen->init_angle_screen::@1#1] -- pbuz1=pbuc1 + // [34] phi init_angle_screen::screen_topline#6 = SCREEN+(unsigned int)$28*$c [phi:init_angle_screen->init_angle_screen::@1#1] -- pbuz1=pbuc1 lda #SCREEN+$28*$c @@ -3368,9 +3370,9 @@ init_angle_screen: { sta.z yw+1 sty.z yw // word angle_w = atan2_16(xw, yw) - // [47] atan2_16::x#0 = (signed word)init_angle_screen::xw#0 - // [48] atan2_16::y#0 = (signed word)init_angle_screen::yw#0 - // [49] call atan2_16 + // [47] atan2_16::x#0 = (int)init_angle_screen::xw#0 + // [48] atan2_16::y#0 = (int)init_angle_screen::yw#0 + // [49] call atan2_16 jsr atan2_16 // [50] atan2_16::return#2 = atan2_16::return#0 // init_angle_screen::@5 @@ -3433,7 +3435,7 @@ init_angle_screen: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_16 // Returns the angle in hex-degrees (0=0, 0x8000=PI, 0x10000=2*PI) -// atan2_16(signed word zp($15) x, signed word zp($17) y) +// __zp($f) unsigned int atan2_16(__zp($15) int x, __zp($17) int y) atan2_16: { .label __2 = $b .label __7 = $d diff --git a/src/test/ref/cordic-atan2-clear.sym b/src/test/ref/cordic-atan2-clear.sym index bc7dc9eb3..9c12fc456 100644 --- a/src/test/ref/cordic-atan2-clear.sym +++ b/src/test/ref/cordic-atan2-clear.sym @@ -1,134 +1,134 @@ -constant byte* const CHARSET = (byte*) 8192 -constant word* CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i0) goto atan2_8::@1 to:atan2_8::@2 diff --git a/src/test/ref/cordic-atan2.log b/src/test/ref/cordic-atan2.log index b569c04e1..12b485192 100644 --- a/src/test/ref/cordic-atan2.log +++ b/src/test/ref/cordic-atan2.log @@ -8,7 +8,7 @@ Eliminating unused variable with no statement main::$2 CONTROL FLOW GRAPH SSA -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main init_font_hex::charset#6 = phi( main/init_font_hex::charset#1 ) init_font_hex::proto_hi#0 = FONT_HEX_PROTO @@ -79,7 +79,7 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 return to:@return -byte atan2_8(signed byte atan2_8::x , signed byte atan2_8::y) +char atan2_8(signed char x , signed char y) atan2_8: scope:[atan2_8] from main::@2 atan2_8::x#9 = phi( main::@2/atan2_8::x#0 ) atan2_8::y#1 = phi( main::@2/atan2_8::y#0 ) @@ -228,7 +228,7 @@ atan2_8::@return: scope:[atan2_8] from atan2_8::@8 void main() main: scope:[main] from __start init_font_hex::charset#1 = CHARSET - call init_font_hex + call init_font_hex to:main::@7 main::@7: scope:[main] from main main::toD0181_screen#0 = SCREEN @@ -237,11 +237,11 @@ main::@7: scope:[main] from main main::toD0181: scope:[main] from main::@7 main::toD0181_gfx#1 = phi( main::@7/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@7/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -269,7 +269,7 @@ main::@2: scope:[main] from main::@1 main::@8 main::x#2 = phi( main::@1/main::x#0, main::@8/main::x#1 ) atan2_8::x#0 = main::x#2 atan2_8::y#0 = main::y#2 - call atan2_8 + call atan2_8 atan2_8::return#2 = atan2_8::return#1 to:main::@8 main::@8: scope:[main] from main::@2 @@ -303,7 +303,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -312,230 +312,230 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHARSET = (byte*)$2000 -constant byte* const COLS = (byte*)$d800 -constant byte* CORDIC_ATAN2_ANGLES_8[CORDIC_ITERATIONS_8] = kickasm {{ .fill CORDIC_ITERATIONS_8, 2*256*atan(1/pow(2,i))/PI/2 +__constant char * const CHARSET = (char *)$2000 +__constant char * const COLS = (char *)$d800 +__constant char CORDIC_ATAN2_ANGLES_8[CORDIC_ITERATIONS_8] = kickasm {{ .fill CORDIC_ITERATIONS_8, 2*256*atan(1/pow(2,i))/PI/2 }} -constant const byte CORDIC_ITERATIONS_8 = 8 -constant byte* const D018 = (byte*)$d018 -constant byte* FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } -constant byte* const SCREEN = (byte*)$2800 +__constant const char CORDIC_ITERATIONS_8 = 8 +__constant char * const D018 = (char *)$d018 +__constant char FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } +__constant char * const SCREEN = (char *)$2800 void __start() -byte atan2_8(signed byte atan2_8::x , signed byte atan2_8::y) -bool~ atan2_8::$0 -signed byte~ atan2_8::$1 -number~ atan2_8::$10 -bool~ atan2_8::$11 -bool~ atan2_8::$12 -number~ atan2_8::$13 -bool~ atan2_8::$14 -bool~ atan2_8::$15 -byte~ atan2_8::$16 -bool~ atan2_8::$17 -bool~ atan2_8::$18 -signed byte~ atan2_8::$2 -bool~ atan2_8::$21 -bool~ atan2_8::$22 -signed byte~ atan2_8::$3 -signed byte~ atan2_8::$4 -bool~ atan2_8::$5 -signed byte~ atan2_8::$6 -signed byte~ atan2_8::$7 -signed byte~ atan2_8::$8 -signed byte~ atan2_8::$9 -byte atan2_8::angle -byte atan2_8::angle#0 -byte atan2_8::angle#1 -byte atan2_8::angle#10 -byte atan2_8::angle#11 -byte atan2_8::angle#12 -byte atan2_8::angle#13 -byte atan2_8::angle#14 -byte atan2_8::angle#15 -byte atan2_8::angle#2 -byte atan2_8::angle#3 -byte atan2_8::angle#4 -byte atan2_8::angle#5 -byte atan2_8::angle#6 -byte atan2_8::angle#7 -byte atan2_8::angle#8 -byte atan2_8::angle#9 -byte atan2_8::i -byte atan2_8::i#0 -byte atan2_8::i#1 -byte atan2_8::i#2 -byte atan2_8::i#3 -byte atan2_8::i#4 -byte atan2_8::i#5 -byte atan2_8::i#6 -byte atan2_8::return -byte atan2_8::return#0 -byte atan2_8::return#1 -byte atan2_8::return#2 -byte atan2_8::return#3 -byte atan2_8::return#4 -signed byte atan2_8::x -signed byte atan2_8::x#0 -signed byte atan2_8::x#1 -signed byte atan2_8::x#10 -signed byte atan2_8::x#11 -signed byte atan2_8::x#12 -signed byte atan2_8::x#13 -signed byte atan2_8::x#2 -signed byte atan2_8::x#3 -signed byte atan2_8::x#4 -signed byte atan2_8::x#5 -signed byte atan2_8::x#6 -signed byte atan2_8::x#7 -signed byte atan2_8::x#8 -signed byte atan2_8::x#9 -signed byte atan2_8::xd -signed byte atan2_8::xd#0 -signed byte atan2_8::xd#1 -signed byte atan2_8::xd#2 -signed byte atan2_8::xi -signed byte atan2_8::xi#0 -signed byte atan2_8::xi#1 -signed byte atan2_8::xi#2 -signed byte atan2_8::xi#3 -signed byte atan2_8::xi#4 -signed byte atan2_8::xi#5 -signed byte atan2_8::xi#6 -signed byte atan2_8::xi#7 -signed byte atan2_8::y -signed byte atan2_8::y#0 -signed byte atan2_8::y#1 -signed byte atan2_8::y#10 -signed byte atan2_8::y#11 -signed byte atan2_8::y#12 -signed byte atan2_8::y#13 -signed byte atan2_8::y#14 -signed byte atan2_8::y#15 -signed byte atan2_8::y#2 -signed byte atan2_8::y#3 -signed byte atan2_8::y#4 -signed byte atan2_8::y#5 -signed byte atan2_8::y#6 -signed byte atan2_8::y#7 -signed byte atan2_8::y#8 -signed byte atan2_8::y#9 -signed byte atan2_8::yd -signed byte atan2_8::yd#0 -signed byte atan2_8::yd#1 -signed byte atan2_8::yd#2 -signed byte atan2_8::yi -signed byte atan2_8::yi#0 -signed byte atan2_8::yi#1 -signed byte atan2_8::yi#10 -signed byte atan2_8::yi#2 -signed byte atan2_8::yi#3 -signed byte atan2_8::yi#4 -signed byte atan2_8::yi#5 -signed byte atan2_8::yi#6 -signed byte atan2_8::yi#7 -signed byte atan2_8::yi#8 -signed byte atan2_8::yi#9 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 -byte~ init_font_hex::$1 -byte~ init_font_hex::$2 -bool~ init_font_hex::$3 -bool~ init_font_hex::$4 -bool~ init_font_hex::$5 -byte init_font_hex::c -byte init_font_hex::c#0 -byte init_font_hex::c#1 -byte init_font_hex::c#2 -byte init_font_hex::c#3 -byte init_font_hex::c#4 -byte init_font_hex::c#5 -byte init_font_hex::c#6 -byte init_font_hex::c1 -byte init_font_hex::c1#0 -byte init_font_hex::c1#1 -byte init_font_hex::c1#2 -byte init_font_hex::c1#3 -byte init_font_hex::c1#4 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 -byte* init_font_hex::charset#1 -byte* init_font_hex::charset#2 -byte* init_font_hex::charset#3 -byte* init_font_hex::charset#4 -byte* init_font_hex::charset#5 -byte* init_font_hex::charset#6 -byte* init_font_hex::charset#7 -byte init_font_hex::i -byte init_font_hex::i#0 -byte init_font_hex::i#1 -byte init_font_hex::i#2 -byte init_font_hex::idx -byte init_font_hex::idx#0 -byte init_font_hex::idx#1 -byte init_font_hex::idx#2 -byte init_font_hex::idx#3 -byte init_font_hex::idx#4 -byte init_font_hex::idx#5 -byte init_font_hex::idx#6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#0 -byte* init_font_hex::proto_hi#1 -byte* init_font_hex::proto_hi#2 -byte* init_font_hex::proto_hi#3 -byte* init_font_hex::proto_hi#4 -byte* init_font_hex::proto_hi#5 -byte* init_font_hex::proto_hi#6 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#0 -byte* init_font_hex::proto_lo#1 -byte* init_font_hex::proto_lo#2 -byte* init_font_hex::proto_lo#3 -byte* init_font_hex::proto_lo#4 +char atan2_8(signed char x , signed char y) +bool atan2_8::$0 +signed char atan2_8::$1 +number atan2_8::$10 +bool atan2_8::$11 +bool atan2_8::$12 +number atan2_8::$13 +bool atan2_8::$14 +bool atan2_8::$15 +char atan2_8::$16 +bool atan2_8::$17 +bool atan2_8::$18 +signed char atan2_8::$2 +bool atan2_8::$21 +bool atan2_8::$22 +signed char atan2_8::$3 +signed char atan2_8::$4 +bool atan2_8::$5 +signed char atan2_8::$6 +signed char atan2_8::$7 +signed char atan2_8::$8 +signed char atan2_8::$9 +char atan2_8::angle +char atan2_8::angle#0 +char atan2_8::angle#1 +char atan2_8::angle#10 +char atan2_8::angle#11 +char atan2_8::angle#12 +char atan2_8::angle#13 +char atan2_8::angle#14 +char atan2_8::angle#15 +char atan2_8::angle#2 +char atan2_8::angle#3 +char atan2_8::angle#4 +char atan2_8::angle#5 +char atan2_8::angle#6 +char atan2_8::angle#7 +char atan2_8::angle#8 +char atan2_8::angle#9 +char atan2_8::i +char atan2_8::i#0 +char atan2_8::i#1 +char atan2_8::i#2 +char atan2_8::i#3 +char atan2_8::i#4 +char atan2_8::i#5 +char atan2_8::i#6 +char atan2_8::return +char atan2_8::return#0 +char atan2_8::return#1 +char atan2_8::return#2 +char atan2_8::return#3 +char atan2_8::return#4 +signed char atan2_8::x +signed char atan2_8::x#0 +signed char atan2_8::x#1 +signed char atan2_8::x#10 +signed char atan2_8::x#11 +signed char atan2_8::x#12 +signed char atan2_8::x#13 +signed char atan2_8::x#2 +signed char atan2_8::x#3 +signed char atan2_8::x#4 +signed char atan2_8::x#5 +signed char atan2_8::x#6 +signed char atan2_8::x#7 +signed char atan2_8::x#8 +signed char atan2_8::x#9 +signed char atan2_8::xd +signed char atan2_8::xd#0 +signed char atan2_8::xd#1 +signed char atan2_8::xd#2 +signed char atan2_8::xi +signed char atan2_8::xi#0 +signed char atan2_8::xi#1 +signed char atan2_8::xi#2 +signed char atan2_8::xi#3 +signed char atan2_8::xi#4 +signed char atan2_8::xi#5 +signed char atan2_8::xi#6 +signed char atan2_8::xi#7 +signed char atan2_8::y +signed char atan2_8::y#0 +signed char atan2_8::y#1 +signed char atan2_8::y#10 +signed char atan2_8::y#11 +signed char atan2_8::y#12 +signed char atan2_8::y#13 +signed char atan2_8::y#14 +signed char atan2_8::y#15 +signed char atan2_8::y#2 +signed char atan2_8::y#3 +signed char atan2_8::y#4 +signed char atan2_8::y#5 +signed char atan2_8::y#6 +signed char atan2_8::y#7 +signed char atan2_8::y#8 +signed char atan2_8::y#9 +signed char atan2_8::yd +signed char atan2_8::yd#0 +signed char atan2_8::yd#1 +signed char atan2_8::yd#2 +signed char atan2_8::yi +signed char atan2_8::yi#0 +signed char atan2_8::yi#1 +signed char atan2_8::yi#10 +signed char atan2_8::yi#2 +signed char atan2_8::yi#3 +signed char atan2_8::yi#4 +signed char atan2_8::yi#5 +signed char atan2_8::yi#6 +signed char atan2_8::yi#7 +signed char atan2_8::yi#8 +signed char atan2_8::yi#9 +void init_font_hex(char *charset) +char init_font_hex::$0 +char init_font_hex::$1 +char init_font_hex::$2 +bool init_font_hex::$3 +bool init_font_hex::$4 +bool init_font_hex::$5 +char init_font_hex::c +char init_font_hex::c#0 +char init_font_hex::c#1 +char init_font_hex::c#2 +char init_font_hex::c#3 +char init_font_hex::c#4 +char init_font_hex::c#5 +char init_font_hex::c#6 +char init_font_hex::c1 +char init_font_hex::c1#0 +char init_font_hex::c1#1 +char init_font_hex::c1#2 +char init_font_hex::c1#3 +char init_font_hex::c1#4 +char *init_font_hex::charset +char *init_font_hex::charset#0 +char *init_font_hex::charset#1 +char *init_font_hex::charset#2 +char *init_font_hex::charset#3 +char *init_font_hex::charset#4 +char *init_font_hex::charset#5 +char *init_font_hex::charset#6 +char *init_font_hex::charset#7 +char init_font_hex::i +char init_font_hex::i#0 +char init_font_hex::i#1 +char init_font_hex::i#2 +char init_font_hex::idx +char init_font_hex::idx#0 +char init_font_hex::idx#1 +char init_font_hex::idx#2 +char init_font_hex::idx#3 +char init_font_hex::idx#4 +char init_font_hex::idx#5 +char init_font_hex::idx#6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#0 +char *init_font_hex::proto_hi#1 +char *init_font_hex::proto_hi#2 +char *init_font_hex::proto_hi#3 +char *init_font_hex::proto_hi#4 +char *init_font_hex::proto_hi#5 +char *init_font_hex::proto_hi#6 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#0 +char *init_font_hex::proto_lo#1 +char *init_font_hex::proto_lo#2 +char *init_font_hex::proto_lo#3 +char *init_font_hex::proto_lo#4 void main() -byte~ main::$1 -bool~ main::$3 -bool~ main::$4 -byte main::angle -byte main::angle#0 -constant byte* main::col00 = COLS+$c*$28+$13 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -signed byte main::x -signed byte main::x#0 -signed byte main::x#1 -signed byte main::x#2 -signed byte main::x#3 -signed byte main::y -signed byte main::y#0 -signed byte main::y#1 -signed byte main::y#2 -signed byte main::y#3 -signed byte main::y#4 -signed byte main::y#5 +char main::$1 +bool main::$3 +bool main::$4 +char main::angle +char main::angle#0 +__constant char *main::col00 = COLS+$c*$28+$13 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +signed char main::x +signed char main::x#0 +signed char main::x#1 +signed char main::x#2 +signed char main::x#3 +signed char main::y +signed char main::y#0 +signed char main::y#1 +signed char main::y#2 +signed char main::y#3 +signed char main::y#4 +signed char main::y#5 Adding number conversion cast (unumber) $13 in Adding number conversion cast (unumber) $c*$28 in @@ -572,10 +572,10 @@ Inlining cast init_font_hex::charset#2[init_font_hex::idx#0] = (unumber)0 Inlining cast init_font_hex::charset#4[init_font_hex::idx#6] = (unumber)0 Inlining cast init_font_hex::charset#4[init_font_hex::idx#3] = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 10240 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 10240 Simplifying constant integer cast $13 Simplifying constant integer cast 0 Simplifying constant integer cast 4 @@ -599,36 +599,36 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 4 Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $13 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 5 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 2 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) $13 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 5 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 2 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in atan2_8::$10 = atan2_8::angle#6 / 2 -Inferred type updated to byte in atan2_8::$13 = $80 - atan2_8::angle#9 -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to char in atan2_8::$10 = atan2_8::angle#6 / 2 +Inferred type updated to char in atan2_8::$13 = $80 - atan2_8::angle#9 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Inversing boolean not [59] atan2_8::$18 = atan2_8::yi#3 != 0 from [58] atan2_8::$17 = atan2_8::yi#3 == 0 Inversing boolean not [70] atan2_8::$12 = atan2_8::x#4 >= 0 from [69] atan2_8::$11 = atan2_8::x#4 < 0 Inversing boolean not [86] atan2_8::$15 = atan2_8::y#4 >= 0 from [85] atan2_8::$14 = atan2_8::y#4 < 0 @@ -727,9 +727,9 @@ Constant main::screen#0 = SCREEN Constant main::y#0 = -$c Constant main::x#0 = -$13 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [81] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [81] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [104] if(true) goto main::@5 Successful SSA optimization Pass2ConstantIfs @@ -772,20 +772,20 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $15 Simplifying constant integer cast $d Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) $15 -Finalized signed number type (signed byte) $d +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) $15 +Finalized signed number type (signed char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [3] init_font_hex::idx#1 = ++ init_font_hex::idx#0 Constant right-side identified [53] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [56] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [56] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant init_font_hex::idx#1 = ++init_font_hex::idx#0 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [52] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [54] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -821,18 +821,18 @@ Inlining constant with var siblings main::x#0 Constant inlined main::screen#0 = SCREEN Constant inlined main::toD0181_screen#0 = SCREEN Constant inlined main::toD0181_gfx#0 = CHARSET -Constant inlined main::toD0181_$7 = (word)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN Constant inlined init_font_hex::proto_hi#0 = FONT_HEX_PROTO -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 Constant inlined atan2_8::angle#0 = 0 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined main::x#0 = -$13 Constant inlined main::y#0 = -$c Constant inlined init_font_hex::i#0 = 0 -Constant inlined main::toD0181_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)CHARSET/4 -Constant inlined main::toD0181_$3 = byte1 (word)CHARSET +Constant inlined main::toD0181_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)CHARSET Constant inlined init_font_hex::charset#1 = CHARSET Constant inlined init_font_hex::idx#1 = ++0 Constant inlined init_font_hex::idx#0 = 0 @@ -843,8 +843,8 @@ Constant inlined init_font_hex::c1#0 = 0 Successful SSA optimization Pass2ConstantInlining Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting init_font_hex::@6(between init_font_hex::@5 and init_font_hex::@1) Added new block during phi lifting init_font_hex::@7(between init_font_hex::@4 and init_font_hex::@2) @@ -928,7 +928,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init_font_hex + [1] call init_font_hex to:main::toD0181 main::toD0181: scope:[main] from main [2] phi() @@ -945,7 +945,7 @@ main::@2: scope:[main] from main::@1 main::@6 [5] main::x#2 = phi( main::@1/-$13, main::@6/main::x#1 ) [6] atan2_8::x#0 = main::x#2 [7] atan2_8::y#0 = main::y#4 - [8] call atan2_8 + [8] call atan2_8 [9] atan2_8::return#2 = atan2_8::return#0 to:main::@6 main::@6: scope:[main] from main::@2 @@ -963,7 +963,7 @@ main::@4: scope:[main] from main::@3 main::@4 [17] *main::col00 = ++ *main::col00 to:main::@4 -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main [18] phi() to:init_font_hex::@1 @@ -1007,7 +1007,7 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 [40] return to:@return -byte atan2_8(signed byte atan2_8::x , signed byte atan2_8::y) +char atan2_8(signed char x , signed char y) atan2_8: scope:[atan2_8] from main::@2 [41] if(atan2_8::y#0>0) goto atan2_8::@1 to:atan2_8::@2 @@ -1083,90 +1083,90 @@ atan2_8::@1: scope:[atan2_8] from atan2_8 VARIABLE REGISTER WEIGHTS -byte atan2_8(signed byte atan2_8::x , signed byte atan2_8::y) -signed byte~ atan2_8::$2 2002.0 -signed byte~ atan2_8::$7 2002.0 -byte atan2_8::angle -byte atan2_8::angle#1 1501.5 -byte atan2_8::angle#11 2002.0 -byte atan2_8::angle#12 444444.8888888889 -byte atan2_8::angle#13 1333334.6666666667 -byte atan2_8::angle#2 2000002.0 -byte atan2_8::angle#3 2000002.0 -byte atan2_8::angle#4 2002.0 -byte atan2_8::angle#5 2002.0 -byte atan2_8::angle#6 2001003.0 -byte atan2_8::i -byte atan2_8::i#1 1500001.5 -byte atan2_8::i#2 500000.50000000006 -byte atan2_8::return -byte atan2_8::return#0 701.0 -byte atan2_8::return#2 202.0 -signed byte atan2_8::x -signed byte atan2_8::x#0 157.8846153846154 -signed byte atan2_8::xd -signed byte atan2_8::xd#0 600000.6000000001 -signed byte atan2_8::xi -signed byte atan2_8::xi#0 3003.0 -signed byte atan2_8::xi#1 666667.3333333334 -signed byte atan2_8::xi#2 666667.3333333334 -signed byte atan2_8::xi#3 800201.0 -signed byte atan2_8::xi#7 1000001.0 -signed byte atan2_8::xi#8 2002.0 -signed byte atan2_8::y -signed byte atan2_8::y#0 146.60714285714286 -signed byte atan2_8::yd -signed byte atan2_8::yd#0 1500001.5 -signed byte atan2_8::yi -signed byte atan2_8::yi#0 600.5999999999999 -signed byte atan2_8::yi#1 1000001.0 -signed byte atan2_8::yi#11 2002.0 -signed byte atan2_8::yi#2 1000001.0 -signed byte atan2_8::yi#3 857286.7142857142 -signed byte atan2_8::yi#7 1000001.0 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 10001.0 -byte~ init_font_hex::$1 20002.0 -byte~ init_font_hex::$2 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 151.5 -byte init_font_hex::c#6 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 1501.5 -byte init_font_hex::c1#4 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 350.5 -byte* init_font_hex::charset#2 1079.0714285714287 -byte* init_font_hex::charset#5 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 15001.5 -byte init_font_hex::i#2 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 5501.0 -byte init_font_hex::idx#3 2002.0 -byte init_font_hex::idx#5 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 67.33333333333333 -byte* init_font_hex::proto_hi#6 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 500.5 -byte* init_font_hex::proto_lo#4 923.3076923076923 +char atan2_8(signed char x , signed char y) +signed char atan2_8::$2 // 2002.0 +signed char atan2_8::$7 // 2002.0 +char atan2_8::angle +char atan2_8::angle#1 // 1501.5 +char atan2_8::angle#11 // 2002.0 +char atan2_8::angle#12 // 444444.8888888889 +char atan2_8::angle#13 // 1333334.6666666667 +char atan2_8::angle#2 // 2000002.0 +char atan2_8::angle#3 // 2000002.0 +char atan2_8::angle#4 // 2002.0 +char atan2_8::angle#5 // 2002.0 +char atan2_8::angle#6 // 2001003.0 +char atan2_8::i +char atan2_8::i#1 // 1500001.5 +char atan2_8::i#2 // 500000.50000000006 +char atan2_8::return +char atan2_8::return#0 // 701.0 +char atan2_8::return#2 // 202.0 +signed char atan2_8::x +signed char atan2_8::x#0 // 157.8846153846154 +signed char atan2_8::xd +signed char atan2_8::xd#0 // 600000.6000000001 +signed char atan2_8::xi +signed char atan2_8::xi#0 // 3003.0 +signed char atan2_8::xi#1 // 666667.3333333334 +signed char atan2_8::xi#2 // 666667.3333333334 +signed char atan2_8::xi#3 // 800201.0 +signed char atan2_8::xi#7 // 1000001.0 +signed char atan2_8::xi#8 // 2002.0 +signed char atan2_8::y +signed char atan2_8::y#0 // 146.60714285714286 +signed char atan2_8::yd +signed char atan2_8::yd#0 // 1500001.5 +signed char atan2_8::yi +signed char atan2_8::yi#0 // 600.5999999999999 +signed char atan2_8::yi#1 // 1000001.0 +signed char atan2_8::yi#11 // 2002.0 +signed char atan2_8::yi#2 // 1000001.0 +signed char atan2_8::yi#3 // 857286.7142857142 +signed char atan2_8::yi#7 // 1000001.0 +void init_font_hex(char *charset) +char init_font_hex::$0 // 10001.0 +char init_font_hex::$1 // 20002.0 +char init_font_hex::$2 // 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // 151.5 +char init_font_hex::c#6 // 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // 1501.5 +char init_font_hex::c1#4 // 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // 350.5 +char *init_font_hex::charset#2 // 1079.0714285714287 +char *init_font_hex::charset#5 // 202.0 +char init_font_hex::i +char init_font_hex::i#1 // 15001.5 +char init_font_hex::i#2 // 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // 5501.0 +char init_font_hex::idx#3 // 2002.0 +char init_font_hex::idx#5 // 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // 67.33333333333333 +char *init_font_hex::proto_hi#6 // 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // 500.5 +char *init_font_hex::proto_lo#4 // 923.3076923076923 void main() -byte main::angle -byte main::angle#0 202.0 -byte* main::screen -byte* main::screen#1 42.599999999999994 -byte* main::screen#2 44.85714285714286 -byte* main::screen#4 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -signed byte main::x -signed byte main::x#1 151.5 -signed byte main::x#2 37.875 -signed byte main::y -signed byte main::y#1 16.5 -signed byte main::y#4 11.181818181818182 +char main::angle +char main::angle#0 // 202.0 +char *main::screen +char *main::screen#1 // 42.599999999999994 +char *main::screen#2 // 44.85714285714286 +char *main::screen#4 // 22.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +signed char main::x +signed char main::x#1 // 151.5 +signed char main::x#2 // 37.875 +signed char main::y +signed char main::y#1 // 16.5 +signed char main::y#4 // 11.181818181818182 Initial phi equivalence classes [ main::y#4 main::y#1 ] @@ -1436,7 +1436,7 @@ main: { .label screen = 4 .label x = 3 .label y = 2 - // [1] call init_font_hex + // [1] call init_font_hex // [18] phi from main to init_font_hex [phi:main->init_font_hex] init_font_hex_from_main: jsr init_font_hex @@ -1485,7 +1485,7 @@ main: { __b2: // [6] atan2_8::x#0 = main::x#2 // [7] atan2_8::y#0 = main::y#4 - // [8] call atan2_8 + // [8] call atan2_8 jsr atan2_8 // [9] atan2_8::return#2 = atan2_8::return#0 -- vbuaa=vbuxx txa @@ -1525,7 +1525,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp(8) charset) +// void init_font_hex(__zp(8) char *charset) init_font_hex: { .label __0 = $f .label idx = $e @@ -1685,7 +1685,7 @@ init_font_hex: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_8 // Returns the angle in hex-degrees (0=0, 0x80=PI, 0x100=2*PI) -// atan2_8(signed byte zp(3) x, signed byte zp(2) y) +// __register(A) char atan2_8(__zp(3) signed char x, __zp(2) signed char y) atan2_8: { .label __7 = $c .label xi = $c @@ -2017,100 +2017,100 @@ Fixing long branch [164] bpl __b1 to bmi Fixing long branch [177] bpl __b4 to bmi FINAL SYMBOL TABLE -constant byte* const CHARSET = (byte*) 8192 -constant byte* const COLS = (byte*) 55296 -constant byte* CORDIC_ATAN2_ANGLES_8[CORDIC_ITERATIONS_8] = kickasm {{ .fill CORDIC_ITERATIONS_8, 2*256*atan(1/pow(2,i))/PI/2 +__constant char * const CHARSET = (char *) 8192 +__constant char * const COLS = (char *) 55296 +__constant char CORDIC_ATAN2_ANGLES_8[CORDIC_ITERATIONS_8] = kickasm {{ .fill CORDIC_ITERATIONS_8, 2*256*atan(1/pow(2,i))/PI/2 }} -constant const byte CORDIC_ITERATIONS_8 = 8 -constant byte* const D018 = (byte*) 53272 -constant byte* FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } -constant byte* const SCREEN = (byte*) 10240 -byte atan2_8(signed byte atan2_8::x , signed byte atan2_8::y) -signed byte~ atan2_8::$2 reg byte x 2002.0 -signed byte~ atan2_8::$7 zp[1]:12 2002.0 -byte atan2_8::angle -byte atan2_8::angle#1 reg byte x 1501.5 -byte atan2_8::angle#11 reg byte x 2002.0 -byte atan2_8::angle#12 angle zp[1]:14 444444.8888888889 -byte atan2_8::angle#13 angle zp[1]:14 1333334.6666666667 -byte atan2_8::angle#2 angle zp[1]:14 2000002.0 -byte atan2_8::angle#3 angle zp[1]:14 2000002.0 -byte atan2_8::angle#4 reg byte x 2002.0 -byte atan2_8::angle#5 reg byte x 2002.0 -byte atan2_8::angle#6 angle zp[1]:14 2001003.0 -byte atan2_8::i -byte atan2_8::i#1 i zp[1]:13 1500001.5 -byte atan2_8::i#2 i zp[1]:13 500000.50000000006 -byte atan2_8::return -byte atan2_8::return#0 reg byte x 701.0 -byte atan2_8::return#2 reg byte a 202.0 -signed byte atan2_8::x -signed byte atan2_8::x#0 x zp[1]:3 157.8846153846154 -signed byte atan2_8::xd -signed byte atan2_8::xd#0 xd zp[1]:15 600000.6000000001 -signed byte atan2_8::xi -signed byte atan2_8::xi#0 xi zp[1]:12 3003.0 -signed byte atan2_8::xi#1 xi zp[1]:12 666667.3333333334 -signed byte atan2_8::xi#2 xi zp[1]:12 666667.3333333334 -signed byte atan2_8::xi#3 xi zp[1]:12 800201.0 -signed byte atan2_8::xi#7 xi zp[1]:12 1000001.0 -signed byte atan2_8::xi#8 xi zp[1]:12 2002.0 -signed byte atan2_8::y -signed byte atan2_8::y#0 y zp[1]:2 146.60714285714286 -signed byte atan2_8::yd -signed byte atan2_8::yd#0 reg byte y 1500001.5 -signed byte atan2_8::yi -signed byte atan2_8::yi#0 reg byte x 600.5999999999999 -signed byte atan2_8::yi#1 reg byte x 1000001.0 -signed byte atan2_8::yi#11 reg byte x 2002.0 -signed byte atan2_8::yi#2 reg byte x 1000001.0 -signed byte atan2_8::yi#3 reg byte x 857286.7142857142 -signed byte atan2_8::yi#7 reg byte x 1000001.0 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 zp[1]:15 10001.0 -byte~ init_font_hex::$1 reg byte a 20002.0 -byte~ init_font_hex::$2 reg byte a 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 c zp[1]:12 151.5 -byte init_font_hex::c#6 c zp[1]:12 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 c1 zp[1]:13 1501.5 -byte init_font_hex::c1#4 c1 zp[1]:13 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 charset zp[2]:8 350.5 -byte* init_font_hex::charset#2 charset zp[2]:8 1079.0714285714287 -byte* init_font_hex::charset#5 charset zp[2]:8 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 reg byte x 15001.5 -byte init_font_hex::i#2 reg byte x 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 idx zp[1]:14 5501.0 -byte init_font_hex::idx#3 reg byte y 2002.0 -byte init_font_hex::idx#5 idx zp[1]:14 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 proto_hi zp[2]:6 67.33333333333333 -byte* init_font_hex::proto_hi#6 proto_hi zp[2]:6 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 proto_lo zp[2]:10 500.5 -byte* init_font_hex::proto_lo#4 proto_lo zp[2]:10 923.3076923076923 +__constant const char CORDIC_ITERATIONS_8 = 8 +__constant char * const D018 = (char *) 53272 +__constant char FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } +__constant char * const SCREEN = (char *) 10240 +char atan2_8(signed char x , signed char y) +signed char atan2_8::$2 // reg byte x 2002.0 +signed char atan2_8::$7 // zp[1]:12 2002.0 +char atan2_8::angle +char atan2_8::angle#1 // reg byte x 1501.5 +char atan2_8::angle#11 // reg byte x 2002.0 +char atan2_8::angle#12 // angle zp[1]:14 444444.8888888889 +char atan2_8::angle#13 // angle zp[1]:14 1333334.6666666667 +char atan2_8::angle#2 // angle zp[1]:14 2000002.0 +char atan2_8::angle#3 // angle zp[1]:14 2000002.0 +char atan2_8::angle#4 // reg byte x 2002.0 +char atan2_8::angle#5 // reg byte x 2002.0 +char atan2_8::angle#6 // angle zp[1]:14 2001003.0 +char atan2_8::i +char atan2_8::i#1 // i zp[1]:13 1500001.5 +char atan2_8::i#2 // i zp[1]:13 500000.50000000006 +char atan2_8::return +char atan2_8::return#0 // reg byte x 701.0 +char atan2_8::return#2 // reg byte a 202.0 +signed char atan2_8::x +signed char atan2_8::x#0 // x zp[1]:3 157.8846153846154 +signed char atan2_8::xd +signed char atan2_8::xd#0 // xd zp[1]:15 600000.6000000001 +signed char atan2_8::xi +signed char atan2_8::xi#0 // xi zp[1]:12 3003.0 +signed char atan2_8::xi#1 // xi zp[1]:12 666667.3333333334 +signed char atan2_8::xi#2 // xi zp[1]:12 666667.3333333334 +signed char atan2_8::xi#3 // xi zp[1]:12 800201.0 +signed char atan2_8::xi#7 // xi zp[1]:12 1000001.0 +signed char atan2_8::xi#8 // xi zp[1]:12 2002.0 +signed char atan2_8::y +signed char atan2_8::y#0 // y zp[1]:2 146.60714285714286 +signed char atan2_8::yd +signed char atan2_8::yd#0 // reg byte y 1500001.5 +signed char atan2_8::yi +signed char atan2_8::yi#0 // reg byte x 600.5999999999999 +signed char atan2_8::yi#1 // reg byte x 1000001.0 +signed char atan2_8::yi#11 // reg byte x 2002.0 +signed char atan2_8::yi#2 // reg byte x 1000001.0 +signed char atan2_8::yi#3 // reg byte x 857286.7142857142 +signed char atan2_8::yi#7 // reg byte x 1000001.0 +void init_font_hex(char *charset) +char init_font_hex::$0 // zp[1]:15 10001.0 +char init_font_hex::$1 // reg byte a 20002.0 +char init_font_hex::$2 // reg byte a 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // c zp[1]:12 151.5 +char init_font_hex::c#6 // c zp[1]:12 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // c1 zp[1]:13 1501.5 +char init_font_hex::c1#4 // c1 zp[1]:13 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // charset zp[2]:8 350.5 +char *init_font_hex::charset#2 // charset zp[2]:8 1079.0714285714287 +char *init_font_hex::charset#5 // charset zp[2]:8 202.0 +char init_font_hex::i +char init_font_hex::i#1 // reg byte x 15001.5 +char init_font_hex::i#2 // reg byte x 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // idx zp[1]:14 5501.0 +char init_font_hex::idx#3 // reg byte y 2002.0 +char init_font_hex::idx#5 // idx zp[1]:14 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // proto_hi zp[2]:6 67.33333333333333 +char *init_font_hex::proto_hi#6 // proto_hi zp[2]:6 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // proto_lo zp[2]:10 500.5 +char *init_font_hex::proto_lo#4 // proto_lo zp[2]:10 923.3076923076923 void main() -byte main::angle -byte main::angle#0 reg byte a 202.0 -constant byte* main::col00 = COLS+(word)$c*$28+$13 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 42.599999999999994 -byte* main::screen#2 screen zp[2]:4 44.85714285714286 -byte* main::screen#4 screen zp[2]:4 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen -signed byte main::x -signed byte main::x#1 x zp[1]:3 151.5 -signed byte main::x#2 x zp[1]:3 37.875 -signed byte main::y -signed byte main::y#1 y zp[1]:2 16.5 -signed byte main::y#4 y zp[1]:2 11.181818181818182 +char main::angle +char main::angle#0 // reg byte a 202.0 +__constant char *main::col00 = COLS+(unsigned int)$c*$28+$13 +char *main::screen +char *main::screen#1 // screen zp[2]:4 42.599999999999994 +char *main::screen#2 // screen zp[2]:4 44.85714285714286 +char *main::screen#4 // screen zp[2]:4 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen +signed char main::x +signed char main::x#1 // x zp[1]:3 151.5 +signed char main::x#2 // x zp[1]:3 37.875 +signed char main::y +signed char main::y#1 // y zp[1]:2 16.5 +signed char main::y#4 // y zp[1]:2 11.181818181818182 zp[1]:2 [ main::y#4 main::y#1 atan2_8::y#0 ] zp[1]:3 [ main::x#2 main::x#1 atan2_8::x#0 ] @@ -2167,7 +2167,7 @@ main: { .label x = 3 .label y = 2 // init_font_hex(CHARSET) - // [1] call init_font_hex + // [1] call init_font_hex // [18] phi from main to init_font_hex [phi:main->init_font_hex] jsr init_font_hex // [2] phi from main to main::toD0181 [phi:main->main::toD0181] @@ -2204,7 +2204,7 @@ main: { // byte angle = atan2_8(x, y) // [6] atan2_8::x#0 = main::x#2 // [7] atan2_8::y#0 = main::y#4 - // [8] call atan2_8 + // [8] call atan2_8 jsr atan2_8 // [9] atan2_8::return#2 = atan2_8::return#0 -- vbuaa=vbuxx txa @@ -2244,7 +2244,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp(8) charset) +// void init_font_hex(__zp(8) char *charset) init_font_hex: { .label __0 = $f .label idx = $e @@ -2400,7 +2400,7 @@ init_font_hex: { // Find the atan2(x, y) - which is the angle of the line from (0,0) to (x,y) // Finding the angle requires a binary search using CORDIC_ITERATIONS_8 // Returns the angle in hex-degrees (0=0, 0x80=PI, 0x100=2*PI) -// atan2_8(signed byte zp(3) x, signed byte zp(2) y) +// __register(A) char atan2_8(__zp(3) signed char x, __zp(2) signed char y) atan2_8: { .label __7 = $c .label xi = $c diff --git a/src/test/ref/cordic-atan2.sym b/src/test/ref/cordic-atan2.sym index 5aa9f92b5..767a09f1f 100644 --- a/src/test/ref/cordic-atan2.sym +++ b/src/test/ref/cordic-atan2.sym @@ -1,97 +1,97 @@ -constant byte* const CHARSET = (byte*) 8192 -constant byte* const COLS = (byte*) 55296 -constant byte* CORDIC_ATAN2_ANGLES_8[CORDIC_ITERATIONS_8] = kickasm {{ .fill CORDIC_ITERATIONS_8, 2*256*atan(1/pow(2,i))/PI/2 +__constant char * const CHARSET = (char *) 8192 +__constant char * const COLS = (char *) 55296 +__constant char CORDIC_ATAN2_ANGLES_8[CORDIC_ITERATIONS_8] = kickasm {{ .fill CORDIC_ITERATIONS_8, 2*256*atan(1/pow(2,i))/PI/2 }} -constant const byte CORDIC_ITERATIONS_8 = 8 -constant byte* const D018 = (byte*) 53272 -constant byte* FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } -constant byte* const SCREEN = (byte*) 10240 -byte atan2_8(signed byte atan2_8::x , signed byte atan2_8::y) -signed byte~ atan2_8::$2 reg byte x 2002.0 -signed byte~ atan2_8::$7 zp[1]:12 2002.0 -byte atan2_8::angle -byte atan2_8::angle#1 reg byte x 1501.5 -byte atan2_8::angle#11 reg byte x 2002.0 -byte atan2_8::angle#12 angle zp[1]:14 444444.8888888889 -byte atan2_8::angle#13 angle zp[1]:14 1333334.6666666667 -byte atan2_8::angle#2 angle zp[1]:14 2000002.0 -byte atan2_8::angle#3 angle zp[1]:14 2000002.0 -byte atan2_8::angle#4 reg byte x 2002.0 -byte atan2_8::angle#5 reg byte x 2002.0 -byte atan2_8::angle#6 angle zp[1]:14 2001003.0 -byte atan2_8::i -byte atan2_8::i#1 i zp[1]:13 1500001.5 -byte atan2_8::i#2 i zp[1]:13 500000.50000000006 -byte atan2_8::return -byte atan2_8::return#0 reg byte x 701.0 -byte atan2_8::return#2 reg byte a 202.0 -signed byte atan2_8::x -signed byte atan2_8::x#0 x zp[1]:3 157.8846153846154 -signed byte atan2_8::xd -signed byte atan2_8::xd#0 xd zp[1]:15 600000.6000000001 -signed byte atan2_8::xi -signed byte atan2_8::xi#0 xi zp[1]:12 3003.0 -signed byte atan2_8::xi#1 xi zp[1]:12 666667.3333333334 -signed byte atan2_8::xi#2 xi zp[1]:12 666667.3333333334 -signed byte atan2_8::xi#3 xi zp[1]:12 800201.0 -signed byte atan2_8::xi#7 xi zp[1]:12 1000001.0 -signed byte atan2_8::xi#8 xi zp[1]:12 2002.0 -signed byte atan2_8::y -signed byte atan2_8::y#0 y zp[1]:2 146.60714285714286 -signed byte atan2_8::yd -signed byte atan2_8::yd#0 reg byte y 1500001.5 -signed byte atan2_8::yi -signed byte atan2_8::yi#0 reg byte x 600.5999999999999 -signed byte atan2_8::yi#1 reg byte x 1000001.0 -signed byte atan2_8::yi#11 reg byte x 2002.0 -signed byte atan2_8::yi#2 reg byte x 1000001.0 -signed byte atan2_8::yi#3 reg byte x 857286.7142857142 -signed byte atan2_8::yi#7 reg byte x 1000001.0 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 zp[1]:15 10001.0 -byte~ init_font_hex::$1 reg byte a 20002.0 -byte~ init_font_hex::$2 reg byte a 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 c zp[1]:12 151.5 -byte init_font_hex::c#6 c zp[1]:12 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 c1 zp[1]:13 1501.5 -byte init_font_hex::c1#4 c1 zp[1]:13 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 charset zp[2]:8 350.5 -byte* init_font_hex::charset#2 charset zp[2]:8 1079.0714285714287 -byte* init_font_hex::charset#5 charset zp[2]:8 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 reg byte x 15001.5 -byte init_font_hex::i#2 reg byte x 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 idx zp[1]:14 5501.0 -byte init_font_hex::idx#3 reg byte y 2002.0 -byte init_font_hex::idx#5 idx zp[1]:14 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 proto_hi zp[2]:6 67.33333333333333 -byte* init_font_hex::proto_hi#6 proto_hi zp[2]:6 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 proto_lo zp[2]:10 500.5 -byte* init_font_hex::proto_lo#4 proto_lo zp[2]:10 923.3076923076923 +__constant const char CORDIC_ITERATIONS_8 = 8 +__constant char * const D018 = (char *) 53272 +__constant char FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } +__constant char * const SCREEN = (char *) 10240 +char atan2_8(signed char x , signed char y) +signed char atan2_8::$2 // reg byte x 2002.0 +signed char atan2_8::$7 // zp[1]:12 2002.0 +char atan2_8::angle +char atan2_8::angle#1 // reg byte x 1501.5 +char atan2_8::angle#11 // reg byte x 2002.0 +char atan2_8::angle#12 // angle zp[1]:14 444444.8888888889 +char atan2_8::angle#13 // angle zp[1]:14 1333334.6666666667 +char atan2_8::angle#2 // angle zp[1]:14 2000002.0 +char atan2_8::angle#3 // angle zp[1]:14 2000002.0 +char atan2_8::angle#4 // reg byte x 2002.0 +char atan2_8::angle#5 // reg byte x 2002.0 +char atan2_8::angle#6 // angle zp[1]:14 2001003.0 +char atan2_8::i +char atan2_8::i#1 // i zp[1]:13 1500001.5 +char atan2_8::i#2 // i zp[1]:13 500000.50000000006 +char atan2_8::return +char atan2_8::return#0 // reg byte x 701.0 +char atan2_8::return#2 // reg byte a 202.0 +signed char atan2_8::x +signed char atan2_8::x#0 // x zp[1]:3 157.8846153846154 +signed char atan2_8::xd +signed char atan2_8::xd#0 // xd zp[1]:15 600000.6000000001 +signed char atan2_8::xi +signed char atan2_8::xi#0 // xi zp[1]:12 3003.0 +signed char atan2_8::xi#1 // xi zp[1]:12 666667.3333333334 +signed char atan2_8::xi#2 // xi zp[1]:12 666667.3333333334 +signed char atan2_8::xi#3 // xi zp[1]:12 800201.0 +signed char atan2_8::xi#7 // xi zp[1]:12 1000001.0 +signed char atan2_8::xi#8 // xi zp[1]:12 2002.0 +signed char atan2_8::y +signed char atan2_8::y#0 // y zp[1]:2 146.60714285714286 +signed char atan2_8::yd +signed char atan2_8::yd#0 // reg byte y 1500001.5 +signed char atan2_8::yi +signed char atan2_8::yi#0 // reg byte x 600.5999999999999 +signed char atan2_8::yi#1 // reg byte x 1000001.0 +signed char atan2_8::yi#11 // reg byte x 2002.0 +signed char atan2_8::yi#2 // reg byte x 1000001.0 +signed char atan2_8::yi#3 // reg byte x 857286.7142857142 +signed char atan2_8::yi#7 // reg byte x 1000001.0 +void init_font_hex(char *charset) +char init_font_hex::$0 // zp[1]:15 10001.0 +char init_font_hex::$1 // reg byte a 20002.0 +char init_font_hex::$2 // reg byte a 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // c zp[1]:12 151.5 +char init_font_hex::c#6 // c zp[1]:12 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // c1 zp[1]:13 1501.5 +char init_font_hex::c1#4 // c1 zp[1]:13 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // charset zp[2]:8 350.5 +char *init_font_hex::charset#2 // charset zp[2]:8 1079.0714285714287 +char *init_font_hex::charset#5 // charset zp[2]:8 202.0 +char init_font_hex::i +char init_font_hex::i#1 // reg byte x 15001.5 +char init_font_hex::i#2 // reg byte x 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // idx zp[1]:14 5501.0 +char init_font_hex::idx#3 // reg byte y 2002.0 +char init_font_hex::idx#5 // idx zp[1]:14 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // proto_hi zp[2]:6 67.33333333333333 +char *init_font_hex::proto_hi#6 // proto_hi zp[2]:6 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // proto_lo zp[2]:10 500.5 +char *init_font_hex::proto_lo#4 // proto_lo zp[2]:10 923.3076923076923 void main() -byte main::angle -byte main::angle#0 reg byte a 202.0 -constant byte* main::col00 = COLS+(word)$c*$28+$13 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 42.599999999999994 -byte* main::screen#2 screen zp[2]:4 44.85714285714286 -byte* main::screen#4 screen zp[2]:4 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen -signed byte main::x -signed byte main::x#1 x zp[1]:3 151.5 -signed byte main::x#2 x zp[1]:3 37.875 -signed byte main::y -signed byte main::y#1 y zp[1]:2 16.5 -signed byte main::y#4 y zp[1]:2 11.181818181818182 +char main::angle +char main::angle#0 // reg byte a 202.0 +__constant char *main::col00 = COLS+(unsigned int)$c*$28+$13 +char *main::screen +char *main::screen#1 // screen zp[2]:4 42.599999999999994 +char *main::screen#2 // screen zp[2]:4 44.85714285714286 +char *main::screen#4 // screen zp[2]:4 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen +signed char main::x +signed char main::x#1 // x zp[1]:3 151.5 +signed char main::x#2 // x zp[1]:3 37.875 +signed char main::y +signed char main::y#1 // y zp[1]:2 16.5 +signed char main::y#4 // y zp[1]:2 11.181818181818182 zp[1]:2 [ main::y#4 main::y#1 atan2_8::y#0 ] zp[1]:3 [ main::x#2 main::x#1 atan2_8::x#0 ] diff --git a/src/test/ref/cpu-45gs02-addressing-modes.log b/src/test/ref/cpu-45gs02-addressing-modes.log index 7d3cb3750..d74662c1d 100644 --- a/src/test/ref/cpu-45gs02-addressing-modes.log +++ b/src/test/ref/cpu-45gs02-addressing-modes.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,7 +22,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* far[] = { $60 } +__constant char far[] = { $60 } void main() Removing unused procedure __start @@ -30,7 +30,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $2000 +Finalized unsigned number type (unsigned int) $2000 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -122,7 +122,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* far[] = { $60 } +__constant char far[] = { $60 } void main() diff --git a/src/test/ref/cpu-45gs02-addressing-modes.sym b/src/test/ref/cpu-45gs02-addressing-modes.sym index 7738e4ced..96e3961b3 100644 --- a/src/test/ref/cpu-45gs02-addressing-modes.sym +++ b/src/test/ref/cpu-45gs02-addressing-modes.sym @@ -1,3 +1,3 @@ -constant byte* far[] = { $60 } +__constant char far[] = { $60 } void main() diff --git a/src/test/ref/cpu-45gs02.log b/src/test/ref/cpu-45gs02.log index 8bfecccae..dd27034e4 100644 --- a/src/test/ref/cpu-45gs02.log +++ b/src/test/ref/cpu-45gs02.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -37,7 +37,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -46,33 +46,33 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant dword* SCREEN = (byte*)$400 +__constant unsigned long *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -dword main::addend -dword main::addend#0 -dword main::addend#1 -dword main::addend#2 -dword main::addend#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -dword main::sum -dword main::sum#0 -dword main::sum#1 -dword main::sum#2 -dword main::sum#3 -dword main::sum#4 +bool main::$0 +unsigned long main::addend +unsigned long main::addend#0 +unsigned long main::addend#1 +unsigned long main::addend#2 +unsigned long main::addend#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +unsigned long main::sum +unsigned long main::sum#0 +unsigned long main::sum#1 +unsigned long main::sum#2 +unsigned long main::sum#3 +unsigned long main::sum#4 Adding number conversion cast (unumber) $64 in main::$0 = main::i#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::sum#2 = main::sum#4 main::sum#3 Alias main::addend#2 = main::addend#3 @@ -135,15 +135,15 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -dword main::addend -dword main::addend#1 11.0 -dword main::addend#2 11.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 -dword main::sum -dword main::sum#1 7.333333333333333 -dword main::sum#2 12.0 +unsigned long main::addend +unsigned long main::addend#1 // 11.0 +unsigned long main::addend#2 // 11.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 +unsigned long main::sum +unsigned long main::sum#1 // 7.333333333333333 +unsigned long main::sum#2 // 12.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -291,17 +291,17 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant dword* SCREEN = (byte*) 1024 +__constant unsigned long *SCREEN = (char *) 1024 void main() -dword main::addend -dword main::addend#1 addend zp[4]:7 11.0 -dword main::addend#2 addend zp[4]:7 11.0 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 11.0 -dword main::sum -dword main::sum#1 sum zp[4]:3 7.333333333333333 -dword main::sum#2 sum zp[4]:3 12.0 +unsigned long main::addend +unsigned long main::addend#1 // addend zp[4]:7 11.0 +unsigned long main::addend#2 // addend zp[4]:7 11.0 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 11.0 +unsigned long main::sum +unsigned long main::sum#1 // sum zp[4]:3 7.333333333333333 +unsigned long main::sum#2 // sum zp[4]:3 12.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[4]:3 [ main::sum#2 main::sum#1 ] diff --git a/src/test/ref/cpu-45gs02.sym b/src/test/ref/cpu-45gs02.sym index 21782ac27..3e3e521fe 100644 --- a/src/test/ref/cpu-45gs02.sym +++ b/src/test/ref/cpu-45gs02.sym @@ -1,14 +1,14 @@ -constant dword* SCREEN = (byte*) 1024 +__constant unsigned long *SCREEN = (char *) 1024 void main() -dword main::addend -dword main::addend#1 addend zp[4]:7 11.0 -dword main::addend#2 addend zp[4]:7 11.0 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 11.0 -dword main::sum -dword main::sum#1 sum zp[4]:3 7.333333333333333 -dword main::sum#2 sum zp[4]:3 12.0 +unsigned long main::addend +unsigned long main::addend#1 // addend zp[4]:7 11.0 +unsigned long main::addend#2 // addend zp[4]:7 11.0 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 11.0 +unsigned long main::sum +unsigned long main::sum#1 // sum zp[4]:3 7.333333333333333 +unsigned long main::sum#2 // sum zp[4]:3 12.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[4]:3 [ main::sum#2 main::sum#1 ] diff --git a/src/test/ref/cpu-6502.log b/src/test/ref/cpu-6502.log index 13fcda4ca..6b1755374 100644 --- a/src/test/ref/cpu-6502.log +++ b/src/test/ref/cpu-6502.log @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,19 +43,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c#4 -byte main::c#5 -byte main::c#6 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +number main::$1 +bool main::$2 +bool main::$3 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c#4 +char main::c#5 +char main::c#6 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $64 in main::$0 = main::c#3 < $64 Adding number conversion cast (unumber) 4 in main::$1 = main::c#4 & 4 @@ -63,18 +63,18 @@ Adding number conversion cast (unumber) main::$1 in main::$1 = main::c#4 & (unum Adding number conversion cast (unumber) 0 in main::$2 = main::$1 == 0 Adding number conversion cast (unumber) 5 in main::c#2 = main::c#6 + 5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $64 Simplifying constant integer cast 4 Simplifying constant integer cast 0 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::c#4 & 4 +Inferred type updated to char in main::$1 = main::c#4 & 4 Inversing boolean not [8] main::$3 = main::$1 != 0 from [7] main::$2 = main::$1 == 0 Successful SSA optimization Pass2UnaryNotSimplification Alias main::c#3 = main::c#4 main::c#6 @@ -133,12 +133,12 @@ main::@3: scope:[main] from main::@2 main::@4 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::c -byte main::c#1 22.0 -byte main::c#2 22.0 -byte main::c#3 13.2 -byte main::c#5 33.0 +char main::$1 // 22.0 +char main::c +char main::c#1 // 22.0 +char main::c#2 // 22.0 +char main::c#3 // 13.2 +char main::c#5 // 33.0 Initial phi equivalence classes [ main::c#5 main::c#3 main::c#1 main::c#2 ] @@ -253,13 +253,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte main::c -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 22.0 -byte main::c#3 reg byte x 13.2 -byte main::c#5 reg byte x 33.0 -constant byte* const main::screen = (byte*) 1024 +char main::$1 // reg byte a 22.0 +char main::c +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 22.0 +char main::c#3 // reg byte x 13.2 +char main::c#5 // reg byte x 33.0 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::c#5 main::c#3 main::c#1 main::c#2 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/cpu-6502.sym b/src/test/ref/cpu-6502.sym index 4252f194a..ebfb7d331 100644 --- a/src/test/ref/cpu-6502.sym +++ b/src/test/ref/cpu-6502.sym @@ -1,11 +1,11 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte main::c -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 22.0 -byte main::c#3 reg byte x 13.2 -byte main::c#5 reg byte x 33.0 -constant byte* const main::screen = (byte*) 1024 +char main::$1 // reg byte a 22.0 +char main::c +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 22.0 +char main::c#3 // reg byte x 13.2 +char main::c#5 // reg byte x 33.0 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::c#5 main::c#3 main::c#1 main::c#2 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/cpu-65c02.log b/src/test/ref/cpu-65c02.log index 7694d62df..a24433c0d 100644 --- a/src/test/ref/cpu-65c02.log +++ b/src/test/ref/cpu-65c02.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,28 +22,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -number~ main::$0 -byte main::a -byte main::a#0 +number main::$0 +char main::a +char main::a#0 Adding number conversion cast (unumber) 0 in main::a#0 = SCREEN[0] Adding number conversion cast (unumber) 1 in main::$0 = main::a#0 + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::a#0 + (unumber)1 Adding number conversion cast (unumber) 1 in SCREEN[1] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::a#0 + 1 +Inferred type updated to char in main::$0 = main::a#0 + 1 Simplifying expression containing zero SCREEN in [0] main::a#0 = SCREEN[0] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start @@ -73,9 +73,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte main::a -byte main::a#0 4.0 +char main::$0 // 4.0 +char main::a +char main::a#0 // 4.0 Initial phi equivalence classes Added variable main::a#0 to live range equivalence class [ main::a#0 ] @@ -136,11 +136,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 4.0 -byte main::a -byte main::a#0 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::a +char main::a#0 // reg byte a 4.0 reg byte a [ main::a#0 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/cpu-65c02.sym b/src/test/ref/cpu-65c02.sym index ec7fe11b6..1bed92a44 100644 --- a/src/test/ref/cpu-65c02.sym +++ b/src/test/ref/cpu-65c02.sym @@ -1,8 +1,8 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 4.0 -byte main::a -byte main::a#0 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::a +char main::a#0 // reg byte a 4.0 reg byte a [ main::a#0 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/cpu-65ce02-addressing-modes.log b/src/test/ref/cpu-65ce02-addressing-modes.log index 44c2a2d67..912b909d1 100644 --- a/src/test/ref/cpu-65ce02-addressing-modes.log +++ b/src/test/ref/cpu-65ce02-addressing-modes.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,7 +22,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* far[] = { $60 } +__constant char far[] = { $60 } void main() Removing unused procedure __start @@ -30,7 +30,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $2000 +Finalized unsigned number type (unsigned int) $2000 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -121,7 +121,7 @@ Removing unreachable instruction rts Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant byte* far[] = { $60 } +__constant char far[] = { $60 } void main() diff --git a/src/test/ref/cpu-65ce02-addressing-modes.sym b/src/test/ref/cpu-65ce02-addressing-modes.sym index 7738e4ced..96e3961b3 100644 --- a/src/test/ref/cpu-65ce02-addressing-modes.sym +++ b/src/test/ref/cpu-65ce02-addressing-modes.sym @@ -1,3 +1,3 @@ -constant byte* far[] = { $60 } +__constant char far[] = { $60 } void main() diff --git a/src/test/ref/cpu-65ce02-b.log b/src/test/ref/cpu-65ce02-b.log index 825d6d85c..485eec83e 100644 --- a/src/test/ref/cpu-65ce02-b.log +++ b/src/test/ref/cpu-65ce02-b.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,22 +30,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i !reg byte z -byte main::i#0 !reg byte z -byte main::i#1 !reg byte z -byte main::i#2 !reg byte z -byte main::i#3 !reg byte z +bool main::$0 +char main::i // !reg byte z +char main::i#0 // !reg byte z +char main::i#1 // !reg byte z +char main::i#2 // !reg byte z +char main::i#3 // !reg byte z Adding number conversion cast (unumber) $64 in main::$0 = main::i#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -90,9 +90,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i !reg byte z -byte main::i#1 !reg byte z 22.0 -byte main::i#2 !reg byte z 18.333333333333332 +char main::i // !reg byte z +char main::i#1 // !reg byte z 22.0 +char main::i#2 // !reg byte z 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -169,11 +169,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i !reg byte z -byte main::i#1 !reg byte z 22.0 -byte main::i#2 !reg byte z 18.333333333333332 +char main::i // !reg byte z +char main::i#1 // !reg byte z 22.0 +char main::i#2 // !reg byte z 18.333333333333332 reg byte z [ main::i#2 main::i#1 ] diff --git a/src/test/ref/cpu-65ce02-b.sym b/src/test/ref/cpu-65ce02-b.sym index ce38b5cf9..2a4d7e7ea 100644 --- a/src/test/ref/cpu-65ce02-b.sym +++ b/src/test/ref/cpu-65ce02-b.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i !reg byte z -byte main::i#1 !reg byte z 22.0 -byte main::i#2 !reg byte z 18.333333333333332 +char main::i // !reg byte z +char main::i#1 // !reg byte z 22.0 +char main::i#2 // !reg byte z 18.333333333333332 reg byte z [ main::i#2 main::i#1 ] diff --git a/src/test/ref/cpu-65ce02.log b/src/test/ref/cpu-65ce02.log index d628242e5..196ef627c 100644 --- a/src/test/ref/cpu-65ce02.log +++ b/src/test/ref/cpu-65ce02.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,14 +25,14 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant signed byte* const SCREEN = (signed byte*)$400 +__constant signed char * const SCREEN = (signed char *)$400 void __start() void main() -signed byte~ main::$0 -number~ main::$1 -signed byte main::a -signed byte main::a#0 -signed byte main::a#1 +signed char main::$0 +number main::$1 +signed char main::a +signed char main::a#0 +signed char main::a#1 Adding number conversion cast (unumber) 0 in main::a#0 = SCREEN[0] Adding number conversion cast (unumber) 1 in SCREEN[1] = main::a#1 @@ -40,18 +40,18 @@ Adding number conversion cast (snumber) 4 in main::$1 = main::a#1 / 4 Adding number conversion cast (snumber) main::$1 in main::$1 = main::a#1 / (snumber)4 Adding number conversion cast (unumber) 2 in SCREEN[2] = main::$1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (signed byte*) 1024 +Simplifying constant pointer cast (signed char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) 4 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) 4 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed byte in main::$1 = main::a#1 / 4 +Inferred type updated to signed char in main::$1 = main::a#1 / 4 Alias main::a#1 = main::$0 Successful SSA optimization Pass2AliasElimination Simplifying expression containing zero SCREEN in [0] main::a#0 = SCREEN[0] @@ -88,10 +88,10 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -signed byte~ main::$1 4.0 -signed byte main::a -signed byte main::a#0 4.0 -signed byte main::a#1 3.0 +signed char main::$1 // 4.0 +signed char main::a +signed char main::a#0 // 4.0 +signed char main::a#1 // 3.0 Initial phi equivalence classes Added variable main::a#0 to live range equivalence class [ main::a#0 ] @@ -165,12 +165,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant signed byte* const SCREEN = (signed byte*) 1024 +__constant signed char * const SCREEN = (signed char *) 1024 void main() -signed byte~ main::$1 reg byte a 4.0 -signed byte main::a -signed byte main::a#0 reg byte a 4.0 -signed byte main::a#1 reg byte a 3.0 +signed char main::$1 // reg byte a 4.0 +signed char main::a +signed char main::a#0 // reg byte a 4.0 +signed char main::a#1 // reg byte a 3.0 reg byte a [ main::a#0 ] reg byte a [ main::a#1 ] diff --git a/src/test/ref/cpu-65ce02.sym b/src/test/ref/cpu-65ce02.sym index 21a0a2c43..b93bed770 100644 --- a/src/test/ref/cpu-65ce02.sym +++ b/src/test/ref/cpu-65ce02.sym @@ -1,9 +1,9 @@ -constant signed byte* const SCREEN = (signed byte*) 1024 +__constant signed char * const SCREEN = (signed char *) 1024 void main() -signed byte~ main::$1 reg byte a 4.0 -signed byte main::a -signed byte main::a#0 reg byte a 4.0 -signed byte main::a#1 reg byte a 3.0 +signed char main::$1 // reg byte a 4.0 +signed char main::a +signed char main::a#0 // reg byte a 4.0 +signed char main::a#1 // reg byte a 3.0 reg byte a [ main::a#0 ] reg byte a [ main::a#1 ] diff --git a/src/test/ref/cstyle-decl-function.asm b/src/test/ref/cstyle-decl-function.asm index 9acb332fe..20d5e4e96 100644 --- a/src/test/ref/cstyle-decl-function.asm +++ b/src/test/ref/cstyle-decl-function.asm @@ -29,7 +29,7 @@ main: { rts } // Definition of sum() -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b stx.z $ff diff --git a/src/test/ref/cstyle-decl-function.cfg b/src/test/ref/cstyle-decl-function.cfg index 96b53b996..e4bfd2154 100644 --- a/src/test/ref/cstyle-decl-function.cfg +++ b/src/test/ref/cstyle-decl-function.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#0 = sum::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#0 [4] *SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#1 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 [10] sum::b#2 = phi( main/2, main::@1/$c ) [10] sum::a#2 = phi( main/'a', main::@1/'a' ) diff --git a/src/test/ref/cstyle-decl-function.log b/src/test/ref/cstyle-decl-function.log index 082dd1436..85b67ab57 100644 --- a/src/test/ref/cstyle-decl-function.log +++ b/src/test/ref/cstyle-decl-function.log @@ -5,7 +5,7 @@ void main() main: scope:[main] from __start sum::a#0 = 'a' sum::b#0 = 2 - call sum + call sum sum::return#0 = sum::return#3 to:main::@1 main::@1: scope:[main] from main @@ -14,7 +14,7 @@ main::@1: scope:[main] from main SCREEN[0] = main::$0 sum::a#1 = 'a' sum::b#1 = $c - call sum + call sum sum::return#1 = sum::return#3 to:main::@2 main::@2: scope:[main] from main::@1 @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 sum::b#2 = phi( main/sum::b#0, main::@1/sum::b#1 ) sum::a#2 = phi( main/sum::a#0, main::@1/sum::a#1 ) @@ -41,7 +41,7 @@ sum::@return: scope:[sum] from sum void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -50,29 +50,29 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 +char main::$0 +char main::$1 +char sum(char a , char b) +char sum::$0 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 Adding number conversion cast (unumber) 2 in sum::b#0 = 2 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 @@ -82,16 +82,16 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast sum::b#0 = (unumber)2 Inlining cast sum::b#1 = (unumber)$c Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast $c Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias sum::return#0 = sum::return#4 Alias sum::return#1 = sum::return#5 @@ -133,13 +133,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#0 = sum::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#0 [4] *SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#1 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -150,7 +150,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 [10] sum::b#2 = phi( main/2, main::@1/$c ) [10] sum::a#2 = phi( main/'a', main::@1/'a' ) @@ -163,17 +163,17 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#2 11.0 -byte sum::b -byte sum::b#2 11.0 -byte sum::return -byte sum::return#0 4.0 -byte sum::return#1 4.0 -byte sum::return#2 3.75 +char main::$0 // 4.0 +char main::$1 // 4.0 +char sum(char a , char b) +char sum::a +char sum::a#2 // 11.0 +char sum::b +char sum::b#2 // 11.0 +char sum::return +char sum::return#0 // 4.0 +char sum::return#1 // 4.0 +char sum::return#2 // 3.75 Initial phi equivalence classes [ sum::a#2 ] @@ -238,7 +238,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main // Definition of main() main: { - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] sum_from_main: // [10] phi sum::b#2 = 2 [phi:main->sum#0] -- vbuaa=vbuc1 @@ -253,7 +253,7 @@ main: { // [3] main::$0 = sum::return#0 // [4] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [10] phi sum::b#2 = $c [phi:main::@1->sum#0] -- vbuaa=vbuc1 @@ -276,7 +276,7 @@ main: { } // sum // Definition of sum() -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // [11] sum::return#2 = sum::a#2 + sum::b#2 -- vbuaa=vbuxx_plus_vbuaa stx.z $ff @@ -305,19 +305,19 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#2 reg byte x 11.0 -byte sum::b -byte sum::b#2 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -byte sum::return#1 reg byte a 4.0 -byte sum::return#2 reg byte a 3.75 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char sum(char a , char b) +char sum::a +char sum::a#2 // reg byte x 11.0 +char sum::b +char sum::b#2 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +char sum::return#1 // reg byte a 4.0 +char sum::return#2 // reg byte a 3.75 reg byte x [ sum::a#2 ] reg byte a [ sum::b#2 ] @@ -349,7 +349,7 @@ Score: 48 // Definition of main() main: { // sum('a', 2) - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] // [10] phi sum::b#2 = 2 [phi:main->sum#0] -- vbuaa=vbuc1 lda #2 @@ -364,7 +364,7 @@ main: { // [4] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // sum('a', 12) - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] // [10] phi sum::b#2 = $c [phi:main::@1->sum#0] -- vbuaa=vbuc1 lda #$c @@ -385,7 +385,7 @@ main: { } // sum // Definition of sum() -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b // [11] sum::return#2 = sum::a#2 + sum::b#2 -- vbuaa=vbuxx_plus_vbuaa diff --git a/src/test/ref/cstyle-decl-function.sym b/src/test/ref/cstyle-decl-function.sym index aefaeefb8..d0e860247 100644 --- a/src/test/ref/cstyle-decl-function.sym +++ b/src/test/ref/cstyle-decl-function.sym @@ -1,16 +1,16 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#2 reg byte x 11.0 -byte sum::b -byte sum::b#2 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -byte sum::return#1 reg byte a 4.0 -byte sum::return#2 reg byte a 3.75 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char sum(char a , char b) +char sum::a +char sum::a#2 // reg byte x 11.0 +char sum::b +char sum::b#2 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +char sum::return#1 // reg byte a 4.0 +char sum::return#2 // reg byte a 3.75 reg byte x [ sum::a#2 ] reg byte a [ sum::b#2 ] diff --git a/src/test/ref/cstyle-decl-var-multiple.log b/src/test/ref/cstyle-decl-var-multiple.log index e37a99a08..d17b0273d 100644 --- a/src/test/ref/cstyle-decl-var-multiple.log +++ b/src/test/ref/cstyle-decl-var-multiple.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -43,7 +43,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#11 = phi( __start::__init1/idx#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#7 = phi( __start::@1/idx#1 ) @@ -56,37 +56,37 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$0 -bool~ main::$1 -byte main::c1 -byte main::c1#0 -byte main::c1#1 -byte main::c1#2 -byte main::c1#3 -byte main::c1#4 -byte main::c2 -byte main::c2#0 -byte main::c2#1 -byte main::c2#2 +bool main::$0 +bool main::$1 +char main::c1 +char main::c1#0 +char main::c1#1 +char main::c1#2 +char main::c1#3 +char main::c1#4 +char main::c2 +char main::c2#0 +char main::c2#1 +char main::c2#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::c1#2 = main::c1#3 Alias idx#0 = idx#10 idx#6 idx#1 @@ -121,8 +121,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::c1#0 Inlining constant with var siblings main::c2#0 @@ -175,17 +175,17 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#0 42.599999999999994 -byte idx#5 157.0 -byte idx#9 22.0 +char idx +char idx#0 // 42.599999999999994 +char idx#5 // 157.0 +char idx#9 // 22.0 void main() -byte main::c1 -byte main::c1#1 16.5 -byte main::c1#4 3.6666666666666665 -byte main::c2 -byte main::c2#1 151.5 -byte main::c2#2 67.33333333333333 +char main::c1 +char main::c1#1 // 16.5 +char main::c1#4 // 3.6666666666666665 +char main::c2 +char main::c2#1 // 151.5 +char main::c2#2 // 67.33333333333333 Initial phi equivalence classes [ main::c1#4 main::c1#1 ] @@ -313,18 +313,18 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#0 reg byte y 42.599999999999994 -byte idx#5 reg byte y 157.0 -byte idx#9 reg byte y 22.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#0 // reg byte y 42.599999999999994 +char idx#5 // reg byte y 157.0 +char idx#9 // reg byte y 22.0 void main() -byte main::c1 -byte main::c1#1 c1 zp[1]:2 16.5 -byte main::c1#4 c1 zp[1]:2 3.6666666666666665 -byte main::c2 -byte main::c2#1 reg byte x 151.5 -byte main::c2#2 reg byte x 67.33333333333333 +char main::c1 +char main::c1#1 // c1 zp[1]:2 16.5 +char main::c1#4 // c1 zp[1]:2 3.6666666666666665 +char main::c2 +char main::c2#1 // reg byte x 151.5 +char main::c2#2 // reg byte x 67.33333333333333 zp[1]:2 [ main::c1#4 main::c1#1 ] reg byte y [ idx#5 idx#9 idx#0 ] diff --git a/src/test/ref/cstyle-decl-var-multiple.sym b/src/test/ref/cstyle-decl-var-multiple.sym index 381220ef8..2c7839c3c 100644 --- a/src/test/ref/cstyle-decl-var-multiple.sym +++ b/src/test/ref/cstyle-decl-var-multiple.sym @@ -1,15 +1,15 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#0 reg byte y 42.599999999999994 -byte idx#5 reg byte y 157.0 -byte idx#9 reg byte y 22.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#0 // reg byte y 42.599999999999994 +char idx#5 // reg byte y 157.0 +char idx#9 // reg byte y 22.0 void main() -byte main::c1 -byte main::c1#1 c1 zp[1]:2 16.5 -byte main::c1#4 c1 zp[1]:2 3.6666666666666665 -byte main::c2 -byte main::c2#1 reg byte x 151.5 -byte main::c2#2 reg byte x 67.33333333333333 +char main::c1 +char main::c1#1 // c1 zp[1]:2 16.5 +char main::c1#4 // c1 zp[1]:2 3.6666666666666665 +char main::c2 +char main::c2#1 // reg byte x 151.5 +char main::c2#2 // reg byte x 67.33333333333333 zp[1]:2 [ main::c1#4 main::c1#1 ] reg byte y [ idx#5 idx#9 idx#0 ] diff --git a/src/test/ref/cstyle-decl-var.log b/src/test/ref/cstyle-decl-var.log index 058aa0080..b4a946de8 100644 --- a/src/test/ref/cstyle-decl-var.log +++ b/src/test/ref/cstyle-decl-var.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#11 = phi( __start::__init1/idx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#9 = phi( __start::@1/idx#3 ) @@ -39,24 +39,24 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#2 = idx#8 idx#3 Alias idx#11 = idx#4 @@ -120,7 +120,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() Initial phi equivalence classes @@ -180,8 +180,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx +__constant char * const SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/cstyle-decl-var.sym b/src/test/ref/cstyle-decl-var.sym index 85c8bdd41..e82d9e333 100644 --- a/src/test/ref/cstyle-decl-var.sym +++ b/src/test/ref/cstyle-decl-var.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx +__constant char * const SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/danny-joystick-problem.cfg b/src/test/ref/danny-joystick-problem.cfg index 5cf8197f4..631125544 100644 --- a/src/test/ref/danny-joystick-problem.cfg +++ b/src/test/ref/danny-joystick-problem.cfg @@ -1,9 +1,9 @@ void main() main: scope:[main] from - [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f + [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f asm { lda#0 } - [2] main::port4Value#0 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [2] main::port4Value#0 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [3] *SCREEN = main::port4Value#0 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/danny-joystick-problem.log b/src/test/ref/danny-joystick-problem.log index 2a3177a3a..e0389bbf1 100644 --- a/src/test/ref/danny-joystick-problem.log +++ b/src/test/ref/danny-joystick-problem.log @@ -4,9 +4,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f asm { lda#0 } - main::port4Value#0 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + main::port4Value#0 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) *SCREEN = main::port4Value#0 to:main::@return main::@return: scope:[main] from main @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,21 +24,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte* const SCREEN = (byte*)$400 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte main::port4Value -byte main::port4Value#0 +char main::port4Value +char main::port4Value#0 -Adding number conversion cast (unumber) $7f in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f +Adding number conversion cast (unumber) $7f in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $7f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $7f +Finalized unsigned number type (char) $7f Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -54,9 +54,9 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f + [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f asm { lda#0 } - [2] main::port4Value#0 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [2] main::port4Value#0 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [3] *SCREEN = main::port4Value#0 to:main::@return main::@return: scope:[main] from main @@ -66,8 +66,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::port4Value -byte main::port4Value#0 4.0 +char main::port4Value +char main::port4Value#0 // 4.0 Initial phi equivalence classes Added variable main::port4Value#0 to live range equivalence class [ main::port4Value#0 ] @@ -75,7 +75,7 @@ Complete equivalence classes [ main::port4Value#0 ] Allocated zp[1]:2 [ main::port4Value#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f [ ] ( [ ] { } ) always clobbers reg byte a Statement asm { lda#0 } always clobbers reg byte a Potential registers zp[1]:2 [ main::port4Value#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -113,13 +113,13 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #$7f and CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B // asm { lda#0 } lda #0 - // [2] main::port4Value#0 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_deref_pbuc1 + // [2] main::port4Value#0 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_deref_pbuc1 lda CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B // [3] *SCREEN = main::port4Value#0 -- _deref_pbuc1=vbuaa sta SCREEN @@ -138,12 +138,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::port4Value -byte main::port4Value#0 reg byte a 4.0 +char main::port4Value +char main::port4Value#0 // reg byte a 4.0 reg byte a [ main::port4Value#0 ] @@ -172,7 +172,7 @@ Score: 26 // main main: { // (CIA2->PORT_B) &= 0x7f - // [0] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [0] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #$7f and CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B @@ -180,7 +180,7 @@ main: { // asm { lda#0 } lda #0 // char port4Value = CIA2->PORT_B - // [2] main::port4Value#0 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_deref_pbuc1 + // [2] main::port4Value#0 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_deref_pbuc1 lda CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_B // *SCREEN = port4Value // [3] *SCREEN = main::port4Value#0 -- _deref_pbuc1=vbuaa diff --git a/src/test/ref/danny-joystick-problem.sym b/src/test/ref/danny-joystick-problem.sym index 6e2ac81f7..7c050f2a1 100644 --- a/src/test/ref/danny-joystick-problem.sym +++ b/src/test/ref/danny-joystick-problem.sym @@ -1,8 +1,8 @@ -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::port4Value -byte main::port4Value#0 reg byte a 4.0 +char main::port4Value +char main::port4Value#0 // reg byte a 4.0 reg byte a [ main::port4Value#0 ] diff --git a/src/test/ref/declared-memory-var-0.log b/src/test/ref/declared-memory-var-0.log index 0017b2035..81c78847c 100644 --- a/src/test/ref/declared-memory-var-0.log +++ b/src/test/ref/declared-memory-var-0.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,17 +28,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx loadstore = 0 +__loadstore char idx = 0 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -55,7 +55,7 @@ Adding number conversion cast (unumber) 6 in [4] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -89,11 +89,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte idx loadstore 5.5 = 0 +__loadstore char idx = 0 // 5.5 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -186,12 +186,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx loadstore mem[1] 5.5 = 0 +__constant char * const SCREEN = (char *) 1024 +__loadstore char idx = 0 // mem[1] 5.5 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] mem[1] [ idx ] diff --git a/src/test/ref/declared-memory-var-0.sym b/src/test/ref/declared-memory-var-0.sym index 9e6334000..45f139f19 100644 --- a/src/test/ref/declared-memory-var-0.sym +++ b/src/test/ref/declared-memory-var-0.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx loadstore mem[1] 5.5 = 0 +__constant char * const SCREEN = (char *) 1024 +__loadstore char idx = 0 // mem[1] 5.5 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] mem[1] [ idx ] diff --git a/src/test/ref/declared-memory-var-1.log b/src/test/ref/declared-memory-var-1.log index ed527a2e6..d9969da52 100644 --- a/src/test/ref/declared-memory-var-1.log +++ b/src/test/ref/declared-memory-var-1.log @@ -1,5 +1,5 @@ Setting inferred volatile on symbol affected by address-of idx_p = &idx -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -25,7 +25,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -34,18 +34,18 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte idx loadstore = 0 -constant byte* idx_p = &idx +__loadstore volatile char idx = 0 +__constant char *idx_p = &idx void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -64,7 +64,7 @@ Adding number conversion cast (unumber) 6 in [4] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -98,11 +98,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -volatile byte idx loadstore = 0 +__loadstore volatile char idx = 0 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -197,13 +197,13 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -volatile byte idx loadstore mem[1] = 0 -constant byte* idx_p = &idx +__constant char * const SCREEN = (char *) 1024 +__loadstore volatile char idx = 0 // mem[1] +__constant char *idx_p = &idx void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] mem[1] [ idx ] diff --git a/src/test/ref/declared-memory-var-1.sym b/src/test/ref/declared-memory-var-1.sym index 04cee7c11..4de9128ff 100644 --- a/src/test/ref/declared-memory-var-1.sym +++ b/src/test/ref/declared-memory-var-1.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 -volatile byte idx loadstore mem[1] = 0 -constant byte* idx_p = &idx +__constant char * const SCREEN = (char *) 1024 +__loadstore volatile char idx = 0 // mem[1] +__constant char *idx_p = &idx void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] mem[1] [ idx ] diff --git a/src/test/ref/declared-memory-var-2.log b/src/test/ref/declared-memory-var-2.log index 1ab103d62..7d8a81e20 100644 --- a/src/test/ref/declared-memory-var-2.log +++ b/src/test/ref/declared-memory-var-2.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,22 +28,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte* cursor loadstore = SCREEN +__loadstore char *cursor = SCREEN void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) $29 in cursor = cursor + $29 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $29 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $29 +Finalized unsigned number type (char) $29 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,$18)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -60,7 +60,7 @@ Adding number conversion cast (unumber) $19 in [4] if(main::i#1!=$19) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -94,11 +94,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte* cursor loadstore 5.5 = SCREEN +__loadstore char *cursor = SCREEN // 5.5 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.333333333333333 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -199,12 +199,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte* cursor loadstore mem[2] 5.5 = SCREEN +__constant char * const SCREEN = (char *) 1024 +__loadstore char *cursor = SCREEN // mem[2] 5.5 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] mem[2] [ cursor ] diff --git a/src/test/ref/declared-memory-var-2.sym b/src/test/ref/declared-memory-var-2.sym index 9bc63747f..75eeb06e1 100644 --- a/src/test/ref/declared-memory-var-2.sym +++ b/src/test/ref/declared-memory-var-2.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 -byte* cursor loadstore mem[2] 5.5 = SCREEN +__constant char * const SCREEN = (char *) 1024 +__loadstore char *cursor = SCREEN // mem[2] 5.5 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] mem[2] [ cursor ] diff --git a/src/test/ref/declared-memory-var-3.cfg b/src/test/ref/declared-memory-var-3.cfg index 9aab0e099..6837d1f83 100644 --- a/src/test/ref/declared-memory-var-3.cfg +++ b/src/test/ref/declared-memory-var-3.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)main::barp) - [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) + [0] *main::SCREEN = *((char *)main::barp) + [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/declared-memory-var-3.log b/src/test/ref/declared-memory-var-3.log index feef10834..550b7e3c0 100644 --- a/src/test/ref/declared-memory-var-3.log +++ b/src/test/ref/declared-memory-var-3.log @@ -5,11 +5,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::i#0 = 0 - main::$2 = (byte*)main::barp + main::$2 = (char *)main::barp main::$0 = main::$2 + OFFSET_STRUCT_FOO_THING1 main::SCREEN[main::i#0] = *main::$0 main::i#1 = ++ main::i#0 - main::$3 = (byte*)main::barp + main::$3 = (char *)main::barp main::$1 = main::$3 + OFFSET_STRUCT_FOO_THING2 main::SCREEN[main::i#1] = *main::$1 main::i#2 = ++ main::i#1 @@ -20,7 +20,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,30 +29,30 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_FOO_THING1 = 0 -constant byte OFFSET_STRUCT_FOO_THING2 = 1 +__constant char OFFSET_STRUCT_FOO_THING1 = 0 +__constant char OFFSET_STRUCT_FOO_THING2 = 1 void __start() -volatile struct foo bar loadstore = { thing1: 'a', thing2: 'b' } +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b' } void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -constant byte* const main::SCREEN = (byte*)$400 -constant struct foo* main::barp = &bar -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +__constant char * const main::SCREEN = (char *)$400 +__constant struct foo *main::barp = &bar +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Constant right-side identified [1] main::$2 = (byte*)main::barp -Constant right-side identified [5] main::$3 = (byte*)main::barp +Constant right-side identified [1] main::$2 = (char *)main::barp +Constant right-side identified [5] main::$3 = (char *)main::barp Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$2 = (byte*)main::barp -Constant main::$3 = (byte*)main::barp +Constant main::$2 = (char *)main::barp +Constant main::$3 = (char *)main::barp Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [3] main::SCREEN[main::i#0] = *main::$0 -- main::$2[OFFSET_STRUCT_FOO_THING1] Converting *(pointer+n) to pointer[n] [7] main::SCREEN[main::i#1] = *main::$1 -- main::$3[OFFSET_STRUCT_FOO_THING2] @@ -78,11 +78,11 @@ Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::i#0 Inlining constant with different constant siblings main::i#1 Constant inlined main::i#0 = 0 -Constant inlined main::$3 = (byte*)main::barp +Constant inlined main::$3 = (char *)main::barp Constant inlined main::i#1 = ++0 -Constant inlined main::$2 = (byte*)main::barp +Constant inlined main::$2 = (char *)main::barp Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) +Consolidated array index constant in *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) Consolidated array index constant in *(main::SCREEN+++0) Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++0 @@ -96,8 +96,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)main::barp) - [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) + [0] *main::SCREEN = *((char *)main::barp) + [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) to:main::@return main::@return: scope:[main] from main [2] return @@ -105,9 +105,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -volatile struct foo bar loadstore = { thing1: 'a', thing2: 'b' } +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b' } void main() -byte main::i +char main::i Initial phi equivalence classes Added variable bar to live range equivalence class [ bar ] @@ -115,8 +115,8 @@ Complete equivalence classes [ bar ] Allocated mem[2] [ bar ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::SCREEN = *((byte*)main::barp) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)main::barp) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[2] [ bar ] : mem[2] , REGISTER UPLIFT SCOPES @@ -148,10 +148,10 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label SCREEN = $400 .label barp = bar - // [0] *main::SCREEN = *((byte*)main::barp) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)main::barp) -- _deref_pbuc1=_deref_pbuc2 lda barp sta SCREEN - // [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 lda barp+OFFSET_STRUCT_FOO_THING2 sta SCREEN+1 jmp __breturn @@ -171,12 +171,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -volatile struct foo bar loadstore mem[2] = { thing1: 'a', thing2: 'b' } +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b' } // mem[2] void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct foo* main::barp = &bar -byte main::i +__constant char * const main::SCREEN = (char *) 1024 +__constant struct foo *main::barp = &bar +char main::i mem[2] [ bar ] @@ -204,11 +204,11 @@ main: { .label SCREEN = $400 .label barp = bar // SCREEN[i++] = barp->thing1 - // [0] *main::SCREEN = *((byte*)main::barp) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)main::barp) -- _deref_pbuc1=_deref_pbuc2 lda barp sta SCREEN // SCREEN[i++] = barp->thing2 - // [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 lda barp+OFFSET_STRUCT_FOO_THING2 sta SCREEN+1 // main::@return diff --git a/src/test/ref/declared-memory-var-3.sym b/src/test/ref/declared-memory-var-3.sym index 8b70d9239..d0b73c936 100644 --- a/src/test/ref/declared-memory-var-3.sym +++ b/src/test/ref/declared-memory-var-3.sym @@ -1,8 +1,8 @@ -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -volatile struct foo bar loadstore mem[2] = { thing1: 'a', thing2: 'b' } +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b' } // mem[2] void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct foo* main::barp = &bar -byte main::i +__constant char * const main::SCREEN = (char *) 1024 +__constant struct foo *main::barp = &bar +char main::i mem[2] [ bar ] diff --git a/src/test/ref/declared-memory-var-4.cfg b/src/test/ref/declared-memory-var-4.cfg index 0f8fe7373..ee80ebb4d 100644 --- a/src/test/ref/declared-memory-var-4.cfg +++ b/src/test/ref/declared-memory-var-4.cfg @@ -1,13 +1,13 @@ void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)main::barp) - [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) + [0] *main::SCREEN = *((char *)main::barp) + [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) to:main::@1 main::@1: scope:[main] from main main::@1 [2] main::i#4 = phi( main/2, main::@1/main::i#3 ) [2] main::j#2 = phi( main/0, main::@1/main::j#1 ) - [3] main::SCREEN[main::i#4] = ((byte*)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] + [3] main::SCREEN[main::i#4] = ((char *)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] [4] main::i#3 = ++ main::i#4 [5] main::j#1 = ++ main::j#2 [6] if(main::j#1!=$c) goto main::@1 diff --git a/src/test/ref/declared-memory-var-4.log b/src/test/ref/declared-memory-var-4.log index 7f2926971..8e11128c9 100644 --- a/src/test/ref/declared-memory-var-4.log +++ b/src/test/ref/declared-memory-var-4.log @@ -10,11 +10,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::i#0 = 0 - main::$4 = (byte*)main::barp + main::$4 = (char *)main::barp main::$1 = main::$4 + OFFSET_STRUCT_FOO_THING1 main::SCREEN[main::i#0] = *main::$1 main::i#1 = ++ main::i#0 - main::$5 = (byte*)main::barp + main::$5 = (char *)main::barp main::$2 = main::$5 + OFFSET_STRUCT_FOO_THING2 main::SCREEN[main::i#1] = *main::$2 main::i#2 = ++ main::i#1 @@ -23,7 +23,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#4 = phi( main/main::i#2, main::@1/main::i#3 ) main::j#2 = phi( main/main::j#0, main::@1/main::j#1 ) - main::$6 = (byte*)main::barp + main::$6 = (char *)main::barp main::$3 = main::$6 + OFFSET_STRUCT_FOO_THING3 main::SCREEN[main::i#4] = main::$3[main::j#2] main::i#3 = ++ main::i#4 @@ -37,7 +37,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -46,45 +46,45 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_FOO_THING1 = 0 -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -constant byte OFFSET_STRUCT_FOO_THING3 = 2 +__constant char OFFSET_STRUCT_FOO_THING1 = 0 +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__constant char OFFSET_STRUCT_FOO_THING3 = 2 void __start() -volatile struct foo bar loadstore = { thing1: 'a', thing2: 'b', thing3: "qwe" } +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b', thing3: "qwe" } void main() -bool~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -byte*~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -constant struct foo* main::barp = &bar -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 +bool main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +char *main::$6 +__constant char * const main::SCREEN = (char *)$400 +__constant struct foo *main::barp = &bar +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [17] if(main::j#1!=rangelast(0,$b)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [1] main::$4 = (byte*)main::barp -Constant right-side identified [5] main::$5 = (byte*)main::barp -Constant right-side identified [11] main::$6 = (byte*)main::barp +Constant right-side identified [1] main::$4 = (char *)main::barp +Constant right-side identified [5] main::$5 = (char *)main::barp +Constant right-side identified [11] main::$6 = (char *)main::barp Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$4 = (byte*)main::barp -Constant main::$5 = (byte*)main::barp +Constant main::$4 = (char *)main::barp +Constant main::$5 = (char *)main::barp Constant main::j#0 = 0 -Constant main::$6 = (byte*)main::barp +Constant main::$6 = (char *)main::barp Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [15] main::j#1 = ++ main::j#2 to ++ Resolved ranged comparison value [17] if(main::j#1!=rangelast(0,$b)) goto main::@1 to $c @@ -108,7 +108,7 @@ Adding number conversion cast (unumber) $c in [9] if(main::j#1!=$c) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [1] main::i#1 = ++ main::i#0 Constant right-side identified [5] main::$3 = main::$6 + OFFSET_STRUCT_FOO_THING3 @@ -124,16 +124,16 @@ Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 Inlining constant with var siblings main::i#1 Inlining constant with var siblings main::i#2 -Constant inlined main::$5 = (byte*)main::barp +Constant inlined main::$5 = (char *)main::barp Constant inlined main::i#0 = 0 -Constant inlined main::$6 = (byte*)main::barp -Constant inlined main::$3 = (byte*)main::barp+OFFSET_STRUCT_FOO_THING3 +Constant inlined main::$6 = (char *)main::barp +Constant inlined main::$3 = (char *)main::barp+OFFSET_STRUCT_FOO_THING3 Constant inlined main::i#2 = ++++0 -Constant inlined main::$4 = (byte*)main::barp +Constant inlined main::$4 = (char *)main::barp Constant inlined main::j#0 = 0 Constant inlined main::i#1 = ++0 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) +Consolidated array index constant in *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) Consolidated array index constant in *(main::SCREEN+++0) Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++0 @@ -141,8 +141,8 @@ Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++1 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) CALL GRAPH @@ -157,13 +157,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)main::barp) - [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) + [0] *main::SCREEN = *((char *)main::barp) + [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) to:main::@1 main::@1: scope:[main] from main main::@1 [2] main::i#4 = phi( main/2, main::@1/main::i#3 ) [2] main::j#2 = phi( main/0, main::@1/main::j#1 ) - [3] main::SCREEN[main::i#4] = ((byte*)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] + [3] main::SCREEN[main::i#4] = ((char *)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] [4] main::i#3 = ++ main::i#4 [5] main::j#1 = ++ main::j#2 [6] if(main::j#1!=$c) goto main::@1 @@ -174,14 +174,14 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -volatile struct foo bar loadstore = { thing1: 'a', thing2: 'b', thing3: "qwe" } +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b', thing3: "qwe" } void main() -byte main::i -byte main::i#3 7.333333333333333 -byte main::i#4 16.5 -byte main::j -byte main::j#1 16.5 -byte main::j#2 11.0 +char main::i +char main::i#3 // 7.333333333333333 +char main::i#4 // 16.5 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 11.0 Initial phi equivalence classes [ main::j#2 main::j#1 ] @@ -195,14 +195,14 @@ Allocated zp[1]:2 [ main::j#2 main::j#1 ] Allocated zp[1]:3 [ main::i#4 main::i#3 ] Allocated mem[14] [ bar ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::SCREEN = *((byte*)main::barp) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] main::SCREEN[main::i#4] = ((byte*)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] [ main::j#2 main::i#4 ] ( [ main::j#2 main::i#4 ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)main::barp) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] main::SCREEN[main::i#4] = ((char *)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] [ main::j#2 main::i#4 ] ( [ main::j#2 main::i#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::j#2 main::j#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i#4 main::i#3 ] -Statement [0] *main::SCREEN = *((byte*)main::barp) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] main::SCREEN[main::i#4] = ((byte*)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] [ main::j#2 main::i#4 ] ( [ main::j#2 main::i#4 ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)main::barp) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] main::SCREEN[main::i#4] = ((char *)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] [ main::j#2 main::i#4 ] ( [ main::j#2 main::i#4 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::j#2 main::j#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::i#4 main::i#3 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers mem[14] [ bar ] : mem[14] , @@ -237,10 +237,10 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label SCREEN = $400 .label barp = bar - // [0] *main::SCREEN = *((byte*)main::barp) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)main::barp) -- _deref_pbuc1=_deref_pbuc2 lda barp sta SCREEN - // [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 lda barp+OFFSET_STRUCT_FOO_THING2 sta SCREEN+1 // [2] phi from main to main::@1 [phi:main->main::@1] @@ -257,7 +257,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] main::SCREEN[main::i#4] = ((byte*)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [3] main::SCREEN[main::i#4] = ((char *)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda barp+OFFSET_STRUCT_FOO_THING3,y sta SCREEN,x // [4] main::i#3 = ++ main::i#4 -- vbuxx=_inc_vbuxx @@ -294,18 +294,18 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -constant byte OFFSET_STRUCT_FOO_THING3 = 2 -volatile struct foo bar loadstore mem[14] = { thing1: 'a', thing2: 'b', thing3: "qwe" } +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__constant char OFFSET_STRUCT_FOO_THING3 = 2 +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b', thing3: "qwe" } // mem[14] void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct foo* main::barp = &bar -byte main::i -byte main::i#3 reg byte x 7.333333333333333 -byte main::i#4 reg byte x 16.5 -byte main::j -byte main::j#1 reg byte y 16.5 -byte main::j#2 reg byte y 11.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant struct foo *main::barp = &bar +char main::i +char main::i#3 // reg byte x 7.333333333333333 +char main::i#4 // reg byte x 16.5 +char main::j +char main::j#1 // reg byte y 16.5 +char main::j#2 // reg byte y 11.0 reg byte y [ main::j#2 main::j#1 ] reg byte x [ main::i#4 main::i#3 ] @@ -336,11 +336,11 @@ main: { .label SCREEN = $400 .label barp = bar // SCREEN[i++] = barp->thing1 - // [0] *main::SCREEN = *((byte*)main::barp) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)main::barp) -- _deref_pbuc1=_deref_pbuc2 lda barp sta SCREEN // SCREEN[i++] = barp->thing2 - // [1] *(main::SCREEN+1) = *((byte*)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)main::barp+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 lda barp+OFFSET_STRUCT_FOO_THING2 sta SCREEN+1 // [2] phi from main to main::@1 [phi:main->main::@1] @@ -354,7 +354,7 @@ main: { // main::@1 __b1: // SCREEN[i++] = barp->thing3[j] - // [3] main::SCREEN[main::i#4] = ((byte*)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [3] main::SCREEN[main::i#4] = ((char *)main::barp+OFFSET_STRUCT_FOO_THING3)[main::j#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda barp+OFFSET_STRUCT_FOO_THING3,y sta SCREEN,x // SCREEN[i++] = barp->thing3[j]; diff --git a/src/test/ref/declared-memory-var-4.sym b/src/test/ref/declared-memory-var-4.sym index c32f6b4e4..88fc59447 100644 --- a/src/test/ref/declared-memory-var-4.sym +++ b/src/test/ref/declared-memory-var-4.sym @@ -1,15 +1,15 @@ -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -constant byte OFFSET_STRUCT_FOO_THING3 = 2 -volatile struct foo bar loadstore mem[14] = { thing1: 'a', thing2: 'b', thing3: "qwe" } +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__constant char OFFSET_STRUCT_FOO_THING3 = 2 +__loadstore volatile struct foo bar = { thing1: 'a', thing2: 'b', thing3: "qwe" } // mem[14] void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct foo* main::barp = &bar -byte main::i -byte main::i#3 reg byte x 7.333333333333333 -byte main::i#4 reg byte x 16.5 -byte main::j -byte main::j#1 reg byte y 16.5 -byte main::j#2 reg byte y 11.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant struct foo *main::barp = &bar +char main::i +char main::i#3 // reg byte x 7.333333333333333 +char main::i#4 // reg byte x 16.5 +char main::j +char main::j#1 // reg byte y 16.5 +char main::j#2 // reg byte y 11.0 reg byte y [ main::j#2 main::j#1 ] reg byte x [ main::i#4 main::i#3 ] diff --git a/src/test/ref/declared-memory-var-5.cfg b/src/test/ref/declared-memory-var-5.cfg index 3336ac0e3..4a10a360d 100644 --- a/src/test/ref/declared-memory-var-5.cfg +++ b/src/test/ref/declared-memory-var-5.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)&bar) - [1] *(main::SCREEN+1) = *((byte*)&bar+OFFSET_STRUCT_FOO_THING2) + [0] *main::SCREEN = *((char *)&bar) + [1] *(main::SCREEN+1) = *((char *)&bar+OFFSET_STRUCT_FOO_THING2) to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/declared-memory-var-5.log b/src/test/ref/declared-memory-var-5.log index 8c196c27a..a071ca666 100644 --- a/src/test/ref/declared-memory-var-5.log +++ b/src/test/ref/declared-memory-var-5.log @@ -4,9 +4,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::i#0 = 0 - main::SCREEN[main::i#0] = *((byte*)&bar+OFFSET_STRUCT_FOO_THING1) + main::SCREEN[main::i#0] = *((char *)&bar+OFFSET_STRUCT_FOO_THING1) main::i#1 = ++ main::i#0 - main::SCREEN[main::i#1] = *((byte*)&bar+OFFSET_STRUCT_FOO_THING2) + main::SCREEN[main::i#1] = *((char *)&bar+OFFSET_STRUCT_FOO_THING2) main::i#2 = ++ main::i#1 to:main::@return main::@return: scope:[main] from main @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,23 +24,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_FOO_THING1 = 0 -constant byte OFFSET_STRUCT_FOO_THING2 = 1 +__constant char OFFSET_STRUCT_FOO_THING1 = 0 +__constant char OFFSET_STRUCT_FOO_THING2 = 1 void __start() -struct foo bar loadstore = { thing1: 'a', thing2: 'b' } +__loadstore struct foo bar = { thing1: 'a', thing2: 'b' } void main() -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)&bar in [1] main::SCREEN[main::i#0] = *((byte*)&bar+OFFSET_STRUCT_FOO_THING1) -Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[main::i#0] = *((byte*)&bar) +Simplifying expression containing zero (char *)&bar in [1] main::SCREEN[main::i#0] = *((char *)&bar+OFFSET_STRUCT_FOO_THING1) +Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[main::i#0] = *((char *)&bar) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable main::i#2 and assignment [3] main::i#2 = ++ main::i#1 Eliminating unused constant OFFSET_STRUCT_FOO_THING1 @@ -72,8 +72,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)&bar) - [1] *(main::SCREEN+1) = *((byte*)&bar+OFFSET_STRUCT_FOO_THING2) + [0] *main::SCREEN = *((char *)&bar) + [1] *(main::SCREEN+1) = *((char *)&bar+OFFSET_STRUCT_FOO_THING2) to:main::@return main::@return: scope:[main] from main [2] return @@ -81,9 +81,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -struct foo bar loadstore = { thing1: 'a', thing2: 'b' } +__loadstore struct foo bar = { thing1: 'a', thing2: 'b' } void main() -byte main::i +char main::i Initial phi equivalence classes Added variable bar to live range equivalence class [ bar ] @@ -91,8 +91,8 @@ Complete equivalence classes [ bar ] Allocated mem[2] [ bar ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::SCREEN = *((byte*)&bar) [ bar ] ( [ bar ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)&bar+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)&bar) [ bar ] ( [ bar ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)&bar+OFFSET_STRUCT_FOO_THING2) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[2] [ bar ] : mem[2] , REGISTER UPLIFT SCOPES @@ -123,10 +123,10 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [0] *main::SCREEN = *((byte*)&bar) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)&bar) -- _deref_pbuc1=_deref_pbuc2 lda bar sta SCREEN - // [1] *(main::SCREEN+1) = *((byte*)&bar+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)&bar+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 lda bar+OFFSET_STRUCT_FOO_THING2 sta SCREEN+1 jmp __breturn @@ -146,11 +146,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -struct foo bar loadstore mem[2] = { thing1: 'a', thing2: 'b' } +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__loadstore struct foo bar = { thing1: 'a', thing2: 'b' } // mem[2] void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i +__constant char * const main::SCREEN = (char *) 1024 +char main::i mem[2] [ bar ] @@ -177,11 +177,11 @@ Score: 22 main: { .label SCREEN = $400 // SCREEN[i++] = bar.thing1 - // [0] *main::SCREEN = *((byte*)&bar) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)&bar) -- _deref_pbuc1=_deref_pbuc2 lda bar sta SCREEN // SCREEN[i++] = bar.thing2 - // [1] *(main::SCREEN+1) = *((byte*)&bar+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)&bar+OFFSET_STRUCT_FOO_THING2) -- _deref_pbuc1=_deref_pbuc2 lda bar+OFFSET_STRUCT_FOO_THING2 sta SCREEN+1 // main::@return diff --git a/src/test/ref/declared-memory-var-5.sym b/src/test/ref/declared-memory-var-5.sym index 7b1fa9717..29e66cf04 100644 --- a/src/test/ref/declared-memory-var-5.sym +++ b/src/test/ref/declared-memory-var-5.sym @@ -1,7 +1,7 @@ -constant byte OFFSET_STRUCT_FOO_THING2 = 1 -struct foo bar loadstore mem[2] = { thing1: 'a', thing2: 'b' } +__constant char OFFSET_STRUCT_FOO_THING2 = 1 +__loadstore struct foo bar = { thing1: 'a', thing2: 'b' } // mem[2] void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i +__constant char * const main::SCREEN = (char *) 1024 +char main::i mem[2] [ bar ] diff --git a/src/test/ref/declared-memory-var-6.asm b/src/test/ref/declared-memory-var-6.asm index 3356b689b..7b52dfef3 100644 --- a/src/test/ref/declared-memory-var-6.asm +++ b/src/test/ref/declared-memory-var-6.asm @@ -63,7 +63,7 @@ main: { // } rts } -// out(byte register(X) c) +// void out(__register(X) char c) out: { // SCREEN[i++] = c txa diff --git a/src/test/ref/declared-memory-var-6.cfg b/src/test/ref/declared-memory-var-6.cfg index 4d24e6c13..c81b4b912 100644 --- a/src/test/ref/declared-memory-var-6.cfg +++ b/src/test/ref/declared-memory-var-6.cfg @@ -5,49 +5,49 @@ main: scope:[main] from [1] main::reg_mem_abs#0 = '.' [2] main::default_zp_abs = '.' [3] main::default_mem_abs = '.' - [4] call out + [4] call out to:main::@1 main::@1: scope:[main] from main [5] out::c#1 = main::reg_zp_abs#0 - [6] call out + [6] call out to:main::@2 main::@2: scope:[main] from main::@1 [7] phi() - [8] call out + [8] call out to:main::@3 main::@3: scope:[main] from main::@2 [9] out::c#3 = main::reg_mem_abs#0 - [10] call out + [10] call out to:main::@4 main::@4: scope:[main] from main::@3 [11] phi() - [12] call out + [12] call out to:main::@5 main::@5: scope:[main] from main::@4 [13] phi() - [14] call out + [14] call out to:main::@6 main::@6: scope:[main] from main::@5 [15] phi() - [16] call out + [16] call out to:main::@7 main::@7: scope:[main] from main::@6 [17] out::c#7 = main::default_zp_abs - [18] call out + [18] call out to:main::@8 main::@8: scope:[main] from main::@7 [19] phi() - [20] call out + [20] call out to:main::@9 main::@9: scope:[main] from main::@8 [21] out::c#9 = main::default_mem_abs - [22] call out + [22] call out to:main::@return main::@return: scope:[main] from main::@9 [23] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [24] i#27 = phi( main/0, main::@1/i#11, main::@2/i#11, main::@3/i#11, main::@4/i#11, main::@5/i#11, main::@6/i#11, main::@7/i#11, main::@8/i#11, main::@9/i#11 ) [24] out::c#10 = phi( main/main::reg_zp_flex, main::@1/out::c#1, main::@2/main::reg_mem_flex, main::@3/out::c#3, main::@4/main::default_default, main::@5/main::reg_default, main::@6/main::default_zp_flex, main::@7/out::c#7, main::@8/main::default_mem_flex, main::@9/out::c#9 ) diff --git a/src/test/ref/declared-memory-var-6.log b/src/test/ref/declared-memory-var-6.log index c3ab767da..5a8d4a8da 100644 --- a/src/test/ref/declared-memory-var-6.log +++ b/src/test/ref/declared-memory-var-6.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,7 +10,7 @@ main: scope:[main] from __start::@1 main::default_zp_abs = '.' main::default_mem_abs = '.' out::c#0 = main::reg_zp_flex - call out + call out to:main::@1 main::@1: scope:[main] from main main::reg_mem_abs#3 = phi( main/main::reg_mem_abs#0 ) @@ -18,57 +18,57 @@ main::@1: scope:[main] from main i#16 = phi( main/i#12 ) i#0 = i#16 out::c#1 = main::reg_zp_abs#1 - call out + call out to:main::@2 main::@2: scope:[main] from main::@1 main::reg_mem_abs#2 = phi( main::@1/main::reg_mem_abs#3 ) i#17 = phi( main::@1/i#12 ) i#1 = i#17 out::c#2 = main::reg_mem_flex - call out + call out to:main::@3 main::@3: scope:[main] from main::@2 main::reg_mem_abs#1 = phi( main::@2/main::reg_mem_abs#2 ) i#18 = phi( main::@2/i#12 ) i#2 = i#18 out::c#3 = main::reg_mem_abs#1 - call out + call out to:main::@4 main::@4: scope:[main] from main::@3 i#19 = phi( main::@3/i#12 ) i#3 = i#19 out::c#4 = main::default_default - call out + call out to:main::@5 main::@5: scope:[main] from main::@4 i#20 = phi( main::@4/i#12 ) i#4 = i#20 out::c#5 = main::reg_default - call out + call out to:main::@6 main::@6: scope:[main] from main::@5 i#21 = phi( main::@5/i#12 ) i#5 = i#21 out::c#6 = main::default_zp_flex - call out + call out to:main::@7 main::@7: scope:[main] from main::@6 i#22 = phi( main::@6/i#12 ) i#6 = i#22 out::c#7 = main::default_zp_abs - call out + call out to:main::@8 main::@8: scope:[main] from main::@7 i#23 = phi( main::@7/i#12 ) i#7 = i#23 out::c#8 = main::default_mem_flex - call out + call out to:main::@9 main::@9: scope:[main] from main::@8 i#24 = phi( main::@8/i#12 ) i#8 = i#24 out::c#9 = main::default_mem_abs - call out + call out to:main::@10 main::@10: scope:[main] from main::@9 i#25 = phi( main::@9/i#12 ) @@ -80,7 +80,7 @@ main::@return: scope:[main] from main::@10 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 i#27 = phi( main/i#31, main::@1/i#0, main::@2/i#1, main::@3/i#2, main::@4/i#3, main::@5/i#4, main::@6/i#5, main::@7/i#6, main::@8/i#7, main::@9/i#8 ) out::c#10 = phi( main/out::c#0, main::@1/out::c#1, main::@2/out::c#2, main::@3/out::c#3, main::@4/out::c#4, main::@5/out::c#5, main::@6/out::c#6, main::@7/out::c#7, main::@8/out::c#8, main::@9/out::c#9 ) @@ -101,7 +101,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 i#32 = phi( __start::__init1/i#13 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 i#29 = phi( __start::@1/i#10 ) @@ -114,74 +114,74 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte i -byte i#0 -byte i#1 -byte i#10 -byte i#11 -byte i#12 -byte i#13 -byte i#14 -byte i#15 -byte i#16 -byte i#17 -byte i#18 -byte i#19 -byte i#2 -byte i#20 -byte i#21 -byte i#22 -byte i#23 -byte i#24 -byte i#25 -byte i#26 -byte i#27 -byte i#28 -byte i#29 -byte i#3 -byte i#30 -byte i#31 -byte i#32 -byte i#4 -byte i#5 -byte i#6 -byte i#7 -byte i#8 -byte i#9 +char i +char i#0 +char i#1 +char i#10 +char i#11 +char i#12 +char i#13 +char i#14 +char i#15 +char i#16 +char i#17 +char i#18 +char i#19 +char i#2 +char i#20 +char i#21 +char i#22 +char i#23 +char i#24 +char i#25 +char i#26 +char i#27 +char i#28 +char i#29 +char i#3 +char i#30 +char i#31 +char i#32 +char i#4 +char i#5 +char i#6 +char i#7 +char i#8 +char i#9 void main() -constant byte main::default_default = '.' -byte main::default_mem_abs loadstore !mem[-1]:4097 -constant byte main::default_mem_flex = '.' -byte main::default_zp_abs loadstore !zp[-1]:17 -constant byte main::default_zp_flex = '.' -constant byte main::reg_default = '.' -byte main::reg_mem_abs !mem[-1]:4096 -byte main::reg_mem_abs#0 !mem[-1]:4096 -byte main::reg_mem_abs#1 !mem[-1]:4096 -byte main::reg_mem_abs#2 !mem[-1]:4096 -byte main::reg_mem_abs#3 !mem[-1]:4096 -constant byte main::reg_mem_flex = '.' -byte main::reg_zp_abs !zp[-1]:16 -byte main::reg_zp_abs#0 !zp[-1]:16 -byte main::reg_zp_abs#1 !zp[-1]:16 -constant byte main::reg_zp_flex = '.' -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 -byte out::c#10 -byte out::c#2 -byte out::c#3 -byte out::c#4 -byte out::c#5 -byte out::c#6 -byte out::c#7 -byte out::c#8 -byte out::c#9 +__constant char main::default_default = '.' +__loadstore char main::default_mem_abs // !mem[-1]:4097 +__constant char main::default_mem_flex = '.' +__loadstore char main::default_zp_abs // !zp[-1]:17 +__constant char main::default_zp_flex = '.' +__constant char main::reg_default = '.' +char main::reg_mem_abs // !mem[-1]:4096 +char main::reg_mem_abs#0 // !mem[-1]:4096 +char main::reg_mem_abs#1 // !mem[-1]:4096 +char main::reg_mem_abs#2 // !mem[-1]:4096 +char main::reg_mem_abs#3 // !mem[-1]:4096 +__constant char main::reg_mem_flex = '.' +char main::reg_zp_abs // !zp[-1]:16 +char main::reg_zp_abs#0 // !zp[-1]:16 +char main::reg_zp_abs#1 // !zp[-1]:16 +__constant char main::reg_zp_flex = '.' +void out(char c) +char out::c +char out::c#0 +char out::c#1 +char out::c#10 +char out::c#2 +char out::c#3 +char out::c#4 +char out::c#5 +char out::c#6 +char out::c#7 +char out::c#8 +char out::c#9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::reg_zp_abs#0 = main::reg_zp_abs#1 Alias main::reg_mem_abs#0 = main::reg_mem_abs#3 main::reg_mem_abs#2 main::reg_mem_abs#1 @@ -276,49 +276,49 @@ main: scope:[main] from [1] main::reg_mem_abs#0 = '.' [2] main::default_zp_abs = '.' [3] main::default_mem_abs = '.' - [4] call out + [4] call out to:main::@1 main::@1: scope:[main] from main [5] out::c#1 = main::reg_zp_abs#0 - [6] call out + [6] call out to:main::@2 main::@2: scope:[main] from main::@1 [7] phi() - [8] call out + [8] call out to:main::@3 main::@3: scope:[main] from main::@2 [9] out::c#3 = main::reg_mem_abs#0 - [10] call out + [10] call out to:main::@4 main::@4: scope:[main] from main::@3 [11] phi() - [12] call out + [12] call out to:main::@5 main::@5: scope:[main] from main::@4 [13] phi() - [14] call out + [14] call out to:main::@6 main::@6: scope:[main] from main::@5 [15] phi() - [16] call out + [16] call out to:main::@7 main::@7: scope:[main] from main::@6 [17] out::c#7 = main::default_zp_abs - [18] call out + [18] call out to:main::@8 main::@8: scope:[main] from main::@7 [19] phi() - [20] call out + [20] call out to:main::@9 main::@9: scope:[main] from main::@8 [21] out::c#9 = main::default_mem_abs - [22] call out + [22] call out to:main::@return main::@return: scope:[main] from main::@9 [23] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [24] i#27 = phi( main/0, main::@1/i#11, main::@2/i#11, main::@3/i#11, main::@4/i#11, main::@5/i#11, main::@6/i#11, main::@7/i#11, main::@8/i#11, main::@9/i#11 ) [24] out::c#10 = phi( main/main::reg_zp_flex, main::@1/out::c#1, main::@2/main::reg_mem_flex, main::@3/out::c#3, main::@4/main::default_default, main::@5/main::reg_default, main::@6/main::default_zp_flex, main::@7/out::c#7, main::@8/main::default_mem_flex, main::@9/out::c#9 ) @@ -331,23 +331,23 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS -byte i -byte i#11 1.45 -byte i#27 20.0 +char i +char i#11 // 1.45 +char i#27 // 20.0 void main() -byte main::default_mem_abs loadstore !mem[-1]:4097 0.2222222222222222 -byte main::default_zp_abs loadstore !zp[-1]:17 0.26666666666666666 -byte main::reg_mem_abs !mem[-1]:4096 -byte main::reg_mem_abs#0 !mem[-1]:4096 0.5 -byte main::reg_zp_abs !zp[-1]:16 -byte main::reg_zp_abs#0 !zp[-1]:16 0.8 -void out(byte out::c) -byte out::c -byte out::c#1 4.0 -byte out::c#10 19.0 -byte out::c#3 4.0 -byte out::c#7 4.0 -byte out::c#9 4.0 +__loadstore char main::default_mem_abs // !mem[-1]:4097 0.2222222222222222 +__loadstore char main::default_zp_abs // !zp[-1]:17 0.26666666666666666 +char main::reg_mem_abs // !mem[-1]:4096 +char main::reg_mem_abs#0 // !mem[-1]:4096 0.5 +char main::reg_zp_abs // !zp[-1]:16 +char main::reg_zp_abs#0 // !zp[-1]:16 0.8 +void out(char c) +char out::c +char out::c#1 // 4.0 +char out::c#10 // 19.0 +char out::c#3 // 4.0 +char out::c#7 // 4.0 +char out::c#9 // 4.0 Initial phi equivalence classes [ out::c#10 out::c#1 out::c#3 out::c#7 out::c#9 ] @@ -433,7 +433,7 @@ main: { // [3] main::default_mem_abs = '.' -- vbum1=vbuc1 lda #'.' sta default_mem_abs - // [4] call out + // [4] call out // [24] phi from main to out [phi:main->out] out_from_main: // [24] phi i#27 = 0 [phi:main->out#0] -- vbuyy=vbuc1 @@ -446,7 +446,7 @@ main: { __b1: // [5] out::c#1 = main::reg_zp_abs#0 -- vbuxx=vbuz1 ldx.z reg_zp_abs - // [6] call out + // [6] call out // [24] phi from main::@1 to out [phi:main::@1->out] out_from___b1: // [24] phi i#27 = i#11 [phi:main::@1->out#0] -- register_copy @@ -457,7 +457,7 @@ main: { jmp __b2 // main::@2 __b2: - // [8] call out + // [8] call out // [24] phi from main::@2 to out [phi:main::@2->out] out_from___b2: // [24] phi i#27 = i#11 [phi:main::@2->out#0] -- register_copy @@ -469,7 +469,7 @@ main: { __b3: // [9] out::c#3 = main::reg_mem_abs#0 -- vbuxx=vbum1 ldx reg_mem_abs - // [10] call out + // [10] call out // [24] phi from main::@3 to out [phi:main::@3->out] out_from___b3: // [24] phi i#27 = i#11 [phi:main::@3->out#0] -- register_copy @@ -480,7 +480,7 @@ main: { jmp __b4 // main::@4 __b4: - // [12] call out + // [12] call out // [24] phi from main::@4 to out [phi:main::@4->out] out_from___b4: // [24] phi i#27 = i#11 [phi:main::@4->out#0] -- register_copy @@ -492,7 +492,7 @@ main: { jmp __b5 // main::@5 __b5: - // [14] call out + // [14] call out // [24] phi from main::@5 to out [phi:main::@5->out] out_from___b5: // [24] phi i#27 = i#11 [phi:main::@5->out#0] -- register_copy @@ -504,7 +504,7 @@ main: { jmp __b6 // main::@6 __b6: - // [16] call out + // [16] call out // [24] phi from main::@6 to out [phi:main::@6->out] out_from___b6: // [24] phi i#27 = i#11 [phi:main::@6->out#0] -- register_copy @@ -516,7 +516,7 @@ main: { __b7: // [17] out::c#7 = main::default_zp_abs -- vbuxx=vbuz1 ldx.z default_zp_abs - // [18] call out + // [18] call out // [24] phi from main::@7 to out [phi:main::@7->out] out_from___b7: // [24] phi i#27 = i#11 [phi:main::@7->out#0] -- register_copy @@ -527,7 +527,7 @@ main: { jmp __b8 // main::@8 __b8: - // [20] call out + // [20] call out // [24] phi from main::@8 to out [phi:main::@8->out] out_from___b8: // [24] phi i#27 = i#11 [phi:main::@8->out#0] -- register_copy @@ -539,7 +539,7 @@ main: { __b9: // [21] out::c#9 = main::default_mem_abs -- vbuxx=vbum1 ldx default_mem_abs - // [22] call out + // [22] call out // [24] phi from main::@9 to out [phi:main::@9->out] out_from___b9: // [24] phi i#27 = i#11 [phi:main::@9->out#0] -- register_copy @@ -552,7 +552,7 @@ main: { rts } // out -// out(byte register(X) c) +// void out(__register(X) char c) out: { // [25] SCREEN[i#27] = out::c#10 -- pbuc1_derefidx_vbuyy=vbuxx txa @@ -614,30 +614,30 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte i -byte i#11 reg byte y 1.45 -byte i#27 reg byte y 20.0 +__constant char * const SCREEN = (char *) 1024 +char i +char i#11 // reg byte y 1.45 +char i#27 // reg byte y 20.0 void main() -constant byte main::default_default = '.' -byte main::default_mem_abs loadstore !mem[-1]:4097 mem[1]:4097 0.2222222222222222 -constant byte main::default_mem_flex = '.' -byte main::default_zp_abs loadstore !zp[-1]:17 zp[1]:17 0.26666666666666666 -constant byte main::default_zp_flex = '.' -constant byte main::reg_default = '.' -byte main::reg_mem_abs !mem[-1]:4096 -byte main::reg_mem_abs#0 reg_mem_abs !mem[-1]:4096 mem[1]:4096 0.5 -constant byte main::reg_mem_flex = '.' -byte main::reg_zp_abs !zp[-1]:16 -byte main::reg_zp_abs#0 reg_zp_abs !zp[-1]:16 zp[1]:16 0.8 -constant byte main::reg_zp_flex = '.' -void out(byte out::c) -byte out::c -byte out::c#1 reg byte x 4.0 -byte out::c#10 reg byte x 19.0 -byte out::c#3 reg byte x 4.0 -byte out::c#7 reg byte x 4.0 -byte out::c#9 reg byte x 4.0 +__constant char main::default_default = '.' +__loadstore char main::default_mem_abs // !mem[-1]:4097 mem[1]:4097 0.2222222222222222 +__constant char main::default_mem_flex = '.' +__loadstore char main::default_zp_abs // !zp[-1]:17 zp[1]:17 0.26666666666666666 +__constant char main::default_zp_flex = '.' +__constant char main::reg_default = '.' +char main::reg_mem_abs // !mem[-1]:4096 +char main::reg_mem_abs#0 // reg_mem_abs !mem[-1]:4096 mem[1]:4096 0.5 +__constant char main::reg_mem_flex = '.' +char main::reg_zp_abs // !zp[-1]:16 +char main::reg_zp_abs#0 // reg_zp_abs !zp[-1]:16 zp[1]:16 0.8 +__constant char main::reg_zp_flex = '.' +void out(char c) +char out::c +char out::c#1 // reg byte x 4.0 +char out::c#10 // reg byte x 19.0 +char out::c#3 // reg byte x 4.0 +char out::c#7 // reg byte x 4.0 +char out::c#9 // reg byte x 4.0 reg byte x [ out::c#10 out::c#1 out::c#3 out::c#7 out::c#9 ] reg byte y [ i#27 i#11 ] @@ -690,7 +690,7 @@ main: { // [3] main::default_mem_abs = '.' -- vbum1=vbuc1 sta default_mem_abs // out(reg_zp_flex) - // [4] call out + // [4] call out // [24] phi from main to out [phi:main->out] // [24] phi i#27 = 0 [phi:main->out#0] -- vbuyy=vbuc1 ldy #0 @@ -701,7 +701,7 @@ main: { // out(reg_zp_abs) // [5] out::c#1 = main::reg_zp_abs#0 -- vbuxx=vbuz1 ldx.z reg_zp_abs - // [6] call out + // [6] call out // [24] phi from main::@1 to out [phi:main::@1->out] // [24] phi i#27 = i#11 [phi:main::@1->out#0] -- register_copy // [24] phi out::c#10 = out::c#1 [phi:main::@1->out#1] -- register_copy @@ -709,7 +709,7 @@ main: { // [7] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // out(reg_mem_flex) - // [8] call out + // [8] call out // [24] phi from main::@2 to out [phi:main::@2->out] // [24] phi i#27 = i#11 [phi:main::@2->out#0] -- register_copy // [24] phi out::c#10 = main::reg_mem_flex [phi:main::@2->out#1] -- vbuxx=vbuc1 @@ -719,7 +719,7 @@ main: { // out(reg_mem_abs) // [9] out::c#3 = main::reg_mem_abs#0 -- vbuxx=vbum1 ldx reg_mem_abs - // [10] call out + // [10] call out // [24] phi from main::@3 to out [phi:main::@3->out] // [24] phi i#27 = i#11 [phi:main::@3->out#0] -- register_copy // [24] phi out::c#10 = out::c#3 [phi:main::@3->out#1] -- register_copy @@ -727,7 +727,7 @@ main: { // [11] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // out(default_default) - // [12] call out + // [12] call out // [24] phi from main::@4 to out [phi:main::@4->out] // [24] phi i#27 = i#11 [phi:main::@4->out#0] -- register_copy // [24] phi out::c#10 = main::default_default [phi:main::@4->out#1] -- vbuxx=vbuc1 @@ -736,7 +736,7 @@ main: { // [13] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // out(reg_default) - // [14] call out + // [14] call out // [24] phi from main::@5 to out [phi:main::@5->out] // [24] phi i#27 = i#11 [phi:main::@5->out#0] -- register_copy // [24] phi out::c#10 = main::reg_default [phi:main::@5->out#1] -- vbuxx=vbuc1 @@ -745,7 +745,7 @@ main: { // [15] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // out(default_zp_flex) - // [16] call out + // [16] call out // [24] phi from main::@6 to out [phi:main::@6->out] // [24] phi i#27 = i#11 [phi:main::@6->out#0] -- register_copy // [24] phi out::c#10 = main::default_zp_flex [phi:main::@6->out#1] -- vbuxx=vbuc1 @@ -755,7 +755,7 @@ main: { // out(default_zp_abs) // [17] out::c#7 = main::default_zp_abs -- vbuxx=vbuz1 ldx.z default_zp_abs - // [18] call out + // [18] call out // [24] phi from main::@7 to out [phi:main::@7->out] // [24] phi i#27 = i#11 [phi:main::@7->out#0] -- register_copy // [24] phi out::c#10 = out::c#7 [phi:main::@7->out#1] -- register_copy @@ -763,7 +763,7 @@ main: { // [19] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // out(default_mem_flex) - // [20] call out + // [20] call out // [24] phi from main::@8 to out [phi:main::@8->out] // [24] phi i#27 = i#11 [phi:main::@8->out#0] -- register_copy // [24] phi out::c#10 = main::default_mem_flex [phi:main::@8->out#1] -- vbuxx=vbuc1 @@ -773,7 +773,7 @@ main: { // out(default_mem_abs) // [21] out::c#9 = main::default_mem_abs -- vbuxx=vbum1 ldx default_mem_abs - // [22] call out + // [22] call out // [24] phi from main::@9 to out [phi:main::@9->out] // [24] phi i#27 = i#11 [phi:main::@9->out#0] -- register_copy // [24] phi out::c#10 = out::c#9 [phi:main::@9->out#1] -- register_copy @@ -784,7 +784,7 @@ main: { rts } // out -// out(byte register(X) c) +// void out(__register(X) char c) out: { // SCREEN[i++] = c // [25] SCREEN[i#27] = out::c#10 -- pbuc1_derefidx_vbuyy=vbuxx diff --git a/src/test/ref/declared-memory-var-6.sym b/src/test/ref/declared-memory-var-6.sym index 1e7117dfa..c3a1146ab 100644 --- a/src/test/ref/declared-memory-var-6.sym +++ b/src/test/ref/declared-memory-var-6.sym @@ -1,27 +1,27 @@ -constant byte* const SCREEN = (byte*) 1024 -byte i -byte i#11 reg byte y 1.45 -byte i#27 reg byte y 20.0 +__constant char * const SCREEN = (char *) 1024 +char i +char i#11 // reg byte y 1.45 +char i#27 // reg byte y 20.0 void main() -constant byte main::default_default = '.' -byte main::default_mem_abs loadstore !mem[-1]:4097 mem[1]:4097 0.2222222222222222 -constant byte main::default_mem_flex = '.' -byte main::default_zp_abs loadstore !zp[-1]:17 zp[1]:17 0.26666666666666666 -constant byte main::default_zp_flex = '.' -constant byte main::reg_default = '.' -byte main::reg_mem_abs !mem[-1]:4096 -byte main::reg_mem_abs#0 reg_mem_abs !mem[-1]:4096 mem[1]:4096 0.5 -constant byte main::reg_mem_flex = '.' -byte main::reg_zp_abs !zp[-1]:16 -byte main::reg_zp_abs#0 reg_zp_abs !zp[-1]:16 zp[1]:16 0.8 -constant byte main::reg_zp_flex = '.' -void out(byte out::c) -byte out::c -byte out::c#1 reg byte x 4.0 -byte out::c#10 reg byte x 19.0 -byte out::c#3 reg byte x 4.0 -byte out::c#7 reg byte x 4.0 -byte out::c#9 reg byte x 4.0 +__constant char main::default_default = '.' +__loadstore char main::default_mem_abs // !mem[-1]:4097 mem[1]:4097 0.2222222222222222 +__constant char main::default_mem_flex = '.' +__loadstore char main::default_zp_abs // !zp[-1]:17 zp[1]:17 0.26666666666666666 +__constant char main::default_zp_flex = '.' +__constant char main::reg_default = '.' +char main::reg_mem_abs // !mem[-1]:4096 +char main::reg_mem_abs#0 // reg_mem_abs !mem[-1]:4096 mem[1]:4096 0.5 +__constant char main::reg_mem_flex = '.' +char main::reg_zp_abs // !zp[-1]:16 +char main::reg_zp_abs#0 // reg_zp_abs !zp[-1]:16 zp[1]:16 0.8 +__constant char main::reg_zp_flex = '.' +void out(char c) +char out::c +char out::c#1 // reg byte x 4.0 +char out::c#10 // reg byte x 19.0 +char out::c#3 // reg byte x 4.0 +char out::c#7 // reg byte x 4.0 +char out::c#9 // reg byte x 4.0 reg byte x [ out::c#10 out::c#1 out::c#3 out::c#7 out::c#9 ] reg byte y [ i#27 i#11 ] diff --git a/src/test/ref/declared-memory-var-7.log b/src/test/ref/declared-memory-var-7.log index e4661000b..943be5261 100644 --- a/src/test/ref/declared-memory-var-7.log +++ b/src/test/ref/declared-memory-var-7.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -25,7 +25,7 @@ __start::__init1: scope:[__start] from __start idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -34,17 +34,17 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx loadstore +__loadstore char idx void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -56,7 +56,7 @@ Adding number conversion cast (unumber) 6 in if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -89,7 +89,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -113,11 +113,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -byte idx loadstore 38.125 +__loadstore char idx // 38.125 void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 134.66666666666666 +char main::i +char main::i#1 // 151.5 +char main::i#2 // 134.66666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -180,7 +180,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -246,13 +246,13 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte idx loadstore zp[1]:2 38.125 +__loadstore char idx // zp[1]:2 38.125 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 134.66666666666666 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 134.66666666666666 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ idx ] @@ -286,7 +286,7 @@ __start: { sta.z idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/declared-memory-var-7.sym b/src/test/ref/declared-memory-var-7.sym index 5fcf2f534..84c92c7f4 100644 --- a/src/test/ref/declared-memory-var-7.sym +++ b/src/test/ref/declared-memory-var-7.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte idx loadstore zp[1]:2 38.125 +__loadstore char idx // zp[1]:2 38.125 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 134.66666666666666 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 134.66666666666666 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ idx ] diff --git a/src/test/ref/declared-memory-var-8.log b/src/test/ref/declared-memory-var-8.log index 7ac797ffe..f5d839898 100644 --- a/src/test/ref/declared-memory-var-8.log +++ b/src/test/ref/declared-memory-var-8.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -25,7 +25,7 @@ __start::__init1: scope:[__start] from __start idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -34,17 +34,17 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx loadstore !mem[-1]:4096 +__loadstore char idx // !mem[-1]:4096 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -56,7 +56,7 @@ Adding number conversion cast (unumber) 6 in if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -89,7 +89,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -113,11 +113,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -byte idx loadstore !mem[-1]:4096 38.125 +__loadstore char idx // !mem[-1]:4096 38.125 void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 134.66666666666666 +char main::i +char main::i#1 // 151.5 +char main::i#2 // 134.66666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -178,7 +178,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -244,13 +244,13 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte idx loadstore !mem[-1]:4096 mem[1]:4096 38.125 +__loadstore char idx // !mem[-1]:4096 mem[1]:4096 38.125 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 134.66666666666666 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 134.66666666666666 reg byte x [ main::i#2 main::i#1 ] mem[1]:4096 [ idx ] @@ -284,7 +284,7 @@ __start: { sta idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/declared-memory-var-8.sym b/src/test/ref/declared-memory-var-8.sym index 1d058e0cb..a15167614 100644 --- a/src/test/ref/declared-memory-var-8.sym +++ b/src/test/ref/declared-memory-var-8.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -byte idx loadstore !mem[-1]:4096 mem[1]:4096 38.125 +__loadstore char idx // !mem[-1]:4096 mem[1]:4096 38.125 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 134.66666666666666 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 134.66666666666666 reg byte x [ main::i#2 main::i#1 ] mem[1]:4096 [ idx ] diff --git a/src/test/ref/declared-ssa-var-0.log b/src/test/ref/declared-ssa-var-0.log index e5c8ec729..0ef4c3822 100644 --- a/src/test/ref/declared-ssa-var-0.log +++ b/src/test/ref/declared-ssa-var-0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -97,7 +97,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx_ssa_g#13 = phi( __start::__init1/idx_ssa_g#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx_ssa_g#11 = phi( __start::@1/idx_ssa_g#3 ) @@ -110,82 +110,82 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN1 = (byte*)$400 -constant byte* const SCREEN2 = (byte*)$400+$28 -constant byte* const SCREEN3 = (byte*)$400+$50 -constant byte* const SCREEN4 = (byte*)$400+$78 +__constant char * const SCREEN1 = (char *)$400 +__constant char * const SCREEN2 = (char *)$400+$28 +__constant char * const SCREEN3 = (char *)$400+$50 +__constant char * const SCREEN4 = (char *)$400+$78 void __start() -byte idx_nssa_g loadstore -byte idx_ssa_g -byte idx_ssa_g#0 -byte idx_ssa_g#1 -byte idx_ssa_g#10 -byte idx_ssa_g#11 -byte idx_ssa_g#12 -byte idx_ssa_g#13 -byte idx_ssa_g#14 -byte idx_ssa_g#15 -byte idx_ssa_g#16 -byte idx_ssa_g#17 -byte idx_ssa_g#18 -byte idx_ssa_g#19 -byte idx_ssa_g#2 -byte idx_ssa_g#3 -byte idx_ssa_g#4 -byte idx_ssa_g#5 -byte idx_ssa_g#6 -byte idx_ssa_g#7 -byte idx_ssa_g#8 -byte idx_ssa_g#9 +__loadstore char idx_nssa_g +char idx_ssa_g +char idx_ssa_g#0 +char idx_ssa_g#1 +char idx_ssa_g#10 +char idx_ssa_g#11 +char idx_ssa_g#12 +char idx_ssa_g#13 +char idx_ssa_g#14 +char idx_ssa_g#15 +char idx_ssa_g#16 +char idx_ssa_g#17 +char idx_ssa_g#18 +char idx_ssa_g#19 +char idx_ssa_g#2 +char idx_ssa_g#3 +char idx_ssa_g#4 +char idx_ssa_g#5 +char idx_ssa_g#6 +char idx_ssa_g#7 +char idx_ssa_g#8 +char idx_ssa_g#9 void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::i2 -byte main::i2#0 -byte main::i2#1 -byte main::i2#2 -byte main::i3 -byte main::i3#0 -byte main::i3#1 -byte main::i3#2 -byte main::idx_nssa_l loadstore -byte main::idx_ssa_l -byte main::idx_ssa_l#0 -byte main::idx_ssa_l#1 -byte main::idx_ssa_l#2 -byte main::idx_ssa_l#3 -byte main::idx_ssa_l#4 -byte main::idx_ssa_l#5 -byte main::idx_ssa_l#6 -byte main::idx_ssa_l#7 -byte main::idx_ssa_l#8 -byte main::idx_ssa_l#9 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::i2 +char main::i2#0 +char main::i2#1 +char main::i2#2 +char main::i3 +char main::i3#0 +char main::i3#1 +char main::i3#2 +__loadstore char main::idx_nssa_l +char main::idx_ssa_l +char main::idx_ssa_l#0 +char main::idx_ssa_l#1 +char main::idx_ssa_l#2 +char main::idx_ssa_l#3 +char main::idx_ssa_l#4 +char main::idx_ssa_l#5 +char main::idx_ssa_l#6 +char main::idx_ssa_l#7 +char main::idx_ssa_l#8 +char main::idx_ssa_l#9 Adding number conversion cast (unumber) $28 in Adding number conversion cast (unumber) $50 in Adding number conversion cast (unumber) $78 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $50 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $78 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $78 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $78 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx_ssa_g#1 = idx_ssa_g#9 Alias main::idx_ssa_l#8 = main::idx_ssa_l#9 @@ -249,10 +249,10 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 'L'-(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [2] idx_ssa_g#0 = ++ idx_ssa_g#13 Constant right-side identified [19] main::idx_ssa_l#1 = ++ main::idx_ssa_l#0 @@ -317,7 +317,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -384,27 +384,27 @@ main::@return: scope:[main] from main::@8 VARIABLE REGISTER WEIGHTS void __start() -byte idx_nssa_g loadstore 20.61111111111111 -byte idx_ssa_g -byte idx_ssa_g#1 71.0 -byte idx_ssa_g#8 151.5 +__loadstore char idx_nssa_g // 20.61111111111111 +char idx_ssa_g +char idx_ssa_g#1 // 71.0 +char idx_ssa_g#8 // 151.5 void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 101.0 -byte main::i1 -byte main::i1#1 151.5 -byte main::i1#2 101.0 -byte main::i2 -byte main::i2#1 151.5 -byte main::i2#2 101.0 -byte main::i3 -byte main::i3#1 151.5 -byte main::i3#2 101.0 -byte main::idx_nssa_l loadstore 11.875 -byte main::idx_ssa_l -byte main::idx_ssa_l#2 71.0 -byte main::idx_ssa_l#5 151.5 +char main::i +char main::i#1 // 151.5 +char main::i#2 // 101.0 +char main::i1 +char main::i1#1 // 151.5 +char main::i1#2 // 101.0 +char main::i2 +char main::i2#1 // 151.5 +char main::i2#2 // 101.0 +char main::i3 +char main::i3#1 // 151.5 +char main::i3#2 // 101.0 +__loadstore char main::idx_nssa_l // 11.875 +char main::idx_ssa_l +char main::idx_ssa_l#2 // 71.0 +char main::idx_ssa_l#5 // 151.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -518,7 +518,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -724,32 +724,32 @@ Removing instruction jmp __b7 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN1 = (byte*) 1024 -constant byte* const SCREEN2 = (byte*) 1024+$28 -constant byte* const SCREEN3 = (byte*) 1024+$50 -constant byte* const SCREEN4 = (byte*) 1024+$78 +__constant char * const SCREEN1 = (char *) 1024 +__constant char * const SCREEN2 = (char *) 1024+$28 +__constant char * const SCREEN3 = (char *) 1024+$50 +__constant char * const SCREEN4 = (char *) 1024+$78 void __start() -byte idx_nssa_g loadstore zp[1]:2 20.61111111111111 -byte idx_ssa_g -byte idx_ssa_g#1 reg byte y 71.0 -byte idx_ssa_g#8 reg byte y 151.5 +__loadstore char idx_nssa_g // zp[1]:2 20.61111111111111 +char idx_ssa_g +char idx_ssa_g#1 // reg byte y 71.0 +char idx_ssa_g#8 // reg byte y 151.5 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 101.0 -byte main::i1 -byte main::i1#1 reg byte a 151.5 -byte main::i1#2 reg byte a 101.0 -byte main::i2 -byte main::i2#1 reg byte x 151.5 -byte main::i2#2 reg byte x 101.0 -byte main::i3 -byte main::i3#1 reg byte a 151.5 -byte main::i3#2 reg byte a 101.0 -byte main::idx_nssa_l loadstore zp[1]:3 11.875 -byte main::idx_ssa_l -byte main::idx_ssa_l#2 reg byte y 71.0 -byte main::idx_ssa_l#5 reg byte y 151.5 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 101.0 +char main::i1 +char main::i1#1 // reg byte a 151.5 +char main::i1#2 // reg byte a 101.0 +char main::i2 +char main::i2#1 // reg byte x 151.5 +char main::i2#2 // reg byte x 101.0 +char main::i3 +char main::i3#1 // reg byte a 151.5 +char main::i3#2 // reg byte a 101.0 +__loadstore char main::idx_nssa_l // zp[1]:3 11.875 +char main::idx_ssa_l +char main::idx_ssa_l#2 // reg byte y 71.0 +char main::idx_ssa_l#5 // reg byte y 151.5 reg byte x [ main::i#2 main::i#1 ] reg byte y [ idx_ssa_g#8 idx_ssa_g#1 ] @@ -791,7 +791,7 @@ __start: { sta.z idx_nssa_g // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/declared-ssa-var-0.sym b/src/test/ref/declared-ssa-var-0.sym index fb43b0b26..dd1494e58 100644 --- a/src/test/ref/declared-ssa-var-0.sym +++ b/src/test/ref/declared-ssa-var-0.sym @@ -1,29 +1,29 @@ -constant byte* const SCREEN1 = (byte*) 1024 -constant byte* const SCREEN2 = (byte*) 1024+$28 -constant byte* const SCREEN3 = (byte*) 1024+$50 -constant byte* const SCREEN4 = (byte*) 1024+$78 +__constant char * const SCREEN1 = (char *) 1024 +__constant char * const SCREEN2 = (char *) 1024+$28 +__constant char * const SCREEN3 = (char *) 1024+$50 +__constant char * const SCREEN4 = (char *) 1024+$78 void __start() -byte idx_nssa_g loadstore zp[1]:2 20.61111111111111 -byte idx_ssa_g -byte idx_ssa_g#1 reg byte y 71.0 -byte idx_ssa_g#8 reg byte y 151.5 +__loadstore char idx_nssa_g // zp[1]:2 20.61111111111111 +char idx_ssa_g +char idx_ssa_g#1 // reg byte y 71.0 +char idx_ssa_g#8 // reg byte y 151.5 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 101.0 -byte main::i1 -byte main::i1#1 reg byte a 151.5 -byte main::i1#2 reg byte a 101.0 -byte main::i2 -byte main::i2#1 reg byte x 151.5 -byte main::i2#2 reg byte x 101.0 -byte main::i3 -byte main::i3#1 reg byte a 151.5 -byte main::i3#2 reg byte a 101.0 -byte main::idx_nssa_l loadstore zp[1]:3 11.875 -byte main::idx_ssa_l -byte main::idx_ssa_l#2 reg byte y 71.0 -byte main::idx_ssa_l#5 reg byte y 151.5 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 101.0 +char main::i1 +char main::i1#1 // reg byte a 151.5 +char main::i1#2 // reg byte a 101.0 +char main::i2 +char main::i2#1 // reg byte x 151.5 +char main::i2#2 // reg byte x 101.0 +char main::i3 +char main::i3#1 // reg byte a 151.5 +char main::i3#2 // reg byte a 101.0 +__loadstore char main::idx_nssa_l // zp[1]:3 11.875 +char main::idx_ssa_l +char main::idx_ssa_l#2 // reg byte y 71.0 +char main::idx_ssa_l#5 // reg byte y 151.5 reg byte x [ main::i#2 main::i#1 ] reg byte y [ idx_ssa_g#8 idx_ssa_g#1 ] diff --git a/src/test/ref/default-font.asm b/src/test/ref/default-font.asm index 936e70f57..dd79308ee 100644 --- a/src/test/ref/default-font.asm +++ b/src/test/ref/default-font.asm @@ -57,6 +57,7 @@ main: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 diff --git a/src/test/ref/default-font.cfg b/src/test/ref/default-font.cfg index f3d2b5215..832897ad0 100644 --- a/src/test/ref/default-font.cfg +++ b/src/test/ref/default-font.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@1 main::@1: scope:[main] from main main::@3 [2] main::x#4 = phi( main::@3/main::x#1, main/0 ) @@ -28,12 +28,12 @@ main::@return: scope:[main] from main::@3 [12] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [13] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [14] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [14] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [15] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 diff --git a/src/test/ref/default-font.log b/src/test/ref/default-font.log index 4caac3455..b6f8d286b 100644 --- a/src/test/ref/default-font.log +++ b/src/test/ref/default-font.log @@ -1,10 +1,10 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$2 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main memset::c#4 = phi( main/memset::c#0 ) memset::str#3 = phi( main/memset::str#0 ) @@ -21,9 +21,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -49,10 +49,10 @@ memset::@return: scope:[memset] from memset::@1 void main() main: scope:[main] from __start::@1 - memset::str#0 = (void*)SCREEN + memset::str#0 = (void *)SCREEN memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#2 = memset::return#1 to:main::@4 main::@4: scope:[main] from main @@ -98,7 +98,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -107,71 +107,71 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -byte*~ main::$1 -bool~ main::$3 -bool~ main::$4 -byte main::ch -byte main::ch#0 -byte main::ch#1 -byte main::ch#2 -byte main::ch#3 -byte main::ch#4 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 +char *main::$1 +bool main::$3 +bool main::$4 +char main::ch +char main::ch#0 +char main::ch#1 +char main::ch#2 +char main::ch#3 +char main::ch#4 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Adding number conversion cast (unumber) $3e8 in memset::num#0 = $3e8 @@ -179,19 +179,19 @@ Adding number conversion cast (unumber) $28 in main::$1 = SCREEN + $28 Adding number conversion cast (unumber) 1 in main::screen#0 = main::$1 + 1 Adding number conversion cast (unumber) $28-$10 in main::screen#2 = main::screen#4 + $28-$10 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast memset::num#0 = (unumber)$3e8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $3e8 Simplifying constant integer cast $28 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -222,10 +222,10 @@ Simple Condition memset::$3 [9] if(memset::dst#2!=memset::end#0) goto memset::@4 Simple Condition main::$3 [30] if(main::y#1!=rangelast(0,$f)) goto main::@2 Simple Condition main::$4 [34] if(main::x#1!=rangelast(0,$f)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [13] memset::str#0 = (void*)SCREEN +Constant right-side identified [13] memset::str#0 = (void *)SCREEN Constant right-side identified [18] main::$1 = SCREEN + $28 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memset::str#0 = (void*)SCREEN +Constant memset::str#0 = (void *)SCREEN Constant memset::c#0 = ' ' Constant memset::num#0 = $3e8 Constant main::$1 = SCREEN+$28 @@ -233,8 +233,8 @@ Constant main::ch#0 = 0 Constant main::x#0 = 0 Constant main::y#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Constant memset::return#2 = memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [2] if(memset::num#0<=0) goto memset::@1 @@ -258,8 +258,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $10 Simplifying constant integer cast $10 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] memset::end#0 = memset::$4 + memset::num#0 Constant right-side identified [7] main::screen#0 = main::$1 + 1 @@ -273,15 +273,15 @@ Inlining constant with var siblings main::x#0 Inlining constant with var siblings main::y#0 Inlining constant with var siblings main::screen#0 Constant inlined main::screen#0 = SCREEN+$28+1 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined main::$1 = SCREEN+$28 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined main::x#0 = 0 Constant inlined main::y#0 = 0 Constant inlined main::ch#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28-$10 Successful SSA optimization PassNCastSimplification @@ -321,7 +321,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@1 main::@1: scope:[main] from main main::@3 [2] main::x#4 = phi( main::@3/main::x#1, main/0 ) @@ -347,12 +347,12 @@ main::@return: scope:[main] from main::@3 [12] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [13] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [14] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [14] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [15] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -366,30 +366,30 @@ memset::@2: scope:[memset] from memset::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::ch -byte main::ch#1 35.5 -byte main::ch#2 104.66666666666666 -byte main::ch#3 22.0 -byte* main::screen -byte* main::screen#1 53.25 -byte* main::screen#2 7.333333333333333 -byte* main::screen#3 157.0 -byte* main::screen#5 22.0 -byte main::x -byte main::x#1 16.5 -byte main::x#4 2.75 -byte main::y -byte main::y#1 151.5 -byte main::y#2 50.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 134.66666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str +char main::ch +char main::ch#1 // 35.5 +char main::ch#2 // 104.66666666666666 +char main::ch#3 // 22.0 +char *main::screen +char *main::screen#1 // 53.25 +char *main::screen#2 // 7.333333333333333 +char *main::screen#3 // 157.0 +char *main::screen#5 // 22.0 +char main::x +char main::x#1 // 16.5 +char main::x#4 // 2.75 +char main::y +char main::y#1 // 151.5 +char main::y#2 // 50.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 134.66666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str Initial phi equivalence classes [ main::x#4 main::x#1 ] @@ -467,7 +467,7 @@ main: { .label screen = 4 .label ch = 3 .label x = 2 - // [1] call memset + // [1] call memset // [13] phi from main to memset [phi:main->memset] memset_from_main: jsr memset @@ -549,6 +549,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -557,7 +558,7 @@ memset: { .label dst = 6 // [14] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [14] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [14] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -622,36 +623,36 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::ch -byte main::ch#1 ch zp[1]:3 35.5 -byte main::ch#2 ch zp[1]:3 104.66666666666666 -byte main::ch#3 ch zp[1]:3 22.0 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 53.25 -byte* main::screen#2 screen zp[2]:4 7.333333333333333 -byte* main::screen#3 screen zp[2]:4 157.0 -byte* main::screen#5 screen zp[2]:4 22.0 -byte main::x -byte main::x#1 x zp[1]:2 16.5 -byte main::x#4 x zp[1]:2 2.75 -byte main::y -byte main::y#1 reg byte x 151.5 -byte main::y#2 reg byte x 50.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 202.0 -byte* memset::dst#2 dst zp[2]:6 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)SCREEN +char main::ch +char main::ch#1 // ch zp[1]:3 35.5 +char main::ch#2 // ch zp[1]:3 104.66666666666666 +char main::ch#3 // ch zp[1]:3 22.0 +char *main::screen +char *main::screen#1 // screen zp[2]:4 53.25 +char *main::screen#2 // screen zp[2]:4 7.333333333333333 +char *main::screen#3 // screen zp[2]:4 157.0 +char *main::screen#5 // screen zp[2]:4 22.0 +char main::x +char main::x#1 // x zp[1]:2 16.5 +char main::x#4 // x zp[1]:2 2.75 +char main::y +char main::y#1 // reg byte x 151.5 +char main::y#2 // reg byte x 50.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 202.0 +char *memset::dst#2 // dst zp[2]:6 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)SCREEN // str zp[1]:2 [ main::x#4 main::x#1 ] zp[1]:3 [ main::ch#2 main::ch#3 main::ch#1 ] @@ -683,7 +684,7 @@ main: { .label ch = 3 .label x = 2 // memset(SCREEN, ' ', 1000) - // [1] call memset + // [1] call memset // [13] phi from main to memset [phi:main->memset] jsr memset // [2] phi from main to main::@1 [phi:main->main::@1] @@ -758,6 +759,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -765,7 +767,7 @@ memset: { .label end = str+num .label dst = 6 // [14] phi from memset to memset::@1 [phi:memset->memset::@1] - // [14] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [14] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/default-font.sym b/src/test/ref/default-font.sym index 90aecd3ce..3d3564a29 100644 --- a/src/test/ref/default-font.sym +++ b/src/test/ref/default-font.sym @@ -1,33 +1,33 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::ch -byte main::ch#1 ch zp[1]:3 35.5 -byte main::ch#2 ch zp[1]:3 104.66666666666666 -byte main::ch#3 ch zp[1]:3 22.0 -byte* main::screen -byte* main::screen#1 screen zp[2]:4 53.25 -byte* main::screen#2 screen zp[2]:4 7.333333333333333 -byte* main::screen#3 screen zp[2]:4 157.0 -byte* main::screen#5 screen zp[2]:4 22.0 -byte main::x -byte main::x#1 x zp[1]:2 16.5 -byte main::x#4 x zp[1]:2 2.75 -byte main::y -byte main::y#1 reg byte x 151.5 -byte main::y#2 reg byte x 50.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 202.0 -byte* memset::dst#2 dst zp[2]:6 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)SCREEN +char main::ch +char main::ch#1 // ch zp[1]:3 35.5 +char main::ch#2 // ch zp[1]:3 104.66666666666666 +char main::ch#3 // ch zp[1]:3 22.0 +char *main::screen +char *main::screen#1 // screen zp[2]:4 53.25 +char *main::screen#2 // screen zp[2]:4 7.333333333333333 +char *main::screen#3 // screen zp[2]:4 157.0 +char *main::screen#5 // screen zp[2]:4 22.0 +char main::x +char main::x#1 // x zp[1]:2 16.5 +char main::x#4 // x zp[1]:2 2.75 +char main::y +char main::y#1 // reg byte x 151.5 +char main::y#2 // reg byte x 50.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 202.0 +char *memset::dst#2 // dst zp[2]:6 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)SCREEN // str zp[1]:2 [ main::x#4 main::x#1 ] zp[1]:3 [ main::ch#2 main::ch#3 main::ch#1 ] diff --git a/src/test/ref/deref-to-derefidx-2.asm b/src/test/ref/deref-to-derefidx-2.asm index 02a91b9fb..2eafb8b9f 100644 --- a/src/test/ref/deref-to-derefidx-2.asm +++ b/src/test/ref/deref-to-derefidx-2.asm @@ -28,7 +28,7 @@ main: { // } rts } -// print(byte* zp(2) m) +// void print(__zp(2) char *m) print: { .label m = 2 // SCREEN[screen_idx++] = *(word*)(m+2) diff --git a/src/test/ref/deref-to-derefidx-2.cfg b/src/test/ref/deref-to-derefidx-2.cfg index 820d63623..741896eb8 100644 --- a/src/test/ref/deref-to-derefidx-2.cfg +++ b/src/test/ref/deref-to-derefidx-2.cfg @@ -2,22 +2,22 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(byte* print::m) +void print(char *m) print: scope:[print] from main main::@1 [5] screen_idx#11 = phi( main/0, main::@1/screen_idx#12 ) [5] print::m#2 = phi( main/msg1, main::@1/msg2 ) [6] print::$1 = screen_idx#11 << 1 - [7] SCREEN[print::$1] = ((word*)print::m#2)[2] + [7] SCREEN[print::$1] = ((unsigned int *)print::m#2)[2] [8] screen_idx#12 = ++ screen_idx#11 to:print::@return print::@return: scope:[print] from print diff --git a/src/test/ref/deref-to-derefidx-2.log b/src/test/ref/deref-to-derefidx-2.log index 7c8d5adbb..c59f85c0b 100644 --- a/src/test/ref/deref-to-derefidx-2.log +++ b/src/test/ref/deref-to-derefidx-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start::@1 screen_idx#15 = phi( __start::@1/screen_idx#16 ) print::m#0 = msg1 - call print + call print to:main::@1 main::@1: scope:[main] from main screen_idx#8 = phi( main/screen_idx#4 ) screen_idx#0 = screen_idx#8 print::m#1 = msg2 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 screen_idx#9 = phi( main::@1/screen_idx#4 ) @@ -24,13 +24,13 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte* print::m) +void print(char *m) print: scope:[print] from main main::@1 screen_idx#11 = phi( main/screen_idx#15, main::@1/screen_idx#0 ) print::m#2 = phi( main/print::m#0, main::@1/print::m#1 ) print::$0 = print::m#2 + 2 - print::$1 = screen_idx#11 * SIZEOF_WORD - SCREEN[print::$1] = *((word*)print::$0) + print::$1 = screen_idx#11 * SIZEOF_UNSIGNED_INT + SCREEN[print::$1] = *((unsigned int *)print::$0) screen_idx#3 = ++ screen_idx#11 to:print::@return print::@return: scope:[print] from print @@ -47,7 +47,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen_idx#16 = phi( __start::__init1/screen_idx#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen_idx#13 = phi( __start::@1/screen_idx#2 ) @@ -60,44 +60,44 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant word* const SCREEN = (byte*)$400 -constant byte SIZEOF_WORD = 2 +__constant unsigned int * const SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -constant byte* msg1[] = { 'a', 'b', 'c', 'd' } -constant byte* msg2[] = { '1', '2', '3', '4' } -void print(byte* print::m) -byte*~ print::$0 -byte~ print::$1 -byte* print::m -byte* print::m#0 -byte* print::m#1 -byte* print::m#2 -byte screen_idx -byte screen_idx#0 -byte screen_idx#1 -byte screen_idx#10 -byte screen_idx#11 -byte screen_idx#12 -byte screen_idx#13 -byte screen_idx#14 -byte screen_idx#15 -byte screen_idx#16 -byte screen_idx#2 -byte screen_idx#3 -byte screen_idx#4 -byte screen_idx#5 -byte screen_idx#6 -byte screen_idx#7 -byte screen_idx#8 -byte screen_idx#9 +__constant char msg1[] = { 'a', 'b', 'c', 'd' } +__constant char msg2[] = { '1', '2', '3', '4' } +void print(char *m) +char *print::$0 +char print::$1 +char *print::m +char *print::m#0 +char *print::m#1 +char *print::m#2 +char screen_idx +char screen_idx#0 +char screen_idx#1 +char screen_idx#10 +char screen_idx#11 +char screen_idx#12 +char screen_idx#13 +char screen_idx#14 +char screen_idx#15 +char screen_idx#16 +char screen_idx#2 +char screen_idx#3 +char screen_idx#4 +char screen_idx#5 +char screen_idx#6 +char screen_idx#7 +char screen_idx#8 +char screen_idx#9 Adding number conversion cast (unumber) 2 in print::$0 = print::m#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias screen_idx#0 = screen_idx#8 Alias screen_idx#1 = screen_idx#9 screen_idx#10 screen_idx#2 @@ -114,7 +114,7 @@ Constant print::m#0 = msg1 Constant print::m#1 = msg2 Constant screen_idx#16 = 0 Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [11] SCREEN[print::$1] = *((word*)print::$0) -- ((word*)print::m#2)[2] +Converting *(pointer+n) to pointer[n] [11] SCREEN[print::$1] = *((unsigned int *)print::$0) -- ((unsigned int *)print::m#2)[2] Successful SSA optimization Pass2InlineDerefIdx Eliminating unused variable print::$0 and assignment [4] print::$0 = print::m#2 + 2 Successful SSA optimization PassNEliminateUnusedVars @@ -125,7 +125,7 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [4] print::$1 = screen_idx#11 * SIZEOF_WORD +Rewriting multiplication to use shift [4] print::$1 = screen_idx#11 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print::m#0 Inlining constant with var siblings print::m#1 @@ -134,7 +134,7 @@ Constant inlined screen_idx#16 = 0 Constant inlined print::m#1 = msg2 Constant inlined print::m#0 = msg1 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -153,22 +153,22 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(byte* print::m) +void print(char *m) print: scope:[print] from main main::@1 [5] screen_idx#11 = phi( main/0, main::@1/screen_idx#12 ) [5] print::m#2 = phi( main/msg1, main::@1/msg2 ) [6] print::$1 = screen_idx#11 << 1 - [7] SCREEN[print::$1] = ((word*)print::m#2)[2] + [7] SCREEN[print::$1] = ((unsigned int *)print::m#2)[2] [8] screen_idx#12 = ++ screen_idx#11 to:print::@return print::@return: scope:[print] from print @@ -178,13 +178,13 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void main() -void print(byte* print::m) -byte~ print::$1 22.0 -byte* print::m -byte* print::m#2 -byte screen_idx -byte screen_idx#11 8.0 -byte screen_idx#12 3.25 +void print(char *m) +char print::$1 // 22.0 +char *print::m +char *print::m#2 +char screen_idx +char screen_idx#11 // 8.0 +char screen_idx#12 // 3.25 Initial phi equivalence classes [ print::m#2 ] @@ -200,10 +200,10 @@ Allocated zp[1]:5 [ print::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [6] print::$1 = screen_idx#11 << 1 [ print::m#2 screen_idx#11 print::$1 ] ( print:1 [ print::m#2 screen_idx#11 print::$1 ] { } print:3 [ print::m#2 screen_idx#11 print::$1 ] { { screen_idx#11 = screen_idx#12 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ screen_idx#11 screen_idx#12 ] -Statement [7] SCREEN[print::$1] = ((word*)print::m#2)[2] [ screen_idx#11 ] ( print:1 [ screen_idx#11 ] { } print:3 [ screen_idx#11 ] { { screen_idx#11 = screen_idx#12 } } ) always clobbers reg byte a reg byte y +Statement [7] SCREEN[print::$1] = ((unsigned int *)print::m#2)[2] [ screen_idx#11 ] ( print:1 [ screen_idx#11 ] { } print:3 [ screen_idx#11 ] { { screen_idx#11 = screen_idx#12 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ screen_idx#11 screen_idx#12 ] Statement [6] print::$1 = screen_idx#11 << 1 [ print::m#2 screen_idx#11 print::$1 ] ( print:1 [ print::m#2 screen_idx#11 print::$1 ] { } print:3 [ print::m#2 screen_idx#11 print::$1 ] { { screen_idx#11 = screen_idx#12 } } ) always clobbers reg byte a -Statement [7] SCREEN[print::$1] = ((word*)print::m#2)[2] [ screen_idx#11 ] ( print:1 [ screen_idx#11 ] { } print:3 [ screen_idx#11 ] { { screen_idx#11 = screen_idx#12 } } ) always clobbers reg byte a reg byte y +Statement [7] SCREEN[print::$1] = ((unsigned int *)print::m#2)[2] [ screen_idx#11 ] ( print:1 [ screen_idx#11 ] { } print:3 [ screen_idx#11 ] { { screen_idx#11 = screen_idx#12 } } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ print::m#2 ] : zp[2]:2 , Potential registers zp[1]:4 [ screen_idx#11 screen_idx#12 ] : zp[1]:4 , reg byte x , Potential registers zp[1]:5 [ print::$1 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -237,7 +237,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] print_from_main: // [5] phi screen_idx#11 = 0 [phi:main->print#0] -- vbuz1=vbuc1 @@ -254,7 +254,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [5] phi screen_idx#11 = screen_idx#12 [phi:main::@1->print#0] -- register_copy @@ -271,13 +271,13 @@ main: { rts } // print -// print(byte* zp(2) m) +// void print(__zp(2) char *m) print: { .label m = 2 // [6] print::$1 = screen_idx#11 << 1 -- vbuaa=vbuz1_rol_1 lda.z screen_idx asl - // [7] SCREEN[print::$1] = ((word*)print::m#2)[2] -- pwuc1_derefidx_vbuaa=pwuz1_derefidx_vbuc2 + // [7] SCREEN[print::$1] = ((unsigned int *)print::m#2)[2] -- pwuc1_derefidx_vbuaa=pwuz1_derefidx_vbuc2 ldy #2 tax lda (m),y @@ -313,17 +313,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (byte*) 1024 +__constant unsigned int * const SCREEN = (char *) 1024 void main() -constant byte* msg1[] = { 'a', 'b', 'c', 'd' } -constant byte* msg2[] = { '1', '2', '3', '4' } -void print(byte* print::m) -byte~ print::$1 reg byte a 22.0 -byte* print::m -byte* print::m#2 m zp[2]:2 -byte screen_idx -byte screen_idx#11 screen_idx zp[1]:4 8.0 -byte screen_idx#12 screen_idx zp[1]:4 3.25 +__constant char msg1[] = { 'a', 'b', 'c', 'd' } +__constant char msg2[] = { '1', '2', '3', '4' } +void print(char *m) +char print::$1 // reg byte a 22.0 +char *print::m +char *print::m#2 // m zp[2]:2 +char screen_idx +char screen_idx#11 // screen_idx zp[1]:4 8.0 +char screen_idx#12 // screen_idx zp[1]:4 3.25 zp[2]:2 [ print::m#2 ] zp[1]:4 [ screen_idx#11 screen_idx#12 ] @@ -351,7 +351,7 @@ Score: 86 // main main: { // print(msg1) - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] // [5] phi screen_idx#11 = 0 [phi:main->print#0] -- vbuz1=vbuc1 lda #0 @@ -365,7 +365,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(msg2) - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] // [5] phi screen_idx#11 = screen_idx#12 [phi:main::@1->print#0] -- register_copy // [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1 @@ -380,14 +380,14 @@ main: { rts } // print -// print(byte* zp(2) m) +// void print(__zp(2) char *m) print: { .label m = 2 // SCREEN[screen_idx++] = *(word*)(m+2) // [6] print::$1 = screen_idx#11 << 1 -- vbuaa=vbuz1_rol_1 lda.z screen_idx asl - // [7] SCREEN[print::$1] = ((word*)print::m#2)[2] -- pwuc1_derefidx_vbuaa=pwuz1_derefidx_vbuc2 + // [7] SCREEN[print::$1] = ((unsigned int *)print::m#2)[2] -- pwuc1_derefidx_vbuaa=pwuz1_derefidx_vbuc2 ldy #2 tax lda (m),y diff --git a/src/test/ref/deref-to-derefidx-2.sym b/src/test/ref/deref-to-derefidx-2.sym index 8838b2aa6..4c39e7833 100644 --- a/src/test/ref/deref-to-derefidx-2.sym +++ b/src/test/ref/deref-to-derefidx-2.sym @@ -1,14 +1,14 @@ -constant word* const SCREEN = (byte*) 1024 +__constant unsigned int * const SCREEN = (char *) 1024 void main() -constant byte* msg1[] = { 'a', 'b', 'c', 'd' } -constant byte* msg2[] = { '1', '2', '3', '4' } -void print(byte* print::m) -byte~ print::$1 reg byte a 22.0 -byte* print::m -byte* print::m#2 m zp[2]:2 -byte screen_idx -byte screen_idx#11 screen_idx zp[1]:4 8.0 -byte screen_idx#12 screen_idx zp[1]:4 3.25 +__constant char msg1[] = { 'a', 'b', 'c', 'd' } +__constant char msg2[] = { '1', '2', '3', '4' } +void print(char *m) +char print::$1 // reg byte a 22.0 +char *print::m +char *print::m#2 // m zp[2]:2 +char screen_idx +char screen_idx#11 // screen_idx zp[1]:4 8.0 +char screen_idx#12 // screen_idx zp[1]:4 3.25 zp[2]:2 [ print::m#2 ] zp[1]:4 [ screen_idx#11 screen_idx#12 ] diff --git a/src/test/ref/deref-to-derefidx.asm b/src/test/ref/deref-to-derefidx.asm index 0e510e909..7cd6f6ac1 100644 --- a/src/test/ref/deref-to-derefidx.asm +++ b/src/test/ref/deref-to-derefidx.asm @@ -26,7 +26,7 @@ main: { // } rts } -// print(byte* zp(2) m) +// void print(__zp(2) char *m) print: { .label m = 2 // SCREEN[idx++] = *(m+2) diff --git a/src/test/ref/deref-to-derefidx.cfg b/src/test/ref/deref-to-derefidx.cfg index 73db405ec..aa33e37e4 100644 --- a/src/test/ref/deref-to-derefidx.cfg +++ b/src/test/ref/deref-to-derefidx.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(byte* print::m) +void print(char *m) print: scope:[print] from main main::@1 [5] idx#11 = phi( main/0, main::@1/idx#12 ) [5] print::m#2 = phi( main/msg1, main::@1/msg2 ) diff --git a/src/test/ref/deref-to-derefidx.log b/src/test/ref/deref-to-derefidx.log index 29da302ff..5e62ae723 100644 --- a/src/test/ref/deref-to-derefidx.log +++ b/src/test/ref/deref-to-derefidx.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start::@1 idx#15 = phi( __start::@1/idx#16 ) print::m#0 = msg1 - call print + call print to:main::@1 main::@1: scope:[main] from main idx#8 = phi( main/idx#4 ) idx#0 = idx#8 print::m#1 = msg2 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#9 = phi( main::@1/idx#4 ) @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte* print::m) +void print(char *m) print: scope:[print] from main main::@1 idx#11 = phi( main/idx#15, main::@1/idx#0 ) print::m#2 = phi( main/print::m#0, main::@1/print::m#1 ) @@ -46,7 +46,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#16 = phi( __start::__init1/idx#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#13 = phi( __start::@1/idx#2 ) @@ -59,42 +59,42 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant byte* msg1[] = { 'a', 'b', 'c', 'd' } -constant byte* msg2[] = { '1', '2', '3', '4' } -void print(byte* print::m) -byte*~ print::$0 -byte* print::m -byte* print::m#0 -byte* print::m#1 -byte* print::m#2 +__constant char msg1[] = { 'a', 'b', 'c', 'd' } +__constant char msg2[] = { '1', '2', '3', '4' } +void print(char *m) +char *print::$0 +char *print::m +char *print::m#0 +char *print::m#1 +char *print::m#2 Adding number conversion cast (unumber) 2 in print::$0 = print::m#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#8 Alias idx#1 = idx#9 idx#10 idx#2 @@ -146,17 +146,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(byte* print::m) +void print(char *m) print: scope:[print] from main main::@1 [5] idx#11 = phi( main/0, main::@1/idx#12 ) [5] print::m#2 = phi( main/msg1, main::@1/msg2 ) @@ -169,13 +169,13 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#11 12.0 -byte idx#12 3.25 +char idx +char idx#11 // 12.0 +char idx#12 // 3.25 void main() -void print(byte* print::m) -byte* print::m -byte* print::m#2 11.0 +void print(char *m) +char *print::m +char *print::m#2 // 11.0 Initial phi equivalence classes [ print::m#2 ] @@ -219,7 +219,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] print_from_main: // [5] phi idx#11 = 0 [phi:main->print#0] -- vbuxx=vbuc1 @@ -235,7 +235,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [5] phi idx#11 = idx#12 [phi:main::@1->print#0] -- register_copy @@ -252,7 +252,7 @@ main: { rts } // print -// print(byte* zp(2) m) +// void print(__zp(2) char *m) print: { .label m = 2 // [6] SCREEN[idx#11] = print::m#2[2] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 @@ -287,16 +287,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#11 reg byte x 12.0 -byte idx#12 reg byte x 3.25 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#11 // reg byte x 12.0 +char idx#12 // reg byte x 3.25 void main() -constant byte* msg1[] = { 'a', 'b', 'c', 'd' } -constant byte* msg2[] = { '1', '2', '3', '4' } -void print(byte* print::m) -byte* print::m -byte* print::m#2 m zp[2]:2 11.0 +__constant char msg1[] = { 'a', 'b', 'c', 'd' } +__constant char msg2[] = { '1', '2', '3', '4' } +void print(char *m) +char *print::m +char *print::m#2 // m zp[2]:2 11.0 zp[2]:2 [ print::m#2 ] reg byte x [ idx#11 idx#12 ] @@ -322,7 +322,7 @@ Score: 60 // main main: { // print(msg1) - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] // [5] phi idx#11 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 @@ -335,7 +335,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(msg2) - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] // [5] phi idx#11 = idx#12 [phi:main::@1->print#0] -- register_copy // [5] phi print::m#2 = msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1 @@ -350,7 +350,7 @@ main: { rts } // print -// print(byte* zp(2) m) +// void print(__zp(2) char *m) print: { .label m = 2 // SCREEN[idx++] = *(m+2) diff --git a/src/test/ref/deref-to-derefidx.sym b/src/test/ref/deref-to-derefidx.sym index 614928342..834aa382e 100644 --- a/src/test/ref/deref-to-derefidx.sym +++ b/src/test/ref/deref-to-derefidx.sym @@ -1,13 +1,13 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#11 reg byte x 12.0 -byte idx#12 reg byte x 3.25 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#11 // reg byte x 12.0 +char idx#12 // reg byte x 3.25 void main() -constant byte* msg1[] = { 'a', 'b', 'c', 'd' } -constant byte* msg2[] = { '1', '2', '3', '4' } -void print(byte* print::m) -byte* print::m -byte* print::m#2 m zp[2]:2 11.0 +__constant char msg1[] = { 'a', 'b', 'c', 'd' } +__constant char msg2[] = { '1', '2', '3', '4' } +void print(char *m) +char *print::m +char *print::m#2 // m zp[2]:2 11.0 zp[2]:2 [ print::m#2 ] reg byte x [ idx#11 idx#12 ] diff --git a/src/test/ref/derefidx-word-0.log b/src/test/ref/derefidx-word-0.log index 681e13225..53ef7ab51 100644 --- a/src/test/ref/derefidx-word-0.log +++ b/src/test/ref/derefidx-word-0.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,23 +32,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $3e8 in main::$0 = main::i#2 < $3e8 Adding number conversion cast (unumber) $28 in main::i#1 = main::i#3 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -96,10 +96,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$1 22.0 -word main::i -word main::i#1 22.0 -word main::i#2 11.0 +char *main::$1 // 22.0 +unsigned int main::i +unsigned int main::i#1 // 22.0 +unsigned int main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -209,11 +209,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte*~ main::$1 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 11.0 -constant byte* const main::screen = (byte*) 1024 +char *main::$1 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 11.0 +__constant char * const main::screen = (char *) 1024 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/derefidx-word-0.sym b/src/test/ref/derefidx-word-0.sym index 13cce5428..d1e81d64c 100644 --- a/src/test/ref/derefidx-word-0.sym +++ b/src/test/ref/derefidx-word-0.sym @@ -1,9 +1,9 @@ void main() -byte*~ main::$1 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 11.0 -constant byte* const main::screen = (byte*) 1024 +char *main::$1 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 11.0 +__constant char * const main::screen = (char *) 1024 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/derefidx-word-1.cfg b/src/test/ref/derefidx-word-1.cfg index 3b2221b61..31287655e 100644 --- a/src/test/ref/derefidx-word-1.cfg +++ b/src/test/ref/derefidx-word-1.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *(main::screen+(word)$28*$a) = 'a' + [0] *(main::screen+(unsigned int)$28*$a) = 'a' to:main::@return main::@return: scope:[main] from main [1] return diff --git a/src/test/ref/derefidx-word-1.log b/src/test/ref/derefidx-word-1.log index d5bba5c97..83f6efd77 100644 --- a/src/test/ref/derefidx-word-1.log +++ b/src/test/ref/derefidx-word-1.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,27 +22,27 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::screen = (byte*)$400 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $28*$a in main::screen[$28*$a] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -De-inlining pointer[w] to *(pointer+w) [0] main::screen[(word)$28*$a] = 'a' +De-inlining pointer[w] to *(pointer+w) [0] main::screen[(unsigned int)$28*$a] = 'a' Successful SSA optimization Pass2DeInlineWordDerefIdx Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [0] main::$0 = main::screen + (word)$28*$a +Constant right-side identified [0] main::$0 = main::screen + (unsigned int)$28*$a Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = main::screen+(word)$28*$a +Constant main::$0 = main::screen+(unsigned int)$28*$a Successful SSA optimization Pass2ConstantIdentification -Constant inlined main::$0 = main::screen+(word)$28*$a +Constant inlined main::$0 = main::screen+(unsigned int)$28*$a Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -53,7 +53,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *(main::screen+(word)$28*$a) = 'a' + [0] *(main::screen+(unsigned int)$28*$a) = 'a' to:main::@return main::@return: scope:[main] from main [1] return @@ -66,7 +66,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *(main::screen+(word)$28*$a) = 'a' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *(main::screen+(unsigned int)$28*$a) = 'a' [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -92,7 +92,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label screen = $400 - // [0] *(main::screen+(word)$28*$a) = 'a' -- _deref_pbuc1=vbuc2 + // [0] *(main::screen+(unsigned int)$28*$a) = 'a' -- _deref_pbuc1=vbuc2 lda #'a' sta screen+$28*$a jmp __breturn @@ -111,7 +111,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::screen = (byte*) 1024 +__constant char * const main::screen = (char *) 1024 @@ -135,7 +135,7 @@ Score: 12 main: { .label screen = $400 // screen[40*10] = 'a' - // [0] *(main::screen+(word)$28*$a) = 'a' -- _deref_pbuc1=vbuc2 + // [0] *(main::screen+(unsigned int)$28*$a) = 'a' -- _deref_pbuc1=vbuc2 lda #'a' sta screen+$28*$a // main::@return diff --git a/src/test/ref/derefidx-word-1.sym b/src/test/ref/derefidx-word-1.sym index fdb49c944..cace8be3e 100644 --- a/src/test/ref/derefidx-word-1.sym +++ b/src/test/ref/derefidx-word-1.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::screen = (byte*) 1024 +__constant char * const main::screen = (char *) 1024 diff --git a/src/test/ref/derefidx-word-2.cfg b/src/test/ref/derefidx-word-2.cfg index 60bfbfcfc..7800a4102 100644 --- a/src/test/ref/derefidx-word-2.cfg +++ b/src/test/ref/derefidx-word-2.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] (main::screen+(word)$28*$a)[main::i#2] = 'a' + [2] (main::screen+(unsigned int)$28*$a)[main::i#2] = 'a' [3] main::i#1 = ++ main::i#2 [4] if(main::i#1!=$28) goto main::@1 to:main::@return diff --git a/src/test/ref/derefidx-word-2.log b/src/test/ref/derefidx-word-2.log index 6f82bb2c0..b1bc1ebad 100644 --- a/src/test/ref/derefidx-word-2.log +++ b/src/test/ref/derefidx-word-2.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,20 +30,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* const main::screen = (byte*)$400 +number main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $28*$a in main::$0 = $28*$a + main::i#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)$28*$a + main::i#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Inferred type updated to word in main::$0 = (word)$28*$a + main::i#2 +Inferred type updated to unsigned int in main::$0 = (unsigned int)$28*$a + main::i#2 Simple Condition main::$1 [6] if(main::i#1!=rangelast(0,$27)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 @@ -61,7 +61,7 @@ Adding number conversion cast (unumber) $28 in [5] if(main::i#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -70,12 +70,12 @@ Consolidated constant in assignment main::$2 Successful SSA optimization Pass2ConstantAdditionElimination Alias main::i#2 = main::$0 Successful SSA optimization Pass2AliasElimination -Converting *(pointer+n) to pointer[n] [2] *main::$2 = 'a' -- (main::screen+(word)$28*$a)[main::i#2] +Converting *(pointer+n) to pointer[n] [2] *main::$2 = 'a' -- (main::screen+(unsigned int)$28*$a)[main::i#2] Successful SSA optimization Pass2InlineDerefIdx -Eliminating unused variable main::$2 and assignment [1] main::$2 = main::screen+(word)$28*$a + main::i#2 +Eliminating unused variable main::$2 and assignment [1] main::$2 = main::screen+(unsigned int)$28*$a + main::i#2 Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -95,7 +95,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] (main::screen+(word)$28*$a)[main::i#2] = 'a' + [2] (main::screen+(unsigned int)$28*$a)[main::i#2] = 'a' [3] main::i#1 = ++ main::i#2 [4] if(main::i#1!=$28) goto main::@1 to:main::@return @@ -106,9 +106,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -116,9 +116,9 @@ Complete equivalence classes [ main::i#2 main::i#1 ] Allocated zp[1]:2 [ main::i#2 main::i#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] (main::screen+(word)$28*$a)[main::i#2] = 'a' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [2] (main::screen+(unsigned int)$28*$a)[main::i#2] = 'a' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [2] (main::screen+(word)$28*$a)[main::i#2] = 'a' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [2] (main::screen+(unsigned int)$28*$a)[main::i#2] = 'a' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , REGISTER UPLIFT SCOPES @@ -156,7 +156,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] (main::screen+(word)$28*$a)[main::i#2] = 'a' -- pbuc1_derefidx_vbuxx=vbuc2 + // [2] (main::screen+(unsigned int)$28*$a)[main::i#2] = 'a' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'a' sta screen+$28*$a,x // [3] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx @@ -187,10 +187,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 -constant byte* const main::screen = (byte*) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] @@ -222,7 +222,7 @@ main: { // main::@1 __b1: // screen[40*10+i] = 'a' - // [2] (main::screen+(word)$28*$a)[main::i#2] = 'a' -- pbuc1_derefidx_vbuxx=vbuc2 + // [2] (main::screen+(unsigned int)$28*$a)[main::i#2] = 'a' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'a' sta screen+$28*$a,x // for( byte i : 0..39) diff --git a/src/test/ref/derefidx-word-2.sym b/src/test/ref/derefidx-word-2.sym index eb376b85a..69ceda8d7 100644 --- a/src/test/ref/derefidx-word-2.sym +++ b/src/test/ref/derefidx-word-2.sym @@ -1,7 +1,7 @@ void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 -constant byte* const main::screen = (byte*) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/divide-2s.cfg b/src/test/ref/divide-2s.cfg index 64421f597..a2830bd10 100644 --- a/src/test/ref/divide-2s.cfg +++ b/src/test/ref/divide-2s.cfg @@ -12,9 +12,9 @@ main::@1: scope:[main] from main main::@1 [6] (main::SCREEN+$28*2)[main::i#2] = main::$2 [7] main::$3 = main::i#2 >> 3 [8] (main::SCREEN+$28*3)[main::i#2] = main::$3 - [9] main::sb#0 = - (signed byte)main::i#2 + [9] main::sb#0 = - (signed char)main::i#2 [10] main::$5 = main::sb#0 >> 1 - [11] (main::SCREEN+$28*5)[main::i#2] = (byte)main::$5 + [11] (main::SCREEN+$28*5)[main::i#2] = (char)main::$5 [12] main::i#1 = ++ main::i#2 [13] if(main::i#1!=$b) goto main::@1 to:main::@return diff --git a/src/test/ref/divide-2s.log b/src/test/ref/divide-2s.log index 3f7cb3937..561201ef7 100644 --- a/src/test/ref/divide-2s.log +++ b/src/test/ref/divide-2s.log @@ -16,9 +16,9 @@ main::@1: scope:[main] from main main::@1 (main::SCREEN+$28*2)[main::i#2] = main::$2 main::$3 = main::i#2 / 8 (main::SCREEN+$28*3)[main::i#2] = main::$3 - main::sb#0 = - (signed byte)main::i#2 + main::sb#0 = - (signed char)main::i#2 main::$5 = main::sb#0 / 2 - (main::SCREEN+$28*5)[main::i#2] = (byte)main::$5 + (main::SCREEN+$28*5)[main::i#2] = (char)main::$5 main::i#1 = main::i#2 + rangenext(0,$a) main::$6 = main::i#1 != rangelast(0,$a) if(main::$6) goto main::@1 @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -40,19 +40,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$5 -bool~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -signed byte main::sb -signed byte main::sb#0 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +number main::$5 +bool main::$6 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +signed char main::sb +signed char main::sb#0 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 / 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 / (unumber)1 @@ -68,33 +68,33 @@ Adding number conversion cast (unumber) main::$3 in main::$3 = main::i#2 / (unum Adding number conversion cast (unumber) $28*3 in (main::SCREEN+$28*3)[main::i#2] = main::$3 Adding number conversion cast (snumber) 2 in main::$5 = main::sb#0 / 2 Adding number conversion cast (snumber) main::$5 in main::$5 = main::sb#0 / (snumber)2 -Adding number conversion cast (unumber) $28*5 in (main::SCREEN+$28*5)[main::i#2] = (byte)main::$5 +Adding number conversion cast (unumber) $28*5 in (main::SCREEN+$28*5)[main::i#2] = (char)main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 4 Simplifying constant integer cast 8 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 8 -Finalized signed number type (signed byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 8 +Finalized signed number type (signed char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 / 1 -Inferred type updated to byte in main::$1 = main::i#2 / 2 -Inferred type updated to byte in main::$2 = main::i#2 / 4 -Inferred type updated to byte in main::$3 = main::i#2 / 8 -Inferred type updated to signed byte in main::$5 = main::sb#0 / 2 +Inferred type updated to char in main::$0 = main::i#2 / 1 +Inferred type updated to char in main::$1 = main::i#2 / 2 +Inferred type updated to char in main::$2 = main::i#2 / 4 +Inferred type updated to char in main::$3 = main::i#2 / 8 +Inferred type updated to signed char in main::$5 = main::sb#0 / 2 Simple Condition main::$6 [15] if(main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [13] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [15] if(main::i#1!=rangelast(0,$a)) goto main::@1 to $b -Simplifying constant evaluating to zero (byte)$28*0 in [3] (main::SCREEN+(byte)$28*0)[main::i#2] = main::$0 +Simplifying constant evaluating to zero (char)$28*0 in [3] (main::SCREEN+(char)$28*0)[main::i#2] = main::$0 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [3] (main::SCREEN+0)[main::i#2] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -107,7 +107,7 @@ Adding number conversion cast (unumber) $b in [13] if(main::i#1!=$b) goto main:: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to remove identity multiply/divide [1] main::$0 = main::i#2 / 1 Rewriting division to use shift [3] main::$1 = main::i#2 / 2 @@ -120,14 +120,14 @@ Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Alias main::i#2 = main::$0 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*1 Simplifying constant integer cast $28*2 @@ -159,9 +159,9 @@ main::@1: scope:[main] from main main::@1 [6] (main::SCREEN+$28*2)[main::i#2] = main::$2 [7] main::$3 = main::i#2 >> 3 [8] (main::SCREEN+$28*3)[main::i#2] = main::$3 - [9] main::sb#0 = - (signed byte)main::i#2 + [9] main::sb#0 = - (signed char)main::i#2 [10] main::$5 = main::sb#0 >> 1 - [11] (main::SCREEN+$28*5)[main::i#2] = (byte)main::$5 + [11] (main::SCREEN+$28*5)[main::i#2] = (char)main::$5 [12] main::i#1 = ++ main::i#2 [13] if(main::i#1!=$b) goto main::@1 to:main::@return @@ -172,15 +172,15 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte~ main::$2 22.0 -byte~ main::$3 22.0 -signed byte~ main::$5 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -signed byte main::sb -signed byte main::sb#0 22.0 +char main::$1 // 22.0 +char main::$2 // 22.0 +char main::$3 // 22.0 +signed char main::$5 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +signed char main::sb +signed char main::sb#0 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -207,13 +207,13 @@ Statement [3] main::$1 = main::i#2 >> 1 [ main::i#2 main::$1 ] ( [ main::i#2 ma Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [5] main::$2 = main::i#2 >> 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Statement [7] main::$3 = main::i#2 >> 3 [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a -Statement [9] main::sb#0 = - (signed byte)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a +Statement [9] main::sb#0 = - (signed char)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a Statement [10] main::$5 = main::sb#0 >> 1 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Statement [2] main::SCREEN[main::i#2] = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [3] main::$1 = main::i#2 >> 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Statement [5] main::$2 = main::i#2 >> 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Statement [7] main::$3 = main::i#2 >> 3 [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a -Statement [9] main::sb#0 = - (signed byte)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a +Statement [9] main::sb#0 = - (signed char)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a Statement [10] main::$5 = main::sb#0 >> 1 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -283,7 +283,7 @@ main: { lsr // [8] (main::SCREEN+$28*3)[main::i#2] = main::$3 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*3,x - // [9] main::sb#0 = - (signed byte)main::i#2 -- vbsaa=_neg_vbsxx + // [9] main::sb#0 = - (signed char)main::i#2 -- vbsaa=_neg_vbsxx // And a single signed byte txa eor #$ff @@ -292,7 +292,7 @@ main: { // [10] main::$5 = main::sb#0 >> 1 -- vbsaa=vbsaa_ror_1 cmp #$80 ror - // [11] (main::SCREEN+$28*5)[main::i#2] = (byte)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa + // [11] (main::SCREEN+$28*5)[main::i#2] = (char)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*5,x // [12] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx inx @@ -322,16 +322,16 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -signed byte~ main::$5 reg byte a 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -signed byte main::sb -signed byte main::sb#0 reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +signed char main::$5 // reg byte a 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +signed char main::sb +signed char main::sb#0 // reg byte a 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] @@ -396,7 +396,7 @@ main: { // [8] (main::SCREEN+$28*3)[main::i#2] = main::$3 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*3,x // signed byte sb = -(signed byte)i - // [9] main::sb#0 = - (signed byte)main::i#2 -- vbsaa=_neg_vbsxx + // [9] main::sb#0 = - (signed char)main::i#2 -- vbsaa=_neg_vbsxx // And a single signed byte txa eor #$ff @@ -407,7 +407,7 @@ main: { cmp #$80 ror // (SCREEN+40*5)[i] = (byte)(sb/2) - // [11] (main::SCREEN+$28*5)[main::i#2] = (byte)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa + // [11] (main::SCREEN+$28*5)[main::i#2] = (char)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$28*5,x // for(byte i: 0..10) // [12] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/divide-2s.sym b/src/test/ref/divide-2s.sym index ee822380f..22a7b7254 100644 --- a/src/test/ref/divide-2s.sym +++ b/src/test/ref/divide-2s.sym @@ -1,14 +1,14 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -signed byte~ main::$5 reg byte a 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -signed byte main::sb -signed byte main::sb#0 reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +signed char main::$5 // reg byte a 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +signed char main::sb +signed char main::sb#0 // reg byte a 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/double-assignment.log b/src/test/ref/double-assignment.log index d1946fe2e..4bcd363a4 100644 --- a/src/test/ref/double-assignment.log +++ b/src/test/ref/double-assignment.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,13 +27,13 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte main::a -byte main::a#0 -byte main::a#1 -byte main::b -byte main::b#0 -byte main::b#1 -constant byte* main::screen = (byte*)$400 +char main::a +char main::a#0 +char main::a#1 +char main::b +char main::b#0 +char main::b#1 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) $c in main::b#1 = $c Adding number conversion cast (unumber) 0 in main::screen[0] = main::a#1 @@ -41,14 +41,14 @@ Adding number conversion cast (unumber) 1 in main::screen[1] = main::b#1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::b#1 = (unumber)$c Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $c Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::a#1 = main::b#1 Successful SSA optimization Pass2AliasElimination @@ -87,8 +87,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::b +char main::a +char main::b Initial phi equivalence classes Complete equivalence classes @@ -145,10 +145,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::a -constant byte main::a#1 a = $c -byte main::b -constant byte* main::screen = (byte*) 1024 +char main::a +__constant char main::a#1 = $c // a +char main::b +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/double-assignment.sym b/src/test/ref/double-assignment.sym index e14a7e545..21f8dda32 100644 --- a/src/test/ref/double-assignment.sym +++ b/src/test/ref/double-assignment.sym @@ -1,6 +1,6 @@ void main() -byte main::a -constant byte main::a#1 a = $c -byte main::b -constant byte* main::screen = (byte*) 1024 +char main::a +__constant char main::a#1 = $c // a +char main::b +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/double-import.log b/src/test/ref/double-import.log index 313229164..0287678c9 100644 --- a/src/test/ref/double-import.log +++ b/src/test/ref/double-import.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,12 +20,12 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char RED = 2 void __start() void main() -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -98,8 +98,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char RED = 2 void main() diff --git a/src/test/ref/double-import.sym b/src/test/ref/double-import.sym index e256016ac..f5d889466 100644 --- a/src/test/ref/double-import.sym +++ b/src/test/ref/double-import.sym @@ -1,4 +1,4 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char RED = 2 void main() diff --git a/src/test/ref/double-indexing-arrays.log b/src/test/ref/double-indexing-arrays.log index f4987e27b..8b32f6342 100644 --- a/src/test/ref/double-indexing-arrays.log +++ b/src/test/ref/double-indexing-arrays.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -48,7 +48,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -57,34 +57,34 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* COLORMAP1[$100] = { fill( $100, 0) } -constant byte* COLORMAP2[$100] = { fill( $100, 0) } -constant byte* COLS = (byte*)$d800 -constant byte* MAPDATA[$3e8] = { fill( $3e8, 0) } -constant byte* SCREEN = (byte*)$400 +__constant char COLORMAP1[$100] = { fill( $100, 0) } +__constant char COLORMAP2[$100] = { fill( $100, 0) } +__constant char *COLS = (char *)$d800 +__constant char MAPDATA[$3e8] = { fill( $3e8, 0) } +__constant char *SCREEN = (char *)$400 void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$10 -number~ main::$11 -number~ main::$12 -number~ main::$13 -number~ main::$14 -number~ main::$15 -bool~ main::$16 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -number~ main::$7 -number~ main::$8 -number~ main::$9 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 +number main::$0 +number main::$1 +number main::$10 +number main::$11 +number main::$12 +number main::$13 +number main::$14 +number main::$15 +bool main::$16 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +number main::$6 +number main::$7 +number main::$8 +number main::$9 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 Adding number conversion cast (unumber) $c8 in main::$0 = $c8 + main::x#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)$c8 + main::x#2 @@ -119,8 +119,8 @@ Adding number conversion cast (unumber) main::$14 in main::$14 = (unumber)$320 + Adding number conversion cast (unumber) $320 in main::$15 = $320 + main::x#2 Adding number conversion cast (unumber) main::$15 in main::$15 = (unumber)$320 + main::x#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast $c8 Simplifying constant integer cast $c8 Simplifying constant integer cast $c8 @@ -138,39 +138,39 @@ Simplifying constant integer cast $320 Simplifying constant integer cast $320 Simplifying constant integer cast $320 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c8 -Finalized unsigned number type (byte) $c8 -Finalized unsigned number type (byte) $c8 -Finalized unsigned number type (byte) $c8 -Finalized unsigned number type (word) $190 -Finalized unsigned number type (word) $190 -Finalized unsigned number type (word) $190 -Finalized unsigned number type (word) $190 -Finalized unsigned number type (word) $258 -Finalized unsigned number type (word) $258 -Finalized unsigned number type (word) $258 -Finalized unsigned number type (word) $258 -Finalized unsigned number type (word) $320 -Finalized unsigned number type (word) $320 -Finalized unsigned number type (word) $320 -Finalized unsigned number type (word) $320 +Finalized unsigned number type (char) $c8 +Finalized unsigned number type (char) $c8 +Finalized unsigned number type (char) $c8 +Finalized unsigned number type (char) $c8 +Finalized unsigned number type (unsigned int) $190 +Finalized unsigned number type (unsigned int) $190 +Finalized unsigned number type (unsigned int) $190 +Finalized unsigned number type (unsigned int) $190 +Finalized unsigned number type (unsigned int) $258 +Finalized unsigned number type (unsigned int) $258 +Finalized unsigned number type (unsigned int) $258 +Finalized unsigned number type (unsigned int) $258 +Finalized unsigned number type (unsigned int) $320 +Finalized unsigned number type (unsigned int) $320 +Finalized unsigned number type (unsigned int) $320 +Finalized unsigned number type (unsigned int) $320 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = $c8 + main::x#2 -Inferred type updated to byte in main::$1 = $c8 + main::x#2 -Inferred type updated to byte in main::$2 = $c8 + main::x#2 -Inferred type updated to byte in main::$3 = $c8 + main::x#2 -Inferred type updated to word in main::$4 = $190 + main::x#2 -Inferred type updated to word in main::$5 = $190 + main::x#2 -Inferred type updated to word in main::$6 = $190 + main::x#2 -Inferred type updated to word in main::$7 = $190 + main::x#2 -Inferred type updated to word in main::$8 = $258 + main::x#2 -Inferred type updated to word in main::$9 = $258 + main::x#2 -Inferred type updated to word in main::$10 = $258 + main::x#2 -Inferred type updated to word in main::$11 = $258 + main::x#2 -Inferred type updated to word in main::$12 = $320 + main::x#2 -Inferred type updated to word in main::$13 = $320 + main::x#2 -Inferred type updated to word in main::$14 = $320 + main::x#2 -Inferred type updated to word in main::$15 = $320 + main::x#2 +Inferred type updated to char in main::$0 = $c8 + main::x#2 +Inferred type updated to char in main::$1 = $c8 + main::x#2 +Inferred type updated to char in main::$2 = $c8 + main::x#2 +Inferred type updated to char in main::$3 = $c8 + main::x#2 +Inferred type updated to unsigned int in main::$4 = $190 + main::x#2 +Inferred type updated to unsigned int in main::$5 = $190 + main::x#2 +Inferred type updated to unsigned int in main::$6 = $190 + main::x#2 +Inferred type updated to unsigned int in main::$7 = $190 + main::x#2 +Inferred type updated to unsigned int in main::$8 = $258 + main::x#2 +Inferred type updated to unsigned int in main::$9 = $258 + main::x#2 +Inferred type updated to unsigned int in main::$10 = $258 + main::x#2 +Inferred type updated to unsigned int in main::$11 = $258 + main::x#2 +Inferred type updated to unsigned int in main::$12 = $320 + main::x#2 +Inferred type updated to unsigned int in main::$13 = $320 + main::x#2 +Inferred type updated to unsigned int in main::$14 = $320 + main::x#2 +Inferred type updated to unsigned int in main::$15 = $320 + main::x#2 Simple Condition main::$16 [30] if(main::x#1!=rangelast(0,$c8)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::x#0 = 0 @@ -201,7 +201,7 @@ Adding number conversion cast (unumber) $c9 in [40] if(main::x#1!=$c9) goto main Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c9 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c9 +Finalized unsigned number type (char) $c9 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::x#0 Constant inlined main::x#0 = 0 @@ -251,12 +251,12 @@ Eliminating unused variable main::$26 and assignment [18] main::$26 = SCREEN+$32 Eliminating unused variable main::$27 and assignment [20] main::$27 = MAPDATA+$320 + main::x#2 Eliminating unused variable main::$28 and assignment [21] main::$28 = COLS+$320 + main::x#2 Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -296,9 +296,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::x -byte main::x#1 16.5 -byte main::x#2 22.0 +char main::x +char main::x#1 // 16.5 +char main::x#2 // 22.0 Initial phi equivalence classes [ main::x#2 main::x#1 ] @@ -431,15 +431,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* COLORMAP1[$100] = { fill( $100, 0) } -constant byte* COLORMAP2[$100] = { fill( $100, 0) } -constant byte* COLS = (byte*) 55296 -constant byte* MAPDATA[$3e8] = { fill( $3e8, 0) } -constant byte* SCREEN = (byte*) 1024 +__constant char COLORMAP1[$100] = { fill( $100, 0) } +__constant char COLORMAP2[$100] = { fill( $100, 0) } +__constant char *COLS = (char *) 55296 +__constant char MAPDATA[$3e8] = { fill( $3e8, 0) } +__constant char *SCREEN = (char *) 1024 void main() -byte main::x -byte main::x#1 reg byte x 16.5 -byte main::x#2 reg byte x 22.0 +char main::x +char main::x#1 // reg byte x 16.5 +char main::x#2 // reg byte x 22.0 reg byte x [ main::x#2 main::x#1 ] diff --git a/src/test/ref/double-indexing-arrays.sym b/src/test/ref/double-indexing-arrays.sym index c4505729f..3bdf26a45 100644 --- a/src/test/ref/double-indexing-arrays.sym +++ b/src/test/ref/double-indexing-arrays.sym @@ -1,11 +1,11 @@ -constant byte* COLORMAP1[$100] = { fill( $100, 0) } -constant byte* COLORMAP2[$100] = { fill( $100, 0) } -constant byte* COLS = (byte*) 55296 -constant byte* MAPDATA[$3e8] = { fill( $3e8, 0) } -constant byte* SCREEN = (byte*) 1024 +__constant char COLORMAP1[$100] = { fill( $100, 0) } +__constant char COLORMAP2[$100] = { fill( $100, 0) } +__constant char *COLS = (char *) 55296 +__constant char MAPDATA[$3e8] = { fill( $3e8, 0) } +__constant char *SCREEN = (char *) 1024 void main() -byte main::x -byte main::x#1 reg byte x 16.5 -byte main::x#2 reg byte x 22.0 +char main::x +char main::x#1 // reg byte x 16.5 +char main::x#2 // reg byte x 22.0 reg byte x [ main::x#2 main::x#1 ] diff --git a/src/test/ref/duplicate-loop-problem.log b/src/test/ref/duplicate-loop-problem.log index a6bfcbbf9..ba03587c2 100644 --- a/src/test/ref/duplicate-loop-problem.log +++ b/src/test/ref/duplicate-loop-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -31,7 +31,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 key#9 = phi( __start::__init1/key#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 key#6 = phi( __start::@1/key#1 ) @@ -44,40 +44,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const DC00 = (byte*)$dc00 +__constant char * const DC00 = (char *)$dc00 void __start() -byte key -byte key#0 -byte key#1 -byte key#2 -byte key#3 -byte key#4 -byte key#5 -byte key#6 -byte key#7 -byte key#8 -byte key#9 +char key +char key#0 +char key#1 +char key#2 +char key#3 +char key#4 +char key#5 +char key#6 +char key#7 +char key#8 +char key#9 void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -bool~ main::$3 +bool main::$0 +number main::$1 +bool main::$2 +bool main::$3 Adding number conversion cast (unumber) 0 in main::$0 = key#0 == 0 Adding number conversion cast (unumber) $1f in main::$1 = key#0 & $1f Adding number conversion cast (unumber) main::$1 in main::$1 = key#0 & (unumber)$1f Adding number conversion cast (unumber) $1f in main::$2 = main::$1 == $1f Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 56320 +Simplifying constant pointer cast (char *) 56320 Simplifying constant integer cast 0 Simplifying constant integer cast $1f Simplifying constant integer cast $1f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $1f -Finalized unsigned number type (byte) $1f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $1f +Finalized unsigned number type (char) $1f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = key#0 & $1f +Inferred type updated to char in main::$1 = key#0 & $1f Alias key#0 = key#8 key#5 key#1 Alias key#2 = key#9 Alias key#3 = key#6 key#7 key#4 @@ -135,10 +135,10 @@ main::@2: scope:[main] from main::@1 main::@3 VARIABLE REGISTER WEIGHTS -byte key -byte key#0 151.5 +char key +char key#0 // 151.5 void main() -byte~ main::$1 101.0 +char main::$1 // 101.0 Initial phi equivalence classes Added variable key#0 to live range equivalence class [ key#0 ] @@ -221,11 +221,11 @@ Removing instruction __b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const DC00 = (byte*) 56320 -byte key -byte key#0 reg byte x 151.5 +__constant char * const DC00 = (char *) 56320 +char key +char key#0 // reg byte x 151.5 void main() -byte~ main::$1 reg byte a 101.0 +char main::$1 // reg byte a 101.0 reg byte x [ key#0 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/duplicate-loop-problem.sym b/src/test/ref/duplicate-loop-problem.sym index 34c805cc9..f66ce5e74 100644 --- a/src/test/ref/duplicate-loop-problem.sym +++ b/src/test/ref/duplicate-loop-problem.sym @@ -1,8 +1,8 @@ -constant byte* const DC00 = (byte*) 56320 -byte key -byte key#0 reg byte x 151.5 +__constant char * const DC00 = (char *) 56320 +char key +char key#0 // reg byte x 151.5 void main() -byte~ main::$1 reg byte a 101.0 +char main::$1 // reg byte a 101.0 reg byte x [ key#0 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/dword.cfg b/src/test/ref/dword.cfg index 3eb4c719a..b9774acd0 100644 --- a/src/test/ref/dword.cfg +++ b/src/test/ref/dword.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::b#0 = main::a + main::i#2 - [3] main::c#0 = (byte)main::b#0 + [3] main::c#0 = (char)main::b#0 [4] main::SCREEN[main::i#2] = main::c#0 [5] main::i#1 = ++ main::i#2 [6] if(main::i#1!=$65) goto main::@1 diff --git a/src/test/ref/dword.log b/src/test/ref/dword.log index 35585affe..1de4210a3 100644 --- a/src/test/ref/dword.log +++ b/src/test/ref/dword.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::b#0 = main::a + main::i#2 - main::c#0 = (byte)main::b#0 + main::c#0 = (char)main::b#0 main::SCREEN[main::i#2] = main::c#0 main::i#1 = main::i#2 + rangenext(0,$64) main::$1 = main::i#1 != rangelast(0,$64) @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,19 +32,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -constant dword main::a = $ee6b2800 -dword main::b -dword main::b#0 -byte main::c -byte main::c#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +__constant unsigned long main::a = $ee6b2800 +unsigned long main::b +unsigned long main::b#0 +char main::c +char main::c#0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$1 [7] if(main::i#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -61,7 +61,7 @@ Adding number conversion cast (unumber) $65 in [5] if(main::i#1!=$65) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -85,7 +85,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::b#0 = main::a + main::i#2 - [3] main::c#0 = (byte)main::b#0 + [3] main::c#0 = (char)main::b#0 [4] main::SCREEN[main::i#2] = main::c#0 [5] main::i#1 = ++ main::i#2 [6] if(main::i#1!=$65) goto main::@1 @@ -97,13 +97,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -dword main::b -dword main::b#0 11.0 -byte main::c -byte main::c#0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +unsigned long main::b +unsigned long main::b#0 // 11.0 +char main::c +char main::c#0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -119,9 +119,9 @@ Allocated zp[1]:7 [ main::c#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::b#0 = main::a + main::i#2 [ main::i#2 main::b#0 ] ( [ main::i#2 main::b#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [3] main::c#0 = (byte)main::b#0 [ main::i#2 main::c#0 ] ( [ main::i#2 main::c#0 ] { } ) always clobbers reg byte a +Statement [3] main::c#0 = (char)main::b#0 [ main::i#2 main::c#0 ] ( [ main::i#2 main::c#0 ] { } ) always clobbers reg byte a Statement [2] main::b#0 = main::a + main::i#2 [ main::i#2 main::b#0 ] ( [ main::i#2 main::b#0 ] { } ) always clobbers reg byte a -Statement [3] main::c#0 = (byte)main::b#0 [ main::i#2 main::c#0 ] ( [ main::i#2 main::c#0 ] { } ) always clobbers reg byte a +Statement [3] main::c#0 = (char)main::b#0 [ main::i#2 main::c#0 ] ( [ main::i#2 main::c#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[4]:3 [ main::b#0 ] : zp[4]:3 , Potential registers zp[1]:7 [ main::c#0 ] : zp[1]:7 , reg byte a , reg byte x , reg byte y , @@ -177,7 +177,7 @@ main: { lda #>a>>$10 adc #0 sta.z b+3 - // [3] main::c#0 = (byte)main::b#0 -- vbuaa=_byte_vduz1 + // [3] main::c#0 = (char)main::b#0 -- vbuaa=_byte_vduz1 lda.z b // [4] main::SCREEN[main::i#2] = main::c#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x @@ -209,15 +209,15 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant dword main::a = $ee6b2800 -dword main::b -dword main::b#0 b zp[4]:2 11.0 -byte main::c -byte main::c#0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant unsigned long main::a = $ee6b2800 +unsigned long main::b +unsigned long main::b#0 // b zp[4]:2 11.0 +char main::c +char main::c#0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] zp[4]:2 [ main::b#0 ] @@ -267,7 +267,7 @@ main: { adc #0 sta.z b+3 // byte c = (byte) b - // [3] main::c#0 = (byte)main::b#0 -- vbuaa=_byte_vduz1 + // [3] main::c#0 = (char)main::b#0 -- vbuaa=_byte_vduz1 lda.z b // SCREEN[i] = c // [4] main::SCREEN[main::i#2] = main::c#0 -- pbuc1_derefidx_vbuxx=vbuaa diff --git a/src/test/ref/dword.sym b/src/test/ref/dword.sym index 2375fbbf9..edff9d739 100644 --- a/src/test/ref/dword.sym +++ b/src/test/ref/dword.sym @@ -1,13 +1,13 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant dword main::a = $ee6b2800 -dword main::b -dword main::b#0 b zp[4]:2 11.0 -byte main::c -byte main::c#0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant unsigned long main::a = $ee6b2800 +unsigned long main::b +unsigned long main::b#0 // b zp[4]:2 11.0 +char main::c +char main::c#0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] zp[4]:2 [ main::b#0 ] diff --git a/src/test/ref/empty-function-0.log b/src/test/ref/empty-function-0.log index 956e98f78..ffca2b5bf 100644 --- a/src/test/ref/empty-function-0.log +++ b/src/test/ref/empty-function-0.log @@ -1,11 +1,11 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 v#12 = phi( __start::@1/v#13 ) - call set + call set to:main::@1 main::@1: scope:[main] from main v#7 = phi( main/v#3 ) @@ -36,7 +36,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 v#13 = phi( __start::__init1/v#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 v#10 = phi( __start::@1/v#1 ) @@ -49,37 +49,37 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() void set() -byte v -byte v#0 -byte v#1 -byte v#10 -byte v#11 -byte v#12 -byte v#13 -byte v#2 -byte v#3 -byte v#4 -byte v#5 -byte v#6 -byte v#7 -byte v#8 -byte v#9 +char v +char v#0 +char v#1 +char v#10 +char v#11 +char v#12 +char v#13 +char v#2 +char v#3 +char v#4 +char v#5 +char v#6 +char v#7 +char v#8 +char v#9 Adding number conversion cast (unumber) 0 in SCREEN[0] = v#0 Adding number conversion cast (unumber) 7 in v#2 = 7 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast v#2 = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias v#0 = v#7 v#8 v#1 Alias v#2 = v#9 v#3 @@ -97,7 +97,7 @@ Simplifying expression containing zero SCREEN in [3] SCREEN[0] = v#2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant v#13 Successful SSA optimization PassNEliminateUnusedVars -Removing call to empty/unused procedure [0] call set +Removing call to empty/unused procedure [0] call set Removing unused procedure set Removing unused procedure block set Removing unused procedure block set::@return @@ -132,7 +132,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte v +char v Initial phi equivalence classes Complete equivalence classes @@ -187,10 +187,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte v -constant byte v#2 v = 7 +char v +__constant char v#2 = 7 // v diff --git a/src/test/ref/empty-function-0.sym b/src/test/ref/empty-function-0.sym index f4265587a..9d7cb508f 100644 --- a/src/test/ref/empty-function-0.sym +++ b/src/test/ref/empty-function-0.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte v -constant byte v#2 v = 7 +char v +__constant char v#2 = 7 // v diff --git a/src/test/ref/empty-function-1.log b/src/test/ref/empty-function-1.log index 020819d4b..bb402ade8 100644 --- a/src/test/ref/empty-function-1.log +++ b/src/test/ref/empty-function-1.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call empty + call empty to:main::@1 main::@1: scope:[main] from main SCREEN[0] = 'x' @@ -21,7 +21,7 @@ empty::@return: scope:[empty] from empty void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,21 +30,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void empty() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'x' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [1] SCREEN[0] = 'x' Successful SSA optimization PassNSimplifyExpressionWithZero -Removing call to empty/unused procedure [0] call empty +Removing call to empty/unused procedure [0] call empty Removing unused procedure empty Removing unused procedure block empty Removing unused procedure block empty::@return @@ -130,7 +130,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/empty-function-1.sym b/src/test/ref/empty-function-1.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/empty-function-1.sym +++ b/src/test/ref/empty-function-1.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/emptyblock-error.log b/src/test/ref/emptyblock-error.log index b6a9ac8bf..94603b9c6 100644 --- a/src/test/ref/emptyblock-error.log +++ b/src/test/ref/emptyblock-error.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main::@1: scope:[main] from main main::@3 if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - call menu + call menu to:main::@3 main::@3: scope:[main] from main::@2 to:main::@1 @@ -24,7 +24,7 @@ menu::@1: scope:[menu] from menu if(true) goto menu::@2 to:menu::@return menu::@2: scope:[menu] from menu::@1 - call mode + call mode to:menu::@3 menu::@3: scope:[menu] from menu::@2 to:menu::@return @@ -55,7 +55,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -64,20 +64,20 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* B = (byte*)$1000 +__constant char *B = (char *)$1000 void __start() void main() void menu() void mode() -bool~ mode::$0 -bool~ mode::$1 +bool mode::$0 +bool mode::$1 Adding number conversion cast (unumber) 0 in mode::$0 = *B == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 4096 +Simplifying constant pointer cast (char *) 4096 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [8] mode::$1 = *B != 0 from [7] mode::$0 = *B == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -138,7 +138,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] phi() - [2] call menu + [2] call menu to:main::@1 void menu() @@ -147,7 +147,7 @@ menu: scope:[menu] from main::@1 to:menu::@1 menu::@1: scope:[menu] from menu [4] phi() - [5] call mode + [5] call mode to:menu::@return menu::@return: scope:[menu] from menu::@1 [6] return @@ -209,7 +209,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call menu + // [2] call menu // [3] phi from main::@1 to menu [phi:main::@1->menu] menu_from___b1: jsr menu @@ -222,7 +222,7 @@ menu: { jmp __b1 // menu::@1 __b1: - // [5] call mode + // [5] call mode // [7] phi from menu::@1 to mode [phi:menu::@1->mode] mode_from___b1: jsr mode @@ -270,7 +270,7 @@ Removing instruction __b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* B = (byte*) 4096 +__constant char *B = (char *) 4096 void main() void menu() void mode() @@ -300,7 +300,7 @@ main: { // main::@1 __b1: // menu() - // [2] call menu + // [2] call menu // [3] phi from main::@1 to menu [phi:main::@1->menu] jsr menu jmp __b1 @@ -310,7 +310,7 @@ menu: { // [4] phi from menu to menu::@1 [phi:menu->menu::@1] // menu::@1 // mode() - // [5] call mode + // [5] call mode // [7] phi from menu::@1 to mode [phi:menu::@1->mode] jsr mode // menu::@return diff --git a/src/test/ref/emptyblock-error.sym b/src/test/ref/emptyblock-error.sym index f2ef10a14..041b6afc3 100644 --- a/src/test/ref/emptyblock-error.sym +++ b/src/test/ref/emptyblock-error.sym @@ -1,4 +1,4 @@ -constant byte* B = (byte*) 4096 +__constant char *B = (char *) 4096 void main() void menu() void mode() diff --git a/src/test/ref/encoding-atascii.log b/src/test/ref/encoding-atascii.log index b563c7136..1d174cd18 100644 --- a/src/test/ref/encoding-atascii.log +++ b/src/test/ref/encoding-atascii.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -18,7 +18,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -27,8 +27,8 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* TEXT[] = "hello, world! +__constant char *SCREEN = (char *)$400 +__constant char TEXT[] = "hello, world! "at void __start() void main() @@ -38,14 +38,14 @@ Adding number conversion cast (unumber) 0 in SCREEN[0] = TEXT[(unumber)$d] Adding number conversion cast (unumber) 1 in SCREEN[1] = ' 'at Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $d Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = TEXT[$d] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -136,8 +136,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT[] = "hello, world! +__constant char *SCREEN = (char *) 1024 +__constant char TEXT[] = "hello, world! "at void main() diff --git a/src/test/ref/encoding-atascii.sym b/src/test/ref/encoding-atascii.sym index a70b3bb06..2ba3a26a2 100644 --- a/src/test/ref/encoding-atascii.sym +++ b/src/test/ref/encoding-atascii.sym @@ -1,5 +1,5 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT[] = "hello, world! +__constant char *SCREEN = (char *) 1024 +__constant char TEXT[] = "hello, world! "at void main() diff --git a/src/test/ref/encoding-literal-char.log b/src/test/ref/encoding-literal-char.log index 006190f76..4c788fad2 100644 --- a/src/test/ref/encoding-literal-char.log +++ b/src/test/ref/encoding-literal-char.log @@ -28,7 +28,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -38,27 +38,27 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant const byte ccpu = 'A'pu -constant const byte cpm = 'A'pm -constant const byte csm = 'A' -constant const byte csu = 'A'su +__constant const char ccpu = 'A'pu +__constant const char cpm = 'A'pm +__constant const char csm = 'A' +__constant const char csu = 'A'su void main() -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 -constant byte* const screen = (byte*)$400 -constant const byte* spm[] = "A"pm -constant const byte* spu[] = "A"pu -constant const byte* ssm[] = "A" -constant const byte* ssu[] = "A"su +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 +__constant char * const screen = (char *)$400 +__constant const char spm[] = "A"pm +__constant const char spu[] = "A"pu +__constant const char ssm[] = "A" +__constant const char ssu[] = "A"su Adding number conversion cast (unumber) $28 in main::idx#5 = $28 Adding number conversion cast (unumber) 0 in screen[main::idx#5] = spm[0] @@ -68,18 +68,18 @@ Adding number conversion cast (unumber) 0 in screen[main::idx#8] = ssu[0] Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::idx#5 = (unumber)$28 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::idx#0 = 0 Constant main::idx#5 = $28 @@ -178,7 +178,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes @@ -276,17 +276,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte ccpu = 'A'pu -constant const byte cpm = 'A'pm -constant const byte csm = 'A' -constant const byte csu = 'A'su +__constant const char ccpu = 'A'pu +__constant const char cpm = 'A'pm +__constant const char csm = 'A' +__constant const char csu = 'A'su void main() -byte main::idx -constant byte* const screen = (byte*) 1024 -constant const byte* spm[] = "A"pm -constant const byte* spu[] = "A"pu -constant const byte* ssm[] = "A" -constant const byte* ssu[] = "A"su +char main::idx +__constant char * const screen = (char *) 1024 +__constant const char spm[] = "A"pm +__constant const char spu[] = "A"pu +__constant const char ssm[] = "A" +__constant const char ssu[] = "A"su diff --git a/src/test/ref/encoding-literal-char.sym b/src/test/ref/encoding-literal-char.sym index f36978f51..c4a44764a 100644 --- a/src/test/ref/encoding-literal-char.sym +++ b/src/test/ref/encoding-literal-char.sym @@ -1,12 +1,12 @@ -constant const byte ccpu = 'A'pu -constant const byte cpm = 'A'pm -constant const byte csm = 'A' -constant const byte csu = 'A'su +__constant const char ccpu = 'A'pu +__constant const char cpm = 'A'pm +__constant const char csm = 'A' +__constant const char csu = 'A'su void main() -byte main::idx -constant byte* const screen = (byte*) 1024 -constant const byte* spm[] = "A"pm -constant const byte* spu[] = "A"pu -constant const byte* ssm[] = "A" -constant const byte* ssu[] = "A"su +char main::idx +__constant char * const screen = (char *) 1024 +__constant const char spm[] = "A"pm +__constant const char spu[] = "A"pu +__constant const char ssm[] = "A" +__constant const char ssu[] = "A"su diff --git a/src/test/ref/enum-0.log b/src/test/ref/enum-0.log index c15ed282b..ef455ef74 100644 --- a/src/test/ref/enum-0.log +++ b/src/test/ref/enum-0.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,15 +20,15 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte ON = 1 -constant byte State::OFF = 0 -constant byte State::ON = 1 +__constant char ON = 1 +__constant char State::OFF = 0 +__constant char State::ON = 1 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::state = ON +__constant char * const main::SCREEN = (char *)$400 +__constant char main::state = ON -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -106,11 +106,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte ON = 1 -constant byte State::OFF = 0 -constant byte State::ON = 1 +__constant char ON = 1 +__constant char State::OFF = 0 +__constant char State::ON = 1 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-0.sym b/src/test/ref/enum-0.sym index 2da8401d3..afa831d49 100644 --- a/src/test/ref/enum-0.sym +++ b/src/test/ref/enum-0.sym @@ -1,6 +1,6 @@ -constant byte ON = 1 -constant byte State::OFF = 0 -constant byte State::ON = 1 +__constant char ON = 1 +__constant char State::OFF = 0 +__constant char State::ON = 1 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-1.log b/src/test/ref/enum-1.log index 3cc089e2c..1ea67aef0 100644 --- a/src/test/ref/enum-1.log +++ b/src/test/ref/enum-1.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,16 +20,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte BROKEN = 9 -constant byte State::BROKEN = 9 -constant byte State::OFF = 0 -constant byte State::ON = 8 +__constant char BROKEN = 9 +__constant char State::BROKEN = 9 +__constant char State::OFF = 0 +__constant char State::ON = 8 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::state = BROKEN +__constant char * const main::SCREEN = (char *)$400 +__constant char main::state = BROKEN -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -38,7 +38,7 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::state = BROKEN Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -109,12 +109,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte BROKEN = 9 -constant byte State::BROKEN = 9 -constant byte State::OFF = 0 -constant byte State::ON = 8 +__constant char BROKEN = 9 +__constant char State::BROKEN = 9 +__constant char State::OFF = 0 +__constant char State::ON = 8 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-1.sym b/src/test/ref/enum-1.sym index 12c66c06c..362b42df4 100644 --- a/src/test/ref/enum-1.sym +++ b/src/test/ref/enum-1.sym @@ -1,7 +1,7 @@ -constant byte BROKEN = 9 -constant byte State::BROKEN = 9 -constant byte State::OFF = 0 -constant byte State::ON = 8 +__constant char BROKEN = 9 +__constant char State::BROKEN = 9 +__constant char State::OFF = 0 +__constant char State::ON = 8 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-2.log b/src/test/ref/enum-2.log index 427dabcd8..4be7483e6 100644 --- a/src/test/ref/enum-2.log +++ b/src/test/ref/enum-2.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,16 +20,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte B = 'b' -constant byte Letter::A = 'a' -constant byte Letter::B = 'b' -constant byte Letter::C = 'b'+1 +__constant char B = 'b' +__constant char Letter::A = 'a' +__constant char Letter::B = 'b' +__constant char Letter::C = 'b'+1 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::letter = B +__constant char * const main::SCREEN = (char *)$400 +__constant char main::letter = B -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -107,12 +107,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte B = 'b' -constant byte Letter::A = 'a' -constant byte Letter::B = 'b' -constant byte Letter::C = 'b'+1 +__constant char B = 'b' +__constant char Letter::A = 'a' +__constant char Letter::B = 'b' +__constant char Letter::C = 'b'+1 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-2.sym b/src/test/ref/enum-2.sym index f6faf7885..c623a4c69 100644 --- a/src/test/ref/enum-2.sym +++ b/src/test/ref/enum-2.sym @@ -1,7 +1,7 @@ -constant byte B = 'b' -constant byte Letter::A = 'a' -constant byte Letter::B = 'b' -constant byte Letter::C = 'b'+1 +__constant char B = 'b' +__constant char Letter::A = 'a' +__constant char Letter::B = 'b' +__constant char Letter::C = 'b'+1 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-3.log b/src/test/ref/enum-3.log index 8f47d4122..09a1584ca 100644 --- a/src/test/ref/enum-3.log +++ b/src/test/ref/enum-3.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,18 +20,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte BROKEN = 4*4+2+1 -constant byte State::BROKEN = 4*4+2+1 -constant byte State::OFF = 0 -constant byte State::ON = 4*4+2 +__constant char BROKEN = 4*4+2+1 +__constant char State::BROKEN = 4*4+2+1 +__constant char State::OFF = 0 +__constant char State::ON = 4*4+2 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::state = BROKEN +__constant char * const main::SCREEN = (char *)$400 +__constant char main::state = BROKEN Adding number conversion cast (unumber) 4*4+2 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -40,9 +40,9 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::state = BROKEN Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 4*4+2 Successful SSA optimization PassNCastSimplification @@ -115,12 +115,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte BROKEN = 4*4+2+1 -constant byte State::BROKEN = 4*4+2+1 -constant byte State::OFF = 0 -constant byte State::ON = 4*4+2 +__constant char BROKEN = 4*4+2+1 +__constant char State::BROKEN = 4*4+2+1 +__constant char State::OFF = 0 +__constant char State::ON = 4*4+2 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-3.sym b/src/test/ref/enum-3.sym index ade2ac483..7d891e473 100644 --- a/src/test/ref/enum-3.sym +++ b/src/test/ref/enum-3.sym @@ -1,7 +1,7 @@ -constant byte BROKEN = 4*4+2+1 -constant byte State::BROKEN = 4*4+2+1 -constant byte State::OFF = 0 -constant byte State::ON = 4*4+2 +__constant char BROKEN = 4*4+2+1 +__constant char State::BROKEN = 4*4+2+1 +__constant char State::OFF = 0 +__constant char State::ON = 4*4+2 void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-4.log b/src/test/ref/enum-4.log index ea11e3d77..e1580eb9a 100644 --- a/src/test/ref/enum-4.log +++ b/src/test/ref/enum-4.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,11 +22,11 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::state = main::ON +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::state = main::ON -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -103,8 +103,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*) 1024 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-4.sym b/src/test/ref/enum-4.sym index 13d8a18ce..d86555a43 100644 --- a/src/test/ref/enum-4.sym +++ b/src/test/ref/enum-4.sym @@ -1,4 +1,4 @@ void main() -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*) 1024 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/enum-5.log b/src/test/ref/enum-5.log index 1df2ab3e2..de8d812af 100644 --- a/src/test/ref/enum-5.log +++ b/src/test/ref/enum-5.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *main::SCREEN = main::state - call test + call test to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -22,7 +22,7 @@ test::@return: scope:[test] from test void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,16 +33,16 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::state = main::ON +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::state = main::ON void test() -constant byte test::ON = 8 -constant byte* const test::SCREEN = (byte*)$428 -constant byte test::state = test::ON +__constant char test::ON = 8 +__constant char * const test::SCREEN = (char *)$428 +__constant char test::state = test::ON -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1064 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1064 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -65,7 +65,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *main::SCREEN = main::ON - [1] call test + [1] call test to:main::@return main::@return: scope:[main] from main [2] return @@ -120,7 +120,7 @@ main: { // [0] *main::SCREEN = main::ON -- _deref_pbuc1=vbuc2 lda #ON sta SCREEN - // [1] call test + // [1] call test jsr test jmp __breturn // main::@return @@ -153,11 +153,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*) 1024 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *) 1024 void test() -constant byte test::ON = 8 -constant byte* const test::SCREEN = (byte*) 1064 +__constant char test::ON = 8 +__constant char * const test::SCREEN = (char *) 1064 @@ -186,7 +186,7 @@ main: { lda #ON sta SCREEN // test() - // [1] call test + // [1] call test jsr test // main::@return // } diff --git a/src/test/ref/enum-5.sym b/src/test/ref/enum-5.sym index e08dace7c..27428ff73 100644 --- a/src/test/ref/enum-5.sym +++ b/src/test/ref/enum-5.sym @@ -1,7 +1,7 @@ void main() -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*) 1024 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *) 1024 void test() -constant byte test::ON = 8 -constant byte* const test::SCREEN = (byte*) 1064 +__constant char test::ON = 8 +__constant char * const test::SCREEN = (char *) 1064 diff --git a/src/test/ref/enum-6.log b/src/test/ref/enum-6.log index e683a6ec8..6697cf91d 100644 --- a/src/test/ref/enum-6.log +++ b/src/test/ref/enum-6.log @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,22 +25,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte main::OFF = 0 -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*)$400 -byte main::state -byte main::state#0 -byte main::state#1 +__constant char main::OFF = 0 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *)$400 +char main::state +char main::state#0 +char main::state#1 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::state#0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::state#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::state#0 = main::ON Constant main::state#1 = main::OFF @@ -76,7 +76,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::state +char main::state Initial phi equivalence classes Complete equivalence classes @@ -132,10 +132,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte main::OFF = 0 -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::state +__constant char main::OFF = 0 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *) 1024 +char main::state diff --git a/src/test/ref/enum-6.sym b/src/test/ref/enum-6.sym index bf49585d6..1a8b4f127 100644 --- a/src/test/ref/enum-6.sym +++ b/src/test/ref/enum-6.sym @@ -1,6 +1,6 @@ void main() -constant byte main::OFF = 0 -constant byte main::ON = 1 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::state +__constant char main::OFF = 0 +__constant char main::ON = 1 +__constant char * const main::SCREEN = (char *) 1024 +char main::state diff --git a/src/test/ref/enum-7.log b/src/test/ref/enum-7.log index b69de7cfb..89330afa3 100644 --- a/src/test/ref/enum-7.log +++ b/src/test/ref/enum-7.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,24 +21,24 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte Color::GREEN = 1 -constant byte Color::RED = 0 -constant byte RED = 0 +__constant char Color::GREEN = 1 +__constant char Color::RED = 0 +__constant char RED = 0 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::button_color = RED -constant byte main::button_size = $18 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::button_color = RED +__constant char main::button_size = $18 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::button_color Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::button_size Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = main::button_color Successful SSA optimization PassNSimplifyExpressionWithZero @@ -128,12 +128,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte Color::GREEN = 1 -constant byte Color::RED = 0 -constant byte RED = 0 +__constant char Color::GREEN = 1 +__constant char Color::RED = 0 +__constant char RED = 0 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::button_size = $18 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::button_size = $18 diff --git a/src/test/ref/enum-7.sym b/src/test/ref/enum-7.sym index 596da1ab9..a27fab976 100644 --- a/src/test/ref/enum-7.sym +++ b/src/test/ref/enum-7.sym @@ -1,7 +1,7 @@ -constant byte Color::GREEN = 1 -constant byte Color::RED = 0 -constant byte RED = 0 +__constant char Color::GREEN = 1 +__constant char Color::RED = 0 +__constant char RED = 0 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::button_size = $18 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::button_size = $18 diff --git a/src/test/ref/enum-8.log b/src/test/ref/enum-8.log index 26ef66a06..1fa7eef64 100644 --- a/src/test/ref/enum-8.log +++ b/src/test/ref/enum-8.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,22 +21,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte RED = 2 +__constant char RED = 2 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::button_color = RED -constant byte main::button_size = $18 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::button_color = RED +__constant char main::button_size = $18 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::button_color Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::button_size Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = main::button_color Successful SSA optimization PassNSimplifyExpressionWithZero @@ -51,7 +51,7 @@ Constant inlined Button::$0::GREEN = 5 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -130,10 +130,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RED = 2 +__constant char RED = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::button_size = $18 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::button_size = $18 diff --git a/src/test/ref/enum-8.sym b/src/test/ref/enum-8.sym index 126c83bb9..9292c9f37 100644 --- a/src/test/ref/enum-8.sym +++ b/src/test/ref/enum-8.sym @@ -1,5 +1,5 @@ -constant byte RED = 2 +__constant char RED = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::button_size = $18 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::button_size = $18 diff --git a/src/test/ref/euclid-3.asm b/src/test/ref/euclid-3.asm index fdf6f76df..f9fc31aa6 100644 --- a/src/test/ref/euclid-3.asm +++ b/src/test/ref/euclid-3.asm @@ -92,7 +92,7 @@ print_cls: { // } rts } -// print_euclid(byte zp(2) a, byte zp(3) b) +// void print_euclid(__zp(2) char a, __zp(3) char b) print_euclid: { .label b = 3 .label a = 2 @@ -122,6 +122,7 @@ print_euclid: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -155,7 +156,7 @@ memset: { jmp __b1 } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -178,7 +179,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -191,7 +192,7 @@ print_char: { // } rts } -// euclid(byte zp(2) a, byte register(X) b) +// __register(A) char euclid(__zp(2) char a, __register(X) char b) euclid: { .label a = 2 __b1: diff --git a/src/test/ref/euclid-3.cfg b/src/test/ref/euclid-3.cfg index 99ab2eb31..11c57aae9 100644 --- a/src/test/ref/euclid-3.cfg +++ b/src/test/ref/euclid-3.cfg @@ -2,31 +2,31 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_euclid + [3] call print_euclid to:main::@2 main::@2: scope:[main] from main::@1 [4] print_char_cursor#65 = print_line_cursor#0 - [5] call print_euclid + [5] call print_euclid to:main::@3 main::@3: scope:[main] from main::@2 [6] print_char_cursor#66 = print_line_cursor#0 - [7] call print_euclid + [7] call print_euclid to:main::@4 main::@4: scope:[main] from main::@3 [8] print_char_cursor#67 = print_line_cursor#0 - [9] call print_euclid + [9] call print_euclid to:main::@5 main::@5: scope:[main] from main::@4 [10] print_char_cursor#68 = print_line_cursor#0 - [11] call print_euclid + [11] call print_euclid to:main::@6 main::@6: scope:[main] from main::@5 [12] print_char_cursor#69 = print_line_cursor#0 - [13] call print_euclid + [13] call print_euclid to:main::@return main::@return: scope:[main] from main::@6 [14] return @@ -35,57 +35,57 @@ main::@return: scope:[main] from main::@6 void print_cls() print_cls: scope:[print_cls] from main [15] phi() - [16] call memset + [16] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [17] return to:@return -void print_euclid(byte print_euclid::a , byte print_euclid::b) +void print_euclid(char a , char b) print_euclid: scope:[print_euclid] from main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 [18] print_line_cursor#35 = phi( main::@1/print_screen#0, main::@2/print_line_cursor#0, main::@3/print_line_cursor#0, main::@4/print_line_cursor#0, main::@5/print_line_cursor#0, main::@6/print_line_cursor#0 ) [18] print_euclid::b#10 = phi( main::@1/2, main::@2/$45, main::@3/$37, main::@4/3, main::@5/$1a, main::@6/$bb ) [18] print_char_cursor#55 = phi( main::@1/print_screen#0, main::@2/print_char_cursor#65, main::@3/print_char_cursor#66, main::@4/print_char_cursor#67, main::@5/print_char_cursor#68, main::@6/print_char_cursor#69 ) [18] print_euclid::a#10 = phi( main::@1/$80, main::@2/$a9, main::@3/$9b, main::@4/$c7, main::@5/$5b, main::@6/$77 ) [19] print_uchar::b#0 = print_euclid::a#10 - [20] call print_uchar + [20] call print_uchar to:print_euclid::@1 print_euclid::@1: scope:[print_euclid] from print_euclid [21] phi() - [22] call print_char + [22] call print_char to:print_euclid::@2 print_euclid::@2: scope:[print_euclid] from print_euclid::@1 [23] print_uchar::b#1 = print_euclid::b#10 - [24] call print_uchar + [24] call print_uchar to:print_euclid::@3 print_euclid::@3: scope:[print_euclid] from print_euclid::@2 [25] phi() - [26] call print_char + [26] call print_char to:print_euclid::@4 print_euclid::@4: scope:[print_euclid] from print_euclid::@3 [27] euclid::a#0 = print_euclid::a#10 [28] euclid::b#0 = print_euclid::b#10 - [29] call euclid + [29] call euclid [30] euclid::return#0 = euclid::a#2 to:print_euclid::@5 print_euclid::@5: scope:[print_euclid] from print_euclid::@4 [31] print_uchar::b#2 = euclid::return#0 - [32] call print_uchar + [32] call print_uchar to:print_euclid::@6 print_euclid::@6: scope:[print_euclid] from print_euclid::@5 [33] phi() - [34] call print_ln + [34] call print_ln to:print_euclid::@return print_euclid::@return: scope:[print_euclid] from print_euclid::@6 [35] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [36] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [37] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [37] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [38] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -96,24 +96,24 @@ memset::@2: scope:[memset] from memset::@1 [41] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_euclid print_euclid::@2 print_euclid::@5 [42] print_char_cursor#53 = phi( print_euclid/print_char_cursor#55, print_euclid::@2/print_char_cursor#33, print_euclid::@5/print_char_cursor#33 ) [42] print_uchar::b#3 = phi( print_euclid/print_uchar::b#0, print_euclid::@2/print_uchar::b#1, print_euclid::@5/print_uchar::b#2 ) [43] print_uchar::$0 = print_uchar::b#3 >> 4 [44] print_char::ch#0 = print_hextab[print_uchar::$0] - [45] call print_char + [45] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [46] print_uchar::$2 = print_uchar::b#3 & $f [47] print_char::ch#1 = print_hextab[print_uchar::$2] - [48] call print_char + [48] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [49] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_euclid::@1 print_euclid::@3 print_uchar print_uchar::@1 [50] print_char_cursor#32 = phi( print_euclid::@1/print_char_cursor#33, print_euclid::@3/print_char_cursor#33, print_uchar/print_char_cursor#53, print_uchar::@1/print_char_cursor#33 ) [50] print_char::ch#4 = phi( print_euclid::@1/' ', print_euclid::@3/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -124,7 +124,7 @@ print_char::@return: scope:[print_char] from print_char [53] return to:@return -byte euclid(byte euclid::a , byte euclid::b) +char euclid(char a , char b) euclid: scope:[euclid] from print_euclid::@4 [54] phi() to:euclid::@1 diff --git a/src/test/ref/euclid-3.log b/src/test/ref/euclid-3.log index 67a3ac6b3..3a6300f74 100644 --- a/src/test/ref/euclid-3.log +++ b/src/test/ref/euclid-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA @@ -28,13 +28,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_euclid print_euclid::@2 print_euclid::@5 print_char_cursor#53 = phi( print_euclid/print_char_cursor#55, print_euclid::@2/print_char_cursor#18, print_euclid::@5/print_char_cursor#56 ) print_uchar::b#3 = phi( print_euclid/print_uchar::b#0, print_euclid::@2/print_uchar::b#1, print_euclid::@5/print_uchar::b#2 ) print_uchar::$0 = print_uchar::b#3 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#4 = phi( print_uchar/print_uchar::b#3 ) @@ -42,7 +42,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#2 = print_char_cursor#29 print_uchar::$2 = print_uchar::b#4 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#30 = phi( print_uchar::@1/print_char_cursor#6 ) @@ -54,7 +54,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_euclid::@1 print_euclid::@3 print_uchar print_uchar::@1 print_char_cursor#32 = phi( print_euclid::@1/print_char_cursor#17, print_euclid::@3/print_char_cursor#19, print_uchar/print_char_cursor#53, print_uchar::@1/print_char_cursor#2 ) print_char::ch#4 = phi( print_euclid::@1/print_char::ch#2, print_euclid::@3/print_char::ch#3, print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -70,10 +70,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -89,7 +89,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -106,9 +106,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -137,7 +137,7 @@ main: scope:[main] from __start::@1 print_char_cursor#54 = phi( __start::@1/print_char_cursor#57 ) print_line_cursor#34 = phi( __start::@1/print_line_cursor#36 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@1 main::@1: scope:[main] from main print_char_cursor#35 = phi( main/print_char_cursor#8 ) @@ -146,7 +146,7 @@ main::@1: scope:[main] from main print_char_cursor#9 = print_char_cursor#35 print_euclid::a#0 = $80 print_euclid::b#0 = 2 - call print_euclid + call print_euclid to:main::@2 main::@2: scope:[main] from main::@1 print_line_cursor#22 = phi( main::@1/print_line_cursor#13 ) @@ -155,7 +155,7 @@ main::@2: scope:[main] from main::@1 print_line_cursor#5 = print_line_cursor#22 print_euclid::a#1 = $a9 print_euclid::b#1 = $45 - call print_euclid + call print_euclid to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#23 = phi( main::@2/print_line_cursor#13 ) @@ -164,7 +164,7 @@ main::@3: scope:[main] from main::@2 print_line_cursor#6 = print_line_cursor#23 print_euclid::a#2 = $9b print_euclid::b#2 = $37 - call print_euclid + call print_euclid to:main::@4 main::@4: scope:[main] from main::@3 print_line_cursor#24 = phi( main::@3/print_line_cursor#13 ) @@ -173,7 +173,7 @@ main::@4: scope:[main] from main::@3 print_line_cursor#7 = print_line_cursor#24 print_euclid::a#3 = $c7 print_euclid::b#3 = 3 - call print_euclid + call print_euclid to:main::@5 main::@5: scope:[main] from main::@4 print_line_cursor#25 = phi( main::@4/print_line_cursor#13 ) @@ -182,7 +182,7 @@ main::@5: scope:[main] from main::@4 print_line_cursor#8 = print_line_cursor#25 print_euclid::a#4 = $5b print_euclid::b#4 = $1a - call print_euclid + call print_euclid to:main::@6 main::@6: scope:[main] from main::@5 print_line_cursor#26 = phi( main::@5/print_line_cursor#13 ) @@ -191,7 +191,7 @@ main::@6: scope:[main] from main::@5 print_line_cursor#9 = print_line_cursor#26 print_euclid::a#5 = $77 print_euclid::b#5 = $bb - call print_euclid + call print_euclid to:main::@7 main::@7: scope:[main] from main::@6 print_line_cursor#27 = phi( main::@6/print_line_cursor#13 ) @@ -207,14 +207,14 @@ main::@return: scope:[main] from main::@7 return to:@return -void print_euclid(byte print_euclid::a , byte print_euclid::b) +void print_euclid(char a , char b) print_euclid: scope:[print_euclid] from main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 print_line_cursor#42 = phi( main::@1/print_line_cursor#4, main::@2/print_line_cursor#5, main::@3/print_line_cursor#6, main::@4/print_line_cursor#7, main::@5/print_line_cursor#8, main::@6/print_line_cursor#9 ) print_euclid::b#10 = phi( main::@1/print_euclid::b#0, main::@2/print_euclid::b#1, main::@3/print_euclid::b#2, main::@4/print_euclid::b#3, main::@5/print_euclid::b#4, main::@6/print_euclid::b#5 ) print_char_cursor#55 = phi( main::@1/print_char_cursor#9, main::@2/print_char_cursor#10, main::@3/print_char_cursor#11, main::@4/print_char_cursor#12, main::@5/print_char_cursor#13, main::@6/print_char_cursor#14 ) print_euclid::a#6 = phi( main::@1/print_euclid::a#0, main::@2/print_euclid::a#1, main::@3/print_euclid::a#2, main::@4/print_euclid::a#3, main::@5/print_euclid::a#4, main::@6/print_euclid::a#5 ) print_uchar::b#0 = print_euclid::a#6 - call print_uchar + call print_uchar to:print_euclid::@1 print_euclid::@1: scope:[print_euclid] from print_euclid print_line_cursor#41 = phi( print_euclid/print_line_cursor#42 ) @@ -223,7 +223,7 @@ print_euclid::@1: scope:[print_euclid] from print_euclid print_char_cursor#43 = phi( print_euclid/print_char_cursor#4 ) print_char_cursor#17 = print_char_cursor#43 print_char::ch#2 = ' ' - call print_char + call print_char to:print_euclid::@2 print_euclid::@2: scope:[print_euclid] from print_euclid::@1 print_line_cursor#40 = phi( print_euclid::@1/print_line_cursor#41 ) @@ -232,7 +232,7 @@ print_euclid::@2: scope:[print_euclid] from print_euclid::@1 print_char_cursor#44 = phi( print_euclid::@1/print_char_cursor#6 ) print_char_cursor#18 = print_char_cursor#44 print_uchar::b#1 = print_euclid::b#6 - call print_uchar + call print_uchar to:print_euclid::@3 print_euclid::@3: scope:[print_euclid] from print_euclid::@2 print_line_cursor#39 = phi( print_euclid::@2/print_line_cursor#40 ) @@ -241,7 +241,7 @@ print_euclid::@3: scope:[print_euclid] from print_euclid::@2 print_char_cursor#45 = phi( print_euclid::@2/print_char_cursor#4 ) print_char_cursor#19 = print_char_cursor#45 print_char::ch#3 = ' ' - call print_char + call print_char to:print_euclid::@4 print_euclid::@4: scope:[print_euclid] from print_euclid::@3 print_line_cursor#38 = phi( print_euclid::@3/print_line_cursor#39 ) @@ -251,7 +251,7 @@ print_euclid::@4: scope:[print_euclid] from print_euclid::@3 print_char_cursor#20 = print_char_cursor#46 euclid::a#0 = print_euclid::a#7 euclid::b#0 = print_euclid::b#7 - call euclid + call euclid euclid::return#0 = euclid::return#2 to:print_euclid::@5 print_euclid::@5: scope:[print_euclid] from print_euclid::@4 @@ -260,13 +260,13 @@ print_euclid::@5: scope:[print_euclid] from print_euclid::@4 euclid::return#3 = phi( print_euclid::@4/euclid::return#0 ) print_euclid::$4 = euclid::return#3 print_uchar::b#2 = print_euclid::$4 - call print_uchar + call print_uchar to:print_euclid::@6 print_euclid::@6: scope:[print_euclid] from print_euclid::@5 print_line_cursor#35 = phi( print_euclid::@5/print_line_cursor#37 ) print_char_cursor#47 = phi( print_euclid::@5/print_char_cursor#4 ) print_char_cursor#21 = print_char_cursor#47 - call print_ln + call print_ln to:print_euclid::@7 print_euclid::@7: scope:[print_euclid] from print_euclid::@6 print_char_cursor#48 = phi( print_euclid::@6/print_char_cursor#1 ) @@ -282,7 +282,7 @@ print_euclid::@return: scope:[print_euclid] from print_euclid::@7 return to:@return -byte euclid(byte euclid::a , byte euclid::b) +char euclid(char a , char b) euclid: scope:[euclid] from print_euclid::@4 euclid::b#6 = phi( print_euclid::@4/euclid::b#0 ) euclid::a#7 = phi( print_euclid::@4/euclid::a#0 ) @@ -325,7 +325,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#14 = print_screen#0 print_char_cursor#24 = print_line_cursor#14 to:__start::@1 @@ -333,7 +333,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#57 = phi( __start::__init1/print_char_cursor#24 ) print_line_cursor#36 = phi( __start::__init1/print_line_cursor#14 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -353,235 +353,235 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -byte euclid(byte euclid::a , byte euclid::b) -bool~ euclid::$0 -bool~ euclid::$1 -byte~ euclid::$2 -byte~ euclid::$3 -byte euclid::a -byte euclid::a#0 -byte euclid::a#1 -byte euclid::a#2 -byte euclid::a#3 -byte euclid::a#4 -byte euclid::a#5 -byte euclid::a#6 -byte euclid::a#7 -byte euclid::b -byte euclid::b#0 -byte euclid::b#1 -byte euclid::b#2 -byte euclid::b#3 -byte euclid::b#4 -byte euclid::b#5 -byte euclid::b#6 -byte euclid::return -byte euclid::return#0 -byte euclid::return#1 -byte euclid::return#2 -byte euclid::return#3 -byte euclid::return#4 +char euclid(char a , char b) +bool euclid::$0 +bool euclid::$1 +char euclid::$2 +char euclid::$3 +char euclid::a +char euclid::a#0 +char euclid::a#1 +char euclid::a#2 +char euclid::a#3 +char euclid::a#4 +char euclid::a#5 +char euclid::a#6 +char euclid::a#7 +char euclid::b +char euclid::b#0 +char euclid::b#1 +char euclid::b#2 +char euclid::b#3 +char euclid::b#4 +char euclid::b#5 +char euclid::b#6 +char euclid::return +char euclid::return#0 +char euclid::return#1 +char euclid::return#2 +char euclid::return#3 +char euclid::return#4 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -void print_euclid(byte print_euclid::a , byte print_euclid::b) -byte~ print_euclid::$4 -byte print_euclid::a -byte print_euclid::a#0 -byte print_euclid::a#1 -byte print_euclid::a#10 -byte print_euclid::a#2 -byte print_euclid::a#3 -byte print_euclid::a#4 -byte print_euclid::a#5 -byte print_euclid::a#6 -byte print_euclid::a#7 -byte print_euclid::a#8 -byte print_euclid::a#9 -byte print_euclid::b -byte print_euclid::b#0 -byte print_euclid::b#1 -byte print_euclid::b#10 -byte print_euclid::b#2 -byte print_euclid::b#3 -byte print_euclid::b#4 -byte print_euclid::b#5 -byte print_euclid::b#6 -byte print_euclid::b#7 -byte print_euclid::b#8 -byte print_euclid::b#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#40 -byte* print_line_cursor#41 -byte* print_line_cursor#42 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +void print_euclid(char a , char b) +char print_euclid::$4 +char print_euclid::a +char print_euclid::a#0 +char print_euclid::a#1 +char print_euclid::a#10 +char print_euclid::a#2 +char print_euclid::a#3 +char print_euclid::a#4 +char print_euclid::a#5 +char print_euclid::a#6 +char print_euclid::a#7 +char print_euclid::a#8 +char print_euclid::a#9 +char print_euclid::b +char print_euclid::b#0 +char print_euclid::b#1 +char print_euclid::b#10 +char print_euclid::b#2 +char print_euclid::b#3 +char print_euclid::b#4 +char print_euclid::b#5 +char print_euclid::b#6 +char print_euclid::b#7 +char print_euclid::b#8 +char print_euclid::b#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#40 +char *print_line_cursor#41 +char *print_line_cursor#42 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -byte print_uchar::b#4 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +char print_uchar::b#4 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#17 + $28 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#3 >> 4 @@ -603,7 +603,7 @@ Adding number conversion cast (unumber) $77 in print_euclid::a#5 = $77 Adding number conversion cast (unumber) $bb in print_euclid::b#5 = $bb Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast print_euclid::a#0 = (unumber)$80 Inlining cast print_euclid::b#0 = (unumber)2 Inlining cast print_euclid::a#1 = (unumber)$a9 @@ -634,27 +634,27 @@ Simplifying constant integer cast $5b Simplifying constant integer cast $1a Simplifying constant integer cast $77 Simplifying constant integer cast $bb -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $a9 -Finalized unsigned number type (byte) $45 -Finalized unsigned number type (byte) $9b -Finalized unsigned number type (byte) $37 -Finalized unsigned number type (byte) $c7 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $5b -Finalized unsigned number type (byte) $1a -Finalized unsigned number type (byte) $77 -Finalized unsigned number type (byte) $bb +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $a9 +Finalized unsigned number type (char) $45 +Finalized unsigned number type (char) $9b +Finalized unsigned number type (char) $37 +Finalized unsigned number type (char) $c7 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $5b +Finalized unsigned number type (char) $1a +Finalized unsigned number type (char) $77 +Finalized unsigned number type (char) $bb Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#4 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#4 & $f Inversing boolean not [47] memset::$1 = memset::num#1 <= 0 from [46] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#18 print_char_cursor#0 print_line_cursor#19 print_char_cursor#28 print_line_cursor#1 print_char_cursor#1 @@ -770,13 +770,13 @@ Constant print_euclid::a#5 = $77 Constant print_euclid::b#5 = $bb Constant print_char::ch#2 = ' ' Constant print_char::ch#3 = ' ' -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [29] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -815,7 +815,7 @@ Constant inlined print_char::ch#2 = ' ' Constant inlined print_euclid::b#3 = 3 Constant inlined print_euclid::a#4 = $5b Constant inlined print_euclid::b#5 = $bb -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined print_euclid::b#0 = 2 Constant inlined print_euclid::a#1 = $a9 Constant inlined print_euclid::a#0 = $80 @@ -823,12 +823,12 @@ Constant inlined print_euclid::b#2 = $37 Constant inlined print_euclid::a#3 = $c7 Constant inlined print_euclid::b#1 = $45 Constant inlined print_euclid::a#2 = $9b -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main @@ -911,31 +911,31 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_euclid + [3] call print_euclid to:main::@2 main::@2: scope:[main] from main::@1 [4] print_char_cursor#65 = print_line_cursor#0 - [5] call print_euclid + [5] call print_euclid to:main::@3 main::@3: scope:[main] from main::@2 [6] print_char_cursor#66 = print_line_cursor#0 - [7] call print_euclid + [7] call print_euclid to:main::@4 main::@4: scope:[main] from main::@3 [8] print_char_cursor#67 = print_line_cursor#0 - [9] call print_euclid + [9] call print_euclid to:main::@5 main::@5: scope:[main] from main::@4 [10] print_char_cursor#68 = print_line_cursor#0 - [11] call print_euclid + [11] call print_euclid to:main::@6 main::@6: scope:[main] from main::@5 [12] print_char_cursor#69 = print_line_cursor#0 - [13] call print_euclid + [13] call print_euclid to:main::@return main::@return: scope:[main] from main::@6 [14] return @@ -944,57 +944,57 @@ main::@return: scope:[main] from main::@6 void print_cls() print_cls: scope:[print_cls] from main [15] phi() - [16] call memset + [16] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [17] return to:@return -void print_euclid(byte print_euclid::a , byte print_euclid::b) +void print_euclid(char a , char b) print_euclid: scope:[print_euclid] from main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 [18] print_line_cursor#35 = phi( main::@1/print_screen#0, main::@2/print_line_cursor#0, main::@3/print_line_cursor#0, main::@4/print_line_cursor#0, main::@5/print_line_cursor#0, main::@6/print_line_cursor#0 ) [18] print_euclid::b#10 = phi( main::@1/2, main::@2/$45, main::@3/$37, main::@4/3, main::@5/$1a, main::@6/$bb ) [18] print_char_cursor#55 = phi( main::@1/print_screen#0, main::@2/print_char_cursor#65, main::@3/print_char_cursor#66, main::@4/print_char_cursor#67, main::@5/print_char_cursor#68, main::@6/print_char_cursor#69 ) [18] print_euclid::a#10 = phi( main::@1/$80, main::@2/$a9, main::@3/$9b, main::@4/$c7, main::@5/$5b, main::@6/$77 ) [19] print_uchar::b#0 = print_euclid::a#10 - [20] call print_uchar + [20] call print_uchar to:print_euclid::@1 print_euclid::@1: scope:[print_euclid] from print_euclid [21] phi() - [22] call print_char + [22] call print_char to:print_euclid::@2 print_euclid::@2: scope:[print_euclid] from print_euclid::@1 [23] print_uchar::b#1 = print_euclid::b#10 - [24] call print_uchar + [24] call print_uchar to:print_euclid::@3 print_euclid::@3: scope:[print_euclid] from print_euclid::@2 [25] phi() - [26] call print_char + [26] call print_char to:print_euclid::@4 print_euclid::@4: scope:[print_euclid] from print_euclid::@3 [27] euclid::a#0 = print_euclid::a#10 [28] euclid::b#0 = print_euclid::b#10 - [29] call euclid + [29] call euclid [30] euclid::return#0 = euclid::a#2 to:print_euclid::@5 print_euclid::@5: scope:[print_euclid] from print_euclid::@4 [31] print_uchar::b#2 = euclid::return#0 - [32] call print_uchar + [32] call print_uchar to:print_euclid::@6 print_euclid::@6: scope:[print_euclid] from print_euclid::@5 [33] phi() - [34] call print_ln + [34] call print_ln to:print_euclid::@return print_euclid::@return: scope:[print_euclid] from print_euclid::@6 [35] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [36] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [37] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [37] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [38] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1005,24 +1005,24 @@ memset::@2: scope:[memset] from memset::@1 [41] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_euclid print_euclid::@2 print_euclid::@5 [42] print_char_cursor#53 = phi( print_euclid/print_char_cursor#55, print_euclid::@2/print_char_cursor#33, print_euclid::@5/print_char_cursor#33 ) [42] print_uchar::b#3 = phi( print_euclid/print_uchar::b#0, print_euclid::@2/print_uchar::b#1, print_euclid::@5/print_uchar::b#2 ) [43] print_uchar::$0 = print_uchar::b#3 >> 4 [44] print_char::ch#0 = print_hextab[print_uchar::$0] - [45] call print_char + [45] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [46] print_uchar::$2 = print_uchar::b#3 & $f [47] print_char::ch#1 = print_hextab[print_uchar::$2] - [48] call print_char + [48] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [49] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_euclid::@1 print_euclid::@3 print_uchar print_uchar::@1 [50] print_char_cursor#32 = phi( print_euclid::@1/print_char_cursor#33, print_euclid::@3/print_char_cursor#33, print_uchar/print_char_cursor#53, print_uchar::@1/print_char_cursor#33 ) [50] print_char::ch#4 = phi( print_euclid::@1/' ', print_euclid::@3/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -1033,7 +1033,7 @@ print_char::@return: scope:[print_char] from print_char [53] return to:@return -byte euclid(byte euclid::a , byte euclid::b) +char euclid(char a , char b) euclid: scope:[euclid] from print_euclid::@4 [54] phi() to:euclid::@1 @@ -1070,62 +1070,62 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 VARIABLE REGISTER WEIGHTS -byte euclid(byte euclid::a , byte euclid::b) -byte euclid::a -byte euclid::a#0 37.33333333333333 -byte euclid::a#1 2002.0 -byte euclid::a#2 1186.5000000000002 -byte euclid::b -byte euclid::b#0 56.0 -byte euclid::b#1 2002.0 -byte euclid::b#2 1777.0 -byte euclid::return -byte euclid::return#0 22.0 +char euclid(char a , char b) +char euclid::a +char euclid::a#0 // 37.33333333333333 +char euclid::a#1 // 2002.0 +char euclid::a#2 // 1186.5000000000002 +char euclid::b +char euclid::b#0 // 56.0 +char euclid::b#1 // 2002.0 +char euclid::b#2 // 1777.0 +char euclid::return +char euclid::return#0 // 22.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 202.0 -byte print_char::ch#1 202.0 -byte print_char::ch#4 1203.0 -byte* print_char_cursor -byte* print_char_cursor#32 1113.0 -byte* print_char_cursor#33 85.88 -byte* print_char_cursor#53 44.666666666666664 -byte* print_char_cursor#55 10.5 -byte* print_char_cursor#65 4.0 -byte* print_char_cursor#66 4.0 -byte* print_char_cursor#67 4.0 -byte* print_char_cursor#68 4.0 -byte* print_char_cursor#69 4.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 202.0 +char print_char::ch#1 // 202.0 +char print_char::ch#4 // 1203.0 +char *print_char_cursor +char *print_char_cursor#32 // 1113.0 +char *print_char_cursor#33 // 85.88 +char *print_char_cursor#53 // 44.666666666666664 +char *print_char_cursor#55 // 10.5 +char *print_char_cursor#65 // 4.0 +char *print_char_cursor#66 // 4.0 +char *print_char_cursor#67 // 4.0 +char *print_char_cursor#68 // 4.0 +char *print_char_cursor#69 // 4.0 void print_cls() -void print_euclid(byte print_euclid::a , byte print_euclid::b) -byte print_euclid::a -byte print_euclid::a#10 2.4444444444444446 -byte print_euclid::b -byte print_euclid::b#10 2.2 -byte* print_line_cursor -byte* print_line_cursor#0 201.53333333333336 -byte* print_line_cursor#17 2103.0 -byte* print_line_cursor#35 6.529411764705882 +void print_euclid(char a , char b) +char print_euclid::a +char print_euclid::a#10 // 2.4444444444444446 +char print_euclid::b +char print_euclid::b#10 // 2.2 +char *print_line_cursor +char *print_line_cursor#0 // 201.53333333333336 +char *print_line_cursor#17 // 2103.0 +char *print_line_cursor#35 // 6.529411764705882 void print_ln() -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 202.0 -byte~ print_uchar::$2 202.0 -byte print_uchar::b -byte print_uchar::b#0 22.0 -byte print_uchar::b#1 22.0 -byte print_uchar::b#2 22.0 -byte print_uchar::b#3 58.75 +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 202.0 +char print_uchar::$2 // 202.0 +char print_uchar::b +char print_uchar::b#0 // 22.0 +char print_uchar::b#1 // 22.0 +char print_uchar::b#2 // 22.0 +char print_uchar::b#3 // 58.75 Initial phi equivalence classes [ print_euclid::a#10 ] @@ -1271,7 +1271,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_cls + // [1] call print_cls // [15] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -1280,7 +1280,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_euclid + // [3] call print_euclid // [18] phi from main::@1 to print_euclid [phi:main::@1->print_euclid] print_euclid_from___b1: // [18] phi print_line_cursor#35 = print_screen#0 [phi:main::@1->print_euclid#0] -- pbuz1=pbuc1 @@ -1308,7 +1308,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [5] call print_euclid + // [5] call print_euclid // [18] phi from main::@2 to print_euclid [phi:main::@2->print_euclid] print_euclid_from___b2: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@2->print_euclid#0] -- register_copy @@ -1328,7 +1328,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [7] call print_euclid + // [7] call print_euclid // [18] phi from main::@3 to print_euclid [phi:main::@3->print_euclid] print_euclid_from___b3: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@3->print_euclid#0] -- register_copy @@ -1348,7 +1348,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [9] call print_euclid + // [9] call print_euclid // [18] phi from main::@4 to print_euclid [phi:main::@4->print_euclid] print_euclid_from___b4: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@4->print_euclid#0] -- register_copy @@ -1368,7 +1368,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [11] call print_euclid + // [11] call print_euclid // [18] phi from main::@5 to print_euclid [phi:main::@5->print_euclid] print_euclid_from___b5: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@5->print_euclid#0] -- register_copy @@ -1388,7 +1388,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [13] call print_euclid + // [13] call print_euclid // [18] phi from main::@6 to print_euclid [phi:main::@6->print_euclid] print_euclid_from___b6: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@6->print_euclid#0] -- register_copy @@ -1409,7 +1409,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [16] call memset + // [16] call memset // [36] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1420,13 +1420,13 @@ print_cls: { rts } // print_euclid -// print_euclid(byte zp(2) a, byte zp(3) b) +// void print_euclid(__zp(2) char a, __zp(3) char b) print_euclid: { .label b = 3 .label a = 2 // [19] print_uchar::b#0 = print_euclid::a#10 -- vbuxx=vbuz1 ldx.z a - // [20] call print_uchar + // [20] call print_uchar // [42] phi from print_euclid to print_uchar [phi:print_euclid->print_uchar] print_uchar_from_print_euclid: // [42] phi print_char_cursor#53 = print_char_cursor#55 [phi:print_euclid->print_uchar#0] -- register_copy @@ -1437,7 +1437,7 @@ print_euclid: { jmp __b1 // print_euclid::@1 __b1: - // [22] call print_char + // [22] call print_char // [50] phi from print_euclid::@1 to print_char [phi:print_euclid::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@1->print_char#0] -- register_copy @@ -1449,7 +1449,7 @@ print_euclid: { __b2: // [23] print_uchar::b#1 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b - // [24] call print_uchar + // [24] call print_uchar // [42] phi from print_euclid::@2 to print_uchar [phi:print_euclid::@2->print_uchar] print_uchar_from___b2: // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@2->print_uchar#0] -- register_copy @@ -1460,7 +1460,7 @@ print_euclid: { jmp __b3 // print_euclid::@3 __b3: - // [26] call print_char + // [26] call print_char // [50] phi from print_euclid::@3 to print_char [phi:print_euclid::@3->print_char] print_char_from___b3: // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@3->print_char#0] -- register_copy @@ -1473,7 +1473,7 @@ print_euclid: { // [27] euclid::a#0 = print_euclid::a#10 // [28] euclid::b#0 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b - // [29] call euclid + // [29] call euclid // [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] euclid_from___b4: jsr euclid @@ -1484,7 +1484,7 @@ print_euclid: { __b5: // [31] print_uchar::b#2 = euclid::return#0 -- vbuxx=vbuaa tax - // [32] call print_uchar + // [32] call print_uchar // [42] phi from print_euclid::@5 to print_uchar [phi:print_euclid::@5->print_uchar] print_uchar_from___b5: // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@5->print_uchar#0] -- register_copy @@ -1495,7 +1495,7 @@ print_euclid: { jmp __b6 // print_euclid::@6 __b6: - // [34] call print_ln + // [34] call print_ln // [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] print_ln_from___b6: jsr print_ln @@ -1507,6 +1507,7 @@ print_euclid: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1515,7 +1516,7 @@ memset: { .label dst = 4 // [37] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [37] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [37] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1553,7 +1554,7 @@ memset: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [43] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1564,7 +1565,7 @@ print_uchar: { // [44] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [45] call print_char + // [45] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1579,7 +1580,7 @@ print_uchar: { axs #0 // [47] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [48] call print_char + // [48] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1593,7 +1594,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [51] *print_char_cursor#32 = print_char::ch#4 -- _deref_pbuz1=vbuaa ldy #0 @@ -1610,7 +1611,7 @@ print_char: { rts } // euclid -// euclid(byte zp(2) a, byte register(X) b) +// __register(A) char euclid(__zp(2) char a, __register(X) char b) euclid: { .label a = 2 // [55] phi from euclid euclid::@3 euclid::@4 to euclid::@1 [phi:euclid/euclid::@3/euclid::@4->euclid::@1] @@ -1776,72 +1777,72 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -byte euclid(byte euclid::a , byte euclid::b) -byte euclid::a -byte euclid::a#0 a zp[1]:2 37.33333333333333 -byte euclid::a#1 a zp[1]:2 2002.0 -byte euclid::a#2 a zp[1]:2 1186.5000000000002 -byte euclid::b -byte euclid::b#0 reg byte x 56.0 -byte euclid::b#1 reg byte x 2002.0 -byte euclid::b#2 reg byte x 1777.0 -byte euclid::return -byte euclid::return#0 reg byte a 22.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +char euclid(char a , char b) +char euclid::a +char euclid::a#0 // a zp[1]:2 37.33333333333333 +char euclid::a#1 // a zp[1]:2 2002.0 +char euclid::a#2 // a zp[1]:2 1186.5000000000002 +char euclid::b +char euclid::b#0 // reg byte x 56.0 +char euclid::b#1 // reg byte x 2002.0 +char euclid::b#2 // reg byte x 1777.0 +char euclid::return +char euclid::return#0 // reg byte a 22.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 202.0 -byte print_char::ch#1 reg byte a 202.0 -byte print_char::ch#4 reg byte a 1203.0 -byte* print_char_cursor -byte* print_char_cursor#32 print_char_cursor zp[2]:4 1113.0 -byte* print_char_cursor#33 print_char_cursor zp[2]:4 85.88 -byte* print_char_cursor#53 print_char_cursor zp[2]:4 44.666666666666664 -byte* print_char_cursor#55 print_char_cursor zp[2]:4 10.5 -byte* print_char_cursor#65 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#66 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#67 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#68 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#69 print_char_cursor zp[2]:4 4.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 202.0 +char print_char::ch#1 // reg byte a 202.0 +char print_char::ch#4 // reg byte a 1203.0 +char *print_char_cursor +char *print_char_cursor#32 // print_char_cursor zp[2]:4 1113.0 +char *print_char_cursor#33 // print_char_cursor zp[2]:4 85.88 +char *print_char_cursor#53 // print_char_cursor zp[2]:4 44.666666666666664 +char *print_char_cursor#55 // print_char_cursor zp[2]:4 10.5 +char *print_char_cursor#65 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#66 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#67 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#68 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#69 // print_char_cursor zp[2]:4 4.0 void print_cls() -void print_euclid(byte print_euclid::a , byte print_euclid::b) -byte print_euclid::a -byte print_euclid::a#10 a zp[1]:2 2.4444444444444446 -byte print_euclid::b -byte print_euclid::b#10 b zp[1]:3 2.2 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:6 201.53333333333336 -byte* print_line_cursor#17 print_line_cursor zp[2]:6 2103.0 -byte* print_line_cursor#35 print_line_cursor zp[2]:6 6.529411764705882 +void print_euclid(char a , char b) +char print_euclid::a +char print_euclid::a#10 // a zp[1]:2 2.4444444444444446 +char print_euclid::b +char print_euclid::b#10 // b zp[1]:3 2.2 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:6 201.53333333333336 +char *print_line_cursor#17 // print_line_cursor zp[2]:6 2103.0 +char *print_line_cursor#35 // print_line_cursor zp[2]:6 6.529411764705882 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte x 202.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 22.0 -byte print_uchar::b#1 reg byte x 22.0 -byte print_uchar::b#2 reg byte x 22.0 -byte print_uchar::b#3 reg byte x 58.75 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte x 202.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 22.0 +char print_uchar::b#1 // reg byte x 22.0 +char print_uchar::b#2 // reg byte x 22.0 +char print_uchar::b#3 // reg byte x 58.75 zp[1]:2 [ print_euclid::a#10 euclid::a#2 euclid::a#0 euclid::a#1 ] zp[1]:3 [ print_euclid::b#10 ] @@ -1881,13 +1882,13 @@ Score: 1607 // main main: { // print_cls() - // [1] call print_cls + // [1] call print_cls // [15] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_euclid(128,2) - // [3] call print_euclid + // [3] call print_euclid // [18] phi from main::@1 to print_euclid [phi:main::@1->print_euclid] // [18] phi print_line_cursor#35 = print_screen#0 [phi:main::@1->print_euclid#0] -- pbuz1=pbuc1 lda #print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@2->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $45 [phi:main::@2->print_euclid#1] -- vbuz1=vbuc1 @@ -1931,7 +1932,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(155,55) - // [7] call print_euclid + // [7] call print_euclid // [18] phi from main::@3 to print_euclid [phi:main::@3->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@3->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $37 [phi:main::@3->print_euclid#1] -- vbuz1=vbuc1 @@ -1949,7 +1950,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(199,3) - // [9] call print_euclid + // [9] call print_euclid // [18] phi from main::@4 to print_euclid [phi:main::@4->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@4->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = 3 [phi:main::@4->print_euclid#1] -- vbuz1=vbuc1 @@ -1967,7 +1968,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(91,26) - // [11] call print_euclid + // [11] call print_euclid // [18] phi from main::@5 to print_euclid [phi:main::@5->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@5->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $1a [phi:main::@5->print_euclid#1] -- vbuz1=vbuc1 @@ -1985,7 +1986,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(119,187) - // [13] call print_euclid + // [13] call print_euclid // [18] phi from main::@6 to print_euclid [phi:main::@6->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@6->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $bb [phi:main::@6->print_euclid#1] -- vbuz1=vbuc1 @@ -2005,7 +2006,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [16] call memset + // [16] call memset // [36] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2014,14 +2015,14 @@ print_cls: { rts } // print_euclid -// print_euclid(byte zp(2) a, byte zp(3) b) +// void print_euclid(__zp(2) char a, __zp(3) char b) print_euclid: { .label b = 3 .label a = 2 // print_uchar(a) // [19] print_uchar::b#0 = print_euclid::a#10 -- vbuxx=vbuz1 ldx.z a - // [20] call print_uchar + // [20] call print_uchar // [42] phi from print_euclid to print_uchar [phi:print_euclid->print_uchar] // [42] phi print_char_cursor#53 = print_char_cursor#55 [phi:print_euclid->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- register_copy @@ -2029,7 +2030,7 @@ print_euclid: { // [21] phi from print_euclid to print_euclid::@1 [phi:print_euclid->print_euclid::@1] // print_euclid::@1 // print_char(' ') - // [22] call print_char + // [22] call print_char // [50] phi from print_euclid::@1 to print_char [phi:print_euclid::@1->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- vbuaa=vbuc1 @@ -2039,7 +2040,7 @@ print_euclid: { // print_uchar(b) // [23] print_uchar::b#1 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b - // [24] call print_uchar + // [24] call print_uchar // [42] phi from print_euclid::@2 to print_uchar [phi:print_euclid::@2->print_uchar] // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@2->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- register_copy @@ -2047,7 +2048,7 @@ print_euclid: { // [25] phi from print_euclid::@2 to print_euclid::@3 [phi:print_euclid::@2->print_euclid::@3] // print_euclid::@3 // print_char(' ') - // [26] call print_char + // [26] call print_char // [50] phi from print_euclid::@3 to print_char [phi:print_euclid::@3->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@3->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- vbuaa=vbuc1 @@ -2058,7 +2059,7 @@ print_euclid: { // [27] euclid::a#0 = print_euclid::a#10 // [28] euclid::b#0 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b - // [29] call euclid + // [29] call euclid // [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] jsr euclid // euclid(a,b) @@ -2068,7 +2069,7 @@ print_euclid: { // print_uchar(euclid(a,b)) // [31] print_uchar::b#2 = euclid::return#0 -- vbuxx=vbuaa tax - // [32] call print_uchar + // [32] call print_uchar // [42] phi from print_euclid::@5 to print_uchar [phi:print_euclid::@5->print_uchar] // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@5->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- register_copy @@ -2076,7 +2077,7 @@ print_euclid: { // [33] phi from print_euclid::@5 to print_euclid::@6 [phi:print_euclid::@5->print_euclid::@6] // print_euclid::@6 // print_ln() - // [34] call print_ln + // [34] call print_ln // [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] jsr print_ln // print_euclid::@return @@ -2086,6 +2087,7 @@ print_euclid: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2093,7 +2095,7 @@ memset: { .label end = str+num .label dst = 4 // [37] phi from memset to memset::@1 [phi:memset->memset::@1] - // [37] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [37] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2131,7 +2133,7 @@ memset: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [43] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2144,7 +2146,7 @@ print_uchar: { // [44] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [45] call print_char + // [45] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#53 [phi:print_uchar->print_char#0] -- register_copy @@ -2158,7 +2160,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [47] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [48] call print_char + // [48] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_uchar::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2170,7 +2172,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [51] *print_char_cursor#32 = print_char::ch#4 -- _deref_pbuz1=vbuaa @@ -2188,7 +2190,7 @@ print_char: { rts } // euclid -// euclid(byte zp(2) a, byte register(X) b) +// __register(A) char euclid(__zp(2) char a, __register(X) char b) euclid: { .label a = 2 // [55] phi from euclid euclid::@3 euclid::@4 to euclid::@1 [phi:euclid/euclid::@3/euclid::@4->euclid::@1] diff --git a/src/test/ref/euclid-3.sym b/src/test/ref/euclid-3.sym index d4105a916..7883ec3ea 100644 --- a/src/test/ref/euclid-3.sym +++ b/src/test/ref/euclid-3.sym @@ -1,69 +1,69 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -byte euclid(byte euclid::a , byte euclid::b) -byte euclid::a -byte euclid::a#0 a zp[1]:2 37.33333333333333 -byte euclid::a#1 a zp[1]:2 2002.0 -byte euclid::a#2 a zp[1]:2 1186.5000000000002 -byte euclid::b -byte euclid::b#0 reg byte x 56.0 -byte euclid::b#1 reg byte x 2002.0 -byte euclid::b#2 reg byte x 1777.0 -byte euclid::return -byte euclid::return#0 reg byte a 22.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +char euclid(char a , char b) +char euclid::a +char euclid::a#0 // a zp[1]:2 37.33333333333333 +char euclid::a#1 // a zp[1]:2 2002.0 +char euclid::a#2 // a zp[1]:2 1186.5000000000002 +char euclid::b +char euclid::b#0 // reg byte x 56.0 +char euclid::b#1 // reg byte x 2002.0 +char euclid::b#2 // reg byte x 1777.0 +char euclid::return +char euclid::return#0 // reg byte a 22.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 202.0 -byte print_char::ch#1 reg byte a 202.0 -byte print_char::ch#4 reg byte a 1203.0 -byte* print_char_cursor -byte* print_char_cursor#32 print_char_cursor zp[2]:4 1113.0 -byte* print_char_cursor#33 print_char_cursor zp[2]:4 85.88 -byte* print_char_cursor#53 print_char_cursor zp[2]:4 44.666666666666664 -byte* print_char_cursor#55 print_char_cursor zp[2]:4 10.5 -byte* print_char_cursor#65 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#66 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#67 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#68 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#69 print_char_cursor zp[2]:4 4.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 202.0 +char print_char::ch#1 // reg byte a 202.0 +char print_char::ch#4 // reg byte a 1203.0 +char *print_char_cursor +char *print_char_cursor#32 // print_char_cursor zp[2]:4 1113.0 +char *print_char_cursor#33 // print_char_cursor zp[2]:4 85.88 +char *print_char_cursor#53 // print_char_cursor zp[2]:4 44.666666666666664 +char *print_char_cursor#55 // print_char_cursor zp[2]:4 10.5 +char *print_char_cursor#65 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#66 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#67 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#68 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#69 // print_char_cursor zp[2]:4 4.0 void print_cls() -void print_euclid(byte print_euclid::a , byte print_euclid::b) -byte print_euclid::a -byte print_euclid::a#10 a zp[1]:2 2.4444444444444446 -byte print_euclid::b -byte print_euclid::b#10 b zp[1]:3 2.2 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:6 201.53333333333336 -byte* print_line_cursor#17 print_line_cursor zp[2]:6 2103.0 -byte* print_line_cursor#35 print_line_cursor zp[2]:6 6.529411764705882 +void print_euclid(char a , char b) +char print_euclid::a +char print_euclid::a#10 // a zp[1]:2 2.4444444444444446 +char print_euclid::b +char print_euclid::b#10 // b zp[1]:3 2.2 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:6 201.53333333333336 +char *print_line_cursor#17 // print_line_cursor zp[2]:6 2103.0 +char *print_line_cursor#35 // print_line_cursor zp[2]:6 6.529411764705882 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte x 202.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 22.0 -byte print_uchar::b#1 reg byte x 22.0 -byte print_uchar::b#2 reg byte x 22.0 -byte print_uchar::b#3 reg byte x 58.75 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte x 202.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 22.0 +char print_uchar::b#1 // reg byte x 22.0 +char print_uchar::b#2 // reg byte x 22.0 +char print_uchar::b#3 // reg byte x 58.75 zp[1]:2 [ print_euclid::a#10 euclid::a#2 euclid::a#0 euclid::a#1 ] zp[1]:3 [ print_euclid::b#10 ] diff --git a/src/test/ref/euclid-problem-2.asm b/src/test/ref/euclid-problem-2.asm index d3f09a5dc..2dc12924a 100644 --- a/src/test/ref/euclid-problem-2.asm +++ b/src/test/ref/euclid-problem-2.asm @@ -51,7 +51,7 @@ main: { rts } // Calculate least common denominator using euclids subtraction method -// euclid(byte zp(2) a, byte register(X) b) +// __register(A) char euclid(__zp(2) char a, __register(X) char b) euclid: { .label a = 2 __b1: diff --git a/src/test/ref/euclid-problem-2.cfg b/src/test/ref/euclid-problem-2.cfg index a98494f85..bc1369d53 100644 --- a/src/test/ref/euclid-problem-2.cfg +++ b/src/test/ref/euclid-problem-2.cfg @@ -2,25 +2,25 @@ void main() main: scope:[main] from [0] phi() - [1] call euclid + [1] call euclid [2] euclid::return#0 = euclid::a#5 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = euclid::return#0 [4] *SCREEN = main::$0 - [5] call euclid + [5] call euclid [6] euclid::return#1 = euclid::a#5 to:main::@2 main::@2: scope:[main] from main::@1 [7] main::$1 = euclid::return#1 [8] *(SCREEN+1) = main::$1 - [9] call euclid + [9] call euclid [10] euclid::return#2 = euclid::a#5 to:main::@3 main::@3: scope:[main] from main::@2 [11] main::$2 = euclid::return#2 [12] *(SCREEN+2) = main::$2 - [13] call euclid + [13] call euclid [14] euclid::return#3 = euclid::a#5 to:main::@4 main::@4: scope:[main] from main::@3 @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@4 [17] return to:@return -byte euclid(byte euclid::a , byte euclid::b) +char euclid(char a , char b) euclid: scope:[euclid] from main main::@1 main::@2 main::@3 [18] euclid::b#9 = phi( main/2, main::@1/$45, main::@2/$9b, main::@3/3 ) [18] euclid::a#10 = phi( main/$80, main::@1/$a9, main::@2/$ff, main::@3/$63 ) diff --git a/src/test/ref/euclid-problem-2.log b/src/test/ref/euclid-problem-2.log index 361395bde..cab23875c 100644 --- a/src/test/ref/euclid-problem-2.log +++ b/src/test/ref/euclid-problem-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,7 +7,7 @@ main: scope:[main] from __start::@1 idx#15 = phi( __start::@1/idx#16 ) euclid::a#0 = $80 euclid::b#0 = 2 - call euclid + call euclid euclid::return#0 = euclid::return#5 to:main::@1 main::@1: scope:[main] from main @@ -18,7 +18,7 @@ main::@1: scope:[main] from main idx#0 = ++ idx#8 euclid::a#1 = $a9 euclid::b#1 = $45 - call euclid + call euclid euclid::return#1 = euclid::return#5 to:main::@2 main::@2: scope:[main] from main::@1 @@ -29,7 +29,7 @@ main::@2: scope:[main] from main::@1 idx#1 = ++ idx#9 euclid::a#2 = $ff euclid::b#2 = $9b - call euclid + call euclid euclid::return#2 = euclid::return#5 to:main::@3 main::@3: scope:[main] from main::@2 @@ -40,7 +40,7 @@ main::@3: scope:[main] from main::@2 idx#2 = ++ idx#10 euclid::a#3 = $63 euclid::b#3 = 3 - call euclid + call euclid euclid::return#3 = euclid::return#5 to:main::@4 main::@4: scope:[main] from main::@3 @@ -56,7 +56,7 @@ main::@return: scope:[main] from main::@4 return to:@return -byte euclid(byte euclid::a , byte euclid::b) +char euclid(char a , char b) euclid: scope:[euclid] from main main::@1 main::@2 main::@3 euclid::b#9 = phi( main/euclid::b#0, main::@1/euclid::b#1, main::@2/euclid::b#2, main::@3/euclid::b#3 ) euclid::a#10 = phi( main/euclid::a#0, main::@1/euclid::a#1, main::@2/euclid::a#2, main::@3/euclid::a#3 ) @@ -103,7 +103,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#16 = phi( __start::__init1/idx#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#13 = phi( __start::@1/idx#4 ) @@ -116,71 +116,71 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte euclid(byte euclid::a , byte euclid::b) -bool~ euclid::$0 -bool~ euclid::$1 -byte~ euclid::$2 -byte~ euclid::$3 -byte euclid::a -byte euclid::a#0 -byte euclid::a#1 -byte euclid::a#10 -byte euclid::a#2 -byte euclid::a#3 -byte euclid::a#4 -byte euclid::a#5 -byte euclid::a#6 -byte euclid::a#7 -byte euclid::a#8 -byte euclid::a#9 -byte euclid::b -byte euclid::b#0 -byte euclid::b#1 -byte euclid::b#2 -byte euclid::b#3 -byte euclid::b#4 -byte euclid::b#5 -byte euclid::b#6 -byte euclid::b#7 -byte euclid::b#8 -byte euclid::b#9 -byte euclid::return -byte euclid::return#0 -byte euclid::return#1 -byte euclid::return#10 -byte euclid::return#2 -byte euclid::return#3 -byte euclid::return#4 -byte euclid::return#5 -byte euclid::return#6 -byte euclid::return#7 -byte euclid::return#8 -byte euclid::return#9 -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char euclid(char a , char b) +bool euclid::$0 +bool euclid::$1 +char euclid::$2 +char euclid::$3 +char euclid::a +char euclid::a#0 +char euclid::a#1 +char euclid::a#10 +char euclid::a#2 +char euclid::a#3 +char euclid::a#4 +char euclid::a#5 +char euclid::a#6 +char euclid::a#7 +char euclid::a#8 +char euclid::a#9 +char euclid::b +char euclid::b#0 +char euclid::b#1 +char euclid::b#2 +char euclid::b#3 +char euclid::b#4 +char euclid::b#5 +char euclid::b#6 +char euclid::b#7 +char euclid::b#8 +char euclid::b#9 +char euclid::return +char euclid::return#0 +char euclid::return#1 +char euclid::return#10 +char euclid::return#2 +char euclid::return#3 +char euclid::return#4 +char euclid::return#5 +char euclid::return#6 +char euclid::return#7 +char euclid::return#8 +char euclid::return#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 +char main::$0 +char main::$1 +char main::$2 +char main::$3 Adding number conversion cast (unumber) $80 in euclid::a#0 = $80 Adding number conversion cast (unumber) 2 in euclid::b#0 = 2 @@ -200,7 +200,7 @@ Inlining cast euclid::b#2 = (unumber)$9b Inlining cast euclid::a#3 = (unumber)$63 Inlining cast euclid::b#3 = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $80 Simplifying constant integer cast 2 Simplifying constant integer cast $a9 @@ -210,14 +210,14 @@ Simplifying constant integer cast $9b Simplifying constant integer cast $63 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $a9 -Finalized unsigned number type (byte) $45 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $9b -Finalized unsigned number type (byte) $63 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $a9 +Finalized unsigned number type (char) $45 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $9b +Finalized unsigned number type (char) $63 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias euclid::return#0 = euclid::return#6 Alias idx#15 = idx#8 @@ -333,25 +333,25 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call euclid + [1] call euclid [2] euclid::return#0 = euclid::a#5 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = euclid::return#0 [4] *SCREEN = main::$0 - [5] call euclid + [5] call euclid [6] euclid::return#1 = euclid::a#5 to:main::@2 main::@2: scope:[main] from main::@1 [7] main::$1 = euclid::return#1 [8] *(SCREEN+1) = main::$1 - [9] call euclid + [9] call euclid [10] euclid::return#2 = euclid::a#5 to:main::@3 main::@3: scope:[main] from main::@2 [11] main::$2 = euclid::return#2 [12] *(SCREEN+2) = main::$2 - [13] call euclid + [13] call euclid [14] euclid::return#3 = euclid::a#5 to:main::@4 main::@4: scope:[main] from main::@3 @@ -362,7 +362,7 @@ main::@return: scope:[main] from main::@4 [17] return to:@return -byte euclid(byte euclid::a , byte euclid::b) +char euclid(char a , char b) euclid: scope:[euclid] from main main::@1 main::@2 main::@3 [18] euclid::b#9 = phi( main/2, main::@1/$45, main::@2/$9b, main::@3/3 ) [18] euclid::a#10 = phi( main/$80, main::@1/$a9, main::@2/$ff, main::@3/$63 ) @@ -387,26 +387,26 @@ euclid::@3: scope:[euclid] from euclid::@2 VARIABLE REGISTER WEIGHTS -byte euclid(byte euclid::a , byte euclid::b) -byte euclid::a -byte euclid::a#10 11.0 -byte euclid::a#4 202.0 -byte euclid::a#5 80.66666666666666 -byte euclid::b -byte euclid::b#4 202.0 -byte euclid::b#5 179.5 -byte euclid::b#9 11.0 -byte euclid::return -byte euclid::return#0 4.0 -byte euclid::return#1 4.0 -byte euclid::return#2 4.0 -byte euclid::return#3 4.0 -byte idx +char euclid(char a , char b) +char euclid::a +char euclid::a#10 // 11.0 +char euclid::a#4 // 202.0 +char euclid::a#5 // 80.66666666666666 +char euclid::b +char euclid::b#4 // 202.0 +char euclid::b#5 // 179.5 +char euclid::b#9 // 11.0 +char euclid::return +char euclid::return#0 // 4.0 +char euclid::return#1 // 4.0 +char euclid::return#2 // 4.0 +char euclid::return#3 // 4.0 +char idx void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 Initial phi equivalence classes [ euclid::a#5 euclid::a#10 euclid::a#4 ] @@ -493,7 +493,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call euclid + // [1] call euclid // [18] phi from main to euclid [phi:main->euclid] euclid_from_main: // [18] phi euclid::b#9 = 2 [phi:main->euclid#0] -- vbuxx=vbuc1 @@ -510,7 +510,7 @@ main: { // [3] main::$0 = euclid::return#0 // [4] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [5] call euclid + // [5] call euclid // [18] phi from main::@1 to euclid [phi:main::@1->euclid] euclid_from___b1: // [18] phi euclid::b#9 = $45 [phi:main::@1->euclid#0] -- vbuxx=vbuc1 @@ -527,7 +527,7 @@ main: { // [7] main::$1 = euclid::return#1 // [8] *(SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 - // [9] call euclid + // [9] call euclid // [18] phi from main::@2 to euclid [phi:main::@2->euclid] euclid_from___b2: // [18] phi euclid::b#9 = $9b [phi:main::@2->euclid#0] -- vbuxx=vbuc1 @@ -544,7 +544,7 @@ main: { // [11] main::$2 = euclid::return#2 // [12] *(SCREEN+2) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+2 - // [13] call euclid + // [13] call euclid // [18] phi from main::@3 to euclid [phi:main::@3->euclid] euclid_from___b3: // [18] phi euclid::b#9 = 3 [phi:main::@3->euclid#0] -- vbuxx=vbuc1 @@ -569,7 +569,7 @@ main: { } // euclid // Calculate least common denominator using euclids subtraction method -// euclid(byte zp(2) a, byte register(X) b) +// __register(A) char euclid(__zp(2) char a, __register(X) char b) euclid: { .label a = 2 // [19] phi from euclid euclid::@3 euclid::@4 to euclid::@1 [phi:euclid/euclid::@3/euclid::@4->euclid::@1] @@ -645,27 +645,27 @@ Removing instruction __b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte euclid(byte euclid::a , byte euclid::b) -byte euclid::a -byte euclid::a#10 a zp[1]:2 11.0 -byte euclid::a#4 a zp[1]:2 202.0 -byte euclid::a#5 a zp[1]:2 80.66666666666666 -byte euclid::b -byte euclid::b#4 reg byte x 202.0 -byte euclid::b#5 reg byte x 179.5 -byte euclid::b#9 reg byte x 11.0 -byte euclid::return -byte euclid::return#0 reg byte a 4.0 -byte euclid::return#1 reg byte a 4.0 -byte euclid::return#2 reg byte a 4.0 -byte euclid::return#3 reg byte a 4.0 -byte idx +__constant char * const SCREEN = (char *) 1024 +char euclid(char a , char b) +char euclid::a +char euclid::a#10 // a zp[1]:2 11.0 +char euclid::a#4 // a zp[1]:2 202.0 +char euclid::a#5 // a zp[1]:2 80.66666666666666 +char euclid::b +char euclid::b#4 // reg byte x 202.0 +char euclid::b#5 // reg byte x 179.5 +char euclid::b#9 // reg byte x 11.0 +char euclid::return +char euclid::return#0 // reg byte a 4.0 +char euclid::return#1 // reg byte a 4.0 +char euclid::return#2 // reg byte a 4.0 +char euclid::return#3 // reg byte a 4.0 +char idx void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 zp[1]:2 [ euclid::a#5 euclid::a#10 euclid::a#4 ] reg byte x [ euclid::b#5 euclid::b#9 euclid::b#4 ] @@ -700,7 +700,7 @@ Score: 472 // main main: { // euclid(128,2) - // [1] call euclid + // [1] call euclid // [18] phi from main to euclid [phi:main->euclid] // [18] phi euclid::b#9 = 2 [phi:main->euclid#0] -- vbuxx=vbuc1 ldx #2 @@ -717,7 +717,7 @@ main: { // [4] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // euclid(169,69) - // [5] call euclid + // [5] call euclid // [18] phi from main::@1 to euclid [phi:main::@1->euclid] // [18] phi euclid::b#9 = $45 [phi:main::@1->euclid#0] -- vbuxx=vbuc1 ldx #$45 @@ -734,7 +734,7 @@ main: { // [8] *(SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 // euclid(255,155) - // [9] call euclid + // [9] call euclid // [18] phi from main::@2 to euclid [phi:main::@2->euclid] // [18] phi euclid::b#9 = $9b [phi:main::@2->euclid#0] -- vbuxx=vbuc1 ldx #$9b @@ -751,7 +751,7 @@ main: { // [12] *(SCREEN+2) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+2 // euclid(99,3) - // [13] call euclid + // [13] call euclid // [18] phi from main::@3 to euclid [phi:main::@3->euclid] // [18] phi euclid::b#9 = 3 [phi:main::@3->euclid#0] -- vbuxx=vbuc1 ldx #3 @@ -774,7 +774,7 @@ main: { } // euclid // Calculate least common denominator using euclids subtraction method -// euclid(byte zp(2) a, byte register(X) b) +// __register(A) char euclid(__zp(2) char a, __register(X) char b) euclid: { .label a = 2 // [19] phi from euclid euclid::@3 euclid::@4 to euclid::@1 [phi:euclid/euclid::@3/euclid::@4->euclid::@1] diff --git a/src/test/ref/euclid-problem-2.sym b/src/test/ref/euclid-problem-2.sym index 8b42947f1..cb84aa694 100644 --- a/src/test/ref/euclid-problem-2.sym +++ b/src/test/ref/euclid-problem-2.sym @@ -1,24 +1,24 @@ -constant byte* const SCREEN = (byte*) 1024 -byte euclid(byte euclid::a , byte euclid::b) -byte euclid::a -byte euclid::a#10 a zp[1]:2 11.0 -byte euclid::a#4 a zp[1]:2 202.0 -byte euclid::a#5 a zp[1]:2 80.66666666666666 -byte euclid::b -byte euclid::b#4 reg byte x 202.0 -byte euclid::b#5 reg byte x 179.5 -byte euclid::b#9 reg byte x 11.0 -byte euclid::return -byte euclid::return#0 reg byte a 4.0 -byte euclid::return#1 reg byte a 4.0 -byte euclid::return#2 reg byte a 4.0 -byte euclid::return#3 reg byte a 4.0 -byte idx +__constant char * const SCREEN = (char *) 1024 +char euclid(char a , char b) +char euclid::a +char euclid::a#10 // a zp[1]:2 11.0 +char euclid::a#4 // a zp[1]:2 202.0 +char euclid::a#5 // a zp[1]:2 80.66666666666666 +char euclid::b +char euclid::b#4 // reg byte x 202.0 +char euclid::b#5 // reg byte x 179.5 +char euclid::b#9 // reg byte x 11.0 +char euclid::return +char euclid::return#0 // reg byte a 4.0 +char euclid::return#1 // reg byte a 4.0 +char euclid::return#2 // reg byte a 4.0 +char euclid::return#3 // reg byte a 4.0 +char idx void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 zp[1]:2 [ euclid::a#5 euclid::a#10 euclid::a#4 ] reg byte x [ euclid::b#5 euclid::b#9 euclid::b#4 ] diff --git a/src/test/ref/euclid-problem.log b/src/test/ref/euclid-problem.log index 05a73143e..caf1bfb86 100644 --- a/src/test/ref/euclid-problem.log +++ b/src/test/ref/euclid-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -45,7 +45,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -54,30 +54,30 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::a#6 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 +bool main::$0 +bool main::$1 +char main::$2 +char main::$3 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::a#5 +char main::a#6 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::a#2 = main::a#3 main::a#4 main::a#5 main::a#6 Alias main::b#2 = main::b#3 main::b#4 main::b#5 @@ -143,12 +143,12 @@ main::@4: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 22.0 -byte main::a#2 19.75 -byte main::b -byte main::b#1 22.0 -byte main::b#2 19.25 +char main::a +char main::a#1 // 22.0 +char main::a#2 // 19.75 +char main::b +char main::b#1 // 22.0 +char main::b#2 // 19.25 Initial phi equivalence classes [ main::a#2 main::a#1 ] @@ -273,14 +273,14 @@ Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 22.0 -byte main::a#2 a zp[1]:2 19.75 -byte main::b -byte main::b#1 reg byte x 22.0 -byte main::b#2 reg byte x 19.25 +char main::a +char main::a#1 // a zp[1]:2 22.0 +char main::a#2 // a zp[1]:2 19.75 +char main::b +char main::b#1 // reg byte x 22.0 +char main::b#2 // reg byte x 19.25 zp[1]:2 [ main::a#2 main::a#1 ] reg byte x [ main::b#2 main::b#1 ] diff --git a/src/test/ref/euclid-problem.sym b/src/test/ref/euclid-problem.sym index f16577e4d..d35c6c21f 100644 --- a/src/test/ref/euclid-problem.sym +++ b/src/test/ref/euclid-problem.sym @@ -1,11 +1,11 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 22.0 -byte main::a#2 a zp[1]:2 19.75 -byte main::b -byte main::b#1 reg byte x 22.0 -byte main::b#2 reg byte x 19.25 +char main::a +char main::a#1 // a zp[1]:2 22.0 +char main::a#2 // a zp[1]:2 19.75 +char main::b +char main::b#1 // reg byte x 22.0 +char main::b#2 // reg byte x 19.25 zp[1]:2 [ main::a#2 main::a#1 ] reg byte x [ main::b#2 main::b#1 ] diff --git a/src/test/ref/examples/atari2600/atari2600-demo.cfg b/src/test/ref/examples/atari2600/atari2600-demo.cfg index b8c3ce76d..5c9989262 100644 --- a/src/test/ref/examples/atari2600/atari2600-demo.cfg +++ b/src/test/ref/examples/atari2600/atari2600-demo.cfg @@ -1,27 +1,27 @@ void main() main: scope:[main] from - [0] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 - [1] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 - [2] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa - [3] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 + [0] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 + [1] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 + [2] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa + [3] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 to:main::@1 main::@1: scope:[main] from main main::@9 [4] idx#1 = phi( main/0, main::@9/idx#0 ) to:main::@2 main::@2: scope:[main] from main::@1 - [5] *((byte*)TIA) = 2 - [6] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 - [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [9] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [10] *((byte*)TIA) = 0 + [5] *((char *)TIA) = 2 + [6] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 + [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [9] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [10] *((char *)TIA) = 0 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 - [11] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 + [11] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 + [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [13] main::c#0 = SINTABLE[idx#1] [14] idx#0 = ++ idx#1 to:main::@6 @@ -31,27 +31,27 @@ main::@6: scope:[main] from main::@5 main::@7 [16] if(main::i#2<$c0) goto main::@7 to:main::@8 main::@8: scope:[main] from main::@6 - [17] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [18] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 - [19] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 - [20] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 + [17] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [18] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 + [19] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + [20] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 to:main::@9 main::@9: scope:[main] from main::@10 main::@8 - [21] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 + [21] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 to:main::@1 main::@10: scope:[main] from main::@9 - [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@9 main::@7: scope:[main] from main::@6 - [23] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 - [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 - [26] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 - [27] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 - [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 + [23] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 + [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 + [26] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 + [27] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 + [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 [29] main::c#1 = ++ main::c#2 [30] main::i#1 = ++ main::i#2 to:main::@6 main::@4: scope:[main] from main::@3 - [31] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [31] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@3 diff --git a/src/test/ref/examples/atari2600/atari2600-demo.log b/src/test/ref/examples/atari2600/atari2600-demo.log index e4e8e76ff..17a185c50 100644 --- a/src/test/ref/examples/atari2600/atari2600-demo.log +++ b/src/test/ref/examples/atari2600/atari2600-demo.log @@ -1,17 +1,17 @@ Fixing struct type size struct MOS6532_RIOT to 24 Fixing struct type SIZE_OF struct MOS6532_RIOT to 24 Fixing struct type SIZE_OF struct MOS6532_RIOT to 24 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 idx#12 = phi( __start::@1/idx#11 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 to:main::@1 main::@1: scope:[main] from main main::@9 idx#10 = phi( main/idx#12, main::@9/idx#13 ) @@ -20,25 +20,25 @@ main::@1: scope:[main] from main main::@9 to:main::@return main::@2: scope:[main] from main::@1 idx#14 = phi( main::@1/idx#10 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 - *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 + *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 idx#9 = phi( main::@2/idx#14, main::@4/idx#15 ) - main::$2 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) + main::$2 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) if(main::$2) goto main::@4 to:main::@5 main::@4: scope:[main] from main::@3 idx#15 = phi( main::@3/idx#9 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@3 main::@5: scope:[main] from main::@3 idx#5 = phi( main::@3/idx#9 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 main::c#0 = SINTABLE[idx#5] idx#0 = ++ idx#5 main::i#0 = 0 @@ -54,30 +54,30 @@ main::@7: scope:[main] from main::@6 idx#19 = phi( main::@6/idx#18 ) main::i#3 = phi( main::@6/main::i#2 ) main::c#2 = phi( main::@6/main::c#3 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 main::c#1 = ++ main::c#2 main::i#1 = ++ main::i#3 to:main::@6 main::@8: scope:[main] from main::@6 idx#17 = phi( main::@6/idx#18 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 - *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 to:main::@9 main::@9: scope:[main] from main::@10 main::@8 idx#13 = phi( main::@10/idx#16, main::@8/idx#17 ) - main::$3 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) + main::$3 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) if(main::$3) goto main::@10 to:main::@1 main::@10: scope:[main] from main::@9 idx#16 = phi( main::@9/idx#13 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@9 main::@return: scope:[main] from main::@1 idx#6 = phi( main::@1/idx#10 ) @@ -93,7 +93,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#11 = phi( __start::__init1/idx#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#7 = phi( __start::@1/idx#1 ) @@ -106,102 +106,102 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF = 8 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 = $d -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 = $e -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 = $f -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC = 0 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 -constant byte OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 -constant byte OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 -constant struct MOS6532_RIOT* const RIOT = (struct MOS6532_RIOT*)$280 -constant const byte* SINTABLE[$100] = kickasm {{ .fill $100, round(127.5+127.5*sin(2*PI*i/256)) +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF = 8 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 = $d +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 = $e +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 = $f +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC = 0 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 +__constant char OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 +__constant char OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 +__constant struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *)$280 +__constant const char SINTABLE[$100] = kickasm {{ .fill $100, round(127.5+127.5*sin(2*PI*i/256)) }} -constant struct ATARI_TIA_WRITE* const TIA = (struct ATARI_TIA_WRITE*)0 +__constant struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *)0 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 -Adding number conversion cast (unumber) $a0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 -Adding number conversion cast (unumber) $55 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 -Adding number conversion cast (unumber) $aa in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa -Adding number conversion cast (unumber) $55 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 -Adding number conversion cast (unumber) 2 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 -Adding number conversion cast (unumber) $29*$4c/$40 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 -Adding number conversion cast (unumber) 0 in main::$2 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 +Adding number conversion cast (unumber) $a0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 +Adding number conversion cast (unumber) $55 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 +Adding number conversion cast (unumber) $aa in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa +Adding number conversion cast (unumber) $55 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 +Adding number conversion cast (unumber) 2 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 +Adding number conversion cast (unumber) $29*$4c/$40 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 +Adding number conversion cast (unumber) 0 in main::$2 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 Adding number conversion cast (unumber) $c0 in main::$0 = main::i#2 < $c0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 2 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -Adding number conversion cast (unumber) $1b*$4c/$40 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 -Adding number conversion cast (unumber) 0 in main::$3 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 2 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 +Adding number conversion cast (unumber) $1b*$4c/$40 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 +Adding number conversion cast (unumber) 0 in main::$3 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = (unumber)$a0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = (unumber)$55 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = (unumber)$aa -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = (unumber)$55 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)2 -Inlining cast *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$29*$4c/$40 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)2 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = (unumber)0 -Inlining cast *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$1b*$4c/$40 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = (unumber)$a0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = (unumber)$55 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = (unumber)$aa +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = (unumber)$55 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)2 +Inlining cast *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$29*$4c/$40 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)2 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = (unumber)0 +Inlining cast *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$1b*$4c/$40 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct ATARI_TIA_WRITE*) 0 -Simplifying constant pointer cast (struct MOS6532_RIOT*) 640 +Simplifying constant pointer cast (struct ATARI_TIA_WRITE *) 0 +Simplifying constant pointer cast (struct MOS6532_RIOT *) 640 Simplifying constant integer cast $a0 Simplifying constant integer cast $55 Simplifying constant integer cast $aa @@ -222,25 +222,25 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $c0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $c0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#1 = idx#14 idx#10 idx#6 Alias idx#15 = idx#9 idx#5 @@ -258,20 +258,20 @@ Identical Phi Values idx#13 idx#17 Identical Phi Values idx#3 idx#1 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$1 [7] if(0!=1) goto main::@2 -Simple Condition main::$2 [16] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 +Simple Condition main::$2 [16] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 Simple Condition main::$0 [24] if(main::i#2<$c0) goto main::@7 -Simple Condition main::$3 [39] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 +Simple Condition main::$3 [39] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [9] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$29*$4c/$40 -Constant right-side identified [36] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$1b*$4c/$40 +Constant right-side identified [9] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$29*$4c/$40 +Constant right-side identified [36] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)$1b*$4c/$40 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 Constant idx#11 = 0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [7] if(0!=1) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero (byte*)TIA in [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 -Simplifying expression containing zero (byte*)TIA in [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 +Simplifying expression containing zero (char *)TIA in [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 +Simplifying expression containing zero (char *)TIA in [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -289,15 +289,15 @@ Inlining constant with var siblings idx#11 Constant inlined main::i#0 = 0 Constant inlined idx#11 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) $4c -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $1b -Finalized unsigned number type (byte) $4c -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) $4c +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $1b +Finalized unsigned number type (char) $4c +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $29*$4c/$40 Simplifying constant integer cast $1b*$4c/$40 @@ -317,27 +317,27 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 - [1] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 - [2] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa - [3] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 + [0] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 + [1] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 + [2] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa + [3] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 to:main::@1 main::@1: scope:[main] from main main::@9 [4] idx#1 = phi( main/0, main::@9/idx#0 ) to:main::@2 main::@2: scope:[main] from main::@1 - [5] *((byte*)TIA) = 2 - [6] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 - [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [9] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [10] *((byte*)TIA) = 0 + [5] *((char *)TIA) = 2 + [6] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 + [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [9] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [10] *((char *)TIA) = 0 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 - [11] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 + [11] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 + [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [13] main::c#0 = SINTABLE[idx#1] [14] idx#0 = ++ idx#1 to:main::@6 @@ -347,44 +347,44 @@ main::@6: scope:[main] from main::@5 main::@7 [16] if(main::i#2<$c0) goto main::@7 to:main::@8 main::@8: scope:[main] from main::@6 - [17] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [18] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 - [19] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 - [20] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 + [17] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [18] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 + [19] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + [20] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 to:main::@9 main::@9: scope:[main] from main::@10 main::@8 - [21] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 + [21] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 to:main::@1 main::@10: scope:[main] from main::@9 - [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@9 main::@7: scope:[main] from main::@6 - [23] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 - [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 - [26] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 - [27] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 - [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 + [23] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 + [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 + [26] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 + [27] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 + [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 [29] main::c#1 = ++ main::c#2 [30] main::i#1 = ++ main::i#2 to:main::@6 main::@4: scope:[main] from main::@3 - [31] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [31] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@3 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#0 6.588235294117648 -byte idx#1 11.181818181818182 +char idx +char idx#0 // 6.588235294117648 +char idx#1 // 11.181818181818182 void main() -byte main::c -byte main::c#0 11.0 -byte main::c#1 101.0 -byte main::c#2 89.75 -byte main::i -byte main::i#1 202.0 -byte main::i#2 33.666666666666664 +char main::c +char main::c#0 // 11.0 +char main::c#1 // 101.0 +char main::c#2 // 89.75 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 33.666666666666664 Initial phi equivalence classes [ idx#1 idx#0 ] @@ -398,49 +398,49 @@ Allocated zp[1]:128 [ idx#1 idx#0 ] Allocated zp[1]:129 [ main::i#2 main::i#1 ] Allocated zp[1]:130 [ main::c#2 main::c#0 main::c#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)TIA) = 2 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [0] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)TIA) = 2 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:128 [ idx#1 idx#0 ] -Statement [6] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [9] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [10] *((byte*)TIA) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [11] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [18] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [21] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [23] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 main::i#2 main::c#2 ] ( [ idx#0 main::i#2 main::c#2 ] { } ) always clobbers reg byte a +Statement [6] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [9] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [10] *((char *)TIA) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [11] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [17] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [18] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [19] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [20] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [21] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [23] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 main::i#2 main::c#2 ] ( [ idx#0 main::i#2 main::c#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:129 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:130 [ main::c#2 main::c#0 main::c#1 ] -Statement [31] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [0] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)TIA) = 2 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [6] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [9] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [10] *((byte*)TIA) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [11] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [18] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [21] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a -Statement [23] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 main::i#2 main::c#2 ] ( [ idx#0 main::i#2 main::c#2 ] { } ) always clobbers reg byte a -Statement [31] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [31] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [0] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)TIA) = 2 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [6] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [9] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [10] *((char *)TIA) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [11] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a +Statement [17] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [18] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [19] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [20] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [21] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 ] ( [ idx#0 ] { } ) always clobbers reg byte a +Statement [23] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#0 main::i#2 main::c#2 ] ( [ idx#0 main::i#2 main::c#2 ] { } ) always clobbers reg byte a +Statement [31] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ idx#1 ] ( [ idx#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:128 [ idx#1 idx#0 ] : zp[1]:128 , reg byte x , reg byte y , Potential registers zp[1]:129 [ main::i#2 main::i#1 ] : zp[1]:129 , reg byte x , reg byte y , Potential registers zp[1]:130 [ main::c#2 main::c#0 main::c#1 ] : zp[1]:130 , reg byte x , reg byte y , @@ -498,16 +498,16 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 -- _deref_pbuc1=vbuc2 + // [0] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 -- _deref_pbuc1=vbuc2 lda #$a0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 - // [1] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 -- _deref_pbuc1=vbuc2 + // [1] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 -- _deref_pbuc1=vbuc2 lda #$55 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 - // [2] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa -- _deref_pbuc1=vbuc2 + // [2] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa -- _deref_pbuc1=vbuc2 lda #$aa sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 - // [3] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 -- _deref_pbuc1=vbuc2 + // [3] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 -- _deref_pbuc1=vbuc2 lda #$55 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF // [4] phi from main to main::@1 [phi:main->main::@1] @@ -521,30 +521,30 @@ main: { jmp __b2 // main::@2 __b2: - // [5] *((byte*)TIA) = 2 -- _deref_pbuc1=vbuc2 + // [5] *((char *)TIA) = 2 -- _deref_pbuc1=vbuc2 // Vertical Sync // here we generate the signal that tells the TV to move the beam to the top of // the screen so we can start the next frame of video. // The Sync Signal must be on for 3 scanlines. lda #2 sta TIA - // [6] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 -- _deref_pbuc1=vbuc2 + // [6] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 -- _deref_pbuc1=vbuc2 // D1=1, turns on Vertical Sync signal lda #$29*$4c/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T - // [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Set timer to wait 41 lines lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Wait for Sync - halts CPU until end of 1st scanline of VSYNC lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [9] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [9] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 2nd scanline of VSYNC lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [10] *((byte*)TIA) = 0 -- _deref_pbuc1=vbuc2 + // [10] *((char *)TIA) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 3rd scanline of VSYNC lda #0 sta TIA @@ -552,13 +552,13 @@ main: { // Wait for the timer to run out // main::@3 __b3: - // [11] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 + // [11] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b4 jmp __b5 // main::@5 __b5: - // [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 // Screen - display logic // Update the registers in TIA (the video chip) in order to generate what the player sees. // For now we're just going to output 192 colored scanlines lines so we have something to see. @@ -584,19 +584,19 @@ main: { jmp __b8 // main::@8 __b8: - // [17] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Start OverScan lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [18] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 + // [18] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 // Wait for SYNC (halts CPU until end of scanline) lda #2 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK - // [19] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 // D1=1 turns image output off lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK - // [20] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 -- _deref_pbuc1=vbuc2 + // [20] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 -- _deref_pbuc1=vbuc2 // Set background color to black lda #$1b*$4c/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T @@ -604,7 +604,7 @@ main: { // Wait for the timer to run out // main::@9 __b9: - // [21] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 -- 0_neq__deref_pbuc1_then_la1 + // [21] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b10 // [4] phi from main::@9 to main::@1 [phi:main::@9->main::@1] @@ -613,26 +613,26 @@ main: { jmp __b1 // main::@10 __b10: - // [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b9 // main::@7 __b7: - // [23] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [23] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 -- _deref_pbuc1=vbuxx + // [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 -- _deref_pbuc1=vbuxx // Wait for SYNC (halts CPU until end of scanline) stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK - // [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 -- _deref_pbuc1=vbuxx + // [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 -- _deref_pbuc1=vbuxx // Set background color stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 - // [26] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 -- _deref_pbuc1=vbuxx + // [26] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 - // [27] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 -- _deref_pbuc1=vbuxx + // [27] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 - // [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 -- _deref_pbuc1=vbuxx + // [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE // [29] main::c#1 = ++ main::c#2 -- vbuxx=_inc_vbuxx inx @@ -645,7 +645,7 @@ main: { jmp __b6 // main::@4 __b4: - // [31] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [31] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b3 @@ -683,31 +683,31 @@ Succesful ASM optimization Pass5UnusedLabelElimination Replacing instruction ldy #0 with TAY FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF = 8 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 = $d -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 = $e -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 = $f -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 -constant byte OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 -constant byte OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 -constant struct MOS6532_RIOT* const RIOT = (struct MOS6532_RIOT*) 640 -constant const byte* SINTABLE[$100] = kickasm {{ .fill $100, round(127.5+127.5*sin(2*PI*i/256)) +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF = 8 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 = $d +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 = $e +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 = $f +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 +__constant char OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 +__constant char OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 +__constant struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *) 640 +__constant const char SINTABLE[$100] = kickasm {{ .fill $100, round(127.5+127.5*sin(2*PI*i/256)) }} -constant struct ATARI_TIA_WRITE* const TIA = (struct ATARI_TIA_WRITE*) 0 -byte idx -byte idx#0 idx zp[1]:128 6.588235294117648 -byte idx#1 idx zp[1]:128 11.181818181818182 +__constant struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *) 0 +char idx +char idx#0 // idx zp[1]:128 6.588235294117648 +char idx#1 // idx zp[1]:128 11.181818181818182 void main() -byte main::c -byte main::c#0 reg byte x 11.0 -byte main::c#1 reg byte x 101.0 -byte main::c#2 reg byte x 89.75 -byte main::i -byte main::i#1 reg byte y 202.0 -byte main::i#2 reg byte y 33.666666666666664 +char main::c +char main::c#0 // reg byte x 11.0 +char main::c#1 // reg byte x 101.0 +char main::c#2 // reg byte x 89.75 +char main::i +char main::i#1 // reg byte y 202.0 +char main::i#2 // reg byte y 33.666666666666664 zp[1]:128 [ idx#1 idx#0 ] reg byte y [ main::i#2 main::i#1 ] @@ -755,19 +755,19 @@ Score: 7879 // main main: { // TIA->PF0 = 0b10100000 - // [0] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 -- _deref_pbuc1=vbuc2 + // [0] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = $a0 -- _deref_pbuc1=vbuc2 lda #$a0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 // TIA->PF1 = 0b01010101 - // [1] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 -- _deref_pbuc1=vbuc2 + // [1] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = $55 -- _deref_pbuc1=vbuc2 lda #$55 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 // TIA->PF2 = 0b10101010 - // [2] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa -- _deref_pbuc1=vbuc2 + // [2] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = $aa -- _deref_pbuc1=vbuc2 lda #$aa sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 // TIA->COLUPF = 0x55 - // [3] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 -- _deref_pbuc1=vbuc2 + // [3] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF) = $55 -- _deref_pbuc1=vbuc2 lda #$55 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF // [4] phi from main to main::@1 [phi:main->main::@1] @@ -778,7 +778,7 @@ main: { // main::@2 __b2: // TIA->VSYNC = 2 - // [5] *((byte*)TIA) = 2 -- _deref_pbuc1=vbuc2 + // [5] *((char *)TIA) = 2 -- _deref_pbuc1=vbuc2 // Vertical Sync // here we generate the signal that tells the TV to move the beam to the top of // the screen so we can start the next frame of video. @@ -786,35 +786,35 @@ main: { lda #2 sta TIA // RIOT->TIM64T = (41*76)/64 - // [6] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 -- _deref_pbuc1=vbuc2 + // [6] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*$4c/$40 -- _deref_pbuc1=vbuc2 // D1=1, turns on Vertical Sync signal lda #$29*$4c/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T // TIA->WSYNC = 0 - // [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Set timer to wait 41 lines lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Wait for Sync - halts CPU until end of 1st scanline of VSYNC sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [9] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [9] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 2nd scanline of VSYNC sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->VSYNC = 0 - // [10] *((byte*)TIA) = 0 -- _deref_pbuc1=vbuc2 + // [10] *((char *)TIA) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 3rd scanline of VSYNC sta TIA // Wait for the timer to run out // main::@3 __b3: // while(RIOT->INTIM) - // [11] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 + // [11] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b4 // main::@5 // TIA->VBLANK = 0 - // [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 // Screen - display logic // Update the registers in TIA (the video chip) in order to generate what the player sees. // For now we're just going to output 192 colored scanlines lines so we have something to see. @@ -839,22 +839,22 @@ main: { bcc __b7 // main::@8 // TIA->WSYNC = 0 - // [17] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Start OverScan lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->VBLANK = 2 - // [18] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 + // [18] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 // Wait for SYNC (halts CPU until end of scanline) lda #2 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK // TIA->COLUBK = 0 - // [19] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 // D1=1 turns image output off lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK // RIOT->TIM64T = (27*76)/64 - // [20] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 -- _deref_pbuc1=vbuc2 + // [20] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*$4c/$40 -- _deref_pbuc1=vbuc2 // Set background color to black lda #$1b*$4c/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T @@ -862,7 +862,7 @@ main: { // main::@9 __b9: // while(RIOT->INTIM) - // [21] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 -- 0_neq__deref_pbuc1_then_la1 + // [21] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@10 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b10 // [4] phi from main::@9 to main::@1 [phi:main::@9->main::@1] @@ -871,31 +871,31 @@ main: { // main::@10 __b10: // TIA->WSYNC = 0 - // [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b9 // main::@7 __b7: - // [23] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [23] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->COLUBK = c - // [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 -- _deref_pbuc1=vbuxx + // [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::c#2 -- _deref_pbuc1=vbuxx // Wait for SYNC (halts CPU until end of scanline) stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK // TIA->PF0 = c - // [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 -- _deref_pbuc1=vbuxx + // [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0) = main::c#2 -- _deref_pbuc1=vbuxx // Set background color stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 // TIA->PF1 = c - // [26] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 -- _deref_pbuc1=vbuxx + // [26] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1) = main::c#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 // TIA->PF2 = c - // [27] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 -- _deref_pbuc1=vbuxx + // [27] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2) = main::c#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 // TIA->HMOVE = c - // [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 -- _deref_pbuc1=vbuxx + // [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = main::c#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE // c++; // [29] main::c#1 = ++ main::c#2 -- vbuxx=_inc_vbuxx @@ -910,7 +910,7 @@ main: { // main::@4 __b4: // TIA->WSYNC = 0 - // [31] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [31] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b3 diff --git a/src/test/ref/examples/atari2600/atari2600-demo.sym b/src/test/ref/examples/atari2600/atari2600-demo.sym index fbbcd96d3..8cabf5618 100644 --- a/src/test/ref/examples/atari2600/atari2600-demo.sym +++ b/src/test/ref/examples/atari2600/atari2600-demo.sym @@ -1,28 +1,28 @@ -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF = 8 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 = $d -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 = $e -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 = $f -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 -constant byte OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 -constant byte OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 -constant struct MOS6532_RIOT* const RIOT = (struct MOS6532_RIOT*) 640 -constant const byte* SINTABLE[$100] = kickasm {{ .fill $100, round(127.5+127.5*sin(2*PI*i/256)) +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUPF = 8 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF0 = $d +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF1 = $e +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_PF2 = $f +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 +__constant char OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 +__constant char OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 +__constant struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *) 640 +__constant const char SINTABLE[$100] = kickasm {{ .fill $100, round(127.5+127.5*sin(2*PI*i/256)) }} -constant struct ATARI_TIA_WRITE* const TIA = (struct ATARI_TIA_WRITE*) 0 -byte idx -byte idx#0 idx zp[1]:128 6.588235294117648 -byte idx#1 idx zp[1]:128 11.181818181818182 +__constant struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *) 0 +char idx +char idx#0 // idx zp[1]:128 6.588235294117648 +char idx#1 // idx zp[1]:128 11.181818181818182 void main() -byte main::c -byte main::c#0 reg byte x 11.0 -byte main::c#1 reg byte x 101.0 -byte main::c#2 reg byte x 89.75 -byte main::i -byte main::i#1 reg byte y 202.0 -byte main::i#2 reg byte y 33.666666666666664 +char main::c +char main::c#0 // reg byte x 11.0 +char main::c#1 // reg byte x 101.0 +char main::c#2 // reg byte x 89.75 +char main::i +char main::i#1 // reg byte y 202.0 +char main::i#2 // reg byte y 33.666666666666664 zp[1]:128 [ idx#1 idx#0 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/examples/atari2600/atari2600-sprites.cfg b/src/test/ref/examples/atari2600/atari2600-sprites.cfg index 2e90f9ef4..c7c3931d3 100644 --- a/src/test/ref/examples/atari2600/atari2600-sprites.cfg +++ b/src/test/ref/examples/atari2600/atari2600-sprites.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,35 +17,35 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 asm { cld } - [6] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 - [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af - [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 + [6] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 + [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af + [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 to:main::@1 main::@1: scope:[main] from main main::@13 [9] idx2#1 = phi( main/$39, main::@13/idx2#0 ) [9] idx#1 = phi( main/0, main::@13/idx#0 ) to:main::@2 main::@2: scope:[main] from main::@1 - [10] *((byte*)TIA) = 2 - [11] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 - [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [14] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [15] *((byte*)TIA) = 0 + [10] *((char *)TIA) = 2 + [11] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 + [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [14] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [15] *((char *)TIA) = 0 asm { ldap0_xpos staTIA_WSYNC sec !: sbc#$f bcs!- eor#7 asl asl asl asl staTIA_HMP0 staTIA_RESP0 } [17] p0_xpos = SINTABLE_160[idx#1] [18] idx#0 = ++ idx#1 [19] p0_ypos#0 = SINTABLE_160[idx2#1] [20] idx2#0 = ++ idx2#1 - [21] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 + [21] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 - [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 + [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 - [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 + [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 to:main::@6 main::@6: scope:[main] from main::@10 main::@5 [26] main::p0_idx#4 = phi( main::@10/main::p0_idx#8, main::@5/0 ) @@ -53,20 +53,20 @@ main::@6: scope:[main] from main::@10 main::@5 [27] if(main::i#2<$c0) goto main::@7 to:main::@8 main::@8: scope:[main] from main::@6 - [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [29] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 - [30] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 - [31] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 + [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [29] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 + [30] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + [31] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 to:main::@13 main::@13: scope:[main] from main::@14 main::@8 - [32] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 + [32] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 to:main::@1 main::@14: scope:[main] from main::@13 - [33] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [33] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@13 main::@7: scope:[main] from main::@6 - [34] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [35] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 + [34] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [35] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 [36] if(0!=main::p0_idx#4) goto main::@9 to:main::@11 main::@11: scope:[main] from main::@7 @@ -81,12 +81,12 @@ main::@10: scope:[main] from main::@11 main::@12 main::@15 main::@9 to:main::@6 main::@9: scope:[main] from main::@7 [41] main::gfx#0 = SPRITE_C[main::p0_idx#4] - [42] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 + [42] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 [43] if(main::gfx#0==0) goto main::@10 to:main::@12 main::@12: scope:[main] from main::@9 [44] main::p0_idx#3 = ++ main::p0_idx#4 to:main::@10 main::@4: scope:[main] from main::@3 - [45] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [45] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@3 diff --git a/src/test/ref/examples/atari2600/atari2600-sprites.log b/src/test/ref/examples/atari2600/atari2600-sprites.log index d96fbf992..4da5dbfe4 100644 --- a/src/test/ref/examples/atari2600/atari2600-sprites.log +++ b/src/test/ref/examples/atari2600/atari2600-sprites.log @@ -2,7 +2,7 @@ Fixing struct type size struct MOS6532_RIOT to 24 Fixing struct type SIZE_OF struct MOS6532_RIOT to 24 Fixing struct type SIZE_OF struct MOS6532_RIOT to 24 Setting inferred volatile on symbol affected by address-of: p0_xpos in asm { ldap0_xpos staTIA_WSYNC sec !: sbc#$f bcs!- eor#7 asl asl asl asl staTIA_HMP0 staTIA_RESP0 } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -12,9 +12,9 @@ main: scope:[main] from __start::@1 idx2#11 = phi( __start::@1/idx2#10 ) idx#11 = phi( __start::@1/idx#10 ) asm { cld } - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 to:main::@1 main::@1: scope:[main] from main main::@15 p0_ypos#10 = phi( main/p0_ypos#12, main::@15/p0_ypos#13 ) @@ -26,39 +26,39 @@ main::@1: scope:[main] from main main::@15 main::@2: scope:[main] from main::@1 idx2#5 = phi( main::@1/idx2#9 ) idx#5 = phi( main::@1/idx#9 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 - *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 + *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 asm { ldap0_xpos staTIA_WSYNC sec !: sbc#$f bcs!- eor#7 asl asl asl asl staTIA_HMP0 staTIA_RESP0 } p0_xpos = SINTABLE_160[idx#5] idx#0 = ++ idx#5 p0_ypos#0 = SINTABLE_160[idx2#5] idx2#0 = ++ idx2#5 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 idx2#18 = phi( main::@2/idx2#0, main::@4/idx2#23 ) idx#18 = phi( main::@2/idx#0, main::@4/idx#23 ) p0_ypos#19 = phi( main::@2/p0_ypos#0, main::@4/p0_ypos#23 ) - main::$5 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) + main::$5 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) if(main::$5) goto main::@4 to:main::@5 main::@4: scope:[main] from main::@3 idx2#23 = phi( main::@3/idx2#18 ) idx#23 = phi( main::@3/idx#18 ) p0_ypos#23 = phi( main::@3/p0_ypos#19 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@3 main::@5: scope:[main] from main::@3 idx2#17 = phi( main::@3/idx2#18 ) idx#17 = phi( main::@3/idx#18 ) p0_ypos#16 = phi( main::@3/p0_ypos#19 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 main::p0_idx#0 = 0 main::i#0 = 1 to:main::@6 @@ -77,8 +77,8 @@ main::@7: scope:[main] from main::@6 p0_ypos#9 = phi( main::@6/p0_ypos#14 ) main::p0_idx#4 = phi( main::@6/main::p0_idx#7 ) main::i#3 = phi( main::@6/main::i#2 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#3 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#3 main::$6 = 0 != main::p0_idx#4 if(main::$6) goto main::@9 to:main::@12 @@ -86,10 +86,10 @@ main::@8: scope:[main] from main::@6 p0_ypos#18 = phi( main::@6/p0_ypos#14 ) idx2#14 = phi( main::@6/idx2#15 ) idx#14 = phi( main::@6/idx#15 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 - *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 to:main::@15 main::@9: scope:[main] from main::@7 idx2#25 = phi( main::@7/idx2#24 ) @@ -98,7 +98,7 @@ main::@9: scope:[main] from main::@7 main::i#9 = phi( main::@7/main::i#3 ) main::p0_idx#5 = phi( main::@7/main::p0_idx#4 ) main::gfx#0 = SPRITE_C[main::p0_idx#5] - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 main::$3 = main::gfx#0 == 0 if(main::$3) goto main::@11 to:main::@14 @@ -146,14 +146,14 @@ main::@15: scope:[main] from main::@16 main::@8 p0_ypos#13 = phi( main::@16/p0_ypos#17, main::@8/p0_ypos#18 ) idx2#12 = phi( main::@16/idx2#13, main::@8/idx2#14 ) idx#12 = phi( main::@16/idx#13, main::@8/idx#14 ) - main::$7 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) + main::$7 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) if(main::$7) goto main::@16 to:main::@1 main::@16: scope:[main] from main::@15 p0_ypos#17 = phi( main::@15/p0_ypos#13 ) idx2#13 = phi( main::@15/idx2#12 ) idx#13 = phi( main::@15/idx#12 ) - *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@15 main::@return: scope:[main] from main::@1 idx2#6 = phi( main::@1/idx2#9 ) @@ -178,7 +178,7 @@ __start::@1: scope:[__start] from __start::__init1 idx2#10 = phi( __start::__init1/idx2#2 ) p0_ypos#11 = phi( __start::__init1/p0_ypos#2 ) idx#10 = phi( __start::__init1/idx#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx2#7 = phi( __start::@1/idx2#1 ) @@ -199,202 +199,202 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte CYCLES_PER_SCANLINE = $4c -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 = 6 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 = $1b -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 = 4 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC = 0 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 -constant byte OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 -constant byte OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 -constant struct MOS6532_RIOT* const RIOT = (struct MOS6532_RIOT*)$280 -constant const byte* SINTABLE_160[$100] = kickasm {{ .fill $100, 10+round(64.5+64.5*sin(2*PI*i/256)) +__constant const char CYCLES_PER_SCANLINE = $4c +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 = 6 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 = $1b +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 = 4 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC = 0 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 +__constant char OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 +__constant char OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 +__constant struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *)$280 +__constant const char SINTABLE_160[$100] = kickasm {{ .fill $100, 10+round(64.5+64.5*sin(2*PI*i/256)) }} -constant byte* SPRITE_C[] = { 0, $18, $18, $18, $18, $3c, $3c, $3c, $3c, $66, $66, $66, $66, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $66, $66, $66, $66, $3c, $3c, $3c, $3c, $18, $18, $18, $18, 0 } -constant struct ATARI_TIA_WRITE* const TIA = (struct ATARI_TIA_WRITE*)0 -constant byte* const TIA_HMP0 = (byte*)$20 -constant byte* const TIA_RESP0 = (byte*)$10 -constant byte* const TIA_WSYNC = (byte*)2 +__constant char SPRITE_C[] = { 0, $18, $18, $18, $18, $3c, $3c, $3c, $3c, $66, $66, $66, $66, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $66, $66, $66, $66, $3c, $3c, $3c, $3c, $18, $18, $18, $18, 0 } +__constant struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *)0 +__constant char * const TIA_HMP0 = (char *)$20 +__constant char * const TIA_RESP0 = (char *)$10 +__constant char * const TIA_WSYNC = (char *)2 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 -byte idx2 -byte idx2#0 -byte idx2#1 -byte idx2#10 -byte idx2#11 -byte idx2#12 -byte idx2#13 -byte idx2#14 -byte idx2#15 -byte idx2#16 -byte idx2#17 -byte idx2#18 -byte idx2#19 -byte idx2#2 -byte idx2#20 -byte idx2#21 -byte idx2#22 -byte idx2#23 -byte idx2#24 -byte idx2#25 -byte idx2#3 -byte idx2#4 -byte idx2#5 -byte idx2#6 -byte idx2#7 -byte idx2#8 -byte idx2#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 +char idx2 +char idx2#0 +char idx2#1 +char idx2#10 +char idx2#11 +char idx2#12 +char idx2#13 +char idx2#14 +char idx2#15 +char idx2#16 +char idx2#17 +char idx2#18 +char idx2#19 +char idx2#2 +char idx2#20 +char idx2#21 +char idx2#22 +char idx2#23 +char idx2#24 +char idx2#25 +char idx2#3 +char idx2#4 +char idx2#5 +char idx2#6 +char idx2#7 +char idx2#8 +char idx2#9 void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -byte main::gfx -byte main::gfx#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte main::p0_idx -byte main::p0_idx#0 -byte main::p0_idx#1 -byte main::p0_idx#2 -byte main::p0_idx#3 -byte main::p0_idx#4 -byte main::p0_idx#5 -byte main::p0_idx#6 -byte main::p0_idx#7 -byte main::p0_idx#8 -byte main::p0_idx#9 -volatile byte p0_xpos loadstore -byte p0_ypos -byte p0_ypos#0 -byte p0_ypos#1 -byte p0_ypos#10 -byte p0_ypos#11 -byte p0_ypos#12 -byte p0_ypos#13 -byte p0_ypos#14 -byte p0_ypos#15 -byte p0_ypos#16 -byte p0_ypos#17 -byte p0_ypos#18 -byte p0_ypos#19 -byte p0_ypos#2 -byte p0_ypos#20 -byte p0_ypos#21 -byte p0_ypos#22 -byte p0_ypos#23 -byte p0_ypos#24 -byte p0_ypos#3 -byte p0_ypos#4 -byte p0_ypos#5 -byte p0_ypos#6 -byte p0_ypos#7 -byte p0_ypos#8 -byte p0_ypos#9 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +bool main::$6 +bool main::$7 +char main::gfx +char main::gfx#0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +char main::p0_idx +char main::p0_idx#0 +char main::p0_idx#1 +char main::p0_idx#2 +char main::p0_idx#3 +char main::p0_idx#4 +char main::p0_idx#5 +char main::p0_idx#6 +char main::p0_idx#7 +char main::p0_idx#8 +char main::p0_idx#9 +__loadstore volatile char p0_xpos +char p0_ypos +char p0_ypos#0 +char p0_ypos#1 +char p0_ypos#10 +char p0_ypos#11 +char p0_ypos#12 +char p0_ypos#13 +char p0_ypos#14 +char p0_ypos#15 +char p0_ypos#16 +char p0_ypos#17 +char p0_ypos#18 +char p0_ypos#19 +char p0_ypos#2 +char p0_ypos#20 +char p0_ypos#21 +char p0_ypos#22 +char p0_ypos#23 +char p0_ypos#24 +char p0_ypos#3 +char p0_ypos#4 +char p0_ypos#5 +char p0_ypos#6 +char p0_ypos#7 +char p0_ypos#8 +char p0_ypos#9 -Adding number conversion cast (unumber) $f0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 -Adding number conversion cast (unumber) $af in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af -Adding number conversion cast (unumber) 5 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 -Adding number conversion cast (unumber) 2 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 -Adding number conversion cast (unumber) $29*CYCLES_PER_SCANLINE/$40 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 -Adding number conversion cast (unumber) $29 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) $29*CYCLES_PER_SCANLINE/$40 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 -Adding number conversion cast (unumber) 0 in main::$5 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 +Adding number conversion cast (unumber) $f0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 +Adding number conversion cast (unumber) $af in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af +Adding number conversion cast (unumber) 5 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 +Adding number conversion cast (unumber) 2 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 +Adding number conversion cast (unumber) $29*CYCLES_PER_SCANLINE/$40 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 +Adding number conversion cast (unumber) $29 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) $29*CYCLES_PER_SCANLINE/$40 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 +Adding number conversion cast (unumber) 0 in main::$5 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 Adding number conversion cast (unumber) $c0 in main::$0 = main::i#2 < $c0 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 Adding number conversion cast (unumber) 0 in main::$6 = 0 != main::p0_idx#4 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -Adding number conversion cast (unumber) 2 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -Adding number conversion cast (unumber) $1b*CYCLES_PER_SCANLINE/$40 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 -Adding number conversion cast (unumber) $1b in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) $1b*CYCLES_PER_SCANLINE/$40 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 2 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 +Adding number conversion cast (unumber) $1b*CYCLES_PER_SCANLINE/$40 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 +Adding number conversion cast (unumber) $1b in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) $1b*CYCLES_PER_SCANLINE/$40 Adding number conversion cast (unumber) 0 in main::$3 = main::gfx#0 == 0 Adding number conversion cast (unumber) 1 in main::p0_idx#1 = 1 Adding number conversion cast (unumber) 0 in main::p0_idx#2 = 0 -Adding number conversion cast (unumber) 0 in main::$7 = 0 != *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) -Adding number conversion cast (unumber) 0 in *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 +Adding number conversion cast (unumber) 0 in main::$7 = 0 != *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM) +Adding number conversion cast (unumber) 0 in *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) (unumber)$29*CYCLES_PER_SCANLINE/$40 -Adding number conversion cast (unumber) $40 in *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) (unumber)$1b*CYCLES_PER_SCANLINE/$40 +Adding number conversion cast (unumber) $40 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) (unumber)$29*CYCLES_PER_SCANLINE/$40 +Adding number conversion cast (unumber) $40 in *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = ((unumber)) (unumber)$1b*CYCLES_PER_SCANLINE/$40 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = (unumber)$f0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = (unumber)$af -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = (unumber)5 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)2 -Inlining cast *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)(unumber)$29*CYCLES_PER_SCANLINE/(unumber)$40 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)2 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = (unumber)0 -Inlining cast *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)(unumber)$1b*CYCLES_PER_SCANLINE/(unumber)$40 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = (unumber)$f0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = (unumber)$af +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = (unumber)5 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)2 +Inlining cast *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)(unumber)$29*CYCLES_PER_SCANLINE/(unumber)$40 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = (unumber)2 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = (unumber)0 +Inlining cast *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = (unumber)(unumber)$1b*CYCLES_PER_SCANLINE/(unumber)$40 Inlining cast main::p0_idx#1 = (unumber)1 Inlining cast main::p0_idx#2 = (unumber)0 -Inlining cast *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 +Inlining cast *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 2 -Simplifying constant pointer cast (byte*) 16 -Simplifying constant pointer cast (byte*) 32 -Simplifying constant pointer cast (struct ATARI_TIA_WRITE*) 0 -Simplifying constant pointer cast (struct MOS6532_RIOT*) 640 +Simplifying constant pointer cast (char *) 2 +Simplifying constant pointer cast (char *) 16 +Simplifying constant pointer cast (char *) 32 +Simplifying constant pointer cast (struct ATARI_TIA_WRITE *) 0 +Simplifying constant pointer cast (struct MOS6532_RIOT *) 640 Simplifying constant integer cast $f0 Simplifying constant integer cast $af Simplifying constant integer cast 5 @@ -427,35 +427,35 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $af -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $c0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $1b -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $af +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $c0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $1b +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [52] main::$2 = p0_ypos#5 != main::i#4 from [51] main::$1 = p0_ypos#5 == main::i#4 Successful SSA optimization Pass2UnaryNotSimplification @@ -502,12 +502,12 @@ Identical Phi Values p0_ypos#3 p0_ypos#1 Identical Phi Values idx2#3 idx2#1 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$4 [7] if(0!=1) goto main::@2 -Simple Condition main::$5 [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 +Simple Condition main::$5 [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 Simple Condition main::$0 [31] if(main::i#2<$c0) goto main::@7 Simple Condition main::$6 [35] if(0!=main::p0_idx#4) goto main::@9 Simple Condition main::$3 [43] if(main::gfx#0==0) goto main::@11 Simple Condition main::$2 [45] if(p0_ypos#0!=main::i#2) goto main::@10 -Simple Condition main::$7 [53] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@16 +Simple Condition main::$7 [53] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@16 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::p0_idx#0 = 0 Constant main::i#0 = 1 @@ -519,8 +519,8 @@ Constant p0_ypos#11 = 0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [7] if(0!=1) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero (byte*)TIA in [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 -Simplifying expression containing zero (byte*)TIA in [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 +Simplifying expression containing zero (char *)TIA in [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 2 +Simplifying expression containing zero (char *)TIA in [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VSYNC) = 0 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -542,9 +542,9 @@ Constant inlined idx2#10 = $39 Constant inlined main::p0_idx#1 = 1 Constant inlined main::p0_idx#2 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $100 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@17(between main::@15 and main::@1) Added new block during phi lifting main::@18(between main::@12 and main::@10) @@ -588,7 +588,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -597,35 +597,35 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 asm { cld } - [6] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 - [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af - [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 + [6] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 + [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af + [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 to:main::@1 main::@1: scope:[main] from main main::@13 [9] idx2#1 = phi( main/$39, main::@13/idx2#0 ) [9] idx#1 = phi( main/0, main::@13/idx#0 ) to:main::@2 main::@2: scope:[main] from main::@1 - [10] *((byte*)TIA) = 2 - [11] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 - [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [14] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [15] *((byte*)TIA) = 0 + [10] *((char *)TIA) = 2 + [11] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 + [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [14] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [15] *((char *)TIA) = 0 asm { ldap0_xpos staTIA_WSYNC sec !: sbc#$f bcs!- eor#7 asl asl asl asl staTIA_HMP0 staTIA_RESP0 } [17] p0_xpos = SINTABLE_160[idx#1] [18] idx#0 = ++ idx#1 [19] p0_ypos#0 = SINTABLE_160[idx2#1] [20] idx2#0 = ++ idx2#1 - [21] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 + [21] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 - [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 + [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 - [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 + [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 to:main::@6 main::@6: scope:[main] from main::@10 main::@5 [26] main::p0_idx#4 = phi( main::@10/main::p0_idx#8, main::@5/0 ) @@ -633,20 +633,20 @@ main::@6: scope:[main] from main::@10 main::@5 [27] if(main::i#2<$c0) goto main::@7 to:main::@8 main::@8: scope:[main] from main::@6 - [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [29] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 - [30] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 - [31] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 + [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [29] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 + [30] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 + [31] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 to:main::@13 main::@13: scope:[main] from main::@14 main::@8 - [32] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 + [32] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 to:main::@1 main::@14: scope:[main] from main::@13 - [33] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [33] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@13 main::@7: scope:[main] from main::@6 - [34] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 - [35] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 + [34] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [35] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 [36] if(0!=main::p0_idx#4) goto main::@9 to:main::@11 main::@11: scope:[main] from main::@7 @@ -661,38 +661,38 @@ main::@10: scope:[main] from main::@11 main::@12 main::@15 main::@9 to:main::@6 main::@9: scope:[main] from main::@7 [41] main::gfx#0 = SPRITE_C[main::p0_idx#4] - [42] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 + [42] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 [43] if(main::gfx#0==0) goto main::@10 to:main::@12 main::@12: scope:[main] from main::@9 [44] main::p0_idx#3 = ++ main::p0_idx#4 to:main::@10 main::@4: scope:[main] from main::@3 - [45] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 + [45] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 to:main::@3 VARIABLE REGISTER WEIGHTS void __start() -byte idx -byte idx#0 39.357142857142854 -byte idx#1 133.66666666666669 -byte idx2 -byte idx2#0 42.38461538461539 -byte idx2#1 109.36363636363637 +char idx +char idx#0 // 39.357142857142854 +char idx#1 // 133.66666666666669 +char idx2 +char idx2#0 // 42.38461538461539 +char idx2#1 // 109.36363636363637 void main() -byte main::gfx -byte main::gfx#0 1501.5 -byte main::i -byte main::i#1 2002.0 -byte main::i#2 417.08333333333337 -byte main::p0_idx -byte main::p0_idx#3 2002.0 -byte main::p0_idx#4 500.5 -byte main::p0_idx#8 1501.5 -volatile byte p0_xpos loadstore 2.452380952380952 -byte p0_ypos -byte p0_ypos#0 52.476190476190474 +char main::gfx +char main::gfx#0 // 1501.5 +char main::i +char main::i#1 // 2002.0 +char main::i#2 // 417.08333333333337 +char main::p0_idx +char main::p0_idx#3 // 2002.0 +char main::p0_idx#4 // 500.5 +char main::p0_idx#8 // 1501.5 +__loadstore volatile char p0_xpos // 2.452380952380952 +char p0_ypos +char p0_ypos#0 // 52.476190476190474 Initial phi equivalence classes [ idx#1 idx#0 ] @@ -719,60 +719,60 @@ Allocated zp[1]:133 [ p0_ypos#0 ] Allocated zp[1]:134 [ main::gfx#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] p0_xpos = 0 [ p0_xpos ] ( [ p0_xpos ] { } ) always clobbers reg byte a -Statement [6] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a -Statement [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a -Statement [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a -Statement [10] *((byte*)TIA) = 2 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [6] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a +Statement [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a +Statement [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a +Statement [10] *((char *)TIA) = 2 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:128 [ idx#1 idx#0 ] Removing always clobbered register reg byte a as potential for zp[1]:129 [ idx2#1 idx2#0 ] -Statement [11] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [14] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)TIA) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [11] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [14] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [15] *((char *)TIA) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a Statement asm { ldap0_xpos staTIA_WSYNC sec !: sbc#$f bcs!- eor#7 asl asl asl asl staTIA_HMP0 staTIA_RESP0 } always clobbers reg byte a Statement [17] p0_xpos = SINTABLE_160[idx#1] [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [21] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:133 [ p0_ypos#0 ] -Statement [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [29] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [30] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [31] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [32] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [33] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [34] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] { } ) always clobbers reg byte a +Statement [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [29] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [30] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [31] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [32] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [33] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [34] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:130 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:131 [ main::p0_idx#4 main::p0_idx#8 main::p0_idx#3 ] -Statement [45] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [45] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a Statement [1] p0_xpos = 0 [ p0_xpos ] ( [ p0_xpos ] { } ) always clobbers reg byte a -Statement [6] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a -Statement [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a -Statement [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a -Statement [10] *((byte*)TIA) = 2 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [11] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [14] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)TIA) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [6] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a +Statement [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a +Statement [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 [ p0_xpos ] ( main:3 [ p0_xpos ] { } ) always clobbers reg byte a +Statement [10] *((char *)TIA) = 2 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [11] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [14] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a +Statement [15] *((char *)TIA) = 0 [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a Statement asm { ldap0_xpos staTIA_WSYNC sec !: sbc#$f bcs!- eor#7 asl asl asl asl staTIA_HMP0 staTIA_RESP0 } always clobbers reg byte a Statement [17] p0_xpos = SINTABLE_160[idx#1] [ p0_xpos idx#1 idx2#1 ] ( main:3 [ p0_xpos idx#1 idx2#1 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a -Statement [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [29] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [30] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [31] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [32] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [33] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a -Statement [34] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] { } ) always clobbers reg byte a -Statement [45] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [21] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a +Statement [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [29] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [30] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [31] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [32] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [33] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 ] { } ) always clobbers reg byte a +Statement [34] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 main::i#2 main::p0_idx#4 ] { } ) always clobbers reg byte a +Statement [45] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] ( main:3 [ p0_xpos idx#0 idx2#0 p0_ypos#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:128 [ idx#1 idx#0 ] : zp[1]:128 , reg byte x , reg byte y , Potential registers zp[1]:129 [ idx2#1 idx2#0 ] : zp[1]:129 , reg byte x , reg byte y , Potential registers zp[1]:130 [ main::i#2 main::i#1 ] : zp[1]:130 , reg byte x , reg byte y , @@ -867,7 +867,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -879,16 +879,16 @@ __start: { main: { // asm { cld } cld - // [6] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 -- _deref_pbuc1=vbuc2 + // [6] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 -- _deref_pbuc1=vbuc2 // Player 0 // - Color lda #$f0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 - // [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af -- _deref_pbuc1=vbuc2 + // [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af -- _deref_pbuc1=vbuc2 // - Graphics lda #$af sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 - // [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 -- _deref_pbuc1=vbuc2 + // [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 -- _deref_pbuc1=vbuc2 // - Size lda #5 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 @@ -906,30 +906,30 @@ main: { jmp __b2 // main::@2 __b2: - // [10] *((byte*)TIA) = 2 -- _deref_pbuc1=vbuc2 + // [10] *((char *)TIA) = 2 -- _deref_pbuc1=vbuc2 // Vertical Sync // here we generate the signal that tells the TV to move the beam to the top of // the screen so we can start the next frame of video. // The Sync Signal must be on for 3 scanlines. lda #2 sta TIA - // [11] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 + // [11] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 // D1=1, turns on Vertical Sync signal lda #$29*CYCLES_PER_SCANLINE/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T - // [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Set timer to wait 41 lines lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Wait for Sync - halts CPU until end of 1st scanline of VSYNC lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [14] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [14] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 2nd scanline of VSYNC lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [15] *((byte*)TIA) = 0 -- _deref_pbuc1=vbuc2 + // [15] *((char *)TIA) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 3rd scanline of VSYNC lda #0 sta TIA @@ -960,30 +960,30 @@ main: { sta.z p0_ypos // [20] idx2#0 = ++ idx2#1 -- vbuz1=_inc_vbuz1 inc.z idx2 - // [21] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [21] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Execute horisontal movement lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 -- _deref_pbuc1=vbuc2 + // [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE jmp __b3 // Wait for the timer to run out // main::@3 __b3: - // [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 + // [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b4 jmp __b5 // main::@5 __b5: - // [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 + // [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 // Screen - display logic // Update the registers in TIA (the video chip) in order to generate what the player sees. // For now we're just going to output 192 colored scanlines lines so we have something to see. lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK - // [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 + // [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 // D1=1, turns off Vertical Blank signal (image output on) lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK @@ -1002,19 +1002,19 @@ main: { jmp __b8 // main::@8 __b8: - // [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Start OverScan lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [29] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 + // [29] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 // Wait for SYNC (halts CPU until end of scanline) lda #2 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK - // [30] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 + // [30] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 // D1=1 turns image output off lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK - // [31] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 + // [31] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 // Set background color to black lda #$1b*CYCLES_PER_SCANLINE/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T @@ -1022,7 +1022,7 @@ main: { // Wait for the timer to run out // main::@13 __b13: - // [32] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 -- 0_neq__deref_pbuc1_then_la1 + // [32] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b14 // [9] phi from main::@13 to main::@1 [phi:main::@13->main::@1] @@ -1032,17 +1032,17 @@ main: { jmp __b1 // main::@14 __b14: - // [33] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [33] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b13 // main::@7 __b7: - // [34] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [34] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Wait for SYNC (halts CPU until end of scanline) lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [35] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 -- _deref_pbuc1=vbuxx + // [35] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK // [36] if(0!=main::p0_idx#4) goto main::@9 -- 0_neq_vbuyy_then_la1 cpy #0 @@ -1087,7 +1087,7 @@ main: { // [41] main::gfx#0 = SPRITE_C[main::p0_idx#4] -- vbuaa=pbuc1_derefidx_vbuyy // Player 0 is active - show it lda SPRITE_C,y - // [42] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 -- _deref_pbuc1=vbuaa + // [42] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 -- _deref_pbuc1=vbuaa sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 // [43] if(main::gfx#0==0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 @@ -1100,7 +1100,7 @@ main: { jmp __b10_from___b12 // main::@4 __b4: - // [45] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [45] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b3 @@ -1170,44 +1170,44 @@ Removing unreachable instruction jmp __b10 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant const byte CYCLES_PER_SCANLINE = $4c -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 = 6 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 = $1b -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 = 4 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 -constant byte OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 -constant byte OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 -constant struct MOS6532_RIOT* const RIOT = (struct MOS6532_RIOT*) 640 -constant const byte* SINTABLE_160[$100] = kickasm {{ .fill $100, 10+round(64.5+64.5*sin(2*PI*i/256)) +__constant const char CYCLES_PER_SCANLINE = $4c +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 = 6 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 = $1b +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 = 4 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 +__constant char OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 +__constant char OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 +__constant struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *) 640 +__constant const char SINTABLE_160[$100] = kickasm {{ .fill $100, 10+round(64.5+64.5*sin(2*PI*i/256)) }} -constant byte* SPRITE_C[] = { 0, $18, $18, $18, $18, $3c, $3c, $3c, $3c, $66, $66, $66, $66, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $66, $66, $66, $66, $3c, $3c, $3c, $3c, $18, $18, $18, $18, 0 } -constant struct ATARI_TIA_WRITE* const TIA = (struct ATARI_TIA_WRITE*) 0 -constant byte* const TIA_HMP0 = (byte*) 32 -constant byte* const TIA_RESP0 = (byte*) 16 -constant byte* const TIA_WSYNC = (byte*) 2 +__constant char SPRITE_C[] = { 0, $18, $18, $18, $18, $3c, $3c, $3c, $3c, $66, $66, $66, $66, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $66, $66, $66, $66, $3c, $3c, $3c, $3c, $18, $18, $18, $18, 0 } +__constant struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *) 0 +__constant char * const TIA_HMP0 = (char *) 32 +__constant char * const TIA_RESP0 = (char *) 16 +__constant char * const TIA_WSYNC = (char *) 2 void __start() -byte idx -byte idx#0 idx zp[1]:128 39.357142857142854 -byte idx#1 idx zp[1]:128 133.66666666666669 -byte idx2 -byte idx2#0 idx2 zp[1]:129 42.38461538461539 -byte idx2#1 idx2 zp[1]:129 109.36363636363637 +char idx +char idx#0 // idx zp[1]:128 39.357142857142854 +char idx#1 // idx zp[1]:128 133.66666666666669 +char idx2 +char idx2#0 // idx2 zp[1]:129 42.38461538461539 +char idx2#1 // idx2 zp[1]:129 109.36363636363637 void main() -byte main::gfx -byte main::gfx#0 reg byte a 1501.5 -byte main::i -byte main::i#1 reg byte x 2002.0 -byte main::i#2 reg byte x 417.08333333333337 -byte main::p0_idx -byte main::p0_idx#3 reg byte y 2002.0 -byte main::p0_idx#4 reg byte y 500.5 -byte main::p0_idx#8 reg byte y 1501.5 -volatile byte p0_xpos loadstore zp[1]:130 2.452380952380952 -byte p0_ypos -byte p0_ypos#0 p0_ypos zp[1]:131 52.476190476190474 +char main::gfx +char main::gfx#0 // reg byte a 1501.5 +char main::i +char main::i#1 // reg byte x 2002.0 +char main::i#2 // reg byte x 417.08333333333337 +char main::p0_idx +char main::p0_idx#3 // reg byte y 2002.0 +char main::p0_idx#4 // reg byte y 500.5 +char main::p0_idx#8 // reg byte y 1501.5 +__loadstore volatile char p0_xpos // zp[1]:130 2.452380952380952 +char p0_ypos +char p0_ypos#0 // p0_ypos zp[1]:131 52.476190476190474 zp[1]:128 [ idx#1 idx#0 ] zp[1]:129 [ idx2#1 idx2#0 ] @@ -1277,7 +1277,7 @@ __start: { sta.z p0_xpos // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -1289,18 +1289,18 @@ main: { // asm { cld } cld // TIA->COLUP0 = 0xf0 - // [6] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 -- _deref_pbuc1=vbuc2 + // [6] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0) = $f0 -- _deref_pbuc1=vbuc2 // Player 0 // - Color lda #$f0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 // TIA->GRP0 = 0xaf - // [7] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af -- _deref_pbuc1=vbuc2 + // [7] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = $af -- _deref_pbuc1=vbuc2 // - Graphics lda #$af sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 // TIA->NUSIZ0 = 0x05 - // [8] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 -- _deref_pbuc1=vbuc2 + // [8] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0) = 5 -- _deref_pbuc1=vbuc2 // - Size lda #5 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 @@ -1315,7 +1315,7 @@ main: { // main::@2 __b2: // TIA->VSYNC = 2 - // [10] *((byte*)TIA) = 2 -- _deref_pbuc1=vbuc2 + // [10] *((char *)TIA) = 2 -- _deref_pbuc1=vbuc2 // Vertical Sync // here we generate the signal that tells the TV to move the beam to the top of // the screen so we can start the next frame of video. @@ -1323,23 +1323,23 @@ main: { lda #2 sta TIA // RIOT->TIM64T = (41*CYCLES_PER_SCANLINE)/64 - // [11] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 + // [11] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $29*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 // D1=1, turns on Vertical Sync signal lda #$29*CYCLES_PER_SCANLINE/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T // TIA->WSYNC = 0 - // [12] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Set timer to wait 41 lines lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [13] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [13] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Wait for Sync - halts CPU until end of 1st scanline of VSYNC sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC - // [14] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [14] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 2nd scanline of VSYNC sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->VSYNC = 0 - // [15] *((byte*)TIA) = 0 -- _deref_pbuc1=vbuc2 + // [15] *((char *)TIA) = 0 -- _deref_pbuc1=vbuc2 // wait until end of 3rd scanline of VSYNC sta TIA // asm @@ -1375,30 +1375,30 @@ main: { // [20] idx2#0 = ++ idx2#1 -- vbuz1=_inc_vbuz1 inc.z idx2 // TIA->WSYNC = 0 - // [21] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [21] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Execute horisontal movement lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->HMOVE = 0 - // [22] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 -- _deref_pbuc1=vbuc2 + // [22] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE) = 0 -- _deref_pbuc1=vbuc2 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE // Wait for the timer to run out // main::@3 __b3: // while(RIOT->INTIM) - // [23] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 + // [23] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@4 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b4 // main::@5 // TIA->VBLANK = 0 - // [24] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 + // [24] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 0 -- _deref_pbuc1=vbuc2 // Screen - display logic // Update the registers in TIA (the video chip) in order to generate what the player sees. // For now we're just going to output 192 colored scanlines lines so we have something to see. lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK // TIA->COLUBK = 0x0 - // [25] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 + // [25] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 // D1=1, turns off Vertical Blank signal (image output on) sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK // [26] phi from main::@5 to main::@6 [phi:main::@5->main::@6] @@ -1414,22 +1414,22 @@ main: { bcc __b7 // main::@8 // TIA->WSYNC = 0 - // [28] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [28] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Start OverScan lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->VBLANK = 2 - // [29] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 + // [29] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK) = 2 -- _deref_pbuc1=vbuc2 // Wait for SYNC (halts CPU until end of scanline) lda #2 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK // TIA->COLUBK = 0 - // [30] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 + // [30] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = 0 -- _deref_pbuc1=vbuc2 // D1=1 turns image output off lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK // RIOT->TIM64T = (27*CYCLES_PER_SCANLINE)/64 - // [31] *((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 + // [31] *((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T) = $1b*CYCLES_PER_SCANLINE/$40 -- _deref_pbuc1=vbuc2 // Set background color to black lda #$1b*CYCLES_PER_SCANLINE/$40 sta RIOT+OFFSET_STRUCT_MOS6532_RIOT_TIM64T @@ -1437,7 +1437,7 @@ main: { // main::@13 __b13: // while(RIOT->INTIM) - // [32] if(0!=*((byte*)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 -- 0_neq__deref_pbuc1_then_la1 + // [32] if(0!=*((char *)RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM)) goto main::@14 -- 0_neq__deref_pbuc1_then_la1 lda RIOT+OFFSET_STRUCT_MOS6532_RIOT_INTIM bne __b14 // [9] phi from main::@13 to main::@1 [phi:main::@13->main::@1] @@ -1447,18 +1447,18 @@ main: { // main::@14 __b14: // TIA->WSYNC = 0 - // [33] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [33] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b13 // main::@7 __b7: - // [34] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [34] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 // Wait for SYNC (halts CPU until end of scanline) lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC // TIA->COLUBK = i - // [35] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 -- _deref_pbuc1=vbuxx + // [35] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK) = main::i#2 -- _deref_pbuc1=vbuxx stx TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK // if(p0_idx) // [36] if(0!=main::p0_idx#4) goto main::@9 -- 0_neq_vbuyy_then_la1 @@ -1497,7 +1497,7 @@ main: { // Player 0 is active - show it lda SPRITE_C,y // TIA->GRP0 = gfx - // [42] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 -- _deref_pbuc1=vbuaa + // [42] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0) = main::gfx#0 -- _deref_pbuc1=vbuaa sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 // if(gfx==0) // [43] if(main::gfx#0==0) goto main::@10 -- vbuaa_eq_0_then_la1 @@ -1511,7 +1511,7 @@ main: { // main::@4 __b4: // TIA->WSYNC = 0 - // [45] *((byte*)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 + // [45] *((char *)TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TIA+OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC jmp __b3 diff --git a/src/test/ref/examples/atari2600/atari2600-sprites.sym b/src/test/ref/examples/atari2600/atari2600-sprites.sym index 48c83f991..759b7a532 100644 --- a/src/test/ref/examples/atari2600/atari2600-sprites.sym +++ b/src/test/ref/examples/atari2600/atari2600-sprites.sym @@ -1,41 +1,41 @@ -constant const byte CYCLES_PER_SCANLINE = $4c -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 = 6 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 = $1b -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 = 4 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 -constant byte OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 -constant byte OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 -constant byte OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 -constant struct MOS6532_RIOT* const RIOT = (struct MOS6532_RIOT*) 640 -constant const byte* SINTABLE_160[$100] = kickasm {{ .fill $100, 10+round(64.5+64.5*sin(2*PI*i/256)) +__constant const char CYCLES_PER_SCANLINE = $4c +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUBK = 9 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_COLUP0 = 6 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_GRP0 = $1b +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_HMOVE = $2a +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_NUSIZ0 = 4 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_VBLANK = 1 +__constant char OFFSET_STRUCT_ATARI_TIA_WRITE_WSYNC = 2 +__constant char OFFSET_STRUCT_MOS6532_RIOT_INTIM = 4 +__constant char OFFSET_STRUCT_MOS6532_RIOT_TIM64T = $16 +__constant struct MOS6532_RIOT * const RIOT = (struct MOS6532_RIOT *) 640 +__constant const char SINTABLE_160[$100] = kickasm {{ .fill $100, 10+round(64.5+64.5*sin(2*PI*i/256)) }} -constant byte* SPRITE_C[] = { 0, $18, $18, $18, $18, $3c, $3c, $3c, $3c, $66, $66, $66, $66, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $66, $66, $66, $66, $3c, $3c, $3c, $3c, $18, $18, $18, $18, 0 } -constant struct ATARI_TIA_WRITE* const TIA = (struct ATARI_TIA_WRITE*) 0 -constant byte* const TIA_HMP0 = (byte*) 32 -constant byte* const TIA_RESP0 = (byte*) 16 -constant byte* const TIA_WSYNC = (byte*) 2 +__constant char SPRITE_C[] = { 0, $18, $18, $18, $18, $3c, $3c, $3c, $3c, $66, $66, $66, $66, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $c0, $66, $66, $66, $66, $3c, $3c, $3c, $3c, $18, $18, $18, $18, 0 } +__constant struct ATARI_TIA_WRITE * const TIA = (struct ATARI_TIA_WRITE *) 0 +__constant char * const TIA_HMP0 = (char *) 32 +__constant char * const TIA_RESP0 = (char *) 16 +__constant char * const TIA_WSYNC = (char *) 2 void __start() -byte idx -byte idx#0 idx zp[1]:128 39.357142857142854 -byte idx#1 idx zp[1]:128 133.66666666666669 -byte idx2 -byte idx2#0 idx2 zp[1]:129 42.38461538461539 -byte idx2#1 idx2 zp[1]:129 109.36363636363637 +char idx +char idx#0 // idx zp[1]:128 39.357142857142854 +char idx#1 // idx zp[1]:128 133.66666666666669 +char idx2 +char idx2#0 // idx2 zp[1]:129 42.38461538461539 +char idx2#1 // idx2 zp[1]:129 109.36363636363637 void main() -byte main::gfx -byte main::gfx#0 reg byte a 1501.5 -byte main::i -byte main::i#1 reg byte x 2002.0 -byte main::i#2 reg byte x 417.08333333333337 -byte main::p0_idx -byte main::p0_idx#3 reg byte y 2002.0 -byte main::p0_idx#4 reg byte y 500.5 -byte main::p0_idx#8 reg byte y 1501.5 -volatile byte p0_xpos loadstore zp[1]:130 2.452380952380952 -byte p0_ypos -byte p0_ypos#0 p0_ypos zp[1]:131 52.476190476190474 +char main::gfx +char main::gfx#0 // reg byte a 1501.5 +char main::i +char main::i#1 // reg byte x 2002.0 +char main::i#2 // reg byte x 417.08333333333337 +char main::p0_idx +char main::p0_idx#3 // reg byte y 2002.0 +char main::p0_idx#4 // reg byte y 500.5 +char main::p0_idx#8 // reg byte y 1501.5 +__loadstore volatile char p0_xpos // zp[1]:130 2.452380952380952 +char p0_ypos +char p0_ypos#0 // p0_ypos zp[1]:131 52.476190476190474 zp[1]:128 [ idx#1 idx#0 ] zp[1]:129 [ idx2#1 idx2#0 ] diff --git a/src/test/ref/examples/atarixl/atarixl-hello.log b/src/test/ref/examples/atarixl/atarixl-hello.log index 4f1618c36..569cce12b 100644 --- a/src/test/ref/examples/atarixl/atarixl-hello.log +++ b/src/test/ref/examples/atarixl/atarixl-hello.log @@ -5,7 +5,7 @@ Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -37,29 +37,29 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte BLANK4 = $30 -constant const byte BLANK8 = $70 -constant byte* DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } -constant const byte JVB = $41 -constant const byte LMS = $40 -constant const byte MODE2 = 2 -constant const byte MODE7 = 7 -constant byte** const SDLST = (byte**)$230 -constant byte* const SDMCTL = (byte*)$22f -constant byte* TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list"sa +__constant const char BLANK4 = $30 +__constant const char BLANK8 = $70 +__constant char DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } +__constant const char JVB = $41 +__constant const char LMS = $40 +__constant const char MODE2 = 2 +__constant const char MODE7 = 7 +__constant char ** const SDLST = (char **)$230 +__constant char * const SDMCTL = (char *)$22f +__constant char TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list"sa void __start() void main() -bool~ main::$0 +bool main::$0 Adding number conversion cast (unumber) $21 in *SDMCTL = $21 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *SDMCTL = (unumber)$21 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 559 -Simplifying constant pointer cast (byte**) 560 +Simplifying constant pointer cast (char *) 559 +Simplifying constant pointer cast (char **) 560 Simplifying constant integer cast $21 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $21 +Finalized unsigned number type (char) $21 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [3] if(0!=1) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -74,10 +74,10 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@1 CALL GRAPH @@ -200,16 +200,16 @@ Relabelling long label __b1_from___b1 to __b1 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -constant const byte BLANK4 = $30 -constant const byte BLANK8 = $70 -constant byte* DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } -constant const byte JVB = $41 -constant const byte LMS = $40 -constant const byte MODE2 = 2 -constant const byte MODE7 = 7 -constant byte** const SDLST = (byte**) 560 -constant byte* const SDMCTL = (byte*) 559 -constant byte* TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list"sa +__constant const char BLANK4 = $30 +__constant const char BLANK8 = $70 +__constant char DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } +__constant const char JVB = $41 +__constant const char LMS = $40 +__constant const char MODE2 = 2 +__constant const char MODE7 = 7 +__constant char ** const SDLST = (char **) 560 +__constant char * const SDMCTL = (char *) 559 +__constant char TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list"sa void main() diff --git a/src/test/ref/examples/atarixl/atarixl-hello.sym b/src/test/ref/examples/atarixl/atarixl-hello.sym index 0b6401e93..7be45935c 100644 --- a/src/test/ref/examples/atarixl/atarixl-hello.sym +++ b/src/test/ref/examples/atarixl/atarixl-hello.sym @@ -1,12 +1,12 @@ -constant const byte BLANK4 = $30 -constant const byte BLANK8 = $70 -constant byte* DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } -constant const byte JVB = $41 -constant const byte LMS = $40 -constant const byte MODE2 = 2 -constant const byte MODE7 = 7 -constant byte** const SDLST = (byte**) 560 -constant byte* const SDMCTL = (byte*) 559 -constant byte* TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list"sa +__constant const char BLANK4 = $30 +__constant const char BLANK8 = $70 +__constant char DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } +__constant const char JVB = $41 +__constant const char LMS = $40 +__constant const char MODE2 = 2 +__constant const char MODE7 = 7 +__constant char ** const SDLST = (char **) 560 +__constant char * const SDMCTL = (char *) 559 +__constant char TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list"sa void main() diff --git a/src/test/ref/examples/atarixl/atarixl-rasterbars.cfg b/src/test/ref/examples/atarixl/atarixl-rasterbars.cfg index 23a7ea9aa..131e8ab4d 100644 --- a/src/test/ref/examples/atarixl/atarixl-rasterbars.cfg +++ b/src/test/ref/examples/atarixl/atarixl-rasterbars.cfg @@ -2,16 +2,16 @@ void main() main: scope:[main] from asm { sei } - [1] *((byte*)ANTIC) = $21 - [2] *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST - [3] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 - [4] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 - [5] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 - [6] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 + [1] *((char *)ANTIC) = $21 + [2] *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST + [3] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 + [4] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 + [5] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 + [6] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 to:main::@1 main::@1: scope:[main] from main main::@1 main::@5 [7] main::col#2 = phi( main/0, main::@1/main::col#2, main::@5/main::col#8 ) - [8] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 + [8] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [9] main::col#1 = ++ main::col#2 @@ -22,12 +22,12 @@ main::@3: scope:[main] from main::@2 main::@4 [11] if(main::l#2<$64) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [12] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 + [12] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 [13] main::col#8 = main::col#1 to:main::@1 main::@4: scope:[main] from main::@3 - [14] *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 - [15] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 + [14] *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 + [15] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 [16] main::c#1 = ++ main::c#2 [17] main::l#1 = ++ main::l#2 to:main::@3 diff --git a/src/test/ref/examples/atarixl/atarixl-rasterbars.log b/src/test/ref/examples/atarixl/atarixl-rasterbars.log index 34a308862..674bf3791 100644 --- a/src/test/ref/examples/atarixl/atarixl-rasterbars.log +++ b/src/test/ref/examples/atarixl/atarixl-rasterbars.log @@ -5,24 +5,24 @@ Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16 Fixing struct type SIZE_OF struct ATARI_GTIA_READ to 32 Fixing struct type SIZE_OF struct ATARI_POKEY_READ to 16 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 asm { sei } - *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = $21 - *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST - *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 - *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 - *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 - *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 + *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = $21 + *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST + *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 + *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 + *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 + *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 main::col#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 main::@5 main::col#3 = phi( main/main::col#0, main::@1/main::col#3, main::@5/main::col#4 ) - main::$0 = *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT) != $28 + main::$0 = *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT) != $28 if(main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -42,14 +42,14 @@ main::@4: scope:[main] from main::@3 main::col#6 = phi( main::@3/main::col#5 ) main::l#3 = phi( main::@3/main::l#2 ) main::c#2 = phi( main::@3/main::c#3 ) - *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 - *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 + *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 + *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 main::c#1 = ++ main::c#2 main::l#1 = ++ main::l#3 to:main::@3 main::@5: scope:[main] from main::@3 main::col#4 = phi( main::@3/main::col#5 ) - *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 + *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 to:main::@1 main::@return: scope:[main] from return @@ -61,7 +61,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -70,66 +70,66 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct ATARI_ANTIC* const ANTIC = (struct ATARI_ANTIC*)$d400 -constant const byte BLANK4 = $30 -constant const byte BLANK8 = $70 -constant byte* DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } -constant struct ATARI_GTIA_WRITE* const GTIA = (struct ATARI_GTIA_WRITE*)$d000 -constant const byte JVB = $41 -constant const byte LMS = $40 -constant const byte MODE2 = 2 -constant const byte MODE7 = 7 -constant byte OFFSET_STRUCT_ATARI_ANTIC_DLIST = 2 -constant byte OFFSET_STRUCT_ATARI_ANTIC_DMACTL = 0 -constant byte OFFSET_STRUCT_ATARI_ANTIC_VCOUNT = $b -constant byte OFFSET_STRUCT_ATARI_ANTIC_WSYNC = $a -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK = $1a -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 = $16 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 = $17 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 = $18 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 = $19 -constant byte* TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list!"sa +__constant struct ATARI_ANTIC * const ANTIC = (struct ATARI_ANTIC *)$d400 +__constant const char BLANK4 = $30 +__constant const char BLANK8 = $70 +__constant char DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } +__constant struct ATARI_GTIA_WRITE * const GTIA = (struct ATARI_GTIA_WRITE *)$d000 +__constant const char JVB = $41 +__constant const char LMS = $40 +__constant const char MODE2 = 2 +__constant const char MODE7 = 7 +__constant char OFFSET_STRUCT_ATARI_ANTIC_DLIST = 2 +__constant char OFFSET_STRUCT_ATARI_ANTIC_DMACTL = 0 +__constant char OFFSET_STRUCT_ATARI_ANTIC_VCOUNT = $b +__constant char OFFSET_STRUCT_ATARI_ANTIC_WSYNC = $a +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK = $1a +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 = $16 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 = $17 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 = $18 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 = $19 +__constant char TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list!"sa void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::col -byte main::col#0 -byte main::col#1 -byte main::col#2 -byte main::col#3 -byte main::col#4 -byte main::col#5 -byte main::col#6 -byte main::l -byte main::l#0 -byte main::l#1 -byte main::l#2 -byte main::l#3 +bool main::$0 +bool main::$1 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::col +char main::col#0 +char main::col#1 +char main::col#2 +char main::col#3 +char main::col#4 +char main::col#5 +char main::col#6 +char main::l +char main::l#0 +char main::l#1 +char main::l#2 +char main::l#3 -Adding number conversion cast (unumber) $21 in *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = $21 -Adding number conversion cast (unumber) $28 in *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 -Adding number conversion cast (unumber) $48 in *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 -Adding number conversion cast (unumber) $80 in *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 -Adding number conversion cast (unumber) $c8 in *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 -Adding number conversion cast (unumber) $28 in main::$0 = *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT) != $28 +Adding number conversion cast (unumber) $21 in *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = $21 +Adding number conversion cast (unumber) $28 in *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 +Adding number conversion cast (unumber) $48 in *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 +Adding number conversion cast (unumber) $80 in *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 +Adding number conversion cast (unumber) $c8 in *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 +Adding number conversion cast (unumber) $28 in main::$0 = *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT) != $28 Adding number conversion cast (unumber) $64 in main::$1 = main::l#2 < $64 -Adding number conversion cast (unumber) 0 in *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 +Adding number conversion cast (unumber) 0 in *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = (unumber)$21 -Inlining cast *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = (unumber)$28 -Inlining cast *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = (unumber)$48 -Inlining cast *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = (unumber)$80 -Inlining cast *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = (unumber)$c8 -Inlining cast *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = (unumber)0 +Inlining cast *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = (unumber)$21 +Inlining cast *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = (unumber)$28 +Inlining cast *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = (unumber)$48 +Inlining cast *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = (unumber)$80 +Inlining cast *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = (unumber)$c8 +Inlining cast *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct ATARI_GTIA_WRITE*) 53248 -Simplifying constant pointer cast (struct ATARI_ANTIC*) 54272 +Simplifying constant pointer cast (struct ATARI_GTIA_WRITE *) 53248 +Simplifying constant pointer cast (struct ATARI_ANTIC *) 54272 Simplifying constant integer cast $21 Simplifying constant integer cast $28 Simplifying constant integer cast $48 @@ -139,14 +139,14 @@ Simplifying constant integer cast $28 Simplifying constant integer cast $64 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $21 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $48 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) $c8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $21 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $48 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) $c8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::col#2 = main::col#3 main::c#0 Alias main::c#2 = main::c#3 @@ -155,13 +155,13 @@ Alias main::col#4 = main::col#6 main::col#5 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::col#4 main::col#1 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$0 [10] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 +Simple Condition main::$0 [10] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 Simple Condition main::$1 [15] if(main::l#2<$64) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::col#0 = 0 Constant main::l#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)ANTIC in [1] *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = $21 +Simplifying expression containing zero (char *)ANTIC in [1] *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DMACTL) = $21 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -179,10 +179,10 @@ Inlining constant with var siblings main::l#0 Constant inlined main::col#0 = 0 Constant inlined main::l#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@6(between main::@1 and main::@1) CALL GRAPH @@ -201,16 +201,16 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from asm { sei } - [1] *((byte*)ANTIC) = $21 - [2] *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST - [3] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 - [4] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 - [5] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 - [6] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 + [1] *((char *)ANTIC) = $21 + [2] *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST + [3] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 + [4] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 + [5] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 + [6] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 to:main::@1 main::@1: scope:[main] from main main::@1 main::@5 [7] main::col#2 = phi( main/0, main::@1/main::col#2, main::@5/main::col#8 ) - [8] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 + [8] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [9] main::col#1 = ++ main::col#2 @@ -221,12 +221,12 @@ main::@3: scope:[main] from main::@2 main::@4 [11] if(main::l#2<$64) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [12] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 + [12] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 [13] main::col#8 = main::col#1 to:main::@1 main::@4: scope:[main] from main::@3 - [14] *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 - [15] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 + [14] *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 + [15] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 [16] main::c#1 = ++ main::c#2 [17] main::l#1 = ++ main::l#2 to:main::@3 @@ -234,16 +234,16 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::c -byte main::c#1 101.0 -byte main::c#2 103.75 -byte main::col -byte main::col#1 2.75 -byte main::col#2 78.33333333333334 -byte main::col#8 22.0 -byte main::l -byte main::l#1 202.0 -byte main::l#2 60.599999999999994 +char main::c +char main::c#1 // 101.0 +char main::c#2 // 103.75 +char main::col +char main::col#1 // 2.75 +char main::col#2 // 78.33333333333334 +char main::col#8 // 22.0 +char main::l +char main::l#1 // 202.0 +char main::l#2 // 60.599999999999994 Initial phi equivalence classes [ main::l#2 main::l#1 ] @@ -257,24 +257,24 @@ Allocated zp[1]:128 [ main::l#2 main::l#1 ] Allocated zp[1]:129 [ main::c#2 main::col#2 main::col#8 main::c#1 ] Allocated zp[1]:130 [ main::col#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] *((byte*)ANTIC) = $21 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 [ main::col#2 ] ( [ main::col#2 ] { } ) always clobbers reg byte a +Statement [1] *((char *)ANTIC) = $21 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 [ main::col#2 ] ( [ main::col#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:129 [ main::c#2 main::col#2 main::col#8 main::c#1 ] -Statement [12] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 [ main::col#1 ] ( [ main::col#1 ] { } ) always clobbers reg byte a +Statement [12] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 [ main::col#1 ] ( [ main::col#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:130 [ main::col#1 ] -Statement [1] *((byte*)ANTIC) = $21 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 [ main::col#2 ] ( [ main::col#2 ] { } ) always clobbers reg byte a -Statement [12] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 [ main::col#1 ] ( [ main::col#1 ] { } ) always clobbers reg byte a +Statement [1] *((char *)ANTIC) = $21 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 [ main::col#2 ] ( [ main::col#2 ] { } ) always clobbers reg byte a +Statement [12] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 [ main::col#1 ] ( [ main::col#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:128 [ main::l#2 main::l#1 ] : zp[1]:128 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:129 [ main::c#2 main::col#2 main::col#8 main::c#1 ] : zp[1]:129 , reg byte x , reg byte y , Potential registers zp[1]:130 [ main::col#1 ] : zp[1]:130 , reg byte x , reg byte y , @@ -339,27 +339,27 @@ main: { // asm { sei } // Disable IRQ sei - // [1] *((byte*)ANTIC) = $21 -- _deref_pbuc1=vbuc2 + // [1] *((char *)ANTIC) = $21 -- _deref_pbuc1=vbuc2 // Enable DMA, Narrow Playfield - ANTIC Direct Memory Access Control lda #$21 sta ANTIC - // [2] *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST -- _deref_qbuc1=pbuc2 + // [2] *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST -- _deref_qbuc1=pbuc2 // Set ANTIC Display List Pointer lda #DISPLAY_LIST sta ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST+1 - // [3] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 -- _deref_pbuc1=vbuc2 + // [3] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 -- _deref_pbuc1=vbuc2 // Set colors lda #$28 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 - // [4] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 -- _deref_pbuc1=vbuc2 + // [4] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 -- _deref_pbuc1=vbuc2 lda #$48 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 - // [5] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 -- _deref_pbuc1=vbuc2 + // [5] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 -- _deref_pbuc1=vbuc2 lda #$80 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 - // [6] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 -- _deref_pbuc1=vbuc2 + // [6] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 -- _deref_pbuc1=vbuc2 lda #$c8 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 // [7] phi from main to main::@1 [phi:main->main::@1] @@ -374,7 +374,7 @@ main: { jmp __b1 // main::@1 __b1: - // [8] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [8] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$28 cmp ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT bne __b1_from___b1 @@ -399,7 +399,7 @@ main: { jmp __b5 // main::@5 __b5: - // [12] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK // [13] main::col#8 = main::col#1 -- vbuyy=vbuxx @@ -408,9 +408,9 @@ main: { jmp __b1_from___b5 // main::@4 __b4: - // [14] *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 -- _deref_pbuc1=vbuyy + // [14] *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 -- _deref_pbuc1=vbuyy sty ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC - // [15] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 -- _deref_pbuc1=vbuyy + // [15] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 -- _deref_pbuc1=vbuyy sty GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK // [16] main::c#1 = ++ main::c#2 -- vbuyy=_inc_vbuyy iny @@ -454,35 +454,35 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant struct ATARI_ANTIC* const ANTIC = (struct ATARI_ANTIC*) 54272 -constant const byte BLANK4 = $30 -constant const byte BLANK8 = $70 -constant byte* DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } -constant struct ATARI_GTIA_WRITE* const GTIA = (struct ATARI_GTIA_WRITE*) 53248 -constant const byte JVB = $41 -constant const byte LMS = $40 -constant const byte MODE2 = 2 -constant const byte MODE7 = 7 -constant byte OFFSET_STRUCT_ATARI_ANTIC_DLIST = 2 -constant byte OFFSET_STRUCT_ATARI_ANTIC_VCOUNT = $b -constant byte OFFSET_STRUCT_ATARI_ANTIC_WSYNC = $a -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK = $1a -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 = $16 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 = $17 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 = $18 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 = $19 -constant byte* TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list!"sa +__constant struct ATARI_ANTIC * const ANTIC = (struct ATARI_ANTIC *) 54272 +__constant const char BLANK4 = $30 +__constant const char BLANK8 = $70 +__constant char DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } +__constant struct ATARI_GTIA_WRITE * const GTIA = (struct ATARI_GTIA_WRITE *) 53248 +__constant const char JVB = $41 +__constant const char LMS = $40 +__constant const char MODE2 = 2 +__constant const char MODE7 = 7 +__constant char OFFSET_STRUCT_ATARI_ANTIC_DLIST = 2 +__constant char OFFSET_STRUCT_ATARI_ANTIC_VCOUNT = $b +__constant char OFFSET_STRUCT_ATARI_ANTIC_WSYNC = $a +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK = $1a +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 = $16 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 = $17 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 = $18 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 = $19 +__constant char TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list!"sa void main() -byte main::c -byte main::c#1 reg byte y 101.0 -byte main::c#2 reg byte y 103.75 -byte main::col -byte main::col#1 reg byte x 2.75 -byte main::col#2 reg byte y 78.33333333333334 -byte main::col#8 reg byte y 22.0 -byte main::l -byte main::l#1 reg byte a 202.0 -byte main::l#2 reg byte a 60.599999999999994 +char main::c +char main::c#1 // reg byte y 101.0 +char main::c#2 // reg byte y 103.75 +char main::col +char main::col#1 // reg byte x 2.75 +char main::col#2 // reg byte y 78.33333333333334 +char main::col#8 // reg byte y 22.0 +char main::l +char main::l#1 // reg byte a 202.0 +char main::l#2 // reg byte a 60.599999999999994 reg byte a [ main::l#2 main::l#1 ] reg byte y [ main::c#2 main::col#2 main::col#8 main::c#1 ] @@ -536,32 +536,32 @@ main: { // Disable IRQ sei // ANTIC->DMACTL = 0x21 - // [1] *((byte*)ANTIC) = $21 -- _deref_pbuc1=vbuc2 + // [1] *((char *)ANTIC) = $21 -- _deref_pbuc1=vbuc2 // Enable DMA, Narrow Playfield - ANTIC Direct Memory Access Control lda #$21 sta ANTIC // ANTIC->DLIST = DISPLAY_LIST - // [2] *((byte**)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST -- _deref_qbuc1=pbuc2 + // [2] *((char **)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST) = DISPLAY_LIST -- _deref_qbuc1=pbuc2 // Set ANTIC Display List Pointer lda #DISPLAY_LIST sta ANTIC+OFFSET_STRUCT_ATARI_ANTIC_DLIST+1 // GTIA->COLPF0 = 0x28 - // [3] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 -- _deref_pbuc1=vbuc2 + // [3] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0) = $28 -- _deref_pbuc1=vbuc2 // Set colors lda #$28 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 // GTIA->COLPF1 = 0x48 - // [4] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 -- _deref_pbuc1=vbuc2 + // [4] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1) = $48 -- _deref_pbuc1=vbuc2 lda #$48 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 // GTIA->COLPF2 = 0x80 - // [5] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 -- _deref_pbuc1=vbuc2 + // [5] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2) = $80 -- _deref_pbuc1=vbuc2 lda #$80 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 // GTIA->COLPF3 = 0xc8 - // [6] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 -- _deref_pbuc1=vbuc2 + // [6] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3) = $c8 -- _deref_pbuc1=vbuc2 lda #$c8 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 // [7] phi from main to main::@1 [phi:main->main::@1] @@ -572,7 +572,7 @@ main: { // main::@1 __b1: // while(ANTIC->VCOUNT!=40) - // [8] if(*((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [8] if(*((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT)!=$28) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$28 cmp ANTIC+OFFSET_STRUCT_ATARI_ANTIC_VCOUNT bne __b1 @@ -594,7 +594,7 @@ main: { bcc __b4 // main::@5 // GTIA->COLBK = 0 - // [12] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK // [13] main::col#8 = main::col#1 -- vbuyy=vbuxx @@ -604,10 +604,10 @@ main: { // main::@4 __b4: // ANTIC->WSYNC = c - // [14] *((byte*)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 -- _deref_pbuc1=vbuyy + // [14] *((char *)ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC) = main::c#2 -- _deref_pbuc1=vbuyy sty ANTIC+OFFSET_STRUCT_ATARI_ANTIC_WSYNC // GTIA->COLBK = c - // [15] *((byte*)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 -- _deref_pbuc1=vbuyy + // [15] *((char *)GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK) = main::c#2 -- _deref_pbuc1=vbuyy sty GTIA+OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK // c++; // [16] main::c#1 = ++ main::c#2 -- vbuyy=_inc_vbuyy diff --git a/src/test/ref/examples/atarixl/atarixl-rasterbars.sym b/src/test/ref/examples/atarixl/atarixl-rasterbars.sym index 22dd9cb2d..f68fe8b5e 100644 --- a/src/test/ref/examples/atarixl/atarixl-rasterbars.sym +++ b/src/test/ref/examples/atarixl/atarixl-rasterbars.sym @@ -1,32 +1,32 @@ -constant struct ATARI_ANTIC* const ANTIC = (struct ATARI_ANTIC*) 54272 -constant const byte BLANK4 = $30 -constant const byte BLANK8 = $70 -constant byte* DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } -constant struct ATARI_GTIA_WRITE* const GTIA = (struct ATARI_GTIA_WRITE*) 53248 -constant const byte JVB = $41 -constant const byte LMS = $40 -constant const byte MODE2 = 2 -constant const byte MODE7 = 7 -constant byte OFFSET_STRUCT_ATARI_ANTIC_DLIST = 2 -constant byte OFFSET_STRUCT_ATARI_ANTIC_VCOUNT = $b -constant byte OFFSET_STRUCT_ATARI_ANTIC_WSYNC = $a -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK = $1a -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 = $16 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 = $17 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 = $18 -constant byte OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 = $19 -constant byte* TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list!"sa +__constant struct ATARI_ANTIC * const ANTIC = (struct ATARI_ANTIC *) 54272 +__constant const char BLANK4 = $30 +__constant const char BLANK8 = $70 +__constant char DISPLAY_LIST[] = { BLANK8, BLANK8, BLANK8, LMS|MODE7, byte0 TEXT, byte1 TEXT, BLANK4, MODE2, JVB, byte0 DISPLAY_LIST, byte1 DISPLAY_LIST } +__constant struct ATARI_GTIA_WRITE * const GTIA = (struct ATARI_GTIA_WRITE *) 53248 +__constant const char JVB = $41 +__constant const char LMS = $40 +__constant const char MODE2 = 2 +__constant const char MODE7 = 7 +__constant char OFFSET_STRUCT_ATARI_ANTIC_DLIST = 2 +__constant char OFFSET_STRUCT_ATARI_ANTIC_VCOUNT = $b +__constant char OFFSET_STRUCT_ATARI_ANTIC_WSYNC = $a +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLBK = $1a +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF0 = $16 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF1 = $17 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF2 = $18 +__constant char OFFSET_STRUCT_ATARI_GTIA_WRITE_COLPF3 = $19 +__constant char TEXT[] = "HELLO atari 8BITDemonstrates ANTIC display list!"sa void main() -byte main::c -byte main::c#1 reg byte y 101.0 -byte main::c#2 reg byte y 103.75 -byte main::col -byte main::col#1 reg byte x 2.75 -byte main::col#2 reg byte y 78.33333333333334 -byte main::col#8 reg byte y 22.0 -byte main::l -byte main::l#1 reg byte a 202.0 -byte main::l#2 reg byte a 60.599999999999994 +char main::c +char main::c#1 // reg byte y 101.0 +char main::c#2 // reg byte y 103.75 +char main::col +char main::col#1 // reg byte x 2.75 +char main::col#2 // reg byte y 78.33333333333334 +char main::col#8 // reg byte y 22.0 +char main::l +char main::l#1 // reg byte a 202.0 +char main::l#2 // reg byte a 60.599999999999994 reg byte a [ main::l#2 main::l#1 ] reg byte y [ main::c#2 main::col#2 main::col#8 main::c#1 ] diff --git a/src/test/ref/examples/c64/3d/perspective.asm b/src/test/ref/examples/c64/3d/perspective.asm index f3b927fef..0d2554c93 100644 --- a/src/test/ref/examples/c64/3d/perspective.asm +++ b/src/test/ref/examples/c64/3d/perspective.asm @@ -140,6 +140,7 @@ print_cls: { // } rts } +// void do_perspective(signed char x, signed char y, signed char z) do_perspective: { .label x = $39 .label y = -$47 @@ -217,6 +218,7 @@ do_perspective: { } .segment Code // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -250,7 +252,7 @@ memset: { jmp __b1 } // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 __b1: @@ -274,7 +276,7 @@ print_str: { jmp __b1 } // Print a signed char as HEX -// print_schar(signed byte register(X) b) +// void print_schar(__register(X) signed char b) print_schar: { // if(b<0) cpx #0 @@ -301,6 +303,7 @@ print_schar: { } // Apply perspective to a 3d-point. Result is returned in (*xr,*yr) // Implemented in assembler to utilize seriously fast multiplication +// void perspective(signed char x, signed char y, signed char z) perspective: { // xr = x lda #do_perspective.x @@ -334,7 +337,7 @@ perspective: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -384,7 +387,7 @@ print_ln: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/examples/c64/3d/perspective.cfg b/src/test/ref/examples/c64/3d/perspective.cfg index 6503206a8..c3b155854 100644 --- a/src/test/ref/examples/c64/3d/perspective.cfg +++ b/src/test/ref/examples/c64/3d/perspective.cfg @@ -12,7 +12,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -21,16 +21,16 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 asm { sei } - [10] call mulf_init + [10] call mulf_init to:main::@1 main::@1: scope:[main] from main - [11] psp1 = (word)mulf_sqr1 - [12] psp2 = (word)mulf_sqr2 - [13] call print_cls + [11] psp1 = (unsigned int)mulf_sqr1 + [12] psp2 = (unsigned int)mulf_sqr2 + [13] call print_cls to:main::@2 main::@2: scope:[main] from main::@1 [14] phi() - [15] call do_perspective + [15] call do_perspective to:main::@return main::@return: scope:[main] from main::@2 [16] return @@ -67,75 +67,75 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@1 void print_cls() print_cls: scope:[print_cls] from main::@1 [35] phi() - [36] call memset + [36] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [37] return to:@return -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) +void do_perspective(signed char x , signed char y , signed char z) do_perspective: scope:[do_perspective] from main::@2 [38] phi() - [39] call print_str + [39] call print_str to:do_perspective::@1 do_perspective::@1: scope:[do_perspective] from do_perspective [40] phi() - [41] call print_schar + [41] call print_schar to:do_perspective::@2 do_perspective::@2: scope:[do_perspective] from do_perspective::@1 [42] phi() - [43] call print_str + [43] call print_str to:do_perspective::@3 do_perspective::@3: scope:[do_perspective] from do_perspective::@2 [44] phi() - [45] call print_schar + [45] call print_schar to:do_perspective::@4 do_perspective::@4: scope:[do_perspective] from do_perspective::@3 [46] phi() - [47] call print_str + [47] call print_str to:do_perspective::@5 do_perspective::@5: scope:[do_perspective] from do_perspective::@4 [48] phi() - [49] call print_schar + [49] call print_schar to:do_perspective::@6 do_perspective::@6: scope:[do_perspective] from do_perspective::@5 [50] phi() - [51] call print_str + [51] call print_str to:do_perspective::@7 do_perspective::@7: scope:[do_perspective] from do_perspective::@6 [52] phi() - [53] call perspective + [53] call perspective to:do_perspective::@8 do_perspective::@8: scope:[do_perspective] from do_perspective::@7 - [54] print_uchar::b#1 = (byte)xr - [55] call print_uchar + [54] print_uchar::b#1 = (char)xr + [55] call print_uchar to:do_perspective::@9 do_perspective::@9: scope:[do_perspective] from do_perspective::@8 [56] phi() - [57] call print_str + [57] call print_str to:do_perspective::@10 do_perspective::@10: scope:[do_perspective] from do_perspective::@9 - [58] print_uchar::b#2 = (byte)yr - [59] call print_uchar + [58] print_uchar::b#2 = (char)yr + [59] call print_uchar to:do_perspective::@11 do_perspective::@11: scope:[do_perspective] from do_perspective::@10 [60] phi() - [61] call print_str + [61] call print_str to:do_perspective::@12 do_perspective::@12: scope:[do_perspective] from do_perspective::@11 [62] phi() - [63] call print_ln + [63] call print_ln to:do_perspective::@return do_perspective::@return: scope:[do_perspective] from do_perspective::@12 [64] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [65] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [66] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [66] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [67] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -146,7 +146,7 @@ memset::@2: scope:[memset] from memset::@1 [70] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 [71] print_char_cursor#77 = phi( do_perspective/print_screen#0, do_perspective::@11/print_char_cursor#11, do_perspective::@2/print_char_cursor#11, do_perspective::@4/print_char_cursor#11, do_perspective::@6/print_char_cursor#11, do_perspective::@9/print_char_cursor#11 ) [71] print_str::str#10 = phi( do_perspective/do_perspective::str, do_perspective::@11/do_perspective::str5, do_perspective::@2/do_perspective::str1, do_perspective::@4/do_perspective::str1, do_perspective::@6/do_perspective::str3, do_perspective::@9/do_perspective::str1 ) @@ -161,38 +161,38 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [75] print_char::ch#0 = *print_str::str#7 - [76] call print_char + [76] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [77] print_str::str#0 = ++ print_str::str#7 to:print_str::@1 -void print_schar(signed byte print_schar::b) +void print_schar(signed char b) print_schar: scope:[print_schar] from do_perspective::@1 do_perspective::@3 do_perspective::@5 [78] print_schar::b#4 = phi( do_perspective::@1/do_perspective::x#0, do_perspective::@3/do_perspective::y#0, do_perspective::@5/do_perspective::z#0 ) [79] if(print_schar::b#4<0) goto print_schar::@1 to:print_schar::@3 print_schar::@3: scope:[print_schar] from print_schar [80] phi() - [81] call print_char + [81] call print_char to:print_schar::@2 print_schar::@2: scope:[print_schar] from print_schar::@3 print_schar::@4 [82] print_schar::b#6 = phi( print_schar::@4/print_schar::b#0, print_schar::@3/print_schar::b#4 ) - [83] print_uchar::b#0 = (byte)print_schar::b#6 - [84] call print_uchar + [83] print_uchar::b#0 = (char)print_schar::b#6 + [84] call print_uchar to:print_schar::@return print_schar::@return: scope:[print_schar] from print_schar::@2 [85] return to:@return print_schar::@1: scope:[print_schar] from print_schar [86] phi() - [87] call print_char + [87] call print_char to:print_schar::@4 print_schar::@4: scope:[print_schar] from print_schar::@1 [88] print_schar::b#0 = - print_schar::b#4 to:print_schar::@2 -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) +void perspective(signed char x , signed char y , signed char z) perspective: scope:[perspective] from do_perspective::@7 [89] xr = do_perspective::x#0 [90] yr = do_perspective::y#0 @@ -203,18 +203,18 @@ perspective::@return: scope:[perspective] from perspective [93] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from do_perspective::@10 do_perspective::@8 print_schar::@2 [94] print_char_cursor#72 = phi( do_perspective::@10/print_char_cursor#1, do_perspective::@8/print_char_cursor#1, print_schar::@2/print_char_cursor#11 ) [94] print_uchar::b#3 = phi( do_perspective::@10/print_uchar::b#2, do_perspective::@8/print_uchar::b#1, print_schar::@2/print_uchar::b#0 ) [95] print_uchar::$0 = print_uchar::b#3 >> 4 [96] print_char::ch#3 = print_hextab[print_uchar::$0] - [97] call print_char + [97] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [98] print_uchar::$2 = print_uchar::b#3 & $f [99] print_char::ch#4 = print_hextab[print_uchar::$2] - [100] call print_char + [100] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [101] return @@ -233,7 +233,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [106] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_str::@2 print_uchar print_uchar::@1 [107] print_char_cursor#45 = phi( print_schar::@1/print_char_cursor#1, print_schar::@3/print_char_cursor#1, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#72, print_uchar::@1/print_char_cursor#11 ) [107] print_char::ch#5 = phi( print_schar::@1/'-', print_schar::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) diff --git a/src/test/ref/examples/c64/3d/perspective.log b/src/test/ref/examples/c64/3d/perspective.log index f57789b0c..8949c3aae 100644 --- a/src/test/ref/examples/c64/3d/perspective.log +++ b/src/test/ref/examples/c64/3d/perspective.log @@ -7,13 +7,13 @@ Setting inferred volatile on symbol affected by address-of: psp2 in asm { ldazr Setting inferred volatile on symbol affected by address-of: yr in asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } Setting inferred volatile on symbol affected by address-of: xr in asm { ldazr staPP+1 PP: ldaPERSP_Z stapsp1 eor#$ff stapsp2 clc ldyyr lda(psp1),y sbc(psp2),y adc#$80 stayr clc ldyxr lda(psp1),y sbc(psp2),y adc#$80 staxr } Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement mulf_init::$0 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 print_char_cursor#77 = phi( do_perspective/print_char_cursor#74, do_perspective::@11/print_char_cursor#27, do_perspective::@2/print_char_cursor#19, do_perspective::@4/print_char_cursor#21, do_perspective::@6/print_char_cursor#23, do_perspective::@9/print_char_cursor#25 ) print_str::str#10 = phi( do_perspective/print_str::str#1, do_perspective::@11/print_str::str#6, do_perspective::@2/print_str::str#2, do_perspective::@4/print_str::str#3, do_perspective::@6/print_str::str#4, do_perspective::@9/print_str::str#5 ) @@ -28,7 +28,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#66 = phi( print_str::@1/print_char_cursor#67 ) print_str::str#8 = phi( print_str::@1/print_str::str#7 ) print_char::ch#0 = *print_str::str#8 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#9 = phi( print_str::@2/print_str::str#8 ) @@ -67,7 +67,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_schar(signed byte print_schar::b) +void print_schar(signed char b) print_schar: scope:[print_schar] from do_perspective::@1 do_perspective::@3 do_perspective::@5 print_char_cursor#78 = phi( do_perspective::@1/print_char_cursor#18, do_perspective::@3/print_char_cursor#20, do_perspective::@5/print_char_cursor#22 ) print_schar::b#4 = phi( do_perspective::@1/print_schar::b#1, do_perspective::@3/print_schar::b#2, do_perspective::@5/print_schar::b#3 ) @@ -78,7 +78,7 @@ print_schar::@1: scope:[print_schar] from print_schar print_schar::b#7 = phi( print_schar/print_schar::b#4 ) print_char_cursor#69 = phi( print_schar/print_char_cursor#78 ) print_char::ch#1 = '-' - call print_char + call print_char to:print_schar::@4 print_schar::@4: scope:[print_schar] from print_schar::@1 print_schar::b#5 = phi( print_schar::@1/print_schar::b#7 ) @@ -91,7 +91,7 @@ print_schar::@3: scope:[print_schar] from print_schar print_schar::b#9 = phi( print_schar/print_schar::b#4 ) print_char_cursor#70 = phi( print_schar/print_char_cursor#78 ) print_char::ch#2 = ' ' - call print_char + call print_char to:print_schar::@5 print_schar::@5: scope:[print_schar] from print_schar::@3 print_schar::b#8 = phi( print_schar::@3/print_schar::b#9 ) @@ -101,8 +101,8 @@ print_schar::@5: scope:[print_schar] from print_schar::@3 print_schar::@2: scope:[print_schar] from print_schar::@4 print_schar::@5 print_char_cursor#71 = phi( print_schar::@4/print_char_cursor#4, print_schar::@5/print_char_cursor#5 ) print_schar::b#6 = phi( print_schar::@4/print_schar::b#0, print_schar::@5/print_schar::b#8 ) - print_uchar::b#0 = (byte)print_schar::b#6 - call print_uchar + print_uchar::b#0 = (char)print_schar::b#6 + call print_uchar to:print_schar::@6 print_schar::@6: scope:[print_schar] from print_schar::@2 print_char_cursor#40 = phi( print_schar::@2/print_char_cursor#10 ) @@ -114,13 +114,13 @@ print_schar::@return: scope:[print_schar] from print_schar::@6 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from do_perspective::@10 do_perspective::@8 print_schar::@2 print_char_cursor#72 = phi( do_perspective::@10/print_char_cursor#26, do_perspective::@8/print_char_cursor#75, print_schar::@2/print_char_cursor#71 ) print_uchar::b#3 = phi( do_perspective::@10/print_uchar::b#2, do_perspective::@8/print_uchar::b#1, print_schar::@2/print_uchar::b#0 ) print_uchar::$0 = print_uchar::b#3 >> 4 print_char::ch#3 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#4 = phi( print_uchar/print_uchar::b#3 ) @@ -128,7 +128,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#8 = print_char_cursor#42 print_uchar::$2 = print_uchar::b#4 & $f print_char::ch#4 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#43 = phi( print_uchar::@1/print_char_cursor#12 ) @@ -140,7 +140,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_str::@2 print_uchar print_uchar::@1 print_char_cursor#45 = phi( print_schar::@1/print_char_cursor#69, print_schar::@3/print_char_cursor#70, print_str::@2/print_char_cursor#66, print_uchar/print_char_cursor#72, print_uchar::@1/print_char_cursor#8 ) print_char::ch#5 = phi( print_schar::@1/print_char::ch#1, print_schar::@3/print_char::ch#2, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) @@ -156,10 +156,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main::@1 print_screen#2 = phi( main::@1/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -175,7 +175,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -192,9 +192,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -224,15 +224,15 @@ main: scope:[main] from __start::@1 print_line_cursor#27 = phi( __start::@1/print_line_cursor#26 ) print_screen#7 = phi( __start::@1/print_screen#8 ) asm { sei } - call mulf_init + call mulf_init to:main::@1 main::@1: scope:[main] from main print_char_cursor#73 = phi( main/print_char_cursor#79 ) print_line_cursor#24 = phi( main/print_line_cursor#27 ) print_screen#5 = phi( main/print_screen#7 ) - psp1 = (word)mulf_sqr1 - psp2 = (word)mulf_sqr2 - call print_cls + psp1 = (unsigned int)mulf_sqr1 + psp2 = (unsigned int)mulf_sqr2 + call print_cls to:main::@2 main::@2: scope:[main] from main::@1 print_char_cursor#48 = phi( main::@1/print_char_cursor#14 ) @@ -242,7 +242,7 @@ main::@2: scope:[main] from main::@1 do_perspective::x#0 = $39 do_perspective::y#0 = -$47 do_perspective::z#0 = $36 - call do_perspective + call do_perspective to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#17 = phi( main::@2/print_line_cursor#8 ) @@ -258,7 +258,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) +void do_perspective(signed char x , signed char y , signed char z) do_perspective: scope:[do_perspective] from main::@2 print_line_cursor#39 = phi( main::@2/print_line_cursor#4 ) do_perspective::z#8 = phi( main::@2/do_perspective::z#0 ) @@ -266,7 +266,7 @@ do_perspective: scope:[do_perspective] from main::@2 do_perspective::x#3 = phi( main::@2/do_perspective::x#0 ) print_char_cursor#74 = phi( main::@2/print_char_cursor#15 ) print_str::str#1 = do_perspective::str - call print_str + call print_str to:do_perspective::@1 do_perspective::@1: scope:[do_perspective] from do_perspective print_line_cursor#38 = phi( do_perspective/print_line_cursor#39 ) @@ -276,7 +276,7 @@ do_perspective::@1: scope:[do_perspective] from do_perspective print_char_cursor#51 = phi( do_perspective/print_char_cursor#1 ) print_char_cursor#18 = print_char_cursor#51 print_schar::b#1 = do_perspective::x#1 - call print_schar + call print_schar to:do_perspective::@2 do_perspective::@2: scope:[do_perspective] from do_perspective::@1 print_line_cursor#37 = phi( do_perspective::@1/print_line_cursor#38 ) @@ -286,7 +286,7 @@ do_perspective::@2: scope:[do_perspective] from do_perspective::@1 print_char_cursor#52 = phi( do_perspective::@1/print_char_cursor#7 ) print_char_cursor#19 = print_char_cursor#52 print_str::str#2 = do_perspective::str1 - call print_str + call print_str to:do_perspective::@3 do_perspective::@3: scope:[do_perspective] from do_perspective::@2 print_line_cursor#36 = phi( do_perspective::@2/print_line_cursor#37 ) @@ -296,7 +296,7 @@ do_perspective::@3: scope:[do_perspective] from do_perspective::@2 print_char_cursor#53 = phi( do_perspective::@2/print_char_cursor#1 ) print_char_cursor#20 = print_char_cursor#53 print_schar::b#2 = do_perspective::y#1 - call print_schar + call print_schar to:do_perspective::@4 do_perspective::@4: scope:[do_perspective] from do_perspective::@3 print_line_cursor#35 = phi( do_perspective::@3/print_line_cursor#36 ) @@ -306,7 +306,7 @@ do_perspective::@4: scope:[do_perspective] from do_perspective::@3 print_char_cursor#54 = phi( do_perspective::@3/print_char_cursor#7 ) print_char_cursor#21 = print_char_cursor#54 print_str::str#3 = do_perspective::str2 - call print_str + call print_str to:do_perspective::@5 do_perspective::@5: scope:[do_perspective] from do_perspective::@4 print_line_cursor#34 = phi( do_perspective::@4/print_line_cursor#35 ) @@ -316,7 +316,7 @@ do_perspective::@5: scope:[do_perspective] from do_perspective::@4 print_char_cursor#55 = phi( do_perspective::@4/print_char_cursor#1 ) print_char_cursor#22 = print_char_cursor#55 print_schar::b#3 = do_perspective::z#1 - call print_schar + call print_schar to:do_perspective::@6 do_perspective::@6: scope:[do_perspective] from do_perspective::@5 print_line_cursor#33 = phi( do_perspective::@5/print_line_cursor#34 ) @@ -326,7 +326,7 @@ do_perspective::@6: scope:[do_perspective] from do_perspective::@5 print_char_cursor#56 = phi( do_perspective::@5/print_char_cursor#7 ) print_char_cursor#23 = print_char_cursor#56 print_str::str#4 = do_perspective::str3 - call print_str + call print_str to:do_perspective::@7 do_perspective::@7: scope:[do_perspective] from do_perspective::@6 print_line_cursor#32 = phi( do_perspective::@6/print_line_cursor#33 ) @@ -338,40 +338,40 @@ do_perspective::@7: scope:[do_perspective] from do_perspective::@6 perspective::x#0 = do_perspective::x#2 perspective::y#0 = do_perspective::y#2 perspective::z#0 = do_perspective::z#2 - call perspective + call perspective to:do_perspective::@8 do_perspective::@8: scope:[do_perspective] from do_perspective::@7 print_line_cursor#31 = phi( do_perspective::@7/print_line_cursor#32 ) print_char_cursor#75 = phi( do_perspective::@7/print_char_cursor#24 ) - print_uchar::b#1 = (byte)xr - call print_uchar + print_uchar::b#1 = (char)xr + call print_uchar to:do_perspective::@9 do_perspective::@9: scope:[do_perspective] from do_perspective::@8 print_line_cursor#30 = phi( do_perspective::@8/print_line_cursor#31 ) print_char_cursor#58 = phi( do_perspective::@8/print_char_cursor#10 ) print_char_cursor#25 = print_char_cursor#58 print_str::str#5 = do_perspective::str4 - call print_str + call print_str to:do_perspective::@10 do_perspective::@10: scope:[do_perspective] from do_perspective::@9 print_line_cursor#29 = phi( do_perspective::@9/print_line_cursor#30 ) print_char_cursor#59 = phi( do_perspective::@9/print_char_cursor#1 ) print_char_cursor#26 = print_char_cursor#59 - print_uchar::b#2 = (byte)yr - call print_uchar + print_uchar::b#2 = (char)yr + call print_uchar to:do_perspective::@11 do_perspective::@11: scope:[do_perspective] from do_perspective::@10 print_line_cursor#28 = phi( do_perspective::@10/print_line_cursor#29 ) print_char_cursor#60 = phi( do_perspective::@10/print_char_cursor#10 ) print_char_cursor#27 = print_char_cursor#60 print_str::str#6 = do_perspective::str5 - call print_str + call print_str to:do_perspective::@12 do_perspective::@12: scope:[do_perspective] from do_perspective::@11 print_line_cursor#25 = phi( do_perspective::@11/print_line_cursor#28 ) print_char_cursor#61 = phi( do_perspective::@11/print_char_cursor#1 ) print_char_cursor#28 = print_char_cursor#61 - call print_ln + call print_ln to:do_perspective::@13 do_perspective::@13: scope:[do_perspective] from do_perspective::@12 print_char_cursor#62 = phi( do_perspective::@12/print_char_cursor#3 ) @@ -387,7 +387,7 @@ do_perspective::@return: scope:[do_perspective] from do_perspective::@13 return to:@return -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) +void perspective(signed char x , signed char y , signed char z) perspective: scope:[perspective] from do_perspective::@7 perspective::z#1 = phi( do_perspective::@7/perspective::z#0 ) perspective::y#1 = phi( do_perspective::@7/perspective::y#0 ) @@ -440,7 +440,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#9 = print_screen#0 print_char_cursor#31 = print_line_cursor#9 xr = 0 @@ -453,7 +453,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#8 = phi( __start::__init1/print_screen#0 ) print_char_cursor#76 = phi( __start::__init1/print_char_cursor#31 ) print_line_cursor#26 = phi( __start::__init1/print_line_cursor#9 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#8 ) @@ -473,7 +473,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant signed byte* PERSP_Z[$100] = kickasm {{ { +__constant signed char PERSP_Z[$100] = kickasm {{ { .var d = 256.0 .var z0 = 5.0 .for(var z=0;z<$100;z++) { @@ -485,306 +485,306 @@ constant signed byte* PERSP_Z[$100] = kickasm {{ { } } }} -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) -constant byte* do_perspective::str[2] = "(" -constant byte* do_perspective::str1[2] = "," -constant byte* do_perspective::str2[2] = "," -constant byte* do_perspective::str3[7] = ") -> (" -constant byte* do_perspective::str4[2] = "," -constant byte* do_perspective::str5[2] = ")" -signed byte do_perspective::x -signed byte do_perspective::x#0 -signed byte do_perspective::x#1 -signed byte do_perspective::x#2 -signed byte do_perspective::x#3 -signed byte do_perspective::x#4 -signed byte do_perspective::x#5 -signed byte do_perspective::x#6 -signed byte do_perspective::x#7 -signed byte do_perspective::x#8 -signed byte do_perspective::y -signed byte do_perspective::y#0 -signed byte do_perspective::y#1 -signed byte do_perspective::y#2 -signed byte do_perspective::y#3 -signed byte do_perspective::y#4 -signed byte do_perspective::y#5 -signed byte do_perspective::y#6 -signed byte do_perspective::y#7 -signed byte do_perspective::y#8 -signed byte do_perspective::z -signed byte do_perspective::z#0 -signed byte do_perspective::z#1 -signed byte do_perspective::z#2 -signed byte do_perspective::z#3 -signed byte do_perspective::z#4 -signed byte do_perspective::z#5 -signed byte do_perspective::z#6 -signed byte do_perspective::z#7 -signed byte do_perspective::z#8 +void do_perspective(signed char x , signed char y , signed char z) +__constant char do_perspective::str[2] = "(" +__constant char do_perspective::str1[2] = "," +__constant char do_perspective::str2[2] = "," +__constant char do_perspective::str3[7] = ") -> (" +__constant char do_perspective::str4[2] = "," +__constant char do_perspective::str5[2] = ")" +signed char do_perspective::x +signed char do_perspective::x#0 +signed char do_perspective::x#1 +signed char do_perspective::x#2 +signed char do_perspective::x#3 +signed char do_perspective::x#4 +signed char do_perspective::x#5 +signed char do_perspective::x#6 +signed char do_perspective::x#7 +signed char do_perspective::x#8 +signed char do_perspective::y +signed char do_perspective::y#0 +signed char do_perspective::y#1 +signed char do_perspective::y#2 +signed char do_perspective::y#3 +signed char do_perspective::y#4 +signed char do_perspective::y#5 +signed char do_perspective::y#6 +signed char do_perspective::y#7 +signed char do_perspective::y#8 +signed char do_perspective::z +signed char do_perspective::z#0 +signed char do_perspective::z#1 +signed char do_perspective::z#2 +signed char do_perspective::z#3 +signed char do_perspective::z#4 +signed char do_perspective::z#5 +signed char do_perspective::z#6 +signed char do_perspective::z#7 +signed char do_perspective::z#8 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 void mulf_init() -byte~ mulf_init::$1 -byte~ mulf_init::$2 -number~ mulf_init::$3 -number~ mulf_init::$4 -number~ mulf_init::$5 -number~ mulf_init::$6 -bool~ mulf_init::$7 -signed word mulf_init::add -signed word mulf_init::add#0 -signed word mulf_init::add#1 -signed word mulf_init::add#2 -byte mulf_init::i -byte mulf_init::i#0 -byte mulf_init::i#1 -byte mulf_init::i#2 -signed word mulf_init::sqr -signed word mulf_init::sqr#0 -signed word mulf_init::sqr#1 -signed word mulf_init::sqr#2 -byte mulf_init::val -byte mulf_init::val#0 -constant byte* mulf_sqr1[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2[$200] = { fill( $200, 0) } -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) -signed byte perspective::x -signed byte perspective::x#0 -signed byte perspective::x#1 -signed byte perspective::y -signed byte perspective::y#0 -signed byte perspective::y#1 -signed byte perspective::z -signed byte perspective::z#0 -signed byte perspective::z#1 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +char mulf_init::$1 +char mulf_init::$2 +number mulf_init::$3 +number mulf_init::$4 +number mulf_init::$5 +number mulf_init::$6 +bool mulf_init::$7 +int mulf_init::add +int mulf_init::add#0 +int mulf_init::add#1 +int mulf_init::add#2 +char mulf_init::i +char mulf_init::i#0 +char mulf_init::i#1 +char mulf_init::i#2 +int mulf_init::sqr +int mulf_init::sqr#0 +int mulf_init::sqr#1 +int mulf_init::sqr#2 +char mulf_init::val +char mulf_init::val#0 +__constant char mulf_sqr1[$200] = { fill( $200, 0) } +__constant char mulf_sqr2[$200] = { fill( $200, 0) } +void perspective(signed char x , signed char y , signed char z) +signed char perspective::x +signed char perspective::x#0 +signed char perspective::x#1 +signed char perspective::y +signed char perspective::y#0 +signed char perspective::y#1 +signed char perspective::z +signed char perspective::z#0 +signed char perspective::z#1 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -void print_schar(signed byte print_schar::b) -bool~ print_schar::$0 -signed byte~ print_schar::$4 -signed byte print_schar::b -signed byte print_schar::b#0 -signed byte print_schar::b#1 -signed byte print_schar::b#2 -signed byte print_schar::b#3 -signed byte print_schar::b#4 -signed byte print_schar::b#5 -signed byte print_schar::b#6 -signed byte print_schar::b#7 -signed byte print_schar::b#8 -signed byte print_schar::b#9 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -byte* print_screen#8 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#10 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 -byte* print_str::str#8 -byte* print_str::str#9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -byte print_uchar::b#4 -volatile word psp1 loadstore -volatile word psp2 loadstore -volatile signed byte xr loadstore -volatile signed byte yr loadstore -volatile signed byte zr loadstore +char *print_ln::$0 +bool print_ln::$1 +void print_schar(signed char b) +bool print_schar::$0 +signed char print_schar::$4 +signed char print_schar::b +signed char print_schar::b#0 +signed char print_schar::b#1 +signed char print_schar::b#2 +signed char print_schar::b#3 +signed char print_schar::b#4 +signed char print_schar::b#5 +signed char print_schar::b#6 +signed char print_schar::b#7 +signed char print_schar::b#8 +signed char print_schar::b#9 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +char *print_screen#8 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#10 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 +char *print_str::str#8 +char *print_str::str#9 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +char print_uchar::b#4 +__loadstore volatile unsigned int psp1 +__loadstore volatile unsigned int psp2 +__loadstore volatile signed char xr +__loadstore volatile signed char yr +__loadstore volatile signed char zr Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#7 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#12 + $28 @@ -812,7 +812,7 @@ Adding number conversion cast (unumber) $100 in (mulf_sqr2+$100)[mulf_init::$6] Adding number conversion cast (snumber) 2 in mulf_init::add#1 = mulf_init::add#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast do_perspective::x#0 = (snumber)$39 Inlining cast do_perspective::y#0 = (snumber)-$47 Inlining cast do_perspective::z#0 = (snumber)$36 @@ -836,33 +836,33 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $100 Simplifying constant integer cast 2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) $39 -Finalized signed number type (signed byte) -$47 -Finalized signed number type (signed byte) $36 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $100 -Finalized signed number type (signed byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) $39 +Finalized signed number type (signed char) -$47 +Finalized signed number type (signed char) $36 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $100 +Finalized signed number type (signed char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#4 & $f -Inferred type updated to byte in mulf_init::$3 = mulf_init::i#2 + 1 -Inferred type updated to byte in mulf_init::$4 = mulf_init::i#2 + 1 -Inferred type updated to byte in mulf_init::$5 = 1 - mulf_init::i#2 -Inferred type updated to byte in mulf_init::$6 = 1 - mulf_init::i#2 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#4 & $f +Inferred type updated to char in mulf_init::$3 = mulf_init::i#2 + 1 +Inferred type updated to char in mulf_init::$4 = mulf_init::i#2 + 1 +Inferred type updated to char in mulf_init::$5 = 1 - mulf_init::i#2 +Inferred type updated to char in mulf_init::$6 = 1 - mulf_init::i#2 Inversing boolean not [83] memset::$1 = memset::num#1 <= 0 from [82] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#7 = print_str::str#8 print_str::str#9 @@ -977,8 +977,8 @@ Simple Condition memset::$1 [53] if(memset::num#0<=0) goto memset::@1 Simple Condition memset::$3 [60] if(memset::dst#2!=memset::end#0) goto memset::@4 Simple Condition mulf_init::$7 [147] if(mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [67] psp1 = (word)mulf_sqr1 -Constant right-side identified [68] psp2 = (word)mulf_sqr2 +Constant right-side identified [67] psp1 = (unsigned int)mulf_sqr1 +Constant right-side identified [68] psp2 = (unsigned int)mulf_sqr2 Successful SSA optimization Pass2ConstantRValueConsolidation Constant print_char::ch#1 = '-' Constant print_char::ch#2 = ' ' @@ -996,9 +996,9 @@ Constant print_str::str#6 = do_perspective::str5 Constant mulf_init::sqr#0 = 0 Constant mulf_init::add#0 = 1 Constant mulf_init::i#0 = 0 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Constant print_schar::b#1 = do_perspective::x#0 Constant print_schar::b#2 = do_perspective::y#0 Constant print_schar::b#3 = do_perspective::z#0 @@ -1007,8 +1007,8 @@ Constant perspective::y#0 = do_perspective::y#0 Constant perspective::z#0 = do_perspective::z#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [53] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -1022,7 +1022,7 @@ Adding number conversion cast (unumber) $81 in if(mulf_init::i#1!=$81) goto mulf Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $81 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $81 +Finalized unsigned number type (char) $81 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias mulf_init::$2 = mulf_init::$1 Alias mulf_init::$6 = mulf_init::$5 @@ -1056,14 +1056,14 @@ Constant inlined print_schar::b#3 = do_perspective::z#0 Constant inlined mulf_init::add#0 = 1 Constant inlined print_schar::b#2 = do_perspective::y#0 Constant inlined perspective::z#0 = do_perspective::z#0 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined perspective::y#0 = do_perspective::y#0 Constant inlined perspective::x#0 = do_perspective::x#0 Constant inlined print_char::ch#1 = '-' Constant inlined print_str::str#4 = do_perspective::str3 Constant inlined print_str::str#3 = do_perspective::str1 Constant inlined print_str::str#2 = do_perspective::str1 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = do_perspective::str Constant inlined print_str::str#6 = do_perspective::str5 Constant inlined print_str::str#5 = do_perspective::str1 @@ -1073,15 +1073,15 @@ Consolidated array index constant in assignment (mulf_sqr2+$100+1)[mulf_init::$4 Successful SSA optimization Pass2ConstantAdditionElimination Alias mulf_init::i#2 = mulf_init::$3 mulf_init::$4 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting mulf_init::@2(between mulf_init::@1 and mulf_init::@1) @@ -1198,7 +1198,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -1207,16 +1207,16 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 asm { sei } - [10] call mulf_init + [10] call mulf_init to:main::@1 main::@1: scope:[main] from main - [11] psp1 = (word)mulf_sqr1 - [12] psp2 = (word)mulf_sqr2 - [13] call print_cls + [11] psp1 = (unsigned int)mulf_sqr1 + [12] psp2 = (unsigned int)mulf_sqr2 + [13] call print_cls to:main::@2 main::@2: scope:[main] from main::@1 [14] phi() - [15] call do_perspective + [15] call do_perspective to:main::@return main::@return: scope:[main] from main::@2 [16] return @@ -1253,75 +1253,75 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@1 void print_cls() print_cls: scope:[print_cls] from main::@1 [35] phi() - [36] call memset + [36] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [37] return to:@return -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) +void do_perspective(signed char x , signed char y , signed char z) do_perspective: scope:[do_perspective] from main::@2 [38] phi() - [39] call print_str + [39] call print_str to:do_perspective::@1 do_perspective::@1: scope:[do_perspective] from do_perspective [40] phi() - [41] call print_schar + [41] call print_schar to:do_perspective::@2 do_perspective::@2: scope:[do_perspective] from do_perspective::@1 [42] phi() - [43] call print_str + [43] call print_str to:do_perspective::@3 do_perspective::@3: scope:[do_perspective] from do_perspective::@2 [44] phi() - [45] call print_schar + [45] call print_schar to:do_perspective::@4 do_perspective::@4: scope:[do_perspective] from do_perspective::@3 [46] phi() - [47] call print_str + [47] call print_str to:do_perspective::@5 do_perspective::@5: scope:[do_perspective] from do_perspective::@4 [48] phi() - [49] call print_schar + [49] call print_schar to:do_perspective::@6 do_perspective::@6: scope:[do_perspective] from do_perspective::@5 [50] phi() - [51] call print_str + [51] call print_str to:do_perspective::@7 do_perspective::@7: scope:[do_perspective] from do_perspective::@6 [52] phi() - [53] call perspective + [53] call perspective to:do_perspective::@8 do_perspective::@8: scope:[do_perspective] from do_perspective::@7 - [54] print_uchar::b#1 = (byte)xr - [55] call print_uchar + [54] print_uchar::b#1 = (char)xr + [55] call print_uchar to:do_perspective::@9 do_perspective::@9: scope:[do_perspective] from do_perspective::@8 [56] phi() - [57] call print_str + [57] call print_str to:do_perspective::@10 do_perspective::@10: scope:[do_perspective] from do_perspective::@9 - [58] print_uchar::b#2 = (byte)yr - [59] call print_uchar + [58] print_uchar::b#2 = (char)yr + [59] call print_uchar to:do_perspective::@11 do_perspective::@11: scope:[do_perspective] from do_perspective::@10 [60] phi() - [61] call print_str + [61] call print_str to:do_perspective::@12 do_perspective::@12: scope:[do_perspective] from do_perspective::@11 [62] phi() - [63] call print_ln + [63] call print_ln to:do_perspective::@return do_perspective::@return: scope:[do_perspective] from do_perspective::@12 [64] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [65] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [66] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [66] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [67] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1332,7 +1332,7 @@ memset::@2: scope:[memset] from memset::@1 [70] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9 [71] print_char_cursor#77 = phi( do_perspective/print_screen#0, do_perspective::@11/print_char_cursor#11, do_perspective::@2/print_char_cursor#11, do_perspective::@4/print_char_cursor#11, do_perspective::@6/print_char_cursor#11, do_perspective::@9/print_char_cursor#11 ) [71] print_str::str#10 = phi( do_perspective/do_perspective::str, do_perspective::@11/do_perspective::str5, do_perspective::@2/do_perspective::str1, do_perspective::@4/do_perspective::str1, do_perspective::@6/do_perspective::str3, do_perspective::@9/do_perspective::str1 ) @@ -1347,38 +1347,38 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [75] print_char::ch#0 = *print_str::str#7 - [76] call print_char + [76] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [77] print_str::str#0 = ++ print_str::str#7 to:print_str::@1 -void print_schar(signed byte print_schar::b) +void print_schar(signed char b) print_schar: scope:[print_schar] from do_perspective::@1 do_perspective::@3 do_perspective::@5 [78] print_schar::b#4 = phi( do_perspective::@1/do_perspective::x#0, do_perspective::@3/do_perspective::y#0, do_perspective::@5/do_perspective::z#0 ) [79] if(print_schar::b#4<0) goto print_schar::@1 to:print_schar::@3 print_schar::@3: scope:[print_schar] from print_schar [80] phi() - [81] call print_char + [81] call print_char to:print_schar::@2 print_schar::@2: scope:[print_schar] from print_schar::@3 print_schar::@4 [82] print_schar::b#6 = phi( print_schar::@4/print_schar::b#0, print_schar::@3/print_schar::b#4 ) - [83] print_uchar::b#0 = (byte)print_schar::b#6 - [84] call print_uchar + [83] print_uchar::b#0 = (char)print_schar::b#6 + [84] call print_uchar to:print_schar::@return print_schar::@return: scope:[print_schar] from print_schar::@2 [85] return to:@return print_schar::@1: scope:[print_schar] from print_schar [86] phi() - [87] call print_char + [87] call print_char to:print_schar::@4 print_schar::@4: scope:[print_schar] from print_schar::@1 [88] print_schar::b#0 = - print_schar::b#4 to:print_schar::@2 -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) +void perspective(signed char x , signed char y , signed char z) perspective: scope:[perspective] from do_perspective::@7 [89] xr = do_perspective::x#0 [90] yr = do_perspective::y#0 @@ -1389,18 +1389,18 @@ perspective::@return: scope:[perspective] from perspective [93] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from do_perspective::@10 do_perspective::@8 print_schar::@2 [94] print_char_cursor#72 = phi( do_perspective::@10/print_char_cursor#1, do_perspective::@8/print_char_cursor#1, print_schar::@2/print_char_cursor#11 ) [94] print_uchar::b#3 = phi( do_perspective::@10/print_uchar::b#2, do_perspective::@8/print_uchar::b#1, print_schar::@2/print_uchar::b#0 ) [95] print_uchar::$0 = print_uchar::b#3 >> 4 [96] print_char::ch#3 = print_hextab[print_uchar::$0] - [97] call print_char + [97] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [98] print_uchar::$2 = print_uchar::b#3 & $f [99] print_char::ch#4 = print_hextab[print_uchar::$2] - [100] call print_char + [100] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [101] return @@ -1419,7 +1419,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [106] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_str::@2 print_uchar print_uchar::@1 [107] print_char_cursor#45 = phi( print_schar::@1/print_char_cursor#1, print_schar::@3/print_char_cursor#1, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#72, print_uchar::@1/print_char_cursor#11 ) [107] print_char::ch#5 = phi( print_schar::@1/'-', print_schar::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) @@ -1433,79 +1433,79 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void __start() -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) -signed byte do_perspective::x -signed byte do_perspective::y -signed byte do_perspective::z +void do_perspective(signed char x , signed char y , signed char z) +signed char do_perspective::x +signed char do_perspective::y +signed char do_perspective::z void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 20002.0 -byte* memset::dst#2 13334.666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 20002.0 +char *memset::dst#2 // 13334.666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str void mulf_init() -byte~ mulf_init::$2 1501.5 -byte~ mulf_init::$6 1501.5 -signed word mulf_init::add -signed word mulf_init::add#1 667.3333333333334 -signed word mulf_init::add#2 231.0 -byte mulf_init::i -byte mulf_init::i#1 1501.5 -byte mulf_init::i#2 572.0 -signed word mulf_init::sqr -signed word mulf_init::sqr#1 500.5 -signed word mulf_init::sqr#2 250.25 -byte mulf_init::val -byte mulf_init::val#0 900.9000000000001 -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) -signed byte perspective::x -signed byte perspective::y -signed byte perspective::z -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#3 20002.0 -byte print_char::ch#4 20002.0 -byte print_char::ch#5 130004.0 -byte* print_char_cursor -byte* print_char_cursor#1 1277.230769230769 -byte* print_char_cursor#11 4673.423076923077 -byte* print_char_cursor#45 116003.5 -byte* print_char_cursor#72 3734.6666666666665 -byte* print_char_cursor#77 1506.0 +char mulf_init::$2 // 1501.5 +char mulf_init::$6 // 1501.5 +int mulf_init::add +int mulf_init::add#1 // 667.3333333333334 +int mulf_init::add#2 // 231.0 +char mulf_init::i +char mulf_init::i#1 // 1501.5 +char mulf_init::i#2 // 572.0 +int mulf_init::sqr +int mulf_init::sqr#1 // 500.5 +int mulf_init::sqr#2 // 250.25 +char mulf_init::val +char mulf_init::val#0 // 900.9000000000001 +void perspective(signed char x , signed char y , signed char z) +signed char perspective::x +signed char perspective::y +signed char perspective::z +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#3 // 20002.0 +char print_char::ch#4 // 20002.0 +char print_char::ch#5 // 130004.0 +char *print_char_cursor +char *print_char_cursor#1 // 1277.230769230769 +char *print_char_cursor#11 // 4673.423076923077 +char *print_char_cursor#45 // 116003.5 +char *print_char_cursor#72 // 3734.6666666666665 +char *print_char_cursor#77 // 1506.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 15001.5 -byte* print_line_cursor#12 20002.0 +char *print_line_cursor +char *print_line_cursor#0 // 15001.5 +char *print_line_cursor#12 // 20002.0 void print_ln() -void print_schar(signed byte print_schar::b) -signed byte print_schar::b -signed byte print_schar::b#0 2002.0 -signed byte print_schar::b#4 500.5 -signed byte print_schar::b#6 2002.0 -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 20002.0 -byte* print_str::str#10 1001.0 -byte* print_str::str#7 10251.25 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 202.0 -byte print_uchar::b#2 202.0 -byte print_uchar::b#3 5301.25 -volatile word psp1 loadstore 0.5909090909090909 -volatile word psp2 loadstore 0.6190476190476191 -volatile signed byte xr loadstore 167.16666666666669 -volatile signed byte yr loadstore 111.44444444444446 -volatile signed byte zr loadstore 1003.0 +void print_schar(signed char b) +signed char print_schar::b +signed char print_schar::b#0 // 2002.0 +signed char print_schar::b#4 // 500.5 +signed char print_schar::b#6 // 2002.0 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 20002.0 +char *print_str::str#10 // 1001.0 +char *print_str::str#7 // 10251.25 +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 202.0 +char print_uchar::b#2 // 202.0 +char print_uchar::b#3 // 5301.25 +__loadstore volatile unsigned int psp1 // 0.5909090909090909 +__loadstore volatile unsigned int psp2 // 0.6190476190476191 +__loadstore volatile signed char xr // 167.16666666666669 +__loadstore volatile signed char yr // 111.44444444444446 +__loadstore volatile signed char zr // 1003.0 Initial phi equivalence classes [ mulf_init::sqr#2 mulf_init::sqr#1 ] @@ -1575,8 +1575,8 @@ Statement [2] yr = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] zr = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] psp1 = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] psp2 = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] psp1 = (word)mulf_sqr1 [ psp1 ] ( main:7 [ psp1 ] { } ) always clobbers reg byte a -Statement [12] psp2 = (word)mulf_sqr2 [ psp1 psp2 ] ( main:7 [ psp1 psp2 ] { } ) always clobbers reg byte a +Statement [11] psp1 = (unsigned int)mulf_sqr1 [ psp1 ] ( main:7 [ psp1 ] { } ) always clobbers reg byte a +Statement [12] psp2 = (unsigned int)mulf_sqr2 [ psp1 psp2 ] ( main:7 [ psp1 psp2 ] { } ) always clobbers reg byte a Statement [22] mulf_init::$2 = - mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:7::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ mulf_init::i#2 mulf_init::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:25 [ mulf_init::val#0 ] @@ -1613,8 +1613,8 @@ Statement [2] yr = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] zr = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] psp1 = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] psp2 = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] psp1 = (word)mulf_sqr1 [ psp1 ] ( main:7 [ psp1 ] { } ) always clobbers reg byte a -Statement [12] psp2 = (word)mulf_sqr2 [ psp1 psp2 ] ( main:7 [ psp1 psp2 ] { } ) always clobbers reg byte a +Statement [11] psp1 = (unsigned int)mulf_sqr1 [ psp1 ] ( main:7 [ psp1 ] { } ) always clobbers reg byte a +Statement [12] psp2 = (unsigned int)mulf_sqr2 [ psp1 psp2 ] ( main:7 [ psp1 psp2 ] { } ) always clobbers reg byte a Statement [20] mulf_sqr1[mulf_init::i#2] = mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:7::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] { } ) always clobbers reg byte a Statement [21] (mulf_sqr1+$100)[mulf_init::i#2] = mulf_init::val#0 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] ( main:7::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 ] { } ) always clobbers reg byte a Statement [22] mulf_init::$2 = - mulf_init::i#2 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] ( main:7::mulf_init:10 [ mulf_init::sqr#2 mulf_init::i#2 mulf_init::add#2 mulf_init::val#0 mulf_init::$2 ] { } ) always clobbers reg byte a @@ -1781,7 +1781,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main jsr main jmp __breturn // __start::@return @@ -1793,24 +1793,24 @@ __start: { main: { // asm { sei } sei - // [10] call mulf_init + // [10] call mulf_init // [17] phi from main to mulf_init [phi:main->mulf_init] mulf_init_from_main: jsr mulf_init jmp __b1 // main::@1 __b1: - // [11] psp1 = (word)mulf_sqr1 -- vwuz1=vwuc1 + // [11] psp1 = (unsigned int)mulf_sqr1 -- vwuz1=vwuc1 lda #mulf_sqr1 sta.z psp1+1 - // [12] psp2 = (word)mulf_sqr2 -- vwuz1=vwuc1 + // [12] psp2 = (unsigned int)mulf_sqr2 -- vwuz1=vwuc1 lda #mulf_sqr2 sta.z psp2+1 - // [13] call print_cls + // [13] call print_cls // [35] phi from main::@1 to print_cls [phi:main::@1->print_cls] print_cls_from___b1: jsr print_cls @@ -1819,7 +1819,7 @@ main: { jmp __b2 // main::@2 __b2: - // [15] call do_perspective + // [15] call do_perspective // [38] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] do_perspective_from___b2: jsr do_perspective @@ -1925,7 +1925,7 @@ mulf_init: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [36] call memset + // [36] call memset // [65] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1936,11 +1936,12 @@ print_cls: { rts } // do_perspective +// void do_perspective(signed char x, signed char y, signed char z) do_perspective: { .label x = $39 .label y = -$47 .label z = $36 - // [39] call print_str + // [39] call print_str // [71] phi from do_perspective to print_str [phi:do_perspective->print_str] print_str_from_do_perspective: // [71] phi print_char_cursor#77 = print_screen#0 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 @@ -1959,7 +1960,7 @@ do_perspective: { jmp __b1 // do_perspective::@1 __b1: - // [41] call print_schar + // [41] call print_schar // [78] phi from do_perspective::@1 to print_schar [phi:do_perspective::@1->print_schar] print_schar_from___b1: // [78] phi print_schar::b#4 = do_perspective::x#0 [phi:do_perspective::@1->print_schar#0] -- vbsxx=vbsc1 @@ -1970,7 +1971,7 @@ do_perspective: { jmp __b2 // do_perspective::@2 __b2: - // [43] call print_str + // [43] call print_str // [71] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str] print_str_from___b2: // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy @@ -1985,7 +1986,7 @@ do_perspective: { jmp __b3 // do_perspective::@3 __b3: - // [45] call print_schar + // [45] call print_schar // [78] phi from do_perspective::@3 to print_schar [phi:do_perspective::@3->print_schar] print_schar_from___b3: // [78] phi print_schar::b#4 = do_perspective::y#0 [phi:do_perspective::@3->print_schar#0] -- vbsxx=vbsc1 @@ -1996,7 +1997,7 @@ do_perspective: { jmp __b4 // do_perspective::@4 __b4: - // [47] call print_str + // [47] call print_str // [71] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str] print_str_from___b4: // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy @@ -2011,7 +2012,7 @@ do_perspective: { jmp __b5 // do_perspective::@5 __b5: - // [49] call print_schar + // [49] call print_schar // [78] phi from do_perspective::@5 to print_schar [phi:do_perspective::@5->print_schar] print_schar_from___b5: // [78] phi print_schar::b#4 = do_perspective::z#0 [phi:do_perspective::@5->print_schar#0] -- vbsxx=vbsc1 @@ -2022,7 +2023,7 @@ do_perspective: { jmp __b6 // do_perspective::@6 __b6: - // [51] call print_str + // [51] call print_str // [71] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str] print_str_from___b6: // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy @@ -2037,14 +2038,14 @@ do_perspective: { jmp __b7 // do_perspective::@7 __b7: - // [53] call perspective + // [53] call perspective jsr perspective jmp __b8 // do_perspective::@8 __b8: - // [54] print_uchar::b#1 = (byte)xr -- vbuxx=vbuz1 + // [54] print_uchar::b#1 = (char)xr -- vbuxx=vbuz1 ldx.z xr - // [55] call print_uchar + // [55] call print_uchar // [94] phi from do_perspective::@8 to print_uchar [phi:do_perspective::@8->print_uchar] print_uchar_from___b8: // [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@8->print_uchar#0] -- register_copy @@ -2055,7 +2056,7 @@ do_perspective: { jmp __b9 // do_perspective::@9 __b9: - // [57] call print_str + // [57] call print_str // [71] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str] print_str_from___b9: // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy @@ -2068,9 +2069,9 @@ do_perspective: { jmp __b10 // do_perspective::@10 __b10: - // [58] print_uchar::b#2 = (byte)yr -- vbuxx=vbuz1 + // [58] print_uchar::b#2 = (char)yr -- vbuxx=vbuz1 ldx.z yr - // [59] call print_uchar + // [59] call print_uchar // [94] phi from do_perspective::@10 to print_uchar [phi:do_perspective::@10->print_uchar] print_uchar_from___b10: // [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@10->print_uchar#0] -- register_copy @@ -2081,7 +2082,7 @@ do_perspective: { jmp __b11 // do_perspective::@11 __b11: - // [61] call print_str + // [61] call print_str // [71] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str] print_str_from___b11: // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy @@ -2096,7 +2097,7 @@ do_perspective: { jmp __b12 // do_perspective::@12 __b12: - // [63] call print_ln + // [63] call print_ln // [102] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] print_ln_from___b12: jsr print_ln @@ -2118,6 +2119,7 @@ do_perspective: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2126,7 +2128,7 @@ memset: { .label dst = 4 // [66] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [66] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [66] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2164,7 +2166,7 @@ memset: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [72] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2190,7 +2192,7 @@ print_str: { // [75] print_char::ch#0 = *print_str::str#7 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [76] call print_char + // [76] call print_char // [107] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -2208,7 +2210,7 @@ print_str: { } // print_schar // Print a signed char as HEX -// print_schar(signed byte register(X) b) +// void print_schar(__register(X) signed char b) print_schar: { // [79] if(print_schar::b#4<0) goto print_schar::@1 -- vbsxx_lt_0_then_la1 cpx #0 @@ -2218,7 +2220,7 @@ print_schar: { jmp __b3 // print_schar::@3 __b3: - // [81] call print_char + // [81] call print_char // [107] phi from print_schar::@3 to print_char [phi:print_schar::@3->print_char] print_char_from___b3: // [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@3->print_char#0] -- register_copy @@ -2232,8 +2234,8 @@ print_schar: { jmp __b2 // print_schar::@2 __b2: - // [83] print_uchar::b#0 = (byte)print_schar::b#6 - // [84] call print_uchar + // [83] print_uchar::b#0 = (char)print_schar::b#6 + // [84] call print_uchar // [94] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar] print_uchar_from___b2: // [94] phi print_char_cursor#72 = print_char_cursor#11 [phi:print_schar::@2->print_uchar#0] -- register_copy @@ -2249,7 +2251,7 @@ print_schar: { jmp __b1 // print_schar::@1 __b1: - // [87] call print_char + // [87] call print_char // [107] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char] print_char_from___b1: // [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@1->print_char#0] -- register_copy @@ -2270,6 +2272,7 @@ print_schar: { // perspective // Apply perspective to a 3d-point. Result is returned in (*xr,*yr) // Implemented in assembler to utilize seriously fast multiplication +// void perspective(signed char x, signed char y, signed char z) perspective: { // [89] xr = do_perspective::x#0 -- vbsz1=vbsc1 lda #do_perspective.x @@ -2308,7 +2311,7 @@ perspective: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [95] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -2319,7 +2322,7 @@ print_uchar: { // [96] print_char::ch#3 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [97] call print_char + // [97] call print_char // Table of hexadecimal digits // [107] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -2334,7 +2337,7 @@ print_uchar: { axs #0 // [99] print_char::ch#4 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [100] call print_char + // [100] call print_char // [107] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [107] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -2388,7 +2391,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [108] *print_char_cursor#45 = print_char::ch#5 -- _deref_pbuz1=vbuaa ldy #0 @@ -2586,7 +2589,7 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant signed byte* PERSP_Z[$100] = kickasm {{ { +__constant signed char PERSP_Z[$100] = kickasm {{ { .var d = 256.0 .var z0 = 5.0 .for(var z=0;z<$100;z++) { @@ -2598,99 +2601,99 @@ constant signed byte* PERSP_Z[$100] = kickasm {{ { } } }} -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) -constant byte* do_perspective::str[2] = "(" -constant byte* do_perspective::str1[2] = "," -constant byte* do_perspective::str3[7] = ") -> (" -constant byte* do_perspective::str5[2] = ")" -signed byte do_perspective::x -constant signed byte do_perspective::x#0 x = $39 -signed byte do_perspective::y -constant signed byte do_perspective::y#0 y = -$47 -signed byte do_perspective::z -constant signed byte do_perspective::z#0 z = $36 +void do_perspective(signed char x , signed char y , signed char z) +__constant char do_perspective::str[2] = "(" +__constant char do_perspective::str1[2] = "," +__constant char do_perspective::str3[7] = ") -> (" +__constant char do_perspective::str5[2] = ")" +signed char do_perspective::x +__constant signed char do_perspective::x#0 = $39 // x +signed char do_perspective::y +__constant signed char do_perspective::y#0 = -$47 // y +signed char do_perspective::z +__constant signed char do_perspective::z#0 = $36 // z void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 20002.0 -byte* memset::dst#2 dst zp[2]:4 13334.666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 20002.0 +char *memset::dst#2 // dst zp[2]:4 13334.666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str void mulf_init() -byte~ mulf_init::$2 reg byte x 1501.5 -byte~ mulf_init::$6 reg byte x 1501.5 -signed word mulf_init::add -signed word mulf_init::add#1 add zp[2]:2 667.3333333333334 -signed word mulf_init::add#2 add zp[2]:2 231.0 -byte mulf_init::i -byte mulf_init::i#1 reg byte y 1501.5 -byte mulf_init::i#2 reg byte y 572.0 -signed word mulf_init::sqr -signed word mulf_init::sqr#1 sqr zp[2]:4 500.5 -signed word mulf_init::sqr#2 sqr zp[2]:4 250.25 -byte mulf_init::val -byte mulf_init::val#0 val zp[1]:15 900.9000000000001 -constant byte* mulf_sqr1[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2[$200] = { fill( $200, 0) } -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) -signed byte perspective::x -signed byte perspective::y -signed byte perspective::z -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#4 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 130004.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:6 1277.230769230769 -byte* print_char_cursor#11 print_char_cursor zp[2]:6 4673.423076923077 -byte* print_char_cursor#45 print_char_cursor zp[2]:6 116003.5 -byte* print_char_cursor#72 print_char_cursor zp[2]:6 3734.6666666666665 -byte* print_char_cursor#77 print_char_cursor zp[2]:6 1506.0 +char mulf_init::$2 // reg byte x 1501.5 +char mulf_init::$6 // reg byte x 1501.5 +int mulf_init::add +int mulf_init::add#1 // add zp[2]:2 667.3333333333334 +int mulf_init::add#2 // add zp[2]:2 231.0 +char mulf_init::i +char mulf_init::i#1 // reg byte y 1501.5 +char mulf_init::i#2 // reg byte y 572.0 +int mulf_init::sqr +int mulf_init::sqr#1 // sqr zp[2]:4 500.5 +int mulf_init::sqr#2 // sqr zp[2]:4 250.25 +char mulf_init::val +char mulf_init::val#0 // val zp[1]:15 900.9000000000001 +__constant char mulf_sqr1[$200] = { fill( $200, 0) } +__constant char mulf_sqr2[$200] = { fill( $200, 0) } +void perspective(signed char x , signed char y , signed char z) +signed char perspective::x +signed char perspective::y +signed char perspective::z +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#4 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 130004.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:6 1277.230769230769 +char *print_char_cursor#11 // print_char_cursor zp[2]:6 4673.423076923077 +char *print_char_cursor#45 // print_char_cursor zp[2]:6 116003.5 +char *print_char_cursor#72 // print_char_cursor zp[2]:6 3734.6666666666665 +char *print_char_cursor#77 // print_char_cursor zp[2]:6 1506.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:4 15001.5 -byte* print_line_cursor#12 print_line_cursor zp[2]:4 20002.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:4 15001.5 +char *print_line_cursor#12 // print_line_cursor zp[2]:4 20002.0 void print_ln() -void print_schar(signed byte print_schar::b) -signed byte print_schar::b -signed byte print_schar::b#0 reg byte x 2002.0 -signed byte print_schar::b#4 reg byte x 500.5 -signed byte print_schar::b#6 reg byte x 2002.0 -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 20002.0 -byte* print_str::str#10 str zp[2]:2 1001.0 -byte* print_str::str#7 str zp[2]:2 10251.25 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 202.0 -byte print_uchar::b#3 reg byte x 5301.25 -volatile word psp1 loadstore zp[2]:11 0.5909090909090909 -volatile word psp2 loadstore zp[2]:13 0.6190476190476191 -volatile signed byte xr loadstore zp[1]:8 167.16666666666669 -volatile signed byte yr loadstore zp[1]:9 111.44444444444446 -volatile signed byte zr loadstore zp[1]:10 1003.0 +void print_schar(signed char b) +signed char print_schar::b +signed char print_schar::b#0 // reg byte x 2002.0 +signed char print_schar::b#4 // reg byte x 500.5 +signed char print_schar::b#6 // reg byte x 2002.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 20002.0 +char *print_str::str#10 // str zp[2]:2 1001.0 +char *print_str::str#7 // str zp[2]:2 10251.25 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 202.0 +char print_uchar::b#3 // reg byte x 5301.25 +__loadstore volatile unsigned int psp1 // zp[2]:11 0.5909090909090909 +__loadstore volatile unsigned int psp2 // zp[2]:13 0.6190476190476191 +__loadstore volatile signed char xr // zp[1]:8 167.16666666666669 +__loadstore volatile signed char yr // zp[1]:9 111.44444444444446 +__loadstore volatile signed char zr // zp[1]:10 1003.0 reg byte y [ mulf_init::i#2 mulf_init::i#1 ] zp[2]:2 [ print_str::str#7 print_str::str#10 print_str::str#0 mulf_init::add#2 mulf_init::add#1 ] @@ -2769,7 +2772,7 @@ __start: { sta.z psp2+1 // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main jsr main // __start::@return // [8] return @@ -2781,30 +2784,30 @@ main: { // asm { sei } sei // mulf_init() - // [10] call mulf_init + // [10] call mulf_init // [17] phi from main to mulf_init [phi:main->mulf_init] jsr mulf_init // main::@1 // psp1 = (unsigned int)mulf_sqr1 - // [11] psp1 = (word)mulf_sqr1 -- vwuz1=vwuc1 + // [11] psp1 = (unsigned int)mulf_sqr1 -- vwuz1=vwuc1 lda #mulf_sqr1 sta.z psp1+1 // psp2 = (unsigned int)mulf_sqr2 - // [12] psp2 = (word)mulf_sqr2 -- vwuz1=vwuc1 + // [12] psp2 = (unsigned int)mulf_sqr2 -- vwuz1=vwuc1 lda #mulf_sqr2 sta.z psp2+1 // print_cls() - // [13] call print_cls + // [13] call print_cls // [35] phi from main::@1 to print_cls [phi:main::@1->print_cls] jsr print_cls // [14] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // do_perspective($39, -$47, $36) - // [15] call do_perspective + // [15] call do_perspective // [38] phi from main::@2 to do_perspective [phi:main::@2->do_perspective] jsr do_perspective // main::@return @@ -2910,7 +2913,7 @@ mulf_init: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [36] call memset + // [36] call memset // [65] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2919,12 +2922,13 @@ print_cls: { rts } // do_perspective +// void do_perspective(signed char x, signed char y, signed char z) do_perspective: { .label x = $39 .label y = -$47 .label z = $36 // print_str("(") - // [39] call print_str + // [39] call print_str // [71] phi from do_perspective to print_str [phi:do_perspective->print_str] // [71] phi print_char_cursor#77 = print_screen#0 [phi:do_perspective->print_str#0] -- pbuz1=pbuc1 lda #do_perspective::@1] // do_perspective::@1 // print_schar(x) - // [41] call print_schar + // [41] call print_schar // [78] phi from do_perspective::@1 to print_schar [phi:do_perspective::@1->print_schar] // [78] phi print_schar::b#4 = do_perspective::x#0 [phi:do_perspective::@1->print_schar#0] -- vbsxx=vbsc1 ldx #x @@ -2948,7 +2952,7 @@ do_perspective: { // [42] phi from do_perspective::@1 to do_perspective::@2 [phi:do_perspective::@1->do_perspective::@2] // do_perspective::@2 // print_str(",") - // [43] call print_str + // [43] call print_str // [71] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str] // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@2->print_str#0] -- register_copy // [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1 @@ -2960,7 +2964,7 @@ do_perspective: { // [44] phi from do_perspective::@2 to do_perspective::@3 [phi:do_perspective::@2->do_perspective::@3] // do_perspective::@3 // print_schar(y) - // [45] call print_schar + // [45] call print_schar // [78] phi from do_perspective::@3 to print_schar [phi:do_perspective::@3->print_schar] // [78] phi print_schar::b#4 = do_perspective::y#0 [phi:do_perspective::@3->print_schar#0] -- vbsxx=vbsc1 ldx #y @@ -2968,7 +2972,7 @@ do_perspective: { // [46] phi from do_perspective::@3 to do_perspective::@4 [phi:do_perspective::@3->do_perspective::@4] // do_perspective::@4 // print_str(",") - // [47] call print_str + // [47] call print_str // [71] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str] // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@4->print_str#0] -- register_copy // [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1 @@ -2980,7 +2984,7 @@ do_perspective: { // [48] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5] // do_perspective::@5 // print_schar(z) - // [49] call print_schar + // [49] call print_schar // [78] phi from do_perspective::@5 to print_schar [phi:do_perspective::@5->print_schar] // [78] phi print_schar::b#4 = do_perspective::z#0 [phi:do_perspective::@5->print_schar#0] -- vbsxx=vbsc1 ldx #z @@ -2988,7 +2992,7 @@ do_perspective: { // [50] phi from do_perspective::@5 to do_perspective::@6 [phi:do_perspective::@5->do_perspective::@6] // do_perspective::@6 // print_str(") -> (") - // [51] call print_str + // [51] call print_str // [71] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str] // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@6->print_str#0] -- register_copy // [71] phi print_str::str#10 = do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1 @@ -3000,13 +3004,13 @@ do_perspective: { // [52] phi from do_perspective::@6 to do_perspective::@7 [phi:do_perspective::@6->do_perspective::@7] // do_perspective::@7 // perspective(x, y, z) - // [53] call perspective + // [53] call perspective jsr perspective // do_perspective::@8 // print_uchar((char)xr) - // [54] print_uchar::b#1 = (byte)xr -- vbuxx=vbuz1 + // [54] print_uchar::b#1 = (char)xr -- vbuxx=vbuz1 ldx.z xr - // [55] call print_uchar + // [55] call print_uchar // [94] phi from do_perspective::@8 to print_uchar [phi:do_perspective::@8->print_uchar] // [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@8->print_uchar#0] -- register_copy // [94] phi print_uchar::b#3 = print_uchar::b#1 [phi:do_perspective::@8->print_uchar#1] -- register_copy @@ -3014,7 +3018,7 @@ do_perspective: { // [56] phi from do_perspective::@8 to do_perspective::@9 [phi:do_perspective::@8->do_perspective::@9] // do_perspective::@9 // print_str(",") - // [57] call print_str + // [57] call print_str // [71] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str] // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@9->print_str#0] -- register_copy // [71] phi print_str::str#10 = do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1 @@ -3025,9 +3029,9 @@ do_perspective: { jsr print_str // do_perspective::@10 // print_uchar((char)yr) - // [58] print_uchar::b#2 = (byte)yr -- vbuxx=vbuz1 + // [58] print_uchar::b#2 = (char)yr -- vbuxx=vbuz1 ldx.z yr - // [59] call print_uchar + // [59] call print_uchar // [94] phi from do_perspective::@10 to print_uchar [phi:do_perspective::@10->print_uchar] // [94] phi print_char_cursor#72 = print_char_cursor#1 [phi:do_perspective::@10->print_uchar#0] -- register_copy // [94] phi print_uchar::b#3 = print_uchar::b#2 [phi:do_perspective::@10->print_uchar#1] -- register_copy @@ -3035,7 +3039,7 @@ do_perspective: { // [60] phi from do_perspective::@10 to do_perspective::@11 [phi:do_perspective::@10->do_perspective::@11] // do_perspective::@11 // print_str(")") - // [61] call print_str + // [61] call print_str // [71] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str] // [71] phi print_char_cursor#77 = print_char_cursor#11 [phi:do_perspective::@11->print_str#0] -- register_copy // [71] phi print_str::str#10 = do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1 @@ -3047,7 +3051,7 @@ do_perspective: { // [62] phi from do_perspective::@11 to do_perspective::@12 [phi:do_perspective::@11->do_perspective::@12] // do_perspective::@12 // print_ln() - // [63] call print_ln + // [63] call print_ln // [102] phi from do_perspective::@12 to print_ln [phi:do_perspective::@12->print_ln] jsr print_ln // do_perspective::@return @@ -3067,6 +3071,7 @@ do_perspective: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3074,7 +3079,7 @@ memset: { .label end = str+num .label dst = 4 // [66] phi from memset to memset::@1 [phi:memset->memset::@1] - // [66] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [66] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3112,7 +3117,7 @@ memset: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [72] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3136,7 +3141,7 @@ print_str: { // [75] print_char::ch#0 = *print_str::str#7 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [76] call print_char + // [76] call print_char // [107] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy // [107] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -3152,7 +3157,7 @@ print_str: { } // print_schar // Print a signed char as HEX -// print_schar(signed byte register(X) b) +// void print_schar(__register(X) signed char b) print_schar: { // if(b<0) // [79] if(print_schar::b#4<0) goto print_schar::@1 -- vbsxx_lt_0_then_la1 @@ -3161,7 +3166,7 @@ print_schar: { // [80] phi from print_schar to print_schar::@3 [phi:print_schar->print_schar::@3] // print_schar::@3 // print_char(' ') - // [81] call print_char + // [81] call print_char // [107] phi from print_schar::@3 to print_char [phi:print_schar::@3->print_char] // [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@3->print_char#0] -- register_copy // [107] phi print_char::ch#5 = ' ' [phi:print_schar::@3->print_char#1] -- vbuaa=vbuc1 @@ -3172,8 +3177,8 @@ print_schar: { // print_schar::@2 __b2: // print_uchar((char)b) - // [83] print_uchar::b#0 = (byte)print_schar::b#6 - // [84] call print_uchar + // [83] print_uchar::b#0 = (char)print_schar::b#6 + // [84] call print_uchar // [94] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar] // [94] phi print_char_cursor#72 = print_char_cursor#11 [phi:print_schar::@2->print_uchar#0] -- register_copy // [94] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_schar::@2->print_uchar#1] -- register_copy @@ -3186,7 +3191,7 @@ print_schar: { // print_schar::@1 __b1: // print_char('-') - // [87] call print_char + // [87] call print_char // [107] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char] // [107] phi print_char_cursor#45 = print_char_cursor#1 [phi:print_schar::@1->print_char#0] -- register_copy // [107] phi print_char::ch#5 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1 @@ -3205,6 +3210,7 @@ print_schar: { // perspective // Apply perspective to a 3d-point. Result is returned in (*xr,*yr) // Implemented in assembler to utilize seriously fast multiplication +// void perspective(signed char x, signed char y, signed char z) perspective: { // xr = x // [89] xr = do_perspective::x#0 -- vbsz1=vbsc1 @@ -3245,7 +3251,7 @@ perspective: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [95] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 @@ -3258,7 +3264,7 @@ print_uchar: { // [96] print_char::ch#3 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [97] call print_char + // [97] call print_char // Table of hexadecimal digits // [107] phi from print_uchar to print_char [phi:print_uchar->print_char] // [107] phi print_char_cursor#45 = print_char_cursor#72 [phi:print_uchar->print_char#0] -- register_copy @@ -3272,7 +3278,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [99] print_char::ch#4 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [100] call print_char + // [100] call print_char // [107] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [107] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy // [107] phi print_char::ch#5 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -3321,7 +3327,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [108] *print_char_cursor#45 = print_char::ch#5 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/examples/c64/3d/perspective.sym b/src/test/ref/examples/c64/3d/perspective.sym index c09786088..f96aa6753 100644 --- a/src/test/ref/examples/c64/3d/perspective.sym +++ b/src/test/ref/examples/c64/3d/perspective.sym @@ -1,4 +1,4 @@ -constant signed byte* PERSP_Z[$100] = kickasm {{ { +__constant signed char PERSP_Z[$100] = kickasm {{ { .var d = 256.0 .var z0 = 5.0 .for(var z=0;z<$100;z++) { @@ -10,99 +10,99 @@ constant signed byte* PERSP_Z[$100] = kickasm {{ { } } }} -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -void do_perspective(signed byte do_perspective::x , signed byte do_perspective::y , signed byte do_perspective::z) -constant byte* do_perspective::str[2] = "(" -constant byte* do_perspective::str1[2] = "," -constant byte* do_perspective::str3[7] = ") -> (" -constant byte* do_perspective::str5[2] = ")" -signed byte do_perspective::x -constant signed byte do_perspective::x#0 x = $39 -signed byte do_perspective::y -constant signed byte do_perspective::y#0 y = -$47 -signed byte do_perspective::z -constant signed byte do_perspective::z#0 z = $36 +void do_perspective(signed char x , signed char y , signed char z) +__constant char do_perspective::str[2] = "(" +__constant char do_perspective::str1[2] = "," +__constant char do_perspective::str3[7] = ") -> (" +__constant char do_perspective::str5[2] = ")" +signed char do_perspective::x +__constant signed char do_perspective::x#0 = $39 // x +signed char do_perspective::y +__constant signed char do_perspective::y#0 = -$47 // y +signed char do_perspective::z +__constant signed char do_perspective::z#0 = $36 // z void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 20002.0 -byte* memset::dst#2 dst zp[2]:4 13334.666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 20002.0 +char *memset::dst#2 // dst zp[2]:4 13334.666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str void mulf_init() -byte~ mulf_init::$2 reg byte x 1501.5 -byte~ mulf_init::$6 reg byte x 1501.5 -signed word mulf_init::add -signed word mulf_init::add#1 add zp[2]:2 667.3333333333334 -signed word mulf_init::add#2 add zp[2]:2 231.0 -byte mulf_init::i -byte mulf_init::i#1 reg byte y 1501.5 -byte mulf_init::i#2 reg byte y 572.0 -signed word mulf_init::sqr -signed word mulf_init::sqr#1 sqr zp[2]:4 500.5 -signed word mulf_init::sqr#2 sqr zp[2]:4 250.25 -byte mulf_init::val -byte mulf_init::val#0 val zp[1]:15 900.9000000000001 -constant byte* mulf_sqr1[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2[$200] = { fill( $200, 0) } -void perspective(signed byte perspective::x , signed byte perspective::y , signed byte perspective::z) -signed byte perspective::x -signed byte perspective::y -signed byte perspective::z -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#4 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 130004.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:6 1277.230769230769 -byte* print_char_cursor#11 print_char_cursor zp[2]:6 4673.423076923077 -byte* print_char_cursor#45 print_char_cursor zp[2]:6 116003.5 -byte* print_char_cursor#72 print_char_cursor zp[2]:6 3734.6666666666665 -byte* print_char_cursor#77 print_char_cursor zp[2]:6 1506.0 +char mulf_init::$2 // reg byte x 1501.5 +char mulf_init::$6 // reg byte x 1501.5 +int mulf_init::add +int mulf_init::add#1 // add zp[2]:2 667.3333333333334 +int mulf_init::add#2 // add zp[2]:2 231.0 +char mulf_init::i +char mulf_init::i#1 // reg byte y 1501.5 +char mulf_init::i#2 // reg byte y 572.0 +int mulf_init::sqr +int mulf_init::sqr#1 // sqr zp[2]:4 500.5 +int mulf_init::sqr#2 // sqr zp[2]:4 250.25 +char mulf_init::val +char mulf_init::val#0 // val zp[1]:15 900.9000000000001 +__constant char mulf_sqr1[$200] = { fill( $200, 0) } +__constant char mulf_sqr2[$200] = { fill( $200, 0) } +void perspective(signed char x , signed char y , signed char z) +signed char perspective::x +signed char perspective::y +signed char perspective::z +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#4 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 130004.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:6 1277.230769230769 +char *print_char_cursor#11 // print_char_cursor zp[2]:6 4673.423076923077 +char *print_char_cursor#45 // print_char_cursor zp[2]:6 116003.5 +char *print_char_cursor#72 // print_char_cursor zp[2]:6 3734.6666666666665 +char *print_char_cursor#77 // print_char_cursor zp[2]:6 1506.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:4 15001.5 -byte* print_line_cursor#12 print_line_cursor zp[2]:4 20002.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:4 15001.5 +char *print_line_cursor#12 // print_line_cursor zp[2]:4 20002.0 void print_ln() -void print_schar(signed byte print_schar::b) -signed byte print_schar::b -signed byte print_schar::b#0 reg byte x 2002.0 -signed byte print_schar::b#4 reg byte x 500.5 -signed byte print_schar::b#6 reg byte x 2002.0 -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 20002.0 -byte* print_str::str#10 str zp[2]:2 1001.0 -byte* print_str::str#7 str zp[2]:2 10251.25 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 202.0 -byte print_uchar::b#3 reg byte x 5301.25 -volatile word psp1 loadstore zp[2]:11 0.5909090909090909 -volatile word psp2 loadstore zp[2]:13 0.6190476190476191 -volatile signed byte xr loadstore zp[1]:8 167.16666666666669 -volatile signed byte yr loadstore zp[1]:9 111.44444444444446 -volatile signed byte zr loadstore zp[1]:10 1003.0 +void print_schar(signed char b) +signed char print_schar::b +signed char print_schar::b#0 // reg byte x 2002.0 +signed char print_schar::b#4 // reg byte x 500.5 +signed char print_schar::b#6 // reg byte x 2002.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 20002.0 +char *print_str::str#10 // str zp[2]:2 1001.0 +char *print_str::str#7 // str zp[2]:2 10251.25 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 202.0 +char print_uchar::b#3 // reg byte x 5301.25 +__loadstore volatile unsigned int psp1 // zp[2]:11 0.5909090909090909 +__loadstore volatile unsigned int psp2 // zp[2]:13 0.6190476190476191 +__loadstore volatile signed char xr // zp[1]:8 167.16666666666669 +__loadstore volatile signed char yr // zp[1]:9 111.44444444444446 +__loadstore volatile signed char zr // zp[1]:10 1003.0 reg byte y [ mulf_init::i#2 mulf_init::i#1 ] zp[2]:2 [ print_str::str#7 print_str::str#10 print_str::str#0 mulf_init::add#2 mulf_init::add#1 ] diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm index 1ea330a97..8960d0067 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm @@ -64,6 +64,7 @@ main: { jmp __b1 } // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $e .label yoffs = 2 @@ -125,6 +126,7 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) @@ -216,7 +218,7 @@ lines: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c, word zp(2) num) +// void * memset(__zp(4) void *str, __register(X) char c, __zp(2) unsigned int num) memset: { .label end = 2 .label dst = 4 @@ -260,7 +262,7 @@ memset: { jmp __b2 } // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(4) x1, word zp(6) y1, word zp($f) x2, word zp($11) y2) +// void bitmap_line(__zp(4) unsigned int x1, __zp(6) unsigned int y1, __zp($f) unsigned int x2, __zp($11) unsigned int y2) bitmap_line: { .label dx = $13 .label dy = $a @@ -476,7 +478,7 @@ bitmap_line: { rts } // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($a) w) +// __zp($a) unsigned int abs_u16(__zp($a) unsigned int w) abs_u16: { .label w = $a .label return = $a @@ -502,7 +504,7 @@ abs_u16: { } // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($17) w) +// __zp($c) unsigned int sgn_u16(__zp($17) unsigned int w) sgn_u16: { .label w = $17 .label return = $c @@ -526,7 +528,7 @@ sgn_u16: { rts } // Plot a single dot in the bitmap -// bitmap_plot(word zp(4) x, byte register(X) y) +// void bitmap_plot(__zp(4) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $19 .label plotter = $17 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg index fe6edfa78..6b4857a62 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.cfg @@ -1,26 +1,26 @@ void main() main: scope:[main] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [4] call bitmap_init + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [4] call bitmap_init to:main::@2 main::@2: scope:[main] from main [5] phi() - [6] call bitmap_clear + [6] call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 [7] phi() - [8] call init_screen + [8] call init_screen to:main::@1 main::@1: scope:[main] from main::@1 main::@3 [9] phi() - [10] call lines + [10] call lines to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [11] phi() to:bitmap_init::@1 @@ -51,7 +51,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [27] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [29] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -62,14 +62,14 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [32] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@2 [33] phi() - [34] call memset + [34] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [35] phi() - [36] call memset + [36] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [37] return @@ -107,22 +107,22 @@ lines::@2: scope:[lines] from lines::@1 [49] bitmap_line::y1#0 = lines_y[lines::l#2] [50] bitmap_line::x2#0 = (lines_x+1)[lines::l#2] [51] bitmap_line::y2#0 = (lines_y+1)[lines::l#2] - [52] call bitmap_line + [52] call bitmap_line to:lines::@3 lines::@3: scope:[lines] from lines::@2 [53] lines::l#1 = ++ lines::l#2 to:lines::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [54] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [54] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [54] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [54] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [55] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [56] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [57] memset::dst#4 = (byte*)memset::str#3 + [56] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [57] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [58] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -136,16 +136,16 @@ memset::@3: scope:[memset] from memset::@2 [62] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from lines::@2 [63] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [64] call abs_u16 + [64] call abs_u16 [65] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [66] bitmap_line::dx#0 = abs_u16::return#0 [67] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [68] call abs_u16 + [68] call abs_u16 [69] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -157,13 +157,13 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [73] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [74] call sgn_u16 + [74] call sgn_u16 [75] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [76] bitmap_line::sx#0 = sgn_u16::return#0 [77] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [78] call sgn_u16 + [78] call sgn_u16 [79] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -178,8 +178,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [83] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [83] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [84] bitmap_plot::x#1 = bitmap_line::x#13 - [85] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [86] call bitmap_plot + [85] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [86] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [87] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -199,8 +199,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [94] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [94] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [95] bitmap_plot::x#2 = bitmap_line::x#6 - [96] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [97] call bitmap_plot + [96] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [97] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [98] return @@ -213,8 +213,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [100] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [100] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [101] bitmap_plot::x#3 = bitmap_line::x#7 - [102] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [103] call bitmap_plot + [102] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [103] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [104] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -232,11 +232,11 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [111] bitmap_plot::x#0 = bitmap_line::x1#0 - [112] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 - [113] call bitmap_plot + [112] bitmap_plot::y#0 = (char)bitmap_line::y1#0 + [113] call bitmap_plot to:bitmap_line::@return -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [114] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) [115] abs_u16::$0 = byte1 abs_u16::w#2 @@ -251,7 +251,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [120] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [121] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) [122] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -266,13 +266,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [127] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [128] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [128] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [130] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [132] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log index 52587edc6..247b7f6f6 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement bitmap_clear::$1 Eliminating unused variable with no statement bitmap_line::$1 Eliminating unused variable with no statement bitmap_line::$3 @@ -11,7 +11,7 @@ Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main bitmap_init::screen#1 = phi( main/bitmap_init::screen#0 ) bitmap_init::gfx#1 = phi( main/bitmap_init::gfx#0 ) @@ -97,7 +97,7 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6 return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@2 bitmap_gfx#14 = phi( main::@2/bitmap_gfx#2 ) bitmap_screen#8 = phi( main::@2/bitmap_screen#2 ) @@ -105,18 +105,18 @@ bitmap_clear: scope:[bitmap_clear] from main::@2 bitmap_clear::fgcol#1 = phi( main::@2/bitmap_clear::fgcol#0 ) bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 bitmap_clear::col#0 = bitmap_clear::$0 + bitmap_clear::bgcol#1 - memset::str#0 = (void*)bitmap_screen#8 + memset::str#0 = (void *)bitmap_screen#8 memset::c#0 = bitmap_clear::col#0 memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#3 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_gfx#8 = phi( bitmap_clear/bitmap_gfx#14 ) - memset::str#1 = (void*)bitmap_gfx#8 + memset::str#1 = (void *)bitmap_gfx#8 memset::c#1 = 0 memset::num#1 = $1f40 - call memset + call memset memset::return#1 = memset::return#3 to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 @@ -125,12 +125,12 @@ bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2 return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) bitmap_plot::$0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] - bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 + bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 bitmap_plot::plotter#1 = bitmap_plot::plotter#0 + bitmap_plot::$1 bitmap_plot::$2 = byte0 bitmap_plot::x#4 @@ -140,7 +140,7 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot return to:@return -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from lines::@2 bitmap_line::y2#4 = phi( lines::@2/bitmap_line::y2#0 ) bitmap_line::x2#1 = phi( lines::@2/bitmap_line::x2#0 ) @@ -150,7 +150,7 @@ bitmap_line: scope:[bitmap_line] from lines::@2 bitmap_line::y#0 = bitmap_line::y1#1 bitmap_line::$0 = bitmap_line::x2#1 - bitmap_line::x1#1 abs_u16::w#0 = bitmap_line::$0 - call abs_u16 + call abs_u16 abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line @@ -164,7 +164,7 @@ bitmap_line::@12: scope:[bitmap_line] from bitmap_line bitmap_line::dx#0 = abs_u16::return#5 bitmap_line::$2 = bitmap_line::y2#1 - bitmap_line::y1#2 abs_u16::w#1 = bitmap_line::$2 - call abs_u16 + call abs_u16 abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -194,7 +194,7 @@ bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::x2#2 = phi( bitmap_line::@13/bitmap_line::x2#4 ) bitmap_line::$8 = bitmap_line::x2#2 - bitmap_line::x1#2 sgn_u16::w#0 = bitmap_line::$8 - call sgn_u16 + call sgn_u16 sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 @@ -209,7 +209,7 @@ bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::sx#0 = sgn_u16::return#5 bitmap_line::$10 = bitmap_line::y2#2 - bitmap_line::y1#3 sgn_u16::w#1 = bitmap_line::$10 - call sgn_u16 + call sgn_u16 sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -229,8 +229,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::y#3 = phi( bitmap_line::@13/bitmap_line::y#10 ) bitmap_line::x#3 = phi( bitmap_line::@13/bitmap_line::x#10 ) bitmap_plot::x#0 = bitmap_line::x#3 - bitmap_plot::y#0 = (byte)bitmap_line::y#3 - call bitmap_plot + bitmap_plot::y#0 = (char)bitmap_line::y#3 + call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4 to:bitmap_line::@return @@ -267,8 +267,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y#11, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#4 = phi( bitmap_line::@5/bitmap_line::x#11, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#1 = bitmap_line::x#4 - bitmap_plot::y#1 = (byte)bitmap_line::y#4 - call bitmap_plot + bitmap_plot::y#1 = (char)bitmap_line::y#4 + call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@6 bitmap_line::sx#3 = phi( bitmap_line::@6/bitmap_line::sx#5 ) @@ -313,8 +313,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#6 ) bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@7/bitmap_line::x#12 ) bitmap_plot::x#2 = bitmap_line::x#6 - bitmap_plot::y#2 = (byte)bitmap_line::y#7 - call bitmap_plot + bitmap_plot::y#2 = (char)bitmap_line::y#7 + call bitmap_plot to:bitmap_line::@18 bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@3 to:bitmap_line::@return @@ -328,8 +328,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 bitmap_line::y#8 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y#14 ) bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#9, bitmap_line::@2/bitmap_line::x#14 ) bitmap_plot::x#3 = bitmap_line::x#7 - bitmap_plot::y#3 = (byte)bitmap_line::y#8 - call bitmap_plot + bitmap_plot::y#3 = (char)bitmap_line::y#8 + call bitmap_plot to:bitmap_line::@19 bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@9 bitmap_line::sy#4 = phi( bitmap_line::@9/bitmap_line::sy#7 ) @@ -371,7 +371,7 @@ bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@19 bitmap_line::e1#2 = bitmap_line::e1#4 - bitmap_line::dx#6 to:bitmap_line::@10 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 memset::c#5 = phi( bitmap_clear/memset::c#0, bitmap_clear::@1/memset::c#1 ) memset::str#4 = phi( bitmap_clear/memset::str#0, bitmap_clear::@1/memset::str#1 ) @@ -388,9 +388,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -414,7 +414,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) abs_u16::$0 = byte1 abs_u16::w#2 @@ -437,7 +437,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@2 return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -461,13 +461,13 @@ void main() main: scope:[main] from __start::@1 bitmap_screen#14 = phi( __start::@1/bitmap_screen#16 ) bitmap_gfx#15 = phi( __start::@1/bitmap_gfx#17 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 + *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 bitmap_init::gfx#0 = BITMAP bitmap_init::screen#0 = SCREEN - call bitmap_init + call bitmap_init to:main::@2 main::@2: scope:[main] from main bitmap_screen#9 = phi( main/bitmap_screen#1 ) @@ -476,12 +476,12 @@ main::@2: scope:[main] from main bitmap_screen#2 = bitmap_screen#9 bitmap_clear::bgcol#0 = BLACK bitmap_clear::fgcol#0 = WHITE - call bitmap_clear + call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 bitmap_screen#23 = phi( main::@2/bitmap_screen#2 ) bitmap_gfx#24 = phi( main::@2/bitmap_gfx#2 ) - call init_screen + call init_screen to:main::@4 main::@4: scope:[main] from main::@3 bitmap_screen#21 = phi( main::@3/bitmap_screen#23 ) @@ -490,7 +490,7 @@ main::@4: scope:[main] from main::@3 main::@1: scope:[main] from main::@4 main::@5 bitmap_screen#19 = phi( main::@4/bitmap_screen#21, main::@5/bitmap_screen#15 ) bitmap_gfx#20 = phi( main::@4/bitmap_gfx#22, main::@5/bitmap_gfx#16 ) - call lines + call lines to:main::@5 main::@5: scope:[main] from main::@1 bitmap_screen#15 = phi( main::@1/bitmap_screen#19 ) @@ -522,7 +522,7 @@ lines::@2: scope:[lines] from lines::@1 bitmap_line::y1#0 = lines_y[lines::l#3] bitmap_line::x2#0 = lines_x[lines::$1] bitmap_line::y2#0 = lines_y[lines::$2] - call bitmap_line + call bitmap_line to:lines::@3 lines::@3: scope:[lines] from lines::@2 lines::l#4 = phi( lines::@2/lines::l#3 ) @@ -554,13 +554,13 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bitmap_screen#4 = (byte*) 0 - bitmap_gfx#4 = (byte*) 0 + bitmap_screen#4 = (char *) 0 + bitmap_gfx#4 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 bitmap_screen#16 = phi( __start::__init1/bitmap_screen#4 ) bitmap_gfx#17 = phi( __start::__init1/bitmap_gfx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 bitmap_screen#11 = phi( __start::@1/bitmap_screen#3 ) @@ -577,420 +577,420 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BITMAP = (byte*)$2000 -constant const byte BLACK = 0 -constant byte* const D011 = (byte*)$d011 -constant const byte LINES = 8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte* const SCREEN = (byte*)$400 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*)$d018 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant char * const BITMAP = (char *)$2000 +__constant const char BLACK = 0 +__constant char * const D011 = (char *)$d011 +__constant const char LINES = 8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char * const SCREEN = (char *)$400 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *)$d018 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 -number~ abs_u16::$1 -word~ abs_u16::$2 -bool~ abs_u16::$3 -word abs_u16::return -word abs_u16::return#0 -word abs_u16::return#1 -word abs_u16::return#2 -word abs_u16::return#3 -word abs_u16::return#4 -word abs_u16::return#5 -word abs_u16::return#6 -word abs_u16::return#7 -word abs_u16::w -word abs_u16::w#0 -word abs_u16::w#1 -word abs_u16::w#2 -word abs_u16::w#3 -word abs_u16::w#4 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -number~ bitmap_clear::$0 -byte bitmap_clear::bgcol -byte bitmap_clear::bgcol#0 -byte bitmap_clear::bgcol#1 -byte bitmap_clear::col -byte bitmap_clear::col#0 -byte bitmap_clear::fgcol -byte bitmap_clear::fgcol#0 -byte bitmap_clear::fgcol#1 -byte* bitmap_gfx -byte* bitmap_gfx#0 -byte* bitmap_gfx#1 -byte* bitmap_gfx#10 -byte* bitmap_gfx#11 -byte* bitmap_gfx#12 -byte* bitmap_gfx#13 -byte* bitmap_gfx#14 -byte* bitmap_gfx#15 -byte* bitmap_gfx#16 -byte* bitmap_gfx#17 -byte* bitmap_gfx#18 -byte* bitmap_gfx#19 -byte* bitmap_gfx#2 -byte* bitmap_gfx#20 -byte* bitmap_gfx#21 -byte* bitmap_gfx#22 -byte* bitmap_gfx#23 -byte* bitmap_gfx#24 -byte* bitmap_gfx#25 -byte* bitmap_gfx#26 -byte* bitmap_gfx#3 -byte* bitmap_gfx#4 -byte* bitmap_gfx#5 -byte* bitmap_gfx#6 -byte* bitmap_gfx#7 -byte* bitmap_gfx#8 -byte* bitmap_gfx#9 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -bool~ bitmap_init::$0 -bool~ bitmap_init::$1 -byte*~ bitmap_init::$10 -bool~ bitmap_init::$11 -bool~ bitmap_init::$2 -number~ bitmap_init::$3 -byte~ bitmap_init::$4 -number~ bitmap_init::$5 -byte~ bitmap_init::$6 -number~ bitmap_init::$7 -bool~ bitmap_init::$8 -bool~ bitmap_init::$9 -byte bitmap_init::bits -byte bitmap_init::bits#0 -byte bitmap_init::bits#1 -byte bitmap_init::bits#2 -byte bitmap_init::bits#3 -byte bitmap_init::bits#4 -byte* bitmap_init::gfx -byte* bitmap_init::gfx#0 -byte* bitmap_init::gfx#1 -byte* bitmap_init::gfx#2 -byte* bitmap_init::gfx#3 -byte* bitmap_init::gfx#4 -byte* bitmap_init::gfx#5 -byte* bitmap_init::screen -byte* bitmap_init::screen#0 -byte* bitmap_init::screen#1 -byte bitmap_init::x -byte bitmap_init::x#0 -byte bitmap_init::x#1 -byte bitmap_init::x#2 -byte bitmap_init::x#3 -byte bitmap_init::x#4 -byte bitmap_init::y -byte bitmap_init::y#0 -byte bitmap_init::y#1 -byte bitmap_init::y#2 -byte bitmap_init::y#3 -byte bitmap_init::y#4 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#0 -byte* bitmap_init::yoffs#1 -byte* bitmap_init::yoffs#2 -byte* bitmap_init::yoffs#3 -byte* bitmap_init::yoffs#4 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word~ bitmap_line::$0 -word~ bitmap_line::$10 -bool~ bitmap_line::$12 -bool~ bitmap_line::$17 -bool~ bitmap_line::$18 -bool~ bitmap_line::$19 -word~ bitmap_line::$2 -bool~ bitmap_line::$22 -bool~ bitmap_line::$23 -bool~ bitmap_line::$24 -bool~ bitmap_line::$4 -bool~ bitmap_line::$5 -bool~ bitmap_line::$6 -bool~ bitmap_line::$7 -word~ bitmap_line::$8 -word bitmap_line::dx -word bitmap_line::dx#0 -word bitmap_line::dx#1 -word bitmap_line::dx#10 -word bitmap_line::dx#11 -word bitmap_line::dx#12 -word bitmap_line::dx#13 -word bitmap_line::dx#14 -word bitmap_line::dx#2 -word bitmap_line::dx#3 -word bitmap_line::dx#4 -word bitmap_line::dx#5 -word bitmap_line::dx#6 -word bitmap_line::dx#7 -word bitmap_line::dx#8 -word bitmap_line::dx#9 -word bitmap_line::dy -word bitmap_line::dy#0 -word bitmap_line::dy#1 -word bitmap_line::dy#10 -word bitmap_line::dy#11 -word bitmap_line::dy#12 -word bitmap_line::dy#13 -word bitmap_line::dy#2 -word bitmap_line::dy#3 -word bitmap_line::dy#4 -word bitmap_line::dy#5 -word bitmap_line::dy#6 -word bitmap_line::dy#7 -word bitmap_line::dy#8 -word bitmap_line::dy#9 -word bitmap_line::e -word bitmap_line::e#0 -word bitmap_line::e#1 -word bitmap_line::e#2 -word bitmap_line::e#3 -word bitmap_line::e#4 -word bitmap_line::e#5 -word bitmap_line::e#6 -word bitmap_line::e1 -word bitmap_line::e1#0 -word bitmap_line::e1#1 -word bitmap_line::e1#2 -word bitmap_line::e1#3 -word bitmap_line::e1#4 -word bitmap_line::e1#5 -word bitmap_line::e1#6 -word bitmap_line::sx -word bitmap_line::sx#0 -word bitmap_line::sx#1 -word bitmap_line::sx#10 -word bitmap_line::sx#11 -word bitmap_line::sx#2 -word bitmap_line::sx#3 -word bitmap_line::sx#4 -word bitmap_line::sx#5 -word bitmap_line::sx#6 -word bitmap_line::sx#7 -word bitmap_line::sx#8 -word bitmap_line::sx#9 -word bitmap_line::sy -word bitmap_line::sy#0 -word bitmap_line::sy#1 -word bitmap_line::sy#10 -word bitmap_line::sy#2 -word bitmap_line::sy#3 -word bitmap_line::sy#4 -word bitmap_line::sy#5 -word bitmap_line::sy#6 -word bitmap_line::sy#7 -word bitmap_line::sy#8 -word bitmap_line::sy#9 -word bitmap_line::x -word bitmap_line::x#0 -word bitmap_line::x#1 -word bitmap_line::x#10 -word bitmap_line::x#11 -word bitmap_line::x#12 -word bitmap_line::x#13 -word bitmap_line::x#14 -word bitmap_line::x#15 -word bitmap_line::x#16 -word bitmap_line::x#17 -word bitmap_line::x#18 -word bitmap_line::x#19 -word bitmap_line::x#2 -word bitmap_line::x#3 -word bitmap_line::x#4 -word bitmap_line::x#5 -word bitmap_line::x#6 -word bitmap_line::x#7 -word bitmap_line::x#8 -word bitmap_line::x#9 -word bitmap_line::x1 -word bitmap_line::x1#0 -word bitmap_line::x1#1 -word bitmap_line::x1#2 -word bitmap_line::x1#3 -word bitmap_line::x1#4 -word bitmap_line::x2 -word bitmap_line::x2#0 -word bitmap_line::x2#1 -word bitmap_line::x2#10 -word bitmap_line::x2#11 -word bitmap_line::x2#2 -word bitmap_line::x2#3 -word bitmap_line::x2#4 -word bitmap_line::x2#5 -word bitmap_line::x2#6 -word bitmap_line::x2#7 -word bitmap_line::x2#8 -word bitmap_line::x2#9 -word bitmap_line::y -word bitmap_line::y#0 -word bitmap_line::y#1 -word bitmap_line::y#10 -word bitmap_line::y#11 -word bitmap_line::y#12 -word bitmap_line::y#13 -word bitmap_line::y#14 -word bitmap_line::y#15 -word bitmap_line::y#16 -word bitmap_line::y#17 -word bitmap_line::y#18 -word bitmap_line::y#19 -word bitmap_line::y#2 -word bitmap_line::y#3 -word bitmap_line::y#4 -word bitmap_line::y#5 -word bitmap_line::y#6 -word bitmap_line::y#7 -word bitmap_line::y#8 -word bitmap_line::y#9 -word bitmap_line::y1 -word bitmap_line::y1#0 -word bitmap_line::y1#1 -word bitmap_line::y1#2 -word bitmap_line::y1#3 -word bitmap_line::y1#4 -word bitmap_line::y1#5 -word bitmap_line::y2 -word bitmap_line::y2#0 -word bitmap_line::y2#1 -word bitmap_line::y2#10 -word bitmap_line::y2#11 -word bitmap_line::y2#2 -word bitmap_line::y2#3 -word bitmap_line::y2#4 -word bitmap_line::y2#5 -word bitmap_line::y2#6 -word bitmap_line::y2#7 -word bitmap_line::y2#8 -word bitmap_line::y2#9 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$0 -number~ bitmap_plot::$1 -byte~ bitmap_plot::$2 -byte* bitmap_plot::plotter -byte* bitmap_plot::plotter#0 -byte* bitmap_plot::plotter#1 -word bitmap_plot::x -word bitmap_plot::x#0 -word bitmap_plot::x#1 -word bitmap_plot::x#2 -word bitmap_plot::x#3 -word bitmap_plot::x#4 -byte bitmap_plot::y -byte bitmap_plot::y#0 -byte bitmap_plot::y#1 -byte bitmap_plot::y#2 -byte bitmap_plot::y#3 -byte bitmap_plot::y#4 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen -byte* bitmap_screen#0 -byte* bitmap_screen#1 -byte* bitmap_screen#10 -byte* bitmap_screen#11 -byte* bitmap_screen#12 -byte* bitmap_screen#13 -byte* bitmap_screen#14 -byte* bitmap_screen#15 -byte* bitmap_screen#16 -byte* bitmap_screen#17 -byte* bitmap_screen#18 -byte* bitmap_screen#19 -byte* bitmap_screen#2 -byte* bitmap_screen#20 -byte* bitmap_screen#21 -byte* bitmap_screen#22 -byte* bitmap_screen#23 -byte* bitmap_screen#24 -byte* bitmap_screen#25 -byte* bitmap_screen#3 -byte* bitmap_screen#4 -byte* bitmap_screen#5 -byte* bitmap_screen#6 -byte* bitmap_screen#7 -byte* bitmap_screen#8 -byte* bitmap_screen#9 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 +number abs_u16::$1 +unsigned int abs_u16::$2 +bool abs_u16::$3 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 +unsigned int abs_u16::return#1 +unsigned int abs_u16::return#2 +unsigned int abs_u16::return#3 +unsigned int abs_u16::return#4 +unsigned int abs_u16::return#5 +unsigned int abs_u16::return#6 +unsigned int abs_u16::return#7 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 +unsigned int abs_u16::w#1 +unsigned int abs_u16::w#2 +unsigned int abs_u16::w#3 +unsigned int abs_u16::w#4 +void bitmap_clear(char bgcol , char fgcol) +number bitmap_clear::$0 +char bitmap_clear::bgcol +char bitmap_clear::bgcol#0 +char bitmap_clear::bgcol#1 +char bitmap_clear::col +char bitmap_clear::col#0 +char bitmap_clear::fgcol +char bitmap_clear::fgcol#0 +char bitmap_clear::fgcol#1 +char *bitmap_gfx +char *bitmap_gfx#0 +char *bitmap_gfx#1 +char *bitmap_gfx#10 +char *bitmap_gfx#11 +char *bitmap_gfx#12 +char *bitmap_gfx#13 +char *bitmap_gfx#14 +char *bitmap_gfx#15 +char *bitmap_gfx#16 +char *bitmap_gfx#17 +char *bitmap_gfx#18 +char *bitmap_gfx#19 +char *bitmap_gfx#2 +char *bitmap_gfx#20 +char *bitmap_gfx#21 +char *bitmap_gfx#22 +char *bitmap_gfx#23 +char *bitmap_gfx#24 +char *bitmap_gfx#25 +char *bitmap_gfx#26 +char *bitmap_gfx#3 +char *bitmap_gfx#4 +char *bitmap_gfx#5 +char *bitmap_gfx#6 +char *bitmap_gfx#7 +char *bitmap_gfx#8 +char *bitmap_gfx#9 +void bitmap_init(char *gfx , char *screen) +bool bitmap_init::$0 +bool bitmap_init::$1 +char *bitmap_init::$10 +bool bitmap_init::$11 +bool bitmap_init::$2 +number bitmap_init::$3 +char bitmap_init::$4 +number bitmap_init::$5 +char bitmap_init::$6 +number bitmap_init::$7 +bool bitmap_init::$8 +bool bitmap_init::$9 +char bitmap_init::bits +char bitmap_init::bits#0 +char bitmap_init::bits#1 +char bitmap_init::bits#2 +char bitmap_init::bits#3 +char bitmap_init::bits#4 +char *bitmap_init::gfx +char *bitmap_init::gfx#0 +char *bitmap_init::gfx#1 +char *bitmap_init::gfx#2 +char *bitmap_init::gfx#3 +char *bitmap_init::gfx#4 +char *bitmap_init::gfx#5 +char *bitmap_init::screen +char *bitmap_init::screen#0 +char *bitmap_init::screen#1 +char bitmap_init::x +char bitmap_init::x#0 +char bitmap_init::x#1 +char bitmap_init::x#2 +char bitmap_init::x#3 +char bitmap_init::x#4 +char bitmap_init::y +char bitmap_init::y#0 +char bitmap_init::y#1 +char bitmap_init::y#2 +char bitmap_init::y#3 +char bitmap_init::y#4 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#0 +char *bitmap_init::yoffs#1 +char *bitmap_init::yoffs#2 +char *bitmap_init::yoffs#3 +char *bitmap_init::yoffs#4 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::$0 +unsigned int bitmap_line::$10 +bool bitmap_line::$12 +bool bitmap_line::$17 +bool bitmap_line::$18 +bool bitmap_line::$19 +unsigned int bitmap_line::$2 +bool bitmap_line::$22 +bool bitmap_line::$23 +bool bitmap_line::$24 +bool bitmap_line::$4 +bool bitmap_line::$5 +bool bitmap_line::$6 +bool bitmap_line::$7 +unsigned int bitmap_line::$8 +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 +unsigned int bitmap_line::dx#1 +unsigned int bitmap_line::dx#10 +unsigned int bitmap_line::dx#11 +unsigned int bitmap_line::dx#12 +unsigned int bitmap_line::dx#13 +unsigned int bitmap_line::dx#14 +unsigned int bitmap_line::dx#2 +unsigned int bitmap_line::dx#3 +unsigned int bitmap_line::dx#4 +unsigned int bitmap_line::dx#5 +unsigned int bitmap_line::dx#6 +unsigned int bitmap_line::dx#7 +unsigned int bitmap_line::dx#8 +unsigned int bitmap_line::dx#9 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 +unsigned int bitmap_line::dy#1 +unsigned int bitmap_line::dy#10 +unsigned int bitmap_line::dy#11 +unsigned int bitmap_line::dy#12 +unsigned int bitmap_line::dy#13 +unsigned int bitmap_line::dy#2 +unsigned int bitmap_line::dy#3 +unsigned int bitmap_line::dy#4 +unsigned int bitmap_line::dy#5 +unsigned int bitmap_line::dy#6 +unsigned int bitmap_line::dy#7 +unsigned int bitmap_line::dy#8 +unsigned int bitmap_line::dy#9 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 +unsigned int bitmap_line::e#1 +unsigned int bitmap_line::e#2 +unsigned int bitmap_line::e#3 +unsigned int bitmap_line::e#4 +unsigned int bitmap_line::e#5 +unsigned int bitmap_line::e#6 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 +unsigned int bitmap_line::e1#1 +unsigned int bitmap_line::e1#2 +unsigned int bitmap_line::e1#3 +unsigned int bitmap_line::e1#4 +unsigned int bitmap_line::e1#5 +unsigned int bitmap_line::e1#6 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 +unsigned int bitmap_line::sx#1 +unsigned int bitmap_line::sx#10 +unsigned int bitmap_line::sx#11 +unsigned int bitmap_line::sx#2 +unsigned int bitmap_line::sx#3 +unsigned int bitmap_line::sx#4 +unsigned int bitmap_line::sx#5 +unsigned int bitmap_line::sx#6 +unsigned int bitmap_line::sx#7 +unsigned int bitmap_line::sx#8 +unsigned int bitmap_line::sx#9 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 +unsigned int bitmap_line::sy#1 +unsigned int bitmap_line::sy#10 +unsigned int bitmap_line::sy#2 +unsigned int bitmap_line::sy#3 +unsigned int bitmap_line::sy#4 +unsigned int bitmap_line::sy#5 +unsigned int bitmap_line::sy#6 +unsigned int bitmap_line::sy#7 +unsigned int bitmap_line::sy#8 +unsigned int bitmap_line::sy#9 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#0 +unsigned int bitmap_line::x#1 +unsigned int bitmap_line::x#10 +unsigned int bitmap_line::x#11 +unsigned int bitmap_line::x#12 +unsigned int bitmap_line::x#13 +unsigned int bitmap_line::x#14 +unsigned int bitmap_line::x#15 +unsigned int bitmap_line::x#16 +unsigned int bitmap_line::x#17 +unsigned int bitmap_line::x#18 +unsigned int bitmap_line::x#19 +unsigned int bitmap_line::x#2 +unsigned int bitmap_line::x#3 +unsigned int bitmap_line::x#4 +unsigned int bitmap_line::x#5 +unsigned int bitmap_line::x#6 +unsigned int bitmap_line::x#7 +unsigned int bitmap_line::x#8 +unsigned int bitmap_line::x#9 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 +unsigned int bitmap_line::x1#1 +unsigned int bitmap_line::x1#2 +unsigned int bitmap_line::x1#3 +unsigned int bitmap_line::x1#4 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 +unsigned int bitmap_line::x2#1 +unsigned int bitmap_line::x2#10 +unsigned int bitmap_line::x2#11 +unsigned int bitmap_line::x2#2 +unsigned int bitmap_line::x2#3 +unsigned int bitmap_line::x2#4 +unsigned int bitmap_line::x2#5 +unsigned int bitmap_line::x2#6 +unsigned int bitmap_line::x2#7 +unsigned int bitmap_line::x2#8 +unsigned int bitmap_line::x2#9 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#0 +unsigned int bitmap_line::y#1 +unsigned int bitmap_line::y#10 +unsigned int bitmap_line::y#11 +unsigned int bitmap_line::y#12 +unsigned int bitmap_line::y#13 +unsigned int bitmap_line::y#14 +unsigned int bitmap_line::y#15 +unsigned int bitmap_line::y#16 +unsigned int bitmap_line::y#17 +unsigned int bitmap_line::y#18 +unsigned int bitmap_line::y#19 +unsigned int bitmap_line::y#2 +unsigned int bitmap_line::y#3 +unsigned int bitmap_line::y#4 +unsigned int bitmap_line::y#5 +unsigned int bitmap_line::y#6 +unsigned int bitmap_line::y#7 +unsigned int bitmap_line::y#8 +unsigned int bitmap_line::y#9 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 +unsigned int bitmap_line::y1#1 +unsigned int bitmap_line::y1#2 +unsigned int bitmap_line::y1#3 +unsigned int bitmap_line::y1#4 +unsigned int bitmap_line::y1#5 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 +unsigned int bitmap_line::y2#1 +unsigned int bitmap_line::y2#10 +unsigned int bitmap_line::y2#11 +unsigned int bitmap_line::y2#2 +unsigned int bitmap_line::y2#3 +unsigned int bitmap_line::y2#4 +unsigned int bitmap_line::y2#5 +unsigned int bitmap_line::y2#6 +unsigned int bitmap_line::y2#7 +unsigned int bitmap_line::y2#8 +unsigned int bitmap_line::y2#9 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$0 +number bitmap_plot::$1 +char bitmap_plot::$2 +char *bitmap_plot::plotter +char *bitmap_plot::plotter#0 +char *bitmap_plot::plotter#1 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 +unsigned int bitmap_plot::x#1 +unsigned int bitmap_plot::x#2 +unsigned int bitmap_plot::x#3 +unsigned int bitmap_plot::x#4 +char bitmap_plot::y +char bitmap_plot::y#0 +char bitmap_plot::y#1 +char bitmap_plot::y#2 +char bitmap_plot::y#3 +char bitmap_plot::y#4 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen +char *bitmap_screen#0 +char *bitmap_screen#1 +char *bitmap_screen#10 +char *bitmap_screen#11 +char *bitmap_screen#12 +char *bitmap_screen#13 +char *bitmap_screen#14 +char *bitmap_screen#15 +char *bitmap_screen#16 +char *bitmap_screen#17 +char *bitmap_screen#18 +char *bitmap_screen#19 +char *bitmap_screen#2 +char *bitmap_screen#20 +char *bitmap_screen#21 +char *bitmap_screen#22 +char *bitmap_screen#23 +char *bitmap_screen#24 +char *bitmap_screen#25 +char *bitmap_screen#3 +char *bitmap_screen#4 +char *bitmap_screen#5 +char *bitmap_screen#6 +char *bitmap_screen#7 +char *bitmap_screen#8 +char *bitmap_screen#9 void init_screen() -bool~ init_screen::$0 -byte* init_screen::c -byte* init_screen::c#0 -byte* init_screen::c#1 -byte* init_screen::c#2 -byte* init_screen::c#3 +bool init_screen::$0 +char *init_screen::c +char *init_screen::c#0 +char *init_screen::c#1 +char *init_screen::c#2 +char *init_screen::c#3 void lines() -bool~ lines::$0 -number~ lines::$1 -number~ lines::$2 -byte lines::l -byte lines::l#0 -byte lines::l#1 -byte lines::l#2 -byte lines::l#3 -byte lines::l#4 -constant byte* lines_x[LINES+1] = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } -constant byte* lines_y[LINES+1] = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } +bool lines::$0 +number lines::$1 +number lines::$2 +char lines::l +char lines::l#0 +char lines::l#1 +char lines::l#2 +char lines::l#3 +char lines::l#4 +__constant char lines_x[LINES+1] = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } +__constant char lines_y[LINES+1] = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 -number~ sgn_u16::$1 -bool~ sgn_u16::$2 -word sgn_u16::return -word sgn_u16::return#0 -word sgn_u16::return#1 -word sgn_u16::return#2 -word sgn_u16::return#3 -word sgn_u16::return#4 -word sgn_u16::return#5 -word sgn_u16::return#6 -word sgn_u16::return#7 -word sgn_u16::w -word sgn_u16::w#0 -word sgn_u16::w#1 -word sgn_u16::w#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 +number sgn_u16::$1 +bool sgn_u16::$2 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 +unsigned int sgn_u16::return#1 +unsigned int sgn_u16::return#2 +unsigned int sgn_u16::return#3 +unsigned int sgn_u16::return#4 +unsigned int sgn_u16::return#5 +unsigned int sgn_u16::return#6 +unsigned int sgn_u16::return#7 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 +unsigned int sgn_u16::w#1 +unsigned int sgn_u16::w#2 Adding number conversion cast (unumber) 1 in Adding number conversion cast (unumber) 1 in @@ -1022,12 +1022,12 @@ Adding number conversion cast (unumber) sgn_u16::$1 in sgn_u16::$1 = sgn_u16::$0 Adding number conversion cast (unumber) 0 in sgn_u16::$2 = 0 != sgn_u16::$1 Adding number conversion cast (unumber) -1 in sgn_u16::return#2 = -1 Adding number conversion cast (unumber) 1 in sgn_u16::return#3 = 1 -Adding number conversion cast (unumber) 0 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 +Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&$3fff/$400 Adding number conversion cast (unumber) 1 in lines::$1 = lines::l#3 + 1 Adding number conversion cast (unumber) lines::$1 in lines::$1 = lines::l#3 + (unumber)1 Adding number conversion cast (unumber) 1 in lines::$2 = lines::l#3 + 1 @@ -1035,24 +1035,24 @@ Adding number conversion cast (unumber) lines::$2 in lines::$2 = lines::l#3 + (u Adding number conversion cast (unumber) $400 in init_screen::$0 = init_screen::c#2 != SCREEN+$400 Adding number conversion cast (unumber) $14 in *init_screen::c#3 = $14 Successful SSA optimization PassNAddNumberTypeConversions -Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&(unumber)$3fff/$400 -Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(word)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/$40|(unsigned int)BITMAP&(unumber)$3fff/$400 +Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (char)(unsigned int)SCREEN&(unumber)$3fff/(unumber)$40|(unsigned int)BITMAP&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast bitmap_init::bits#2 = (unumber)$80 Inlining cast memset::c#1 = (unumber)0 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast sgn_u16::return#2 = (unumber)-1 Inlining cast sgn_u16::return#3 = (unumber)1 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)0 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = (unumber)0 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)0 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = (unumber)0 Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 Inlining cast *init_screen::c#3 = (unumber)$14 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 1 @@ -1088,49 +1088,49 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $400 Simplifying constant integer cast $14 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $fff8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) -1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $14 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $fff8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) -1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $14 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in bitmap_init::$3 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 -Inferred type updated to byte in bitmap_init::$7 = bitmap_init::y#2 & 7 -Inferred type updated to byte in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 -Inferred type updated to word in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 -Inferred type updated to byte in abs_u16::$1 = abs_u16::$0 & $80 -Inferred type updated to byte in sgn_u16::$1 = sgn_u16::$0 & $80 -Inferred type updated to byte in lines::$1 = lines::l#3 + 1 -Inferred type updated to byte in lines::$2 = lines::l#3 + 1 +Inferred type updated to char in bitmap_init::$3 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_init::$5 = bitmap_init::$3 | bitmap_init::$4 +Inferred type updated to char in bitmap_init::$7 = bitmap_init::y#2 & 7 +Inferred type updated to char in bitmap_clear::$0 = bitmap_clear::fgcol#1 * $10 +Inferred type updated to unsigned int in bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 +Inferred type updated to char in abs_u16::$1 = abs_u16::$0 & $80 +Inferred type updated to char in sgn_u16::$1 = sgn_u16::$0 & $80 +Inferred type updated to char in lines::$1 = lines::l#3 + 1 +Inferred type updated to char in lines::$2 = lines::l#3 + 1 Inversing boolean not [9] bitmap_init::$1 = bitmap_init::bits#1 != 0 from [8] bitmap_init::$0 = bitmap_init::bits#1 == 0 Inversing boolean not [29] bitmap_init::$9 = bitmap_init::$7 != 7 from [28] bitmap_init::$8 = bitmap_init::$7 == 7 Inversing boolean not [117] bitmap_line::$18 = bitmap_line::dy#3 >= bitmap_line::e#1 from [116] bitmap_line::$17 = bitmap_line::dy#3 < bitmap_line::e#1 @@ -1306,14 +1306,14 @@ Constant bitmap_clear::bgcol#0 = BLACK Constant bitmap_clear::fgcol#0 = WHITE Constant lines::l#0 = 0 Constant init_screen::c#0 = SCREEN -Constant bitmap_screen#16 = (byte*) 0 -Constant bitmap_gfx#17 = (byte*) 0 +Constant bitmap_screen#16 = (char *) 0 +Constant bitmap_gfx#17 = (char *) 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_gfx#0 = bitmap_init::gfx#0 Constant bitmap_screen#0 = bitmap_init::screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)bitmap_screen#0 -Constant memset::str#1 = (void*)bitmap_gfx#0 +Constant memset::str#0 = (void *)bitmap_screen#0 +Constant memset::str#1 = (void *)bitmap_gfx#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [159] if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -1346,8 +1346,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bitmap_init::$7 = bitmap_init::$3 Alias bitmap_clear::col#0 = bitmap_clear::$0 @@ -1363,10 +1363,10 @@ Constant bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10 Successful SSA optimization Pass2ConstantIdentification Constant memset::c#0 = bitmap_clear::col#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [25] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0 +Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [83] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [85] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [83] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [85] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting division to use shift [53] bitmap_line::e1#0 = bitmap_line::dy#0 / 2 Rewriting division to use shift [54] bitmap_line::e#0 = bitmap_line::dx#0 / 2 @@ -1386,8 +1386,8 @@ Inlining constant with var siblings sgn_u16::return#3 Inlining constant with var siblings lines::l#0 Inlining constant with var siblings init_screen::c#0 Constant inlined bitmap_init::screen#0 = SCREEN -Constant inlined memset::str#1 = (void*)BITMAP -Constant inlined memset::str#0 = (void*)SCREEN +Constant inlined memset::str#1 = (void *)BITMAP +Constant inlined memset::str#0 = (void *)SCREEN Constant inlined bitmap_init::gfx#0 = BITMAP Constant inlined memset::num#1 = $1f40 Constant inlined bitmap_clear::fgcol#0 = WHITE @@ -1410,14 +1410,14 @@ Consolidated array index constant in assignment (lines_y+1)[lines::$2] Successful SSA optimization Pass2ConstantAdditionElimination Alias lines::l#2 = lines::$1 lines::$2 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1) Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2) @@ -1547,26 +1547,26 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 - [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 - [4] call bitmap_init + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 + [4] call bitmap_init to:main::@2 main::@2: scope:[main] from main [5] phi() - [6] call bitmap_clear + [6] call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 [7] phi() - [8] call init_screen + [8] call init_screen to:main::@1 main::@1: scope:[main] from main::@1 main::@3 [9] phi() - [10] call lines + [10] call lines to:main::@1 -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) +void bitmap_init(char *gfx , char *screen) bitmap_init: scope:[bitmap_init] from main [11] phi() to:bitmap_init::@1 @@ -1597,7 +1597,7 @@ bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [27] if(bitmap_init::$7!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 - [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 + [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [29] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) @@ -1608,14 +1608,14 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [32] return to:@return -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) +void bitmap_clear(char bgcol , char fgcol) bitmap_clear: scope:[bitmap_clear] from main::@2 [33] phi() - [34] call memset + [34] call memset to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear [35] phi() - [36] call memset + [36] call memset to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1 [37] return @@ -1653,22 +1653,22 @@ lines::@2: scope:[lines] from lines::@1 [49] bitmap_line::y1#0 = lines_y[lines::l#2] [50] bitmap_line::x2#0 = (lines_x+1)[lines::l#2] [51] bitmap_line::y2#0 = (lines_y+1)[lines::l#2] - [52] call bitmap_line + [52] call bitmap_line to:lines::@3 lines::@3: scope:[lines] from lines::@2 [53] lines::l#1 = ++ lines::l#2 to:lines::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from bitmap_clear bitmap_clear::@1 [54] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 ) - [54] memset::str#3 = phi( bitmap_clear/(void*)SCREEN, bitmap_clear::@1/(void*)BITMAP ) + [54] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP ) [54] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 ) [55] if(memset::num#2<=0) goto memset::@return to:memset::@1 memset::@1: scope:[memset] from memset - [56] memset::end#0 = (byte*)memset::str#3 + memset::num#2 - [57] memset::dst#4 = (byte*)memset::str#3 + [56] memset::end#0 = (char *)memset::str#3 + memset::num#2 + [57] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [58] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1682,16 +1682,16 @@ memset::@3: scope:[memset] from memset::@2 [62] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) bitmap_line: scope:[bitmap_line] from lines::@2 [63] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [64] call abs_u16 + [64] call abs_u16 [65] abs_u16::return#0 = abs_u16::return#4 to:bitmap_line::@12 bitmap_line::@12: scope:[bitmap_line] from bitmap_line [66] bitmap_line::dx#0 = abs_u16::return#0 [67] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [68] call abs_u16 + [68] call abs_u16 [69] abs_u16::return#1 = abs_u16::return#4 to:bitmap_line::@13 bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12 @@ -1703,13 +1703,13 @@ bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@1 bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18 [73] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 - [74] call sgn_u16 + [74] call sgn_u16 [75] sgn_u16::return#0 = sgn_u16::return#4 to:bitmap_line::@14 bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1 [76] bitmap_line::sx#0 = sgn_u16::return#0 [77] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0 - [78] call sgn_u16 + [78] call sgn_u16 [79] sgn_u16::return#1 = sgn_u16::return#4 to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14 @@ -1724,8 +1724,8 @@ bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7 [83] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 ) [83] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 ) [84] bitmap_plot::x#1 = bitmap_line::x#13 - [85] bitmap_plot::y#1 = (byte)bitmap_line::y#4 - [86] call bitmap_plot + [85] bitmap_plot::y#1 = (char)bitmap_line::y#4 + [86] call bitmap_plot to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6 [87] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0 @@ -1745,8 +1745,8 @@ bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7 [94] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 ) [94] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 ) [95] bitmap_plot::x#2 = bitmap_line::x#6 - [96] bitmap_plot::y#2 = (byte)bitmap_line::y#7 - [97] call bitmap_plot + [96] bitmap_plot::y#2 = (char)bitmap_line::y#7 + [97] call bitmap_plot to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4 [98] return @@ -1759,8 +1759,8 @@ bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2 [100] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 ) [100] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 ) [101] bitmap_plot::x#3 = bitmap_line::x#7 - [102] bitmap_plot::y#3 = (byte)bitmap_line::y#15 - [103] call bitmap_plot + [102] bitmap_plot::y#3 = (char)bitmap_line::y#15 + [103] call bitmap_plot to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 [104] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0 @@ -1778,11 +1778,11 @@ bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17 to:bitmap_line::@3 bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18 [111] bitmap_plot::x#0 = bitmap_line::x1#0 - [112] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 - [113] call bitmap_plot + [112] bitmap_plot::y#0 = (char)bitmap_line::y1#0 + [113] call bitmap_plot to:bitmap_line::@return -word abs_u16(word abs_u16::w) +unsigned int abs_u16(unsigned int w) abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12 [114] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 ) [115] abs_u16::$0 = byte1 abs_u16::w#2 @@ -1797,7 +1797,7 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1 [120] return to:@return -word sgn_u16(word sgn_u16::w) +unsigned int sgn_u16(unsigned int w) sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14 [121] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 ) [122] sgn_u16::$0 = byte1 sgn_u16::w#2 @@ -1812,13 +1812,13 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1 [127] return to:@return -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) +void bitmap_plot(unsigned int x , char y) bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9 [128] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 ) [128] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 ) [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [130] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 - [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 + [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [132] bitmap_plot::$2 = byte0 bitmap_plot::x#4 [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] to:bitmap_plot::@return @@ -1828,140 +1828,140 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot VARIABLE REGISTER WEIGHTS -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 2000002.0 -byte~ abs_u16::$1 2000002.0 -word abs_u16::return -word abs_u16::return#0 200002.0 -word abs_u16::return#1 200002.0 -word abs_u16::return#2 2000002.0 -word abs_u16::return#4 550001.0 -word abs_u16::w -word abs_u16::w#0 200002.0 -word abs_u16::w#1 200002.0 -word abs_u16::w#2 800001.25 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 202.0 -byte~ bitmap_init::$5 202.0 -byte~ bitmap_init::$6 202.0 -byte~ bitmap_init::$7 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 101.0 -byte bitmap_init::bits#3 151.5 -byte bitmap_init::bits#4 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 151.5 -byte bitmap_init::x#2 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 151.5 -byte bitmap_init::y#2 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 202.0 -byte* bitmap_init::yoffs#2 63.125 -byte* bitmap_init::yoffs#4 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 7510000.175000001 -word bitmap_line::dy -word bitmap_line::dy#0 8344444.63888889 -word bitmap_line::e -word bitmap_line::e#0 200002.0 -word bitmap_line::e#1 1.3333333466666667E8 -word bitmap_line::e#2 2.00000002E8 -word bitmap_line::e#3 4.0020000599999994E7 -word bitmap_line::e#6 1.500000015E8 -word bitmap_line::e1 -word bitmap_line::e1#0 200002.0 -word bitmap_line::e1#1 1.3333333466666667E8 -word bitmap_line::e1#2 2.00000002E8 -word bitmap_line::e1#3 4.0020000599999994E7 -word bitmap_line::e1#6 1.500000015E8 -word bitmap_line::sx -word bitmap_line::sx#0 6670000.1 -word bitmap_line::sy -word bitmap_line::sy#0 7696153.961538462 -word bitmap_line::x -word bitmap_line::x#1 1.00000001E8 -word bitmap_line::x#12 2.00000002E8 -word bitmap_line::x#13 5.715714357142858E7 -word bitmap_line::x#15 5.714285771428572E7 -word bitmap_line::x#6 2.00100003E8 -word bitmap_line::x#7 7.5025001E7 -word bitmap_line::x1 -word bitmap_line::x1#0 20400.24 -word bitmap_line::x2 -word bitmap_line::x2#0 3036666.7878787876 -word bitmap_line::y -word bitmap_line::y#1 5.714285771428572E7 -word bitmap_line::y#13 2.00000002E8 -word bitmap_line::y#15 4.287142914285715E7 -word bitmap_line::y#2 1.00000001E8 -word bitmap_line::y#4 5.002500075E7 -word bitmap_line::y#7 1.00000001E8 -word bitmap_line::y1 -word bitmap_line::y1#0 16400.2 -word bitmap_line::y2 -word bitmap_line::y2#0 3131562.625 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 2.000000002E9 -byte~ bitmap_plot::$2 2.000000002E9 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 5.000000005E8 -byte* bitmap_plot::plotter#1 1.5000000015E9 -word bitmap_plot::x -word bitmap_plot::x#0 100001.0 -word bitmap_plot::x#1 1.00000001E8 -word bitmap_plot::x#2 100001.0 -word bitmap_plot::x#3 1.00000001E8 -word bitmap_plot::x#4 5.500500015E8 -byte bitmap_plot::y -byte bitmap_plot::y#0 200002.0 -byte bitmap_plot::y#1 2.00000002E8 -byte bitmap_plot::y#2 200002.0 -byte bitmap_plot::y#3 2.00000002E8 -byte bitmap_plot::y#4 2.200200006E9 -byte* bitmap_screen +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // 2000002.0 +char abs_u16::$1 // 2000002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // 200002.0 +unsigned int abs_u16::return#1 // 200002.0 +unsigned int abs_u16::return#2 // 2000002.0 +unsigned int abs_u16::return#4 // 550001.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // 200002.0 +unsigned int abs_u16::w#1 // 200002.0 +unsigned int abs_u16::w#2 // 800001.25 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // 202.0 +char bitmap_init::$5 // 202.0 +char bitmap_init::$6 // 202.0 +char bitmap_init::$7 // 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // 101.0 +char bitmap_init::bits#3 // 151.5 +char bitmap_init::bits#4 // 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // 151.5 +char bitmap_init::x#2 // 50.5 +char bitmap_init::y +char bitmap_init::y#1 // 151.5 +char bitmap_init::y#2 // 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // 202.0 +char *bitmap_init::yoffs#2 // 63.125 +char *bitmap_init::yoffs#4 // 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // 7510000.175000001 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // 8344444.63888889 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // 200002.0 +unsigned int bitmap_line::e#1 // 1.3333333466666667E8 +unsigned int bitmap_line::e#2 // 2.00000002E8 +unsigned int bitmap_line::e#3 // 4.0020000599999994E7 +unsigned int bitmap_line::e#6 // 1.500000015E8 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // 200002.0 +unsigned int bitmap_line::e1#1 // 1.3333333466666667E8 +unsigned int bitmap_line::e1#2 // 2.00000002E8 +unsigned int bitmap_line::e1#3 // 4.0020000599999994E7 +unsigned int bitmap_line::e1#6 // 1.500000015E8 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // 6670000.1 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // 7696153.961538462 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // 1.00000001E8 +unsigned int bitmap_line::x#12 // 2.00000002E8 +unsigned int bitmap_line::x#13 // 5.715714357142858E7 +unsigned int bitmap_line::x#15 // 5.714285771428572E7 +unsigned int bitmap_line::x#6 // 2.00100003E8 +unsigned int bitmap_line::x#7 // 7.5025001E7 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 // 20400.24 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // 3036666.7878787876 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // 5.714285771428572E7 +unsigned int bitmap_line::y#13 // 2.00000002E8 +unsigned int bitmap_line::y#15 // 4.287142914285715E7 +unsigned int bitmap_line::y#2 // 1.00000001E8 +unsigned int bitmap_line::y#4 // 5.002500075E7 +unsigned int bitmap_line::y#7 // 1.00000001E8 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 // 16400.2 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 // 3131562.625 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // 2.000000002E9 +char bitmap_plot::$2 // 2.000000002E9 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // 5.000000005E8 +char *bitmap_plot::plotter#1 // 1.5000000015E9 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // 100001.0 +unsigned int bitmap_plot::x#1 // 1.00000001E8 +unsigned int bitmap_plot::x#2 // 100001.0 +unsigned int bitmap_plot::x#3 // 1.00000001E8 +unsigned int bitmap_plot::x#4 // 5.500500015E8 +char bitmap_plot::y +char bitmap_plot::y#0 // 200002.0 +char bitmap_plot::y#1 // 2.00000002E8 +char bitmap_plot::y#2 // 200002.0 +char bitmap_plot::y#3 // 2.00000002E8 +char bitmap_plot::y#4 // 2.200200006E9 +char *bitmap_screen void init_screen() -byte* init_screen::c -byte* init_screen::c#1 202.0 -byte* init_screen::c#2 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // 202.0 +char *init_screen::c#2 // 134.66666666666666 void lines() -byte lines::l -byte lines::l#1 20002.0 -byte lines::l#2 10001.000000000002 +char lines::l +char lines::l#1 // 20002.0 +char lines::l#2 // 10001.000000000002 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 125.125 -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1368.3333333333335 -byte* memset::dst#4 202.0 -byte* memset::end -byte* memset::end#0 183.66666666666669 -word memset::num -word memset::num#2 101.0 -void* memset::return -void* memset::str -void* memset::str#3 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 2000002.0 -byte~ sgn_u16::$1 2000002.0 -word sgn_u16::return -word sgn_u16::return#0 200002.0 -word sgn_u16::return#1 200002.0 -word sgn_u16::return#4 50000.5 -word sgn_u16::w -word sgn_u16::w#0 200002.0 -word sgn_u16::w#1 200002.0 -word sgn_u16::w#2 1200003.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 125.125 +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1368.3333333333335 +char *memset::dst#4 // 202.0 +char *memset::end +char *memset::end#0 // 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // 101.0 +void *memset::return +void *memset::str +void *memset::str#3 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // 2000002.0 +char sgn_u16::$1 // 2000002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // 200002.0 +unsigned int sgn_u16::return#1 // 200002.0 +unsigned int sgn_u16::return#4 // 50000.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // 200002.0 +unsigned int sgn_u16::w#1 // 200002.0 +unsigned int sgn_u16::w#2 // 1200003.0 Initial phi equivalence classes [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] @@ -2093,11 +2093,11 @@ Allocated zp[2]:68 [ bitmap_plot::plotter#1 ] Allocated zp[1]:70 [ bitmap_plot::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp[1]:35 [ bitmap_init::$4 ] has ALU potential. -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [40] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [42] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y @@ -2108,8 +2108,8 @@ Statement [50] bitmap_line::x2#0 = (lines_x+1)[lines::l#2] [ lines::l#2 bitmap_l Statement [51] bitmap_line::y2#0 = (lines_y+1)[lines::l#2] [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 ] ( lines:10 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a Statement [55] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:34 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:36 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:14 [ memset::c#4 ] -Statement [56] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:34 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [57] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [56] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:34 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [57] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [59] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [61] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:14 [ memset::c#4 ] @@ -2149,15 +2149,15 @@ Statement [111] bitmap_plot::x#0 = bitmap_line::x1#0 [ bitmap_line::y1#0 bitmap_ Statement [118] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( lines:10::bitmap_line:52::abs_u16:64 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } lines:10::bitmap_line:52::abs_u16:68 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [130] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:9 [ lines::l#2 lines::l#1 ] -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [21] bitmap_init::$7 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$7 ] { } ) always clobbers reg byte a -Statement [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a +Statement [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [40] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [42] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [48] bitmap_line::x1#0 = lines_x[lines::l#2] [ lines::l#2 bitmap_line::x1#0 ] ( lines:10 [ lines::l#2 bitmap_line::x1#0 ] { } ) always clobbers reg byte a @@ -2165,8 +2165,8 @@ Statement [49] bitmap_line::y1#0 = lines_y[lines::l#2] [ lines::l#2 bitmap_line: Statement [50] bitmap_line::x2#0 = (lines_x+1)[lines::l#2] [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 ] ( lines:10 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 ] { } ) always clobbers reg byte a Statement [51] bitmap_line::y2#0 = (lines_y+1)[lines::l#2] [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 ] ( lines:10 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 ] { } ) always clobbers reg byte a Statement [55] if(memset::num#2<=0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( bitmap_clear:6::memset:34 [ memset::num#2 memset::str#3 memset::c#4 ] { } bitmap_clear:6::memset:36 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [56] memset::end#0 = (byte*)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:34 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [57] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [56] memset::end#0 = (char *)memset::str#3 + memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( bitmap_clear:6::memset:34 [ memset::str#3 memset::c#4 memset::end#0 ] { } bitmap_clear:6::memset:36 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [57] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#4 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [59] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [61] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( bitmap_clear:6::memset:34 [ memset::c#4 memset::end#0 memset::dst#2 ] { } bitmap_clear:6::memset:36 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [63] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0 [ bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::w#0 ] ( lines:10::bitmap_line:52 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::w#0 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } ) always clobbers reg byte a @@ -2205,7 +2205,7 @@ Statement [111] bitmap_plot::x#0 = bitmap_line::x1#0 [ bitmap_line::y1#0 bitmap_ Statement [118] abs_u16::return#2 = - abs_u16::w#2 [ abs_u16::return#2 ] ( lines:10::bitmap_line:52::abs_u16:64 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 abs_u16::return#2 ] { { abs_u16::w#0 = abs_u16::w#2 } { abs_u16::return#0 = abs_u16::return#4 } } lines:10::bitmap_line:52::abs_u16:68 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y1#0 bitmap_line::x2#0 bitmap_line::y2#0 bitmap_line::dx#0 abs_u16::return#2 ] { { abs_u16::w#1 = abs_u16::w#2 } { abs_u16::return#1 = abs_u16::return#4 } } ) always clobbers reg byte a Statement [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [130] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8 [ bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a -Statement [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a +Statement [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 [ bitmap_plot::x#4 bitmap_plot::plotter#1 ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 bitmap_plot::x#4 bitmap_plot::plotter#1 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a Statement [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2] [ ] ( lines:10::bitmap_line:52::bitmap_plot:86 [ lines::l#2 bitmap_line::y2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#13 bitmap_line::y#4 bitmap_line::e#3 ] { { bitmap_plot::y#1 = bitmap_plot::y#4 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line::x#13 } } lines:10::bitmap_line:52::bitmap_plot:97 [ lines::l#2 ] { { bitmap_plot::y#2 = bitmap_plot::y#4 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line::x#6 } } lines:10::bitmap_line:52::bitmap_plot:103 [ lines::l#2 bitmap_line::x2#0 bitmap_line::dx#0 bitmap_line::dy#0 bitmap_line::sx#0 bitmap_line::sy#0 bitmap_line::x#7 bitmap_line::y#15 bitmap_line::e1#3 ] { { bitmap_plot::y#3 = bitmap_plot::y#4 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line::x#7 } } lines:10::bitmap_line:52::bitmap_plot:113 [ lines::l#2 ] { { bitmap_plot::y#0 = bitmap_plot::y#4 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line::x1#0 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -2367,19 +2367,19 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 - // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY - // [4] call bitmap_init + // [4] call bitmap_init // [11] phi from main to bitmap_init [phi:main->bitmap_init] bitmap_init_from_main: jsr bitmap_init @@ -2388,7 +2388,7 @@ main: { jmp __b2 // main::@2 __b2: - // [6] call bitmap_clear + // [6] call bitmap_clear // [33] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] bitmap_clear_from___b2: jsr bitmap_clear @@ -2397,7 +2397,7 @@ main: { jmp __b3 // main::@3 __b3: - // [8] call init_screen + // [8] call init_screen // [38] phi from main::@3 to init_screen [phi:main::@3->init_screen] init_screen_from___b3: jsr init_screen @@ -2407,7 +2407,7 @@ main: { jmp __b1 // main::@1 __b1: - // [10] call lines + // [10] call lines // [44] phi from main::@1 to lines [phi:main::@1->lines] lines_from___b1: jsr lines @@ -2415,6 +2415,7 @@ main: { } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $e .label yoffs = 2 @@ -2497,7 +2498,7 @@ bitmap_init: { jmp __b5 // bitmap_init::@5 __b5: - // [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -2527,14 +2528,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 - // [34] call memset + // [34] call memset // [54] phi from bitmap_clear to memset [phi:bitmap_clear->memset] memset_from_bitmap_clear: // [54] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [54] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [54] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -2550,12 +2552,12 @@ bitmap_clear: { jmp __b1 // bitmap_clear::@1 __b1: - // [36] call memset + // [36] call memset // [54] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] memset_from___b1: // [54] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [54] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [54] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -2659,7 +2661,7 @@ lines: { sta.z bitmap_line.y2 lda #0 sta.z bitmap_line.y2+1 - // [52] call bitmap_line + // [52] call bitmap_line jsr bitmap_line jmp __b3 // lines::@3 @@ -2673,7 +2675,7 @@ lines: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c, word zp(2) num) +// void * memset(__zp(4) void *str, __register(X) char c, __zp(2) unsigned int num) memset: { .label end = 2 .label dst = 4 @@ -2688,7 +2690,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [56] memset::end#0 = (byte*)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [56] memset::end#0 = (char *)memset::str#3 + memset::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z end adc.z str @@ -2696,7 +2698,7 @@ memset: { lda.z end+1 adc.z str+1 sta.z end+1 - // [57] memset::dst#4 = (byte*)memset::str#3 + // [57] memset::dst#4 = (char *)memset::str#3 // [58] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2731,7 +2733,7 @@ memset: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(4) x1, word zp(6) y1, word zp($f) x2, word zp($11) y2) +// void bitmap_line(__zp(4) unsigned int x1, __zp(6) unsigned int y1, __zp($f) unsigned int x2, __zp($11) unsigned int y2) bitmap_line: { .label dx = $13 .label dy = $a @@ -2753,7 +2755,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z abs_u16.w+1 - // [64] call abs_u16 + // [64] call abs_u16 // [114] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] abs_u16_from_bitmap_line: // [114] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy @@ -2775,7 +2777,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z abs_u16.w+1 - // [68] call abs_u16 + // [68] call abs_u16 // [114] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] abs_u16_from___b12: // [114] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy @@ -2807,7 +2809,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z sgn_u16.w+1 - // [74] call sgn_u16 + // [74] call sgn_u16 // [121] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] sgn_u16_from___b1: // [121] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy @@ -2829,7 +2831,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z sgn_u16.w+1 - // [78] call sgn_u16 + // [78] call sgn_u16 // [121] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] sgn_u16_from___b14: // [121] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy @@ -2869,9 +2871,9 @@ bitmap_line: { // bitmap_line::@6 __b6: // [84] bitmap_plot::x#1 = bitmap_line::x#13 - // [85] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 + // [85] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 ldx.z y - // [86] call bitmap_plot + // [86] call bitmap_plot // [128] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] bitmap_plot_from___b6: // [128] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy @@ -2948,9 +2950,9 @@ bitmap_line: { // bitmap_line::@3 __b3: // [95] bitmap_plot::x#2 = bitmap_line::x#6 - // [96] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [96] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [97] call bitmap_plot + // [97] call bitmap_plot // [128] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] bitmap_plot_from___b3: // [128] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy @@ -2981,9 +2983,9 @@ bitmap_line: { // bitmap_line::@9 __b9: // [101] bitmap_plot::x#3 = bitmap_line::x#7 - // [102] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [102] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [103] call bitmap_plot + // [103] call bitmap_plot // [128] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] bitmap_plot_from___b9: // [128] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy @@ -3055,9 +3057,9 @@ bitmap_line: { // bitmap_line::@4 __b4: // [111] bitmap_plot::x#0 = bitmap_line::x1#0 - // [112] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 + // [112] bitmap_plot::y#0 = (char)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 ldx.z y1 - // [113] call bitmap_plot + // [113] call bitmap_plot // [128] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] bitmap_plot_from___b4: // [128] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy @@ -3067,7 +3069,7 @@ bitmap_line: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($a) w) +// __zp($a) unsigned int abs_u16(__zp($a) unsigned int w) abs_u16: { .label w = $a .label return = $a @@ -3102,7 +3104,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($17) w) +// __zp($c) unsigned int sgn_u16(__zp($17) unsigned int w) sgn_u16: { .label w = $17 .label return = $c @@ -3141,7 +3143,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(4) x, byte register(X) y) +// void bitmap_plot(__zp(4) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $19 .label plotter = $17 @@ -3158,7 +3160,7 @@ bitmap_plot: { lda.z x+1 and #>$fff8 sta.z __1+1 - // [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 @@ -3343,161 +3345,161 @@ Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [262] beq __b4 to bne +Fixing long branch [264] beq __b4 to bne FINAL SYMBOL TABLE -constant byte* const BITMAP = (byte*) 8192 -constant byte* const D011 = (byte*) 53265 -constant const byte LINES = 8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte* const SCREEN = (byte*) 1024 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2000002.0 -byte~ abs_u16::$1 reg byte a 2000002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:10 200002.0 -word abs_u16::return#1 return zp[2]:10 200002.0 -word abs_u16::return#2 return zp[2]:10 2000002.0 -word abs_u16::return#4 return zp[2]:10 550001.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:10 200002.0 -word abs_u16::w#1 w zp[2]:10 200002.0 -word abs_u16::w#2 w zp[2]:10 800001.25 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:14 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:2 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:2 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:2 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:19 7510000.175000001 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:10 8344444.63888889 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:2 200002.0 -word bitmap_line::e#1 e zp[2]:2 1.3333333466666667E8 -word bitmap_line::e#2 e zp[2]:2 2.00000002E8 -word bitmap_line::e#3 e zp[2]:2 4.0020000599999994E7 -word bitmap_line::e#6 e zp[2]:2 1.500000015E8 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:8 200002.0 -word bitmap_line::e1#1 e1 zp[2]:8 1.3333333466666667E8 -word bitmap_line::e1#2 e1 zp[2]:8 2.00000002E8 -word bitmap_line::e1#3 e1 zp[2]:8 4.0020000599999994E7 -word bitmap_line::e1#6 e1 zp[2]:8 1.500000015E8 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:21 6670000.1 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:12 7696153.961538462 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:4 1.00000001E8 -word bitmap_line::x#12 x zp[2]:4 2.00000002E8 -word bitmap_line::x#13 x zp[2]:4 5.715714357142858E7 -word bitmap_line::x#15 x zp[2]:4 5.714285771428572E7 -word bitmap_line::x#6 x zp[2]:4 2.00100003E8 -word bitmap_line::x#7 x zp[2]:4 7.5025001E7 -word bitmap_line::x1 -word bitmap_line::x1#0 x1 zp[2]:4 20400.24 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:15 3036666.7878787876 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:6 5.714285771428572E7 -word bitmap_line::y#13 y zp[2]:6 2.00000002E8 -word bitmap_line::y#15 y zp[2]:6 4.287142914285715E7 -word bitmap_line::y#2 y zp[2]:6 1.00000001E8 -word bitmap_line::y#4 y zp[2]:6 5.002500075E7 -word bitmap_line::y#7 y zp[2]:6 1.00000001E8 -word bitmap_line::y1 -word bitmap_line::y1#0 y1 zp[2]:6 16400.2 -word bitmap_line::y2 -word bitmap_line::y2#0 y2 zp[2]:17 3131562.625 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:25 2.000000002E9 -byte~ bitmap_plot::$2 reg byte x 2.000000002E9 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:23 5.000000005E8 -byte* bitmap_plot::plotter#1 plotter zp[2]:23 1.5000000015E9 -word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:4 100001.0 -word bitmap_plot::x#1 x zp[2]:4 1.00000001E8 -word bitmap_plot::x#2 x zp[2]:4 100001.0 -word bitmap_plot::x#3 x zp[2]:4 1.00000001E8 -word bitmap_plot::x#4 x zp[2]:4 5.500500015E8 -byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte x 200002.0 -byte bitmap_plot::y#1 reg byte x 2.00000002E8 -byte bitmap_plot::y#2 reg byte x 200002.0 -byte bitmap_plot::y#3 reg byte x 2.00000002E8 -byte bitmap_plot::y#4 reg byte x 2.200200006E9 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char * const BITMAP = (char *) 8192 +__constant char * const D011 = (char *) 53265 +__constant const char LINES = 8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char * const SCREEN = (char *) 1024 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2000002.0 +char abs_u16::$1 // reg byte a 2000002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:10 200002.0 +unsigned int abs_u16::return#1 // return zp[2]:10 200002.0 +unsigned int abs_u16::return#2 // return zp[2]:10 2000002.0 +unsigned int abs_u16::return#4 // return zp[2]:10 550001.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:10 200002.0 +unsigned int abs_u16::w#1 // w zp[2]:10 200002.0 +unsigned int abs_u16::w#2 // w zp[2]:10 800001.25 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:14 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:2 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:2 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:2 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:19 7510000.175000001 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:10 8344444.63888889 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:2 200002.0 +unsigned int bitmap_line::e#1 // e zp[2]:2 1.3333333466666667E8 +unsigned int bitmap_line::e#2 // e zp[2]:2 2.00000002E8 +unsigned int bitmap_line::e#3 // e zp[2]:2 4.0020000599999994E7 +unsigned int bitmap_line::e#6 // e zp[2]:2 1.500000015E8 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:8 200002.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:8 1.3333333466666667E8 +unsigned int bitmap_line::e1#2 // e1 zp[2]:8 2.00000002E8 +unsigned int bitmap_line::e1#3 // e1 zp[2]:8 4.0020000599999994E7 +unsigned int bitmap_line::e1#6 // e1 zp[2]:8 1.500000015E8 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:21 6670000.1 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:12 7696153.961538462 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:4 1.00000001E8 +unsigned int bitmap_line::x#12 // x zp[2]:4 2.00000002E8 +unsigned int bitmap_line::x#13 // x zp[2]:4 5.715714357142858E7 +unsigned int bitmap_line::x#15 // x zp[2]:4 5.714285771428572E7 +unsigned int bitmap_line::x#6 // x zp[2]:4 2.00100003E8 +unsigned int bitmap_line::x#7 // x zp[2]:4 7.5025001E7 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 // x1 zp[2]:4 20400.24 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:15 3036666.7878787876 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:6 5.714285771428572E7 +unsigned int bitmap_line::y#13 // y zp[2]:6 2.00000002E8 +unsigned int bitmap_line::y#15 // y zp[2]:6 4.287142914285715E7 +unsigned int bitmap_line::y#2 // y zp[2]:6 1.00000001E8 +unsigned int bitmap_line::y#4 // y zp[2]:6 5.002500075E7 +unsigned int bitmap_line::y#7 // y zp[2]:6 1.00000001E8 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 // y1 zp[2]:6 16400.2 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 // y2 zp[2]:17 3131562.625 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:25 2.000000002E9 +char bitmap_plot::$2 // reg byte x 2.000000002E9 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:23 5.000000005E8 +char *bitmap_plot::plotter#1 // plotter zp[2]:23 1.5000000015E9 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // x zp[2]:4 100001.0 +unsigned int bitmap_plot::x#1 // x zp[2]:4 1.00000001E8 +unsigned int bitmap_plot::x#2 // x zp[2]:4 100001.0 +unsigned int bitmap_plot::x#3 // x zp[2]:4 1.00000001E8 +unsigned int bitmap_plot::x#4 // x zp[2]:4 5.500500015E8 +char bitmap_plot::y +char bitmap_plot::y#0 // reg byte x 200002.0 +char bitmap_plot::y#1 // reg byte x 2.00000002E8 +char bitmap_plot::y#2 // reg byte x 200002.0 +char bitmap_plot::y#3 // reg byte x 2.00000002E8 +char bitmap_plot::y#4 // reg byte x 2.200200006E9 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void init_screen() -byte* init_screen::c -byte* init_screen::c#1 c zp[2]:2 202.0 -byte* init_screen::c#2 c zp[2]:2 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // c zp[2]:2 202.0 +char *init_screen::c#2 // c zp[2]:2 134.66666666666666 void lines() -byte lines::l -byte lines::l#1 l zp[1]:14 20002.0 -byte lines::l#2 l zp[1]:14 10001.000000000002 -constant byte* lines_x[LINES+1] = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } -constant byte* lines_y[LINES+1] = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } +char lines::l +char lines::l#1 // l zp[1]:14 20002.0 +char lines::l#2 // l zp[1]:14 10001.000000000002 +__constant char lines_x[LINES+1] = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } +__constant char lines_y[LINES+1] = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:4 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:2 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:2 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2000002.0 -byte~ sgn_u16::$1 reg byte a 2000002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:12 200002.0 -word sgn_u16::return#1 return zp[2]:12 200002.0 -word sgn_u16::return#4 return zp[2]:12 50000.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:23 200002.0 -word sgn_u16::w#1 w zp[2]:23 200002.0 -word sgn_u16::w#2 w zp[2]:23 1200003.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:4 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:2 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:2 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2000002.0 +char sgn_u16::$1 // reg byte a 2000002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:12 200002.0 +unsigned int sgn_u16::return#1 // return zp[2]:12 200002.0 +unsigned int sgn_u16::return#4 // return zp[2]:12 50000.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:23 200002.0 +unsigned int sgn_u16::w#1 // w zp[2]:23 200002.0 +unsigned int sgn_u16::w#2 // w zp[2]:23 1200003.0 reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] @@ -3578,47 +3580,48 @@ Score: 246362 // main main: { // VICII->BORDER_COLOR = 0 - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->BG_COLOR = 0 - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 // [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // *VICII_MEMORY = (char)((((unsigned int)SCREEN&$3fff)/$40)|(((unsigned int)BITMAP&$3fff)/$400)) - // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // bitmap_init(BITMAP, SCREEN) - // [4] call bitmap_init + // [4] call bitmap_init // [11] phi from main to bitmap_init [phi:main->bitmap_init] jsr bitmap_init // [5] phi from main to main::@2 [phi:main->main::@2] // main::@2 // bitmap_clear(BLACK, WHITE) - // [6] call bitmap_clear + // [6] call bitmap_clear // [33] phi from main::@2 to bitmap_clear [phi:main::@2->bitmap_clear] jsr bitmap_clear // [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // init_screen() - // [8] call init_screen + // [8] call init_screen // [38] phi from main::@3 to init_screen [phi:main::@3->init_screen] jsr init_screen // [9] phi from main::@1 main::@3 to main::@1 [phi:main::@1/main::@3->main::@1] // main::@1 __b1: // lines() - // [10] call lines + // [10] call lines // [44] phi from main::@1 to lines [phi:main::@1->lines] jsr lines jmp __b1 } // bitmap_init // Initialize bitmap plotting tables +// void bitmap_init(char *gfx, char *screen) bitmap_init: { .label __7 = $e .label yoffs = 2 @@ -3696,7 +3699,7 @@ bitmap_init: { bne __b4 // bitmap_init::@5 // yoffs = yoffs + 40*8 - // [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 + // [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z yoffs clc adc #<$28*8 @@ -3723,14 +3726,15 @@ bitmap_init: { // Clear all graphics on the bitmap // bgcol - the background color to fill the screen with // fgcol - the foreground color to fill the screen with +// void bitmap_clear(char bgcol, char fgcol) bitmap_clear: { .const col = WHITE*$10 // memset(bitmap_screen, col, 1000uw) - // [34] call memset + // [34] call memset // [54] phi from bitmap_clear to memset [phi:bitmap_clear->memset] // [54] phi memset::c#4 = bitmap_clear::col#0 [phi:bitmap_clear->memset#0] -- vbuxx=vbuc1 ldx #col - // [54] phi memset::str#3 = (void*)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 + // [54] phi memset::str#3 = (void *)SCREEN [phi:bitmap_clear->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -3744,11 +3748,11 @@ bitmap_clear: { // [35] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] // bitmap_clear::@1 // memset(bitmap_gfx, 0, 8000uw) - // [36] call memset + // [36] call memset // [54] phi from bitmap_clear::@1 to memset [phi:bitmap_clear::@1->memset] // [54] phi memset::c#4 = 0 [phi:bitmap_clear::@1->memset#0] -- vbuxx=vbuc1 ldx #0 - // [54] phi memset::str#3 = (void*)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 + // [54] phi memset::str#3 = (void *)BITMAP [phi:bitmap_clear::@1->memset#1] -- pvoz1=pvoc1 lda #BITMAP @@ -3846,7 +3850,7 @@ lines: { sta.z bitmap_line.y2 lda #0 sta.z bitmap_line.y2+1 - // [52] call bitmap_line + // [52] call bitmap_line jsr bitmap_line // lines::@3 // for(char l=0; lmemset::@2] // [58] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 @@ -3916,7 +3920,7 @@ memset: { } // bitmap_line // Draw a line on the bitmap using bresenhams algorithm -// bitmap_line(word zp(4) x1, word zp(6) y1, word zp($f) x2, word zp($11) y2) +// void bitmap_line(__zp(4) unsigned int x1, __zp(6) unsigned int y1, __zp($f) unsigned int x2, __zp($11) unsigned int y2) bitmap_line: { .label dx = $13 .label dy = $a @@ -3939,7 +3943,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z abs_u16.w+1 - // [64] call abs_u16 + // [64] call abs_u16 // [114] phi from bitmap_line to abs_u16 [phi:bitmap_line->abs_u16] // [114] phi abs_u16::w#2 = abs_u16::w#0 [phi:bitmap_line->abs_u16#0] -- register_copy jsr abs_u16 @@ -3960,7 +3964,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z abs_u16.w+1 - // [68] call abs_u16 + // [68] call abs_u16 // [114] phi from bitmap_line::@12 to abs_u16 [phi:bitmap_line::@12->abs_u16] // [114] phi abs_u16::w#2 = abs_u16::w#1 [phi:bitmap_line::@12->abs_u16#0] -- register_copy jsr abs_u16 @@ -3991,7 +3995,7 @@ bitmap_line: { lda.z x2+1 sbc.z x1+1 sta.z sgn_u16.w+1 - // [74] call sgn_u16 + // [74] call sgn_u16 // [121] phi from bitmap_line::@1 to sgn_u16 [phi:bitmap_line::@1->sgn_u16] // [121] phi sgn_u16::w#2 = sgn_u16::w#0 [phi:bitmap_line::@1->sgn_u16#0] -- register_copy jsr sgn_u16 @@ -4012,7 +4016,7 @@ bitmap_line: { lda.z y2+1 sbc.z y1+1 sta.z sgn_u16.w+1 - // [78] call sgn_u16 + // [78] call sgn_u16 // [121] phi from bitmap_line::@14 to sgn_u16 [phi:bitmap_line::@14->sgn_u16] // [121] phi sgn_u16::w#2 = sgn_u16::w#1 [phi:bitmap_line::@14->sgn_u16#0] -- register_copy jsr sgn_u16 @@ -4048,9 +4052,9 @@ bitmap_line: { __b6: // bitmap_plot(x,(char)y) // [84] bitmap_plot::x#1 = bitmap_line::x#13 - // [85] bitmap_plot::y#1 = (byte)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 + // [85] bitmap_plot::y#1 = (char)bitmap_line::y#4 -- vbuxx=_byte_vwuz1 ldx.z y - // [86] call bitmap_plot + // [86] call bitmap_plot // [128] phi from bitmap_line::@6 to bitmap_plot [phi:bitmap_line::@6->bitmap_plot] // [128] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line::@6->bitmap_plot#0] -- register_copy // [128] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line::@6->bitmap_plot#1] -- register_copy @@ -4122,9 +4126,9 @@ bitmap_line: { __b3: // bitmap_plot(x,(char)y) // [95] bitmap_plot::x#2 = bitmap_line::x#6 - // [96] bitmap_plot::y#2 = (byte)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 + // [96] bitmap_plot::y#2 = (char)bitmap_line::y#7 -- vbuxx=_byte_vwuz1 ldx.z y - // [97] call bitmap_plot + // [97] call bitmap_plot // [128] phi from bitmap_line::@3 to bitmap_plot [phi:bitmap_line::@3->bitmap_plot] // [128] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line::@3->bitmap_plot#0] -- register_copy // [128] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line::@3->bitmap_plot#1] -- register_copy @@ -4152,9 +4156,9 @@ bitmap_line: { __b9: // bitmap_plot(x,(char)y) // [101] bitmap_plot::x#3 = bitmap_line::x#7 - // [102] bitmap_plot::y#3 = (byte)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 + // [102] bitmap_plot::y#3 = (char)bitmap_line::y#15 -- vbuxx=_byte_vwuz1 ldx.z y - // [103] call bitmap_plot + // [103] call bitmap_plot // [128] phi from bitmap_line::@9 to bitmap_plot [phi:bitmap_line::@9->bitmap_plot] // [128] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line::@9->bitmap_plot#0] -- register_copy // [128] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line::@9->bitmap_plot#1] -- register_copy @@ -4224,9 +4228,9 @@ bitmap_line: { __b4: // bitmap_plot(x,(char)y) // [111] bitmap_plot::x#0 = bitmap_line::x1#0 - // [112] bitmap_plot::y#0 = (byte)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 + // [112] bitmap_plot::y#0 = (char)bitmap_line::y1#0 -- vbuxx=_byte_vwuz1 ldx.z y1 - // [113] call bitmap_plot + // [113] call bitmap_plot // [128] phi from bitmap_line::@4 to bitmap_plot [phi:bitmap_line::@4->bitmap_plot] // [128] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line::@4->bitmap_plot#0] -- register_copy // [128] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line::@4->bitmap_plot#1] -- register_copy @@ -4235,7 +4239,7 @@ bitmap_line: { } // abs_u16 // Get the absolute value of a 16-bit unsigned number treated as a signed number. -// abs_u16(word zp($a) w) +// __zp($a) unsigned int abs_u16(__zp($a) unsigned int w) abs_u16: { .label w = $a .label return = $a @@ -4271,7 +4275,7 @@ abs_u16: { // sgn_u16 // Get the sign of a 16-bit unsigned number treated as a signed number. // Returns unsigned -1 if the number is -// sgn_u16(word zp($17) w) +// __zp($c) unsigned int sgn_u16(__zp($17) unsigned int w) sgn_u16: { .label w = $17 .label return = $c @@ -4307,7 +4311,7 @@ sgn_u16: { } // bitmap_plot // Plot a single dot in the bitmap -// bitmap_plot(word zp(4) x, byte register(X) y) +// void bitmap_plot(__zp(4) unsigned int x, __register(X) char y) bitmap_plot: { .label __1 = $19 .label plotter = $17 @@ -4327,7 +4331,7 @@ bitmap_plot: { and #>$fff8 sta.z __1+1 // plotter += ( x & $fff8 ) - // [131] bitmap_plot::plotter#1 = (byte*)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 + // [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1 -- pbuz1=pbuz1_plus_vwuz2 clc lda.z plotter adc.z __1 diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym index edbb82e07..4592d1ae7 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.sym @@ -1,155 +1,155 @@ -constant byte* const BITMAP = (byte*) 8192 -constant byte* const D011 = (byte*) 53265 -constant const byte LINES = 8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte* const SCREEN = (byte*) 1024 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_BMM = $20 -constant const byte VICII_DEN = $10 -constant byte* const VICII_MEMORY = (byte*) 53272 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -word abs_u16(word abs_u16::w) -byte~ abs_u16::$0 reg byte a 2000002.0 -byte~ abs_u16::$1 reg byte a 2000002.0 -word abs_u16::return -word abs_u16::return#0 return zp[2]:10 200002.0 -word abs_u16::return#1 return zp[2]:10 200002.0 -word abs_u16::return#2 return zp[2]:10 2000002.0 -word abs_u16::return#4 return zp[2]:10 550001.0 -word abs_u16::w -word abs_u16::w#0 w zp[2]:10 200002.0 -word abs_u16::w#1 w zp[2]:10 200002.0 -word abs_u16::w#2 w zp[2]:10 800001.25 -void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) -byte bitmap_clear::bgcol -byte bitmap_clear::col -constant byte bitmap_clear::col#0 col = WHITE*$10 -byte bitmap_clear::fgcol -byte* bitmap_gfx -void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) -byte~ bitmap_init::$4 reg byte a 202.0 -byte~ bitmap_init::$5 reg byte a 202.0 -byte~ bitmap_init::$6 reg byte a 202.0 -byte~ bitmap_init::$7 zp[1]:14 50.5 -byte bitmap_init::bits -byte bitmap_init::bits#1 reg byte a 101.0 -byte bitmap_init::bits#3 reg byte a 151.5 -byte bitmap_init::bits#4 reg byte a 67.33333333333333 -byte* bitmap_init::gfx -byte* bitmap_init::screen -byte bitmap_init::x -byte bitmap_init::x#1 reg byte x 151.5 -byte bitmap_init::x#2 reg byte x 50.5 -byte bitmap_init::y -byte bitmap_init::y#1 reg byte x 151.5 -byte bitmap_init::y#2 reg byte x 50.5 -byte* bitmap_init::yoffs -byte* bitmap_init::yoffs#1 yoffs zp[2]:2 202.0 -byte* bitmap_init::yoffs#2 yoffs zp[2]:2 63.125 -byte* bitmap_init::yoffs#4 yoffs zp[2]:2 101.0 -void bitmap_line(word bitmap_line::x1 , word bitmap_line::y1 , word bitmap_line::x2 , word bitmap_line::y2) -word bitmap_line::dx -word bitmap_line::dx#0 dx zp[2]:19 7510000.175000001 -word bitmap_line::dy -word bitmap_line::dy#0 dy zp[2]:10 8344444.63888889 -word bitmap_line::e -word bitmap_line::e#0 e zp[2]:2 200002.0 -word bitmap_line::e#1 e zp[2]:2 1.3333333466666667E8 -word bitmap_line::e#2 e zp[2]:2 2.00000002E8 -word bitmap_line::e#3 e zp[2]:2 4.0020000599999994E7 -word bitmap_line::e#6 e zp[2]:2 1.500000015E8 -word bitmap_line::e1 -word bitmap_line::e1#0 e1 zp[2]:8 200002.0 -word bitmap_line::e1#1 e1 zp[2]:8 1.3333333466666667E8 -word bitmap_line::e1#2 e1 zp[2]:8 2.00000002E8 -word bitmap_line::e1#3 e1 zp[2]:8 4.0020000599999994E7 -word bitmap_line::e1#6 e1 zp[2]:8 1.500000015E8 -word bitmap_line::sx -word bitmap_line::sx#0 sx zp[2]:21 6670000.1 -word bitmap_line::sy -word bitmap_line::sy#0 sy zp[2]:12 7696153.961538462 -word bitmap_line::x -word bitmap_line::x#1 x zp[2]:4 1.00000001E8 -word bitmap_line::x#12 x zp[2]:4 2.00000002E8 -word bitmap_line::x#13 x zp[2]:4 5.715714357142858E7 -word bitmap_line::x#15 x zp[2]:4 5.714285771428572E7 -word bitmap_line::x#6 x zp[2]:4 2.00100003E8 -word bitmap_line::x#7 x zp[2]:4 7.5025001E7 -word bitmap_line::x1 -word bitmap_line::x1#0 x1 zp[2]:4 20400.24 -word bitmap_line::x2 -word bitmap_line::x2#0 x2 zp[2]:15 3036666.7878787876 -word bitmap_line::y -word bitmap_line::y#1 y zp[2]:6 5.714285771428572E7 -word bitmap_line::y#13 y zp[2]:6 2.00000002E8 -word bitmap_line::y#15 y zp[2]:6 4.287142914285715E7 -word bitmap_line::y#2 y zp[2]:6 1.00000001E8 -word bitmap_line::y#4 y zp[2]:6 5.002500075E7 -word bitmap_line::y#7 y zp[2]:6 1.00000001E8 -word bitmap_line::y1 -word bitmap_line::y1#0 y1 zp[2]:6 16400.2 -word bitmap_line::y2 -word bitmap_line::y2#0 y2 zp[2]:17 3131562.625 -void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) -word~ bitmap_plot::$1 zp[2]:25 2.000000002E9 -byte~ bitmap_plot::$2 reg byte x 2.000000002E9 -byte* bitmap_plot::plotter -word bitmap_plot::plotter#0 plotter zp[2]:23 5.000000005E8 -byte* bitmap_plot::plotter#1 plotter zp[2]:23 1.5000000015E9 -word bitmap_plot::x -word bitmap_plot::x#0 x zp[2]:4 100001.0 -word bitmap_plot::x#1 x zp[2]:4 1.00000001E8 -word bitmap_plot::x#2 x zp[2]:4 100001.0 -word bitmap_plot::x#3 x zp[2]:4 1.00000001E8 -word bitmap_plot::x#4 x zp[2]:4 5.500500015E8 -byte bitmap_plot::y -byte bitmap_plot::y#0 reg byte x 200002.0 -byte bitmap_plot::y#1 reg byte x 2.00000002E8 -byte bitmap_plot::y#2 reg byte x 200002.0 -byte bitmap_plot::y#3 reg byte x 2.00000002E8 -byte bitmap_plot::y#4 reg byte x 2.200200006E9 -constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } -constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } -byte* bitmap_screen +__constant char * const BITMAP = (char *) 8192 +__constant char * const D011 = (char *) 53265 +__constant const char LINES = 8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char * const SCREEN = (char *) 1024 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_BMM = $20 +__constant const char VICII_DEN = $10 +__constant char * const VICII_MEMORY = (char *) 53272 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +unsigned int abs_u16(unsigned int w) +char abs_u16::$0 // reg byte a 2000002.0 +char abs_u16::$1 // reg byte a 2000002.0 +unsigned int abs_u16::return +unsigned int abs_u16::return#0 // return zp[2]:10 200002.0 +unsigned int abs_u16::return#1 // return zp[2]:10 200002.0 +unsigned int abs_u16::return#2 // return zp[2]:10 2000002.0 +unsigned int abs_u16::return#4 // return zp[2]:10 550001.0 +unsigned int abs_u16::w +unsigned int abs_u16::w#0 // w zp[2]:10 200002.0 +unsigned int abs_u16::w#1 // w zp[2]:10 200002.0 +unsigned int abs_u16::w#2 // w zp[2]:10 800001.25 +void bitmap_clear(char bgcol , char fgcol) +char bitmap_clear::bgcol +char bitmap_clear::col +__constant char bitmap_clear::col#0 = WHITE*$10 // col +char bitmap_clear::fgcol +char *bitmap_gfx +void bitmap_init(char *gfx , char *screen) +char bitmap_init::$4 // reg byte a 202.0 +char bitmap_init::$5 // reg byte a 202.0 +char bitmap_init::$6 // reg byte a 202.0 +char bitmap_init::$7 // zp[1]:14 50.5 +char bitmap_init::bits +char bitmap_init::bits#1 // reg byte a 101.0 +char bitmap_init::bits#3 // reg byte a 151.5 +char bitmap_init::bits#4 // reg byte a 67.33333333333333 +char *bitmap_init::gfx +char *bitmap_init::screen +char bitmap_init::x +char bitmap_init::x#1 // reg byte x 151.5 +char bitmap_init::x#2 // reg byte x 50.5 +char bitmap_init::y +char bitmap_init::y#1 // reg byte x 151.5 +char bitmap_init::y#2 // reg byte x 50.5 +char *bitmap_init::yoffs +char *bitmap_init::yoffs#1 // yoffs zp[2]:2 202.0 +char *bitmap_init::yoffs#2 // yoffs zp[2]:2 63.125 +char *bitmap_init::yoffs#4 // yoffs zp[2]:2 101.0 +void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2) +unsigned int bitmap_line::dx +unsigned int bitmap_line::dx#0 // dx zp[2]:19 7510000.175000001 +unsigned int bitmap_line::dy +unsigned int bitmap_line::dy#0 // dy zp[2]:10 8344444.63888889 +unsigned int bitmap_line::e +unsigned int bitmap_line::e#0 // e zp[2]:2 200002.0 +unsigned int bitmap_line::e#1 // e zp[2]:2 1.3333333466666667E8 +unsigned int bitmap_line::e#2 // e zp[2]:2 2.00000002E8 +unsigned int bitmap_line::e#3 // e zp[2]:2 4.0020000599999994E7 +unsigned int bitmap_line::e#6 // e zp[2]:2 1.500000015E8 +unsigned int bitmap_line::e1 +unsigned int bitmap_line::e1#0 // e1 zp[2]:8 200002.0 +unsigned int bitmap_line::e1#1 // e1 zp[2]:8 1.3333333466666667E8 +unsigned int bitmap_line::e1#2 // e1 zp[2]:8 2.00000002E8 +unsigned int bitmap_line::e1#3 // e1 zp[2]:8 4.0020000599999994E7 +unsigned int bitmap_line::e1#6 // e1 zp[2]:8 1.500000015E8 +unsigned int bitmap_line::sx +unsigned int bitmap_line::sx#0 // sx zp[2]:21 6670000.1 +unsigned int bitmap_line::sy +unsigned int bitmap_line::sy#0 // sy zp[2]:12 7696153.961538462 +unsigned int bitmap_line::x +unsigned int bitmap_line::x#1 // x zp[2]:4 1.00000001E8 +unsigned int bitmap_line::x#12 // x zp[2]:4 2.00000002E8 +unsigned int bitmap_line::x#13 // x zp[2]:4 5.715714357142858E7 +unsigned int bitmap_line::x#15 // x zp[2]:4 5.714285771428572E7 +unsigned int bitmap_line::x#6 // x zp[2]:4 2.00100003E8 +unsigned int bitmap_line::x#7 // x zp[2]:4 7.5025001E7 +unsigned int bitmap_line::x1 +unsigned int bitmap_line::x1#0 // x1 zp[2]:4 20400.24 +unsigned int bitmap_line::x2 +unsigned int bitmap_line::x2#0 // x2 zp[2]:15 3036666.7878787876 +unsigned int bitmap_line::y +unsigned int bitmap_line::y#1 // y zp[2]:6 5.714285771428572E7 +unsigned int bitmap_line::y#13 // y zp[2]:6 2.00000002E8 +unsigned int bitmap_line::y#15 // y zp[2]:6 4.287142914285715E7 +unsigned int bitmap_line::y#2 // y zp[2]:6 1.00000001E8 +unsigned int bitmap_line::y#4 // y zp[2]:6 5.002500075E7 +unsigned int bitmap_line::y#7 // y zp[2]:6 1.00000001E8 +unsigned int bitmap_line::y1 +unsigned int bitmap_line::y1#0 // y1 zp[2]:6 16400.2 +unsigned int bitmap_line::y2 +unsigned int bitmap_line::y2#0 // y2 zp[2]:17 3131562.625 +void bitmap_plot(unsigned int x , char y) +unsigned int bitmap_plot::$1 // zp[2]:25 2.000000002E9 +char bitmap_plot::$2 // reg byte x 2.000000002E9 +char *bitmap_plot::plotter +unsigned int bitmap_plot::plotter#0 // plotter zp[2]:23 5.000000005E8 +char *bitmap_plot::plotter#1 // plotter zp[2]:23 1.5000000015E9 +unsigned int bitmap_plot::x +unsigned int bitmap_plot::x#0 // x zp[2]:4 100001.0 +unsigned int bitmap_plot::x#1 // x zp[2]:4 1.00000001E8 +unsigned int bitmap_plot::x#2 // x zp[2]:4 100001.0 +unsigned int bitmap_plot::x#3 // x zp[2]:4 1.00000001E8 +unsigned int bitmap_plot::x#4 // x zp[2]:4 5.500500015E8 +char bitmap_plot::y +char bitmap_plot::y#0 // reg byte x 200002.0 +char bitmap_plot::y#1 // reg byte x 2.00000002E8 +char bitmap_plot::y#2 // reg byte x 200002.0 +char bitmap_plot::y#3 // reg byte x 2.00000002E8 +char bitmap_plot::y#4 // reg byte x 2.200200006E9 +__constant const char bitmap_plot_bit[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_yhi[$100] = { fill( $100, 0) } +__constant const char bitmap_plot_ylo[$100] = { fill( $100, 0) } +char *bitmap_screen void init_screen() -byte* init_screen::c -byte* init_screen::c#1 c zp[2]:2 202.0 -byte* init_screen::c#2 c zp[2]:2 134.66666666666666 +char *init_screen::c +char *init_screen::c#1 // c zp[2]:2 202.0 +char *init_screen::c#2 // c zp[2]:2 134.66666666666666 void lines() -byte lines::l -byte lines::l#1 l zp[1]:14 20002.0 -byte lines::l#2 l zp[1]:14 10001.000000000002 -constant byte* lines_x[LINES+1] = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } -constant byte* lines_y[LINES+1] = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } +char lines::l +char lines::l#1 // l zp[1]:14 20002.0 +char lines::l#2 // l zp[1]:14 10001.000000000002 +__constant char lines_x[LINES+1] = { $3c, $50, $6e, $50, $3c, $28, $a, $28, $3c } +__constant char lines_y[LINES+1] = { $a, $28, $3c, $50, $6e, $50, $3c, $28, $a } void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 125.125 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:4 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:2 183.66666666666669 -word memset::num -word memset::num#2 num zp[2]:2 101.0 -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 -word sgn_u16(word sgn_u16::w) -byte~ sgn_u16::$0 reg byte a 2000002.0 -byte~ sgn_u16::$1 reg byte a 2000002.0 -word sgn_u16::return -word sgn_u16::return#0 return zp[2]:12 200002.0 -word sgn_u16::return#1 return zp[2]:12 200002.0 -word sgn_u16::return#4 return zp[2]:12 50000.5 -word sgn_u16::w -word sgn_u16::w#0 w zp[2]:23 200002.0 -word sgn_u16::w#1 w zp[2]:23 200002.0 -word sgn_u16::w#2 w zp[2]:23 1200003.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 125.125 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:4 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:2 183.66666666666669 +unsigned int memset::num +unsigned int memset::num#2 // num zp[2]:2 101.0 +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 +unsigned int sgn_u16(unsigned int w) +char sgn_u16::$0 // reg byte a 2000002.0 +char sgn_u16::$1 // reg byte a 2000002.0 +unsigned int sgn_u16::return +unsigned int sgn_u16::return#0 // return zp[2]:12 200002.0 +unsigned int sgn_u16::return#1 // return zp[2]:12 200002.0 +unsigned int sgn_u16::return#4 // return zp[2]:12 50000.5 +unsigned int sgn_u16::w +unsigned int sgn_u16::w#0 // w zp[2]:23 200002.0 +unsigned int sgn_u16::w#1 // w zp[2]:23 200002.0 +unsigned int sgn_u16::w#2 // w zp[2]:23 1200003.0 reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] diff --git a/src/test/ref/examples/c64/crunching/test-byteboozer.asm b/src/test/ref/examples/c64/crunching/test-byteboozer.asm index c637b977d..796f95cf1 100644 --- a/src/test/ref/examples/c64/crunching/test-byteboozer.asm +++ b/src/test/ref/examples/c64/crunching/test-byteboozer.asm @@ -59,7 +59,7 @@ main: { } // Decrunch crunched data using ByteBoozer // - crunched: Pointer to the start of the crunched data -// byteboozer_decrunch(byte* zp(2) crunched) +// void byteboozer_decrunch(__zp(2) char * volatile crunched) byteboozer_decrunch: { .label crunched = 2 // asm diff --git a/src/test/ref/examples/c64/crunching/test-byteboozer.cfg b/src/test/ref/examples/c64/crunching/test-byteboozer.cfg index cce068dcd..cf34367d8 100644 --- a/src/test/ref/examples/c64/crunching/test-byteboozer.cfg +++ b/src/test/ref/examples/c64/crunching/test-byteboozer.cfg @@ -2,10 +2,10 @@ void main() main: scope:[main] from [0] byteboozer_decrunch::crunched = CRUNCHED_SPRITE - [1] call byteboozer_decrunch + [1] call byteboozer_decrunch to:main::@2 main::@2: scope:[main] from main - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@2 [3] phi() @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) +void byteboozer_decrunch(char * volatile crunched) byteboozer_decrunch: scope:[byteboozer_decrunch] from main asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch } to:byteboozer_decrunch::@return diff --git a/src/test/ref/examples/c64/crunching/test-byteboozer.log b/src/test/ref/examples/c64/crunching/test-byteboozer.log index e2bd5a868..7d5cb9d8f 100644 --- a/src/test/ref/examples/c64/crunching/test-byteboozer.log +++ b/src/test/ref/examples/c64/crunching/test-byteboozer.log @@ -6,7 +6,7 @@ Inlined call main::$1 = call toSpritePtr(SPRITE) CONTROL FLOW GRAPH SSA -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) +void byteboozer_decrunch(char * volatile crunched) byteboozer_decrunch: scope:[byteboozer_decrunch] from main asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch } to:byteboozer_decrunch::@return @@ -17,17 +17,17 @@ byteboozer_decrunch::@return: scope:[byteboozer_decrunch] from byteboozer_decru void main() main: scope:[main] from __start byteboozer_decrunch::crunched = CRUNCHED_SPRITE - call byteboozer_decrunch + call byteboozer_decrunch to:main::@2 main::@2: scope:[main] from main - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 main::toSpritePtr1_sprite#0 = SPRITE to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@2 main::toSpritePtr1_sprite#1 = phi( main::@2/main::toSpritePtr1_sprite#0 ) - main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#1 + main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#1 main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 - main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 + main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 to:main::toSpritePtr1_@return main::toSpritePtr1_@return: scope:[main] from main::toSpritePtr1 main::toSpritePtr1_return#2 = phi( main::toSpritePtr1/main::toSpritePtr1_return#0 ) @@ -47,7 +47,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,10 +56,10 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc +__constant char BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc #import "byteboozer_decrunch.asm" }} -constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { +__constant char CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { .pc = SPRITE .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) @@ -67,33 +67,33 @@ constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { .byte pic.getSinglecolorByte(x,y) } }} -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant const byte GREEN = 5 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SPRITE = (byte*)$2000 -constant byte* const SPRITES_COLOR = (byte*)$d027 -constant byte* const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char GREEN = 5 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SPRITE = (char *)$2000 +__constant char * const SPRITES_COLOR = (char *)$d027 +__constant char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) -byte* volatile byteboozer_decrunch::crunched loadstore +void byteboozer_decrunch(char * volatile crunched) +__loadstore char * volatile byteboozer_decrunch::crunched void main() -byte~ main::$1 -number~ main::toSpritePtr1_$0 -word~ main::toSpritePtr1_$1 -byte main::toSpritePtr1_return -byte main::toSpritePtr1_return#0 -byte main::toSpritePtr1_return#1 -byte main::toSpritePtr1_return#2 -byte main::toSpritePtr1_return#3 -byte* main::toSpritePtr1_sprite -byte* main::toSpritePtr1_sprite#0 -byte* main::toSpritePtr1_sprite#1 +char main::$1 +number main::toSpritePtr1_$0 +unsigned int main::toSpritePtr1_$1 +char main::toSpritePtr1_return +char main::toSpritePtr1_return#0 +char main::toSpritePtr1_return#1 +char main::toSpritePtr1_return#2 +char main::toSpritePtr1_return#3 +char *main::toSpritePtr1_sprite +char *main::toSpritePtr1_sprite#0 +char *main::toSpritePtr1_sprite#1 -Adding number conversion cast (unumber) 1 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 +Adding number conversion cast (unumber) 1 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 Adding number conversion cast (unumber) $40 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Adding number conversion cast (unumber) main::toSpritePtr1_$0 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / (unumber)$40 Adding number conversion cast (unumber) 0 in SPRITES_PTR[0] = main::$1 @@ -103,16 +103,16 @@ Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = ((unumber)) $15 Adding number conversion cast (unumber) $33 in SPRITES_YPOS[0] = $33 Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = ((unumber)) $33 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 Inlining cast SPRITES_XPOS[(unumber)0] = (unumber)$15 Inlining cast SPRITES_YPOS[(unumber)0] = (unumber)$33 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53287 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53287 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 1 Simplifying constant integer cast $40 Simplifying constant integer cast 0 @@ -122,22 +122,22 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $33 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $33 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $33 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 +Inferred type updated to unsigned int in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Alias main::toSpritePtr1_sprite#0 = main::toSpritePtr1_sprite#1 Alias main::toSpritePtr1_return#0 = main::toSpritePtr1_return#2 main::toSpritePtr1_return#1 main::toSpritePtr1_return#3 main::$1 Successful SSA optimization Pass2AliasElimination Constant main::toSpritePtr1_sprite#0 = SPRITE Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#0 +Constant main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#0 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SPRITES_PTR in [9] SPRITES_PTR[0] = main::toSpritePtr1_return#0 Simplifying expression containing zero SPRITES_COLOR in [10] SPRITES_COLOR[0] = GREEN @@ -153,11 +153,11 @@ Constant right-side identified [5] main::toSpritePtr1_$0 = main::toSpritePtr1_$1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toSpritePtr1_$0 = main::toSpritePtr1_$1/$40 Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 +Constant main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 Successful SSA optimization Pass2ConstantIdentification Constant inlined main::toSpritePtr1_sprite#0 = SPRITE -Constant inlined main::toSpritePtr1_$1 = (word)SPRITE -Constant inlined main::toSpritePtr1_$0 = (word)SPRITE/$40 +Constant inlined main::toSpritePtr1_$1 = (unsigned int)SPRITE +Constant inlined main::toSpritePtr1_$0 = (unsigned int)SPRITE/$40 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main::toSpritePtr1 Adding NOP phi() at start of main::toSpritePtr1_@return @@ -174,10 +174,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] byteboozer_decrunch::crunched = CRUNCHED_SPRITE - [1] call byteboozer_decrunch + [1] call byteboozer_decrunch to:main::@2 main::@2: scope:[main] from main - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@2 [3] phi() @@ -192,7 +192,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) +void byteboozer_decrunch(char * volatile crunched) byteboozer_decrunch: scope:[byteboozer_decrunch] from main asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch } to:byteboozer_decrunch::@return @@ -202,11 +202,11 @@ byteboozer_decrunch::@return: scope:[byteboozer_decrunch] from byteboozer_decru VARIABLE REGISTER WEIGHTS -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) -byte* volatile byteboozer_decrunch::crunched loadstore 2.0 +void byteboozer_decrunch(char * volatile crunched) +__loadstore char * volatile byteboozer_decrunch::crunched // 2.0 void main() -byte main::toSpritePtr1_return -byte* main::toSpritePtr1_sprite +char main::toSpritePtr1_return +char *main::toSpritePtr1_sprite Initial phi equivalence classes Added variable byteboozer_decrunch::crunched to live range equivalence class [ byteboozer_decrunch::crunched ] @@ -215,7 +215,7 @@ Complete equivalence classes Allocated zp[2]:2 [ byteboozer_decrunch::crunched ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] byteboozer_decrunch::crunched = CRUNCHED_SPRITE [ byteboozer_decrunch::crunched ] ( [ byteboozer_decrunch::crunched ] { } ) always clobbers reg byte a -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] *SPRITES_PTR = main::toSpritePtr1_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *SPRITES_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *SPRITES_XPOS = $15 [ ] ( [ ] { } ) always clobbers reg byte a @@ -281,13 +281,13 @@ main: { sta.z byteboozer_decrunch.crunched lda #>CRUNCHED_SPRITE sta.z byteboozer_decrunch.crunched+1 - // [1] call byteboozer_decrunch + // [1] call byteboozer_decrunch // Decrunch sprite file into memory jsr byteboozer_decrunch jmp __b2 // main::@2 __b2: - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -320,7 +320,7 @@ main: { // byteboozer_decrunch // Decrunch crunched data using ByteBoozer // - crunched: Pointer to the start of the crunched data -// byteboozer_decrunch(byte* zp(2) crunched) +// void byteboozer_decrunch(__zp(2) char * volatile crunched) byteboozer_decrunch: { .label crunched = 2 // asm { ldycrunched ldxcrunched+1 jsrb2.Decrunch } @@ -368,10 +368,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc +__constant char BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc #import "byteboozer_decrunch.asm" }} -constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { +__constant char CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { .pc = SPRITE .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) @@ -379,22 +379,22 @@ constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { .byte pic.getSinglecolorByte(x,y) } }} -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte GREEN = 5 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SPRITE = (byte*) 8192 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) -byte* volatile byteboozer_decrunch::crunched loadstore zp[2]:2 2.0 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char GREEN = 5 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SPRITE = (char *) 8192 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +void byteboozer_decrunch(char * volatile crunched) +__loadstore char * volatile byteboozer_decrunch::crunched // zp[2]:2 2.0 void main() -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)SPRITE/$40 -byte* main::toSpritePtr1_sprite +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite zp[2]:2 [ byteboozer_decrunch::crunched ] @@ -445,12 +445,12 @@ main: { sta.z byteboozer_decrunch.crunched lda #>CRUNCHED_SPRITE sta.z byteboozer_decrunch.crunched+1 - // [1] call byteboozer_decrunch + // [1] call byteboozer_decrunch // Decrunch sprite file into memory jsr byteboozer_decrunch // main::@2 // VICII->SPRITES_ENABLE = %00000001 - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -481,7 +481,7 @@ main: { // byteboozer_decrunch // Decrunch crunched data using ByteBoozer // - crunched: Pointer to the start of the crunched data -// byteboozer_decrunch(byte* zp(2) crunched) +// void byteboozer_decrunch(__zp(2) char * volatile crunched) byteboozer_decrunch: { .label crunched = 2 // asm diff --git a/src/test/ref/examples/c64/crunching/test-byteboozer.sym b/src/test/ref/examples/c64/crunching/test-byteboozer.sym index 79edbebe2..be432453f 100644 --- a/src/test/ref/examples/c64/crunching/test-byteboozer.sym +++ b/src/test/ref/examples/c64/crunching/test-byteboozer.sym @@ -1,7 +1,7 @@ -constant byte* BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc +__constant char BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc #import "byteboozer_decrunch.asm" }} -constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { +__constant char CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { .pc = SPRITE .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) @@ -9,21 +9,21 @@ constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify B2() { .byte pic.getSinglecolorByte(x,y) } }} -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte GREEN = 5 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SPRITE = (byte*) 8192 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -void byteboozer_decrunch(byte* volatile byteboozer_decrunch::crunched) -byte* volatile byteboozer_decrunch::crunched loadstore zp[2]:2 2.0 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char GREEN = 5 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SPRITE = (char *) 8192 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +void byteboozer_decrunch(char * volatile crunched) +__loadstore char * volatile byteboozer_decrunch::crunched // zp[2]:2 2.0 void main() -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)SPRITE/$40 -byte* main::toSpritePtr1_sprite +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite zp[2]:2 [ byteboozer_decrunch::crunched ] diff --git a/src/test/ref/examples/c64/crunching/test-exomizer.cfg b/src/test/ref/examples/c64/crunching/test-exomizer.cfg index 5a97cef23..3f42028d8 100644 --- a/src/test/ref/examples/c64/crunching/test-exomizer.cfg +++ b/src/test/ref/examples/c64/crunching/test-exomizer.cfg @@ -3,7 +3,7 @@ void main() main: scope:[main] from kickasm() {{ :EXO_DECRUNCH(CRUNCHED_SPRITE_END) }} - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main [2] phi() diff --git a/src/test/ref/examples/c64/crunching/test-exomizer.log b/src/test/ref/examples/c64/crunching/test-exomizer.log index cbcb46280..aceaa6d5e 100644 --- a/src/test/ref/examples/c64/crunching/test-exomizer.log +++ b/src/test/ref/examples/c64/crunching/test-exomizer.log @@ -8,14 +8,14 @@ void main() main: scope:[main] from __start kickasm() {{ :EXO_DECRUNCH(CRUNCHED_SPRITE_END) }} - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 main::toSpritePtr1_sprite#0 = SPRITE to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main main::toSpritePtr1_sprite#1 = phi( main/main::toSpritePtr1_sprite#0 ) - main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#1 + main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#1 main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 - main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 + main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 to:main::toSpritePtr1_@return main::toSpritePtr1_@return: scope:[main] from main::toSpritePtr1 main::toSpritePtr1_return#2 = phi( main::toSpritePtr1/main::toSpritePtr1_return#0 ) @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,7 +44,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomizer(false, true) { +__constant char CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomizer(false, true) { .pc = SPRITE .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) @@ -53,36 +53,36 @@ constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomize } CRUNCHED_SPRITE_END: }} -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant byte* EXOMIZER[] = kickasm {{ .const EXO_LITERAL_SEQUENCES_USED = true +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant char EXOMIZER[] = kickasm {{ .const EXO_LITERAL_SEQUENCES_USED = true .const EXO_ZP_BASE = $02 .const EXO_DECRUNCH_TABLE = $0200 #import "exomizer_decrunch.asm" }} -constant const byte GREEN = 5 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SPRITE = (byte*)$2000 -constant byte* const SPRITES_COLOR = (byte*)$d027 -constant byte* const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant const char GREEN = 5 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SPRITE = (char *)$2000 +__constant char * const SPRITES_COLOR = (char *)$d027 +__constant char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() void main() -byte~ main::$0 -number~ main::toSpritePtr1_$0 -word~ main::toSpritePtr1_$1 -byte main::toSpritePtr1_return -byte main::toSpritePtr1_return#0 -byte main::toSpritePtr1_return#1 -byte main::toSpritePtr1_return#2 -byte main::toSpritePtr1_return#3 -byte* main::toSpritePtr1_sprite -byte* main::toSpritePtr1_sprite#0 -byte* main::toSpritePtr1_sprite#1 +char main::$0 +number main::toSpritePtr1_$0 +unsigned int main::toSpritePtr1_$1 +char main::toSpritePtr1_return +char main::toSpritePtr1_return#0 +char main::toSpritePtr1_return#1 +char main::toSpritePtr1_return#2 +char main::toSpritePtr1_return#3 +char *main::toSpritePtr1_sprite +char *main::toSpritePtr1_sprite#0 +char *main::toSpritePtr1_sprite#1 -Adding number conversion cast (unumber) 1 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 +Adding number conversion cast (unumber) 1 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 Adding number conversion cast (unumber) $40 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Adding number conversion cast (unumber) main::toSpritePtr1_$0 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / (unumber)$40 Adding number conversion cast (unumber) 0 in SPRITES_PTR[0] = main::$0 @@ -92,16 +92,16 @@ Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = ((unumber)) $15 Adding number conversion cast (unumber) $33 in SPRITES_YPOS[0] = $33 Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = ((unumber)) $33 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 Inlining cast SPRITES_XPOS[(unumber)0] = (unumber)$15 Inlining cast SPRITES_YPOS[(unumber)0] = (unumber)$33 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53287 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53287 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 1 Simplifying constant integer cast $40 Simplifying constant integer cast 0 @@ -111,22 +111,22 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $33 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $33 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $33 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 +Inferred type updated to unsigned int in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Alias main::toSpritePtr1_sprite#0 = main::toSpritePtr1_sprite#1 Alias main::toSpritePtr1_return#0 = main::toSpritePtr1_return#2 main::toSpritePtr1_return#1 main::toSpritePtr1_return#3 main::$0 Successful SSA optimization Pass2AliasElimination Constant main::toSpritePtr1_sprite#0 = SPRITE Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#0 +Constant main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#0 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SPRITES_PTR in [6] SPRITES_PTR[0] = main::toSpritePtr1_return#0 Simplifying expression containing zero SPRITES_COLOR in [7] SPRITES_COLOR[0] = GREEN @@ -142,11 +142,11 @@ Constant right-side identified [2] main::toSpritePtr1_$0 = main::toSpritePtr1_$1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toSpritePtr1_$0 = main::toSpritePtr1_$1/$40 Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 +Constant main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 Successful SSA optimization Pass2ConstantIdentification Constant inlined main::toSpritePtr1_sprite#0 = SPRITE -Constant inlined main::toSpritePtr1_$1 = (word)SPRITE -Constant inlined main::toSpritePtr1_$0 = (word)SPRITE/$40 +Constant inlined main::toSpritePtr1_$1 = (unsigned int)SPRITE +Constant inlined main::toSpritePtr1_$0 = (unsigned int)SPRITE/$40 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main::toSpritePtr1 Adding NOP phi() at start of main::toSpritePtr1_@return @@ -163,7 +163,7 @@ void main() main: scope:[main] from kickasm() {{ :EXO_DECRUNCH(CRUNCHED_SPRITE_END) }} - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main [2] phi() @@ -181,13 +181,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::toSpritePtr1_return -byte* main::toSpritePtr1_sprite +char main::toSpritePtr1_return +char *main::toSpritePtr1_sprite Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *SPRITES_PTR = main::toSpritePtr1_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] *SPRITES_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *SPRITES_XPOS = $15 [ ] ( [ ] { } ) always clobbers reg byte a @@ -247,7 +247,7 @@ main: { // Decrunch sprite file into memory :EXO_DECRUNCH(CRUNCHED_SPRITE_END) - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -311,7 +311,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomizer(false, true) { +__constant char CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomizer(false, true) { .pc = SPRITE .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) @@ -320,25 +320,25 @@ constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomize } CRUNCHED_SPRITE_END: }} -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* EXOMIZER[] = kickasm {{ .const EXO_LITERAL_SEQUENCES_USED = true +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char EXOMIZER[] = kickasm {{ .const EXO_LITERAL_SEQUENCES_USED = true .const EXO_ZP_BASE = $02 .const EXO_DECRUNCH_TABLE = $0200 #import "exomizer_decrunch.asm" }} -constant const byte GREEN = 5 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SPRITE = (byte*) 8192 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant const char GREEN = 5 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SPRITE = (char *) 8192 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)SPRITE/$40 -byte* main::toSpritePtr1_sprite +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite @@ -387,7 +387,7 @@ main: { :EXO_DECRUNCH(CRUNCHED_SPRITE_END) // VICII->SPRITES_ENABLE = %00000001 - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE diff --git a/src/test/ref/examples/c64/crunching/test-exomizer.sym b/src/test/ref/examples/c64/crunching/test-exomizer.sym index 018b3fe54..27e3c07d4 100644 --- a/src/test/ref/examples/c64/crunching/test-exomizer.sym +++ b/src/test/ref/examples/c64/crunching/test-exomizer.sym @@ -1,4 +1,4 @@ -constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomizer(false, true) { +__constant char CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomizer(false, true) { .pc = SPRITE .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) @@ -7,23 +7,23 @@ constant byte* CRUNCHED_SPRITE[] = kickasm( uses SPRITE) {{ .modify MemExomize } CRUNCHED_SPRITE_END: }} -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* EXOMIZER[] = kickasm {{ .const EXO_LITERAL_SEQUENCES_USED = true +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char EXOMIZER[] = kickasm {{ .const EXO_LITERAL_SEQUENCES_USED = true .const EXO_ZP_BASE = $02 .const EXO_DECRUNCH_TABLE = $0200 #import "exomizer_decrunch.asm" }} -constant const byte GREEN = 5 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SPRITE = (byte*) 8192 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant const char GREEN = 5 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SPRITE = (char *) 8192 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = DEFAULT_SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)SPRITE/$40 -byte* main::toSpritePtr1_sprite +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite diff --git a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.asm b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.asm index d585c26b1..64b163b48 100644 --- a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.asm +++ b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.asm @@ -169,7 +169,7 @@ init_screen: { rts } // Print a signed char as hex at a specific screen position -// print_schar_at(signed byte zp($d) b, byte* zp($b) at) +// void print_schar_at(__zp($d) signed char b, __zp($b) char *at) print_schar_at: { .label b = $d .label at = $b @@ -200,7 +200,7 @@ print_schar_at: { sta.z b jmp __b2 } -// fmul8(signed byte zp($10) aa, signed byte zp($11) bb) +// __register(A) signed char fmul8(__zp($10) volatile signed char aa, __zp($11) volatile signed char bb) fmul8: { .label aa = $10 .label bb = $11 @@ -232,7 +232,7 @@ print_cls: { rts } // Print a single char -// print_char_at(byte register(X) ch, byte* zp($b) at) +// void print_char_at(__register(X) char ch, __zp($b) char *at) print_char_at: { .label at = $b // *(at) = ch @@ -243,7 +243,7 @@ print_char_at: { rts } // Print a char as HEX at a specific position -// print_uchar_at(byte zp($d) b, byte* zp($b) at) +// void print_uchar_at(__zp($d) char b, __zp($b) char *at) print_uchar_at: { .label b = $d .label at = $b @@ -273,6 +273,7 @@ print_uchar_at: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 diff --git a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.cfg b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.cfg index e86c0fb3b..b73d7a03d 100644 --- a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.cfg +++ b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.cfg @@ -2,14 +2,14 @@ void main() main: scope:[main] from [0] phi() - [1] call init_screen + [1] call init_screen to:main::@1 main::@1: scope:[main] from main main::@5 - [2] main::at#4 = phi( main/(byte*) 1024+4, main::@5/main::at#1 ) + [2] main::at#4 = phi( main/(char *) 1024+4, main::@5/main::at#1 ) [2] main::k#2 = phi( main/0, main::@5/main::k#1 ) [3] print_schar_at::b#1 = vals[main::k#2] [4] print_schar_at::at#0 = main::at#4 - [5] call print_schar_at + [5] call print_schar_at to:main::@5 main::@5: scope:[main] from main::@1 [6] main::at#1 = main::at#4 + 4 @@ -18,11 +18,11 @@ main::@5: scope:[main] from main::@1 to:main::@2 main::@2: scope:[main] from main::@4 main::@5 [9] main::i#2 = phi( main::@5/0, main::@4/main::i#1 ) - [9] main::at_line#2 = phi( main::@5/(byte*) 1024, main::@4/main::at#2 ) + [9] main::at_line#2 = phi( main::@5/(char *) 1024, main::@4/main::at#2 ) [10] main::at#2 = main::at_line#2 + $28 [11] print_schar_at::b#2 = vals[main::i#2] [12] print_schar_at::at#1 = main::at#2 - [13] call print_schar_at + [13] call print_schar_at to:main::@6 main::@6: scope:[main] from main::@2 [14] main::at#12 = main::at#2 @@ -33,14 +33,14 @@ main::@3: scope:[main] from main::@6 main::@8 [16] main::at#3 = main::at#6 + 4 [17] fmul8::aa = vals[main::i#2] [18] fmul8::bb = vals[main::j#2] - [19] call fmul8 + [19] call fmul8 [20] fmul8::return#0 = fmul8::return#2 to:main::@7 main::@7: scope:[main] from main::@3 [21] main::r#0 = fmul8::return#0 [22] print_schar_at::b#3 = main::r#0 [23] print_schar_at::at#2 = main::at#3 - [24] call print_schar_at + [24] call print_schar_at to:main::@8 main::@8: scope:[main] from main::@7 [25] main::j#1 = ++ main::j#2 @@ -57,17 +57,17 @@ main::@return: scope:[main] from main::@4 void init_screen() init_screen: scope:[init_screen] from main [30] phi() - [31] call print_cls + [31] call print_cls to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [32] init_screen::l#2 = phi( init_screen::@1/init_screen::l#1, init_screen/0 ) - [33] ((byte*) 55296)[init_screen::l#2] = init_screen::WHITE + [33] ((char *) 55296)[init_screen::l#2] = init_screen::WHITE [34] init_screen::l#1 = ++ init_screen::l#2 [35] if(init_screen::l#1!=$28) goto init_screen::@1 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2 [36] init_screen::m#2 = phi( init_screen::@1/0, init_screen::@2/init_screen::m#1 ) - [36] init_screen::COLS#3 = phi( init_screen::@1/(byte*) 55296, init_screen::@2/init_screen::COLS#1 ) + [36] init_screen::COLS#3 = phi( init_screen::@1/(char *) 55296, init_screen::@2/init_screen::COLS#1 ) [37] *init_screen::COLS#3 = init_screen::WHITE [38] init_screen::COLS#3[1] = init_screen::WHITE [39] init_screen::COLS#3[2] = init_screen::WHITE @@ -80,7 +80,7 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 [44] return to:@return -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) +void print_schar_at(signed char b , char *at) print_schar_at: scope:[print_schar_at] from main::@1 main::@2 main::@7 [45] print_schar_at::at#3 = phi( main::@1/print_schar_at::at#0, main::@2/print_schar_at::at#1, main::@7/print_schar_at::at#2 ) [45] print_schar_at::b#4 = phi( main::@1/print_schar_at::b#1, main::@2/print_schar_at::b#2, main::@7/print_schar_at::b#3 ) @@ -88,26 +88,26 @@ print_schar_at: scope:[print_schar_at] from main::@1 main::@2 main::@7 to:print_schar_at::@3 print_schar_at::@3: scope:[print_schar_at] from print_schar_at [47] print_char_at::at#1 = print_schar_at::at#3 - [48] call print_char_at + [48] call print_char_at to:print_schar_at::@2 print_schar_at::@2: scope:[print_schar_at] from print_schar_at::@3 print_schar_at::@4 [49] print_schar_at::b#6 = phi( print_schar_at::@4/print_schar_at::b#0, print_schar_at::@3/print_schar_at::b#4 ) [50] print_uchar_at::at#0 = print_schar_at::at#3 + 1 - [51] print_uchar_at::b#0 = (byte)print_schar_at::b#6 - [52] call print_uchar_at + [51] print_uchar_at::b#0 = (char)print_schar_at::b#6 + [52] call print_uchar_at to:print_schar_at::@return print_schar_at::@return: scope:[print_schar_at] from print_schar_at::@2 [53] return to:@return print_schar_at::@1: scope:[print_schar_at] from print_schar_at [54] print_char_at::at#0 = print_schar_at::at#3 - [55] call print_char_at + [55] call print_char_at to:print_schar_at::@4 print_schar_at::@4: scope:[print_schar_at] from print_schar_at::@1 [56] print_schar_at::b#0 = - print_schar_at::b#4 to:print_schar_at::@2 -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) +signed char fmul8(volatile signed char aa , volatile signed char bb) fmul8: scope:[fmul8] from main::@3 [57] fmul8::cc = 0 asm { ldaaa staA1+1 eor#$ff staA2+1 ldxbb sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacc } @@ -121,13 +121,13 @@ fmul8::@return: scope:[fmul8] from fmul8 void print_cls() print_cls: scope:[print_cls] from init_screen [62] phi() - [63] call memset + [63] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [64] return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_schar_at::@1 print_schar_at::@3 print_uchar_at print_uchar_at::@1 [65] print_char_at::at#4 = phi( print_schar_at::@1/print_char_at::at#0, print_schar_at::@3/print_char_at::at#1, print_uchar_at/print_char_at::at#2, print_uchar_at::@1/print_char_at::at#3 ) [65] print_char_at::ch#4 = phi( print_schar_at::@1/'-', print_schar_at::@3/' ', print_uchar_at/print_char_at::ch#2, print_uchar_at::@1/print_char_at::ch#3 ) @@ -137,29 +137,29 @@ print_char_at::@return: scope:[print_char_at] from print_char_at [67] return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_schar_at::@2 [68] print_uchar_at::$0 = print_uchar_at::b#0 >> 4 [69] print_char_at::ch#2 = print_hextab[print_uchar_at::$0] [70] print_char_at::at#2 = print_uchar_at::at#0 - [71] call print_char_at + [71] call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at [72] print_uchar_at::$2 = print_uchar_at::b#0 & $f [73] print_char_at::at#3 = print_uchar_at::at#0 + 1 [74] print_char_at::ch#3 = print_hextab[print_uchar_at::$2] - [75] call print_char_at + [75] call print_char_at to:print_uchar_at::@return print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1 [76] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [77] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [78] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [78] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [79] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 diff --git a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.log b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.log index 7f5d0d61c..01bacca12 100644 --- a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.log +++ b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.log @@ -3,14 +3,14 @@ Resolved forward reference mulf_sqr2 to mulf_sqr2 Setting inferred volatile on symbol affected by address-of: fmul8::aa in asm { ldaaa staA1+1 eor#$ff staA2+1 ldxbb sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacc } Setting inferred volatile on symbol affected by address-of: fmul8::bb in asm { ldaaa staA1+1 eor#$ff staA2+1 ldxbb sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacc } Setting inferred volatile on symbol affected by address-of: fmul8::cc in asm { ldaaa staA1+1 eor#$ff staA2+1 ldxbb sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacc } -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement main::$5 CONTROL FLOW GRAPH SSA -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) +void print_schar_at(signed char b , char *at) print_schar_at: scope:[print_schar_at] from main::@1 main::@3 main::@9 print_schar_at::at#6 = phi( main::@1/print_schar_at::at#0, main::@3/print_schar_at::at#1, main::@9/print_schar_at::at#2 ) print_schar_at::b#4 = phi( main::@1/print_schar_at::b#1, main::@3/print_schar_at::b#2, main::@9/print_schar_at::b#3 ) @@ -22,7 +22,7 @@ print_schar_at::@1: scope:[print_schar_at] from print_schar_at print_schar_at::at#3 = phi( print_schar_at/print_schar_at::at#6 ) print_char_at::ch#0 = '-' print_char_at::at#0 = print_schar_at::at#3 - call print_char_at + call print_char_at to:print_schar_at::@4 print_schar_at::@4: scope:[print_schar_at] from print_schar_at::@1 print_schar_at::at#7 = phi( print_schar_at::@1/print_schar_at::at#3 ) @@ -35,7 +35,7 @@ print_schar_at::@3: scope:[print_schar_at] from print_schar_at print_schar_at::at#4 = phi( print_schar_at/print_schar_at::at#6 ) print_char_at::ch#1 = ' ' print_char_at::at#1 = print_schar_at::at#4 - call print_char_at + call print_char_at to:print_schar_at::@5 print_schar_at::@5: scope:[print_schar_at] from print_schar_at::@3 print_schar_at::b#8 = phi( print_schar_at::@3/print_schar_at::b#9 ) @@ -45,9 +45,9 @@ print_schar_at::@2: scope:[print_schar_at] from print_schar_at::@4 print_schar_ print_schar_at::b#6 = phi( print_schar_at::@4/print_schar_at::b#0, print_schar_at::@5/print_schar_at::b#8 ) print_schar_at::at#5 = phi( print_schar_at::@4/print_schar_at::at#7, print_schar_at::@5/print_schar_at::at#8 ) print_schar_at::$1 = print_schar_at::at#5 + 1 - print_uchar_at::b#0 = (byte)print_schar_at::b#6 + print_uchar_at::b#0 = (char)print_schar_at::b#6 print_uchar_at::at#0 = print_schar_at::$1 - call print_uchar_at + call print_uchar_at to:print_schar_at::@6 print_schar_at::@6: scope:[print_schar_at] from print_schar_at::@2 to:print_schar_at::@return @@ -55,14 +55,14 @@ print_schar_at::@return: scope:[print_schar_at] from print_schar_at::@6 return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_schar_at::@2 print_uchar_at::at#1 = phi( print_schar_at::@2/print_uchar_at::at#0 ) print_uchar_at::b#1 = phi( print_schar_at::@2/print_uchar_at::b#0 ) print_uchar_at::$0 = print_uchar_at::b#1 >> 4 print_char_at::ch#2 = print_hextab[print_uchar_at::$0] print_char_at::at#2 = print_uchar_at::at#1 - call print_char_at + call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at print_uchar_at::at#2 = phi( print_uchar_at/print_uchar_at::at#1 ) @@ -71,7 +71,7 @@ print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at print_uchar_at::$3 = print_uchar_at::at#2 + 1 print_char_at::ch#3 = print_hextab[print_uchar_at::$2] print_char_at::at#3 = print_uchar_at::$3 - call print_char_at + call print_char_at to:print_uchar_at::@2 print_uchar_at::@2: scope:[print_uchar_at] from print_uchar_at::@1 to:print_uchar_at::@return @@ -79,7 +79,7 @@ print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@2 return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_schar_at::@1 print_schar_at::@3 print_uchar_at print_uchar_at::@1 print_char_at::at#4 = phi( print_schar_at::@1/print_char_at::at#0, print_schar_at::@3/print_char_at::at#1, print_uchar_at/print_char_at::at#2, print_uchar_at::@1/print_char_at::at#3 ) print_char_at::ch#4 = phi( print_schar_at::@1/print_char_at::ch#0, print_schar_at::@3/print_char_at::ch#1, print_uchar_at/print_char_at::ch#2, print_uchar_at::@1/print_char_at::ch#3 ) @@ -92,10 +92,10 @@ print_char_at::@return: scope:[print_char_at] from print_char_at void print_cls() print_cls: scope:[print_cls] from init_screen print_screen#2 = phi( init_screen/print_screen#4 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -104,7 +104,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -121,9 +121,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -150,10 +150,10 @@ memset::@return: scope:[memset] from memset::@1 void main() main: scope:[main] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) - call init_screen + call init_screen to:main::@6 main::@6: scope:[main] from main - main::at_line#0 = (byte*)$400 + main::at_line#0 = (char *)$400 main::at#0 = main::at_line#0 + 4 main::k#0 = 0 to:main::@1 @@ -163,7 +163,7 @@ main::@1: scope:[main] from main::@6 main::@7 main::k#2 = phi( main::@6/main::k#0, main::@7/main::k#1 ) print_schar_at::b#1 = vals[main::k#2] print_schar_at::at#0 = main::at#4 - call print_schar_at + call print_schar_at to:main::@7 main::@7: scope:[main] from main::@1 main::at_line#5 = phi( main::@1/main::at_line#7 ) @@ -185,7 +185,7 @@ main::@3: scope:[main] from main::@2 main::@5 main::at#2 = main::at_line#1 print_schar_at::b#2 = vals[main::i#2] print_schar_at::at#1 = main::at#2 - call print_schar_at + call print_schar_at to:main::@8 main::@8: scope:[main] from main::@3 main::at_line#10 = phi( main::@3/main::at_line#1 ) @@ -201,7 +201,7 @@ main::@4: scope:[main] from main::@10 main::@8 main::at#3 = main::at#6 + 4 fmul8::aa = vals[main::i#3] fmul8::bb = vals[main::j#2] - call fmul8 + call fmul8 fmul8::return#0 = fmul8::return#2 to:main::@9 main::@9: scope:[main] from main::@4 @@ -213,7 +213,7 @@ main::@9: scope:[main] from main::@4 main::r#0 = fmul8::return#3 print_schar_at::b#3 = main::r#0 print_schar_at::at#2 = main::at#7 - call print_schar_at + call print_schar_at to:main::@10 main::@10: scope:[main] from main::@9 main::at_line#6 = phi( main::@9/main::at_line#8 ) @@ -238,10 +238,10 @@ main::@return: scope:[main] from main::@5 void init_screen() init_screen: scope:[init_screen] from main print_screen#4 = phi( main/print_screen#6 ) - call print_cls + call print_cls to:init_screen::@4 init_screen::@4: scope:[init_screen] from init_screen - init_screen::COLS#0 = (byte*)$d800 + init_screen::COLS#0 = (char *)$d800 init_screen::l#0 = 0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen::@1 init_screen::@4 @@ -272,7 +272,7 @@ init_screen::@return: scope:[init_screen] from init_screen::@3 return to:@return -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) +signed char fmul8(volatile signed char aa , volatile signed char bb) fmul8: scope:[fmul8] from main::@4 fmul8::cc = 0 asm { ldaaa staA1+1 eor#$ff staA2+1 ldxbb sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacc } @@ -288,11 +288,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#5 = phi( __start::@1/print_screen#7 ) @@ -304,198 +304,198 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) -volatile signed byte fmul8::aa loadstore -volatile signed byte fmul8::bb loadstore -volatile signed byte fmul8::cc loadstore -signed byte fmul8::return -signed byte fmul8::return#0 -signed byte fmul8::return#1 -signed byte fmul8::return#2 -signed byte fmul8::return#3 -signed byte fmul8::return#4 +signed char fmul8(volatile signed char aa , volatile signed char bb) +__loadstore volatile signed char fmul8::aa +__loadstore volatile signed char fmul8::bb +__loadstore volatile signed char fmul8::cc +signed char fmul8::return +signed char fmul8::return#0 +signed char fmul8::return#1 +signed char fmul8::return#2 +signed char fmul8::return#3 +signed char fmul8::return#4 void init_screen() -bool~ init_screen::$1 -bool~ init_screen::$2 -byte* init_screen::COLS -byte* init_screen::COLS#0 -byte* init_screen::COLS#1 -byte* init_screen::COLS#2 -byte* init_screen::COLS#3 -byte* init_screen::COLS#4 -constant byte init_screen::WHITE = 1 -byte init_screen::l -byte init_screen::l#0 -byte init_screen::l#1 -byte init_screen::l#2 -byte init_screen::m -byte init_screen::m#0 -byte init_screen::m#1 -byte init_screen::m#2 +bool init_screen::$1 +bool init_screen::$2 +char *init_screen::COLS +char *init_screen::COLS#0 +char *init_screen::COLS#1 +char *init_screen::COLS#2 +char *init_screen::COLS#3 +char *init_screen::COLS#4 +__constant char init_screen::WHITE = 1 +char init_screen::l +char init_screen::l#0 +char init_screen::l#1 +char init_screen::l#2 +char init_screen::m +char init_screen::m#0 +char init_screen::m#1 +char init_screen::m#2 void main() -bool~ main::$3 -bool~ main::$7 -bool~ main::$8 -byte* main::at -byte* main::at#0 -byte* main::at#1 -byte* main::at#2 -byte* main::at#3 -byte* main::at#4 -byte* main::at#5 -byte* main::at#6 -byte* main::at#7 -byte* main::at#8 -byte* main::at#9 -byte* main::at_line -byte* main::at_line#0 -byte* main::at_line#1 -byte* main::at_line#10 -byte* main::at_line#2 -byte* main::at_line#3 -byte* main::at_line#4 -byte* main::at_line#5 -byte* main::at_line#6 -byte* main::at_line#7 -byte* main::at_line#8 -byte* main::at_line#9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 -byte main::k#3 -signed byte main::r -signed byte main::r#0 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -constant byte* mulf_sqr1[$200] = kickasm {{ .for(var i=0;i<$200;i++) { +bool main::$3 +bool main::$7 +bool main::$8 +char *main::at +char *main::at#0 +char *main::at#1 +char *main::at#2 +char *main::at#3 +char *main::at#4 +char *main::at#5 +char *main::at#6 +char *main::at#7 +char *main::at#8 +char *main::at#9 +char *main::at_line +char *main::at_line#0 +char *main::at_line#1 +char *main::at_line#10 +char *main::at_line#2 +char *main::at_line#3 +char *main::at_line#4 +char *main::at_line#5 +char *main::at_line#6 +char *main::at_line#7 +char *main::at_line#8 +char *main::at_line#9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 +char main::k#3 +signed char main::r +signed char main::r#0 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +__constant char mulf_sqr1[$200] = kickasm {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((i*i)/256) } .if(i>159 && i<=351 ) { .byte round(((i-256)*(i-256))/256) } .if(i>351) { .byte round(((512-i)*(512-i))/256) } } }} -constant byte* mulf_sqr2[$200] = kickasm {{ .for(var i=0;i<$200;i++) { +__constant char mulf_sqr2[$200] = kickasm {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((-i-1)*(-i-1)/256) } .if(i>159 && i<=351 ) { .byte round(((255-i)*(255-i))/256) } .if(i>351) { .byte round(((i-511)*(i-511))/256) } } }} -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 -byte* print_char_at::at#1 -byte* print_char_at::at#2 -byte* print_char_at::at#3 -byte* print_char_at::at#4 -byte print_char_at::ch -byte print_char_at::ch#0 -byte print_char_at::ch#1 -byte print_char_at::ch#2 -byte print_char_at::ch#3 -byte print_char_at::ch#4 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 +char *print_char_at::at#1 +char *print_char_at::at#2 +char *print_char_at::at#3 +char *print_char_at::at#4 +char print_char_at::ch +char print_char_at::ch#0 +char print_char_at::ch#1 +char print_char_at::ch#2 +char print_char_at::ch#3 +char print_char_at::ch#4 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) -bool~ print_schar_at::$0 -byte*~ print_schar_at::$1 -signed byte~ print_schar_at::$5 -byte* print_schar_at::at -byte* print_schar_at::at#0 -byte* print_schar_at::at#1 -byte* print_schar_at::at#2 -byte* print_schar_at::at#3 -byte* print_schar_at::at#4 -byte* print_schar_at::at#5 -byte* print_schar_at::at#6 -byte* print_schar_at::at#7 -byte* print_schar_at::at#8 -signed byte print_schar_at::b -signed byte print_schar_at::b#0 -signed byte print_schar_at::b#1 -signed byte print_schar_at::b#2 -signed byte print_schar_at::b#3 -signed byte print_schar_at::b#4 -signed byte print_schar_at::b#5 -signed byte print_schar_at::b#6 -signed byte print_schar_at::b#7 -signed byte print_schar_at::b#8 -signed byte print_schar_at::b#9 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 -number~ print_uchar_at::$2 -byte*~ print_uchar_at::$3 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 -byte* print_uchar_at::at#1 -byte* print_uchar_at::at#2 -byte print_uchar_at::b -byte print_uchar_at::b#0 -byte print_uchar_at::b#1 -byte print_uchar_at::b#2 -constant signed byte* vals[] = { -$5f, -$40, -$20, -$10, 0, $10, $20, $40, $5f } +__constant const char print_hextab[] = "0123456789abcdef"z +void print_schar_at(signed char b , char *at) +bool print_schar_at::$0 +char *print_schar_at::$1 +signed char print_schar_at::$5 +char *print_schar_at::at +char *print_schar_at::at#0 +char *print_schar_at::at#1 +char *print_schar_at::at#2 +char *print_schar_at::at#3 +char *print_schar_at::at#4 +char *print_schar_at::at#5 +char *print_schar_at::at#6 +char *print_schar_at::at#7 +char *print_schar_at::at#8 +signed char print_schar_at::b +signed char print_schar_at::b#0 +signed char print_schar_at::b#1 +signed char print_schar_at::b#2 +signed char print_schar_at::b#3 +signed char print_schar_at::b#4 +signed char print_schar_at::b#5 +signed char print_schar_at::b#6 +signed char print_schar_at::b#7 +signed char print_schar_at::b#8 +signed char print_schar_at::b#9 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 +number print_uchar_at::$2 +char *print_uchar_at::$3 +char *print_uchar_at::at +char *print_uchar_at::at#0 +char *print_uchar_at::at#1 +char *print_uchar_at::at#2 +char print_uchar_at::b +char print_uchar_at::b#0 +char print_uchar_at::b#1 +char print_uchar_at::b#2 +__constant signed char vals[] = { -$5f, -$40, -$20, -$10, 0, $10, $20, $40, $5f } Adding number conversion cast (snumber) 0 in print_schar_at::$0 = print_schar_at::b#4 < 0 Adding number conversion cast (unumber) 1 in print_schar_at::$1 = print_schar_at::at#5 + 1 @@ -516,7 +516,7 @@ Adding number conversion cast (unumber) 3 in init_screen::COLS#3[3] = init_scree Adding number conversion cast (unumber) $28 in init_screen::COLS#1 = init_screen::COLS#3 + $28 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -525,37 +525,37 @@ Simplifying constant integer cast $f Simplifying constant integer cast 1 Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Simplifying constant integer cast 4 Simplifying constant integer cast $28 Simplifying constant integer cast 4 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast $28 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar_at::$2 = print_uchar_at::b#2 & $f +Inferred type updated to char in print_uchar_at::$2 = print_uchar_at::b#2 & $f Inversing boolean not [45] memset::$1 = memset::num#1 <= 0 from [44] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)fmul8::return#1 = fmul8::cc fmul8::return#4 fmul8::return#2 @@ -623,20 +623,20 @@ Constant print_char_at::ch#0 = '-' Constant print_char_at::ch#1 = ' ' Constant memset::c#0 = ' ' Constant memset::num#0 = $3e8 -Constant main::at_line#0 = (byte*) 1024 +Constant main::at_line#0 = (char *) 1024 Constant main::k#0 = 0 Constant main::i#0 = 0 Constant main::j#0 = 0 -Constant init_screen::COLS#0 = (byte*) 55296 +Constant init_screen::COLS#0 = (char *) 55296 Constant init_screen::l#0 = 0 Constant init_screen::m#0 = 0 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [37] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -673,11 +673,11 @@ Simplifying constant integer cast 9 Simplifying constant integer cast $28 Simplifying constant integer cast $19 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)fmul8::return#1 = fmul8::cc fmul8::return#2 Constant right-side identified [26] memset::end#0 = memset::$4 + memset::num#0 @@ -698,27 +698,27 @@ Inlining constant with var siblings main::at#0 Inlining constant with var siblings init_screen::COLS#0 Inlining constant with var siblings init_screen::l#0 Inlining constant with var siblings init_screen::m#0 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined print_char_at::ch#0 = '-' Constant inlined init_screen::m#0 = 0 Constant inlined print_char_at::ch#1 = ' ' Constant inlined init_screen::l#0 = 0 Constant inlined main::i#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined main::k#0 = 0 Constant inlined main::j#0 = 0 -Constant inlined main::at_line#0 = (byte*) 1024 -Constant inlined main::at#0 = (byte*) 1024+4 -Constant inlined init_screen::COLS#0 = (byte*) 55296 +Constant inlined main::at_line#0 = (char *) 1024 +Constant inlined main::at#0 = (char *) 1024+4 +Constant inlined init_screen::COLS#0 = (char *) 55296 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)fmul8::return#1 = fmul8::cc fmul8::return#2 Alias candidate removed (volatile)fmul8::return#1 = fmul8::cc fmul8::return#2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)fmul8::return#1 = fmul8::cc fmul8::return#2 Alias candidate removed (volatile)fmul8::return#1 = fmul8::cc fmul8::return#2 @@ -809,14 +809,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init_screen + [1] call init_screen to:main::@1 main::@1: scope:[main] from main main::@5 - [2] main::at#4 = phi( main/(byte*) 1024+4, main::@5/main::at#1 ) + [2] main::at#4 = phi( main/(char *) 1024+4, main::@5/main::at#1 ) [2] main::k#2 = phi( main/0, main::@5/main::k#1 ) [3] print_schar_at::b#1 = vals[main::k#2] [4] print_schar_at::at#0 = main::at#4 - [5] call print_schar_at + [5] call print_schar_at to:main::@5 main::@5: scope:[main] from main::@1 [6] main::at#1 = main::at#4 + 4 @@ -825,11 +825,11 @@ main::@5: scope:[main] from main::@1 to:main::@2 main::@2: scope:[main] from main::@4 main::@5 [9] main::i#2 = phi( main::@5/0, main::@4/main::i#1 ) - [9] main::at_line#2 = phi( main::@5/(byte*) 1024, main::@4/main::at#2 ) + [9] main::at_line#2 = phi( main::@5/(char *) 1024, main::@4/main::at#2 ) [10] main::at#2 = main::at_line#2 + $28 [11] print_schar_at::b#2 = vals[main::i#2] [12] print_schar_at::at#1 = main::at#2 - [13] call print_schar_at + [13] call print_schar_at to:main::@6 main::@6: scope:[main] from main::@2 [14] main::at#12 = main::at#2 @@ -840,14 +840,14 @@ main::@3: scope:[main] from main::@6 main::@8 [16] main::at#3 = main::at#6 + 4 [17] fmul8::aa = vals[main::i#2] [18] fmul8::bb = vals[main::j#2] - [19] call fmul8 + [19] call fmul8 [20] fmul8::return#0 = fmul8::return#2 to:main::@7 main::@7: scope:[main] from main::@3 [21] main::r#0 = fmul8::return#0 [22] print_schar_at::b#3 = main::r#0 [23] print_schar_at::at#2 = main::at#3 - [24] call print_schar_at + [24] call print_schar_at to:main::@8 main::@8: scope:[main] from main::@7 [25] main::j#1 = ++ main::j#2 @@ -864,17 +864,17 @@ main::@return: scope:[main] from main::@4 void init_screen() init_screen: scope:[init_screen] from main [30] phi() - [31] call print_cls + [31] call print_cls to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 [32] init_screen::l#2 = phi( init_screen::@1/init_screen::l#1, init_screen/0 ) - [33] ((byte*) 55296)[init_screen::l#2] = init_screen::WHITE + [33] ((char *) 55296)[init_screen::l#2] = init_screen::WHITE [34] init_screen::l#1 = ++ init_screen::l#2 [35] if(init_screen::l#1!=$28) goto init_screen::@1 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2 [36] init_screen::m#2 = phi( init_screen::@1/0, init_screen::@2/init_screen::m#1 ) - [36] init_screen::COLS#3 = phi( init_screen::@1/(byte*) 55296, init_screen::@2/init_screen::COLS#1 ) + [36] init_screen::COLS#3 = phi( init_screen::@1/(char *) 55296, init_screen::@2/init_screen::COLS#1 ) [37] *init_screen::COLS#3 = init_screen::WHITE [38] init_screen::COLS#3[1] = init_screen::WHITE [39] init_screen::COLS#3[2] = init_screen::WHITE @@ -887,7 +887,7 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 [44] return to:@return -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) +void print_schar_at(signed char b , char *at) print_schar_at: scope:[print_schar_at] from main::@1 main::@2 main::@7 [45] print_schar_at::at#3 = phi( main::@1/print_schar_at::at#0, main::@2/print_schar_at::at#1, main::@7/print_schar_at::at#2 ) [45] print_schar_at::b#4 = phi( main::@1/print_schar_at::b#1, main::@2/print_schar_at::b#2, main::@7/print_schar_at::b#3 ) @@ -895,26 +895,26 @@ print_schar_at: scope:[print_schar_at] from main::@1 main::@2 main::@7 to:print_schar_at::@3 print_schar_at::@3: scope:[print_schar_at] from print_schar_at [47] print_char_at::at#1 = print_schar_at::at#3 - [48] call print_char_at + [48] call print_char_at to:print_schar_at::@2 print_schar_at::@2: scope:[print_schar_at] from print_schar_at::@3 print_schar_at::@4 [49] print_schar_at::b#6 = phi( print_schar_at::@4/print_schar_at::b#0, print_schar_at::@3/print_schar_at::b#4 ) [50] print_uchar_at::at#0 = print_schar_at::at#3 + 1 - [51] print_uchar_at::b#0 = (byte)print_schar_at::b#6 - [52] call print_uchar_at + [51] print_uchar_at::b#0 = (char)print_schar_at::b#6 + [52] call print_uchar_at to:print_schar_at::@return print_schar_at::@return: scope:[print_schar_at] from print_schar_at::@2 [53] return to:@return print_schar_at::@1: scope:[print_schar_at] from print_schar_at [54] print_char_at::at#0 = print_schar_at::at#3 - [55] call print_char_at + [55] call print_char_at to:print_schar_at::@4 print_schar_at::@4: scope:[print_schar_at] from print_schar_at::@1 [56] print_schar_at::b#0 = - print_schar_at::b#4 to:print_schar_at::@2 -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) +signed char fmul8(volatile signed char aa , volatile signed char bb) fmul8: scope:[fmul8] from main::@3 [57] fmul8::cc = 0 asm { ldaaa staA1+1 eor#$ff staA2+1 ldxbb sec A1: ldamulf_sqr1,x A2: sbcmulf_sqr2,x stacc } @@ -928,13 +928,13 @@ fmul8::@return: scope:[fmul8] from fmul8 void print_cls() print_cls: scope:[print_cls] from init_screen [62] phi() - [63] call memset + [63] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [64] return to:@return -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) +void print_char_at(char ch , char *at) print_char_at: scope:[print_char_at] from print_schar_at::@1 print_schar_at::@3 print_uchar_at print_uchar_at::@1 [65] print_char_at::at#4 = phi( print_schar_at::@1/print_char_at::at#0, print_schar_at::@3/print_char_at::at#1, print_uchar_at/print_char_at::at#2, print_uchar_at::@1/print_char_at::at#3 ) [65] print_char_at::ch#4 = phi( print_schar_at::@1/'-', print_schar_at::@3/' ', print_uchar_at/print_char_at::ch#2, print_uchar_at::@1/print_char_at::ch#3 ) @@ -944,29 +944,29 @@ print_char_at::@return: scope:[print_char_at] from print_char_at [67] return to:@return -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) +void print_uchar_at(char b , char *at) print_uchar_at: scope:[print_uchar_at] from print_schar_at::@2 [68] print_uchar_at::$0 = print_uchar_at::b#0 >> 4 [69] print_char_at::ch#2 = print_hextab[print_uchar_at::$0] [70] print_char_at::at#2 = print_uchar_at::at#0 - [71] call print_char_at + [71] call print_char_at to:print_uchar_at::@1 print_uchar_at::@1: scope:[print_uchar_at] from print_uchar_at [72] print_uchar_at::$2 = print_uchar_at::b#0 & $f [73] print_char_at::at#3 = print_uchar_at::at#0 + 1 [74] print_char_at::ch#3 = print_hextab[print_uchar_at::$2] - [75] call print_char_at + [75] call print_char_at to:print_uchar_at::@return print_uchar_at::@return: scope:[print_uchar_at] from print_uchar_at::@1 [76] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [77] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [78] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [78] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [79] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -979,87 +979,87 @@ memset::@2: scope:[memset] from memset::@1 VARIABLE REGISTER WEIGHTS -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) -volatile signed byte fmul8::aa loadstore 33.666666666666664 -volatile signed byte fmul8::bb loadstore 50.5 -volatile signed byte fmul8::cc loadstore 1001.0 -signed byte fmul8::return -signed byte fmul8::return#0 202.0 -signed byte fmul8::return#1 2002.0 -signed byte fmul8::return#2 367.33333333333337 +signed char fmul8(volatile signed char aa , volatile signed char bb) +__loadstore volatile signed char fmul8::aa // 33.666666666666664 +__loadstore volatile signed char fmul8::bb // 50.5 +__loadstore volatile signed char fmul8::cc // 1001.0 +signed char fmul8::return +signed char fmul8::return#0 // 202.0 +signed char fmul8::return#1 // 2002.0 +signed char fmul8::return#2 // 367.33333333333337 void init_screen() -byte* init_screen::COLS -byte* init_screen::COLS#1 67.33333333333333 -byte* init_screen::COLS#3 121.2 -byte init_screen::l -byte init_screen::l#1 151.5 -byte init_screen::l#2 151.5 -byte init_screen::m -byte init_screen::m#1 151.5 -byte init_screen::m#2 33.666666666666664 +char *init_screen::COLS +char *init_screen::COLS#1 // 67.33333333333333 +char *init_screen::COLS#3 // 121.2 +char init_screen::l +char init_screen::l#1 // 151.5 +char init_screen::l#2 // 151.5 +char init_screen::m +char init_screen::m#1 // 151.5 +char init_screen::m#2 // 33.666666666666664 void main() -byte* main::at -byte* main::at#1 7.333333333333333 -byte* main::at#12 22.0 -byte* main::at#2 2.3157894736842106 -byte* main::at#3 27.545454545454547 -byte* main::at#4 8.25 -byte* main::at#6 213.0 -byte* main::at_line -byte* main::at_line#2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.444444444444445 -byte main::j -byte main::j#1 151.5 -byte main::j#2 30.299999999999997 -byte main::k -byte main::k#1 16.5 -byte main::k#2 6.6000000000000005 -signed byte main::r -signed byte main::r#0 202.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 20002.0 -byte* memset::dst#2 13334.666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 2002.0 -byte* print_char_at::at#1 2002.0 -byte* print_char_at::at#2 20002.0 -byte* print_char_at::at#3 10001.0 -byte* print_char_at::at#4 122005.0 -byte print_char_at::ch -byte print_char_at::ch#2 10001.0 -byte print_char_at::ch#3 20002.0 -byte print_char_at::ch#4 120003.0 +char *main::at +char *main::at#1 // 7.333333333333333 +char *main::at#12 // 22.0 +char *main::at#2 // 2.3157894736842106 +char *main::at#3 // 27.545454545454547 +char *main::at#4 // 8.25 +char *main::at#6 // 213.0 +char *main::at_line +char *main::at_line#2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.444444444444445 +char main::j +char main::j#1 // 151.5 +char main::j#2 // 30.299999999999997 +char main::k +char main::k#1 // 16.5 +char main::k#2 // 6.6000000000000005 +signed char main::r +signed char main::r#0 // 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 20002.0 +char *memset::dst#2 // 13334.666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // 2002.0 +char *print_char_at::at#1 // 2002.0 +char *print_char_at::at#2 // 20002.0 +char *print_char_at::at#3 // 10001.0 +char *print_char_at::at#4 // 122005.0 +char print_char_at::ch +char print_char_at::ch#2 // 10001.0 +char print_char_at::ch#3 // 20002.0 +char print_char_at::ch#4 // 120003.0 void print_cls() -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) -byte* print_schar_at::at -byte* print_schar_at::at#0 22.0 -byte* print_schar_at::at#1 22.0 -byte* print_schar_at::at#2 202.0 -byte* print_schar_at::at#3 390.75 -signed byte print_schar_at::b -signed byte print_schar_at::b#0 2002.0 -signed byte print_schar_at::b#1 11.0 -signed byte print_schar_at::b#2 11.0 -signed byte print_schar_at::b#3 101.0 -signed byte print_schar_at::b#4 521.0 -signed byte print_schar_at::b#6 1001.0 -byte* print_screen -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 20002.0 -byte~ print_uchar_at::$2 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 3000.4285714285716 -byte print_uchar_at::b -byte print_uchar_at::b#0 4200.6 +void print_schar_at(signed char b , char *at) +char *print_schar_at::at +char *print_schar_at::at#0 // 22.0 +char *print_schar_at::at#1 // 22.0 +char *print_schar_at::at#2 // 202.0 +char *print_schar_at::at#3 // 390.75 +signed char print_schar_at::b +signed char print_schar_at::b#0 // 2002.0 +signed char print_schar_at::b#1 // 11.0 +signed char print_schar_at::b#2 // 11.0 +signed char print_schar_at::b#3 // 101.0 +signed char print_schar_at::b#4 // 521.0 +signed char print_schar_at::b#6 // 1001.0 +char *print_screen +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // 20002.0 +char print_uchar_at::$2 // 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // 3000.4285714285716 +char print_uchar_at::b +char print_uchar_at::b#0 // 4200.6 Initial phi equivalence classes [ main::k#2 main::k#1 ] @@ -1152,7 +1152,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:10 [ main:: Statement [17] fmul8::aa = vals[main::i#2] [ main::i#2 main::at#2 main::j#2 main::at#3 fmul8::aa ] ( [ main::i#2 main::at#2 main::j#2 main::at#3 fmul8::aa ] { { fmul8::return#0 = fmul8::return#2 } } ) always clobbers reg byte a Statement [18] fmul8::bb = vals[main::j#2] [ main::i#2 main::at#2 main::j#2 main::at#3 fmul8::aa fmul8::bb ] ( [ main::i#2 main::at#2 main::j#2 main::at#3 fmul8::aa fmul8::bb ] { { fmul8::return#0 = fmul8::return#2 } } ) always clobbers reg byte a Statement [23] print_schar_at::at#2 = main::at#3 [ main::i#2 main::at#2 main::j#2 main::at#3 print_schar_at::b#3 print_schar_at::at#2 ] ( [ main::i#2 main::at#2 main::j#2 main::at#3 print_schar_at::b#3 print_schar_at::at#2 ] { { print_schar_at::b#3 = print_schar_at::b#4 main::r#0 } { print_schar_at::at#2 = print_schar_at::at#3 main::at#3 } } ) always clobbers reg byte a -Statement [33] ((byte*) 55296)[init_screen::l#2] = init_screen::WHITE [ init_screen::l#2 ] ( init_screen:1 [ init_screen::l#2 ] { } ) always clobbers reg byte a +Statement [33] ((char *) 55296)[init_screen::l#2] = init_screen::WHITE [ init_screen::l#2 ] ( init_screen:1 [ init_screen::l#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ init_screen::l#2 init_screen::l#1 ] Statement [37] *init_screen::COLS#3 = init_screen::WHITE [ init_screen::COLS#3 init_screen::m#2 ] ( init_screen:1 [ init_screen::COLS#3 init_screen::m#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:14 [ init_screen::m#2 init_screen::m#1 ] @@ -1196,7 +1196,7 @@ Statement [18] fmul8::bb = vals[main::j#2] [ main::i#2 main::at#2 main::j#2 main Statement [23] print_schar_at::at#2 = main::at#3 [ main::i#2 main::at#2 main::j#2 main::at#3 print_schar_at::b#3 print_schar_at::at#2 ] ( [ main::i#2 main::at#2 main::j#2 main::at#3 print_schar_at::b#3 print_schar_at::at#2 ] { { print_schar_at::b#3 = print_schar_at::b#4 main::r#0 } { print_schar_at::at#2 = print_schar_at::at#3 main::at#3 } } ) always clobbers reg byte a Statement [26] if(main::j#1!=9) goto main::@3 [ main::i#2 main::at#2 main::at#3 main::j#1 ] ( [ main::i#2 main::at#2 main::at#3 main::j#1 ] { } ) always clobbers reg byte a Statement [28] if(main::i#1!=9) goto main::@2 [ main::at#2 main::i#1 ] ( [ main::at#2 main::i#1 ] { } ) always clobbers reg byte a -Statement [33] ((byte*) 55296)[init_screen::l#2] = init_screen::WHITE [ init_screen::l#2 ] ( init_screen:1 [ init_screen::l#2 ] { } ) always clobbers reg byte a +Statement [33] ((char *) 55296)[init_screen::l#2] = init_screen::WHITE [ init_screen::l#2 ] ( init_screen:1 [ init_screen::l#2 ] { } ) always clobbers reg byte a Statement [37] *init_screen::COLS#3 = init_screen::WHITE [ init_screen::COLS#3 init_screen::m#2 ] ( init_screen:1 [ init_screen::COLS#3 init_screen::m#2 ] { } ) always clobbers reg byte a reg byte y Statement [38] init_screen::COLS#3[1] = init_screen::WHITE [ init_screen::COLS#3 init_screen::m#2 ] ( init_screen:1 [ init_screen::COLS#3 init_screen::m#2 ] { } ) always clobbers reg byte a reg byte y Statement [39] init_screen::COLS#3[2] = init_screen::WHITE [ init_screen::COLS#3 init_screen::m#2 ] ( init_screen:1 [ init_screen::COLS#3 init_screen::m#2 ] { } ) always clobbers reg byte a reg byte y @@ -1320,13 +1320,13 @@ main: { .label j = $a .label i = 7 .label at_line = 5 - // [1] call init_screen + // [1] call init_screen // [30] phi from main to init_screen [phi:main->init_screen] init_screen_from_main: jsr init_screen // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [2] phi main::at#4 = (byte*) 1024+4 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [2] phi main::at#4 = (char *) 1024+4 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400+4 sta.z at lda #>$400+4 @@ -1351,7 +1351,7 @@ main: { sta.z print_schar_at.at lda.z at+1 sta.z print_schar_at.at+1 - // [5] call print_schar_at + // [5] call print_schar_at // [45] phi from main::@1 to print_schar_at [phi:main::@1->print_schar_at] print_schar_at_from___b1: // [45] phi print_schar_at::at#3 = print_schar_at::at#0 [phi:main::@1->print_schar_at#0] -- register_copy @@ -1379,7 +1379,7 @@ main: { // [9] phi main::i#2 = 0 [phi:main::@5->main::@2#0] -- vbuz1=vbuc1 lda #0 sta.z i - // [9] phi main::at_line#2 = (byte*) 1024 [phi:main::@5->main::@2#1] -- pbuz1=pbuc1 + // [9] phi main::at_line#2 = (char *) 1024 [phi:main::@5->main::@2#1] -- pbuz1=pbuc1 lda #<$400 sta.z at_line lda #>$400 @@ -1409,7 +1409,7 @@ main: { sta.z print_schar_at.at lda.z at_1+1 sta.z print_schar_at.at+1 - // [13] call print_schar_at + // [13] call print_schar_at // [45] phi from main::@2 to print_schar_at [phi:main::@2->print_schar_at] print_schar_at_from___b2: // [45] phi print_schar_at::at#3 = print_schar_at::at#1 [phi:main::@2->print_schar_at#0] -- register_copy @@ -1453,7 +1453,7 @@ main: { ldy.z j lda vals,y sta.z fmul8.bb - // [19] call fmul8 + // [19] call fmul8 jsr fmul8 // [20] fmul8::return#0 = fmul8::return#2 jmp __b7 @@ -1467,7 +1467,7 @@ main: { sta.z print_schar_at.at lda.z at_2+1 sta.z print_schar_at.at+1 - // [24] call print_schar_at + // [24] call print_schar_at // [45] phi from main::@7 to print_schar_at [phi:main::@7->print_schar_at] print_schar_at_from___b7: // [45] phi print_schar_at::at#3 = print_schar_at::at#2 [phi:main::@7->print_schar_at#0] -- register_copy @@ -1501,7 +1501,7 @@ main: { init_screen: { .const WHITE = 1 .label COLS = $b - // [31] call print_cls + // [31] call print_cls // [62] phi from init_screen to print_cls [phi:init_screen->print_cls] print_cls_from_init_screen: jsr print_cls @@ -1516,7 +1516,7 @@ init_screen: { jmp __b1 // init_screen::@1 __b1: - // [33] ((byte*) 55296)[init_screen::l#2] = init_screen::WHITE -- pbuc1_derefidx_vbuxx=vbuc2 + // [33] ((char *) 55296)[init_screen::l#2] = init_screen::WHITE -- pbuc1_derefidx_vbuxx=vbuc2 lda #WHITE sta $d800,x // [34] init_screen::l#1 = ++ init_screen::l#2 -- vbuxx=_inc_vbuxx @@ -1528,7 +1528,7 @@ init_screen: { __b2_from___b1: // [36] phi init_screen::m#2 = 0 [phi:init_screen::@1->init_screen::@2#0] -- vbuxx=vbuc1 ldx #0 - // [36] phi init_screen::COLS#3 = (byte*) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 + // [36] phi init_screen::COLS#3 = (char *) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 lda #<$d800 sta.z COLS lda #>$d800 @@ -1578,7 +1578,7 @@ init_screen: { } // print_schar_at // Print a signed char as hex at a specific screen position -// print_schar_at(signed byte zp($d) b, byte* zp($b) at) +// void print_schar_at(__zp($d) signed char b, __zp($b) char *at) print_schar_at: { .label b = $d .label at = $b @@ -1589,7 +1589,7 @@ print_schar_at: { // print_schar_at::@3 __b3: // [47] print_char_at::at#1 = print_schar_at::at#3 - // [48] call print_char_at + // [48] call print_char_at // [65] phi from print_schar_at::@3 to print_char_at [phi:print_schar_at::@3->print_char_at] print_char_at_from___b3: // [65] phi print_char_at::at#4 = print_char_at::at#1 [phi:print_schar_at::@3->print_char_at#0] -- register_copy @@ -1608,8 +1608,8 @@ print_schar_at: { bne !+ inc.z print_uchar_at.at+1 !: - // [51] print_uchar_at::b#0 = (byte)print_schar_at::b#6 - // [52] call print_uchar_at + // [51] print_uchar_at::b#0 = (char)print_schar_at::b#6 + // [52] call print_uchar_at jsr print_uchar_at jmp __breturn // print_schar_at::@return @@ -1619,7 +1619,7 @@ print_schar_at: { // print_schar_at::@1 __b1: // [54] print_char_at::at#0 = print_schar_at::at#3 - // [55] call print_char_at + // [55] call print_char_at // [65] phi from print_schar_at::@1 to print_char_at [phi:print_schar_at::@1->print_char_at] print_char_at_from___b1: // [65] phi print_char_at::at#4 = print_char_at::at#0 [phi:print_schar_at::@1->print_char_at#0] -- register_copy @@ -1638,7 +1638,7 @@ print_schar_at: { jmp __b2_from___b4 } // fmul8 -// fmul8(signed byte zp($10) aa, signed byte zp($11) bb) +// __register(A) signed char fmul8(__zp($10) volatile signed char aa, __zp($11) volatile signed char bb) fmul8: { .label aa = $10 .label bb = $11 @@ -1670,7 +1670,7 @@ fmul8: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [63] call memset + // [63] call memset // [77] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1682,7 +1682,7 @@ print_cls: { } // print_char_at // Print a single char -// print_char_at(byte register(X) ch, byte* zp($b) at) +// void print_char_at(__register(X) char ch, __zp($b) char *at) print_char_at: { .label at = $b // [66] *print_char_at::at#4 = print_char_at::ch#4 -- _deref_pbuz1=vbuxx @@ -1697,7 +1697,7 @@ print_char_at: { } // print_uchar_at // Print a char as HEX at a specific position -// print_uchar_at(byte zp($d) b, byte* zp($b) at) +// void print_uchar_at(__zp($d) char b, __zp($b) char *at) print_uchar_at: { .label b = $d .label at = $b @@ -1711,7 +1711,7 @@ print_uchar_at: { tay ldx print_hextab,y // [70] print_char_at::at#2 = print_uchar_at::at#0 - // [71] call print_char_at + // [71] call print_char_at // Table of hexadecimal digits // [65] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at] print_char_at_from_print_uchar_at: @@ -1732,7 +1732,7 @@ print_uchar_at: { !: // [74] print_char_at::ch#3 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx print_hextab,y - // [75] call print_char_at + // [75] call print_char_at // [65] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at] print_char_at_from___b1: // [65] phi print_char_at::at#4 = print_char_at::at#3 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy @@ -1746,6 +1746,7 @@ print_uchar_at: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1754,7 +1755,7 @@ memset: { .label dst = $e // [78] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [78] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [78] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1902,111 +1903,111 @@ Removing instruction lda #9 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) -volatile signed byte fmul8::aa loadstore zp[1]:16 33.666666666666664 -volatile signed byte fmul8::bb loadstore zp[1]:17 50.5 -volatile signed byte fmul8::cc loadstore zp[1]:18 1001.0 -signed byte fmul8::return -signed byte fmul8::return#0 reg byte a 202.0 -signed byte fmul8::return#1 reg byte a 2002.0 -signed byte fmul8::return#2 reg byte a 367.33333333333337 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +signed char fmul8(volatile signed char aa , volatile signed char bb) +__loadstore volatile signed char fmul8::aa // zp[1]:16 33.666666666666664 +__loadstore volatile signed char fmul8::bb // zp[1]:17 50.5 +__loadstore volatile signed char fmul8::cc // zp[1]:18 1001.0 +signed char fmul8::return +signed char fmul8::return#0 // reg byte a 202.0 +signed char fmul8::return#1 // reg byte a 2002.0 +signed char fmul8::return#2 // reg byte a 367.33333333333337 void init_screen() -byte* init_screen::COLS -byte* init_screen::COLS#1 COLS zp[2]:11 67.33333333333333 -byte* init_screen::COLS#3 COLS zp[2]:11 121.2 -constant byte init_screen::WHITE = 1 -byte init_screen::l -byte init_screen::l#1 reg byte x 151.5 -byte init_screen::l#2 reg byte x 151.5 -byte init_screen::m -byte init_screen::m#1 reg byte x 151.5 -byte init_screen::m#2 reg byte x 33.666666666666664 +char *init_screen::COLS +char *init_screen::COLS#1 // COLS zp[2]:11 67.33333333333333 +char *init_screen::COLS#3 // COLS zp[2]:11 121.2 +__constant char init_screen::WHITE = 1 +char init_screen::l +char init_screen::l#1 // reg byte x 151.5 +char init_screen::l#2 // reg byte x 151.5 +char init_screen::m +char init_screen::m#1 // reg byte x 151.5 +char init_screen::m#2 // reg byte x 33.666666666666664 void main() -byte* main::at -byte* main::at#1 at zp[2]:3 7.333333333333333 -byte* main::at#12 at_2 zp[2]:8 22.0 -byte* main::at#2 at_1 zp[2]:5 2.3157894736842106 -byte* main::at#3 at_2 zp[2]:8 27.545454545454547 -byte* main::at#4 at zp[2]:3 8.25 -byte* main::at#6 at_2 zp[2]:8 213.0 -byte* main::at_line -byte* main::at_line#2 at_line zp[2]:5 22.0 -byte main::i -byte main::i#1 i zp[1]:7 16.5 -byte main::i#2 i zp[1]:7 7.444444444444445 -byte main::j -byte main::j#1 j zp[1]:10 151.5 -byte main::j#2 j zp[1]:10 30.299999999999997 -byte main::k -byte main::k#1 k zp[1]:2 16.5 -byte main::k#2 k zp[1]:2 6.6000000000000005 -signed byte main::r -signed byte main::r#0 reg byte a 202.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:14 20002.0 -byte* memset::dst#2 dst zp[2]:14 13334.666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -constant byte* mulf_sqr1[$200] = kickasm {{ .for(var i=0;i<$200;i++) { +char *main::at +char *main::at#1 // at zp[2]:3 7.333333333333333 +char *main::at#12 // at_2 zp[2]:8 22.0 +char *main::at#2 // at_1 zp[2]:5 2.3157894736842106 +char *main::at#3 // at_2 zp[2]:8 27.545454545454547 +char *main::at#4 // at zp[2]:3 8.25 +char *main::at#6 // at_2 zp[2]:8 213.0 +char *main::at_line +char *main::at_line#2 // at_line zp[2]:5 22.0 +char main::i +char main::i#1 // i zp[1]:7 16.5 +char main::i#2 // i zp[1]:7 7.444444444444445 +char main::j +char main::j#1 // j zp[1]:10 151.5 +char main::j#2 // j zp[1]:10 30.299999999999997 +char main::k +char main::k#1 // k zp[1]:2 16.5 +char main::k#2 // k zp[1]:2 6.6000000000000005 +signed char main::r +signed char main::r#0 // reg byte a 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:14 20002.0 +char *memset::dst#2 // dst zp[2]:14 13334.666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +__constant char mulf_sqr1[$200] = kickasm {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((i*i)/256) } .if(i>159 && i<=351 ) { .byte round(((i-256)*(i-256))/256) } .if(i>351) { .byte round(((512-i)*(512-i))/256) } } }} -constant byte* mulf_sqr2[$200] = kickasm {{ .for(var i=0;i<$200;i++) { +__constant char mulf_sqr2[$200] = kickasm {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((-i-1)*(-i-1)/256) } .if(i>159 && i<=351 ) { .byte round(((255-i)*(255-i))/256) } .if(i>351) { .byte round(((i-511)*(i-511))/256) } } }} -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 at zp[2]:11 2002.0 -byte* print_char_at::at#1 at zp[2]:11 2002.0 -byte* print_char_at::at#2 at zp[2]:11 20002.0 -byte* print_char_at::at#3 at zp[2]:11 10001.0 -byte* print_char_at::at#4 at zp[2]:11 122005.0 -byte print_char_at::ch -byte print_char_at::ch#2 reg byte x 10001.0 -byte print_char_at::ch#3 reg byte x 20002.0 -byte print_char_at::ch#4 reg byte x 120003.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // at zp[2]:11 2002.0 +char *print_char_at::at#1 // at zp[2]:11 2002.0 +char *print_char_at::at#2 // at zp[2]:11 20002.0 +char *print_char_at::at#3 // at zp[2]:11 10001.0 +char *print_char_at::at#4 // at zp[2]:11 122005.0 +char print_char_at::ch +char print_char_at::ch#2 // reg byte x 10001.0 +char print_char_at::ch#3 // reg byte x 20002.0 +char print_char_at::ch#4 // reg byte x 120003.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) -byte* print_schar_at::at -byte* print_schar_at::at#0 at zp[2]:11 22.0 -byte* print_schar_at::at#1 at zp[2]:11 22.0 -byte* print_schar_at::at#2 at zp[2]:11 202.0 -byte* print_schar_at::at#3 at zp[2]:11 390.75 -signed byte print_schar_at::b -signed byte print_schar_at::b#0 b zp[1]:13 2002.0 -signed byte print_schar_at::b#1 b zp[1]:13 11.0 -signed byte print_schar_at::b#2 b zp[1]:13 11.0 -signed byte print_schar_at::b#3 b zp[1]:13 101.0 -signed byte print_schar_at::b#4 b zp[1]:13 521.0 -signed byte print_schar_at::b#6 b zp[1]:13 1001.0 -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 reg byte a 20002.0 -byte~ print_uchar_at::$2 reg byte y 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 at zp[2]:11 3000.4285714285716 -byte print_uchar_at::b -byte print_uchar_at::b#0 b zp[1]:13 4200.6 -constant signed byte* vals[] = { -$5f, -$40, -$20, -$10, 0, $10, $20, $40, $5f } +__constant const char print_hextab[] = "0123456789abcdef"z +void print_schar_at(signed char b , char *at) +char *print_schar_at::at +char *print_schar_at::at#0 // at zp[2]:11 22.0 +char *print_schar_at::at#1 // at zp[2]:11 22.0 +char *print_schar_at::at#2 // at zp[2]:11 202.0 +char *print_schar_at::at#3 // at zp[2]:11 390.75 +signed char print_schar_at::b +signed char print_schar_at::b#0 // b zp[1]:13 2002.0 +signed char print_schar_at::b#1 // b zp[1]:13 11.0 +signed char print_schar_at::b#2 // b zp[1]:13 11.0 +signed char print_schar_at::b#3 // b zp[1]:13 101.0 +signed char print_schar_at::b#4 // b zp[1]:13 521.0 +signed char print_schar_at::b#6 // b zp[1]:13 1001.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // reg byte a 20002.0 +char print_uchar_at::$2 // reg byte y 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // at zp[2]:11 3000.4285714285716 +char print_uchar_at::b +char print_uchar_at::b#0 // b zp[1]:13 4200.6 +__constant signed char vals[] = { -$5f, -$40, -$20, -$10, 0, $10, $20, $40, $5f } zp[1]:2 [ main::k#2 main::k#1 ] zp[2]:3 [ main::at#4 main::at#1 ] @@ -2064,11 +2065,11 @@ main: { .label i = 7 .label at_line = 5 // init_screen() - // [1] call init_screen + // [1] call init_screen // [30] phi from main to init_screen [phi:main->init_screen] jsr init_screen // [2] phi from main to main::@1 [phi:main->main::@1] - // [2] phi main::at#4 = (byte*) 1024+4 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [2] phi main::at#4 = (char *) 1024+4 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400+4 sta.z at lda #>$400+4 @@ -2091,7 +2092,7 @@ main: { sta.z print_schar_at.at lda.z at+1 sta.z print_schar_at.at+1 - // [5] call print_schar_at + // [5] call print_schar_at // [45] phi from main::@1 to print_schar_at [phi:main::@1->print_schar_at] // [45] phi print_schar_at::at#3 = print_schar_at::at#0 [phi:main::@1->print_schar_at#0] -- register_copy // [45] phi print_schar_at::b#4 = print_schar_at::b#1 [phi:main::@1->print_schar_at#1] -- register_copy @@ -2117,7 +2118,7 @@ main: { // [9] phi main::i#2 = 0 [phi:main::@5->main::@2#0] -- vbuz1=vbuc1 lda #0 sta.z i - // [9] phi main::at_line#2 = (byte*) 1024 [phi:main::@5->main::@2#1] -- pbuz1=pbuc1 + // [9] phi main::at_line#2 = (char *) 1024 [phi:main::@5->main::@2#1] -- pbuz1=pbuc1 lda #<$400 sta.z at_line lda #>$400 @@ -2146,7 +2147,7 @@ main: { sta.z print_schar_at.at lda.z at_1+1 sta.z print_schar_at.at+1 - // [13] call print_schar_at + // [13] call print_schar_at // [45] phi from main::@2 to print_schar_at [phi:main::@2->print_schar_at] // [45] phi print_schar_at::at#3 = print_schar_at::at#1 [phi:main::@2->print_schar_at#0] -- register_copy // [45] phi print_schar_at::b#4 = print_schar_at::b#2 [phi:main::@2->print_schar_at#1] -- register_copy @@ -2185,7 +2186,7 @@ main: { ldy.z j lda vals,y sta.z fmul8.bb - // [19] call fmul8 + // [19] call fmul8 jsr fmul8 // [20] fmul8::return#0 = fmul8::return#2 // main::@7 @@ -2198,7 +2199,7 @@ main: { sta.z print_schar_at.at lda.z at_2+1 sta.z print_schar_at.at+1 - // [24] call print_schar_at + // [24] call print_schar_at // [45] phi from main::@7 to print_schar_at [phi:main::@7->print_schar_at] // [45] phi print_schar_at::at#3 = print_schar_at::at#2 [phi:main::@7->print_schar_at#0] -- register_copy // [45] phi print_schar_at::b#4 = print_schar_at::b#3 [phi:main::@7->print_schar_at#1] -- register_copy @@ -2228,7 +2229,7 @@ init_screen: { .const WHITE = 1 .label COLS = $b // print_cls() - // [31] call print_cls + // [31] call print_cls // [62] phi from init_screen to print_cls [phi:init_screen->print_cls] jsr print_cls // [32] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1] @@ -2239,7 +2240,7 @@ init_screen: { // init_screen::@1 __b1: // COLS[l] = WHITE - // [33] ((byte*) 55296)[init_screen::l#2] = init_screen::WHITE -- pbuc1_derefidx_vbuxx=vbuc2 + // [33] ((char *) 55296)[init_screen::l#2] = init_screen::WHITE -- pbuc1_derefidx_vbuxx=vbuc2 lda #WHITE sta $d800,x // for(char l: 0..39) @@ -2251,7 +2252,7 @@ init_screen: { // [36] phi from init_screen::@1 to init_screen::@2 [phi:init_screen::@1->init_screen::@2] // [36] phi init_screen::m#2 = 0 [phi:init_screen::@1->init_screen::@2#0] -- vbuxx=vbuc1 ldx #0 - // [36] phi init_screen::COLS#3 = (byte*) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 + // [36] phi init_screen::COLS#3 = (char *) 55296 [phi:init_screen::@1->init_screen::@2#1] -- pbuz1=pbuc1 lda #<$d800 sta.z COLS lda #>$d800 @@ -2300,7 +2301,7 @@ init_screen: { } // print_schar_at // Print a signed char as hex at a specific screen position -// print_schar_at(signed byte zp($d) b, byte* zp($b) at) +// void print_schar_at(__zp($d) signed char b, __zp($b) char *at) print_schar_at: { .label b = $d .label at = $b @@ -2311,7 +2312,7 @@ print_schar_at: { // print_schar_at::@3 // print_char_at(' ', at) // [47] print_char_at::at#1 = print_schar_at::at#3 - // [48] call print_char_at + // [48] call print_char_at // [65] phi from print_schar_at::@3 to print_char_at [phi:print_schar_at::@3->print_char_at] // [65] phi print_char_at::at#4 = print_char_at::at#1 [phi:print_schar_at::@3->print_char_at#0] -- register_copy // [65] phi print_char_at::ch#4 = ' ' [phi:print_schar_at::@3->print_char_at#1] -- vbuxx=vbuc1 @@ -2327,8 +2328,8 @@ print_schar_at: { bne !+ inc.z print_uchar_at.at+1 !: - // [51] print_uchar_at::b#0 = (byte)print_schar_at::b#6 - // [52] call print_uchar_at + // [51] print_uchar_at::b#0 = (char)print_schar_at::b#6 + // [52] call print_uchar_at jsr print_uchar_at // print_schar_at::@return // } @@ -2338,7 +2339,7 @@ print_schar_at: { __b1: // print_char_at('-', at) // [54] print_char_at::at#0 = print_schar_at::at#3 - // [55] call print_char_at + // [55] call print_char_at // [65] phi from print_schar_at::@1 to print_char_at [phi:print_schar_at::@1->print_char_at] // [65] phi print_char_at::at#4 = print_char_at::at#0 [phi:print_schar_at::@1->print_char_at#0] -- register_copy // [65] phi print_char_at::ch#4 = '-' [phi:print_schar_at::@1->print_char_at#1] -- vbuxx=vbuc1 @@ -2355,7 +2356,7 @@ print_schar_at: { jmp __b2 } // fmul8 -// fmul8(signed byte zp($10) aa, signed byte zp($11) bb) +// __register(A) signed char fmul8(__zp($10) volatile signed char aa, __zp($11) volatile signed char bb) fmul8: { .label aa = $10 .label bb = $11 @@ -2389,7 +2390,7 @@ fmul8: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [63] call memset + // [63] call memset // [77] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2399,7 +2400,7 @@ print_cls: { } // print_char_at // Print a single char -// print_char_at(byte register(X) ch, byte* zp($b) at) +// void print_char_at(__register(X) char ch, __zp($b) char *at) print_char_at: { .label at = $b // *(at) = ch @@ -2414,7 +2415,7 @@ print_char_at: { } // print_uchar_at // Print a char as HEX at a specific position -// print_uchar_at(byte zp($d) b, byte* zp($b) at) +// void print_uchar_at(__zp($d) char b, __zp($b) char *at) print_uchar_at: { .label b = $d .label at = $b @@ -2430,7 +2431,7 @@ print_uchar_at: { tay ldx print_hextab,y // [70] print_char_at::at#2 = print_uchar_at::at#0 - // [71] call print_char_at + // [71] call print_char_at // Table of hexadecimal digits // [65] phi from print_uchar_at to print_char_at [phi:print_uchar_at->print_char_at] // [65] phi print_char_at::at#4 = print_char_at::at#2 [phi:print_uchar_at->print_char_at#0] -- register_copy @@ -2450,7 +2451,7 @@ print_uchar_at: { !: // [74] print_char_at::ch#3 = print_hextab[print_uchar_at::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx print_hextab,y - // [75] call print_char_at + // [75] call print_char_at // [65] phi from print_uchar_at::@1 to print_char_at [phi:print_uchar_at::@1->print_char_at] // [65] phi print_char_at::at#4 = print_char_at::at#3 [phi:print_uchar_at::@1->print_char_at#0] -- register_copy // [65] phi print_char_at::ch#4 = print_char_at::ch#3 [phi:print_uchar_at::@1->print_char_at#1] -- register_copy @@ -2462,6 +2463,7 @@ print_uchar_at: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2469,7 +2471,7 @@ memset: { .label end = str+num .label dst = $e // [78] phi from memset to memset::@1 [phi:memset->memset::@1] - // [78] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [78] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.sym b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.sym index 257ba5fb1..4b9ff0721 100644 --- a/src/test/ref/examples/c64/fastmultiply/fastmultiply8.sym +++ b/src/test/ref/examples/c64/fastmultiply/fastmultiply8.sym @@ -1,108 +1,108 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -signed byte fmul8(volatile signed byte fmul8::aa , volatile signed byte fmul8::bb) -volatile signed byte fmul8::aa loadstore zp[1]:16 33.666666666666664 -volatile signed byte fmul8::bb loadstore zp[1]:17 50.5 -volatile signed byte fmul8::cc loadstore zp[1]:18 1001.0 -signed byte fmul8::return -signed byte fmul8::return#0 reg byte a 202.0 -signed byte fmul8::return#1 reg byte a 2002.0 -signed byte fmul8::return#2 reg byte a 367.33333333333337 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +signed char fmul8(volatile signed char aa , volatile signed char bb) +__loadstore volatile signed char fmul8::aa // zp[1]:16 33.666666666666664 +__loadstore volatile signed char fmul8::bb // zp[1]:17 50.5 +__loadstore volatile signed char fmul8::cc // zp[1]:18 1001.0 +signed char fmul8::return +signed char fmul8::return#0 // reg byte a 202.0 +signed char fmul8::return#1 // reg byte a 2002.0 +signed char fmul8::return#2 // reg byte a 367.33333333333337 void init_screen() -byte* init_screen::COLS -byte* init_screen::COLS#1 COLS zp[2]:11 67.33333333333333 -byte* init_screen::COLS#3 COLS zp[2]:11 121.2 -constant byte init_screen::WHITE = 1 -byte init_screen::l -byte init_screen::l#1 reg byte x 151.5 -byte init_screen::l#2 reg byte x 151.5 -byte init_screen::m -byte init_screen::m#1 reg byte x 151.5 -byte init_screen::m#2 reg byte x 33.666666666666664 +char *init_screen::COLS +char *init_screen::COLS#1 // COLS zp[2]:11 67.33333333333333 +char *init_screen::COLS#3 // COLS zp[2]:11 121.2 +__constant char init_screen::WHITE = 1 +char init_screen::l +char init_screen::l#1 // reg byte x 151.5 +char init_screen::l#2 // reg byte x 151.5 +char init_screen::m +char init_screen::m#1 // reg byte x 151.5 +char init_screen::m#2 // reg byte x 33.666666666666664 void main() -byte* main::at -byte* main::at#1 at zp[2]:3 7.333333333333333 -byte* main::at#12 at_2 zp[2]:8 22.0 -byte* main::at#2 at_1 zp[2]:5 2.3157894736842106 -byte* main::at#3 at_2 zp[2]:8 27.545454545454547 -byte* main::at#4 at zp[2]:3 8.25 -byte* main::at#6 at_2 zp[2]:8 213.0 -byte* main::at_line -byte* main::at_line#2 at_line zp[2]:5 22.0 -byte main::i -byte main::i#1 i zp[1]:7 16.5 -byte main::i#2 i zp[1]:7 7.444444444444445 -byte main::j -byte main::j#1 j zp[1]:10 151.5 -byte main::j#2 j zp[1]:10 30.299999999999997 -byte main::k -byte main::k#1 k zp[1]:2 16.5 -byte main::k#2 k zp[1]:2 6.6000000000000005 -signed byte main::r -signed byte main::r#0 reg byte a 202.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:14 20002.0 -byte* memset::dst#2 dst zp[2]:14 13334.666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -constant byte* mulf_sqr1[$200] = kickasm {{ .for(var i=0;i<$200;i++) { +char *main::at +char *main::at#1 // at zp[2]:3 7.333333333333333 +char *main::at#12 // at_2 zp[2]:8 22.0 +char *main::at#2 // at_1 zp[2]:5 2.3157894736842106 +char *main::at#3 // at_2 zp[2]:8 27.545454545454547 +char *main::at#4 // at zp[2]:3 8.25 +char *main::at#6 // at_2 zp[2]:8 213.0 +char *main::at_line +char *main::at_line#2 // at_line zp[2]:5 22.0 +char main::i +char main::i#1 // i zp[1]:7 16.5 +char main::i#2 // i zp[1]:7 7.444444444444445 +char main::j +char main::j#1 // j zp[1]:10 151.5 +char main::j#2 // j zp[1]:10 30.299999999999997 +char main::k +char main::k#1 // k zp[1]:2 16.5 +char main::k#2 // k zp[1]:2 6.6000000000000005 +signed char main::r +signed char main::r#0 // reg byte a 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:14 20002.0 +char *memset::dst#2 // dst zp[2]:14 13334.666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +__constant char mulf_sqr1[$200] = kickasm {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((i*i)/256) } .if(i>159 && i<=351 ) { .byte round(((i-256)*(i-256))/256) } .if(i>351) { .byte round(((512-i)*(512-i))/256) } } }} -constant byte* mulf_sqr2[$200] = kickasm {{ .for(var i=0;i<$200;i++) { +__constant char mulf_sqr2[$200] = kickasm {{ .for(var i=0;i<$200;i++) { .if(i<=159) { .byte round((-i-1)*(-i-1)/256) } .if(i>159 && i<=351 ) { .byte round(((255-i)*(255-i))/256) } .if(i>351) { .byte round(((i-511)*(i-511))/256) } } }} -void print_char_at(byte print_char_at::ch , byte* print_char_at::at) -byte* print_char_at::at -byte* print_char_at::at#0 at zp[2]:11 2002.0 -byte* print_char_at::at#1 at zp[2]:11 2002.0 -byte* print_char_at::at#2 at zp[2]:11 20002.0 -byte* print_char_at::at#3 at zp[2]:11 10001.0 -byte* print_char_at::at#4 at zp[2]:11 122005.0 -byte print_char_at::ch -byte print_char_at::ch#2 reg byte x 10001.0 -byte print_char_at::ch#3 reg byte x 20002.0 -byte print_char_at::ch#4 reg byte x 120003.0 +void print_char_at(char ch , char *at) +char *print_char_at::at +char *print_char_at::at#0 // at zp[2]:11 2002.0 +char *print_char_at::at#1 // at zp[2]:11 2002.0 +char *print_char_at::at#2 // at zp[2]:11 20002.0 +char *print_char_at::at#3 // at zp[2]:11 10001.0 +char *print_char_at::at#4 // at zp[2]:11 122005.0 +char print_char_at::ch +char print_char_at::ch#2 // reg byte x 10001.0 +char print_char_at::ch#3 // reg byte x 20002.0 +char print_char_at::ch#4 // reg byte x 120003.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -void print_schar_at(signed byte print_schar_at::b , byte* print_schar_at::at) -byte* print_schar_at::at -byte* print_schar_at::at#0 at zp[2]:11 22.0 -byte* print_schar_at::at#1 at zp[2]:11 22.0 -byte* print_schar_at::at#2 at zp[2]:11 202.0 -byte* print_schar_at::at#3 at zp[2]:11 390.75 -signed byte print_schar_at::b -signed byte print_schar_at::b#0 b zp[1]:13 2002.0 -signed byte print_schar_at::b#1 b zp[1]:13 11.0 -signed byte print_schar_at::b#2 b zp[1]:13 11.0 -signed byte print_schar_at::b#3 b zp[1]:13 101.0 -signed byte print_schar_at::b#4 b zp[1]:13 521.0 -signed byte print_schar_at::b#6 b zp[1]:13 1001.0 -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar_at(byte print_uchar_at::b , byte* print_uchar_at::at) -byte~ print_uchar_at::$0 reg byte a 20002.0 -byte~ print_uchar_at::$2 reg byte y 10001.0 -byte* print_uchar_at::at -byte* print_uchar_at::at#0 at zp[2]:11 3000.4285714285716 -byte print_uchar_at::b -byte print_uchar_at::b#0 b zp[1]:13 4200.6 -constant signed byte* vals[] = { -$5f, -$40, -$20, -$10, 0, $10, $20, $40, $5f } +__constant const char print_hextab[] = "0123456789abcdef"z +void print_schar_at(signed char b , char *at) +char *print_schar_at::at +char *print_schar_at::at#0 // at zp[2]:11 22.0 +char *print_schar_at::at#1 // at zp[2]:11 22.0 +char *print_schar_at::at#2 // at zp[2]:11 202.0 +char *print_schar_at::at#3 // at zp[2]:11 390.75 +signed char print_schar_at::b +signed char print_schar_at::b#0 // b zp[1]:13 2002.0 +signed char print_schar_at::b#1 // b zp[1]:13 11.0 +signed char print_schar_at::b#2 // b zp[1]:13 11.0 +signed char print_schar_at::b#3 // b zp[1]:13 101.0 +signed char print_schar_at::b#4 // b zp[1]:13 521.0 +signed char print_schar_at::b#6 // b zp[1]:13 1001.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar_at(char b , char *at) +char print_uchar_at::$0 // reg byte a 20002.0 +char print_uchar_at::$2 // reg byte y 10001.0 +char *print_uchar_at::at +char *print_uchar_at::at#0 // at zp[2]:11 3000.4285714285716 +char print_uchar_at::b +char print_uchar_at::b#0 // b zp[1]:13 4200.6 +__constant signed char vals[] = { -$5f, -$40, -$20, -$10, 0, $10, $20, $40, $5f } zp[1]:2 [ main::k#2 main::k#1 ] zp[2]:3 [ main::at#4 main::at#1 ] diff --git a/src/test/ref/examples/c64/fire/fire.asm b/src/test/ref/examples/c64/fire/fire.asm index 48b1e3c02..3f19d8a40 100644 --- a/src/test/ref/examples/c64/fire/fire.asm +++ b/src/test/ref/examples/c64/fire/fire.asm @@ -105,7 +105,7 @@ main: { jmp __b1 } // Fill a screen (1000 chars) with a specific char -// fillscreen(byte* zp(5) screen, byte register(X) fill) +// void fillscreen(__zp(5) char *screen, __register(X) char fill) fillscreen: { .label screen = 5 .label i = 7 @@ -137,6 +137,7 @@ fillscreen: { rts } // Make a fire-friendly charset in chars $00-$3f of the passed charset +// void makecharset(char *charset) makecharset: { .label __13 = $d .label __15 = $b @@ -301,6 +302,7 @@ makecharset: { } .segment Code // Animate the fire on the passed screen. Uses BUFFER to store the current values. +// void fire(char *screenbase) fire: { .label screen = $b .label screen_1 = 7 diff --git a/src/test/ref/examples/c64/fire/fire.cfg b/src/test/ref/examples/c64/fire/fire.cfg index 772a1ee47..7b0ae3bc5 100644 --- a/src/test/ref/examples/c64/fire/fire.cfg +++ b/src/test/ref/examples/c64/fire/fire.cfg @@ -2,40 +2,40 @@ void main() main: scope:[main] from asm { sei } - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK - [3] call fillscreen + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK + [3] call fillscreen to:main::@5 main::@5: scope:[main] from main [4] phi() - [5] call fillscreen + [5] call fillscreen to:main::@6 main::@6: scope:[main] from main::@5 [6] phi() - [7] call fillscreen + [7] call fillscreen to:main::@7 main::@7: scope:[main] from main::@6 [8] phi() - [9] call fillscreen + [9] call fillscreen to:main::sid_rnd_init1 main::sid_rnd_init1: scope:[main] from main::@7 - [10] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff - [11] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE + [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff + [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE to:main::@2 main::@2: scope:[main] from main::sid_rnd_init1 [12] phi() - [13] call makecharset + [13] call makecharset to:main::@1 main::@1: scope:[main] from main::@2 main::@4 [14] phi() - [15] call fire + [15] call fire to:main::toD0181 main::toD0181: scope:[main] from main::@1 [16] phi() to:main::@3 main::@3: scope:[main] from main::toD0181 [17] *D018 = main::toD0181_return#0 - [18] call fire + [18] call fire to:main::toD0182 main::toD0182: scope:[main] from main::@3 [19] phi() @@ -44,7 +44,7 @@ main::@4: scope:[main] from main::toD0182 [20] *D018 = main::toD0182_return#0 to:main::@1 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main main::@5 main::@6 main::@7 [21] fillscreen::screen#6 = phi( main/BUFFER, main::@5/SCREEN1, main::@6/SCREEN2, main::@7/COLS ) [21] fillscreen::fill#5 = phi( main/0, main::@5/0, main::@6/0, main::@7/YELLOW ) @@ -61,7 +61,7 @@ fillscreen::@return: scope:[fillscreen] from fillscreen::@1 [27] return to:@return -void makecharset(byte* makecharset::charset) +void makecharset(char *charset) makecharset: scope:[makecharset] from main::@2 [28] phi() to:makecharset::@1 @@ -70,7 +70,7 @@ makecharset::@1: scope:[makecharset] from makecharset makecharset::@2 [30] if(makecharset::font#2!=CHARSET+1*8) goto makecharset::@2 to:makecharset::@3 makecharset::@3: scope:[makecharset] from makecharset::@1 makecharset::@4 - [31] makecharset::font1#2 = phi( makecharset::@1/CHARSET+(word)$40*8, makecharset::@4/makecharset::font1#1 ) + [31] makecharset::font1#2 = phi( makecharset::@1/CHARSET+(unsigned int)$40*8, makecharset::@4/makecharset::font1#1 ) [32] if(makecharset::font1#2!=CHARSET+$100*8) goto makecharset::@4 to:makecharset::@5 makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@7 @@ -95,7 +95,7 @@ makecharset::@8: scope:[makecharset] from makecharset::@11 makecharset::@6 [40] if(makecharset::ii#2<8) goto makecharset::@9 to:makecharset::@10 makecharset::@10: scope:[makecharset] from makecharset::@8 - [41] makecharset::$17 = (word)makecharset::c#2 + [41] makecharset::$17 = (unsigned int)makecharset::c#2 [42] makecharset::$15 = makecharset::$17 << 3 [43] makecharset::$16 = makecharset::$15 + makecharset::i#2 [44] makecharset::$18 = CHARSET+1*8 + makecharset::$16 @@ -127,7 +127,7 @@ makecharset::@2: scope:[makecharset] from makecharset::@1 [59] makecharset::font#1 = ++ makecharset::font#2 to:makecharset::@1 -void fire(byte* fire::screenbase) +void fire(char *screenbase) fire: scope:[fire] from main::@1 main::@3 [60] fire::screen#0 = phi( main::@1/SCREEN1, main::@3/SCREEN2 ) [61] fire::screen#12 = fire::screen#0 @@ -135,21 +135,21 @@ fire: scope:[fire] from main::@1 main::@3 fire::@1: scope:[fire] from fire fire::@4 [62] fire::screen#4 = phi( fire/fire::screen#12, fire::@4/fire::screen#2 ) [62] fire::buffer#4 = phi( fire/BUFFER, fire::@4/fire::buffer#2 ) - [63] if(fire::buffer#4!=BUFFER+(word)$18*$28) goto fire::@2 + [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2 to:fire::@3 fire::@3: scope:[fire] from fire::@1 - [64] fire::screen#1 = fire::screen#0 + (word)$18*$28 + [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28 to:fire::@6 fire::@6: scope:[fire] from fire::@3 fire::@7 [65] fire::screen#10 = phi( fire::@3/fire::screen#1, fire::@7/fire::screen#3 ) - [65] fire::buffer#10 = phi( fire::@3/BUFFER+(word)$18*$28, fire::@7/fire::buffer#3 ) - [66] if(fire::buffer#10!=BUFFER+(word)$19*$28) goto fire::sid_rnd1 + [65] fire::buffer#10 = phi( fire::@3/BUFFER+(unsigned int)$18*$28, fire::@7/fire::buffer#3 ) + [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1 to:fire::@return fire::@return: scope:[fire] from fire::@6 [67] return to:@return fire::sid_rnd1: scope:[fire] from fire::@6 - [68] fire::sid_rnd1_return#0 = *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) + [68] fire::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) to:fire::@7 fire::@7: scope:[fire] from fire::sid_rnd1 [69] fire::$13 = fire::sid_rnd1_return#0 >> 4 diff --git a/src/test/ref/examples/c64/fire/fire.log b/src/test/ref/examples/c64/fire/fire.log index 7e43d85fc..a6594887e 100644 --- a/src/test/ref/examples/c64/fire/fire.log +++ b/src/test/ref/examples/c64/fire/fire.log @@ -1,9 +1,9 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call sid_rnd_init +Inlined call call sid_rnd_init Inlined call main::$7 = call toD018(SCREEN1, CHARSET) Inlined call main::$9 = call toD018(SCREEN2, CHARSET) -Inlined call fire::$12 = call sid_rnd -Inlined call call __init +Inlined call fire::$12 = call sid_rnd +Inlined call call __init Eliminating unused variable with no statement fire::$7 Eliminating unused variable with no statement makecharset::$2 @@ -12,36 +12,36 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 asm { sei } - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK fillscreen::screen#0 = BUFFER fillscreen::fill#0 = 0 - call fillscreen + call fillscreen to:main::@6 main::@6: scope:[main] from main fillscreen::screen#1 = SCREEN1 fillscreen::fill#1 = 0 - call fillscreen + call fillscreen to:main::@7 main::@7: scope:[main] from main::@6 fillscreen::screen#2 = SCREEN2 fillscreen::fill#2 = 0 - call fillscreen + call fillscreen to:main::@8 main::@8: scope:[main] from main::@7 fillscreen::screen#3 = COLS fillscreen::fill#3 = YELLOW - call fillscreen + call fillscreen to:main::@9 main::@9: scope:[main] from main::@8 to:main::sid_rnd_init1 main::sid_rnd_init1: scope:[main] from main::@9 - *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff - *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE + *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff + *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE to:main::@3 main::@3: scope:[main] from main::sid_rnd_init1 makecharset::charset#0 = CHARSET - call makecharset + call makecharset to:main::@10 main::@10: scope:[main] from main::@3 to:main::@1 @@ -50,7 +50,7 @@ main::@1: scope:[main] from main::@10 main::@5 to:main::@return main::@2: scope:[main] from main::@1 fire::screenbase#0 = SCREEN1 - call fire + call fire to:main::@11 main::@11: scope:[main] from main::@2 main::toD0181_screen#0 = SCREEN1 @@ -59,11 +59,11 @@ main::@11: scope:[main] from main::@2 main::toD0181: scope:[main] from main::@11 main::toD0181_gfx#1 = phi( main::@11/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@11/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -78,7 +78,7 @@ main::@4: scope:[main] from main::toD0181_@return main::$7 = main::toD0181_return#3 *D018 = main::$7 fire::screenbase#1 = SCREEN2 - call fire + call fire to:main::@12 main::@12: scope:[main] from main::@4 main::toD0182_screen#0 = SCREEN2 @@ -87,11 +87,11 @@ main::@12: scope:[main] from main::@4 main::toD0182: scope:[main] from main::@12 main::toD0182_gfx#1 = phi( main::@12/main::toD0182_gfx#0 ) main::toD0182_screen#1 = phi( main::@12/main::toD0182_screen#0 ) - main::toD0182_$7 = (word)main::toD0182_screen#1 + main::toD0182_$7 = (unsigned int)main::toD0182_screen#1 main::toD0182_$0 = main::toD0182_$7 & $3fff main::toD0182_$1 = main::toD0182_$0 * 4 main::toD0182_$2 = byte1 main::toD0182_$1 - main::toD0182_$3 = byte1 (word)main::toD0182_gfx#1 + main::toD0182_$3 = byte1 (unsigned int)main::toD0182_gfx#1 main::toD0182_$4 = main::toD0182_$3 / 4 main::toD0182_$5 = main::toD0182_$4 & $f main::toD0182_$6 = main::toD0182_$2 | main::toD0182_$5 @@ -110,7 +110,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void fire(byte* fire::screenbase) +void fire(char *screenbase) fire: scope:[fire] from main::@2 main::@4 fire::screenbase#2 = phi( main::@2/fire::screenbase#0, main::@4/fire::screenbase#1 ) fire::screen#0 = fire::screenbase#2 @@ -170,7 +170,7 @@ fire::@6: scope:[fire] from fire::@3 fire::@7 fire::sid_rnd1: scope:[fire] from fire::@6 fire::screen#10 = phi( fire::@6/fire::screen#11 ) fire::buffer#11 = phi( fire::@6/fire::buffer#7 ) - fire::sid_rnd1_return#0 = *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) + fire::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) to:fire::sid_rnd1_@return fire::sid_rnd1_@return: scope:[fire] from fire::sid_rnd1 fire::screen#8 = phi( fire::sid_rnd1/fire::screen#10 ) @@ -194,7 +194,7 @@ fire::@return: scope:[fire] from fire::@6 return to:@return -void makecharset(byte* makecharset::charset) +void makecharset(char *charset) makecharset: scope:[makecharset] from main::@3 makecharset::charset#1 = phi( main::@3/makecharset::charset#0 ) makecharset::font#0 = makecharset::charset#1 @@ -295,7 +295,7 @@ makecharset::@14: scope:[makecharset] from makecharset::@12 makecharset::c#5 = phi( makecharset::@12/makecharset::c#7 ) makecharset::charset#5 = phi( makecharset::@12/makecharset::charset#8 ) makecharset::$14 = makecharset::charset#5 + 1*8 - makecharset::$17 = (word)makecharset::c#5 + makecharset::$17 = (unsigned int)makecharset::c#5 makecharset::$15 = makecharset::$17 << 3 makecharset::$16 = makecharset::$15 + makecharset::i#3 makecharset::$14[makecharset::$16] = makecharset::b#2 @@ -328,7 +328,7 @@ makecharset::@return: scope:[makecharset] from makecharset::@7 return to:@return -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main main::@6 main::@7 main::@8 fillscreen::screen#6 = phi( main/fillscreen::screen#0, main::@6/fillscreen::screen#1, main::@7/fillscreen::screen#2, main::@8/fillscreen::screen#3 ) fillscreen::fill#5 = phi( main/fillscreen::fill#0, main::@6/fillscreen::fill#1, main::@7/fillscreen::fill#2, main::@8/fillscreen::fill#3 ) @@ -354,7 +354,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -363,247 +363,247 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte BLACK = 0 -constant byte* BUFFER = (byte*)$4000 -constant byte* CHARSET = (byte*)$3000 -constant byte* const COLS = (byte*)$d800 -constant byte* const D018 = (byte*)$d018 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12 -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b -constant byte* SCREEN1 = (byte*)$3800 -constant byte* SCREEN2 = (byte*)$3c00 -constant struct MOS6581_SID* const SID = (struct MOS6581_SID*)$d400 -constant const byte SID_CONTROL_NOISE = $80 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 -constant const byte YELLOW = 7 +__constant const char BLACK = 0 +__constant char *BUFFER = (char *)$4000 +__constant char *CHARSET = (char *)$3000 +__constant char * const COLS = (char *)$d800 +__constant char * const D018 = (char *)$d018 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12 +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b +__constant char *SCREEN1 = (char *)$3800 +__constant char *SCREEN2 = (char *)$3c00 +__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *)$d400 +__constant const char SID_CONTROL_NOISE = $80 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 +__constant const char YELLOW = 7 void __start() -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -bool~ fillscreen::$0 -byte fillscreen::fill -byte fillscreen::fill#0 -byte fillscreen::fill#1 -byte fillscreen::fill#2 -byte fillscreen::fill#3 -byte fillscreen::fill#4 -byte fillscreen::fill#5 -word fillscreen::i -word fillscreen::i#0 -word fillscreen::i#1 -word fillscreen::i#2 -byte* fillscreen::screen -byte* fillscreen::screen#0 -byte* fillscreen::screen#1 -byte* fillscreen::screen#2 -byte* fillscreen::screen#3 -byte* fillscreen::screen#4 -byte* fillscreen::screen#5 -byte* fillscreen::screen#6 -void fire(byte* fire::screenbase) -byte*~ fire::$0 -byte*~ fire::$1 -byte*~ fire::$10 -bool~ fire::$11 -byte~ fire::$12 -number~ fire::$13 -number~ fire::$14 -byte*~ fire::$2 -bool~ fire::$3 -byte~ fire::$4 -byte~ fire::$5 -byte~ fire::$6 -bool~ fire::$8 -bool~ fire::$9 -byte* fire::buffer -byte* fire::buffer#0 -byte* fire::buffer#1 -byte* fire::buffer#10 -byte* fire::buffer#11 -byte* fire::buffer#2 -byte* fire::buffer#3 -byte* fire::buffer#4 -byte* fire::buffer#5 -byte* fire::buffer#6 -byte* fire::buffer#7 -byte* fire::buffer#8 -byte* fire::buffer#9 -byte fire::c -byte fire::c#0 -byte fire::c#1 -byte fire::c#2 -byte fire::c#3 -byte* fire::screen -byte* fire::screen#0 -byte* fire::screen#1 -byte* fire::screen#10 -byte* fire::screen#11 -byte* fire::screen#2 -byte* fire::screen#3 -byte* fire::screen#4 -byte* fire::screen#5 -byte* fire::screen#6 -byte* fire::screen#7 -byte* fire::screen#8 -byte* fire::screen#9 -byte* fire::screenbase -byte* fire::screenbase#0 -byte* fire::screenbase#1 -byte* fire::screenbase#2 -byte* fire::screenbase#3 -byte* fire::screenbase#4 -byte* fire::screenbase#5 -byte* fire::screenbase#6 -byte* fire::screenbase#7 -byte fire::sid_rnd1_return -byte fire::sid_rnd1_return#0 -byte fire::sid_rnd1_return#1 -byte fire::sid_rnd1_return#2 -byte fire::sid_rnd1_return#3 +void fillscreen(char *screen , char fill) +bool fillscreen::$0 +char fillscreen::fill +char fillscreen::fill#0 +char fillscreen::fill#1 +char fillscreen::fill#2 +char fillscreen::fill#3 +char fillscreen::fill#4 +char fillscreen::fill#5 +unsigned int fillscreen::i +unsigned int fillscreen::i#0 +unsigned int fillscreen::i#1 +unsigned int fillscreen::i#2 +char *fillscreen::screen +char *fillscreen::screen#0 +char *fillscreen::screen#1 +char *fillscreen::screen#2 +char *fillscreen::screen#3 +char *fillscreen::screen#4 +char *fillscreen::screen#5 +char *fillscreen::screen#6 +void fire(char *screenbase) +char *fire::$0 +char *fire::$1 +char *fire::$10 +bool fire::$11 +char fire::$12 +number fire::$13 +number fire::$14 +char *fire::$2 +bool fire::$3 +char fire::$4 +char fire::$5 +char fire::$6 +bool fire::$8 +bool fire::$9 +char *fire::buffer +char *fire::buffer#0 +char *fire::buffer#1 +char *fire::buffer#10 +char *fire::buffer#11 +char *fire::buffer#2 +char *fire::buffer#3 +char *fire::buffer#4 +char *fire::buffer#5 +char *fire::buffer#6 +char *fire::buffer#7 +char *fire::buffer#8 +char *fire::buffer#9 +char fire::c +char fire::c#0 +char fire::c#1 +char fire::c#2 +char fire::c#3 +char *fire::screen +char *fire::screen#0 +char *fire::screen#1 +char *fire::screen#10 +char *fire::screen#11 +char *fire::screen#2 +char *fire::screen#3 +char *fire::screen#4 +char *fire::screen#5 +char *fire::screen#6 +char *fire::screen#7 +char *fire::screen#8 +char *fire::screen#9 +char *fire::screenbase +char *fire::screenbase#0 +char *fire::screenbase#1 +char *fire::screenbase#2 +char *fire::screenbase#3 +char *fire::screenbase#4 +char *fire::screenbase#5 +char *fire::screenbase#6 +char *fire::screenbase#7 +char fire::sid_rnd1_return +char fire::sid_rnd1_return#0 +char fire::sid_rnd1_return#1 +char fire::sid_rnd1_return#2 +char fire::sid_rnd1_return#3 void main() -byte~ main::$7 -byte~ main::$9 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -number~ main::toD0182_$0 -number~ main::toD0182_$1 -byte~ main::toD0182_$2 -byte~ main::toD0182_$3 -number~ main::toD0182_$4 -number~ main::toD0182_$5 -number~ main::toD0182_$6 -word~ main::toD0182_$7 -byte* main::toD0182_gfx -byte* main::toD0182_gfx#0 -byte* main::toD0182_gfx#1 -byte main::toD0182_return -byte main::toD0182_return#0 -byte main::toD0182_return#1 -byte main::toD0182_return#2 -byte main::toD0182_return#3 -byte* main::toD0182_screen -byte* main::toD0182_screen#0 -byte* main::toD0182_screen#1 -void makecharset(byte* makecharset::charset) -byte*~ makecharset::$0 -bool~ makecharset::$1 -number~ makecharset::$10 -number~ makecharset::$11 -number~ makecharset::$12 -number~ makecharset::$13 -byte*~ makecharset::$14 -word~ makecharset::$15 -word~ makecharset::$16 -word~ makecharset::$17 -byte*~ makecharset::$3 -bool~ makecharset::$4 -bool~ makecharset::$5 -bool~ makecharset::$6 -bool~ makecharset::$7 -bool~ makecharset::$8 -bool~ makecharset::$9 -byte makecharset::b -byte makecharset::b#0 -byte makecharset::b#1 -byte makecharset::b#2 -byte makecharset::b#3 -byte makecharset::b#4 -byte makecharset::b#5 -byte makecharset::b#6 -byte makecharset::bc -byte makecharset::bc#0 -byte makecharset::bc#1 -byte makecharset::bc#2 -byte makecharset::bc#3 -byte makecharset::bc#4 -byte makecharset::bc#5 -byte makecharset::bc#6 -byte makecharset::bc#7 -byte makecharset::bc#8 -byte makecharset::bc#9 -constant const byte* makecharset::bittab[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte makecharset::c -byte makecharset::c#0 -byte makecharset::c#1 -byte makecharset::c#10 -byte makecharset::c#11 -byte makecharset::c#2 -byte makecharset::c#3 -byte makecharset::c#4 -byte makecharset::c#5 -byte makecharset::c#6 -byte makecharset::c#7 -byte makecharset::c#8 -byte makecharset::c#9 -byte* makecharset::charset -byte* makecharset::charset#0 -byte* makecharset::charset#1 -byte* makecharset::charset#10 -byte* makecharset::charset#11 -byte* makecharset::charset#12 -byte* makecharset::charset#13 -byte* makecharset::charset#14 -byte* makecharset::charset#15 -byte* makecharset::charset#16 -byte* makecharset::charset#17 -byte* makecharset::charset#2 -byte* makecharset::charset#3 -byte* makecharset::charset#4 -byte* makecharset::charset#5 -byte* makecharset::charset#6 -byte* makecharset::charset#7 -byte* makecharset::charset#8 -byte* makecharset::charset#9 -byte* makecharset::font -byte* makecharset::font#0 -byte* makecharset::font#1 -byte* makecharset::font#2 -byte* makecharset::font#3 -byte* makecharset::font1 -byte* makecharset::font1#0 -byte* makecharset::font1#1 -byte* makecharset::font1#2 -byte* makecharset::font1#3 -byte makecharset::i -byte makecharset::i#0 -byte makecharset::i#1 -byte makecharset::i#2 -byte makecharset::i#3 -byte makecharset::i#4 -byte makecharset::i#5 -byte makecharset::i#6 -byte makecharset::i#7 -byte makecharset::i#8 -byte makecharset::ii -byte makecharset::ii#0 -byte makecharset::ii#1 -byte makecharset::ii#2 -byte makecharset::ii#3 -byte makecharset::ii#4 -byte makecharset::ii#5 +char main::$7 +char main::$9 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +number main::toD0182_$0 +number main::toD0182_$1 +char main::toD0182_$2 +char main::toD0182_$3 +number main::toD0182_$4 +number main::toD0182_$5 +number main::toD0182_$6 +unsigned int main::toD0182_$7 +char *main::toD0182_gfx +char *main::toD0182_gfx#0 +char *main::toD0182_gfx#1 +char main::toD0182_return +char main::toD0182_return#0 +char main::toD0182_return#1 +char main::toD0182_return#2 +char main::toD0182_return#3 +char *main::toD0182_screen +char *main::toD0182_screen#0 +char *main::toD0182_screen#1 +void makecharset(char *charset) +char *makecharset::$0 +bool makecharset::$1 +number makecharset::$10 +number makecharset::$11 +number makecharset::$12 +number makecharset::$13 +char *makecharset::$14 +unsigned int makecharset::$15 +unsigned int makecharset::$16 +unsigned int makecharset::$17 +char *makecharset::$3 +bool makecharset::$4 +bool makecharset::$5 +bool makecharset::$6 +bool makecharset::$7 +bool makecharset::$8 +bool makecharset::$9 +char makecharset::b +char makecharset::b#0 +char makecharset::b#1 +char makecharset::b#2 +char makecharset::b#3 +char makecharset::b#4 +char makecharset::b#5 +char makecharset::b#6 +char makecharset::bc +char makecharset::bc#0 +char makecharset::bc#1 +char makecharset::bc#2 +char makecharset::bc#3 +char makecharset::bc#4 +char makecharset::bc#5 +char makecharset::bc#6 +char makecharset::bc#7 +char makecharset::bc#8 +char makecharset::bc#9 +__constant const char makecharset::bittab[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char makecharset::c +char makecharset::c#0 +char makecharset::c#1 +char makecharset::c#10 +char makecharset::c#11 +char makecharset::c#2 +char makecharset::c#3 +char makecharset::c#4 +char makecharset::c#5 +char makecharset::c#6 +char makecharset::c#7 +char makecharset::c#8 +char makecharset::c#9 +char *makecharset::charset +char *makecharset::charset#0 +char *makecharset::charset#1 +char *makecharset::charset#10 +char *makecharset::charset#11 +char *makecharset::charset#12 +char *makecharset::charset#13 +char *makecharset::charset#14 +char *makecharset::charset#15 +char *makecharset::charset#16 +char *makecharset::charset#17 +char *makecharset::charset#2 +char *makecharset::charset#3 +char *makecharset::charset#4 +char *makecharset::charset#5 +char *makecharset::charset#6 +char *makecharset::charset#7 +char *makecharset::charset#8 +char *makecharset::charset#9 +char *makecharset::font +char *makecharset::font#0 +char *makecharset::font#1 +char *makecharset::font#2 +char *makecharset::font#3 +char *makecharset::font1 +char *makecharset::font1#0 +char *makecharset::font1#1 +char *makecharset::font1#2 +char *makecharset::font1#3 +char makecharset::i +char makecharset::i#0 +char makecharset::i#1 +char makecharset::i#2 +char makecharset::i#3 +char makecharset::i#4 +char makecharset::i#5 +char makecharset::i#6 +char makecharset::i#7 +char makecharset::i#8 +char makecharset::ii +char makecharset::ii#0 +char makecharset::ii#1 +char makecharset::ii#2 +char makecharset::ii#3 +char makecharset::ii#4 +char makecharset::ii#5 Adding number conversion cast (unumber) 0 in fillscreen::fill#0 = 0 Adding number conversion cast (unumber) 0 in fillscreen::fill#1 = 0 Adding number conversion cast (unumber) 0 in fillscreen::fill#2 = 0 -Adding number conversion cast (unumber) $ffff in *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff +Adding number conversion cast (unumber) $ffff in *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff Adding number conversion cast (unumber) $3fff in main::toD0181_$0 = main::toD0181_$7 & $3fff Adding number conversion cast (unumber) main::toD0181_$0 in main::toD0181_$0 = main::toD0181_$7 & (unumber)$3fff Adding number conversion cast (unumber) 4 in main::toD0181_$1 = main::toD0181_$0 * 4 @@ -659,18 +659,18 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fillscreen::fill#0 = (unumber)0 Inlining cast fillscreen::fill#1 = (unumber)0 Inlining cast fillscreen::fill#2 = (unumber)0 -Inlining cast *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = (unumber)$ffff +Inlining cast *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = (unumber)$ffff Inlining cast *makecharset::font#3 = (unumber)0 Inlining cast *makecharset::font1#3 = (unumber)$ff Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (struct MOS6581_SID*) 54272 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 14336 -Simplifying constant pointer cast (byte*) 15360 -Simplifying constant pointer cast (byte*) 16384 -Simplifying constant pointer cast (byte*) 12288 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (struct MOS6581_SID *) 54272 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 14336 +Simplifying constant pointer cast (char *) 15360 +Simplifying constant pointer cast (char *) 16384 +Simplifying constant pointer cast (char *) 12288 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -701,52 +701,52 @@ Simplifying constant integer cast $40 Simplifying constant integer cast 1 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $ffff -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $30 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $3f -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $ffff +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $30 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $3f +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 -Inferred type updated to word in main::toD0182_$0 = main::toD0182_$7 & $3fff -Inferred type updated to word in main::toD0182_$1 = main::toD0182_$0 * 4 -Inferred type updated to byte in main::toD0182_$4 = main::toD0182_$3 / 4 -Inferred type updated to byte in main::toD0182_$5 = main::toD0182_$4 & $f -Inferred type updated to byte in main::toD0182_$6 = main::toD0182_$2 | main::toD0182_$5 -Inferred type updated to byte in fire::$13 = fire::$12 / $10 -Inferred type updated to byte in fire::$14 = $30 + fire::$13 -Inferred type updated to byte in makecharset::$10 = makecharset::bc#4 - $40 -Inferred type updated to byte in makecharset::$11 = makecharset::i#4 & 1 -Inferred type updated to byte in makecharset::$12 = makecharset::ii#4 + makecharset::$11 -Inferred type updated to byte in makecharset::$13 = makecharset::$12 & 7 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to unsigned int in main::toD0182_$0 = main::toD0182_$7 & $3fff +Inferred type updated to unsigned int in main::toD0182_$1 = main::toD0182_$0 * 4 +Inferred type updated to char in main::toD0182_$4 = main::toD0182_$3 / 4 +Inferred type updated to char in main::toD0182_$5 = main::toD0182_$4 & $f +Inferred type updated to char in main::toD0182_$6 = main::toD0182_$2 | main::toD0182_$5 +Inferred type updated to char in fire::$13 = fire::$12 / $10 +Inferred type updated to char in fire::$14 = $30 + fire::$13 +Inferred type updated to char in makecharset::$10 = makecharset::bc#4 - $40 +Inferred type updated to char in makecharset::$11 = makecharset::i#4 & 1 +Inferred type updated to char in makecharset::$12 = makecharset::ii#4 + makecharset::$11 +Inferred type updated to char in makecharset::$13 = makecharset::$12 & 7 Inversing boolean not [72] fire::$9 = fire::c#0 <= 2 from [71] fire::$8 = fire::c#0 > 2 Inversing boolean not [143] makecharset::$9 = makecharset::bc#1 <= $3f from [142] makecharset::$8 = makecharset::bc#1 > $3f Successful SSA optimization Pass2UnaryNotSimplification @@ -808,7 +808,7 @@ Identical Phi Values makecharset::charset#11 makecharset::charset#14 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values makecharset::charset#14 makecharset::charset#0 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [146] makecharset::$14 = makecharset::charset#0 + (byte)1*8 +Identified duplicate assignment right side [146] makecharset::$14 = makecharset::charset#0 + (char)1*8 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition fire::$3 [52] if(fire::buffer#4!=fire::$2) goto fire::@2 Simple Condition fire::$9 [58] if(fire::c#0<=2) goto fire::@4 @@ -821,9 +821,9 @@ Simple Condition makecharset::$7 [107] if(makecharset::ii#2<8) goto makecharset: Simple Condition makecharset::$9 [110] if(makecharset::bc#1<=$3f) goto makecharset::@15 Simple Condition fillscreen::$0 [132] if(fillscreen::i#1!=rangelast(0,$3e7)) goto fillscreen::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [50] fire::$2 = BUFFER + (word)$18*$28 -Constant right-side identified [60] fire::buffer#1 = BUFFER + (word)$18*$28 -Constant right-side identified [68] fire::$10 = BUFFER + (word)$19*$28 +Constant right-side identified [50] fire::$2 = BUFFER + (unsigned int)$18*$28 +Constant right-side identified [60] fire::buffer#1 = BUFFER + (unsigned int)$18*$28 +Constant right-side identified [68] fire::$10 = BUFFER + (unsigned int)$19*$28 Successful SSA optimization Pass2ConstantRValueConsolidation Constant fillscreen::screen#0 = BUFFER Constant fillscreen::fill#0 = 0 @@ -841,9 +841,9 @@ Constant fire::screenbase#1 = SCREEN2 Constant main::toD0182_screen#0 = SCREEN2 Constant main::toD0182_gfx#0 = CHARSET Constant fire::buffer#0 = BUFFER -Constant fire::$2 = BUFFER+(word)$18*$28 -Constant fire::buffer#1 = BUFFER+(word)$18*$28 -Constant fire::$10 = BUFFER+(word)$19*$28 +Constant fire::$2 = BUFFER+(unsigned int)$18*$28 +Constant fire::buffer#1 = BUFFER+(unsigned int)$18*$28 +Constant fire::$10 = BUFFER+(unsigned int)$19*$28 Constant makecharset::c#0 = 0 Constant makecharset::bc#0 = 0 Constant makecharset::i#0 = 0 @@ -851,11 +851,11 @@ Constant makecharset::b#0 = 0 Constant makecharset::ii#0 = 0 Constant fillscreen::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 -Constant main::toD0182_$7 = (word)main::toD0182_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 +Constant main::toD0182_$7 = (unsigned int)main::toD0182_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [28] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 -Constant value identified (word)main::toD0182_gfx#0 in [41] main::toD0182_$3 = byte1 (word)main::toD0182_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [28] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0182_gfx#0 in [41] main::toD0182_$3 = byte1 (unsigned int)main::toD0182_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [19] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -886,27 +886,27 @@ Simplifying constant integer cast $3f+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias makecharset::$14 = makecharset::$0 Successful SSA optimization Pass2AliasElimination Constant right-side identified [11] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [14] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [14] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Constant right-side identified [20] main::toD0182_$0 = main::toD0182_$7 & $3fff -Constant right-side identified [23] main::toD0182_$3 = byte1 (word)main::toD0182_gfx#0 -Constant right-side identified [54] makecharset::$14 = makecharset::charset#0 + (byte)1*8 -Constant right-side identified [58] makecharset::font1#0 = makecharset::charset#0 + (word)$40*8 -Constant right-side identified [60] makecharset::$3 = makecharset::charset#0 + (word)$100*8 +Constant right-side identified [23] main::toD0182_$3 = byte1 (unsigned int)main::toD0182_gfx#0 +Constant right-side identified [54] makecharset::$14 = makecharset::charset#0 + (char)1*8 +Constant right-side identified [58] makecharset::font1#0 = makecharset::charset#0 + (unsigned int)$40*8 +Constant right-side identified [60] makecharset::$3 = makecharset::charset#0 + (unsigned int)$100*8 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Constant main::toD0182_$0 = main::toD0182_$7&$3fff -Constant main::toD0182_$3 = byte1 (word)main::toD0182_gfx#0 -Constant makecharset::$14 = makecharset::charset#0+(byte)1*8 -Constant makecharset::font1#0 = makecharset::charset#0+(word)$40*8 -Constant makecharset::$3 = makecharset::charset#0+(word)$100*8 +Constant main::toD0182_$3 = byte1 (unsigned int)main::toD0182_gfx#0 +Constant makecharset::$14 = makecharset::charset#0+(char)1*8 +Constant makecharset::font1#0 = makecharset::charset#0+(unsigned int)$40*8 +Constant makecharset::$3 = makecharset::charset#0+(unsigned int)$100*8 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [11] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [13] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -959,63 +959,63 @@ Constant inlined main::toD0181_screen#0 = SCREEN1 Constant inlined main::toD0181_gfx#0 = CHARSET Constant inlined fillscreen::fill#1 = 0 Constant inlined fillscreen::fill#3 = YELLOW -Constant inlined fire::$10 = BUFFER+(word)$19*$28 -Constant inlined main::toD0182_$4 = byte1 (word)CHARSET/4 -Constant inlined main::toD0182_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0182_$7 = (word)SCREEN2 -Constant inlined main::toD0182_$0 = (word)SCREEN2&$3fff -Constant inlined main::toD0182_$1 = (word)SCREEN2&$3fff*4 +Constant inlined fire::$10 = BUFFER+(unsigned int)$19*$28 +Constant inlined main::toD0182_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined main::toD0182_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0182_$7 = (unsigned int)SCREEN2 +Constant inlined main::toD0182_$0 = (unsigned int)SCREEN2&$3fff +Constant inlined main::toD0182_$1 = (unsigned int)SCREEN2&$3fff*4 Constant inlined makecharset::bc#0 = 0 -Constant inlined main::toD0182_$2 = byte1 (word)SCREEN2&$3fff*4 -Constant inlined main::toD0182_$3 = byte1 (word)CHARSET +Constant inlined main::toD0182_$2 = byte1 (unsigned int)SCREEN2&$3fff*4 +Constant inlined main::toD0182_$3 = byte1 (unsigned int)CHARSET Constant inlined fillscreen::screen#3 = COLS Constant inlined fillscreen::screen#2 = SCREEN2 Constant inlined fillscreen::screen#1 = SCREEN1 Constant inlined fillscreen::screen#0 = BUFFER -Constant inlined fire::$2 = BUFFER+(word)$18*$28 +Constant inlined fire::$2 = BUFFER+(unsigned int)$18*$28 Constant inlined fire::screenbase#1 = SCREEN2 Constant inlined fire::screenbase#0 = SCREEN1 Constant inlined fillscreen::i#0 = 0 -Constant inlined main::toD0181_$7 = (word)SCREEN1 -Constant inlined makecharset::$3 = CHARSET+(word)$100*8 +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN1 +Constant inlined makecharset::$3 = CHARSET+(unsigned int)$100*8 Constant inlined main::toD0182_gfx#0 = CHARSET -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN1&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN1&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN1&$3fff -Constant inlined main::toD0181_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)CHARSET/4 -Constant inlined makecharset::$14 = CHARSET+(byte)1*8 -Constant inlined main::toD0181_$3 = byte1 (word)CHARSET +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN1&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN1&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN1&$3fff +Constant inlined main::toD0181_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined makecharset::$14 = CHARSET+(char)1*8 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)CHARSET Constant inlined makecharset::ii#0 = 0 Constant inlined makecharset::i#0 = 0 -Constant inlined makecharset::font1#0 = CHARSET+(word)$40*8 +Constant inlined makecharset::font1#0 = CHARSET+(unsigned int)$40*8 Constant inlined makecharset::charset#0 = CHARSET Constant inlined main::toD0182_screen#0 = SCREEN2 Constant inlined makecharset::b#0 = 0 -Constant inlined fire::buffer#1 = BUFFER+(word)$18*$28 +Constant inlined fire::buffer#1 = BUFFER+(unsigned int)$18*$28 Constant inlined makecharset::c#0 = 0 Constant inlined fire::buffer#0 = BUFFER Constant inlined fillscreen::fill#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28-1 Simplifying constant integer cast $28-1 @@ -1119,40 +1119,40 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from asm { sei } - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK - [3] call fillscreen + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK + [3] call fillscreen to:main::@5 main::@5: scope:[main] from main [4] phi() - [5] call fillscreen + [5] call fillscreen to:main::@6 main::@6: scope:[main] from main::@5 [6] phi() - [7] call fillscreen + [7] call fillscreen to:main::@7 main::@7: scope:[main] from main::@6 [8] phi() - [9] call fillscreen + [9] call fillscreen to:main::sid_rnd_init1 main::sid_rnd_init1: scope:[main] from main::@7 - [10] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff - [11] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE + [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff + [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE to:main::@2 main::@2: scope:[main] from main::sid_rnd_init1 [12] phi() - [13] call makecharset + [13] call makecharset to:main::@1 main::@1: scope:[main] from main::@2 main::@4 [14] phi() - [15] call fire + [15] call fire to:main::toD0181 main::toD0181: scope:[main] from main::@1 [16] phi() to:main::@3 main::@3: scope:[main] from main::toD0181 [17] *D018 = main::toD0181_return#0 - [18] call fire + [18] call fire to:main::toD0182 main::toD0182: scope:[main] from main::@3 [19] phi() @@ -1161,7 +1161,7 @@ main::@4: scope:[main] from main::toD0182 [20] *D018 = main::toD0182_return#0 to:main::@1 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main main::@5 main::@6 main::@7 [21] fillscreen::screen#6 = phi( main/BUFFER, main::@5/SCREEN1, main::@6/SCREEN2, main::@7/COLS ) [21] fillscreen::fill#5 = phi( main/0, main::@5/0, main::@6/0, main::@7/YELLOW ) @@ -1178,7 +1178,7 @@ fillscreen::@return: scope:[fillscreen] from fillscreen::@1 [27] return to:@return -void makecharset(byte* makecharset::charset) +void makecharset(char *charset) makecharset: scope:[makecharset] from main::@2 [28] phi() to:makecharset::@1 @@ -1187,7 +1187,7 @@ makecharset::@1: scope:[makecharset] from makecharset makecharset::@2 [30] if(makecharset::font#2!=CHARSET+1*8) goto makecharset::@2 to:makecharset::@3 makecharset::@3: scope:[makecharset] from makecharset::@1 makecharset::@4 - [31] makecharset::font1#2 = phi( makecharset::@1/CHARSET+(word)$40*8, makecharset::@4/makecharset::font1#1 ) + [31] makecharset::font1#2 = phi( makecharset::@1/CHARSET+(unsigned int)$40*8, makecharset::@4/makecharset::font1#1 ) [32] if(makecharset::font1#2!=CHARSET+$100*8) goto makecharset::@4 to:makecharset::@5 makecharset::@5: scope:[makecharset] from makecharset::@3 makecharset::@7 @@ -1212,7 +1212,7 @@ makecharset::@8: scope:[makecharset] from makecharset::@11 makecharset::@6 [40] if(makecharset::ii#2<8) goto makecharset::@9 to:makecharset::@10 makecharset::@10: scope:[makecharset] from makecharset::@8 - [41] makecharset::$17 = (word)makecharset::c#2 + [41] makecharset::$17 = (unsigned int)makecharset::c#2 [42] makecharset::$15 = makecharset::$17 << 3 [43] makecharset::$16 = makecharset::$15 + makecharset::i#2 [44] makecharset::$18 = CHARSET+1*8 + makecharset::$16 @@ -1244,7 +1244,7 @@ makecharset::@2: scope:[makecharset] from makecharset::@1 [59] makecharset::font#1 = ++ makecharset::font#2 to:makecharset::@1 -void fire(byte* fire::screenbase) +void fire(char *screenbase) fire: scope:[fire] from main::@1 main::@3 [60] fire::screen#0 = phi( main::@1/SCREEN1, main::@3/SCREEN2 ) [61] fire::screen#12 = fire::screen#0 @@ -1252,21 +1252,21 @@ fire: scope:[fire] from main::@1 main::@3 fire::@1: scope:[fire] from fire fire::@4 [62] fire::screen#4 = phi( fire/fire::screen#12, fire::@4/fire::screen#2 ) [62] fire::buffer#4 = phi( fire/BUFFER, fire::@4/fire::buffer#2 ) - [63] if(fire::buffer#4!=BUFFER+(word)$18*$28) goto fire::@2 + [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2 to:fire::@3 fire::@3: scope:[fire] from fire::@1 - [64] fire::screen#1 = fire::screen#0 + (word)$18*$28 + [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28 to:fire::@6 fire::@6: scope:[fire] from fire::@3 fire::@7 [65] fire::screen#10 = phi( fire::@3/fire::screen#1, fire::@7/fire::screen#3 ) - [65] fire::buffer#10 = phi( fire::@3/BUFFER+(word)$18*$28, fire::@7/fire::buffer#3 ) - [66] if(fire::buffer#10!=BUFFER+(word)$19*$28) goto fire::sid_rnd1 + [65] fire::buffer#10 = phi( fire::@3/BUFFER+(unsigned int)$18*$28, fire::@7/fire::buffer#3 ) + [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1 to:fire::@return fire::@return: scope:[fire] from fire::@6 [67] return to:@return fire::sid_rnd1: scope:[fire] from fire::@6 - [68] fire::sid_rnd1_return#0 = *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) + [68] fire::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) to:fire::@7 fire::@7: scope:[fire] from fire::sid_rnd1 [69] fire::$13 = fire::sid_rnd1_return#0 >> 4 @@ -1296,83 +1296,83 @@ fire::@4: scope:[fire] from fire::@2 fire::@5 VARIABLE REGISTER WEIGHTS -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte fillscreen::fill -byte fillscreen::fill#5 16.833333333333332 -word fillscreen::i -word fillscreen::i#1 151.5 -word fillscreen::i#2 67.33333333333333 -byte* fillscreen::screen -byte* fillscreen::screen#4 67.33333333333333 -byte* fillscreen::screen#5 157.0 -byte* fillscreen::screen#6 11.0 -void fire(byte* fire::screenbase) -byte~ fire::$13 20002.0 -byte~ fire::$14 20002.0 -byte~ fire::$4 20002.0 -byte~ fire::$5 20002.0 -byte~ fire::$6 20002.0 -byte* fire::buffer -byte* fire::buffer#10 6250.625 -byte* fire::buffer#2 20002.0 -byte* fire::buffer#3 20002.0 -byte* fire::buffer#4 7500.750000000001 -byte fire::c -byte fire::c#0 20002.0 -byte fire::c#1 20002.0 -byte fire::c#2 30003.0 -byte* fire::screen -byte* fire::screen#0 13.466666666666667 -byte* fire::screen#1 202.0 -byte* fire::screen#10 4300.571428571429 -byte* fire::screen#12 202.0 -byte* fire::screen#2 10001.0 -byte* fire::screen#3 10001.0 -byte* fire::screen#4 2736.7272727272725 -byte* fire::screenbase -byte fire::sid_rnd1_return -byte fire::sid_rnd1_return#0 20002.0 +void fillscreen(char *screen , char fill) +char fillscreen::fill +char fillscreen::fill#5 // 16.833333333333332 +unsigned int fillscreen::i +unsigned int fillscreen::i#1 // 151.5 +unsigned int fillscreen::i#2 // 67.33333333333333 +char *fillscreen::screen +char *fillscreen::screen#4 // 67.33333333333333 +char *fillscreen::screen#5 // 157.0 +char *fillscreen::screen#6 // 11.0 +void fire(char *screenbase) +char fire::$13 // 20002.0 +char fire::$14 // 20002.0 +char fire::$4 // 20002.0 +char fire::$5 // 20002.0 +char fire::$6 // 20002.0 +char *fire::buffer +char *fire::buffer#10 // 6250.625 +char *fire::buffer#2 // 20002.0 +char *fire::buffer#3 // 20002.0 +char *fire::buffer#4 // 7500.750000000001 +char fire::c +char fire::c#0 // 20002.0 +char fire::c#1 // 20002.0 +char fire::c#2 // 30003.0 +char *fire::screen +char *fire::screen#0 // 13.466666666666667 +char *fire::screen#1 // 202.0 +char *fire::screen#10 // 4300.571428571429 +char *fire::screen#12 // 202.0 +char *fire::screen#2 // 10001.0 +char *fire::screen#3 // 10001.0 +char *fire::screen#4 // 2736.7272727272725 +char *fire::screenbase +char fire::sid_rnd1_return +char fire::sid_rnd1_return#0 // 20002.0 void main() -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -byte* main::toD0182_gfx -byte main::toD0182_return -byte* main::toD0182_screen -void makecharset(byte* makecharset::charset) -byte~ makecharset::$11 20002.0 -byte~ makecharset::$12 20002.0 -byte~ makecharset::$13 20002.0 -word~ makecharset::$15 2002.0 -word~ makecharset::$16 2002.0 -word~ makecharset::$17 2002.0 -byte*~ makecharset::$18 2002.0 -byte makecharset::b -byte makecharset::b#1 20002.0 -byte makecharset::b#2 2583.6666666666665 -byte makecharset::b#6 15001.5 -byte makecharset::bc -byte makecharset::bc#1 20002.0 -byte makecharset::bc#2 4000.4 -byte makecharset::bc#3 2750.5 -byte makecharset::bc#6 1001.0 -byte makecharset::bc#7 15001.5 -byte makecharset::c -byte makecharset::c#1 202.0 -byte makecharset::c#2 490.6666666666667 -byte* makecharset::charset -byte* makecharset::font -byte* makecharset::font#1 202.0 -byte* makecharset::font#2 134.66666666666666 -byte* makecharset::font1 -byte* makecharset::font1#1 202.0 -byte* makecharset::font1#2 134.66666666666666 -byte makecharset::i -byte makecharset::i#1 2002.0 -byte makecharset::i#2 778.0555555555555 -byte makecharset::ii -byte makecharset::ii#1 20002.0 -byte makecharset::ii#2 4000.4 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +char *main::toD0182_gfx +char main::toD0182_return +char *main::toD0182_screen +void makecharset(char *charset) +char makecharset::$11 // 20002.0 +char makecharset::$12 // 20002.0 +char makecharset::$13 // 20002.0 +unsigned int makecharset::$15 // 2002.0 +unsigned int makecharset::$16 // 2002.0 +unsigned int makecharset::$17 // 2002.0 +char *makecharset::$18 // 2002.0 +char makecharset::b +char makecharset::b#1 // 20002.0 +char makecharset::b#2 // 2583.6666666666665 +char makecharset::b#6 // 15001.5 +char makecharset::bc +char makecharset::bc#1 // 20002.0 +char makecharset::bc#2 // 4000.4 +char makecharset::bc#3 // 2750.5 +char makecharset::bc#6 // 1001.0 +char makecharset::bc#7 // 15001.5 +char makecharset::c +char makecharset::c#1 // 202.0 +char makecharset::c#2 // 490.6666666666667 +char *makecharset::charset +char *makecharset::font +char *makecharset::font#1 // 202.0 +char *makecharset::font#2 // 134.66666666666666 +char *makecharset::font1 +char *makecharset::font1#1 // 202.0 +char *makecharset::font1#2 // 134.66666666666666 +char makecharset::i +char makecharset::i#1 // 2002.0 +char makecharset::i#2 // 778.0555555555555 +char makecharset::ii +char makecharset::ii#1 // 20002.0 +char makecharset::ii#2 // 4000.4 Initial phi equivalence classes [ fillscreen::fill#5 ] @@ -1464,10 +1464,10 @@ Allocated zp[1]:41 [ fire::$4 ] Allocated zp[1]:42 [ fire::$5 ] Allocated zp[1]:43 [ fire::$6 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( [ ] { } ) always clobbers reg byte a Statement [17] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [20] *D018 = main::toD0182_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [23] *fillscreen::screen#5 = fillscreen::fill#5 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] ( fillscreen:3 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } fillscreen:5 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } fillscreen:7 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } fillscreen:9 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } ) always clobbers reg byte y @@ -1476,7 +1476,7 @@ Statement [26] if(fillscreen::i#1!=$3e8) goto fillscreen::@1 [ fillscreen::fill# Removing always clobbered register reg byte a as potential for zp[1]:2 [ fillscreen::fill#5 ] Statement [30] if(makecharset::font#2!=CHARSET+1*8) goto makecharset::@2 [ makecharset::font#2 ] ( makecharset:13 [ makecharset::font#2 ] { } ) always clobbers reg byte a Statement [32] if(makecharset::font1#2!=CHARSET+$100*8) goto makecharset::@4 [ makecharset::font1#2 ] ( makecharset:13 [ makecharset::font1#2 ] { } ) always clobbers reg byte a -Statement [41] makecharset::$17 = (word)makecharset::c#2 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] { } ) always clobbers reg byte a +Statement [41] makecharset::$17 = (unsigned int)makecharset::c#2 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ makecharset::c#2 makecharset::c#1 ] Removing always clobbered register reg byte a as potential for zp[1]:12 [ makecharset::i#2 makecharset::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:13 [ makecharset::bc#6 makecharset::bc#3 makecharset::bc#7 makecharset::bc#1 makecharset::bc#2 ] @@ -1501,9 +1501,9 @@ Statement [53] makecharset::b#1 = makecharset::b#2 + makecharset::bittab[makecha Statement [56] *makecharset::font1#2 = $ff [ makecharset::font1#2 ] ( makecharset:13 [ makecharset::font1#2 ] { } ) always clobbers reg byte a reg byte y Statement [58] *makecharset::font#2 = 0 [ makecharset::font#2 ] ( makecharset:13 [ makecharset::font#2 ] { } ) always clobbers reg byte a reg byte y Statement [61] fire::screen#12 = fire::screen#0 [ fire::screen#0 fire::screen#12 ] ( fire:15 [ fire::screen#0 fire::screen#12 ] { } fire:18 [ fire::screen#0 fire::screen#12 ] { } ) always clobbers reg byte a -Statement [63] if(fire::buffer#4!=BUFFER+(word)$18*$28) goto fire::@2 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } ) always clobbers reg byte a -Statement [64] fire::screen#1 = fire::screen#0 + (word)$18*$28 [ fire::screen#1 ] ( fire:15 [ fire::screen#1 ] { } fire:18 [ fire::screen#1 ] { } ) always clobbers reg byte a -Statement [66] if(fire::buffer#10!=BUFFER+(word)$19*$28) goto fire::sid_rnd1 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte a +Statement [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } ) always clobbers reg byte a +Statement [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28 [ fire::screen#1 ] ( fire:15 [ fire::screen#1 ] { } fire:18 [ fire::screen#1 ] { } ) always clobbers reg byte a +Statement [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte a Statement [69] fire::$13 = fire::sid_rnd1_return#0 >> 4 [ fire::buffer#10 fire::screen#10 fire::$13 ] ( fire:15 [ fire::buffer#10 fire::screen#10 fire::$13 ] { } fire:18 [ fire::buffer#10 fire::screen#10 fire::$13 ] { } ) always clobbers reg byte a Statement [71] *fire::buffer#10 = fire::$14 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte y Statement [72] *fire::screen#10 = *fire::buffer#10 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte a reg byte y @@ -1514,10 +1514,10 @@ Statement [78] fire::c#0 = fire::$6 >> 2 [ fire::screen#0 fire::buffer#4 fire::s Statement [80] fire::c#1 = fire::c#0 - 3 [ fire::screen#0 fire::buffer#4 fire::screen#4 fire::c#1 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 fire::c#1 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 fire::c#1 ] { } ) always clobbers reg byte a Statement [82] *fire::buffer#4 = fire::c#2 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } ) always clobbers reg byte y Statement [83] *fire::screen#4 = *fire::buffer#4 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE [ ] ( [ ] { } ) always clobbers reg byte a Statement [17] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [20] *D018 = main::toD0182_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [23] *fillscreen::screen#5 = fillscreen::fill#5 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] ( fillscreen:3 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } fillscreen:5 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } fillscreen:7 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } fillscreen:9 [ fillscreen::fill#5 fillscreen::screen#5 fillscreen::i#2 ] { } ) always clobbers reg byte a reg byte y @@ -1526,7 +1526,7 @@ Statement [30] if(makecharset::font#2!=CHARSET+1*8) goto makecharset::@2 [ makec Statement [32] if(makecharset::font1#2!=CHARSET+$100*8) goto makecharset::@4 [ makecharset::font1#2 ] ( makecharset:13 [ makecharset::font1#2 ] { } ) always clobbers reg byte a Statement [34] if(makecharset::c#2<$40) goto makecharset::@6 [ makecharset::c#2 ] ( makecharset:13 [ makecharset::c#2 ] { } ) always clobbers reg byte a Statement [37] if(makecharset::i#2<8) goto makecharset::@8 [ makecharset::c#2 makecharset::i#2 makecharset::bc#6 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#6 ] { } ) always clobbers reg byte a -Statement [41] makecharset::$17 = (word)makecharset::c#2 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] { } ) always clobbers reg byte a +Statement [41] makecharset::$17 = (unsigned int)makecharset::c#2 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$17 ] { } ) always clobbers reg byte a Statement [42] makecharset::$15 = makecharset::$17 << 3 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$15 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$15 ] { } ) always clobbers reg byte a Statement [43] makecharset::$16 = makecharset::$15 + makecharset::i#2 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$16 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$16 ] { } ) always clobbers reg byte a Statement [44] makecharset::$18 = CHARSET+1*8 + makecharset::$16 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$18 ] ( makecharset:13 [ makecharset::c#2 makecharset::i#2 makecharset::bc#3 makecharset::b#2 makecharset::$18 ] { } ) always clobbers reg byte a @@ -1539,9 +1539,9 @@ Statement [53] makecharset::b#1 = makecharset::b#2 + makecharset::bittab[makecha Statement [56] *makecharset::font1#2 = $ff [ makecharset::font1#2 ] ( makecharset:13 [ makecharset::font1#2 ] { } ) always clobbers reg byte a reg byte y Statement [58] *makecharset::font#2 = 0 [ makecharset::font#2 ] ( makecharset:13 [ makecharset::font#2 ] { } ) always clobbers reg byte a reg byte y Statement [61] fire::screen#12 = fire::screen#0 [ fire::screen#0 fire::screen#12 ] ( fire:15 [ fire::screen#0 fire::screen#12 ] { } fire:18 [ fire::screen#0 fire::screen#12 ] { } ) always clobbers reg byte a -Statement [63] if(fire::buffer#4!=BUFFER+(word)$18*$28) goto fire::@2 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } ) always clobbers reg byte a -Statement [64] fire::screen#1 = fire::screen#0 + (word)$18*$28 [ fire::screen#1 ] ( fire:15 [ fire::screen#1 ] { } fire:18 [ fire::screen#1 ] { } ) always clobbers reg byte a -Statement [66] if(fire::buffer#10!=BUFFER+(word)$19*$28) goto fire::sid_rnd1 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte a +Statement [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] ( fire:15 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } fire:18 [ fire::screen#0 fire::buffer#4 fire::screen#4 ] { } ) always clobbers reg byte a +Statement [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28 [ fire::screen#1 ] ( fire:15 [ fire::screen#1 ] { } fire:18 [ fire::screen#1 ] { } ) always clobbers reg byte a +Statement [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte a Statement [69] fire::$13 = fire::sid_rnd1_return#0 >> 4 [ fire::buffer#10 fire::screen#10 fire::$13 ] ( fire:15 [ fire::buffer#10 fire::screen#10 fire::$13 ] { } fire:18 [ fire::buffer#10 fire::screen#10 fire::$13 ] { } ) always clobbers reg byte a Statement [71] *fire::buffer#10 = fire::$14 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte y Statement [72] *fire::screen#10 = *fire::buffer#10 [ fire::buffer#10 fire::screen#10 ] ( fire:15 [ fire::buffer#10 fire::screen#10 ] { } fire:18 [ fire::buffer#10 fire::screen#10 ] { } ) always clobbers reg byte a reg byte y @@ -1681,13 +1681,13 @@ main: { .const toD0182_return = (>(SCREEN2&$3fff)*4)|(>CHARSET)/4&$f // asm { sei } sei - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR - // [3] call fillscreen + // [3] call fillscreen // [21] phi from main to fillscreen [phi:main->fillscreen] fillscreen_from_main: // [21] phi fillscreen::screen#6 = BUFFER [phi:main->fillscreen#0] -- pbuz1=pbuc1 @@ -1703,7 +1703,7 @@ main: { jmp __b5 // main::@5 __b5: - // [5] call fillscreen + // [5] call fillscreen // [21] phi from main::@5 to fillscreen [phi:main::@5->fillscreen] fillscreen_from___b5: // [21] phi fillscreen::screen#6 = SCREEN1 [phi:main::@5->fillscreen#0] -- pbuz1=pbuc1 @@ -1719,7 +1719,7 @@ main: { jmp __b6 // main::@6 __b6: - // [7] call fillscreen + // [7] call fillscreen // [21] phi from main::@6 to fillscreen [phi:main::@6->fillscreen] fillscreen_from___b6: // [21] phi fillscreen::screen#6 = SCREEN2 [phi:main::@6->fillscreen#0] -- pbuz1=pbuc1 @@ -1735,7 +1735,7 @@ main: { jmp __b7 // main::@7 __b7: - // [9] call fillscreen + // [9] call fillscreen // [21] phi from main::@7 to fillscreen [phi:main::@7->fillscreen] fillscreen_from___b7: // [21] phi fillscreen::screen#6 = COLS [phi:main::@7->fillscreen#0] -- pbuz1=pbuc1 @@ -1749,12 +1749,12 @@ main: { jmp sid_rnd_init1 // main::sid_rnd_init1 sid_rnd_init1: - // [10] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff -- _deref_pwuc1=vwuc2 + // [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ lda #>$ffff sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1 - // [11] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 + // [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL // [12] phi from main::sid_rnd_init1 to main::@2 [phi:main::sid_rnd_init1->main::@2] @@ -1762,7 +1762,7 @@ main: { jmp __b2 // main::@2 __b2: - // [13] call makecharset + // [13] call makecharset // [28] phi from main::@2 to makecharset [phi:main::@2->makecharset] makecharset_from___b2: jsr makecharset @@ -1772,7 +1772,7 @@ main: { jmp __b1 // main::@1 __b1: - // [15] call fire + // [15] call fire // [60] phi from main::@1 to fire [phi:main::@1->fire] fire_from___b1: // [60] phi fire::screen#0 = SCREEN1 [phi:main::@1->fire#0] -- pbuz1=pbuc1 @@ -1792,7 +1792,7 @@ main: { // [17] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - // [18] call fire + // [18] call fire // [60] phi from main::@3 to fire [phi:main::@3->fire] fire_from___b3: // [60] phi fire::screen#0 = SCREEN2 [phi:main::@3->fire#0] -- pbuz1=pbuc1 @@ -1816,7 +1816,7 @@ main: { } // fillscreen // Fill a screen (1000 chars) with a specific char -// fillscreen(byte* zp(5) screen, byte register(X) fill) +// void fillscreen(__zp(5) char *screen, __register(X) char fill) fillscreen: { .label screen = 5 .label i = 7 @@ -1865,6 +1865,7 @@ fillscreen: { } // makecharset // Make a fire-friendly charset in chars $00-$3f of the passed charset +// void makecharset(char *charset) makecharset: { .label __13 = $d .label __15 = $b @@ -1895,7 +1896,7 @@ makecharset: { bne __b2 // [31] phi from makecharset::@1 to makecharset::@3 [phi:makecharset::@1->makecharset::@3] __b3_from___b1: - // [31] phi makecharset::font1#2 = CHARSET+(word)$40*8 [phi:makecharset::@1->makecharset::@3#0] -- pbuz1=pbuc1 + // [31] phi makecharset::font1#2 = CHARSET+(unsigned int)$40*8 [phi:makecharset::@1->makecharset::@3#0] -- pbuz1=pbuc1 lda #CHARSET+$40*8 @@ -1968,7 +1969,7 @@ makecharset: { jmp __b10 // makecharset::@10 __b10: - // [41] makecharset::$17 = (word)makecharset::c#2 -- vwuz1=_word_vbuz2 + // [41] makecharset::$17 = (unsigned int)makecharset::c#2 -- vwuz1=_word_vbuz2 lda.z c sta.z __17 lda #0 @@ -2090,6 +2091,7 @@ makecharset: { .segment Code // fire // Animate the fire on the passed screen. Uses BUFFER to store the current values. +// void fire(char *screenbase) fire: { .label screen = $b .label screen_1 = 7 @@ -2111,7 +2113,7 @@ fire: { jmp __b1 // fire::@1 __b1: - // [63] if(fire::buffer#4!=BUFFER+(word)$18*$28) goto fire::@2 -- pbuz1_neq_pbuc1_then_la1 + // [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z buffer+1 cmp #>BUFFER+$18*$28 bne __b2 @@ -2121,7 +2123,7 @@ fire: { jmp __b3 // fire::@3 __b3: - // [64] fire::screen#1 = fire::screen#0 + (word)$18*$28 -- pbuz1=pbuz1_plus_vwuc1 + // [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28 -- pbuz1=pbuz1_plus_vwuc1 lda.z screen clc adc #<$18*$28 @@ -2132,7 +2134,7 @@ fire: { // [65] phi from fire::@3 to fire::@6 [phi:fire::@3->fire::@6] __b6_from___b3: // [65] phi fire::screen#10 = fire::screen#1 [phi:fire::@3->fire::@6#0] -- register_copy - // [65] phi fire::buffer#10 = BUFFER+(word)$18*$28 [phi:fire::@3->fire::@6#1] -- pbuz1=pbuc1 + // [65] phi fire::buffer#10 = BUFFER+(unsigned int)$18*$28 [phi:fire::@3->fire::@6#1] -- pbuz1=pbuc1 lda #BUFFER+$18*$28 @@ -2140,7 +2142,7 @@ fire: { jmp __b6 // fire::@6 __b6: - // [66] if(fire::buffer#10!=BUFFER+(word)$19*$28) goto fire::sid_rnd1 -- pbuz1_neq_pbuc1_then_la1 + // [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1 -- pbuz1_neq_pbuc1_then_la1 lda.z buffer_1+1 cmp #>BUFFER+$19*$28 bne sid_rnd1 @@ -2154,7 +2156,7 @@ fire: { rts // fire::sid_rnd1 sid_rnd1: - // [68] fire::sid_rnd1_return#0 = *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) -- vbuaa=_deref_pbuc1 + // [68] fire::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) -- vbuaa=_deref_pbuc1 lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC jmp __b7 // fire::@7 @@ -2354,108 +2356,108 @@ Relabelling long label __b8_from___b6 to __b10 Succesful ASM optimization Pass5RelabelLongLabels Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination -Fixing long branch [139] bne __b2 to beq -Fixing long branch [144] bne __b2 to beq -Fixing long branch [154] bne __b4 to beq -Fixing long branch [159] bne __b4 to beq +Fixing long branch [140] bne __b2 to beq +Fixing long branch [145] bne __b2 to beq +Fixing long branch [155] bne __b4 to beq +Fixing long branch [160] bne __b4 to beq FINAL SYMBOL TABLE -constant const byte BLACK = 0 -constant byte* BUFFER = (byte*) 16384 -constant byte* CHARSET = (byte*) 12288 -constant byte* const COLS = (byte*) 55296 -constant byte* const D018 = (byte*) 53272 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12 -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b -constant byte* SCREEN1 = (byte*) 14336 -constant byte* SCREEN2 = (byte*) 15360 -constant struct MOS6581_SID* const SID = (struct MOS6581_SID*) 54272 -constant const byte SID_CONTROL_NOISE = $80 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte YELLOW = 7 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte fillscreen::fill -byte fillscreen::fill#5 reg byte x 16.833333333333332 -word fillscreen::i -word fillscreen::i#1 i zp[2]:7 151.5 -word fillscreen::i#2 i zp[2]:7 67.33333333333333 -byte* fillscreen::screen -byte* fillscreen::screen#4 screen zp[2]:5 67.33333333333333 -byte* fillscreen::screen#5 screen zp[2]:5 157.0 -byte* fillscreen::screen#6 screen zp[2]:5 11.0 -void fire(byte* fire::screenbase) -byte~ fire::$13 reg byte a 20002.0 -byte~ fire::$14 reg byte a 20002.0 -byte~ fire::$4 reg byte a 20002.0 -byte~ fire::$5 reg byte a 20002.0 -byte~ fire::$6 reg byte a 20002.0 -byte* fire::buffer -byte* fire::buffer#10 buffer_1 zp[2]:9 6250.625 -byte* fire::buffer#2 buffer zp[2]:5 20002.0 -byte* fire::buffer#3 buffer_1 zp[2]:9 20002.0 -byte* fire::buffer#4 buffer zp[2]:5 7500.750000000001 -byte fire::c -byte fire::c#0 reg byte a 20002.0 -byte fire::c#1 reg byte a 20002.0 -byte fire::c#2 reg byte a 30003.0 -byte* fire::screen -byte* fire::screen#0 screen zp[2]:11 13.466666666666667 -byte* fire::screen#1 screen zp[2]:11 202.0 -byte* fire::screen#10 screen zp[2]:11 4300.571428571429 -byte* fire::screen#12 screen_1 zp[2]:7 202.0 -byte* fire::screen#2 screen_1 zp[2]:7 10001.0 -byte* fire::screen#3 screen zp[2]:11 10001.0 -byte* fire::screen#4 screen_1 zp[2]:7 2736.7272727272725 -byte* fire::screenbase -byte fire::sid_rnd1_return -byte fire::sid_rnd1_return#0 reg byte a 20002.0 +__constant const char BLACK = 0 +__constant char *BUFFER = (char *) 16384 +__constant char *CHARSET = (char *) 12288 +__constant char * const COLS = (char *) 55296 +__constant char * const D018 = (char *) 53272 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12 +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b +__constant char *SCREEN1 = (char *) 14336 +__constant char *SCREEN2 = (char *) 15360 +__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *) 54272 +__constant const char SID_CONTROL_NOISE = $80 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char YELLOW = 7 +void fillscreen(char *screen , char fill) +char fillscreen::fill +char fillscreen::fill#5 // reg byte x 16.833333333333332 +unsigned int fillscreen::i +unsigned int fillscreen::i#1 // i zp[2]:7 151.5 +unsigned int fillscreen::i#2 // i zp[2]:7 67.33333333333333 +char *fillscreen::screen +char *fillscreen::screen#4 // screen zp[2]:5 67.33333333333333 +char *fillscreen::screen#5 // screen zp[2]:5 157.0 +char *fillscreen::screen#6 // screen zp[2]:5 11.0 +void fire(char *screenbase) +char fire::$13 // reg byte a 20002.0 +char fire::$14 // reg byte a 20002.0 +char fire::$4 // reg byte a 20002.0 +char fire::$5 // reg byte a 20002.0 +char fire::$6 // reg byte a 20002.0 +char *fire::buffer +char *fire::buffer#10 // buffer_1 zp[2]:9 6250.625 +char *fire::buffer#2 // buffer zp[2]:5 20002.0 +char *fire::buffer#3 // buffer_1 zp[2]:9 20002.0 +char *fire::buffer#4 // buffer zp[2]:5 7500.750000000001 +char fire::c +char fire::c#0 // reg byte a 20002.0 +char fire::c#1 // reg byte a 20002.0 +char fire::c#2 // reg byte a 30003.0 +char *fire::screen +char *fire::screen#0 // screen zp[2]:11 13.466666666666667 +char *fire::screen#1 // screen zp[2]:11 202.0 +char *fire::screen#10 // screen zp[2]:11 4300.571428571429 +char *fire::screen#12 // screen_1 zp[2]:7 202.0 +char *fire::screen#2 // screen_1 zp[2]:7 10001.0 +char *fire::screen#3 // screen zp[2]:11 10001.0 +char *fire::screen#4 // screen_1 zp[2]:7 2736.7272727272725 +char *fire::screenbase +char fire::sid_rnd1_return +char fire::sid_rnd1_return#0 // reg byte a 20002.0 void main() -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN1&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen -byte* main::toD0182_gfx -byte main::toD0182_return -constant byte main::toD0182_return#0 toD0182_return = byte1 (word)SCREEN2&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0182_screen -void makecharset(byte* makecharset::charset) -byte~ makecharset::$11 reg byte a 20002.0 -byte~ makecharset::$12 reg byte a 20002.0 -byte~ makecharset::$13 zp[1]:13 20002.0 -word~ makecharset::$15 zp[2]:11 2002.0 -word~ makecharset::$16 zp[2]:11 2002.0 -word~ makecharset::$17 zp[2]:11 2002.0 -byte*~ makecharset::$18 zp[2]:11 2002.0 -byte makecharset::b -byte makecharset::b#1 reg byte y 20002.0 -byte makecharset::b#2 reg byte y 2583.6666666666665 -byte makecharset::b#6 reg byte y 15001.5 -byte makecharset::bc -byte makecharset::bc#1 reg byte x 20002.0 -byte makecharset::bc#2 reg byte x 4000.4 -byte makecharset::bc#3 reg byte x 2750.5 -byte makecharset::bc#6 reg byte x 1001.0 -byte makecharset::bc#7 reg byte x 15001.5 -constant const byte* makecharset::bittab[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte makecharset::c -byte makecharset::c#1 c zp[1]:2 202.0 -byte makecharset::c#2 c zp[1]:2 490.6666666666667 -byte* makecharset::charset -byte* makecharset::font -byte* makecharset::font#1 font zp[2]:5 202.0 -byte* makecharset::font#2 font zp[2]:5 134.66666666666666 -byte* makecharset::font1 -byte* makecharset::font1#1 font1 zp[2]:7 202.0 -byte* makecharset::font1#2 font1 zp[2]:7 134.66666666666666 -byte makecharset::i -byte makecharset::i#1 i zp[1]:3 2002.0 -byte makecharset::i#2 i zp[1]:3 778.0555555555555 -byte makecharset::ii -byte makecharset::ii#1 ii zp[1]:4 20002.0 -byte makecharset::ii#2 ii zp[1]:4 4000.4 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN1&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen +char *main::toD0182_gfx +char main::toD0182_return +__constant char main::toD0182_return#0 = byte1 (unsigned int)SCREEN2&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0182_return +char *main::toD0182_screen +void makecharset(char *charset) +char makecharset::$11 // reg byte a 20002.0 +char makecharset::$12 // reg byte a 20002.0 +char makecharset::$13 // zp[1]:13 20002.0 +unsigned int makecharset::$15 // zp[2]:11 2002.0 +unsigned int makecharset::$16 // zp[2]:11 2002.0 +unsigned int makecharset::$17 // zp[2]:11 2002.0 +char *makecharset::$18 // zp[2]:11 2002.0 +char makecharset::b +char makecharset::b#1 // reg byte y 20002.0 +char makecharset::b#2 // reg byte y 2583.6666666666665 +char makecharset::b#6 // reg byte y 15001.5 +char makecharset::bc +char makecharset::bc#1 // reg byte x 20002.0 +char makecharset::bc#2 // reg byte x 4000.4 +char makecharset::bc#3 // reg byte x 2750.5 +char makecharset::bc#6 // reg byte x 1001.0 +char makecharset::bc#7 // reg byte x 15001.5 +__constant const char makecharset::bittab[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char makecharset::c +char makecharset::c#1 // c zp[1]:2 202.0 +char makecharset::c#2 // c zp[1]:2 490.6666666666667 +char *makecharset::charset +char *makecharset::font +char *makecharset::font#1 // font zp[2]:5 202.0 +char *makecharset::font#2 // font zp[2]:5 134.66666666666666 +char *makecharset::font1 +char *makecharset::font1#1 // font1 zp[2]:7 202.0 +char *makecharset::font1#2 // font1 zp[2]:7 134.66666666666666 +char makecharset::i +char makecharset::i#1 // i zp[1]:3 2002.0 +char makecharset::i#2 // i zp[1]:3 778.0555555555555 +char makecharset::ii +char makecharset::ii#1 // ii zp[1]:4 20002.0 +char makecharset::ii#2 // ii zp[1]:4 4000.4 reg byte x [ fillscreen::fill#5 ] zp[1]:2 [ makecharset::c#2 makecharset::c#1 ] @@ -2530,14 +2532,14 @@ main: { // asm { sei } sei // VICII->BORDER_COLOR = BLACK - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->BG_COLOR = BLACK - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK -- _deref_pbuc1=vbuc2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // fillscreen(BUFFER, 00) - // [3] call fillscreen + // [3] call fillscreen // [21] phi from main to fillscreen [phi:main->fillscreen] // [21] phi fillscreen::screen#6 = BUFFER [phi:main->fillscreen#0] -- pbuz1=pbuc1 lda #main::@5] // main::@5 // fillscreen(SCREEN1, 00) - // [5] call fillscreen + // [5] call fillscreen // [21] phi from main::@5 to fillscreen [phi:main::@5->fillscreen] // [21] phi fillscreen::screen#6 = SCREEN1 [phi:main::@5->fillscreen#0] -- pbuz1=pbuc1 lda #main::@6] // main::@6 // fillscreen(SCREEN2, 00) - // [7] call fillscreen + // [7] call fillscreen // [21] phi from main::@6 to fillscreen [phi:main::@6->fillscreen] // [21] phi fillscreen::screen#6 = SCREEN2 [phi:main::@6->fillscreen#0] -- pbuz1=pbuc1 lda #main::@7] // main::@7 // fillscreen(COLS, YELLOW) - // [9] call fillscreen + // [9] call fillscreen // [21] phi from main::@7 to fillscreen [phi:main::@7->fillscreen] // [21] phi fillscreen::screen#6 = COLS [phi:main::@7->fillscreen#0] -- pbuz1=pbuc1 lda #CH3_FREQ = 0xffff - // [10] *((word*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff -- _deref_pwuc1=vwuc2 + // [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ lda #>$ffff sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ+1 // SID->CH3_CONTROL = SID_CONTROL_NOISE - // [11] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 + // [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL // [12] phi from main::sid_rnd_init1 to main::@2 [phi:main::sid_rnd_init1->main::@2] // main::@2 // makecharset(CHARSET) - // [13] call makecharset + // [13] call makecharset // [28] phi from main::@2 to makecharset [phi:main::@2->makecharset] jsr makecharset // [14] phi from main::@2 main::@4 to main::@1 [phi:main::@2/main::@4->main::@1] // main::@1 __b1: // fire(SCREEN1) - // [15] call fire + // [15] call fire // [60] phi from main::@1 to fire [phi:main::@1->fire] // [60] phi fire::screen#0 = SCREEN1 [phi:main::@1->fire#0] -- pbuz1=pbuc1 lda #fire] // [60] phi fire::screen#0 = SCREEN2 [phi:main::@3->fire#0] -- pbuz1=pbuc1 lda #makecharset::@3] - // [31] phi makecharset::font1#2 = CHARSET+(word)$40*8 [phi:makecharset::@1->makecharset::@3#0] -- pbuz1=pbuc1 + // [31] phi makecharset::font1#2 = CHARSET+(unsigned int)$40*8 [phi:makecharset::@1->makecharset::@3#0] -- pbuz1=pbuc1 lda #CHARSET+$40*8 @@ -2792,7 +2795,7 @@ makecharset: { bcc __b9 // makecharset::@10 // ((unsigned short)c) << 3 - // [41] makecharset::$17 = (word)makecharset::c#2 -- vwuz1=_word_vbuz2 + // [41] makecharset::$17 = (unsigned int)makecharset::c#2 -- vwuz1=_word_vbuz2 lda.z c sta.z __17 lda #0 @@ -2920,6 +2923,7 @@ makecharset: { .segment Code // fire // Animate the fire on the passed screen. Uses BUFFER to store the current values. +// void fire(char *screenbase) fire: { .label screen = $b .label screen_1 = 7 @@ -2940,7 +2944,7 @@ fire: { // fire::@1 __b1: // while (buffer != (BUFFER + (24 * 40))) - // [63] if(fire::buffer#4!=BUFFER+(word)$18*$28) goto fire::@2 -- pbuz1_neq_pbuc1_then_la1 + // [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z buffer+1 cmp #>BUFFER+$18*$28 bne __b2 @@ -2949,7 +2953,7 @@ fire: { bne __b2 // fire::@3 // screen = (screenbase + (24 * 40)) - // [64] fire::screen#1 = fire::screen#0 + (word)$18*$28 -- pbuz1=pbuz1_plus_vwuc1 + // [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28 -- pbuz1=pbuz1_plus_vwuc1 lda.z screen clc adc #<$18*$28 @@ -2959,7 +2963,7 @@ fire: { sta.z screen+1 // [65] phi from fire::@3 to fire::@6 [phi:fire::@3->fire::@6] // [65] phi fire::screen#10 = fire::screen#1 [phi:fire::@3->fire::@6#0] -- register_copy - // [65] phi fire::buffer#10 = BUFFER+(word)$18*$28 [phi:fire::@3->fire::@6#1] -- pbuz1=pbuc1 + // [65] phi fire::buffer#10 = BUFFER+(unsigned int)$18*$28 [phi:fire::@3->fire::@6#1] -- pbuz1=pbuc1 lda #BUFFER+$18*$28 @@ -2967,7 +2971,7 @@ fire: { // fire::@6 __b6: // for(; buffer != (BUFFER+(25*40)); ++screen, ++buffer) - // [66] if(fire::buffer#10!=BUFFER+(word)$19*$28) goto fire::sid_rnd1 -- pbuz1_neq_pbuc1_then_la1 + // [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1 -- pbuz1_neq_pbuc1_then_la1 lda.z buffer_1+1 cmp #>BUFFER+$19*$28 bne sid_rnd1 @@ -2981,7 +2985,7 @@ fire: { // fire::sid_rnd1 sid_rnd1: // return SID->CH3_OSC; - // [68] fire::sid_rnd1_return#0 = *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) -- vbuaa=_deref_pbuc1 + // [68] fire::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC) -- vbuaa=_deref_pbuc1 lda SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC // fire::@7 // (sid_rnd())/$10 diff --git a/src/test/ref/examples/c64/fire/fire.sym b/src/test/ref/examples/c64/fire/fire.sym index 9721437a8..896e1d41a 100644 --- a/src/test/ref/examples/c64/fire/fire.sym +++ b/src/test/ref/examples/c64/fire/fire.sym @@ -1,99 +1,99 @@ -constant const byte BLACK = 0 -constant byte* BUFFER = (byte*) 16384 -constant byte* CHARSET = (byte*) 12288 -constant byte* const COLS = (byte*) 55296 -constant byte* const D018 = (byte*) 53272 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12 -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e -constant byte OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b -constant byte* SCREEN1 = (byte*) 14336 -constant byte* SCREEN2 = (byte*) 15360 -constant struct MOS6581_SID* const SID = (struct MOS6581_SID*) 54272 -constant const byte SID_CONTROL_NOISE = $80 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte YELLOW = 7 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte fillscreen::fill -byte fillscreen::fill#5 reg byte x 16.833333333333332 -word fillscreen::i -word fillscreen::i#1 i zp[2]:7 151.5 -word fillscreen::i#2 i zp[2]:7 67.33333333333333 -byte* fillscreen::screen -byte* fillscreen::screen#4 screen zp[2]:5 67.33333333333333 -byte* fillscreen::screen#5 screen zp[2]:5 157.0 -byte* fillscreen::screen#6 screen zp[2]:5 11.0 -void fire(byte* fire::screenbase) -byte~ fire::$13 reg byte a 20002.0 -byte~ fire::$14 reg byte a 20002.0 -byte~ fire::$4 reg byte a 20002.0 -byte~ fire::$5 reg byte a 20002.0 -byte~ fire::$6 reg byte a 20002.0 -byte* fire::buffer -byte* fire::buffer#10 buffer_1 zp[2]:9 6250.625 -byte* fire::buffer#2 buffer zp[2]:5 20002.0 -byte* fire::buffer#3 buffer_1 zp[2]:9 20002.0 -byte* fire::buffer#4 buffer zp[2]:5 7500.750000000001 -byte fire::c -byte fire::c#0 reg byte a 20002.0 -byte fire::c#1 reg byte a 20002.0 -byte fire::c#2 reg byte a 30003.0 -byte* fire::screen -byte* fire::screen#0 screen zp[2]:11 13.466666666666667 -byte* fire::screen#1 screen zp[2]:11 202.0 -byte* fire::screen#10 screen zp[2]:11 4300.571428571429 -byte* fire::screen#12 screen_1 zp[2]:7 202.0 -byte* fire::screen#2 screen_1 zp[2]:7 10001.0 -byte* fire::screen#3 screen zp[2]:11 10001.0 -byte* fire::screen#4 screen_1 zp[2]:7 2736.7272727272725 -byte* fire::screenbase -byte fire::sid_rnd1_return -byte fire::sid_rnd1_return#0 reg byte a 20002.0 +__constant const char BLACK = 0 +__constant char *BUFFER = (char *) 16384 +__constant char *CHARSET = (char *) 12288 +__constant char * const COLS = (char *) 55296 +__constant char * const D018 = (char *) 53272 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12 +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e +__constant char OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b +__constant char *SCREEN1 = (char *) 14336 +__constant char *SCREEN2 = (char *) 15360 +__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *) 54272 +__constant const char SID_CONTROL_NOISE = $80 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char YELLOW = 7 +void fillscreen(char *screen , char fill) +char fillscreen::fill +char fillscreen::fill#5 // reg byte x 16.833333333333332 +unsigned int fillscreen::i +unsigned int fillscreen::i#1 // i zp[2]:7 151.5 +unsigned int fillscreen::i#2 // i zp[2]:7 67.33333333333333 +char *fillscreen::screen +char *fillscreen::screen#4 // screen zp[2]:5 67.33333333333333 +char *fillscreen::screen#5 // screen zp[2]:5 157.0 +char *fillscreen::screen#6 // screen zp[2]:5 11.0 +void fire(char *screenbase) +char fire::$13 // reg byte a 20002.0 +char fire::$14 // reg byte a 20002.0 +char fire::$4 // reg byte a 20002.0 +char fire::$5 // reg byte a 20002.0 +char fire::$6 // reg byte a 20002.0 +char *fire::buffer +char *fire::buffer#10 // buffer_1 zp[2]:9 6250.625 +char *fire::buffer#2 // buffer zp[2]:5 20002.0 +char *fire::buffer#3 // buffer_1 zp[2]:9 20002.0 +char *fire::buffer#4 // buffer zp[2]:5 7500.750000000001 +char fire::c +char fire::c#0 // reg byte a 20002.0 +char fire::c#1 // reg byte a 20002.0 +char fire::c#2 // reg byte a 30003.0 +char *fire::screen +char *fire::screen#0 // screen zp[2]:11 13.466666666666667 +char *fire::screen#1 // screen zp[2]:11 202.0 +char *fire::screen#10 // screen zp[2]:11 4300.571428571429 +char *fire::screen#12 // screen_1 zp[2]:7 202.0 +char *fire::screen#2 // screen_1 zp[2]:7 10001.0 +char *fire::screen#3 // screen zp[2]:11 10001.0 +char *fire::screen#4 // screen_1 zp[2]:7 2736.7272727272725 +char *fire::screenbase +char fire::sid_rnd1_return +char fire::sid_rnd1_return#0 // reg byte a 20002.0 void main() -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN1&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen -byte* main::toD0182_gfx -byte main::toD0182_return -constant byte main::toD0182_return#0 toD0182_return = byte1 (word)SCREEN2&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0182_screen -void makecharset(byte* makecharset::charset) -byte~ makecharset::$11 reg byte a 20002.0 -byte~ makecharset::$12 reg byte a 20002.0 -byte~ makecharset::$13 zp[1]:13 20002.0 -word~ makecharset::$15 zp[2]:11 2002.0 -word~ makecharset::$16 zp[2]:11 2002.0 -word~ makecharset::$17 zp[2]:11 2002.0 -byte*~ makecharset::$18 zp[2]:11 2002.0 -byte makecharset::b -byte makecharset::b#1 reg byte y 20002.0 -byte makecharset::b#2 reg byte y 2583.6666666666665 -byte makecharset::b#6 reg byte y 15001.5 -byte makecharset::bc -byte makecharset::bc#1 reg byte x 20002.0 -byte makecharset::bc#2 reg byte x 4000.4 -byte makecharset::bc#3 reg byte x 2750.5 -byte makecharset::bc#6 reg byte x 1001.0 -byte makecharset::bc#7 reg byte x 15001.5 -constant const byte* makecharset::bittab[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte makecharset::c -byte makecharset::c#1 c zp[1]:2 202.0 -byte makecharset::c#2 c zp[1]:2 490.6666666666667 -byte* makecharset::charset -byte* makecharset::font -byte* makecharset::font#1 font zp[2]:5 202.0 -byte* makecharset::font#2 font zp[2]:5 134.66666666666666 -byte* makecharset::font1 -byte* makecharset::font1#1 font1 zp[2]:7 202.0 -byte* makecharset::font1#2 font1 zp[2]:7 134.66666666666666 -byte makecharset::i -byte makecharset::i#1 i zp[1]:3 2002.0 -byte makecharset::i#2 i zp[1]:3 778.0555555555555 -byte makecharset::ii -byte makecharset::ii#1 ii zp[1]:4 20002.0 -byte makecharset::ii#2 ii zp[1]:4 4000.4 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN1&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen +char *main::toD0182_gfx +char main::toD0182_return +__constant char main::toD0182_return#0 = byte1 (unsigned int)SCREEN2&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0182_return +char *main::toD0182_screen +void makecharset(char *charset) +char makecharset::$11 // reg byte a 20002.0 +char makecharset::$12 // reg byte a 20002.0 +char makecharset::$13 // zp[1]:13 20002.0 +unsigned int makecharset::$15 // zp[2]:11 2002.0 +unsigned int makecharset::$16 // zp[2]:11 2002.0 +unsigned int makecharset::$17 // zp[2]:11 2002.0 +char *makecharset::$18 // zp[2]:11 2002.0 +char makecharset::b +char makecharset::b#1 // reg byte y 20002.0 +char makecharset::b#2 // reg byte y 2583.6666666666665 +char makecharset::b#6 // reg byte y 15001.5 +char makecharset::bc +char makecharset::bc#1 // reg byte x 20002.0 +char makecharset::bc#2 // reg byte x 4000.4 +char makecharset::bc#3 // reg byte x 2750.5 +char makecharset::bc#6 // reg byte x 1001.0 +char makecharset::bc#7 // reg byte x 15001.5 +__constant const char makecharset::bittab[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char makecharset::c +char makecharset::c#1 // c zp[1]:2 202.0 +char makecharset::c#2 // c zp[1]:2 490.6666666666667 +char *makecharset::charset +char *makecharset::font +char *makecharset::font#1 // font zp[2]:5 202.0 +char *makecharset::font#2 // font zp[2]:5 134.66666666666666 +char *makecharset::font1 +char *makecharset::font1#1 // font1 zp[2]:7 202.0 +char *makecharset::font1#2 // font1 zp[2]:7 134.66666666666666 +char makecharset::i +char makecharset::i#1 // i zp[1]:3 2002.0 +char makecharset::i#2 // i zp[1]:3 778.0555555555555 +char makecharset::ii +char makecharset::ii#1 // ii zp[1]:4 20002.0 +char makecharset::ii#2 // ii zp[1]:4 4000.4 reg byte x [ fillscreen::fill#5 ] zp[1]:2 [ makecharset::c#2 makecharset::c#1 ] diff --git a/src/test/ref/examples/c64/font-2x2/font-2x2.asm b/src/test/ref/examples/c64/font-2x2/font-2x2.asm index 61dad120e..f3075cfb5 100644 --- a/src/test/ref/examples/c64/font-2x2/font-2x2.asm +++ b/src/test/ref/examples/c64/font-2x2/font-2x2.asm @@ -79,6 +79,7 @@ main: { jmp __b4 } // Create a 2x2-font by doubling all pixels of the 64 first chars +// void font_2x2(char *font_original, char *font_2x2) font_2x2: { .label __5 = $f .label __7 = $f @@ -244,6 +245,7 @@ font_2x2: { // The compressed font is put into font_compressed and the compress_mapping is updated // so that compress_mapping[c] points to the char in font_compressed that is identical to char c in font_original // Returns the size of the compressed font (in chars) +// __register(X) char font_compress(char *font_original, char *font_compressed, char *compress_mapping) font_compress: { .label next_original = $11 .label i = 8 @@ -317,7 +319,7 @@ font_compress: { jmp __b2 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(byte register(X) c) +// void * memset(void *str, __register(X) char c, unsigned int num) memset: { .const num = $400 .label str = SCREEN @@ -350,7 +352,7 @@ memset: { jmp __b1 } // Show a 2x2 char on the screen at 2x2-position (x, y) using a font compress mapping -// show(byte zp(3) c, byte register(X) x, byte register(A) y) +// void show(__zp(3) char c, __register(X) char x, __register(A) char y, char *font_mapping) show: { .label __0 = $f .label __1 = $f @@ -435,7 +437,7 @@ show: { // Look for a glyph within a font // Only looks at the first font_size glyphs // Returns the index of the glyph within the font. Returns 0xff if the glyph is not found. -// font_find(byte* zp($11) glyph, byte* zp($d) font, byte zp(7) font_size) +// __register(X) char font_find(__zp($11) char *glyph, __zp($d) char *font, __zp(7) char font_size) font_find: { .label glyph = $11 .label font_size = 7 diff --git a/src/test/ref/examples/c64/font-2x2/font-2x2.cfg b/src/test/ref/examples/c64/font-2x2/font-2x2.cfg index 68c70eb7c..bdbe7ed9b 100644 --- a/src/test/ref/examples/c64/font-2x2/font-2x2.cfg +++ b/src/test/ref/examples/c64/font-2x2/font-2x2.cfg @@ -3,12 +3,12 @@ void main() main: scope:[main] from asm { sei } [1] *PROCPORT = PROCPORT_RAM_CHARROM - [2] call font_2x2 + [2] call font_2x2 to:main::@6 main::@6: scope:[main] from main [3] *PROCPORT = PROCPORT_BASIC_KERNEL_IO asm { cli } - [5] call font_compress + [5] call font_compress to:main::toD0181 main::toD0181: scope:[main] from main::@6 [6] phi() @@ -16,7 +16,7 @@ main::toD0181: scope:[main] from main::@6 main::@5: scope:[main] from main::toD0181 [7] *D018 = main::toD0181_return#0 [8] memset::c#0 = *(FONT_COMPRESSED_MAP+' ') - [9] call memset + [9] call memset to:main::@1 main::@1: scope:[main] from main::@3 main::@5 [10] main::y#4 = phi( main::@3/main::y#1, main::@5/0 ) @@ -28,7 +28,7 @@ main::@2: scope:[main] from main::@1 main::@7 [12] show::c#0 = main::c#2 [13] show::x#0 = main::x#2 [14] show::y#0 = main::y#4 - [15] call show + [15] call show to:main::@7 main::@7: scope:[main] from main::@2 [16] main::c#1 = ++ main::c#2 @@ -43,7 +43,7 @@ main::@4: scope:[main] from main::@3 main::@4 [21] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) to:main::@4 -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) +void font_2x2(char *font_original , char *font_2x2) font_2x2: scope:[font_2x2] from main [22] phi() to:font_2x2::@1 @@ -51,7 +51,7 @@ font_2x2::@1: scope:[font_2x2] from font_2x2 font_2x2::@9 [23] font_2x2::c#11 = phi( font_2x2/0, font_2x2::@9/font_2x2::c#1 ) [23] font_2x2::next_original#4 = phi( font_2x2/CHARGEN, font_2x2::@9/font_2x2::next_original#1 ) [23] font_2x2::next_2x2_left#0 = phi( font_2x2/FONT_ORIGINAL, font_2x2::@9/font_2x2::next_2x2#1 ) - [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (word)$40*8 + [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (unsigned int)$40*8 [25] font_2x2::next_2x2_left#10 = font_2x2::next_2x2_left#0 to:font_2x2::@2 font_2x2::@2: scope:[font_2x2] from font_2x2::@1 font_2x2::@8 @@ -96,8 +96,8 @@ font_2x2::@6: scope:[font_2x2] from font_2x2::@5 [51] if(font_2x2::l2#1!=8) goto font_2x2::@8 to:font_2x2::@7 font_2x2::@7: scope:[font_2x2] from font_2x2::@6 - [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (word)$80*8 - [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (word)$c0*8 + [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (unsigned int)$80*8 + [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (unsigned int)$c0*8 to:font_2x2::@8 font_2x2::@8: scope:[font_2x2] from font_2x2::@6 font_2x2::@7 [54] font_2x2::next_2x2_right#8 = phi( font_2x2::@6/font_2x2::next_2x2_right#7, font_2x2::@7/font_2x2::next_2x2_right#1 ) @@ -116,7 +116,7 @@ font_2x2::@return: scope:[font_2x2] from font_2x2::@9 [61] return to:@return -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) font_compress: scope:[font_compress] from main::@6 [62] phi() to:font_compress::@1 @@ -127,7 +127,7 @@ font_compress::@1: scope:[font_compress] from font_compress font_compress::@6 [63] font_compress::next_original#2 = phi( font_compress/FONT_ORIGINAL, font_compress::@6/font_compress::next_original#1 ) [64] font_find::glyph#0 = font_compress::next_original#2 [65] font_find::font_size#0 = font_compress::font_size#2 - [66] call font_find + [66] call font_find [67] font_find::return#0 = font_find::return#3 to:font_compress::@5 font_compress::@5: scope:[font_compress] from font_compress::@1 @@ -164,12 +164,12 @@ font_compress::@7: scope:[font_compress] from font_compress::@5 [84] font_compress::return#5 = font_compress::font_size#2 to:font_compress::@2 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main::@5 [85] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [86] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [86] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [87] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -180,9 +180,9 @@ memset::@2: scope:[memset] from memset::@1 [90] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) +void show(char c , char x , char y , char *font_mapping) show: scope:[show] from main::@2 - [91] show::$7 = (word)show::y#0 + [91] show::$7 = (unsigned int)show::y#0 [92] show::$8 = show::$7 << 2 [93] show::$9 = show::$8 + show::$7 [94] show::$0 = show::$9 << 4 @@ -201,7 +201,7 @@ show::@return: scope:[show] from show [105] return to:@return -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) +char font_find(char *glyph , char *font , char font_size) font_find: scope:[font_find] from font_compress::@1 [106] phi() to:font_find::@1 diff --git a/src/test/ref/examples/c64/font-2x2/font-2x2.log b/src/test/ref/examples/c64/font-2x2/font-2x2.log index 7fd510bd0..57095c884 100644 --- a/src/test/ref/examples/c64/font-2x2/font-2x2.log +++ b/src/test/ref/examples/c64/font-2x2/font-2x2.log @@ -8,7 +8,7 @@ Eliminating unused variable with no statement font_compress::$0 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main::@6 memset::c#4 = phi( main::@6/memset::c#0 ) memset::str#3 = phi( main::@6/memset::str#0 ) @@ -25,9 +25,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -57,7 +57,7 @@ main: scope:[main] from __start *PROCPORT = PROCPORT_RAM_CHARROM font_2x2::font_original#0 = CHARGEN font_2x2::font_2x2#0 = FONT_ORIGINAL - call font_2x2 + call font_2x2 to:main::@7 main::@7: scope:[main] from main *PROCPORT = PROCPORT_BASIC_KERNEL_IO @@ -65,7 +65,7 @@ main::@7: scope:[main] from main font_compress::font_original#0 = FONT_ORIGINAL font_compress::font_compressed#0 = FONT_COMPRESSED font_compress::compress_mapping#0 = FONT_COMPRESSED_MAP - call font_compress + call font_compress font_compress::return#0 = font_compress::return#2 to:main::@8 main::@8: scope:[main] from main::@7 @@ -75,11 +75,11 @@ main::@8: scope:[main] from main::@7 main::toD0181: scope:[main] from main::@8 main::toD0181_gfx#1 = phi( main::@8/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main::@8/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -93,10 +93,10 @@ main::@6: scope:[main] from main::toD0181_@return main::toD0181_return#3 = phi( main::toD0181_@return/main::toD0181_return#1 ) main::$2 = main::toD0181_return#3 *D018 = main::$2 - memset::str#0 = (void*)SCREEN + memset::str#0 = (void *)SCREEN memset::c#0 = FONT_COMPRESSED_MAP[' '] memset::num#0 = $400 - call memset + call memset memset::return#2 = memset::return#1 to:main::@9 main::@9: scope:[main] from main::@6 @@ -116,7 +116,7 @@ main::@2: scope:[main] from main::@1 main::@10 show::x#0 = main::x#2 show::y#0 = main::y#2 show::font_mapping#0 = FONT_COMPRESSED_MAP - call show + call show to:main::@10 main::@10: scope:[main] from main::@2 main::y#5 = phi( main::@2/main::y#2 ) @@ -144,13 +144,13 @@ main::@return: scope:[main] from main::@4 return to:@return -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) +void show(char c , char x , char y , char *font_mapping) show: scope:[show] from main::@2 show::c#1 = phi( main::@2/show::c#0 ) show::font_mapping#1 = phi( main::@2/show::font_mapping#0 ) show::x#1 = phi( main::@2/show::x#0 ) show::y#1 = phi( main::@2/show::y#0 ) - show::$7 = (word)show::y#1 + show::$7 = (unsigned int)show::y#1 show::$0 = show::$7 * $50 show::$1 = SCREEN + show::$0 show::$2 = show::x#1 * 2 @@ -167,7 +167,7 @@ show::@return: scope:[show] from show return to:@return -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) +void font_2x2(char *font_original , char *font_2x2) font_2x2: scope:[font_2x2] from main font_2x2::font_2x2#1 = phi( main/font_2x2::font_2x2#0 ) font_2x2::font_original#1 = phi( main/font_2x2::font_original#0 ) @@ -322,7 +322,7 @@ font_2x2::@return: scope:[font_2x2] from font_2x2::@10 return to:@return -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) font_compress: scope:[font_compress] from main::@7 font_compress::compress_mapping#6 = phi( main::@7/font_compress::compress_mapping#0 ) font_compress::font_compressed#1 = phi( main::@7/font_compress::font_compressed#0 ) @@ -342,7 +342,7 @@ font_compress::@1: scope:[font_compress] from font_compress font_compress::@2 font_find::glyph#0 = font_compress::next_original#2 font_find::font#0 = font_compress::font_compressed#2 font_find::font_size#0 = font_compress::font_size#2 - call font_find + call font_find font_find::return#0 = font_find::return#3 to:font_compress::@7 font_compress::@7: scope:[font_compress] from font_compress::@1 @@ -415,7 +415,7 @@ font_compress::@return: scope:[font_compress] from font_compress::@6 return to:@return -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) +char font_find(char *glyph , char *font , char font_size) font_find: scope:[font_find] from font_compress::@1 font_find::font#9 = phi( font_compress::@1/font_find::font#0 ) font_find::glyph#5 = phi( font_compress::@1/font_find::glyph#0 ) @@ -500,7 +500,7 @@ font_find::@return: scope:[font_find] from font_find::@3 font_find::@8 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -509,394 +509,394 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHARGEN = (byte*)$d000 -constant byte* const D018 = (byte*)$d018 -constant byte* const FONT_COMPRESSED = (byte*)$2800 -constant byte* FONT_COMPRESSED_MAP[$100] = { fill( $100, 0) } -constant byte* const FONT_ORIGINAL = (byte*)$2000 -constant byte* const PROCPORT = (byte*)1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant byte* const SCREEN = (byte*)$400 +__constant char * const CHARGEN = (char *)$d000 +__constant char * const D018 = (char *)$d018 +__constant char * const FONT_COMPRESSED = (char *)$2800 +__constant char FONT_COMPRESSED_MAP[$100] = { fill( $100, 0) } +__constant char * const FONT_ORIGINAL = (char *)$2000 +__constant char * const PROCPORT = (char *)1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant char * const SCREEN = (char *)$400 void __start() -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) -number~ font_2x2::$1 -byte~ font_2x2::$10 -number~ font_2x2::$11 -byte~ font_2x2::$12 -byte~ font_2x2::$13 -number~ font_2x2::$14 -byte~ font_2x2::$15 -bool~ font_2x2::$16 -bool~ font_2x2::$17 -byte*~ font_2x2::$18 -byte*~ font_2x2::$19 -byte~ font_2x2::$2 -bool~ font_2x2::$20 -bool~ font_2x2::$21 -bool~ font_2x2::$22 -byte~ font_2x2::$3 -byte~ font_2x2::$4 -word~ font_2x2::$5 -word~ font_2x2::$6 -word~ font_2x2::$7 -word~ font_2x2::$8 -bool~ font_2x2::$9 -byte font_2x2::b -byte font_2x2::b#0 -byte font_2x2::b#1 -byte font_2x2::b#2 -byte font_2x2::b#3 -byte font_2x2::b#4 -byte font_2x2::b#5 -byte font_2x2::c -byte font_2x2::c#0 -byte font_2x2::c#1 -byte font_2x2::c#10 -byte font_2x2::c#11 -byte font_2x2::c#2 -byte font_2x2::c#3 -byte font_2x2::c#4 -byte font_2x2::c#5 -byte font_2x2::c#6 -byte font_2x2::c#7 -byte font_2x2::c#8 -byte font_2x2::c#9 -byte* font_2x2::font_2x2 -byte* font_2x2::font_2x2#0 -byte* font_2x2::font_2x2#1 -byte* font_2x2::font_original -byte* font_2x2::font_original#0 -byte* font_2x2::font_original#1 -byte font_2x2::glyph_bit -byte font_2x2::glyph_bit#0 -byte font_2x2::glyph_bits -byte font_2x2::glyph_bits#0 -byte font_2x2::glyph_bits#1 -byte font_2x2::glyph_bits#2 -byte font_2x2::glyph_bits#3 -byte font_2x2::glyph_bits#4 -byte font_2x2::glyph_bits#5 -word font_2x2::glyph_bits_2x2 -word font_2x2::glyph_bits_2x2#0 -word font_2x2::glyph_bits_2x2#1 -word font_2x2::glyph_bits_2x2#2 -word font_2x2::glyph_bits_2x2#3 -word font_2x2::glyph_bits_2x2#4 -word font_2x2::glyph_bits_2x2#5 -word font_2x2::glyph_bits_2x2#6 -word font_2x2::glyph_bits_2x2#7 -byte font_2x2::l -byte font_2x2::l#0 -byte font_2x2::l#1 -byte font_2x2::l#2 -byte font_2x2::l#3 -byte font_2x2::l#4 -byte font_2x2::l#5 -byte font_2x2::l#6 -byte font_2x2::l#7 -byte font_2x2::l#8 -byte font_2x2::l#9 -byte font_2x2::l2 -byte font_2x2::l2#0 -byte font_2x2::l2#1 -byte font_2x2::l2#2 -byte font_2x2::l2#3 -byte font_2x2::l2#4 -byte font_2x2::l2#5 -byte font_2x2::l2#6 -byte font_2x2::l2#7 -byte font_2x2::l2#8 -byte font_2x2::l2#9 -byte* font_2x2::next_2x2 -byte* font_2x2::next_2x2#0 -byte* font_2x2::next_2x2#1 -byte* font_2x2::next_2x2#10 -byte* font_2x2::next_2x2#11 -byte* font_2x2::next_2x2#2 -byte* font_2x2::next_2x2#3 -byte* font_2x2::next_2x2#4 -byte* font_2x2::next_2x2#5 -byte* font_2x2::next_2x2#6 -byte* font_2x2::next_2x2#7 -byte* font_2x2::next_2x2#8 -byte* font_2x2::next_2x2#9 -byte* font_2x2::next_2x2_left -byte* font_2x2::next_2x2_left#0 -byte* font_2x2::next_2x2_left#1 -byte* font_2x2::next_2x2_left#2 -byte* font_2x2::next_2x2_left#3 -byte* font_2x2::next_2x2_left#4 -byte* font_2x2::next_2x2_left#5 -byte* font_2x2::next_2x2_left#6 -byte* font_2x2::next_2x2_left#7 -byte* font_2x2::next_2x2_left#8 -byte* font_2x2::next_2x2_right -byte* font_2x2::next_2x2_right#0 -byte* font_2x2::next_2x2_right#1 -byte* font_2x2::next_2x2_right#2 -byte* font_2x2::next_2x2_right#3 -byte* font_2x2::next_2x2_right#4 -byte* font_2x2::next_2x2_right#5 -byte* font_2x2::next_2x2_right#6 -byte* font_2x2::next_2x2_right#7 -byte* font_2x2::next_2x2_right#8 -byte* font_2x2::next_original -byte* font_2x2::next_original#0 -byte* font_2x2::next_original#1 -byte* font_2x2::next_original#10 -byte* font_2x2::next_original#11 -byte* font_2x2::next_original#2 -byte* font_2x2::next_original#3 -byte* font_2x2::next_original#4 -byte* font_2x2::next_original#5 -byte* font_2x2::next_original#6 -byte* font_2x2::next_original#7 -byte* font_2x2::next_original#8 -byte* font_2x2::next_original#9 -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) -bool~ font_compress::$1 -bool~ font_compress::$2 -bool~ font_compress::$3 -bool~ font_compress::$4 -byte* font_compress::compress_mapping -byte* font_compress::compress_mapping#0 -byte* font_compress::compress_mapping#1 -byte* font_compress::compress_mapping#2 -byte* font_compress::compress_mapping#3 -byte* font_compress::compress_mapping#4 -byte* font_compress::compress_mapping#5 -byte* font_compress::compress_mapping#6 -byte* font_compress::compress_mapping#7 -byte* font_compress::font_compressed -byte* font_compress::font_compressed#0 -byte* font_compress::font_compressed#1 -byte* font_compress::font_compressed#2 -byte* font_compress::font_compressed#3 -byte* font_compress::font_compressed#4 -byte* font_compress::font_compressed#5 -byte* font_compress::font_compressed#6 -byte* font_compress::font_compressed#7 -byte* font_compress::font_original -byte* font_compress::font_original#0 -byte* font_compress::font_original#1 -byte font_compress::font_size -byte font_compress::font_size#0 -byte font_compress::font_size#1 -byte font_compress::font_size#2 -byte font_compress::font_size#3 -byte font_compress::font_size#4 -byte font_compress::font_size#5 -byte font_compress::font_size#6 -byte font_compress::font_size#7 -byte font_compress::font_size#8 -byte font_compress::found -byte font_compress::found#0 -byte font_compress::found#1 -byte font_compress::found#2 -byte font_compress::i -byte font_compress::i#0 -byte font_compress::i#1 -byte font_compress::i#2 -byte font_compress::i#3 -byte font_compress::i#4 -byte font_compress::i#5 -byte font_compress::i#6 -byte font_compress::i#7 -byte font_compress::l -byte font_compress::l#0 -byte font_compress::l#1 -byte font_compress::l#2 -byte* font_compress::next_compressed -byte* font_compress::next_compressed#0 -byte* font_compress::next_compressed#1 -byte* font_compress::next_compressed#2 -byte* font_compress::next_compressed#3 -byte* font_compress::next_compressed#4 -byte* font_compress::next_compressed#5 -byte* font_compress::next_compressed#6 -byte* font_compress::next_compressed#7 -byte* font_compress::next_original -byte* font_compress::next_original#0 -byte* font_compress::next_original#1 -byte* font_compress::next_original#2 -byte* font_compress::next_original#3 -byte* font_compress::next_original#4 -byte* font_compress::next_original#5 -byte* font_compress::next_original#6 -byte* font_compress::next_original#7 -byte font_compress::return -byte font_compress::return#0 -byte font_compress::return#1 -byte font_compress::return#2 -byte font_compress::return#3 -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) -bool~ font_find::$0 -bool~ font_find::$1 -bool~ font_find::$2 -bool~ font_find::$3 -bool~ font_find::$4 -bool~ font_find::$5 -byte* font_find::font -byte* font_find::font#0 -byte* font_find::font#1 -byte* font_find::font#2 -byte* font_find::font#3 -byte* font_find::font#4 -byte* font_find::font#5 -byte* font_find::font#6 -byte* font_find::font#7 -byte* font_find::font#8 -byte* font_find::font#9 -byte font_find::font_size -byte font_find::font_size#0 -byte font_find::font_size#1 -byte font_find::font_size#2 -byte font_find::font_size#3 -byte font_find::font_size#4 -byte font_find::font_size#5 -byte font_find::font_size#6 -byte font_find::font_size#7 -byte font_find::font_size#8 -byte font_find::found -byte font_find::found#0 -byte font_find::found#1 -byte font_find::found#2 -byte font_find::found#3 -byte font_find::found#4 -byte* font_find::glyph -byte* font_find::glyph#0 -byte* font_find::glyph#1 -byte* font_find::glyph#2 -byte* font_find::glyph#3 -byte* font_find::glyph#4 -byte* font_find::glyph#5 -byte* font_find::glyph#6 -byte* font_find::glyph#7 -byte* font_find::glyph#8 -byte font_find::i -byte font_find::i#0 -byte font_find::i#1 -byte font_find::i#2 -byte font_find::i#3 -byte font_find::i#4 -byte font_find::i#5 -byte font_find::i#6 -byte font_find::i#7 -byte font_find::i#8 -byte font_find::i#9 -byte font_find::l -byte font_find::l#0 -byte font_find::l#1 -byte font_find::l#2 -byte font_find::l#3 -byte font_find::return -byte font_find::return#0 -byte font_find::return#1 -byte font_find::return#2 -byte font_find::return#3 -byte font_find::return#4 -byte font_find::return#5 +void font_2x2(char *font_original , char *font_2x2) +number font_2x2::$1 +char font_2x2::$10 +number font_2x2::$11 +char font_2x2::$12 +char font_2x2::$13 +number font_2x2::$14 +char font_2x2::$15 +bool font_2x2::$16 +bool font_2x2::$17 +char *font_2x2::$18 +char *font_2x2::$19 +char font_2x2::$2 +bool font_2x2::$20 +bool font_2x2::$21 +bool font_2x2::$22 +char font_2x2::$3 +char font_2x2::$4 +unsigned int font_2x2::$5 +unsigned int font_2x2::$6 +unsigned int font_2x2::$7 +unsigned int font_2x2::$8 +bool font_2x2::$9 +char font_2x2::b +char font_2x2::b#0 +char font_2x2::b#1 +char font_2x2::b#2 +char font_2x2::b#3 +char font_2x2::b#4 +char font_2x2::b#5 +char font_2x2::c +char font_2x2::c#0 +char font_2x2::c#1 +char font_2x2::c#10 +char font_2x2::c#11 +char font_2x2::c#2 +char font_2x2::c#3 +char font_2x2::c#4 +char font_2x2::c#5 +char font_2x2::c#6 +char font_2x2::c#7 +char font_2x2::c#8 +char font_2x2::c#9 +char *font_2x2::font_2x2 +char *font_2x2::font_2x2#0 +char *font_2x2::font_2x2#1 +char *font_2x2::font_original +char *font_2x2::font_original#0 +char *font_2x2::font_original#1 +char font_2x2::glyph_bit +char font_2x2::glyph_bit#0 +char font_2x2::glyph_bits +char font_2x2::glyph_bits#0 +char font_2x2::glyph_bits#1 +char font_2x2::glyph_bits#2 +char font_2x2::glyph_bits#3 +char font_2x2::glyph_bits#4 +char font_2x2::glyph_bits#5 +unsigned int font_2x2::glyph_bits_2x2 +unsigned int font_2x2::glyph_bits_2x2#0 +unsigned int font_2x2::glyph_bits_2x2#1 +unsigned int font_2x2::glyph_bits_2x2#2 +unsigned int font_2x2::glyph_bits_2x2#3 +unsigned int font_2x2::glyph_bits_2x2#4 +unsigned int font_2x2::glyph_bits_2x2#5 +unsigned int font_2x2::glyph_bits_2x2#6 +unsigned int font_2x2::glyph_bits_2x2#7 +char font_2x2::l +char font_2x2::l#0 +char font_2x2::l#1 +char font_2x2::l#2 +char font_2x2::l#3 +char font_2x2::l#4 +char font_2x2::l#5 +char font_2x2::l#6 +char font_2x2::l#7 +char font_2x2::l#8 +char font_2x2::l#9 +char font_2x2::l2 +char font_2x2::l2#0 +char font_2x2::l2#1 +char font_2x2::l2#2 +char font_2x2::l2#3 +char font_2x2::l2#4 +char font_2x2::l2#5 +char font_2x2::l2#6 +char font_2x2::l2#7 +char font_2x2::l2#8 +char font_2x2::l2#9 +char *font_2x2::next_2x2 +char *font_2x2::next_2x2#0 +char *font_2x2::next_2x2#1 +char *font_2x2::next_2x2#10 +char *font_2x2::next_2x2#11 +char *font_2x2::next_2x2#2 +char *font_2x2::next_2x2#3 +char *font_2x2::next_2x2#4 +char *font_2x2::next_2x2#5 +char *font_2x2::next_2x2#6 +char *font_2x2::next_2x2#7 +char *font_2x2::next_2x2#8 +char *font_2x2::next_2x2#9 +char *font_2x2::next_2x2_left +char *font_2x2::next_2x2_left#0 +char *font_2x2::next_2x2_left#1 +char *font_2x2::next_2x2_left#2 +char *font_2x2::next_2x2_left#3 +char *font_2x2::next_2x2_left#4 +char *font_2x2::next_2x2_left#5 +char *font_2x2::next_2x2_left#6 +char *font_2x2::next_2x2_left#7 +char *font_2x2::next_2x2_left#8 +char *font_2x2::next_2x2_right +char *font_2x2::next_2x2_right#0 +char *font_2x2::next_2x2_right#1 +char *font_2x2::next_2x2_right#2 +char *font_2x2::next_2x2_right#3 +char *font_2x2::next_2x2_right#4 +char *font_2x2::next_2x2_right#5 +char *font_2x2::next_2x2_right#6 +char *font_2x2::next_2x2_right#7 +char *font_2x2::next_2x2_right#8 +char *font_2x2::next_original +char *font_2x2::next_original#0 +char *font_2x2::next_original#1 +char *font_2x2::next_original#10 +char *font_2x2::next_original#11 +char *font_2x2::next_original#2 +char *font_2x2::next_original#3 +char *font_2x2::next_original#4 +char *font_2x2::next_original#5 +char *font_2x2::next_original#6 +char *font_2x2::next_original#7 +char *font_2x2::next_original#8 +char *font_2x2::next_original#9 +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) +bool font_compress::$1 +bool font_compress::$2 +bool font_compress::$3 +bool font_compress::$4 +char *font_compress::compress_mapping +char *font_compress::compress_mapping#0 +char *font_compress::compress_mapping#1 +char *font_compress::compress_mapping#2 +char *font_compress::compress_mapping#3 +char *font_compress::compress_mapping#4 +char *font_compress::compress_mapping#5 +char *font_compress::compress_mapping#6 +char *font_compress::compress_mapping#7 +char *font_compress::font_compressed +char *font_compress::font_compressed#0 +char *font_compress::font_compressed#1 +char *font_compress::font_compressed#2 +char *font_compress::font_compressed#3 +char *font_compress::font_compressed#4 +char *font_compress::font_compressed#5 +char *font_compress::font_compressed#6 +char *font_compress::font_compressed#7 +char *font_compress::font_original +char *font_compress::font_original#0 +char *font_compress::font_original#1 +char font_compress::font_size +char font_compress::font_size#0 +char font_compress::font_size#1 +char font_compress::font_size#2 +char font_compress::font_size#3 +char font_compress::font_size#4 +char font_compress::font_size#5 +char font_compress::font_size#6 +char font_compress::font_size#7 +char font_compress::font_size#8 +char font_compress::found +char font_compress::found#0 +char font_compress::found#1 +char font_compress::found#2 +char font_compress::i +char font_compress::i#0 +char font_compress::i#1 +char font_compress::i#2 +char font_compress::i#3 +char font_compress::i#4 +char font_compress::i#5 +char font_compress::i#6 +char font_compress::i#7 +char font_compress::l +char font_compress::l#0 +char font_compress::l#1 +char font_compress::l#2 +char *font_compress::next_compressed +char *font_compress::next_compressed#0 +char *font_compress::next_compressed#1 +char *font_compress::next_compressed#2 +char *font_compress::next_compressed#3 +char *font_compress::next_compressed#4 +char *font_compress::next_compressed#5 +char *font_compress::next_compressed#6 +char *font_compress::next_compressed#7 +char *font_compress::next_original +char *font_compress::next_original#0 +char *font_compress::next_original#1 +char *font_compress::next_original#2 +char *font_compress::next_original#3 +char *font_compress::next_original#4 +char *font_compress::next_original#5 +char *font_compress::next_original#6 +char *font_compress::next_original#7 +char font_compress::return +char font_compress::return#0 +char font_compress::return#1 +char font_compress::return#2 +char font_compress::return#3 +char font_find(char *glyph , char *font , char font_size) +bool font_find::$0 +bool font_find::$1 +bool font_find::$2 +bool font_find::$3 +bool font_find::$4 +bool font_find::$5 +char *font_find::font +char *font_find::font#0 +char *font_find::font#1 +char *font_find::font#2 +char *font_find::font#3 +char *font_find::font#4 +char *font_find::font#5 +char *font_find::font#6 +char *font_find::font#7 +char *font_find::font#8 +char *font_find::font#9 +char font_find::font_size +char font_find::font_size#0 +char font_find::font_size#1 +char font_find::font_size#2 +char font_find::font_size#3 +char font_find::font_size#4 +char font_find::font_size#5 +char font_find::font_size#6 +char font_find::font_size#7 +char font_find::font_size#8 +char font_find::found +char font_find::found#0 +char font_find::found#1 +char font_find::found#2 +char font_find::found#3 +char font_find::found#4 +char *font_find::glyph +char *font_find::glyph#0 +char *font_find::glyph#1 +char *font_find::glyph#2 +char *font_find::glyph#3 +char *font_find::glyph#4 +char *font_find::glyph#5 +char *font_find::glyph#6 +char *font_find::glyph#7 +char *font_find::glyph#8 +char font_find::i +char font_find::i#0 +char font_find::i#1 +char font_find::i#2 +char font_find::i#3 +char font_find::i#4 +char font_find::i#5 +char font_find::i#6 +char font_find::i#7 +char font_find::i#8 +char font_find::i#9 +char font_find::l +char font_find::l#0 +char font_find::l#1 +char font_find::l#2 +char font_find::l#3 +char font_find::return +char font_find::return#0 +char font_find::return#1 +char font_find::return#2 +char font_find::return#3 +char font_find::return#4 +char font_find::return#5 void main() -byte~ main::$2 -bool~ main::$5 -bool~ main::$6 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c#4 -byte main::c#5 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -byte main::y#5 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) -number~ show::$0 -byte*~ show::$1 -number~ show::$2 -number~ show::$4 -number~ show::$5 -number~ show::$6 -word~ show::$7 -byte show::c -byte show::c#0 -byte show::c#1 -byte* show::font_mapping -byte* show::font_mapping#0 -byte* show::font_mapping#1 -byte* show::ptr -byte* show::ptr#0 -byte show::x -byte show::x#0 -byte show::x#1 -byte show::y -byte show::y#0 -byte show::y#1 +char main::$2 +bool main::$5 +bool main::$6 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c#4 +char main::c#5 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +char main::y#5 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void show(char c , char x , char y , char *font_mapping) +number show::$0 +char *show::$1 +number show::$2 +number show::$4 +number show::$5 +number show::$6 +unsigned int show::$7 +char show::c +char show::c#0 +char show::c#1 +char *show::font_mapping +char *show::font_mapping#0 +char *show::font_mapping#1 +char *show::ptr +char *show::ptr#0 +char show::x +char show::x#0 +char show::x#1 +char show::y +char show::y#0 +char show::y#1 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Adding number conversion cast (unumber) $3fff in main::toD0181_$0 = main::toD0181_$7 & $3fff @@ -950,18 +950,18 @@ Adding number conversion cast (unumber) 0 in font_find::found#1 = 0 Adding number conversion cast (unumber) 0 in font_find::$5 = 0 != font_find::found#2 Adding number conversion cast (unumber) 8 in font_find::font#1 = font_find::font#3 + 8 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast memset::num#0 = (unumber)$400 Inlining cast font_2x2::l2#2 = (unumber)0 Inlining cast font_find::return#1 = (unumber)$ff Inlining cast font_find::found#1 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 10240 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 10240 Simplifying constant integer cast 0 Simplifying constant integer cast $3fff Simplifying constant integer cast 4 @@ -998,55 +998,55 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $3e7 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $c0 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (unsigned int) $3e7 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $c0 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 -Inferred type updated to word in show::$0 = show::$7 * $50 -Inferred type updated to byte in show::$2 = show::x#1 * 2 -Inferred type updated to byte in show::$4 = show::c#1 + $40 -Inferred type updated to byte in show::$5 = show::c#1 + $80 -Inferred type updated to byte in show::$6 = show::c#1 + $c0 -Inferred type updated to byte in font_2x2::$1 = font_2x2::glyph_bits#2 & $80 -Inferred type updated to byte in font_2x2::$11 = font_2x2::l2#3 + 1 -Inferred type updated to byte in font_2x2::$14 = font_2x2::l2#3 + 1 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to unsigned int in show::$0 = show::$7 * $50 +Inferred type updated to char in show::$2 = show::x#1 * 2 +Inferred type updated to char in show::$4 = show::c#1 + $40 +Inferred type updated to char in show::$5 = show::c#1 + $80 +Inferred type updated to char in show::$6 = show::c#1 + $c0 +Inferred type updated to char in font_2x2::$1 = font_2x2::glyph_bits#2 & $80 +Inferred type updated to char in font_2x2::$11 = font_2x2::l2#3 + 1 +Inferred type updated to char in font_2x2::$14 = font_2x2::l2#3 + 1 Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 Inversing boolean not [135] font_2x2::$17 = font_2x2::l2#1 != 8 from [134] font_2x2::$16 = font_2x2::l2#1 == 8 Inversing boolean not [168] font_compress::$2 = font_compress::found#0 != $ff from [167] font_compress::$1 = font_compress::found#0 == $ff @@ -1219,7 +1219,7 @@ Constant font_compress::font_compressed#0 = FONT_COMPRESSED Constant font_compress::compress_mapping#0 = FONT_COMPRESSED_MAP Constant main::toD0181_screen#0 = SCREEN Constant main::toD0181_gfx#0 = FONT_COMPRESSED -Constant memset::str#0 = (void*)SCREEN +Constant memset::str#0 = (void *)SCREEN Constant memset::num#0 = $400 Constant main::c#0 = 0 Constant main::y#0 = 0 @@ -1242,13 +1242,13 @@ Constant font_find::l#0 = 0 Constant font_find::return#1 = $ff Constant font_find::found#1 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Constant memset::return#2 = memset::str#0 Constant font_find::font#0 = font_compress::font_compressed#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [31] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [31] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always false - eliminating [2] if(memset::num#0<=0) goto memset::@1 if() condition always true - replacing block destination [58] if(true) goto main::@5 @@ -1299,22 +1299,22 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] memset::end#0 = memset::$4 + memset::num#0 Constant right-side identified [12] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [15] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [15] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [11] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [13] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -1364,31 +1364,31 @@ Constant inlined font_2x2::font_2x2#0 = FONT_ORIGINAL Constant inlined main::c#0 = 0 Constant inlined font_2x2::l2#2 = 0 Constant inlined font_compress::font_compressed#0 = FONT_COMPRESSED -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined show::font_mapping#0 = FONT_COMPRESSED_MAP Constant inlined font_find::font#0 = FONT_COMPRESSED Constant inlined font_2x2::$2 = 0 Constant inlined font_2x2::$3 = 1 Constant inlined font_2x2::b#0 = 0 Constant inlined font_find::found#0 = 1 -Constant inlined main::toD0181_$7 = (word)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN Constant inlined font_find::found#1 = 0 Constant inlined font_2x2::c#0 = 0 -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 Constant inlined font_find::i#0 = 0 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined main::x#0 = 0 Constant inlined font_compress::font_size#0 = 0 Constant inlined main::y#0 = 0 -Constant inlined main::toD0181_$5 = byte1 (word)FONT_COMPRESSED/4&$f +Constant inlined main::toD0181_$5 = byte1 (unsigned int)FONT_COMPRESSED/4&$f Constant inlined font_compress::i#0 = 0 -Constant inlined main::toD0181_$4 = byte1 (word)FONT_COMPRESSED/4 +Constant inlined main::toD0181_$4 = byte1 (unsigned int)FONT_COMPRESSED/4 Constant inlined font_compress::l#0 = 0 -Constant inlined main::toD0181_$3 = byte1 (word)FONT_COMPRESSED +Constant inlined main::toD0181_$3 = byte1 (unsigned int)FONT_COMPRESSED Constant inlined font_2x2::l#0 = 0 Constant inlined font_find::l#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined font_compress::font_original#0 = FONT_ORIGINAL Constant inlined font_2x2::font_original#0 = CHARGEN Successful SSA optimization Pass2ConstantInlining @@ -1399,14 +1399,14 @@ Consolidated array index constant in assignment (FONT_COMPRESSED_MAP+$c0)[show:: Successful SSA optimization Pass2ConstantAdditionElimination Alias show::$0 = show::$10 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $c0 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $c0 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@11(between main::@3 and main::@1) Added new block during phi lifting main::@12(between main::@10 and main::@2) @@ -1533,12 +1533,12 @@ void main() main: scope:[main] from asm { sei } [1] *PROCPORT = PROCPORT_RAM_CHARROM - [2] call font_2x2 + [2] call font_2x2 to:main::@6 main::@6: scope:[main] from main [3] *PROCPORT = PROCPORT_BASIC_KERNEL_IO asm { cli } - [5] call font_compress + [5] call font_compress to:main::toD0181 main::toD0181: scope:[main] from main::@6 [6] phi() @@ -1546,7 +1546,7 @@ main::toD0181: scope:[main] from main::@6 main::@5: scope:[main] from main::toD0181 [7] *D018 = main::toD0181_return#0 [8] memset::c#0 = *(FONT_COMPRESSED_MAP+' ') - [9] call memset + [9] call memset to:main::@1 main::@1: scope:[main] from main::@3 main::@5 [10] main::y#4 = phi( main::@3/main::y#1, main::@5/0 ) @@ -1558,7 +1558,7 @@ main::@2: scope:[main] from main::@1 main::@7 [12] show::c#0 = main::c#2 [13] show::x#0 = main::x#2 [14] show::y#0 = main::y#4 - [15] call show + [15] call show to:main::@7 main::@7: scope:[main] from main::@2 [16] main::c#1 = ++ main::c#2 @@ -1573,7 +1573,7 @@ main::@4: scope:[main] from main::@3 main::@4 [21] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) to:main::@4 -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) +void font_2x2(char *font_original , char *font_2x2) font_2x2: scope:[font_2x2] from main [22] phi() to:font_2x2::@1 @@ -1581,7 +1581,7 @@ font_2x2::@1: scope:[font_2x2] from font_2x2 font_2x2::@9 [23] font_2x2::c#11 = phi( font_2x2/0, font_2x2::@9/font_2x2::c#1 ) [23] font_2x2::next_original#4 = phi( font_2x2/CHARGEN, font_2x2::@9/font_2x2::next_original#1 ) [23] font_2x2::next_2x2_left#0 = phi( font_2x2/FONT_ORIGINAL, font_2x2::@9/font_2x2::next_2x2#1 ) - [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (word)$40*8 + [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (unsigned int)$40*8 [25] font_2x2::next_2x2_left#10 = font_2x2::next_2x2_left#0 to:font_2x2::@2 font_2x2::@2: scope:[font_2x2] from font_2x2::@1 font_2x2::@8 @@ -1626,8 +1626,8 @@ font_2x2::@6: scope:[font_2x2] from font_2x2::@5 [51] if(font_2x2::l2#1!=8) goto font_2x2::@8 to:font_2x2::@7 font_2x2::@7: scope:[font_2x2] from font_2x2::@6 - [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (word)$80*8 - [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (word)$c0*8 + [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (unsigned int)$80*8 + [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (unsigned int)$c0*8 to:font_2x2::@8 font_2x2::@8: scope:[font_2x2] from font_2x2::@6 font_2x2::@7 [54] font_2x2::next_2x2_right#8 = phi( font_2x2::@6/font_2x2::next_2x2_right#7, font_2x2::@7/font_2x2::next_2x2_right#1 ) @@ -1646,7 +1646,7 @@ font_2x2::@return: scope:[font_2x2] from font_2x2::@9 [61] return to:@return -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) font_compress: scope:[font_compress] from main::@6 [62] phi() to:font_compress::@1 @@ -1657,7 +1657,7 @@ font_compress::@1: scope:[font_compress] from font_compress font_compress::@6 [63] font_compress::next_original#2 = phi( font_compress/FONT_ORIGINAL, font_compress::@6/font_compress::next_original#1 ) [64] font_find::glyph#0 = font_compress::next_original#2 [65] font_find::font_size#0 = font_compress::font_size#2 - [66] call font_find + [66] call font_find [67] font_find::return#0 = font_find::return#3 to:font_compress::@5 font_compress::@5: scope:[font_compress] from font_compress::@1 @@ -1694,12 +1694,12 @@ font_compress::@7: scope:[font_compress] from font_compress::@5 [84] font_compress::return#5 = font_compress::font_size#2 to:font_compress::@2 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main::@5 [85] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [86] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [86] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [87] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1710,9 +1710,9 @@ memset::@2: scope:[memset] from memset::@1 [90] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) +void show(char c , char x , char y , char *font_mapping) show: scope:[show] from main::@2 - [91] show::$7 = (word)show::y#0 + [91] show::$7 = (unsigned int)show::y#0 [92] show::$8 = show::$7 << 2 [93] show::$9 = show::$8 + show::$7 [94] show::$0 = show::$9 << 4 @@ -1731,7 +1731,7 @@ show::@return: scope:[show] from show [105] return to:@return -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) +char font_find(char *glyph , char *font , char font_size) font_find: scope:[font_find] from font_compress::@1 [106] phi() to:font_find::@1 @@ -1763,147 +1763,147 @@ font_find::@5: scope:[font_find] from font_find::@4 VARIABLE REGISTER WEIGHTS -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) -byte~ font_2x2::$1 20002.0 -byte~ font_2x2::$10 2002.0 -byte~ font_2x2::$11 1001.0 -byte~ font_2x2::$12 2002.0 -byte~ font_2x2::$13 2002.0 -byte~ font_2x2::$14 1001.0 -byte~ font_2x2::$15 2002.0 -word~ font_2x2::$5 20002.0 -word~ font_2x2::$7 20002.0 -byte font_2x2::b -byte font_2x2::b#1 15001.5 -byte font_2x2::b#2 2000.2 -byte font_2x2::c -byte font_2x2::c#1 151.5 -byte font_2x2::c#11 5.611111111111111 -byte* font_2x2::font_2x2 -byte* font_2x2::font_original -byte font_2x2::glyph_bit -byte font_2x2::glyph_bit#0 5000.5 -byte font_2x2::glyph_bits -byte font_2x2::glyph_bits#0 2002.0 -byte font_2x2::glyph_bits#1 6667.333333333333 -byte font_2x2::glyph_bits#2 3444.8888888888887 -word font_2x2::glyph_bits_2x2 -word font_2x2::glyph_bits_2x2#1 20002.0 -word font_2x2::glyph_bits_2x2#2 2000.5000000000002 -word font_2x2::glyph_bits_2x2#3 4000.4 -byte font_2x2::l -byte font_2x2::l#1 1501.5 -byte font_2x2::l#2 103.55172413793102 -byte font_2x2::l2 -byte font_2x2::l2#1 1501.5 -byte font_2x2::l2#8 250.25000000000003 -byte font_2x2::l2#9 667.3333333333334 -byte* font_2x2::next_2x2 -byte* font_2x2::next_2x2#1 50.5 -byte* font_2x2::next_2x2_left -byte* font_2x2::next_2x2_left#0 70.76470588235294 -byte* font_2x2::next_2x2_left#1 1001.0 -byte* font_2x2::next_2x2_left#10 202.0 -byte* font_2x2::next_2x2_left#7 157.8846153846154 -byte* font_2x2::next_2x2_left#8 1001.0 -byte* font_2x2::next_2x2_right -byte* font_2x2::next_2x2_right#0 101.0 -byte* font_2x2::next_2x2_right#1 2002.0 -byte* font_2x2::next_2x2_right#7 157.8846153846154 -byte* font_2x2::next_2x2_right#8 1001.0 -byte* font_2x2::next_original -byte* font_2x2::next_original#1 67.33333333333333 -byte* font_2x2::next_original#4 34.371428571428574 -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) -byte* font_compress::compress_mapping -byte* font_compress::font_compressed -byte* font_compress::font_original -byte font_compress::font_size -byte font_compress::font_size#1 101.0 -byte font_compress::font_size#2 38.84615384615385 -byte font_compress::font_size#9 202.0 -byte font_compress::found -byte font_compress::found#0 101.0 -byte font_compress::found#2 303.0 -byte font_compress::found#3 202.0 -byte font_compress::i -byte font_compress::i#1 101.0 -byte font_compress::i#4 16.833333333333332 -byte font_compress::l -byte font_compress::l#1 1501.5 -byte font_compress::l#2 2002.0 -byte* font_compress::next_compressed -byte* font_compress::next_compressed#1 67.33333333333333 -byte* font_compress::next_compressed#4 108.66666666666669 -byte* font_compress::next_compressed#7 50.5 -byte* font_compress::next_original -byte* font_compress::next_original#1 50.5 -byte* font_compress::next_original#2 76.70588235294117 -byte font_compress::return -byte font_compress::return#1 60.599999999999994 -byte font_compress::return#5 202.0 -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) -byte* font_find::font -byte* font_find::font#1 100001.0 -byte* font_find::font#4 150000.375 -byte font_find::font_size -byte font_find::font_size#0 8341.833333333332 -byte font_find::found -byte font_find::found#2 100001.0 -byte* font_find::glyph -byte* font_find::glyph#0 76930.92307692308 -byte font_find::i -byte font_find::i#1 200002.0 -byte font_find::i#2 44444.88888888889 -byte font_find::l -byte font_find::l#1 1500001.5 -byte font_find::l#2 2000002.0 -byte font_find::return -byte font_find::return#0 202.0 -byte font_find::return#3 33367.33333333333 +void font_2x2(char *font_original , char *font_2x2) +char font_2x2::$1 // 20002.0 +char font_2x2::$10 // 2002.0 +char font_2x2::$11 // 1001.0 +char font_2x2::$12 // 2002.0 +char font_2x2::$13 // 2002.0 +char font_2x2::$14 // 1001.0 +char font_2x2::$15 // 2002.0 +unsigned int font_2x2::$5 // 20002.0 +unsigned int font_2x2::$7 // 20002.0 +char font_2x2::b +char font_2x2::b#1 // 15001.5 +char font_2x2::b#2 // 2000.2 +char font_2x2::c +char font_2x2::c#1 // 151.5 +char font_2x2::c#11 // 5.611111111111111 +char *font_2x2::font_2x2 +char *font_2x2::font_original +char font_2x2::glyph_bit +char font_2x2::glyph_bit#0 // 5000.5 +char font_2x2::glyph_bits +char font_2x2::glyph_bits#0 // 2002.0 +char font_2x2::glyph_bits#1 // 6667.333333333333 +char font_2x2::glyph_bits#2 // 3444.8888888888887 +unsigned int font_2x2::glyph_bits_2x2 +unsigned int font_2x2::glyph_bits_2x2#1 // 20002.0 +unsigned int font_2x2::glyph_bits_2x2#2 // 2000.5000000000002 +unsigned int font_2x2::glyph_bits_2x2#3 // 4000.4 +char font_2x2::l +char font_2x2::l#1 // 1501.5 +char font_2x2::l#2 // 103.55172413793102 +char font_2x2::l2 +char font_2x2::l2#1 // 1501.5 +char font_2x2::l2#8 // 250.25000000000003 +char font_2x2::l2#9 // 667.3333333333334 +char *font_2x2::next_2x2 +char *font_2x2::next_2x2#1 // 50.5 +char *font_2x2::next_2x2_left +char *font_2x2::next_2x2_left#0 // 70.76470588235294 +char *font_2x2::next_2x2_left#1 // 1001.0 +char *font_2x2::next_2x2_left#10 // 202.0 +char *font_2x2::next_2x2_left#7 // 157.8846153846154 +char *font_2x2::next_2x2_left#8 // 1001.0 +char *font_2x2::next_2x2_right +char *font_2x2::next_2x2_right#0 // 101.0 +char *font_2x2::next_2x2_right#1 // 2002.0 +char *font_2x2::next_2x2_right#7 // 157.8846153846154 +char *font_2x2::next_2x2_right#8 // 1001.0 +char *font_2x2::next_original +char *font_2x2::next_original#1 // 67.33333333333333 +char *font_2x2::next_original#4 // 34.371428571428574 +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) +char *font_compress::compress_mapping +char *font_compress::font_compressed +char *font_compress::font_original +char font_compress::font_size +char font_compress::font_size#1 // 101.0 +char font_compress::font_size#2 // 38.84615384615385 +char font_compress::font_size#9 // 202.0 +char font_compress::found +char font_compress::found#0 // 101.0 +char font_compress::found#2 // 303.0 +char font_compress::found#3 // 202.0 +char font_compress::i +char font_compress::i#1 // 101.0 +char font_compress::i#4 // 16.833333333333332 +char font_compress::l +char font_compress::l#1 // 1501.5 +char font_compress::l#2 // 2002.0 +char *font_compress::next_compressed +char *font_compress::next_compressed#1 // 67.33333333333333 +char *font_compress::next_compressed#4 // 108.66666666666669 +char *font_compress::next_compressed#7 // 50.5 +char *font_compress::next_original +char *font_compress::next_original#1 // 50.5 +char *font_compress::next_original#2 // 76.70588235294117 +char font_compress::return +char font_compress::return#1 // 60.599999999999994 +char font_compress::return#5 // 202.0 +char font_find(char *glyph , char *font , char font_size) +char *font_find::font +char *font_find::font#1 // 100001.0 +char *font_find::font#4 // 150000.375 +char font_find::font_size +char font_find::font_size#0 // 8341.833333333332 +char font_find::found +char font_find::found#2 // 100001.0 +char *font_find::glyph +char *font_find::glyph#0 // 76930.92307692308 +char font_find::i +char font_find::i#1 // 200002.0 +char font_find::i#2 // 44444.88888888889 +char font_find::l +char font_find::l#1 // 1500001.5 +char font_find::l#2 // 2000002.0 +char font_find::return +char font_find::return#0 // 202.0 +char font_find::return#3 // 33367.33333333333 void main() -byte main::c -byte main::c#1 42.599999999999994 -byte main::c#2 62.8 -byte main::c#4 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -byte main::x -byte main::x#1 151.5 -byte main::x#2 50.5 -byte main::y -byte main::y#1 16.5 -byte main::y#4 13.666666666666664 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#0 17.166666666666664 -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 134.66666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) -word~ show::$0 2002.0 -byte*~ show::$1 1001.0 -byte~ show::$2 2002.0 -byte~ show::$4 2002.0 -byte~ show::$5 2002.0 -byte~ show::$6 2002.0 -word~ show::$7 1501.5 -word~ show::$8 2002.0 -word~ show::$9 2002.0 -byte show::c -byte show::c#0 273.6666666666667 -byte* show::font_mapping -byte* show::ptr -byte* show::ptr#0 715.0 -byte show::x -byte show::x#0 157.42857142857142 -byte show::y -byte show::y#0 101.0 +char main::c +char main::c#1 // 42.599999999999994 +char main::c#2 // 62.8 +char main::c#4 // 22.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +char main::x +char main::x#1 // 151.5 +char main::x#2 // 50.5 +char main::y +char main::y#1 // 16.5 +char main::y#4 // 13.666666666666664 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#0 // 17.166666666666664 +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 134.66666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void show(char c , char x , char y , char *font_mapping) +unsigned int show::$0 // 2002.0 +char *show::$1 // 1001.0 +char show::$2 // 2002.0 +char show::$4 // 2002.0 +char show::$5 // 2002.0 +char show::$6 // 2002.0 +unsigned int show::$7 // 1501.5 +unsigned int show::$8 // 2002.0 +unsigned int show::$9 // 2002.0 +char show::c +char show::c#0 // 273.6666666666667 +char *show::font_mapping +char *show::ptr +char *show::ptr#0 // 715.0 +char show::x +char show::x#0 // 157.42857142857142 +char show::y +char show::y#0 // 101.0 Initial phi equivalence classes [ main::y#4 main::y#1 ] @@ -2070,7 +2070,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] *PROCPORT = PROCPORT_RAM_CHARROM [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *PROCPORT = PROCPORT_BASIC_KERNEL_IO [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (word)$40*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] { } ) always clobbers reg byte a +Statement [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (unsigned int)$40*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ font_2x2::c#11 font_2x2::c#1 ] Statement [25] font_2x2::next_2x2_left#10 = font_2x2::next_2x2_left#0 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 font_2x2::next_2x2_left#10 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 font_2x2::next_2x2_left#10 ] { } ) always clobbers reg byte a Statement [27] font_2x2::glyph_bits#0 = font_2x2::next_original#4[font_2x2::l#2] [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#0 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#0 ] { } ) always clobbers reg byte a @@ -2083,8 +2083,8 @@ Removing always clobbered register reg byte a as potential for zp[1]:20 [ font_2 Statement [34] font_2x2::glyph_bits_2x2#1 = font_2x2::$5 | font_2x2::glyph_bit#0 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::glyph_bits_2x2#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::glyph_bits_2x2#1 ] { } ) always clobbers reg byte a Statement [35] font_2x2::$7 = font_2x2::glyph_bits_2x2#1 << 1 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::$7 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::$7 ] { } ) always clobbers reg byte a Statement [36] font_2x2::glyph_bits_2x2#2 = font_2x2::$7 | font_2x2::glyph_bit#0 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bits_2x2#2 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bits_2x2#2 ] { } ) always clobbers reg byte a -Statement [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (word)$80*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] { } ) always clobbers reg byte a -Statement [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (word)$c0*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] { } ) always clobbers reg byte a +Statement [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (unsigned int)$80*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] { } ) always clobbers reg byte a +Statement [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (unsigned int)$c0*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] { } ) always clobbers reg byte a Statement [57] font_2x2::next_2x2#1 = font_2x2::next_2x2_left#0 + 8 [ font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2#1 ] ( font_2x2:2 [ font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2#1 ] { } ) always clobbers reg byte a Statement [58] font_2x2::next_original#1 = font_2x2::next_original#4 + 8 [ font_2x2::c#11 font_2x2::next_2x2#1 font_2x2::next_original#1 ] ( font_2x2:2 [ font_2x2::c#11 font_2x2::next_2x2#1 font_2x2::next_original#1 ] { } ) always clobbers reg byte a Statement [64] font_find::glyph#0 = font_compress::next_original#2 [ font_compress::next_original#2 font_compress::font_size#2 font_compress::i#4 font_compress::next_compressed#4 font_find::glyph#0 ] ( font_compress:5 [ font_compress::next_original#2 font_compress::font_size#2 font_compress::i#4 font_compress::next_compressed#4 font_find::glyph#0 ] { { font_find::glyph#0 = font_compress::next_original#2 } { font_find::font_size#0 = font_compress::font_size#2 } { font_find::return#0 = font_find::return#3 } } ) always clobbers reg byte a @@ -2099,7 +2099,7 @@ Statement [87] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::c#0 me Removing always clobbered register reg byte a as potential for zp[1]:37 [ memset::c#0 ] Statement [89] *memset::dst#2 = memset::c#0 [ memset::c#0 memset::dst#2 ] ( memset:9 [ memset::c#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:37 [ memset::c#0 ] -Statement [91] show::$7 = (word)show::y#0 [ show::c#0 show::x#0 show::$7 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$7 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a +Statement [91] show::$7 = (unsigned int)show::y#0 [ show::c#0 show::x#0 show::$7 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$7 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::y#4 main::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::c#2 main::c#4 main::c#1 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::x#2 main::x#1 ] @@ -2127,7 +2127,7 @@ Statement [117] font_find::font#1 = font_find::font#4 + 8 [ font_find::glyph#0 f Statement [1] *PROCPORT = PROCPORT_RAM_CHARROM [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *PROCPORT = PROCPORT_BASIC_KERNEL_IO [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (word)$40*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] { } ) always clobbers reg byte a +Statement [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (unsigned int)$40*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 ] { } ) always clobbers reg byte a Statement [25] font_2x2::next_2x2_left#10 = font_2x2::next_2x2_left#0 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 font_2x2::next_2x2_left#10 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2_right#0 font_2x2::next_2x2_left#10 ] { } ) always clobbers reg byte a Statement [27] font_2x2::glyph_bits#0 = font_2x2::next_original#4[font_2x2::l#2] [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#0 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#0 ] { } ) always clobbers reg byte a Statement [29] font_2x2::$1 = font_2x2::glyph_bits#2 & $80 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::glyph_bits_2x2#3 font_2x2::b#2 font_2x2::$1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::glyph_bits_2x2#3 font_2x2::b#2 font_2x2::$1 ] { } ) always clobbers reg byte a @@ -2135,8 +2135,8 @@ Statement [33] font_2x2::$5 = font_2x2::glyph_bits_2x2#3 << 1 [ font_2x2::next_2 Statement [34] font_2x2::glyph_bits_2x2#1 = font_2x2::$5 | font_2x2::glyph_bit#0 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::glyph_bits_2x2#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::glyph_bits_2x2#1 ] { } ) always clobbers reg byte a Statement [35] font_2x2::$7 = font_2x2::glyph_bits_2x2#1 << 1 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::$7 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bit#0 font_2x2::$7 ] { } ) always clobbers reg byte a Statement [36] font_2x2::glyph_bits_2x2#2 = font_2x2::$7 | font_2x2::glyph_bit#0 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bits_2x2#2 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#7 font_2x2::l2#8 font_2x2::next_2x2_right#7 font_2x2::glyph_bits#2 font_2x2::b#2 font_2x2::glyph_bits_2x2#2 ] { } ) always clobbers reg byte a -Statement [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (word)$80*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] { } ) always clobbers reg byte a -Statement [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (word)$c0*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] { } ) always clobbers reg byte a +Statement [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (unsigned int)$80*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 ] { } ) always clobbers reg byte a +Statement [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (unsigned int)$c0*8 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] ( font_2x2:2 [ font_2x2::next_2x2_left#0 font_2x2::next_original#4 font_2x2::c#11 font_2x2::l#2 font_2x2::next_2x2_left#1 font_2x2::next_2x2_right#1 ] { } ) always clobbers reg byte a Statement [57] font_2x2::next_2x2#1 = font_2x2::next_2x2_left#0 + 8 [ font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2#1 ] ( font_2x2:2 [ font_2x2::next_original#4 font_2x2::c#11 font_2x2::next_2x2#1 ] { } ) always clobbers reg byte a Statement [58] font_2x2::next_original#1 = font_2x2::next_original#4 + 8 [ font_2x2::c#11 font_2x2::next_2x2#1 font_2x2::next_original#1 ] ( font_2x2:2 [ font_2x2::c#11 font_2x2::next_2x2#1 font_2x2::next_original#1 ] { } ) always clobbers reg byte a Statement [64] font_find::glyph#0 = font_compress::next_original#2 [ font_compress::next_original#2 font_compress::font_size#2 font_compress::i#4 font_compress::next_compressed#4 font_find::glyph#0 ] ( font_compress:5 [ font_compress::next_original#2 font_compress::font_size#2 font_compress::i#4 font_compress::next_compressed#4 font_find::glyph#0 ] { { font_find::glyph#0 = font_compress::next_original#2 } { font_find::font_size#0 = font_compress::font_size#2 } { font_find::return#0 = font_find::return#3 } } ) always clobbers reg byte a @@ -2145,7 +2145,7 @@ Statement [74] font_compress::next_compressed#1 = font_compress::next_compressed Statement [79] font_compress::next_original#1 = font_compress::next_original#2 + 8 [ font_compress::i#4 font_compress::next_original#1 font_compress::next_compressed#7 font_compress::return#1 ] ( font_compress:5 [ font_compress::i#4 font_compress::next_original#1 font_compress::next_compressed#7 font_compress::return#1 ] { } ) always clobbers reg byte a Statement [87] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::c#0 memset::dst#2 ] ( memset:9 [ memset::c#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [89] *memset::dst#2 = memset::c#0 [ memset::c#0 memset::dst#2 ] ( memset:9 [ memset::c#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [91] show::$7 = (word)show::y#0 [ show::c#0 show::x#0 show::$7 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$7 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a +Statement [91] show::$7 = (unsigned int)show::y#0 [ show::c#0 show::x#0 show::$7 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$7 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a Statement [92] show::$8 = show::$7 << 2 [ show::c#0 show::x#0 show::$7 show::$8 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$7 show::$8 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a Statement [93] show::$9 = show::$8 + show::$7 [ show::c#0 show::x#0 show::$9 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$9 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a Statement [94] show::$0 = show::$9 << 4 [ show::c#0 show::x#0 show::$0 ] ( show:15 [ main::y#4 main::c#2 main::x#2 show::c#0 show::x#0 show::$0 ] { { show::c#0 = main::c#2 } { show::x#0 = main::x#2 } { show::y#0 = main::y#4 } } ) always clobbers reg byte a @@ -2346,7 +2346,7 @@ main: { // [1] *PROCPORT = PROCPORT_RAM_CHARROM -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_CHARROM sta PROCPORT - // [2] call font_2x2 + // [2] call font_2x2 // [22] phi from main to font_2x2 [phi:main->font_2x2] font_2x2_from_main: jsr font_2x2 @@ -2358,7 +2358,7 @@ main: { sta PROCPORT // asm { cli } cli - // [5] call font_compress + // [5] call font_compress // Compress the font finding identical characters // [62] phi from main::@6 to font_compress [phi:main::@6->font_compress] font_compress_from___b6: @@ -2377,7 +2377,7 @@ main: { sta D018 // [8] memset::c#0 = *(FONT_COMPRESSED_MAP+' ') -- vbuxx=_deref_pbuc1 ldx FONT_COMPRESSED_MAP+' ' - // [9] call memset + // [9] call memset // Clear the screen // [85] phi from main::@5 to memset [phi:main::@5->memset] memset_from___b5: @@ -2417,7 +2417,7 @@ main: { ldx.z x // [14] show::y#0 = main::y#4 -- vbuaa=vbuz1 lda.z y - // [15] call show + // [15] call show jsr show jmp __b7 // main::@7 @@ -2448,6 +2448,7 @@ main: { } // font_2x2 // Create a 2x2-font by doubling all pixels of the 64 first chars +// void font_2x2(char *font_original, char *font_2x2) font_2x2: { .label __5 = $f .label __7 = $f @@ -2485,7 +2486,7 @@ font_2x2: { jmp __b1 // font_2x2::@1 __b1: - // [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (word)$40*8 -- pbuz1=pbuz2_plus_vwuc1 + // [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (unsigned int)$40*8 -- pbuz1=pbuz2_plus_vwuc1 lda.z next_2x2_left clc adc #<$40*8 @@ -2626,7 +2627,7 @@ font_2x2: { jmp __b7 // font_2x2::@7 __b7: - // [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (word)$80*8 -- pbuz1=pbuz2_plus_vwuc1 + // [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (unsigned int)$80*8 -- pbuz1=pbuz2_plus_vwuc1 lda.z next_2x2_left clc adc #<$80*8 @@ -2634,7 +2635,7 @@ font_2x2: { lda.z next_2x2_left+1 adc #>$80*8 sta.z next_2x2_left_1+1 - // [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (word)$c0*8 -- pbuz1=pbuz2_plus_vwuc1 + // [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (unsigned int)$c0*8 -- pbuz1=pbuz2_plus_vwuc1 lda.z next_2x2_left clc adc #<$c0*8 @@ -2700,6 +2701,7 @@ font_2x2: { // The compressed font is put into font_compressed and the compress_mapping is updated // so that compress_mapping[c] points to the char in font_compressed that is identical to char c in font_original // Returns the size of the compressed font (in chars) +// __register(X) char font_compress(char *font_original, char *font_compressed, char *compress_mapping) font_compress: { .label next_original = $11 .label i = 8 @@ -2728,7 +2730,7 @@ font_compress: { __b1: // [64] font_find::glyph#0 = font_compress::next_original#2 // [65] font_find::font_size#0 = font_compress::font_size#2 - // [66] call font_find + // [66] call font_find // Look for the char in font_compressed // [106] phi from font_compress::@1 to font_find [phi:font_compress::@1->font_find] font_find_from___b1: @@ -2827,7 +2829,7 @@ font_compress: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(byte register(X) c) +// void * memset(void *str, __register(X) char c, unsigned int num) memset: { .const num = $400 .label str = SCREEN @@ -2835,7 +2837,7 @@ memset: { .label dst = $b // [86] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [86] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [86] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2873,7 +2875,7 @@ memset: { } // show // Show a 2x2 char on the screen at 2x2-position (x, y) using a font compress mapping -// show(byte zp(3) c, byte register(X) x, byte register(A) y) +// void show(__zp(3) char c, __register(X) char x, __register(A) char y, char *font_mapping) show: { .label __0 = $f .label __1 = $f @@ -2882,7 +2884,7 @@ show: { .label ptr = $f .label __8 = $11 .label __9 = $f - // [91] show::$7 = (word)show::y#0 -- vwuz1=_word_vbuaa + // [91] show::$7 = (unsigned int)show::y#0 -- vwuz1=_word_vbuaa sta.z __7 lda #0 sta.z __7+1 @@ -2965,7 +2967,7 @@ show: { // Look for a glyph within a font // Only looks at the first font_size glyphs // Returns the index of the glyph within the font. Returns 0xff if the glyph is not found. -// font_find(byte* zp($11) glyph, byte* zp($d) font, byte zp(7) font_size) +// __register(X) char font_find(__zp($11) char *glyph, __zp($d) char *font, __zp(7) char font_size) font_find: { .label glyph = $11 .label font_size = 7 @@ -3182,163 +3184,163 @@ Removing instruction lda #8 Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [194] bne __b1 to beq +Fixing long branch [195] bne __b1 to beq FINAL SYMBOL TABLE -constant byte* const CHARGEN = (byte*) 53248 -constant byte* const D018 = (byte*) 53272 -constant byte* const FONT_COMPRESSED = (byte*) 10240 -constant byte* FONT_COMPRESSED_MAP[$100] = { fill( $100, 0) } -constant byte* const FONT_ORIGINAL = (byte*) 8192 -constant byte* const PROCPORT = (byte*) 1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant byte* const SCREEN = (byte*) 1024 -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) -byte~ font_2x2::$1 reg byte a 20002.0 -byte~ font_2x2::$10 reg byte a 2002.0 -byte~ font_2x2::$11 reg byte y 1001.0 -byte~ font_2x2::$12 reg byte a 2002.0 -byte~ font_2x2::$13 reg byte a 2002.0 -byte~ font_2x2::$14 reg byte y 1001.0 -byte~ font_2x2::$15 reg byte a 2002.0 -word~ font_2x2::$5 zp[2]:15 20002.0 -word~ font_2x2::$7 zp[2]:15 20002.0 -byte font_2x2::b -byte font_2x2::b#1 reg byte y 15001.5 -byte font_2x2::b#2 reg byte y 2000.2 -byte font_2x2::c -byte font_2x2::c#1 c zp[1]:7 151.5 -byte font_2x2::c#11 c zp[1]:7 5.611111111111111 -byte* font_2x2::font_2x2 -byte* font_2x2::font_original -byte font_2x2::glyph_bit -byte font_2x2::glyph_bit#0 reg byte x 5000.5 -byte font_2x2::glyph_bits -byte font_2x2::glyph_bits#0 glyph_bits zp[1]:6 2002.0 -byte font_2x2::glyph_bits#1 glyph_bits zp[1]:6 6667.333333333333 -byte font_2x2::glyph_bits#2 glyph_bits zp[1]:6 3444.8888888888887 -word font_2x2::glyph_bits_2x2 -word font_2x2::glyph_bits_2x2#1 glyph_bits_2x2 zp[2]:15 20002.0 -word font_2x2::glyph_bits_2x2#2 glyph_bits_2x2 zp[2]:15 2000.5000000000002 -word font_2x2::glyph_bits_2x2#3 glyph_bits_2x2 zp[2]:15 4000.4 -byte font_2x2::l -byte font_2x2::l#1 l zp[1]:8 1501.5 -byte font_2x2::l#2 l zp[1]:8 103.55172413793102 -byte font_2x2::l2 -byte font_2x2::l2#1 l2 zp[1]:5 1501.5 -byte font_2x2::l2#8 l2 zp[1]:5 250.25000000000003 -byte font_2x2::l2#9 l2 zp[1]:5 667.3333333333334 -byte* font_2x2::next_2x2 -byte* font_2x2::next_2x2#1 next_2x2 zp[2]:17 50.5 -byte* font_2x2::next_2x2_left -byte* font_2x2::next_2x2_left#0 next_2x2_left zp[2]:17 70.76470588235294 -byte* font_2x2::next_2x2_left#1 next_2x2_left_1 zp[2]:11 1001.0 -byte* font_2x2::next_2x2_left#10 next_2x2_left_1 zp[2]:11 202.0 -byte* font_2x2::next_2x2_left#7 next_2x2_left_1 zp[2]:11 157.8846153846154 -byte* font_2x2::next_2x2_left#8 next_2x2_left_1 zp[2]:11 1001.0 -byte* font_2x2::next_2x2_right -byte* font_2x2::next_2x2_right#0 next_2x2_right zp[2]:13 101.0 -byte* font_2x2::next_2x2_right#1 next_2x2_right zp[2]:13 2002.0 -byte* font_2x2::next_2x2_right#7 next_2x2_right zp[2]:13 157.8846153846154 -byte* font_2x2::next_2x2_right#8 next_2x2_right zp[2]:13 1001.0 -byte* font_2x2::next_original -byte* font_2x2::next_original#1 next_original zp[2]:9 67.33333333333333 -byte* font_2x2::next_original#4 next_original zp[2]:9 34.371428571428574 -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) -byte* font_compress::compress_mapping -byte* font_compress::font_compressed -byte* font_compress::font_original -byte font_compress::font_size -byte font_compress::font_size#1 reg byte x 101.0 -byte font_compress::font_size#2 font_size zp[1]:7 38.84615384615385 -byte font_compress::font_size#9 font_size zp[1]:7 202.0 -byte font_compress::found -byte font_compress::found#0 reg byte a 101.0 -byte font_compress::found#2 reg byte a 303.0 -byte font_compress::found#3 reg byte a 202.0 -byte font_compress::i -byte font_compress::i#1 i zp[1]:8 101.0 -byte font_compress::i#4 i zp[1]:8 16.833333333333332 -byte font_compress::l -byte font_compress::l#1 reg byte y 1501.5 -byte font_compress::l#2 reg byte y 2002.0 -byte* font_compress::next_compressed -byte* font_compress::next_compressed#1 next_compressed zp[2]:9 67.33333333333333 -byte* font_compress::next_compressed#4 next_compressed zp[2]:9 108.66666666666669 -byte* font_compress::next_compressed#7 next_compressed zp[2]:9 50.5 -byte* font_compress::next_original -byte* font_compress::next_original#1 next_original zp[2]:17 50.5 -byte* font_compress::next_original#2 next_original zp[2]:17 76.70588235294117 -byte font_compress::return -byte font_compress::return#1 reg byte x 60.599999999999994 -byte font_compress::return#5 reg byte x 202.0 -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) -byte* font_find::font -byte* font_find::font#1 font zp[2]:13 100001.0 -byte* font_find::font#4 font zp[2]:13 150000.375 -byte font_find::font_size -byte font_find::font_size#0 font_size zp[1]:7 8341.833333333332 -byte font_find::found -byte font_find::found#2 reg byte a 100001.0 -byte* font_find::glyph -byte* font_find::glyph#0 glyph zp[2]:17 76930.92307692308 -byte font_find::i -byte font_find::i#1 reg byte x 200002.0 -byte font_find::i#2 reg byte x 44444.88888888889 -byte font_find::l -byte font_find::l#1 reg byte y 1500001.5 -byte font_find::l#2 reg byte y 2000002.0 -byte font_find::return -byte font_find::return#0 reg byte a 202.0 -byte font_find::return#3 reg byte x 33367.33333333333 +__constant char * const CHARGEN = (char *) 53248 +__constant char * const D018 = (char *) 53272 +__constant char * const FONT_COMPRESSED = (char *) 10240 +__constant char FONT_COMPRESSED_MAP[$100] = { fill( $100, 0) } +__constant char * const FONT_ORIGINAL = (char *) 8192 +__constant char * const PROCPORT = (char *) 1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant char * const SCREEN = (char *) 1024 +void font_2x2(char *font_original , char *font_2x2) +char font_2x2::$1 // reg byte a 20002.0 +char font_2x2::$10 // reg byte a 2002.0 +char font_2x2::$11 // reg byte y 1001.0 +char font_2x2::$12 // reg byte a 2002.0 +char font_2x2::$13 // reg byte a 2002.0 +char font_2x2::$14 // reg byte y 1001.0 +char font_2x2::$15 // reg byte a 2002.0 +unsigned int font_2x2::$5 // zp[2]:15 20002.0 +unsigned int font_2x2::$7 // zp[2]:15 20002.0 +char font_2x2::b +char font_2x2::b#1 // reg byte y 15001.5 +char font_2x2::b#2 // reg byte y 2000.2 +char font_2x2::c +char font_2x2::c#1 // c zp[1]:7 151.5 +char font_2x2::c#11 // c zp[1]:7 5.611111111111111 +char *font_2x2::font_2x2 +char *font_2x2::font_original +char font_2x2::glyph_bit +char font_2x2::glyph_bit#0 // reg byte x 5000.5 +char font_2x2::glyph_bits +char font_2x2::glyph_bits#0 // glyph_bits zp[1]:6 2002.0 +char font_2x2::glyph_bits#1 // glyph_bits zp[1]:6 6667.333333333333 +char font_2x2::glyph_bits#2 // glyph_bits zp[1]:6 3444.8888888888887 +unsigned int font_2x2::glyph_bits_2x2 +unsigned int font_2x2::glyph_bits_2x2#1 // glyph_bits_2x2 zp[2]:15 20002.0 +unsigned int font_2x2::glyph_bits_2x2#2 // glyph_bits_2x2 zp[2]:15 2000.5000000000002 +unsigned int font_2x2::glyph_bits_2x2#3 // glyph_bits_2x2 zp[2]:15 4000.4 +char font_2x2::l +char font_2x2::l#1 // l zp[1]:8 1501.5 +char font_2x2::l#2 // l zp[1]:8 103.55172413793102 +char font_2x2::l2 +char font_2x2::l2#1 // l2 zp[1]:5 1501.5 +char font_2x2::l2#8 // l2 zp[1]:5 250.25000000000003 +char font_2x2::l2#9 // l2 zp[1]:5 667.3333333333334 +char *font_2x2::next_2x2 +char *font_2x2::next_2x2#1 // next_2x2 zp[2]:17 50.5 +char *font_2x2::next_2x2_left +char *font_2x2::next_2x2_left#0 // next_2x2_left zp[2]:17 70.76470588235294 +char *font_2x2::next_2x2_left#1 // next_2x2_left_1 zp[2]:11 1001.0 +char *font_2x2::next_2x2_left#10 // next_2x2_left_1 zp[2]:11 202.0 +char *font_2x2::next_2x2_left#7 // next_2x2_left_1 zp[2]:11 157.8846153846154 +char *font_2x2::next_2x2_left#8 // next_2x2_left_1 zp[2]:11 1001.0 +char *font_2x2::next_2x2_right +char *font_2x2::next_2x2_right#0 // next_2x2_right zp[2]:13 101.0 +char *font_2x2::next_2x2_right#1 // next_2x2_right zp[2]:13 2002.0 +char *font_2x2::next_2x2_right#7 // next_2x2_right zp[2]:13 157.8846153846154 +char *font_2x2::next_2x2_right#8 // next_2x2_right zp[2]:13 1001.0 +char *font_2x2::next_original +char *font_2x2::next_original#1 // next_original zp[2]:9 67.33333333333333 +char *font_2x2::next_original#4 // next_original zp[2]:9 34.371428571428574 +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) +char *font_compress::compress_mapping +char *font_compress::font_compressed +char *font_compress::font_original +char font_compress::font_size +char font_compress::font_size#1 // reg byte x 101.0 +char font_compress::font_size#2 // font_size zp[1]:7 38.84615384615385 +char font_compress::font_size#9 // font_size zp[1]:7 202.0 +char font_compress::found +char font_compress::found#0 // reg byte a 101.0 +char font_compress::found#2 // reg byte a 303.0 +char font_compress::found#3 // reg byte a 202.0 +char font_compress::i +char font_compress::i#1 // i zp[1]:8 101.0 +char font_compress::i#4 // i zp[1]:8 16.833333333333332 +char font_compress::l +char font_compress::l#1 // reg byte y 1501.5 +char font_compress::l#2 // reg byte y 2002.0 +char *font_compress::next_compressed +char *font_compress::next_compressed#1 // next_compressed zp[2]:9 67.33333333333333 +char *font_compress::next_compressed#4 // next_compressed zp[2]:9 108.66666666666669 +char *font_compress::next_compressed#7 // next_compressed zp[2]:9 50.5 +char *font_compress::next_original +char *font_compress::next_original#1 // next_original zp[2]:17 50.5 +char *font_compress::next_original#2 // next_original zp[2]:17 76.70588235294117 +char font_compress::return +char font_compress::return#1 // reg byte x 60.599999999999994 +char font_compress::return#5 // reg byte x 202.0 +char font_find(char *glyph , char *font , char font_size) +char *font_find::font +char *font_find::font#1 // font zp[2]:13 100001.0 +char *font_find::font#4 // font zp[2]:13 150000.375 +char font_find::font_size +char font_find::font_size#0 // font_size zp[1]:7 8341.833333333332 +char font_find::found +char font_find::found#2 // reg byte a 100001.0 +char *font_find::glyph +char *font_find::glyph#0 // glyph zp[2]:17 76930.92307692308 +char font_find::i +char font_find::i#1 // reg byte x 200002.0 +char font_find::i#2 // reg byte x 44444.88888888889 +char font_find::l +char font_find::l#1 // reg byte y 1500001.5 +char font_find::l#2 // reg byte y 2000002.0 +char font_find::return +char font_find::return#0 // reg byte a 202.0 +char font_find::return#3 // reg byte x 33367.33333333333 void main() -byte main::c -byte main::c#1 c zp[1]:3 42.599999999999994 -byte main::c#2 c zp[1]:3 62.8 -byte main::c#4 c zp[1]:3 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)FONT_COMPRESSED/4&$f -byte* main::toD0181_screen -byte main::x -byte main::x#1 x zp[1]:4 151.5 -byte main::x#2 x zp[1]:4 50.5 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#4 y zp[1]:2 13.666666666666664 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#0 reg byte x 17.166666666666664 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:11 202.0 -byte* memset::dst#2 dst zp[2]:11 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $400 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)SCREEN -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) -word~ show::$0 zp[2]:15 2002.0 -byte*~ show::$1 zp[2]:15 1001.0 -byte~ show::$2 reg byte a 2002.0 -byte~ show::$4 reg byte x 2002.0 -byte~ show::$5 reg byte a 2002.0 -byte~ show::$6 reg byte a 2002.0 -word~ show::$7 zp[2]:15 1501.5 -word~ show::$8 zp[2]:17 2002.0 -word~ show::$9 zp[2]:15 2002.0 -byte show::c -byte show::c#0 c zp[1]:3 273.6666666666667 -byte* show::font_mapping -byte* show::ptr -byte* show::ptr#0 ptr zp[2]:15 715.0 -byte show::x -byte show::x#0 reg byte x 157.42857142857142 -byte show::y -byte show::y#0 reg byte a 101.0 +char main::c +char main::c#1 // c zp[1]:3 42.599999999999994 +char main::c#2 // c zp[1]:3 62.8 +char main::c#4 // c zp[1]:3 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)FONT_COMPRESSED/4&$f // toD0181_return +char *main::toD0181_screen +char main::x +char main::x#1 // x zp[1]:4 151.5 +char main::x#2 // x zp[1]:4 50.5 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#4 // y zp[1]:2 13.666666666666664 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#0 // reg byte x 17.166666666666664 +char *memset::dst +char *memset::dst#1 // dst zp[2]:11 202.0 +char *memset::dst#2 // dst zp[2]:11 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $400 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)SCREEN // str +void show(char c , char x , char y , char *font_mapping) +unsigned int show::$0 // zp[2]:15 2002.0 +char *show::$1 // zp[2]:15 1001.0 +char show::$2 // reg byte a 2002.0 +char show::$4 // reg byte x 2002.0 +char show::$5 // reg byte a 2002.0 +char show::$6 // reg byte a 2002.0 +unsigned int show::$7 // zp[2]:15 1501.5 +unsigned int show::$8 // zp[2]:17 2002.0 +unsigned int show::$9 // zp[2]:15 2002.0 +char show::c +char show::c#0 // c zp[1]:3 273.6666666666667 +char *show::font_mapping +char *show::ptr +char *show::ptr#0 // ptr zp[2]:15 715.0 +char show::x +char show::x#0 // reg byte x 157.42857142857142 +char show::y +char show::y#0 // reg byte a 101.0 zp[1]:2 [ main::y#4 main::y#1 ] zp[1]:3 [ main::c#2 main::c#4 main::c#1 show::c#0 ] @@ -3422,7 +3424,7 @@ main: { lda #PROCPORT_RAM_CHARROM sta PROCPORT // font_2x2(CHARGEN, FONT_ORIGINAL) - // [2] call font_2x2 + // [2] call font_2x2 // [22] phi from main to font_2x2 [phi:main->font_2x2] jsr font_2x2 // main::@6 @@ -3434,7 +3436,7 @@ main: { // asm { cli } cli // char size = font_compress(FONT_ORIGINAL, FONT_COMPRESSED, FONT_COMPRESSED_MAP) - // [5] call font_compress + // [5] call font_compress // Compress the font finding identical characters // [62] phi from main::@6 to font_compress [phi:main::@6->font_compress] jsr font_compress @@ -3449,7 +3451,7 @@ main: { // memset(SCREEN, FONT_COMPRESSED_MAP[' '], 0x0400) // [8] memset::c#0 = *(FONT_COMPRESSED_MAP+' ') -- vbuxx=_deref_pbuc1 ldx FONT_COMPRESSED_MAP+' ' - // [9] call memset + // [9] call memset // Clear the screen // [85] phi from main::@5 to memset [phi:main::@5->memset] jsr memset @@ -3480,7 +3482,7 @@ main: { ldx.z x // [14] show::y#0 = main::y#4 -- vbuaa=vbuz1 lda.z y - // [15] call show + // [15] call show jsr show // main::@7 // show(c++, x, y, FONT_COMPRESSED_MAP); @@ -3509,6 +3511,7 @@ main: { } // font_2x2 // Create a 2x2-font by doubling all pixels of the 64 first chars +// void font_2x2(char *font_original, char *font_2x2) font_2x2: { .label __5 = $f .label __7 = $f @@ -3543,7 +3546,7 @@ font_2x2: { // font_2x2::@1 __b1: // char* next_2x2_right = next_2x2 + 0x40*8 - // [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (word)$40*8 -- pbuz1=pbuz2_plus_vwuc1 + // [24] font_2x2::next_2x2_right#0 = font_2x2::next_2x2_left#0 + (unsigned int)$40*8 -- pbuz1=pbuz2_plus_vwuc1 lda.z next_2x2_left clc adc #<$40*8 @@ -3684,7 +3687,7 @@ font_2x2: { bne __b8 // font_2x2::@7 // next_2x2_left = next_2x2 + 0x80*8 - // [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (word)$80*8 -- pbuz1=pbuz2_plus_vwuc1 + // [52] font_2x2::next_2x2_left#1 = font_2x2::next_2x2_left#0 + (unsigned int)$80*8 -- pbuz1=pbuz2_plus_vwuc1 lda.z next_2x2_left clc adc #<$80*8 @@ -3693,7 +3696,7 @@ font_2x2: { adc #>$80*8 sta.z next_2x2_left_1+1 // next_2x2_right = next_2x2 + 0xc0*8 - // [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (word)$c0*8 -- pbuz1=pbuz2_plus_vwuc1 + // [53] font_2x2::next_2x2_right#1 = font_2x2::next_2x2_left#0 + (unsigned int)$c0*8 -- pbuz1=pbuz2_plus_vwuc1 lda.z next_2x2_left clc adc #<$c0*8 @@ -3757,6 +3760,7 @@ font_2x2: { // The compressed font is put into font_compressed and the compress_mapping is updated // so that compress_mapping[c] points to the char in font_compressed that is identical to char c in font_original // Returns the size of the compressed font (in chars) +// __register(X) char font_compress(char *font_original, char *font_compressed, char *compress_mapping) font_compress: { .label next_original = $11 .label i = 8 @@ -3783,7 +3787,7 @@ font_compress: { // char found = font_find(next_original, font_compressed, font_size) // [64] font_find::glyph#0 = font_compress::next_original#2 // [65] font_find::font_size#0 = font_compress::font_size#2 - // [66] call font_find + // [66] call font_find // Look for the char in font_compressed // [106] phi from font_compress::@1 to font_find [phi:font_compress::@1->font_find] jsr font_find @@ -3877,14 +3881,14 @@ font_compress: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(byte register(X) c) +// void * memset(void *str, __register(X) char c, unsigned int num) memset: { .const num = $400 .label str = SCREEN .label end = str+num .label dst = $b // [86] phi from memset to memset::@1 [phi:memset->memset::@1] - // [86] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [86] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3922,7 +3926,7 @@ memset: { } // show // Show a 2x2 char on the screen at 2x2-position (x, y) using a font compress mapping -// show(byte zp(3) c, byte register(X) x, byte register(A) y) +// void show(__zp(3) char c, __register(X) char x, __register(A) char y, char *font_mapping) show: { .label __0 = $f .label __1 = $f @@ -3932,7 +3936,7 @@ show: { .label __8 = $11 .label __9 = $f // (unsigned int)y*80 - // [91] show::$7 = (word)show::y#0 -- vwuz1=_word_vbuaa + // [91] show::$7 = (unsigned int)show::y#0 -- vwuz1=_word_vbuaa sta.z __7 lda #0 sta.z __7+1 @@ -4024,7 +4028,7 @@ show: { // Look for a glyph within a font // Only looks at the first font_size glyphs // Returns the index of the glyph within the font. Returns 0xff if the glyph is not found. -// font_find(byte* zp($11) glyph, byte* zp($d) font, byte zp(7) font_size) +// __register(X) char font_find(__zp($11) char *glyph, __zp($d) char *font, __zp(7) char font_size) font_find: { .label glyph = $11 .label font_size = 7 diff --git a/src/test/ref/examples/c64/font-2x2/font-2x2.sym b/src/test/ref/examples/c64/font-2x2/font-2x2.sym index dfc77f273..30345e2fa 100644 --- a/src/test/ref/examples/c64/font-2x2/font-2x2.sym +++ b/src/test/ref/examples/c64/font-2x2/font-2x2.sym @@ -1,157 +1,157 @@ -constant byte* const CHARGEN = (byte*) 53248 -constant byte* const D018 = (byte*) 53272 -constant byte* const FONT_COMPRESSED = (byte*) 10240 -constant byte* FONT_COMPRESSED_MAP[$100] = { fill( $100, 0) } -constant byte* const FONT_ORIGINAL = (byte*) 8192 -constant byte* const PROCPORT = (byte*) 1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant byte* const SCREEN = (byte*) 1024 -void font_2x2(byte* font_2x2::font_original , byte* font_2x2::font_2x2) -byte~ font_2x2::$1 reg byte a 20002.0 -byte~ font_2x2::$10 reg byte a 2002.0 -byte~ font_2x2::$11 reg byte y 1001.0 -byte~ font_2x2::$12 reg byte a 2002.0 -byte~ font_2x2::$13 reg byte a 2002.0 -byte~ font_2x2::$14 reg byte y 1001.0 -byte~ font_2x2::$15 reg byte a 2002.0 -word~ font_2x2::$5 zp[2]:15 20002.0 -word~ font_2x2::$7 zp[2]:15 20002.0 -byte font_2x2::b -byte font_2x2::b#1 reg byte y 15001.5 -byte font_2x2::b#2 reg byte y 2000.2 -byte font_2x2::c -byte font_2x2::c#1 c zp[1]:7 151.5 -byte font_2x2::c#11 c zp[1]:7 5.611111111111111 -byte* font_2x2::font_2x2 -byte* font_2x2::font_original -byte font_2x2::glyph_bit -byte font_2x2::glyph_bit#0 reg byte x 5000.5 -byte font_2x2::glyph_bits -byte font_2x2::glyph_bits#0 glyph_bits zp[1]:6 2002.0 -byte font_2x2::glyph_bits#1 glyph_bits zp[1]:6 6667.333333333333 -byte font_2x2::glyph_bits#2 glyph_bits zp[1]:6 3444.8888888888887 -word font_2x2::glyph_bits_2x2 -word font_2x2::glyph_bits_2x2#1 glyph_bits_2x2 zp[2]:15 20002.0 -word font_2x2::glyph_bits_2x2#2 glyph_bits_2x2 zp[2]:15 2000.5000000000002 -word font_2x2::glyph_bits_2x2#3 glyph_bits_2x2 zp[2]:15 4000.4 -byte font_2x2::l -byte font_2x2::l#1 l zp[1]:8 1501.5 -byte font_2x2::l#2 l zp[1]:8 103.55172413793102 -byte font_2x2::l2 -byte font_2x2::l2#1 l2 zp[1]:5 1501.5 -byte font_2x2::l2#8 l2 zp[1]:5 250.25000000000003 -byte font_2x2::l2#9 l2 zp[1]:5 667.3333333333334 -byte* font_2x2::next_2x2 -byte* font_2x2::next_2x2#1 next_2x2 zp[2]:17 50.5 -byte* font_2x2::next_2x2_left -byte* font_2x2::next_2x2_left#0 next_2x2_left zp[2]:17 70.76470588235294 -byte* font_2x2::next_2x2_left#1 next_2x2_left_1 zp[2]:11 1001.0 -byte* font_2x2::next_2x2_left#10 next_2x2_left_1 zp[2]:11 202.0 -byte* font_2x2::next_2x2_left#7 next_2x2_left_1 zp[2]:11 157.8846153846154 -byte* font_2x2::next_2x2_left#8 next_2x2_left_1 zp[2]:11 1001.0 -byte* font_2x2::next_2x2_right -byte* font_2x2::next_2x2_right#0 next_2x2_right zp[2]:13 101.0 -byte* font_2x2::next_2x2_right#1 next_2x2_right zp[2]:13 2002.0 -byte* font_2x2::next_2x2_right#7 next_2x2_right zp[2]:13 157.8846153846154 -byte* font_2x2::next_2x2_right#8 next_2x2_right zp[2]:13 1001.0 -byte* font_2x2::next_original -byte* font_2x2::next_original#1 next_original zp[2]:9 67.33333333333333 -byte* font_2x2::next_original#4 next_original zp[2]:9 34.371428571428574 -byte font_compress(byte* font_compress::font_original , byte* font_compress::font_compressed , byte* font_compress::compress_mapping) -byte* font_compress::compress_mapping -byte* font_compress::font_compressed -byte* font_compress::font_original -byte font_compress::font_size -byte font_compress::font_size#1 reg byte x 101.0 -byte font_compress::font_size#2 font_size zp[1]:7 38.84615384615385 -byte font_compress::font_size#9 font_size zp[1]:7 202.0 -byte font_compress::found -byte font_compress::found#0 reg byte a 101.0 -byte font_compress::found#2 reg byte a 303.0 -byte font_compress::found#3 reg byte a 202.0 -byte font_compress::i -byte font_compress::i#1 i zp[1]:8 101.0 -byte font_compress::i#4 i zp[1]:8 16.833333333333332 -byte font_compress::l -byte font_compress::l#1 reg byte y 1501.5 -byte font_compress::l#2 reg byte y 2002.0 -byte* font_compress::next_compressed -byte* font_compress::next_compressed#1 next_compressed zp[2]:9 67.33333333333333 -byte* font_compress::next_compressed#4 next_compressed zp[2]:9 108.66666666666669 -byte* font_compress::next_compressed#7 next_compressed zp[2]:9 50.5 -byte* font_compress::next_original -byte* font_compress::next_original#1 next_original zp[2]:17 50.5 -byte* font_compress::next_original#2 next_original zp[2]:17 76.70588235294117 -byte font_compress::return -byte font_compress::return#1 reg byte x 60.599999999999994 -byte font_compress::return#5 reg byte x 202.0 -byte font_find(byte* font_find::glyph , byte* font_find::font , byte font_find::font_size) -byte* font_find::font -byte* font_find::font#1 font zp[2]:13 100001.0 -byte* font_find::font#4 font zp[2]:13 150000.375 -byte font_find::font_size -byte font_find::font_size#0 font_size zp[1]:7 8341.833333333332 -byte font_find::found -byte font_find::found#2 reg byte a 100001.0 -byte* font_find::glyph -byte* font_find::glyph#0 glyph zp[2]:17 76930.92307692308 -byte font_find::i -byte font_find::i#1 reg byte x 200002.0 -byte font_find::i#2 reg byte x 44444.88888888889 -byte font_find::l -byte font_find::l#1 reg byte y 1500001.5 -byte font_find::l#2 reg byte y 2000002.0 -byte font_find::return -byte font_find::return#0 reg byte a 202.0 -byte font_find::return#3 reg byte x 33367.33333333333 +__constant char * const CHARGEN = (char *) 53248 +__constant char * const D018 = (char *) 53272 +__constant char * const FONT_COMPRESSED = (char *) 10240 +__constant char FONT_COMPRESSED_MAP[$100] = { fill( $100, 0) } +__constant char * const FONT_ORIGINAL = (char *) 8192 +__constant char * const PROCPORT = (char *) 1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant char * const SCREEN = (char *) 1024 +void font_2x2(char *font_original , char *font_2x2) +char font_2x2::$1 // reg byte a 20002.0 +char font_2x2::$10 // reg byte a 2002.0 +char font_2x2::$11 // reg byte y 1001.0 +char font_2x2::$12 // reg byte a 2002.0 +char font_2x2::$13 // reg byte a 2002.0 +char font_2x2::$14 // reg byte y 1001.0 +char font_2x2::$15 // reg byte a 2002.0 +unsigned int font_2x2::$5 // zp[2]:15 20002.0 +unsigned int font_2x2::$7 // zp[2]:15 20002.0 +char font_2x2::b +char font_2x2::b#1 // reg byte y 15001.5 +char font_2x2::b#2 // reg byte y 2000.2 +char font_2x2::c +char font_2x2::c#1 // c zp[1]:7 151.5 +char font_2x2::c#11 // c zp[1]:7 5.611111111111111 +char *font_2x2::font_2x2 +char *font_2x2::font_original +char font_2x2::glyph_bit +char font_2x2::glyph_bit#0 // reg byte x 5000.5 +char font_2x2::glyph_bits +char font_2x2::glyph_bits#0 // glyph_bits zp[1]:6 2002.0 +char font_2x2::glyph_bits#1 // glyph_bits zp[1]:6 6667.333333333333 +char font_2x2::glyph_bits#2 // glyph_bits zp[1]:6 3444.8888888888887 +unsigned int font_2x2::glyph_bits_2x2 +unsigned int font_2x2::glyph_bits_2x2#1 // glyph_bits_2x2 zp[2]:15 20002.0 +unsigned int font_2x2::glyph_bits_2x2#2 // glyph_bits_2x2 zp[2]:15 2000.5000000000002 +unsigned int font_2x2::glyph_bits_2x2#3 // glyph_bits_2x2 zp[2]:15 4000.4 +char font_2x2::l +char font_2x2::l#1 // l zp[1]:8 1501.5 +char font_2x2::l#2 // l zp[1]:8 103.55172413793102 +char font_2x2::l2 +char font_2x2::l2#1 // l2 zp[1]:5 1501.5 +char font_2x2::l2#8 // l2 zp[1]:5 250.25000000000003 +char font_2x2::l2#9 // l2 zp[1]:5 667.3333333333334 +char *font_2x2::next_2x2 +char *font_2x2::next_2x2#1 // next_2x2 zp[2]:17 50.5 +char *font_2x2::next_2x2_left +char *font_2x2::next_2x2_left#0 // next_2x2_left zp[2]:17 70.76470588235294 +char *font_2x2::next_2x2_left#1 // next_2x2_left_1 zp[2]:11 1001.0 +char *font_2x2::next_2x2_left#10 // next_2x2_left_1 zp[2]:11 202.0 +char *font_2x2::next_2x2_left#7 // next_2x2_left_1 zp[2]:11 157.8846153846154 +char *font_2x2::next_2x2_left#8 // next_2x2_left_1 zp[2]:11 1001.0 +char *font_2x2::next_2x2_right +char *font_2x2::next_2x2_right#0 // next_2x2_right zp[2]:13 101.0 +char *font_2x2::next_2x2_right#1 // next_2x2_right zp[2]:13 2002.0 +char *font_2x2::next_2x2_right#7 // next_2x2_right zp[2]:13 157.8846153846154 +char *font_2x2::next_2x2_right#8 // next_2x2_right zp[2]:13 1001.0 +char *font_2x2::next_original +char *font_2x2::next_original#1 // next_original zp[2]:9 67.33333333333333 +char *font_2x2::next_original#4 // next_original zp[2]:9 34.371428571428574 +char font_compress(char *font_original , char *font_compressed , char *compress_mapping) +char *font_compress::compress_mapping +char *font_compress::font_compressed +char *font_compress::font_original +char font_compress::font_size +char font_compress::font_size#1 // reg byte x 101.0 +char font_compress::font_size#2 // font_size zp[1]:7 38.84615384615385 +char font_compress::font_size#9 // font_size zp[1]:7 202.0 +char font_compress::found +char font_compress::found#0 // reg byte a 101.0 +char font_compress::found#2 // reg byte a 303.0 +char font_compress::found#3 // reg byte a 202.0 +char font_compress::i +char font_compress::i#1 // i zp[1]:8 101.0 +char font_compress::i#4 // i zp[1]:8 16.833333333333332 +char font_compress::l +char font_compress::l#1 // reg byte y 1501.5 +char font_compress::l#2 // reg byte y 2002.0 +char *font_compress::next_compressed +char *font_compress::next_compressed#1 // next_compressed zp[2]:9 67.33333333333333 +char *font_compress::next_compressed#4 // next_compressed zp[2]:9 108.66666666666669 +char *font_compress::next_compressed#7 // next_compressed zp[2]:9 50.5 +char *font_compress::next_original +char *font_compress::next_original#1 // next_original zp[2]:17 50.5 +char *font_compress::next_original#2 // next_original zp[2]:17 76.70588235294117 +char font_compress::return +char font_compress::return#1 // reg byte x 60.599999999999994 +char font_compress::return#5 // reg byte x 202.0 +char font_find(char *glyph , char *font , char font_size) +char *font_find::font +char *font_find::font#1 // font zp[2]:13 100001.0 +char *font_find::font#4 // font zp[2]:13 150000.375 +char font_find::font_size +char font_find::font_size#0 // font_size zp[1]:7 8341.833333333332 +char font_find::found +char font_find::found#2 // reg byte a 100001.0 +char *font_find::glyph +char *font_find::glyph#0 // glyph zp[2]:17 76930.92307692308 +char font_find::i +char font_find::i#1 // reg byte x 200002.0 +char font_find::i#2 // reg byte x 44444.88888888889 +char font_find::l +char font_find::l#1 // reg byte y 1500001.5 +char font_find::l#2 // reg byte y 2000002.0 +char font_find::return +char font_find::return#0 // reg byte a 202.0 +char font_find::return#3 // reg byte x 33367.33333333333 void main() -byte main::c -byte main::c#1 c zp[1]:3 42.599999999999994 -byte main::c#2 c zp[1]:3 62.8 -byte main::c#4 c zp[1]:3 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)FONT_COMPRESSED/4&$f -byte* main::toD0181_screen -byte main::x -byte main::x#1 x zp[1]:4 151.5 -byte main::x#2 x zp[1]:4 50.5 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#4 y zp[1]:2 13.666666666666664 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#0 reg byte x 17.166666666666664 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:11 202.0 -byte* memset::dst#2 dst zp[2]:11 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $400 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)SCREEN -void show(byte show::c , byte show::x , byte show::y , byte* show::font_mapping) -word~ show::$0 zp[2]:15 2002.0 -byte*~ show::$1 zp[2]:15 1001.0 -byte~ show::$2 reg byte a 2002.0 -byte~ show::$4 reg byte x 2002.0 -byte~ show::$5 reg byte a 2002.0 -byte~ show::$6 reg byte a 2002.0 -word~ show::$7 zp[2]:15 1501.5 -word~ show::$8 zp[2]:17 2002.0 -word~ show::$9 zp[2]:15 2002.0 -byte show::c -byte show::c#0 c zp[1]:3 273.6666666666667 -byte* show::font_mapping -byte* show::ptr -byte* show::ptr#0 ptr zp[2]:15 715.0 -byte show::x -byte show::x#0 reg byte x 157.42857142857142 -byte show::y -byte show::y#0 reg byte a 101.0 +char main::c +char main::c#1 // c zp[1]:3 42.599999999999994 +char main::c#2 // c zp[1]:3 62.8 +char main::c#4 // c zp[1]:3 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)FONT_COMPRESSED/4&$f // toD0181_return +char *main::toD0181_screen +char main::x +char main::x#1 // x zp[1]:4 151.5 +char main::x#2 // x zp[1]:4 50.5 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#4 // y zp[1]:2 13.666666666666664 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#0 // reg byte x 17.166666666666664 +char *memset::dst +char *memset::dst#1 // dst zp[2]:11 202.0 +char *memset::dst#2 // dst zp[2]:11 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $400 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)SCREEN // str +void show(char c , char x , char y , char *font_mapping) +unsigned int show::$0 // zp[2]:15 2002.0 +char *show::$1 // zp[2]:15 1001.0 +char show::$2 // reg byte a 2002.0 +char show::$4 // reg byte x 2002.0 +char show::$5 // reg byte a 2002.0 +char show::$6 // reg byte a 2002.0 +unsigned int show::$7 // zp[2]:15 1501.5 +unsigned int show::$8 // zp[2]:17 2002.0 +unsigned int show::$9 // zp[2]:15 2002.0 +char show::c +char show::c#0 // c zp[1]:3 273.6666666666667 +char *show::font_mapping +char *show::ptr +char *show::ptr#0 // ptr zp[2]:15 715.0 +char show::x +char show::x#0 // reg byte x 157.42857142857142 +char show::y +char show::y#0 // reg byte a 101.0 zp[1]:2 [ main::y#4 main::y#1 ] zp[1]:3 [ main::c#2 main::c#4 main::c#1 show::c#0 ] diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg b/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg index 41190dd1c..c46fe5bdb 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.cfg @@ -1,12 +1,12 @@ __interrupt(hardware_clobber) void irq_bottom_2() irq_bottom_2: scope:[irq_bottom_2] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [4] *HARDWARE_IRQ = &irq_bottom_1 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED to:irq_bottom_2::@return irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 [6] return @@ -14,12 +14,12 @@ irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 __interrupt(hardware_clobber) void irq_bottom_1() irq_bottom_1: scope:[irq_bottom_1] from - [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd + [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [11] *HARDWARE_IRQ = &irq_bottom_2 - [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED + [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED to:irq_bottom_1::@return irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1 [13] return @@ -29,10 +29,10 @@ void main() main: scope:[main] from [14] *GHOST_BYTE = 0 asm { sei } - [16] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa - [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa + [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [20] *HARDWARE_IRQ = &irq_bottom_1 [21] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [22] *PROCPORT = PROCPORT_RAM_IO diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.log b/src/test/ref/examples/c64/irq/irq-hyperscreen.log index 61a8c1199..d4879aae6 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.log +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.log @@ -8,10 +8,10 @@ void main() main: scope:[main] from __start *GHOST_BYTE = 0 asm { sei } - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER *HARDWARE_IRQ = &irq_bottom_1 *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO @@ -25,12 +25,12 @@ main::@return: scope:[main] from __interrupt(hardware_clobber) void irq_bottom_1() irq_bottom_1: scope:[irq_bottom_1] from - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd *HARDWARE_IRQ = &irq_bottom_2 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED to:irq_bottom_1::@return irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1 return @@ -38,12 +38,12 @@ irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1 __interrupt(hardware_clobber) void irq_bottom_2() irq_bottom_2: scope:[irq_bottom_2] from - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa *HARDWARE_IRQ = &irq_bottom_1 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED to:irq_bottom_2::@return irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 return @@ -51,7 +51,7 @@ irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -60,49 +60,49 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const GHOST_BYTE = (byte*)$3fff -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant const byte IRQ_RASTER = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant const byte RED = 2 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const GHOST_BYTE = (char *)$3fff +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant const char IRQ_RASTER = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant const char RED = 2 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 void __start() __interrupt(hardware_clobber) void irq_bottom_1() __interrupt(hardware_clobber) void irq_bottom_2() void main() Adding number conversion cast (unumber) 0 in *GHOST_BYTE = 0 -Adding number conversion cast (unumber) $7f in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -Adding number conversion cast (unumber) $fa in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -Adding number conversion cast (unumber) $ff^VICII_RSEL in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL -Adding number conversion cast (unumber) $ff in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (unumber)$ff^VICII_RSEL -Adding number conversion cast (unumber) $fd in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -Adding number conversion cast (unumber) $fa in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa +Adding number conversion cast (unumber) $7f in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f +Adding number conversion cast (unumber) $fa in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa +Adding number conversion cast (unumber) $ff^VICII_RSEL in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL +Adding number conversion cast (unumber) $ff in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & (unumber)$ff^VICII_RSEL +Adding number conversion cast (unumber) $fd in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd +Adding number conversion cast (unumber) $fa in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *GHOST_BYTE = (unumber)0 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fa -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fd -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fa +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fa +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fd +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fa Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 16383 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 65534 +Simplifying constant pointer cast (char *) 16383 Simplifying constant integer cast 0 Simplifying constant integer cast $7f Simplifying constant integer cast $fa @@ -111,12 +111,12 @@ Simplifying constant integer cast $ff Simplifying constant integer cast $fd Simplifying constant integer cast $fa Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $fd -Finalized unsigned number type (byte) $fa +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $fd +Finalized unsigned number type (char) $fa Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -136,12 +136,12 @@ FINAL CONTROL FLOW GRAPH __interrupt(hardware_clobber) void irq_bottom_2() irq_bottom_2: scope:[irq_bottom_2] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [4] *HARDWARE_IRQ = &irq_bottom_1 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED to:irq_bottom_2::@return irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 [6] return @@ -149,12 +149,12 @@ irq_bottom_2::@return: scope:[irq_bottom_2] from irq_bottom_2 __interrupt(hardware_clobber) void irq_bottom_1() irq_bottom_1: scope:[irq_bottom_1] from - [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd + [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [11] *HARDWARE_IRQ = &irq_bottom_2 - [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED + [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED to:irq_bottom_1::@return irq_bottom_1::@return: scope:[irq_bottom_1] from irq_bottom_1 [13] return @@ -164,10 +164,10 @@ void main() main: scope:[main] from [14] *GHOST_BYTE = 0 asm { sei } - [16] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa - [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa + [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [20] *HARDWARE_IRQ = &irq_bottom_1 [21] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [22] *PROCPORT = PROCPORT_RAM_IO @@ -186,25 +186,25 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] *HARDWARE_IRQ = &irq_bottom_1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] *HARDWARE_IRQ = &irq_bottom_2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [14] *GHOST_BYTE = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [16] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a -Statement [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a -Statement [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [ ] ( [ ] { } ) always clobbers reg byte a -Statement [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa [ ] ( [ ] { } ) always clobbers reg byte a +Statement [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [20] *HARDWARE_IRQ = &irq_bottom_1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [21] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [22] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a @@ -292,19 +292,19 @@ ASSEMBLER BEFORE OPTIMIZATION irq_bottom_2: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set screen height back to 25 lines (preparing for the next screen) lda #VICII_RSEL ora VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at line $fa lda #$fa sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER @@ -313,7 +313,7 @@ irq_bottom_2: { sta HARDWARE_IRQ lda #>irq_bottom_1 sta HARDWARE_IRQ+1 - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn @@ -330,19 +330,19 @@ irq_bottom_2: { irq_bottom_1: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 - // [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 + // [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set screen height to 24 lines - this is done after the border should have started drawing - so it wont start lda #$ff^VICII_RSEL and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at line $fd lda #$fd sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER @@ -351,7 +351,7 @@ irq_bottom_1: { sta HARDWARE_IRQ lda #>irq_bottom_2 sta HARDWARE_IRQ+1 - // [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 + // [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn @@ -370,19 +370,19 @@ main: { sta GHOST_BYTE // asm { sei } sei - // [16] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fa lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 + // [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 lda #$fa sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE @@ -424,25 +424,25 @@ Removing instruction __b1_from___b1: Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const GHOST_BYTE = (byte*) 16383 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant const byte IRQ_RASTER = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant const byte RED = 2 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const GHOST_BYTE = (char *) 16383 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant const char IRQ_RASTER = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant const char RED = 2 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 __interrupt(hardware_clobber) void irq_bottom_1() __interrupt(hardware_clobber) void irq_bottom_2() void main() @@ -516,22 +516,22 @@ irq_bottom_2: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 // VICII->BORDER_COLOR = WHITE - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->CONTROL1 |= VICII_RSEL - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) | VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set screen height back to 25 lines (preparing for the next screen) lda #VICII_RSEL ora VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->IRQ_STATUS = IRQ_RASTER - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // VICII->RASTER = $fa - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 // Trigger IRQ 1 at line $fa lda #$fa sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER @@ -542,7 +542,7 @@ irq_bottom_2: { lda #>irq_bottom_1 sta HARDWARE_IRQ+1 // VICII->BORDER_COLOR = RED - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // irq_bottom_2::@return @@ -559,22 +559,22 @@ irq_bottom_1: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 // VICII->BORDER_COLOR = WHITE - // [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 + // [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->CONTROL1 &= ($ff^VICII_RSEL) - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $ff^VICII_RSEL -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set screen height to 24 lines - this is done after the border should have started drawing - so it wont start lda #$ff^VICII_RSEL and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->IRQ_STATUS = IRQ_RASTER - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // VICII->RASTER = $fd - // [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 // Trigger IRQ 2 at line $fd lda #$fd sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER @@ -585,7 +585,7 @@ irq_bottom_1: { lda #>irq_bottom_2 sta HARDWARE_IRQ+1 // VICII->BORDER_COLOR = RED - // [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 + // [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = RED -- _deref_pbuc1=vbuc2 lda #RED sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // irq_bottom_1::@return @@ -606,22 +606,22 @@ main: { // asm { sei } sei // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [16] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [16] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &=$7f - // [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fa lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->RASTER = $fa - // [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 + // [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fa -- _deref_pbuc1=vbuc2 lda #$fa sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // VICII->IRQ_ENABLE = IRQ_RASTER - // [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.sym b/src/test/ref/examples/c64/irq/irq-hyperscreen.sym index 0b32dc079..184713a9f 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.sym +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.sym @@ -1,22 +1,22 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const GHOST_BYTE = (byte*) 16383 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant const byte IRQ_RASTER = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant const byte RED = 2 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const GHOST_BYTE = (char *) 16383 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant const char IRQ_RASTER = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant const char RED = 2 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 __interrupt(hardware_clobber) void irq_bottom_1() __interrupt(hardware_clobber) void irq_bottom_2() void main() diff --git a/src/test/ref/examples/c64/kernalload/kernalload.asm b/src/test/ref/examples/c64/kernalload/kernalload.asm index 8df7ce85e..38b794a28 100644 --- a/src/test/ref/examples/c64/kernalload/kernalload.asm +++ b/src/test/ref/examples/c64/kernalload/kernalload.asm @@ -75,6 +75,7 @@ main: { // Returns a status: // - 0xff: Success // - other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) +// __register(A) char loadFileToMemory(char device, char *filename, char *address) loadFileToMemory: { .const device = 8 // setnam(filename) @@ -100,7 +101,7 @@ loadFileToMemory: { } // Basic ERROR function // ERROR. Show error. -// error(byte zp(6) err) +// void error(__zp(6) volatile char err) error: { .label err = 6 // asm @@ -111,7 +112,7 @@ error: { } // Kernal SETNAM function // SETNAM. Set file name parameters. -// setnam(byte* zp(7) filename) +// void setnam(__zp(7) char * volatile filename) setnam: { .label filename = 7 .label filename_len = $d @@ -134,7 +135,7 @@ setnam: { rts } // SETLFS. Set file parameters. -// setlfs(byte zp(9) device) +// void setlfs(__zp(9) volatile char device) setlfs: { .label device = 9 // asm @@ -149,7 +150,7 @@ setlfs: { // - verify: 0 = Load, 1-255 = Verify // // Returns a status, 0xff: Success other: Kernal Error Code -// load(byte* zp($a) address, byte zp($c) verify) +// __register(A) char load(__zp($a) char * volatile address, __zp($c) volatile char verify) load: { .label address = $a .label verify = $c @@ -171,7 +172,7 @@ load: { rts } // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(2) str) +// __zp(4) unsigned int strlen(__zp(2) char *str) strlen: { .label len = 4 .label str = 2 diff --git a/src/test/ref/examples/c64/kernalload/kernalload.cfg b/src/test/ref/examples/c64/kernalload/kernalload.cfg index 8b967d7e7..dbe38c4f5 100644 --- a/src/test/ref/examples/c64/kernalload/kernalload.cfg +++ b/src/test/ref/examples/c64/kernalload/kernalload.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call loadFileToMemory + [1] call loadFileToMemory [2] loadFileToMemory::return#0 = loadFileToMemory::return#1 to:main::@4 main::@4: scope:[main] from main @@ -10,12 +10,12 @@ main::@4: scope:[main] from main [4] if(main::status#0==$ff) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@4 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [6] error::err = main::status#0 - [7] call error + [7] call error to:main::@1 main::@1: scope:[main] from main::@2 main::@4 - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@1 [9] phi() @@ -30,19 +30,19 @@ main::@return: scope:[main] from main::@3 [14] return to:@return -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) +char loadFileToMemory(char device , char *filename , char *address) loadFileToMemory: scope:[loadFileToMemory] from main [15] setnam::filename = main::filename - [16] call setnam + [16] call setnam to:loadFileToMemory::@1 loadFileToMemory::@1: scope:[loadFileToMemory] from loadFileToMemory [17] setlfs::device = loadFileToMemory::device#0 - [18] call setlfs + [18] call setlfs to:loadFileToMemory::@2 loadFileToMemory::@2: scope:[loadFileToMemory] from loadFileToMemory::@1 [19] load::address = LOAD_SPRITE [20] load::verify = 0 - [21] call load + [21] call load [22] load::return#0 = load::return#2 to:loadFileToMemory::@3 loadFileToMemory::@3: scope:[loadFileToMemory] from loadFileToMemory::@2 @@ -52,7 +52,7 @@ loadFileToMemory::@return: scope:[loadFileToMemory] from loadFileToMemory::@3 [24] return to:@return -void error(volatile byte error::err) +void error(volatile char err) error: scope:[error] from main::@2 asm { ldxerr jsr$a437 } to:error::@return @@ -60,22 +60,22 @@ error::@return: scope:[error] from error [26] return to:@return -void setnam(byte* volatile setnam::filename) +void setnam(char * volatile filename) setnam: scope:[setnam] from loadFileToMemory [27] strlen::str#1 = setnam::filename - [28] call strlen + [28] call strlen [29] strlen::return#2 = strlen::len#2 to:setnam::@1 setnam::@1: scope:[setnam] from setnam [30] setnam::$0 = strlen::return#2 - [31] setnam::filename_len = (byte)setnam::$0 + [31] setnam::filename_len = (char)setnam::$0 asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } to:setnam::@return setnam::@return: scope:[setnam] from setnam::@1 [33] return to:@return -void setlfs(volatile byte setlfs::device) +void setlfs(volatile char device) setlfs: scope:[setlfs] from loadFileToMemory::@1 asm { ldxdevice lda#1 ldy#0 jsr$ffba } to:setlfs::@return @@ -83,7 +83,7 @@ setlfs::@return: scope:[setlfs] from setlfs [35] return to:@return -byte load(byte* volatile load::address , volatile byte load::verify) +char load(char * volatile address , volatile char verify) load: scope:[load] from loadFileToMemory::@2 [36] load::status = 0 asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } @@ -94,7 +94,7 @@ load::@return: scope:[load] from load [40] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from setnam [41] phi() to:strlen::@1 diff --git a/src/test/ref/examples/c64/kernalload/kernalload.log b/src/test/ref/examples/c64/kernalload/kernalload.log index 293dccd0e..1efb089e3 100644 --- a/src/test/ref/examples/c64/kernalload/kernalload.log +++ b/src/test/ref/examples/c64/kernalload/kernalload.log @@ -12,7 +12,7 @@ Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from setnam strlen::str#4 = phi( setnam/strlen::str#1 ) strlen::len#0 = 0 @@ -44,7 +44,7 @@ main: scope:[main] from __start loadFileToMemory::device#0 = 8 loadFileToMemory::filename#0 = main::filename loadFileToMemory::address#0 = LOAD_SPRITE - call loadFileToMemory + call loadFileToMemory loadFileToMemory::return#0 = loadFileToMemory::return#2 to:main::@4 main::@4: scope:[main] from main @@ -55,14 +55,14 @@ main::@4: scope:[main] from main if(main::$2) goto main::@1 to:main::@2 main::@1: scope:[main] from main::@4 main::@5 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 main::toSpritePtr1_sprite#0 = LOAD_SPRITE to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@1 main::toSpritePtr1_sprite#1 = phi( main::@1/main::toSpritePtr1_sprite#0 ) - main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#1 + main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#1 main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 - main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 + main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 to:main::toSpritePtr1_@return main::toSpritePtr1_@return: scope:[main] from main::toSpritePtr1 main::toSpritePtr1_return#2 = phi( main::toSpritePtr1/main::toSpritePtr1_return#0 ) @@ -78,9 +78,9 @@ main::@3: scope:[main] from main::toSpritePtr1_@return to:main::@return main::@2: scope:[main] from main::@4 main::status#1 = phi( main::@4/main::status#0 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 error::err = main::status#1 - call error + call error to:main::@5 main::@5: scope:[main] from main::@2 to:main::@1 @@ -88,25 +88,25 @@ main::@return: scope:[main] from main::@3 return to:@return -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) +char loadFileToMemory(char device , char *filename , char *address) loadFileToMemory: scope:[loadFileToMemory] from main loadFileToMemory::address#3 = phi( main/loadFileToMemory::address#0 ) loadFileToMemory::device#2 = phi( main/loadFileToMemory::device#0 ) loadFileToMemory::filename#1 = phi( main/loadFileToMemory::filename#0 ) setnam::filename = loadFileToMemory::filename#1 - call setnam + call setnam to:loadFileToMemory::@1 loadFileToMemory::@1: scope:[loadFileToMemory] from loadFileToMemory loadFileToMemory::address#2 = phi( loadFileToMemory/loadFileToMemory::address#3 ) loadFileToMemory::device#1 = phi( loadFileToMemory/loadFileToMemory::device#2 ) setlfs::device = loadFileToMemory::device#1 - call setlfs + call setlfs to:loadFileToMemory::@2 loadFileToMemory::@2: scope:[loadFileToMemory] from loadFileToMemory::@1 loadFileToMemory::address#1 = phi( loadFileToMemory::@1/loadFileToMemory::address#2 ) load::address = loadFileToMemory::address#1 load::verify = 0 - call load + call load load::return#0 = load::return#2 to:loadFileToMemory::@3 loadFileToMemory::@3: scope:[loadFileToMemory] from loadFileToMemory::@2 @@ -120,7 +120,7 @@ loadFileToMemory::@return: scope:[loadFileToMemory] from loadFileToMemory::@3 return to:@return -void error(volatile byte error::err) +void error(volatile char err) error: scope:[error] from main::@2 asm { ldxerr jsr$a437 } to:error::@return @@ -128,23 +128,23 @@ error::@return: scope:[error] from error return to:@return -void setnam(byte* volatile setnam::filename) +void setnam(char * volatile filename) setnam: scope:[setnam] from loadFileToMemory strlen::str#1 = setnam::filename - call strlen + call strlen strlen::return#2 = strlen::return#1 to:setnam::@1 setnam::@1: scope:[setnam] from setnam strlen::return#4 = phi( setnam/strlen::return#2 ) setnam::$0 = strlen::return#4 - setnam::filename_len = (byte)setnam::$0 + setnam::filename_len = (char)setnam::$0 asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } to:setnam::@return setnam::@return: scope:[setnam] from setnam::@1 return to:@return -void setlfs(volatile byte setlfs::device) +void setlfs(volatile char device) setlfs: scope:[setlfs] from loadFileToMemory::@1 asm { ldxdevice lda#1 ldy#0 jsr$ffba } to:setlfs::@return @@ -152,7 +152,7 @@ setlfs::@return: scope:[setlfs] from setlfs return to:@return -byte load(byte* volatile load::address , volatile byte load::verify) +char load(char * volatile address , volatile char verify) load: scope:[load] from loadFileToMemory::@2 load::status = 0 asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } @@ -166,7 +166,7 @@ load::@return: scope:[load] from load void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -175,104 +175,104 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte GREEN = 5 -constant byte* const LOAD_SPRITE = (byte*)$3000 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SCREEN = (byte*)$400 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) +__constant const char GREEN = 5 +__constant char * const LOAD_SPRITE = (char *)$3000 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SCREEN = (char *)$400 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*)$d027 -constant byte* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char * const SPRITES_COLOR = (char *)$d027 +__constant char * const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() -void error(volatile byte error::err) -volatile byte error::err loadstore -byte load(byte* volatile load::address , volatile byte load::verify) -byte* volatile load::address loadstore -byte load::return -byte load::return#0 -byte load::return#1 -byte load::return#2 -byte load::return#3 -byte load::return#4 -volatile byte load::status loadstore -volatile byte load::verify loadstore -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) -byte~ loadFileToMemory::$2 -byte* loadFileToMemory::address -byte* loadFileToMemory::address#0 -byte* loadFileToMemory::address#1 -byte* loadFileToMemory::address#2 -byte* loadFileToMemory::address#3 -byte loadFileToMemory::device -byte loadFileToMemory::device#0 -byte loadFileToMemory::device#1 -byte loadFileToMemory::device#2 -byte* loadFileToMemory::filename -byte* loadFileToMemory::filename#0 -byte* loadFileToMemory::filename#1 -byte loadFileToMemory::return -byte loadFileToMemory::return#0 -byte loadFileToMemory::return#1 -byte loadFileToMemory::return#2 -byte loadFileToMemory::return#3 -byte loadFileToMemory::return#4 +void error(volatile char err) +__loadstore volatile char error::err +char load(char * volatile address , volatile char verify) +__loadstore char * volatile load::address +char load::return +char load::return#0 +char load::return#1 +char load::return#2 +char load::return#3 +char load::return#4 +__loadstore volatile char load::status +__loadstore volatile char load::verify +char loadFileToMemory(char device , char *filename , char *address) +char loadFileToMemory::$2 +char *loadFileToMemory::address +char *loadFileToMemory::address#0 +char *loadFileToMemory::address#1 +char *loadFileToMemory::address#2 +char *loadFileToMemory::address#3 +char loadFileToMemory::device +char loadFileToMemory::device#0 +char loadFileToMemory::device#1 +char loadFileToMemory::device#2 +char *loadFileToMemory::filename +char *loadFileToMemory::filename#0 +char *loadFileToMemory::filename#1 +char loadFileToMemory::return +char loadFileToMemory::return#0 +char loadFileToMemory::return#1 +char loadFileToMemory::return#2 +char loadFileToMemory::return#3 +char loadFileToMemory::return#4 void main() -bool~ main::$1 -bool~ main::$2 -byte~ main::$3 -constant byte* main::filename[7] = "SPRITE" -byte main::status -byte main::status#0 -byte main::status#1 -number~ main::toSpritePtr1_$0 -word~ main::toSpritePtr1_$1 -byte main::toSpritePtr1_return -byte main::toSpritePtr1_return#0 -byte main::toSpritePtr1_return#1 -byte main::toSpritePtr1_return#2 -byte main::toSpritePtr1_return#3 -byte* main::toSpritePtr1_sprite -byte* main::toSpritePtr1_sprite#0 -byte* main::toSpritePtr1_sprite#1 -void setlfs(volatile byte setlfs::device) -volatile byte setlfs::device loadstore -void setnam(byte* volatile setnam::filename) -word~ setnam::$0 -byte* volatile setnam::filename loadstore -volatile byte setnam::filename_len loadstore -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 +bool main::$1 +bool main::$2 +char main::$3 +__constant char main::filename[7] = "SPRITE" +char main::status +char main::status#0 +char main::status#1 +number main::toSpritePtr1_$0 +unsigned int main::toSpritePtr1_$1 +char main::toSpritePtr1_return +char main::toSpritePtr1_return#0 +char main::toSpritePtr1_return#1 +char main::toSpritePtr1_return#2 +char main::toSpritePtr1_return#3 +char *main::toSpritePtr1_sprite +char *main::toSpritePtr1_sprite#0 +char *main::toSpritePtr1_sprite#1 +void setlfs(volatile char device) +__loadstore volatile char setlfs::device +void setnam(char * volatile filename) +unsigned int setnam::$0 +__loadstore char * volatile setnam::filename +__loadstore volatile char setnam::filename_len +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#2 Adding number conversion cast (unumber) 8 in loadFileToMemory::device#0 = 8 Adding number conversion cast (unumber) $ff in main::$1 = main::status#0 != $ff -Adding number conversion cast (unumber) 1 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 +Adding number conversion cast (unumber) 1 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 Adding number conversion cast (unumber) $40 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Adding number conversion cast (unumber) main::toSpritePtr1_$0 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / (unumber)$40 Adding number conversion cast (unumber) 0 in SPRITES_PTR[0] = main::$3 @@ -281,22 +281,22 @@ Adding number conversion cast (unumber) $15 in SPRITES_XPOS[0] = $15 Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = ((unumber)) $15 Adding number conversion cast (unumber) $33 in SPRITES_YPOS[0] = $33 Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = ((unumber)) $33 -Adding number conversion cast (unumber) 2 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 +Adding number conversion cast (unumber) 2 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 Adding number conversion cast (unumber) 0 in load::verify = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast loadFileToMemory::device#0 = (unumber)8 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 Inlining cast SPRITES_XPOS[(unumber)0] = (unumber)$15 Inlining cast SPRITES_YPOS[(unumber)0] = (unumber)$33 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)2 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)2 Inlining cast load::verify = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53287 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 12288 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53287 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 12288 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast $ff @@ -311,21 +311,21 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $33 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $33 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 +Inferred type updated to unsigned int in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Inversing boolean not [21] main::$2 = main::status#0 == $ff from [20] main::$1 = main::status#0 != $ff Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)load::return#1 = load::status load::return#4 load::return#2 @@ -357,7 +357,7 @@ Constant loadFileToMemory::filename#0 = main::filename Constant loadFileToMemory::address#0 = LOAD_SPRITE Constant main::toSpritePtr1_sprite#0 = LOAD_SPRITE Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#0 +Constant main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#0 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SPRITES_PTR in [21] SPRITES_PTR[0] = main::toSpritePtr1_return#0 Simplifying expression containing zero SPRITES_COLOR in [22] SPRITES_COLOR[0] = GREEN @@ -374,15 +374,15 @@ Constant right-side identified [10] main::toSpritePtr1_$0 = main::toSpritePtr1_$ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toSpritePtr1_$0 = main::toSpritePtr1_$1/$40 Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 +Constant main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)load::return#1 = load::status load::return#2 Inlining constant with var siblings strlen::len#0 Constant inlined main::toSpritePtr1_sprite#0 = LOAD_SPRITE Constant inlined loadFileToMemory::address#0 = LOAD_SPRITE -Constant inlined main::toSpritePtr1_$1 = (word)LOAD_SPRITE +Constant inlined main::toSpritePtr1_$1 = (unsigned int)LOAD_SPRITE Constant inlined strlen::len#0 = 0 -Constant inlined main::toSpritePtr1_$0 = (word)LOAD_SPRITE/$40 +Constant inlined main::toSpritePtr1_$0 = (unsigned int)LOAD_SPRITE/$40 Constant inlined loadFileToMemory::filename#0 = main::filename Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)load::return#1 = load::status load::return#2 @@ -415,7 +415,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call loadFileToMemory + [1] call loadFileToMemory [2] loadFileToMemory::return#0 = loadFileToMemory::return#1 to:main::@4 main::@4: scope:[main] from main @@ -423,12 +423,12 @@ main::@4: scope:[main] from main [4] if(main::status#0==$ff) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@4 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [6] error::err = main::status#0 - [7] call error + [7] call error to:main::@1 main::@1: scope:[main] from main::@2 main::@4 - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@1 [9] phi() @@ -443,19 +443,19 @@ main::@return: scope:[main] from main::@3 [14] return to:@return -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) +char loadFileToMemory(char device , char *filename , char *address) loadFileToMemory: scope:[loadFileToMemory] from main [15] setnam::filename = main::filename - [16] call setnam + [16] call setnam to:loadFileToMemory::@1 loadFileToMemory::@1: scope:[loadFileToMemory] from loadFileToMemory [17] setlfs::device = loadFileToMemory::device#0 - [18] call setlfs + [18] call setlfs to:loadFileToMemory::@2 loadFileToMemory::@2: scope:[loadFileToMemory] from loadFileToMemory::@1 [19] load::address = LOAD_SPRITE [20] load::verify = 0 - [21] call load + [21] call load [22] load::return#0 = load::return#2 to:loadFileToMemory::@3 loadFileToMemory::@3: scope:[loadFileToMemory] from loadFileToMemory::@2 @@ -465,7 +465,7 @@ loadFileToMemory::@return: scope:[loadFileToMemory] from loadFileToMemory::@3 [24] return to:@return -void error(volatile byte error::err) +void error(volatile char err) error: scope:[error] from main::@2 asm { ldxerr jsr$a437 } to:error::@return @@ -473,22 +473,22 @@ error::@return: scope:[error] from error [26] return to:@return -void setnam(byte* volatile setnam::filename) +void setnam(char * volatile filename) setnam: scope:[setnam] from loadFileToMemory [27] strlen::str#1 = setnam::filename - [28] call strlen + [28] call strlen [29] strlen::return#2 = strlen::len#2 to:setnam::@1 setnam::@1: scope:[setnam] from setnam [30] setnam::$0 = strlen::return#2 - [31] setnam::filename_len = (byte)setnam::$0 + [31] setnam::filename_len = (char)setnam::$0 asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } to:setnam::@return setnam::@return: scope:[setnam] from setnam::@1 [33] return to:@return -void setlfs(volatile byte setlfs::device) +void setlfs(volatile char device) setlfs: scope:[setlfs] from loadFileToMemory::@1 asm { ldxdevice lda#1 ldy#0 jsr$ffba } to:setlfs::@return @@ -496,7 +496,7 @@ setlfs::@return: scope:[setlfs] from setlfs [35] return to:@return -byte load(byte* volatile load::address , volatile byte load::verify) +char load(char * volatile address , volatile char verify) load: scope:[load] from loadFileToMemory::@2 [36] load::status = 0 asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } @@ -507,7 +507,7 @@ load::@return: scope:[load] from load [40] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from setnam [41] phi() to:strlen::@1 @@ -526,44 +526,44 @@ strlen::@2: scope:[strlen] from strlen::@1 VARIABLE REGISTER WEIGHTS -void error(volatile byte error::err) -volatile byte error::err loadstore 2.0 -byte load(byte* volatile load::address , volatile byte load::verify) -byte* volatile load::address loadstore 3.6666666666666665 -byte load::return -byte load::return#0 22.0 -byte load::return#1 202.0 -byte load::return#2 37.33333333333333 -volatile byte load::status loadstore 101.0 -volatile byte load::verify loadstore 5.5 -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) -byte* loadFileToMemory::address -byte loadFileToMemory::device -byte* loadFileToMemory::filename -byte loadFileToMemory::return -byte loadFileToMemory::return#0 4.0 -byte loadFileToMemory::return#1 4.333333333333333 +void error(volatile char err) +__loadstore volatile char error::err // 2.0 +char load(char * volatile address , volatile char verify) +__loadstore char * volatile load::address // 3.6666666666666665 +char load::return +char load::return#0 // 22.0 +char load::return#1 // 202.0 +char load::return#2 // 37.33333333333333 +__loadstore volatile char load::status // 101.0 +__loadstore volatile char load::verify // 5.5 +char loadFileToMemory(char device , char *filename , char *address) +char *loadFileToMemory::address +char loadFileToMemory::device +char *loadFileToMemory::filename +char loadFileToMemory::return +char loadFileToMemory::return#0 // 4.0 +char loadFileToMemory::return#1 // 4.333333333333333 void main() -byte main::status -byte main::status#0 2.0 -byte main::toSpritePtr1_return -byte* main::toSpritePtr1_sprite -void setlfs(volatile byte setlfs::device) -volatile byte setlfs::device loadstore 11.0 -void setnam(byte* volatile setnam::filename) -word~ setnam::$0 101.0 -byte* volatile setnam::filename loadstore 18.666666666666664 -volatile byte setnam::filename_len loadstore 101.0 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 10001.0 -word strlen::len#2 5025.75 -word strlen::return -word strlen::return#2 202.0 -byte* strlen::str -byte* strlen::str#0 20002.0 -byte* strlen::str#1 551.0 -byte* strlen::str#2 10334.666666666666 +char main::status +char main::status#0 // 2.0 +char main::toSpritePtr1_return +char *main::toSpritePtr1_sprite +void setlfs(volatile char device) +__loadstore volatile char setlfs::device // 11.0 +void setnam(char * volatile filename) +unsigned int setnam::$0 // 101.0 +__loadstore char * volatile setnam::filename // 18.666666666666664 +__loadstore volatile char setnam::filename_len // 101.0 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // 10001.0 +unsigned int strlen::len#2 // 5025.75 +unsigned int strlen::return +unsigned int strlen::return#2 // 202.0 +char *strlen::str +char *strlen::str#0 // 20002.0 +char *strlen::str#1 // 551.0 +char *strlen::str#2 // 10334.666666666666 Initial phi equivalence classes [ strlen::str#2 strlen::str#1 strlen::str#0 ] @@ -619,9 +619,9 @@ Allocated zp[1]:22 [ load::status ] Allocated zp[1]:23 [ load::return#1 ] Allocated zp[1]:24 [ load::return#2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ main::status#0 ] ( [ main::status#0 ] { { main::status#0 = error::err } } ) always clobbers reg byte a +Statement [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ main::status#0 ] ( [ main::status#0 ] { { main::status#0 = error::err } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::status#0 ] -Statement [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *SPRITES_PTR = main::toSpritePtr1_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] *SPRITES_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [12] *SPRITES_XPOS = $15 [ ] ( [ ] { } ) always clobbers reg byte a @@ -634,14 +634,14 @@ Statement asm { ldxerr jsr$a437 } always clobbers reg byte a reg byte x reg byt Statement [27] strlen::str#1 = setnam::filename [ setnam::filename strlen::str#1 ] ( loadFileToMemory:1::setnam:16 [ setnam::filename strlen::str#1 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { strlen::str#1 = setnam::filename } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Statement [29] strlen::return#2 = strlen::len#2 [ setnam::filename strlen::return#2 ] ( loadFileToMemory:1::setnam:16 [ setnam::filename strlen::return#2 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { strlen::str#1 = setnam::filename } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Statement [30] setnam::$0 = strlen::return#2 [ setnam::filename setnam::$0 ] ( loadFileToMemory:1::setnam:16 [ setnam::filename setnam::$0 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } } ) always clobbers reg byte a -Statement [31] setnam::filename_len = (byte)setnam::$0 [ setnam::filename setnam::filename_len ] ( loadFileToMemory:1::setnam:16 [ setnam::filename setnam::filename_len ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } } ) always clobbers reg byte a +Statement [31] setnam::filename_len = (char)setnam::$0 [ setnam::filename setnam::filename_len ] ( loadFileToMemory:1::setnam:16 [ setnam::filename setnam::filename_len ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } } ) always clobbers reg byte a Statement asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } always clobbers reg byte a reg byte x reg byte y Statement asm { ldxdevice lda#1 ldy#0 jsr$ffba } always clobbers reg byte a reg byte x reg byte y Statement [36] load::status = 0 [ load::address load::verify load::status ] ( loadFileToMemory:1::load:21 [ load::address load::verify load::status ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { load::return#0 = load::return#2 } } ) always clobbers reg byte a Statement asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } always clobbers reg byte a reg byte x reg byte y Statement [43] if(0!=*strlen::str#2) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( loadFileToMemory:1::setnam:16::strlen:28 [ setnam::filename strlen::len#2 strlen::str#2 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { strlen::str#1 = setnam::filename } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ main::status#0 ] ( [ main::status#0 ] { { main::status#0 = error::err } } ) always clobbers reg byte a -Statement [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ main::status#0 ] ( [ main::status#0 ] { { main::status#0 = error::err } } ) always clobbers reg byte a +Statement [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *SPRITES_PTR = main::toSpritePtr1_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] *SPRITES_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [12] *SPRITES_XPOS = $15 [ ] ( [ ] { } ) always clobbers reg byte a @@ -654,7 +654,7 @@ Statement asm { ldxerr jsr$a437 } always clobbers reg byte a reg byte x reg byt Statement [27] strlen::str#1 = setnam::filename [ setnam::filename strlen::str#1 ] ( loadFileToMemory:1::setnam:16 [ setnam::filename strlen::str#1 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { strlen::str#1 = setnam::filename } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Statement [29] strlen::return#2 = strlen::len#2 [ setnam::filename strlen::return#2 ] ( loadFileToMemory:1::setnam:16 [ setnam::filename strlen::return#2 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { strlen::str#1 = setnam::filename } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a Statement [30] setnam::$0 = strlen::return#2 [ setnam::filename setnam::$0 ] ( loadFileToMemory:1::setnam:16 [ setnam::filename setnam::$0 ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } } ) always clobbers reg byte a -Statement [31] setnam::filename_len = (byte)setnam::$0 [ setnam::filename setnam::filename_len ] ( loadFileToMemory:1::setnam:16 [ setnam::filename setnam::filename_len ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } } ) always clobbers reg byte a +Statement [31] setnam::filename_len = (char)setnam::$0 [ setnam::filename setnam::filename_len ] ( loadFileToMemory:1::setnam:16 [ setnam::filename setnam::filename_len ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } } ) always clobbers reg byte a Statement asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } always clobbers reg byte a reg byte x reg byte y Statement asm { ldxdevice lda#1 ldy#0 jsr$ffba } always clobbers reg byte a reg byte x reg byte y Statement [36] load::status = 0 [ load::address load::verify load::status ] ( loadFileToMemory:1::load:21 [ load::address load::verify load::status ] { { loadFileToMemory::return#0 = loadFileToMemory::return#1 } { load::return#0 = load::return#2 } } ) always clobbers reg byte a @@ -763,7 +763,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .const toSpritePtr1_return = LOAD_SPRITE/$40 - // [1] call loadFileToMemory + // [1] call loadFileToMemory // Load sprite file into memory jsr loadFileToMemory // [2] loadFileToMemory::return#0 = loadFileToMemory::return#1 @@ -778,17 +778,17 @@ main: { jmp __b2 // main::@2 __b2: - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [6] error::err = main::status#0 -- vbuz1=vbuxx stx.z error.err - // [7] call error + // [7] call error jsr error jmp __b1 // main::@1 __b1: - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -827,6 +827,7 @@ main: { // Returns a status: // - 0xff: Success // - other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) +// __register(A) char loadFileToMemory(char device, char *filename, char *address) loadFileToMemory: { .const device = 8 // [15] setnam::filename = main::filename -- pbuz1=pbuc1 @@ -834,7 +835,7 @@ loadFileToMemory: { sta.z setnam.filename lda #>main.filename sta.z setnam.filename+1 - // [16] call setnam + // [16] call setnam jsr setnam jmp __b1 // loadFileToMemory::@1 @@ -842,7 +843,7 @@ loadFileToMemory: { // [17] setlfs::device = loadFileToMemory::device#0 -- vbuz1=vbuc1 lda #device sta.z setlfs.device - // [18] call setlfs + // [18] call setlfs jsr setlfs jmp __b2 // loadFileToMemory::@2 @@ -855,7 +856,7 @@ loadFileToMemory: { // [20] load::verify = 0 -- vbuz1=vbuc1 lda #0 sta.z load.verify - // [21] call load + // [21] call load jsr load // [22] load::return#0 = load::return#2 jmp __b3 @@ -871,7 +872,7 @@ loadFileToMemory: { // error // Basic ERROR function // ERROR. Show error. -// error(byte zp(6) err) +// void error(__zp(6) volatile char err) error: { .label err = 6 // asm { ldxerr jsr$a437 } @@ -886,7 +887,7 @@ error: { // setnam // Kernal SETNAM function // SETNAM. Set file name parameters. -// setnam(byte* zp(7) filename) +// void setnam(__zp(7) char * volatile filename) setnam: { .label filename = 7 .label filename_len = $d @@ -896,7 +897,7 @@ setnam: { sta.z strlen.str lda.z filename+1 sta.z strlen.str+1 - // [28] call strlen + // [28] call strlen // [41] phi from setnam to strlen [phi:setnam->strlen] strlen_from_setnam: jsr strlen @@ -905,7 +906,7 @@ setnam: { // setnam::@1 __b1: // [30] setnam::$0 = strlen::return#2 - // [31] setnam::filename_len = (byte)setnam::$0 -- vbuz1=_byte_vwuz2 + // [31] setnam::filename_len = (char)setnam::$0 -- vbuz1=_byte_vwuz2 lda.z __0 sta.z filename_len // asm { ldafilename_len ldxfilename ldyfilename+1 jsr$ffbd } @@ -921,7 +922,7 @@ setnam: { } // setlfs // SETLFS. Set file parameters. -// setlfs(byte zp(9) device) +// void setlfs(__zp(9) volatile char device) setlfs: { .label device = 9 // asm { ldxdevice lda#1 ldy#0 jsr$ffba } @@ -940,7 +941,7 @@ setlfs: { // - verify: 0 = Load, 1-255 = Verify // // Returns a status, 0xff: Success other: Kernal Error Code -// load(byte* zp($a) address, byte zp($c) verify) +// __register(A) char load(__zp($a) char * volatile address, __zp($c) volatile char verify) load: { .label address = $a .label verify = $c @@ -968,7 +969,7 @@ load: { } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(2) str) +// __zp(4) unsigned int strlen(__zp(2) char *str) strlen: { .label len = 4 .label str = 2 @@ -1067,63 +1068,63 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte GREEN = 5 -constant byte* const LOAD_SPRITE = (byte*) 12288 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SCREEN = (byte*) 1024 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) +__constant const char GREEN = 5 +__constant char * const LOAD_SPRITE = (char *) 12288 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SCREEN = (char *) 1024 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -void error(volatile byte error::err) -volatile byte error::err loadstore zp[1]:6 2.0 -byte load(byte* volatile load::address , volatile byte load::verify) -byte* volatile load::address loadstore zp[2]:10 3.6666666666666665 -byte load::return -byte load::return#0 reg byte a 22.0 -byte load::return#1 reg byte a 202.0 -byte load::return#2 reg byte a 37.33333333333333 -volatile byte load::status loadstore zp[1]:14 101.0 -volatile byte load::verify loadstore zp[1]:12 5.5 -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) -byte* loadFileToMemory::address -byte loadFileToMemory::device -constant byte loadFileToMemory::device#0 device = 8 -byte* loadFileToMemory::filename -byte loadFileToMemory::return -byte loadFileToMemory::return#0 reg byte a 4.0 -byte loadFileToMemory::return#1 reg byte a 4.333333333333333 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +void error(volatile char err) +__loadstore volatile char error::err // zp[1]:6 2.0 +char load(char * volatile address , volatile char verify) +__loadstore char * volatile load::address // zp[2]:10 3.6666666666666665 +char load::return +char load::return#0 // reg byte a 22.0 +char load::return#1 // reg byte a 202.0 +char load::return#2 // reg byte a 37.33333333333333 +__loadstore volatile char load::status // zp[1]:14 101.0 +__loadstore volatile char load::verify // zp[1]:12 5.5 +char loadFileToMemory(char device , char *filename , char *address) +char *loadFileToMemory::address +char loadFileToMemory::device +__constant char loadFileToMemory::device#0 = 8 // device +char *loadFileToMemory::filename +char loadFileToMemory::return +char loadFileToMemory::return#0 // reg byte a 4.0 +char loadFileToMemory::return#1 // reg byte a 4.333333333333333 void main() -constant byte* main::filename[7] = "SPRITE" -byte main::status -byte main::status#0 reg byte x 2.0 -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)LOAD_SPRITE/$40 -byte* main::toSpritePtr1_sprite -void setlfs(volatile byte setlfs::device) -volatile byte setlfs::device loadstore zp[1]:9 11.0 -void setnam(byte* volatile setnam::filename) -word~ setnam::$0 zp[2]:4 101.0 -byte* volatile setnam::filename loadstore zp[2]:7 18.666666666666664 -volatile byte setnam::filename_len loadstore zp[1]:13 101.0 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 len zp[2]:4 10001.0 -word strlen::len#2 len zp[2]:4 5025.75 -word strlen::return -word strlen::return#2 return zp[2]:4 202.0 -byte* strlen::str -byte* strlen::str#0 str zp[2]:2 20002.0 -byte* strlen::str#1 str zp[2]:2 551.0 -byte* strlen::str#2 str zp[2]:2 10334.666666666666 +__constant char main::filename[7] = "SPRITE" +char main::status +char main::status#0 // reg byte x 2.0 +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)LOAD_SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite +void setlfs(volatile char device) +__loadstore volatile char setlfs::device // zp[1]:9 11.0 +void setnam(char * volatile filename) +unsigned int setnam::$0 // zp[2]:4 101.0 +__loadstore char * volatile setnam::filename // zp[2]:7 18.666666666666664 +__loadstore volatile char setnam::filename_len // zp[1]:13 101.0 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // len zp[2]:4 10001.0 +unsigned int strlen::len#2 // len zp[2]:4 5025.75 +unsigned int strlen::return +unsigned int strlen::return#2 // return zp[2]:4 202.0 +char *strlen::str +char *strlen::str#0 // str zp[2]:2 20002.0 +char *strlen::str#1 // str zp[2]:2 551.0 +char *strlen::str#2 // str zp[2]:2 10334.666666666666 zp[2]:2 [ strlen::str#2 strlen::str#1 strlen::str#0 ] zp[2]:4 [ strlen::len#2 strlen::len#1 strlen::return#2 setnam::$0 ] @@ -1186,7 +1187,7 @@ Score: 720 main: { .const toSpritePtr1_return = LOAD_SPRITE/$40 // char status = loadFileToMemory(8, "SPRITE", LOAD_SPRITE) - // [1] call loadFileToMemory + // [1] call loadFileToMemory // Load sprite file into memory jsr loadFileToMemory // [2] loadFileToMemory::return#0 = loadFileToMemory::return#1 @@ -1199,18 +1200,18 @@ main: { beq __b1 // main::@2 // VICII->BORDER_COLOR = 0x02 - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // error(status) // [6] error::err = main::status#0 -- vbuz1=vbuxx stx.z error.err - // [7] call error + // [7] call error jsr error // main::@1 __b1: // VICII->SPRITES_ENABLE = %00000001 - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -1247,6 +1248,7 @@ main: { // Returns a status: // - 0xff: Success // - other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) +// __register(A) char loadFileToMemory(char device, char *filename, char *address) loadFileToMemory: { .const device = 8 // setnam(filename) @@ -1255,14 +1257,14 @@ loadFileToMemory: { sta.z setnam.filename lda #>main.filename sta.z setnam.filename+1 - // [16] call setnam + // [16] call setnam jsr setnam // loadFileToMemory::@1 // setlfs(device) // [17] setlfs::device = loadFileToMemory::device#0 -- vbuz1=vbuc1 lda #device sta.z setlfs.device - // [18] call setlfs + // [18] call setlfs jsr setlfs // loadFileToMemory::@2 // load(address, 0) @@ -1274,7 +1276,7 @@ loadFileToMemory: { // [20] load::verify = 0 -- vbuz1=vbuc1 lda #0 sta.z load.verify - // [21] call load + // [21] call load jsr load // [22] load::return#0 = load::return#2 // loadFileToMemory::@3 @@ -1287,7 +1289,7 @@ loadFileToMemory: { // error // Basic ERROR function // ERROR. Show error. -// error(byte zp(6) err) +// void error(__zp(6) volatile char err) error: { .label err = 6 // asm @@ -1302,7 +1304,7 @@ error: { // setnam // Kernal SETNAM function // SETNAM. Set file name parameters. -// setnam(byte* zp(7) filename) +// void setnam(__zp(7) char * volatile filename) setnam: { .label filename = 7 .label filename_len = $d @@ -1313,7 +1315,7 @@ setnam: { sta.z strlen.str lda.z filename+1 sta.z strlen.str+1 - // [28] call strlen + // [28] call strlen // [41] phi from setnam to strlen [phi:setnam->strlen] jsr strlen // strlen(filename) @@ -1321,7 +1323,7 @@ setnam: { // setnam::@1 // [30] setnam::$0 = strlen::return#2 // char filename_len = (char)strlen(filename) - // [31] setnam::filename_len = (byte)setnam::$0 -- vbuz1=_byte_vwuz2 + // [31] setnam::filename_len = (char)setnam::$0 -- vbuz1=_byte_vwuz2 lda.z __0 sta.z filename_len // asm @@ -1336,7 +1338,7 @@ setnam: { } // setlfs // SETLFS. Set file parameters. -// setlfs(byte zp(9) device) +// void setlfs(__zp(9) volatile char device) setlfs: { .label device = 9 // asm @@ -1355,7 +1357,7 @@ setlfs: { // - verify: 0 = Load, 1-255 = Verify // // Returns a status, 0xff: Success other: Kernal Error Code -// load(byte* zp($a) address, byte zp($c) verify) +// __register(A) char load(__zp($a) char * volatile address, __zp($c) volatile char verify) load: { .label address = $a .label verify = $c @@ -1384,7 +1386,7 @@ load: { } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(2) str) +// __zp(4) unsigned int strlen(__zp(2) char *str) strlen: { .label len = 4 .label str = 2 diff --git a/src/test/ref/examples/c64/kernalload/kernalload.sym b/src/test/ref/examples/c64/kernalload/kernalload.sym index 2ab155b87..e26696af9 100644 --- a/src/test/ref/examples/c64/kernalload/kernalload.sym +++ b/src/test/ref/examples/c64/kernalload/kernalload.sym @@ -1,60 +1,60 @@ -constant const byte GREEN = 5 -constant byte* const LOAD_SPRITE = (byte*) 12288 -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SCREEN = (byte*) 1024 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) +__constant const char GREEN = 5 +__constant char * const LOAD_SPRITE = (char *) 12288 +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SCREEN = (char *) 1024 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -void error(volatile byte error::err) -volatile byte error::err loadstore zp[1]:6 2.0 -byte load(byte* volatile load::address , volatile byte load::verify) -byte* volatile load::address loadstore zp[2]:10 3.6666666666666665 -byte load::return -byte load::return#0 reg byte a 22.0 -byte load::return#1 reg byte a 202.0 -byte load::return#2 reg byte a 37.33333333333333 -volatile byte load::status loadstore zp[1]:14 101.0 -volatile byte load::verify loadstore zp[1]:12 5.5 -byte loadFileToMemory(byte loadFileToMemory::device , byte* loadFileToMemory::filename , byte* loadFileToMemory::address) -byte* loadFileToMemory::address -byte loadFileToMemory::device -constant byte loadFileToMemory::device#0 device = 8 -byte* loadFileToMemory::filename -byte loadFileToMemory::return -byte loadFileToMemory::return#0 reg byte a 4.0 -byte loadFileToMemory::return#1 reg byte a 4.333333333333333 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +void error(volatile char err) +__loadstore volatile char error::err // zp[1]:6 2.0 +char load(char * volatile address , volatile char verify) +__loadstore char * volatile load::address // zp[2]:10 3.6666666666666665 +char load::return +char load::return#0 // reg byte a 22.0 +char load::return#1 // reg byte a 202.0 +char load::return#2 // reg byte a 37.33333333333333 +__loadstore volatile char load::status // zp[1]:14 101.0 +__loadstore volatile char load::verify // zp[1]:12 5.5 +char loadFileToMemory(char device , char *filename , char *address) +char *loadFileToMemory::address +char loadFileToMemory::device +__constant char loadFileToMemory::device#0 = 8 // device +char *loadFileToMemory::filename +char loadFileToMemory::return +char loadFileToMemory::return#0 // reg byte a 4.0 +char loadFileToMemory::return#1 // reg byte a 4.333333333333333 void main() -constant byte* main::filename[7] = "SPRITE" -byte main::status -byte main::status#0 reg byte x 2.0 -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)LOAD_SPRITE/$40 -byte* main::toSpritePtr1_sprite -void setlfs(volatile byte setlfs::device) -volatile byte setlfs::device loadstore zp[1]:9 11.0 -void setnam(byte* volatile setnam::filename) -word~ setnam::$0 zp[2]:4 101.0 -byte* volatile setnam::filename loadstore zp[2]:7 18.666666666666664 -volatile byte setnam::filename_len loadstore zp[1]:13 101.0 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 len zp[2]:4 10001.0 -word strlen::len#2 len zp[2]:4 5025.75 -word strlen::return -word strlen::return#2 return zp[2]:4 202.0 -byte* strlen::str -byte* strlen::str#0 str zp[2]:2 20002.0 -byte* strlen::str#1 str zp[2]:2 551.0 -byte* strlen::str#2 str zp[2]:2 10334.666666666666 +__constant char main::filename[7] = "SPRITE" +char main::status +char main::status#0 // reg byte x 2.0 +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)LOAD_SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite +void setlfs(volatile char device) +__loadstore volatile char setlfs::device // zp[1]:9 11.0 +void setnam(char * volatile filename) +unsigned int setnam::$0 // zp[2]:4 101.0 +__loadstore char * volatile setnam::filename // zp[2]:7 18.666666666666664 +__loadstore volatile char setnam::filename_len // zp[1]:13 101.0 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // len zp[2]:4 10001.0 +unsigned int strlen::len#2 // len zp[2]:4 5025.75 +unsigned int strlen::return +unsigned int strlen::return#2 // return zp[2]:4 202.0 +char *strlen::str +char *strlen::str#0 // str zp[2]:2 20002.0 +char *strlen::str#1 // str zp[2]:2 551.0 +char *strlen::str#2 // str zp[2]:2 10334.666666666666 zp[2]:2 [ strlen::str#2 strlen::str#1 strlen::str#0 ] zp[2]:4 [ strlen::len#2 strlen::len#1 strlen::return#2 setnam::$0 ] diff --git a/src/test/ref/examples/c64/krillload/krillload.asm b/src/test/ref/examples/c64/krillload/krillload.asm index 32e94c648..fca240486 100644 --- a/src/test/ref/examples/c64/krillload/krillload.asm +++ b/src/test/ref/examples/c64/krillload/krillload.asm @@ -101,6 +101,7 @@ krill_install: { // zero-length filename // - filename - The name of the file to load (zero-terminated in petscii encoding) // Returns the status of the load +// __register(A) char krill_loadraw(char *filename) krill_loadraw: { .label status = $ff .label fname = $fe diff --git a/src/test/ref/examples/c64/krillload/krillload.cfg b/src/test/ref/examples/c64/krillload/krillload.cfg index 42b680930..86257a40e 100644 --- a/src/test/ref/examples/c64/krillload/krillload.cfg +++ b/src/test/ref/examples/c64/krillload/krillload.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call krill_install + [1] call krill_install [2] krill_install::return#2 = krill_install::return#0 to:main::@6 main::@6: scope:[main] from main @@ -10,14 +10,14 @@ main::@6: scope:[main] from main [4] if(main::status#0==KRILL_OK) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@6 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 to:main::@return main::@return: scope:[main] from main::@3 main::@4 main::@5 [6] return to:@return main::@1: scope:[main] from main::@6 [7] phi() - [8] call krill_loadraw + [8] call krill_loadraw [9] krill_loadraw::return#2 = krill_loadraw::return#0 to:main::@7 main::@7: scope:[main] from main::@1 @@ -25,10 +25,10 @@ main::@7: scope:[main] from main::@1 [11] if(main::status#1==KRILL_OK) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@7 - [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 to:main::@return main::@2: scope:[main] from main::@7 - [13] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [13] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@2 [14] phi() @@ -40,7 +40,7 @@ main::@5: scope:[main] from main::toSpritePtr1 [18] *SPRITES_YPOS = $33 to:main::@return -byte krill_install() +char krill_install() krill_install: scope:[krill_install] from main asm { jsrKRILL_INSTALL stastatus } [20] krill_install::return#0 = *krill_install::status @@ -49,7 +49,7 @@ krill_install::@return: scope:[krill_install] from krill_install [21] return to:@return -byte krill_loadraw(byte* krill_loadraw::filename) +char krill_loadraw(char *filename) krill_loadraw: scope:[krill_loadraw] from main::@1 [22] *krill_loadraw::fname = main::filename asm { ldxfname ldyfname+1 jsrKRILL_LOADER stastatus } diff --git a/src/test/ref/examples/c64/krillload/krillload.log b/src/test/ref/examples/c64/krillload/krillload.log index 9fc8853d3..b38b2c03f 100644 --- a/src/test/ref/examples/c64/krillload/krillload.log +++ b/src/test/ref/examples/c64/krillload/krillload.log @@ -5,7 +5,7 @@ Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA -byte krill_install() +char krill_install() krill_install: scope:[krill_install] from main asm { jsrKRILL_INSTALL stastatus } krill_install::return#0 = *krill_install::status @@ -16,7 +16,7 @@ krill_install::@return: scope:[krill_install] from krill_install return to:@return -byte krill_loadraw(byte* krill_loadraw::filename) +char krill_loadraw(char *filename) krill_loadraw: scope:[krill_loadraw] from main::@1 krill_loadraw::filename#1 = phi( main::@1/krill_loadraw::filename#0 ) *krill_loadraw::fname = krill_loadraw::filename#1 @@ -31,7 +31,7 @@ krill_loadraw::@return: scope:[krill_loadraw] from krill_loadraw void main() main: scope:[main] from __start - call krill_install + call krill_install krill_install::return#2 = krill_install::return#1 to:main::@6 main::@6: scope:[main] from main @@ -43,7 +43,7 @@ main::@6: scope:[main] from main to:main::@3 main::@1: scope:[main] from main::@6 krill_loadraw::filename#0 = main::filename - call krill_loadraw + call krill_loadraw krill_loadraw::return#2 = krill_loadraw::return#1 to:main::@7 main::@7: scope:[main] from main::@1 @@ -55,20 +55,20 @@ main::@7: scope:[main] from main::@1 if(main::$5) goto main::@2 to:main::@4 main::@3: scope:[main] from main::@6 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 to:main::@return main::@return: scope:[main] from main::@3 main::@4 main::@5 return to:@return main::@2: scope:[main] from main::@7 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 main::toSpritePtr1_sprite#0 = SPRITE to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@2 main::toSpritePtr1_sprite#1 = phi( main::@2/main::toSpritePtr1_sprite#0 ) - main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#1 + main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#1 main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 - main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 + main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 to:main::toSpritePtr1_@return main::toSpritePtr1_@return: scope:[main] from main::toSpritePtr1 main::toSpritePtr1_return#2 = phi( main::toSpritePtr1/main::toSpritePtr1_return#0 ) @@ -83,12 +83,12 @@ main::@5: scope:[main] from main::toSpritePtr1_@return SPRITES_YPOS[0] = $33 to:main::@return main::@4: scope:[main] from main::@7 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 to:main::@return void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -97,77 +97,77 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte GREEN = 5 -constant byte* KRILL_INSTALL[] = kickasm {{ .import c64 "install-c64.prg" +__constant const char GREEN = 5 +__constant char KRILL_INSTALL[] = kickasm {{ .import c64 "install-c64.prg" }} -constant byte* KRILL_LOADER[] = kickasm {{ .import c64 "loader-c64.prg" +__constant char KRILL_LOADER[] = kickasm {{ .import c64 "loader-c64.prg" }} -constant byte KRILL_OK = 0 -constant byte KrillStatus::KRILL_DEVICE_INCOMPATIBLE = $fb -constant byte KrillStatus::KRILL_DEVICE_NOT_PRESENT = $fe -constant byte KrillStatus::KRILL_FILE_NOT_FOUND = $ff -constant byte KrillStatus::KRILL_GENERIC_KERNAL_ERROR = $fd -constant byte KrillStatus::KRILL_OK = 0 -constant byte KrillStatus::KRILL_TOO_MANY_DEVICES = $fc -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SCREEN = (byte*)$400 -constant byte* SPRITE[$40] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) +__constant char KRILL_OK = 0 +__constant char KrillStatus::KRILL_DEVICE_INCOMPATIBLE = $fb +__constant char KrillStatus::KRILL_DEVICE_NOT_PRESENT = $fe +__constant char KrillStatus::KRILL_FILE_NOT_FOUND = $ff +__constant char KrillStatus::KRILL_GENERIC_KERNAL_ERROR = $fd +__constant char KrillStatus::KRILL_OK = 0 +__constant char KrillStatus::KRILL_TOO_MANY_DEVICES = $fc +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SCREEN = (char *)$400 +__constant char SPRITE[$40] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*)$d027 -constant byte* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char * const SPRITES_COLOR = (char *)$d027 +__constant char * const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() -byte krill_install() -byte krill_install::return -byte krill_install::return#0 -byte krill_install::return#1 -byte krill_install::return#2 -byte krill_install::return#3 -byte krill_install::return#4 -constant byte* const krill_install::status = (byte*)$ff -byte krill_loadraw(byte* krill_loadraw::filename) -byte* krill_loadraw::filename -byte* krill_loadraw::filename#0 -byte* krill_loadraw::filename#1 -constant byte** const krill_loadraw::fname = (byte**)$fe -byte krill_loadraw::return -byte krill_loadraw::return#0 -byte krill_loadraw::return#1 -byte krill_loadraw::return#2 -byte krill_loadraw::return#3 -byte krill_loadraw::return#4 -constant byte* const krill_loadraw::status = (byte*)$ff +char krill_install() +char krill_install::return +char krill_install::return#0 +char krill_install::return#1 +char krill_install::return#2 +char krill_install::return#3 +char krill_install::return#4 +__constant char * const krill_install::status = (char *)$ff +char krill_loadraw(char *filename) +char *krill_loadraw::filename +char *krill_loadraw::filename#0 +char *krill_loadraw::filename#1 +__constant char ** const krill_loadraw::fname = (char **)$fe +char krill_loadraw::return +char krill_loadraw::return#0 +char krill_loadraw::return#1 +char krill_loadraw::return#2 +char krill_loadraw::return#3 +char krill_loadraw::return#4 +__constant char * const krill_loadraw::status = (char *)$ff void main() -bool~ main::$1 -bool~ main::$2 -byte~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte~ main::$6 -constant byte* main::filename[7] = "sprite"pm -byte main::status -byte main::status#0 -byte main::status#1 -number~ main::toSpritePtr1_$0 -word~ main::toSpritePtr1_$1 -byte main::toSpritePtr1_return -byte main::toSpritePtr1_return#0 -byte main::toSpritePtr1_return#1 -byte main::toSpritePtr1_return#2 -byte main::toSpritePtr1_return#3 -byte* main::toSpritePtr1_sprite -byte* main::toSpritePtr1_sprite#0 -byte* main::toSpritePtr1_sprite#1 +bool main::$1 +bool main::$2 +char main::$3 +bool main::$4 +bool main::$5 +char main::$6 +__constant char main::filename[7] = "sprite"pm +char main::status +char main::status#0 +char main::status#1 +number main::toSpritePtr1_$0 +unsigned int main::toSpritePtr1_$1 +char main::toSpritePtr1_return +char main::toSpritePtr1_return#0 +char main::toSpritePtr1_return#1 +char main::toSpritePtr1_return#2 +char main::toSpritePtr1_return#3 +char *main::toSpritePtr1_sprite +char *main::toSpritePtr1_sprite#0 +char *main::toSpritePtr1_sprite#1 -Adding number conversion cast (unumber) 2 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -Adding number conversion cast (unumber) 1 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 +Adding number conversion cast (unumber) 2 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 +Adding number conversion cast (unumber) 1 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 Adding number conversion cast (unumber) $40 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Adding number conversion cast (unumber) main::toSpritePtr1_$0 in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / (unumber)$40 Adding number conversion cast (unumber) 0 in SPRITES_PTR[0] = main::$6 @@ -176,22 +176,22 @@ Adding number conversion cast (unumber) $15 in SPRITES_XPOS[0] = $15 Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = ((unumber)) $15 Adding number conversion cast (unumber) $33 in SPRITES_YPOS[0] = $33 Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = ((unumber)) $33 -Adding number conversion cast (unumber) 2 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 +Adding number conversion cast (unumber) 2 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)2 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)2 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = (unumber)1 Inlining cast SPRITES_XPOS[(unumber)0] = (unumber)$15 Inlining cast SPRITES_YPOS[(unumber)0] = (unumber)$33 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)2 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 255 -Simplifying constant pointer cast (byte*) 255 -Simplifying constant pointer cast (byte**) 254 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53287 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 255 +Simplifying constant pointer cast (char *) 255 +Simplifying constant pointer cast (char **) 254 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53287 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast $40 @@ -203,18 +203,18 @@ Simplifying constant integer cast $33 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $33 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $33 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 +Inferred type updated to unsigned int in main::toSpritePtr1_$0 = main::toSpritePtr1_$1 / $40 Inversing boolean not [17] main::$2 = main::status#0 == KRILL_OK from [16] main::$1 = main::status#0 != KRILL_OK Inversing boolean not [26] main::$5 = main::status#1 == KRILL_OK from [25] main::$4 = main::status#1 != KRILL_OK Successful SSA optimization Pass2UnaryNotSimplification @@ -234,7 +234,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant krill_loadraw::filename#0 = main::filename Constant main::toSpritePtr1_sprite#0 = SPRITE Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_$1 = (word)main::toSpritePtr1_sprite#0 +Constant main::toSpritePtr1_$1 = (unsigned int)main::toSpritePtr1_sprite#0 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SPRITES_PTR in [26] SPRITES_PTR[0] = main::toSpritePtr1_return#0 Simplifying expression containing zero SPRITES_COLOR in [27] SPRITES_COLOR[0] = GREEN @@ -250,24 +250,24 @@ Constant right-side identified [18] main::toSpritePtr1_$0 = main::toSpritePtr1_$ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toSpritePtr1_$0 = main::toSpritePtr1_$1/$40 Successful SSA optimization Pass2ConstantIdentification -Constant main::toSpritePtr1_return#0 = (byte)main::toSpritePtr1_$0 +Constant main::toSpritePtr1_return#0 = (char)main::toSpritePtr1_$0 Successful SSA optimization Pass2ConstantIdentification Constant inlined main::toSpritePtr1_sprite#0 = SPRITE -Constant inlined main::toSpritePtr1_$1 = (word)SPRITE +Constant inlined main::toSpritePtr1_$1 = (unsigned int)SPRITE Constant inlined krill_loadraw::filename#0 = main::filename -Constant inlined main::toSpritePtr1_$0 = (word)SPRITE/$40 +Constant inlined main::toSpritePtr1_$0 = (unsigned int)SPRITE/$40 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $3000 -Finalized unsigned number type (word) $3400 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $fb -Finalized unsigned number type (byte) $fc -Finalized unsigned number type (byte) $fd -Finalized unsigned number type (byte) $fe -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $2040 +Finalized unsigned number type (unsigned int) $3000 +Finalized unsigned number type (unsigned int) $3400 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $fb +Finalized unsigned number type (char) $fc +Finalized unsigned number type (char) $fd +Finalized unsigned number type (char) $fe +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $2040 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -288,7 +288,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call krill_install + [1] call krill_install [2] krill_install::return#2 = krill_install::return#0 to:main::@6 main::@6: scope:[main] from main @@ -296,14 +296,14 @@ main::@6: scope:[main] from main [4] if(main::status#0==KRILL_OK) goto main::@1 to:main::@3 main::@3: scope:[main] from main::@6 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 to:main::@return main::@return: scope:[main] from main::@3 main::@4 main::@5 [6] return to:@return main::@1: scope:[main] from main::@6 [7] phi() - [8] call krill_loadraw + [8] call krill_loadraw [9] krill_loadraw::return#2 = krill_loadraw::return#0 to:main::@7 main::@7: scope:[main] from main::@1 @@ -311,10 +311,10 @@ main::@7: scope:[main] from main::@1 [11] if(main::status#1==KRILL_OK) goto main::@2 to:main::@4 main::@4: scope:[main] from main::@7 - [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 + [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 to:main::@return main::@2: scope:[main] from main::@7 - [13] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 + [13] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 to:main::toSpritePtr1 main::toSpritePtr1: scope:[main] from main::@2 [14] phi() @@ -326,7 +326,7 @@ main::@5: scope:[main] from main::toSpritePtr1 [18] *SPRITES_YPOS = $33 to:main::@return -byte krill_install() +char krill_install() krill_install: scope:[krill_install] from main asm { jsrKRILL_INSTALL stastatus } [20] krill_install::return#0 = *krill_install::status @@ -335,7 +335,7 @@ krill_install::@return: scope:[krill_install] from krill_install [21] return to:@return -byte krill_loadraw(byte* krill_loadraw::filename) +char krill_loadraw(char *filename) krill_loadraw: scope:[krill_loadraw] from main::@1 [22] *krill_loadraw::fname = main::filename asm { ldxfname ldyfname+1 jsrKRILL_LOADER stastatus } @@ -347,21 +347,21 @@ krill_loadraw::@return: scope:[krill_loadraw] from krill_loadraw VARIABLE REGISTER WEIGHTS -byte krill_install() -byte krill_install::return -byte krill_install::return#0 4.333333333333333 -byte krill_install::return#2 4.0 -byte krill_loadraw(byte* krill_loadraw::filename) -byte* krill_loadraw::filename -byte krill_loadraw::return -byte krill_loadraw::return#0 4.333333333333333 -byte krill_loadraw::return#2 4.0 +char krill_install() +char krill_install::return +char krill_install::return#0 // 4.333333333333333 +char krill_install::return#2 // 4.0 +char krill_loadraw(char *filename) +char *krill_loadraw::filename +char krill_loadraw::return +char krill_loadraw::return#0 // 4.333333333333333 +char krill_loadraw::return#2 // 4.0 void main() -byte main::status -byte main::status#0 4.0 -byte main::status#1 4.0 -byte main::toSpritePtr1_return -byte* main::toSpritePtr1_sprite +char main::status +char main::status#0 // 4.0 +char main::status#1 // 4.0 +char main::toSpritePtr1_return +char *main::toSpritePtr1_sprite Initial phi equivalence classes Added variable krill_install::return#2 to live range equivalence class [ krill_install::return#2 ] @@ -384,9 +384,9 @@ Allocated zp[1]:5 [ main::status#1 ] Allocated zp[1]:6 [ krill_install::return#0 ] Allocated zp[1]:7 [ krill_loadraw::return#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [13] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [13] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [15] *SPRITES_PTR = main::toSpritePtr1_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] *SPRITES_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [17] *SPRITES_XPOS = $15 [ ] ( [ ] { } ) always clobbers reg byte a @@ -461,7 +461,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .const toSpritePtr1_return = $ff&SPRITE/$40 - // [1] call krill_install + // [1] call krill_install // Install the Krill drive code jsr krill_install // [2] krill_install::return#2 = krill_install::return#0 @@ -475,7 +475,7 @@ main: { jmp __b3 // main::@3 __b3: - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn @@ -488,7 +488,7 @@ main: { jmp __b1 // main::@1 __b1: - // [8] call krill_loadraw + // [8] call krill_loadraw jsr krill_loadraw // [9] krill_loadraw::return#2 = krill_loadraw::return#0 jmp __b7 @@ -501,13 +501,13 @@ main: { jmp __b4 // main::@4 __b4: - // [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 + // [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn // main::@2 __b2: - // [13] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [13] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -565,6 +565,7 @@ krill_install: { // zero-length filename // - filename - The name of the file to load (zero-terminated in petscii encoding) // Returns the status of the load +// __register(A) char krill_loadraw(char *filename) krill_loadraw: { .label status = $ff .label fname = $fe @@ -644,52 +645,52 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte GREEN = 5 -constant byte* KRILL_INSTALL[] = kickasm {{ .import c64 "install-c64.prg" +__constant const char GREEN = 5 +__constant char KRILL_INSTALL[] = kickasm {{ .import c64 "install-c64.prg" }} -constant byte* KRILL_LOADER[] = kickasm {{ .import c64 "loader-c64.prg" +__constant char KRILL_LOADER[] = kickasm {{ .import c64 "loader-c64.prg" }} -constant byte KRILL_OK = 0 -constant byte KrillStatus::KRILL_DEVICE_INCOMPATIBLE = $fb -constant byte KrillStatus::KRILL_DEVICE_NOT_PRESENT = $fe -constant byte KrillStatus::KRILL_FILE_NOT_FOUND = $ff -constant byte KrillStatus::KRILL_GENERIC_KERNAL_ERROR = $fd -constant byte KrillStatus::KRILL_OK = 0 -constant byte KrillStatus::KRILL_TOO_MANY_DEVICES = $fc -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SCREEN = (byte*) 1024 -constant byte* SPRITE[$40] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) +__constant char KRILL_OK = 0 +__constant char KrillStatus::KRILL_DEVICE_INCOMPATIBLE = $fb +__constant char KrillStatus::KRILL_DEVICE_NOT_PRESENT = $fe +__constant char KrillStatus::KRILL_FILE_NOT_FOUND = $ff +__constant char KrillStatus::KRILL_GENERIC_KERNAL_ERROR = $fd +__constant char KrillStatus::KRILL_OK = 0 +__constant char KrillStatus::KRILL_TOO_MANY_DEVICES = $fc +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SCREEN = (char *) 1024 +__constant char SPRITE[$40] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -byte krill_install() -byte krill_install::return -byte krill_install::return#0 reg byte a 4.333333333333333 -byte krill_install::return#2 reg byte a 4.0 -constant byte* const krill_install::status = (byte*) 255 -byte krill_loadraw(byte* krill_loadraw::filename) -byte* krill_loadraw::filename -constant byte** const krill_loadraw::fname = (byte**) 254 -byte krill_loadraw::return -byte krill_loadraw::return#0 reg byte a 4.333333333333333 -byte krill_loadraw::return#2 reg byte a 4.0 -constant byte* const krill_loadraw::status = (byte*) 255 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +char krill_install() +char krill_install::return +char krill_install::return#0 // reg byte a 4.333333333333333 +char krill_install::return#2 // reg byte a 4.0 +__constant char * const krill_install::status = (char *) 255 +char krill_loadraw(char *filename) +char *krill_loadraw::filename +__constant char ** const krill_loadraw::fname = (char **) 254 +char krill_loadraw::return +char krill_loadraw::return#0 // reg byte a 4.333333333333333 +char krill_loadraw::return#2 // reg byte a 4.0 +__constant char * const krill_loadraw::status = (char *) 255 void main() -constant byte* main::filename[7] = "sprite"pm -byte main::status -byte main::status#0 reg byte a 4.0 -byte main::status#1 reg byte a 4.0 -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)SPRITE/$40 -byte* main::toSpritePtr1_sprite +__constant char main::filename[7] = "sprite"pm +char main::status +char main::status#0 // reg byte a 4.0 +char main::status#1 // reg byte a 4.0 +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite reg byte a [ krill_install::return#2 ] reg byte a [ main::status#0 ] @@ -743,7 +744,7 @@ Score: 130 main: { .const toSpritePtr1_return = $ff&SPRITE/$40 // char status = krill_install() - // [1] call krill_install + // [1] call krill_install // Install the Krill drive code jsr krill_install // [2] krill_install::return#2 = krill_install::return#0 @@ -755,7 +756,7 @@ main: { beq __b1 // main::@3 // VICII->BORDER_COLOR = 0x02 - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // main::@return @@ -766,7 +767,7 @@ main: { // main::@1 __b1: // krill_loadraw("sprite") - // [8] call krill_loadraw + // [8] call krill_loadraw jsr krill_loadraw // [9] krill_loadraw::return#2 = krill_loadraw::return#0 // main::@7 @@ -778,14 +779,14 @@ main: { beq __b2 // main::@4 // VICII->BORDER_COLOR = 0x02 - // [12] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 + // [12] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR rts // main::@2 __b2: // VICII->SPRITES_ENABLE = %00000001 - // [13] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 + // [13] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = 1 -- _deref_pbuc1=vbuc2 // Show the loaded sprite on screen lda #1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -842,6 +843,7 @@ krill_install: { // zero-length filename // - filename - The name of the file to load (zero-terminated in petscii encoding) // Returns the status of the load +// __register(A) char krill_loadraw(char *filename) krill_loadraw: { .label status = $ff .label fname = $fe diff --git a/src/test/ref/examples/c64/krillload/krillload.sym b/src/test/ref/examples/c64/krillload/krillload.sym index 9f77552a7..efbdc0f1b 100644 --- a/src/test/ref/examples/c64/krillload/krillload.sym +++ b/src/test/ref/examples/c64/krillload/krillload.sym @@ -1,49 +1,49 @@ -constant const byte GREEN = 5 -constant byte* KRILL_INSTALL[] = kickasm {{ .import c64 "install-c64.prg" +__constant const char GREEN = 5 +__constant char KRILL_INSTALL[] = kickasm {{ .import c64 "install-c64.prg" }} -constant byte* KRILL_LOADER[] = kickasm {{ .import c64 "loader-c64.prg" +__constant char KRILL_LOADER[] = kickasm {{ .import c64 "loader-c64.prg" }} -constant byte KRILL_OK = 0 -constant byte KrillStatus::KRILL_DEVICE_INCOMPATIBLE = $fb -constant byte KrillStatus::KRILL_DEVICE_NOT_PRESENT = $fe -constant byte KrillStatus::KRILL_FILE_NOT_FOUND = $ff -constant byte KrillStatus::KRILL_GENERIC_KERNAL_ERROR = $fd -constant byte KrillStatus::KRILL_OK = 0 -constant byte KrillStatus::KRILL_TOO_MANY_DEVICES = $fc -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant byte* const SCREEN = (byte*) 1024 -constant byte* SPRITE[$40] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) +__constant char KRILL_OK = 0 +__constant char KrillStatus::KRILL_DEVICE_INCOMPATIBLE = $fb +__constant char KrillStatus::KRILL_DEVICE_NOT_PRESENT = $fe +__constant char KrillStatus::KRILL_FILE_NOT_FOUND = $ff +__constant char KrillStatus::KRILL_GENERIC_KERNAL_ERROR = $fd +__constant char KrillStatus::KRILL_OK = 0 +__constant char KrillStatus::KRILL_TOO_MANY_DEVICES = $fc +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant char * const SCREEN = (char *) 1024 +__constant char SPRITE[$40] = kickasm {{ .var pic = LoadPicture("sprite.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -byte krill_install() -byte krill_install::return -byte krill_install::return#0 reg byte a 4.333333333333333 -byte krill_install::return#2 reg byte a 4.0 -constant byte* const krill_install::status = (byte*) 255 -byte krill_loadraw(byte* krill_loadraw::filename) -byte* krill_loadraw::filename -constant byte** const krill_loadraw::fname = (byte**) 254 -byte krill_loadraw::return -byte krill_loadraw::return#0 reg byte a 4.333333333333333 -byte krill_loadraw::return#2 reg byte a 4.0 -constant byte* const krill_loadraw::status = (byte*) 255 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_PTR = SCREEN+OFFSET_SPRITE_PTRS +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +char krill_install() +char krill_install::return +char krill_install::return#0 // reg byte a 4.333333333333333 +char krill_install::return#2 // reg byte a 4.0 +__constant char * const krill_install::status = (char *) 255 +char krill_loadraw(char *filename) +char *krill_loadraw::filename +__constant char ** const krill_loadraw::fname = (char **) 254 +char krill_loadraw::return +char krill_loadraw::return#0 // reg byte a 4.333333333333333 +char krill_loadraw::return#2 // reg byte a 4.0 +__constant char * const krill_loadraw::status = (char *) 255 void main() -constant byte* main::filename[7] = "sprite"pm -byte main::status -byte main::status#0 reg byte a 4.0 -byte main::status#1 reg byte a 4.0 -byte main::toSpritePtr1_return -constant byte main::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)SPRITE/$40 -byte* main::toSpritePtr1_sprite +__constant char main::filename[7] = "sprite"pm +char main::status +char main::status#0 // reg byte a 4.0 +char main::status#1 // reg byte a 4.0 +char main::toSpritePtr1_return +__constant char main::toSpritePtr1_return#0 = (char)(unsigned int)SPRITE/$40 // toSpritePtr1_return +char *main::toSpritePtr1_sprite reg byte a [ krill_install::return#2 ] reg byte a [ main::status#0 ] diff --git a/src/test/ref/examples/c64/linking/linking.asm b/src/test/ref/examples/c64/linking/linking.asm index 44fb63a16..f9e095bc5 100644 --- a/src/test/ref/examples/c64/linking/linking.asm +++ b/src/test/ref/examples/c64/linking/linking.asm @@ -38,7 +38,7 @@ main: { jmp __b2 } .segment CodeHigh -// fillscreen(byte zp(4) c) +// void fillscreen(__zp(4) char c) fillscreen: { .label c = 4 .label screen = 2 diff --git a/src/test/ref/examples/c64/linking/linking.cfg b/src/test/ref/examples/c64/linking/linking.cfg index 88df654c2..093687477 100644 --- a/src/test/ref/examples/c64/linking/linking.cfg +++ b/src/test/ref/examples/c64/linking/linking.cfg @@ -11,13 +11,13 @@ main::@1: scope:[main] from main main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 [5] fillscreen::c#0 = *BG_COLOR - [6] call fillscreen + [6] call fillscreen to:main::@3 main::@3: scope:[main] from main::@2 [7] *BG_COLOR = ++ *BG_COLOR to:main::@2 -void fillscreen(byte fillscreen::c) +void fillscreen(char c) fillscreen: scope:[fillscreen] from main::@2 [8] phi() to:fillscreen::@1 diff --git a/src/test/ref/examples/c64/linking/linking.log b/src/test/ref/examples/c64/linking/linking.log index a38060854..63ccfa78f 100644 --- a/src/test/ref/examples/c64/linking/linking.log +++ b/src/test/ref/examples/c64/linking/linking.log @@ -1,7 +1,7 @@ Loading link script "linking.ld" Resolved forward reference base to base Resolved forward reference base to base -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -21,7 +21,7 @@ main::@2: scope:[main] from main::@1 main::@4 to:main::@return main::@3: scope:[main] from main::@2 fillscreen::c#0 = *BG_COLOR - call fillscreen + call fillscreen to:main::@4 main::@4: scope:[main] from main::@3 *BG_COLOR = ++ *BG_COLOR @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void fillscreen(byte fillscreen::c) +void fillscreen(char c) fillscreen: scope:[fillscreen] from main::@3 fillscreen::c#3 = phi( main::@3/fillscreen::c#0 ) fillscreen::i#0 = 0 @@ -63,7 +63,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -72,43 +72,43 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BG_COLOR = (byte*)$d021 -constant byte* SCREEN = (byte*)$400 +__constant char *BG_COLOR = (char *)$d021 +__constant char *SCREEN = (char *)$400 void __start() -constant byte* base[$100] = { fill( $100, 0) } -void fillscreen(byte fillscreen::c) -byte*~ fillscreen::$0 -bool~ fillscreen::$1 -byte~ fillscreen::$2 -byte fillscreen::c -byte fillscreen::c#0 -byte fillscreen::c#1 -byte fillscreen::c#2 -byte fillscreen::c#3 -byte fillscreen::i -byte fillscreen::i#0 -byte fillscreen::i#1 -byte fillscreen::i#2 -byte fillscreen::i#3 -byte* fillscreen::screen -byte* fillscreen::screen#0 -byte* fillscreen::screen#1 -byte* fillscreen::screen#2 -byte* fillscreen::screen#3 +__constant char base[$100] = { fill( $100, 0) } +void fillscreen(char c) +char *fillscreen::$0 +bool fillscreen::$1 +char fillscreen::$2 +char fillscreen::c +char fillscreen::c#0 +char fillscreen::c#1 +char fillscreen::c#2 +char fillscreen::c#3 +char fillscreen::i +char fillscreen::i#0 +char fillscreen::i#1 +char fillscreen::i#2 +char fillscreen::i#3 +char *fillscreen::screen +char *fillscreen::screen#0 +char *fillscreen::screen#1 +char *fillscreen::screen#2 +char *fillscreen::screen#3 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) $3e8 in fillscreen::$0 = SCREEN + $3e8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias fillscreen::c#1 = fillscreen::c#2 Alias fillscreen::i#2 = fillscreen::i#3 @@ -144,7 +144,7 @@ Adding number conversion cast (unumber) 0 in [3] if(main::i#1!=0) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings fillscreen::i#0 @@ -154,8 +154,8 @@ Constant inlined main::i#0 = 0 Constant inlined fillscreen::screen#0 = SCREEN Constant inlined fillscreen::$0 = SCREEN+$3e8 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@5(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -190,13 +190,13 @@ main::@1: scope:[main] from main main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 [5] fillscreen::c#0 = *BG_COLOR - [6] call fillscreen + [6] call fillscreen to:main::@3 main::@3: scope:[main] from main::@2 [7] *BG_COLOR = ++ *BG_COLOR to:main::@2 -void fillscreen(byte fillscreen::c) +void fillscreen(char c) fillscreen: scope:[fillscreen] from main::@2 [8] phi() to:fillscreen::@1 @@ -217,20 +217,20 @@ fillscreen::@2: scope:[fillscreen] from fillscreen::@1 VARIABLE REGISTER WEIGHTS -void fillscreen(byte fillscreen::c) -byte~ fillscreen::$2 20002.0 -byte fillscreen::c -byte fillscreen::c#0 1251.5 -byte fillscreen::i -byte fillscreen::i#1 10001.0 -byte fillscreen::i#2 7500.75 -byte* fillscreen::screen -byte* fillscreen::screen#1 20002.0 -byte* fillscreen::screen#2 8000.8 +void fillscreen(char c) +char fillscreen::$2 // 20002.0 +char fillscreen::c +char fillscreen::c#0 // 1251.5 +char fillscreen::i +char fillscreen::i#1 // 10001.0 +char fillscreen::i#2 // 7500.75 +char *fillscreen::screen +char *fillscreen::screen#1 // 20002.0 +char *fillscreen::screen#2 // 8000.8 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -330,7 +330,7 @@ main: { // [5] fillscreen::c#0 = *BG_COLOR -- vbuz1=_deref_pbuc1 lda BG_COLOR sta.z fillscreen.c - // [6] call fillscreen + // [6] call fillscreen // [8] phi from main::@2 to fillscreen [phi:main::@2->fillscreen] fillscreen_from___b2: jsr fillscreen @@ -343,7 +343,7 @@ main: { } .segment CodeHigh // fillscreen -// fillscreen(byte zp(4) c) +// void fillscreen(__zp(4) char c) fillscreen: { .label c = 4 .label screen = 2 @@ -420,23 +420,23 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* BG_COLOR = (byte*) 53281 -constant byte* SCREEN = (byte*) 1024 -constant byte* base[$100] = { fill( $100, 0) } -void fillscreen(byte fillscreen::c) -byte~ fillscreen::$2 reg byte a 20002.0 -byte fillscreen::c -byte fillscreen::c#0 c zp[1]:4 1251.5 -byte fillscreen::i -byte fillscreen::i#1 reg byte x 10001.0 -byte fillscreen::i#2 reg byte x 7500.75 -byte* fillscreen::screen -byte* fillscreen::screen#1 screen zp[2]:2 20002.0 -byte* fillscreen::screen#2 screen zp[2]:2 8000.8 +__constant char *BG_COLOR = (char *) 53281 +__constant char *SCREEN = (char *) 1024 +__constant char base[$100] = { fill( $100, 0) } +void fillscreen(char c) +char fillscreen::$2 // reg byte a 20002.0 +char fillscreen::c +char fillscreen::c#0 // c zp[1]:4 1251.5 +char fillscreen::i +char fillscreen::i#1 // reg byte x 10001.0 +char fillscreen::i#2 // reg byte x 7500.75 +char *fillscreen::screen +char *fillscreen::screen#1 // screen zp[2]:2 20002.0 +char *fillscreen::screen#2 // screen zp[2]:2 8000.8 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ fillscreen::screen#2 fillscreen::screen#1 ] @@ -496,7 +496,7 @@ main: { // [5] fillscreen::c#0 = *BG_COLOR -- vbuz1=_deref_pbuc1 lda BG_COLOR sta.z fillscreen.c - // [6] call fillscreen + // [6] call fillscreen // [8] phi from main::@2 to fillscreen [phi:main::@2->fillscreen] jsr fillscreen // main::@3 @@ -507,7 +507,7 @@ main: { } .segment CodeHigh // fillscreen -// fillscreen(byte zp(4) c) +// void fillscreen(__zp(4) char c) fillscreen: { .label c = 4 .label screen = 2 diff --git a/src/test/ref/examples/c64/linking/linking.sym b/src/test/ref/examples/c64/linking/linking.sym index 43541042f..8fe4ebfe8 100644 --- a/src/test/ref/examples/c64/linking/linking.sym +++ b/src/test/ref/examples/c64/linking/linking.sym @@ -1,20 +1,20 @@ -constant byte* BG_COLOR = (byte*) 53281 -constant byte* SCREEN = (byte*) 1024 -constant byte* base[$100] = { fill( $100, 0) } -void fillscreen(byte fillscreen::c) -byte~ fillscreen::$2 reg byte a 20002.0 -byte fillscreen::c -byte fillscreen::c#0 c zp[1]:4 1251.5 -byte fillscreen::i -byte fillscreen::i#1 reg byte x 10001.0 -byte fillscreen::i#2 reg byte x 7500.75 -byte* fillscreen::screen -byte* fillscreen::screen#1 screen zp[2]:2 20002.0 -byte* fillscreen::screen#2 screen zp[2]:2 8000.8 +__constant char *BG_COLOR = (char *) 53281 +__constant char *SCREEN = (char *) 1024 +__constant char base[$100] = { fill( $100, 0) } +void fillscreen(char c) +char fillscreen::$2 // reg byte a 20002.0 +char fillscreen::c +char fillscreen::c#0 // c zp[1]:4 1251.5 +char fillscreen::i +char fillscreen::i#1 // reg byte x 10001.0 +char fillscreen::i#2 // reg byte x 7500.75 +char *fillscreen::screen +char *fillscreen::screen#1 // screen zp[2]:2 20002.0 +char *fillscreen::screen#2 // screen zp[2]:2 8000.8 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ fillscreen::screen#2 fillscreen::screen#1 ] diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm index 724988c4b..1308fd458 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm @@ -216,6 +216,7 @@ loop: { jmp __b2 } // Initialize the multiplexer data structures +// void plexInit(char *screen) plexInit: { // PLEX_SCREEN_PTR = screen+0x3f8 lda #= PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]] from [17] plexSort::$2 = plexSort::nxt_y#0 < PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]] Inversing boolean not [76] plexShowSprite::$7 = plex_sprite_msb != 0 from [75] plexShowSprite::$6 = plex_sprite_msb == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -685,7 +685,7 @@ Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values plexSort::m#3 plexSort::m#2 Identical Phi Values loop::sin_idx#11 loop::sin_idx#1 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [63] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_WORD +Identified duplicate assignment right side [63] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition plexInit::$1 [8] if(plexInit::i#1!=rangelast(0,PLEX_COUNT-1)) goto plexInit::@1 Simple Condition plexSort::$3 [16] if(plexSort::nxt_y#0>=PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]]) goto plexSort::@2 @@ -695,10 +695,10 @@ Simple Condition plexShowSprite::$3 [57] if(plexShowSprite::$2!=0) goto plexShow Simple Condition plexShowSprite::$7 [67] if(plex_sprite_msb!=0) goto plexShowSprite::@return Simple Condition init::$1 [86] if(init::sx#1!=rangelast(0,PLEX_COUNT-1)) goto init::@1 Simple Condition init::$2 [93] if(init::ss#1!=rangelast(0,7)) goto init::@3 -Simple Condition loop::$0 [100] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 +Simple Condition loop::$0 [100] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 Simple Condition loop::$2 [108] if(loop::sy#1!=rangelast(0,PLEX_COUNT-1)) goto loop::@4 Simple Condition loop::$6 [116] if(loop::$5!=0) goto loop::@6 -Simple Condition loop::$8 [123] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)=PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]]) goto plexSort::@2 [ plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 ] ( main:7::loop:12::plexSort:41 [ PLEX_SCREEN_PTR loop::sin_idx#1 plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 ] { } ) always clobbers reg byte a Statement [68] (PLEX_SORTED_IDX+1)[plexSort::s#3] = PLEX_SORTED_IDX[plexSort::s#3] [ plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#3 ] ( main:7::loop:12::plexSort:41 [ PLEX_SCREEN_PTR loop::sin_idx#1 plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#3 ] { } ) always clobbers reg byte a @@ -1413,34 +1413,34 @@ Statement [90] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 Statement [94] PLEX_SCREEN_PTR[plex_sprite_idx] = PLEX_PTR[PLEX_SORTED_IDX[plex_show_idx]] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [95] plexShowSprite::xpos_idx#0 = PLEX_SORTED_IDX[plex_show_idx] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] { } ) always clobbers reg byte y Statement [96] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] { } ) always clobbers reg byte a -Statement [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a +Statement [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a Statement [98] plexShowSprite::$2 = byte1 PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] { } ) always clobbers reg byte a Statement [100] plexShowSprite::$8 = $ff ^ plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] { } ) always clobbers reg byte a Statement [101] *SPRITES_XMSB = *SPRITES_XMSB & plexShowSprite::$8 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [107] if(plex_sprite_msb!=0) goto plexShowSprite::@return [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [108] plex_sprite_msb = 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [110] *SPRITES_XMSB = *SPRITES_XMSB | plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] plex_free_next = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [14] *D011 = VICII_DEN|VICII_RSEL|3 [ ] ( main:7::init:10 [ ] { } ) always clobbers reg byte a -Statement [17] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 ] ( main:7::init:10 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a +Statement [17] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 ] ( main:7::init:10 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Statement [18] init::$3 = init::sx#2 << 1 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 init::$3 ] ( main:7::init:10 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 init::$3 ] { } ) always clobbers reg byte a Statement [19] PLEX_XPOS[init::$3] = init::xp#2 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 ] ( main:7::init:10 [ PLEX_SCREEN_PTR init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Statement [20] init::xp#1 = init::xp#2 + 9 [ PLEX_SCREEN_PTR init::sx#2 init::xp#1 ] ( main:7::init:10 [ PLEX_SCREEN_PTR init::sx#2 init::xp#1 ] { } ) always clobbers reg byte a -Statement [23] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff [ PLEX_SCREEN_PTR ] ( main:7::init:10 [ PLEX_SCREEN_PTR ] { } ) always clobbers reg byte a +Statement [23] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff [ PLEX_SCREEN_PTR ] ( main:7::init:10 [ PLEX_SCREEN_PTR ] { } ) always clobbers reg byte a Statement [25] SPRITES_COLOR[init::ss#2] = GREEN [ PLEX_SCREEN_PTR init::ss#2 ] ( main:7::init:10 [ PLEX_SCREEN_PTR init::ss#2 ] { } ) always clobbers reg byte a -Statement [31] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 [ PLEX_SCREEN_PTR loop::sin_idx#6 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR loop::sin_idx#6 ] { } ) always clobbers reg byte a +Statement [31] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 [ PLEX_SCREEN_PTR loop::sin_idx#6 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR loop::sin_idx#6 ] { } ) always clobbers reg byte a Statement [35] PLEX_YPOS[loop::sy#2] = YSIN[loop::y_idx#2] [ PLEX_SCREEN_PTR loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR loop::sin_idx#6 loop::y_idx#2 loop::sy#2 ] { } ) always clobbers reg byte a Statement [36] loop::y_idx#1 = loop::y_idx#2 + 8 [ PLEX_SCREEN_PTR loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR loop::sin_idx#6 loop::sy#2 loop::y_idx#1 ] { } ) always clobbers reg byte a -Statement [42] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 ] { } ) always clobbers reg byte a +Statement [42] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 ] { } ) always clobbers reg byte a Statement [43] loop::$5 = *D011 & VICII_RST8 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::$5 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::$5 ] { } ) always clobbers reg byte a -Statement [46] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#5 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#5 ] { } ) always clobbers reg byte a +Statement [46] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#5 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#5 ] { } ) always clobbers reg byte a Statement [47] loop::plexFreeNextYpos1_return#0 = PLEX_FREE_YPOS[plex_free_next] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#5 loop::plexFreeNextYpos1_return#0 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#5 loop::plexFreeNextYpos1_return#0 ] { } ) always clobbers reg byte y Statement [52] if(loop::ss#1!=PLEX_COUNT-1+1) goto loop::@7 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#1 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next loop::sin_idx#1 loop::ss#1 ] { } ) always clobbers reg byte a -Statement [53] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ PLEX_SCREEN_PTR loop::sin_idx#1 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR loop::sin_idx#1 ] { } ) always clobbers reg byte a +Statement [53] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK [ PLEX_SCREEN_PTR loop::sin_idx#1 ] ( main:7::loop:12 [ PLEX_SCREEN_PTR loop::sin_idx#1 ] { } ) always clobbers reg byte a Statement [55] PLEX_SCREEN_PTR = SCREEN+$3f8 [ PLEX_SCREEN_PTR ] ( main:7::init:10::plexInit:15 [ PLEX_SCREEN_PTR ] { } ) always clobbers reg byte a Statement [65] if(plexSort::nxt_y#0>=PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]]) goto plexSort::@2 [ plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 ] ( main:7::loop:12::plexSort:41 [ PLEX_SCREEN_PTR loop::sin_idx#1 plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 ] { } ) always clobbers reg byte a Statement [68] (PLEX_SORTED_IDX+1)[plexSort::s#3] = PLEX_SORTED_IDX[plexSort::s#3] [ plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#3 ] ( main:7::loop:12::plexSort:41 [ PLEX_SCREEN_PTR loop::sin_idx#1 plexSort::m#2 plexSort::nxt_idx#0 plexSort::nxt_y#0 plexSort::s#3 ] { } ) always clobbers reg byte a @@ -1458,7 +1458,7 @@ Statement [90] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 Statement [94] PLEX_SCREEN_PTR[plex_sprite_idx] = PLEX_PTR[PLEX_SORTED_IDX[plex_show_idx]] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [95] plexShowSprite::xpos_idx#0 = PLEX_SORTED_IDX[plex_show_idx] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] { } ) always clobbers reg byte y Statement [96] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] { } ) always clobbers reg byte a -Statement [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a +Statement [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a Statement [98] plexShowSprite::$2 = byte1 PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] { } ) always clobbers reg byte a Statement [100] plexShowSprite::$8 = $ff ^ plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] { } ) always clobbers reg byte a Statement [101] *SPRITES_XMSB = *SPRITES_XMSB & plexShowSprite::$8 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( main:7::loop:12::plexShowSprite:50 [ loop::sin_idx#1 loop::ss#5 PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a @@ -1652,7 +1652,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 + // [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 @@ -1674,7 +1674,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main jsr main jmp __breturn // __start::@return @@ -1686,14 +1686,14 @@ __start: { main: { // asm { sei } sei - // [10] call init + // [10] call init jsr init // [11] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [12] call loop + // [12] call loop // [29] phi from main::@1 to loop [phi:main::@1->loop] loop_from___b1: jsr loop @@ -1711,7 +1711,7 @@ init: { // [14] *D011 = VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_DEN|VICII_RSEL|3 sta D011 - // [15] call plexInit + // [15] call plexInit // Initialize the multiplexer // [54] phi from init to plexInit [phi:init->plexInit] plexInit_from_init: @@ -1733,7 +1733,7 @@ init: { jmp __b1 // init::@1 __b1: - // [17] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 + // [17] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta PLEX_PTR,x // [18] init::$3 = init::sx#2 << 1 -- vbuaa=vbuxx_rol_1 @@ -1761,7 +1761,7 @@ init: { jmp __b2 // init::@2 __b2: - // [23] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff -- _deref_pbuc1=vbuc2 + // [23] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff -- _deref_pbuc1=vbuc2 // Enable & initialize sprites lda #$ff sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -1807,14 +1807,14 @@ loop: { jmp __b2 // loop::@2 __b2: - // [31] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [31] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 jmp __b3 // loop::@3 __b3: - // [32] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [32] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [33] loop::y_idx#3 = loop::sin_idx#6 -- vbuxx=vbuz1 ldx.z sin_idx @@ -1847,16 +1847,16 @@ loop: { __b5: // [39] loop::sin_idx#1 = loop::sin_idx#6 + 1 -- vbuz1=vbuz1_plus_1 inc.z sin_idx - // [40] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [40] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [41] call plexSort + // [41] call plexSort // [61] phi from loop::@5 to plexSort [phi:loop::@5->plexSort] plexSort_from___b5: jsr plexSort jmp __b11 // loop::@11 __b11: - // [42] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [42] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __b6 @@ -1881,7 +1881,7 @@ loop: { jmp __b7 // loop::@7 __b7: - // [46] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [46] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp plexFreeNextYpos1 @@ -1893,7 +1893,7 @@ loop: { jmp __b8 // loop::@8 __b8: - // [48] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)loop::@1] @@ -1927,6 +1927,7 @@ loop: { } // plexInit // Initialize the multiplexer data structures +// void plexInit(char *screen) plexInit: { jmp plexSetScreen1 // plexInit::plexSetScreen1 @@ -2143,7 +2144,7 @@ plexShowSprite: { // [96] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 -- vbuxx=vbuaa_rol_1 asl tax - // [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx + // [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx ldy.z plex_sprite_idx2 lda PLEX_XPOS,x sta SPRITES_XPOS,y @@ -2350,34 +2351,34 @@ Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant const byte BLACK = 0 -constant byte* const D011 = (byte*) 53265 -constant const byte GREEN = 5 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant const byte PLEX_COUNT = $20 -constant byte* PLEX_FREE_YPOS[8] = { fill( 8, 0) } -constant byte* PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -byte* volatile PLEX_SCREEN_PTR loadstore zp[2]:6 1402.8333333333335 -constant byte* PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant word* PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* SCREEN = (byte*) 1024 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant const char BLACK = 0 +__constant char * const D011 = (char *) 53265 +__constant const char GREEN = 5 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant const char PLEX_COUNT = $20 +__constant char PLEX_FREE_YPOS[8] = { fill( 8, 0) } +__constant char PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__loadstore char * volatile PLEX_SCREEN_PTR // zp[2]:6 1402.8333333333335 +__constant char PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant unsigned int PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char *SCREEN = (char *) 1024 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte VICII_RST8 = $80 -constant byte* YSIN[$100] = kickasm {{ .var min = 50 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char VICII_RST8 = $80 +__constant char YSIN[$100] = kickasm {{ .var min = 50 .var max = 250-21 .var ampl = max-min; .for(var i=0;i<256;i++) @@ -2385,77 +2386,77 @@ constant byte* YSIN[$100] = kickasm {{ .var min = 50 }} void __start() void init() -byte~ init::$3 reg byte a 2002.0 -byte init::ss -byte init::ss#1 reg byte x 1501.5 -byte init::ss#2 reg byte x 1501.5 -byte init::sx -byte init::sx#1 reg byte x 1501.5 -byte init::sx#2 reg byte x 800.8 -word init::xp -word init::xp#1 xp zp[2]:2 667.3333333333334 -word init::xp#2 xp zp[2]:2 750.75 +char init::$3 // reg byte a 2002.0 +char init::ss +char init::ss#1 // reg byte x 1501.5 +char init::ss#2 // reg byte x 1501.5 +char init::sx +char init::sx#1 // reg byte x 1501.5 +char init::sx#2 // reg byte x 800.8 +unsigned int init::xp +unsigned int init::xp#1 // xp zp[2]:2 667.3333333333334 +unsigned int init::xp#2 // xp zp[2]:2 750.75 void loop() -byte~ loop::$5 reg byte a 20002.0 -byte loop::plexFreeNextYpos1_return -byte loop::plexFreeNextYpos1_return#0 reg byte a 55001.0 -byte loop::rasterY -byte loop::sin_idx -byte loop::sin_idx#1 sin_idx zp[1]:4 133.46666666666667 -byte loop::sin_idx#6 sin_idx zp[1]:4 333.6666666666667 -byte loop::ss -byte loop::ss#1 ss zp[1]:5 15001.5 -byte loop::ss#5 ss zp[1]:5 3333.6666666666665 -byte loop::sy -byte loop::sy#1 reg byte y 15001.5 -byte loop::sy#2 reg byte y 10001.0 -byte loop::y_idx -byte loop::y_idx#1 reg byte x 6667.333333333333 -byte loop::y_idx#2 reg byte x 15502.0 -byte loop::y_idx#3 reg byte x 2002.0 +char loop::$5 // reg byte a 20002.0 +char loop::plexFreeNextYpos1_return +char loop::plexFreeNextYpos1_return#0 // reg byte a 55001.0 +char loop::rasterY +char loop::sin_idx +char loop::sin_idx#1 // sin_idx zp[1]:4 133.46666666666667 +char loop::sin_idx#6 // sin_idx zp[1]:4 333.6666666666667 +char loop::ss +char loop::ss#1 // ss zp[1]:5 15001.5 +char loop::ss#5 // ss zp[1]:5 3333.6666666666665 +char loop::sy +char loop::sy#1 // reg byte y 15001.5 +char loop::sy#2 // reg byte y 10001.0 +char loop::y_idx +char loop::y_idx#1 // reg byte x 6667.333333333333 +char loop::y_idx#2 // reg byte x 15502.0 +char loop::y_idx#3 // reg byte x 2002.0 void main() -void plexInit(byte* plexInit::screen) -byte plexInit::i -byte plexInit::i#1 reg byte x 15001.5 -byte plexInit::i#2 reg byte x 20002.0 -byte* plexInit::plexSetScreen1_screen -byte* plexInit::screen +void plexInit(char *screen) +char plexInit::i +char plexInit::i#1 // reg byte x 15001.5 +char plexInit::i#2 // reg byte x 20002.0 +char *plexInit::plexSetScreen1_screen +char *plexInit::screen void plexShowSprite() -byte~ plexShowSprite::$10 reg byte x 100001.0 -byte~ plexShowSprite::$2 reg byte a 200002.0 -byte~ plexShowSprite::$4 reg byte x 200002.0 -byte~ plexShowSprite::$5 reg byte a 200002.0 -byte~ plexShowSprite::$8 reg byte a 200002.0 -byte~ plexShowSprite::plexFreeAdd1_$0 reg byte a 200002.0 -byte~ plexShowSprite::plexFreeAdd1_$1 reg byte x 200002.0 -byte~ plexShowSprite::plexFreeAdd1_$2 reg byte a 200002.0 -byte plexShowSprite::plexFreeAdd1_ypos -byte plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 150001.5 -byte plexShowSprite::plex_sprite_idx2 -byte plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp[1]:14 27273.0 -byte plexShowSprite::xpos_idx -byte plexShowSprite::xpos_idx#0 reg byte a 200002.0 -byte plexShowSprite::ypos +char plexShowSprite::$10 // reg byte x 100001.0 +char plexShowSprite::$2 // reg byte a 200002.0 +char plexShowSprite::$4 // reg byte x 200002.0 +char plexShowSprite::$5 // reg byte a 200002.0 +char plexShowSprite::$8 // reg byte a 200002.0 +char plexShowSprite::plexFreeAdd1_$0 // reg byte a 200002.0 +char plexShowSprite::plexFreeAdd1_$1 // reg byte x 200002.0 +char plexShowSprite::plexFreeAdd1_$2 // reg byte a 200002.0 +char plexShowSprite::plexFreeAdd1_ypos +char plexShowSprite::plexFreeAdd1_ypos#0 // reg byte a 150001.5 +char plexShowSprite::plex_sprite_idx2 +char plexShowSprite::plex_sprite_idx2#0 // plex_sprite_idx2 zp[1]:14 27273.0 +char plexShowSprite::xpos_idx +char plexShowSprite::xpos_idx#0 // reg byte a 200002.0 +char plexShowSprite::ypos void plexSort() -byte plexSort::m -byte plexSort::m#1 m zp[1]:14 1500001.5 -byte plexSort::m#2 m zp[1]:14 416667.0833333334 -byte plexSort::nxt_idx -byte plexSort::nxt_idx#0 nxt_idx zp[1]:12 300000.30000000005 -byte plexSort::nxt_y -byte plexSort::nxt_y#0 nxt_y zp[1]:13 1500000.375 -byte plexSort::plexFreePrepare1_s -byte plexSort::plexFreePrepare1_s#1 reg byte x 1500001.5 -byte plexSort::plexFreePrepare1_s#2 reg byte x 1500001.5 -byte plexSort::s -byte plexSort::s#1 reg byte x 1.3666668333333332E7 -byte plexSort::s#2 reg byte x 2000002.0 -byte plexSort::s#3 reg byte x 2.05000025E7 -byte plexSort::s#6 reg byte x 2000002.0 -volatile byte plex_free_next loadstore zp[1]:11 8648.837837837838 -volatile byte plex_show_idx loadstore zp[1]:8 10851.234042553191 -volatile byte plex_sprite_idx loadstore zp[1]:9 9318.340909090908 -volatile byte plex_sprite_msb loadstore zp[1]:10 13555.755555555555 +char plexSort::m +char plexSort::m#1 // m zp[1]:14 1500001.5 +char plexSort::m#2 // m zp[1]:14 416667.0833333334 +char plexSort::nxt_idx +char plexSort::nxt_idx#0 // nxt_idx zp[1]:12 300000.30000000005 +char plexSort::nxt_y +char plexSort::nxt_y#0 // nxt_y zp[1]:13 1500000.375 +char plexSort::plexFreePrepare1_s +char plexSort::plexFreePrepare1_s#1 // reg byte x 1500001.5 +char plexSort::plexFreePrepare1_s#2 // reg byte x 1500001.5 +char plexSort::s +char plexSort::s#1 // reg byte x 1.3666668333333332E7 +char plexSort::s#2 // reg byte x 2000002.0 +char plexSort::s#3 // reg byte x 2.05000025E7 +char plexSort::s#6 // reg byte x 2000002.0 +__loadstore volatile char plex_free_next // zp[1]:11 8648.837837837838 +__loadstore volatile char plex_show_idx // zp[1]:8 10851.234042553191 +__loadstore volatile char plex_sprite_idx // zp[1]:9 9318.340909090908 +__loadstore volatile char plex_sprite_msb // zp[1]:10 13555.755555555555 reg byte x [ init::sx#2 init::sx#1 ] zp[2]:2 [ init::xp#2 init::xp#1 ] @@ -2560,7 +2561,7 @@ Score: 57307 __start: { // __start::__init1 // char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8 - // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 + // [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 @@ -2582,7 +2583,7 @@ __start: { sta.z plex_free_next // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main jsr main // __start::@return // [8] return @@ -2594,12 +2595,12 @@ main: { // asm { sei } sei // init() - // [10] call init + // [10] call init jsr init // [11] phi from main to main::@1 [phi:main->main::@1] // main::@1 // loop() - // [12] call loop + // [12] call loop // [29] phi from main::@1 to loop [phi:main::@1->loop] jsr loop // main::@return @@ -2617,7 +2618,7 @@ init: { lda #VICII_DEN|VICII_RSEL|3 sta D011 // plexInit(SCREEN) - // [15] call plexInit + // [15] call plexInit // Initialize the multiplexer // [54] phi from init to plexInit [phi:init->plexInit] jsr plexInit @@ -2635,7 +2636,7 @@ init: { // init::@1 __b1: // PLEX_PTR[sx] = (char)(SPRITE/$40) - // [17] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 + // [17] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta PLEX_PTR,x // PLEX_XPOS[sx] = xp @@ -2665,7 +2666,7 @@ init: { bne __b1 // init::@2 // VICII->SPRITES_ENABLE = $ff - // [23] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff -- _deref_pbuc1=vbuc2 + // [23] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE) = $ff -- _deref_pbuc1=vbuc2 // Enable & initialize sprites lda #$ff sta VICII+OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE @@ -2705,13 +2706,13 @@ loop: { // loop::@2 __b2: // while(VICII->RASTER!=$ff) - // [31] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [31] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto loop::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 // loop::@3 // (VICII->BORDER_COLOR)++; - // [32] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [32] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [33] loop::y_idx#3 = loop::sin_idx#6 -- vbuxx=vbuz1 ldx.z sin_idx @@ -2743,15 +2744,15 @@ loop: { // [39] loop::sin_idx#1 = loop::sin_idx#6 + 1 -- vbuz1=vbuz1_plus_1 inc.z sin_idx // (VICII->BORDER_COLOR)++; - // [40] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [40] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // plexSort() - // [41] call plexSort + // [41] call plexSort // [61] phi from loop::@5 to plexSort [phi:loop::@5->plexSort] jsr plexSort // loop::@11 // VICII->BORDER_COLOR = BLACK - // [42] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [42] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // loop::@6 @@ -2774,7 +2775,7 @@ loop: { // loop::@7 __b7: // VICII->BORDER_COLOR = BLACK - // [46] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [46] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // loop::plexFreeNextYpos1 @@ -2785,17 +2786,17 @@ loop: { // loop::@8 __b8: // while(VICII->RASTERBORDER_COLOR)++; - // [49] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [49] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // plexShowSprite() - // [50] call plexShowSprite + // [50] call plexShowSprite jsr plexShowSprite // loop::@12 // for( char ss: 0..PLEX_COUNT-1) @@ -2807,7 +2808,7 @@ loop: { bne __b7 // loop::@10 // VICII->BORDER_COLOR = BLACK - // [53] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 + // [53] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [30] phi from loop::@10 to loop::@1 [phi:loop::@10->loop::@1] @@ -2816,6 +2817,7 @@ loop: { } // plexInit // Initialize the multiplexer data structures +// void plexInit(char *screen) plexInit: { // plexInit::plexSetScreen1 // PLEX_SCREEN_PTR = screen+0x3f8 @@ -3021,7 +3023,7 @@ plexShowSprite: { // [96] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 -- vbuxx=vbuaa_rol_1 asl tax - // [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx + // [97] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx ldy.z plex_sprite_idx2 lda PLEX_XPOS,x sta SPRITES_XPOS,y diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.sym b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.sym index 779909d7c..c39cac760 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.sym +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.sym @@ -1,31 +1,31 @@ -constant const byte BLACK = 0 -constant byte* const D011 = (byte*) 53265 -constant const byte GREEN = 5 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 -constant const byte PLEX_COUNT = $20 -constant byte* PLEX_FREE_YPOS[8] = { fill( 8, 0) } -constant byte* PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -byte* volatile PLEX_SCREEN_PTR loadstore zp[2]:6 1402.8333333333335 -constant byte* PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant word* PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* SCREEN = (byte*) 1024 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant const char BLACK = 0 +__constant char * const D011 = (char *) 53265 +__constant const char GREEN = 5 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15 +__constant const char PLEX_COUNT = $20 +__constant char PLEX_FREE_YPOS[8] = { fill( 8, 0) } +__constant char PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__loadstore char * volatile PLEX_SCREEN_PTR // zp[2]:6 1402.8333333333335 +__constant char PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant unsigned int PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char *SCREEN = (char *) 1024 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte VICII_RST8 = $80 -constant byte* YSIN[$100] = kickasm {{ .var min = 50 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char VICII_RST8 = $80 +__constant char YSIN[$100] = kickasm {{ .var min = 50 .var max = 250-21 .var ampl = max-min; .for(var i=0;i<256;i++) @@ -33,77 +33,77 @@ constant byte* YSIN[$100] = kickasm {{ .var min = 50 }} void __start() void init() -byte~ init::$3 reg byte a 2002.0 -byte init::ss -byte init::ss#1 reg byte x 1501.5 -byte init::ss#2 reg byte x 1501.5 -byte init::sx -byte init::sx#1 reg byte x 1501.5 -byte init::sx#2 reg byte x 800.8 -word init::xp -word init::xp#1 xp zp[2]:2 667.3333333333334 -word init::xp#2 xp zp[2]:2 750.75 +char init::$3 // reg byte a 2002.0 +char init::ss +char init::ss#1 // reg byte x 1501.5 +char init::ss#2 // reg byte x 1501.5 +char init::sx +char init::sx#1 // reg byte x 1501.5 +char init::sx#2 // reg byte x 800.8 +unsigned int init::xp +unsigned int init::xp#1 // xp zp[2]:2 667.3333333333334 +unsigned int init::xp#2 // xp zp[2]:2 750.75 void loop() -byte~ loop::$5 reg byte a 20002.0 -byte loop::plexFreeNextYpos1_return -byte loop::plexFreeNextYpos1_return#0 reg byte a 55001.0 -byte loop::rasterY -byte loop::sin_idx -byte loop::sin_idx#1 sin_idx zp[1]:4 133.46666666666667 -byte loop::sin_idx#6 sin_idx zp[1]:4 333.6666666666667 -byte loop::ss -byte loop::ss#1 ss zp[1]:5 15001.5 -byte loop::ss#5 ss zp[1]:5 3333.6666666666665 -byte loop::sy -byte loop::sy#1 reg byte y 15001.5 -byte loop::sy#2 reg byte y 10001.0 -byte loop::y_idx -byte loop::y_idx#1 reg byte x 6667.333333333333 -byte loop::y_idx#2 reg byte x 15502.0 -byte loop::y_idx#3 reg byte x 2002.0 +char loop::$5 // reg byte a 20002.0 +char loop::plexFreeNextYpos1_return +char loop::plexFreeNextYpos1_return#0 // reg byte a 55001.0 +char loop::rasterY +char loop::sin_idx +char loop::sin_idx#1 // sin_idx zp[1]:4 133.46666666666667 +char loop::sin_idx#6 // sin_idx zp[1]:4 333.6666666666667 +char loop::ss +char loop::ss#1 // ss zp[1]:5 15001.5 +char loop::ss#5 // ss zp[1]:5 3333.6666666666665 +char loop::sy +char loop::sy#1 // reg byte y 15001.5 +char loop::sy#2 // reg byte y 10001.0 +char loop::y_idx +char loop::y_idx#1 // reg byte x 6667.333333333333 +char loop::y_idx#2 // reg byte x 15502.0 +char loop::y_idx#3 // reg byte x 2002.0 void main() -void plexInit(byte* plexInit::screen) -byte plexInit::i -byte plexInit::i#1 reg byte x 15001.5 -byte plexInit::i#2 reg byte x 20002.0 -byte* plexInit::plexSetScreen1_screen -byte* plexInit::screen +void plexInit(char *screen) +char plexInit::i +char plexInit::i#1 // reg byte x 15001.5 +char plexInit::i#2 // reg byte x 20002.0 +char *plexInit::plexSetScreen1_screen +char *plexInit::screen void plexShowSprite() -byte~ plexShowSprite::$10 reg byte x 100001.0 -byte~ plexShowSprite::$2 reg byte a 200002.0 -byte~ plexShowSprite::$4 reg byte x 200002.0 -byte~ plexShowSprite::$5 reg byte a 200002.0 -byte~ plexShowSprite::$8 reg byte a 200002.0 -byte~ plexShowSprite::plexFreeAdd1_$0 reg byte a 200002.0 -byte~ plexShowSprite::plexFreeAdd1_$1 reg byte x 200002.0 -byte~ plexShowSprite::plexFreeAdd1_$2 reg byte a 200002.0 -byte plexShowSprite::plexFreeAdd1_ypos -byte plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 150001.5 -byte plexShowSprite::plex_sprite_idx2 -byte plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp[1]:14 27273.0 -byte plexShowSprite::xpos_idx -byte plexShowSprite::xpos_idx#0 reg byte a 200002.0 -byte plexShowSprite::ypos +char plexShowSprite::$10 // reg byte x 100001.0 +char plexShowSprite::$2 // reg byte a 200002.0 +char plexShowSprite::$4 // reg byte x 200002.0 +char plexShowSprite::$5 // reg byte a 200002.0 +char plexShowSprite::$8 // reg byte a 200002.0 +char plexShowSprite::plexFreeAdd1_$0 // reg byte a 200002.0 +char plexShowSprite::plexFreeAdd1_$1 // reg byte x 200002.0 +char plexShowSprite::plexFreeAdd1_$2 // reg byte a 200002.0 +char plexShowSprite::plexFreeAdd1_ypos +char plexShowSprite::plexFreeAdd1_ypos#0 // reg byte a 150001.5 +char plexShowSprite::plex_sprite_idx2 +char plexShowSprite::plex_sprite_idx2#0 // plex_sprite_idx2 zp[1]:14 27273.0 +char plexShowSprite::xpos_idx +char plexShowSprite::xpos_idx#0 // reg byte a 200002.0 +char plexShowSprite::ypos void plexSort() -byte plexSort::m -byte plexSort::m#1 m zp[1]:14 1500001.5 -byte plexSort::m#2 m zp[1]:14 416667.0833333334 -byte plexSort::nxt_idx -byte plexSort::nxt_idx#0 nxt_idx zp[1]:12 300000.30000000005 -byte plexSort::nxt_y -byte plexSort::nxt_y#0 nxt_y zp[1]:13 1500000.375 -byte plexSort::plexFreePrepare1_s -byte plexSort::plexFreePrepare1_s#1 reg byte x 1500001.5 -byte plexSort::plexFreePrepare1_s#2 reg byte x 1500001.5 -byte plexSort::s -byte plexSort::s#1 reg byte x 1.3666668333333332E7 -byte plexSort::s#2 reg byte x 2000002.0 -byte plexSort::s#3 reg byte x 2.05000025E7 -byte plexSort::s#6 reg byte x 2000002.0 -volatile byte plex_free_next loadstore zp[1]:11 8648.837837837838 -volatile byte plex_show_idx loadstore zp[1]:8 10851.234042553191 -volatile byte plex_sprite_idx loadstore zp[1]:9 9318.340909090908 -volatile byte plex_sprite_msb loadstore zp[1]:10 13555.755555555555 +char plexSort::m +char plexSort::m#1 // m zp[1]:14 1500001.5 +char plexSort::m#2 // m zp[1]:14 416667.0833333334 +char plexSort::nxt_idx +char plexSort::nxt_idx#0 // nxt_idx zp[1]:12 300000.30000000005 +char plexSort::nxt_y +char plexSort::nxt_y#0 // nxt_y zp[1]:13 1500000.375 +char plexSort::plexFreePrepare1_s +char plexSort::plexFreePrepare1_s#1 // reg byte x 1500001.5 +char plexSort::plexFreePrepare1_s#2 // reg byte x 1500001.5 +char plexSort::s +char plexSort::s#1 // reg byte x 1.3666668333333332E7 +char plexSort::s#2 // reg byte x 2000002.0 +char plexSort::s#3 // reg byte x 2.05000025E7 +char plexSort::s#6 // reg byte x 2000002.0 +__loadstore volatile char plex_free_next // zp[1]:11 8648.837837837838 +__loadstore volatile char plex_show_idx // zp[1]:8 10851.234042553191 +__loadstore volatile char plex_sprite_idx // zp[1]:9 9318.340909090908 +__loadstore volatile char plex_sprite_msb // zp[1]:10 13555.755555555555 reg byte x [ init::sx#2 init::sx#1 ] zp[2]:2 [ init::xp#2 init::xp#1 ] diff --git a/src/test/ref/examples/c64/music/music.cfg b/src/test/ref/examples/c64/music/music.cfg index 6fbd39b56..0407bde01 100644 --- a/src/test/ref/examples/c64/music/music.cfg +++ b/src/test/ref/examples/c64/music/music.cfg @@ -5,12 +5,12 @@ main: scope:[main] from [1] callexecute *musicInit to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 - [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 + [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) [4] callexecute *musicPlay to:main::@3 main::@3: scope:[main] from main::@2 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:main::@1 diff --git a/src/test/ref/examples/c64/music/music.log b/src/test/ref/examples/c64/music/music.log index 137684283..b0ef8b45b 100644 --- a/src/test/ref/examples/c64/music/music.log +++ b/src/test/ref/examples/c64/music/music.log @@ -10,15 +10,15 @@ main: scope:[main] from __start::@1 callexecute *musicInit to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 - main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fd + main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fd if(main::$1) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) callexecute *musicPlay to:main::@3 main::@3: scope:[main] from main::@2 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) if(true) goto main::@1 to:main::@return main::@return: scope:[main] from main::@3 @@ -40,29 +40,29 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") .fill music.size, music.getData(i) }} -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() void main() -bool~ main::$1 -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 +bool main::$1 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 Adding number conversion cast (unumber) 3 in -Adding number conversion cast (unumber) $fd in main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fd +Adding number conversion cast (unumber) $fd in main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fd Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 Simplifying constant integer cast 3 Simplifying constant integer cast $fd Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $fd +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $fd Successful SSA optimization PassNFinalizeNumberTypeConversions -Simple Condition main::$1 [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 +Simple Condition main::$1 [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification if() condition always true - replacing block destination [6] if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -75,7 +75,7 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $1000 +Finalized unsigned number type (unsigned int) $1000 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -93,14 +93,14 @@ main: scope:[main] from [1] callexecute *musicInit to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 - [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 + [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) [4] callexecute *musicPlay to:main::@3 main::@3: scope:[main] from main::@2 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:main::@1 @@ -111,7 +111,7 @@ Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] callexecute *musicPlay [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y REGISTER UPLIFT SCOPES @@ -165,14 +165,14 @@ main: { // Wait for the RASTER // main::@1 __b1: - // [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$fd cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1 jmp __b2 // main::@2 __b2: - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [4] callexecute *musicPlay -- call__deref_pprc1 // Play the music @@ -180,7 +180,7 @@ main: { jmp __b3 // main::@3 __b3: - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __b1 } @@ -203,15 +203,15 @@ Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") .fill music.size, music.getData(i) }} -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 @@ -256,13 +256,13 @@ main: { // main::@1 __b1: // while (VICII->RASTER != $fd) - // [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fd) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$fd cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1 // main::@2 // (VICII->BORDER_COLOR)++; - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // (*musicPlay)() // [4] callexecute *musicPlay -- call__deref_pprc1 @@ -270,7 +270,7 @@ main: { jsr musicPlay // main::@3 // (VICII->BORDER_COLOR)--; - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __b1 } diff --git a/src/test/ref/examples/c64/music/music.sym b/src/test/ref/examples/c64/music/music.sym index 135c2ada1..7d87d57f8 100644 --- a/src/test/ref/examples/c64/music/music.sym +++ b/src/test/ref/examples/c64/music/music.sym @@ -1,10 +1,10 @@ -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") .fill music.size, music.getData(i) }} -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 diff --git a/src/test/ref/examples/c64/music/music_irq.cfg b/src/test/ref/examples/c64/music/music_irq.cfg index 12c1af5ea..00dc15fad 100644 --- a/src/test/ref/examples/c64/music/music_irq.cfg +++ b/src/test/ref/examples/c64/music/music_irq.cfg @@ -1,12 +1,12 @@ __interrupt(rom_sys_c64) void irq_play() irq_play: scope:[irq_play] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) [1] callexecute *musicPlay to:irq_play::@1 irq_play::@1: scope:[irq_play] from irq_play - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:irq_play::@return irq_play::@return: scope:[irq_play] from irq_play::@1 [4] return @@ -18,10 +18,10 @@ main: scope:[main] from [6] callexecute *musicInit to:main::@1 main::@1: scope:[main] from main - [7] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd - [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd + [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [11] *KERNEL_IRQ = &irq_play asm { cli } to:main::@return diff --git a/src/test/ref/examples/c64/music/music_irq.log b/src/test/ref/examples/c64/music/music_irq.log index bec201918..e8dad7597 100644 --- a/src/test/ref/examples/c64/music/music_irq.log +++ b/src/test/ref/examples/c64/music/music_irq.log @@ -12,10 +12,10 @@ main: scope:[main] from __start::@1 callexecute *musicInit to:main::@1 main::@1: scope:[main] from main - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER *KERNEL_IRQ = &irq_play asm { cli } to:main::@return @@ -25,12 +25,12 @@ main::@return: scope:[main] from main::@1 __interrupt(rom_sys_c64) void irq_play() irq_play: scope:[irq_play] from - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) callexecute *musicPlay to:irq_play::@1 irq_play::@1: scope:[irq_play] from irq_play - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:irq_play::@return irq_play::@return: scope:[irq_play] from irq_play::@1 return @@ -51,42 +51,42 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant const byte IRQ_RASTER = 1 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char IRQ_RASTER = 1 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") .fill music.size, music.getData(i) }} -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() __interrupt(rom_sys_c64) void irq_play() void main() -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 Adding number conversion cast (unumber) 3 in -Adding number conversion cast (unumber) $7f in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -Adding number conversion cast (unumber) $fd in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd +Adding number conversion cast (unumber) $7f in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f +Adding number conversion cast (unumber) $fd in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fd +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$fd Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 788 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 788 Simplifying constant integer cast 3 Simplifying constant integer cast $7f Simplifying constant integer cast $fd Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $fd +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $fd Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -95,7 +95,7 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $1000 +Finalized unsigned number type (unsigned int) $1000 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [irq_play] to null:1 @@ -108,12 +108,12 @@ FINAL CONTROL FLOW GRAPH __interrupt(rom_sys_c64) void irq_play() irq_play: scope:[irq_play] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) [1] callexecute *musicPlay to:irq_play::@1 irq_play::@1: scope:[irq_play] from irq_play - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:irq_play::@return irq_play::@return: scope:[irq_play] from irq_play::@1 [4] return @@ -125,10 +125,10 @@ main: scope:[main] from [6] callexecute *musicInit to:main::@1 main::@1: scope:[main] from main - [7] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd - [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd + [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [11] *KERNEL_IRQ = &irq_play asm { cli } to:main::@return @@ -145,12 +145,12 @@ Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] callexecute *musicPlay [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [7] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] *KERNEL_IRQ = &irq_play [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES @@ -218,7 +218,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Raster IRQ Routine playing music irq_play: { // interrupt(isr_rom_sys_c64_entry) -- isr_rom_sys_c64_entry - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [1] callexecute *musicPlay -- call__deref_pprc1 // Play SID @@ -226,11 +226,11 @@ irq_play: { jmp __b1 // irq_play::@1 __b1: - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn // irq_play::@return @@ -249,19 +249,19 @@ main: { jmp __b1 // main::@1 __b1: - // [7] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fd lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 lda #$fd sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE @@ -301,24 +301,24 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant const byte IRQ_RASTER = 1 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char IRQ_RASTER = 1 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") .fill music.size, music.getData(i) }} -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 __interrupt(rom_sys_c64) void irq_play() void main() -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 @@ -375,7 +375,7 @@ Score: 110 irq_play: { // interrupt(isr_rom_sys_c64_entry) -- isr_rom_sys_c64_entry // (VICII->BORDER_COLOR)++; - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // (*musicPlay)() // [1] callexecute *musicPlay -- call__deref_pprc1 @@ -383,12 +383,12 @@ irq_play: { jsr musicPlay // irq_play::@1 // VICII->IRQ_STATUS = IRQ_RASTER - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // (VICII->BORDER_COLOR)--; - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // irq_play::@return // } @@ -407,22 +407,22 @@ main: { jsr musicInit // main::@1 // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [7] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [7] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->CONTROL1 &=$7f - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line to $fd lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->RASTER = $fd - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $fd -- _deref_pbuc1=vbuc2 lda #$fd sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // VICII->IRQ_ENABLE = IRQ_RASTER - // [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE diff --git a/src/test/ref/examples/c64/music/music_irq.sym b/src/test/ref/examples/c64/music/music_irq.sym index 89de1afc7..bb6ae98e1 100644 --- a/src/test/ref/examples/c64/music/music_irq.sym +++ b/src/test/ref/examples/c64/music/music_irq.sym @@ -1,19 +1,19 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant const byte IRQ_RASTER = 1 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant const char IRQ_RASTER = 1 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("toiletrensdyr.sid") .fill music.size, music.getData(i) }} -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 __interrupt(rom_sys_c64) void irq_play() void main() -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 diff --git a/src/test/ref/examples/c64/nmisamples/nmisamples.cfg b/src/test/ref/examples/c64/nmisamples/nmisamples.cfg index dd82d37e0..84d7df92f 100644 --- a/src/test/ref/examples/c64/nmisamples/nmisamples.cfg +++ b/src/test/ref/examples/c64/nmisamples/nmisamples.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -16,10 +16,10 @@ __start::@return: scope:[__start] from __start::@1 __interrupt(hardware_clobber) void nmi2() nmi2: scope:[nmi2] from - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) asm { ldaCIA2_INTERRUPT } [7] nmi2::$1 = *sample >> 4 - [8] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 + [8] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 [9] sample = ++ sample [10] nmi2::$2 = byte1 sample [11] if(nmi2::$2!=byte1 SAMPLE+$6100) goto nmi2::@1 @@ -29,7 +29,7 @@ nmi2::@2: scope:[nmi2] from nmi2 to:nmi2::@1 nmi2::@1: scope:[nmi2] from nmi2 nmi2::@2 [13] *KERNEL_NMI = &nmi - [14] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [14] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:nmi2::@return nmi2::@return: scope:[nmi2] from nmi2::@1 [15] return @@ -37,12 +37,12 @@ nmi2::@return: scope:[nmi2] from nmi2::@1 __interrupt(hardware_clobber) void nmi() nmi: scope:[nmi] from - [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) asm { ldaCIA2_INTERRUPT } [18] nmi::$1 = *sample & $f - [19] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 + [19] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 [20] *KERNEL_NMI = &nmi2 - [21] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [21] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:nmi::@return nmi::@return: scope:[nmi] from nmi [22] return @@ -52,11 +52,11 @@ void main() main: scope:[main] from __start::@1 asm { lda#$ff sta$d406 sta$d40d sta$d414 lda#$49 sta$d404 sta$d40b sta$d412 } asm { sei } - [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [26] *KERNEL_NMI = &nmi - [27] *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 - [28] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 - [29] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 + [27] *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 + [28] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 + [29] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 asm { cli } to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/examples/c64/nmisamples/nmisamples.log b/src/test/ref/examples/c64/nmisamples/nmisamples.log index d725fe332..8e32f2c71 100644 --- a/src/test/ref/examples/c64/nmisamples/nmisamples.log +++ b/src/test/ref/examples/c64/nmisamples/nmisamples.log @@ -1,7 +1,7 @@ Resolved forward reference nmi to __interrupt(hardware_clobber) void nmi() Resolved forward reference nmi2 to __interrupt(hardware_clobber) void nmi2() Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,11 +9,11 @@ void main() main: scope:[main] from __start::@1 asm { lda#$ff sta$d406 sta$d40d sta$d414 lda#$49 sta$d404 sta$d40b sta$d412 } asm { sei } - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR *KERNEL_NMI = &nmi - *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 + *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 asm { cli } to:main::@return main::@return: scope:[main] from main @@ -22,12 +22,12 @@ main::@return: scope:[main] from main __interrupt(hardware_clobber) void nmi() nmi: scope:[nmi] from - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) asm { ldaCIA2_INTERRUPT } nmi::$1 = *sample & $f - *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 + *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 *KERNEL_NMI = &nmi2 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:nmi::@return nmi::@return: scope:[nmi] from nmi return @@ -35,10 +35,10 @@ nmi::@return: scope:[nmi] from nmi __interrupt(hardware_clobber) void nmi2() nmi2: scope:[nmi2] from - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) asm { ldaCIA2_INTERRUPT } nmi2::$1 = *sample >> 4 - *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 + *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 sample = ++ sample nmi2::$2 = byte1 sample nmi2::$3 = nmi2::$2 == byte1 SAMPLE+$6100 @@ -47,7 +47,7 @@ nmi2: scope:[nmi2] from to:nmi2::@2 nmi2::@1: scope:[nmi2] from nmi2 nmi2::@2 *KERNEL_NMI = &nmi - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:nmi2::@return nmi2::@2: scope:[nmi2] from nmi2 sample = SAMPLE @@ -63,7 +63,7 @@ __start::__init1: scope:[__start] from __start sample = SAMPLE to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -72,47 +72,47 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant byte* const CIA2_INTERRUPT = (byte*)$dd0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant void()** const KERNEL_NMI = (void()**)$318 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18 -constant byte* SAMPLE[SAMPLE_SIZE] = kickasm {{ .import binary "moments_sample.bin" }} -constant const word SAMPLE_SIZE = $6100 -constant struct MOS6581_SID* const SID = (struct MOS6581_SID*)$d400 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant char * const CIA2_INTERRUPT = (char *)$dd0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant void (** const KERNEL_NMI)() = (void (**)())$318 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18 +__constant char SAMPLE[SAMPLE_SIZE] = kickasm {{ .import binary "moments_sample.bin" }} +__constant const unsigned int SAMPLE_SIZE = $6100 +__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *)$d400 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() void main() __interrupt(hardware_clobber) void nmi() -number~ nmi::$1 +number nmi::$1 __interrupt(hardware_clobber) void nmi2() -byte~ nmi2::$1 -byte~ nmi2::$2 -bool~ nmi2::$3 -bool~ nmi2::$4 -byte* volatile sample loadstore +char nmi2::$1 +char nmi2::$2 +bool nmi2::$3 +bool nmi2::$4 +__loadstore char * volatile sample -Adding number conversion cast (unumber) $88 in *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 -Adding number conversion cast (unumber) $81 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 -Adding number conversion cast (unumber) 1 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 +Adding number conversion cast (unumber) $88 in *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 +Adding number conversion cast (unumber) $81 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 +Adding number conversion cast (unumber) 1 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 Adding number conversion cast (unumber) $f in nmi::$1 = *sample & $f Adding number conversion cast (unumber) nmi::$1 in nmi::$1 = *sample & (unumber)$f Adding number conversion cast (unumber) 4 in nmi2::$1 = *sample >> 4 Adding number conversion cast (unumber) $6100 in nmi2::$3 = nmi2::$2 == byte1 SAMPLE+$6100 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = (unumber)$88 -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = (unumber)$81 -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = (unumber)1 +Inlining cast *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = (unumber)$88 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = (unumber)$81 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6581_SID*) 54272 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (byte*) 56589 -Simplifying constant pointer cast (void()**) 792 +Simplifying constant pointer cast (struct MOS6581_SID *) 54272 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (char *) 56589 +Simplifying constant pointer cast (void (**)()) 792 Simplifying constant integer cast $88 Simplifying constant integer cast $81 Simplifying constant integer cast 1 @@ -120,14 +120,14 @@ Simplifying constant integer cast $f Simplifying constant integer cast 4 Simplifying constant integer cast $6100 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $88 -Finalized unsigned number type (byte) $81 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (word) $6100 +Finalized unsigned number type (char) $88 +Finalized unsigned number type (char) $81 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (unsigned int) $6100 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in nmi::$1 = *sample & $f +Inferred type updated to char in nmi::$1 = *sample & $f Inversing boolean not [23] nmi2::$4 = nmi2::$2 != byte1 SAMPLE+$6100 from [22] nmi2::$3 = nmi2::$2 == byte1 SAMPLE+$6100 Successful SSA optimization Pass2UnaryNotSimplification Simple Condition nmi2::$4 [23] if(nmi2::$2!=byte1 SAMPLE+$6100) goto nmi2::@1 @@ -155,7 +155,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -163,10 +163,10 @@ __start::@return: scope:[__start] from __start::@1 __interrupt(hardware_clobber) void nmi2() nmi2: scope:[nmi2] from - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) asm { ldaCIA2_INTERRUPT } [7] nmi2::$1 = *sample >> 4 - [8] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 + [8] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 [9] sample = ++ sample [10] nmi2::$2 = byte1 sample [11] if(nmi2::$2!=byte1 SAMPLE+$6100) goto nmi2::@1 @@ -176,7 +176,7 @@ nmi2::@2: scope:[nmi2] from nmi2 to:nmi2::@1 nmi2::@1: scope:[nmi2] from nmi2 nmi2::@2 [13] *KERNEL_NMI = &nmi - [14] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [14] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:nmi2::@return nmi2::@return: scope:[nmi2] from nmi2::@1 [15] return @@ -184,12 +184,12 @@ nmi2::@return: scope:[nmi2] from nmi2::@1 __interrupt(hardware_clobber) void nmi() nmi: scope:[nmi] from - [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) asm { ldaCIA2_INTERRUPT } [18] nmi::$1 = *sample & $f - [19] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 + [19] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 [20] *KERNEL_NMI = &nmi2 - [21] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [21] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:nmi::@return nmi::@return: scope:[nmi] from nmi [22] return @@ -199,11 +199,11 @@ void main() main: scope:[main] from __start::@1 asm { lda#$ff sta$d406 sta$d40d sta$d414 lda#$49 sta$d404 sta$d40b sta$d412 } asm { sei } - [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [26] *KERNEL_NMI = &nmi - [27] *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 - [28] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 - [29] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 + [27] *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 + [28] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 + [29] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 asm { cli } to:main::@return main::@return: scope:[main] from main @@ -215,11 +215,11 @@ VARIABLE REGISTER WEIGHTS void __start() void main() __interrupt(hardware_clobber) void nmi() -byte~ nmi::$1 4.0 +char nmi::$1 // 4.0 __interrupt(hardware_clobber) void nmi2() -byte~ nmi2::$1 4.0 -byte~ nmi2::$2 4.0 -byte* volatile sample loadstore 1.9999999999999996 +char nmi2::$1 // 4.0 +char nmi2::$2 // 4.0 +__loadstore char * volatile sample // 1.9999999999999996 Initial phi equivalence classes Added variable sample to live range equivalence class [ sample ] @@ -247,11 +247,11 @@ Statement [18] nmi::$1 = *sample & $f [ nmi::$1 ] ( [ nmi::$1 ] { } ) always c Statement [20] *KERNEL_NMI = &nmi2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [22] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement asm { lda#$ff sta$d406 sta$d40d sta$d414 lda#$49 sta$d404 sta$d40b sta$d412 } always clobbers reg byte a -Statement [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [26] *KERNEL_NMI = &nmi [ ] ( main:3 [ ] { } ) always clobbers reg byte a -Statement [27] *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 [ ] ( main:3 [ ] { } ) always clobbers reg byte a -Statement [28] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 [ ] ( main:3 [ ] { } ) always clobbers reg byte a -Statement [29] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [27] *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [28] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [29] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ sample ] : zp[2]:2 , Potential registers zp[1]:4 [ nmi2::$1 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:5 [ nmi2::$2 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -328,7 +328,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -341,7 +341,7 @@ nmi2: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 sty regy+1 - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // asm { ldaCIA2_INTERRUPT } lda CIA2_INTERRUPT @@ -352,7 +352,7 @@ nmi2: { lsr lsr lsr - // [8] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 -- _deref_pbuc1=vbuaa + // [8] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 -- _deref_pbuc1=vbuaa sta SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE // [9] sample = ++ sample -- pbuz1=_inc_pbuz1 inc.z sample @@ -380,7 +380,7 @@ nmi2: { sta KERNEL_NMI lda #>nmi sta KERNEL_NMI+1 - // [14] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [14] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn // nmi2::@return @@ -398,7 +398,7 @@ nmi: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 sty regy+1 - // [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // asm { ldaCIA2_INTERRUPT } lda CIA2_INTERRUPT @@ -406,14 +406,14 @@ nmi: { lda #$f ldy #0 and (sample),y - // [19] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 -- _deref_pbuc1=vbuaa + // [19] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 -- _deref_pbuc1=vbuaa sta SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE // [20] *KERNEL_NMI = &nmi2 -- _deref_qprc1=pprc2 lda #nmi2 sta KERNEL_NMI+1 - // [21] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [21] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn // nmi::@return @@ -441,7 +441,7 @@ main: { sta $d412 // asm { sei } sei - // [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [26] *KERNEL_NMI = &nmi -- _deref_qprc1=pprc2 @@ -449,16 +449,16 @@ main: { sta KERNEL_NMI lda #>nmi sta KERNEL_NMI+1 - // [27] *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 -- _deref_pwuc1=vbuc2 + // [27] *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 -- _deref_pwuc1=vbuc2 lda #<$88 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A lda #>$88 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A+1 - // [28] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 -- _deref_pbuc1=vbuc2 + // [28] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 -- _deref_pbuc1=vbuc2 // speed lda #$81 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [29] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 -- _deref_pbuc1=vbuc2 + // [29] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // asm { cli } @@ -496,27 +496,27 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant byte* const CIA2_INTERRUPT = (byte*) 56589 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant void()** const KERNEL_NMI = (void()**) 792 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18 -constant byte* SAMPLE[SAMPLE_SIZE] = kickasm {{ .import binary "moments_sample.bin" }} -constant const word SAMPLE_SIZE = $6100 -constant struct MOS6581_SID* const SID = (struct MOS6581_SID*) 54272 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant char * const CIA2_INTERRUPT = (char *) 56589 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant void (** const KERNEL_NMI)() = (void (**)()) 792 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18 +__constant char SAMPLE[SAMPLE_SIZE] = kickasm {{ .import binary "moments_sample.bin" }} +__constant const unsigned int SAMPLE_SIZE = $6100 +__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *) 54272 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void __start() void main() __interrupt(hardware_clobber) void nmi() -byte~ nmi::$1 reg byte a 4.0 +char nmi::$1 // reg byte a 4.0 __interrupt(hardware_clobber) void nmi2() -byte~ nmi2::$1 reg byte a 4.0 -byte~ nmi2::$2 reg byte a 4.0 -byte* volatile sample loadstore zp[2]:2 1.9999999999999996 +char nmi2::$1 // reg byte a 4.0 +char nmi2::$2 // reg byte a 4.0 +__loadstore char * volatile sample // zp[2]:2 1.9999999999999996 zp[2]:2 [ sample ] reg byte a [ nmi2::$1 ] @@ -572,7 +572,7 @@ __start: { sta.z sample+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -584,7 +584,7 @@ nmi2: { sta rega+1 sty regy+1 // (VICII->BORDER_COLOR)++; - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // asm // asm { ldaCIA2_INTERRUPT } @@ -598,7 +598,7 @@ nmi2: { lsr lsr // SID->VOLUME_FILTER_MODE = *sample >> 4 - // [8] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 -- _deref_pbuc1=vbuaa + // [8] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi2::$1 -- _deref_pbuc1=vbuaa sta SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE // sample++; // [9] sample = ++ sample -- pbuz1=_inc_pbuz1 @@ -629,7 +629,7 @@ nmi2: { lda #>nmi sta KERNEL_NMI+1 // (VICII->BORDER_COLOR)--; - // [14] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [14] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // nmi2::@return // } @@ -647,7 +647,7 @@ nmi: { sta rega+1 sty regy+1 // (VICII->BORDER_COLOR)++; - // [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // asm // asm { ldaCIA2_INTERRUPT } @@ -658,7 +658,7 @@ nmi: { ldy #0 and (sample),y // SID->VOLUME_FILTER_MODE = *sample & $0f - // [19] *((byte*)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 -- _deref_pbuc1=vbuaa + // [19] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE) = nmi::$1 -- _deref_pbuc1=vbuaa sta SID+OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE // *KERNEL_NMI = &nmi2 // [20] *KERNEL_NMI = &nmi2 -- _deref_qprc1=pprc2 @@ -667,7 +667,7 @@ nmi: { lda #>nmi2 sta KERNEL_NMI+1 // (VICII->BORDER_COLOR)--; - // [21] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [21] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // nmi::@return // } @@ -696,7 +696,7 @@ main: { // asm { sei } sei // CIA2->INTERRUPT = CIA_INTERRUPT_CLEAR - // [25] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [25] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *KERNEL_NMI = &nmi @@ -706,18 +706,18 @@ main: { lda #>nmi sta KERNEL_NMI+1 // CIA2->TIMER_A = 0x88 - // [27] *((word*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 -- _deref_pwuc1=vbuc2 + // [27] *((unsigned int *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A) = $88 -- _deref_pwuc1=vbuc2 lda #<$88 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A lda #>$88 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A+1 // CIA2->INTERRUPT = 0x81 - // [28] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 -- _deref_pbuc1=vbuc2 + // [28] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = $81 -- _deref_pbuc1=vbuc2 // speed lda #$81 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // CIA2->TIMER_A_CONTROL = 0x01 - // [29] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 -- _deref_pbuc1=vbuc2 + // [29] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // asm diff --git a/src/test/ref/examples/c64/nmisamples/nmisamples.sym b/src/test/ref/examples/c64/nmisamples/nmisamples.sym index 5fb42800f..a1bcbcb76 100644 --- a/src/test/ref/examples/c64/nmisamples/nmisamples.sym +++ b/src/test/ref/examples/c64/nmisamples/nmisamples.sym @@ -1,24 +1,24 @@ -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant byte* const CIA2_INTERRUPT = (byte*) 56589 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant void()** const KERNEL_NMI = (void()**) 792 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18 -constant byte* SAMPLE[SAMPLE_SIZE] = kickasm {{ .import binary "moments_sample.bin" }} -constant const word SAMPLE_SIZE = $6100 -constant struct MOS6581_SID* const SID = (struct MOS6581_SID*) 54272 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant char * const CIA2_INTERRUPT = (char *) 56589 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant void (** const KERNEL_NMI)() = (void (**)()) 792 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A = 4 +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6581_SID_VOLUME_FILTER_MODE = $18 +__constant char SAMPLE[SAMPLE_SIZE] = kickasm {{ .import binary "moments_sample.bin" }} +__constant const unsigned int SAMPLE_SIZE = $6100 +__constant struct MOS6581_SID * const SID = (struct MOS6581_SID *) 54272 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void __start() void main() __interrupt(hardware_clobber) void nmi() -byte~ nmi::$1 reg byte a 4.0 +char nmi::$1 // reg byte a 4.0 __interrupt(hardware_clobber) void nmi2() -byte~ nmi2::$1 reg byte a 4.0 -byte~ nmi2::$2 reg byte a 4.0 -byte* volatile sample loadstore zp[2]:2 1.9999999999999996 +char nmi2::$1 // reg byte a 4.0 +char nmi2::$2 // reg byte a 4.0 +__loadstore char * volatile sample // zp[2]:2 1.9999999999999996 zp[2]:2 [ sample ] reg byte a [ nmi2::$1 ] diff --git a/src/test/ref/examples/c64/rasterbars/raster-bars.cfg b/src/test/ref/examples/c64/rasterbars/raster-bars.cfg index 280f260e0..296d7ea80 100644 --- a/src/test/ref/examples/c64/rasterbars/raster-bars.cfg +++ b/src/test/ref/examples/c64/rasterbars/raster-bars.cfg @@ -4,14 +4,14 @@ main: scope:[main] from asm { sei } to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 - [1] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 + [1] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 + [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [3] phi() - [4] call raster + [4] call raster to:main::@1 void raster() @@ -22,8 +22,8 @@ raster: scope:[raster] from main::@3 raster::@1: scope:[raster] from raster raster::@1 [7] raster::i#2 = phi( raster/0, raster::@1/raster::i#1 ) [7] raster::col#2 = phi( raster/raster::col#0, raster::@1/raster::col#1 ) - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 [10] raster::i#1 = ++ raster::i#2 [11] raster::col#1 = rastercols[raster::i#1] asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } diff --git a/src/test/ref/examples/c64/rasterbars/raster-bars.log b/src/test/ref/examples/c64/rasterbars/raster-bars.log index a04e011f2..c46d54f43 100644 --- a/src/test/ref/examples/c64/rasterbars/raster-bars.log +++ b/src/test/ref/examples/c64/rasterbars/raster-bars.log @@ -7,15 +7,15 @@ main: scope:[main] from __start asm { sei } to:main::@1 main::@1: scope:[main] from main main::@1 main::@4 - main::$0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $a + main::$0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $a if(main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $b + main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $b if(main::$1) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - call raster + call raster to:main::@4 main::@4: scope:[main] from main::@3 if(true) goto main::@1 @@ -33,8 +33,8 @@ raster: scope:[raster] from main::@3 raster::@1: scope:[raster] from raster raster::@1 raster::i#2 = phi( raster/raster::i#0, raster::@1/raster::i#1 ) raster::col#2 = phi( raster/raster::col#0, raster::@1/raster::col#1 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 raster::i#1 = ++ raster::i#2 raster::col#1 = rastercols[raster::i#1] asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -47,7 +47,7 @@ raster::@return: scope:[raster] from raster::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,41 +56,41 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() void main() -bool~ main::$0 -bool~ main::$1 +bool main::$0 +bool main::$1 void raster() -bool~ raster::$0 -byte raster::col -byte raster::col#0 -byte raster::col#1 -byte raster::col#2 -byte raster::i -byte raster::i#0 -byte raster::i#1 -byte raster::i#2 -constant byte* rastercols[] = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } +bool raster::$0 +char raster::col +char raster::col#0 +char raster::col#1 +char raster::col#2 +char raster::i +char raster::i#0 +char raster::i#1 +char raster::i#2 +__constant char rastercols[] = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } -Adding number conversion cast (unumber) $a in main::$0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $a -Adding number conversion cast (unumber) $b in main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $b +Adding number conversion cast (unumber) $a in main::$0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $a +Adding number conversion cast (unumber) $b in main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $b Adding number conversion cast (unumber) $ff in raster::$0 = raster::col#1 != $ff Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 Simplifying constant integer cast $a Simplifying constant integer cast $b Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $ff +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $ff Successful SSA optimization PassNFinalizeNumberTypeConversions -Simple Condition main::$0 [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 -Simple Condition main::$1 [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 +Simple Condition main::$0 [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 +Simple Condition main::$1 [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 Simple Condition raster::$0 [18] if(raster::col#1!=$ff) goto raster::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant raster::i#0 = 0 @@ -131,14 +131,14 @@ main: scope:[main] from asm { sei } to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 - [1] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 + [1] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 + [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [3] phi() - [4] call raster + [4] call raster to:main::@1 void raster() @@ -149,8 +149,8 @@ raster: scope:[raster] from main::@3 raster::@1: scope:[raster] from raster raster::@1 [7] raster::i#2 = phi( raster/0, raster::@1/raster::i#1 ) [7] raster::col#2 = phi( raster/raster::col#0, raster::@1/raster::col#1 ) - [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 + [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 [10] raster::i#1 = ++ raster::i#2 [11] raster::col#1 = rastercols[raster::i#1] asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop } @@ -164,13 +164,13 @@ raster::@return: scope:[raster] from raster::@1 VARIABLE REGISTER WEIGHTS void main() void raster() -byte raster::col -byte raster::col#0 202.0 -byte raster::col#1 10001.0 -byte raster::col#2 15052.0 -byte raster::i -byte raster::i#1 7500.75 -byte raster::i#2 6667.333333333333 +char raster::col +char raster::col#0 // 202.0 +char raster::col#1 // 10001.0 +char raster::col#2 // 15052.0 +char raster::i +char raster::i#1 // 7500.75 +char raster::i#2 // 6667.333333333333 Initial phi equivalence classes [ raster::col#2 raster::col#0 raster::col#1 ] @@ -181,8 +181,8 @@ Complete equivalence classes Allocated zp[1]:2 [ raster::col#2 raster::col#0 raster::col#1 ] Allocated zp[1]:3 [ raster::i#2 raster::i#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ raster::col#2 raster::col#0 raster::col#1 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ raster::i#2 raster::i#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -232,14 +232,14 @@ main: { jmp __b1 // main::@1 __b1: - // [1] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [1] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$a cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1 jmp __b2 // main::@2 __b2: - // [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$b cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 @@ -248,7 +248,7 @@ main: { jmp __b3 // main::@3 __b3: - // [4] call raster + // [4] call raster jsr raster jmp __b1 } @@ -289,9 +289,9 @@ raster: { jmp __b1 // raster::@1 __b1: - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [10] raster::i#1 = ++ raster::i#2 -- vbuxx=_inc_vbuxx inx @@ -352,20 +352,20 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() void raster() -byte raster::col -byte raster::col#0 reg byte a 202.0 -byte raster::col#1 reg byte a 10001.0 -byte raster::col#2 reg byte a 15052.0 -byte raster::i -byte raster::i#1 reg byte x 7500.75 -byte raster::i#2 reg byte x 6667.333333333333 -constant byte* rastercols[] = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } +char raster::col +char raster::col#0 // reg byte a 202.0 +char raster::col#1 // reg byte a 10001.0 +char raster::col#2 // reg byte a 15052.0 +char raster::i +char raster::i#1 // reg byte x 7500.75 +char raster::i#2 // reg byte x 6667.333333333333 +__constant char rastercols[] = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } reg byte a [ raster::col#2 raster::col#0 raster::col#1 ] reg byte x [ raster::i#2 raster::i#1 ] @@ -405,21 +405,21 @@ main: { // main::@1 __b1: // while (VICII->RASTER!=$a) - // [1] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [1] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$a) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$a cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1 // main::@2 __b2: // while (VICII->RASTER!=$b) - // [2] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [2] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$b) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$b cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 // [3] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // raster() - // [4] call raster + // [4] call raster jsr raster jmp __b1 } @@ -459,10 +459,10 @@ raster: { // raster::@1 __b1: // VICII->BG_COLOR = col - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // VICII->BORDER_COLOR = col - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = raster::col#2 -- _deref_pbuc1=vbuaa sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // col = rastercols[++i]; // [10] raster::i#1 = ++ raster::i#2 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/examples/c64/rasterbars/raster-bars.sym b/src/test/ref/examples/c64/rasterbars/raster-bars.sym index 9d0b8ecbd..1aa8454a4 100644 --- a/src/test/ref/examples/c64/rasterbars/raster-bars.sym +++ b/src/test/ref/examples/c64/rasterbars/raster-bars.sym @@ -1,17 +1,17 @@ -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() void raster() -byte raster::col -byte raster::col#0 reg byte a 202.0 -byte raster::col#1 reg byte a 10001.0 -byte raster::col#2 reg byte a 15052.0 -byte raster::i -byte raster::i#1 reg byte x 7500.75 -byte raster::i#2 reg byte x 6667.333333333333 -constant byte* rastercols[] = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } +char raster::col +char raster::col#0 // reg byte a 202.0 +char raster::col#1 // reg byte a 10001.0 +char raster::col#2 // reg byte a 15052.0 +char raster::i +char raster::i#1 // reg byte x 7500.75 +char raster::i#2 // reg byte x 6667.333333333333 +__constant char rastercols[] = { $b, 0, $b, $b, $c, $b, $c, $c, $f, $c, $f, $f, 1, $f, 1, 1, $f, 1, $f, $f, $c, $f, $c, $c, $b, $c, $b, $b, 0, $b, 0, $ff } reg byte a [ raster::col#2 raster::col#0 raster::col#1 ] reg byte x [ raster::i#2 raster::i#1 ] diff --git a/src/test/ref/examples/c64/scroll/scroll.asm b/src/test/ref/examples/c64/scroll/scroll.asm index 7214300c3..a1faf91fa 100644 --- a/src/test/ref/examples/c64/scroll/scroll.asm +++ b/src/test/ref/examples/c64/scroll/scroll.asm @@ -89,6 +89,7 @@ main: { inx jmp __b5 } +// void fillscreen(char *screen, char fill) fillscreen: { .const fill = $20 .label cursor = 4 diff --git a/src/test/ref/examples/c64/scroll/scroll.cfg b/src/test/ref/examples/c64/scroll/scroll.cfg index 49c4ce71f..7ea9c3540 100644 --- a/src/test/ref/examples/c64/scroll/scroll.cfg +++ b/src/test/ref/examples/c64/scroll/scroll.cfg @@ -2,18 +2,18 @@ void main() main: scope:[main] from [0] phi() - [1] call fillscreen + [1] call fillscreen to:main::@1 main::@1: scope:[main] from main main::@1 main::@4 [2] main::nxt#10 = phi( main::@1/main::nxt#10, main/TEXT, main::@4/main::nxt#11 ) [2] main::scroll#7 = phi( main::@1/main::scroll#7, main/7, main::@4/main::scroll#4 ) - [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 + [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 + [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) [6] main::scroll#1 = -- main::scroll#7 [7] if(main::scroll#1!=$ff) goto main::@4 to:main::@5 @@ -37,15 +37,15 @@ main::@9: scope:[main] from main::@7 main::@8 main::@4: scope:[main] from main::@3 main::@9 [16] main::nxt#11 = phi( main::@9/main::nxt#1, main::@3/main::nxt#10 ) [16] main::scroll#4 = phi( main::@9/7, main::@3/main::scroll#1 ) - [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 - [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 + [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) to:main::@1 main::@6: scope:[main] from main::@5 [19] main::line[main::i#2] = (main::line+1)[main::i#2] [20] main::i#1 = ++ main::i#2 to:main::@5 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main [21] phi() to:fillscreen::@1 diff --git a/src/test/ref/examples/c64/scroll/scroll.log b/src/test/ref/examples/c64/scroll/scroll.log index 3936d4ae7..5f23046db 100644 --- a/src/test/ref/examples/c64/scroll/scroll.log +++ b/src/test/ref/examples/c64/scroll/scroll.log @@ -6,7 +6,7 @@ void main() main: scope:[main] from __start fillscreen::screen#0 = SCREEN fillscreen::fill#0 = $20 - call fillscreen + call fillscreen to:main::@11 main::@11: scope:[main] from main main::scroll#0 = 7 @@ -15,19 +15,19 @@ main::@11: scope:[main] from main main::@1: scope:[main] from main::@1 main::@11 main::@5 main::nxt#10 = phi( main::@1/main::nxt#10, main::@11/main::nxt#0, main::@5/main::nxt#11 ) main::scroll#7 = phi( main::@1/main::scroll#7, main::@11/main::scroll#0, main::@5/main::scroll#4 ) - main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe + main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe if(main::$1) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::nxt#9 = phi( main::@1/main::nxt#10, main::@2/main::nxt#9 ) main::scroll#5 = phi( main::@1/main::scroll#7, main::@2/main::scroll#5 ) - main::$2 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff + main::$2 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff if(main::$2) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 main::nxt#8 = phi( main::@2/main::nxt#9 ) main::scroll#3 = phi( main::@2/main::scroll#5 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) main::scroll#1 = -- main::scroll#3 main::$4 = main::scroll#1 == $ff main::$5 = ! main::$4 @@ -36,8 +36,8 @@ main::@3: scope:[main] from main::@2 main::@5: scope:[main] from main::@10 main::@3 main::nxt#11 = phi( main::@10/main::nxt#1, main::@3/main::nxt#8 ) main::scroll#4 = phi( main::@10/main::scroll#6, main::@3/main::scroll#1 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) if(true) goto main::@1 to:main::@return main::@4: scope:[main] from main::@3 @@ -84,7 +84,7 @@ main::@return: scope:[main] from main::@5 return to:@return -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main fillscreen::fill#3 = phi( main/fillscreen::fill#0 ) fillscreen::screen#1 = phi( main/fillscreen::screen#0 ) @@ -111,7 +111,7 @@ fillscreen::@return: scope:[fillscreen] from fillscreen::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -120,81 +120,81 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const SCREEN = (byte*)$400 -constant const byte* TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const SCREEN = (char *)$400 +__constant const char TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte*~ fillscreen::$0 -bool~ fillscreen::$1 -byte* fillscreen::cursor -byte* fillscreen::cursor#0 -byte* fillscreen::cursor#1 -byte* fillscreen::cursor#2 -byte* fillscreen::cursor#3 -byte fillscreen::fill -byte fillscreen::fill#0 -byte fillscreen::fill#1 -byte fillscreen::fill#2 -byte fillscreen::fill#3 -byte* fillscreen::screen -byte* fillscreen::screen#0 -byte* fillscreen::screen#1 -byte* fillscreen::screen#2 -byte* fillscreen::screen#3 +void fillscreen(char *screen , char fill) +char *fillscreen::$0 +bool fillscreen::$1 +char *fillscreen::cursor +char *fillscreen::cursor#0 +char *fillscreen::cursor#1 +char *fillscreen::cursor#2 +char *fillscreen::cursor#3 +char fillscreen::fill +char fillscreen::fill#0 +char fillscreen::fill#1 +char fillscreen::fill#2 +char fillscreen::fill#3 +char *fillscreen::screen +char *fillscreen::screen#0 +char *fillscreen::screen#1 +char *fillscreen::screen#2 +char *fillscreen::screen#3 void main() -bool~ main::$1 -bool~ main::$2 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -number~ main::$7 -bool~ main::$8 -bool~ main::$9 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* const main::line = SCREEN+$28 -byte* main::nxt -byte* main::nxt#0 -byte* main::nxt#1 -byte* main::nxt#10 -byte* main::nxt#11 -byte* main::nxt#2 -byte* main::nxt#3 -byte* main::nxt#4 -byte* main::nxt#5 -byte* main::nxt#6 -byte* main::nxt#7 -byte* main::nxt#8 -byte* main::nxt#9 -byte main::scroll -byte main::scroll#0 -byte main::scroll#1 -byte main::scroll#10 -byte main::scroll#11 -byte main::scroll#2 -byte main::scroll#3 -byte main::scroll#4 -byte main::scroll#5 -byte main::scroll#6 -byte main::scroll#7 -byte main::scroll#8 -byte main::scroll#9 +bool main::$1 +bool main::$2 +bool main::$4 +bool main::$5 +bool main::$6 +number main::$7 +bool main::$8 +bool main::$9 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char * const main::line = SCREEN+$28 +char *main::nxt +char *main::nxt#0 +char *main::nxt#1 +char *main::nxt#10 +char *main::nxt#11 +char *main::nxt#2 +char *main::nxt#3 +char *main::nxt#4 +char *main::nxt#5 +char *main::nxt#6 +char *main::nxt#7 +char *main::nxt#8 +char *main::nxt#9 +char main::scroll +char main::scroll#0 +char main::scroll#1 +char main::scroll#10 +char main::scroll#11 +char main::scroll#2 +char main::scroll#3 +char main::scroll#4 +char main::scroll#5 +char main::scroll#6 +char main::scroll#7 +char main::scroll#8 +char main::scroll#9 Adding number conversion cast (unumber) $28 in Adding number conversion cast (unumber) $20 in fillscreen::fill#0 = $20 -Adding number conversion cast (unumber) $fe in main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe -Adding number conversion cast (unumber) $ff in main::$2 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff +Adding number conversion cast (unumber) $fe in main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe +Adding number conversion cast (unumber) $ff in main::$2 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff Adding number conversion cast (unumber) $ff in main::$4 = main::scroll#1 == $ff Adding number conversion cast (unumber) 7 in main::scroll#2 = 7 Adding number conversion cast (unumber) $27 in main::$6 = main::i#2 != $27 @@ -207,8 +207,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fillscreen::fill#0 = (unumber)$20 Inlining cast main::scroll#2 = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $20 Simplifying constant integer cast $fe @@ -221,19 +221,19 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $27 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $fe -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $fe +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$7 = main::i#3 + 1 +Inferred type updated to char in main::$7 = main::i#3 + 1 Inversing boolean not [15] main::$5 = main::scroll#1 != $ff from [14] main::$4 = main::scroll#1 == $ff Inversing boolean not [34] main::$9 = main::c#0 != 0 from [33] main::$8 = main::c#0 == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -258,8 +258,8 @@ Identical Phi Values fillscreen::fill#3 fillscreen::fill#0 Identical Phi Values fillscreen::screen#2 fillscreen::cursor#0 Identical Phi Values fillscreen::fill#1 fillscreen::fill#3 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$1 [7] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -Simple Condition main::$2 [10] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 +Simple Condition main::$1 [7] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 +Simple Condition main::$2 [10] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 Simple Condition main::$5 [14] if(main::scroll#1!=$ff) goto main::@5 Simple Condition main::$6 [23] if(main::i#2!=$27) goto main::@7 Simple Condition main::$9 [29] if(main::c#0!=0) goto main::@10 @@ -347,18 +347,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call fillscreen + [1] call fillscreen to:main::@1 main::@1: scope:[main] from main main::@1 main::@4 [2] main::nxt#10 = phi( main::@1/main::nxt#10, main/TEXT, main::@4/main::nxt#11 ) [2] main::scroll#7 = phi( main::@1/main::scroll#7, main/7, main::@4/main::scroll#4 ) - [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 + [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 + [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) [6] main::scroll#1 = -- main::scroll#7 [7] if(main::scroll#1!=$ff) goto main::@4 to:main::@5 @@ -382,15 +382,15 @@ main::@9: scope:[main] from main::@7 main::@8 main::@4: scope:[main] from main::@3 main::@9 [16] main::nxt#11 = phi( main::@9/main::nxt#1, main::@3/main::nxt#10 ) [16] main::scroll#4 = phi( main::@9/7, main::@3/main::scroll#1 ) - [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 - [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 + [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) to:main::@1 main::@6: scope:[main] from main::@5 [19] main::line[main::i#2] = (main::line+1)[main::i#2] [20] main::i#1 = ++ main::i#2 to:main::@5 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main [21] phi() to:fillscreen::@1 @@ -408,29 +408,29 @@ fillscreen::@2: scope:[fillscreen] from fillscreen::@1 VARIABLE REGISTER WEIGHTS -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte* fillscreen::cursor -byte* fillscreen::cursor#1 202.0 -byte* fillscreen::cursor#2 134.66666666666666 -byte fillscreen::fill -byte* fillscreen::screen +void fillscreen(char *screen , char fill) +char *fillscreen::cursor +char *fillscreen::cursor#1 // 202.0 +char *fillscreen::cursor#2 // 134.66666666666666 +char fillscreen::fill +char *fillscreen::screen void main() -byte main::c -byte main::c#0 16.5 -byte main::c#1 22.0 -byte main::c#2 33.0 -byte main::i -byte main::i#1 202.0 -byte main::i#2 168.33333333333331 -byte* main::nxt -byte* main::nxt#1 22.0 -byte* main::nxt#10 20.500000000000004 -byte* main::nxt#11 11.0 -byte* main::nxt#4 11.0 -byte main::scroll -byte main::scroll#1 16.5 -byte main::scroll#4 11.0 -byte main::scroll#7 56.0 +char main::c +char main::c#0 // 16.5 +char main::c#1 // 22.0 +char main::c#2 // 33.0 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 168.33333333333331 +char *main::nxt +char *main::nxt#1 // 22.0 +char *main::nxt#10 // 20.500000000000004 +char *main::nxt#11 // 11.0 +char *main::nxt#4 // 11.0 +char main::scroll +char main::scroll#1 // 16.5 +char main::scroll#4 // 11.0 +char main::scroll#7 // 56.0 Initial phi equivalence classes [ main::scroll#7 main::scroll#4 main::scroll#1 ] @@ -450,16 +450,16 @@ Allocated zp[1]:4 [ main::c#2 main::c#0 main::c#1 ] Allocated zp[2]:5 [ main::nxt#4 main::nxt#10 main::nxt#11 main::nxt#1 ] Allocated zp[2]:7 [ fillscreen::cursor#2 fillscreen::cursor#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 [ main::scroll#7 main::nxt#10 ] ( [ main::scroll#7 main::nxt#10 ] { } ) always clobbers reg byte a +Statement [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 [ main::scroll#7 main::nxt#10 ] ( [ main::scroll#7 main::nxt#10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::scroll#7 main::scroll#4 main::scroll#1 ] -Statement [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 [ main::scroll#7 main::nxt#10 ] ( [ main::scroll#7 main::nxt#10 ] { } ) always clobbers reg byte a +Statement [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 [ main::scroll#7 main::nxt#10 ] ( [ main::scroll#7 main::nxt#10 ] { } ) always clobbers reg byte a Statement [10] main::c#0 = *main::nxt#10 [ main::nxt#10 main::c#0 ] ( [ main::nxt#10 main::c#0 ] { } ) always clobbers reg byte a reg byte y Statement [19] main::line[main::i#2] = (main::line+1)[main::i#2] [ main::nxt#10 main::i#2 ] ( [ main::nxt#10 main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i#2 main::i#1 ] Statement [23] if(fillscreen::cursor#2fillscreen] fillscreen_from_main: jsr fillscreen @@ -539,21 +539,21 @@ main: { jmp __b1 // main::@1 __b1: - // [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$fe cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1_from___b1 jmp __b2 // main::@2 __b2: - // [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 jmp __b3 // main::@3 __b3: - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // [6] main::scroll#1 = -- main::scroll#7 -- vbuxx=_dec_vbuxx dex @@ -623,9 +623,9 @@ main: { jmp __b4 // main::@4 __b4: - // [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 -- _deref_pbuc1=vbuxx + // [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 -- _deref_pbuc1=vbuxx stx VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 - // [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR jmp __b1_from___b4 // main::@6 @@ -641,6 +641,7 @@ main: { jmp __b5 } // fillscreen +// void fillscreen(char *screen, char fill) fillscreen: { .const fill = $20 .label cursor = 4 @@ -729,37 +730,37 @@ Removing instruction jmp __b4 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte* fillscreen::cursor -byte* fillscreen::cursor#1 cursor zp[2]:4 202.0 -byte* fillscreen::cursor#2 cursor zp[2]:4 134.66666666666666 -byte fillscreen::fill -constant byte fillscreen::fill#0 fill = $20 -byte* fillscreen::screen +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const SCREEN = (char *) 1024 +__constant const char TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +void fillscreen(char *screen , char fill) +char *fillscreen::cursor +char *fillscreen::cursor#1 // cursor zp[2]:4 202.0 +char *fillscreen::cursor#2 // cursor zp[2]:4 134.66666666666666 +char fillscreen::fill +__constant char fillscreen::fill#0 = $20 // fill +char *fillscreen::screen void main() -byte main::c -byte main::c#0 reg byte x 16.5 -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 33.0 -byte main::i -byte main::i#1 reg byte x 202.0 -byte main::i#2 reg byte x 168.33333333333331 -constant byte* const main::line = SCREEN+$28 -byte* main::nxt -byte* main::nxt#1 nxt zp[2]:2 22.0 -byte* main::nxt#10 nxt zp[2]:2 20.500000000000004 -byte* main::nxt#11 nxt zp[2]:2 11.0 -byte* main::nxt#4 nxt zp[2]:2 11.0 -byte main::scroll -byte main::scroll#1 reg byte x 16.5 -byte main::scroll#4 reg byte x 11.0 -byte main::scroll#7 reg byte x 56.0 +char main::c +char main::c#0 // reg byte x 16.5 +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 33.0 +char main::i +char main::i#1 // reg byte x 202.0 +char main::i#2 // reg byte x 168.33333333333331 +__constant char * const main::line = SCREEN+$28 +char *main::nxt +char *main::nxt#1 // nxt zp[2]:2 22.0 +char *main::nxt#10 // nxt zp[2]:2 20.500000000000004 +char *main::nxt#11 // nxt zp[2]:2 11.0 +char *main::nxt#4 // nxt zp[2]:2 11.0 +char main::scroll +char main::scroll#1 // reg byte x 16.5 +char main::scroll#4 // reg byte x 11.0 +char main::scroll#7 // reg byte x 56.0 reg byte x [ main::scroll#7 main::scroll#4 main::scroll#1 ] reg byte x [ main::i#2 main::i#1 ] @@ -800,7 +801,7 @@ main: { .label line = SCREEN+$28 .label nxt = 2 // fillscreen(SCREEN, $20) - // [1] call fillscreen + // [1] call fillscreen // [21] phi from main to fillscreen [phi:main->fillscreen] jsr fillscreen // [2] phi from main to main::@1 [phi:main->main::@1] @@ -818,20 +819,20 @@ main: { // main::@1 __b1: // while(VICII->RASTER!=$fe) - // [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$fe cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1 // main::@2 __b2: // while(VICII->RASTER!=$ff) - // [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 // main::@3 // ++VICII->BG_COLOR; - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // if(--scroll==$ff) // [6] main::scroll#1 = -- main::scroll#7 -- vbuxx=_dec_vbuxx @@ -895,10 +896,10 @@ main: { // main::@4 __b4: // VICII->CONTROL2 = scroll - // [17] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 -- _deref_pbuc1=vbuxx + // [17] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = main::scroll#4 -- _deref_pbuc1=vbuxx stx VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 // --VICII->BG_COLOR; - // [18] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [18] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR jmp __b1 // main::@6 @@ -915,6 +916,7 @@ main: { jmp __b5 } // fillscreen +// void fillscreen(char *screen, char fill) fillscreen: { .const fill = $20 .label cursor = 4 diff --git a/src/test/ref/examples/c64/scroll/scroll.sym b/src/test/ref/examples/c64/scroll/scroll.sym index ff5b82e89..b1b767920 100644 --- a/src/test/ref/examples/c64/scroll/scroll.sym +++ b/src/test/ref/examples/c64/scroll/scroll.sym @@ -1,34 +1,34 @@ -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte* fillscreen::cursor -byte* fillscreen::cursor#1 cursor zp[2]:4 202.0 -byte* fillscreen::cursor#2 cursor zp[2]:4 134.66666666666666 -byte fillscreen::fill -constant byte fillscreen::fill#0 fill = $20 -byte* fillscreen::screen +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const SCREEN = (char *) 1024 +__constant const char TEXT[] = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +void fillscreen(char *screen , char fill) +char *fillscreen::cursor +char *fillscreen::cursor#1 // cursor zp[2]:4 202.0 +char *fillscreen::cursor#2 // cursor zp[2]:4 134.66666666666666 +char fillscreen::fill +__constant char fillscreen::fill#0 = $20 // fill +char *fillscreen::screen void main() -byte main::c -byte main::c#0 reg byte x 16.5 -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 33.0 -byte main::i -byte main::i#1 reg byte x 202.0 -byte main::i#2 reg byte x 168.33333333333331 -constant byte* const main::line = SCREEN+$28 -byte* main::nxt -byte* main::nxt#1 nxt zp[2]:2 22.0 -byte* main::nxt#10 nxt zp[2]:2 20.500000000000004 -byte* main::nxt#11 nxt zp[2]:2 11.0 -byte* main::nxt#4 nxt zp[2]:2 11.0 -byte main::scroll -byte main::scroll#1 reg byte x 16.5 -byte main::scroll#4 reg byte x 11.0 -byte main::scroll#7 reg byte x 56.0 +char main::c +char main::c#0 // reg byte x 16.5 +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 33.0 +char main::i +char main::i#1 // reg byte x 202.0 +char main::i#2 // reg byte x 168.33333333333331 +__constant char * const main::line = SCREEN+$28 +char *main::nxt +char *main::nxt#1 // nxt zp[2]:2 22.0 +char *main::nxt#10 // nxt zp[2]:2 20.500000000000004 +char *main::nxt#11 // nxt zp[2]:2 11.0 +char *main::nxt#4 // nxt zp[2]:2 11.0 +char main::scroll +char main::scroll#1 // reg byte x 16.5 +char main::scroll#4 // reg byte x 11.0 +char main::scroll#7 // reg byte x 56.0 reg byte x [ main::scroll#7 main::scroll#4 main::scroll#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/examples/c64/scrollbig/scrollbig.asm b/src/test/ref/examples/c64/scrollbig/scrollbig.asm index bc5eb1f32..3c3106875 100644 --- a/src/test/ref/examples/c64/scrollbig/scrollbig.asm +++ b/src/test/ref/examples/c64/scrollbig/scrollbig.asm @@ -62,6 +62,7 @@ main: { jmp __b1 } // Fill the screen with one char +// void fillscreen(char *screen, char fill) fillscreen: { .const fill = $20 .label cursor = 3 diff --git a/src/test/ref/examples/c64/scrollbig/scrollbig.cfg b/src/test/ref/examples/c64/scrollbig/scrollbig.cfg index 1ca1421e5..876132cac 100644 --- a/src/test/ref/examples/c64/scrollbig/scrollbig.cfg +++ b/src/test/ref/examples/c64/scrollbig/scrollbig.cfg @@ -2,27 +2,27 @@ void main() main: scope:[main] from [0] phi() - [1] call fillscreen + [1] call fillscreen to:main::@1 main::@1: scope:[main] from main main::@1 main::@4 [2] current_chargen#28 = phi( main::@1/current_chargen#28, main/CHARGEN, main::@4/current_chargen#12 ) [2] nxt#33 = phi( main::@1/nxt#33, main/TEXT, main::@4/nxt#15 ) [2] current_bit#30 = phi( main::@1/current_bit#30, main/1, main::@4/current_bit#13 ) [2] scroll#19 = phi( main::@1/scroll#19, main/7, main::@4/scroll#11 ) - [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 + [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 + [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) - [6] call scroll_soft + [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + [6] call scroll_soft to:main::@4 main::@4: scope:[main] from main::@3 - [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) to:main::@1 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main [8] phi() to:fillscreen::@1 @@ -45,14 +45,14 @@ scroll_soft: scope:[scroll_soft] from main::@3 to:scroll_soft::@2 scroll_soft::@2: scope:[scroll_soft] from scroll_soft [16] phi() - [17] call scroll_bit + [17] call scroll_bit to:scroll_soft::@1 scroll_soft::@1: scope:[scroll_soft] from scroll_soft scroll_soft::@2 [18] current_chargen#12 = phi( scroll_soft/current_chargen#28, scroll_soft::@2/current_chargen#21 ) [18] nxt#15 = phi( scroll_soft/nxt#33, scroll_soft::@2/nxt#37 ) [18] current_bit#13 = phi( scroll_soft/current_bit#30, scroll_soft::@2/current_bit#23 ) [18] scroll#11 = phi( scroll_soft/scroll#2, scroll_soft::@2/7 ) - [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 + [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 to:scroll_soft::@return scroll_soft::@return: scope:[scroll_soft] from scroll_soft::@1 [20] return @@ -65,7 +65,7 @@ scroll_bit: scope:[scroll_bit] from scroll_soft::@2 to:scroll_bit::@2 scroll_bit::@2: scope:[scroll_bit] from scroll_bit [23] phi() - [24] call next_char + [24] call next_char [25] next_char::return#0 = next_char::return#1 to:scroll_bit::@8 scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@2 @@ -77,7 +77,7 @@ scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8 [29] nxt#37 = phi( scroll_bit/nxt#33, scroll_bit::@8/nxt#20 ) [29] current_bit#23 = phi( scroll_bit/current_bit#4, scroll_bit::@8/$80 ) [29] current_chargen#21 = phi( scroll_bit/current_chargen#28, scroll_bit::@8/current_chargen#4 ) - [30] call scroll_hard + [30] call scroll_hard to:scroll_bit::@7 scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1 asm { sei } @@ -108,7 +108,7 @@ scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6 [45] return to:@return -byte next_char() +char next_char() next_char: scope:[next_char] from scroll_bit::@2 [46] next_char::c#0 = *nxt#33 [47] if(next_char::c#0!=0) goto next_char::@1 @@ -144,6 +144,6 @@ scroll_hard::@2: scope:[scroll_hard] from scroll_hard::@1 [60] (SCREEN+$28*4)[scroll_hard::i#2] = (SCREEN+$28*4+1)[scroll_hard::i#2] [61] (SCREEN+$28*5)[scroll_hard::i#2] = (SCREEN+$28*5+1)[scroll_hard::i#2] [62] (SCREEN+$28*6)[scroll_hard::i#2] = (SCREEN+$28*6+1)[scroll_hard::i#2] - [63] (SCREEN+(word)$28*7)[scroll_hard::i#2] = (SCREEN+(word)$28*7+1)[scroll_hard::i#2] + [63] (SCREEN+(unsigned int)$28*7)[scroll_hard::i#2] = (SCREEN+(unsigned int)$28*7+1)[scroll_hard::i#2] [64] scroll_hard::i#1 = ++ scroll_hard::i#2 to:scroll_hard::@1 diff --git a/src/test/ref/examples/c64/scrollbig/scrollbig.log b/src/test/ref/examples/c64/scrollbig/scrollbig.log index 388b78ff8..b2e9b6258 100644 --- a/src/test/ref/examples/c64/scrollbig/scrollbig.log +++ b/src/test/ref/examples/c64/scrollbig/scrollbig.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement scroll_bit::$5 Eliminating unused variable with no statement scroll_bit::$6 @@ -13,7 +13,7 @@ main: scope:[main] from __start::@1 scroll#21 = phi( __start::@1/scroll#17 ) fillscreen::screen#0 = SCREEN fillscreen::fill#0 = $20 - call fillscreen + call fillscreen to:main::@4 main::@4: scope:[main] from main current_chargen#30 = phi( main/current_chargen#31 ) @@ -26,7 +26,7 @@ main::@1: scope:[main] from main::@1 main::@4 main::@5 nxt#33 = phi( main::@1/nxt#33, main::@4/nxt#36, main::@5/nxt#0 ) current_bit#30 = phi( main::@1/current_bit#30, main::@4/current_bit#31, main::@5/current_bit#0 ) scroll#19 = phi( main::@1/scroll#19, main::@4/scroll#20, main::@5/scroll#0 ) - main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe + main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe if(main::$1) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 @@ -34,7 +34,7 @@ main::@2: scope:[main] from main::@1 main::@2 nxt#29 = phi( main::@1/nxt#33, main::@2/nxt#29 ) current_bit#26 = phi( main::@1/current_bit#30, main::@2/current_bit#26 ) scroll#18 = phi( main::@1/scroll#19, main::@2/scroll#18 ) - main::$2 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff + main::$2 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff if(main::$2) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -42,8 +42,8 @@ main::@3: scope:[main] from main::@2 nxt#23 = phi( main::@2/nxt#29 ) current_bit#19 = phi( main::@2/current_bit#26 ) scroll#15 = phi( main::@2/scroll#18 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) - call scroll_soft + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + call scroll_soft to:main::@5 main::@5: scope:[main] from main::@3 current_chargen#9 = phi( main::@3/current_chargen#3 ) @@ -54,7 +54,7 @@ main::@5: scope:[main] from main::@3 current_bit#0 = current_bit#10 nxt#0 = nxt#12 current_chargen#0 = current_chargen#9 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) if(true) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 @@ -85,14 +85,14 @@ scroll_soft::@1: scope:[scroll_soft] from scroll_soft scroll_soft::@3 nxt#25 = phi( scroll_soft/nxt#30, scroll_soft::@3/nxt#2 ) current_bit#21 = phi( scroll_soft/current_bit#27, scroll_soft::@3/current_bit#2 ) scroll#11 = phi( scroll_soft/scroll#2, scroll_soft::@3/scroll#16 ) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 to:scroll_soft::@return scroll_soft::@2: scope:[scroll_soft] from scroll_soft current_chargen#18 = phi( scroll_soft/current_chargen#25 ) nxt#24 = phi( scroll_soft/nxt#30 ) current_bit#20 = phi( scroll_soft/current_bit#27 ) scroll#3 = 7 - call scroll_bit + call scroll_bit to:scroll_soft::@3 scroll_soft::@3: scope:[scroll_soft] from scroll_soft::@2 scroll#16 = phi( scroll_soft::@2/scroll#3 ) @@ -130,7 +130,7 @@ scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8 nxt#39 = phi( scroll_bit/nxt#31, scroll_bit::@8/nxt#4 ) current_bit#28 = phi( scroll_bit/current_bit#4, scroll_bit::@8/current_bit#5 ) current_chargen#26 = phi( scroll_bit/current_chargen#29, scroll_bit::@8/current_chargen#4 ) - call scroll_hard + call scroll_hard to:scroll_bit::@7 scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1 nxt#37 = phi( scroll_bit::@1/nxt#39 ) @@ -144,7 +144,7 @@ scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1 to:scroll_bit::@3 scroll_bit::@2: scope:[scroll_bit] from scroll_bit nxt#26 = phi( scroll_bit/nxt#31 ) - call next_char + call next_char next_char::return#0 = next_char::return#2 to:scroll_bit::@8 scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@2 @@ -209,7 +209,7 @@ scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6 return to:@return -byte next_char() +char next_char() next_char: scope:[next_char] from scroll_bit::@2 nxt#18 = phi( scroll_bit::@2/nxt#26 ) next_char::c#0 = *nxt#18 @@ -284,7 +284,7 @@ scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1 return to:@return -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) +void fillscreen(char *screen , char fill) fillscreen: scope:[fillscreen] from main fillscreen::fill#3 = phi( main/fillscreen::fill#0 ) fillscreen::screen#1 = phi( main/fillscreen::screen#0 ) @@ -323,7 +323,7 @@ __start::@1: scope:[__start] from __start::__init1 nxt#28 = phi( __start::__init1/nxt#9 ) current_bit#25 = phi( __start::__init1/current_bit#7 ) scroll#17 = phi( __start::__init1/scroll#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 current_chargen#15 = phi( __start::@1/current_chargen#1 ) @@ -348,250 +348,250 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const CHARGEN = (byte*)$d000 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*)1 -constant byte* SCREEN = (byte*)$400 -constant byte* TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char * const CHARGEN = (char *)$d000 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *)1 +__constant char *SCREEN = (char *)$400 +__constant char *TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() -byte current_bit -byte current_bit#0 -byte current_bit#1 -byte current_bit#10 -byte current_bit#11 -byte current_bit#12 -byte current_bit#13 -byte current_bit#14 -byte current_bit#15 -byte current_bit#16 -byte current_bit#17 -byte current_bit#18 -byte current_bit#19 -byte current_bit#2 -byte current_bit#20 -byte current_bit#21 -byte current_bit#22 -byte current_bit#23 -byte current_bit#24 -byte current_bit#25 -byte current_bit#26 -byte current_bit#27 -byte current_bit#28 -byte current_bit#29 -byte current_bit#3 -byte current_bit#30 -byte current_bit#31 -byte current_bit#32 -byte current_bit#4 -byte current_bit#5 -byte current_bit#6 -byte current_bit#7 -byte current_bit#8 -byte current_bit#9 -byte* current_chargen -byte* current_chargen#0 -byte* current_chargen#1 -byte* current_chargen#10 -byte* current_chargen#11 -byte* current_chargen#12 -byte* current_chargen#13 -byte* current_chargen#14 -byte* current_chargen#15 -byte* current_chargen#16 -byte* current_chargen#17 -byte* current_chargen#18 -byte* current_chargen#19 -byte* current_chargen#2 -byte* current_chargen#20 -byte* current_chargen#21 -byte* current_chargen#22 -byte* current_chargen#23 -byte* current_chargen#24 -byte* current_chargen#25 -byte* current_chargen#26 -byte* current_chargen#27 -byte* current_chargen#28 -byte* current_chargen#29 -byte* current_chargen#3 -byte* current_chargen#30 -byte* current_chargen#31 -byte* current_chargen#4 -byte* current_chargen#5 -byte* current_chargen#6 -byte* current_chargen#7 -byte* current_chargen#8 -byte* current_chargen#9 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte*~ fillscreen::$0 -bool~ fillscreen::$1 -byte* fillscreen::cursor -byte* fillscreen::cursor#0 -byte* fillscreen::cursor#1 -byte* fillscreen::cursor#2 -byte* fillscreen::cursor#3 -byte fillscreen::fill -byte fillscreen::fill#0 -byte fillscreen::fill#1 -byte fillscreen::fill#2 -byte fillscreen::fill#3 -byte* fillscreen::screen -byte* fillscreen::screen#0 -byte* fillscreen::screen#1 -byte* fillscreen::screen#2 -byte* fillscreen::screen#3 +char current_bit +char current_bit#0 +char current_bit#1 +char current_bit#10 +char current_bit#11 +char current_bit#12 +char current_bit#13 +char current_bit#14 +char current_bit#15 +char current_bit#16 +char current_bit#17 +char current_bit#18 +char current_bit#19 +char current_bit#2 +char current_bit#20 +char current_bit#21 +char current_bit#22 +char current_bit#23 +char current_bit#24 +char current_bit#25 +char current_bit#26 +char current_bit#27 +char current_bit#28 +char current_bit#29 +char current_bit#3 +char current_bit#30 +char current_bit#31 +char current_bit#32 +char current_bit#4 +char current_bit#5 +char current_bit#6 +char current_bit#7 +char current_bit#8 +char current_bit#9 +char *current_chargen +char *current_chargen#0 +char *current_chargen#1 +char *current_chargen#10 +char *current_chargen#11 +char *current_chargen#12 +char *current_chargen#13 +char *current_chargen#14 +char *current_chargen#15 +char *current_chargen#16 +char *current_chargen#17 +char *current_chargen#18 +char *current_chargen#19 +char *current_chargen#2 +char *current_chargen#20 +char *current_chargen#21 +char *current_chargen#22 +char *current_chargen#23 +char *current_chargen#24 +char *current_chargen#25 +char *current_chargen#26 +char *current_chargen#27 +char *current_chargen#28 +char *current_chargen#29 +char *current_chargen#3 +char *current_chargen#30 +char *current_chargen#31 +char *current_chargen#4 +char *current_chargen#5 +char *current_chargen#6 +char *current_chargen#7 +char *current_chargen#8 +char *current_chargen#9 +void fillscreen(char *screen , char fill) +char *fillscreen::$0 +bool fillscreen::$1 +char *fillscreen::cursor +char *fillscreen::cursor#0 +char *fillscreen::cursor#1 +char *fillscreen::cursor#2 +char *fillscreen::cursor#3 +char fillscreen::fill +char fillscreen::fill#0 +char fillscreen::fill#1 +char fillscreen::fill#2 +char fillscreen::fill#3 +char *fillscreen::screen +char *fillscreen::screen#0 +char *fillscreen::screen#1 +char *fillscreen::screen#2 +char *fillscreen::screen#3 void main() -bool~ main::$1 -bool~ main::$2 -byte next_char() -bool~ next_char::$0 -bool~ next_char::$1 -byte next_char::c -byte next_char::c#0 -byte next_char::c#1 -byte next_char::c#2 -byte next_char::return -byte next_char::return#0 -byte next_char::return#1 -byte next_char::return#2 -byte next_char::return#3 -byte next_char::return#4 -byte* nxt -byte* nxt#0 -byte* nxt#1 -byte* nxt#10 -byte* nxt#11 -byte* nxt#12 -byte* nxt#13 -byte* nxt#14 -byte* nxt#15 -byte* nxt#16 -byte* nxt#17 -byte* nxt#18 -byte* nxt#19 -byte* nxt#2 -byte* nxt#20 -byte* nxt#21 -byte* nxt#22 -byte* nxt#23 -byte* nxt#24 -byte* nxt#25 -byte* nxt#26 -byte* nxt#27 -byte* nxt#28 -byte* nxt#29 -byte* nxt#3 -byte* nxt#30 -byte* nxt#31 -byte* nxt#32 -byte* nxt#33 -byte* nxt#34 -byte* nxt#35 -byte* nxt#36 -byte* nxt#37 -byte* nxt#38 -byte* nxt#39 -byte* nxt#4 -byte* nxt#5 -byte* nxt#6 -byte* nxt#7 -byte* nxt#8 -byte* nxt#9 -byte scroll -byte scroll#0 -byte scroll#1 -byte scroll#10 -byte scroll#11 -byte scroll#12 -byte scroll#13 -byte scroll#14 -byte scroll#15 -byte scroll#16 -byte scroll#17 -byte scroll#18 -byte scroll#19 -byte scroll#2 -byte scroll#20 -byte scroll#21 -byte scroll#3 -byte scroll#4 -byte scroll#5 -byte scroll#6 -byte scroll#7 -byte scroll#8 -byte scroll#9 +bool main::$1 +bool main::$2 +char next_char() +bool next_char::$0 +bool next_char::$1 +char next_char::c +char next_char::c#0 +char next_char::c#1 +char next_char::c#2 +char next_char::return +char next_char::return#0 +char next_char::return#1 +char next_char::return#2 +char next_char::return#3 +char next_char::return#4 +char *nxt +char *nxt#0 +char *nxt#1 +char *nxt#10 +char *nxt#11 +char *nxt#12 +char *nxt#13 +char *nxt#14 +char *nxt#15 +char *nxt#16 +char *nxt#17 +char *nxt#18 +char *nxt#19 +char *nxt#2 +char *nxt#20 +char *nxt#21 +char *nxt#22 +char *nxt#23 +char *nxt#24 +char *nxt#25 +char *nxt#26 +char *nxt#27 +char *nxt#28 +char *nxt#29 +char *nxt#3 +char *nxt#30 +char *nxt#31 +char *nxt#32 +char *nxt#33 +char *nxt#34 +char *nxt#35 +char *nxt#36 +char *nxt#37 +char *nxt#38 +char *nxt#39 +char *nxt#4 +char *nxt#5 +char *nxt#6 +char *nxt#7 +char *nxt#8 +char *nxt#9 +char scroll +char scroll#0 +char scroll#1 +char scroll#10 +char scroll#11 +char scroll#12 +char scroll#13 +char scroll#14 +char scroll#15 +char scroll#16 +char scroll#17 +char scroll#18 +char scroll#19 +char scroll#2 +char scroll#20 +char scroll#21 +char scroll#3 +char scroll#4 +char scroll#5 +char scroll#6 +char scroll#7 +char scroll#8 +char scroll#9 void scroll_bit() -number~ scroll_bit::$0 -bool~ scroll_bit::$1 -bool~ scroll_bit::$10 -bool~ scroll_bit::$11 -byte*~ scroll_bit::$12 -bool~ scroll_bit::$13 -bool~ scroll_bit::$2 -byte*~ scroll_bit::$4 -number~ scroll_bit::$7 -byte*~ scroll_bit::$8 -byte~ scroll_bit::$9 -byte scroll_bit::b -byte scroll_bit::b#0 -byte scroll_bit::b#1 -byte scroll_bit::b#2 -byte scroll_bit::bits -byte scroll_bit::bits#0 -word scroll_bit::c -word scroll_bit::c#0 -byte scroll_bit::r -byte scroll_bit::r#0 -byte scroll_bit::r#1 -byte scroll_bit::r#2 -byte scroll_bit::r#3 -byte scroll_bit::r#4 -byte* scroll_bit::sc -byte* scroll_bit::sc#0 -byte* scroll_bit::sc#1 -byte* scroll_bit::sc#2 -byte* scroll_bit::sc#3 -byte* scroll_bit::sc#4 +number scroll_bit::$0 +bool scroll_bit::$1 +bool scroll_bit::$10 +bool scroll_bit::$11 +char *scroll_bit::$12 +bool scroll_bit::$13 +bool scroll_bit::$2 +char *scroll_bit::$4 +number scroll_bit::$7 +char *scroll_bit::$8 +char scroll_bit::$9 +char scroll_bit::b +char scroll_bit::b#0 +char scroll_bit::b#1 +char scroll_bit::b#2 +char scroll_bit::bits +char scroll_bit::bits#0 +unsigned int scroll_bit::c +unsigned int scroll_bit::c#0 +char scroll_bit::r +char scroll_bit::r#0 +char scroll_bit::r#1 +char scroll_bit::r#2 +char scroll_bit::r#3 +char scroll_bit::r#4 +char *scroll_bit::sc +char *scroll_bit::sc#0 +char *scroll_bit::sc#1 +char *scroll_bit::sc#2 +char *scroll_bit::sc#3 +char *scroll_bit::sc#4 void scroll_hard() -bool~ scroll_hard::$0 -byte*~ scroll_hard::$1 -byte*~ scroll_hard::$10 -byte*~ scroll_hard::$11 -number~ scroll_hard::$12 -byte*~ scroll_hard::$13 -byte*~ scroll_hard::$14 -number~ scroll_hard::$15 -byte*~ scroll_hard::$16 -byte*~ scroll_hard::$17 -number~ scroll_hard::$18 -byte*~ scroll_hard::$19 -byte*~ scroll_hard::$2 -byte*~ scroll_hard::$20 -number~ scroll_hard::$21 -byte*~ scroll_hard::$22 -byte*~ scroll_hard::$23 -number~ scroll_hard::$24 -number~ scroll_hard::$3 -byte*~ scroll_hard::$4 -byte*~ scroll_hard::$5 -number~ scroll_hard::$6 -byte*~ scroll_hard::$7 -byte*~ scroll_hard::$8 -number~ scroll_hard::$9 -byte scroll_hard::i -byte scroll_hard::i#0 -byte scroll_hard::i#1 -byte scroll_hard::i#2 -byte scroll_hard::i#3 +bool scroll_hard::$0 +char *scroll_hard::$1 +char *scroll_hard::$10 +char *scroll_hard::$11 +number scroll_hard::$12 +char *scroll_hard::$13 +char *scroll_hard::$14 +number scroll_hard::$15 +char *scroll_hard::$16 +char *scroll_hard::$17 +number scroll_hard::$18 +char *scroll_hard::$19 +char *scroll_hard::$2 +char *scroll_hard::$20 +number scroll_hard::$21 +char *scroll_hard::$22 +char *scroll_hard::$23 +number scroll_hard::$24 +number scroll_hard::$3 +char *scroll_hard::$4 +char *scroll_hard::$5 +number scroll_hard::$6 +char *scroll_hard::$7 +char *scroll_hard::$8 +number scroll_hard::$9 +char scroll_hard::i +char scroll_hard::i#0 +char scroll_hard::i#1 +char scroll_hard::i#2 +char scroll_hard::i#3 void scroll_soft() -bool~ scroll_soft::$0 -bool~ scroll_soft::$1 +bool scroll_soft::$0 +bool scroll_soft::$1 Adding number conversion cast (unumber) $20 in fillscreen::fill#0 = $20 -Adding number conversion cast (unumber) $fe in main::$1 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe -Adding number conversion cast (unumber) $ff in main::$2 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff +Adding number conversion cast (unumber) $fe in main::$1 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $fe +Adding number conversion cast (unumber) $ff in main::$2 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) != $ff Adding number conversion cast (unumber) $ff in scroll_soft::$0 = scroll#2 == $ff Adding number conversion cast (unumber) 7 in scroll#3 = 7 Adding number conversion cast (unumber) 2 in scroll_bit::$0 = current_bit#14 / 2 @@ -651,10 +651,10 @@ Inlining cast current_bit#5 = (unumber)$80 Inlining cast scroll_bit::b#1 = (unumber)(unumber)$80+' ' Inlining cast *PROCPORT = (unumber)$37 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $20 Simplifying constant integer cast $fe Simplifying constant integer cast $ff @@ -684,44 +684,44 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $fe -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) $37 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $fe +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) $37 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in scroll_bit::$0 = current_bit#14 / 2 -Inferred type updated to word in scroll_bit::$7 = scroll_bit::c#0 * 8 -Inferred type updated to byte in scroll_hard::$3 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$6 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$9 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$12 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$15 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$18 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$21 = scroll_hard::i#3 + 1 -Inferred type updated to byte in scroll_hard::$24 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_bit::$0 = current_bit#14 / 2 +Inferred type updated to unsigned int in scroll_bit::$7 = scroll_bit::c#0 * 8 +Inferred type updated to char in scroll_hard::$3 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$6 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$9 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$12 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$15 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$18 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$21 = scroll_hard::i#3 + 1 +Inferred type updated to char in scroll_hard::$24 = scroll_hard::i#3 + 1 Inversing boolean not [30] scroll_soft::$1 = scroll#2 != $ff from [29] scroll_soft::$0 = scroll#2 == $ff Inversing boolean not [51] scroll_bit::$2 = current_bit#4 != 0 from [50] scroll_bit::$1 = current_bit#4 == 0 Inversing boolean not [76] scroll_bit::$11 = scroll_bit::$9 == 0 from [75] scroll_bit::$10 = scroll_bit::$9 != 0 @@ -825,8 +825,8 @@ Identical Phi Values current_bit#17 current_bit#0 Identical Phi Values nxt#10 nxt#0 Identical Phi Values current_chargen#15 current_chargen#0 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$1 [6] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -Simple Condition main::$2 [9] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 +Simple Condition main::$1 [6] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 +Simple Condition main::$2 [9] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 Simple Condition scroll_soft::$1 [19] if(scroll#2!=$ff) goto scroll_soft::@1 Simple Condition scroll_bit::$2 [29] if(current_bit#4!=0) goto scroll_bit::@1 Simple Condition scroll_bit::$11 [49] if(scroll_bit::$9==0) goto scroll_bit::@4 @@ -836,22 +836,22 @@ Simple Condition scroll_hard::$0 [72] if(scroll_hard::i#2!=$27) goto scroll_hard Simple Condition fillscreen::$1 [111] if(fillscreen::cursor#2fillscreen] fillscreen_from_main: jsr fillscreen @@ -1498,33 +1498,34 @@ main: { jmp __b1 // main::@1 __b1: - // [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$fe cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1_from___b1 jmp __b2 // main::@2 __b2: - // [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 jmp __b3 // main::@3 __b3: - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR - // [6] call scroll_soft + // [6] call scroll_soft jsr scroll_soft jmp __b4 // main::@4 __b4: - // [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR jmp __b1_from___b4 } // fillscreen // Fill the screen with one char +// void fillscreen(char *screen, char fill) fillscreen: { .const fill = $20 .label cursor = 3 @@ -1580,7 +1581,7 @@ scroll_soft: { jmp __b2 // scroll_soft::@2 __b2: - // [17] call scroll_bit + // [17] call scroll_bit jsr scroll_bit // [18] phi from scroll_soft::@2 to scroll_soft::@1 [phi:scroll_soft::@2->scroll_soft::@1] __b1_from___b2: @@ -1599,7 +1600,7 @@ scroll_soft: { jmp __b1 // scroll_soft::@1 __b1: - // [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 -- _deref_pbuc1=vbuxx + // [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 -- _deref_pbuc1=vbuxx stx VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 jmp __breturn // scroll_soft::@return @@ -1622,7 +1623,7 @@ scroll_bit: { jmp __b2 // scroll_bit::@2 __b2: - // [24] call next_char + // [24] call next_char jsr next_char // [25] next_char::return#0 = next_char::return#1 -- vbuaa=vbuxx txa @@ -1664,7 +1665,7 @@ scroll_bit: { jmp __b1 // scroll_bit::@1 __b1: - // [30] call scroll_hard + // [30] call scroll_hard // [52] phi from scroll_bit::@1 to scroll_hard [phi:scroll_bit::@1->scroll_hard] scroll_hard_from___b1: jsr scroll_hard @@ -1832,7 +1833,7 @@ scroll_hard: { // [62] (SCREEN+$28*6)[scroll_hard::i#2] = (SCREEN+$28*6+1)[scroll_hard::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*6+1,x sta SCREEN+$28*6,x - // [63] (SCREEN+(word)$28*7)[scroll_hard::i#2] = (SCREEN+(word)$28*7+1)[scroll_hard::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [63] (SCREEN+(unsigned int)$28*7)[scroll_hard::i#2] = (SCREEN+(unsigned int)$28*7+1)[scroll_hard::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*7+1,x sta SCREEN+$28*7,x // [64] scroll_hard::i#1 = ++ scroll_hard::i#2 -- vbuxx=_inc_vbuxx @@ -1925,68 +1926,68 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const CHARGEN = (byte*) 53248 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*) 1 -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -byte current_bit -byte current_bit#13 current_bit zp[1]:2 42.599999999999994 -byte current_bit#23 current_bit zp[1]:2 5616.833333333334 -byte current_bit#30 current_bit zp[1]:2 187.85714285714286 -byte current_bit#4 current_bit zp[1]:2 1501.5 -byte* current_chargen -byte* current_chargen#12 current_chargen zp[2]:3 42.599999999999994 -byte* current_chargen#21 current_chargen zp[2]:3 5672.444444444444 -byte* current_chargen#28 current_chargen zp[2]:3 146.11111111111111 -byte* current_chargen#4 current_chargen zp[2]:3 2002.0 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte* fillscreen::cursor -byte* fillscreen::cursor#1 cursor zp[2]:3 202.0 -byte* fillscreen::cursor#2 cursor zp[2]:3 134.66666666666666 -byte fillscreen::fill -constant byte fillscreen::fill#0 fill = $20 -byte* fillscreen::screen +__constant char * const CHARGEN = (char *) 53248 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *) 1 +__constant char *SCREEN = (char *) 1024 +__constant char *TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +char current_bit +char current_bit#13 // current_bit zp[1]:2 42.599999999999994 +char current_bit#23 // current_bit zp[1]:2 5616.833333333334 +char current_bit#30 // current_bit zp[1]:2 187.85714285714286 +char current_bit#4 // current_bit zp[1]:2 1501.5 +char *current_chargen +char *current_chargen#12 // current_chargen zp[2]:3 42.599999999999994 +char *current_chargen#21 // current_chargen zp[2]:3 5672.444444444444 +char *current_chargen#28 // current_chargen zp[2]:3 146.11111111111111 +char *current_chargen#4 // current_chargen zp[2]:3 2002.0 +void fillscreen(char *screen , char fill) +char *fillscreen::cursor +char *fillscreen::cursor#1 // cursor zp[2]:3 202.0 +char *fillscreen::cursor#2 // cursor zp[2]:3 134.66666666666666 +char fillscreen::fill +__constant char fillscreen::fill#0 = $20 // fill +char *fillscreen::screen void main() -byte next_char() -byte next_char::c -byte next_char::c#0 reg byte x 15001.5 -byte next_char::c#1 reg byte x 20002.0 -byte next_char::return -byte next_char::return#0 reg byte a 2002.0 -byte next_char::return#1 reg byte x 5250.75 -byte* nxt -byte* nxt#15 nxt zp[2]:7 42.599999999999994 -byte* nxt#19 nxt zp[2]:7 20002.0 -byte* nxt#20 nxt zp[2]:7 1571.7142857142858 -byte* nxt#33 nxt zp[2]:7 1776.4166666666665 -byte* nxt#37 nxt zp[2]:7 116.83333333333334 -byte scroll -byte scroll#11 reg byte x 42.599999999999994 -byte scroll#19 reg byte x 78.5 -byte scroll#2 reg byte x 151.5 +char next_char() +char next_char::c +char next_char::c#0 // reg byte x 15001.5 +char next_char::c#1 // reg byte x 20002.0 +char next_char::return +char next_char::return#0 // reg byte a 2002.0 +char next_char::return#1 // reg byte x 5250.75 +char *nxt +char *nxt#15 // nxt zp[2]:7 42.599999999999994 +char *nxt#19 // nxt zp[2]:7 20002.0 +char *nxt#20 // nxt zp[2]:7 1571.7142857142858 +char *nxt#33 // nxt zp[2]:7 1776.4166666666665 +char *nxt#37 // nxt zp[2]:7 116.83333333333334 +char scroll +char scroll#11 // reg byte x 42.599999999999994 +char scroll#19 // reg byte x 78.5 +char scroll#2 // reg byte x 151.5 void scroll_bit() -word~ scroll_bit::$7 zp[2]:3 2002.0 -byte~ scroll_bit::$9 reg byte a 200002.0 -byte scroll_bit::b -byte scroll_bit::b#2 reg byte a 100001.0 -byte scroll_bit::bits -byte scroll_bit::bits#0 reg byte a 200002.0 -word scroll_bit::c -word scroll_bit::c#0 c zp[2]:3 2002.0 -byte scroll_bit::r -byte scroll_bit::r#1 reg byte x 150001.5 -byte scroll_bit::r#2 reg byte x 37500.375 -byte* scroll_bit::sc -byte* scroll_bit::sc#1 sc zp[2]:5 66667.33333333333 -byte* scroll_bit::sc#2 sc zp[2]:5 42857.57142857143 +unsigned int scroll_bit::$7 // zp[2]:3 2002.0 +char scroll_bit::$9 // reg byte a 200002.0 +char scroll_bit::b +char scroll_bit::b#2 // reg byte a 100001.0 +char scroll_bit::bits +char scroll_bit::bits#0 // reg byte a 200002.0 +unsigned int scroll_bit::c +unsigned int scroll_bit::c#0 // c zp[2]:3 2002.0 +char scroll_bit::r +char scroll_bit::r#1 // reg byte x 150001.5 +char scroll_bit::r#2 // reg byte x 37500.375 +char *scroll_bit::sc +char *scroll_bit::sc#1 // sc zp[2]:5 66667.33333333333 +char *scroll_bit::sc#2 // sc zp[2]:5 42857.57142857143 void scroll_hard() -byte scroll_hard::i -byte scroll_hard::i#1 reg byte x 2000002.0 -byte scroll_hard::i#2 reg byte x 1900001.9000000006 +char scroll_hard::i +char scroll_hard::i#1 // reg byte x 2000002.0 +char scroll_hard::i#2 // reg byte x 1900001.9000000006 void scroll_soft() reg byte x [ scroll#19 scroll#11 scroll#2 ] @@ -2042,7 +2043,7 @@ Score: 20884 // main main: { // fillscreen(SCREEN, $20) - // [1] call fillscreen + // [1] call fillscreen // [8] phi from main to fillscreen [phi:main->fillscreen] jsr fillscreen // [2] phi from main to main::@1 [phi:main->main::@1] @@ -2070,32 +2071,33 @@ main: { // main::@1 __b1: // while(VICII->RASTER!=$fe) - // [3] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [3] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$fe) goto main::@1 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$fe cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b1 // main::@2 __b2: // while(VICII->RASTER!=$ff) - // [4] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [4] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)!=$ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER bne __b2 // main::@3 // ++VICII->BG_COLOR; - // [5] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [5] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // scroll_soft() - // [6] call scroll_soft + // [6] call scroll_soft jsr scroll_soft // main::@4 // --VICII->BG_COLOR; - // [7] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [7] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR jmp __b1 } // fillscreen // Fill the screen with one char +// void fillscreen(char *screen, char fill) fillscreen: { .const fill = $20 .label cursor = 3 @@ -2149,7 +2151,7 @@ scroll_soft: { // [16] phi from scroll_soft to scroll_soft::@2 [phi:scroll_soft->scroll_soft::@2] // scroll_soft::@2 // scroll_bit() - // [17] call scroll_bit + // [17] call scroll_bit jsr scroll_bit // [18] phi from scroll_soft::@2 to scroll_soft::@1 [phi:scroll_soft::@2->scroll_soft::@1] // [18] phi current_chargen#12 = current_chargen#21 [phi:scroll_soft::@2->scroll_soft::@1#0] -- register_copy @@ -2165,7 +2167,7 @@ scroll_soft: { // scroll_soft::@1 __b1: // VICII->CONTROL2 = scroll - // [19] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 -- _deref_pbuc1=vbuxx + // [19] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll#11 -- _deref_pbuc1=vbuxx stx VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 // scroll_soft::@return // } @@ -2187,7 +2189,7 @@ scroll_bit: { // [23] phi from scroll_bit to scroll_bit::@2 [phi:scroll_bit->scroll_bit::@2] // scroll_bit::@2 // unsigned int c = next_char() - // [24] call next_char + // [24] call next_char jsr next_char // [25] next_char::return#0 = next_char::return#1 -- vbuaa=vbuxx txa @@ -2226,7 +2228,7 @@ scroll_bit: { // scroll_bit::@1 __b1: // scroll_hard() - // [30] call scroll_hard + // [30] call scroll_hard // [52] phi from scroll_bit::@1 to scroll_hard [phi:scroll_bit::@1->scroll_hard] jsr scroll_hard // scroll_bit::@7 @@ -2392,7 +2394,7 @@ scroll_hard: { lda SCREEN+$28*6+1,x sta SCREEN+$28*6,x // (SCREEN+40*7)[i]=(SCREEN+40*7)[i+1] - // [63] (SCREEN+(word)$28*7)[scroll_hard::i#2] = (SCREEN+(word)$28*7+1)[scroll_hard::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [63] (SCREEN+(unsigned int)$28*7)[scroll_hard::i#2] = (SCREEN+(unsigned int)$28*7+1)[scroll_hard::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda SCREEN+$28*7+1,x sta SCREEN+$28*7,x // for(char i=0;i!=39;i++) diff --git a/src/test/ref/examples/c64/scrollbig/scrollbig.sym b/src/test/ref/examples/c64/scrollbig/scrollbig.sym index 569f545a3..ffdd6a6d3 100644 --- a/src/test/ref/examples/c64/scrollbig/scrollbig.sym +++ b/src/test/ref/examples/c64/scrollbig/scrollbig.sym @@ -1,65 +1,65 @@ -constant byte* const CHARGEN = (byte*) 53248 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*) 1 -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -byte current_bit -byte current_bit#13 current_bit zp[1]:2 42.599999999999994 -byte current_bit#23 current_bit zp[1]:2 5616.833333333334 -byte current_bit#30 current_bit zp[1]:2 187.85714285714286 -byte current_bit#4 current_bit zp[1]:2 1501.5 -byte* current_chargen -byte* current_chargen#12 current_chargen zp[2]:3 42.599999999999994 -byte* current_chargen#21 current_chargen zp[2]:3 5672.444444444444 -byte* current_chargen#28 current_chargen zp[2]:3 146.11111111111111 -byte* current_chargen#4 current_chargen zp[2]:3 2002.0 -void fillscreen(byte* fillscreen::screen , byte fillscreen::fill) -byte* fillscreen::cursor -byte* fillscreen::cursor#1 cursor zp[2]:3 202.0 -byte* fillscreen::cursor#2 cursor zp[2]:3 134.66666666666666 -byte fillscreen::fill -constant byte fillscreen::fill#0 fill = $20 -byte* fillscreen::screen +__constant char * const CHARGEN = (char *) 53248 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *) 1 +__constant char *SCREEN = (char *) 1024 +__constant char *TEXT = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- " +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +char current_bit +char current_bit#13 // current_bit zp[1]:2 42.599999999999994 +char current_bit#23 // current_bit zp[1]:2 5616.833333333334 +char current_bit#30 // current_bit zp[1]:2 187.85714285714286 +char current_bit#4 // current_bit zp[1]:2 1501.5 +char *current_chargen +char *current_chargen#12 // current_chargen zp[2]:3 42.599999999999994 +char *current_chargen#21 // current_chargen zp[2]:3 5672.444444444444 +char *current_chargen#28 // current_chargen zp[2]:3 146.11111111111111 +char *current_chargen#4 // current_chargen zp[2]:3 2002.0 +void fillscreen(char *screen , char fill) +char *fillscreen::cursor +char *fillscreen::cursor#1 // cursor zp[2]:3 202.0 +char *fillscreen::cursor#2 // cursor zp[2]:3 134.66666666666666 +char fillscreen::fill +__constant char fillscreen::fill#0 = $20 // fill +char *fillscreen::screen void main() -byte next_char() -byte next_char::c -byte next_char::c#0 reg byte x 15001.5 -byte next_char::c#1 reg byte x 20002.0 -byte next_char::return -byte next_char::return#0 reg byte a 2002.0 -byte next_char::return#1 reg byte x 5250.75 -byte* nxt -byte* nxt#15 nxt zp[2]:7 42.599999999999994 -byte* nxt#19 nxt zp[2]:7 20002.0 -byte* nxt#20 nxt zp[2]:7 1571.7142857142858 -byte* nxt#33 nxt zp[2]:7 1776.4166666666665 -byte* nxt#37 nxt zp[2]:7 116.83333333333334 -byte scroll -byte scroll#11 reg byte x 42.599999999999994 -byte scroll#19 reg byte x 78.5 -byte scroll#2 reg byte x 151.5 +char next_char() +char next_char::c +char next_char::c#0 // reg byte x 15001.5 +char next_char::c#1 // reg byte x 20002.0 +char next_char::return +char next_char::return#0 // reg byte a 2002.0 +char next_char::return#1 // reg byte x 5250.75 +char *nxt +char *nxt#15 // nxt zp[2]:7 42.599999999999994 +char *nxt#19 // nxt zp[2]:7 20002.0 +char *nxt#20 // nxt zp[2]:7 1571.7142857142858 +char *nxt#33 // nxt zp[2]:7 1776.4166666666665 +char *nxt#37 // nxt zp[2]:7 116.83333333333334 +char scroll +char scroll#11 // reg byte x 42.599999999999994 +char scroll#19 // reg byte x 78.5 +char scroll#2 // reg byte x 151.5 void scroll_bit() -word~ scroll_bit::$7 zp[2]:3 2002.0 -byte~ scroll_bit::$9 reg byte a 200002.0 -byte scroll_bit::b -byte scroll_bit::b#2 reg byte a 100001.0 -byte scroll_bit::bits -byte scroll_bit::bits#0 reg byte a 200002.0 -word scroll_bit::c -word scroll_bit::c#0 c zp[2]:3 2002.0 -byte scroll_bit::r -byte scroll_bit::r#1 reg byte x 150001.5 -byte scroll_bit::r#2 reg byte x 37500.375 -byte* scroll_bit::sc -byte* scroll_bit::sc#1 sc zp[2]:5 66667.33333333333 -byte* scroll_bit::sc#2 sc zp[2]:5 42857.57142857143 +unsigned int scroll_bit::$7 // zp[2]:3 2002.0 +char scroll_bit::$9 // reg byte a 200002.0 +char scroll_bit::b +char scroll_bit::b#2 // reg byte a 100001.0 +char scroll_bit::bits +char scroll_bit::bits#0 // reg byte a 200002.0 +unsigned int scroll_bit::c +unsigned int scroll_bit::c#0 // c zp[2]:3 2002.0 +char scroll_bit::r +char scroll_bit::r#1 // reg byte x 150001.5 +char scroll_bit::r#2 // reg byte x 37500.375 +char *scroll_bit::sc +char *scroll_bit::sc#1 // sc zp[2]:5 66667.33333333333 +char *scroll_bit::sc#2 // sc zp[2]:5 42857.57142857143 void scroll_hard() -byte scroll_hard::i -byte scroll_hard::i#1 reg byte x 2000002.0 -byte scroll_hard::i#2 reg byte x 1900001.9000000006 +char scroll_hard::i +char scroll_hard::i#1 // reg byte x 2000002.0 +char scroll_hard::i#2 // reg byte x 1900001.9000000006 void scroll_soft() reg byte x [ scroll#19 scroll#11 scroll#2 ] diff --git a/src/test/ref/examples/c64/showlogo/showlogo.asm b/src/test/ref/examples/c64/showlogo/showlogo.asm index eecc7936f..d3c70b80f 100644 --- a/src/test/ref/examples/c64/showlogo/showlogo.asm +++ b/src/test/ref/examples/c64/showlogo/showlogo.asm @@ -90,7 +90,7 @@ main: { jmp __b2 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(2) str, byte register(X) c) +// void * memset(__zp(2) void *str, __register(X) char c, unsigned int num) memset: { .label end = 4 .label dst = 2 diff --git a/src/test/ref/examples/c64/showlogo/showlogo.cfg b/src/test/ref/examples/c64/showlogo/showlogo.cfg index 0ca791770..778ccdf06 100644 --- a/src/test/ref/examples/c64/showlogo/showlogo.cfg +++ b/src/test/ref/examples/c64/showlogo/showlogo.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK to:main::toD0181 main::toD0181: scope:[main] from main [4] phi() @@ -12,11 +12,11 @@ main::toD0181: scope:[main] from main main::@3: scope:[main] from main::toD0181 [5] *D018 = main::toD0181_return#0 [6] *D016 = VICII_MCM|VICII_CSEL - [7] call memset + [7] call memset to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call memset + [9] call memset to:main::@1 main::@1: scope:[main] from main::@1 main::@4 [10] main::ch#2 = phi( main::@1/main::ch#1, main::@4/0 ) @@ -29,14 +29,14 @@ main::@2: scope:[main] from main::@1 main::@2 kickasm() {{ inc $d020 }} to:main::@2 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main::@3 main::@4 [16] memset::c#4 = phi( main::@3/BLACK, main::@4/WHITE|8 ) - [16] memset::str#3 = phi( main::@3/(void*)SCREEN, main::@4/(void*)COLS ) + [16] memset::str#3 = phi( main::@3/(void *)SCREEN, main::@4/(void *)COLS ) to:memset::@1 memset::@1: scope:[memset] from memset - [17] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 - [18] memset::dst#4 = (byte*)memset::str#3 + [17] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 + [18] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [19] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/examples/c64/showlogo/showlogo.log b/src/test/ref/examples/c64/showlogo/showlogo.log index 2520fc861..e04cc41e9 100644 --- a/src/test/ref/examples/c64/showlogo/showlogo.log +++ b/src/test/ref/examples/c64/showlogo/showlogo.log @@ -1,11 +1,11 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$0 = call toD018(SCREEN, LOGO) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main::@4 main::@5 memset::c#5 = phi( main::@4/memset::c#0, main::@5/memset::c#1 ) memset::str#4 = phi( main::@4/memset::str#0, main::@5/memset::str#1 ) @@ -22,9 +22,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -50,21 +50,21 @@ memset::@return: scope:[memset] from memset::@1 void main() main: scope:[main] from __start::@1 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK main::toD0181_screen#0 = SCREEN main::toD0181_gfx#0 = LOGO to:main::toD0181 main::toD0181: scope:[main] from main main::toD0181_gfx#1 = phi( main/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -79,17 +79,17 @@ main::@4: scope:[main] from main::toD0181_@return main::$0 = main::toD0181_return#3 *D018 = main::$0 *D016 = VICII_MCM|VICII_CSEL - memset::str#0 = (void*)SCREEN + memset::str#0 = (void *)SCREEN memset::c#0 = BLACK memset::num#0 = $28*$19 - call memset + call memset memset::return#2 = memset::return#1 to:main::@5 main::@5: scope:[main] from main::@4 - memset::str#1 = (void*)COLS + memset::str#1 = (void *)COLS memset::c#1 = WHITE|8 memset::num#1 = $28*$19 - call memset + call memset memset::return#3 = memset::return#1 to:main::@6 main::@6: scope:[main] from main::@5 @@ -120,7 +120,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -129,94 +129,94 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte BLACK = 0 -constant byte* const COLS = (byte*)$d800 -constant byte* const D016 = (byte*)$d016 -constant byte* const D018 = (byte*)$d018 -constant const byte DARK_GREY = $b -constant byte* LOGO[6*$28*8] = kickasm {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) +__constant const char BLACK = 0 +__constant char * const COLS = (char *)$d800 +__constant char * const D016 = (char *)$d016 +__constant char * const D018 = (char *)$d018 +__constant const char DARK_GREY = $b +__constant char LOGO[6*$28*8] = kickasm {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }} -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 = $22 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 = $23 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte* SCREEN = (byte*)$400 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 -constant const byte VICII_CSEL = 8 -constant const byte VICII_MCM = $10 -constant const byte WHITE = 1 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 = $22 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 = $23 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char *SCREEN = (char *)$400 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 +__constant const char VICII_CSEL = 8 +__constant const char VICII_MCM = $10 +__constant const char WHITE = 1 void __start() void main() -byte~ main::$0 -bool~ main::$3 -byte*~ main::$7 -byte main::ch -byte main::ch#0 -byte main::ch#1 -byte main::ch#2 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 +char main::$0 +bool main::$3 +char *main::$7 +char main::ch +char main::ch#0 +char main::ch#1 +char main::ch#2 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) $3fff in main::toD0181_$0 = main::toD0181_$7 & $3fff @@ -234,16 +234,16 @@ Adding number conversion cast (unumber) 8 in memset::c#1 = ((unumber)) WHITE|8 Adding number conversion cast (unumber) $28*$19 in memset::num#1 = $28*$19 Adding number conversion cast (unumber) $3e7 in main::$7 = SCREEN + $3e7 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast memset::num#0 = (unumber)$28*$19 Inlining cast memset::c#1 = (unumber)WHITE|(unumber)8 Inlining cast memset::num#1 = (unumber)$28*$19 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53270 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53270 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $3fff Simplifying constant integer cast 4 @@ -253,19 +253,19 @@ Simplifying constant integer cast WHITE|(unumber)8 Simplifying constant integer cast 8 Simplifying constant integer cast $3e7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (word) $3e7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned int) $3e7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 @@ -290,25 +290,25 @@ Simple Condition memset::$1 [2] if(memset::num#2<=0) goto memset::@1 Simple Condition memset::$3 [9] if(memset::dst#2!=memset::end#0) goto memset::@4 Simple Condition main::$3 [44] if(main::ch#1!=rangelast(0,$ef)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [29] memset::str#0 = (void*)SCREEN +Constant right-side identified [29] memset::str#0 = (void *)SCREEN Constant right-side identified [31] memset::num#0 = (unumber)$28*$19 Constant right-side identified [36] memset::num#1 = (unumber)$28*$19 Constant right-side identified [46] main::$7 = SCREEN + $3e7 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_screen#0 = SCREEN Constant main::toD0181_gfx#0 = LOGO -Constant memset::str#0 = (void*)SCREEN +Constant memset::str#0 = (void *)SCREEN Constant memset::c#0 = BLACK Constant memset::num#0 = (unumber)$28*$19 -Constant memset::str#1 = (void*)COLS +Constant memset::str#1 = (void *)COLS Constant memset::c#1 = WHITE|8 Constant memset::num#1 = (unumber)$28*$19 Constant main::ch#0 = 0 Constant main::$7 = SCREEN+$3e7 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [23] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [23] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [45] if(true) goto main::@3 Successful SSA optimization Pass2ConstantIfs @@ -330,13 +330,13 @@ Adding number conversion cast (unumber) $f0 in [28] if(main::ch#1!=$f0) goto mai Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $f0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $f0 +Finalized unsigned number type (char) $f0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [14] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [17] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [17] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [14] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [16] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -354,8 +354,8 @@ Constant right-side identified [14] main::toD0181_return#0 = main::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [2] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [4] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings memset::str#0 Inlining constant with var siblings memset::c#0 @@ -366,32 +366,32 @@ Inlining constant with var siblings memset::num#1 Inlining constant with var siblings main::ch#0 Constant inlined main::toD0181_screen#0 = SCREEN Constant inlined main::toD0181_gfx#0 = LOGO -Constant inlined memset::str#1 = (void*)COLS -Constant inlined memset::str#0 = (void*)SCREEN -Constant inlined main::toD0181_$7 = (word)SCREEN -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff -Constant inlined memset::num#1 = (word)$28*$19 -Constant inlined memset::num#0 = (word)$28*$19 -Constant inlined main::toD0181_$5 = byte1 (word)LOGO/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)LOGO/4 -Constant inlined main::toD0181_$3 = byte1 (word)LOGO +Constant inlined memset::str#1 = (void *)COLS +Constant inlined memset::str#0 = (void *)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff +Constant inlined memset::num#1 = (unsigned int)$28*$19 +Constant inlined memset::num#0 = (unsigned int)$28*$19 +Constant inlined main::toD0181_$5 = byte1 (unsigned int)LOGO/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)LOGO/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)LOGO Constant inlined memset::c#0 = BLACK Constant inlined memset::c#1 = WHITE|8 Constant inlined main::$7 = SCREEN+$3e7 Constant inlined main::ch#0 = 0 Successful SSA optimization Pass2ConstantInlining -Identical Phi Values memset::num#2 (word)$28*$19 +Identical Phi Values memset::num#2 (unsigned int)$28*$19 Successful SSA optimization Pass2IdenticalPhiElimination -if() condition always false - eliminating [1] if((word)$28*$19<=0) goto memset::@1 +if() condition always false - eliminating [1] if((unsigned int)$28*$19<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (word) $2000 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned int) $2000 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@7(between main::@1 and main::@1) Adding NOP phi() at start of main::toD0181 @@ -425,10 +425,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY - [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) - [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY + [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) + [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK to:main::toD0181 main::toD0181: scope:[main] from main [4] phi() @@ -436,11 +436,11 @@ main::toD0181: scope:[main] from main main::@3: scope:[main] from main::toD0181 [5] *D018 = main::toD0181_return#0 [6] *D016 = VICII_MCM|VICII_CSEL - [7] call memset + [7] call memset to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call memset + [9] call memset to:main::@1 main::@1: scope:[main] from main::@1 main::@4 [10] main::ch#2 = phi( main::@1/main::ch#1, main::@4/0 ) @@ -453,14 +453,14 @@ main::@2: scope:[main] from main::@1 main::@2 kickasm() {{ inc $d020 }} to:main::@2 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main::@3 main::@4 [16] memset::c#4 = phi( main::@3/BLACK, main::@4/WHITE|8 ) - [16] memset::str#3 = phi( main::@3/(void*)SCREEN, main::@4/(void*)COLS ) + [16] memset::str#3 = phi( main::@3/(void *)SCREEN, main::@4/(void *)COLS ) to:memset::@1 memset::@1: scope:[memset] from memset - [17] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 - [18] memset::dst#4 = (byte*)memset::str#3 + [17] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 + [18] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [19] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -477,25 +477,25 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::ch -byte main::ch#1 16.5 -byte main::ch#2 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 138.33333333333331 -byte* memset::dst#4 22.0 -byte* memset::end -byte* memset::end#0 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 +char main::ch +char main::ch#1 // 16.5 +char main::ch#2 // 22.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 14.428571428571429 +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 138.33333333333331 +char *memset::dst#4 // 22.0 +char *memset::end +char *memset::end#0 // 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 Initial phi equivalence classes [ main::ch#2 main::ch#1 ] @@ -515,26 +515,26 @@ Allocated zp[1]:5 [ memset::c#4 ] Allocated zp[2]:6 [ memset::dst#2 memset::dst#4 memset::dst#1 ] Allocated zp[2]:8 [ memset::end#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *D016 = VICII_MCM|VICII_CSEL [ ] ( [ ] { } ) always clobbers reg byte a -Statement [17] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:9 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [17] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:9 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ memset::c#4 ] -Statement [18] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [18] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [20] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [22] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:5 [ memset::c#4 ] -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *D016 = VICII_MCM|VICII_CSEL [ ] ( [ ] { } ) always clobbers reg byte a -Statement [17] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:9 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [18] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [17] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 [ memset::str#3 memset::c#4 memset::end#0 ] ( memset:7 [ memset::str#3 memset::c#4 memset::end#0 ] { } memset:9 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [18] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#4 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [20] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [22] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( memset:7 [ memset::c#4 memset::end#0 memset::dst#2 ] { } memset:9 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::ch#2 main::ch#1 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -610,16 +610,16 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>LOGO)/4&$f - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) -- _deref_pbuc1=_deref_pbuc2 lda VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK -- _deref_pbuc1=vbuc2 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 // [4] phi from main to main::toD0181 [phi:main->main::toD0181] @@ -636,12 +636,12 @@ main: { // [6] *D016 = VICII_MCM|VICII_CSEL -- _deref_pbuc1=vbuc2 lda #VICII_MCM|VICII_CSEL sta D016 - // [7] call memset + // [7] call memset // [16] phi from main::@3 to memset [phi:main::@3->memset] memset_from___b3: // [16] phi memset::c#4 = BLACK [phi:main::@3->memset#0] -- vbuxx=vbuc1 ldx #BLACK - // [16] phi memset::str#3 = (void*)SCREEN [phi:main::@3->memset#1] -- pvoz1=pvoc1 + // [16] phi memset::str#3 = (void *)SCREEN [phi:main::@3->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -652,12 +652,12 @@ main: { jmp __b4 // main::@4 __b4: - // [9] call memset + // [9] call memset // [16] phi from main::@4 to memset [phi:main::@4->memset] memset_from___b4: // [16] phi memset::c#4 = WHITE|8 [phi:main::@4->memset#0] -- vbuxx=vbuc1 ldx #WHITE|8 - // [16] phi memset::str#3 = (void*)COLS [phi:main::@4->memset#1] -- pvoz1=pvoc1 + // [16] phi memset::str#3 = (void *)COLS [phi:main::@4->memset#1] -- pvoz1=pvoc1 lda #COLS @@ -693,7 +693,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(2) str, byte register(X) c) +// void * memset(__zp(2) void *str, __register(X) char c, unsigned int num) memset: { .label end = 4 .label dst = 2 @@ -701,7 +701,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [17] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 + // [17] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$28*$19 @@ -709,7 +709,7 @@ memset: { lda.z str+1 adc #>$28*$19 sta.z end+1 - // [18] memset::dst#4 = (byte*)memset::str#3 + // [18] memset::dst#4 = (char *)memset::str#3 // [19] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -786,47 +786,47 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte BLACK = 0 -constant byte* const COLS = (byte*) 55296 -constant byte* const D016 = (byte*) 53270 -constant byte* const D018 = (byte*) 53272 -constant const byte DARK_GREY = $b -constant byte* LOGO[6*$28*8] = kickasm {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) +__constant const char BLACK = 0 +__constant char * const COLS = (char *) 55296 +__constant char * const D016 = (char *) 53270 +__constant char * const D018 = (char *) 53272 +__constant const char DARK_GREY = $b +__constant char LOGO[6*$28*8] = kickasm {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }} -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 = $22 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 = $23 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte* SCREEN = (byte*) 1024 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_CSEL = 8 -constant const byte VICII_MCM = $10 -constant const byte WHITE = 1 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 = $22 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 = $23 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char *SCREEN = (char *) 1024 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_CSEL = 8 +__constant const char VICII_MCM = $10 +__constant const char WHITE = 1 void main() -byte main::ch -byte main::ch#1 reg byte x 16.5 -byte main::ch#2 reg byte x 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)LOGO/4&$f -byte* main::toD0181_screen -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 202.0 -byte* memset::dst#2 dst zp[2]:2 138.33333333333331 -byte* memset::dst#4 dst zp[2]:2 22.0 -byte* memset::end -byte* memset::end#0 end zp[2]:4 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:2 +char main::ch +char main::ch#1 // reg byte x 16.5 +char main::ch#2 // reg byte x 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)LOGO/4&$f // toD0181_return +char *main::toD0181_screen +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 14.428571428571429 +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 202.0 +char *memset::dst#2 // dst zp[2]:2 138.33333333333331 +char *memset::dst#4 // dst zp[2]:2 22.0 +char *memset::end +char *memset::end#0 // end zp[2]:4 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:2 reg byte x [ main::ch#2 main::ch#1 ] zp[2]:2 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] @@ -886,18 +886,18 @@ Score: 3324 main: { .const toD0181_return = (>(SCREEN&$3fff)*4)|(>LOGO)/4&$f // VICII->BORDER_COLOR = WHITE - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // VICII->BG_COLOR1 = DARK_GREY - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY -- _deref_pbuc1=vbuc2 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) = DARK_GREY -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 // VICII->BG_COLOR = VICII->BG_COLOR1 = DARK_GREY - // [2] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1) -- _deref_pbuc1=_deref_pbuc2 sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR // VICII->BG_COLOR2 = BLACK - // [3] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK -- _deref_pbuc1=vbuc2 + // [3] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2) = BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 // [4] phi from main to main::toD0181 [phi:main->main::toD0181] @@ -912,11 +912,11 @@ main: { lda #VICII_MCM|VICII_CSEL sta D016 // memset(SCREEN, BLACK, 40*25) - // [7] call memset + // [7] call memset // [16] phi from main::@3 to memset [phi:main::@3->memset] // [16] phi memset::c#4 = BLACK [phi:main::@3->memset#0] -- vbuxx=vbuc1 ldx #BLACK - // [16] phi memset::str#3 = (void*)SCREEN [phi:main::@3->memset#1] -- pvoz1=pvoc1 + // [16] phi memset::str#3 = (void *)SCREEN [phi:main::@3->memset#1] -- pvoz1=pvoc1 lda #SCREEN @@ -925,11 +925,11 @@ main: { // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // memset(COLS, WHITE|8, 40*25) - // [9] call memset + // [9] call memset // [16] phi from main::@4 to memset [phi:main::@4->memset] // [16] phi memset::c#4 = WHITE|8 [phi:main::@4->memset#0] -- vbuxx=vbuc1 ldx #WHITE|8 - // [16] phi memset::str#3 = (void*)COLS [phi:main::@4->memset#1] -- pvoz1=pvoc1 + // [16] phi memset::str#3 = (void *)COLS [phi:main::@4->memset#1] -- pvoz1=pvoc1 lda #COLS @@ -964,14 +964,14 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(2) str, byte register(X) c) +// void * memset(__zp(2) void *str, __register(X) char c, unsigned int num) memset: { .label end = 4 .label dst = 2 .label str = 2 // memset::@1 // char* end = (char*)str + num - // [17] memset::end#0 = (byte*)memset::str#3 + (word)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 + // [17] memset::end#0 = (char *)memset::str#3 + (unsigned int)$28*$19 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$28*$19 @@ -979,7 +979,7 @@ memset: { lda.z str+1 adc #>$28*$19 sta.z end+1 - // [18] memset::dst#4 = (byte*)memset::str#3 + // [18] memset::dst#4 = (char *)memset::str#3 // [19] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [19] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/examples/c64/showlogo/showlogo.sym b/src/test/ref/examples/c64/showlogo/showlogo.sym index d3ac8c78c..377941493 100644 --- a/src/test/ref/examples/c64/showlogo/showlogo.sym +++ b/src/test/ref/examples/c64/showlogo/showlogo.sym @@ -1,44 +1,44 @@ -constant const byte BLACK = 0 -constant byte* const COLS = (byte*) 55296 -constant byte* const D016 = (byte*) 53270 -constant byte* const D018 = (byte*) 53272 -constant const byte DARK_GREY = $b -constant byte* LOGO[6*$28*8] = kickasm {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) +__constant const char BLACK = 0 +__constant char * const COLS = (char *) 55296 +__constant char * const D016 = (char *) 53270 +__constant char * const D018 = (char *) 53272 +__constant const char DARK_GREY = $b +__constant char LOGO[6*$28*8] = kickasm {{ .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) }} -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 = $22 -constant byte OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 = $23 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte* SCREEN = (byte*) 1024 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant const byte VICII_CSEL = 8 -constant const byte VICII_MCM = $10 -constant const byte WHITE = 1 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR1 = $22 +__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR2 = $23 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char *SCREEN = (char *) 1024 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant const char VICII_CSEL = 8 +__constant const char VICII_MCM = $10 +__constant const char WHITE = 1 void main() -byte main::ch -byte main::ch#1 reg byte x 16.5 -byte main::ch#2 reg byte x 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)LOGO/4&$f -byte* main::toD0181_screen -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 202.0 -byte* memset::dst#2 dst zp[2]:2 138.33333333333331 -byte* memset::dst#4 dst zp[2]:2 22.0 -byte* memset::end -byte* memset::end#0 end zp[2]:4 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:2 +char main::ch +char main::ch#1 // reg byte x 16.5 +char main::ch#2 // reg byte x 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)LOGO/4&$f // toD0181_return +char *main::toD0181_screen +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 14.428571428571429 +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 202.0 +char *memset::dst#2 // dst zp[2]:2 138.33333333333331 +char *memset::dst#4 // dst zp[2]:2 22.0 +char *memset::end +char *memset::end#0 // end zp[2]:4 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:2 reg byte x [ main::ch#2 main::ch#1 ] zp[2]:2 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] diff --git a/src/test/ref/examples/c64/zpcode/zpcode.log b/src/test/ref/examples/c64/zpcode/zpcode.log index 86a3c5e45..fcaba9865 100644 --- a/src/test/ref/examples/c64/zpcode/zpcode.log +++ b/src/test/ref/examples/c64/zpcode/zpcode.log @@ -1,7 +1,7 @@ Loading link script "zpcode.ld" Resolved forward reference zpLoop to void zpLoop() Resolved forward reference zpCodeData to zpCodeData -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -28,10 +28,10 @@ main::@4: scope:[main] from main::@3 main::@4 if(main::$1) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@4 - call loop + call loop to:main::@6 main::@6: scope:[main] from main::@5 - call zpLoop + call zpLoop to:main::@7 main::@7: scope:[main] from main::@6 *BG_COLOR = 0 @@ -76,7 +76,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -85,32 +85,32 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BG_COLOR = (byte*)$d020 -constant byte* RASTER = (byte*)$d012 +__constant char *BG_COLOR = (char *)$d020 +__constant char *RASTER = (char *)$d012 void __start() void loop() -bool~ loop::$1 -byte loop::i -byte loop::i#0 -byte loop::i#1 -byte loop::i#2 +bool loop::$1 +char loop::i +char loop::i#0 +char loop::i#1 +char loop::i#2 void main() -bool~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* main::zpCode = (byte*)&zpLoop -constant byte* zpCodeData[] = kickasm {{ .segmentout [segments="ZpCode"] +bool main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char *main::zpCode = (char *)&zpLoop +__constant char zpCodeData[] = kickasm {{ .segmentout [segments="ZpCode"] }} void zpLoop() -bool~ zpLoop::$1 -byte zpLoop::i -byte zpLoop::i#0 -byte zpLoop::i#1 -byte zpLoop::i#2 +bool zpLoop::$1 +char zpLoop::i +char zpLoop::i#0 +char zpLoop::i#1 +char zpLoop::i#2 Adding number conversion cast (unumber) $14 in main::$0 = main::i#2 < $14 Adding number conversion cast (unumber) $ff in main::$1 = *RASTER != $ff @@ -118,15 +118,15 @@ Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BG_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast $14 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -160,8 +160,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings loop::i#0 @@ -226,11 +226,11 @@ main::@3: scope:[main] from main::@1 main::@3 main::@6 to:main::@4 main::@4: scope:[main] from main::@3 [10] phi() - [11] call loop + [11] call loop to:main::@5 main::@5: scope:[main] from main::@4 [12] phi() - [13] call zpLoop + [13] call zpLoop to:main::@6 main::@6: scope:[main] from main::@5 [14] *BG_COLOR = 0 @@ -258,17 +258,17 @@ null depth in calling loop Loop head: main::@3 tails: main::@6 blocks: main::@6 VARIABLE REGISTER WEIGHTS void loop() -byte loop::i -byte loop::i#1 15001.5 -byte loop::i#2 10001.0 +char loop::i +char loop::i#1 // 15001.5 +char loop::i#2 // 10001.0 void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 void zpLoop() -byte zpLoop::i -byte zpLoop::i#1 1501.5 -byte zpLoop::i#2 1001.0 +char zpLoop::i +char zpLoop::i#1 // 1501.5 +char zpLoop::i#2 // 1001.0 Initial phi equivalence classes [ zpLoop::i#2 zpLoop::i#1 ] @@ -380,7 +380,7 @@ main: { jmp __b4 // main::@4 __b4: - // [11] call loop + // [11] call loop // Call code in normal memory // [17] phi from main::@4 to loop [phi:main::@4->loop] loop_from___b4: @@ -390,7 +390,7 @@ main: { jmp __b5 // main::@5 __b5: - // [13] call zpLoop + // [13] call zpLoop // Call code on zeropage // [0] phi from main::@5 to zpLoop [phi:main::@5->zpLoop] zpLoop_from___b5: @@ -483,23 +483,23 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* BG_COLOR = (byte*) 53280 -constant byte* RASTER = (byte*) 53266 +__constant char *BG_COLOR = (char *) 53280 +__constant char *RASTER = (char *) 53266 void loop() -byte loop::i -byte loop::i#1 reg byte x 15001.5 -byte loop::i#2 reg byte x 10001.0 +char loop::i +char loop::i#1 // reg byte x 15001.5 +char loop::i#2 // reg byte x 10001.0 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* main::zpCode = (byte*)&zpLoop -constant byte* zpCodeData[] = kickasm {{ .segmentout [segments="ZpCode"] +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char *main::zpCode = (char *)&zpLoop +__constant char zpCodeData[] = kickasm {{ .segmentout [segments="ZpCode"] }} void zpLoop() -byte zpLoop::i -byte zpLoop::i#1 reg byte x 1501.5 -byte zpLoop::i#2 reg byte x 1001.0 +char zpLoop::i +char zpLoop::i#1 // reg byte x 1501.5 +char zpLoop::i#2 // reg byte x 1001.0 reg byte x [ zpLoop::i#2 zpLoop::i#1 ] reg byte x [ main::i#2 main::i#1 ] @@ -579,14 +579,14 @@ main: { // [10] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // loop() - // [11] call loop + // [11] call loop // Call code in normal memory // [17] phi from main::@4 to loop [phi:main::@4->loop] jsr loop // [12] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // zpLoop() - // [13] call zpLoop + // [13] call zpLoop // Call code on zeropage // [0] phi from main::@5 to zpLoop [phi:main::@5->zpLoop] jsr zpLoop diff --git a/src/test/ref/examples/c64/zpcode/zpcode.sym b/src/test/ref/examples/c64/zpcode/zpcode.sym index 180cbf3b0..ee1277e56 100644 --- a/src/test/ref/examples/c64/zpcode/zpcode.sym +++ b/src/test/ref/examples/c64/zpcode/zpcode.sym @@ -1,20 +1,20 @@ -constant byte* BG_COLOR = (byte*) 53280 -constant byte* RASTER = (byte*) 53266 +__constant char *BG_COLOR = (char *) 53280 +__constant char *RASTER = (char *) 53266 void loop() -byte loop::i -byte loop::i#1 reg byte x 15001.5 -byte loop::i#2 reg byte x 10001.0 +char loop::i +char loop::i#1 // reg byte x 15001.5 +char loop::i#2 // reg byte x 10001.0 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* main::zpCode = (byte*)&zpLoop -constant byte* zpCodeData[] = kickasm {{ .segmentout [segments="ZpCode"] +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char *main::zpCode = (char *)&zpLoop +__constant char zpCodeData[] = kickasm {{ .segmentout [segments="ZpCode"] }} void zpLoop() -byte zpLoop::i -byte zpLoop::i#1 reg byte x 1501.5 -byte zpLoop::i#2 reg byte x 1001.0 +char zpLoop::i +char zpLoop::i#1 // reg byte x 1501.5 +char zpLoop::i#2 // reg byte x 1001.0 reg byte x [ zpLoop::i#2 zpLoop::i#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.asm b/src/test/ref/examples/cx16/cx16-rasterbars.asm index 55efa175b..373163d2f 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.asm +++ b/src/test/ref/examples/cx16/cx16-rasterbars.asm @@ -11,7 +11,7 @@ :BasicUpstart(__start) .const VERA_DCSEL = 2 .const VERA_LINE = 2 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL @@ -167,7 +167,7 @@ irq_line: { ldy #0 __b16: // for(char i=0;i=(byte)$140/4+1) goto irq_line::@1 + [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 to:irq_line::@12 irq_line::@12: scope:[irq_line] from irq_line::@11 [22] hstart = ++ hstart @@ -48,7 +48,7 @@ irq_line::@12: scope:[irq_line] from irq_line::@11 to:irq_line::@1 irq_line::@1: scope:[irq_line] from irq_line::@11 irq_line::@12 irq_line::@4 [26] phi() - [27] call memset + [27] call memset to:irq_line::@19 irq_line::@19: scope:[irq_line] from irq_line::@1 [28] irq_line::idx#0 = sin_idx @@ -70,7 +70,7 @@ irq_line::@14: scope:[irq_line] from irq_line::@13 to:irq_line::@16 irq_line::@16: scope:[irq_line] from irq_line::@14 irq_line::@17 [35] irq_line::i2#2 = phi( irq_line::@14/0, irq_line::@17/irq_line::i2#1 ) - [36] if(irq_line::i2#2<$20*SIZEOF_BYTE) goto irq_line::@17 + [36] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 to:irq_line::@18 irq_line::@18: scope:[irq_line] from irq_line::@16 [37] irq_line::idx#1 = irq_line::idx#2 + $d @@ -124,12 +124,12 @@ main::@1: scope:[main] from main::@1 main::CLI1 [57] phi() to:main::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from irq_line::@1 [58] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [59] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [59] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [60] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.log b/src/test/ref/examples/cx16/cx16-rasterbars.log index c33ef33e2..2903e216f 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.log +++ b/src/test/ref/examples/cx16/cx16-rasterbars.log @@ -6,15 +6,15 @@ Setting inferred volatile on symbol affected by address-of: load::address in asm Setting inferred volatile on symbol affected by address-of: load::verify in asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } Setting inferred volatile on symbol affected by address-of: load::status in asm { ldxaddress ldyaddress+1 ldaverify jsr$ffd5 bcserror lda#$ff error: stastatus } Setting inferred volatile on symbol affected by address-of: getin::ch in asm { jsr$ffe4 stach } -Inlined call call SEI -Inlined call call CLI -Inlined call call __init +Inlined call call SEI +Inlined call call CLI +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement irq_line::$10 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from irq_line::@1 memset::c#4 = phi( irq_line::@1/memset::c#0 ) memset::str#3 = phi( irq_line::@1/memset::str#0 ) @@ -31,9 +31,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -137,10 +137,10 @@ irq_line::@10: scope:[irq_line] from irq_line::@8 to:irq_line::@2 irq_line::@1: scope:[irq_line] from irq_line::@11 irq_line::@12 irq_line::@4 irq_line::$2 = sizeof BARS - memset::str#0 = (void*)BARS + memset::str#0 = (void *)BARS memset::c#0 = 0 memset::num#0 = irq_line::$2 - call memset + call memset memset::return#2 = memset::return#1 to:irq_line::@19 irq_line::@19: scope:[irq_line] from irq_line::@1 @@ -206,15 +206,15 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - hstart = (byte)0/4 - hstop = (byte)$280/4 - vstart = (byte)0/2 - vstop = (byte)$1e0/2 + hstart = (char)0/4 + hstop = (char)$280/4 + vstart = (char)0/2 + vstop = (char)$1e0/2 cnt = 2 sin_idx = $64 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -223,124 +223,124 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } -constant byte* BARS[$e6] = { fill( $e6, 0) } -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) +__constant char BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } +__constant char BARS[$e6] = { fill( $e6, 0) } +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) }} -constant byte* const VERA_CTRL = (byte*)$9f25 -constant const byte VERA_DCSEL = 2 -constant byte* const VERA_DC_BORDER = (byte*)$9f2c -constant byte* const VERA_DC_HSTART = (byte*)$9f29 -constant byte* const VERA_DC_HSTOP = (byte*)$9f2a -constant byte* const VERA_DC_VSTART = (byte*)$9f2b -constant byte* const VERA_DC_VSTOP = (byte*)$9f2c -constant byte* const VERA_IEN = (byte*)$9f26 -constant byte* const VERA_IRQLINE_L = (byte*)$9f28 -constant byte* const VERA_ISR = (byte*)$9f27 -constant const byte VERA_LINE = 2 +__constant char * const VERA_CTRL = (char *)$9f25 +__constant const char VERA_DCSEL = 2 +__constant char * const VERA_DC_BORDER = (char *)$9f2c +__constant char * const VERA_DC_HSTART = (char *)$9f29 +__constant char * const VERA_DC_HSTOP = (char *)$9f2a +__constant char * const VERA_DC_VSTART = (char *)$9f2b +__constant char * const VERA_DC_VSTOP = (char *)$9f2c +__constant char * const VERA_IEN = (char *)$9f26 +__constant char * const VERA_IRQLINE_L = (char *)$9f28 +__constant char * const VERA_ISR = (char *)$9f27 +__constant const char VERA_LINE = 2 void __start() -volatile byte cnt loadstore -volatile byte hstart loadstore -volatile byte hstop loadstore +__loadstore volatile char cnt +__loadstore volatile char hstart +__loadstore volatile char hstop __interrupt(rom_min_cx16) void irq_line() -bool~ irq_line::$0 -bool~ irq_line::$1 -word~ irq_line::$11 -bool~ irq_line::$12 -word~ irq_line::$2 -bool~ irq_line::$4 -bool~ irq_line::$5 -bool~ irq_line::$6 -bool~ irq_line::$7 -bool~ irq_line::$8 -bool~ irq_line::$9 -byte irq_line::b -byte irq_line::b#0 -byte irq_line::b#1 -byte irq_line::b#2 -byte irq_line::b#3 -byte irq_line::b#4 -byte irq_line::b#5 -byte irq_line::b#6 -byte* irq_line::bar -byte* irq_line::bar#0 -byte* irq_line::bar#1 -byte* irq_line::bar#2 -byte irq_line::i -byte irq_line::i#0 -byte irq_line::i#1 -byte irq_line::i#2 -byte irq_line::i#3 -byte irq_line::i1 -byte irq_line::i1#0 -byte irq_line::i1#1 -byte irq_line::i1#2 -byte irq_line::i1#3 -byte irq_line::i2 -byte irq_line::i2#0 -byte irq_line::i2#1 -byte irq_line::i2#2 -byte irq_line::i2#3 -byte irq_line::idx -byte irq_line::idx#0 -byte irq_line::idx#1 -byte irq_line::idx#2 -byte irq_line::idx#3 -byte irq_line::idx#4 -byte irq_line::idx#5 -byte irq_line::idx#6 -byte irq_line::l -byte irq_line::l#0 -byte irq_line::l#1 -byte irq_line::l#2 -byte irq_line::l#3 -byte irq_line::l#4 -byte irq_line::l#5 -byte irq_line::l#6 -byte irq_line::l#7 -byte irq_line::l#8 -byte irq_line::l#9 +bool irq_line::$0 +bool irq_line::$1 +unsigned int irq_line::$11 +bool irq_line::$12 +unsigned int irq_line::$2 +bool irq_line::$4 +bool irq_line::$5 +bool irq_line::$6 +bool irq_line::$7 +bool irq_line::$8 +bool irq_line::$9 +char irq_line::b +char irq_line::b#0 +char irq_line::b#1 +char irq_line::b#2 +char irq_line::b#3 +char irq_line::b#4 +char irq_line::b#5 +char irq_line::b#6 +char *irq_line::bar +char *irq_line::bar#0 +char *irq_line::bar#1 +char *irq_line::bar#2 +char irq_line::i +char irq_line::i#0 +char irq_line::i#1 +char irq_line::i#2 +char irq_line::i#3 +char irq_line::i1 +char irq_line::i1#0 +char irq_line::i1#1 +char irq_line::i1#2 +char irq_line::i1#3 +char irq_line::i2 +char irq_line::i2#0 +char irq_line::i2#1 +char irq_line::i2#2 +char irq_line::i2#3 +char irq_line::idx +char irq_line::idx#0 +char irq_line::idx#1 +char irq_line::idx#2 +char irq_line::idx#3 +char irq_line::idx#4 +char irq_line::idx#5 +char irq_line::idx#6 +char irq_line::l +char irq_line::l#0 +char irq_line::l#1 +char irq_line::l#2 +char irq_line::l#3 +char irq_line::l#4 +char irq_line::l#5 +char irq_line::l#6 +char irq_line::l#7 +char irq_line::l#8 +char irq_line::l#9 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -volatile byte sin_idx loadstore -volatile byte vstart loadstore -volatile byte vstop loadstore +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +__loadstore volatile char sin_idx +__loadstore volatile char vstart +__loadstore volatile char vstop Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Adding number conversion cast (unumber) 5 in *VERA_IRQLINE_L = 5 @@ -355,22 +355,22 @@ Adding number conversion cast (unumber) $140/4 in irq_line::$7 = hstart <= $140/ Adding number conversion cast (unumber) 8 in irq_line::$9 = irq_line::b#2 < 8 Adding number conversion cast (unumber) $d in irq_line::idx#1 = irq_line::idx#3 + $d Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast *VERA_IRQLINE_L = (unumber)5 Inlining cast *VERA_DC_BORDER = (unumber)0 Inlining cast memset::c#0 = (unumber)0 Inlining cast cnt = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 40741 -Simplifying constant pointer cast (byte*) 40742 -Simplifying constant pointer cast (byte*) 40743 -Simplifying constant pointer cast (byte*) 40744 -Simplifying constant pointer cast (byte*) 40748 -Simplifying constant pointer cast (byte*) 40745 -Simplifying constant pointer cast (byte*) 40746 -Simplifying constant pointer cast (byte*) 40747 -Simplifying constant pointer cast (byte*) 40748 -Simplifying constant pointer cast (void()**) 788 +Simplifying constant pointer cast (char *) 40741 +Simplifying constant pointer cast (char *) 40742 +Simplifying constant pointer cast (char *) 40743 +Simplifying constant pointer cast (char *) 40744 +Simplifying constant pointer cast (char *) 40748 +Simplifying constant pointer cast (char *) 40745 +Simplifying constant pointer cast (char *) 40746 +Simplifying constant pointer cast (char *) 40747 +Simplifying constant pointer cast (char *) 40748 +Simplifying constant pointer cast (void (**)()) 788 Simplifying constant integer cast 0 Simplifying constant integer cast 5 Simplifying constant integer cast $e6 @@ -383,21 +383,21 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 8 Simplifying constant integer cast $d Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $e6 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $d +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $e6 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 Inversing boolean not [40] irq_line::$1 = cnt != 0 from [39] irq_line::$0 = cnt == 0 -Inversing boolean not [69] irq_line::$8 = hstart > (byte)$140/4 from [68] irq_line::$7 = hstart <= (byte)$140/4 +Inversing boolean not [69] irq_line::$8 = hstart > (char)$140/4 from [68] irq_line::$7 = hstart <= (char)$140/4 Successful SSA optimization Pass2UnaryNotSimplification Alias memset::return#0 = memset::str#1 memset::return#3 memset::return#1 Alias memset::str#2 = memset::str#3 @@ -440,7 +440,7 @@ Simple Condition irq_line::$4 [28] if(irq_line::l#2!=$e6) goto irq_line::@3 Simple Condition irq_line::$1 [33] if(cnt!=0) goto irq_line::@1 Simple Condition irq_line::$5 [36] if(irq_line::i#2<$18) goto irq_line::@6 Simple Condition irq_line::$6 [42] if(irq_line::i1#2<$17) goto irq_line::@9 -Simple Condition irq_line::$8 [56] if(hstart>(byte)$140/4) goto irq_line::@1 +Simple Condition irq_line::$8 [56] if(hstart>(char)$140/4) goto irq_line::@1 Simple Condition irq_line::$9 [63] if(irq_line::b#2<8) goto irq_line::@14 Simple Condition irq_line::$12 [70] if(irq_line::i2#2(byte)$140/4) goto irq_line::@1 -Simplifying constant evaluating to zero (byte)0/4 in [76] hstart = (byte)0/4 -Simplifying constant evaluating to zero (byte)0/2 in [78] vstart = (byte)0/2 +Rewriting conditional comparison [56] if(hstart>(char)$140/4) goto irq_line::@1 +Simplifying constant evaluating to zero (char)0/4 in [76] hstart = (char)0/4 +Simplifying constant evaluating to zero (char)0/2 in [78] vstart = (char)0/2 Successful SSA optimization PassNSimplifyConstantZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Eliminating unused constant memset::return#2 Successful SSA optimization PassNEliminateUnusedVars -Adding number conversion cast (unumber) (byte)$140/4+1 in if(hstart>=(byte)$140/4+1) goto irq_line::@1 -Adding number conversion cast (unumber) 1 in if(hstart>=(unumber)(byte)$140/4+1) goto irq_line::@1 +Adding number conversion cast (unumber) (char)$140/4+1 in if(hstart>=(char)$140/4+1) goto irq_line::@1 +Adding number conversion cast (unumber) 1 in if(hstart>=(unumber)(char)$140/4+1) goto irq_line::@1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant integer cast (byte)$140/4+(unumber)1 +Simplifying constant integer cast (char)$140/4+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Resolving array sizeof() sizeof BARS Resolving array sizeof() sizeof BAR @@ -492,8 +492,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $e6 Simplifying constant integer cast $20 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $e6 -Finalized unsigned number type (byte) $20 +Finalized unsigned number type (char) $e6 +Finalized unsigned number type (char) $20 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings memset::dst#0 Inlining constant with var siblings irq_line::l#0 @@ -502,24 +502,24 @@ Inlining constant with var siblings irq_line::i1#0 Inlining constant with var siblings irq_line::b#0 Inlining constant with var siblings irq_line::i2#0 Constant inlined irq_line::i#0 = 0 -Constant inlined irq_line::$11 = $20*SIZEOF_BYTE -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined irq_line::$11 = $20*SIZEOF_CHAR +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined irq_line::l#0 = 0 Constant inlined irq_line::i2#0 = 0 Constant inlined irq_line::i1#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined irq_line::b#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $e6 -Finalized unsigned number type (byte) $e6 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (word) $140 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (word) $280 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (word) $1e0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $e6 +Finalized unsigned number type (char) $e6 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (unsigned int) $140 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (unsigned int) $280 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (unsigned int) $1e0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -564,15 +564,15 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] hstart = 0 - [2] hstop = (byte)$280/4 + [2] hstop = (char)$280/4 [3] vstart = 0 - [4] vstop = (byte)$1e0/2 + [4] vstop = (char)$1e0/2 [5] cnt = 2 [6] sin_idx = $64 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [7] phi() - [8] call main + [8] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [9] return @@ -597,7 +597,7 @@ irq_line::@4: scope:[irq_line] from irq_line::@2 to:irq_line::@11 irq_line::@11: scope:[irq_line] from irq_line::@4 [20] cnt = 2 - [21] if(hstart>=(byte)$140/4+1) goto irq_line::@1 + [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 to:irq_line::@12 irq_line::@12: scope:[irq_line] from irq_line::@11 [22] hstart = ++ hstart @@ -607,7 +607,7 @@ irq_line::@12: scope:[irq_line] from irq_line::@11 to:irq_line::@1 irq_line::@1: scope:[irq_line] from irq_line::@11 irq_line::@12 irq_line::@4 [26] phi() - [27] call memset + [27] call memset to:irq_line::@19 irq_line::@19: scope:[irq_line] from irq_line::@1 [28] irq_line::idx#0 = sin_idx @@ -629,7 +629,7 @@ irq_line::@14: scope:[irq_line] from irq_line::@13 to:irq_line::@16 irq_line::@16: scope:[irq_line] from irq_line::@14 irq_line::@17 [35] irq_line::i2#2 = phi( irq_line::@14/0, irq_line::@17/irq_line::i2#1 ) - [36] if(irq_line::i2#2<$20*SIZEOF_BYTE) goto irq_line::@17 + [36] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 to:irq_line::@18 irq_line::@18: scope:[irq_line] from irq_line::@16 [37] irq_line::idx#1 = irq_line::idx#2 + $d @@ -683,12 +683,12 @@ main::@1: scope:[main] from main::@1 main::CLI1 [57] phi() to:main::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from irq_line::@1 [58] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [59] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [59] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [60] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -702,44 +702,44 @@ memset::@2: scope:[memset] from memset::@1 VARIABLE REGISTER WEIGHTS void __start() -volatile byte cnt loadstore 0.5263157894736842 -volatile byte hstart loadstore 0.4545454545454546 -volatile byte hstop loadstore 0.34782608695652173 +__loadstore volatile char cnt // 0.5263157894736842 +__loadstore volatile char hstart // 0.4545454545454546 +__loadstore volatile char hstop // 0.34782608695652173 __interrupt(rom_min_cx16) void irq_line() -byte irq_line::b -byte irq_line::b#1 22.0 -byte irq_line::b#2 4.125 -byte* irq_line::bar -byte* irq_line::bar#0 22.4 -byte irq_line::i -byte irq_line::i#1 202.0 -byte irq_line::i#2 151.5 -byte irq_line::i1 -byte irq_line::i1#1 202.0 -byte irq_line::i1#2 151.5 -byte irq_line::i2 -byte irq_line::i2#1 202.0 -byte irq_line::i2#2 168.33333333333331 -byte irq_line::idx -byte irq_line::idx#0 2.0 -byte irq_line::idx#1 11.0 -byte irq_line::idx#2 5.0 -byte irq_line::l -byte irq_line::l#1 22.0 -byte irq_line::l#2 4.0 +char irq_line::b +char irq_line::b#1 // 22.0 +char irq_line::b#2 // 4.125 +char *irq_line::bar +char *irq_line::bar#0 // 22.4 +char irq_line::i +char irq_line::i#1 // 202.0 +char irq_line::i#2 // 151.5 +char irq_line::i1 +char irq_line::i1#1 // 202.0 +char irq_line::i1#2 // 151.5 +char irq_line::i2 +char irq_line::i2#1 // 202.0 +char irq_line::i2#2 // 168.33333333333331 +char irq_line::idx +char irq_line::idx#0 // 2.0 +char irq_line::idx#1 // 11.0 +char irq_line::idx#2 // 5.0 +char irq_line::l +char irq_line::l#1 // 22.0 +char irq_line::l#2 // 4.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 134.66666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -volatile byte sin_idx loadstore 0.27586206896551724 -volatile byte vstart loadstore 0.3333333333333333 -volatile byte vstop loadstore 0.32 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 134.66666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +__loadstore volatile char sin_idx // 0.27586206896551724 +__loadstore volatile char vstart // 0.3333333333333333 +__loadstore volatile char vstop // 0.32 Initial phi equivalence classes [ irq_line::l#2 irq_line::l#1 ] @@ -787,9 +787,9 @@ Allocated zp[1]:15 [ sin_idx ] Allocated zp[2]:16 [ irq_line::bar#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] hstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] hstop = (byte)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] hstop = (char)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] vstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] vstop = (byte)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] vstop = (char)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] cnt = 2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] sin_idx = $64 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a @@ -800,7 +800,7 @@ Statement [14] *VERA_DC_VSTOP = vstop [ hstart hstop vstart vstop cnt sin_idx ] Statement [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a Statement [19] if(cnt!=0) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a Statement [20] cnt = 2 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [21] if(hstart>=(byte)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a Statement [32] *VERA_ISR = VERA_LINE [ ] ( [ ] { } ) always clobbers reg byte a Statement [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ irq_line::b#2 irq_line::b#1 ] @@ -817,9 +817,9 @@ Statement [55] *VERA_IRQLINE_L = 5 [ ] ( main:8 [ ] { } ) always clobbers reg b Statement [60] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( memset:27 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a Statement [62] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( memset:27 [ sin_idx memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [1] hstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] hstop = (byte)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] hstop = (char)$280/4 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] vstart = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] vstop = (byte)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] vstop = (char)$1e0/2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] cnt = 2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] sin_idx = $64 [ ] ( [ ] { } ) always clobbers reg byte a Statement [10] *VERA_CTRL = *VERA_CTRL | VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a @@ -830,7 +830,7 @@ Statement [14] *VERA_DC_VSTOP = vstop [ hstart hstop vstart vstop cnt sin_idx ] Statement [15] *VERA_CTRL = *VERA_CTRL & ~VERA_DCSEL [ hstart hstop vstart vstop cnt sin_idx ] ( [ hstart hstop vstart vstop cnt sin_idx ] { } ) always clobbers reg byte a Statement [19] if(cnt!=0) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a Statement [20] cnt = 2 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a -Statement [21] if(hstart>=(byte)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a +Statement [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 [ hstart hstop vstart vstop sin_idx ] ( [ hstart hstop vstart vstop sin_idx ] { } ) always clobbers reg byte a Statement [32] *VERA_ISR = VERA_LINE [ ] ( [ ] { } ) always clobbers reg byte a Statement [34] irq_line::bar#0 = BARS + SIN[irq_line::idx#2] [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] ( [ irq_line::b#2 irq_line::idx#2 irq_line::bar#0 ] { } ) always clobbers reg byte a Statement [37] irq_line::idx#1 = irq_line::idx#2 + $d [ irq_line::b#2 irq_line::idx#1 ] ( [ irq_line::b#2 irq_line::idx#1 ] { } ) always clobbers reg byte a @@ -917,7 +917,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Global Constants & labels .const VERA_DCSEL = 2 .const VERA_LINE = 2 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL @@ -977,13 +977,13 @@ __start: { // [1] hstart = 0 -- vbuz1=vbuc1 lda #0 sta.z hstart - // [2] hstop = (byte)$280/4 -- vbuz1=vbuc1 + // [2] hstop = (char)$280/4 -- vbuz1=vbuc1 lda #$280/4 sta.z hstop // [3] vstart = 0 -- vbuz1=vbuc1 lda #0 sta.z vstart - // [4] vstop = (byte)$1e0/2 -- vbuz1=vbuc1 + // [4] vstop = (char)$1e0/2 -- vbuz1=vbuc1 lda #$1e0/2 sta.z vstop // [5] cnt = 2 -- vbuz1=vbuc1 @@ -997,7 +997,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [8] call main + // [8] call main // [51] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1059,7 +1059,7 @@ irq_line: { // [20] cnt = 2 -- vbuz1=vbuc1 lda #2 sta.z cnt - // [21] if(hstart>=(byte)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 + // [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 lda.z hstart cmp #$140/4+1 bcs __b1_from___b11 @@ -1081,7 +1081,7 @@ irq_line: { jmp __b1 // irq_line::@1 __b1: - // [27] call memset + // [27] call memset // Animate the bars // [58] phi from irq_line::@1 to memset [phi:irq_line::@1->memset] memset_from___b1: @@ -1136,8 +1136,8 @@ irq_line: { jmp __b16 // irq_line::@16 __b16: - // [36] if(irq_line::i2#2<$20*SIZEOF_BYTE) goto irq_line::@17 -- vbuyy_lt_vbuc1_then_la1 - cpy #$20*SIZEOF_BYTE + // [36] if(irq_line::i2#2<$20*SIZEOF_CHAR) goto irq_line::@17 -- vbuyy_lt_vbuc1_then_la1 + cpy #$20*SIZEOF_CHAR bcc __b17 jmp __b18 // irq_line::@18 @@ -1263,15 +1263,16 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { - .const num = $e6*SIZEOF_BYTE + .const num = $e6*SIZEOF_CHAR .const c = 0 .label str = BARS .label end = str+num .label dst = 9 // [59] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [59] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [59] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1389,66 +1390,66 @@ Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } -constant byte* BARS[$e6] = { fill( $e6, 0) } -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) +__constant char BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } +__constant char BARS[$e6] = { fill( $e6, 0) } +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) }} -constant byte SIZEOF_BYTE = 1 -constant byte* const VERA_CTRL = (byte*) 40741 -constant const byte VERA_DCSEL = 2 -constant byte* const VERA_DC_BORDER = (byte*) 40748 -constant byte* const VERA_DC_HSTART = (byte*) 40745 -constant byte* const VERA_DC_HSTOP = (byte*) 40746 -constant byte* const VERA_DC_VSTART = (byte*) 40747 -constant byte* const VERA_DC_VSTOP = (byte*) 40748 -constant byte* const VERA_IEN = (byte*) 40742 -constant byte* const VERA_IRQLINE_L = (byte*) 40744 -constant byte* const VERA_ISR = (byte*) 40743 -constant const byte VERA_LINE = 2 +__constant char SIZEOF_CHAR = 1 +__constant char * const VERA_CTRL = (char *) 40741 +__constant const char VERA_DCSEL = 2 +__constant char * const VERA_DC_BORDER = (char *) 40748 +__constant char * const VERA_DC_HSTART = (char *) 40745 +__constant char * const VERA_DC_HSTOP = (char *) 40746 +__constant char * const VERA_DC_VSTART = (char *) 40747 +__constant char * const VERA_DC_VSTOP = (char *) 40748 +__constant char * const VERA_IEN = (char *) 40742 +__constant char * const VERA_IRQLINE_L = (char *) 40744 +__constant char * const VERA_ISR = (char *) 40743 +__constant const char VERA_LINE = 2 void __start() -volatile byte cnt loadstore zp[1]:7 0.5263157894736842 -volatile byte hstart loadstore zp[1]:3 0.4545454545454546 -volatile byte hstop loadstore zp[1]:4 0.34782608695652173 +__loadstore volatile char cnt // zp[1]:7 0.5263157894736842 +__loadstore volatile char hstart // zp[1]:3 0.4545454545454546 +__loadstore volatile char hstop // zp[1]:4 0.34782608695652173 __interrupt(rom_min_cx16) void irq_line() -byte irq_line::b -byte irq_line::b#1 reg byte x 22.0 -byte irq_line::b#2 reg byte x 4.125 -byte* irq_line::bar -byte* irq_line::bar#0 bar zp[2]:9 22.4 -byte irq_line::i -byte irq_line::i#1 reg byte a 202.0 -byte irq_line::i#2 reg byte a 151.5 -byte irq_line::i1 -byte irq_line::i1#1 reg byte a 202.0 -byte irq_line::i1#2 reg byte a 151.5 -byte irq_line::i2 -byte irq_line::i2#1 reg byte y 202.0 -byte irq_line::i2#2 reg byte y 168.33333333333331 -byte irq_line::idx -byte irq_line::idx#0 idx zp[1]:2 2.0 -byte irq_line::idx#1 idx zp[1]:2 11.0 -byte irq_line::idx#2 idx zp[1]:2 5.0 -byte irq_line::l -byte irq_line::l#1 reg byte x 22.0 -byte irq_line::l#2 reg byte x 4.0 +char irq_line::b +char irq_line::b#1 // reg byte x 22.0 +char irq_line::b#2 // reg byte x 4.125 +char *irq_line::bar +char *irq_line::bar#0 // bar zp[2]:9 22.4 +char irq_line::i +char irq_line::i#1 // reg byte a 202.0 +char irq_line::i#2 // reg byte a 151.5 +char irq_line::i1 +char irq_line::i1#1 // reg byte a 202.0 +char irq_line::i1#2 // reg byte a 151.5 +char irq_line::i2 +char irq_line::i2#1 // reg byte y 202.0 +char irq_line::i2#2 // reg byte y 168.33333333333331 +char irq_line::idx +char irq_line::idx#0 // idx zp[1]:2 2.0 +char irq_line::idx#1 // idx zp[1]:2 11.0 +char irq_line::idx#2 // idx zp[1]:2 5.0 +char irq_line::l +char irq_line::l#1 // reg byte x 22.0 +char irq_line::l#2 // reg byte x 4.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = 0 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 202.0 -byte* memset::dst#2 dst zp[2]:9 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $e6*SIZEOF_BYTE -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)BARS -volatile byte sin_idx loadstore zp[1]:8 0.27586206896551724 -volatile byte vstart loadstore zp[1]:5 0.3333333333333333 -volatile byte vstop loadstore zp[1]:6 0.32 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = 0 // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 202.0 +char *memset::dst#2 // dst zp[2]:9 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $e6*SIZEOF_CHAR // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)BARS // str +__loadstore volatile char sin_idx // zp[1]:8 0.27586206896551724 +__loadstore volatile char vstart // zp[1]:5 0.3333333333333333 +__loadstore volatile char vstop // zp[1]:6 0.32 reg byte x [ irq_line::l#2 irq_line::l#1 ] reg byte x [ irq_line::b#2 irq_line::b#1 ] @@ -1484,7 +1485,7 @@ Score: 5784 // Global Constants & labels .const VERA_DCSEL = 2 .const VERA_LINE = 2 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// $9F25 CTRL Control /// Bit 7: Reset /// Bit 1: DCSEL @@ -1544,7 +1545,7 @@ __start: { lda #0 sta.z hstart // volatile char hstop = 640/4 - // [2] hstop = (byte)$280/4 -- vbuz1=vbuc1 + // [2] hstop = (char)$280/4 -- vbuz1=vbuc1 lda #$280/4 sta.z hstop // volatile char vstart = 0/2 @@ -1552,7 +1553,7 @@ __start: { lda #0 sta.z vstart // volatile char vstop = 480/2 - // [4] vstop = (byte)$1e0/2 -- vbuz1=vbuc1 + // [4] vstop = (char)$1e0/2 -- vbuz1=vbuc1 lda #$1e0/2 sta.z vstop // volatile char cnt = 2 @@ -1565,7 +1566,7 @@ __start: { sta.z sin_idx // [7] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [8] call main + // [8] call main // [51] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -1628,7 +1629,7 @@ irq_line: { lda #2 sta.z cnt // if(hstart<=320/4) - // [21] if(hstart>=(byte)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 + // [21] if(hstart>=(char)$140/4+1) goto irq_line::@1 -- vbuz1_ge_vbuc1_then_la1 lda.z hstart cmp #$140/4+1 bcs __b1 @@ -1649,7 +1650,7 @@ irq_line: { // irq_line::@1 __b1: // memset(BARS, 0, sizeof(BARS)) - // [27] call memset + // [27] call memset // Animate the bars // [58] phi from irq_line::@1 to memset [phi:irq_line::@1->memset] jsr memset @@ -1699,8 +1700,8 @@ irq_line: { // irq_line::@16 __b16: // for(char i=0;imemset::@1] - // [59] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [59] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/examples/cx16/cx16-rasterbars.sym b/src/test/ref/examples/cx16/cx16-rasterbars.sym index f9cbe002f..255a5f233 100644 --- a/src/test/ref/examples/cx16/cx16-rasterbars.sym +++ b/src/test/ref/examples/cx16/cx16-rasterbars.sym @@ -1,63 +1,63 @@ -constant byte* BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } -constant byte* BARS[$e6] = { fill( $e6, 0) } -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) +__constant char BAR[$20] = { $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $1f, $1e, $1d, $1c, $1b, $1a, $19, $18, $17, $16, $15, $14, $13, $12, $11, $10 } +__constant char BARS[$e6] = { fill( $e6, 0) } +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char SIN[$100] = kickasm {{ .fill 256, 99+99*sin(i*2*PI/256) }} -constant byte SIZEOF_BYTE = 1 -constant byte* const VERA_CTRL = (byte*) 40741 -constant const byte VERA_DCSEL = 2 -constant byte* const VERA_DC_BORDER = (byte*) 40748 -constant byte* const VERA_DC_HSTART = (byte*) 40745 -constant byte* const VERA_DC_HSTOP = (byte*) 40746 -constant byte* const VERA_DC_VSTART = (byte*) 40747 -constant byte* const VERA_DC_VSTOP = (byte*) 40748 -constant byte* const VERA_IEN = (byte*) 40742 -constant byte* const VERA_IRQLINE_L = (byte*) 40744 -constant byte* const VERA_ISR = (byte*) 40743 -constant const byte VERA_LINE = 2 +__constant char SIZEOF_CHAR = 1 +__constant char * const VERA_CTRL = (char *) 40741 +__constant const char VERA_DCSEL = 2 +__constant char * const VERA_DC_BORDER = (char *) 40748 +__constant char * const VERA_DC_HSTART = (char *) 40745 +__constant char * const VERA_DC_HSTOP = (char *) 40746 +__constant char * const VERA_DC_VSTART = (char *) 40747 +__constant char * const VERA_DC_VSTOP = (char *) 40748 +__constant char * const VERA_IEN = (char *) 40742 +__constant char * const VERA_IRQLINE_L = (char *) 40744 +__constant char * const VERA_ISR = (char *) 40743 +__constant const char VERA_LINE = 2 void __start() -volatile byte cnt loadstore zp[1]:7 0.5263157894736842 -volatile byte hstart loadstore zp[1]:3 0.4545454545454546 -volatile byte hstop loadstore zp[1]:4 0.34782608695652173 +__loadstore volatile char cnt // zp[1]:7 0.5263157894736842 +__loadstore volatile char hstart // zp[1]:3 0.4545454545454546 +__loadstore volatile char hstop // zp[1]:4 0.34782608695652173 __interrupt(rom_min_cx16) void irq_line() -byte irq_line::b -byte irq_line::b#1 reg byte x 22.0 -byte irq_line::b#2 reg byte x 4.125 -byte* irq_line::bar -byte* irq_line::bar#0 bar zp[2]:9 22.4 -byte irq_line::i -byte irq_line::i#1 reg byte a 202.0 -byte irq_line::i#2 reg byte a 151.5 -byte irq_line::i1 -byte irq_line::i1#1 reg byte a 202.0 -byte irq_line::i1#2 reg byte a 151.5 -byte irq_line::i2 -byte irq_line::i2#1 reg byte y 202.0 -byte irq_line::i2#2 reg byte y 168.33333333333331 -byte irq_line::idx -byte irq_line::idx#0 idx zp[1]:2 2.0 -byte irq_line::idx#1 idx zp[1]:2 11.0 -byte irq_line::idx#2 idx zp[1]:2 5.0 -byte irq_line::l -byte irq_line::l#1 reg byte x 22.0 -byte irq_line::l#2 reg byte x 4.0 +char irq_line::b +char irq_line::b#1 // reg byte x 22.0 +char irq_line::b#2 // reg byte x 4.125 +char *irq_line::bar +char *irq_line::bar#0 // bar zp[2]:9 22.4 +char irq_line::i +char irq_line::i#1 // reg byte a 202.0 +char irq_line::i#2 // reg byte a 151.5 +char irq_line::i1 +char irq_line::i1#1 // reg byte a 202.0 +char irq_line::i1#2 // reg byte a 151.5 +char irq_line::i2 +char irq_line::i2#1 // reg byte y 202.0 +char irq_line::i2#2 // reg byte y 168.33333333333331 +char irq_line::idx +char irq_line::idx#0 // idx zp[1]:2 2.0 +char irq_line::idx#1 // idx zp[1]:2 11.0 +char irq_line::idx#2 // idx zp[1]:2 5.0 +char irq_line::l +char irq_line::l#1 // reg byte x 22.0 +char irq_line::l#2 // reg byte x 4.0 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = 0 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 202.0 -byte* memset::dst#2 dst zp[2]:9 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $e6*SIZEOF_BYTE -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)BARS -volatile byte sin_idx loadstore zp[1]:8 0.27586206896551724 -volatile byte vstart loadstore zp[1]:5 0.3333333333333333 -volatile byte vstop loadstore zp[1]:6 0.32 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = 0 // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 202.0 +char *memset::dst#2 // dst zp[2]:9 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $e6*SIZEOF_CHAR // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)BARS // str +__loadstore volatile char sin_idx // zp[1]:8 0.27586206896551724 +__loadstore volatile char vstart // zp[1]:5 0.3333333333333333 +__loadstore volatile char vstop // zp[1]:6 0.32 reg byte x [ irq_line::l#2 irq_line::l#1 ] reg byte x [ irq_line::b#2 irq_line::b#1 ] diff --git a/src/test/ref/examples/helloworld/helloworld.asm b/src/test/ref/examples/helloworld/helloworld.asm index 26951653c..e56b48b5d 100644 --- a/src/test/ref/examples/helloworld/helloworld.asm +++ b/src/test/ref/examples/helloworld/helloworld.asm @@ -71,7 +71,7 @@ main: { } .segment Code // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $10 @@ -146,7 +146,7 @@ gotoxy: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 lda # 0 Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#3 > $19 @@ -486,15 +486,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -504,9 +504,9 @@ Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_in Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 @@ -519,9 +519,9 @@ Inlining cast gotoxy::y#1 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast $28 @@ -548,31 +548,31 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [38] gotoxy::$1 = gotoxy::y#3 <= $19 from [37] gotoxy::$0 = gotoxy::y#3 > $19 @@ -638,16 +638,16 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -682,7 +682,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -702,11 +702,11 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[26] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -724,20 +724,20 @@ Inlining constant with var siblings memset::c#1 Inlining constant with var siblings gotoxy::y#0 Inlining constant with var siblings cputs::s#1 Inlining constant with var siblings conio_c64_init::line#1 -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined cputs::s#1 = main::s Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined gotoxy::y#0 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined memset::c#0 = ' ' @@ -750,28 +750,28 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [9] if($28<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -867,11 +867,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -888,7 +888,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -897,13 +897,13 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call cputs + [17] call cputs to:main::@return main::@return: scope:[main] from main [18] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [19] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -916,7 +916,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [22] conio_cursor_x = gotoxy::x#2 [23] conio_cursor_y = gotoxy::y#4 - [24] gotoxy::$7 = (word)gotoxy::y#4 + [24] gotoxy::$7 = (unsigned int)gotoxy::y#4 [25] gotoxy::$8 = gotoxy::$7 << 2 [26] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [27] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -929,7 +929,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [32] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main [33] phi() to:cputs::@1 @@ -944,10 +944,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [39] cputc::c#0 = cputs::c#1 - [40] call cputc + [40] call cputc to:cputs::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [41] if(cputc::c#0==' ') goto cputc::@1 @@ -960,14 +960,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [46] phi() - [47] call cputln + [47] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [48] return to:@return cputc::@1: scope:[cputc] from cputc [49] phi() - [50] call cputln + [50] call cputln to:cputc::@return void cputln() @@ -976,7 +976,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [52] conio_line_color = conio_line_color + $28 [53] conio_cursor_x = 0 [54] conio_cursor_y = ++ conio_cursor_y - [55] call cscroll + [55] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [56] return @@ -988,19 +988,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [58] phi() - [59] call memcpy + [59] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [60] phi() - [61] call memcpy + [61] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [62] phi() - [63] call memset + [63] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [64] phi() - [65] call memset + [65] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [66] conio_line_text = conio_line_text - $28 @@ -1011,13 +1011,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [69] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [70] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [70] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [71] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [72] memcpy::src#4 = (byte*)memcpy::source#2 - [73] memcpy::dst#4 = (byte*)memcpy::destination#2 + [70] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [70] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [71] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [72] memcpy::src#4 = (char *)memcpy::source#2 + [73] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [74] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1033,14 +1033,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [79] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [80] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [80] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [80] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [81] memset::end#0 = (byte*)memset::str#3 + $28 - [82] memset::dst#4 = (byte*)memset::str#3 + [81] memset::end#0 = (char *)memset::str#3 + $28 + [82] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [83] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1058,67 +1058,67 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 4288.828571428571 -byte conio_cursor_y loadstore 62747.2156862745 -byte* conio_line_color loadstore 51397.860465116275 -byte* conio_line_text loadstore 49113.51111111111 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 10501.5 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 4288.828571428571 +__loadstore char conio_cursor_y // 62747.2156862745 +__loadstore char *conio_line_color // 51397.860465116275 +__loadstore char *conio_line_text // 49113.51111111111 +void cputc(char c) +char cputc::c +char cputc::c#0 // 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 1001.0 -const byte* cputs::s -const byte* cputs::s#0 500.5 -const byte* cputs::s#2 1501.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 1001.0 +const char *cputs::s +const char *cputs::s#0 // 500.5 +const char *cputs::s#2 // 1501.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.000000001E9 -byte* memcpy::dst#2 1.0033333346666667E9 -byte* memcpy::dst#4 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.000000002E9 -byte* memcpy::src#2 1.00250000125E9 -byte* memcpy::src#4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.2625000025E8 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 2.000000002E9 -byte* memset::dst#2 1.3366666683333335E9 -byte* memset::dst#4 2.0000002E7 -byte* memset::end -byte* memset::end#0 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.000000001E9 +char *memcpy::dst#2 // 1.0033333346666667E9 +char *memcpy::dst#4 // 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.000000002E9 +char *memcpy::src#2 // 1.00250000125E9 +char *memcpy::src#4 // 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.2625000025E8 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.42857143E8 +char *memset::dst +char *memset::dst#1 // 2.000000002E9 +char *memset::dst#2 // 1.3366666683333335E9 +char *memset::dst#4 // 2.0000002E7 +char *memset::end +char *memset::end#0 // 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -1201,7 +1201,7 @@ Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [22] conio_cursor_x = gotoxy::x#2 [ conio_cursor_x gotoxy::y#4 ] ( gotoxy:14 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [24] gotoxy::$7 = (word)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [24] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [25] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [26] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [27] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -1219,14 +1219,14 @@ Statement [53] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [57] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [66] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [67] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [71] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [72] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [73] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [71] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [72] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [73] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [75] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [77] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [81] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [81] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ memset::c#4 ] -Statement [82] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [82] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [84] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [86] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:16 [ memset::c#4 ] @@ -1235,7 +1235,7 @@ Statement [2] conio_cursor_y = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [22] conio_cursor_x = gotoxy::x#2 [ conio_cursor_x gotoxy::y#4 ] ( gotoxy:14 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a -Statement [24] gotoxy::$7 = (word)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [24] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [25] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [26] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [27] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -1253,13 +1253,13 @@ Statement [53] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [57] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [66] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [67] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [71] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [72] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [73] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [71] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [72] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [73] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [75] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [77] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:59 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memcpy:61 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [81] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [82] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [81] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [82] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [84] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [86] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:63 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:47::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:17::cputc:40::cputln:50::cscroll:55::memset:65 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -1399,14 +1399,14 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1443,7 +1443,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -1453,7 +1453,7 @@ conio_c64_init: { } // main main: { - // [17] call cputs + // [17] call cputs // [33] phi from main to cputs [phi:main->cputs] cputs_from_main: jsr cputs @@ -1469,7 +1469,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $10 @@ -1505,7 +1505,7 @@ gotoxy: { sta.z conio_cursor_x // [23] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [24] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [24] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -1568,7 +1568,7 @@ gotoxy: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [34] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -1600,7 +1600,7 @@ cputs: { // cputs::@2 __b2: // [39] cputc::c#0 = cputs::c#1 - // [40] call cputc + // [40] call cputc jsr cputc // [34] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] __b1_from___b2: @@ -1610,7 +1610,7 @@ cputs: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [41] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -1636,7 +1636,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [47] call cputln + // [47] call cputln jsr cputln jmp __breturn // cputc::@return @@ -1648,7 +1648,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [50] call cputln + // [50] call cputln jsr cputln jmp __breturn } @@ -1676,7 +1676,7 @@ cputln: { sta.z conio_cursor_x // [54] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [55] call cscroll + // [55] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -1696,15 +1696,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [59] call memcpy + // [59] call memcpy // [70] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [70] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [70] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [70] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [70] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -1715,15 +1715,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [61] call memcpy + // [61] call memcpy // [70] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [70] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [70] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [70] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [70] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -1734,12 +1734,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [63] call memset + // [63] call memset // [80] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [80] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [80] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [80] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -1750,12 +1750,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [65] call memset + // [65] call memset // [80] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [80] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [80] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [80] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -1791,14 +1791,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($14) destination, void* zp(4) source) +// void * memcpy(__zp($14) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $12 .label dst = $14 .label src = 4 .label source = 4 .label destination = $14 - // [71] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [71] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -1806,8 +1806,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [72] memcpy::src#4 = (byte*)memcpy::source#2 - // [73] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [72] memcpy::src#4 = (char *)memcpy::source#2 + // [73] memcpy::dst#4 = (char *)memcpy::destination#2 // [74] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -1849,7 +1849,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 4 @@ -1857,7 +1857,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [81] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [81] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -1865,7 +1865,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [82] memset::dst#4 = (byte*)memset::str#3 + // [82] memset::dst#4 = (char *)memset::str#3 // [83] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -1996,80 +1996,80 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:6 4288.828571428571 -byte conio_cursor_y loadstore zp[1]:7 62747.2156862745 -byte* conio_line_color loadstore zp[2]:10 51397.860465116275 -byte* conio_line_text loadstore zp[2]:8 49113.51111111111 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 10501.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:6 4288.828571428571 +__loadstore char conio_cursor_y // zp[1]:7 62747.2156862745 +__loadstore char *conio_line_color // zp[2]:10 51397.860465116275 +__loadstore char *conio_line_text // zp[2]:8 49113.51111111111 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 500.5 -const byte* cputs::s#2 s zp[2]:2 1501.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 500.5 +const char *cputs::s#2 // s zp[2]:2 1501.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:16 202.0 -byte*~ gotoxy::$6 zp[2]:12 202.0 -word~ gotoxy::$7 zp[2]:12 151.5 -word~ gotoxy::$8 zp[2]:14 202.0 -word~ gotoxy::$9 zp[2]:12 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:12 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:16 202.0 +char *gotoxy::$6 // zp[2]:12 202.0 +unsigned int gotoxy::$7 // zp[2]:12 151.5 +unsigned int gotoxy::$8 // zp[2]:14 202.0 +unsigned int gotoxy::$9 // zp[2]:12 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:12 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::s[$e] = "hello world! +__constant char main::s[$e] = "hello world! " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:20 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:20 1.000000001E9 -byte* memcpy::dst#2 dst zp[2]:20 1.0033333346666667E9 -byte* memcpy::dst#4 dst zp[2]:20 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000002E9 -byte* memcpy::src#2 src zp[2]:4 1.00250000125E9 -byte* memcpy::src#4 src zp[2]:4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:18 1.2625000025E8 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2.000000002E9 -byte* memset::dst#2 dst zp[2]:4 1.3366666683333335E9 -byte* memset::dst#4 dst zp[2]:4 2.0000002E7 -byte* memset::end -byte* memset::end#0 end zp[2]:20 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:20 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:20 1.000000001E9 +char *memcpy::dst#2 // dst zp[2]:20 1.0033333346666667E9 +char *memcpy::dst#4 // dst zp[2]:20 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000002E9 +char *memcpy::src#2 // src zp[2]:4 1.00250000125E9 +char *memcpy::src#4 // src zp[2]:4 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:18 1.2625000025E8 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.42857143E8 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2.000000002E9 +char *memset::dst#2 // dst zp[2]:4 1.3366666683333335E9 +char *memset::dst#4 // dst zp[2]:4 2.0000002E7 +char *memset::end +char *memset::end#0 // end zp[2]:20 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] @@ -2143,11 +2143,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -2177,7 +2177,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -2187,7 +2187,7 @@ conio_c64_init: { // main main: { // printf("hello world!\n") - // [17] call cputs + // [17] call cputs // [33] phi from main to cputs [phi:main->cputs] jsr cputs // main::@return @@ -2201,7 +2201,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $10 @@ -2232,7 +2232,7 @@ gotoxy: { // [23] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [24] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [24] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -2298,7 +2298,7 @@ gotoxy: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [34] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -2329,7 +2329,7 @@ cputs: { __b2: // cputc(c) // [39] cputc::c#0 = cputs::c#1 - // [40] call cputc + // [40] call cputc jsr cputc // [34] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] // [34] phi cputs::s#2 = cputs::s#0 [phi:cputs::@2->cputs::@1#0] -- register_copy @@ -2338,7 +2338,7 @@ cputs: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [41] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -2363,7 +2363,7 @@ cputc: { // [46] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [47] call cputln + // [47] call cputln jsr cputln // cputc::@return __breturn: @@ -2374,7 +2374,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [50] call cputln + // [50] call cputln jsr cputln rts } @@ -2407,7 +2407,7 @@ cputln: { // [54] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [55] call cscroll + // [55] call cscroll jsr cscroll // cputln::@return // } @@ -2425,14 +2425,14 @@ cscroll: { // [58] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [59] call memcpy + // [59] call memcpy // [70] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [70] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [70] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [70] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [70] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -2441,14 +2441,14 @@ cscroll: { // [60] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [61] call memcpy + // [61] call memcpy // [70] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [70] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [70] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [70] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [70] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -2457,11 +2457,11 @@ cscroll: { // [62] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [63] call memset + // [63] call memset // [80] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [80] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [80] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [80] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -2470,11 +2470,11 @@ cscroll: { // [64] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [65] call memset + // [65] call memset // [80] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [80] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [80] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [80] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -2511,7 +2511,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($14) destination, void* zp(4) source) +// void * memcpy(__zp($14) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $12 .label dst = $14 @@ -2519,7 +2519,7 @@ memcpy: { .label source = 4 .label destination = $14 // char* src_end = (char*)source+num - // [71] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [71] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -2527,8 +2527,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [72] memcpy::src#4 = (byte*)memcpy::source#2 - // [73] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [72] memcpy::src#4 = (char *)memcpy::source#2 + // [73] memcpy::dst#4 = (char *)memcpy::destination#2 // [74] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [74] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [74] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -2568,14 +2568,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 4 .label str = 4 // memset::@1 // char* end = (char*)str + num - // [81] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [81] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -2583,7 +2583,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [82] memset::dst#4 = (byte*)memset::str#3 + // [82] memset::dst#4 = (char *)memset::str#3 // [83] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [83] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/examples/helloworld/helloworld.sym b/src/test/ref/examples/helloworld/helloworld.sym index 2ec1a81f0..da9050ff5 100644 --- a/src/test/ref/examples/helloworld/helloworld.sym +++ b/src/test/ref/examples/helloworld/helloworld.sym @@ -1,77 +1,77 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:6 4288.828571428571 -byte conio_cursor_y loadstore zp[1]:7 62747.2156862745 -byte* conio_line_color loadstore zp[2]:10 51397.860465116275 -byte* conio_line_text loadstore zp[2]:8 49113.51111111111 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 10501.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:6 4288.828571428571 +__loadstore char conio_cursor_y // zp[1]:7 62747.2156862745 +__loadstore char *conio_line_color // zp[2]:10 51397.860465116275 +__loadstore char *conio_line_text // zp[2]:8 49113.51111111111 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 500.5 -const byte* cputs::s#2 s zp[2]:2 1501.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 500.5 +const char *cputs::s#2 // s zp[2]:2 1501.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:16 202.0 -byte*~ gotoxy::$6 zp[2]:12 202.0 -word~ gotoxy::$7 zp[2]:12 151.5 -word~ gotoxy::$8 zp[2]:14 202.0 -word~ gotoxy::$9 zp[2]:12 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:12 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:16 202.0 +char *gotoxy::$6 // zp[2]:12 202.0 +unsigned int gotoxy::$7 // zp[2]:12 151.5 +unsigned int gotoxy::$8 // zp[2]:14 202.0 +unsigned int gotoxy::$9 // zp[2]:12 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:12 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::s[$e] = "hello world! +__constant char main::s[$e] = "hello world! " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:20 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:20 1.000000001E9 -byte* memcpy::dst#2 dst zp[2]:20 1.0033333346666667E9 -byte* memcpy::dst#4 dst zp[2]:20 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000002E9 -byte* memcpy::src#2 src zp[2]:4 1.00250000125E9 -byte* memcpy::src#4 src zp[2]:4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:18 1.2625000025E8 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2.000000002E9 -byte* memset::dst#2 dst zp[2]:4 1.3366666683333335E9 -byte* memset::dst#4 dst zp[2]:4 2.0000002E7 -byte* memset::end -byte* memset::end#0 end zp[2]:20 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:20 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:20 1.000000001E9 +char *memcpy::dst#2 // dst zp[2]:20 1.0033333346666667E9 +char *memcpy::dst#4 // dst zp[2]:20 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000002E9 +char *memcpy::src#2 // src zp[2]:4 1.00250000125E9 +char *memcpy::src#4 // src zp[2]:4 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:18 1.2625000025E8 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.42857143E8 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2.000000002E9 +char *memset::dst#2 // dst zp[2]:4 1.3366666683333335E9 +char *memset::dst#4 // dst zp[2]:4 2.0000002E7 +char *memset::end +char *memset::end#0 // end zp[2]:20 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] diff --git a/src/test/ref/examples/mega65/32bit-addressing-mega65.log b/src/test/ref/examples/mega65/32bit-addressing-mega65.log index dc2d015bd..335880ec1 100644 --- a/src/test/ref/examples/mega65/32bit-addressing-mega65.log +++ b/src/test/ref/examples/mega65/32bit-addressing-mega65.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -20,7 +20,7 @@ __start::__init1: scope:[__start] from __start ADDR32 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -29,8 +29,8 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -volatile dword ADDR32 loadstore -constant const dword MEGA65_MEM_COLOR_RAM = $ff80000 +__loadstore volatile unsigned long ADDR32 +__constant const unsigned long MEGA65_MEM_COLOR_RAM = $ff80000 void __start() void main() @@ -40,7 +40,7 @@ Inlining cast ADDR32 = (unumber)$800 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $800 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $800 +Finalized unsigned number type (unsigned int) $800 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -65,7 +65,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -84,7 +84,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -volatile dword ADDR32 loadstore 12.0 +__loadstore volatile unsigned long ADDR32 // 12.0 void __start() void main() @@ -151,7 +151,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -221,8 +221,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -volatile dword ADDR32 loadstore zp[4]:2 12.0 -constant const dword MEGA65_MEM_COLOR_RAM = $ff80000 +__loadstore volatile unsigned long ADDR32 // zp[4]:2 12.0 +__constant const unsigned long MEGA65_MEM_COLOR_RAM = $ff80000 void __start() void main() @@ -267,7 +267,7 @@ __start: { sta.z ADDR32+3 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/examples/mega65/32bit-addressing-mega65.sym b/src/test/ref/examples/mega65/32bit-addressing-mega65.sym index 5cd25b645..b18cb9f5a 100644 --- a/src/test/ref/examples/mega65/32bit-addressing-mega65.sym +++ b/src/test/ref/examples/mega65/32bit-addressing-mega65.sym @@ -1,5 +1,5 @@ -volatile dword ADDR32 loadstore zp[4]:2 12.0 -constant const dword MEGA65_MEM_COLOR_RAM = $ff80000 +__loadstore volatile unsigned long ADDR32 // zp[4]:2 12.0 +__constant const unsigned long MEGA65_MEM_COLOR_RAM = $ff80000 void __start() void main() diff --git a/src/test/ref/examples/mega65/banked-music.asm b/src/test/ref/examples/mega65/banked-music.asm index 6e837abaf..d456ac4b4 100644 --- a/src/test/ref/examples/mega65/banked-music.asm +++ b/src/test/ref/examples/mega65/banked-music.asm @@ -230,6 +230,7 @@ main: { // blockPage: Page address of the 8K memory block to remap (ie. the block that is remapped is $100 * the passed page address.) // memoryPage: Page address of the memory that the block should point to in the 1MB memory space of the MEGA65. // Ie. the memory that will be pointed to is $100 * the passed page address. Only the lower 12bits of the passed value is used. +// void memoryRemapBlock(char blockPage, unsigned int memoryPage) memoryRemapBlock: { // Find the page offset (the number of pages to offset the block) .const pageOffset = $100-$40 @@ -274,7 +275,7 @@ memoryRemapBlock: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap(byte register(Z) remapBlocks, word zp(2) lowerPageOffset, word zp(4) upperPageOffset) +// void memoryRemap(__register(Z) char remapBlocks, __zp(2) unsigned int lowerPageOffset, __zp(4) unsigned int upperPageOffset) memoryRemap: { .label aVal = 6 .label xVal = 8 @@ -336,6 +337,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-63) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma4(char dest_bank, void *dest, char src_bank, void *src, unsigned int num) memcpy_dma4: { .const num = MUSIC_END-MUSIC .const dest_bank = 1 diff --git a/src/test/ref/examples/mega65/banked-music.cfg b/src/test/ref/examples/mega65/banked-music.cfg index 7c76f1fb6..c039fc9a4 100644 --- a/src/test/ref/examples/mega65/banked-music.cfg +++ b/src/test/ref/examples/mega65/banked-music.cfg @@ -1,9 +1,9 @@ __interrupt(hardware_clobber) void irq() irq: scope:[irq] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) - [2] call memoryRemapBlock + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [2] call memoryRemapBlock to:irq::@4 irq::@4: scope:[irq] from irq [3] phi() @@ -11,16 +11,16 @@ irq::@4: scope:[irq] from irq to:irq::@1 irq::@1: scope:[irq] from irq::@4 [5] phi() - [6] call memoryRemap + [6] call memoryRemap to:irq::@5 irq::@5: scope:[irq] from irq::@1 - [7] irq::raster#0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) + [7] irq::raster#0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) to:irq::@2 irq::@2: scope:[irq] from irq::@2 irq::@5 - [8] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 + [8] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 to:irq::@3 irq::@3: scope:[irq] from irq::@2 - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:irq::@return irq::@return: scope:[irq] from irq::@3 [10] return @@ -29,21 +29,21 @@ irq::@return: scope:[irq] from irq::@3 void main() main: scope:[main] from asm { sei } - [12] call memoryRemap + [12] call memoryRemap to:main::@5 main::@5: scope:[main] from main - [13] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 - [14] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 - [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 - [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 + [13] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 + [14] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 + [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 + [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [17] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [18] *PROCPORT = PROCPORT_RAM_IO - [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 - [20] call memcpy_dma4 + [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 + [20] call memcpy_dma4 to:main::@6 main::@6: scope:[main] from main::@5 [21] phi() - [22] call memoryRemapBlock + [22] call memoryRemapBlock to:main::@7 main::@7: scope:[main] from main::@6 asm { lda#0 } @@ -51,13 +51,13 @@ main::@7: scope:[main] from main::@6 to:main::@1 main::@1: scope:[main] from main::@7 [25] phi() - [26] call memoryRemap + [26] call memoryRemap to:main::@8 main::@8: scope:[main] from main::@1 - [27] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - [28] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff - [29] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - [30] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff + [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [31] *HARDWARE_IRQ = &irq asm { cli } to:main::@2 @@ -75,16 +75,16 @@ main::@4: scope:[main] from main::@3 [39] main::i#1 = ++ main::i#2 to:main::@3 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) +void memoryRemapBlock(char blockPage , unsigned int memoryPage) memoryRemapBlock: scope:[memoryRemapBlock] from irq main::@6 [40] phi() - [41] call memoryRemap + [41] call memoryRemap to:memoryRemapBlock::@return memoryRemapBlock::@return: scope:[memoryRemapBlock] from memoryRemapBlock [42] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from irq::@1 main main::@1 memoryRemapBlock [43] memoryRemap::upperPageOffset#4 = phi( irq::@1/0, main/0, main::@1/0, memoryRemapBlock/memoryRemapBlock::pageOffset#0 ) [43] memoryRemap::remapBlocks#4 = phi( irq::@1/0, main/0, main::@1/0, memoryRemapBlock/memoryRemapBlock::blockBits#0 ) @@ -105,20 +105,20 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [55] return to:@return -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) memcpy_dma4: scope:[memcpy_dma4] from main::@5 - [56] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [57] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 - [58] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 - [59] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 - [60] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 - [61] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 - [62] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [63] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [64] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 - [66] *((byte*)DMA) = byte0 &memcpy_dma_command4 - [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 + [56] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [57] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 + [58] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 + [59] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 + [60] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 + [61] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 + [62] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [63] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [64] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 + [66] *((char *)DMA) = byte0 &memcpy_dma_command4 + [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 to:memcpy_dma4::@return memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 [68] return diff --git a/src/test/ref/examples/mega65/banked-music.log b/src/test/ref/examples/mega65/banked-music.log index b6160a529..ddbd3f280 100644 --- a/src/test/ref/examples/mega65/banked-music.log +++ b/src/test/ref/examples/mega65/banked-music.log @@ -67,7 +67,7 @@ Calling convention STACK_CALL adding prepare/execute/finalize for call *musicPla CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from irq::@1 main main::@1 memoryRemapBlock memoryRemap::upperPageOffset#4 = phi( irq::@1/memoryRemap::upperPageOffset#3, main/memoryRemap::upperPageOffset#1, main::@1/memoryRemap::upperPageOffset#2, memoryRemapBlock/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#4 = phi( irq::@1/memoryRemap::remapBlocks#3, main/memoryRemap::remapBlocks#1, main::@1/memoryRemap::remapBlocks#2, memoryRemapBlock/memoryRemap::remapBlocks#0 ) @@ -88,7 +88,7 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) +void memoryRemapBlock(char blockPage , unsigned int memoryPage) memoryRemapBlock: scope:[memoryRemapBlock] from irq main::@6 memoryRemapBlock::blockPage#2 = phi( irq/memoryRemapBlock::blockPage#1, main::@6/memoryRemapBlock::blockPage#0 ) memoryRemapBlock::memoryPage#2 = phi( irq/memoryRemapBlock::memoryPage#1, main::@6/memoryRemapBlock::memoryPage#0 ) @@ -106,25 +106,25 @@ memoryRemapBlock::@return: scope:[memoryRemapBlock] from memoryRemapBlock::@1 return to:@return -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) memcpy_dma4: scope:[memcpy_dma4] from main::@5 memcpy_dma4::dest#1 = phi( main::@5/memcpy_dma4::dest#0 ) memcpy_dma4::dest_bank#1 = phi( main::@5/memcpy_dma4::dest_bank#0 ) memcpy_dma4::src#1 = phi( main::@5/memcpy_dma4::src#0 ) memcpy_dma4::src_bank#1 = phi( main::@5/memcpy_dma4::src_bank#0 ) memcpy_dma4::num#1 = phi( main::@5/memcpy_dma4::num#0 ) - memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#1 - *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#1 - *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = ((byte*)) memcpy_dma4::src#1 - *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#1 - *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((byte*)) memcpy_dma4::dest#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 + memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#1 + *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#1 + *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = ((char *)) memcpy_dma4::src#1 + *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#1 + *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((char *)) memcpy_dma4::dest#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 to:memcpy_dma4::@return memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 return @@ -139,18 +139,18 @@ main: scope:[main] from __start::@1 call memoryRemap to:main::@5 main::@5: scope:[main] from main - *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 - *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 + *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 + *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 main::$1 = MUSIC_END - MUSIC memcpy_dma4::dest_bank#0 = 1 - memcpy_dma4::dest#0 = (void*)0 + memcpy_dma4::dest#0 = (void *)0 memcpy_dma4::src_bank#0 = 0 - memcpy_dma4::src#0 = (void*)upperCodeData + memcpy_dma4::src#0 = (void *)upperCodeData memcpy_dma4::num#0 = main::$1 call memcpy_dma4 to:main::@6 @@ -170,10 +170,10 @@ main::@1: scope:[main] from main::@7 call memoryRemap to:main::@8 main::@8: scope:[main] from main::@1 - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER *HARDWARE_IRQ = &irq asm { cli } main::mem_destroy_i#0 = 0 @@ -202,8 +202,8 @@ main::@return: scope:[main] from __interrupt(hardware_clobber) void irq() irq: scope:[irq] from - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) memoryRemapBlock::blockPage#1 = $40 memoryRemapBlock::memoryPage#1 = $100 call memoryRemapBlock @@ -218,15 +218,15 @@ irq::@1: scope:[irq] from irq::@4 call memoryRemap to:irq::@5 irq::@5: scope:[irq] from irq::@1 - irq::raster#0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) + irq::raster#0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) to:irq::@2 irq::@2: scope:[irq] from irq::@2 irq::@5 irq::raster#1 = phi( irq::@2/irq::raster#1, irq::@5/irq::raster#0 ) - irq::$5 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) == irq::raster#1 + irq::$5 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) == irq::raster#1 if(irq::$5) goto irq::@2 to:irq::@3 irq::@3: scope:[irq] from irq::@2 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:irq::@return irq::@return: scope:[irq] from irq::@3 return @@ -247,130 +247,130 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_COPY = 0 -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant const byte IRQ_RASTER = 1 -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("Cybernoid_II_4000.sid") +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_COPY = 0 +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant const char IRQ_RASTER = 1 +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("Cybernoid_II_4000.sid") .fill music.size, music.getData(i) }} -constant byte* const MUSIC_END = (byte*)$5200 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c -constant byte OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 -constant struct MOS4569_VICIII* const VICIII = (struct MOS4569_VICIII*)$d000 -constant struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*)$d000 +__constant char * const MUSIC_END = (char *)$5200 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c +__constant char OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 +__constant struct MOS4569_VICIII * const VICIII = (struct MOS4569_VICIII *)$d000 +__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *)$d000 void __start() __interrupt(hardware_clobber) void irq() -bool~ irq::$5 -byte irq::raster -byte irq::raster#0 -byte irq::raster#1 +bool irq::$5 +char irq::raster +char irq::raster#0 +char irq::raster#1 void main() -word~ main::$1 -bool~ main::$7 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::mem_destroy_i -byte main::mem_destroy_i#0 -byte main::mem_destroy_i#1 -byte main::mem_destroy_i#2 -byte main::mem_destroy_i#3 -byte main::mem_destroy_i#4 -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) -void* memcpy_dma4::dest -void* memcpy_dma4::dest#0 -void* memcpy_dma4::dest#1 -byte memcpy_dma4::dest_bank -byte memcpy_dma4::dest_bank#0 -byte memcpy_dma4::dest_bank#1 -byte memcpy_dma4::dmaMode -byte memcpy_dma4::dmaMode#0 -word memcpy_dma4::num -word memcpy_dma4::num#0 -word memcpy_dma4::num#1 -void* memcpy_dma4::src -void* memcpy_dma4::src#0 -void* memcpy_dma4::src#1 -byte memcpy_dma4::src_bank -byte memcpy_dma4::src_bank#0 -byte memcpy_dma4::src_bank#1 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -word memoryRemap::lowerPageOffset#2 -word memoryRemap::lowerPageOffset#3 -word memoryRemap::lowerPageOffset#4 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -byte memoryRemap::remapBlocks#2 -byte memoryRemap::remapBlocks#3 -byte memoryRemap::remapBlocks#4 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -word memoryRemap::upperPageOffset#2 -word memoryRemap::upperPageOffset#3 -word memoryRemap::upperPageOffset#4 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -byte memoryRemapBlock::block#0 -byte memoryRemapBlock::blockBits -byte memoryRemapBlock::blockBits#0 -byte memoryRemapBlock::blockPage -byte memoryRemapBlock::blockPage#0 -byte memoryRemapBlock::blockPage#1 -byte memoryRemapBlock::blockPage#2 -word memoryRemapBlock::memoryPage -word memoryRemapBlock::memoryPage#0 -word memoryRemapBlock::memoryPage#1 -word memoryRemapBlock::memoryPage#2 -word memoryRemapBlock::pageOffset -word memoryRemapBlock::pageOffset#0 -constant void()* musicInit = (void()*)MUSIC -constant void()* musicPlay = (void()*)MUSIC+3 -constant byte* upperCodeData[] = kickasm {{ .segmentout [segments="Banked"] +unsigned int main::$1 +bool main::$7 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::mem_destroy_i +char main::mem_destroy_i#0 +char main::mem_destroy_i#1 +char main::mem_destroy_i#2 +char main::mem_destroy_i#3 +char main::mem_destroy_i#4 +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) +void *memcpy_dma4::dest +void *memcpy_dma4::dest#0 +void *memcpy_dma4::dest#1 +char memcpy_dma4::dest_bank +char memcpy_dma4::dest_bank#0 +char memcpy_dma4::dest_bank#1 +char memcpy_dma4::dmaMode +char memcpy_dma4::dmaMode#0 +unsigned int memcpy_dma4::num +unsigned int memcpy_dma4::num#0 +unsigned int memcpy_dma4::num#1 +void *memcpy_dma4::src +void *memcpy_dma4::src#0 +void *memcpy_dma4::src#1 +char memcpy_dma4::src_bank +char memcpy_dma4::src_bank#0 +char memcpy_dma4::src_bank#1 +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command4 = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +unsigned int memoryRemap::lowerPageOffset#2 +unsigned int memoryRemap::lowerPageOffset#3 +unsigned int memoryRemap::lowerPageOffset#4 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +char memoryRemap::remapBlocks#2 +char memoryRemap::remapBlocks#3 +char memoryRemap::remapBlocks#4 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +unsigned int memoryRemap::upperPageOffset#2 +unsigned int memoryRemap::upperPageOffset#3 +unsigned int memoryRemap::upperPageOffset#4 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal +void memoryRemapBlock(char blockPage , unsigned int memoryPage) +char memoryRemapBlock::block +char memoryRemapBlock::block#0 +char memoryRemapBlock::blockBits +char memoryRemapBlock::blockBits#0 +char memoryRemapBlock::blockPage +char memoryRemapBlock::blockPage#0 +char memoryRemapBlock::blockPage#1 +char memoryRemapBlock::blockPage#2 +unsigned int memoryRemapBlock::memoryPage +unsigned int memoryRemapBlock::memoryPage#0 +unsigned int memoryRemapBlock::memoryPage#1 +unsigned int memoryRemapBlock::memoryPage#2 +unsigned int memoryRemapBlock::pageOffset +unsigned int memoryRemapBlock::pageOffset#0 +__constant void (*musicInit)() = (void (*)())MUSIC +__constant void (*musicPlay)() = (void (*)())MUSIC+3 +__constant char upperCodeData[] = kickasm {{ .segmentout [segments="Banked"] }} Adding number conversion cast (unumber) 3 in @@ -383,17 +383,17 @@ Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f Adding number conversion cast (unumber) $20 in memoryRemapBlock::block#0 = memoryRemapBlock::blockPage#2 / $20 Adding number conversion cast (unumber) 1 in memoryRemapBlock::blockBits#0 = 1 << memoryRemapBlock::block#0 -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#1 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#1 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#1 = 0 -Adding number conversion cast (unumber) $47 in *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -Adding number conversion cast (unumber) $53 in *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -Adding number conversion cast (unumber) $40 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -Adding number conversion cast (unumber) $40 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -Adding number conversion cast (unumber) 1 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 +Adding number conversion cast (unumber) $47 in *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 +Adding number conversion cast (unumber) $53 in *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 +Adding number conversion cast (unumber) $40 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 +Adding number conversion cast (unumber) $40 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 +Adding number conversion cast (unumber) 1 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 Adding number conversion cast (unumber) 1 in memcpy_dma4::dest_bank#0 = 1 Adding number conversion cast (unumber) 0 in memcpy_dma4::src_bank#0 = 0 Adding number conversion cast (unumber) $40 in memoryRemapBlock::blockPage#0 = $40 @@ -401,8 +401,8 @@ Adding number conversion cast (unumber) $100 in memoryRemapBlock::memoryPage#0 = Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#2 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#2 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#2 = 0 -Adding number conversion cast (unumber) $ff in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -Adding number conversion cast (unumber) $7f in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f +Adding number conversion cast (unumber) $ff in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff +Adding number conversion cast (unumber) $7f in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f Adding number conversion cast (unumber) $f0 in main::$7 = main::i#2 < $f0 Adding number conversion cast (unumber) $40 in memoryRemapBlock::blockPage#1 = $40 Adding number conversion cast (unumber) $100 in memoryRemapBlock::memoryPage#1 = $100 @@ -410,17 +410,17 @@ Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#3 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#3 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#3 = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#1 -Inlining cast *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#1 +Inlining cast *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#1 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#1 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#1 = (unumber)0 -Inlining cast *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$47 -Inlining cast *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$53 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = (unumber)1 +Inlining cast *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$47 +Inlining cast *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$53 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = (unumber)1 Inlining cast memcpy_dma4::dest_bank#0 = (unumber)1 Inlining cast memcpy_dma4::src_bank#0 = (unumber)0 Inlining cast memoryRemapBlock::blockPage#0 = (unumber)$40 @@ -428,23 +428,23 @@ Inlining cast memoryRemapBlock::memoryPage#0 = (unumber)$100 Inlining cast memoryRemap::remapBlocks#2 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#2 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#2 = (unumber)0 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$ff +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = (unumber)$ff Inlining cast memoryRemapBlock::blockPage#1 = (unumber)$40 Inlining cast memoryRemapBlock::memoryPage#1 = (unumber)$100 Inlining cast memoryRemap::remapBlocks#3 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#3 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#3 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (struct MOS4569_VICIII*) 53248 -Simplifying constant pointer cast (struct MEGA65_VICIV*) 53248 -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 20992 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (struct MOS4569_VICIII *) 53248 +Simplifying constant pointer cast (struct MEGA65_VICIV *) 53248 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 2048 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 65534 +Simplifying constant pointer cast (char *) 20992 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Simplifying constant integer cast $f @@ -464,7 +464,7 @@ Simplifying constant integer cast $40 Simplifying constant integer cast $40 Simplifying constant integer cast 1 Simplifying constant integer cast 1 -Simplifying constant pointer cast (void*) 0 +Simplifying constant pointer cast (void *) 0 Simplifying constant integer cast 0 Simplifying constant integer cast $40 Simplifying constant integer cast $100 @@ -480,43 +480,43 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $47 -Finalized unsigned number type (byte) $53 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $47 +Finalized unsigned number type (char) $53 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#4 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#4 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Alias memcpy_dma4::num#0 = main::$1 Alias main::i#2 = main::i#3 Alias main::mem_destroy_i#3 = main::mem_destroy_i#4 @@ -530,7 +530,7 @@ Identical Phi Values main::mem_destroy_i#3 main::mem_destroy_i#1 Identical Phi Values irq::raster#1 irq::raster#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$7 [76] if(main::i#2<$f0) goto main::@4 -Simple Condition irq::$5 [93] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 +Simple Condition irq::$5 [93] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [48] memcpy_dma4::num#0 = MUSIC_END - MUSIC Successful SSA optimization Pass2ConstantRValueConsolidation @@ -539,9 +539,9 @@ Constant memoryRemap::lowerPageOffset#1 = 0 Constant memoryRemap::upperPageOffset#1 = 0 Constant memcpy_dma4::num#0 = MUSIC_END-MUSIC Constant memcpy_dma4::dest_bank#0 = 1 -Constant memcpy_dma4::dest#0 = (void*) 0 +Constant memcpy_dma4::dest#0 = (void *) 0 Constant memcpy_dma4::src_bank#0 = 0 -Constant memcpy_dma4::src#0 = (void*)upperCodeData +Constant memcpy_dma4::src#0 = (void *)upperCodeData Constant memoryRemapBlock::blockPage#0 = $40 Constant memoryRemapBlock::memoryPage#0 = $100 Constant memoryRemap::remapBlocks#2 = 0 @@ -555,10 +555,10 @@ Constant memoryRemap::remapBlocks#3 = 0 Constant memoryRemap::lowerPageOffset#3 = 0 Constant memoryRemap::upperPageOffset#3 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memcpy_dma4::src#0 in [26] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 -Constant value identified (byte*)memcpy_dma4::dest#0 in [28] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 +Constant value identified (char *)memcpy_dma4::src#0 in [26] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 +Constant value identified (char *)memcpy_dma4::dest#0 in [28] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero (byte*)DMA in [33] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 +Simplifying expression containing zero (char *)DMA in [33] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -630,11 +630,11 @@ Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings memoryRemap::remapBlocks#0 Constant inlined memoryRemap::remapBlocks#0 = memoryRemapBlock::blockBits#0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $4000 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $4000 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@9(between main::@3 and main::@2) Adding NOP phi() at start of irq::@4 @@ -664,8 +664,8 @@ FINAL CONTROL FLOW GRAPH __interrupt(hardware_clobber) void irq() irq: scope:[irq] from - [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) [2] call memoryRemapBlock to:irq::@4 irq::@4: scope:[irq] from irq @@ -677,13 +677,13 @@ irq::@1: scope:[irq] from irq::@4 [6] call memoryRemap to:irq::@5 irq::@5: scope:[irq] from irq::@1 - [7] irq::raster#0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) + [7] irq::raster#0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) to:irq::@2 irq::@2: scope:[irq] from irq::@2 irq::@5 - [8] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 + [8] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 to:irq::@3 irq::@3: scope:[irq] from irq::@2 - [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) + [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) to:irq::@return irq::@return: scope:[irq] from irq::@3 [10] return @@ -695,13 +695,13 @@ main: scope:[main] from [12] call memoryRemap to:main::@5 main::@5: scope:[main] from main - [13] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 - [14] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 - [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 - [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 + [13] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 + [14] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 + [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 + [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [17] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [18] *PROCPORT = PROCPORT_RAM_IO - [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 + [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [20] call memcpy_dma4 to:main::@6 main::@6: scope:[main] from main::@5 @@ -717,10 +717,10 @@ main::@1: scope:[main] from main::@7 [26] call memoryRemap to:main::@8 main::@8: scope:[main] from main::@1 - [27] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR - [28] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff - [29] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f - [30] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER + [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff + [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f + [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [31] *HARDWARE_IRQ = &irq asm { cli } to:main::@2 @@ -738,7 +738,7 @@ main::@4: scope:[main] from main::@3 [39] main::i#1 = ++ main::i#2 to:main::@3 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) +void memoryRemapBlock(char blockPage , unsigned int memoryPage) memoryRemapBlock: scope:[memoryRemapBlock] from irq main::@6 [40] phi() [41] call memoryRemap @@ -747,7 +747,7 @@ memoryRemapBlock::@return: scope:[memoryRemapBlock] from memoryRemapBlock [42] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from irq::@1 main main::@1 memoryRemapBlock [43] memoryRemap::upperPageOffset#4 = phi( irq::@1/0, main/0, main::@1/0, memoryRemapBlock/memoryRemapBlock::pageOffset#0 ) [43] memoryRemap::remapBlocks#4 = phi( irq::@1/0, main/0, main::@1/0, memoryRemapBlock/memoryRemapBlock::blockBits#0 ) @@ -768,20 +768,20 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [55] return to:@return -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) memcpy_dma4: scope:[memcpy_dma4] from main::@5 - [56] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [57] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 - [58] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 - [59] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 - [60] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 - [61] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 - [62] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [63] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [64] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 - [66] *((byte*)DMA) = byte0 &memcpy_dma_command4 - [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 + [56] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [57] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 + [58] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 + [59] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 + [60] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 + [61] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 + [62] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [63] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [64] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 + [66] *((char *)DMA) = byte0 &memcpy_dma_command4 + [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 to:memcpy_dma4::@return memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 [68] return @@ -790,47 +790,47 @@ memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 VARIABLE REGISTER WEIGHTS __interrupt(hardware_clobber) void irq() -byte irq::raster -byte irq::raster#0 6.5 +char irq::raster +char irq::raster#0 // 6.5 void main() -byte main::i -byte main::i#1 202.0 -byte main::i#2 168.33333333333331 -byte main::mem_destroy_i -byte main::mem_destroy_i#1 22.4 -byte main::mem_destroy_i#2 67.0 -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) -void* memcpy_dma4::dest -byte memcpy_dma4::dest_bank -byte memcpy_dma4::dmaMode -byte memcpy_dma4::dmaMode#0 2.0 -word memcpy_dma4::num -void* memcpy_dma4::src -byte memcpy_dma4::src_bank -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 67.33333333333333 -byte~ memoryRemap::$2 202.0 -byte~ memoryRemap::$3 202.0 -byte~ memoryRemap::$6 67.33333333333333 -byte~ memoryRemap::$7 202.0 -byte~ memoryRemap::$8 202.0 -volatile byte memoryRemap::aVal loadstore 10.1 -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#4 67.33333333333333 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#4 28.857142857142858 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#4 25.25 -volatile byte memoryRemap::xVal loadstore 16.833333333333332 -volatile byte memoryRemap::yVal loadstore 20.2 -volatile byte memoryRemap::zVal loadstore 101.0 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -byte memoryRemapBlock::blockBits -byte memoryRemapBlock::blockPage -word memoryRemapBlock::memoryPage -word memoryRemapBlock::pageOffset +char main::i +char main::i#1 // 202.0 +char main::i#2 // 168.33333333333331 +char main::mem_destroy_i +char main::mem_destroy_i#1 // 22.4 +char main::mem_destroy_i#2 // 67.0 +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) +void *memcpy_dma4::dest +char memcpy_dma4::dest_bank +char memcpy_dma4::dmaMode +char memcpy_dma4::dmaMode#0 // 2.0 +unsigned int memcpy_dma4::num +void *memcpy_dma4::src +char memcpy_dma4::src_bank +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command4 = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 // 67.33333333333333 +char memoryRemap::$2 // 202.0 +char memoryRemap::$3 // 202.0 +char memoryRemap::$6 // 67.33333333333333 +char memoryRemap::$7 // 202.0 +char memoryRemap::$8 // 202.0 +__loadstore volatile char memoryRemap::aVal // 10.1 +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#4 // 67.33333333333333 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#4 // 28.857142857142858 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#4 // 25.25 +__loadstore volatile char memoryRemap::xVal // 16.833333333333332 +__loadstore volatile char memoryRemap::yVal // 20.2 +__loadstore volatile char memoryRemap::zVal // 101.0 +void memoryRemapBlock(char blockPage , unsigned int memoryPage) +char memoryRemapBlock::block +char memoryRemapBlock::blockBits +char memoryRemapBlock::blockPage +unsigned int memoryRemapBlock::memoryPage +unsigned int memoryRemapBlock::pageOffset Initial phi equivalence classes [ main::mem_destroy_i#2 main::mem_destroy_i#1 ] @@ -889,22 +889,22 @@ Allocated zp[1]:19 [ memoryRemap::zVal ] Allocated zp[1]:20 [ memcpy_dma4::dmaMode#0 ] Allocated mem[12] [ memcpy_dma_command4 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] callexecute *musicPlay [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z Statement [10] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [13] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [14] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [13] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [14] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a Statement [17] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a Statement [18] *PROCPORT = PROCPORT_RAM_IO [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a Statement asm { lda#0 } always clobbers reg byte a Statement [24] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [27] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a -Statement [28] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [ ] ( [ ] { } ) always clobbers reg byte a -Statement [29] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a -Statement [30] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [ ] ( [ ] { } ) always clobbers reg byte a +Statement [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [31] *HARDWARE_IRQ = &irq [ ] ( [ ] { } ) always clobbers reg byte a Statement [38] DEFAULT_SCREEN[main::i#2] = MUSIC[main::i#2] [ main::mem_destroy_i#1 main::i#2 ] ( [ main::mem_destroy_i#1 main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::mem_destroy_i#2 main::mem_destroy_i#1 ] @@ -919,33 +919,33 @@ Statement [50] memoryRemap::$6 = memoryRemap::remapBlocks#4 & $f0 [ memoryRemap: Statement [52] memoryRemap::$8 = memoryRemap::$7 & $f [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] ( memoryRemap:6 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemap:12 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemap:26 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemapBlock:2::memoryRemap:41 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemapBlock:22::memoryRemap:41 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ memoryRemap::$6 ] Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [57] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [57] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:20 [ memcpy_dma4::dmaMode#0 ] -Statement [58] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [59] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [60] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [61] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [62] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [63] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [64] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [66] *((byte*)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [58] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [59] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [60] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [61] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [62] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [63] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [64] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [66] *((char *)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] callexecute *musicPlay [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z Statement [10] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [13] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [14] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [13] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [14] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a Statement [17] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a Statement [18] *PROCPORT = PROCPORT_RAM_IO [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 [ memcpy_dma_command4 ] ( [ memcpy_dma_command4 ] { } ) always clobbers reg byte a Statement asm { lda#0 } always clobbers reg byte a Statement [24] callexecute *musicInit [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [27] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a -Statement [28] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [ ] ( [ ] { } ) always clobbers reg byte a -Statement [29] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a -Statement [30] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a +Statement [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff [ ] ( [ ] { } ) always clobbers reg byte a +Statement [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [31] *HARDWARE_IRQ = &irq [ ] ( [ ] { } ) always clobbers reg byte a Statement [38] DEFAULT_SCREEN[main::i#2] = MUSIC[main::i#2] [ main::mem_destroy_i#1 main::i#2 ] ( [ main::mem_destroy_i#1 main::i#2 ] { } ) always clobbers reg byte a Statement [44] memoryRemap::aVal = byte0 memoryRemap::lowerPageOffset#4 [ memoryRemap::lowerPageOffset#4 memoryRemap::remapBlocks#4 memoryRemap::upperPageOffset#4 memoryRemap::aVal ] ( memoryRemap:6 [ memoryRemap::lowerPageOffset#4 memoryRemap::remapBlocks#4 memoryRemap::upperPageOffset#4 memoryRemap::aVal ] { } memoryRemap:12 [ memcpy_dma_command4 memoryRemap::lowerPageOffset#4 memoryRemap::remapBlocks#4 memoryRemap::upperPageOffset#4 memoryRemap::aVal ] { } memoryRemap:26 [ memoryRemap::lowerPageOffset#4 memoryRemap::remapBlocks#4 memoryRemap::upperPageOffset#4 memoryRemap::aVal ] { } memoryRemapBlock:2::memoryRemap:41 [ memoryRemap::lowerPageOffset#4 memoryRemap::remapBlocks#4 memoryRemap::upperPageOffset#4 memoryRemap::aVal ] { } memoryRemapBlock:22::memoryRemap:41 [ memoryRemap::lowerPageOffset#4 memoryRemap::remapBlocks#4 memoryRemap::upperPageOffset#4 memoryRemap::aVal ] { } ) always clobbers reg byte a @@ -955,16 +955,16 @@ Statement [49] memoryRemap::yVal = byte0 memoryRemap::upperPageOffset#4 [ memor Statement [50] memoryRemap::$6 = memoryRemap::remapBlocks#4 & $f0 [ memoryRemap::upperPageOffset#4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 ] ( memoryRemap:6 [ memoryRemap::upperPageOffset#4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 ] { } memoryRemap:12 [ memcpy_dma_command4 memoryRemap::upperPageOffset#4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 ] { } memoryRemap:26 [ memoryRemap::upperPageOffset#4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 ] { } memoryRemapBlock:2::memoryRemap:41 [ memoryRemap::upperPageOffset#4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 ] { } memoryRemapBlock:22::memoryRemap:41 [ memoryRemap::upperPageOffset#4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 ] { } ) always clobbers reg byte a Statement [52] memoryRemap::$8 = memoryRemap::$7 & $f [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] ( memoryRemap:6 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemap:12 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemap:26 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemapBlock:2::memoryRemap:41 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemapBlock:22::memoryRemap:41 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [57] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [58] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [59] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [60] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [61] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [62] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [63] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [64] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [66] *((byte*)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [57] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [58] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [59] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [60] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [61] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [62] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [63] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [64] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [66] *((char *)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:20 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::mem_destroy_i#2 main::mem_destroy_i#1 ] : zp[1]:2 , reg byte x , reg byte y , reg byte z , Potential registers zp[1]:3 [ main::i#2 main::i#1 ] : zp[1]:3 , reg byte x , reg byte y , reg byte z , Potential registers zp[2]:4 [ memoryRemap::lowerPageOffset#4 ] : zp[2]:4 , @@ -1131,11 +1131,11 @@ irq: { phx phy phz - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // [2] call memoryRemapBlock // Remap memory to put music at $4000 @@ -1175,19 +1175,19 @@ irq: { jmp __b5 // irq::@5 __b5: - // [7] irq::raster#0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- vbuaa=_deref_pbuc1 + // [7] irq::raster#0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- vbuaa=_deref_pbuc1 // Wait for the next raster line lda VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER jmp __b2 // irq::@2 __b2: - // [8] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 -- _deref_pbuc1_eq_vbuaa_then_la1 + // [8] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 -- _deref_pbuc1_eq_vbuaa_then_la1 cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER beq __b2 jmp __b3 // irq::@3 __b3: - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __breturn // irq::@return @@ -1225,19 +1225,19 @@ main: { jmp __b5 // main::@5 __b5: - // [13] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 + // [13] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 // Enable MEGA65 features lda #$47 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY - // [14] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 + // [14] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 lda #$53 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY - // [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable 48MHz fast mode lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB - // [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC @@ -1248,7 +1248,7 @@ main: { // [18] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 + // [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 // open sideborder lda #1 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO @@ -1298,20 +1298,20 @@ main: { jmp __b8 // main::@8 __b8: - // [27] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Set up raster interrupts C64 style // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [28] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -- _deref_pbuc1=vbuc2 + // [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -- _deref_pbuc1=vbuc2 // Set raster line to 0xff lda #$ff sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [29] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [30] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE @@ -1368,6 +1368,7 @@ main: { // blockPage: Page address of the 8K memory block to remap (ie. the block that is remapped is $100 * the passed page address.) // memoryPage: Page address of the memory that the block should point to in the 1MB memory space of the MEGA65. // Ie. the memory that will be pointed to is $100 * the passed page address. Only the lower 12bits of the passed value is used. +// void memoryRemapBlock(char blockPage, unsigned int memoryPage) memoryRemapBlock: { // Find the page offset (the number of pages to offset the block) .const pageOffset = $100-$40 @@ -1421,7 +1422,7 @@ memoryRemapBlock: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap(byte register(Z) remapBlocks, word zp(2) lowerPageOffset, word zp(4) upperPageOffset) +// void memoryRemap(__register(Z) char remapBlocks, __zp(2) unsigned int lowerPageOffset, __zp(4) unsigned int upperPageOffset) memoryRemap: { .label aVal = 6 .label xVal = 8 @@ -1487,56 +1488,57 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-63) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma4(char dest_bank, void *dest, char src_bank, void *src, unsigned int num) memcpy_dma4: { .const num = MUSIC_END-MUSIC .const dest_bank = 1 .const src_bank = 0 .label dest = 0 .label src = upperCodeData - // [56] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [56] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [57] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 + // [57] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [58] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 + // [58] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 lda #src_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK - // [59] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 + // [59] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 lda #src sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [60] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [60] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK - // [61] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 + // [61] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [62] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [62] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [63] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [63] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [64] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [64] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command4 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [66] *((byte*)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [66] *((char *)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #>5 -byte memoryRemapBlock::blockBits -constant byte memoryRemapBlock::blockBits#0 blockBits = 1<>5 // block +char memoryRemapBlock::blockBits +__constant char memoryRemapBlock::blockBits#0 = 1<IRQ_STATUS = IRQ_RASTER - // [0] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // (VICII->BORDER_COLOR)++; - // [1] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 + // [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = ++ *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_inc__deref_pbuc1 inc VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // memoryRemapBlock(0x40, 0x100) // [2] call memoryRemapBlock @@ -1867,18 +1869,18 @@ irq: { jsr memoryRemap // irq::@5 // char raster = VICII->RASTER - // [7] irq::raster#0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- vbuaa=_deref_pbuc1 + // [7] irq::raster#0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- vbuaa=_deref_pbuc1 // Wait for the next raster line lda VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // irq::@2 __b2: // while(VICII->RASTER==raster) - // [8] if(*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 -- _deref_pbuc1_eq_vbuaa_then_la1 + // [8] if(*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)==irq::raster#0) goto irq::@2 -- _deref_pbuc1_eq_vbuaa_then_la1 cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER beq __b2 // irq::@3 // (VICII->BORDER_COLOR)--; - // [9] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 + // [9] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = -- *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) -- _deref_pbuc1=_dec__deref_pbuc1 dec VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR // irq::@return // } @@ -1912,22 +1914,22 @@ main: { jsr memoryRemap // main::@5 // VICIII->KEY = 0x47 - // [13] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 + // [13] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 // Enable MEGA65 features lda #$47 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY // VICIII->KEY = 0x53 - // [14] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 + // [14] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 lda #$53 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY // VICIV->CONTROLB |= 0x40 - // [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable 48MHz fast mode lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB // VICIV->CONTROLC |= 0x40 - // [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC @@ -1941,7 +1943,7 @@ main: { lda #PROCPORT_RAM_IO sta PROCPORT // VICIV->SIDBDRWD_LO = 1 - // [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 + // [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 // open sideborder lda #1 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO @@ -1982,23 +1984,23 @@ main: { jsr memoryRemap // main::@8 // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [27] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [27] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Set up raster interrupts C64 style // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->RASTER = 0xff - // [28] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -- _deref_pbuc1=vbuc2 + // [28] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = $ff -- _deref_pbuc1=vbuc2 // Set raster line to 0xff lda #$ff sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // VICII->CONTROL1 &= 0x7f - // [29] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [29] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->IRQ_ENABLE = IRQ_RASTER - // [30] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [30] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE @@ -2055,6 +2057,7 @@ main: { // blockPage: Page address of the 8K memory block to remap (ie. the block that is remapped is $100 * the passed page address.) // memoryPage: Page address of the memory that the block should point to in the 1MB memory space of the MEGA65. // Ie. the memory that will be pointed to is $100 * the passed page address. Only the lower 12bits of the passed value is used. +// void memoryRemapBlock(char blockPage, unsigned int memoryPage) memoryRemapBlock: { // Find the page offset (the number of pages to offset the block) .const pageOffset = $100-$40 @@ -2107,7 +2110,7 @@ memoryRemapBlock: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap(byte register(Z) remapBlocks, word zp(2) lowerPageOffset, word zp(4) upperPageOffset) +// void memoryRemap(__register(Z) char remapBlocks, __zp(2) unsigned int lowerPageOffset, __zp(4) unsigned int upperPageOffset) memoryRemap: { .label aVal = 6 .label xVal = 8 @@ -2183,6 +2186,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-63) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma4(char dest_bank, void *dest, char src_bank, void *src, unsigned int num) memcpy_dma4: { .const num = MUSIC_END-MUSIC .const dest_bank = 1 @@ -2190,60 +2194,60 @@ memcpy_dma4: { .label dest = 0 .label src = upperCodeData // char dmaMode = DMA->EN018B - // [56] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [56] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma_command4.count = num - // [57] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 + // [57] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // memcpy_dma_command4.src_bank = src_bank - // [58] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 + // [58] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 lda #src_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK // memcpy_dma_command4.src = src - // [59] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 + // [59] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 lda #src sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // memcpy_dma_command4.dest_bank = dest_bank - // [60] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [60] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK // memcpy_dma_command4.dest = dest - // [61] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 + // [61] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // DMA->EN018B = 1 - // [62] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [62] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [63] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [63] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [64] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [64] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(&memcpy_dma_command4) - // [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command4 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ADDRLSBTRIG = BYTE0(&memcpy_dma_command4) - // [66] *((byte*)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [66] *((char *)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = dmaMode - // [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 -- _deref_pbuc1=vbuxx + // [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma4::@return diff --git a/src/test/ref/examples/mega65/banked-music.sym b/src/test/ref/examples/mega65/banked-music.sym index e0eb0b53d..8ccdbbc20 100644 --- a/src/test/ref/examples/mega65/banked-music.sym +++ b/src/test/ref/examples/mega65/banked-music.sym @@ -1,93 +1,93 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_COPY = 0 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant const byte IRQ_RASTER = 1 -constant byte* MUSIC[] = kickasm {{ .const music = LoadSid("Cybernoid_II_4000.sid") +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_COPY = 0 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant const char IRQ_RASTER = 1 +__constant char MUSIC[] = kickasm {{ .const music = LoadSid("Cybernoid_II_4000.sid") .fill music.size, music.getData(i) }} -constant byte* const MUSIC_END = (byte*) 20992 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c -constant byte OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant struct MOS4569_VICIII* const VICIII = (struct MOS4569_VICIII*) 53248 -constant struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*) 53248 +__constant char * const MUSIC_END = (char *) 20992 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c +__constant char OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant struct MOS4569_VICIII * const VICIII = (struct MOS4569_VICIII *) 53248 +__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *) 53248 __interrupt(hardware_clobber) void irq() -byte irq::raster -byte irq::raster#0 reg byte a 6.5 +char irq::raster +char irq::raster#0 // reg byte a 6.5 void main() -byte main::i -byte main::i#1 reg byte y 202.0 -byte main::i#2 reg byte y 168.33333333333331 -byte main::mem_destroy_i -byte main::mem_destroy_i#1 reg byte x 22.4 -byte main::mem_destroy_i#2 reg byte x 67.0 -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) -void* memcpy_dma4::dest -constant void* memcpy_dma4::dest#0 dest = (void*) 0 -byte memcpy_dma4::dest_bank -constant byte memcpy_dma4::dest_bank#0 dest_bank = 1 -byte memcpy_dma4::dmaMode -byte memcpy_dma4::dmaMode#0 reg byte x 2.0 -word memcpy_dma4::num -constant word memcpy_dma4::num#0 num = MUSIC_END-MUSIC -void* memcpy_dma4::src -constant void* memcpy_dma4::src#0 src = (void*)upperCodeData -byte memcpy_dma4::src_bank -constant byte memcpy_dma4::src_bank#0 src_bank = 0 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 zp[1]:7 67.33333333333333 -byte~ memoryRemap::$2 reg byte a 202.0 -byte~ memoryRemap::$3 reg byte a 202.0 -byte~ memoryRemap::$6 zp[1]:10 67.33333333333333 -byte~ memoryRemap::$7 reg byte a 202.0 -byte~ memoryRemap::$8 reg byte a 202.0 -volatile byte memoryRemap::aVal loadstore zp[1]:6 10.1 -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#4 lowerPageOffset zp[2]:2 67.33333333333333 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#4 reg byte z 28.857142857142858 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#4 upperPageOffset zp[2]:4 25.25 -volatile byte memoryRemap::xVal loadstore zp[1]:8 16.833333333333332 -volatile byte memoryRemap::yVal loadstore zp[1]:9 20.2 -volatile byte memoryRemap::zVal loadstore zp[1]:11 101.0 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -constant byte memoryRemapBlock::block#0 block = $40>>5 -byte memoryRemapBlock::blockBits -constant byte memoryRemapBlock::blockBits#0 blockBits = 1<>5 // block +char memoryRemapBlock::blockBits +__constant char memoryRemapBlock::blockBits#0 = 1<DMA_SCREEN_UP sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [6] *((byte*)DMA) = byte0 &DMA_SCREEN_UP -- _deref_pbuc1=vbuc2 + // [6] *((char *)DMA) = byte0 &DMA_SCREEN_UP -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = 1 - // [2] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [2] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Enable enable F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [3] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [3] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [4] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [4] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(&DMA_SCREEN_UP) - // [5] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &DMA_SCREEN_UP -- _deref_pbuc1=vbuc2 + // [5] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &DMA_SCREEN_UP -- _deref_pbuc1=vbuc2 lda #>DMA_SCREEN_UP sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ADDRLSBTRIG = BYTE0(&DMA_SCREEN_UP) - // [6] *((byte*)DMA) = byte0 &DMA_SCREEN_UP -- _deref_pbuc1=vbuc2 + // [6] *((char *)DMA) = byte0 &DMA_SCREEN_UP -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = 0 - // [7] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 0 -- _deref_pbuc1=vbuc2 // Re-enable F018A mode lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B @@ -629,6 +630,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 diff --git a/src/test/ref/examples/mega65/dma-test.sym b/src/test/ref/examples/mega65/dma-test.sym index 15df2ca72..bb348d936 100644 --- a/src/test/ref/examples/mega65/dma-test.sym +++ b/src/test/ref/examples/mega65/dma-test.sym @@ -1,20 +1,20 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_COPY = 0 -volatile struct DMA_LIST_F018B DMA_SCREEN_UP loadstore mem[12] = { command: DMA_COMMAND_COPY, count: (word)$18*$50, src: DEFAULT_SCREEN+$50, src_bank: 0, dest: DEFAULT_SCREEN, dest_bank: 0, sub_command: 0, modulo: 0 } -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_COPY = 0 +__loadstore volatile struct DMA_LIST_F018B DMA_SCREEN_UP = { command: DMA_COMMAND_COPY, count: (unsigned int)$18*$50, src: DEFAULT_SCREEN+$50, src_bank: 0, dest: DEFAULT_SCREEN, dest_bank: 0, sub_command: 0, modulo: 0 } // mem[12] +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:3 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:4 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:5 11.0 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:2 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:3 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:4 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:5 11.0 zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dma-test2.asm b/src/test/ref/examples/mega65/dma-test2.asm index 7cb073aeb..d498d5270 100644 --- a/src/test/ref/examples/mega65/dma-test2.asm +++ b/src/test/ref/examples/mega65/dma-test2.asm @@ -68,6 +68,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -101,6 +102,7 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma(void *dest, void *src, unsigned int num) memcpy_dma: { .const num = $18*$50 .label dest = DEFAULT_SCREEN diff --git a/src/test/ref/examples/mega65/dma-test2.cfg b/src/test/ref/examples/mega65/dma-test2.cfg index 3877c1e48..10c8eb2d0 100644 --- a/src/test/ref/examples/mega65/dma-test2.cfg +++ b/src/test/ref/examples/mega65/dma-test2.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memcpy_dma + [3] call memcpy_dma to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -24,18 +24,18 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memcpy_dma(void* memcpy_dma::dest , void* memcpy_dma::src , word memcpy_dma::num) +void memcpy_dma(void *dest , void *src , unsigned int num) memcpy_dma: scope:[memcpy_dma] from main::@1 - [11] memcpy_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [12] *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 - [13] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 - [14] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 - [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command - [19] *((byte*)DMA) = byte0 &memcpy_dma_command - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 + [11] memcpy_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [12] *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 + [13] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 + [14] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 + [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command + [19] *((char *)DMA) = byte0 &memcpy_dma_command + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 to:memcpy_dma::@return memcpy_dma::@return: scope:[memcpy_dma] from memcpy_dma [21] return diff --git a/src/test/ref/examples/mega65/dma-test2.log b/src/test/ref/examples/mega65/dma-test2.log index 618b6fc58..b244030e0 100644 --- a/src/test/ref/examples/mega65/dma-test2.log +++ b/src/test/ref/examples/mega65/dma-test2.log @@ -50,7 +50,7 @@ Eliminating unused variable with no statement memset_dma_command CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main memoryRemap::upperPageOffset#1 = phi( main/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#1 = phi( main/memoryRemap::remapBlocks#0 ) @@ -71,21 +71,21 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memcpy_dma(void* memcpy_dma::dest , void* memcpy_dma::src , word memcpy_dma::num) +void memcpy_dma(void *dest , void *src , unsigned int num) memcpy_dma: scope:[memcpy_dma] from main::@1 memcpy_dma::dest#1 = phi( main::@1/memcpy_dma::dest#0 ) memcpy_dma::src#1 = phi( main::@1/memcpy_dma::src#0 ) memcpy_dma::num#1 = phi( main::@1/memcpy_dma::num#0 ) - memcpy_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#1 - *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = ((byte*)) memcpy_dma::src#1 - *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((byte*)) memcpy_dma::dest#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 + memcpy_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#1 + *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = ((char *)) memcpy_dma::src#1 + *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((char *)) memcpy_dma::dest#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 to:memcpy_dma::@return memcpy_dma::@return: scope:[memcpy_dma] from memcpy_dma return @@ -96,13 +96,13 @@ main: scope:[main] from __start memoryRemap::remapBlocks#0 = 0 memoryRemap::lowerPageOffset#0 = 0 memoryRemap::upperPageOffset#0 = 0 - call memoryRemap + call memoryRemap to:main::@1 main::@1: scope:[main] from main - memcpy_dma::dest#0 = (void*)DEFAULT_SCREEN - memcpy_dma::src#0 = (void*)DEFAULT_SCREEN+$50 + memcpy_dma::dest#0 = (void *)DEFAULT_SCREEN + memcpy_dma::src#0 = (void *)DEFAULT_SCREEN+$50 memcpy_dma::num#0 = $18*$50 - call memcpy_dma + call memcpy_dma to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -121,52 +121,52 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_COPY = 0 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_COPY = 0 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void __start() void main() -void memcpy_dma(void* memcpy_dma::dest , void* memcpy_dma::src , word memcpy_dma::num) -void* memcpy_dma::dest -void* memcpy_dma::dest#0 -void* memcpy_dma::dest#1 -byte memcpy_dma::dmaMode -byte memcpy_dma::dmaMode#0 -word memcpy_dma::num -word memcpy_dma::num#0 -word memcpy_dma::num#1 -void* memcpy_dma::src -void* memcpy_dma::src#0 -void* memcpy_dma::src#1 -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore +void memcpy_dma(void *dest , void *src , unsigned int num) +void *memcpy_dma::dest +void *memcpy_dma::dest#0 +void *memcpy_dma::dest#1 +char memcpy_dma::dmaMode +char memcpy_dma::dmaMode#0 +unsigned int memcpy_dma::num +unsigned int memcpy_dma::num#0 +unsigned int memcpy_dma::num#1 +void *memcpy_dma::src +void *memcpy_dma::src#0 +void *memcpy_dma::src#1 +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -175,27 +175,27 @@ Adding number conversion cast (unumber) $f0 in memoryRemap::$6 = memoryRemap::re Adding number conversion cast (unumber) memoryRemap::$6 in memoryRemap::$6 = memoryRemap::remapBlocks#1 & (unumber)$f0 Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 & $f Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#0 = 0 -Adding number conversion cast (unumber) $50 in memcpy_dma::src#0 = (void*)DEFAULT_SCREEN+$50 +Adding number conversion cast (unumber) $50 in memcpy_dma::src#0 = (void *)DEFAULT_SCREEN+$50 Adding number conversion cast (unumber) $18*$50 in memcpy_dma::num#0 = $18*$50 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#1 -Inlining cast *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#1 +Inlining cast *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#0 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#0 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#0 = (unumber)0 Inlining cast memcpy_dma::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 2048 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 2048 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -208,21 +208,21 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $50 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Identical Phi Values memoryRemap::lowerPageOffset#1 memoryRemap::lowerPageOffset#0 Identical Phi Values memoryRemap::remapBlocks#1 memoryRemap::remapBlocks#0 Identical Phi Values memoryRemap::upperPageOffset#1 memoryRemap::upperPageOffset#0 @@ -235,14 +235,14 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant memoryRemap::remapBlocks#0 = 0 Constant memoryRemap::lowerPageOffset#0 = 0 Constant memoryRemap::upperPageOffset#0 = 0 -Constant memcpy_dma::dest#0 = (void*)DEFAULT_SCREEN -Constant memcpy_dma::src#0 = (void*)DEFAULT_SCREEN+$50 +Constant memcpy_dma::dest#0 = (void *)DEFAULT_SCREEN +Constant memcpy_dma::src#0 = (void *)DEFAULT_SCREEN+$50 Constant memcpy_dma::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memcpy_dma::src#0 in [16] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 -Constant value identified (byte*)memcpy_dma::dest#0 in [17] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 +Constant value identified (char *)memcpy_dma::src#0 in [16] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 +Constant value identified (char *)memcpy_dma::dest#0 in [17] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero (byte*)DMA in [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command +Simplifying expression containing zero (char *)DMA in [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG Successful SSA optimization PassNEliminateUnusedVars @@ -296,12 +296,12 @@ Successful SSA optimization PassNEliminateUnusedVars Constant inlined memoryRemap::$8 = 0 Constant inlined memoryRemap::$3 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -320,17 +320,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memcpy_dma + [3] call memcpy_dma to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -342,18 +342,18 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memcpy_dma(void* memcpy_dma::dest , void* memcpy_dma::src , word memcpy_dma::num) +void memcpy_dma(void *dest , void *src , unsigned int num) memcpy_dma: scope:[memcpy_dma] from main::@1 - [11] memcpy_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [12] *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 - [13] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 - [14] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 - [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command - [19] *((byte*)DMA) = byte0 &memcpy_dma_command - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 + [11] memcpy_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [12] *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 + [13] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 + [14] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 + [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command + [19] *((char *)DMA) = byte0 &memcpy_dma_command + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 to:memcpy_dma::@return memcpy_dma::@return: scope:[memcpy_dma] from memcpy_dma [21] return @@ -362,21 +362,21 @@ memcpy_dma::@return: scope:[memcpy_dma] from memcpy_dma VARIABLE REGISTER WEIGHTS void main() -void memcpy_dma(void* memcpy_dma::dest , void* memcpy_dma::src , word memcpy_dma::num) -void* memcpy_dma::dest -byte memcpy_dma::dmaMode -byte memcpy_dma::dmaMode#0 2.4444444444444446 -word memcpy_dma::num -void* memcpy_dma::src -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore 5.5 -volatile byte memoryRemap::zVal loadstore 11.0 +void memcpy_dma(void *dest , void *src , unsigned int num) +void *memcpy_dma::dest +char memcpy_dma::dmaMode +char memcpy_dma::dmaMode#0 // 2.4444444444444446 +unsigned int memcpy_dma::num +void *memcpy_dma::src +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // 5.5 +__loadstore volatile char memoryRemap::zVal // 11.0 Initial phi equivalence classes Added variable memoryRemap::aVal to live range equivalence class [ memoryRemap::aVal ] @@ -404,28 +404,28 @@ Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( me Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memcpy_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memcpy_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [12] *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [12] *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ memcpy_dma::dmaMode#0 ] -Statement [13] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [14] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA) = byte0 &memcpy_dma_command [ memcpy_dma::dmaMode#0 ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [13] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [14] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA) = byte0 &memcpy_dma_command [ memcpy_dma::dmaMode#0 ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 ] { } ) always clobbers reg byte a Statement [5] memoryRemap::aVal = 0 [ memoryRemap::aVal ] ( memoryRemap:1 [ memcpy_dma_command memoryRemap::aVal ] { } ) always clobbers reg byte a Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( memoryRemap:1 [ memcpy_dma_command memoryRemap::aVal memoryRemap::xVal ] { } ) always clobbers reg byte a Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memcpy_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memcpy_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [12] *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [13] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [14] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA) = byte0 &memcpy_dma_command [ memcpy_dma::dmaMode#0 ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [12] *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [13] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [14] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command [ memcpy_dma::dmaMode#0 memcpy_dma_command ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 memcpy_dma_command ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA) = byte0 &memcpy_dma_command [ memcpy_dma::dmaMode#0 ] ( memcpy_dma:3 [ memcpy_dma::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ memoryRemap::aVal ] : zp[1]:2 , Potential registers zp[1]:3 [ memoryRemap::xVal ] : zp[1]:3 , Potential registers zp[1]:4 [ memoryRemap::yVal ] : zp[1]:4 , @@ -510,7 +510,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memoryRemap + // [1] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // [2] phi from main to main::@1 [phi:main->main::@1] @@ -518,7 +518,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call memcpy_dma + // [3] call memcpy_dma // Move screen up using DMA jsr memcpy_dma jmp __breturn @@ -552,6 +552,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -592,48 +593,49 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma(void *dest, void *src, unsigned int num) memcpy_dma: { .const num = $18*$50 .label dest = DEFAULT_SCREEN .label src = DEFAULT_SCREEN+$50 - // [11] memcpy_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memcpy_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [12] *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 -- _deref_pwuc1=vwuc2 + // [12] *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [13] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 -- _deref_qbuc1=pbuc2 + // [13] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 -- _deref_qbuc1=pbuc2 lda #src sta memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [14] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 -- _deref_qbuc1=pbuc2 + // [14] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [19] *((byte*)DMA) = byte0 &memcpy_dma_command -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA) = byte0 &memcpy_dma_command -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #main::@1] // main::@1 // memcpy_dma(DEFAULT_SCREEN, DEFAULT_SCREEN+80, 24*80) - // [3] call memcpy_dma + // [3] call memcpy_dma // Move screen up using DMA jsr memcpy_dma // main::@return @@ -794,6 +796,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -835,57 +838,58 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma(void *dest, void *src, unsigned int num) memcpy_dma: { .const num = $18*$50 .label dest = DEFAULT_SCREEN .label src = DEFAULT_SCREEN+$50 // char dmaMode = DMA->EN018B - // [11] memcpy_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memcpy_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma_command.count = num - // [12] *((word*)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 -- _deref_pwuc1=vwuc2 + // [12] *((unsigned int *)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // memcpy_dma_command.src = src - // [13] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma::src#0 -- _deref_qbuc1=pbuc2 + // [13] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma::src#0 -- _deref_qbuc1=pbuc2 lda #src sta memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // memcpy_dma_command.dest = dest - // [14] *((byte**)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma::dest#0 -- _deref_qbuc1=pbuc2 + // [14] *((char **)&memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memcpy_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // DMA->EN018B = 1 - // [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(&memcpy_dma_command) - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ADDRLSBTRIG = BYTE0(&memcpy_dma_command) - // [19] *((byte*)DMA) = byte0 &memcpy_dma_command -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA) = byte0 &memcpy_dma_command -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = dmaMode - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 -- _deref_pbuc1=vbuxx + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma::@return diff --git a/src/test/ref/examples/mega65/dma-test2.sym b/src/test/ref/examples/mega65/dma-test2.sym index 7c93bee4f..08665433f 100644 --- a/src/test/ref/examples/mega65/dma-test2.sym +++ b/src/test/ref/examples/mega65/dma-test2.sym @@ -1,32 +1,32 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_COPY = 0 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_COPY = 0 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void main() -void memcpy_dma(void* memcpy_dma::dest , void* memcpy_dma::src , word memcpy_dma::num) -void* memcpy_dma::dest -constant void* memcpy_dma::dest#0 dest = (void*)DEFAULT_SCREEN -byte memcpy_dma::dmaMode -byte memcpy_dma::dmaMode#0 reg byte x 2.4444444444444446 -word memcpy_dma::num -constant word memcpy_dma::num#0 num = (word)$18*$50 -void* memcpy_dma::src -constant void* memcpy_dma::src#0 src = (void*)DEFAULT_SCREEN+$50 -volatile struct DMA_LIST_F018B memcpy_dma_command loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:3 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:4 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:5 11.0 +void memcpy_dma(void *dest , void *src , unsigned int num) +void *memcpy_dma::dest +__constant void *memcpy_dma::dest#0 = (void *)DEFAULT_SCREEN // dest +char memcpy_dma::dmaMode +char memcpy_dma::dmaMode#0 // reg byte x 2.4444444444444446 +unsigned int memcpy_dma::num +__constant unsigned int memcpy_dma::num#0 = (unsigned int)$18*$50 // num +void *memcpy_dma::src +__constant void *memcpy_dma::src#0 = (void *)DEFAULT_SCREEN+$50 // src +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } // mem[12] +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:2 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:3 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:4 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:5 11.0 zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dma-test3.asm b/src/test/ref/examples/mega65/dma-test3.asm index 1779c20bb..4c103db79 100644 --- a/src/test/ref/examples/mega65/dma-test3.asm +++ b/src/test/ref/examples/mega65/dma-test3.asm @@ -70,6 +70,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -105,6 +106,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-63) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma4(char dest_bank, void *dest, char src_bank, void *src, unsigned int num) memcpy_dma4: { .const dest_bank = 0 .const src_bank = 0 diff --git a/src/test/ref/examples/mega65/dma-test3.cfg b/src/test/ref/examples/mega65/dma-test3.cfg index 39eaef98f..6a41a4308 100644 --- a/src/test/ref/examples/mega65/dma-test3.cfg +++ b/src/test/ref/examples/mega65/dma-test3.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memcpy_dma4 + [3] call memcpy_dma4 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -24,20 +24,20 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) memcpy_dma4: scope:[memcpy_dma4] from main::@1 - [11] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [12] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 - [13] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 - [14] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 - [15] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 - [16] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 - [21] *((byte*)DMA) = byte0 &memcpy_dma_command4 - [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 + [11] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [12] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 + [13] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 + [14] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 + [15] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 + [16] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 + [21] *((char *)DMA) = byte0 &memcpy_dma_command4 + [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 to:memcpy_dma4::@return memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 [23] return diff --git a/src/test/ref/examples/mega65/dma-test3.log b/src/test/ref/examples/mega65/dma-test3.log index 16cdfb0d3..738fef42a 100644 --- a/src/test/ref/examples/mega65/dma-test3.log +++ b/src/test/ref/examples/mega65/dma-test3.log @@ -50,7 +50,7 @@ Eliminating unused variable with no statement memset_dma_command CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main memoryRemap::upperPageOffset#1 = phi( main/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#1 = phi( main/memoryRemap::remapBlocks#0 ) @@ -71,25 +71,25 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) memcpy_dma4: scope:[memcpy_dma4] from main::@1 memcpy_dma4::dest#1 = phi( main::@1/memcpy_dma4::dest#0 ) memcpy_dma4::dest_bank#1 = phi( main::@1/memcpy_dma4::dest_bank#0 ) memcpy_dma4::src#1 = phi( main::@1/memcpy_dma4::src#0 ) memcpy_dma4::src_bank#1 = phi( main::@1/memcpy_dma4::src_bank#0 ) memcpy_dma4::num#1 = phi( main::@1/memcpy_dma4::num#0 ) - memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#1 - *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#1 - *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = ((byte*)) memcpy_dma4::src#1 - *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#1 - *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((byte*)) memcpy_dma4::dest#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 + memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#1 + *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#1 + *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = ((char *)) memcpy_dma4::src#1 + *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#1 + *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((char *)) memcpy_dma4::dest#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 to:memcpy_dma4::@return memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 return @@ -100,15 +100,15 @@ main: scope:[main] from __start memoryRemap::remapBlocks#0 = 0 memoryRemap::lowerPageOffset#0 = 0 memoryRemap::upperPageOffset#0 = 0 - call memoryRemap + call memoryRemap to:main::@1 main::@1: scope:[main] from main memcpy_dma4::dest_bank#0 = 0 - memcpy_dma4::dest#0 = (void*)DEFAULT_SCREEN + memcpy_dma4::dest#0 = (void *)DEFAULT_SCREEN memcpy_dma4::src_bank#0 = 0 - memcpy_dma4::src#0 = (void*)DEFAULT_SCREEN+$50 + memcpy_dma4::src#0 = (void *)DEFAULT_SCREEN+$50 memcpy_dma4::num#0 = $18*$50 - call memcpy_dma4 + call memcpy_dma4 to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -118,7 +118,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -127,60 +127,60 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_COPY = 0 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_COPY = 0 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void __start() void main() -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) -void* memcpy_dma4::dest -void* memcpy_dma4::dest#0 -void* memcpy_dma4::dest#1 -byte memcpy_dma4::dest_bank -byte memcpy_dma4::dest_bank#0 -byte memcpy_dma4::dest_bank#1 -byte memcpy_dma4::dmaMode -byte memcpy_dma4::dmaMode#0 -word memcpy_dma4::num -word memcpy_dma4::num#0 -word memcpy_dma4::num#1 -void* memcpy_dma4::src -void* memcpy_dma4::src#0 -void* memcpy_dma4::src#1 -byte memcpy_dma4::src_bank -byte memcpy_dma4::src_bank#0 -byte memcpy_dma4::src_bank#1 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) +void *memcpy_dma4::dest +void *memcpy_dma4::dest#0 +void *memcpy_dma4::dest#1 +char memcpy_dma4::dest_bank +char memcpy_dma4::dest_bank#0 +char memcpy_dma4::dest_bank#1 +char memcpy_dma4::dmaMode +char memcpy_dma4::dmaMode#0 +unsigned int memcpy_dma4::num +unsigned int memcpy_dma4::num#0 +unsigned int memcpy_dma4::num#1 +void *memcpy_dma4::src +void *memcpy_dma4::src#0 +void *memcpy_dma4::src#1 +char memcpy_dma4::src_bank +char memcpy_dma4::src_bank#0 +char memcpy_dma4::src_bank#1 +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command4 = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -189,22 +189,22 @@ Adding number conversion cast (unumber) $f0 in memoryRemap::$6 = memoryRemap::re Adding number conversion cast (unumber) memoryRemap::$6 in memoryRemap::$6 = memoryRemap::remapBlocks#1 & (unumber)$f0 Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 & $f Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memcpy_dma4::dest_bank#0 = 0 Adding number conversion cast (unumber) 0 in memcpy_dma4::src_bank#0 = 0 -Adding number conversion cast (unumber) $50 in memcpy_dma4::src#0 = (void*)DEFAULT_SCREEN+$50 +Adding number conversion cast (unumber) $50 in memcpy_dma4::src#0 = (void *)DEFAULT_SCREEN+$50 Adding number conversion cast (unumber) $18*$50 in memcpy_dma4::num#0 = $18*$50 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#1 -Inlining cast *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#1 +Inlining cast *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#0 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#0 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#0 = (unumber)0 @@ -212,8 +212,8 @@ Inlining cast memcpy_dma4::dest_bank#0 = (unumber)0 Inlining cast memcpy_dma4::src_bank#0 = (unumber)0 Inlining cast memcpy_dma4::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 2048 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 2048 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -228,23 +228,23 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $50 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Identical Phi Values memoryRemap::lowerPageOffset#1 memoryRemap::lowerPageOffset#0 Identical Phi Values memoryRemap::remapBlocks#1 memoryRemap::remapBlocks#0 Identical Phi Values memoryRemap::upperPageOffset#1 memoryRemap::upperPageOffset#0 @@ -260,15 +260,15 @@ Constant memoryRemap::remapBlocks#0 = 0 Constant memoryRemap::lowerPageOffset#0 = 0 Constant memoryRemap::upperPageOffset#0 = 0 Constant memcpy_dma4::dest_bank#0 = 0 -Constant memcpy_dma4::dest#0 = (void*)DEFAULT_SCREEN +Constant memcpy_dma4::dest#0 = (void *)DEFAULT_SCREEN Constant memcpy_dma4::src_bank#0 = 0 -Constant memcpy_dma4::src#0 = (void*)DEFAULT_SCREEN+$50 +Constant memcpy_dma4::src#0 = (void *)DEFAULT_SCREEN+$50 Constant memcpy_dma4::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memcpy_dma4::src#0 in [17] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 -Constant value identified (byte*)memcpy_dma4::dest#0 in [19] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 +Constant value identified (char *)memcpy_dma4::src#0 in [17] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 +Constant value identified (char *)memcpy_dma4::dest#0 in [19] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero (byte*)DMA in [24] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 +Simplifying expression containing zero (char *)DMA in [24] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memcpy_dma_command4 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG Successful SSA optimization PassNEliminateUnusedVars @@ -322,12 +322,12 @@ Successful SSA optimization PassNEliminateUnusedVars Constant inlined memoryRemap::$8 = 0 Constant inlined memoryRemap::$3 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -346,17 +346,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memcpy_dma4 + [3] call memcpy_dma4 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -368,20 +368,20 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) memcpy_dma4: scope:[memcpy_dma4] from main::@1 - [11] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [12] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 - [13] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 - [14] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 - [15] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 - [16] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 - [21] *((byte*)DMA) = byte0 &memcpy_dma_command4 - [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 + [11] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [12] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 + [13] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 + [14] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 + [15] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 + [16] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 + [21] *((char *)DMA) = byte0 &memcpy_dma_command4 + [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 to:memcpy_dma4::@return memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 [23] return @@ -390,23 +390,23 @@ memcpy_dma4::@return: scope:[memcpy_dma4] from memcpy_dma4 VARIABLE REGISTER WEIGHTS void main() -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) -void* memcpy_dma4::dest -byte memcpy_dma4::dest_bank -byte memcpy_dma4::dmaMode -byte memcpy_dma4::dmaMode#0 2.0 -word memcpy_dma4::num -void* memcpy_dma4::src -byte memcpy_dma4::src_bank -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore 5.5 -volatile byte memoryRemap::zVal loadstore 11.0 +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) +void *memcpy_dma4::dest +char memcpy_dma4::dest_bank +char memcpy_dma4::dmaMode +char memcpy_dma4::dmaMode#0 // 2.0 +unsigned int memcpy_dma4::num +void *memcpy_dma4::src +char memcpy_dma4::src_bank +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command4 = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // 5.5 +__loadstore volatile char memoryRemap::zVal // 11.0 Initial phi equivalence classes Added variable memoryRemap::aVal to live range equivalence class [ memoryRemap::aVal ] @@ -434,32 +434,32 @@ Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( me Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [12] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [12] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ memcpy_dma4::dmaMode#0 ] -Statement [13] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [14] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [16] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [13] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [14] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [15] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [16] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [21] *((char *)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a Statement [5] memoryRemap::aVal = 0 [ memoryRemap::aVal ] ( memoryRemap:1 [ memcpy_dma_command4 memoryRemap::aVal ] { } ) always clobbers reg byte a Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( memoryRemap:1 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal ] { } ) always clobbers reg byte a Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memcpy_dma_command4 memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [12] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [13] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [14] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [16] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [12] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [13] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [14] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [15] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [16] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 memcpy_dma_command4 ] { } ) always clobbers reg byte a +Statement [21] *((char *)DMA) = byte0 &memcpy_dma_command4 [ memcpy_dma4::dmaMode#0 ] ( memcpy_dma4:3 [ memcpy_dma4::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ memoryRemap::aVal ] : zp[1]:2 , Potential registers zp[1]:3 [ memoryRemap::xVal ] : zp[1]:3 , Potential registers zp[1]:4 [ memoryRemap::yVal ] : zp[1]:4 , @@ -546,7 +546,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memoryRemap + // [1] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // [2] phi from main to main::@1 [phi:main->main::@1] @@ -554,7 +554,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call memcpy_dma4 + // [3] call memcpy_dma4 // Move screen up using DMA jsr memcpy_dma4 jmp __breturn @@ -588,6 +588,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -630,56 +631,57 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-63) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma4(char dest_bank, void *dest, char src_bank, void *src, unsigned int num) memcpy_dma4: { .const dest_bank = 0 .const src_bank = 0 .const num = $18*$50 .label dest = DEFAULT_SCREEN .label src = DEFAULT_SCREEN+$50 - // [11] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [12] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 + // [12] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [13] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 + // [13] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 lda #src_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK - // [14] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 + // [14] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 lda #src sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [15] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [15] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK - // [16] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 + // [16] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command4 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [21] *((byte*)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [21] *((char *)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #main::@1] // main::@1 // memcpy_dma4(0, DEFAULT_SCREEN, 0, DEFAULT_SCREEN+80, 24*80) - // [3] call memcpy_dma4 + // [3] call memcpy_dma4 // Move screen up using DMA jsr memcpy_dma4 // main::@return @@ -848,6 +850,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -891,6 +894,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-63) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma4(char dest_bank, void *dest, char src_bank, void *src, unsigned int num) memcpy_dma4: { .const dest_bank = 0 .const src_bank = 0 @@ -898,60 +902,60 @@ memcpy_dma4: { .label dest = DEFAULT_SCREEN .label src = DEFAULT_SCREEN+$50 // char dmaMode = DMA->EN018B - // [11] memcpy_dma4::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memcpy_dma4::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma_command4.count = num - // [12] *((word*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 + // [12] *((unsigned int *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma4::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // memcpy_dma_command4.src_bank = src_bank - // [13] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 + // [13] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma4::src_bank#0 -- _deref_pbuc1=vbuc2 lda #src_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK // memcpy_dma_command4.src = src - // [14] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 + // [14] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma4::src#0 -- _deref_qbuc1=pbuc2 lda #src sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // memcpy_dma_command4.dest_bank = dest_bank - // [15] *((byte*)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [15] *((char *)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma4::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK // memcpy_dma_command4.dest = dest - // [16] *((byte**)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 + // [16] *((char **)&memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma4::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memcpy_dma_command4+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // DMA->EN018B = 1 - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(&memcpy_dma_command4) - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command4 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ADDRLSBTRIG = BYTE0(&memcpy_dma_command4) - // [21] *((byte*)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 + // [21] *((char *)DMA) = byte0 &memcpy_dma_command4 -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = dmaMode - // [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 -- _deref_pbuc1=vbuxx + // [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma4::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma4::@return diff --git a/src/test/ref/examples/mega65/dma-test3.sym b/src/test/ref/examples/mega65/dma-test3.sym index eb4f46223..e42b12538 100644 --- a/src/test/ref/examples/mega65/dma-test3.sym +++ b/src/test/ref/examples/mega65/dma-test3.sym @@ -1,38 +1,38 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_COPY = 0 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_COPY = 0 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void main() -void memcpy_dma4(byte memcpy_dma4::dest_bank , void* memcpy_dma4::dest , byte memcpy_dma4::src_bank , void* memcpy_dma4::src , word memcpy_dma4::num) -void* memcpy_dma4::dest -constant void* memcpy_dma4::dest#0 dest = (void*)DEFAULT_SCREEN -byte memcpy_dma4::dest_bank -constant byte memcpy_dma4::dest_bank#0 dest_bank = 0 -byte memcpy_dma4::dmaMode -byte memcpy_dma4::dmaMode#0 reg byte x 2.0 -word memcpy_dma4::num -constant word memcpy_dma4::num#0 num = (word)$18*$50 -void* memcpy_dma4::src -constant void* memcpy_dma4::src#0 src = (void*)DEFAULT_SCREEN+$50 -byte memcpy_dma4::src_bank -constant byte memcpy_dma4::src_bank#0 src_bank = 0 -volatile struct DMA_LIST_F018B memcpy_dma_command4 loadstore mem[12] = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:3 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:4 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:5 11.0 +void memcpy_dma4(char dest_bank , void *dest , char src_bank , void *src , unsigned int num) +void *memcpy_dma4::dest +__constant void *memcpy_dma4::dest#0 = (void *)DEFAULT_SCREEN // dest +char memcpy_dma4::dest_bank +__constant char memcpy_dma4::dest_bank#0 = 0 // dest_bank +char memcpy_dma4::dmaMode +char memcpy_dma4::dmaMode#0 // reg byte x 2.0 +unsigned int memcpy_dma4::num +__constant unsigned int memcpy_dma4::num#0 = (unsigned int)$18*$50 // num +void *memcpy_dma4::src +__constant void *memcpy_dma4::src#0 = (void *)DEFAULT_SCREEN+$50 // src +char memcpy_dma4::src_bank +__constant char memcpy_dma4::src_bank#0 = 0 // src_bank +__loadstore volatile struct DMA_LIST_F018B memcpy_dma_command4 = { command: DMA_COMMAND_COPY, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } // mem[12] +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:2 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:3 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:4 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:5 11.0 zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dma-test4.asm b/src/test/ref/examples/mega65/dma-test4.asm index edb64f613..d838d2128 100644 --- a/src/test/ref/examples/mega65/dma-test4.asm +++ b/src/test/ref/examples/mega65/dma-test4.asm @@ -79,6 +79,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -116,6 +117,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-15) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma256(char dest_mb, char dest_bank, void *dest, char src_mb, char src_bank, void *src, unsigned int num) memcpy_dma256: { .const dest_mb = 0 .const dest_bank = 0 diff --git a/src/test/ref/examples/mega65/dma-test4.cfg b/src/test/ref/examples/mega65/dma-test4.cfg index 3220a7faa..6300ed9ef 100644 --- a/src/test/ref/examples/mega65/dma-test4.cfg +++ b/src/test/ref/examples/mega65/dma-test4.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memcpy_dma256 + [3] call memcpy_dma256 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -24,22 +24,22 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memcpy_dma256(byte memcpy_dma256::dest_mb , byte memcpy_dma256::dest_bank , void* memcpy_dma256::dest , byte memcpy_dma256::src_mb , byte memcpy_dma256::src_bank , void* memcpy_dma256::src , word memcpy_dma256::num) +void memcpy_dma256(char dest_mb , char dest_bank , void *dest , char src_mb , char src_bank , void *src , unsigned int num) memcpy_dma256: scope:[memcpy_dma256] from main::@1 - [11] memcpy_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [11] memcpy_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) [12] *(memcpy_dma_command256+1) = memcpy_dma256::src_mb#0 [13] *(memcpy_dma_command256+3) = memcpy_dma256::dest_mb#0 - [14] *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 - [15] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 - [16] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma256::src#0 - [17] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 - [18] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma256::dest#0 - [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 - [23] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 - [24] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 + [14] *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 + [15] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 + [16] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma256::src#0 + [17] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 + [18] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma256::dest#0 + [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 + [23] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 + [24] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 to:memcpy_dma256::@return memcpy_dma256::@return: scope:[memcpy_dma256] from memcpy_dma256 [25] return diff --git a/src/test/ref/examples/mega65/dma-test4.log b/src/test/ref/examples/mega65/dma-test4.log index 3777ee10b..e7767b750 100644 --- a/src/test/ref/examples/mega65/dma-test4.log +++ b/src/test/ref/examples/mega65/dma-test4.log @@ -51,7 +51,7 @@ Eliminating unused variable with no statement memset_dma_command CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main memoryRemap::upperPageOffset#1 = phi( main/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#1 = phi( main/memoryRemap::remapBlocks#0 ) @@ -72,7 +72,7 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memcpy_dma256(byte memcpy_dma256::dest_mb , byte memcpy_dma256::dest_bank , void* memcpy_dma256::dest , byte memcpy_dma256::src_mb , byte memcpy_dma256::src_bank , void* memcpy_dma256::src , word memcpy_dma256::num) +void memcpy_dma256(char dest_mb , char dest_bank , void *dest , char src_mb , char src_bank , void *src , unsigned int num) memcpy_dma256: scope:[memcpy_dma256] from main::@1 memcpy_dma256::dest#1 = phi( main::@1/memcpy_dma256::dest#0 ) memcpy_dma256::dest_bank#1 = phi( main::@1/memcpy_dma256::dest_bank#0 ) @@ -81,34 +81,34 @@ memcpy_dma256: scope:[memcpy_dma256] from main::@1 memcpy_dma256::num#1 = phi( main::@1/memcpy_dma256::num#0 ) memcpy_dma256::dest_mb#1 = phi( main::@1/memcpy_dma256::dest_mb#0 ) memcpy_dma256::src_mb#1 = phi( main::@1/memcpy_dma256::src_mb#0 ) - memcpy_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + memcpy_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) memcpy_dma_command256[1] = memcpy_dma256::src_mb#1 memcpy_dma_command256[3] = memcpy_dma256::dest_mb#1 memcpy_dma256::$0 = & memcpy_dma_command256[6] - memcpy_dma256::f018b#0 = (struct DMA_LIST_F018B*)memcpy_dma256::$0 - memcpy_dma256::$8 = (word*)memcpy_dma256::f018b#0 + memcpy_dma256::f018b#0 = (struct DMA_LIST_F018B *)memcpy_dma256::$0 + memcpy_dma256::$8 = (unsigned int *)memcpy_dma256::f018b#0 memcpy_dma256::$3 = memcpy_dma256::$8 + OFFSET_STRUCT_DMA_LIST_F018B_COUNT *memcpy_dma256::$3 = memcpy_dma256::num#1 - memcpy_dma256::$9 = (byte*)memcpy_dma256::f018b#0 + memcpy_dma256::$9 = (char *)memcpy_dma256::f018b#0 memcpy_dma256::$4 = memcpy_dma256::$9 + OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK *memcpy_dma256::$4 = memcpy_dma256::src_bank#1 - memcpy_dma256::$10 = (byte**)memcpy_dma256::f018b#0 + memcpy_dma256::$10 = (char **)memcpy_dma256::f018b#0 memcpy_dma256::$5 = memcpy_dma256::$10 + OFFSET_STRUCT_DMA_LIST_F018B_SRC - *memcpy_dma256::$5 = ((byte*)) memcpy_dma256::src#1 - memcpy_dma256::$11 = (byte*)memcpy_dma256::f018b#0 + *memcpy_dma256::$5 = ((char *)) memcpy_dma256::src#1 + memcpy_dma256::$11 = (char *)memcpy_dma256::f018b#0 memcpy_dma256::$6 = memcpy_dma256::$11 + OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK *memcpy_dma256::$6 = memcpy_dma256::dest_bank#1 - memcpy_dma256::$12 = (byte**)memcpy_dma256::f018b#0 + memcpy_dma256::$12 = (char **)memcpy_dma256::f018b#0 memcpy_dma256::$7 = memcpy_dma256::$12 + OFFSET_STRUCT_DMA_LIST_F018B_DEST - *memcpy_dma256::$7 = ((byte*)) memcpy_dma256::dest#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *memcpy_dma256::$7 = ((char *)) memcpy_dma256::dest#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 memcpy_dma256::$1 = byte1 memcpy_dma_command256 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = memcpy_dma256::$1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = memcpy_dma256::$1 memcpy_dma256::$2 = byte0 memcpy_dma_command256 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = memcpy_dma256::$2 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = memcpy_dma256::$2 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 to:memcpy_dma256::@return memcpy_dma256::@return: scope:[memcpy_dma256] from memcpy_dma256 return @@ -119,17 +119,17 @@ main: scope:[main] from __start memoryRemap::remapBlocks#0 = 0 memoryRemap::lowerPageOffset#0 = 0 memoryRemap::upperPageOffset#0 = 0 - call memoryRemap + call memoryRemap to:main::@1 main::@1: scope:[main] from main memcpy_dma256::dest_mb#0 = 0 memcpy_dma256::dest_bank#0 = 0 - memcpy_dma256::dest#0 = (void*)DEFAULT_SCREEN + memcpy_dma256::dest#0 = (void *)DEFAULT_SCREEN memcpy_dma256::src_mb#0 = 0 memcpy_dma256::src_bank#0 = 0 - memcpy_dma256::src#0 = (void*)DEFAULT_SCREEN+$50 + memcpy_dma256::src#0 = (void *)DEFAULT_SCREEN+$50 memcpy_dma256::num#0 = $18*$50 - call memcpy_dma256 + call memcpy_dma256 to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -139,7 +139,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -148,85 +148,85 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_COPY = 0 -constant const byte DMA_OPTION_DEST_MB = $81 -constant const byte DMA_OPTION_END = 0 -constant const byte DMA_OPTION_FORMAT_F018B = $a -constant const byte DMA_OPTION_SRC_MB = $80 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_COPY = 0 +__constant const char DMA_OPTION_DEST_MB = $81 +__constant const char DMA_OPTION_END = 0 +__constant const char DMA_OPTION_FORMAT_F018B = $a +__constant const char DMA_OPTION_SRC_MB = $80 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 void __start() void main() -void memcpy_dma256(byte memcpy_dma256::dest_mb , byte memcpy_dma256::dest_bank , void* memcpy_dma256::dest , byte memcpy_dma256::src_mb , byte memcpy_dma256::src_bank , void* memcpy_dma256::src , word memcpy_dma256::num) -byte*~ memcpy_dma256::$0 -byte~ memcpy_dma256::$1 -byte**~ memcpy_dma256::$10 -byte*~ memcpy_dma256::$11 -byte**~ memcpy_dma256::$12 -byte~ memcpy_dma256::$2 -word*~ memcpy_dma256::$3 -byte*~ memcpy_dma256::$4 -byte**~ memcpy_dma256::$5 -byte*~ memcpy_dma256::$6 -byte**~ memcpy_dma256::$7 -word*~ memcpy_dma256::$8 -byte*~ memcpy_dma256::$9 -void* memcpy_dma256::dest -void* memcpy_dma256::dest#0 -void* memcpy_dma256::dest#1 -byte memcpy_dma256::dest_bank -byte memcpy_dma256::dest_bank#0 -byte memcpy_dma256::dest_bank#1 -byte memcpy_dma256::dest_mb -byte memcpy_dma256::dest_mb#0 -byte memcpy_dma256::dest_mb#1 -byte memcpy_dma256::dmaMode -byte memcpy_dma256::dmaMode#0 -struct DMA_LIST_F018B* memcpy_dma256::f018b -struct DMA_LIST_F018B* memcpy_dma256::f018b#0 -word memcpy_dma256::num -word memcpy_dma256::num#0 -word memcpy_dma256::num#1 -void* memcpy_dma256::src -void* memcpy_dma256::src#0 -void* memcpy_dma256::src#1 -byte memcpy_dma256::src_bank -byte memcpy_dma256::src_bank#0 -byte memcpy_dma256::src_bank#1 -byte memcpy_dma256::src_mb -byte memcpy_dma256::src_mb#0 -byte memcpy_dma256::src_mb#1 -constant byte* memcpy_dma_command256[] = { DMA_OPTION_SRC_MB, 0, DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_COPY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore +void memcpy_dma256(char dest_mb , char dest_bank , void *dest , char src_mb , char src_bank , void *src , unsigned int num) +char *memcpy_dma256::$0 +char memcpy_dma256::$1 +char **memcpy_dma256::$10 +char *memcpy_dma256::$11 +char **memcpy_dma256::$12 +char memcpy_dma256::$2 +unsigned int *memcpy_dma256::$3 +char *memcpy_dma256::$4 +char **memcpy_dma256::$5 +char *memcpy_dma256::$6 +char **memcpy_dma256::$7 +unsigned int *memcpy_dma256::$8 +char *memcpy_dma256::$9 +void *memcpy_dma256::dest +void *memcpy_dma256::dest#0 +void *memcpy_dma256::dest#1 +char memcpy_dma256::dest_bank +char memcpy_dma256::dest_bank#0 +char memcpy_dma256::dest_bank#1 +char memcpy_dma256::dest_mb +char memcpy_dma256::dest_mb#0 +char memcpy_dma256::dest_mb#1 +char memcpy_dma256::dmaMode +char memcpy_dma256::dmaMode#0 +struct DMA_LIST_F018B *memcpy_dma256::f018b +struct DMA_LIST_F018B *memcpy_dma256::f018b#0 +unsigned int memcpy_dma256::num +unsigned int memcpy_dma256::num#0 +unsigned int memcpy_dma256::num#1 +void *memcpy_dma256::src +void *memcpy_dma256::src#0 +void *memcpy_dma256::src#1 +char memcpy_dma256::src_bank +char memcpy_dma256::src_bank#0 +char memcpy_dma256::src_bank#1 +char memcpy_dma256::src_mb +char memcpy_dma256::src_mb#0 +char memcpy_dma256::src_mb#1 +__constant char memcpy_dma_command256[] = { DMA_OPTION_SRC_MB, 0, DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_COPY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -238,9 +238,9 @@ Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = mem Adding number conversion cast (unumber) 1 in memcpy_dma_command256[1] = memcpy_dma256::src_mb#1 Adding number conversion cast (unumber) 3 in memcpy_dma_command256[3] = memcpy_dma256::dest_mb#1 Adding number conversion cast (unumber) 6 in memcpy_dma256::$0 = & memcpy_dma_command256[6] -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#0 = 0 @@ -248,14 +248,14 @@ Adding number conversion cast (unumber) 0 in memcpy_dma256::dest_mb#0 = 0 Adding number conversion cast (unumber) 0 in memcpy_dma256::dest_bank#0 = 0 Adding number conversion cast (unumber) 0 in memcpy_dma256::src_mb#0 = 0 Adding number conversion cast (unumber) 0 in memcpy_dma256::src_bank#0 = 0 -Adding number conversion cast (unumber) $50 in memcpy_dma256::src#0 = (void*)DEFAULT_SCREEN+$50 +Adding number conversion cast (unumber) $50 in memcpy_dma256::src#0 = (void *)DEFAULT_SCREEN+$50 Adding number conversion cast (unumber) $18*$50 in memcpy_dma256::num#0 = $18*$50 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *memcpy_dma256::$5 = (byte*)memcpy_dma256::src#1 -Inlining cast *memcpy_dma256::$7 = (byte*)memcpy_dma256::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *memcpy_dma256::$5 = (char *)memcpy_dma256::src#1 +Inlining cast *memcpy_dma256::$7 = (char *)memcpy_dma256::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#0 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#0 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#0 = (unumber)0 @@ -265,8 +265,8 @@ Inlining cast memcpy_dma256::src_mb#0 = (unumber)0 Inlining cast memcpy_dma256::src_bank#0 = (unumber)0 Inlining cast memcpy_dma256::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 2048 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 2048 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -286,28 +286,28 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $50 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Identical Phi Values memoryRemap::lowerPageOffset#1 memoryRemap::lowerPageOffset#0 Identical Phi Values memoryRemap::remapBlocks#1 memoryRemap::remapBlocks#0 Identical Phi Values memoryRemap::upperPageOffset#1 memoryRemap::upperPageOffset#0 @@ -334,28 +334,28 @@ Constant memoryRemap::lowerPageOffset#0 = 0 Constant memoryRemap::upperPageOffset#0 = 0 Constant memcpy_dma256::dest_mb#0 = 0 Constant memcpy_dma256::dest_bank#0 = 0 -Constant memcpy_dma256::dest#0 = (void*)DEFAULT_SCREEN +Constant memcpy_dma256::dest#0 = (void *)DEFAULT_SCREEN Constant memcpy_dma256::src_mb#0 = 0 Constant memcpy_dma256::src_bank#0 = 0 -Constant memcpy_dma256::src#0 = (void*)DEFAULT_SCREEN+$50 +Constant memcpy_dma256::src#0 = (void *)DEFAULT_SCREEN+$50 Constant memcpy_dma256::num#0 = (unumber)$18*$50 Successful SSA optimization Pass2ConstantIdentification -Constant memcpy_dma256::f018b#0 = (struct DMA_LIST_F018B*)memcpy_dma256::$0 +Constant memcpy_dma256::f018b#0 = (struct DMA_LIST_F018B *)memcpy_dma256::$0 Successful SSA optimization Pass2ConstantIdentification -Constant memcpy_dma256::$8 = (word*)memcpy_dma256::f018b#0 -Constant memcpy_dma256::$9 = (byte*)memcpy_dma256::f018b#0 -Constant memcpy_dma256::$10 = (byte**)memcpy_dma256::f018b#0 -Constant memcpy_dma256::$11 = (byte*)memcpy_dma256::f018b#0 -Constant memcpy_dma256::$12 = (byte**)memcpy_dma256::f018b#0 +Constant memcpy_dma256::$8 = (unsigned int *)memcpy_dma256::f018b#0 +Constant memcpy_dma256::$9 = (char *)memcpy_dma256::f018b#0 +Constant memcpy_dma256::$10 = (char **)memcpy_dma256::f018b#0 +Constant memcpy_dma256::$11 = (char *)memcpy_dma256::f018b#0 +Constant memcpy_dma256::$12 = (char **)memcpy_dma256::f018b#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memcpy_dma256::src#0 in [27] *memcpy_dma256::$5 = (byte*)memcpy_dma256::src#0 -Constant value identified (byte*)memcpy_dma256::dest#0 in [33] *memcpy_dma256::$7 = (byte*)memcpy_dma256::dest#0 +Constant value identified (char *)memcpy_dma256::src#0 in [27] *memcpy_dma256::$5 = (char *)memcpy_dma256::src#0 +Constant value identified (char *)memcpy_dma256::dest#0 in [33] *memcpy_dma256::$7 = (char *)memcpy_dma256::dest#0 Successful SSA optimization Pass2ConstantValues Converting *(pointer+n) to pointer[n] [21] *memcpy_dma256::$3 = memcpy_dma256::num#0 -- memcpy_dma256::$8[OFFSET_STRUCT_DMA_LIST_F018B_COUNT] Converting *(pointer+n) to pointer[n] [24] *memcpy_dma256::$4 = memcpy_dma256::src_bank#0 -- memcpy_dma256::$9[OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK] -Converting *(pointer+n) to pointer[n] [27] *memcpy_dma256::$5 = (byte*)memcpy_dma256::src#0 -- memcpy_dma256::$10[OFFSET_STRUCT_DMA_LIST_F018B_SRC] +Converting *(pointer+n) to pointer[n] [27] *memcpy_dma256::$5 = (char *)memcpy_dma256::src#0 -- memcpy_dma256::$10[OFFSET_STRUCT_DMA_LIST_F018B_SRC] Converting *(pointer+n) to pointer[n] [30] *memcpy_dma256::$6 = memcpy_dma256::dest_bank#0 -- memcpy_dma256::$11[OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK] -Converting *(pointer+n) to pointer[n] [33] *memcpy_dma256::$7 = (byte*)memcpy_dma256::dest#0 -- memcpy_dma256::$12[OFFSET_STRUCT_DMA_LIST_F018B_DEST] +Converting *(pointer+n) to pointer[n] [33] *memcpy_dma256::$7 = (char *)memcpy_dma256::dest#0 -- memcpy_dma256::$12[OFFSET_STRUCT_DMA_LIST_F018B_DEST] Successful SSA optimization Pass2InlineDerefIdx Eliminating unused variable memcpy_dma256::$3 and assignment [15] memcpy_dma256::$3 = memcpy_dma256::$8 + OFFSET_STRUCT_DMA_LIST_F018B_COUNT Eliminating unused variable memcpy_dma256::$4 and assignment [17] memcpy_dma256::$4 = memcpy_dma256::$9 + OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK @@ -410,29 +410,29 @@ Successful SSA optimization PassNSimplifyConstantZero Eliminating unused constant memoryRemap::$2 Eliminating unused constant memoryRemap::$7 Successful SSA optimization PassNEliminateUnusedVars -Constant inlined memcpy_dma256::$9 = (byte*)memcpy_dma256::f018b#0 +Constant inlined memcpy_dma256::$9 = (char *)memcpy_dma256::f018b#0 Constant inlined memcpy_dma256::$0 = memcpy_dma_command256+6 Constant inlined memoryRemap::$3 = 0 -Constant inlined memcpy_dma256::$12 = (byte**)memcpy_dma256::f018b#0 +Constant inlined memcpy_dma256::$12 = (char **)memcpy_dma256::f018b#0 Constant inlined memcpy_dma256::$2 = byte0 memcpy_dma_command256 -Constant inlined memcpy_dma256::$10 = (byte**)memcpy_dma256::f018b#0 +Constant inlined memcpy_dma256::$10 = (char **)memcpy_dma256::f018b#0 Constant inlined memcpy_dma256::$1 = byte1 memcpy_dma_command256 -Constant inlined memcpy_dma256::$11 = (byte*)memcpy_dma256::f018b#0 +Constant inlined memcpy_dma256::$11 = (char *)memcpy_dma256::f018b#0 Constant inlined memoryRemap::$8 = 0 -Constant inlined memcpy_dma256::$8 = (word*)memcpy_dma256::f018b#0 +Constant inlined memcpy_dma256::$8 = (unsigned int *)memcpy_dma256::f018b#0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(memcpy_dma_command256+1) Consolidated array index constant in *(memcpy_dma_command256+3) -Consolidated array index constant in *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) -Consolidated array index constant in *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) -Consolidated array index constant in *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) -Consolidated array index constant in *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) -Consolidated array index constant in *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) +Consolidated array index constant in *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) +Consolidated array index constant in *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) +Consolidated array index constant in *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) +Consolidated array index constant in *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) +Consolidated array index constant in *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $50 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $50 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -451,17 +451,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memcpy_dma256 + [3] call memcpy_dma256 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -473,22 +473,22 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memcpy_dma256(byte memcpy_dma256::dest_mb , byte memcpy_dma256::dest_bank , void* memcpy_dma256::dest , byte memcpy_dma256::src_mb , byte memcpy_dma256::src_bank , void* memcpy_dma256::src , word memcpy_dma256::num) +void memcpy_dma256(char dest_mb , char dest_bank , void *dest , char src_mb , char src_bank , void *src , unsigned int num) memcpy_dma256: scope:[memcpy_dma256] from main::@1 - [11] memcpy_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [11] memcpy_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) [12] *(memcpy_dma_command256+1) = memcpy_dma256::src_mb#0 [13] *(memcpy_dma_command256+3) = memcpy_dma256::dest_mb#0 - [14] *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 - [15] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 - [16] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma256::src#0 - [17] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 - [18] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma256::dest#0 - [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 - [23] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 - [24] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 + [14] *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 + [15] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 + [16] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma256::src#0 + [17] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 + [18] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma256::dest#0 + [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 + [23] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 + [24] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 to:memcpy_dma256::@return memcpy_dma256::@return: scope:[memcpy_dma256] from memcpy_dma256 [25] return @@ -497,25 +497,25 @@ memcpy_dma256::@return: scope:[memcpy_dma256] from memcpy_dma256 VARIABLE REGISTER WEIGHTS void main() -void memcpy_dma256(byte memcpy_dma256::dest_mb , byte memcpy_dma256::dest_bank , void* memcpy_dma256::dest , byte memcpy_dma256::src_mb , byte memcpy_dma256::src_bank , void* memcpy_dma256::src , word memcpy_dma256::num) -void* memcpy_dma256::dest -byte memcpy_dma256::dest_bank -byte memcpy_dma256::dest_mb -byte memcpy_dma256::dmaMode -byte memcpy_dma256::dmaMode#0 1.6923076923076923 -struct DMA_LIST_F018B* memcpy_dma256::f018b -word memcpy_dma256::num -void* memcpy_dma256::src -byte memcpy_dma256::src_bank -byte memcpy_dma256::src_mb -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore 5.5 -volatile byte memoryRemap::zVal loadstore 11.0 +void memcpy_dma256(char dest_mb , char dest_bank , void *dest , char src_mb , char src_bank , void *src , unsigned int num) +void *memcpy_dma256::dest +char memcpy_dma256::dest_bank +char memcpy_dma256::dest_mb +char memcpy_dma256::dmaMode +char memcpy_dma256::dmaMode#0 // 1.6923076923076923 +struct DMA_LIST_F018B *memcpy_dma256::f018b +unsigned int memcpy_dma256::num +void *memcpy_dma256::src +char memcpy_dma256::src_bank +char memcpy_dma256::src_mb +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // 5.5 +__loadstore volatile char memoryRemap::zVal // 11.0 Initial phi equivalence classes Added variable memoryRemap::aVal to live range equivalence class [ memoryRemap::aVal ] @@ -543,16 +543,16 @@ Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg b Statement [12] *(memcpy_dma_command256+1) = memcpy_dma256::src_mb#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ memcpy_dma256::dmaMode#0 ] Statement [13] *(memcpy_dma_command256+3) = memcpy_dma256::dest_mb#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [14] *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [16] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma256::src#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [18] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma256::dest#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [23] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [14] *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [15] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [16] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma256::src#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [17] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [18] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma256::dest#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [23] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Statement [5] memoryRemap::aVal = 0 [ memoryRemap::aVal ] ( memoryRemap:1 [ memoryRemap::aVal ] { } ) always clobbers reg byte a Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( memoryRemap:1 [ memoryRemap::aVal memoryRemap::xVal ] { } ) always clobbers reg byte a Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a @@ -560,16 +560,16 @@ Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memory Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [12] *(memcpy_dma_command256+1) = memcpy_dma256::src_mb#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Statement [13] *(memcpy_dma_command256+3) = memcpy_dma256::dest_mb#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [14] *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [15] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [16] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma256::src#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [18] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma256::dest#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [23] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [14] *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [15] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [16] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma256::src#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [17] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [18] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma256::dest#0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [23] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 [ memcpy_dma256::dmaMode#0 ] ( memcpy_dma256:3 [ memcpy_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ memoryRemap::aVal ] : zp[1]:2 , Potential registers zp[1]:3 [ memoryRemap::xVal ] : zp[1]:3 , Potential registers zp[1]:4 [ memoryRemap::yVal ] : zp[1]:4 , @@ -664,7 +664,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memoryRemap + // [1] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // [2] phi from main to main::@1 [phi:main->main::@1] @@ -672,7 +672,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call memcpy_dma256 + // [3] call memcpy_dma256 // Move screen up using DMA jsr memcpy_dma256 jmp __breturn @@ -706,6 +706,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -750,6 +751,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-15) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma256(char dest_mb, char dest_bank, void *dest, char src_mb, char src_bank, void *src, unsigned int num) memcpy_dma256: { .const dest_mb = 0 .const dest_bank = 0 @@ -759,7 +761,7 @@ memcpy_dma256: { .label dest = DEFAULT_SCREEN .label src = DEFAULT_SCREEN+$50 .label f018b = memcpy_dma_command256+6 - // [11] memcpy_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memcpy_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // [12] *(memcpy_dma_command256+1) = memcpy_dma256::src_mb#0 -- _deref_pbuc1=vbuc2 @@ -769,46 +771,46 @@ memcpy_dma256: { // [13] *(memcpy_dma_command256+3) = memcpy_dma256::dest_mb#0 -- _deref_pbuc1=vbuc2 lda #dest_mb sta memcpy_dma_command256+3 - // [14] *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 -- _deref_pwuc1=vwuc2 + // [14] *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 -- _deref_pwuc1=vwuc2 lda #num sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [15] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 -- _deref_pbuc1=vbuc2 + // [15] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 -- _deref_pbuc1=vbuc2 lda #src_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK - // [16] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma256::src#0 -- _deref_qbuc1=pbuc2 + // [16] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma256::src#0 -- _deref_qbuc1=pbuc2 lda #src sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [17] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK - // [18] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma256::dest#0 -- _deref_qbuc1=pbuc2 + // [18] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma256::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 + // [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command256 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [23] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 + // [23] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 // Trigger the DMA (with option lists) lda #main::@1] // main::@1 // memcpy_dma256(0,0, DEFAULT_SCREEN, 0,0, DEFAULT_SCREEN+80, 24*80) - // [3] call memcpy_dma256 + // [3] call memcpy_dma256 // Move screen up using DMA jsr memcpy_dma256 // main::@return @@ -992,6 +994,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -1037,6 +1040,7 @@ memoryRemap: { // - src_bank The 64KB bank for the source (0-15) // - src The source address (within the MB and bank) // - num The number of bytes to copy +// void memcpy_dma256(char dest_mb, char dest_bank, void *dest, char src_mb, char src_bank, void *src, unsigned int num) memcpy_dma256: { .const dest_mb = 0 .const dest_bank = 0 @@ -1047,7 +1051,7 @@ memcpy_dma256: { .label src = DEFAULT_SCREEN+$50 .label f018b = memcpy_dma_command256+6 // char dmaMode = DMA->EN018B - // [11] memcpy_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memcpy_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma_command256[1] = src_mb @@ -1060,55 +1064,55 @@ memcpy_dma256: { lda #dest_mb sta memcpy_dma_command256+3 // f018b->count = num - // [14] *((word*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 -- _deref_pwuc1=vwuc2 + // [14] *((unsigned int *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memcpy_dma256::num#0 -- _deref_pwuc1=vwuc2 lda #num sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // f018b->src_bank = src_bank - // [15] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 -- _deref_pbuc1=vbuc2 + // [15] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK) = memcpy_dma256::src_bank#0 -- _deref_pbuc1=vbuc2 lda #src_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK // f018b->src = src - // [16] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memcpy_dma256::src#0 -- _deref_qbuc1=pbuc2 + // [16] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memcpy_dma256::src#0 -- _deref_qbuc1=pbuc2 lda #src sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // f018b->dest_bank = dest_bank - // [17] *((byte*)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memcpy_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK // f018b->dest = dest - // [18] *((byte**)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memcpy_dma256::dest#0 -- _deref_qbuc1=pbuc2 + // [18] *((char **)memcpy_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memcpy_dma256::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // DMA->EN018B = 1 - // [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(memcpy_dma_command256) - // [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 + // [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 lda #>memcpy_dma_command256 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ETRIG = BYTE0(memcpy_dma_command256) - // [23] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 + // [23] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memcpy_dma_command256 -- _deref_pbuc1=vbuc2 // Trigger the DMA (with option lists) lda #EN018B = dmaMode - // [24] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 -- _deref_pbuc1=vbuxx + // [24] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memcpy_dma256::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memcpy_dma256::@return diff --git a/src/test/ref/examples/mega65/dma-test4.sym b/src/test/ref/examples/mega65/dma-test4.sym index fee4bd744..66f21ba4d 100644 --- a/src/test/ref/examples/mega65/dma-test4.sym +++ b/src/test/ref/examples/mega65/dma-test4.sym @@ -1,49 +1,49 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_COPY = 0 -constant const byte DMA_OPTION_DEST_MB = $81 -constant const byte DMA_OPTION_END = 0 -constant const byte DMA_OPTION_FORMAT_F018B = $a -constant const byte DMA_OPTION_SRC_MB = $80 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_COPY = 0 +__constant const char DMA_OPTION_DEST_MB = $81 +__constant const char DMA_OPTION_END = 0 +__constant const char DMA_OPTION_FORMAT_F018B = $a +__constant const char DMA_OPTION_SRC_MB = $80 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC_BANK = 5 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 void main() -void memcpy_dma256(byte memcpy_dma256::dest_mb , byte memcpy_dma256::dest_bank , void* memcpy_dma256::dest , byte memcpy_dma256::src_mb , byte memcpy_dma256::src_bank , void* memcpy_dma256::src , word memcpy_dma256::num) -void* memcpy_dma256::dest -constant void* memcpy_dma256::dest#0 dest = (void*)DEFAULT_SCREEN -byte memcpy_dma256::dest_bank -constant byte memcpy_dma256::dest_bank#0 dest_bank = 0 -byte memcpy_dma256::dest_mb -constant byte memcpy_dma256::dest_mb#0 dest_mb = 0 -byte memcpy_dma256::dmaMode -byte memcpy_dma256::dmaMode#0 reg byte x 1.6923076923076923 -struct DMA_LIST_F018B* memcpy_dma256::f018b -constant struct DMA_LIST_F018B* memcpy_dma256::f018b#0 f018b = (struct DMA_LIST_F018B*)memcpy_dma_command256+6 -word memcpy_dma256::num -constant word memcpy_dma256::num#0 num = (word)$18*$50 -void* memcpy_dma256::src -constant void* memcpy_dma256::src#0 src = (void*)DEFAULT_SCREEN+$50 -byte memcpy_dma256::src_bank -constant byte memcpy_dma256::src_bank#0 src_bank = 0 -byte memcpy_dma256::src_mb -constant byte memcpy_dma256::src_mb#0 src_mb = 0 -constant byte* memcpy_dma_command256[] = { DMA_OPTION_SRC_MB, 0, DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_COPY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:3 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:4 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:5 11.0 +void memcpy_dma256(char dest_mb , char dest_bank , void *dest , char src_mb , char src_bank , void *src , unsigned int num) +void *memcpy_dma256::dest +__constant void *memcpy_dma256::dest#0 = (void *)DEFAULT_SCREEN // dest +char memcpy_dma256::dest_bank +__constant char memcpy_dma256::dest_bank#0 = 0 // dest_bank +char memcpy_dma256::dest_mb +__constant char memcpy_dma256::dest_mb#0 = 0 // dest_mb +char memcpy_dma256::dmaMode +char memcpy_dma256::dmaMode#0 // reg byte x 1.6923076923076923 +struct DMA_LIST_F018B *memcpy_dma256::f018b +__constant struct DMA_LIST_F018B *memcpy_dma256::f018b#0 = (struct DMA_LIST_F018B *)memcpy_dma_command256+6 // f018b +unsigned int memcpy_dma256::num +__constant unsigned int memcpy_dma256::num#0 = (unsigned int)$18*$50 // num +void *memcpy_dma256::src +__constant void *memcpy_dma256::src#0 = (void *)DEFAULT_SCREEN+$50 // src +char memcpy_dma256::src_bank +__constant char memcpy_dma256::src_bank#0 = 0 // src_bank +char memcpy_dma256::src_mb +__constant char memcpy_dma256::src_mb#0 = 0 // src_mb +__constant char memcpy_dma_command256[] = { DMA_OPTION_SRC_MB, 0, DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_COPY, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:2 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:3 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:4 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:5 11.0 zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dma-test5.asm b/src/test/ref/examples/mega65/dma-test5.asm index 7ab9ec31d..2959e83d3 100644 --- a/src/test/ref/examples/mega65/dma-test5.asm +++ b/src/test/ref/examples/mega65/dma-test5.asm @@ -68,6 +68,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -101,6 +102,7 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - fill The char to fill with // - num The number of bytes to copy +// void memset_dma(void *dest, char fill, unsigned int num) memset_dma: { .const fill = '*' .const num = $50*$a diff --git a/src/test/ref/examples/mega65/dma-test5.cfg b/src/test/ref/examples/mega65/dma-test5.cfg index 8b1d840ac..6d898119b 100644 --- a/src/test/ref/examples/mega65/dma-test5.cfg +++ b/src/test/ref/examples/mega65/dma-test5.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memset_dma + [3] call memset_dma to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -24,18 +24,18 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) +void memset_dma(void *dest , char fill , unsigned int num) memset_dma: scope:[memset_dma] from main::@1 - [11] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [12] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 - [13] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 - [14] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 - [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command - [19] *((byte*)DMA) = byte0 &memset_dma_command - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 + [11] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [12] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 + [13] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 + [14] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 + [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command + [19] *((char *)DMA) = byte0 &memset_dma_command + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 to:memset_dma::@return memset_dma::@return: scope:[memset_dma] from memset_dma [21] return diff --git a/src/test/ref/examples/mega65/dma-test5.log b/src/test/ref/examples/mega65/dma-test5.log index 66bbfd27a..0b211de80 100644 --- a/src/test/ref/examples/mega65/dma-test5.log +++ b/src/test/ref/examples/mega65/dma-test5.log @@ -50,7 +50,7 @@ Eliminating unused variable with no statement memcpy_dma_command4 CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main memoryRemap::upperPageOffset#1 = phi( main/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#1 = phi( main/memoryRemap::remapBlocks#0 ) @@ -71,21 +71,21 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) +void memset_dma(void *dest , char fill , unsigned int num) memset_dma: scope:[memset_dma] from main::@1 memset_dma::dest#1 = phi( main::@1/memset_dma::dest#0 ) memset_dma::fill#1 = phi( main::@1/memset_dma::fill#0 ) memset_dma::num#1 = phi( main::@1/memset_dma::num#0 ) - memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#1 - *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#1 - *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((byte*)) memset_dma::dest#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 + memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#1 + *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#1 + *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((char *)) memset_dma::dest#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 to:memset_dma::@return memset_dma::@return: scope:[memset_dma] from memset_dma return @@ -96,13 +96,13 @@ main: scope:[main] from __start memoryRemap::remapBlocks#0 = 0 memoryRemap::lowerPageOffset#0 = 0 memoryRemap::upperPageOffset#0 = 0 - call memoryRemap + call memoryRemap to:main::@1 main::@1: scope:[main] from main - memset_dma::dest#0 = (void*)DEFAULT_SCREEN + memset_dma::dest#0 = (void *)DEFAULT_SCREEN memset_dma::fill#0 = '*' memset_dma::num#0 = $50*$a - call memset_dma + call memset_dma to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -121,52 +121,52 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_FILL = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_FILL = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void __start() void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) -void* memset_dma::dest -void* memset_dma::dest#0 -void* memset_dma::dest#1 -byte memset_dma::dmaMode -byte memset_dma::dmaMode#0 -byte memset_dma::fill -byte memset_dma::fill#0 -byte memset_dma::fill#1 -word memset_dma::num -word memset_dma::num#0 -word memset_dma::num#1 -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal +void memset_dma(void *dest , char fill , unsigned int num) +void *memset_dma::dest +void *memset_dma::dest#0 +void *memset_dma::dest#1 +char memset_dma::dmaMode +char memset_dma::dmaMode#0 +char memset_dma::fill +char memset_dma::fill#0 +char memset_dma::fill#1 +unsigned int memset_dma::num +unsigned int memset_dma::num#0 +unsigned int memset_dma::num#1 +__loadstore volatile struct DMA_LIST_F018B memset_dma_command = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -175,25 +175,25 @@ Adding number conversion cast (unumber) $f0 in memoryRemap::$6 = memoryRemap::re Adding number conversion cast (unumber) memoryRemap::$6 in memoryRemap::$6 = memoryRemap::remapBlocks#1 & (unumber)$f0 Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 & $f Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#0 = 0 Adding number conversion cast (unumber) $50*$a in memset_dma::num#0 = $50*$a Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#0 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#0 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#0 = (unumber)0 Inlining cast memset_dma::num#0 = (unumber)$50*$a Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 2048 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 2048 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -205,20 +205,20 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Identical Phi Values memoryRemap::lowerPageOffset#1 memoryRemap::lowerPageOffset#0 Identical Phi Values memoryRemap::remapBlocks#1 memoryRemap::remapBlocks#0 Identical Phi Values memoryRemap::upperPageOffset#1 memoryRemap::upperPageOffset#0 @@ -231,14 +231,14 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant memoryRemap::remapBlocks#0 = 0 Constant memoryRemap::lowerPageOffset#0 = 0 Constant memoryRemap::upperPageOffset#0 = 0 -Constant memset_dma::dest#0 = (void*)DEFAULT_SCREEN +Constant memset_dma::dest#0 = (void *)DEFAULT_SCREEN Constant memset_dma::fill#0 = '*' Constant memset_dma::num#0 = (unumber)$50*$a Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memset_dma::fill#0 in [16] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 -Constant value identified (byte*)memset_dma::dest#0 in [17] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 +Constant value identified (char *)memset_dma::fill#0 in [16] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 +Constant value identified (char *)memset_dma::dest#0 in [17] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero (byte*)DMA in [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command +Simplifying expression containing zero (char *)DMA in [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG Successful SSA optimization PassNEliminateUnusedVars @@ -292,12 +292,12 @@ Successful SSA optimization PassNEliminateUnusedVars Constant inlined memoryRemap::$8 = 0 Constant inlined memoryRemap::$3 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -316,17 +316,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memset_dma + [3] call memset_dma to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -338,18 +338,18 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) +void memset_dma(void *dest , char fill , unsigned int num) memset_dma: scope:[memset_dma] from main::@1 - [11] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [12] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 - [13] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 - [14] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 - [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command - [19] *((byte*)DMA) = byte0 &memset_dma_command - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 + [11] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [12] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 + [13] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 + [14] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 + [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command + [19] *((char *)DMA) = byte0 &memset_dma_command + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 to:memset_dma::@return memset_dma::@return: scope:[memset_dma] from memset_dma [21] return @@ -358,21 +358,21 @@ memset_dma::@return: scope:[memset_dma] from memset_dma VARIABLE REGISTER WEIGHTS void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore 5.5 -volatile byte memoryRemap::zVal loadstore 11.0 -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) -void* memset_dma::dest -byte memset_dma::dmaMode -byte memset_dma::dmaMode#0 2.4444444444444446 -byte memset_dma::fill -word memset_dma::num -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // 5.5 +__loadstore volatile char memoryRemap::zVal // 11.0 +void memset_dma(void *dest , char fill , unsigned int num) +void *memset_dma::dest +char memset_dma::dmaMode +char memset_dma::dmaMode#0 // 2.4444444444444446 +char memset_dma::fill +unsigned int memset_dma::num +__loadstore volatile struct DMA_LIST_F018B memset_dma_command = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } Initial phi equivalence classes Added variable memoryRemap::aVal to live range equivalence class [ memoryRemap::aVal ] @@ -400,28 +400,28 @@ Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( me Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [12] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [12] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ memset_dma::dmaMode#0 ] -Statement [13] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [14] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 ] ( memset_dma:3 [ memset_dma::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [13] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [14] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 ] ( memset_dma:3 [ memset_dma::dmaMode#0 ] { } ) always clobbers reg byte a Statement [5] memoryRemap::aVal = 0 [ memoryRemap::aVal ] ( memoryRemap:1 [ memset_dma_command memoryRemap::aVal ] { } ) always clobbers reg byte a Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( memoryRemap:1 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal ] { } ) always clobbers reg byte a Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [12] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [13] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [14] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 ] ( memset_dma:3 [ memset_dma::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [12] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [13] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [14] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:3 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 ] ( memset_dma:3 [ memset_dma::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ memoryRemap::aVal ] : zp[1]:2 , Potential registers zp[1]:3 [ memoryRemap::xVal ] : zp[1]:3 , Potential registers zp[1]:4 [ memoryRemap::yVal ] : zp[1]:4 , @@ -506,7 +506,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memoryRemap + // [1] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // [2] phi from main to main::@1 [phi:main->main::@1] @@ -514,7 +514,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call memset_dma + // [3] call memset_dma // Fill screen up using DMA jsr memset_dma jmp __breturn @@ -548,6 +548,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -588,48 +589,49 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - fill The char to fill with // - num The number of bytes to copy +// void memset_dma(void *dest, char fill, unsigned int num) memset_dma: { .const fill = '*' .const num = $50*$a .label dest = DEFAULT_SCREEN - // [11] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [12] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 -- _deref_pwuc1=vwuc2 + // [12] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [13] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 -- _deref_qbuc1=pbuc2 + // [13] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 -- _deref_qbuc1=pbuc2 lda #fill sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [14] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 -- _deref_qbuc1=pbuc2 + // [14] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 lda #>memset_dma_command sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [19] *((byte*)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #main::@1] // main::@1 // memset_dma(DEFAULT_SCREEN, '*', 80*10) - // [3] call memset_dma + // [3] call memset_dma // Fill screen up using DMA jsr memset_dma // main::@return @@ -790,6 +792,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -831,57 +834,58 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - fill The char to fill with // - num The number of bytes to copy +// void memset_dma(void *dest, char fill, unsigned int num) memset_dma: { .const fill = '*' .const num = $50*$a .label dest = DEFAULT_SCREEN // char dmaMode = DMA->EN018B - // [11] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma_command.count = num - // [12] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 -- _deref_pwuc1=vwuc2 + // [12] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#0 -- _deref_pwuc1=vwuc2 // Set up command lda #num sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // memset_dma_command.src = (char*)fill - // [13] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#0 -- _deref_qbuc1=pbuc2 + // [13] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#0 -- _deref_qbuc1=pbuc2 lda #fill sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // memset_dma_command.dest = dest - // [14] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#0 -- _deref_qbuc1=pbuc2 + // [14] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // DMA->EN018B = 1 - // [15] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [15] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [16] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [16] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(&memset_dma_command) - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 lda #>memset_dma_command sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ADDRLSBTRIG = BYTE0(&memset_dma_command) - // [19] *((byte*)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = dmaMode - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 -- _deref_pbuc1=vbuxx + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma::@return diff --git a/src/test/ref/examples/mega65/dma-test5.sym b/src/test/ref/examples/mega65/dma-test5.sym index f19d6f769..20adc9621 100644 --- a/src/test/ref/examples/mega65/dma-test5.sym +++ b/src/test/ref/examples/mega65/dma-test5.sym @@ -1,32 +1,32 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_FILL = 3 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_FILL = 3 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:3 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:4 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:5 11.0 -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) -void* memset_dma::dest -constant void* memset_dma::dest#0 dest = (void*)DEFAULT_SCREEN -byte memset_dma::dmaMode -byte memset_dma::dmaMode#0 reg byte x 2.4444444444444446 -byte memset_dma::fill -constant byte memset_dma::fill#0 fill = '*' -word memset_dma::num -constant word memset_dma::num#0 num = (word)$50*$a -volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:2 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:3 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:4 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:5 11.0 +void memset_dma(void *dest , char fill , unsigned int num) +void *memset_dma::dest +__constant void *memset_dma::dest#0 = (void *)DEFAULT_SCREEN // dest +char memset_dma::dmaMode +char memset_dma::dmaMode#0 // reg byte x 2.4444444444444446 +char memset_dma::fill +__constant char memset_dma::fill#0 = '*' // fill +unsigned int memset_dma::num +__constant unsigned int memset_dma::num#0 = (unsigned int)$50*$a // num +__loadstore volatile struct DMA_LIST_F018B memset_dma_command = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } // mem[12] zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dma-test6.asm b/src/test/ref/examples/mega65/dma-test6.asm index d2f65d118..bbea42052 100644 --- a/src/test/ref/examples/mega65/dma-test6.asm +++ b/src/test/ref/examples/mega65/dma-test6.asm @@ -76,6 +76,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -110,6 +111,7 @@ memoryRemap: { // - dest_bank The 64KB bank for the destination (0-15) // - dest The destination address (within the MB and bank) // - num The number of bytes to copy +// void memset_dma256(char dest_mb, char dest_bank, void *dest, char fill, unsigned int num) memset_dma256: { .const dest_mb = 0 .const dest_bank = 0 diff --git a/src/test/ref/examples/mega65/dma-test6.cfg b/src/test/ref/examples/mega65/dma-test6.cfg index 3f9261eed..66b97721e 100644 --- a/src/test/ref/examples/mega65/dma-test6.cfg +++ b/src/test/ref/examples/mega65/dma-test6.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memset_dma256 + [3] call memset_dma256 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -24,20 +24,20 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) memset_dma256: scope:[memset_dma256] from main::@1 - [11] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [11] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) [12] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 - [13] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 - [14] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 - [15] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 - [16] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma256::fill#0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 - [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 - [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 + [13] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 + [14] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 + [15] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 + [16] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma256::fill#0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 + [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 + [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 to:memset_dma256::@return memset_dma256::@return: scope:[memset_dma256] from memset_dma256 [23] return diff --git a/src/test/ref/examples/mega65/dma-test6.log b/src/test/ref/examples/mega65/dma-test6.log index 5525b817c..cbe4b6a5d 100644 --- a/src/test/ref/examples/mega65/dma-test6.log +++ b/src/test/ref/examples/mega65/dma-test6.log @@ -51,7 +51,7 @@ Eliminating unused variable with no statement memset_dma_command CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main memoryRemap::upperPageOffset#1 = phi( main/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#1 = phi( main/memoryRemap::remapBlocks#0 ) @@ -72,37 +72,37 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) memset_dma256: scope:[memset_dma256] from main::@1 memset_dma256::fill#1 = phi( main::@1/memset_dma256::fill#0 ) memset_dma256::dest#1 = phi( main::@1/memset_dma256::dest#0 ) memset_dma256::dest_bank#1 = phi( main::@1/memset_dma256::dest_bank#0 ) memset_dma256::num#1 = phi( main::@1/memset_dma256::num#0 ) memset_dma256::dest_mb#1 = phi( main::@1/memset_dma256::dest_mb#0 ) - memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) memset_dma_command256[1] = memset_dma256::dest_mb#1 memset_dma256::$0 = & memset_dma_command256[4] - memset_dma256::f018b#0 = (struct DMA_LIST_F018B*)memset_dma256::$0 - memset_dma256::$7 = (word*)memset_dma256::f018b#0 + memset_dma256::f018b#0 = (struct DMA_LIST_F018B *)memset_dma256::$0 + memset_dma256::$7 = (unsigned int *)memset_dma256::f018b#0 memset_dma256::$3 = memset_dma256::$7 + OFFSET_STRUCT_DMA_LIST_F018B_COUNT *memset_dma256::$3 = memset_dma256::num#1 - memset_dma256::$8 = (byte*)memset_dma256::f018b#0 + memset_dma256::$8 = (char *)memset_dma256::f018b#0 memset_dma256::$4 = memset_dma256::$8 + OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK *memset_dma256::$4 = memset_dma256::dest_bank#1 - memset_dma256::$9 = (byte**)memset_dma256::f018b#0 + memset_dma256::$9 = (char **)memset_dma256::f018b#0 memset_dma256::$5 = memset_dma256::$9 + OFFSET_STRUCT_DMA_LIST_F018B_DEST - *memset_dma256::$5 = ((byte*)) memset_dma256::dest#1 - memset_dma256::$10 = (byte**)memset_dma256::f018b#0 + *memset_dma256::$5 = ((char *)) memset_dma256::dest#1 + memset_dma256::$10 = (char **)memset_dma256::f018b#0 memset_dma256::$6 = memset_dma256::$10 + OFFSET_STRUCT_DMA_LIST_F018B_SRC - *memset_dma256::$6 = (byte*)memset_dma256::fill#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *memset_dma256::$6 = (char *)memset_dma256::fill#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 memset_dma256::$1 = byte1 memset_dma_command256 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = memset_dma256::$1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = memset_dma256::$1 memset_dma256::$2 = byte0 memset_dma_command256 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = memset_dma256::$2 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = memset_dma256::$2 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 to:memset_dma256::@return memset_dma256::@return: scope:[memset_dma256] from memset_dma256 return @@ -113,15 +113,15 @@ main: scope:[main] from __start memoryRemap::remapBlocks#0 = 0 memoryRemap::lowerPageOffset#0 = 0 memoryRemap::upperPageOffset#0 = 0 - call memoryRemap + call memoryRemap to:main::@1 main::@1: scope:[main] from main memset_dma256::dest_mb#0 = 0 memset_dma256::dest_bank#0 = 0 - memset_dma256::dest#0 = (void*)DEFAULT_SCREEN + memset_dma256::dest#0 = (void *)DEFAULT_SCREEN memset_dma256::fill#0 = '*' memset_dma256::num#0 = $50*$a - call memset_dma256 + call memset_dma256 to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -131,7 +131,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -140,75 +140,75 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_FILL = 3 -constant const byte DMA_OPTION_DEST_MB = $81 -constant const byte DMA_OPTION_END = 0 -constant const byte DMA_OPTION_FORMAT_F018B = $a -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_FILL = 3 +__constant const char DMA_OPTION_DEST_MB = $81 +__constant const char DMA_OPTION_END = 0 +__constant const char DMA_OPTION_FORMAT_F018B = $a +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 void __start() void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) -byte*~ memset_dma256::$0 -byte~ memset_dma256::$1 -byte**~ memset_dma256::$10 -byte~ memset_dma256::$2 -word*~ memset_dma256::$3 -byte*~ memset_dma256::$4 -byte**~ memset_dma256::$5 -byte**~ memset_dma256::$6 -word*~ memset_dma256::$7 -byte*~ memset_dma256::$8 -byte**~ memset_dma256::$9 -void* memset_dma256::dest -void* memset_dma256::dest#0 -void* memset_dma256::dest#1 -byte memset_dma256::dest_bank -byte memset_dma256::dest_bank#0 -byte memset_dma256::dest_bank#1 -byte memset_dma256::dest_mb -byte memset_dma256::dest_mb#0 -byte memset_dma256::dest_mb#1 -byte memset_dma256::dmaMode -byte memset_dma256::dmaMode#0 -struct DMA_LIST_F018B* memset_dma256::f018b -struct DMA_LIST_F018B* memset_dma256::f018b#0 -byte memset_dma256::fill -byte memset_dma256::fill#0 -byte memset_dma256::fill#1 -word memset_dma256::num -word memset_dma256::num#0 -word memset_dma256::num#1 -constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) +char *memset_dma256::$0 +char memset_dma256::$1 +char **memset_dma256::$10 +char memset_dma256::$2 +unsigned int *memset_dma256::$3 +char *memset_dma256::$4 +char **memset_dma256::$5 +char **memset_dma256::$6 +unsigned int *memset_dma256::$7 +char *memset_dma256::$8 +char **memset_dma256::$9 +void *memset_dma256::dest +void *memset_dma256::dest#0 +void *memset_dma256::dest#1 +char memset_dma256::dest_bank +char memset_dma256::dest_bank#0 +char memset_dma256::dest_bank#1 +char memset_dma256::dest_mb +char memset_dma256::dest_mb#0 +char memset_dma256::dest_mb#1 +char memset_dma256::dmaMode +char memset_dma256::dmaMode#0 +struct DMA_LIST_F018B *memset_dma256::f018b +struct DMA_LIST_F018B *memset_dma256::f018b#0 +char memset_dma256::fill +char memset_dma256::fill#0 +char memset_dma256::fill#1 +unsigned int memset_dma256::num +unsigned int memset_dma256::num#0 +unsigned int memset_dma256::num#1 +__constant char memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -219,9 +219,9 @@ Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f Adding number conversion cast (unumber) 1 in memset_dma_command256[1] = memset_dma256::dest_mb#1 Adding number conversion cast (unumber) 4 in memset_dma256::$0 = & memset_dma_command256[4] -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#0 = 0 @@ -229,10 +229,10 @@ Adding number conversion cast (unumber) 0 in memset_dma256::dest_mb#0 = 0 Adding number conversion cast (unumber) 0 in memset_dma256::dest_bank#0 = 0 Adding number conversion cast (unumber) $50*$a in memset_dma256::num#0 = $50*$a Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *memset_dma256::$5 = (byte*)memset_dma256::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *memset_dma256::$5 = (char *)memset_dma256::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#0 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#0 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#0 = (unumber)0 @@ -240,8 +240,8 @@ Inlining cast memset_dma256::dest_mb#0 = (unumber)0 Inlining cast memset_dma256::dest_bank#0 = (unumber)0 Inlining cast memset_dma256::num#0 = (unumber)$50*$a Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 2048 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 2048 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -257,24 +257,24 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Identical Phi Values memoryRemap::lowerPageOffset#1 memoryRemap::lowerPageOffset#0 Identical Phi Values memoryRemap::remapBlocks#1 memoryRemap::remapBlocks#0 Identical Phi Values memoryRemap::upperPageOffset#1 memoryRemap::upperPageOffset#0 @@ -299,24 +299,24 @@ Constant memoryRemap::lowerPageOffset#0 = 0 Constant memoryRemap::upperPageOffset#0 = 0 Constant memset_dma256::dest_mb#0 = 0 Constant memset_dma256::dest_bank#0 = 0 -Constant memset_dma256::dest#0 = (void*)DEFAULT_SCREEN +Constant memset_dma256::dest#0 = (void *)DEFAULT_SCREEN Constant memset_dma256::fill#0 = '*' Constant memset_dma256::num#0 = (unumber)$50*$a Successful SSA optimization Pass2ConstantIdentification -Constant memset_dma256::f018b#0 = (struct DMA_LIST_F018B*)memset_dma256::$0 +Constant memset_dma256::f018b#0 = (struct DMA_LIST_F018B *)memset_dma256::$0 Successful SSA optimization Pass2ConstantIdentification -Constant memset_dma256::$7 = (word*)memset_dma256::f018b#0 -Constant memset_dma256::$8 = (byte*)memset_dma256::f018b#0 -Constant memset_dma256::$9 = (byte**)memset_dma256::f018b#0 -Constant memset_dma256::$10 = (byte**)memset_dma256::f018b#0 +Constant memset_dma256::$7 = (unsigned int *)memset_dma256::f018b#0 +Constant memset_dma256::$8 = (char *)memset_dma256::f018b#0 +Constant memset_dma256::$9 = (char **)memset_dma256::f018b#0 +Constant memset_dma256::$10 = (char **)memset_dma256::f018b#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memset_dma256::dest#0 in [26] *memset_dma256::$5 = (byte*)memset_dma256::dest#0 -Constant value identified (byte*)memset_dma256::fill#0 in [29] *memset_dma256::$6 = (byte*)memset_dma256::fill#0 +Constant value identified (char *)memset_dma256::dest#0 in [26] *memset_dma256::$5 = (char *)memset_dma256::dest#0 +Constant value identified (char *)memset_dma256::fill#0 in [29] *memset_dma256::$6 = (char *)memset_dma256::fill#0 Successful SSA optimization Pass2ConstantValues Converting *(pointer+n) to pointer[n] [20] *memset_dma256::$3 = memset_dma256::num#0 -- memset_dma256::$7[OFFSET_STRUCT_DMA_LIST_F018B_COUNT] Converting *(pointer+n) to pointer[n] [23] *memset_dma256::$4 = memset_dma256::dest_bank#0 -- memset_dma256::$8[OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK] -Converting *(pointer+n) to pointer[n] [26] *memset_dma256::$5 = (byte*)memset_dma256::dest#0 -- memset_dma256::$9[OFFSET_STRUCT_DMA_LIST_F018B_DEST] -Converting *(pointer+n) to pointer[n] [29] *memset_dma256::$6 = (byte*)memset_dma256::fill#0 -- memset_dma256::$10[OFFSET_STRUCT_DMA_LIST_F018B_SRC] +Converting *(pointer+n) to pointer[n] [26] *memset_dma256::$5 = (char *)memset_dma256::dest#0 -- memset_dma256::$9[OFFSET_STRUCT_DMA_LIST_F018B_DEST] +Converting *(pointer+n) to pointer[n] [29] *memset_dma256::$6 = (char *)memset_dma256::fill#0 -- memset_dma256::$10[OFFSET_STRUCT_DMA_LIST_F018B_SRC] Successful SSA optimization Pass2InlineDerefIdx Eliminating unused variable memset_dma256::$3 and assignment [14] memset_dma256::$3 = memset_dma256::$7 + OFFSET_STRUCT_DMA_LIST_F018B_COUNT Eliminating unused variable memset_dma256::$4 and assignment [16] memset_dma256::$4 = memset_dma256::$8 + OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK @@ -375,21 +375,21 @@ Constant inlined memset_dma256::$2 = byte0 memset_dma_command256 Constant inlined memoryRemap::$3 = 0 Constant inlined memset_dma256::$0 = memset_dma_command256+4 Constant inlined memoryRemap::$8 = 0 -Constant inlined memset_dma256::$9 = (byte**)memset_dma256::f018b#0 -Constant inlined memset_dma256::$7 = (word*)memset_dma256::f018b#0 -Constant inlined memset_dma256::$8 = (byte*)memset_dma256::f018b#0 -Constant inlined memset_dma256::$10 = (byte**)memset_dma256::f018b#0 +Constant inlined memset_dma256::$9 = (char **)memset_dma256::f018b#0 +Constant inlined memset_dma256::$7 = (unsigned int *)memset_dma256::f018b#0 +Constant inlined memset_dma256::$8 = (char *)memset_dma256::f018b#0 +Constant inlined memset_dma256::$10 = (char **)memset_dma256::f018b#0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(memset_dma_command256+1) -Consolidated array index constant in *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) -Consolidated array index constant in *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) -Consolidated array index constant in *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) -Consolidated array index constant in *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) +Consolidated array index constant in *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) +Consolidated array index constant in *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) +Consolidated array index constant in *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) +Consolidated array index constant in *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -408,17 +408,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memoryRemap + [1] call memoryRemap to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call memset_dma256 + [3] call memset_dma256 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main [5] memoryRemap::aVal = 0 [6] memoryRemap::xVal = 0 @@ -430,20 +430,20 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [10] return to:@return -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) memset_dma256: scope:[memset_dma256] from main::@1 - [11] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [11] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) [12] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 - [13] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 - [14] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 - [15] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 - [16] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma256::fill#0 - [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 - [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 - [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 + [13] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 + [14] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 + [15] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 + [16] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma256::fill#0 + [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 + [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 + [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 to:memset_dma256::@return memset_dma256::@return: scope:[memset_dma256] from memset_dma256 [23] return @@ -452,23 +452,23 @@ memset_dma256::@return: scope:[memset_dma256] from memset_dma256 VARIABLE REGISTER WEIGHTS void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore 5.5 -volatile byte memoryRemap::zVal loadstore 11.0 -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) -void* memset_dma256::dest -byte memset_dma256::dest_bank -byte memset_dma256::dest_mb -byte memset_dma256::dmaMode -byte memset_dma256::dmaMode#0 2.0 -struct DMA_LIST_F018B* memset_dma256::f018b -byte memset_dma256::fill -word memset_dma256::num +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // 5.5 +__loadstore volatile char memoryRemap::zVal // 11.0 +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) +void *memset_dma256::dest +char memset_dma256::dest_bank +char memset_dma256::dest_mb +char memset_dma256::dmaMode +char memset_dma256::dmaMode#0 // 2.0 +struct DMA_LIST_F018B *memset_dma256::f018b +char memset_dma256::fill +unsigned int memset_dma256::num Initial phi equivalence classes Added variable memoryRemap::aVal to live range equivalence class [ memoryRemap::aVal ] @@ -495,30 +495,30 @@ Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memory Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [12] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ memset_dma256::dmaMode#0 ] -Statement [13] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [14] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [15] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [16] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma256::fill#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [13] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [14] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [15] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [16] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma256::fill#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Statement [5] memoryRemap::aVal = 0 [ memoryRemap::aVal ] ( memoryRemap:1 [ memoryRemap::aVal ] { } ) always clobbers reg byte a Statement [6] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( memoryRemap:1 [ memoryRemap::aVal memoryRemap::xVal ] { } ) always clobbers reg byte a Statement [7] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:1 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [8] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:1 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [12] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [13] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [14] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [15] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [16] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma256::fill#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [13] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [14] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [15] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [16] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma256::fill#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:3 [ memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ memoryRemap::aVal ] : zp[1]:2 , Potential registers zp[1]:3 [ memoryRemap::xVal ] : zp[1]:3 , Potential registers zp[1]:4 [ memoryRemap::yVal ] : zp[1]:4 , @@ -610,7 +610,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memoryRemap + // [1] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // [2] phi from main to main::@1 [phi:main->main::@1] @@ -618,7 +618,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call memset_dma256 + // [3] call memset_dma256 // Fill screen up using 256MB DMA jsr memset_dma256 jmp __breturn @@ -652,6 +652,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -693,6 +694,7 @@ memoryRemap: { // - dest_bank The 64KB bank for the destination (0-15) // - dest The destination address (within the MB and bank) // - num The number of bytes to copy +// void memset_dma256(char dest_mb, char dest_bank, void *dest, char fill, unsigned int num) memset_dma256: { .const dest_mb = 0 .const dest_bank = 0 @@ -700,51 +702,51 @@ memset_dma256: { .const num = $50*$a .label dest = DEFAULT_SCREEN .label f018b = memset_dma_command256+4 - // [11] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // [12] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 -- _deref_pbuc1=vbuc2 // Set up command lda #dest_mb sta memset_dma_command256+1 - // [13] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 -- _deref_pwuc1=vwuc2 + // [13] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 -- _deref_pwuc1=vwuc2 lda #num sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [14] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [14] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK - // [15] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 + // [15] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [16] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma256::fill#0 -- _deref_qbuc1=pbuc2 + // [16] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma256::fill#0 -- _deref_qbuc1=pbuc2 // Set fill byte lda #fill sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 lda #>memset_dma_command256 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 // Trigger the DMA (with option lists) lda #main::@1] // main::@1 // memset_dma256(0, 0, DEFAULT_SCREEN, '*', 80*10) - // [3] call memset_dma256 + // [3] call memset_dma256 // Fill screen up using 256MB DMA jsr memset_dma256 // main::@return @@ -919,6 +921,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = 2 .label xVal = 3 @@ -961,6 +964,7 @@ memoryRemap: { // - dest_bank The 64KB bank for the destination (0-15) // - dest The destination address (within the MB and bank) // - num The number of bytes to copy +// void memset_dma256(char dest_mb, char dest_bank, void *dest, char fill, unsigned int num) memset_dma256: { .const dest_mb = 0 .const dest_bank = 0 @@ -969,7 +973,7 @@ memset_dma256: { .label dest = DEFAULT_SCREEN .label f018b = memset_dma_command256+4 // char dmaMode = DMA->EN018B - // [11] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [11] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma_command256[1] = dest_mb @@ -978,52 +982,52 @@ memset_dma256: { lda #dest_mb sta memset_dma_command256+1 // f018b->count = num - // [13] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 -- _deref_pwuc1=vwuc2 + // [13] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 -- _deref_pwuc1=vwuc2 lda #num sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // f018b->dest_bank = dest_bank - // [14] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [14] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK // f018b->dest = dest - // [15] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 + // [15] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // f018b->src = (char*)fill - // [16] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma256::fill#0 -- _deref_qbuc1=pbuc2 + // [16] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma256::fill#0 -- _deref_qbuc1=pbuc2 // Set fill byte lda #fill sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // DMA->EN018B = 1 - // [17] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [17] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [18] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [18] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [19] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(memset_dma_command256) - // [20] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [20] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 lda #>memset_dma_command256 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ETRIG = BYTE0(memset_dma_command256) - // [21] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [21] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 // Trigger the DMA (with option lists) lda #EN018B = dmaMode - // [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 -- _deref_pbuc1=vbuxx + // [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma256::@return diff --git a/src/test/ref/examples/mega65/dma-test6.sym b/src/test/ref/examples/mega65/dma-test6.sym index 2b8ec3ae7..ef8d90294 100644 --- a/src/test/ref/examples/mega65/dma-test6.sym +++ b/src/test/ref/examples/mega65/dma-test6.sym @@ -1,43 +1,43 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_FILL = 3 -constant const byte DMA_OPTION_DEST_MB = $81 -constant const byte DMA_OPTION_END = 0 -constant const byte DMA_OPTION_FORMAT_F018B = $a -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_FILL = 3 +__constant const char DMA_OPTION_DEST_MB = $81 +__constant const char DMA_OPTION_END = 0 +__constant const char DMA_OPTION_FORMAT_F018B = $a +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 void main() -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:2 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:3 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:4 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:5 11.0 -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) -void* memset_dma256::dest -constant void* memset_dma256::dest#0 dest = (void*)DEFAULT_SCREEN -byte memset_dma256::dest_bank -constant byte memset_dma256::dest_bank#0 dest_bank = 0 -byte memset_dma256::dest_mb -constant byte memset_dma256::dest_mb#0 dest_mb = 0 -byte memset_dma256::dmaMode -byte memset_dma256::dmaMode#0 reg byte x 2.0 -struct DMA_LIST_F018B* memset_dma256::f018b -constant struct DMA_LIST_F018B* memset_dma256::f018b#0 f018b = (struct DMA_LIST_F018B*)memset_dma_command256+4 -byte memset_dma256::fill -constant byte memset_dma256::fill#0 fill = '*' -word memset_dma256::num -constant word memset_dma256::num#0 num = (word)$50*$a -constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:2 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:3 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:4 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:5 11.0 +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) +void *memset_dma256::dest +__constant void *memset_dma256::dest#0 = (void *)DEFAULT_SCREEN // dest +char memset_dma256::dest_bank +__constant char memset_dma256::dest_bank#0 = 0 // dest_bank +char memset_dma256::dest_mb +__constant char memset_dma256::dest_mb#0 = 0 // dest_mb +char memset_dma256::dmaMode +char memset_dma256::dmaMode#0 // reg byte x 2.0 +struct DMA_LIST_F018B *memset_dma256::f018b +__constant struct DMA_LIST_F018B *memset_dma256::f018b#0 = (struct DMA_LIST_F018B *)memset_dma_command256+4 // f018b +char memset_dma256::fill +__constant char memset_dma256::fill#0 = '*' // fill +unsigned int memset_dma256::num +__constant unsigned int memset_dma256::num#0 = (unsigned int)$50*$a // num +__constant char memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } zp[1]:2 [ memoryRemap::aVal ] zp[1]:3 [ memoryRemap::xVal ] diff --git a/src/test/ref/examples/mega65/dypp65.asm b/src/test/ref/examples/mega65/dypp65.asm index 6ec0eda4d..7c9fc4991 100644 --- a/src/test/ref/examples/mega65/dypp65.asm +++ b/src/test/ref/examples/mega65/dypp65.asm @@ -22,7 +22,7 @@ /// $81 $xx = Set MB of destination address .const DMA_OPTION_DEST_MB = $81 .const WHITE = 1 - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 .const OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 .const OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 @@ -256,7 +256,7 @@ main: { cpz #$2d bcc __b4 // erow += 45 - lda #$2d*SIZEOF_WORD + lda #$2d*SIZEOF_UNSIGNED_INT clc adc.z erow sta.z erow @@ -312,6 +312,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = $e .label xVal = $f @@ -345,7 +346,7 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - fill The char to fill with // - num The number of bytes to copy -// memset_dma(void* zp($c) dest, byte register(Z) fill, word zp($a) num) +// void memset_dma(__zp($c) void *dest, __register(Z) char fill, __zp($a) unsigned int num) memset_dma: { .label num = $a .label dest = $c @@ -397,6 +398,7 @@ memset_dma: { // - dest_bank The 64KB bank for the destination (0-15) // - dest The destination address (within the MB and bank) // - num The number of bytes to copy +// void memset_dma256(char dest_mb, char dest_bank, void *dest, char fill, unsigned int num) memset_dma256: { .const dest_mb = $ff .const dest_bank = 8 diff --git a/src/test/ref/examples/mega65/dypp65.cfg b/src/test/ref/examples/mega65/dypp65.cfg index e1b75ab6d..2d8895168 100644 --- a/src/test/ref/examples/mega65/dypp65.cfg +++ b/src/test/ref/examples/mega65/dypp65.cfg @@ -8,42 +8,42 @@ main::SEI1: scope:[main] from main to:main::@11 main::@11: scope:[main] from main::SEI1 [2] phi() - [3] call memoryRemap + [3] call memoryRemap to:main::@12 main::@12: scope:[main] from main::@11 - [4] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 - [5] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 - [6] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 - [7] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 - [8] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 - [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 - [10] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 - [11] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 - [12] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 - [13] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 - [14] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 - [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f - [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a - [17] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 - [18] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 - [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 - [20] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d - [21] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 - [22] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN - [23] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 - [24] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 - [25] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 - [26] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET - [27] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 - [28] call memset_dma + [4] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 + [5] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 + [6] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 + [7] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 + [8] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 + [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 + [10] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 + [11] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 + [12] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 + [13] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 + [14] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 + [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f + [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a + [17] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 + [18] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 + [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 + [20] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d + [21] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 + [22] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN + [23] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 + [24] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 + [25] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 + [26] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET + [27] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 + [28] call memset_dma to:main::@13 main::@13: scope:[main] from main::@12 [29] phi() - [30] call memset_dma256 + [30] call memset_dma256 to:main::@14 main::@14: scope:[main] from main::@13 [31] phi() - [32] call memset_dma + [32] call memset_dma to:main::@1 main::@1: scope:[main] from main::@14 main::@5 [33] main::erow#5 = phi( main::@14/SCREEN, main::@5/main::erow#1 ) @@ -57,14 +57,14 @@ main::@6: scope:[main] from main::@1 main::@9 [36] if(main::col#2<$2d) goto main::@7 to:main::@10 main::@10: scope:[main] from main::@10 main::@6 - [37] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) + [37] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) to:main::@10 main::@7: scope:[main] from main::@6 main::@8 [38] main::y#2 = phi( main::@8/main::y#1, main::@6/0 ) [39] if(main::y#2<$19*8) goto main::@8 to:main::@9 main::@9: scope:[main] from main::@7 - [40] main::logo_dest#1 = main::logo_dest#5 + (word)$20*8 + [40] main::logo_dest#1 = main::logo_dest#5 + (unsigned int)$20*8 [41] main::logo_src#1 = main::logo_src#5 + $19*8 [42] main::col#1 = ++ main::col#2 to:main::@6 @@ -73,7 +73,7 @@ main::@8: scope:[main] from main::@7 [44] main::y#1 = ++ main::y#2 to:main::@7 main::@2: scope:[main] from main::@1 - [45] main::c#0 = (word)main::r#2 + [45] main::c#0 = (unsigned int)main::r#2 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 [46] main::c#2 = phi( main::@2/main::c#0, main::@4/main::c#1 ) @@ -81,7 +81,7 @@ main::@3: scope:[main] from main::@2 main::@4 [47] if(main::i#2<$2d) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_WORD + [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_UNSIGNED_INT [49] main::r#1 = ++ main::r#2 to:main::@1 main::@4: scope:[main] from main::@3 @@ -91,7 +91,7 @@ main::@4: scope:[main] from main::@3 [53] main::i#1 = ++ main::i#2 to:main::@3 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main::@11 [54] memoryRemap::aVal = 0 [55] memoryRemap::xVal = 0 @@ -103,40 +103,40 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [59] return to:@return -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) +void memset_dma(void *dest , char fill , unsigned int num) memset_dma: scope:[memset_dma] from main::@12 main::@14 - [60] memset_dma::dest#2 = phi( main::@12/(void*)SCREEN, main::@14/(void*)CHARSET ) + [60] memset_dma::dest#2 = phi( main::@12/(void *)SCREEN, main::@14/(void *)CHARSET ) [60] memset_dma::fill#2 = phi( main::@12/0, main::@14/$55 ) - [60] memset_dma::num#2 = phi( main::@12/(word)$2d*$19*2, main::@14/(word)$2d*$20*8 ) - [61] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [62] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 - [63] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 - [64] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 - [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [66] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [68] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command - [69] *((byte*)DMA) = byte0 &memset_dma_command - [70] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 + [60] memset_dma::num#2 = phi( main::@12/(unsigned int)$2d*$19*2, main::@14/(unsigned int)$2d*$20*8 ) + [61] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [62] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 + [63] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 + [64] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 + [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [66] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [68] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command + [69] *((char *)DMA) = byte0 &memset_dma_command + [70] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 to:memset_dma::@return memset_dma::@return: scope:[memset_dma] from memset_dma [71] return to:@return -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) memset_dma256: scope:[memset_dma256] from main::@13 - [72] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [72] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) [73] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 - [74] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 - [75] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 - [76] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 - [77] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)WHITE - [78] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [79] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [80] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [81] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 - [82] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 - [83] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 + [74] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 + [75] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 + [76] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 + [77] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)WHITE + [78] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [79] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [80] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [81] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 + [82] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 + [83] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 to:memset_dma256::@return memset_dma256::@return: scope:[memset_dma256] from memset_dma256 [84] return diff --git a/src/test/ref/examples/mega65/dypp65.log b/src/test/ref/examples/mega65/dypp65.log index 8318e9ba7..6358d7817 100644 --- a/src/test/ref/examples/mega65/dypp65.log +++ b/src/test/ref/examples/mega65/dypp65.log @@ -41,7 +41,7 @@ Setting inferred volatile on symbol affected by address-of: memoryRemap256M::xVa Setting inferred volatile on symbol affected by address-of: memoryRemap256M::yVal in asm { ldalMb ldx#$0f ldyuMb ldz#$0f map ldaaVal ldxxVal ldyyVal ldzzVal map eom } Setting inferred volatile on symbol affected by address-of: memoryRemap256M::zVal in asm { ldalMb ldx#$0f ldyuMb ldz#$0f map ldaaVal ldxxVal ldyyVal ldzzVal map eom } Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call SEI +Inlined call call SEI Eliminating unused variable with no statement memoryRemap::$0 Eliminating unused variable with no statement memoryRemap::$4 Eliminating unused variable with no statement memoryRemap::$5 @@ -51,7 +51,7 @@ Eliminating unused variable with no statement memcpy_dma_command4 CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main::@13 memoryRemap::upperPageOffset#1 = phi( main::@13/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#1 = phi( main::@13/memoryRemap::remapBlocks#0 ) @@ -72,57 +72,57 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) +void memset_dma(void *dest , char fill , unsigned int num) memset_dma: scope:[memset_dma] from main::@14 main::@16 memset_dma::dest#2 = phi( main::@14/memset_dma::dest#0, main::@16/memset_dma::dest#1 ) memset_dma::fill#2 = phi( main::@14/memset_dma::fill#0, main::@16/memset_dma::fill#1 ) memset_dma::num#2 = phi( main::@14/memset_dma::num#0, main::@16/memset_dma::num#1 ) - memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 - *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 - *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((byte*)) memset_dma::dest#2 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 + memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 + *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 + *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = ((char *)) memset_dma::dest#2 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 to:memset_dma::@return memset_dma::@return: scope:[memset_dma] from memset_dma return to:@return -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) memset_dma256: scope:[memset_dma256] from main::@15 memset_dma256::fill#1 = phi( main::@15/memset_dma256::fill#0 ) memset_dma256::dest#1 = phi( main::@15/memset_dma256::dest#0 ) memset_dma256::dest_bank#1 = phi( main::@15/memset_dma256::dest_bank#0 ) memset_dma256::num#1 = phi( main::@15/memset_dma256::num#0 ) memset_dma256::dest_mb#1 = phi( main::@15/memset_dma256::dest_mb#0 ) - memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) memset_dma_command256[1] = memset_dma256::dest_mb#1 memset_dma256::$0 = & memset_dma_command256[4] - memset_dma256::f018b#0 = (struct DMA_LIST_F018B*)memset_dma256::$0 - memset_dma256::$7 = (word*)memset_dma256::f018b#0 + memset_dma256::f018b#0 = (struct DMA_LIST_F018B *)memset_dma256::$0 + memset_dma256::$7 = (unsigned int *)memset_dma256::f018b#0 memset_dma256::$3 = memset_dma256::$7 + OFFSET_STRUCT_DMA_LIST_F018B_COUNT *memset_dma256::$3 = memset_dma256::num#1 - memset_dma256::$8 = (byte*)memset_dma256::f018b#0 + memset_dma256::$8 = (char *)memset_dma256::f018b#0 memset_dma256::$4 = memset_dma256::$8 + OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK *memset_dma256::$4 = memset_dma256::dest_bank#1 - memset_dma256::$9 = (byte**)memset_dma256::f018b#0 + memset_dma256::$9 = (char **)memset_dma256::f018b#0 memset_dma256::$5 = memset_dma256::$9 + OFFSET_STRUCT_DMA_LIST_F018B_DEST - *memset_dma256::$5 = ((byte*)) memset_dma256::dest#1 - memset_dma256::$10 = (byte**)memset_dma256::f018b#0 + *memset_dma256::$5 = ((char *)) memset_dma256::dest#1 + memset_dma256::$10 = (char **)memset_dma256::f018b#0 memset_dma256::$6 = memset_dma256::$10 + OFFSET_STRUCT_DMA_LIST_F018B_SRC - *memset_dma256::$6 = (byte*)memset_dma256::fill#1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + *memset_dma256::$6 = (char *)memset_dma256::fill#1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 memset_dma256::$1 = byte1 memset_dma_command256 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = memset_dma256::$1 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = memset_dma256::$1 memset_dma256::$2 = byte0 memset_dma_command256 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = memset_dma256::$2 - *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = memset_dma256::$2 + *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 to:memset_dma256::@return memset_dma256::@return: scope:[memset_dma256] from memset_dma256 return @@ -138,51 +138,51 @@ main::@13: scope:[main] from main::SEI1 memoryRemap::remapBlocks#0 = 0 memoryRemap::lowerPageOffset#0 = 0 memoryRemap::upperPageOffset#0 = 0 - call memoryRemap + call memoryRemap to:main::@14 main::@14: scope:[main] from main::@13 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = byte0 SCREEN - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = byte0 CHARSET - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 - memset_dma::dest#0 = (void*)SCREEN + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = byte0 SCREEN + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = byte0 CHARSET + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 + memset_dma::dest#0 = (void *)SCREEN memset_dma::fill#0 = 0 memset_dma::num#0 = $2d*$19*2 - call memset_dma + call memset_dma to:main::@15 main::@15: scope:[main] from main::@14 memset_dma256::dest_mb#0 = $ff memset_dma256::dest_bank#0 = 8 - memset_dma256::dest#0 = (void*)0 + memset_dma256::dest#0 = (void *)0 memset_dma256::fill#0 = WHITE memset_dma256::num#0 = $2d*$19*2 - call memset_dma256 + call memset_dma256 to:main::@16 main::@16: scope:[main] from main::@15 - memset_dma::dest#1 = (void*)CHARSET + memset_dma::dest#1 = (void *)CHARSET memset_dma::fill#1 = $55 memset_dma::num#1 = $2d*$20*8 - call memset_dma + call memset_dma to:main::@17 main::@17: scope:[main] from main::@16 main::erow#0 = main::ESCREEN @@ -197,7 +197,7 @@ main::@1: scope:[main] from main::@17 main::@6 main::@2: scope:[main] from main::@1 main::erow#5 = phi( main::@1/main::erow#6 ) main::r#3 = phi( main::@1/main::r#2 ) - main::c#0 = (word)main::r#3 + main::c#0 = (unsigned int)main::r#3 main::i#0 = 0 to:main::@4 main::@3: scope:[main] from main::@1 @@ -218,7 +218,7 @@ main::@5: scope:[main] from main::@4 main::erow#2 = phi( main::@4/main::erow#4 ) main::c#2 = phi( main::@4/main::c#3 ) main::i#3 = phi( main::@4/main::i#2 ) - main::$10 = main::i#3 * SIZEOF_WORD + main::$10 = main::i#3 * SIZEOF_UNSIGNED_INT main::erow#2[main::$10] = main::c#2 main::c#1 = main::c#2 + $20 main::i#1 = ++ main::i#3 @@ -226,7 +226,7 @@ main::@5: scope:[main] from main::@4 main::@6: scope:[main] from main::@4 main::r#4 = phi( main::@4/main::r#5 ) main::erow#3 = phi( main::@4/main::erow#4 ) - main::$9 = $2d * SIZEOF_WORD + main::$9 = $2d * SIZEOF_UNSIGNED_INT main::erow#1 = main::erow#3 + main::$9 main::r#1 = ++ main::r#4 to:main::@1 @@ -268,7 +268,7 @@ main::@11: scope:[main] from main::@9 main::col#1 = ++ main::col#3 to:main::@7 main::@12: scope:[main] from main::@12 main::@7 - *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) + *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) to:main::@12 main::@return: scope:[main] from return @@ -276,7 +276,7 @@ main::@return: scope:[main] from void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -285,187 +285,187 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHARSET = (byte*)$6000 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*)$d700 -constant const byte DMA_COMMAND_FILL = 3 -constant const byte DMA_OPTION_DEST_MB = $81 -constant const byte DMA_OPTION_END = 0 -constant const byte DMA_OPTION_FORMAT_F018B = $a -constant byte* LOGO[$2d*$19*8] = kickasm {{ .var pic = LoadPicture("camelot.png", List().add($ffffff, $000000)) +__constant char * const CHARSET = (char *)$6000 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *)$d700 +__constant const char DMA_COMMAND_FILL = 3 +__constant const char DMA_OPTION_DEST_MB = $81 +__constant const char DMA_OPTION_END = 0 +__constant const char DMA_OPTION_FORMAT_F018B = $a +__constant char LOGO[$2d*$19*8] = kickasm {{ .var pic = LoadPicture("camelot.png", List().add($ffffff, $000000)) .for (var x=0;x<45; x++) .for (var y=0; y<25*8; y++) .byte pic.getSinglecolorByte(x,y) }} -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 -constant byte OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI = $4b -constant byte OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO = $4a -constant byte OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO = $6a -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI = $69 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO = $68 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI = $59 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO = $58 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT = $5e -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 -constant byte OFFSET_STRUCT_MEGA65_VICIV_KEY = $2f -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI = $63 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO = $62 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI = $61 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO = $60 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI = $5d -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c -constant byte OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI = $49 -constant byte OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO = $48 -constant byte OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI = $4d -constant byte OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const SCREEN = (byte*)$5000 -constant byte SIZEOF_WORD = 2 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 -constant struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*)$d000 -constant const byte WHITE = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG = 0 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 +__constant char OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI = $4b +__constant char OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO = $4a +__constant char OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO = $6a +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI = $69 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO = $68 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI = $59 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO = $58 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT = $5e +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 +__constant char OFFSET_STRUCT_MEGA65_VICIV_KEY = $2f +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI = $63 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO = $62 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI = $61 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO = $60 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI = $5d +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c +__constant char OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI = $49 +__constant char OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO = $48 +__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI = $4d +__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const SCREEN = (char *)$5000 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 +__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *)$d000 +__constant const char WHITE = 1 void __start() void main() -byte~ main::$10 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -bool~ main::$8 -number~ main::$9 -constant word* main::ESCREEN = SCREEN -word main::c -word main::c#0 -word main::c#1 -word main::c#2 -word main::c#3 -byte main::col -byte main::col#0 -byte main::col#1 -byte main::col#2 -byte main::col#3 -byte main::col#4 -byte main::col#5 -byte main::col#6 -word* main::erow -word* main::erow#0 -word* main::erow#1 -word* main::erow#2 -word* main::erow#3 -word* main::erow#4 -word* main::erow#5 -word* main::erow#6 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte* main::logo_dest -byte* main::logo_dest#0 -byte* main::logo_dest#1 -byte* main::logo_dest#2 -byte* main::logo_dest#3 -byte* main::logo_dest#4 -byte* main::logo_dest#5 -byte* main::logo_dest#6 -byte* main::logo_src -byte* main::logo_src#0 -byte* main::logo_src#1 -byte* main::logo_src#2 -byte* main::logo_src#3 -byte* main::logo_src#4 -byte* main::logo_src#5 -byte* main::logo_src#6 -byte main::r -byte main::r#0 -byte main::r#1 -byte main::r#2 -byte main::r#3 -byte main::r#4 -byte main::r#5 -byte main::r#6 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) -void* memset_dma::dest -void* memset_dma::dest#0 -void* memset_dma::dest#1 -void* memset_dma::dest#2 -byte memset_dma::dmaMode -byte memset_dma::dmaMode#0 -byte memset_dma::fill -byte memset_dma::fill#0 -byte memset_dma::fill#1 -byte memset_dma::fill#2 -word memset_dma::num -word memset_dma::num#0 -word memset_dma::num#1 -word memset_dma::num#2 -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) -byte*~ memset_dma256::$0 -byte~ memset_dma256::$1 -byte**~ memset_dma256::$10 -byte~ memset_dma256::$2 -word*~ memset_dma256::$3 -byte*~ memset_dma256::$4 -byte**~ memset_dma256::$5 -byte**~ memset_dma256::$6 -word*~ memset_dma256::$7 -byte*~ memset_dma256::$8 -byte**~ memset_dma256::$9 -void* memset_dma256::dest -void* memset_dma256::dest#0 -void* memset_dma256::dest#1 -byte memset_dma256::dest_bank -byte memset_dma256::dest_bank#0 -byte memset_dma256::dest_bank#1 -byte memset_dma256::dest_mb -byte memset_dma256::dest_mb#0 -byte memset_dma256::dest_mb#1 -byte memset_dma256::dmaMode -byte memset_dma256::dmaMode#0 -struct DMA_LIST_F018B* memset_dma256::f018b -struct DMA_LIST_F018B* memset_dma256::f018b#0 -byte memset_dma256::fill -byte memset_dma256::fill#0 -byte memset_dma256::fill#1 -word memset_dma256::num -word memset_dma256::num#0 -word memset_dma256::num#1 -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +char main::$10 +bool main::$5 +bool main::$6 +bool main::$7 +bool main::$8 +number main::$9 +__constant unsigned int *main::ESCREEN = SCREEN +unsigned int main::c +unsigned int main::c#0 +unsigned int main::c#1 +unsigned int main::c#2 +unsigned int main::c#3 +char main::col +char main::col#0 +char main::col#1 +char main::col#2 +char main::col#3 +char main::col#4 +char main::col#5 +char main::col#6 +unsigned int *main::erow +unsigned int *main::erow#0 +unsigned int *main::erow#1 +unsigned int *main::erow#2 +unsigned int *main::erow#3 +unsigned int *main::erow#4 +unsigned int *main::erow#5 +unsigned int *main::erow#6 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char *main::logo_dest +char *main::logo_dest#0 +char *main::logo_dest#1 +char *main::logo_dest#2 +char *main::logo_dest#3 +char *main::logo_dest#4 +char *main::logo_dest#5 +char *main::logo_dest#6 +char *main::logo_src +char *main::logo_src#0 +char *main::logo_src#1 +char *main::logo_src#2 +char *main::logo_src#3 +char *main::logo_src#4 +char *main::logo_src#5 +char *main::logo_src#6 +char main::r +char main::r#0 +char main::r#1 +char main::r#2 +char main::r#3 +char main::r#4 +char main::r#5 +char main::r#6 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal +void memset_dma(void *dest , char fill , unsigned int num) +void *memset_dma::dest +void *memset_dma::dest#0 +void *memset_dma::dest#1 +void *memset_dma::dest#2 +char memset_dma::dmaMode +char memset_dma::dmaMode#0 +char memset_dma::fill +char memset_dma::fill#0 +char memset_dma::fill#1 +char memset_dma::fill#2 +unsigned int memset_dma::num +unsigned int memset_dma::num#0 +unsigned int memset_dma::num#1 +unsigned int memset_dma::num#2 +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) +char *memset_dma256::$0 +char memset_dma256::$1 +char **memset_dma256::$10 +char memset_dma256::$2 +unsigned int *memset_dma256::$3 +char *memset_dma256::$4 +char **memset_dma256::$5 +char **memset_dma256::$6 +unsigned int *memset_dma256::$7 +char *memset_dma256::$8 +char **memset_dma256::$9 +void *memset_dma256::dest +void *memset_dma256::dest#0 +void *memset_dma256::dest#1 +char memset_dma256::dest_bank +char memset_dma256::dest_bank#0 +char memset_dma256::dest_bank#1 +char memset_dma256::dest_mb +char memset_dma256::dest_mb#0 +char memset_dma256::dest_mb#1 +char memset_dma256::dmaMode +char memset_dma256::dmaMode#0 +struct DMA_LIST_F018B *memset_dma256::f018b +struct DMA_LIST_F018B *memset_dma256::f018b#0 +char memset_dma256::fill +char memset_dma256::fill#0 +char memset_dma256::fill#1 +unsigned int memset_dma256::num +unsigned int memset_dma256::num#0 +unsigned int memset_dma256::num#1 +__loadstore volatile struct DMA_LIST_F018B memset_dma_command = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +__constant char memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#1 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -474,37 +474,37 @@ Adding number conversion cast (unumber) $f0 in memoryRemap::$6 = memoryRemap::re Adding number conversion cast (unumber) memoryRemap::$6 in memoryRemap::$6 = memoryRemap::remapBlocks#1 & (unumber)$f0 Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 & $f Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 1 in memset_dma_command256[1] = memset_dma256::dest_mb#1 Adding number conversion cast (unumber) 4 in memset_dma256::$0 = & memset_dma_command256[4] -Adding number conversion cast (unumber) 1 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 +Adding number conversion cast (unumber) 1 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 +Adding number conversion cast (unumber) 0 in *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 Adding number conversion cast (unumber) 0 in memoryRemap::remapBlocks#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::lowerPageOffset#0 = 0 Adding number conversion cast (unumber) 0 in memoryRemap::upperPageOffset#0 = 0 -Adding number conversion cast (unumber) $40 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -Adding number conversion cast (unumber) $40 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -Adding number conversion cast (unumber) $47 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 -Adding number conversion cast (unumber) $53 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 -Adding number conversion cast (unumber) 2 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 -Adding number conversion cast (unumber) 1 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 -Adding number conversion cast (unumber) $7f in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f -Adding number conversion cast (unumber) $5a in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 -Adding number conversion cast (unumber) $28 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 -Adding number conversion cast (unumber) $2d in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 +Adding number conversion cast (unumber) $40 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 +Adding number conversion cast (unumber) $40 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 +Adding number conversion cast (unumber) $47 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 +Adding number conversion cast (unumber) $53 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 +Adding number conversion cast (unumber) 2 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 +Adding number conversion cast (unumber) 1 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 +Adding number conversion cast (unumber) $7f in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f +Adding number conversion cast (unumber) $5a in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 +Adding number conversion cast (unumber) $28 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 +Adding number conversion cast (unumber) $2d in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 +Adding number conversion cast (unumber) 0 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 Adding number conversion cast (unumber) 0 in memset_dma::fill#0 = 0 Adding number conversion cast (unumber) $2d*$19*2 in memset_dma::num#0 = $2d*$19*2 Adding number conversion cast (unumber) $ff in memset_dma256::dest_mb#0 = $ff @@ -515,40 +515,40 @@ Adding number conversion cast (unumber) $2d*$20*8 in memset_dma::num#1 = $2d*$20 Adding number conversion cast (unumber) $19 in main::$5 = main::r#2 < $19 Adding number conversion cast (unumber) $2d in main::$6 = main::i#2 < $2d Adding number conversion cast (unumber) $20 in main::c#1 = main::c#2 + $20 -Adding number conversion cast (unumber) $2d in main::$9 = $2d * SIZEOF_WORD -Adding number conversion cast (unumber) main::$9 in main::$9 = (unumber)$2d * SIZEOF_WORD +Adding number conversion cast (unumber) $2d in main::$9 = $2d * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$9 in main::$9 = (unumber)$2d * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) $2d in main::$7 = main::col#2 < $2d Adding number conversion cast (unumber) $19*8 in main::$8 = main::y#2 < $19*8 Adding number conversion cast (unumber) $20*8 in main::logo_dest#1 = main::logo_dest#3 + $20*8 Adding number conversion cast (unumber) $19*8 in main::logo_src#1 = main::logo_src#3 + $19*8 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 -Inlining cast *memset_dma256::$5 = (byte*)memset_dma256::dest#1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 -Inlining cast *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 +Inlining cast *memset_dma256::$5 = (char *)memset_dma256::dest#1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = (unumber)1 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = (unumber)0 +Inlining cast *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = (unumber)0 Inlining cast memoryRemap::remapBlocks#0 = (unumber)0 Inlining cast memoryRemap::lowerPageOffset#0 = (unumber)0 Inlining cast memoryRemap::upperPageOffset#0 = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = (unumber)$47 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = (unumber)$53 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = (unumber)2 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = (unumber)$5a -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = (unumber)$28 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = (unumber)$2d -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = (unumber)$47 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = (unumber)$53 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = (unumber)2 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = (unumber)$5a +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = (unumber)$28 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = (unumber)$2d +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = (unumber)0 Inlining cast memset_dma::fill#0 = (unumber)0 Inlining cast memset_dma::num#0 = (unumber)$2d*$19*2 Inlining cast memset_dma256::dest_mb#0 = (unumber)$ff @@ -557,11 +557,11 @@ Inlining cast memset_dma256::num#0 = (unumber)$2d*$19*2 Inlining cast memset_dma::fill#1 = (unumber)$55 Inlining cast memset_dma::num#1 = (unumber)$2d*$20*8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (struct MEGA65_VICIV*) 53248 -Simplifying constant pointer cast (struct F018_DMAGIC*) 55040 -Simplifying constant pointer cast (byte*) 20480 -Simplifying constant pointer cast (byte*) 24576 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (struct MEGA65_VICIV *) 53248 +Simplifying constant pointer cast (struct F018_DMAGIC *) 55040 +Simplifying constant pointer cast (char *) 20480 +Simplifying constant pointer cast (char *) 24576 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -600,7 +600,7 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $ff Simplifying constant integer cast 8 -Simplifying constant pointer cast (void*) 0 +Simplifying constant pointer cast (void *) 0 Simplifying constant integer cast $55 Simplifying constant integer cast $19 Simplifying constant integer cast $2d @@ -608,55 +608,55 @@ Simplifying constant integer cast $20 Simplifying constant integer cast $2d Simplifying constant integer cast $2d Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $47 -Finalized unsigned number type (byte) $53 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $5a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) $2d +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $47 +Finalized unsigned number type (char) $53 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $5a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) $2d Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f -Inferred type updated to byte in main::$9 = $2d * SIZEOF_WORD +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in main::$9 = $2d * SIZEOF_UNSIGNED_INT Alias main::r#2 = main::r#3 Alias main::erow#5 = main::erow#6 Alias main::i#2 = main::i#3 @@ -688,7 +688,7 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$5 [98] if(main::r#2<$19) goto main::@2 Simple Condition main::$6 [106] if(main::i#2<$2d) goto main::@5 Simple Condition main::$7 [116] if(main::col#2<$2d) goto main::@8 -Simple Condition main::$8 [120] if(main::y#2<(byte)$19*8) goto main::@10 +Simple Condition main::$8 [120] if(main::y#2<(char)$19*8) goto main::@10 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting array member address-of to pointer addition [28] memset_dma256::$0 = memset_dma_command256 + 4 Successful SSA optimization PassNArrayElementAddressOfRewriting @@ -698,7 +698,7 @@ Constant right-side identified [47] memset_dma256::$2 = byte0 memset_dma_comman Constant right-side identified [82] memset_dma::num#0 = (unumber)$2d*$19*2 Constant right-side identified [88] memset_dma256::num#0 = (unumber)$2d*$19*2 Constant right-side identified [92] memset_dma::num#1 = (unumber)$2d*$20*8 -Constant right-side identified [111] main::$9 = $2d * SIZEOF_WORD +Constant right-side identified [111] main::$9 = $2d * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset_dma256::$0 = memset_dma_command256+4 Constant memset_dma256::$1 = byte1 memset_dma_command256 @@ -706,15 +706,15 @@ Constant memset_dma256::$2 = byte0 memset_dma_command256 Constant memoryRemap::remapBlocks#0 = 0 Constant memoryRemap::lowerPageOffset#0 = 0 Constant memoryRemap::upperPageOffset#0 = 0 -Constant memset_dma::dest#0 = (void*)SCREEN +Constant memset_dma::dest#0 = (void *)SCREEN Constant memset_dma::fill#0 = 0 Constant memset_dma::num#0 = (unumber)$2d*$19*2 Constant memset_dma256::dest_mb#0 = $ff Constant memset_dma256::dest_bank#0 = 8 -Constant memset_dma256::dest#0 = (void*) 0 +Constant memset_dma256::dest#0 = (void *) 0 Constant memset_dma256::fill#0 = WHITE Constant memset_dma256::num#0 = (unumber)$2d*$19*2 -Constant memset_dma::dest#1 = (void*)CHARSET +Constant memset_dma::dest#1 = (void *)CHARSET Constant memset_dma::fill#1 = $55 Constant memset_dma::num#1 = (unumber)$2d*$20*8 Constant main::erow#0 = main::ESCREEN @@ -723,28 +723,28 @@ Constant main::i#0 = 0 Constant main::logo_dest#0 = CHARSET Constant main::logo_src#0 = LOGO Constant main::col#0 = 0 -Constant main::$9 = $2d*SIZEOF_WORD +Constant main::$9 = $2d*SIZEOF_UNSIGNED_INT Constant main::y#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant memset_dma256::f018b#0 = (struct DMA_LIST_F018B*)memset_dma256::$0 +Constant memset_dma256::f018b#0 = (struct DMA_LIST_F018B *)memset_dma256::$0 Successful SSA optimization Pass2ConstantIdentification -Constant memset_dma256::$7 = (word*)memset_dma256::f018b#0 -Constant memset_dma256::$8 = (byte*)memset_dma256::f018b#0 -Constant memset_dma256::$9 = (byte**)memset_dma256::f018b#0 -Constant memset_dma256::$10 = (byte**)memset_dma256::f018b#0 +Constant memset_dma256::$7 = (unsigned int *)memset_dma256::f018b#0 +Constant memset_dma256::$8 = (char *)memset_dma256::f018b#0 +Constant memset_dma256::$9 = (char **)memset_dma256::f018b#0 +Constant memset_dma256::$10 = (char **)memset_dma256::f018b#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)memset_dma256::dest#0 in [38] *memset_dma256::$5 = (byte*)memset_dma256::dest#0 -Constant value identified (byte*)memset_dma256::fill#0 in [41] *memset_dma256::$6 = (byte*)memset_dma256::fill#0 +Constant value identified (char *)memset_dma256::dest#0 in [38] *memset_dma256::$5 = (char *)memset_dma256::dest#0 +Constant value identified (char *)memset_dma256::fill#0 in [41] *memset_dma256::$6 = (char *)memset_dma256::fill#0 Successful SSA optimization Pass2ConstantValues Converting *(pointer+n) to pointer[n] [32] *memset_dma256::$3 = memset_dma256::num#0 -- memset_dma256::$7[OFFSET_STRUCT_DMA_LIST_F018B_COUNT] Converting *(pointer+n) to pointer[n] [35] *memset_dma256::$4 = memset_dma256::dest_bank#0 -- memset_dma256::$8[OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK] -Converting *(pointer+n) to pointer[n] [38] *memset_dma256::$5 = (byte*)memset_dma256::dest#0 -- memset_dma256::$9[OFFSET_STRUCT_DMA_LIST_F018B_DEST] -Converting *(pointer+n) to pointer[n] [41] *memset_dma256::$6 = (byte*)memset_dma256::fill#0 -- memset_dma256::$10[OFFSET_STRUCT_DMA_LIST_F018B_SRC] +Converting *(pointer+n) to pointer[n] [38] *memset_dma256::$5 = (char *)memset_dma256::dest#0 -- memset_dma256::$9[OFFSET_STRUCT_DMA_LIST_F018B_DEST] +Converting *(pointer+n) to pointer[n] [41] *memset_dma256::$6 = (char *)memset_dma256::fill#0 -- memset_dma256::$10[OFFSET_STRUCT_DMA_LIST_F018B_SRC] Successful SSA optimization Pass2InlineDerefIdx -Simplifying constant evaluating to zero byte0 SCREEN in [73] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = byte0 SCREEN -Simplifying constant evaluating to zero byte0 CHARSET in [77] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = byte0 CHARSET +Simplifying constant evaluating to zero byte0 SCREEN in [73] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = byte0 SCREEN +Simplifying constant evaluating to zero byte0 CHARSET in [77] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = byte0 CHARSET Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)DMA in [22] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command +Simplifying expression containing zero (char *)DMA in [22] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRLSBTRIG) = byte0 &memset_dma_command Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -801,7 +801,7 @@ Successful SSA optimization PassNSimplifyConstantZero Eliminating unused constant memoryRemap::$2 Eliminating unused constant memoryRemap::$7 Successful SSA optimization PassNEliminateUnusedVars -Rewriting multiplication to use shift [65] main::$10 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [65] main::$10 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings memset_dma::dest#0 Inlining constant with var siblings memset_dma::fill#0 @@ -817,19 +817,19 @@ Inlining constant with var siblings main::logo_src#0 Inlining constant with var siblings main::col#0 Inlining constant with var siblings main::y#0 Constant inlined memset_dma256::fill#0 = WHITE -Constant inlined memset_dma::num#0 = (word)$2d*$19*2 +Constant inlined memset_dma::num#0 = (unsigned int)$2d*$19*2 Constant inlined main::col#0 = 0 -Constant inlined memset_dma::num#1 = (word)$2d*$20*8 -Constant inlined memset_dma::dest#1 = (void*)CHARSET +Constant inlined memset_dma::num#1 = (unsigned int)$2d*$20*8 +Constant inlined memset_dma::dest#1 = (void *)CHARSET Constant inlined memset_dma::fill#1 = $55 -Constant inlined memset_dma256::$10 = (byte**)memset_dma256::f018b#0 -Constant inlined memset_dma::dest#0 = (void*)SCREEN +Constant inlined memset_dma256::$10 = (char **)memset_dma256::f018b#0 +Constant inlined memset_dma::dest#0 = (void *)SCREEN Constant inlined memset_dma::fill#0 = 0 Constant inlined main::i#0 = 0 Constant inlined main::ESCREEN = SCREEN -Constant inlined memset_dma256::$9 = (byte**)memset_dma256::f018b#0 -Constant inlined memset_dma256::$7 = (word*)memset_dma256::f018b#0 -Constant inlined memset_dma256::$8 = (byte*)memset_dma256::f018b#0 +Constant inlined memset_dma256::$9 = (char **)memset_dma256::f018b#0 +Constant inlined memset_dma256::$7 = (unsigned int *)memset_dma256::f018b#0 +Constant inlined memset_dma256::$8 = (char *)memset_dma256::f018b#0 Constant inlined main::r#0 = 0 Constant inlined main::logo_dest#0 = CHARSET Constant inlined memset_dma256::$1 = byte1 memset_dma_command256 @@ -840,36 +840,36 @@ Constant inlined main::y#0 = 0 Constant inlined memoryRemap::$3 = 0 Constant inlined main::logo_src#0 = LOGO Constant inlined memoryRemap::$8 = 0 -Constant inlined main::$9 = $2d*SIZEOF_WORD +Constant inlined main::$9 = $2d*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(memset_dma_command256+1) -Consolidated array index constant in *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) -Consolidated array index constant in *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) -Consolidated array index constant in *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) -Consolidated array index constant in *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) +Consolidated array index constant in *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) +Consolidated array index constant in *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) +Consolidated array index constant in *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) +Consolidated array index constant in *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $2d -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $2d +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19*8 Simplifying constant integer cast $19*8 @@ -926,42 +926,42 @@ main::SEI1: scope:[main] from main to:main::@11 main::@11: scope:[main] from main::SEI1 [2] phi() - [3] call memoryRemap + [3] call memoryRemap to:main::@12 main::@12: scope:[main] from main::@11 - [4] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 - [5] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 - [6] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 - [7] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 - [8] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 - [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 - [10] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 - [11] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 - [12] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 - [13] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 - [14] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 - [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f - [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a - [17] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 - [18] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 - [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 - [20] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d - [21] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 - [22] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN - [23] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 - [24] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 - [25] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 - [26] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET - [27] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 - [28] call memset_dma + [4] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 + [5] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 + [6] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 + [7] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 + [8] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 + [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 + [10] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 + [11] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 + [12] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 + [13] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 + [14] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 + [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f + [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a + [17] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 + [18] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 + [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 + [20] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d + [21] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 + [22] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN + [23] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 + [24] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 + [25] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 + [26] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET + [27] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 + [28] call memset_dma to:main::@13 main::@13: scope:[main] from main::@12 [29] phi() - [30] call memset_dma256 + [30] call memset_dma256 to:main::@14 main::@14: scope:[main] from main::@13 [31] phi() - [32] call memset_dma + [32] call memset_dma to:main::@1 main::@1: scope:[main] from main::@14 main::@5 [33] main::erow#5 = phi( main::@14/SCREEN, main::@5/main::erow#1 ) @@ -975,14 +975,14 @@ main::@6: scope:[main] from main::@1 main::@9 [36] if(main::col#2<$2d) goto main::@7 to:main::@10 main::@10: scope:[main] from main::@10 main::@6 - [37] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) + [37] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) to:main::@10 main::@7: scope:[main] from main::@6 main::@8 [38] main::y#2 = phi( main::@8/main::y#1, main::@6/0 ) [39] if(main::y#2<$19*8) goto main::@8 to:main::@9 main::@9: scope:[main] from main::@7 - [40] main::logo_dest#1 = main::logo_dest#5 + (word)$20*8 + [40] main::logo_dest#1 = main::logo_dest#5 + (unsigned int)$20*8 [41] main::logo_src#1 = main::logo_src#5 + $19*8 [42] main::col#1 = ++ main::col#2 to:main::@6 @@ -991,7 +991,7 @@ main::@8: scope:[main] from main::@7 [44] main::y#1 = ++ main::y#2 to:main::@7 main::@2: scope:[main] from main::@1 - [45] main::c#0 = (word)main::r#2 + [45] main::c#0 = (unsigned int)main::r#2 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 [46] main::c#2 = phi( main::@2/main::c#0, main::@4/main::c#1 ) @@ -999,7 +999,7 @@ main::@3: scope:[main] from main::@2 main::@4 [47] if(main::i#2<$2d) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@3 - [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_WORD + [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_UNSIGNED_INT [49] main::r#1 = ++ main::r#2 to:main::@1 main::@4: scope:[main] from main::@3 @@ -1009,7 +1009,7 @@ main::@4: scope:[main] from main::@3 [53] main::i#1 = ++ main::i#2 to:main::@3 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main::@11 [54] memoryRemap::aVal = 0 [55] memoryRemap::xVal = 0 @@ -1021,40 +1021,40 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [59] return to:@return -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) +void memset_dma(void *dest , char fill , unsigned int num) memset_dma: scope:[memset_dma] from main::@12 main::@14 - [60] memset_dma::dest#2 = phi( main::@12/(void*)SCREEN, main::@14/(void*)CHARSET ) + [60] memset_dma::dest#2 = phi( main::@12/(void *)SCREEN, main::@14/(void *)CHARSET ) [60] memset_dma::fill#2 = phi( main::@12/0, main::@14/$55 ) - [60] memset_dma::num#2 = phi( main::@12/(word)$2d*$19*2, main::@14/(word)$2d*$20*8 ) - [61] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) - [62] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 - [63] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 - [64] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 - [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [66] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [68] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command - [69] *((byte*)DMA) = byte0 &memset_dma_command - [70] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 + [60] memset_dma::num#2 = phi( main::@12/(unsigned int)$2d*$19*2, main::@14/(unsigned int)$2d*$20*8 ) + [61] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [62] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 + [63] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 + [64] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 + [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [66] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [68] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command + [69] *((char *)DMA) = byte0 &memset_dma_command + [70] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 to:memset_dma::@return memset_dma::@return: scope:[memset_dma] from memset_dma [71] return to:@return -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) memset_dma256: scope:[memset_dma256] from main::@13 - [72] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) + [72] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) [73] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 - [74] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 - [75] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 - [76] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 - [77] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)WHITE - [78] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 - [79] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 - [80] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 - [81] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 - [82] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 - [83] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 + [74] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 + [75] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 + [76] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 + [77] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)WHITE + [78] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 + [79] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 + [80] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 + [81] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 + [82] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 + [83] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 to:memset_dma256::@return memset_dma256::@return: scope:[memset_dma256] from memset_dma256 [84] return @@ -1063,59 +1063,59 @@ memset_dma256::@return: scope:[memset_dma256] from memset_dma256 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$10 202.0 -word main::c -word main::c#0 22.0 -word main::c#1 101.0 -word main::c#2 78.5 -byte main::col -byte main::col#1 22.0 -byte main::col#2 4.125 -word* main::erow -word* main::erow#1 11.0 -word* main::erow#5 13.666666666666666 -byte main::i -byte main::i#1 202.0 -byte main::i#2 80.8 -byte* main::logo_dest -byte* main::logo_dest#1 7.333333333333333 -byte* main::logo_dest#5 20.5 -byte* main::logo_src -byte* main::logo_src#1 11.0 -byte* main::logo_src#5 17.571428571428573 -byte main::r -byte main::r#1 22.0 -byte main::r#2 3.3000000000000003 -byte main::y -byte main::y#1 202.0 -byte main::y#2 168.33333333333331 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore 5.5 -volatile byte memoryRemap::zVal loadstore 11.0 -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) -void* memset_dma::dest -void* memset_dma::dest#2 -byte memset_dma::dmaMode -byte memset_dma::dmaMode#0 2.4444444444444446 -byte memset_dma::fill -byte memset_dma::fill#2 -word memset_dma::num -word memset_dma::num#2 5.5 -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) -void* memset_dma256::dest -byte memset_dma256::dest_bank -byte memset_dma256::dest_mb -byte memset_dma256::dmaMode -byte memset_dma256::dmaMode#0 2.0 -struct DMA_LIST_F018B* memset_dma256::f018b -byte memset_dma256::fill -word memset_dma256::num -volatile struct DMA_LIST_F018B memset_dma_command loadstore = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } +char main::$10 // 202.0 +unsigned int main::c +unsigned int main::c#0 // 22.0 +unsigned int main::c#1 // 101.0 +unsigned int main::c#2 // 78.5 +char main::col +char main::col#1 // 22.0 +char main::col#2 // 4.125 +unsigned int *main::erow +unsigned int *main::erow#1 // 11.0 +unsigned int *main::erow#5 // 13.666666666666666 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 80.8 +char *main::logo_dest +char *main::logo_dest#1 // 7.333333333333333 +char *main::logo_dest#5 // 20.5 +char *main::logo_src +char *main::logo_src#1 // 11.0 +char *main::logo_src#5 // 17.571428571428573 +char main::r +char main::r#1 // 22.0 +char main::r#2 // 3.3000000000000003 +char main::y +char main::y#1 // 202.0 +char main::y#2 // 168.33333333333331 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // 5.5 +__loadstore volatile char memoryRemap::zVal // 11.0 +void memset_dma(void *dest , char fill , unsigned int num) +void *memset_dma::dest +void *memset_dma::dest#2 +char memset_dma::dmaMode +char memset_dma::dmaMode#0 // 2.4444444444444446 +char memset_dma::fill +char memset_dma::fill#2 +unsigned int memset_dma::num +unsigned int memset_dma::num#2 // 5.5 +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) +void *memset_dma256::dest +char memset_dma256::dest_bank +char memset_dma256::dest_mb +char memset_dma256::dmaMode +char memset_dma256::dmaMode#0 // 2.0 +struct DMA_LIST_F018B *memset_dma256::f018b +char memset_dma256::fill +unsigned int memset_dma256::num +__loadstore volatile struct DMA_LIST_F018B memset_dma_command = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } Initial phi equivalence classes [ main::r#2 main::r#1 ] @@ -1177,39 +1177,39 @@ Allocated zp[1]:24 [ memset_dma::dmaMode#0 ] Allocated zp[1]:25 [ memset_dma256::dmaMode#0 ] Allocated mem[12] [ memset_dma_command ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [5] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [6] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [7] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [8] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [10] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [11] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [12] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [13] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [14] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [17] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [18] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [20] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [21] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [22] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [23] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [24] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [25] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [26] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [27] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [37] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [40] main::logo_dest#1 = main::logo_dest#5 + (word)$20*8 [ main::col#2 main::logo_src#5 main::logo_dest#1 ] ( [ main::col#2 main::logo_src#5 main::logo_dest#1 ] { } ) always clobbers reg byte a +Statement [4] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [5] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [6] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [7] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [8] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [10] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [11] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [12] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [13] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [14] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [17] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [18] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [20] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [21] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [22] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [23] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [24] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [25] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [26] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [27] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [37] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [40] main::logo_dest#1 = main::logo_dest#5 + (unsigned int)$20*8 [ main::col#2 main::logo_src#5 main::logo_dest#1 ] ( [ main::col#2 main::logo_src#5 main::logo_dest#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::col#2 main::col#1 ] Statement [41] main::logo_src#1 = main::logo_src#5 + $19*8 [ main::col#2 main::logo_src#1 main::logo_dest#1 ] ( [ main::col#2 main::logo_src#1 main::logo_dest#1 ] { } ) always clobbers reg byte a Statement [43] main::logo_dest#5[main::y#2] = main::logo_src#5[main::y#2] [ main::col#2 main::logo_src#5 main::logo_dest#5 main::y#2 ] ( [ main::col#2 main::logo_src#5 main::logo_dest#5 main::y#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::y#2 main::y#1 ] -Statement [45] main::c#0 = (word)main::r#2 [ main::r#2 main::erow#5 main::c#0 ] ( [ main::r#2 main::erow#5 main::c#0 ] { } ) always clobbers reg byte a +Statement [45] main::c#0 = (unsigned int)main::r#2 [ main::r#2 main::erow#5 main::c#0 ] ( [ main::r#2 main::erow#5 main::c#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::r#2 main::r#1 ] -Statement [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_WORD [ main::r#2 main::erow#1 ] ( [ main::r#2 main::erow#1 ] { } ) always clobbers reg byte a +Statement [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_UNSIGNED_INT [ main::r#2 main::erow#1 ] ( [ main::r#2 main::erow#1 ] { } ) always clobbers reg byte a Statement [50] main::$10 = main::i#2 << 1 [ main::r#2 main::erow#5 main::i#2 main::c#2 main::$10 ] ( [ main::r#2 main::erow#5 main::i#2 main::c#2 main::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ main::i#2 main::i#1 ] Statement [51] main::erow#5[main::$10] = main::c#2 [ main::r#2 main::erow#5 main::i#2 main::c#2 ] ( [ main::r#2 main::erow#5 main::i#2 main::c#2 ] { } ) always clobbers reg byte a reg byte y @@ -1221,57 +1221,57 @@ Statement [55] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( m Statement [56] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:3 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [57] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:3 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [62] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [62] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ memset_dma::fill#2 ] Removing always clobbered register reg byte a as potential for zp[1]:24 [ memset_dma::dmaMode#0 ] -Statement [63] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [64] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [66] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [68] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [69] *((byte*)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [63] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [64] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [66] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [68] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [69] *((char *)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a Statement [73] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:25 [ memset_dma256::dmaMode#0 ] -Statement [74] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [75] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [76] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [77] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)WHITE [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [78] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [79] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [80] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [81] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [82] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [4] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [5] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [6] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [7] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [8] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [10] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [11] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [12] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [13] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [14] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [17] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [18] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [20] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [21] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [22] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [23] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [24] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [25] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [26] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [27] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a -Statement [37] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [40] main::logo_dest#1 = main::logo_dest#5 + (word)$20*8 [ main::col#2 main::logo_src#5 main::logo_dest#1 ] ( [ main::col#2 main::logo_src#5 main::logo_dest#1 ] { } ) always clobbers reg byte a +Statement [74] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [75] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [76] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [77] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)WHITE [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [78] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [79] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [80] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [81] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [82] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [4] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [5] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [6] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [7] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [8] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [10] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [11] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [12] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [13] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [14] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [17] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [18] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [20] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [21] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [22] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [23] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [24] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [25] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [26] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [27] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 [ memset_dma_command ] ( [ memset_dma_command ] { } ) always clobbers reg byte a +Statement [37] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [40] main::logo_dest#1 = main::logo_dest#5 + (unsigned int)$20*8 [ main::col#2 main::logo_src#5 main::logo_dest#1 ] ( [ main::col#2 main::logo_src#5 main::logo_dest#1 ] { } ) always clobbers reg byte a Statement [41] main::logo_src#1 = main::logo_src#5 + $19*8 [ main::col#2 main::logo_src#1 main::logo_dest#1 ] ( [ main::col#2 main::logo_src#1 main::logo_dest#1 ] { } ) always clobbers reg byte a Statement [43] main::logo_dest#5[main::y#2] = main::logo_src#5[main::y#2] [ main::col#2 main::logo_src#5 main::logo_dest#5 main::y#2 ] ( [ main::col#2 main::logo_src#5 main::logo_dest#5 main::y#2 ] { } ) always clobbers reg byte a -Statement [45] main::c#0 = (word)main::r#2 [ main::r#2 main::erow#5 main::c#0 ] ( [ main::r#2 main::erow#5 main::c#0 ] { } ) always clobbers reg byte a -Statement [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_WORD [ main::r#2 main::erow#1 ] ( [ main::r#2 main::erow#1 ] { } ) always clobbers reg byte a +Statement [45] main::c#0 = (unsigned int)main::r#2 [ main::r#2 main::erow#5 main::c#0 ] ( [ main::r#2 main::erow#5 main::c#0 ] { } ) always clobbers reg byte a +Statement [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_UNSIGNED_INT [ main::r#2 main::erow#1 ] ( [ main::r#2 main::erow#1 ] { } ) always clobbers reg byte a Statement [50] main::$10 = main::i#2 << 1 [ main::r#2 main::erow#5 main::i#2 main::c#2 main::$10 ] ( [ main::r#2 main::erow#5 main::i#2 main::c#2 main::$10 ] { } ) always clobbers reg byte a Statement [51] main::erow#5[main::$10] = main::c#2 [ main::r#2 main::erow#5 main::i#2 main::c#2 ] ( [ main::r#2 main::erow#5 main::i#2 main::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [52] main::c#1 = main::c#2 + $20 [ main::r#2 main::erow#5 main::i#2 main::c#1 ] ( [ main::r#2 main::erow#5 main::i#2 main::c#1 ] { } ) always clobbers reg byte a @@ -1280,24 +1280,24 @@ Statement [55] memoryRemap::xVal = 0 [ memoryRemap::aVal memoryRemap::xVal ] ( m Statement [56] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] ( memoryRemap:3 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal ] { } ) always clobbers reg byte a Statement [57] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:3 [ memset_dma_command memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z -Statement [62] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [63] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [64] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [66] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [68] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a -Statement [69] *((byte*)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [62] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::fill#2 memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [63] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dest#2 memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [64] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [66] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [68] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a +Statement [69] *((char *)DMA) = byte0 &memset_dma_command [ memset_dma::dmaMode#0 memset_dma_command ] ( memset_dma:28 [ memset_dma::dmaMode#0 memset_dma_command ] { } memset_dma:32 [ memset_dma::dmaMode#0 memset_dma_command ] { } ) always clobbers reg byte a Statement [73] *(memset_dma_command256+1) = memset_dma256::dest_mb#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [74] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [75] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [76] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [77] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)WHITE [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [78] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [79] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [80] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [81] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a -Statement [82] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [74] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [75] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [76] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [77] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)WHITE [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [78] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [79] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [80] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [81] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a +Statement [82] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 [ memset_dma256::dmaMode#0 ] ( memset_dma256:30 [ memset_dma_command memset_dma256::dmaMode#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::r#2 main::r#1 ] : zp[1]:2 , reg byte x , reg byte z , Potential registers zp[2]:3 [ main::erow#5 main::erow#1 ] : zp[2]:3 , Potential registers zp[1]:5 [ main::col#2 main::col#1 ] : zp[1]:5 , reg byte x , reg byte y , reg byte z , @@ -1396,7 +1396,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// $81 $xx = Set MB of destination address .const DMA_OPTION_DEST_MB = $81 .const WHITE = 1 - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 .const OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 .const OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 @@ -1458,110 +1458,110 @@ main: { jmp __b11 // main::@11 __b11: - // [3] call memoryRemap + // [3] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap jmp __b12 // main::@12 __b12: - // [4] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [4] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable 48MHz fast mode lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB - // [5] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [5] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC - // [6] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 -- _deref_pbuc1=vbuc2 + // [6] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 -- _deref_pbuc1=vbuc2 // Enable the VIC 4 lda #$47 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY - // [7] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 -- _deref_pbuc1=vbuc2 + // [7] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 -- _deref_pbuc1=vbuc2 lda #$53 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY - // [8] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 -- _deref_pbuc1=vbuc2 // Set sideborder width=0, disable raster delay and hot registers lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO - // [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 -- _deref_pbuc1=vbuc2 + // [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI - // [10] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 // Disable top/bottom borders lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO - // [11] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI - // [12] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO - // [13] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 -- _deref_pbuc1=vbuc2 + // [13] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI - // [14] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [14] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable Super Extended Attribute Mode lda #1 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC - // [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Mode 40x25 chars - will be 45*25 when utilizing the borders lda #$7f and VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB - // [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a -- _deref_pbuc1=vbuc2 + // [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a -- _deref_pbuc1=vbuc2 lda #$5a sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO - // [17] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI - // [18] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 -- _deref_pbuc1=vbuc2 + // [18] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 -- _deref_pbuc1=vbuc2 // Start text in the left border lda #$28 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO - // [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI - // [20] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d -- _deref_pbuc1=vbuc2 + // [20] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d -- _deref_pbuc1=vbuc2 // Set number of characters to display per row lda #$2d sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT - // [21] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 + // [21] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 // Set exact screen address lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO - // [22] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN -- _deref_pbuc1=vbuc2 + // [22] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN -- _deref_pbuc1=vbuc2 lda #>SCREEN sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI - // [23] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 + // [23] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO - // [24] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 -- _deref_pbuc1=vbuc2 + // [24] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI - // [25] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 + // [25] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 // Set exact charset address lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO - // [26] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET -- _deref_pbuc1=vbuc2 + // [26] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET -- _deref_pbuc1=vbuc2 lda #>CHARSET sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI - // [27] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 + // [27] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO - // [28] call memset_dma + // [28] call memset_dma // Fill the screen with 0 // [60] phi from main::@12 to memset_dma [phi:main::@12->memset_dma] memset_dma_from___b12: - // [60] phi memset_dma::dest#2 = (void*)SCREEN [phi:main::@12->memset_dma#0] -- pvoz1=pvoc1 + // [60] phi memset_dma::dest#2 = (void *)SCREEN [phi:main::@12->memset_dma#0] -- pvoz1=pvoc1 lda #SCREEN sta.z memset_dma.dest+1 // [60] phi memset_dma::fill#2 = 0 [phi:main::@12->memset_dma#1] -- vbuzz=vbuc1 ldz #0 - // [60] phi memset_dma::num#2 = (word)$2d*$19*2 [phi:main::@12->memset_dma#2] -- vwuz1=vwuc1 + // [60] phi memset_dma::num#2 = (unsigned int)$2d*$19*2 [phi:main::@12->memset_dma#2] -- vwuz1=vwuc1 lda #<$2d*$19*2 sta.z memset_dma.num lda #>$2d*$19*2 @@ -1572,7 +1572,7 @@ main: { jmp __b13 // main::@13 __b13: - // [30] call memset_dma256 + // [30] call memset_dma256 // Fill the colours with WHITE - directly into $ff80000 jsr memset_dma256 // [31] phi from main::@13 to main::@14 [phi:main::@13->main::@14] @@ -1580,18 +1580,18 @@ main: { jmp __b14 // main::@14 __b14: - // [32] call memset_dma + // [32] call memset_dma // Fill the charset with 0x55 // [60] phi from main::@14 to memset_dma [phi:main::@14->memset_dma] memset_dma_from___b14: - // [60] phi memset_dma::dest#2 = (void*)CHARSET [phi:main::@14->memset_dma#0] -- pvoz1=pvoc1 + // [60] phi memset_dma::dest#2 = (void *)CHARSET [phi:main::@14->memset_dma#0] -- pvoz1=pvoc1 lda #CHARSET sta.z memset_dma.dest+1 // [60] phi memset_dma::fill#2 = $55 [phi:main::@14->memset_dma#1] -- vbuzz=vbuc1 ldz #$55 - // [60] phi memset_dma::num#2 = (word)$2d*$20*8 [phi:main::@14->memset_dma#2] -- vwuz1=vwuc1 + // [60] phi memset_dma::num#2 = (unsigned int)$2d*$20*8 [phi:main::@14->memset_dma#2] -- vwuz1=vwuc1 lda #<$2d*$20*8 sta.z memset_dma.num lda #>$2d*$20*8 @@ -1635,7 +1635,7 @@ main: { jmp __b10 // main::@10 __b10: - // [37] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- _deref_pbuc1=_deref_pbuc2 + // [37] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- _deref_pbuc1=_deref_pbuc2 lda VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR jmp __b10 @@ -1652,7 +1652,7 @@ main: { jmp __b9 // main::@9 __b9: - // [40] main::logo_dest#1 = main::logo_dest#5 + (word)$20*8 -- pbuz1=pbuz1_plus_vwuc1 + // [40] main::logo_dest#1 = main::logo_dest#5 + (unsigned int)$20*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z logo_dest clc adc #<$20*8 @@ -1689,7 +1689,7 @@ main: { jmp __b7 // main::@2 __b2: - // [45] main::c#0 = (word)main::r#2 -- vwuz1=_word_vbuxx + // [45] main::c#0 = (unsigned int)main::r#2 -- vwuz1=_word_vbuxx txa sta.z c lda #0 @@ -1708,8 +1708,8 @@ main: { jmp __b5 // main::@5 __b5: - // [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #$2d*SIZEOF_WORD + // [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #$2d*SIZEOF_UNSIGNED_INT clc adc.z erow sta.z erow @@ -1776,6 +1776,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = $e .label xVal = $f @@ -1816,48 +1817,48 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - fill The char to fill with // - num The number of bytes to copy -// memset_dma(void* zp($c) dest, byte register(Z) fill, word zp($a) num) +// void memset_dma(__zp($c) void *dest, __register(Z) char fill, __zp($a) unsigned int num) memset_dma: { .label num = $a .label dest = $c - // [61] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [61] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [62] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 -- _deref_pwuc1=vwuz1 + // [62] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 -- _deref_pwuc1=vwuz1 // Set up command lda.z num sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT lda.z num+1 sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [63] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 -- _deref_qbuc1=_ptr_vbuzz + // [63] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 -- _deref_qbuc1=_ptr_vbuzz tza sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC lda #0 sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [64] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 -- _deref_qbuc1=pbuz1 + // [64] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 -- _deref_qbuc1=pbuz1 lda.z dest sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST lda.z dest+1 sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [66] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [66] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [68] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [68] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 lda #>memset_dma_command sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [69] *((byte*)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [69] *((char *)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #num sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 - // [75] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [75] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK - // [76] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 + // [76] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 - // [77] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)WHITE -- _deref_qbuc1=pbuc2 + // [77] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)WHITE -- _deref_qbuc1=pbuc2 // Set fill byte lda #WHITE sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 - // [78] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [78] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B - // [79] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [79] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB - // [80] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [80] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK - // [81] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [81] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 lda #>memset_dma_command256 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB - // [82] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [82] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 // Trigger the DMA (with option lists) lda #main::@11] // main::@11 // memoryRemap(0,0,0) - // [3] call memoryRemap + // [3] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // main::@12 // VICIV->CONTROLB |= 0x40 - // [4] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [4] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable 48MHz fast mode lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB // VICIV->CONTROLC |= 0x40 - // [5] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [5] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC // VICIV->KEY = 0x47 - // [6] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 -- _deref_pbuc1=vbuc2 + // [6] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $47 -- _deref_pbuc1=vbuc2 // Enable the VIC 4 lda #$47 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY // VICIV->KEY = 0x53 - // [7] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 -- _deref_pbuc1=vbuc2 + // [7] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY) = $53 -- _deref_pbuc1=vbuc2 lda #$53 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_KEY // VICIV->SIDBDRWD_LO = 0 - // [8] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 0 -- _deref_pbuc1=vbuc2 // Set sideborder width=0, disable raster delay and hot registers lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO // VICIV->SIDBDRWD_HI = 0 - // [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 -- _deref_pbuc1=vbuc2 + // [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI) = 0 -- _deref_pbuc1=vbuc2 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI // VICIV->TBDRPOS_LO = 0 - // [10] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 // Disable top/bottom borders sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO // VICIV->TBDRPOS_HI = 0 - // [11] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI) = 0 -- _deref_pbuc1=vbuc2 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI // VICIV->BBDRPOS_LO = 0 - // [12] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 + // [12] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO) = 0 -- _deref_pbuc1=vbuc2 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO // VICIV->BBDRPOS_HI = 2 - // [13] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 -- _deref_pbuc1=vbuc2 + // [13] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI // VICIV->CONTROLC |= 1 - // [14] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [14] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | 1 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable Super Extended Attribute Mode lda #1 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC // VICIV->CONTROLB &= 0x7f - // [15] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [15] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Mode 40x25 chars - will be 45*25 when utilizing the borders lda #$7f and VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB // VICIV->CHARSTEP_LO = 90 - // [16] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a -- _deref_pbuc1=vbuc2 + // [16] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO) = $5a -- _deref_pbuc1=vbuc2 lda #$5a sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO // VICIV->CHARSTEP_HI = 0 - // [17] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 -- _deref_pbuc1=vbuc2 + // [17] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI // VICIV->TEXTXPOS_LO = 40 - // [18] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 -- _deref_pbuc1=vbuc2 + // [18] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $28 -- _deref_pbuc1=vbuc2 // Start text in the left border lda #$28 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO // VICIV->TEXTXPOS_HI = 0 - // [19] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 -- _deref_pbuc1=vbuc2 + // [19] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI // VICIV->CHRCOUNT = 45 - // [20] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d -- _deref_pbuc1=vbuc2 + // [20] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT) = $2d -- _deref_pbuc1=vbuc2 // Set number of characters to display per row lda #$2d sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT // VICIV->SCRNPTR_LOLO = BYTE0(SCREEN) - // [21] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 + // [21] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 // Set exact screen address lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO // VICIV->SCRNPTR_LOHI = BYTE1(SCREEN) - // [22] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN -- _deref_pbuc1=vbuc2 + // [22] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI) = byte1 SCREEN -- _deref_pbuc1=vbuc2 lda #>SCREEN sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI // VICIV->SCRNPTR_HILO = 0 - // [23] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 + // [23] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO // VICIV->SCRNPTR_HIHI = 0 - // [24] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 -- _deref_pbuc1=vbuc2 + // [24] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI) = 0 -- _deref_pbuc1=vbuc2 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI // VICIV->CHARPTR_LOLO = BYTE0(CHARSET) - // [25] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 + // [25] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO) = 0 -- _deref_pbuc1=vbuc2 // Set exact charset address sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO // VICIV->CHARPTR_LOHI = BYTE1(CHARSET) - // [26] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET -- _deref_pbuc1=vbuc2 + // [26] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI) = byte1 CHARSET -- _deref_pbuc1=vbuc2 lda #>CHARSET sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI // VICIV->CHARPTR_HILO = 0 - // [27] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 + // [27] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO // memset_dma(SCREEN, 0, 45*25*2) - // [28] call memset_dma + // [28] call memset_dma // Fill the screen with 0 // [60] phi from main::@12 to memset_dma [phi:main::@12->memset_dma] - // [60] phi memset_dma::dest#2 = (void*)SCREEN [phi:main::@12->memset_dma#0] -- pvoz1=pvoc1 + // [60] phi memset_dma::dest#2 = (void *)SCREEN [phi:main::@12->memset_dma#0] -- pvoz1=pvoc1 lda #SCREEN sta.z memset_dma.dest+1 // [60] phi memset_dma::fill#2 = 0 [phi:main::@12->memset_dma#1] -- vbuzz=vbuc1 ldz #0 - // [60] phi memset_dma::num#2 = (word)$2d*$19*2 [phi:main::@12->memset_dma#2] -- vwuz1=vwuc1 + // [60] phi memset_dma::num#2 = (unsigned int)$2d*$19*2 [phi:main::@12->memset_dma#2] -- vwuz1=vwuc1 lda #<$2d*$19*2 sta.z memset_dma.num lda #>$2d*$19*2 @@ -2356,23 +2358,23 @@ main: { // [29] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // memset_dma256(0xff,0x08,(void*)0x0000, WHITE, 45*25*2) - // [30] call memset_dma256 + // [30] call memset_dma256 // Fill the colours with WHITE - directly into $ff80000 jsr memset_dma256 // [31] phi from main::@13 to main::@14 [phi:main::@13->main::@14] // main::@14 // memset_dma(CHARSET, 0x55, 45*32*8) - // [32] call memset_dma + // [32] call memset_dma // Fill the charset with 0x55 // [60] phi from main::@14 to memset_dma [phi:main::@14->memset_dma] - // [60] phi memset_dma::dest#2 = (void*)CHARSET [phi:main::@14->memset_dma#0] -- pvoz1=pvoc1 + // [60] phi memset_dma::dest#2 = (void *)CHARSET [phi:main::@14->memset_dma#0] -- pvoz1=pvoc1 lda #CHARSET sta.z memset_dma.dest+1 // [60] phi memset_dma::fill#2 = $55 [phi:main::@14->memset_dma#1] -- vbuzz=vbuc1 ldz #$55 - // [60] phi memset_dma::num#2 = (word)$2d*$20*8 [phi:main::@14->memset_dma#2] -- vwuz1=vwuc1 + // [60] phi memset_dma::num#2 = (unsigned int)$2d*$20*8 [phi:main::@14->memset_dma#2] -- vwuz1=vwuc1 lda #<$2d*$20*8 sta.z memset_dma.num lda #>$2d*$20*8 @@ -2414,7 +2416,7 @@ main: { // main::@10 __b10: // VICIV->BG_COLOR = VICII->RASTER - // [37] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- _deref_pbuc1=_deref_pbuc2 + // [37] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- _deref_pbuc1=_deref_pbuc2 lda VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR jmp __b10 @@ -2430,7 +2432,7 @@ main: { bcc __b8 // main::@9 // logo_dest += 32*8 - // [40] main::logo_dest#1 = main::logo_dest#5 + (word)$20*8 -- pbuz1=pbuz1_plus_vwuc1 + // [40] main::logo_dest#1 = main::logo_dest#5 + (unsigned int)$20*8 -- pbuz1=pbuz1_plus_vwuc1 lda.z logo_dest clc adc #<$20*8 @@ -2470,7 +2472,7 @@ main: { // main::@2 __b2: // unsigned int c = r - // [45] main::c#0 = (word)main::r#2 -- vwuz1=_word_vbuxx + // [45] main::c#0 = (unsigned int)main::r#2 -- vwuz1=_word_vbuxx txa sta.z c lda #0 @@ -2487,8 +2489,8 @@ main: { bcc __b4 // main::@5 // erow += 45 - // [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #$2d*SIZEOF_WORD + // [48] main::erow#1 = main::erow#5 + $2d*SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #$2d*SIZEOF_UNSIGNED_INT clc adc.z erow sta.z erow @@ -2557,6 +2559,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = $e .label xVal = $f @@ -2598,57 +2601,57 @@ memoryRemap: { // - dest The destination address (within the MB and bank) // - fill The char to fill with // - num The number of bytes to copy -// memset_dma(void* zp($c) dest, byte register(Z) fill, word zp($a) num) +// void memset_dma(__zp($c) void *dest, __register(Z) char fill, __zp($a) unsigned int num) memset_dma: { .label num = $a .label dest = $c // char dmaMode = DMA->EN018B - // [61] memset_dma::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [61] memset_dma::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma_command.count = num - // [62] *((word*)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 -- _deref_pwuc1=vwuz1 + // [62] *((unsigned int *)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma::num#2 -- _deref_pwuc1=vwuz1 // Set up command lda.z num sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT lda.z num+1 sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // memset_dma_command.src = (char*)fill - // [63] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)memset_dma::fill#2 -- _deref_qbuc1=_ptr_vbuzz + // [63] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)memset_dma::fill#2 -- _deref_qbuc1=_ptr_vbuzz tza sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC lda #0 sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // memset_dma_command.dest = dest - // [64] *((byte**)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma::dest#2 -- _deref_qbuc1=pbuz1 + // [64] *((char **)&memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma::dest#2 -- _deref_qbuc1=pbuz1 lda.z dest sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST lda.z dest+1 sta memset_dma_command+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // DMA->EN018B = 1 - // [65] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [65] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [66] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [66] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [67] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [67] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(&memset_dma_command) - // [68] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [68] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 &memset_dma_command -- _deref_pbuc1=vbuc2 lda #>memset_dma_command sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ADDRLSBTRIG = BYTE0(&memset_dma_command) - // [69] *((byte*)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 + // [69] *((char *)DMA) = byte0 &memset_dma_command -- _deref_pbuc1=vbuc2 // Trigger the DMA (without option lists) lda #EN018B = dmaMode - // [70] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 -- _deref_pbuc1=vbuxx + // [70] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma::@return @@ -2663,6 +2666,7 @@ memset_dma: { // - dest_bank The 64KB bank for the destination (0-15) // - dest The destination address (within the MB and bank) // - num The number of bytes to copy +// void memset_dma256(char dest_mb, char dest_bank, void *dest, char fill, unsigned int num) memset_dma256: { .const dest_mb = $ff .const dest_bank = 8 @@ -2670,7 +2674,7 @@ memset_dma256: { .label dest = 0 .label f018b = memset_dma_command256+4 // char dmaMode = DMA->EN018B - // [72] memset_dma256::dmaMode#0 = *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 + // [72] memset_dma256::dmaMode#0 = *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) -- vbuxx=_deref_pbuc1 // Remember current F018 A/B mode ldx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma_command256[1] = dest_mb @@ -2679,52 +2683,52 @@ memset_dma256: { lda #dest_mb sta memset_dma_command256+1 // f018b->count = num - // [74] *((word*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 -- _deref_pwuc1=vwuc2 + // [74] *((unsigned int *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_COUNT) = memset_dma256::num#0 -- _deref_pwuc1=vwuc2 lda #num sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_COUNT+1 // f018b->dest_bank = dest_bank - // [75] *((byte*)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 + // [75] *((char *)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK) = memset_dma256::dest_bank#0 -- _deref_pbuc1=vbuc2 lda #dest_bank sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK // f018b->dest = dest - // [76] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (byte*)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 + // [76] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_DEST) = (char *)memset_dma256::dest#0 -- _deref_qbuc1=pbuc2 lda #dest sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_DEST+1 // f018b->src = (char*)fill - // [77] *((byte**)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (byte*)WHITE -- _deref_qbuc1=pbuc2 + // [77] *((char **)memset_dma256::f018b#0+OFFSET_STRUCT_DMA_LIST_F018B_SRC) = (char *)WHITE -- _deref_qbuc1=pbuc2 // Set fill byte lda #WHITE sta f018b+OFFSET_STRUCT_DMA_LIST_F018B_SRC+1 // DMA->EN018B = 1 - // [78] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 + // [78] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = 1 -- _deref_pbuc1=vbuc2 // Set F018B mode lda #1 sta DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // DMA->ADDRMB = 0 - // [79] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 + // [79] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB) = 0 -- _deref_pbuc1=vbuc2 // Set address of DMA list lda #0 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMB // DMA->ADDRBANK = 0 - // [80] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 + // [80] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK) = 0 -- _deref_pbuc1=vbuc2 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRBANK // DMA-> ADDRMSB = BYTE1(memset_dma_command256) - // [81] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [81] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB) = byte1 memset_dma_command256 -- _deref_pbuc1=vbuc2 lda #>memset_dma_command256 sta DMA+OFFSET_STRUCT_F018_DMAGIC_ADDRMSB // DMA-> ETRIG = BYTE0(memset_dma_command256) - // [82] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 + // [82] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_ETRIG) = byte0 memset_dma_command256 -- _deref_pbuc1=vbuc2 // Trigger the DMA (with option lists) lda #EN018B = dmaMode - // [83] *((byte*)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 -- _deref_pbuc1=vbuxx + // [83] *((char *)DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B) = memset_dma256::dmaMode#0 -- _deref_pbuc1=vbuxx // Re-enable F018A mode stx DMA+OFFSET_STRUCT_F018_DMAGIC_EN018B // memset_dma256::@return diff --git a/src/test/ref/examples/mega65/dypp65.sym b/src/test/ref/examples/mega65/dypp65.sym index 66ed27792..cd80968da 100644 --- a/src/test/ref/examples/mega65/dypp65.sym +++ b/src/test/ref/examples/mega65/dypp65.sym @@ -1,111 +1,111 @@ -constant byte* const CHARSET = (byte*) 24576 -constant struct F018_DMAGIC* const DMA = (struct F018_DMAGIC*) 55040 -constant const byte DMA_COMMAND_FILL = 3 -constant const byte DMA_OPTION_DEST_MB = $81 -constant const byte DMA_OPTION_END = 0 -constant const byte DMA_OPTION_FORMAT_F018B = $a -constant byte* LOGO[$2d*$19*8] = kickasm {{ .var pic = LoadPicture("camelot.png", List().add($ffffff, $000000)) +__constant char * const CHARSET = (char *) 24576 +__constant struct F018_DMAGIC * const DMA = (struct F018_DMAGIC *) 55040 +__constant const char DMA_COMMAND_FILL = 3 +__constant const char DMA_OPTION_DEST_MB = $81 +__constant const char DMA_OPTION_END = 0 +__constant const char DMA_OPTION_FORMAT_F018B = $a +__constant char LOGO[$2d*$19*8] = kickasm {{ .var pic = LoadPicture("camelot.png", List().add($ffffff, $000000)) .for (var x=0;x<45; x++) .for (var y=0; y<25*8; y++) .byte pic.getSinglecolorByte(x,y) }} -constant byte OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 -constant byte OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 -constant byte OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 -constant byte OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 -constant byte OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 -constant byte OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI = $4b -constant byte OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO = $4a -constant byte OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO = $6a -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI = $69 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO = $68 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI = $59 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO = $58 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT = $5e -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 -constant byte OFFSET_STRUCT_MEGA65_VICIV_KEY = $2f -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI = $63 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO = $62 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI = $61 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO = $60 -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI = $5d -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c -constant byte OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI = $49 -constant byte OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO = $48 -constant byte OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI = $4d -constant byte OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const SCREEN = (byte*) 20480 -constant byte SIZEOF_WORD = 2 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*) 53248 -constant const byte WHITE = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_COUNT = 1 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST = 6 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_DEST_BANK = 8 +__constant char OFFSET_STRUCT_DMA_LIST_F018B_SRC = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRBANK = 2 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMB = 4 +__constant char OFFSET_STRUCT_F018_DMAGIC_ADDRMSB = 1 +__constant char OFFSET_STRUCT_F018_DMAGIC_EN018B = 3 +__constant char OFFSET_STRUCT_F018_DMAGIC_ETRIG = 5 +__constant char OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_HI = $4b +__constant char OFFSET_STRUCT_MEGA65_VICIV_BBDRPOS_LO = $4a +__constant char OFFSET_STRUCT_MEGA65_VICIV_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_HILO = $6a +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOHI = $69 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARPTR_LOLO = $68 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_HI = $59 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHARSTEP_LO = $58 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHRCOUNT = $5e +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 +__constant char OFFSET_STRUCT_MEGA65_VICIV_KEY = $2f +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HIHI = $63 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_HILO = $62 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOHI = $61 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SCRNPTR_LOLO = $60 +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_HI = $5d +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c +__constant char OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_HI = $49 +__constant char OFFSET_STRUCT_MEGA65_VICIV_TBDRPOS_LO = $48 +__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_HI = $4d +__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const SCREEN = (char *) 20480 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *) 53248 +__constant const char WHITE = 1 void main() -byte~ main::$10 reg byte a 202.0 -word main::c -word main::c#0 c zp[2]:8 22.0 -word main::c#1 c zp[2]:8 101.0 -word main::c#2 c zp[2]:8 78.5 -byte main::col -byte main::col#1 reg byte x 22.0 -byte main::col#2 reg byte x 4.125 -word* main::erow -word* main::erow#1 erow zp[2]:2 11.0 -word* main::erow#5 erow zp[2]:2 13.666666666666666 -byte main::i -byte main::i#1 reg byte z 202.0 -byte main::i#2 reg byte z 80.8 -byte* main::logo_dest -byte* main::logo_dest#1 logo_dest zp[2]:6 7.333333333333333 -byte* main::logo_dest#5 logo_dest zp[2]:6 20.5 -byte* main::logo_src -byte* main::logo_src#1 logo_src zp[2]:4 11.0 -byte* main::logo_src#5 logo_src zp[2]:4 17.571428571428573 -byte main::r -byte main::r#1 reg byte x 22.0 -byte main::r#2 reg byte x 3.3000000000000003 -byte main::y -byte main::y#1 reg byte y 202.0 -byte main::y#2 reg byte y 168.33333333333331 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:14 2.75 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:15 3.6666666666666665 -volatile byte memoryRemap::yVal loadstore zp[1]:16 5.5 -volatile byte memoryRemap::zVal loadstore zp[1]:17 11.0 -void memset_dma(void* memset_dma::dest , byte memset_dma::fill , word memset_dma::num) -void* memset_dma::dest -void* memset_dma::dest#2 dest zp[2]:12 -byte memset_dma::dmaMode -byte memset_dma::dmaMode#0 reg byte x 2.4444444444444446 -byte memset_dma::fill -byte memset_dma::fill#2 reg byte z -word memset_dma::num -word memset_dma::num#2 num zp[2]:10 5.5 -void memset_dma256(byte memset_dma256::dest_mb , byte memset_dma256::dest_bank , void* memset_dma256::dest , byte memset_dma256::fill , word memset_dma256::num) -void* memset_dma256::dest -constant void* memset_dma256::dest#0 dest = (void*) 0 -byte memset_dma256::dest_bank -constant byte memset_dma256::dest_bank#0 dest_bank = 8 -byte memset_dma256::dest_mb -constant byte memset_dma256::dest_mb#0 dest_mb = $ff -byte memset_dma256::dmaMode -byte memset_dma256::dmaMode#0 reg byte x 2.0 -struct DMA_LIST_F018B* memset_dma256::f018b -constant struct DMA_LIST_F018B* memset_dma256::f018b#0 f018b = (struct DMA_LIST_F018B*)memset_dma_command256+4 -byte memset_dma256::fill -word memset_dma256::num -constant word memset_dma256::num#0 num = (word)$2d*$19*2 -volatile struct DMA_LIST_F018B memset_dma_command loadstore mem[12] = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } -constant byte* memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +char main::$10 // reg byte a 202.0 +unsigned int main::c +unsigned int main::c#0 // c zp[2]:8 22.0 +unsigned int main::c#1 // c zp[2]:8 101.0 +unsigned int main::c#2 // c zp[2]:8 78.5 +char main::col +char main::col#1 // reg byte x 22.0 +char main::col#2 // reg byte x 4.125 +unsigned int *main::erow +unsigned int *main::erow#1 // erow zp[2]:2 11.0 +unsigned int *main::erow#5 // erow zp[2]:2 13.666666666666666 +char main::i +char main::i#1 // reg byte z 202.0 +char main::i#2 // reg byte z 80.8 +char *main::logo_dest +char *main::logo_dest#1 // logo_dest zp[2]:6 7.333333333333333 +char *main::logo_dest#5 // logo_dest zp[2]:6 20.5 +char *main::logo_src +char *main::logo_src#1 // logo_src zp[2]:4 11.0 +char *main::logo_src#5 // logo_src zp[2]:4 17.571428571428573 +char main::r +char main::r#1 // reg byte x 22.0 +char main::r#2 // reg byte x 3.3000000000000003 +char main::y +char main::y#1 // reg byte y 202.0 +char main::y#2 // reg byte y 168.33333333333331 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:14 2.75 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:15 3.6666666666666665 +__loadstore volatile char memoryRemap::yVal // zp[1]:16 5.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:17 11.0 +void memset_dma(void *dest , char fill , unsigned int num) +void *memset_dma::dest +void *memset_dma::dest#2 // dest zp[2]:12 +char memset_dma::dmaMode +char memset_dma::dmaMode#0 // reg byte x 2.4444444444444446 +char memset_dma::fill +char memset_dma::fill#2 // reg byte z +unsigned int memset_dma::num +unsigned int memset_dma::num#2 // num zp[2]:10 5.5 +void memset_dma256(char dest_mb , char dest_bank , void *dest , char fill , unsigned int num) +void *memset_dma256::dest +__constant void *memset_dma256::dest#0 = (void *) 0 // dest +char memset_dma256::dest_bank +__constant char memset_dma256::dest_bank#0 = 8 // dest_bank +char memset_dma256::dest_mb +__constant char memset_dma256::dest_mb#0 = $ff // dest_mb +char memset_dma256::dmaMode +char memset_dma256::dmaMode#0 // reg byte x 2.0 +struct DMA_LIST_F018B *memset_dma256::f018b +__constant struct DMA_LIST_F018B *memset_dma256::f018b#0 = (struct DMA_LIST_F018B *)memset_dma_command256+4 // f018b +char memset_dma256::fill +unsigned int memset_dma256::num +__constant unsigned int memset_dma256::num#0 = (unsigned int)$2d*$19*2 // num +__loadstore volatile struct DMA_LIST_F018B memset_dma_command = { command: DMA_COMMAND_FILL, count: 0, src: 0, src_bank: 0, dest: 0, dest_bank: 0, sub_command: 0, modulo: 0 } // mem[12] +__constant char memset_dma_command256[] = { DMA_OPTION_DEST_MB, 0, DMA_OPTION_FORMAT_F018B, DMA_OPTION_END, DMA_COMMAND_FILL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } reg byte x [ main::r#2 main::r#1 ] zp[2]:2 [ main::erow#5 main::erow#1 ] diff --git a/src/test/ref/examples/mega65/hello-mega65.log b/src/test/ref/examples/mega65/hello-mega65.log index ab112723a..a49be216b 100644 --- a/src/test/ref/examples/mega65/hello-mega65.log +++ b/src/test/ref/examples/mega65/hello-mega65.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -27,7 +27,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -36,25 +36,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* COLORS = (byte*)$d800 -constant byte* MSG[] = "hello world!" -constant byte* SCREEN = (byte*)$800 +__constant char *COLORS = (char *)$d800 +__constant char MSG[] = "hello world!" +__constant char *SCREEN = (char *)$800 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 0 in main::$0 = 0 != MSG[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 2048 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -102,9 +102,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 19.25 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 19.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -196,13 +196,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* COLORS = (byte*) 55296 -constant byte* MSG[] = "hello world!" -constant byte* SCREEN = (byte*) 2048 +__constant char *COLORS = (char *) 55296 +__constant char MSG[] = "hello world!" +__constant char *SCREEN = (char *) 2048 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 19.25 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 19.25 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/examples/mega65/hello-mega65.sym b/src/test/ref/examples/mega65/hello-mega65.sym index e9bb1e866..65908444c 100644 --- a/src/test/ref/examples/mega65/hello-mega65.sym +++ b/src/test/ref/examples/mega65/hello-mega65.sym @@ -1,9 +1,9 @@ -constant byte* COLORS = (byte*) 55296 -constant byte* MSG[] = "hello world!" -constant byte* SCREEN = (byte*) 2048 +__constant char *COLORS = (char *) 55296 +__constant char MSG[] = "hello world!" +__constant char *SCREEN = (char *) 2048 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 19.25 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 19.25 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/examples/mega65/helloworld-mega65.asm b/src/test/ref/examples/mega65/helloworld-mega65.asm index 77c8e6022..2aeb52653 100644 --- a/src/test/ref/examples/mega65/helloworld-mega65.asm +++ b/src/test/ref/examples/mega65/helloworld-mega65.asm @@ -123,6 +123,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = $c .label xVal = $d @@ -152,7 +153,7 @@ memoryRemap: { rts } // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $14 @@ -225,7 +226,7 @@ gotoxy: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 lda # 0 Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#3 > $19 @@ -569,15 +569,15 @@ Adding number conversion cast (unumber) $f in memoryRemap::$8 = memoryRemap::$7 Adding number conversion cast (unumber) memoryRemap::$8 in memoryRemap::$8 = memoryRemap::$7 & (unumber)$f Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $50 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$50 +Adding number conversion cast (unumber) $50 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$50 Adding number conversion cast (unumber) $19*$50-$50 in memcpy::num#0 = $19*$50-$50 -Adding number conversion cast (unumber) $50 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$50 +Adding number conversion cast (unumber) $50 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$50 Adding number conversion cast (unumber) $19*$50-$50 in memcpy::num#1 = $19*$50-$50 -Adding number conversion cast (unumber) $50 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$50-$50 -Adding number conversion cast (unumber) $19*$50 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$50-(unumber)$50 +Adding number conversion cast (unumber) $50 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$50-$50 +Adding number conversion cast (unumber) $19*$50 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$50-(unumber)$50 Adding number conversion cast (unumber) $50 in memset::num#0 = $50 -Adding number conversion cast (unumber) $50 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$50-$50 -Adding number conversion cast (unumber) $19*$50 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$50-(unumber)$50 +Adding number conversion cast (unumber) $50 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$50-$50 +Adding number conversion cast (unumber) $19*$50 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$50-(unumber)$50 Adding number conversion cast (unumber) $50 in memset::num#1 = $50 Adding number conversion cast (unumber) $50 in conio_line_text = conio_line_text - $50 Adding number conversion cast (unumber) $50 in conio_line_color = conio_line_color - $50 @@ -593,9 +593,9 @@ Adding number conversion cast (unumber) $19 in conio_mega65_init::$3 = conio_meg Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_mega65_init::line#1 = $19-1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 @@ -613,11 +613,11 @@ Inlining cast *IO_KEY = (unumber)$53 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_mega65_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53295 -Simplifying constant pointer cast (byte*) 53296 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 235 +Simplifying constant pointer cast (char *) 53295 +Simplifying constant pointer cast (char *) 53296 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 2048 +Simplifying constant pointer cast (char *) 235 Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast $50 @@ -654,45 +654,45 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $47 -Finalized unsigned number type (byte) $53 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $47 +Finalized unsigned number type (char) $53 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#1 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [38] gotoxy::$1 = gotoxy::y#3 <= $19 from [37] gotoxy::$0 = gotoxy::y#3 > $19 Inversing boolean not [42] gotoxy::$3 = gotoxy::x#3 < $50 from [41] gotoxy::$2 = gotoxy::x#3 >= $50 @@ -760,16 +760,16 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$50 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$50 Constant memcpy::num#0 = (unumber)$19*$50-$50 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$50 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$50 Constant memcpy::num#1 = (unumber)$19*$50-$50 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$50-$50 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$50-$50 Constant memset::c#0 = ' ' Constant memset::num#0 = $50 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$50-$50 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$50-$50 Constant memset::num#1 = $50 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -807,7 +807,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -868,11 +868,11 @@ Eliminating unused constant memoryRemap::$7 Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[26] gotoxy::line_offset#0 = gotoxy::$7 * $50 Inlining constant with var siblings memcpy::destination#0 @@ -890,20 +890,20 @@ Inlining constant with var siblings memset::c#1 Inlining constant with var siblings gotoxy::y#0 Inlining constant with var siblings cputs::s#1 Inlining constant with var siblings conio_mega65_init::line#1 -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$50-$50 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$50-$50 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$50-$50 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$50-$50 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined cputs::s#1 = main::s Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $50 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $50 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$50 -Constant inlined conio_mega65_init::line#1 = (byte)$19-1 -Constant inlined memcpy::num#1 = (word)$19*$50-$50 -Constant inlined memcpy::num#0 = (word)$19*$50-$50 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$50 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$50 +Constant inlined conio_mega65_init::line#1 = (char)$19-1 +Constant inlined memcpy::num#1 = (unsigned int)$19*$50-$50 +Constant inlined memcpy::num#0 = (unsigned int)$19*$50-$50 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$50 Constant inlined gotoxy::y#0 = 0 Constant inlined memoryRemap::$3 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN @@ -918,30 +918,30 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$50-$50 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$50-$50 Identical Phi Values memset::num#2 $50 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [9] if($50<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -1043,11 +1043,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_mega65_init + [5] call conio_mega65_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -1062,7 +1062,7 @@ conio_mega65_init::SEI1: scope:[conio_mega65_init] from conio_mega65_init to:conio_mega65_init::@2 conio_mega65_init::@2: scope:[conio_mega65_init] from conio_mega65_init::SEI1 [11] phi() - [12] call memoryRemap + [12] call memoryRemap to:conio_mega65_init::@3 conio_mega65_init::@3: scope:[conio_mega65_init] from conio_mega65_init::@2 [13] *IO_KEY = $47 @@ -1077,7 +1077,7 @@ conio_mega65_init::@4: scope:[conio_mega65_init] from conio_mega65_init::@3 conio_mega65_init::@1: scope:[conio_mega65_init] from conio_mega65_init::@3 conio_mega65_init::@4 [19] conio_mega65_init::line#2 = phi( conio_mega65_init::@3/$19-1, conio_mega65_init::@4/conio_mega65_init::line#0 ) [20] gotoxy::y#2 = conio_mega65_init::line#2 - [21] call gotoxy + [21] call gotoxy to:conio_mega65_init::@return conio_mega65_init::@return: scope:[conio_mega65_init] from conio_mega65_init::@1 [22] return @@ -1086,13 +1086,13 @@ conio_mega65_init::@return: scope:[conio_mega65_init] from conio_mega65_init::@ void main() main: scope:[main] from __start::@1 [23] phi() - [24] call cputs + [24] call cputs to:main::@return main::@return: scope:[main] from main [25] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from conio_mega65_init::@2 [26] memoryRemap::aVal = 0 [27] memoryRemap::xVal = 0 @@ -1104,7 +1104,7 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [31] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_mega65_init::@1 [32] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -1117,7 +1117,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [35] conio_cursor_x = gotoxy::x#2 [36] conio_cursor_y = gotoxy::y#4 - [37] gotoxy::$7 = (word)gotoxy::y#4 + [37] gotoxy::$7 = (unsigned int)gotoxy::y#4 [38] gotoxy::$8 = gotoxy::$7 << 2 [39] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [40] gotoxy::line_offset#0 = gotoxy::$9 << 4 @@ -1130,7 +1130,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [45] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main [46] phi() to:cputs::@1 @@ -1145,10 +1145,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [52] cputc::c#0 = cputs::c#1 - [53] call cputc + [53] call cputc to:cputs::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [54] if(cputc::c#0==' ') goto cputc::@1 @@ -1161,14 +1161,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [59] phi() - [60] call cputln + [60] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [61] return to:@return cputc::@1: scope:[cputc] from cputc [62] phi() - [63] call cputln + [63] call cputln to:cputc::@return void cputln() @@ -1177,7 +1177,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [65] conio_line_color = conio_line_color + $50 [66] conio_cursor_x = 0 [67] conio_cursor_y = ++ conio_cursor_y - [68] call cscroll + [68] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [69] return @@ -1189,19 +1189,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [71] phi() - [72] call memcpy + [72] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [73] phi() - [74] call memcpy + [74] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [75] phi() - [76] call memset + [76] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [77] phi() - [78] call memset + [78] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [79] conio_line_text = conio_line_text - $50 @@ -1212,13 +1212,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [82] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [83] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [83] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$50, cscroll::@2/(void*)COLORRAM+$50 ) - [84] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50 - [85] memcpy::src#4 = (byte*)memcpy::source#2 - [86] memcpy::dst#4 = (byte*)memcpy::destination#2 + [83] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [83] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$50, cscroll::@2/(void *)COLORRAM+$50 ) + [84] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$50-$50 + [85] memcpy::src#4 = (char *)memcpy::source#2 + [86] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [87] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1234,14 +1234,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [92] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [93] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [93] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$50-$50, cscroll::@4/(void*)COLORRAM+(word)$19*$50-$50 ) + [93] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$50-$50, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$50-$50 ) to:memset::@1 memset::@1: scope:[memset] from memset - [94] memset::end#0 = (byte*)memset::str#3 + $50 - [95] memset::dst#4 = (byte*)memset::str#3 + [94] memset::end#0 = (char *)memset::str#3 + $50 + [95] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [96] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1258,76 +1258,76 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() -byte conio_cursor_x loadstore 4288.828571428571 -byte conio_cursor_y loadstore 62747.2156862745 -byte* conio_line_color loadstore 51397.860465116275 -byte* conio_line_text loadstore 49113.51111111111 +__loadstore char conio_cursor_x // 4288.828571428571 +__loadstore char conio_cursor_y // 62747.2156862745 +__loadstore char *conio_line_color // 51397.860465116275 +__loadstore char *conio_line_text // 49113.51111111111 void conio_mega65_init() -byte conio_mega65_init::line -byte conio_mega65_init::line#0 11.0 -byte conio_mega65_init::line#2 22.0 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 10501.5 +char conio_mega65_init::line +char conio_mega65_init::line#0 // 11.0 +char conio_mega65_init::line#2 // 22.0 +void cputc(char c) +char cputc::c +char cputc::c#0 // 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 1001.0 -const byte* cputs::s -const byte* cputs::s#0 500.5 -const byte* cputs::s#2 1501.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 1001.0 +const char *cputs::s +const char *cputs::s#0 // 500.5 +const char *cputs::s#2 // 1501.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.000000001E9 -byte* memcpy::dst#2 1.0033333346666667E9 -byte* memcpy::dst#4 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.000000002E9 -byte* memcpy::src#2 1.00250000125E9 -byte* memcpy::src#4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.2625000025E8 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore 25.25 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore 33.666666666666664 -volatile byte memoryRemap::yVal loadstore 50.5 -volatile byte memoryRemap::zVal loadstore 101.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 2.000000002E9 -byte* memset::dst#2 1.3366666683333335E9 -byte* memset::dst#4 2.0000002E7 -byte* memset::end -byte* memset::end#0 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.000000001E9 +char *memcpy::dst#2 // 1.0033333346666667E9 +char *memcpy::dst#4 // 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.000000002E9 +char *memcpy::src#2 // 1.00250000125E9 +char *memcpy::src#4 // 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.2625000025E8 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // 25.25 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // 33.666666666666664 +__loadstore volatile char memoryRemap::yVal // 50.5 +__loadstore volatile char memoryRemap::zVal // 101.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.42857143E8 +char *memset::dst +char *memset::dst#1 // 2.000000002E9 +char *memset::dst#2 // 1.3366666683333335E9 +char *memset::dst#4 // 2.0000002E7 +char *memset::end +char *memset::end#0 // 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 Initial phi equivalence classes [ conio_mega65_init::line#2 conio_mega65_init::line#0 ] @@ -1430,7 +1430,7 @@ Statement [29] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memor Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [35] conio_cursor_x = gotoxy::x#2 [ conio_cursor_x gotoxy::y#4 ] ( gotoxy:21 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [37] gotoxy::$7 = (word)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a +Statement [37] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Statement [38] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Statement [39] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Statement [40] gotoxy::line_offset#0 = gotoxy::$9 << 4 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a @@ -1448,14 +1448,14 @@ Statement [66] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [70] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [79] conio_line_text = conio_line_text - $50 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [80] conio_line_color = conio_line_color - $50 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [84] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [85] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [86] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [84] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$50-$50 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [85] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [86] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [88] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [90] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [94] memset::end#0 = (byte*)memset::str#3 + $50 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [94] memset::end#0 = (char *)memset::str#3 + $50 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ memset::c#4 ] -Statement [95] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [95] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [97] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [99] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:16 [ memset::c#4 ] @@ -1472,7 +1472,7 @@ Statement [28] memoryRemap::yVal = 0 [ memoryRemap::aVal memoryRemap::xVal memor Statement [29] memoryRemap::zVal = 0 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] ( memoryRemap:12 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } conio_mega65_init:5::memoryRemap:12 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::zVal ] { } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [35] conio_cursor_x = gotoxy::x#2 [ conio_cursor_x gotoxy::y#4 ] ( gotoxy:21 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a -Statement [37] gotoxy::$7 = (word)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a +Statement [37] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Statement [38] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Statement [39] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a Statement [40] gotoxy::line_offset#0 = gotoxy::$9 << 4 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } conio_mega65_init:5::gotoxy:21 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_mega65_init::line#2 } } ) always clobbers reg byte a @@ -1490,13 +1490,13 @@ Statement [66] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [70] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [79] conio_line_text = conio_line_text - $50 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [80] conio_line_color = conio_line_color - $50 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [84] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [85] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [86] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [84] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$50-$50 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [85] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [86] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [88] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [90] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memcpy:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [94] memset::end#0 = (byte*)memset::str#3 + $50 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [95] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [94] memset::end#0 = (char *)memset::str#3 + $50 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [95] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [97] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [99] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:60::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:24::cputc:53::cputln:63::cscroll:68::memset:78 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_mega65_init::line#2 conio_mega65_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , reg byte z , @@ -1675,7 +1675,7 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_mega65_init + // [5] call conio_mega65_init // [9] phi from __start::__init1 to conio_mega65_init [phi:__start::__init1->conio_mega65_init] conio_mega65_init_from___init1: jsr conio_mega65_init @@ -1684,7 +1684,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [23] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1709,7 +1709,7 @@ conio_mega65_init: { jmp __b2 // conio_mega65_init::@2 __b2: - // [12] call memoryRemap + // [12] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap jmp __b3 @@ -1750,7 +1750,7 @@ conio_mega65_init: { // conio_mega65_init::@1 __b1: // [20] gotoxy::y#2 = conio_mega65_init::line#2 - // [21] call gotoxy + // [21] call gotoxy jsr gotoxy jmp __breturn // conio_mega65_init::@return @@ -1760,7 +1760,7 @@ conio_mega65_init: { } // main main: { - // [24] call cputs + // [24] call cputs // [46] phi from main to cputs [phi:main->cputs] cputs_from_main: jsr cputs @@ -1799,6 +1799,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = $c .label xVal = $d @@ -1835,7 +1836,7 @@ memoryRemap: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $14 @@ -1871,7 +1872,7 @@ gotoxy: { sta.z conio_cursor_x // [36] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [37] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [37] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -1932,7 +1933,7 @@ gotoxy: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [47] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -1961,7 +1962,7 @@ cputs: { // cputs::@2 __b2: // [52] cputc::c#0 = cputs::c#1 - // [53] call cputc + // [53] call cputc jsr cputc // [47] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] __b1_from___b2: @@ -1971,7 +1972,7 @@ cputs: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [54] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -1997,7 +1998,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [60] call cputln + // [60] call cputln jsr cputln jmp __breturn // cputc::@return @@ -2009,7 +2010,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [63] call cputln + // [63] call cputln jsr cputln jmp __breturn } @@ -2037,7 +2038,7 @@ cputln: { sta.z conio_cursor_x // [67] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [68] call cscroll + // [68] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -2057,15 +2058,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [72] call memcpy + // [72] call memcpy // [83] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [83] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [83] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [83] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$50 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [83] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$50 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$50 @@ -2076,15 +2077,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [74] call memcpy + // [74] call memcpy // [83] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [83] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [83] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [83] phi memcpy::source#2 = (void*)COLORRAM+$50 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [83] phi memcpy::source#2 = (void *)COLORRAM+$50 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$50 @@ -2095,12 +2096,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [76] call memset + // [76] call memset // [93] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [93] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuzz=vbuc1 ldz #' ' - // [93] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$50-$50 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [93] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$50-$50 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$50-$50 @@ -2111,12 +2112,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [78] call memset + // [78] call memset // [93] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [93] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuzz=vbuc1 ldz #LIGHT_BLUE - // [93] phi memset::str#3 = (void*)COLORRAM+(word)$19*$50-$50 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [93] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$50-$50 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$50-$50 @@ -2152,14 +2153,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($18) destination, void* zp(4) source) +// void * memcpy(__zp($18) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = $18 .label src = 4 .label source = 4 .label destination = $18 - // [84] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50 -- pbuz1=pbuz2_plus_vwuc1 + // [84] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$50-$50 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$50-$50 @@ -2167,8 +2168,8 @@ memcpy: { lda.z source+1 adc #>$19*$50-$50 sta.z src_end+1 - // [85] memcpy::src#4 = (byte*)memcpy::source#2 - // [86] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [85] memcpy::src#4 = (char *)memcpy::source#2 + // [86] memcpy::dst#4 = (char *)memcpy::destination#2 // [87] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -2204,7 +2205,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(Z) c) +// void * memset(__zp(4) void *str, __register(Z) char c, unsigned int num) memset: { .label end = $18 .label dst = 4 @@ -2212,7 +2213,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [94] memset::end#0 = (byte*)memset::str#3 + $50 -- pbuz1=pbuz2_plus_vbuc1 + // [94] memset::end#0 = (char *)memset::str#3 + $50 -- pbuz1=pbuz2_plus_vbuc1 lda #$50 clc adc.z str @@ -2220,7 +2221,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [95] memset::dst#4 = (byte*)memset::str#3 + // [95] memset::dst#4 = (char *)memset::str#3 // [96] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2360,90 +2361,90 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant const byte CRAM2K = 1 -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant volatile byte* const IO_BANK = (byte*) 53296 -constant volatile byte* const IO_KEY = (byte*) 53295 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant const char CRAM2K = 1 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant volatile char * const IO_BANK = (char *) 53296 +__constant volatile char * const IO_KEY = (char *) 53295 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -byte conio_cursor_x loadstore zp[1]:6 4288.828571428571 -byte conio_cursor_y loadstore zp[1]:7 62747.2156862745 -byte* conio_line_color loadstore zp[2]:10 51397.860465116275 -byte* conio_line_text loadstore zp[2]:8 49113.51111111111 +__loadstore char conio_cursor_x // zp[1]:6 4288.828571428571 +__loadstore char conio_cursor_y // zp[1]:7 62747.2156862745 +__loadstore char *conio_line_color // zp[2]:10 51397.860465116275 +__loadstore char *conio_line_text // zp[2]:8 49113.51111111111 void conio_mega65_init() -constant byte* const conio_mega65_init::BASIC_CURSOR_LINE = (byte*) 235 -byte conio_mega65_init::line -byte conio_mega65_init::line#0 reg byte x 11.0 -byte conio_mega65_init::line#2 reg byte x 22.0 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 10501.5 +__constant char * const conio_mega65_init::BASIC_CURSOR_LINE = (char *) 235 +char conio_mega65_init::line +char conio_mega65_init::line#0 // reg byte x 11.0 +char conio_mega65_init::line#2 // reg byte x 22.0 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 500.5 -const byte* cputs::s#2 s zp[2]:2 1501.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 500.5 +const char *cputs::s#2 // s zp[2]:2 1501.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:20 202.0 -byte*~ gotoxy::$6 zp[2]:16 202.0 -word~ gotoxy::$7 zp[2]:16 151.5 -word~ gotoxy::$8 zp[2]:18 202.0 -word~ gotoxy::$9 zp[2]:16 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:16 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:20 202.0 +char *gotoxy::$6 // zp[2]:16 202.0 +unsigned int gotoxy::$7 // zp[2]:16 151.5 +unsigned int gotoxy::$8 // zp[2]:18 202.0 +unsigned int gotoxy::$9 // zp[2]:16 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:16 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::s[$d] = "hello world!" -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:24 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:24 1.000000001E9 -byte* memcpy::dst#2 dst zp[2]:24 1.0033333346666667E9 -byte* memcpy::dst#4 dst zp[2]:24 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000002E9 -byte* memcpy::src#2 src zp[2]:4 1.00250000125E9 -byte* memcpy::src#4 src zp[2]:4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:22 1.2625000025E8 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:12 25.25 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:13 33.666666666666664 -volatile byte memoryRemap::yVal loadstore zp[1]:14 50.5 -volatile byte memoryRemap::zVal loadstore zp[1]:15 101.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte z 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2.000000002E9 -byte* memset::dst#2 dst zp[2]:4 1.3366666683333335E9 -byte* memset::dst#4 dst zp[2]:4 2.0000002E7 -byte* memset::end -byte* memset::end#0 end zp[2]:24 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 +__constant char main::s[$d] = "hello world!" +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:24 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:24 1.000000001E9 +char *memcpy::dst#2 // dst zp[2]:24 1.0033333346666667E9 +char *memcpy::dst#4 // dst zp[2]:24 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000002E9 +char *memcpy::src#2 // src zp[2]:4 1.00250000125E9 +char *memcpy::src#4 // src zp[2]:4 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:22 1.2625000025E8 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:12 25.25 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:13 33.666666666666664 +__loadstore volatile char memoryRemap::yVal // zp[1]:14 50.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:15 101.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte z 1.42857143E8 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2.000000002E9 +char *memset::dst#2 // dst zp[2]:4 1.3366666683333335E9 +char *memset::dst#4 // dst zp[2]:4 2.0000002E7 +char *memset::end +char *memset::end#0 // end zp[2]:24 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 reg byte x [ conio_mega65_init::line#2 conio_mega65_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] @@ -2532,12 +2533,12 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_mega65_init, cputc, clrscr, cscroll) - // [5] call conio_mega65_init + // [5] call conio_mega65_init // [9] phi from __start::__init1 to conio_mega65_init [phi:__start::__init1->conio_mega65_init] jsr conio_mega65_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [23] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -2556,7 +2557,7 @@ conio_mega65_init: { // [11] phi from conio_mega65_init::SEI1 to conio_mega65_init::@2 [phi:conio_mega65_init::SEI1->conio_mega65_init::@2] // conio_mega65_init::@2 // memoryRemap(0,0,0) - // [12] call memoryRemap + // [12] call memoryRemap // Map memory to BANK 0 : 0x00XXXX - giving access to I/O jsr memoryRemap // conio_mega65_init::@3 @@ -2594,7 +2595,7 @@ conio_mega65_init: { __b1: // gotoxy(0, line) // [20] gotoxy::y#2 = conio_mega65_init::line#2 - // [21] call gotoxy + // [21] call gotoxy jsr gotoxy // conio_mega65_init::@return // } @@ -2604,7 +2605,7 @@ conio_mega65_init: { // main main: { // printf("hello world!") - // [24] call cputs + // [24] call cputs // [46] phi from main to cputs [phi:main->cputs] jsr cputs // main::@return @@ -2641,6 +2642,7 @@ main: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. +// void memoryRemap(char remapBlocks, unsigned int lowerPageOffset, unsigned int upperPageOffset) memoryRemap: { .label aVal = $c .label xVal = $d @@ -2678,7 +2680,7 @@ memoryRemap: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $14 @@ -2709,7 +2711,7 @@ gotoxy: { // [36] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [37] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [37] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -2773,7 +2775,7 @@ gotoxy: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [47] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -2801,7 +2803,7 @@ cputs: { __b2: // cputc(c) // [52] cputc::c#0 = cputs::c#1 - // [53] call cputc + // [53] call cputc jsr cputc // [47] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] // [47] phi cputs::s#2 = cputs::s#0 [phi:cputs::@2->cputs::@1#0] -- register_copy @@ -2810,7 +2812,7 @@ cputs: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [54] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -2836,7 +2838,7 @@ cputc: { // [59] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [60] call cputln + // [60] call cputln jsr cputln // cputc::@return __breturn: @@ -2847,7 +2849,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [63] call cputln + // [63] call cputln jsr cputln rts } @@ -2880,7 +2882,7 @@ cputln: { // [67] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [68] call cscroll + // [68] call cscroll jsr cscroll // cputln::@return // } @@ -2898,14 +2900,14 @@ cscroll: { // [71] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [72] call memcpy + // [72] call memcpy // [83] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [83] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [83] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [83] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$50 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [83] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$50 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$50 @@ -2914,14 +2916,14 @@ cscroll: { // [73] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [74] call memcpy + // [74] call memcpy // [83] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [83] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [83] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [83] phi memcpy::source#2 = (void*)COLORRAM+$50 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [83] phi memcpy::source#2 = (void *)COLORRAM+$50 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$50 @@ -2930,11 +2932,11 @@ cscroll: { // [75] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [76] call memset + // [76] call memset // [93] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [93] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuzz=vbuc1 ldz #' ' - // [93] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$50-$50 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [93] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$50-$50 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$50-$50 @@ -2943,11 +2945,11 @@ cscroll: { // [77] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [78] call memset + // [78] call memset // [93] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [93] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuzz=vbuc1 ldz #LIGHT_BLUE - // [93] phi memset::str#3 = (void*)COLORRAM+(word)$19*$50-$50 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [93] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$50-$50 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$50-$50 @@ -2984,7 +2986,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($18) destination, void* zp(4) source) +// void * memcpy(__zp($18) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = $18 @@ -2992,7 +2994,7 @@ memcpy: { .label source = 4 .label destination = $18 // char* src_end = (char*)source+num - // [84] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$50-$50 -- pbuz1=pbuz2_plus_vwuc1 + // [84] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$50-$50 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$50-$50 @@ -3000,8 +3002,8 @@ memcpy: { lda.z source+1 adc #>$19*$50-$50 sta.z src_end+1 - // [85] memcpy::src#4 = (byte*)memcpy::source#2 - // [86] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [85] memcpy::src#4 = (char *)memcpy::source#2 + // [86] memcpy::dst#4 = (char *)memcpy::destination#2 // [87] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [87] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [87] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -3035,14 +3037,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(Z) c) +// void * memset(__zp(4) void *str, __register(Z) char c, unsigned int num) memset: { .label end = $18 .label dst = 4 .label str = 4 // memset::@1 // char* end = (char*)str + num - // [94] memset::end#0 = (byte*)memset::str#3 + $50 -- pbuz1=pbuz2_plus_vbuc1 + // [94] memset::end#0 = (char *)memset::str#3 + $50 -- pbuz1=pbuz2_plus_vbuc1 lda #$50 clc adc.z str @@ -3050,7 +3052,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [95] memset::dst#4 = (byte*)memset::str#3 + // [95] memset::dst#4 = (char *)memset::str#3 // [96] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [96] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/examples/mega65/helloworld-mega65.sym b/src/test/ref/examples/mega65/helloworld-mega65.sym index 66703a6d7..d5f4ea0d8 100644 --- a/src/test/ref/examples/mega65/helloworld-mega65.sym +++ b/src/test/ref/examples/mega65/helloworld-mega65.sym @@ -1,87 +1,87 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant const byte CRAM2K = 1 -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant volatile byte* const IO_BANK = (byte*) 53296 -constant volatile byte* const IO_KEY = (byte*) 53295 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant const char CRAM2K = 1 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant volatile char * const IO_BANK = (char *) 53296 +__constant volatile char * const IO_KEY = (char *) 53295 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -byte conio_cursor_x loadstore zp[1]:6 4288.828571428571 -byte conio_cursor_y loadstore zp[1]:7 62747.2156862745 -byte* conio_line_color loadstore zp[2]:10 51397.860465116275 -byte* conio_line_text loadstore zp[2]:8 49113.51111111111 +__loadstore char conio_cursor_x // zp[1]:6 4288.828571428571 +__loadstore char conio_cursor_y // zp[1]:7 62747.2156862745 +__loadstore char *conio_line_color // zp[2]:10 51397.860465116275 +__loadstore char *conio_line_text // zp[2]:8 49113.51111111111 void conio_mega65_init() -constant byte* const conio_mega65_init::BASIC_CURSOR_LINE = (byte*) 235 -byte conio_mega65_init::line -byte conio_mega65_init::line#0 reg byte x 11.0 -byte conio_mega65_init::line#2 reg byte x 22.0 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 10501.5 +__constant char * const conio_mega65_init::BASIC_CURSOR_LINE = (char *) 235 +char conio_mega65_init::line +char conio_mega65_init::line#0 // reg byte x 11.0 +char conio_mega65_init::line#2 // reg byte x 22.0 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 500.5 -const byte* cputs::s#2 s zp[2]:2 1501.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 500.5 +const char *cputs::s#2 // s zp[2]:2 1501.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:20 202.0 -byte*~ gotoxy::$6 zp[2]:16 202.0 -word~ gotoxy::$7 zp[2]:16 151.5 -word~ gotoxy::$8 zp[2]:18 202.0 -word~ gotoxy::$9 zp[2]:16 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:16 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:20 202.0 +char *gotoxy::$6 // zp[2]:16 202.0 +unsigned int gotoxy::$7 // zp[2]:16 151.5 +unsigned int gotoxy::$8 // zp[2]:18 202.0 +unsigned int gotoxy::$9 // zp[2]:16 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:16 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::s[$d] = "hello world!" -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:24 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:24 1.000000001E9 -byte* memcpy::dst#2 dst zp[2]:24 1.0033333346666667E9 -byte* memcpy::dst#4 dst zp[2]:24 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000002E9 -byte* memcpy::src#2 src zp[2]:4 1.00250000125E9 -byte* memcpy::src#4 src zp[2]:4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:22 1.2625000025E8 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -volatile byte memoryRemap::aVal loadstore zp[1]:12 25.25 -word memoryRemap::lowerPageOffset -byte memoryRemap::remapBlocks -word memoryRemap::upperPageOffset -volatile byte memoryRemap::xVal loadstore zp[1]:13 33.666666666666664 -volatile byte memoryRemap::yVal loadstore zp[1]:14 50.5 -volatile byte memoryRemap::zVal loadstore zp[1]:15 101.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte z 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2.000000002E9 -byte* memset::dst#2 dst zp[2]:4 1.3366666683333335E9 -byte* memset::dst#4 dst zp[2]:4 2.0000002E7 -byte* memset::end -byte* memset::end#0 end zp[2]:24 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 +__constant char main::s[$d] = "hello world!" +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:24 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:24 1.000000001E9 +char *memcpy::dst#2 // dst zp[2]:24 1.0033333346666667E9 +char *memcpy::dst#4 // dst zp[2]:24 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000002E9 +char *memcpy::src#2 // src zp[2]:4 1.00250000125E9 +char *memcpy::src#4 // src zp[2]:4 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:22 1.2625000025E8 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +__loadstore volatile char memoryRemap::aVal // zp[1]:12 25.25 +unsigned int memoryRemap::lowerPageOffset +char memoryRemap::remapBlocks +unsigned int memoryRemap::upperPageOffset +__loadstore volatile char memoryRemap::xVal // zp[1]:13 33.666666666666664 +__loadstore volatile char memoryRemap::yVal // zp[1]:14 50.5 +__loadstore volatile char memoryRemap::zVal // zp[1]:15 101.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte z 1.42857143E8 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2.000000002E9 +char *memset::dst#2 // dst zp[2]:4 1.3366666683333335E9 +char *memset::dst#4 // dst zp[2]:4 2.0000002E7 +char *memset::end +char *memset::end#0 // end zp[2]:24 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 reg byte x [ conio_mega65_init::line#2 conio_mega65_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] diff --git a/src/test/ref/examples/mega65/memorymap-test.asm b/src/test/ref/examples/mega65/memorymap-test.asm index 47b523953..3a33067cc 100644 --- a/src/test/ref/examples/mega65/memorymap-test.asm +++ b/src/test/ref/examples/mega65/memorymap-test.asm @@ -128,7 +128,7 @@ main: { // blockPage: Page address of the 8K memory block to remap (ie. the block that is remapped is $100 * the passed page address.) // memoryPage: Page address of the memory that the block should point to in the 1MB memory space of the MEGA65. // Ie. the memory that will be pointed to is $100 * the passed page address. Only the lower 12bits of the passed value is used. -// memoryRemapBlock(byte register(X) blockPage) +// void memoryRemapBlock(__register(X) char blockPage, unsigned int memoryPage) memoryRemapBlock: { .label pageOffset = 2 // unsigned int pageOffset = memoryPage-blockPage @@ -193,7 +193,7 @@ memoryRemapBlock: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap(byte register(Z) remapBlocks, word zp(2) lowerPageOffset, word zp(4) upperPageOffset) +// void memoryRemap(__register(Z) char remapBlocks, __zp(2) unsigned int lowerPageOffset, __zp(4) unsigned int upperPageOffset) memoryRemap: { .label aVal = $a .label xVal = $b @@ -273,7 +273,7 @@ memoryRemap: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap256M(byte register(Z) remapBlocks, dword zp(6) lowerPageOffset) +// void memoryRemap256M(__register(Z) char remapBlocks, __zp(6) unsigned long lowerPageOffset, unsigned long upperPageOffset) memoryRemap256M: { .label lMb = $13 .label __0 = $f diff --git a/src/test/ref/examples/mega65/memorymap-test.cfg b/src/test/ref/examples/mega65/memorymap-test.cfg index 1ca51dd95..f60b66e6b 100644 --- a/src/test/ref/examples/mega65/memorymap-test.cfg +++ b/src/test/ref/examples/mega65/memorymap-test.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call memoryRemapBlock + [1] call memoryRemapBlock to:main::@7 main::@7: scope:[main] from main [2] *main::BLOCK_4000 = '-' [3] *(main::BLOCK_4000+1) = '*' - [4] call memoryRemapBlock + [4] call memoryRemapBlock to:main::@8 main::@8: scope:[main] from main::@7 [5] *(main::BLOCK_8000+2) = '-' [6] *(main::BLOCK_8000+3) = '*' - [7] call memoryRemap + [7] call memoryRemap to:main::@9 main::@9: scope:[main] from main::@8 [8] *(main::BLOCK_8000+4) = *(main::BLOCK_4000+2) @@ -24,7 +24,7 @@ main::@1: scope:[main] from main::@2 main::@9 to:main::@3 main::@3: scope:[main] from main::@1 [12] phi() - [13] call memoryRemap256M + [13] call memoryRemap256M to:main::@4 main::@4: scope:[main] from main::@3 main::@5 [14] main::i1#2 = phi( main::@3/0, main::@5/main::i1#1 ) @@ -32,7 +32,7 @@ main::@4: scope:[main] from main::@3 main::@5 to:main::@6 main::@6: scope:[main] from main::@4 [16] phi() - [17] call memoryRemap256M + [17] call memoryRemap256M to:main::@return main::@return: scope:[main] from main::@6 [18] return @@ -47,7 +47,7 @@ main::@2: scope:[main] from main::@1 [23] main::i#1 = ++ main::i#2 to:main::@1 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) +void memoryRemapBlock(char blockPage , unsigned int memoryPage) memoryRemapBlock: scope:[memoryRemapBlock] from main main::@7 [24] memoryRemapBlock::blockPage#2 = phi( main/$40, main::@7/$80 ) [25] memoryRemapBlock::pageOffset#0 = $100 - memoryRemapBlock::blockPage#2 @@ -56,13 +56,13 @@ memoryRemapBlock: scope:[memoryRemapBlock] from main main::@7 [28] memoryRemap::remapBlocks#0 = memoryRemapBlock::blockBits#0 [29] memoryRemap::lowerPageOffset#0 = memoryRemapBlock::pageOffset#0 [30] memoryRemap::upperPageOffset#0 = memoryRemapBlock::pageOffset#0 - [31] call memoryRemap + [31] call memoryRemap to:memoryRemapBlock::@return memoryRemapBlock::@return: scope:[memoryRemapBlock] from memoryRemapBlock [32] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main::@8 memoryRemapBlock [33] memoryRemap::upperPageOffset#2 = phi( main::@8/$80, memoryRemapBlock/memoryRemap::upperPageOffset#0 ) [33] memoryRemap::remapBlocks#2 = phi( main::@8/MEMORYBLOCK_4000|MEMORYBLOCK_8000, memoryRemapBlock/memoryRemap::remapBlocks#0 ) @@ -83,12 +83,12 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [45] return to:@return -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) memoryRemap256M: scope:[memoryRemap256M] from main::@3 main::@6 [46] memoryRemap256M::remapBlocks#2 = phi( main::@3/MEMORYBLOCK_4000, main::@6/0 ) [46] memoryRemap256M::lowerPageOffset#2 = phi( main::@3/$ff800-$40, main::@6/0 ) [47] memoryRemap256M::$0 = memoryRemap256M::lowerPageOffset#2 >> 4 - [48] memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 + [48] memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 [49] memoryRemap256M::uMb = 0 [50] memoryRemap256M::aVal = byte0 memoryRemap256M::lowerPageOffset#2 [51] memoryRemap256M::$5 = memoryRemap256M::remapBlocks#2 << 4 diff --git a/src/test/ref/examples/mega65/memorymap-test.log b/src/test/ref/examples/mega65/memorymap-test.log index 05754f5c2..0f957944b 100644 --- a/src/test/ref/examples/mega65/memorymap-test.log +++ b/src/test/ref/examples/mega65/memorymap-test.log @@ -28,7 +28,7 @@ Eliminating unused variable with no statement memoryRemap256M::$13 CONTROL FLOW GRAPH SSA -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main::@8 memoryRemapBlock memoryRemap::upperPageOffset#2 = phi( main::@8/memoryRemap::upperPageOffset#1, memoryRemapBlock/memoryRemap::upperPageOffset#0 ) memoryRemap::remapBlocks#2 = phi( main::@8/memoryRemap::remapBlocks#1, memoryRemapBlock/memoryRemap::remapBlocks#0 ) @@ -49,7 +49,7 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap return to:@return -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) +void memoryRemapBlock(char blockPage , unsigned int memoryPage) memoryRemapBlock: scope:[memoryRemapBlock] from main main::@7 memoryRemapBlock::blockPage#2 = phi( main/memoryRemapBlock::blockPage#0, main::@7/memoryRemapBlock::blockPage#1 ) memoryRemapBlock::memoryPage#2 = phi( main/memoryRemapBlock::memoryPage#0, main::@7/memoryRemapBlock::memoryPage#1 ) @@ -59,7 +59,7 @@ memoryRemapBlock: scope:[memoryRemapBlock] from main main::@7 memoryRemap::remapBlocks#0 = memoryRemapBlock::blockBits#0 memoryRemap::lowerPageOffset#0 = memoryRemapBlock::pageOffset#0 memoryRemap::upperPageOffset#0 = memoryRemapBlock::pageOffset#0 - call memoryRemap + call memoryRemap to:memoryRemapBlock::@1 memoryRemapBlock::@1: scope:[memoryRemapBlock] from memoryRemapBlock to:memoryRemapBlock::@return @@ -67,15 +67,15 @@ memoryRemapBlock::@return: scope:[memoryRemapBlock] from memoryRemapBlock::@1 return to:@return -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) memoryRemap256M: scope:[memoryRemap256M] from main::@3 main::@6 memoryRemap256M::remapBlocks#2 = phi( main::@3/memoryRemap256M::remapBlocks#0, main::@6/memoryRemap256M::remapBlocks#1 ) memoryRemap256M::upperPageOffset#2 = phi( main::@3/memoryRemap256M::upperPageOffset#0, main::@6/memoryRemap256M::upperPageOffset#1 ) memoryRemap256M::lowerPageOffset#2 = phi( main::@3/memoryRemap256M::lowerPageOffset#0, main::@6/memoryRemap256M::lowerPageOffset#1 ) memoryRemap256M::$0 = memoryRemap256M::lowerPageOffset#2 >> 4 - memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 + memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 memoryRemap256M::$2 = memoryRemap256M::upperPageOffset#2 >> 4 - memoryRemap256M::uMb = byte1 (word)memoryRemap256M::$2 + memoryRemap256M::uMb = byte1 (unsigned int)memoryRemap256M::$2 memoryRemap256M::aVal = byte0 memoryRemap256M::lowerPageOffset#2 memoryRemap256M::$5 = memoryRemap256M::remapBlocks#2 << 4 memoryRemap256M::$6 = byte1 memoryRemap256M::lowerPageOffset#2 @@ -96,14 +96,14 @@ void main() main: scope:[main] from __start memoryRemapBlock::blockPage#0 = $40 memoryRemapBlock::memoryPage#0 = $100 - call memoryRemapBlock + call memoryRemapBlock to:main::@7 main::@7: scope:[main] from main main::BLOCK_4000[0] = '-' main::BLOCK_4000[1] = '*' memoryRemapBlock::blockPage#1 = $80 memoryRemapBlock::memoryPage#1 = $100 - call memoryRemapBlock + call memoryRemapBlock to:main::@8 main::@8: scope:[main] from main::@7 main::BLOCK_8000[2] = '-' @@ -111,7 +111,7 @@ main::@8: scope:[main] from main::@7 memoryRemap::remapBlocks#1 = MEMORYBLOCK_4000|MEMORYBLOCK_8000 memoryRemap::lowerPageOffset#1 = $c0 memoryRemap::upperPageOffset#1 = $80 - call memoryRemap + call memoryRemap to:main::@9 main::@9: scope:[main] from main::@8 main::BLOCK_8000[4] = main::BLOCK_4000[2] @@ -132,7 +132,7 @@ main::@3: scope:[main] from main::@1 memoryRemap256M::remapBlocks#0 = MEMORYBLOCK_4000 memoryRemap256M::lowerPageOffset#0 = $ff800-$40 memoryRemap256M::upperPageOffset#0 = 0 - call memoryRemap256M + call memoryRemap256M to:main::@10 main::@10: scope:[main] from main::@3 main::i1#0 = 0 @@ -152,7 +152,7 @@ main::@6: scope:[main] from main::@4 memoryRemap256M::remapBlocks#1 = 0 memoryRemap256M::lowerPageOffset#1 = 0 memoryRemap256M::upperPageOffset#1 = 0 - call memoryRemap256M + call memoryRemap256M to:main::@11 main::@11: scope:[main] from main::@6 to:main::@return @@ -162,7 +162,7 @@ main::@return: scope:[main] from main::@11 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -171,91 +171,91 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$800 -constant const byte MEMORYBLOCK_4000 = 4 -constant const byte MEMORYBLOCK_8000 = $10 +__constant char * const DEFAULT_SCREEN = (char *)$800 +__constant const char MEMORYBLOCK_4000 = 4 +__constant const char MEMORYBLOCK_8000 = $10 void __start() void main() -bool~ main::$5 -bool~ main::$6 -number~ main::$7 -constant byte* main::BLOCK_4000 = (byte*)$4000 -constant byte* main::BLOCK_8000 = (byte*)$8000 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::i1#3 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 -byte~ memoryRemap::$2 -number~ memoryRemap::$3 -number~ memoryRemap::$6 -byte~ memoryRemap::$7 -number~ memoryRemap::$8 -volatile byte memoryRemap::aVal loadstore -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 -word memoryRemap::lowerPageOffset#1 -word memoryRemap::lowerPageOffset#2 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 -byte memoryRemap::remapBlocks#1 -byte memoryRemap::remapBlocks#2 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 -word memoryRemap::upperPageOffset#1 -word memoryRemap::upperPageOffset#2 -volatile byte memoryRemap::xVal loadstore -volatile byte memoryRemap::yVal loadstore -volatile byte memoryRemap::zVal loadstore -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) -dword~ memoryRemap256M::$0 -number~ memoryRemap256M::$10 -byte~ memoryRemap256M::$11 -number~ memoryRemap256M::$12 -dword~ memoryRemap256M::$2 -byte~ memoryRemap256M::$5 -byte~ memoryRemap256M::$6 -number~ memoryRemap256M::$7 -volatile byte memoryRemap256M::aVal loadstore -volatile byte memoryRemap256M::lMb loadstore -dword memoryRemap256M::lowerPageOffset -dword memoryRemap256M::lowerPageOffset#0 -dword memoryRemap256M::lowerPageOffset#1 -dword memoryRemap256M::lowerPageOffset#2 -byte memoryRemap256M::remapBlocks -byte memoryRemap256M::remapBlocks#0 -byte memoryRemap256M::remapBlocks#1 -byte memoryRemap256M::remapBlocks#2 -volatile byte memoryRemap256M::uMb loadstore -dword memoryRemap256M::upperPageOffset -dword memoryRemap256M::upperPageOffset#0 -dword memoryRemap256M::upperPageOffset#1 -dword memoryRemap256M::upperPageOffset#2 -volatile byte memoryRemap256M::xVal loadstore -volatile byte memoryRemap256M::yVal loadstore -volatile byte memoryRemap256M::zVal loadstore -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -byte memoryRemapBlock::block#0 -byte memoryRemapBlock::blockBits -byte memoryRemapBlock::blockBits#0 -byte memoryRemapBlock::blockPage -byte memoryRemapBlock::blockPage#0 -byte memoryRemapBlock::blockPage#1 -byte memoryRemapBlock::blockPage#2 -word memoryRemapBlock::memoryPage -word memoryRemapBlock::memoryPage#0 -word memoryRemapBlock::memoryPage#1 -word memoryRemapBlock::memoryPage#2 -word memoryRemapBlock::pageOffset -word memoryRemapBlock::pageOffset#0 +bool main::$5 +bool main::$6 +number main::$7 +__constant char *main::BLOCK_4000 = (char *)$4000 +__constant char *main::BLOCK_8000 = (char *)$8000 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::i1#3 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 +char memoryRemap::$2 +number memoryRemap::$3 +number memoryRemap::$6 +char memoryRemap::$7 +number memoryRemap::$8 +__loadstore volatile char memoryRemap::aVal +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 +unsigned int memoryRemap::lowerPageOffset#1 +unsigned int memoryRemap::lowerPageOffset#2 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 +char memoryRemap::remapBlocks#1 +char memoryRemap::remapBlocks#2 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 +unsigned int memoryRemap::upperPageOffset#1 +unsigned int memoryRemap::upperPageOffset#2 +__loadstore volatile char memoryRemap::xVal +__loadstore volatile char memoryRemap::yVal +__loadstore volatile char memoryRemap::zVal +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) +unsigned long memoryRemap256M::$0 +number memoryRemap256M::$10 +char memoryRemap256M::$11 +number memoryRemap256M::$12 +unsigned long memoryRemap256M::$2 +char memoryRemap256M::$5 +char memoryRemap256M::$6 +number memoryRemap256M::$7 +__loadstore volatile char memoryRemap256M::aVal +__loadstore volatile char memoryRemap256M::lMb +unsigned long memoryRemap256M::lowerPageOffset +unsigned long memoryRemap256M::lowerPageOffset#0 +unsigned long memoryRemap256M::lowerPageOffset#1 +unsigned long memoryRemap256M::lowerPageOffset#2 +char memoryRemap256M::remapBlocks +char memoryRemap256M::remapBlocks#0 +char memoryRemap256M::remapBlocks#1 +char memoryRemap256M::remapBlocks#2 +__loadstore volatile char memoryRemap256M::uMb +unsigned long memoryRemap256M::upperPageOffset +unsigned long memoryRemap256M::upperPageOffset#0 +unsigned long memoryRemap256M::upperPageOffset#1 +unsigned long memoryRemap256M::upperPageOffset#2 +__loadstore volatile char memoryRemap256M::xVal +__loadstore volatile char memoryRemap256M::yVal +__loadstore volatile char memoryRemap256M::zVal +void memoryRemapBlock(char blockPage , unsigned int memoryPage) +char memoryRemapBlock::block +char memoryRemapBlock::block#0 +char memoryRemapBlock::blockBits +char memoryRemapBlock::blockBits#0 +char memoryRemapBlock::blockPage +char memoryRemapBlock::blockPage#0 +char memoryRemapBlock::blockPage#1 +char memoryRemapBlock::blockPage#2 +unsigned int memoryRemapBlock::memoryPage +unsigned int memoryRemapBlock::memoryPage#0 +unsigned int memoryRemapBlock::memoryPage#1 +unsigned int memoryRemapBlock::memoryPage#2 +unsigned int memoryRemapBlock::pageOffset +unsigned int memoryRemapBlock::pageOffset#0 Adding number conversion cast (unumber) 4 in memoryRemap::$1 = memoryRemap::remapBlocks#2 << 4 Adding number conversion cast (unumber) $f in memoryRemap::$3 = memoryRemap::$2 & $f @@ -313,9 +313,9 @@ Inlining cast memoryRemap256M::remapBlocks#1 = (unumber)0 Inlining cast memoryRemap256M::lowerPageOffset#1 = (unumber)0 Inlining cast memoryRemap256M::upperPageOffset#1 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 16384 -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 2048 +Simplifying constant pointer cast (char *) 16384 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $f0 @@ -352,49 +352,49 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $c0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $c0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in memoryRemap::$3 = memoryRemap::$2 & $f -Inferred type updated to byte in memoryRemap::$6 = memoryRemap::remapBlocks#2 & $f0 -Inferred type updated to byte in memoryRemap::$8 = memoryRemap::$7 & $f -Inferred type updated to byte in memoryRemap256M::$7 = memoryRemap256M::$6 & $f -Inferred type updated to byte in memoryRemap256M::$10 = memoryRemap256M::remapBlocks#2 & $f0 -Inferred type updated to byte in memoryRemap256M::$12 = memoryRemap256M::$11 & $f -Inferred type updated to byte in main::$7 = $40 + main::i1#3 +Inferred type updated to char in memoryRemap::$3 = memoryRemap::$2 & $f +Inferred type updated to char in memoryRemap::$6 = memoryRemap::remapBlocks#2 & $f0 +Inferred type updated to char in memoryRemap::$8 = memoryRemap::$7 & $f +Inferred type updated to char in memoryRemap256M::$7 = memoryRemap256M::$6 & $f +Inferred type updated to char in memoryRemap256M::$10 = memoryRemap256M::remapBlocks#2 & $f0 +Inferred type updated to char in memoryRemap256M::$12 = memoryRemap256M::$11 & $f +Inferred type updated to char in main::$7 = $40 + main::i1#3 Alias main::i#2 = main::i#3 Alias main::i1#2 = main::i1#3 Successful SSA optimization Pass2AliasElimination @@ -454,7 +454,7 @@ Constant inlined memoryRemap256M::upperPageOffset#0 = 0 Constant inlined memoryRemap::lowerPageOffset#1 = $c0 Constant inlined main::i#0 = 0 Constant inlined main::i1#0 = 0 -Constant inlined memoryRemap256M::lowerPageOffset#0 = (dword)$ff800-$40 +Constant inlined memoryRemap256M::lowerPageOffset#0 = (unsigned long)$ff800-$40 Constant inlined memoryRemap256M::lowerPageOffset#1 = 0 Constant inlined memoryRemap256M::remapBlocks#1 = 0 Constant inlined memoryRemap256M::remapBlocks#0 = MEMORYBLOCK_4000 @@ -477,11 +477,11 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant memoryRemap256M::$2 = 0>>4 Constant memoryRemap256M::$11 = byte1 0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)memoryRemap256M::$2 in [26] memoryRemap256M::uMb = byte1 (word)memoryRemap256M::$2 +Constant value identified (unsigned int)memoryRemap256M::$2 in [26] memoryRemap256M::uMb = byte1 (unsigned int)memoryRemap256M::$2 Successful SSA optimization Pass2ConstantValues Simplifying constant evaluating to zero 0>>4 in Simplifying constant evaluating to zero byte1 0 in -Simplifying constant evaluating to zero (word)memoryRemap256M::$2 in [26] memoryRemap256M::uMb = byte1 (word)memoryRemap256M::$2 +Simplifying constant evaluating to zero (unsigned int)memoryRemap256M::$2 in [26] memoryRemap256M::uMb = byte1 (unsigned int)memoryRemap256M::$2 Simplifying constant evaluating to zero byte0 0 in [32] memoryRemap256M::yVal = byte0 0 Successful SSA optimization PassNSimplifyConstantZero Eliminating unused constant memoryRemap256M::$2 @@ -501,10 +501,10 @@ Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant memoryRemap256M::$12 Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)memoryRemap256M::zVal = memoryRemap256M::$10 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (dword) $ff800 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned long) $ff800 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $ff800-$40 Successful SSA optimization PassNCastSimplification @@ -539,17 +539,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memoryRemapBlock + [1] call memoryRemapBlock to:main::@7 main::@7: scope:[main] from main [2] *main::BLOCK_4000 = '-' [3] *(main::BLOCK_4000+1) = '*' - [4] call memoryRemapBlock + [4] call memoryRemapBlock to:main::@8 main::@8: scope:[main] from main::@7 [5] *(main::BLOCK_8000+2) = '-' [6] *(main::BLOCK_8000+3) = '*' - [7] call memoryRemap + [7] call memoryRemap to:main::@9 main::@9: scope:[main] from main::@8 [8] *(main::BLOCK_8000+4) = *(main::BLOCK_4000+2) @@ -561,7 +561,7 @@ main::@1: scope:[main] from main::@2 main::@9 to:main::@3 main::@3: scope:[main] from main::@1 [12] phi() - [13] call memoryRemap256M + [13] call memoryRemap256M to:main::@4 main::@4: scope:[main] from main::@3 main::@5 [14] main::i1#2 = phi( main::@3/0, main::@5/main::i1#1 ) @@ -569,7 +569,7 @@ main::@4: scope:[main] from main::@3 main::@5 to:main::@6 main::@6: scope:[main] from main::@4 [16] phi() - [17] call memoryRemap256M + [17] call memoryRemap256M to:main::@return main::@return: scope:[main] from main::@6 [18] return @@ -584,7 +584,7 @@ main::@2: scope:[main] from main::@1 [23] main::i#1 = ++ main::i#2 to:main::@1 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) +void memoryRemapBlock(char blockPage , unsigned int memoryPage) memoryRemapBlock: scope:[memoryRemapBlock] from main main::@7 [24] memoryRemapBlock::blockPage#2 = phi( main/$40, main::@7/$80 ) [25] memoryRemapBlock::pageOffset#0 = $100 - memoryRemapBlock::blockPage#2 @@ -593,13 +593,13 @@ memoryRemapBlock: scope:[memoryRemapBlock] from main main::@7 [28] memoryRemap::remapBlocks#0 = memoryRemapBlock::blockBits#0 [29] memoryRemap::lowerPageOffset#0 = memoryRemapBlock::pageOffset#0 [30] memoryRemap::upperPageOffset#0 = memoryRemapBlock::pageOffset#0 - [31] call memoryRemap + [31] call memoryRemap to:memoryRemapBlock::@return memoryRemapBlock::@return: scope:[memoryRemapBlock] from memoryRemapBlock [32] return to:@return -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) memoryRemap: scope:[memoryRemap] from main::@8 memoryRemapBlock [33] memoryRemap::upperPageOffset#2 = phi( main::@8/$80, memoryRemapBlock/memoryRemap::upperPageOffset#0 ) [33] memoryRemap::remapBlocks#2 = phi( main::@8/MEMORYBLOCK_4000|MEMORYBLOCK_8000, memoryRemapBlock/memoryRemap::remapBlocks#0 ) @@ -620,12 +620,12 @@ memoryRemap::@return: scope:[memoryRemap] from memoryRemap [45] return to:@return -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) memoryRemap256M: scope:[memoryRemap256M] from main::@3 main::@6 [46] memoryRemap256M::remapBlocks#2 = phi( main::@3/MEMORYBLOCK_4000, main::@6/0 ) [46] memoryRemap256M::lowerPageOffset#2 = phi( main::@3/$ff800-$40, main::@6/0 ) [47] memoryRemap256M::$0 = memoryRemap256M::lowerPageOffset#2 >> 4 - [48] memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 + [48] memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 [49] memoryRemap256M::uMb = 0 [50] memoryRemap256M::aVal = byte0 memoryRemap256M::lowerPageOffset#2 [51] memoryRemap256M::$5 = memoryRemap256M::remapBlocks#2 << 4 @@ -644,60 +644,60 @@ memoryRemap256M::@return: scope:[memoryRemap256M] from memoryRemap256M VARIABLE REGISTER WEIGHTS void main() -byte~ main::$7 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 -byte main::i1 -byte main::i1#1 22.0 -byte main::i1#2 13.75 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 67.33333333333333 -byte~ memoryRemap::$2 202.0 -byte~ memoryRemap::$3 202.0 -byte~ memoryRemap::$6 67.33333333333333 -byte~ memoryRemap::$7 202.0 -byte~ memoryRemap::$8 202.0 -volatile byte memoryRemap::aVal loadstore 10.1 -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 11.0 -word memoryRemap::lowerPageOffset#2 71.0 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 7.333333333333333 -byte memoryRemap::remapBlocks#2 30.42857142857143 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 22.0 -word memoryRemap::upperPageOffset#2 26.625 -volatile byte memoryRemap::xVal loadstore 16.833333333333332 -volatile byte memoryRemap::yVal loadstore 20.2 -volatile byte memoryRemap::zVal loadstore 101.0 -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) -dword~ memoryRemap256M::$0 11.0 -byte~ memoryRemap256M::$10 22.0 -byte~ memoryRemap256M::$5 7.333333333333333 -byte~ memoryRemap256M::$6 22.0 -byte~ memoryRemap256M::$7 22.0 -volatile byte memoryRemap256M::aVal loadstore 1.375 -volatile byte memoryRemap256M::lMb loadstore 1.1 -dword memoryRemap256M::lowerPageOffset -dword memoryRemap256M::lowerPageOffset#2 5.5 -byte memoryRemap256M::remapBlocks -byte memoryRemap256M::remapBlocks#2 2.2 -volatile byte memoryRemap256M::uMb loadstore 1.2222222222222223 -dword memoryRemap256M::upperPageOffset -volatile byte memoryRemap256M::xVal loadstore 2.75 -volatile byte memoryRemap256M::yVal loadstore 3.6666666666666665 -volatile byte memoryRemap256M::zVal loadstore 11.0 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -byte memoryRemapBlock::block#0 22.0 -byte memoryRemapBlock::blockBits -byte memoryRemapBlock::blockBits#0 22.0 -byte memoryRemapBlock::blockPage -byte memoryRemapBlock::blockPage#2 11.0 -word memoryRemapBlock::memoryPage -word memoryRemapBlock::pageOffset -word memoryRemapBlock::pageOffset#0 6.6000000000000005 +char main::$7 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 +char main::i1 +char main::i1#1 // 22.0 +char main::i1#2 // 13.75 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 // 67.33333333333333 +char memoryRemap::$2 // 202.0 +char memoryRemap::$3 // 202.0 +char memoryRemap::$6 // 67.33333333333333 +char memoryRemap::$7 // 202.0 +char memoryRemap::$8 // 202.0 +__loadstore volatile char memoryRemap::aVal // 10.1 +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 // 11.0 +unsigned int memoryRemap::lowerPageOffset#2 // 71.0 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 // 7.333333333333333 +char memoryRemap::remapBlocks#2 // 30.42857142857143 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 // 22.0 +unsigned int memoryRemap::upperPageOffset#2 // 26.625 +__loadstore volatile char memoryRemap::xVal // 16.833333333333332 +__loadstore volatile char memoryRemap::yVal // 20.2 +__loadstore volatile char memoryRemap::zVal // 101.0 +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) +unsigned long memoryRemap256M::$0 // 11.0 +char memoryRemap256M::$10 // 22.0 +char memoryRemap256M::$5 // 7.333333333333333 +char memoryRemap256M::$6 // 22.0 +char memoryRemap256M::$7 // 22.0 +__loadstore volatile char memoryRemap256M::aVal // 1.375 +__loadstore volatile char memoryRemap256M::lMb // 1.1 +unsigned long memoryRemap256M::lowerPageOffset +unsigned long memoryRemap256M::lowerPageOffset#2 // 5.5 +char memoryRemap256M::remapBlocks +char memoryRemap256M::remapBlocks#2 // 2.2 +__loadstore volatile char memoryRemap256M::uMb // 1.2222222222222223 +unsigned long memoryRemap256M::upperPageOffset +__loadstore volatile char memoryRemap256M::xVal // 2.75 +__loadstore volatile char memoryRemap256M::yVal // 3.6666666666666665 +__loadstore volatile char memoryRemap256M::zVal // 11.0 +void memoryRemapBlock(char blockPage , unsigned int memoryPage) +char memoryRemapBlock::block +char memoryRemapBlock::block#0 // 22.0 +char memoryRemapBlock::blockBits +char memoryRemapBlock::blockBits#0 // 22.0 +char memoryRemapBlock::blockPage +char memoryRemapBlock::blockPage#2 // 11.0 +unsigned int memoryRemapBlock::memoryPage +unsigned int memoryRemapBlock::pageOffset +unsigned int memoryRemapBlock::pageOffset#0 // 6.6000000000000005 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -829,7 +829,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:26 [ memory Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [47] memoryRemap256M::$0 = memoryRemap256M::lowerPageOffset#2 >> 4 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::$0 ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::$0 ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:14 [ memoryRemap256M::remapBlocks#2 ] -Statement [48] memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } ) always clobbers reg byte a +Statement [48] memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } ) always clobbers reg byte a Statement [49] memoryRemap256M::uMb = 0 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb ] { } ) always clobbers reg byte a Statement [50] memoryRemap256M::aVal = byte0 memoryRemap256M::lowerPageOffset#2 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal ] { } ) always clobbers reg byte a Statement [51] memoryRemap256M::$5 = memoryRemap256M::remapBlocks#2 << 4 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal memoryRemap256M::$5 ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal memoryRemap256M::$5 ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal memoryRemap256M::$5 ] { } ) always clobbers reg byte a @@ -859,7 +859,7 @@ Statement [40] memoryRemap::$6 = memoryRemap::remapBlocks#2 & $f0 [ memoryRemap: Statement [42] memoryRemap::$8 = memoryRemap::$7 & $f [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] ( memoryRemap:7 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { } memoryRemapBlock:1::memoryRemap:31 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { { memoryRemap::remapBlocks#0 = memoryRemap::remapBlocks#2 memoryRemapBlock::blockBits#0 } { memoryRemap::upperPageOffset#0 = memoryRemap::upperPageOffset#2 memoryRemap::lowerPageOffset#2 memoryRemap::lowerPageOffset#0 memoryRemapBlock::pageOffset#0 } } memoryRemapBlock:4::memoryRemap:31 [ memoryRemap::aVal memoryRemap::xVal memoryRemap::yVal memoryRemap::$6 memoryRemap::$8 ] { { memoryRemap::remapBlocks#0 = memoryRemap::remapBlocks#2 memoryRemapBlock::blockBits#0 } { memoryRemap::upperPageOffset#0 = memoryRemap::upperPageOffset#2 memoryRemap::lowerPageOffset#2 memoryRemap::lowerPageOffset#0 memoryRemapBlock::pageOffset#0 } } ) always clobbers reg byte a Statement asm { ldaaVal ldxxVal ldyyVal ldzzVal map eom } always clobbers reg byte a reg byte x reg byte y reg byte z Statement [47] memoryRemap256M::$0 = memoryRemap256M::lowerPageOffset#2 >> 4 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::$0 ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::$0 ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::$0 ] { } ) always clobbers reg byte a -Statement [48] memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } ) always clobbers reg byte a +Statement [48] memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb ] { } ) always clobbers reg byte a Statement [49] memoryRemap256M::uMb = 0 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb ] { } ) always clobbers reg byte a Statement [50] memoryRemap256M::aVal = byte0 memoryRemap256M::lowerPageOffset#2 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal ] { } ) always clobbers reg byte a Statement [51] memoryRemap256M::$5 = memoryRemap256M::remapBlocks#2 << 4 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal memoryRemap256M::$5 ] ( memoryRemap256M:13 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal memoryRemap256M::$5 ] { } memoryRemap256M:17 [ memoryRemap256M::lowerPageOffset#2 memoryRemap256M::remapBlocks#2 memoryRemap256M::lMb memoryRemap256M::uMb memoryRemap256M::aVal memoryRemap256M::$5 ] { } ) always clobbers reg byte a @@ -1018,7 +1018,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label BLOCK_4000 = $4000 .label BLOCK_8000 = $8000 - // [1] call memoryRemapBlock + // [1] call memoryRemapBlock // Remap [$4000-$5fff] to point to [$10000-$11fff] // [24] phi from main to memoryRemapBlock [phi:main->memoryRemapBlock] memoryRemapBlock_from_main: @@ -1035,7 +1035,7 @@ main: { // [3] *(main::BLOCK_4000+1) = '*' -- _deref_pbuc1=vbuc2 lda #'*' sta BLOCK_4000+1 - // [4] call memoryRemapBlock + // [4] call memoryRemapBlock // Remap [$8000-$9fff] to point to [$10000-$11fff] // [24] phi from main::@7 to memoryRemapBlock [phi:main::@7->memoryRemapBlock] memoryRemapBlock_from___b7: @@ -1052,7 +1052,7 @@ main: { // [6] *(main::BLOCK_8000+3) = '*' -- _deref_pbuc1=vbuc2 lda #'*' sta BLOCK_8000+3 - // [7] call memoryRemap + // [7] call memoryRemap // Remap [$4000-$5fff] and [$8000-$9fff] to both point to [$10000-$11fff] (notice usage of page offsets) // [33] phi from main::@8 to memoryRemap [phi:main::@8->memoryRemap] memoryRemap_from___b8: @@ -1095,7 +1095,7 @@ main: { jmp __b3 // main::@3 __b3: - // [13] call memoryRemap256M + // [13] call memoryRemap256M // Remap [$4000-$5fff] to point to [$ff80000-$ff81fff] COLORRAM! (notice usage of page offsets) // [46] phi from main::@3 to memoryRemap256M [phi:main::@3->memoryRemap256M] memoryRemap256M_from___b3: @@ -1127,7 +1127,7 @@ main: { jmp __b6 // main::@6 __b6: - // [17] call memoryRemap256M + // [17] call memoryRemap256M // Remap [$4000-$5fff] back to normal memory! // [46] phi from main::@6 to memoryRemap256M [phi:main::@6->memoryRemap256M] memoryRemap256M_from___b6: @@ -1178,7 +1178,7 @@ main: { // blockPage: Page address of the 8K memory block to remap (ie. the block that is remapped is $100 * the passed page address.) // memoryPage: Page address of the memory that the block should point to in the 1MB memory space of the MEGA65. // Ie. the memory that will be pointed to is $100 * the passed page address. Only the lower 12bits of the passed value is used. -// memoryRemapBlock(byte register(X) blockPage) +// void memoryRemapBlock(__register(X) char blockPage, unsigned int memoryPage) memoryRemapBlock: { .label pageOffset = 2 // [25] memoryRemapBlock::pageOffset#0 = $100 - memoryRemapBlock::blockPage#2 -- vwuz1=vwuc1_minus_vbuxx @@ -1217,7 +1217,7 @@ memoryRemapBlock: { sta.z memoryRemap.upperPageOffset lda.z pageOffset+1 sta.z memoryRemap.upperPageOffset+1 - // [31] call memoryRemap + // [31] call memoryRemap // [33] phi from memoryRemapBlock to memoryRemap [phi:memoryRemapBlock->memoryRemap] memoryRemap_from_memoryRemapBlock: // [33] phi memoryRemap::upperPageOffset#2 = memoryRemap::upperPageOffset#0 [phi:memoryRemapBlock->memoryRemap#0] -- register_copy @@ -1255,7 +1255,7 @@ memoryRemapBlock: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap(byte register(Z) remapBlocks, word zp(2) lowerPageOffset, word zp(4) upperPageOffset) +// void memoryRemap(__register(Z) char remapBlocks, __zp(2) unsigned int lowerPageOffset, __zp(4) unsigned int upperPageOffset) memoryRemap: { .label aVal = $a .label xVal = $b @@ -1339,7 +1339,7 @@ memoryRemap: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap256M(byte register(Z) remapBlocks, dword zp(6) lowerPageOffset) +// void memoryRemap256M(__register(Z) char remapBlocks, __zp(6) unsigned long lowerPageOffset, unsigned long upperPageOffset) memoryRemap256M: { .label lMb = $13 .label __0 = $f @@ -1375,7 +1375,7 @@ memoryRemap256M: { ror.z __0+2 ror.z __0+1 ror.z __0 - // [48] memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 -- vbuz1=_byte1__word_vduz2 + // [48] memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 -- vbuz1=_byte1__word_vduz2 // lower blocks offset megabytes lda.z __0+1 sta.z lMb @@ -1472,66 +1472,66 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant const byte MEMORYBLOCK_4000 = 4 -constant const byte MEMORYBLOCK_8000 = $10 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant const char MEMORYBLOCK_4000 = 4 +__constant const char MEMORYBLOCK_8000 = $10 void main() -byte~ main::$7 reg byte a 22.0 -constant byte* main::BLOCK_4000 = (byte*) 16384 -constant byte* main::BLOCK_8000 = (byte*) 32768 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#2 reg byte x 13.75 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 zp[1]:22 67.33333333333333 -byte~ memoryRemap::$2 reg byte a 202.0 -byte~ memoryRemap::$3 reg byte a 202.0 -byte~ memoryRemap::$6 zp[1]:13 67.33333333333333 -byte~ memoryRemap::$7 reg byte a 202.0 -byte~ memoryRemap::$8 reg byte a 202.0 -volatile byte memoryRemap::aVal loadstore zp[1]:10 10.1 -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 lowerPageOffset zp[2]:2 11.0 -word memoryRemap::lowerPageOffset#2 lowerPageOffset zp[2]:2 71.0 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 reg byte z 7.333333333333333 -byte memoryRemap::remapBlocks#2 reg byte z 30.42857142857143 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 upperPageOffset zp[2]:4 22.0 -word memoryRemap::upperPageOffset#2 upperPageOffset zp[2]:4 26.625 -volatile byte memoryRemap::xVal loadstore zp[1]:11 16.833333333333332 -volatile byte memoryRemap::yVal loadstore zp[1]:12 20.2 -volatile byte memoryRemap::zVal loadstore zp[1]:14 101.0 -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) -dword~ memoryRemap256M::$0 zp[4]:15 11.0 -byte~ memoryRemap256M::$10 reg byte a 22.0 -byte~ memoryRemap256M::$5 zp[1]:22 7.333333333333333 -byte~ memoryRemap256M::$6 reg byte a 22.0 -byte~ memoryRemap256M::$7 reg byte a 22.0 -volatile byte memoryRemap256M::aVal loadstore zp[1]:21 1.375 -volatile byte memoryRemap256M::lMb loadstore zp[1]:19 1.1 -dword memoryRemap256M::lowerPageOffset -dword memoryRemap256M::lowerPageOffset#2 lowerPageOffset zp[4]:6 5.5 -byte memoryRemap256M::remapBlocks -byte memoryRemap256M::remapBlocks#2 reg byte z 2.2 -volatile byte memoryRemap256M::uMb loadstore zp[1]:20 1.2222222222222223 -dword memoryRemap256M::upperPageOffset -volatile byte memoryRemap256M::xVal loadstore zp[1]:23 2.75 -volatile byte memoryRemap256M::yVal loadstore zp[1]:24 3.6666666666666665 -volatile byte memoryRemap256M::zVal loadstore zp[1]:25 11.0 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -byte memoryRemapBlock::block#0 reg byte a 22.0 -byte memoryRemapBlock::blockBits -byte memoryRemapBlock::blockBits#0 reg byte a 22.0 -byte memoryRemapBlock::blockPage -byte memoryRemapBlock::blockPage#2 reg byte x 11.0 -word memoryRemapBlock::memoryPage -word memoryRemapBlock::pageOffset -word memoryRemapBlock::pageOffset#0 pageOffset zp[2]:2 6.6000000000000005 +char main::$7 // reg byte a 22.0 +__constant char *main::BLOCK_4000 = (char *) 16384 +__constant char *main::BLOCK_8000 = (char *) 32768 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#2 // reg byte x 13.75 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 // zp[1]:22 67.33333333333333 +char memoryRemap::$2 // reg byte a 202.0 +char memoryRemap::$3 // reg byte a 202.0 +char memoryRemap::$6 // zp[1]:13 67.33333333333333 +char memoryRemap::$7 // reg byte a 202.0 +char memoryRemap::$8 // reg byte a 202.0 +__loadstore volatile char memoryRemap::aVal // zp[1]:10 10.1 +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 // lowerPageOffset zp[2]:2 11.0 +unsigned int memoryRemap::lowerPageOffset#2 // lowerPageOffset zp[2]:2 71.0 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 // reg byte z 7.333333333333333 +char memoryRemap::remapBlocks#2 // reg byte z 30.42857142857143 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 // upperPageOffset zp[2]:4 22.0 +unsigned int memoryRemap::upperPageOffset#2 // upperPageOffset zp[2]:4 26.625 +__loadstore volatile char memoryRemap::xVal // zp[1]:11 16.833333333333332 +__loadstore volatile char memoryRemap::yVal // zp[1]:12 20.2 +__loadstore volatile char memoryRemap::zVal // zp[1]:14 101.0 +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) +unsigned long memoryRemap256M::$0 // zp[4]:15 11.0 +char memoryRemap256M::$10 // reg byte a 22.0 +char memoryRemap256M::$5 // zp[1]:22 7.333333333333333 +char memoryRemap256M::$6 // reg byte a 22.0 +char memoryRemap256M::$7 // reg byte a 22.0 +__loadstore volatile char memoryRemap256M::aVal // zp[1]:21 1.375 +__loadstore volatile char memoryRemap256M::lMb // zp[1]:19 1.1 +unsigned long memoryRemap256M::lowerPageOffset +unsigned long memoryRemap256M::lowerPageOffset#2 // lowerPageOffset zp[4]:6 5.5 +char memoryRemap256M::remapBlocks +char memoryRemap256M::remapBlocks#2 // reg byte z 2.2 +__loadstore volatile char memoryRemap256M::uMb // zp[1]:20 1.2222222222222223 +unsigned long memoryRemap256M::upperPageOffset +__loadstore volatile char memoryRemap256M::xVal // zp[1]:23 2.75 +__loadstore volatile char memoryRemap256M::yVal // zp[1]:24 3.6666666666666665 +__loadstore volatile char memoryRemap256M::zVal // zp[1]:25 11.0 +void memoryRemapBlock(char blockPage , unsigned int memoryPage) +char memoryRemapBlock::block +char memoryRemapBlock::block#0 // reg byte a 22.0 +char memoryRemapBlock::blockBits +char memoryRemapBlock::blockBits#0 // reg byte a 22.0 +char memoryRemapBlock::blockPage +char memoryRemapBlock::blockPage#2 // reg byte x 11.0 +unsigned int memoryRemapBlock::memoryPage +unsigned int memoryRemapBlock::pageOffset +unsigned int memoryRemapBlock::pageOffset#0 // pageOffset zp[2]:2 6.6000000000000005 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] @@ -1605,7 +1605,7 @@ main: { .label BLOCK_4000 = $4000 .label BLOCK_8000 = $8000 // memoryRemapBlock(0x40, 0x100) - // [1] call memoryRemapBlock + // [1] call memoryRemapBlock // Remap [$4000-$5fff] to point to [$10000-$11fff] // [24] phi from main to memoryRemapBlock [phi:main->memoryRemapBlock] // [24] phi memoryRemapBlock::blockPage#2 = $40 [phi:main->memoryRemapBlock#0] -- vbuxx=vbuc1 @@ -1622,7 +1622,7 @@ main: { lda #'*' sta BLOCK_4000+1 // memoryRemapBlock(0x80, 0x100) - // [4] call memoryRemapBlock + // [4] call memoryRemapBlock // Remap [$8000-$9fff] to point to [$10000-$11fff] // [24] phi from main::@7 to memoryRemapBlock [phi:main::@7->memoryRemapBlock] // [24] phi memoryRemapBlock::blockPage#2 = $80 [phi:main::@7->memoryRemapBlock#0] -- vbuxx=vbuc1 @@ -1639,7 +1639,7 @@ main: { lda #'*' sta BLOCK_8000+3 // memoryRemap(MEMORYBLOCK_4000|MEMORYBLOCK_8000, 0x0c0, 0x080) - // [7] call memoryRemap + // [7] call memoryRemap // Remap [$4000-$5fff] and [$8000-$9fff] to both point to [$10000-$11fff] (notice usage of page offsets) // [33] phi from main::@8 to memoryRemap [phi:main::@8->memoryRemap] // [33] phi memoryRemap::upperPageOffset#2 = $80 [phi:main::@8->memoryRemap#0] -- vwuz1=vbuc1 @@ -1678,7 +1678,7 @@ main: { // [12] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // main::@3 // memoryRemap256M(MEMORYBLOCK_4000, 0xff800-0x00040, 0) - // [13] call memoryRemap256M + // [13] call memoryRemap256M // Remap [$4000-$5fff] to point to [$ff80000-$ff81fff] COLORRAM! (notice usage of page offsets) // [46] phi from main::@3 to memoryRemap256M [phi:main::@3->memoryRemap256M] // [46] phi memoryRemap256M::remapBlocks#2 = MEMORYBLOCK_4000 [phi:main::@3->memoryRemap256M#0] -- vbuzz=vbuc1 @@ -1706,7 +1706,7 @@ main: { // [16] phi from main::@4 to main::@6 [phi:main::@4->main::@6] // main::@6 // memoryRemap256M(0, 0, 0) - // [17] call memoryRemap256M + // [17] call memoryRemap256M // Remap [$4000-$5fff] back to normal memory! // [46] phi from main::@6 to memoryRemap256M [phi:main::@6->memoryRemap256M] // [46] phi memoryRemap256M::remapBlocks#2 = 0 [phi:main::@6->memoryRemap256M#0] -- vbuzz=vbuc1 @@ -1757,7 +1757,7 @@ main: { // blockPage: Page address of the 8K memory block to remap (ie. the block that is remapped is $100 * the passed page address.) // memoryPage: Page address of the memory that the block should point to in the 1MB memory space of the MEGA65. // Ie. the memory that will be pointed to is $100 * the passed page address. Only the lower 12bits of the passed value is used. -// memoryRemapBlock(byte register(X) blockPage) +// void memoryRemapBlock(__register(X) char blockPage, unsigned int memoryPage) memoryRemapBlock: { .label pageOffset = 2 // unsigned int pageOffset = memoryPage-blockPage @@ -1800,7 +1800,7 @@ memoryRemapBlock: { sta.z memoryRemap.upperPageOffset lda.z pageOffset+1 sta.z memoryRemap.upperPageOffset+1 - // [31] call memoryRemap + // [31] call memoryRemap // [33] phi from memoryRemapBlock to memoryRemap [phi:memoryRemapBlock->memoryRemap] // [33] phi memoryRemap::upperPageOffset#2 = memoryRemap::upperPageOffset#0 [phi:memoryRemapBlock->memoryRemap#0] -- register_copy // [33] phi memoryRemap::remapBlocks#2 = memoryRemap::remapBlocks#0 [phi:memoryRemapBlock->memoryRemap#1] -- register_copy @@ -1836,7 +1836,7 @@ memoryRemapBlock: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap(byte register(Z) remapBlocks, word zp(2) lowerPageOffset, word zp(4) upperPageOffset) +// void memoryRemap(__register(Z) char remapBlocks, __zp(2) unsigned int lowerPageOffset, __zp(4) unsigned int upperPageOffset) memoryRemap: { .label aVal = $a .label xVal = $b @@ -1930,7 +1930,7 @@ memoryRemap: { // - If block 5 ($a000-$bfff) is remapped it will point to upperPageOffset*$100 + $a000. // - If block 6 ($c000-$dfff) is remapped it will point to upperPageOffset*$100 + $c000. // - If block 7 ($e000-$ffff) is remapped it will point to upperPageOffset*$100 + $e000. -// memoryRemap256M(byte register(Z) remapBlocks, dword zp(6) lowerPageOffset) +// void memoryRemap256M(__register(Z) char remapBlocks, __zp(6) unsigned long lowerPageOffset, unsigned long upperPageOffset) memoryRemap256M: { .label lMb = $13 .label __0 = $f @@ -1968,7 +1968,7 @@ memoryRemap256M: { ror.z __0+1 ror.z __0 // char lMb = BYTE1((unsigned int)(lowerPageOffset>>4)) - // [48] memoryRemap256M::lMb = byte1 (word)memoryRemap256M::$0 -- vbuz1=_byte1__word_vduz2 + // [48] memoryRemap256M::lMb = byte1 (unsigned int)memoryRemap256M::$0 -- vbuz1=_byte1__word_vduz2 // lower blocks offset megabytes lda.z __0+1 sta.z lMb diff --git a/src/test/ref/examples/mega65/memorymap-test.sym b/src/test/ref/examples/mega65/memorymap-test.sym index 6efe69f1e..8f3689f93 100644 --- a/src/test/ref/examples/mega65/memorymap-test.sym +++ b/src/test/ref/examples/mega65/memorymap-test.sym @@ -1,63 +1,63 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 2048 -constant const byte MEMORYBLOCK_4000 = 4 -constant const byte MEMORYBLOCK_8000 = $10 +__constant char * const DEFAULT_SCREEN = (char *) 2048 +__constant const char MEMORYBLOCK_4000 = 4 +__constant const char MEMORYBLOCK_8000 = $10 void main() -byte~ main::$7 reg byte a 22.0 -constant byte* main::BLOCK_4000 = (byte*) 16384 -constant byte* main::BLOCK_8000 = (byte*) 32768 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#2 reg byte x 13.75 -void memoryRemap(byte memoryRemap::remapBlocks , word memoryRemap::lowerPageOffset , word memoryRemap::upperPageOffset) -byte~ memoryRemap::$1 zp[1]:22 67.33333333333333 -byte~ memoryRemap::$2 reg byte a 202.0 -byte~ memoryRemap::$3 reg byte a 202.0 -byte~ memoryRemap::$6 zp[1]:13 67.33333333333333 -byte~ memoryRemap::$7 reg byte a 202.0 -byte~ memoryRemap::$8 reg byte a 202.0 -volatile byte memoryRemap::aVal loadstore zp[1]:10 10.1 -word memoryRemap::lowerPageOffset -word memoryRemap::lowerPageOffset#0 lowerPageOffset zp[2]:2 11.0 -word memoryRemap::lowerPageOffset#2 lowerPageOffset zp[2]:2 71.0 -byte memoryRemap::remapBlocks -byte memoryRemap::remapBlocks#0 reg byte z 7.333333333333333 -byte memoryRemap::remapBlocks#2 reg byte z 30.42857142857143 -word memoryRemap::upperPageOffset -word memoryRemap::upperPageOffset#0 upperPageOffset zp[2]:4 22.0 -word memoryRemap::upperPageOffset#2 upperPageOffset zp[2]:4 26.625 -volatile byte memoryRemap::xVal loadstore zp[1]:11 16.833333333333332 -volatile byte memoryRemap::yVal loadstore zp[1]:12 20.2 -volatile byte memoryRemap::zVal loadstore zp[1]:14 101.0 -void memoryRemap256M(byte memoryRemap256M::remapBlocks , dword memoryRemap256M::lowerPageOffset , dword memoryRemap256M::upperPageOffset) -dword~ memoryRemap256M::$0 zp[4]:15 11.0 -byte~ memoryRemap256M::$10 reg byte a 22.0 -byte~ memoryRemap256M::$5 zp[1]:22 7.333333333333333 -byte~ memoryRemap256M::$6 reg byte a 22.0 -byte~ memoryRemap256M::$7 reg byte a 22.0 -volatile byte memoryRemap256M::aVal loadstore zp[1]:21 1.375 -volatile byte memoryRemap256M::lMb loadstore zp[1]:19 1.1 -dword memoryRemap256M::lowerPageOffset -dword memoryRemap256M::lowerPageOffset#2 lowerPageOffset zp[4]:6 5.5 -byte memoryRemap256M::remapBlocks -byte memoryRemap256M::remapBlocks#2 reg byte z 2.2 -volatile byte memoryRemap256M::uMb loadstore zp[1]:20 1.2222222222222223 -dword memoryRemap256M::upperPageOffset -volatile byte memoryRemap256M::xVal loadstore zp[1]:23 2.75 -volatile byte memoryRemap256M::yVal loadstore zp[1]:24 3.6666666666666665 -volatile byte memoryRemap256M::zVal loadstore zp[1]:25 11.0 -void memoryRemapBlock(byte memoryRemapBlock::blockPage , word memoryRemapBlock::memoryPage) -byte memoryRemapBlock::block -byte memoryRemapBlock::block#0 reg byte a 22.0 -byte memoryRemapBlock::blockBits -byte memoryRemapBlock::blockBits#0 reg byte a 22.0 -byte memoryRemapBlock::blockPage -byte memoryRemapBlock::blockPage#2 reg byte x 11.0 -word memoryRemapBlock::memoryPage -word memoryRemapBlock::pageOffset -word memoryRemapBlock::pageOffset#0 pageOffset zp[2]:2 6.6000000000000005 +char main::$7 // reg byte a 22.0 +__constant char *main::BLOCK_4000 = (char *) 16384 +__constant char *main::BLOCK_8000 = (char *) 32768 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#2 // reg byte x 13.75 +void memoryRemap(char remapBlocks , unsigned int lowerPageOffset , unsigned int upperPageOffset) +char memoryRemap::$1 // zp[1]:22 67.33333333333333 +char memoryRemap::$2 // reg byte a 202.0 +char memoryRemap::$3 // reg byte a 202.0 +char memoryRemap::$6 // zp[1]:13 67.33333333333333 +char memoryRemap::$7 // reg byte a 202.0 +char memoryRemap::$8 // reg byte a 202.0 +__loadstore volatile char memoryRemap::aVal // zp[1]:10 10.1 +unsigned int memoryRemap::lowerPageOffset +unsigned int memoryRemap::lowerPageOffset#0 // lowerPageOffset zp[2]:2 11.0 +unsigned int memoryRemap::lowerPageOffset#2 // lowerPageOffset zp[2]:2 71.0 +char memoryRemap::remapBlocks +char memoryRemap::remapBlocks#0 // reg byte z 7.333333333333333 +char memoryRemap::remapBlocks#2 // reg byte z 30.42857142857143 +unsigned int memoryRemap::upperPageOffset +unsigned int memoryRemap::upperPageOffset#0 // upperPageOffset zp[2]:4 22.0 +unsigned int memoryRemap::upperPageOffset#2 // upperPageOffset zp[2]:4 26.625 +__loadstore volatile char memoryRemap::xVal // zp[1]:11 16.833333333333332 +__loadstore volatile char memoryRemap::yVal // zp[1]:12 20.2 +__loadstore volatile char memoryRemap::zVal // zp[1]:14 101.0 +void memoryRemap256M(char remapBlocks , unsigned long lowerPageOffset , unsigned long upperPageOffset) +unsigned long memoryRemap256M::$0 // zp[4]:15 11.0 +char memoryRemap256M::$10 // reg byte a 22.0 +char memoryRemap256M::$5 // zp[1]:22 7.333333333333333 +char memoryRemap256M::$6 // reg byte a 22.0 +char memoryRemap256M::$7 // reg byte a 22.0 +__loadstore volatile char memoryRemap256M::aVal // zp[1]:21 1.375 +__loadstore volatile char memoryRemap256M::lMb // zp[1]:19 1.1 +unsigned long memoryRemap256M::lowerPageOffset +unsigned long memoryRemap256M::lowerPageOffset#2 // lowerPageOffset zp[4]:6 5.5 +char memoryRemap256M::remapBlocks +char memoryRemap256M::remapBlocks#2 // reg byte z 2.2 +__loadstore volatile char memoryRemap256M::uMb // zp[1]:20 1.2222222222222223 +unsigned long memoryRemap256M::upperPageOffset +__loadstore volatile char memoryRemap256M::xVal // zp[1]:23 2.75 +__loadstore volatile char memoryRemap256M::yVal // zp[1]:24 3.6666666666666665 +__loadstore volatile char memoryRemap256M::zVal // zp[1]:25 11.0 +void memoryRemapBlock(char blockPage , unsigned int memoryPage) +char memoryRemapBlock::block +char memoryRemapBlock::block#0 // reg byte a 22.0 +char memoryRemapBlock::blockBits +char memoryRemapBlock::blockBits#0 // reg byte a 22.0 +char memoryRemapBlock::blockPage +char memoryRemapBlock::blockPage#2 // reg byte x 11.0 +unsigned int memoryRemapBlock::memoryPage +unsigned int memoryRemapBlock::pageOffset +unsigned int memoryRemapBlock::pageOffset#0 // pageOffset zp[2]:2 6.6000000000000005 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/examples/mega65/raster65.asm b/src/test/ref/examples/mega65/raster65.asm index 7588a7132..4e4d481f1 100644 --- a/src/test/ref/examples/mega65/raster65.asm +++ b/src/test/ref/examples/mega65/raster65.asm @@ -62,7 +62,7 @@ .const OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21 .const OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c .const OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// Processor port data direction register .label PROCPORT_DDR = 0 /// Processor Port Register controlling RAM/ROM configuration and the datasette @@ -477,7 +477,7 @@ main: { // Put MEGA logo on screen __b2: // for( char i=0; i 0 -Adding number conversion cast (unumber) $47 in *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -Adding number conversion cast (unumber) $53 in *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -Adding number conversion cast (unumber) $40 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -Adding number conversion cast (unumber) $40 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 +Adding number conversion cast (unumber) $47 in *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 +Adding number conversion cast (unumber) $53 in *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 +Adding number conversion cast (unumber) $40 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 +Adding number conversion cast (unumber) $40 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 Adding number conversion cast (unumber) $28*$19 in memset::num#0 = $28*$19 Adding number conversion cast (unumber) LOGO_ROW*$28 in (SCREEN+LOGO_ROW*$28)[main::i1#3] = MEGA_LOGO[main::i1#3] Adding number conversion cast (unumber) $28 in (SCREEN+(unumber)LOGO_ROW*$28)[main::i1#3] = MEGA_LOGO[main::i1#3] @@ -751,13 +751,13 @@ Adding number conversion cast (unumber) $28 in main::$4 = main::i2#2 < $28 Adding number conversion cast (unumber) GREET_ROW*$28 in (SCREEN+GREET_ROW*$28)[main::i2#3] = '*' Adding number conversion cast (unumber) $28 in (SCREEN+(unumber)GREET_ROW*$28)[main::i2#3] = '*' Adding number conversion cast (unumber) 0 in main::$5 = main::i#1 != 0 -Adding number conversion cast (unumber) $7f in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -Adding number conversion cast (unumber) 1 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -Adding number conversion cast (unumber) $80 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) | $80 -Adding number conversion cast (unumber) 0 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 0 -Adding number conversion cast (unumber) $66 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = $66 -Adding number conversion cast (unumber) $50 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -Adding number conversion cast (unumber) $50 in *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 +Adding number conversion cast (unumber) $7f in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f +Adding number conversion cast (unumber) 1 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 +Adding number conversion cast (unumber) $80 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) | $80 +Adding number conversion cast (unumber) 0 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 0 +Adding number conversion cast (unumber) $66 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = $66 +Adding number conversion cast (unumber) $50 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 +Adding number conversion cast (unumber) $50 in *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 Adding number conversion cast (unumber) SCROLL_Y+SCROLL_BLACKBARS+1 in irq::$8 = irq::line#6 == SCROLL_Y+SCROLL_BLACKBARS+1 Adding number conversion cast (unumber) 1 in irq::$8 = irq::line#6 == (unumber)SCROLL_Y+SCROLL_BLACKBARS+1 Adding number conversion cast (unumber) 1 in irq::$10 = irq::zoomval#0 + 1 @@ -828,31 +828,31 @@ Adding number conversion cast (unumber) $27 in *(SCREEN+SCROLL_ROW*$28+$27) = ir Adding number conversion cast (unumber) SCROLL_ROW*$28 in *(SCREEN+SCROLL_ROW*$28+(unumber)$27) = irq::$33 Adding number conversion cast (unumber) $28 in *(SCREEN+(unumber)SCROLL_ROW*$28+(unumber)$27) = irq::$33 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#2 -Inlining cast *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$47 -Inlining cast *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$53 +Inlining cast memset::dst#0 = (char *)memset::str#2 +Inlining cast *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$47 +Inlining cast *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = (unumber)$53 Inlining cast memset::num#0 = (unumber)$28*$19 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = (unumber)1 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = (unumber)0 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = (unumber)$66 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = (unumber)$50 -Inlining cast *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = (unumber)$50 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = (unumber)1 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = (unumber)0 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = (unumber)$66 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = (unumber)$50 +Inlining cast *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = (unumber)$50 Inlining cast greet_idx = (unumber)0 Inlining cast rasters[irq::l#3] = (unumber)0 Inlining cast scroll_soft = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (struct MOS4569_VICIII*) 53248 -Simplifying constant pointer cast (struct MEGA65_VICIV*) 53248 -Simplifying constant pointer cast (byte*) 53504 -Simplifying constant pointer cast (byte*) 53760 -Simplifying constant pointer cast (byte*) 54016 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 65534 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (struct MOS4569_VICIII *) 53248 +Simplifying constant pointer cast (struct MEGA65_VICIV *) 53248 +Simplifying constant pointer cast (char *) 53504 +Simplifying constant pointer cast (char *) 53760 +Simplifying constant pointer cast (char *) 54016 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 65534 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Simplifying constant integer cast $47 @@ -931,74 +931,74 @@ Simplifying constant integer cast SCROLL_ROW*(unumber)$28 Simplifying constant integer cast $28 Simplifying constant integer cast $27 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $47 -Finalized unsigned number type (byte) $53 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $66 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $13 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $bf -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $bf -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $27 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $47 +Finalized unsigned number type (char) $53 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $66 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $13 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $bf +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $bf +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $27 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in irq::$10 = irq::zoomval#0 + 1 -Inferred type updated to byte in irq::$26 = rasters[irq::$25] / 2 -Inferred type updated to byte in irq::$27 = irq::$26 & 7 -Inferred type updated to byte in irq::$29 = GREETING[irq::greet_offset#2] & $bf -Inferred type updated to byte in irq::$33 = irq::nxt#2 & $bf +Inferred type updated to char in irq::$10 = irq::zoomval#0 + 1 +Inferred type updated to char in irq::$26 = rasters[irq::$25] / 2 +Inferred type updated to char in irq::$27 = irq::$26 & 7 +Inferred type updated to char in irq::$29 = GREETING[irq::greet_offset#2] & $bf +Inferred type updated to char in irq::$33 = irq::nxt#2 & $bf Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 Inversing boolean not [97] irq::$9 = irq::line#6 != SCROLL_Y+SCROLL_BLACKBARS+1 from [96] irq::$8 = irq::line#6 == SCROLL_Y+SCROLL_BLACKBARS+1 Inversing boolean not [106] irq::$12 = greet_zoomx != 0 from [105] irq::$11 = greet_zoomx == 0 @@ -1070,7 +1070,7 @@ Simple Condition irq::$7 [79] if(irq::line#10==SCROLL_Y+SCROLL_BLACKBARS) goto i Simple Condition irq::$9 [82] if(irq::line#10!=SCROLL_Y+SCROLL_BLACKBARS+1) goto irq::@8 Simple Condition irq::$12 [89] if(greet_zoomx!=0) goto irq::@8 Simple Condition irq::$14 [92] if(greet_idx!=GREET_COUNT) goto irq::@8 -Simple Condition irq::$15 [98] if(irq::raster#0==*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)) goto irq::@9 +Simple Condition irq::$15 [98] if(irq::raster#0==*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)) goto irq::@9 Simple Condition irq::$16 [104] if(irq::i#2<$28) goto irq::@18 Simple Condition irq::$18 [120] if(irq::l#2!=RASTER_LINES) goto irq::@21 Simple Condition irq::$19 [127] if(irq::barcnt#2<$10) goto irq::@24 @@ -1085,7 +1085,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [21] memset::num#0 = (unumber)$28*$19 Constant right-side identified [26] main::$2 = sizeof MEGA_LOGO Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memset::str#0 = (void*)SCREEN +Constant memset::str#0 = (void *)SCREEN Constant memset::c#0 = ' ' Constant memset::num#0 = (unumber)$28*$19 Constant main::i1#0 = 0 @@ -1102,13 +1102,13 @@ Constant irq::i2#0 = 0 Constant irq::i4#0 = 0 Constant irq::i5#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Constant memset::return#2 = memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [2] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (byte)0*$28 in [108] (COLORRAM+LOGO_ROW*$28+(byte)0*$28-1)[irq::i#2] = irq::col1#1 +Simplifying constant evaluating to zero (char)0*$28 in [108] (COLORRAM+LOGO_ROW*$28+(char)0*$28-1)[irq::i#2] = irq::col1#1 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero COLORRAM+LOGO_ROW*$28 in [108] (COLORRAM+LOGO_ROW*$28+0-1)[irq::i#2] = irq::col1#1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -1126,7 +1126,7 @@ Adding number conversion cast (unumber) $bc in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $bc Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $bc +Finalized unsigned number type (char) $bc Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting division to use shift [73] irq::col1#0 = SINE[irq::sin_col#2] / 4 Rewriting division to use shift [75] irq::col1#1 = irq::col1#0 / 2 @@ -1157,39 +1157,39 @@ Constant inlined irq::i4#0 = 0 Constant inlined irq::l#0 = 0 Constant inlined irq::i5#0 = 0 Constant inlined SCREEN = DEFAULT_SCREEN -Constant inlined memset::$4 = (byte*)memset::str#0 -Constant inlined main::$2 = $bc*SIZEOF_BYTE +Constant inlined memset::$4 = (char *)memset::str#0 +Constant inlined main::$2 = $bc*SIZEOF_CHAR Constant inlined main::i1#0 = 0 Constant inlined main::i#0 = 0 Constant inlined main::i2#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in assignment (rasters+SCROLL_Y)[irq::$25] Consolidated array index constant in assignment (rasters+SCROLL_Y)[irq::$24] Successful SSA optimization Pass2ConstantAdditionElimination Alias irq::i3#2 = irq::$24 irq::$25 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (word) $fc0 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $2c00 -Finalized unsigned number type (word) $3000 -Finalized unsigned number type (word) $2d00 -Finalized unsigned number type (word) $2e00 -Finalized unsigned number type (word) $2f00 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (unsigned int) $fc0 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $2c00 +Finalized unsigned number type (unsigned int) $3000 +Finalized unsigned number type (unsigned int) $2d00 +Finalized unsigned number type (unsigned int) $2e00 +Finalized unsigned number type (unsigned int) $2f00 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 1*$28 Simplifying constant integer cast 2*$28 @@ -1334,9 +1334,9 @@ __start::@return: scope:[__start] from __start::@1 __interrupt(hardware_clobber) void irq() irq: scope:[irq] from - [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) | $80 - [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER - [11] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 0 + [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) | $80 + [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER + [11] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 0 [12] sin_idx = ++ sin_idx [13] irq::wobble_idx#0 = sin_idx to:irq::@2 @@ -1477,8 +1477,8 @@ irq::@18: scope:[irq] from irq::@17 to:irq::@17 irq::@3: scope:[irq] from irq::@2 [85] irq::col#0 = rasters[irq::line#10] - [86] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR) = irq::col#0 - [87] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR) = irq::col#0 + [86] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR) = irq::col#0 + [87] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR) = irq::col#0 [88] if(irq::line#10 SCROLL_Y pos do nozoom // default value lda #$50 @@ -2689,25 +2689,25 @@ irq: { jmp __b8_from___b7 // irq::@6 __b6: - // [106] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -- _deref_pbuc1=vbuc2 + // [106] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -- _deref_pbuc1=vbuc2 // if raster position = SCROLL_Y pos do scroll // no wobbling from this point lda #$50 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO - // [107] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll_soft -- _deref_pbuc1=vbuz1 + // [107] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll_soft -- _deref_pbuc1=vbuz1 // set softscroll lda.z scroll_soft sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 jmp __b8_from___b6 // irq::@5 __b5: - // [108] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = SINE[irq::wobble_idx#10] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [108] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = SINE[irq::wobble_idx#10] -- _deref_pbuc1=pbuc2_derefidx_vbuxx // if raster position < SCROLL_Y pos do wobble Logo! lda SINE,x sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO // [109] irq::wobble_idx#1 = ++ irq::wobble_idx#10 -- vbuxx=_inc_vbuxx inx - // [110] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = $66 -- _deref_pbuc1=vbuc2 + // [110] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = $66 -- _deref_pbuc1=vbuc2 // No zooming lda #$66 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL @@ -2715,19 +2715,19 @@ irq: { } // main main: { - // [111] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 + // [111] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 // Enable MEGA65 features lda #$47 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY - // [112] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 + // [112] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 lda #$53 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY - // [113] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [113] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable 48MHz fast mode lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB - // [114] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [114] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC @@ -2754,8 +2754,8 @@ main: { // Put MEGA logo on screen // main::@2 __b2: - // [120] if(main::i1#2<$bc*SIZEOF_BYTE) goto main::@3 -- vbuxx_lt_vbuc1_then_la1 - cpx #$bc*SIZEOF_BYTE + // [120] if(main::i1#2<$bc*SIZEOF_CHAR) goto main::@3 -- vbuxx_lt_vbuc1_then_la1 + cpx #$bc*SIZEOF_CHAR bcc __b3 // [121] phi from main::@2 to main::@4 [phi:main::@2->main::@4] __b4_from___b2: @@ -2799,19 +2799,19 @@ main: { // asm { sei } // Set up raster interrupts C64 style sei - // [130] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT - // [131] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y -- _deref_pbuc1=vbuc2 + // [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y -- _deref_pbuc1=vbuc2 // Set raster line to 0x16 lda #IRQ_Y sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER - // [132] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [132] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 - // [133] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [133] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE @@ -2828,7 +2828,7 @@ main: { // [136] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [137] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 + // [137] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 // open sideborder lda #1 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO @@ -2867,6 +2867,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $28*$19 @@ -2875,7 +2876,7 @@ memset: { .label dst = 4 // [145] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [145] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [145] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3065,163 +3066,163 @@ Fixing long branch [153] bcc __b18 to bcs Fixing long branch [160] bne __b20 to beq FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " -constant const byte GREET_COUNT = $f -constant const byte GREET_ROW = $14 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant const byte IRQ_RASTER = 1 -constant const byte IRQ_Y = $16 -constant const byte LOGO_ROW = 3 -constant byte* MEGA_LOGO[] = { $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $20, $cf, $20, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $cf, $cf, $20, $20, $20, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $20, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $cf, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $20, $20, $20, $cf } -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 -constant byte OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 = $6f -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c -constant byte OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c -constant byte OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PALETTE_BLUE = (byte*) 54016 -constant byte* const PALETTE_GREEN = (byte*) 53760 -constant byte* const PALETTE_RED = (byte*) 53504 -constant byte* PAL_BLUE[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, 0, 0, 0, 0, $c0, $b1, $a2, $a3, $34, $35, $26, $27, $f7, $f8, $f9, $ea, 0, 0, $30, $11, $22, $13, $14, 5, $b5, $96, $97, $98, $79, $6a, $5b, $4c, $81, $42, $43, $34, 5, 6, $f6, $f7, $78, $69, $5a, $5b, $4c, $3d, $1e, $f, $17, $c7, $a8, $89, $5a, $5b, $3c, $1d, $ad, $9e, $7f, $ff, $ff, $ff, $ff, $ff, $78, 9, $e9, $ca, $ab, $7c, $5d, $5e, $de, $cf, $ff, $ff, $ff, $ff, $ff, $ff, $59, $a, $ca, $bb, $8c, $6d, $3e, $2f, $bf, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $49, $f9, $da, $ab, $7c, $5d, $2e, $2f, $af, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $48, $d8, $b9, $aa, $7b, $5c, $2d, $2e, $be, $9f, $ff, $ff, $ff, $ff, $ff, $ff, 7, $97, $88, $69, $4a, $2b, $1c, $2d, $9d, $7e, $6f, $ff, $ff, $ff, $ff, $ff, $81, $62, $53, $44, 5, 6, $f6, $e7, $78, $69, $5a, $5b, $3c, $2d, $2e, $1f, 0, 0, 0, 0, $b0, $b1, $a2, $b3, $44, $35, $36, $37, 8, $f8, $a, $b, 0, 0, 0, 0, 0, $70, $61, $62, $f2, $e3, $d4, $c5, $b6, $b7, $b8, $99, 0, 0, 0, 0, 0, 0, $f0, $f1, $82, $83, $84, $85, $66, $57, $58, $59, 0, 0, 0, 0, 0, $70, $61, $62, $e2, $e3, $d4, $d5, $b6, $a7, $b8, $a9, 0, 0, 0, 0, $a0, $b1, $a2, $a3, $44, $35, $26, $37, $f7, $19, $f9, $fa } -constant byte* PAL_GREEN[] = { 0, $e3, $c4, $b5, $96, $87, $78, $79, $a, $fa, $eb, $dc, $bd, $ae, $af, $ff, $e2, $b3, $a4, $85, $76, $67, $48, $49, $d9, $da, $bb, $bc, $8d, $8e, $7f, $ff, $42, 3, 4, $e4, $d5, $c6, $b7, $a8, $39, $3a, $1b, $2c, $fc, $fd, $de, $df, $61, $32, $13, 4, $e4, $e5, $d6, $d7, $78, $59, $4a, $4b, $2c, $1d, $e, $fe, $e0, $b1, $a2, $93, $74, $75, $56, $57, $e7, $d8, $79, $ca, $ab, $9c, $9d, $8e, $f0, $d1, $c2, $a3, $84, $85, $76, $77, 8, 9, $f9, $fa, $db, $cc, $bd, $ae, $61, $22, $23, $14, $f4, $e5, $d6, $c7, $58, $59, $3a, $3b, $1c, $d, $fd, $fe, $92, $53, $44, $35, $16, $f6, $e7, $e8, $79, $6a, $5b, $4c, $2d, $3e, $1f, $ef, $53, $14, 5, $e5, $c6, $b7, $a8, $99, $2a, $2b, $c, $d, $dd, $ce, $cf, $ff, $f3, $b4, $95, $86, $57, $38, $29, $1a, $ba, $ab, $9c, $8d, $6e, $5f, $ff, $ff, $95, $56, $27, $18, $e8, $d9, $ca, $bb, $4c, $3d, $2e, $1f, $ef, $ff, $ff, $ff, $c5, $86, $57, $38, $19, $a, $ea, $db, $6c, $5d, $3e, $3f, $ef, $ff, $ff, $ff, $65, $26, 7, $e7, $c8, $b9, $9a, $9b, $2c, $1d, $fd, $fe, $cf, $ff, $ff, $ff, $b4, $75, $56, $37, $28, $19, $e9, $ea, $7b, $6c, $5d, $4e, $2f, $ff, $ff, $ff, $c3, $94, $75, $56, $47, $38, $19, $1a, $aa, $ab, $7c, $7d, $5e, $4f, $ff, $ff, $e2, $a3, $94, $85, $76, $67, $38, $49, $d9, $ca, $ab, $bc, $7d, $7e, $6f, $ff } -constant byte* PAL_RED[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, $16, $c6, $a7, $88, $49, $5a, $2b, $1c, $ac, $ad, $8e, $8f, $ff, $ff, $ff, $ff, $c6, $77, $48, $29, $e9, $fa, $cb, $cc, $5d, $4e, $2f, $ff, $ff, $ff, $ff, $ff, $57, $18, $f8, $d9, $aa, $8b, $6c, $5d, $ed, $de, $cf, $ff, $ff, $ff, $ff, $ff, $26, $e6, $b7, $a8, $69, $5a, $3b, $3c, $dc, $cd, $ae, $9f, $ff, $ff, $ff, $ff, $65, $16, $17, $f7, $d8, $b9, $9a, $8b, $2c, $d, $fd, $ee, $cf, $ff, $ff, $ff, $64, $15, 6, $e6, $c7, $a8, $99, $8a, $1b, $c, $fc, $fd, $ee, $cf, $ff, $ff, $12, $d2, $d3, $b4, $95, $86, $77, $78, 9, $69, $ea, $fb, $dc, $ad, $ae, $af, $f0, $c1, $c2, $a3, $84, $85, $76, $67, 8, $f8, $e9, $da, $db, $bc, $bd, $ae, $40, $11, $12, $f2, $e3, $d4, $c5, $c6, $47, $38, $39, $2a, $1b, $c, $d, $ed, 0, 0, $f0, $d1, $c2, $b3, $a4, $95, $36, $27, $28, $29, $f9, $ea, $eb, $ec, $70, $41, $22, $23, $f3, $f4, $e5, $e6, $77, $78, $69, $7a, $3b, $3c, $3d, $3e, $a1, $82, $63, $54, $35, $26, 7, 8, $98, $99, $8a, $7b, $5c, $5d, $3e, $3f, $33, 4, $d4, $d5, $a6, $a7, $88, $89, $1a, $ab, $fb, $ec, $cd, $be, $af, $ff, $b4, $85, $56, $47, $18, 9, $f9, $ea, $7b, $7c, $5d, $5e, $2f, $ef, $ff, $ff, 6, $d6, $a7, $98, $59, $4a, $2b, $2c, $bc, $ad, $8e, $8f, $ff, $ff, $ff, $ff } -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant const byte RASTER_LINES = $d8 -constant const byte SCROLL_BLACKBARS = $13 -constant const byte SCROLL_ROW = $d -constant byte* SCROLL_TEXT[] = " THIS SMALL MEGA65 RASTER INTRO ... WAS MADE BY DEFT IN 2015 ... AND BROUGHT BACK TO LIFE 5 YEARS LATER IN 2020 ... BECAUSE THE MEGA65 HARDWARE CHANGED SO MUCH IN THE PAST 5 YEARS ... UNFORTUNATELY MY ASSEMBLER SKILLS DID NOT SO THIS IS THE FIRST APPROACH TO GET BETTER ... HOPEFULLY DR.MUTTI WILL HAVE TO SCOLD ME LESS ... THE PAST 5 YEARS HAVE BEEN AN UNFORGETTABLE & UNIQUE RIDE ... IF YOU DO WATCH THIS DEMO ON YOUR VERY OWN MEGA65 THERE IS ENOUGH EVIDENCE OF WHAT WE ACTUALLY ACHIEVED ... BELOW ARE THE GREETINGS TO DEAR AND VERY SPECIAL PEOPLE WHO HELPED TO GET THERE ... THANK YOU SO MUCH FOR YOUR SUPPORT AND FOR NOT GIVING UP ... DUAL SID TUNE BY RAYDEN OF ALPHA FLIGHT ... THIS SCROLLY WILL NOW RESTART *WRAP* " -constant const byte SCROLL_Y = $66 -constant byte* SINE[$100] = kickasm {{ .fill 256, 91.5 + 91.5*sin(i*2*PI/256) +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " +__constant const char GREET_COUNT = $f +__constant const char GREET_ROW = $14 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant const char IRQ_RASTER = 1 +__constant const char IRQ_Y = $16 +__constant const char LOGO_ROW = 3 +__constant char MEGA_LOGO[] = { $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $20, $cf, $20, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $cf, $cf, $20, $20, $20, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $20, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $cf, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $20, $20, $20, $cf } +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 +__constant char OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 = $6f +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c +__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c +__constant char OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PALETTE_BLUE = (char *) 54016 +__constant char * const PALETTE_GREEN = (char *) 53760 +__constant char * const PALETTE_RED = (char *) 53504 +__constant char PAL_BLUE[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, 0, 0, 0, 0, $c0, $b1, $a2, $a3, $34, $35, $26, $27, $f7, $f8, $f9, $ea, 0, 0, $30, $11, $22, $13, $14, 5, $b5, $96, $97, $98, $79, $6a, $5b, $4c, $81, $42, $43, $34, 5, 6, $f6, $f7, $78, $69, $5a, $5b, $4c, $3d, $1e, $f, $17, $c7, $a8, $89, $5a, $5b, $3c, $1d, $ad, $9e, $7f, $ff, $ff, $ff, $ff, $ff, $78, 9, $e9, $ca, $ab, $7c, $5d, $5e, $de, $cf, $ff, $ff, $ff, $ff, $ff, $ff, $59, $a, $ca, $bb, $8c, $6d, $3e, $2f, $bf, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $49, $f9, $da, $ab, $7c, $5d, $2e, $2f, $af, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $48, $d8, $b9, $aa, $7b, $5c, $2d, $2e, $be, $9f, $ff, $ff, $ff, $ff, $ff, $ff, 7, $97, $88, $69, $4a, $2b, $1c, $2d, $9d, $7e, $6f, $ff, $ff, $ff, $ff, $ff, $81, $62, $53, $44, 5, 6, $f6, $e7, $78, $69, $5a, $5b, $3c, $2d, $2e, $1f, 0, 0, 0, 0, $b0, $b1, $a2, $b3, $44, $35, $36, $37, 8, $f8, $a, $b, 0, 0, 0, 0, 0, $70, $61, $62, $f2, $e3, $d4, $c5, $b6, $b7, $b8, $99, 0, 0, 0, 0, 0, 0, $f0, $f1, $82, $83, $84, $85, $66, $57, $58, $59, 0, 0, 0, 0, 0, $70, $61, $62, $e2, $e3, $d4, $d5, $b6, $a7, $b8, $a9, 0, 0, 0, 0, $a0, $b1, $a2, $a3, $44, $35, $26, $37, $f7, $19, $f9, $fa } +__constant char PAL_GREEN[] = { 0, $e3, $c4, $b5, $96, $87, $78, $79, $a, $fa, $eb, $dc, $bd, $ae, $af, $ff, $e2, $b3, $a4, $85, $76, $67, $48, $49, $d9, $da, $bb, $bc, $8d, $8e, $7f, $ff, $42, 3, 4, $e4, $d5, $c6, $b7, $a8, $39, $3a, $1b, $2c, $fc, $fd, $de, $df, $61, $32, $13, 4, $e4, $e5, $d6, $d7, $78, $59, $4a, $4b, $2c, $1d, $e, $fe, $e0, $b1, $a2, $93, $74, $75, $56, $57, $e7, $d8, $79, $ca, $ab, $9c, $9d, $8e, $f0, $d1, $c2, $a3, $84, $85, $76, $77, 8, 9, $f9, $fa, $db, $cc, $bd, $ae, $61, $22, $23, $14, $f4, $e5, $d6, $c7, $58, $59, $3a, $3b, $1c, $d, $fd, $fe, $92, $53, $44, $35, $16, $f6, $e7, $e8, $79, $6a, $5b, $4c, $2d, $3e, $1f, $ef, $53, $14, 5, $e5, $c6, $b7, $a8, $99, $2a, $2b, $c, $d, $dd, $ce, $cf, $ff, $f3, $b4, $95, $86, $57, $38, $29, $1a, $ba, $ab, $9c, $8d, $6e, $5f, $ff, $ff, $95, $56, $27, $18, $e8, $d9, $ca, $bb, $4c, $3d, $2e, $1f, $ef, $ff, $ff, $ff, $c5, $86, $57, $38, $19, $a, $ea, $db, $6c, $5d, $3e, $3f, $ef, $ff, $ff, $ff, $65, $26, 7, $e7, $c8, $b9, $9a, $9b, $2c, $1d, $fd, $fe, $cf, $ff, $ff, $ff, $b4, $75, $56, $37, $28, $19, $e9, $ea, $7b, $6c, $5d, $4e, $2f, $ff, $ff, $ff, $c3, $94, $75, $56, $47, $38, $19, $1a, $aa, $ab, $7c, $7d, $5e, $4f, $ff, $ff, $e2, $a3, $94, $85, $76, $67, $38, $49, $d9, $ca, $ab, $bc, $7d, $7e, $6f, $ff } +__constant char PAL_RED[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, $16, $c6, $a7, $88, $49, $5a, $2b, $1c, $ac, $ad, $8e, $8f, $ff, $ff, $ff, $ff, $c6, $77, $48, $29, $e9, $fa, $cb, $cc, $5d, $4e, $2f, $ff, $ff, $ff, $ff, $ff, $57, $18, $f8, $d9, $aa, $8b, $6c, $5d, $ed, $de, $cf, $ff, $ff, $ff, $ff, $ff, $26, $e6, $b7, $a8, $69, $5a, $3b, $3c, $dc, $cd, $ae, $9f, $ff, $ff, $ff, $ff, $65, $16, $17, $f7, $d8, $b9, $9a, $8b, $2c, $d, $fd, $ee, $cf, $ff, $ff, $ff, $64, $15, 6, $e6, $c7, $a8, $99, $8a, $1b, $c, $fc, $fd, $ee, $cf, $ff, $ff, $12, $d2, $d3, $b4, $95, $86, $77, $78, 9, $69, $ea, $fb, $dc, $ad, $ae, $af, $f0, $c1, $c2, $a3, $84, $85, $76, $67, 8, $f8, $e9, $da, $db, $bc, $bd, $ae, $40, $11, $12, $f2, $e3, $d4, $c5, $c6, $47, $38, $39, $2a, $1b, $c, $d, $ed, 0, 0, $f0, $d1, $c2, $b3, $a4, $95, $36, $27, $28, $29, $f9, $ea, $eb, $ec, $70, $41, $22, $23, $f3, $f4, $e5, $e6, $77, $78, $69, $7a, $3b, $3c, $3d, $3e, $a1, $82, $63, $54, $35, $26, 7, 8, $98, $99, $8a, $7b, $5c, $5d, $3e, $3f, $33, 4, $d4, $d5, $a6, $a7, $88, $89, $1a, $ab, $fb, $ec, $cd, $be, $af, $ff, $b4, $85, $56, $47, $18, 9, $f9, $ea, $7b, $7c, $5d, $5e, $2f, $ef, $ff, $ff, 6, $d6, $a7, $98, $59, $4a, $2b, $2c, $bc, $ad, $8e, $8f, $ff, $ff, $ff, $ff } +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant const char RASTER_LINES = $d8 +__constant const char SCROLL_BLACKBARS = $13 +__constant const char SCROLL_ROW = $d +__constant char SCROLL_TEXT[] = " THIS SMALL MEGA65 RASTER INTRO ... WAS MADE BY DEFT IN 2015 ... AND BROUGHT BACK TO LIFE 5 YEARS LATER IN 2020 ... BECAUSE THE MEGA65 HARDWARE CHANGED SO MUCH IN THE PAST 5 YEARS ... UNFORTUNATELY MY ASSEMBLER SKILLS DID NOT SO THIS IS THE FIRST APPROACH TO GET BETTER ... HOPEFULLY DR.MUTTI WILL HAVE TO SCOLD ME LESS ... THE PAST 5 YEARS HAVE BEEN AN UNFORGETTABLE & UNIQUE RIDE ... IF YOU DO WATCH THIS DEMO ON YOUR VERY OWN MEGA65 THERE IS ENOUGH EVIDENCE OF WHAT WE ACTUALLY ACHIEVED ... BELOW ARE THE GREETINGS TO DEAR AND VERY SPECIAL PEOPLE WHO HELPED TO GET THERE ... THANK YOU SO MUCH FOR YOUR SUPPORT AND FOR NOT GIVING UP ... DUAL SID TUNE BY RAYDEN OF ALPHA FLIGHT ... THIS SCROLLY WILL NOW RESTART *WRAP* " +__constant const char SCROLL_Y = $66 +__constant char SINE[$100] = kickasm {{ .fill 256, 91.5 + 91.5*sin(i*2*PI/256) }} -constant byte SIZEOF_BYTE = 1 -constant byte* SONG[] = kickasm {{ .import c64 "DiscoZak_2SID_patched.prg" +__constant char SIZEOF_CHAR = 1 +__constant char SONG[] = kickasm {{ .import c64 "DiscoZak_2SID_patched.prg" }} -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant struct MOS4569_VICIII* const VICIII = (struct MOS4569_VICIII*) 53248 -constant struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*) 53248 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant struct MOS4569_VICIII * const VICIII = (struct MOS4569_VICIII *) 53248 +__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *) 53248 void __start() -volatile byte greet_idx loadstore zp[1]:11 0.6153846153846154 -volatile byte greet_zoomx loadstore zp[1]:10 1.3939393939393938 +__loadstore volatile char greet_idx // zp[1]:11 0.6153846153846154 +__loadstore volatile char greet_zoomx // zp[1]:10 1.3939393939393938 __interrupt(hardware_clobber) void irq() -byte~ irq::$10 reg byte a 22.0 -byte~ irq::$26 reg byte a 22.0 -byte~ irq::$27 reg byte a 22.0 -byte~ irq::$29 reg byte a 22.0 -byte~ irq::$33 reg byte a 4.0 -byte irq::barcnt -byte irq::barcnt#1 barcnt zp[1]:2 22.0 -byte irq::barcnt#2 barcnt zp[1]:2 2.588235294117647 -byte irq::barcol -byte irq::barcol#0 reg byte z 22.0 -byte irq::barcol#1 reg byte z 101.0 -byte irq::barcol#2 reg byte z 75.75 -byte irq::barcol#3 reg byte z 103.75 -byte irq::barcol#4 reg byte z 151.5 -byte irq::col -byte irq::col#0 reg byte a 16.5 -byte irq::col1 -byte irq::col1#0 reg byte a 16.5 -byte irq::col1#1 reg byte a 12.833333333333334 -byte irq::greet_offset -byte irq::greet_offset#0 reg byte y 4.0 -byte irq::greet_offset#1 reg byte y 11.0 -byte irq::greet_offset#2 reg byte y 8.75 -byte irq::i -byte irq::i#1 reg byte x 22.0 -byte irq::i#2 reg byte x 9.307692307692307 -byte irq::i1 -byte irq::i1#1 reg byte y 202.0 -byte irq::i1#2 reg byte y 60.599999999999994 -byte irq::i2 -byte irq::i2#1 reg byte y 202.0 -byte irq::i2#2 reg byte y 60.599999999999994 -byte irq::i3 -byte irq::i3#1 reg byte x 22.0 -byte irq::i3#2 reg byte x 11.0 -byte irq::i4 -byte irq::i4#1 reg byte x 22.0 -byte irq::i4#2 reg byte x 8.8 -byte irq::i5 -byte irq::i5#1 reg byte x 22.0 -byte irq::i5#2 reg byte x 18.333333333333332 -byte irq::idx -byte irq::idx#0 reg byte x 11.0 -byte irq::idx#1 reg byte x 67.33333333333333 -byte irq::idx#2 reg byte x 101.0 -byte irq::idx#3 reg byte x 138.33333333333331 -byte irq::idx#4 reg byte x 101.0 -byte irq::l -byte irq::l#1 reg byte x 22.0 -byte irq::l#2 reg byte x 14.666666666666666 -byte irq::line -byte irq::line#1 reg byte z 22.0 -byte irq::line#10 reg byte z 3.259259259259259 -byte irq::nxt -byte irq::nxt#0 reg byte a 2.0 -byte irq::nxt#1 reg byte a 4.0 -byte irq::nxt#2 reg byte a 6.0 -byte irq::raster -byte irq::raster#0 reg byte a 56.0 -byte irq::sin_bar -byte irq::sin_bar#0 sin_bar zp[1]:3 4.0 -byte irq::sin_bar#1 sin_bar zp[1]:3 11.0 -byte irq::sin_bar#2 sin_bar zp[1]:3 2.1875 -byte irq::sin_col -byte irq::sin_col#0 reg byte y 4.0 -byte irq::sin_col#1 reg byte y 11.0 -byte irq::sin_col#2 reg byte y 3.833333333333333 -byte irq::wobble_idx -byte irq::wobble_idx#0 reg byte x 4.0 -byte irq::wobble_idx#1 reg byte x 11.0 -byte irq::wobble_idx#10 reg byte x 4.590909090909091 -byte irq::wobble_idx#7 reg byte x 22.0 -byte irq::zoomval -byte irq::zoomval#0 reg byte a 11.0 +char irq::$10 // reg byte a 22.0 +char irq::$26 // reg byte a 22.0 +char irq::$27 // reg byte a 22.0 +char irq::$29 // reg byte a 22.0 +char irq::$33 // reg byte a 4.0 +char irq::barcnt +char irq::barcnt#1 // barcnt zp[1]:2 22.0 +char irq::barcnt#2 // barcnt zp[1]:2 2.588235294117647 +char irq::barcol +char irq::barcol#0 // reg byte z 22.0 +char irq::barcol#1 // reg byte z 101.0 +char irq::barcol#2 // reg byte z 75.75 +char irq::barcol#3 // reg byte z 103.75 +char irq::barcol#4 // reg byte z 151.5 +char irq::col +char irq::col#0 // reg byte a 16.5 +char irq::col1 +char irq::col1#0 // reg byte a 16.5 +char irq::col1#1 // reg byte a 12.833333333333334 +char irq::greet_offset +char irq::greet_offset#0 // reg byte y 4.0 +char irq::greet_offset#1 // reg byte y 11.0 +char irq::greet_offset#2 // reg byte y 8.75 +char irq::i +char irq::i#1 // reg byte x 22.0 +char irq::i#2 // reg byte x 9.307692307692307 +char irq::i1 +char irq::i1#1 // reg byte y 202.0 +char irq::i1#2 // reg byte y 60.599999999999994 +char irq::i2 +char irq::i2#1 // reg byte y 202.0 +char irq::i2#2 // reg byte y 60.599999999999994 +char irq::i3 +char irq::i3#1 // reg byte x 22.0 +char irq::i3#2 // reg byte x 11.0 +char irq::i4 +char irq::i4#1 // reg byte x 22.0 +char irq::i4#2 // reg byte x 8.8 +char irq::i5 +char irq::i5#1 // reg byte x 22.0 +char irq::i5#2 // reg byte x 18.333333333333332 +char irq::idx +char irq::idx#0 // reg byte x 11.0 +char irq::idx#1 // reg byte x 67.33333333333333 +char irq::idx#2 // reg byte x 101.0 +char irq::idx#3 // reg byte x 138.33333333333331 +char irq::idx#4 // reg byte x 101.0 +char irq::l +char irq::l#1 // reg byte x 22.0 +char irq::l#2 // reg byte x 14.666666666666666 +char irq::line +char irq::line#1 // reg byte z 22.0 +char irq::line#10 // reg byte z 3.259259259259259 +char irq::nxt +char irq::nxt#0 // reg byte a 2.0 +char irq::nxt#1 // reg byte a 4.0 +char irq::nxt#2 // reg byte a 6.0 +char irq::raster +char irq::raster#0 // reg byte a 56.0 +char irq::sin_bar +char irq::sin_bar#0 // sin_bar zp[1]:3 4.0 +char irq::sin_bar#1 // sin_bar zp[1]:3 11.0 +char irq::sin_bar#2 // sin_bar zp[1]:3 2.1875 +char irq::sin_col +char irq::sin_col#0 // reg byte y 4.0 +char irq::sin_col#1 // reg byte y 11.0 +char irq::sin_col#2 // reg byte y 3.833333333333333 +char irq::wobble_idx +char irq::wobble_idx#0 // reg byte x 4.0 +char irq::wobble_idx#1 // reg byte x 11.0 +char irq::wobble_idx#10 // reg byte x 4.590909090909091 +char irq::wobble_idx#7 // reg byte x 22.0 +char irq::zoomval +char irq::zoomval#0 // reg byte a 11.0 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 202.0 -byte main::i1 -byte main::i1#1 reg byte x 202.0 -byte main::i1#2 reg byte x 168.33333333333331 -byte main::i2 -byte main::i2#1 reg byte x 202.0 -byte main::i2#2 reg byte x 134.66666666666666 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = (word)$28*$19 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)DEFAULT_SCREEN -constant byte* rasters[RASTER_LINES] = { fill( RASTER_LINES, 0) } -byte* volatile scroll_ptr loadstore zp[2]:8 0.19672131147540986 -volatile byte scroll_soft loadstore zp[1]:7 0.2441860465116279 -volatile byte sin_idx loadstore zp[1]:6 0.49999999999999994 -constant void()* songInit = (void()*)SONG -constant void()* songPlay = (void()*)SONG+3 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 202.0 +char main::i1 +char main::i1#1 // reg byte x 202.0 +char main::i1#2 // reg byte x 168.33333333333331 +char main::i2 +char main::i2#1 // reg byte x 202.0 +char main::i2#2 // reg byte x 134.66666666666666 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = (unsigned int)$28*$19 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)DEFAULT_SCREEN // str +__constant char rasters[RASTER_LINES] = { fill( RASTER_LINES, 0) } +__loadstore char * volatile scroll_ptr // zp[2]:8 0.19672131147540986 +__loadstore volatile char scroll_soft // zp[1]:7 0.2441860465116279 +__loadstore volatile char sin_idx // zp[1]:6 0.49999999999999994 +__constant void (*songInit)() = (void (*)())SONG +__constant void (*songPlay)() = (void (*)())SONG+3 reg byte z [ irq::line#10 irq::line#1 ] reg byte x [ irq::wobble_idx#10 irq::wobble_idx#0 irq::wobble_idx#7 irq::wobble_idx#1 ] @@ -3330,7 +3331,7 @@ Score: 10121 .const OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21 .const OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c .const OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// Processor port data direction register .label PROCPORT_DDR = 0 /// Processor Port Register controlling RAM/ROM configuration and the datasette @@ -3413,18 +3414,18 @@ irq: { phy phz // VICIV->RASLINE0 |= 0x80 - // [9] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [9] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0) | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // force NTSC every frame (hehe) lda #$80 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 // VICII->IRQ_STATUS = IRQ_RASTER - // [10] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [10] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS // VICII->CONTROL2 = 0 - // [11] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = 0 -- _deref_pbuc1=vbuc2 // reset x scroll lda #0 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 @@ -3800,10 +3801,10 @@ irq: { tay lda rasters,y // VICIII->BORDER_COLOR = col - // [86] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR) = irq::col#0 -- _deref_pbuc1=vbuaa + // [86] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR) = irq::col#0 -- _deref_pbuc1=vbuaa sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR // VICIII->BG_COLOR = col - // [87] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR) = irq::col#0 -- _deref_pbuc1=vbuaa + // [87] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR) = irq::col#0 -- _deref_pbuc1=vbuaa sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR // if(line < SCROLL_Y) // [88] if(irq::line#10CHRXSCL = zoomval - // [94] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = irq::zoomval#0 -- _deref_pbuc1=vbuaa + // [94] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = irq::zoomval#0 -- _deref_pbuc1=vbuaa sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL // zoomval+1 // [95] irq::$10 = irq::zoomval#0 + 1 -- vbuaa=vbuaa_plus_1 inc // VICIV->TEXTXPOS_LO = zoomval+1 - // [96] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = irq::$10 -- _deref_pbuc1=vbuaa + // [96] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = irq::$10 -- _deref_pbuc1=vbuaa sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO // if(greet_zoomx==0) // [97] if(greet_zoomx!=0) goto irq::@8 -- vbuz1_neq_0_then_la1 @@ -3863,13 +3864,13 @@ irq: { // irq::@8 __b8: // char raster = VICII->RASTER - // [102] irq::raster#0 = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- vbuaa=_deref_pbuc1 + // [102] irq::raster#0 = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- vbuaa=_deref_pbuc1 // Wait for the next raster line lda VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // irq::@9 __b9: // while(raster == VICII->RASTER) - // [103] if(irq::raster#0==*((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)) goto irq::@9 -- vbuaa_eq__deref_pbuc1_then_la1 + // [103] if(irq::raster#0==*((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER)) goto irq::@9 -- vbuaa_eq__deref_pbuc1_then_la1 cmp VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER beq __b9 // irq::@10 @@ -3883,7 +3884,7 @@ irq: { // irq::@7 __b7: // VICIV->TEXTXPOS_LO = 0x50 - // [105] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -- _deref_pbuc1=vbuc2 + // [105] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -- _deref_pbuc1=vbuc2 // if raster position > SCROLL_Y pos do nozoom // default value lda #$50 @@ -3891,13 +3892,13 @@ irq: { jmp __b8 // irq::@6 __b6: - // [106] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -- _deref_pbuc1=vbuc2 + // [106] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = $50 -- _deref_pbuc1=vbuc2 // if raster position = SCROLL_Y pos do scroll // no wobbling from this point lda #$50 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO // VICII->CONTROL2 = scroll_soft - // [107] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll_soft -- _deref_pbuc1=vbuz1 + // [107] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2) = scroll_soft -- _deref_pbuc1=vbuz1 // set softscroll lda.z scroll_soft sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL2 @@ -3905,7 +3906,7 @@ irq: { // irq::@5 __b5: // VICIV->TEXTXPOS_LO = SINE[wobble_idx++] - // [108] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = SINE[irq::wobble_idx#10] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [108] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO) = SINE[irq::wobble_idx#10] -- _deref_pbuc1=pbuc2_derefidx_vbuxx // if raster position < SCROLL_Y pos do wobble Logo! lda SINE,x sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO @@ -3913,7 +3914,7 @@ irq: { // [109] irq::wobble_idx#1 = ++ irq::wobble_idx#10 -- vbuxx=_inc_vbuxx inx // VICIV->CHRXSCL = 0x66 - // [110] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = $66 -- _deref_pbuc1=vbuc2 + // [110] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL) = $66 -- _deref_pbuc1=vbuc2 // No zooming lda #$66 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL @@ -3922,22 +3923,22 @@ irq: { // main main: { // VICIII->KEY = 0x47 - // [111] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 + // [111] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $47 -- _deref_pbuc1=vbuc2 // Enable MEGA65 features lda #$47 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY // VICIII->KEY = 0x53 - // [112] *((byte*)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 + // [112] *((char *)VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY) = $53 -- _deref_pbuc1=vbuc2 lda #$53 sta VICIII+OFFSET_STRUCT_MOS4569_VICIII_KEY // VICIV->CONTROLB |= 0x40 - // [113] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [113] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Enable 48MHz fast mode lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLB // VICIV->CONTROLC |= 0x40 - // [114] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [114] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) = *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC) | $40 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 lda #$40 ora VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_CONTROLC @@ -3962,8 +3963,8 @@ main: { // main::@2 __b2: // for( char i=0; imain::@4] // [121] phi main::i2#2 = 0 [phi:main::@2->main::@4#0] -- vbuxx=vbuc1 @@ -4006,22 +4007,22 @@ main: { // Set up raster interrupts C64 style sei // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [130] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [130] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // VICII->RASTER = IRQ_Y - // [131] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y -- _deref_pbuc1=vbuc2 + // [131] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) = IRQ_Y -- _deref_pbuc1=vbuc2 // Set raster line to 0x16 lda #IRQ_Y sta VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER // VICII->CONTROL1 &= 0x7f - // [132] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [132] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda #$7f and VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 sta VICII+OFFSET_STRUCT_MOS6569_VICII_CONTROL1 // VICII->IRQ_ENABLE = IRQ_RASTER - // [133] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [133] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE) = IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE @@ -4042,7 +4043,7 @@ main: { lda #PROCPORT_RAM_IO sta PROCPORT // VICIV->SIDBDRWD_LO = 1 - // [137] *((byte*)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 + // [137] *((char *)VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO) = 1 -- _deref_pbuc1=vbuc2 // open sideborder lda #1 sta VICIV+OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO @@ -4081,6 +4082,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $28*$19 @@ -4088,7 +4090,7 @@ memset: { .label end = str+num .label dst = 4 // [145] phi from memset to memset::@1 [phi:memset->memset::@1] - // [145] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [145] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/examples/mega65/raster65.sym b/src/test/ref/examples/mega65/raster65.sym index 8876ff6d7..967be9d27 100644 --- a/src/test/ref/examples/mega65/raster65.sym +++ b/src/test/ref/examples/mega65/raster65.sym @@ -1,160 +1,160 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " -constant const byte GREET_COUNT = $f -constant const byte GREET_ROW = $14 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant const byte IRQ_RASTER = 1 -constant const byte IRQ_Y = $16 -constant const byte LOGO_ROW = 3 -constant byte* MEGA_LOGO[] = { $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $20, $cf, $20, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $cf, $cf, $20, $20, $20, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $20, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $cf, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $20, $20, $20, $cf } -constant byte OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 -constant byte OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 -constant byte OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 = $6f -constant byte OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c -constant byte OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c -constant byte OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21 -constant byte OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 -constant byte OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a -constant byte OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const PALETTE_BLUE = (byte*) 54016 -constant byte* const PALETTE_GREEN = (byte*) 53760 -constant byte* const PALETTE_RED = (byte*) 53504 -constant byte* PAL_BLUE[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, 0, 0, 0, 0, $c0, $b1, $a2, $a3, $34, $35, $26, $27, $f7, $f8, $f9, $ea, 0, 0, $30, $11, $22, $13, $14, 5, $b5, $96, $97, $98, $79, $6a, $5b, $4c, $81, $42, $43, $34, 5, 6, $f6, $f7, $78, $69, $5a, $5b, $4c, $3d, $1e, $f, $17, $c7, $a8, $89, $5a, $5b, $3c, $1d, $ad, $9e, $7f, $ff, $ff, $ff, $ff, $ff, $78, 9, $e9, $ca, $ab, $7c, $5d, $5e, $de, $cf, $ff, $ff, $ff, $ff, $ff, $ff, $59, $a, $ca, $bb, $8c, $6d, $3e, $2f, $bf, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $49, $f9, $da, $ab, $7c, $5d, $2e, $2f, $af, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $48, $d8, $b9, $aa, $7b, $5c, $2d, $2e, $be, $9f, $ff, $ff, $ff, $ff, $ff, $ff, 7, $97, $88, $69, $4a, $2b, $1c, $2d, $9d, $7e, $6f, $ff, $ff, $ff, $ff, $ff, $81, $62, $53, $44, 5, 6, $f6, $e7, $78, $69, $5a, $5b, $3c, $2d, $2e, $1f, 0, 0, 0, 0, $b0, $b1, $a2, $b3, $44, $35, $36, $37, 8, $f8, $a, $b, 0, 0, 0, 0, 0, $70, $61, $62, $f2, $e3, $d4, $c5, $b6, $b7, $b8, $99, 0, 0, 0, 0, 0, 0, $f0, $f1, $82, $83, $84, $85, $66, $57, $58, $59, 0, 0, 0, 0, 0, $70, $61, $62, $e2, $e3, $d4, $d5, $b6, $a7, $b8, $a9, 0, 0, 0, 0, $a0, $b1, $a2, $a3, $44, $35, $26, $37, $f7, $19, $f9, $fa } -constant byte* PAL_GREEN[] = { 0, $e3, $c4, $b5, $96, $87, $78, $79, $a, $fa, $eb, $dc, $bd, $ae, $af, $ff, $e2, $b3, $a4, $85, $76, $67, $48, $49, $d9, $da, $bb, $bc, $8d, $8e, $7f, $ff, $42, 3, 4, $e4, $d5, $c6, $b7, $a8, $39, $3a, $1b, $2c, $fc, $fd, $de, $df, $61, $32, $13, 4, $e4, $e5, $d6, $d7, $78, $59, $4a, $4b, $2c, $1d, $e, $fe, $e0, $b1, $a2, $93, $74, $75, $56, $57, $e7, $d8, $79, $ca, $ab, $9c, $9d, $8e, $f0, $d1, $c2, $a3, $84, $85, $76, $77, 8, 9, $f9, $fa, $db, $cc, $bd, $ae, $61, $22, $23, $14, $f4, $e5, $d6, $c7, $58, $59, $3a, $3b, $1c, $d, $fd, $fe, $92, $53, $44, $35, $16, $f6, $e7, $e8, $79, $6a, $5b, $4c, $2d, $3e, $1f, $ef, $53, $14, 5, $e5, $c6, $b7, $a8, $99, $2a, $2b, $c, $d, $dd, $ce, $cf, $ff, $f3, $b4, $95, $86, $57, $38, $29, $1a, $ba, $ab, $9c, $8d, $6e, $5f, $ff, $ff, $95, $56, $27, $18, $e8, $d9, $ca, $bb, $4c, $3d, $2e, $1f, $ef, $ff, $ff, $ff, $c5, $86, $57, $38, $19, $a, $ea, $db, $6c, $5d, $3e, $3f, $ef, $ff, $ff, $ff, $65, $26, 7, $e7, $c8, $b9, $9a, $9b, $2c, $1d, $fd, $fe, $cf, $ff, $ff, $ff, $b4, $75, $56, $37, $28, $19, $e9, $ea, $7b, $6c, $5d, $4e, $2f, $ff, $ff, $ff, $c3, $94, $75, $56, $47, $38, $19, $1a, $aa, $ab, $7c, $7d, $5e, $4f, $ff, $ff, $e2, $a3, $94, $85, $76, $67, $38, $49, $d9, $ca, $ab, $bc, $7d, $7e, $6f, $ff } -constant byte* PAL_RED[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, $16, $c6, $a7, $88, $49, $5a, $2b, $1c, $ac, $ad, $8e, $8f, $ff, $ff, $ff, $ff, $c6, $77, $48, $29, $e9, $fa, $cb, $cc, $5d, $4e, $2f, $ff, $ff, $ff, $ff, $ff, $57, $18, $f8, $d9, $aa, $8b, $6c, $5d, $ed, $de, $cf, $ff, $ff, $ff, $ff, $ff, $26, $e6, $b7, $a8, $69, $5a, $3b, $3c, $dc, $cd, $ae, $9f, $ff, $ff, $ff, $ff, $65, $16, $17, $f7, $d8, $b9, $9a, $8b, $2c, $d, $fd, $ee, $cf, $ff, $ff, $ff, $64, $15, 6, $e6, $c7, $a8, $99, $8a, $1b, $c, $fc, $fd, $ee, $cf, $ff, $ff, $12, $d2, $d3, $b4, $95, $86, $77, $78, 9, $69, $ea, $fb, $dc, $ad, $ae, $af, $f0, $c1, $c2, $a3, $84, $85, $76, $67, 8, $f8, $e9, $da, $db, $bc, $bd, $ae, $40, $11, $12, $f2, $e3, $d4, $c5, $c6, $47, $38, $39, $2a, $1b, $c, $d, $ed, 0, 0, $f0, $d1, $c2, $b3, $a4, $95, $36, $27, $28, $29, $f9, $ea, $eb, $ec, $70, $41, $22, $23, $f3, $f4, $e5, $e6, $77, $78, $69, $7a, $3b, $3c, $3d, $3e, $a1, $82, $63, $54, $35, $26, 7, 8, $98, $99, $8a, $7b, $5c, $5d, $3e, $3f, $33, 4, $d4, $d5, $a6, $a7, $88, $89, $1a, $ab, $fb, $ec, $cd, $be, $af, $ff, $b4, $85, $56, $47, $18, 9, $f9, $ea, $7b, $7c, $5d, $5e, $2f, $ef, $ff, $ff, 6, $d6, $a7, $98, $59, $4a, $2b, $2c, $bc, $ad, $8e, $8f, $ff, $ff, $ff, $ff } -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant const byte RASTER_LINES = $d8 -constant const byte SCROLL_BLACKBARS = $13 -constant const byte SCROLL_ROW = $d -constant byte* SCROLL_TEXT[] = " THIS SMALL MEGA65 RASTER INTRO ... WAS MADE BY DEFT IN 2015 ... AND BROUGHT BACK TO LIFE 5 YEARS LATER IN 2020 ... BECAUSE THE MEGA65 HARDWARE CHANGED SO MUCH IN THE PAST 5 YEARS ... UNFORTUNATELY MY ASSEMBLER SKILLS DID NOT SO THIS IS THE FIRST APPROACH TO GET BETTER ... HOPEFULLY DR.MUTTI WILL HAVE TO SCOLD ME LESS ... THE PAST 5 YEARS HAVE BEEN AN UNFORGETTABLE & UNIQUE RIDE ... IF YOU DO WATCH THIS DEMO ON YOUR VERY OWN MEGA65 THERE IS ENOUGH EVIDENCE OF WHAT WE ACTUALLY ACHIEVED ... BELOW ARE THE GREETINGS TO DEAR AND VERY SPECIAL PEOPLE WHO HELPED TO GET THERE ... THANK YOU SO MUCH FOR YOUR SUPPORT AND FOR NOT GIVING UP ... DUAL SID TUNE BY RAYDEN OF ALPHA FLIGHT ... THIS SCROLLY WILL NOW RESTART *WRAP* " -constant const byte SCROLL_Y = $66 -constant byte* SINE[$100] = kickasm {{ .fill 256, 91.5 + 91.5*sin(i*2*PI/256) +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char GREETING[] = " DOUBLEFLASH ADTBM SY2002 TAYGER SERIOUSLY LIBI IN PARADIZE LGB BLUEWAYSW SAUSAGE BIT SHIFTER INDIOCOLIFA GRUMPYNINJA 0-LIMITS CHEVERON DR. COMMODORE " +__constant const char GREET_COUNT = $f +__constant const char GREET_ROW = $14 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant const char IRQ_RASTER = 1 +__constant const char IRQ_Y = $16 +__constant const char LOGO_ROW = 3 +__constant char MEGA_LOGO[] = { $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $20, $cf, $20, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $cf, $cf, $20, $20, $20, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $20, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $cf, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $20, $20, $20, $cf } +__constant char OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31 +__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54 +__constant char OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 = $6f +__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c +__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c +__constant char OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21 +__constant char OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11 +__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16 +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a +__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const PALETTE_BLUE = (char *) 54016 +__constant char * const PALETTE_GREEN = (char *) 53760 +__constant char * const PALETTE_RED = (char *) 53504 +__constant char PAL_BLUE[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, 0, 0, 0, 0, $c0, $b1, $a2, $a3, $34, $35, $26, $27, $f7, $f8, $f9, $ea, 0, 0, $30, $11, $22, $13, $14, 5, $b5, $96, $97, $98, $79, $6a, $5b, $4c, $81, $42, $43, $34, 5, 6, $f6, $f7, $78, $69, $5a, $5b, $4c, $3d, $1e, $f, $17, $c7, $a8, $89, $5a, $5b, $3c, $1d, $ad, $9e, $7f, $ff, $ff, $ff, $ff, $ff, $78, 9, $e9, $ca, $ab, $7c, $5d, $5e, $de, $cf, $ff, $ff, $ff, $ff, $ff, $ff, $59, $a, $ca, $bb, $8c, $6d, $3e, $2f, $bf, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $49, $f9, $da, $ab, $7c, $5d, $2e, $2f, $af, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $48, $d8, $b9, $aa, $7b, $5c, $2d, $2e, $be, $9f, $ff, $ff, $ff, $ff, $ff, $ff, 7, $97, $88, $69, $4a, $2b, $1c, $2d, $9d, $7e, $6f, $ff, $ff, $ff, $ff, $ff, $81, $62, $53, $44, 5, 6, $f6, $e7, $78, $69, $5a, $5b, $3c, $2d, $2e, $1f, 0, 0, 0, 0, $b0, $b1, $a2, $b3, $44, $35, $36, $37, 8, $f8, $a, $b, 0, 0, 0, 0, 0, $70, $61, $62, $f2, $e3, $d4, $c5, $b6, $b7, $b8, $99, 0, 0, 0, 0, 0, 0, $f0, $f1, $82, $83, $84, $85, $66, $57, $58, $59, 0, 0, 0, 0, 0, $70, $61, $62, $e2, $e3, $d4, $d5, $b6, $a7, $b8, $a9, 0, 0, 0, 0, $a0, $b1, $a2, $a3, $44, $35, $26, $37, $f7, $19, $f9, $fa } +__constant char PAL_GREEN[] = { 0, $e3, $c4, $b5, $96, $87, $78, $79, $a, $fa, $eb, $dc, $bd, $ae, $af, $ff, $e2, $b3, $a4, $85, $76, $67, $48, $49, $d9, $da, $bb, $bc, $8d, $8e, $7f, $ff, $42, 3, 4, $e4, $d5, $c6, $b7, $a8, $39, $3a, $1b, $2c, $fc, $fd, $de, $df, $61, $32, $13, 4, $e4, $e5, $d6, $d7, $78, $59, $4a, $4b, $2c, $1d, $e, $fe, $e0, $b1, $a2, $93, $74, $75, $56, $57, $e7, $d8, $79, $ca, $ab, $9c, $9d, $8e, $f0, $d1, $c2, $a3, $84, $85, $76, $77, 8, 9, $f9, $fa, $db, $cc, $bd, $ae, $61, $22, $23, $14, $f4, $e5, $d6, $c7, $58, $59, $3a, $3b, $1c, $d, $fd, $fe, $92, $53, $44, $35, $16, $f6, $e7, $e8, $79, $6a, $5b, $4c, $2d, $3e, $1f, $ef, $53, $14, 5, $e5, $c6, $b7, $a8, $99, $2a, $2b, $c, $d, $dd, $ce, $cf, $ff, $f3, $b4, $95, $86, $57, $38, $29, $1a, $ba, $ab, $9c, $8d, $6e, $5f, $ff, $ff, $95, $56, $27, $18, $e8, $d9, $ca, $bb, $4c, $3d, $2e, $1f, $ef, $ff, $ff, $ff, $c5, $86, $57, $38, $19, $a, $ea, $db, $6c, $5d, $3e, $3f, $ef, $ff, $ff, $ff, $65, $26, 7, $e7, $c8, $b9, $9a, $9b, $2c, $1d, $fd, $fe, $cf, $ff, $ff, $ff, $b4, $75, $56, $37, $28, $19, $e9, $ea, $7b, $6c, $5d, $4e, $2f, $ff, $ff, $ff, $c3, $94, $75, $56, $47, $38, $19, $1a, $aa, $ab, $7c, $7d, $5e, $4f, $ff, $ff, $e2, $a3, $94, $85, $76, $67, $38, $49, $d9, $ca, $ab, $bc, $7d, $7e, $6f, $ff } +__constant char PAL_RED[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, $16, $c6, $a7, $88, $49, $5a, $2b, $1c, $ac, $ad, $8e, $8f, $ff, $ff, $ff, $ff, $c6, $77, $48, $29, $e9, $fa, $cb, $cc, $5d, $4e, $2f, $ff, $ff, $ff, $ff, $ff, $57, $18, $f8, $d9, $aa, $8b, $6c, $5d, $ed, $de, $cf, $ff, $ff, $ff, $ff, $ff, $26, $e6, $b7, $a8, $69, $5a, $3b, $3c, $dc, $cd, $ae, $9f, $ff, $ff, $ff, $ff, $65, $16, $17, $f7, $d8, $b9, $9a, $8b, $2c, $d, $fd, $ee, $cf, $ff, $ff, $ff, $64, $15, 6, $e6, $c7, $a8, $99, $8a, $1b, $c, $fc, $fd, $ee, $cf, $ff, $ff, $12, $d2, $d3, $b4, $95, $86, $77, $78, 9, $69, $ea, $fb, $dc, $ad, $ae, $af, $f0, $c1, $c2, $a3, $84, $85, $76, $67, 8, $f8, $e9, $da, $db, $bc, $bd, $ae, $40, $11, $12, $f2, $e3, $d4, $c5, $c6, $47, $38, $39, $2a, $1b, $c, $d, $ed, 0, 0, $f0, $d1, $c2, $b3, $a4, $95, $36, $27, $28, $29, $f9, $ea, $eb, $ec, $70, $41, $22, $23, $f3, $f4, $e5, $e6, $77, $78, $69, $7a, $3b, $3c, $3d, $3e, $a1, $82, $63, $54, $35, $26, 7, 8, $98, $99, $8a, $7b, $5c, $5d, $3e, $3f, $33, 4, $d4, $d5, $a6, $a7, $88, $89, $1a, $ab, $fb, $ec, $cd, $be, $af, $ff, $b4, $85, $56, $47, $18, 9, $f9, $ea, $7b, $7c, $5d, $5e, $2f, $ef, $ff, $ff, 6, $d6, $a7, $98, $59, $4a, $2b, $2c, $bc, $ad, $8e, $8f, $ff, $ff, $ff, $ff } +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant const char RASTER_LINES = $d8 +__constant const char SCROLL_BLACKBARS = $13 +__constant const char SCROLL_ROW = $d +__constant char SCROLL_TEXT[] = " THIS SMALL MEGA65 RASTER INTRO ... WAS MADE BY DEFT IN 2015 ... AND BROUGHT BACK TO LIFE 5 YEARS LATER IN 2020 ... BECAUSE THE MEGA65 HARDWARE CHANGED SO MUCH IN THE PAST 5 YEARS ... UNFORTUNATELY MY ASSEMBLER SKILLS DID NOT SO THIS IS THE FIRST APPROACH TO GET BETTER ... HOPEFULLY DR.MUTTI WILL HAVE TO SCOLD ME LESS ... THE PAST 5 YEARS HAVE BEEN AN UNFORGETTABLE & UNIQUE RIDE ... IF YOU DO WATCH THIS DEMO ON YOUR VERY OWN MEGA65 THERE IS ENOUGH EVIDENCE OF WHAT WE ACTUALLY ACHIEVED ... BELOW ARE THE GREETINGS TO DEAR AND VERY SPECIAL PEOPLE WHO HELPED TO GET THERE ... THANK YOU SO MUCH FOR YOUR SUPPORT AND FOR NOT GIVING UP ... DUAL SID TUNE BY RAYDEN OF ALPHA FLIGHT ... THIS SCROLLY WILL NOW RESTART *WRAP* " +__constant const char SCROLL_Y = $66 +__constant char SINE[$100] = kickasm {{ .fill 256, 91.5 + 91.5*sin(i*2*PI/256) }} -constant byte SIZEOF_BYTE = 1 -constant byte* SONG[] = kickasm {{ .import c64 "DiscoZak_2SID_patched.prg" +__constant char SIZEOF_CHAR = 1 +__constant char SONG[] = kickasm {{ .import c64 "DiscoZak_2SID_patched.prg" }} -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 -constant struct MOS4569_VICIII* const VICIII = (struct MOS4569_VICIII*) 53248 -constant struct MEGA65_VICIV* const VICIV = (struct MEGA65_VICIV*) 53248 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 +__constant struct MOS4569_VICIII * const VICIII = (struct MOS4569_VICIII *) 53248 +__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *) 53248 void __start() -volatile byte greet_idx loadstore zp[1]:11 0.6153846153846154 -volatile byte greet_zoomx loadstore zp[1]:10 1.3939393939393938 +__loadstore volatile char greet_idx // zp[1]:11 0.6153846153846154 +__loadstore volatile char greet_zoomx // zp[1]:10 1.3939393939393938 __interrupt(hardware_clobber) void irq() -byte~ irq::$10 reg byte a 22.0 -byte~ irq::$26 reg byte a 22.0 -byte~ irq::$27 reg byte a 22.0 -byte~ irq::$29 reg byte a 22.0 -byte~ irq::$33 reg byte a 4.0 -byte irq::barcnt -byte irq::barcnt#1 barcnt zp[1]:2 22.0 -byte irq::barcnt#2 barcnt zp[1]:2 2.588235294117647 -byte irq::barcol -byte irq::barcol#0 reg byte z 22.0 -byte irq::barcol#1 reg byte z 101.0 -byte irq::barcol#2 reg byte z 75.75 -byte irq::barcol#3 reg byte z 103.75 -byte irq::barcol#4 reg byte z 151.5 -byte irq::col -byte irq::col#0 reg byte a 16.5 -byte irq::col1 -byte irq::col1#0 reg byte a 16.5 -byte irq::col1#1 reg byte a 12.833333333333334 -byte irq::greet_offset -byte irq::greet_offset#0 reg byte y 4.0 -byte irq::greet_offset#1 reg byte y 11.0 -byte irq::greet_offset#2 reg byte y 8.75 -byte irq::i -byte irq::i#1 reg byte x 22.0 -byte irq::i#2 reg byte x 9.307692307692307 -byte irq::i1 -byte irq::i1#1 reg byte y 202.0 -byte irq::i1#2 reg byte y 60.599999999999994 -byte irq::i2 -byte irq::i2#1 reg byte y 202.0 -byte irq::i2#2 reg byte y 60.599999999999994 -byte irq::i3 -byte irq::i3#1 reg byte x 22.0 -byte irq::i3#2 reg byte x 11.0 -byte irq::i4 -byte irq::i4#1 reg byte x 22.0 -byte irq::i4#2 reg byte x 8.8 -byte irq::i5 -byte irq::i5#1 reg byte x 22.0 -byte irq::i5#2 reg byte x 18.333333333333332 -byte irq::idx -byte irq::idx#0 reg byte x 11.0 -byte irq::idx#1 reg byte x 67.33333333333333 -byte irq::idx#2 reg byte x 101.0 -byte irq::idx#3 reg byte x 138.33333333333331 -byte irq::idx#4 reg byte x 101.0 -byte irq::l -byte irq::l#1 reg byte x 22.0 -byte irq::l#2 reg byte x 14.666666666666666 -byte irq::line -byte irq::line#1 reg byte z 22.0 -byte irq::line#10 reg byte z 3.259259259259259 -byte irq::nxt -byte irq::nxt#0 reg byte a 2.0 -byte irq::nxt#1 reg byte a 4.0 -byte irq::nxt#2 reg byte a 6.0 -byte irq::raster -byte irq::raster#0 reg byte a 56.0 -byte irq::sin_bar -byte irq::sin_bar#0 sin_bar zp[1]:3 4.0 -byte irq::sin_bar#1 sin_bar zp[1]:3 11.0 -byte irq::sin_bar#2 sin_bar zp[1]:3 2.1875 -byte irq::sin_col -byte irq::sin_col#0 reg byte y 4.0 -byte irq::sin_col#1 reg byte y 11.0 -byte irq::sin_col#2 reg byte y 3.833333333333333 -byte irq::wobble_idx -byte irq::wobble_idx#0 reg byte x 4.0 -byte irq::wobble_idx#1 reg byte x 11.0 -byte irq::wobble_idx#10 reg byte x 4.590909090909091 -byte irq::wobble_idx#7 reg byte x 22.0 -byte irq::zoomval -byte irq::zoomval#0 reg byte a 11.0 +char irq::$10 // reg byte a 22.0 +char irq::$26 // reg byte a 22.0 +char irq::$27 // reg byte a 22.0 +char irq::$29 // reg byte a 22.0 +char irq::$33 // reg byte a 4.0 +char irq::barcnt +char irq::barcnt#1 // barcnt zp[1]:2 22.0 +char irq::barcnt#2 // barcnt zp[1]:2 2.588235294117647 +char irq::barcol +char irq::barcol#0 // reg byte z 22.0 +char irq::barcol#1 // reg byte z 101.0 +char irq::barcol#2 // reg byte z 75.75 +char irq::barcol#3 // reg byte z 103.75 +char irq::barcol#4 // reg byte z 151.5 +char irq::col +char irq::col#0 // reg byte a 16.5 +char irq::col1 +char irq::col1#0 // reg byte a 16.5 +char irq::col1#1 // reg byte a 12.833333333333334 +char irq::greet_offset +char irq::greet_offset#0 // reg byte y 4.0 +char irq::greet_offset#1 // reg byte y 11.0 +char irq::greet_offset#2 // reg byte y 8.75 +char irq::i +char irq::i#1 // reg byte x 22.0 +char irq::i#2 // reg byte x 9.307692307692307 +char irq::i1 +char irq::i1#1 // reg byte y 202.0 +char irq::i1#2 // reg byte y 60.599999999999994 +char irq::i2 +char irq::i2#1 // reg byte y 202.0 +char irq::i2#2 // reg byte y 60.599999999999994 +char irq::i3 +char irq::i3#1 // reg byte x 22.0 +char irq::i3#2 // reg byte x 11.0 +char irq::i4 +char irq::i4#1 // reg byte x 22.0 +char irq::i4#2 // reg byte x 8.8 +char irq::i5 +char irq::i5#1 // reg byte x 22.0 +char irq::i5#2 // reg byte x 18.333333333333332 +char irq::idx +char irq::idx#0 // reg byte x 11.0 +char irq::idx#1 // reg byte x 67.33333333333333 +char irq::idx#2 // reg byte x 101.0 +char irq::idx#3 // reg byte x 138.33333333333331 +char irq::idx#4 // reg byte x 101.0 +char irq::l +char irq::l#1 // reg byte x 22.0 +char irq::l#2 // reg byte x 14.666666666666666 +char irq::line +char irq::line#1 // reg byte z 22.0 +char irq::line#10 // reg byte z 3.259259259259259 +char irq::nxt +char irq::nxt#0 // reg byte a 2.0 +char irq::nxt#1 // reg byte a 4.0 +char irq::nxt#2 // reg byte a 6.0 +char irq::raster +char irq::raster#0 // reg byte a 56.0 +char irq::sin_bar +char irq::sin_bar#0 // sin_bar zp[1]:3 4.0 +char irq::sin_bar#1 // sin_bar zp[1]:3 11.0 +char irq::sin_bar#2 // sin_bar zp[1]:3 2.1875 +char irq::sin_col +char irq::sin_col#0 // reg byte y 4.0 +char irq::sin_col#1 // reg byte y 11.0 +char irq::sin_col#2 // reg byte y 3.833333333333333 +char irq::wobble_idx +char irq::wobble_idx#0 // reg byte x 4.0 +char irq::wobble_idx#1 // reg byte x 11.0 +char irq::wobble_idx#10 // reg byte x 4.590909090909091 +char irq::wobble_idx#7 // reg byte x 22.0 +char irq::zoomval +char irq::zoomval#0 // reg byte a 11.0 void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 202.0 -byte main::i1 -byte main::i1#1 reg byte x 202.0 -byte main::i1#2 reg byte x 168.33333333333331 -byte main::i2 -byte main::i2#1 reg byte x 202.0 -byte main::i2#2 reg byte x 134.66666666666666 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = (word)$28*$19 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)DEFAULT_SCREEN -constant byte* rasters[RASTER_LINES] = { fill( RASTER_LINES, 0) } -byte* volatile scroll_ptr loadstore zp[2]:8 0.19672131147540986 -volatile byte scroll_soft loadstore zp[1]:7 0.2441860465116279 -volatile byte sin_idx loadstore zp[1]:6 0.49999999999999994 -constant void()* songInit = (void()*)SONG -constant void()* songPlay = (void()*)SONG+3 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 202.0 +char main::i1 +char main::i1#1 // reg byte x 202.0 +char main::i1#2 // reg byte x 168.33333333333331 +char main::i2 +char main::i2#1 // reg byte x 202.0 +char main::i2#2 // reg byte x 134.66666666666666 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = (unsigned int)$28*$19 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)DEFAULT_SCREEN // str +__constant char rasters[RASTER_LINES] = { fill( RASTER_LINES, 0) } +__loadstore char * volatile scroll_ptr // zp[2]:8 0.19672131147540986 +__loadstore volatile char scroll_soft // zp[1]:7 0.2441860465116279 +__loadstore volatile char sin_idx // zp[1]:6 0.49999999999999994 +__constant void (*songInit)() = (void (*)())SONG +__constant void (*songPlay)() = (void (*)())SONG+3 reg byte z [ irq::line#10 irq::line#1 ] reg byte x [ irq::wobble_idx#10 irq::wobble_idx#0 irq::wobble_idx#7 irq::wobble_idx#1 ] diff --git a/src/test/ref/examples/mega65/test-vic4.cfg b/src/test/ref/examples/mega65/test-vic4.cfg index 495816006..af4e9c13c 100644 --- a/src/test/ref/examples/mega65/test-vic4.cfg +++ b/src/test/ref/examples/mega65/test-vic4.cfg @@ -15,10 +15,10 @@ main::@3: scope:[main] from main::@1 main::@4 [7] if(main::col#2BORDER_COLOR = VICII->RASTER - // [8] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- _deref_pbuc1=_deref_pbuc2 + // [8] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER) -- _deref_pbuc1=_deref_pbuc2 lda VICII+OFFSET_STRUCT_MOS6569_VICII_RASTER sta VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR jmp __b5 // main::@4 __b4: // *col = (char)col - // [9] *main::col#2 = (byte)main::col#2 -- _deref_pbuz1=_byte_pbuz1 + // [9] *main::col#2 = (char)main::col#2 -- _deref_pbuz1=_byte_pbuz1 lda.z col ldy #0 sta (col),y diff --git a/src/test/ref/examples/mega65/test-vic4.sym b/src/test/ref/examples/mega65/test-vic4.sym index 016530f12..4322a0255 100644 --- a/src/test/ref/examples/mega65/test-vic4.sym +++ b/src/test/ref/examples/mega65/test-vic4.sym @@ -1,18 +1,18 @@ -constant byte* const COLORS = (byte*) 55296 -constant const byte CRAM2K = 1 -constant volatile byte* const IO_BANK = (byte*) 53296 -constant volatile byte* const IO_KEY = (byte*) 53295 -constant byte OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 -constant byte OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 -constant byte* const SCREEN = (byte*) 2048 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char * const COLORS = (char *) 55296 +__constant const char CRAM2K = 1 +__constant volatile char * const IO_BANK = (char *) 53296 +__constant volatile char * const IO_KEY = (char *) 53295 +__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20 +__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12 +__constant char * const SCREEN = (char *) 2048 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void main() -byte* main::col -byte* main::col#1 col zp[2]:4 22.0 -byte* main::col#2 col zp[2]:4 14.666666666666666 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 +char *main::col +char *main::col#1 // col zp[2]:4 22.0 +char *main::col#2 // col zp[2]:4 14.666666666666666 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 zp[2]:2 [ main::sc#2 main::sc#1 ] zp[2]:4 [ main::col#2 main::col#1 ] diff --git a/src/test/ref/examples/nes/nes-dxycp.asm b/src/test/ref/examples/nes/nes-dxycp.asm index 7e8e15a0a..259074948 100644 --- a/src/test/ref/examples/nes/nes-dxycp.asm +++ b/src/test/ref/examples/nes/nes-dxycp.asm @@ -52,7 +52,7 @@ .const OFFSET_STRUCT_RICOH_2C02_PPUADDR = 6 .const OFFSET_STRUCT_RICOH_2C02_PPUDATA = 7 .const OFFSET_STRUCT_RICOH_2C02_PPUSCROLL = 5 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// $2000-$23bf $03c0 Name table 0 .label PPU_NAME_TABLE_0 = $2000 /// $23c0-$23ff $0040 Attribute table 0 @@ -398,8 +398,9 @@ readJoy1: { // - ppuData : Pointer in the PPU memory // - cpuData : Pointer to the CPU memory (RAM of ROM) // - size : The number of bytes to transfer +// void ppuDataTransfer(void * const ppuData, void * const cpuData, unsigned int size) ppuDataTransfer: { - .const size = $20*SIZEOF_BYTE + .const size = $20*SIZEOF_CHAR .label ppuData = PPU_PALETTE .label cpuData = PALETTE // Transfer to PPU @@ -451,7 +452,7 @@ ppuDataTransfer: { // Fill a number of bytes in the PPU memory // - ppuData : Pointer in the PPU memory // - size : The number of bytes to transfer -// ppuDataFill(byte register(X) val, word zp(8) size) +// void ppuDataFill(void * const ppuData, __register(X) char val, __zp(8) unsigned int size) ppuDataFill: { .label ppuDataPrepare1_ppuData = 6 .label i = $a diff --git a/src/test/ref/examples/nes/nes-dxycp.cfg b/src/test/ref/examples/nes/nes-dxycp.cfg index 9069fdaa7..f1132c607 100644 --- a/src/test/ref/examples/nes/nes-dxycp.cfg +++ b/src/test/ref/examples/nes/nes-dxycp.cfg @@ -10,7 +10,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [4] phi() - [5] call main + [5] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [6] return @@ -18,16 +18,16 @@ __start::@return: scope:[__start] from __start::@1 __interrupt(hardware_all) void vblank() vblank: scope:[vblank] from - [7] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 - [8] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 + [7] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 + [8] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 to:vblank::ppuSpriteBufferDmaTransfer1 vblank::ppuSpriteBufferDmaTransfer1: scope:[vblank] from vblank - [9] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 - [10] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER + [9] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 + [10] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER to:vblank::@14 vblank::@14: scope:[vblank] from vblank::ppuSpriteBufferDmaTransfer1 [11] phi() - [12] call readJoy1 + [12] call readJoy1 [13] readJoy1::return#2 = readJoy1::joy#2 to:vblank::@15 vblank::@15: scope:[vblank] from vblank::@14 @@ -68,10 +68,10 @@ vblank::@6: scope:[vblank] from vblank::@13 vblank::@5 to:vblank::@return vblank::@7: scope:[vblank] from vblank::@6 [31] vblank::$28 = vblank::s#2 << 2 - [32] ((byte*)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] + [32] ((char *)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] [33] vblank::y_idx#1 = vblank::y_idx#2 - 4 [34] vblank::$14 = SINTABLE_184[vblank::x_idx#2] + SINTABLE_64[vblank::x_idx_2#2] - [35] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 + [35] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 [36] if(vblank::x_idx#2<3) goto vblank::@8 to:vblank::@9 vblank::@9: scope:[vblank] from vblank::@7 @@ -103,12 +103,12 @@ main::initNES1: scope:[main] from main asm { cld ldx#$ff txs } to:main::initNES1_disableVideoOutput1 main::initNES1_disableVideoOutput1: scope:[main] from main::initNES1 - [47] *((byte*)PPU) = 0 - [48] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 + [47] *((char *)PPU) = 0 + [48] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 to:main::initNES1_disableAudioOutput1 main::initNES1_disableAudioOutput1: scope:[main] from main::initNES1_disableVideoOutput1 [49] *FR_COUNTER = $40 - [50] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 + [50] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 to:main::initNES1_clearVBlankFlag1 main::initNES1_clearVBlankFlag1: scope:[main] from main::initNES1_disableAudioOutput1 asm { ldaPPU_PPUSTATUS } @@ -117,7 +117,7 @@ main::initNES1_waitForVBlank1: scope:[main] from main::initNES1_clearVBlankFlag [52] phi() to:main::initNES1_waitForVBlank1_@1 main::initNES1_waitForVBlank1_@1: scope:[main] from main::initNES1_waitForVBlank1 main::initNES1_waitForVBlank1_@1 - [53] main::initNES1_waitForVBlank1_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 + [53] main::initNES1_waitForVBlank1_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 [54] if(0==main::initNES1_waitForVBlank1_$0) goto main::initNES1_waitForVBlank1_@1 to:main::initNES1_@1 main::initNES1_@1: scope:[main] from main::initNES1_@1 main::initNES1_waitForVBlank1_@1 @@ -137,7 +137,7 @@ main::initNES1_waitForVBlank2: scope:[main] from main::initNES1_@1 [66] phi() to:main::initNES1_waitForVBlank2_@1 main::initNES1_waitForVBlank2_@1: scope:[main] from main::initNES1_waitForVBlank2 main::initNES1_waitForVBlank2_@1 - [67] main::initNES1_waitForVBlank2_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 + [67] main::initNES1_waitForVBlank2_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 [68] if(0==main::initNES1_waitForVBlank2_$0) goto main::initNES1_waitForVBlank2_@1 to:main::initNES1_@7 main::initNES1_@7: scope:[main] from main::initNES1_waitForVBlank2_@1 @@ -145,40 +145,40 @@ main::initNES1_@7: scope:[main] from main::initNES1_waitForVBlank2_@1 to:main::@4 main::@4: scope:[main] from main::initNES1_@7 [70] phi() - [71] call ppuDataTransfer + [71] call ppuDataTransfer to:main::@5 main::@5: scope:[main] from main::@4 [72] phi() - [73] call ppuDataFill + [73] call ppuDataFill to:main::@6 main::@6: scope:[main] from main::@5 [74] phi() - [75] call ppuDataFill + [75] call ppuDataFill to:main::@1 main::@1: scope:[main] from main::@2 main::@6 [76] main::s#2 = phi( main::@2/main::s#1, main::@6/0 ) [77] if(main::s#2<$40) goto main::@2 to:main::enableVideoOutput1 main::enableVideoOutput1: scope:[main] from main::@1 - [78] *((byte*)PPU) = $80 - [79] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e + [78] *((char *)PPU) = $80 + [79] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e to:main::@3 main::@3: scope:[main] from main::@3 main::enableVideoOutput1 [80] phi() to:main::@3 main::@2: scope:[main] from main::@1 [81] main::$7 = main::s#2 << 2 - [82] ((byte*)SPRITE_BUFFER)[main::$7] = 0 - [83] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] - [84] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 - [85] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 + [82] ((char *)SPRITE_BUFFER)[main::$7] = 0 + [83] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] + [84] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 + [85] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 [86] main::s#1 = ++ main::s#2 to:main::@1 -byte readJoy1() +char readJoy1() readJoy1: scope:[readJoy1] from vblank::@14 - [87] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 - [88] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 + [87] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 + [88] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 to:readJoy1::@1 readJoy1::@1: scope:[readJoy1] from readJoy1 readJoy1::@2 [89] readJoy1::joy#2 = phi( readJoy1/0, readJoy1::@2/readJoy1::joy#1 ) @@ -190,21 +190,21 @@ readJoy1::@return: scope:[readJoy1] from readJoy1::@1 to:@return readJoy1::@2: scope:[readJoy1] from readJoy1::@1 [92] readJoy1::$1 = readJoy1::joy#2 << 1 - [93] readJoy1::$2 = *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 + [93] readJoy1::$2 = *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 [94] readJoy1::joy#1 = readJoy1::$1 | readJoy1::$2 [95] readJoy1::i#1 = ++ readJoy1::i#2 to:readJoy1::@1 -void ppuDataTransfer(void* const ppuDataTransfer::ppuData , void* const ppuDataTransfer::cpuData , word ppuDataTransfer::size) +void ppuDataTransfer(void * const ppuData , void * const cpuData , unsigned int size) ppuDataTransfer: scope:[ppuDataTransfer] from main::@4 [96] phi() to:ppuDataTransfer::ppuDataPrepare1 ppuDataTransfer::ppuDataPrepare1: scope:[ppuDataTransfer] from ppuDataTransfer - [97] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 - [98] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 + [97] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 + [98] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 to:ppuDataTransfer::@1 ppuDataTransfer::@1: scope:[ppuDataTransfer] from ppuDataTransfer::@3 ppuDataTransfer::ppuDataPrepare1 - [99] ppuDataTransfer::cpuSrc#2 = phi( ppuDataTransfer::ppuDataPrepare1/(byte*)ppuDataTransfer::cpuData#0, ppuDataTransfer::@3/ppuDataTransfer::cpuSrc#1 ) + [99] ppuDataTransfer::cpuSrc#2 = phi( ppuDataTransfer::ppuDataPrepare1/(char *)ppuDataTransfer::cpuData#0, ppuDataTransfer::@3/ppuDataTransfer::cpuSrc#1 ) [99] ppuDataTransfer::i#2 = phi( ppuDataTransfer::ppuDataPrepare1/0, ppuDataTransfer::@3/ppuDataTransfer::i#1 ) [100] if(ppuDataTransfer::i#2=$56) goto vblank::@13 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [0] readJoy1::$7 = (byte*)APU -Constant right-side identified [3] readJoy1::$8 = (byte*)APU -Constant right-side identified [12] readJoy1::$9 = (byte*)APU -Constant right-side identified [20] ppuDataFill::ppuDataPrepare1_$4 = (byte*)PPU -Constant right-side identified [24] ppuDataFill::ppuDataPrepare1_$5 = (byte*)PPU -Constant right-side identified [31] ppuDataFill::ppuDataPut1_$1 = (byte*)PPU -Constant right-side identified [38] ppuDataTransfer::ppuDataPrepare1_$4 = (byte*)PPU -Constant right-side identified [42] ppuDataTransfer::ppuDataPrepare1_$5 = (byte*)PPU -Constant right-side identified [51] ppuDataTransfer::ppuDataPut1_$1 = (byte*)PPU -Constant right-side identified [58] main::initNES1_disableVideoOutput1_$2 = (byte*)PPU -Constant right-side identified [61] main::initNES1_disableVideoOutput1_$3 = (byte*)PPU -Constant right-side identified [65] main::initNES1_disableAudioOutput1_$1 = (byte*)APU -Constant right-side identified [69] main::initNES1_waitForVBlank1_$3 = (volatile byte*)PPU -Constant right-side identified [87] main::initNES1_waitForVBlank2_$3 = (volatile byte*)PPU +Constant right-side identified [0] readJoy1::$7 = (char *)APU +Constant right-side identified [3] readJoy1::$8 = (char *)APU +Constant right-side identified [12] readJoy1::$9 = (char *)APU +Constant right-side identified [20] ppuDataFill::ppuDataPrepare1_$4 = (char *)PPU +Constant right-side identified [24] ppuDataFill::ppuDataPrepare1_$5 = (char *)PPU +Constant right-side identified [31] ppuDataFill::ppuDataPut1_$1 = (char *)PPU +Constant right-side identified [38] ppuDataTransfer::ppuDataPrepare1_$4 = (char *)PPU +Constant right-side identified [42] ppuDataTransfer::ppuDataPrepare1_$5 = (char *)PPU +Constant right-side identified [51] ppuDataTransfer::ppuDataPut1_$1 = (char *)PPU +Constant right-side identified [58] main::initNES1_disableVideoOutput1_$2 = (char *)PPU +Constant right-side identified [61] main::initNES1_disableVideoOutput1_$3 = (char *)PPU +Constant right-side identified [65] main::initNES1_disableAudioOutput1_$1 = (char *)APU +Constant right-side identified [69] main::initNES1_waitForVBlank1_$3 = (volatile char *)PPU +Constant right-side identified [87] main::initNES1_waitForVBlank2_$3 = (volatile char *)PPU Constant right-side identified [93] ppuDataTransfer::size#0 = sizeof PALETTE Constant right-side identified [99] ppuDataFill::size#0 = (unumber)$20*$1e -Constant right-side identified [115] main::enableVideoOutput1_$2 = (byte*)PPU -Constant right-side identified [118] main::enableVideoOutput1_$3 = (byte*)PPU -Constant right-side identified [124] vblank::$31 = (byte*)PPU -Constant right-side identified [127] vblank::$32 = (byte*)PPU -Constant right-side identified [131] vblank::ppuSpriteBufferDmaTransfer1_$3 = (byte*)PPU -Constant right-side identified [135] vblank::ppuSpriteBufferDmaTransfer1_$4 = (byte*)APU +Constant right-side identified [115] main::enableVideoOutput1_$2 = (char *)PPU +Constant right-side identified [118] main::enableVideoOutput1_$3 = (char *)PPU +Constant right-side identified [124] vblank::$31 = (char *)PPU +Constant right-side identified [127] vblank::$32 = (char *)PPU +Constant right-side identified [131] vblank::ppuSpriteBufferDmaTransfer1_$3 = (char *)PPU +Constant right-side identified [135] vblank::ppuSpriteBufferDmaTransfer1_$4 = (char *)APU Successful SSA optimization Pass2ConstantRValueConsolidation -Constant readJoy1::$7 = (byte*)APU -Constant readJoy1::$8 = (byte*)APU +Constant readJoy1::$7 = (char *)APU +Constant readJoy1::$8 = (char *)APU Constant readJoy1::joy#0 = 0 Constant readJoy1::i#0 = 0 -Constant readJoy1::$9 = (byte*)APU -Constant ppuDataFill::ppuDataPrepare1_$4 = (byte*)PPU -Constant ppuDataFill::ppuDataPrepare1_$5 = (byte*)PPU +Constant readJoy1::$9 = (char *)APU +Constant ppuDataFill::ppuDataPrepare1_$4 = (char *)PPU +Constant ppuDataFill::ppuDataPrepare1_$5 = (char *)PPU Constant ppuDataFill::i#0 = 0 -Constant ppuDataFill::ppuDataPut1_$1 = (byte*)PPU -Constant ppuDataTransfer::ppuDataPrepare1_$4 = (byte*)PPU -Constant ppuDataTransfer::ppuDataPrepare1_$5 = (byte*)PPU +Constant ppuDataFill::ppuDataPut1_$1 = (char *)PPU +Constant ppuDataTransfer::ppuDataPrepare1_$4 = (char *)PPU +Constant ppuDataTransfer::ppuDataPrepare1_$5 = (char *)PPU Constant ppuDataTransfer::i#0 = 0 -Constant ppuDataTransfer::ppuDataPut1_$1 = (byte*)PPU -Constant main::initNES1_disableVideoOutput1_$2 = (byte*)PPU -Constant main::initNES1_disableVideoOutput1_$3 = (byte*)PPU -Constant main::initNES1_disableAudioOutput1_$1 = (byte*)APU -Constant main::initNES1_waitForVBlank1_$3 = (volatile byte*)PPU +Constant ppuDataTransfer::ppuDataPut1_$1 = (char *)PPU +Constant main::initNES1_disableVideoOutput1_$2 = (char *)PPU +Constant main::initNES1_disableVideoOutput1_$3 = (char *)PPU +Constant main::initNES1_disableAudioOutput1_$1 = (char *)APU +Constant main::initNES1_waitForVBlank1_$3 = (volatile char *)PPU Constant main::initNES1_i#0 = 0 -Constant main::initNES1_waitForVBlank2_$3 = (volatile byte*)PPU +Constant main::initNES1_waitForVBlank2_$3 = (volatile char *)PPU Constant ppuDataTransfer::size#0 = sizeof PALETTE -Constant ppuDataTransfer::ppuData#0 = (void* const)PPU_PALETTE -Constant ppuDataTransfer::cpuData#0 = (void* const)PALETTE -Constant ppuDataFill::ppuData#0 = (void* const)PPU_NAME_TABLE_0 +Constant ppuDataTransfer::ppuData#0 = (void * const )PPU_PALETTE +Constant ppuDataTransfer::cpuData#0 = (void * const )PALETTE +Constant ppuDataFill::ppuData#0 = (void * const )PPU_NAME_TABLE_0 Constant ppuDataFill::val#0 = '*' Constant ppuDataFill::size#0 = (unumber)$20*$1e -Constant ppuDataFill::ppuData#1 = (void* const)PPU_ATTRIBUTE_TABLE_0 +Constant ppuDataFill::ppuData#1 = (void * const )PPU_ATTRIBUTE_TABLE_0 Constant ppuDataFill::val#1 = 0 Constant ppuDataFill::size#1 = $40 Constant main::s#0 = 0 -Constant main::enableVideoOutput1_$2 = (byte*)PPU -Constant main::enableVideoOutput1_$3 = (byte*)PPU -Constant vblank::$31 = (byte*)PPU -Constant vblank::$32 = (byte*)PPU +Constant main::enableVideoOutput1_$2 = (char *)PPU +Constant main::enableVideoOutput1_$3 = (char *)PPU +Constant vblank::$31 = (char *)PPU +Constant vblank::$32 = (char *)PPU Constant vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer#0 = SPRITE_BUFFER -Constant vblank::ppuSpriteBufferDmaTransfer1_$3 = (byte*)PPU -Constant vblank::ppuSpriteBufferDmaTransfer1_$4 = (byte*)APU +Constant vblank::ppuSpriteBufferDmaTransfer1_$3 = (char *)PPU +Constant vblank::ppuSpriteBufferDmaTransfer1_$4 = (char *)APU Constant vblank::$6 = 0 Constant vblank::$11 = 0 Constant vblank::s#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant ppuDataTransfer::cpuSrc#0 = (byte*)ppuDataTransfer::cpuData#0 +Constant ppuDataTransfer::cpuSrc#0 = (char *)ppuDataTransfer::cpuData#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [122] if(0!=1) goto main::@3 Successful SSA optimization Pass2ConstantIfs @@ -1196,10 +1196,10 @@ Successful SSA optimization Pass2InlineDerefIdx Simplifying expression containing zero main::initNES1_disableVideoOutput1_$2 in [59] main::initNES1_disableVideoOutput1_$0 = main::initNES1_disableVideoOutput1_$2 + OFFSET_STRUCT_RICOH_2C02_PPUCTRL Simplifying expression containing zero main::initNES1_disableVideoOutput1_$2 in [60] main::initNES1_disableVideoOutput1_$2[OFFSET_STRUCT_RICOH_2C02_PPUCTRL] = 0 Simplifying expression containing zero MEMORY in [76] (MEMORY+0)[main::initNES1_i#2] = 0 -Simplifying expression containing zero (byte*)SPRITE_BUFFER in [110] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_Y)[main::$7] = 0 +Simplifying expression containing zero (char *)SPRITE_BUFFER in [110] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_Y)[main::$7] = 0 Simplifying expression containing zero main::enableVideoOutput1_$2 in [116] main::enableVideoOutput1_$0 = main::enableVideoOutput1_$2 + OFFSET_STRUCT_RICOH_2C02_PPUCTRL Simplifying expression containing zero main::enableVideoOutput1_$2 in [117] main::enableVideoOutput1_$2[OFFSET_STRUCT_RICOH_2C02_PPUCTRL] = $80 -Simplifying expression containing zero (byte*)SPRITE_BUFFER in [165] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_Y)[vblank::$27] = SINTABLE_240[vblank::y_idx#2] +Simplifying expression containing zero (char *)SPRITE_BUFFER in [165] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_Y)[vblank::$27] = SINTABLE_240[vblank::y_idx#2] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -1248,7 +1248,7 @@ Adding number conversion cast (unumber) $20 in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $20 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $20 +Finalized unsigned number type (char) $20 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)x_sin_idx = vblank::$7 Alias candidate removed (volatile)x_sin_idx_2 = vblank::$12 @@ -1275,61 +1275,61 @@ Constant inlined ppuDataTransfer::i#0 = 0 Constant inlined ppuDataTransfer::ppuDataPrepare1_$1 = 0 Constant inlined ppuDataTransfer::ppuDataPrepare1_$0 = byte1 ppuDataTransfer::ppuData#0 Constant inlined vblank::s#0 = 0 -Constant inlined main::enableVideoOutput1_$3 = (byte*)PPU +Constant inlined main::enableVideoOutput1_$3 = (char *)PPU Constant inlined vblank::$6 = 0 -Constant inlined main::enableVideoOutput1_$2 = (byte*)PPU +Constant inlined main::enableVideoOutput1_$2 = (char *)PPU Constant inlined readJoy1::i#0 = 0 -Constant inlined ppuDataTransfer::ppuDataPut1_$1 = (byte*)PPU +Constant inlined ppuDataTransfer::ppuDataPut1_$1 = (char *)PPU Constant inlined ppuDataFill::val#1 = 0 -Constant inlined ppuDataFill::ppuDataPut1_$1 = (byte*)PPU +Constant inlined ppuDataFill::ppuDataPut1_$1 = (char *)PPU Constant inlined ppuDataFill::val#0 = '*' -Constant inlined main::initNES1_waitForVBlank2_$3 = (volatile byte*)PPU -Constant inlined ppuDataFill::ppuDataPrepare1_$4 = (byte*)PPU -Constant inlined ppuDataTransfer::ppuDataPrepare1_$5 = (byte*)PPU -Constant inlined ppuDataFill::ppuDataPrepare1_$5 = (byte*)PPU -Constant inlined ppuDataTransfer::ppuDataPrepare1_$4 = (byte*)PPU -Constant inlined main::initNES1_disableVideoOutput1_$3 = (byte*)PPU -Constant inlined main::initNES1_disableVideoOutput1_$2 = (byte*)PPU -Constant inlined ppuDataFill::ppuData#1 = (void* const)PPU_ATTRIBUTE_TABLE_0 -Constant inlined ppuDataFill::ppuData#0 = (void* const)PPU_NAME_TABLE_0 -Constant inlined main::initNES1_disableAudioOutput1_$1 = (byte*)APU +Constant inlined main::initNES1_waitForVBlank2_$3 = (volatile char *)PPU +Constant inlined ppuDataFill::ppuDataPrepare1_$4 = (char *)PPU +Constant inlined ppuDataTransfer::ppuDataPrepare1_$5 = (char *)PPU +Constant inlined ppuDataFill::ppuDataPrepare1_$5 = (char *)PPU +Constant inlined ppuDataTransfer::ppuDataPrepare1_$4 = (char *)PPU +Constant inlined main::initNES1_disableVideoOutput1_$3 = (char *)PPU +Constant inlined main::initNES1_disableVideoOutput1_$2 = (char *)PPU +Constant inlined ppuDataFill::ppuData#1 = (void * const )PPU_ATTRIBUTE_TABLE_0 +Constant inlined ppuDataFill::ppuData#0 = (void * const )PPU_NAME_TABLE_0 +Constant inlined main::initNES1_disableAudioOutput1_$1 = (char *)APU Constant inlined readJoy1::joy#0 = 0 -Constant inlined ppuDataTransfer::cpuSrc#0 = (byte*)ppuDataTransfer::cpuData#0 +Constant inlined ppuDataTransfer::cpuSrc#0 = (char *)ppuDataTransfer::cpuData#0 Constant inlined main::s#0 = 0 Constant inlined main::initNES1_i#0 = 0 -Constant inlined vblank::$31 = (byte*)PPU -Constant inlined vblank::$32 = (byte*)PPU +Constant inlined vblank::$31 = (char *)PPU +Constant inlined vblank::$32 = (char *)PPU Constant inlined vblank::$11 = 0 -Constant inlined readJoy1::$9 = (byte*)APU +Constant inlined readJoy1::$9 = (char *)APU Constant inlined vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer#0 = SPRITE_BUFFER -Constant inlined main::initNES1_waitForVBlank1_$3 = (volatile byte*)PPU +Constant inlined main::initNES1_waitForVBlank1_$3 = (volatile char *)PPU Constant inlined vblank::ppuSpriteBufferDmaTransfer1_$0 = byte1 SPRITE_BUFFER Constant inlined ppuDataFill::size#1 = $40 -Constant inlined ppuDataFill::size#0 = (word)$20*$1e -Constant inlined readJoy1::$7 = (byte*)APU -Constant inlined vblank::ppuSpriteBufferDmaTransfer1_$3 = (byte*)PPU +Constant inlined ppuDataFill::size#0 = (unsigned int)$20*$1e +Constant inlined readJoy1::$7 = (char *)APU +Constant inlined vblank::ppuSpriteBufferDmaTransfer1_$3 = (char *)PPU Constant inlined ppuDataFill::i#0 = 0 -Constant inlined readJoy1::$8 = (byte*)APU -Constant inlined vblank::ppuSpriteBufferDmaTransfer1_$4 = (byte*)APU +Constant inlined readJoy1::$8 = (char *)APU +Constant inlined vblank::ppuSpriteBufferDmaTransfer1_$4 = (char *)APU Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) -Consolidated array index constant in *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) -Consolidated array index constant in *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) -Consolidated array index constant in *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) -Consolidated array index constant in *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) -Consolidated array index constant in *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) -Consolidated array index constant in *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) -Consolidated array index constant in *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) +Consolidated array index constant in *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) +Consolidated array index constant in *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) +Consolidated array index constant in *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) +Consolidated array index constant in *((char *)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) +Consolidated array index constant in *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) +Consolidated array index constant in *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) +Consolidated array index constant in *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) +Consolidated array index constant in *((char *)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) Successful SSA optimization Pass2ConstantAdditionElimination Alias candidate removed (volatile)x_sin_idx = vblank::$7 Alias candidate removed (volatile)x_sin_idx_2 = vblank::$12 @@ -1337,16 +1337,16 @@ Eliminating unused constant SIZEOF_STRUCT_SPRITEDATA Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)x_sin_idx = vblank::$7 Alias candidate removed (volatile)x_sin_idx_2 = vblank::$12 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $59 -Finalized unsigned number type (byte) $ef -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $1e +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $59 +Finalized unsigned number type (char) $ef +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $1e Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)x_sin_idx = vblank::$7 Alias candidate removed (volatile)x_sin_idx_2 = vblank::$12 @@ -1451,7 +1451,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [4] phi() - [5] call main + [5] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [6] return @@ -1459,16 +1459,16 @@ __start::@return: scope:[__start] from __start::@1 __interrupt(hardware_all) void vblank() vblank: scope:[vblank] from - [7] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 - [8] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 + [7] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 + [8] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 to:vblank::ppuSpriteBufferDmaTransfer1 vblank::ppuSpriteBufferDmaTransfer1: scope:[vblank] from vblank - [9] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 - [10] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER + [9] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 + [10] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER to:vblank::@14 vblank::@14: scope:[vblank] from vblank::ppuSpriteBufferDmaTransfer1 [11] phi() - [12] call readJoy1 + [12] call readJoy1 [13] readJoy1::return#2 = readJoy1::joy#2 to:vblank::@15 vblank::@15: scope:[vblank] from vblank::@14 @@ -1509,10 +1509,10 @@ vblank::@6: scope:[vblank] from vblank::@13 vblank::@5 to:vblank::@return vblank::@7: scope:[vblank] from vblank::@6 [31] vblank::$28 = vblank::s#2 << 2 - [32] ((byte*)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] + [32] ((char *)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] [33] vblank::y_idx#1 = vblank::y_idx#2 - 4 [34] vblank::$14 = SINTABLE_184[vblank::x_idx#2] + SINTABLE_64[vblank::x_idx_2#2] - [35] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 + [35] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 [36] if(vblank::x_idx#2<3) goto vblank::@8 to:vblank::@9 vblank::@9: scope:[vblank] from vblank::@7 @@ -1544,12 +1544,12 @@ main::initNES1: scope:[main] from main asm { cld ldx#$ff txs } to:main::initNES1_disableVideoOutput1 main::initNES1_disableVideoOutput1: scope:[main] from main::initNES1 - [47] *((byte*)PPU) = 0 - [48] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 + [47] *((char *)PPU) = 0 + [48] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 to:main::initNES1_disableAudioOutput1 main::initNES1_disableAudioOutput1: scope:[main] from main::initNES1_disableVideoOutput1 [49] *FR_COUNTER = $40 - [50] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 + [50] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 to:main::initNES1_clearVBlankFlag1 main::initNES1_clearVBlankFlag1: scope:[main] from main::initNES1_disableAudioOutput1 asm { ldaPPU_PPUSTATUS } @@ -1558,7 +1558,7 @@ main::initNES1_waitForVBlank1: scope:[main] from main::initNES1_clearVBlankFlag [52] phi() to:main::initNES1_waitForVBlank1_@1 main::initNES1_waitForVBlank1_@1: scope:[main] from main::initNES1_waitForVBlank1 main::initNES1_waitForVBlank1_@1 - [53] main::initNES1_waitForVBlank1_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 + [53] main::initNES1_waitForVBlank1_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 [54] if(0==main::initNES1_waitForVBlank1_$0) goto main::initNES1_waitForVBlank1_@1 to:main::initNES1_@1 main::initNES1_@1: scope:[main] from main::initNES1_@1 main::initNES1_waitForVBlank1_@1 @@ -1578,7 +1578,7 @@ main::initNES1_waitForVBlank2: scope:[main] from main::initNES1_@1 [66] phi() to:main::initNES1_waitForVBlank2_@1 main::initNES1_waitForVBlank2_@1: scope:[main] from main::initNES1_waitForVBlank2 main::initNES1_waitForVBlank2_@1 - [67] main::initNES1_waitForVBlank2_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 + [67] main::initNES1_waitForVBlank2_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 [68] if(0==main::initNES1_waitForVBlank2_$0) goto main::initNES1_waitForVBlank2_@1 to:main::initNES1_@7 main::initNES1_@7: scope:[main] from main::initNES1_waitForVBlank2_@1 @@ -1586,40 +1586,40 @@ main::initNES1_@7: scope:[main] from main::initNES1_waitForVBlank2_@1 to:main::@4 main::@4: scope:[main] from main::initNES1_@7 [70] phi() - [71] call ppuDataTransfer + [71] call ppuDataTransfer to:main::@5 main::@5: scope:[main] from main::@4 [72] phi() - [73] call ppuDataFill + [73] call ppuDataFill to:main::@6 main::@6: scope:[main] from main::@5 [74] phi() - [75] call ppuDataFill + [75] call ppuDataFill to:main::@1 main::@1: scope:[main] from main::@2 main::@6 [76] main::s#2 = phi( main::@2/main::s#1, main::@6/0 ) [77] if(main::s#2<$40) goto main::@2 to:main::enableVideoOutput1 main::enableVideoOutput1: scope:[main] from main::@1 - [78] *((byte*)PPU) = $80 - [79] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e + [78] *((char *)PPU) = $80 + [79] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e to:main::@3 main::@3: scope:[main] from main::@3 main::enableVideoOutput1 [80] phi() to:main::@3 main::@2: scope:[main] from main::@1 [81] main::$7 = main::s#2 << 2 - [82] ((byte*)SPRITE_BUFFER)[main::$7] = 0 - [83] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] - [84] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 - [85] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 + [82] ((char *)SPRITE_BUFFER)[main::$7] = 0 + [83] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] + [84] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 + [85] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 [86] main::s#1 = ++ main::s#2 to:main::@1 -byte readJoy1() +char readJoy1() readJoy1: scope:[readJoy1] from vblank::@14 - [87] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 - [88] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 + [87] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 + [88] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 to:readJoy1::@1 readJoy1::@1: scope:[readJoy1] from readJoy1 readJoy1::@2 [89] readJoy1::joy#2 = phi( readJoy1/0, readJoy1::@2/readJoy1::joy#1 ) @@ -1631,21 +1631,21 @@ readJoy1::@return: scope:[readJoy1] from readJoy1::@1 to:@return readJoy1::@2: scope:[readJoy1] from readJoy1::@1 [92] readJoy1::$1 = readJoy1::joy#2 << 1 - [93] readJoy1::$2 = *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 + [93] readJoy1::$2 = *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 [94] readJoy1::joy#1 = readJoy1::$1 | readJoy1::$2 [95] readJoy1::i#1 = ++ readJoy1::i#2 to:readJoy1::@1 -void ppuDataTransfer(void* const ppuDataTransfer::ppuData , void* const ppuDataTransfer::cpuData , word ppuDataTransfer::size) +void ppuDataTransfer(void * const ppuData , void * const cpuData , unsigned int size) ppuDataTransfer: scope:[ppuDataTransfer] from main::@4 [96] phi() to:ppuDataTransfer::ppuDataPrepare1 ppuDataTransfer::ppuDataPrepare1: scope:[ppuDataTransfer] from ppuDataTransfer - [97] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 - [98] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 + [97] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 + [98] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 to:ppuDataTransfer::@1 ppuDataTransfer::@1: scope:[ppuDataTransfer] from ppuDataTransfer::@3 ppuDataTransfer::ppuDataPrepare1 - [99] ppuDataTransfer::cpuSrc#2 = phi( ppuDataTransfer::ppuDataPrepare1/(byte*)ppuDataTransfer::cpuData#0, ppuDataTransfer::@3/ppuDataTransfer::cpuSrc#1 ) + [99] ppuDataTransfer::cpuSrc#2 = phi( ppuDataTransfer::ppuDataPrepare1/(char *)ppuDataTransfer::cpuData#0, ppuDataTransfer::@3/ppuDataTransfer::cpuSrc#1 ) [99] ppuDataTransfer::i#2 = phi( ppuDataTransfer::ppuDataPrepare1/0, ppuDataTransfer::@3/ppuDataTransfer::i#1 ) [100] if(ppuDataTransfer::i#2main] main_from___b1: jsr main @@ -2222,20 +2222,20 @@ vblank: { pha tya pha - // [7] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 // Set scroll lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL - // [8] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL jmp ppuSpriteBufferDmaTransfer1 // vblank::ppuSpriteBufferDmaTransfer1 ppuSpriteBufferDmaTransfer1: - // [9] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 -- _deref_pbuc1=vbuc2 + // [9] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR - // [10] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER -- _deref_pbuc1=vbuc2 + // [10] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER -- _deref_pbuc1=vbuc2 lda #>SPRITE_BUFFER sta APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA // [11] phi from vblank::ppuSpriteBufferDmaTransfer1 to vblank::@14 [phi:vblank::ppuSpriteBufferDmaTransfer1->vblank::@14] @@ -2243,7 +2243,7 @@ vblank: { jmp __b14 // vblank::@14 __b14: - // [12] call readJoy1 + // [12] call readJoy1 // Read controller 1 jsr readJoy1 // [13] readJoy1::return#2 = readJoy1::joy#2 @@ -2348,7 +2348,7 @@ vblank: { asl asl sta.z __28 - // [32] ((byte*)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + // [32] ((char *)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy.z y_idx lda SINTABLE_240,y ldy.z __28 @@ -2363,7 +2363,7 @@ vblank: { ldy.z x_idx_2 clc adc SINTABLE_64,y - // [35] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 -- pbuc1_derefidx_vbuz1=vbuaa + // [35] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 -- pbuc1_derefidx_vbuz1=vbuaa ldy.z __28 sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X,y // [36] if(vblank::x_idx#2<3) goto vblank::@8 -- vbuz1_lt_vbuc1_then_la1 @@ -2439,10 +2439,10 @@ main: { jmp initNES1_disableVideoOutput1 // main::initNES1_disableVideoOutput1 initNES1_disableVideoOutput1: - // [47] *((byte*)PPU) = 0 -- _deref_pbuc1=vbuc2 + // [47] *((char *)PPU) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU - // [48] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 -- _deref_pbuc1=vbuc2 + // [48] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK jmp initNES1_disableAudioOutput1 @@ -2451,7 +2451,7 @@ main: { // [49] *FR_COUNTER = $40 -- _deref_pbuc1=vbuc2 lda #$40 sta FR_COUNTER - // [50] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 -- _deref_pbuc1=vbuc2 + // [50] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 -- _deref_pbuc1=vbuc2 lda #$40 sta APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ jmp initNES1_clearVBlankFlag1 @@ -2467,7 +2467,7 @@ main: { jmp initNES1_waitForVBlank1___b1 // main::initNES1_waitForVBlank1_@1 initNES1_waitForVBlank1___b1: - // [53] main::initNES1_waitForVBlank1_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 + // [53] main::initNES1_waitForVBlank1_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 lda #$80 and PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS // [54] if(0==main::initNES1_waitForVBlank1_$0) goto main::initNES1_waitForVBlank1_@1 -- 0_eq_vbuaa_then_la1 @@ -2521,7 +2521,7 @@ main: { jmp initNES1_waitForVBlank2___b1 // main::initNES1_waitForVBlank2_@1 initNES1_waitForVBlank2___b1: - // [67] main::initNES1_waitForVBlank2_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 + // [67] main::initNES1_waitForVBlank2_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 lda #$80 and PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS // [68] if(0==main::initNES1_waitForVBlank2_$0) goto main::initNES1_waitForVBlank2_@1 -- 0_eq_vbuaa_then_la1 @@ -2537,7 +2537,7 @@ main: { jmp __b4 // main::@4 __b4: - // [71] call ppuDataTransfer + // [71] call ppuDataTransfer // Transfer the palette // [96] phi from main::@4 to ppuDataTransfer [phi:main::@4->ppuDataTransfer] ppuDataTransfer_from___b4: @@ -2547,18 +2547,18 @@ main: { jmp __b5 // main::@5 __b5: - // [73] call ppuDataFill + // [73] call ppuDataFill // Fill the PPU attribute table // [106] phi from main::@5 to ppuDataFill [phi:main::@5->ppuDataFill] ppuDataFill_from___b5: // [106] phi ppuDataFill::val#4 = '*' [phi:main::@5->ppuDataFill#0] -- vbuxx=vbuc1 ldx #'*' - // [106] phi ppuDataFill::size#3 = (word)$20*$1e [phi:main::@5->ppuDataFill#1] -- vwuz1=vwuc1 + // [106] phi ppuDataFill::size#3 = (unsigned int)$20*$1e [phi:main::@5->ppuDataFill#1] -- vwuz1=vwuc1 lda #<$20*$1e sta.z ppuDataFill.size lda #>$20*$1e sta.z ppuDataFill.size+1 - // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void* const)PPU_NAME_TABLE_0 [phi:main::@5->ppuDataFill#2] -- pvoz1=pvoc1 + // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void * const )PPU_NAME_TABLE_0 [phi:main::@5->ppuDataFill#2] -- pvoz1=pvoc1 lda #PPU_NAME_TABLE_0 @@ -2569,7 +2569,7 @@ main: { jmp __b6 // main::@6 __b6: - // [75] call ppuDataFill + // [75] call ppuDataFill // [106] phi from main::@6 to ppuDataFill [phi:main::@6->ppuDataFill] ppuDataFill_from___b6: // [106] phi ppuDataFill::val#4 = 0 [phi:main::@6->ppuDataFill#0] -- vbuxx=vbuc1 @@ -2579,7 +2579,7 @@ main: { sta.z ppuDataFill.size lda #>$40 sta.z ppuDataFill.size+1 - // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void* const)PPU_ATTRIBUTE_TABLE_0 [phi:main::@6->ppuDataFill#2] -- pvoz1=pvoc1 + // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void * const )PPU_ATTRIBUTE_TABLE_0 [phi:main::@6->ppuDataFill#2] -- pvoz1=pvoc1 lda #PPU_ATTRIBUTE_TABLE_0 @@ -2599,10 +2599,10 @@ main: { jmp enableVideoOutput1 // main::enableVideoOutput1 enableVideoOutput1: - // [78] *((byte*)PPU) = $80 -- _deref_pbuc1=vbuc2 + // [78] *((char *)PPU) = $80 -- _deref_pbuc1=vbuc2 lda #$80 sta PPU - // [79] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e -- _deref_pbuc1=vbuc2 + // [79] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e -- _deref_pbuc1=vbuc2 lda #$1e sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK // [80] phi from main::@3 main::enableVideoOutput1 to main::@3 [phi:main::@3/main::enableVideoOutput1->main::@3] @@ -2620,16 +2620,16 @@ main: { asl asl tay - // [82] ((byte*)SPRITE_BUFFER)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 + // [82] ((char *)SPRITE_BUFFER)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 lda #0 sta SPRITE_BUFFER,y - // [83] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [83] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda MESSAGE,x sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE,y - // [84] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 -- pbuc1_derefidx_vbuyy=vbuc2 + // [84] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 -- pbuc1_derefidx_vbuyy=vbuc2 lda #2 sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES,y - // [85] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 + // [85] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 lda #0 sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X,y // [86] main::s#1 = ++ main::s#2 -- vbuxx=_inc_vbuxx @@ -2652,11 +2652,11 @@ main: { // - bit 7: A readJoy1: { .label __1 = $10 - // [87] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 -- _deref_pbuc1=vbuc2 + // [87] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 -- _deref_pbuc1=vbuc2 // Latch the controller buttons lda #1 sta APU+OFFSET_STRUCT_RICOH_2A03_JOY1 - // [88] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 -- _deref_pbuc1=vbuc2 + // [88] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta APU+OFFSET_STRUCT_RICOH_2A03_JOY1 // [89] phi from readJoy1 to readJoy1::@1 [phi:readJoy1->readJoy1::@1] @@ -2681,7 +2681,7 @@ readJoy1: { // [92] readJoy1::$1 = readJoy1::joy#2 << 1 -- vbuz1=vbuaa_rol_1 asl sta.z __1 - // [93] readJoy1::$2 = *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 -- vbuaa=_deref_pbuc1_band_vbuc2 + // [93] readJoy1::$2 = *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 -- vbuaa=_deref_pbuc1_band_vbuc2 lda #1 and APU+OFFSET_STRUCT_RICOH_2A03_JOY1 // [94] readJoy1::joy#1 = readJoy1::$1 | readJoy1::$2 -- vbuaa=vbuz1_bor_vbuaa @@ -2699,8 +2699,9 @@ readJoy1: { // - ppuData : Pointer in the PPU memory // - cpuData : Pointer to the CPU memory (RAM of ROM) // - size : The number of bytes to transfer +// void ppuDataTransfer(void * const ppuData, void * const cpuData, unsigned int size) ppuDataTransfer: { - .const size = $20*SIZEOF_BYTE + .const size = $20*SIZEOF_CHAR .label ppuData = PPU_PALETTE .label cpuData = PALETTE // Transfer to PPU @@ -2709,15 +2710,15 @@ ppuDataTransfer: { jmp ppuDataPrepare1 // ppuDataTransfer::ppuDataPrepare1 ppuDataPrepare1: - // [97] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 -- _deref_pbuc1=vbuc2 + // [97] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 -- _deref_pbuc1=vbuc2 lda #>ppuData sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR - // [98] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 -- _deref_pbuc1=vbuc2 + // [98] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // [99] phi from ppuDataTransfer::ppuDataPrepare1 to ppuDataTransfer::@1 [phi:ppuDataTransfer::ppuDataPrepare1->ppuDataTransfer::@1] __b1_from_ppuDataPrepare1: - // [99] phi ppuDataTransfer::cpuSrc#2 = (byte*)ppuDataTransfer::cpuData#0 [phi:ppuDataTransfer::ppuDataPrepare1->ppuDataTransfer::@1#0] -- pbuz1=pbuc1 + // [99] phi ppuDataTransfer::cpuSrc#2 = (char *)ppuDataTransfer::cpuData#0 [phi:ppuDataTransfer::ppuDataPrepare1->ppuDataTransfer::@1#0] -- pbuz1=pbuc1 lda #cpuData @@ -2752,7 +2753,7 @@ ppuDataTransfer: { jmp ppuDataPut1 // ppuDataTransfer::ppuDataPut1 ppuDataPut1: - // [103] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataTransfer::ppuDataPut1_val#0 -- _deref_pbuc1=vbuaa + // [103] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataTransfer::ppuDataPut1_val#0 -- _deref_pbuc1=vbuaa sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA jmp __b3 // ppuDataTransfer::@3 @@ -2777,7 +2778,7 @@ ppuDataTransfer: { // Fill a number of bytes in the PPU memory // - ppuData : Pointer in the PPU memory // - size : The number of bytes to transfer -// ppuDataFill(byte register(X) val, word zp(8) size) +// void ppuDataFill(void * const ppuData, __register(X) char val, __zp(8) unsigned int size) ppuDataFill: { .label ppuDataPrepare1_ppuData = 6 .label i = $a @@ -2787,11 +2788,11 @@ ppuDataFill: { ppuDataPrepare1: // [107] ppuDataFill::ppuDataPrepare1_$0 = byte1 ppuDataFill::ppuDataPrepare1_ppuData#0 -- vbuaa=_byte1_pvoz1 lda.z ppuDataPrepare1_ppuData+1 - // [108] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$0 -- _deref_pbuc1=vbuaa + // [108] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$0 -- _deref_pbuc1=vbuaa sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // [109] ppuDataFill::ppuDataPrepare1_$1 = byte0 ppuDataFill::ppuDataPrepare1_ppuData#0 -- vbuaa=_byte0_pvoz1 lda.z ppuDataPrepare1_ppuData - // [110] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$1 -- _deref_pbuc1=vbuaa + // [110] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$1 -- _deref_pbuc1=vbuaa sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // [111] phi from ppuDataFill::ppuDataPrepare1 to ppuDataFill::@1 [phi:ppuDataFill::ppuDataPrepare1->ppuDataFill::@1] __b1_from_ppuDataPrepare1: @@ -2820,7 +2821,7 @@ ppuDataFill: { rts // ppuDataFill::ppuDataPut1 ppuDataPut1: - // [114] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataFill::val#4 -- _deref_pbuc1=vbuxx + // [114] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataFill::val#4 -- _deref_pbuc1=vbuxx stx PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA jmp __b2 // ppuDataFill::@2 @@ -3008,37 +3009,37 @@ Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant struct RICOH_2A03* APU = (struct RICOH_2A03*) 16384 -constant byte* const FR_COUNTER = (byte*) 16407 -constant byte* const MEMORY = (byte*) 0 -constant byte* MESSAGE[$40] = "rex-of-camelot-presents-a-dxycp-on-nintendo-entertainment-system"z -constant byte OFFSET_STRUCT_RICOH_2A03_DMC_FREQ = $10 -constant byte OFFSET_STRUCT_RICOH_2A03_JOY1 = $16 -constant byte OFFSET_STRUCT_RICOH_2A03_OAMDMA = $14 -constant byte OFFSET_STRUCT_RICOH_2C02_OAMADDR = 3 -constant byte OFFSET_STRUCT_RICOH_2C02_PPUADDR = 6 -constant byte OFFSET_STRUCT_RICOH_2C02_PPUDATA = 7 -constant byte OFFSET_STRUCT_RICOH_2C02_PPUMASK = 1 -constant byte OFFSET_STRUCT_RICOH_2C02_PPUSCROLL = 5 -constant byte OFFSET_STRUCT_RICOH_2C02_PPUSTATUS = 2 -constant byte OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES = 2 -constant byte OFFSET_STRUCT_SPRITEDATA_TILE = 1 -constant byte OFFSET_STRUCT_SPRITEDATA_X = 3 -constant byte* PALETTE[$20] = { 1, $21, $f, $30, 1, $21, $f, $30, 1, $21, $f, $30, 1, $21, $f, $30, 1, $f, $30, 8, 1, $f, $18, 8, 1, $30, $37, $1a, $f, $f, $f, $f } -constant struct RICOH_2C02* PPU = (struct RICOH_2C02*) 8192 -constant byte* const PPU_ATTRIBUTE_TABLE_0 = (byte*) 9152 -constant byte* const PPU_NAME_TABLE_0 = (byte*) 8192 -constant byte* const PPU_PALETTE = (byte*) 16128 -constant volatile byte* const PPU_PPUSTATUS = (byte*) 8194 -constant const byte* SINTABLE_184[$ef] = kickasm {{ .fill 239, round(71.5+71.5*sin(2*PI*i/239)) +__constant struct RICOH_2A03 *APU = (struct RICOH_2A03 *) 16384 +__constant char * const FR_COUNTER = (char *) 16407 +__constant char * const MEMORY = (char *) 0 +__constant char MESSAGE[$40] = "rex-of-camelot-presents-a-dxycp-on-nintendo-entertainment-system"z +__constant char OFFSET_STRUCT_RICOH_2A03_DMC_FREQ = $10 +__constant char OFFSET_STRUCT_RICOH_2A03_JOY1 = $16 +__constant char OFFSET_STRUCT_RICOH_2A03_OAMDMA = $14 +__constant char OFFSET_STRUCT_RICOH_2C02_OAMADDR = 3 +__constant char OFFSET_STRUCT_RICOH_2C02_PPUADDR = 6 +__constant char OFFSET_STRUCT_RICOH_2C02_PPUDATA = 7 +__constant char OFFSET_STRUCT_RICOH_2C02_PPUMASK = 1 +__constant char OFFSET_STRUCT_RICOH_2C02_PPUSCROLL = 5 +__constant char OFFSET_STRUCT_RICOH_2C02_PPUSTATUS = 2 +__constant char OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES = 2 +__constant char OFFSET_STRUCT_SPRITEDATA_TILE = 1 +__constant char OFFSET_STRUCT_SPRITEDATA_X = 3 +__constant char PALETTE[$20] = { 1, $21, $f, $30, 1, $21, $f, $30, 1, $21, $f, $30, 1, $21, $f, $30, 1, $f, $30, 8, 1, $f, $18, 8, 1, $30, $37, $1a, $f, $f, $f, $f } +__constant struct RICOH_2C02 *PPU = (struct RICOH_2C02 *) 8192 +__constant char * const PPU_ATTRIBUTE_TABLE_0 = (char *) 9152 +__constant char * const PPU_NAME_TABLE_0 = (char *) 8192 +__constant char * const PPU_PALETTE = (char *) 16128 +__constant volatile char * const PPU_PPUSTATUS = (char *) 8194 +__constant const char SINTABLE_184[$ef] = kickasm {{ .fill 239, round(71.5+71.5*sin(2*PI*i/239)) }} -constant const byte* SINTABLE_240[$100] = kickasm {{ .fill $100, round(115.5+107.5*sin(2*PI*i/256)) +__constant const char SINTABLE_240[$100] = kickasm {{ .fill $100, round(115.5+107.5*sin(2*PI*i/256)) }} -constant const byte* SINTABLE_64[$59] = kickasm {{ .fill 89, round(52.5+52.5*sin(2*PI*i/89)) +__constant const char SINTABLE_64[$59] = kickasm {{ .fill 89, round(52.5+52.5*sin(2*PI*i/89)) }} -constant byte SIZEOF_BYTE = 1 -constant struct SpriteData* SPRITE_BUFFER[$100] = { fill( $100, 0) } -constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.901225-01.bin") +__constant char SIZEOF_CHAR = 1 +__constant struct SpriteData SPRITE_BUFFER[$100] = { fill( $100, 0) } +__constant char TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.901225-01.bin") .for(var c=0; c<256; c++) { // Plane 0 .fill 8, filechargen.get(c*8+i) @@ -3046,91 +3047,91 @@ constant byte* TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.9 .fill 8, 0 } }} -constant void()** VECTORS[] = { &vblank, &main, 0 } +__constant void (*VECTORS[])() = { &vblank, &main, 0 } void __start() void main() -byte~ main::$7 reg byte y 126.25 -byte main::initNES1_i -byte main::initNES1_i#1 reg byte x 151.5 -byte main::initNES1_i#2 reg byte x 112.22222222222223 -byte~ main::initNES1_waitForVBlank1_$0 reg byte a 202.0 -byte~ main::initNES1_waitForVBlank2_$0 reg byte a 202.0 -byte main::s -byte main::s#1 reg byte x 202.0 -byte main::s#2 reg byte x 72.14285714285714 -void ppuDataFill(void* const ppuDataFill::ppuData , byte ppuDataFill::val , word ppuDataFill::size) -word ppuDataFill::i -word ppuDataFill::i#1 i zp[2]:10 2002.0 -word ppuDataFill::i#2 i zp[2]:10 1001.0 -void* const ppuDataFill::ppuData -byte~ ppuDataFill::ppuDataPrepare1_$0 reg byte a 202.0 -byte~ ppuDataFill::ppuDataPrepare1_$1 reg byte a 202.0 -void* const ppuDataFill::ppuDataPrepare1_ppuData -void* const ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataPrepare1_ppuData zp[2]:6 67.33333333333333 -byte ppuDataFill::ppuDataPut1_val -word ppuDataFill::size -word ppuDataFill::size#3 size zp[2]:8 111.22222222222223 -byte ppuDataFill::val -byte ppuDataFill::val#4 reg byte x 111.22222222222223 -void ppuDataTransfer(void* const ppuDataTransfer::ppuData , void* const ppuDataTransfer::cpuData , word ppuDataTransfer::size) -void* const ppuDataTransfer::cpuData -constant void* const ppuDataTransfer::cpuData#0 cpuData = (void* const)PALETTE -byte* ppuDataTransfer::cpuSrc -byte* ppuDataTransfer::cpuSrc#1 cpuSrc zp[2]:8 1001.0 -byte* ppuDataTransfer::cpuSrc#2 cpuSrc zp[2]:8 750.75 -word ppuDataTransfer::i -word ppuDataTransfer::i#1 i zp[2]:6 2002.0 -word ppuDataTransfer::i#2 i zp[2]:6 600.5999999999999 -void* const ppuDataTransfer::ppuData -constant void* const ppuDataTransfer::ppuData#0 ppuData = (void* const)PPU_PALETTE -void* const ppuDataTransfer::ppuDataPrepare1_ppuData -byte ppuDataTransfer::ppuDataPut1_val -byte ppuDataTransfer::ppuDataPut1_val#0 reg byte a 2002.0 -word ppuDataTransfer::size -constant word ppuDataTransfer::size#0 size = $20*SIZEOF_BYTE -byte readJoy1() -byte~ readJoy1::$1 zp[1]:16 101.0 -byte~ readJoy1::$2 reg byte a 202.0 -byte readJoy1::i -byte readJoy1::i#1 reg byte x 202.0 -byte readJoy1::i#2 reg byte x 60.599999999999994 -byte readJoy1::joy -byte readJoy1::joy#1 reg byte a 101.0 -byte readJoy1::joy#2 reg byte a 51.0 -byte readJoy1::return -byte readJoy1::return#2 reg byte a 4.0 +char main::$7 // reg byte y 126.25 +char main::initNES1_i +char main::initNES1_i#1 // reg byte x 151.5 +char main::initNES1_i#2 // reg byte x 112.22222222222223 +char main::initNES1_waitForVBlank1_$0 // reg byte a 202.0 +char main::initNES1_waitForVBlank2_$0 // reg byte a 202.0 +char main::s +char main::s#1 // reg byte x 202.0 +char main::s#2 // reg byte x 72.14285714285714 +void ppuDataFill(void * const ppuData , char val , unsigned int size) +unsigned int ppuDataFill::i +unsigned int ppuDataFill::i#1 // i zp[2]:10 2002.0 +unsigned int ppuDataFill::i#2 // i zp[2]:10 1001.0 +void * const ppuDataFill::ppuData +char ppuDataFill::ppuDataPrepare1_$0 // reg byte a 202.0 +char ppuDataFill::ppuDataPrepare1_$1 // reg byte a 202.0 +void * const ppuDataFill::ppuDataPrepare1_ppuData +void * const ppuDataFill::ppuDataPrepare1_ppuData#0 // ppuDataPrepare1_ppuData zp[2]:6 67.33333333333333 +char ppuDataFill::ppuDataPut1_val +unsigned int ppuDataFill::size +unsigned int ppuDataFill::size#3 // size zp[2]:8 111.22222222222223 +char ppuDataFill::val +char ppuDataFill::val#4 // reg byte x 111.22222222222223 +void ppuDataTransfer(void * const ppuData , void * const cpuData , unsigned int size) +void * const ppuDataTransfer::cpuData +__constant void * const ppuDataTransfer::cpuData#0 = (void * const )PALETTE // cpuData +char *ppuDataTransfer::cpuSrc +char *ppuDataTransfer::cpuSrc#1 // cpuSrc zp[2]:8 1001.0 +char *ppuDataTransfer::cpuSrc#2 // cpuSrc zp[2]:8 750.75 +unsigned int ppuDataTransfer::i +unsigned int ppuDataTransfer::i#1 // i zp[2]:6 2002.0 +unsigned int ppuDataTransfer::i#2 // i zp[2]:6 600.5999999999999 +void * const ppuDataTransfer::ppuData +__constant void * const ppuDataTransfer::ppuData#0 = (void * const )PPU_PALETTE // ppuData +void * const ppuDataTransfer::ppuDataPrepare1_ppuData +char ppuDataTransfer::ppuDataPut1_val +char ppuDataTransfer::ppuDataPut1_val#0 // reg byte a 2002.0 +unsigned int ppuDataTransfer::size +__constant unsigned int ppuDataTransfer::size#0 = $20*SIZEOF_CHAR // size +char readJoy1() +char readJoy1::$1 // zp[1]:16 101.0 +char readJoy1::$2 // reg byte a 202.0 +char readJoy1::i +char readJoy1::i#1 // reg byte x 202.0 +char readJoy1::i#2 // reg byte x 60.599999999999994 +char readJoy1::joy +char readJoy1::joy#1 // reg byte a 101.0 +char readJoy1::joy#2 // reg byte a 51.0 +char readJoy1::return +char readJoy1::return#2 // reg byte a 4.0 __interrupt(hardware_all) void vblank() -byte~ vblank::$10 reg byte x 4.0 -byte~ vblank::$12 reg byte x 4.0 -byte~ vblank::$14 reg byte a 22.0 -byte~ vblank::$17 zp[1]:4 22.0 -byte~ vblank::$19 zp[1]:4 22.0 -byte~ vblank::$23 zp[1]:5 22.0 -byte~ vblank::$25 zp[1]:5 22.0 -byte~ vblank::$28 zp[1]:15 8.25 -byte~ vblank::$5 reg byte x 4.0 -byte~ vblank::$7 reg byte x 4.0 -byte vblank::joy -byte vblank::joy#0 reg byte a 4.0 -struct SpriteData* vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer -byte vblank::s -byte vblank::s#1 s zp[1]:2 22.0 -byte vblank::s#2 s zp[1]:2 2.933333333333333 -byte vblank::x_idx -byte vblank::x_idx#0 x_idx zp[1]:4 0.6666666666666666 -byte vblank::x_idx#1 x_idx zp[1]:4 5.5 -byte vblank::x_idx#2 x_idx zp[1]:4 7.125 -byte vblank::x_idx_2 -byte vblank::x_idx_2#0 x_idx_2 zp[1]:5 4.0 -byte vblank::x_idx_2#1 x_idx_2 zp[1]:5 16.5 -byte vblank::x_idx_2#2 x_idx_2 zp[1]:5 4.75 -byte vblank::y_idx -byte vblank::y_idx#0 y_idx zp[1]:3 0.3333333333333333 -byte vblank::y_idx#1 y_idx zp[1]:3 1.8333333333333333 -byte vblank::y_idx#2 y_idx zp[1]:3 8.75 -volatile byte x_sin_idx loadstore zp[1]:13 0.7692307692307693 -volatile byte x_sin_idx_2 loadstore zp[1]:14 0.5555555555555556 -volatile byte y_sin_idx loadstore zp[1]:12 0.8 +char vblank::$10 // reg byte x 4.0 +char vblank::$12 // reg byte x 4.0 +char vblank::$14 // reg byte a 22.0 +char vblank::$17 // zp[1]:4 22.0 +char vblank::$19 // zp[1]:4 22.0 +char vblank::$23 // zp[1]:5 22.0 +char vblank::$25 // zp[1]:5 22.0 +char vblank::$28 // zp[1]:15 8.25 +char vblank::$5 // reg byte x 4.0 +char vblank::$7 // reg byte x 4.0 +char vblank::joy +char vblank::joy#0 // reg byte a 4.0 +struct SpriteData *vblank::ppuSpriteBufferDmaTransfer1_spriteBuffer +char vblank::s +char vblank::s#1 // s zp[1]:2 22.0 +char vblank::s#2 // s zp[1]:2 2.933333333333333 +char vblank::x_idx +char vblank::x_idx#0 // x_idx zp[1]:4 0.6666666666666666 +char vblank::x_idx#1 // x_idx zp[1]:4 5.5 +char vblank::x_idx#2 // x_idx zp[1]:4 7.125 +char vblank::x_idx_2 +char vblank::x_idx_2#0 // x_idx_2 zp[1]:5 4.0 +char vblank::x_idx_2#1 // x_idx_2 zp[1]:5 16.5 +char vblank::x_idx_2#2 // x_idx_2 zp[1]:5 4.75 +char vblank::y_idx +char vblank::y_idx#0 // y_idx zp[1]:3 0.3333333333333333 +char vblank::y_idx#1 // y_idx zp[1]:3 1.8333333333333333 +char vblank::y_idx#2 // y_idx zp[1]:3 8.75 +__loadstore volatile char x_sin_idx // zp[1]:13 0.7692307692307693 +__loadstore volatile char x_sin_idx_2 // zp[1]:14 0.5555555555555556 +__loadstore volatile char y_sin_idx // zp[1]:12 0.8 reg byte x [ vblank::$7 vblank::$5 ] reg byte x [ vblank::$12 vblank::$10 ] @@ -3223,7 +3224,7 @@ Score: 4702 .const OFFSET_STRUCT_RICOH_2C02_PPUADDR = 6 .const OFFSET_STRUCT_RICOH_2C02_PPUDATA = 7 .const OFFSET_STRUCT_RICOH_2C02_PPUSCROLL = 5 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 /// $2000-$23bf $03c0 Name table 0 .label PPU_NAME_TABLE_0 = $2000 /// $23c0-$23ff $0040 Attribute table 0 @@ -3275,7 +3276,7 @@ __start: { sta.z x_sin_idx_2 // [4] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [5] call main + // [5] call main // [45] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -3301,24 +3302,24 @@ vblank: { tya pha // PPU->PPUSCROLL = 0 - // [7] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 // Set scroll lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL - // [8] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL) = 0 -- _deref_pbuc1=vbuc2 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUSCROLL // vblank::ppuSpriteBufferDmaTransfer1 // PPU->OAMADDR = 0 - // [9] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 -- _deref_pbuc1=vbuc2 + // [9] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR) = 0 -- _deref_pbuc1=vbuc2 sta PPU+OFFSET_STRUCT_RICOH_2C02_OAMADDR // APU->OAMDMA = BYTE1(spriteBuffer) - // [10] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER -- _deref_pbuc1=vbuc2 + // [10] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA) = byte1 SPRITE_BUFFER -- _deref_pbuc1=vbuc2 lda #>SPRITE_BUFFER sta APU+OFFSET_STRUCT_RICOH_2A03_OAMDMA // [11] phi from vblank::ppuSpriteBufferDmaTransfer1 to vblank::@14 [phi:vblank::ppuSpriteBufferDmaTransfer1->vblank::@14] // vblank::@14 // char joy = readJoy1() - // [12] call readJoy1 + // [12] call readJoy1 // Read controller 1 jsr readJoy1 // [13] readJoy1::return#2 = readJoy1::joy#2 @@ -3421,7 +3422,7 @@ vblank: { asl asl sta.z __28 - // [32] ((byte*)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + // [32] ((char *)SPRITE_BUFFER)[vblank::$28] = SINTABLE_240[vblank::y_idx#2] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy.z y_idx lda SINTABLE_240,y ldy.z __28 @@ -3439,7 +3440,7 @@ vblank: { clc adc SINTABLE_64,y // SPRITE_BUFFER[s].x = SINTABLE_184[x_idx] + SINTABLE_64[x_idx_2] - // [35] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 -- pbuc1_derefidx_vbuz1=vbuaa + // [35] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[vblank::$28] = vblank::$14 -- pbuc1_derefidx_vbuz1=vbuaa ldy.z __28 sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X,y // (x_idx<3) ? x_idx+236 : x_idx-3 @@ -3507,11 +3508,11 @@ main: { txs // main::initNES1_disableVideoOutput1 // PPU->PPUCTRL = 0 - // [47] *((byte*)PPU) = 0 -- _deref_pbuc1=vbuc2 + // [47] *((char *)PPU) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU // PPU->PPUMASK = 0 - // [48] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 -- _deref_pbuc1=vbuc2 + // [48] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = 0 -- _deref_pbuc1=vbuc2 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK // main::initNES1_disableAudioOutput1 // *FR_COUNTER = 0b01000000 @@ -3519,7 +3520,7 @@ main: { lda #$40 sta FR_COUNTER // APU->DMC_FREQ = 0b01000000 - // [50] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 -- _deref_pbuc1=vbuc2 + // [50] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ) = $40 -- _deref_pbuc1=vbuc2 sta APU+OFFSET_STRUCT_RICOH_2A03_DMC_FREQ // main::initNES1_clearVBlankFlag1 // asm @@ -3530,7 +3531,7 @@ main: { initNES1_waitForVBlank1: // main::initNES1_waitForVBlank1_@1 // PPU->PPUSTATUS&0x80 - // [53] main::initNES1_waitForVBlank1_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 + // [53] main::initNES1_waitForVBlank1_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 lda #$80 and PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS // while(!(PPU->PPUSTATUS&0x80)) @@ -3580,7 +3581,7 @@ main: { initNES1_waitForVBlank2: // main::initNES1_waitForVBlank2_@1 // PPU->PPUSTATUS&0x80 - // [67] main::initNES1_waitForVBlank2_$0 = *((volatile byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 + // [67] main::initNES1_waitForVBlank2_$0 = *((volatile char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS) & $80 -- vbuaa=_deref_pbuc1_band_vbuc2 lda #$80 and PPU+OFFSET_STRUCT_RICOH_2C02_PPUSTATUS // while(!(PPU->PPUSTATUS&0x80)) @@ -3594,24 +3595,24 @@ main: { // [70] phi from main::initNES1_@7 to main::@4 [phi:main::initNES1_@7->main::@4] // main::@4 // ppuDataTransfer(PPU_PALETTE, PALETTE, sizeof(PALETTE)) - // [71] call ppuDataTransfer + // [71] call ppuDataTransfer // Transfer the palette // [96] phi from main::@4 to ppuDataTransfer [phi:main::@4->ppuDataTransfer] jsr ppuDataTransfer // [72] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // ppuDataFill(PPU_NAME_TABLE_0, '*', 32*30) - // [73] call ppuDataFill + // [73] call ppuDataFill // Fill the PPU attribute table // [106] phi from main::@5 to ppuDataFill [phi:main::@5->ppuDataFill] // [106] phi ppuDataFill::val#4 = '*' [phi:main::@5->ppuDataFill#0] -- vbuxx=vbuc1 ldx #'*' - // [106] phi ppuDataFill::size#3 = (word)$20*$1e [phi:main::@5->ppuDataFill#1] -- vwuz1=vwuc1 + // [106] phi ppuDataFill::size#3 = (unsigned int)$20*$1e [phi:main::@5->ppuDataFill#1] -- vwuz1=vwuc1 lda #<$20*$1e sta.z ppuDataFill.size lda #>$20*$1e sta.z ppuDataFill.size+1 - // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void* const)PPU_NAME_TABLE_0 [phi:main::@5->ppuDataFill#2] -- pvoz1=pvoc1 + // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void * const )PPU_NAME_TABLE_0 [phi:main::@5->ppuDataFill#2] -- pvoz1=pvoc1 lda #PPU_NAME_TABLE_0 @@ -3620,7 +3621,7 @@ main: { // [74] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // ppuDataFill(PPU_ATTRIBUTE_TABLE_0, 0, 0x40) - // [75] call ppuDataFill + // [75] call ppuDataFill // [106] phi from main::@6 to ppuDataFill [phi:main::@6->ppuDataFill] // [106] phi ppuDataFill::val#4 = 0 [phi:main::@6->ppuDataFill#0] -- vbuxx=vbuc1 ldx #0 @@ -3629,7 +3630,7 @@ main: { sta.z ppuDataFill.size lda #>$40 sta.z ppuDataFill.size+1 - // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void* const)PPU_ATTRIBUTE_TABLE_0 [phi:main::@6->ppuDataFill#2] -- pvoz1=pvoc1 + // [106] phi ppuDataFill::ppuDataPrepare1_ppuData#0 = (void * const )PPU_ATTRIBUTE_TABLE_0 [phi:main::@6->ppuDataFill#2] -- pvoz1=pvoc1 lda #PPU_ATTRIBUTE_TABLE_0 @@ -3647,11 +3648,11 @@ main: { bcc __b2 // main::enableVideoOutput1 // PPU->PPUCTRL = 0b10000000 - // [78] *((byte*)PPU) = $80 -- _deref_pbuc1=vbuc2 + // [78] *((char *)PPU) = $80 -- _deref_pbuc1=vbuc2 lda #$80 sta PPU // PPU->PPUMASK = 0b00011110 - // [79] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e -- _deref_pbuc1=vbuc2 + // [79] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK) = $1e -- _deref_pbuc1=vbuc2 lda #$1e sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUMASK // [80] phi from main::@3 main::enableVideoOutput1 to main::@3 [phi:main::@3/main::enableVideoOutput1->main::@3] @@ -3667,16 +3668,16 @@ main: { asl asl tay - // [82] ((byte*)SPRITE_BUFFER)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 + // [82] ((char *)SPRITE_BUFFER)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 lda #0 sta SPRITE_BUFFER,y - // [83] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [83] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE)[main::$7] = MESSAGE[main::s#2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda MESSAGE,x sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_TILE,y - // [84] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 -- pbuc1_derefidx_vbuyy=vbuc2 + // [84] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES)[main::$7] = 2 -- pbuc1_derefidx_vbuyy=vbuc2 lda #2 sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_ATTRIBUTES,y - // [85] ((byte*)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 + // [85] ((char *)SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X)[main::$7] = 0 -- pbuc1_derefidx_vbuyy=vbuc2 lda #0 sta SPRITE_BUFFER+OFFSET_STRUCT_SPRITEDATA_X,y // for(char s=0;s<0x40;s++) @@ -3700,12 +3701,12 @@ main: { readJoy1: { .label __1 = $10 // APU->JOY1 = 1 - // [87] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 -- _deref_pbuc1=vbuc2 + // [87] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 1 -- _deref_pbuc1=vbuc2 // Latch the controller buttons lda #1 sta APU+OFFSET_STRUCT_RICOH_2A03_JOY1 // APU->JOY1 = 0 - // [88] *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 -- _deref_pbuc1=vbuc2 + // [88] *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta APU+OFFSET_STRUCT_RICOH_2A03_JOY1 // [89] phi from readJoy1 to readJoy1::@1 [phi:readJoy1->readJoy1::@1] @@ -3729,7 +3730,7 @@ readJoy1: { asl sta.z __1 // APU->JOY1&1 - // [93] readJoy1::$2 = *((byte*)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 -- vbuaa=_deref_pbuc1_band_vbuc2 + // [93] readJoy1::$2 = *((char *)APU+OFFSET_STRUCT_RICOH_2A03_JOY1) & 1 -- vbuaa=_deref_pbuc1_band_vbuc2 lda #1 and APU+OFFSET_STRUCT_RICOH_2A03_JOY1 // joy = joy<<1 | APU->JOY1&1 @@ -3748,8 +3749,9 @@ readJoy1: { // - ppuData : Pointer in the PPU memory // - cpuData : Pointer to the CPU memory (RAM of ROM) // - size : The number of bytes to transfer +// void ppuDataTransfer(void * const ppuData, void * const cpuData, unsigned int size) ppuDataTransfer: { - .const size = $20*SIZEOF_BYTE + .const size = $20*SIZEOF_CHAR .label ppuData = PPU_PALETTE .label cpuData = PALETTE // Transfer to PPU @@ -3757,15 +3759,15 @@ ppuDataTransfer: { .label i = 6 // ppuDataTransfer::ppuDataPrepare1 // PPU->PPUADDR = BYTE1(ppuData) - // [97] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 -- _deref_pbuc1=vbuc2 + // [97] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = byte1 ppuDataTransfer::ppuData#0 -- _deref_pbuc1=vbuc2 lda #>ppuData sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // PPU->PPUADDR = BYTE0(ppuData) - // [98] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 -- _deref_pbuc1=vbuc2 + // [98] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // [99] phi from ppuDataTransfer::ppuDataPrepare1 to ppuDataTransfer::@1 [phi:ppuDataTransfer::ppuDataPrepare1->ppuDataTransfer::@1] - // [99] phi ppuDataTransfer::cpuSrc#2 = (byte*)ppuDataTransfer::cpuData#0 [phi:ppuDataTransfer::ppuDataPrepare1->ppuDataTransfer::@1#0] -- pbuz1=pbuc1 + // [99] phi ppuDataTransfer::cpuSrc#2 = (char *)ppuDataTransfer::cpuData#0 [phi:ppuDataTransfer::ppuDataPrepare1->ppuDataTransfer::@1#0] -- pbuz1=pbuc1 lda #cpuData @@ -3798,7 +3800,7 @@ ppuDataTransfer: { lda (cpuSrc),y // ppuDataTransfer::ppuDataPut1 // PPU->PPUDATA = val - // [103] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataTransfer::ppuDataPut1_val#0 -- _deref_pbuc1=vbuaa + // [103] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataTransfer::ppuDataPut1_val#0 -- _deref_pbuc1=vbuaa sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA // ppuDataTransfer::@3 // ppuDataPut(*cpuSrc++); @@ -3822,7 +3824,7 @@ ppuDataTransfer: { // Fill a number of bytes in the PPU memory // - ppuData : Pointer in the PPU memory // - size : The number of bytes to transfer -// ppuDataFill(byte register(X) val, word zp(8) size) +// void ppuDataFill(void * const ppuData, __register(X) char val, __zp(8) unsigned int size) ppuDataFill: { .label ppuDataPrepare1_ppuData = 6 .label i = $a @@ -3832,13 +3834,13 @@ ppuDataFill: { // [107] ppuDataFill::ppuDataPrepare1_$0 = byte1 ppuDataFill::ppuDataPrepare1_ppuData#0 -- vbuaa=_byte1_pvoz1 lda.z ppuDataPrepare1_ppuData+1 // PPU->PPUADDR = BYTE1(ppuData) - // [108] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$0 -- _deref_pbuc1=vbuaa + // [108] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$0 -- _deref_pbuc1=vbuaa sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // BYTE0(ppuData) // [109] ppuDataFill::ppuDataPrepare1_$1 = byte0 ppuDataFill::ppuDataPrepare1_ppuData#0 -- vbuaa=_byte0_pvoz1 lda.z ppuDataPrepare1_ppuData // PPU->PPUADDR = BYTE0(ppuData) - // [110] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$1 -- _deref_pbuc1=vbuaa + // [110] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR) = ppuDataFill::ppuDataPrepare1_$1 -- _deref_pbuc1=vbuaa sta PPU+OFFSET_STRUCT_RICOH_2C02_PPUADDR // [111] phi from ppuDataFill::ppuDataPrepare1 to ppuDataFill::@1 [phi:ppuDataFill::ppuDataPrepare1->ppuDataFill::@1] // [111] phi ppuDataFill::i#2 = 0 [phi:ppuDataFill::ppuDataPrepare1->ppuDataFill::@1#0] -- vwuz1=vwuc1 @@ -3865,7 +3867,7 @@ ppuDataFill: { // ppuDataFill::ppuDataPut1 ppuDataPut1: // PPU->PPUDATA = val - // [114] *((byte*)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataFill::val#4 -- _deref_pbuc1=vbuxx + // [114] *((char *)PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA) = ppuDataFill::val#4 -- _deref_pbuc1=vbuxx stx PPU+OFFSET_STRUCT_RICOH_2C02_PPUDATA // ppuDataFill::@2 // for(unsigned int i=0;i 0 Adding number conversion cast (unumber) 7 in rand::$0 = rand_state#9 << 7 @@ -426,8 +426,8 @@ Adding number conversion cast (unumber) 0 in memset::c#1 = 0 Adding number conversion cast (unumber) $3e8 in memset::num#1 = $3e8 Adding number conversion cast (unumber) 0 in memset::c#2 = 0 Adding number conversion cast (unumber) $3e8 in memset::num#2 = $3e8 -Adding number conversion cast (unumber) 0 in *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -Adding number conversion cast (unumber) 0 in *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 +Adding number conversion cast (unumber) 0 in *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 Adding number conversion cast (unumber) $28 in main::$3 = main::$24 * $28 Adding number conversion cast (unumber) main::$3 in main::$3 = main::$24 * (unumber)$28 Adding number conversion cast (unumber) $f in main::$9 = main::cnt#0 & $f @@ -449,25 +449,25 @@ Adding number conversion cast (unumber) $28 in main::$21 = main::x#1 == $28 Adding number conversion cast (unumber) $ff in main::$19 = main::x#2 == $ff Adding number conversion cast (unumber) 0 in main::x#3 = 0 Adding number conversion cast (unumber) $27 in main::x#4 = $27 -Adding number conversion cast (unumber) $ff in main::$23 = *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO) != $ff +Adding number conversion cast (unumber) $ff in main::$23 = *((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO) != $ff Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#4 +Inlining cast memset::dst#0 = (char *)memset::str#4 Inlining cast memset::c#0 = (unumber)$a0 Inlining cast memset::num#0 = (unumber)$3e8 Inlining cast memset::c#1 = (unumber)0 Inlining cast memset::num#1 = (unumber)$3e8 Inlining cast memset::c#2 = (unumber)0 Inlining cast memset::num#2 = (unumber)$3e8 -Inlining cast *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = (unumber)0 -Inlining cast *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = (unumber)0 +Inlining cast *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = (unumber)0 +Inlining cast *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = (unumber)0 Inlining cast main::y#3 = (unumber)0 Inlining cast main::y#4 = (unumber)$18 Inlining cast main::x#3 = (unumber)0 Inlining cast main::x#4 = (unumber)$27 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 2048 -Simplifying constant pointer cast (byte*) 3072 -Simplifying constant pointer cast (struct MOS7360_TED*) 65280 +Simplifying constant pointer cast (char *) 2048 +Simplifying constant pointer cast (char *) 3072 +Simplifying constant pointer cast (struct MOS7360_TED *) 65280 Simplifying constant integer cast 0 Simplifying constant integer cast 7 Simplifying constant integer cast 9 @@ -498,41 +498,41 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $27 Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) $ff Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$3 = main::$24 * $28 -Inferred type updated to byte in main::$9 = main::cnt#0 & $f -Inferred type updated to byte in main::$12 = main::rnd#0 & $80 -Inferred type updated to byte in main::$18 = main::rnd#1 & $40 -Inferred type updated to byte in main::$13 = main::rnd#2 & $40 +Inferred type updated to unsigned int in main::$3 = main::$24 * $28 +Inferred type updated to char in main::$9 = main::cnt#0 & $f +Inferred type updated to char in main::$12 = main::rnd#0 & $80 +Inferred type updated to char in main::$18 = main::rnd#1 & $40 +Inferred type updated to char in main::$13 = main::rnd#2 & $40 Inversing boolean not [2] memset::$1 = memset::num#3 <= 0 from [1] memset::$0 = memset::num#3 > 0 Inversing boolean not [88] main::$17 = main::y#1 != $19 from [87] main::$16 = main::y#1 == $19 Inversing boolean not [93] main::$15 = main::y#2 != $ff from [92] main::$14 = main::y#2 == $ff @@ -582,15 +582,15 @@ Simple Condition main::$17 [71] if(main::y#1!=$19) goto main::@8 Simple Condition main::$15 [74] if(main::y#2!=$ff) goto main::@8 Simple Condition main::$22 [79] if(main::x#1!=$28) goto main::@8 Simple Condition main::$20 [82] if(main::x#2!=$ff) goto main::@8 -Simple Condition main::$23 [87] if(*((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@8 +Simple Condition main::$23 [87] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant memset::str#0 = (void*)DEFAULT_SCREEN +Constant memset::str#0 = (void *)DEFAULT_SCREEN Constant memset::c#0 = $a0 Constant memset::num#0 = $3e8 -Constant memset::str#1 = (void*)DEFAULT_COLORRAM +Constant memset::str#1 = (void *)DEFAULT_COLORRAM Constant memset::c#1 = 0 Constant memset::num#1 = $3e8 -Constant memset::str#2 = (void*)VISITS +Constant memset::str#2 = (void *)VISITS Constant memset::c#2 = 0 Constant memset::num#2 = $3e8 Constant main::x#0 = $14 @@ -618,8 +618,8 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Alias main::$6 = main::$5 Successful SSA optimization Pass2AliasElimination -Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#4 keeping memset::str#4 -Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#4 keeping memset::str#4 +Inlining Noop Cast [2] memset::$4 = (char *)memset::str#4 keeping memset::str#4 +Inlining Noop Cast [4] memset::dst#0 = (char *)memset::str#4 keeping memset::str#4 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[25] main::$3 = main::$24 * $28 Inlining constant with var siblings memset::str#0 @@ -638,10 +638,10 @@ Inlining constant with var siblings main::y#4 Inlining constant with var siblings main::x#3 Inlining constant with var siblings main::x#4 Inlining constant with var siblings rand_state#17 -Constant inlined memset::str#2 = (void*)VISITS -Constant inlined memset::str#1 = (void*)DEFAULT_COLORRAM +Constant inlined memset::str#2 = (void *)VISITS +Constant inlined memset::str#1 = (void *)DEFAULT_COLORRAM Constant inlined rand_state#17 = 1 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#2 = $3e8 Constant inlined main::x#3 = 0 Constant inlined memset::num#1 = $3e8 @@ -661,15 +661,15 @@ Identical Phi Values memset::num#3 $3e8 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [1] if($3e8<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs -Finalized unsigned number type (byte) $1d -Finalized unsigned number type (byte) $1d -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) $1d +Finalized unsigned number type (char) $1d +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@18(between main::@8 and main::@1) Added new block during phi lifting main::@19(between main::@10 and main::@8) @@ -740,19 +740,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@10 main::@10: scope:[main] from main [2] phi() - [3] call memset + [3] call memset to:main::@11 main::@11: scope:[main] from main::@10 [4] phi() - [5] call memset + [5] call memset to:main::@12 main::@12: scope:[main] from main::@11 - [6] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 - [7] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 + [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 + [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 to:main::@1 main::@1: scope:[main] from main::@12 main::@6 [8] rand_state#12 = phi( main::@12/1, main::@6/rand_state#10 ) @@ -760,7 +760,7 @@ main::@1: scope:[main] from main::@12 main::@6 [8] main::y#11 = phi( main::@12/$c, main::@6/main::y#10 ) to:main::@2 main::@2: scope:[main] from main::@1 - [9] main::$24 = (word)main::y#11 + [9] main::$24 = (unsigned int)main::y#11 [10] main::$29 = main::$24 << 2 [11] main::$30 = main::$29 + main::$24 [12] main::$3 = main::$30 << 3 @@ -771,7 +771,7 @@ main::@2: scope:[main] from main::@1 [17] main::$8 = DEFAULT_COLORRAM + main::offset#0 [18] main::$9 = main::cnt#0 & $f [19] *main::$8 = FADE[main::$9] - [20] call rand + [20] call rand [21] rand::return#2 = rand::return#0 to:main::@13 main::@13: scope:[main] from main::@2 @@ -794,7 +794,7 @@ main::@14: scope:[main] from main::@8 main::@6: scope:[main] from main::@14 main::@15 main::@16 main::@17 main::@4 main::@5 main::@6 main::@8 main::@9 [31] main::x#10 = phi( main::@14/main::x#11, main::@8/main::x#11, main::@15/main::x#2, main::@9/0, main::@16/main::x#11, main::@4/main::x#11, main::@17/main::x#1, main::@5/$27, main::@6/main::x#10 ) [31] main::y#10 = phi( main::@14/main::y#2, main::@8/0, main::@15/main::y#11, main::@9/main::y#11, main::@16/main::y#1, main::@4/$18, main::@17/main::y#11, main::@5/main::y#11, main::@6/main::y#10 ) - [32] if(*((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 + [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 to:main::@1 main::@4: scope:[main] from main::@7 [33] main::y#1 = ++ main::y#11 @@ -822,14 +822,14 @@ main::@17: scope:[main] from main::@5 [43] phi() to:main::@6 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main main::@10 main::@11 [44] memset::c#5 = phi( main/$a0, main::@10/0, main::@11/0 ) - [44] memset::str#4 = phi( main/(void*)DEFAULT_SCREEN, main::@10/(void*)DEFAULT_COLORRAM, main::@11/(void*)VISITS ) + [44] memset::str#4 = phi( main/(void *)DEFAULT_SCREEN, main::@10/(void *)DEFAULT_COLORRAM, main::@11/(void *)VISITS ) to:memset::@1 memset::@1: scope:[memset] from memset - [45] memset::end#0 = (byte*)memset::str#4 + $3e8 - [46] memset::dst#4 = (byte*)memset::str#4 + [45] memset::end#0 = (char *)memset::str#4 + $3e8 + [46] memset::dst#4 = (char *)memset::str#4 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [47] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -843,7 +843,7 @@ memset::@3: scope:[memset] from memset::@2 [51] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word rand() +unsigned int rand() rand: scope:[rand] from main::@2 [52] rand::$0 = rand_state#12 << 7 [53] rand_state#0 = rand_state#12 ^ rand::$0 @@ -860,58 +860,58 @@ rand::@return: scope:[rand] from rand VARIABLE REGISTER WEIGHTS void main() -word~ main::$10 22.0 -byte~ main::$12 22.0 -byte~ main::$13 22.0 -byte~ main::$18 22.0 -word~ main::$24 16.5 -word~ main::$29 22.0 -word~ main::$3 22.0 -word~ main::$30 22.0 -byte*~ main::$6 22.0 -byte*~ main::$8 11.0 -byte~ main::$9 22.0 -byte main::cnt -byte main::cnt#0 11.0 -word main::offset -word main::offset#0 8.25 -byte main::rnd -byte main::rnd#0 14.666666666666666 -byte main::x -byte main::x#1 11.0 -byte main::x#10 184.5 -byte main::x#11 6.357142857142859 -byte main::x#2 11.0 -byte main::y -byte main::y#1 11.0 -byte main::y#10 184.5 -byte main::y#11 5.964285714285716 -byte main::y#2 11.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#5 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 138.33333333333331 -byte* memset::dst#4 22.0 -byte* memset::end -byte* memset::end#0 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#4 -word rand() -word~ rand::$0 202.0 -word~ rand::$1 202.0 -word~ rand::$2 202.0 -word rand::return -word rand::return#0 37.33333333333333 -word rand::return#2 22.0 -word rand_state -word rand_state#0 151.5 -word rand_state#1 151.5 -word rand_state#10 11.222222222222223 -word rand_state#12 23.307692307692307 +unsigned int main::$10 // 22.0 +char main::$12 // 22.0 +char main::$13 // 22.0 +char main::$18 // 22.0 +unsigned int main::$24 // 16.5 +unsigned int main::$29 // 22.0 +unsigned int main::$3 // 22.0 +unsigned int main::$30 // 22.0 +char *main::$6 // 22.0 +char *main::$8 // 11.0 +char main::$9 // 22.0 +char main::cnt +char main::cnt#0 // 11.0 +unsigned int main::offset +unsigned int main::offset#0 // 8.25 +char main::rnd +char main::rnd#0 // 14.666666666666666 +char main::x +char main::x#1 // 11.0 +char main::x#10 // 184.5 +char main::x#11 // 6.357142857142859 +char main::x#2 // 11.0 +char main::y +char main::y#1 // 11.0 +char main::y#10 // 184.5 +char main::y#11 // 5.964285714285716 +char main::y#2 // 11.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#5 // 14.428571428571429 +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 138.33333333333331 +char *memset::dst#4 // 22.0 +char *memset::end +char *memset::end#0 // 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#4 +unsigned int rand() +unsigned int rand::$0 // 202.0 +unsigned int rand::$1 // 202.0 +unsigned int rand::$2 // 202.0 +unsigned int rand::return +unsigned int rand::return#0 // 37.33333333333333 +unsigned int rand::return#2 // 22.0 +unsigned int rand_state +unsigned int rand_state#0 // 151.5 +unsigned int rand_state#1 // 151.5 +unsigned int rand_state#10 // 11.222222222222223 +unsigned int rand_state#12 // 23.307692307692307 Initial phi equivalence classes [ main::y#11 main::y#10 main::y#2 main::y#1 ] @@ -1000,9 +1000,9 @@ Allocated zp[2]:43 [ rand_state#1 ] Allocated zp[2]:45 [ rand::$2 ] Allocated zp[2]:47 [ rand::return#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] main::$24 = (word)main::y#11 [ main::y#11 main::x#11 rand_state#12 main::$24 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] main::$24 = (unsigned int)main::y#11 [ main::y#11 main::x#11 rand_state#12 main::$24 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::x#11 main::x#10 main::x#2 main::x#1 ] Statement [10] main::$29 = main::$24 << 2 [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a @@ -1020,10 +1020,10 @@ Statement [18] main::$9 = main::cnt#0 & $f [ main::y#11 main::x#11 rand_state#12 Statement [19] *main::$8 = FADE[main::$9] [ main::y#11 main::x#11 rand_state#12 ] ( [ main::y#11 main::x#11 rand_state#12 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y Statement [21] rand::return#2 = rand::return#0 [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] ( [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [22] main::$10 = rand::return#2 [ main::y#11 main::x#11 rand_state#10 main::$10 ] ( [ main::y#11 main::x#11 rand_state#10 main::$10 ] { } ) always clobbers reg byte a -Statement [32] if(*((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ main::y#10 main::x#10 rand_state#10 ] ( [ main::y#10 main::x#10 rand_state#10 ] { } ) always clobbers reg byte a -Statement [45] memset::end#0 = (byte*)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( memset:1 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:3 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Statement [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ main::y#10 main::x#10 rand_state#10 ] ( [ main::y#10 main::x#10 rand_state#10 ] { } ) always clobbers reg byte a +Statement [45] memset::end#0 = (char *)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( memset:1 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:3 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ memset::c#5 ] -Statement [46] memset::dst#4 = (byte*)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [46] memset::dst#4 = (char *)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [48] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [50] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:8 [ memset::c#5 ] @@ -1034,9 +1034,9 @@ Statement [55] rand_state#1 = rand_state#0 ^ rand::$1 [ rand_state#1 ] ( rand:20 Statement [56] rand::$2 = rand_state#1 << 8 [ rand_state#1 rand::$2 ] ( rand:20 [ main::y#11 main::x#11 rand_state#1 rand::$2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [57] rand_state#10 = rand_state#1 ^ rand::$2 [ rand_state#10 ] ( rand:20 [ main::y#11 main::x#11 rand_state#10 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [58] rand::return#0 = rand_state#10 [ rand_state#10 rand::return#0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#10 rand::return#0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a -Statement [6] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] main::$24 = (word)main::y#11 [ main::y#11 main::x#11 rand_state#12 main::$24 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a +Statement [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] main::$24 = (unsigned int)main::y#11 [ main::y#11 main::x#11 rand_state#12 main::$24 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [10] main::$29 = main::$24 << 2 [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] ( [ main::y#11 main::x#11 rand_state#12 main::$24 main::$29 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [11] main::$30 = main::$29 + main::$24 [ main::y#11 main::x#11 rand_state#12 main::$30 ] ( [ main::y#11 main::x#11 rand_state#12 main::$30 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [12] main::$3 = main::$30 << 3 [ main::y#11 main::x#11 rand_state#12 main::$3 ] ( [ main::y#11 main::x#11 rand_state#12 main::$3 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a @@ -1049,9 +1049,9 @@ Statement [18] main::$9 = main::cnt#0 & $f [ main::y#11 main::x#11 rand_state#12 Statement [19] *main::$8 = FADE[main::$9] [ main::y#11 main::x#11 rand_state#12 ] ( [ main::y#11 main::x#11 rand_state#12 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a reg byte y Statement [21] rand::return#2 = rand::return#0 [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] ( [ main::y#11 main::x#11 rand_state#10 rand::return#2 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a Statement [22] main::$10 = rand::return#2 [ main::y#11 main::x#11 rand_state#10 main::$10 ] ( [ main::y#11 main::x#11 rand_state#10 main::$10 ] { } ) always clobbers reg byte a -Statement [32] if(*((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ main::y#10 main::x#10 rand_state#10 ] ( [ main::y#10 main::x#10 rand_state#10 ] { } ) always clobbers reg byte a -Statement [45] memset::end#0 = (byte*)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( memset:1 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:3 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a -Statement [46] memset::dst#4 = (byte*)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 [ main::y#10 main::x#10 rand_state#10 ] ( [ main::y#10 main::x#10 rand_state#10 ] { } ) always clobbers reg byte a +Statement [45] memset::end#0 = (char *)memset::str#4 + $3e8 [ memset::str#4 memset::c#5 memset::end#0 ] ( memset:1 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:3 [ memset::str#4 memset::c#5 memset::end#0 ] { } memset:5 [ memset::str#4 memset::c#5 memset::end#0 ] { } ) always clobbers reg byte a +Statement [46] memset::dst#4 = (char *)memset::str#4 [ memset::c#5 memset::end#0 memset::dst#4 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#4 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [48] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [50] *memset::dst#2 = memset::c#5 [ memset::c#5 memset::end#0 memset::dst#2 ] ( memset:1 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:3 [ memset::c#5 memset::end#0 memset::dst#2 ] { } memset:5 [ memset::c#5 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [52] rand::$0 = rand_state#12 << 7 [ rand_state#12 rand::$0 ] ( rand:20 [ main::y#11 main::x#11 rand_state#12 rand::$0 ] { { rand::return#0 = rand::return#2 } } ) always clobbers reg byte a @@ -1189,12 +1189,12 @@ main: { .label y = 2 .label __29 = 7 .label __30 = 5 - // [1] call memset + // [1] call memset // [44] phi from main to memset [phi:main->memset] memset_from_main: // [44] phi memset::c#5 = $a0 [phi:main->memset#0] -- vbuxx=vbuc1 ldx #$a0 - // [44] phi memset::str#4 = (void*)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + // [44] phi memset::str#4 = (void *)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN @@ -1205,12 +1205,12 @@ main: { jmp __b10 // main::@10 __b10: - // [3] call memset + // [3] call memset // [44] phi from main::@10 to memset [phi:main::@10->memset] memset_from___b10: // [44] phi memset::c#5 = 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void*)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + // [44] phi memset::str#4 = (void *)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_COLORRAM @@ -1221,12 +1221,12 @@ main: { jmp __b11 // main::@11 __b11: - // [5] call memset + // [5] call memset // [44] phi from main::@11 to memset [phi:main::@11->memset] memset_from___b11: // [44] phi memset::c#5 = 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void*)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 + // [44] phi memset::str#4 = (void *)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 lda #VISITS @@ -1235,10 +1235,10 @@ main: { jmp __b12 // main::@12 __b12: - // [6] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR - // [7] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR // [8] phi from main::@12 to main::@1 [phi:main::@12->main::@1] @@ -1259,7 +1259,7 @@ main: { jmp __b2 // main::@2 __b2: - // [9] main::$24 = (word)main::y#11 -- vwuz1=_word_vbuz2 + // [9] main::$24 = (unsigned int)main::y#11 -- vwuz1=_word_vbuz2 lda.z y sta.z __24 lda #0 @@ -1331,7 +1331,7 @@ main: { lda FADE,y ldy #0 sta (__8),y - // [20] call rand + // [20] call rand jsr rand // [21] rand::return#2 = rand::return#0 jmp __b13 @@ -1387,7 +1387,7 @@ main: { jmp __b6 // main::@6 __b6: - // [32] if(*((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO bne __b6_from___b6 @@ -1468,7 +1468,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(3) str, byte register(X) c) +// void * memset(__zp(3) void *str, __register(X) char c, unsigned int num) memset: { .label end = $d .label dst = 3 @@ -1476,7 +1476,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [45] memset::end#0 = (byte*)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 + // [45] memset::end#0 = (char *)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$3e8 @@ -1484,7 +1484,7 @@ memset: { lda.z str+1 adc #>$3e8 sta.z end+1 - // [46] memset::dst#4 = (byte*)memset::str#4 + // [46] memset::dst#4 = (char *)memset::str#4 // [47] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -1673,71 +1673,71 @@ Removing unreachable instruction jmp __b6 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant byte* const DEFAULT_COLORRAM = (byte*) 2048 -constant byte* const DEFAULT_SCREEN = (byte*) 3072 -constant byte* FADE[$10] = { 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 } -constant byte OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 -constant byte OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 -constant byte OFFSET_STRUCT_MOS7360_TED_RASTER_LO = $1d -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant struct MOS7360_TED* const TED = (struct MOS7360_TED*) 65280 -constant byte* VISITS[$3e8] = { fill( $3e8, 0) } +__constant char * const DEFAULT_COLORRAM = (char *) 2048 +__constant char * const DEFAULT_SCREEN = (char *) 3072 +__constant char FADE[$10] = { 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 } +__constant char OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 +__constant char OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 +__constant char OFFSET_STRUCT_MOS7360_TED_RASTER_LO = $1d +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant struct MOS7360_TED * const TED = (struct MOS7360_TED *) 65280 +__constant char VISITS[$3e8] = { fill( $3e8, 0) } void main() -word~ main::$10 zp[2]:11 22.0 -byte~ main::$12 reg byte a 22.0 -byte~ main::$13 reg byte a 22.0 -byte~ main::$18 reg byte a 22.0 -word~ main::$24 zp[2]:5 16.5 -word~ main::$29 zp[2]:7 22.0 -word~ main::$3 zp[2]:5 22.0 -word~ main::$30 zp[2]:5 22.0 -byte*~ main::$6 zp[2]:9 22.0 -byte*~ main::$8 zp[2]:5 11.0 -byte~ main::$9 reg byte a 22.0 -byte main::cnt -byte main::cnt#0 reg byte y 11.0 -word main::offset -word main::offset#0 offset zp[2]:5 8.25 -byte main::rnd -byte main::rnd#0 reg byte y 14.666666666666666 -byte main::x -byte main::x#1 reg byte x 11.0 -byte main::x#10 reg byte x 184.5 -byte main::x#11 reg byte x 6.357142857142859 -byte main::x#2 reg byte x 11.0 -byte main::y -byte main::y#1 y zp[1]:2 11.0 -byte main::y#10 y zp[1]:2 184.5 -byte main::y#11 y zp[1]:2 5.964285714285716 -byte main::y#2 y zp[1]:2 11.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#5 reg byte x 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:3 202.0 -byte* memset::dst#2 dst zp[2]:3 138.33333333333331 -byte* memset::dst#4 dst zp[2]:3 22.0 -byte* memset::end -byte* memset::end#0 end zp[2]:13 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#4 str zp[2]:3 -word rand() -word~ rand::$0 zp[2]:13 202.0 -word~ rand::$1 zp[2]:15 202.0 -word~ rand::$2 zp[2]:17 202.0 -word rand::return -word rand::return#0 return zp[2]:11 37.33333333333333 -word rand::return#2 return zp[2]:11 22.0 -word rand_state -word rand_state#0 rand_state zp[2]:3 151.5 -word rand_state#1 rand_state zp[2]:3 151.5 -word rand_state#10 rand_state zp[2]:3 11.222222222222223 -word rand_state#12 rand_state zp[2]:3 23.307692307692307 +unsigned int main::$10 // zp[2]:11 22.0 +char main::$12 // reg byte a 22.0 +char main::$13 // reg byte a 22.0 +char main::$18 // reg byte a 22.0 +unsigned int main::$24 // zp[2]:5 16.5 +unsigned int main::$29 // zp[2]:7 22.0 +unsigned int main::$3 // zp[2]:5 22.0 +unsigned int main::$30 // zp[2]:5 22.0 +char *main::$6 // zp[2]:9 22.0 +char *main::$8 // zp[2]:5 11.0 +char main::$9 // reg byte a 22.0 +char main::cnt +char main::cnt#0 // reg byte y 11.0 +unsigned int main::offset +unsigned int main::offset#0 // offset zp[2]:5 8.25 +char main::rnd +char main::rnd#0 // reg byte y 14.666666666666666 +char main::x +char main::x#1 // reg byte x 11.0 +char main::x#10 // reg byte x 184.5 +char main::x#11 // reg byte x 6.357142857142859 +char main::x#2 // reg byte x 11.0 +char main::y +char main::y#1 // y zp[1]:2 11.0 +char main::y#10 // y zp[1]:2 184.5 +char main::y#11 // y zp[1]:2 5.964285714285716 +char main::y#2 // y zp[1]:2 11.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#5 // reg byte x 14.428571428571429 +char *memset::dst +char *memset::dst#1 // dst zp[2]:3 202.0 +char *memset::dst#2 // dst zp[2]:3 138.33333333333331 +char *memset::dst#4 // dst zp[2]:3 22.0 +char *memset::end +char *memset::end#0 // end zp[2]:13 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#4 // str zp[2]:3 +unsigned int rand() +unsigned int rand::$0 // zp[2]:13 202.0 +unsigned int rand::$1 // zp[2]:15 202.0 +unsigned int rand::$2 // zp[2]:17 202.0 +unsigned int rand::return +unsigned int rand::return#0 // return zp[2]:11 37.33333333333333 +unsigned int rand::return#2 // return zp[2]:11 22.0 +unsigned int rand_state +unsigned int rand_state#0 // rand_state zp[2]:3 151.5 +unsigned int rand_state#1 // rand_state zp[2]:3 151.5 +unsigned int rand_state#10 // rand_state zp[2]:3 11.222222222222223 +unsigned int rand_state#12 // rand_state zp[2]:3 23.307692307692307 zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] @@ -1809,11 +1809,11 @@ main: { .label __29 = 7 .label __30 = 5 // memset(DEFAULT_SCREEN, 0xa0, 1000) - // [1] call memset + // [1] call memset // [44] phi from main to memset [phi:main->memset] // [44] phi memset::c#5 = $a0 [phi:main->memset#0] -- vbuxx=vbuc1 ldx #$a0 - // [44] phi memset::str#4 = (void*)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 + // [44] phi memset::str#4 = (void *)DEFAULT_SCREEN [phi:main->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN @@ -1822,11 +1822,11 @@ main: { // [2] phi from main to main::@10 [phi:main->main::@10] // main::@10 // memset(DEFAULT_COLORRAM, 0, 1000) - // [3] call memset + // [3] call memset // [44] phi from main::@10 to memset [phi:main::@10->memset] // [44] phi memset::c#5 = 0 [phi:main::@10->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void*)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 + // [44] phi memset::str#4 = (void *)DEFAULT_COLORRAM [phi:main::@10->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_COLORRAM @@ -1835,11 +1835,11 @@ main: { // [4] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // memset(VISITS, 0, 1000) - // [5] call memset + // [5] call memset // [44] phi from main::@11 to memset [phi:main::@11->memset] // [44] phi memset::c#5 = 0 [phi:main::@11->memset#0] -- vbuxx=vbuc1 ldx #0 - // [44] phi memset::str#4 = (void*)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 + // [44] phi memset::str#4 = (void *)VISITS [phi:main::@11->memset#1] -- pvoz1=pvoc1 lda #VISITS @@ -1847,11 +1847,11 @@ main: { jsr memset // main::@12 // TED->BG_COLOR = 0 - // [6] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [6] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_BG_COLOR // TED->BORDER_COLOR = 0 - // [7] *((byte*)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR) = 0 -- _deref_pbuc1=vbuc2 sta TED+OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR // [8] phi from main::@12 to main::@1 [phi:main::@12->main::@1] // [8] phi rand_state#12 = 1 [phi:main::@12->main::@1#0] -- vwuz1=vwuc1 @@ -1868,7 +1868,7 @@ main: { // main::@2 __b2: // (unsigned int)y*40 - // [9] main::$24 = (word)main::y#11 -- vwuz1=_word_vbuz2 + // [9] main::$24 = (unsigned int)main::y#11 -- vwuz1=_word_vbuz2 lda.z y sta.z __24 lda #0 @@ -1945,7 +1945,7 @@ main: { ldy #0 sta (__8),y // rand() - // [20] call rand + // [20] call rand jsr rand // [21] rand::return#2 = rand::return#0 // main::@13 @@ -1992,7 +1992,7 @@ main: { // main::@6 __b6: // while(TED->RASTER_LO!=0xff) - // [32] if(*((byte*)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [32] if(*((char *)TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO)!=$ff) goto main::@6 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp TED+OFFSET_STRUCT_MOS7360_TED_RASTER_LO bne __b6 @@ -2063,14 +2063,14 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(3) str, byte register(X) c) +// void * memset(__zp(3) void *str, __register(X) char c, unsigned int num) memset: { .label end = $d .label dst = 3 .label str = 3 // memset::@1 // char* end = (char*)str + num - // [45] memset::end#0 = (byte*)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 + // [45] memset::end#0 = (char *)memset::str#4 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$3e8 @@ -2078,7 +2078,7 @@ memset: { lda.z str+1 adc #>$3e8 sta.z end+1 - // [46] memset::dst#4 = (byte*)memset::str#4 + // [46] memset::dst#4 = (char *)memset::str#4 // [47] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [47] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.sym b/src/test/ref/examples/plus4/plus4-randomwalk.sym index 986fa4f56..a130a9139 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.sym +++ b/src/test/ref/examples/plus4/plus4-randomwalk.sym @@ -1,68 +1,68 @@ -constant byte* const DEFAULT_COLORRAM = (byte*) 2048 -constant byte* const DEFAULT_SCREEN = (byte*) 3072 -constant byte* FADE[$10] = { 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 } -constant byte OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 -constant byte OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 -constant byte OFFSET_STRUCT_MOS7360_TED_RASTER_LO = $1d -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant struct MOS7360_TED* const TED = (struct MOS7360_TED*) 65280 -constant byte* VISITS[$3e8] = { fill( $3e8, 0) } +__constant char * const DEFAULT_COLORRAM = (char *) 2048 +__constant char * const DEFAULT_SCREEN = (char *) 3072 +__constant char FADE[$10] = { 2, $12, $22, $32, $42, $52, $62, $72, $76, $66, $56, $46, $36, $26, $16, 6 } +__constant char OFFSET_STRUCT_MOS7360_TED_BG_COLOR = $15 +__constant char OFFSET_STRUCT_MOS7360_TED_BORDER_COLOR = $19 +__constant char OFFSET_STRUCT_MOS7360_TED_RASTER_LO = $1d +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant struct MOS7360_TED * const TED = (struct MOS7360_TED *) 65280 +__constant char VISITS[$3e8] = { fill( $3e8, 0) } void main() -word~ main::$10 zp[2]:11 22.0 -byte~ main::$12 reg byte a 22.0 -byte~ main::$13 reg byte a 22.0 -byte~ main::$18 reg byte a 22.0 -word~ main::$24 zp[2]:5 16.5 -word~ main::$29 zp[2]:7 22.0 -word~ main::$3 zp[2]:5 22.0 -word~ main::$30 zp[2]:5 22.0 -byte*~ main::$6 zp[2]:9 22.0 -byte*~ main::$8 zp[2]:5 11.0 -byte~ main::$9 reg byte a 22.0 -byte main::cnt -byte main::cnt#0 reg byte y 11.0 -word main::offset -word main::offset#0 offset zp[2]:5 8.25 -byte main::rnd -byte main::rnd#0 reg byte y 14.666666666666666 -byte main::x -byte main::x#1 reg byte x 11.0 -byte main::x#10 reg byte x 184.5 -byte main::x#11 reg byte x 6.357142857142859 -byte main::x#2 reg byte x 11.0 -byte main::y -byte main::y#1 y zp[1]:2 11.0 -byte main::y#10 y zp[1]:2 184.5 -byte main::y#11 y zp[1]:2 5.964285714285716 -byte main::y#2 y zp[1]:2 11.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#5 reg byte x 14.428571428571429 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:3 202.0 -byte* memset::dst#2 dst zp[2]:3 138.33333333333331 -byte* memset::dst#4 dst zp[2]:3 22.0 -byte* memset::end -byte* memset::end#0 end zp[2]:13 18.666666666666664 -word memset::num -void* memset::return -void* memset::str -void* memset::str#4 str zp[2]:3 -word rand() -word~ rand::$0 zp[2]:13 202.0 -word~ rand::$1 zp[2]:15 202.0 -word~ rand::$2 zp[2]:17 202.0 -word rand::return -word rand::return#0 return zp[2]:11 37.33333333333333 -word rand::return#2 return zp[2]:11 22.0 -word rand_state -word rand_state#0 rand_state zp[2]:3 151.5 -word rand_state#1 rand_state zp[2]:3 151.5 -word rand_state#10 rand_state zp[2]:3 11.222222222222223 -word rand_state#12 rand_state zp[2]:3 23.307692307692307 +unsigned int main::$10 // zp[2]:11 22.0 +char main::$12 // reg byte a 22.0 +char main::$13 // reg byte a 22.0 +char main::$18 // reg byte a 22.0 +unsigned int main::$24 // zp[2]:5 16.5 +unsigned int main::$29 // zp[2]:7 22.0 +unsigned int main::$3 // zp[2]:5 22.0 +unsigned int main::$30 // zp[2]:5 22.0 +char *main::$6 // zp[2]:9 22.0 +char *main::$8 // zp[2]:5 11.0 +char main::$9 // reg byte a 22.0 +char main::cnt +char main::cnt#0 // reg byte y 11.0 +unsigned int main::offset +unsigned int main::offset#0 // offset zp[2]:5 8.25 +char main::rnd +char main::rnd#0 // reg byte y 14.666666666666666 +char main::x +char main::x#1 // reg byte x 11.0 +char main::x#10 // reg byte x 184.5 +char main::x#11 // reg byte x 6.357142857142859 +char main::x#2 // reg byte x 11.0 +char main::y +char main::y#1 // y zp[1]:2 11.0 +char main::y#10 // y zp[1]:2 184.5 +char main::y#11 // y zp[1]:2 5.964285714285716 +char main::y#2 // y zp[1]:2 11.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#5 // reg byte x 14.428571428571429 +char *memset::dst +char *memset::dst#1 // dst zp[2]:3 202.0 +char *memset::dst#2 // dst zp[2]:3 138.33333333333331 +char *memset::dst#4 // dst zp[2]:3 22.0 +char *memset::end +char *memset::end#0 // end zp[2]:13 18.666666666666664 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#4 // str zp[2]:3 +unsigned int rand() +unsigned int rand::$0 // zp[2]:13 202.0 +unsigned int rand::$1 // zp[2]:15 202.0 +unsigned int rand::$2 // zp[2]:17 202.0 +unsigned int rand::return +unsigned int rand::return#0 // return zp[2]:11 37.33333333333333 +unsigned int rand::return#2 // return zp[2]:11 22.0 +unsigned int rand_state +unsigned int rand_state#0 // rand_state zp[2]:3 151.5 +unsigned int rand_state#1 // rand_state zp[2]:3 151.5 +unsigned int rand_state#10 // rand_state zp[2]:3 11.222222222222223 +unsigned int rand_state#12 // rand_state zp[2]:3 23.307692307692307 zp[1]:2 [ main::y#11 main::y#10 main::y#2 main::y#1 ] reg byte x [ main::x#11 main::x#10 main::x#2 main::x#1 ] diff --git a/src/test/ref/examples/rom/rom.asm b/src/test/ref/examples/rom/rom.asm index 6863fbcdf..9ab5b4b6b 100644 --- a/src/test/ref/examples/rom/rom.asm +++ b/src/test/ref/examples/rom/rom.asm @@ -66,7 +66,7 @@ main: { } .segment RomCode // A stack based ROM function that will transfer all parameters and return values through the stack. -// call1(byte zp(2) param1, byte register(A) param2) +// __register(A) char call1(__zp(2) char param1, __register(A) char param2) call1: { .const OFFSET_STACK_PARAM1 = 1 .const OFFSET_STACK_PARAM2 = 0 @@ -86,7 +86,7 @@ call1: { rts } // A memory based ROM function that will transfer all parameters and return values through zeropage. -// call2(byte register(X) param1, byte register(A) param2) +// __zp(2) char call2(__register(X) char param1, __register(A) char param2) call2: { .label return = 2 // param1+param2 @@ -99,7 +99,7 @@ call2: { rts } // A "normal" optimized ROM function that will transfer parameters and return value through registers or zeropage. -// call3(byte register(X) param1, byte register(A) param2) +// __register(A) char call3(__register(X) char param1, __register(A) char param2) call3: { // param1+param2 stx.z $ff diff --git a/src/test/ref/examples/rom/rom.cfg b/src/test/ref/examples/rom/rom.cfg index aa81d8e70..fc50fc110 100644 --- a/src/test/ref/examples/rom/rom.cfg +++ b/src/test/ref/examples/rom/rom.cfg @@ -1,37 +1,37 @@ void main() main: scope:[main] from - [0] stackpush(byte) = 1 - [1] stackpush(byte) = 2 + [0] stackpush(char) = 1 + [1] stackpush(char) = 2 [2] callexecute call1 sideeffect stackpullbytes(1) - [4] main::$0 = stackpull(byte) + [4] main::$0 = stackpull(char) [5] *main::ptr = main::$0 - [6] stackpush(byte) = 3 - [7] stackpush(byte) = 4 + [6] stackpush(char) = 3 + [7] stackpush(char) = 4 [8] callexecute call1 sideeffect stackpullbytes(1) - [10] main::$1 = stackpull(byte) + [10] main::$1 = stackpull(char) [11] *main::ptr = main::$1 - [12] call call2 + [12] call call2 [13] call2::return = call2::return to:main::@1 main::@1: scope:[main] from main [14] main::$2 = call2::return [15] *main::ptr = main::$2 - [16] call call2 + [16] call call2 [17] call2::return = call2::return to:main::@2 main::@2: scope:[main] from main::@1 [18] main::$3 = call2::return [19] *main::ptr = main::$3 - [20] call call3 + [20] call call3 [21] call3::return#2 = call3::return#0 to:main::@3 main::@3: scope:[main] from main::@2 [22] main::$4 = call3::return#2 [23] *main::ptr = main::$4 - [24] call call3 + [24] call call3 [25] call3::return#3 = call3::return#0 to:main::@4 main::@4: scope:[main] from main::@3 @@ -42,18 +42,18 @@ main::@return: scope:[main] from main::@4 [28] return to:@return -__stackcall byte call1(byte call1::param1 , byte call1::param2) +__stackcall char call1(char param1 , char param2) call1: scope:[call1] from - [29] call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) - [30] call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) + [29] call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) + [30] call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) [31] call1::return#0 = call1::param1#0 + call1::param2#0 to:call1::@return call1::@return: scope:[call1] from call1 - [32] stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#0 + [32] stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#0 [33] return to:@return -byte call2(byte call2::param1 , byte call2::param2) +char call2(char param1 , char param2) call2: scope:[call2] from main main::@1 [34] call2::param2#2 = phi( main/2, main::@1/4 ) [34] call2::param1#2 = phi( main/1, main::@1/3 ) @@ -64,7 +64,7 @@ call2::@return: scope:[call2] from call2 [37] return to:@return -byte call3(byte call3::param1 , byte call3::param2) +char call3(char param1 , char param2) call3: scope:[call3] from main::@2 main::@3 [38] call3::param2#2 = phi( main::@2/2, main::@3/4 ) [38] call3::param1#2 = phi( main::@2/1, main::@3/3 ) diff --git a/src/test/ref/examples/rom/rom.log b/src/test/ref/examples/rom/rom.log index 3fe5aa4c9..799f7add0 100644 --- a/src/test/ref/examples/rom/rom.log +++ b/src/test/ref/examples/rom/rom.log @@ -3,32 +3,32 @@ Adding parameter assignment in __stackcall procedure call1::param2 = param(call1 Adding parameter assignment in __stackcall procedure call1::param1 = param(call1::param1) Calling convention __stackcall adding prepare/execute/finalize for main::$0 = call call1(1, 2) Calling convention __stackcall adding prepare/execute/finalize for main::$1 = call call1(3, 4) -Calling convention STACK_CALL replacing param(call1::param1) with stackidx(byte,call1::OFFSET_STACK_PARAM1) -Calling convention STACK_CALL replacing param(call1::param2) with stackidx(byte,call1::OFFSET_STACK_PARAM2) -Calling convention STACK_CALL adding stack return stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return -Calling convention STACK_CALL adding stack pull main::$0 = stackpull(byte) -Calling convention STACK_CALL adding stack pull main::$1 = stackpull(byte) -Calling convention STACK_CALL adding stack push stackpush(byte) = 1 -Calling convention STACK_CALL adding stack push stackpush(byte) = 2 -Calling convention STACK_CALL adding stack push stackpush(byte) = 3 -Calling convention STACK_CALL adding stack push stackpush(byte) = 4 +Calling convention STACK_CALL replacing param(call1::param1) with stackidx(char,call1::OFFSET_STACK_PARAM1) +Calling convention STACK_CALL replacing param(call1::param2) with stackidx(char,call1::OFFSET_STACK_PARAM2) +Calling convention STACK_CALL adding stack return stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return +Calling convention STACK_CALL adding stack pull main::$0 = stackpull(char) +Calling convention STACK_CALL adding stack pull main::$1 = stackpull(char) +Calling convention STACK_CALL adding stack push stackpush(char) = 1 +Calling convention STACK_CALL adding stack push stackpush(char) = 2 +Calling convention STACK_CALL adding stack push stackpush(char) = 3 +Calling convention STACK_CALL adding stack push stackpush(char) = 4 CONTROL FLOW GRAPH SSA -__stackcall byte call1(byte call1::param1 , byte call1::param2) +__stackcall char call1(char param1 , char param2) call1: scope:[call1] from - call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) - call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) + call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) + call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) call1::$0 = call1::param1#0 + call1::param2#0 call1::return#0 = call1::$0 to:call1::@return call1::@return: scope:[call1] from call1 call1::return#1 = phi( call1/call1::return#0 ) - stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#1 + stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#1 return to:@return -byte call2(byte call2::param1 , byte call2::param2) +char call2(char param1 , char param2) call2: scope:[call2] from main main::@1 call2::param2#2 = phi( main/call2::param2#0, main::@1/call2::param2#1 ) call2::param1#2 = phi( main/call2::param1#0, main::@1/call2::param1#1 ) @@ -39,7 +39,7 @@ call2::@return: scope:[call2] from call2 return to:@return -byte call3(byte call3::param1 , byte call3::param2) +char call3(char param1 , char param2) call3: scope:[call3] from main::@2 main::@3 call3::param2#2 = phi( main::@2/call3::param2#0, main::@3/call3::param2#1 ) call3::param1#2 = phi( main::@2/call3::param1#0, main::@3/call3::param1#1 ) @@ -54,17 +54,17 @@ call3::@return: scope:[call3] from call3 void main() main: scope:[main] from __start - stackpush(byte) = 1 - stackpush(byte) = 2 + stackpush(char) = 1 + stackpush(char) = 2 callexecute call1 sideeffect stackpullbytes(1) - main::$0 = stackpull(byte) + main::$0 = stackpull(char) *main::ptr = main::$0 - stackpush(byte) = 3 - stackpush(byte) = 4 + stackpush(char) = 3 + stackpush(char) = 4 callexecute call1 sideeffect stackpullbytes(1) - main::$1 = stackpull(byte) + main::$1 = stackpull(char) *main::ptr = main::$1 call2::param1#0 = 1 call2::param2#0 = 2 @@ -116,62 +116,62 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant word STACK_BASE = $103 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall byte call1(byte call1::param1 , byte call1::param2) -byte~ call1::$0 -constant byte call1::OFFSET_STACK_PARAM1 = 1 -constant byte call1::OFFSET_STACK_PARAM2 = 0 -constant byte call1::OFFSET_STACK_RETURN_1 = 1 -byte call1::param1 -byte call1::param1#0 -byte call1::param2 -byte call1::param2#0 -byte call1::return -byte call1::return#0 -byte call1::return#1 -byte call2(byte call2::param1 , byte call2::param2) -byte~ call2::$0 -byte call2::param1 -byte call2::param1#0 -byte call2::param1#1 -byte call2::param1#2 -byte call2::param2 -byte call2::param2#0 -byte call2::param2#1 -byte call2::param2#2 -byte call2::return loadstore -byte call3(byte call3::param1 , byte call3::param2) -byte~ call3::$0 -byte call3::param1 -byte call3::param1#0 -byte call3::param1#1 -byte call3::param1#2 -byte call3::param2 -byte call3::param2#0 -byte call3::param2#1 -byte call3::param2#2 -byte call3::return -byte call3::return#0 -byte call3::return#1 -byte call3::return#2 -byte call3::return#3 -byte call3::return#4 -byte call3::return#5 -byte call3::return#6 +__stackcall char call1(char param1 , char param2) +char call1::$0 +__constant char call1::OFFSET_STACK_PARAM1 = 1 +__constant char call1::OFFSET_STACK_PARAM2 = 0 +__constant char call1::OFFSET_STACK_RETURN_1 = 1 +char call1::param1 +char call1::param1#0 +char call1::param2 +char call1::param2#0 +char call1::return +char call1::return#0 +char call1::return#1 +char call2(char param1 , char param2) +char call2::$0 +char call2::param1 +char call2::param1#0 +char call2::param1#1 +char call2::param1#2 +char call2::param2 +char call2::param2#0 +char call2::param2#1 +char call2::param2#2 +__loadstore char call2::return +char call3(char param1 , char param2) +char call3::$0 +char call3::param1 +char call3::param1#0 +char call3::param1#1 +char call3::param1#2 +char call3::param2 +char call3::param2#0 +char call3::param2#1 +char call3::param2#2 +char call3::return +char call3::return#0 +char call3::return#1 +char call3::return#2 +char call3::return#3 +char call3::return#4 +char call3::return#5 +char call3::return#6 void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -constant byte* main::ptr = (byte*)$fe +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +__constant char *main::ptr = (char *)$fe -Adding number conversion cast (unumber) 1 in stackpush(byte) = 1 -Adding number conversion cast (unumber) 2 in stackpush(byte) = 2 -Adding number conversion cast (unumber) 3 in stackpush(byte) = 3 -Adding number conversion cast (unumber) 4 in stackpush(byte) = 4 +Adding number conversion cast (unumber) 1 in stackpush(char) = 1 +Adding number conversion cast (unumber) 2 in stackpush(char) = 2 +Adding number conversion cast (unumber) 3 in stackpush(char) = 3 +Adding number conversion cast (unumber) 4 in stackpush(char) = 4 Adding number conversion cast (unumber) 1 in call2::param1#0 = 1 Adding number conversion cast (unumber) 2 in call2::param2#0 = 2 Adding number conversion cast (unumber) 3 in call2::param1#1 = 3 @@ -181,10 +181,10 @@ Adding number conversion cast (unumber) 2 in call3::param2#0 = 2 Adding number conversion cast (unumber) 3 in call3::param1#1 = 3 Adding number conversion cast (unumber) 4 in call3::param2#1 = 4 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast stackpush(byte) = (unumber)1 -Inlining cast stackpush(byte) = (unumber)2 -Inlining cast stackpush(byte) = (unumber)3 -Inlining cast stackpush(byte) = (unumber)4 +Inlining cast stackpush(char) = (unumber)1 +Inlining cast stackpush(char) = (unumber)2 +Inlining cast stackpush(char) = (unumber)3 +Inlining cast stackpush(char) = (unumber)4 Inlining cast call2::param1#0 = (unumber)1 Inlining cast call2::param2#0 = (unumber)2 Inlining cast call2::param1#1 = (unumber)3 @@ -194,7 +194,7 @@ Inlining cast call3::param2#0 = (unumber)2 Inlining cast call3::param1#1 = (unumber)3 Inlining cast call3::param2#1 = (unumber)4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 254 +Simplifying constant pointer cast (char *) 254 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 @@ -208,18 +208,18 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)call2::return = call2::$0 Alias call1::return#0 = call1::$0 call1::return#1 @@ -262,8 +262,8 @@ Constant inlined call2::param1#1 = 3 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)call2::return = call2::$0 Alias candidate removed (volatile)call2::return = call2::$0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)call2::return = call2::$0 Alias candidate removed (volatile)call2::return = call2::$0 @@ -277,17 +277,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] stackpush(byte) = 1 - [1] stackpush(byte) = 2 + [0] stackpush(char) = 1 + [1] stackpush(char) = 2 [2] callexecute call1 sideeffect stackpullbytes(1) - [4] main::$0 = stackpull(byte) + [4] main::$0 = stackpull(char) [5] *main::ptr = main::$0 - [6] stackpush(byte) = 3 - [7] stackpush(byte) = 4 + [6] stackpush(char) = 3 + [7] stackpush(char) = 4 [8] callexecute call1 sideeffect stackpullbytes(1) - [10] main::$1 = stackpull(byte) + [10] main::$1 = stackpull(char) [11] *main::ptr = main::$1 [12] call call2 [13] call2::return = call2::return @@ -318,18 +318,18 @@ main::@return: scope:[main] from main::@4 [28] return to:@return -__stackcall byte call1(byte call1::param1 , byte call1::param2) +__stackcall char call1(char param1 , char param2) call1: scope:[call1] from - [29] call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) - [30] call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) + [29] call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) + [30] call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) [31] call1::return#0 = call1::param1#0 + call1::param2#0 to:call1::@return call1::@return: scope:[call1] from call1 - [32] stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#0 + [32] stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#0 [33] return to:@return -byte call2(byte call2::param1 , byte call2::param2) +char call2(char param1 , char param2) call2: scope:[call2] from main main::@1 [34] call2::param2#2 = phi( main/2, main::@1/4 ) [34] call2::param1#2 = phi( main/1, main::@1/3 ) @@ -340,7 +340,7 @@ call2::@return: scope:[call2] from call2 [37] return to:@return -byte call3(byte call3::param1 , byte call3::param2) +char call3(char param1 , char param2) call3: scope:[call3] from main::@2 main::@3 [38] call3::param2#2 = phi( main::@2/2, main::@3/4 ) [38] call3::param1#2 = phi( main::@2/1, main::@3/3 ) @@ -352,36 +352,36 @@ call3::@return: scope:[call3] from call3 VARIABLE REGISTER WEIGHTS -__stackcall byte call1(byte call1::param1 , byte call1::param2) -byte call1::param1 -byte call1::param1#0 11.0 -byte call1::param2 -byte call1::param2#0 22.0 -byte call1::return -byte call1::return#0 22.0 -byte call2(byte call2::param1 , byte call2::param2) -byte~ call2::$0 22.0 -byte call2::param1 -byte call2::param1#2 11.0 -byte call2::param2 -byte call2::param2#2 11.0 -byte call2::return loadstore 3.833333333333333 -byte call3(byte call3::param1 , byte call3::param2) -byte call3::param1 -byte call3::param1#2 11.0 -byte call3::param2 -byte call3::param2#2 11.0 -byte call3::return -byte call3::return#0 3.75 -byte call3::return#2 4.0 -byte call3::return#3 4.0 +__stackcall char call1(char param1 , char param2) +char call1::param1 +char call1::param1#0 // 11.0 +char call1::param2 +char call1::param2#0 // 22.0 +char call1::return +char call1::return#0 // 22.0 +char call2(char param1 , char param2) +char call2::$0 // 22.0 +char call2::param1 +char call2::param1#2 // 11.0 +char call2::param2 +char call2::param2#2 // 11.0 +__loadstore char call2::return // 3.833333333333333 +char call3(char param1 , char param2) +char call3::param1 +char call3::param1#2 // 11.0 +char call3::param2 +char call3::param2#2 // 11.0 +char call3::return +char call3::return#0 // 3.75 +char call3::return#2 // 4.0 +char call3::return#3 // 4.0 void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 -byte~ main::$4 4.0 -byte~ main::$5 4.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +char main::$4 // 4.0 +char main::$5 // 4.0 Initial phi equivalence classes [ call2::param1#2 ] @@ -440,34 +440,34 @@ Allocated zp[1]:17 [ call1::return#0 ] Allocated zp[1]:18 [ call2::$0 ] Allocated zp[1]:19 [ call3::return#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] stackpush(byte) = 1 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a -Statement [1] stackpush(byte) = 2 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [0] stackpush(char) = 1 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [1] stackpush(char) = 2 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [4] main::$0 = stackpull(byte) [ main::$0 ] ( [ main::$0 ] { { call2::return = } } ) always clobbers reg byte a -Statement [6] stackpush(byte) = 3 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a -Statement [7] stackpush(byte) = 4 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [4] main::$0 = stackpull(char) [ main::$0 ] ( [ main::$0 ] { { call2::return = } } ) always clobbers reg byte a +Statement [6] stackpush(char) = 3 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [7] stackpush(char) = 4 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [10] main::$1 = stackpull(byte) [ main::$1 ] ( [ main::$1 ] { { call2::return = } } ) always clobbers reg byte a -Statement [29] call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) [ call1::param1#0 ] ( call1:2 [ call1::param1#0 ] { } call1:8 [ call1::param1#0 ] { } ) always clobbers reg byte a reg byte x -Statement [30] call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) [ call1::param1#0 call1::param2#0 ] ( call1:2 [ call1::param1#0 call1::param2#0 ] { } call1:8 [ call1::param1#0 call1::param2#0 ] { } ) always clobbers reg byte a reg byte x +Statement [10] main::$1 = stackpull(char) [ main::$1 ] ( [ main::$1 ] { { call2::return = } } ) always clobbers reg byte a +Statement [29] call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) [ call1::param1#0 ] ( call1:2 [ call1::param1#0 ] { } call1:8 [ call1::param1#0 ] { } ) always clobbers reg byte a reg byte x +Statement [30] call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) [ call1::param1#0 call1::param2#0 ] ( call1:2 [ call1::param1#0 call1::param2#0 ] { } call1:8 [ call1::param1#0 call1::param2#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:15 [ call1::param1#0 ] Removing always clobbered register reg byte x as potential for zp[1]:15 [ call1::param1#0 ] Statement [31] call1::return#0 = call1::param1#0 + call1::param2#0 [ call1::return#0 ] ( call1:2 [ call1::return#0 ] { } call1:8 [ call1::return#0 ] { } ) always clobbers reg byte a -Statement [32] stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#0 [ ] ( call1:2 [ ] { } call1:8 [ ] { } ) always clobbers reg byte x +Statement [32] stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#0 [ ] ( call1:2 [ ] { } call1:8 [ ] { } ) always clobbers reg byte x Statement [35] call2::$0 = call2::param1#2 + call2::param2#2 [ call2::$0 ] ( call2:12 [ call2::$0 ] { { call2::return = } } call2:16 [ call2::$0 ] { { call2::return = } } ) always clobbers reg byte a Statement [39] call3::return#0 = call3::param1#2 + call3::param2#2 [ call3::return#0 ] ( call3:20 [ call3::return#0 ] { { call3::return#0 = call3::return#2 } } call3:24 [ call3::return#0 ] { { call3::return#0 = call3::return#3 } } ) always clobbers reg byte a -Statement [0] stackpush(byte) = 1 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a -Statement [1] stackpush(byte) = 2 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [0] stackpush(char) = 1 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [1] stackpush(char) = 2 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [4] main::$0 = stackpull(byte) [ main::$0 ] ( [ main::$0 ] { { call2::return = } } ) always clobbers reg byte a -Statement [6] stackpush(byte) = 3 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a -Statement [7] stackpush(byte) = 4 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [4] main::$0 = stackpull(char) [ main::$0 ] ( [ main::$0 ] { { call2::return = } } ) always clobbers reg byte a +Statement [6] stackpush(char) = 3 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a +Statement [7] stackpush(char) = 4 [ ] ( [ ] { { call2::return = } } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [10] main::$1 = stackpull(byte) [ main::$1 ] ( [ main::$1 ] { { call2::return = } } ) always clobbers reg byte a -Statement [29] call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) [ call1::param1#0 ] ( call1:2 [ call1::param1#0 ] { } call1:8 [ call1::param1#0 ] { } ) always clobbers reg byte a reg byte x -Statement [30] call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) [ call1::param1#0 call1::param2#0 ] ( call1:2 [ call1::param1#0 call1::param2#0 ] { } call1:8 [ call1::param1#0 call1::param2#0 ] { } ) always clobbers reg byte a reg byte x +Statement [10] main::$1 = stackpull(char) [ main::$1 ] ( [ main::$1 ] { { call2::return = } } ) always clobbers reg byte a +Statement [29] call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) [ call1::param1#0 ] ( call1:2 [ call1::param1#0 ] { } call1:8 [ call1::param1#0 ] { } ) always clobbers reg byte a reg byte x +Statement [30] call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) [ call1::param1#0 call1::param2#0 ] ( call1:2 [ call1::param1#0 call1::param2#0 ] { } call1:8 [ call1::param1#0 call1::param2#0 ] { } ) always clobbers reg byte a reg byte x Statement [31] call1::return#0 = call1::param1#0 + call1::param2#0 [ call1::return#0 ] ( call1:2 [ call1::return#0 ] { } call1:8 [ call1::return#0 ] { } ) always clobbers reg byte a -Statement [32] stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#0 [ ] ( call1:2 [ ] { } call1:8 [ ] { } ) always clobbers reg byte x +Statement [32] stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#0 [ ] ( call1:2 [ ] { } call1:8 [ ] { } ) always clobbers reg byte x Statement [35] call2::$0 = call2::param1#2 + call2::param2#2 [ call2::$0 ] ( call2:12 [ call2::$0 ] { { call2::return = } } call2:16 [ call2::$0 ] { { call2::return = } } ) always clobbers reg byte a Statement [39] call3::return#0 = call3::param1#2 + call3::param2#2 [ call3::return#0 ] ( call3:20 [ call3::return#0 ] { { call3::return#0 = call3::return#2 } } call3:24 [ call3::return#0 ] { { call3::return#0 = call3::return#3 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ call2::param1#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -534,31 +534,31 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label ptr = $fe - // [0] stackpush(byte) = 1 -- _stackpushbyte_=vbuc1 + // [0] stackpush(char) = 1 -- _stackpushbyte_=vbuc1 lda #1 pha - // [1] stackpush(byte) = 2 -- _stackpushbyte_=vbuc1 + // [1] stackpush(char) = 2 -- _stackpushbyte_=vbuc1 lda #2 pha // [2] callexecute call1 -- call_vprc1 jsr call1 // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [4] main::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [4] main::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // [5] *main::ptr = main::$0 -- _deref_pbuc1=vbuaa sta ptr - // [6] stackpush(byte) = 3 -- _stackpushbyte_=vbuc1 + // [6] stackpush(char) = 3 -- _stackpushbyte_=vbuc1 lda #3 pha - // [7] stackpush(byte) = 4 -- _stackpushbyte_=vbuc1 + // [7] stackpush(char) = 4 -- _stackpushbyte_=vbuc1 lda #4 pha // [8] callexecute call1 -- call_vprc1 jsr call1 // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [10] main::$1 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [10] main::$1 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // [11] *main::ptr = main::$1 -- _deref_pbuc1=vbuaa sta ptr @@ -633,17 +633,17 @@ main: { .segment RomCode // call1 // A stack based ROM function that will transfer all parameters and return values through the stack. -// call1(byte zp(2) param1, byte register(A) param2) +// __register(A) char call1(__zp(2) char param1, __register(A) char param2) call1: { .const OFFSET_STACK_PARAM1 = 1 .const OFFSET_STACK_PARAM2 = 0 .const OFFSET_STACK_RETURN_1 = 1 .label param1 = 2 - // [29] call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) -- vbuz1=_stackidxbyte_vbuc1 + // [29] call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_PARAM1,x sta.z param1 - // [30] call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) -- vbuaa=_stackidxbyte_vbuc1 + // [30] call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_PARAM2,x // [31] call1::return#0 = call1::param1#0 + call1::param2#0 -- vbuaa=vbuz1_plus_vbuaa @@ -652,7 +652,7 @@ call1: { jmp __breturn // call1::@return __breturn: - // [32] stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [32] stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [33] return @@ -660,7 +660,7 @@ call1: { } // call2 // A memory based ROM function that will transfer all parameters and return values through zeropage. -// call2(byte register(X) param1, byte register(A) param2) +// __zp(2) char call2(__register(X) char param1, __register(A) char param2) call2: { .label return = 2 // [35] call2::$0 = call2::param1#2 + call2::param2#2 -- vbuaa=vbuxx_plus_vbuaa @@ -677,7 +677,7 @@ call2: { } // call3 // A "normal" optimized ROM function that will transfer parameters and return value through registers or zeropage. -// call3(byte register(X) param1, byte register(A) param2) +// __register(A) char call3(__register(X) char param1, __register(A) char param2) call3: { // [39] call3::return#0 = call3::param1#2 + call3::param2#2 -- vbuaa=vbuxx_plus_vbuaa stx.z $ff @@ -716,41 +716,41 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word STACK_BASE = $103 -__stackcall byte call1(byte call1::param1 , byte call1::param2) -constant byte call1::OFFSET_STACK_PARAM1 = 1 -constant byte call1::OFFSET_STACK_PARAM2 = 0 -constant byte call1::OFFSET_STACK_RETURN_1 = 1 -byte call1::param1 -byte call1::param1#0 param1 zp[1]:2 11.0 -byte call1::param2 -byte call1::param2#0 reg byte a 22.0 -byte call1::return -byte call1::return#0 reg byte a 22.0 -byte call2(byte call2::param1 , byte call2::param2) -byte~ call2::$0 reg byte a 22.0 -byte call2::param1 -byte call2::param1#2 reg byte x 11.0 -byte call2::param2 -byte call2::param2#2 reg byte a 11.0 -byte call2::return loadstore zp[1]:2 3.833333333333333 -byte call3(byte call3::param1 , byte call3::param2) -byte call3::param1 -byte call3::param1#2 reg byte x 11.0 -byte call3::param2 -byte call3::param2#2 reg byte a 11.0 -byte call3::return -byte call3::return#0 reg byte a 3.75 -byte call3::return#2 reg byte a 4.0 -byte call3::return#3 reg byte a 4.0 +__constant unsigned int STACK_BASE = $103 +__stackcall char call1(char param1 , char param2) +__constant char call1::OFFSET_STACK_PARAM1 = 1 +__constant char call1::OFFSET_STACK_PARAM2 = 0 +__constant char call1::OFFSET_STACK_RETURN_1 = 1 +char call1::param1 +char call1::param1#0 // param1 zp[1]:2 11.0 +char call1::param2 +char call1::param2#0 // reg byte a 22.0 +char call1::return +char call1::return#0 // reg byte a 22.0 +char call2(char param1 , char param2) +char call2::$0 // reg byte a 22.0 +char call2::param1 +char call2::param1#2 // reg byte x 11.0 +char call2::param2 +char call2::param2#2 // reg byte a 11.0 +__loadstore char call2::return // zp[1]:2 3.833333333333333 +char call3(char param1 , char param2) +char call3::param1 +char call3::param1#2 // reg byte x 11.0 +char call3::param2 +char call3::param2#2 // reg byte a 11.0 +char call3::return +char call3::return#0 // reg byte a 3.75 +char call3::return#2 // reg byte a 4.0 +char call3::return#3 // reg byte a 4.0 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* main::ptr = (byte*) 254 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char *main::ptr = (char *) 254 reg byte x [ call2::param1#2 ] reg byte a [ call2::param2#2 ] @@ -792,33 +792,33 @@ Score: 188 main: { .label ptr = $fe // call1(1,2) - // [0] stackpush(byte) = 1 -- _stackpushbyte_=vbuc1 + // [0] stackpush(char) = 1 -- _stackpushbyte_=vbuc1 lda #1 pha - // [1] stackpush(byte) = 2 -- _stackpushbyte_=vbuc1 + // [1] stackpush(char) = 2 -- _stackpushbyte_=vbuc1 lda #2 pha // [2] callexecute call1 -- call_vprc1 jsr call1 // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [4] main::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [4] main::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // *ptr = call1(1,2) // [5] *main::ptr = main::$0 -- _deref_pbuc1=vbuaa sta ptr // call1(3,4) - // [6] stackpush(byte) = 3 -- _stackpushbyte_=vbuc1 + // [6] stackpush(char) = 3 -- _stackpushbyte_=vbuc1 lda #3 pha - // [7] stackpush(byte) = 4 -- _stackpushbyte_=vbuc1 + // [7] stackpush(char) = 4 -- _stackpushbyte_=vbuc1 lda #4 pha // [8] callexecute call1 -- call_vprc1 jsr call1 // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [10] main::$1 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [10] main::$1 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // *ptr = call1(3,4) // [11] *main::ptr = main::$1 -- _deref_pbuc1=vbuaa @@ -893,17 +893,17 @@ main: { .segment RomCode // call1 // A stack based ROM function that will transfer all parameters and return values through the stack. -// call1(byte zp(2) param1, byte register(A) param2) +// __register(A) char call1(__zp(2) char param1, __register(A) char param2) call1: { .const OFFSET_STACK_PARAM1 = 1 .const OFFSET_STACK_PARAM2 = 0 .const OFFSET_STACK_RETURN_1 = 1 .label param1 = 2 - // [29] call1::param1#0 = stackidx(byte,call1::OFFSET_STACK_PARAM1) -- vbuz1=_stackidxbyte_vbuc1 + // [29] call1::param1#0 = stackidx(char,call1::OFFSET_STACK_PARAM1) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_PARAM1,x sta.z param1 - // [30] call1::param2#0 = stackidx(byte,call1::OFFSET_STACK_PARAM2) -- vbuaa=_stackidxbyte_vbuc1 + // [30] call1::param2#0 = stackidx(char,call1::OFFSET_STACK_PARAM2) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_PARAM2,x // return param1+param2; @@ -912,7 +912,7 @@ call1: { adc.z param1 // call1::@return // } - // [32] stackidx(byte,call1::OFFSET_STACK_RETURN_1) = call1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [32] stackidx(char,call1::OFFSET_STACK_RETURN_1) = call1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [33] return @@ -920,7 +920,7 @@ call1: { } // call2 // A memory based ROM function that will transfer all parameters and return values through zeropage. -// call2(byte register(X) param1, byte register(A) param2) +// __zp(2) char call2(__register(X) char param1, __register(A) char param2) call2: { .label return = 2 // param1+param2 @@ -938,7 +938,7 @@ call2: { } // call3 // A "normal" optimized ROM function that will transfer parameters and return value through registers or zeropage. -// call3(byte register(X) param1, byte register(A) param2) +// __register(A) char call3(__register(X) char param1, __register(A) char param2) call3: { // param1+param2 // [39] call3::return#0 = call3::param1#2 + call3::param2#2 -- vbuaa=vbuxx_plus_vbuaa diff --git a/src/test/ref/examples/rom/rom.sym b/src/test/ref/examples/rom/rom.sym index b92661e8f..12ea0f49f 100644 --- a/src/test/ref/examples/rom/rom.sym +++ b/src/test/ref/examples/rom/rom.sym @@ -1,38 +1,38 @@ -constant word STACK_BASE = $103 -__stackcall byte call1(byte call1::param1 , byte call1::param2) -constant byte call1::OFFSET_STACK_PARAM1 = 1 -constant byte call1::OFFSET_STACK_PARAM2 = 0 -constant byte call1::OFFSET_STACK_RETURN_1 = 1 -byte call1::param1 -byte call1::param1#0 param1 zp[1]:2 11.0 -byte call1::param2 -byte call1::param2#0 reg byte a 22.0 -byte call1::return -byte call1::return#0 reg byte a 22.0 -byte call2(byte call2::param1 , byte call2::param2) -byte~ call2::$0 reg byte a 22.0 -byte call2::param1 -byte call2::param1#2 reg byte x 11.0 -byte call2::param2 -byte call2::param2#2 reg byte a 11.0 -byte call2::return loadstore zp[1]:2 3.833333333333333 -byte call3(byte call3::param1 , byte call3::param2) -byte call3::param1 -byte call3::param1#2 reg byte x 11.0 -byte call3::param2 -byte call3::param2#2 reg byte a 11.0 -byte call3::return -byte call3::return#0 reg byte a 3.75 -byte call3::return#2 reg byte a 4.0 -byte call3::return#3 reg byte a 4.0 +__constant unsigned int STACK_BASE = $103 +__stackcall char call1(char param1 , char param2) +__constant char call1::OFFSET_STACK_PARAM1 = 1 +__constant char call1::OFFSET_STACK_PARAM2 = 0 +__constant char call1::OFFSET_STACK_RETURN_1 = 1 +char call1::param1 +char call1::param1#0 // param1 zp[1]:2 11.0 +char call1::param2 +char call1::param2#0 // reg byte a 22.0 +char call1::return +char call1::return#0 // reg byte a 22.0 +char call2(char param1 , char param2) +char call2::$0 // reg byte a 22.0 +char call2::param1 +char call2::param1#2 // reg byte x 11.0 +char call2::param2 +char call2::param2#2 // reg byte a 11.0 +__loadstore char call2::return // zp[1]:2 3.833333333333333 +char call3(char param1 , char param2) +char call3::param1 +char call3::param1#2 // reg byte x 11.0 +char call3::param2 +char call3::param2#2 // reg byte a 11.0 +char call3::return +char call3::return#0 // reg byte a 3.75 +char call3::return#2 // reg byte a 4.0 +char call3::return#3 // reg byte a 4.0 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* main::ptr = (byte*) 254 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char *main::ptr = (char *) 254 reg byte x [ call2::param1#2 ] reg byte a [ call2::param2#2 ] diff --git a/src/test/ref/fibmem.log b/src/test/ref/fibmem.log index dc1ffcbbf..d92addde3 100644 --- a/src/test/ref/fibmem.log +++ b/src/test/ref/fibmem.log @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,16 +33,16 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* fibs[$f] = { fill( $f, 0) } +__constant char fibs[$f] = { fill( $f, 0) } void main() -number~ main::$0 -number~ main::$1 -byte~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +number main::$0 +number main::$1 +char main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) 0 in fibs[0] = 0 Adding number conversion cast (unumber) 0 in fibs[0] = ((unumber)) 0 @@ -65,16 +65,16 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 + 2 -Inferred type updated to byte in main::$1 = main::i#2 + 1 +Inferred type updated to char in main::$0 = main::i#2 + 2 +Inferred type updated to char in main::$1 = main::i#2 + 1 Simple Condition main::$3 [10] if(main::i#1<$f) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 @@ -95,8 +95,8 @@ Consolidated array index constant in assignment (fibs+2)[main::$0] Successful SSA optimization Pass2ConstantAdditionElimination Alias main::i#2 = main::$0 main::$1 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) CALL GRAPH @@ -127,10 +127,10 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 18.333333333333332 +char main::$2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -225,12 +225,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* fibs[$f] = { fill( $f, 0) } +__constant char fibs[$f] = { fill( $f, 0) } void main() -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 18.333333333333332 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$2 ] diff --git a/src/test/ref/fibmem.sym b/src/test/ref/fibmem.sym index ecf8dba88..ed1e76402 100644 --- a/src/test/ref/fibmem.sym +++ b/src/test/ref/fibmem.sym @@ -1,9 +1,9 @@ -constant byte* fibs[$f] = { fill( $f, 0) } +__constant char fibs[$f] = { fill( $f, 0) } void main() -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 18.333333333333332 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$2 ] diff --git a/src/test/ref/fill-square.cfg b/src/test/ref/fill-square.cfg index 37b942436..732b01fe7 100644 --- a/src/test/ref/fill-square.cfg +++ b/src/test/ref/fill-square.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] main::y#2 = phi( main/5, main::@3/main::y#1 ) - [2] main::$5 = (word)main::y#2 + [2] main::$5 = (unsigned int)main::y#2 [3] main::$6 = main::$5 << 2 [4] main::$7 = main::$6 + main::$5 [5] main::$0 = main::$7 << 3 diff --git a/src/test/ref/fill-square.log b/src/test/ref/fill-square.log index 1311bf8a6..108790b93 100644 --- a/src/test/ref/fill-square.log +++ b/src/test/ref/fill-square.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$1 CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 to:main::@1 main::@1: scope:[main] from main main::@3 main::y#2 = phi( main/main::y#0, main::@3/main::y#1 ) - main::$5 = (word)main::y#2 + main::$5 = (unsigned int)main::y#2 main::$0 = main::$5 * $28 main::line#0 = SCREEN + main::$0 main::x#0 = 5 @@ -40,7 +40,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -49,37 +49,37 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -number~ main::$0 -byte~ main::$2 -bool~ main::$3 -bool~ main::$4 -word~ main::$5 -byte* main::line -byte* main::line#0 -byte* main::line#1 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 +number main::$0 +char main::$2 +bool main::$3 +bool main::$4 +unsigned int main::$5 +char *main::line +char *main::line#0 +char *main::line#1 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 Adding number conversion cast (unumber) $28 in main::$0 = main::$5 * $28 Adding number conversion cast (unumber) main::$0 in main::$0 = main::$5 * (unumber)$28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$0 = main::$5 * $28 +Inferred type updated to unsigned int in main::$0 = main::$5 * $28 Alias main::y#3 = main::y#4 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::y#3 main::y#2 @@ -108,8 +108,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $10 Simplifying constant integer cast $10 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[2] main::$0 = main::$5 * $28 Inlining constant with var siblings main::y#0 @@ -140,7 +140,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] main::y#2 = phi( main/5, main::@3/main::y#1 ) - [2] main::$5 = (word)main::y#2 + [2] main::$5 = (unsigned int)main::y#2 [3] main::$6 = main::$5 << 2 [4] main::$7 = main::$6 + main::$5 [5] main::$0 = main::$7 << 3 @@ -164,19 +164,19 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -word~ main::$0 22.0 -byte~ main::$2 202.0 -word~ main::$5 16.5 -word~ main::$6 22.0 -word~ main::$7 22.0 -byte* main::line -byte* main::line#0 18.666666666666664 -byte main::x -byte main::x#1 151.5 -byte main::x#2 134.66666666666666 -byte main::y -byte main::y#1 16.5 -byte main::y#2 11.181818181818182 +unsigned int main::$0 // 22.0 +char main::$2 // 202.0 +unsigned int main::$5 // 16.5 +unsigned int main::$6 // 22.0 +unsigned int main::$7 // 22.0 +char *main::line +char *main::line#0 // 18.666666666666664 +char main::x +char main::x#1 // 151.5 +char main::x#2 // 134.66666666666666 +char main::y +char main::y#1 // 16.5 +char main::y#2 // 11.181818181818182 Initial phi equivalence classes [ main::y#2 main::y#1 ] @@ -205,7 +205,7 @@ Allocated zp[2]:10 [ main::$0 ] Allocated zp[2]:12 [ main::line#0 ] Allocated zp[1]:14 [ main::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::$5 = (word)main::y#2 [ main::y#2 main::$5 ] ( [ main::y#2 main::$5 ] { } ) always clobbers reg byte a +Statement [2] main::$5 = (unsigned int)main::y#2 [ main::y#2 main::$5 ] ( [ main::y#2 main::$5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::y#2 main::y#1 ] Statement [3] main::$6 = main::$5 << 2 [ main::y#2 main::$5 main::$6 ] ( [ main::y#2 main::$5 main::$6 ] { } ) always clobbers reg byte a Statement [4] main::$7 = main::$6 + main::$5 [ main::y#2 main::$7 ] ( [ main::y#2 main::$7 ] { } ) always clobbers reg byte a @@ -213,7 +213,7 @@ Statement [5] main::$0 = main::$7 << 3 [ main::y#2 main::$0 ] ( [ main::y#2 mai Statement [6] main::line#0 = SCREEN + main::$0 [ main::y#2 main::line#0 ] ( [ main::y#2 main::line#0 ] { } ) always clobbers reg byte a Statement [8] main::$2 = main::x#2 + main::y#2 [ main::y#2 main::line#0 main::x#2 main::$2 ] ( [ main::y#2 main::line#0 main::x#2 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::x#2 main::x#1 ] -Statement [2] main::$5 = (word)main::y#2 [ main::y#2 main::$5 ] ( [ main::y#2 main::$5 ] { } ) always clobbers reg byte a +Statement [2] main::$5 = (unsigned int)main::y#2 [ main::y#2 main::$5 ] ( [ main::y#2 main::$5 ] { } ) always clobbers reg byte a Statement [3] main::$6 = main::$5 << 2 [ main::y#2 main::$5 main::$6 ] ( [ main::y#2 main::$5 main::$6 ] { } ) always clobbers reg byte a Statement [4] main::$7 = main::$6 + main::$5 [ main::y#2 main::$7 ] ( [ main::y#2 main::$7 ] { } ) always clobbers reg byte a Statement [5] main::$0 = main::$7 << 3 [ main::y#2 main::$0 ] ( [ main::y#2 main::$0 ] { } ) always clobbers reg byte a @@ -277,7 +277,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] main::$5 = (word)main::y#2 -- vwuz1=_word_vbuz2 + // [2] main::$5 = (unsigned int)main::y#2 -- vwuz1=_word_vbuz2 lda.z y sta.z __5 lda #0 @@ -374,21 +374,21 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -word~ main::$0 zp[2]:3 22.0 -byte~ main::$2 reg byte a 202.0 -word~ main::$5 zp[2]:3 16.5 -word~ main::$6 zp[2]:5 22.0 -word~ main::$7 zp[2]:3 22.0 -byte* main::line -byte* main::line#0 line zp[2]:3 18.666666666666664 -byte main::x -byte main::x#1 reg byte y 151.5 -byte main::x#2 reg byte y 134.66666666666666 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#2 y zp[1]:2 11.181818181818182 +unsigned int main::$0 // zp[2]:3 22.0 +char main::$2 // reg byte a 202.0 +unsigned int main::$5 // zp[2]:3 16.5 +unsigned int main::$6 // zp[2]:5 22.0 +unsigned int main::$7 // zp[2]:3 22.0 +char *main::line +char *main::line#0 // line zp[2]:3 18.666666666666664 +char main::x +char main::x#1 // reg byte y 151.5 +char main::x#2 // reg byte y 134.66666666666666 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#2 // y zp[1]:2 11.181818181818182 zp[1]:2 [ main::y#2 main::y#1 ] reg byte y [ main::x#2 main::x#1 ] @@ -431,7 +431,7 @@ main: { // main::@1 __b1: // (word)y*40 - // [2] main::$5 = (word)main::y#2 -- vwuz1=_word_vbuz2 + // [2] main::$5 = (unsigned int)main::y#2 -- vwuz1=_word_vbuz2 lda.z y sta.z __5 lda #0 diff --git a/src/test/ref/fill-square.sym b/src/test/ref/fill-square.sym index 18cd0946a..f70536b3e 100644 --- a/src/test/ref/fill-square.sym +++ b/src/test/ref/fill-square.sym @@ -1,18 +1,18 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -word~ main::$0 zp[2]:3 22.0 -byte~ main::$2 reg byte a 202.0 -word~ main::$5 zp[2]:3 16.5 -word~ main::$6 zp[2]:5 22.0 -word~ main::$7 zp[2]:3 22.0 -byte* main::line -byte* main::line#0 line zp[2]:3 18.666666666666664 -byte main::x -byte main::x#1 reg byte y 151.5 -byte main::x#2 reg byte y 134.66666666666666 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#2 y zp[1]:2 11.181818181818182 +unsigned int main::$0 // zp[2]:3 22.0 +char main::$2 // reg byte a 202.0 +unsigned int main::$5 // zp[2]:3 16.5 +unsigned int main::$6 // zp[2]:5 22.0 +unsigned int main::$7 // zp[2]:3 22.0 +char *main::line +char *main::line#0 // line zp[2]:3 18.666666666666664 +char main::x +char main::x#1 // reg byte y 151.5 +char main::x#2 // reg byte y 134.66666666666666 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#2 // y zp[1]:2 11.181818181818182 zp[1]:2 [ main::y#2 main::y#1 ] reg byte y [ main::x#2 main::x#1 ] diff --git a/src/test/ref/fillscreen-1.log b/src/test/ref/fillscreen-1.log index 7e11b2088..78d014d5f 100644 --- a/src/test/ref/fillscreen-1.log +++ b/src/test/ref/fillscreen-1.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -32,7 +32,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -41,34 +41,34 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $fa in main::$0 = main::i#2 < $fa Adding number conversion cast (unumber) $fa in main::$1 = SCREEN + $fa Adding number conversion cast (unumber) $1f4 in main::$2 = SCREEN + $1f4 Adding number conversion cast (unumber) $2ee in main::$3 = SCREEN + $2ee Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $fa Simplifying constant integer cast $fa Simplifying constant integer cast $1f4 Simplifying constant integer cast $2ee Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (word) $1f4 -Finalized unsigned number type (word) $2ee +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (unsigned int) $1f4 +Finalized unsigned number type (unsigned int) $2ee Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -128,9 +128,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 12.833333333333334 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 12.833333333333334 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -225,11 +225,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 12.833333333333334 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 12.833333333333334 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/fillscreen-1.sym b/src/test/ref/fillscreen-1.sym index 16367c9e0..7d53e5ff0 100644 --- a/src/test/ref/fillscreen-1.sym +++ b/src/test/ref/fillscreen-1.sym @@ -1,7 +1,7 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 12.833333333333334 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 12.833333333333334 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/fillscreen-2.log b/src/test/ref/fillscreen-2.log index 292db123b..44ebf7162 100644 --- a/src/test/ref/fillscreen-2.log +++ b/src/test/ref/fillscreen-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -35,22 +35,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 +bool main::$0 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 Adding number conversion cast (unumber) $3e8 in main::$0 = main::i#2 < $3e8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -100,10 +100,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$1 22.0 -word main::i -word main::i#1 22.0 -word main::i#2 11.0 +char *main::$1 // 22.0 +unsigned int main::i +unsigned int main::i#1 // 22.0 +unsigned int main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -208,12 +208,12 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte*~ main::$1 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 11.0 +char *main::$1 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 11.0 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/fillscreen-2.sym b/src/test/ref/fillscreen-2.sym index e357b7d68..c8800be9f 100644 --- a/src/test/ref/fillscreen-2.sym +++ b/src/test/ref/fillscreen-2.sym @@ -1,9 +1,9 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte*~ main::$1 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 11.0 +char *main::$1 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 11.0 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/fillscreen-3.log b/src/test/ref/fillscreen-3.log index 93992a279..fdacb46ef 100644 --- a/src/test/ref/fillscreen-3.log +++ b/src/test/ref/fillscreen-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -27,7 +27,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -36,23 +36,23 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -byte*~ main::$0 -bool~ main::$1 -byte* main::dst -byte* main::dst#0 -byte* main::dst#1 -byte* main::dst#2 -byte* main::dst#3 +char *main::$0 +bool main::$1 +char *main::dst +char *main::dst#0 +char *main::dst#1 +char *main::dst#2 +char *main::dst#3 Adding number conversion cast (unumber) $3e8 in main::$0 = SCREEN + $3e8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::dst#2 = main::dst#3 Successful SSA optimization Pass2AliasElimination @@ -103,9 +103,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::dst -byte* main::dst#1 22.0 -byte* main::dst#2 14.666666666666666 +char *main::dst +char *main::dst#1 // 22.0 +char *main::dst#2 // 14.666666666666666 Initial phi equivalence classes [ main::dst#2 main::dst#1 ] @@ -192,11 +192,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte* main::dst -byte* main::dst#1 dst zp[2]:2 22.0 -byte* main::dst#2 dst zp[2]:2 14.666666666666666 +char *main::dst +char *main::dst#1 // dst zp[2]:2 22.0 +char *main::dst#2 // dst zp[2]:2 14.666666666666666 zp[2]:2 [ main::dst#2 main::dst#1 ] diff --git a/src/test/ref/fillscreen-3.sym b/src/test/ref/fillscreen-3.sym index 6bf344297..4b6c2c137 100644 --- a/src/test/ref/fillscreen-3.sym +++ b/src/test/ref/fillscreen-3.sym @@ -1,7 +1,7 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte* main::dst -byte* main::dst#1 dst zp[2]:2 22.0 -byte* main::dst#2 dst zp[2]:2 14.666666666666666 +char *main::dst +char *main::dst#1 // dst zp[2]:2 22.0 +char *main::dst#2 // dst zp[2]:2 14.666666666666666 zp[2]:2 [ main::dst#2 main::dst#1 ] diff --git a/src/test/ref/flipper-rex2.log b/src/test/ref/flipper-rex2.log index 0f00c6558..2b78728b1 100644 --- a/src/test/ref/flipper-rex2.log +++ b/src/test/ref/flipper-rex2.log @@ -1,11 +1,11 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement plot::$1 CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - call prepare + call prepare to:main::@6 main::@6: scope:[main] from main to:main::@1 @@ -29,10 +29,10 @@ main::@4: scope:[main] from main::@3 if(main::$3) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@4 - call flip + call flip to:main::@7 main::@7: scope:[main] from main::@5 - call plot + call plot to:main::@8 main::@8: scope:[main] from main::@7 if(true) goto main::@1 @@ -154,7 +154,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -163,90 +163,90 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* RASTER = (byte*)$d012 -constant byte* SCREEN = (byte*)$400 +__constant char *RASTER = (char *)$d012 +__constant char *SCREEN = (char *)$400 void __start() -constant byte* buffer1[$10*$10] = { fill( $10*$10, 0) } -constant byte* buffer2[$10*$10] = { fill( $10*$10, 0) } +__constant char buffer1[$10*$10] = { fill( $10*$10, 0) } +__constant char buffer2[$10*$10] = { fill( $10*$10, 0) } void flip() -number~ flip::$0 -bool~ flip::$1 -bool~ flip::$2 -bool~ flip::$3 -byte flip::c -byte flip::c#0 -byte flip::c#1 -byte flip::c#2 -byte flip::dstIdx -byte flip::dstIdx#0 -byte flip::dstIdx#1 -byte flip::dstIdx#2 -byte flip::dstIdx#3 -byte flip::dstIdx#4 -byte flip::dstIdx#5 -byte flip::i -byte flip::i#0 -byte flip::i#1 -byte flip::i#2 -byte flip::r -byte flip::r#0 -byte flip::r#1 -byte flip::r#2 -byte flip::r#3 -byte flip::r#4 -byte flip::srcIdx -byte flip::srcIdx#0 -byte flip::srcIdx#1 -byte flip::srcIdx#2 -byte flip::srcIdx#3 -byte flip::srcIdx#4 +number flip::$0 +bool flip::$1 +bool flip::$2 +bool flip::$3 +char flip::c +char flip::c#0 +char flip::c#1 +char flip::c#2 +char flip::dstIdx +char flip::dstIdx#0 +char flip::dstIdx#1 +char flip::dstIdx#2 +char flip::dstIdx#3 +char flip::dstIdx#4 +char flip::dstIdx#5 +char flip::i +char flip::i#0 +char flip::i#1 +char flip::i#2 +char flip::r +char flip::r#0 +char flip::r#1 +char flip::r#2 +char flip::r#3 +char flip::r#4 +char flip::srcIdx +char flip::srcIdx#0 +char flip::srcIdx#1 +char flip::srcIdx#2 +char flip::srcIdx#3 +char flip::srcIdx#4 void main() -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c#4 +bool main::$1 +bool main::$2 +bool main::$3 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c#4 void plot() -byte*~ plot::$0 -bool~ plot::$2 -byte*~ plot::$3 -bool~ plot::$4 -byte plot::i -byte plot::i#0 -byte plot::i#1 -byte plot::i#2 -byte plot::i#3 -byte plot::i#4 -byte plot::i#5 -byte* plot::line -byte* plot::line#0 -byte* plot::line#1 -byte* plot::line#2 -byte* plot::line#3 -byte* plot::line#4 -byte* plot::line#5 -byte plot::x -byte plot::x#0 -byte plot::x#1 -byte plot::x#2 -byte plot::x#3 -byte plot::y -byte plot::y#0 -byte plot::y#1 -byte plot::y#2 -byte plot::y#3 -byte plot::y#4 -byte plot::y#5 +char *plot::$0 +bool plot::$2 +char *plot::$3 +bool plot::$4 +char plot::i +char plot::i#0 +char plot::i#1 +char plot::i#2 +char plot::i#3 +char plot::i#4 +char plot::i#5 +char *plot::line +char *plot::line#0 +char *plot::line#1 +char *plot::line#2 +char *plot::line#3 +char *plot::line#4 +char *plot::line#5 +char plot::x +char plot::x#0 +char plot::x#1 +char plot::x#2 +char plot::x#3 +char plot::y +char plot::y#0 +char plot::y#1 +char plot::y#2 +char plot::y#3 +char plot::y#4 +char plot::y#5 void prepare() -bool~ prepare::$0 -byte prepare::i -byte prepare::i#0 -byte prepare::i#1 -byte prepare::i#2 +bool prepare::$0 +char prepare::i +char prepare::i#0 +char prepare::i#1 +char prepare::i#2 Adding number conversion cast (unumber) $fe in main::$1 = *RASTER != $fe Adding number conversion cast (unumber) $ff in main::$2 = *RASTER != $ff @@ -257,8 +257,8 @@ Adding number conversion cast (unumber) $c in plot::line#0 = plot::$0 + $c Adding number conversion cast (unumber) $10 in plot::$2 = plot::x#2 < $10 Adding number conversion cast (unumber) $28 in plot::$3 = plot::line#3 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $fe Simplifying constant integer cast $ff Simplifying constant integer cast $10 @@ -266,14 +266,14 @@ Simplifying constant integer cast $c Simplifying constant integer cast $10 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $fe -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $fe +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in flip::$0 = flip::dstIdx#3 + $10 +Inferred type updated to char in flip::$0 = flip::dstIdx#3 + $10 Alias main::c#2 = main::c#3 Alias flip::dstIdx#1 = flip::$0 flip::dstIdx#4 Alias flip::r#2 = flip::r#3 @@ -299,7 +299,7 @@ Simple Condition flip::$3 [43] if(flip::i#1!=rangelast(0,$ff)) goto flip::@5 Simple Condition plot::$2 [53] if(plot::x#2<$10) goto plot::@3 Simple Condition plot::$4 [60] if(plot::y#1!=rangelast($10,1)) goto plot::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [45] plot::$0 = SCREEN + (byte)5*$28 +Constant right-side identified [45] plot::$0 = SCREEN + (char)5*$28 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::c#0 = $19 Constant prepare::i#0 = 0 @@ -308,7 +308,7 @@ Constant flip::dstIdx#0 = $f Constant flip::r#0 = $10 Constant flip::c#0 = $10 Constant flip::i#0 = 0 -Constant plot::$0 = SCREEN+(byte)5*$28 +Constant plot::$0 = SCREEN+(char)5*$28 Constant plot::i#0 = 0 Constant plot::y#0 = $10 Constant plot::x#0 = 0 @@ -350,12 +350,12 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [28] plot::line#0 = plot::$0 + $c Successful SSA optimization Pass2ConstantRValueConsolidation @@ -372,8 +372,8 @@ Inlining constant with var siblings plot::i#0 Inlining constant with var siblings plot::y#0 Inlining constant with var siblings plot::x#0 Inlining constant with var siblings plot::line#0 -Constant inlined plot::line#0 = SCREEN+(byte)5*$28+$c -Constant inlined plot::$0 = SCREEN+(byte)5*$28 +Constant inlined plot::line#0 = SCREEN+(char)5*$28+$c +Constant inlined plot::$0 = SCREEN+(char)5*$28 Constant inlined main::c#0 = $19 Constant inlined flip::i#0 = 0 Constant inlined flip::srcIdx#0 = 0 @@ -385,12 +385,12 @@ Constant inlined flip::c#0 = $10 Constant inlined flip::dstIdx#0 = $f Constant inlined flip::r#0 = $10 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 5*$28 Successful SSA optimization PassNCastSimplification @@ -463,7 +463,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call prepare + [1] call prepare to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 main::@5 [2] main::c#4 = phi( main/$19, main::@1/main::c#4, main::@3/main::c#1, main::@5/$19 ) @@ -478,11 +478,11 @@ main::@3: scope:[main] from main::@2 to:main::@4 main::@4: scope:[main] from main::@3 [7] phi() - [8] call flip + [8] call flip to:main::@5 main::@5: scope:[main] from main::@4 [9] phi() - [10] call plot + [10] call plot to:main::@1 void prepare() @@ -564,46 +564,46 @@ plot::@3: scope:[plot] from plot::@2 VARIABLE REGISTER WEIGHTS void flip() -byte flip::c -byte flip::c#1 150001.5 -byte flip::c#2 50000.5 -byte flip::dstIdx -byte flip::dstIdx#1 70001.0 -byte flip::dstIdx#2 6667.333333333333 -byte flip::dstIdx#3 103334.66666666666 -byte flip::dstIdx#5 20002.0 -byte flip::i -byte flip::i#1 15001.5 -byte flip::i#2 20002.0 -byte flip::r -byte flip::r#1 15001.5 -byte flip::r#4 2500.25 -byte flip::srcIdx -byte flip::srcIdx#1 30000.428571428572 -byte flip::srcIdx#2 155002.0 -byte flip::srcIdx#3 20002.0 +char flip::c +char flip::c#1 // 150001.5 +char flip::c#2 // 50000.5 +char flip::dstIdx +char flip::dstIdx#1 // 70001.0 +char flip::dstIdx#2 // 6667.333333333333 +char flip::dstIdx#3 // 103334.66666666666 +char flip::dstIdx#5 // 20002.0 +char flip::i +char flip::i#1 // 15001.5 +char flip::i#2 // 20002.0 +char flip::r +char flip::r#1 // 15001.5 +char flip::r#4 // 2500.25 +char flip::srcIdx +char flip::srcIdx#1 // 30000.428571428572 +char flip::srcIdx#2 // 155002.0 +char flip::srcIdx#3 // 20002.0 void main() -byte main::c -byte main::c#1 151.5 -byte main::c#4 734.6666666666666 +char main::c +char main::c#1 // 151.5 +char main::c#4 // 734.6666666666666 void plot() -byte plot::i -byte plot::i#1 100001.0 -byte plot::i#2 53334.16666666666 -byte plot::i#4 20002.0 -byte* plot::line -byte* plot::line#1 6667.333333333333 -byte* plot::line#5 20000.5 -byte plot::x -byte plot::x#1 200002.0 -byte plot::x#2 100001.0 -byte plot::y -byte plot::y#1 15001.5 -byte plot::y#4 2857.4285714285716 +char plot::i +char plot::i#1 // 100001.0 +char plot::i#2 // 53334.16666666666 +char plot::i#4 // 20002.0 +char *plot::line +char *plot::line#1 // 6667.333333333333 +char *plot::line#5 // 20000.5 +char plot::x +char plot::x#1 // 200002.0 +char plot::x#2 // 100001.0 +char plot::y +char plot::y#1 // 15001.5 +char plot::y#4 // 2857.4285714285716 void prepare() -byte prepare::i -byte prepare::i#1 151.5 -byte prepare::i#2 202.0 +char prepare::i +char prepare::i#1 // 151.5 +char prepare::i#2 // 202.0 Initial phi equivalence classes [ main::c#4 main::c#1 ] @@ -717,7 +717,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call prepare + // [1] call prepare // [11] phi from main to prepare [phi:main->prepare] prepare_from_main: jsr prepare @@ -758,7 +758,7 @@ main: { jmp __b4 // main::@4 __b4: - // [8] call flip + // [8] call flip // [17] phi from main::@4 to flip [phi:main::@4->flip] flip_from___b4: jsr flip @@ -767,7 +767,7 @@ main: { jmp __b5 // main::@5 __b5: - // [10] call plot + // [10] call plot // [33] phi from main::@5 to plot [phi:main::@5->plot] plot_from___b5: jsr plot @@ -1032,51 +1032,51 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* RASTER = (byte*) 53266 -constant byte* SCREEN = (byte*) 1024 -constant byte* buffer1[$10*$10] = { fill( $10*$10, 0) } -constant byte* buffer2[$10*$10] = { fill( $10*$10, 0) } +__constant char *RASTER = (char *) 53266 +__constant char *SCREEN = (char *) 1024 +__constant char buffer1[$10*$10] = { fill( $10*$10, 0) } +__constant char buffer2[$10*$10] = { fill( $10*$10, 0) } void flip() -byte flip::c -byte flip::c#1 c zp[1]:2 150001.5 -byte flip::c#2 c zp[1]:2 50000.5 -byte flip::dstIdx -byte flip::dstIdx#1 reg byte x 70001.0 -byte flip::dstIdx#2 reg byte x 6667.333333333333 -byte flip::dstIdx#3 reg byte x 103334.66666666666 -byte flip::dstIdx#5 reg byte x 20002.0 -byte flip::i -byte flip::i#1 reg byte x 15001.5 -byte flip::i#2 reg byte x 20002.0 -byte flip::r -byte flip::r#1 r zp[1]:5 15001.5 -byte flip::r#4 r zp[1]:5 2500.25 -byte flip::srcIdx -byte flip::srcIdx#1 reg byte y 30000.428571428572 -byte flip::srcIdx#2 reg byte y 155002.0 -byte flip::srcIdx#3 reg byte y 20002.0 +char flip::c +char flip::c#1 // c zp[1]:2 150001.5 +char flip::c#2 // c zp[1]:2 50000.5 +char flip::dstIdx +char flip::dstIdx#1 // reg byte x 70001.0 +char flip::dstIdx#2 // reg byte x 6667.333333333333 +char flip::dstIdx#3 // reg byte x 103334.66666666666 +char flip::dstIdx#5 // reg byte x 20002.0 +char flip::i +char flip::i#1 // reg byte x 15001.5 +char flip::i#2 // reg byte x 20002.0 +char flip::r +char flip::r#1 // r zp[1]:5 15001.5 +char flip::r#4 // r zp[1]:5 2500.25 +char flip::srcIdx +char flip::srcIdx#1 // reg byte y 30000.428571428572 +char flip::srcIdx#2 // reg byte y 155002.0 +char flip::srcIdx#3 // reg byte y 20002.0 void main() -byte main::c -byte main::c#1 reg byte x 151.5 -byte main::c#4 reg byte x 734.6666666666666 +char main::c +char main::c#1 // reg byte x 151.5 +char main::c#4 // reg byte x 734.6666666666666 void plot() -byte plot::i -byte plot::i#1 reg byte x 100001.0 -byte plot::i#2 reg byte x 53334.16666666666 -byte plot::i#4 reg byte x 20002.0 -byte* plot::line -byte* plot::line#1 line zp[2]:3 6667.333333333333 -byte* plot::line#5 line zp[2]:3 20000.5 -byte plot::x -byte plot::x#1 reg byte y 200002.0 -byte plot::x#2 reg byte y 100001.0 -byte plot::y -byte plot::y#1 y zp[1]:5 15001.5 -byte plot::y#4 y zp[1]:5 2857.4285714285716 +char plot::i +char plot::i#1 // reg byte x 100001.0 +char plot::i#2 // reg byte x 53334.16666666666 +char plot::i#4 // reg byte x 20002.0 +char *plot::line +char *plot::line#1 // line zp[2]:3 6667.333333333333 +char *plot::line#5 // line zp[2]:3 20000.5 +char plot::x +char plot::x#1 // reg byte y 200002.0 +char plot::x#2 // reg byte y 100001.0 +char plot::y +char plot::y#1 // y zp[1]:5 15001.5 +char plot::y#4 // y zp[1]:5 2857.4285714285716 void prepare() -byte prepare::i -byte prepare::i#1 reg byte x 151.5 -byte prepare::i#2 reg byte x 202.0 +char prepare::i +char prepare::i#1 // reg byte x 151.5 +char prepare::i#2 // reg byte x 202.0 reg byte x [ main::c#4 main::c#1 ] reg byte x [ prepare::i#2 prepare::i#1 ] @@ -1110,7 +1110,7 @@ Score: 83294 // main main: { // prepare() - // [1] call prepare + // [1] call prepare // [11] phi from main to prepare [phi:main->prepare] jsr prepare // [2] phi from main main::@5 to main::@1 [phi:main/main::@5->main::@1] @@ -1143,13 +1143,13 @@ main: { // [7] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // flip() - // [8] call flip + // [8] call flip // [17] phi from main::@4 to flip [phi:main::@4->flip] jsr flip // [9] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // plot() - // [10] call plot + // [10] call plot // [33] phi from main::@5 to plot [phi:main::@5->plot] jsr plot jmp __b3 diff --git a/src/test/ref/flipper-rex2.sym b/src/test/ref/flipper-rex2.sym index 110582ec1..9ae6afb57 100644 --- a/src/test/ref/flipper-rex2.sym +++ b/src/test/ref/flipper-rex2.sym @@ -1,48 +1,48 @@ -constant byte* RASTER = (byte*) 53266 -constant byte* SCREEN = (byte*) 1024 -constant byte* buffer1[$10*$10] = { fill( $10*$10, 0) } -constant byte* buffer2[$10*$10] = { fill( $10*$10, 0) } +__constant char *RASTER = (char *) 53266 +__constant char *SCREEN = (char *) 1024 +__constant char buffer1[$10*$10] = { fill( $10*$10, 0) } +__constant char buffer2[$10*$10] = { fill( $10*$10, 0) } void flip() -byte flip::c -byte flip::c#1 c zp[1]:2 150001.5 -byte flip::c#2 c zp[1]:2 50000.5 -byte flip::dstIdx -byte flip::dstIdx#1 reg byte x 70001.0 -byte flip::dstIdx#2 reg byte x 6667.333333333333 -byte flip::dstIdx#3 reg byte x 103334.66666666666 -byte flip::dstIdx#5 reg byte x 20002.0 -byte flip::i -byte flip::i#1 reg byte x 15001.5 -byte flip::i#2 reg byte x 20002.0 -byte flip::r -byte flip::r#1 r zp[1]:5 15001.5 -byte flip::r#4 r zp[1]:5 2500.25 -byte flip::srcIdx -byte flip::srcIdx#1 reg byte y 30000.428571428572 -byte flip::srcIdx#2 reg byte y 155002.0 -byte flip::srcIdx#3 reg byte y 20002.0 +char flip::c +char flip::c#1 // c zp[1]:2 150001.5 +char flip::c#2 // c zp[1]:2 50000.5 +char flip::dstIdx +char flip::dstIdx#1 // reg byte x 70001.0 +char flip::dstIdx#2 // reg byte x 6667.333333333333 +char flip::dstIdx#3 // reg byte x 103334.66666666666 +char flip::dstIdx#5 // reg byte x 20002.0 +char flip::i +char flip::i#1 // reg byte x 15001.5 +char flip::i#2 // reg byte x 20002.0 +char flip::r +char flip::r#1 // r zp[1]:5 15001.5 +char flip::r#4 // r zp[1]:5 2500.25 +char flip::srcIdx +char flip::srcIdx#1 // reg byte y 30000.428571428572 +char flip::srcIdx#2 // reg byte y 155002.0 +char flip::srcIdx#3 // reg byte y 20002.0 void main() -byte main::c -byte main::c#1 reg byte x 151.5 -byte main::c#4 reg byte x 734.6666666666666 +char main::c +char main::c#1 // reg byte x 151.5 +char main::c#4 // reg byte x 734.6666666666666 void plot() -byte plot::i -byte plot::i#1 reg byte x 100001.0 -byte plot::i#2 reg byte x 53334.16666666666 -byte plot::i#4 reg byte x 20002.0 -byte* plot::line -byte* plot::line#1 line zp[2]:3 6667.333333333333 -byte* plot::line#5 line zp[2]:3 20000.5 -byte plot::x -byte plot::x#1 reg byte y 200002.0 -byte plot::x#2 reg byte y 100001.0 -byte plot::y -byte plot::y#1 y zp[1]:5 15001.5 -byte plot::y#4 y zp[1]:5 2857.4285714285716 +char plot::i +char plot::i#1 // reg byte x 100001.0 +char plot::i#2 // reg byte x 53334.16666666666 +char plot::i#4 // reg byte x 20002.0 +char *plot::line +char *plot::line#1 // line zp[2]:3 6667.333333333333 +char *plot::line#5 // line zp[2]:3 20000.5 +char plot::x +char plot::x#1 // reg byte y 200002.0 +char plot::x#2 // reg byte y 100001.0 +char plot::y +char plot::y#1 // y zp[1]:5 15001.5 +char plot::y#4 // y zp[1]:5 2857.4285714285716 void prepare() -byte prepare::i -byte prepare::i#1 reg byte x 151.5 -byte prepare::i#2 reg byte x 202.0 +char prepare::i +char prepare::i#1 // reg byte x 151.5 +char prepare::i#2 // reg byte x 202.0 reg byte x [ main::c#4 main::c#1 ] reg byte x [ prepare::i#2 prepare::i#1 ] diff --git a/src/test/ref/font-hex-show.asm b/src/test/ref/font-hex-show.asm index 2e35333d3..9bc857735 100644 --- a/src/test/ref/font-hex-show.asm +++ b/src/test/ref/font-hex-show.asm @@ -40,7 +40,7 @@ main: { rts } // Make charset from proto chars -// init_font_hex(byte* zp(5) charset) +// void init_font_hex(__zp(5) char *charset) init_font_hex: { .label __0 = $b .label idx = $a diff --git a/src/test/ref/font-hex-show.cfg b/src/test/ref/font-hex-show.cfg index 67c76c682..d690a0fc7 100644 --- a/src/test/ref/font-hex-show.cfg +++ b/src/test/ref/font-hex-show.cfg @@ -8,7 +8,7 @@ main::toD0181: scope:[main] from main to:main::@2 main::@2: scope:[main] from main::toD0181 [2] *D018 = main::toD0181_return#0 - [3] call init_font_hex + [3] call init_font_hex to:main::@1 main::@1: scope:[main] from main::@1 main::@2 [4] main::c#2 = phi( main::@1/main::c#1, main::@2/0 ) @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main::@2 [9] phi() to:init_font_hex::@1 diff --git a/src/test/ref/font-hex-show.log b/src/test/ref/font-hex-show.log index 89d28a3b2..6b796cea0 100644 --- a/src/test/ref/font-hex-show.log +++ b/src/test/ref/font-hex-show.log @@ -2,11 +2,11 @@ Resolved forward reference FONT_HEX_PROTO to FONT_HEX_PROTO Resolved forward reference FONT_HEX_PROTO to FONT_HEX_PROTO Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call main::$0 = call toD018(SCREEN, CHARSET) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main::@2 init_font_hex::charset#6 = phi( main::@2/init_font_hex::charset#1 ) init_font_hex::proto_hi#0 = FONT_HEX_PROTO @@ -85,11 +85,11 @@ main: scope:[main] from __start::@1 main::toD0181: scope:[main] from main main::toD0181_gfx#1 = phi( main/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -104,7 +104,7 @@ main::@2: scope:[main] from main::toD0181_@return main::$0 = main::toD0181_return#3 *D018 = main::$0 init_font_hex::charset#1 = CHARSET - call init_font_hex + call init_font_hex to:main::@3 main::@3: scope:[main] from main::@2 main::c#0 = 0 @@ -126,7 +126,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -135,93 +135,93 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* CHARSET = (byte*)$2000 -constant byte* const D018 = (byte*)$d018 -constant byte* FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } -constant byte* SCREEN = (byte*)$400 +__constant char *CHARSET = (char *)$2000 +__constant char * const D018 = (char *)$d018 +__constant char FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } +__constant char *SCREEN = (char *)$400 void __start() -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 -byte~ init_font_hex::$1 -byte~ init_font_hex::$2 -bool~ init_font_hex::$3 -bool~ init_font_hex::$4 -bool~ init_font_hex::$5 -byte init_font_hex::c -byte init_font_hex::c#0 -byte init_font_hex::c#1 -byte init_font_hex::c#2 -byte init_font_hex::c#3 -byte init_font_hex::c#4 -byte init_font_hex::c#5 -byte init_font_hex::c#6 -byte init_font_hex::c1 -byte init_font_hex::c1#0 -byte init_font_hex::c1#1 -byte init_font_hex::c1#2 -byte init_font_hex::c1#3 -byte init_font_hex::c1#4 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 -byte* init_font_hex::charset#1 -byte* init_font_hex::charset#2 -byte* init_font_hex::charset#3 -byte* init_font_hex::charset#4 -byte* init_font_hex::charset#5 -byte* init_font_hex::charset#6 -byte* init_font_hex::charset#7 -byte init_font_hex::i -byte init_font_hex::i#0 -byte init_font_hex::i#1 -byte init_font_hex::i#2 -byte init_font_hex::idx -byte init_font_hex::idx#0 -byte init_font_hex::idx#1 -byte init_font_hex::idx#2 -byte init_font_hex::idx#3 -byte init_font_hex::idx#4 -byte init_font_hex::idx#5 -byte init_font_hex::idx#6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#0 -byte* init_font_hex::proto_hi#1 -byte* init_font_hex::proto_hi#2 -byte* init_font_hex::proto_hi#3 -byte* init_font_hex::proto_hi#4 -byte* init_font_hex::proto_hi#5 -byte* init_font_hex::proto_hi#6 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#0 -byte* init_font_hex::proto_lo#1 -byte* init_font_hex::proto_lo#2 -byte* init_font_hex::proto_lo#3 -byte* init_font_hex::proto_lo#4 +void init_font_hex(char *charset) +char init_font_hex::$0 +char init_font_hex::$1 +char init_font_hex::$2 +bool init_font_hex::$3 +bool init_font_hex::$4 +bool init_font_hex::$5 +char init_font_hex::c +char init_font_hex::c#0 +char init_font_hex::c#1 +char init_font_hex::c#2 +char init_font_hex::c#3 +char init_font_hex::c#4 +char init_font_hex::c#5 +char init_font_hex::c#6 +char init_font_hex::c1 +char init_font_hex::c1#0 +char init_font_hex::c1#1 +char init_font_hex::c1#2 +char init_font_hex::c1#3 +char init_font_hex::c1#4 +char *init_font_hex::charset +char *init_font_hex::charset#0 +char *init_font_hex::charset#1 +char *init_font_hex::charset#2 +char *init_font_hex::charset#3 +char *init_font_hex::charset#4 +char *init_font_hex::charset#5 +char *init_font_hex::charset#6 +char *init_font_hex::charset#7 +char init_font_hex::i +char init_font_hex::i#0 +char init_font_hex::i#1 +char init_font_hex::i#2 +char init_font_hex::idx +char init_font_hex::idx#0 +char init_font_hex::idx#1 +char init_font_hex::idx#2 +char init_font_hex::idx#3 +char init_font_hex::idx#4 +char init_font_hex::idx#5 +char init_font_hex::idx#6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#0 +char *init_font_hex::proto_hi#1 +char *init_font_hex::proto_hi#2 +char *init_font_hex::proto_hi#3 +char *init_font_hex::proto_hi#4 +char *init_font_hex::proto_hi#5 +char *init_font_hex::proto_hi#6 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#0 +char *init_font_hex::proto_lo#1 +char *init_font_hex::proto_lo#2 +char *init_font_hex::proto_lo#3 +char *init_font_hex::proto_lo#4 void main() -byte~ main::$0 -bool~ main::$2 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 +char main::$0 +bool main::$2 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 Adding number conversion cast (unumber) 0 in init_font_hex::charset#2[init_font_hex::idx#0] = 0 Adding number conversion cast (unumber) 4 in init_font_hex::$0 = init_font_hex::proto_hi#2[init_font_hex::i#2] << 4 @@ -245,9 +245,9 @@ Inlining cast init_font_hex::charset#2[init_font_hex::idx#0] = (unumber)0 Inlining cast init_font_hex::charset#4[init_font_hex::idx#6] = (unumber)0 Inlining cast init_font_hex::charset#4[init_font_hex::idx#3] = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast 1 @@ -261,24 +261,24 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 4 Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Alias init_font_hex::charset#3 = init_font_hex::charset#4 Alias init_font_hex::idx#2 = init_font_hex::idx#6 Alias init_font_hex::proto_lo#2 = init_font_hex::proto_lo#3 @@ -316,9 +316,9 @@ Constant main::toD0181_gfx#0 = CHARSET Constant init_font_hex::charset#1 = CHARSET Constant main::c#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [40] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [40] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues Resolved ranged next value [17] init_font_hex::i#1 = ++ init_font_hex::i#2 to ++ Resolved ranged comparison value [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 to 5 @@ -349,18 +349,18 @@ Simplifying constant integer cast $10 Simplifying constant integer cast $10 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [3] init_font_hex::idx#1 = ++ init_font_hex::idx#0 Constant right-side identified [23] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [26] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [26] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant init_font_hex::idx#1 = ++init_font_hex::idx#0 Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [22] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [24] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -389,15 +389,15 @@ Inlining constant with var siblings init_font_hex::idx#1 Inlining constant with var siblings main::c#0 Constant inlined main::toD0181_screen#0 = SCREEN Constant inlined main::toD0181_gfx#0 = CHARSET -Constant inlined main::toD0181_$7 = (word)SCREEN +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN Constant inlined init_font_hex::proto_hi#0 = FONT_HEX_PROTO -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN&$3fff +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN&$3fff Constant inlined init_font_hex::i#0 = 0 -Constant inlined main::toD0181_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)CHARSET/4 -Constant inlined main::toD0181_$3 = byte1 (word)CHARSET +Constant inlined main::toD0181_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)CHARSET Constant inlined init_font_hex::charset#1 = CHARSET Constant inlined init_font_hex::idx#1 = ++0 Constant inlined main::c#0 = 0 @@ -453,7 +453,7 @@ main::toD0181: scope:[main] from main to:main::@2 main::@2: scope:[main] from main::toD0181 [2] *D018 = main::toD0181_return#0 - [3] call init_font_hex + [3] call init_font_hex to:main::@1 main::@1: scope:[main] from main::@1 main::@2 [4] main::c#2 = phi( main::@1/main::c#1, main::@2/0 ) @@ -465,7 +465,7 @@ main::@return: scope:[main] from main::@1 [8] return to:@return -void init_font_hex(byte* init_font_hex::charset) +void init_font_hex(char *charset) init_font_hex: scope:[init_font_hex] from main::@2 [9] phi() to:init_font_hex::@1 @@ -511,40 +511,40 @@ init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5 VARIABLE REGISTER WEIGHTS -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 10001.0 -byte~ init_font_hex::$1 20002.0 -byte~ init_font_hex::$2 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 151.5 -byte init_font_hex::c#6 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 1501.5 -byte init_font_hex::c1#4 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 350.5 -byte* init_font_hex::charset#2 1079.0714285714287 -byte* init_font_hex::charset#5 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 15001.5 -byte init_font_hex::i#2 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 5501.0 -byte init_font_hex::idx#3 2002.0 -byte init_font_hex::idx#5 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 67.33333333333333 -byte* init_font_hex::proto_hi#6 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 500.5 -byte* init_font_hex::proto_lo#4 923.3076923076923 +void init_font_hex(char *charset) +char init_font_hex::$0 // 10001.0 +char init_font_hex::$1 // 20002.0 +char init_font_hex::$2 // 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // 151.5 +char init_font_hex::c#6 // 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // 1501.5 +char init_font_hex::c1#4 // 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // 350.5 +char *init_font_hex::charset#2 // 1079.0714285714287 +char *init_font_hex::charset#5 // 202.0 +char init_font_hex::i +char init_font_hex::i#1 // 15001.5 +char init_font_hex::i#2 // 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // 5501.0 +char init_font_hex::idx#3 // 2002.0 +char init_font_hex::idx#5 // 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // 67.33333333333333 +char *init_font_hex::proto_hi#6 // 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // 500.5 +char *init_font_hex::proto_lo#4 // 923.3076923076923 void main() -byte main::c -byte main::c#1 16.5 -byte main::c#2 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen +char main::c +char main::c#1 // 16.5 +char main::c#2 // 22.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen Initial phi equivalence classes [ main::c#2 main::c#1 ] @@ -695,7 +695,7 @@ main: { // [2] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - // [3] call init_font_hex + // [3] call init_font_hex // [9] phi from main::@2 to init_font_hex [phi:main::@2->init_font_hex] init_font_hex_from___b2: jsr init_font_hex @@ -727,7 +727,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp(5) charset) +// void init_font_hex(__zp(5) char *charset) init_font_hex: { .label __0 = $b .label idx = $a @@ -933,45 +933,45 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* CHARSET = (byte*) 8192 -constant byte* const D018 = (byte*) 53272 -constant byte* FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } -constant byte* SCREEN = (byte*) 1024 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 zp[1]:11 10001.0 -byte~ init_font_hex::$1 reg byte a 20002.0 -byte~ init_font_hex::$2 reg byte a 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 c zp[1]:4 151.5 -byte init_font_hex::c#6 c zp[1]:4 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 c1 zp[1]:9 1501.5 -byte init_font_hex::c1#4 c1 zp[1]:9 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 charset zp[2]:5 350.5 -byte* init_font_hex::charset#2 charset zp[2]:5 1079.0714285714287 -byte* init_font_hex::charset#5 charset zp[2]:5 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 reg byte x 15001.5 -byte init_font_hex::i#2 reg byte x 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 idx zp[1]:10 5501.0 -byte init_font_hex::idx#3 reg byte y 2002.0 -byte init_font_hex::idx#5 idx zp[1]:10 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 proto_hi zp[2]:2 67.33333333333333 -byte* init_font_hex::proto_hi#6 proto_hi zp[2]:2 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 proto_lo zp[2]:7 500.5 -byte* init_font_hex::proto_lo#4 proto_lo zp[2]:7 923.3076923076923 +__constant char *CHARSET = (char *) 8192 +__constant char * const D018 = (char *) 53272 +__constant char FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } +__constant char *SCREEN = (char *) 1024 +void init_font_hex(char *charset) +char init_font_hex::$0 // zp[1]:11 10001.0 +char init_font_hex::$1 // reg byte a 20002.0 +char init_font_hex::$2 // reg byte a 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // c zp[1]:4 151.5 +char init_font_hex::c#6 // c zp[1]:4 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // c1 zp[1]:9 1501.5 +char init_font_hex::c1#4 // c1 zp[1]:9 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // charset zp[2]:5 350.5 +char *init_font_hex::charset#2 // charset zp[2]:5 1079.0714285714287 +char *init_font_hex::charset#5 // charset zp[2]:5 202.0 +char init_font_hex::i +char init_font_hex::i#1 // reg byte x 15001.5 +char init_font_hex::i#2 // reg byte x 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // idx zp[1]:10 5501.0 +char init_font_hex::idx#3 // reg byte y 2002.0 +char init_font_hex::idx#5 // idx zp[1]:10 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // proto_hi zp[2]:2 67.33333333333333 +char *init_font_hex::proto_hi#6 // proto_hi zp[2]:2 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // proto_lo zp[2]:7 500.5 +char *init_font_hex::proto_lo#4 // proto_lo zp[2]:7 923.3076923076923 void main() -byte main::c -byte main::c#1 reg byte x 16.5 -byte main::c#2 reg byte x 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen +char main::c +char main::c#1 // reg byte x 16.5 +char main::c#2 // reg byte x 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen reg byte x [ main::c#2 main::c#1 ] zp[2]:2 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] @@ -1025,7 +1025,7 @@ main: { lda #toD0181_return sta D018 // init_font_hex(CHARSET) - // [3] call init_font_hex + // [3] call init_font_hex // [9] phi from main::@2 to init_font_hex [phi:main::@2->init_font_hex] jsr init_font_hex // [4] phi from main::@2 to main::@1 [phi:main::@2->main::@1] @@ -1053,7 +1053,7 @@ main: { } // init_font_hex // Make charset from proto chars -// init_font_hex(byte* zp(5) charset) +// void init_font_hex(__zp(5) char *charset) init_font_hex: { .label __0 = $b .label idx = $a diff --git a/src/test/ref/font-hex-show.sym b/src/test/ref/font-hex-show.sym index 2af8a1654..d15202862 100644 --- a/src/test/ref/font-hex-show.sym +++ b/src/test/ref/font-hex-show.sym @@ -1,42 +1,42 @@ -constant byte* CHARSET = (byte*) 8192 -constant byte* const D018 = (byte*) 53272 -constant byte* FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } -constant byte* SCREEN = (byte*) 1024 -void init_font_hex(byte* init_font_hex::charset) -byte~ init_font_hex::$0 zp[1]:11 10001.0 -byte~ init_font_hex::$1 reg byte a 20002.0 -byte~ init_font_hex::$2 reg byte a 20002.0 -byte init_font_hex::c -byte init_font_hex::c#1 c zp[1]:4 151.5 -byte init_font_hex::c#6 c zp[1]:4 10.631578947368421 -byte init_font_hex::c1 -byte init_font_hex::c1#1 c1 zp[1]:9 1501.5 -byte init_font_hex::c1#4 c1 zp[1]:9 133.46666666666667 -byte* init_font_hex::charset -byte* init_font_hex::charset#0 charset zp[2]:5 350.5 -byte* init_font_hex::charset#2 charset zp[2]:5 1079.0714285714287 -byte* init_font_hex::charset#5 charset zp[2]:5 202.0 -byte init_font_hex::i -byte init_font_hex::i#1 reg byte x 15001.5 -byte init_font_hex::i#2 reg byte x 6667.333333333333 -byte init_font_hex::idx -byte init_font_hex::idx#2 idx zp[1]:10 5501.0 -byte init_font_hex::idx#3 reg byte y 2002.0 -byte init_font_hex::idx#5 idx zp[1]:10 6000.6 -byte* init_font_hex::proto_hi -byte* init_font_hex::proto_hi#1 proto_hi zp[2]:2 67.33333333333333 -byte* init_font_hex::proto_hi#6 proto_hi zp[2]:2 566.8333333333333 -byte* init_font_hex::proto_lo -byte* init_font_hex::proto_lo#1 proto_lo zp[2]:7 500.5 -byte* init_font_hex::proto_lo#4 proto_lo zp[2]:7 923.3076923076923 +__constant char *CHARSET = (char *) 8192 +__constant char * const D018 = (char *) 53272 +__constant char FONT_HEX_PROTO[] = { 2, 5, 5, 5, 2, 6, 2, 2, 2, 7, 6, 1, 2, 4, 7, 6, 1, 2, 1, 6, 5, 5, 7, 1, 1, 7, 4, 6, 1, 6, 3, 4, 6, 5, 2, 7, 1, 1, 1, 1, 2, 5, 2, 5, 2, 2, 5, 3, 1, 1, 2, 5, 7, 5, 5, 6, 5, 6, 5, 6, 2, 5, 4, 5, 2, 6, 5, 5, 5, 6, 7, 4, 6, 4, 7, 7, 4, 6, 4, 4 } +__constant char *SCREEN = (char *) 1024 +void init_font_hex(char *charset) +char init_font_hex::$0 // zp[1]:11 10001.0 +char init_font_hex::$1 // reg byte a 20002.0 +char init_font_hex::$2 // reg byte a 20002.0 +char init_font_hex::c +char init_font_hex::c#1 // c zp[1]:4 151.5 +char init_font_hex::c#6 // c zp[1]:4 10.631578947368421 +char init_font_hex::c1 +char init_font_hex::c1#1 // c1 zp[1]:9 1501.5 +char init_font_hex::c1#4 // c1 zp[1]:9 133.46666666666667 +char *init_font_hex::charset +char *init_font_hex::charset#0 // charset zp[2]:5 350.5 +char *init_font_hex::charset#2 // charset zp[2]:5 1079.0714285714287 +char *init_font_hex::charset#5 // charset zp[2]:5 202.0 +char init_font_hex::i +char init_font_hex::i#1 // reg byte x 15001.5 +char init_font_hex::i#2 // reg byte x 6667.333333333333 +char init_font_hex::idx +char init_font_hex::idx#2 // idx zp[1]:10 5501.0 +char init_font_hex::idx#3 // reg byte y 2002.0 +char init_font_hex::idx#5 // idx zp[1]:10 6000.6 +char *init_font_hex::proto_hi +char *init_font_hex::proto_hi#1 // proto_hi zp[2]:2 67.33333333333333 +char *init_font_hex::proto_hi#6 // proto_hi zp[2]:2 566.8333333333333 +char *init_font_hex::proto_lo +char *init_font_hex::proto_lo#1 // proto_lo zp[2]:7 500.5 +char *init_font_hex::proto_lo#4 // proto_lo zp[2]:7 923.3076923076923 void main() -byte main::c -byte main::c#1 reg byte x 16.5 -byte main::c#2 reg byte x 22.0 -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen +char main::c +char main::c#1 // reg byte x 16.5 +char main::c#2 // reg byte x 22.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen reg byte x [ main::c#2 main::c#1 ] zp[2]:2 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 ] diff --git a/src/test/ref/for-empty-increment.log b/src/test/ref/for-empty-increment.log index 1a2fc4ed1..b312c0a71 100644 --- a/src/test/ref/for-empty-increment.log +++ b/src/test/ref/for-empty-increment.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,20 +32,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -90,9 +90,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -166,10 +166,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-empty-increment.sym b/src/test/ref/for-empty-increment.sym index 8e59d7e02..f47ffb777 100644 --- a/src/test/ref/for-empty-increment.sym +++ b/src/test/ref/for-empty-increment.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-empty-init.log b/src/test/ref/for-empty-init.log index ddef88028..e0ebb9379 100644 --- a/src/test/ref/for-empty-init.log +++ b/src/test/ref/for-empty-init.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,20 +32,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -90,9 +90,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -166,10 +166,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-empty-init.sym b/src/test/ref/for-empty-init.sym index 8e59d7e02..f47ffb777 100644 --- a/src/test/ref/for-empty-init.sym +++ b/src/test/ref/for-empty-init.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-ever-2.log b/src/test/ref/for-ever-2.log index a4e9d0b01..070769b05 100644 --- a/src/test/ref/for-ever-2.log +++ b/src/test/ref/for-ever-2.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,15 +25,15 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -70,9 +70,9 @@ main::@1: scope:[main] from main main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -132,11 +132,11 @@ Removing instruction __b1_from___b1: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-ever-2.sym b/src/test/ref/for-ever-2.sym index 7512bc69f..b58cfba7a 100644 --- a/src/test/ref/for-ever-2.sym +++ b/src/test/ref/for-ever-2.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/for-ever.log b/src/test/ref/for-ever.log index b58fcb5fd..c6568b93a 100644 --- a/src/test/ref/for-ever.log +++ b/src/test/ref/for-ever.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,11 +22,11 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -98,7 +98,7 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/for-ever.sym b/src/test/ref/for-ever.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/for-ever.sym +++ b/src/test/ref/for-ever.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/for-two-vars.log b/src/test/ref/for-two-vars.log index e8f81513f..08dac9698 100644 --- a/src/test/ref/for-two-vars.log +++ b/src/test/ref/for-two-vars.log @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,28 +36,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc#3 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc#3 Adding number conversion cast (unumber) $27 in main::sc#0 = main::SCREEN+$27 Adding number conversion cast (unumber) $28 in main::$0 = main::i#2 < $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $27 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias main::sc#2 = main::sc#3 @@ -109,12 +109,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 14.666666666666666 -byte* main::sc -byte* main::sc#1 22.0 -byte* main::sc#2 8.25 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 14.666666666666666 +char *main::sc +char *main::sc#1 // 22.0 +char *main::sc#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -214,13 +214,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 14.666666666666666 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 14.666666666666666 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 8.25 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::sc#2 main::sc#1 ] diff --git a/src/test/ref/for-two-vars.sym b/src/test/ref/for-two-vars.sym index f9064ddde..b69fcb527 100644 --- a/src/test/ref/for-two-vars.sym +++ b/src/test/ref/for-two-vars.sym @@ -1,11 +1,11 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 14.666666666666666 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 14.666666666666666 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 8.25 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::sc#2 main::sc#1 ] diff --git a/src/test/ref/forced-zeropage.cfg b/src/test/ref/forced-zeropage.cfg index 8c7e72d4f..fc0ef4cfc 100644 --- a/src/test/ref/forced-zeropage.cfg +++ b/src/test/ref/forced-zeropage.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] main::u#1 = *((word*) 160) - $22b - [1] *((word*) 1024) = main::u#1 - [2] main::$1 = *((byte**) 209) + $d400 - [3] *((byte**) 243) = main::$1 + [0] main::u#1 = *((unsigned int *) 160) - $22b + [1] *((unsigned int *) 1024) = main::u#1 + [2] main::$1 = *((char **) 209) + $d400 + [3] *((char **) 243) = main::$1 to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/forced-zeropage.log b/src/test/ref/forced-zeropage.log index 25e40015f..e9b57bb72 100644 --- a/src/test/ref/forced-zeropage.log +++ b/src/test/ref/forced-zeropage.log @@ -4,11 +4,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::u#0 = $22b - main::$0 = *((word*)$a0) - main::u#0 + main::$0 = *((unsigned int *)$a0) - main::u#0 main::u#1 = main::$0 - *((word*)$400) = main::u#1 - main::$1 = *((byte**)$d1) + $d400 - *((byte**)$f3) = main::$1 + *((unsigned int *)$400) = main::u#1 + main::$1 = *((char **)$d1) + $d400 + *((char **)$f3) = main::$1 to:main::@return main::@return: scope:[main] from main return @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,21 +27,21 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -word~ main::$0 -byte*~ main::$1 -word main::u -word main::u#0 -word main::u#1 +unsigned int main::$0 +char *main::$1 +unsigned int main::u +unsigned int main::u#0 +unsigned int main::u#1 -Adding number conversion cast (unumber) $d400 in main::$1 = *((byte**)$d1) + $d400 +Adding number conversion cast (unumber) $d400 in main::$1 = *((char **)$d1) + $d400 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 160 -Simplifying constant pointer cast (word*) 1024 -Simplifying constant pointer cast (byte**) 209 +Simplifying constant pointer cast (unsigned int *) 160 +Simplifying constant pointer cast (unsigned int *) 1024 +Simplifying constant pointer cast (char **) 209 Simplifying constant integer cast $d400 -Simplifying constant pointer cast (byte**) 243 +Simplifying constant pointer cast (char **) 243 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $d400 +Finalized unsigned number type (unsigned int) $d400 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::u#1 = main::$0 Successful SSA optimization Pass2AliasElimination @@ -64,10 +64,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::u#1 = *((word*) 160) - $22b - [1] *((word*) 1024) = main::u#1 - [2] main::$1 = *((byte**) 209) + $d400 - [3] *((byte**) 243) = main::$1 + [0] main::u#1 = *((unsigned int *) 160) - $22b + [1] *((unsigned int *) 1024) = main::u#1 + [2] main::$1 = *((char **) 209) + $d400 + [3] *((char **) 243) = main::$1 to:main::@return main::@return: scope:[main] from main [4] return @@ -76,9 +76,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$1 4.0 -word main::u -word main::u#1 4.0 +char *main::$1 // 4.0 +unsigned int main::u +unsigned int main::u#1 // 4.0 Initial phi equivalence classes Added variable main::u#1 to live range equivalence class [ main::u#1 ] @@ -89,10 +89,10 @@ Complete equivalence classes Allocated zp[2]:2 [ main::u#1 ] Allocated zp[2]:4 [ main::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::u#1 = *((word*) 160) - $22b [ main::u#1 ] ( [ main::u#1 ] { } ) always clobbers reg byte a -Statement [1] *((word*) 1024) = main::u#1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] main::$1 = *((byte**) 209) + $d400 [ main::$1 ] ( [ main::$1 ] { } ) always clobbers reg byte a -Statement [3] *((byte**) 243) = main::$1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] main::u#1 = *((unsigned int *) 160) - $22b [ main::u#1 ] ( [ main::u#1 ] { } ) always clobbers reg byte a +Statement [1] *((unsigned int *) 1024) = main::u#1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] main::$1 = *((char **) 209) + $d400 [ main::$1 ] ( [ main::$1 ] { } ) always clobbers reg byte a +Statement [3] *((char **) 243) = main::$1 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::u#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::$1 ] : zp[2]:4 , @@ -121,7 +121,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label __1 = 4 .label u = 2 - // [0] main::u#1 = *((word*) 160) - $22b -- vwuz1=_deref_pwuc1_minus_vwuc2 + // [0] main::u#1 = *((unsigned int *) 160) - $22b -- vwuz1=_deref_pwuc1_minus_vwuc2 sec lda $a0 sbc #<$22b @@ -129,12 +129,12 @@ main: { lda $a0+1 sbc #>$22b sta.z u+1 - // [1] *((word*) 1024) = main::u#1 -- _deref_pwuc1=vwuz1 + // [1] *((unsigned int *) 1024) = main::u#1 -- _deref_pwuc1=vwuz1 lda.z u sta $400 lda.z u+1 sta $400+1 - // [2] main::$1 = *((byte**) 209) + $d400 -- pbuz1=_deref_qbuc1_plus_vwuc2 + // [2] main::$1 = *((char **) 209) + $d400 -- pbuz1=_deref_qbuc1_plus_vwuc2 clc lda $d1 adc #<$d400 @@ -142,7 +142,7 @@ main: { lda $d1+1 adc #>$d400 sta.z __1+1 - // [3] *((byte**) 243) = main::$1 -- _deref_qbuc1=pbuz1 + // [3] *((char **) 243) = main::$1 -- _deref_qbuc1=pbuz1 lda.z __1 sta $f3 lda.z __1+1 @@ -163,9 +163,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte*~ main::$1 zp[2]:4 4.0 -word main::u -word main::u#1 u zp[2]:2 4.0 +char *main::$1 // zp[2]:4 4.0 +unsigned int main::u +unsigned int main::u#1 // u zp[2]:2 4.0 zp[2]:2 [ main::u#1 ] zp[2]:4 [ main::$1 ] @@ -192,7 +192,7 @@ main: { .label __1 = 4 .label u = 2 // u = *(word *)0xA0 - u - // [0] main::u#1 = *((word*) 160) - $22b -- vwuz1=_deref_pwuc1_minus_vwuc2 + // [0] main::u#1 = *((unsigned int *) 160) - $22b -- vwuz1=_deref_pwuc1_minus_vwuc2 sec lda $a0 sbc #<$22b @@ -201,13 +201,13 @@ main: { sbc #>$22b sta.z u+1 // *((word*)0x0400) = u - // [1] *((word*) 1024) = main::u#1 -- _deref_pwuc1=vwuz1 + // [1] *((unsigned int *) 1024) = main::u#1 -- _deref_pwuc1=vwuz1 lda.z u sta $400 lda.z u+1 sta $400+1 // *(byte **)0xD1 + 0xD400 - // [2] main::$1 = *((byte**) 209) + $d400 -- pbuz1=_deref_qbuc1_plus_vwuc2 + // [2] main::$1 = *((char **) 209) + $d400 -- pbuz1=_deref_qbuc1_plus_vwuc2 clc lda $d1 adc #<$d400 @@ -216,7 +216,7 @@ main: { adc #>$d400 sta.z __1+1 // *(byte **)0xF3 = *(byte **)0xD1 + 0xD400 - // [3] *((byte**) 243) = main::$1 -- _deref_qbuc1=pbuz1 + // [3] *((char **) 243) = main::$1 -- _deref_qbuc1=pbuz1 lda.z __1 sta $f3 lda.z __1+1 diff --git a/src/test/ref/forced-zeropage.sym b/src/test/ref/forced-zeropage.sym index aee44773d..df15d673b 100644 --- a/src/test/ref/forced-zeropage.sym +++ b/src/test/ref/forced-zeropage.sym @@ -1,7 +1,7 @@ void main() -byte*~ main::$1 zp[2]:4 4.0 -word main::u -word main::u#1 u zp[2]:2 4.0 +char *main::$1 // zp[2]:4 4.0 +unsigned int main::u +unsigned int main::u#1 // u zp[2]:2 4.0 zp[2]:2 [ main::u#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/forclassicmin.log b/src/test/ref/forclassicmin.log index 2a2feb455..ff7530315 100644 --- a/src/test/ref/forclassicmin.log +++ b/src/test/ref/forclassicmin.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -35,22 +35,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $64 in main::$0 = main::i#2 != $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -97,9 +97,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -172,11 +172,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/forclassicmin.sym b/src/test/ref/forclassicmin.sym index 040e89745..e729ab255 100644 --- a/src/test/ref/forclassicmin.sym +++ b/src/test/ref/forclassicmin.sym @@ -1,7 +1,7 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/forincrementassign.log b/src/test/ref/forincrementassign.log index df53ad7c6..25244f298 100644 --- a/src/test/ref/forincrementassign.log +++ b/src/test/ref/forincrementassign.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -27,7 +27,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -36,29 +36,29 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -number~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +number main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $28 in main::$0 = main::i#2 < $28 Adding number conversion cast (unumber) 2 in main::$1 = main::i#3 + 2 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#3 + (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#3 + 2 +Inferred type updated to char in main::$1 = main::i#3 + 2 Alias main::i#2 = main::i#3 Alias main::i#1 = main::$1 Successful SSA optimization Pass2AliasElimination @@ -105,9 +105,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -182,11 +182,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte a 22.0 -byte main::i#2 reg byte a 18.333333333333332 +char main::i +char main::i#1 // reg byte a 22.0 +char main::i#2 // reg byte a 18.333333333333332 reg byte a [ main::i#2 main::i#1 ] diff --git a/src/test/ref/forincrementassign.sym b/src/test/ref/forincrementassign.sym index 3c2dc7778..bc3823273 100644 --- a/src/test/ref/forincrementassign.sym +++ b/src/test/ref/forincrementassign.sym @@ -1,7 +1,7 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte a 22.0 -byte main::i#2 reg byte a 18.333333333333332 +char main::i +char main::i#1 // reg byte a 22.0 +char main::i#2 // reg byte a 18.333333333333332 reg byte a [ main::i#2 main::i#1 ] diff --git a/src/test/ref/forrangedwords.log b/src/test/ref/forrangedwords.log index e74f1ab46..b59e44c30 100644 --- a/src/test/ref/forrangedwords.log +++ b/src/test/ref/forrangedwords.log @@ -34,7 +34,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,37 +45,37 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte~ main::$4 -bool~ main::$5 -constant byte* main::SCREEN = (byte*)$400 -signed word main::sw -signed word main::sw#0 -signed word main::sw#1 -signed word main::sw#2 -word main::w -word main::w#0 -word main::w#1 -word main::w#2 +char main::$0 +char main::$1 +bool main::$2 +char main::$3 +char main::$4 +bool main::$5 +__constant char *main::SCREEN = (char *)$400 +int main::sw +int main::sw#0 +int main::sw#1 +int main::sw#2 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +unsigned int main::w#2 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$1 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 Adding number conversion cast (unumber) 4 in main::SCREEN[4] = main::$4 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$2 [8] if(main::w#1!=rangelast(0,$ffff)) goto main::@1 Simple Condition main::$5 [17] if(main::sw#1!=rangelast(-$7fff,$7ffe)) goto main::@3 @@ -100,8 +100,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast $7fff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed word) $7fff +Finalized unsigned number type (char) 0 +Finalized signed number type (int) $7fff Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::w#0 Inlining constant with var siblings main::sw#0 @@ -159,16 +159,16 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$3 22.0 -byte~ main::$4 22.0 -signed word main::sw -signed word main::sw#1 16.5 -signed word main::sw#2 8.8 -word main::w -word main::w#1 16.5 -word main::w#2 8.8 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::$3 // 22.0 +char main::$4 // 22.0 +int main::sw +int main::sw#1 // 16.5 +int main::sw#2 // 8.8 +unsigned int main::w +unsigned int main::w#1 // 16.5 +unsigned int main::w#2 // 8.8 Initial phi equivalence classes [ main::w#2 main::w#1 ] @@ -322,17 +322,17 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -constant byte* main::SCREEN = (byte*) 1024 -signed word main::sw -signed word main::sw#1 sw zp[2]:4 16.5 -signed word main::sw#2 sw zp[2]:4 8.8 -word main::w -word main::w#1 w zp[2]:2 16.5 -word main::w#2 w zp[2]:2 8.8 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +int main::sw +int main::sw#1 // sw zp[2]:4 16.5 +int main::sw#2 // sw zp[2]:4 8.8 +unsigned int main::w +unsigned int main::w#1 // w zp[2]:2 16.5 +unsigned int main::w#2 // w zp[2]:2 8.8 zp[2]:2 [ main::w#2 main::w#1 ] zp[2]:4 [ main::sw#2 main::sw#1 ] diff --git a/src/test/ref/forrangedwords.sym b/src/test/ref/forrangedwords.sym index b0cd29c2d..463c91993 100644 --- a/src/test/ref/forrangedwords.sym +++ b/src/test/ref/forrangedwords.sym @@ -1,15 +1,15 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -constant byte* main::SCREEN = (byte*) 1024 -signed word main::sw -signed word main::sw#1 sw zp[2]:4 16.5 -signed word main::sw#2 sw zp[2]:4 8.8 -word main::w -word main::w#1 w zp[2]:2 16.5 -word main::w#2 w zp[2]:2 8.8 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +int main::sw +int main::sw#1 // sw zp[2]:4 16.5 +int main::sw#2 // sw zp[2]:4 8.8 +unsigned int main::w +unsigned int main::w#1 // w zp[2]:2 16.5 +unsigned int main::w#2 // w zp[2]:2 8.8 zp[2]:2 [ main::w#2 main::w#1 ] zp[2]:4 [ main::sw#2 main::sw#1 ] diff --git a/src/test/ref/forrangemin.log b/src/test/ref/forrangemin.log index bf6658dbe..729b97689 100644 --- a/src/test/ref/forrangemin.log +++ b/src/test/ref/forrangemin.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -33,7 +33,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -42,23 +42,23 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN1 = (byte*)$400 -constant byte* SCREEN2 = (byte*)$500 +__constant char *SCREEN1 = (char *)$400 +__constant char *SCREEN2 = (char *)$500 void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 +bool main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1280 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1280 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,$ff)) goto main::@1 Simple Condition main::$1 [11] if(main::j#1!=rangelast($64,0)) goto main::@3 @@ -83,8 +83,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -132,12 +132,12 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 -byte main::j -byte main::j#1 16.5 -byte main::j#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -241,15 +241,15 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN1 = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1280 +__constant char *SCREEN1 = (char *) 1024 +__constant char *SCREEN2 = (char *) 1280 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/forrangemin.sym b/src/test/ref/forrangemin.sym index f1f36df8e..7abc00cbf 100644 --- a/src/test/ref/forrangemin.sym +++ b/src/test/ref/forrangemin.sym @@ -1,12 +1,12 @@ -constant byte* SCREEN1 = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1280 +__constant char *SCREEN1 = (char *) 1024 +__constant char *SCREEN2 = (char *) 1280 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/forrangesymbolic.log b/src/test/ref/forrangesymbolic.log index cc09d8a53..b2dd0a68e 100644 --- a/src/test/ref/forrangesymbolic.log +++ b/src/test/ref/forrangesymbolic.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,42 +29,42 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::BITMAP = (byte*)$2000 -byte* main::b -byte* main::b#0 -byte* main::b#1 -byte* main::b#2 +bool main::$0 +__constant char * const main::BITMAP = (char *)$2000 +char *main::b +char *main::b#0 +char *main::b#1 +char *main::b#2 Adding number conversion cast (unumber) $1fff in main::b#0 = main::BITMAP+$1fff Adding number conversion cast (unumber) $5a in *main::b#2 = $5a Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::b#2 = (unumber)$5a Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast $1fff Simplifying constant integer cast $5a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $1fff -Finalized unsigned number type (byte) $5a +Finalized unsigned number type (unsigned int) $1fff +Finalized unsigned number type (char) $5a Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [5] if(main::b#1!=rangelast(main::BITMAP+$1fff,main::BITMAP)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::b#0 = main::BITMAP+$1fff Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [3] main::b#1 = -- main::b#2 to -- -Resolved ranged comparison value [5] if(main::b#1!=rangelast(main::BITMAP+$1fff,main::BITMAP)) goto main::@1 to (byte*)main::BITMAP-1 +Resolved ranged comparison value [5] if(main::b#1!=rangelast(main::BITMAP+$1fff,main::BITMAP)) goto main::@1 to (char *)main::BITMAP-1 Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Adding number conversion cast (unumber) 1 in [3] if(main::b#1!=(byte*)main::BITMAP-1) goto main::@1 +Adding number conversion cast (unumber) 1 in [3] if(main::b#1!=(char *)main::BITMAP-1) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::BITMAP-(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::b#0 Constant inlined main::b#0 = main::BITMAP+$1fff @@ -98,9 +98,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::b -byte* main::b#1 16.5 -byte* main::b#2 16.5 +char *main::b +char *main::b#1 // 16.5 +char *main::b#2 // 16.5 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -194,10 +194,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const main::BITMAP = (byte*) 8192 -byte* main::b -byte* main::b#1 b zp[2]:2 16.5 -byte* main::b#2 b zp[2]:2 16.5 +__constant char * const main::BITMAP = (char *) 8192 +char *main::b +char *main::b#1 // b zp[2]:2 16.5 +char *main::b#2 // b zp[2]:2 16.5 zp[2]:2 [ main::b#2 main::b#1 ] diff --git a/src/test/ref/forrangesymbolic.sym b/src/test/ref/forrangesymbolic.sym index 969d76750..0a8b9b754 100644 --- a/src/test/ref/forrangesymbolic.sym +++ b/src/test/ref/forrangesymbolic.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::BITMAP = (byte*) 8192 -byte* main::b -byte* main::b#1 b zp[2]:2 16.5 -byte* main::b#2 b zp[2]:2 16.5 +__constant char * const main::BITMAP = (char *) 8192 +char *main::b +char *main::b#1 // b zp[2]:2 16.5 +char *main::b#2 // b zp[2]:2 16.5 zp[2]:2 [ main::b#2 main::b#1 ] diff --git a/src/test/ref/fragment-synth.asm b/src/test/ref/fragment-synth.asm index 847e90c28..44e498461 100644 --- a/src/test/ref/fragment-synth.asm +++ b/src/test/ref/fragment-synth.asm @@ -40,7 +40,7 @@ main: { // } rts } -// fct(byte register(X) x, byte* zp(2) z) +// __register(A) char fct(__register(X) char x, __zp(2) char *z) fct: { .label z = 2 // byte register(A) a = x & z[2] diff --git a/src/test/ref/fragment-synth.cfg b/src/test/ref/fragment-synth.cfg index 6391d0857..1e291ce17 100644 --- a/src/test/ref/fragment-synth.cfg +++ b/src/test/ref/fragment-synth.cfg @@ -1,15 +1,15 @@ void main() main: scope:[main] from - [0] *((byte*) 1104+2) = $f0 - [1] *((byte*) 1104+3) = $f - [2] call fct + [0] *((char *) 1104+2) = $f0 + [1] *((char *) 1104+3) = $f + [2] call fct [3] fct::return#0 = fct::return#2 to:main::@1 main::@1: scope:[main] from main [4] main::a1#0 = fct::return#0 [5] *main::screen = main::a1#0 - [6] call fct + [6] call fct [7] fct::return#1 = fct::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -20,9 +20,9 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -byte fct(byte fct::x , byte* fct::z) +char fct(char x , char *z) fct: scope:[fct] from main main::@1 - [11] fct::z#2 = phi( main/(byte*) 1104, main::@1/++(byte*) 1104 ) + [11] fct::z#2 = phi( main/(char *) 1104, main::@1/++(char *) 1104 ) [11] fct::x#2 = phi( main/$aa, main::@1/$55 ) [12] fct::return#2 = fct::x#2 & fct::z#2[2] to:fct::@return diff --git a/src/test/ref/fragment-synth.log b/src/test/ref/fragment-synth.log index be73908f9..408bca681 100644 --- a/src/test/ref/fragment-synth.log +++ b/src/test/ref/fragment-synth.log @@ -6,13 +6,13 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::z#0 = (byte*)$450 + main::z#0 = (char *)$450 main::z#0[2] = $f0 main::z#0[3] = $f main::x#0 = $aa fct::x#0 = main::x#0 fct::z#0 = main::z#0 - call fct + call fct fct::return#0 = fct::return#3 to:main::@1 main::@1: scope:[main] from main @@ -24,7 +24,7 @@ main::@1: scope:[main] from main main::x#1 = $55 fct::x#1 = main::x#1 fct::z#1 = main::z#1 - call fct + call fct fct::return#1 = fct::return#3 to:main::@2 main::@2: scope:[main] from main::@1 @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte fct(byte fct::x , byte* fct::z) +char fct(char x , char *z) fct: scope:[fct] from main main::@1 fct::z#2 = phi( main/fct::z#0, main::@1/fct::z#1 ) fct::x#2 = phi( main/fct::x#0, main::@1/fct::x#1 ) @@ -51,7 +51,7 @@ fct::@return: scope:[fct] from fct void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -61,38 +61,38 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -byte fct(byte fct::x , byte* fct::z) -byte fct::a !reg byte a -byte fct::a#0 !reg byte a -byte fct::return -byte fct::return#0 -byte fct::return#1 -byte fct::return#2 -byte fct::return#3 -byte fct::return#4 -byte fct::return#5 -byte fct::return#6 -byte fct::x -byte fct::x#0 -byte fct::x#1 -byte fct::x#2 -byte* fct::z -byte* fct::z#0 -byte* fct::z#1 -byte* fct::z#2 +char fct(char x , char *z) +char fct::a // !reg byte a +char fct::a#0 // !reg byte a +char fct::return +char fct::return#0 +char fct::return#1 +char fct::return#2 +char fct::return#3 +char fct::return#4 +char fct::return#5 +char fct::return#6 +char fct::x +char fct::x#0 +char fct::x#1 +char fct::x#2 +char *fct::z +char *fct::z#0 +char *fct::z#1 +char *fct::z#2 void main() -byte main::a1 -byte main::a1#0 -byte main::a2 -byte main::a2#0 -constant byte* main::screen = (byte*)$400 -byte main::x -byte main::x#0 -byte main::x#1 -byte* main::z -byte* main::z#0 -byte* main::z#1 -byte* main::z#2 +char main::a1 +char main::a1#0 +char main::a2 +char main::a2#0 +__constant char *main::screen = (char *)$400 +char main::x +char main::x#0 +char main::x#1 +char *main::z +char *main::z#0 +char *main::z#1 +char *main::z#2 Adding number conversion cast (unumber) $f0 in main::z#0[2] = $f0 Adding number conversion cast (unumber) 2 in main::z#0[2] = ((unumber)) $f0 @@ -107,8 +107,8 @@ Inlining cast main::z#0[(unumber)2] = (unumber)$f0 Inlining cast main::z#0[(unumber)3] = (unumber)$f Inlining cast main::x#1 = (unumber)$55 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1104 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1104 Simplifying constant integer cast $f0 Simplifying constant integer cast 2 Simplifying constant integer cast $f @@ -118,21 +118,21 @@ Simplifying constant integer cast $55 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias fct::return#0 = fct::return#4 Alias main::z#0 = main::z#2 Alias fct::return#1 = fct::return#5 Alias fct::return#2 = fct::a#0 fct::return#6 fct::return#3 Successful SSA optimization Pass2AliasElimination -Constant main::z#0 = (byte*) 1104 +Constant main::z#0 = (char *) 1104 Constant main::x#0 = $aa Constant main::x#1 = $55 Successful SSA optimization Pass2ConstantIdentification @@ -161,17 +161,17 @@ Inlining constant with var siblings fct::x#0 Inlining constant with var siblings fct::z#0 Inlining constant with var siblings fct::x#1 Inlining constant with var siblings fct::z#1 -Constant inlined fct::z#0 = (byte*) 1104 -Constant inlined fct::z#1 = ++(byte*) 1104 -Constant inlined main::z#0 = (byte*) 1104 -Constant inlined main::z#1 = ++(byte*) 1104 +Constant inlined fct::z#0 = (char *) 1104 +Constant inlined fct::z#1 = ++(char *) 1104 +Constant inlined main::z#0 = (char *) 1104 +Constant inlined main::z#1 = ++(char *) 1104 Constant inlined main::x#0 = $aa Constant inlined main::x#1 = $55 Constant inlined fct::x#0 = $aa Constant inlined fct::x#1 = $55 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*) 1104+2) -Consolidated array index constant in *((byte*) 1104+3) +Consolidated array index constant in *((char *) 1104+2) +Consolidated array index constant in *((char *) 1104+3) Consolidated array index constant in *(main::screen+1) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -184,15 +184,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*) 1104+2) = $f0 - [1] *((byte*) 1104+3) = $f - [2] call fct + [0] *((char *) 1104+2) = $f0 + [1] *((char *) 1104+3) = $f + [2] call fct [3] fct::return#0 = fct::return#2 to:main::@1 main::@1: scope:[main] from main [4] main::a1#0 = fct::return#0 [5] *main::screen = main::a1#0 - [6] call fct + [6] call fct [7] fct::return#1 = fct::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -203,9 +203,9 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -byte fct(byte fct::x , byte* fct::z) +char fct(char x , char *z) fct: scope:[fct] from main main::@1 - [11] fct::z#2 = phi( main/(byte*) 1104, main::@1/++(byte*) 1104 ) + [11] fct::z#2 = phi( main/(char *) 1104, main::@1/++(char *) 1104 ) [11] fct::x#2 = phi( main/$aa, main::@1/$55 ) [12] fct::return#2 = fct::x#2 & fct::z#2[2] to:fct::@return @@ -215,23 +215,23 @@ fct::@return: scope:[fct] from fct VARIABLE REGISTER WEIGHTS -byte fct(byte fct::x , byte* fct::z) -byte fct::a !reg byte a -byte fct::return -byte fct::return#0 4.0 -byte fct::return#1 4.0 -byte fct::return#2 3.75 -byte fct::x -byte fct::x#2 11.0 -byte* fct::z -byte* fct::z#2 11.0 +char fct(char x , char *z) +char fct::a // !reg byte a +char fct::return +char fct::return#0 // 4.0 +char fct::return#1 // 4.0 +char fct::return#2 // 3.75 +char fct::x +char fct::x#2 // 11.0 +char *fct::z +char *fct::z#2 // 11.0 void main() -byte main::a1 -byte main::a1#0 4.0 -byte main::a2 -byte main::a2#0 4.0 -byte main::x -byte* main::z +char main::a1 +char main::a1#0 // 4.0 +char main::a2 +char main::a2#0 // 4.0 +char main::x +char *main::z Initial phi equivalence classes [ fct::x#2 ] @@ -257,8 +257,8 @@ Allocated zp[1]:7 [ fct::return#1 ] Allocated zp[1]:8 [ main::a2#0 ] Allocated zp[1]:9 [ fct::return#2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*) 1104+2) = $f0 [ ] ( [ ] { { fct::return#0 = fct::return#2 } } ) always clobbers reg byte a -Statement [1] *((byte*) 1104+3) = $f [ ] ( [ ] { { fct::return#0 = fct::return#2 } } ) always clobbers reg byte a +Statement [0] *((char *) 1104+2) = $f0 [ ] ( [ ] { { fct::return#0 = fct::return#2 } } ) always clobbers reg byte a +Statement [1] *((char *) 1104+3) = $f [ ] ( [ ] { { fct::return#0 = fct::return#2 } } ) always clobbers reg byte a Statement [12] fct::return#2 = fct::x#2 & fct::z#2[2] [ fct::return#2 ] ( fct:2 [ fct::return#2 ] { { fct::return#0 = fct::return#2 } } fct:6 [ fct::return#2 ] { { fct::return#1 = fct::return#2 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ fct::x#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:3 [ fct::z#2 ] : zp[2]:3 , @@ -297,16 +297,16 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label screen = $400 - // [0] *((byte*) 1104+2) = $f0 -- _deref_pbuc1=vbuc2 + // [0] *((char *) 1104+2) = $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $450+2 - // [1] *((byte*) 1104+3) = $f -- _deref_pbuc1=vbuc2 + // [1] *((char *) 1104+3) = $f -- _deref_pbuc1=vbuc2 lda #$f sta $450+3 - // [2] call fct + // [2] call fct // [11] phi from main to fct [phi:main->fct] fct_from_main: - // [11] phi fct::z#2 = (byte*) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 + // [11] phi fct::z#2 = (char *) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 lda #<$450 sta.z fct.z lda #>$450 @@ -321,10 +321,10 @@ main: { // [4] main::a1#0 = fct::return#0 // [5] *main::screen = main::a1#0 -- _deref_pbuc1=vbuaa sta screen - // [6] call fct + // [6] call fct // [11] phi from main::@1 to fct [phi:main::@1->fct] fct_from___b1: - // [11] phi fct::z#2 = ++(byte*) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 + // [11] phi fct::z#2 = ++(char *) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 lda #<$450+1 sta.z fct.z lda #>$450+1 @@ -346,7 +346,7 @@ main: { rts } // fct -// fct(byte register(X) x, byte* zp(2) z) +// __register(A) char fct(__register(X) char x, __zp(2) char *z) fct: { .label z = 2 // [12] fct::return#2 = fct::x#2 & fct::z#2[2] -- vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 @@ -376,24 +376,24 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte fct(byte fct::x , byte* fct::z) -byte fct::a !reg byte a -byte fct::return -byte fct::return#0 reg byte a 4.0 -byte fct::return#1 reg byte a 4.0 -byte fct::return#2 reg byte a 3.75 -byte fct::x -byte fct::x#2 reg byte x 11.0 -byte* fct::z -byte* fct::z#2 z zp[2]:2 11.0 +char fct(char x , char *z) +char fct::a // !reg byte a +char fct::return +char fct::return#0 // reg byte a 4.0 +char fct::return#1 // reg byte a 4.0 +char fct::return#2 // reg byte a 3.75 +char fct::x +char fct::x#2 // reg byte x 11.0 +char *fct::z +char *fct::z#2 // z zp[2]:2 11.0 void main() -byte main::a1 -byte main::a1#0 reg byte a 4.0 -byte main::a2 -byte main::a2#0 reg byte a 4.0 -constant byte* main::screen = (byte*) 1024 -byte main::x -byte* main::z +char main::a1 +char main::a1#0 // reg byte a 4.0 +char main::a2 +char main::a2#0 // reg byte a 4.0 +__constant char *main::screen = (char *) 1024 +char main::x +char *main::z reg byte x [ fct::x#2 ] zp[2]:2 [ fct::z#2 ] @@ -425,17 +425,17 @@ Score: 77 main: { .label screen = $400 // z[2] = $f0 - // [0] *((byte*) 1104+2) = $f0 -- _deref_pbuc1=vbuc2 + // [0] *((char *) 1104+2) = $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $450+2 // z[3] = $0f - // [1] *((byte*) 1104+3) = $f -- _deref_pbuc1=vbuc2 + // [1] *((char *) 1104+3) = $f -- _deref_pbuc1=vbuc2 lda #$f sta $450+3 // byte a1 = fct(x, z) - // [2] call fct + // [2] call fct // [11] phi from main to fct [phi:main->fct] - // [11] phi fct::z#2 = (byte*) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 + // [11] phi fct::z#2 = (char *) 1104 [phi:main->fct#0] -- pbuz1=pbuc1 lda #<$450 sta.z fct.z lda #>$450 @@ -451,9 +451,9 @@ main: { // [5] *main::screen = main::a1#0 -- _deref_pbuc1=vbuaa sta screen // byte a2 = fct(x, z) - // [6] call fct + // [6] call fct // [11] phi from main::@1 to fct [phi:main::@1->fct] - // [11] phi fct::z#2 = ++(byte*) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 + // [11] phi fct::z#2 = ++(char *) 1104 [phi:main::@1->fct#0] -- pbuz1=pbuc1 lda #<$450+1 sta.z fct.z lda #>$450+1 @@ -474,7 +474,7 @@ main: { rts } // fct -// fct(byte register(X) x, byte* zp(2) z) +// __register(A) char fct(__register(X) char x, __zp(2) char *z) fct: { .label z = 2 // byte register(A) a = x & z[2] diff --git a/src/test/ref/fragment-synth.sym b/src/test/ref/fragment-synth.sym index aa3cf41ac..272e0b192 100644 --- a/src/test/ref/fragment-synth.sym +++ b/src/test/ref/fragment-synth.sym @@ -1,21 +1,21 @@ -byte fct(byte fct::x , byte* fct::z) -byte fct::a !reg byte a -byte fct::return -byte fct::return#0 reg byte a 4.0 -byte fct::return#1 reg byte a 4.0 -byte fct::return#2 reg byte a 3.75 -byte fct::x -byte fct::x#2 reg byte x 11.0 -byte* fct::z -byte* fct::z#2 z zp[2]:2 11.0 +char fct(char x , char *z) +char fct::a // !reg byte a +char fct::return +char fct::return#0 // reg byte a 4.0 +char fct::return#1 // reg byte a 4.0 +char fct::return#2 // reg byte a 3.75 +char fct::x +char fct::x#2 // reg byte x 11.0 +char *fct::z +char *fct::z#2 // z zp[2]:2 11.0 void main() -byte main::a1 -byte main::a1#0 reg byte a 4.0 -byte main::a2 -byte main::a2#0 reg byte a 4.0 -constant byte* main::screen = (byte*) 1024 -byte main::x -byte* main::z +char main::a1 +char main::a1#0 // reg byte a 4.0 +char main::a2 +char main::a2#0 // reg byte a 4.0 +__constant char *main::screen = (char *) 1024 +char main::x +char *main::z reg byte x [ fct::x#2 ] zp[2]:2 [ fct::z#2 ] diff --git a/src/test/ref/fragment-variations.asm b/src/test/ref/fragment-variations.asm index 53dea4718..467c70fb6 100644 --- a/src/test/ref/fragment-variations.asm +++ b/src/test/ref/fragment-variations.asm @@ -8,7 +8,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_DWORD = 4 + .const SIZEOF_UNSIGNED_LONG = 4 .segment Code main: { .label screen = $400 @@ -47,17 +47,17 @@ main: { // mul16u(w, w) // screen[1] = mul16u(w, w) lda.z __1 - sta screen+1*SIZEOF_DWORD + sta screen+1*SIZEOF_UNSIGNED_LONG lda.z __1+1 - sta screen+1*SIZEOF_DWORD+1 + sta screen+1*SIZEOF_UNSIGNED_LONG+1 lda.z __1+2 - sta screen+1*SIZEOF_DWORD+2 + sta screen+1*SIZEOF_UNSIGNED_LONG+2 lda.z __1+3 - sta screen+1*SIZEOF_DWORD+3 + sta screen+1*SIZEOF_UNSIGNED_LONG+3 // } rts } -// mul16u(word zp(2) b, word zp(4) a) +// __zp(6) unsigned long mul16u(__zp(2) unsigned int b, __zp(4) unsigned int a) mul16u: { .label return = 6 .label mb = 6 diff --git a/src/test/ref/fragment-variations.cfg b/src/test/ref/fragment-variations.cfg index 5074d24a5..36200abf2 100644 --- a/src/test/ref/fragment-variations.cfg +++ b/src/test/ref/fragment-variations.cfg @@ -2,28 +2,28 @@ void main() main: scope:[main] from [0] phi() - [1] call mul16u + [1] call mul16u [2] mul16u::return#0 = mul16u::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = mul16u::return#0 [4] *main::screen = main::$0 - [5] call mul16u + [5] call mul16u [6] mul16u::return#1 = mul16u::return#2 to:main::@2 main::@2: scope:[main] from main::@1 [7] main::$1 = mul16u::return#1 - [8] *(main::screen+1*SIZEOF_DWORD) = main::$1 + [8] *(main::screen+1*SIZEOF_UNSIGNED_LONG) = main::$1 to:main::@return main::@return: scope:[main] from main::@2 [9] return to:@return -dword mul16u(word mul16u::b , word mul16u::a) +unsigned long mul16u(unsigned int b , unsigned int a) mul16u: scope:[mul16u] from main main::@1 [10] mul16u::a#2 = phi( main/$a, main::@1/$3e8 ) [10] mul16u::b#2 = phi( main/$a, main::@1/$3e8 ) - [11] mul16u::mb#0 = (dword)mul16u::b#2 + [11] mul16u::mb#0 = (unsigned long)mul16u::b#2 [12] mul16u::return#2 = mul16u::mb#0 + mul16u::a#2 to:mul16u::@return mul16u::@return: scope:[mul16u] from mul16u diff --git a/src/test/ref/fragment-variations.log b/src/test/ref/fragment-variations.log index 81e2a689a..7a4783fd5 100644 --- a/src/test/ref/fragment-variations.log +++ b/src/test/ref/fragment-variations.log @@ -6,35 +6,35 @@ main: scope:[main] from __start main::w#0 = $a mul16u::b#0 = main::w#0 mul16u::a#0 = main::w#0 - call mul16u + call mul16u mul16u::return#0 = mul16u::return#3 to:main::@1 main::@1: scope:[main] from main mul16u::return#4 = phi( main/mul16u::return#0 ) main::$0 = mul16u::return#4 - main::$2 = 0 * SIZEOF_DWORD + main::$2 = 0 * SIZEOF_UNSIGNED_LONG main::screen[main::$2] = main::$0 main::w#1 = $3e8 mul16u::b#1 = main::w#1 mul16u::a#1 = main::w#1 - call mul16u + call mul16u mul16u::return#1 = mul16u::return#3 to:main::@2 main::@2: scope:[main] from main::@1 mul16u::return#5 = phi( main::@1/mul16u::return#1 ) main::$1 = mul16u::return#5 - main::$3 = 1 * SIZEOF_DWORD + main::$3 = 1 * SIZEOF_UNSIGNED_LONG main::screen[main::$3] = main::$1 to:main::@return main::@return: scope:[main] from main::@2 return to:@return -dword mul16u(word mul16u::b , word mul16u::a) +unsigned long mul16u(unsigned int b , unsigned int a) mul16u: scope:[mul16u] from main main::@1 mul16u::a#2 = phi( main/mul16u::a#0, main::@1/mul16u::a#1 ) mul16u::b#2 = phi( main/mul16u::b#0, main::@1/mul16u::b#1 ) - mul16u::mb#0 = (dword)mul16u::b#2 + mul16u::mb#0 = (unsigned long)mul16u::b#2 mul16u::$0 = mul16u::mb#0 + mul16u::a#2 mul16u::return#2 = mul16u::$0 to:mul16u::@return @@ -46,7 +46,7 @@ mul16u::@return: scope:[mul16u] from mul16u void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -55,75 +55,75 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_DWORD = 4 +__constant char SIZEOF_UNSIGNED_LONG = 4 void __start() void main() -dword~ main::$0 -dword~ main::$1 -number~ main::$2 -number~ main::$3 -constant dword* main::screen = (dword*)$400 -word main::w -word main::w#0 -word main::w#1 -dword mul16u(word mul16u::b , word mul16u::a) -dword~ mul16u::$0 -word mul16u::a -word mul16u::a#0 -word mul16u::a#1 -word mul16u::a#2 -word mul16u::b -word mul16u::b#0 -word mul16u::b#1 -word mul16u::b#2 -dword mul16u::mb -dword mul16u::mb#0 -dword mul16u::return -dword mul16u::return#0 -dword mul16u::return#1 -dword mul16u::return#2 -dword mul16u::return#3 -dword mul16u::return#4 -dword mul16u::return#5 -dword mul16u::return#6 +unsigned long main::$0 +unsigned long main::$1 +number main::$2 +number main::$3 +__constant unsigned long *main::screen = (unsigned long *)$400 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +unsigned long mul16u(unsigned int b , unsigned int a) +unsigned long mul16u::$0 +unsigned int mul16u::a +unsigned int mul16u::a#0 +unsigned int mul16u::a#1 +unsigned int mul16u::a#2 +unsigned int mul16u::b +unsigned int mul16u::b#0 +unsigned int mul16u::b#1 +unsigned int mul16u::b#2 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 +unsigned long mul16u::return +unsigned long mul16u::return#0 +unsigned long mul16u::return#1 +unsigned long mul16u::return#2 +unsigned long mul16u::return#3 +unsigned long mul16u::return#4 +unsigned long mul16u::return#5 +unsigned long mul16u::return#6 -Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_DWORD -Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_DWORD +Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_UNSIGNED_LONG +Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_UNSIGNED_LONG Adding number conversion cast (unumber) $3e8 in main::w#1 = $3e8 -Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_DWORD -Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_DWORD +Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_UNSIGNED_LONG +Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_UNSIGNED_LONG Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::w#1 = (unumber)$3e8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (dword*) 1024 +Simplifying constant pointer cast (unsigned long *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $3e8 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 0 * SIZEOF_DWORD -Inferred type updated to byte in main::$3 = 1 * SIZEOF_DWORD +Inferred type updated to char in main::$2 = 0 * SIZEOF_UNSIGNED_LONG +Inferred type updated to char in main::$3 = 1 * SIZEOF_UNSIGNED_LONG Alias mul16u::return#0 = mul16u::return#4 Alias mul16u::return#1 = mul16u::return#5 Alias mul16u::return#2 = mul16u::$0 mul16u::return#6 mul16u::return#3 Successful SSA optimization Pass2AliasElimination -Constant right-side identified [6] main::$2 = 0 * SIZEOF_DWORD -Constant right-side identified [14] main::$3 = 1 * SIZEOF_DWORD +Constant right-side identified [6] main::$2 = 0 * SIZEOF_UNSIGNED_LONG +Constant right-side identified [14] main::$3 = 1 * SIZEOF_UNSIGNED_LONG Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::w#0 = $a -Constant main::$2 = 0*SIZEOF_DWORD +Constant main::$2 = 0*SIZEOF_UNSIGNED_LONG Constant main::w#1 = $3e8 -Constant main::$3 = 1*SIZEOF_DWORD +Constant main::$3 = 1*SIZEOF_UNSIGNED_LONG Successful SSA optimization Pass2ConstantIdentification Constant mul16u::b#0 = main::w#0 Constant mul16u::a#0 = main::w#0 Constant mul16u::b#1 = main::w#1 Constant mul16u::a#1 = main::w#1 Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_DWORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_LONG in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::screen in [7] main::screen[main::$2] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -141,14 +141,14 @@ Inlining constant with var siblings mul16u::a#0 Inlining constant with var siblings mul16u::b#1 Inlining constant with var siblings mul16u::a#1 Constant inlined mul16u::b#1 = $3e8 -Constant inlined main::$3 = 1*SIZEOF_DWORD +Constant inlined main::$3 = 1*SIZEOF_UNSIGNED_LONG Constant inlined main::w#1 = $3e8 Constant inlined main::w#0 = $a Constant inlined mul16u::b#0 = $a Constant inlined mul16u::a#1 = $3e8 Constant inlined mul16u::a#0 = $a Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::screen+1*SIZEOF_DWORD) +Consolidated array index constant in *(main::screen+1*SIZEOF_UNSIGNED_LONG) Successful SSA optimization Pass2ConstantAdditionElimination Adding NOP phi() at start of main CALL GRAPH @@ -163,28 +163,28 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call mul16u + [1] call mul16u [2] mul16u::return#0 = mul16u::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = mul16u::return#0 [4] *main::screen = main::$0 - [5] call mul16u + [5] call mul16u [6] mul16u::return#1 = mul16u::return#2 to:main::@2 main::@2: scope:[main] from main::@1 [7] main::$1 = mul16u::return#1 - [8] *(main::screen+1*SIZEOF_DWORD) = main::$1 + [8] *(main::screen+1*SIZEOF_UNSIGNED_LONG) = main::$1 to:main::@return main::@return: scope:[main] from main::@2 [9] return to:@return -dword mul16u(word mul16u::b , word mul16u::a) +unsigned long mul16u(unsigned int b , unsigned int a) mul16u: scope:[mul16u] from main main::@1 [10] mul16u::a#2 = phi( main/$a, main::@1/$3e8 ) [10] mul16u::b#2 = phi( main/$a, main::@1/$3e8 ) - [11] mul16u::mb#0 = (dword)mul16u::b#2 + [11] mul16u::mb#0 = (unsigned long)mul16u::b#2 [12] mul16u::return#2 = mul16u::mb#0 + mul16u::a#2 to:mul16u::@return mul16u::@return: scope:[mul16u] from mul16u @@ -194,20 +194,20 @@ mul16u::@return: scope:[mul16u] from mul16u VARIABLE REGISTER WEIGHTS void main() -dword~ main::$0 4.0 -dword~ main::$1 4.0 -word main::w -dword mul16u(word mul16u::b , word mul16u::a) -word mul16u::a -word mul16u::a#2 5.5 -word mul16u::b -word mul16u::b#2 -dword mul16u::mb -dword mul16u::mb#0 22.0 -dword mul16u::return -dword mul16u::return#0 4.0 -dword mul16u::return#1 4.0 -dword mul16u::return#2 3.75 +unsigned long main::$0 // 4.0 +unsigned long main::$1 // 4.0 +unsigned int main::w +unsigned long mul16u(unsigned int b , unsigned int a) +unsigned int mul16u::a +unsigned int mul16u::a#2 // 5.5 +unsigned int mul16u::b +unsigned int mul16u::b#2 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 // 22.0 +unsigned long mul16u::return +unsigned long mul16u::return#0 // 4.0 +unsigned long mul16u::return#1 // 4.0 +unsigned long mul16u::return#2 // 3.75 Initial phi equivalence classes [ mul16u::b#2 ] @@ -241,8 +241,8 @@ Statement [3] main::$0 = mul16u::return#0 [ main::$0 ] ( [ main::$0 ] { { mul16 Statement [4] *main::screen = main::$0 [ ] ( [ ] { { mul16u::return#1 = mul16u::return#2 } } ) always clobbers reg byte a Statement [6] mul16u::return#1 = mul16u::return#2 [ mul16u::return#1 ] ( [ mul16u::return#1 ] { { mul16u::return#1 = mul16u::return#2 } } ) always clobbers reg byte a Statement [7] main::$1 = mul16u::return#1 [ main::$1 ] ( [ main::$1 ] { } ) always clobbers reg byte a -Statement [8] *(main::screen+1*SIZEOF_DWORD) = main::$1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] mul16u::mb#0 = (dword)mul16u::b#2 [ mul16u::a#2 mul16u::mb#0 ] ( mul16u:1 [ mul16u::a#2 mul16u::mb#0 ] { { mul16u::return#0 = mul16u::return#2 } } mul16u:5 [ mul16u::a#2 mul16u::mb#0 ] { { mul16u::return#1 = mul16u::return#2 } } ) always clobbers reg byte a +Statement [8] *(main::screen+1*SIZEOF_UNSIGNED_LONG) = main::$1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] mul16u::mb#0 = (unsigned long)mul16u::b#2 [ mul16u::a#2 mul16u::mb#0 ] ( mul16u:1 [ mul16u::a#2 mul16u::mb#0 ] { { mul16u::return#0 = mul16u::return#2 } } mul16u:5 [ mul16u::a#2 mul16u::mb#0 ] { { mul16u::return#1 = mul16u::return#2 } } ) always clobbers reg byte a Statement [12] mul16u::return#2 = mul16u::mb#0 + mul16u::a#2 [ mul16u::return#2 ] ( mul16u:1 [ mul16u::return#2 ] { { mul16u::return#0 = mul16u::return#2 } } mul16u:5 [ mul16u::return#2 ] { { mul16u::return#1 = mul16u::return#2 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ mul16u::b#2 ] : zp[2]:2 , Potential registers zp[2]:4 [ mul16u::a#2 ] : zp[2]:4 , @@ -281,14 +281,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_DWORD = 4 + .const SIZEOF_UNSIGNED_LONG = 4 .segment Code // main main: { .label screen = $400 .label __0 = 6 .label __1 = 6 - // [1] call mul16u + // [1] call mul16u // [10] phi from main to mul16u [phi:main->mul16u] mul16u_from_main: // [10] phi mul16u::a#2 = $a [phi:main->mul16u#0] -- vwuz1=vwuc1 @@ -316,7 +316,7 @@ main: { sta screen+2 lda.z __0+3 sta screen+3 - // [5] call mul16u + // [5] call mul16u // [10] phi from main::@1 to mul16u [phi:main::@1->mul16u] mul16u_from___b1: // [10] phi mul16u::a#2 = $3e8 [phi:main::@1->mul16u#0] -- vwuz1=vwuc1 @@ -335,15 +335,15 @@ main: { // main::@2 __b2: // [7] main::$1 = mul16u::return#1 - // [8] *(main::screen+1*SIZEOF_DWORD) = main::$1 -- _deref_pduc1=vduz1 + // [8] *(main::screen+1*SIZEOF_UNSIGNED_LONG) = main::$1 -- _deref_pduc1=vduz1 lda.z __1 - sta screen+1*SIZEOF_DWORD + sta screen+1*SIZEOF_UNSIGNED_LONG lda.z __1+1 - sta screen+1*SIZEOF_DWORD+1 + sta screen+1*SIZEOF_UNSIGNED_LONG+1 lda.z __1+2 - sta screen+1*SIZEOF_DWORD+2 + sta screen+1*SIZEOF_UNSIGNED_LONG+2 lda.z __1+3 - sta screen+1*SIZEOF_DWORD+3 + sta screen+1*SIZEOF_UNSIGNED_LONG+3 jmp __breturn // main::@return __breturn: @@ -351,13 +351,13 @@ main: { rts } // mul16u -// mul16u(word zp(2) b, word zp(4) a) +// __zp(6) unsigned long mul16u(__zp(2) unsigned int b, __zp(4) unsigned int a) mul16u: { .label return = 6 .label mb = 6 .label b = 2 .label a = 4 - // [11] mul16u::mb#0 = (dword)mul16u::b#2 -- vduz1=_dword_vwuz2 + // [11] mul16u::mb#0 = (unsigned long)mul16u::b#2 -- vduz1=_dword_vwuz2 lda.z b sta.z mb lda.z b+1 @@ -402,23 +402,23 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_DWORD = 4 +__constant char SIZEOF_UNSIGNED_LONG = 4 void main() -dword~ main::$0 zp[4]:6 4.0 -dword~ main::$1 zp[4]:6 4.0 -constant dword* main::screen = (dword*) 1024 -word main::w -dword mul16u(word mul16u::b , word mul16u::a) -word mul16u::a -word mul16u::a#2 a zp[2]:4 5.5 -word mul16u::b -word mul16u::b#2 b zp[2]:2 -dword mul16u::mb -dword mul16u::mb#0 mb zp[4]:6 22.0 -dword mul16u::return -dword mul16u::return#0 return zp[4]:6 4.0 -dword mul16u::return#1 return zp[4]:6 4.0 -dword mul16u::return#2 return zp[4]:6 3.75 +unsigned long main::$0 // zp[4]:6 4.0 +unsigned long main::$1 // zp[4]:6 4.0 +__constant unsigned long *main::screen = (unsigned long *) 1024 +unsigned int main::w +unsigned long mul16u(unsigned int b , unsigned int a) +unsigned int mul16u::a +unsigned int mul16u::a#2 // a zp[2]:4 5.5 +unsigned int mul16u::b +unsigned int mul16u::b#2 // b zp[2]:2 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 // mb zp[4]:6 22.0 +unsigned long mul16u::return +unsigned long mul16u::return#0 // return zp[4]:6 4.0 +unsigned long mul16u::return#1 // return zp[4]:6 4.0 +unsigned long mul16u::return#2 // return zp[4]:6 3.75 zp[2]:2 [ mul16u::b#2 ] zp[2]:4 [ mul16u::a#2 ] @@ -441,7 +441,7 @@ Score: 176 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_DWORD = 4 + .const SIZEOF_UNSIGNED_LONG = 4 .segment Code // main main: { @@ -449,7 +449,7 @@ main: { .label __0 = 6 .label __1 = 6 // mul16u(w, w) - // [1] call mul16u + // [1] call mul16u // [10] phi from main to mul16u [phi:main->mul16u] // [10] phi mul16u::a#2 = $a [phi:main->mul16u#0] -- vwuz1=vwuc1 lda #<$a @@ -477,7 +477,7 @@ main: { lda.z __0+3 sta screen+3 // mul16u(w, w) - // [5] call mul16u + // [5] call mul16u // [10] phi from main::@1 to mul16u [phi:main::@1->mul16u] // [10] phi mul16u::a#2 = $3e8 [phi:main::@1->mul16u#0] -- vwuz1=vwuc1 lda #<$3e8 @@ -495,29 +495,29 @@ main: { // main::@2 // [7] main::$1 = mul16u::return#1 // screen[1] = mul16u(w, w) - // [8] *(main::screen+1*SIZEOF_DWORD) = main::$1 -- _deref_pduc1=vduz1 + // [8] *(main::screen+1*SIZEOF_UNSIGNED_LONG) = main::$1 -- _deref_pduc1=vduz1 lda.z __1 - sta screen+1*SIZEOF_DWORD + sta screen+1*SIZEOF_UNSIGNED_LONG lda.z __1+1 - sta screen+1*SIZEOF_DWORD+1 + sta screen+1*SIZEOF_UNSIGNED_LONG+1 lda.z __1+2 - sta screen+1*SIZEOF_DWORD+2 + sta screen+1*SIZEOF_UNSIGNED_LONG+2 lda.z __1+3 - sta screen+1*SIZEOF_DWORD+3 + sta screen+1*SIZEOF_UNSIGNED_LONG+3 // main::@return // } // [9] return rts } // mul16u -// mul16u(word zp(2) b, word zp(4) a) +// __zp(6) unsigned long mul16u(__zp(2) unsigned int b, __zp(4) unsigned int a) mul16u: { .label return = 6 .label mb = 6 .label b = 2 .label a = 4 // dword mb = b - // [11] mul16u::mb#0 = (dword)mul16u::b#2 -- vduz1=_dword_vwuz2 + // [11] mul16u::mb#0 = (unsigned long)mul16u::b#2 -- vduz1=_dword_vwuz2 lda.z b sta.z mb lda.z b+1 diff --git a/src/test/ref/fragment-variations.sym b/src/test/ref/fragment-variations.sym index 3e22177d3..32a2ab1c8 100644 --- a/src/test/ref/fragment-variations.sym +++ b/src/test/ref/fragment-variations.sym @@ -1,20 +1,20 @@ -constant byte SIZEOF_DWORD = 4 +__constant char SIZEOF_UNSIGNED_LONG = 4 void main() -dword~ main::$0 zp[4]:6 4.0 -dword~ main::$1 zp[4]:6 4.0 -constant dword* main::screen = (dword*) 1024 -word main::w -dword mul16u(word mul16u::b , word mul16u::a) -word mul16u::a -word mul16u::a#2 a zp[2]:4 5.5 -word mul16u::b -word mul16u::b#2 b zp[2]:2 -dword mul16u::mb -dword mul16u::mb#0 mb zp[4]:6 22.0 -dword mul16u::return -dword mul16u::return#0 return zp[4]:6 4.0 -dword mul16u::return#1 return zp[4]:6 4.0 -dword mul16u::return#2 return zp[4]:6 3.75 +unsigned long main::$0 // zp[4]:6 4.0 +unsigned long main::$1 // zp[4]:6 4.0 +__constant unsigned long *main::screen = (unsigned long *) 1024 +unsigned int main::w +unsigned long mul16u(unsigned int b , unsigned int a) +unsigned int mul16u::a +unsigned int mul16u::a#2 // a zp[2]:4 5.5 +unsigned int mul16u::b +unsigned int mul16u::b#2 // b zp[2]:2 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 // mb zp[4]:6 22.0 +unsigned long mul16u::return +unsigned long mul16u::return#0 // return zp[4]:6 4.0 +unsigned long mul16u::return#1 // return zp[4]:6 4.0 +unsigned long mul16u::return#2 // return zp[4]:6 3.75 zp[2]:2 [ mul16u::b#2 ] zp[2]:4 [ mul16u::a#2 ] diff --git a/src/test/ref/function-pointer-advanced-1.asm b/src/test/ref/function-pointer-advanced-1.asm index e975ef917..22b9be877 100644 --- a/src/test/ref/function-pointer-advanced-1.asm +++ b/src/test/ref/function-pointer-advanced-1.asm @@ -8,7 +8,7 @@ .segment Basic :BasicUpstart(__start) .const STACK_BASE = $103 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .label line = 8 .label idx = 7 .segment Code @@ -21,7 +21,7 @@ __start: { jsr main rts } -// xor(byte zp($a) a, byte register(A) b) +// __register(A) char xor(__zp($a) char a, __register(A) char b) xor: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 @@ -39,7 +39,7 @@ xor: { sta STACK_BASE+OFFSET_STACK_RETURN_1,x rts } -// min(byte register(Y) a, byte register(A) b) +// __register(A) char min(__register(Y) char a, __register(A) char b) min: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 @@ -64,7 +64,7 @@ min: { sta STACK_BASE+OFFSET_STACK_RETURN_1,x rts } -// max(byte zp($b) a, byte register(A) b) +// __register(A) char max(__zp($b) char a, __register(A) char b) max: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 @@ -89,7 +89,7 @@ max: { sta STACK_BASE+OFFSET_STACK_RETURN_1,x rts } -// sum(byte zp($c) a, byte register(A) b) +// __register(A) char sum(__zp($c) char a, __register(A) char b) sum: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 @@ -116,7 +116,7 @@ main: { __b1: // for(char i=0;i>4 @@ -251,7 +251,7 @@ print: { // } rts } -// cout(byte register(X) c) +// void cout(__register(X) char c) cout: { // line[idx++] = c ldy.z idx diff --git a/src/test/ref/function-pointer-advanced-1.cfg b/src/test/ref/function-pointer-advanced-1.cfg index b4f550cc2..8eebfaf9b 100644 --- a/src/test/ref/function-pointer-advanced-1.cfg +++ b/src/test/ref/function-pointer-advanced-1.cfg @@ -4,31 +4,31 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] line = (byte*) 1024 + [1] line = (char *) 1024 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall byte xor(byte xor::a , byte xor::b) +__stackcall char xor(char a , char b) xor: scope:[xor] from - [5] xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) - [6] xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) + [5] xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) + [6] xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) [7] xor::return#0 = xor::a#0 ^ xor::b#0 to:xor::@return xor::@return: scope:[xor] from xor - [8] stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#0 + [8] stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#0 [9] return to:@return -__stackcall byte min(byte min::a , byte min::b) +__stackcall char min(char a , char b) min: scope:[min] from - [10] min::a#0 = stackidx(byte,min::OFFSET_STACK_A) - [11] min::b#0 = stackidx(byte,min::OFFSET_STACK_B) + [10] min::a#0 = stackidx(char,min::OFFSET_STACK_A) + [11] min::b#0 = stackidx(char,min::OFFSET_STACK_B) [12] if(min::a#0max::b#0) goto max::@1 to:max::@return max::@1: scope:[max] from max @@ -51,18 +51,18 @@ max::@1: scope:[max] from max to:max::@return max::@return: scope:[max] from max max::@1 [21] max::return#2 = phi( max::@1/max::return#4, max/max::b#0 ) - [22] stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 + [22] stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 [23] return to:@return -__stackcall byte sum(byte sum::a , byte sum::b) +__stackcall char sum(char a , char b) sum: scope:[sum] from - [24] sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) - [25] sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) + [24] sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) + [25] sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) [26] sum::return#0 = sum::a#0 + sum::b#0 to:sum::@return sum::@return: scope:[sum] from sum - [27] stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#0 + [27] stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#0 [28] return to:@return @@ -73,50 +73,50 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@5 [30] idx#54 = phi( main/0, main::@5/idx#0 ) [30] main::i#2 = phi( main/0, main::@5/main::i#1 ) - [31] if(main::i#2<6*SIZEOF_BYTE) goto main::@2 + [31] if(main::i#2<6*SIZEOF_CHAR) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [32] phi() - [33] call ln + [33] call ln to:main::@6 main::@6: scope:[main] from main::@3 [34] phi() - [35] call exec + [35] call exec to:main::@7 main::@7: scope:[main] from main::@6 [36] phi() - [37] call ln + [37] call ln to:main::@8 main::@8: scope:[main] from main::@7 [38] phi() - [39] call exec + [39] call exec to:main::@9 main::@9: scope:[main] from main::@8 [40] phi() - [41] call ln + [41] call ln to:main::@10 main::@10: scope:[main] from main::@9 [42] phi() - [43] call exec + [43] call exec to:main::@11 main::@11: scope:[main] from main::@10 [44] phi() - [45] call ln + [45] call ln to:main::@12 main::@12: scope:[main] from main::@11 [46] phi() - [47] call exec + [47] call exec to:main::@return main::@return: scope:[main] from main::@12 [48] return to:@return main::@2: scope:[main] from main::@1 [49] print::i#0 = INPUT[main::i#2] - [50] call print + [50] call print to:main::@4 main::@4: scope:[main] from main::@2 [51] phi() - [52] call cout + [52] call cout to:main::@5 main::@5: scope:[main] from main::@4 [53] main::i#1 = ++ main::i#2 @@ -130,18 +130,18 @@ ln::@return: scope:[ln] from ln [55] return to:@return -void exec(byte(byte,byte)* exec::collect) +void exec(char (*collect)(char, char)) exec: scope:[exec] from main::@10 main::@12 main::@6 main::@8 [56] exec::collect#10 = phi( main::@10/&max, main::@12/&xor, main::@6/&sum, main::@8/&min ) - [57] call cout + [57] call cout to:exec::@4 exec::@4: scope:[exec] from exec [58] phi() - [59] call cout + [59] call cout to:exec::@5 exec::@5: scope:[exec] from exec::@4 [60] phi() - [61] call cout + [61] call cout to:exec::@6 exec::@6: scope:[exec] from exec::@5 [62] exec::out#0 = *INPUT @@ -149,48 +149,48 @@ exec::@6: scope:[exec] from exec::@5 exec::@1: scope:[exec] from exec::@6 exec::@8 [63] exec::out#2 = phi( exec::@6/exec::out#0, exec::@8/exec::out#1 ) [63] exec::i#2 = phi( exec::@6/1, exec::@8/exec::i#1 ) - [64] if(exec::i#2<6*SIZEOF_BYTE) goto exec::@2 + [64] if(exec::i#2<6*SIZEOF_CHAR) goto exec::@2 to:exec::@return exec::@return: scope:[exec] from exec::@1 [65] return to:@return exec::@2: scope:[exec] from exec::@1 - [66] stackpush(byte) = exec::out#2 - [67] stackpush(byte) = INPUT[exec::i#2] + [66] stackpush(char) = exec::out#2 + [67] stackpush(char) = INPUT[exec::i#2] [68] callexecute *exec::collect#10 sideeffect stackpullbytes(1) - [70] exec::out#1 = stackpull(byte) + [70] exec::out#1 = stackpull(char) to:exec::@3 exec::@3: scope:[exec] from exec::@2 [71] print::i#1 = exec::out#1 - [72] call print + [72] call print to:exec::@7 exec::@7: scope:[exec] from exec::@3 [73] phi() - [74] call cout + [74] call cout to:exec::@8 exec::@8: scope:[exec] from exec::@7 [75] exec::i#1 = ++ exec::i#2 to:exec::@1 -void print(byte print::i) +void print(char i) print: scope:[print] from exec::@3 main::@2 [76] idx#53 = phi( exec::@3/idx#0, main::@2/idx#54 ) [76] print::i#2 = phi( exec::@3/print::i#1, main::@2/print::i#0 ) [77] print::$0 = print::i#2 >> 4 [78] cout::c#0 = HEX[print::$0] - [79] call cout + [79] call cout to:print::@1 print::@1: scope:[print] from print [80] print::$2 = print::i#2 & $f [81] cout::c#1 = HEX[print::$2] - [82] call cout + [82] call cout to:print::@return print::@return: scope:[print] from print::@1 [83] return to:@return -void cout(byte cout::c) +void cout(char c) cout: scope:[cout] from exec exec::@4 exec::@5 exec::@7 main::@4 print print::@1 [84] idx#27 = phi( exec/0, exec::@4/idx#0, exec::@5/idx#0, exec::@7/idx#0, main::@4/idx#0, print/idx#53, print::@1/idx#0 ) [84] cout::c#7 = phi( exec/' ', exec::@4/' ', exec::@5/' ', exec::@7/' ', main::@4/' ', print/cout::c#0, print::@1/cout::c#1 ) diff --git a/src/test/ref/function-pointer-advanced-1.log b/src/test/ref/function-pointer-advanced-1.log index b40ef933c..a8ea4c564 100644 --- a/src/test/ref/function-pointer-advanced-1.log +++ b/src/test/ref/function-pointer-advanced-1.log @@ -1,10 +1,10 @@ -Resolved forward reference min to byte min(byte min::a , byte min::b) -Resolved forward reference max to byte max(byte max::a , byte max::b) -Resolved forward reference xor to byte xor(byte xor::a , byte xor::b) -Setting inferred __stackcall on procedure affected by address-of __stackcall byte sum(byte sum::a , byte sum::b) caused by statement main::$1 = call exec(&sum) -Setting inferred __stackcall on procedure affected by address-of __stackcall byte min(byte min::a , byte min::b) caused by statement main::$3 = call exec(&min) -Setting inferred __stackcall on procedure affected by address-of __stackcall byte max(byte max::a , byte max::b) caused by statement main::$5 = call exec(&max) -Setting inferred __stackcall on procedure affected by address-of __stackcall byte xor(byte xor::a , byte xor::b) caused by statement main::$7 = call exec(&xor) +Resolved forward reference min to char min(char a , char b) +Resolved forward reference max to char max(char a , char b) +Resolved forward reference xor to char xor(char a , char b) +Setting inferred __stackcall on procedure affected by address-of __stackcall char sum(char a , char b) caused by statement main::$1 = call exec(&sum) +Setting inferred __stackcall on procedure affected by address-of __stackcall char min(char a , char b) caused by statement main::$3 = call exec(&min) +Setting inferred __stackcall on procedure affected by address-of __stackcall char max(char a , char b) caused by statement main::$5 = call exec(&max) +Setting inferred __stackcall on procedure affected by address-of __stackcall char xor(char a , char b) caused by statement main::$7 = call exec(&xor) Adding parameter assignment in __stackcall procedure sum::b = param(sum::b) Adding parameter assignment in __stackcall procedure sum::a = param(sum::a) Adding parameter assignment in __stackcall procedure max::b = param(max::b) @@ -15,39 +15,39 @@ Adding parameter assignment in __stackcall procedure xor::b = param(xor::b) Adding parameter assignment in __stackcall procedure xor::a = param(xor::a) Inlined call call __init Calling convention STACK_CALL adding prepare/execute/finalize for exec::$5 = call *exec::collect exec::out INPUT[exec::i] -Calling convention STACK_CALL replacing param(sum::a) with stackidx(byte,sum::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(sum::b) with stackidx(byte,sum::OFFSET_STACK_B) -Calling convention STACK_CALL replacing param(max::a) with stackidx(byte,max::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(max::b) with stackidx(byte,max::OFFSET_STACK_B) -Calling convention STACK_CALL replacing param(min::a) with stackidx(byte,min::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(min::b) with stackidx(byte,min::OFFSET_STACK_B) -Calling convention STACK_CALL replacing param(xor::a) with stackidx(byte,xor::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(xor::b) with stackidx(byte,xor::OFFSET_STACK_B) -Calling convention STACK_CALL adding stack return stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return -Calling convention STACK_CALL adding stack return stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return -Calling convention STACK_CALL adding stack return stackidx(byte,min::OFFSET_STACK_RETURN_1) = min::return -Calling convention STACK_CALL adding stack return stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return -Calling convention STACK_CALL adding stack pull exec::$5 = stackpull(byte) -Calling convention STACK_CALL adding stack push stackpush(byte) = exec::out -Calling convention STACK_CALL adding stack push stackpush(byte) = INPUT[exec::i] +Calling convention STACK_CALL replacing param(sum::a) with stackidx(char,sum::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(sum::b) with stackidx(char,sum::OFFSET_STACK_B) +Calling convention STACK_CALL replacing param(max::a) with stackidx(char,max::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(max::b) with stackidx(char,max::OFFSET_STACK_B) +Calling convention STACK_CALL replacing param(min::a) with stackidx(char,min::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(min::b) with stackidx(char,min::OFFSET_STACK_B) +Calling convention STACK_CALL replacing param(xor::a) with stackidx(char,xor::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(xor::b) with stackidx(char,xor::OFFSET_STACK_B) +Calling convention STACK_CALL adding stack return stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return +Calling convention STACK_CALL adding stack return stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return +Calling convention STACK_CALL adding stack return stackidx(char,min::OFFSET_STACK_RETURN_1) = min::return +Calling convention STACK_CALL adding stack return stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return +Calling convention STACK_CALL adding stack pull exec::$5 = stackpull(char) +Calling convention STACK_CALL adding stack push stackpush(char) = exec::out +Calling convention STACK_CALL adding stack push stackpush(char) = INPUT[exec::i] CONTROL FLOW GRAPH SSA -__stackcall byte sum(byte sum::a , byte sum::b) +__stackcall char sum(char a , char b) sum: scope:[sum] from - sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) - sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) + sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) + sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) sum::$0 = sum::a#0 + sum::b#0 sum::return#0 = sum::$0 to:sum::@return sum::@return: scope:[sum] from sum sum::return#2 = phi( sum/sum::return#0 ) sum::return#1 = sum::return#2 - stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#1 + stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#1 return to:@return -void cout(byte cout::c) +void cout(char c) cout: scope:[cout] from exec exec::@4 exec::@5 exec::@7 main::@4 print print::@1 idx#27 = phi( exec/idx#52, exec::@4/idx#18, exec::@5/idx#19, exec::@7/idx#21, main::@4/idx#7, print/idx#53, print::@1/idx#4 ) cout::c#7 = phi( exec/cout::c#3, exec::@4/cout::c#4, exec::@5/cout::c#5, exec::@7/cout::c#6, main::@4/cout::c#2, print/cout::c#0, print::@1/cout::c#1 ) @@ -71,7 +71,7 @@ ln::@return: scope:[ln] from ln return to:@return -void print(byte print::i) +void print(char i) print: scope:[print] from exec::@3 main::@2 idx#53 = phi( exec::@3/idx#56, main::@2/idx#54 ) print::i#2 = phi( exec::@3/print::i#1, main::@2/print::i#0 ) @@ -181,7 +181,7 @@ main::@return: scope:[main] from main::@13 return to:@return -void exec(byte(byte,byte)* exec::collect) +void exec(char (*collect)(char, char)) exec: scope:[exec] from main::@10 main::@12 main::@6 main::@8 exec::collect#12 = phi( main::@10/exec::collect#2, main::@12/exec::collect#3, main::@6/exec::collect#0, main::@8/exec::collect#1 ) idx#52 = phi( main::@10/idx#13, main::@12/idx#15, main::@6/idx#9, main::@8/idx#11 ) @@ -223,11 +223,11 @@ exec::@2: scope:[exec] from exec::@1 exec::collect#4 = phi( exec::@1/exec::collect#5 ) exec::i#3 = phi( exec::@1/exec::i#2 ) exec::out#2 = phi( exec::@1/exec::out#3 ) - stackpush(byte) = exec::out#2 - stackpush(byte) = INPUT[exec::i#3] + stackpush(char) = exec::out#2 + stackpush(char) = INPUT[exec::i#3] callexecute *exec::collect#4 sideeffect stackpullbytes(1) - exec::$5 = stackpull(byte) + exec::$5 = stackpull(char) to:exec::@3 exec::@3: scope:[exec] from exec::@2 exec::collect#11 = phi( exec::@2/exec::collect#4 ) @@ -260,10 +260,10 @@ exec::@return: scope:[exec] from exec::@1 return to:@return -__stackcall byte max(byte max::a , byte max::b) +__stackcall char max(char a , char b) max: scope:[max] from - max::a#0 = stackidx(byte,max::OFFSET_STACK_A) - max::b#0 = stackidx(byte,max::OFFSET_STACK_B) + max::a#0 = stackidx(char,max::OFFSET_STACK_A) + max::b#0 = stackidx(char,max::OFFSET_STACK_B) max::$0 = max::a#0 > max::b#0 if(max::$0) goto max::@1 to:max::@2 @@ -278,14 +278,14 @@ max::@2: scope:[max] from max max::@return: scope:[max] from max::@1 max::@2 max::return#3 = phi( max::@1/max::return#0, max::@2/max::return#1 ) max::return#2 = max::return#3 - stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 + stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 return to:@return -__stackcall byte min(byte min::a , byte min::b) +__stackcall char min(char a , char b) min: scope:[min] from - min::a#0 = stackidx(byte,min::OFFSET_STACK_A) - min::b#0 = stackidx(byte,min::OFFSET_STACK_B) + min::a#0 = stackidx(char,min::OFFSET_STACK_A) + min::b#0 = stackidx(char,min::OFFSET_STACK_B) min::$0 = min::a#0 < min::b#0 if(min::$0) goto min::@1 to:min::@2 @@ -300,21 +300,21 @@ min::@2: scope:[min] from min min::@return: scope:[min] from min::@1 min::@2 min::return#3 = phi( min::@1/min::return#0, min::@2/min::return#1 ) min::return#2 = min::return#3 - stackidx(byte,min::OFFSET_STACK_RETURN_1) = min::return#2 + stackidx(char,min::OFFSET_STACK_RETURN_1) = min::return#2 return to:@return -__stackcall byte xor(byte xor::a , byte xor::b) +__stackcall char xor(char a , char b) xor: scope:[xor] from - xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) - xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) + xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) + xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) xor::$0 = xor::a#0 ^ xor::b#0 xor::return#0 = xor::$0 to:xor::@return xor::@return: scope:[xor] from xor xor::return#2 = phi( xor/xor::return#0 ) xor::return#1 = xor::return#2 - stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#1 + stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#1 return to:@return @@ -322,7 +322,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - line = (byte*)$400 + line = (char *)$400 idx#24 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 @@ -340,194 +340,194 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* HEX[] = "0123456789abcdef" -constant byte* INPUT[] = { 2, 1, 3, 4, 6, 5 } -constant word STACK_BASE = $103 +__constant char HEX[] = "0123456789abcdef" +__constant char INPUT[] = { 2, 1, 3, 4, 6, 5 } +__constant unsigned int STACK_BASE = $103 void __start() -void cout(byte cout::c) -byte cout::c -byte cout::c#0 -byte cout::c#1 -byte cout::c#2 -byte cout::c#3 -byte cout::c#4 -byte cout::c#5 -byte cout::c#6 -byte cout::c#7 -void exec(byte(byte,byte)* exec::collect) -word~ exec::$3 -bool~ exec::$4 -byte~ exec::$5 -byte(byte,byte)* exec::collect -byte(byte,byte)* exec::collect#0 -byte(byte,byte)* exec::collect#1 -byte(byte,byte)* exec::collect#10 -byte(byte,byte)* exec::collect#11 -byte(byte,byte)* exec::collect#12 -byte(byte,byte)* exec::collect#2 -byte(byte,byte)* exec::collect#3 -byte(byte,byte)* exec::collect#4 -byte(byte,byte)* exec::collect#5 -byte(byte,byte)* exec::collect#6 -byte(byte,byte)* exec::collect#7 -byte(byte,byte)* exec::collect#8 -byte(byte,byte)* exec::collect#9 -byte exec::i -byte exec::i#0 -byte exec::i#1 -byte exec::i#2 -byte exec::i#3 -byte exec::i#4 -byte exec::i#5 -byte exec::i#6 -byte exec::out -byte exec::out#0 -byte exec::out#1 -byte exec::out#2 -byte exec::out#3 -byte exec::out#4 -byte exec::out#5 -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#30 -byte idx#31 -byte idx#32 -byte idx#33 -byte idx#34 -byte idx#35 -byte idx#36 -byte idx#37 -byte idx#38 -byte idx#39 -byte idx#4 -byte idx#40 -byte idx#41 -byte idx#42 -byte idx#43 -byte idx#44 -byte idx#45 -byte idx#46 -byte idx#47 -byte idx#48 -byte idx#49 -byte idx#5 -byte idx#50 -byte idx#51 -byte idx#52 -byte idx#53 -byte idx#54 -byte idx#55 -byte idx#56 -byte idx#57 -byte idx#58 -byte idx#59 -byte idx#6 -byte idx#60 -byte idx#61 -byte idx#7 -byte idx#8 -byte idx#9 -byte* line loadstore +void cout(char c) +char cout::c +char cout::c#0 +char cout::c#1 +char cout::c#2 +char cout::c#3 +char cout::c#4 +char cout::c#5 +char cout::c#6 +char cout::c#7 +void exec(char (*collect)(char, char)) +unsigned int exec::$3 +bool exec::$4 +char exec::$5 +char (*exec::collect)(char, char) +char (*exec::collect#0)(char, char) +char (*exec::collect#1)(char, char) +char (*exec::collect#10)(char, char) +char (*exec::collect#11)(char, char) +char (*exec::collect#12)(char, char) +char (*exec::collect#2)(char, char) +char (*exec::collect#3)(char, char) +char (*exec::collect#4)(char, char) +char (*exec::collect#5)(char, char) +char (*exec::collect#6)(char, char) +char (*exec::collect#7)(char, char) +char (*exec::collect#8)(char, char) +char (*exec::collect#9)(char, char) +char exec::i +char exec::i#0 +char exec::i#1 +char exec::i#2 +char exec::i#3 +char exec::i#4 +char exec::i#5 +char exec::i#6 +char exec::out +char exec::out#0 +char exec::out#1 +char exec::out#2 +char exec::out#3 +char exec::out#4 +char exec::out#5 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#30 +char idx#31 +char idx#32 +char idx#33 +char idx#34 +char idx#35 +char idx#36 +char idx#37 +char idx#38 +char idx#39 +char idx#4 +char idx#40 +char idx#41 +char idx#42 +char idx#43 +char idx#44 +char idx#45 +char idx#46 +char idx#47 +char idx#48 +char idx#49 +char idx#5 +char idx#50 +char idx#51 +char idx#52 +char idx#53 +char idx#54 +char idx#55 +char idx#56 +char idx#57 +char idx#58 +char idx#59 +char idx#6 +char idx#60 +char idx#61 +char idx#7 +char idx#8 +char idx#9 +__loadstore char *line void ln() void main() -word~ main::$8 -bool~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -__stackcall byte max(byte max::a , byte max::b) -bool~ max::$0 -constant byte max::OFFSET_STACK_A = 1 -constant byte max::OFFSET_STACK_B = 0 -constant byte max::OFFSET_STACK_RETURN_1 = 1 -byte max::a -byte max::a#0 -byte max::a#1 -byte max::b -byte max::b#0 -byte max::b#1 -byte max::return -byte max::return#0 -byte max::return#1 -byte max::return#2 -byte max::return#3 -__stackcall byte min(byte min::a , byte min::b) -bool~ min::$0 -constant byte min::OFFSET_STACK_A = 1 -constant byte min::OFFSET_STACK_B = 0 -constant byte min::OFFSET_STACK_RETURN_1 = 1 -byte min::a -byte min::a#0 -byte min::a#1 -byte min::b -byte min::b#0 -byte min::b#1 -byte min::return -byte min::return#0 -byte min::return#1 -byte min::return#2 -byte min::return#3 -void print(byte print::i) -byte~ print::$0 -number~ print::$2 -byte print::i -byte print::i#0 -byte print::i#1 -byte print::i#2 -byte print::i#3 -__stackcall byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -constant byte sum::OFFSET_STACK_A = 1 -constant byte sum::OFFSET_STACK_B = 0 -constant byte sum::OFFSET_STACK_RETURN_1 = 1 -byte sum::a -byte sum::a#0 -byte sum::b -byte sum::b#0 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -__stackcall byte xor(byte xor::a , byte xor::b) -byte~ xor::$0 -constant byte xor::OFFSET_STACK_A = 1 -constant byte xor::OFFSET_STACK_B = 0 -constant byte xor::OFFSET_STACK_RETURN_1 = 1 -byte xor::a -byte xor::a#0 -byte xor::b -byte xor::b#0 -byte xor::return -byte xor::return#0 -byte xor::return#1 -byte xor::return#2 +unsigned int main::$8 +bool main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +__stackcall char max(char a , char b) +bool max::$0 +__constant char max::OFFSET_STACK_A = 1 +__constant char max::OFFSET_STACK_B = 0 +__constant char max::OFFSET_STACK_RETURN_1 = 1 +char max::a +char max::a#0 +char max::a#1 +char max::b +char max::b#0 +char max::b#1 +char max::return +char max::return#0 +char max::return#1 +char max::return#2 +char max::return#3 +__stackcall char min(char a , char b) +bool min::$0 +__constant char min::OFFSET_STACK_A = 1 +__constant char min::OFFSET_STACK_B = 0 +__constant char min::OFFSET_STACK_RETURN_1 = 1 +char min::a +char min::a#0 +char min::a#1 +char min::b +char min::b#0 +char min::b#1 +char min::return +char min::return#0 +char min::return#1 +char min::return#2 +char min::return#3 +void print(char i) +char print::$0 +number print::$2 +char print::i +char print::i#0 +char print::i#1 +char print::i#2 +char print::i#3 +__stackcall char sum(char a , char b) +char sum::$0 +__constant char sum::OFFSET_STACK_A = 1 +__constant char sum::OFFSET_STACK_B = 0 +__constant char sum::OFFSET_STACK_RETURN_1 = 1 +char sum::a +char sum::a#0 +char sum::b +char sum::b#0 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +__stackcall char xor(char a , char b) +char xor::$0 +__constant char xor::OFFSET_STACK_A = 1 +__constant char xor::OFFSET_STACK_B = 0 +__constant char xor::OFFSET_STACK_RETURN_1 = 1 +char xor::a +char xor::a#0 +char xor::b +char xor::b#0 +char xor::return +char xor::return#0 +char xor::return#1 +char xor::return#2 Adding number conversion cast (unumber) $28 in line = line + $28 Adding number conversion cast (unumber) 0 in idx#2 = 0 @@ -543,15 +543,15 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print::$2 = print::i#3 & $f +Inferred type updated to char in print::$2 = print::i#3 & $f Alias sum::return#0 = sum::$0 sum::return#2 sum::return#1 Alias idx#0 = idx#28 idx#1 Alias idx#2 = idx#29 idx#3 @@ -650,8 +650,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings cout::c#2 Inlining constant with var siblings cout::c#3 @@ -668,7 +668,7 @@ Inlining constant with var siblings idx#2 Inlining constant with var siblings idx#24 Constant inlined exec::collect#1 = &min Constant inlined exec::collect#0 = &sum -Constant inlined exec::$3 = 6*SIZEOF_BYTE +Constant inlined exec::$3 = 6*SIZEOF_CHAR Constant inlined exec::collect#3 = &xor Constant inlined exec::collect#2 = &max Constant inlined idx#24 = 0 @@ -680,9 +680,9 @@ Constant inlined cout::c#6 = ' ' Constant inlined exec::i#0 = 1 Constant inlined idx#2 = 0 Constant inlined cout::c#5 = ' ' -Constant inlined main::$8 = 6*SIZEOF_BYTE +Constant inlined main::$8 = 6*SIZEOF_CHAR Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -755,7 +755,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] line = (byte*) 1024 + [1] line = (char *) 1024 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() @@ -765,21 +765,21 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall byte xor(byte xor::a , byte xor::b) +__stackcall char xor(char a , char b) xor: scope:[xor] from - [5] xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) - [6] xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) + [5] xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) + [6] xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) [7] xor::return#0 = xor::a#0 ^ xor::b#0 to:xor::@return xor::@return: scope:[xor] from xor - [8] stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#0 + [8] stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#0 [9] return to:@return -__stackcall byte min(byte min::a , byte min::b) +__stackcall char min(char a , char b) min: scope:[min] from - [10] min::a#0 = stackidx(byte,min::OFFSET_STACK_A) - [11] min::b#0 = stackidx(byte,min::OFFSET_STACK_B) + [10] min::a#0 = stackidx(char,min::OFFSET_STACK_A) + [11] min::b#0 = stackidx(char,min::OFFSET_STACK_B) [12] if(min::a#0max::b#0) goto max::@1 to:max::@return max::@1: scope:[max] from max @@ -802,18 +802,18 @@ max::@1: scope:[max] from max to:max::@return max::@return: scope:[max] from max max::@1 [21] max::return#2 = phi( max::@1/max::return#4, max/max::b#0 ) - [22] stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 + [22] stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 [23] return to:@return -__stackcall byte sum(byte sum::a , byte sum::b) +__stackcall char sum(char a , char b) sum: scope:[sum] from - [24] sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) - [25] sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) + [24] sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) + [25] sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) [26] sum::return#0 = sum::a#0 + sum::b#0 to:sum::@return sum::@return: scope:[sum] from sum - [27] stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#0 + [27] stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#0 [28] return to:@return @@ -824,7 +824,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@5 [30] idx#54 = phi( main/0, main::@5/idx#0 ) [30] main::i#2 = phi( main/0, main::@5/main::i#1 ) - [31] if(main::i#2<6*SIZEOF_BYTE) goto main::@2 + [31] if(main::i#2<6*SIZEOF_CHAR) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [32] phi() @@ -881,7 +881,7 @@ ln::@return: scope:[ln] from ln [55] return to:@return -void exec(byte(byte,byte)* exec::collect) +void exec(char (*collect)(char, char)) exec: scope:[exec] from main::@10 main::@12 main::@6 main::@8 [56] exec::collect#10 = phi( main::@10/&max, main::@12/&xor, main::@6/&sum, main::@8/&min ) [57] call cout @@ -900,17 +900,17 @@ exec::@6: scope:[exec] from exec::@5 exec::@1: scope:[exec] from exec::@6 exec::@8 [63] exec::out#2 = phi( exec::@6/exec::out#0, exec::@8/exec::out#1 ) [63] exec::i#2 = phi( exec::@6/1, exec::@8/exec::i#1 ) - [64] if(exec::i#2<6*SIZEOF_BYTE) goto exec::@2 + [64] if(exec::i#2<6*SIZEOF_CHAR) goto exec::@2 to:exec::@return exec::@return: scope:[exec] from exec::@1 [65] return to:@return exec::@2: scope:[exec] from exec::@1 - [66] stackpush(byte) = exec::out#2 - [67] stackpush(byte) = INPUT[exec::i#2] + [66] stackpush(char) = exec::out#2 + [67] stackpush(char) = INPUT[exec::i#2] [68] callexecute *exec::collect#10 sideeffect stackpullbytes(1) - [70] exec::out#1 = stackpull(byte) + [70] exec::out#1 = stackpull(char) to:exec::@3 exec::@3: scope:[exec] from exec::@2 [71] print::i#1 = exec::out#1 @@ -924,7 +924,7 @@ exec::@8: scope:[exec] from exec::@7 [75] exec::i#1 = ++ exec::i#2 to:exec::@1 -void print(byte print::i) +void print(char i) print: scope:[print] from exec::@3 main::@2 [76] idx#53 = phi( exec::@3/idx#0, main::@2/idx#54 ) [76] print::i#2 = phi( exec::@3/print::i#1, main::@2/print::i#0 ) @@ -941,7 +941,7 @@ print::@return: scope:[print] from print::@1 [83] return to:@return -void cout(byte cout::c) +void cout(char c) cout: scope:[cout] from exec exec::@4 exec::@5 exec::@7 main::@4 print print::@1 [84] idx#27 = phi( exec/0, exec::@4/idx#0, exec::@5/idx#0, exec::@7/idx#0, main::@4/idx#0, print/idx#53, print::@1/idx#0 ) [84] cout::c#7 = phi( exec/' ', exec::@4/' ', exec::@5/' ', exec::@7/' ', main::@4/' ', print/cout::c#0, print::@1/cout::c#1 ) @@ -955,69 +955,69 @@ cout::@return: scope:[cout] from cout VARIABLE REGISTER WEIGHTS void __start() -void cout(byte cout::c) -byte cout::c -byte cout::c#0 20002.0 -byte cout::c#1 20002.0 -byte cout::c#7 120003.0 -void exec(byte(byte,byte)* exec::collect) -byte(byte,byte)* exec::collect -byte(byte,byte)* exec::collect#10 -byte exec::i -byte exec::i#1 2002.0 -byte exec::i#2 400.4 -byte exec::out -byte exec::out#0 202.0 -byte exec::out#1 500.5 -byte exec::out#2 1051.5 -byte idx -byte idx#0 5352.761904761905 -byte idx#27 110654.0 -byte idx#53 3701.0 -byte idx#54 67.33333333333333 -byte* line loadstore 1757.982456140351 +void cout(char c) +char cout::c +char cout::c#0 // 20002.0 +char cout::c#1 // 20002.0 +char cout::c#7 // 120003.0 +void exec(char (*collect)(char, char)) +char (*exec::collect)(char, char) +char (*exec::collect#10)(char, char) +char exec::i +char exec::i#1 // 2002.0 +char exec::i#2 // 400.4 +char exec::out +char exec::out#0 // 202.0 +char exec::out#1 // 500.5 +char exec::out#2 // 1051.5 +char idx +char idx#0 // 5352.761904761905 +char idx#27 // 110654.0 +char idx#53 // 3701.0 +char idx#54 // 67.33333333333333 +__loadstore char *line // 1757.982456140351 void ln() void main() -byte main::i -byte main::i#1 202.0 -byte main::i#2 67.33333333333333 -__stackcall byte max(byte max::a , byte max::b) -byte max::a -byte max::a#0 2.0 -byte max::b -byte max::b#0 3.0 -byte max::return -byte max::return#2 6.0 -byte max::return#4 4.0 -__stackcall byte min(byte min::a , byte min::b) -byte min::a -byte min::a#0 2.0 -byte min::b -byte min::b#0 3.0 -byte min::return -byte min::return#2 6.0 -byte min::return#4 4.0 -void print(byte print::i) -byte~ print::$0 20002.0 -byte~ print::$2 20002.0 -byte print::i -byte print::i#0 202.0 -byte print::i#1 2002.0 -byte print::i#2 5276.0 -__stackcall byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 2.0 -byte sum::b -byte sum::b#0 4.0 -byte sum::return -byte sum::return#0 4.0 -__stackcall byte xor(byte xor::a , byte xor::b) -byte xor::a -byte xor::a#0 2.0 -byte xor::b -byte xor::b#0 4.0 -byte xor::return -byte xor::return#0 4.0 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 67.33333333333333 +__stackcall char max(char a , char b) +char max::a +char max::a#0 // 2.0 +char max::b +char max::b#0 // 3.0 +char max::return +char max::return#2 // 6.0 +char max::return#4 // 4.0 +__stackcall char min(char a , char b) +char min::a +char min::a#0 // 2.0 +char min::b +char min::b#0 // 3.0 +char min::return +char min::return#2 // 6.0 +char min::return#4 // 4.0 +void print(char i) +char print::$0 // 20002.0 +char print::$2 // 20002.0 +char print::i +char print::i#0 // 202.0 +char print::i#1 // 2002.0 +char print::i#2 // 5276.0 +__stackcall char sum(char a , char b) +char sum::a +char sum::a#0 // 2.0 +char sum::b +char sum::b#0 // 4.0 +char sum::return +char sum::return#0 // 4.0 +__stackcall char xor(char a , char b) +char xor::a +char xor::a#0 // 2.0 +char xor::b +char xor::b#0 // 4.0 +char xor::return +char xor::return#0 // 4.0 Initial phi equivalence classes [ min::return#2 min::return#4 min::b#0 ] @@ -1082,31 +1082,31 @@ Allocated zp[1]:21 [ sum::return#0 ] Allocated zp[1]:22 [ print::$0 ] Allocated zp[1]:23 [ print::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] line = (byte*) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a -Statement [5] xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) [ xor::a#0 ] ( [ xor::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [6] xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) [ xor::a#0 xor::b#0 ] ( [ xor::a#0 xor::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] line = (char *) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a +Statement [5] xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) [ xor::a#0 ] ( [ xor::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) [ xor::a#0 xor::b#0 ] ( [ xor::a#0 xor::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:14 [ xor::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:14 [ xor::a#0 ] Statement [7] xor::return#0 = xor::a#0 ^ xor::b#0 [ xor::return#0 ] ( [ xor::return#0 ] { } ) always clobbers reg byte a -Statement [8] stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [10] min::a#0 = stackidx(byte,min::OFFSET_STACK_A) [ min::a#0 ] ( [ min::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [11] min::b#0 = stackidx(byte,min::OFFSET_STACK_B) [ min::a#0 min::b#0 ] ( [ min::a#0 min::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [8] stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [10] min::a#0 = stackidx(char,min::OFFSET_STACK_A) [ min::a#0 ] ( [ min::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [11] min::b#0 = stackidx(char,min::OFFSET_STACK_B) [ min::a#0 min::b#0 ] ( [ min::a#0 min::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:17 [ min::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:17 [ min::a#0 ] -Statement [15] stackidx(byte,min::OFFSET_STACK_RETURN_1) = min::return#2 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [17] max::a#0 = stackidx(byte,max::OFFSET_STACK_A) [ max::a#0 ] ( [ max::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [18] max::b#0 = stackidx(byte,max::OFFSET_STACK_B) [ max::a#0 max::b#0 ] ( [ max::a#0 max::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [15] stackidx(char,min::OFFSET_STACK_RETURN_1) = min::return#2 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [17] max::a#0 = stackidx(char,max::OFFSET_STACK_A) [ max::a#0 ] ( [ max::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [18] max::b#0 = stackidx(char,max::OFFSET_STACK_B) [ max::a#0 max::b#0 ] ( [ max::a#0 max::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:18 [ max::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:18 [ max::a#0 ] -Statement [22] stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [24] sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) [ sum::a#0 ] ( [ sum::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [25] sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) [ sum::a#0 sum::b#0 ] ( [ sum::a#0 sum::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [22] stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [24] sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) [ sum::a#0 ] ( [ sum::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [25] sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) [ sum::a#0 sum::b#0 ] ( [ sum::a#0 sum::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:19 [ sum::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:19 [ sum::a#0 ] Statement [26] sum::return#0 = sum::a#0 + sum::b#0 [ sum::return#0 ] ( [ sum::return#0 ] { } ) always clobbers reg byte a -Statement [27] stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [27] stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#0 [ ] ( [ ] { } ) always clobbers reg byte x Statement [54] line = line + $28 [ line ] ( main:3::ln:33 [ line ] { } main:3::ln:37 [ line ] { } main:3::ln:41 [ line ] { } main:3::ln:45 [ line ] { } ) always clobbers reg byte a -Statement [67] stackpush(byte) = INPUT[exec::i#2] [ ] ( main:3::exec:35 [ ] { } main:3::exec:39 [ ] { } main:3::exec:43 [ ] { } main:3::exec:47 [ ] { } ) always clobbers reg byte a +Statement [67] stackpush(char) = INPUT[exec::i#2] [ ] ( main:3::exec:35 [ ] { } main:3::exec:39 [ ] { } main:3::exec:43 [ ] { } main:3::exec:47 [ ] { } ) always clobbers reg byte a Statement [68] callexecute *exec::collect#10 [ line idx#0 exec::i#2 ] ( main:3::exec:35 [ line idx#0 exec::i#2 ] { } main:3::exec:39 [ line idx#0 exec::i#2 ] { } main:3::exec:43 [ line idx#0 exec::i#2 ] { } main:3::exec:47 [ line idx#0 exec::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte a as potential for zp[1]:11 [ idx#27 idx#53 idx#54 idx#0 ] Removing always clobbered register reg byte x as potential for zp[1]:11 [ idx#27 idx#53 idx#54 idx#0 ] @@ -1115,7 +1115,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:7 [ exec::i Removing always clobbered register reg byte x as potential for zp[1]:7 [ exec::i#2 exec::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:7 [ exec::i#2 exec::i#1 ] Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [70] exec::out#1 = stackpull(byte) [ line idx#0 exec::i#2 exec::out#1 ] ( main:3::exec:35 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:39 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:43 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:47 [ line idx#0 exec::i#2 exec::out#1 ] { } ) always clobbers reg byte a +Statement [70] exec::out#1 = stackpull(char) [ line idx#0 exec::i#2 exec::out#1 ] ( main:3::exec:35 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:39 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:43 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:47 [ line idx#0 exec::i#2 exec::out#1 ] { } ) always clobbers reg byte a Statement [77] print::$0 = print::i#2 >> 4 [ line print::i#2 idx#53 print::$0 ] ( main:3::print:50 [ main::i#2 line print::i#2 idx#53 print::$0 ] { { print::i#0 = print::i#2 } { idx#27 = idx#53 idx#54 } { cout::c#0 = cout::c#7 } } main:3::exec:35::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:39::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:43::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:47::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:9 [ print::i#2 print::i#1 print::i#0 ] @@ -1125,28 +1125,28 @@ Statement [85] line[idx#27] = cout::c#7 [ line idx#27 ] ( main:3::cout:52 [ main Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ exec::out#2 exec::out#0 exec::out#1 ] Removing always clobbered register reg byte y as potential for zp[1]:9 [ print::i#2 print::i#1 print::i#0 ] -Statement [1] line = (byte*) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a -Statement [5] xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) [ xor::a#0 ] ( [ xor::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [6] xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) [ xor::a#0 xor::b#0 ] ( [ xor::a#0 xor::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] line = (char *) 1024 [ line ] ( [ line ] { } ) always clobbers reg byte a +Statement [5] xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) [ xor::a#0 ] ( [ xor::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) [ xor::a#0 xor::b#0 ] ( [ xor::a#0 xor::b#0 ] { } ) always clobbers reg byte a reg byte x Statement [7] xor::return#0 = xor::a#0 ^ xor::b#0 [ xor::return#0 ] ( [ xor::return#0 ] { } ) always clobbers reg byte a -Statement [8] stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [10] min::a#0 = stackidx(byte,min::OFFSET_STACK_A) [ min::a#0 ] ( [ min::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [11] min::b#0 = stackidx(byte,min::OFFSET_STACK_B) [ min::a#0 min::b#0 ] ( [ min::a#0 min::b#0 ] { } ) always clobbers reg byte a reg byte x -Statement [15] stackidx(byte,min::OFFSET_STACK_RETURN_1) = min::return#2 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [17] max::a#0 = stackidx(byte,max::OFFSET_STACK_A) [ max::a#0 ] ( [ max::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [18] max::b#0 = stackidx(byte,max::OFFSET_STACK_B) [ max::a#0 max::b#0 ] ( [ max::a#0 max::b#0 ] { } ) always clobbers reg byte a reg byte x -Statement [22] stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [24] sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) [ sum::a#0 ] ( [ sum::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [25] sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) [ sum::a#0 sum::b#0 ] ( [ sum::a#0 sum::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [8] stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [10] min::a#0 = stackidx(char,min::OFFSET_STACK_A) [ min::a#0 ] ( [ min::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [11] min::b#0 = stackidx(char,min::OFFSET_STACK_B) [ min::a#0 min::b#0 ] ( [ min::a#0 min::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [15] stackidx(char,min::OFFSET_STACK_RETURN_1) = min::return#2 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [17] max::a#0 = stackidx(char,max::OFFSET_STACK_A) [ max::a#0 ] ( [ max::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [18] max::b#0 = stackidx(char,max::OFFSET_STACK_B) [ max::a#0 max::b#0 ] ( [ max::a#0 max::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [22] stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [24] sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) [ sum::a#0 ] ( [ sum::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [25] sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) [ sum::a#0 sum::b#0 ] ( [ sum::a#0 sum::b#0 ] { } ) always clobbers reg byte a reg byte x Statement [26] sum::return#0 = sum::a#0 + sum::b#0 [ sum::return#0 ] ( [ sum::return#0 ] { } ) always clobbers reg byte a -Statement [27] stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [27] stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#0 [ ] ( [ ] { } ) always clobbers reg byte x Statement [54] line = line + $28 [ line ] ( main:3::ln:33 [ line ] { } main:3::ln:37 [ line ] { } main:3::ln:41 [ line ] { } main:3::ln:45 [ line ] { } ) always clobbers reg byte a -Statement [64] if(exec::i#2<6*SIZEOF_BYTE) goto exec::@2 [ line exec::i#2 exec::out#2 ] ( main:3::exec:35 [ line exec::i#2 exec::out#2 ] { } main:3::exec:39 [ line exec::i#2 exec::out#2 ] { } main:3::exec:43 [ line exec::i#2 exec::out#2 ] { } main:3::exec:47 [ line exec::i#2 exec::out#2 ] { } ) always clobbers reg byte a -Statement [66] stackpush(byte) = exec::out#2 [ exec::i#2 ] ( main:3::exec:35 [ exec::i#2 ] { } main:3::exec:39 [ exec::i#2 ] { } main:3::exec:43 [ exec::i#2 ] { } main:3::exec:47 [ exec::i#2 ] { } ) always clobbers reg byte a -Statement [67] stackpush(byte) = INPUT[exec::i#2] [ ] ( main:3::exec:35 [ ] { } main:3::exec:39 [ ] { } main:3::exec:43 [ ] { } main:3::exec:47 [ ] { } ) always clobbers reg byte a reg byte y +Statement [64] if(exec::i#2<6*SIZEOF_CHAR) goto exec::@2 [ line exec::i#2 exec::out#2 ] ( main:3::exec:35 [ line exec::i#2 exec::out#2 ] { } main:3::exec:39 [ line exec::i#2 exec::out#2 ] { } main:3::exec:43 [ line exec::i#2 exec::out#2 ] { } main:3::exec:47 [ line exec::i#2 exec::out#2 ] { } ) always clobbers reg byte a +Statement [66] stackpush(char) = exec::out#2 [ exec::i#2 ] ( main:3::exec:35 [ exec::i#2 ] { } main:3::exec:39 [ exec::i#2 ] { } main:3::exec:43 [ exec::i#2 ] { } main:3::exec:47 [ exec::i#2 ] { } ) always clobbers reg byte a +Statement [67] stackpush(char) = INPUT[exec::i#2] [ ] ( main:3::exec:35 [ ] { } main:3::exec:39 [ ] { } main:3::exec:43 [ ] { } main:3::exec:47 [ ] { } ) always clobbers reg byte a reg byte y Statement [68] callexecute *exec::collect#10 [ line idx#0 exec::i#2 ] ( main:3::exec:35 [ line idx#0 exec::i#2 ] { } main:3::exec:39 [ line idx#0 exec::i#2 ] { } main:3::exec:43 [ line idx#0 exec::i#2 ] { } main:3::exec:47 [ line idx#0 exec::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [70] exec::out#1 = stackpull(byte) [ line idx#0 exec::i#2 exec::out#1 ] ( main:3::exec:35 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:39 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:43 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:47 [ line idx#0 exec::i#2 exec::out#1 ] { } ) always clobbers reg byte a +Statement [70] exec::out#1 = stackpull(char) [ line idx#0 exec::i#2 exec::out#1 ] ( main:3::exec:35 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:39 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:43 [ line idx#0 exec::i#2 exec::out#1 ] { } main:3::exec:47 [ line idx#0 exec::i#2 exec::out#1 ] { } ) always clobbers reg byte a Statement [77] print::$0 = print::i#2 >> 4 [ line print::i#2 idx#53 print::$0 ] ( main:3::print:50 [ main::i#2 line print::i#2 idx#53 print::$0 ] { { print::i#0 = print::i#2 } { idx#27 = idx#53 idx#54 } { cout::c#0 = cout::c#7 } } main:3::exec:35::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:39::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:43::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:47::print:72 [ exec::i#2 exec::out#1 line print::i#2 idx#53 print::$0 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } ) always clobbers reg byte a Statement [80] print::$2 = print::i#2 & $f [ line idx#0 print::$2 ] ( main:3::print:50 [ main::i#2 line idx#0 print::$2 ] { { print::i#0 = print::i#2 } { idx#53 = idx#54 } { cout::c#1 = cout::c#7 } { idx#0 = idx#27 } } main:3::exec:35::print:72 [ exec::i#2 exec::out#1 line idx#0 print::$2 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } main:3::exec:39::print:72 [ exec::i#2 exec::out#1 line idx#0 print::$2 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } main:3::exec:43::print:72 [ exec::i#2 exec::out#1 line idx#0 print::$2 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } main:3::exec:47::print:72 [ exec::i#2 exec::out#1 line idx#0 print::$2 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } ) always clobbers reg byte a Statement [85] line[idx#27] = cout::c#7 [ line idx#27 ] ( main:3::cout:52 [ main::i#2 line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:35::cout:57 [ line idx#27 ] { } main:3::exec:39::cout:57 [ line idx#27 ] { } main:3::exec:43::cout:57 [ line idx#27 ] { } main:3::exec:47::cout:57 [ line idx#27 ] { } main:3::exec:35::cout:59 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:39::cout:59 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:43::cout:59 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:47::cout:59 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:35::cout:61 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:39::cout:61 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:43::cout:61 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:47::cout:61 [ line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:35::cout:74 [ exec::i#2 exec::out#1 line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:39::cout:74 [ exec::i#2 exec::out#1 line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:43::cout:74 [ exec::i#2 exec::out#1 line idx#27 ] { { idx#0 = idx#27 } } main:3::exec:47::cout:74 [ exec::i#2 exec::out#1 line idx#27 ] { { idx#0 = idx#27 } } main:3::print:50::cout:79 [ main::i#2 print::i#2 line idx#27 ] { { print::i#0 = print::i#2 } { idx#27 = idx#53 idx#54 } { cout::c#0 = cout::c#7 } } main:3::exec:35::print:72::cout:79 [ exec::i#2 exec::out#1 print::i#2 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:39::print:72::cout:79 [ exec::i#2 exec::out#1 print::i#2 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:43::print:72::cout:79 [ exec::i#2 exec::out#1 print::i#2 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::exec:47::print:72::cout:79 [ exec::i#2 exec::out#1 print::i#2 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#0 = cout::c#7 } } main:3::print:50::cout:82 [ main::i#2 line idx#27 ] { { print::i#0 = print::i#2 } { idx#53 = idx#54 } { cout::c#1 = cout::c#7 } { idx#0 = idx#27 } } main:3::exec:35::print:72::cout:82 [ exec::i#2 exec::out#1 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } main:3::exec:39::print:72::cout:82 [ exec::i#2 exec::out#1 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } main:3::exec:43::print:72::cout:82 [ exec::i#2 exec::out#1 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } main:3::exec:47::print:72::cout:82 [ exec::i#2 exec::out#1 line idx#27 ] { { print::i#1 = print::i#2 exec::out#1 } { idx#0 = idx#53 idx#27 } { cout::c#1 = cout::c#7 } } ) always clobbers reg byte y @@ -1236,7 +1236,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(__start) // Global Constants & labels .const STACK_BASE = $103 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .label line = 8 .label idx = 7 .segment Code @@ -1245,7 +1245,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] line = (byte*) 1024 -- pbuz1=pbuc1 + // [1] line = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -1266,17 +1266,17 @@ __start: { rts } // xor -// xor(byte zp($a) a, byte register(A) b) +// __register(A) char xor(__zp($a) char a, __register(A) char b) xor: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = $a - // [5] xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [5] xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [6] xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [6] xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // [7] xor::return#0 = xor::a#0 ^ xor::b#0 -- vbuaa=vbuz1_bxor_vbuaa @@ -1284,23 +1284,23 @@ xor: { jmp __breturn // xor::@return __breturn: - // [8] stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [8] stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [9] return rts } // min -// min(byte register(Y) a, byte register(A) b) +// __register(A) char min(__register(Y) char a, __register(A) char b) min: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 - // [10] min::a#0 = stackidx(byte,min::OFFSET_STACK_A) -- vbuyy=_stackidxbyte_vbuc1 + // [10] min::a#0 = stackidx(char,min::OFFSET_STACK_A) -- vbuyy=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x tay - // [11] min::b#0 = stackidx(byte,min::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [11] min::b#0 = stackidx(char,min::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // [12] if(min::a#0max::b#0) goto max::@1 -- vbuz1_gt_vbuaa_then_la1 @@ -1354,24 +1354,24 @@ max: { jmp __breturn_from___b1 // max::@return __breturn: - // [22] stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 -- _stackidxbyte_vbuc1=vbuaa + // [22] stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [23] return rts } // sum -// sum(byte zp($c) a, byte register(A) b) +// __register(A) char sum(__zp($c) char a, __register(A) char b) sum: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = $c - // [24] sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [24] sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [25] sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [25] sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // [26] sum::return#0 = sum::a#0 + sum::b#0 -- vbuaa=vbuz1_plus_vbuaa @@ -1380,7 +1380,7 @@ sum: { jmp __breturn // sum::@return __breturn: - // [27] stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [27] stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [28] return @@ -1400,9 +1400,9 @@ main: { jmp __b1 // main::@1 __b1: - // [31] if(main::i#2<6*SIZEOF_BYTE) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 + // [31] if(main::i#2<6*SIZEOF_CHAR) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z i - cmp #6*SIZEOF_BYTE + cmp #6*SIZEOF_CHAR bcc __b2 // [32] phi from main::@1 to main::@3 [phi:main::@1->main::@3] __b3_from___b1: @@ -1545,7 +1545,7 @@ ln: { rts } // exec -// exec(byte(byte,byte)* zp(3) collect) +// void exec(__zp(3) char (*collect)(char, char)) exec: { .label out = 6 .label i = 5 @@ -1598,9 +1598,9 @@ exec: { jmp __b1 // exec::@1 __b1: - // [64] if(exec::i#2<6*SIZEOF_BYTE) goto exec::@2 -- vbuz1_lt_vbuc1_then_la1 + // [64] if(exec::i#2<6*SIZEOF_CHAR) goto exec::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z i - cmp #6*SIZEOF_BYTE + cmp #6*SIZEOF_CHAR bcc __b2 jmp __breturn // exec::@return @@ -1609,10 +1609,10 @@ exec: { rts // exec::@2 __b2: - // [66] stackpush(byte) = exec::out#2 -- _stackpushbyte_=vbuz1 + // [66] stackpush(char) = exec::out#2 -- _stackpushbyte_=vbuz1 lda.z out pha - // [67] stackpush(byte) = INPUT[exec::i#2] -- _stackpushbyte_=pbuc1_derefidx_vbuz1 + // [67] stackpush(char) = INPUT[exec::i#2] -- _stackpushbyte_=pbuc1_derefidx_vbuz1 ldy.z i lda INPUT,y pha @@ -1620,7 +1620,7 @@ exec: { jsr icall1 // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [70] exec::out#1 = stackpull(byte) -- vbuz1=_stackpullbyte_ + // [70] exec::out#1 = stackpull(char) -- vbuz1=_stackpullbyte_ pla sta.z out jmp __b3 @@ -1660,7 +1660,7 @@ exec: { jmp (collect) } // print -// print(byte zp(6) i) +// void print(__zp(6) char i) print: { .label i = 6 // [77] print::$0 = print::i#2 >> 4 -- vbuaa=vbuz1_ror_4 @@ -1700,7 +1700,7 @@ print: { rts } // cout -// cout(byte register(X) c) +// void cout(__register(X) char c) cout: { // [85] line[idx#27] = cout::c#7 -- pbuz1_derefidx_vbuz2=vbuxx ldy.z idx @@ -1831,86 +1831,86 @@ Removing instruction __b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* HEX[] = "0123456789abcdef" -constant byte* INPUT[] = { 2, 1, 3, 4, 6, 5 } -constant byte SIZEOF_BYTE = 1 -constant word STACK_BASE = $103 +__constant char HEX[] = "0123456789abcdef" +__constant char INPUT[] = { 2, 1, 3, 4, 6, 5 } +__constant char SIZEOF_CHAR = 1 +__constant unsigned int STACK_BASE = $103 void __start() -void cout(byte cout::c) -byte cout::c -byte cout::c#0 reg byte x 20002.0 -byte cout::c#1 reg byte x 20002.0 -byte cout::c#7 reg byte x 120003.0 -void exec(byte(byte,byte)* exec::collect) -byte(byte,byte)* exec::collect -byte(byte,byte)* exec::collect#10 collect zp[2]:3 -byte exec::i -byte exec::i#1 i zp[1]:5 2002.0 -byte exec::i#2 i zp[1]:5 400.4 -byte exec::out -byte exec::out#0 out zp[1]:6 202.0 -byte exec::out#1 out zp[1]:6 500.5 -byte exec::out#2 out zp[1]:6 1051.5 -byte idx -byte idx#0 idx zp[1]:7 5352.761904761905 -byte idx#27 idx zp[1]:7 110654.0 -byte idx#53 idx zp[1]:7 3701.0 -byte idx#54 idx zp[1]:7 67.33333333333333 -byte* line loadstore zp[2]:8 1757.982456140351 +void cout(char c) +char cout::c +char cout::c#0 // reg byte x 20002.0 +char cout::c#1 // reg byte x 20002.0 +char cout::c#7 // reg byte x 120003.0 +void exec(char (*collect)(char, char)) +char (*exec::collect)(char, char) +char (*exec::collect#10)(char, char) // collect zp[2]:3 +char exec::i +char exec::i#1 // i zp[1]:5 2002.0 +char exec::i#2 // i zp[1]:5 400.4 +char exec::out +char exec::out#0 // out zp[1]:6 202.0 +char exec::out#1 // out zp[1]:6 500.5 +char exec::out#2 // out zp[1]:6 1051.5 +char idx +char idx#0 // idx zp[1]:7 5352.761904761905 +char idx#27 // idx zp[1]:7 110654.0 +char idx#53 // idx zp[1]:7 3701.0 +char idx#54 // idx zp[1]:7 67.33333333333333 +__loadstore char *line // zp[2]:8 1757.982456140351 void ln() void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 67.33333333333333 -__stackcall byte max(byte max::a , byte max::b) -constant byte max::OFFSET_STACK_A = 1 -constant byte max::OFFSET_STACK_B = 0 -constant byte max::OFFSET_STACK_RETURN_1 = 1 -byte max::a -byte max::a#0 a zp[1]:11 2.0 -byte max::b -byte max::b#0 reg byte a 3.0 -byte max::return -byte max::return#2 reg byte a 6.0 -byte max::return#4 reg byte a 4.0 -__stackcall byte min(byte min::a , byte min::b) -constant byte min::OFFSET_STACK_A = 1 -constant byte min::OFFSET_STACK_B = 0 -constant byte min::OFFSET_STACK_RETURN_1 = 1 -byte min::a -byte min::a#0 reg byte y 2.0 -byte min::b -byte min::b#0 reg byte a 3.0 -byte min::return -byte min::return#2 reg byte a 6.0 -byte min::return#4 reg byte a 4.0 -void print(byte print::i) -byte~ print::$0 reg byte a 20002.0 -byte~ print::$2 reg byte a 20002.0 -byte print::i -byte print::i#0 i zp[1]:6 202.0 -byte print::i#1 i zp[1]:6 2002.0 -byte print::i#2 i zp[1]:6 5276.0 -__stackcall byte sum(byte sum::a , byte sum::b) -constant byte sum::OFFSET_STACK_A = 1 -constant byte sum::OFFSET_STACK_B = 0 -constant byte sum::OFFSET_STACK_RETURN_1 = 1 -byte sum::a -byte sum::a#0 a zp[1]:12 2.0 -byte sum::b -byte sum::b#0 reg byte a 4.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -__stackcall byte xor(byte xor::a , byte xor::b) -constant byte xor::OFFSET_STACK_A = 1 -constant byte xor::OFFSET_STACK_B = 0 -constant byte xor::OFFSET_STACK_RETURN_1 = 1 -byte xor::a -byte xor::a#0 a zp[1]:10 2.0 -byte xor::b -byte xor::b#0 reg byte a 4.0 -byte xor::return -byte xor::return#0 reg byte a 4.0 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 67.33333333333333 +__stackcall char max(char a , char b) +__constant char max::OFFSET_STACK_A = 1 +__constant char max::OFFSET_STACK_B = 0 +__constant char max::OFFSET_STACK_RETURN_1 = 1 +char max::a +char max::a#0 // a zp[1]:11 2.0 +char max::b +char max::b#0 // reg byte a 3.0 +char max::return +char max::return#2 // reg byte a 6.0 +char max::return#4 // reg byte a 4.0 +__stackcall char min(char a , char b) +__constant char min::OFFSET_STACK_A = 1 +__constant char min::OFFSET_STACK_B = 0 +__constant char min::OFFSET_STACK_RETURN_1 = 1 +char min::a +char min::a#0 // reg byte y 2.0 +char min::b +char min::b#0 // reg byte a 3.0 +char min::return +char min::return#2 // reg byte a 6.0 +char min::return#4 // reg byte a 4.0 +void print(char i) +char print::$0 // reg byte a 20002.0 +char print::$2 // reg byte a 20002.0 +char print::i +char print::i#0 // i zp[1]:6 202.0 +char print::i#1 // i zp[1]:6 2002.0 +char print::i#2 // i zp[1]:6 5276.0 +__stackcall char sum(char a , char b) +__constant char sum::OFFSET_STACK_A = 1 +__constant char sum::OFFSET_STACK_B = 0 +__constant char sum::OFFSET_STACK_RETURN_1 = 1 +char sum::a +char sum::a#0 // a zp[1]:12 2.0 +char sum::b +char sum::b#0 // reg byte a 4.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +__stackcall char xor(char a , char b) +__constant char xor::OFFSET_STACK_A = 1 +__constant char xor::OFFSET_STACK_B = 0 +__constant char xor::OFFSET_STACK_RETURN_1 = 1 +char xor::a +char xor::a#0 // a zp[1]:10 2.0 +char xor::b +char xor::b#0 // reg byte a 4.0 +char xor::return +char xor::return#0 // reg byte a 4.0 reg byte a [ min::return#2 min::return#4 min::b#0 ] reg byte a [ max::return#2 max::return#4 max::b#0 ] @@ -1949,7 +1949,7 @@ Score: 1350 :BasicUpstart(__start) // Global Constants & labels .const STACK_BASE = $103 - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .label line = 8 .label idx = 7 .segment Code @@ -1957,7 +1957,7 @@ Score: 1350 __start: { // __start::__init1 // __ma char* line = (char*)0x400 - // [1] line = (byte*) 1024 -- pbuz1=pbuc1 + // [1] line = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -1972,17 +1972,17 @@ __start: { rts } // xor -// xor(byte zp($a) a, byte register(A) b) +// __register(A) char xor(__zp($a) char a, __register(A) char b) xor: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = $a - // [5] xor::a#0 = stackidx(byte,xor::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [5] xor::a#0 = stackidx(char,xor::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [6] xor::b#0 = stackidx(byte,xor::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [6] xor::b#0 = stackidx(char,xor::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // a^b @@ -1990,25 +1990,25 @@ xor: { eor.z a // xor::@return // } - // [8] stackidx(byte,xor::OFFSET_STACK_RETURN_1) = xor::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [8] stackidx(char,xor::OFFSET_STACK_RETURN_1) = xor::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [9] return rts } // min -// min(byte register(Y) a, byte register(A) b) +// __register(A) char min(__register(Y) char a, __register(A) char b) min: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 // return a; - // [10] min::a#0 = stackidx(byte,min::OFFSET_STACK_A) -- vbuyy=_stackidxbyte_vbuc1 + // [10] min::a#0 = stackidx(char,min::OFFSET_STACK_A) -- vbuyy=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x tay // return b; - // [11] min::b#0 = stackidx(byte,min::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [11] min::b#0 = stackidx(char,min::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // if(ab) @@ -2062,24 +2062,24 @@ max: { // max::@return __breturn: // } - // [22] stackidx(byte,max::OFFSET_STACK_RETURN_1) = max::return#2 -- _stackidxbyte_vbuc1=vbuaa + // [22] stackidx(char,max::OFFSET_STACK_RETURN_1) = max::return#2 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [23] return rts } // sum -// sum(byte zp($c) a, byte register(A) b) +// __register(A) char sum(__zp($c) char a, __register(A) char b) sum: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = $c - // [24] sum::a#0 = stackidx(byte,sum::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [24] sum::a#0 = stackidx(char,sum::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [25] sum::b#0 = stackidx(byte,sum::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [25] sum::b#0 = stackidx(char,sum::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // a+b @@ -2088,7 +2088,7 @@ sum: { adc.z a // sum::@return // } - // [27] stackidx(byte,sum::OFFSET_STACK_RETURN_1) = sum::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [27] stackidx(char,sum::OFFSET_STACK_RETURN_1) = sum::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [28] return @@ -2106,9 +2106,9 @@ main: { // main::@1 __b1: // for(char i=0;imain::@3] // main::@3 @@ -2225,7 +2225,7 @@ ln: { rts } // exec -// exec(byte(byte,byte)* zp(3) collect) +// void exec(__zp(3) char (*collect)(char, char)) exec: { .label out = 6 .label i = 5 @@ -2270,9 +2270,9 @@ exec: { // exec::@1 __b1: // for(char i=1;i>4 @@ -2365,7 +2365,7 @@ print: { rts } // cout -// cout(byte register(X) c) +// void cout(__register(X) char c) cout: { // line[idx++] = c // [85] line[idx#27] = cout::c#7 -- pbuz1_derefidx_vbuz2=vbuxx diff --git a/src/test/ref/function-pointer-advanced-1.sym b/src/test/ref/function-pointer-advanced-1.sym index 428ebfba4..3b4e01a2a 100644 --- a/src/test/ref/function-pointer-advanced-1.sym +++ b/src/test/ref/function-pointer-advanced-1.sym @@ -1,83 +1,83 @@ -constant byte* HEX[] = "0123456789abcdef" -constant byte* INPUT[] = { 2, 1, 3, 4, 6, 5 } -constant byte SIZEOF_BYTE = 1 -constant word STACK_BASE = $103 +__constant char HEX[] = "0123456789abcdef" +__constant char INPUT[] = { 2, 1, 3, 4, 6, 5 } +__constant char SIZEOF_CHAR = 1 +__constant unsigned int STACK_BASE = $103 void __start() -void cout(byte cout::c) -byte cout::c -byte cout::c#0 reg byte x 20002.0 -byte cout::c#1 reg byte x 20002.0 -byte cout::c#7 reg byte x 120003.0 -void exec(byte(byte,byte)* exec::collect) -byte(byte,byte)* exec::collect -byte(byte,byte)* exec::collect#10 collect zp[2]:3 -byte exec::i -byte exec::i#1 i zp[1]:5 2002.0 -byte exec::i#2 i zp[1]:5 400.4 -byte exec::out -byte exec::out#0 out zp[1]:6 202.0 -byte exec::out#1 out zp[1]:6 500.5 -byte exec::out#2 out zp[1]:6 1051.5 -byte idx -byte idx#0 idx zp[1]:7 5352.761904761905 -byte idx#27 idx zp[1]:7 110654.0 -byte idx#53 idx zp[1]:7 3701.0 -byte idx#54 idx zp[1]:7 67.33333333333333 -byte* line loadstore zp[2]:8 1757.982456140351 +void cout(char c) +char cout::c +char cout::c#0 // reg byte x 20002.0 +char cout::c#1 // reg byte x 20002.0 +char cout::c#7 // reg byte x 120003.0 +void exec(char (*collect)(char, char)) +char (*exec::collect)(char, char) +char (*exec::collect#10)(char, char) // collect zp[2]:3 +char exec::i +char exec::i#1 // i zp[1]:5 2002.0 +char exec::i#2 // i zp[1]:5 400.4 +char exec::out +char exec::out#0 // out zp[1]:6 202.0 +char exec::out#1 // out zp[1]:6 500.5 +char exec::out#2 // out zp[1]:6 1051.5 +char idx +char idx#0 // idx zp[1]:7 5352.761904761905 +char idx#27 // idx zp[1]:7 110654.0 +char idx#53 // idx zp[1]:7 3701.0 +char idx#54 // idx zp[1]:7 67.33333333333333 +__loadstore char *line // zp[2]:8 1757.982456140351 void ln() void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 67.33333333333333 -__stackcall byte max(byte max::a , byte max::b) -constant byte max::OFFSET_STACK_A = 1 -constant byte max::OFFSET_STACK_B = 0 -constant byte max::OFFSET_STACK_RETURN_1 = 1 -byte max::a -byte max::a#0 a zp[1]:11 2.0 -byte max::b -byte max::b#0 reg byte a 3.0 -byte max::return -byte max::return#2 reg byte a 6.0 -byte max::return#4 reg byte a 4.0 -__stackcall byte min(byte min::a , byte min::b) -constant byte min::OFFSET_STACK_A = 1 -constant byte min::OFFSET_STACK_B = 0 -constant byte min::OFFSET_STACK_RETURN_1 = 1 -byte min::a -byte min::a#0 reg byte y 2.0 -byte min::b -byte min::b#0 reg byte a 3.0 -byte min::return -byte min::return#2 reg byte a 6.0 -byte min::return#4 reg byte a 4.0 -void print(byte print::i) -byte~ print::$0 reg byte a 20002.0 -byte~ print::$2 reg byte a 20002.0 -byte print::i -byte print::i#0 i zp[1]:6 202.0 -byte print::i#1 i zp[1]:6 2002.0 -byte print::i#2 i zp[1]:6 5276.0 -__stackcall byte sum(byte sum::a , byte sum::b) -constant byte sum::OFFSET_STACK_A = 1 -constant byte sum::OFFSET_STACK_B = 0 -constant byte sum::OFFSET_STACK_RETURN_1 = 1 -byte sum::a -byte sum::a#0 a zp[1]:12 2.0 -byte sum::b -byte sum::b#0 reg byte a 4.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -__stackcall byte xor(byte xor::a , byte xor::b) -constant byte xor::OFFSET_STACK_A = 1 -constant byte xor::OFFSET_STACK_B = 0 -constant byte xor::OFFSET_STACK_RETURN_1 = 1 -byte xor::a -byte xor::a#0 a zp[1]:10 2.0 -byte xor::b -byte xor::b#0 reg byte a 4.0 -byte xor::return -byte xor::return#0 reg byte a 4.0 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 67.33333333333333 +__stackcall char max(char a , char b) +__constant char max::OFFSET_STACK_A = 1 +__constant char max::OFFSET_STACK_B = 0 +__constant char max::OFFSET_STACK_RETURN_1 = 1 +char max::a +char max::a#0 // a zp[1]:11 2.0 +char max::b +char max::b#0 // reg byte a 3.0 +char max::return +char max::return#2 // reg byte a 6.0 +char max::return#4 // reg byte a 4.0 +__stackcall char min(char a , char b) +__constant char min::OFFSET_STACK_A = 1 +__constant char min::OFFSET_STACK_B = 0 +__constant char min::OFFSET_STACK_RETURN_1 = 1 +char min::a +char min::a#0 // reg byte y 2.0 +char min::b +char min::b#0 // reg byte a 3.0 +char min::return +char min::return#2 // reg byte a 6.0 +char min::return#4 // reg byte a 4.0 +void print(char i) +char print::$0 // reg byte a 20002.0 +char print::$2 // reg byte a 20002.0 +char print::i +char print::i#0 // i zp[1]:6 202.0 +char print::i#1 // i zp[1]:6 2002.0 +char print::i#2 // i zp[1]:6 5276.0 +__stackcall char sum(char a , char b) +__constant char sum::OFFSET_STACK_A = 1 +__constant char sum::OFFSET_STACK_B = 0 +__constant char sum::OFFSET_STACK_RETURN_1 = 1 +char sum::a +char sum::a#0 // a zp[1]:12 2.0 +char sum::b +char sum::b#0 // reg byte a 4.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +__stackcall char xor(char a , char b) +__constant char xor::OFFSET_STACK_A = 1 +__constant char xor::OFFSET_STACK_B = 0 +__constant char xor::OFFSET_STACK_RETURN_1 = 1 +char xor::a +char xor::a#0 // a zp[1]:10 2.0 +char xor::b +char xor::b#0 // reg byte a 4.0 +char xor::return +char xor::return#0 // reg byte a 4.0 reg byte a [ min::return#2 min::return#4 min::b#0 ] reg byte a [ max::return#2 max::return#4 max::b#0 ] diff --git a/src/test/ref/function-pointer-noarg-2.log b/src/test/ref/function-pointer-noarg-2.log index 9af17aadb..23f866d50 100644 --- a/src/test/ref/function-pointer-noarg-2.log +++ b/src/test/ref/function-pointer-noarg-2.log @@ -44,7 +44,7 @@ fn2::@return: scope:[fn2] from fn2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -55,33 +55,33 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 +__constant char * const fn2::BG_COLOR = (char *)$d021 void main() -number~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +number main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 Adding number conversion cast (unumber) 0 in main::$1 = main::$0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 +Inferred type updated to char in main::$0 = main::i#2 & 1 Alias main::i#2 = main::i#4 Successful SSA optimization Pass2AliasElimination Alias main::i#2 = main::i#3 @@ -109,7 +109,7 @@ Adding number conversion cast (unumber) $65 in [4] if(main::i#1!=$65) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -151,10 +151,10 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.25 +char main::$0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -251,10 +251,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 +char main::$0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-2.sym b/src/test/ref/function-pointer-noarg-2.sym index 851995e7d..00804b4fc 100644 --- a/src/test/ref/function-pointer-noarg-2.sym +++ b/src/test/ref/function-pointer-noarg-2.sym @@ -1,8 +1,8 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 +char main::$0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-3.cfg b/src/test/ref/function-pointer-noarg-3.cfg index c158235fc..225281b07 100644 --- a/src/test/ref/function-pointer-noarg-3.cfg +++ b/src/test/ref/function-pointer-noarg-3.cfg @@ -17,7 +17,7 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [4] main::f = (void()*) 0 + [4] main::f = (void (*)()) 0 to:main::@1 main::@1: scope:[main] from main main::@4 [5] main::i#2 = phi( main/0, main::@4/main::i#1 ) diff --git a/src/test/ref/function-pointer-noarg-3.log b/src/test/ref/function-pointer-noarg-3.log index 5769cca5a..6694229ba 100644 --- a/src/test/ref/function-pointer-noarg-3.log +++ b/src/test/ref/function-pointer-noarg-3.log @@ -8,7 +8,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::f = (void()*) 0 + main::f = (void (*)()) 0 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -57,7 +57,7 @@ fn2::@return: scope:[fn2] from fn2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -67,38 +67,38 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* ff[] = kickasm {{ jmp (main.f) +__constant char ff[] = kickasm {{ jmp (main.f) }} void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 +__constant char * const fn2::BG_COLOR = (char *)$d021 void main() -number~ main::$0 -bool~ main::$1 -void()* volatile main::f loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 +number main::$0 +bool main::$1 +__loadstore void (* volatile main::f)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 Adding number conversion cast (unumber) 1 in main::$0 = main::i#1 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#1 & (unumber)1 Adding number conversion cast (unumber) 0 in main::$1 = main::$0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#1 & 1 +Inferred type updated to char in main::$0 = main::i#1 & 1 Alias main::i#2 = main::i#3 Alias main::i#1 = main::i#5 main::i#6 Successful SSA optimization Pass2AliasElimination @@ -146,7 +146,7 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [4] main::f = (void()*) 0 + [4] main::f = (void (*)()) 0 to:main::@1 main::@1: scope:[main] from main main::@4 [5] main::i#2 = phi( main/0, main::@4/main::i#1 ) @@ -172,11 +172,11 @@ VARIABLE REGISTER WEIGHTS void fn1() void fn2() void main() -byte~ main::$0 22.0 -void()* volatile main::f loadstore 12.0 -byte main::i -byte main::i#1 5.5 -byte main::i#2 22.0 +char main::$0 // 22.0 +__loadstore void (* volatile main::f)() // 12.0 +char main::i +char main::i#1 // 5.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -190,11 +190,11 @@ Allocated zp[1]:2 [ main::i#2 main::i#1 ] Allocated zp[2]:3 [ main::f ] Allocated zp[1]:5 [ main::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] main::f = (void()*) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] main::f = (void (*)()) 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] main::f = &fn2 [ main::f main::i#1 ] ( [ main::f main::i#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [11] main::f = &fn1 [ main::f main::i#1 ] ( [ main::f main::i#1 ] { } ) always clobbers reg byte a -Statement [4] main::f = (void()*) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] main::f = (void (*)()) 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] main::$0 = main::i#1 & 1 [ main::i#1 main::$0 ] ( [ main::i#1 main::$0 ] { } ) always clobbers reg byte a Statement [9] main::f = &fn2 [ main::f main::i#1 ] ( [ main::f main::i#1 ] { } ) always clobbers reg byte a Statement [11] main::f = &fn1 [ main::f main::i#1 ] ( [ main::f main::i#1 ] { } ) always clobbers reg byte a @@ -253,7 +253,7 @@ fn1: { // main main: { .label f = 2 - // [4] main::f = (void()*) 0 -- pprz1=pprc1 + // [4] main::f = (void (*)()) 0 -- pprz1=pprc1 lda #<0 sta.z f lda #>0 @@ -332,18 +332,18 @@ Succesful ASM optimization Pass5UnusedLabelElimination Replacing instruction ldx #0 with TAX FINAL SYMBOL TABLE -constant byte* ff[] = kickasm {{ jmp (main.f) +__constant char ff[] = kickasm {{ jmp (main.f) }} void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 +__constant char * const fn2::BG_COLOR = (char *) 53281 void main() -byte~ main::$0 reg byte a 22.0 -void()* volatile main::f loadstore zp[2]:2 12.0 -byte main::i -byte main::i#1 reg byte x 5.5 -byte main::i#2 reg byte x 22.0 +char main::$0 // reg byte a 22.0 +__loadstore void (* volatile main::f)() // zp[2]:2 12.0 +char main::i +char main::i#1 // reg byte x 5.5 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::f ] @@ -392,7 +392,7 @@ fn1: { main: { .label f = 2 // void (*f)() - // [4] main::f = (void()*) 0 -- pprz1=pprc1 + // [4] main::f = (void (*)()) 0 -- pprz1=pprc1 lda #<0 sta.z f sta.z f+1 diff --git a/src/test/ref/function-pointer-noarg-3.sym b/src/test/ref/function-pointer-noarg-3.sym index d168fe71f..f26961045 100644 --- a/src/test/ref/function-pointer-noarg-3.sym +++ b/src/test/ref/function-pointer-noarg-3.sym @@ -1,15 +1,15 @@ -constant byte* ff[] = kickasm {{ jmp (main.f) +__constant char ff[] = kickasm {{ jmp (main.f) }} void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 +__constant char * const fn2::BG_COLOR = (char *) 53281 void main() -byte~ main::$0 reg byte a 22.0 -void()* volatile main::f loadstore zp[2]:2 12.0 -byte main::i -byte main::i#1 reg byte x 5.5 -byte main::i#2 reg byte x 22.0 +char main::$0 // reg byte a 22.0 +__loadstore void (* volatile main::f)() // zp[2]:2 12.0 +char main::i +char main::i#1 // reg byte x 5.5 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::f ] diff --git a/src/test/ref/function-pointer-noarg-call-10.asm b/src/test/ref/function-pointer-noarg-call-10.asm index 78086e5c8..88d9c7c92 100644 --- a/src/test/ref/function-pointer-noarg-call-10.asm +++ b/src/test/ref/function-pointer-noarg-call-10.asm @@ -61,7 +61,7 @@ main: { // } rts } -// print(byte* zp(2) msg) +// void print(__zp(2) char *msg) print: { .label msg = 2 ldy #0 @@ -80,7 +80,7 @@ print: { // } rts } -// do10(void()* zp(4) fn) +// void do10(__zp(4) void (*fn)()) do10: { .label i = 6 .label fn = 4 diff --git a/src/test/ref/function-pointer-noarg-call-10.cfg b/src/test/ref/function-pointer-noarg-call-10.cfg index 7b6b0a7fa..4bbda20ae 100644 --- a/src/test/ref/function-pointer-noarg-call-10.cfg +++ b/src/test/ref/function-pointer-noarg-call-10.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,7 +17,7 @@ __start::@return: scope:[__start] from __start::@1 void world() world: scope:[world] from [5] phi() - [6] call print + [6] call print to:world::@return world::@return: scope:[world] from world [7] return @@ -26,7 +26,7 @@ world::@return: scope:[world] from world void hello() hello: scope:[hello] from [8] phi() - [9] call print + [9] call print to:hello::@return hello::@return: scope:[hello] from hello [10] return @@ -35,17 +35,17 @@ hello::@return: scope:[hello] from hello void main() main: scope:[main] from __start::@1 [11] phi() - [12] call do10 + [12] call do10 to:main::@1 main::@1: scope:[main] from main [13] phi() - [14] call do10 + [14] call do10 to:main::@return main::@return: scope:[main] from main::@1 [15] return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from hello world [16] print::msg#3 = phi( hello/hello::msg, world/world::msg ) to:print::@1 @@ -60,7 +60,7 @@ print::@return: scope:[print] from print::@1 [22] return to:@return -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main main::@1 [23] do10::fn#3 = phi( main/&hello, main::@1/&world ) to:do10::@1 diff --git a/src/test/ref/function-pointer-noarg-call-10.log b/src/test/ref/function-pointer-noarg-call-10.log index 2300e5d80..6b2b26998 100644 --- a/src/test/ref/function-pointer-noarg-call-10.log +++ b/src/test/ref/function-pointer-noarg-call-10.log @@ -3,7 +3,7 @@ Calling convention STACK_CALL adding prepare/execute/finalize for call *do10::fn CONTROL FLOW GRAPH SSA -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main main::@1 do10::fn#3 = phi( main/do10::fn#0, main::@1/do10::fn#1 ) do10::i#0 = 0 @@ -61,7 +61,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from hello world print::msg#3 = phi( hello/print::msg#0, world/print::msg#1 ) print::i#0 = 0 @@ -95,45 +95,45 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -void do10(void()* do10::fn) -bool~ do10::$1 -void()* do10::fn -void()* do10::fn#0 -void()* do10::fn#1 -void()* do10::fn#2 -void()* do10::fn#3 -void()* do10::fn#4 -byte do10::i -byte do10::i#0 -byte do10::i#1 -byte do10::i#2 -byte do10::i#3 +void do10(void (*fn)()) +bool do10::$1 +void (*do10::fn)() +void (*do10::fn#0)() +void (*do10::fn#1)() +void (*do10::fn#2)() +void (*do10::fn#3)() +void (*do10::fn#4)() +char do10::i +char do10::i#0 +char do10::i#1 +char do10::i#2 +char do10::i#3 void hello() -constant byte* hello::msg[7] = "hello " -volatile byte idx loadstore +__constant char hello::msg[7] = "hello " +__loadstore volatile char idx void main() -void print(byte* print::msg) -bool~ print::$0 -byte print::i -byte print::i#0 -byte print::i#1 -byte print::i#2 -byte* print::msg -byte* print::msg#0 -byte* print::msg#1 -byte* print::msg#2 -byte* print::msg#3 +void print(char *msg) +bool print::$0 +char print::i +char print::i#0 +char print::i#1 +char print::i#2 +char *print::msg +char *print::msg#0 +char *print::msg#1 +char *print::msg#2 +char *print::msg#3 void world() -constant byte* world::msg[7] = "world " +__constant char world::msg[7] = "world " Adding number conversion cast (unumber) 0 in print::$0 = 0 != print::msg#2[print::i#1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias do10::i#2 = do10::i#3 Alias do10::fn#2 = do10::fn#4 @@ -157,7 +157,7 @@ Adding number conversion cast (unumber) $a in if(do10::i#1!=$a) goto do10::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings do10::i#0 Inlining constant with var siblings do10::fn#0 @@ -256,7 +256,7 @@ main::@return: scope:[main] from main::@1 [15] return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from hello world [16] print::msg#3 = phi( hello/hello::msg, world/world::msg ) to:print::@1 @@ -271,7 +271,7 @@ print::@return: scope:[print] from print::@1 [22] return to:@return -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main main::@1 [23] do10::fn#3 = phi( main/&hello, main::@1/&world ) to:do10::@1 @@ -290,21 +290,21 @@ do10::@return: scope:[do10] from do10::@2 VARIABLE REGISTER WEIGHTS void __start() -void do10(void()* do10::fn) -void()* do10::fn -void()* do10::fn#3 -byte do10::i -byte do10::i#1 1501.5 -byte do10::i#2 2002.0 +void do10(void (*fn)()) +void (*do10::fn)() +void (*do10::fn#3)() +char do10::i +char do10::i#1 // 1501.5 +char do10::i#2 // 2002.0 void hello() -volatile byte idx loadstore 38.125 +__loadstore volatile char idx // 38.125 void main() -void print(byte* print::msg) -byte print::i -byte print::i#1 151.5 -byte print::i#2 101.0 -byte* print::msg -byte* print::msg#3 33.666666666666664 +void print(char *msg) +char print::i +char print::i#1 // 151.5 +char print::i#2 // 101.0 +char *print::msg +char *print::msg#3 // 33.666666666666664 void world() Initial phi equivalence classes @@ -483,7 +483,7 @@ main: { rts } // print -// print(byte* zp(2) msg) +// void print(__zp(2) char *msg) print: { .label msg = 2 // [17] phi from print to print::@1 [phi:print->print::@1] @@ -516,7 +516,7 @@ print: { rts } // do10 -// do10(void()* zp(4) fn) +// void do10(__zp(4) void (*fn)()) do10: { .label i = 6 .label fn = 4 @@ -598,26 +598,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -void do10(void()* do10::fn) -void()* do10::fn -void()* do10::fn#3 fn zp[2]:4 -byte do10::i -byte do10::i#1 i zp[1]:6 1501.5 -byte do10::i#2 i zp[1]:6 2002.0 +void do10(void (*fn)()) +void (*do10::fn)() +void (*do10::fn#3)() // fn zp[2]:4 +char do10::i +char do10::i#1 // i zp[1]:6 1501.5 +char do10::i#2 // i zp[1]:6 2002.0 void hello() -constant byte* hello::msg[7] = "hello " -volatile byte idx loadstore zp[1]:7 38.125 +__constant char hello::msg[7] = "hello " +__loadstore volatile char idx // zp[1]:7 38.125 void main() -void print(byte* print::msg) -byte print::i -byte print::i#1 reg byte y 151.5 -byte print::i#2 reg byte y 101.0 -byte* print::msg -byte* print::msg#3 msg zp[2]:2 33.666666666666664 +void print(char *msg) +char print::i +char print::i#1 // reg byte y 151.5 +char print::i#2 // reg byte y 101.0 +char *print::msg +char *print::msg#3 // msg zp[2]:2 33.666666666666664 void world() -constant byte* world::msg[7] = "world " +__constant char world::msg[7] = "world " zp[2]:2 [ print::msg#3 ] reg byte y [ print::i#2 print::i#1 ] @@ -728,7 +728,7 @@ main: { rts } // print -// print(byte* zp(2) msg) +// void print(__zp(2) char *msg) print: { .label msg = 2 // [17] phi from print to print::@1 [phi:print->print::@1] @@ -759,7 +759,7 @@ print: { rts } // do10 -// do10(void()* zp(4) fn) +// void do10(__zp(4) void (*fn)()) do10: { .label i = 6 .label fn = 4 diff --git a/src/test/ref/function-pointer-noarg-call-10.sym b/src/test/ref/function-pointer-noarg-call-10.sym index d88f25766..2543cc4c7 100644 --- a/src/test/ref/function-pointer-noarg-call-10.sym +++ b/src/test/ref/function-pointer-noarg-call-10.sym @@ -1,23 +1,23 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -void do10(void()* do10::fn) -void()* do10::fn -void()* do10::fn#3 fn zp[2]:4 -byte do10::i -byte do10::i#1 i zp[1]:6 1501.5 -byte do10::i#2 i zp[1]:6 2002.0 +void do10(void (*fn)()) +void (*do10::fn)() +void (*do10::fn#3)() // fn zp[2]:4 +char do10::i +char do10::i#1 // i zp[1]:6 1501.5 +char do10::i#2 // i zp[1]:6 2002.0 void hello() -constant byte* hello::msg[7] = "hello " -volatile byte idx loadstore zp[1]:7 38.125 +__constant char hello::msg[7] = "hello " +__loadstore volatile char idx // zp[1]:7 38.125 void main() -void print(byte* print::msg) -byte print::i -byte print::i#1 reg byte y 151.5 -byte print::i#2 reg byte y 101.0 -byte* print::msg -byte* print::msg#3 msg zp[2]:2 33.666666666666664 +void print(char *msg) +char print::i +char print::i#1 // reg byte y 151.5 +char print::i#2 // reg byte y 101.0 +char *print::msg +char *print::msg#3 // msg zp[2]:2 33.666666666666664 void world() -constant byte* world::msg[7] = "world " +__constant char world::msg[7] = "world " zp[2]:2 [ print::msg#3 ] reg byte y [ print::i#2 print::i#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-11.log b/src/test/ref/function-pointer-noarg-call-11.log index d85a38538..a94c21ae3 100644 --- a/src/test/ref/function-pointer-noarg-call-11.log +++ b/src/test/ref/function-pointer-noarg-call-11.log @@ -39,7 +39,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - funcPointer#3 = (void()*) 0 + funcPointer#3 = (void (*)()) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 funcPointer#9 = phi( __start::__init1/funcPointer#3 ) @@ -57,25 +57,25 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -void()* funcPointer -void()* funcPointer#0 -void()* funcPointer#1 -void()* funcPointer#2 -void()* funcPointer#3 -void()* funcPointer#4 -void()* funcPointer#5 -void()* funcPointer#6 -void()* funcPointer#7 -void()* funcPointer#8 -void()* funcPointer#9 +void (*funcPointer)() +void (*funcPointer#0)() +void (*funcPointer#1)() +void (*funcPointer#2)() +void (*funcPointer#3)() +void (*funcPointer#4)() +void (*funcPointer#5)() +void (*funcPointer#6)() +void (*funcPointer#7)() +void (*funcPointer#8)() +void (*funcPointer#9)() void main() void myFunc() -constant byte* const myFunc::BORDER_COLOR = (byte*)$d020 +__constant char * const myFunc::BORDER_COLOR = (char *)$d020 void myFunc2() -constant byte* const myFunc2::BG_COLOR = (byte*)$d021 +__constant char * const myFunc2::BG_COLOR = (char *)$d021 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification Alias funcPointer#1 = funcPointer#6 funcPointer#2 Alias funcPointer#3 = funcPointer#9 @@ -85,7 +85,7 @@ Identical Phi Values funcPointer#4 funcPointer#1 Successful SSA optimization Pass2IdenticalPhiElimination Constant funcPointer#0 = &myFunc Constant funcPointer#1 = &myFunc2 -Constant funcPointer#3 = (void()*) 0 +Constant funcPointer#3 = (void (*)()) 0 Successful SSA optimization Pass2ConstantIdentification Replacing constant pointer function [5] callexecute myFunc Replacing constant pointer function [7] callexecute myFunc2 @@ -144,7 +144,7 @@ myFunc::@return: scope:[myFunc] from myFunc VARIABLE REGISTER WEIGHTS -void()* funcPointer +void (*funcPointer)() void main() __stackcall void myFunc() __stackcall void myFunc2() @@ -234,12 +234,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void()* funcPointer +void (*funcPointer)() void main() __stackcall void myFunc() -constant byte* const myFunc::BORDER_COLOR = (byte*) 53280 +__constant char * const myFunc::BORDER_COLOR = (char *) 53280 __stackcall void myFunc2() -constant byte* const myFunc2::BG_COLOR = (byte*) 53281 +__constant char * const myFunc2::BG_COLOR = (char *) 53281 diff --git a/src/test/ref/function-pointer-noarg-call-11.sym b/src/test/ref/function-pointer-noarg-call-11.sym index 0bf1512dd..488fa35c9 100644 --- a/src/test/ref/function-pointer-noarg-call-11.sym +++ b/src/test/ref/function-pointer-noarg-call-11.sym @@ -1,7 +1,7 @@ -void()* funcPointer +void (*funcPointer)() void main() __stackcall void myFunc() -constant byte* const myFunc::BORDER_COLOR = (byte*) 53280 +__constant char * const myFunc::BORDER_COLOR = (char *) 53280 __stackcall void myFunc2() -constant byte* const myFunc2::BG_COLOR = (byte*) 53281 +__constant char * const myFunc2::BG_COLOR = (char *) 53281 diff --git a/src/test/ref/function-pointer-noarg-call-12.log b/src/test/ref/function-pointer-noarg-call-12.log index 32a6f7552..d11d153a0 100644 --- a/src/test/ref/function-pointer-noarg-call-12.log +++ b/src/test/ref/function-pointer-noarg-call-12.log @@ -49,21 +49,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void __start() -constant void()** addrtable[$100] = { fill( $100, 0) } +__constant void (*addrtable[$100])() = { fill( $100, 0) } void main() -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -void()* main::fn -void()* main::fn#0 -void()* main::fn#1 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +void (*main::fn)() +void (*main::fn#0)() +void (*main::fn#1)() void myFunc() -constant byte* const myFunc::BORDER_COLOR = (byte*)$d020 +__constant char * const myFunc::BORDER_COLOR = (char *)$d020 void myFunc2() -constant byte* const myFunc2::BG_COLOR = (byte*)$d021 +__constant char * const myFunc2::BG_COLOR = (char *)$d021 Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_POINTER Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_POINTER @@ -74,22 +74,22 @@ Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZE Adding number conversion cast (unumber) 1 in main::$5 = 1 * SIZEOF_POINTER Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)1 * SIZEOF_POINTER Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 0 * SIZEOF_POINTER -Inferred type updated to byte in main::$3 = 1 * SIZEOF_POINTER -Inferred type updated to byte in main::$4 = 0 * SIZEOF_POINTER -Inferred type updated to byte in main::$5 = 1 * SIZEOF_POINTER +Inferred type updated to char in main::$2 = 0 * SIZEOF_POINTER +Inferred type updated to char in main::$3 = 1 * SIZEOF_POINTER +Inferred type updated to char in main::$4 = 0 * SIZEOF_POINTER +Inferred type updated to char in main::$5 = 1 * SIZEOF_POINTER Constant right-side identified [4] main::$2 = 0 * SIZEOF_POINTER Constant right-side identified [6] main::$3 = 1 * SIZEOF_POINTER Constant right-side identified [8] main::$4 = 0 * SIZEOF_POINTER @@ -120,8 +120,8 @@ Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(addrtable+1*SIZEOF_POINTER) Consolidated array index constant in *(addrtable+1*SIZEOF_POINTER) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to null:3 null:5 @@ -165,9 +165,9 @@ myFunc::@return: scope:[myFunc] from myFunc VARIABLE REGISTER WEIGHTS void main() -void()* main::fn -void()* main::fn#0 20.0 -void()* main::fn#1 20.0 +void (*main::fn)() +void (*main::fn#0)() // 20.0 +void (*main::fn#1)() // 20.0 void myFunc() void myFunc2() @@ -296,16 +296,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_POINTER = 2 -constant void()** addrtable[$100] = { fill( $100, 0) } +__constant char SIZEOF_POINTER = 2 +__constant void (*addrtable[$100])() = { fill( $100, 0) } void main() -void()* main::fn -void()* main::fn#0 fn zp[2]:2 20.0 -void()* main::fn#1 fn_1 zp[2]:4 20.0 +void (*main::fn)() +void (*main::fn#0)() // fn zp[2]:2 20.0 +void (*main::fn#1)() // fn_1 zp[2]:4 20.0 void myFunc() -constant byte* const myFunc::BORDER_COLOR = (byte*) 53280 +__constant char * const myFunc::BORDER_COLOR = (char *) 53280 void myFunc2() -constant byte* const myFunc2::BG_COLOR = (byte*) 53281 +__constant char * const myFunc2::BG_COLOR = (char *) 53281 zp[2]:2 [ main::fn#0 ] zp[2]:4 [ main::fn#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-12.sym b/src/test/ref/function-pointer-noarg-call-12.sym index 88b6aa843..3b5131eb8 100644 --- a/src/test/ref/function-pointer-noarg-call-12.sym +++ b/src/test/ref/function-pointer-noarg-call-12.sym @@ -1,13 +1,13 @@ -constant byte SIZEOF_POINTER = 2 -constant void()** addrtable[$100] = { fill( $100, 0) } +__constant char SIZEOF_POINTER = 2 +__constant void (*addrtable[$100])() = { fill( $100, 0) } void main() -void()* main::fn -void()* main::fn#0 fn zp[2]:2 20.0 -void()* main::fn#1 fn_1 zp[2]:4 20.0 +void (*main::fn)() +void (*main::fn#0)() // fn zp[2]:2 20.0 +void (*main::fn#1)() // fn_1 zp[2]:4 20.0 void myFunc() -constant byte* const myFunc::BORDER_COLOR = (byte*) 53280 +__constant char * const myFunc::BORDER_COLOR = (char *) 53280 void myFunc2() -constant byte* const myFunc2::BG_COLOR = (byte*) 53281 +__constant char * const myFunc2::BG_COLOR = (char *) 53281 zp[2]:2 [ main::fn#0 ] zp[2]:4 [ main::fn#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-13.asm b/src/test/ref/function-pointer-noarg-call-13.asm index adf328297..f3f873a88 100644 --- a/src/test/ref/function-pointer-noarg-call-13.asm +++ b/src/test/ref/function-pointer-noarg-call-13.asm @@ -40,7 +40,7 @@ main: { // } rts } -// enableDLI(void* zp($80) dliptr) +// void enableDLI(__zp($80) void * volatile dliptr) enableDLI: { .label dliptr = $80 // asm diff --git a/src/test/ref/function-pointer-noarg-call-13.cfg b/src/test/ref/function-pointer-noarg-call-13.cfg index 8a668c14a..ba73c48fb 100644 --- a/src/test/ref/function-pointer-noarg-call-13.cfg +++ b/src/test/ref/function-pointer-noarg-call-13.cfg @@ -17,18 +17,18 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [4] enableDLI::dliptr = (void*)&fn1 - [5] call enableDLI + [4] enableDLI::dliptr = (void *)&fn1 + [5] call enableDLI to:main::@1 main::@1: scope:[main] from main - [6] enableDLI::dliptr = (void*)&fn2 - [7] call enableDLI + [6] enableDLI::dliptr = (void *)&fn2 + [7] call enableDLI to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return -void enableDLI(void* volatile enableDLI::dliptr) +void enableDLI(void * volatile dliptr) enableDLI: scope:[enableDLI] from main main::@1 asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } to:enableDLI::@return diff --git a/src/test/ref/function-pointer-noarg-call-13.log b/src/test/ref/function-pointer-noarg-call-13.log index a0cf5026f..8035feb5b 100644 --- a/src/test/ref/function-pointer-noarg-call-13.log +++ b/src/test/ref/function-pointer-noarg-call-13.log @@ -1,18 +1,18 @@ Resolved forward reference fn1 to void fn1() Resolved forward reference fn2 to void fn2() Setting inferred volatile on symbol affected by address-of: enableDLI::dliptr in asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - enableDLI::dliptr = (void*)&fn1 - call enableDLI + enableDLI::dliptr = (void *)&fn1 + call enableDLI to:main::@1 main::@1: scope:[main] from main - enableDLI::dliptr = (void*)&fn2 - call enableDLI + enableDLI::dliptr = (void *)&fn2 + call enableDLI to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -36,7 +36,7 @@ fn2::@return: scope:[fn2] from fn2 return to:@return -void enableDLI(void* volatile enableDLI::dliptr) +void enableDLI(void * volatile dliptr) enableDLI: scope:[enableDLI] from main main::@1 asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } to:enableDLI::@return @@ -50,7 +50,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -60,12 +60,12 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr void fn1() void fn2() void main() -constant const byte* r = (byte*)$8000 +__constant const char *r = (char *)$8000 Adding number conversion cast (unumber) 1 in *r = 1 Adding number conversion cast (unumber) 2 in *r = 2 @@ -73,12 +73,12 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *r = (unumber)1 Inlining cast *r = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -115,18 +115,18 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [4] enableDLI::dliptr = (void*)&fn1 - [5] call enableDLI + [4] enableDLI::dliptr = (void *)&fn1 + [5] call enableDLI to:main::@1 main::@1: scope:[main] from main - [6] enableDLI::dliptr = (void*)&fn2 - [7] call enableDLI + [6] enableDLI::dliptr = (void *)&fn2 + [7] call enableDLI to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return -void enableDLI(void* volatile enableDLI::dliptr) +void enableDLI(void * volatile dliptr) enableDLI: scope:[enableDLI] from main main::@1 asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } to:enableDLI::@return @@ -136,8 +136,8 @@ enableDLI::@return: scope:[enableDLI] from enableDLI VARIABLE REGISTER WEIGHTS -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore 2.0 +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr // 2.0 void fn1() void fn2() void main() @@ -150,8 +150,8 @@ Allocated zp[2]:128 [ enableDLI::dliptr ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *r = 2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *r = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] enableDLI::dliptr = (void*)&fn1 [ enableDLI::dliptr ] ( [ enableDLI::dliptr ] { } ) always clobbers reg byte a -Statement [6] enableDLI::dliptr = (void*)&fn2 [ enableDLI::dliptr ] ( [ enableDLI::dliptr ] { } ) always clobbers reg byte a +Statement [4] enableDLI::dliptr = (void *)&fn1 [ enableDLI::dliptr ] ( [ enableDLI::dliptr ] { } ) always clobbers reg byte a +Statement [6] enableDLI::dliptr = (void *)&fn2 [ enableDLI::dliptr ] ( [ enableDLI::dliptr ] { } ) always clobbers reg byte a Statement asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } always clobbers reg byte a Potential registers zp[2]:128 [ enableDLI::dliptr ] : zp[2]:128 , @@ -208,22 +208,22 @@ fn1: { } // main main: { - // [4] enableDLI::dliptr = (void*)&fn1 -- pvoz1=pvoc1 + // [4] enableDLI::dliptr = (void *)&fn1 -- pvoz1=pvoc1 lda #fn1 sta.z enableDLI.dliptr+1 - // [5] call enableDLI + // [5] call enableDLI jsr enableDLI jmp __b1 // main::@1 __b1: - // [6] enableDLI::dliptr = (void*)&fn2 -- pvoz1=pvoc1 + // [6] enableDLI::dliptr = (void *)&fn2 -- pvoz1=pvoc1 lda #fn2 sta.z enableDLI.dliptr+1 - // [7] call enableDLI + // [7] call enableDLI jsr enableDLI jmp __breturn // main::@return @@ -232,7 +232,7 @@ main: { rts } // enableDLI -// enableDLI(void* zp($80) dliptr) +// void enableDLI(__zp($80) void * volatile dliptr) enableDLI: { .label dliptr = $80 // asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } @@ -267,12 +267,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore zp[2]:128 2.0 +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr // zp[2]:128 2.0 void fn1() void fn2() void main() -constant const byte* r = (byte*) 32768 +__constant const char *r = (char *) 32768 zp[2]:128 [ enableDLI::dliptr ] @@ -320,21 +320,21 @@ fn1: { // main main: { // enableDLI(&fn1) - // [4] enableDLI::dliptr = (void*)&fn1 -- pvoz1=pvoc1 + // [4] enableDLI::dliptr = (void *)&fn1 -- pvoz1=pvoc1 lda #fn1 sta.z enableDLI.dliptr+1 - // [5] call enableDLI + // [5] call enableDLI jsr enableDLI // main::@1 // enableDLI(&fn2) - // [6] enableDLI::dliptr = (void*)&fn2 -- pvoz1=pvoc1 + // [6] enableDLI::dliptr = (void *)&fn2 -- pvoz1=pvoc1 lda #fn2 sta.z enableDLI.dliptr+1 - // [7] call enableDLI + // [7] call enableDLI jsr enableDLI // main::@return // } @@ -342,7 +342,7 @@ main: { rts } // enableDLI -// enableDLI(void* zp($80) dliptr) +// void enableDLI(__zp($80) void * volatile dliptr) enableDLI: { .label dliptr = $80 // asm diff --git a/src/test/ref/function-pointer-noarg-call-13.sym b/src/test/ref/function-pointer-noarg-call-13.sym index d46269bf9..24995f514 100644 --- a/src/test/ref/function-pointer-noarg-call-13.sym +++ b/src/test/ref/function-pointer-noarg-call-13.sym @@ -1,8 +1,8 @@ -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore zp[2]:128 2.0 +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr // zp[2]:128 2.0 void fn1() void fn2() void main() -constant const byte* r = (byte*) 32768 +__constant const char *r = (char *) 32768 zp[2]:128 [ enableDLI::dliptr ] diff --git a/src/test/ref/function-pointer-noarg-call-14.asm b/src/test/ref/function-pointer-noarg-call-14.asm index e045d631a..8aa28c9ed 100644 --- a/src/test/ref/function-pointer-noarg-call-14.asm +++ b/src/test/ref/function-pointer-noarg-call-14.asm @@ -104,7 +104,7 @@ main: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 __b1: @@ -125,7 +125,7 @@ cputs: { jmp __b1 } // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -199,7 +199,7 @@ gotoxy: { // } rts } -// f1(void()* zp(4) fn) +// void f1(__zp(4) void (*fn)()) f1: { .label fn = 4 // (*fn)() @@ -211,7 +211,7 @@ f1: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -329,7 +329,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($16) destination, void* zp(6) source) +// void * memcpy(__zp($16) void *destination, __zp(6) void *source, unsigned int num) memcpy: { .label src_end = $14 .label dst = $16 @@ -371,7 +371,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $16 .label dst = 6 diff --git a/src/test/ref/function-pointer-noarg-call-14.cfg b/src/test/ref/function-pointer-noarg-call-14.cfg index c778a997a..cd06cf131 100644 --- a/src/test/ref/function-pointer-noarg-call-14.cfg +++ b/src/test/ref/function-pointer-noarg-call-14.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -21,7 +21,7 @@ __start::@return: scope:[__start] from __start::@1 void world() world: scope:[world] from [9] phi() - [10] call cputs + [10] call cputs to:world::@return world::@return: scope:[world] from world [11] return @@ -30,7 +30,7 @@ world::@return: scope:[world] from world void hello() hello: scope:[hello] from [12] phi() - [13] call cputs + [13] call cputs to:hello::@return hello::@return: scope:[hello] from hello [14] return @@ -47,7 +47,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [18] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [19] gotoxy::y#2 = conio_c64_init::line#2 - [20] call gotoxy + [20] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [21] return @@ -56,17 +56,17 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [22] phi() - [23] call f1 + [23] call f1 to:main::@1 main::@1: scope:[main] from main [24] phi() - [25] call f1 + [25] call f1 to:main::@return main::@return: scope:[main] from main::@1 [26] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from hello world [27] cputs::s#4 = phi( hello/hello::s, world/world::s ) to:cputs::@1 @@ -81,10 +81,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [33] cputc::c#0 = cputs::c#1 - [34] call cputc + [34] call cputc to:cputs::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [35] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -97,7 +97,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [38] conio_cursor_x = gotoxy::x#2 [39] conio_cursor_y = gotoxy::y#4 - [40] gotoxy::$7 = (word)gotoxy::y#4 + [40] gotoxy::$7 = (unsigned int)gotoxy::y#4 [41] gotoxy::$8 = gotoxy::$7 << 2 [42] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [43] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -110,7 +110,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [48] return to:@return -void f1(void()* f1::fn) +void f1(void (*fn)()) f1: scope:[f1] from main main::@1 [49] f1::fn#2 = phi( main/&hello, main::@1/&world ) [50] callexecute *f1::fn#2 @@ -119,7 +119,7 @@ f1::@return: scope:[f1] from f1 [51] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [52] if(cputc::c#0==' ') goto cputc::@1 @@ -132,14 +132,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [57] phi() - [58] call cputln + [58] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [59] return to:@return cputc::@1: scope:[cputc] from cputc [60] phi() - [61] call cputln + [61] call cputln to:cputc::@return void cputln() @@ -148,7 +148,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [63] conio_line_color = conio_line_color + $28 [64] conio_cursor_x = 0 [65] conio_cursor_y = ++ conio_cursor_y - [66] call cscroll + [66] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [67] return @@ -160,19 +160,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [69] phi() - [70] call memcpy + [70] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [71] phi() - [72] call memcpy + [72] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [73] phi() - [74] call memset + [74] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [75] phi() - [76] call memset + [76] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [77] conio_line_text = conio_line_text - $28 @@ -183,13 +183,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [80] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [81] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [81] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [82] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [83] memcpy::src#4 = (byte*)memcpy::source#2 - [84] memcpy::dst#4 = (byte*)memcpy::destination#2 + [81] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [81] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [82] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [83] memcpy::src#4 = (char *)memcpy::source#2 + [84] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [85] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -205,14 +205,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [90] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [91] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [91] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [91] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [92] memset::end#0 = (byte*)memset::str#3 + $28 - [93] memset::dst#4 = (byte*)memset::str#3 + [92] memset::end#0 = (char *)memset::str#3 + $28 + [93] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [94] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/function-pointer-noarg-call-14.log b/src/test/ref/function-pointer-noarg-call-14.log index a1505dbc8..cf04224ae 100644 --- a/src/test/ref/function-pointer-noarg-call-14.log +++ b/src/test/ref/function-pointer-noarg-call-14.log @@ -15,14 +15,14 @@ Calling convention STACK_CALL adding prepare/execute/finalize for call *f1::fn CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -52,7 +52,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -69,9 +69,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -95,7 +95,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -119,7 +119,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -134,7 +134,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 cputc::c#1 = phi( cputs::@2/cputc::c#0 ) cputc::$0 = cputc::c#1 == ' @@ -178,7 +178,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from hello world cputs::s#4 = phi( hello/cputs::s#1, world/cputs::s#2 ) cputs::c#0 = 0 @@ -215,28 +215,28 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 call memset @@ -280,7 +280,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void f1(void()* f1::fn) +void f1(void (*fn)()) f1: scope:[f1] from main main::@1 f1::fn#2 = phi( main/f1::fn#0, main::@1/f1::fn#1 ) callexecute *f1::fn#2 @@ -350,173 +350,173 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 -const byte* cputs::s#6 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 +const char *cputs::s#6 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void f1(void()* f1::fn) -void()* f1::fn -void()* f1::fn#0 -void()* f1::fn#1 -void()* f1::fn#2 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void f1(void (*fn)()) +void (*f1::fn)() +void (*f1::fn#0)() +void (*f1::fn#1)() +void (*f1::fn#2)() +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void hello() -constant byte* hello::s[7] = "hello " +__constant char hello::s[7] = "hello " void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 void world() -constant byte* world::s[7] = "world!" +__constant char world::s[7] = "world!" Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#3 > $19 @@ -531,15 +531,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -549,9 +549,9 @@ Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_in Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 @@ -564,9 +564,9 @@ Inlining cast gotoxy::y#1 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast $28 @@ -593,31 +593,31 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [38] gotoxy::$1 = gotoxy::y#3 <= $19 from [37] gotoxy::$0 = gotoxy::y#3 > $19 @@ -682,16 +682,16 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -729,7 +729,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -749,11 +749,11 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[26] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -774,23 +774,23 @@ Inlining constant with var siblings cputs::s#2 Inlining constant with var siblings conio_c64_init::line#1 Inlining constant with var siblings f1::fn#0 Inlining constant with var siblings f1::fn#1 -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined f1::fn#1 = &world Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined f1::fn#0 = &hello Constant inlined cputs::s#1 = hello::s Constant inlined cputs::s#2 = world::s Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined gotoxy::y#0 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined memset::c#0 = ' ' @@ -803,28 +803,28 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [9] if($28<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -990,7 +990,7 @@ main::@return: scope:[main] from main::@1 [26] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from hello world [27] cputs::s#4 = phi( hello/hello::s, world/world::s ) to:cputs::@1 @@ -1008,7 +1008,7 @@ cputs::@2: scope:[cputs] from cputs::@1 [34] call cputc to:cputs::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [35] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -1021,7 +1021,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [38] conio_cursor_x = gotoxy::x#2 [39] conio_cursor_y = gotoxy::y#4 - [40] gotoxy::$7 = (word)gotoxy::y#4 + [40] gotoxy::$7 = (unsigned int)gotoxy::y#4 [41] gotoxy::$8 = gotoxy::$7 << 2 [42] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [43] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -1034,7 +1034,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [48] return to:@return -void f1(void()* f1::fn) +void f1(void (*fn)()) f1: scope:[f1] from main main::@1 [49] f1::fn#2 = phi( main/&hello, main::@1/&world ) [50] callexecute *f1::fn#2 @@ -1043,7 +1043,7 @@ f1::@return: scope:[f1] from f1 [51] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [52] if(cputc::c#0==' ') goto cputc::@1 @@ -1107,13 +1107,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [80] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [81] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [81] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [82] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [83] memcpy::src#4 = (byte*)memcpy::source#2 - [84] memcpy::dst#4 = (byte*)memcpy::destination#2 + [81] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [81] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [82] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [83] memcpy::src#4 = (char *)memcpy::source#2 + [84] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [85] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1129,14 +1129,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [90] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [91] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [91] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [91] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [92] memset::end#0 = (byte*)memset::str#3 + $28 - [93] memset::dst#4 = (byte*)memset::str#3 + [92] memset::end#0 = (char *)memset::str#3 + $28 + [93] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [94] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1154,72 +1154,72 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 719.4761904761905 -byte conio_cursor_y loadstore 8423.894736842105 -byte* conio_line_color loadstore 5818.631578947368 -byte* conio_line_text loadstore 5818.631578947368 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 1051.5 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 719.4761904761905 +__loadstore char conio_cursor_y // 8423.894736842105 +__loadstore char *conio_line_color // 5818.631578947368 +__loadstore char *conio_line_text // 5818.631578947368 +void cputc(char c) +char cputc::c +char cputc::c#0 // 1051.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 101.0 -const byte* cputs::s -const byte* cputs::s#0 50.5 -const byte* cputs::s#3 157.0 -const byte* cputs::s#4 11.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 101.0 +const char *cputs::s +const char *cputs::s#0 // 50.5 +const char *cputs::s#3 // 157.0 +const char *cputs::s#4 // 11.0 void cscroll() -void f1(void()* f1::fn) -void()* f1::fn -void()* f1::fn#2 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void f1(void (*fn)()) +void (*f1::fn)() +void (*f1::fn#2)() +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void hello() void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.00000001E8 -byte* memcpy::dst#2 1.0033333466666667E8 -byte* memcpy::dst#4 2000002.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.00000002E8 -byte* memcpy::src#2 1.0025000125E8 -byte* memcpy::src#4 1000001.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.262500025E7 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.428571442857143E7 -byte* memset::dst -byte* memset::dst#1 2.00000002E8 -byte* memset::dst#2 1.3366666833333334E8 -byte* memset::dst#4 2000002.0 -byte* memset::end -byte* memset::end#0 1.6833333666666668E7 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.00000001E8 +char *memcpy::dst#2 // 1.0033333466666667E8 +char *memcpy::dst#4 // 2000002.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.00000002E8 +char *memcpy::src#2 // 1.0025000125E8 +char *memcpy::src#4 // 1000001.0 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.262500025E7 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.428571442857143E7 +char *memset::dst +char *memset::dst#1 // 2.00000002E8 +char *memset::dst#2 // 1.3366666833333334E8 +char *memset::dst#4 // 2000002.0 +char *memset::end +char *memset::end#0 // 1.6833333666666668E7 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 void world() Initial phi equivalence classes @@ -1307,7 +1307,7 @@ Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg Statement [29] cputs::c#1 = *cputs::s#3 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color cputs::s#3 cputs::c#1 ] ( cputs:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color cputs::s#3 cputs::c#1 ] { } cputs:13 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color cputs::s#3 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y Statement [38] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:20 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [40] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [40] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [41] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:20 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [42] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:20 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [43] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:20 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -1325,14 +1325,14 @@ Statement [64] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [68] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( cputs:10::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [77] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( cputs:10::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [78] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( cputs:10::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [82] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [83] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [84] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [82] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [83] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [84] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [86] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [88] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [92] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [92] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:18 [ memset::c#4 ] -Statement [93] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [93] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [95] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [97] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:18 [ memset::c#4 ] @@ -1342,7 +1342,7 @@ Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [29] cputs::c#1 = *cputs::s#3 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color cputs::s#3 cputs::c#1 ] ( cputs:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color cputs::s#3 cputs::c#1 ] { } cputs:13 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color cputs::s#3 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y Statement [38] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:20 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a -Statement [40] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [40] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [41] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:20 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [42] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:20 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [43] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:20 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:20 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -1360,13 +1360,13 @@ Statement [64] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [68] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( cputs:10::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [77] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( cputs:10::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [78] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( cputs:10::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [82] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [83] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [84] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [82] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [83] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [84] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [86] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [88] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:70 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memcpy:72 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [92] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [93] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [92] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [93] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [95] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [97] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( cputs:10::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:74 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:58::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:10::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } cputs:13::cputc:34::cputln:61::cscroll:66::memset:76 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -1640,7 +1640,7 @@ main: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [28] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -1675,7 +1675,7 @@ cputs: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -1711,7 +1711,7 @@ gotoxy: { sta.z conio_cursor_x // [39] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [40] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [40] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -1773,7 +1773,7 @@ gotoxy: { rts } // f1 -// f1(void()* zp(4) fn) +// void f1(__zp(4) void (*fn)()) f1: { .label fn = 4 // [50] callexecute *f1::fn#2 -- call__deref_pprz1 @@ -1790,7 +1790,7 @@ f1: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [52] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -1879,12 +1879,12 @@ cscroll: { // [70] call memcpy // [81] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [81] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [81] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [81] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [81] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -1898,12 +1898,12 @@ cscroll: { // [72] call memcpy // [81] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [81] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [81] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [81] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [81] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -1919,7 +1919,7 @@ cscroll: { memset_from___b3: // [91] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [91] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [91] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -1935,7 +1935,7 @@ cscroll: { memset_from___b4: // [91] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [91] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [91] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -1971,14 +1971,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($16) destination, void* zp(6) source) +// void * memcpy(__zp($16) void *destination, __zp(6) void *source, unsigned int num) memcpy: { .label src_end = $14 .label dst = $16 .label src = 6 .label source = 6 .label destination = $16 - // [82] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [82] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -1986,8 +1986,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [83] memcpy::src#4 = (byte*)memcpy::source#2 - // [84] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [83] memcpy::src#4 = (char *)memcpy::source#2 + // [84] memcpy::dst#4 = (char *)memcpy::destination#2 // [85] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -2029,7 +2029,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $16 .label dst = 6 @@ -2037,7 +2037,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [92] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [92] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -2045,7 +2045,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [93] memset::dst#4 = (byte*)memset::str#3 + // [93] memset::dst#4 = (char *)memset::str#3 // [94] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2189,86 +2189,86 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:8 719.4761904761905 -byte conio_cursor_y loadstore zp[1]:9 8423.894736842105 -byte* conio_line_color loadstore zp[2]:12 5818.631578947368 -byte* conio_line_text loadstore zp[2]:10 5818.631578947368 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 1051.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:8 719.4761904761905 +__loadstore char conio_cursor_y // zp[1]:9 8423.894736842105 +__loadstore char *conio_line_color // zp[2]:12 5818.631578947368 +__loadstore char *conio_line_text // zp[2]:10 5818.631578947368 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 1051.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 101.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 50.5 -const byte* cputs::s#3 s zp[2]:2 157.0 -const byte* cputs::s#4 s zp[2]:2 11.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 101.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 50.5 +const char *cputs::s#3 // s zp[2]:2 157.0 +const char *cputs::s#4 // s zp[2]:2 11.0 void cscroll() -void f1(void()* f1::fn) -void()* f1::fn -void()* f1::fn#2 fn zp[2]:4 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 202.0 -byte*~ gotoxy::$6 zp[2]:14 202.0 -word~ gotoxy::$7 zp[2]:14 151.5 -word~ gotoxy::$8 zp[2]:16 202.0 -word~ gotoxy::$9 zp[2]:14 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void f1(void (*fn)()) +void (*f1::fn)() +void (*f1::fn#2)() // fn zp[2]:4 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 202.0 +char *gotoxy::$6 // zp[2]:14 202.0 +unsigned int gotoxy::$7 // zp[2]:14 151.5 +unsigned int gotoxy::$8 // zp[2]:16 202.0 +unsigned int gotoxy::$9 // zp[2]:14 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void hello() -constant byte* hello::s[7] = "hello " +__constant char hello::s[7] = "hello " void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:22 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:22 1.00000001E8 -byte* memcpy::dst#2 dst zp[2]:22 1.0033333466666667E8 -byte* memcpy::dst#4 dst zp[2]:22 2000002.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:6 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:6 2.00000002E8 -byte* memcpy::src#2 src zp[2]:6 1.0025000125E8 -byte* memcpy::src#4 src zp[2]:6 1000001.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:20 1.262500025E7 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.428571442857143E7 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2.00000002E8 -byte* memset::dst#2 dst zp[2]:6 1.3366666833333334E8 -byte* memset::dst#4 dst zp[2]:6 2000002.0 -byte* memset::end -byte* memset::end#0 end zp[2]:22 1.6833333666666668E7 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:22 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:22 1.00000001E8 +char *memcpy::dst#2 // dst zp[2]:22 1.0033333466666667E8 +char *memcpy::dst#4 // dst zp[2]:22 2000002.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:6 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:6 2.00000002E8 +char *memcpy::src#2 // src zp[2]:6 1.0025000125E8 +char *memcpy::src#4 // src zp[2]:6 1000001.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:20 1.262500025E7 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.428571442857143E7 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2.00000002E8 +char *memset::dst#2 // dst zp[2]:6 1.3366666833333334E8 +char *memset::dst#4 // dst zp[2]:6 2000002.0 +char *memset::end +char *memset::end#0 // end zp[2]:22 1.6833333666666668E7 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 void world() -constant byte* world::s[7] = "world!" +__constant char world::s[7] = "world!" reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[2]:2 [ cputs::s#3 cputs::s#4 cputs::s#0 ] @@ -2452,7 +2452,7 @@ main: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [28] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -2485,7 +2485,7 @@ cputs: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -2516,7 +2516,7 @@ gotoxy: { // [39] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [40] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [40] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -2581,7 +2581,7 @@ gotoxy: { rts } // f1 -// f1(void()* zp(4) fn) +// void f1(__zp(4) void (*fn)()) f1: { .label fn = 4 // (*fn)() @@ -2598,7 +2598,7 @@ f1: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [52] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -2687,12 +2687,12 @@ cscroll: { // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) // [70] call memcpy // [81] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [81] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [81] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [81] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [81] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -2703,12 +2703,12 @@ cscroll: { // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) // [72] call memcpy // [81] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [81] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [81] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [81] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [81] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -2721,7 +2721,7 @@ cscroll: { // [91] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [91] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [91] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [91] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -2734,7 +2734,7 @@ cscroll: { // [91] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [91] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [91] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [91] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -2771,7 +2771,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($16) destination, void* zp(6) source) +// void * memcpy(__zp($16) void *destination, __zp(6) void *source, unsigned int num) memcpy: { .label src_end = $14 .label dst = $16 @@ -2779,7 +2779,7 @@ memcpy: { .label source = 6 .label destination = $16 // char* src_end = (char*)source+num - // [82] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [82] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -2787,8 +2787,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [83] memcpy::src#4 = (byte*)memcpy::source#2 - // [84] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [83] memcpy::src#4 = (char *)memcpy::source#2 + // [84] memcpy::dst#4 = (char *)memcpy::destination#2 // [85] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [85] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [85] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -2828,14 +2828,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $16 .label dst = 6 .label str = 6 // memset::@1 // char* end = (char*)str + num - // [92] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [92] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -2843,7 +2843,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [93] memset::dst#4 = (byte*)memset::str#3 + // [93] memset::dst#4 = (char *)memset::str#3 // [94] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [94] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/function-pointer-noarg-call-14.sym b/src/test/ref/function-pointer-noarg-call-14.sym index fa8b03d58..93f3870f0 100644 --- a/src/test/ref/function-pointer-noarg-call-14.sym +++ b/src/test/ref/function-pointer-noarg-call-14.sym @@ -1,83 +1,83 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:8 719.4761904761905 -byte conio_cursor_y loadstore zp[1]:9 8423.894736842105 -byte* conio_line_color loadstore zp[2]:12 5818.631578947368 -byte* conio_line_text loadstore zp[2]:10 5818.631578947368 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 1051.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:8 719.4761904761905 +__loadstore char conio_cursor_y // zp[1]:9 8423.894736842105 +__loadstore char *conio_line_color // zp[2]:12 5818.631578947368 +__loadstore char *conio_line_text // zp[2]:10 5818.631578947368 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 1051.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 101.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 50.5 -const byte* cputs::s#3 s zp[2]:2 157.0 -const byte* cputs::s#4 s zp[2]:2 11.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 101.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 50.5 +const char *cputs::s#3 // s zp[2]:2 157.0 +const char *cputs::s#4 // s zp[2]:2 11.0 void cscroll() -void f1(void()* f1::fn) -void()* f1::fn -void()* f1::fn#2 fn zp[2]:4 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 202.0 -byte*~ gotoxy::$6 zp[2]:14 202.0 -word~ gotoxy::$7 zp[2]:14 151.5 -word~ gotoxy::$8 zp[2]:16 202.0 -word~ gotoxy::$9 zp[2]:14 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void f1(void (*fn)()) +void (*f1::fn)() +void (*f1::fn#2)() // fn zp[2]:4 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 202.0 +char *gotoxy::$6 // zp[2]:14 202.0 +unsigned int gotoxy::$7 // zp[2]:14 151.5 +unsigned int gotoxy::$8 // zp[2]:16 202.0 +unsigned int gotoxy::$9 // zp[2]:14 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void hello() -constant byte* hello::s[7] = "hello " +__constant char hello::s[7] = "hello " void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:22 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:22 1.00000001E8 -byte* memcpy::dst#2 dst zp[2]:22 1.0033333466666667E8 -byte* memcpy::dst#4 dst zp[2]:22 2000002.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:6 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:6 2.00000002E8 -byte* memcpy::src#2 src zp[2]:6 1.0025000125E8 -byte* memcpy::src#4 src zp[2]:6 1000001.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:20 1.262500025E7 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.428571442857143E7 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2.00000002E8 -byte* memset::dst#2 dst zp[2]:6 1.3366666833333334E8 -byte* memset::dst#4 dst zp[2]:6 2000002.0 -byte* memset::end -byte* memset::end#0 end zp[2]:22 1.6833333666666668E7 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:22 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:22 1.00000001E8 +char *memcpy::dst#2 // dst zp[2]:22 1.0033333466666667E8 +char *memcpy::dst#4 // dst zp[2]:22 2000002.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:6 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:6 2.00000002E8 +char *memcpy::src#2 // src zp[2]:6 1.0025000125E8 +char *memcpy::src#4 // src zp[2]:6 1000001.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:20 1.262500025E7 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.428571442857143E7 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2.00000002E8 +char *memset::dst#2 // dst zp[2]:6 1.3366666833333334E8 +char *memset::dst#4 // dst zp[2]:6 2000002.0 +char *memset::end +char *memset::end#0 // end zp[2]:22 1.6833333666666668E7 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 void world() -constant byte* world::s[7] = "world!" +__constant char world::s[7] = "world!" reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[2]:2 [ cputs::s#3 cputs::s#4 cputs::s#0 ] diff --git a/src/test/ref/function-pointer-noarg-call-2.log b/src/test/ref/function-pointer-noarg-call-2.log index 609973b70..4db137fb7 100644 --- a/src/test/ref/function-pointer-noarg-call-2.log +++ b/src/test/ref/function-pointer-noarg-call-2.log @@ -6,7 +6,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::f#0 = (void()*) 0 + main::f#0 = (void (*)()) 0 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -66,39 +66,39 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 +__constant char * const fn2::BG_COLOR = (char *)$d021 void main() -number~ main::$0 -bool~ main::$1 -void()* main::f -void()* main::f#0 -void()* main::f#1 -void()* main::f#2 -void()* main::f#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 +number main::$0 +bool main::$1 +void (*main::f)() +void (*main::f#0)() +void (*main::f#1)() +void (*main::f#2)() +void (*main::f#3)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 Adding number conversion cast (unumber) 1 in main::$0 = main::i#1 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#1 & (unumber)1 Adding number conversion cast (unumber) 0 in main::$1 = main::$0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#1 & 1 +Inferred type updated to char in main::$0 = main::i#1 & 1 Alias main::i#2 = main::i#3 Alias main::i#1 = main::i#5 main::i#6 Successful SSA optimization Pass2AliasElimination @@ -106,7 +106,7 @@ Alias main::i#1 = main::i#4 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [7] if(main::$0==0) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::f#0 = (void()*) 0 +Constant main::f#0 = (void (*)()) 0 Constant main::i#0 = 0 Constant main::f#1 = &fn1 Constant main::f#2 = &fn2 @@ -185,12 +185,12 @@ VARIABLE REGISTER WEIGHTS void fn1() void fn2() void main() -byte~ main::$0 22.0 -void()* main::f -void()* main::f#3 -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::$0 // 22.0 +void (*main::f)() +void (*main::f#3)() +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -344,16 +344,16 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 +__constant char * const fn2::BG_COLOR = (char *) 53281 void main() -byte~ main::$0 reg byte a 22.0 -void()* main::f -void()* main::f#3 f zp[2]:3 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 22.0 +char main::$0 // reg byte a 22.0 +void (*main::f)() +void (*main::f#3)() // f zp[2]:3 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 22.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::f#3 ] diff --git a/src/test/ref/function-pointer-noarg-call-2.sym b/src/test/ref/function-pointer-noarg-call-2.sym index 35e57cd1b..984474046 100644 --- a/src/test/ref/function-pointer-noarg-call-2.sym +++ b/src/test/ref/function-pointer-noarg-call-2.sym @@ -1,14 +1,14 @@ void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 +__constant char * const fn2::BG_COLOR = (char *) 53281 void main() -byte~ main::$0 reg byte a 22.0 -void()* main::f -void()* main::f#3 f zp[2]:3 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 22.0 +char main::$0 // reg byte a 22.0 +void (*main::f)() +void (*main::f#3)() // f zp[2]:3 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 22.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::f#3 ] diff --git a/src/test/ref/function-pointer-noarg-call-3.asm b/src/test/ref/function-pointer-noarg-call-3.asm index c914c524c..c9f32a0b8 100644 --- a/src/test/ref/function-pointer-noarg-call-3.asm +++ b/src/test/ref/function-pointer-noarg-call-3.asm @@ -40,7 +40,7 @@ main: { jmp (__0) } // declare getfn as function (char b) returning pointer to function (void) returning void -// getfn(byte register(A) b) +// __zp(3) void (*)() getfn(__register(A) char b) getfn: { .label return = 3 // b&1 diff --git a/src/test/ref/function-pointer-noarg-call-3.cfg b/src/test/ref/function-pointer-noarg-call-3.cfg index 2656452bb..7019e7bf7 100644 --- a/src/test/ref/function-pointer-noarg-call-3.cfg +++ b/src/test/ref/function-pointer-noarg-call-3.cfg @@ -25,7 +25,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 [6] main::i#1 = ++ main::i#2 [7] getfn::b#0 = main::i#1 - [8] call getfn + [8] call getfn [9] getfn::return#0 = getfn::return#3 to:main::@3 main::@3: scope:[main] from main::@2 @@ -33,7 +33,7 @@ main::@3: scope:[main] from main::@2 [11] callexecute *main::$0 to:main::@1 -void()* getfn(byte getfn::b) +void (*)() getfn(char b) getfn: scope:[getfn] from main::@2 [12] getfn::$0 = getfn::b#0 & 1 [13] if(getfn::$0==0) goto getfn::@1 diff --git a/src/test/ref/function-pointer-noarg-call-3.log b/src/test/ref/function-pointer-noarg-call-3.log index e01582965..b80568ed9 100644 --- a/src/test/ref/function-pointer-noarg-call-3.log +++ b/src/test/ref/function-pointer-noarg-call-3.log @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void()* getfn(byte getfn::b) +void (*)() getfn(char b) getfn: scope:[getfn] from main::@2 getfn::b#1 = phi( main::@2/getfn::b#0 ) getfn::$0 = getfn::b#1 & 1 @@ -77,44 +77,44 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 -void()* getfn(byte getfn::b) -number~ getfn::$0 -bool~ getfn::$1 -byte getfn::b -byte getfn::b#0 -byte getfn::b#1 -void()* getfn::return -void()* getfn::return#0 -void()* getfn::return#1 -void()* getfn::return#2 -void()* getfn::return#3 -void()* getfn::return#4 -void()* getfn::return#5 +__constant char * const fn2::BG_COLOR = (char *)$d021 +void (*)() getfn(char b) +number getfn::$0 +bool getfn::$1 +char getfn::b +char getfn::b#0 +char getfn::b#1 +void (*getfn::return)() +void (*getfn::return#0)() +void (*getfn::return#1)() +void (*getfn::return#2)() +void (*getfn::return#3)() +void (*getfn::return#4)() +void (*getfn::return#5)() void main() -void()*~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +void (*main::$0)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) 1 in getfn::$0 = getfn::b#1 & 1 Adding number conversion cast (unumber) getfn::$0 in getfn::$0 = getfn::b#1 & (unumber)1 Adding number conversion cast (unumber) 0 in getfn::$1 = getfn::$0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in getfn::$0 = getfn::b#1 & 1 +Inferred type updated to char in getfn::$0 = getfn::b#1 & 1 Alias main::i#2 = main::i#3 Alias getfn::return#0 = getfn::return#4 Alias main::i#1 = main::i#4 @@ -193,7 +193,7 @@ main::@3: scope:[main] from main::@2 [11] callexecute *main::$0 to:main::@1 -void()* getfn(byte getfn::b) +void (*)() getfn(char b) getfn: scope:[getfn] from main::@2 [12] getfn::$0 = getfn::b#0 & 1 [13] if(getfn::$0==0) goto getfn::@1 @@ -210,18 +210,18 @@ getfn::@return: scope:[getfn] from getfn getfn::@1 VARIABLE REGISTER WEIGHTS void fn1() void fn2() -void()* getfn(byte getfn::b) -byte~ getfn::$0 202.0 -byte getfn::b -byte getfn::b#0 112.0 -void()* getfn::return -void()* getfn::return#0 22.0 -void()* getfn::return#3 3.6666666666666665 +void (*)() getfn(char b) +char getfn::$0 // 202.0 +char getfn::b +char getfn::b#0 // 112.0 +void (*getfn::return)() +void (*getfn::return#0)() // 22.0 +void (*getfn::return#3)() // 3.6666666666666665 void main() -void()*~ main::$0 110.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +void (*main::$0)() // 110.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -351,7 +351,7 @@ main: { } // getfn // declare getfn as function (char b) returning pointer to function (void) returning void -// getfn(byte register(A) b) +// __zp(3) void (*)() getfn(__register(A) char b) getfn: { .label return = 3 // [12] getfn::$0 = getfn::b#0 & 1 -- vbuaa=vbuaa_band_vbuc1 @@ -416,21 +416,21 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -void()* getfn(byte getfn::b) -byte~ getfn::$0 reg byte a 202.0 -byte getfn::b -byte getfn::b#0 reg byte a 112.0 -void()* getfn::return -void()* getfn::return#0 return zp[2]:3 22.0 -void()* getfn::return#3 return zp[2]:3 3.6666666666666665 +__constant char * const fn2::BG_COLOR = (char *) 53281 +void (*)() getfn(char b) +char getfn::$0 // reg byte a 202.0 +char getfn::b +char getfn::b#0 // reg byte a 112.0 +void (*getfn::return)() +void (*getfn::return#0)() // return zp[2]:3 22.0 +void (*getfn::return#3)() // return zp[2]:3 3.6666666666666665 void main() -void()*~ main::$0 zp[2]:3 110.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 22.0 +void (*main::$0)() // zp[2]:3 110.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 22.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ getfn::return#3 getfn::return#0 main::$0 ] @@ -510,7 +510,7 @@ main: { } // getfn // declare getfn as function (char b) returning pointer to function (void) returning void -// getfn(byte register(A) b) +// __zp(3) void (*)() getfn(__register(A) char b) getfn: { .label return = 3 // b&1 diff --git a/src/test/ref/function-pointer-noarg-call-3.sym b/src/test/ref/function-pointer-noarg-call-3.sym index 515ce2e0e..f5b9ea9fa 100644 --- a/src/test/ref/function-pointer-noarg-call-3.sym +++ b/src/test/ref/function-pointer-noarg-call-3.sym @@ -1,19 +1,19 @@ void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -void()* getfn(byte getfn::b) -byte~ getfn::$0 reg byte a 202.0 -byte getfn::b -byte getfn::b#0 reg byte a 112.0 -void()* getfn::return -void()* getfn::return#0 return zp[2]:3 22.0 -void()* getfn::return#3 return zp[2]:3 3.6666666666666665 +__constant char * const fn2::BG_COLOR = (char *) 53281 +void (*)() getfn(char b) +char getfn::$0 // reg byte a 202.0 +char getfn::b +char getfn::b#0 // reg byte a 112.0 +void (*getfn::return)() +void (*getfn::return#0)() // return zp[2]:3 22.0 +void (*getfn::return#3)() // return zp[2]:3 3.6666666666666665 void main() -void()*~ main::$0 zp[2]:3 110.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 22.0 +void (*main::$0)() // zp[2]:3 110.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 22.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ getfn::return#3 getfn::return#0 main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-call-4.log b/src/test/ref/function-pointer-noarg-call-4.log index f4c941fb7..5af3e6e4d 100644 --- a/src/test/ref/function-pointer-noarg-call-4.log +++ b/src/test/ref/function-pointer-noarg-call-4.log @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void()* getfn(byte getfn::b) +void (*)() getfn(char b) getfn: scope:[getfn] from main::@2 getfn::return#1 = &fn1 to:getfn::@return @@ -59,26 +59,26 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 -void()* getfn(byte getfn::b) -byte getfn::b -byte getfn::b#0 -void()* getfn::return -void()* getfn::return#0 -void()* getfn::return#1 -void()* getfn::return#2 -void()* getfn::return#3 -void()* getfn::return#4 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 +void (*)() getfn(char b) +char getfn::b +char getfn::b#0 +void (*getfn::return)() +void (*getfn::return#0)() +void (*getfn::return#1)() +void (*getfn::return#2)() +void (*getfn::return#3)() +void (*getfn::return#4)() void main() -void()*~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +void (*main::$0)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Alias getfn::return#0 = getfn::return#3 @@ -159,9 +159,9 @@ null depth in calling loop Loop head: main::@1 tails: main::@3 blocks: main::@3 VARIABLE REGISTER WEIGHTS __stackcall void fn1() void main() -byte main::i -byte main::i#1 7.333333333333333 -byte main::i#2 22.0 +char main::i +char main::i#1 // 7.333333333333333 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -251,11 +251,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE __stackcall void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void main() -byte main::i -byte main::i#1 reg byte x 7.333333333333333 -byte main::i#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 7.333333333333333 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-4.sym b/src/test/ref/function-pointer-noarg-call-4.sym index 83333e0b9..246bf4cf6 100644 --- a/src/test/ref/function-pointer-noarg-call-4.sym +++ b/src/test/ref/function-pointer-noarg-call-4.sym @@ -1,8 +1,8 @@ __stackcall void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void main() -byte main::i -byte main::i#1 reg byte x 7.333333333333333 -byte main::i#2 reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 7.333333333333333 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-5.log b/src/test/ref/function-pointer-noarg-call-5.log index 17237f8e8..16c4f8c33 100644 --- a/src/test/ref/function-pointer-noarg-call-5.log +++ b/src/test/ref/function-pointer-noarg-call-5.log @@ -49,36 +49,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 -constant void()** fns[2] = { &fn1, &fn2 } +__constant char * const fn2::BG_COLOR = (char *)$d021 +__constant void (*fns[2])() = { &fn1, &fn2 } void main() -number~ main::$0 -number~ main::$2 -void()* main::f -void()* main::f#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +number main::$0 +number main::$2 +void (*main::f)() +void (*main::f#0)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 1 in main::$0 = main::i#1 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#1 & (unumber)1 Adding number conversion cast (unumber) main::$2 in main::$2 = main::$0 * SIZEOF_POINTER Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#1 & 1 -Inferred type updated to byte in main::$2 = main::$0 * SIZEOF_POINTER +Inferred type updated to char in main::$0 = main::i#1 & 1 +Inferred type updated to char in main::$2 = main::$0 * SIZEOF_POINTER Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination Constant main::i#0 = 0 @@ -99,7 +99,7 @@ Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_POINTER Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -148,13 +148,13 @@ VARIABLE REGISTER WEIGHTS void fn1() void fn2() void main() -byte~ main::$0 22.0 -byte~ main::$2 22.0 -void()* main::f -void()* main::f#0 110.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::$0 // 22.0 +char main::$2 // 22.0 +void (*main::f)() +void (*main::f#0)() // 110.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -296,18 +296,18 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -constant void()** fns[2] = { &fn1, &fn2 } +__constant char * const fn2::BG_COLOR = (char *) 53281 +__constant void (*fns[2])() = { &fn1, &fn2 } void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -void()* main::f -void()* main::f#0 f zp[2]:3 110.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 22.0 +char main::$0 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +void (*main::f)() +void (*main::f#0)() // f zp[2]:3 110.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 22.0 zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-call-5.sym b/src/test/ref/function-pointer-noarg-call-5.sym index fdeec464a..9300492f1 100644 --- a/src/test/ref/function-pointer-noarg-call-5.sym +++ b/src/test/ref/function-pointer-noarg-call-5.sym @@ -1,16 +1,16 @@ void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -constant void()** fns[2] = { &fn1, &fn2 } +__constant char * const fn2::BG_COLOR = (char *) 53281 +__constant void (*fns[2])() = { &fn1, &fn2 } void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -void()* main::f -void()* main::f#0 f zp[2]:3 110.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 22.0 +char main::$0 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +void (*main::f)() +void (*main::f#0)() // f zp[2]:3 110.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 22.0 zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/function-pointer-noarg-call-6.cfg b/src/test/ref/function-pointer-noarg-call-6.cfg index 0698def47..3f3904f7a 100644 --- a/src/test/ref/function-pointer-noarg-call-6.cfg +++ b/src/test/ref/function-pointer-noarg-call-6.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::cols#2 = phi( main/(byte*) 55296, main::@3/main::cols#1 ) + [1] main::cols#2 = phi( main/(char *) 55296, main::@3/main::cols#1 ) [2] if(main::cols#2<$d800+$3e8) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 @@ -24,7 +24,7 @@ fn1: scope:[fn1] from main::@2 [8] phi() to:fn1::@1 fn1::@1: scope:[fn1] from fn1 fn1::@2 - [9] fn1::screen#2 = phi( fn1/(byte*) 1024, fn1::@2/fn1::screen#1 ) + [9] fn1::screen#2 = phi( fn1/(char *) 1024, fn1::@2/fn1::screen#1 ) [10] if(fn1::screen#2<$400+$3e8) goto fn1::@2 to:fn1::@return fn1::@return: scope:[fn1] from fn1::@1 diff --git a/src/test/ref/function-pointer-noarg-call-6.log b/src/test/ref/function-pointer-noarg-call-6.log index 6f352507b..f7240cd05 100644 --- a/src/test/ref/function-pointer-noarg-call-6.log +++ b/src/test/ref/function-pointer-noarg-call-6.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void fn1() fn1: scope:[fn1] from - fn1::screen#0 = (byte*)$400 + fn1::screen#0 = (char *)$400 to:fn1::@1 fn1::@1: scope:[fn1] from fn1 fn1::@2 fn1::screen#2 = phi( fn1/fn1::screen#0, fn1::@2/fn1::screen#1 ) @@ -22,7 +22,7 @@ fn1::@return: scope:[fn1] from fn1::@1 void main() main: scope:[main] from __start - main::cols#0 = (byte*)$d800 + main::cols#0 = (char *)$d800 to:main::@1 main::@1: scope:[main] from main main::@3 main::cols#2 = phi( main/main::cols#0, main::@3/main::cols#1 ) @@ -55,36 +55,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -bool~ fn1::$0 -byte* fn1::screen -byte* fn1::screen#0 -byte* fn1::screen#1 -byte* fn1::screen#2 -byte* fn1::screen#3 +bool fn1::$0 +char *fn1::screen +char *fn1::screen#0 +char *fn1::screen#1 +char *fn1::screen#2 +char *fn1::screen#3 void main() -bool~ main::$0 -constant void()* main::cls = &fn1 -byte* main::cols -byte* main::cols#0 -byte* main::cols#1 -byte* main::cols#2 -byte* main::cols#3 -byte* main::cols#4 +bool main::$0 +__constant void (*main::cls)() = &fn1 +char *main::cols +char *main::cols#0 +char *main::cols#1 +char *main::cols#2 +char *main::cols#3 +char *main::cols#4 Adding number conversion cast (unumber) $400+$3e8 in fn1::$0 = fn1::screen#2 < $400+$3e8 Adding number conversion cast (unumber) $d800+$3e8 in main::$0 = main::cols#2 < $d800+$3e8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Successful SSA optimization PassNCastSimplification Alias fn1::screen#2 = fn1::screen#3 Alias main::cols#2 = main::cols#4 main::cols#3 Successful SSA optimization Pass2AliasElimination -Simple Condition fn1::$0 [3] if(fn1::screen#2<(word)$400+$3e8) goto fn1::@2 -Simple Condition main::$0 [10] if(main::cols#2<(word)$d800+$3e8) goto main::@2 +Simple Condition fn1::$0 [3] if(fn1::screen#2<(unsigned int)$400+$3e8) goto fn1::@2 +Simple Condition main::$0 [10] if(main::cols#2<(unsigned int)$d800+$3e8) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant fn1::screen#0 = (byte*) 1024 -Constant main::cols#0 = (byte*) 55296 +Constant fn1::screen#0 = (char *) 1024 +Constant main::cols#0 = (char *) 55296 Successful SSA optimization Pass2ConstantIdentification Replacing constant pointer function [11] callexecute fn1 Successful SSA optimization Pass2ConstantCallPointerIdentification @@ -97,13 +97,13 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings fn1::screen#0 Inlining constant with var siblings main::cols#0 -Constant inlined fn1::screen#0 = (byte*) 1024 -Constant inlined main::cols#0 = (byte*) 55296 +Constant inlined fn1::screen#0 = (char *) 1024 +Constant inlined main::cols#0 = (char *) 55296 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $d800 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $d800 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $400+$3e8 Simplifying constant integer cast $d800+$3e8 @@ -129,7 +129,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::cols#2 = phi( main/(byte*) 55296, main::@3/main::cols#1 ) + [1] main::cols#2 = phi( main/(char *) 55296, main::@3/main::cols#1 ) [2] if(main::cols#2<$d800+$3e8) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 @@ -149,7 +149,7 @@ fn1: scope:[fn1] from main::@2 [8] phi() to:fn1::@1 fn1::@1: scope:[fn1] from fn1 fn1::@2 - [9] fn1::screen#2 = phi( fn1/(byte*) 1024, fn1::@2/fn1::screen#1 ) + [9] fn1::screen#2 = phi( fn1/(char *) 1024, fn1::@2/fn1::screen#1 ) [10] if(fn1::screen#2<$400+$3e8) goto fn1::@2 to:fn1::@return fn1::@return: scope:[fn1] from fn1::@1 @@ -163,13 +163,13 @@ fn1::@2: scope:[fn1] from fn1::@1 VARIABLE REGISTER WEIGHTS __stackcall void fn1() -byte* fn1::screen -byte* fn1::screen#1 20002.0 -byte* fn1::screen#2 16668.333333333332 +char *fn1::screen +char *fn1::screen#1 // 20002.0 +char *fn1::screen#2 // 16668.333333333332 void main() -byte* main::cols -byte* main::cols#1 22.0 -byte* main::cols#2 11.0 +char *main::cols +char *main::cols#1 // 22.0 +char *main::cols#2 // 11.0 Initial phi equivalence classes [ main::cols#2 main::cols#1 ] @@ -215,7 +215,7 @@ main: { .label cols = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::cols#2 = (byte*) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cols#2 = (char *) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$d800 sta.z cols lda #>$d800 @@ -269,7 +269,7 @@ fn1: { .label screen = 4 // [9] phi from fn1 to fn1::@1 [phi:fn1->fn1::@1] __b1_from_fn1: - // [9] phi fn1::screen#2 = (byte*) 1024 [phi:fn1->fn1::@1#0] -- pbuz1=pbuc1 + // [9] phi fn1::screen#2 = (char *) 1024 [phi:fn1->fn1::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -338,13 +338,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE __stackcall void fn1() -byte* fn1::screen -byte* fn1::screen#1 screen zp[2]:4 20002.0 -byte* fn1::screen#2 screen zp[2]:4 16668.333333333332 +char *fn1::screen +char *fn1::screen#1 // screen zp[2]:4 20002.0 +char *fn1::screen#2 // screen zp[2]:4 16668.333333333332 void main() -byte* main::cols -byte* main::cols#1 cols zp[2]:2 22.0 -byte* main::cols#2 cols zp[2]:2 11.0 +char *main::cols +char *main::cols#1 // cols zp[2]:2 22.0 +char *main::cols#2 // cols zp[2]:2 11.0 zp[2]:2 [ main::cols#2 main::cols#1 ] zp[2]:4 [ fn1::screen#2 fn1::screen#1 ] @@ -370,7 +370,7 @@ Score: 6727 main: { .label cols = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::cols#2 = (byte*) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cols#2 = (char *) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$d800 sta.z cols lda #>$d800 @@ -419,7 +419,7 @@ main: { fn1: { .label screen = 4 // [9] phi from fn1 to fn1::@1 [phi:fn1->fn1::@1] - // [9] phi fn1::screen#2 = (byte*) 1024 [phi:fn1->fn1::@1#0] -- pbuz1=pbuc1 + // [9] phi fn1::screen#2 = (char *) 1024 [phi:fn1->fn1::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/function-pointer-noarg-call-6.sym b/src/test/ref/function-pointer-noarg-call-6.sym index e9c9222c0..9d333292a 100644 --- a/src/test/ref/function-pointer-noarg-call-6.sym +++ b/src/test/ref/function-pointer-noarg-call-6.sym @@ -1,11 +1,11 @@ __stackcall void fn1() -byte* fn1::screen -byte* fn1::screen#1 screen zp[2]:4 20002.0 -byte* fn1::screen#2 screen zp[2]:4 16668.333333333332 +char *fn1::screen +char *fn1::screen#1 // screen zp[2]:4 20002.0 +char *fn1::screen#2 // screen zp[2]:4 16668.333333333332 void main() -byte* main::cols -byte* main::cols#1 cols zp[2]:2 22.0 -byte* main::cols#2 cols zp[2]:2 11.0 +char *main::cols +char *main::cols#1 // cols zp[2]:2 22.0 +char *main::cols#2 // cols zp[2]:2 11.0 zp[2]:2 [ main::cols#2 main::cols#1 ] zp[2]:4 [ fn1::screen#2 fn1::screen#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-7.asm b/src/test/ref/function-pointer-noarg-call-7.asm index c6bd3a3e1..f31ba451b 100644 --- a/src/test/ref/function-pointer-noarg-call-7.asm +++ b/src/test/ref/function-pointer-noarg-call-7.asm @@ -40,6 +40,7 @@ main: { // } rts } +// void do10(void (*fn)()) do10: { .label i = 2 lda #0 diff --git a/src/test/ref/function-pointer-noarg-call-7.cfg b/src/test/ref/function-pointer-noarg-call-7.cfg index ca1b06457..10b8f16ea 100644 --- a/src/test/ref/function-pointer-noarg-call-7.cfg +++ b/src/test/ref/function-pointer-noarg-call-7.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -32,13 +32,13 @@ hello::@return: scope:[hello] from hello::@1 void main() main: scope:[main] from __start::@1 [12] phi() - [13] call do10 + [13] call do10 to:main::@return main::@return: scope:[main] from main [14] return to:@return -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main [15] phi() to:do10::@1 diff --git a/src/test/ref/function-pointer-noarg-call-7.log b/src/test/ref/function-pointer-noarg-call-7.log index 23c1d9a0a..c3cd4fd30 100644 --- a/src/test/ref/function-pointer-noarg-call-7.log +++ b/src/test/ref/function-pointer-noarg-call-7.log @@ -3,7 +3,7 @@ Calling convention STACK_CALL adding prepare/execute/finalize for call *do10::fn CONTROL FLOW GRAPH SSA -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main do10::fn#2 = phi( main/do10::fn#0 ) do10::i#0 = 0 @@ -67,37 +67,37 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -void do10(void()* do10::fn) -bool~ do10::$1 -void()* do10::fn -void()* do10::fn#0 -void()* do10::fn#1 -void()* do10::fn#2 -void()* do10::fn#3 -byte do10::i -byte do10::i#0 -byte do10::i#1 -byte do10::i#2 -byte do10::i#3 +void do10(void (*fn)()) +bool do10::$1 +void (*do10::fn)() +void (*do10::fn#0)() +void (*do10::fn#1)() +void (*do10::fn#2)() +void (*do10::fn#3)() +char do10::i +char do10::i#0 +char do10::i#1 +char do10::i#2 +char do10::i#3 void hello() -bool~ hello::$0 -byte hello::i -byte hello::i#0 -byte hello::i#1 -byte hello::i#2 -volatile byte idx loadstore +bool hello::$0 +char hello::i +char hello::i#0 +char hello::i#1 +char hello::i#2 +__loadstore volatile char idx void main() -constant void()* main::f = &hello -constant const byte* msg[] = "hello " +__constant void (*main::f)() = &hello +__constant const char msg[] = "hello " Adding number conversion cast (unumber) 0 in hello::$0 = 0 != msg[hello::i#1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias do10::i#2 = do10::i#3 Alias do10::fn#1 = do10::fn#3 @@ -124,7 +124,7 @@ Adding number conversion cast (unumber) $a in if(do10::i#1!=$a) goto do10::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings do10::i#0 Inlining constant with var siblings hello::i#0 @@ -200,7 +200,7 @@ main::@return: scope:[main] from main [14] return to:@return -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main [15] phi() to:do10::@1 @@ -220,16 +220,16 @@ null depth in calling loop Loop head: do10::@1 tails: do10::@2 blocks: do10::@2 VARIABLE REGISTER WEIGHTS void __start() -void do10(void()* do10::fn) -void()* do10::fn -byte do10::i -byte do10::i#1 1501.5 -byte do10::i#2 1001.0 +void do10(void (*fn)()) +void (*do10::fn)() +char do10::i +char do10::i#1 // 1501.5 +char do10::i#2 // 1001.0 __stackcall void hello() -byte hello::i -byte hello::i#1 150001.5 -byte hello::i#2 100001.0 -volatile byte idx loadstore 20000.333333333336 +char hello::i +char hello::i#1 // 150001.5 +char hello::i#2 // 100001.0 +__loadstore volatile char idx // 20000.333333333336 void main() Initial phi equivalence classes @@ -360,6 +360,7 @@ main: { rts } // do10 +// void do10(void (*fn)()) do10: { .label i = 2 // [16] phi from do10 to do10::@1 [phi:do10->do10::@1] @@ -430,20 +431,20 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -void do10(void()* do10::fn) -void()* do10::fn -byte do10::i -byte do10::i#1 i zp[1]:2 1501.5 -byte do10::i#2 i zp[1]:2 1001.0 +void do10(void (*fn)()) +void (*do10::fn)() +char do10::i +char do10::i#1 // i zp[1]:2 1501.5 +char do10::i#2 // i zp[1]:2 1001.0 __stackcall void hello() -byte hello::i -byte hello::i#1 reg byte x 150001.5 -byte hello::i#2 reg byte x 100001.0 -volatile byte idx loadstore zp[1]:3 20000.333333333336 +char hello::i +char hello::i#1 // reg byte x 150001.5 +char hello::i#2 // reg byte x 100001.0 +__loadstore volatile char idx // zp[1]:3 20000.333333333336 void main() -constant const byte* msg[] = "hello " +__constant const char msg[] = "hello " reg byte x [ hello::i#2 hello::i#1 ] zp[1]:2 [ do10::i#2 do10::i#1 ] @@ -525,6 +526,7 @@ main: { rts } // do10 +// void do10(void (*fn)()) do10: { .label i = 2 // [16] phi from do10 to do10::@1 [phi:do10->do10::@1] diff --git a/src/test/ref/function-pointer-noarg-call-7.sym b/src/test/ref/function-pointer-noarg-call-7.sym index bc6374b52..ec2fbe175 100644 --- a/src/test/ref/function-pointer-noarg-call-7.sym +++ b/src/test/ref/function-pointer-noarg-call-7.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -void do10(void()* do10::fn) -void()* do10::fn -byte do10::i -byte do10::i#1 i zp[1]:2 1501.5 -byte do10::i#2 i zp[1]:2 1001.0 +void do10(void (*fn)()) +void (*do10::fn)() +char do10::i +char do10::i#1 // i zp[1]:2 1501.5 +char do10::i#2 // i zp[1]:2 1001.0 __stackcall void hello() -byte hello::i -byte hello::i#1 reg byte x 150001.5 -byte hello::i#2 reg byte x 100001.0 -volatile byte idx loadstore zp[1]:3 20000.333333333336 +char hello::i +char hello::i#1 // reg byte x 150001.5 +char hello::i#2 // reg byte x 100001.0 +__loadstore volatile char idx // zp[1]:3 20000.333333333336 void main() -constant const byte* msg[] = "hello " +__constant const char msg[] = "hello " reg byte x [ hello::i#2 hello::i#1 ] zp[1]:2 [ do10::i#2 do10::i#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-8.asm b/src/test/ref/function-pointer-noarg-call-8.asm index 1822d00f5..670281ab7 100644 --- a/src/test/ref/function-pointer-noarg-call-8.asm +++ b/src/test/ref/function-pointer-noarg-call-8.asm @@ -56,6 +56,7 @@ main: { // } rts } +// void do10(void (*fn)()) do10: { .label i = 2 lda #0 diff --git a/src/test/ref/function-pointer-noarg-call-8.cfg b/src/test/ref/function-pointer-noarg-call-8.cfg index b69a9573e..0cde36700 100644 --- a/src/test/ref/function-pointer-noarg-call-8.cfg +++ b/src/test/ref/function-pointer-noarg-call-8.cfg @@ -4,12 +4,12 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] msg = (byte*) 0 + [1] msg = (char *) 0 [2] idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -33,17 +33,17 @@ hello::@return: scope:[hello] from hello::@1 void main() main: scope:[main] from __start::@1 [13] msg = msg1 - [14] call do10 + [14] call do10 to:main::@1 main::@1: scope:[main] from main [15] msg = msg2 - [16] call do10 + [16] call do10 to:main::@return main::@return: scope:[main] from main::@1 [17] return to:@return -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main main::@1 [18] phi() to:do10::@1 diff --git a/src/test/ref/function-pointer-noarg-call-8.log b/src/test/ref/function-pointer-noarg-call-8.log index 1701ef039..c79c914cc 100644 --- a/src/test/ref/function-pointer-noarg-call-8.log +++ b/src/test/ref/function-pointer-noarg-call-8.log @@ -3,7 +3,7 @@ Calling convention STACK_CALL adding prepare/execute/finalize for call *do10::fn CONTROL FLOW GRAPH SSA -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main main::@1 do10::fn#3 = phi( main/do10::fn#0, main::@1/do10::fn#1 ) do10::i#0 = 0 @@ -61,7 +61,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - msg = (byte*) 0 + msg = (char *) 0 idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 @@ -74,40 +74,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -void do10(void()* do10::fn) -bool~ do10::$1 -void()* do10::fn -void()* do10::fn#0 -void()* do10::fn#1 -void()* do10::fn#2 -void()* do10::fn#3 -void()* do10::fn#4 -byte do10::i -byte do10::i#0 -byte do10::i#1 -byte do10::i#2 -byte do10::i#3 +void do10(void (*fn)()) +bool do10::$1 +void (*do10::fn)() +void (*do10::fn#0)() +void (*do10::fn#1)() +void (*do10::fn#2)() +void (*do10::fn#3)() +void (*do10::fn#4)() +char do10::i +char do10::i#0 +char do10::i#1 +char do10::i#2 +char do10::i#3 void hello() -bool~ hello::$0 -byte hello::i -byte hello::i#0 -byte hello::i#1 -byte hello::i#2 -volatile byte idx loadstore +bool hello::$0 +char hello::i +char hello::i#0 +char hello::i#1 +char hello::i#2 +__loadstore volatile char idx void main() -constant void()* main::f = &hello -byte* volatile msg loadstore -constant const byte* msg1[] = "hello " -constant const byte* msg2[] = "world " +__constant void (*main::f)() = &hello +__loadstore char * volatile msg +__constant const char msg1[] = "hello " +__constant const char msg2[] = "world " Adding number conversion cast (unumber) 0 in hello::$0 = 0 != msg[hello::i#1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias do10::i#2 = do10::i#3 Alias do10::fn#2 = do10::fn#4 @@ -128,7 +128,7 @@ Adding number conversion cast (unumber) $a in if(do10::i#1!=$a) goto do10::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings do10::i#0 Inlining constant with var siblings do10::fn#0 @@ -178,7 +178,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] msg = (byte*) 0 + [1] msg = (char *) 0 [2] idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 @@ -217,7 +217,7 @@ main::@return: scope:[main] from main::@1 [17] return to:@return -void do10(void()* do10::fn) +void do10(void (*fn)()) do10: scope:[do10] from main main::@1 [18] phi() to:do10::@1 @@ -237,18 +237,18 @@ null depth in calling loop Loop head: do10::@1 tails: do10::@2 blocks: do10::@2 VARIABLE REGISTER WEIGHTS void __start() -void do10(void()* do10::fn) -void()* do10::fn -byte do10::i -byte do10::i#1 1501.5 -byte do10::i#2 1001.0 +void do10(void (*fn)()) +void (*do10::fn)() +char do10::i +char do10::i#1 // 1501.5 +char do10::i#2 // 1001.0 __stackcall void hello() -byte hello::i -byte hello::i#1 150001.5 -byte hello::i#2 100001.0 -volatile byte idx loadstore 16666.944444444445 +char hello::i +char hello::i#1 // 150001.5 +char hello::i#2 // 100001.0 +__loadstore volatile char idx // 16666.944444444445 void main() -byte* volatile msg loadstore 14287.571428571428 +__loadstore char * volatile msg // 14287.571428571428 Initial phi equivalence classes [ hello::i#2 hello::i#1 ] @@ -265,7 +265,7 @@ Allocated zp[1]:3 [ do10::i#2 do10::i#1 ] Allocated zp[2]:4 [ msg ] Allocated zp[1]:6 [ idx ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] msg = (byte*) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] msg = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] idx = 0 [ idx ] ( [ idx ] { } ) always clobbers reg byte a Statement [8] SCREEN[idx] = msg[hello::i#2] [ msg idx hello::i#2 ] ( main:4::do10:14::hello:20 [ do10::i#2 msg idx hello::i#2 ] { } main:4::do10:16::hello:20 [ do10::i#2 msg idx hello::i#2 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:3 [ do10::i#2 do10::i#1 ] @@ -275,7 +275,7 @@ Removing always clobbered register reg byte x as potential for zp[1]:2 [ hello:: Statement [11] if(0!=msg[hello::i#1]) goto hello::@1 [ msg idx hello::i#1 ] ( main:4::do10:14::hello:20 [ do10::i#2 msg idx hello::i#1 ] { } main:4::do10:16::hello:20 [ do10::i#2 msg idx hello::i#1 ] { } ) always clobbers reg byte a Statement [13] msg = msg1 [ msg idx ] ( main:4 [ msg idx ] { } ) always clobbers reg byte a Statement [15] msg = msg2 [ msg idx ] ( main:4 [ msg idx ] { } ) always clobbers reg byte a -Statement [1] msg = (byte*) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] msg = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] idx = 0 [ idx ] ( [ idx ] { } ) always clobbers reg byte a Statement [8] SCREEN[idx] = msg[hello::i#2] [ msg idx hello::i#2 ] ( main:4::do10:14::hello:20 [ do10::i#2 msg idx hello::i#2 ] { } main:4::do10:16::hello:20 [ do10::i#2 msg idx hello::i#2 ] { } ) always clobbers reg byte a reg byte x Statement [11] if(0!=msg[hello::i#1]) goto hello::@1 [ msg idx hello::i#1 ] ( main:4::do10:14::hello:20 [ do10::i#2 msg idx hello::i#1 ] { } main:4::do10:16::hello:20 [ do10::i#2 msg idx hello::i#1 ] { } ) always clobbers reg byte a @@ -328,7 +328,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] msg = (byte*) 0 -- pbuz1=pbuc1 + // [1] msg = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z msg lda #>0 @@ -410,6 +410,7 @@ main: { rts } // do10 +// void do10(void (*fn)()) do10: { .label i = 2 // [19] phi from do10 to do10::@1 [phi:do10->do10::@1] @@ -487,22 +488,22 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -void do10(void()* do10::fn) -void()* do10::fn -byte do10::i -byte do10::i#1 i zp[1]:2 1501.5 -byte do10::i#2 i zp[1]:2 1001.0 +void do10(void (*fn)()) +void (*do10::fn)() +char do10::i +char do10::i#1 // i zp[1]:2 1501.5 +char do10::i#2 // i zp[1]:2 1001.0 __stackcall void hello() -byte hello::i -byte hello::i#1 reg byte y 150001.5 -byte hello::i#2 reg byte y 100001.0 -volatile byte idx loadstore zp[1]:5 16666.944444444445 +char hello::i +char hello::i#1 // reg byte y 150001.5 +char hello::i#2 // reg byte y 100001.0 +__loadstore volatile char idx // zp[1]:5 16666.944444444445 void main() -byte* volatile msg loadstore zp[2]:3 14287.571428571428 -constant const byte* msg1[] = "hello " -constant const byte* msg2[] = "world " +__loadstore char * volatile msg // zp[2]:3 14287.571428571428 +__constant const char msg1[] = "hello " +__constant const char msg2[] = "world " reg byte y [ hello::i#2 hello::i#1 ] zp[1]:2 [ do10::i#2 do10::i#1 ] @@ -533,7 +534,7 @@ Score: 633 __start: { // __start::__init1 // byte* volatile msg - // [1] msg = (byte*) 0 -- pbuz1=pbuc1 + // [1] msg = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z msg sta.z msg+1 @@ -606,6 +607,7 @@ main: { rts } // do10 +// void do10(void (*fn)()) do10: { .label i = 2 // [19] phi from do10 to do10::@1 [phi:do10->do10::@1] diff --git a/src/test/ref/function-pointer-noarg-call-8.sym b/src/test/ref/function-pointer-noarg-call-8.sym index 6a5966ba0..abb391e6a 100644 --- a/src/test/ref/function-pointer-noarg-call-8.sym +++ b/src/test/ref/function-pointer-noarg-call-8.sym @@ -1,19 +1,19 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -void do10(void()* do10::fn) -void()* do10::fn -byte do10::i -byte do10::i#1 i zp[1]:2 1501.5 -byte do10::i#2 i zp[1]:2 1001.0 +void do10(void (*fn)()) +void (*do10::fn)() +char do10::i +char do10::i#1 // i zp[1]:2 1501.5 +char do10::i#2 // i zp[1]:2 1001.0 __stackcall void hello() -byte hello::i -byte hello::i#1 reg byte y 150001.5 -byte hello::i#2 reg byte y 100001.0 -volatile byte idx loadstore zp[1]:5 16666.944444444445 +char hello::i +char hello::i#1 // reg byte y 150001.5 +char hello::i#2 // reg byte y 100001.0 +__loadstore volatile char idx // zp[1]:5 16666.944444444445 void main() -byte* volatile msg loadstore zp[2]:3 14287.571428571428 -constant const byte* msg1[] = "hello " -constant const byte* msg2[] = "world " +__loadstore char * volatile msg // zp[2]:3 14287.571428571428 +__constant const char msg1[] = "hello " +__constant const char msg2[] = "world " reg byte y [ hello::i#2 hello::i#1 ] zp[1]:2 [ do10::i#2 do10::i#1 ] diff --git a/src/test/ref/function-pointer-noarg-call-9.log b/src/test/ref/function-pointer-noarg-call-9.log index dba377543..e11a1a25c 100644 --- a/src/test/ref/function-pointer-noarg-call-9.log +++ b/src/test/ref/function-pointer-noarg-call-9.log @@ -43,14 +43,14 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void fn1() -volatile byte idx loadstore +__loadstore volatile char idx void main() -constant void()* main::f = &fn1 +__constant void (*main::f)() = &fn1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Replacing constant pointer function [2] callexecute fn1 Replacing constant pointer function [4] callexecute fn1 @@ -117,7 +117,7 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void __start() __stackcall void fn1() -volatile byte idx loadstore 28.25 +__loadstore volatile char idx // 28.25 void main() Initial phi equivalence classes @@ -243,10 +243,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void fn1() -volatile byte idx loadstore zp[1]:2 28.25 +__loadstore volatile char idx // zp[1]:2 28.25 void main() zp[1]:2 [ idx ] diff --git a/src/test/ref/function-pointer-noarg-call-9.sym b/src/test/ref/function-pointer-noarg-call-9.sym index 320e30a2a..e55b53d52 100644 --- a/src/test/ref/function-pointer-noarg-call-9.sym +++ b/src/test/ref/function-pointer-noarg-call-9.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void fn1() -volatile byte idx loadstore zp[1]:2 28.25 +__loadstore volatile char idx // zp[1]:2 28.25 void main() zp[1]:2 [ idx ] diff --git a/src/test/ref/function-pointer-noarg-call.log b/src/test/ref/function-pointer-noarg-call.log index 220c6f697..a2ef1d169 100644 --- a/src/test/ref/function-pointer-noarg-call.log +++ b/src/test/ref/function-pointer-noarg-call.log @@ -31,11 +31,11 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void main() -constant void()* main::f = &fn1 +__constant void (*main::f)() = &fn1 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 Successful SSA optimization PassNCastSimplification Replacing constant pointer function [2] callexecute fn1 Successful SSA optimization Pass2ConstantCallPointerIdentification @@ -138,7 +138,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE __stackcall void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void main() diff --git a/src/test/ref/function-pointer-noarg-call.sym b/src/test/ref/function-pointer-noarg-call.sym index fa60011d5..95f66e1c0 100644 --- a/src/test/ref/function-pointer-noarg-call.sym +++ b/src/test/ref/function-pointer-noarg-call.sym @@ -1,4 +1,4 @@ __stackcall void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void main() diff --git a/src/test/ref/function-pointer-noarg.cfg b/src/test/ref/function-pointer-noarg.cfg index d4bb97233..13584fda0 100644 --- a/src/test/ref/function-pointer-noarg.cfg +++ b/src/test/ref/function-pointer-noarg.cfg @@ -17,10 +17,10 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [4] *main::SCREEN = byte0 (word)&fn1 - [5] *(main::SCREEN+1) = byte1 (word)&fn1 - [6] *(main::SCREEN+2) = byte0 (word)&fn2 - [7] *(main::SCREEN+3) = byte1 (word)&fn2 + [4] *main::SCREEN = byte0 (unsigned int)&fn1 + [5] *(main::SCREEN+1) = byte1 (unsigned int)&fn1 + [6] *(main::SCREEN+2) = byte0 (unsigned int)&fn2 + [7] *(main::SCREEN+3) = byte1 (unsigned int)&fn2 to:main::@return main::@return: scope:[main] from main [8] return diff --git a/src/test/ref/function-pointer-noarg.log b/src/test/ref/function-pointer-noarg.log index 94f4753ea..b63c7f633 100644 --- a/src/test/ref/function-pointer-noarg.log +++ b/src/test/ref/function-pointer-noarg.log @@ -5,16 +5,16 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::f#0 = (void()*) 0 + main::f#0 = (void (*)()) 0 main::f#1 = &fn1 - main::$0 = byte0 (word)main::f#1 + main::$0 = byte0 (unsigned int)main::f#1 main::SCREEN[0] = main::$0 - main::$1 = byte1 (word)main::f#1 + main::$1 = byte1 (unsigned int)main::f#1 main::SCREEN[1] = main::$1 main::f#2 = &fn2 - main::$2 = byte0 (word)main::f#2 + main::$2 = byte0 (unsigned int)main::f#2 main::SCREEN[2] = main::$2 - main::$3 = byte1 (word)main::f#2 + main::$3 = byte1 (unsigned int)main::f#2 main::SCREEN[3] = main::$3 to:main::@return main::@return: scope:[main] from main @@ -39,7 +39,7 @@ fn2::@return: scope:[fn2] from fn2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -50,46 +50,46 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 +__constant char * const fn1::BORDER_COLOR = (char *)$d020 void fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 +__constant char * const fn2::BG_COLOR = (char *)$d021 void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -constant byte* const main::SCREEN = (byte*)$400 -void()* main::f -void()* main::f#0 -void()* main::f#1 -void()* main::f#2 +char main::$0 +char main::$1 +char main::$2 +char main::$3 +__constant char * const main::SCREEN = (char *)$400 +void (*main::f)() +void (*main::f#0)() +void (*main::f#1)() +void (*main::f#2)() Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$1 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$2 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant main::f#0 = (void()*) 0 +Constant main::f#0 = (void (*)()) 0 Constant main::f#1 = &fn1 Constant main::f#2 = &fn2 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::f#1 in [2] main::$0 = byte0 (word)main::f#1 -Constant value identified (word)main::f#1 in [4] main::$1 = byte1 (word)main::f#1 -Constant value identified (word)main::f#2 in [7] main::$2 = byte0 (word)main::f#2 -Constant value identified (word)main::f#2 in [9] main::$3 = byte1 (word)main::f#2 +Constant value identified (unsigned int)main::f#1 in [2] main::$0 = byte0 (unsigned int)main::f#1 +Constant value identified (unsigned int)main::f#1 in [4] main::$1 = byte1 (unsigned int)main::f#1 +Constant value identified (unsigned int)main::f#2 in [7] main::$2 = byte0 (unsigned int)main::f#2 +Constant value identified (unsigned int)main::f#2 in [9] main::$3 = byte1 (unsigned int)main::f#2 Successful SSA optimization Pass2ConstantValues Simplifying expression containing zero main::SCREEN in [3] main::SCREEN[0] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -100,24 +100,24 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [0] main::$0 = byte0 (word)main::f#1 -Constant right-side identified [2] main::$1 = byte1 (word)main::f#1 -Constant right-side identified [4] main::$2 = byte0 (word)main::f#2 -Constant right-side identified [6] main::$3 = byte1 (word)main::f#2 +Constant right-side identified [0] main::$0 = byte0 (unsigned int)main::f#1 +Constant right-side identified [2] main::$1 = byte1 (unsigned int)main::f#1 +Constant right-side identified [4] main::$2 = byte0 (unsigned int)main::f#2 +Constant right-side identified [6] main::$3 = byte1 (unsigned int)main::f#2 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = byte0 (word)main::f#1 -Constant main::$1 = byte1 (word)main::f#1 -Constant main::$2 = byte0 (word)main::f#2 -Constant main::$3 = byte1 (word)main::f#2 +Constant main::$0 = byte0 (unsigned int)main::f#1 +Constant main::$1 = byte1 (unsigned int)main::f#1 +Constant main::$2 = byte0 (unsigned int)main::f#2 +Constant main::$3 = byte1 (unsigned int)main::f#2 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::f#1 Inlining constant with different constant siblings main::f#2 Constant inlined main::f#2 = &fn2 -Constant inlined main::$3 = byte1 (word)&fn2 -Constant inlined main::$1 = byte1 (word)&fn1 -Constant inlined main::$2 = byte0 (word)&fn2 +Constant inlined main::$3 = byte1 (unsigned int)&fn2 +Constant inlined main::$1 = byte1 (unsigned int)&fn1 +Constant inlined main::$2 = byte0 (unsigned int)&fn2 Constant inlined main::f#1 = &fn1 -Constant inlined main::$0 = byte0 (word)&fn1 +Constant inlined main::$0 = byte0 (unsigned int)&fn1 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+2) @@ -148,10 +148,10 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [4] *main::SCREEN = byte0 (word)&fn1 - [5] *(main::SCREEN+1) = byte1 (word)&fn1 - [6] *(main::SCREEN+2) = byte0 (word)&fn2 - [7] *(main::SCREEN+3) = byte1 (word)&fn2 + [4] *main::SCREEN = byte0 (unsigned int)&fn1 + [5] *(main::SCREEN+1) = byte1 (unsigned int)&fn1 + [6] *(main::SCREEN+2) = byte0 (unsigned int)&fn2 + [7] *(main::SCREEN+3) = byte1 (unsigned int)&fn2 to:main::@return main::@return: scope:[main] from main [8] return @@ -162,15 +162,15 @@ VARIABLE REGISTER WEIGHTS void fn1() void fn2() void main() -void()* main::f +void (*main::f)() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *main::SCREEN = byte0 (word)&fn1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *(main::SCREEN+1) = byte1 (word)&fn1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *(main::SCREEN+2) = byte0 (word)&fn2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *(main::SCREEN+3) = byte1 (word)&fn2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *main::SCREEN = byte0 (unsigned int)&fn1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *(main::SCREEN+1) = byte1 (unsigned int)&fn1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *(main::SCREEN+2) = byte0 (unsigned int)&fn2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *(main::SCREEN+3) = byte1 (unsigned int)&fn2 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -222,16 +222,16 @@ fn1: { // main main: { .label SCREEN = $400 - // [4] *main::SCREEN = byte0 (word)&fn1 -- _deref_pbuc1=vbuc2 + // [4] *main::SCREEN = byte0 (unsigned int)&fn1 -- _deref_pbuc1=vbuc2 lda #fn1 sta SCREEN+1 - // [6] *(main::SCREEN+2) = byte0 (word)&fn2 -- _deref_pbuc1=vbuc2 + // [6] *(main::SCREEN+2) = byte0 (unsigned int)&fn2 -- _deref_pbuc1=vbuc2 lda #fn2 sta SCREEN+3 jmp __breturn @@ -254,12 +254,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 +__constant char * const fn2::BG_COLOR = (char *) 53281 void main() -constant byte* const main::SCREEN = (byte*) 1024 -void()* main::f +__constant char * const main::SCREEN = (char *) 1024 +void (*main::f)() @@ -305,19 +305,19 @@ fn1: { main: { .label SCREEN = $400 // SCREEN[0] = BYTE0((word)f) - // [4] *main::SCREEN = byte0 (word)&fn1 -- _deref_pbuc1=vbuc2 + // [4] *main::SCREEN = byte0 (unsigned int)&fn1 -- _deref_pbuc1=vbuc2 lda #fn1 sta SCREEN+1 // SCREEN[2] = BYTE0((word)f) - // [6] *(main::SCREEN+2) = byte0 (word)&fn2 -- _deref_pbuc1=vbuc2 + // [6] *(main::SCREEN+2) = byte0 (unsigned int)&fn2 -- _deref_pbuc1=vbuc2 lda #fn2 sta SCREEN+3 // main::@return diff --git a/src/test/ref/function-pointer-noarg.sym b/src/test/ref/function-pointer-noarg.sym index 3740fb33e..7a77e1057 100644 --- a/src/test/ref/function-pointer-noarg.sym +++ b/src/test/ref/function-pointer-noarg.sym @@ -1,8 +1,8 @@ void fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 +__constant char * const fn1::BORDER_COLOR = (char *) 53280 void fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 +__constant char * const fn2::BG_COLOR = (char *) 53281 void main() -constant byte* const main::SCREEN = (byte*) 1024 -void()* main::f +__constant char * const main::SCREEN = (char *) 1024 +void (*main::f)() diff --git a/src/test/ref/function-pointer-param-0.asm b/src/test/ref/function-pointer-param-0.asm index 012b538d3..29b0451a3 100644 --- a/src/test/ref/function-pointer-param-0.asm +++ b/src/test/ref/function-pointer-param-0.asm @@ -11,7 +11,7 @@ .const STACK_BASE = $103 .label SCREEN = $400 .segment Code -// fn3(byte register(A) e) +// void fn3(__register(A) char e) fn3: { .const OFFSET_STACK_E = 0 tsx @@ -23,7 +23,7 @@ fn3: { // } rts } -// fn2(byte register(A) d) +// void fn2(__register(A) char d) fn2: { .const OFFSET_STACK_D = 0 tsx @@ -35,7 +35,7 @@ fn2: { // } rts } -// fn1(byte register(A) c) +// void fn1(__register(A) char c) fn1: { .const OFFSET_STACK_C = 0 tsx diff --git a/src/test/ref/function-pointer-param-0.cfg b/src/test/ref/function-pointer-param-0.cfg index 051b9c72e..68f482f6d 100644 --- a/src/test/ref/function-pointer-param-0.cfg +++ b/src/test/ref/function-pointer-param-0.cfg @@ -1,25 +1,25 @@ -__stackcall void fn3(byte fn3::e) +__stackcall void fn3(char e) fn3: scope:[fn3] from - [0] fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) + [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) [1] SCREEN[fn3::e#0] = 'c' to:fn3::@return fn3::@return: scope:[fn3] from fn3 [2] return to:@return -__stackcall void fn2(byte fn2::d) +__stackcall void fn2(char d) fn2: scope:[fn2] from - [3] fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) + [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) [4] SCREEN[fn2::d#0] = 'b' to:fn2::@return fn2::@return: scope:[fn2] from fn2 [5] return to:@return -__stackcall void fn1(byte fn1::c) +__stackcall void fn1(char c) fn1: scope:[fn1] from - [6] fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) + [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) [7] SCREEN[fn1::c#0] = 'a' to:fn1::@return fn1::@return: scope:[fn1] from fn1 @@ -42,7 +42,7 @@ main::@2: scope:[main] from main::@1 [14] if(main::$1!=0) goto main::@3 to:main::@7 main::@7: scope:[main] from main::@2 - [15] stackpush(byte) = main::i#2 + [15] stackpush(char) = main::i#2 [16] callexecute fn3 sideeffect stackpullbytes(1) to:main::@4 @@ -58,7 +58,7 @@ main::@5: scope:[main] from main::@3 to:main::@6 main::@6: scope:[main] from main::@3 main::@5 [22] main::f#3 = phi( main::@5/&fn1, main::@3/&fn2 ) - [23] stackpush(byte) = main::i#2 + [23] stackpush(char) = main::i#2 [24] callexecute *main::f#3 sideeffect stackpullbytes(1) to:main::@4 diff --git a/src/test/ref/function-pointer-param-0.log b/src/test/ref/function-pointer-param-0.log index 4331cde5c..e716199e7 100644 --- a/src/test/ref/function-pointer-param-0.log +++ b/src/test/ref/function-pointer-param-0.log @@ -1,23 +1,23 @@ -Resolved forward reference fn1 to void fn1(byte fn1::c) -Resolved forward reference fn2 to void fn2(byte fn2::d) -Setting inferred __stackcall on procedure affected by address-of __stackcall void fn1(byte fn1::c) caused by statement main::f = &fn1 -Setting inferred __stackcall on procedure affected by address-of __stackcall void fn2(byte fn2::d) caused by statement main::f = &fn2 +Resolved forward reference fn1 to void fn1(char c) +Resolved forward reference fn2 to void fn2(char d) +Setting inferred __stackcall on procedure affected by address-of __stackcall void fn1(char c) caused by statement main::f = &fn1 +Setting inferred __stackcall on procedure affected by address-of __stackcall void fn2(char d) caused by statement main::f = &fn2 Adding parameter assignment in __stackcall procedure fn1::c = param(fn1::c) Adding parameter assignment in __stackcall procedure fn2::d = param(fn2::d) Adding parameter assignment in __stackcall procedure fn3::e = param(fn3::e) Calling convention __stackcall adding prepare/execute/finalize for call fn3(main::i) Calling convention STACK_CALL adding prepare/execute/finalize for call *main::f main::i -Calling convention STACK_CALL replacing param(fn1::c) with stackidx(byte,fn1::OFFSET_STACK_C) -Calling convention STACK_CALL replacing param(fn2::d) with stackidx(byte,fn2::OFFSET_STACK_D) -Calling convention STACK_CALL replacing param(fn3::e) with stackidx(byte,fn3::OFFSET_STACK_E) -Calling convention STACK_CALL adding stack push stackpush(byte) = main::i -Calling convention STACK_CALL adding stack push stackpush(byte) = main::i +Calling convention STACK_CALL replacing param(fn1::c) with stackidx(char,fn1::OFFSET_STACK_C) +Calling convention STACK_CALL replacing param(fn2::d) with stackidx(char,fn2::OFFSET_STACK_D) +Calling convention STACK_CALL replacing param(fn3::e) with stackidx(char,fn3::OFFSET_STACK_E) +Calling convention STACK_CALL adding stack push stackpush(char) = main::i +Calling convention STACK_CALL adding stack push stackpush(char) = main::i CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::f#0 = (void(byte)*) 0 + main::f#0 = (void (*)(char)) 0 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -40,7 +40,7 @@ main::@3: scope:[main] from main::@2 to:main::@8 main::@7: scope:[main] from main::@2 main::i#5 = phi( main::@2/main::i#3 ) - stackpush(byte) = main::i#5 + stackpush(char) = main::i#5 callexecute fn3 sideeffect stackpullbytes(1) to:main::@4 @@ -59,7 +59,7 @@ main::@8: scope:[main] from main::@3 main::@6: scope:[main] from main::@5 main::@8 main::f#3 = phi( main::@5/main::f#1, main::@8/main::f#2 ) main::i#7 = phi( main::@5/main::i#8, main::@8/main::i#9 ) - stackpush(byte) = main::i#7 + stackpush(char) = main::i#7 callexecute *main::f#3 sideeffect stackpullbytes(1) to:main::@4 @@ -67,27 +67,27 @@ main::@return: scope:[main] from main::@1 return to:@return -__stackcall void fn1(byte fn1::c) +__stackcall void fn1(char c) fn1: scope:[fn1] from - fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) + fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) SCREEN[fn1::c#0] = 'a' to:fn1::@return fn1::@return: scope:[fn1] from fn1 return to:@return -__stackcall void fn2(byte fn2::d) +__stackcall void fn2(char d) fn2: scope:[fn2] from - fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) + fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) SCREEN[fn2::d#0] = 'b' to:fn2::@return fn2::@return: scope:[fn2] from fn2 return to:@return -__stackcall void fn3(byte fn3::e) +__stackcall void fn3(char e) fn3: scope:[fn3] from - fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) + fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) SCREEN[fn3::e#0] = 'c' to:fn3::@return fn3::@return: scope:[fn3] from fn3 @@ -105,44 +105,44 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *)$400 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall void fn1(byte fn1::c) -constant byte fn1::OFFSET_STACK_C = 0 -byte fn1::c -byte fn1::c#0 -__stackcall void fn2(byte fn2::d) -constant byte fn2::OFFSET_STACK_D = 0 -byte fn2::d -byte fn2::d#0 -__stackcall void fn3(byte fn3::e) -constant byte fn3::OFFSET_STACK_E = 0 -byte fn3::e -byte fn3::e#0 +__stackcall void fn1(char c) +__constant char fn1::OFFSET_STACK_C = 0 +char fn1::c +char fn1::c#0 +__stackcall void fn2(char d) +__constant char fn2::OFFSET_STACK_D = 0 +char fn2::d +char fn2::d#0 +__stackcall void fn3(char e) +__constant char fn3::OFFSET_STACK_E = 0 +char fn3::e +char fn3::e#0 void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -number~ main::$5 -bool~ main::$6 -void(byte)* main::f -void(byte)* main::f#0 -void(byte)* main::f#1 -void(byte)* main::f#2 -void(byte)* main::f#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 +bool main::$0 +number main::$1 +bool main::$2 +bool main::$3 +number main::$5 +bool main::$6 +void (*main::f)(char) +void (*main::f#0)(char) +void (*main::f#1)(char) +void (*main::f#2)(char) +void (*main::f#3)(char) +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 Adding number conversion cast (unumber) $a0 in main::$0 = main::i#2 < $a0 Adding number conversion cast (unumber) 1 in main::$1 = main::i#3 & 1 @@ -152,21 +152,21 @@ Adding number conversion cast (unumber) 3 in main::$5 = main::i#4 & 3 Adding number conversion cast (unumber) main::$5 in main::$5 = main::i#4 & (unumber)3 Adding number conversion cast (unumber) 1 in main::$6 = main::$5 == 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 3 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#3 & 1 -Inferred type updated to byte in main::$5 = main::i#4 & 3 +Inferred type updated to char in main::$1 = main::i#3 & 1 +Inferred type updated to char in main::$5 = main::i#4 & 3 Inversing boolean not [8] main::$3 = main::$1 != 0 from [7] main::$2 = main::$1 == 0 Successful SSA optimization Pass2UnaryNotSimplification Alias main::i#2 = main::i#3 main::i#4 main::i#5 main::i#8 main::i#9 @@ -179,7 +179,7 @@ Simple Condition main::$0 [4] if(main::i#2<$a0) goto main::@2 Simple Condition main::$3 [7] if(main::$1!=0) goto main::@3 Simple Condition main::$6 [10] if(main::$5==1) goto main::@5 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::f#0 = (void(byte)*) 0 +Constant main::f#0 = (void (*)(char)) 0 Constant main::i#0 = 0 Constant main::f#1 = &fn1 Constant main::f#2 = &fn2 @@ -198,8 +198,8 @@ Constant inlined main::i#0 = 0 Constant inlined main::f#2 = &fn2 Constant inlined main::f#1 = &fn1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@8 @@ -216,27 +216,27 @@ Adding NOP phi() at start of main::@5 FINAL CONTROL FLOW GRAPH -__stackcall void fn3(byte fn3::e) +__stackcall void fn3(char e) fn3: scope:[fn3] from - [0] fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) + [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) [1] SCREEN[fn3::e#0] = 'c' to:fn3::@return fn3::@return: scope:[fn3] from fn3 [2] return to:@return -__stackcall void fn2(byte fn2::d) +__stackcall void fn2(char d) fn2: scope:[fn2] from - [3] fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) + [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) [4] SCREEN[fn2::d#0] = 'b' to:fn2::@return fn2::@return: scope:[fn2] from fn2 [5] return to:@return -__stackcall void fn1(byte fn1::c) +__stackcall void fn1(char c) fn1: scope:[fn1] from - [6] fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) + [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) [7] SCREEN[fn1::c#0] = 'a' to:fn1::@return fn1::@return: scope:[fn1] from fn1 @@ -259,7 +259,7 @@ main::@2: scope:[main] from main::@1 [14] if(main::$1!=0) goto main::@3 to:main::@7 main::@7: scope:[main] from main::@2 - [15] stackpush(byte) = main::i#2 + [15] stackpush(char) = main::i#2 [16] callexecute fn3 sideeffect stackpullbytes(1) to:main::@4 @@ -275,7 +275,7 @@ main::@5: scope:[main] from main::@3 to:main::@6 main::@6: scope:[main] from main::@3 main::@5 [22] main::f#3 = phi( main::@5/&fn1, main::@3/&fn2 ) - [23] stackpush(byte) = main::i#2 + [23] stackpush(char) = main::i#2 [24] callexecute *main::f#3 sideeffect stackpullbytes(1) to:main::@4 @@ -283,23 +283,23 @@ main::@6: scope:[main] from main::@3 main::@5 null depth in calling loop Loop head: main::@1 tails: main::@4 blocks: main::@4 main::@6 main::@7 main::@3 main::@5 main::@2 main::@1 in scope fn3 VARIABLE REGISTER WEIGHTS -__stackcall void fn1(byte fn1::c) -byte fn1::c -byte fn1::c#0 4.0 -__stackcall void fn2(byte fn2::d) -byte fn2::d -byte fn2::d#0 4.0 -__stackcall void fn3(byte fn3::e) -byte fn3::e -byte fn3::e#0 202.0 +__stackcall void fn1(char c) +char fn1::c +char fn1::c#0 // 4.0 +__stackcall void fn2(char d) +char fn2::d +char fn2::d#0 // 4.0 +__stackcall void fn3(char e) +char fn3::e +char fn3::e#0 // 202.0 void main() -byte~ main::$1 22.0 -byte~ main::$5 22.0 -void(byte)* main::f -void(byte)* main::f#3 -byte main::i -byte main::i#1 22.0 -byte main::i#2 5.9230769230769225 +char main::$1 // 22.0 +char main::$5 // 22.0 +void (*main::f)(char) +void (*main::f#3)(char) +char main::i +char main::i#1 // 22.0 +char main::i#2 // 5.9230769230769225 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -325,34 +325,34 @@ Allocated zp[1]:7 [ fn1::c#0 ] Allocated zp[1]:8 [ main::$1 ] Allocated zp[1]:9 [ main::$5 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) [ fn3::e#0 ] ( fn3:16 [ main::i#2 fn3::e#0 ] { } ) always clobbers reg byte a reg byte x +Statement [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) [ fn3::e#0 ] ( fn3:16 [ main::i#2 fn3::e#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [1] SCREEN[fn3::e#0] = 'c' [ ] ( fn3:16 [ main::i#2 ] { } ) always clobbers reg byte a -Statement [3] fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) [ fn2::d#0 ] ( [ fn2::d#0 ] { } ) always clobbers reg byte a reg byte x +Statement [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) [ fn2::d#0 ] ( [ fn2::d#0 ] { } ) always clobbers reg byte a reg byte x Statement [4] SCREEN[fn2::d#0] = 'b' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) [ fn1::c#0 ] ( [ fn1::c#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) [ fn1::c#0 ] ( [ fn1::c#0 ] { } ) always clobbers reg byte a reg byte x Statement [7] SCREEN[fn1::c#0] = 'a' [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] main::$1 = main::i#2 & 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a -Statement [15] stackpush(byte) = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [15] stackpush(char) = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a Statement [19] main::$5 = main::i#2 & 3 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a -Statement [23] stackpush(byte) = main::i#2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [23] stackpush(char) = main::i#2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [24] callexecute *main::f#3 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [0] fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) [ fn3::e#0 ] ( fn3:16 [ main::i#2 fn3::e#0 ] { } ) always clobbers reg byte a reg byte x +Statement [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) [ fn3::e#0 ] ( fn3:16 [ main::i#2 fn3::e#0 ] { } ) always clobbers reg byte a reg byte x Statement [1] SCREEN[fn3::e#0] = 'c' [ ] ( fn3:16 [ main::i#2 ] { } ) always clobbers reg byte a -Statement [3] fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) [ fn2::d#0 ] ( [ fn2::d#0 ] { } ) always clobbers reg byte a reg byte x +Statement [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) [ fn2::d#0 ] ( [ fn2::d#0 ] { } ) always clobbers reg byte a reg byte x Statement [4] SCREEN[fn2::d#0] = 'b' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) [ fn1::c#0 ] ( [ fn1::c#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) [ fn1::c#0 ] ( [ fn1::c#0 ] { } ) always clobbers reg byte a reg byte x Statement [7] SCREEN[fn1::c#0] = 'a' [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] if(main::i#2<$a0) goto main::@2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [13] main::$1 = main::i#2 & 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a -Statement [15] stackpush(byte) = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [15] stackpush(char) = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a Statement [19] main::$5 = main::i#2 & 3 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a -Statement [23] stackpush(byte) = main::i#2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [23] stackpush(char) = main::i#2 [ ] ( [ ] { } ) always clobbers reg byte a Statement [24] callexecute *main::f#3 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullbytes(1) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , @@ -396,10 +396,10 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN = $400 .segment Code // fn3 -// fn3(byte register(A) e) +// void fn3(__register(A) char e) fn3: { .const OFFSET_STACK_E = 0 - // [0] fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) -- vbuaa=_stackidxbyte_vbuc1 + // [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_E,x // [1] SCREEN[fn3::e#0] = 'c' -- pbuc1_derefidx_vbuaa=vbuc2 @@ -413,10 +413,10 @@ fn3: { rts } // fn2 -// fn2(byte register(A) d) +// void fn2(__register(A) char d) fn2: { .const OFFSET_STACK_D = 0 - // [3] fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) -- vbuaa=_stackidxbyte_vbuc1 + // [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_D,x // [4] SCREEN[fn2::d#0] = 'b' -- pbuc1_derefidx_vbuaa=vbuc2 @@ -430,10 +430,10 @@ fn2: { rts } // fn1 -// fn1(byte register(A) c) +// void fn1(__register(A) char c) fn1: { .const OFFSET_STACK_C = 0 - // [6] fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 + // [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x // [7] SCREEN[fn1::c#0] = 'a' -- pbuc1_derefidx_vbuaa=vbuc2 @@ -479,7 +479,7 @@ main: { jmp __b7 // main::@7 __b7: - // [15] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [15] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // [16] callexecute fn3 -- call_vprc1 @@ -526,7 +526,7 @@ main: { jmp __b6 // main::@6 __b6: - // [23] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [23] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // [24] callexecute *main::f#3 -- call__deref_pprz1 @@ -566,28 +566,28 @@ Removing instruction __b6_from___b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 -__stackcall void fn1(byte fn1::c) -constant byte fn1::OFFSET_STACK_C = 0 -byte fn1::c -byte fn1::c#0 reg byte a 4.0 -__stackcall void fn2(byte fn2::d) -constant byte fn2::OFFSET_STACK_D = 0 -byte fn2::d -byte fn2::d#0 reg byte a 4.0 -__stackcall void fn3(byte fn3::e) -constant byte fn3::OFFSET_STACK_E = 0 -byte fn3::e -byte fn3::e#0 reg byte a 202.0 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 +__stackcall void fn1(char c) +__constant char fn1::OFFSET_STACK_C = 0 +char fn1::c +char fn1::c#0 // reg byte a 4.0 +__stackcall void fn2(char d) +__constant char fn2::OFFSET_STACK_D = 0 +char fn2::d +char fn2::d#0 // reg byte a 4.0 +__stackcall void fn3(char e) +__constant char fn3::OFFSET_STACK_E = 0 +char fn3::e +char fn3::e#0 // reg byte a 202.0 void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$5 reg byte a 22.0 -void(byte)* main::f -void(byte)* main::f#3 f zp[2]:3 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 5.9230769230769225 +char main::$1 // reg byte a 22.0 +char main::$5 // reg byte a 22.0 +void (*main::f)(char) +void (*main::f#3)(char) // f zp[2]:3 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 5.9230769230769225 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::f#3 ] @@ -618,10 +618,10 @@ Score: 1094 .label SCREEN = $400 .segment Code // fn3 -// fn3(byte register(A) e) +// void fn3(__register(A) char e) fn3: { .const OFFSET_STACK_E = 0 - // [0] fn3::e#0 = stackidx(byte,fn3::OFFSET_STACK_E) -- vbuaa=_stackidxbyte_vbuc1 + // [0] fn3::e#0 = stackidx(char,fn3::OFFSET_STACK_E) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_E,x // SCREEN[e] = 'c' @@ -635,10 +635,10 @@ fn3: { rts } // fn2 -// fn2(byte register(A) d) +// void fn2(__register(A) char d) fn2: { .const OFFSET_STACK_D = 0 - // [3] fn2::d#0 = stackidx(byte,fn2::OFFSET_STACK_D) -- vbuaa=_stackidxbyte_vbuc1 + // [3] fn2::d#0 = stackidx(char,fn2::OFFSET_STACK_D) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_D,x // SCREEN[d] = 'b' @@ -652,10 +652,10 @@ fn2: { rts } // fn1 -// fn1(byte register(A) c) +// void fn1(__register(A) char c) fn1: { .const OFFSET_STACK_C = 0 - // [6] fn1::c#0 = stackidx(byte,fn1::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 + // [6] fn1::c#0 = stackidx(char,fn1::OFFSET_STACK_C) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_C,x // SCREEN[c] = 'a' @@ -700,7 +700,7 @@ main: { bne __b3 // main::@7 // fn3(i) - // [15] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [15] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // [16] callexecute fn3 -- call_vprc1 @@ -744,7 +744,7 @@ main: { // main::@6 __b6: // (*f)(i) - // [23] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [23] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // [24] callexecute *main::f#3 -- call__deref_pprz1 diff --git a/src/test/ref/function-pointer-param-0.sym b/src/test/ref/function-pointer-param-0.sym index e7ffb32da..dbe5b8fbf 100644 --- a/src/test/ref/function-pointer-param-0.sym +++ b/src/test/ref/function-pointer-param-0.sym @@ -1,25 +1,25 @@ -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 -__stackcall void fn1(byte fn1::c) -constant byte fn1::OFFSET_STACK_C = 0 -byte fn1::c -byte fn1::c#0 reg byte a 4.0 -__stackcall void fn2(byte fn2::d) -constant byte fn2::OFFSET_STACK_D = 0 -byte fn2::d -byte fn2::d#0 reg byte a 4.0 -__stackcall void fn3(byte fn3::e) -constant byte fn3::OFFSET_STACK_E = 0 -byte fn3::e -byte fn3::e#0 reg byte a 202.0 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 +__stackcall void fn1(char c) +__constant char fn1::OFFSET_STACK_C = 0 +char fn1::c +char fn1::c#0 // reg byte a 4.0 +__stackcall void fn2(char d) +__constant char fn2::OFFSET_STACK_D = 0 +char fn2::d +char fn2::d#0 // reg byte a 4.0 +__stackcall void fn3(char e) +__constant char fn3::OFFSET_STACK_E = 0 +char fn3::e +char fn3::e#0 // reg byte a 202.0 void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$5 reg byte a 22.0 -void(byte)* main::f -void(byte)* main::f#3 f zp[2]:3 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 5.9230769230769225 +char main::$1 // reg byte a 22.0 +char main::$5 // reg byte a 22.0 +void (*main::f)(char) +void (*main::f#3)(char) // f zp[2]:3 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 5.9230769230769225 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::f#3 ] diff --git a/src/test/ref/function-pointer-param-workaround.log b/src/test/ref/function-pointer-param-workaround.log index cf1a75e0e..ef42da03f 100644 --- a/src/test/ref/function-pointer-param-workaround.log +++ b/src/test/ref/function-pointer-param-workaround.log @@ -105,57 +105,57 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN1 = (byte*)$400 -constant byte* const SCREEN2 = (byte*)$428 -constant byte SIZEOF_POINTER = 2 +__constant char * const SCREEN1 = (char *)$400 +__constant char * const SCREEN2 = (char *)$428 +__constant char SIZEOF_POINTER = 2 void __start() void fn1() -byte fn1::b -byte fn1::b#0 -byte fn1::c -byte fn1::c#0 -volatile byte fn1::param_char loadstore -volatile word fn1::ret_addr loadstore +char fn1::b +char fn1::b#0 +char fn1::c +char fn1::c#0 +__loadstore volatile char fn1::param_char +__loadstore volatile unsigned int fn1::ret_addr void fn2() -byte fn2::b -byte fn2::b#0 -byte fn2::c -byte fn2::c#0 -volatile byte fn2::param_char loadstore -volatile word fn2::ret_addr loadstore -volatile byte idx1 loadstore -volatile byte idx2 loadstore +char fn2::b +char fn2::b#0 +char fn2::c +char fn2::c#0 +__loadstore volatile char fn2::param_char +__loadstore volatile unsigned int fn2::ret_addr +__loadstore volatile char idx1 +__loadstore volatile char idx2 void main() -bool~ main::$0 -bool~ main::$1 -byte~ main::$3 -void()* main::f -void()* main::f#0 -constant void()** main::fns[2] = { &fn1, &fn2 } -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -volatile byte main::param_char loadstore +bool main::$0 +bool main::$1 +char main::$3 +void (*main::f)() +void (*main::f#0)() +__constant void (*main::fns[2])() = { &fn1, &fn2 } +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +__loadstore volatile char main::param_char Adding number conversion cast (unumber) 2 in main::$1 = main::j#2 < 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1064 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1064 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)fn1::b#0 = fn1::param_char fn1::c#0 Alias candidate removed (volatile)fn2::b#0 = fn2::param_char fn2::c#0 @@ -197,7 +197,7 @@ Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)fn1::b#0 = fn1::param_char fn1::c#0 Alias candidate removed (volatile)fn2::b#0 = fn2::param_char fn2::c#0 Alias candidate removed (volatile)main::i#2 = main::param_char main::j#2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)fn1::b#0 = fn1::param_char fn1::c#0 Alias candidate removed (volatile)fn2::b#0 = fn2::param_char fn2::c#0 @@ -320,32 +320,32 @@ main::@5: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void __start() void fn1() -byte fn1::b -byte fn1::b#0 1.0 -byte fn1::c -byte fn1::c#0 1.0 -volatile byte fn1::param_char loadstore 1.2000000000000002 -volatile word fn1::ret_addr loadstore 0.2857142857142857 +char fn1::b +char fn1::b#0 // 1.0 +char fn1::c +char fn1::c#0 // 1.0 +__loadstore volatile char fn1::param_char // 1.2000000000000002 +__loadstore volatile unsigned int fn1::ret_addr // 0.2857142857142857 void fn2() -byte fn2::b -byte fn2::b#0 1.0 -byte fn2::c -byte fn2::c#0 1.0 -volatile byte fn2::param_char loadstore 1.2000000000000002 -volatile word fn2::ret_addr loadstore 0.2857142857142857 -volatile byte idx1 loadstore 1.272727272727273 -volatile byte idx2 loadstore 1.272727272727273 +char fn2::b +char fn2::b#0 // 1.0 +char fn2::c +char fn2::c#0 // 1.0 +__loadstore volatile char fn2::param_char // 1.2000000000000002 +__loadstore volatile unsigned int fn2::ret_addr // 0.2857142857142857 +__loadstore volatile char idx1 // 1.272727272727273 +__loadstore volatile char idx2 // 1.272727272727273 void main() -byte~ main::$3 2002.0 -void()* main::f -void()* main::f#0 10010.0 -byte main::i -byte main::i#1 202.0 -byte main::i#2 186.28571428571428 -byte main::j -byte main::j#1 2002.0 -byte main::j#2 625.625 -volatile byte main::param_char loadstore 1501.5 +char main::$3 // 2002.0 +void (*main::f)() +void (*main::f#0)() // 10010.0 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 186.28571428571428 +char main::j +char main::j#1 // 2002.0 +char main::j#2 // 625.625 +__loadstore volatile char main::param_char // 1501.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -789,37 +789,37 @@ Relabelling long label __b2_from___b1 to __b4 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -constant byte* const SCREEN1 = (byte*) 1024 -constant byte* const SCREEN2 = (byte*) 1064 +__constant char * const SCREEN1 = (char *) 1024 +__constant char * const SCREEN2 = (char *) 1064 void __start() void fn1() -byte fn1::b -byte fn1::b#0 reg byte y 1.0 -byte fn1::c -byte fn1::c#0 reg byte x 1.0 -volatile byte fn1::param_char loadstore zp[1]:11 1.2000000000000002 -volatile word fn1::ret_addr loadstore zp[2]:9 0.2857142857142857 +char fn1::b +char fn1::b#0 // reg byte y 1.0 +char fn1::c +char fn1::c#0 // reg byte x 1.0 +__loadstore volatile char fn1::param_char // zp[1]:11 1.2000000000000002 +__loadstore volatile unsigned int fn1::ret_addr // zp[2]:9 0.2857142857142857 void fn2() -byte fn2::b -byte fn2::b#0 reg byte y 1.0 -byte fn2::c -byte fn2::c#0 reg byte x 1.0 -volatile byte fn2::param_char loadstore zp[1]:8 1.2000000000000002 -volatile word fn2::ret_addr loadstore zp[2]:6 0.2857142857142857 -volatile byte idx1 loadstore zp[1]:4 1.272727272727273 -volatile byte idx2 loadstore zp[1]:5 1.272727272727273 +char fn2::b +char fn2::b#0 // reg byte y 1.0 +char fn2::c +char fn2::c#0 // reg byte x 1.0 +__loadstore volatile char fn2::param_char // zp[1]:8 1.2000000000000002 +__loadstore volatile unsigned int fn2::ret_addr // zp[2]:6 0.2857142857142857 +__loadstore volatile char idx1 // zp[1]:4 1.272727272727273 +__loadstore volatile char idx2 // zp[1]:5 1.272727272727273 void main() -byte~ main::$3 reg byte a 2002.0 -void()* main::f -void()* main::f#0 f zp[2]:13 10010.0 -constant void()** main::fns[2] = { &fn1, &fn2 } -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 186.28571428571428 -byte main::j -byte main::j#1 j zp[1]:3 2002.0 -byte main::j#2 j zp[1]:3 625.625 -volatile byte main::param_char loadstore zp[1]:12 1501.5 +char main::$3 // reg byte a 2002.0 +void (*main::f)() +void (*main::f#0)() // f zp[2]:13 10010.0 +__constant void (*main::fns[2])() = { &fn1, &fn2 } +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 186.28571428571428 +char main::j +char main::j#1 // j zp[1]:3 2002.0 +char main::j#2 // j zp[1]:3 625.625 +__loadstore volatile char main::param_char // zp[1]:12 1501.5 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] diff --git a/src/test/ref/function-pointer-param-workaround.sym b/src/test/ref/function-pointer-param-workaround.sym index f540320e7..dc0996857 100644 --- a/src/test/ref/function-pointer-param-workaround.sym +++ b/src/test/ref/function-pointer-param-workaround.sym @@ -1,34 +1,34 @@ -constant byte* const SCREEN1 = (byte*) 1024 -constant byte* const SCREEN2 = (byte*) 1064 +__constant char * const SCREEN1 = (char *) 1024 +__constant char * const SCREEN2 = (char *) 1064 void __start() void fn1() -byte fn1::b -byte fn1::b#0 reg byte y 1.0 -byte fn1::c -byte fn1::c#0 reg byte x 1.0 -volatile byte fn1::param_char loadstore zp[1]:11 1.2000000000000002 -volatile word fn1::ret_addr loadstore zp[2]:9 0.2857142857142857 +char fn1::b +char fn1::b#0 // reg byte y 1.0 +char fn1::c +char fn1::c#0 // reg byte x 1.0 +__loadstore volatile char fn1::param_char // zp[1]:11 1.2000000000000002 +__loadstore volatile unsigned int fn1::ret_addr // zp[2]:9 0.2857142857142857 void fn2() -byte fn2::b -byte fn2::b#0 reg byte y 1.0 -byte fn2::c -byte fn2::c#0 reg byte x 1.0 -volatile byte fn2::param_char loadstore zp[1]:8 1.2000000000000002 -volatile word fn2::ret_addr loadstore zp[2]:6 0.2857142857142857 -volatile byte idx1 loadstore zp[1]:4 1.272727272727273 -volatile byte idx2 loadstore zp[1]:5 1.272727272727273 +char fn2::b +char fn2::b#0 // reg byte y 1.0 +char fn2::c +char fn2::c#0 // reg byte x 1.0 +__loadstore volatile char fn2::param_char // zp[1]:8 1.2000000000000002 +__loadstore volatile unsigned int fn2::ret_addr // zp[2]:6 0.2857142857142857 +__loadstore volatile char idx1 // zp[1]:4 1.272727272727273 +__loadstore volatile char idx2 // zp[1]:5 1.272727272727273 void main() -byte~ main::$3 reg byte a 2002.0 -void()* main::f -void()* main::f#0 f zp[2]:13 10010.0 -constant void()** main::fns[2] = { &fn1, &fn2 } -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 186.28571428571428 -byte main::j -byte main::j#1 j zp[1]:3 2002.0 -byte main::j#2 j zp[1]:3 625.625 -volatile byte main::param_char loadstore zp[1]:12 1501.5 +char main::$3 // reg byte a 2002.0 +void (*main::f)() +void (*main::f#0)() // f zp[2]:13 10010.0 +__constant void (*main::fns[2])() = { &fn1, &fn2 } +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 186.28571428571428 +char main::j +char main::j#1 // j zp[1]:3 2002.0 +char main::j#2 // j zp[1]:3 625.625 +__loadstore volatile char main::param_char // zp[1]:12 1501.5 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] diff --git a/src/test/ref/function-pointer-problem-1.asm b/src/test/ref/function-pointer-problem-1.asm index 534318a3f..b6310feca 100644 --- a/src/test/ref/function-pointer-problem-1.asm +++ b/src/test/ref/function-pointer-problem-1.asm @@ -27,7 +27,7 @@ main: { // } rts } -// enableDLI(void* zp(2) dliptr) +// void enableDLI(__zp(2) void * volatile dliptr) enableDLI: { .label dliptr = 2 // asm diff --git a/src/test/ref/function-pointer-problem-1.cfg b/src/test/ref/function-pointer-problem-1.cfg index 41b29bb50..7bd65a212 100644 --- a/src/test/ref/function-pointer-problem-1.cfg +++ b/src/test/ref/function-pointer-problem-1.cfg @@ -9,14 +9,14 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [2] enableDLI::dliptr = (void*)&fn1 - [3] call enableDLI + [2] enableDLI::dliptr = (void *)&fn1 + [3] call enableDLI to:main::@return main::@return: scope:[main] from main [4] return to:@return -void enableDLI(void* volatile enableDLI::dliptr) +void enableDLI(void * volatile dliptr) enableDLI: scope:[enableDLI] from main asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } to:enableDLI::@return diff --git a/src/test/ref/function-pointer-problem-1.log b/src/test/ref/function-pointer-problem-1.log index 33cfe7505..33a272696 100644 --- a/src/test/ref/function-pointer-problem-1.log +++ b/src/test/ref/function-pointer-problem-1.log @@ -1,13 +1,13 @@ Resolved forward reference fn1 to void fn1() Setting inferred volatile on symbol affected by address-of: enableDLI::dliptr in asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - enableDLI::dliptr = (void*)&fn1 - call enableDLI + enableDLI::dliptr = (void *)&fn1 + call enableDLI to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -23,7 +23,7 @@ fn1::@return: scope:[fn1] from fn1 return to:@return -void enableDLI(void* volatile enableDLI::dliptr) +void enableDLI(void * volatile dliptr) enableDLI: scope:[enableDLI] from main asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } to:enableDLI::@return @@ -37,7 +37,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -47,20 +47,20 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr void fn1() void main() -constant const byte* r = (byte*)$8000 +__constant const char *r = (char *)$8000 Adding number conversion cast (unumber) 1 in *r = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *r = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -89,14 +89,14 @@ fn1::@return: scope:[fn1] from fn1 void main() main: scope:[main] from - [2] enableDLI::dliptr = (void*)&fn1 - [3] call enableDLI + [2] enableDLI::dliptr = (void *)&fn1 + [3] call enableDLI to:main::@return main::@return: scope:[main] from main [4] return to:@return -void enableDLI(void* volatile enableDLI::dliptr) +void enableDLI(void * volatile dliptr) enableDLI: scope:[enableDLI] from main asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } to:enableDLI::@return @@ -106,8 +106,8 @@ enableDLI::@return: scope:[enableDLI] from enableDLI VARIABLE REGISTER WEIGHTS -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore 2.0 +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr // 2.0 void fn1() void main() @@ -118,7 +118,7 @@ Complete equivalence classes Allocated zp[2]:2 [ enableDLI::dliptr ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *r = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] enableDLI::dliptr = (void*)&fn1 [ enableDLI::dliptr ] ( [ enableDLI::dliptr ] { } ) always clobbers reg byte a +Statement [2] enableDLI::dliptr = (void *)&fn1 [ enableDLI::dliptr ] ( [ enableDLI::dliptr ] { } ) always clobbers reg byte a Statement asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } always clobbers reg byte a Potential registers zp[2]:2 [ enableDLI::dliptr ] : zp[2]:2 , @@ -162,12 +162,12 @@ fn1: { } // main main: { - // [2] enableDLI::dliptr = (void*)&fn1 -- pvoz1=pvoc1 + // [2] enableDLI::dliptr = (void *)&fn1 -- pvoz1=pvoc1 lda #fn1 sta.z enableDLI.dliptr+1 - // [3] call enableDLI + // [3] call enableDLI jsr enableDLI jmp __breturn // main::@return @@ -176,7 +176,7 @@ main: { rts } // enableDLI -// enableDLI(void* zp(2) dliptr) +// void enableDLI(__zp(2) void * volatile dliptr) enableDLI: { .label dliptr = 2 // asm { ldadliptr stadlivec ldadliptr+1 stadlivec+1 jmp!+ dlivec: .byte0,0 !: } @@ -207,11 +207,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore zp[2]:2 2.0 +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr // zp[2]:2 2.0 void fn1() void main() -constant const byte* r = (byte*) 32768 +__constant const char *r = (char *) 32768 zp[2]:2 [ enableDLI::dliptr ] @@ -248,12 +248,12 @@ fn1: { // main main: { // enableDLI(&fn1) - // [2] enableDLI::dliptr = (void*)&fn1 -- pvoz1=pvoc1 + // [2] enableDLI::dliptr = (void *)&fn1 -- pvoz1=pvoc1 lda #fn1 sta.z enableDLI.dliptr+1 - // [3] call enableDLI + // [3] call enableDLI jsr enableDLI // main::@return // } @@ -261,7 +261,7 @@ main: { rts } // enableDLI -// enableDLI(void* zp(2) dliptr) +// void enableDLI(__zp(2) void * volatile dliptr) enableDLI: { .label dliptr = 2 // asm diff --git a/src/test/ref/function-pointer-problem-1.sym b/src/test/ref/function-pointer-problem-1.sym index e6b373120..6fdde8d32 100644 --- a/src/test/ref/function-pointer-problem-1.sym +++ b/src/test/ref/function-pointer-problem-1.sym @@ -1,7 +1,7 @@ -void enableDLI(void* volatile enableDLI::dliptr) -void* volatile enableDLI::dliptr loadstore zp[2]:2 2.0 +void enableDLI(void * volatile dliptr) +__loadstore void * volatile enableDLI::dliptr // zp[2]:2 2.0 void fn1() void main() -constant const byte* r = (byte*) 32768 +__constant const char *r = (char *) 32768 zp[2]:2 [ enableDLI::dliptr ] diff --git a/src/test/ref/function-pointer-return-1.cfg b/src/test/ref/function-pointer-return-1.cfg index 6c2e44f7f..c13b1e6ea 100644 --- a/src/test/ref/function-pointer-return-1.cfg +++ b/src/test/ref/function-pointer-return-1.cfg @@ -1,21 +1,21 @@ -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from [0] *fn2::BG_COLOR = ++ *fn2::BG_COLOR [1] fn2::return#0 = *fn2::BG_COLOR to:fn2::@return fn2::@return: scope:[fn2] from fn2 - [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 + [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [3] return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from [4] *fn1::BORDER_COLOR = ++ *fn1::BORDER_COLOR [5] fn1::return#0 = *fn1::BORDER_COLOR to:fn1::@return fn1::@return: scope:[fn1] from fn1 - [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 + [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [7] return to:@return @@ -36,7 +36,7 @@ main::@3: scope:[main] from main::@1 main::@2 [14] main::f#3 = phi( main::@2/&fn1, main::@1/&fn2 ) sideeffect stackpushbytes(1) [16] callexecute *main::f#3 - [17] main::v#0 = stackpull(byte) + [17] main::v#0 = stackpull(char) to:main::@4 main::@4: scope:[main] from main::@3 [18] *main::SCREEN = main::v#0 diff --git a/src/test/ref/function-pointer-return-1.log b/src/test/ref/function-pointer-return-1.log index d693b7b86..dd64eb946 100644 --- a/src/test/ref/function-pointer-return-1.log +++ b/src/test/ref/function-pointer-return-1.log @@ -1,17 +1,17 @@ -Resolved forward reference fn1 to byte fn1() -Resolved forward reference fn2 to byte fn2() -Setting inferred __stackcall on procedure affected by address-of __stackcall byte fn1() caused by statement main::f = &fn1 -Setting inferred __stackcall on procedure affected by address-of __stackcall byte fn2() caused by statement main::f = &fn2 +Resolved forward reference fn1 to char fn1() +Resolved forward reference fn2 to char fn2() +Setting inferred __stackcall on procedure affected by address-of __stackcall char fn1() caused by statement main::f = &fn1 +Setting inferred __stackcall on procedure affected by address-of __stackcall char fn2() caused by statement main::f = &fn2 Calling convention STACK_CALL adding prepare/execute/finalize for main::$2 = call *main::f -Calling convention STACK_CALL adding stack return stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return -Calling convention STACK_CALL adding stack return stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return -Calling convention STACK_CALL adding stack pull main::$2 = stackpull(byte) +Calling convention STACK_CALL adding stack return stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return +Calling convention STACK_CALL adding stack return stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return +Calling convention STACK_CALL adding stack pull main::$2 = stackpull(char) CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::f#0 = (byte()*) 0 + main::f#0 = (char (*)()) 0 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -34,7 +34,7 @@ main::@3: scope:[main] from main::@2 main::@5 main::f#3 = phi( main::@2/main::f#1, main::@5/main::f#2 ) sideeffect stackpushbytes(1) callexecute *main::f#3 - main::$2 = stackpull(byte) + main::$2 = stackpull(char) to:main::@4 main::@4: scope:[main] from main::@3 main::i#3 = phi( main::@3/main::i#4 ) @@ -45,7 +45,7 @@ main::@return: scope:[main] from return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from *fn1::BORDER_COLOR = ++ *fn1::BORDER_COLOR fn1::return#0 = *fn1::BORDER_COLOR @@ -53,11 +53,11 @@ fn1: scope:[fn1] from fn1::@return: scope:[fn1] from fn1 fn1::return#2 = phi( fn1/fn1::return#0 ) fn1::return#1 = fn1::return#2 - stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#1 + stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#1 return to:@return -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from *fn2::BG_COLOR = ++ *fn2::BG_COLOR fn2::return#0 = *fn2::BG_COLOR @@ -65,7 +65,7 @@ fn2: scope:[fn2] from fn2::@return: scope:[fn2] from fn2 fn2::return#2 = phi( fn2/fn2::return#0 ) fn2::return#1 = fn2::return#2 - stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#1 + stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#1 return to:@return @@ -80,60 +80,60 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant word STACK_BASE = $103 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall byte fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 -byte fn1::return#1 -byte fn1::return#2 -__stackcall byte fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 -byte fn2::return#1 -byte fn2::return#2 +__stackcall char fn1() +__constant char * const fn1::BORDER_COLOR = (char *)$d020 +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 +char fn1::return#1 +char fn1::return#2 +__stackcall char fn2() +__constant char * const fn2::BG_COLOR = (char *)$d021 +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 +char fn2::return#1 +char fn2::return#2 void main() -number~ main::$0 -bool~ main::$1 -byte~ main::$2 -constant byte* const main::SCREEN = (byte*)$400 -byte()* main::f -byte()* main::f#0 -byte()* main::f#1 -byte()* main::f#2 -byte()* main::f#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::v -byte main::v#0 +number main::$0 +bool main::$1 +char main::$2 +__constant char * const main::SCREEN = (char *)$400 +char (*main::f)() +char (*main::f#0)() +char (*main::f#1)() +char (*main::f#2)() +char (*main::f#3)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::v +char main::v#0 Adding number conversion cast (unumber) 1 in main::$0 = main::i#1 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#1 & (unumber)1 Adding number conversion cast (unumber) 0 in main::$1 = main::$0 == 0 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::v#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#1 & 1 +Inferred type updated to char in main::$0 = main::i#1 & 1 Alias main::i#1 = main::i#5 main::i#6 Alias main::i#3 = main::i#4 Alias main::v#0 = main::$2 @@ -144,7 +144,7 @@ Alias main::i#1 = main::i#3 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [6] if(main::$0==0) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::f#0 = (byte()*) 0 +Constant main::f#0 = (char (*)()) 0 Constant main::i#0 = 0 Constant main::f#1 = &fn1 Constant main::f#2 = &fn2 @@ -167,7 +167,7 @@ Constant inlined main::i#0 = 0 Constant inlined main::f#2 = &fn2 Constant inlined main::f#1 = &fn1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@5 @@ -184,23 +184,23 @@ Adding NOP phi() at start of main::@2 FINAL CONTROL FLOW GRAPH -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from [0] *fn2::BG_COLOR = ++ *fn2::BG_COLOR [1] fn2::return#0 = *fn2::BG_COLOR to:fn2::@return fn2::@return: scope:[fn2] from fn2 - [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 + [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [3] return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from [4] *fn1::BORDER_COLOR = ++ *fn1::BORDER_COLOR [5] fn1::return#0 = *fn1::BORDER_COLOR to:fn1::@return fn1::@return: scope:[fn1] from fn1 - [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 + [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [7] return to:@return @@ -221,7 +221,7 @@ main::@3: scope:[main] from main::@1 main::@2 [14] main::f#3 = phi( main::@2/&fn1, main::@1/&fn2 ) sideeffect stackpushbytes(1) [16] callexecute *main::f#3 - [17] main::v#0 = stackpull(byte) + [17] main::v#0 = stackpull(char) to:main::@4 main::@4: scope:[main] from main::@3 [18] *main::SCREEN = main::v#0 @@ -229,21 +229,21 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS -__stackcall byte fn1() -byte fn1::return -byte fn1::return#0 4.0 -__stackcall byte fn2() -byte fn2::return -byte fn2::return#0 4.0 +__stackcall char fn1() +char fn1::return +char fn1::return#0 // 4.0 +__stackcall char fn2() +char fn2::return +char fn2::return#0 // 4.0 void main() -byte~ main::$0 22.0 -byte()* main::f -byte()* main::f#3 -byte main::i -byte main::i#1 8.25 -byte main::i#2 22.0 -byte main::v -byte main::v#0 22.0 +char main::$0 // 22.0 +char (*main::f)() +char (*main::f#3)() +char main::i +char main::i#1 // 8.25 +char main::i#2 // 22.0 +char main::v +char main::v#0 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -266,18 +266,18 @@ Allocated zp[1]:6 [ fn1::return#0 ] Allocated zp[1]:7 [ main::$0 ] Allocated zp[1]:8 [ main::v#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x Statement [16] callexecute *main::f#3 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [17] main::v#0 = stackpull(byte) [ main::i#1 main::v#0 ] ( [ main::i#1 main::v#0 ] { } ) always clobbers reg byte a -Statement [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [17] main::v#0 = stackpull(char) [ main::i#1 main::v#0 ] ( [ main::i#1 main::v#0 ] { } ) always clobbers reg byte a +Statement [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x Statement [11] main::$0 = main::i#1 & 1 [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a Statement [16] callexecute *main::f#3 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [17] main::v#0 = stackpull(byte) [ main::i#1 main::v#0 ] ( [ main::i#1 main::v#0 ] { } ) always clobbers reg byte a +Statement [17] main::v#0 = stackpull(char) [ main::i#1 main::v#0 ] ( [ main::i#1 main::v#0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , Potential registers zp[2]:3 [ main::f#3 ] : zp[2]:3 , Potential registers zp[1]:5 [ fn2::return#0 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -324,7 +324,7 @@ fn2: { jmp __breturn // fn2::@return __breturn: - // [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [3] return @@ -341,7 +341,7 @@ fn1: { jmp __breturn // fn1::@return __breturn: - // [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [7] return @@ -395,7 +395,7 @@ main: { pha // [16] callexecute *main::f#3 -- call__deref_pprz1 jsr icall1 - // [17] main::v#0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [17] main::v#0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla jmp __b4 // main::@4 @@ -433,27 +433,27 @@ Removing instruction __b1_from___b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word STACK_BASE = $103 -__stackcall byte fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 reg byte a 4.0 -__stackcall byte fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 reg byte a 4.0 +__constant unsigned int STACK_BASE = $103 +__stackcall char fn1() +__constant char * const fn1::BORDER_COLOR = (char *) 53280 +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 // reg byte a 4.0 +__stackcall char fn2() +__constant char * const fn2::BG_COLOR = (char *) 53281 +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 // reg byte a 4.0 void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte()* main::f -byte()* main::f#3 f zp[2]:3 -byte main::i -byte main::i#1 i zp[1]:2 8.25 -byte main::i#2 i zp[1]:2 22.0 -byte main::v -byte main::v#0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char (*main::f)() +char (*main::f#3)() // f zp[2]:3 +char main::i +char main::i#1 // i zp[1]:2 8.25 +char main::i#2 // i zp[1]:2 22.0 +char main::v +char main::v#0 // reg byte a 22.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::f#3 ] @@ -492,7 +492,7 @@ fn2: { lda BG_COLOR // fn2::@return // } - // [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [3] return @@ -510,7 +510,7 @@ fn1: { lda BORDER_COLOR // fn1::@return // } - // [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [7] return @@ -562,7 +562,7 @@ main: { // [16] callexecute *main::f#3 -- call__deref_pprz1 jsr icall1 // char v = (*f)() - // [17] main::v#0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [17] main::v#0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // main::@4 // SCREEN[0] = v diff --git a/src/test/ref/function-pointer-return-1.sym b/src/test/ref/function-pointer-return-1.sym index 101fff55e..288f24e7b 100644 --- a/src/test/ref/function-pointer-return-1.sym +++ b/src/test/ref/function-pointer-return-1.sym @@ -1,24 +1,24 @@ -constant word STACK_BASE = $103 -__stackcall byte fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 reg byte a 4.0 -__stackcall byte fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 reg byte a 4.0 +__constant unsigned int STACK_BASE = $103 +__stackcall char fn1() +__constant char * const fn1::BORDER_COLOR = (char *) 53280 +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 // reg byte a 4.0 +__stackcall char fn2() +__constant char * const fn2::BG_COLOR = (char *) 53281 +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 // reg byte a 4.0 void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte()* main::f -byte()* main::f#3 f zp[2]:3 -byte main::i -byte main::i#1 i zp[1]:2 8.25 -byte main::i#2 i zp[1]:2 22.0 -byte main::v -byte main::v#0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char (*main::f)() +char (*main::f#3)() // f zp[2]:3 +char main::i +char main::i#1 // i zp[1]:2 8.25 +char main::i#2 // i zp[1]:2 22.0 +char main::v +char main::v#0 // reg byte a 22.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::f#3 ] diff --git a/src/test/ref/function-pointer-return-2.asm b/src/test/ref/function-pointer-return-2.asm index cadb17525..35d927fac 100644 --- a/src/test/ref/function-pointer-return-2.asm +++ b/src/test/ref/function-pointer-return-2.asm @@ -47,7 +47,7 @@ fn1: { sta STACK_BASE+OFFSET_STACK_RETURN_0,x rts } -// set_border(byte()* zp(2) fn) +// void set_border(__zp(2) char (*fn)()) set_border: { .label fn = 2 // fn() diff --git a/src/test/ref/function-pointer-return-2.cfg b/src/test/ref/function-pointer-return-2.cfg index 2d5d04c38..dda4389db 100644 --- a/src/test/ref/function-pointer-return-2.cfg +++ b/src/test/ref/function-pointer-return-2.cfg @@ -12,30 +12,30 @@ main::@2: scope:[main] from main::@1 [4] call set_border to:main::@1 -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from [5] phi() to:fn2::@return fn2::@return: scope:[fn2] from fn2 - [6] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 + [6] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [7] return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from [8] fn1::return#0 = *RASTER to:fn1::@return fn1::@return: scope:[fn1] from fn1 - [9] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 + [9] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [10] return to:@return -void set_border(byte()* set_border::fn) +void set_border(char (*fn)()) set_border: scope:[set_border] from main::@1 main::@2 [11] set_border::fn#2 = phi( main::@1/&fn1, main::@2/&fn2 ) sideeffect stackpushbytes(1) [13] callexecute *set_border::fn#2 - [14] set_border::$0 = stackpull(byte) + [14] set_border::$0 = stackpull(char) to:set_border::@1 set_border::@1: scope:[set_border] from set_border [15] *BORDER = set_border::$0 diff --git a/src/test/ref/function-pointer-return-2.log b/src/test/ref/function-pointer-return-2.log index 41b242577..440d64233 100644 --- a/src/test/ref/function-pointer-return-2.log +++ b/src/test/ref/function-pointer-return-2.log @@ -1,40 +1,40 @@ -Setting inferred __stackcall on procedure affected by address-of __stackcall byte fn1() caused by statement main::$0 = call set_border(&fn1) -Setting inferred __stackcall on procedure affected by address-of __stackcall byte fn2() caused by statement main::$1 = call set_border(&fn2) +Setting inferred __stackcall on procedure affected by address-of __stackcall char fn1() caused by statement main::$0 = call set_border(&fn1) +Setting inferred __stackcall on procedure affected by address-of __stackcall char fn2() caused by statement main::$1 = call set_border(&fn2) Calling convention STACK_CALL adding prepare/execute/finalize for set_border::$0 = call *set_border::fn -Calling convention STACK_CALL adding stack return stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return -Calling convention STACK_CALL adding stack return stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return -Calling convention STACK_CALL adding stack pull set_border::$0 = stackpull(byte) +Calling convention STACK_CALL adding stack return stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return +Calling convention STACK_CALL adding stack return stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return +Calling convention STACK_CALL adding stack pull set_border::$0 = stackpull(char) CONTROL FLOW GRAPH SSA -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from fn1::return#0 = *RASTER to:fn1::@return fn1::@return: scope:[fn1] from fn1 fn1::return#2 = phi( fn1/fn1::return#0 ) fn1::return#1 = fn1::return#2 - stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#1 + stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#1 return to:@return -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from fn2::return#0 = 0 to:fn2::@return fn2::@return: scope:[fn2] from fn2 fn2::return#2 = phi( fn2/fn2::return#0 ) fn2::return#1 = fn2::return#2 - stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#1 + stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#1 return to:@return -void set_border(byte()* set_border::fn) +void set_border(char (*fn)()) set_border: scope:[set_border] from main::@1 main::@2 set_border::fn#2 = phi( main::@1/set_border::fn#0, main::@2/set_border::fn#1 ) sideeffect stackpushbytes(1) callexecute *set_border::fn#2 - set_border::$0 = stackpull(byte) + set_border::$0 = stackpull(char) to:set_border::@1 set_border::@1: scope:[set_border] from set_border *BORDER = set_border::$0 @@ -71,39 +71,39 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BORDER = (byte*)$d020 -constant byte* const RASTER = (byte*)$d012 -constant word STACK_BASE = $103 +__constant char * const BORDER = (char *)$d020 +__constant char * const RASTER = (char *)$d012 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall byte fn1() -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 -byte fn1::return#1 -byte fn1::return#2 -__stackcall byte fn2() -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 -byte fn2::return#1 -byte fn2::return#2 +__stackcall char fn1() +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 +char fn1::return#1 +char fn1::return#2 +__stackcall char fn2() +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 +char fn2::return#1 +char fn2::return#2 void main() -void set_border(byte()* set_border::fn) -byte~ set_border::$0 -byte()* set_border::fn -byte()* set_border::fn#0 -byte()* set_border::fn#1 -byte()* set_border::fn#2 +void set_border(char (*fn)()) +char set_border::$0 +char (*set_border::fn)() +char (*set_border::fn#0)() +char (*set_border::fn#1)() +char (*set_border::fn#2)() Adding number conversion cast (unumber) 0 in fn2::return#0 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fn2::return#0 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias fn1::return#0 = fn1::return#2 fn1::return#1 Alias fn2::return#0 = fn2::return#2 fn2::return#1 @@ -124,7 +124,7 @@ Inlining constant with var siblings set_border::fn#1 Constant inlined set_border::fn#0 = &fn1 Constant inlined set_border::fn#1 = &fn2 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -158,30 +158,30 @@ main::@2: scope:[main] from main::@1 [4] call set_border to:main::@1 -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from [5] phi() to:fn2::@return fn2::@return: scope:[fn2] from fn2 - [6] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 + [6] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [7] return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from [8] fn1::return#0 = *RASTER to:fn1::@return fn1::@return: scope:[fn1] from fn1 - [9] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 + [9] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [10] return to:@return -void set_border(byte()* set_border::fn) +void set_border(char (*fn)()) set_border: scope:[set_border] from main::@1 main::@2 [11] set_border::fn#2 = phi( main::@1/&fn1, main::@2/&fn2 ) sideeffect stackpushbytes(1) [13] callexecute *set_border::fn#2 - [14] set_border::$0 = stackpull(byte) + [14] set_border::$0 = stackpull(char) to:set_border::@1 set_border::@1: scope:[set_border] from set_border [15] *BORDER = set_border::$0 @@ -192,16 +192,16 @@ set_border::@return: scope:[set_border] from set_border::@1 VARIABLE REGISTER WEIGHTS -__stackcall byte fn1() -byte fn1::return -byte fn1::return#0 4.0 -__stackcall byte fn2() -byte fn2::return +__stackcall char fn1() +char fn1::return +char fn1::return#0 // 4.0 +__stackcall char fn2() +char fn2::return void main() -void set_border(byte()* set_border::fn) -byte~ set_border::$0 202.0 -byte()* set_border::fn -byte()* set_border::fn#2 +void set_border(char (*fn)()) +char set_border::$0 // 202.0 +char (*set_border::fn)() +char (*set_border::fn#2)() Initial phi equivalence classes [ set_border::fn#2 ] @@ -215,10 +215,10 @@ Allocated zp[2]:2 [ set_border::fn#2 ] Allocated zp[1]:4 [ fn1::return#0 ] Allocated zp[1]:5 [ set_border::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte a reg byte x -Statement [9] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [6] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte a reg byte x +Statement [9] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x Statement [13] callexecute *set_border::fn#2 [ ] ( set_border:2 [ ] { } set_border:4 [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [14] set_border::$0 = stackpull(byte) [ set_border::$0 ] ( set_border:2 [ set_border::$0 ] { } set_border:4 [ set_border::$0 ] { } ) always clobbers reg byte a +Statement [14] set_border::$0 = stackpull(char) [ set_border::$0 ] ( set_border:2 [ set_border::$0 ] { } set_border:4 [ set_border::$0 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ set_border::fn#2 ] : zp[2]:2 , Potential registers zp[1]:4 [ fn1::return#0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:5 [ set_border::$0 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -295,7 +295,7 @@ fn2: { jmp __breturn // fn2::@return __breturn: - // [6] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuc2 + // [6] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuc2 lda #return tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x @@ -310,21 +310,21 @@ fn1: { jmp __breturn // fn1::@return __breturn: - // [9] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [9] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [10] return rts } // set_border -// set_border(byte()* zp(2) fn) +// void set_border(__zp(2) char (*fn)()) set_border: { .label fn = 2 // sideeffect stackpushbytes(1) -- _stackpushbyte_1 pha // [13] callexecute *set_border::fn#2 -- call__deref_pprz1 jsr icall1 - // [14] set_border::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [14] set_border::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla jmp __b1 // set_border::@1 @@ -366,22 +366,22 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BORDER = (byte*) 53280 -constant byte* const RASTER = (byte*) 53266 -constant word STACK_BASE = $103 -__stackcall byte fn1() -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 reg byte a 4.0 -__stackcall byte fn2() -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -constant byte fn2::return#0 return = 0 +__constant char * const BORDER = (char *) 53280 +__constant char * const RASTER = (char *) 53266 +__constant unsigned int STACK_BASE = $103 +__stackcall char fn1() +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 // reg byte a 4.0 +__stackcall char fn2() +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +__constant char fn2::return#0 = 0 // return void main() -void set_border(byte()* set_border::fn) -byte~ set_border::$0 reg byte a 202.0 -byte()* set_border::fn -byte()* set_border::fn#2 fn zp[2]:2 +void set_border(char (*fn)()) +char set_border::$0 // reg byte a 202.0 +char (*set_border::fn)() +char (*set_border::fn#2)() // fn zp[2]:2 zp[2]:2 [ set_border::fn#2 ] reg byte a [ fn1::return#0 ] @@ -442,7 +442,7 @@ fn2: { .const return = 0 // fn2::@return // } - // [6] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuc2 + // [6] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuc2 lda #return tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x @@ -457,14 +457,14 @@ fn1: { lda RASTER // fn1::@return // } - // [9] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [9] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [10] return rts } // set_border -// set_border(byte()* zp(2) fn) +// void set_border(__zp(2) char (*fn)()) set_border: { .label fn = 2 // fn() @@ -472,7 +472,7 @@ set_border: { pha // [13] callexecute *set_border::fn#2 -- call__deref_pprz1 jsr icall1 - // [14] set_border::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [14] set_border::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // set_border::@1 // *BORDER = fn() diff --git a/src/test/ref/function-pointer-return-2.sym b/src/test/ref/function-pointer-return-2.sym index 5fe4b3f5c..03f0d3c23 100644 --- a/src/test/ref/function-pointer-return-2.sym +++ b/src/test/ref/function-pointer-return-2.sym @@ -1,19 +1,19 @@ -constant byte* const BORDER = (byte*) 53280 -constant byte* const RASTER = (byte*) 53266 -constant word STACK_BASE = $103 -__stackcall byte fn1() -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 reg byte a 4.0 -__stackcall byte fn2() -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -constant byte fn2::return#0 return = 0 +__constant char * const BORDER = (char *) 53280 +__constant char * const RASTER = (char *) 53266 +__constant unsigned int STACK_BASE = $103 +__stackcall char fn1() +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 // reg byte a 4.0 +__stackcall char fn2() +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +__constant char fn2::return#0 = 0 // return void main() -void set_border(byte()* set_border::fn) -byte~ set_border::$0 reg byte a 202.0 -byte()* set_border::fn -byte()* set_border::fn#2 fn zp[2]:2 +void set_border(char (*fn)()) +char set_border::$0 // reg byte a 202.0 +char (*set_border::fn)() +char (*set_border::fn#2)() // fn zp[2]:2 zp[2]:2 [ set_border::fn#2 ] reg byte a [ fn1::return#0 ] diff --git a/src/test/ref/function-pointer-return-3.asm b/src/test/ref/function-pointer-return-3.asm index e394863ad..3b85d998e 100644 --- a/src/test/ref/function-pointer-return-3.asm +++ b/src/test/ref/function-pointer-return-3.asm @@ -45,7 +45,7 @@ main: { inc.z i jmp __b1 } -// set_bg(byte register(A) col) +// void set_bg(__register(A) char col) set_bg: { .const OFFSET_STACK_COL = 0 tsx @@ -55,7 +55,7 @@ set_bg: { // } rts } -// set_border(byte register(A) col) +// void set_border(__register(A) char col) set_border: { .const OFFSET_STACK_COL = 0 tsx @@ -65,7 +65,7 @@ set_border: { // } rts } -// run(struct Task* zp(3) task) +// void run(__zp(3) struct Task *task) run: { .label task = 3 // task->handler(task->param) diff --git a/src/test/ref/function-pointer-return-3.cfg b/src/test/ref/function-pointer-return-3.cfg index fa52bdda5..7d00314b4 100644 --- a/src/test/ref/function-pointer-return-3.cfg +++ b/src/test/ref/function-pointer-return-3.cfg @@ -17,28 +17,28 @@ main::@3: scope:[main] from main::@2 [7] main::i#1 = ++ main::i#2 to:main::@1 -__stackcall void set_bg(byte set_bg::col) +__stackcall void set_bg(char col) set_bg: scope:[set_bg] from - [8] set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) + [8] set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) [9] *BACKGROUND = set_bg::col#0 to:set_bg::@return set_bg::@return: scope:[set_bg] from set_bg [10] return to:@return -__stackcall void set_border(byte set_border::col) +__stackcall void set_border(char col) set_border: scope:[set_border] from - [11] set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) + [11] set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) [12] *BORDER = set_border::col#0 to:set_border::@return set_border::@return: scope:[set_border] from set_border [13] return to:@return -void run(struct Task* run::task) +void run(struct Task *task) run: scope:[run] from main::@2 - [14] stackpush(byte) = ((byte*)tasks)[main::$5] - [15] callexecute *(((void(byte)**)run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) + [14] stackpush(char) = ((char *)tasks)[main::$5] + [15] callexecute *(((void (**)(char))run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) sideeffect stackpullbytes(1) to:run::@return run::@return: scope:[run] from run diff --git a/src/test/ref/function-pointer-return-3.log b/src/test/ref/function-pointer-return-3.log index 6f5c2fb98..d97db803b 100644 --- a/src/test/ref/function-pointer-return-3.log +++ b/src/test/ref/function-pointer-return-3.log @@ -1,42 +1,42 @@ -Setting inferred __stackcall on procedure affected by address-of __stackcall void set_border(byte set_border::col) caused by statement void set_border(byte set_border::col) -Setting inferred __stackcall on procedure affected by address-of __stackcall void set_bg(byte set_bg::col) caused by statement void set_bg(byte set_bg::col) -Setting inferred __stackcall on procedure affected by address-of __stackcall void set_border(byte set_border::col) caused by statement __stackcall void set_border(byte set_border::col) -Setting inferred __stackcall on procedure affected by address-of __stackcall void set_bg(byte set_bg::col) caused by statement __stackcall void set_bg(byte set_bg::col) +Setting inferred __stackcall on procedure affected by address-of __stackcall void set_border(char col) caused by statement void set_border(char col) +Setting inferred __stackcall on procedure affected by address-of __stackcall void set_bg(char col) caused by statement void set_bg(char col) +Setting inferred __stackcall on procedure affected by address-of __stackcall void set_border(char col) caused by statement __stackcall void set_border(char col) +Setting inferred __stackcall on procedure affected by address-of __stackcall void set_bg(char col) caused by statement __stackcall void set_bg(char col) Adding parameter assignment in __stackcall procedure set_border::col = param(set_border::col) Adding parameter assignment in __stackcall procedure set_bg::col = param(set_bg::col) Calling convention STACK_CALL adding prepare/execute/finalize for call *(*run::$1) *run::$2 -Calling convention STACK_CALL replacing param(set_border::col) with stackidx(byte,set_border::OFFSET_STACK_COL) -Calling convention STACK_CALL replacing param(set_bg::col) with stackidx(byte,set_bg::OFFSET_STACK_COL) -Calling convention STACK_CALL adding stack push stackpush(byte) = *run::$2 +Calling convention STACK_CALL replacing param(set_border::col) with stackidx(char,set_border::OFFSET_STACK_COL) +Calling convention STACK_CALL replacing param(set_bg::col) with stackidx(char,set_bg::OFFSET_STACK_COL) +Calling convention STACK_CALL adding stack push stackpush(char) = *run::$2 CONTROL FLOW GRAPH SSA -__stackcall void set_border(byte set_border::col) +__stackcall void set_border(char col) set_border: scope:[set_border] from - set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) + set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) *BORDER = set_border::col#0 to:set_border::@return set_border::@return: scope:[set_border] from set_border return to:@return -__stackcall void set_bg(byte set_bg::col) +__stackcall void set_bg(char col) set_bg: scope:[set_bg] from - set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) + set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) *BACKGROUND = set_bg::col#0 to:set_bg::@return set_bg::@return: scope:[set_bg] from set_bg return to:@return -void run(struct Task* run::task) +void run(struct Task *task) run: scope:[run] from main::@3 run::task#1 = phi( main::@3/run::task#0 ) - run::$3 = (void(byte)**)run::task#1 + run::$3 = (void (**)(char))run::task#1 run::$1 = run::$3 + OFFSET_STRUCT_TASK_HANDLER - run::$4 = (byte*)run::task#1 + run::$4 = (char *)run::task#1 run::$2 = run::$4 + OFFSET_STRUCT_TASK_PARAM - stackpush(byte) = *run::$2 + stackpush(char) = *run::$2 callexecute *(*run::$1) sideeffect stackpullbytes(1) to:run::@return @@ -83,45 +83,45 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BACKGROUND = (byte*)$d021 -constant byte* const BORDER = (byte*)$d020 -constant byte OFFSET_STRUCT_TASK_HANDLER = 1 -constant byte OFFSET_STRUCT_TASK_PARAM = 0 -constant byte SIZEOF_STRUCT_TASK = 3 -constant word STACK_BASE = $103 +__constant char * const BACKGROUND = (char *)$d021 +__constant char * const BORDER = (char *)$d020 +__constant char OFFSET_STRUCT_TASK_HANDLER = 1 +__constant char OFFSET_STRUCT_TASK_PARAM = 0 +__constant char SIZEOF_STRUCT_TASK = 3 +__constant unsigned int STACK_BASE = $103 void __start() void main() -word~ main::$0 -word~ main::$1 -bool~ main::$2 -struct Task*~ main::$3 -byte~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -void run(struct Task* run::task) -void(byte)**~ run::$1 -byte*~ run::$2 -void(byte)**~ run::$3 -byte*~ run::$4 -struct Task* run::task -struct Task* run::task#0 -struct Task* run::task#1 -__stackcall void set_bg(byte set_bg::col) -constant byte set_bg::OFFSET_STACK_COL = 0 -byte set_bg::col -byte set_bg::col#0 -__stackcall void set_border(byte set_border::col) -constant byte set_border::OFFSET_STACK_COL = 0 -byte set_border::col -byte set_border::col#0 -constant struct Task* tasks[] = { { param: 0, handler: &set_border }, { param: 0, handler: &set_bg }, { param: 1, handler: &set_border }, { param: 2, handler: &set_bg } } +unsigned int main::$0 +unsigned int main::$1 +bool main::$2 +struct Task *main::$3 +char main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +void run(struct Task *task) +void (**run::$1)(char) +char *run::$2 +void (**run::$3)(char) +char *run::$4 +struct Task *run::task +struct Task *run::task#0 +struct Task *run::task#1 +__stackcall void set_bg(char col) +__constant char set_bg::OFFSET_STACK_COL = 0 +char set_bg::col +char set_bg::col#0 +__stackcall void set_border(char col) +__constant char set_border::OFFSET_STACK_COL = 0 +char set_border::col +char set_border::col#0 +__constant struct Task tasks[] = { { param: 0, handler: &set_border }, { param: 0, handler: &set_bg }, { param: 1, handler: &set_border }, { param: 2, handler: &set_bg } } -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 main::i#4 Alias run::task#0 = main::$3 @@ -135,11 +135,11 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 Constant main::$0 = sizeof tasks Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [11] stackpush(byte) = *run::$2 -- run::$4[OFFSET_STRUCT_TASK_PARAM] +Converting *(pointer+n) to pointer[n] [11] stackpush(char) = *run::$2 -- run::$4[OFFSET_STRUCT_TASK_PARAM] Converting *(pointer+n) to pointer[n] [12] callexecute *(*run::$1) -- run::$3[OFFSET_STRUCT_TASK_HANDLER] Successful SSA optimization Pass2InlineDerefIdx Simplifying expression containing zero run::$4 in [10] run::$2 = run::$4 + OFFSET_STRUCT_TASK_PARAM -Simplifying expression containing zero run::$4 in [11] stackpush(byte) = run::$4[OFFSET_STRUCT_TASK_PARAM] +Simplifying expression containing zero run::$4 in [11] stackpush(char) = run::$4[OFFSET_STRUCT_TASK_PARAM] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -158,19 +158,19 @@ Constant right-side identified [13] main::$1 = main::$0 / SIZEOF_STRUCT_TASK Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$1 = main::$0/SIZEOF_STRUCT_TASK Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [8] stackpush(byte) = *run::$4 -- ((byte*)tasks)[main::$5] +Converting *(pointer+n) to pointer[n] [8] stackpush(char) = *run::$4 -- ((char *)tasks)[main::$5] Successful SSA optimization Pass2InlineDerefIdx -Eliminating unused variable run::$4 and assignment [7] run::$4 = (byte*)run::task#0 +Eliminating unused variable run::$4 and assignment [7] run::$4 = (char *)run::task#0 Successful SSA optimization PassNEliminateUnusedVars Adding number conversion cast (unumber) 4 in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant value identified (byte*)tasks in [7] stackpush(byte) = ((byte*)tasks)[main::$5] +Constant value identified (char *)tasks in [7] stackpush(char) = ((char *)tasks)[main::$5] Successful SSA optimization Pass2ConstantValues -Inlining Noop Cast [6] run::$3 = (void(byte)**)run::task#0 keeping run::task#0 +Inlining Noop Cast [6] run::$3 = (void (**)(char))run::task#0 keeping run::task#0 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[13] main::$5 = main::i#2 * SIZEOF_STRUCT_TASK Inlining constant with var siblings main::i#0 @@ -180,7 +180,7 @@ Constant inlined main::$0 = 4*SIZEOF_STRUCT_TASK Successful SSA optimization Pass2ConstantInlining Alias main::$5 = main::$7 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -217,28 +217,28 @@ main::@3: scope:[main] from main::@2 [7] main::i#1 = ++ main::i#2 to:main::@1 -__stackcall void set_bg(byte set_bg::col) +__stackcall void set_bg(char col) set_bg: scope:[set_bg] from - [8] set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) + [8] set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) [9] *BACKGROUND = set_bg::col#0 to:set_bg::@return set_bg::@return: scope:[set_bg] from set_bg [10] return to:@return -__stackcall void set_border(byte set_border::col) +__stackcall void set_border(char col) set_border: scope:[set_border] from - [11] set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) + [11] set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) [12] *BORDER = set_border::col#0 to:set_border::@return set_border::@return: scope:[set_border] from set_border [13] return to:@return -void run(struct Task* run::task) +void run(struct Task *task) run: scope:[run] from main::@2 - [14] stackpush(byte) = ((byte*)tasks)[main::$5] - [15] callexecute *(((void(byte)**)run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) + [14] stackpush(char) = ((char *)tasks)[main::$5] + [15] callexecute *(((void (**)(char))run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) sideeffect stackpullbytes(1) to:run::@return run::@return: scope:[run] from run @@ -248,20 +248,20 @@ run::@return: scope:[run] from run VARIABLE REGISTER WEIGHTS void main() -byte~ main::$5 61.5 -byte~ main::$6 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 24.16666666666666 -void run(struct Task* run::task) -struct Task* run::task -struct Task* run::task#0 110.0 -__stackcall void set_bg(byte set_bg::col) -byte set_bg::col -byte set_bg::col#0 4.0 -__stackcall void set_border(byte set_border::col) -byte set_border::col -byte set_border::col#0 4.0 +char main::$5 // 61.5 +char main::$6 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 24.16666666666666 +void run(struct Task *task) +struct Task *run::task +struct Task *run::task#0 // 110.0 +__stackcall void set_bg(char col) +char set_bg::col +char set_bg::col#0 // 4.0 +__stackcall void set_border(char col) +char set_border::col +char set_border::col#0 // 4.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -289,10 +289,10 @@ Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i Statement [4] main::$5 = main::$6 + main::i#2 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Statement [5] run::task#0 = tasks + main::$5 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$5 ] -Statement [8] set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) [ set_bg::col#0 ] ( [ set_bg::col#0 ] { } ) always clobbers reg byte a reg byte x -Statement [11] set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) [ set_border::col#0 ] ( [ set_border::col#0 ] { } ) always clobbers reg byte a reg byte x -Statement [14] stackpush(byte) = ((byte*)tasks)[main::$5] [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a -Statement [15] callexecute *(((void(byte)**)run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [8] set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) [ set_bg::col#0 ] ( [ set_bg::col#0 ] { } ) always clobbers reg byte a reg byte x +Statement [11] set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) [ set_border::col#0 ] ( [ set_border::col#0 ] { } ) always clobbers reg byte a reg byte x +Statement [14] stackpush(char) = ((char *)tasks)[main::$5] [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a +Statement [15] callexecute *(((void (**)(char))run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement sideeffect stackpullbytes(1) always clobbers reg byte a @@ -300,10 +300,10 @@ Statement [2] if(main::i#2<4*SIZEOF_STRUCT_TASK/SIZEOF_STRUCT_TASK) goto main::@ Statement [3] main::$6 = main::i#2 << 1 [ main::i#2 main::$6 ] ( [ main::i#2 main::$6 ] { } ) always clobbers reg byte a Statement [4] main::$5 = main::$6 + main::i#2 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Statement [5] run::task#0 = tasks + main::$5 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a -Statement [8] set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) [ set_bg::col#0 ] ( [ set_bg::col#0 ] { } ) always clobbers reg byte a reg byte x -Statement [11] set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) [ set_border::col#0 ] ( [ set_border::col#0 ] { } ) always clobbers reg byte a reg byte x -Statement [14] stackpush(byte) = ((byte*)tasks)[main::$5] [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a -Statement [15] callexecute *(((void(byte)**)run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [8] set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) [ set_bg::col#0 ] ( [ set_bg::col#0 ] { } ) always clobbers reg byte a reg byte x +Statement [11] set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) [ set_border::col#0 ] ( [ set_border::col#0 ] { } ) always clobbers reg byte a reg byte x +Statement [14] stackpush(char) = ((char *)tasks)[main::$5] [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a +Statement [15] callexecute *(((void (**)(char))run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) [ ] ( run:6 [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement sideeffect stackpullbytes(1) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , Potential registers zp[1]:3 [ main::$6 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -397,10 +397,10 @@ main: { jmp __b1 } // set_bg -// set_bg(byte register(A) col) +// void set_bg(__register(A) char col) set_bg: { .const OFFSET_STACK_COL = 0 - // [8] set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 + // [8] set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_COL,x // [9] *BACKGROUND = set_bg::col#0 -- _deref_pbuc1=vbuaa @@ -412,10 +412,10 @@ set_bg: { rts } // set_border -// set_border(byte register(A) col) +// void set_border(__register(A) char col) set_border: { .const OFFSET_STACK_COL = 0 - // [11] set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 + // [11] set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_COL,x // [12] *BORDER = set_border::col#0 -- _deref_pbuc1=vbuaa @@ -427,13 +427,13 @@ set_border: { rts } // run -// run(struct Task* zp(3) task) +// void run(__zp(3) struct Task *task) run: { .label task = 3 - // [14] stackpush(byte) = ((byte*)tasks)[main::$5] -- _stackpushbyte_=pbuc1_derefidx_vbuxx + // [14] stackpush(char) = ((char *)tasks)[main::$5] -- _stackpushbyte_=pbuc1_derefidx_vbuxx lda tasks,x pha - // [15] callexecute *(((void(byte)**)run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) -- call__deref_(qprz1_derefidx_vbuc1) + // [15] callexecute *(((void (**)(char))run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) -- call__deref_(qprz1_derefidx_vbuc1) ldy #OFFSET_STRUCT_TASK_HANDLER lda (task),y sta !+ +1 @@ -480,29 +480,29 @@ Relabelling long label __b1_from___b1 to __b3 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -constant byte* const BACKGROUND = (byte*) 53281 -constant byte* const BORDER = (byte*) 53280 -constant byte OFFSET_STRUCT_TASK_HANDLER = 1 -constant byte SIZEOF_STRUCT_TASK = 3 -constant word STACK_BASE = $103 +__constant char * const BACKGROUND = (char *) 53281 +__constant char * const BORDER = (char *) 53280 +__constant char OFFSET_STRUCT_TASK_HANDLER = 1 +__constant char SIZEOF_STRUCT_TASK = 3 +__constant unsigned int STACK_BASE = $103 void main() -byte~ main::$5 reg byte x 61.5 -byte~ main::$6 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 24.16666666666666 -void run(struct Task* run::task) -struct Task* run::task -struct Task* run::task#0 task zp[2]:3 110.0 -__stackcall void set_bg(byte set_bg::col) -constant byte set_bg::OFFSET_STACK_COL = 0 -byte set_bg::col -byte set_bg::col#0 reg byte a 4.0 -__stackcall void set_border(byte set_border::col) -constant byte set_border::OFFSET_STACK_COL = 0 -byte set_border::col -byte set_border::col#0 reg byte a 4.0 -constant struct Task* tasks[] = { { param: 0, handler: &set_border }, { param: 0, handler: &set_bg }, { param: 1, handler: &set_border }, { param: 2, handler: &set_bg } } +char main::$5 // reg byte x 61.5 +char main::$6 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 24.16666666666666 +void run(struct Task *task) +struct Task *run::task +struct Task *run::task#0 // task zp[2]:3 110.0 +__stackcall void set_bg(char col) +__constant char set_bg::OFFSET_STACK_COL = 0 +char set_bg::col +char set_bg::col#0 // reg byte a 4.0 +__stackcall void set_border(char col) +__constant char set_border::OFFSET_STACK_COL = 0 +char set_border::col +char set_border::col#0 // reg byte a 4.0 +__constant struct Task tasks[] = { { param: 0, handler: &set_border }, { param: 0, handler: &set_bg }, { param: 1, handler: &set_border }, { param: 2, handler: &set_bg } } zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$6 ] @@ -580,10 +580,10 @@ main: { jmp __b1 } // set_bg -// set_bg(byte register(A) col) +// void set_bg(__register(A) char col) set_bg: { .const OFFSET_STACK_COL = 0 - // [8] set_bg::col#0 = stackidx(byte,set_bg::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 + // [8] set_bg::col#0 = stackidx(char,set_bg::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_COL,x // *BACKGROUND = col @@ -595,10 +595,10 @@ set_bg: { rts } // set_border -// set_border(byte register(A) col) +// void set_border(__register(A) char col) set_border: { .const OFFSET_STACK_COL = 0 - // [11] set_border::col#0 = stackidx(byte,set_border::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 + // [11] set_border::col#0 = stackidx(char,set_border::OFFSET_STACK_COL) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_COL,x // *BORDER = col @@ -610,14 +610,14 @@ set_border: { rts } // run -// run(struct Task* zp(3) task) +// void run(__zp(3) struct Task *task) run: { .label task = 3 // task->handler(task->param) - // [14] stackpush(byte) = ((byte*)tasks)[main::$5] -- _stackpushbyte_=pbuc1_derefidx_vbuxx + // [14] stackpush(char) = ((char *)tasks)[main::$5] -- _stackpushbyte_=pbuc1_derefidx_vbuxx lda tasks,x pha - // [15] callexecute *(((void(byte)**)run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) -- call__deref_(qprz1_derefidx_vbuc1) + // [15] callexecute *(((void (**)(char))run::task#0)[OFFSET_STRUCT_TASK_HANDLER]) -- call__deref_(qprz1_derefidx_vbuc1) ldy #OFFSET_STRUCT_TASK_HANDLER lda (task),y sta !+ +1 diff --git a/src/test/ref/function-pointer-return-3.sym b/src/test/ref/function-pointer-return-3.sym index b89229b84..91075af9c 100644 --- a/src/test/ref/function-pointer-return-3.sym +++ b/src/test/ref/function-pointer-return-3.sym @@ -1,26 +1,26 @@ -constant byte* const BACKGROUND = (byte*) 53281 -constant byte* const BORDER = (byte*) 53280 -constant byte OFFSET_STRUCT_TASK_HANDLER = 1 -constant byte SIZEOF_STRUCT_TASK = 3 -constant word STACK_BASE = $103 +__constant char * const BACKGROUND = (char *) 53281 +__constant char * const BORDER = (char *) 53280 +__constant char OFFSET_STRUCT_TASK_HANDLER = 1 +__constant char SIZEOF_STRUCT_TASK = 3 +__constant unsigned int STACK_BASE = $103 void main() -byte~ main::$5 reg byte x 61.5 -byte~ main::$6 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 24.16666666666666 -void run(struct Task* run::task) -struct Task* run::task -struct Task* run::task#0 task zp[2]:3 110.0 -__stackcall void set_bg(byte set_bg::col) -constant byte set_bg::OFFSET_STACK_COL = 0 -byte set_bg::col -byte set_bg::col#0 reg byte a 4.0 -__stackcall void set_border(byte set_border::col) -constant byte set_border::OFFSET_STACK_COL = 0 -byte set_border::col -byte set_border::col#0 reg byte a 4.0 -constant struct Task* tasks[] = { { param: 0, handler: &set_border }, { param: 0, handler: &set_bg }, { param: 1, handler: &set_border }, { param: 2, handler: &set_bg } } +char main::$5 // reg byte x 61.5 +char main::$6 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 24.16666666666666 +void run(struct Task *task) +struct Task *run::task +struct Task *run::task#0 // task zp[2]:3 110.0 +__stackcall void set_bg(char col) +__constant char set_bg::OFFSET_STACK_COL = 0 +char set_bg::col +char set_bg::col#0 // reg byte a 4.0 +__stackcall void set_border(char col) +__constant char set_border::OFFSET_STACK_COL = 0 +char set_border::col +char set_border::col#0 // reg byte a 4.0 +__constant struct Task tasks[] = { { param: 0, handler: &set_border }, { param: 0, handler: &set_bg }, { param: 1, handler: &set_border }, { param: 2, handler: &set_bg } } zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$6 ] diff --git a/src/test/ref/function-pointer-return.cfg b/src/test/ref/function-pointer-return.cfg index 8ceb05fb7..2392aeb00 100644 --- a/src/test/ref/function-pointer-return.cfg +++ b/src/test/ref/function-pointer-return.cfg @@ -1,21 +1,21 @@ -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from [0] *fn2::BG_COLOR = ++ *fn2::BG_COLOR [1] fn2::return#0 = *fn2::BG_COLOR to:fn2::@return fn2::@return: scope:[fn2] from fn2 - [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 + [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [3] return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from [4] *fn1::BORDER_COLOR = ++ *fn1::BORDER_COLOR [5] fn1::return#0 = *fn1::BORDER_COLOR to:fn1::@return fn1::@return: scope:[fn1] from fn1 - [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 + [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [7] return to:@return @@ -36,5 +36,5 @@ main::@3: scope:[main] from main::@2 to:main::@4 main::@4: scope:[main] from main::@2 main::@3 [14] main::f#3 = phi( main::@3/&fn1, main::@2/&fn2 ) - [15] *main::SCREEN = (byte)main::f#3 + [15] *main::SCREEN = (char)main::f#3 to:main::@1 diff --git a/src/test/ref/function-pointer-return.log b/src/test/ref/function-pointer-return.log index f0488d832..b15857a32 100644 --- a/src/test/ref/function-pointer-return.log +++ b/src/test/ref/function-pointer-return.log @@ -1,15 +1,15 @@ -Resolved forward reference fn1 to byte fn1() -Resolved forward reference fn2 to byte fn2() -Setting inferred __stackcall on procedure affected by address-of __stackcall byte fn1() caused by statement main::f = &fn1 -Setting inferred __stackcall on procedure affected by address-of __stackcall byte fn2() caused by statement main::f = &fn2 -Calling convention STACK_CALL adding stack return stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return -Calling convention STACK_CALL adding stack return stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return +Resolved forward reference fn1 to char fn1() +Resolved forward reference fn2 to char fn2() +Setting inferred __stackcall on procedure affected by address-of __stackcall char fn1() caused by statement main::f = &fn1 +Setting inferred __stackcall on procedure affected by address-of __stackcall char fn2() caused by statement main::f = &fn2 +Calling convention STACK_CALL adding stack return stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return +Calling convention STACK_CALL adding stack return stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::f#0 = (byte()*) 0 + main::f#0 = (char (*)()) 0 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -34,13 +34,13 @@ main::@5: scope:[main] from main::@2 main::@4: scope:[main] from main::@3 main::@5 main::i#4 = phi( main::@3/main::i#5, main::@5/main::i#6 ) main::f#3 = phi( main::@3/main::f#1, main::@5/main::f#2 ) - main::SCREEN[0] = (byte)main::f#3 + main::SCREEN[0] = (char)main::f#3 to:main::@1 main::@return: scope:[main] from main::@1 return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from *fn1::BORDER_COLOR = ++ *fn1::BORDER_COLOR fn1::return#0 = *fn1::BORDER_COLOR @@ -48,11 +48,11 @@ fn1: scope:[fn1] from fn1::@return: scope:[fn1] from fn1 fn1::return#2 = phi( fn1/fn1::return#0 ) fn1::return#1 = fn1::return#2 - stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#1 + stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#1 return to:@return -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from *fn2::BG_COLOR = ++ *fn2::BG_COLOR fn2::return#0 = *fn2::BG_COLOR @@ -60,13 +60,13 @@ fn2: scope:[fn2] from fn2::@return: scope:[fn2] from fn2 fn2::return#2 = phi( fn2/fn2::return#0 ) fn2::return#1 = fn2::return#2 - stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#1 + stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#1 return to:@return void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -75,57 +75,57 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant word STACK_BASE = $103 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall byte fn1() -constant byte* const fn1::BORDER_COLOR = (byte*)$d020 -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 -byte fn1::return#1 -byte fn1::return#2 -__stackcall byte fn2() -constant byte* const fn2::BG_COLOR = (byte*)$d021 -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 -byte fn2::return#1 -byte fn2::return#2 +__stackcall char fn1() +__constant char * const fn1::BORDER_COLOR = (char *)$d020 +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 +char fn1::return#1 +char fn1::return#2 +__stackcall char fn2() +__constant char * const fn2::BG_COLOR = (char *)$d021 +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 +char fn2::return#1 +char fn2::return#2 void main() -number~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte()* main::f -byte()* main::f#0 -byte()* main::f#1 -byte()* main::f#2 -byte()* main::f#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 +number main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +char (*main::f)() +char (*main::f#0)() +char (*main::f#1)() +char (*main::f#2)() +char (*main::f#3)() +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 Adding number conversion cast (unumber) 1 in main::$0 = main::i#1 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#1 & (unumber)1 Adding number conversion cast (unumber) 0 in main::$1 = main::$0 == 0 -Adding number conversion cast (unumber) 0 in main::SCREEN[0] = (byte)main::f#3 +Adding number conversion cast (unumber) 0 in main::SCREEN[0] = (char)main::f#3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#1 & 1 +Inferred type updated to char in main::$0 = main::i#1 & 1 Alias main::i#2 = main::i#3 Alias main::i#1 = main::i#5 main::i#6 Alias fn1::return#0 = fn1::return#2 fn1::return#1 @@ -135,14 +135,14 @@ Alias main::i#1 = main::i#4 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [7] if(main::$0==0) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::f#0 = (byte()*) 0 +Constant main::f#0 = (char (*)()) 0 Constant main::i#0 = 0 Constant main::f#1 = &fn1 Constant main::f#2 = &fn2 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [3] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero main::SCREEN in [11] main::SCREEN[0] = (byte)main::f#3 +Simplifying expression containing zero main::SCREEN in [11] main::SCREEN[0] = (char)main::f#3 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -174,23 +174,23 @@ Adding NOP phi() at start of main::@3 FINAL CONTROL FLOW GRAPH -__stackcall byte fn2() +__stackcall char fn2() fn2: scope:[fn2] from [0] *fn2::BG_COLOR = ++ *fn2::BG_COLOR [1] fn2::return#0 = *fn2::BG_COLOR to:fn2::@return fn2::@return: scope:[fn2] from fn2 - [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 + [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [3] return to:@return -__stackcall byte fn1() +__stackcall char fn1() fn1: scope:[fn1] from [4] *fn1::BORDER_COLOR = ++ *fn1::BORDER_COLOR [5] fn1::return#0 = *fn1::BORDER_COLOR to:fn1::@return fn1::@return: scope:[fn1] from fn1 - [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 + [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [7] return to:@return @@ -211,24 +211,24 @@ main::@3: scope:[main] from main::@2 to:main::@4 main::@4: scope:[main] from main::@2 main::@3 [14] main::f#3 = phi( main::@3/&fn1, main::@2/&fn2 ) - [15] *main::SCREEN = (byte)main::f#3 + [15] *main::SCREEN = (char)main::f#3 to:main::@1 VARIABLE REGISTER WEIGHTS -__stackcall byte fn1() -byte fn1::return -byte fn1::return#0 4.0 -__stackcall byte fn2() -byte fn2::return -byte fn2::return#0 4.0 +__stackcall char fn1() +char fn1::return +char fn1::return#0 // 4.0 +__stackcall char fn2() +char fn2::return +char fn2::return#0 // 4.0 void main() -byte~ main::$0 22.0 -byte()* main::f -byte()* main::f#3 -byte main::i -byte main::i#1 5.5 -byte main::i#2 22.0 +char main::$0 // 22.0 +char (*main::f)() +char (*main::f#3)() +char main::i +char main::i#1 // 5.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -248,14 +248,14 @@ Allocated zp[1]:5 [ fn2::return#0 ] Allocated zp[1]:6 [ fn1::return#0 ] Allocated zp[1]:7 [ main::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [15] *main::SCREEN = (byte)main::f#3 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a +Statement [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [15] *main::SCREEN = (char)main::f#3 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x -Statement [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 [ ] ( [ ] { } ) always clobbers reg byte x +Statement [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 [ ] ( [ ] { } ) always clobbers reg byte x Statement [11] main::$0 = main::i#1 & 1 [ main::i#1 main::$0 ] ( [ main::i#1 main::$0 ] { } ) always clobbers reg byte a -Statement [15] *main::SCREEN = (byte)main::f#3 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a +Statement [15] *main::SCREEN = (char)main::f#3 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[2]:3 [ main::f#3 ] : zp[2]:3 , Potential registers zp[1]:5 [ fn2::return#0 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -300,7 +300,7 @@ fn2: { jmp __breturn // fn2::@return __breturn: - // [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [3] return @@ -317,7 +317,7 @@ fn1: { jmp __breturn // fn1::@return __breturn: - // [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [7] return @@ -368,7 +368,7 @@ main: { jmp __b4 // main::@4 __b4: - // [15] *main::SCREEN = (byte)main::f#3 -- _deref_pbuc1=_byte_pprz1 + // [15] *main::SCREEN = (char)main::f#3 -- _deref_pbuc1=_byte_pprz1 lda.z f sta SCREEN // [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1] @@ -400,25 +400,25 @@ Removing instruction __b1_from___b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word STACK_BASE = $103 -__stackcall byte fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 reg byte a 4.0 -__stackcall byte fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 reg byte a 4.0 +__constant unsigned int STACK_BASE = $103 +__stackcall char fn1() +__constant char * const fn1::BORDER_COLOR = (char *) 53280 +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 // reg byte a 4.0 +__stackcall char fn2() +__constant char * const fn2::BG_COLOR = (char *) 53281 +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 // reg byte a 4.0 void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte()* main::f -byte()* main::f#3 f zp[2]:2 -byte main::i -byte main::i#1 reg byte x 5.5 -byte main::i#2 reg byte x 22.0 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char (*main::f)() +char (*main::f#3)() // f zp[2]:2 +char main::i +char main::i#1 // reg byte x 5.5 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::f#3 ] @@ -456,7 +456,7 @@ fn2: { lda BG_COLOR // fn2::@return // } - // [2] stackidx(byte,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [2] stackidx(char,fn2::OFFSET_STACK_RETURN_0) = fn2::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [3] return @@ -474,7 +474,7 @@ fn1: { lda BORDER_COLOR // fn1::@return // } - // [6] stackidx(byte,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [6] stackidx(char,fn1::OFFSET_STACK_RETURN_0) = fn1::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_0,x // [7] return @@ -520,7 +520,7 @@ main: { // main::@4 __b4: // SCREEN[0] = (byte)f - // [15] *main::SCREEN = (byte)main::f#3 -- _deref_pbuc1=_byte_pprz1 + // [15] *main::SCREEN = (char)main::f#3 -- _deref_pbuc1=_byte_pprz1 lda.z f sta SCREEN // [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1] diff --git a/src/test/ref/function-pointer-return.sym b/src/test/ref/function-pointer-return.sym index 8afbf2623..470ce8900 100644 --- a/src/test/ref/function-pointer-return.sym +++ b/src/test/ref/function-pointer-return.sym @@ -1,22 +1,22 @@ -constant word STACK_BASE = $103 -__stackcall byte fn1() -constant byte* const fn1::BORDER_COLOR = (byte*) 53280 -constant byte fn1::OFFSET_STACK_RETURN_0 = 0 -byte fn1::return -byte fn1::return#0 reg byte a 4.0 -__stackcall byte fn2() -constant byte* const fn2::BG_COLOR = (byte*) 53281 -constant byte fn2::OFFSET_STACK_RETURN_0 = 0 -byte fn2::return -byte fn2::return#0 reg byte a 4.0 +__constant unsigned int STACK_BASE = $103 +__stackcall char fn1() +__constant char * const fn1::BORDER_COLOR = (char *) 53280 +__constant char fn1::OFFSET_STACK_RETURN_0 = 0 +char fn1::return +char fn1::return#0 // reg byte a 4.0 +__stackcall char fn2() +__constant char * const fn2::BG_COLOR = (char *) 53281 +__constant char fn2::OFFSET_STACK_RETURN_0 = 0 +char fn2::return +char fn2::return#0 // reg byte a 4.0 void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte()* main::f -byte()* main::f#3 f zp[2]:2 -byte main::i -byte main::i#1 reg byte x 5.5 -byte main::i#2 reg byte x 22.0 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char (*main::f)() +char (*main::f#3)() // f zp[2]:2 +char main::i +char main::i#1 // reg byte x 5.5 +char main::i#2 // reg byte x 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::f#3 ] diff --git a/src/test/ref/gfxbank.cfg b/src/test/ref/gfxbank.cfg index 941478aeb..7ef262998 100644 --- a/src/test/ref/gfxbank.cfg +++ b/src/test/ref/gfxbank.cfg @@ -4,13 +4,13 @@ main: scope:[main] from [0] phi() to:main::vicSelectGfxBank1 main::vicSelectGfxBank1: scope:[main] from main - [1] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + [1] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 to:main::vicSelectGfxBank1_toDd001 main::vicSelectGfxBank1_toDd001: scope:[main] from main::vicSelectGfxBank1 [2] phi() to:main::vicSelectGfxBank1_@1 main::vicSelectGfxBank1_@1: scope:[main] from main::vicSelectGfxBank1_toDd001 - [3] *((byte*)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 + [3] *((char *)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 to:main::@return main::@return: scope:[main] from main::vicSelectGfxBank1_@1 [4] return diff --git a/src/test/ref/gfxbank.log b/src/test/ref/gfxbank.log index 9381cc59e..a88982caf 100644 --- a/src/test/ref/gfxbank.log +++ b/src/test/ref/gfxbank.log @@ -9,12 +9,12 @@ main: scope:[main] from __start to:main::vicSelectGfxBank1 main::vicSelectGfxBank1: scope:[main] from main main::vicSelectGfxBank1_gfx#1 = phi( main/main::vicSelectGfxBank1_gfx#0 ) - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 main::vicSelectGfxBank1_toDd001_gfx#0 = main::vicSelectGfxBank1_gfx#1 to:main::vicSelectGfxBank1_toDd001 main::vicSelectGfxBank1_toDd001: scope:[main] from main::vicSelectGfxBank1 main::vicSelectGfxBank1_toDd001_gfx#1 = phi( main::vicSelectGfxBank1/main::vicSelectGfxBank1_toDd001_gfx#0 ) - main::vicSelectGfxBank1_toDd001_$0 = byte1 (word)main::vicSelectGfxBank1_toDd001_gfx#1 + main::vicSelectGfxBank1_toDd001_$0 = byte1 (unsigned int)main::vicSelectGfxBank1_toDd001_gfx#1 main::vicSelectGfxBank1_toDd001_$1 = main::vicSelectGfxBank1_toDd001_$0 / $40 main::vicSelectGfxBank1_toDd001_$2 = 3 ^ main::vicSelectGfxBank1_toDd001_$1 main::vicSelectGfxBank1_toDd001_return#0 = main::vicSelectGfxBank1_toDd001_$2 @@ -26,7 +26,7 @@ main::vicSelectGfxBank1_toDd001_@return: scope:[main] from main::vicSelectGfxBa main::vicSelectGfxBank1_@1: scope:[main] from main::vicSelectGfxBank1_toDd001_@return main::vicSelectGfxBank1_toDd001_return#3 = phi( main::vicSelectGfxBank1_toDd001_@return/main::vicSelectGfxBank1_toDd001_return#1 ) main::vicSelectGfxBank1_$0 = main::vicSelectGfxBank1_toDd001_return#3 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::vicSelectGfxBank1_$0 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::vicSelectGfxBank1_$0 to:main::@return main::@return: scope:[main] from main::vicSelectGfxBank1_@1 return @@ -34,7 +34,7 @@ main::@return: scope:[main] from main::vicSelectGfxBank1_@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,56 +43,56 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 void __start() void main() -constant byte* const main::PLAYFIELD_CHARSET = (byte*)$2800 -byte~ main::vicSelectGfxBank1_$0 -byte* main::vicSelectGfxBank1_gfx -byte* main::vicSelectGfxBank1_gfx#0 -byte* main::vicSelectGfxBank1_gfx#1 -byte~ main::vicSelectGfxBank1_toDd001_$0 -number~ main::vicSelectGfxBank1_toDd001_$1 -number~ main::vicSelectGfxBank1_toDd001_$2 -byte* main::vicSelectGfxBank1_toDd001_gfx -byte* main::vicSelectGfxBank1_toDd001_gfx#0 -byte* main::vicSelectGfxBank1_toDd001_gfx#1 -byte main::vicSelectGfxBank1_toDd001_return -byte main::vicSelectGfxBank1_toDd001_return#0 -byte main::vicSelectGfxBank1_toDd001_return#1 -byte main::vicSelectGfxBank1_toDd001_return#2 -byte main::vicSelectGfxBank1_toDd001_return#3 +__constant char * const main::PLAYFIELD_CHARSET = (char *)$2800 +char main::vicSelectGfxBank1_$0 +char *main::vicSelectGfxBank1_gfx +char *main::vicSelectGfxBank1_gfx#0 +char *main::vicSelectGfxBank1_gfx#1 +char main::vicSelectGfxBank1_toDd001_$0 +number main::vicSelectGfxBank1_toDd001_$1 +number main::vicSelectGfxBank1_toDd001_$2 +char *main::vicSelectGfxBank1_toDd001_gfx +char *main::vicSelectGfxBank1_toDd001_gfx#0 +char *main::vicSelectGfxBank1_toDd001_gfx#1 +char main::vicSelectGfxBank1_toDd001_return +char main::vicSelectGfxBank1_toDd001_return#0 +char main::vicSelectGfxBank1_toDd001_return#1 +char main::vicSelectGfxBank1_toDd001_return#2 +char main::vicSelectGfxBank1_toDd001_return#3 -Adding number conversion cast (unumber) 3 in *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 +Adding number conversion cast (unumber) 3 in *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 Adding number conversion cast (unumber) $40 in main::vicSelectGfxBank1_toDd001_$1 = main::vicSelectGfxBank1_toDd001_$0 / $40 Adding number conversion cast (unumber) main::vicSelectGfxBank1_toDd001_$1 in main::vicSelectGfxBank1_toDd001_$1 = main::vicSelectGfxBank1_toDd001_$0 / (unumber)$40 Adding number conversion cast (unumber) 3 in main::vicSelectGfxBank1_toDd001_$2 = 3 ^ main::vicSelectGfxBank1_toDd001_$1 Adding number conversion cast (unumber) main::vicSelectGfxBank1_toDd001_$2 in main::vicSelectGfxBank1_toDd001_$2 = (unumber)3 ^ main::vicSelectGfxBank1_toDd001_$1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 +Inlining cast *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (byte*) 10240 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (char *) 10240 Simplifying constant integer cast 3 Simplifying constant integer cast $40 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::vicSelectGfxBank1_toDd001_$1 = main::vicSelectGfxBank1_toDd001_$0 / $40 -Inferred type updated to byte in main::vicSelectGfxBank1_toDd001_$2 = 3 ^ main::vicSelectGfxBank1_toDd001_$1 +Inferred type updated to char in main::vicSelectGfxBank1_toDd001_$1 = main::vicSelectGfxBank1_toDd001_$0 / $40 +Inferred type updated to char in main::vicSelectGfxBank1_toDd001_$2 = 3 ^ main::vicSelectGfxBank1_toDd001_$1 Alias main::vicSelectGfxBank1_gfx#0 = main::vicSelectGfxBank1_gfx#1 main::vicSelectGfxBank1_toDd001_gfx#0 main::vicSelectGfxBank1_toDd001_gfx#1 Alias main::vicSelectGfxBank1_toDd001_return#0 = main::vicSelectGfxBank1_toDd001_$2 main::vicSelectGfxBank1_toDd001_return#2 main::vicSelectGfxBank1_toDd001_return#1 main::vicSelectGfxBank1_toDd001_return#3 main::vicSelectGfxBank1_$0 Successful SSA optimization Pass2AliasElimination Constant main::vicSelectGfxBank1_gfx#0 = main::PLAYFIELD_CHARSET Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::vicSelectGfxBank1_gfx#0 in [2] main::vicSelectGfxBank1_toDd001_$0 = byte1 (word)main::vicSelectGfxBank1_gfx#0 +Constant value identified (unsigned int)main::vicSelectGfxBank1_gfx#0 in [2] main::vicSelectGfxBank1_toDd001_$0 = byte1 (unsigned int)main::vicSelectGfxBank1_gfx#0 Successful SSA optimization Pass2ConstantValues -Simplifying expression containing zero (byte*)CIA2 in [5] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::vicSelectGfxBank1_toDd001_return#0 +Simplifying expression containing zero (char *)CIA2 in [5] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::vicSelectGfxBank1_toDd001_return#0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_MOS6526_CIA_PORT_A Successful SSA optimization PassNEliminateUnusedVars @@ -101,9 +101,9 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [1] main::vicSelectGfxBank1_toDd001_$0 = byte1 (word)main::vicSelectGfxBank1_gfx#0 +Constant right-side identified [1] main::vicSelectGfxBank1_toDd001_$0 = byte1 (unsigned int)main::vicSelectGfxBank1_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::vicSelectGfxBank1_toDd001_$0 = byte1 (word)main::vicSelectGfxBank1_gfx#0 +Constant main::vicSelectGfxBank1_toDd001_$0 = byte1 (unsigned int)main::vicSelectGfxBank1_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [1] main::vicSelectGfxBank1_toDd001_$1 = main::vicSelectGfxBank1_toDd001_$0 / $40 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -140,13 +140,13 @@ main: scope:[main] from [0] phi() to:main::vicSelectGfxBank1 main::vicSelectGfxBank1: scope:[main] from main - [1] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 + [1] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 to:main::vicSelectGfxBank1_toDd001 main::vicSelectGfxBank1_toDd001: scope:[main] from main::vicSelectGfxBank1 [2] phi() to:main::vicSelectGfxBank1_@1 main::vicSelectGfxBank1_@1: scope:[main] from main::vicSelectGfxBank1_toDd001 - [3] *((byte*)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 + [3] *((char *)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 to:main::@return main::@return: scope:[main] from main::vicSelectGfxBank1_@1 [4] return @@ -155,15 +155,15 @@ main::@return: scope:[main] from main::vicSelectGfxBank1_@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::vicSelectGfxBank1_gfx -byte* main::vicSelectGfxBank1_toDd001_gfx -byte main::vicSelectGfxBank1_toDd001_return +char *main::vicSelectGfxBank1_gfx +char *main::vicSelectGfxBank1_toDd001_gfx +char main::vicSelectGfxBank1_toDd001_return Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [MOS6526_CIA] @@ -201,7 +201,7 @@ main: { jmp vicSelectGfxBank1 // main::vicSelectGfxBank1 vicSelectGfxBank1: - // [1] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR // [2] phi from main::vicSelectGfxBank1 to main::vicSelectGfxBank1_toDd001 [phi:main::vicSelectGfxBank1->main::vicSelectGfxBank1_toDd001] @@ -212,7 +212,7 @@ main: { jmp vicSelectGfxBank1___b1 // main::vicSelectGfxBank1_@1 vicSelectGfxBank1___b1: - // [3] *((byte*)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + // [3] *((char *)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2 jmp __breturn @@ -238,13 +238,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 void main() -byte* main::vicSelectGfxBank1_gfx -byte* main::vicSelectGfxBank1_toDd001_gfx -byte main::vicSelectGfxBank1_toDd001_return -constant byte main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = 3 +char *main::vicSelectGfxBank1_gfx +char *main::vicSelectGfxBank1_toDd001_gfx +char main::vicSelectGfxBank1_toDd001_return +__constant char main::vicSelectGfxBank1_toDd001_return#0 = 3 // vicSelectGfxBank1_toDd001_return @@ -272,14 +272,14 @@ main: { .const vicSelectGfxBank1_toDd001_return = 3 // main::vicSelectGfxBank1 // CIA2->PORT_A_DDR = %00000011 - // [1] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR // [2] phi from main::vicSelectGfxBank1 to main::vicSelectGfxBank1_toDd001 [phi:main::vicSelectGfxBank1->main::vicSelectGfxBank1_toDd001] // main::vicSelectGfxBank1_toDd001 // main::vicSelectGfxBank1_@1 // CIA2->PORT_A = toDd00(gfx) - // [3] *((byte*)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + // [3] *((char *)CIA2) = main::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2 // main::@return diff --git a/src/test/ref/gfxbank.sym b/src/test/ref/gfxbank.sym index c0b0a852e..235037354 100644 --- a/src/test/ref/gfxbank.sym +++ b/src/test/ref/gfxbank.sym @@ -1,8 +1,8 @@ -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 void main() -byte* main::vicSelectGfxBank1_gfx -byte* main::vicSelectGfxBank1_toDd001_gfx -byte main::vicSelectGfxBank1_toDd001_return -constant byte main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = 3 +char *main::vicSelectGfxBank1_gfx +char *main::vicSelectGfxBank1_toDd001_gfx +char main::vicSelectGfxBank1_toDd001_return +__constant char main::vicSelectGfxBank1_toDd001_return#0 = 3 // vicSelectGfxBank1_toDd001_return diff --git a/src/test/ref/global-label-problem.asm b/src/test/ref/global-label-problem.asm index c68245f7b..2ba214f29 100644 --- a/src/test/ref/global-label-problem.asm +++ b/src/test/ref/global-label-problem.asm @@ -34,7 +34,7 @@ main: { .byte 0 } .segment Code -// print(byte* zp(2) msg) +// void print(__zp(2) char *msg) print: { .label msg = 2 __b1: diff --git a/src/test/ref/global-label-problem.cfg b/src/test/ref/global-label-problem.cfg index 7120afc46..ba37d4352 100644 --- a/src/test/ref/global-label-problem.cfg +++ b/src/test/ref/global-label-problem.cfg @@ -2,21 +2,21 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call print1 + [5] call print1 to:main::@return main::@return: scope:[main] from main::@2 [6] return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from main main::@1 print1 print1::@1 [7] idx#27 = phi( main/0, main::@1/idx#19, print1/idx#19, print1::@1/idx#19 ) [7] print::msg#7 = phi( main/msg, main::@1/main::msg1, print1/print1::msg, print1::@1/msg ) @@ -38,11 +38,11 @@ print::@2: scope:[print] from print::@1 void print1() print1: scope:[print1] from main::@2 [14] phi() - [15] call print + [15] call print to:print1::@1 print1::@1: scope:[print1] from print1 [16] phi() - [17] call print + [17] call print to:print1::@return print1::@return: scope:[print1] from print1::@1 [18] return diff --git a/src/test/ref/global-label-problem.log b/src/test/ref/global-label-problem.log index fb60a8c05..d104f899d 100644 --- a/src/test/ref/global-label-problem.log +++ b/src/test/ref/global-label-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,18 +6,18 @@ void main() main: scope:[main] from __start::@1 idx#23 = phi( __start::@1/idx#26 ) print::msg#0 = main::msg - call print + call print to:main::@1 main::@1: scope:[main] from main idx#12 = phi( main/idx#8 ) idx#0 = idx#12 print::msg#1 = main::msg1 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#13 = phi( main::@1/idx#8 ) idx#1 = idx#13 - call print1 + call print1 to:main::@3 main::@3: scope:[main] from main::@2 idx#14 = phi( main::@2/idx#6 ) @@ -33,13 +33,13 @@ void print1() print1: scope:[print1] from main::@2 idx#24 = phi( main::@2/idx#1 ) print::msg#2 = print1::msg - call print + call print to:print1::@1 print1::@1: scope:[print1] from print1 idx#16 = phi( print1/idx#8 ) idx#4 = idx#16 print::msg#3 = print1::msg1 - call print + call print to:print1::@2 print1::@2: scope:[print1] from print1::@1 idx#17 = phi( print1::@1/idx#8 ) @@ -51,7 +51,7 @@ print1::@return: scope:[print1] from print1::@2 return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from main main::@1 print1 print1::@1 idx#27 = phi( main/idx#23, main::@1/idx#0, print1/idx#24, print1::@1/idx#4 ) print::msg#7 = phi( main/print::msg#0, main::@1/print::msg#1, print1/print::msg#2, print1::@1/print::msg#3 ) @@ -83,7 +83,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#26 = phi( __start::__init1/idx#9 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#21 = phi( __start::@1/idx#3 ) @@ -96,61 +96,61 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant byte* main::msg[2] = "a" -constant byte* main::msg1[2] = "b" -void print(byte* print::msg) -bool~ print::$0 -byte* print::msg -byte* print::msg#0 -byte* print::msg#1 -byte* print::msg#2 -byte* print::msg#3 -byte* print::msg#4 -byte* print::msg#5 -byte* print::msg#6 -byte* print::msg#7 +__constant char main::msg[2] = "a" +__constant char main::msg1[2] = "b" +void print(char *msg) +bool print::$0 +char *print::msg +char *print::msg#0 +char *print::msg#1 +char *print::msg#2 +char *print::msg#3 +char *print::msg#4 +char *print::msg#5 +char *print::msg#6 +char *print::msg#7 void print1() -constant byte* print1::msg[2] = "c" -constant byte* print1::msg1[2] = "a" +__constant char print1::msg[2] = "c" +__constant char print1::msg1[2] = "a" Adding number conversion cast (unumber) 0 in print::$0 = 0 != *print::msg#5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#12 Alias idx#1 = idx#13 @@ -231,21 +231,21 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call print1 + [5] call print1 to:main::@return main::@return: scope:[main] from main::@2 [6] return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from main main::@1 print1 print1::@1 [7] idx#27 = phi( main/0, main::@1/idx#19, print1/idx#19, print1::@1/idx#19 ) [7] print::msg#7 = phi( main/msg, main::@1/main::msg1, print1/print1::msg, print1::@1/msg ) @@ -267,11 +267,11 @@ print::@2: scope:[print] from print::@1 void print1() print1: scope:[print1] from main::@2 [14] phi() - [15] call print + [15] call print to:print1::@1 print1::@1: scope:[print1] from print1 [16] phi() - [17] call print + [17] call print to:print1::@return print1::@return: scope:[print1] from print1::@1 [18] return @@ -279,16 +279,16 @@ print1::@return: scope:[print1] from print1::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#19 284.3636363636364 -byte idx#27 125.0 -byte idx#7 1001.0 +char idx +char idx#19 // 284.3636363636364 +char idx#27 // 125.0 +char idx#7 // 1001.0 void main() -void print(byte* print::msg) -byte* print::msg -byte* print::msg#4 2002.0 -byte* print::msg#5 1026.25 -byte* print::msg#7 101.0 +void print(char *msg) +char *print::msg +char *print::msg#4 // 2002.0 +char *print::msg#5 // 1026.25 +char *print::msg#7 // 101.0 void print1() Initial phi equivalence classes @@ -340,7 +340,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] print_from_main: // [7] phi idx#27 = 0 [phi:main->print#0] -- vbuxx=vbuc1 @@ -356,7 +356,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [7] phi idx#27 = idx#19 [phi:main::@1->print#0] -- register_copy @@ -371,7 +371,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print1 + // [5] call print1 // [14] phi from main::@2 to print1 [phi:main::@2->print1] print1_from___b2: jsr print1 @@ -386,7 +386,7 @@ main: { } .segment Code // print -// print(byte* zp(2) msg) +// void print(__zp(2) char *msg) print: { .label msg = 2 // [8] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] @@ -424,7 +424,7 @@ print: { } // print1 print1: { - // [15] call print + // [15] call print // [7] phi from print1 to print [phi:print1->print] print_from_print1: // [7] phi idx#27 = idx#19 [phi:print1->print#0] -- register_copy @@ -439,7 +439,7 @@ print1: { jmp __b1 // print1::@1 __b1: - // [17] call print + // [17] call print // [7] phi from print1::@1 to print [phi:print1::@1->print] print_from___b1: // [7] phi idx#27 = idx#19 [phi:print1::@1->print#0] -- register_copy @@ -492,21 +492,21 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#19 reg byte x 284.3636363636364 -byte idx#27 reg byte x 125.0 -byte idx#7 reg byte x 1001.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#19 // reg byte x 284.3636363636364 +char idx#27 // reg byte x 125.0 +char idx#7 // reg byte x 1001.0 void main() -constant byte* main::msg1[2] = "b" -constant byte* msg[2] = "a" -void print(byte* print::msg) -byte* print::msg -byte* print::msg#4 msg zp[2]:2 2002.0 -byte* print::msg#5 msg zp[2]:2 1026.25 -byte* print::msg#7 msg zp[2]:2 101.0 +__constant char main::msg1[2] = "b" +__constant char msg[2] = "a" +void print(char *msg) +char *print::msg +char *print::msg#4 // msg zp[2]:2 2002.0 +char *print::msg#5 // msg zp[2]:2 1026.25 +char *print::msg#7 // msg zp[2]:2 101.0 void print1() -constant byte* print1::msg[2] = "c" +__constant char print1::msg[2] = "c" reg byte x [ idx#27 idx#19 idx#7 ] zp[2]:2 [ print::msg#5 print::msg#7 print::msg#4 ] @@ -534,7 +534,7 @@ Score: 510 // main main: { // print("a") - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] // [7] phi idx#27 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 @@ -547,7 +547,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print("b") - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] // [7] phi idx#27 = idx#19 [phi:main::@1->print#0] -- register_copy // [7] phi print::msg#7 = main::msg1 [phi:main::@1->print#1] -- pbuz1=pbuc1 @@ -559,7 +559,7 @@ main: { // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print1() - // [5] call print1 + // [5] call print1 // [14] phi from main::@2 to print1 [phi:main::@2->print1] jsr print1 // main::@return @@ -572,7 +572,7 @@ main: { } .segment Code // print -// print(byte* zp(2) msg) +// void print(__zp(2) char *msg) print: { .label msg = 2 // [8] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] @@ -610,7 +610,7 @@ print: { // print1 print1: { // print("c") - // [15] call print + // [15] call print // [7] phi from print1 to print [phi:print1->print] // [7] phi idx#27 = idx#19 [phi:print1->print#0] -- register_copy // [7] phi print::msg#7 = print1::msg [phi:print1->print#1] -- pbuz1=pbuc1 @@ -622,7 +622,7 @@ print1: { // [16] phi from print1 to print1::@1 [phi:print1->print1::@1] // print1::@1 // print("a") - // [17] call print + // [17] call print // [7] phi from print1::@1 to print [phi:print1::@1->print] // [7] phi idx#27 = idx#19 [phi:print1::@1->print#0] -- register_copy // [7] phi print::msg#7 = msg [phi:print1::@1->print#1] -- pbuz1=pbuc1 diff --git a/src/test/ref/global-label-problem.sym b/src/test/ref/global-label-problem.sym index 289175f67..ad121a1d4 100644 --- a/src/test/ref/global-label-problem.sym +++ b/src/test/ref/global-label-problem.sym @@ -1,18 +1,18 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#19 reg byte x 284.3636363636364 -byte idx#27 reg byte x 125.0 -byte idx#7 reg byte x 1001.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#19 // reg byte x 284.3636363636364 +char idx#27 // reg byte x 125.0 +char idx#7 // reg byte x 1001.0 void main() -constant byte* main::msg1[2] = "b" -constant byte* msg[2] = "a" -void print(byte* print::msg) -byte* print::msg -byte* print::msg#4 msg zp[2]:2 2002.0 -byte* print::msg#5 msg zp[2]:2 1026.25 -byte* print::msg#7 msg zp[2]:2 101.0 +__constant char main::msg1[2] = "b" +__constant char msg[2] = "a" +void print(char *msg) +char *print::msg +char *print::msg#4 // msg zp[2]:2 2002.0 +char *print::msg#5 // msg zp[2]:2 1026.25 +char *print::msg#7 // msg zp[2]:2 101.0 void print1() -constant byte* print1::msg[2] = "c" +__constant char print1::msg[2] = "c" reg byte x [ idx#27 idx#19 idx#7 ] zp[2]:2 [ print::msg#5 print::msg#7 print::msg#4 ] diff --git a/src/test/ref/global-pc-multiple.log b/src/test/ref/global-pc-multiple.log index 5f6aedca8..f2c01c47e 100644 --- a/src/test/ref/global-pc-multiple.log +++ b/src/test/ref/global-pc-multiple.log @@ -13,7 +13,7 @@ main::@2: scope:[main] from main::@1 if(main::$0) goto main::@3 to:main::@4 main::@3: scope:[main] from main::@2 - call incScreen + call incScreen to:main::@5 main::@5: scope:[main] from main::@3 to:main::@1 @@ -34,7 +34,7 @@ incScreen::@return: scope:[incScreen] from incScreen void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,25 +43,25 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const RASTER = (byte*)$d012 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const RASTER = (char *)$d012 void __start() void incScreen() void main() -bool~ main::$0 +bool main::$0 Adding number conversion cast (unumber) $1e in main::$0 = *RASTER < $1e Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BG_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53266 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53266 Simplifying constant integer cast $1e Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $1e -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $1e +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [3] if(*RASTER<$1e) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -103,7 +103,7 @@ main::@3: scope:[main] from main::@1 to:main::@1 main::@2: scope:[main] from main::@1 [3] phi() - [4] call incScreen + [4] call incScreen to:main::@1 void incScreen() @@ -174,7 +174,7 @@ main: { jmp __b2 // main::@2 __b2: - // [4] call incScreen + // [4] call incScreen jsr incScreen jmp __b1 } @@ -205,8 +205,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const RASTER = (char *) 53266 void incScreen() void main() @@ -252,7 +252,7 @@ main: { // main::@2 __b2: // incScreen() - // [4] call incScreen + // [4] call incScreen jsr incScreen jmp __b1 } diff --git a/src/test/ref/global-pc-multiple.sym b/src/test/ref/global-pc-multiple.sym index e11a3de77..fdd071a43 100644 --- a/src/test/ref/global-pc-multiple.sym +++ b/src/test/ref/global-pc-multiple.sym @@ -1,5 +1,5 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const RASTER = (char *) 53266 void incScreen() void main() diff --git a/src/test/ref/global-pc.log b/src/test/ref/global-pc.log index ca70cf142..22eea3a5e 100644 --- a/src/test/ref/global-pc.log +++ b/src/test/ref/global-pc.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,15 +27,15 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const RASTER = (byte*)$d012 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const RASTER = (char *)$d012 void __start() void main() -byte main::col -byte main::col#0 +char main::col +char main::col#0 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53266 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53266 Successful SSA optimization PassNCastSimplification if() condition always true - replacing block destination [1] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -68,8 +68,8 @@ main::@1: scope:[main] from main main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::col -byte main::col#0 22.0 +char main::col +char main::col#0 // 22.0 Initial phi equivalence classes Added variable main::col#0 to live range equivalence class [ main::col#0 ] @@ -122,11 +122,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const RASTER = (char *) 53266 void main() -byte main::col -byte main::col#0 reg byte a 22.0 +char main::col +char main::col#0 // reg byte a 22.0 reg byte a [ main::col#0 ] diff --git a/src/test/ref/global-pc.sym b/src/test/ref/global-pc.sym index d38dcbfd7..c95d0d885 100644 --- a/src/test/ref/global-pc.sym +++ b/src/test/ref/global-pc.sym @@ -1,7 +1,7 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const RASTER = (char *) 53266 void main() -byte main::col -byte main::col#0 reg byte a 22.0 +char main::col +char main::col#0 // reg byte a 22.0 reg byte a [ main::col#0 ] diff --git a/src/test/ref/halfscii.log b/src/test/ref/halfscii.log index d2f3c1bd1..238ddf923 100644 --- a/src/test/ref/halfscii.log +++ b/src/test/ref/halfscii.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA @@ -146,7 +146,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -155,113 +155,113 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* CHARGEN = (byte*)$d000 -constant byte* CHARSET4 = (byte*)$2800 -constant byte* D018 = (byte*)$d018 -constant byte* PROCPORT = (byte*)1 -constant byte* SCREEN = (byte*)$400 +__constant char *CHARGEN = (char *)$d000 +__constant char *CHARSET4 = (char *)$2800 +__constant char *D018 = (char *)$d018 +__constant char *PROCPORT = (char *)1 +__constant char *SCREEN = (char *)$400 void __start() -constant byte* bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } +__constant char bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } void main() -number~ main::$1 -number~ main::$10 -number~ main::$11 -number~ main::$12 -number~ main::$13 -number~ main::$14 -number~ main::$15 -bool~ main::$16 -bool~ main::$17 -number~ main::$18 -number~ main::$19 -number~ main::$2 -number~ main::$20 -number~ main::$21 -number~ main::$22 -number~ main::$23 -number~ main::$24 -bool~ main::$25 -bool~ main::$26 -number~ main::$27 -number~ main::$28 -number~ main::$29 -number~ main::$3 -number~ main::$30 -number~ main::$31 -number~ main::$32 -bool~ main::$33 -bool~ main::$34 -number~ main::$35 -number~ main::$36 -byte*~ main::$37 -byte*~ main::$38 -bool~ main::$39 -number~ main::$4 -bool~ main::$40 -number~ main::$5 -number~ main::$6 -bool~ main::$7 -bool~ main::$8 -number~ main::$9 -byte main::bits -byte main::bits#0 -byte main::bits#1 -byte main::bits#2 -byte main::bits#3 -byte main::bits_gen -byte main::bits_gen#0 -byte main::bits_gen#1 -byte main::bits_gen#10 -byte main::bits_gen#11 -byte main::bits_gen#12 -byte main::bits_gen#13 -byte main::bits_gen#14 -byte main::bits_gen#15 -byte main::bits_gen#16 -byte main::bits_gen#2 -byte main::bits_gen#3 -byte main::bits_gen#4 -byte main::bits_gen#5 -byte main::bits_gen#6 -byte main::bits_gen#7 -byte main::bits_gen#8 -byte main::bits_gen#9 -byte* main::chargen -byte* main::chargen#0 -byte* main::chargen#1 -byte* main::chargen#10 -byte* main::chargen#2 -byte* main::chargen#3 -byte* main::chargen#4 -byte* main::chargen#5 -byte* main::chargen#6 -byte* main::chargen#7 -byte* main::chargen#8 -byte* main::chargen#9 -byte* main::chargen1 -byte* main::chargen1#0 -byte* main::chargen1#1 -byte* main::chargen1#2 -byte* main::chargen1#3 -byte* main::chargen1#4 -byte* main::chargen1#5 -byte* main::chargen1#6 -byte* main::charset4 -byte* main::charset4#0 -byte* main::charset4#1 -byte* main::charset4#10 -byte* main::charset4#2 -byte* main::charset4#3 -byte* main::charset4#4 -byte* main::charset4#5 -byte* main::charset4#6 -byte* main::charset4#7 -byte* main::charset4#8 -byte* main::charset4#9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +number main::$1 +number main::$10 +number main::$11 +number main::$12 +number main::$13 +number main::$14 +number main::$15 +bool main::$16 +bool main::$17 +number main::$18 +number main::$19 +number main::$2 +number main::$20 +number main::$21 +number main::$22 +number main::$23 +number main::$24 +bool main::$25 +bool main::$26 +number main::$27 +number main::$28 +number main::$29 +number main::$3 +number main::$30 +number main::$31 +number main::$32 +bool main::$33 +bool main::$34 +number main::$35 +number main::$36 +char *main::$37 +char *main::$38 +bool main::$39 +number main::$4 +bool main::$40 +number main::$5 +number main::$6 +bool main::$7 +bool main::$8 +number main::$9 +char main::bits +char main::bits#0 +char main::bits#1 +char main::bits#2 +char main::bits#3 +char main::bits_gen +char main::bits_gen#0 +char main::bits_gen#1 +char main::bits_gen#10 +char main::bits_gen#11 +char main::bits_gen#12 +char main::bits_gen#13 +char main::bits_gen#14 +char main::bits_gen#15 +char main::bits_gen#16 +char main::bits_gen#2 +char main::bits_gen#3 +char main::bits_gen#4 +char main::bits_gen#5 +char main::bits_gen#6 +char main::bits_gen#7 +char main::bits_gen#8 +char main::bits_gen#9 +char *main::chargen +char *main::chargen#0 +char *main::chargen#1 +char *main::chargen#10 +char *main::chargen#2 +char *main::chargen#3 +char *main::chargen#4 +char *main::chargen#5 +char *main::chargen#6 +char *main::chargen#7 +char *main::chargen#8 +char *main::chargen#9 +char *main::chargen1 +char *main::chargen1#0 +char *main::chargen1#1 +char *main::chargen1#2 +char *main::chargen1#3 +char *main::chargen1#4 +char *main::chargen1#5 +char *main::chargen1#6 +char *main::charset4 +char *main::charset4#0 +char *main::charset4#1 +char *main::charset4#10 +char *main::charset4#2 +char *main::charset4#3 +char *main::charset4#4 +char *main::charset4#5 +char *main::charset4#6 +char *main::charset4#7 +char *main::charset4#8 +char *main::charset4#9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) $32 in *PROCPORT = $32 Adding number conversion cast (unumber) 1 in main::chargen1#0 = main::chargen#2 + 1 @@ -330,11 +330,11 @@ Inlining cast *PROCPORT = (unumber)$32 Inlining cast *PROCPORT = (unumber)$37 Inlining cast *D018 = (unumber)$19 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 10240 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 10240 Simplifying constant integer cast $32 Simplifying constant integer cast 1 Simplifying constant integer cast $60 @@ -370,69 +370,69 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $37 Simplifying constant integer cast $19 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $60 -Finalized unsigned number type (byte) $60 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (word) $800 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $37 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $60 +Finalized unsigned number type (char) $60 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (unsigned int) $800 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $37 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = *main::chargen#2 & $60 -Inferred type updated to byte in main::$2 = *main::chargen1#0 & $60 -Inferred type updated to byte in main::$3 = main::$2 / 4 -Inferred type updated to byte in main::$4 = main::$1 | main::$3 -Inferred type updated to byte in main::$5 = main::$4 / 2 -Inferred type updated to byte in main::$6 = main::$5 / 4 -Inferred type updated to byte in main::$10 = main::bits_gen#9 * 2 -Inferred type updated to byte in main::$11 = *main::chargen#3 & $18 -Inferred type updated to byte in main::$12 = *main::chargen1#1 & $18 -Inferred type updated to byte in main::$13 = main::$12 / 4 -Inferred type updated to byte in main::$14 = main::$11 | main::$13 -Inferred type updated to byte in main::$15 = main::$14 / 2 -Inferred type updated to byte in main::$9 = main::bits_gen#10 + 1 -Inferred type updated to byte in main::$19 = main::bits_gen#11 * 2 -Inferred type updated to byte in main::$20 = *main::chargen#4 & 6 -Inferred type updated to byte in main::$21 = main::$20 * 2 -Inferred type updated to byte in main::$22 = *main::chargen1#2 & 6 -Inferred type updated to byte in main::$23 = main::$22 / 2 -Inferred type updated to byte in main::$24 = main::$21 | main::$23 -Inferred type updated to byte in main::$18 = main::bits_gen#12 + 1 -Inferred type updated to byte in main::$28 = main::bits_gen#13 * 2 -Inferred type updated to byte in main::$29 = *main::chargen#5 & 1 -Inferred type updated to byte in main::$30 = main::$29 * 4 -Inferred type updated to byte in main::$31 = *main::chargen1#3 & 1 -Inferred type updated to byte in main::$32 = main::$30 | main::$31 -Inferred type updated to byte in main::$27 = main::bits_gen#14 + 1 -Inferred type updated to byte in main::$36 = main::bits_gen#15 * 2 -Inferred type updated to byte in main::$35 = main::bits_gen#16 + 1 +Inferred type updated to char in main::$1 = *main::chargen#2 & $60 +Inferred type updated to char in main::$2 = *main::chargen1#0 & $60 +Inferred type updated to char in main::$3 = main::$2 / 4 +Inferred type updated to char in main::$4 = main::$1 | main::$3 +Inferred type updated to char in main::$5 = main::$4 / 2 +Inferred type updated to char in main::$6 = main::$5 / 4 +Inferred type updated to char in main::$10 = main::bits_gen#9 * 2 +Inferred type updated to char in main::$11 = *main::chargen#3 & $18 +Inferred type updated to char in main::$12 = *main::chargen1#1 & $18 +Inferred type updated to char in main::$13 = main::$12 / 4 +Inferred type updated to char in main::$14 = main::$11 | main::$13 +Inferred type updated to char in main::$15 = main::$14 / 2 +Inferred type updated to char in main::$9 = main::bits_gen#10 + 1 +Inferred type updated to char in main::$19 = main::bits_gen#11 * 2 +Inferred type updated to char in main::$20 = *main::chargen#4 & 6 +Inferred type updated to char in main::$21 = main::$20 * 2 +Inferred type updated to char in main::$22 = *main::chargen1#2 & 6 +Inferred type updated to char in main::$23 = main::$22 / 2 +Inferred type updated to char in main::$24 = main::$21 | main::$23 +Inferred type updated to char in main::$18 = main::bits_gen#12 + 1 +Inferred type updated to char in main::$28 = main::bits_gen#13 * 2 +Inferred type updated to char in main::$29 = *main::chargen#5 & 1 +Inferred type updated to char in main::$30 = main::$29 * 4 +Inferred type updated to char in main::$31 = *main::chargen1#3 & 1 +Inferred type updated to char in main::$32 = main::$30 | main::$31 +Inferred type updated to char in main::$27 = main::bits_gen#14 + 1 +Inferred type updated to char in main::$36 = main::bits_gen#15 * 2 +Inferred type updated to char in main::$35 = main::bits_gen#16 + 1 Inversing boolean not [15] main::$8 = main::bits#0 < 2 from [14] main::$7 = main::bits#0 >= 2 Inversing boolean not [27] main::$17 = main::bits#1 < 2 from [26] main::$16 = main::bits#1 >= 2 Inversing boolean not [42] main::$26 = main::bits#2 < 2 from [41] main::$25 = main::bits#2 >= 2 @@ -494,7 +494,7 @@ Adding number conversion cast (unumber) 0 in [53] if(main::i#1!=0) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::bits_gen#2 = 1 Successful SSA optimization Pass2ConstantIdentification @@ -641,54 +641,54 @@ main::@return: scope:[main] from main::@12 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 7.333333333333333 -byte~ main::$11 7.333333333333333 -byte~ main::$12 22.0 -byte~ main::$13 22.0 -byte~ main::$14 22.0 -byte~ main::$15 22.0 -byte~ main::$2 22.0 -byte~ main::$20 22.0 -byte~ main::$21 7.333333333333333 -byte~ main::$22 22.0 -byte~ main::$23 22.0 -byte~ main::$24 22.0 -byte~ main::$29 22.0 -byte~ main::$3 22.0 -byte~ main::$30 11.0 -byte~ main::$31 22.0 -byte~ main::$32 22.0 -byte~ main::$4 22.0 -byte~ main::$5 22.0 -byte~ main::$6 22.0 -byte main::bits -byte main::bits#0 22.0 -byte main::bits#1 22.0 -byte main::bits#2 22.0 -byte main::bits#3 22.0 -byte main::bits_gen -byte main::bits_gen#1 4.125 -byte main::bits_gen#11 33.0 -byte main::bits_gen#13 33.0 -byte main::bits_gen#14 4.125 -byte main::bits_gen#15 33.0 -byte main::bits_gen#16 4.714285714285714 -byte main::bits_gen#4 22.0 -byte main::bits_gen#6 22.0 -byte main::bits_gen#7 22.0 -byte main::bits_gen#8 22.0 -byte main::bits_gen#9 11.0 -byte* main::chargen -byte* main::chargen#1 16.5 -byte* main::chargen#10 1.75 -byte* main::chargen1 -byte* main::chargen1#0 1.6176470588235294 -byte* main::charset4 -byte* main::charset4#1 7.333333333333333 -byte* main::charset4#10 0.7674418604651163 -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::$1 // 7.333333333333333 +char main::$11 // 7.333333333333333 +char main::$12 // 22.0 +char main::$13 // 22.0 +char main::$14 // 22.0 +char main::$15 // 22.0 +char main::$2 // 22.0 +char main::$20 // 22.0 +char main::$21 // 7.333333333333333 +char main::$22 // 22.0 +char main::$23 // 22.0 +char main::$24 // 22.0 +char main::$29 // 22.0 +char main::$3 // 22.0 +char main::$30 // 11.0 +char main::$31 // 22.0 +char main::$32 // 22.0 +char main::$4 // 22.0 +char main::$5 // 22.0 +char main::$6 // 22.0 +char main::bits +char main::bits#0 // 22.0 +char main::bits#1 // 22.0 +char main::bits#2 // 22.0 +char main::bits#3 // 22.0 +char main::bits_gen +char main::bits_gen#1 // 4.125 +char main::bits_gen#11 // 33.0 +char main::bits_gen#13 // 33.0 +char main::bits_gen#14 // 4.125 +char main::bits_gen#15 // 33.0 +char main::bits_gen#16 // 4.714285714285714 +char main::bits_gen#4 // 22.0 +char main::bits_gen#6 // 22.0 +char main::bits_gen#7 // 22.0 +char main::bits_gen#8 // 22.0 +char main::bits_gen#9 // 11.0 +char *main::chargen +char *main::chargen#1 // 16.5 +char *main::chargen#10 // 1.75 +char *main::chargen1 +char *main::chargen1#0 // 1.6176470588235294 +char *main::charset4 +char *main::charset4#1 // 7.333333333333333 +char *main::charset4#10 // 0.7674418604651163 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::chargen#10 main::chargen#1 ] @@ -1304,61 +1304,61 @@ Fixing long branch [133] bcc __b1 to bcs Fixing long branch [139] bcc __b1 to bcs FINAL SYMBOL TABLE -constant byte* CHARGEN = (byte*) 53248 -constant byte* CHARSET4 = (byte*) 10240 -constant byte* D018 = (byte*) 53272 -constant byte* PROCPORT = (byte*) 1 -constant byte* SCREEN = (byte*) 1024 -constant byte* bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } +__constant char *CHARGEN = (char *) 53248 +__constant char *CHARSET4 = (char *) 10240 +__constant char *D018 = (char *) 53272 +__constant char *PROCPORT = (char *) 1 +__constant char *SCREEN = (char *) 1024 +__constant char bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } void main() -byte~ main::$1 zp[1]:8 7.333333333333333 -byte~ main::$11 zp[1]:9 7.333333333333333 -byte~ main::$12 reg byte a 22.0 -byte~ main::$13 reg byte a 22.0 -byte~ main::$14 reg byte a 22.0 -byte~ main::$15 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$20 reg byte a 22.0 -byte~ main::$21 zp[1]:10 7.333333333333333 -byte~ main::$22 reg byte a 22.0 -byte~ main::$23 reg byte a 22.0 -byte~ main::$24 reg byte a 22.0 -byte~ main::$29 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$30 zp[1]:11 11.0 -byte~ main::$31 reg byte a 22.0 -byte~ main::$32 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$5 reg byte a 22.0 -byte~ main::$6 reg byte a 22.0 -byte main::bits -byte main::bits#0 reg byte a 22.0 -byte main::bits#1 reg byte a 22.0 -byte main::bits#2 reg byte a 22.0 -byte main::bits#3 reg byte a 22.0 -byte main::bits_gen -byte main::bits_gen#1 reg byte x 4.125 -byte main::bits_gen#11 reg byte x 33.0 -byte main::bits_gen#13 reg byte x 33.0 -byte main::bits_gen#14 reg byte x 4.125 -byte main::bits_gen#15 reg byte x 33.0 -byte main::bits_gen#16 reg byte x 4.714285714285714 -byte main::bits_gen#4 reg byte x 22.0 -byte main::bits_gen#6 reg byte x 22.0 -byte main::bits_gen#7 reg byte a 22.0 -byte main::bits_gen#8 reg byte x 22.0 -byte main::bits_gen#9 reg byte a 11.0 -byte* main::chargen -byte* main::chargen#1 chargen zp[2]:2 16.5 -byte* main::chargen#10 chargen zp[2]:2 1.75 -byte* main::chargen1 -byte* main::chargen1#0 chargen1 zp[2]:6 1.6176470588235294 -byte* main::charset4 -byte* main::charset4#1 charset4 zp[2]:4 7.333333333333333 -byte* main::charset4#10 charset4 zp[2]:4 0.7674418604651163 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 +char main::$1 // zp[1]:8 7.333333333333333 +char main::$11 // zp[1]:9 7.333333333333333 +char main::$12 // reg byte a 22.0 +char main::$13 // reg byte a 22.0 +char main::$14 // reg byte a 22.0 +char main::$15 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$20 // reg byte a 22.0 +char main::$21 // zp[1]:10 7.333333333333333 +char main::$22 // reg byte a 22.0 +char main::$23 // reg byte a 22.0 +char main::$24 // reg byte a 22.0 +char main::$29 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$30 // zp[1]:11 11.0 +char main::$31 // reg byte a 22.0 +char main::$32 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::$5 // reg byte a 22.0 +char main::$6 // reg byte a 22.0 +char main::bits +char main::bits#0 // reg byte a 22.0 +char main::bits#1 // reg byte a 22.0 +char main::bits#2 // reg byte a 22.0 +char main::bits#3 // reg byte a 22.0 +char main::bits_gen +char main::bits_gen#1 // reg byte x 4.125 +char main::bits_gen#11 // reg byte x 33.0 +char main::bits_gen#13 // reg byte x 33.0 +char main::bits_gen#14 // reg byte x 4.125 +char main::bits_gen#15 // reg byte x 33.0 +char main::bits_gen#16 // reg byte x 4.714285714285714 +char main::bits_gen#4 // reg byte x 22.0 +char main::bits_gen#6 // reg byte x 22.0 +char main::bits_gen#7 // reg byte a 22.0 +char main::bits_gen#8 // reg byte x 22.0 +char main::bits_gen#9 // reg byte a 11.0 +char *main::chargen +char *main::chargen#1 // chargen zp[2]:2 16.5 +char *main::chargen#10 // chargen zp[2]:2 1.75 +char *main::chargen1 +char *main::chargen1#0 // chargen1 zp[2]:6 1.6176470588235294 +char *main::charset4 +char *main::charset4#1 // charset4 zp[2]:4 7.333333333333333 +char *main::charset4#10 // charset4 zp[2]:4 0.7674418604651163 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 zp[2]:2 [ main::chargen#10 main::chargen#1 ] zp[2]:4 [ main::charset4#10 main::charset4#1 ] diff --git a/src/test/ref/halfscii.sym b/src/test/ref/halfscii.sym index 0b2bb056a..f2f2e59e6 100644 --- a/src/test/ref/halfscii.sym +++ b/src/test/ref/halfscii.sym @@ -1,58 +1,58 @@ -constant byte* CHARGEN = (byte*) 53248 -constant byte* CHARSET4 = (byte*) 10240 -constant byte* D018 = (byte*) 53272 -constant byte* PROCPORT = (byte*) 1 -constant byte* SCREEN = (byte*) 1024 -constant byte* bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } +__constant char *CHARGEN = (char *) 53248 +__constant char *CHARSET4 = (char *) 10240 +__constant char *D018 = (char *) 53272 +__constant char *PROCPORT = (char *) 1 +__constant char *SCREEN = (char *) 1024 +__constant char bits_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 } void main() -byte~ main::$1 zp[1]:8 7.333333333333333 -byte~ main::$11 zp[1]:9 7.333333333333333 -byte~ main::$12 reg byte a 22.0 -byte~ main::$13 reg byte a 22.0 -byte~ main::$14 reg byte a 22.0 -byte~ main::$15 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$20 reg byte a 22.0 -byte~ main::$21 zp[1]:10 7.333333333333333 -byte~ main::$22 reg byte a 22.0 -byte~ main::$23 reg byte a 22.0 -byte~ main::$24 reg byte a 22.0 -byte~ main::$29 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$30 zp[1]:11 11.0 -byte~ main::$31 reg byte a 22.0 -byte~ main::$32 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$5 reg byte a 22.0 -byte~ main::$6 reg byte a 22.0 -byte main::bits -byte main::bits#0 reg byte a 22.0 -byte main::bits#1 reg byte a 22.0 -byte main::bits#2 reg byte a 22.0 -byte main::bits#3 reg byte a 22.0 -byte main::bits_gen -byte main::bits_gen#1 reg byte x 4.125 -byte main::bits_gen#11 reg byte x 33.0 -byte main::bits_gen#13 reg byte x 33.0 -byte main::bits_gen#14 reg byte x 4.125 -byte main::bits_gen#15 reg byte x 33.0 -byte main::bits_gen#16 reg byte x 4.714285714285714 -byte main::bits_gen#4 reg byte x 22.0 -byte main::bits_gen#6 reg byte x 22.0 -byte main::bits_gen#7 reg byte a 22.0 -byte main::bits_gen#8 reg byte x 22.0 -byte main::bits_gen#9 reg byte a 11.0 -byte* main::chargen -byte* main::chargen#1 chargen zp[2]:2 16.5 -byte* main::chargen#10 chargen zp[2]:2 1.75 -byte* main::chargen1 -byte* main::chargen1#0 chargen1 zp[2]:6 1.6176470588235294 -byte* main::charset4 -byte* main::charset4#1 charset4 zp[2]:4 7.333333333333333 -byte* main::charset4#10 charset4 zp[2]:4 0.7674418604651163 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 +char main::$1 // zp[1]:8 7.333333333333333 +char main::$11 // zp[1]:9 7.333333333333333 +char main::$12 // reg byte a 22.0 +char main::$13 // reg byte a 22.0 +char main::$14 // reg byte a 22.0 +char main::$15 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$20 // reg byte a 22.0 +char main::$21 // zp[1]:10 7.333333333333333 +char main::$22 // reg byte a 22.0 +char main::$23 // reg byte a 22.0 +char main::$24 // reg byte a 22.0 +char main::$29 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$30 // zp[1]:11 11.0 +char main::$31 // reg byte a 22.0 +char main::$32 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::$5 // reg byte a 22.0 +char main::$6 // reg byte a 22.0 +char main::bits +char main::bits#0 // reg byte a 22.0 +char main::bits#1 // reg byte a 22.0 +char main::bits#2 // reg byte a 22.0 +char main::bits#3 // reg byte a 22.0 +char main::bits_gen +char main::bits_gen#1 // reg byte x 4.125 +char main::bits_gen#11 // reg byte x 33.0 +char main::bits_gen#13 // reg byte x 33.0 +char main::bits_gen#14 // reg byte x 4.125 +char main::bits_gen#15 // reg byte x 33.0 +char main::bits_gen#16 // reg byte x 4.714285714285714 +char main::bits_gen#4 // reg byte x 22.0 +char main::bits_gen#6 // reg byte x 22.0 +char main::bits_gen#7 // reg byte a 22.0 +char main::bits_gen#8 // reg byte x 22.0 +char main::bits_gen#9 // reg byte a 11.0 +char *main::chargen +char *main::chargen#1 // chargen zp[2]:2 16.5 +char *main::chargen#10 // chargen zp[2]:2 1.75 +char *main::chargen1 +char *main::chargen1#0 // chargen1 zp[2]:6 1.6176470588235294 +char *main::charset4 +char *main::charset4#1 // charset4 zp[2]:4 7.333333333333333 +char *main::charset4#10 // charset4 zp[2]:4 0.7674418604651163 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 zp[2]:2 [ main::chargen#10 main::chargen#1 ] zp[2]:4 [ main::charset4#10 main::charset4#1 ] diff --git a/src/test/ref/helloworld0.log b/src/test/ref/helloworld0.log index eebf43c90..445f3db87 100644 --- a/src/test/ref/helloworld0.log +++ b/src/test/ref/helloworld0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -23,7 +23,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -32,17 +32,17 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* msg[] = "hello world!" +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char msg[] = "hello world!" -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,$b)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -61,7 +61,7 @@ Adding number conversion cast (unumber) $c in [3] if(main::i#1!=$c) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -95,9 +95,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -178,12 +178,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* msg[] = "hello world!" +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char msg[] = "hello world!" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/helloworld0.sym b/src/test/ref/helloworld0.sym index 772f3c335..53846eafe 100644 --- a/src/test/ref/helloworld0.sym +++ b/src/test/ref/helloworld0.sym @@ -1,8 +1,8 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* msg[] = "hello world!" +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char msg[] = "hello world!" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/helloworld2-inline.log b/src/test/ref/helloworld2-inline.log index 55d18950e..05232289d 100644 --- a/src/test/ref/helloworld2-inline.log +++ b/src/test/ref/helloworld2-inline.log @@ -1,6 +1,6 @@ Inlined call call print2(screen, main::hello) Inlined call call print2(main::$1, main::hello) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -70,7 +70,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -81,51 +81,51 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$1 -constant byte* main::hello = "hello world!" -bool~ main::print21_$0 -byte* main::print21_at -byte* main::print21_at#0 -byte* main::print21_at#1 -byte* main::print21_at#2 -byte* main::print21_at#3 -byte main::print21_i -byte main::print21_i#0 -byte main::print21_i#1 -byte main::print21_i#2 -byte main::print21_i#3 -byte main::print21_j -byte main::print21_j#0 -byte main::print21_j#1 -byte main::print21_j#2 -byte main::print21_j#3 -byte* main::print21_msg -byte* main::print21_msg#0 -byte* main::print21_msg#1 -byte* main::print21_msg#2 -byte* main::print21_msg#3 -bool~ main::print22_$0 -byte* main::print22_at -byte* main::print22_at#0 -byte* main::print22_at#1 -byte* main::print22_at#2 -byte* main::print22_at#3 -byte main::print22_i -byte main::print22_i#0 -byte main::print22_i#1 -byte main::print22_i#2 -byte main::print22_i#3 -byte main::print22_j -byte main::print22_j#0 -byte main::print22_j#1 -byte main::print22_j#2 -byte main::print22_j#3 -byte* main::print22_msg -byte* main::print22_msg#0 -byte* main::print22_msg#1 -byte* main::print22_msg#2 -byte* main::print22_msg#3 -constant byte* screen = (byte*)$400 +char *main::$1 +__constant char *main::hello = "hello world!" +bool main::print21_$0 +char *main::print21_at +char *main::print21_at#0 +char *main::print21_at#1 +char *main::print21_at#2 +char *main::print21_at#3 +char main::print21_i +char main::print21_i#0 +char main::print21_i#1 +char main::print21_i#2 +char main::print21_i#3 +char main::print21_j +char main::print21_j#0 +char main::print21_j#1 +char main::print21_j#2 +char main::print21_j#3 +char *main::print21_msg +char *main::print21_msg#0 +char *main::print21_msg#1 +char *main::print21_msg#2 +char *main::print21_msg#3 +bool main::print22_$0 +char *main::print22_at +char *main::print22_at#0 +char *main::print22_at#1 +char *main::print22_at#2 +char *main::print22_at#3 +char main::print22_i +char main::print22_i#0 +char main::print22_i#1 +char main::print22_i#2 +char main::print22_i#3 +char main::print22_j +char main::print22_j#0 +char main::print22_j#1 +char main::print22_j#2 +char main::print22_j#3 +char *main::print22_msg +char *main::print22_msg#0 +char *main::print22_msg#1 +char *main::print22_msg#2 +char *main::print22_msg#3 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::print21_$0 = 0 != main::print21_msg#1[main::print21_i#2] Adding number conversion cast (unumber) 2 in main::print21_j#1 = main::print21_j#2 + 2 @@ -133,18 +133,18 @@ Adding number conversion cast (unumber) $50 in main::$1 = screen + $50 Adding number conversion cast (unumber) 0 in main::print22_$0 = 0 != main::print22_msg#1[main::print22_i#2] Adding number conversion cast (unumber) 2 in main::print22_j#1 = main::print22_j#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast $50 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::print21_msg#0 = main::print21_msg#3 Alias main::print21_at#0 = main::print21_at#3 @@ -253,22 +253,22 @@ main::print21_@2: scope:[main] from main::print21_@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::print21_at -byte main::print21_i -byte main::print21_i#1 22.0 -byte main::print21_i#2 11.0 -byte main::print21_j -byte main::print21_j#1 11.0 -byte main::print21_j#2 11.0 -byte* main::print21_msg -byte* main::print22_at -byte main::print22_i -byte main::print22_i#1 22.0 -byte main::print22_i#2 11.0 -byte main::print22_j -byte main::print22_j#1 11.0 -byte main::print22_j#2 11.0 -byte* main::print22_msg +char *main::print21_at +char main::print21_i +char main::print21_i#1 // 22.0 +char main::print21_i#2 // 11.0 +char main::print21_j +char main::print21_j#1 // 11.0 +char main::print21_j#2 // 11.0 +char *main::print21_msg +char *main::print22_at +char main::print22_i +char main::print22_i#1 // 22.0 +char main::print22_i#2 // 11.0 +char main::print22_j +char main::print22_j#1 // 11.0 +char main::print22_j#2 // 11.0 +char *main::print22_msg Initial phi equivalence classes [ main::print21_i#2 main::print21_i#1 ] @@ -424,25 +424,25 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::hello = "hello world!" -byte* main::print21_at -byte main::print21_i -byte main::print21_i#1 reg byte y 22.0 -byte main::print21_i#2 reg byte y 11.0 -byte main::print21_j -byte main::print21_j#1 reg byte x 11.0 -byte main::print21_j#2 reg byte x 11.0 -byte* main::print21_msg -byte* main::print22_at -constant byte* main::print22_at#0 print22_at = screen+$50 -byte main::print22_i -byte main::print22_i#1 reg byte y 22.0 -byte main::print22_i#2 reg byte y 11.0 -byte main::print22_j -byte main::print22_j#1 reg byte x 11.0 -byte main::print22_j#2 reg byte x 11.0 -byte* main::print22_msg -constant byte* screen = (byte*) 1024 +__constant char *main::hello = "hello world!" +char *main::print21_at +char main::print21_i +char main::print21_i#1 // reg byte y 22.0 +char main::print21_i#2 // reg byte y 11.0 +char main::print21_j +char main::print21_j#1 // reg byte x 11.0 +char main::print21_j#2 // reg byte x 11.0 +char *main::print21_msg +char *main::print22_at +__constant char *main::print22_at#0 = screen+$50 // print22_at +char main::print22_i +char main::print22_i#1 // reg byte y 22.0 +char main::print22_i#2 // reg byte y 11.0 +char main::print22_j +char main::print22_j#1 // reg byte x 11.0 +char main::print22_j#2 // reg byte x 11.0 +char *main::print22_msg +__constant char *screen = (char *) 1024 reg byte y [ main::print21_i#2 main::print21_i#1 ] reg byte x [ main::print21_j#2 main::print21_j#1 ] diff --git a/src/test/ref/helloworld2-inline.sym b/src/test/ref/helloworld2-inline.sym index 6d7d9d2cd..1902dfd83 100644 --- a/src/test/ref/helloworld2-inline.sym +++ b/src/test/ref/helloworld2-inline.sym @@ -1,23 +1,23 @@ void main() -constant byte* main::hello = "hello world!" -byte* main::print21_at -byte main::print21_i -byte main::print21_i#1 reg byte y 22.0 -byte main::print21_i#2 reg byte y 11.0 -byte main::print21_j -byte main::print21_j#1 reg byte x 11.0 -byte main::print21_j#2 reg byte x 11.0 -byte* main::print21_msg -byte* main::print22_at -constant byte* main::print22_at#0 print22_at = screen+$50 -byte main::print22_i -byte main::print22_i#1 reg byte y 22.0 -byte main::print22_i#2 reg byte y 11.0 -byte main::print22_j -byte main::print22_j#1 reg byte x 11.0 -byte main::print22_j#2 reg byte x 11.0 -byte* main::print22_msg -constant byte* screen = (byte*) 1024 +__constant char *main::hello = "hello world!" +char *main::print21_at +char main::print21_i +char main::print21_i#1 // reg byte y 22.0 +char main::print21_i#2 // reg byte y 11.0 +char main::print21_j +char main::print21_j#1 // reg byte x 11.0 +char main::print21_j#2 // reg byte x 11.0 +char *main::print21_msg +char *main::print22_at +__constant char *main::print22_at#0 = screen+$50 // print22_at +char main::print22_i +char main::print22_i#1 // reg byte y 22.0 +char main::print22_i#2 // reg byte y 11.0 +char main::print22_j +char main::print22_j#1 // reg byte x 11.0 +char main::print22_j#2 // reg byte x 11.0 +char *main::print22_msg +__constant char *screen = (char *) 1024 reg byte y [ main::print21_i#2 main::print21_i#1 ] reg byte x [ main::print21_j#2 main::print21_j#1 ] diff --git a/src/test/ref/helloworld2.asm b/src/test/ref/helloworld2.asm index e10c21dc0..ae70b929e 100644 --- a/src/test/ref/helloworld2.asm +++ b/src/test/ref/helloworld2.asm @@ -28,7 +28,7 @@ main: { .byte 0 } .segment Code -// print2(byte* zp(2) at) +// void print2(__zp(2) char *at, char *msg) print2: { .label at = 2 ldy #0 diff --git a/src/test/ref/helloworld2.cfg b/src/test/ref/helloworld2.cfg index 73d2b069e..66c0bbaff 100644 --- a/src/test/ref/helloworld2.cfg +++ b/src/test/ref/helloworld2.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print2 + [1] call print2 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print2 + [3] call print2 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print2(byte* print2::at , byte* print2::msg) +void print2(char *at , char *msg) print2: scope:[print2] from main main::@1 [5] print2::at#4 = phi( main/screen, main::@1/screen+$50 ) to:print2::@1 diff --git a/src/test/ref/helloworld2.log b/src/test/ref/helloworld2.log index 3ff5154f4..6e8c066bc 100644 --- a/src/test/ref/helloworld2.log +++ b/src/test/ref/helloworld2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start::@1 print2::at#0 = screen print2::msg#0 = main::hello - call print2 + call print2 to:main::@1 main::@1: scope:[main] from main main::$1 = screen + $50 print2::at#1 = main::$1 print2::msg#1 = main::hello - call print2 + call print2 to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print2(byte* print2::at , byte* print2::msg) +void print2(char *at , char *msg) print2: scope:[print2] from main main::@1 print2::at#4 = phi( main/print2::at#0, main::@1/print2::at#1 ) print2::msg#4 = phi( main/print2::msg#0, main::@1/print2::msg#1 ) @@ -54,7 +54,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -65,46 +65,46 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$1 -constant byte* main::hello = "hello world!" -void print2(byte* print2::at , byte* print2::msg) -bool~ print2::$0 -byte* print2::at -byte* print2::at#0 -byte* print2::at#1 -byte* print2::at#2 -byte* print2::at#3 -byte* print2::at#4 -byte print2::i -byte print2::i#0 -byte print2::i#1 -byte print2::i#2 -byte print2::i#3 -byte print2::j -byte print2::j#0 -byte print2::j#1 -byte print2::j#2 -byte print2::j#3 -byte* print2::msg -byte* print2::msg#0 -byte* print2::msg#1 -byte* print2::msg#2 -byte* print2::msg#3 -byte* print2::msg#4 -constant byte* screen = (byte*)$400 +char *main::$1 +__constant char *main::hello = "hello world!" +void print2(char *at , char *msg) +bool print2::$0 +char *print2::at +char *print2::at#0 +char *print2::at#1 +char *print2::at#2 +char *print2::at#3 +char *print2::at#4 +char print2::i +char print2::i#0 +char print2::i#1 +char print2::i#2 +char print2::i#3 +char print2::j +char print2::j#0 +char print2::j#1 +char print2::j#2 +char print2::j#3 +char *print2::msg +char *print2::msg#0 +char *print2::msg#1 +char *print2::msg#2 +char *print2::msg#3 +char *print2::msg#4 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) $50 in main::$1 = screen + $50 Adding number conversion cast (unumber) 0 in print2::$0 = 0 != print2::msg#2[print2::i#2] Adding number conversion cast (unumber) 2 in print2::j#1 = print2::j#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $50 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias print2::at#1 = main::$1 Alias print2::msg#2 = print2::msg#3 @@ -167,17 +167,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print2 + [1] call print2 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print2 + [3] call print2 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print2(byte* print2::at , byte* print2::msg) +void print2(char *at , char *msg) print2: scope:[print2] from main main::@1 [5] print2::at#4 = phi( main/screen, main::@1/screen+$50 ) to:print2::@1 @@ -198,16 +198,16 @@ print2::@2: scope:[print2] from print2::@1 VARIABLE REGISTER WEIGHTS void main() -void print2(byte* print2::at , byte* print2::msg) -byte* print2::at -byte* print2::at#4 16.833333333333332 -byte print2::i -byte print2::i#1 202.0 -byte print2::i#2 101.0 -byte print2::j -byte print2::j#1 101.0 -byte print2::j#2 101.0 -byte* print2::msg +void print2(char *at , char *msg) +char *print2::at +char *print2::at#4 // 16.833333333333332 +char print2::i +char print2::i#1 // 202.0 +char print2::i#2 // 101.0 +char print2::j +char print2::j#1 // 101.0 +char print2::j#2 // 101.0 +char *print2::msg Initial phi equivalence classes [ print2::at#4 ] @@ -256,7 +256,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print2 + // [1] call print2 // [5] phi from main to print2 [phi:main->print2] print2_from_main: // [5] phi print2::at#4 = screen [phi:main->print2#0] -- pbuz1=pbuc1 @@ -270,7 +270,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print2 + // [3] call print2 // [5] phi from main::@1 to print2 [phi:main::@1->print2] print2_from___b1: // [5] phi print2::at#4 = screen+$50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 @@ -290,7 +290,7 @@ main: { } .segment Code // print2 -// print2(byte* zp(2) at) +// void print2(__zp(2) char *at, char *msg) print2: { .label at = 2 // [6] phi from print2 to print2::@1 [phi:print2->print2::@1] @@ -348,18 +348,18 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::hello = "hello world!" -void print2(byte* print2::at , byte* print2::msg) -byte* print2::at -byte* print2::at#4 at zp[2]:2 16.833333333333332 -byte print2::i -byte print2::i#1 reg byte x 202.0 -byte print2::i#2 reg byte x 101.0 -byte print2::j -byte print2::j#1 reg byte y 101.0 -byte print2::j#2 reg byte y 101.0 -byte* print2::msg -constant byte* screen = (byte*) 1024 +__constant char *main::hello = "hello world!" +void print2(char *at , char *msg) +char *print2::at +char *print2::at#4 // at zp[2]:2 16.833333333333332 +char print2::i +char print2::i#1 // reg byte x 202.0 +char print2::i#2 // reg byte x 101.0 +char print2::j +char print2::j#1 // reg byte y 101.0 +char print2::j#2 // reg byte y 101.0 +char *print2::msg +__constant char *screen = (char *) 1024 zp[2]:2 [ print2::at#4 ] reg byte x [ print2::i#2 print2::i#1 ] @@ -385,7 +385,7 @@ Score: 369 // main main: { // print2(screen, hello) - // [1] call print2 + // [1] call print2 // [5] phi from main to print2 [phi:main->print2] // [5] phi print2::at#4 = screen [phi:main->print2#0] -- pbuz1=pbuc1 lda #main::@1] // main::@1 // print2(screen+80, hello) - // [3] call print2 + // [3] call print2 // [5] phi from main::@1 to print2 [phi:main::@1->print2] // [5] phi print2::at#4 = screen+$50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 lda #print2::@1] diff --git a/src/test/ref/helloworld2.sym b/src/test/ref/helloworld2.sym index cf1d5a072..1c68fddfd 100644 --- a/src/test/ref/helloworld2.sym +++ b/src/test/ref/helloworld2.sym @@ -1,16 +1,16 @@ void main() -constant byte* main::hello = "hello world!" -void print2(byte* print2::at , byte* print2::msg) -byte* print2::at -byte* print2::at#4 at zp[2]:2 16.833333333333332 -byte print2::i -byte print2::i#1 reg byte x 202.0 -byte print2::i#2 reg byte x 101.0 -byte print2::j -byte print2::j#1 reg byte y 101.0 -byte print2::j#2 reg byte y 101.0 -byte* print2::msg -constant byte* screen = (byte*) 1024 +__constant char *main::hello = "hello world!" +void print2(char *at , char *msg) +char *print2::at +char *print2::at#4 // at zp[2]:2 16.833333333333332 +char print2::i +char print2::i#1 // reg byte x 202.0 +char print2::i#2 // reg byte x 101.0 +char print2::j +char print2::j#1 // reg byte y 101.0 +char print2::j#2 // reg byte y 101.0 +char *print2::msg +__constant char *screen = (char *) 1024 zp[2]:2 [ print2::at#4 ] reg byte x [ print2::i#2 print2::i#1 ] diff --git a/src/test/ref/hex2dec-ptrptr.asm b/src/test/ref/hex2dec-ptrptr.asm index bc7f62c41..b4aad5942 100644 --- a/src/test/ref/hex2dec-ptrptr.asm +++ b/src/test/ref/hex2dec-ptrptr.asm @@ -90,7 +90,7 @@ cls: { rts } // Hexadecimal utoa() for an unsigned int (16bits) -// utoa16w(word zp(2) value, byte* zp(4) dst) +// void utoa16w(__zp(2) unsigned int value, __zp(4) char * volatile dst) utoa16w: { .label dst = 4 .label value = 2 @@ -134,7 +134,7 @@ utoa16w: { rts } // Hexadecimal utoa() for a single nybble -// utoa16n(byte register(A) nybble, byte register(X) started) +// __register(X) char utoa16n(__register(A) char nybble, unsigned int **dst, __register(X) char started) utoa16n: { // if(nybble!=0) cmp #0 diff --git a/src/test/ref/hex2dec-ptrptr.cfg b/src/test/ref/hex2dec-ptrptr.cfg index 38400789a..d93885f09 100644 --- a/src/test/ref/hex2dec-ptrptr.cfg +++ b/src/test/ref/hex2dec-ptrptr.cfg @@ -2,27 +2,27 @@ void main() main: scope:[main] from [0] phi() - [1] call cls + [1] call cls to:main::@1 main::@1: scope:[main] from main - [2] utoa16w::dst = (byte*) 1024 - [3] call utoa16w + [2] utoa16w::dst = (char *) 1024 + [3] call utoa16w to:main::@2 main::@2: scope:[main] from main::@1 - [4] utoa16w::dst = (byte*) 1024+$28 - [5] call utoa16w + [4] utoa16w::dst = (char *) 1024+$28 + [5] call utoa16w to:main::@3 main::@3: scope:[main] from main::@2 - [6] utoa16w::dst = (byte*) 1024+$28+$28 - [7] call utoa16w + [6] utoa16w::dst = (char *) 1024+$28+$28 + [7] call utoa16w to:main::@4 main::@4: scope:[main] from main::@3 - [8] utoa16w::dst = (byte*) 1024+$28+$28+$28 - [9] call utoa16w + [8] utoa16w::dst = (char *) 1024+$28+$28+$28 + [9] call utoa16w to:main::@5 main::@5: scope:[main] from main::@4 - [10] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 - [11] call utoa16w + [10] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 + [11] call utoa16w to:main::@return main::@return: scope:[main] from main::@5 [12] return @@ -42,12 +42,12 @@ cls::@return: scope:[cls] from cls::@1 [18] return to:@return -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) +void utoa16w(unsigned int value , char * volatile dst) utoa16w: scope:[utoa16w] from main::@1 main::@2 main::@3 main::@4 main::@5 [19] utoa16w::value#5 = phi( main::@1/0, main::@2/$4d2, main::@3/$162e, main::@4/$270f, main::@5/$e608 ) [20] utoa16w::$0 = byte1 utoa16w::value#5 [21] utoa16n::nybble#0 = utoa16w::$0 >> 4 - [22] call utoa16n + [22] call utoa16n [23] utoa16n::return#0 = utoa16n::return#4 to:utoa16w::@1 utoa16w::@1: scope:[utoa16w] from utoa16w @@ -55,7 +55,7 @@ utoa16w::@1: scope:[utoa16w] from utoa16w [25] utoa16w::$3 = byte1 utoa16w::value#5 [26] utoa16n::nybble#1 = utoa16w::$3 & $f [27] utoa16n::started#1 = utoa16w::started#1 - [28] call utoa16n + [28] call utoa16n [29] utoa16n::return#1 = utoa16n::return#4 to:utoa16w::@2 utoa16w::@2: scope:[utoa16w] from utoa16w::@1 @@ -63,12 +63,12 @@ utoa16w::@2: scope:[utoa16w] from utoa16w::@1 [31] utoa16w::$6 = byte0 utoa16w::value#5 [32] utoa16n::nybble#2 = utoa16w::$6 >> 4 [33] utoa16n::started#2 = utoa16w::started#2 - [34] call utoa16n + [34] call utoa16n to:utoa16w::@3 utoa16w::@3: scope:[utoa16w] from utoa16w::@2 [35] utoa16w::$9 = byte0 utoa16w::value#5 [36] utoa16n::nybble#3 = utoa16w::$9 & $f - [37] call utoa16n + [37] call utoa16n to:utoa16w::@4 utoa16w::@4: scope:[utoa16w] from utoa16w::@3 [38] *utoa16w::dst = 0 @@ -77,7 +77,7 @@ utoa16w::@return: scope:[utoa16w] from utoa16w::@4 [39] return to:@return -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) +char utoa16n(char nybble , unsigned int **dst , char started) utoa16n: scope:[utoa16n] from utoa16w utoa16w::@1 utoa16w::@2 utoa16w::@3 [40] utoa16n::started#7 = phi( utoa16w/0, utoa16w::@1/utoa16n::started#1, utoa16w::@2/utoa16n::started#2, utoa16w::@3/1 ) [40] utoa16n::nybble#4 = phi( utoa16w/utoa16n::nybble#0, utoa16w::@1/utoa16n::nybble#1, utoa16w::@2/utoa16n::nybble#2, utoa16w::@3/utoa16n::nybble#3 ) diff --git a/src/test/ref/hex2dec-ptrptr.log b/src/test/ref/hex2dec-ptrptr.log index 8ddf74a23..108927f49 100644 --- a/src/test/ref/hex2dec-ptrptr.log +++ b/src/test/ref/hex2dec-ptrptr.log @@ -4,41 +4,41 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call cls + call cls to:main::@1 main::@1: scope:[main] from main - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 utoa16w::value#0 = 0 utoa16w::dst = main::screen#0 - call utoa16w + call utoa16w to:main::@2 main::@2: scope:[main] from main::@1 main::screen#5 = phi( main::@1/main::screen#0 ) main::screen#1 = main::screen#5 + $28 utoa16w::value#1 = $4d2 utoa16w::dst = main::screen#1 - call utoa16w + call utoa16w to:main::@3 main::@3: scope:[main] from main::@2 main::screen#6 = phi( main::@2/main::screen#1 ) main::screen#2 = main::screen#6 + $28 utoa16w::value#2 = $162e utoa16w::dst = main::screen#2 - call utoa16w + call utoa16w to:main::@4 main::@4: scope:[main] from main::@3 main::screen#7 = phi( main::@3/main::screen#2 ) main::screen#3 = main::screen#7 + $28 utoa16w::value#3 = $270f utoa16w::dst = main::screen#3 - call utoa16w + call utoa16w to:main::@5 main::@5: scope:[main] from main::@4 main::screen#8 = phi( main::@4/main::screen#3 ) main::screen#4 = main::screen#8 + $28 utoa16w::value#4 = $e608 utoa16w::dst = main::screen#4 - call utoa16w + call utoa16w to:main::@6 main::@6: scope:[main] from main::@5 to:main::@return @@ -62,7 +62,7 @@ cls::@return: scope:[cls] from cls::@1 return to:@return -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) +void utoa16w(unsigned int value , char * volatile dst) utoa16w: scope:[utoa16w] from main::@1 main::@2 main::@3 main::@4 main::@5 utoa16w::value#5 = phi( main::@1/utoa16w::value#0, main::@2/utoa16w::value#1, main::@3/utoa16w::value#2, main::@4/utoa16w::value#3, main::@5/utoa16w::value#4 ) utoa16w::started#0 = 0 @@ -71,7 +71,7 @@ utoa16w: scope:[utoa16w] from main::@1 main::@2 main::@3 main::@4 main::@5 utoa16n::nybble#0 = utoa16w::$1 utoa16n::dst#0 = &utoa16w::dst utoa16n::started#0 = utoa16w::started#0 - call utoa16n + call utoa16n utoa16n::return#0 = utoa16n::return#5 to:utoa16w::@1 utoa16w::@1: scope:[utoa16w] from utoa16w @@ -84,7 +84,7 @@ utoa16w::@1: scope:[utoa16w] from utoa16w utoa16n::nybble#1 = utoa16w::$4 utoa16n::dst#1 = &utoa16w::dst utoa16n::started#1 = utoa16w::started#1 - call utoa16n + call utoa16n utoa16n::return#1 = utoa16n::return#5 to:utoa16w::@2 utoa16w::@2: scope:[utoa16w] from utoa16w::@1 @@ -97,7 +97,7 @@ utoa16w::@2: scope:[utoa16w] from utoa16w::@1 utoa16n::nybble#2 = utoa16w::$7 utoa16n::dst#2 = &utoa16w::dst utoa16n::started#2 = utoa16w::started#2 - call utoa16n + call utoa16n utoa16n::return#2 = utoa16n::return#5 to:utoa16w::@3 utoa16w::@3: scope:[utoa16w] from utoa16w::@2 @@ -110,7 +110,7 @@ utoa16w::@3: scope:[utoa16w] from utoa16w::@2 utoa16n::nybble#3 = utoa16w::$10 utoa16n::dst#3 = &utoa16w::dst utoa16n::started#3 = 1 - call utoa16n + call utoa16n utoa16n::return#3 = utoa16n::return#5 to:utoa16w::@4 utoa16w::@4: scope:[utoa16w] from utoa16w::@3 @@ -120,7 +120,7 @@ utoa16w::@return: scope:[utoa16w] from utoa16w::@4 return to:@return -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) +char utoa16n(char nybble , unsigned int **dst , char started) utoa16n: scope:[utoa16n] from utoa16w utoa16w::@1 utoa16w::@2 utoa16w::@3 utoa16n::dst#6 = phi( utoa16w/utoa16n::dst#0, utoa16w::@1/utoa16n::dst#1, utoa16w::@2/utoa16n::dst#2, utoa16w::@3/utoa16n::dst#3 ) utoa16n::started#7 = phi( utoa16w/utoa16n::started#0, utoa16w::@1/utoa16n::started#1, utoa16w::@2/utoa16n::started#2, utoa16w::@3/utoa16n::started#3 ) @@ -161,7 +161,7 @@ utoa16n::@return: scope:[utoa16n] from utoa16n::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -170,99 +170,99 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* DIGITS[] = "0123456789abcdef" +__constant char DIGITS[] = "0123456789abcdef" void __start() void cls() -byte*~ cls::$0 -bool~ cls::$1 -byte* cls::sc -byte* cls::sc#0 -byte* cls::sc#1 -byte* cls::sc#2 -constant byte* cls::screen = (byte*)$400 +char *cls::$0 +bool cls::$1 +char *cls::sc +char *cls::sc#0 +char *cls::sc#1 +char *cls::sc#2 +__constant char *cls::screen = (char *)$400 void main() -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* main::screen#7 -byte* main::screen#8 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -bool~ utoa16n::$0 -bool~ utoa16n::$1 -bool~ utoa16n::$2 -bool~ utoa16n::$3 -word** utoa16n::dst -word** utoa16n::dst#0 -word** utoa16n::dst#1 -word** utoa16n::dst#2 -word** utoa16n::dst#3 -word** utoa16n::dst#4 -word** utoa16n::dst#5 -word** utoa16n::dst#6 -word** utoa16n::dst#7 -byte utoa16n::nybble -byte utoa16n::nybble#0 -byte utoa16n::nybble#1 -byte utoa16n::nybble#2 -byte utoa16n::nybble#3 -byte utoa16n::nybble#4 -byte utoa16n::nybble#5 -byte utoa16n::nybble#6 -byte utoa16n::nybble#7 -byte utoa16n::return -byte utoa16n::return#0 -byte utoa16n::return#1 -byte utoa16n::return#2 -byte utoa16n::return#3 -byte utoa16n::return#4 -byte utoa16n::return#5 -byte utoa16n::return#6 -byte utoa16n::return#7 -byte utoa16n::return#8 -byte utoa16n::return#9 -byte utoa16n::started -byte utoa16n::started#0 -byte utoa16n::started#1 -byte utoa16n::started#2 -byte utoa16n::started#3 -byte utoa16n::started#4 -byte utoa16n::started#5 -byte utoa16n::started#6 -byte utoa16n::started#7 -byte utoa16n::started#8 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 -byte~ utoa16w::$1 -number~ utoa16w::$10 -byte~ utoa16w::$2 -byte~ utoa16w::$3 -number~ utoa16w::$4 -byte~ utoa16w::$5 -byte~ utoa16w::$6 -byte~ utoa16w::$7 -byte~ utoa16w::$8 -byte~ utoa16w::$9 -byte* volatile utoa16w::dst loadstore -byte utoa16w::started -byte utoa16w::started#0 -byte utoa16w::started#1 -byte utoa16w::started#2 -byte utoa16w::started#3 -word utoa16w::value -word utoa16w::value#0 -word utoa16w::value#1 -word utoa16w::value#2 -word utoa16w::value#3 -word utoa16w::value#4 -word utoa16w::value#5 -word utoa16w::value#6 -word utoa16w::value#7 -word utoa16w::value#8 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +char *main::screen#7 +char *main::screen#8 +char utoa16n(char nybble , unsigned int **dst , char started) +bool utoa16n::$0 +bool utoa16n::$1 +bool utoa16n::$2 +bool utoa16n::$3 +unsigned int **utoa16n::dst +unsigned int **utoa16n::dst#0 +unsigned int **utoa16n::dst#1 +unsigned int **utoa16n::dst#2 +unsigned int **utoa16n::dst#3 +unsigned int **utoa16n::dst#4 +unsigned int **utoa16n::dst#5 +unsigned int **utoa16n::dst#6 +unsigned int **utoa16n::dst#7 +char utoa16n::nybble +char utoa16n::nybble#0 +char utoa16n::nybble#1 +char utoa16n::nybble#2 +char utoa16n::nybble#3 +char utoa16n::nybble#4 +char utoa16n::nybble#5 +char utoa16n::nybble#6 +char utoa16n::nybble#7 +char utoa16n::return +char utoa16n::return#0 +char utoa16n::return#1 +char utoa16n::return#2 +char utoa16n::return#3 +char utoa16n::return#4 +char utoa16n::return#5 +char utoa16n::return#6 +char utoa16n::return#7 +char utoa16n::return#8 +char utoa16n::return#9 +char utoa16n::started +char utoa16n::started#0 +char utoa16n::started#1 +char utoa16n::started#2 +char utoa16n::started#3 +char utoa16n::started#4 +char utoa16n::started#5 +char utoa16n::started#6 +char utoa16n::started#7 +char utoa16n::started#8 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 +char utoa16w::$1 +number utoa16w::$10 +char utoa16w::$2 +char utoa16w::$3 +number utoa16w::$4 +char utoa16w::$5 +char utoa16w::$6 +char utoa16w::$7 +char utoa16w::$8 +char utoa16w::$9 +__loadstore char * volatile utoa16w::dst +char utoa16w::started +char utoa16w::started#0 +char utoa16w::started#1 +char utoa16w::started#2 +char utoa16w::started#3 +unsigned int utoa16w::value +unsigned int utoa16w::value#0 +unsigned int utoa16w::value#1 +unsigned int utoa16w::value#2 +unsigned int utoa16w::value#3 +unsigned int utoa16w::value#4 +unsigned int utoa16w::value#5 +unsigned int utoa16w::value#6 +unsigned int utoa16w::value#7 +unsigned int utoa16w::value#8 Adding number conversion cast (unumber) 0 in utoa16w::value#0 = 0 Adding number conversion cast (unumber) $28 in main::screen#1 = main::screen#5 + $28 @@ -295,8 +295,8 @@ Inlining cast utoa16n::started#3 = (unumber)1 Inlining cast *utoa16w::dst = (unumber)0 Inlining cast utoa16n::started#4 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $4d2 @@ -317,28 +317,28 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $4d2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $162e -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $270f -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $e608 -Finalized unsigned number type (word) $3e7 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $4d2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $162e +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $270f +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $e608 +Finalized unsigned number type (unsigned int) $3e7 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in utoa16w::$4 = utoa16w::$3 & $f -Inferred type updated to byte in utoa16w::$10 = utoa16w::$9 & $f +Inferred type updated to char in utoa16w::$4 = utoa16w::$3 & $f +Inferred type updated to char in utoa16w::$10 = utoa16w::$9 & $f Inversing boolean not [77] utoa16n::$1 = utoa16n::nybble#4 == 0 from [76] utoa16n::$0 = utoa16n::nybble#4 != 0 Inversing boolean not [81] utoa16n::$3 = utoa16n::started#5 == 0 from [80] utoa16n::$2 = utoa16n::started#5 != 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -374,7 +374,7 @@ Simple Condition utoa16n::$3 [66] if(utoa16n::return#4==0) goto utoa16n::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [22] cls::$0 = cls::screen + $3e7 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant utoa16w::value#0 = 0 Constant utoa16w::value#1 = $4d2 Constant utoa16w::value#2 = $162e @@ -393,7 +393,7 @@ Successful SSA optimization Pass2ConstantIdentification Constant utoa16n::started#0 = utoa16w::started#0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [26] cls::sc#1 = ++ cls::sc#2 to ++ -Resolved ranged comparison value [28] if(cls::sc#1!=rangelast(cls::screen,cls::$0)) goto cls::@1 to (byte*)cls::$0+1 +Resolved ranged comparison value [28] if(cls::sc#1!=rangelast(cls::screen,cls::$0)) goto cls::@1 to (char *)cls::$0+1 Eliminating unused variable utoa16w::started#3 and assignment [38] utoa16w::started#3 = utoa16n::return#2 Eliminating unused variable utoa16n::return#3 and assignment [42] utoa16n::return#3 = utoa16n::return#4 Successful SSA optimization PassNEliminateUnusedVars @@ -404,12 +404,12 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Adding number conversion cast (unumber) 1 in [19] if(cls::sc#1!=(byte*)cls::$0+1) goto cls::@1 +Adding number conversion cast (unumber) 1 in [19] if(cls::sc#1!=(char *)cls::$0+1) goto cls::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast cls::$0+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [3] main::screen#1 = main::screen#0 + $28 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -446,15 +446,15 @@ Inlining constant with var siblings utoa16n::dst#3 Inlining constant with var siblings utoa16n::started#3 Inlining constant with var siblings utoa16n::started#4 Inlining constant with var siblings utoa16n::started#0 -Constant inlined main::screen#0 = (byte*) 1024 -Constant inlined main::screen#1 = (byte*) 1024+$28 -Constant inlined main::screen#4 = (byte*) 1024+$28+$28+$28+$28 +Constant inlined main::screen#0 = (char *) 1024 +Constant inlined main::screen#1 = (char *) 1024+$28 +Constant inlined main::screen#4 = (char *) 1024+$28+$28+$28+$28 Constant inlined utoa16w::value#2 = $162e Constant inlined cls::sc#0 = cls::screen Constant inlined utoa16w::value#1 = $4d2 -Constant inlined main::screen#2 = (byte*) 1024+$28+$28 +Constant inlined main::screen#2 = (char *) 1024+$28+$28 Constant inlined utoa16w::value#0 = 0 -Constant inlined main::screen#3 = (byte*) 1024+$28+$28+$28 +Constant inlined main::screen#3 = (char *) 1024+$28+$28+$28 Constant inlined utoa16w::started#0 = 0 Constant inlined utoa16n::started#0 = 0 Constant inlined cls::$0 = cls::screen+$3e7 @@ -505,27 +505,27 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call cls + [1] call cls to:main::@1 main::@1: scope:[main] from main - [2] utoa16w::dst = (byte*) 1024 - [3] call utoa16w + [2] utoa16w::dst = (char *) 1024 + [3] call utoa16w to:main::@2 main::@2: scope:[main] from main::@1 - [4] utoa16w::dst = (byte*) 1024+$28 - [5] call utoa16w + [4] utoa16w::dst = (char *) 1024+$28 + [5] call utoa16w to:main::@3 main::@3: scope:[main] from main::@2 - [6] utoa16w::dst = (byte*) 1024+$28+$28 - [7] call utoa16w + [6] utoa16w::dst = (char *) 1024+$28+$28 + [7] call utoa16w to:main::@4 main::@4: scope:[main] from main::@3 - [8] utoa16w::dst = (byte*) 1024+$28+$28+$28 - [9] call utoa16w + [8] utoa16w::dst = (char *) 1024+$28+$28+$28 + [9] call utoa16w to:main::@5 main::@5: scope:[main] from main::@4 - [10] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 - [11] call utoa16w + [10] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 + [11] call utoa16w to:main::@return main::@return: scope:[main] from main::@5 [12] return @@ -545,12 +545,12 @@ cls::@return: scope:[cls] from cls::@1 [18] return to:@return -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) +void utoa16w(unsigned int value , char * volatile dst) utoa16w: scope:[utoa16w] from main::@1 main::@2 main::@3 main::@4 main::@5 [19] utoa16w::value#5 = phi( main::@1/0, main::@2/$4d2, main::@3/$162e, main::@4/$270f, main::@5/$e608 ) [20] utoa16w::$0 = byte1 utoa16w::value#5 [21] utoa16n::nybble#0 = utoa16w::$0 >> 4 - [22] call utoa16n + [22] call utoa16n [23] utoa16n::return#0 = utoa16n::return#4 to:utoa16w::@1 utoa16w::@1: scope:[utoa16w] from utoa16w @@ -558,7 +558,7 @@ utoa16w::@1: scope:[utoa16w] from utoa16w [25] utoa16w::$3 = byte1 utoa16w::value#5 [26] utoa16n::nybble#1 = utoa16w::$3 & $f [27] utoa16n::started#1 = utoa16w::started#1 - [28] call utoa16n + [28] call utoa16n [29] utoa16n::return#1 = utoa16n::return#4 to:utoa16w::@2 utoa16w::@2: scope:[utoa16w] from utoa16w::@1 @@ -566,12 +566,12 @@ utoa16w::@2: scope:[utoa16w] from utoa16w::@1 [31] utoa16w::$6 = byte0 utoa16w::value#5 [32] utoa16n::nybble#2 = utoa16w::$6 >> 4 [33] utoa16n::started#2 = utoa16w::started#2 - [34] call utoa16n + [34] call utoa16n to:utoa16w::@3 utoa16w::@3: scope:[utoa16w] from utoa16w::@2 [35] utoa16w::$9 = byte0 utoa16w::value#5 [36] utoa16n::nybble#3 = utoa16w::$9 & $f - [37] call utoa16n + [37] call utoa16n to:utoa16w::@4 utoa16w::@4: scope:[utoa16w] from utoa16w::@3 [38] *utoa16w::dst = 0 @@ -580,7 +580,7 @@ utoa16w::@return: scope:[utoa16w] from utoa16w::@4 [39] return to:@return -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) +char utoa16n(char nybble , unsigned int **dst , char started) utoa16n: scope:[utoa16n] from utoa16w utoa16w::@1 utoa16w::@2 utoa16w::@3 [40] utoa16n::started#7 = phi( utoa16w/0, utoa16w::@1/utoa16n::started#1, utoa16w::@2/utoa16n::started#2, utoa16w::@3/1 ) [40] utoa16n::nybble#4 = phi( utoa16w/utoa16n::nybble#0, utoa16w::@1/utoa16n::nybble#1, utoa16w::@2/utoa16n::nybble#2, utoa16w::@3/utoa16n::nybble#3 ) @@ -604,38 +604,38 @@ utoa16n::@return: scope:[utoa16n] from utoa16n::@1 utoa16n::@2 VARIABLE REGISTER WEIGHTS void cls() -byte* cls::sc -byte* cls::sc#1 151.5 -byte* cls::sc#2 151.5 +char *cls::sc +char *cls::sc#1 // 151.5 +char *cls::sc#2 // 151.5 void main() -byte* main::screen -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -word** utoa16n::dst -byte utoa16n::nybble -byte utoa16n::nybble#0 22.0 -byte utoa16n::nybble#1 11.0 -byte utoa16n::nybble#2 11.0 -byte utoa16n::nybble#3 22.0 -byte utoa16n::nybble#4 49.2 -byte utoa16n::return -byte utoa16n::return#0 22.0 -byte utoa16n::return#1 22.0 -byte utoa16n::return#4 32.0 -byte utoa16n::started -byte utoa16n::started#1 22.0 -byte utoa16n::started#2 22.0 -byte utoa16n::started#7 41.0 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 22.0 -byte~ utoa16w::$3 22.0 -byte~ utoa16w::$6 22.0 -byte~ utoa16w::$9 22.0 -byte* volatile utoa16w::dst loadstore 0.65625 -byte utoa16w::started -byte utoa16w::started#1 7.333333333333333 -byte utoa16w::started#2 7.333333333333333 -word utoa16w::value -word utoa16w::value#5 2.75 +char *main::screen +char utoa16n(char nybble , unsigned int **dst , char started) +unsigned int **utoa16n::dst +char utoa16n::nybble +char utoa16n::nybble#0 // 22.0 +char utoa16n::nybble#1 // 11.0 +char utoa16n::nybble#2 // 11.0 +char utoa16n::nybble#3 // 22.0 +char utoa16n::nybble#4 // 49.2 +char utoa16n::return +char utoa16n::return#0 // 22.0 +char utoa16n::return#1 // 22.0 +char utoa16n::return#4 // 32.0 +char utoa16n::started +char utoa16n::started#1 // 22.0 +char utoa16n::started#2 // 22.0 +char utoa16n::started#7 // 41.0 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 // 22.0 +char utoa16w::$3 // 22.0 +char utoa16w::$6 // 22.0 +char utoa16w::$9 // 22.0 +__loadstore char * volatile utoa16w::dst // 0.65625 +char utoa16w::started +char utoa16w::started#1 // 7.333333333333333 +char utoa16w::started#2 // 7.333333333333333 +unsigned int utoa16w::value +unsigned int utoa16w::value#5 // 2.75 Initial phi equivalence classes [ cls::sc#2 cls::sc#1 ] @@ -679,11 +679,11 @@ Allocated zp[1]:15 [ utoa16w::started#2 ] Allocated zp[1]:16 [ utoa16w::$6 ] Allocated zp[1]:17 [ utoa16w::$9 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] utoa16w::dst = (byte*) 1024 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [4] utoa16w::dst = (byte*) 1024+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [6] utoa16w::dst = (byte*) 1024+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [8] utoa16w::dst = (byte*) 1024+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [10] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [2] utoa16w::dst = (char *) 1024 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [4] utoa16w::dst = (char *) 1024+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [6] utoa16w::dst = (char *) 1024+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [8] utoa16w::dst = (char *) 1024+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [10] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a Statement [15] *cls::sc#2 = ' ' [ cls::sc#2 ] ( cls:1 [ cls::sc#2 ] { } ) always clobbers reg byte a reg byte y Statement [17] if(cls::sc#1!=cls::screen+$3e7+1) goto cls::@1 [ cls::sc#1 ] ( cls:1 [ cls::sc#1 ] { } ) always clobbers reg byte a Statement [21] utoa16n::nybble#0 = utoa16w::$0 >> 4 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] ( utoa16w:3 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:5 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:7 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:9 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:11 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } ) always clobbers reg byte a @@ -693,11 +693,11 @@ Statement [38] *utoa16w::dst = 0 [ ] ( utoa16w:3 [ ] { } utoa16w:5 [ ] { } uto Statement [45] *(*(&utoa16w::dst)) = DIGITS[utoa16n::nybble#4] [ utoa16w::dst utoa16n::return#4 ] ( utoa16w:3::utoa16n:22 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:5::utoa16n:22 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:7::utoa16n:22 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:9::utoa16n:22 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:11::utoa16n:22 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:3::utoa16n:28 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#1 = utoa16n::nybble#4 } { utoa16n::started#1 = utoa16n::started#7 utoa16w::started#1 } { utoa16n::return#1 = utoa16n::return#4 } } utoa16w:5::utoa16n:28 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#1 = utoa16n::nybble#4 } { utoa16n::started#1 = utoa16n::started#7 utoa16w::started#1 } { utoa16n::return#1 = utoa16n::return#4 } } utoa16w:7::utoa16n:28 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#1 = utoa16n::nybble#4 } { utoa16n::started#1 = utoa16n::started#7 utoa16w::started#1 } { utoa16n::return#1 = utoa16n::return#4 } } utoa16w:9::utoa16n:28 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#1 = utoa16n::nybble#4 } { utoa16n::started#1 = utoa16n::started#7 utoa16w::started#1 } { utoa16n::return#1 = utoa16n::return#4 } } utoa16w:11::utoa16n:28 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#1 = utoa16n::nybble#4 } { utoa16n::started#1 = utoa16n::started#7 utoa16w::started#1 } { utoa16n::return#1 = utoa16n::return#4 } } utoa16w:3::utoa16n:34 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#2 = utoa16n::nybble#4 } { utoa16n::started#2 = utoa16n::started#7 utoa16w::started#2 } } utoa16w:5::utoa16n:34 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#2 = utoa16n::nybble#4 } { utoa16n::started#2 = utoa16n::started#7 utoa16w::started#2 } } utoa16w:7::utoa16n:34 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#2 = utoa16n::nybble#4 } { utoa16n::started#2 = utoa16n::started#7 utoa16w::started#2 } } utoa16w:9::utoa16n:34 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#2 = utoa16n::nybble#4 } { utoa16n::started#2 = utoa16n::started#7 utoa16w::started#2 } } utoa16w:11::utoa16n:34 [ utoa16w::value#5 utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#2 = utoa16n::nybble#4 } { utoa16n::started#2 = utoa16n::started#7 utoa16w::started#2 } } utoa16w:3::utoa16n:37 [ utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#3 = utoa16n::nybble#4 } } utoa16w:5::utoa16n:37 [ utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#3 = utoa16n::nybble#4 } } utoa16w:7::utoa16n:37 [ utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#3 = utoa16n::nybble#4 } } utoa16w:9::utoa16n:37 [ utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#3 = utoa16n::nybble#4 } } utoa16w:11::utoa16n:37 [ utoa16w::dst utoa16n::return#4 ] { { utoa16n::nybble#3 = utoa16n::nybble#4 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:7 [ utoa16n::return#4 utoa16n::started#7 utoa16n::started#1 utoa16n::started#2 ] Removing always clobbered register reg byte y as potential for zp[1]:7 [ utoa16n::return#4 utoa16n::started#7 utoa16n::started#1 utoa16n::started#2 ] -Statement [2] utoa16w::dst = (byte*) 1024 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [4] utoa16w::dst = (byte*) 1024+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [6] utoa16w::dst = (byte*) 1024+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [8] utoa16w::dst = (byte*) 1024+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a -Statement [10] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [2] utoa16w::dst = (char *) 1024 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [4] utoa16w::dst = (char *) 1024+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [6] utoa16w::dst = (char *) 1024+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [8] utoa16w::dst = (char *) 1024+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a +Statement [10] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 [ utoa16w::dst ] ( [ utoa16w::dst ] { } ) always clobbers reg byte a Statement [15] *cls::sc#2 = ' ' [ cls::sc#2 ] ( cls:1 [ cls::sc#2 ] { } ) always clobbers reg byte a reg byte y Statement [17] if(cls::sc#1!=cls::screen+$3e7+1) goto cls::@1 [ cls::sc#1 ] ( cls:1 [ cls::sc#1 ] { } ) always clobbers reg byte a Statement [21] utoa16n::nybble#0 = utoa16w::$0 >> 4 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] ( utoa16w:3 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:5 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:7 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:9 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:11 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } ) always clobbers reg byte a @@ -756,19 +756,19 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call cls + // [1] call cls // [13] phi from main to cls [phi:main->cls] cls_from_main: jsr cls jmp __b1 // main::@1 __b1: - // [2] utoa16w::dst = (byte*) 1024 -- pbuz1=pbuc1 + // [2] utoa16w::dst = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z utoa16w.dst lda #>$400 sta.z utoa16w.dst+1 - // [3] call utoa16w + // [3] call utoa16w // [19] phi from main::@1 to utoa16w [phi:main::@1->utoa16w] utoa16w_from___b1: // [19] phi utoa16w::value#5 = 0 [phi:main::@1->utoa16w#0] -- vwuz1=vbuc1 @@ -780,12 +780,12 @@ main: { jmp __b2 // main::@2 __b2: - // [4] utoa16w::dst = (byte*) 1024+$28 -- pbuz1=pbuc1 + // [4] utoa16w::dst = (char *) 1024+$28 -- pbuz1=pbuc1 lda #<$400+$28 sta.z utoa16w.dst lda #>$400+$28 sta.z utoa16w.dst+1 - // [5] call utoa16w + // [5] call utoa16w // [19] phi from main::@2 to utoa16w [phi:main::@2->utoa16w] utoa16w_from___b2: // [19] phi utoa16w::value#5 = $4d2 [phi:main::@2->utoa16w#0] -- vwuz1=vwuc1 @@ -797,12 +797,12 @@ main: { jmp __b3 // main::@3 __b3: - // [6] utoa16w::dst = (byte*) 1024+$28+$28 -- pbuz1=pbuc1 + // [6] utoa16w::dst = (char *) 1024+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28 sta.z utoa16w.dst+1 - // [7] call utoa16w + // [7] call utoa16w // [19] phi from main::@3 to utoa16w [phi:main::@3->utoa16w] utoa16w_from___b3: // [19] phi utoa16w::value#5 = $162e [phi:main::@3->utoa16w#0] -- vwuz1=vwuc1 @@ -814,12 +814,12 @@ main: { jmp __b4 // main::@4 __b4: - // [8] utoa16w::dst = (byte*) 1024+$28+$28+$28 -- pbuz1=pbuc1 + // [8] utoa16w::dst = (char *) 1024+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28 sta.z utoa16w.dst+1 - // [9] call utoa16w + // [9] call utoa16w // [19] phi from main::@4 to utoa16w [phi:main::@4->utoa16w] utoa16w_from___b4: // [19] phi utoa16w::value#5 = $270f [phi:main::@4->utoa16w#0] -- vwuz1=vwuc1 @@ -831,12 +831,12 @@ main: { jmp __b5 // main::@5 __b5: - // [10] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 + // [10] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28+$28 sta.z utoa16w.dst+1 - // [11] call utoa16w + // [11] call utoa16w // [19] phi from main::@5 to utoa16w [phi:main::@5->utoa16w] utoa16w_from___b5: // [19] phi utoa16w::value#5 = $e608 [phi:main::@5->utoa16w#0] -- vwuz1=vwuc1 @@ -893,7 +893,7 @@ cls: { } // utoa16w // Hexadecimal utoa() for an unsigned int (16bits) -// utoa16w(word zp(2) value, byte* zp(4) dst) +// void utoa16w(__zp(2) unsigned int value, __zp(4) char * volatile dst) utoa16w: { .label dst = 4 .label value = 2 @@ -904,7 +904,7 @@ utoa16w: { lsr lsr lsr - // [22] call utoa16n + // [22] call utoa16n // [40] phi from utoa16w to utoa16n [phi:utoa16w->utoa16n] utoa16n_from_utoa16w: // [40] phi utoa16n::started#7 = 0 [phi:utoa16w->utoa16n#0] -- vbuxx=vbuc1 @@ -921,7 +921,7 @@ utoa16w: { // [26] utoa16n::nybble#1 = utoa16w::$3 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f // [27] utoa16n::started#1 = utoa16w::started#1 - // [28] call utoa16n + // [28] call utoa16n // [40] phi from utoa16w::@1 to utoa16n [phi:utoa16w::@1->utoa16n] utoa16n_from___b1: // [40] phi utoa16n::started#7 = utoa16n::started#1 [phi:utoa16w::@1->utoa16n#0] -- register_copy @@ -940,7 +940,7 @@ utoa16w: { lsr lsr // [33] utoa16n::started#2 = utoa16w::started#2 - // [34] call utoa16n + // [34] call utoa16n // [40] phi from utoa16w::@2 to utoa16n [phi:utoa16w::@2->utoa16n] utoa16n_from___b2: // [40] phi utoa16n::started#7 = utoa16n::started#2 [phi:utoa16w::@2->utoa16n#0] -- register_copy @@ -953,7 +953,7 @@ utoa16w: { lda.z value // [36] utoa16n::nybble#3 = utoa16w::$9 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f - // [37] call utoa16n + // [37] call utoa16n // [40] phi from utoa16w::@3 to utoa16n [phi:utoa16w::@3->utoa16n] utoa16n_from___b3: // [40] phi utoa16n::started#7 = 1 [phi:utoa16w::@3->utoa16n#0] -- vbuxx=vbuc1 @@ -975,7 +975,7 @@ utoa16w: { } // utoa16n // Hexadecimal utoa() for a single nybble -// utoa16n(byte register(A) nybble, byte register(X) started) +// __register(X) char utoa16n(__register(A) char nybble, unsigned int **dst, __register(X) char started) utoa16n: { // [41] if(utoa16n::nybble#4==0) goto utoa16n::@3 -- vbuaa_eq_0_then_la1 cmp #0 @@ -1089,41 +1089,41 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* DIGITS[] = "0123456789abcdef" +__constant char DIGITS[] = "0123456789abcdef" void cls() -byte* cls::sc -byte* cls::sc#1 sc zp[2]:2 151.5 -byte* cls::sc#2 sc zp[2]:2 151.5 -constant byte* cls::screen = (byte*) 1024 +char *cls::sc +char *cls::sc#1 // sc zp[2]:2 151.5 +char *cls::sc#2 // sc zp[2]:2 151.5 +__constant char *cls::screen = (char *) 1024 void main() -byte* main::screen -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -word** utoa16n::dst -byte utoa16n::nybble -byte utoa16n::nybble#0 reg byte a 22.0 -byte utoa16n::nybble#1 reg byte a 11.0 -byte utoa16n::nybble#2 reg byte a 11.0 -byte utoa16n::nybble#3 reg byte a 22.0 -byte utoa16n::nybble#4 reg byte a 49.2 -byte utoa16n::return -byte utoa16n::return#0 reg byte x 22.0 -byte utoa16n::return#1 reg byte x 22.0 -byte utoa16n::return#4 reg byte x 32.0 -byte utoa16n::started -byte utoa16n::started#1 reg byte x 22.0 -byte utoa16n::started#2 reg byte x 22.0 -byte utoa16n::started#7 reg byte x 41.0 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 reg byte a 22.0 -byte~ utoa16w::$3 reg byte a 22.0 -byte~ utoa16w::$6 reg byte a 22.0 -byte~ utoa16w::$9 reg byte a 22.0 -byte* volatile utoa16w::dst loadstore zp[2]:4 0.65625 -byte utoa16w::started -byte utoa16w::started#1 reg byte x 7.333333333333333 -byte utoa16w::started#2 reg byte x 7.333333333333333 -word utoa16w::value -word utoa16w::value#5 value zp[2]:2 2.75 +char *main::screen +char utoa16n(char nybble , unsigned int **dst , char started) +unsigned int **utoa16n::dst +char utoa16n::nybble +char utoa16n::nybble#0 // reg byte a 22.0 +char utoa16n::nybble#1 // reg byte a 11.0 +char utoa16n::nybble#2 // reg byte a 11.0 +char utoa16n::nybble#3 // reg byte a 22.0 +char utoa16n::nybble#4 // reg byte a 49.2 +char utoa16n::return +char utoa16n::return#0 // reg byte x 22.0 +char utoa16n::return#1 // reg byte x 22.0 +char utoa16n::return#4 // reg byte x 32.0 +char utoa16n::started +char utoa16n::started#1 // reg byte x 22.0 +char utoa16n::started#2 // reg byte x 22.0 +char utoa16n::started#7 // reg byte x 41.0 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 // reg byte a 22.0 +char utoa16w::$3 // reg byte a 22.0 +char utoa16w::$6 // reg byte a 22.0 +char utoa16w::$9 // reg byte a 22.0 +__loadstore char * volatile utoa16w::dst // zp[2]:4 0.65625 +char utoa16w::started +char utoa16w::started#1 // reg byte x 7.333333333333333 +char utoa16w::started#2 // reg byte x 7.333333333333333 +unsigned int utoa16w::value +unsigned int utoa16w::value#5 // value zp[2]:2 2.75 zp[2]:2 [ utoa16w::value#5 cls::sc#2 cls::sc#1 ] reg byte a [ utoa16n::nybble#4 utoa16n::nybble#0 utoa16n::nybble#1 utoa16n::nybble#2 utoa16n::nybble#3 ] @@ -1158,17 +1158,17 @@ Score: 751 // main main: { // cls() - // [1] call cls + // [1] call cls // [13] phi from main to cls [phi:main->cls] jsr cls // main::@1 // utoa16w(00000, screen) - // [2] utoa16w::dst = (byte*) 1024 -- pbuz1=pbuc1 + // [2] utoa16w::dst = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z utoa16w.dst lda #>$400 sta.z utoa16w.dst+1 - // [3] call utoa16w + // [3] call utoa16w // [19] phi from main::@1 to utoa16w [phi:main::@1->utoa16w] // [19] phi utoa16w::value#5 = 0 [phi:main::@1->utoa16w#0] -- vwuz1=vbuc1 lda #<0 @@ -1177,12 +1177,12 @@ main: { jsr utoa16w // main::@2 // utoa16w(01234, screen) - // [4] utoa16w::dst = (byte*) 1024+$28 -- pbuz1=pbuc1 + // [4] utoa16w::dst = (char *) 1024+$28 -- pbuz1=pbuc1 lda #<$400+$28 sta.z utoa16w.dst lda #>$400+$28 sta.z utoa16w.dst+1 - // [5] call utoa16w + // [5] call utoa16w // [19] phi from main::@2 to utoa16w [phi:main::@2->utoa16w] // [19] phi utoa16w::value#5 = $4d2 [phi:main::@2->utoa16w#0] -- vwuz1=vwuc1 lda #<$4d2 @@ -1192,12 +1192,12 @@ main: { jsr utoa16w // main::@3 // utoa16w(05678, screen) - // [6] utoa16w::dst = (byte*) 1024+$28+$28 -- pbuz1=pbuc1 + // [6] utoa16w::dst = (char *) 1024+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28 sta.z utoa16w.dst+1 - // [7] call utoa16w + // [7] call utoa16w // [19] phi from main::@3 to utoa16w [phi:main::@3->utoa16w] // [19] phi utoa16w::value#5 = $162e [phi:main::@3->utoa16w#0] -- vwuz1=vwuc1 lda #<$162e @@ -1207,12 +1207,12 @@ main: { jsr utoa16w // main::@4 // utoa16w(09999, screen) - // [8] utoa16w::dst = (byte*) 1024+$28+$28+$28 -- pbuz1=pbuc1 + // [8] utoa16w::dst = (char *) 1024+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28 sta.z utoa16w.dst+1 - // [9] call utoa16w + // [9] call utoa16w // [19] phi from main::@4 to utoa16w [phi:main::@4->utoa16w] // [19] phi utoa16w::value#5 = $270f [phi:main::@4->utoa16w#0] -- vwuz1=vwuc1 lda #<$270f @@ -1222,12 +1222,12 @@ main: { jsr utoa16w // main::@5 // utoa16w(58888, screen) - // [10] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 + // [10] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28+$28 sta.z utoa16w.dst+1 - // [11] call utoa16w + // [11] call utoa16w // [19] phi from main::@5 to utoa16w [phi:main::@5->utoa16w] // [19] phi utoa16w::value#5 = $e608 [phi:main::@5->utoa16w#0] -- vwuz1=vwuc1 lda #<$e608 @@ -1279,7 +1279,7 @@ cls: { } // utoa16w // Hexadecimal utoa() for an unsigned int (16bits) -// utoa16w(word zp(2) value, byte* zp(4) dst) +// void utoa16w(__zp(2) unsigned int value, __zp(4) char * volatile dst) utoa16w: { .label dst = 4 .label value = 2 @@ -1292,7 +1292,7 @@ utoa16w: { lsr lsr lsr - // [22] call utoa16n + // [22] call utoa16n // [40] phi from utoa16w to utoa16n [phi:utoa16w->utoa16n] // [40] phi utoa16n::started#7 = 0 [phi:utoa16w->utoa16n#0] -- vbuxx=vbuc1 ldx #0 @@ -1310,7 +1310,7 @@ utoa16w: { // [26] utoa16n::nybble#1 = utoa16w::$3 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f // [27] utoa16n::started#1 = utoa16w::started#1 - // [28] call utoa16n + // [28] call utoa16n // [40] phi from utoa16w::@1 to utoa16n [phi:utoa16w::@1->utoa16n] // [40] phi utoa16n::started#7 = utoa16n::started#1 [phi:utoa16w::@1->utoa16n#0] -- register_copy // [40] phi utoa16n::nybble#4 = utoa16n::nybble#1 [phi:utoa16w::@1->utoa16n#1] -- register_copy @@ -1330,7 +1330,7 @@ utoa16w: { lsr lsr // [33] utoa16n::started#2 = utoa16w::started#2 - // [34] call utoa16n + // [34] call utoa16n // [40] phi from utoa16w::@2 to utoa16n [phi:utoa16w::@2->utoa16n] // [40] phi utoa16n::started#7 = utoa16n::started#2 [phi:utoa16w::@2->utoa16n#0] -- register_copy // [40] phi utoa16n::nybble#4 = utoa16n::nybble#2 [phi:utoa16w::@2->utoa16n#1] -- register_copy @@ -1342,7 +1342,7 @@ utoa16w: { // utoa16n(BYTE0(value)&0x0f, &dst, 1) // [36] utoa16n::nybble#3 = utoa16w::$9 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f - // [37] call utoa16n + // [37] call utoa16n // [40] phi from utoa16w::@3 to utoa16n [phi:utoa16w::@3->utoa16n] // [40] phi utoa16n::started#7 = 1 [phi:utoa16w::@3->utoa16n#0] -- vbuxx=vbuc1 ldx #1 @@ -1361,7 +1361,7 @@ utoa16w: { } // utoa16n // Hexadecimal utoa() for a single nybble -// utoa16n(byte register(A) nybble, byte register(X) started) +// __register(X) char utoa16n(__register(A) char nybble, unsigned int **dst, __register(X) char started) utoa16n: { // if(nybble!=0) // [41] if(utoa16n::nybble#4==0) goto utoa16n::@3 -- vbuaa_eq_0_then_la1 diff --git a/src/test/ref/hex2dec-ptrptr.sym b/src/test/ref/hex2dec-ptrptr.sym index d01ee4e37..db3e072e6 100644 --- a/src/test/ref/hex2dec-ptrptr.sym +++ b/src/test/ref/hex2dec-ptrptr.sym @@ -1,38 +1,38 @@ -constant byte* DIGITS[] = "0123456789abcdef" +__constant char DIGITS[] = "0123456789abcdef" void cls() -byte* cls::sc -byte* cls::sc#1 sc zp[2]:2 151.5 -byte* cls::sc#2 sc zp[2]:2 151.5 -constant byte* cls::screen = (byte*) 1024 +char *cls::sc +char *cls::sc#1 // sc zp[2]:2 151.5 +char *cls::sc#2 // sc zp[2]:2 151.5 +__constant char *cls::screen = (char *) 1024 void main() -byte* main::screen -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -word** utoa16n::dst -byte utoa16n::nybble -byte utoa16n::nybble#0 reg byte a 22.0 -byte utoa16n::nybble#1 reg byte a 11.0 -byte utoa16n::nybble#2 reg byte a 11.0 -byte utoa16n::nybble#3 reg byte a 22.0 -byte utoa16n::nybble#4 reg byte a 49.2 -byte utoa16n::return -byte utoa16n::return#0 reg byte x 22.0 -byte utoa16n::return#1 reg byte x 22.0 -byte utoa16n::return#4 reg byte x 32.0 -byte utoa16n::started -byte utoa16n::started#1 reg byte x 22.0 -byte utoa16n::started#2 reg byte x 22.0 -byte utoa16n::started#7 reg byte x 41.0 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 reg byte a 22.0 -byte~ utoa16w::$3 reg byte a 22.0 -byte~ utoa16w::$6 reg byte a 22.0 -byte~ utoa16w::$9 reg byte a 22.0 -byte* volatile utoa16w::dst loadstore zp[2]:4 0.65625 -byte utoa16w::started -byte utoa16w::started#1 reg byte x 7.333333333333333 -byte utoa16w::started#2 reg byte x 7.333333333333333 -word utoa16w::value -word utoa16w::value#5 value zp[2]:2 2.75 +char *main::screen +char utoa16n(char nybble , unsigned int **dst , char started) +unsigned int **utoa16n::dst +char utoa16n::nybble +char utoa16n::nybble#0 // reg byte a 22.0 +char utoa16n::nybble#1 // reg byte a 11.0 +char utoa16n::nybble#2 // reg byte a 11.0 +char utoa16n::nybble#3 // reg byte a 22.0 +char utoa16n::nybble#4 // reg byte a 49.2 +char utoa16n::return +char utoa16n::return#0 // reg byte x 22.0 +char utoa16n::return#1 // reg byte x 22.0 +char utoa16n::return#4 // reg byte x 32.0 +char utoa16n::started +char utoa16n::started#1 // reg byte x 22.0 +char utoa16n::started#2 // reg byte x 22.0 +char utoa16n::started#7 // reg byte x 41.0 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 // reg byte a 22.0 +char utoa16w::$3 // reg byte a 22.0 +char utoa16w::$6 // reg byte a 22.0 +char utoa16w::$9 // reg byte a 22.0 +__loadstore char * volatile utoa16w::dst // zp[2]:4 0.65625 +char utoa16w::started +char utoa16w::started#1 // reg byte x 7.333333333333333 +char utoa16w::started#2 // reg byte x 7.333333333333333 +unsigned int utoa16w::value +unsigned int utoa16w::value#5 // value zp[2]:2 2.75 zp[2]:2 [ utoa16w::value#5 cls::sc#2 cls::sc#1 ] reg byte a [ utoa16n::nybble#4 utoa16n::nybble#0 utoa16n::nybble#1 utoa16n::nybble#2 utoa16n::nybble#3 ] diff --git a/src/test/ref/hex2dec.asm b/src/test/ref/hex2dec.asm index 8af54f530..73447050a 100644 --- a/src/test/ref/hex2dec.asm +++ b/src/test/ref/hex2dec.asm @@ -154,7 +154,7 @@ cls: { rts } // Hexadecimal utoa() for an unsigned int (16bits) -// utoa16w(word zp(2) value, byte* zp(8) dst) +// void utoa16w(__zp(2) unsigned int value, __zp(8) char * volatile dst) utoa16w: { .label dst = 8 .label value = 2 @@ -198,7 +198,7 @@ utoa16w: { rts } // Decimal utoa() without using multiply or divide -// utoa10w(word zp(2) value, byte* zp(4) dst) +// void utoa10w(__zp(2) unsigned int value, __zp(4) char *dst) utoa10w: { .label value = 2 .label digit = 6 @@ -288,7 +288,7 @@ utoa10w: { jmp __b1 } // Hexadecimal utoa() for a single nybble -// utoa16n(byte register(A) nybble, byte register(X) started) +// __register(X) char utoa16n(__register(A) char nybble, unsigned int **dst, __register(X) char started) utoa16n: { // if(nybble!=0) cmp #0 diff --git a/src/test/ref/hex2dec.cfg b/src/test/ref/hex2dec.cfg index a7a02761e..3db4ce907 100644 --- a/src/test/ref/hex2dec.cfg +++ b/src/test/ref/hex2dec.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from asm { sei } - [1] call cls + [1] call cls to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 [2] main::$1 = *control & $80 @@ -13,42 +13,42 @@ main::@1: scope:[main] from main main::@1 main::@3 main::@2: scope:[main] from main::@1 [6] *BORDER_COLOR = 1 [7] main::time_start#0 = *raster - [8] utoa16w::dst = (byte*) 1024 - [9] call utoa16w + [8] utoa16w::dst = (char *) 1024 + [9] call utoa16w to:main::@5 main::@5: scope:[main] from main::@2 [10] *BORDER_COLOR = ++ *BORDER_COLOR - [11] utoa16w::dst = (byte*) 1024+$28 - [12] call utoa16w + [11] utoa16w::dst = (char *) 1024+$28 + [12] call utoa16w to:main::@6 main::@6: scope:[main] from main::@5 [13] *BORDER_COLOR = ++ *BORDER_COLOR - [14] utoa16w::dst = (byte*) 1024+$28+$28 - [15] call utoa16w + [14] utoa16w::dst = (char *) 1024+$28+$28 + [15] call utoa16w to:main::@7 main::@7: scope:[main] from main::@6 [16] *BORDER_COLOR = ++ *BORDER_COLOR - [17] utoa16w::dst = (byte*) 1024+$28+$28+$28 - [18] call utoa16w + [17] utoa16w::dst = (char *) 1024+$28+$28+$28 + [18] call utoa16w to:main::@8 main::@8: scope:[main] from main::@7 [19] *BORDER_COLOR = ++ *BORDER_COLOR - [20] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 - [21] call utoa16w + [20] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 + [21] call utoa16w to:main::@9 main::@9: scope:[main] from main::@8 [22] main::time_end#0 = *raster [23] *BORDER_COLOR = 0 [24] main::time#0 = main::time_end#0 - main::time_start#0 - [25] utoa10w::value#0 = (word)main::time#0 - [26] call utoa10w + [25] utoa10w::value#0 = (unsigned int)main::time#0 + [26] call utoa10w to:main::@3 main::@3: scope:[main] from main::@4 main::@9 [27] main::i#2 = phi( main::@9/0, main::@4/main::i#1 ) [28] if(main::msg[main::i#2]!=0) goto main::@4 to:main::@1 main::@4: scope:[main] from main::@3 - [29] ((byte*) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] + [29] ((char *) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] [30] main::i#1 = ++ main::i#2 to:main::@3 @@ -66,12 +66,12 @@ cls::@return: scope:[cls] from cls::@1 [36] return to:@return -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) +void utoa16w(unsigned int value , char * volatile dst) utoa16w: scope:[utoa16w] from main::@2 main::@5 main::@6 main::@7 main::@8 [37] utoa16w::value#5 = phi( main::@8/$e608, main::@2/0, main::@5/$4d2, main::@6/$162e, main::@7/$270f ) [38] utoa16w::$0 = byte1 utoa16w::value#5 [39] utoa16n::nybble#0 = utoa16w::$0 >> 4 - [40] call utoa16n + [40] call utoa16n [41] utoa16n::return#0 = utoa16n::return#4 to:utoa16w::@1 utoa16w::@1: scope:[utoa16w] from utoa16w @@ -79,7 +79,7 @@ utoa16w::@1: scope:[utoa16w] from utoa16w [43] utoa16w::$3 = byte1 utoa16w::value#5 [44] utoa16n::nybble#1 = utoa16w::$3 & $f [45] utoa16n::started#1 = utoa16w::started#1 - [46] call utoa16n + [46] call utoa16n [47] utoa16n::return#1 = utoa16n::return#4 to:utoa16w::@2 utoa16w::@2: scope:[utoa16w] from utoa16w::@1 @@ -87,12 +87,12 @@ utoa16w::@2: scope:[utoa16w] from utoa16w::@1 [49] utoa16w::$6 = byte0 utoa16w::value#5 [50] utoa16n::nybble#2 = utoa16w::$6 >> 4 [51] utoa16n::started#2 = utoa16w::started#2 - [52] call utoa16n + [52] call utoa16n to:utoa16w::@3 utoa16w::@3: scope:[utoa16w] from utoa16w::@2 [53] utoa16w::$9 = byte0 utoa16w::value#5 [54] utoa16n::nybble#3 = utoa16w::$9 & $f - [55] call utoa16n + [55] call utoa16n to:utoa16w::@4 utoa16w::@4: scope:[utoa16w] from utoa16w::@3 [56] *utoa16w::dst = 0 @@ -101,12 +101,12 @@ utoa16w::@return: scope:[utoa16w] from utoa16w::@4 [57] return to:@return -void utoa10w(word utoa10w::value , byte* utoa10w::dst) +void utoa10w(unsigned int value , char *dst) utoa10w: scope:[utoa10w] from main::@9 [58] phi() to:utoa10w::@1 utoa10w::@1: scope:[utoa10w] from utoa10w utoa10w::@2 utoa10w::@6 - [59] utoa10w::dst#11 = phi( utoa10w/(byte*) 1024+$28+$28+$28+$28+$50, utoa10w::@2/utoa10w::dst#11, utoa10w::@6/utoa10w::dst#4 ) + [59] utoa10w::dst#11 = phi( utoa10w/(char *) 1024+$28+$28+$28+$28+$50, utoa10w::@2/utoa10w::dst#11, utoa10w::@6/utoa10w::dst#4 ) [59] utoa10w::bStarted#2 = phi( utoa10w/0, utoa10w::@2/1, utoa10w::@6/utoa10w::bStarted#2 ) [59] utoa10w::digit#3 = phi( utoa10w/0, utoa10w::@2/utoa10w::digit#1, utoa10w::@6/utoa10w::digit#7 ) [59] utoa10w::value#10 = phi( utoa10w/utoa10w::value#0, utoa10w::@2/utoa10w::value#1, utoa10w::@6/utoa10w::value#10 ) @@ -135,7 +135,7 @@ utoa10w::@6: scope:[utoa10w] from utoa10w::@3 utoa10w::@7 [70] if(utoa10w::i#1!=8) goto utoa10w::@1 to:utoa10w::@8 utoa10w::@8: scope:[utoa10w] from utoa10w::@6 - [71] utoa10w::$9 = (byte)utoa10w::value#10 + [71] utoa10w::$9 = (char)utoa10w::value#10 [72] *utoa10w::dst#4 = DIGITS[utoa10w::$9] [73] utoa10w::dst#2 = ++ utoa10w::dst#4 [74] *utoa10w::dst#2 = 0 @@ -148,7 +148,7 @@ utoa10w::@2: scope:[utoa10w] from utoa10w::@1 [77] utoa10w::value#1 = utoa10w::value#10 - UTOA10_SUB[utoa10w::$8] to:utoa10w::@1 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) +char utoa16n(char nybble , unsigned int **dst , char started) utoa16n: scope:[utoa16n] from utoa16w utoa16w::@1 utoa16w::@2 utoa16w::@3 [78] utoa16n::started#7 = phi( utoa16w/0, utoa16w::@1/utoa16n::started#1, utoa16w::@2/utoa16n::started#2, utoa16w::@3/1 ) [78] utoa16n::nybble#4 = phi( utoa16w/utoa16n::nybble#0, utoa16w::@1/utoa16n::nybble#1, utoa16w::@2/utoa16n::nybble#2, utoa16w::@3/utoa16n::nybble#3 ) diff --git a/src/test/ref/hex2dec.log b/src/test/ref/hex2dec.log index c77f39478..d5b928b3c 100644 --- a/src/test/ref/hex2dec.log +++ b/src/test/ref/hex2dec.log @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start asm { sei } - call cls + call cls to:main::@6 main::@6: scope:[main] from main to:main::@1 @@ -22,12 +22,12 @@ main::@2: scope:[main] from main::@1 main::@2 if(main::$4) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 *BORDER_COLOR = 1 main::time_start#0 = *raster utoa16w::value#0 = 0 utoa16w::dst = main::screen#0 - call utoa16w + call utoa16w to:main::@7 main::@7: scope:[main] from main::@3 main::time_start#5 = phi( main::@3/main::time_start#0 ) @@ -36,7 +36,7 @@ main::@7: scope:[main] from main::@3 main::screen#1 = main::screen#5 + $28 utoa16w::value#1 = $4d2 utoa16w::dst = main::screen#1 - call utoa16w + call utoa16w to:main::@8 main::@8: scope:[main] from main::@7 main::time_start#4 = phi( main::@7/main::time_start#5 ) @@ -45,7 +45,7 @@ main::@8: scope:[main] from main::@7 main::screen#2 = main::screen#6 + $28 utoa16w::value#2 = $162e utoa16w::dst = main::screen#2 - call utoa16w + call utoa16w to:main::@9 main::@9: scope:[main] from main::@8 main::time_start#3 = phi( main::@8/main::time_start#4 ) @@ -54,7 +54,7 @@ main::@9: scope:[main] from main::@8 main::screen#3 = main::screen#7 + $28 utoa16w::value#3 = $270f utoa16w::dst = main::screen#3 - call utoa16w + call utoa16w to:main::@10 main::@10: scope:[main] from main::@9 main::time_start#2 = phi( main::@9/main::time_start#3 ) @@ -63,7 +63,7 @@ main::@10: scope:[main] from main::@9 main::screen#4 = main::screen#8 + $28 utoa16w::value#4 = $e608 utoa16w::dst = main::screen#4 - call utoa16w + call utoa16w to:main::@11 main::@11: scope:[main] from main::@10 main::screen#9 = phi( main::@10/main::screen#4 ) @@ -72,9 +72,9 @@ main::@11: scope:[main] from main::@10 *BORDER_COLOR = 0 main::time#0 = main::time_end#0 - main::time_start#1 main::$15 = main::screen#9 + $50 - utoa10w::value#0 = (word)main::time#0 + utoa10w::value#0 = (unsigned int)main::time#0 utoa10w::dst#0 = main::$15 - call utoa10w + call utoa10w to:main::@12 main::@12: scope:[main] from main::@11 main::screen#12 = phi( main::@11/main::screen#9 ) @@ -114,7 +114,7 @@ cls::@return: scope:[cls] from cls::@1 return to:@return -void utoa10w(word utoa10w::value , byte* utoa10w::dst) +void utoa10w(unsigned int value , char *dst) utoa10w: scope:[utoa10w] from main::@11 utoa10w::dst#10 = phi( main::@11/utoa10w::dst#0 ) utoa10w::value#5 = phi( main::@11/utoa10w::value#0 ) @@ -128,7 +128,7 @@ utoa10w::@1: scope:[utoa10w] from utoa10w utoa10w::@2 utoa10w::@6 utoa10w::digit#5 = phi( utoa10w/utoa10w::digit#0, utoa10w::@2/utoa10w::digit#1, utoa10w::@6/utoa10w::digit#7 ) utoa10w::value#2 = phi( utoa10w/utoa10w::value#5, utoa10w::@2/utoa10w::value#1, utoa10w::@6/utoa10w::value#6 ) utoa10w::i#2 = phi( utoa10w/utoa10w::i#0, utoa10w::@2/utoa10w::i#3, utoa10w::@6/utoa10w::i#1 ) - utoa10w::$7 = utoa10w::i#2 * SIZEOF_WORD + utoa10w::$7 = utoa10w::i#2 * SIZEOF_UNSIGNED_INT utoa10w::$0 = utoa10w::value#2 >= UTOA10_SUB[utoa10w::$7] if(utoa10w::$0) goto utoa10w::@2 to:utoa10w::@3 @@ -138,7 +138,7 @@ utoa10w::@2: scope:[utoa10w] from utoa10w::@1 utoa10w::i#3 = phi( utoa10w::@1/utoa10w::i#2 ) utoa10w::digit#3 = phi( utoa10w::@1/utoa10w::digit#5 ) utoa10w::digit#1 = utoa10w::digit#3 + UTOA10_VAL[utoa10w::i#3] - utoa10w::$8 = utoa10w::i#3 * SIZEOF_WORD + utoa10w::$8 = utoa10w::i#3 * SIZEOF_UNSIGNED_INT utoa10w::value#1 = utoa10w::value#3 - UTOA10_SUB[utoa10w::$8] utoa10w::bStarted#1 = 1 to:utoa10w::@1 @@ -192,7 +192,7 @@ utoa10w::@5: scope:[utoa10w] from utoa10w::@4 utoa10w::@8: scope:[utoa10w] from utoa10w::@6 utoa10w::dst#4 = phi( utoa10w::@6/utoa10w::dst#6 ) utoa10w::value#4 = phi( utoa10w::@6/utoa10w::value#6 ) - utoa10w::$9 = (byte)utoa10w::value#4 + utoa10w::$9 = (char)utoa10w::value#4 *utoa10w::dst#4 = DIGITS[utoa10w::$9] utoa10w::dst#2 = ++ utoa10w::dst#4 *utoa10w::dst#2 = 0 @@ -201,7 +201,7 @@ utoa10w::@return: scope:[utoa10w] from utoa10w::@8 return to:@return -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) +void utoa16w(unsigned int value , char * volatile dst) utoa16w: scope:[utoa16w] from main::@10 main::@3 main::@7 main::@8 main::@9 utoa16w::value#5 = phi( main::@10/utoa16w::value#4, main::@3/utoa16w::value#0, main::@7/utoa16w::value#1, main::@8/utoa16w::value#2, main::@9/utoa16w::value#3 ) utoa16w::started#0 = 0 @@ -210,7 +210,7 @@ utoa16w: scope:[utoa16w] from main::@10 main::@3 main::@7 main::@8 main::@9 utoa16n::nybble#0 = utoa16w::$1 utoa16n::dst#0 = &utoa16w::dst utoa16n::started#0 = utoa16w::started#0 - call utoa16n + call utoa16n utoa16n::return#0 = utoa16n::return#5 to:utoa16w::@1 utoa16w::@1: scope:[utoa16w] from utoa16w @@ -223,7 +223,7 @@ utoa16w::@1: scope:[utoa16w] from utoa16w utoa16n::nybble#1 = utoa16w::$4 utoa16n::dst#1 = &utoa16w::dst utoa16n::started#1 = utoa16w::started#1 - call utoa16n + call utoa16n utoa16n::return#1 = utoa16n::return#5 to:utoa16w::@2 utoa16w::@2: scope:[utoa16w] from utoa16w::@1 @@ -236,7 +236,7 @@ utoa16w::@2: scope:[utoa16w] from utoa16w::@1 utoa16n::nybble#2 = utoa16w::$7 utoa16n::dst#2 = &utoa16w::dst utoa16n::started#2 = utoa16w::started#2 - call utoa16n + call utoa16n utoa16n::return#2 = utoa16n::return#5 to:utoa16w::@3 utoa16w::@3: scope:[utoa16w] from utoa16w::@2 @@ -249,7 +249,7 @@ utoa16w::@3: scope:[utoa16w] from utoa16w::@2 utoa16n::nybble#3 = utoa16w::$10 utoa16n::dst#3 = &utoa16w::dst utoa16n::started#3 = 1 - call utoa16n + call utoa16n utoa16n::return#3 = utoa16n::return#5 to:utoa16w::@4 utoa16w::@4: scope:[utoa16w] from utoa16w::@3 @@ -259,7 +259,7 @@ utoa16w::@return: scope:[utoa16w] from utoa16w::@4 return to:@return -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) +char utoa16n(char nybble , unsigned int **dst , char started) utoa16n: scope:[utoa16n] from utoa16w utoa16w::@1 utoa16w::@2 utoa16w::@3 utoa16n::dst#6 = phi( utoa16w/utoa16n::dst#0, utoa16w::@1/utoa16n::dst#1, utoa16w::@2/utoa16n::dst#2, utoa16w::@3/utoa16n::dst#3 ) utoa16n::started#7 = phi( utoa16w/utoa16n::started#0, utoa16w::@1/utoa16n::started#1, utoa16w::@2/utoa16n::started#2, utoa16w::@3/utoa16n::started#3 ) @@ -300,7 +300,7 @@ utoa16n::@return: scope:[utoa16n] from utoa16n::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -309,200 +309,200 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* DIGITS[] = "0123456789abcdef" -constant byte SIZEOF_WORD = 2 -constant word* UTOA10_SUB[] = { $7530, $2710, $bb8, $3e8, $12c, $64, $1e, $a } -constant byte* UTOA10_VAL[] = { 3, 1, 3, 1, 3, 1, 3, 1 } +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char DIGITS[] = "0123456789abcdef" +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant unsigned int UTOA10_SUB[] = { $7530, $2710, $bb8, $3e8, $12c, $64, $1e, $a } +__constant char UTOA10_VAL[] = { 3, 1, 3, 1, 3, 1, 3, 1 } void __start() void cls() -byte*~ cls::$0 -bool~ cls::$1 -byte* cls::sc -byte* cls::sc#0 -byte* cls::sc#1 -byte* cls::sc#2 -constant byte* cls::screen = (byte*)$400 -constant byte* const control = (byte*)$d011 +char *cls::$0 +bool cls::$1 +char *cls::sc +char *cls::sc#0 +char *cls::sc#1 +char *cls::sc#2 +__constant char *cls::screen = (char *)$400 +__constant char * const control = (char *)$d011 void main() -number~ main::$1 -byte*~ main::$15 -bool~ main::$17 -byte*~ main::$18 -byte*~ main::$19 -byte~ main::$2 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* main::msg[] = "raster lines" -byte main::rst -byte main::rst#0 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#10 -byte* main::screen#11 -byte* main::screen#12 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* main::screen#7 -byte* main::screen#8 -byte* main::screen#9 -byte main::time -byte main::time#0 -byte main::time_end -byte main::time_end#0 -byte main::time_start -byte main::time_start#0 -byte main::time_start#1 -byte main::time_start#2 -byte main::time_start#3 -byte main::time_start#4 -byte main::time_start#5 -constant byte* const raster = (byte*)$d012 -void utoa10w(word utoa10w::value , byte* utoa10w::dst) -bool~ utoa10w::$0 -number~ utoa10w::$1 -bool~ utoa10w::$2 -bool~ utoa10w::$3 -bool~ utoa10w::$4 -bool~ utoa10w::$5 -bool~ utoa10w::$6 -byte~ utoa10w::$7 -byte~ utoa10w::$8 -byte~ utoa10w::$9 -byte utoa10w::bStarted -byte utoa10w::bStarted#0 -byte utoa10w::bStarted#1 -byte utoa10w::bStarted#2 -byte utoa10w::bStarted#3 -byte utoa10w::bStarted#4 -byte utoa10w::bStarted#5 -byte utoa10w::bStarted#6 -byte utoa10w::bStarted#7 -byte utoa10w::digit -byte utoa10w::digit#0 -byte utoa10w::digit#1 -byte utoa10w::digit#2 -byte utoa10w::digit#3 -byte utoa10w::digit#4 -byte utoa10w::digit#5 -byte utoa10w::digit#6 -byte utoa10w::digit#7 -byte utoa10w::digit#8 -byte* utoa10w::dst -byte* utoa10w::dst#0 -byte* utoa10w::dst#1 -byte* utoa10w::dst#10 -byte* utoa10w::dst#11 -byte* utoa10w::dst#2 -byte* utoa10w::dst#3 -byte* utoa10w::dst#4 -byte* utoa10w::dst#5 -byte* utoa10w::dst#6 -byte* utoa10w::dst#7 -byte* utoa10w::dst#8 -byte* utoa10w::dst#9 -byte utoa10w::i -byte utoa10w::i#0 -byte utoa10w::i#1 -byte utoa10w::i#2 -byte utoa10w::i#3 -byte utoa10w::i#4 -byte utoa10w::i#5 -byte utoa10w::i#6 -byte utoa10w::i#7 -byte utoa10w::i#8 -word utoa10w::value -word utoa10w::value#0 -word utoa10w::value#1 -word utoa10w::value#10 -word utoa10w::value#2 -word utoa10w::value#3 -word utoa10w::value#4 -word utoa10w::value#5 -word utoa10w::value#6 -word utoa10w::value#7 -word utoa10w::value#8 -word utoa10w::value#9 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -bool~ utoa16n::$0 -bool~ utoa16n::$1 -bool~ utoa16n::$2 -bool~ utoa16n::$3 -word** utoa16n::dst -word** utoa16n::dst#0 -word** utoa16n::dst#1 -word** utoa16n::dst#2 -word** utoa16n::dst#3 -word** utoa16n::dst#4 -word** utoa16n::dst#5 -word** utoa16n::dst#6 -word** utoa16n::dst#7 -byte utoa16n::nybble -byte utoa16n::nybble#0 -byte utoa16n::nybble#1 -byte utoa16n::nybble#2 -byte utoa16n::nybble#3 -byte utoa16n::nybble#4 -byte utoa16n::nybble#5 -byte utoa16n::nybble#6 -byte utoa16n::nybble#7 -byte utoa16n::return -byte utoa16n::return#0 -byte utoa16n::return#1 -byte utoa16n::return#2 -byte utoa16n::return#3 -byte utoa16n::return#4 -byte utoa16n::return#5 -byte utoa16n::return#6 -byte utoa16n::return#7 -byte utoa16n::return#8 -byte utoa16n::return#9 -byte utoa16n::started -byte utoa16n::started#0 -byte utoa16n::started#1 -byte utoa16n::started#2 -byte utoa16n::started#3 -byte utoa16n::started#4 -byte utoa16n::started#5 -byte utoa16n::started#6 -byte utoa16n::started#7 -byte utoa16n::started#8 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 -byte~ utoa16w::$1 -number~ utoa16w::$10 -byte~ utoa16w::$2 -byte~ utoa16w::$3 -number~ utoa16w::$4 -byte~ utoa16w::$5 -byte~ utoa16w::$6 -byte~ utoa16w::$7 -byte~ utoa16w::$8 -byte~ utoa16w::$9 -byte* volatile utoa16w::dst loadstore -byte utoa16w::started -byte utoa16w::started#0 -byte utoa16w::started#1 -byte utoa16w::started#2 -byte utoa16w::started#3 -word utoa16w::value -word utoa16w::value#0 -word utoa16w::value#1 -word utoa16w::value#2 -word utoa16w::value#3 -word utoa16w::value#4 -word utoa16w::value#5 -word utoa16w::value#6 -word utoa16w::value#7 -word utoa16w::value#8 +number main::$1 +char *main::$15 +bool main::$17 +char *main::$18 +char *main::$19 +char main::$2 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char main::msg[] = "raster lines" +char main::rst +char main::rst#0 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#10 +char *main::screen#11 +char *main::screen#12 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +char *main::screen#7 +char *main::screen#8 +char *main::screen#9 +char main::time +char main::time#0 +char main::time_end +char main::time_end#0 +char main::time_start +char main::time_start#0 +char main::time_start#1 +char main::time_start#2 +char main::time_start#3 +char main::time_start#4 +char main::time_start#5 +__constant char * const raster = (char *)$d012 +void utoa10w(unsigned int value , char *dst) +bool utoa10w::$0 +number utoa10w::$1 +bool utoa10w::$2 +bool utoa10w::$3 +bool utoa10w::$4 +bool utoa10w::$5 +bool utoa10w::$6 +char utoa10w::$7 +char utoa10w::$8 +char utoa10w::$9 +char utoa10w::bStarted +char utoa10w::bStarted#0 +char utoa10w::bStarted#1 +char utoa10w::bStarted#2 +char utoa10w::bStarted#3 +char utoa10w::bStarted#4 +char utoa10w::bStarted#5 +char utoa10w::bStarted#6 +char utoa10w::bStarted#7 +char utoa10w::digit +char utoa10w::digit#0 +char utoa10w::digit#1 +char utoa10w::digit#2 +char utoa10w::digit#3 +char utoa10w::digit#4 +char utoa10w::digit#5 +char utoa10w::digit#6 +char utoa10w::digit#7 +char utoa10w::digit#8 +char *utoa10w::dst +char *utoa10w::dst#0 +char *utoa10w::dst#1 +char *utoa10w::dst#10 +char *utoa10w::dst#11 +char *utoa10w::dst#2 +char *utoa10w::dst#3 +char *utoa10w::dst#4 +char *utoa10w::dst#5 +char *utoa10w::dst#6 +char *utoa10w::dst#7 +char *utoa10w::dst#8 +char *utoa10w::dst#9 +char utoa10w::i +char utoa10w::i#0 +char utoa10w::i#1 +char utoa10w::i#2 +char utoa10w::i#3 +char utoa10w::i#4 +char utoa10w::i#5 +char utoa10w::i#6 +char utoa10w::i#7 +char utoa10w::i#8 +unsigned int utoa10w::value +unsigned int utoa10w::value#0 +unsigned int utoa10w::value#1 +unsigned int utoa10w::value#10 +unsigned int utoa10w::value#2 +unsigned int utoa10w::value#3 +unsigned int utoa10w::value#4 +unsigned int utoa10w::value#5 +unsigned int utoa10w::value#6 +unsigned int utoa10w::value#7 +unsigned int utoa10w::value#8 +unsigned int utoa10w::value#9 +char utoa16n(char nybble , unsigned int **dst , char started) +bool utoa16n::$0 +bool utoa16n::$1 +bool utoa16n::$2 +bool utoa16n::$3 +unsigned int **utoa16n::dst +unsigned int **utoa16n::dst#0 +unsigned int **utoa16n::dst#1 +unsigned int **utoa16n::dst#2 +unsigned int **utoa16n::dst#3 +unsigned int **utoa16n::dst#4 +unsigned int **utoa16n::dst#5 +unsigned int **utoa16n::dst#6 +unsigned int **utoa16n::dst#7 +char utoa16n::nybble +char utoa16n::nybble#0 +char utoa16n::nybble#1 +char utoa16n::nybble#2 +char utoa16n::nybble#3 +char utoa16n::nybble#4 +char utoa16n::nybble#5 +char utoa16n::nybble#6 +char utoa16n::nybble#7 +char utoa16n::return +char utoa16n::return#0 +char utoa16n::return#1 +char utoa16n::return#2 +char utoa16n::return#3 +char utoa16n::return#4 +char utoa16n::return#5 +char utoa16n::return#6 +char utoa16n::return#7 +char utoa16n::return#8 +char utoa16n::return#9 +char utoa16n::started +char utoa16n::started#0 +char utoa16n::started#1 +char utoa16n::started#2 +char utoa16n::started#3 +char utoa16n::started#4 +char utoa16n::started#5 +char utoa16n::started#6 +char utoa16n::started#7 +char utoa16n::started#8 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 +char utoa16w::$1 +number utoa16w::$10 +char utoa16w::$2 +char utoa16w::$3 +number utoa16w::$4 +char utoa16w::$5 +char utoa16w::$6 +char utoa16w::$7 +char utoa16w::$8 +char utoa16w::$9 +__loadstore char * volatile utoa16w::dst +char utoa16w::started +char utoa16w::started#0 +char utoa16w::started#1 +char utoa16w::started#2 +char utoa16w::started#3 +unsigned int utoa16w::value +unsigned int utoa16w::value#0 +unsigned int utoa16w::value#1 +unsigned int utoa16w::value#2 +unsigned int utoa16w::value#3 +unsigned int utoa16w::value#4 +unsigned int utoa16w::value#5 +unsigned int utoa16w::value#6 +unsigned int utoa16w::value#7 +unsigned int utoa16w::value#8 Adding number conversion cast (unumber) $80 in main::$1 = *control & $80 Adding number conversion cast (unumber) main::$1 in main::$1 = *control & (unumber)$80 @@ -557,14 +557,14 @@ Inlining cast utoa16n::started#3 = (unumber)1 Inlining cast *utoa16w::dst = (unumber)0 Inlining cast utoa16n::started#4 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $80 Simplifying constant integer cast 1 Simplifying constant integer cast $30 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $28 @@ -597,45 +597,45 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $30 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $4d2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $162e -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $270f -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $e608 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3e7 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $30 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $4d2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $162e +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $270f +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $e608 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3e7 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = *control & $80 -Inferred type updated to byte in utoa10w::$1 = utoa10w::i#4 & 1 -Inferred type updated to byte in utoa16w::$4 = utoa16w::$3 & $f -Inferred type updated to byte in utoa16w::$10 = utoa16w::$9 & $f +Inferred type updated to char in main::$1 = *control & $80 +Inferred type updated to char in utoa10w::$1 = utoa10w::i#4 & 1 +Inferred type updated to char in utoa16w::$4 = utoa16w::$3 & $f +Inferred type updated to char in utoa16w::$10 = utoa16w::$9 & $f Inversing boolean not [81] utoa10w::$3 = utoa10w::$1 == 0 from [80] utoa10w::$2 = utoa10w::$1 != 0 Inversing boolean not [89] utoa10w::$5 = utoa10w::bStarted#2 == 0 from [88] utoa10w::$4 = utoa10w::bStarted#2 != 0 Inversing boolean not [145] utoa16n::$1 = utoa16n::nybble#4 == 0 from [144] utoa16n::$0 = utoa16n::nybble#4 != 0 @@ -702,7 +702,7 @@ Simple Condition utoa16n::$3 [123] if(utoa16n::return#4==0) goto utoa16n::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [49] cls::$0 = cls::screen + $3e7 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant utoa16w::value#0 = 0 Constant utoa16w::value#1 = $4d2 Constant utoa16w::value#2 = $162e @@ -729,7 +729,7 @@ Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [2] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs Resolved ranged next value [53] cls::sc#1 = ++ cls::sc#2 to ++ -Resolved ranged comparison value [55] if(cls::sc#1!=rangelast(cls::screen,cls::$0)) goto cls::@1 to (byte*)cls::$0+1 +Resolved ranged comparison value [55] if(cls::sc#1!=rangelast(cls::screen,cls::$0)) goto cls::@1 to (char *)cls::$0+1 Resolved ranged next value [73] utoa10w::i#1 = ++ utoa10w::i#2 to ++ Resolved ranged comparison value [75] if(utoa10w::i#1!=rangelast(0,7)) goto utoa10w::@1 to 8 Removing unused block main::@return @@ -744,15 +744,15 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Adding number conversion cast (unumber) 1 in [41] if(cls::sc#1!=(byte*)cls::$0+1) goto cls::@1 +Adding number conversion cast (unumber) 1 in [41] if(cls::sc#1!=(char *)cls::$0+1) goto cls::@1 Adding number conversion cast (unumber) 8 in [53] if(utoa10w::i#1!=8) goto utoa10w::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast cls::$0+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [11] main::screen#1 = main::screen#0 + $28 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -780,8 +780,8 @@ Constant right-side identified [29] main::$19 = main::$18 + 3 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$19 = main::$18+3 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [37] utoa10w::$7 = utoa10w::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [40] utoa10w::$8 = utoa10w::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [37] utoa10w::$7 = utoa10w::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [40] utoa10w::$8 = utoa10w::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with different constant siblings main::screen#0 Inlining constant with var siblings main::i#0 @@ -809,19 +809,19 @@ Inlining constant with var siblings utoa16n::dst#3 Inlining constant with var siblings utoa16n::started#3 Inlining constant with var siblings utoa16n::started#4 Inlining constant with var siblings utoa16n::started#0 -Constant inlined main::screen#0 = (byte*) 1024 -Constant inlined main::screen#1 = (byte*) 1024+$28 +Constant inlined main::screen#0 = (char *) 1024 +Constant inlined main::screen#1 = (char *) 1024+$28 Constant inlined utoa16w::value#2 = $162e Constant inlined utoa16w::value#1 = $4d2 -Constant inlined main::screen#2 = (byte*) 1024+$28+$28 +Constant inlined main::screen#2 = (char *) 1024+$28+$28 Constant inlined utoa16w::value#0 = 0 -Constant inlined main::screen#3 = (byte*) 1024+$28+$28+$28 +Constant inlined main::screen#3 = (char *) 1024+$28+$28+$28 Constant inlined utoa10w::bStarted#1 = 1 Constant inlined utoa10w::bStarted#0 = 0 -Constant inlined main::screen#12 = (byte*) 1024+$28+$28+$28+$28 +Constant inlined main::screen#12 = (char *) 1024+$28+$28+$28+$28 Constant inlined utoa16n::started#0 = 0 -Constant inlined main::$18 = (byte*) 1024+$28+$28+$28+$28+$50 -Constant inlined main::$19 = (byte*) 1024+$28+$28+$28+$28+$50+3 +Constant inlined main::$18 = (char *) 1024+$28+$28+$28+$28+$50 +Constant inlined main::$19 = (char *) 1024+$28+$28+$28+$28+$50+3 Constant inlined main::i#0 = 0 Constant inlined utoa16n::dst#1 = &utoa16w::dst Constant inlined utoa16n::dst#0 = &utoa16w::dst @@ -833,7 +833,7 @@ Constant inlined cls::sc#0 = cls::screen Constant inlined utoa16w::started#0 = 0 Constant inlined cls::$0 = cls::screen+$3e7 Constant inlined utoa10w::i#0 = 0 -Constant inlined utoa10w::dst#0 = (byte*) 1024+$28+$28+$28+$28+$50 +Constant inlined utoa10w::dst#0 = (char *) 1024+$28+$28+$28+$28+$50 Constant inlined utoa10w::digit#0 = 0 Constant inlined utoa16w::value#4 = $e608 Constant inlined utoa16w::value#3 = $270f @@ -843,7 +843,7 @@ Identical Phi Values utoa16n::dst#4 &utoa16w::dst Successful SSA optimization Pass2IdenticalPhiElimination Identified duplicate assignment right side [40] utoa10w::$8 = utoa10w::i#2 << 1 Successful SSA optimization Pass2DuplicateRValueIdentification -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Alias utoa10w::$8 = utoa10w::$7 Successful SSA optimization Pass2AliasElimination @@ -917,7 +917,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from asm { sei } - [1] call cls + [1] call cls to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 [2] main::$1 = *control & $80 @@ -928,42 +928,42 @@ main::@1: scope:[main] from main main::@1 main::@3 main::@2: scope:[main] from main::@1 [6] *BORDER_COLOR = 1 [7] main::time_start#0 = *raster - [8] utoa16w::dst = (byte*) 1024 - [9] call utoa16w + [8] utoa16w::dst = (char *) 1024 + [9] call utoa16w to:main::@5 main::@5: scope:[main] from main::@2 [10] *BORDER_COLOR = ++ *BORDER_COLOR - [11] utoa16w::dst = (byte*) 1024+$28 - [12] call utoa16w + [11] utoa16w::dst = (char *) 1024+$28 + [12] call utoa16w to:main::@6 main::@6: scope:[main] from main::@5 [13] *BORDER_COLOR = ++ *BORDER_COLOR - [14] utoa16w::dst = (byte*) 1024+$28+$28 - [15] call utoa16w + [14] utoa16w::dst = (char *) 1024+$28+$28 + [15] call utoa16w to:main::@7 main::@7: scope:[main] from main::@6 [16] *BORDER_COLOR = ++ *BORDER_COLOR - [17] utoa16w::dst = (byte*) 1024+$28+$28+$28 - [18] call utoa16w + [17] utoa16w::dst = (char *) 1024+$28+$28+$28 + [18] call utoa16w to:main::@8 main::@8: scope:[main] from main::@7 [19] *BORDER_COLOR = ++ *BORDER_COLOR - [20] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 - [21] call utoa16w + [20] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 + [21] call utoa16w to:main::@9 main::@9: scope:[main] from main::@8 [22] main::time_end#0 = *raster [23] *BORDER_COLOR = 0 [24] main::time#0 = main::time_end#0 - main::time_start#0 - [25] utoa10w::value#0 = (word)main::time#0 - [26] call utoa10w + [25] utoa10w::value#0 = (unsigned int)main::time#0 + [26] call utoa10w to:main::@3 main::@3: scope:[main] from main::@4 main::@9 [27] main::i#2 = phi( main::@9/0, main::@4/main::i#1 ) [28] if(main::msg[main::i#2]!=0) goto main::@4 to:main::@1 main::@4: scope:[main] from main::@3 - [29] ((byte*) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] + [29] ((char *) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] [30] main::i#1 = ++ main::i#2 to:main::@3 @@ -981,12 +981,12 @@ cls::@return: scope:[cls] from cls::@1 [36] return to:@return -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) +void utoa16w(unsigned int value , char * volatile dst) utoa16w: scope:[utoa16w] from main::@2 main::@5 main::@6 main::@7 main::@8 [37] utoa16w::value#5 = phi( main::@8/$e608, main::@2/0, main::@5/$4d2, main::@6/$162e, main::@7/$270f ) [38] utoa16w::$0 = byte1 utoa16w::value#5 [39] utoa16n::nybble#0 = utoa16w::$0 >> 4 - [40] call utoa16n + [40] call utoa16n [41] utoa16n::return#0 = utoa16n::return#4 to:utoa16w::@1 utoa16w::@1: scope:[utoa16w] from utoa16w @@ -994,7 +994,7 @@ utoa16w::@1: scope:[utoa16w] from utoa16w [43] utoa16w::$3 = byte1 utoa16w::value#5 [44] utoa16n::nybble#1 = utoa16w::$3 & $f [45] utoa16n::started#1 = utoa16w::started#1 - [46] call utoa16n + [46] call utoa16n [47] utoa16n::return#1 = utoa16n::return#4 to:utoa16w::@2 utoa16w::@2: scope:[utoa16w] from utoa16w::@1 @@ -1002,12 +1002,12 @@ utoa16w::@2: scope:[utoa16w] from utoa16w::@1 [49] utoa16w::$6 = byte0 utoa16w::value#5 [50] utoa16n::nybble#2 = utoa16w::$6 >> 4 [51] utoa16n::started#2 = utoa16w::started#2 - [52] call utoa16n + [52] call utoa16n to:utoa16w::@3 utoa16w::@3: scope:[utoa16w] from utoa16w::@2 [53] utoa16w::$9 = byte0 utoa16w::value#5 [54] utoa16n::nybble#3 = utoa16w::$9 & $f - [55] call utoa16n + [55] call utoa16n to:utoa16w::@4 utoa16w::@4: scope:[utoa16w] from utoa16w::@3 [56] *utoa16w::dst = 0 @@ -1016,12 +1016,12 @@ utoa16w::@return: scope:[utoa16w] from utoa16w::@4 [57] return to:@return -void utoa10w(word utoa10w::value , byte* utoa10w::dst) +void utoa10w(unsigned int value , char *dst) utoa10w: scope:[utoa10w] from main::@9 [58] phi() to:utoa10w::@1 utoa10w::@1: scope:[utoa10w] from utoa10w utoa10w::@2 utoa10w::@6 - [59] utoa10w::dst#11 = phi( utoa10w/(byte*) 1024+$28+$28+$28+$28+$50, utoa10w::@2/utoa10w::dst#11, utoa10w::@6/utoa10w::dst#4 ) + [59] utoa10w::dst#11 = phi( utoa10w/(char *) 1024+$28+$28+$28+$28+$50, utoa10w::@2/utoa10w::dst#11, utoa10w::@6/utoa10w::dst#4 ) [59] utoa10w::bStarted#2 = phi( utoa10w/0, utoa10w::@2/1, utoa10w::@6/utoa10w::bStarted#2 ) [59] utoa10w::digit#3 = phi( utoa10w/0, utoa10w::@2/utoa10w::digit#1, utoa10w::@6/utoa10w::digit#7 ) [59] utoa10w::value#10 = phi( utoa10w/utoa10w::value#0, utoa10w::@2/utoa10w::value#1, utoa10w::@6/utoa10w::value#10 ) @@ -1050,7 +1050,7 @@ utoa10w::@6: scope:[utoa10w] from utoa10w::@3 utoa10w::@7 [70] if(utoa10w::i#1!=8) goto utoa10w::@1 to:utoa10w::@8 utoa10w::@8: scope:[utoa10w] from utoa10w::@6 - [71] utoa10w::$9 = (byte)utoa10w::value#10 + [71] utoa10w::$9 = (char)utoa10w::value#10 [72] *utoa10w::dst#4 = DIGITS[utoa10w::$9] [73] utoa10w::dst#2 = ++ utoa10w::dst#4 [74] *utoa10w::dst#2 = 0 @@ -1063,7 +1063,7 @@ utoa10w::@2: scope:[utoa10w] from utoa10w::@1 [77] utoa10w::value#1 = utoa10w::value#10 - UTOA10_SUB[utoa10w::$8] to:utoa10w::@1 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) +char utoa16n(char nybble , unsigned int **dst , char started) utoa16n: scope:[utoa16n] from utoa16w utoa16w::@1 utoa16w::@2 utoa16w::@3 [78] utoa16n::started#7 = phi( utoa16w/0, utoa16w::@1/utoa16n::started#1, utoa16w::@2/utoa16n::started#2, utoa16w::@3/1 ) [78] utoa16n::nybble#4 = phi( utoa16w/utoa16n::nybble#0, utoa16w::@1/utoa16n::nybble#1, utoa16w::@2/utoa16n::nybble#2, utoa16w::@3/utoa16n::nybble#3 ) @@ -1087,74 +1087,74 @@ utoa16n::@return: scope:[utoa16n] from utoa16n::@1 utoa16n::@2 VARIABLE REGISTER WEIGHTS void cls() -byte* cls::sc -byte* cls::sc#1 151.5 -byte* cls::sc#2 151.5 +char *cls::sc +char *cls::sc#1 // 151.5 +char *cls::sc#2 // 151.5 void main() -byte~ main::$1 101.0 -byte~ main::$2 202.0 -byte main::i -byte main::i#1 202.0 -byte main::i#2 168.33333333333331 -byte main::rst -byte main::rst#0 202.0 -byte* main::screen -byte main::time -byte main::time#0 11.0 -byte main::time_end -byte main::time_end#0 11.0 -byte main::time_start -byte main::time_start#0 1.2941176470588236 -void utoa10w(word utoa10w::value , byte* utoa10w::dst) -byte~ utoa10w::$1 20002.0 -byte~ utoa10w::$8 10001.0 -byte~ utoa10w::$9 202.0 -byte utoa10w::bStarted -byte utoa10w::bStarted#2 2500.25 -byte utoa10w::digit -byte utoa10w::digit#1 10001.0 -byte utoa10w::digit#3 8334.166666666666 -byte utoa10w::digit#7 6667.333333333333 -byte* utoa10w::dst -byte* utoa10w::dst#1 20002.0 -byte* utoa10w::dst#11 7778.555555555557 -byte* utoa10w::dst#2 202.0 -byte* utoa10w::dst#4 6041.0 -byte* utoa10w::dst#8 30003.0 -byte utoa10w::i -byte utoa10w::i#1 15001.5 -byte utoa10w::i#2 5833.916666666667 -word utoa10w::value -word utoa10w::value#0 56.0 -word utoa10w::value#1 20002.0 -word utoa10w::value#10 3854.3076923076924 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -word** utoa16n::dst -byte utoa16n::nybble -byte utoa16n::nybble#0 202.0 -byte utoa16n::nybble#1 101.0 -byte utoa16n::nybble#2 101.0 -byte utoa16n::nybble#3 202.0 -byte utoa16n::nybble#4 481.2 -byte utoa16n::return -byte utoa16n::return#0 202.0 -byte utoa16n::return#1 202.0 -byte utoa16n::return#4 314.8571428571429 -byte utoa16n::started -byte utoa16n::started#1 202.0 -byte utoa16n::started#2 202.0 -byte utoa16n::started#7 401.0 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 202.0 -byte~ utoa16w::$3 202.0 -byte~ utoa16w::$6 202.0 -byte~ utoa16w::$9 202.0 -byte* volatile utoa16w::dst loadstore 4.875 -byte utoa16w::started -byte utoa16w::started#1 67.33333333333333 -byte utoa16w::started#2 67.33333333333333 -word utoa16w::value -word utoa16w::value#5 25.25 +char main::$1 // 101.0 +char main::$2 // 202.0 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 168.33333333333331 +char main::rst +char main::rst#0 // 202.0 +char *main::screen +char main::time +char main::time#0 // 11.0 +char main::time_end +char main::time_end#0 // 11.0 +char main::time_start +char main::time_start#0 // 1.2941176470588236 +void utoa10w(unsigned int value , char *dst) +char utoa10w::$1 // 20002.0 +char utoa10w::$8 // 10001.0 +char utoa10w::$9 // 202.0 +char utoa10w::bStarted +char utoa10w::bStarted#2 // 2500.25 +char utoa10w::digit +char utoa10w::digit#1 // 10001.0 +char utoa10w::digit#3 // 8334.166666666666 +char utoa10w::digit#7 // 6667.333333333333 +char *utoa10w::dst +char *utoa10w::dst#1 // 20002.0 +char *utoa10w::dst#11 // 7778.555555555557 +char *utoa10w::dst#2 // 202.0 +char *utoa10w::dst#4 // 6041.0 +char *utoa10w::dst#8 // 30003.0 +char utoa10w::i +char utoa10w::i#1 // 15001.5 +char utoa10w::i#2 // 5833.916666666667 +unsigned int utoa10w::value +unsigned int utoa10w::value#0 // 56.0 +unsigned int utoa10w::value#1 // 20002.0 +unsigned int utoa10w::value#10 // 3854.3076923076924 +char utoa16n(char nybble , unsigned int **dst , char started) +unsigned int **utoa16n::dst +char utoa16n::nybble +char utoa16n::nybble#0 // 202.0 +char utoa16n::nybble#1 // 101.0 +char utoa16n::nybble#2 // 101.0 +char utoa16n::nybble#3 // 202.0 +char utoa16n::nybble#4 // 481.2 +char utoa16n::return +char utoa16n::return#0 // 202.0 +char utoa16n::return#1 // 202.0 +char utoa16n::return#4 // 314.8571428571429 +char utoa16n::started +char utoa16n::started#1 // 202.0 +char utoa16n::started#2 // 202.0 +char utoa16n::started#7 // 401.0 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 // 202.0 +char utoa16w::$3 // 202.0 +char utoa16w::$6 // 202.0 +char utoa16w::$9 // 202.0 +__loadstore char * volatile utoa16w::dst // 4.875 +char utoa16w::started +char utoa16w::started#1 // 67.33333333333333 +char utoa16w::started#2 // 67.33333333333333 +unsigned int utoa16w::value +unsigned int utoa16w::value#5 // 25.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -1250,19 +1250,19 @@ Statement [2] main::$1 = *control & $80 [ main::$1 ] ( [ main::$1 ] { } ) alwa Statement [3] main::$2 = *raster >> 1 [ main::$1 main::$2 ] ( [ main::$1 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ main::$1 ] Statement [6] *BORDER_COLOR = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] utoa16w::dst = (byte*) 1024 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [8] utoa16w::dst = (char *) 1024 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:19 [ main::time_start#0 ] -Statement [11] utoa16w::dst = (byte*) 1024+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [14] utoa16w::dst = (byte*) 1024+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [17] utoa16w::dst = (byte*) 1024+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [20] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [11] utoa16w::dst = (char *) 1024+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [14] utoa16w::dst = (char *) 1024+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [17] utoa16w::dst = (char *) 1024+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [20] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a Statement [23] *BORDER_COLOR = 0 [ main::time_start#0 main::time_end#0 ] ( [ main::time_start#0 main::time_end#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:22 [ main::time_end#0 ] Statement [24] main::time#0 = main::time_end#0 - main::time_start#0 [ main::time#0 ] ( [ main::time#0 ] { } ) always clobbers reg byte a -Statement [25] utoa10w::value#0 = (word)main::time#0 [ utoa10w::value#0 ] ( [ utoa10w::value#0 ] { } ) always clobbers reg byte a +Statement [25] utoa10w::value#0 = (unsigned int)main::time#0 [ utoa10w::value#0 ] ( [ utoa10w::value#0 ] { } ) always clobbers reg byte a Statement [28] if(main::msg[main::i#2]!=0) goto main::@4 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [29] ((byte*) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [29] ((char *) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [33] *cls::sc#2 = ' ' [ cls::sc#2 ] ( cls:1 [ cls::sc#2 ] { } ) always clobbers reg byte a reg byte y Statement [35] if(cls::sc#1!=cls::screen+$3e7+1) goto cls::@1 [ cls::sc#1 ] ( cls:1 [ cls::sc#1 ] { } ) always clobbers reg byte a Statement [39] utoa16n::nybble#0 = utoa16w::$0 >> 4 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] ( utoa16w:9 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:12 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:15 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:18 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:21 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } ) always clobbers reg byte a @@ -1291,16 +1291,16 @@ Removing always clobbered register reg byte y as potential for zp[1]:15 [ utoa16 Statement [2] main::$1 = *control & $80 [ main::$1 ] ( [ main::$1 ] { } ) always clobbers reg byte a Statement [3] main::$2 = *raster >> 1 [ main::$1 main::$2 ] ( [ main::$1 main::$2 ] { } ) always clobbers reg byte a Statement [6] *BORDER_COLOR = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] utoa16w::dst = (byte*) 1024 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [11] utoa16w::dst = (byte*) 1024+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [14] utoa16w::dst = (byte*) 1024+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [17] utoa16w::dst = (byte*) 1024+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a -Statement [20] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [8] utoa16w::dst = (char *) 1024 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [11] utoa16w::dst = (char *) 1024+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [14] utoa16w::dst = (char *) 1024+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [17] utoa16w::dst = (char *) 1024+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a +Statement [20] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 [ main::time_start#0 utoa16w::dst ] ( [ main::time_start#0 utoa16w::dst ] { } ) always clobbers reg byte a Statement [23] *BORDER_COLOR = 0 [ main::time_start#0 main::time_end#0 ] ( [ main::time_start#0 main::time_end#0 ] { } ) always clobbers reg byte a Statement [24] main::time#0 = main::time_end#0 - main::time_start#0 [ main::time#0 ] ( [ main::time#0 ] { } ) always clobbers reg byte a -Statement [25] utoa10w::value#0 = (word)main::time#0 [ utoa10w::value#0 ] ( [ utoa10w::value#0 ] { } ) always clobbers reg byte a +Statement [25] utoa10w::value#0 = (unsigned int)main::time#0 [ utoa10w::value#0 ] ( [ utoa10w::value#0 ] { } ) always clobbers reg byte a Statement [28] if(main::msg[main::i#2]!=0) goto main::@4 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [29] ((byte*) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [29] ((char *) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [33] *cls::sc#2 = ' ' [ cls::sc#2 ] ( cls:1 [ cls::sc#2 ] { } ) always clobbers reg byte a reg byte y Statement [35] if(cls::sc#1!=cls::screen+$3e7+1) goto cls::@1 [ cls::sc#1 ] ( cls:1 [ cls::sc#1 ] { } ) always clobbers reg byte a Statement [39] utoa16n::nybble#0 = utoa16w::$0 >> 4 [ utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] ( utoa16w:9 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:12 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:15 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:18 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } utoa16w:21 [ main::time_start#0 utoa16w::dst utoa16w::value#5 utoa16n::nybble#0 ] { { utoa16n::nybble#0 = utoa16n::nybble#4 } { utoa16n::return#0 = utoa16n::return#4 } } ) always clobbers reg byte a @@ -1416,7 +1416,7 @@ main: { .label time_start = 7 // asm { sei } sei - // [1] call cls + // [1] call cls // [31] phi from main to cls [phi:main->cls] cls_from_main: jsr cls @@ -1444,12 +1444,12 @@ main: { // [7] main::time_start#0 = *raster -- vbuz1=_deref_pbuc1 lda raster sta.z time_start - // [8] utoa16w::dst = (byte*) 1024 -- pbuz1=pbuc1 + // [8] utoa16w::dst = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z utoa16w.dst lda #>$400 sta.z utoa16w.dst+1 - // [9] call utoa16w + // [9] call utoa16w // [37] phi from main::@2 to utoa16w [phi:main::@2->utoa16w] utoa16w_from___b2: // [37] phi utoa16w::value#5 = 0 [phi:main::@2->utoa16w#0] -- vwuz1=vbuc1 @@ -1463,12 +1463,12 @@ main: { __b5: // [10] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR - // [11] utoa16w::dst = (byte*) 1024+$28 -- pbuz1=pbuc1 + // [11] utoa16w::dst = (char *) 1024+$28 -- pbuz1=pbuc1 lda #<$400+$28 sta.z utoa16w.dst lda #>$400+$28 sta.z utoa16w.dst+1 - // [12] call utoa16w + // [12] call utoa16w // [37] phi from main::@5 to utoa16w [phi:main::@5->utoa16w] utoa16w_from___b5: // [37] phi utoa16w::value#5 = $4d2 [phi:main::@5->utoa16w#0] -- vwuz1=vwuc1 @@ -1482,12 +1482,12 @@ main: { __b6: // [13] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR - // [14] utoa16w::dst = (byte*) 1024+$28+$28 -- pbuz1=pbuc1 + // [14] utoa16w::dst = (char *) 1024+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28 sta.z utoa16w.dst+1 - // [15] call utoa16w + // [15] call utoa16w // [37] phi from main::@6 to utoa16w [phi:main::@6->utoa16w] utoa16w_from___b6: // [37] phi utoa16w::value#5 = $162e [phi:main::@6->utoa16w#0] -- vwuz1=vwuc1 @@ -1501,12 +1501,12 @@ main: { __b7: // [16] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR - // [17] utoa16w::dst = (byte*) 1024+$28+$28+$28 -- pbuz1=pbuc1 + // [17] utoa16w::dst = (char *) 1024+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28 sta.z utoa16w.dst+1 - // [18] call utoa16w + // [18] call utoa16w // [37] phi from main::@7 to utoa16w [phi:main::@7->utoa16w] utoa16w_from___b7: // [37] phi utoa16w::value#5 = $270f [phi:main::@7->utoa16w#0] -- vwuz1=vwuc1 @@ -1520,12 +1520,12 @@ main: { __b8: // [19] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR - // [20] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 + // [20] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28+$28 sta.z utoa16w.dst+1 - // [21] call utoa16w + // [21] call utoa16w // [37] phi from main::@8 to utoa16w [phi:main::@8->utoa16w] utoa16w_from___b8: // [37] phi utoa16w::value#5 = $e608 [phi:main::@8->utoa16w#0] -- vwuz1=vwuc1 @@ -1546,11 +1546,11 @@ main: { txa sec sbc.z time_start - // [25] utoa10w::value#0 = (word)main::time#0 -- vwuz1=_word_vbuaa + // [25] utoa10w::value#0 = (unsigned int)main::time#0 -- vwuz1=_word_vbuaa sta.z utoa10w.value lda #0 sta.z utoa10w.value+1 - // [26] call utoa10w + // [26] call utoa10w // [58] phi from main::@9 to utoa10w [phi:main::@9->utoa10w] utoa10w_from___b9: jsr utoa10w @@ -1568,7 +1568,7 @@ main: { jmp __b1 // main::@4 __b4: - // [29] ((byte*) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [29] ((char *) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda msg,x sta $400+$28+$28+$28+$28+$50+3,x // [30] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx @@ -1624,7 +1624,7 @@ cls: { } // utoa16w // Hexadecimal utoa() for an unsigned int (16bits) -// utoa16w(word zp(2) value, byte* zp(8) dst) +// void utoa16w(__zp(2) unsigned int value, __zp(8) char * volatile dst) utoa16w: { .label dst = 8 .label value = 2 @@ -1635,7 +1635,7 @@ utoa16w: { lsr lsr lsr - // [40] call utoa16n + // [40] call utoa16n // [78] phi from utoa16w to utoa16n [phi:utoa16w->utoa16n] utoa16n_from_utoa16w: // [78] phi utoa16n::started#7 = 0 [phi:utoa16w->utoa16n#0] -- vbuxx=vbuc1 @@ -1652,7 +1652,7 @@ utoa16w: { // [44] utoa16n::nybble#1 = utoa16w::$3 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f // [45] utoa16n::started#1 = utoa16w::started#1 - // [46] call utoa16n + // [46] call utoa16n // [78] phi from utoa16w::@1 to utoa16n [phi:utoa16w::@1->utoa16n] utoa16n_from___b1: // [78] phi utoa16n::started#7 = utoa16n::started#1 [phi:utoa16w::@1->utoa16n#0] -- register_copy @@ -1671,7 +1671,7 @@ utoa16w: { lsr lsr // [51] utoa16n::started#2 = utoa16w::started#2 - // [52] call utoa16n + // [52] call utoa16n // [78] phi from utoa16w::@2 to utoa16n [phi:utoa16w::@2->utoa16n] utoa16n_from___b2: // [78] phi utoa16n::started#7 = utoa16n::started#2 [phi:utoa16w::@2->utoa16n#0] -- register_copy @@ -1684,7 +1684,7 @@ utoa16w: { lda.z value // [54] utoa16n::nybble#3 = utoa16w::$9 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f - // [55] call utoa16n + // [55] call utoa16n // [78] phi from utoa16w::@3 to utoa16n [phi:utoa16w::@3->utoa16n] utoa16n_from___b3: // [78] phi utoa16n::started#7 = 1 [phi:utoa16w::@3->utoa16n#0] -- vbuxx=vbuc1 @@ -1706,7 +1706,7 @@ utoa16w: { } // utoa10w // Decimal utoa() without using multiply or divide -// utoa10w(word zp(2) value, byte* zp(4) dst) +// void utoa10w(__zp(2) unsigned int value, __zp(4) char *dst) utoa10w: { .label value = 2 .label digit = 6 @@ -1714,7 +1714,7 @@ utoa10w: { .label bStarted = 7 // [59] phi from utoa10w to utoa10w::@1 [phi:utoa10w->utoa10w::@1] __b1_from_utoa10w: - // [59] phi utoa10w::dst#11 = (byte*) 1024+$28+$28+$28+$28+$50 [phi:utoa10w->utoa10w::@1#0] -- pbuz1=pbuc1 + // [59] phi utoa10w::dst#11 = (char *) 1024+$28+$28+$28+$28+$50 [phi:utoa10w->utoa10w::@1#0] -- pbuz1=pbuc1 lda #<$400+$28+$28+$28+$28+$50 sta.z dst lda #>$400+$28+$28+$28+$28+$50 @@ -1809,7 +1809,7 @@ utoa10w: { jmp __b8 // utoa10w::@8 __b8: - // [71] utoa10w::$9 = (byte)utoa10w::value#10 -- vbuxx=_byte_vwuz1 + // [71] utoa10w::$9 = (char)utoa10w::value#10 -- vbuxx=_byte_vwuz1 ldx.z value // [72] *utoa10w::dst#4 = DIGITS[utoa10w::$9] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -1857,7 +1857,7 @@ utoa10w: { } // utoa16n // Hexadecimal utoa() for a single nybble -// utoa16n(byte register(A) nybble, byte register(X) started) +// __register(X) char utoa16n(__register(A) char nybble, unsigned int **dst, __register(X) char started) utoa16n: { // [79] if(utoa16n::nybble#4==0) goto utoa16n::@3 -- vbuaa_eq_0_then_la1 cmp #0 @@ -2008,83 +2008,83 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* DIGITS[] = "0123456789abcdef" -constant word* UTOA10_SUB[] = { $7530, $2710, $bb8, $3e8, $12c, $64, $1e, $a } -constant byte* UTOA10_VAL[] = { 3, 1, 3, 1, 3, 1, 3, 1 } +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char DIGITS[] = "0123456789abcdef" +__constant unsigned int UTOA10_SUB[] = { $7530, $2710, $bb8, $3e8, $12c, $64, $1e, $a } +__constant char UTOA10_VAL[] = { 3, 1, 3, 1, 3, 1, 3, 1 } void cls() -byte* cls::sc -byte* cls::sc#1 sc zp[2]:2 151.5 -byte* cls::sc#2 sc zp[2]:2 151.5 -constant byte* cls::screen = (byte*) 1024 -constant byte* const control = (byte*) 53265 +char *cls::sc +char *cls::sc#1 // sc zp[2]:2 151.5 +char *cls::sc#2 // sc zp[2]:2 151.5 +__constant char *cls::screen = (char *) 1024 +__constant char * const control = (char *) 53265 void main() -byte~ main::$1 zp[1]:6 101.0 -byte~ main::$2 reg byte a 202.0 -byte main::i -byte main::i#1 reg byte x 202.0 -byte main::i#2 reg byte x 168.33333333333331 -constant byte* main::msg[] = "raster lines" -byte main::rst -byte main::rst#0 reg byte a 202.0 -byte* main::screen -byte main::time -byte main::time#0 reg byte a 11.0 -byte main::time_end -byte main::time_end#0 reg byte x 11.0 -byte main::time_start -byte main::time_start#0 time_start zp[1]:7 1.2941176470588236 -constant byte* const raster = (byte*) 53266 -void utoa10w(word utoa10w::value , byte* utoa10w::dst) -byte~ utoa10w::$1 reg byte a 20002.0 -byte~ utoa10w::$8 reg byte y 10001.0 -byte~ utoa10w::$9 reg byte x 202.0 -byte utoa10w::bStarted -byte utoa10w::bStarted#2 bStarted zp[1]:7 2500.25 -byte utoa10w::digit -byte utoa10w::digit#1 digit zp[1]:6 10001.0 -byte utoa10w::digit#3 digit zp[1]:6 8334.166666666666 -byte utoa10w::digit#7 digit zp[1]:6 6667.333333333333 -byte* utoa10w::dst -byte* utoa10w::dst#1 dst zp[2]:4 20002.0 -byte* utoa10w::dst#11 dst zp[2]:4 7778.555555555557 -byte* utoa10w::dst#2 dst zp[2]:4 202.0 -byte* utoa10w::dst#4 dst zp[2]:4 6041.0 -byte* utoa10w::dst#8 dst zp[2]:4 30003.0 -byte utoa10w::i -byte utoa10w::i#1 reg byte x 15001.5 -byte utoa10w::i#2 reg byte x 5833.916666666667 -word utoa10w::value -word utoa10w::value#0 value zp[2]:2 56.0 -word utoa10w::value#1 value zp[2]:2 20002.0 -word utoa10w::value#10 value zp[2]:2 3854.3076923076924 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -word** utoa16n::dst -byte utoa16n::nybble -byte utoa16n::nybble#0 reg byte a 202.0 -byte utoa16n::nybble#1 reg byte a 101.0 -byte utoa16n::nybble#2 reg byte a 101.0 -byte utoa16n::nybble#3 reg byte a 202.0 -byte utoa16n::nybble#4 reg byte a 481.2 -byte utoa16n::return -byte utoa16n::return#0 reg byte x 202.0 -byte utoa16n::return#1 reg byte x 202.0 -byte utoa16n::return#4 reg byte x 314.8571428571429 -byte utoa16n::started -byte utoa16n::started#1 reg byte x 202.0 -byte utoa16n::started#2 reg byte x 202.0 -byte utoa16n::started#7 reg byte x 401.0 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 reg byte a 202.0 -byte~ utoa16w::$3 reg byte a 202.0 -byte~ utoa16w::$6 reg byte a 202.0 -byte~ utoa16w::$9 reg byte a 202.0 -byte* volatile utoa16w::dst loadstore zp[2]:8 4.875 -byte utoa16w::started -byte utoa16w::started#1 reg byte x 67.33333333333333 -byte utoa16w::started#2 reg byte x 67.33333333333333 -word utoa16w::value -word utoa16w::value#5 value zp[2]:2 25.25 +char main::$1 // zp[1]:6 101.0 +char main::$2 // reg byte a 202.0 +char main::i +char main::i#1 // reg byte x 202.0 +char main::i#2 // reg byte x 168.33333333333331 +__constant char main::msg[] = "raster lines" +char main::rst +char main::rst#0 // reg byte a 202.0 +char *main::screen +char main::time +char main::time#0 // reg byte a 11.0 +char main::time_end +char main::time_end#0 // reg byte x 11.0 +char main::time_start +char main::time_start#0 // time_start zp[1]:7 1.2941176470588236 +__constant char * const raster = (char *) 53266 +void utoa10w(unsigned int value , char *dst) +char utoa10w::$1 // reg byte a 20002.0 +char utoa10w::$8 // reg byte y 10001.0 +char utoa10w::$9 // reg byte x 202.0 +char utoa10w::bStarted +char utoa10w::bStarted#2 // bStarted zp[1]:7 2500.25 +char utoa10w::digit +char utoa10w::digit#1 // digit zp[1]:6 10001.0 +char utoa10w::digit#3 // digit zp[1]:6 8334.166666666666 +char utoa10w::digit#7 // digit zp[1]:6 6667.333333333333 +char *utoa10w::dst +char *utoa10w::dst#1 // dst zp[2]:4 20002.0 +char *utoa10w::dst#11 // dst zp[2]:4 7778.555555555557 +char *utoa10w::dst#2 // dst zp[2]:4 202.0 +char *utoa10w::dst#4 // dst zp[2]:4 6041.0 +char *utoa10w::dst#8 // dst zp[2]:4 30003.0 +char utoa10w::i +char utoa10w::i#1 // reg byte x 15001.5 +char utoa10w::i#2 // reg byte x 5833.916666666667 +unsigned int utoa10w::value +unsigned int utoa10w::value#0 // value zp[2]:2 56.0 +unsigned int utoa10w::value#1 // value zp[2]:2 20002.0 +unsigned int utoa10w::value#10 // value zp[2]:2 3854.3076923076924 +char utoa16n(char nybble , unsigned int **dst , char started) +unsigned int **utoa16n::dst +char utoa16n::nybble +char utoa16n::nybble#0 // reg byte a 202.0 +char utoa16n::nybble#1 // reg byte a 101.0 +char utoa16n::nybble#2 // reg byte a 101.0 +char utoa16n::nybble#3 // reg byte a 202.0 +char utoa16n::nybble#4 // reg byte a 481.2 +char utoa16n::return +char utoa16n::return#0 // reg byte x 202.0 +char utoa16n::return#1 // reg byte x 202.0 +char utoa16n::return#4 // reg byte x 314.8571428571429 +char utoa16n::started +char utoa16n::started#1 // reg byte x 202.0 +char utoa16n::started#2 // reg byte x 202.0 +char utoa16n::started#7 // reg byte x 401.0 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 // reg byte a 202.0 +char utoa16w::$3 // reg byte a 202.0 +char utoa16w::$6 // reg byte a 202.0 +char utoa16w::$9 // reg byte a 202.0 +__loadstore char * volatile utoa16w::dst // zp[2]:8 4.875 +char utoa16w::started +char utoa16w::started#1 // reg byte x 67.33333333333333 +char utoa16w::started#2 // reg byte x 67.33333333333333 +unsigned int utoa16w::value +unsigned int utoa16w::value#5 // value zp[2]:2 25.25 reg byte x [ main::i#2 main::i#1 ] reg byte x [ utoa10w::i#2 utoa10w::i#1 ] @@ -2139,7 +2139,7 @@ main: { // asm { sei } sei // cls() - // [1] call cls + // [1] call cls // [31] phi from main to cls [phi:main->cls] jsr cls // main::@1 @@ -2170,12 +2170,12 @@ main: { lda raster sta.z time_start // utoa16w(00000, screen) - // [8] utoa16w::dst = (byte*) 1024 -- pbuz1=pbuc1 + // [8] utoa16w::dst = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z utoa16w.dst lda #>$400 sta.z utoa16w.dst+1 - // [9] call utoa16w + // [9] call utoa16w // [37] phi from main::@2 to utoa16w [phi:main::@2->utoa16w] // [37] phi utoa16w::value#5 = 0 [phi:main::@2->utoa16w#0] -- vwuz1=vbuc1 lda #<0 @@ -2187,12 +2187,12 @@ main: { // [10] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR // utoa16w(01234, screen) - // [11] utoa16w::dst = (byte*) 1024+$28 -- pbuz1=pbuc1 + // [11] utoa16w::dst = (char *) 1024+$28 -- pbuz1=pbuc1 lda #<$400+$28 sta.z utoa16w.dst lda #>$400+$28 sta.z utoa16w.dst+1 - // [12] call utoa16w + // [12] call utoa16w // [37] phi from main::@5 to utoa16w [phi:main::@5->utoa16w] // [37] phi utoa16w::value#5 = $4d2 [phi:main::@5->utoa16w#0] -- vwuz1=vwuc1 lda #<$4d2 @@ -2205,12 +2205,12 @@ main: { // [13] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR // utoa16w(05678, screen) - // [14] utoa16w::dst = (byte*) 1024+$28+$28 -- pbuz1=pbuc1 + // [14] utoa16w::dst = (char *) 1024+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28 sta.z utoa16w.dst+1 - // [15] call utoa16w + // [15] call utoa16w // [37] phi from main::@6 to utoa16w [phi:main::@6->utoa16w] // [37] phi utoa16w::value#5 = $162e [phi:main::@6->utoa16w#0] -- vwuz1=vwuc1 lda #<$162e @@ -2223,12 +2223,12 @@ main: { // [16] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR // utoa16w(09999, screen) - // [17] utoa16w::dst = (byte*) 1024+$28+$28+$28 -- pbuz1=pbuc1 + // [17] utoa16w::dst = (char *) 1024+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28 sta.z utoa16w.dst+1 - // [18] call utoa16w + // [18] call utoa16w // [37] phi from main::@7 to utoa16w [phi:main::@7->utoa16w] // [37] phi utoa16w::value#5 = $270f [phi:main::@7->utoa16w#0] -- vwuz1=vwuc1 lda #<$270f @@ -2241,12 +2241,12 @@ main: { // [19] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR // utoa16w(58888, screen) - // [20] utoa16w::dst = (byte*) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 + // [20] utoa16w::dst = (char *) 1024+$28+$28+$28+$28 -- pbuz1=pbuc1 lda #<$400+$28+$28+$28+$28 sta.z utoa16w.dst lda #>$400+$28+$28+$28+$28 sta.z utoa16w.dst+1 - // [21] call utoa16w + // [21] call utoa16w // [37] phi from main::@8 to utoa16w [phi:main::@8->utoa16w] // [37] phi utoa16w::value#5 = $e608 [phi:main::@8->utoa16w#0] -- vwuz1=vwuc1 lda #<$e608 @@ -2268,11 +2268,11 @@ main: { sec sbc.z time_start // utoa10w((unsigned int)time, screen+80) - // [25] utoa10w::value#0 = (word)main::time#0 -- vwuz1=_word_vbuaa + // [25] utoa10w::value#0 = (unsigned int)main::time#0 -- vwuz1=_word_vbuaa sta.z utoa10w.value lda #0 sta.z utoa10w.value+1 - // [26] call utoa10w + // [26] call utoa10w // [58] phi from main::@9 to utoa10w [phi:main::@9->utoa10w] jsr utoa10w // [27] phi from main::@9 to main::@3 [phi:main::@9->main::@3] @@ -2289,7 +2289,7 @@ main: { // main::@4 __b4: // (screen+80+3)[i] = msg[i] - // [29] ((byte*) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [29] ((char *) 1024+$28+$28+$28+$28+$50+3)[main::i#2] = main::msg[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda msg,x sta $400+$28+$28+$28+$28+$50+3,x // for( byte i=0; msg[i]!=0; i++ ) @@ -2342,7 +2342,7 @@ cls: { } // utoa16w // Hexadecimal utoa() for an unsigned int (16bits) -// utoa16w(word zp(2) value, byte* zp(8) dst) +// void utoa16w(__zp(2) unsigned int value, __zp(8) char * volatile dst) utoa16w: { .label dst = 8 .label value = 2 @@ -2355,7 +2355,7 @@ utoa16w: { lsr lsr lsr - // [40] call utoa16n + // [40] call utoa16n // [78] phi from utoa16w to utoa16n [phi:utoa16w->utoa16n] // [78] phi utoa16n::started#7 = 0 [phi:utoa16w->utoa16n#0] -- vbuxx=vbuc1 ldx #0 @@ -2373,7 +2373,7 @@ utoa16w: { // [44] utoa16n::nybble#1 = utoa16w::$3 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f // [45] utoa16n::started#1 = utoa16w::started#1 - // [46] call utoa16n + // [46] call utoa16n // [78] phi from utoa16w::@1 to utoa16n [phi:utoa16w::@1->utoa16n] // [78] phi utoa16n::started#7 = utoa16n::started#1 [phi:utoa16w::@1->utoa16n#0] -- register_copy // [78] phi utoa16n::nybble#4 = utoa16n::nybble#1 [phi:utoa16w::@1->utoa16n#1] -- register_copy @@ -2393,7 +2393,7 @@ utoa16w: { lsr lsr // [51] utoa16n::started#2 = utoa16w::started#2 - // [52] call utoa16n + // [52] call utoa16n // [78] phi from utoa16w::@2 to utoa16n [phi:utoa16w::@2->utoa16n] // [78] phi utoa16n::started#7 = utoa16n::started#2 [phi:utoa16w::@2->utoa16n#0] -- register_copy // [78] phi utoa16n::nybble#4 = utoa16n::nybble#2 [phi:utoa16w::@2->utoa16n#1] -- register_copy @@ -2405,7 +2405,7 @@ utoa16w: { // utoa16n(BYTE0(value)&0x0f, &dst, 1) // [54] utoa16n::nybble#3 = utoa16w::$9 & $f -- vbuaa=vbuaa_band_vbuc1 and #$f - // [55] call utoa16n + // [55] call utoa16n // [78] phi from utoa16w::@3 to utoa16n [phi:utoa16w::@3->utoa16n] // [78] phi utoa16n::started#7 = 1 [phi:utoa16w::@3->utoa16n#0] -- vbuxx=vbuc1 ldx #1 @@ -2424,14 +2424,14 @@ utoa16w: { } // utoa10w // Decimal utoa() without using multiply or divide -// utoa10w(word zp(2) value, byte* zp(4) dst) +// void utoa10w(__zp(2) unsigned int value, __zp(4) char *dst) utoa10w: { .label value = 2 .label digit = 6 .label dst = 4 .label bStarted = 7 // [59] phi from utoa10w to utoa10w::@1 [phi:utoa10w->utoa10w::@1] - // [59] phi utoa10w::dst#11 = (byte*) 1024+$28+$28+$28+$28+$50 [phi:utoa10w->utoa10w::@1#0] -- pbuz1=pbuc1 + // [59] phi utoa10w::dst#11 = (char *) 1024+$28+$28+$28+$28+$50 [phi:utoa10w->utoa10w::@1#0] -- pbuz1=pbuc1 lda #<$400+$28+$28+$28+$28+$50 sta.z dst lda #>$400+$28+$28+$28+$28+$50 @@ -2516,7 +2516,7 @@ utoa10w: { bne __b1 // utoa10w::@8 // *dst++ = DIGITS[(unsigned char) value] - // [71] utoa10w::$9 = (byte)utoa10w::value#10 -- vbuxx=_byte_vwuz1 + // [71] utoa10w::$9 = (char)utoa10w::value#10 -- vbuxx=_byte_vwuz1 ldx.z value // [72] *utoa10w::dst#4 = DIGITS[utoa10w::$9] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -2566,7 +2566,7 @@ utoa10w: { } // utoa16n // Hexadecimal utoa() for a single nybble -// utoa16n(byte register(A) nybble, byte register(X) started) +// __register(X) char utoa16n(__register(A) char nybble, unsigned int **dst, __register(X) char started) utoa16n: { // if(nybble!=0) // [79] if(utoa16n::nybble#4==0) goto utoa16n::@3 -- vbuaa_eq_0_then_la1 diff --git a/src/test/ref/hex2dec.sym b/src/test/ref/hex2dec.sym index 133167b90..1574cb33d 100644 --- a/src/test/ref/hex2dec.sym +++ b/src/test/ref/hex2dec.sym @@ -1,80 +1,80 @@ -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* DIGITS[] = "0123456789abcdef" -constant word* UTOA10_SUB[] = { $7530, $2710, $bb8, $3e8, $12c, $64, $1e, $a } -constant byte* UTOA10_VAL[] = { 3, 1, 3, 1, 3, 1, 3, 1 } +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char DIGITS[] = "0123456789abcdef" +__constant unsigned int UTOA10_SUB[] = { $7530, $2710, $bb8, $3e8, $12c, $64, $1e, $a } +__constant char UTOA10_VAL[] = { 3, 1, 3, 1, 3, 1, 3, 1 } void cls() -byte* cls::sc -byte* cls::sc#1 sc zp[2]:2 151.5 -byte* cls::sc#2 sc zp[2]:2 151.5 -constant byte* cls::screen = (byte*) 1024 -constant byte* const control = (byte*) 53265 +char *cls::sc +char *cls::sc#1 // sc zp[2]:2 151.5 +char *cls::sc#2 // sc zp[2]:2 151.5 +__constant char *cls::screen = (char *) 1024 +__constant char * const control = (char *) 53265 void main() -byte~ main::$1 zp[1]:6 101.0 -byte~ main::$2 reg byte a 202.0 -byte main::i -byte main::i#1 reg byte x 202.0 -byte main::i#2 reg byte x 168.33333333333331 -constant byte* main::msg[] = "raster lines" -byte main::rst -byte main::rst#0 reg byte a 202.0 -byte* main::screen -byte main::time -byte main::time#0 reg byte a 11.0 -byte main::time_end -byte main::time_end#0 reg byte x 11.0 -byte main::time_start -byte main::time_start#0 time_start zp[1]:7 1.2941176470588236 -constant byte* const raster = (byte*) 53266 -void utoa10w(word utoa10w::value , byte* utoa10w::dst) -byte~ utoa10w::$1 reg byte a 20002.0 -byte~ utoa10w::$8 reg byte y 10001.0 -byte~ utoa10w::$9 reg byte x 202.0 -byte utoa10w::bStarted -byte utoa10w::bStarted#2 bStarted zp[1]:7 2500.25 -byte utoa10w::digit -byte utoa10w::digit#1 digit zp[1]:6 10001.0 -byte utoa10w::digit#3 digit zp[1]:6 8334.166666666666 -byte utoa10w::digit#7 digit zp[1]:6 6667.333333333333 -byte* utoa10w::dst -byte* utoa10w::dst#1 dst zp[2]:4 20002.0 -byte* utoa10w::dst#11 dst zp[2]:4 7778.555555555557 -byte* utoa10w::dst#2 dst zp[2]:4 202.0 -byte* utoa10w::dst#4 dst zp[2]:4 6041.0 -byte* utoa10w::dst#8 dst zp[2]:4 30003.0 -byte utoa10w::i -byte utoa10w::i#1 reg byte x 15001.5 -byte utoa10w::i#2 reg byte x 5833.916666666667 -word utoa10w::value -word utoa10w::value#0 value zp[2]:2 56.0 -word utoa10w::value#1 value zp[2]:2 20002.0 -word utoa10w::value#10 value zp[2]:2 3854.3076923076924 -byte utoa16n(byte utoa16n::nybble , word** utoa16n::dst , byte utoa16n::started) -word** utoa16n::dst -byte utoa16n::nybble -byte utoa16n::nybble#0 reg byte a 202.0 -byte utoa16n::nybble#1 reg byte a 101.0 -byte utoa16n::nybble#2 reg byte a 101.0 -byte utoa16n::nybble#3 reg byte a 202.0 -byte utoa16n::nybble#4 reg byte a 481.2 -byte utoa16n::return -byte utoa16n::return#0 reg byte x 202.0 -byte utoa16n::return#1 reg byte x 202.0 -byte utoa16n::return#4 reg byte x 314.8571428571429 -byte utoa16n::started -byte utoa16n::started#1 reg byte x 202.0 -byte utoa16n::started#2 reg byte x 202.0 -byte utoa16n::started#7 reg byte x 401.0 -void utoa16w(word utoa16w::value , byte* volatile utoa16w::dst) -byte~ utoa16w::$0 reg byte a 202.0 -byte~ utoa16w::$3 reg byte a 202.0 -byte~ utoa16w::$6 reg byte a 202.0 -byte~ utoa16w::$9 reg byte a 202.0 -byte* volatile utoa16w::dst loadstore zp[2]:8 4.875 -byte utoa16w::started -byte utoa16w::started#1 reg byte x 67.33333333333333 -byte utoa16w::started#2 reg byte x 67.33333333333333 -word utoa16w::value -word utoa16w::value#5 value zp[2]:2 25.25 +char main::$1 // zp[1]:6 101.0 +char main::$2 // reg byte a 202.0 +char main::i +char main::i#1 // reg byte x 202.0 +char main::i#2 // reg byte x 168.33333333333331 +__constant char main::msg[] = "raster lines" +char main::rst +char main::rst#0 // reg byte a 202.0 +char *main::screen +char main::time +char main::time#0 // reg byte a 11.0 +char main::time_end +char main::time_end#0 // reg byte x 11.0 +char main::time_start +char main::time_start#0 // time_start zp[1]:7 1.2941176470588236 +__constant char * const raster = (char *) 53266 +void utoa10w(unsigned int value , char *dst) +char utoa10w::$1 // reg byte a 20002.0 +char utoa10w::$8 // reg byte y 10001.0 +char utoa10w::$9 // reg byte x 202.0 +char utoa10w::bStarted +char utoa10w::bStarted#2 // bStarted zp[1]:7 2500.25 +char utoa10w::digit +char utoa10w::digit#1 // digit zp[1]:6 10001.0 +char utoa10w::digit#3 // digit zp[1]:6 8334.166666666666 +char utoa10w::digit#7 // digit zp[1]:6 6667.333333333333 +char *utoa10w::dst +char *utoa10w::dst#1 // dst zp[2]:4 20002.0 +char *utoa10w::dst#11 // dst zp[2]:4 7778.555555555557 +char *utoa10w::dst#2 // dst zp[2]:4 202.0 +char *utoa10w::dst#4 // dst zp[2]:4 6041.0 +char *utoa10w::dst#8 // dst zp[2]:4 30003.0 +char utoa10w::i +char utoa10w::i#1 // reg byte x 15001.5 +char utoa10w::i#2 // reg byte x 5833.916666666667 +unsigned int utoa10w::value +unsigned int utoa10w::value#0 // value zp[2]:2 56.0 +unsigned int utoa10w::value#1 // value zp[2]:2 20002.0 +unsigned int utoa10w::value#10 // value zp[2]:2 3854.3076923076924 +char utoa16n(char nybble , unsigned int **dst , char started) +unsigned int **utoa16n::dst +char utoa16n::nybble +char utoa16n::nybble#0 // reg byte a 202.0 +char utoa16n::nybble#1 // reg byte a 101.0 +char utoa16n::nybble#2 // reg byte a 101.0 +char utoa16n::nybble#3 // reg byte a 202.0 +char utoa16n::nybble#4 // reg byte a 481.2 +char utoa16n::return +char utoa16n::return#0 // reg byte x 202.0 +char utoa16n::return#1 // reg byte x 202.0 +char utoa16n::return#4 // reg byte x 314.8571428571429 +char utoa16n::started +char utoa16n::started#1 // reg byte x 202.0 +char utoa16n::started#2 // reg byte x 202.0 +char utoa16n::started#7 // reg byte x 401.0 +void utoa16w(unsigned int value , char * volatile dst) +char utoa16w::$0 // reg byte a 202.0 +char utoa16w::$3 // reg byte a 202.0 +char utoa16w::$6 // reg byte a 202.0 +char utoa16w::$9 // reg byte a 202.0 +__loadstore char * volatile utoa16w::dst // zp[2]:8 4.875 +char utoa16w::started +char utoa16w::started#1 // reg byte x 67.33333333333333 +char utoa16w::started#2 // reg byte x 67.33333333333333 +unsigned int utoa16w::value +unsigned int utoa16w::value#5 // value zp[2]:2 25.25 reg byte x [ main::i#2 main::i#1 ] reg byte x [ utoa10w::i#2 utoa10w::i#1 ] diff --git a/src/test/ref/ifmin.log b/src/test/ref/ifmin.log index 968f7d59f..aba762241 100644 --- a/src/test/ref/ifmin.log +++ b/src/test/ref/ifmin.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -32,7 +32,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -41,28 +41,28 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) $32 in main::$0 = main::i#2 < $32 Adding number conversion cast (unumber) $64 in main::$2 = main::i#1 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $32 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [3] main::$1 = main::i#2 >= $32 from [2] main::$0 = main::i#2 < $32 Successful SSA optimization Pass2UnaryNotSimplification @@ -119,9 +119,9 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -207,11 +207,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/ifmin.sym b/src/test/ref/ifmin.sym index 4705fe3d5..0a333fed8 100644 --- a/src/test/ref/ifmin.sym +++ b/src/test/ref/ifmin.sym @@ -1,7 +1,7 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/immzero.log b/src/test/ref/immzero.log index c9ec30095..13baf84c9 100644 --- a/src/test/ref/immzero.log +++ b/src/test/ref/immzero.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::w#0 = (word)0 + main::w#0 = (unsigned int)0 main::j#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,16 +32,16 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -word~ main::$0 -bool~ main::$1 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -word main::w -word main::w#0 -word main::w#1 -word main::w#2 +unsigned int main::$0 +bool main::$1 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +unsigned int main::w#2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification @@ -63,7 +63,7 @@ Adding number conversion cast (unumber) $b in [3] if(main::j#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::w#0 Inlining constant with var siblings main::j#0 @@ -101,12 +101,12 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::j -byte main::j#1 16.5 -byte main::j#2 16.5 -word main::w -word main::w#1 7.333333333333333 -word main::w#2 22.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 16.5 +unsigned int main::w +unsigned int main::w#1 // 7.333333333333333 +unsigned int main::w#2 // 22.0 Initial phi equivalence classes [ main::w#2 main::w#1 ] @@ -203,12 +203,12 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 16.5 -word main::w -word main::w#1 w zp[2]:2 7.333333333333333 -word main::w#2 w zp[2]:2 22.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 16.5 +unsigned int main::w +unsigned int main::w#1 // w zp[2]:2 7.333333333333333 +unsigned int main::w#2 // w zp[2]:2 22.0 zp[2]:2 [ main::w#2 main::w#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/immzero.sym b/src/test/ref/immzero.sym index ffaca4b16..1c9159d6d 100644 --- a/src/test/ref/immzero.sym +++ b/src/test/ref/immzero.sym @@ -1,10 +1,10 @@ void main() -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 16.5 -word main::w -word main::w#1 w zp[2]:2 7.333333333333333 -word main::w#2 w zp[2]:2 22.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 16.5 +unsigned int main::w +unsigned int main::w#1 // w zp[2]:2 7.333333333333333 +unsigned int main::w#2 // w zp[2]:2 22.0 zp[2]:2 [ main::w#2 main::w#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/importing.log b/src/test/ref/importing.log index b30f95ef1..a566048a6 100644 --- a/src/test/ref/importing.log +++ b/src/test/ref/importing.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,21 +21,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char RED = 2 void __start() void main() -constant byte* main::screen = (byte*)$400 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 1 in *main::screen = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::screen = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -114,10 +114,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char RED = 2 void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/importing.sym b/src/test/ref/importing.sym index d56d45d55..aaf63cce7 100644 --- a/src/test/ref/importing.sym +++ b/src/test/ref/importing.sym @@ -1,5 +1,5 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte RED = 2 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char RED = 2 void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/incd020-2.cfg b/src/test/ref/incd020-2.cfg index eee89bc6a..206b65ff7 100644 --- a/src/test/ref/incd020-2.cfg +++ b/src/test/ref/incd020-2.cfg @@ -4,8 +4,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] *((byte*) 53280) = ++ *((byte*) 53280) - [2] if(*((byte*) 53280)<$ff) goto main::@1 + [1] *((char *) 53280) = ++ *((char *) 53280) + [2] if(*((char *) 53280)<$ff) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [3] return diff --git a/src/test/ref/incd020-2.log b/src/test/ref/incd020-2.log index ffcab0a6a..8f9937830 100644 --- a/src/test/ref/incd020-2.log +++ b/src/test/ref/incd020-2.log @@ -5,8 +5,8 @@ void main() main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@1 - *((byte*)$d020) = ++ *((byte*)$d020) - main::$1 = *((byte*)$d020) < $ff + *((char *)$d020) = ++ *((char *)$d020) + main::$1 = *((char *)$d020) < $ff if(main::$1) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 @@ -15,7 +15,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,18 +26,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 +bool main::$1 -Adding number conversion cast (unumber) $ff in main::$1 = *((byte*)$d020) < $ff +Adding number conversion cast (unumber) $ff in main::$1 = *((char *)$d020) < $ff Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff +Finalized unsigned number type (char) $ff Successful SSA optimization PassNFinalizeNumberTypeConversions -Simple Condition main::$1 [2] if(*((byte*) 53280)<$ff) goto main::@1 +Simple Condition main::$1 [2] if(*((char *) 53280)<$ff) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Removing unused procedure __start Removing unused procedure block __start @@ -58,8 +58,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] *((byte*) 53280) = ++ *((byte*) 53280) - [2] if(*((byte*) 53280)<$ff) goto main::@1 + [1] *((char *) 53280) = ++ *((char *) 53280) + [2] if(*((char *) 53280)<$ff) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 [3] return @@ -72,7 +72,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] if(*((byte*) 53280)<$ff) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] if(*((char *) 53280)<$ff) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -99,9 +99,9 @@ main: { jmp __b1 // main::@1 __b1: - // [1] *((byte*) 53280) = ++ *((byte*) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 + // [1] *((char *) 53280) = ++ *((char *) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 inc $d020 - // [2] if(*((byte*) 53280)<$ff) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1 + // [2] if(*((char *) 53280)<$ff) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1 lda $d020 cmp #$ff bcc __b1 @@ -145,10 +145,10 @@ main: { // main::@1 __b1: // (*(unsigned char *)(53280))++; - // [1] *((byte*) 53280) = ++ *((byte*) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 + // [1] *((char *) 53280) = ++ *((char *) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 inc $d020 // while ( (*(unsigned char *)(53280)) < 255) - // [2] if(*((byte*) 53280)<$ff) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1 + // [2] if(*((char *) 53280)<$ff) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1 lda $d020 cmp #$ff bcc __b1 diff --git a/src/test/ref/incd020.log b/src/test/ref/incd020.log index ce7f981fb..0d409cd68 100644 --- a/src/test/ref/incd020.log +++ b/src/test/ref/incd020.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -20,7 +20,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -29,11 +29,11 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BG_COLOR = (byte*)$d020 +__constant char *BG_COLOR = (char *)$d020 void __start() void main() -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 Successful SSA optimization PassNCastSimplification if() condition always true - replacing block destination [2] if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -113,7 +113,7 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* BG_COLOR = (byte*) 53280 +__constant char *BG_COLOR = (char *) 53280 void main() diff --git a/src/test/ref/incd020.sym b/src/test/ref/incd020.sym index f2f836ae7..13f80e429 100644 --- a/src/test/ref/incd020.sym +++ b/src/test/ref/incd020.sym @@ -1,3 +1,3 @@ -constant byte* BG_COLOR = (byte*) 53280 +__constant char *BG_COLOR = (char *) 53280 void main() diff --git a/src/test/ref/include-define.log b/src/test/ref/include-define.log index c17de1bc9..e6b40d6e1 100644 --- a/src/test/ref/include-define.log +++ b/src/test/ref/include-define.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,17 +25,17 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte x = 'a' +__constant char x = 'a' Adding number conversion cast (unumber) 0 in SCREEN[0] = x Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = x Successful SSA optimization PassNSimplifyExpressionWithZero @@ -112,9 +112,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte x = 'a' +__constant char x = 'a' diff --git a/src/test/ref/include-define.sym b/src/test/ref/include-define.sym index 7c751c8c9..7170dde1e 100644 --- a/src/test/ref/include-define.sym +++ b/src/test/ref/include-define.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte x = 'a' +__constant char x = 'a' diff --git a/src/test/ref/incrementinarray.asm b/src/test/ref/incrementinarray.asm index 1bc7302e1..1e9f77649 100644 --- a/src/test/ref/incrementinarray.asm +++ b/src/test/ref/incrementinarray.asm @@ -54,7 +54,7 @@ print_cls: { rts } // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 lda # 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -442,13 +442,13 @@ Constant memset::c#0 = ' ' Constant memset::num#0 = $3e8 Constant main::i#0 = 0 Constant print_str::str#1 = txt -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [28] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -467,7 +467,7 @@ Adding number conversion cast (unumber) $b in [27] if(main::i#1!=$b) goto main:: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [15] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -477,17 +477,17 @@ Inlining constant with var siblings print_str::str#1 Inlining constant with var siblings memset::dst#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = txt -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(txt+1) Consolidated array index constant in *(txt+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@5(between main::@4 and main::@1) @@ -539,17 +539,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@4 [2] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] print_line_cursor#21 = phi( main/print_screen#0, main::@4/print_line_cursor#0 ) [2] print_char_cursor#32 = phi( main/print_screen#0, main::@4/print_char_cursor#37 ) - [3] call print_str + [3] call print_str to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call print_ln + [5] call print_ln to:main::@3 main::@3: scope:[main] from main::@2 [6] *(txt+1) = ++ *(txt+1) @@ -566,13 +566,13 @@ main::@4: scope:[main] from main::@3 void print_cls() print_cls: scope:[print_cls] from main [11] phi() - [12] call memset + [12] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [13] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@1 [14] phi() to:print_str::@1 @@ -586,7 +586,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [18] print_char::ch#0 = *print_str::str#2 - [19] call print_char + [19] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [20] print_str::str#0 = ++ print_str::str#2 @@ -605,12 +605,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [25] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [26] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [27] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [27] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [28] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -621,7 +621,7 @@ memset::@2: scope:[memset] from memset::@1 [31] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [32] *print_char_cursor#1 = print_char::ch#0 [33] print_char_cursor#20 = ++ print_char_cursor#1 @@ -633,37 +633,37 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 4.4 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 110002.0 -byte* print_char_cursor -byte* print_char_cursor#1 20009.545454545456 -byte* print_char_cursor#20 27500.5 -byte* print_char_cursor#32 56.0 -byte* print_char_cursor#37 22.0 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 4.4 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 110002.0 +char *print_char_cursor +char *print_char_cursor#1 // 20009.545454545456 +char *print_char_cursor#20 // 27500.5 +char *print_char_cursor#32 // 56.0 +char *print_char_cursor#37 // 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 3753.125 -byte* print_line_cursor#10 20103.0 -byte* print_line_cursor#21 28.0 +char *print_line_cursor +char *print_line_cursor#0 // 3753.125 +char *print_line_cursor#10 // 20103.0 +char *print_line_cursor#21 // 28.0 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 20002.0 -byte* print_str::str#2 10001.0 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 20002.0 +char *print_str::str#2 // 10001.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -756,7 +756,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_cls + // [1] call print_cls // [11] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -777,7 +777,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_str + // [3] call print_str // [14] phi from main::@1 to print_str [phi:main::@1->print_str] print_str_from___b1: jsr print_str @@ -786,7 +786,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print_ln + // [5] call print_ln // [21] phi from main::@2 to print_ln [phi:main::@2->print_ln] print_ln_from___b2: jsr print_ln @@ -822,7 +822,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [12] call memset + // [12] call memset // [26] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -834,7 +834,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 // [15] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -863,7 +863,7 @@ print_str: { // [18] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [19] call print_char + // [19] call print_char jsr print_char jmp __b3 // print_str::@3 @@ -914,6 +914,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -922,7 +923,7 @@ memset: { .label dst = 6 // [27] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [27] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [27] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -960,7 +961,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [32] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -1024,48 +1025,48 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 4.4 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2002.0 -byte* memset::dst#2 dst zp[2]:6 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 110002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:2 20009.545454545456 -byte* print_char_cursor#20 print_char_cursor zp[2]:2 27500.5 -byte* print_char_cursor#32 print_char_cursor zp[2]:2 56.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:2 22.0 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 4.4 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2002.0 +char *memset::dst#2 // dst zp[2]:6 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 110002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:2 20009.545454545456 +char *print_char_cursor#20 // print_char_cursor zp[2]:2 27500.5 +char *print_char_cursor#32 // print_char_cursor zp[2]:2 56.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:2 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:4 3753.125 -byte* print_line_cursor#10 print_line_cursor zp[2]:4 20103.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:4 28.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:4 3753.125 +char *print_line_cursor#10 // print_line_cursor zp[2]:4 20103.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:4 28.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:6 20002.0 -byte* print_str::str#2 str zp[2]:6 10001.0 -constant byte* txt[] = "camelot" +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:6 20002.0 +char *print_str::str#2 // str zp[2]:6 10001.0 +__constant char txt[] = "camelot" reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ print_char_cursor#1 print_char_cursor#32 print_char_cursor#37 print_char_cursor#20 ] @@ -1099,7 +1100,7 @@ Score: 9880 // main main: { // print_cls() - // [1] call print_cls + // [1] call print_cls // [11] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] @@ -1118,13 +1119,13 @@ main: { // main::@1 __b1: // print_str(txt) - // [3] call print_str + // [3] call print_str // [14] phi from main::@1 to print_str [phi:main::@1->print_str] jsr print_str // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print_ln() - // [5] call print_ln + // [5] call print_ln // [21] phi from main::@2 to print_ln [phi:main::@2->print_ln] jsr print_ln // main::@3 @@ -1158,7 +1159,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [12] call memset + // [12] call memset // [26] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -1168,7 +1169,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 // [15] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -1196,7 +1197,7 @@ print_str: { // [18] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [19] call print_char + // [19] call print_char jsr print_char // print_str::@3 // print_char(*(str++)); @@ -1243,6 +1244,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1250,7 +1252,7 @@ memset: { .label end = str+num .label dst = 6 // [27] phi from memset to memset::@1 [phi:memset->memset::@1] - // [27] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [27] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1288,7 +1290,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [32] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/incrementinarray.sym b/src/test/ref/incrementinarray.sym index d336c6eeb..861cb1f07 100644 --- a/src/test/ref/incrementinarray.sym +++ b/src/test/ref/incrementinarray.sym @@ -1,45 +1,45 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 4.4 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2002.0 -byte* memset::dst#2 dst zp[2]:6 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 110002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:2 20009.545454545456 -byte* print_char_cursor#20 print_char_cursor zp[2]:2 27500.5 -byte* print_char_cursor#32 print_char_cursor zp[2]:2 56.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:2 22.0 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 4.4 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2002.0 +char *memset::dst#2 // dst zp[2]:6 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 110002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:2 20009.545454545456 +char *print_char_cursor#20 // print_char_cursor zp[2]:2 27500.5 +char *print_char_cursor#32 // print_char_cursor zp[2]:2 56.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:2 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:4 3753.125 -byte* print_line_cursor#10 print_line_cursor zp[2]:4 20103.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:4 28.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:4 3753.125 +char *print_line_cursor#10 // print_line_cursor zp[2]:4 20103.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:4 28.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:6 20002.0 -byte* print_str::str#2 str zp[2]:6 10001.0 -constant byte* txt[] = "camelot" +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:6 20002.0 +char *print_str::str#2 // str zp[2]:6 10001.0 +__constant char txt[] = "camelot" reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ print_char_cursor#1 print_char_cursor#32 print_char_cursor#37 print_char_cursor#20 ] diff --git a/src/test/ref/index-pointer-rewrite-0.log b/src/test/ref/index-pointer-rewrite-0.log index f2b18be82..854a3d4f0 100644 --- a/src/test/ref/index-pointer-rewrite-0.log +++ b/src/test/ref/index-pointer-rewrite-0.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,14 +31,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* entities[$19] = { fill( $19, 0) } +__constant char entities[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $19 in main::$0 = main::i#2 < $19 Adding number conversion cast (unumber) 7 in entities[main::i#3] = 7 @@ -48,8 +48,8 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $19 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -65,8 +65,8 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -97,9 +97,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -177,11 +177,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* entities[$19] = { fill( $19, 0) } +__constant char entities[$19] = { fill( $19, 0) } void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/index-pointer-rewrite-0.sym b/src/test/ref/index-pointer-rewrite-0.sym index 85db3242c..245834488 100644 --- a/src/test/ref/index-pointer-rewrite-0.sym +++ b/src/test/ref/index-pointer-rewrite-0.sym @@ -1,7 +1,7 @@ -constant byte* entities[$19] = { fill( $19, 0) } +__constant char entities[$19] = { fill( $19, 0) } void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/index-pointer-rewrite-1.log b/src/test/ref/index-pointer-rewrite-1.log index 997109b03..ca831d1ad 100644 --- a/src/test/ref/index-pointer-rewrite-1.log +++ b/src/test/ref/index-pointer-rewrite-1.log @@ -12,7 +12,7 @@ main::@1: scope:[main] from main main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - main::$1 = main::i#3 * SIZEOF_WORD + main::$1 = main::i#3 * SIZEOF_UNSIGNED_INT entities[main::$1] = 7 main::i#1 = ++ main::i#3 to:main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,17 +31,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -byte~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $19 in main::$0 = main::i#2 < $19 Adding number conversion cast (unumber) 7 in entities[main::$1] = 7 @@ -51,8 +51,8 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $19 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -65,15 +65,15 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [2] main::$1 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$1 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -105,10 +105,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -198,12 +198,12 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/index-pointer-rewrite-1.sym b/src/test/ref/index-pointer-rewrite-1.sym index 0ca994c02..02d27aa2a 100644 --- a/src/test/ref/index-pointer-rewrite-1.sym +++ b/src/test/ref/index-pointer-rewrite-1.sym @@ -1,9 +1,9 @@ -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/index-pointer-rewrite-2.log b/src/test/ref/index-pointer-rewrite-2.log index 3d4695e49..7f6693f96 100644 --- a/src/test/ref/index-pointer-rewrite-2.log +++ b/src/test/ref/index-pointer-rewrite-2.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,14 +31,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* entities[$19] = { fill( $19, 0) } +__constant char entities[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 +bool main::$0 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 Adding number conversion cast (unumber) $19 in main::$0 = main::i#2 < $19 Adding number conversion cast (unumber) 7 in entities[main::i#3] = 7 @@ -48,8 +48,8 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $19 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -67,8 +67,8 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -100,10 +100,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$1 22.0 -word main::i -word main::i#1 22.0 -word main::i#2 11.0 +char *main::$1 // 22.0 +unsigned int main::i +unsigned int main::i#1 // 22.0 +unsigned int main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -208,12 +208,12 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* entities[$19] = { fill( $19, 0) } +__constant char entities[$19] = { fill( $19, 0) } void main() -byte*~ main::$1 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 11.0 +char *main::$1 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 11.0 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/index-pointer-rewrite-2.sym b/src/test/ref/index-pointer-rewrite-2.sym index 9310913af..2a58cb762 100644 --- a/src/test/ref/index-pointer-rewrite-2.sym +++ b/src/test/ref/index-pointer-rewrite-2.sym @@ -1,9 +1,9 @@ -constant byte* entities[$19] = { fill( $19, 0) } +__constant char entities[$19] = { fill( $19, 0) } void main() -byte*~ main::$1 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 11.0 +char *main::$1 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 11.0 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 ] diff --git a/src/test/ref/index-pointer-rewrite-3.log b/src/test/ref/index-pointer-rewrite-3.log index 55744314a..d8c9fc65a 100644 --- a/src/test/ref/index-pointer-rewrite-3.log +++ b/src/test/ref/index-pointer-rewrite-3.log @@ -12,7 +12,7 @@ main::@1: scope:[main] from main main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - main::$1 = main::i#3 * SIZEOF_WORD + main::$1 = main::i#3 * SIZEOF_UNSIGNED_INT entities[main::$1] = 7 main::i#1 = ++ main::i#3 to:main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,17 +31,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -word~ main::$1 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 +bool main::$0 +unsigned int main::$1 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 Adding number conversion cast (unumber) $19 in main::$0 = main::i#2 < $19 Adding number conversion cast (unumber) 7 in entities[main::$1] = 7 @@ -51,8 +51,8 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $19 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -67,15 +67,15 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [2] main::$1 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$1 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -108,11 +108,11 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -word~ main::$1 22.0 -word*~ main::$2 22.0 -word main::i -word main::i#1 22.0 -word main::i#2 8.8 +unsigned int main::$1 // 22.0 +unsigned int *main::$2 // 22.0 +unsigned int main::i +unsigned int main::i#1 // 22.0 +unsigned int main::i#2 // 8.8 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -234,13 +234,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -word~ main::$1 zp[2]:4 22.0 -word*~ main::$2 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 8.8 +unsigned int main::$1 // zp[2]:4 22.0 +unsigned int *main::$2 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 8.8 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 main::$2 ] diff --git a/src/test/ref/index-pointer-rewrite-3.sym b/src/test/ref/index-pointer-rewrite-3.sym index f0859f733..a8fbab787 100644 --- a/src/test/ref/index-pointer-rewrite-3.sym +++ b/src/test/ref/index-pointer-rewrite-3.sym @@ -1,10 +1,10 @@ -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -word~ main::$1 zp[2]:4 22.0 -word*~ main::$2 zp[2]:4 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 8.8 +unsigned int main::$1 // zp[2]:4 22.0 +unsigned int *main::$2 // zp[2]:4 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 8.8 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 main::$2 ] diff --git a/src/test/ref/index-pointer-rewrite-4.log b/src/test/ref/index-pointer-rewrite-4.log index 1ed34e8dc..5f2fcff43 100644 --- a/src/test/ref/index-pointer-rewrite-4.log +++ b/src/test/ref/index-pointer-rewrite-4.log @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,17 +36,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* fibs[$19] = { fill( $19, 0) } +__constant char fibs[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -number~ main::$1 -number~ main::$2 -byte~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +number main::$1 +number main::$2 +char main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 0 in fibs[0] = 0 Adding number conversion cast (unumber) 0 in fibs[0] = ((unumber)) 0 @@ -68,18 +68,18 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#3 + 2 -Inferred type updated to byte in main::$2 = main::i#3 + 1 +Inferred type updated to char in main::$1 = main::i#3 + 2 +Inferred type updated to char in main::$2 = main::i#3 + 1 Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$0 [5] if(main::i#2<(byte)$19-2) goto main::@2 +Simple Condition main::$0 [5] if(main::i#2<(char)$19-2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -99,10 +99,10 @@ Consolidated array index constant in assignment (fibs+2)[main::$1] Successful SSA optimization Pass2ConstantAdditionElimination Alias main::i#2 = main::$1 main::$2 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-2 Successful SSA optimization PassNCastSimplification @@ -135,10 +135,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 16.5 +char main::$3 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -234,12 +234,12 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* fibs[$19] = { fill( $19, 0) } +__constant char fibs[$19] = { fill( $19, 0) } void main() -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/index-pointer-rewrite-4.sym b/src/test/ref/index-pointer-rewrite-4.sym index 62940a472..bbfda36c2 100644 --- a/src/test/ref/index-pointer-rewrite-4.sym +++ b/src/test/ref/index-pointer-rewrite-4.sym @@ -1,9 +1,9 @@ -constant byte* fibs[$19] = { fill( $19, 0) } +__constant char fibs[$19] = { fill( $19, 0) } void main() -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/index-pointer-rewrite-5.asm b/src/test/ref/index-pointer-rewrite-5.asm index 25df31085..a8ba22b10 100644 --- a/src/test/ref/index-pointer-rewrite-5.asm +++ b/src/test/ref/index-pointer-rewrite-5.asm @@ -9,7 +9,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label __1 = 3 @@ -21,9 +21,9 @@ main: { sta fibs+1 // fibs[1] = 1 lda #<1 - sta fibs+1*SIZEOF_WORD + sta fibs+1*SIZEOF_UNSIGNED_INT lda #>1 - sta fibs+1*SIZEOF_WORD+1 + sta fibs+1*SIZEOF_UNSIGNED_INT+1 sta.z i __b1: // for(char i=0;i0 sta fibs+1 - // [1] *(fibs+1*SIZEOF_WORD) = 1 -- _deref_pwuc1=vbuc2 + // [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 -- _deref_pwuc1=vbuc2 lda #<1 - sta fibs+1*SIZEOF_WORD + sta fibs+1*SIZEOF_UNSIGNED_INT lda #>1 - sta fibs+1*SIZEOF_WORD+1 + sta fibs+1*SIZEOF_UNSIGNED_INT+1 // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: // [2] phi main::i#2 = 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 @@ -353,18 +353,18 @@ Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 -constant word* fibs[$19] = { fill( $19, 0) } +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant unsigned int fibs[$19] = { fill( $19, 0) } void main() -byte~ main::$1 zp[1]:3 4.4 -byte~ main::$2 reg byte x 11.0 -word~ main::$3 zp[2]:4 11.0 -byte~ main::$6 reg byte y 11.0 -byte~ main::$7 reg byte a 22.0 -byte~ main::$8 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 7.333333333333334 +char main::$1 // zp[1]:3 4.4 +char main::$2 // reg byte x 11.0 +unsigned int main::$3 // zp[2]:4 11.0 +char main::$6 // reg byte y 11.0 +char main::$7 // reg byte a 22.0 +char main::$8 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 7.333333333333334 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::$1 ] @@ -392,7 +392,7 @@ Score: 983 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -405,11 +405,11 @@ main: { sta fibs sta fibs+1 // fibs[1] = 1 - // [1] *(fibs+1*SIZEOF_WORD) = 1 -- _deref_pwuc1=vbuc2 + // [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 -- _deref_pwuc1=vbuc2 lda #<1 - sta fibs+1*SIZEOF_WORD + sta fibs+1*SIZEOF_UNSIGNED_INT lda #>1 - sta fibs+1*SIZEOF_WORD+1 + sta fibs+1*SIZEOF_UNSIGNED_INT+1 // [2] phi from main to main::@1 [phi:main->main::@1] // [2] phi main::i#2 = 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 sta.z i diff --git a/src/test/ref/index-pointer-rewrite-5.sym b/src/test/ref/index-pointer-rewrite-5.sym index 35fd956e5..8c04cae05 100644 --- a/src/test/ref/index-pointer-rewrite-5.sym +++ b/src/test/ref/index-pointer-rewrite-5.sym @@ -1,15 +1,15 @@ -constant byte SIZEOF_WORD = 2 -constant word* fibs[$19] = { fill( $19, 0) } +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant unsigned int fibs[$19] = { fill( $19, 0) } void main() -byte~ main::$1 zp[1]:3 4.4 -byte~ main::$2 reg byte x 11.0 -word~ main::$3 zp[2]:4 11.0 -byte~ main::$6 reg byte y 11.0 -byte~ main::$7 reg byte a 22.0 -byte~ main::$8 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 7.333333333333334 +char main::$1 // zp[1]:3 4.4 +char main::$2 // reg byte x 11.0 +unsigned int main::$3 // zp[2]:4 11.0 +char main::$6 // reg byte y 11.0 +char main::$7 // reg byte a 22.0 +char main::$8 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 7.333333333333334 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::$1 ] diff --git a/src/test/ref/index-pointer-rewrite-6.log b/src/test/ref/index-pointer-rewrite-6.log index 7413b0567..c7affe546 100644 --- a/src/test/ref/index-pointer-rewrite-6.log +++ b/src/test/ref/index-pointer-rewrite-6.log @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,17 +36,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* fibs[$19] = { fill( $19, 0) } +__constant char fibs[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -number~ main::$1 -number~ main::$2 -byte~ main::$3 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 +bool main::$0 +number main::$1 +number main::$2 +char main::$3 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 Adding number conversion cast (unumber) 0 in fibs[0] = 0 Adding number conversion cast (unumber) 0 in fibs[0] = ((unumber)) 0 @@ -68,18 +68,18 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$1 = main::i#3 + 2 -Inferred type updated to word in main::$2 = main::i#3 + 1 +Inferred type updated to unsigned int in main::$1 = main::i#3 + 2 +Inferred type updated to unsigned int in main::$2 = main::i#3 + 1 Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$0 [5] if(main::i#2<(byte)$19-2) goto main::@2 +Simple Condition main::$0 [5] if(main::i#2<(char)$19-2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -103,10 +103,10 @@ Consolidated constant in assignment main::$6 Successful SSA optimization Pass2ConstantAdditionElimination Alias main::i#2 = main::$1 main::$2 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-2 Successful SSA optimization PassNCastSimplification @@ -142,13 +142,13 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 11.0 -byte*~ main::$4 11.0 -byte*~ main::$5 22.0 -byte*~ main::$6 22.0 -word main::i -word main::i#1 22.0 -word main::i#2 9.428571428571429 +char main::$3 // 11.0 +char *main::$4 // 11.0 +char *main::$5 // 22.0 +char *main::$6 // 22.0 +unsigned int main::i +unsigned int main::i#1 // 22.0 +unsigned int main::i#2 // 9.428571428571429 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -314,15 +314,15 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* fibs[$19] = { fill( $19, 0) } +__constant char fibs[$19] = { fill( $19, 0) } void main() -byte~ main::$3 reg byte x 11.0 -byte*~ main::$4 zp[2]:4 11.0 -byte*~ main::$5 zp[2]:6 22.0 -byte*~ main::$6 zp[2]:8 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 9.428571428571429 +char main::$3 // reg byte x 11.0 +char *main::$4 // zp[2]:4 11.0 +char *main::$5 // zp[2]:6 22.0 +char *main::$6 // zp[2]:8 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 9.428571428571429 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$4 ] diff --git a/src/test/ref/index-pointer-rewrite-6.sym b/src/test/ref/index-pointer-rewrite-6.sym index 5a7737e01..b59f7556a 100644 --- a/src/test/ref/index-pointer-rewrite-6.sym +++ b/src/test/ref/index-pointer-rewrite-6.sym @@ -1,12 +1,12 @@ -constant byte* fibs[$19] = { fill( $19, 0) } +__constant char fibs[$19] = { fill( $19, 0) } void main() -byte~ main::$3 reg byte x 11.0 -byte*~ main::$4 zp[2]:4 11.0 -byte*~ main::$5 zp[2]:6 22.0 -byte*~ main::$6 zp[2]:8 22.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 9.428571428571429 +char main::$3 // reg byte x 11.0 +char *main::$4 // zp[2]:4 11.0 +char *main::$5 // zp[2]:6 22.0 +char *main::$6 // zp[2]:8 22.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 9.428571428571429 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$4 ] diff --git a/src/test/ref/index-pointer-rewrite-7.asm b/src/test/ref/index-pointer-rewrite-7.asm index ca02c3b31..55d328ea0 100644 --- a/src/test/ref/index-pointer-rewrite-7.asm +++ b/src/test/ref/index-pointer-rewrite-7.asm @@ -9,7 +9,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label __1 = 4 @@ -28,9 +28,9 @@ main: { sta fibs+1 // fibs[1] = 1 lda #<1 - sta fibs+1*SIZEOF_WORD + sta fibs+1*SIZEOF_UNSIGNED_INT lda #>1 - sta fibs+1*SIZEOF_WORD+1 + sta fibs+1*SIZEOF_UNSIGNED_INT+1 sta.z i sta.z i+1 __b1: diff --git a/src/test/ref/index-pointer-rewrite-7.cfg b/src/test/ref/index-pointer-rewrite-7.cfg index 228bea151..b2c3e7aa4 100644 --- a/src/test/ref/index-pointer-rewrite-7.cfg +++ b/src/test/ref/index-pointer-rewrite-7.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] *fibs = 0 - [1] *(fibs+1*SIZEOF_WORD) = 1 + [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 to:main::@1 main::@1: scope:[main] from main main::@2 [2] main::i#2 = phi( main/0, main::@2/main::i#1 ) diff --git a/src/test/ref/index-pointer-rewrite-7.log b/src/test/ref/index-pointer-rewrite-7.log index 5dc3a1b1c..ad044f832 100644 --- a/src/test/ref/index-pointer-rewrite-7.log +++ b/src/test/ref/index-pointer-rewrite-7.log @@ -3,9 +3,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$4 = 0 * SIZEOF_WORD + main::$4 = 0 * SIZEOF_UNSIGNED_INT fibs[main::$4] = 0 - main::$5 = 1 * SIZEOF_WORD + main::$5 = 1 * SIZEOF_UNSIGNED_INT fibs[main::$5] = 1 main::i#0 = 0 to:main::@1 @@ -18,10 +18,10 @@ main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::$1 = main::i#3 + 2 main::$2 = main::i#3 + 1 - main::$6 = main::i#3 * SIZEOF_WORD - main::$7 = main::$2 * SIZEOF_WORD + main::$6 = main::i#3 * SIZEOF_UNSIGNED_INT + main::$7 = main::$2 * SIZEOF_UNSIGNED_INT main::$3 = fibs[main::$6] + fibs[main::$7] - main::$8 = main::$1 * SIZEOF_WORD + main::$8 = main::$1 * SIZEOF_UNSIGNED_INT fibs[main::$8] = main::$3 main::i#1 = ++ main::i#3 to:main::@1 @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -40,38 +40,38 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -constant word* fibs[$19] = { fill( $19, 0) } +__constant unsigned int fibs[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -number~ main::$1 -number~ main::$2 -word~ main::$3 -number~ main::$4 -number~ main::$5 -word~ main::$6 -number~ main::$7 -number~ main::$8 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 +bool main::$0 +number main::$1 +number main::$2 +unsigned int main::$3 +number main::$4 +number main::$5 +unsigned int main::$6 +number main::$7 +number main::$8 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 -Adding number conversion cast (unumber) 0 in main::$4 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$4 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 0 in fibs[main::$4] = 0 -Adding number conversion cast (unumber) 1 in main::$5 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$5 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 1 in fibs[main::$5] = 1 Adding number conversion cast (unumber) $19-2 in main::$0 = main::i#2 < $19-2 Adding number conversion cast (unumber) 2 in main::$1 = main::i#3 + 2 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#3 + (unumber)2 Adding number conversion cast (unumber) 1 in main::$2 = main::i#3 + 1 Adding number conversion cast (unumber) main::$2 in main::$2 = main::i#3 + (unumber)1 -Adding number conversion cast (unumber) main::$7 in main::$7 = main::$2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$8 in main::$8 = main::$1 * SIZEOF_WORD +Adding number conversion cast (unumber) main::$7 in main::$7 = main::$2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$8 in main::$8 = main::$1 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fibs[main::$4] = (unumber)0 Inlining cast fibs[main::$5] = (unumber)1 @@ -83,35 +83,35 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$5 = 1 * SIZEOF_WORD -Inferred type updated to word in main::$1 = main::i#3 + 2 -Inferred type updated to word in main::$2 = main::i#3 + 1 -Inferred type updated to word in main::$7 = main::$2 * SIZEOF_WORD -Inferred type updated to word in main::$8 = main::$1 * SIZEOF_WORD +Inferred type updated to char in main::$4 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$5 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to unsigned int in main::$1 = main::i#3 + 2 +Inferred type updated to unsigned int in main::$2 = main::i#3 + 1 +Inferred type updated to unsigned int in main::$7 = main::$2 * SIZEOF_UNSIGNED_INT +Inferred type updated to unsigned int in main::$8 = main::$1 * SIZEOF_UNSIGNED_INT Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$0 [7] if(main::i#2<(byte)$19-2) goto main::@2 +Simple Condition main::$0 [7] if(main::i#2<(char)$19-2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [0] main::$4 = 0 * SIZEOF_WORD -Constant right-side identified [2] main::$5 = 1 * SIZEOF_WORD +Constant right-side identified [0] main::$4 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [2] main::$5 = 1 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$4 = 0*SIZEOF_WORD -Constant main::$5 = 1*SIZEOF_WORD +Constant main::$4 = 0*SIZEOF_UNSIGNED_INT +Constant main::$5 = 1*SIZEOF_UNSIGNED_INT Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification De-inlining pointer[w] to *(pointer+w) [12] main::$3 = fibs[main::$6] + fibs[main::$7] De-inlining pointer[w] to *(pointer+w) [12] main::$3 = *main::$9 + fibs[main::$7] De-inlining pointer[w] to *(pointer+w) [14] fibs[main::$8] = main::$3 Successful SSA optimization Pass2DeInlineWordDerefIdx -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero fibs in [1] fibs[main::$4] = 0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -122,20 +122,20 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [6] main::$6 = main::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [7] main::$7 = main::$2 * SIZEOF_WORD -Rewriting multiplication to use shift [11] main::$8 = main::$1 * SIZEOF_WORD +Rewriting multiplication to use shift [6] main::$6 = main::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [7] main::$7 = main::$2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [11] main::$8 = main::$1 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 -Constant inlined main::$5 = 1*SIZEOF_WORD +Constant inlined main::$5 = 1*SIZEOF_UNSIGNED_INT Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(fibs+1*SIZEOF_WORD) +Consolidated array index constant in *(fibs+1*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-2 Successful SSA optimization PassNCastSimplification @@ -150,7 +150,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *fibs = 0 - [1] *(fibs+1*SIZEOF_WORD) = 1 + [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 to:main::@1 main::@1: scope:[main] from main main::@2 [2] main::i#2 = phi( main/0, main::@2/main::i#1 ) @@ -176,18 +176,18 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -word~ main::$1 3.142857142857143 -word*~ main::$10 22.0 -word*~ main::$11 22.0 -word~ main::$2 11.0 -word~ main::$3 7.333333333333333 -word~ main::$6 11.0 -word~ main::$7 11.0 -word~ main::$8 22.0 -word*~ main::$9 11.0 -word main::i -word main::i#1 22.0 -word main::i#2 5.5 +unsigned int main::$1 // 3.142857142857143 +unsigned int *main::$10 // 22.0 +unsigned int *main::$11 // 22.0 +unsigned int main::$2 // 11.0 +unsigned int main::$3 // 7.333333333333333 +unsigned int main::$6 // 11.0 +unsigned int main::$7 // 11.0 +unsigned int main::$8 // 22.0 +unsigned int *main::$9 // 11.0 +unsigned int main::i +unsigned int main::i#1 // 22.0 +unsigned int main::i#2 // 5.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -223,7 +223,7 @@ Allocated zp[2]:18 [ main::$8 ] Allocated zp[2]:20 [ main::$11 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *fibs = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(fibs+1*SIZEOF_WORD) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] if(main::i#2<$19-2) goto main::@2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [5] main::$1 = main::i#2 + 2 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Statement [6] main::$2 = main::i#2 + 1 [ main::i#2 main::$1 main::$2 ] ( [ main::i#2 main::$1 main::$2 ] { } ) always clobbers reg byte a @@ -274,7 +274,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -293,11 +293,11 @@ main: { sta fibs lda #>0 sta fibs+1 - // [1] *(fibs+1*SIZEOF_WORD) = 1 -- _deref_pwuc1=vbuc2 + // [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 -- _deref_pwuc1=vbuc2 lda #<1 - sta fibs+1*SIZEOF_WORD + sta fibs+1*SIZEOF_UNSIGNED_INT lda #>1 - sta fibs+1*SIZEOF_WORD+1 + sta fibs+1*SIZEOF_UNSIGNED_INT+1 // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: // [2] phi main::i#2 = 0 [phi:main->main::@1#0] -- vwuz1=vwuc1 @@ -423,21 +423,21 @@ Removing instruction lda #<0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 -constant word* fibs[$19] = { fill( $19, 0) } +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant unsigned int fibs[$19] = { fill( $19, 0) } void main() -word~ main::$1 zp[2]:4 3.142857142857143 -word*~ main::$10 zp[2]:6 22.0 -word*~ main::$11 zp[2]:4 22.0 -word~ main::$2 zp[2]:6 11.0 -word~ main::$3 zp[2]:6 7.333333333333333 -word~ main::$6 zp[2]:8 11.0 -word~ main::$7 zp[2]:6 11.0 -word~ main::$8 zp[2]:4 22.0 -word*~ main::$9 zp[2]:8 11.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 5.5 +unsigned int main::$1 // zp[2]:4 3.142857142857143 +unsigned int *main::$10 // zp[2]:6 22.0 +unsigned int *main::$11 // zp[2]:4 22.0 +unsigned int main::$2 // zp[2]:6 11.0 +unsigned int main::$3 // zp[2]:6 7.333333333333333 +unsigned int main::$6 // zp[2]:8 11.0 +unsigned int main::$7 // zp[2]:6 11.0 +unsigned int main::$8 // zp[2]:4 22.0 +unsigned int *main::$9 // zp[2]:8 11.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 5.5 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 main::$8 main::$11 ] @@ -462,7 +462,7 @@ Score: 2263 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -482,11 +482,11 @@ main: { sta fibs sta fibs+1 // fibs[1] = 1 - // [1] *(fibs+1*SIZEOF_WORD) = 1 -- _deref_pwuc1=vbuc2 + // [1] *(fibs+1*SIZEOF_UNSIGNED_INT) = 1 -- _deref_pwuc1=vbuc2 lda #<1 - sta fibs+1*SIZEOF_WORD + sta fibs+1*SIZEOF_UNSIGNED_INT lda #>1 - sta fibs+1*SIZEOF_WORD+1 + sta fibs+1*SIZEOF_UNSIGNED_INT+1 // [2] phi from main to main::@1 [phi:main->main::@1] // [2] phi main::i#2 = 0 [phi:main->main::@1#0] -- vwuz1=vwuc1 sta.z i diff --git a/src/test/ref/index-pointer-rewrite-7.sym b/src/test/ref/index-pointer-rewrite-7.sym index 62309eeb2..340226a82 100644 --- a/src/test/ref/index-pointer-rewrite-7.sym +++ b/src/test/ref/index-pointer-rewrite-7.sym @@ -1,18 +1,18 @@ -constant byte SIZEOF_WORD = 2 -constant word* fibs[$19] = { fill( $19, 0) } +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant unsigned int fibs[$19] = { fill( $19, 0) } void main() -word~ main::$1 zp[2]:4 3.142857142857143 -word*~ main::$10 zp[2]:6 22.0 -word*~ main::$11 zp[2]:4 22.0 -word~ main::$2 zp[2]:6 11.0 -word~ main::$3 zp[2]:6 7.333333333333333 -word~ main::$6 zp[2]:8 11.0 -word~ main::$7 zp[2]:6 11.0 -word~ main::$8 zp[2]:4 22.0 -word*~ main::$9 zp[2]:8 11.0 -word main::i -word main::i#1 i zp[2]:2 22.0 -word main::i#2 i zp[2]:2 5.5 +unsigned int main::$1 // zp[2]:4 3.142857142857143 +unsigned int *main::$10 // zp[2]:6 22.0 +unsigned int *main::$11 // zp[2]:4 22.0 +unsigned int main::$2 // zp[2]:6 11.0 +unsigned int main::$3 // zp[2]:6 7.333333333333333 +unsigned int main::$6 // zp[2]:8 11.0 +unsigned int main::$7 // zp[2]:6 11.0 +unsigned int main::$8 // zp[2]:4 22.0 +unsigned int *main::$9 // zp[2]:8 11.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 22.0 +unsigned int main::i#2 // i zp[2]:2 5.5 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 main::$8 main::$11 ] diff --git a/src/test/ref/index-pointer-rewrite-8.cfg b/src/test/ref/index-pointer-rewrite-8.cfg index 687b7ba5d..e43541506 100644 --- a/src/test/ref/index-pointer-rewrite-8.cfg +++ b/src/test/ref/index-pointer-rewrite-8.cfg @@ -13,8 +13,8 @@ main::@return: scope:[main] from main::@1 main::@2: scope:[main] from main::@1 [4] main::$4 = main::i#2 << 1 [5] main::$2 = main::$4 + main::i#2 - [6] ((byte*)balls)[main::$2] = ((byte*)balls)[main::$2] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] - [7] ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a - [8] ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' + [6] ((char *)balls)[main::$2] = ((char *)balls)[main::$2] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + [7] ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a + [8] ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' [9] main::i#1 = ++ main::i#2 to:main::@1 diff --git a/src/test/ref/index-pointer-rewrite-8.log b/src/test/ref/index-pointer-rewrite-8.log index 777a96e8a..83c606335 100644 --- a/src/test/ref/index-pointer-rewrite-8.log +++ b/src/test/ref/index-pointer-rewrite-8.log @@ -13,11 +13,11 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::$1 = main::i#3 * SIZEOF_STRUCT_BALL - ((byte*)balls+OFFSET_STRUCT_BALL_POS)[main::$1] = ((byte*)balls+OFFSET_STRUCT_BALL_POS)[main::$1] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$1] + ((char *)balls+OFFSET_STRUCT_BALL_POS)[main::$1] = ((char *)balls+OFFSET_STRUCT_BALL_POS)[main::$1] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$1] main::$2 = main::i#3 * SIZEOF_STRUCT_BALL - ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a main::$3 = main::i#3 * SIZEOF_STRUCT_BALL - ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$3] = '*' + ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$3] = '*' main::i#1 = ++ main::i#3 to:main::@1 main::@return: scope:[main] from main::@1 @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -35,31 +35,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_BALL_POS = 0 -constant byte OFFSET_STRUCT_BALL_SYM = 2 -constant byte OFFSET_STRUCT_BALL_VEL = 1 -constant byte SIZEOF_STRUCT_BALL = 3 +__constant char OFFSET_STRUCT_BALL_POS = 0 +__constant char OFFSET_STRUCT_BALL_SYM = 2 +__constant char OFFSET_STRUCT_BALL_VEL = 1 +__constant char SIZEOF_STRUCT_BALL = 3 void __start() -constant struct Ball* balls[$19] = { fill( $19, 0) } +__constant struct Ball balls[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $19 in main::$0 = main::i#2 < $19 -Adding number conversion cast (unumber) $a in ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a +Adding number conversion cast (unumber) $a in ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -70,8 +70,8 @@ Simple Condition main::$0 [3] if(main::i#2<$19) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)balls in [5] ((byte*)balls+OFFSET_STRUCT_BALL_POS)[main::$1] = ((byte*)balls+OFFSET_STRUCT_BALL_POS)[main::$1] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$1] -Simplifying expression containing zero (byte*)balls in [5] ((byte*)balls+OFFSET_STRUCT_BALL_POS)[main::$1] = ((byte*)balls)[main::$1] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$1] +Simplifying expression containing zero (char *)balls in [5] ((char *)balls+OFFSET_STRUCT_BALL_POS)[main::$1] = ((char *)balls+OFFSET_STRUCT_BALL_POS)[main::$1] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$1] +Simplifying expression containing zero (char *)balls in [5] ((char *)balls+OFFSET_STRUCT_BALL_POS)[main::$1] = ((char *)balls)[main::$1] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$1] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_BALL_POS Successful SSA optimization PassNEliminateUnusedVars @@ -90,8 +90,8 @@ Alias main::$2 = main::$5 Successful SSA optimization Pass2AliasElimination Eliminating unused constant SIZEOF_STRUCT_BALL Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -117,20 +117,20 @@ main::@return: scope:[main] from main::@1 main::@2: scope:[main] from main::@1 [4] main::$4 = main::i#2 << 1 [5] main::$2 = main::$4 + main::i#2 - [6] ((byte*)balls)[main::$2] = ((byte*)balls)[main::$2] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] - [7] ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a - [8] ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' + [6] ((char *)balls)[main::$2] = ((char *)balls)[main::$2] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + [7] ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a + [8] ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' [9] main::i#1 = ++ main::i#2 to:main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 25.666666666666668 -byte~ main::$4 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 7.857142857142857 +char main::$2 // 25.666666666666668 +char main::$4 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 7.857142857142857 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -147,15 +147,15 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] main::$4 = main::i#2 << 1 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [5] main::$2 = main::$4 + main::i#2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [6] ((byte*)balls)[main::$2] = ((byte*)balls)[main::$2] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [6] ((char *)balls)[main::$2] = ((char *)balls)[main::$2] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$2 ] -Statement [7] ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [8] ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [7] ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [8] ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [4] main::$4 = main::i#2 << 1 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a Statement [5] main::$2 = main::$4 + main::i#2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [6] ((byte*)balls)[main::$2] = ((byte*)balls)[main::$2] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [7] ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [8] ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [6] ((char *)balls)[main::$2] = ((char *)balls)[main::$2] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [7] ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [8] ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$4 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$2 ] : zp[1]:4 , reg byte x , reg byte y , @@ -213,17 +213,17 @@ main: { clc adc.z $ff tax - // [6] ((byte*)balls)[main::$2] = ((byte*)balls)[main::$2] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx + // [6] ((char *)balls)[main::$2] = ((char *)balls)[main::$2] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx lda balls,x clc adc balls+OFFSET_STRUCT_BALL_VEL,x sta balls,x - // [7] ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_vbuc2 + // [7] ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_vbuc2 lda #$a clc adc balls+OFFSET_STRUCT_BALL_VEL,x sta balls+OFFSET_STRUCT_BALL_VEL,x - // [8] ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 + // [8] ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'*' sta balls+OFFSET_STRUCT_BALL_SYM,x // [9] main::i#1 = ++ main::i#2 -- vbuyy=_inc_vbuyy @@ -247,15 +247,15 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_BALL_SYM = 2 -constant byte OFFSET_STRUCT_BALL_VEL = 1 -constant struct Ball* balls[$19] = { fill( $19, 0) } +__constant char OFFSET_STRUCT_BALL_SYM = 2 +__constant char OFFSET_STRUCT_BALL_VEL = 1 +__constant struct Ball balls[$19] = { fill( $19, 0) } void main() -byte~ main::$2 reg byte x 25.666666666666668 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte y 22.0 -byte main::i#2 reg byte y 7.857142857142857 +char main::$2 // reg byte x 25.666666666666668 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte y 22.0 +char main::i#2 // reg byte y 7.857142857142857 reg byte y [ main::i#2 main::i#1 ] reg byte a [ main::$4 ] @@ -307,19 +307,19 @@ main: { clc adc.z $ff tax - // [6] ((byte*)balls)[main::$2] = ((byte*)balls)[main::$2] + ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx + // [6] ((char *)balls)[main::$2] = ((char *)balls)[main::$2] + ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx lda balls,x clc adc balls+OFFSET_STRUCT_BALL_VEL,x sta balls,x // balls[i].vel += 10 - // [7] ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((byte*)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_vbuc2 + // [7] ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] = ((char *)balls+OFFSET_STRUCT_BALL_VEL)[main::$2] + $a -- pbuc1_derefidx_vbuxx=pbuc1_derefidx_vbuxx_plus_vbuc2 lda #$a clc adc balls+OFFSET_STRUCT_BALL_VEL,x sta balls+OFFSET_STRUCT_BALL_VEL,x // balls[i].sym ='*' - // [8] ((byte*)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 + // [8] ((char *)balls+OFFSET_STRUCT_BALL_SYM)[main::$2] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'*' sta balls+OFFSET_STRUCT_BALL_SYM,x // for(char i=0;i $27 main::$3 = ! main::$2 if(main::$3) goto main::@7 @@ -43,7 +43,7 @@ main::@6: scope:[main] from main::@4 main::@7: scope:[main] from main::@5 main::@8 main::line#3 = phi( main::@5/main::line#2, main::@8/main::line#5 ) main::i#4 = phi( main::@5/main::i#3, main::@8/main::i#5 ) - main::$7 = main::i#4 * SIZEOF_WORD + main::$7 = main::i#4 * SIZEOF_UNSIGNED_INT main::line#3[entities[main::$7]] = '*' main::line#1 = main::line#3 + $28 main::i#1 = ++ main::i#4 @@ -51,7 +51,7 @@ main::@7: scope:[main] from main::@5 main::@8 main::@8: scope:[main] from main::@5 main::line#5 = phi( main::@5/main::line#2 ) main::i#5 = phi( main::@5/main::i#3 ) - main::$8 = main::i#5 * SIZEOF_WORD + main::$8 = main::i#5 * SIZEOF_UNSIGNED_INT entities[main::$8] = 0 to:main::@7 main::@return: scope:[main] from main::@1 @@ -60,7 +60,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -69,38 +69,38 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_WORD = 2 -constant byte* const VICII_BG_COLOR = (byte*)$d020 -constant byte* const VICII_RASTER = (byte*)$d012 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char * const VICII_BG_COLOR = (char *)$d020 +__constant char * const VICII_RASTER = (char *)$d012 void __start() -constant word* entities[$19] = { fill( $19, 0) } +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$10 -bool~ main::$2 -bool~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -byte~ main::$7 -byte~ main::$8 -byte~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte* main::line -byte* main::line#0 -byte* main::line#1 -byte* main::line#2 -byte* main::line#3 -byte* main::line#4 -byte* main::line#5 +bool main::$0 +bool main::$1 +bool main::$10 +bool main::$2 +bool main::$3 +char main::$4 +char main::$5 +char main::$6 +char main::$7 +char main::$8 +char main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char *main::line +char *main::line#0 +char *main::line#1 +char *main::line#2 +char *main::line#3 +char *main::line#4 +char *main::line#5 Adding number conversion cast (unumber) $ff in main::$0 = *VICII_RASTER != $ff Adding number conversion cast (unumber) 0 in *VICII_BG_COLOR = 0 @@ -115,9 +115,9 @@ Inlining cast *VICII_BG_COLOR = (unumber)0 Inlining cast *VICII_BG_COLOR = (unumber)$f Inlining cast entities[main::$8] = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Simplifying constant integer cast $19 @@ -127,14 +127,14 @@ Simplifying constant integer cast $f Simplifying constant integer cast $28 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $27 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $27 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [19] main::$3 = entities[main::$6] <= $27 from [18] main::$2 = entities[main::$6] > $27 Successful SSA optimization Pass2UnaryNotSimplification @@ -144,8 +144,8 @@ Successful SSA optimization Pass2AliasElimination Alias main::i#2 = main::i#4 Alias main::line#2 = main::line#3 Successful SSA optimization Pass2AliasElimination -Identified duplicate assignment right side [15] main::$5 = main::i#2 * SIZEOF_WORD -Identified duplicate assignment right side [17] main::$6 = main::i#2 * SIZEOF_WORD +Identified duplicate assignment right side [15] main::$5 = main::i#2 * SIZEOF_UNSIGNED_INT +Identified duplicate assignment right side [17] main::$6 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$10 [2] if(0!=1) goto main::@2 Simple Condition main::$0 [4] if(*VICII_RASTER!=$ff) goto main::@2 @@ -173,13 +173,13 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $27+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$5 = main::$4 main::$6 Successful SSA optimization Pass2AliasElimination -Rewriting multiplication to use shift [5] main::$5 = main::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [11] main::$7 = main::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [16] main::$8 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [5] main::$5 = main::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [11] main::$7 = main::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [16] main::$8 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::line#0 Inlining constant with var siblings main::i#0 @@ -189,12 +189,12 @@ Successful SSA optimization Pass2ConstantInlining Identified duplicate assignment right side [11] main::$7 = main::i#2 << 1 Identified duplicate assignment right side [16] main::$8 = main::i#2 << 1 Successful SSA optimization Pass2DuplicateRValueIdentification -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Alias main::$7 = main::$5 main::$8 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@1 CALL GRAPH @@ -234,7 +234,7 @@ main::@5: scope:[main] from main::@3 to:main::@1 main::@4: scope:[main] from main::@3 [6] main::$7 = main::i#2 << 1 - [7] main::$9 = (byte)entities[main::$7] + [7] main::$9 = (char)entities[main::$7] [8] main::line#2[main::$9] = ' ' [9] entities[main::$7] = entities[main::$7] + 1 [10] if(entities[main::$7]<$27+1) goto main::@6 @@ -252,15 +252,15 @@ main::@6: scope:[main] from main::@4 main::@7 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$11 202.0 -byte~ main::$7 100.99999999999999 -byte~ main::$9 202.0 -byte main::i -byte main::i#1 202.0 -byte main::i#2 36.72727272727273 -byte* main::line -byte* main::line#1 101.0 -byte* main::line#2 40.4 +char *main::$11 // 202.0 +char main::$7 // 100.99999999999999 +char main::$9 // 202.0 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 36.72727272727273 +char *main::line +char *main::line#1 // 101.0 +char *main::line#2 // 40.4 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -285,7 +285,7 @@ Statement [2] *VICII_BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *VICII_BG_COLOR = $f [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] main::$7 = main::i#2 << 1 [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [7] main::$9 = (byte)entities[main::$7] [ main::i#2 main::line#2 main::$7 main::$9 ] ( [ main::i#2 main::line#2 main::$7 main::$9 ] { } ) always clobbers reg byte a +Statement [7] main::$9 = (char)entities[main::$7] [ main::i#2 main::line#2 main::$7 main::$9 ] ( [ main::i#2 main::line#2 main::$7 main::$9 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::$7 ] Statement [8] main::line#2[main::$9] = ' ' [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a Statement [10] if(entities[main::$7]<$27+1) goto main::@6 [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a @@ -298,7 +298,7 @@ Statement [1] if(*VICII_RASTER!=$ff) goto main::@1 [ ] ( [ ] { } ) always clob Statement [2] *VICII_BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *VICII_BG_COLOR = $f [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] main::$7 = main::i#2 << 1 [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a -Statement [7] main::$9 = (byte)entities[main::$7] [ main::i#2 main::line#2 main::$7 main::$9 ] ( [ main::i#2 main::line#2 main::$7 main::$9 ] { } ) always clobbers reg byte a +Statement [7] main::$9 = (char)entities[main::$7] [ main::i#2 main::line#2 main::$7 main::$9 ] ( [ main::i#2 main::line#2 main::$7 main::$9 ] { } ) always clobbers reg byte a Statement [8] main::line#2[main::$9] = ' ' [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a Statement [10] if(entities[main::$7]<$27+1) goto main::@6 [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a Statement [11] entities[main::$7] = 0 [ main::i#2 main::line#2 main::$7 ] ( [ main::i#2 main::line#2 main::$7 ] { } ) always clobbers reg byte a @@ -390,7 +390,7 @@ main: { lda.z i asl tax - // [7] main::$9 = (byte)entities[main::$7] -- vbuaa=_byte_pwuc1_derefidx_vbuxx + // [7] main::$9 = (char)entities[main::$7] -- vbuaa=_byte_pwuc1_derefidx_vbuxx lda entities,x // [8] main::line#2[main::$9] = ' ' -- pbuz1_derefidx_vbuaa=vbuc1 // Delete old symbol @@ -473,20 +473,20 @@ Removing instruction __b3_from___b6: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* const VICII_BG_COLOR = (byte*) 53280 -constant byte* const VICII_RASTER = (byte*) 53266 -constant word* entities[$19] = { fill( $19, 0) } +__constant char * const SCREEN = (char *) 1024 +__constant char * const VICII_BG_COLOR = (char *) 53280 +__constant char * const VICII_RASTER = (char *) 53266 +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -byte*~ main::$11 zp[2]:5 202.0 -byte~ main::$7 reg byte x 100.99999999999999 -byte~ main::$9 reg byte a 202.0 -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 36.72727272727273 -byte* main::line -byte* main::line#1 line zp[2]:3 101.0 -byte* main::line#2 line zp[2]:3 40.4 +char *main::$11 // zp[2]:5 202.0 +char main::$7 // reg byte x 100.99999999999999 +char main::$9 // reg byte a 202.0 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 36.72727272727273 +char *main::line +char *main::line#1 // line zp[2]:3 101.0 +char *main::line#2 // line zp[2]:3 40.4 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::line#2 main::line#1 ] @@ -565,7 +565,7 @@ main: { lda.z i asl tax - // [7] main::$9 = (byte)entities[main::$7] -- vbuaa=_byte_pwuc1_derefidx_vbuxx + // [7] main::$9 = (char)entities[main::$7] -- vbuaa=_byte_pwuc1_derefidx_vbuxx lda entities,x // [8] main::line#2[main::$9] = ' ' -- pbuz1_derefidx_vbuaa=vbuc1 // Delete old symbol diff --git a/src/test/ref/index-sizeof-reuse-2.sym b/src/test/ref/index-sizeof-reuse-2.sym index 1069c0766..f89da296f 100644 --- a/src/test/ref/index-sizeof-reuse-2.sym +++ b/src/test/ref/index-sizeof-reuse-2.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte* const VICII_BG_COLOR = (byte*) 53280 -constant byte* const VICII_RASTER = (byte*) 53266 -constant word* entities[$19] = { fill( $19, 0) } +__constant char * const SCREEN = (char *) 1024 +__constant char * const VICII_BG_COLOR = (char *) 53280 +__constant char * const VICII_RASTER = (char *) 53266 +__constant unsigned int entities[$19] = { fill( $19, 0) } void main() -byte*~ main::$11 zp[2]:5 202.0 -byte~ main::$7 reg byte x 100.99999999999999 -byte~ main::$9 reg byte a 202.0 -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 36.72727272727273 -byte* main::line -byte* main::line#1 line zp[2]:3 101.0 -byte* main::line#2 line zp[2]:3 40.4 +char *main::$11 // zp[2]:5 202.0 +char main::$7 // reg byte x 100.99999999999999 +char main::$9 // reg byte a 202.0 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 36.72727272727273 +char *main::line +char *main::line#1 // line zp[2]:3 101.0 +char *main::line#2 // line zp[2]:3 40.4 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::line#2 main::line#1 ] diff --git a/src/test/ref/index-sizeof-reuse.cfg b/src/test/ref/index-sizeof-reuse.cfg index 95eb29e23..111c23fa1 100644 --- a/src/test/ref/index-sizeof-reuse.cfg +++ b/src/test/ref/index-sizeof-reuse.cfg @@ -25,29 +25,29 @@ main::@7: scope:[main] from main::@5 main::@6: scope:[main] from main::@5 [8] main::$25 = main::i1#2 << 1 [9] main::$16 = main::$25 + main::i1#2 - [10] main::line#2[((signed byte*)entities)[main::$16]] = ' ' - [11] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] - [12] if(((signed byte*)entities)[main::$16]<0) goto main::@9 + [10] main::line#2[((signed char *)entities)[main::$16]] = ' ' + [11] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] + [12] if(((signed char *)entities)[main::$16]<0) goto main::@9 to:main::@10 main::@10: scope:[main] from main::@6 - [13] if(((signed byte*)entities)[main::$16]<$27+1) goto main::@8 + [13] if(((signed char *)entities)[main::$16]<$27+1) goto main::@8 to:main::@9 main::@9: scope:[main] from main::@10 main::@6 - [14] main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] - [15] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 - [16] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] + [14] main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] + [15] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 + [16] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] to:main::@8 main::@8: scope:[main] from main::@10 main::@9 - [17] main::line#2[((signed byte*)entities)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] + [17] main::line#2[((signed char *)entities)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] [18] main::line#1 = main::line#2 + $28 [19] main::i1#1 = ++ main::i1#2 to:main::@5 main::@2: scope:[main] from main::@1 [20] main::$21 = main::i#2 << 1 [21] main::$10 = main::$21 + main::i#2 - [22] ((signed byte*)entities)[main::$10] = (signed byte)main::i#2 - [23] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 - [24] ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 + [22] ((signed char *)entities)[main::$10] = (signed char)main::i#2 + [23] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 + [24] ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 [25] main::v#1 = - main::v#2 [26] main::i#1 = ++ main::i#2 to:main::@1 diff --git a/src/test/ref/index-sizeof-reuse.log b/src/test/ref/index-sizeof-reuse.log index cea2bdcad..7d1fdb0ea 100644 --- a/src/test/ref/index-sizeof-reuse.log +++ b/src/test/ref/index-sizeof-reuse.log @@ -17,11 +17,11 @@ main::@2: scope:[main] from main::@1 main::v#2 = phi( main::@1/main::v#3 ) main::i#3 = phi( main::@1/main::i#2 ) main::$9 = main::i#3 * SIZEOF_STRUCT_ENTITY - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$9] = (signed byte)main::i#3 + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$9] = (signed char)main::i#3 main::$10 = main::i#3 * SIZEOF_STRUCT_ENTITY - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 main::$11 = main::i#3 * SIZEOF_STRUCT_ENTITY - ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$11] = main::i#3 + ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$11] = main::i#3 main::$1 = - main::v#2 main::v#1 = main::$1 main::i#1 = ++ main::i#3 @@ -49,13 +49,13 @@ main::@7: scope:[main] from main::@6 main::line#2 = phi( main::@6/main::line#4 ) main::i1#3 = phi( main::@6/main::i1#2 ) main::$12 = main::i1#3 * SIZEOF_STRUCT_ENTITY - main::line#2[((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$12]] = ' ' + main::line#2[((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$12]] = ' ' main::$13 = main::i1#3 * SIZEOF_STRUCT_ENTITY - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$13] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$13] main::$14 = main::i1#3 * SIZEOF_STRUCT_ENTITY - main::$4 = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$14] < 0 + main::$4 = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$14] < 0 main::$15 = main::i1#3 * SIZEOF_STRUCT_ENTITY - main::$5 = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$15] > $27 + main::$5 = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$15] > $27 main::$6 = main::$4 || main::$5 main::$7 = ! main::$6 if(main::$7) goto main::@9 @@ -67,7 +67,7 @@ main::@9: scope:[main] from main::@10 main::@7 main::line#3 = phi( main::@10/main::line#5, main::@7/main::line#2 ) main::i1#4 = phi( main::@10/main::i1#5, main::@7/main::i1#3 ) main::$16 = main::i1#4 * SIZEOF_STRUCT_ENTITY - main::line#3[((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] + main::line#3[((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] main::line#1 = main::line#3 + $28 main::i1#1 = ++ main::i1#4 to:main::@6 @@ -75,11 +75,11 @@ main::@10: scope:[main] from main::@7 main::line#5 = phi( main::@7/main::line#2 ) main::i1#5 = phi( main::@7/main::i1#3 ) main::$17 = main::i1#5 * SIZEOF_STRUCT_ENTITY - main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$17] + main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$17] main::$18 = main::i1#5 * SIZEOF_STRUCT_ENTITY - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$18] = main::$8 + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$18] = main::$8 main::$19 = main::i1#5 * SIZEOF_STRUCT_ENTITY - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$19] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$19] to:main::@9 main::@return: scope:[main] from main::@3 return @@ -87,7 +87,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -96,77 +96,77 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_ENTITY_SYMBOL = 2 -constant byte OFFSET_STRUCT_ENTITY_X_POS = 0 -constant byte OFFSET_STRUCT_ENTITY_X_VEL = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_ENTITY = 3 -constant byte* const VICII_BG_COLOR = (byte*)$d020 -constant byte* const VICII_RASTER = (byte*)$d012 +__constant char OFFSET_STRUCT_ENTITY_SYMBOL = 2 +__constant char OFFSET_STRUCT_ENTITY_X_POS = 0 +__constant char OFFSET_STRUCT_ENTITY_X_VEL = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_ENTITY = 3 +__constant char * const VICII_BG_COLOR = (char *)$d020 +__constant char * const VICII_RASTER = (char *)$d012 void __start() -constant struct Entity* entities[$19] = { fill( $19, 0) } +__constant struct Entity entities[$19] = { fill( $19, 0) } void main() -bool~ main::$0 -signed byte~ main::$1 -byte~ main::$10 -byte~ main::$11 -byte~ main::$12 -byte~ main::$13 -byte~ main::$14 -byte~ main::$15 -byte~ main::$16 -byte~ main::$17 -byte~ main::$18 -byte~ main::$19 -bool~ main::$2 -bool~ main::$20 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -signed byte~ main::$8 -byte~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::i1#3 -byte main::i1#4 -byte main::i1#5 -byte* main::line -byte* main::line#0 -byte* main::line#1 -byte* main::line#2 -byte* main::line#3 -byte* main::line#4 -byte* main::line#5 -signed byte main::v -signed byte main::v#0 -signed byte main::v#1 -signed byte main::v#2 -signed byte main::v#3 +bool main::$0 +signed char main::$1 +char main::$10 +char main::$11 +char main::$12 +char main::$13 +char main::$14 +char main::$15 +char main::$16 +char main::$17 +char main::$18 +char main::$19 +bool main::$2 +bool main::$20 +bool main::$3 +bool main::$4 +bool main::$5 +bool main::$6 +bool main::$7 +signed char main::$8 +char main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::i1#3 +char main::i1#4 +char main::i1#5 +char *main::line +char *main::line#0 +char *main::line#1 +char *main::line#2 +char *main::line#3 +char *main::line#4 +char *main::line#5 +signed char main::v +signed char main::v#0 +signed char main::v#1 +signed char main::v#2 +signed char main::v#3 Adding number conversion cast (unumber) $19 in main::$0 = main::i#2 < $19 Adding number conversion cast (unumber) $ff in main::$2 = *VICII_RASTER != $ff Adding number conversion cast (unumber) 0 in *VICII_BG_COLOR = 0 Adding number conversion cast (unumber) $19 in main::$3 = main::i1#2 < $19 -Adding number conversion cast (snumber) 0 in main::$4 = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$14] < 0 -Adding number conversion cast (snumber) $27 in main::$5 = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$15] > $27 +Adding number conversion cast (snumber) 0 in main::$4 = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$14] < 0 +Adding number conversion cast (snumber) $27 in main::$5 = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$15] > $27 Adding number conversion cast (unumber) $f in *VICII_BG_COLOR = $f Adding number conversion cast (unumber) $28 in main::line#1 = main::line#3 + $28 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *VICII_BG_COLOR = (unumber)0 Inlining cast *VICII_BG_COLOR = (unumber)$f Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $19 Simplifying constant integer cast $ff Simplifying constant integer cast 0 @@ -176,14 +176,14 @@ Simplifying constant integer cast $27 Simplifying constant integer cast $f Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) $27 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) $27 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias main::v#2 = main::v#3 @@ -217,15 +217,15 @@ Constant main::i1#0 = 0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [15] if(0!=1) goto main::@4 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero (signed byte*)entities in [7] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$9] = (signed byte)main::i#2 -Simplifying expression containing zero (signed byte*)entities in [25] main::line#2[((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$12]] = ' ' -Simplifying expression containing zero (signed byte*)entities in [27] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$13] -Simplifying expression containing zero (signed byte*)entities in [27] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] = ((signed byte*)entities)[main::$13] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$13] -Simplifying expression containing zero (signed byte*)entities in [29] main::$4 = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$14] < 0 -Simplifying expression containing zero (signed byte*)entities in [31] main::$5 = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$15] > $27 -Simplifying expression containing zero (signed byte*)entities in [37] main::line#2[((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] -Simplifying expression containing zero (signed byte*)entities in [45] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] = ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$19] -Simplifying expression containing zero (signed byte*)entities in [45] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] = ((signed byte*)entities)[main::$19] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$19] +Simplifying expression containing zero (signed char *)entities in [7] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$9] = (signed char)main::i#2 +Simplifying expression containing zero (signed char *)entities in [25] main::line#2[((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$12]] = ' ' +Simplifying expression containing zero (signed char *)entities in [27] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$13] +Simplifying expression containing zero (signed char *)entities in [27] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$13] = ((signed char *)entities)[main::$13] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$13] +Simplifying expression containing zero (signed char *)entities in [29] main::$4 = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$14] < 0 +Simplifying expression containing zero (signed char *)entities in [31] main::$5 = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$15] > $27 +Simplifying expression containing zero (signed char *)entities in [37] main::line#2[((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] +Simplifying expression containing zero (signed char *)entities in [45] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] = ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$19] +Simplifying expression containing zero (signed char *)entities in [45] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_POS)[main::$19] = ((signed char *)entities)[main::$19] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$19] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -240,19 +240,19 @@ Alias main::$10 = main::$9 main::$11 Alias main::$13 = main::$12 main::$14 main::$15 Alias main::$18 = main::$17 main::$19 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$4 [18] if(((signed byte*)entities)[main::$13]<0) goto main::@10 -Simple Condition main::$5 [28] if(((signed byte*)entities)[main::$13]>$27) goto main::@10 +Simple Condition main::$4 [18] if(((signed char *)entities)[main::$13]<0) goto main::@10 +Simple Condition main::$5 [28] if(((signed char *)entities)[main::$13]>$27) goto main::@10 Successful SSA optimization Pass2ConditionalJumpSimplification -Negating conditional jump and destination [28] if(((signed byte*)entities)[main::$13]<=$27) goto main::@9 +Negating conditional jump and destination [28] if(((signed char *)entities)[main::$13]<=$27) goto main::@9 Successful SSA optimization Pass2ConditionalJumpSequenceImprovement -Rewriting conditional comparison [28] if(((signed byte*)entities)[main::$13]<=$27) goto main::@9 -Adding number conversion cast (snumber) $27+1 in if(((signed byte*)entities)[main::$13]<$27+1) goto main::@9 -Adding number conversion cast (snumber) 1 in if(((signed byte*)entities)[main::$13]<(snumber)$27+1) goto main::@9 +Rewriting conditional comparison [28] if(((signed char *)entities)[main::$13]<=$27) goto main::@9 +Adding number conversion cast (snumber) $27+1 in if(((signed char *)entities)[main::$13]<$27+1) goto main::@9 +Adding number conversion cast (snumber) 1 in if(((signed char *)entities)[main::$13]<(snumber)$27+1) goto main::@9 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $27+(snumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 1 +Finalized signed number type (signed char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[3] main::$10 = main::i#2 * SIZEOF_STRUCT_ENTITY Rewriting multiplication to use shift and addition[13] main::$13 = main::i1#2 * SIZEOF_STRUCT_ENTITY @@ -284,8 +284,8 @@ Identified duplicate assignment right side [26] main::$18 = main::$25 + main::i1 Successful SSA optimization Pass2DuplicateRValueIdentification Alias main::$16 = main::$13 main::$18 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@3 CALL GRAPH @@ -334,29 +334,29 @@ main::@7: scope:[main] from main::@5 main::@6: scope:[main] from main::@5 [8] main::$25 = main::i1#2 << 1 [9] main::$16 = main::$25 + main::i1#2 - [10] main::line#2[((signed byte*)entities)[main::$16]] = ' ' - [11] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] - [12] if(((signed byte*)entities)[main::$16]<0) goto main::@9 + [10] main::line#2[((signed char *)entities)[main::$16]] = ' ' + [11] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] + [12] if(((signed char *)entities)[main::$16]<0) goto main::@9 to:main::@10 main::@10: scope:[main] from main::@6 - [13] if(((signed byte*)entities)[main::$16]<$27+1) goto main::@8 + [13] if(((signed char *)entities)[main::$16]<$27+1) goto main::@8 to:main::@9 main::@9: scope:[main] from main::@10 main::@6 - [14] main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] - [15] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 - [16] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] + [14] main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] + [15] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 + [16] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] to:main::@8 main::@8: scope:[main] from main::@10 main::@9 - [17] main::line#2[((signed byte*)entities)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] + [17] main::line#2[((signed char *)entities)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] [18] main::line#1 = main::line#2 + $28 [19] main::i1#1 = ++ main::i1#2 to:main::@5 main::@2: scope:[main] from main::@1 [20] main::$21 = main::i#2 << 1 [21] main::$10 = main::$21 + main::i#2 - [22] ((signed byte*)entities)[main::$10] = (signed byte)main::i#2 - [23] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 - [24] ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 + [22] ((signed char *)entities)[main::$10] = (signed char)main::i#2 + [23] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 + [24] ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 [25] main::v#1 = - main::v#2 [26] main::i#1 = ++ main::i#2 to:main::@1 @@ -364,23 +364,23 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$10 14.666666666666666 -byte~ main::$16 176.75 -byte~ main::$21 22.0 -byte~ main::$25 202.0 -signed byte~ main::$8 202.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 8.25 -byte main::i1 -byte main::i1#1 202.0 -byte main::i1#2 38.84615384615385 -byte* main::line -byte* main::line#1 101.0 -byte* main::line#2 33.666666666666664 -signed byte main::v -signed byte main::v#1 11.0 -signed byte main::v#2 4.714285714285714 +char main::$10 // 14.666666666666666 +char main::$16 // 176.75 +char main::$21 // 22.0 +char main::$25 // 202.0 +signed char main::$8 // 202.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 8.25 +char main::i1 +char main::i1#1 // 202.0 +char main::i1#2 // 38.84615384615385 +char *main::line +char *main::line#1 // 101.0 +char *main::line#2 // 33.666666666666664 +signed char main::v +signed char main::v#1 // 11.0 +signed char main::v#2 // 4.714285714285714 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -418,44 +418,44 @@ Statement [7] *VICII_BG_COLOR = $f [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] main::$25 = main::i1#2 << 1 [ main::i1#2 main::line#2 main::$25 ] ( [ main::i1#2 main::line#2 main::$25 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i1#2 main::i1#1 ] Statement [9] main::$16 = main::$25 + main::i1#2 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [10] main::line#2[((signed byte*)entities)[main::$16]] = ' ' [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a reg byte y +Statement [10] main::line#2[((signed char *)entities)[main::$16]] = ' ' [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::i1#2 main::i1#1 ] Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::$16 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ main::$16 ] -Statement [11] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [12] if(((signed byte*)entities)[main::$16]<0) goto main::@9 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [13] if(((signed byte*)entities)[main::$16]<$27+1) goto main::@8 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [14] main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 main::$8 ] ( [ main::i1#2 main::line#2 main::$16 main::$8 ] { } ) always clobbers reg byte a -Statement [16] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [17] main::line#2[((signed byte*)entities)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] [ main::i1#2 main::line#2 ] ( [ main::i1#2 main::line#2 ] { } ) always clobbers reg byte a reg byte y +Statement [11] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [12] if(((signed char *)entities)[main::$16]<0) goto main::@9 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [13] if(((signed char *)entities)[main::$16]<$27+1) goto main::@8 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [14] main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 main::$8 ] ( [ main::i1#2 main::line#2 main::$16 main::$8 ] { } ) always clobbers reg byte a +Statement [16] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [17] main::line#2[((signed char *)entities)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] [ main::i1#2 main::line#2 ] ( [ main::i1#2 main::line#2 ] { } ) always clobbers reg byte a reg byte y Statement [18] main::line#1 = main::line#2 + $28 [ main::i1#2 main::line#1 ] ( [ main::i1#2 main::line#1 ] { } ) always clobbers reg byte a Statement [20] main::$21 = main::i#2 << 1 [ main::i#2 main::v#2 main::$21 ] ( [ main::i#2 main::v#2 main::$21 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::v#2 main::v#1 ] Statement [21] main::$10 = main::$21 + main::i#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a -Statement [22] ((signed byte*)entities)[main::$10] = (signed byte)main::i#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a +Statement [22] ((signed char *)entities)[main::$10] = (signed char)main::i#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ main::$10 ] -Statement [23] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a -Statement [24] ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 [ main::i#2 main::v#2 ] ( [ main::i#2 main::v#2 ] { } ) always clobbers reg byte a +Statement [23] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a +Statement [24] ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 [ main::i#2 main::v#2 ] ( [ main::i#2 main::v#2 ] { } ) always clobbers reg byte a Statement [25] main::v#1 = - main::v#2 [ main::i#2 main::v#1 ] ( [ main::i#2 main::v#1 ] { } ) always clobbers reg byte a Statement [3] if(*VICII_RASTER!=$ff) goto main::@3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] *VICII_BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *VICII_BG_COLOR = $f [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] main::$25 = main::i1#2 << 1 [ main::i1#2 main::line#2 main::$25 ] ( [ main::i1#2 main::line#2 main::$25 ] { } ) always clobbers reg byte a Statement [9] main::$16 = main::$25 + main::i1#2 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [10] main::line#2[((signed byte*)entities)[main::$16]] = ' ' [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a reg byte y -Statement [11] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [12] if(((signed byte*)entities)[main::$16]<0) goto main::@9 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [13] if(((signed byte*)entities)[main::$16]<$27+1) goto main::@8 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [14] main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 main::$8 ] ( [ main::i1#2 main::line#2 main::$16 main::$8 ] { } ) always clobbers reg byte a -Statement [16] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a -Statement [17] main::line#2[((signed byte*)entities)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] [ main::i1#2 main::line#2 ] ( [ main::i1#2 main::line#2 ] { } ) always clobbers reg byte a reg byte y +Statement [10] main::line#2[((signed char *)entities)[main::$16]] = ' ' [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a reg byte y +Statement [11] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [12] if(((signed char *)entities)[main::$16]<0) goto main::@9 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [13] if(((signed char *)entities)[main::$16]<$27+1) goto main::@8 [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [14] main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 main::$8 ] ( [ main::i1#2 main::line#2 main::$16 main::$8 ] { } ) always clobbers reg byte a +Statement [16] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] [ main::i1#2 main::line#2 main::$16 ] ( [ main::i1#2 main::line#2 main::$16 ] { } ) always clobbers reg byte a +Statement [17] main::line#2[((signed char *)entities)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] [ main::i1#2 main::line#2 ] ( [ main::i1#2 main::line#2 ] { } ) always clobbers reg byte a reg byte y Statement [18] main::line#1 = main::line#2 + $28 [ main::i1#2 main::line#1 ] ( [ main::i1#2 main::line#1 ] { } ) always clobbers reg byte a Statement [20] main::$21 = main::i#2 << 1 [ main::i#2 main::v#2 main::$21 ] ( [ main::i#2 main::v#2 main::$21 ] { } ) always clobbers reg byte a Statement [21] main::$10 = main::$21 + main::i#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a -Statement [22] ((signed byte*)entities)[main::$10] = (signed byte)main::i#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a -Statement [23] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a -Statement [24] ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 [ main::i#2 main::v#2 ] ( [ main::i#2 main::v#2 ] { } ) always clobbers reg byte a +Statement [22] ((signed char *)entities)[main::$10] = (signed char)main::i#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a +Statement [23] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 [ main::i#2 main::v#2 main::$10 ] ( [ main::i#2 main::v#2 main::$10 ] { } ) always clobbers reg byte a +Statement [24] ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 [ main::i#2 main::v#2 ] ( [ main::i#2 main::v#2 ] { } ) always clobbers reg byte a Statement [25] main::v#1 = - main::v#2 [ main::i#2 main::v#1 ] ( [ main::i#2 main::v#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::v#2 main::v#1 ] : zp[1]:3 , reg byte x , reg byte y , @@ -578,25 +578,25 @@ main: { clc adc.z i1 tax - // [10] main::line#2[((signed byte*)entities)[main::$16]] = ' ' -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=vbuc2 + // [10] main::line#2[((signed char *)entities)[main::$16]] = ' ' -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=vbuc2 // Delete old symbol lda #' ' ldy entities,x sta (line),y - // [11] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx + // [11] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx // Move by velocity lda entities,x clc adc entities+OFFSET_STRUCT_ENTITY_X_VEL,x sta entities,x - // [12] if(((signed byte*)entities)[main::$16]<0) goto main::@9 -- pbsc1_derefidx_vbuxx_lt_0_then_la1 + // [12] if(((signed char *)entities)[main::$16]<0) goto main::@9 -- pbsc1_derefidx_vbuxx_lt_0_then_la1 lda entities,x cmp #0 bmi __b9 jmp __b10 // main::@10 __b10: - // [13] if(((signed byte*)entities)[main::$16]<$27+1) goto main::@8 -- pbsc1_derefidx_vbuxx_lt_vbsc2_then_la1 + // [13] if(((signed char *)entities)[main::$16]<$27+1) goto main::@8 -- pbsc1_derefidx_vbuxx_lt_vbsc2_then_la1 lda entities,x sec sbc #$27+1 @@ -607,14 +607,14 @@ main: { jmp __b9 // main::@9 __b9: - // [14] main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- vbsaa=_neg_pbsc1_derefidx_vbuxx + // [14] main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- vbsaa=_neg_pbsc1_derefidx_vbuxx lda entities+OFFSET_STRUCT_ENTITY_X_VEL,x eor #$ff clc adc #1 - // [15] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 -- pbsc1_derefidx_vbuxx=vbsaa + // [15] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 -- pbsc1_derefidx_vbuxx=vbsaa sta entities+OFFSET_STRUCT_ENTITY_X_VEL,x - // [16] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx + // [16] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx lda entities,x clc adc entities+OFFSET_STRUCT_ENTITY_X_VEL,x @@ -622,7 +622,7 @@ main: { jmp __b8 // main::@8 __b8: - // [17] main::line#2[((signed byte*)entities)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=pbuc2_derefidx_vbuxx + // [17] main::line#2[((signed char *)entities)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=pbuc2_derefidx_vbuxx // Draw symbol lda entities+OFFSET_STRUCT_ENTITY_SYMBOL,x ldy entities,x @@ -653,13 +653,13 @@ main: { clc adc.z $ff tay - // [22] ((signed byte*)entities)[main::$10] = (signed byte)main::i#2 -- pbsc1_derefidx_vbuyy=vbsxx + // [22] ((signed char *)entities)[main::$10] = (signed char)main::i#2 -- pbsc1_derefidx_vbuyy=vbsxx txa sta entities,y - // [23] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 -- pbsc1_derefidx_vbuyy=vbsz1 + // [23] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 -- pbsc1_derefidx_vbuyy=vbsz1 lda.z v sta entities+OFFSET_STRUCT_ENTITY_X_VEL,y - // [24] ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [24] ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta entities+OFFSET_STRUCT_ENTITY_SYMBOL,y // [25] main::v#1 = - main::v#2 -- vbsz1=_neg_vbsz1 @@ -700,30 +700,30 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_ENTITY_SYMBOL = 2 -constant byte OFFSET_STRUCT_ENTITY_X_VEL = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const VICII_BG_COLOR = (byte*) 53280 -constant byte* const VICII_RASTER = (byte*) 53266 -constant struct Entity* entities[$19] = { fill( $19, 0) } +__constant char OFFSET_STRUCT_ENTITY_SYMBOL = 2 +__constant char OFFSET_STRUCT_ENTITY_X_VEL = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char * const VICII_BG_COLOR = (char *) 53280 +__constant char * const VICII_RASTER = (char *) 53266 +__constant struct Entity entities[$19] = { fill( $19, 0) } void main() -byte~ main::$10 reg byte y 14.666666666666666 -byte~ main::$16 reg byte x 176.75 -byte~ main::$21 reg byte a 22.0 -byte~ main::$25 reg byte a 202.0 -signed byte~ main::$8 reg byte a 202.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 8.25 -byte main::i1 -byte main::i1#1 i1 zp[1]:3 202.0 -byte main::i1#2 i1 zp[1]:3 38.84615384615385 -byte* main::line -byte* main::line#1 line zp[2]:4 101.0 -byte* main::line#2 line zp[2]:4 33.666666666666664 -signed byte main::v -signed byte main::v#1 v zp[1]:2 11.0 -signed byte main::v#2 v zp[1]:2 4.714285714285714 +char main::$10 // reg byte y 14.666666666666666 +char main::$16 // reg byte x 176.75 +char main::$21 // reg byte a 22.0 +char main::$25 // reg byte a 202.0 +signed char main::$8 // reg byte a 202.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 8.25 +char main::i1 +char main::i1#1 // i1 zp[1]:3 202.0 +char main::i1#2 // i1 zp[1]:3 38.84615384615385 +char *main::line +char *main::line#1 // line zp[2]:4 101.0 +char *main::line#2 // line zp[2]:4 33.666666666666664 +signed char main::v +signed char main::v#1 // v zp[1]:2 11.0 +signed char main::v#2 // v zp[1]:2 4.714285714285714 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::v#2 main::v#1 ] @@ -824,25 +824,25 @@ main: { clc adc.z i1 tax - // [10] main::line#2[((signed byte*)entities)[main::$16]] = ' ' -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=vbuc2 + // [10] main::line#2[((signed char *)entities)[main::$16]] = ' ' -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=vbuc2 // Delete old symbol lda #' ' ldy entities,x sta (line),y // entities[i].x_pos += entities[i].x_vel - // [11] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx + // [11] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx // Move by velocity lda entities,x clc adc entities+OFFSET_STRUCT_ENTITY_X_VEL,x sta entities,x // if(entities[i].x_pos<0 || entities[i].x_pos>39) - // [12] if(((signed byte*)entities)[main::$16]<0) goto main::@9 -- pbsc1_derefidx_vbuxx_lt_0_then_la1 + // [12] if(((signed char *)entities)[main::$16]<0) goto main::@9 -- pbsc1_derefidx_vbuxx_lt_0_then_la1 lda entities,x cmp #0 bmi __b9 // main::@10 - // [13] if(((signed byte*)entities)[main::$16]<$27+1) goto main::@8 -- pbsc1_derefidx_vbuxx_lt_vbsc2_then_la1 + // [13] if(((signed char *)entities)[main::$16]<$27+1) goto main::@8 -- pbsc1_derefidx_vbuxx_lt_vbsc2_then_la1 lda entities,x sec sbc #$27+1 @@ -853,16 +853,16 @@ main: { // main::@9 __b9: // -entities[i].x_vel - // [14] main::$8 = - ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- vbsaa=_neg_pbsc1_derefidx_vbuxx + // [14] main::$8 = - ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- vbsaa=_neg_pbsc1_derefidx_vbuxx lda entities+OFFSET_STRUCT_ENTITY_X_VEL,x eor #$ff clc adc #1 // entities[i].x_vel = -entities[i].x_vel - // [15] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 -- pbsc1_derefidx_vbuxx=vbsaa + // [15] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] = main::$8 -- pbsc1_derefidx_vbuxx=vbsaa sta entities+OFFSET_STRUCT_ENTITY_X_VEL,x // entities[i].x_pos += entities[i].x_vel - // [16] ((signed byte*)entities)[main::$16] = ((signed byte*)entities)[main::$16] + ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx + // [16] ((signed char *)entities)[main::$16] = ((signed char *)entities)[main::$16] + ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$16] -- pbsc1_derefidx_vbuxx=pbsc1_derefidx_vbuxx_plus_pbsc2_derefidx_vbuxx lda entities,x clc adc entities+OFFSET_STRUCT_ENTITY_X_VEL,x @@ -870,7 +870,7 @@ main: { // main::@8 __b8: // line[entities[i].x_pos] = entities[i].symbol - // [17] main::line#2[((signed byte*)entities)[main::$16]] = ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=pbuc2_derefidx_vbuxx + // [17] main::line#2[((signed char *)entities)[main::$16]] = ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$16] -- pbuz1_derefidx_(pbsc1_derefidx_vbuxx)=pbuc2_derefidx_vbuxx // Draw symbol lda entities+OFFSET_STRUCT_ENTITY_SYMBOL,x ldy entities,x @@ -903,15 +903,15 @@ main: { clc adc.z $ff tay - // [22] ((signed byte*)entities)[main::$10] = (signed byte)main::i#2 -- pbsc1_derefidx_vbuyy=vbsxx + // [22] ((signed char *)entities)[main::$10] = (signed char)main::i#2 -- pbsc1_derefidx_vbuyy=vbsxx txa sta entities,y // entities[i].x_vel = v - // [23] ((signed byte*)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 -- pbsc1_derefidx_vbuyy=vbsz1 + // [23] ((signed char *)entities+OFFSET_STRUCT_ENTITY_X_VEL)[main::$10] = main::v#2 -- pbsc1_derefidx_vbuyy=vbsz1 lda.z v sta entities+OFFSET_STRUCT_ENTITY_X_VEL,y // entities[i].symbol = i - // [24] ((byte*)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [24] ((char *)entities+OFFSET_STRUCT_ENTITY_SYMBOL)[main::$10] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta entities+OFFSET_STRUCT_ENTITY_SYMBOL,y // v = -v diff --git a/src/test/ref/index-sizeof-reuse.sym b/src/test/ref/index-sizeof-reuse.sym index d1e21fdf0..44010df07 100644 --- a/src/test/ref/index-sizeof-reuse.sym +++ b/src/test/ref/index-sizeof-reuse.sym @@ -1,27 +1,27 @@ -constant byte OFFSET_STRUCT_ENTITY_SYMBOL = 2 -constant byte OFFSET_STRUCT_ENTITY_X_VEL = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const VICII_BG_COLOR = (byte*) 53280 -constant byte* const VICII_RASTER = (byte*) 53266 -constant struct Entity* entities[$19] = { fill( $19, 0) } +__constant char OFFSET_STRUCT_ENTITY_SYMBOL = 2 +__constant char OFFSET_STRUCT_ENTITY_X_VEL = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char * const VICII_BG_COLOR = (char *) 53280 +__constant char * const VICII_RASTER = (char *) 53266 +__constant struct Entity entities[$19] = { fill( $19, 0) } void main() -byte~ main::$10 reg byte y 14.666666666666666 -byte~ main::$16 reg byte x 176.75 -byte~ main::$21 reg byte a 22.0 -byte~ main::$25 reg byte a 202.0 -signed byte~ main::$8 reg byte a 202.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 8.25 -byte main::i1 -byte main::i1#1 i1 zp[1]:3 202.0 -byte main::i1#2 i1 zp[1]:3 38.84615384615385 -byte* main::line -byte* main::line#1 line zp[2]:4 101.0 -byte* main::line#2 line zp[2]:4 33.666666666666664 -signed byte main::v -signed byte main::v#1 v zp[1]:2 11.0 -signed byte main::v#2 v zp[1]:2 4.714285714285714 +char main::$10 // reg byte y 14.666666666666666 +char main::$16 // reg byte x 176.75 +char main::$21 // reg byte a 22.0 +char main::$25 // reg byte a 202.0 +signed char main::$8 // reg byte a 202.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 8.25 +char main::i1 +char main::i1#1 // i1 zp[1]:3 202.0 +char main::i1#2 // i1 zp[1]:3 38.84615384615385 +char *main::line +char *main::line#1 // line zp[2]:4 101.0 +char *main::line#2 // line zp[2]:4 33.666666666666664 +signed char main::v +signed char main::v#1 // v zp[1]:2 11.0 +signed char main::v#2 // v zp[1]:2 4.714285714285714 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::v#2 main::v#1 ] diff --git a/src/test/ref/infloop-error.log b/src/test/ref/infloop-error.log index bdfc78f7c..6570b82b3 100644 --- a/src/test/ref/infloop-error.log +++ b/src/test/ref/infloop-error.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -59,7 +59,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -68,51 +68,51 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::max -byte main::max#0 -byte main::max#1 -byte main::max#2 -byte main::max#3 -byte main::max#4 -byte main::max#5 -byte main::max#6 -byte main::min -byte main::min#0 -byte main::min#1 -byte main::min#2 -byte main::min#3 -byte main::min#4 -byte main::min#5 -byte main::min#6 -byte main::pos -byte main::pos#0 -byte main::pos#1 -byte main::pos#2 -byte main::pos#3 -byte main::pos#4 -byte main::pos#5 -byte main::pos#6 -byte main::pos#7 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::max +char main::max#0 +char main::max#1 +char main::max#2 +char main::max#3 +char main::max#4 +char main::max#5 +char main::max#6 +char main::min +char main::min#0 +char main::min#1 +char main::min#2 +char main::min#3 +char main::min#4 +char main::min#5 +char main::min#6 +char main::pos +char main::pos#0 +char main::pos#1 +char main::pos#2 +char main::pos#3 +char main::pos#4 +char main::pos#5 +char main::pos#6 +char main::pos#7 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::min#3 Adding number conversion cast (unumber) 1 in SCREEN[1] = main::max#3 Adding number conversion cast (unumber) 2 in SCREEN[2] = main::pos#5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [8] main::$1 = main::pos#1 >= main::min#2 from [7] main::$0 = main::pos#1 < main::min#2 Inversing boolean not [12] main::$3 = main::pos#3 <= main::max#2 from [11] main::$2 = main::pos#3 > main::max#2 @@ -215,17 +215,17 @@ main::@4: scope:[main] from main::@3 main::@6 VARIABLE REGISTER WEIGHTS void main() -byte main::max -byte main::max#2 5.5 -byte main::max#3 11.0 -byte main::max#9 22.0 -byte main::min -byte main::min#2 11.0 -byte main::min#3 6.285714285714286 -byte main::min#9 22.0 -byte main::pos -byte main::pos#1 7.699999999999999 -byte main::pos#2 22.0 +char main::max +char main::max#2 // 5.5 +char main::max#3 // 11.0 +char main::max#9 // 22.0 +char main::min +char main::min#2 // 11.0 +char main::min#3 // 6.285714285714286 +char main::min#9 // 22.0 +char main::pos +char main::pos#1 // 7.699999999999999 +char main::pos#2 // 22.0 Initial phi equivalence classes [ main::pos#2 main::pos#1 ] @@ -356,19 +356,19 @@ Removing instruction __b1_from___b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::max -byte main::max#2 reg byte y 5.5 -byte main::max#3 reg byte y 11.0 -byte main::max#9 reg byte y 22.0 -byte main::min -byte main::min#2 reg byte x 11.0 -byte main::min#3 reg byte x 6.285714285714286 -byte main::min#9 reg byte x 22.0 -byte main::pos -byte main::pos#1 reg byte a 7.699999999999999 -byte main::pos#2 reg byte a 22.0 +char main::max +char main::max#2 // reg byte y 5.5 +char main::max#3 // reg byte y 11.0 +char main::max#9 // reg byte y 22.0 +char main::min +char main::min#2 // reg byte x 11.0 +char main::min#3 // reg byte x 6.285714285714286 +char main::min#9 // reg byte x 22.0 +char main::pos +char main::pos#1 // reg byte a 7.699999999999999 +char main::pos#2 // reg byte a 22.0 reg byte a [ main::pos#2 main::pos#1 ] reg byte x [ main::min#2 main::min#3 main::min#9 ] diff --git a/src/test/ref/infloop-error.sym b/src/test/ref/infloop-error.sym index 8e83aa2bb..6a860d9c6 100644 --- a/src/test/ref/infloop-error.sym +++ b/src/test/ref/infloop-error.sym @@ -1,16 +1,16 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::max -byte main::max#2 reg byte y 5.5 -byte main::max#3 reg byte y 11.0 -byte main::max#9 reg byte y 22.0 -byte main::min -byte main::min#2 reg byte x 11.0 -byte main::min#3 reg byte x 6.285714285714286 -byte main::min#9 reg byte x 22.0 -byte main::pos -byte main::pos#1 reg byte a 7.699999999999999 -byte main::pos#2 reg byte a 22.0 +char main::max +char main::max#2 // reg byte y 5.5 +char main::max#3 // reg byte y 11.0 +char main::max#9 // reg byte y 22.0 +char main::min +char main::min#2 // reg byte x 11.0 +char main::min#3 // reg byte x 6.285714285714286 +char main::min#9 // reg byte x 22.0 +char main::pos +char main::pos#1 // reg byte a 7.699999999999999 +char main::pos#2 // reg byte a 22.0 reg byte a [ main::pos#2 main::pos#1 ] reg byte x [ main::min#2 main::min#3 main::min#9 ] diff --git a/src/test/ref/init-value-npe.asm b/src/test/ref/init-value-npe.asm index 425d34938..87270e0b6 100644 --- a/src/test/ref/init-value-npe.asm +++ b/src/test/ref/init-value-npe.asm @@ -15,6 +15,7 @@ main: { // } rts } +// void memset(void *str) memset: { .label str = myscreen .label dst = str diff --git a/src/test/ref/init-value-npe.cfg b/src/test/ref/init-value-npe.cfg index 9fffb092e..afb5b9bb3 100644 --- a/src/test/ref/init-value-npe.cfg +++ b/src/test/ref/init-value-npe.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@return main::@return: scope:[main] from main [2] return to:@return -void memset(void* memset::str) +void memset(void *str) memset: scope:[memset] from main [3] *memset::dst#0 = 0 to:memset::@return diff --git a/src/test/ref/init-value-npe.log b/src/test/ref/init-value-npe.log index fa82452ef..0934bf1d1 100644 --- a/src/test/ref/init-value-npe.log +++ b/src/test/ref/init-value-npe.log @@ -1,12 +1,12 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 bitmap_screen#16 = phi( __start::@1/bitmap_screen#15 ) - memset::str#0 = (void*)myscreen - call memset + memset::str#0 = (void *)myscreen + call memset to:main::@2 main::@2: scope:[main] from main bitmap_screen#13 = phi( main/bitmap_screen#16 ) @@ -16,13 +16,13 @@ main::@2: scope:[main] from main main::@1: scope:[main] from main::@2 bitmap_screen#12 = phi( main::@2/bitmap_screen#13 ) bitmap_init::screen#0 = myscreen - call bitmap_init + call bitmap_init to:main::@3 main::@3: scope:[main] from main::@1 bitmap_screen#7 = phi( main::@1/bitmap_screen#3 ) bitmap_screen#0 = bitmap_screen#7 - memset::str#1 = (void*)bitmap_screen#0 - call memset + memset::str#1 = (void *)bitmap_screen#0 + call memset to:main::@4 main::@4: scope:[main] from main::@3 bitmap_screen#14 = phi( main::@3/bitmap_screen#0 ) @@ -33,7 +33,7 @@ main::@return: scope:[main] from main::@2 main::@4 return to:@return -void bitmap_init(byte* bitmap_init::screen) +void bitmap_init(char *screen) bitmap_init: scope:[bitmap_init] from main::@1 bitmap_init::screen#1 = phi( main::@1/bitmap_init::screen#0 ) bitmap_screen#2 = bitmap_init::screen#1 @@ -44,10 +44,10 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init return to:@return -void memset(void* memset::str) +void memset(void *str) memset: scope:[memset] from main main::@3 memset::str#2 = phi( main/memset::str#0, main::@3/memset::str#1 ) - memset::dst#0 = (byte*)memset::str#2 + memset::dst#0 = (char *)memset::str#2 *memset::dst#0 = 0 to:memset::@return memset::@return: scope:[memset] from memset @@ -58,11 +58,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bitmap_screen#4 = (byte*) 0 + bitmap_screen#4 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 bitmap_screen#15 = phi( __start::__init1/bitmap_screen#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 bitmap_screen#10 = phi( __start::@1/bitmap_screen#1 ) @@ -76,47 +76,47 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -void bitmap_init(byte* bitmap_init::screen) -byte* bitmap_init::screen -byte* bitmap_init::screen#0 -byte* bitmap_init::screen#1 -byte* bitmap_screen -byte* bitmap_screen#0 -byte* bitmap_screen#1 -byte* bitmap_screen#10 -byte* bitmap_screen#11 -byte* bitmap_screen#12 -byte* bitmap_screen#13 -byte* bitmap_screen#14 -byte* bitmap_screen#15 -byte* bitmap_screen#16 -byte* bitmap_screen#2 -byte* bitmap_screen#3 -byte* bitmap_screen#4 -byte* bitmap_screen#5 -byte* bitmap_screen#6 -byte* bitmap_screen#7 -byte* bitmap_screen#8 -byte* bitmap_screen#9 +void bitmap_init(char *screen) +char *bitmap_init::screen +char *bitmap_init::screen#0 +char *bitmap_init::screen#1 +char *bitmap_screen +char *bitmap_screen#0 +char *bitmap_screen#1 +char *bitmap_screen#10 +char *bitmap_screen#11 +char *bitmap_screen#12 +char *bitmap_screen#13 +char *bitmap_screen#14 +char *bitmap_screen#15 +char *bitmap_screen#16 +char *bitmap_screen#2 +char *bitmap_screen#3 +char *bitmap_screen#4 +char *bitmap_screen#5 +char *bitmap_screen#6 +char *bitmap_screen#7 +char *bitmap_screen#8 +char *bitmap_screen#9 void main() -bool~ main::$1 -void memset(void* memset::str) -byte* memset::dst -byte* memset::dst#0 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -constant byte* const myscreen = (byte*)$7000 +bool main::$1 +void memset(void *str) +char *memset::dst +char *memset::dst#0 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +__constant char * const myscreen = (char *)$7000 Adding number conversion cast (unumber) 0 in *memset::dst#0 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *memset::dst#0 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 28672 +Simplifying constant pointer cast (char *) 28672 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bitmap_screen#12 = bitmap_screen#13 bitmap_screen#16 Alias bitmap_screen#0 = bitmap_screen#7 bitmap_screen#14 @@ -132,13 +132,13 @@ Identical Phi Values bitmap_screen#10 bitmap_screen#1 Successful SSA optimization Pass2IdenticalPhiElimination Rewriting ! if()-condition to reversed if() [3] main::$1 = ! 0!=0 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant memset::str#0 = (void*)myscreen +Constant memset::str#0 = (void *)myscreen Constant bitmap_init::screen#0 = myscreen -Constant bitmap_screen#15 = (byte*) 0 +Constant bitmap_screen#15 = (char *) 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_screen#2 = bitmap_init::screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#1 = (void*)bitmap_screen#2 +Constant memset::str#1 = (void *)bitmap_screen#2 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [4] if(0!=0) goto main::@1 Successful SSA optimization Pass2ConstantIfs @@ -166,9 +166,9 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Identical Phi Values memset::str#2 memset::str#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [3] memset::dst#0 = (byte*)memset::str#0 +Constant right-side identified [3] memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -185,13 +185,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@return main::@return: scope:[main] from main [2] return to:@return -void memset(void* memset::str) +void memset(void *str) memset: scope:[memset] from main [3] *memset::dst#0 = 0 to:memset::@return @@ -201,11 +201,11 @@ memset::@return: scope:[memset] from memset VARIABLE REGISTER WEIGHTS -byte* bitmap_screen +char *bitmap_screen void main() -void memset(void* memset::str) -byte* memset::dst -void* memset::str +void memset(void *str) +char *memset::dst +void *memset::str Initial phi equivalence classes Complete equivalence classes @@ -238,7 +238,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memset + // [1] call memset jsr memset jmp __breturn // main::@return @@ -247,6 +247,7 @@ main: { rts } // memset +// void memset(void *str) memset: { .label str = myscreen .label dst = str @@ -270,14 +271,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte* bitmap_screen +char *bitmap_screen void main() -void memset(void* memset::str) -byte* memset::dst -constant byte* memset::dst#0 dst = (byte*)memset::str#0 -void* memset::str -constant void* memset::str#0 str = (void*)myscreen -constant byte* const myscreen = (byte*) 28672 +void memset(void *str) +char *memset::dst +__constant char *memset::dst#0 = (char *)memset::str#0 // dst +void *memset::str +__constant void *memset::str#0 = (void *)myscreen // str +__constant char * const myscreen = (char *) 28672 @@ -301,7 +302,7 @@ Score: 24 // main main: { // memset(myscreen) - // [1] call memset + // [1] call memset jsr memset // main::@return // } @@ -309,6 +310,7 @@ main: { rts } // memset +// void memset(void *str) memset: { .label str = myscreen .label dst = str diff --git a/src/test/ref/init-value-npe.sym b/src/test/ref/init-value-npe.sym index 42e2b0ed8..c2b042a39 100644 --- a/src/test/ref/init-value-npe.sym +++ b/src/test/ref/init-value-npe.sym @@ -1,9 +1,9 @@ -byte* bitmap_screen +char *bitmap_screen void main() -void memset(void* memset::str) -byte* memset::dst -constant byte* memset::dst#0 dst = (byte*)memset::str#0 -void* memset::str -constant void* memset::str#0 str = (void*)myscreen -constant byte* const myscreen = (byte*) 28672 +void memset(void *str) +char *memset::dst +__constant char *memset::dst#0 = (char *)memset::str#0 // dst +void *memset::str +__constant void *memset::str#0 = (void *)myscreen // str +__constant char * const myscreen = (char *) 28672 diff --git a/src/test/ref/init-volatiles.log b/src/test/ref/init-volatiles.log index 84913c805..479f85898 100644 --- a/src/test/ref/init-volatiles.log +++ b/src/test/ref/init-volatiles.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start::__init1: scope:[__start] from __start x = $c to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -35,8 +35,8 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -volatile byte x loadstore +bool main::$0 +__loadstore volatile char x Adding number conversion cast (unumber) $32 in main::$0 = x < $32 Adding number conversion cast (unumber) 0 in x = 0 @@ -46,8 +46,8 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $32 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [2] if(x<$32) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -76,7 +76,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -101,7 +101,7 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void __start() void main() -volatile byte x loadstore 63.2 +__loadstore volatile char x // 63.2 Initial phi equivalence classes Added variable x to live range equivalence class [ x ] @@ -153,7 +153,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -209,7 +209,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void __start() void main() -volatile byte x loadstore zp[1]:2 63.2 +__loadstore volatile char x // zp[1]:2 63.2 zp[1]:2 [ x ] @@ -240,7 +240,7 @@ __start: { sta.z x // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/init-volatiles.sym b/src/test/ref/init-volatiles.sym index 464f8124b..4de47fa30 100644 --- a/src/test/ref/init-volatiles.sym +++ b/src/test/ref/init-volatiles.sym @@ -1,5 +1,5 @@ void __start() void main() -volatile byte x loadstore zp[1]:2 63.2 +__loadstore volatile char x // zp[1]:2 63.2 zp[1]:2 [ x ] diff --git a/src/test/ref/initializer-0.log b/src/test/ref/initializer-0.log index 496c85c61..cc9de2f64 100644 --- a/src/test/ref/initializer-0.log +++ b/src/test/ref/initializer-0.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,20 +31,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* chars[] = { 1, 2, 3 } +__constant char chars[] = { 1, 2, 3 } void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [7] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -62,7 +62,7 @@ Adding number conversion cast (unumber) 3 in [4] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 @@ -101,12 +101,12 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::idx -byte main::idx#1 7.333333333333333 -byte main::idx#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::idx +char main::idx#1 // 7.333333333333333 +char main::idx#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -197,15 +197,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* chars[] = { 1, 2, 3 } +__constant char chars[] = { 1, 2, 3 } void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 16.5 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/initializer-0.sym b/src/test/ref/initializer-0.sym index 577f53133..deebdfc4f 100644 --- a/src/test/ref/initializer-0.sym +++ b/src/test/ref/initializer-0.sym @@ -1,12 +1,12 @@ -constant byte* chars[] = { 1, 2, 3 } +__constant char chars[] = { 1, 2, 3 } void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 16.5 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/initializer-1.log b/src/test/ref/initializer-1.log index 070d3698e..df8e3a973 100644 --- a/src/test/ref/initializer-1.log +++ b/src/test/ref/initializer-1.log @@ -9,11 +9,11 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::idx#3 = phi( main/main::idx#0, main::@1/main::idx#2 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$3 = main::i#2 * SIZEOF_WORD + main::$3 = main::i#2 * SIZEOF_UNSIGNED_INT main::$0 = byte0 words[main::$3] main::SCREEN[main::idx#3] = main::$0 main::idx#1 = ++ main::idx#3 - main::$4 = main::i#2 * SIZEOF_WORD + main::$4 = main::i#2 * SIZEOF_UNSIGNED_INT main::$1 = byte1 words[main::$4] main::SCREEN[main::idx#1] = main::$1 main::idx#2 = ++ main::idx#1 @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,29 +36,29 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -constant word* words[] = { 1, 2, 3 } +char main::$0 +char main::$1 +bool main::$2 +char main::$3 +char main::$4 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +__constant unsigned int words[] = { 1, 2, 3 } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Identified duplicate assignment right side [7] main::$4 = main::i#2 * SIZEOF_WORD +Identified duplicate assignment right side [7] main::$4 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$2 [13] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -76,18 +76,18 @@ Adding number conversion cast (unumber) 3 in [10] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$4 = main::$3 Successful SSA optimization Pass2AliasElimination -Rewriting multiplication to use shift [1] main::$4 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [1] main::$4 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::idx#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -126,16 +126,16 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$4 8.25 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.125 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 7.333333333333333 -byte main::idx#3 8.25 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::$4 // 8.25 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.125 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 7.333333333333333 +char main::idx#3 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -271,18 +271,18 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$4 reg byte y 8.25 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 4.125 -byte main::idx -byte main::idx#1 reg byte x 11.0 -byte main::idx#2 reg byte x 7.333333333333333 -byte main::idx#3 reg byte x 8.25 -constant word* words[] = { 1, 2, 3 } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$4 // reg byte y 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 4.125 +char main::idx +char main::idx#1 // reg byte x 11.0 +char main::idx#2 // reg byte x 7.333333333333333 +char main::idx#3 // reg byte x 8.25 +__constant unsigned int words[] = { 1, 2, 3 } zp[1]:2 [ main::i#2 main::i#1 ] reg byte x [ main::idx#3 main::idx#2 ] diff --git a/src/test/ref/initializer-1.sym b/src/test/ref/initializer-1.sym index 96208e85e..90a884b72 100644 --- a/src/test/ref/initializer-1.sym +++ b/src/test/ref/initializer-1.sym @@ -1,16 +1,16 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$4 reg byte y 8.25 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 4.125 -byte main::idx -byte main::idx#1 reg byte x 11.0 -byte main::idx#2 reg byte x 7.333333333333333 -byte main::idx#3 reg byte x 8.25 -constant word* words[] = { 1, 2, 3 } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$4 // reg byte y 8.25 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 4.125 +char main::idx +char main::idx#1 // reg byte x 11.0 +char main::idx#2 // reg byte x 7.333333333333333 +char main::idx#3 // reg byte x 8.25 +__constant unsigned int words[] = { 1, 2, 3 } zp[1]:2 [ main::i#2 main::i#1 ] reg byte x [ main::idx#3 main::idx#2 ] diff --git a/src/test/ref/initializer-2.cfg b/src/test/ref/initializer-2.cfg index 76eeb706f..2a0a15b37 100644 --- a/src/test/ref/initializer-2.cfg +++ b/src/test/ref/initializer-2.cfg @@ -7,9 +7,9 @@ main::@1: scope:[main] from main main::@1 [1] main::idx#3 = phi( main/0, main::@1/main::idx#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] main::SCREEN[main::idx#3] = ((byte*)points)[main::$2] + [3] main::SCREEN[main::idx#3] = ((char *)points)[main::$2] [4] main::idx#1 = ++ main::idx#3 - [5] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] + [5] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] [6] main::idx#2 = ++ main::idx#1 [7] main::i#1 = ++ main::i#2 [8] if(main::i#1!=3) goto main::@1 diff --git a/src/test/ref/initializer-2.log b/src/test/ref/initializer-2.log index cf5aaef3f..76f4afbc7 100644 --- a/src/test/ref/initializer-2.log +++ b/src/test/ref/initializer-2.log @@ -10,10 +10,10 @@ main::@1: scope:[main] from main main::@1 main::idx#3 = phi( main/main::idx#0, main::@1/main::idx#2 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$1 = main::i#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::idx#3] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$1] + main::SCREEN[main::idx#3] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$1] main::idx#1 = ++ main::idx#3 main::$2 = main::i#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] + main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] main::idx#2 = ++ main::idx#1 main::i#1 = main::i#2 + rangenext(0,2) main::$0 = main::i#1 != rangelast(0,2) @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,27 +34,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +bool main::$0 +char main::$1 +char main::$2 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Identified duplicate assignment right side [6] main::$2 = main::i#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2DuplicateRValueIdentification @@ -65,7 +65,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [9] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [11] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying expression containing zero (byte*)points in [4] main::SCREEN[main::idx#3] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$1] +Simplifying expression containing zero (char *)points in [4] main::SCREEN[main::idx#3] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$1] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -78,7 +78,7 @@ Adding number conversion cast (unumber) 3 in [8] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$2 = main::$1 Successful SSA optimization Pass2AliasElimination @@ -112,9 +112,9 @@ main::@1: scope:[main] from main main::@1 [1] main::idx#3 = phi( main/0, main::@1/main::idx#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] main::SCREEN[main::idx#3] = ((byte*)points)[main::$2] + [3] main::SCREEN[main::idx#3] = ((char *)points)[main::$2] [4] main::idx#1 = ++ main::idx#3 - [5] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] + [5] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] [6] main::idx#2 = ++ main::idx#1 [7] main::i#1 = ++ main::i#2 [8] if(main::i#1!=3) goto main::@1 @@ -126,14 +126,14 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -byte main::idx -byte main::idx#1 16.5 -byte main::idx#2 7.333333333333333 -byte main::idx#3 11.0 +char main::$2 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +char main::idx +char main::idx#1 // 16.5 +char main::idx#2 // 7.333333333333333 +char main::idx#3 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -153,13 +153,13 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::idx#3 main::$2 ] ( [ main::i#2 main::idx#3 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::idx#3 main::idx#2 ] -Statement [3] main::SCREEN[main::idx#3] = ((byte*)points)[main::$2] [ main::i#2 main::idx#3 main::$2 ] ( [ main::i#2 main::idx#3 main::$2 ] { } ) always clobbers reg byte a +Statement [3] main::SCREEN[main::idx#3] = ((char *)points)[main::$2] [ main::i#2 main::idx#3 main::$2 ] ( [ main::i#2 main::idx#3 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$2 ] -Statement [5] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 main::idx#1 ] ( [ main::i#2 main::idx#1 ] { } ) always clobbers reg byte a +Statement [5] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 main::idx#1 ] ( [ main::i#2 main::idx#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::idx#1 ] Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::idx#3 main::$2 ] ( [ main::i#2 main::idx#3 main::$2 ] { } ) always clobbers reg byte a -Statement [3] main::SCREEN[main::idx#3] = ((byte*)points)[main::$2] [ main::i#2 main::idx#3 main::$2 ] ( [ main::i#2 main::idx#3 main::$2 ] { } ) always clobbers reg byte a -Statement [5] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 main::idx#1 ] ( [ main::i#2 main::idx#1 ] { } ) always clobbers reg byte a +Statement [3] main::SCREEN[main::idx#3] = ((char *)points)[main::$2] [ main::i#2 main::idx#3 main::$2 ] ( [ main::i#2 main::idx#3 main::$2 ] { } ) always clobbers reg byte a +Statement [5] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 main::idx#1 ] ( [ main::i#2 main::idx#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::idx#3 main::idx#2 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$2 ] : zp[1]:4 , reg byte x , reg byte y , @@ -215,12 +215,12 @@ main: { lda.z i asl tax - // [3] main::SCREEN[main::idx#3] = ((byte*)points)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [3] main::SCREEN[main::idx#3] = ((char *)points)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points,x sta SCREEN,y // [4] main::idx#1 = ++ main::idx#3 -- vbuyy=_inc_vbuyy iny - // [5] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [5] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points+OFFSET_STRUCT_POINT_Y,x sta SCREEN,y // [6] main::idx#2 = ++ main::idx#1 -- vbuyy=_inc_vbuyy @@ -256,18 +256,18 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$2 reg byte x 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 5.5 -byte main::idx -byte main::idx#1 reg byte y 16.5 -byte main::idx#2 reg byte y 7.333333333333333 -byte main::idx#3 reg byte y 11.0 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$2 // reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 5.5 +char main::idx +char main::idx#1 // reg byte y 16.5 +char main::idx#2 // reg byte y 7.333333333333333 +char main::idx#3 // reg byte y 11.0 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } zp[1]:2 [ main::i#2 main::i#1 ] reg byte y [ main::idx#3 main::idx#2 ] @@ -313,14 +313,14 @@ main: { lda.z i asl tax - // [3] main::SCREEN[main::idx#3] = ((byte*)points)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [3] main::SCREEN[main::idx#3] = ((char *)points)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points,x sta SCREEN,y // SCREEN[idx++] = points[i].x; // [4] main::idx#1 = ++ main::idx#3 -- vbuyy=_inc_vbuyy iny // SCREEN[idx++] = points[i].y - // [5] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [5] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points+OFFSET_STRUCT_POINT_Y,x sta SCREEN,y // SCREEN[idx++] = points[i].y; diff --git a/src/test/ref/initializer-2.sym b/src/test/ref/initializer-2.sym index 753b62b22..123b90feb 100644 --- a/src/test/ref/initializer-2.sym +++ b/src/test/ref/initializer-2.sym @@ -1,15 +1,15 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$2 reg byte x 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 5.5 -byte main::idx -byte main::idx#1 reg byte y 16.5 -byte main::idx#2 reg byte y 7.333333333333333 -byte main::idx#3 reg byte y 11.0 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$2 // reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 5.5 +char main::idx +char main::idx#1 // reg byte y 16.5 +char main::idx#2 // reg byte y 7.333333333333333 +char main::idx#3 // reg byte y 11.0 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } zp[1]:2 [ main::i#2 main::i#1 ] reg byte y [ main::idx#3 main::idx#2 ] diff --git a/src/test/ref/initializer-3.cfg b/src/test/ref/initializer-3.cfg index 2e30672be..6e8876d15 100644 --- a/src/test/ref/initializer-3.cfg +++ b/src/test/ref/initializer-3.cfg @@ -8,12 +8,12 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$6 = main::i#2 << 1 [3] main::$4 = main::$6 + main::i#2 - [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] + [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [5] main::idx#1 = ++ main::idx#4 - [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [7] main::SCREEN[main::idx#1] = main::$0 [8] main::idx#2 = ++ main::idx#1 - [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [10] main::SCREEN[main::idx#2] = main::$1 [11] main::idx#3 = ++ main::idx#2 [12] main::i#1 = ++ main::i#2 diff --git a/src/test/ref/initializer-3.log b/src/test/ref/initializer-3.log index 011df0536..aa16ecb3b 100644 --- a/src/test/ref/initializer-3.log +++ b/src/test/ref/initializer-3.log @@ -10,14 +10,14 @@ main::@1: scope:[main] from main main::@1 main::idx#4 = phi( main/main::idx#0, main::@1/main::idx#3 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$3 = main::i#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::idx#4] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$3] + main::SCREEN[main::idx#4] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$3] main::idx#1 = ++ main::idx#4 main::$4 = main::i#2 * SIZEOF_STRUCT_POINT - main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] main::SCREEN[main::idx#1] = main::$0 main::idx#2 = ++ main::idx#1 main::$5 = main::i#2 * SIZEOF_STRUCT_POINT - main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$5] + main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$5] main::SCREEN[main::idx#2] = main::$1 main::idx#3 = ++ main::idx#2 main::i#1 = main::i#2 + rangenext(0,2) @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -39,31 +39,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 3 void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$0 +char main::$1 +bool main::$2 +char main::$3 +char main::$4 +char main::$5 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Identified duplicate assignment right side [6] main::$4 = main::i#2 * SIZEOF_STRUCT_POINT Identified duplicate assignment right side [10] main::$5 = main::i#2 * SIZEOF_STRUCT_POINT @@ -75,7 +75,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [14] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [16] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying expression containing zero (byte*)points in [4] main::SCREEN[main::idx#4] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$3] +Simplifying expression containing zero (char *)points in [4] main::SCREEN[main::idx#4] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$3] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -88,7 +88,7 @@ Adding number conversion cast (unumber) 3 in [13] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$4 = main::$3 main::$5 Successful SSA optimization Pass2AliasElimination @@ -124,12 +124,12 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$6 = main::i#2 << 1 [3] main::$4 = main::$6 + main::i#2 - [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] + [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [5] main::idx#1 = ++ main::idx#4 - [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [7] main::SCREEN[main::idx#1] = main::$0 [8] main::idx#2 = ++ main::idx#1 - [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [10] main::SCREEN[main::idx#2] = main::$1 [11] main::idx#3 = ++ main::idx#2 [12] main::i#1 = ++ main::i#2 @@ -142,18 +142,18 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$4 7.333333333333333 -byte~ main::$6 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.0 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 11.0 -byte main::idx#3 7.333333333333333 -byte main::idx#4 8.25 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::$4 // 7.333333333333333 +char main::$6 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.0 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 11.0 +char main::idx#3 // 7.333333333333333 +char main::idx#4 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -186,17 +186,17 @@ Statement [2] main::$6 = main::i#2 << 1 [ main::i#2 main::idx#4 main::$6 ] ( [ Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::idx#4 main::idx#3 ] Statement [3] main::$4 = main::$6 + main::i#2 [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a -Statement [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a +Statement [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::$4 ] -Statement [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a +Statement [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::idx#1 ] -Statement [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a +Statement [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::idx#2 ] Statement [2] main::$6 = main::i#2 << 1 [ main::i#2 main::idx#4 main::$6 ] ( [ main::i#2 main::idx#4 main::$6 ] { } ) always clobbers reg byte a Statement [3] main::$4 = main::$6 + main::i#2 [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a -Statement [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a -Statement [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a -Statement [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a +Statement [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a +Statement [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a +Statement [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::idx#4 main::idx#3 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$6 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -272,14 +272,14 @@ main: { clc adc.z $ff sta.z __4 - // [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + // [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy.z __4 lda points,y ldy.z idx sta SCREEN,y // [5] main::idx#1 = ++ main::idx#4 -- vbuz1=_inc_vbuz1 inc.z idx - // [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 + // [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y,y // [7] main::SCREEN[main::idx#1] = main::$0 -- pbuc1_derefidx_vbuz1=vbuaa @@ -287,7 +287,7 @@ main: { sta SCREEN,y // [8] main::idx#2 = ++ main::idx#1 -- vbuz1=_inc_vbuz1 inc.z idx - // [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 + // [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y+1,y // [10] main::SCREEN[main::idx#2] = main::$1 -- pbuc1_derefidx_vbuz1=vbuaa @@ -331,22 +331,22 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$4 zp[1]:3 7.333333333333333 -byte~ main::$6 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.0 -byte main::idx -byte main::idx#1 idx zp[1]:2 11.0 -byte main::idx#2 idx zp[1]:2 11.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 8.25 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$4 // zp[1]:3 7.333333333333333 +char main::$6 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.0 +char main::idx +char main::idx#1 // idx zp[1]:2 11.0 +char main::idx#2 // idx zp[1]:2 11.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 8.25 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 main::idx#1 main::idx#2 ] @@ -399,7 +399,7 @@ main: { clc adc.z $ff sta.z __4 - // [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + // [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 tay lda points,y ldy.z idx @@ -408,7 +408,7 @@ main: { // [5] main::idx#1 = ++ main::idx#4 -- vbuz1=_inc_vbuz1 inc.z idx // BYTE0(points[i].y) - // [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 + // [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y,y // SCREEN[idx++] = BYTE0(points[i].y) @@ -419,7 +419,7 @@ main: { // [8] main::idx#2 = ++ main::idx#1 -- vbuz1=_inc_vbuz1 inc.z idx // BYTE1(points[i].y) - // [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 + // [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y+1,y // SCREEN[idx++] = BYTE1(points[i].y) diff --git a/src/test/ref/initializer-3.sym b/src/test/ref/initializer-3.sym index be3727d1c..bed4f13e0 100644 --- a/src/test/ref/initializer-3.sym +++ b/src/test/ref/initializer-3.sym @@ -1,19 +1,19 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$4 zp[1]:3 7.333333333333333 -byte~ main::$6 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.0 -byte main::idx -byte main::idx#1 idx zp[1]:2 11.0 -byte main::idx#2 idx zp[1]:2 11.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 8.25 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$4 // zp[1]:3 7.333333333333333 +char main::$6 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.0 +char main::idx +char main::idx#1 // idx zp[1]:2 11.0 +char main::idx#2 // idx zp[1]:2 11.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 8.25 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 main::idx#1 main::idx#2 ] diff --git a/src/test/ref/initializer-4.log b/src/test/ref/initializer-4.log index f62a5cb8e..e9b398f5a 100644 --- a/src/test/ref/initializer-4.log +++ b/src/test/ref/initializer-4.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,20 +31,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* chars[] = { 1, 2, 3 } +__constant char chars[] = { 1, 2, 3 } void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [7] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -62,7 +62,7 @@ Adding number conversion cast (unumber) 3 in [4] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 @@ -101,12 +101,12 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::idx -byte main::idx#1 7.333333333333333 -byte main::idx#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::idx +char main::idx#1 // 7.333333333333333 +char main::idx#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -196,15 +196,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* chars[] = { 1, 2, 3 } +__constant char chars[] = { 1, 2, 3 } void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 16.5 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/initializer-4.sym b/src/test/ref/initializer-4.sym index 577f53133..deebdfc4f 100644 --- a/src/test/ref/initializer-4.sym +++ b/src/test/ref/initializer-4.sym @@ -1,12 +1,12 @@ -constant byte* chars[] = { 1, 2, 3 } +__constant char chars[] = { 1, 2, 3 } void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 16.5 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/initializer-5.cfg b/src/test/ref/initializer-5.cfg index 2e30672be..6e8876d15 100644 --- a/src/test/ref/initializer-5.cfg +++ b/src/test/ref/initializer-5.cfg @@ -8,12 +8,12 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$6 = main::i#2 << 1 [3] main::$4 = main::$6 + main::i#2 - [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] + [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [5] main::idx#1 = ++ main::idx#4 - [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [7] main::SCREEN[main::idx#1] = main::$0 [8] main::idx#2 = ++ main::idx#1 - [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [10] main::SCREEN[main::idx#2] = main::$1 [11] main::idx#3 = ++ main::idx#2 [12] main::i#1 = ++ main::i#2 diff --git a/src/test/ref/initializer-5.log b/src/test/ref/initializer-5.log index 1e440f6c3..4e96ba97e 100644 --- a/src/test/ref/initializer-5.log +++ b/src/test/ref/initializer-5.log @@ -10,14 +10,14 @@ main::@1: scope:[main] from main main::@1 main::idx#4 = phi( main/main::idx#0, main::@1/main::idx#3 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$3 = main::i#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::idx#4] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$3] + main::SCREEN[main::idx#4] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$3] main::idx#1 = ++ main::idx#4 main::$4 = main::i#2 * SIZEOF_STRUCT_POINT - main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] main::SCREEN[main::idx#1] = main::$0 main::idx#2 = ++ main::idx#1 main::$5 = main::i#2 * SIZEOF_STRUCT_POINT - main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$5] + main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$5] main::SCREEN[main::idx#2] = main::$1 main::idx#3 = ++ main::idx#2 main::i#1 = main::i#2 + rangenext(0,2) @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -39,31 +39,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 3 void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$0 +char main::$1 +bool main::$2 +char main::$3 +char main::$4 +char main::$5 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Identified duplicate assignment right side [6] main::$4 = main::i#2 * SIZEOF_STRUCT_POINT Identified duplicate assignment right side [10] main::$5 = main::i#2 * SIZEOF_STRUCT_POINT @@ -75,7 +75,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [14] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [16] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying expression containing zero (byte*)points in [4] main::SCREEN[main::idx#4] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$3] +Simplifying expression containing zero (char *)points in [4] main::SCREEN[main::idx#4] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$3] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -88,7 +88,7 @@ Adding number conversion cast (unumber) 3 in [13] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$4 = main::$3 main::$5 Successful SSA optimization Pass2AliasElimination @@ -124,12 +124,12 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$6 = main::i#2 << 1 [3] main::$4 = main::$6 + main::i#2 - [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] + [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [5] main::idx#1 = ++ main::idx#4 - [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [7] main::SCREEN[main::idx#1] = main::$0 [8] main::idx#2 = ++ main::idx#1 - [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [10] main::SCREEN[main::idx#2] = main::$1 [11] main::idx#3 = ++ main::idx#2 [12] main::i#1 = ++ main::i#2 @@ -142,18 +142,18 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$4 7.333333333333333 -byte~ main::$6 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.0 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 11.0 -byte main::idx#3 7.333333333333333 -byte main::idx#4 8.25 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::$4 // 7.333333333333333 +char main::$6 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.0 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 11.0 +char main::idx#3 // 7.333333333333333 +char main::idx#4 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -186,17 +186,17 @@ Statement [2] main::$6 = main::i#2 << 1 [ main::i#2 main::idx#4 main::$6 ] ( [ Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::idx#4 main::idx#3 ] Statement [3] main::$4 = main::$6 + main::i#2 [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a -Statement [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a +Statement [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::$4 ] -Statement [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a +Statement [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::idx#1 ] -Statement [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a +Statement [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::idx#2 ] Statement [2] main::$6 = main::i#2 << 1 [ main::i#2 main::idx#4 main::$6 ] ( [ main::i#2 main::idx#4 main::$6 ] { } ) always clobbers reg byte a Statement [3] main::$4 = main::$6 + main::i#2 [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a -Statement [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a -Statement [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a -Statement [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a +Statement [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] [ main::i#2 main::idx#4 main::$4 ] ( [ main::i#2 main::idx#4 main::$4 ] { } ) always clobbers reg byte a +Statement [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::$4 main::idx#1 main::$0 ] ( [ main::i#2 main::$4 main::idx#1 main::$0 ] { } ) always clobbers reg byte a +Statement [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] [ main::i#2 main::idx#2 main::$1 ] ( [ main::i#2 main::idx#2 main::$1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::idx#4 main::idx#3 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$6 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -271,14 +271,14 @@ main: { clc adc.z $ff sta.z __4 - // [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + // [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 ldy.z __4 lda points,y ldy.z idx sta SCREEN,y // [5] main::idx#1 = ++ main::idx#4 -- vbuz1=_inc_vbuz1 inc.z idx - // [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 + // [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y,y // [7] main::SCREEN[main::idx#1] = main::$0 -- pbuc1_derefidx_vbuz1=vbuaa @@ -286,7 +286,7 @@ main: { sta SCREEN,y // [8] main::idx#2 = ++ main::idx#1 -- vbuz1=_inc_vbuz1 inc.z idx - // [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 + // [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y+1,y // [10] main::SCREEN[main::idx#2] = main::$1 -- pbuc1_derefidx_vbuz1=vbuaa @@ -330,22 +330,22 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$4 zp[1]:3 7.333333333333333 -byte~ main::$6 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.0 -byte main::idx -byte main::idx#1 idx zp[1]:2 11.0 -byte main::idx#2 idx zp[1]:2 11.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 8.25 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$4 // zp[1]:3 7.333333333333333 +char main::$6 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.0 +char main::idx +char main::idx#1 // idx zp[1]:2 11.0 +char main::idx#2 // idx zp[1]:2 11.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 8.25 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 main::idx#1 main::idx#2 ] @@ -397,7 +397,7 @@ main: { clc adc.z $ff sta.z __4 - // [4] main::SCREEN[main::idx#4] = ((byte*)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 + // [4] main::SCREEN[main::idx#4] = ((char *)points)[main::$4] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2 tay lda points,y ldy.z idx @@ -406,7 +406,7 @@ main: { // [5] main::idx#1 = ++ main::idx#4 -- vbuz1=_inc_vbuz1 inc.z idx // BYTE0(points[i].y) - // [6] main::$0 = byte0 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 + // [6] main::$0 = byte0 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte0_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y,y // SCREEN[idx++] = BYTE0(points[i].y) @@ -417,7 +417,7 @@ main: { // [8] main::idx#2 = ++ main::idx#1 -- vbuz1=_inc_vbuz1 inc.z idx // BYTE1(points[i].y) - // [9] main::$1 = byte1 ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 + // [9] main::$1 = byte1 ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuaa=_byte1_pwsc1_derefidx_vbuz1 ldy.z __4 lda points+OFFSET_STRUCT_POINT_Y+1,y // SCREEN[idx++] = BYTE1(points[i].y) diff --git a/src/test/ref/initializer-5.sym b/src/test/ref/initializer-5.sym index be3727d1c..bed4f13e0 100644 --- a/src/test/ref/initializer-5.sym +++ b/src/test/ref/initializer-5.sym @@ -1,19 +1,19 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$4 zp[1]:3 7.333333333333333 -byte~ main::$6 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.0 -byte main::idx -byte main::idx#1 idx zp[1]:2 11.0 -byte main::idx#2 idx zp[1]:2 11.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 8.25 -constant struct Point* points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$4 // zp[1]:3 7.333333333333333 +char main::$6 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.0 +char main::idx +char main::idx#1 // idx zp[1]:2 11.0 +char main::idx#2 // idx zp[1]:2 11.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 8.25 +__constant struct Point points[] = { { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 5, y: 6 } } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 main::idx#1 main::idx#2 ] diff --git a/src/test/ref/inline-asm-clobber-none.log b/src/test/ref/inline-asm-clobber-none.log index 14444ecb4..114497db5 100644 --- a/src/test/ref/inline-asm-clobber-none.log +++ b/src/test/ref/inline-asm-clobber-none.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -47,7 +47,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -58,27 +58,27 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 Alias main::j#2 = main::j#3 Alias main::i#2 = main::i#3 main::i#4 @@ -117,9 +117,9 @@ Simplifying constant integer cast $b Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -177,15 +177,15 @@ main::@return: scope:[main] from main::@5 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#6 2.75 -byte main::j -byte main::j#1 151.5 -byte main::j#4 40.4 -byte main::k -byte main::k#1 1501.5 -byte main::k#2 1001.0 +char main::i +char main::i#1 // 16.5 +char main::i#6 // 2.75 +char main::j +char main::j#1 // 151.5 +char main::j#4 // 40.4 +char main::k +char main::k#1 // 1501.5 +char main::k#2 // 1001.0 Initial phi equivalence classes [ main::i#6 main::i#1 ] @@ -330,15 +330,15 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte a 16.5 -byte main::i#6 reg byte a 2.75 -byte main::j -byte main::j#1 reg byte x 151.5 -byte main::j#4 reg byte x 40.4 -byte main::k -byte main::k#1 reg byte y 1501.5 -byte main::k#2 reg byte y 1001.0 +char main::i +char main::i#1 // reg byte a 16.5 +char main::i#6 // reg byte a 2.75 +char main::j +char main::j#1 // reg byte x 151.5 +char main::j#4 // reg byte x 40.4 +char main::k +char main::k#1 // reg byte y 1501.5 +char main::k#2 // reg byte y 1001.0 reg byte a [ main::i#6 main::i#1 ] reg byte x [ main::j#4 main::j#1 ] diff --git a/src/test/ref/inline-asm-clobber-none.sym b/src/test/ref/inline-asm-clobber-none.sym index c8c11ec1e..2f92e27b5 100644 --- a/src/test/ref/inline-asm-clobber-none.sym +++ b/src/test/ref/inline-asm-clobber-none.sym @@ -1,13 +1,13 @@ void main() -byte main::i -byte main::i#1 reg byte a 16.5 -byte main::i#6 reg byte a 2.75 -byte main::j -byte main::j#1 reg byte x 151.5 -byte main::j#4 reg byte x 40.4 -byte main::k -byte main::k#1 reg byte y 1501.5 -byte main::k#2 reg byte y 1001.0 +char main::i +char main::i#1 // reg byte a 16.5 +char main::i#6 // reg byte a 2.75 +char main::j +char main::j#1 // reg byte x 151.5 +char main::j#4 // reg byte x 40.4 +char main::k +char main::k#1 // reg byte y 1501.5 +char main::k#2 // reg byte y 1001.0 reg byte a [ main::i#6 main::i#1 ] reg byte x [ main::j#4 main::j#1 ] diff --git a/src/test/ref/inline-asm-clobber.log b/src/test/ref/inline-asm-clobber.log index 3cba741ce..0a27e6f19 100644 --- a/src/test/ref/inline-asm-clobber.log +++ b/src/test/ref/inline-asm-clobber.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -56,7 +56,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -65,35 +65,35 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 -byte main::k#3 -byte main::k#4 -byte main::l -byte main::l#0 -byte main::l#1 -byte main::l#2 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 +char main::k#3 +char main::k#4 +char main::l +char main::l#0 +char main::l#1 +char main::l#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Alias main::k#2 = main::k#3 @@ -136,10 +136,10 @@ Simplifying constant integer cast $65 Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -214,18 +214,18 @@ main::@return: scope:[main] from main::@6 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#4 24.599999999999998 -byte main::j -byte main::j#1 151.5 -byte main::j#2 151.5 -byte main::k -byte main::k#1 16.5 -byte main::k#4 20.499999999999996 -byte main::l -byte main::l#1 151.5 -byte main::l#2 101.0 +char main::i +char main::i#1 // 16.5 +char main::i#4 // 24.599999999999998 +char main::j +char main::j#1 // 151.5 +char main::j#2 // 151.5 +char main::k +char main::k#1 // 16.5 +char main::k#4 // 20.499999999999996 +char main::l +char main::l#1 // 151.5 +char main::l#2 // 101.0 Initial phi equivalence classes [ main::i#4 main::i#1 ] @@ -407,20 +407,20 @@ Removing instruction jmp __b5 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#4 reg byte x 24.599999999999998 -byte main::j -byte main::j#1 reg byte a 151.5 -byte main::j#2 reg byte a 151.5 -byte main::k -byte main::k#1 reg byte y 16.5 -byte main::k#4 reg byte y 20.499999999999996 -byte main::l -byte main::l#1 l zp[1]:2 151.5 -byte main::l#2 l zp[1]:2 101.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#4 // reg byte x 24.599999999999998 +char main::j +char main::j#1 // reg byte a 151.5 +char main::j#2 // reg byte a 151.5 +char main::k +char main::k#1 // reg byte y 16.5 +char main::k#4 // reg byte y 20.499999999999996 +char main::l +char main::l#1 // l zp[1]:2 151.5 +char main::l#2 // l zp[1]:2 101.0 reg byte x [ main::i#4 main::i#1 ] reg byte a [ main::j#2 main::j#1 ] diff --git a/src/test/ref/inline-asm-clobber.sym b/src/test/ref/inline-asm-clobber.sym index 9afaca530..c63395a42 100644 --- a/src/test/ref/inline-asm-clobber.sym +++ b/src/test/ref/inline-asm-clobber.sym @@ -1,17 +1,17 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#4 reg byte x 24.599999999999998 -byte main::j -byte main::j#1 reg byte a 151.5 -byte main::j#2 reg byte a 151.5 -byte main::k -byte main::k#1 reg byte y 16.5 -byte main::k#4 reg byte y 20.499999999999996 -byte main::l -byte main::l#1 l zp[1]:2 151.5 -byte main::l#2 l zp[1]:2 101.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#4 // reg byte x 24.599999999999998 +char main::j +char main::j#1 // reg byte a 151.5 +char main::j#2 // reg byte a 151.5 +char main::k +char main::k#1 // reg byte y 16.5 +char main::k#4 // reg byte y 20.499999999999996 +char main::l +char main::l#1 // l zp[1]:2 151.5 +char main::l#2 // l zp[1]:2 101.0 reg byte x [ main::i#4 main::i#1 ] reg byte a [ main::j#2 main::j#1 ] diff --git a/src/test/ref/inline-asm-jsr-clobber.log b/src/test/ref/inline-asm-jsr-clobber.log index beecf294d..cadc5c11c 100644 --- a/src/test/ref/inline-asm-jsr-clobber.log +++ b/src/test/ref/inline-asm-jsr-clobber.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -23,7 +23,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -34,11 +34,11 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -57,7 +57,7 @@ Adding number conversion cast (unumber) $b in [3] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -91,9 +91,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -179,9 +179,9 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 11.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 11.0 zp[1]:2 [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inline-asm-jsr-clobber.sym b/src/test/ref/inline-asm-jsr-clobber.sym index ea20d1a79..89f290c1c 100644 --- a/src/test/ref/inline-asm-jsr-clobber.sym +++ b/src/test/ref/inline-asm-jsr-clobber.sym @@ -1,6 +1,6 @@ void main() -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 11.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 11.0 zp[1]:2 [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inline-asm-label.log b/src/test/ref/inline-asm-label.log index 627f259d4..aa7283426 100644 --- a/src/test/ref/inline-asm-label.log +++ b/src/test/ref/inline-asm-label.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,12 +20,12 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte* table[] = "cml!"z +__constant char table[] = "cml!"z -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -105,9 +105,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* table[] = "cml!"z +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-asm-label.sym b/src/test/ref/inline-asm-label.sym index 316e2721d..f10256593 100644 --- a/src/test/ref/inline-asm-label.sym +++ b/src/test/ref/inline-asm-label.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* table[] = "cml!"z +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-asm-ma-var.log b/src/test/ref/inline-asm-ma-var.log index 2ef0feab4..e840e1c12 100644 --- a/src/test/ref/inline-asm-ma-var.log +++ b/src/test/ref/inline-asm-ma-var.log @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,23 +33,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -volatile byte main::value loadstore +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__loadstore volatile char main::value Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -93,10 +93,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 -volatile byte main::value loadstore 4.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 +__loadstore volatile char main::value // 4.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -194,12 +194,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination Replacing instruction ldx #0 with TAX FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 -volatile byte main::value loadstore zp[1]:2 4.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 +__loadstore volatile char main::value // zp[1]:2 4.0 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::value ] diff --git a/src/test/ref/inline-asm-ma-var.sym b/src/test/ref/inline-asm-ma-var.sym index fb98b45a4..df43f1be8 100644 --- a/src/test/ref/inline-asm-ma-var.sym +++ b/src/test/ref/inline-asm-ma-var.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 -volatile byte main::value loadstore zp[1]:2 4.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 +__loadstore volatile char main::value // zp[1]:2 4.0 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::value ] diff --git a/src/test/ref/inline-asm-optimized.log b/src/test/ref/inline-asm-optimized.log index 507513f8e..02322083e 100644 --- a/src/test/ref/inline-asm-optimized.log +++ b/src/test/ref/inline-asm-optimized.log @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,7 +23,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() @@ -34,14 +34,14 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *SCREEN = (unumber)0 Inlining cast SCREEN[(unumber)3] = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -138,7 +138,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/inline-asm-optimized.sym b/src/test/ref/inline-asm-optimized.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/inline-asm-optimized.sym +++ b/src/test/ref/inline-asm-optimized.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/inline-asm-param.log b/src/test/ref/inline-asm-param.log index c2839d4a7..e564e591a 100644 --- a/src/test/ref/inline-asm-param.log +++ b/src/test/ref/inline-asm-param.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,16 +27,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -53,7 +53,7 @@ Adding number conversion cast (unumber) 4 in [3] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -87,9 +87,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -166,11 +166,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inline-asm-param.sym b/src/test/ref/inline-asm-param.sym index d59af550d..9e57c3296 100644 --- a/src/test/ref/inline-asm-param.sym +++ b/src/test/ref/inline-asm-param.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inline-asm-refout-const.log b/src/test/ref/inline-asm-refout-const.log index 293082038..3c087e658 100644 --- a/src/test/ref/inline-asm-refout-const.log +++ b/src/test/ref/inline-asm-refout-const.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,12 +20,12 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte* table[] = "cml!"z +__constant char table[] = "cml!"z -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -105,9 +105,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* table[] = "cml!"z +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-asm-refout-const.sym b/src/test/ref/inline-asm-refout-const.sym index 316e2721d..f10256593 100644 --- a/src/test/ref/inline-asm-refout-const.sym +++ b/src/test/ref/inline-asm-refout-const.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* table[] = "cml!"z +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-asm-refout-var.log b/src/test/ref/inline-asm-refout-var.log index 5555bb888..41741db1c 100644 --- a/src/test/ref/inline-asm-refout-var.log +++ b/src/test/ref/inline-asm-refout-var.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,13 +27,13 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -volatile byte main::i loadstore +bool main::$0 +__loadstore volatile char main::i -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [4] if(main::i!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -48,7 +48,7 @@ Adding number conversion cast (unumber) $b in [3] if(main::i!=$b) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -73,7 +73,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -volatile byte main::i loadstore 8.75 +__loadstore volatile char main::i // 8.75 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -145,9 +145,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -volatile byte main::i loadstore zp[1]:2 8.75 +__loadstore volatile char main::i // zp[1]:2 8.75 zp[1]:2 [ main::i ] diff --git a/src/test/ref/inline-asm-refout-var.sym b/src/test/ref/inline-asm-refout-var.sym index 8c482417a..e84589337 100644 --- a/src/test/ref/inline-asm-refout-var.sym +++ b/src/test/ref/inline-asm-refout-var.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -volatile byte main::i loadstore zp[1]:2 8.75 +__loadstore volatile char main::i // zp[1]:2 8.75 zp[1]:2 [ main::i ] diff --git a/src/test/ref/inline-asm-refout.log b/src/test/ref/inline-asm-refout.log index b984f8930..8195a7f60 100644 --- a/src/test/ref/inline-asm-refout.log +++ b/src/test/ref/inline-asm-refout.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,18 +23,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte* table[] = "cml!"z +__constant char * const main::SCREEN = (char *)$400 +__constant char table[] = "cml!"z Adding number conversion cast (unumber) 0 in *(main::SCREEN+$28) = table[0] Adding number conversion cast (unumber) $28 in *(main::SCREEN+$28) = table[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero table in [0] *(main::SCREEN+$28) = table[0] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -122,8 +122,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* table[] = "cml!"z +__constant char * const main::SCREEN = (char *) 1024 +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-asm-refout.sym b/src/test/ref/inline-asm-refout.sym index 568e8cd59..dca303f77 100644 --- a/src/test/ref/inline-asm-refout.sym +++ b/src/test/ref/inline-asm-refout.sym @@ -1,4 +1,4 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* table[] = "cml!"z +__constant char * const main::SCREEN = (char *) 1024 +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-asm-uses-1.asm b/src/test/ref/inline-asm-uses-1.asm index 93008e953..0881b5b83 100644 --- a/src/test/ref/inline-asm-uses-1.asm +++ b/src/test/ref/inline-asm-uses-1.asm @@ -22,7 +22,7 @@ main: { // } rts } -// fgetc(byte zp(2) channel) +// __register(A) char fgetc(__zp(2) volatile char channel) fgetc: { .label channel = 2 .label ret = 3 diff --git a/src/test/ref/inline-asm-uses-1.cfg b/src/test/ref/inline-asm-uses-1.cfg index 2967c7521..60dab7237 100644 --- a/src/test/ref/inline-asm-uses-1.cfg +++ b/src/test/ref/inline-asm-uses-1.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] fgetc::channel = 7 - [1] call fgetc + [1] call fgetc [2] fgetc::return#0 = fgetc::return#2 to:main::@1 main::@1: scope:[main] from main @@ -13,7 +13,7 @@ main::@return: scope:[main] from main::@1 [5] return to:@return -byte fgetc(volatile byte fgetc::channel) +char fgetc(volatile char channel) fgetc: scope:[fgetc] from main [6] fgetc::ret = 0 asm { ldxchannel jsrCHKIN jsrGETIN staret jsrCLRCHN } diff --git a/src/test/ref/inline-asm-uses-1.log b/src/test/ref/inline-asm-uses-1.log index 36b560549..21f9c121e 100644 --- a/src/test/ref/inline-asm-uses-1.log +++ b/src/test/ref/inline-asm-uses-1.log @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start fgetc::channel = 7 - call fgetc + call fgetc fgetc::return#0 = fgetc::return#2 to:main::@1 main::@1: scope:[main] from main @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 return to:@return -byte fgetc(volatile byte fgetc::channel) +char fgetc(volatile char channel) fgetc: scope:[fgetc] from main fgetc::ret = 0 asm { ldxchannel jsrCHKIN jsrGETIN staret jsrCLRCHN } @@ -33,7 +33,7 @@ fgetc::@return: scope:[fgetc] from fgetc void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,35 +42,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHKIN = (byte*)$1000 -constant byte* const CLRCHN = (byte*)$1006 -constant byte* const GETIN = (byte*)$1003 +__constant char * const CHKIN = (char *)$1000 +__constant char * const CLRCHN = (char *)$1006 +__constant char * const GETIN = (char *)$1003 void __start() -byte fgetc(volatile byte fgetc::channel) -volatile byte fgetc::channel loadstore -volatile byte fgetc::ret loadstore -byte fgetc::return -byte fgetc::return#0 -byte fgetc::return#1 -byte fgetc::return#2 -byte fgetc::return#3 -byte fgetc::return#4 +char fgetc(volatile char channel) +__loadstore volatile char fgetc::channel +__loadstore volatile char fgetc::ret +char fgetc::return +char fgetc::return#0 +char fgetc::return#1 +char fgetc::return#2 +char fgetc::return#3 +char fgetc::return#4 void main() -constant byte* const main::SCREEN = (byte*)$1009 -byte main::x -byte main::x#0 +__constant char * const main::SCREEN = (char *)$1009 +char main::x +char main::x#0 Adding number conversion cast (unumber) 7 in fgetc::channel = 7 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast fgetc::channel = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 4105 -Simplifying constant pointer cast (byte*) 4096 -Simplifying constant pointer cast (byte*) 4099 -Simplifying constant pointer cast (byte*) 4102 +Simplifying constant pointer cast (char *) 4105 +Simplifying constant pointer cast (char *) 4096 +Simplifying constant pointer cast (char *) 4099 +Simplifying constant pointer cast (char *) 4102 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)fgetc::return#1 = fgetc::ret fgetc::return#4 fgetc::return#2 Alias fgetc::return#0 = fgetc::return#3 @@ -97,7 +97,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] fgetc::channel = 7 - [1] call fgetc + [1] call fgetc [2] fgetc::return#0 = fgetc::return#2 to:main::@1 main::@1: scope:[main] from main @@ -108,7 +108,7 @@ main::@return: scope:[main] from main::@1 [5] return to:@return -byte fgetc(volatile byte fgetc::channel) +char fgetc(volatile char channel) fgetc: scope:[fgetc] from main [6] fgetc::ret = 0 asm { ldxchannel jsrCHKIN jsrGETIN staret jsrCLRCHN } @@ -121,16 +121,16 @@ fgetc::@return: scope:[fgetc] from fgetc VARIABLE REGISTER WEIGHTS -byte fgetc(volatile byte fgetc::channel) -volatile byte fgetc::channel loadstore 1.0 -volatile byte fgetc::ret loadstore 11.0 -byte fgetc::return -byte fgetc::return#0 4.0 -byte fgetc::return#1 22.0 -byte fgetc::return#2 4.333333333333333 +char fgetc(volatile char channel) +__loadstore volatile char fgetc::channel // 1.0 +__loadstore volatile char fgetc::ret // 11.0 +char fgetc::return +char fgetc::return#0 // 4.0 +char fgetc::return#1 // 22.0 +char fgetc::return#2 // 4.333333333333333 void main() -byte main::x -byte main::x#0 4.0 +char main::x +char main::x#0 // 4.0 Initial phi equivalence classes Added variable fgetc::channel to live range equivalence class [ fgetc::channel ] @@ -200,7 +200,7 @@ main: { // [0] fgetc::channel = 7 -- vbuz1=vbuc1 lda #7 sta.z fgetc.channel - // [1] call fgetc + // [1] call fgetc jsr fgetc // [2] fgetc::return#0 = fgetc::return#2 jmp __b1 @@ -216,7 +216,7 @@ main: { rts } // fgetc -// fgetc(byte zp(2) channel) +// __register(A) char fgetc(__zp(2) volatile char channel) fgetc: { .label channel = 2 .label ret = 3 @@ -251,20 +251,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const CHKIN = (byte*) 4096 -constant byte* const CLRCHN = (byte*) 4102 -constant byte* const GETIN = (byte*) 4099 -byte fgetc(volatile byte fgetc::channel) -volatile byte fgetc::channel loadstore zp[1]:2 1.0 -volatile byte fgetc::ret loadstore zp[1]:3 11.0 -byte fgetc::return -byte fgetc::return#0 reg byte a 4.0 -byte fgetc::return#1 reg byte a 22.0 -byte fgetc::return#2 reg byte a 4.333333333333333 +__constant char * const CHKIN = (char *) 4096 +__constant char * const CLRCHN = (char *) 4102 +__constant char * const GETIN = (char *) 4099 +char fgetc(volatile char channel) +__loadstore volatile char fgetc::channel // zp[1]:2 1.0 +__loadstore volatile char fgetc::ret // zp[1]:3 11.0 +char fgetc::return +char fgetc::return#0 // reg byte a 4.0 +char fgetc::return#1 // reg byte a 22.0 +char fgetc::return#2 // reg byte a 4.333333333333333 void main() -constant byte* const main::SCREEN = (byte*) 4105 -byte main::x -byte main::x#0 reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 4105 +char main::x +char main::x#0 // reg byte a 4.0 zp[1]:2 [ fgetc::channel ] reg byte a [ fgetc::return#0 ] @@ -300,7 +300,7 @@ main: { // [0] fgetc::channel = 7 -- vbuz1=vbuc1 lda #7 sta.z fgetc.channel - // [1] call fgetc + // [1] call fgetc jsr fgetc // [2] fgetc::return#0 = fgetc::return#2 // main::@1 @@ -314,7 +314,7 @@ main: { rts } // fgetc -// fgetc(byte zp(2) channel) +// __register(A) char fgetc(__zp(2) volatile char channel) fgetc: { .label channel = 2 .label ret = 3 diff --git a/src/test/ref/inline-asm-uses-1.sym b/src/test/ref/inline-asm-uses-1.sym index f4980437b..00cf69855 100644 --- a/src/test/ref/inline-asm-uses-1.sym +++ b/src/test/ref/inline-asm-uses-1.sym @@ -1,17 +1,17 @@ -constant byte* const CHKIN = (byte*) 4096 -constant byte* const CLRCHN = (byte*) 4102 -constant byte* const GETIN = (byte*) 4099 -byte fgetc(volatile byte fgetc::channel) -volatile byte fgetc::channel loadstore zp[1]:2 1.0 -volatile byte fgetc::ret loadstore zp[1]:3 11.0 -byte fgetc::return -byte fgetc::return#0 reg byte a 4.0 -byte fgetc::return#1 reg byte a 22.0 -byte fgetc::return#2 reg byte a 4.333333333333333 +__constant char * const CHKIN = (char *) 4096 +__constant char * const CLRCHN = (char *) 4102 +__constant char * const GETIN = (char *) 4099 +char fgetc(volatile char channel) +__loadstore volatile char fgetc::channel // zp[1]:2 1.0 +__loadstore volatile char fgetc::ret // zp[1]:3 11.0 +char fgetc::return +char fgetc::return#0 // reg byte a 4.0 +char fgetc::return#1 // reg byte a 22.0 +char fgetc::return#2 // reg byte a 4.333333333333333 void main() -constant byte* const main::SCREEN = (byte*) 4105 -byte main::x -byte main::x#0 reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 4105 +char main::x +char main::x#0 // reg byte a 4.0 zp[1]:2 [ fgetc::channel ] reg byte a [ fgetc::return#0 ] diff --git a/src/test/ref/inline-asm-uses-problem-2.cfg b/src/test/ref/inline-asm-uses-problem-2.cfg index feb88fc54..6df1d338f 100644 --- a/src/test/ref/inline-asm-uses-problem-2.cfg +++ b/src/test/ref/inline-asm-uses-problem-2.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] main::zp2 = (byte*) 1024 + [0] main::zp2 = (char *) 1024 [1] main::zp2[1] = '*' asm { lda#$28 stazp2 } [3] main::zp2[2] = '*' diff --git a/src/test/ref/inline-asm-uses-problem-2.log b/src/test/ref/inline-asm-uses-problem-2.log index 9cf13536d..09a2ba546 100644 --- a/src/test/ref/inline-asm-uses-problem-2.log +++ b/src/test/ref/inline-asm-uses-problem-2.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::zp2 = (byte*)$400 + main::zp2 = (char *)$400 main::zp2[1] = '*' asm { lda#$28 stazp2 } main::zp2[2] = '*' @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,17 +26,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte* volatile main::zp2 loadstore !zp[-1]:252 +__loadstore char * volatile main::zp2 // !zp[-1]:252 Adding number conversion cast (unumber) 1 in main::zp2[1] = '*' Adding number conversion cast (unumber) 2 in main::zp2[2] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -52,7 +52,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::zp2 = (byte*) 1024 + [0] main::zp2 = (char *) 1024 [1] main::zp2[1] = '*' asm { lda#$28 stazp2 } [3] main::zp2[2] = '*' @@ -64,14 +64,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* volatile main::zp2 loadstore !zp[-1]:252 2.0 +__loadstore char * volatile main::zp2 // !zp[-1]:252 2.0 Initial phi equivalence classes Added variable main::zp2 to live range equivalence class [ main::zp2 ] Complete equivalence classes [ main::zp2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::zp2 = (byte*) 1024 [ main::zp2 ] ( [ main::zp2 ] { } ) always clobbers reg byte a +Statement [0] main::zp2 = (char *) 1024 [ main::zp2 ] ( [ main::zp2 ] { } ) always clobbers reg byte a Statement [1] main::zp2[1] = '*' [ main::zp2 ] ( [ main::zp2 ] { } ) always clobbers reg byte a reg byte y Statement asm { lda#$28 stazp2 } always clobbers reg byte a Statement [3] main::zp2[2] = '*' [ ] ( [ ] { } ) always clobbers reg byte a reg byte y @@ -102,7 +102,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label zp2 = $fc - // [0] main::zp2 = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::zp2 = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z zp2 lda #>$400 @@ -134,7 +134,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte* volatile main::zp2 loadstore !zp[-1]:252 zp[2]:252 2.0 +__loadstore char * volatile main::zp2 // !zp[-1]:252 zp[2]:252 2.0 zp[2]:252 [ main::zp2 ] @@ -160,7 +160,7 @@ Score: 42 main: { .label zp2 = $fc // __address(0xfc) char * zp2 = (char*)0x0400 - // [0] main::zp2 = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::zp2 = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z zp2 lda #>$400 diff --git a/src/test/ref/inline-asm-uses-problem-2.sym b/src/test/ref/inline-asm-uses-problem-2.sym index d848149d5..abfe7502a 100644 --- a/src/test/ref/inline-asm-uses-problem-2.sym +++ b/src/test/ref/inline-asm-uses-problem-2.sym @@ -1,4 +1,4 @@ void main() -byte* volatile main::zp2 loadstore !zp[-1]:252 zp[2]:252 2.0 +__loadstore char * volatile main::zp2 // !zp[-1]:252 zp[2]:252 2.0 zp[2]:252 [ main::zp2 ] diff --git a/src/test/ref/inline-assignment.log b/src/test/ref/inline-assignment.log index c808af341..b54299214 100644 --- a/src/test/ref/inline-assignment.log +++ b/src/test/ref/inline-assignment.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,24 +30,24 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +char main::a +char main::a#0 +char main::a#1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) $50 in (SCREEN+$50)[main::i#2] = main::a#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $50 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $50 +Finalized unsigned number type (char) $50 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::a#1 = main::i#2 Successful SSA optimization Pass2AliasElimination @@ -69,7 +69,7 @@ Adding number conversion cast (unumber) $28 in [4] if(main::i#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -104,10 +104,10 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 22.0 -byte main::i -byte main::i#1 16.5 +char main::a +char main::a#1 // 22.0 +char main::i +char main::i#1 // 16.5 Initial phi equivalence classes [ main::a#1 main::i#1 ] @@ -184,12 +184,12 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 reg byte x 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 +char main::a +char main::a#1 // reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 16.5 reg byte x [ main::a#1 main::i#1 ] diff --git a/src/test/ref/inline-assignment.sym b/src/test/ref/inline-assignment.sym index 527677d4f..75257fe36 100644 --- a/src/test/ref/inline-assignment.sym +++ b/src/test/ref/inline-assignment.sym @@ -1,8 +1,8 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 reg byte x 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 +char main::a +char main::a#1 // reg byte x 22.0 +char main::i +char main::i#1 // reg byte x 16.5 reg byte x [ main::a#1 main::i#1 ] diff --git a/src/test/ref/inline-dword-0.log b/src/test/ref/inline-dword-0.log index 7ce9e2a36..c7c537ca6 100644 --- a/src/test/ref/inline-dword-0.log +++ b/src/test/ref/inline-dword-0.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$0 = 0 * SIZEOF_DWORD + main::$0 = 0 * SIZEOF_UNSIGNED_LONG main::screen[main::$0] = main::w to:main::@return main::@return: scope:[main] from main @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,40 +21,40 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_DWORD = 4 +__constant char SIZEOF_UNSIGNED_LONG = 4 void __start() void main() -number~ main::$0 -constant dword* main::screen = (byte*)$400 -constant dword main::w = $1234dw=$5678 +number main::$0 +__constant unsigned long *main::screen = (char *)$400 +__constant unsigned long main::w = $1234dw=$5678 -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_DWORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_DWORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNSIGNED_LONG +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNSIGNED_LONG Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_DWORD -Constant right-side identified [0] main::$0 = 0 * SIZEOF_DWORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_UNSIGNED_LONG +Constant right-side identified [0] main::$0 = 0 * SIZEOF_UNSIGNED_LONG Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_DWORD +Constant main::$0 = 0*SIZEOF_UNSIGNED_LONG Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_DWORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_LONG in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::screen in [1] main::screen[main::$0] = main::w Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 -Eliminating unused constant SIZEOF_DWORD +Eliminating unused constant SIZEOF_UNSIGNED_LONG Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $1234 -Finalized unsigned number type (word) $5678 +Finalized unsigned number type (unsigned int) $1234 +Finalized unsigned number type (unsigned int) $5678 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -130,8 +130,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant dword* main::screen = (byte*) 1024 -constant dword main::w = $1234dw=$5678 +__constant unsigned long *main::screen = (char *) 1024 +__constant unsigned long main::w = $1234dw=$5678 diff --git a/src/test/ref/inline-dword-0.sym b/src/test/ref/inline-dword-0.sym index e84ddda1f..55fdb0bee 100644 --- a/src/test/ref/inline-dword-0.sym +++ b/src/test/ref/inline-dword-0.sym @@ -1,4 +1,4 @@ void main() -constant dword* main::screen = (byte*) 1024 -constant dword main::w = $1234dw=$5678 +__constant unsigned long *main::screen = (char *) 1024 +__constant unsigned long main::w = $1234dw=$5678 diff --git a/src/test/ref/inline-function-if.log b/src/test/ref/inline-function-if.log index a938e85e1..2ccea126e 100644 --- a/src/test/ref/inline-function-if.log +++ b/src/test/ref/inline-function-if.log @@ -1,6 +1,6 @@ Inlined call main::$0 = call toUpper('c', true) Inlined call main::$1 = call toUpper('m', false) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -69,7 +69,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -80,59 +80,59 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::toUpper1_$0 +char main::$0 +char main::$1 +bool main::toUpper1_$0 bool main::toUpper1_bo bool main::toUpper1_bo#0 bool main::toUpper1_bo#1 -byte main::toUpper1_ch -byte main::toUpper1_ch#0 -byte main::toUpper1_ch#1 -byte main::toUpper1_res -byte main::toUpper1_res#0 -byte main::toUpper1_res#1 -byte main::toUpper1_res#2 -byte main::toUpper1_res#3 -byte main::toUpper1_return -byte main::toUpper1_return#0 -byte main::toUpper1_return#1 -byte main::toUpper1_return#2 -byte main::toUpper1_return#3 -bool~ main::toUpper2_$0 +char main::toUpper1_ch +char main::toUpper1_ch#0 +char main::toUpper1_ch#1 +char main::toUpper1_res +char main::toUpper1_res#0 +char main::toUpper1_res#1 +char main::toUpper1_res#2 +char main::toUpper1_res#3 +char main::toUpper1_return +char main::toUpper1_return#0 +char main::toUpper1_return#1 +char main::toUpper1_return#2 +char main::toUpper1_return#3 +bool main::toUpper2_$0 bool main::toUpper2_bo bool main::toUpper2_bo#0 bool main::toUpper2_bo#1 -byte main::toUpper2_ch -byte main::toUpper2_ch#0 -byte main::toUpper2_ch#1 -byte main::toUpper2_res -byte main::toUpper2_res#0 -byte main::toUpper2_res#1 -byte main::toUpper2_res#2 -byte main::toUpper2_res#3 -byte main::toUpper2_return -byte main::toUpper2_return#0 -byte main::toUpper2_return#1 -byte main::toUpper2_return#2 -byte main::toUpper2_return#3 -constant byte* screen = (byte*)$400 +char main::toUpper2_ch +char main::toUpper2_ch#0 +char main::toUpper2_ch#1 +char main::toUpper2_res +char main::toUpper2_res#0 +char main::toUpper2_res#1 +char main::toUpper2_res#2 +char main::toUpper2_res#3 +char main::toUpper2_return +char main::toUpper2_return#0 +char main::toUpper2_return#1 +char main::toUpper2_return#2 +char main::toUpper2_return#3 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) $40 in main::toUpper1_res#1 = main::toUpper1_res#3 + $40 Adding number conversion cast (unumber) 0 in screen[0] = main::$0 Adding number conversion cast (unumber) $40 in main::toUpper2_res#1 = main::toUpper2_res#3 + $40 Adding number conversion cast (unumber) 1 in screen[1] = main::$1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $40 Simplifying constant integer cast 0 Simplifying constant integer cast $40 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::toUpper1_ch#0 = main::toUpper1_ch#1 main::toUpper1_res#0 main::toUpper1_res#3 Alias main::toUpper1_bo#0 = main::toUpper1_bo#1 @@ -226,13 +226,13 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() bool main::toUpper1_bo -byte main::toUpper1_ch -byte main::toUpper1_res -byte main::toUpper1_return +char main::toUpper1_ch +char main::toUpper1_res +char main::toUpper1_return bool main::toUpper2_bo -byte main::toUpper2_ch -byte main::toUpper2_res -byte main::toUpper2_return +char main::toUpper2_ch +char main::toUpper2_res +char main::toUpper2_return Initial phi equivalence classes Complete equivalence classes @@ -317,17 +317,17 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() bool main::toUpper1_bo -byte main::toUpper1_ch -constant byte main::toUpper1_ch#0 toUpper1_ch = 'c' -byte main::toUpper1_res -byte main::toUpper1_return -constant byte main::toUpper1_return#0 toUpper1_return = main::toUpper1_ch#0+$40 +char main::toUpper1_ch +__constant char main::toUpper1_ch#0 = 'c' // toUpper1_ch +char main::toUpper1_res +char main::toUpper1_return +__constant char main::toUpper1_return#0 = main::toUpper1_ch#0+$40 // toUpper1_return bool main::toUpper2_bo -byte main::toUpper2_ch -constant byte main::toUpper2_ch#0 toUpper2_ch = 'm' -byte main::toUpper2_res -byte main::toUpper2_return -constant byte* screen = (byte*) 1024 +char main::toUpper2_ch +__constant char main::toUpper2_ch#0 = 'm' // toUpper2_ch +char main::toUpper2_res +char main::toUpper2_return +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/inline-function-if.sym b/src/test/ref/inline-function-if.sym index 72a284484..e64d569dc 100644 --- a/src/test/ref/inline-function-if.sym +++ b/src/test/ref/inline-function-if.sym @@ -1,14 +1,14 @@ void main() bool main::toUpper1_bo -byte main::toUpper1_ch -constant byte main::toUpper1_ch#0 toUpper1_ch = 'c' -byte main::toUpper1_res -byte main::toUpper1_return -constant byte main::toUpper1_return#0 toUpper1_return = main::toUpper1_ch#0+$40 +char main::toUpper1_ch +__constant char main::toUpper1_ch#0 = 'c' // toUpper1_ch +char main::toUpper1_res +char main::toUpper1_return +__constant char main::toUpper1_return#0 = main::toUpper1_ch#0+$40 // toUpper1_return bool main::toUpper2_bo -byte main::toUpper2_ch -constant byte main::toUpper2_ch#0 toUpper2_ch = 'm' -byte main::toUpper2_res -byte main::toUpper2_return -constant byte* screen = (byte*) 1024 +char main::toUpper2_ch +__constant char main::toUpper2_ch#0 = 'm' // toUpper2_ch +char main::toUpper2_res +char main::toUpper2_return +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/inline-function-level2.cfg b/src/test/ref/inline-function-level2.cfg index a1fbad963..86e8fd1a2 100644 --- a/src/test/ref/inline-function-level2.cfg +++ b/src/test/ref/inline-function-level2.cfg @@ -4,14 +4,14 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::sc#2 = phi( main/(byte*) 1024, main::@2/main::sc#1 ) + [1] main::sc#2 = phi( main/(char *) 1024, main::@2/main::sc#1 ) [2] if(main::sc#2<$400+$3e8) goto main::@2 to:main::line1 main::line1: scope:[main] from main::@1 [3] phi() to:main::line1_@1 main::line1_@1: scope:[main] from main::@3 main::line1 - [4] cur_line#15 = phi( main::@3/cur_line#1, main::line1/(byte*) 1024 ) + [4] cur_line#15 = phi( main::@3/cur_line#1, main::line1/(char *) 1024 ) [4] main::line1_pos#2 = phi( main::@3/main::line1_pos#1, main::line1/main::line1_xpos#0*$100 ) [4] main::line1_i#2 = phi( main::@3/main::line1_i#1, main::line1/0 ) [5] if(main::line1_i#2main::@1] __b1_from_main: - // [1] phi main::sc#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::sc#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z sc lda #>$400 @@ -695,7 +695,7 @@ main: { line1: // [4] phi from main::line1 to main::line1_@1 [phi:main::line1->main::line1_@1] line1___b1_from_line1: - // [4] phi cur_line#15 = (byte*) 1024 [phi:main::line1->main::line1_@1#0] -- pbuz1=pbuc1 + // [4] phi cur_line#15 = (char *) 1024 [phi:main::line1->main::line1_@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cur_line lda #>$400 @@ -720,7 +720,7 @@ main: { line2: // [7] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1] line2___b1_from_line2: - // [7] phi cur_line#10 = (byte*) 1024 [phi:main::line2->main::line2_@1#0] -- pbuz1=pbuc1 + // [7] phi cur_line#10 = (char *) 1024 [phi:main::line2->main::line2_@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cur_line_1 lda #>$400 @@ -867,49 +867,49 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte* cur_line -byte* cur_line#1 cur_line zp[2]:2 11.0 -byte* cur_line#10 cur_line_1 zp[2]:6 6.6000000000000005 -byte* cur_line#15 cur_line zp[2]:2 6.6000000000000005 -byte* cur_line#3 cur_line_1 zp[2]:6 11.0 +char *cur_line +char *cur_line#1 // cur_line zp[2]:2 11.0 +char *cur_line#10 // cur_line_1 zp[2]:6 6.6000000000000005 +char *cur_line#15 // cur_line zp[2]:2 6.6000000000000005 +char *cur_line#3 // cur_line_1 zp[2]:6 11.0 void main() -byte main::line1_ch -constant byte main::line1_ch#0 line1_ch = '*' -byte main::line1_i -byte main::line1_i#1 reg byte x 22.0 -byte main::line1_i#2 reg byte x 5.5 -word main::line1_pos -word main::line1_pos#1 line1_pos zp[2]:6 7.333333333333333 -word main::line1_pos#2 line1_pos zp[2]:6 8.25 -byte main::line1_xadd -constant byte main::line1_xadd#0 line1_xadd = $40 -byte main::line1_xpos -constant byte main::line1_xpos#0 line1_xpos = 2 -byte main::line1_ysize -constant byte main::line1_ysize#0 line1_ysize = $a -byte main::line2_ch -constant byte main::line2_ch#0 line2_ch = '.' -byte main::line2_i -byte main::line2_i#1 reg byte x 22.0 -byte main::line2_i#2 reg byte x 5.5 -word main::line2_pos -word main::line2_pos#1 line2_pos zp[2]:4 7.333333333333333 -word main::line2_pos#2 line2_pos zp[2]:4 8.25 -byte main::line2_xadd -constant byte main::line2_xadd#0 line2_xadd = $80 -byte main::line2_xpos -constant byte main::line2_xpos#0 line2_xpos = 4 -byte main::line2_ysize -constant byte main::line2_ysize#0 line2_ysize = $f -byte main::plot1_ch -byte main::plot1_xpos -byte main::plot1_xpos#0 reg byte a 22.0 -byte main::plot2_ch -byte main::plot2_xpos -byte main::plot2_xpos#0 reg byte y 22.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 +char main::line1_ch +__constant char main::line1_ch#0 = '*' // line1_ch +char main::line1_i +char main::line1_i#1 // reg byte x 22.0 +char main::line1_i#2 // reg byte x 5.5 +unsigned int main::line1_pos +unsigned int main::line1_pos#1 // line1_pos zp[2]:6 7.333333333333333 +unsigned int main::line1_pos#2 // line1_pos zp[2]:6 8.25 +char main::line1_xadd +__constant char main::line1_xadd#0 = $40 // line1_xadd +char main::line1_xpos +__constant char main::line1_xpos#0 = 2 // line1_xpos +char main::line1_ysize +__constant char main::line1_ysize#0 = $a // line1_ysize +char main::line2_ch +__constant char main::line2_ch#0 = '.' // line2_ch +char main::line2_i +char main::line2_i#1 // reg byte x 22.0 +char main::line2_i#2 // reg byte x 5.5 +unsigned int main::line2_pos +unsigned int main::line2_pos#1 // line2_pos zp[2]:4 7.333333333333333 +unsigned int main::line2_pos#2 // line2_pos zp[2]:4 8.25 +char main::line2_xadd +__constant char main::line2_xadd#0 = $80 // line2_xadd +char main::line2_xpos +__constant char main::line2_xpos#0 = 4 // line2_xpos +char main::line2_ysize +__constant char main::line2_ysize#0 = $f // line2_ysize +char main::plot1_ch +char main::plot1_xpos +char main::plot1_xpos#0 // reg byte a 22.0 +char main::plot2_ch +char main::plot2_xpos +char main::plot2_xpos#0 // reg byte y 22.0 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 reg byte x [ main::line1_i#2 main::line1_i#1 ] zp[2]:2 [ cur_line#15 cur_line#1 main::sc#2 main::sc#1 ] @@ -952,7 +952,7 @@ main: { .label line1_pos = 6 .label line2_pos = 4 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::sc#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::sc#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z sc lda #>$400 @@ -972,7 +972,7 @@ main: { // [3] phi from main::@1 to main::line1 [phi:main::@1->main::line1] // main::line1 // [4] phi from main::line1 to main::line1_@1 [phi:main::line1->main::line1_@1] - // [4] phi cur_line#15 = (byte*) 1024 [phi:main::line1->main::line1_@1#0] -- pbuz1=pbuc1 + // [4] phi cur_line#15 = (char *) 1024 [phi:main::line1->main::line1_@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cur_line lda #>$400 @@ -993,7 +993,7 @@ main: { // [6] phi from main::line1_@1 to main::line2 [phi:main::line1_@1->main::line2] // main::line2 // [7] phi from main::line2 to main::line2_@1 [phi:main::line2->main::line2_@1] - // [7] phi cur_line#10 = (byte*) 1024 [phi:main::line2->main::line2_@1#0] -- pbuz1=pbuc1 + // [7] phi cur_line#10 = (char *) 1024 [phi:main::line2->main::line2_@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cur_line_1 lda #>$400 diff --git a/src/test/ref/inline-function-level2.sym b/src/test/ref/inline-function-level2.sym index 81a5f87e4..06b152f0a 100644 --- a/src/test/ref/inline-function-level2.sym +++ b/src/test/ref/inline-function-level2.sym @@ -1,46 +1,46 @@ -byte* cur_line -byte* cur_line#1 cur_line zp[2]:2 11.0 -byte* cur_line#10 cur_line_1 zp[2]:6 6.6000000000000005 -byte* cur_line#15 cur_line zp[2]:2 6.6000000000000005 -byte* cur_line#3 cur_line_1 zp[2]:6 11.0 +char *cur_line +char *cur_line#1 // cur_line zp[2]:2 11.0 +char *cur_line#10 // cur_line_1 zp[2]:6 6.6000000000000005 +char *cur_line#15 // cur_line zp[2]:2 6.6000000000000005 +char *cur_line#3 // cur_line_1 zp[2]:6 11.0 void main() -byte main::line1_ch -constant byte main::line1_ch#0 line1_ch = '*' -byte main::line1_i -byte main::line1_i#1 reg byte x 22.0 -byte main::line1_i#2 reg byte x 5.5 -word main::line1_pos -word main::line1_pos#1 line1_pos zp[2]:6 7.333333333333333 -word main::line1_pos#2 line1_pos zp[2]:6 8.25 -byte main::line1_xadd -constant byte main::line1_xadd#0 line1_xadd = $40 -byte main::line1_xpos -constant byte main::line1_xpos#0 line1_xpos = 2 -byte main::line1_ysize -constant byte main::line1_ysize#0 line1_ysize = $a -byte main::line2_ch -constant byte main::line2_ch#0 line2_ch = '.' -byte main::line2_i -byte main::line2_i#1 reg byte x 22.0 -byte main::line2_i#2 reg byte x 5.5 -word main::line2_pos -word main::line2_pos#1 line2_pos zp[2]:4 7.333333333333333 -word main::line2_pos#2 line2_pos zp[2]:4 8.25 -byte main::line2_xadd -constant byte main::line2_xadd#0 line2_xadd = $80 -byte main::line2_xpos -constant byte main::line2_xpos#0 line2_xpos = 4 -byte main::line2_ysize -constant byte main::line2_ysize#0 line2_ysize = $f -byte main::plot1_ch -byte main::plot1_xpos -byte main::plot1_xpos#0 reg byte a 22.0 -byte main::plot2_ch -byte main::plot2_xpos -byte main::plot2_xpos#0 reg byte y 22.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 +char main::line1_ch +__constant char main::line1_ch#0 = '*' // line1_ch +char main::line1_i +char main::line1_i#1 // reg byte x 22.0 +char main::line1_i#2 // reg byte x 5.5 +unsigned int main::line1_pos +unsigned int main::line1_pos#1 // line1_pos zp[2]:6 7.333333333333333 +unsigned int main::line1_pos#2 // line1_pos zp[2]:6 8.25 +char main::line1_xadd +__constant char main::line1_xadd#0 = $40 // line1_xadd +char main::line1_xpos +__constant char main::line1_xpos#0 = 2 // line1_xpos +char main::line1_ysize +__constant char main::line1_ysize#0 = $a // line1_ysize +char main::line2_ch +__constant char main::line2_ch#0 = '.' // line2_ch +char main::line2_i +char main::line2_i#1 // reg byte x 22.0 +char main::line2_i#2 // reg byte x 5.5 +unsigned int main::line2_pos +unsigned int main::line2_pos#1 // line2_pos zp[2]:4 7.333333333333333 +unsigned int main::line2_pos#2 // line2_pos zp[2]:4 8.25 +char main::line2_xadd +__constant char main::line2_xadd#0 = $80 // line2_xadd +char main::line2_xpos +__constant char main::line2_xpos#0 = 4 // line2_xpos +char main::line2_ysize +__constant char main::line2_ysize#0 = $f // line2_ysize +char main::plot1_ch +char main::plot1_xpos +char main::plot1_xpos#0 // reg byte a 22.0 +char main::plot2_ch +char main::plot2_xpos +char main::plot2_xpos#0 // reg byte y 22.0 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 reg byte x [ main::line1_i#2 main::line1_i#1 ] zp[2]:2 [ cur_line#15 cur_line#1 main::sc#2 main::sc#1 ] diff --git a/src/test/ref/inline-function-min.log b/src/test/ref/inline-function-min.log index 04b6b4008..922c0497b 100644 --- a/src/test/ref/inline-function-min.log +++ b/src/test/ref/inline-function-min.log @@ -1,7 +1,7 @@ Inlined call main::$0 = call sum(2, 1) Inlined call main::$1 = call sum($a, 3) Inlined call main::$2 = call sum(4, 8) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -69,7 +69,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -80,46 +80,46 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::sum1_$0 -byte main::sum1_a -byte main::sum1_a#0 -byte main::sum1_a#1 -byte main::sum1_b -byte main::sum1_b#0 -byte main::sum1_b#1 -byte main::sum1_return -byte main::sum1_return#0 -byte main::sum1_return#1 -byte main::sum1_return#2 -byte main::sum1_return#3 -byte~ main::sum2_$0 -byte main::sum2_a -byte main::sum2_a#0 -byte main::sum2_a#1 -byte main::sum2_b -byte main::sum2_b#0 -byte main::sum2_b#1 -byte main::sum2_return -byte main::sum2_return#0 -byte main::sum2_return#1 -byte main::sum2_return#2 -byte main::sum2_return#3 -byte~ main::sum3_$0 -byte main::sum3_a -byte main::sum3_a#0 -byte main::sum3_a#1 -byte main::sum3_b -byte main::sum3_b#0 -byte main::sum3_b#1 -byte main::sum3_return -byte main::sum3_return#0 -byte main::sum3_return#1 -byte main::sum3_return#2 -byte main::sum3_return#3 -constant byte* screen = (byte*)$400 +char main::$0 +char main::$1 +char main::$2 +char main::sum1_$0 +char main::sum1_a +char main::sum1_a#0 +char main::sum1_a#1 +char main::sum1_b +char main::sum1_b#0 +char main::sum1_b#1 +char main::sum1_return +char main::sum1_return#0 +char main::sum1_return#1 +char main::sum1_return#2 +char main::sum1_return#3 +char main::sum2_$0 +char main::sum2_a +char main::sum2_a#0 +char main::sum2_a#1 +char main::sum2_b +char main::sum2_b#0 +char main::sum2_b#1 +char main::sum2_return +char main::sum2_return#0 +char main::sum2_return#1 +char main::sum2_return#2 +char main::sum2_return#3 +char main::sum3_$0 +char main::sum3_a +char main::sum3_a#0 +char main::sum3_a#1 +char main::sum3_b +char main::sum3_b#0 +char main::sum3_b#1 +char main::sum3_return +char main::sum3_return#0 +char main::sum3_return#1 +char main::sum3_return#2 +char main::sum3_return#3 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) 2 in main::sum1_a#0 = 2 Adding number conversion cast (unumber) 1 in main::sum1_b#0 = 1 @@ -138,7 +138,7 @@ Inlining cast main::sum2_b#0 = (unumber)3 Inlining cast main::sum3_a#0 = (unumber)4 Inlining cast main::sum3_b#0 = (unumber)8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -149,15 +149,15 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 8 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::sum1_a#0 = main::sum1_a#1 Alias main::sum1_b#0 = main::sum1_b#1 @@ -246,15 +246,15 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::sum1_a -byte main::sum1_b -byte main::sum1_return -byte main::sum2_a -byte main::sum2_b -byte main::sum2_return -byte main::sum3_a -byte main::sum3_b -byte main::sum3_return +char main::sum1_a +char main::sum1_b +char main::sum1_return +char main::sum2_a +char main::sum2_b +char main::sum2_return +char main::sum3_a +char main::sum3_b +char main::sum3_return Initial phi equivalence classes Complete equivalence classes @@ -361,25 +361,25 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::sum1_a -constant byte main::sum1_a#0 sum1_a = 2 -byte main::sum1_b -constant byte main::sum1_b#0 sum1_b = 1 -byte main::sum1_return -constant byte main::sum1_return#0 sum1_return = main::sum1_a#0+main::sum1_b#0 -byte main::sum2_a -constant byte main::sum2_a#0 sum2_a = $a -byte main::sum2_b -constant byte main::sum2_b#0 sum2_b = 3 -byte main::sum2_return -constant byte main::sum2_return#0 sum2_return = main::sum2_a#0+main::sum2_b#0 -byte main::sum3_a -constant byte main::sum3_a#0 sum3_a = 4 -byte main::sum3_b -constant byte main::sum3_b#0 sum3_b = 8 -byte main::sum3_return -constant byte main::sum3_return#0 sum3_return = main::sum3_a#0+main::sum3_b#0 -constant byte* screen = (byte*) 1024 +char main::sum1_a +__constant char main::sum1_a#0 = 2 // sum1_a +char main::sum1_b +__constant char main::sum1_b#0 = 1 // sum1_b +char main::sum1_return +__constant char main::sum1_return#0 = main::sum1_a#0+main::sum1_b#0 // sum1_return +char main::sum2_a +__constant char main::sum2_a#0 = $a // sum2_a +char main::sum2_b +__constant char main::sum2_b#0 = 3 // sum2_b +char main::sum2_return +__constant char main::sum2_return#0 = main::sum2_a#0+main::sum2_b#0 // sum2_return +char main::sum3_a +__constant char main::sum3_a#0 = 4 // sum3_a +char main::sum3_b +__constant char main::sum3_b#0 = 8 // sum3_b +char main::sum3_return +__constant char main::sum3_return#0 = main::sum3_a#0+main::sum3_b#0 // sum3_return +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/inline-function-min.sym b/src/test/ref/inline-function-min.sym index 5f7bd5f79..dc85e7934 100644 --- a/src/test/ref/inline-function-min.sym +++ b/src/test/ref/inline-function-min.sym @@ -1,21 +1,21 @@ void main() -byte main::sum1_a -constant byte main::sum1_a#0 sum1_a = 2 -byte main::sum1_b -constant byte main::sum1_b#0 sum1_b = 1 -byte main::sum1_return -constant byte main::sum1_return#0 sum1_return = main::sum1_a#0+main::sum1_b#0 -byte main::sum2_a -constant byte main::sum2_a#0 sum2_a = $a -byte main::sum2_b -constant byte main::sum2_b#0 sum2_b = 3 -byte main::sum2_return -constant byte main::sum2_return#0 sum2_return = main::sum2_a#0+main::sum2_b#0 -byte main::sum3_a -constant byte main::sum3_a#0 sum3_a = 4 -byte main::sum3_b -constant byte main::sum3_b#0 sum3_b = 8 -byte main::sum3_return -constant byte main::sum3_return#0 sum3_return = main::sum3_a#0+main::sum3_b#0 -constant byte* screen = (byte*) 1024 +char main::sum1_a +__constant char main::sum1_a#0 = 2 // sum1_a +char main::sum1_b +__constant char main::sum1_b#0 = 1 // sum1_b +char main::sum1_return +__constant char main::sum1_return#0 = main::sum1_a#0+main::sum1_b#0 // sum1_return +char main::sum2_a +__constant char main::sum2_a#0 = $a // sum2_a +char main::sum2_b +__constant char main::sum2_b#0 = 3 // sum2_b +char main::sum2_return +__constant char main::sum2_return#0 = main::sum2_a#0+main::sum2_b#0 // sum2_return +char main::sum3_a +__constant char main::sum3_a#0 = 4 // sum3_a +char main::sum3_b +__constant char main::sum3_b#0 = 8 // sum3_b +char main::sum3_return +__constant char main::sum3_return#0 = main::sum3_a#0+main::sum3_b#0 // sum3_return +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/inline-function-print.log b/src/test/ref/inline-function-print.log index 7b13b52bf..031d0763b 100644 --- a/src/test/ref/inline-function-print.log +++ b/src/test/ref/inline-function-print.log @@ -1,6 +1,6 @@ Inlined call call print(screen, main::hello) Inlined call call print(main::$1, main::hello) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -70,7 +70,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -81,51 +81,51 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$1 -constant byte* main::hello = "hello world!" -bool~ main::print1_$0 -byte* main::print1_at -byte* main::print1_at#0 -byte* main::print1_at#1 -byte* main::print1_at#2 -byte* main::print1_at#3 -byte main::print1_i -byte main::print1_i#0 -byte main::print1_i#1 -byte main::print1_i#2 -byte main::print1_i#3 -byte main::print1_j -byte main::print1_j#0 -byte main::print1_j#1 -byte main::print1_j#2 -byte main::print1_j#3 -byte* main::print1_msg -byte* main::print1_msg#0 -byte* main::print1_msg#1 -byte* main::print1_msg#2 -byte* main::print1_msg#3 -bool~ main::print2_$0 -byte* main::print2_at -byte* main::print2_at#0 -byte* main::print2_at#1 -byte* main::print2_at#2 -byte* main::print2_at#3 -byte main::print2_i -byte main::print2_i#0 -byte main::print2_i#1 -byte main::print2_i#2 -byte main::print2_i#3 -byte main::print2_j -byte main::print2_j#0 -byte main::print2_j#1 -byte main::print2_j#2 -byte main::print2_j#3 -byte* main::print2_msg -byte* main::print2_msg#0 -byte* main::print2_msg#1 -byte* main::print2_msg#2 -byte* main::print2_msg#3 -constant byte* screen = (byte*)$400 +char *main::$1 +__constant char *main::hello = "hello world!" +bool main::print1_$0 +char *main::print1_at +char *main::print1_at#0 +char *main::print1_at#1 +char *main::print1_at#2 +char *main::print1_at#3 +char main::print1_i +char main::print1_i#0 +char main::print1_i#1 +char main::print1_i#2 +char main::print1_i#3 +char main::print1_j +char main::print1_j#0 +char main::print1_j#1 +char main::print1_j#2 +char main::print1_j#3 +char *main::print1_msg +char *main::print1_msg#0 +char *main::print1_msg#1 +char *main::print1_msg#2 +char *main::print1_msg#3 +bool main::print2_$0 +char *main::print2_at +char *main::print2_at#0 +char *main::print2_at#1 +char *main::print2_at#2 +char *main::print2_at#3 +char main::print2_i +char main::print2_i#0 +char main::print2_i#1 +char main::print2_i#2 +char main::print2_i#3 +char main::print2_j +char main::print2_j#0 +char main::print2_j#1 +char main::print2_j#2 +char main::print2_j#3 +char *main::print2_msg +char *main::print2_msg#0 +char *main::print2_msg#1 +char *main::print2_msg#2 +char *main::print2_msg#3 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::print1_$0 = 0 != main::print1_msg#1[main::print1_i#2] Adding number conversion cast (unumber) 2 in main::print1_j#1 = main::print1_j#2 + 2 @@ -133,16 +133,16 @@ Adding number conversion cast (unumber) 2*$28 in main::$1 = screen + 2*$28 Adding number conversion cast (unumber) 0 in main::print2_$0 = 0 != main::print2_msg#1[main::print2_i#2] Adding number conversion cast (unumber) 2 in main::print2_j#1 = main::print2_j#2 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::print1_msg#0 = main::print1_msg#3 Alias main::print1_at#0 = main::print1_at#3 @@ -165,13 +165,13 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::print1_$0 [6] if(0!=main::print1_msg#0[main::print1_i#2]) goto main::print1_@2 Simple Condition main::print2_$0 [16] if(0!=main::print2_msg#0[main::print2_i#2]) goto main::print2_@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [10] main::print2_at#0 = screen + (byte)2*$28 +Constant right-side identified [10] main::print2_at#0 = screen + (char)2*$28 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::print1_at#0 = screen Constant main::print1_msg#0 = main::hello Constant main::print1_j#0 = 0 Constant main::print1_i#0 = 0 -Constant main::print2_at#0 = screen+(byte)2*$28 +Constant main::print2_at#0 = screen+(char)2*$28 Constant main::print2_msg#0 = main::hello Constant main::print2_j#0 = 0 Constant main::print2_i#0 = 0 @@ -195,8 +195,8 @@ Constant inlined main::print1_msg#0 = main::hello Constant inlined main::print1_i#0 = 0 Constant inlined main::print1_j#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 2*$28 Successful SSA optimization PassNCastSimplification @@ -256,22 +256,22 @@ main::print1_@2: scope:[main] from main::print1_@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::print1_at -byte main::print1_i -byte main::print1_i#1 22.0 -byte main::print1_i#2 11.0 -byte main::print1_j -byte main::print1_j#1 11.0 -byte main::print1_j#2 11.0 -byte* main::print1_msg -byte* main::print2_at -byte main::print2_i -byte main::print2_i#1 22.0 -byte main::print2_i#2 11.0 -byte main::print2_j -byte main::print2_j#1 11.0 -byte main::print2_j#2 11.0 -byte* main::print2_msg +char *main::print1_at +char main::print1_i +char main::print1_i#1 // 22.0 +char main::print1_i#2 // 11.0 +char main::print1_j +char main::print1_j#1 // 11.0 +char main::print1_j#2 // 11.0 +char *main::print1_msg +char *main::print2_at +char main::print2_i +char main::print2_i#1 // 22.0 +char main::print2_i#2 // 11.0 +char main::print2_j +char main::print2_j#1 // 11.0 +char main::print2_j#2 // 11.0 +char *main::print2_msg Initial phi equivalence classes [ main::print1_i#2 main::print1_i#1 ] @@ -428,25 +428,25 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::hello = "hello world!" -byte* main::print1_at -byte main::print1_i -byte main::print1_i#1 reg byte y 22.0 -byte main::print1_i#2 reg byte y 11.0 -byte main::print1_j -byte main::print1_j#1 reg byte x 11.0 -byte main::print1_j#2 reg byte x 11.0 -byte* main::print1_msg -byte* main::print2_at -constant byte* main::print2_at#0 print2_at = screen+2*$28 -byte main::print2_i -byte main::print2_i#1 reg byte y 22.0 -byte main::print2_i#2 reg byte y 11.0 -byte main::print2_j -byte main::print2_j#1 reg byte x 11.0 -byte main::print2_j#2 reg byte x 11.0 -byte* main::print2_msg -constant byte* screen = (byte*) 1024 +__constant char *main::hello = "hello world!" +char *main::print1_at +char main::print1_i +char main::print1_i#1 // reg byte y 22.0 +char main::print1_i#2 // reg byte y 11.0 +char main::print1_j +char main::print1_j#1 // reg byte x 11.0 +char main::print1_j#2 // reg byte x 11.0 +char *main::print1_msg +char *main::print2_at +__constant char *main::print2_at#0 = screen+2*$28 // print2_at +char main::print2_i +char main::print2_i#1 // reg byte y 22.0 +char main::print2_i#2 // reg byte y 11.0 +char main::print2_j +char main::print2_j#1 // reg byte x 11.0 +char main::print2_j#2 // reg byte x 11.0 +char *main::print2_msg +__constant char *screen = (char *) 1024 reg byte y [ main::print1_i#2 main::print1_i#1 ] reg byte x [ main::print1_j#2 main::print1_j#1 ] diff --git a/src/test/ref/inline-function-print.sym b/src/test/ref/inline-function-print.sym index 29293b450..2a048ad82 100644 --- a/src/test/ref/inline-function-print.sym +++ b/src/test/ref/inline-function-print.sym @@ -1,23 +1,23 @@ void main() -constant byte* main::hello = "hello world!" -byte* main::print1_at -byte main::print1_i -byte main::print1_i#1 reg byte y 22.0 -byte main::print1_i#2 reg byte y 11.0 -byte main::print1_j -byte main::print1_j#1 reg byte x 11.0 -byte main::print1_j#2 reg byte x 11.0 -byte* main::print1_msg -byte* main::print2_at -constant byte* main::print2_at#0 print2_at = screen+2*$28 -byte main::print2_i -byte main::print2_i#1 reg byte y 22.0 -byte main::print2_i#2 reg byte y 11.0 -byte main::print2_j -byte main::print2_j#1 reg byte x 11.0 -byte main::print2_j#2 reg byte x 11.0 -byte* main::print2_msg -constant byte* screen = (byte*) 1024 +__constant char *main::hello = "hello world!" +char *main::print1_at +char main::print1_i +char main::print1_i#1 // reg byte y 22.0 +char main::print1_i#2 // reg byte y 11.0 +char main::print1_j +char main::print1_j#1 // reg byte x 11.0 +char main::print1_j#2 // reg byte x 11.0 +char *main::print1_msg +char *main::print2_at +__constant char *main::print2_at#0 = screen+2*$28 // print2_at +char main::print2_i +char main::print2_i#1 // reg byte y 22.0 +char main::print2_i#2 // reg byte y 11.0 +char main::print2_j +char main::print2_j#1 // reg byte x 11.0 +char main::print2_j#2 // reg byte x 11.0 +char *main::print2_msg +__constant char *screen = (char *) 1024 reg byte y [ main::print1_i#2 main::print1_i#1 ] reg byte x [ main::print1_j#2 main::print1_j#1 ] diff --git a/src/test/ref/inline-function.log b/src/test/ref/inline-function.log index a28aff9de..0935a7054 100644 --- a/src/test/ref/inline-function.log +++ b/src/test/ref/inline-function.log @@ -1,6 +1,6 @@ Inlined call main::$1 = call toD018(screen, charset1) Inlined call main::$3 = call toD018(screen, charset2) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -22,12 +22,12 @@ main::@3: scope:[main] from main::@2 main::toD0181: scope:[main] from main::@3 main::toD0181_charset#1 = phi( main::@3/main::toD0181_charset#0 ) main::toD0181_screen#1 = phi( main::@3/main::toD0181_screen#0 ) - main::toD0181_$3 = (word)main::toD0181_screen#1 + main::toD0181_$3 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$3 / $40 - main::toD0181_$4 = (word)main::toD0181_charset#1 + main::toD0181_$4 = (unsigned int)main::toD0181_charset#1 main::toD0181_$1 = main::toD0181_$4 / $400 main::toD0181_$2 = main::toD0181_$0 | main::toD0181_$1 - main::toD0181_return#0 = (byte)main::toD0181_$2 + main::toD0181_return#0 = (char)main::toD0181_$2 to:main::toD0181_@return main::toD0181_@return: scope:[main] from main::toD0181 main::toD0181_return#2 = phi( main::toD0181/main::toD0181_return#0 ) @@ -50,12 +50,12 @@ main::@5: scope:[main] from main::@4 main::toD0182: scope:[main] from main::@5 main::toD0182_charset#1 = phi( main::@5/main::toD0182_charset#0 ) main::toD0182_screen#1 = phi( main::@5/main::toD0182_screen#0 ) - main::toD0182_$3 = (word)main::toD0182_screen#1 + main::toD0182_$3 = (unsigned int)main::toD0182_screen#1 main::toD0182_$0 = main::toD0182_$3 / $40 - main::toD0182_$4 = (word)main::toD0182_charset#1 + main::toD0182_$4 = (unsigned int)main::toD0182_charset#1 main::toD0182_$1 = main::toD0182_$4 / $400 main::toD0182_$2 = main::toD0182_$0 | main::toD0182_$1 - main::toD0182_return#0 = (byte)main::toD0182_$2 + main::toD0182_return#0 = (char)main::toD0182_$2 to:main::toD0182_@return main::toD0182_@return: scope:[main] from main::toD0182 main::toD0182_return#2 = phi( main::toD0182/main::toD0182_return#0 ) @@ -77,7 +77,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -86,50 +86,50 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BG_COLOR = (byte*)$d021 -constant byte* D018 = (byte*)$d018 -constant byte* RASTER = (byte*)$d012 +__constant char *BG_COLOR = (char *)$d021 +__constant char *D018 = (char *)$d018 +__constant char *RASTER = (char *)$d012 void __start() -constant byte* charset1 = (byte*)$1000 -constant byte* charset2 = (byte*)$1800 +__constant char *charset1 = (char *)$1000 +__constant char *charset2 = (char *)$1800 void main() -bool~ main::$0 -byte~ main::$1 -bool~ main::$2 -byte~ main::$3 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -number~ main::toD0181_$2 -word~ main::toD0181_$3 -word~ main::toD0181_$4 -byte* main::toD0181_charset -byte* main::toD0181_charset#0 -byte* main::toD0181_charset#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -number~ main::toD0182_$0 -number~ main::toD0182_$1 -number~ main::toD0182_$2 -word~ main::toD0182_$3 -word~ main::toD0182_$4 -byte* main::toD0182_charset -byte* main::toD0182_charset#0 -byte* main::toD0182_charset#1 -byte main::toD0182_return -byte main::toD0182_return#0 -byte main::toD0182_return#1 -byte main::toD0182_return#2 -byte main::toD0182_return#3 -byte* main::toD0182_screen -byte* main::toD0182_screen#0 -byte* main::toD0182_screen#1 -constant byte* screen = (byte*)$400 +bool main::$0 +char main::$1 +bool main::$2 +char main::$3 +number main::toD0181_$0 +number main::toD0181_$1 +number main::toD0181_$2 +unsigned int main::toD0181_$3 +unsigned int main::toD0181_$4 +char *main::toD0181_charset +char *main::toD0181_charset#0 +char *main::toD0181_charset#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +number main::toD0182_$0 +number main::toD0182_$1 +number main::toD0182_$2 +unsigned int main::toD0182_$3 +unsigned int main::toD0182_$4 +char *main::toD0182_charset +char *main::toD0182_charset#0 +char *main::toD0182_charset#1 +char main::toD0182_return +char main::toD0182_return#0 +char main::toD0182_return#1 +char main::toD0182_return#2 +char main::toD0182_return#3 +char *main::toD0182_screen +char *main::toD0182_screen#0 +char *main::toD0182_screen#1 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) $ff in main::$0 = *RASTER != $ff Adding number conversion cast (unumber) $40 in main::toD0181_$0 = main::toD0181_$3 / $40 @@ -149,12 +149,12 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BG_COLOR = (unumber)6 Inlining cast *BG_COLOR = (unumber)$b Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 4096 -Simplifying constant pointer cast (byte*) 6144 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 4096 +Simplifying constant pointer cast (char *) 6144 Simplifying constant integer cast $ff Simplifying constant integer cast $40 Simplifying constant integer cast $400 @@ -164,21 +164,21 @@ Simplifying constant integer cast $40 Simplifying constant integer cast $400 Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $62 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $62 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$3 / $40 -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$4 / $400 -Inferred type updated to word in main::toD0181_$2 = main::toD0181_$0 | main::toD0181_$1 -Inferred type updated to word in main::toD0182_$0 = main::toD0182_$3 / $40 -Inferred type updated to word in main::toD0182_$1 = main::toD0182_$4 / $400 -Inferred type updated to word in main::toD0182_$2 = main::toD0182_$0 | main::toD0182_$1 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$3 / $40 +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$4 / $400 +Inferred type updated to unsigned int in main::toD0181_$2 = main::toD0181_$0 | main::toD0181_$1 +Inferred type updated to unsigned int in main::toD0182_$0 = main::toD0182_$3 / $40 +Inferred type updated to unsigned int in main::toD0182_$1 = main::toD0182_$4 / $400 +Inferred type updated to unsigned int in main::toD0182_$2 = main::toD0182_$0 | main::toD0182_$1 Alias main::toD0181_screen#0 = main::toD0181_screen#1 Alias main::toD0181_charset#0 = main::toD0181_charset#1 Alias main::toD0181_return#0 = main::toD0181_return#2 main::toD0181_return#1 main::toD0181_return#3 main::$1 @@ -194,10 +194,10 @@ Constant main::toD0181_charset#0 = charset1 Constant main::toD0182_screen#0 = screen Constant main::toD0182_charset#0 = charset2 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$3 = (word)main::toD0181_screen#0 -Constant main::toD0181_$4 = (word)main::toD0181_charset#0 -Constant main::toD0182_$3 = (word)main::toD0182_screen#0 -Constant main::toD0182_$4 = (word)main::toD0182_charset#0 +Constant main::toD0181_$3 = (unsigned int)main::toD0181_screen#0 +Constant main::toD0181_$4 = (unsigned int)main::toD0181_charset#0 +Constant main::toD0182_$3 = (unsigned int)main::toD0182_screen#0 +Constant main::toD0182_$4 = (unsigned int)main::toD0182_charset#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [1] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -226,21 +226,21 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_$2 = main::toD0181_$0|main::toD0181_$1 Constant main::toD0182_$2 = main::toD0182_$0|main::toD0182_$1 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_return#0 = (byte)main::toD0181_$2 -Constant main::toD0182_return#0 = (byte)main::toD0182_$2 +Constant main::toD0181_return#0 = (char)main::toD0181_$2 +Constant main::toD0182_return#0 = (char)main::toD0182_$2 Successful SSA optimization Pass2ConstantIdentification Constant inlined main::toD0181_screen#0 = screen Constant inlined main::toD0182_charset#0 = charset2 -Constant inlined main::toD0182_$4 = (word)charset2 -Constant inlined main::toD0181_$2 = (word)screen/$40|(word)charset1/$400 -Constant inlined main::toD0181_$1 = (word)charset1/$400 -Constant inlined main::toD0181_$0 = (word)screen/$40 -Constant inlined main::toD0182_$0 = (word)screen/$40 -Constant inlined main::toD0182_$1 = (word)charset2/$400 -Constant inlined main::toD0181_$4 = (word)charset1 -Constant inlined main::toD0182_$2 = (word)screen/$40|(word)charset2/$400 -Constant inlined main::toD0181_$3 = (word)screen -Constant inlined main::toD0182_$3 = (word)screen +Constant inlined main::toD0182_$4 = (unsigned int)charset2 +Constant inlined main::toD0181_$2 = (unsigned int)screen/$40|(unsigned int)charset1/$400 +Constant inlined main::toD0181_$1 = (unsigned int)charset1/$400 +Constant inlined main::toD0181_$0 = (unsigned int)screen/$40 +Constant inlined main::toD0182_$0 = (unsigned int)screen/$40 +Constant inlined main::toD0182_$1 = (unsigned int)charset2/$400 +Constant inlined main::toD0181_$4 = (unsigned int)charset1 +Constant inlined main::toD0182_$2 = (unsigned int)screen/$40|(unsigned int)charset2/$400 +Constant inlined main::toD0181_$3 = (unsigned int)screen +Constant inlined main::toD0182_$3 = (unsigned int)screen Constant inlined main::toD0182_screen#0 = screen Constant inlined main::toD0181_charset#0 = charset1 Successful SSA optimization Pass2ConstantInlining @@ -297,12 +297,12 @@ main::@4: scope:[main] from main::toD0182 VARIABLE REGISTER WEIGHTS void main() -byte* main::toD0181_charset -byte main::toD0181_return -byte* main::toD0181_screen -byte* main::toD0182_charset -byte main::toD0182_return -byte* main::toD0182_screen +char *main::toD0181_charset +char main::toD0181_return +char *main::toD0181_screen +char *main::toD0182_charset +char main::toD0182_return +char *main::toD0182_screen Initial phi equivalence classes Complete equivalence classes @@ -412,21 +412,21 @@ Removing instruction __b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* BG_COLOR = (byte*) 53281 -constant byte* D018 = (byte*) 53272 -constant byte* RASTER = (byte*) 53266 -constant byte* charset1 = (byte*) 4096 -constant byte* charset2 = (byte*) 6144 +__constant char *BG_COLOR = (char *) 53281 +__constant char *D018 = (char *) 53272 +__constant char *RASTER = (char *) 53266 +__constant char *charset1 = (char *) 4096 +__constant char *charset2 = (char *) 6144 void main() -byte* main::toD0181_charset -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = (byte)(word)screen/$40|(word)charset1/$400 -byte* main::toD0181_screen -byte* main::toD0182_charset -byte main::toD0182_return -constant byte main::toD0182_return#0 toD0182_return = (byte)(word)screen/$40|(word)charset2/$400 -byte* main::toD0182_screen -constant byte* screen = (byte*) 1024 +char *main::toD0181_charset +char main::toD0181_return +__constant char main::toD0181_return#0 = (char)(unsigned int)screen/$40|(unsigned int)charset1/$400 // toD0181_return +char *main::toD0181_screen +char *main::toD0182_charset +char main::toD0182_return +__constant char main::toD0182_return#0 = (char)(unsigned int)screen/$40|(unsigned int)charset2/$400 // toD0182_return +char *main::toD0182_screen +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/inline-function.sym b/src/test/ref/inline-function.sym index c597fba65..e5bc7755f 100644 --- a/src/test/ref/inline-function.sym +++ b/src/test/ref/inline-function.sym @@ -1,16 +1,16 @@ -constant byte* BG_COLOR = (byte*) 53281 -constant byte* D018 = (byte*) 53272 -constant byte* RASTER = (byte*) 53266 -constant byte* charset1 = (byte*) 4096 -constant byte* charset2 = (byte*) 6144 +__constant char *BG_COLOR = (char *) 53281 +__constant char *D018 = (char *) 53272 +__constant char *RASTER = (char *) 53266 +__constant char *charset1 = (char *) 4096 +__constant char *charset2 = (char *) 6144 void main() -byte* main::toD0181_charset -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = (byte)(word)screen/$40|(word)charset1/$400 -byte* main::toD0181_screen -byte* main::toD0182_charset -byte main::toD0182_return -constant byte main::toD0182_return#0 toD0182_return = (byte)(word)screen/$40|(word)charset2/$400 -byte* main::toD0182_screen -constant byte* screen = (byte*) 1024 +char *main::toD0181_charset +char main::toD0181_return +__constant char main::toD0181_return#0 = (char)(unsigned int)screen/$40|(unsigned int)charset1/$400 // toD0181_return +char *main::toD0181_screen +char *main::toD0182_charset +char main::toD0182_return +__constant char main::toD0182_return#0 = (char)(unsigned int)screen/$40|(unsigned int)charset2/$400 // toD0182_return +char *main::toD0182_screen +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/inline-kasm-clobber.log b/src/test/ref/inline-kasm-clobber.log index d06d907d9..9aa132476 100644 --- a/src/test/ref/inline-kasm-clobber.log +++ b/src/test/ref/inline-kasm-clobber.log @@ -45,7 +45,7 @@ main::@return: scope:[main] from main::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -54,32 +54,32 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 -byte main::k#3 -byte main::k#4 -byte main::k#5 -byte main::k#6 -byte main::l -byte main::l#0 -byte main::l#1 -byte main::l#2 -byte main::l#3 -byte main::l#4 -byte main::m -byte main::m#0 -byte main::m#1 -byte main::m#2 +bool main::$0 +bool main::$1 +bool main::$2 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 +char main::k#3 +char main::k#4 +char main::k#5 +char main::k#6 +char main::l +char main::l#0 +char main::l#1 +char main::l#2 +char main::l#3 +char main::l#4 +char main::m +char main::m#0 +char main::m#1 +char main::m#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::l#2 = main::l#3 Alias main::k#2 = main::k#3 main::k#4 @@ -116,9 +116,9 @@ Simplifying constant integer cast $b Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::k#0 Inlining constant with var siblings main::l#0 @@ -179,15 +179,15 @@ main::@return: scope:[main] from main::@5 VARIABLE REGISTER WEIGHTS void main() -byte main::k -byte main::k#1 16.5 -byte main::k#6 2.75 -byte main::l -byte main::l#1 151.5 -byte main::l#4 40.4 -byte main::m -byte main::m#1 1501.5 -byte main::m#2 1001.0 +char main::k +char main::k#1 // 16.5 +char main::k#6 // 2.75 +char main::l +char main::l#1 // 151.5 +char main::l#4 // 40.4 +char main::m +char main::m#1 // 1501.5 +char main::m#2 // 1001.0 Initial phi equivalence classes [ main::k#6 main::k#1 ] @@ -350,17 +350,17 @@ Removing instruction lda #$b Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::k -byte main::k#1 k zp[1]:2 16.5 -byte main::k#6 k zp[1]:2 2.75 -byte main::l -byte main::l#1 l zp[1]:3 151.5 -byte main::l#4 l zp[1]:3 40.4 -byte main::m -byte main::m#1 reg byte y 1501.5 -byte main::m#2 reg byte y 1001.0 +char main::k +char main::k#1 // k zp[1]:2 16.5 +char main::k#6 // k zp[1]:2 2.75 +char main::l +char main::l#1 // l zp[1]:3 151.5 +char main::l#4 // l zp[1]:3 40.4 +char main::m +char main::m#1 // reg byte y 1501.5 +char main::m#2 // reg byte y 1001.0 zp[1]:2 [ main::k#6 main::k#1 ] zp[1]:3 [ main::l#4 main::l#1 ] diff --git a/src/test/ref/inline-kasm-clobber.sym b/src/test/ref/inline-kasm-clobber.sym index 23eed645b..8fce815d4 100644 --- a/src/test/ref/inline-kasm-clobber.sym +++ b/src/test/ref/inline-kasm-clobber.sym @@ -1,14 +1,14 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::k -byte main::k#1 k zp[1]:2 16.5 -byte main::k#6 k zp[1]:2 2.75 -byte main::l -byte main::l#1 l zp[1]:3 151.5 -byte main::l#4 l zp[1]:3 40.4 -byte main::m -byte main::m#1 reg byte y 1501.5 -byte main::m#2 reg byte y 1001.0 +char main::k +char main::k#1 // k zp[1]:2 16.5 +char main::k#6 // k zp[1]:2 2.75 +char main::l +char main::l#1 // l zp[1]:3 151.5 +char main::l#4 // l zp[1]:3 40.4 +char main::m +char main::m#1 // reg byte y 1501.5 +char main::m#2 // reg byte y 1001.0 zp[1]:2 [ main::k#6 main::k#1 ] zp[1]:3 [ main::l#4 main::l#1 ] diff --git a/src/test/ref/inline-kasm-data.cfg b/src/test/ref/inline-kasm-data.cfg index 6cc558ee2..6f1c5c38e 100644 --- a/src/test/ref/inline-kasm-data.cfg +++ b/src/test/ref/inline-kasm-data.cfg @@ -4,8 +4,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::cols#2 = phi( main/(byte*) 55296, main::@1/main::cols#1 ) - [1] main::screen#2 = phi( main/(byte*) 1024, main::@1/main::screen#1 ) + [1] main::cols#2 = phi( main/(char *) 55296, main::@1/main::cols#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@1/main::screen#1 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::sin#0 = sintab[main::i#2] [3] main::screen#2[main::sin#0] = '*' diff --git a/src/test/ref/inline-kasm-data.log b/src/test/ref/inline-kasm-data.log index d56ecd8ef..35a85f282 100644 --- a/src/test/ref/inline-kasm-data.log +++ b/src/test/ref/inline-kasm-data.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 - main::cols#0 = (byte*)$d800 + main::screen#0 = (char *)$400 + main::cols#0 = (char *)$d800 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,22 +37,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte* main::cols -byte* main::cols#0 -byte* main::cols#1 -byte* main::cols#2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte main::sin -byte main::sin#0 -constant byte* sintab[] = kickasm {{ .fill 25, 20 + 20*sin(toRadians(i*360/25)) +bool main::$0 +char *main::cols +char *main::cols#0 +char *main::cols#1 +char *main::cols#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char main::sin +char main::sin#0 +__constant char sintab[] = kickasm {{ .fill 25, 20 + 20*sin(toRadians(i*360/25)) }} Adding number conversion cast (unumber) $28 in main::screen#1 = main::screen#2 + $28 @@ -61,20 +61,20 @@ Adding number conversion cast (unumber) $28 in main::cols#1 = main::cols#2 + $28 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::cols#2[main::sin#0] = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast $28 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [11] if(main::i#1!=rangelast(0,$18)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 -Constant main::cols#0 = (byte*) 55296 +Constant main::screen#0 = (char *) 1024 +Constant main::cols#0 = (char *) 55296 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [9] main::i#1 = ++ main::i#2 to ++ @@ -88,16 +88,16 @@ Adding number conversion cast (unumber) $19 in [7] if(main::i#1!=$19) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::cols#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 -Constant inlined main::cols#0 = (byte*) 55296 +Constant inlined main::cols#0 = (char *) 55296 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $1000 +Finalized unsigned number type (unsigned int) $1000 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -118,8 +118,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::cols#2 = phi( main/(byte*) 55296, main::@1/main::cols#1 ) - [1] main::screen#2 = phi( main/(byte*) 1024, main::@1/main::screen#1 ) + [1] main::cols#2 = phi( main/(char *) 55296, main::@1/main::cols#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@1/main::screen#1 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::sin#0 = sintab[main::i#2] [3] main::screen#2[main::sin#0] = '*' @@ -136,17 +136,17 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::cols -byte* main::cols#1 7.333333333333333 -byte* main::cols#2 6.6000000000000005 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -byte* main::screen -byte* main::screen#1 4.4 -byte* main::screen#2 11.0 -byte main::sin -byte main::sin#0 11.0 +char *main::cols +char *main::cols#1 // 7.333333333333333 +char *main::cols#2 // 6.6000000000000005 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +char *main::screen +char *main::screen#1 // 4.4 +char *main::screen#2 // 11.0 +char main::sin +char main::sin#0 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -207,12 +207,12 @@ main: { .label cols = 4 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::cols#2 = (byte*) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cols#2 = (char *) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$d800 sta.z cols lda #>$d800 sta.z cols+1 - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -285,18 +285,18 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte* main::cols -byte* main::cols#1 cols zp[2]:4 7.333333333333333 -byte* main::cols#2 cols zp[2]:4 6.6000000000000005 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 4.4 -byte* main::screen#2 screen zp[2]:2 11.0 -byte main::sin -byte main::sin#0 reg byte y 11.0 -constant byte* sintab[] = kickasm {{ .fill 25, 20 + 20*sin(toRadians(i*360/25)) +char *main::cols +char *main::cols#1 // cols zp[2]:4 7.333333333333333 +char *main::cols#2 // cols zp[2]:4 6.6000000000000005 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 4.4 +char *main::screen#2 // screen zp[2]:2 11.0 +char main::sin +char main::sin#0 // reg byte y 11.0 +__constant char sintab[] = kickasm {{ .fill 25, 20 + 20*sin(toRadians(i*360/25)) }} reg byte x [ main::i#2 main::i#1 ] @@ -326,12 +326,12 @@ main: { .label screen = 2 .label cols = 4 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::cols#2 = (byte*) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cols#2 = (char *) 55296 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$d800 sta.z cols lda #>$d800 sta.z cols+1 - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/inline-kasm-data.sym b/src/test/ref/inline-kasm-data.sym index aa8df9c1c..ba55d3aae 100644 --- a/src/test/ref/inline-kasm-data.sym +++ b/src/test/ref/inline-kasm-data.sym @@ -1,16 +1,16 @@ void main() -byte* main::cols -byte* main::cols#1 cols zp[2]:4 7.333333333333333 -byte* main::cols#2 cols zp[2]:4 6.6000000000000005 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 4.4 -byte* main::screen#2 screen zp[2]:2 11.0 -byte main::sin -byte main::sin#0 reg byte y 11.0 -constant byte* sintab[] = kickasm {{ .fill 25, 20 + 20*sin(toRadians(i*360/25)) +char *main::cols +char *main::cols#1 // cols zp[2]:4 7.333333333333333 +char *main::cols#2 // cols zp[2]:4 6.6000000000000005 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 4.4 +char *main::screen#2 // screen zp[2]:2 11.0 +char main::sin +char main::sin#0 // reg byte y 11.0 +__constant char sintab[] = kickasm {{ .fill 25, 20 + 20*sin(toRadians(i*360/25)) }} reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inline-kasm-loop.log b/src/test/ref/inline-kasm-loop.log index c27ecbb46..550bdae56 100644 --- a/src/test/ref/inline-kasm-loop.log +++ b/src/test/ref/inline-kasm-loop.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,19 +27,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in *(main::SCREEN+$3e8) = 0 Adding number conversion cast (unumber) $3e8 in *(main::SCREEN+$3e8) = ((unumber)) 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *(main::SCREEN+(unumber)$3e8) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -124,7 +124,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/inline-kasm-loop.sym b/src/test/ref/inline-kasm-loop.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/inline-kasm-loop.sym +++ b/src/test/ref/inline-kasm-loop.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/inline-kasm-refout.log b/src/test/ref/inline-kasm-refout.log index e2df115d4..823745663 100644 --- a/src/test/ref/inline-kasm-refout.log +++ b/src/test/ref/inline-kasm-refout.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,10 +29,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -constant byte* table[] = "cml!"z +__constant char * const main::SCREEN = (char *)$400 +__constant char table[] = "cml!"z -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -120,8 +120,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* table[] = "cml!"z +__constant char * const main::SCREEN = (char *) 1024 +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-kasm-refout.sym b/src/test/ref/inline-kasm-refout.sym index 568e8cd59..dca303f77 100644 --- a/src/test/ref/inline-kasm-refout.sym +++ b/src/test/ref/inline-kasm-refout.sym @@ -1,4 +1,4 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* table[] = "cml!"z +__constant char * const main::SCREEN = (char *) 1024 +__constant char table[] = "cml!"z diff --git a/src/test/ref/inline-kasm-resource.cfg b/src/test/ref/inline-kasm-resource.cfg index 59d5af14e..6ca07b570 100644 --- a/src/test/ref/inline-kasm-resource.cfg +++ b/src/test/ref/inline-kasm-resource.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 + [0] *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 [1] *SPRITES_ENABLE = 1 [2] *SPRITES_XPOS = $64 [3] *SPRITES_YPOS = $64 diff --git a/src/test/ref/inline-kasm-resource.log b/src/test/ref/inline-kasm-resource.log index 41ee495ec..03a261536 100644 --- a/src/test/ref/inline-kasm-resource.log +++ b/src/test/ref/inline-kasm-resource.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 + *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 *SPRITES_ENABLE = 1 *SPRITES_XPOS = $64 *SPRITES_YPOS = $64 @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,20 +23,20 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant char * const SCREEN = (char *)$400 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_ENABLE = (byte*)$d015 -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 +__constant char * const SPRITES_ENABLE = (char *)$d015 +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 void __start() void main() -Adding number conversion cast (unumber) $40 in *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 -Adding number conversion cast (unumber) $3f8 in *(SCREEN+$3f8) = (byte)(word)SPRITE/(unumber)$40 +Adding number conversion cast (unumber) $40 in *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 +Adding number conversion cast (unumber) $3f8 in *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/(unumber)$40 Adding number conversion cast (unumber) 1 in *SPRITES_ENABLE = 1 Adding number conversion cast (unumber) $64 in *SPRITES_XPOS = $64 Adding number conversion cast (unumber) $64 in *SPRITES_YPOS = $64 @@ -45,28 +45,28 @@ Inlining cast *SPRITES_ENABLE = (unumber)1 Inlining cast *SPRITES_XPOS = (unumber)$64 Inlining cast *SPRITES_YPOS = (unumber)$64 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53269 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53269 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 Simplifying constant integer cast $40 Simplifying constant integer cast $3f8 Simplifying constant integer cast 1 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $3f8 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $3f8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $c00 +Finalized unsigned number type (unsigned int) $c00 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -77,7 +77,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 + [0] *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 [1] *SPRITES_ENABLE = 1 [2] *SPRITES_XPOS = $64 [3] *SPRITES_YPOS = $64 @@ -93,7 +93,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *SPRITES_ENABLE = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *SPRITES_XPOS = $64 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *SPRITES_YPOS = $64 [ ] ( [ ] { } ) always clobbers reg byte a @@ -125,7 +125,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 -- _deref_pbuc1=vbuc2 + // [0] *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SCREEN+$3f8 // [1] *SPRITES_ENABLE = 1 -- _deref_pbuc1=vbuc2 @@ -162,15 +162,15 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant char * const SCREEN = (char *) 1024 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 void main() @@ -198,7 +198,7 @@ Score: 28 // main main: { // *(SCREEN+0x3f8) = (char)((unsigned int)SPRITE/$40) - // [0] *(SCREEN+$3f8) = (byte)(word)SPRITE/$40 -- _deref_pbuc1=vbuc2 + // [0] *(SCREEN+$3f8) = (char)(unsigned int)SPRITE/$40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SCREEN+$3f8 // *SPRITES_ENABLE = 1 diff --git a/src/test/ref/inline-kasm-resource.sym b/src/test/ref/inline-kasm-resource.sym index a1164db6e..48e3480ee 100644 --- a/src/test/ref/inline-kasm-resource.sym +++ b/src/test/ref/inline-kasm-resource.sym @@ -1,11 +1,11 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte* SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant char * const SCREEN = (char *) 1024 +__constant char SPRITE[] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 void main() diff --git a/src/test/ref/inline-kickasm-uses-problem.asm b/src/test/ref/inline-kickasm-uses-problem.asm index b697420a0..2c4062921 100644 --- a/src/test/ref/inline-kickasm-uses-problem.asm +++ b/src/test/ref/inline-kickasm-uses-problem.asm @@ -19,6 +19,7 @@ main: { a: .byte $80, $4f, 2, $d } .segment Code +// void foo(char *x1, char *x2) foo: { .label v1 = $80 .label v2 = $82 diff --git a/src/test/ref/inline-kickasm-uses-problem.cfg b/src/test/ref/inline-kickasm-uses-problem.cfg index 13de0f63e..6ecdb1728 100644 --- a/src/test/ref/inline-kickasm-uses-problem.cfg +++ b/src/test/ref/inline-kickasm-uses-problem.cfg @@ -2,16 +2,16 @@ void main() main: scope:[main] from [0] phi() - [1] call foo + [1] call foo to:main::@return main::@return: scope:[main] from main [2] return to:@return -void foo(byte* foo::x1 , byte* foo::x2) +void foo(char *x1 , char *x2) foo: scope:[foo] from main - [3] foo::v1 = (volatile byte*) 0 - [4] foo::v2 = (byte*) 0 + [3] foo::v1 = (volatile char *) 0 + [4] foo::v2 = (char *) 0 [5] foo::a2 = 2 [6] foo::v1 = main::a [7] foo::v2 = &foo::a2 diff --git a/src/test/ref/inline-kickasm-uses-problem.log b/src/test/ref/inline-kickasm-uses-problem.log index 367fc8b74..09c80d7e0 100644 --- a/src/test/ref/inline-kickasm-uses-problem.log +++ b/src/test/ref/inline-kickasm-uses-problem.log @@ -5,7 +5,7 @@ Setting inferred volatile on symbol affected by address-of: foo::v1 in kickasm( Setting inferred volatile on symbol affected by address-of: foo::v2 in kickasm( uses foo::v1 uses foo::v2) {{ lda v1 sta v2 }} -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -13,7 +13,7 @@ void main() main: scope:[main] from __start::@1 foo::x1#0 = main::a foo::x2#0 = main::b - call foo + call foo to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -21,11 +21,11 @@ main::@return: scope:[main] from main::@1 return to:@return -void foo(byte* foo::x1 , byte* foo::x2) +void foo(char *x1 , char *x2) foo: scope:[foo] from main foo::x1#1 = phi( main/foo::x1#0 ) - foo::v1 = (volatile byte*) 0 - foo::v2 = (byte*) 0 + foo::v1 = (volatile char *) 0 + foo::v2 = (char *) 0 foo::a2 = 2 foo::v1 = foo::x1#1 foo::v2 = &foo::a2 @@ -44,7 +44,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -53,22 +53,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte* OUT = (byte*)$8000 +__constant const char *OUT = (char *)$8000 void __start() -void foo(byte* foo::x1 , byte* foo::x2) -volatile byte foo::a2 loadstore -volatile byte* volatile foo::v1 loadstore -byte* volatile foo::v2 loadstore -byte* foo::x1 -byte* foo::x1#0 -byte* foo::x1#1 -byte* foo::x2 -byte* foo::x2#0 +void foo(char *x1 , char *x2) +__loadstore volatile char foo::a2 +__loadstore volatile char * volatile foo::v1 +__loadstore char * volatile foo::v2 +char *foo::x1 +char *foo::x1#0 +char *foo::x1#1 +char *foo::x2 +char *foo::x2#0 void main() -constant byte* main::a[] = { $80, $4f, 2, $d } -constant byte* main::b[] = { $80, $6e, $d9, $ec } +__constant char main::a[] = { $80, $4f, 2, $d } +__constant char main::b[] = { $80, $6e, $d9, $ec } -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Successful SSA optimization PassNCastSimplification Alias candidate removed (volatile)foo::x1#1 = foo::v1 Identical Phi Values foo::x1#1 foo::x1#0 @@ -104,16 +104,16 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call foo + [1] call foo to:main::@return main::@return: scope:[main] from main [2] return to:@return -void foo(byte* foo::x1 , byte* foo::x2) +void foo(char *x1 , char *x2) foo: scope:[foo] from main - [3] foo::v1 = (volatile byte*) 0 - [4] foo::v2 = (byte*) 0 + [3] foo::v1 = (volatile char *) 0 + [4] foo::v2 = (char *) 0 [5] foo::a2 = 2 [6] foo::v1 = main::a [7] foo::v2 = &foo::a2 @@ -128,12 +128,12 @@ foo::@return: scope:[foo] from foo VARIABLE REGISTER WEIGHTS -void foo(byte* foo::x1 , byte* foo::x2) -volatile byte foo::a2 loadstore 5.5 -volatile byte* volatile foo::v1 loadstore 11.0 -byte* volatile foo::v2 loadstore 22.0 -byte* foo::x1 -byte* foo::x2 +void foo(char *x1 , char *x2) +__loadstore volatile char foo::a2 // 5.5 +__loadstore volatile char * volatile foo::v1 // 11.0 +__loadstore char * volatile foo::v2 // 22.0 +char *foo::x1 +char *foo::x2 void main() Initial phi equivalence classes @@ -148,8 +148,8 @@ Allocated zp[2]:128 [ foo::v1 ] Allocated zp[2]:130 [ foo::v2 ] Allocated zp[1]:132 [ foo::a2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [3] foo::v1 = (volatile byte*) 0 [ ] ( foo:1 [ ] { } ) always clobbers reg byte a -Statement [4] foo::v2 = (byte*) 0 [ ] ( foo:1 [ ] { } ) always clobbers reg byte a +Statement [3] foo::v1 = (volatile char *) 0 [ ] ( foo:1 [ ] { } ) always clobbers reg byte a +Statement [4] foo::v2 = (char *) 0 [ ] ( foo:1 [ ] { } ) always clobbers reg byte a Statement [5] foo::a2 = 2 [ foo::a2 ] ( foo:1 [ foo::a2 ] { } ) always clobbers reg byte a Statement [6] foo::v1 = main::a [ foo::v1 foo::a2 ] ( foo:1 [ foo::v1 foo::a2 ] { } ) always clobbers reg byte a Statement [7] foo::v2 = &foo::a2 [ foo::v1 foo::v2 foo::a2 ] ( foo:1 [ foo::v1 foo::v2 foo::a2 ] { } ) always clobbers reg byte a @@ -187,7 +187,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call foo + // [1] call foo jsr foo jmp __breturn // main::@return @@ -199,16 +199,17 @@ main: { } .segment Code // foo +// void foo(char *x1, char *x2) foo: { .label v1 = $80 .label v2 = $82 .label a2 = $84 - // [3] foo::v1 = (volatile byte*) 0 -- pbuz1=pbuc1 + // [3] foo::v1 = (volatile char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z v1 lda #>0 sta.z v1+1 - // [4] foo::v2 = (byte*) 0 -- pbuz1=pbuc1 + // [4] foo::v2 = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z v2 lda #>0 @@ -254,15 +255,15 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte* OUT = (byte*) 32768 -void foo(byte* foo::x1 , byte* foo::x2) -volatile byte foo::a2 loadstore zp[1]:132 5.5 -volatile byte* volatile foo::v1 loadstore zp[2]:128 11.0 -byte* volatile foo::v2 loadstore zp[2]:130 22.0 -byte* foo::x1 -byte* foo::x2 +__constant const char *OUT = (char *) 32768 +void foo(char *x1 , char *x2) +__loadstore volatile char foo::a2 // zp[1]:132 5.5 +__loadstore volatile char * volatile foo::v1 // zp[2]:128 11.0 +__loadstore char * volatile foo::v2 // zp[2]:130 22.0 +char *foo::x1 +char *foo::x2 void main() -constant byte* main::a[] = { $80, $4f, 2, $d } +__constant char main::a[] = { $80, $4f, 2, $d } zp[2]:128 [ foo::v1 ] zp[2]:130 [ foo::v2 ] @@ -290,7 +291,7 @@ Score: 320 // main main: { // foo(a, b) - // [1] call foo + // [1] call foo jsr foo // main::@return // } @@ -301,17 +302,18 @@ main: { } .segment Code // foo +// void foo(char *x1, char *x2) foo: { .label v1 = $80 .label v2 = $82 .label a2 = $84 // volatile uint8_t * v1 - // [3] foo::v1 = (volatile byte*) 0 -- pbuz1=pbuc1 + // [3] foo::v1 = (volatile char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z v1 sta.z v1+1 // uint8_t * v2 - // [4] foo::v2 = (byte*) 0 -- pbuz1=pbuc1 + // [4] foo::v2 = (char *) 0 -- pbuz1=pbuc1 sta.z v2 sta.z v2+1 // uint8_t a2 = 2 diff --git a/src/test/ref/inline-kickasm-uses-problem.sym b/src/test/ref/inline-kickasm-uses-problem.sym index 8bfdd9c12..7ea0e544d 100644 --- a/src/test/ref/inline-kickasm-uses-problem.sym +++ b/src/test/ref/inline-kickasm-uses-problem.sym @@ -1,12 +1,12 @@ -constant const byte* OUT = (byte*) 32768 -void foo(byte* foo::x1 , byte* foo::x2) -volatile byte foo::a2 loadstore zp[1]:132 5.5 -volatile byte* volatile foo::v1 loadstore zp[2]:128 11.0 -byte* volatile foo::v2 loadstore zp[2]:130 22.0 -byte* foo::x1 -byte* foo::x2 +__constant const char *OUT = (char *) 32768 +void foo(char *x1 , char *x2) +__loadstore volatile char foo::a2 // zp[1]:132 5.5 +__loadstore volatile char * volatile foo::v1 // zp[2]:128 11.0 +__loadstore char * volatile foo::v2 // zp[2]:130 22.0 +char *foo::x1 +char *foo::x2 void main() -constant byte* main::a[] = { $80, $4f, 2, $d } +__constant char main::a[] = { $80, $4f, 2, $d } zp[2]:128 [ foo::v1 ] zp[2]:130 [ foo::v2 ] diff --git a/src/test/ref/inline-pointer-0.log b/src/test/ref/inline-pointer-0.log index ed7e7430b..1ef61a36a 100644 --- a/src/test/ref/inline-pointer-0.log +++ b/src/test/ref/inline-pointer-0.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,15 +22,15 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::screen = (byte*)4w=0 +__constant char *main::screen = (char *)4w=0 Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -99,7 +99,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::screen = (byte*)4w=0 +__constant char *main::screen = (char *)4w=0 diff --git a/src/test/ref/inline-pointer-0.sym b/src/test/ref/inline-pointer-0.sym index 9686ec427..0c15ec91d 100644 --- a/src/test/ref/inline-pointer-0.sym +++ b/src/test/ref/inline-pointer-0.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::screen = (byte*)4w=0 +__constant char *main::screen = (char *)4w=0 diff --git a/src/test/ref/inline-pointer-1.asm b/src/test/ref/inline-pointer-1.asm index 3233551f2..04222443e 100644 --- a/src/test/ref/inline-pointer-1.asm +++ b/src/test/ref/inline-pointer-1.asm @@ -20,7 +20,7 @@ main: { // } rts } -// puta(byte register(X) ph, byte register(A) pl) +// void puta(__register(X) char ph, __register(A) char pl) puta: { .label screen = 2 // MAKEWORD( ph, pl ) diff --git a/src/test/ref/inline-pointer-1.cfg b/src/test/ref/inline-pointer-1.cfg index bd452763b..df99e1eda 100644 --- a/src/test/ref/inline-pointer-1.cfg +++ b/src/test/ref/inline-pointer-1.cfg @@ -2,22 +2,22 @@ void main() main: scope:[main] from [0] phi() - [1] call puta + [1] call puta to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call puta + [3] call puta to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void puta(byte puta::ph , byte puta::pl) +void puta(char ph , char pl) puta: scope:[puta] from main main::@1 [5] puta::pl#2 = phi( main/0, main::@1/$18 ) [5] puta::ph#2 = phi( main/4, main::@1/5 ) [6] puta::screen#0 = puta::ph#2 w= puta::pl#2 - [7] *((byte*)puta::screen#0) = 'a' + [7] *((char *)puta::screen#0) = 'a' to:puta::@return puta::@return: scope:[puta] from puta [8] return diff --git a/src/test/ref/inline-pointer-1.log b/src/test/ref/inline-pointer-1.log index abb40aa69..edca90a05 100644 --- a/src/test/ref/inline-pointer-1.log +++ b/src/test/ref/inline-pointer-1.log @@ -5,12 +5,12 @@ void main() main: scope:[main] from __start puta::ph#0 = 4 puta::pl#0 = 0 - call puta + call puta to:main::@1 main::@1: scope:[main] from main puta::ph#1 = 5 puta::pl#1 = $18 - call puta + call puta to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -18,12 +18,12 @@ main::@return: scope:[main] from main::@2 return to:@return -void puta(byte puta::ph , byte puta::pl) +void puta(char ph , char pl) puta: scope:[puta] from main main::@1 puta::pl#2 = phi( main/puta::pl#0, main::@1/puta::pl#1 ) puta::ph#2 = phi( main/puta::ph#0, main::@1/puta::ph#1 ) puta::$0 = puta::ph#2 w= puta::pl#2 - puta::screen#0 = (byte*)puta::$0 + puta::screen#0 = (char *)puta::$0 *puta::screen#0 = 'a' to:puta::@return puta::@return: scope:[puta] from puta @@ -32,7 +32,7 @@ puta::@return: scope:[puta] from puta void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,18 +43,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -void puta(byte puta::ph , byte puta::pl) -word~ puta::$0 -byte puta::ph -byte puta::ph#0 -byte puta::ph#1 -byte puta::ph#2 -byte puta::pl -byte puta::pl#0 -byte puta::pl#1 -byte puta::pl#2 -byte* puta::screen -byte* puta::screen#0 +void puta(char ph , char pl) +unsigned int puta::$0 +char puta::ph +char puta::ph#0 +char puta::ph#1 +char puta::ph#2 +char puta::pl +char puta::pl#0 +char puta::pl#1 +char puta::pl#2 +char *puta::screen +char *puta::screen#0 Adding number conversion cast (unumber) 4 in puta::ph#0 = 4 Adding number conversion cast (unumber) 0 in puta::pl#0 = 0 @@ -71,10 +71,10 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 5 Simplifying constant integer cast $18 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $18 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $18 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant puta::ph#0 = 4 Constant puta::pl#0 = 0 @@ -86,7 +86,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining Noop Cast [5] puta::screen#0 = (byte*)puta::$0 keeping puta::screen#0 +Inlining Noop Cast [5] puta::screen#0 = (char *)puta::$0 keeping puta::screen#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings puta::ph#0 Inlining constant with var siblings puta::pl#0 @@ -114,22 +114,22 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call puta + [1] call puta to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call puta + [3] call puta to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void puta(byte puta::ph , byte puta::pl) +void puta(char ph , char pl) puta: scope:[puta] from main main::@1 [5] puta::pl#2 = phi( main/0, main::@1/$18 ) [5] puta::ph#2 = phi( main/4, main::@1/5 ) [6] puta::screen#0 = puta::ph#2 w= puta::pl#2 - [7] *((byte*)puta::screen#0) = 'a' + [7] *((char *)puta::screen#0) = 'a' to:puta::@return puta::@return: scope:[puta] from puta [8] return @@ -138,13 +138,13 @@ puta::@return: scope:[puta] from puta VARIABLE REGISTER WEIGHTS void main() -void puta(byte puta::ph , byte puta::pl) -byte puta::ph -byte puta::ph#2 11.0 -byte puta::pl -byte puta::pl#2 11.0 -byte* puta::screen -word puta::screen#0 11.0 +void puta(char ph , char pl) +char puta::ph +char puta::ph#2 // 11.0 +char puta::pl +char puta::pl#2 // 11.0 +char *puta::screen +unsigned int puta::screen#0 // 11.0 Initial phi equivalence classes [ puta::ph#2 ] @@ -158,7 +158,7 @@ Allocated zp[1]:2 [ puta::ph#2 ] Allocated zp[1]:3 [ puta::pl#2 ] Allocated zp[2]:4 [ puta::screen#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] *((byte*)puta::screen#0) = 'a' [ ] ( puta:1 [ ] { } puta:3 [ ] { } ) always clobbers reg byte a reg byte y +Statement [7] *((char *)puta::screen#0) = 'a' [ ] ( puta:1 [ ] { } puta:3 [ ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ puta::ph#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ puta::pl#2 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:4 [ puta::screen#0 ] : zp[2]:4 , @@ -189,7 +189,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call puta + // [1] call puta // [5] phi from main to puta [phi:main->puta] puta_from_main: // [5] phi puta::pl#2 = 0 [phi:main->puta#0] -- vbuaa=vbuc1 @@ -202,7 +202,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call puta + // [3] call puta // [5] phi from main::@1 to puta [phi:main::@1->puta] puta_from___b1: // [5] phi puta::pl#2 = $18 [phi:main::@1->puta#0] -- vbuaa=vbuc1 @@ -217,13 +217,13 @@ main: { rts } // puta -// puta(byte register(X) ph, byte register(A) pl) +// void puta(__register(X) char ph, __register(A) char pl) puta: { .label screen = 2 // [6] puta::screen#0 = puta::ph#2 w= puta::pl#2 -- vwuz1=vbuxx_word_vbuaa stx.z screen+1 sta.z screen - // [7] *((byte*)puta::screen#0) = 'a' -- _deref_pbuz1=vbuc1 + // [7] *((char *)puta::screen#0) = 'a' -- _deref_pbuz1=vbuc1 lda #'a' ldy #0 sta (screen),y @@ -251,13 +251,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -void puta(byte puta::ph , byte puta::pl) -byte puta::ph -byte puta::ph#2 reg byte x 11.0 -byte puta::pl -byte puta::pl#2 reg byte a 11.0 -byte* puta::screen -word puta::screen#0 screen zp[2]:2 11.0 +void puta(char ph , char pl) +char puta::ph +char puta::ph#2 // reg byte x 11.0 +char puta::pl +char puta::pl#2 // reg byte a 11.0 +char *puta::screen +unsigned int puta::screen#0 // screen zp[2]:2 11.0 reg byte x [ puta::ph#2 ] reg byte a [ puta::pl#2 ] @@ -283,7 +283,7 @@ Score: 48 // main main: { // puta(4, 0x00) - // [1] call puta + // [1] call puta // [5] phi from main to puta [phi:main->puta] // [5] phi puta::pl#2 = 0 [phi:main->puta#0] -- vbuaa=vbuc1 lda #0 @@ -293,7 +293,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // puta(5, 0x18) - // [3] call puta + // [3] call puta // [5] phi from main::@1 to puta [phi:main::@1->puta] // [5] phi puta::pl#2 = $18 [phi:main::@1->puta#0] -- vbuaa=vbuc1 lda #$18 @@ -306,7 +306,7 @@ main: { rts } // puta -// puta(byte register(X) ph, byte register(A) pl) +// void puta(__register(X) char ph, __register(A) char pl) puta: { .label screen = 2 // MAKEWORD( ph, pl ) @@ -314,7 +314,7 @@ puta: { stx.z screen+1 sta.z screen // *screen = 'a' - // [7] *((byte*)puta::screen#0) = 'a' -- _deref_pbuz1=vbuc1 + // [7] *((char *)puta::screen#0) = 'a' -- _deref_pbuz1=vbuc1 lda #'a' ldy #0 sta (screen),y diff --git a/src/test/ref/inline-pointer-1.sym b/src/test/ref/inline-pointer-1.sym index aedfdb751..ea1656810 100644 --- a/src/test/ref/inline-pointer-1.sym +++ b/src/test/ref/inline-pointer-1.sym @@ -1,11 +1,11 @@ void main() -void puta(byte puta::ph , byte puta::pl) -byte puta::ph -byte puta::ph#2 reg byte x 11.0 -byte puta::pl -byte puta::pl#2 reg byte a 11.0 -byte* puta::screen -word puta::screen#0 screen zp[2]:2 11.0 +void puta(char ph , char pl) +char puta::ph +char puta::ph#2 // reg byte x 11.0 +char puta::pl +char puta::pl#2 // reg byte a 11.0 +char *puta::screen +unsigned int puta::screen#0 // screen zp[2]:2 11.0 reg byte x [ puta::ph#2 ] reg byte a [ puta::pl#2 ] diff --git a/src/test/ref/inline-pointer-2.log b/src/test/ref/inline-pointer-2.log index 9a4856d7b..5c7fe65c0 100644 --- a/src/test/ref/inline-pointer-2.log +++ b/src/test/ref/inline-pointer-2.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,7 +22,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::screen = (byte*)4w=0+(word)0w=$28 +__constant char *main::screen = (char *)4w=0+(unsigned int)0w=$28 Simplifying constant integer cast 0w=$28 Successful SSA optimization PassNCastSimplification @@ -31,10 +31,10 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -103,7 +103,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::screen = (byte*)4w=0+0w=$28 +__constant char *main::screen = (char *)4w=0+0w=$28 diff --git a/src/test/ref/inline-pointer-2.sym b/src/test/ref/inline-pointer-2.sym index aba029301..63632374f 100644 --- a/src/test/ref/inline-pointer-2.sym +++ b/src/test/ref/inline-pointer-2.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::screen = (byte*)4w=0+0w=$28 +__constant char *main::screen = (char *)4w=0+0w=$28 diff --git a/src/test/ref/inline-string-2.asm b/src/test/ref/inline-string-2.asm index e6b90d586..f3d8cf0ca 100644 --- a/src/test/ref/inline-string-2.asm +++ b/src/test/ref/inline-string-2.asm @@ -23,7 +23,7 @@ main: { // } rts } -// print_msg(byte register(X) idx) +// void print_msg(__register(X) char idx) print_msg: { .label msg = 4 // if(idx==1) @@ -51,7 +51,7 @@ print_msg: { .byte 0 } .segment Code -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 __b1: diff --git a/src/test/ref/inline-string-2.cfg b/src/test/ref/inline-string-2.cfg index b0d5b6d4e..b55e51504 100644 --- a/src/test/ref/inline-string-2.cfg +++ b/src/test/ref/inline-string-2.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call print_msg + [1] call print_msg to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_msg + [3] call print_msg to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_msg(byte print_msg::idx) +void print_msg(char idx) print_msg: scope:[print_msg] from main main::@1 - [5] screen#20 = phi( main/(byte*) 1024, main::@1/screen#15 ) + [5] screen#20 = phi( main/(char *) 1024, main::@1/screen#15 ) [5] print_msg::idx#2 = phi( main/1, main::@1/2 ) [6] if(print_msg::idx#2==1) goto print_msg::@1 to:print_msg::@2 @@ -24,13 +24,13 @@ print_msg::@1: scope:[print_msg] from print_msg print_msg::@2: scope:[print_msg] from print_msg print_msg::@1 [8] print_msg::msg#3 = phi( print_msg::@1/print_msg::msg#1, print_msg/print_msg::msg#2 ) [9] print::msg#0 = print_msg::msg#3 - [10] call print + [10] call print to:print_msg::@return print_msg::@return: scope:[print_msg] from print_msg::@2 [11] return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from print_msg::@2 [12] phi() to:print::@1 diff --git a/src/test/ref/inline-string-2.log b/src/test/ref/inline-string-2.log index 326719b4b..6b6679acd 100644 --- a/src/test/ref/inline-string-2.log +++ b/src/test/ref/inline-string-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start::@1 screen#19 = phi( __start::@1/screen#22 ) print_msg::idx#0 = 1 - call print_msg + call print_msg to:main::@1 main::@1: scope:[main] from main screen#10 = phi( main/screen#4 ) screen#0 = screen#10 print_msg::idx#1 = 2 - call print_msg + call print_msg to:main::@2 main::@2: scope:[main] from main::@1 screen#11 = phi( main::@1/screen#4 ) @@ -24,11 +24,11 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_msg(byte print_msg::idx) +void print_msg(char idx) print_msg: scope:[print_msg] from main main::@1 screen#26 = phi( main/screen#19, main::@1/screen#0 ) print_msg::idx#2 = phi( main/print_msg::idx#0, main::@1/print_msg::idx#1 ) - print_msg::msg#0 = (byte*) 0 + print_msg::msg#0 = (char *) 0 print_msg::$0 = print_msg::idx#2 == 1 if(print_msg::$0) goto print_msg::@1 to:print_msg::@3 @@ -44,7 +44,7 @@ print_msg::@2: scope:[print_msg] from print_msg::@1 print_msg::@3 screen#20 = phi( print_msg::@1/screen#23, print_msg::@3/screen#24 ) print_msg::msg#3 = phi( print_msg::@1/print_msg::msg#1, print_msg::@3/print_msg::msg#2 ) print::msg#0 = print_msg::msg#3 - call print + call print to:print_msg::@4 print_msg::@4: scope:[print_msg] from print_msg::@2 screen#13 = phi( print_msg::@2/screen#6 ) @@ -56,7 +56,7 @@ print_msg::@return: scope:[print_msg] from print_msg::@4 return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from print_msg::@2 screen#25 = phi( print_msg::@2/screen#20 ) print::msg#4 = phi( print_msg::@2/print::msg#0 ) @@ -84,11 +84,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#7 = (byte*)$400 + screen#7 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#22 = phi( __start::__init1/screen#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#17 = phi( __start::@1/screen#2 ) @@ -103,55 +103,55 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -void print(byte* print::msg) -bool~ print::$0 -byte* print::msg -byte* print::msg#0 -byte* print::msg#1 -byte* print::msg#2 -byte* print::msg#3 -byte* print::msg#4 -void print_msg(byte print_msg::idx) -bool~ print_msg::$0 -constant byte* print_msg::$2[7] = "Hello " -constant byte* print_msg::$3[7] = "World!" -byte print_msg::idx -byte print_msg::idx#0 -byte print_msg::idx#1 -byte print_msg::idx#2 -byte* print_msg::msg -byte* print_msg::msg#0 -byte* print_msg::msg#1 -byte* print_msg::msg#2 -byte* print_msg::msg#3 -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#11 -byte* screen#12 -byte* screen#13 -byte* screen#14 -byte* screen#15 -byte* screen#16 -byte* screen#17 -byte* screen#18 -byte* screen#19 -byte* screen#2 -byte* screen#20 -byte* screen#21 -byte* screen#22 -byte* screen#23 -byte* screen#24 -byte* screen#25 -byte* screen#26 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 +void print(char *msg) +bool print::$0 +char *print::msg +char *print::msg#0 +char *print::msg#1 +char *print::msg#2 +char *print::msg#3 +char *print::msg#4 +void print_msg(char idx) +bool print_msg::$0 +__constant char print_msg::$2[7] = "Hello " +__constant char print_msg::$3[7] = "World!" +char print_msg::idx +char print_msg::idx#0 +char print_msg::idx#1 +char print_msg::idx#2 +char *print_msg::msg +char *print_msg::msg#0 +char *print_msg::msg#1 +char *print_msg::msg#2 +char *print_msg::msg#3 +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#11 +char *screen#12 +char *screen#13 +char *screen#14 +char *screen#15 +char *screen#16 +char *screen#17 +char *screen#18 +char *screen#19 +char *screen#2 +char *screen#20 +char *screen#21 +char *screen#22 +char *screen#23 +char *screen#24 +char *screen#25 +char *screen#26 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 Adding number conversion cast (unumber) 1 in print_msg::idx#0 = 1 Adding number conversion cast (unumber) 2 in print_msg::idx#1 = 2 @@ -165,12 +165,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias screen#0 = screen#10 Alias screen#1 = screen#11 screen#12 screen#2 @@ -196,10 +196,10 @@ Simple Condition print::$0 [22] if(0!=*print::msg#2) goto print::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant print_msg::idx#0 = 1 Constant print_msg::idx#1 = 2 -Constant print_msg::msg#0 = (byte*) 0 +Constant print_msg::msg#0 = (char *) 0 Constant print_msg::msg#1 = print_msg::$2 Constant print_msg::msg#2 = print_msg::$3 -Constant screen#22 = (byte*) 1024 +Constant screen#22 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant print_msg::msg#0 Successful SSA optimization PassNEliminateUnusedVars @@ -216,7 +216,7 @@ Inlining constant with var siblings print_msg::msg#1 Inlining constant with var siblings print_msg::msg#2 Inlining constant with var siblings screen#22 Constant inlined print_msg::idx#1 = 2 -Constant inlined screen#22 = (byte*) 1024 +Constant inlined screen#22 = (char *) 1024 Constant inlined print_msg::idx#0 = 1 Constant inlined print_msg::$3 = print_msg::msg#2 Constant inlined print_msg::$2 = print_msg::msg#1 @@ -254,19 +254,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_msg + [1] call print_msg to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_msg + [3] call print_msg to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_msg(byte print_msg::idx) +void print_msg(char idx) print_msg: scope:[print_msg] from main main::@1 - [5] screen#20 = phi( main/(byte*) 1024, main::@1/screen#15 ) + [5] screen#20 = phi( main/(char *) 1024, main::@1/screen#15 ) [5] print_msg::idx#2 = phi( main/1, main::@1/2 ) [6] if(print_msg::idx#2==1) goto print_msg::@1 to:print_msg::@2 @@ -276,13 +276,13 @@ print_msg::@1: scope:[print_msg] from print_msg print_msg::@2: scope:[print_msg] from print_msg print_msg::@1 [8] print_msg::msg#3 = phi( print_msg::@1/print_msg::msg#1, print_msg/print_msg::msg#2 ) [9] print::msg#0 = print_msg::msg#3 - [10] call print + [10] call print to:print_msg::@return print_msg::@return: scope:[print_msg] from print_msg::@2 [11] return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from print_msg::@2 [12] phi() to:print::@1 @@ -303,20 +303,20 @@ print::@2: scope:[print] from print::@1 VARIABLE REGISTER WEIGHTS void main() -void print(byte* print::msg) -byte* print::msg -byte* print::msg#0 56.0 -byte* print::msg#1 2002.0 -byte* print::msg#2 1026.25 -void print_msg(byte print_msg::idx) -byte print_msg::idx -byte print_msg::idx#2 11.0 -byte* print_msg::msg -byte* print_msg::msg#3 11.0 -byte* screen -byte* screen#15 388.25 -byte* screen#20 17.166666666666664 -byte* screen#5 1001.0 +void print(char *msg) +char *print::msg +char *print::msg#0 // 56.0 +char *print::msg#1 // 2002.0 +char *print::msg#2 // 1026.25 +void print_msg(char idx) +char print_msg::idx +char print_msg::idx#2 // 11.0 +char *print_msg::msg +char *print_msg::msg#3 // 11.0 +char *screen +char *screen#15 // 388.25 +char *screen#20 // 17.166666666666664 +char *screen#5 // 1001.0 Initial phi equivalence classes [ print_msg::idx#2 ] @@ -372,10 +372,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_msg + // [1] call print_msg // [5] phi from main to print_msg [phi:main->print_msg] print_msg_from_main: - // [5] phi screen#20 = (byte*) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 + // [5] phi screen#20 = (char *) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -388,7 +388,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_msg + // [3] call print_msg // [5] phi from main::@1 to print_msg [phi:main::@1->print_msg] print_msg_from___b1: // [5] phi screen#20 = screen#15 [phi:main::@1->print_msg#0] -- register_copy @@ -402,7 +402,7 @@ main: { rts } // print_msg -// print_msg(byte register(X) idx) +// void print_msg(__register(X) char idx) print_msg: { .label msg = 4 // [6] if(print_msg::idx#2==1) goto print_msg::@1 -- vbuxx_eq_vbuc1_then_la1 @@ -432,7 +432,7 @@ print_msg: { // print_msg::@2 __b2: // [9] print::msg#0 = print_msg::msg#3 - // [10] call print + // [10] call print // [12] phi from print_msg::@2 to print [phi:print_msg::@2->print] print_from___b2: jsr print @@ -449,7 +449,7 @@ print_msg: { } .segment Code // print -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 // [13] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] @@ -522,22 +522,22 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -void print(byte* print::msg) -byte* print::msg -byte* print::msg#0 msg zp[2]:4 56.0 -byte* print::msg#1 msg zp[2]:4 2002.0 -byte* print::msg#2 msg zp[2]:4 1026.25 -void print_msg(byte print_msg::idx) -byte print_msg::idx -byte print_msg::idx#2 reg byte x 11.0 -byte* print_msg::msg -constant byte* print_msg::msg#1 msg_1 = "Hello " -constant byte* print_msg::msg#2 msg_2 = "World!" -byte* print_msg::msg#3 msg zp[2]:4 11.0 -byte* screen -byte* screen#15 screen zp[2]:2 388.25 -byte* screen#20 screen zp[2]:2 17.166666666666664 -byte* screen#5 screen zp[2]:2 1001.0 +void print(char *msg) +char *print::msg +char *print::msg#0 // msg zp[2]:4 56.0 +char *print::msg#1 // msg zp[2]:4 2002.0 +char *print::msg#2 // msg zp[2]:4 1026.25 +void print_msg(char idx) +char print_msg::idx +char print_msg::idx#2 // reg byte x 11.0 +char *print_msg::msg +__constant char *print_msg::msg#1 = "Hello " // msg_1 +__constant char *print_msg::msg#2 = "World!" // msg_2 +char *print_msg::msg#3 // msg zp[2]:4 11.0 +char *screen +char *screen#15 // screen zp[2]:2 388.25 +char *screen#20 // screen zp[2]:2 17.166666666666664 +char *screen#5 // screen zp[2]:2 1001.0 reg byte x [ print_msg::idx#2 ] zp[2]:2 [ screen#20 screen#15 screen#5 ] @@ -564,9 +564,9 @@ Score: 612 // main main: { // print_msg(1) - // [1] call print_msg + // [1] call print_msg // [5] phi from main to print_msg [phi:main->print_msg] - // [5] phi screen#20 = (byte*) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 + // [5] phi screen#20 = (char *) 1024 [phi:main->print_msg#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -577,7 +577,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_msg(2) - // [3] call print_msg + // [3] call print_msg // [5] phi from main::@1 to print_msg [phi:main::@1->print_msg] // [5] phi screen#20 = screen#15 [phi:main::@1->print_msg#0] -- register_copy // [5] phi print_msg::idx#2 = 2 [phi:main::@1->print_msg#1] -- vbuxx=vbuc1 @@ -589,7 +589,7 @@ main: { rts } // print_msg -// print_msg(byte register(X) idx) +// void print_msg(__register(X) char idx) print_msg: { .label msg = 4 // if(idx==1) @@ -616,7 +616,7 @@ print_msg: { __b2: // print(msg) // [9] print::msg#0 = print_msg::msg#3 - // [10] call print + // [10] call print // [12] phi from print_msg::@2 to print [phi:print_msg::@2->print] jsr print // print_msg::@return @@ -631,7 +631,7 @@ print_msg: { } .segment Code // print -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 // [13] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] diff --git a/src/test/ref/inline-string-2.sym b/src/test/ref/inline-string-2.sym index b8bffae35..77ccd9a3d 100644 --- a/src/test/ref/inline-string-2.sym +++ b/src/test/ref/inline-string-2.sym @@ -1,20 +1,20 @@ void main() -void print(byte* print::msg) -byte* print::msg -byte* print::msg#0 msg zp[2]:4 56.0 -byte* print::msg#1 msg zp[2]:4 2002.0 -byte* print::msg#2 msg zp[2]:4 1026.25 -void print_msg(byte print_msg::idx) -byte print_msg::idx -byte print_msg::idx#2 reg byte x 11.0 -byte* print_msg::msg -constant byte* print_msg::msg#1 msg_1 = "Hello " -constant byte* print_msg::msg#2 msg_2 = "World!" -byte* print_msg::msg#3 msg zp[2]:4 11.0 -byte* screen -byte* screen#15 screen zp[2]:2 388.25 -byte* screen#20 screen zp[2]:2 17.166666666666664 -byte* screen#5 screen zp[2]:2 1001.0 +void print(char *msg) +char *print::msg +char *print::msg#0 // msg zp[2]:4 56.0 +char *print::msg#1 // msg zp[2]:4 2002.0 +char *print::msg#2 // msg zp[2]:4 1026.25 +void print_msg(char idx) +char print_msg::idx +char print_msg::idx#2 // reg byte x 11.0 +char *print_msg::msg +__constant char *print_msg::msg#1 = "Hello " // msg_1 +__constant char *print_msg::msg#2 = "World!" // msg_2 +char *print_msg::msg#3 // msg zp[2]:4 11.0 +char *screen +char *screen#15 // screen zp[2]:2 388.25 +char *screen#20 // screen zp[2]:2 17.166666666666664 +char *screen#5 // screen zp[2]:2 1001.0 reg byte x [ print_msg::idx#2 ] zp[2]:2 [ screen#20 screen#15 screen#5 ] diff --git a/src/test/ref/inline-string-3.cfg b/src/test/ref/inline-string-3.cfg index 99f8534da..20c6d05bc 100644 --- a/src/test/ref/inline-string-3.cfg +++ b/src/test/ref/inline-string-3.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] *main::PTR = byte0 main::STRING [1] *(main::PTR+1) = byte1 main::STRING [2] main::ptr#0 = *(main::PTR+1) w= *main::PTR - [3] *main::SCREEN = *((byte*)main::ptr#0) + [3] *main::SCREEN = *((char *)main::ptr#0) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/inline-string-3.log b/src/test/ref/inline-string-3.log index 169917eae..4ecf382b1 100644 --- a/src/test/ref/inline-string-3.log +++ b/src/test/ref/inline-string-3.log @@ -6,7 +6,7 @@ main: scope:[main] from __start *main::PTR = byte0 main::STRING *(main::PTR+1) = byte1 main::STRING main::$0 = *(main::PTR+1) w= *main::PTR - main::ptr#0 = (byte*)main::$0 + main::ptr#0 = (char *)main::$0 *main::SCREEN = *main::ptr#0 to:main::@return main::@return: scope:[main] from main @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,30 +26,30 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -word~ main::$0 -constant byte* const main::PTR = (byte*)$9ffe -constant byte* const main::SCREEN = (byte*)$400 -constant const byte* main::STRING[] = "camelot"z -byte* main::ptr -byte* main::ptr#0 +unsigned int main::$0 +__constant char * const main::PTR = (char *)$9ffe +__constant char * const main::SCREEN = (char *)$400 +__constant const char main::STRING[] = "camelot"z +char *main::ptr +char *main::ptr#0 Adding number conversion cast (unumber) 1 in *(main::PTR+1) = byte1 main::STRING Adding number conversion cast (unumber) 1 in main::$0 = *(main::PTR+1) w= *main::PTR Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 40958 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 40958 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining Noop Cast [3] main::ptr#0 = (byte*)main::$0 keeping main::ptr#0 +Inlining Noop Cast [3] main::ptr#0 = (char *)main::$0 keeping main::ptr#0 Successful SSA optimization Pass2NopCastInlining CALL GRAPH @@ -63,7 +63,7 @@ main: scope:[main] from [0] *main::PTR = byte0 main::STRING [1] *(main::PTR+1) = byte1 main::STRING [2] main::ptr#0 = *(main::PTR+1) w= *main::PTR - [3] *main::SCREEN = *((byte*)main::ptr#0) + [3] *main::SCREEN = *((char *)main::ptr#0) to:main::@return main::@return: scope:[main] from main [4] return @@ -72,8 +72,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* main::ptr -word main::ptr#0 2.0 +char *main::ptr +unsigned int main::ptr#0 // 2.0 Initial phi equivalence classes Added variable main::ptr#0 to live range equivalence class [ main::ptr#0 ] @@ -84,7 +84,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *main::PTR = byte0 main::STRING [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *(main::PTR+1) = byte1 main::STRING [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::ptr#0 = *(main::PTR+1) w= *main::PTR [ main::ptr#0 ] ( [ main::ptr#0 ] { } ) always clobbers reg byte a -Statement [3] *main::SCREEN = *((byte*)main::ptr#0) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y +Statement [3] *main::SCREEN = *((char *)main::ptr#0) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ main::ptr#0 ] : zp[2]:2 , REGISTER UPLIFT SCOPES @@ -126,7 +126,7 @@ main: { sta.z ptr+1 lda PTR sta.z ptr - // [3] *main::SCREEN = *((byte*)main::ptr#0) -- _deref_pbuc1=_deref_pbuz1 + // [3] *main::SCREEN = *((char *)main::ptr#0) -- _deref_pbuc1=_deref_pbuz1 ldy #0 lda (ptr),y sta SCREEN @@ -150,11 +150,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::PTR = (byte*) 40958 -constant byte* const main::SCREEN = (byte*) 1024 -constant const byte* main::STRING[] = "camelot"z -byte* main::ptr -word main::ptr#0 ptr zp[2]:2 2.0 +__constant char * const main::PTR = (char *) 40958 +__constant char * const main::SCREEN = (char *) 1024 +__constant const char main::STRING[] = "camelot"z +char *main::ptr +unsigned int main::ptr#0 // ptr zp[2]:2 2.0 zp[2]:2 [ main::ptr#0 ] @@ -196,7 +196,7 @@ main: { lda PTR sta.z ptr // *SCREEN = *ptr - // [3] *main::SCREEN = *((byte*)main::ptr#0) -- _deref_pbuc1=_deref_pbuz1 + // [3] *main::SCREEN = *((char *)main::ptr#0) -- _deref_pbuc1=_deref_pbuz1 ldy #0 lda (ptr),y sta SCREEN diff --git a/src/test/ref/inline-string-3.sym b/src/test/ref/inline-string-3.sym index a327f40ad..f52d18a74 100644 --- a/src/test/ref/inline-string-3.sym +++ b/src/test/ref/inline-string-3.sym @@ -1,8 +1,8 @@ void main() -constant byte* const main::PTR = (byte*) 40958 -constant byte* const main::SCREEN = (byte*) 1024 -constant const byte* main::STRING[] = "camelot"z -byte* main::ptr -word main::ptr#0 ptr zp[2]:2 2.0 +__constant char * const main::PTR = (char *) 40958 +__constant char * const main::SCREEN = (char *) 1024 +__constant const char main::STRING[] = "camelot"z +char *main::ptr +unsigned int main::ptr#0 // ptr zp[2]:2 2.0 zp[2]:2 [ main::ptr#0 ] diff --git a/src/test/ref/inline-string-4.asm b/src/test/ref/inline-string-4.asm index ea7748570..169f30484 100644 --- a/src/test/ref/inline-string-4.asm +++ b/src/test/ref/inline-string-4.asm @@ -20,6 +20,7 @@ main: { .byte 0 } .segment Code +// void output(unsigned long dw) output: { // *screen = dw lda #print] print_from_main: - // [7] phi screen#20 = (byte*) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + // [7] phi screen#20 = (char *) 1024 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -285,7 +285,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [7] phi screen#20 = screen#13 [phi:main::@1->print#0] -- register_copy @@ -300,7 +300,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] print_from___b2: // [7] phi screen#20 = screen#13 [phi:main::@2->print#0] -- register_copy @@ -323,7 +323,7 @@ main: { } .segment Code // print -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 // [8] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] @@ -394,18 +394,18 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::msg[$b] = "message 3 " -constant byte* main::msg2[] = "message 2 " -constant byte* msg1[] = "message 1 " -void print(byte* print::msg) -byte* print::msg -byte* print::msg#3 msg zp[2]:4 202.0 -byte* print::msg#4 msg zp[2]:4 103.75 -byte* print::msg#6 msg zp[2]:4 11.0 -byte* screen -byte* screen#13 screen zp[2]:2 39.75 -byte* screen#20 screen zp[2]:2 15.0 -byte* screen#4 screen zp[2]:2 101.0 +__constant char main::msg[$b] = "message 3 " +__constant char main::msg2[] = "message 2 " +__constant char msg1[] = "message 1 " +void print(char *msg) +char *print::msg +char *print::msg#3 // msg zp[2]:4 202.0 +char *print::msg#4 // msg zp[2]:4 103.75 +char *print::msg#6 // msg zp[2]:4 11.0 +char *screen +char *screen#13 // screen zp[2]:2 39.75 +char *screen#20 // screen zp[2]:2 15.0 +char *screen#4 // screen zp[2]:2 101.0 zp[2]:2 [ screen#20 screen#13 screen#4 ] zp[2]:4 [ print::msg#4 print::msg#6 print::msg#3 ] @@ -431,9 +431,9 @@ Score: 605 // main main: { // print(msg1) - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] - // [7] phi screen#20 = (byte*) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + // [7] phi screen#20 = (char *) 1024 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -447,7 +447,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(msg2) - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] // [7] phi screen#20 = screen#13 [phi:main::@1->print#0] -- register_copy // [7] phi print::msg#6 = main::msg2 [phi:main::@1->print#1] -- pbuz1=pbuc1 @@ -459,7 +459,7 @@ main: { // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print("message 3 ") - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] // [7] phi screen#20 = screen#13 [phi:main::@2->print#0] -- register_copy // [7] phi print::msg#6 = main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1 @@ -480,7 +480,7 @@ main: { } .segment Code // print -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 // [8] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] diff --git a/src/test/ref/inline-string.sym b/src/test/ref/inline-string.sym index 5674634c2..e7c496787 100644 --- a/src/test/ref/inline-string.sym +++ b/src/test/ref/inline-string.sym @@ -1,16 +1,16 @@ void main() -constant byte* main::msg[$b] = "message 3 " -constant byte* main::msg2[] = "message 2 " -constant byte* msg1[] = "message 1 " -void print(byte* print::msg) -byte* print::msg -byte* print::msg#3 msg zp[2]:4 202.0 -byte* print::msg#4 msg zp[2]:4 103.75 -byte* print::msg#6 msg zp[2]:4 11.0 -byte* screen -byte* screen#13 screen zp[2]:2 39.75 -byte* screen#20 screen zp[2]:2 15.0 -byte* screen#4 screen zp[2]:2 101.0 +__constant char main::msg[$b] = "message 3 " +__constant char main::msg2[] = "message 2 " +__constant char msg1[] = "message 1 " +void print(char *msg) +char *print::msg +char *print::msg#3 // msg zp[2]:4 202.0 +char *print::msg#4 // msg zp[2]:4 103.75 +char *print::msg#6 // msg zp[2]:4 11.0 +char *screen +char *screen#13 // screen zp[2]:2 39.75 +char *screen#20 // screen zp[2]:2 15.0 +char *screen#4 // screen zp[2]:2 101.0 zp[2]:2 [ screen#20 screen#13 screen#4 ] zp[2]:4 [ print::msg#4 print::msg#6 print::msg#3 ] diff --git a/src/test/ref/inline-word-0.log b/src/test/ref/inline-word-0.log index e07c7f632..0a6278b84 100644 --- a/src/test/ref/inline-word-0.log +++ b/src/test/ref/inline-word-0.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$0 = 0 * SIZEOF_WORD + main::$0 = 0 * SIZEOF_UNSIGNED_INT main::screen[main::$0] = main::w to:main::@return main::@return: scope:[main] from main @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,32 +21,32 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -constant word* main::screen = (byte*)$400 -constant word main::w = 2w=1 +number main::$0 +__constant unsigned int *main::screen = (char *)$400 +__constant unsigned int main::w = 2w=1 -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_WORD -Constant right-side identified [0] main::$0 = 0 * SIZEOF_WORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [0] main::$0 = 0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_WORD +Constant main::$0 = 0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::screen in [1] main::screen[main::$0] = main::w Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -123,8 +123,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant word* main::screen = (byte*) 1024 -constant word main::w = 2w=1 +__constant unsigned int *main::screen = (char *) 1024 +__constant unsigned int main::w = 2w=1 diff --git a/src/test/ref/inline-word-0.sym b/src/test/ref/inline-word-0.sym index cdb159952..a37f64ca4 100644 --- a/src/test/ref/inline-word-0.sym +++ b/src/test/ref/inline-word-0.sym @@ -1,4 +1,4 @@ void main() -constant word* main::screen = (byte*) 1024 -constant word main::w = 2w=1 +__constant unsigned int *main::screen = (char *) 1024 +__constant unsigned int main::w = 2w=1 diff --git a/src/test/ref/inline-word-1.log b/src/test/ref/inline-word-1.log index 0f821b948..d67556adb 100644 --- a/src/test/ref/inline-word-1.log +++ b/src/test/ref/inline-word-1.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$0 = 0 * SIZEOF_WORD + main::$0 = 0 * SIZEOF_UNSIGNED_INT main::screen[main::$0] = main::w to:main::@return main::@return: scope:[main] from main @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,40 +21,40 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -constant word* main::screen = (byte*)$400 -constant word main::w = 1w=2 +number main::$0 +__constant unsigned int *main::screen = (char *)$400 +__constant unsigned int main::w = 1w=2 -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_WORD -Constant right-side identified [0] main::$0 = 0 * SIZEOF_WORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [0] main::$0 = 0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_WORD +Constant main::$0 = 0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::screen in [1] main::screen[main::$0] = main::w Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -126,8 +126,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant word* main::screen = (byte*) 1024 -constant word main::w = 1w=2 +__constant unsigned int *main::screen = (char *) 1024 +__constant unsigned int main::w = 1w=2 diff --git a/src/test/ref/inline-word-1.sym b/src/test/ref/inline-word-1.sym index e4ffbdb36..08525bd17 100644 --- a/src/test/ref/inline-word-1.sym +++ b/src/test/ref/inline-word-1.sym @@ -1,4 +1,4 @@ void main() -constant word* main::screen = (byte*) 1024 -constant word main::w = 1w=2 +__constant unsigned int *main::screen = (char *) 1024 +__constant unsigned int main::w = 1w=2 diff --git a/src/test/ref/inline-word-2.log b/src/test/ref/inline-word-2.log index eb6f67254..58f7824a4 100644 --- a/src/test/ref/inline-word-2.log +++ b/src/test/ref/inline-word-2.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$0 = 0 * SIZEOF_WORD + main::$0 = 0 * SIZEOF_UNSIGNED_INT main::screen[main::$0] = main::w to:main::@return main::@return: scope:[main] from main @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,35 +21,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -constant word* main::screen = (word*)$400 -constant word main::w = 1w=2 +number main::$0 +__constant unsigned int *main::screen = (unsigned int *)$400 +__constant unsigned int main::w = 1w=2 Adding number conversion cast (unumber) 1 in -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 1 -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_WORD -Constant right-side identified [0] main::$0 = 0 * SIZEOF_WORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [0] main::$0 = 0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_WORD +Constant main::$0 = 0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::screen in [1] main::screen[main::$0] = main::w Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -126,8 +126,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant word* main::screen = (word*) 1024 -constant word main::w = 1w=2 +__constant unsigned int *main::screen = (unsigned int *) 1024 +__constant unsigned int main::w = 1w=2 diff --git a/src/test/ref/inline-word-2.sym b/src/test/ref/inline-word-2.sym index a3b936a80..6bebf71fe 100644 --- a/src/test/ref/inline-word-2.sym +++ b/src/test/ref/inline-word-2.sym @@ -1,4 +1,4 @@ void main() -constant word* main::screen = (word*) 1024 -constant word main::w = 1w=2 +__constant unsigned int *main::screen = (unsigned int *) 1024 +__constant unsigned int main::w = 1w=2 diff --git a/src/test/ref/inline-word.cfg b/src/test/ref/inline-word.cfg index fbfb13102..8930cd80d 100644 --- a/src/test/ref/inline-word.cfg +++ b/src/test/ref/inline-word.cfg @@ -9,7 +9,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 main::@2 [2] main::l#2 = phi( main::@1/4, main::@2/main::l#1 ) [3] main::w#0 = main::his[main::h#4] w= main::l#2 - [4] *((byte*)main::w#0) = '*' + [4] *((char *)main::w#0) = '*' [5] main::l#1 = ++ main::l#2 [6] if(main::l#1!=8) goto main::@2 to:main::@3 diff --git a/src/test/ref/inline-word.log b/src/test/ref/inline-word.log index 213de6dd8..b3532b534 100644 --- a/src/test/ref/inline-word.log +++ b/src/test/ref/inline-word.log @@ -14,7 +14,7 @@ main::@2: scope:[main] from main::@1 main::@2 main::l#2 = phi( main::@1/main::l#0, main::@2/main::l#1 ) main::h#2 = phi( main::@1/main::h#4, main::@2/main::h#2 ) main::w#0 = main::his[main::h#2] w= main::l#2 - main::sc#0 = (byte*)main::w#0 + main::sc#0 = (char *)main::w#0 *main::sc#0 = '*' main::l#1 = main::l#2 + rangenext(4,7) main::$1 = main::l#1 != rangelast(4,7) @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -41,36 +41,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$1 -bool~ main::$2 -byte main::h -byte main::h#0 -byte main::h#1 -byte main::h#2 -byte main::h#3 -byte main::h#4 -constant byte* main::his[] = { byte1 SCREEN, byte1 SCREEN+$100, byte1 SCREEN+$200 } -byte main::l -byte main::l#0 -byte main::l#1 -byte main::l#2 -byte* main::sc -byte* main::sc#0 -word main::w -word main::w#0 +bool main::$1 +bool main::$2 +char main::h +char main::h#0 +char main::h#1 +char main::h#2 +char main::h#3 +char main::h#4 +__constant char main::his[] = { byte1 SCREEN, byte1 SCREEN+$100, byte1 SCREEN+$200 } +char main::l +char main::l#0 +char main::l#1 +char main::l#2 +char *main::sc +char *main::sc#0 +unsigned int main::w +unsigned int main::w#0 Adding number conversion cast (unumber) $100 in Adding number conversion cast (unumber) $200 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $100 Simplifying constant integer cast $200 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $200 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $200 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::h#2 = main::h#3 Successful SSA optimization Pass2AliasElimination @@ -97,10 +97,10 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [3] main::sc#0 = (byte*)main::w#0 keeping main::w#0 +Inlining Noop Cast [3] main::sc#0 = (char *)main::w#0 keeping main::w#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::h#0 Inlining constant with var siblings main::l#0 @@ -132,7 +132,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 main::@2 [2] main::l#2 = phi( main::@1/4, main::@2/main::l#1 ) [3] main::w#0 = main::his[main::h#4] w= main::l#2 - [4] *((byte*)main::w#0) = '*' + [4] *((char *)main::w#0) = '*' [5] main::l#1 = ++ main::l#2 [6] if(main::l#1!=8) goto main::@2 to:main::@3 @@ -147,15 +147,15 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::h -byte main::h#1 16.5 -byte main::h#4 20.499999999999996 -byte main::l -byte main::l#1 151.5 -byte main::l#2 101.0 -byte* main::sc -word main::w -word main::w#0 101.0 +char main::h +char main::h#1 // 16.5 +char main::h#4 // 20.499999999999996 +char main::l +char main::l#1 // 151.5 +char main::l#2 // 101.0 +char *main::sc +unsigned int main::w +unsigned int main::w#0 // 101.0 Initial phi equivalence classes [ main::h#4 main::h#1 ] @@ -169,13 +169,13 @@ Allocated zp[1]:2 [ main::h#4 main::h#1 ] Allocated zp[1]:3 [ main::l#2 main::l#1 ] Allocated zp[2]:4 [ main::w#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] *((byte*)main::w#0) = '*' [ main::h#4 main::l#2 ] ( [ main::h#4 main::l#2 ] { } ) always clobbers reg byte a reg byte y +Statement [4] *((char *)main::w#0) = '*' [ main::h#4 main::l#2 ] ( [ main::h#4 main::l#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::h#4 main::h#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::h#4 main::h#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::l#2 main::l#1 ] Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::l#2 main::l#1 ] Statement [3] main::w#0 = main::his[main::h#4] w= main::l#2 [ main::h#4 main::l#2 main::w#0 ] ( [ main::h#4 main::l#2 main::w#0 ] { } ) always clobbers reg byte a -Statement [4] *((byte*)main::w#0) = '*' [ main::h#4 main::l#2 ] ( [ main::h#4 main::l#2 ] { } ) always clobbers reg byte a reg byte y +Statement [4] *((char *)main::w#0) = '*' [ main::h#4 main::l#2 ] ( [ main::h#4 main::l#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::h#4 main::h#1 ] : zp[1]:2 , reg byte x , Potential registers zp[1]:3 [ main::l#2 main::l#1 ] : zp[1]:3 , reg byte x , Potential registers zp[2]:4 [ main::w#0 ] : zp[2]:4 , @@ -237,7 +237,7 @@ main: { lda his,y sta.z w+1 stx.z w - // [4] *((byte*)main::w#0) = '*' -- _deref_pbuz1=vbuc1 + // [4] *((char *)main::w#0) = '*' -- _deref_pbuz1=vbuc1 lda #'*' ldy #0 sta (w),y @@ -286,18 +286,18 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::h -byte main::h#1 h zp[1]:2 16.5 -byte main::h#4 h zp[1]:2 20.499999999999996 -constant byte* main::his[] = { byte1 SCREEN, byte1 SCREEN+$100, byte1 SCREEN+$200 } -byte main::l -byte main::l#1 reg byte x 151.5 -byte main::l#2 reg byte x 101.0 -byte* main::sc -word main::w -word main::w#0 w zp[2]:3 101.0 +char main::h +char main::h#1 // h zp[1]:2 16.5 +char main::h#4 // h zp[1]:2 20.499999999999996 +__constant char main::his[] = { byte1 SCREEN, byte1 SCREEN+$100, byte1 SCREEN+$200 } +char main::l +char main::l#1 // reg byte x 151.5 +char main::l#2 // reg byte x 101.0 +char *main::sc +unsigned int main::w +unsigned int main::w#0 // w zp[2]:3 101.0 zp[1]:2 [ main::h#4 main::h#1 ] reg byte x [ main::l#2 main::l#1 ] @@ -347,7 +347,7 @@ main: { sta.z w+1 stx.z w // *sc = '*' - // [4] *((byte*)main::w#0) = '*' -- _deref_pbuz1=vbuc1 + // [4] *((char *)main::w#0) = '*' -- _deref_pbuz1=vbuc1 lda #'*' ldy #0 sta (w),y diff --git a/src/test/ref/inline-word.sym b/src/test/ref/inline-word.sym index a19351dde..f2bac5846 100644 --- a/src/test/ref/inline-word.sym +++ b/src/test/ref/inline-word.sym @@ -1,15 +1,15 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::h -byte main::h#1 h zp[1]:2 16.5 -byte main::h#4 h zp[1]:2 20.499999999999996 -constant byte* main::his[] = { byte1 SCREEN, byte1 SCREEN+$100, byte1 SCREEN+$200 } -byte main::l -byte main::l#1 reg byte x 151.5 -byte main::l#2 reg byte x 101.0 -byte* main::sc -word main::w -word main::w#0 w zp[2]:3 101.0 +char main::h +char main::h#1 // h zp[1]:2 16.5 +char main::h#4 // h zp[1]:2 20.499999999999996 +__constant char main::his[] = { byte1 SCREEN, byte1 SCREEN+$100, byte1 SCREEN+$200 } +char main::l +char main::l#1 // reg byte x 151.5 +char main::l#2 // reg byte x 101.0 +char *main::sc +unsigned int main::w +unsigned int main::w#0 // w zp[2]:3 101.0 zp[1]:2 [ main::h#4 main::h#1 ] reg byte x [ main::l#2 main::l#1 ] diff --git a/src/test/ref/inlinearrayproblem.log b/src/test/ref/inlinearrayproblem.log index e6127226f..89e7a22d9 100644 --- a/src/test/ref/inlinearrayproblem.log +++ b/src/test/ref/inlinearrayproblem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -33,25 +33,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* SCREEN2 = (byte*)$400+$28 +__constant char *SCREEN = (char *)$400 +__constant char *SCREEN2 = (char *)$400+$28 void __start() void main() -bool~ main::$0 -constant byte* main::data[] = { 1, 2, 3 } -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* main::txt[] = "qwe"z +bool main::$0 +__constant char main::data[] = { 1, 2, 3 } +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char main::txt[] = "qwe"z Adding number conversion cast (unumber) $28 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -70,7 +70,7 @@ Adding number conversion cast (unumber) 4 in [4] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -105,9 +105,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -195,14 +195,14 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1024+$28 +__constant char *SCREEN = (char *) 1024 +__constant char *SCREEN2 = (char *) 1024+$28 void main() -constant byte* main::data[] = { 1, 2, 3 } -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* main::txt[] = "qwe"z +__constant char main::data[] = { 1, 2, 3 } +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char main::txt[] = "qwe"z reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inlinearrayproblem.sym b/src/test/ref/inlinearrayproblem.sym index 2e4c41543..398a7c286 100644 --- a/src/test/ref/inlinearrayproblem.sym +++ b/src/test/ref/inlinearrayproblem.sym @@ -1,10 +1,10 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1024+$28 +__constant char *SCREEN = (char *) 1024 +__constant char *SCREEN2 = (char *) 1024+$28 void main() -constant byte* main::data[] = { 1, 2, 3 } -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* main::txt[] = "qwe"z +__constant char main::data[] = { 1, 2, 3 } +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char main::txt[] = "qwe"z reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inmem-const-array.log b/src/test/ref/inmem-const-array.log index 3e5032bab..9d54985b3 100644 --- a/src/test/ref/inmem-const-array.log +++ b/src/test/ref/inmem-const-array.log @@ -33,7 +33,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,42 +42,42 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte GREEN = 5 -constant const byte RED = 2 -constant const byte WHITE = 1 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant const char WHITE = 1 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -constant byte* main::cols = (byte*)$d800 -constant byte* main::colseq[] = { WHITE, RED, GREEN } -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -constant byte* main::screen = (byte*)$400 +bool main::$0 +bool main::$1 +bool main::$2 +__constant char *main::cols = (char *)$d800 +__constant char main::colseq[] = { WHITE, RED, GREEN } +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 3 in main::$0 = main::j#1 == 3 Adding number conversion cast (unumber) 0 in main::j#2 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::j#2 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [7] main::$1 = main::j#1 != 3 from [6] main::$0 = main::j#1 == 3 Successful SSA optimization Pass2UnaryNotSimplification @@ -103,7 +103,7 @@ Adding number conversion cast (unumber) $28 in [7] if(main::i#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::j#0 Inlining constant with var siblings main::i#0 @@ -158,13 +158,13 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.285714285714286 -byte main::j -byte main::j#1 11.0 -byte main::j#3 11.0 -byte main::j#4 7.333333333333333 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.285714285714286 +char main::j +char main::j#1 // 11.0 +char main::j#3 // 11.0 +char main::j#4 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -289,20 +289,20 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte GREEN = 5 -constant const byte RED = 2 -constant const byte WHITE = 1 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant const char WHITE = 1 void main() -constant byte* main::cols = (byte*) 55296 -constant byte* main::colseq[] = { WHITE, RED, GREEN } -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.285714285714286 -byte main::j -byte main::j#1 reg byte y 11.0 -byte main::j#3 reg byte y 11.0 -byte main::j#4 reg byte y 7.333333333333333 -constant byte* main::screen = (byte*) 1024 +__constant char *main::cols = (char *) 55296 +__constant char main::colseq[] = { WHITE, RED, GREEN } +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.285714285714286 +char main::j +char main::j#1 // reg byte y 11.0 +char main::j#3 // reg byte y 11.0 +char main::j#4 // reg byte y 7.333333333333333 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#3 main::j#4 main::j#1 ] diff --git a/src/test/ref/inmem-const-array.sym b/src/test/ref/inmem-const-array.sym index 4527bad31..93af6723c 100644 --- a/src/test/ref/inmem-const-array.sym +++ b/src/test/ref/inmem-const-array.sym @@ -1,17 +1,17 @@ -constant const byte GREEN = 5 -constant const byte RED = 2 -constant const byte WHITE = 1 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant const char WHITE = 1 void main() -constant byte* main::cols = (byte*) 55296 -constant byte* main::colseq[] = { WHITE, RED, GREEN } -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.285714285714286 -byte main::j -byte main::j#1 reg byte y 11.0 -byte main::j#3 reg byte y 11.0 -byte main::j#4 reg byte y 7.333333333333333 -constant byte* main::screen = (byte*) 1024 +__constant char *main::cols = (char *) 55296 +__constant char main::colseq[] = { WHITE, RED, GREEN } +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.285714285714286 +char main::j +char main::j#1 // reg byte y 11.0 +char main::j#3 // reg byte y 11.0 +char main::j#4 // reg byte y 7.333333333333333 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#3 main::j#4 main::j#1 ] diff --git a/src/test/ref/inmemarray.log b/src/test/ref/inmemarray.log index 9ac2ce0fe..268b56216 100644 --- a/src/test/ref/inmemarray.log +++ b/src/test/ref/inmemarray.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -37,7 +37,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -46,37 +46,37 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* TXT[] = { 3, 1, $d, 5, $c, $f, $14, $20 } +__constant char *SCREEN = (char *)$400 +__constant char TXT[] = { 3, 1, $d, 5, $c, $f, $14, $20 } void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 Adding number conversion cast (unumber) 8 in main::$0 = main::j#1 == 8 Adding number conversion cast (unumber) 0 in main::j#2 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::j#2 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [6] main::$1 = main::j#1 != 8 from [5] main::$0 = main::j#1 == 8 Successful SSA optimization Pass2UnaryNotSimplification @@ -104,7 +104,7 @@ Adding number conversion cast (unumber) $65 in [6] if(main::i#1!=$65) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::j#0 Inlining constant with var siblings main::i#0 @@ -158,13 +158,13 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -byte main::j -byte main::j#1 11.0 -byte main::j#3 16.5 -byte main::j#4 7.333333333333333 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +char main::j +char main::j#1 // 11.0 +char main::j#3 // 16.5 +char main::j#4 // 7.333333333333333 Initial phi equivalence classes [ main::j#3 main::j#4 main::j#1 ] @@ -280,16 +280,16 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* TXT[] = { 3, 1, $d, 5, $c, $f, $14, $20 } +__constant char *SCREEN = (char *) 1024 +__constant char TXT[] = { 3, 1, $d, 5, $c, $f, $14, $20 } void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte main::j -byte main::j#1 reg byte y 11.0 -byte main::j#3 reg byte y 16.5 -byte main::j#4 reg byte y 7.333333333333333 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char main::j +char main::j#1 // reg byte y 11.0 +char main::j#3 // reg byte y 16.5 +char main::j#4 // reg byte y 7.333333333333333 reg byte y [ main::j#3 main::j#4 main::j#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inmemarray.sym b/src/test/ref/inmemarray.sym index c9330377d..9be83f68b 100644 --- a/src/test/ref/inmemarray.sym +++ b/src/test/ref/inmemarray.sym @@ -1,13 +1,13 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* TXT[] = { 3, 1, $d, 5, $c, $f, $14, $20 } +__constant char *SCREEN = (char *) 1024 +__constant char TXT[] = { 3, 1, $d, 5, $c, $f, $14, $20 } void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte main::j -byte main::j#1 reg byte y 11.0 -byte main::j#3 reg byte y 16.5 -byte main::j#4 reg byte y 7.333333333333333 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char main::j +char main::j#1 // reg byte y 11.0 +char main::j#3 // reg byte y 16.5 +char main::j#4 // reg byte y 7.333333333333333 reg byte y [ main::j#3 main::j#4 main::j#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inmemstring.log b/src/test/ref/inmemstring.log index 2533952a0..acbc8dcfa 100644 --- a/src/test/ref/inmemstring.log +++ b/src/test/ref/inmemstring.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -38,7 +38,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -47,26 +47,26 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* TEXT[] = "camelot "z +__constant char *SCREEN = (char *)$400 +__constant char TEXT[] = "camelot "z void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte*~ main::$2 -bool~ main::$3 -byte* main::cursor -byte* main::cursor#0 -byte* main::cursor#1 -byte* main::cursor#2 -byte* main::cursor#3 -byte* main::cursor#4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +bool main::$1 +char *main::$2 +bool main::$3 +char *main::cursor +char *main::cursor#0 +char *main::cursor#1 +char *main::cursor#2 +char *main::cursor#3 +char *main::cursor#4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) 8 in main::$0 = main::i#1 == 8 Adding number conversion cast (unumber) $3e8 in main::$2 = SCREEN + $3e8 @@ -74,14 +74,14 @@ Adding number conversion cast (unumber) 0 in main::i#2 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::i#2 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 8 Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [6] main::$1 = main::i#1 != 8 from [5] main::$0 = main::i#1 == 8 Successful SSA optimization Pass2UnaryNotSimplification @@ -159,13 +159,13 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte* main::cursor -byte* main::cursor#1 16.5 -byte* main::cursor#2 5.5 -byte main::i -byte main::i#1 11.0 -byte main::i#3 16.5 -byte main::i#4 7.333333333333333 +char *main::cursor +char *main::cursor#1 // 16.5 +char *main::cursor#2 // 5.5 +char main::i +char main::i#1 // 11.0 +char main::i#3 // 16.5 +char main::i#4 // 7.333333333333333 Initial phi equivalence classes [ main::i#3 main::i#4 main::i#1 ] @@ -299,16 +299,16 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT[] = "camelot "z +__constant char *SCREEN = (char *) 1024 +__constant char TEXT[] = "camelot "z void main() -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:2 16.5 -byte* main::cursor#2 cursor zp[2]:2 5.5 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#3 reg byte x 16.5 -byte main::i#4 reg byte x 7.333333333333333 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:2 16.5 +char *main::cursor#2 // cursor zp[2]:2 5.5 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#3 // reg byte x 16.5 +char main::i#4 // reg byte x 7.333333333333333 reg byte x [ main::i#3 main::i#4 main::i#1 ] zp[2]:2 [ main::cursor#2 main::cursor#1 ] diff --git a/src/test/ref/inmemstring.sym b/src/test/ref/inmemstring.sym index fce9b170f..de0c86177 100644 --- a/src/test/ref/inmemstring.sym +++ b/src/test/ref/inmemstring.sym @@ -1,13 +1,13 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT[] = "camelot "z +__constant char *SCREEN = (char *) 1024 +__constant char TEXT[] = "camelot "z void main() -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:2 16.5 -byte* main::cursor#2 cursor zp[2]:2 5.5 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#3 reg byte x 16.5 -byte main::i#4 reg byte x 7.333333333333333 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:2 16.5 +char *main::cursor#2 // cursor zp[2]:2 5.5 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#3 // reg byte x 16.5 +char main::i#4 // reg byte x 7.333333333333333 reg byte x [ main::i#3 main::i#4 main::i#1 ] zp[2]:2 [ main::cursor#2 main::cursor#1 ] diff --git a/src/test/ref/inner-increment-problem.cfg b/src/test/ref/inner-increment-problem.cfg index 5e3cce0b8..2d8098a01 100644 --- a/src/test/ref/inner-increment-problem.cfg +++ b/src/test/ref/inner-increment-problem.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [1] main::screen#2 = phi( main/(byte*) 1024, main::@1/main::screen#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@1/main::screen#1 ) [2] main::$3 = *main::screen#2 << 1 [3] CHAR_COUNTS[main::$3] = ++ CHAR_COUNTS[main::$3] [4] main::screen#1 = ++ main::screen#2 diff --git a/src/test/ref/inner-increment-problem.log b/src/test/ref/inner-increment-problem.log index 01c7f739f..417e35741 100644 --- a/src/test/ref/inner-increment-problem.log +++ b/src/test/ref/inner-increment-problem.log @@ -3,13 +3,13 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::screen#2 = phi( main/main::screen#0, main::@1/main::screen#1 ) - main::$3 = *main::screen#2 * SIZEOF_WORD + main::$3 = *main::screen#2 * SIZEOF_UNSIGNED_INT CHAR_COUNTS[main::$3] = ++ CHAR_COUNTS[main::$3] main::screen#1 = ++ main::screen#2 main::i#1 = main::i#2 + rangenext(0,$3e7) @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,26 +31,26 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const word* CHAR_COUNTS[$100] = { fill( $100, 0) } -constant byte SIZEOF_WORD = 2 +__constant const unsigned int CHAR_COUNTS[$100] = { fill( $100, 0) } +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$1 -byte~ main::$3 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 +bool main::$1 +char main::$3 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$1 [8] if(main::i#1!=rangelast(0,$3e7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [6] main::i#1 = ++ main::i#2 to ++ @@ -64,19 +64,19 @@ Adding number conversion cast (unumber) $3e8 in [5] if(main::i#1!=$3e8) goto mai Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $3e8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [1] main::$3 = *main::screen#2 * SIZEOF_WORD +Rewriting multiplication to use shift [1] main::$3 = *main::screen#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -97,7 +97,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [1] main::screen#2 = phi( main/(byte*) 1024, main::@1/main::screen#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@1/main::screen#1 ) [2] main::$3 = *main::screen#2 << 1 [3] CHAR_COUNTS[main::$3] = ++ CHAR_COUNTS[main::$3] [4] main::screen#1 = ++ main::screen#2 @@ -111,13 +111,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 33.0 -word main::i -word main::i#1 16.5 -word main::i#2 5.5 -byte* main::screen -byte* main::screen#1 7.333333333333333 -byte* main::screen#2 11.0 +char main::$3 // 33.0 +unsigned int main::i +unsigned int main::i#1 // 16.5 +unsigned int main::i#2 // 5.5 +char *main::screen +char *main::screen#1 // 7.333333333333333 +char *main::screen#2 // 11.0 Initial phi equivalence classes [ main::screen#2 main::screen#1 ] @@ -170,7 +170,7 @@ main: { sta.z i lda #>0 sta.z i+1 - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -237,15 +237,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const word* CHAR_COUNTS[$100] = { fill( $100, 0) } +__constant const unsigned int CHAR_COUNTS[$100] = { fill( $100, 0) } void main() -byte~ main::$3 reg byte a 33.0 -word main::i -word main::i#1 i zp[2]:4 16.5 -word main::i#2 i zp[2]:4 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 7.333333333333333 -byte* main::screen#2 screen zp[2]:2 11.0 +char main::$3 // reg byte a 33.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:4 16.5 +unsigned int main::i#2 // i zp[2]:4 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 7.333333333333333 +char *main::screen#2 // screen zp[2]:2 11.0 zp[2]:2 [ main::screen#2 main::screen#1 ] zp[2]:4 [ main::i#2 main::i#1 ] @@ -278,7 +278,7 @@ main: { lda #<0 sta.z i sta.z i+1 - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/inner-increment-problem.sym b/src/test/ref/inner-increment-problem.sym index 36b4f29ef..490590946 100644 --- a/src/test/ref/inner-increment-problem.sym +++ b/src/test/ref/inner-increment-problem.sym @@ -1,12 +1,12 @@ -constant const word* CHAR_COUNTS[$100] = { fill( $100, 0) } +__constant const unsigned int CHAR_COUNTS[$100] = { fill( $100, 0) } void main() -byte~ main::$3 reg byte a 33.0 -word main::i -word main::i#1 i zp[2]:4 16.5 -word main::i#2 i zp[2]:4 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 7.333333333333333 -byte* main::screen#2 screen zp[2]:2 11.0 +char main::$3 // reg byte a 33.0 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:4 16.5 +unsigned int main::i#2 // i zp[2]:4 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 7.333333333333333 +char *main::screen#2 // screen zp[2]:2 11.0 zp[2]:2 [ main::screen#2 main::screen#1 ] zp[2]:4 [ main::i#2 main::i#1 ] diff --git a/src/test/ref/inner-index-problem.log b/src/test/ref/inner-index-problem.log index e4912be0d..59393046a 100644 --- a/src/test/ref/inner-index-problem.log +++ b/src/test/ref/inner-index-problem.log @@ -12,9 +12,9 @@ main::@1: scope:[main] from main main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - main::$1 = main::i#3 * SIZEOF_WORD + main::$1 = main::i#3 * SIZEOF_UNSIGNED_INT v[main::$1] = v[main::$1] + 5 - main::$2 = main::i#3 * SIZEOF_WORD + main::$2 = main::i#3 * SIZEOF_UNSIGNED_INT x[main::$2] = x[main::$2] + v[main::$2] main::i#1 = ++ main::i#3 to:main::@1 @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,19 +33,19 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant word* v[5] = { fill( 5, 0) } -constant word* x[5] = { fill( 5, 0) } +bool main::$0 +char main::$1 +char main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant unsigned int v[5] = { fill( 5, 0) } +__constant unsigned int x[5] = { fill( 5, 0) } Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 < 5 Adding number conversion cast (unumber) 5 in v[main::$1] = v[main::$1] + 5 @@ -53,12 +53,12 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 5 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination -Identified duplicate assignment right side [7] main::$2 = main::i#2 * SIZEOF_WORD +Identified duplicate assignment right side [7] main::$2 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$0 [3] if(main::i#2<5) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -71,17 +71,17 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Alias main::$2 = main::$1 Successful SSA optimization Pass2AliasElimination -Rewriting multiplication to use shift [2] main::$2 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$2 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -114,10 +114,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 33.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 8.8 +char main::$2 // 33.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 8.8 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -222,12 +222,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$2 reg byte y 33.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 8.8 -constant word* v[5] = { fill( 5, 0) } -constant word* x[5] = { fill( 5, 0) } +char main::$2 // reg byte y 33.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 8.8 +__constant unsigned int v[5] = { fill( 5, 0) } +__constant unsigned int x[5] = { fill( 5, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::$2 ] diff --git a/src/test/ref/inner-index-problem.sym b/src/test/ref/inner-index-problem.sym index 7d11cc32c..fc845d494 100644 --- a/src/test/ref/inner-index-problem.sym +++ b/src/test/ref/inner-index-problem.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$2 reg byte y 33.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 8.8 -constant word* v[5] = { fill( 5, 0) } -constant word* x[5] = { fill( 5, 0) } +char main::$2 // reg byte y 33.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 8.8 +__constant unsigned int v[5] = { fill( 5, 0) } +__constant unsigned int x[5] = { fill( 5, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::$2 ] diff --git a/src/test/ref/int-conversion.asm b/src/test/ref/int-conversion.asm index 2e8db2ac0..5ad785e05 100644 --- a/src/test/ref/int-conversion.asm +++ b/src/test/ref/int-conversion.asm @@ -9,12 +9,12 @@ :BasicUpstart(main) .const RED = 2 .const GREEN = 5 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .label SCREEN = $400 .label COLS = $d800 .segment Code @@ -56,32 +56,32 @@ testUnaryOperator: { // assertType(typeid(-12ub), typeid(unsigned byte)) // Unary Operations ldx #0 - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(-12sb), typeid(signed byte)) - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(-12uw), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(-12sw), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(-12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(-12sd), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType @@ -92,32 +92,32 @@ testBinaryOperator: { // assertType(typeid(12ub+12ub), typeid(unsigned byte)) // Binary Operations between unsigned byte & other types ldx #$28 - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+12sb), typeid(unsigned byte)) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+12uw), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+12sw), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+12sd), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType @@ -125,32 +125,32 @@ testBinaryOperator: { inx // assertType(typeid(12sb+12ub), typeid(unsigned byte)) // Binary Operations between signed byte & other types - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+12sb), typeid(signed byte)) - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+12uw), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+12sw), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+12sd), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType @@ -158,64 +158,64 @@ testBinaryOperator: { inx // assertType(typeid(12uw+12ub), typeid(unsigned word)) // Binary Operations between unsigned word & other types - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+12sb), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+12uw), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+12sw), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+12sd), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12ub), typeid(signed word)) // Binary Operations between signed word & other types ldx #$50 - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12sb), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12uw), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12sw), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12sd), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType @@ -223,32 +223,32 @@ testBinaryOperator: { inx // assertType(typeid(12ud+12ub), typeid(unsigned dword)) // Binary Operations between unsigned dword & other types - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+12sb), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+12uw), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+12sw), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+12sd), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType @@ -256,32 +256,32 @@ testBinaryOperator: { inx // assertType(typeid(12sd+12ub), typeid(signed dword)) // Binary Operations between signed dword & other types - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+12sb), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+12uw), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+12sw), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+12ud), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+12sd), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType @@ -291,7 +291,7 @@ testBinaryOperator: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(Y) t1, byte zp(4) t2) +// void assertType(__register(Y) char t1, __zp(4) char t2) assertType: { .label t2 = 4 // if(t1==t2) diff --git a/src/test/ref/int-conversion.cfg b/src/test/ref/int-conversion.cfg index 6d8c9f2c6..8100d2c2d 100644 --- a/src/test/ref/int-conversion.cfg +++ b/src/test/ref/int-conversion.cfg @@ -9,11 +9,11 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [3] phi() - [4] call testUnaryOperator + [4] call testUnaryOperator to:main::@4 main::@4: scope:[main] from main::@3 [5] phi() - [6] call testBinaryOperator + [6] call testBinaryOperator to:main::@return main::@return: scope:[main] from main::@4 [7] return @@ -26,27 +26,27 @@ main::@2: scope:[main] from main::@1 void testUnaryOperator() testUnaryOperator: scope:[testUnaryOperator] from main::@3 [10] phi() - [11] call assertType + [11] call assertType to:testUnaryOperator::@1 testUnaryOperator::@1: scope:[testUnaryOperator] from testUnaryOperator [12] phi() - [13] call assertType + [13] call assertType to:testUnaryOperator::@2 testUnaryOperator::@2: scope:[testUnaryOperator] from testUnaryOperator::@1 [14] phi() - [15] call assertType + [15] call assertType to:testUnaryOperator::@3 testUnaryOperator::@3: scope:[testUnaryOperator] from testUnaryOperator::@2 [16] phi() - [17] call assertType + [17] call assertType to:testUnaryOperator::@4 testUnaryOperator::@4: scope:[testUnaryOperator] from testUnaryOperator::@3 [18] phi() - [19] call assertType + [19] call assertType to:testUnaryOperator::@5 testUnaryOperator::@5: scope:[testUnaryOperator] from testUnaryOperator::@4 [20] phi() - [21] call assertType + [21] call assertType to:testUnaryOperator::@return testUnaryOperator::@return: scope:[testUnaryOperator] from testUnaryOperator::@5 [22] return @@ -55,157 +55,157 @@ testUnaryOperator::@return: scope:[testUnaryOperator] from testUnaryOperator::@ void testBinaryOperator() testBinaryOperator: scope:[testBinaryOperator] from main::@4 [23] phi() - [24] call assertType + [24] call assertType to:testBinaryOperator::@1 testBinaryOperator::@1: scope:[testBinaryOperator] from testBinaryOperator [25] phi() - [26] call assertType + [26] call assertType to:testBinaryOperator::@2 testBinaryOperator::@2: scope:[testBinaryOperator] from testBinaryOperator::@1 [27] phi() - [28] call assertType + [28] call assertType to:testBinaryOperator::@3 testBinaryOperator::@3: scope:[testBinaryOperator] from testBinaryOperator::@2 [29] phi() - [30] call assertType + [30] call assertType to:testBinaryOperator::@4 testBinaryOperator::@4: scope:[testBinaryOperator] from testBinaryOperator::@3 [31] phi() - [32] call assertType + [32] call assertType to:testBinaryOperator::@5 testBinaryOperator::@5: scope:[testBinaryOperator] from testBinaryOperator::@4 [33] phi() - [34] call assertType + [34] call assertType to:testBinaryOperator::@6 testBinaryOperator::@6: scope:[testBinaryOperator] from testBinaryOperator::@5 [35] idx#18 = ++ idx#109 - [36] call assertType + [36] call assertType to:testBinaryOperator::@7 testBinaryOperator::@7: scope:[testBinaryOperator] from testBinaryOperator::@6 [37] phi() - [38] call assertType + [38] call assertType to:testBinaryOperator::@8 testBinaryOperator::@8: scope:[testBinaryOperator] from testBinaryOperator::@7 [39] phi() - [40] call assertType + [40] call assertType to:testBinaryOperator::@9 testBinaryOperator::@9: scope:[testBinaryOperator] from testBinaryOperator::@8 [41] phi() - [42] call assertType + [42] call assertType to:testBinaryOperator::@10 testBinaryOperator::@10: scope:[testBinaryOperator] from testBinaryOperator::@9 [43] phi() - [44] call assertType + [44] call assertType to:testBinaryOperator::@11 testBinaryOperator::@11: scope:[testBinaryOperator] from testBinaryOperator::@10 [45] phi() - [46] call assertType + [46] call assertType to:testBinaryOperator::@12 testBinaryOperator::@12: scope:[testBinaryOperator] from testBinaryOperator::@11 [47] idx#25 = ++ idx#109 - [48] call assertType + [48] call assertType to:testBinaryOperator::@13 testBinaryOperator::@13: scope:[testBinaryOperator] from testBinaryOperator::@12 [49] phi() - [50] call assertType + [50] call assertType to:testBinaryOperator::@14 testBinaryOperator::@14: scope:[testBinaryOperator] from testBinaryOperator::@13 [51] phi() - [52] call assertType + [52] call assertType to:testBinaryOperator::@15 testBinaryOperator::@15: scope:[testBinaryOperator] from testBinaryOperator::@14 [53] phi() - [54] call assertType + [54] call assertType to:testBinaryOperator::@16 testBinaryOperator::@16: scope:[testBinaryOperator] from testBinaryOperator::@15 [55] phi() - [56] call assertType + [56] call assertType to:testBinaryOperator::@17 testBinaryOperator::@17: scope:[testBinaryOperator] from testBinaryOperator::@16 [57] phi() - [58] call assertType + [58] call assertType to:testBinaryOperator::@18 testBinaryOperator::@18: scope:[testBinaryOperator] from testBinaryOperator::@17 [59] phi() - [60] call assertType + [60] call assertType to:testBinaryOperator::@19 testBinaryOperator::@19: scope:[testBinaryOperator] from testBinaryOperator::@18 [61] phi() - [62] call assertType + [62] call assertType to:testBinaryOperator::@20 testBinaryOperator::@20: scope:[testBinaryOperator] from testBinaryOperator::@19 [63] phi() - [64] call assertType + [64] call assertType to:testBinaryOperator::@21 testBinaryOperator::@21: scope:[testBinaryOperator] from testBinaryOperator::@20 [65] phi() - [66] call assertType + [66] call assertType to:testBinaryOperator::@22 testBinaryOperator::@22: scope:[testBinaryOperator] from testBinaryOperator::@21 [67] phi() - [68] call assertType + [68] call assertType to:testBinaryOperator::@23 testBinaryOperator::@23: scope:[testBinaryOperator] from testBinaryOperator::@22 [69] phi() - [70] call assertType + [70] call assertType to:testBinaryOperator::@24 testBinaryOperator::@24: scope:[testBinaryOperator] from testBinaryOperator::@23 [71] idx#39 = ++ idx#109 - [72] call assertType + [72] call assertType to:testBinaryOperator::@25 testBinaryOperator::@25: scope:[testBinaryOperator] from testBinaryOperator::@24 [73] phi() - [74] call assertType + [74] call assertType to:testBinaryOperator::@26 testBinaryOperator::@26: scope:[testBinaryOperator] from testBinaryOperator::@25 [75] phi() - [76] call assertType + [76] call assertType to:testBinaryOperator::@27 testBinaryOperator::@27: scope:[testBinaryOperator] from testBinaryOperator::@26 [77] phi() - [78] call assertType + [78] call assertType to:testBinaryOperator::@28 testBinaryOperator::@28: scope:[testBinaryOperator] from testBinaryOperator::@27 [79] phi() - [80] call assertType + [80] call assertType to:testBinaryOperator::@29 testBinaryOperator::@29: scope:[testBinaryOperator] from testBinaryOperator::@28 [81] phi() - [82] call assertType + [82] call assertType to:testBinaryOperator::@30 testBinaryOperator::@30: scope:[testBinaryOperator] from testBinaryOperator::@29 [83] idx#46 = ++ idx#109 - [84] call assertType + [84] call assertType to:testBinaryOperator::@31 testBinaryOperator::@31: scope:[testBinaryOperator] from testBinaryOperator::@30 [85] phi() - [86] call assertType + [86] call assertType to:testBinaryOperator::@32 testBinaryOperator::@32: scope:[testBinaryOperator] from testBinaryOperator::@31 [87] phi() - [88] call assertType + [88] call assertType to:testBinaryOperator::@33 testBinaryOperator::@33: scope:[testBinaryOperator] from testBinaryOperator::@32 [89] phi() - [90] call assertType + [90] call assertType to:testBinaryOperator::@34 testBinaryOperator::@34: scope:[testBinaryOperator] from testBinaryOperator::@33 [91] phi() - [92] call assertType + [92] call assertType to:testBinaryOperator::@35 testBinaryOperator::@35: scope:[testBinaryOperator] from testBinaryOperator::@34 [93] phi() - [94] call assertType + [94] call assertType to:testBinaryOperator::@return testBinaryOperator::@return: scope:[testBinaryOperator] from testBinaryOperator::@35 [95] return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from testBinaryOperator testBinaryOperator::@1 testBinaryOperator::@10 testBinaryOperator::@11 testBinaryOperator::@12 testBinaryOperator::@13 testBinaryOperator::@14 testBinaryOperator::@15 testBinaryOperator::@16 testBinaryOperator::@17 testBinaryOperator::@18 testBinaryOperator::@19 testBinaryOperator::@2 testBinaryOperator::@20 testBinaryOperator::@21 testBinaryOperator::@22 testBinaryOperator::@23 testBinaryOperator::@24 testBinaryOperator::@25 testBinaryOperator::@26 testBinaryOperator::@27 testBinaryOperator::@28 testBinaryOperator::@29 testBinaryOperator::@3 testBinaryOperator::@30 testBinaryOperator::@31 testBinaryOperator::@32 testBinaryOperator::@33 testBinaryOperator::@34 testBinaryOperator::@35 testBinaryOperator::@4 testBinaryOperator::@5 testBinaryOperator::@6 testBinaryOperator::@7 testBinaryOperator::@8 testBinaryOperator::@9 testUnaryOperator testUnaryOperator::@1 testUnaryOperator::@2 testUnaryOperator::@3 testUnaryOperator::@4 testUnaryOperator::@5 [96] idx#106 = phi( testBinaryOperator/$28, testBinaryOperator::@1/idx#109, testBinaryOperator::@10/idx#109, testBinaryOperator::@11/idx#109, testBinaryOperator::@12/idx#25, testBinaryOperator::@13/idx#109, testBinaryOperator::@14/idx#109, testBinaryOperator::@15/idx#109, testBinaryOperator::@16/idx#109, testBinaryOperator::@17/idx#109, testBinaryOperator::@18/$50, testBinaryOperator::@19/idx#109, testBinaryOperator::@2/idx#109, testBinaryOperator::@20/idx#109, testBinaryOperator::@21/idx#109, testBinaryOperator::@22/idx#109, testBinaryOperator::@23/idx#109, testBinaryOperator::@24/idx#39, testBinaryOperator::@25/idx#109, testBinaryOperator::@26/idx#109, testBinaryOperator::@27/idx#109, testBinaryOperator::@28/idx#109, testBinaryOperator::@29/idx#109, testBinaryOperator::@3/idx#109, testBinaryOperator::@30/idx#46, testBinaryOperator::@31/idx#109, testBinaryOperator::@32/idx#109, testBinaryOperator::@33/idx#109, testBinaryOperator::@34/idx#109, testBinaryOperator::@35/idx#109, testBinaryOperator::@4/idx#109, testBinaryOperator::@5/idx#109, testBinaryOperator::@6/idx#18, testBinaryOperator::@7/idx#109, testBinaryOperator::@8/idx#109, testBinaryOperator::@9/idx#109, testUnaryOperator/0, testUnaryOperator::@1/idx#109, testUnaryOperator::@2/idx#109, testUnaryOperator::@3/idx#109, testUnaryOperator::@4/idx#109, testUnaryOperator::@5/idx#109 ) - [96] assertType::t2#42 = phi( testBinaryOperator/TYPEID_BYTE, testBinaryOperator::@1/TYPEID_BYTE, testBinaryOperator::@10/TYPEID_DWORD, testBinaryOperator::@11/TYPEID_SIGNED_DWORD, testBinaryOperator::@12/TYPEID_WORD, testBinaryOperator::@13/TYPEID_WORD, testBinaryOperator::@14/TYPEID_WORD, testBinaryOperator::@15/TYPEID_WORD, testBinaryOperator::@16/TYPEID_DWORD, testBinaryOperator::@17/TYPEID_SIGNED_DWORD, testBinaryOperator::@18/TYPEID_SIGNED_WORD, testBinaryOperator::@19/TYPEID_SIGNED_WORD, testBinaryOperator::@2/TYPEID_WORD, testBinaryOperator::@20/TYPEID_WORD, testBinaryOperator::@21/TYPEID_SIGNED_WORD, testBinaryOperator::@22/TYPEID_DWORD, testBinaryOperator::@23/TYPEID_SIGNED_DWORD, testBinaryOperator::@24/TYPEID_DWORD, testBinaryOperator::@25/TYPEID_DWORD, testBinaryOperator::@26/TYPEID_DWORD, testBinaryOperator::@27/TYPEID_DWORD, testBinaryOperator::@28/TYPEID_DWORD, testBinaryOperator::@29/TYPEID_DWORD, testBinaryOperator::@3/TYPEID_SIGNED_WORD, testBinaryOperator::@30/TYPEID_SIGNED_DWORD, testBinaryOperator::@31/TYPEID_SIGNED_DWORD, testBinaryOperator::@32/TYPEID_SIGNED_DWORD, testBinaryOperator::@33/TYPEID_SIGNED_DWORD, testBinaryOperator::@34/TYPEID_DWORD, testBinaryOperator::@35/TYPEID_SIGNED_DWORD, testBinaryOperator::@4/TYPEID_DWORD, testBinaryOperator::@5/TYPEID_SIGNED_DWORD, testBinaryOperator::@6/TYPEID_BYTE, testBinaryOperator::@7/TYPEID_SIGNED_BYTE, testBinaryOperator::@8/TYPEID_WORD, testBinaryOperator::@9/TYPEID_SIGNED_WORD, testUnaryOperator/TYPEID_BYTE, testUnaryOperator::@1/TYPEID_SIGNED_BYTE, testUnaryOperator::@2/TYPEID_WORD, testUnaryOperator::@3/TYPEID_SIGNED_WORD, testUnaryOperator::@4/TYPEID_DWORD, testUnaryOperator::@5/TYPEID_SIGNED_DWORD ) - [96] assertType::t1#42 = phi( testBinaryOperator/TYPEID_BYTE, testBinaryOperator::@1/TYPEID_BYTE, testBinaryOperator::@10/TYPEID_DWORD, testBinaryOperator::@11/TYPEID_SIGNED_DWORD, testBinaryOperator::@12/TYPEID_WORD, testBinaryOperator::@13/TYPEID_WORD, testBinaryOperator::@14/TYPEID_WORD, testBinaryOperator::@15/TYPEID_WORD, testBinaryOperator::@16/TYPEID_DWORD, testBinaryOperator::@17/TYPEID_SIGNED_DWORD, testBinaryOperator::@18/TYPEID_SIGNED_WORD, testBinaryOperator::@19/TYPEID_SIGNED_WORD, testBinaryOperator::@2/TYPEID_WORD, testBinaryOperator::@20/TYPEID_WORD, testBinaryOperator::@21/TYPEID_SIGNED_WORD, testBinaryOperator::@22/TYPEID_DWORD, testBinaryOperator::@23/TYPEID_SIGNED_DWORD, testBinaryOperator::@24/TYPEID_DWORD, testBinaryOperator::@25/TYPEID_DWORD, testBinaryOperator::@26/TYPEID_DWORD, testBinaryOperator::@27/TYPEID_DWORD, testBinaryOperator::@28/TYPEID_DWORD, testBinaryOperator::@29/TYPEID_DWORD, testBinaryOperator::@3/TYPEID_SIGNED_WORD, testBinaryOperator::@30/TYPEID_SIGNED_DWORD, testBinaryOperator::@31/TYPEID_SIGNED_DWORD, testBinaryOperator::@32/TYPEID_SIGNED_DWORD, testBinaryOperator::@33/TYPEID_SIGNED_DWORD, testBinaryOperator::@34/TYPEID_DWORD, testBinaryOperator::@35/TYPEID_SIGNED_DWORD, testBinaryOperator::@4/TYPEID_DWORD, testBinaryOperator::@5/TYPEID_SIGNED_DWORD, testBinaryOperator::@6/TYPEID_BYTE, testBinaryOperator::@7/TYPEID_SIGNED_BYTE, testBinaryOperator::@8/TYPEID_WORD, testBinaryOperator::@9/TYPEID_SIGNED_WORD, testUnaryOperator/TYPEID_BYTE, testUnaryOperator::@1/TYPEID_SIGNED_BYTE, testUnaryOperator::@2/TYPEID_WORD, testUnaryOperator::@3/TYPEID_SIGNED_WORD, testUnaryOperator::@4/TYPEID_DWORD, testUnaryOperator::@5/TYPEID_SIGNED_DWORD ) + [96] assertType::t2#42 = phi( testBinaryOperator/TYPEID_CHAR, testBinaryOperator::@1/TYPEID_CHAR, testBinaryOperator::@10/TYPEID_UNSIGNED_LONG, testBinaryOperator::@11/TYPEID_LONG, testBinaryOperator::@12/TYPEID_UNSIGNED_INT, testBinaryOperator::@13/TYPEID_UNSIGNED_INT, testBinaryOperator::@14/TYPEID_UNSIGNED_INT, testBinaryOperator::@15/TYPEID_UNSIGNED_INT, testBinaryOperator::@16/TYPEID_UNSIGNED_LONG, testBinaryOperator::@17/TYPEID_LONG, testBinaryOperator::@18/TYPEID_INT, testBinaryOperator::@19/TYPEID_INT, testBinaryOperator::@2/TYPEID_UNSIGNED_INT, testBinaryOperator::@20/TYPEID_UNSIGNED_INT, testBinaryOperator::@21/TYPEID_INT, testBinaryOperator::@22/TYPEID_UNSIGNED_LONG, testBinaryOperator::@23/TYPEID_LONG, testBinaryOperator::@24/TYPEID_UNSIGNED_LONG, testBinaryOperator::@25/TYPEID_UNSIGNED_LONG, testBinaryOperator::@26/TYPEID_UNSIGNED_LONG, testBinaryOperator::@27/TYPEID_UNSIGNED_LONG, testBinaryOperator::@28/TYPEID_UNSIGNED_LONG, testBinaryOperator::@29/TYPEID_UNSIGNED_LONG, testBinaryOperator::@3/TYPEID_INT, testBinaryOperator::@30/TYPEID_LONG, testBinaryOperator::@31/TYPEID_LONG, testBinaryOperator::@32/TYPEID_LONG, testBinaryOperator::@33/TYPEID_LONG, testBinaryOperator::@34/TYPEID_UNSIGNED_LONG, testBinaryOperator::@35/TYPEID_LONG, testBinaryOperator::@4/TYPEID_UNSIGNED_LONG, testBinaryOperator::@5/TYPEID_LONG, testBinaryOperator::@6/TYPEID_CHAR, testBinaryOperator::@7/TYPEID_SIGNED_CHAR, testBinaryOperator::@8/TYPEID_UNSIGNED_INT, testBinaryOperator::@9/TYPEID_INT, testUnaryOperator/TYPEID_CHAR, testUnaryOperator::@1/TYPEID_SIGNED_CHAR, testUnaryOperator::@2/TYPEID_UNSIGNED_INT, testUnaryOperator::@3/TYPEID_INT, testUnaryOperator::@4/TYPEID_UNSIGNED_LONG, testUnaryOperator::@5/TYPEID_LONG ) + [96] assertType::t1#42 = phi( testBinaryOperator/TYPEID_CHAR, testBinaryOperator::@1/TYPEID_CHAR, testBinaryOperator::@10/TYPEID_UNSIGNED_LONG, testBinaryOperator::@11/TYPEID_LONG, testBinaryOperator::@12/TYPEID_UNSIGNED_INT, testBinaryOperator::@13/TYPEID_UNSIGNED_INT, testBinaryOperator::@14/TYPEID_UNSIGNED_INT, testBinaryOperator::@15/TYPEID_UNSIGNED_INT, testBinaryOperator::@16/TYPEID_UNSIGNED_LONG, testBinaryOperator::@17/TYPEID_LONG, testBinaryOperator::@18/TYPEID_INT, testBinaryOperator::@19/TYPEID_INT, testBinaryOperator::@2/TYPEID_UNSIGNED_INT, testBinaryOperator::@20/TYPEID_UNSIGNED_INT, testBinaryOperator::@21/TYPEID_INT, testBinaryOperator::@22/TYPEID_UNSIGNED_LONG, testBinaryOperator::@23/TYPEID_LONG, testBinaryOperator::@24/TYPEID_UNSIGNED_LONG, testBinaryOperator::@25/TYPEID_UNSIGNED_LONG, testBinaryOperator::@26/TYPEID_UNSIGNED_LONG, testBinaryOperator::@27/TYPEID_UNSIGNED_LONG, testBinaryOperator::@28/TYPEID_UNSIGNED_LONG, testBinaryOperator::@29/TYPEID_UNSIGNED_LONG, testBinaryOperator::@3/TYPEID_INT, testBinaryOperator::@30/TYPEID_LONG, testBinaryOperator::@31/TYPEID_LONG, testBinaryOperator::@32/TYPEID_LONG, testBinaryOperator::@33/TYPEID_LONG, testBinaryOperator::@34/TYPEID_UNSIGNED_LONG, testBinaryOperator::@35/TYPEID_LONG, testBinaryOperator::@4/TYPEID_UNSIGNED_LONG, testBinaryOperator::@5/TYPEID_LONG, testBinaryOperator::@6/TYPEID_CHAR, testBinaryOperator::@7/TYPEID_SIGNED_CHAR, testBinaryOperator::@8/TYPEID_UNSIGNED_INT, testBinaryOperator::@9/TYPEID_INT, testUnaryOperator/TYPEID_CHAR, testUnaryOperator::@1/TYPEID_SIGNED_CHAR, testUnaryOperator::@2/TYPEID_UNSIGNED_INT, testUnaryOperator::@3/TYPEID_INT, testUnaryOperator::@4/TYPEID_UNSIGNED_LONG, testUnaryOperator::@5/TYPEID_LONG ) [97] if(assertType::t1#42==assertType::t2#42) goto assertType::@1 to:assertType::@3 assertType::@3: scope:[assertType] from assertType diff --git a/src/test/ref/int-conversion.log b/src/test/ref/int-conversion.log index 4588190ab..f0cb71ae0 100644 --- a/src/test/ref/int-conversion.log +++ b/src/test/ref/int-conversion.log @@ -40,7 +40,7 @@ Resolving typeid() testBinaryOperator::$64 = typeid $c+$c Resolving typeid() testBinaryOperator::$66 = typeid $c+$c Resolving typeid() testBinaryOperator::$68 = typeid $c+$c Resolving typeid() testBinaryOperator::$70 = typeid $c+$c -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -63,12 +63,12 @@ main::@2: scope:[main] from main::@1 to:main::@1 main::@3: scope:[main] from main::@1 idx#112 = phi( main::@1/idx#115 ) - call testUnaryOperator + call testUnaryOperator to:main::@4 main::@4: scope:[main] from main::@3 idx#59 = phi( main::@3/idx#10 ) idx#0 = idx#59 - call testBinaryOperator + call testBinaryOperator to:main::@5 main::@5: scope:[main] from main::@4 idx#60 = phi( main::@4/idx#53 ) @@ -83,50 +83,50 @@ main::@return: scope:[main] from main::@5 void testUnaryOperator() testUnaryOperator: scope:[testUnaryOperator] from main::@3 idx#3 = 0 - testUnaryOperator::$0 = TYPEID_BYTE + testUnaryOperator::$0 = TYPEID_CHAR assertType::t1#0 = testUnaryOperator::$0 - assertType::t2#0 = TYPEID_BYTE - call assertType + assertType::t2#0 = TYPEID_CHAR + call assertType to:testUnaryOperator::@1 testUnaryOperator::@1: scope:[testUnaryOperator] from testUnaryOperator idx#62 = phi( testUnaryOperator/idx#55 ) idx#4 = idx#62 - testUnaryOperator::$2 = TYPEID_SIGNED_BYTE + testUnaryOperator::$2 = TYPEID_SIGNED_CHAR assertType::t1#1 = testUnaryOperator::$2 - assertType::t2#1 = TYPEID_SIGNED_BYTE - call assertType + assertType::t2#1 = TYPEID_SIGNED_CHAR + call assertType to:testUnaryOperator::@2 testUnaryOperator::@2: scope:[testUnaryOperator] from testUnaryOperator::@1 idx#63 = phi( testUnaryOperator::@1/idx#55 ) idx#5 = idx#63 - testUnaryOperator::$4 = TYPEID_WORD + testUnaryOperator::$4 = TYPEID_UNSIGNED_INT assertType::t1#2 = testUnaryOperator::$4 - assertType::t2#2 = TYPEID_WORD - call assertType + assertType::t2#2 = TYPEID_UNSIGNED_INT + call assertType to:testUnaryOperator::@3 testUnaryOperator::@3: scope:[testUnaryOperator] from testUnaryOperator::@2 idx#64 = phi( testUnaryOperator::@2/idx#55 ) idx#6 = idx#64 - testUnaryOperator::$6 = TYPEID_SIGNED_WORD + testUnaryOperator::$6 = TYPEID_INT assertType::t1#3 = testUnaryOperator::$6 - assertType::t2#3 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#3 = TYPEID_INT + call assertType to:testUnaryOperator::@4 testUnaryOperator::@4: scope:[testUnaryOperator] from testUnaryOperator::@3 idx#65 = phi( testUnaryOperator::@3/idx#55 ) idx#7 = idx#65 - testUnaryOperator::$8 = TYPEID_DWORD + testUnaryOperator::$8 = TYPEID_UNSIGNED_LONG assertType::t1#4 = testUnaryOperator::$8 - assertType::t2#4 = TYPEID_DWORD - call assertType + assertType::t2#4 = TYPEID_UNSIGNED_LONG + call assertType to:testUnaryOperator::@5 testUnaryOperator::@5: scope:[testUnaryOperator] from testUnaryOperator::@4 idx#66 = phi( testUnaryOperator::@4/idx#55 ) idx#8 = idx#66 - testUnaryOperator::$10 = TYPEID_SIGNED_DWORD + testUnaryOperator::$10 = TYPEID_LONG assertType::t1#5 = testUnaryOperator::$10 - assertType::t2#5 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#5 = TYPEID_LONG + call assertType to:testUnaryOperator::@6 testUnaryOperator::@6: scope:[testUnaryOperator] from testUnaryOperator::@5 idx#67 = phi( testUnaryOperator::@5/idx#55 ) @@ -141,295 +141,295 @@ testUnaryOperator::@return: scope:[testUnaryOperator] from testUnaryOperator::@ void testBinaryOperator() testBinaryOperator: scope:[testBinaryOperator] from main::@4 idx#11 = $28 - testBinaryOperator::$0 = TYPEID_BYTE + testBinaryOperator::$0 = TYPEID_CHAR assertType::t1#6 = testBinaryOperator::$0 - assertType::t2#6 = TYPEID_BYTE - call assertType + assertType::t2#6 = TYPEID_CHAR + call assertType to:testBinaryOperator::@1 testBinaryOperator::@1: scope:[testBinaryOperator] from testBinaryOperator idx#69 = phi( testBinaryOperator/idx#55 ) idx#12 = idx#69 - testBinaryOperator::$2 = TYPEID_BYTE + testBinaryOperator::$2 = TYPEID_CHAR assertType::t1#7 = testBinaryOperator::$2 - assertType::t2#7 = TYPEID_BYTE - call assertType + assertType::t2#7 = TYPEID_CHAR + call assertType to:testBinaryOperator::@2 testBinaryOperator::@2: scope:[testBinaryOperator] from testBinaryOperator::@1 idx#70 = phi( testBinaryOperator::@1/idx#55 ) idx#13 = idx#70 - testBinaryOperator::$4 = TYPEID_WORD + testBinaryOperator::$4 = TYPEID_UNSIGNED_INT assertType::t1#8 = testBinaryOperator::$4 - assertType::t2#8 = TYPEID_WORD - call assertType + assertType::t2#8 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@3 testBinaryOperator::@3: scope:[testBinaryOperator] from testBinaryOperator::@2 idx#71 = phi( testBinaryOperator::@2/idx#55 ) idx#14 = idx#71 - testBinaryOperator::$6 = TYPEID_SIGNED_WORD + testBinaryOperator::$6 = TYPEID_INT assertType::t1#9 = testBinaryOperator::$6 - assertType::t2#9 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#9 = TYPEID_INT + call assertType to:testBinaryOperator::@4 testBinaryOperator::@4: scope:[testBinaryOperator] from testBinaryOperator::@3 idx#72 = phi( testBinaryOperator::@3/idx#55 ) idx#15 = idx#72 - testBinaryOperator::$8 = TYPEID_DWORD + testBinaryOperator::$8 = TYPEID_UNSIGNED_LONG assertType::t1#10 = testBinaryOperator::$8 - assertType::t2#10 = TYPEID_DWORD - call assertType + assertType::t2#10 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@5 testBinaryOperator::@5: scope:[testBinaryOperator] from testBinaryOperator::@4 idx#73 = phi( testBinaryOperator::@4/idx#55 ) idx#16 = idx#73 - testBinaryOperator::$10 = TYPEID_SIGNED_DWORD + testBinaryOperator::$10 = TYPEID_LONG assertType::t1#11 = testBinaryOperator::$10 - assertType::t2#11 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#11 = TYPEID_LONG + call assertType to:testBinaryOperator::@6 testBinaryOperator::@6: scope:[testBinaryOperator] from testBinaryOperator::@5 idx#74 = phi( testBinaryOperator::@5/idx#55 ) idx#17 = idx#74 idx#18 = ++ idx#17 - testBinaryOperator::$12 = TYPEID_BYTE + testBinaryOperator::$12 = TYPEID_CHAR assertType::t1#12 = testBinaryOperator::$12 - assertType::t2#12 = TYPEID_BYTE - call assertType + assertType::t2#12 = TYPEID_CHAR + call assertType to:testBinaryOperator::@7 testBinaryOperator::@7: scope:[testBinaryOperator] from testBinaryOperator::@6 idx#75 = phi( testBinaryOperator::@6/idx#55 ) idx#19 = idx#75 - testBinaryOperator::$14 = TYPEID_SIGNED_BYTE + testBinaryOperator::$14 = TYPEID_SIGNED_CHAR assertType::t1#13 = testBinaryOperator::$14 - assertType::t2#13 = TYPEID_SIGNED_BYTE - call assertType + assertType::t2#13 = TYPEID_SIGNED_CHAR + call assertType to:testBinaryOperator::@8 testBinaryOperator::@8: scope:[testBinaryOperator] from testBinaryOperator::@7 idx#76 = phi( testBinaryOperator::@7/idx#55 ) idx#20 = idx#76 - testBinaryOperator::$16 = TYPEID_WORD + testBinaryOperator::$16 = TYPEID_UNSIGNED_INT assertType::t1#14 = testBinaryOperator::$16 - assertType::t2#14 = TYPEID_WORD - call assertType + assertType::t2#14 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@9 testBinaryOperator::@9: scope:[testBinaryOperator] from testBinaryOperator::@8 idx#77 = phi( testBinaryOperator::@8/idx#55 ) idx#21 = idx#77 - testBinaryOperator::$18 = TYPEID_SIGNED_WORD + testBinaryOperator::$18 = TYPEID_INT assertType::t1#15 = testBinaryOperator::$18 - assertType::t2#15 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#15 = TYPEID_INT + call assertType to:testBinaryOperator::@10 testBinaryOperator::@10: scope:[testBinaryOperator] from testBinaryOperator::@9 idx#78 = phi( testBinaryOperator::@9/idx#55 ) idx#22 = idx#78 - testBinaryOperator::$20 = TYPEID_DWORD + testBinaryOperator::$20 = TYPEID_UNSIGNED_LONG assertType::t1#16 = testBinaryOperator::$20 - assertType::t2#16 = TYPEID_DWORD - call assertType + assertType::t2#16 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@11 testBinaryOperator::@11: scope:[testBinaryOperator] from testBinaryOperator::@10 idx#79 = phi( testBinaryOperator::@10/idx#55 ) idx#23 = idx#79 - testBinaryOperator::$22 = TYPEID_SIGNED_DWORD + testBinaryOperator::$22 = TYPEID_LONG assertType::t1#17 = testBinaryOperator::$22 - assertType::t2#17 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#17 = TYPEID_LONG + call assertType to:testBinaryOperator::@12 testBinaryOperator::@12: scope:[testBinaryOperator] from testBinaryOperator::@11 idx#80 = phi( testBinaryOperator::@11/idx#55 ) idx#24 = idx#80 idx#25 = ++ idx#24 - testBinaryOperator::$24 = TYPEID_WORD + testBinaryOperator::$24 = TYPEID_UNSIGNED_INT assertType::t1#18 = testBinaryOperator::$24 - assertType::t2#18 = TYPEID_WORD - call assertType + assertType::t2#18 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@13 testBinaryOperator::@13: scope:[testBinaryOperator] from testBinaryOperator::@12 idx#81 = phi( testBinaryOperator::@12/idx#55 ) idx#26 = idx#81 - testBinaryOperator::$26 = TYPEID_WORD + testBinaryOperator::$26 = TYPEID_UNSIGNED_INT assertType::t1#19 = testBinaryOperator::$26 - assertType::t2#19 = TYPEID_WORD - call assertType + assertType::t2#19 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@14 testBinaryOperator::@14: scope:[testBinaryOperator] from testBinaryOperator::@13 idx#82 = phi( testBinaryOperator::@13/idx#55 ) idx#27 = idx#82 - testBinaryOperator::$28 = TYPEID_WORD + testBinaryOperator::$28 = TYPEID_UNSIGNED_INT assertType::t1#20 = testBinaryOperator::$28 - assertType::t2#20 = TYPEID_WORD - call assertType + assertType::t2#20 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@15 testBinaryOperator::@15: scope:[testBinaryOperator] from testBinaryOperator::@14 idx#83 = phi( testBinaryOperator::@14/idx#55 ) idx#28 = idx#83 - testBinaryOperator::$30 = TYPEID_WORD + testBinaryOperator::$30 = TYPEID_UNSIGNED_INT assertType::t1#21 = testBinaryOperator::$30 - assertType::t2#21 = TYPEID_WORD - call assertType + assertType::t2#21 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@16 testBinaryOperator::@16: scope:[testBinaryOperator] from testBinaryOperator::@15 idx#84 = phi( testBinaryOperator::@15/idx#55 ) idx#29 = idx#84 - testBinaryOperator::$32 = TYPEID_DWORD + testBinaryOperator::$32 = TYPEID_UNSIGNED_LONG assertType::t1#22 = testBinaryOperator::$32 - assertType::t2#22 = TYPEID_DWORD - call assertType + assertType::t2#22 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@17 testBinaryOperator::@17: scope:[testBinaryOperator] from testBinaryOperator::@16 idx#85 = phi( testBinaryOperator::@16/idx#55 ) idx#30 = idx#85 - testBinaryOperator::$34 = TYPEID_SIGNED_DWORD + testBinaryOperator::$34 = TYPEID_LONG assertType::t1#23 = testBinaryOperator::$34 - assertType::t2#23 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#23 = TYPEID_LONG + call assertType to:testBinaryOperator::@18 testBinaryOperator::@18: scope:[testBinaryOperator] from testBinaryOperator::@17 idx#86 = phi( testBinaryOperator::@17/idx#55 ) idx#31 = idx#86 idx#32 = $50 - testBinaryOperator::$36 = TYPEID_SIGNED_WORD + testBinaryOperator::$36 = TYPEID_INT assertType::t1#24 = testBinaryOperator::$36 - assertType::t2#24 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#24 = TYPEID_INT + call assertType to:testBinaryOperator::@19 testBinaryOperator::@19: scope:[testBinaryOperator] from testBinaryOperator::@18 idx#87 = phi( testBinaryOperator::@18/idx#55 ) idx#33 = idx#87 - testBinaryOperator::$38 = TYPEID_SIGNED_WORD + testBinaryOperator::$38 = TYPEID_INT assertType::t1#25 = testBinaryOperator::$38 - assertType::t2#25 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#25 = TYPEID_INT + call assertType to:testBinaryOperator::@20 testBinaryOperator::@20: scope:[testBinaryOperator] from testBinaryOperator::@19 idx#88 = phi( testBinaryOperator::@19/idx#55 ) idx#34 = idx#88 - testBinaryOperator::$40 = TYPEID_WORD + testBinaryOperator::$40 = TYPEID_UNSIGNED_INT assertType::t1#26 = testBinaryOperator::$40 - assertType::t2#26 = TYPEID_WORD - call assertType + assertType::t2#26 = TYPEID_UNSIGNED_INT + call assertType to:testBinaryOperator::@21 testBinaryOperator::@21: scope:[testBinaryOperator] from testBinaryOperator::@20 idx#89 = phi( testBinaryOperator::@20/idx#55 ) idx#35 = idx#89 - testBinaryOperator::$42 = TYPEID_SIGNED_WORD + testBinaryOperator::$42 = TYPEID_INT assertType::t1#27 = testBinaryOperator::$42 - assertType::t2#27 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#27 = TYPEID_INT + call assertType to:testBinaryOperator::@22 testBinaryOperator::@22: scope:[testBinaryOperator] from testBinaryOperator::@21 idx#90 = phi( testBinaryOperator::@21/idx#55 ) idx#36 = idx#90 - testBinaryOperator::$44 = TYPEID_DWORD + testBinaryOperator::$44 = TYPEID_UNSIGNED_LONG assertType::t1#28 = testBinaryOperator::$44 - assertType::t2#28 = TYPEID_DWORD - call assertType + assertType::t2#28 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@23 testBinaryOperator::@23: scope:[testBinaryOperator] from testBinaryOperator::@22 idx#91 = phi( testBinaryOperator::@22/idx#55 ) idx#37 = idx#91 - testBinaryOperator::$46 = TYPEID_SIGNED_DWORD + testBinaryOperator::$46 = TYPEID_LONG assertType::t1#29 = testBinaryOperator::$46 - assertType::t2#29 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#29 = TYPEID_LONG + call assertType to:testBinaryOperator::@24 testBinaryOperator::@24: scope:[testBinaryOperator] from testBinaryOperator::@23 idx#92 = phi( testBinaryOperator::@23/idx#55 ) idx#38 = idx#92 idx#39 = ++ idx#38 - testBinaryOperator::$48 = TYPEID_DWORD + testBinaryOperator::$48 = TYPEID_UNSIGNED_LONG assertType::t1#30 = testBinaryOperator::$48 - assertType::t2#30 = TYPEID_DWORD - call assertType + assertType::t2#30 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@25 testBinaryOperator::@25: scope:[testBinaryOperator] from testBinaryOperator::@24 idx#93 = phi( testBinaryOperator::@24/idx#55 ) idx#40 = idx#93 - testBinaryOperator::$50 = TYPEID_DWORD + testBinaryOperator::$50 = TYPEID_UNSIGNED_LONG assertType::t1#31 = testBinaryOperator::$50 - assertType::t2#31 = TYPEID_DWORD - call assertType + assertType::t2#31 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@26 testBinaryOperator::@26: scope:[testBinaryOperator] from testBinaryOperator::@25 idx#94 = phi( testBinaryOperator::@25/idx#55 ) idx#41 = idx#94 - testBinaryOperator::$52 = TYPEID_DWORD + testBinaryOperator::$52 = TYPEID_UNSIGNED_LONG assertType::t1#32 = testBinaryOperator::$52 - assertType::t2#32 = TYPEID_DWORD - call assertType + assertType::t2#32 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@27 testBinaryOperator::@27: scope:[testBinaryOperator] from testBinaryOperator::@26 idx#95 = phi( testBinaryOperator::@26/idx#55 ) idx#42 = idx#95 - testBinaryOperator::$54 = TYPEID_DWORD + testBinaryOperator::$54 = TYPEID_UNSIGNED_LONG assertType::t1#33 = testBinaryOperator::$54 - assertType::t2#33 = TYPEID_DWORD - call assertType + assertType::t2#33 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@28 testBinaryOperator::@28: scope:[testBinaryOperator] from testBinaryOperator::@27 idx#96 = phi( testBinaryOperator::@27/idx#55 ) idx#43 = idx#96 - testBinaryOperator::$56 = TYPEID_DWORD + testBinaryOperator::$56 = TYPEID_UNSIGNED_LONG assertType::t1#34 = testBinaryOperator::$56 - assertType::t2#34 = TYPEID_DWORD - call assertType + assertType::t2#34 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@29 testBinaryOperator::@29: scope:[testBinaryOperator] from testBinaryOperator::@28 idx#97 = phi( testBinaryOperator::@28/idx#55 ) idx#44 = idx#97 - testBinaryOperator::$58 = TYPEID_DWORD + testBinaryOperator::$58 = TYPEID_UNSIGNED_LONG assertType::t1#35 = testBinaryOperator::$58 - assertType::t2#35 = TYPEID_DWORD - call assertType + assertType::t2#35 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@30 testBinaryOperator::@30: scope:[testBinaryOperator] from testBinaryOperator::@29 idx#98 = phi( testBinaryOperator::@29/idx#55 ) idx#45 = idx#98 idx#46 = ++ idx#45 - testBinaryOperator::$60 = TYPEID_SIGNED_DWORD + testBinaryOperator::$60 = TYPEID_LONG assertType::t1#36 = testBinaryOperator::$60 - assertType::t2#36 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#36 = TYPEID_LONG + call assertType to:testBinaryOperator::@31 testBinaryOperator::@31: scope:[testBinaryOperator] from testBinaryOperator::@30 idx#99 = phi( testBinaryOperator::@30/idx#55 ) idx#47 = idx#99 - testBinaryOperator::$62 = TYPEID_SIGNED_DWORD + testBinaryOperator::$62 = TYPEID_LONG assertType::t1#37 = testBinaryOperator::$62 - assertType::t2#37 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#37 = TYPEID_LONG + call assertType to:testBinaryOperator::@32 testBinaryOperator::@32: scope:[testBinaryOperator] from testBinaryOperator::@31 idx#100 = phi( testBinaryOperator::@31/idx#55 ) idx#48 = idx#100 - testBinaryOperator::$64 = TYPEID_SIGNED_DWORD + testBinaryOperator::$64 = TYPEID_LONG assertType::t1#38 = testBinaryOperator::$64 - assertType::t2#38 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#38 = TYPEID_LONG + call assertType to:testBinaryOperator::@33 testBinaryOperator::@33: scope:[testBinaryOperator] from testBinaryOperator::@32 idx#101 = phi( testBinaryOperator::@32/idx#55 ) idx#49 = idx#101 - testBinaryOperator::$66 = TYPEID_SIGNED_DWORD + testBinaryOperator::$66 = TYPEID_LONG assertType::t1#39 = testBinaryOperator::$66 - assertType::t2#39 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#39 = TYPEID_LONG + call assertType to:testBinaryOperator::@34 testBinaryOperator::@34: scope:[testBinaryOperator] from testBinaryOperator::@33 idx#102 = phi( testBinaryOperator::@33/idx#55 ) idx#50 = idx#102 - testBinaryOperator::$68 = TYPEID_DWORD + testBinaryOperator::$68 = TYPEID_UNSIGNED_LONG assertType::t1#40 = testBinaryOperator::$68 - assertType::t2#40 = TYPEID_DWORD - call assertType + assertType::t2#40 = TYPEID_UNSIGNED_LONG + call assertType to:testBinaryOperator::@35 testBinaryOperator::@35: scope:[testBinaryOperator] from testBinaryOperator::@34 idx#103 = phi( testBinaryOperator::@34/idx#55 ) idx#51 = idx#103 - testBinaryOperator::$70 = TYPEID_SIGNED_DWORD + testBinaryOperator::$70 = TYPEID_LONG assertType::t1#41 = testBinaryOperator::$70 - assertType::t2#41 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#41 = TYPEID_LONG + call assertType to:testBinaryOperator::@36 testBinaryOperator::@36: scope:[testBinaryOperator] from testBinaryOperator::@35 idx#104 = phi( testBinaryOperator::@35/idx#55 ) @@ -441,7 +441,7 @@ testBinaryOperator::@return: scope:[testBinaryOperator] from testBinaryOperator return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from testBinaryOperator testBinaryOperator::@1 testBinaryOperator::@10 testBinaryOperator::@11 testBinaryOperator::@12 testBinaryOperator::@13 testBinaryOperator::@14 testBinaryOperator::@15 testBinaryOperator::@16 testBinaryOperator::@17 testBinaryOperator::@18 testBinaryOperator::@19 testBinaryOperator::@2 testBinaryOperator::@20 testBinaryOperator::@21 testBinaryOperator::@22 testBinaryOperator::@23 testBinaryOperator::@24 testBinaryOperator::@25 testBinaryOperator::@26 testBinaryOperator::@27 testBinaryOperator::@28 testBinaryOperator::@29 testBinaryOperator::@3 testBinaryOperator::@30 testBinaryOperator::@31 testBinaryOperator::@32 testBinaryOperator::@33 testBinaryOperator::@34 testBinaryOperator::@35 testBinaryOperator::@4 testBinaryOperator::@5 testBinaryOperator::@6 testBinaryOperator::@7 testBinaryOperator::@8 testBinaryOperator::@9 testUnaryOperator testUnaryOperator::@1 testUnaryOperator::@2 testUnaryOperator::@3 testUnaryOperator::@4 testUnaryOperator::@5 idx#113 = phi( testBinaryOperator/idx#11, testBinaryOperator::@1/idx#12, testBinaryOperator::@10/idx#22, testBinaryOperator::@11/idx#23, testBinaryOperator::@12/idx#25, testBinaryOperator::@13/idx#26, testBinaryOperator::@14/idx#27, testBinaryOperator::@15/idx#28, testBinaryOperator::@16/idx#29, testBinaryOperator::@17/idx#30, testBinaryOperator::@18/idx#32, testBinaryOperator::@19/idx#33, testBinaryOperator::@2/idx#13, testBinaryOperator::@20/idx#34, testBinaryOperator::@21/idx#35, testBinaryOperator::@22/idx#36, testBinaryOperator::@23/idx#37, testBinaryOperator::@24/idx#39, testBinaryOperator::@25/idx#40, testBinaryOperator::@26/idx#41, testBinaryOperator::@27/idx#42, testBinaryOperator::@28/idx#43, testBinaryOperator::@29/idx#44, testBinaryOperator::@3/idx#14, testBinaryOperator::@30/idx#46, testBinaryOperator::@31/idx#47, testBinaryOperator::@32/idx#48, testBinaryOperator::@33/idx#49, testBinaryOperator::@34/idx#50, testBinaryOperator::@35/idx#51, testBinaryOperator::@4/idx#15, testBinaryOperator::@5/idx#16, testBinaryOperator::@6/idx#18, testBinaryOperator::@7/idx#19, testBinaryOperator::@8/idx#20, testBinaryOperator::@9/idx#21, testUnaryOperator/idx#3, testUnaryOperator::@1/idx#4, testUnaryOperator::@2/idx#5, testUnaryOperator::@3/idx#6, testUnaryOperator::@4/idx#7, testUnaryOperator::@5/idx#8 ) assertType::t2#42 = phi( testBinaryOperator/assertType::t2#6, testBinaryOperator::@1/assertType::t2#7, testBinaryOperator::@10/assertType::t2#16, testBinaryOperator::@11/assertType::t2#17, testBinaryOperator::@12/assertType::t2#18, testBinaryOperator::@13/assertType::t2#19, testBinaryOperator::@14/assertType::t2#20, testBinaryOperator::@15/assertType::t2#21, testBinaryOperator::@16/assertType::t2#22, testBinaryOperator::@17/assertType::t2#23, testBinaryOperator::@18/assertType::t2#24, testBinaryOperator::@19/assertType::t2#25, testBinaryOperator::@2/assertType::t2#8, testBinaryOperator::@20/assertType::t2#26, testBinaryOperator::@21/assertType::t2#27, testBinaryOperator::@22/assertType::t2#28, testBinaryOperator::@23/assertType::t2#29, testBinaryOperator::@24/assertType::t2#30, testBinaryOperator::@25/assertType::t2#31, testBinaryOperator::@26/assertType::t2#32, testBinaryOperator::@27/assertType::t2#33, testBinaryOperator::@28/assertType::t2#34, testBinaryOperator::@29/assertType::t2#35, testBinaryOperator::@3/assertType::t2#9, testBinaryOperator::@30/assertType::t2#36, testBinaryOperator::@31/assertType::t2#37, testBinaryOperator::@32/assertType::t2#38, testBinaryOperator::@33/assertType::t2#39, testBinaryOperator::@34/assertType::t2#40, testBinaryOperator::@35/assertType::t2#41, testBinaryOperator::@4/assertType::t2#10, testBinaryOperator::@5/assertType::t2#11, testBinaryOperator::@6/assertType::t2#12, testBinaryOperator::@7/assertType::t2#13, testBinaryOperator::@8/assertType::t2#14, testBinaryOperator::@9/assertType::t2#15, testUnaryOperator/assertType::t2#0, testUnaryOperator::@1/assertType::t2#1, testUnaryOperator::@2/assertType::t2#2, testUnaryOperator::@3/assertType::t2#3, testUnaryOperator::@4/assertType::t2#4, testUnaryOperator::@5/assertType::t2#5 ) @@ -479,7 +479,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#114 = phi( __start::__init1/idx#56 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#110 = phi( __start::@1/idx#2 ) @@ -492,280 +492,280 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 void __start() -void assertType(byte assertType::t1 , byte assertType::t2) -bool~ assertType::$0 -byte assertType::t1 -byte assertType::t1#0 -byte assertType::t1#1 -byte assertType::t1#10 -byte assertType::t1#11 -byte assertType::t1#12 -byte assertType::t1#13 -byte assertType::t1#14 -byte assertType::t1#15 -byte assertType::t1#16 -byte assertType::t1#17 -byte assertType::t1#18 -byte assertType::t1#19 -byte assertType::t1#2 -byte assertType::t1#20 -byte assertType::t1#21 -byte assertType::t1#22 -byte assertType::t1#23 -byte assertType::t1#24 -byte assertType::t1#25 -byte assertType::t1#26 -byte assertType::t1#27 -byte assertType::t1#28 -byte assertType::t1#29 -byte assertType::t1#3 -byte assertType::t1#30 -byte assertType::t1#31 -byte assertType::t1#32 -byte assertType::t1#33 -byte assertType::t1#34 -byte assertType::t1#35 -byte assertType::t1#36 -byte assertType::t1#37 -byte assertType::t1#38 -byte assertType::t1#39 -byte assertType::t1#4 -byte assertType::t1#40 -byte assertType::t1#41 -byte assertType::t1#42 -byte assertType::t1#43 -byte assertType::t1#44 -byte assertType::t1#45 -byte assertType::t1#5 -byte assertType::t1#6 -byte assertType::t1#7 -byte assertType::t1#8 -byte assertType::t1#9 -byte assertType::t2 -byte assertType::t2#0 -byte assertType::t2#1 -byte assertType::t2#10 -byte assertType::t2#11 -byte assertType::t2#12 -byte assertType::t2#13 -byte assertType::t2#14 -byte assertType::t2#15 -byte assertType::t2#16 -byte assertType::t2#17 -byte assertType::t2#18 -byte assertType::t2#19 -byte assertType::t2#2 -byte assertType::t2#20 -byte assertType::t2#21 -byte assertType::t2#22 -byte assertType::t2#23 -byte assertType::t2#24 -byte assertType::t2#25 -byte assertType::t2#26 -byte assertType::t2#27 -byte assertType::t2#28 -byte assertType::t2#29 -byte assertType::t2#3 -byte assertType::t2#30 -byte assertType::t2#31 -byte assertType::t2#32 -byte assertType::t2#33 -byte assertType::t2#34 -byte assertType::t2#35 -byte assertType::t2#36 -byte assertType::t2#37 -byte assertType::t2#38 -byte assertType::t2#39 -byte assertType::t2#4 -byte assertType::t2#40 -byte assertType::t2#41 -byte assertType::t2#42 -byte assertType::t2#5 -byte assertType::t2#6 -byte assertType::t2#7 -byte assertType::t2#8 -byte assertType::t2#9 -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#100 -byte idx#101 -byte idx#102 -byte idx#103 -byte idx#104 -byte idx#105 -byte idx#106 -byte idx#107 -byte idx#108 -byte idx#109 -byte idx#11 -byte idx#110 -byte idx#111 -byte idx#112 -byte idx#113 -byte idx#114 -byte idx#115 -byte idx#116 -byte idx#117 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#30 -byte idx#31 -byte idx#32 -byte idx#33 -byte idx#34 -byte idx#35 -byte idx#36 -byte idx#37 -byte idx#38 -byte idx#39 -byte idx#4 -byte idx#40 -byte idx#41 -byte idx#42 -byte idx#43 -byte idx#44 -byte idx#45 -byte idx#46 -byte idx#47 -byte idx#48 -byte idx#49 -byte idx#5 -byte idx#50 -byte idx#51 -byte idx#52 -byte idx#53 -byte idx#54 -byte idx#55 -byte idx#56 -byte idx#57 -byte idx#58 -byte idx#59 -byte idx#6 -byte idx#60 -byte idx#61 -byte idx#62 -byte idx#63 -byte idx#64 -byte idx#65 -byte idx#66 -byte idx#67 -byte idx#68 -byte idx#69 -byte idx#7 -byte idx#70 -byte idx#71 -byte idx#72 -byte idx#73 -byte idx#74 -byte idx#75 -byte idx#76 -byte idx#77 -byte idx#78 -byte idx#79 -byte idx#8 -byte idx#80 -byte idx#81 -byte idx#82 -byte idx#83 -byte idx#84 -byte idx#85 -byte idx#86 -byte idx#87 -byte idx#88 -byte idx#89 -byte idx#9 -byte idx#90 -byte idx#91 -byte idx#92 -byte idx#93 -byte idx#94 -byte idx#95 -byte idx#96 -byte idx#97 -byte idx#98 -byte idx#99 +void assertType(char t1 , char t2) +bool assertType::$0 +char assertType::t1 +char assertType::t1#0 +char assertType::t1#1 +char assertType::t1#10 +char assertType::t1#11 +char assertType::t1#12 +char assertType::t1#13 +char assertType::t1#14 +char assertType::t1#15 +char assertType::t1#16 +char assertType::t1#17 +char assertType::t1#18 +char assertType::t1#19 +char assertType::t1#2 +char assertType::t1#20 +char assertType::t1#21 +char assertType::t1#22 +char assertType::t1#23 +char assertType::t1#24 +char assertType::t1#25 +char assertType::t1#26 +char assertType::t1#27 +char assertType::t1#28 +char assertType::t1#29 +char assertType::t1#3 +char assertType::t1#30 +char assertType::t1#31 +char assertType::t1#32 +char assertType::t1#33 +char assertType::t1#34 +char assertType::t1#35 +char assertType::t1#36 +char assertType::t1#37 +char assertType::t1#38 +char assertType::t1#39 +char assertType::t1#4 +char assertType::t1#40 +char assertType::t1#41 +char assertType::t1#42 +char assertType::t1#43 +char assertType::t1#44 +char assertType::t1#45 +char assertType::t1#5 +char assertType::t1#6 +char assertType::t1#7 +char assertType::t1#8 +char assertType::t1#9 +char assertType::t2 +char assertType::t2#0 +char assertType::t2#1 +char assertType::t2#10 +char assertType::t2#11 +char assertType::t2#12 +char assertType::t2#13 +char assertType::t2#14 +char assertType::t2#15 +char assertType::t2#16 +char assertType::t2#17 +char assertType::t2#18 +char assertType::t2#19 +char assertType::t2#2 +char assertType::t2#20 +char assertType::t2#21 +char assertType::t2#22 +char assertType::t2#23 +char assertType::t2#24 +char assertType::t2#25 +char assertType::t2#26 +char assertType::t2#27 +char assertType::t2#28 +char assertType::t2#29 +char assertType::t2#3 +char assertType::t2#30 +char assertType::t2#31 +char assertType::t2#32 +char assertType::t2#33 +char assertType::t2#34 +char assertType::t2#35 +char assertType::t2#36 +char assertType::t2#37 +char assertType::t2#38 +char assertType::t2#39 +char assertType::t2#4 +char assertType::t2#40 +char assertType::t2#41 +char assertType::t2#42 +char assertType::t2#5 +char assertType::t2#6 +char assertType::t2#7 +char assertType::t2#8 +char assertType::t2#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#100 +char idx#101 +char idx#102 +char idx#103 +char idx#104 +char idx#105 +char idx#106 +char idx#107 +char idx#108 +char idx#109 +char idx#11 +char idx#110 +char idx#111 +char idx#112 +char idx#113 +char idx#114 +char idx#115 +char idx#116 +char idx#117 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#30 +char idx#31 +char idx#32 +char idx#33 +char idx#34 +char idx#35 +char idx#36 +char idx#37 +char idx#38 +char idx#39 +char idx#4 +char idx#40 +char idx#41 +char idx#42 +char idx#43 +char idx#44 +char idx#45 +char idx#46 +char idx#47 +char idx#48 +char idx#49 +char idx#5 +char idx#50 +char idx#51 +char idx#52 +char idx#53 +char idx#54 +char idx#55 +char idx#56 +char idx#57 +char idx#58 +char idx#59 +char idx#6 +char idx#60 +char idx#61 +char idx#62 +char idx#63 +char idx#64 +char idx#65 +char idx#66 +char idx#67 +char idx#68 +char idx#69 +char idx#7 +char idx#70 +char idx#71 +char idx#72 +char idx#73 +char idx#74 +char idx#75 +char idx#76 +char idx#77 +char idx#78 +char idx#79 +char idx#8 +char idx#80 +char idx#81 +char idx#82 +char idx#83 +char idx#84 +char idx#85 +char idx#86 +char idx#87 +char idx#88 +char idx#89 +char idx#9 +char idx#90 +char idx#91 +char idx#92 +char idx#93 +char idx#94 +char idx#95 +char idx#96 +char idx#97 +char idx#98 +char idx#99 void main() -bool~ main::$2 -byte* main::s -byte* main::s#0 -byte* main::s#1 -byte* main::s#2 -byte* main::s#3 +bool main::$2 +char *main::s +char *main::s#0 +char *main::s#1 +char *main::s#2 +char *main::s#3 void testBinaryOperator() -byte~ testBinaryOperator::$0 -byte~ testBinaryOperator::$10 -byte~ testBinaryOperator::$12 -byte~ testBinaryOperator::$14 -byte~ testBinaryOperator::$16 -byte~ testBinaryOperator::$18 -byte~ testBinaryOperator::$2 -byte~ testBinaryOperator::$20 -byte~ testBinaryOperator::$22 -byte~ testBinaryOperator::$24 -byte~ testBinaryOperator::$26 -byte~ testBinaryOperator::$28 -byte~ testBinaryOperator::$30 -byte~ testBinaryOperator::$32 -byte~ testBinaryOperator::$34 -byte~ testBinaryOperator::$36 -byte~ testBinaryOperator::$38 -byte~ testBinaryOperator::$4 -byte~ testBinaryOperator::$40 -byte~ testBinaryOperator::$42 -byte~ testBinaryOperator::$44 -byte~ testBinaryOperator::$46 -byte~ testBinaryOperator::$48 -byte~ testBinaryOperator::$50 -byte~ testBinaryOperator::$52 -byte~ testBinaryOperator::$54 -byte~ testBinaryOperator::$56 -byte~ testBinaryOperator::$58 -byte~ testBinaryOperator::$6 -byte~ testBinaryOperator::$60 -byte~ testBinaryOperator::$62 -byte~ testBinaryOperator::$64 -byte~ testBinaryOperator::$66 -byte~ testBinaryOperator::$68 -byte~ testBinaryOperator::$70 -byte~ testBinaryOperator::$8 +char testBinaryOperator::$0 +char testBinaryOperator::$10 +char testBinaryOperator::$12 +char testBinaryOperator::$14 +char testBinaryOperator::$16 +char testBinaryOperator::$18 +char testBinaryOperator::$2 +char testBinaryOperator::$20 +char testBinaryOperator::$22 +char testBinaryOperator::$24 +char testBinaryOperator::$26 +char testBinaryOperator::$28 +char testBinaryOperator::$30 +char testBinaryOperator::$32 +char testBinaryOperator::$34 +char testBinaryOperator::$36 +char testBinaryOperator::$38 +char testBinaryOperator::$4 +char testBinaryOperator::$40 +char testBinaryOperator::$42 +char testBinaryOperator::$44 +char testBinaryOperator::$46 +char testBinaryOperator::$48 +char testBinaryOperator::$50 +char testBinaryOperator::$52 +char testBinaryOperator::$54 +char testBinaryOperator::$56 +char testBinaryOperator::$58 +char testBinaryOperator::$6 +char testBinaryOperator::$60 +char testBinaryOperator::$62 +char testBinaryOperator::$64 +char testBinaryOperator::$66 +char testBinaryOperator::$68 +char testBinaryOperator::$70 +char testBinaryOperator::$8 void testUnaryOperator() -byte~ testUnaryOperator::$0 -byte~ testUnaryOperator::$10 -byte~ testUnaryOperator::$2 -byte~ testUnaryOperator::$4 -byte~ testUnaryOperator::$6 -byte~ testUnaryOperator::$8 +char testUnaryOperator::$0 +char testUnaryOperator::$10 +char testUnaryOperator::$2 +char testUnaryOperator::$4 +char testUnaryOperator::$6 +char testUnaryOperator::$8 Adding number conversion cast (unumber) $3e8 in main::$2 = main::s#2 < SCREEN+$3e8 Adding number conversion cast (unumber) 0 in idx#3 = 0 @@ -774,15 +774,15 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast idx#3 = (unumber)0 Inlining cast idx#11 = (unumber)$28 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::s#2 = main::s#3 Alias idx#112 = idx#117 idx#115 @@ -934,92 +934,92 @@ Simple Condition assertType::$0 [191] if(assertType::t1#42==assertType::t2#42) g Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::s#0 = SCREEN Constant idx#3 = 0 -Constant assertType::t1#0 = TYPEID_BYTE -Constant assertType::t2#0 = TYPEID_BYTE -Constant assertType::t1#1 = TYPEID_SIGNED_BYTE -Constant assertType::t2#1 = TYPEID_SIGNED_BYTE -Constant assertType::t1#2 = TYPEID_WORD -Constant assertType::t2#2 = TYPEID_WORD -Constant assertType::t1#3 = TYPEID_SIGNED_WORD -Constant assertType::t2#3 = TYPEID_SIGNED_WORD -Constant assertType::t1#4 = TYPEID_DWORD -Constant assertType::t2#4 = TYPEID_DWORD -Constant assertType::t1#5 = TYPEID_SIGNED_DWORD -Constant assertType::t2#5 = TYPEID_SIGNED_DWORD +Constant assertType::t1#0 = TYPEID_CHAR +Constant assertType::t2#0 = TYPEID_CHAR +Constant assertType::t1#1 = TYPEID_SIGNED_CHAR +Constant assertType::t2#1 = TYPEID_SIGNED_CHAR +Constant assertType::t1#2 = TYPEID_UNSIGNED_INT +Constant assertType::t2#2 = TYPEID_UNSIGNED_INT +Constant assertType::t1#3 = TYPEID_INT +Constant assertType::t2#3 = TYPEID_INT +Constant assertType::t1#4 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#4 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#5 = TYPEID_LONG +Constant assertType::t2#5 = TYPEID_LONG Constant idx#11 = $28 -Constant assertType::t1#6 = TYPEID_BYTE -Constant assertType::t2#6 = TYPEID_BYTE -Constant assertType::t1#7 = TYPEID_BYTE -Constant assertType::t2#7 = TYPEID_BYTE -Constant assertType::t1#8 = TYPEID_WORD -Constant assertType::t2#8 = TYPEID_WORD -Constant assertType::t1#9 = TYPEID_SIGNED_WORD -Constant assertType::t2#9 = TYPEID_SIGNED_WORD -Constant assertType::t1#10 = TYPEID_DWORD -Constant assertType::t2#10 = TYPEID_DWORD -Constant assertType::t1#11 = TYPEID_SIGNED_DWORD -Constant assertType::t2#11 = TYPEID_SIGNED_DWORD -Constant assertType::t1#12 = TYPEID_BYTE -Constant assertType::t2#12 = TYPEID_BYTE -Constant assertType::t1#13 = TYPEID_SIGNED_BYTE -Constant assertType::t2#13 = TYPEID_SIGNED_BYTE -Constant assertType::t1#14 = TYPEID_WORD -Constant assertType::t2#14 = TYPEID_WORD -Constant assertType::t1#15 = TYPEID_SIGNED_WORD -Constant assertType::t2#15 = TYPEID_SIGNED_WORD -Constant assertType::t1#16 = TYPEID_DWORD -Constant assertType::t2#16 = TYPEID_DWORD -Constant assertType::t1#17 = TYPEID_SIGNED_DWORD -Constant assertType::t2#17 = TYPEID_SIGNED_DWORD -Constant assertType::t1#18 = TYPEID_WORD -Constant assertType::t2#18 = TYPEID_WORD -Constant assertType::t1#19 = TYPEID_WORD -Constant assertType::t2#19 = TYPEID_WORD -Constant assertType::t1#20 = TYPEID_WORD -Constant assertType::t2#20 = TYPEID_WORD -Constant assertType::t1#21 = TYPEID_WORD -Constant assertType::t2#21 = TYPEID_WORD -Constant assertType::t1#22 = TYPEID_DWORD -Constant assertType::t2#22 = TYPEID_DWORD -Constant assertType::t1#23 = TYPEID_SIGNED_DWORD -Constant assertType::t2#23 = TYPEID_SIGNED_DWORD +Constant assertType::t1#6 = TYPEID_CHAR +Constant assertType::t2#6 = TYPEID_CHAR +Constant assertType::t1#7 = TYPEID_CHAR +Constant assertType::t2#7 = TYPEID_CHAR +Constant assertType::t1#8 = TYPEID_UNSIGNED_INT +Constant assertType::t2#8 = TYPEID_UNSIGNED_INT +Constant assertType::t1#9 = TYPEID_INT +Constant assertType::t2#9 = TYPEID_INT +Constant assertType::t1#10 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#10 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#11 = TYPEID_LONG +Constant assertType::t2#11 = TYPEID_LONG +Constant assertType::t1#12 = TYPEID_CHAR +Constant assertType::t2#12 = TYPEID_CHAR +Constant assertType::t1#13 = TYPEID_SIGNED_CHAR +Constant assertType::t2#13 = TYPEID_SIGNED_CHAR +Constant assertType::t1#14 = TYPEID_UNSIGNED_INT +Constant assertType::t2#14 = TYPEID_UNSIGNED_INT +Constant assertType::t1#15 = TYPEID_INT +Constant assertType::t2#15 = TYPEID_INT +Constant assertType::t1#16 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#16 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#17 = TYPEID_LONG +Constant assertType::t2#17 = TYPEID_LONG +Constant assertType::t1#18 = TYPEID_UNSIGNED_INT +Constant assertType::t2#18 = TYPEID_UNSIGNED_INT +Constant assertType::t1#19 = TYPEID_UNSIGNED_INT +Constant assertType::t2#19 = TYPEID_UNSIGNED_INT +Constant assertType::t1#20 = TYPEID_UNSIGNED_INT +Constant assertType::t2#20 = TYPEID_UNSIGNED_INT +Constant assertType::t1#21 = TYPEID_UNSIGNED_INT +Constant assertType::t2#21 = TYPEID_UNSIGNED_INT +Constant assertType::t1#22 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#22 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#23 = TYPEID_LONG +Constant assertType::t2#23 = TYPEID_LONG Constant idx#32 = $50 -Constant assertType::t1#24 = TYPEID_SIGNED_WORD -Constant assertType::t2#24 = TYPEID_SIGNED_WORD -Constant assertType::t1#25 = TYPEID_SIGNED_WORD -Constant assertType::t2#25 = TYPEID_SIGNED_WORD -Constant assertType::t1#26 = TYPEID_WORD -Constant assertType::t2#26 = TYPEID_WORD -Constant assertType::t1#27 = TYPEID_SIGNED_WORD -Constant assertType::t2#27 = TYPEID_SIGNED_WORD -Constant assertType::t1#28 = TYPEID_DWORD -Constant assertType::t2#28 = TYPEID_DWORD -Constant assertType::t1#29 = TYPEID_SIGNED_DWORD -Constant assertType::t2#29 = TYPEID_SIGNED_DWORD -Constant assertType::t1#30 = TYPEID_DWORD -Constant assertType::t2#30 = TYPEID_DWORD -Constant assertType::t1#31 = TYPEID_DWORD -Constant assertType::t2#31 = TYPEID_DWORD -Constant assertType::t1#32 = TYPEID_DWORD -Constant assertType::t2#32 = TYPEID_DWORD -Constant assertType::t1#33 = TYPEID_DWORD -Constant assertType::t2#33 = TYPEID_DWORD -Constant assertType::t1#34 = TYPEID_DWORD -Constant assertType::t2#34 = TYPEID_DWORD -Constant assertType::t1#35 = TYPEID_DWORD -Constant assertType::t2#35 = TYPEID_DWORD -Constant assertType::t1#36 = TYPEID_SIGNED_DWORD -Constant assertType::t2#36 = TYPEID_SIGNED_DWORD -Constant assertType::t1#37 = TYPEID_SIGNED_DWORD -Constant assertType::t2#37 = TYPEID_SIGNED_DWORD -Constant assertType::t1#38 = TYPEID_SIGNED_DWORD -Constant assertType::t2#38 = TYPEID_SIGNED_DWORD -Constant assertType::t1#39 = TYPEID_SIGNED_DWORD -Constant assertType::t2#39 = TYPEID_SIGNED_DWORD -Constant assertType::t1#40 = TYPEID_DWORD -Constant assertType::t2#40 = TYPEID_DWORD -Constant assertType::t1#41 = TYPEID_SIGNED_DWORD -Constant assertType::t2#41 = TYPEID_SIGNED_DWORD +Constant assertType::t1#24 = TYPEID_INT +Constant assertType::t2#24 = TYPEID_INT +Constant assertType::t1#25 = TYPEID_INT +Constant assertType::t2#25 = TYPEID_INT +Constant assertType::t1#26 = TYPEID_UNSIGNED_INT +Constant assertType::t2#26 = TYPEID_UNSIGNED_INT +Constant assertType::t1#27 = TYPEID_INT +Constant assertType::t2#27 = TYPEID_INT +Constant assertType::t1#28 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#28 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#29 = TYPEID_LONG +Constant assertType::t2#29 = TYPEID_LONG +Constant assertType::t1#30 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#30 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#31 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#31 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#32 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#32 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#33 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#33 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#34 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#34 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#35 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#35 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#36 = TYPEID_LONG +Constant assertType::t2#36 = TYPEID_LONG +Constant assertType::t1#37 = TYPEID_LONG +Constant assertType::t2#37 = TYPEID_LONG +Constant assertType::t1#38 = TYPEID_LONG +Constant assertType::t2#38 = TYPEID_LONG +Constant assertType::t1#39 = TYPEID_LONG +Constant assertType::t2#39 = TYPEID_LONG +Constant assertType::t1#40 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#40 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#41 = TYPEID_LONG +Constant assertType::t2#41 = TYPEID_LONG Constant idx#114 = 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant idx#114 @@ -1119,101 +1119,101 @@ Inlining constant with var siblings assertType::t2#41 Inlining constant with var siblings idx#3 Inlining constant with var siblings idx#11 Inlining constant with var siblings idx#32 -Constant inlined assertType::t2#5 = TYPEID_SIGNED_DWORD +Constant inlined assertType::t2#5 = TYPEID_LONG Constant inlined idx#32 = $50 -Constant inlined assertType::t2#6 = TYPEID_BYTE -Constant inlined assertType::t2#7 = TYPEID_BYTE -Constant inlined assertType::t2#8 = TYPEID_WORD -Constant inlined assertType::t2#9 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#31 = TYPEID_DWORD -Constant inlined assertType::t2#30 = TYPEID_DWORD -Constant inlined assertType::t1#21 = TYPEID_WORD -Constant inlined assertType::t2#33 = TYPEID_DWORD -Constant inlined assertType::t1#20 = TYPEID_WORD -Constant inlined assertType::t2#32 = TYPEID_DWORD -Constant inlined assertType::t1#23 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#35 = TYPEID_DWORD -Constant inlined assertType::t1#22 = TYPEID_DWORD -Constant inlined assertType::t2#34 = TYPEID_DWORD -Constant inlined assertType::t1#25 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#37 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#24 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#36 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#27 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#39 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#0 = TYPEID_BYTE -Constant inlined assertType::t1#26 = TYPEID_WORD -Constant inlined assertType::t2#38 = TYPEID_SIGNED_DWORD +Constant inlined assertType::t2#6 = TYPEID_CHAR +Constant inlined assertType::t2#7 = TYPEID_CHAR +Constant inlined assertType::t2#8 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#9 = TYPEID_INT +Constant inlined assertType::t2#31 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#30 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#21 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#33 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#20 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#32 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#23 = TYPEID_LONG +Constant inlined assertType::t2#35 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#22 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#34 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#25 = TYPEID_INT +Constant inlined assertType::t2#37 = TYPEID_LONG +Constant inlined assertType::t1#24 = TYPEID_INT +Constant inlined assertType::t2#36 = TYPEID_LONG +Constant inlined assertType::t1#27 = TYPEID_INT +Constant inlined assertType::t2#39 = TYPEID_LONG +Constant inlined assertType::t2#0 = TYPEID_CHAR +Constant inlined assertType::t1#26 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#38 = TYPEID_LONG Constant inlined idx#3 = 0 -Constant inlined assertType::t2#1 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t1#29 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#2 = TYPEID_WORD -Constant inlined assertType::t1#28 = TYPEID_DWORD -Constant inlined assertType::t2#3 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#4 = TYPEID_DWORD +Constant inlined assertType::t2#1 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t1#29 = TYPEID_LONG +Constant inlined assertType::t2#2 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#28 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#3 = TYPEID_INT +Constant inlined assertType::t2#4 = TYPEID_UNSIGNED_LONG Constant inlined main::s#0 = SCREEN -Constant inlined assertType::t2#20 = TYPEID_WORD -Constant inlined assertType::t1#10 = TYPEID_DWORD -Constant inlined assertType::t2#22 = TYPEID_DWORD -Constant inlined assertType::t2#21 = TYPEID_WORD -Constant inlined assertType::t1#12 = TYPEID_BYTE -Constant inlined assertType::t2#24 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#11 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#23 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#14 = TYPEID_WORD -Constant inlined assertType::t2#26 = TYPEID_WORD -Constant inlined assertType::t1#13 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t2#25 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#16 = TYPEID_DWORD -Constant inlined assertType::t2#28 = TYPEID_DWORD -Constant inlined assertType::t1#15 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#27 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#18 = TYPEID_WORD -Constant inlined assertType::t1#17 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#29 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#19 = TYPEID_WORD -Constant inlined assertType::t1#6 = TYPEID_BYTE -Constant inlined assertType::t1#7 = TYPEID_BYTE -Constant inlined assertType::t1#8 = TYPEID_WORD -Constant inlined assertType::t1#9 = TYPEID_SIGNED_WORD +Constant inlined assertType::t2#20 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#10 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#22 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#21 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#12 = TYPEID_CHAR +Constant inlined assertType::t2#24 = TYPEID_INT +Constant inlined assertType::t1#11 = TYPEID_LONG +Constant inlined assertType::t2#23 = TYPEID_LONG +Constant inlined assertType::t1#14 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#26 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#13 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t2#25 = TYPEID_INT +Constant inlined assertType::t1#16 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#28 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#15 = TYPEID_INT +Constant inlined assertType::t2#27 = TYPEID_INT +Constant inlined assertType::t1#18 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#17 = TYPEID_LONG +Constant inlined assertType::t2#29 = TYPEID_LONG +Constant inlined assertType::t1#19 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#6 = TYPEID_CHAR +Constant inlined assertType::t1#7 = TYPEID_CHAR +Constant inlined assertType::t1#8 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#9 = TYPEID_INT Constant inlined idx#11 = $28 -Constant inlined assertType::t1#41 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#40 = TYPEID_DWORD -Constant inlined assertType::t2#11 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#10 = TYPEID_DWORD -Constant inlined assertType::t2#13 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t2#12 = TYPEID_BYTE -Constant inlined assertType::t2#15 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#14 = TYPEID_WORD -Constant inlined assertType::t1#0 = TYPEID_BYTE -Constant inlined assertType::t2#17 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#1 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t2#16 = TYPEID_DWORD -Constant inlined assertType::t1#2 = TYPEID_WORD -Constant inlined assertType::t2#19 = TYPEID_WORD -Constant inlined assertType::t1#3 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#18 = TYPEID_WORD -Constant inlined assertType::t1#4 = TYPEID_DWORD -Constant inlined assertType::t1#5 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#40 = TYPEID_DWORD -Constant inlined assertType::t1#30 = TYPEID_DWORD -Constant inlined assertType::t2#41 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#32 = TYPEID_DWORD -Constant inlined assertType::t1#31 = TYPEID_DWORD -Constant inlined assertType::t1#34 = TYPEID_DWORD -Constant inlined assertType::t1#33 = TYPEID_DWORD -Constant inlined assertType::t1#36 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#35 = TYPEID_DWORD -Constant inlined assertType::t1#38 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#37 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#39 = TYPEID_SIGNED_DWORD +Constant inlined assertType::t1#41 = TYPEID_LONG +Constant inlined assertType::t1#40 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#11 = TYPEID_LONG +Constant inlined assertType::t2#10 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#13 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t2#12 = TYPEID_CHAR +Constant inlined assertType::t2#15 = TYPEID_INT +Constant inlined assertType::t2#14 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#0 = TYPEID_CHAR +Constant inlined assertType::t2#17 = TYPEID_LONG +Constant inlined assertType::t1#1 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t2#16 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#2 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#19 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#3 = TYPEID_INT +Constant inlined assertType::t2#18 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#4 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#5 = TYPEID_LONG +Constant inlined assertType::t2#40 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#30 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#41 = TYPEID_LONG +Constant inlined assertType::t1#32 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#31 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#34 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#33 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#36 = TYPEID_LONG +Constant inlined assertType::t1#35 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#38 = TYPEID_LONG +Constant inlined assertType::t1#37 = TYPEID_LONG +Constant inlined assertType::t1#39 = TYPEID_LONG Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -1328,11 +1328,11 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [3] phi() - [4] call testUnaryOperator + [4] call testUnaryOperator to:main::@4 main::@4: scope:[main] from main::@3 [5] phi() - [6] call testBinaryOperator + [6] call testBinaryOperator to:main::@return main::@return: scope:[main] from main::@4 [7] return @@ -1345,27 +1345,27 @@ main::@2: scope:[main] from main::@1 void testUnaryOperator() testUnaryOperator: scope:[testUnaryOperator] from main::@3 [10] phi() - [11] call assertType + [11] call assertType to:testUnaryOperator::@1 testUnaryOperator::@1: scope:[testUnaryOperator] from testUnaryOperator [12] phi() - [13] call assertType + [13] call assertType to:testUnaryOperator::@2 testUnaryOperator::@2: scope:[testUnaryOperator] from testUnaryOperator::@1 [14] phi() - [15] call assertType + [15] call assertType to:testUnaryOperator::@3 testUnaryOperator::@3: scope:[testUnaryOperator] from testUnaryOperator::@2 [16] phi() - [17] call assertType + [17] call assertType to:testUnaryOperator::@4 testUnaryOperator::@4: scope:[testUnaryOperator] from testUnaryOperator::@3 [18] phi() - [19] call assertType + [19] call assertType to:testUnaryOperator::@5 testUnaryOperator::@5: scope:[testUnaryOperator] from testUnaryOperator::@4 [20] phi() - [21] call assertType + [21] call assertType to:testUnaryOperator::@return testUnaryOperator::@return: scope:[testUnaryOperator] from testUnaryOperator::@5 [22] return @@ -1374,157 +1374,157 @@ testUnaryOperator::@return: scope:[testUnaryOperator] from testUnaryOperator::@ void testBinaryOperator() testBinaryOperator: scope:[testBinaryOperator] from main::@4 [23] phi() - [24] call assertType + [24] call assertType to:testBinaryOperator::@1 testBinaryOperator::@1: scope:[testBinaryOperator] from testBinaryOperator [25] phi() - [26] call assertType + [26] call assertType to:testBinaryOperator::@2 testBinaryOperator::@2: scope:[testBinaryOperator] from testBinaryOperator::@1 [27] phi() - [28] call assertType + [28] call assertType to:testBinaryOperator::@3 testBinaryOperator::@3: scope:[testBinaryOperator] from testBinaryOperator::@2 [29] phi() - [30] call assertType + [30] call assertType to:testBinaryOperator::@4 testBinaryOperator::@4: scope:[testBinaryOperator] from testBinaryOperator::@3 [31] phi() - [32] call assertType + [32] call assertType to:testBinaryOperator::@5 testBinaryOperator::@5: scope:[testBinaryOperator] from testBinaryOperator::@4 [33] phi() - [34] call assertType + [34] call assertType to:testBinaryOperator::@6 testBinaryOperator::@6: scope:[testBinaryOperator] from testBinaryOperator::@5 [35] idx#18 = ++ idx#109 - [36] call assertType + [36] call assertType to:testBinaryOperator::@7 testBinaryOperator::@7: scope:[testBinaryOperator] from testBinaryOperator::@6 [37] phi() - [38] call assertType + [38] call assertType to:testBinaryOperator::@8 testBinaryOperator::@8: scope:[testBinaryOperator] from testBinaryOperator::@7 [39] phi() - [40] call assertType + [40] call assertType to:testBinaryOperator::@9 testBinaryOperator::@9: scope:[testBinaryOperator] from testBinaryOperator::@8 [41] phi() - [42] call assertType + [42] call assertType to:testBinaryOperator::@10 testBinaryOperator::@10: scope:[testBinaryOperator] from testBinaryOperator::@9 [43] phi() - [44] call assertType + [44] call assertType to:testBinaryOperator::@11 testBinaryOperator::@11: scope:[testBinaryOperator] from testBinaryOperator::@10 [45] phi() - [46] call assertType + [46] call assertType to:testBinaryOperator::@12 testBinaryOperator::@12: scope:[testBinaryOperator] from testBinaryOperator::@11 [47] idx#25 = ++ idx#109 - [48] call assertType + [48] call assertType to:testBinaryOperator::@13 testBinaryOperator::@13: scope:[testBinaryOperator] from testBinaryOperator::@12 [49] phi() - [50] call assertType + [50] call assertType to:testBinaryOperator::@14 testBinaryOperator::@14: scope:[testBinaryOperator] from testBinaryOperator::@13 [51] phi() - [52] call assertType + [52] call assertType to:testBinaryOperator::@15 testBinaryOperator::@15: scope:[testBinaryOperator] from testBinaryOperator::@14 [53] phi() - [54] call assertType + [54] call assertType to:testBinaryOperator::@16 testBinaryOperator::@16: scope:[testBinaryOperator] from testBinaryOperator::@15 [55] phi() - [56] call assertType + [56] call assertType to:testBinaryOperator::@17 testBinaryOperator::@17: scope:[testBinaryOperator] from testBinaryOperator::@16 [57] phi() - [58] call assertType + [58] call assertType to:testBinaryOperator::@18 testBinaryOperator::@18: scope:[testBinaryOperator] from testBinaryOperator::@17 [59] phi() - [60] call assertType + [60] call assertType to:testBinaryOperator::@19 testBinaryOperator::@19: scope:[testBinaryOperator] from testBinaryOperator::@18 [61] phi() - [62] call assertType + [62] call assertType to:testBinaryOperator::@20 testBinaryOperator::@20: scope:[testBinaryOperator] from testBinaryOperator::@19 [63] phi() - [64] call assertType + [64] call assertType to:testBinaryOperator::@21 testBinaryOperator::@21: scope:[testBinaryOperator] from testBinaryOperator::@20 [65] phi() - [66] call assertType + [66] call assertType to:testBinaryOperator::@22 testBinaryOperator::@22: scope:[testBinaryOperator] from testBinaryOperator::@21 [67] phi() - [68] call assertType + [68] call assertType to:testBinaryOperator::@23 testBinaryOperator::@23: scope:[testBinaryOperator] from testBinaryOperator::@22 [69] phi() - [70] call assertType + [70] call assertType to:testBinaryOperator::@24 testBinaryOperator::@24: scope:[testBinaryOperator] from testBinaryOperator::@23 [71] idx#39 = ++ idx#109 - [72] call assertType + [72] call assertType to:testBinaryOperator::@25 testBinaryOperator::@25: scope:[testBinaryOperator] from testBinaryOperator::@24 [73] phi() - [74] call assertType + [74] call assertType to:testBinaryOperator::@26 testBinaryOperator::@26: scope:[testBinaryOperator] from testBinaryOperator::@25 [75] phi() - [76] call assertType + [76] call assertType to:testBinaryOperator::@27 testBinaryOperator::@27: scope:[testBinaryOperator] from testBinaryOperator::@26 [77] phi() - [78] call assertType + [78] call assertType to:testBinaryOperator::@28 testBinaryOperator::@28: scope:[testBinaryOperator] from testBinaryOperator::@27 [79] phi() - [80] call assertType + [80] call assertType to:testBinaryOperator::@29 testBinaryOperator::@29: scope:[testBinaryOperator] from testBinaryOperator::@28 [81] phi() - [82] call assertType + [82] call assertType to:testBinaryOperator::@30 testBinaryOperator::@30: scope:[testBinaryOperator] from testBinaryOperator::@29 [83] idx#46 = ++ idx#109 - [84] call assertType + [84] call assertType to:testBinaryOperator::@31 testBinaryOperator::@31: scope:[testBinaryOperator] from testBinaryOperator::@30 [85] phi() - [86] call assertType + [86] call assertType to:testBinaryOperator::@32 testBinaryOperator::@32: scope:[testBinaryOperator] from testBinaryOperator::@31 [87] phi() - [88] call assertType + [88] call assertType to:testBinaryOperator::@33 testBinaryOperator::@33: scope:[testBinaryOperator] from testBinaryOperator::@32 [89] phi() - [90] call assertType + [90] call assertType to:testBinaryOperator::@34 testBinaryOperator::@34: scope:[testBinaryOperator] from testBinaryOperator::@33 [91] phi() - [92] call assertType + [92] call assertType to:testBinaryOperator::@35 testBinaryOperator::@35: scope:[testBinaryOperator] from testBinaryOperator::@34 [93] phi() - [94] call assertType + [94] call assertType to:testBinaryOperator::@return testBinaryOperator::@return: scope:[testBinaryOperator] from testBinaryOperator::@35 [95] return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from testBinaryOperator testBinaryOperator::@1 testBinaryOperator::@10 testBinaryOperator::@11 testBinaryOperator::@12 testBinaryOperator::@13 testBinaryOperator::@14 testBinaryOperator::@15 testBinaryOperator::@16 testBinaryOperator::@17 testBinaryOperator::@18 testBinaryOperator::@19 testBinaryOperator::@2 testBinaryOperator::@20 testBinaryOperator::@21 testBinaryOperator::@22 testBinaryOperator::@23 testBinaryOperator::@24 testBinaryOperator::@25 testBinaryOperator::@26 testBinaryOperator::@27 testBinaryOperator::@28 testBinaryOperator::@29 testBinaryOperator::@3 testBinaryOperator::@30 testBinaryOperator::@31 testBinaryOperator::@32 testBinaryOperator::@33 testBinaryOperator::@34 testBinaryOperator::@35 testBinaryOperator::@4 testBinaryOperator::@5 testBinaryOperator::@6 testBinaryOperator::@7 testBinaryOperator::@8 testBinaryOperator::@9 testUnaryOperator testUnaryOperator::@1 testUnaryOperator::@2 testUnaryOperator::@3 testUnaryOperator::@4 testUnaryOperator::@5 [96] idx#106 = phi( testBinaryOperator/$28, testBinaryOperator::@1/idx#109, testBinaryOperator::@10/idx#109, testBinaryOperator::@11/idx#109, testBinaryOperator::@12/idx#25, testBinaryOperator::@13/idx#109, testBinaryOperator::@14/idx#109, testBinaryOperator::@15/idx#109, testBinaryOperator::@16/idx#109, testBinaryOperator::@17/idx#109, testBinaryOperator::@18/$50, testBinaryOperator::@19/idx#109, testBinaryOperator::@2/idx#109, testBinaryOperator::@20/idx#109, testBinaryOperator::@21/idx#109, testBinaryOperator::@22/idx#109, testBinaryOperator::@23/idx#109, testBinaryOperator::@24/idx#39, testBinaryOperator::@25/idx#109, testBinaryOperator::@26/idx#109, testBinaryOperator::@27/idx#109, testBinaryOperator::@28/idx#109, testBinaryOperator::@29/idx#109, testBinaryOperator::@3/idx#109, testBinaryOperator::@30/idx#46, testBinaryOperator::@31/idx#109, testBinaryOperator::@32/idx#109, testBinaryOperator::@33/idx#109, testBinaryOperator::@34/idx#109, testBinaryOperator::@35/idx#109, testBinaryOperator::@4/idx#109, testBinaryOperator::@5/idx#109, testBinaryOperator::@6/idx#18, testBinaryOperator::@7/idx#109, testBinaryOperator::@8/idx#109, testBinaryOperator::@9/idx#109, testUnaryOperator/0, testUnaryOperator::@1/idx#109, testUnaryOperator::@2/idx#109, testUnaryOperator::@3/idx#109, testUnaryOperator::@4/idx#109, testUnaryOperator::@5/idx#109 ) - [96] assertType::t2#42 = phi( testBinaryOperator/TYPEID_BYTE, testBinaryOperator::@1/TYPEID_BYTE, testBinaryOperator::@10/TYPEID_DWORD, testBinaryOperator::@11/TYPEID_SIGNED_DWORD, testBinaryOperator::@12/TYPEID_WORD, testBinaryOperator::@13/TYPEID_WORD, testBinaryOperator::@14/TYPEID_WORD, testBinaryOperator::@15/TYPEID_WORD, testBinaryOperator::@16/TYPEID_DWORD, testBinaryOperator::@17/TYPEID_SIGNED_DWORD, testBinaryOperator::@18/TYPEID_SIGNED_WORD, testBinaryOperator::@19/TYPEID_SIGNED_WORD, testBinaryOperator::@2/TYPEID_WORD, testBinaryOperator::@20/TYPEID_WORD, testBinaryOperator::@21/TYPEID_SIGNED_WORD, testBinaryOperator::@22/TYPEID_DWORD, testBinaryOperator::@23/TYPEID_SIGNED_DWORD, testBinaryOperator::@24/TYPEID_DWORD, testBinaryOperator::@25/TYPEID_DWORD, testBinaryOperator::@26/TYPEID_DWORD, testBinaryOperator::@27/TYPEID_DWORD, testBinaryOperator::@28/TYPEID_DWORD, testBinaryOperator::@29/TYPEID_DWORD, testBinaryOperator::@3/TYPEID_SIGNED_WORD, testBinaryOperator::@30/TYPEID_SIGNED_DWORD, testBinaryOperator::@31/TYPEID_SIGNED_DWORD, testBinaryOperator::@32/TYPEID_SIGNED_DWORD, testBinaryOperator::@33/TYPEID_SIGNED_DWORD, testBinaryOperator::@34/TYPEID_DWORD, testBinaryOperator::@35/TYPEID_SIGNED_DWORD, testBinaryOperator::@4/TYPEID_DWORD, testBinaryOperator::@5/TYPEID_SIGNED_DWORD, testBinaryOperator::@6/TYPEID_BYTE, testBinaryOperator::@7/TYPEID_SIGNED_BYTE, testBinaryOperator::@8/TYPEID_WORD, testBinaryOperator::@9/TYPEID_SIGNED_WORD, testUnaryOperator/TYPEID_BYTE, testUnaryOperator::@1/TYPEID_SIGNED_BYTE, testUnaryOperator::@2/TYPEID_WORD, testUnaryOperator::@3/TYPEID_SIGNED_WORD, testUnaryOperator::@4/TYPEID_DWORD, testUnaryOperator::@5/TYPEID_SIGNED_DWORD ) - [96] assertType::t1#42 = phi( testBinaryOperator/TYPEID_BYTE, testBinaryOperator::@1/TYPEID_BYTE, testBinaryOperator::@10/TYPEID_DWORD, testBinaryOperator::@11/TYPEID_SIGNED_DWORD, testBinaryOperator::@12/TYPEID_WORD, testBinaryOperator::@13/TYPEID_WORD, testBinaryOperator::@14/TYPEID_WORD, testBinaryOperator::@15/TYPEID_WORD, testBinaryOperator::@16/TYPEID_DWORD, testBinaryOperator::@17/TYPEID_SIGNED_DWORD, testBinaryOperator::@18/TYPEID_SIGNED_WORD, testBinaryOperator::@19/TYPEID_SIGNED_WORD, testBinaryOperator::@2/TYPEID_WORD, testBinaryOperator::@20/TYPEID_WORD, testBinaryOperator::@21/TYPEID_SIGNED_WORD, testBinaryOperator::@22/TYPEID_DWORD, testBinaryOperator::@23/TYPEID_SIGNED_DWORD, testBinaryOperator::@24/TYPEID_DWORD, testBinaryOperator::@25/TYPEID_DWORD, testBinaryOperator::@26/TYPEID_DWORD, testBinaryOperator::@27/TYPEID_DWORD, testBinaryOperator::@28/TYPEID_DWORD, testBinaryOperator::@29/TYPEID_DWORD, testBinaryOperator::@3/TYPEID_SIGNED_WORD, testBinaryOperator::@30/TYPEID_SIGNED_DWORD, testBinaryOperator::@31/TYPEID_SIGNED_DWORD, testBinaryOperator::@32/TYPEID_SIGNED_DWORD, testBinaryOperator::@33/TYPEID_SIGNED_DWORD, testBinaryOperator::@34/TYPEID_DWORD, testBinaryOperator::@35/TYPEID_SIGNED_DWORD, testBinaryOperator::@4/TYPEID_DWORD, testBinaryOperator::@5/TYPEID_SIGNED_DWORD, testBinaryOperator::@6/TYPEID_BYTE, testBinaryOperator::@7/TYPEID_SIGNED_BYTE, testBinaryOperator::@8/TYPEID_WORD, testBinaryOperator::@9/TYPEID_SIGNED_WORD, testUnaryOperator/TYPEID_BYTE, testUnaryOperator::@1/TYPEID_SIGNED_BYTE, testUnaryOperator::@2/TYPEID_WORD, testUnaryOperator::@3/TYPEID_SIGNED_WORD, testUnaryOperator::@4/TYPEID_DWORD, testUnaryOperator::@5/TYPEID_SIGNED_DWORD ) + [96] assertType::t2#42 = phi( testBinaryOperator/TYPEID_CHAR, testBinaryOperator::@1/TYPEID_CHAR, testBinaryOperator::@10/TYPEID_UNSIGNED_LONG, testBinaryOperator::@11/TYPEID_LONG, testBinaryOperator::@12/TYPEID_UNSIGNED_INT, testBinaryOperator::@13/TYPEID_UNSIGNED_INT, testBinaryOperator::@14/TYPEID_UNSIGNED_INT, testBinaryOperator::@15/TYPEID_UNSIGNED_INT, testBinaryOperator::@16/TYPEID_UNSIGNED_LONG, testBinaryOperator::@17/TYPEID_LONG, testBinaryOperator::@18/TYPEID_INT, testBinaryOperator::@19/TYPEID_INT, testBinaryOperator::@2/TYPEID_UNSIGNED_INT, testBinaryOperator::@20/TYPEID_UNSIGNED_INT, testBinaryOperator::@21/TYPEID_INT, testBinaryOperator::@22/TYPEID_UNSIGNED_LONG, testBinaryOperator::@23/TYPEID_LONG, testBinaryOperator::@24/TYPEID_UNSIGNED_LONG, testBinaryOperator::@25/TYPEID_UNSIGNED_LONG, testBinaryOperator::@26/TYPEID_UNSIGNED_LONG, testBinaryOperator::@27/TYPEID_UNSIGNED_LONG, testBinaryOperator::@28/TYPEID_UNSIGNED_LONG, testBinaryOperator::@29/TYPEID_UNSIGNED_LONG, testBinaryOperator::@3/TYPEID_INT, testBinaryOperator::@30/TYPEID_LONG, testBinaryOperator::@31/TYPEID_LONG, testBinaryOperator::@32/TYPEID_LONG, testBinaryOperator::@33/TYPEID_LONG, testBinaryOperator::@34/TYPEID_UNSIGNED_LONG, testBinaryOperator::@35/TYPEID_LONG, testBinaryOperator::@4/TYPEID_UNSIGNED_LONG, testBinaryOperator::@5/TYPEID_LONG, testBinaryOperator::@6/TYPEID_CHAR, testBinaryOperator::@7/TYPEID_SIGNED_CHAR, testBinaryOperator::@8/TYPEID_UNSIGNED_INT, testBinaryOperator::@9/TYPEID_INT, testUnaryOperator/TYPEID_CHAR, testUnaryOperator::@1/TYPEID_SIGNED_CHAR, testUnaryOperator::@2/TYPEID_UNSIGNED_INT, testUnaryOperator::@3/TYPEID_INT, testUnaryOperator::@4/TYPEID_UNSIGNED_LONG, testUnaryOperator::@5/TYPEID_LONG ) + [96] assertType::t1#42 = phi( testBinaryOperator/TYPEID_CHAR, testBinaryOperator::@1/TYPEID_CHAR, testBinaryOperator::@10/TYPEID_UNSIGNED_LONG, testBinaryOperator::@11/TYPEID_LONG, testBinaryOperator::@12/TYPEID_UNSIGNED_INT, testBinaryOperator::@13/TYPEID_UNSIGNED_INT, testBinaryOperator::@14/TYPEID_UNSIGNED_INT, testBinaryOperator::@15/TYPEID_UNSIGNED_INT, testBinaryOperator::@16/TYPEID_UNSIGNED_LONG, testBinaryOperator::@17/TYPEID_LONG, testBinaryOperator::@18/TYPEID_INT, testBinaryOperator::@19/TYPEID_INT, testBinaryOperator::@2/TYPEID_UNSIGNED_INT, testBinaryOperator::@20/TYPEID_UNSIGNED_INT, testBinaryOperator::@21/TYPEID_INT, testBinaryOperator::@22/TYPEID_UNSIGNED_LONG, testBinaryOperator::@23/TYPEID_LONG, testBinaryOperator::@24/TYPEID_UNSIGNED_LONG, testBinaryOperator::@25/TYPEID_UNSIGNED_LONG, testBinaryOperator::@26/TYPEID_UNSIGNED_LONG, testBinaryOperator::@27/TYPEID_UNSIGNED_LONG, testBinaryOperator::@28/TYPEID_UNSIGNED_LONG, testBinaryOperator::@29/TYPEID_UNSIGNED_LONG, testBinaryOperator::@3/TYPEID_INT, testBinaryOperator::@30/TYPEID_LONG, testBinaryOperator::@31/TYPEID_LONG, testBinaryOperator::@32/TYPEID_LONG, testBinaryOperator::@33/TYPEID_LONG, testBinaryOperator::@34/TYPEID_UNSIGNED_LONG, testBinaryOperator::@35/TYPEID_LONG, testBinaryOperator::@4/TYPEID_UNSIGNED_LONG, testBinaryOperator::@5/TYPEID_LONG, testBinaryOperator::@6/TYPEID_CHAR, testBinaryOperator::@7/TYPEID_SIGNED_CHAR, testBinaryOperator::@8/TYPEID_UNSIGNED_INT, testBinaryOperator::@9/TYPEID_INT, testUnaryOperator/TYPEID_CHAR, testUnaryOperator::@1/TYPEID_SIGNED_CHAR, testUnaryOperator::@2/TYPEID_UNSIGNED_INT, testUnaryOperator::@3/TYPEID_INT, testUnaryOperator::@4/TYPEID_UNSIGNED_LONG, testUnaryOperator::@5/TYPEID_LONG ) [97] if(assertType::t1#42==assertType::t2#42) goto assertType::@1 to:assertType::@3 assertType::@3: scope:[assertType] from assertType @@ -1543,22 +1543,22 @@ assertType::@1: scope:[assertType] from assertType VARIABLE REGISTER WEIGHTS -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#42 50.5 -byte assertType::t2 -byte assertType::t2#42 101.0 -byte idx -byte idx#106 166.60000000000005 -byte idx#109 6.973684210526315 -byte idx#18 22.0 -byte idx#25 22.0 -byte idx#39 22.0 -byte idx#46 22.0 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#42 // 50.5 +char assertType::t2 +char assertType::t2#42 // 101.0 +char idx +char idx#106 // 166.60000000000005 +char idx#109 // 6.973684210526315 +char idx#18 // 22.0 +char idx#25 // 22.0 +char idx#39 // 22.0 +char idx#46 // 22.0 void main() -byte* main::s -byte* main::s#1 22.0 -byte* main::s#2 14.666666666666666 +char *main::s +char *main::s#1 // 22.0 +char *main::s#2 // 14.666666666666666 void testBinaryOperator() void testUnaryOperator() @@ -1625,12 +1625,12 @@ ASSEMBLER BEFORE OPTIMIZATION // Global Constants & labels .const RED = 2 .const GREEN = 5 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .label SCREEN = $400 .label COLS = $d800 .segment Code @@ -1661,7 +1661,7 @@ main: { jmp __b3 // main::@3 __b3: - // [4] call testUnaryOperator + // [4] call testUnaryOperator // [10] phi from main::@3 to testUnaryOperator [phi:main::@3->testUnaryOperator] testUnaryOperator_from___b3: jsr testUnaryOperator @@ -1670,7 +1670,7 @@ main: { jmp __b4 // main::@4 __b4: - // [6] call testBinaryOperator + // [6] call testBinaryOperator // [23] phi from main::@4 to testBinaryOperator [phi:main::@4->testBinaryOperator] testBinaryOperator_from___b4: jsr testBinaryOperator @@ -1697,92 +1697,92 @@ main: { } // testUnaryOperator testUnaryOperator: { - // [11] call assertType + // [11] call assertType // Unary Operations // [96] phi from testUnaryOperator to assertType [phi:testUnaryOperator->assertType] assertType_from_testUnaryOperator: // [96] phi idx#106 = 0 [phi:testUnaryOperator->assertType#0] -- vbuxx=vbuc1 ldx #0 - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testUnaryOperator->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testUnaryOperator->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testUnaryOperator->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testUnaryOperator->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [12] phi from testUnaryOperator to testUnaryOperator::@1 [phi:testUnaryOperator->testUnaryOperator::@1] __b1_from_testUnaryOperator: jmp __b1 // testUnaryOperator::@1 __b1: - // [13] call assertType + // [13] call assertType // [96] phi from testUnaryOperator::@1 to assertType [phi:testUnaryOperator::@1->assertType] assertType_from___b1: // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@1->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_BYTE [phi:testUnaryOperator::@1->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_BYTE + // [96] phi assertType::t2#42 = TYPEID_SIGNED_CHAR [phi:testUnaryOperator::@1->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_BYTE [phi:testUnaryOperator::@1->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE + // [96] phi assertType::t1#42 = TYPEID_SIGNED_CHAR [phi:testUnaryOperator::@1->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR jsr assertType // [14] phi from testUnaryOperator::@1 to testUnaryOperator::@2 [phi:testUnaryOperator::@1->testUnaryOperator::@2] __b2_from___b1: jmp __b2 // testUnaryOperator::@2 __b2: - // [15] call assertType + // [15] call assertType // [96] phi from testUnaryOperator::@2 to assertType [phi:testUnaryOperator::@2->assertType] assertType_from___b2: // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@2->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testUnaryOperator::@2->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testUnaryOperator::@2->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testUnaryOperator::@2->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testUnaryOperator::@2->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [16] phi from testUnaryOperator::@2 to testUnaryOperator::@3 [phi:testUnaryOperator::@2->testUnaryOperator::@3] __b3_from___b2: jmp __b3 // testUnaryOperator::@3 __b3: - // [17] call assertType + // [17] call assertType // [96] phi from testUnaryOperator::@3 to assertType [phi:testUnaryOperator::@3->assertType] assertType_from___b3: // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@3->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testUnaryOperator::@3->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testUnaryOperator::@3->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testUnaryOperator::@3->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testUnaryOperator::@3->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [18] phi from testUnaryOperator::@3 to testUnaryOperator::@4 [phi:testUnaryOperator::@3->testUnaryOperator::@4] __b4_from___b3: jmp __b4 // testUnaryOperator::@4 __b4: - // [19] call assertType + // [19] call assertType // [96] phi from testUnaryOperator::@4 to assertType [phi:testUnaryOperator::@4->assertType] assertType_from___b4: // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@4->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testUnaryOperator::@4->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testUnaryOperator::@4->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testUnaryOperator::@4->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testUnaryOperator::@4->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [20] phi from testUnaryOperator::@4 to testUnaryOperator::@5 [phi:testUnaryOperator::@4->testUnaryOperator::@5] __b5_from___b4: jmp __b5 // testUnaryOperator::@5 __b5: - // [21] call assertType + // [21] call assertType // [96] phi from testUnaryOperator::@5 to assertType [phi:testUnaryOperator::@5->assertType] assertType_from___b5: // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@5->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testUnaryOperator::@5->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testUnaryOperator::@5->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testUnaryOperator::@5->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testUnaryOperator::@5->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType jmp __breturn // testUnaryOperator::@return @@ -1792,548 +1792,548 @@ testUnaryOperator: { } // testBinaryOperator testBinaryOperator: { - // [24] call assertType + // [24] call assertType // Binary Operations between unsigned byte & other types // [96] phi from testBinaryOperator to assertType [phi:testBinaryOperator->assertType] assertType_from_testBinaryOperator: // [96] phi idx#106 = $28 [phi:testBinaryOperator->assertType#0] -- vbuxx=vbuc1 ldx #$28 - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testBinaryOperator->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testBinaryOperator->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testBinaryOperator->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testBinaryOperator->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [25] phi from testBinaryOperator to testBinaryOperator::@1 [phi:testBinaryOperator->testBinaryOperator::@1] __b1_from_testBinaryOperator: jmp __b1 // testBinaryOperator::@1 __b1: - // [26] call assertType + // [26] call assertType // [96] phi from testBinaryOperator::@1 to assertType [phi:testBinaryOperator::@1->assertType] assertType_from___b1: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@1->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testBinaryOperator::@1->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testBinaryOperator::@1->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testBinaryOperator::@1->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testBinaryOperator::@1->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [27] phi from testBinaryOperator::@1 to testBinaryOperator::@2 [phi:testBinaryOperator::@1->testBinaryOperator::@2] __b2_from___b1: jmp __b2 // testBinaryOperator::@2 __b2: - // [28] call assertType + // [28] call assertType // [96] phi from testBinaryOperator::@2 to assertType [phi:testBinaryOperator::@2->assertType] assertType_from___b2: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@2->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@2->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@2->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@2->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@2->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [29] phi from testBinaryOperator::@2 to testBinaryOperator::@3 [phi:testBinaryOperator::@2->testBinaryOperator::@3] __b3_from___b2: jmp __b3 // testBinaryOperator::@3 __b3: - // [30] call assertType + // [30] call assertType // [96] phi from testBinaryOperator::@3 to assertType [phi:testBinaryOperator::@3->assertType] assertType_from___b3: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@3->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@3->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@3->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@3->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@3->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [31] phi from testBinaryOperator::@3 to testBinaryOperator::@4 [phi:testBinaryOperator::@3->testBinaryOperator::@4] __b4_from___b3: jmp __b4 // testBinaryOperator::@4 __b4: - // [32] call assertType + // [32] call assertType // [96] phi from testBinaryOperator::@4 to assertType [phi:testBinaryOperator::@4->assertType] assertType_from___b4: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@4->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@4->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@4->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@4->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@4->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [33] phi from testBinaryOperator::@4 to testBinaryOperator::@5 [phi:testBinaryOperator::@4->testBinaryOperator::@5] __b5_from___b4: jmp __b5 // testBinaryOperator::@5 __b5: - // [34] call assertType + // [34] call assertType // [96] phi from testBinaryOperator::@5 to assertType [phi:testBinaryOperator::@5->assertType] assertType_from___b5: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@5->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@5->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@5->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@5->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@5->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType jmp __b6 // testBinaryOperator::@6 __b6: // [35] idx#18 = ++ idx#109 -- vbuxx=_inc_vbuxx inx - // [36] call assertType + // [36] call assertType // Binary Operations between signed byte & other types // [96] phi from testBinaryOperator::@6 to assertType [phi:testBinaryOperator::@6->assertType] assertType_from___b6: // [96] phi idx#106 = idx#18 [phi:testBinaryOperator::@6->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testBinaryOperator::@6->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testBinaryOperator::@6->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testBinaryOperator::@6->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testBinaryOperator::@6->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [37] phi from testBinaryOperator::@6 to testBinaryOperator::@7 [phi:testBinaryOperator::@6->testBinaryOperator::@7] __b7_from___b6: jmp __b7 // testBinaryOperator::@7 __b7: - // [38] call assertType + // [38] call assertType // [96] phi from testBinaryOperator::@7 to assertType [phi:testBinaryOperator::@7->assertType] assertType_from___b7: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@7->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_BYTE [phi:testBinaryOperator::@7->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_BYTE + // [96] phi assertType::t2#42 = TYPEID_SIGNED_CHAR [phi:testBinaryOperator::@7->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_BYTE [phi:testBinaryOperator::@7->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE + // [96] phi assertType::t1#42 = TYPEID_SIGNED_CHAR [phi:testBinaryOperator::@7->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR jsr assertType // [39] phi from testBinaryOperator::@7 to testBinaryOperator::@8 [phi:testBinaryOperator::@7->testBinaryOperator::@8] __b8_from___b7: jmp __b8 // testBinaryOperator::@8 __b8: - // [40] call assertType + // [40] call assertType // [96] phi from testBinaryOperator::@8 to assertType [phi:testBinaryOperator::@8->assertType] assertType_from___b8: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@8->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@8->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@8->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@8->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@8->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [41] phi from testBinaryOperator::@8 to testBinaryOperator::@9 [phi:testBinaryOperator::@8->testBinaryOperator::@9] __b9_from___b8: jmp __b9 // testBinaryOperator::@9 __b9: - // [42] call assertType + // [42] call assertType // [96] phi from testBinaryOperator::@9 to assertType [phi:testBinaryOperator::@9->assertType] assertType_from___b9: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@9->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@9->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@9->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@9->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@9->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [43] phi from testBinaryOperator::@9 to testBinaryOperator::@10 [phi:testBinaryOperator::@9->testBinaryOperator::@10] __b10_from___b9: jmp __b10 // testBinaryOperator::@10 __b10: - // [44] call assertType + // [44] call assertType // [96] phi from testBinaryOperator::@10 to assertType [phi:testBinaryOperator::@10->assertType] assertType_from___b10: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@10->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@10->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@10->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@10->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@10->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [45] phi from testBinaryOperator::@10 to testBinaryOperator::@11 [phi:testBinaryOperator::@10->testBinaryOperator::@11] __b11_from___b10: jmp __b11 // testBinaryOperator::@11 __b11: - // [46] call assertType + // [46] call assertType // [96] phi from testBinaryOperator::@11 to assertType [phi:testBinaryOperator::@11->assertType] assertType_from___b11: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@11->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@11->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@11->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@11->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@11->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType jmp __b12 // testBinaryOperator::@12 __b12: // [47] idx#25 = ++ idx#109 -- vbuxx=_inc_vbuxx inx - // [48] call assertType + // [48] call assertType // Binary Operations between unsigned word & other types // [96] phi from testBinaryOperator::@12 to assertType [phi:testBinaryOperator::@12->assertType] assertType_from___b12: // [96] phi idx#106 = idx#25 [phi:testBinaryOperator::@12->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@12->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@12->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@12->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@12->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [49] phi from testBinaryOperator::@12 to testBinaryOperator::@13 [phi:testBinaryOperator::@12->testBinaryOperator::@13] __b13_from___b12: jmp __b13 // testBinaryOperator::@13 __b13: - // [50] call assertType + // [50] call assertType // [96] phi from testBinaryOperator::@13 to assertType [phi:testBinaryOperator::@13->assertType] assertType_from___b13: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@13->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@13->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@13->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@13->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@13->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [51] phi from testBinaryOperator::@13 to testBinaryOperator::@14 [phi:testBinaryOperator::@13->testBinaryOperator::@14] __b14_from___b13: jmp __b14 // testBinaryOperator::@14 __b14: - // [52] call assertType + // [52] call assertType // [96] phi from testBinaryOperator::@14 to assertType [phi:testBinaryOperator::@14->assertType] assertType_from___b14: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@14->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@14->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@14->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@14->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@14->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [53] phi from testBinaryOperator::@14 to testBinaryOperator::@15 [phi:testBinaryOperator::@14->testBinaryOperator::@15] __b15_from___b14: jmp __b15 // testBinaryOperator::@15 __b15: - // [54] call assertType + // [54] call assertType // [96] phi from testBinaryOperator::@15 to assertType [phi:testBinaryOperator::@15->assertType] assertType_from___b15: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@15->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@15->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@15->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@15->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@15->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [55] phi from testBinaryOperator::@15 to testBinaryOperator::@16 [phi:testBinaryOperator::@15->testBinaryOperator::@16] __b16_from___b15: jmp __b16 // testBinaryOperator::@16 __b16: - // [56] call assertType + // [56] call assertType // [96] phi from testBinaryOperator::@16 to assertType [phi:testBinaryOperator::@16->assertType] assertType_from___b16: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@16->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@16->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@16->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@16->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@16->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [57] phi from testBinaryOperator::@16 to testBinaryOperator::@17 [phi:testBinaryOperator::@16->testBinaryOperator::@17] __b17_from___b16: jmp __b17 // testBinaryOperator::@17 __b17: - // [58] call assertType + // [58] call assertType // [96] phi from testBinaryOperator::@17 to assertType [phi:testBinaryOperator::@17->assertType] assertType_from___b17: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@17->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@17->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@17->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@17->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@17->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [59] phi from testBinaryOperator::@17 to testBinaryOperator::@18 [phi:testBinaryOperator::@17->testBinaryOperator::@18] __b18_from___b17: jmp __b18 // testBinaryOperator::@18 __b18: - // [60] call assertType + // [60] call assertType // Binary Operations between signed word & other types // [96] phi from testBinaryOperator::@18 to assertType [phi:testBinaryOperator::@18->assertType] assertType_from___b18: // [96] phi idx#106 = $50 [phi:testBinaryOperator::@18->assertType#0] -- vbuxx=vbuc1 ldx #$50 - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@18->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@18->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@18->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@18->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [61] phi from testBinaryOperator::@18 to testBinaryOperator::@19 [phi:testBinaryOperator::@18->testBinaryOperator::@19] __b19_from___b18: jmp __b19 // testBinaryOperator::@19 __b19: - // [62] call assertType + // [62] call assertType // [96] phi from testBinaryOperator::@19 to assertType [phi:testBinaryOperator::@19->assertType] assertType_from___b19: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@19->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@19->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@19->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@19->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@19->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [63] phi from testBinaryOperator::@19 to testBinaryOperator::@20 [phi:testBinaryOperator::@19->testBinaryOperator::@20] __b20_from___b19: jmp __b20 // testBinaryOperator::@20 __b20: - // [64] call assertType + // [64] call assertType // [96] phi from testBinaryOperator::@20 to assertType [phi:testBinaryOperator::@20->assertType] assertType_from___b20: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@20->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@20->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@20->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@20->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@20->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [65] phi from testBinaryOperator::@20 to testBinaryOperator::@21 [phi:testBinaryOperator::@20->testBinaryOperator::@21] __b21_from___b20: jmp __b21 // testBinaryOperator::@21 __b21: - // [66] call assertType + // [66] call assertType // [96] phi from testBinaryOperator::@21 to assertType [phi:testBinaryOperator::@21->assertType] assertType_from___b21: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@21->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@21->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@21->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@21->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@21->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [67] phi from testBinaryOperator::@21 to testBinaryOperator::@22 [phi:testBinaryOperator::@21->testBinaryOperator::@22] __b22_from___b21: jmp __b22 // testBinaryOperator::@22 __b22: - // [68] call assertType + // [68] call assertType // [96] phi from testBinaryOperator::@22 to assertType [phi:testBinaryOperator::@22->assertType] assertType_from___b22: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@22->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@22->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@22->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@22->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@22->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [69] phi from testBinaryOperator::@22 to testBinaryOperator::@23 [phi:testBinaryOperator::@22->testBinaryOperator::@23] __b23_from___b22: jmp __b23 // testBinaryOperator::@23 __b23: - // [70] call assertType + // [70] call assertType // [96] phi from testBinaryOperator::@23 to assertType [phi:testBinaryOperator::@23->assertType] assertType_from___b23: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@23->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@23->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@23->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@23->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@23->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType jmp __b24 // testBinaryOperator::@24 __b24: // [71] idx#39 = ++ idx#109 -- vbuxx=_inc_vbuxx inx - // [72] call assertType + // [72] call assertType // Binary Operations between unsigned dword & other types // [96] phi from testBinaryOperator::@24 to assertType [phi:testBinaryOperator::@24->assertType] assertType_from___b24: // [96] phi idx#106 = idx#39 [phi:testBinaryOperator::@24->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@24->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@24->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@24->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@24->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [73] phi from testBinaryOperator::@24 to testBinaryOperator::@25 [phi:testBinaryOperator::@24->testBinaryOperator::@25] __b25_from___b24: jmp __b25 // testBinaryOperator::@25 __b25: - // [74] call assertType + // [74] call assertType // [96] phi from testBinaryOperator::@25 to assertType [phi:testBinaryOperator::@25->assertType] assertType_from___b25: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@25->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@25->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@25->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@25->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@25->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [75] phi from testBinaryOperator::@25 to testBinaryOperator::@26 [phi:testBinaryOperator::@25->testBinaryOperator::@26] __b26_from___b25: jmp __b26 // testBinaryOperator::@26 __b26: - // [76] call assertType + // [76] call assertType // [96] phi from testBinaryOperator::@26 to assertType [phi:testBinaryOperator::@26->assertType] assertType_from___b26: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@26->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@26->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@26->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@26->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@26->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [77] phi from testBinaryOperator::@26 to testBinaryOperator::@27 [phi:testBinaryOperator::@26->testBinaryOperator::@27] __b27_from___b26: jmp __b27 // testBinaryOperator::@27 __b27: - // [78] call assertType + // [78] call assertType // [96] phi from testBinaryOperator::@27 to assertType [phi:testBinaryOperator::@27->assertType] assertType_from___b27: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@27->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@27->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@27->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@27->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@27->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [79] phi from testBinaryOperator::@27 to testBinaryOperator::@28 [phi:testBinaryOperator::@27->testBinaryOperator::@28] __b28_from___b27: jmp __b28 // testBinaryOperator::@28 __b28: - // [80] call assertType + // [80] call assertType // [96] phi from testBinaryOperator::@28 to assertType [phi:testBinaryOperator::@28->assertType] assertType_from___b28: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@28->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@28->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@28->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@28->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@28->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [81] phi from testBinaryOperator::@28 to testBinaryOperator::@29 [phi:testBinaryOperator::@28->testBinaryOperator::@29] __b29_from___b28: jmp __b29 // testBinaryOperator::@29 __b29: - // [82] call assertType + // [82] call assertType // [96] phi from testBinaryOperator::@29 to assertType [phi:testBinaryOperator::@29->assertType] assertType_from___b29: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@29->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@29->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@29->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@29->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@29->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType jmp __b30 // testBinaryOperator::@30 __b30: // [83] idx#46 = ++ idx#109 -- vbuxx=_inc_vbuxx inx - // [84] call assertType + // [84] call assertType // Binary Operations between signed dword & other types // [96] phi from testBinaryOperator::@30 to assertType [phi:testBinaryOperator::@30->assertType] assertType_from___b30: // [96] phi idx#106 = idx#46 [phi:testBinaryOperator::@30->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@30->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@30->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@30->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@30->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [85] phi from testBinaryOperator::@30 to testBinaryOperator::@31 [phi:testBinaryOperator::@30->testBinaryOperator::@31] __b31_from___b30: jmp __b31 // testBinaryOperator::@31 __b31: - // [86] call assertType + // [86] call assertType // [96] phi from testBinaryOperator::@31 to assertType [phi:testBinaryOperator::@31->assertType] assertType_from___b31: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@31->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@31->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@31->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@31->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@31->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [87] phi from testBinaryOperator::@31 to testBinaryOperator::@32 [phi:testBinaryOperator::@31->testBinaryOperator::@32] __b32_from___b31: jmp __b32 // testBinaryOperator::@32 __b32: - // [88] call assertType + // [88] call assertType // [96] phi from testBinaryOperator::@32 to assertType [phi:testBinaryOperator::@32->assertType] assertType_from___b32: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@32->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@32->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@32->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@32->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@32->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [89] phi from testBinaryOperator::@32 to testBinaryOperator::@33 [phi:testBinaryOperator::@32->testBinaryOperator::@33] __b33_from___b32: jmp __b33 // testBinaryOperator::@33 __b33: - // [90] call assertType + // [90] call assertType // [96] phi from testBinaryOperator::@33 to assertType [phi:testBinaryOperator::@33->assertType] assertType_from___b33: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@33->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@33->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@33->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@33->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@33->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [91] phi from testBinaryOperator::@33 to testBinaryOperator::@34 [phi:testBinaryOperator::@33->testBinaryOperator::@34] __b34_from___b33: jmp __b34 // testBinaryOperator::@34 __b34: - // [92] call assertType + // [92] call assertType // [96] phi from testBinaryOperator::@34 to assertType [phi:testBinaryOperator::@34->assertType] assertType_from___b34: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@34->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@34->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@34->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@34->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@34->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [93] phi from testBinaryOperator::@34 to testBinaryOperator::@35 [phi:testBinaryOperator::@34->testBinaryOperator::@35] __b35_from___b34: jmp __b35 // testBinaryOperator::@35 __b35: - // [94] call assertType + // [94] call assertType // [96] phi from testBinaryOperator::@35 to assertType [phi:testBinaryOperator::@35->assertType] assertType_from___b35: // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@35->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@35->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@35->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@35->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@35->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType jmp __breturn // testBinaryOperator::@return @@ -2345,7 +2345,7 @@ testBinaryOperator: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(Y) t1, byte zp(4) t2) +// void assertType(__register(Y) char t1, __zp(4) char t2) assertType: { .label t2 = 4 // [97] if(assertType::t1#42==assertType::t2#42) goto assertType::@1 -- vbuyy_eq_vbuz1_then_la1 @@ -2431,48 +2431,48 @@ Removing instruction jmp __b3 Removing instruction jmp __b2 Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_SIGNED_BYTE with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_SIGNED_BYTE with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_SIGNED_CHAR with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_SIGNED_CHAR with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY Removing instruction __b3_from___b1: Removing instruction testUnaryOperator_from___b3: Removing instruction __b4_from___b3: @@ -2608,32 +2608,32 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const COLS = (byte*) 55296 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*) 1024 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#42 reg byte y 50.5 -byte assertType::t2 -byte assertType::t2#42 t2 zp[1]:4 101.0 -byte idx -byte idx#106 reg byte x 166.60000000000005 -byte idx#109 reg byte x 6.973684210526315 -byte idx#18 reg byte x 22.0 -byte idx#25 reg byte x 22.0 -byte idx#39 reg byte x 22.0 -byte idx#46 reg byte x 22.0 +__constant char * const COLS = (char *) 55296 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#42 // reg byte y 50.5 +char assertType::t2 +char assertType::t2#42 // t2 zp[1]:4 101.0 +char idx +char idx#106 // reg byte x 166.60000000000005 +char idx#109 // reg byte x 6.973684210526315 +char idx#18 // reg byte x 22.0 +char idx#25 // reg byte x 22.0 +char idx#39 // reg byte x 22.0 +char idx#46 // reg byte x 22.0 void main() -byte* main::s -byte* main::s#1 s zp[2]:2 22.0 -byte* main::s#2 s zp[2]:2 14.666666666666666 +char *main::s +char *main::s#1 // s zp[2]:2 22.0 +char *main::s#2 // s zp[2]:2 14.666666666666666 void testBinaryOperator() void testUnaryOperator() @@ -2660,12 +2660,12 @@ Score: 1159 // Global Constants & labels .const RED = 2 .const GREEN = 5 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .label SCREEN = $400 .label COLS = $d800 .segment Code @@ -2693,13 +2693,13 @@ main: { // [3] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // main::@3 // testUnaryOperator() - // [4] call testUnaryOperator + // [4] call testUnaryOperator // [10] phi from main::@3 to testUnaryOperator [phi:main::@3->testUnaryOperator] jsr testUnaryOperator // [5] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // testBinaryOperator() - // [6] call testBinaryOperator + // [6] call testBinaryOperator // [23] phi from main::@4 to testBinaryOperator [phi:main::@4->testBinaryOperator] jsr testBinaryOperator // main::@return @@ -2726,75 +2726,75 @@ main: { // testUnaryOperator testUnaryOperator: { // assertType(typeid(-12ub), typeid(unsigned byte)) - // [11] call assertType + // [11] call assertType // Unary Operations // [96] phi from testUnaryOperator to assertType [phi:testUnaryOperator->assertType] // [96] phi idx#106 = 0 [phi:testUnaryOperator->assertType#0] -- vbuxx=vbuc1 ldx #0 - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testUnaryOperator->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testUnaryOperator->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testUnaryOperator->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testUnaryOperator->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [12] phi from testUnaryOperator to testUnaryOperator::@1 [phi:testUnaryOperator->testUnaryOperator::@1] // testUnaryOperator::@1 // assertType(typeid(-12sb), typeid(signed byte)) - // [13] call assertType + // [13] call assertType // [96] phi from testUnaryOperator::@1 to assertType [phi:testUnaryOperator::@1->assertType] // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@1->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_BYTE [phi:testUnaryOperator::@1->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_BYTE + // [96] phi assertType::t2#42 = TYPEID_SIGNED_CHAR [phi:testUnaryOperator::@1->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_BYTE [phi:testUnaryOperator::@1->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_SIGNED_CHAR [phi:testUnaryOperator::@1->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [14] phi from testUnaryOperator::@1 to testUnaryOperator::@2 [phi:testUnaryOperator::@1->testUnaryOperator::@2] // testUnaryOperator::@2 // assertType(typeid(-12uw), typeid(unsigned word)) - // [15] call assertType + // [15] call assertType // [96] phi from testUnaryOperator::@2 to assertType [phi:testUnaryOperator::@2->assertType] // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@2->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testUnaryOperator::@2->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testUnaryOperator::@2->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testUnaryOperator::@2->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testUnaryOperator::@2->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [16] phi from testUnaryOperator::@2 to testUnaryOperator::@3 [phi:testUnaryOperator::@2->testUnaryOperator::@3] // testUnaryOperator::@3 // assertType(typeid(-12sw), typeid(signed word)) - // [17] call assertType + // [17] call assertType // [96] phi from testUnaryOperator::@3 to assertType [phi:testUnaryOperator::@3->assertType] // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@3->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testUnaryOperator::@3->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testUnaryOperator::@3->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testUnaryOperator::@3->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testUnaryOperator::@3->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [18] phi from testUnaryOperator::@3 to testUnaryOperator::@4 [phi:testUnaryOperator::@3->testUnaryOperator::@4] // testUnaryOperator::@4 // assertType(typeid(-12ud), typeid(unsigned dword)) - // [19] call assertType + // [19] call assertType // [96] phi from testUnaryOperator::@4 to assertType [phi:testUnaryOperator::@4->assertType] // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@4->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testUnaryOperator::@4->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testUnaryOperator::@4->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testUnaryOperator::@4->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testUnaryOperator::@4->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [20] phi from testUnaryOperator::@4 to testUnaryOperator::@5 [phi:testUnaryOperator::@4->testUnaryOperator::@5] // testUnaryOperator::@5 // assertType(typeid(-12sd), typeid(signed dword)) - // [21] call assertType + // [21] call assertType // [96] phi from testUnaryOperator::@5 to assertType [phi:testUnaryOperator::@5->assertType] // [96] phi idx#106 = idx#109 [phi:testUnaryOperator::@5->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testUnaryOperator::@5->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testUnaryOperator::@5->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testUnaryOperator::@5->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testUnaryOperator::@5->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // testUnaryOperator::@return @@ -2805,75 +2805,75 @@ testUnaryOperator: { // testBinaryOperator testBinaryOperator: { // assertType(typeid(12ub+12ub), typeid(unsigned byte)) - // [24] call assertType + // [24] call assertType // Binary Operations between unsigned byte & other types // [96] phi from testBinaryOperator to assertType [phi:testBinaryOperator->assertType] // [96] phi idx#106 = $28 [phi:testBinaryOperator->assertType#0] -- vbuxx=vbuc1 ldx #$28 - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testBinaryOperator->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testBinaryOperator->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testBinaryOperator->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testBinaryOperator->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [25] phi from testBinaryOperator to testBinaryOperator::@1 [phi:testBinaryOperator->testBinaryOperator::@1] // testBinaryOperator::@1 // assertType(typeid(12ub+12sb), typeid(unsigned byte)) - // [26] call assertType + // [26] call assertType // [96] phi from testBinaryOperator::@1 to assertType [phi:testBinaryOperator::@1->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@1->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testBinaryOperator::@1->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testBinaryOperator::@1->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testBinaryOperator::@1->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testBinaryOperator::@1->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [27] phi from testBinaryOperator::@1 to testBinaryOperator::@2 [phi:testBinaryOperator::@1->testBinaryOperator::@2] // testBinaryOperator::@2 // assertType(typeid(12ub+12uw), typeid(unsigned word)) - // [28] call assertType + // [28] call assertType // [96] phi from testBinaryOperator::@2 to assertType [phi:testBinaryOperator::@2->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@2->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@2->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@2->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@2->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@2->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [29] phi from testBinaryOperator::@2 to testBinaryOperator::@3 [phi:testBinaryOperator::@2->testBinaryOperator::@3] // testBinaryOperator::@3 // assertType(typeid(12ub+12sw), typeid(signed word)) - // [30] call assertType + // [30] call assertType // [96] phi from testBinaryOperator::@3 to assertType [phi:testBinaryOperator::@3->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@3->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@3->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@3->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@3->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@3->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [31] phi from testBinaryOperator::@3 to testBinaryOperator::@4 [phi:testBinaryOperator::@3->testBinaryOperator::@4] // testBinaryOperator::@4 // assertType(typeid(12ub+12ud), typeid(unsigned dword)) - // [32] call assertType + // [32] call assertType // [96] phi from testBinaryOperator::@4 to assertType [phi:testBinaryOperator::@4->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@4->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@4->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@4->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@4->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@4->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [33] phi from testBinaryOperator::@4 to testBinaryOperator::@5 [phi:testBinaryOperator::@4->testBinaryOperator::@5] // testBinaryOperator::@5 // assertType(typeid(12ub+12sd), typeid(signed dword)) - // [34] call assertType + // [34] call assertType // [96] phi from testBinaryOperator::@5 to assertType [phi:testBinaryOperator::@5->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@5->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@5->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@5->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@5->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@5->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // testBinaryOperator::@6 @@ -2881,74 +2881,74 @@ testBinaryOperator: { // [35] idx#18 = ++ idx#109 -- vbuxx=_inc_vbuxx inx // assertType(typeid(12sb+12ub), typeid(unsigned byte)) - // [36] call assertType + // [36] call assertType // Binary Operations between signed byte & other types // [96] phi from testBinaryOperator::@6 to assertType [phi:testBinaryOperator::@6->assertType] // [96] phi idx#106 = idx#18 [phi:testBinaryOperator::@6->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_BYTE [phi:testBinaryOperator::@6->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [96] phi assertType::t2#42 = TYPEID_CHAR [phi:testBinaryOperator::@6->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_BYTE [phi:testBinaryOperator::@6->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_CHAR [phi:testBinaryOperator::@6->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [37] phi from testBinaryOperator::@6 to testBinaryOperator::@7 [phi:testBinaryOperator::@6->testBinaryOperator::@7] // testBinaryOperator::@7 // assertType(typeid(12sb+12sb), typeid(signed byte)) - // [38] call assertType + // [38] call assertType // [96] phi from testBinaryOperator::@7 to assertType [phi:testBinaryOperator::@7->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@7->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_BYTE [phi:testBinaryOperator::@7->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_BYTE + // [96] phi assertType::t2#42 = TYPEID_SIGNED_CHAR [phi:testBinaryOperator::@7->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_BYTE [phi:testBinaryOperator::@7->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_SIGNED_CHAR [phi:testBinaryOperator::@7->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [39] phi from testBinaryOperator::@7 to testBinaryOperator::@8 [phi:testBinaryOperator::@7->testBinaryOperator::@8] // testBinaryOperator::@8 // assertType(typeid(12sb+12uw), typeid(unsigned word)) - // [40] call assertType + // [40] call assertType // [96] phi from testBinaryOperator::@8 to assertType [phi:testBinaryOperator::@8->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@8->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@8->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@8->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@8->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@8->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [41] phi from testBinaryOperator::@8 to testBinaryOperator::@9 [phi:testBinaryOperator::@8->testBinaryOperator::@9] // testBinaryOperator::@9 // assertType(typeid(12sb+12sw), typeid(signed word)) - // [42] call assertType + // [42] call assertType // [96] phi from testBinaryOperator::@9 to assertType [phi:testBinaryOperator::@9->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@9->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@9->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@9->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@9->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@9->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [43] phi from testBinaryOperator::@9 to testBinaryOperator::@10 [phi:testBinaryOperator::@9->testBinaryOperator::@10] // testBinaryOperator::@10 // assertType(typeid(12sb+12ud), typeid(unsigned dword)) - // [44] call assertType + // [44] call assertType // [96] phi from testBinaryOperator::@10 to assertType [phi:testBinaryOperator::@10->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@10->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@10->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@10->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@10->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@10->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [45] phi from testBinaryOperator::@10 to testBinaryOperator::@11 [phi:testBinaryOperator::@10->testBinaryOperator::@11] // testBinaryOperator::@11 // assertType(typeid(12sb+12sd), typeid(signed dword)) - // [46] call assertType + // [46] call assertType // [96] phi from testBinaryOperator::@11 to assertType [phi:testBinaryOperator::@11->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@11->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@11->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@11->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@11->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@11->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // testBinaryOperator::@12 @@ -2956,148 +2956,148 @@ testBinaryOperator: { // [47] idx#25 = ++ idx#109 -- vbuxx=_inc_vbuxx inx // assertType(typeid(12uw+12ub), typeid(unsigned word)) - // [48] call assertType + // [48] call assertType // Binary Operations between unsigned word & other types // [96] phi from testBinaryOperator::@12 to assertType [phi:testBinaryOperator::@12->assertType] // [96] phi idx#106 = idx#25 [phi:testBinaryOperator::@12->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@12->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@12->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@12->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@12->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [49] phi from testBinaryOperator::@12 to testBinaryOperator::@13 [phi:testBinaryOperator::@12->testBinaryOperator::@13] // testBinaryOperator::@13 // assertType(typeid(12uw+12sb), typeid(unsigned word)) - // [50] call assertType + // [50] call assertType // [96] phi from testBinaryOperator::@13 to assertType [phi:testBinaryOperator::@13->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@13->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@13->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@13->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@13->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@13->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [51] phi from testBinaryOperator::@13 to testBinaryOperator::@14 [phi:testBinaryOperator::@13->testBinaryOperator::@14] // testBinaryOperator::@14 // assertType(typeid(12uw+12uw), typeid(unsigned word)) - // [52] call assertType + // [52] call assertType // [96] phi from testBinaryOperator::@14 to assertType [phi:testBinaryOperator::@14->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@14->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@14->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@14->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@14->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@14->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [53] phi from testBinaryOperator::@14 to testBinaryOperator::@15 [phi:testBinaryOperator::@14->testBinaryOperator::@15] // testBinaryOperator::@15 // assertType(typeid(12uw+12sw), typeid(unsigned word)) - // [54] call assertType + // [54] call assertType // [96] phi from testBinaryOperator::@15 to assertType [phi:testBinaryOperator::@15->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@15->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@15->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@15->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@15->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@15->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [55] phi from testBinaryOperator::@15 to testBinaryOperator::@16 [phi:testBinaryOperator::@15->testBinaryOperator::@16] // testBinaryOperator::@16 // assertType(typeid(12uw+12ud), typeid(unsigned dword)) - // [56] call assertType + // [56] call assertType // [96] phi from testBinaryOperator::@16 to assertType [phi:testBinaryOperator::@16->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@16->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@16->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@16->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@16->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@16->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [57] phi from testBinaryOperator::@16 to testBinaryOperator::@17 [phi:testBinaryOperator::@16->testBinaryOperator::@17] // testBinaryOperator::@17 // assertType(typeid(12uw+12sd), typeid(signed dword)) - // [58] call assertType + // [58] call assertType // [96] phi from testBinaryOperator::@17 to assertType [phi:testBinaryOperator::@17->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@17->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@17->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@17->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@17->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@17->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [59] phi from testBinaryOperator::@17 to testBinaryOperator::@18 [phi:testBinaryOperator::@17->testBinaryOperator::@18] // testBinaryOperator::@18 // assertType(typeid(12sw+12ub), typeid(signed word)) - // [60] call assertType + // [60] call assertType // Binary Operations between signed word & other types // [96] phi from testBinaryOperator::@18 to assertType [phi:testBinaryOperator::@18->assertType] // [96] phi idx#106 = $50 [phi:testBinaryOperator::@18->assertType#0] -- vbuxx=vbuc1 ldx #$50 - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@18->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@18->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@18->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@18->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [61] phi from testBinaryOperator::@18 to testBinaryOperator::@19 [phi:testBinaryOperator::@18->testBinaryOperator::@19] // testBinaryOperator::@19 // assertType(typeid(12sw+12sb), typeid(signed word)) - // [62] call assertType + // [62] call assertType // [96] phi from testBinaryOperator::@19 to assertType [phi:testBinaryOperator::@19->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@19->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@19->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@19->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@19->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@19->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [63] phi from testBinaryOperator::@19 to testBinaryOperator::@20 [phi:testBinaryOperator::@19->testBinaryOperator::@20] // testBinaryOperator::@20 // assertType(typeid(12sw+12uw), typeid(unsigned word)) - // [64] call assertType + // [64] call assertType // [96] phi from testBinaryOperator::@20 to assertType [phi:testBinaryOperator::@20->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@20->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_WORD [phi:testBinaryOperator::@20->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@20->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_WORD [phi:testBinaryOperator::@20->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_INT [phi:testBinaryOperator::@20->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [65] phi from testBinaryOperator::@20 to testBinaryOperator::@21 [phi:testBinaryOperator::@20->testBinaryOperator::@21] // testBinaryOperator::@21 // assertType(typeid(12sw+12sw), typeid(signed word)) - // [66] call assertType + // [66] call assertType // [96] phi from testBinaryOperator::@21 to assertType [phi:testBinaryOperator::@21->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@21->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@21->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [96] phi assertType::t2#42 = TYPEID_INT [phi:testBinaryOperator::@21->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_WORD [phi:testBinaryOperator::@21->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_INT [phi:testBinaryOperator::@21->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [67] phi from testBinaryOperator::@21 to testBinaryOperator::@22 [phi:testBinaryOperator::@21->testBinaryOperator::@22] // testBinaryOperator::@22 // assertType(typeid(12sw+12ud), typeid(unsigned dword)) - // [68] call assertType + // [68] call assertType // [96] phi from testBinaryOperator::@22 to assertType [phi:testBinaryOperator::@22->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@22->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@22->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@22->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@22->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@22->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [69] phi from testBinaryOperator::@22 to testBinaryOperator::@23 [phi:testBinaryOperator::@22->testBinaryOperator::@23] // testBinaryOperator::@23 // assertType(typeid(12sw+12sd), typeid(signed dword)) - // [70] call assertType + // [70] call assertType // [96] phi from testBinaryOperator::@23 to assertType [phi:testBinaryOperator::@23->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@23->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@23->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@23->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@23->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@23->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // testBinaryOperator::@24 @@ -3105,74 +3105,74 @@ testBinaryOperator: { // [71] idx#39 = ++ idx#109 -- vbuxx=_inc_vbuxx inx // assertType(typeid(12ud+12ub), typeid(unsigned dword)) - // [72] call assertType + // [72] call assertType // Binary Operations between unsigned dword & other types // [96] phi from testBinaryOperator::@24 to assertType [phi:testBinaryOperator::@24->assertType] // [96] phi idx#106 = idx#39 [phi:testBinaryOperator::@24->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@24->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@24->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@24->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@24->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [73] phi from testBinaryOperator::@24 to testBinaryOperator::@25 [phi:testBinaryOperator::@24->testBinaryOperator::@25] // testBinaryOperator::@25 // assertType(typeid(12ud+12sb), typeid(unsigned dword)) - // [74] call assertType + // [74] call assertType // [96] phi from testBinaryOperator::@25 to assertType [phi:testBinaryOperator::@25->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@25->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@25->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@25->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@25->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@25->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [75] phi from testBinaryOperator::@25 to testBinaryOperator::@26 [phi:testBinaryOperator::@25->testBinaryOperator::@26] // testBinaryOperator::@26 // assertType(typeid(12ud+12uw), typeid(unsigned dword)) - // [76] call assertType + // [76] call assertType // [96] phi from testBinaryOperator::@26 to assertType [phi:testBinaryOperator::@26->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@26->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@26->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@26->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@26->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@26->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [77] phi from testBinaryOperator::@26 to testBinaryOperator::@27 [phi:testBinaryOperator::@26->testBinaryOperator::@27] // testBinaryOperator::@27 // assertType(typeid(12ud+12sw), typeid(unsigned dword)) - // [78] call assertType + // [78] call assertType // [96] phi from testBinaryOperator::@27 to assertType [phi:testBinaryOperator::@27->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@27->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@27->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@27->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@27->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@27->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [79] phi from testBinaryOperator::@27 to testBinaryOperator::@28 [phi:testBinaryOperator::@27->testBinaryOperator::@28] // testBinaryOperator::@28 // assertType(typeid(12ud+12ud), typeid(unsigned dword)) - // [80] call assertType + // [80] call assertType // [96] phi from testBinaryOperator::@28 to assertType [phi:testBinaryOperator::@28->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@28->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@28->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@28->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@28->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@28->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [81] phi from testBinaryOperator::@28 to testBinaryOperator::@29 [phi:testBinaryOperator::@28->testBinaryOperator::@29] // testBinaryOperator::@29 // assertType(typeid(12ud+12sd), typeid(unsigned dword)) - // [82] call assertType + // [82] call assertType // [96] phi from testBinaryOperator::@29 to assertType [phi:testBinaryOperator::@29->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@29->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@29->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@29->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@29->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@29->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // testBinaryOperator::@30 @@ -3180,74 +3180,74 @@ testBinaryOperator: { // [83] idx#46 = ++ idx#109 -- vbuxx=_inc_vbuxx inx // assertType(typeid(12sd+12ub), typeid(signed dword)) - // [84] call assertType + // [84] call assertType // Binary Operations between signed dword & other types // [96] phi from testBinaryOperator::@30 to assertType [phi:testBinaryOperator::@30->assertType] // [96] phi idx#106 = idx#46 [phi:testBinaryOperator::@30->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@30->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@30->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@30->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@30->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [85] phi from testBinaryOperator::@30 to testBinaryOperator::@31 [phi:testBinaryOperator::@30->testBinaryOperator::@31] // testBinaryOperator::@31 // assertType(typeid(12sd+12sb), typeid(signed dword)) - // [86] call assertType + // [86] call assertType // [96] phi from testBinaryOperator::@31 to assertType [phi:testBinaryOperator::@31->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@31->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@31->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@31->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@31->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@31->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [87] phi from testBinaryOperator::@31 to testBinaryOperator::@32 [phi:testBinaryOperator::@31->testBinaryOperator::@32] // testBinaryOperator::@32 // assertType(typeid(12sd+12uw), typeid(signed dword)) - // [88] call assertType + // [88] call assertType // [96] phi from testBinaryOperator::@32 to assertType [phi:testBinaryOperator::@32->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@32->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@32->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@32->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@32->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@32->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [89] phi from testBinaryOperator::@32 to testBinaryOperator::@33 [phi:testBinaryOperator::@32->testBinaryOperator::@33] // testBinaryOperator::@33 // assertType(typeid(12sd+12sw), typeid(signed dword)) - // [90] call assertType + // [90] call assertType // [96] phi from testBinaryOperator::@33 to assertType [phi:testBinaryOperator::@33->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@33->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@33->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@33->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@33->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@33->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [91] phi from testBinaryOperator::@33 to testBinaryOperator::@34 [phi:testBinaryOperator::@33->testBinaryOperator::@34] // testBinaryOperator::@34 // assertType(typeid(12sd+12ud), typeid(unsigned dword)) - // [92] call assertType + // [92] call assertType // [96] phi from testBinaryOperator::@34 to assertType [phi:testBinaryOperator::@34->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@34->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_DWORD [phi:testBinaryOperator::@34->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [96] phi assertType::t2#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@34->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_DWORD [phi:testBinaryOperator::@34->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_UNSIGNED_LONG [phi:testBinaryOperator::@34->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [93] phi from testBinaryOperator::@34 to testBinaryOperator::@35 [phi:testBinaryOperator::@34->testBinaryOperator::@35] // testBinaryOperator::@35 // assertType(typeid(12sd+12sd), typeid(signed dword)) - // [94] call assertType + // [94] call assertType // [96] phi from testBinaryOperator::@35 to assertType [phi:testBinaryOperator::@35->assertType] // [96] phi idx#106 = idx#109 [phi:testBinaryOperator::@35->assertType#0] -- register_copy - // [96] phi assertType::t2#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@35->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [96] phi assertType::t2#42 = TYPEID_LONG [phi:testBinaryOperator::@35->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [96] phi assertType::t1#42 = TYPEID_SIGNED_DWORD [phi:testBinaryOperator::@35->assertType#2] -- vbuyy=vbuc1 + // [96] phi assertType::t1#42 = TYPEID_LONG [phi:testBinaryOperator::@35->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // testBinaryOperator::@return @@ -3259,7 +3259,7 @@ testBinaryOperator: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(Y) t1, byte zp(4) t2) +// void assertType(__register(Y) char t1, __zp(4) char t2) assertType: { .label t2 = 4 // if(t1==t2) diff --git a/src/test/ref/int-conversion.sym b/src/test/ref/int-conversion.sym index b3a2cc6cf..7f9fd69dc 100644 --- a/src/test/ref/int-conversion.sym +++ b/src/test/ref/int-conversion.sym @@ -1,29 +1,29 @@ -constant byte* const COLS = (byte*) 55296 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*) 1024 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#42 reg byte y 50.5 -byte assertType::t2 -byte assertType::t2#42 t2 zp[1]:4 101.0 -byte idx -byte idx#106 reg byte x 166.60000000000005 -byte idx#109 reg byte x 6.973684210526315 -byte idx#18 reg byte x 22.0 -byte idx#25 reg byte x 22.0 -byte idx#39 reg byte x 22.0 -byte idx#46 reg byte x 22.0 +__constant char * const COLS = (char *) 55296 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#42 // reg byte y 50.5 +char assertType::t2 +char assertType::t2#42 // t2 zp[1]:4 101.0 +char idx +char idx#106 // reg byte x 166.60000000000005 +char idx#109 // reg byte x 6.973684210526315 +char idx#18 // reg byte x 22.0 +char idx#25 // reg byte x 22.0 +char idx#39 // reg byte x 22.0 +char idx#46 // reg byte x 22.0 void main() -byte* main::s -byte* main::s#1 s zp[2]:2 22.0 -byte* main::s#2 s zp[2]:2 14.666666666666666 +char *main::s +char *main::s#1 // s zp[2]:2 22.0 +char *main::s#2 // s zp[2]:2 14.666666666666666 void testBinaryOperator() void testUnaryOperator() diff --git a/src/test/ref/int-literals.asm b/src/test/ref/int-literals.asm index dbb4c06d6..24d20fe2d 100644 --- a/src/test/ref/int-literals.asm +++ b/src/test/ref/int-literals.asm @@ -9,12 +9,12 @@ :BasicUpstart(main) .const RED = 2 .const GREEN = 5 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .label SCREEN = $400 .label COLS = $d800 .label idx = 4 @@ -56,68 +56,68 @@ testSimpleTypes: { // Simple types lda #0 sta.z idx - ldy #TYPEID_BYTE - ldx #TYPEID_BYTE + ldy #TYPEID_CHAR + ldx #TYPEID_CHAR jsr assertType // assertType(typeid(12uc), typeid(unsigned byte)) - ldy #TYPEID_BYTE - ldx #TYPEID_BYTE + ldy #TYPEID_CHAR + ldx #TYPEID_CHAR jsr assertType // assertType(typeid(12sb), typeid(signed byte)) - ldy #TYPEID_SIGNED_BYTE - ldx #TYPEID_SIGNED_BYTE + ldy #TYPEID_SIGNED_CHAR + ldx #TYPEID_SIGNED_CHAR jsr assertType // assertType(typeid(12sc), typeid(signed byte)) - ldy #TYPEID_SIGNED_BYTE - ldx #TYPEID_SIGNED_BYTE + ldy #TYPEID_SIGNED_CHAR + ldx #TYPEID_SIGNED_CHAR jsr assertType // assertType(typeid(12uw), typeid(unsigned word)) - ldy #TYPEID_WORD - ldx #TYPEID_WORD + ldy #TYPEID_UNSIGNED_INT + ldx #TYPEID_UNSIGNED_INT jsr assertType // assertType(typeid(12ui), typeid(unsigned word)) - ldy #TYPEID_WORD - ldx #TYPEID_WORD + ldy #TYPEID_UNSIGNED_INT + ldx #TYPEID_UNSIGNED_INT jsr assertType // assertType(typeid(12us), typeid(unsigned word)) - ldy #TYPEID_WORD - ldx #TYPEID_WORD + ldy #TYPEID_UNSIGNED_INT + ldx #TYPEID_UNSIGNED_INT jsr assertType // assertType(typeid(12sw), typeid(signed word)) - ldy #TYPEID_SIGNED_WORD - ldx #TYPEID_SIGNED_WORD + ldy #TYPEID_INT + ldx #TYPEID_INT jsr assertType // assertType(typeid(12si), typeid(signed word)) - ldy #TYPEID_SIGNED_WORD - ldx #TYPEID_SIGNED_WORD + ldy #TYPEID_INT + ldx #TYPEID_INT jsr assertType // assertType(typeid(12ss), typeid(signed word)) - ldy #TYPEID_SIGNED_WORD - ldx #TYPEID_SIGNED_WORD + ldy #TYPEID_INT + ldx #TYPEID_INT jsr assertType // assertType(typeid(12ud), typeid(unsigned dword)) - ldy #TYPEID_DWORD - ldx #TYPEID_DWORD + ldy #TYPEID_UNSIGNED_LONG + ldx #TYPEID_UNSIGNED_LONG jsr assertType // assertType(typeid(12ul), typeid(unsigned dword)) - ldy #TYPEID_DWORD - ldx #TYPEID_DWORD + ldy #TYPEID_UNSIGNED_LONG + ldx #TYPEID_UNSIGNED_LONG jsr assertType // assertType(typeid(12sd), typeid(signed dword)) - ldy #TYPEID_SIGNED_DWORD - ldx #TYPEID_SIGNED_DWORD + ldy #TYPEID_LONG + ldx #TYPEID_LONG jsr assertType // assertType(typeid(12sl), typeid(signed dword)) - ldy #TYPEID_SIGNED_DWORD - ldx #TYPEID_SIGNED_DWORD + ldy #TYPEID_LONG + ldx #TYPEID_LONG jsr assertType // assertType(typeid(12l), typeid(signed dword)) - ldy #TYPEID_SIGNED_DWORD - ldx #TYPEID_SIGNED_DWORD + ldy #TYPEID_LONG + ldx #TYPEID_LONG jsr assertType // assertType(typeid(12u), typeid(unsigned word)) - ldy #TYPEID_WORD - ldx #TYPEID_WORD + ldy #TYPEID_UNSIGNED_INT + ldx #TYPEID_UNSIGNED_INT jsr assertType // } rts @@ -125,7 +125,7 @@ testSimpleTypes: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(X) t1, byte register(Y) t2) +// void assertType(__register(X) char t1, __register(Y) char t2) assertType: { // if(t1==t2) sty.z $ff diff --git a/src/test/ref/int-literals.cfg b/src/test/ref/int-literals.cfg index 716310dcb..30af8372f 100644 --- a/src/test/ref/int-literals.cfg +++ b/src/test/ref/int-literals.cfg @@ -9,7 +9,7 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [3] phi() - [4] call testSimpleTypes + [4] call testSimpleTypes to:main::@return main::@return: scope:[main] from main::@3 [5] return @@ -22,77 +22,77 @@ main::@2: scope:[main] from main::@1 void testSimpleTypes() testSimpleTypes: scope:[testSimpleTypes] from main::@3 [8] phi() - [9] call assertType + [9] call assertType to:testSimpleTypes::@1 testSimpleTypes::@1: scope:[testSimpleTypes] from testSimpleTypes [10] phi() - [11] call assertType + [11] call assertType to:testSimpleTypes::@2 testSimpleTypes::@2: scope:[testSimpleTypes] from testSimpleTypes::@1 [12] phi() - [13] call assertType + [13] call assertType to:testSimpleTypes::@3 testSimpleTypes::@3: scope:[testSimpleTypes] from testSimpleTypes::@2 [14] phi() - [15] call assertType + [15] call assertType to:testSimpleTypes::@4 testSimpleTypes::@4: scope:[testSimpleTypes] from testSimpleTypes::@3 [16] phi() - [17] call assertType + [17] call assertType to:testSimpleTypes::@5 testSimpleTypes::@5: scope:[testSimpleTypes] from testSimpleTypes::@4 [18] phi() - [19] call assertType + [19] call assertType to:testSimpleTypes::@6 testSimpleTypes::@6: scope:[testSimpleTypes] from testSimpleTypes::@5 [20] phi() - [21] call assertType + [21] call assertType to:testSimpleTypes::@7 testSimpleTypes::@7: scope:[testSimpleTypes] from testSimpleTypes::@6 [22] phi() - [23] call assertType + [23] call assertType to:testSimpleTypes::@8 testSimpleTypes::@8: scope:[testSimpleTypes] from testSimpleTypes::@7 [24] phi() - [25] call assertType + [25] call assertType to:testSimpleTypes::@9 testSimpleTypes::@9: scope:[testSimpleTypes] from testSimpleTypes::@8 [26] phi() - [27] call assertType + [27] call assertType to:testSimpleTypes::@10 testSimpleTypes::@10: scope:[testSimpleTypes] from testSimpleTypes::@9 [28] phi() - [29] call assertType + [29] call assertType to:testSimpleTypes::@11 testSimpleTypes::@11: scope:[testSimpleTypes] from testSimpleTypes::@10 [30] phi() - [31] call assertType + [31] call assertType to:testSimpleTypes::@12 testSimpleTypes::@12: scope:[testSimpleTypes] from testSimpleTypes::@11 [32] phi() - [33] call assertType + [33] call assertType to:testSimpleTypes::@13 testSimpleTypes::@13: scope:[testSimpleTypes] from testSimpleTypes::@12 [34] phi() - [35] call assertType + [35] call assertType to:testSimpleTypes::@14 testSimpleTypes::@14: scope:[testSimpleTypes] from testSimpleTypes::@13 [36] phi() - [37] call assertType + [37] call assertType to:testSimpleTypes::@15 testSimpleTypes::@15: scope:[testSimpleTypes] from testSimpleTypes::@14 [38] phi() - [39] call assertType + [39] call assertType to:testSimpleTypes::@return testSimpleTypes::@return: scope:[testSimpleTypes] from testSimpleTypes::@15 [40] return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from testSimpleTypes testSimpleTypes::@1 testSimpleTypes::@10 testSimpleTypes::@11 testSimpleTypes::@12 testSimpleTypes::@13 testSimpleTypes::@14 testSimpleTypes::@15 testSimpleTypes::@2 testSimpleTypes::@3 testSimpleTypes::@4 testSimpleTypes::@5 testSimpleTypes::@6 testSimpleTypes::@7 testSimpleTypes::@8 testSimpleTypes::@9 [41] idx#44 = phi( testSimpleTypes/0, testSimpleTypes::@1/idx#20, testSimpleTypes::@10/idx#20, testSimpleTypes::@11/idx#20, testSimpleTypes::@12/idx#20, testSimpleTypes::@13/idx#20, testSimpleTypes::@14/idx#20, testSimpleTypes::@15/idx#20, testSimpleTypes::@2/idx#20, testSimpleTypes::@3/idx#20, testSimpleTypes::@4/idx#20, testSimpleTypes::@5/idx#20, testSimpleTypes::@6/idx#20, testSimpleTypes::@7/idx#20, testSimpleTypes::@8/idx#20, testSimpleTypes::@9/idx#20 ) - [41] assertType::t2#16 = phi( testSimpleTypes/TYPEID_BYTE, testSimpleTypes::@1/TYPEID_BYTE, testSimpleTypes::@10/TYPEID_DWORD, testSimpleTypes::@11/TYPEID_DWORD, testSimpleTypes::@12/TYPEID_SIGNED_DWORD, testSimpleTypes::@13/TYPEID_SIGNED_DWORD, testSimpleTypes::@14/TYPEID_SIGNED_DWORD, testSimpleTypes::@15/TYPEID_WORD, testSimpleTypes::@2/TYPEID_SIGNED_BYTE, testSimpleTypes::@3/TYPEID_SIGNED_BYTE, testSimpleTypes::@4/TYPEID_WORD, testSimpleTypes::@5/TYPEID_WORD, testSimpleTypes::@6/TYPEID_WORD, testSimpleTypes::@7/TYPEID_SIGNED_WORD, testSimpleTypes::@8/TYPEID_SIGNED_WORD, testSimpleTypes::@9/TYPEID_SIGNED_WORD ) - [41] assertType::t1#16 = phi( testSimpleTypes/TYPEID_BYTE, testSimpleTypes::@1/TYPEID_BYTE, testSimpleTypes::@10/TYPEID_DWORD, testSimpleTypes::@11/TYPEID_DWORD, testSimpleTypes::@12/TYPEID_SIGNED_DWORD, testSimpleTypes::@13/TYPEID_SIGNED_DWORD, testSimpleTypes::@14/TYPEID_SIGNED_DWORD, testSimpleTypes::@15/TYPEID_WORD, testSimpleTypes::@2/TYPEID_SIGNED_BYTE, testSimpleTypes::@3/TYPEID_SIGNED_BYTE, testSimpleTypes::@4/TYPEID_WORD, testSimpleTypes::@5/TYPEID_WORD, testSimpleTypes::@6/TYPEID_WORD, testSimpleTypes::@7/TYPEID_SIGNED_WORD, testSimpleTypes::@8/TYPEID_SIGNED_WORD, testSimpleTypes::@9/TYPEID_SIGNED_WORD ) + [41] assertType::t2#16 = phi( testSimpleTypes/TYPEID_CHAR, testSimpleTypes::@1/TYPEID_CHAR, testSimpleTypes::@10/TYPEID_UNSIGNED_LONG, testSimpleTypes::@11/TYPEID_UNSIGNED_LONG, testSimpleTypes::@12/TYPEID_LONG, testSimpleTypes::@13/TYPEID_LONG, testSimpleTypes::@14/TYPEID_LONG, testSimpleTypes::@15/TYPEID_UNSIGNED_INT, testSimpleTypes::@2/TYPEID_SIGNED_CHAR, testSimpleTypes::@3/TYPEID_SIGNED_CHAR, testSimpleTypes::@4/TYPEID_UNSIGNED_INT, testSimpleTypes::@5/TYPEID_UNSIGNED_INT, testSimpleTypes::@6/TYPEID_UNSIGNED_INT, testSimpleTypes::@7/TYPEID_INT, testSimpleTypes::@8/TYPEID_INT, testSimpleTypes::@9/TYPEID_INT ) + [41] assertType::t1#16 = phi( testSimpleTypes/TYPEID_CHAR, testSimpleTypes::@1/TYPEID_CHAR, testSimpleTypes::@10/TYPEID_UNSIGNED_LONG, testSimpleTypes::@11/TYPEID_UNSIGNED_LONG, testSimpleTypes::@12/TYPEID_LONG, testSimpleTypes::@13/TYPEID_LONG, testSimpleTypes::@14/TYPEID_LONG, testSimpleTypes::@15/TYPEID_UNSIGNED_INT, testSimpleTypes::@2/TYPEID_SIGNED_CHAR, testSimpleTypes::@3/TYPEID_SIGNED_CHAR, testSimpleTypes::@4/TYPEID_UNSIGNED_INT, testSimpleTypes::@5/TYPEID_UNSIGNED_INT, testSimpleTypes::@6/TYPEID_UNSIGNED_INT, testSimpleTypes::@7/TYPEID_INT, testSimpleTypes::@8/TYPEID_INT, testSimpleTypes::@9/TYPEID_INT ) [42] if(assertType::t1#16==assertType::t2#16) goto assertType::@1 to:assertType::@3 assertType::@3: scope:[assertType] from assertType diff --git a/src/test/ref/int-literals.log b/src/test/ref/int-literals.log index 2a36b7f0a..62aaacb3f 100644 --- a/src/test/ref/int-literals.log +++ b/src/test/ref/int-literals.log @@ -14,7 +14,7 @@ Resolving typeid() testSimpleTypes::$24 = typeid $c Resolving typeid() testSimpleTypes::$26 = typeid $c Resolving typeid() testSimpleTypes::$28 = typeid $c Resolving typeid() testSimpleTypes::$30 = typeid $c -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -37,7 +37,7 @@ main::@2: scope:[main] from main::@1 to:main::@1 main::@3: scope:[main] from main::@1 idx#50 = phi( main::@1/idx#53 ) - call testSimpleTypes + call testSimpleTypes to:main::@4 main::@4: scope:[main] from main::@3 idx#25 = phi( main::@3/idx#19 ) @@ -52,130 +52,130 @@ main::@return: scope:[main] from main::@4 void testSimpleTypes() testSimpleTypes: scope:[testSimpleTypes] from main::@3 idx#2 = 0 - testSimpleTypes::$0 = TYPEID_BYTE + testSimpleTypes::$0 = TYPEID_CHAR assertType::t1#0 = testSimpleTypes::$0 - assertType::t2#0 = TYPEID_BYTE - call assertType + assertType::t2#0 = TYPEID_CHAR + call assertType to:testSimpleTypes::@1 testSimpleTypes::@1: scope:[testSimpleTypes] from testSimpleTypes idx#27 = phi( testSimpleTypes/idx#21 ) idx#3 = idx#27 - testSimpleTypes::$2 = TYPEID_BYTE + testSimpleTypes::$2 = TYPEID_CHAR assertType::t1#1 = testSimpleTypes::$2 - assertType::t2#1 = TYPEID_BYTE - call assertType + assertType::t2#1 = TYPEID_CHAR + call assertType to:testSimpleTypes::@2 testSimpleTypes::@2: scope:[testSimpleTypes] from testSimpleTypes::@1 idx#28 = phi( testSimpleTypes::@1/idx#21 ) idx#4 = idx#28 - testSimpleTypes::$4 = TYPEID_SIGNED_BYTE + testSimpleTypes::$4 = TYPEID_SIGNED_CHAR assertType::t1#2 = testSimpleTypes::$4 - assertType::t2#2 = TYPEID_SIGNED_BYTE - call assertType + assertType::t2#2 = TYPEID_SIGNED_CHAR + call assertType to:testSimpleTypes::@3 testSimpleTypes::@3: scope:[testSimpleTypes] from testSimpleTypes::@2 idx#29 = phi( testSimpleTypes::@2/idx#21 ) idx#5 = idx#29 - testSimpleTypes::$6 = TYPEID_SIGNED_BYTE + testSimpleTypes::$6 = TYPEID_SIGNED_CHAR assertType::t1#3 = testSimpleTypes::$6 - assertType::t2#3 = TYPEID_SIGNED_BYTE - call assertType + assertType::t2#3 = TYPEID_SIGNED_CHAR + call assertType to:testSimpleTypes::@4 testSimpleTypes::@4: scope:[testSimpleTypes] from testSimpleTypes::@3 idx#30 = phi( testSimpleTypes::@3/idx#21 ) idx#6 = idx#30 - testSimpleTypes::$8 = TYPEID_WORD + testSimpleTypes::$8 = TYPEID_UNSIGNED_INT assertType::t1#4 = testSimpleTypes::$8 - assertType::t2#4 = TYPEID_WORD - call assertType + assertType::t2#4 = TYPEID_UNSIGNED_INT + call assertType to:testSimpleTypes::@5 testSimpleTypes::@5: scope:[testSimpleTypes] from testSimpleTypes::@4 idx#31 = phi( testSimpleTypes::@4/idx#21 ) idx#7 = idx#31 - testSimpleTypes::$10 = TYPEID_WORD + testSimpleTypes::$10 = TYPEID_UNSIGNED_INT assertType::t1#5 = testSimpleTypes::$10 - assertType::t2#5 = TYPEID_WORD - call assertType + assertType::t2#5 = TYPEID_UNSIGNED_INT + call assertType to:testSimpleTypes::@6 testSimpleTypes::@6: scope:[testSimpleTypes] from testSimpleTypes::@5 idx#32 = phi( testSimpleTypes::@5/idx#21 ) idx#8 = idx#32 - testSimpleTypes::$12 = TYPEID_WORD + testSimpleTypes::$12 = TYPEID_UNSIGNED_INT assertType::t1#6 = testSimpleTypes::$12 - assertType::t2#6 = TYPEID_WORD - call assertType + assertType::t2#6 = TYPEID_UNSIGNED_INT + call assertType to:testSimpleTypes::@7 testSimpleTypes::@7: scope:[testSimpleTypes] from testSimpleTypes::@6 idx#33 = phi( testSimpleTypes::@6/idx#21 ) idx#9 = idx#33 - testSimpleTypes::$14 = TYPEID_SIGNED_WORD + testSimpleTypes::$14 = TYPEID_INT assertType::t1#7 = testSimpleTypes::$14 - assertType::t2#7 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#7 = TYPEID_INT + call assertType to:testSimpleTypes::@8 testSimpleTypes::@8: scope:[testSimpleTypes] from testSimpleTypes::@7 idx#34 = phi( testSimpleTypes::@7/idx#21 ) idx#10 = idx#34 - testSimpleTypes::$16 = TYPEID_SIGNED_WORD + testSimpleTypes::$16 = TYPEID_INT assertType::t1#8 = testSimpleTypes::$16 - assertType::t2#8 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#8 = TYPEID_INT + call assertType to:testSimpleTypes::@9 testSimpleTypes::@9: scope:[testSimpleTypes] from testSimpleTypes::@8 idx#35 = phi( testSimpleTypes::@8/idx#21 ) idx#11 = idx#35 - testSimpleTypes::$18 = TYPEID_SIGNED_WORD + testSimpleTypes::$18 = TYPEID_INT assertType::t1#9 = testSimpleTypes::$18 - assertType::t2#9 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#9 = TYPEID_INT + call assertType to:testSimpleTypes::@10 testSimpleTypes::@10: scope:[testSimpleTypes] from testSimpleTypes::@9 idx#36 = phi( testSimpleTypes::@9/idx#21 ) idx#12 = idx#36 - testSimpleTypes::$20 = TYPEID_DWORD + testSimpleTypes::$20 = TYPEID_UNSIGNED_LONG assertType::t1#10 = testSimpleTypes::$20 - assertType::t2#10 = TYPEID_DWORD - call assertType + assertType::t2#10 = TYPEID_UNSIGNED_LONG + call assertType to:testSimpleTypes::@11 testSimpleTypes::@11: scope:[testSimpleTypes] from testSimpleTypes::@10 idx#37 = phi( testSimpleTypes::@10/idx#21 ) idx#13 = idx#37 - testSimpleTypes::$22 = TYPEID_DWORD + testSimpleTypes::$22 = TYPEID_UNSIGNED_LONG assertType::t1#11 = testSimpleTypes::$22 - assertType::t2#11 = TYPEID_DWORD - call assertType + assertType::t2#11 = TYPEID_UNSIGNED_LONG + call assertType to:testSimpleTypes::@12 testSimpleTypes::@12: scope:[testSimpleTypes] from testSimpleTypes::@11 idx#38 = phi( testSimpleTypes::@11/idx#21 ) idx#14 = idx#38 - testSimpleTypes::$24 = TYPEID_SIGNED_DWORD + testSimpleTypes::$24 = TYPEID_LONG assertType::t1#12 = testSimpleTypes::$24 - assertType::t2#12 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#12 = TYPEID_LONG + call assertType to:testSimpleTypes::@13 testSimpleTypes::@13: scope:[testSimpleTypes] from testSimpleTypes::@12 idx#39 = phi( testSimpleTypes::@12/idx#21 ) idx#15 = idx#39 - testSimpleTypes::$26 = TYPEID_SIGNED_DWORD + testSimpleTypes::$26 = TYPEID_LONG assertType::t1#13 = testSimpleTypes::$26 - assertType::t2#13 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#13 = TYPEID_LONG + call assertType to:testSimpleTypes::@14 testSimpleTypes::@14: scope:[testSimpleTypes] from testSimpleTypes::@13 idx#40 = phi( testSimpleTypes::@13/idx#21 ) idx#16 = idx#40 - testSimpleTypes::$28 = TYPEID_SIGNED_DWORD + testSimpleTypes::$28 = TYPEID_LONG assertType::t1#14 = testSimpleTypes::$28 - assertType::t2#14 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#14 = TYPEID_LONG + call assertType to:testSimpleTypes::@15 testSimpleTypes::@15: scope:[testSimpleTypes] from testSimpleTypes::@14 idx#41 = phi( testSimpleTypes::@14/idx#21 ) idx#17 = idx#41 - testSimpleTypes::$30 = TYPEID_WORD + testSimpleTypes::$30 = TYPEID_UNSIGNED_INT assertType::t1#15 = testSimpleTypes::$30 - assertType::t2#15 = TYPEID_WORD - call assertType + assertType::t2#15 = TYPEID_UNSIGNED_INT + call assertType to:testSimpleTypes::@16 testSimpleTypes::@16: scope:[testSimpleTypes] from testSimpleTypes::@15 idx#42 = phi( testSimpleTypes::@15/idx#21 ) @@ -187,7 +187,7 @@ testSimpleTypes::@return: scope:[testSimpleTypes] from testSimpleTypes::@16 return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from testSimpleTypes testSimpleTypes::@1 testSimpleTypes::@10 testSimpleTypes::@11 testSimpleTypes::@12 testSimpleTypes::@13 testSimpleTypes::@14 testSimpleTypes::@15 testSimpleTypes::@2 testSimpleTypes::@3 testSimpleTypes::@4 testSimpleTypes::@5 testSimpleTypes::@6 testSimpleTypes::@7 testSimpleTypes::@8 testSimpleTypes::@9 idx#51 = phi( testSimpleTypes/idx#2, testSimpleTypes::@1/idx#3, testSimpleTypes::@10/idx#12, testSimpleTypes::@11/idx#13, testSimpleTypes::@12/idx#14, testSimpleTypes::@13/idx#15, testSimpleTypes::@14/idx#16, testSimpleTypes::@15/idx#17, testSimpleTypes::@2/idx#4, testSimpleTypes::@3/idx#5, testSimpleTypes::@4/idx#6, testSimpleTypes::@5/idx#7, testSimpleTypes::@6/idx#8, testSimpleTypes::@7/idx#9, testSimpleTypes::@8/idx#10, testSimpleTypes::@9/idx#11 ) assertType::t2#16 = phi( testSimpleTypes/assertType::t2#0, testSimpleTypes::@1/assertType::t2#1, testSimpleTypes::@10/assertType::t2#10, testSimpleTypes::@11/assertType::t2#11, testSimpleTypes::@12/assertType::t2#12, testSimpleTypes::@13/assertType::t2#13, testSimpleTypes::@14/assertType::t2#14, testSimpleTypes::@15/assertType::t2#15, testSimpleTypes::@2/assertType::t2#2, testSimpleTypes::@3/assertType::t2#3, testSimpleTypes::@4/assertType::t2#4, testSimpleTypes::@5/assertType::t2#5, testSimpleTypes::@6/assertType::t2#6, testSimpleTypes::@7/assertType::t2#7, testSimpleTypes::@8/assertType::t2#8, testSimpleTypes::@9/assertType::t2#9 ) @@ -225,7 +225,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#52 = phi( __start::__init1/idx#22 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#48 = phi( __start::@1/idx#1 ) @@ -238,139 +238,139 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 void __start() -void assertType(byte assertType::t1 , byte assertType::t2) -bool~ assertType::$0 -byte assertType::t1 -byte assertType::t1#0 -byte assertType::t1#1 -byte assertType::t1#10 -byte assertType::t1#11 -byte assertType::t1#12 -byte assertType::t1#13 -byte assertType::t1#14 -byte assertType::t1#15 -byte assertType::t1#16 -byte assertType::t1#17 -byte assertType::t1#18 -byte assertType::t1#19 -byte assertType::t1#2 -byte assertType::t1#3 -byte assertType::t1#4 -byte assertType::t1#5 -byte assertType::t1#6 -byte assertType::t1#7 -byte assertType::t1#8 -byte assertType::t1#9 -byte assertType::t2 -byte assertType::t2#0 -byte assertType::t2#1 -byte assertType::t2#10 -byte assertType::t2#11 -byte assertType::t2#12 -byte assertType::t2#13 -byte assertType::t2#14 -byte assertType::t2#15 -byte assertType::t2#16 -byte assertType::t2#2 -byte assertType::t2#3 -byte assertType::t2#4 -byte assertType::t2#5 -byte assertType::t2#6 -byte assertType::t2#7 -byte assertType::t2#8 -byte assertType::t2#9 -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#30 -byte idx#31 -byte idx#32 -byte idx#33 -byte idx#34 -byte idx#35 -byte idx#36 -byte idx#37 -byte idx#38 -byte idx#39 -byte idx#4 -byte idx#40 -byte idx#41 -byte idx#42 -byte idx#43 -byte idx#44 -byte idx#45 -byte idx#46 -byte idx#47 -byte idx#48 -byte idx#49 -byte idx#5 -byte idx#50 -byte idx#51 -byte idx#52 -byte idx#53 -byte idx#54 -byte idx#55 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +void assertType(char t1 , char t2) +bool assertType::$0 +char assertType::t1 +char assertType::t1#0 +char assertType::t1#1 +char assertType::t1#10 +char assertType::t1#11 +char assertType::t1#12 +char assertType::t1#13 +char assertType::t1#14 +char assertType::t1#15 +char assertType::t1#16 +char assertType::t1#17 +char assertType::t1#18 +char assertType::t1#19 +char assertType::t1#2 +char assertType::t1#3 +char assertType::t1#4 +char assertType::t1#5 +char assertType::t1#6 +char assertType::t1#7 +char assertType::t1#8 +char assertType::t1#9 +char assertType::t2 +char assertType::t2#0 +char assertType::t2#1 +char assertType::t2#10 +char assertType::t2#11 +char assertType::t2#12 +char assertType::t2#13 +char assertType::t2#14 +char assertType::t2#15 +char assertType::t2#16 +char assertType::t2#2 +char assertType::t2#3 +char assertType::t2#4 +char assertType::t2#5 +char assertType::t2#6 +char assertType::t2#7 +char assertType::t2#8 +char assertType::t2#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#30 +char idx#31 +char idx#32 +char idx#33 +char idx#34 +char idx#35 +char idx#36 +char idx#37 +char idx#38 +char idx#39 +char idx#4 +char idx#40 +char idx#41 +char idx#42 +char idx#43 +char idx#44 +char idx#45 +char idx#46 +char idx#47 +char idx#48 +char idx#49 +char idx#5 +char idx#50 +char idx#51 +char idx#52 +char idx#53 +char idx#54 +char idx#55 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -byte* main::s -byte* main::s#0 -byte* main::s#1 -byte* main::s#2 -byte* main::s#3 +bool main::$1 +char *main::s +char *main::s#0 +char *main::s#1 +char *main::s#2 +char *main::s#3 void testSimpleTypes() -byte~ testSimpleTypes::$0 -byte~ testSimpleTypes::$10 -byte~ testSimpleTypes::$12 -byte~ testSimpleTypes::$14 -byte~ testSimpleTypes::$16 -byte~ testSimpleTypes::$18 -byte~ testSimpleTypes::$2 -byte~ testSimpleTypes::$20 -byte~ testSimpleTypes::$22 -byte~ testSimpleTypes::$24 -byte~ testSimpleTypes::$26 -byte~ testSimpleTypes::$28 -byte~ testSimpleTypes::$30 -byte~ testSimpleTypes::$4 -byte~ testSimpleTypes::$6 -byte~ testSimpleTypes::$8 +char testSimpleTypes::$0 +char testSimpleTypes::$10 +char testSimpleTypes::$12 +char testSimpleTypes::$14 +char testSimpleTypes::$16 +char testSimpleTypes::$18 +char testSimpleTypes::$2 +char testSimpleTypes::$20 +char testSimpleTypes::$22 +char testSimpleTypes::$24 +char testSimpleTypes::$26 +char testSimpleTypes::$28 +char testSimpleTypes::$30 +char testSimpleTypes::$4 +char testSimpleTypes::$6 +char testSimpleTypes::$8 Alias main::s#2 = main::s#3 Alias idx#50 = idx#55 idx#53 @@ -442,38 +442,38 @@ Simple Condition assertType::$0 [78] if(assertType::t1#16==assertType::t2#16) go Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::s#0 = SCREEN Constant idx#2 = 0 -Constant assertType::t1#0 = TYPEID_BYTE -Constant assertType::t2#0 = TYPEID_BYTE -Constant assertType::t1#1 = TYPEID_BYTE -Constant assertType::t2#1 = TYPEID_BYTE -Constant assertType::t1#2 = TYPEID_SIGNED_BYTE -Constant assertType::t2#2 = TYPEID_SIGNED_BYTE -Constant assertType::t1#3 = TYPEID_SIGNED_BYTE -Constant assertType::t2#3 = TYPEID_SIGNED_BYTE -Constant assertType::t1#4 = TYPEID_WORD -Constant assertType::t2#4 = TYPEID_WORD -Constant assertType::t1#5 = TYPEID_WORD -Constant assertType::t2#5 = TYPEID_WORD -Constant assertType::t1#6 = TYPEID_WORD -Constant assertType::t2#6 = TYPEID_WORD -Constant assertType::t1#7 = TYPEID_SIGNED_WORD -Constant assertType::t2#7 = TYPEID_SIGNED_WORD -Constant assertType::t1#8 = TYPEID_SIGNED_WORD -Constant assertType::t2#8 = TYPEID_SIGNED_WORD -Constant assertType::t1#9 = TYPEID_SIGNED_WORD -Constant assertType::t2#9 = TYPEID_SIGNED_WORD -Constant assertType::t1#10 = TYPEID_DWORD -Constant assertType::t2#10 = TYPEID_DWORD -Constant assertType::t1#11 = TYPEID_DWORD -Constant assertType::t2#11 = TYPEID_DWORD -Constant assertType::t1#12 = TYPEID_SIGNED_DWORD -Constant assertType::t2#12 = TYPEID_SIGNED_DWORD -Constant assertType::t1#13 = TYPEID_SIGNED_DWORD -Constant assertType::t2#13 = TYPEID_SIGNED_DWORD -Constant assertType::t1#14 = TYPEID_SIGNED_DWORD -Constant assertType::t2#14 = TYPEID_SIGNED_DWORD -Constant assertType::t1#15 = TYPEID_WORD -Constant assertType::t2#15 = TYPEID_WORD +Constant assertType::t1#0 = TYPEID_CHAR +Constant assertType::t2#0 = TYPEID_CHAR +Constant assertType::t1#1 = TYPEID_CHAR +Constant assertType::t2#1 = TYPEID_CHAR +Constant assertType::t1#2 = TYPEID_SIGNED_CHAR +Constant assertType::t2#2 = TYPEID_SIGNED_CHAR +Constant assertType::t1#3 = TYPEID_SIGNED_CHAR +Constant assertType::t2#3 = TYPEID_SIGNED_CHAR +Constant assertType::t1#4 = TYPEID_UNSIGNED_INT +Constant assertType::t2#4 = TYPEID_UNSIGNED_INT +Constant assertType::t1#5 = TYPEID_UNSIGNED_INT +Constant assertType::t2#5 = TYPEID_UNSIGNED_INT +Constant assertType::t1#6 = TYPEID_UNSIGNED_INT +Constant assertType::t2#6 = TYPEID_UNSIGNED_INT +Constant assertType::t1#7 = TYPEID_INT +Constant assertType::t2#7 = TYPEID_INT +Constant assertType::t1#8 = TYPEID_INT +Constant assertType::t2#8 = TYPEID_INT +Constant assertType::t1#9 = TYPEID_INT +Constant assertType::t2#9 = TYPEID_INT +Constant assertType::t1#10 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#10 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#11 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#11 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#12 = TYPEID_LONG +Constant assertType::t2#12 = TYPEID_LONG +Constant assertType::t1#13 = TYPEID_LONG +Constant assertType::t2#13 = TYPEID_LONG +Constant assertType::t1#14 = TYPEID_LONG +Constant assertType::t2#14 = TYPEID_LONG +Constant assertType::t1#15 = TYPEID_UNSIGNED_INT +Constant assertType::t2#15 = TYPEID_UNSIGNED_INT Constant idx#22 = 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant idx#22 @@ -519,47 +519,47 @@ Inlining constant with var siblings assertType::t2#14 Inlining constant with var siblings assertType::t1#15 Inlining constant with var siblings assertType::t2#15 Inlining constant with var siblings idx#2 -Constant inlined assertType::t2#5 = TYPEID_WORD -Constant inlined assertType::t1#6 = TYPEID_WORD -Constant inlined assertType::t2#6 = TYPEID_WORD -Constant inlined assertType::t1#7 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#7 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#8 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#8 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#9 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#9 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#11 = TYPEID_DWORD -Constant inlined assertType::t2#10 = TYPEID_DWORD -Constant inlined assertType::t2#13 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#12 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#15 = TYPEID_WORD -Constant inlined assertType::t2#14 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#0 = TYPEID_BYTE +Constant inlined assertType::t2#5 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#6 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#6 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#7 = TYPEID_INT +Constant inlined assertType::t2#7 = TYPEID_INT +Constant inlined assertType::t1#8 = TYPEID_INT +Constant inlined assertType::t2#8 = TYPEID_INT +Constant inlined assertType::t1#9 = TYPEID_INT +Constant inlined assertType::t2#9 = TYPEID_INT +Constant inlined assertType::t2#11 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#10 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#13 = TYPEID_LONG +Constant inlined assertType::t2#12 = TYPEID_LONG +Constant inlined assertType::t2#15 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#14 = TYPEID_LONG +Constant inlined assertType::t1#0 = TYPEID_CHAR Constant inlined idx#2 = 0 -Constant inlined assertType::t2#0 = TYPEID_BYTE -Constant inlined assertType::t1#1 = TYPEID_BYTE -Constant inlined assertType::t2#1 = TYPEID_BYTE -Constant inlined assertType::t1#2 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t2#2 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t1#3 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t2#3 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t1#4 = TYPEID_WORD -Constant inlined assertType::t2#4 = TYPEID_WORD -Constant inlined assertType::t1#5 = TYPEID_WORD +Constant inlined assertType::t2#0 = TYPEID_CHAR +Constant inlined assertType::t1#1 = TYPEID_CHAR +Constant inlined assertType::t2#1 = TYPEID_CHAR +Constant inlined assertType::t1#2 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t2#2 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t1#3 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t2#3 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t1#4 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#4 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#5 = TYPEID_UNSIGNED_INT Constant inlined main::s#0 = SCREEN -Constant inlined assertType::t1#10 = TYPEID_DWORD -Constant inlined assertType::t1#12 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#11 = TYPEID_DWORD -Constant inlined assertType::t1#14 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#13 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#15 = TYPEID_WORD +Constant inlined assertType::t1#10 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#12 = TYPEID_LONG +Constant inlined assertType::t1#11 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#14 = TYPEID_LONG +Constant inlined assertType::t1#13 = TYPEID_LONG +Constant inlined assertType::t1#15 = TYPEID_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -621,7 +621,7 @@ main::@1: scope:[main] from main main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [3] phi() - [4] call testSimpleTypes + [4] call testSimpleTypes to:main::@return main::@return: scope:[main] from main::@3 [5] return @@ -634,77 +634,77 @@ main::@2: scope:[main] from main::@1 void testSimpleTypes() testSimpleTypes: scope:[testSimpleTypes] from main::@3 [8] phi() - [9] call assertType + [9] call assertType to:testSimpleTypes::@1 testSimpleTypes::@1: scope:[testSimpleTypes] from testSimpleTypes [10] phi() - [11] call assertType + [11] call assertType to:testSimpleTypes::@2 testSimpleTypes::@2: scope:[testSimpleTypes] from testSimpleTypes::@1 [12] phi() - [13] call assertType + [13] call assertType to:testSimpleTypes::@3 testSimpleTypes::@3: scope:[testSimpleTypes] from testSimpleTypes::@2 [14] phi() - [15] call assertType + [15] call assertType to:testSimpleTypes::@4 testSimpleTypes::@4: scope:[testSimpleTypes] from testSimpleTypes::@3 [16] phi() - [17] call assertType + [17] call assertType to:testSimpleTypes::@5 testSimpleTypes::@5: scope:[testSimpleTypes] from testSimpleTypes::@4 [18] phi() - [19] call assertType + [19] call assertType to:testSimpleTypes::@6 testSimpleTypes::@6: scope:[testSimpleTypes] from testSimpleTypes::@5 [20] phi() - [21] call assertType + [21] call assertType to:testSimpleTypes::@7 testSimpleTypes::@7: scope:[testSimpleTypes] from testSimpleTypes::@6 [22] phi() - [23] call assertType + [23] call assertType to:testSimpleTypes::@8 testSimpleTypes::@8: scope:[testSimpleTypes] from testSimpleTypes::@7 [24] phi() - [25] call assertType + [25] call assertType to:testSimpleTypes::@9 testSimpleTypes::@9: scope:[testSimpleTypes] from testSimpleTypes::@8 [26] phi() - [27] call assertType + [27] call assertType to:testSimpleTypes::@10 testSimpleTypes::@10: scope:[testSimpleTypes] from testSimpleTypes::@9 [28] phi() - [29] call assertType + [29] call assertType to:testSimpleTypes::@11 testSimpleTypes::@11: scope:[testSimpleTypes] from testSimpleTypes::@10 [30] phi() - [31] call assertType + [31] call assertType to:testSimpleTypes::@12 testSimpleTypes::@12: scope:[testSimpleTypes] from testSimpleTypes::@11 [32] phi() - [33] call assertType + [33] call assertType to:testSimpleTypes::@13 testSimpleTypes::@13: scope:[testSimpleTypes] from testSimpleTypes::@12 [34] phi() - [35] call assertType + [35] call assertType to:testSimpleTypes::@14 testSimpleTypes::@14: scope:[testSimpleTypes] from testSimpleTypes::@13 [36] phi() - [37] call assertType + [37] call assertType to:testSimpleTypes::@15 testSimpleTypes::@15: scope:[testSimpleTypes] from testSimpleTypes::@14 [38] phi() - [39] call assertType + [39] call assertType to:testSimpleTypes::@return testSimpleTypes::@return: scope:[testSimpleTypes] from testSimpleTypes::@15 [40] return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from testSimpleTypes testSimpleTypes::@1 testSimpleTypes::@10 testSimpleTypes::@11 testSimpleTypes::@12 testSimpleTypes::@13 testSimpleTypes::@14 testSimpleTypes::@15 testSimpleTypes::@2 testSimpleTypes::@3 testSimpleTypes::@4 testSimpleTypes::@5 testSimpleTypes::@6 testSimpleTypes::@7 testSimpleTypes::@8 testSimpleTypes::@9 [41] idx#44 = phi( testSimpleTypes/0, testSimpleTypes::@1/idx#20, testSimpleTypes::@10/idx#20, testSimpleTypes::@11/idx#20, testSimpleTypes::@12/idx#20, testSimpleTypes::@13/idx#20, testSimpleTypes::@14/idx#20, testSimpleTypes::@15/idx#20, testSimpleTypes::@2/idx#20, testSimpleTypes::@3/idx#20, testSimpleTypes::@4/idx#20, testSimpleTypes::@5/idx#20, testSimpleTypes::@6/idx#20, testSimpleTypes::@7/idx#20, testSimpleTypes::@8/idx#20, testSimpleTypes::@9/idx#20 ) - [41] assertType::t2#16 = phi( testSimpleTypes/TYPEID_BYTE, testSimpleTypes::@1/TYPEID_BYTE, testSimpleTypes::@10/TYPEID_DWORD, testSimpleTypes::@11/TYPEID_DWORD, testSimpleTypes::@12/TYPEID_SIGNED_DWORD, testSimpleTypes::@13/TYPEID_SIGNED_DWORD, testSimpleTypes::@14/TYPEID_SIGNED_DWORD, testSimpleTypes::@15/TYPEID_WORD, testSimpleTypes::@2/TYPEID_SIGNED_BYTE, testSimpleTypes::@3/TYPEID_SIGNED_BYTE, testSimpleTypes::@4/TYPEID_WORD, testSimpleTypes::@5/TYPEID_WORD, testSimpleTypes::@6/TYPEID_WORD, testSimpleTypes::@7/TYPEID_SIGNED_WORD, testSimpleTypes::@8/TYPEID_SIGNED_WORD, testSimpleTypes::@9/TYPEID_SIGNED_WORD ) - [41] assertType::t1#16 = phi( testSimpleTypes/TYPEID_BYTE, testSimpleTypes::@1/TYPEID_BYTE, testSimpleTypes::@10/TYPEID_DWORD, testSimpleTypes::@11/TYPEID_DWORD, testSimpleTypes::@12/TYPEID_SIGNED_DWORD, testSimpleTypes::@13/TYPEID_SIGNED_DWORD, testSimpleTypes::@14/TYPEID_SIGNED_DWORD, testSimpleTypes::@15/TYPEID_WORD, testSimpleTypes::@2/TYPEID_SIGNED_BYTE, testSimpleTypes::@3/TYPEID_SIGNED_BYTE, testSimpleTypes::@4/TYPEID_WORD, testSimpleTypes::@5/TYPEID_WORD, testSimpleTypes::@6/TYPEID_WORD, testSimpleTypes::@7/TYPEID_SIGNED_WORD, testSimpleTypes::@8/TYPEID_SIGNED_WORD, testSimpleTypes::@9/TYPEID_SIGNED_WORD ) + [41] assertType::t2#16 = phi( testSimpleTypes/TYPEID_CHAR, testSimpleTypes::@1/TYPEID_CHAR, testSimpleTypes::@10/TYPEID_UNSIGNED_LONG, testSimpleTypes::@11/TYPEID_UNSIGNED_LONG, testSimpleTypes::@12/TYPEID_LONG, testSimpleTypes::@13/TYPEID_LONG, testSimpleTypes::@14/TYPEID_LONG, testSimpleTypes::@15/TYPEID_UNSIGNED_INT, testSimpleTypes::@2/TYPEID_SIGNED_CHAR, testSimpleTypes::@3/TYPEID_SIGNED_CHAR, testSimpleTypes::@4/TYPEID_UNSIGNED_INT, testSimpleTypes::@5/TYPEID_UNSIGNED_INT, testSimpleTypes::@6/TYPEID_UNSIGNED_INT, testSimpleTypes::@7/TYPEID_INT, testSimpleTypes::@8/TYPEID_INT, testSimpleTypes::@9/TYPEID_INT ) + [41] assertType::t1#16 = phi( testSimpleTypes/TYPEID_CHAR, testSimpleTypes::@1/TYPEID_CHAR, testSimpleTypes::@10/TYPEID_UNSIGNED_LONG, testSimpleTypes::@11/TYPEID_UNSIGNED_LONG, testSimpleTypes::@12/TYPEID_LONG, testSimpleTypes::@13/TYPEID_LONG, testSimpleTypes::@14/TYPEID_LONG, testSimpleTypes::@15/TYPEID_UNSIGNED_INT, testSimpleTypes::@2/TYPEID_SIGNED_CHAR, testSimpleTypes::@3/TYPEID_SIGNED_CHAR, testSimpleTypes::@4/TYPEID_UNSIGNED_INT, testSimpleTypes::@5/TYPEID_UNSIGNED_INT, testSimpleTypes::@6/TYPEID_UNSIGNED_INT, testSimpleTypes::@7/TYPEID_INT, testSimpleTypes::@8/TYPEID_INT, testSimpleTypes::@9/TYPEID_INT ) [42] if(assertType::t1#16==assertType::t2#16) goto assertType::@1 to:assertType::@3 assertType::@3: scope:[assertType] from assertType @@ -723,18 +723,18 @@ assertType::@1: scope:[assertType] from assertType VARIABLE REGISTER WEIGHTS -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#16 50.5 -byte assertType::t2 -byte assertType::t2#16 101.0 -byte idx -byte idx#20 8.3125 -byte idx#44 113.8 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#16 // 50.5 +char assertType::t2 +char assertType::t2#16 // 101.0 +char idx +char idx#20 // 8.3125 +char idx#44 // 113.8 void main() -byte* main::s -byte* main::s#1 22.0 -byte* main::s#2 14.666666666666666 +char *main::s +char *main::s#1 // 22.0 +char *main::s#2 // 14.666666666666666 void testSimpleTypes() Initial phi equivalence classes @@ -798,12 +798,12 @@ ASSEMBLER BEFORE OPTIMIZATION // Global Constants & labels .const RED = 2 .const GREEN = 5 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .label SCREEN = $400 .label COLS = $d800 .label idx = 4 @@ -835,7 +835,7 @@ main: { jmp __b3 // main::@3 __b3: - // [4] call testSimpleTypes + // [4] call testSimpleTypes // [8] phi from main::@3 to testSimpleTypes [phi:main::@3->testSimpleTypes] testSimpleTypes_from___b3: jsr testSimpleTypes @@ -862,227 +862,227 @@ main: { } // testSimpleTypes testSimpleTypes: { - // [9] call assertType + // [9] call assertType // Simple types // [41] phi from testSimpleTypes to assertType [phi:testSimpleTypes->assertType] assertType_from_testSimpleTypes: // [41] phi idx#44 = 0 [phi:testSimpleTypes->assertType#0] -- vbuz1=vbuc1 lda #0 sta.z idx - // [41] phi assertType::t2#16 = TYPEID_BYTE [phi:testSimpleTypes->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE - // [41] phi assertType::t1#16 = TYPEID_BYTE [phi:testSimpleTypes->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_BYTE + // [41] phi assertType::t2#16 = TYPEID_CHAR [phi:testSimpleTypes->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR + // [41] phi assertType::t1#16 = TYPEID_CHAR [phi:testSimpleTypes->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_CHAR jsr assertType // [10] phi from testSimpleTypes to testSimpleTypes::@1 [phi:testSimpleTypes->testSimpleTypes::@1] __b1_from_testSimpleTypes: jmp __b1 // testSimpleTypes::@1 __b1: - // [11] call assertType + // [11] call assertType // [41] phi from testSimpleTypes::@1 to assertType [phi:testSimpleTypes::@1->assertType] assertType_from___b1: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@1->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_BYTE [phi:testSimpleTypes::@1->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE - // [41] phi assertType::t1#16 = TYPEID_BYTE [phi:testSimpleTypes::@1->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_BYTE + // [41] phi assertType::t2#16 = TYPEID_CHAR [phi:testSimpleTypes::@1->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR + // [41] phi assertType::t1#16 = TYPEID_CHAR [phi:testSimpleTypes::@1->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_CHAR jsr assertType // [12] phi from testSimpleTypes::@1 to testSimpleTypes::@2 [phi:testSimpleTypes::@1->testSimpleTypes::@2] __b2_from___b1: jmp __b2 // testSimpleTypes::@2 __b2: - // [13] call assertType + // [13] call assertType // [41] phi from testSimpleTypes::@2 to assertType [phi:testSimpleTypes::@2->assertType] assertType_from___b2: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@2->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@2->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE - // [41] phi assertType::t1#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@2->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_BYTE + // [41] phi assertType::t2#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@2->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR + // [41] phi assertType::t1#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@2->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_SIGNED_CHAR jsr assertType // [14] phi from testSimpleTypes::@2 to testSimpleTypes::@3 [phi:testSimpleTypes::@2->testSimpleTypes::@3] __b3_from___b2: jmp __b3 // testSimpleTypes::@3 __b3: - // [15] call assertType + // [15] call assertType // [41] phi from testSimpleTypes::@3 to assertType [phi:testSimpleTypes::@3->assertType] assertType_from___b3: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@3->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@3->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE - // [41] phi assertType::t1#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@3->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_BYTE + // [41] phi assertType::t2#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@3->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR + // [41] phi assertType::t1#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@3->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_SIGNED_CHAR jsr assertType // [16] phi from testSimpleTypes::@3 to testSimpleTypes::@4 [phi:testSimpleTypes::@3->testSimpleTypes::@4] __b4_from___b3: jmp __b4 // testSimpleTypes::@4 __b4: - // [17] call assertType + // [17] call assertType // [41] phi from testSimpleTypes::@4 to assertType [phi:testSimpleTypes::@4->assertType] assertType_from___b4: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@4->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@4->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@4->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@4->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@4->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // [18] phi from testSimpleTypes::@4 to testSimpleTypes::@5 [phi:testSimpleTypes::@4->testSimpleTypes::@5] __b5_from___b4: jmp __b5 // testSimpleTypes::@5 __b5: - // [19] call assertType + // [19] call assertType // [41] phi from testSimpleTypes::@5 to assertType [phi:testSimpleTypes::@5->assertType] assertType_from___b5: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@5->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@5->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@5->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@5->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@5->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // [20] phi from testSimpleTypes::@5 to testSimpleTypes::@6 [phi:testSimpleTypes::@5->testSimpleTypes::@6] __b6_from___b5: jmp __b6 // testSimpleTypes::@6 __b6: - // [21] call assertType + // [21] call assertType // [41] phi from testSimpleTypes::@6 to assertType [phi:testSimpleTypes::@6->assertType] assertType_from___b6: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@6->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@6->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@6->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@6->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@6->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // [22] phi from testSimpleTypes::@6 to testSimpleTypes::@7 [phi:testSimpleTypes::@6->testSimpleTypes::@7] __b7_from___b6: jmp __b7 // testSimpleTypes::@7 __b7: - // [23] call assertType + // [23] call assertType // [41] phi from testSimpleTypes::@7 to assertType [phi:testSimpleTypes::@7->assertType] assertType_from___b7: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@7->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@7->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@7->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_WORD + // [41] phi assertType::t2#16 = TYPEID_INT [phi:testSimpleTypes::@7->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_INT + // [41] phi assertType::t1#16 = TYPEID_INT [phi:testSimpleTypes::@7->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_INT jsr assertType // [24] phi from testSimpleTypes::@7 to testSimpleTypes::@8 [phi:testSimpleTypes::@7->testSimpleTypes::@8] __b8_from___b7: jmp __b8 // testSimpleTypes::@8 __b8: - // [25] call assertType + // [25] call assertType // [41] phi from testSimpleTypes::@8 to assertType [phi:testSimpleTypes::@8->assertType] assertType_from___b8: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@8->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@8->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@8->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_WORD + // [41] phi assertType::t2#16 = TYPEID_INT [phi:testSimpleTypes::@8->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_INT + // [41] phi assertType::t1#16 = TYPEID_INT [phi:testSimpleTypes::@8->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_INT jsr assertType // [26] phi from testSimpleTypes::@8 to testSimpleTypes::@9 [phi:testSimpleTypes::@8->testSimpleTypes::@9] __b9_from___b8: jmp __b9 // testSimpleTypes::@9 __b9: - // [27] call assertType + // [27] call assertType // [41] phi from testSimpleTypes::@9 to assertType [phi:testSimpleTypes::@9->assertType] assertType_from___b9: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@9->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@9->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@9->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_WORD + // [41] phi assertType::t2#16 = TYPEID_INT [phi:testSimpleTypes::@9->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_INT + // [41] phi assertType::t1#16 = TYPEID_INT [phi:testSimpleTypes::@9->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_INT jsr assertType // [28] phi from testSimpleTypes::@9 to testSimpleTypes::@10 [phi:testSimpleTypes::@9->testSimpleTypes::@10] __b10_from___b9: jmp __b10 // testSimpleTypes::@10 __b10: - // [29] call assertType + // [29] call assertType // [41] phi from testSimpleTypes::@10 to assertType [phi:testSimpleTypes::@10->assertType] assertType_from___b10: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@10->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_DWORD [phi:testSimpleTypes::@10->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD - // [41] phi assertType::t1#16 = TYPEID_DWORD [phi:testSimpleTypes::@10->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_DWORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@10->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@10->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_LONG jsr assertType // [30] phi from testSimpleTypes::@10 to testSimpleTypes::@11 [phi:testSimpleTypes::@10->testSimpleTypes::@11] __b11_from___b10: jmp __b11 // testSimpleTypes::@11 __b11: - // [31] call assertType + // [31] call assertType // [41] phi from testSimpleTypes::@11 to assertType [phi:testSimpleTypes::@11->assertType] assertType_from___b11: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@11->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_DWORD [phi:testSimpleTypes::@11->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD - // [41] phi assertType::t1#16 = TYPEID_DWORD [phi:testSimpleTypes::@11->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_DWORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@11->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@11->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_LONG jsr assertType // [32] phi from testSimpleTypes::@11 to testSimpleTypes::@12 [phi:testSimpleTypes::@11->testSimpleTypes::@12] __b12_from___b11: jmp __b12 // testSimpleTypes::@12 __b12: - // [33] call assertType + // [33] call assertType // [41] phi from testSimpleTypes::@12 to assertType [phi:testSimpleTypes::@12->assertType] assertType_from___b12: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@12->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@12->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@12->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_DWORD + // [41] phi assertType::t2#16 = TYPEID_LONG [phi:testSimpleTypes::@12->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_LONG + // [41] phi assertType::t1#16 = TYPEID_LONG [phi:testSimpleTypes::@12->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_LONG jsr assertType // [34] phi from testSimpleTypes::@12 to testSimpleTypes::@13 [phi:testSimpleTypes::@12->testSimpleTypes::@13] __b13_from___b12: jmp __b13 // testSimpleTypes::@13 __b13: - // [35] call assertType + // [35] call assertType // [41] phi from testSimpleTypes::@13 to assertType [phi:testSimpleTypes::@13->assertType] assertType_from___b13: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@13->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@13->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@13->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_DWORD + // [41] phi assertType::t2#16 = TYPEID_LONG [phi:testSimpleTypes::@13->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_LONG + // [41] phi assertType::t1#16 = TYPEID_LONG [phi:testSimpleTypes::@13->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_LONG jsr assertType // [36] phi from testSimpleTypes::@13 to testSimpleTypes::@14 [phi:testSimpleTypes::@13->testSimpleTypes::@14] __b14_from___b13: jmp __b14 // testSimpleTypes::@14 __b14: - // [37] call assertType + // [37] call assertType // [41] phi from testSimpleTypes::@14 to assertType [phi:testSimpleTypes::@14->assertType] assertType_from___b14: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@14->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@14->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@14->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_DWORD + // [41] phi assertType::t2#16 = TYPEID_LONG [phi:testSimpleTypes::@14->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_LONG + // [41] phi assertType::t1#16 = TYPEID_LONG [phi:testSimpleTypes::@14->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_LONG jsr assertType // [38] phi from testSimpleTypes::@14 to testSimpleTypes::@15 [phi:testSimpleTypes::@14->testSimpleTypes::@15] __b15_from___b14: jmp __b15 // testSimpleTypes::@15 __b15: - // [39] call assertType + // [39] call assertType // [41] phi from testSimpleTypes::@15 to assertType [phi:testSimpleTypes::@15->assertType] assertType_from___b15: // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@15->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@15->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@15->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@15->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@15->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType jmp __breturn // testSimpleTypes::@return @@ -1094,7 +1094,7 @@ testSimpleTypes: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(X) t1, byte register(Y) t2) +// void assertType(__register(X) char t1, __register(Y) char t2) assertType: { // [42] if(assertType::t1#16==assertType::t2#16) goto assertType::@1 -- vbuxx_eq_vbuyy_then_la1 sty.z $ff @@ -1214,28 +1214,28 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#16 reg byte x 50.5 -byte assertType::t2 -byte assertType::t2#16 reg byte y 101.0 -byte idx -byte idx#20 idx zp[1]:4 8.3125 -byte idx#44 idx zp[1]:4 113.8 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#16 // reg byte x 50.5 +char assertType::t2 +char assertType::t2#16 // reg byte y 101.0 +char idx +char idx#20 // idx zp[1]:4 8.3125 +char idx#44 // idx zp[1]:4 113.8 void main() -byte* main::s -byte* main::s#1 s zp[2]:2 22.0 -byte* main::s#2 s zp[2]:2 14.666666666666666 +char *main::s +char *main::s#1 // s zp[2]:2 22.0 +char *main::s#2 // s zp[2]:2 14.666666666666666 void testSimpleTypes() zp[2]:2 [ main::s#2 main::s#1 ] @@ -1261,12 +1261,12 @@ Score: 765 // Global Constants & labels .const RED = 2 .const GREEN = 5 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .label SCREEN = $400 .label COLS = $d800 .label idx = 4 @@ -1295,7 +1295,7 @@ main: { // [3] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // main::@3 // testSimpleTypes() - // [4] call testSimpleTypes + // [4] call testSimpleTypes // [8] phi from main::@3 to testSimpleTypes [phi:main::@3->testSimpleTypes] jsr testSimpleTypes // main::@return @@ -1322,181 +1322,181 @@ main: { // testSimpleTypes testSimpleTypes: { // assertType(typeid(12ub), typeid(unsigned byte)) - // [9] call assertType + // [9] call assertType // Simple types // [41] phi from testSimpleTypes to assertType [phi:testSimpleTypes->assertType] // [41] phi idx#44 = 0 [phi:testSimpleTypes->assertType#0] -- vbuz1=vbuc1 lda #0 sta.z idx - // [41] phi assertType::t2#16 = TYPEID_BYTE [phi:testSimpleTypes->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE - // [41] phi assertType::t1#16 = TYPEID_BYTE [phi:testSimpleTypes->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_BYTE + // [41] phi assertType::t2#16 = TYPEID_CHAR [phi:testSimpleTypes->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR + // [41] phi assertType::t1#16 = TYPEID_CHAR [phi:testSimpleTypes->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_CHAR jsr assertType // [10] phi from testSimpleTypes to testSimpleTypes::@1 [phi:testSimpleTypes->testSimpleTypes::@1] // testSimpleTypes::@1 // assertType(typeid(12uc), typeid(unsigned byte)) - // [11] call assertType + // [11] call assertType // [41] phi from testSimpleTypes::@1 to assertType [phi:testSimpleTypes::@1->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@1->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_BYTE [phi:testSimpleTypes::@1->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE - // [41] phi assertType::t1#16 = TYPEID_BYTE [phi:testSimpleTypes::@1->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_BYTE + // [41] phi assertType::t2#16 = TYPEID_CHAR [phi:testSimpleTypes::@1->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR + // [41] phi assertType::t1#16 = TYPEID_CHAR [phi:testSimpleTypes::@1->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_CHAR jsr assertType // [12] phi from testSimpleTypes::@1 to testSimpleTypes::@2 [phi:testSimpleTypes::@1->testSimpleTypes::@2] // testSimpleTypes::@2 // assertType(typeid(12sb), typeid(signed byte)) - // [13] call assertType + // [13] call assertType // [41] phi from testSimpleTypes::@2 to assertType [phi:testSimpleTypes::@2->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@2->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@2->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE - // [41] phi assertType::t1#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@2->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_BYTE + // [41] phi assertType::t2#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@2->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR + // [41] phi assertType::t1#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@2->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_SIGNED_CHAR jsr assertType // [14] phi from testSimpleTypes::@2 to testSimpleTypes::@3 [phi:testSimpleTypes::@2->testSimpleTypes::@3] // testSimpleTypes::@3 // assertType(typeid(12sc), typeid(signed byte)) - // [15] call assertType + // [15] call assertType // [41] phi from testSimpleTypes::@3 to assertType [phi:testSimpleTypes::@3->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@3->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@3->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE - // [41] phi assertType::t1#16 = TYPEID_SIGNED_BYTE [phi:testSimpleTypes::@3->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_BYTE + // [41] phi assertType::t2#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@3->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR + // [41] phi assertType::t1#16 = TYPEID_SIGNED_CHAR [phi:testSimpleTypes::@3->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_SIGNED_CHAR jsr assertType // [16] phi from testSimpleTypes::@3 to testSimpleTypes::@4 [phi:testSimpleTypes::@3->testSimpleTypes::@4] // testSimpleTypes::@4 // assertType(typeid(12uw), typeid(unsigned word)) - // [17] call assertType + // [17] call assertType // [41] phi from testSimpleTypes::@4 to assertType [phi:testSimpleTypes::@4->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@4->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@4->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@4->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@4->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@4->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // [18] phi from testSimpleTypes::@4 to testSimpleTypes::@5 [phi:testSimpleTypes::@4->testSimpleTypes::@5] // testSimpleTypes::@5 // assertType(typeid(12ui), typeid(unsigned word)) - // [19] call assertType + // [19] call assertType // [41] phi from testSimpleTypes::@5 to assertType [phi:testSimpleTypes::@5->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@5->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@5->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@5->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@5->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@5->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // [20] phi from testSimpleTypes::@5 to testSimpleTypes::@6 [phi:testSimpleTypes::@5->testSimpleTypes::@6] // testSimpleTypes::@6 // assertType(typeid(12us), typeid(unsigned word)) - // [21] call assertType + // [21] call assertType // [41] phi from testSimpleTypes::@6 to assertType [phi:testSimpleTypes::@6->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@6->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@6->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@6->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@6->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@6->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // [22] phi from testSimpleTypes::@6 to testSimpleTypes::@7 [phi:testSimpleTypes::@6->testSimpleTypes::@7] // testSimpleTypes::@7 // assertType(typeid(12sw), typeid(signed word)) - // [23] call assertType + // [23] call assertType // [41] phi from testSimpleTypes::@7 to assertType [phi:testSimpleTypes::@7->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@7->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@7->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@7->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_WORD + // [41] phi assertType::t2#16 = TYPEID_INT [phi:testSimpleTypes::@7->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_INT + // [41] phi assertType::t1#16 = TYPEID_INT [phi:testSimpleTypes::@7->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_INT jsr assertType // [24] phi from testSimpleTypes::@7 to testSimpleTypes::@8 [phi:testSimpleTypes::@7->testSimpleTypes::@8] // testSimpleTypes::@8 // assertType(typeid(12si), typeid(signed word)) - // [25] call assertType + // [25] call assertType // [41] phi from testSimpleTypes::@8 to assertType [phi:testSimpleTypes::@8->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@8->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@8->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@8->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_WORD + // [41] phi assertType::t2#16 = TYPEID_INT [phi:testSimpleTypes::@8->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_INT + // [41] phi assertType::t1#16 = TYPEID_INT [phi:testSimpleTypes::@8->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_INT jsr assertType // [26] phi from testSimpleTypes::@8 to testSimpleTypes::@9 [phi:testSimpleTypes::@8->testSimpleTypes::@9] // testSimpleTypes::@9 // assertType(typeid(12ss), typeid(signed word)) - // [27] call assertType + // [27] call assertType // [41] phi from testSimpleTypes::@9 to assertType [phi:testSimpleTypes::@9->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@9->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@9->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_WORD [phi:testSimpleTypes::@9->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_WORD + // [41] phi assertType::t2#16 = TYPEID_INT [phi:testSimpleTypes::@9->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_INT + // [41] phi assertType::t1#16 = TYPEID_INT [phi:testSimpleTypes::@9->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_INT jsr assertType // [28] phi from testSimpleTypes::@9 to testSimpleTypes::@10 [phi:testSimpleTypes::@9->testSimpleTypes::@10] // testSimpleTypes::@10 // assertType(typeid(12ud), typeid(unsigned dword)) - // [29] call assertType + // [29] call assertType // [41] phi from testSimpleTypes::@10 to assertType [phi:testSimpleTypes::@10->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@10->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_DWORD [phi:testSimpleTypes::@10->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD - // [41] phi assertType::t1#16 = TYPEID_DWORD [phi:testSimpleTypes::@10->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_DWORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@10->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@10->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_LONG jsr assertType // [30] phi from testSimpleTypes::@10 to testSimpleTypes::@11 [phi:testSimpleTypes::@10->testSimpleTypes::@11] // testSimpleTypes::@11 // assertType(typeid(12ul), typeid(unsigned dword)) - // [31] call assertType + // [31] call assertType // [41] phi from testSimpleTypes::@11 to assertType [phi:testSimpleTypes::@11->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@11->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_DWORD [phi:testSimpleTypes::@11->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD - // [41] phi assertType::t1#16 = TYPEID_DWORD [phi:testSimpleTypes::@11->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_DWORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@11->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_LONG [phi:testSimpleTypes::@11->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_LONG jsr assertType // [32] phi from testSimpleTypes::@11 to testSimpleTypes::@12 [phi:testSimpleTypes::@11->testSimpleTypes::@12] // testSimpleTypes::@12 // assertType(typeid(12sd), typeid(signed dword)) - // [33] call assertType + // [33] call assertType // [41] phi from testSimpleTypes::@12 to assertType [phi:testSimpleTypes::@12->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@12->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@12->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@12->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_DWORD + // [41] phi assertType::t2#16 = TYPEID_LONG [phi:testSimpleTypes::@12->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_LONG + // [41] phi assertType::t1#16 = TYPEID_LONG [phi:testSimpleTypes::@12->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_LONG jsr assertType // [34] phi from testSimpleTypes::@12 to testSimpleTypes::@13 [phi:testSimpleTypes::@12->testSimpleTypes::@13] // testSimpleTypes::@13 // assertType(typeid(12sl), typeid(signed dword)) - // [35] call assertType + // [35] call assertType // [41] phi from testSimpleTypes::@13 to assertType [phi:testSimpleTypes::@13->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@13->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@13->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@13->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_DWORD + // [41] phi assertType::t2#16 = TYPEID_LONG [phi:testSimpleTypes::@13->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_LONG + // [41] phi assertType::t1#16 = TYPEID_LONG [phi:testSimpleTypes::@13->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_LONG jsr assertType // [36] phi from testSimpleTypes::@13 to testSimpleTypes::@14 [phi:testSimpleTypes::@13->testSimpleTypes::@14] // testSimpleTypes::@14 // assertType(typeid(12l), typeid(signed dword)) - // [37] call assertType + // [37] call assertType // [41] phi from testSimpleTypes::@14 to assertType [phi:testSimpleTypes::@14->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@14->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@14->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD - // [41] phi assertType::t1#16 = TYPEID_SIGNED_DWORD [phi:testSimpleTypes::@14->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_SIGNED_DWORD + // [41] phi assertType::t2#16 = TYPEID_LONG [phi:testSimpleTypes::@14->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_LONG + // [41] phi assertType::t1#16 = TYPEID_LONG [phi:testSimpleTypes::@14->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_LONG jsr assertType // [38] phi from testSimpleTypes::@14 to testSimpleTypes::@15 [phi:testSimpleTypes::@14->testSimpleTypes::@15] // testSimpleTypes::@15 // assertType(typeid(12u), typeid(unsigned word)) - // [39] call assertType + // [39] call assertType // [41] phi from testSimpleTypes::@15 to assertType [phi:testSimpleTypes::@15->assertType] // [41] phi idx#44 = idx#20 [phi:testSimpleTypes::@15->assertType#0] -- register_copy - // [41] phi assertType::t2#16 = TYPEID_WORD [phi:testSimpleTypes::@15->assertType#1] -- vbuyy=vbuc1 - ldy #TYPEID_WORD - // [41] phi assertType::t1#16 = TYPEID_WORD [phi:testSimpleTypes::@15->assertType#2] -- vbuxx=vbuc1 - ldx #TYPEID_WORD + // [41] phi assertType::t2#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@15->assertType#1] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT + // [41] phi assertType::t1#16 = TYPEID_UNSIGNED_INT [phi:testSimpleTypes::@15->assertType#2] -- vbuxx=vbuc1 + ldx #TYPEID_UNSIGNED_INT jsr assertType // testSimpleTypes::@return // } @@ -1507,7 +1507,7 @@ testSimpleTypes: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(X) t1, byte register(Y) t2) +// void assertType(__register(X) char t1, __register(Y) char t2) assertType: { // if(t1==t2) // [42] if(assertType::t1#16==assertType::t2#16) goto assertType::@1 -- vbuxx_eq_vbuyy_then_la1 diff --git a/src/test/ref/int-literals.sym b/src/test/ref/int-literals.sym index 83b2c1164..4924b20a7 100644 --- a/src/test/ref/int-literals.sym +++ b/src/test/ref/int-literals.sym @@ -1,25 +1,25 @@ -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#16 reg byte x 50.5 -byte assertType::t2 -byte assertType::t2#16 reg byte y 101.0 -byte idx -byte idx#20 idx zp[1]:4 8.3125 -byte idx#44 idx zp[1]:4 113.8 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#16 // reg byte x 50.5 +char assertType::t2 +char assertType::t2#16 // reg byte y 101.0 +char idx +char idx#20 // idx zp[1]:4 8.3125 +char idx#44 // idx zp[1]:4 113.8 void main() -byte* main::s -byte* main::s#1 s zp[2]:2 22.0 -byte* main::s#2 s zp[2]:2 14.666666666666666 +char *main::s +char *main::s#1 // s zp[2]:2 22.0 +char *main::s#2 // s zp[2]:2 14.666666666666666 void testSimpleTypes() zp[2]:2 [ main::s#2 main::s#1 ] diff --git a/src/test/ref/intermediates-simple.asm b/src/test/ref/intermediates-simple.asm index 5a722925a..df8da5329 100644 --- a/src/test/ref/intermediates-simple.asm +++ b/src/test/ref/intermediates-simple.asm @@ -50,7 +50,7 @@ main: { inx jmp __b2 } -// sum(byte register(A) a, byte register(X) b) +// __register(A) char sum(__register(A) char a, __register(X) char b) sum: { // a+b stx.z $ff diff --git a/src/test/ref/intermediates-simple.cfg b/src/test/ref/intermediates-simple.cfg index e6714a937..a6aa23dc1 100644 --- a/src/test/ref/intermediates-simple.cfg +++ b/src/test/ref/intermediates-simple.cfg @@ -25,7 +25,7 @@ main::@3: scope:[main] from main::@2 [9] idx#0 = ++ idx#11 [10] sum::a#0 = main::i#2 [11] sum::b#0 = main::j#2 - [12] call sum + [12] call sum [13] sum::return#0 = sum::return#1 to:main::@5 main::@5: scope:[main] from main::@3 @@ -35,7 +35,7 @@ main::@5: scope:[main] from main::@3 [17] main::j#1 = ++ main::j#2 to:main::@2 -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@3 [18] sum::return#1 = sum::a#0 + sum::b#0 to:sum::@return diff --git a/src/test/ref/intermediates-simple.log b/src/test/ref/intermediates-simple.log index ebe3259ea..44899fb3d 100644 --- a/src/test/ref/intermediates-simple.log +++ b/src/test/ref/intermediates-simple.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$2 Eliminating unused variable with no statement main::$3 @@ -36,7 +36,7 @@ main::@4: scope:[main] from main::@3 idx#0 = ++ idx#6 sum::a#0 = main::i#3 sum::b#0 = main::j#3 - call sum + call sum sum::return#0 = sum::return#2 to:main::@6 main::@6: scope:[main] from main::@4 @@ -60,7 +60,7 @@ main::@return: scope:[main] from main::@1 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@4 sum::b#1 = phi( main::@4/sum::b#0 ) sum::a#1 = phi( main::@4/sum::a#0 ) @@ -81,7 +81,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#13 = phi( __start::__init1/idx#3 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#9 = phi( __start::@1/idx#2 ) @@ -94,72 +94,72 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::x -byte main::x#0 -byte main::y -byte main::y#0 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 +bool main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::x +char main::x#0 +char main::y +char main::y#0 +char sum(char a , char b) +char sum::$0 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 < 5 Adding number conversion cast (unumber) 5 in main::$1 = main::j#2 < 5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#6 Alias idx#12 = idx#16 idx#8 idx#2 @@ -245,7 +245,7 @@ main::@3: scope:[main] from main::@2 [9] idx#0 = ++ idx#11 [10] sum::a#0 = main::i#2 [11] sum::b#0 = main::j#2 - [12] call sum + [12] call sum [13] sum::return#0 = sum::return#1 to:main::@5 main::@5: scope:[main] from main::@3 @@ -255,7 +255,7 @@ main::@5: scope:[main] from main::@3 [17] main::j#1 = ++ main::j#2 to:main::@2 -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@3 [18] sum::return#1 = sum::a#0 + sum::b#0 to:sum::@return @@ -265,30 +265,30 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS -byte idx -byte idx#0 43.285714285714285 -byte idx#1 101.0 -byte idx#11 65.0 -byte idx#12 11.0 +char idx +char idx#0 // 43.285714285714285 +char idx#1 // 101.0 +char idx#11 // 65.0 +char idx#12 // 11.0 void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 15.666666666666668 -byte main::j -byte main::j#1 202.0 -byte main::j#2 42.08333333333333 -byte main::x -byte main::x#0 202.0 -byte main::y -byte main::y#0 202.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 551.0 -byte sum::b -byte sum::b#0 1102.0 -byte sum::return -byte sum::return#0 202.0 -byte sum::return#1 367.33333333333337 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 15.666666666666668 +char main::j +char main::j#1 // 202.0 +char main::j#2 // 42.08333333333333 +char main::x +char main::x#0 // 202.0 +char main::y +char main::y#0 // 202.0 +char sum(char a , char b) +char sum::a +char sum::a#0 // 551.0 +char sum::b +char sum::b#0 // 1102.0 +char sum::return +char sum::return#0 // 202.0 +char sum::return#1 // 367.33333333333337 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -426,7 +426,7 @@ main: { // [10] sum::a#0 = main::i#2 -- vbuaa=vbuz1 lda.z i // [11] sum::b#0 = main::j#2 - // [12] call sum + // [12] call sum jsr sum // [13] sum::return#0 = sum::return#1 jmp __b5 @@ -446,7 +446,7 @@ main: { jmp __b2 } // sum -// sum(byte register(A) a, byte register(X) b) +// __register(A) char sum(__register(A) char a, __register(X) char b) sum: { // [18] sum::return#1 = sum::a#0 + sum::b#0 -- vbuaa=vbuaa_plus_vbuxx stx.z $ff @@ -481,31 +481,31 @@ Relabelling long label __b2_from___b1 to __b4 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#0 reg byte y 43.285714285714285 -byte idx#1 reg byte y 101.0 -byte idx#11 reg byte y 65.0 -byte idx#12 reg byte y 11.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#0 // reg byte y 43.285714285714285 +char idx#1 // reg byte y 101.0 +char idx#11 // reg byte y 65.0 +char idx#12 // reg byte y 11.0 void main() -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 15.666666666666668 -byte main::j -byte main::j#1 reg byte x 202.0 -byte main::j#2 reg byte x 42.08333333333333 -byte main::x -byte main::x#0 reg byte a 202.0 -byte main::y -byte main::y#0 reg byte a 202.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 reg byte a 551.0 -byte sum::b -byte sum::b#0 reg byte x 1102.0 -byte sum::return -byte sum::return#0 reg byte a 202.0 -byte sum::return#1 reg byte a 367.33333333333337 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 15.666666666666668 +char main::j +char main::j#1 // reg byte x 202.0 +char main::j#2 // reg byte x 42.08333333333333 +char main::x +char main::x#0 // reg byte a 202.0 +char main::y +char main::y#0 // reg byte a 202.0 +char sum(char a , char b) +char sum::a +char sum::a#0 // reg byte a 551.0 +char sum::b +char sum::b#0 // reg byte x 1102.0 +char sum::return +char sum::return#0 // reg byte a 202.0 +char sum::return#1 // reg byte a 367.33333333333337 zp[1]:2 [ main::i#2 main::i#1 ] reg byte y [ idx#12 idx#11 idx#1 ] @@ -592,7 +592,7 @@ main: { // [10] sum::a#0 = main::i#2 -- vbuaa=vbuz1 lda.z i // [11] sum::b#0 = main::j#2 - // [12] call sum + // [12] call sum jsr sum // [13] sum::return#0 = sum::return#1 // main::@5 @@ -612,7 +612,7 @@ main: { jmp __b2 } // sum -// sum(byte register(A) a, byte register(X) b) +// __register(A) char sum(__register(A) char a, __register(X) char b) sum: { // a+b // [18] sum::return#1 = sum::a#0 + sum::b#0 -- vbuaa=vbuaa_plus_vbuxx diff --git a/src/test/ref/intermediates-simple.sym b/src/test/ref/intermediates-simple.sym index e81a5c179..04cbaa7c5 100644 --- a/src/test/ref/intermediates-simple.sym +++ b/src/test/ref/intermediates-simple.sym @@ -1,28 +1,28 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#0 reg byte y 43.285714285714285 -byte idx#1 reg byte y 101.0 -byte idx#11 reg byte y 65.0 -byte idx#12 reg byte y 11.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#0 // reg byte y 43.285714285714285 +char idx#1 // reg byte y 101.0 +char idx#11 // reg byte y 65.0 +char idx#12 // reg byte y 11.0 void main() -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 15.666666666666668 -byte main::j -byte main::j#1 reg byte x 202.0 -byte main::j#2 reg byte x 42.08333333333333 -byte main::x -byte main::x#0 reg byte a 202.0 -byte main::y -byte main::y#0 reg byte a 202.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 reg byte a 551.0 -byte sum::b -byte sum::b#0 reg byte x 1102.0 -byte sum::return -byte sum::return#0 reg byte a 202.0 -byte sum::return#1 reg byte a 367.33333333333337 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 15.666666666666668 +char main::j +char main::j#1 // reg byte x 202.0 +char main::j#2 // reg byte x 42.08333333333333 +char main::x +char main::x#0 // reg byte a 202.0 +char main::y +char main::y#0 // reg byte a 202.0 +char sum(char a , char b) +char sum::a +char sum::a#0 // reg byte a 551.0 +char sum::b +char sum::b#0 // reg byte x 1102.0 +char sum::return +char sum::return#0 // reg byte a 202.0 +char sum::return#1 // reg byte a 367.33333333333337 zp[1]:2 [ main::i#2 main::i#1 ] reg byte y [ idx#12 idx#11 idx#1 ] diff --git a/src/test/ref/intermediates-struct.asm b/src/test/ref/intermediates-struct.asm index 69bed594d..90474b9eb 100644 --- a/src/test/ref/intermediates-struct.asm +++ b/src/test/ref/intermediates-struct.asm @@ -45,7 +45,7 @@ main: { // } rts } -// sum(byte register(A) a, byte register(X) b) +// __zp(6) struct Data sum(__register(A) char a, __register(X) char b) sum: { .label return = 6 .label d = 8 diff --git a/src/test/ref/intermediates-struct.cfg b/src/test/ref/intermediates-struct.cfg index 97b0dff8d..227b482d8 100644 --- a/src/test/ref/intermediates-struct.cfg +++ b/src/test/ref/intermediates-struct.cfg @@ -2,28 +2,28 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum to:main::@1 main::@1: scope:[main] from main [2] *(&main::x) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) - [3] *SCREEN = *((byte*)&main::x) - [4] call sum + [3] *SCREEN = *((char *)&main::x) + [4] call sum to:main::@2 main::@2: scope:[main] from main::@1 [5] *(&main::y) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) - [6] *(SCREEN+1) = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) + [6] *(SCREEN+1) = *((char *)&main::y+OFFSET_STRUCT_DATA_D) to:main::@return main::@return: scope:[main] from main::@2 [7] return to:@return -struct Data sum(byte sum::a , byte sum::b) +struct Data sum(char a , char b) sum: scope:[sum] from main main::@1 [8] sum::b#2 = phi( main/2, main::@1/4 ) [8] sum::a#2 = phi( main/1, main::@1/3 ) [9] sum::$0 = sum::a#2 + sum::b#2 - [10] *((byte*)&sum::d) = sum::$0 - [11] *((byte*)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 + [10] *((char *)&sum::d) = sum::$0 + [11] *((char *)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 [12] *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) to:sum::@return sum::@return: scope:[sum] from sum diff --git a/src/test/ref/intermediates-struct.log b/src/test/ref/intermediates-struct.log index 73724d9c7..f8323ec77 100644 --- a/src/test/ref/intermediates-struct.log +++ b/src/test/ref/intermediates-struct.log @@ -1,7 +1,7 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 -Removing C-classic struct-unwound assignment sum::d = struct-unwound {*((byte*)&sum::d+OFFSET_STRUCT_DATA_C), *((byte*)&sum::d+OFFSET_STRUCT_DATA_D)} +Removing C-classic struct-unwound assignment sum::d = struct-unwound {*((char *)&sum::d+OFFSET_STRUCT_DATA_C), *((char *)&sum::d+OFFSET_STRUCT_DATA_D)} Removing C-classic struct-unwound assignment sum::return = struct-unwound {*(&sum::return)} CONTROL FLOW GRAPH SSA @@ -11,23 +11,23 @@ main: scope:[main] from __start::@1 idx#11 = phi( __start::@1/idx#12 ) sum::a#0 = 1 sum::b#0 = 2 - call sum + call sum sum::return = sum::return to:main::@1 main::@1: scope:[main] from main idx#6 = phi( main/idx#11 ) main::x = sum::return - SCREEN[idx#6] = *((byte*)&main::x+OFFSET_STRUCT_DATA_C) + SCREEN[idx#6] = *((char *)&main::x+OFFSET_STRUCT_DATA_C) idx#0 = ++ idx#6 sum::a#1 = 3 sum::b#1 = 4 - call sum + call sum sum::return = sum::return to:main::@2 main::@2: scope:[main] from main::@1 idx#7 = phi( main::@1/idx#0 ) main::y = sum::return - SCREEN[idx#7] = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) + SCREEN[idx#7] = *((char *)&main::y+OFFSET_STRUCT_DATA_D) idx#1 = ++ idx#7 to:main::@return main::@return: scope:[main] from main::@2 @@ -36,13 +36,13 @@ main::@return: scope:[main] from main::@2 return to:@return -struct Data sum(byte sum::a , byte sum::b) +struct Data sum(char a , char b) sum: scope:[sum] from main main::@1 sum::b#2 = phi( main/sum::b#0, main::@1/sum::b#1 ) sum::a#2 = phi( main/sum::a#0, main::@1/sum::a#1 ) sum::$0 = sum::a#2 + sum::b#2 - *((byte*)&sum::d+OFFSET_STRUCT_DATA_C) = sum::$0 - *((byte*)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 + *((char *)&sum::d+OFFSET_STRUCT_DATA_C) = sum::$0 + *((char *)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) to:sum::@return sum::@return: scope:[sum] from sum @@ -57,7 +57,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#12 = phi( __start::__init1/idx#3 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#9 = phi( __start::@1/idx#2 ) @@ -70,40 +70,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_DATA_C = 0 -constant byte OFFSET_STRUCT_DATA_D = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_DATA = 2 +__constant char OFFSET_STRUCT_DATA_C = 0 +__constant char OFFSET_STRUCT_DATA_D = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_DATA = 2 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -struct Data main::x loadstore -struct Data main::y loadstore -struct Data sum(byte sum::a , byte sum::b) -byte~ sum::$0 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -struct Data sum::d loadstore -struct Data sum::return loadstore +__loadstore struct Data main::x +__loadstore struct Data main::y +struct Data sum(char a , char b) +char sum::$0 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +__loadstore struct Data sum::d +__loadstore struct Data sum::return Adding number conversion cast (unumber) 1 in sum::a#0 = 1 Adding number conversion cast (unumber) 2 in sum::b#0 = 2 @@ -115,16 +115,16 @@ Inlining cast sum::b#0 = (unumber)2 Inlining cast sum::a#1 = (unumber)3 Inlining cast sum::b#1 = (unumber)4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#11 = idx#6 Alias idx#0 = idx#7 @@ -141,9 +141,9 @@ Constant sum::a#1 = 3 Constant sum::b#1 = 4 Constant idx#12 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)&main::x in [6] SCREEN[idx#12] = *((byte*)&main::x+OFFSET_STRUCT_DATA_C) -Simplifying expression containing zero SCREEN in [6] SCREEN[idx#12] = *((byte*)&main::x) -Simplifying expression containing zero (byte*)&sum::d in [18] *((byte*)&sum::d+OFFSET_STRUCT_DATA_C) = sum::$0 +Simplifying expression containing zero (char *)&main::x in [6] SCREEN[idx#12] = *((char *)&main::x+OFFSET_STRUCT_DATA_C) +Simplifying expression containing zero SCREEN in [6] SCREEN[idx#12] = *((char *)&main::x) +Simplifying expression containing zero (char *)&sum::d in [18] *((char *)&sum::d+OFFSET_STRUCT_DATA_C) = sum::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable idx#1 and assignment [9] idx#1 = ++ idx#0 Eliminating unused constant OFFSET_STRUCT_DATA_C @@ -193,28 +193,28 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum to:main::@1 main::@1: scope:[main] from main [2] *(&main::x) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) - [3] *SCREEN = *((byte*)&main::x) - [4] call sum + [3] *SCREEN = *((char *)&main::x) + [4] call sum to:main::@2 main::@2: scope:[main] from main::@1 [5] *(&main::y) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) - [6] *(SCREEN+1) = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) + [6] *(SCREEN+1) = *((char *)&main::y+OFFSET_STRUCT_DATA_D) to:main::@return main::@return: scope:[main] from main::@2 [7] return to:@return -struct Data sum(byte sum::a , byte sum::b) +struct Data sum(char a , char b) sum: scope:[sum] from main main::@1 [8] sum::b#2 = phi( main/2, main::@1/4 ) [8] sum::a#2 = phi( main/1, main::@1/3 ) [9] sum::$0 = sum::a#2 + sum::b#2 - [10] *((byte*)&sum::d) = sum::$0 - [11] *((byte*)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 + [10] *((char *)&sum::d) = sum::$0 + [11] *((char *)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 [12] *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) to:sum::@return sum::@return: scope:[sum] from sum @@ -223,18 +223,18 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() -struct Data main::x loadstore -struct Data main::y loadstore -struct Data sum(byte sum::a , byte sum::b) -byte~ sum::$0 22.0 -byte sum::a -byte sum::a#2 11.0 -byte sum::b -byte sum::b#2 7.333333333333333 -struct Data sum::d loadstore -struct Data sum::return loadstore +__loadstore struct Data main::x +__loadstore struct Data main::y +struct Data sum(char a , char b) +char sum::$0 // 22.0 +char sum::a +char sum::a#2 // 11.0 +char sum::b +char sum::b#2 // 7.333333333333333 +__loadstore struct Data sum::d +__loadstore struct Data sum::return Initial phi equivalence classes [ sum::a#2 ] @@ -261,16 +261,16 @@ Allocated zp[2]:9 [ sum::return ] Allocated zp[2]:11 [ sum::d ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] *(&main::x) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) [ main::x sum::return main::y sum::d ] ( [ main::x sum::return main::y sum::d ] { } ) always clobbers reg byte a reg byte y -Statement [3] *SCREEN = *((byte*)&main::x) [ sum::return main::y sum::d ] ( [ sum::return main::y sum::d ] { } ) always clobbers reg byte a +Statement [3] *SCREEN = *((char *)&main::x) [ sum::return main::y sum::d ] ( [ sum::return main::y sum::d ] { } ) always clobbers reg byte a Statement [5] *(&main::y) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) [ main::y ] ( [ main::y ] { } ) always clobbers reg byte a reg byte y -Statement [6] *(SCREEN+1) = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+1) = *((char *)&main::y+OFFSET_STRUCT_DATA_D) [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] sum::$0 = sum::a#2 + sum::b#2 [ sum::return sum::b#2 sum::$0 sum::d ] ( sum:1 [ main::x main::y sum::return sum::b#2 sum::$0 sum::d ] { } sum:4 [ main::y sum::return sum::b#2 sum::$0 sum::d ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ sum::b#2 ] Statement [12] *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) [ sum::return sum::d ] ( sum:1 [ main::x main::y sum::return sum::d ] { } sum:4 [ main::y sum::return sum::d ] { } ) always clobbers reg byte a reg byte y Statement [2] *(&main::x) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) [ main::x sum::return main::y sum::d ] ( [ main::x sum::return main::y sum::d ] { } ) always clobbers reg byte a reg byte y -Statement [3] *SCREEN = *((byte*)&main::x) [ sum::return main::y sum::d ] ( [ sum::return main::y sum::d ] { } ) always clobbers reg byte a +Statement [3] *SCREEN = *((char *)&main::x) [ sum::return main::y sum::d ] ( [ sum::return main::y sum::d ] { } ) always clobbers reg byte a Statement [5] *(&main::y) = memcpy(*(&sum::return), struct Data, SIZEOF_STRUCT_DATA) [ main::y ] ( [ main::y ] { } ) always clobbers reg byte a reg byte y -Statement [6] *(SCREEN+1) = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+1) = *((char *)&main::y+OFFSET_STRUCT_DATA_D) [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] sum::$0 = sum::a#2 + sum::b#2 [ sum::return sum::b#2 sum::$0 sum::d ] ( sum:1 [ main::x main::y sum::return sum::b#2 sum::$0 sum::d ] { } sum:4 [ main::y sum::return sum::b#2 sum::$0 sum::d ] { } ) always clobbers reg byte a Statement [12] *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) [ sum::return sum::d ] ( sum:1 [ main::x main::y sum::return sum::d ] { } sum:4 [ main::y sum::return sum::d ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ sum::a#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -317,7 +317,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label x = 2 .label y = 4 - // [1] call sum + // [1] call sum // [8] phi from main to sum [phi:main->sum] sum_from_main: // [8] phi sum::b#2 = 2 [phi:main->sum#0] -- vbuxx=vbuc1 @@ -335,10 +335,10 @@ main: { sta x-1,y dey bne !- - // [3] *SCREEN = *((byte*)&main::x) -- _deref_pbuc1=_deref_pbuc2 + // [3] *SCREEN = *((char *)&main::x) -- _deref_pbuc1=_deref_pbuc2 lda.z x sta SCREEN - // [4] call sum + // [4] call sum // [8] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [8] phi sum::b#2 = 4 [phi:main::@1->sum#0] -- vbuxx=vbuc1 @@ -356,7 +356,7 @@ main: { sta y-1,y dey bne !- - // [6] *(SCREEN+1) = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+1) = *((char *)&main::y+OFFSET_STRUCT_DATA_D) -- _deref_pbuc1=_deref_pbuc2 lda y+OFFSET_STRUCT_DATA_D sta SCREEN+1 jmp __breturn @@ -366,7 +366,7 @@ main: { rts } // sum -// sum(byte register(A) a, byte register(X) b) +// __zp(6) struct Data sum(__register(A) char a, __register(X) char b) sum: { .label return = 6 .label d = 8 @@ -374,9 +374,9 @@ sum: { stx.z $ff clc adc.z $ff - // [10] *((byte*)&sum::d) = sum::$0 -- _deref_pbuc1=vbuaa + // [10] *((char *)&sum::d) = sum::$0 -- _deref_pbuc1=vbuaa sta.z d - // [11] *((byte*)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 -- _deref_pbuc1=vbuxx + // [11] *((char *)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 -- _deref_pbuc1=vbuxx stx d+OFFSET_STRUCT_DATA_D // [12] *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_DATA @@ -408,21 +408,21 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_DATA_D = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_DATA = 2 -byte idx +__constant char OFFSET_STRUCT_DATA_D = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_DATA = 2 +char idx void main() -struct Data main::x loadstore zp[2]:2 -struct Data main::y loadstore zp[2]:4 -struct Data sum(byte sum::a , byte sum::b) -byte~ sum::$0 reg byte a 22.0 -byte sum::a -byte sum::a#2 reg byte a 11.0 -byte sum::b -byte sum::b#2 reg byte x 7.333333333333333 -struct Data sum::d loadstore zp[2]:8 -struct Data sum::return loadstore zp[2]:6 +__loadstore struct Data main::x // zp[2]:2 +__loadstore struct Data main::y // zp[2]:4 +struct Data sum(char a , char b) +char sum::$0 // reg byte a 22.0 +char sum::a +char sum::a#2 // reg byte a 11.0 +char sum::b +char sum::b#2 // reg byte x 7.333333333333333 +__loadstore struct Data sum::d // zp[2]:8 +__loadstore struct Data sum::return // zp[2]:6 reg byte a [ sum::a#2 ] reg byte x [ sum::b#2 ] @@ -457,7 +457,7 @@ main: { .label x = 2 .label y = 4 // struct Data x = sum(1,2) - // [1] call sum + // [1] call sum // [8] phi from main to sum [phi:main->sum] // [8] phi sum::b#2 = 2 [phi:main->sum#0] -- vbuxx=vbuc1 ldx #2 @@ -474,11 +474,11 @@ main: { dey bne !- // SCREEN[idx++] = x.c - // [3] *SCREEN = *((byte*)&main::x) -- _deref_pbuc1=_deref_pbuc2 + // [3] *SCREEN = *((char *)&main::x) -- _deref_pbuc1=_deref_pbuc2 lda.z x sta SCREEN // struct Data y = sum(3, 4) - // [4] call sum + // [4] call sum // [8] phi from main::@1 to sum [phi:main::@1->sum] // [8] phi sum::b#2 = 4 [phi:main::@1->sum#0] -- vbuxx=vbuc1 ldx #4 @@ -495,7 +495,7 @@ main: { dey bne !- // SCREEN[idx++] = y.d - // [6] *(SCREEN+1) = *((byte*)&main::y+OFFSET_STRUCT_DATA_D) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+1) = *((char *)&main::y+OFFSET_STRUCT_DATA_D) -- _deref_pbuc1=_deref_pbuc2 lda y+OFFSET_STRUCT_DATA_D sta SCREEN+1 // main::@return @@ -504,7 +504,7 @@ main: { rts } // sum -// sum(byte register(A) a, byte register(X) b) +// __zp(6) struct Data sum(__register(A) char a, __register(X) char b) sum: { .label return = 6 .label d = 8 @@ -514,9 +514,9 @@ sum: { clc adc.z $ff // struct Data d = { a+b, b } - // [10] *((byte*)&sum::d) = sum::$0 -- _deref_pbuc1=vbuaa + // [10] *((char *)&sum::d) = sum::$0 -- _deref_pbuc1=vbuaa sta.z d - // [11] *((byte*)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 -- _deref_pbuc1=vbuxx + // [11] *((char *)&sum::d+OFFSET_STRUCT_DATA_D) = sum::b#2 -- _deref_pbuc1=vbuxx stx d+OFFSET_STRUCT_DATA_D // return d; // [12] *(&sum::return) = memcpy(*(&sum::d), struct Data, SIZEOF_STRUCT_DATA) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 diff --git a/src/test/ref/intermediates-struct.sym b/src/test/ref/intermediates-struct.sym index c5e94696d..f4c14cdab 100644 --- a/src/test/ref/intermediates-struct.sym +++ b/src/test/ref/intermediates-struct.sym @@ -1,18 +1,18 @@ -constant byte OFFSET_STRUCT_DATA_D = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_DATA = 2 -byte idx +__constant char OFFSET_STRUCT_DATA_D = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_DATA = 2 +char idx void main() -struct Data main::x loadstore zp[2]:2 -struct Data main::y loadstore zp[2]:4 -struct Data sum(byte sum::a , byte sum::b) -byte~ sum::$0 reg byte a 22.0 -byte sum::a -byte sum::a#2 reg byte a 11.0 -byte sum::b -byte sum::b#2 reg byte x 7.333333333333333 -struct Data sum::d loadstore zp[2]:8 -struct Data sum::return loadstore zp[2]:6 +__loadstore struct Data main::x // zp[2]:2 +__loadstore struct Data main::y // zp[2]:4 +struct Data sum(char a , char b) +char sum::$0 // reg byte a 22.0 +char sum::a +char sum::a#2 // reg byte a 11.0 +char sum::b +char sum::b#2 // reg byte x 7.333333333333333 +__loadstore struct Data sum::d // zp[2]:8 +__loadstore struct Data sum::return // zp[2]:6 reg byte a [ sum::a#2 ] reg byte x [ sum::b#2 ] diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.log b/src/test/ref/interrupt-volatile-reuse-problem1.log index daa5aa3b9..60e6229f4 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.log +++ b/src/test/ref/interrupt-volatile-reuse-problem1.log @@ -1,5 +1,5 @@ Resolved forward reference irq to __interrupt(rom_min_c64) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -30,7 +30,7 @@ __start::__init1: scope:[__start] from __start col2 = 8 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -39,24 +39,24 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* const SCREEN = (byte*)$400 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte col1 loadstore -volatile byte col2 loadstore +__loadstore volatile char col1 +__loadstore volatile char col2 __interrupt(rom_min_c64) void irq() void main() Adding number conversion cast (unumber) $28 in SCREEN[$28] = col1 Adding number conversion cast (unumber) $29 in SCREEN[$29] = col2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $29 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $29 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $29 Successful SSA optimization PassNFinalizeNumberTypeConversions Consolidated array index constant in *(SCREEN+$28) Consolidated array index constant in *(SCREEN+$29) @@ -85,7 +85,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -113,8 +113,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() -volatile byte col1 loadstore 8.0 -volatile byte col2 loadstore 2.6666666666666665 +__loadstore volatile char col1 // 8.0 +__loadstore volatile char col2 // 2.6666666666666665 __interrupt(rom_min_c64) void irq() void main() @@ -184,7 +184,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main jsr main jmp __breturn // __start::@return @@ -244,11 +244,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte col1 loadstore zp[1]:2 8.0 -volatile byte col2 loadstore zp[1]:3 2.6666666666666665 +__loadstore volatile char col1 // zp[1]:2 8.0 +__loadstore volatile char col2 // zp[1]:3 2.6666666666666665 __interrupt(rom_min_c64) void irq() void main() @@ -289,7 +289,7 @@ __start: { sta.z col2 // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main jsr main // __start::@return // [5] return diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.sym b/src/test/ref/interrupt-volatile-reuse-problem1.sym index 5671d403d..8b5376181 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem1.sym +++ b/src/test/ref/interrupt-volatile-reuse-problem1.sym @@ -1,8 +1,8 @@ -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte col1 loadstore zp[1]:2 8.0 -volatile byte col2 loadstore zp[1]:3 2.6666666666666665 +__loadstore volatile char col1 // zp[1]:2 8.0 +__loadstore volatile char col2 // zp[1]:3 2.6666666666666665 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.log b/src/test/ref/interrupt-volatile-reuse-problem2.log index 927eb9c1e..35f73faad 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.log +++ b/src/test/ref/interrupt-volatile-reuse-problem2.log @@ -1,5 +1,5 @@ Resolved forward reference irq to __interrupt(rom_min_c64) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -67,7 +67,7 @@ __start::__init1: scope:[__start] from __start col1 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -76,49 +76,49 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const IRQ_STATUS = (byte*)$d019 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* const SCREEN = (byte*)$400 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte col1 loadstore +__loadstore volatile char col1 __interrupt(rom_min_c64) void irq() void main() -byte~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -byte main::x#5 -byte main::x#6 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 +char main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +char main::x#5 +char main::x#6 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 Adding number conversion cast (unumber) 1 in *IRQ_STATUS = 1 Adding number conversion cast (unumber) $28 in SCREEN[$28] = col1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *IRQ_STATUS = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::y#2 = main::y#3 Alias main::x#2 = main::x#5 main::x#3 @@ -154,9 +154,9 @@ Simplifying constant integer cast $b Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::x#0 Inlining constant with var siblings main::y#0 @@ -209,7 +209,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -258,19 +258,19 @@ main::@6: scope:[main] from main::@5 VARIABLE REGISTER WEIGHTS void __start() -volatile byte col1 loadstore 2.6666666666666665 +__loadstore volatile char col1 // 2.6666666666666665 __interrupt(rom_min_c64) void irq() void main() -byte~ main::$0 200002.0 -byte main::a -byte main::a#1 150001.5 -byte main::a#2 100001.0 -byte main::x -byte main::x#1 701.0 -byte main::x#6 11233.666666666668 -byte main::y -byte main::y#1 15001.5 -byte main::y#4 20000.499999999996 +char main::$0 // 200002.0 +char main::a +char main::a#1 // 150001.5 +char main::a#2 // 100001.0 +char main::x +char main::x#1 // 701.0 +char main::x#6 // 11233.666666666668 +char main::y +char main::y#1 // 15001.5 +char main::y#4 // 20000.499999999996 Initial phi equivalence classes [ main::x#6 main::x#1 ] @@ -360,7 +360,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -513,23 +513,23 @@ Removing unreachable instruction jmp __b1 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte col1 loadstore zp[1]:3 2.6666666666666665 +__loadstore volatile char col1 // zp[1]:3 2.6666666666666665 __interrupt(rom_min_c64) void irq() void main() -byte~ main::$0 reg byte a 200002.0 -byte main::a -byte main::a#1 reg byte y 150001.5 -byte main::a#2 reg byte y 100001.0 -byte main::x -byte main::x#1 reg byte x 701.0 -byte main::x#6 reg byte x 11233.666666666668 -byte main::y -byte main::y#1 y zp[1]:2 15001.5 -byte main::y#4 y zp[1]:2 20000.499999999996 +char main::$0 // reg byte a 200002.0 +char main::a +char main::a#1 // reg byte y 150001.5 +char main::a#2 // reg byte y 100001.0 +char main::x +char main::x#1 // reg byte x 701.0 +char main::x#6 // reg byte x 11233.666666666668 +char main::y +char main::y#1 // y zp[1]:2 15001.5 +char main::y#4 // y zp[1]:2 20000.499999999996 reg byte x [ main::x#6 main::x#1 ] zp[1]:2 [ main::y#4 main::y#1 ] @@ -567,7 +567,7 @@ __start: { sta.z col1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.sym b/src/test/ref/interrupt-volatile-reuse-problem2.sym index 61b75f7e1..35a6a7cd2 100644 --- a/src/test/ref/interrupt-volatile-reuse-problem2.sym +++ b/src/test/ref/interrupt-volatile-reuse-problem2.sym @@ -1,20 +1,20 @@ -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte col1 loadstore zp[1]:3 2.6666666666666665 +__loadstore volatile char col1 // zp[1]:3 2.6666666666666665 __interrupt(rom_min_c64) void irq() void main() -byte~ main::$0 reg byte a 200002.0 -byte main::a -byte main::a#1 reg byte y 150001.5 -byte main::a#2 reg byte y 100001.0 -byte main::x -byte main::x#1 reg byte x 701.0 -byte main::x#6 reg byte x 11233.666666666668 -byte main::y -byte main::y#1 y zp[1]:2 15001.5 -byte main::y#4 y zp[1]:2 20000.499999999996 +char main::$0 // reg byte a 200002.0 +char main::a +char main::a#1 // reg byte y 150001.5 +char main::a#2 // reg byte y 100001.0 +char main::x +char main::x#1 // reg byte x 701.0 +char main::x#6 // reg byte x 11233.666666666668 +char main::y +char main::y#1 // y zp[1]:2 15001.5 +char main::y#4 // y zp[1]:2 20000.499999999996 reg byte x [ main::x#6 main::x#1 ] zp[1]:2 [ main::y#4 main::y#1 ] diff --git a/src/test/ref/irq-hardware-clobber-jsr.cfg b/src/test/ref/irq-hardware-clobber-jsr.cfg index 7adfee881..025bf27c4 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.cfg +++ b/src/test/ref/irq-hardware-clobber-jsr.cfg @@ -2,7 +2,7 @@ __interrupt(hardware_clobber) void irq() irq: scope:[irq] from [0] phi() - [1] call do_irq + [1] call do_irq to:irq::@return irq::@return: scope:[irq] from irq [2] return @@ -13,7 +13,7 @@ main: scope:[main] from asm { sei } [4] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [5] *PROCPORT = PROCPORT_RAM_IO - [6] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [8] *RASTER = 0 [9] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-hardware-clobber-jsr.log b/src/test/ref/irq-hardware-clobber-jsr.log index 61e7c20f7..5deadb339 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.log +++ b/src/test/ref/irq-hardware-clobber-jsr.log @@ -8,7 +8,7 @@ main: scope:[main] from __start asm { sei } *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_RAM_IO - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR *VICII_CONTROL1 = *VICII_CONTROL1 | $80 *RASTER = 0 *IRQ_ENABLE = IRQ_RASTER @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@1 __interrupt(hardware_clobber) void irq() irq: scope:[irq] from - call do_irq + call do_irq to:irq::@1 irq::@1: scope:[irq] from irq to:irq::@return @@ -47,7 +47,7 @@ do_irq::@return: scope:[do_irq] from do_irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,23 +56,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte BLACK = 0 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char BLACK = 0 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char WHITE = 1 void __start() void do_irq() __interrupt(hardware_clobber) void irq() @@ -83,21 +83,21 @@ Adding number conversion cast (unumber) 0 in *RASTER = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 65534 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 65534 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions if() condition always true - replacing block destination [9] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -126,7 +126,7 @@ FINAL CONTROL FLOW GRAPH __interrupt(hardware_clobber) void irq() irq: scope:[irq] from [0] phi() - [1] call do_irq + [1] call do_irq to:irq::@return irq::@return: scope:[irq] from irq [2] return @@ -137,7 +137,7 @@ main: scope:[main] from asm { sei } [4] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [5] *PROCPORT = PROCPORT_RAM_IO - [6] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [8] *RASTER = 0 [9] *IRQ_ENABLE = IRQ_RASTER @@ -170,7 +170,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] return [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [4] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *PROCPORT = PROCPORT_RAM_IO [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *VICII_CONTROL1 = *VICII_CONTROL1 | $80 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *RASTER = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *IRQ_ENABLE = IRQ_RASTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -271,7 +271,7 @@ ASSEMBLER BEFORE OPTIMIZATION irq: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 - // [1] call do_irq + // [1] call do_irq jsr do_irq jmp __breturn // irq::@return @@ -293,7 +293,7 @@ main: { // [5] *PROCPORT = PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [6] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT @@ -355,23 +355,23 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 void do_irq() __interrupt(hardware_clobber) void irq() void main() @@ -455,7 +455,7 @@ irq: { // interrupt(isr_hardware_clobber_entry) -- isr_hardware_all_entry sta rega+1 // do_irq() - // [1] call do_irq + // [1] call do_irq jsr do_irq // irq::@return // } @@ -480,7 +480,7 @@ main: { lda #PROCPORT_RAM_IO sta PROCPORT // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [6] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [6] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT diff --git a/src/test/ref/irq-hardware-clobber-jsr.sym b/src/test/ref/irq-hardware-clobber-jsr.sym index 0c41f9da3..e61325d70 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.sym +++ b/src/test/ref/irq-hardware-clobber-jsr.sym @@ -1,20 +1,20 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = 5 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = 5 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 void do_irq() __interrupt(hardware_clobber) void irq() void main() diff --git a/src/test/ref/irq-hardware-clobber.log b/src/test/ref/irq-hardware-clobber.log index 5e38c239e..cebfbc765 100644 --- a/src/test/ref/irq-hardware-clobber.log +++ b/src/test/ref/irq-hardware-clobber.log @@ -36,7 +36,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,22 +45,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*)$d021 -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d020 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *)$d021 +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char WHITE = 1 void __start() __interrupt(hardware_clobber) void irq() void main() @@ -70,21 +70,21 @@ Adding number conversion cast (unumber) 0 in *RASTER = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 56333 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 +Simplifying constant pointer cast (void (**)()) 65534 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 56333 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions if() condition always true - replacing block destination [9] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -272,22 +272,22 @@ Removing instruction __breturn: Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(hardware_clobber) void irq() void main() diff --git a/src/test/ref/irq-hardware-clobber.sym b/src/test/ref/irq-hardware-clobber.sym index 34cad9b50..6c8ad6a58 100644 --- a/src/test/ref/irq-hardware-clobber.sym +++ b/src/test/ref/irq-hardware-clobber.sym @@ -1,19 +1,19 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(hardware_clobber) void irq() void main() diff --git a/src/test/ref/irq-hardware-stack.log b/src/test/ref/irq-hardware-stack.log index 2cf36b659..e5ddbb839 100644 --- a/src/test/ref/irq-hardware-stack.log +++ b/src/test/ref/irq-hardware-stack.log @@ -36,7 +36,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,22 +45,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*)$d021 -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d020 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *)$d021 +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char WHITE = 1 void __start() __interrupt(hardware_all) void irq() void main() @@ -70,21 +70,21 @@ Adding number conversion cast (unumber) 0 in *RASTER = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 56333 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 +Simplifying constant pointer cast (void (**)()) 65534 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 56333 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions if() condition always true - replacing block destination [9] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -279,22 +279,22 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(hardware_all) void irq() void main() diff --git a/src/test/ref/irq-hardware-stack.sym b/src/test/ref/irq-hardware-stack.sym index d04960814..a05c1e0cd 100644 --- a/src/test/ref/irq-hardware-stack.sym +++ b/src/test/ref/irq-hardware-stack.sym @@ -1,19 +1,19 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(hardware_all) void irq() void main() diff --git a/src/test/ref/irq-hardware.log b/src/test/ref/irq-hardware.log index b62e72c4a..aaf11c577 100644 --- a/src/test/ref/irq-hardware.log +++ b/src/test/ref/irq-hardware.log @@ -36,7 +36,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,22 +45,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*)$d021 -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant byte* const PROCPORT = (byte*)1 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d020 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *)$d021 +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant char * const PROCPORT = (char *)1 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char WHITE = 1 void __start() __interrupt(hardware_all) void irq() void main() @@ -70,21 +70,21 @@ Adding number conversion cast (unumber) 0 in *RASTER = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 65534 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 56333 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 +Simplifying constant pointer cast (void (**)()) 65534 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 56333 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions if() condition always true - replacing block destination [9] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -277,22 +277,22 @@ Removing instruction __breturn: Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(hardware_all) void irq() void main() diff --git a/src/test/ref/irq-hardware.sym b/src/test/ref/irq-hardware.sym index d04960814..a05c1e0cd 100644 --- a/src/test/ref/irq-hardware.sym +++ b/src/test/ref/irq-hardware.sym @@ -1,19 +1,19 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant byte* const PROCPORT = (byte*) 1 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_RAM_IO = $35 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant char * const PROCPORT = (char *) 1 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_RAM_IO = $35 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(hardware_all) void irq() void main() diff --git a/src/test/ref/irq-idx-problem.cfg b/src/test/ref/irq-idx-problem.cfg index 1a8de6f07..e66a37faa 100644 --- a/src/test/ref/irq-idx-problem.cfg +++ b/src/test/ref/irq-idx-problem.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -48,7 +48,7 @@ table_driven_irq::@2: scope:[table_driven_irq] from table_driven_irq::@1 void main() main: scope:[main] from __start::@1 asm { sei } - [19] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [21] *RASTER = $60 [22] *IRQ_ENABLE = IRQ_RASTER diff --git a/src/test/ref/irq-idx-problem.log b/src/test/ref/irq-idx-problem.log index 26ce9708b..aab5b45b6 100644 --- a/src/test/ref/irq-idx-problem.log +++ b/src/test/ref/irq-idx-problem.log @@ -1,13 +1,13 @@ Resolved forward reference table_driven_irq to __interrupt(rom_min_c64) void table_driven_irq() Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 asm { sei } - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR *VICII_CONTROL1 = *VICII_CONTROL1 & $7f *RASTER = $60 *IRQ_ENABLE = IRQ_RASTER @@ -72,7 +72,7 @@ __start::__init1: scope:[__start] from __start irq_idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -81,42 +81,42 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } -constant const byte IRQ_CHANGE_NEXT = $7f -constant byte* IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const RASTER = (byte*)$d012 -constant byte* const SCREEN = (byte*)$400 -constant byte* const VICII_BASE = (byte*)$d000 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte VICII_SIZE = $30 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } +__constant const char IRQ_CHANGE_NEXT = $7f +__constant char IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const RASTER = (char *)$d012 +__constant char * const SCREEN = (char *)$400 +__constant char * const VICII_BASE = (char *)$d000 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char VICII_SIZE = $30 void __start() -volatile byte irq_idx loadstore +__loadstore volatile char irq_idx void main() __interrupt(rom_min_c64) void table_driven_irq() -bool~ table_driven_irq::$0 -bool~ table_driven_irq::$1 -bool~ table_driven_irq::$2 -bool~ table_driven_irq::$3 -number~ table_driven_irq::$4 -number~ table_driven_irq::$5 -byte table_driven_irq::idx -byte table_driven_irq::idx#0 -byte table_driven_irq::idx#1 -byte table_driven_irq::idx#2 -byte table_driven_irq::idx#3 -byte table_driven_irq::val -byte table_driven_irq::val#0 -byte table_driven_irq::val#1 -byte table_driven_irq::val#2 -byte table_driven_irq::val#3 -byte table_driven_irq::val#4 +bool table_driven_irq::$0 +bool table_driven_irq::$1 +bool table_driven_irq::$2 +bool table_driven_irq::$3 +number table_driven_irq::$4 +number table_driven_irq::$5 +char table_driven_irq::idx +char table_driven_irq::idx#0 +char table_driven_irq::idx#1 +char table_driven_irq::idx#2 +char table_driven_irq::idx#3 +char table_driven_irq::val +char table_driven_irq::val#0 +char table_driven_irq::val#1 +char table_driven_irq::val#2 +char table_driven_irq::val#3 +char table_driven_irq::val#4 Adding number conversion cast (unumber) $7f in *VICII_CONTROL1 = *VICII_CONTROL1 & $7f Adding number conversion cast (unumber) $60 in *RASTER = $60 @@ -130,14 +130,14 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)$60 Inlining cast irq_idx = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53248 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53248 Simplifying constant integer cast $7f Simplifying constant integer cast $60 Simplifying constant integer cast VICII_SIZE+(unumber)8 @@ -145,14 +145,14 @@ Simplifying constant integer cast 8 Simplifying constant integer cast $3f8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $60 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (word) $3f8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $60 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned int) $3f8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in table_driven_irq::$4 = table_driven_irq::idx#3 + $3f8 -Inferred type updated to word in table_driven_irq::$5 = table_driven_irq::$4 - VICII_SIZE +Inferred type updated to unsigned int in table_driven_irq::$4 = table_driven_irq::idx#3 + $3f8 +Inferred type updated to unsigned int in table_driven_irq::$5 = table_driven_irq::$4 - VICII_SIZE Inversing boolean not [27] table_driven_irq::$3 = table_driven_irq::val#3 >= *RASTER from [26] table_driven_irq::$2 = table_driven_irq::val#3 < *RASTER Successful SSA optimization Pass2UnaryNotSimplification Alias table_driven_irq::val#0 = table_driven_irq::val#1 table_driven_irq::val#4 table_driven_irq::val#2 table_driven_irq::val#3 @@ -208,7 +208,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -248,7 +248,7 @@ table_driven_irq::@2: scope:[table_driven_irq] from table_driven_irq::@1 void main() main: scope:[main] from __start::@1 asm { sei } - [19] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [21] *RASTER = $60 [22] *IRQ_ENABLE = IRQ_RASTER @@ -263,13 +263,13 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() -volatile byte irq_idx loadstore 6.0 +__loadstore volatile char irq_idx // 6.0 void main() __interrupt(rom_min_c64) void table_driven_irq() -byte table_driven_irq::idx -byte table_driven_irq::idx#0 11.0 -byte table_driven_irq::val -byte table_driven_irq::val#0 6.166666666666666 +char table_driven_irq::idx +char table_driven_irq::idx#0 // 11.0 +char table_driven_irq::val +char table_driven_irq::val#0 // 6.166666666666666 Initial phi equivalence classes Added variable irq_idx to live range equivalence class [ irq_idx ] @@ -292,7 +292,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:4 [ table_d Statement [14] irq_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] (SCREEN+-VICII_SIZE+$3f8)[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a Statement [17] VICII_BASE[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a -Statement [19] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [21] *RASTER = $60 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [22] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3 [ ] { } ) always clobbers reg byte a @@ -305,7 +305,7 @@ Statement [11] *IRQ_STATUS = IRQ_RASTER [ table_driven_irq::val#0 ] ( [ table_d Statement [14] irq_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [16] (SCREEN+-VICII_SIZE+$3f8)[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a Statement [17] VICII_BASE[table_driven_irq::idx#0] = table_driven_irq::val#0 [ irq_idx ] ( [ irq_idx ] { } ) always clobbers reg byte a -Statement [19] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [20] *VICII_CONTROL1 = *VICII_CONTROL1 & $7f [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [21] *RASTER = $60 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Statement [22] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:3 [ ] { } ) always clobbers reg byte a @@ -406,7 +406,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -479,7 +479,7 @@ table_driven_irq: { main: { // asm { sei } sei - // [19] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT @@ -549,29 +549,29 @@ Succesful ASM optimization Pass5UnusedLabelElimination Fixing long branch [75] bcs $ea81 to bcc FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } -constant const byte IRQ_CHANGE_NEXT = $7f -constant byte* IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const VICII_BASE = (byte*) 53248 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte VICII_SIZE = $30 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } +__constant const char IRQ_CHANGE_NEXT = $7f +__constant char IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 +__constant char * const VICII_BASE = (char *) 53248 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char VICII_SIZE = $30 void __start() -volatile byte irq_idx loadstore zp[1]:2 6.0 +__loadstore volatile char irq_idx // zp[1]:2 6.0 void main() __interrupt(rom_min_c64) void table_driven_irq() -byte table_driven_irq::idx -byte table_driven_irq::idx#0 reg byte a 11.0 -byte table_driven_irq::val -byte table_driven_irq::val#0 reg byte x 6.166666666666666 +char table_driven_irq::idx +char table_driven_irq::idx#0 // reg byte a 11.0 +char table_driven_irq::val +char table_driven_irq::val#0 // reg byte x 6.166666666666666 zp[1]:2 [ irq_idx ] reg byte a [ table_driven_irq::idx#0 ] @@ -648,7 +648,7 @@ __start: { sta.z irq_idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -725,7 +725,7 @@ main: { // asm { sei } sei // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [19] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [19] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT diff --git a/src/test/ref/irq-idx-problem.sym b/src/test/ref/irq-idx-problem.sym index 14fff8538..043239453 100644 --- a/src/test/ref/irq-idx-problem.sym +++ b/src/test/ref/irq-idx-problem.sym @@ -1,26 +1,26 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } -constant const byte IRQ_CHANGE_NEXT = $7f -constant byte* IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const VICII_BASE = (byte*) 53248 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte VICII_SIZE = $30 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char IRQ_CHANGE_IDX[] = { $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT, $20, $21, IRQ_CHANGE_NEXT } +__constant const char IRQ_CHANGE_NEXT = $7f +__constant char IRQ_CHANGE_VAL[] = { $b, $b, $63, 0, 0, $80, 7, 7, $83, 0, 0, $60 } +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 +__constant char * const VICII_BASE = (char *) 53248 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char VICII_SIZE = $30 void __start() -volatile byte irq_idx loadstore zp[1]:2 6.0 +__loadstore volatile char irq_idx // zp[1]:2 6.0 void main() __interrupt(rom_min_c64) void table_driven_irq() -byte table_driven_irq::idx -byte table_driven_irq::idx#0 reg byte a 11.0 -byte table_driven_irq::val -byte table_driven_irq::val#0 reg byte x 6.166666666666666 +char table_driven_irq::idx +char table_driven_irq::idx#0 // reg byte a 11.0 +char table_driven_irq::val +char table_driven_irq::val#0 // reg byte x 6.166666666666666 zp[1]:2 [ irq_idx ] reg byte a [ table_driven_irq::idx#0 ] diff --git a/src/test/ref/irq-kernel-minimal.log b/src/test/ref/irq-kernel-minimal.log index b808027bc..5d62640e6 100644 --- a/src/test/ref/irq-kernel-minimal.log +++ b/src/test/ref/irq-kernel-minimal.log @@ -24,7 +24,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,16 +33,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte BLACK = 0 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char BLACK = 0 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant const char WHITE = 1 void __start() __interrupt(rom_sys_c64) void irq() void main() -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (void()**) 788 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (void (**)()) 788 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -169,10 +169,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant const char WHITE = 1 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/irq-kernel-minimal.sym b/src/test/ref/irq-kernel-minimal.sym index c870d2a13..f0d1eb3cb 100644 --- a/src/test/ref/irq-kernel-minimal.sym +++ b/src/test/ref/irq-kernel-minimal.sym @@ -1,7 +1,7 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant const char WHITE = 1 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/irq-kernel.log b/src/test/ref/irq-kernel.log index eb9f0597e..89ea66fe9 100644 --- a/src/test/ref/irq-kernel.log +++ b/src/test/ref/irq-kernel.log @@ -28,7 +28,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,17 +37,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d020 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char WHITE = 1 void __start() __interrupt(rom_sys_c64) void irq() void main() @@ -57,18 +57,18 @@ Adding number conversion cast (unumber) 0 in *RASTER = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 56333 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 56333 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -223,17 +223,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/irq-kernel.sym b/src/test/ref/irq-kernel.sym index df7e3d011..6dcf44b6c 100644 --- a/src/test/ref/irq-kernel.sym +++ b/src/test/ref/irq-kernel.sym @@ -1,14 +1,14 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/irq-local-var-overlap-problem.log b/src/test/ref/irq-local-var-overlap-problem.log index 373da963f..79046bdd8 100644 --- a/src/test/ref/irq-local-var-overlap-problem.log +++ b/src/test/ref/irq-local-var-overlap-problem.log @@ -34,7 +34,7 @@ main::@5: scope:[main] from main::@4 main::@8 main::$0 = main::i#2 + main::j#2 main::$1 = main::$0 + main::k#2 *FGCOL = main::$1 - call sub_main + call sub_main to:main::@8 main::@8: scope:[main] from main::@5 main::j#5 = phi( main::@5/main::j#2 ) @@ -82,7 +82,7 @@ irq::@3: scope:[irq] from irq::@2 irq::@7 irq::$2 = irq::i#2 + irq::j#2 irq::$3 = irq::$2 + irq::k#2 *FGCOL = irq::$3 - call sub_irq + call sub_irq to:irq::@7 irq::@7: scope:[irq] from irq::@3 irq::j#5 = phi( irq::@3/irq::j#2 ) @@ -197,7 +197,7 @@ sub_irq::@return: scope:[sub_irq] from sub_irq::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -206,138 +206,138 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*)$d021 -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 +__constant char * const BG_COLOR = (char *)$d020 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *)$d021 +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 void __start() __interrupt(rom_min_c64) void irq() -byte~ irq::$2 -byte~ irq::$3 -bool~ irq::$5 -bool~ irq::$6 -bool~ irq::$7 -byte irq::i -byte irq::i#0 -byte irq::i#1 -byte irq::i#2 -byte irq::i#3 -byte irq::i#4 -byte irq::i#5 -byte irq::i#6 -byte irq::i#7 -byte irq::j -byte irq::j#0 -byte irq::j#1 -byte irq::j#2 -byte irq::j#3 -byte irq::j#4 -byte irq::j#5 -byte irq::k -byte irq::k#0 -byte irq::k#1 -byte irq::k#2 -byte irq::k#3 +char irq::$2 +char irq::$3 +bool irq::$5 +bool irq::$6 +bool irq::$7 +char irq::i +char irq::i#0 +char irq::i#1 +char irq::i#2 +char irq::i#3 +char irq::i#4 +char irq::i#5 +char irq::i#6 +char irq::i#7 +char irq::j +char irq::j#0 +char irq::j#1 +char irq::j#2 +char irq::j#3 +char irq::j#4 +char irq::j#5 +char irq::k +char irq::k#0 +char irq::k#1 +char irq::k#2 +char irq::k#3 void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::j#5 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 -byte main::k#3 +char main::$0 +char main::$1 +bool main::$3 +bool main::$4 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::j#5 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 +char main::k#3 void sub_irq() -byte~ sub_irq::$0 -byte~ sub_irq::$1 -bool~ sub_irq::$2 -bool~ sub_irq::$3 -bool~ sub_irq::$4 -byte sub_irq::i -byte sub_irq::i#0 -byte sub_irq::i#1 -byte sub_irq::i#2 -byte sub_irq::i#3 -byte sub_irq::i#4 -byte sub_irq::i#5 -byte sub_irq::i#6 -byte sub_irq::j -byte sub_irq::j#0 -byte sub_irq::j#1 -byte sub_irq::j#2 -byte sub_irq::j#3 -byte sub_irq::j#4 -byte sub_irq::k -byte sub_irq::k#0 -byte sub_irq::k#1 -byte sub_irq::k#2 +char sub_irq::$0 +char sub_irq::$1 +bool sub_irq::$2 +bool sub_irq::$3 +bool sub_irq::$4 +char sub_irq::i +char sub_irq::i#0 +char sub_irq::i#1 +char sub_irq::i#2 +char sub_irq::i#3 +char sub_irq::i#4 +char sub_irq::i#5 +char sub_irq::i#6 +char sub_irq::j +char sub_irq::j#0 +char sub_irq::j#1 +char sub_irq::j#2 +char sub_irq::j#3 +char sub_irq::j#4 +char sub_irq::k +char sub_irq::k#0 +char sub_irq::k#1 +char sub_irq::k#2 void sub_main() -byte~ sub_main::$0 -byte~ sub_main::$1 -bool~ sub_main::$2 -bool~ sub_main::$3 -bool~ sub_main::$4 -byte sub_main::i -byte sub_main::i#0 -byte sub_main::i#1 -byte sub_main::i#2 -byte sub_main::i#3 -byte sub_main::i#4 -byte sub_main::i#5 -byte sub_main::i#6 -byte sub_main::j -byte sub_main::j#0 -byte sub_main::j#1 -byte sub_main::j#2 -byte sub_main::j#3 -byte sub_main::j#4 -byte sub_main::k -byte sub_main::k#0 -byte sub_main::k#1 -byte sub_main::k#2 +char sub_main::$0 +char sub_main::$1 +bool sub_main::$2 +bool sub_main::$3 +bool sub_main::$4 +char sub_main::i +char sub_main::i#0 +char sub_main::i#1 +char sub_main::i#2 +char sub_main::i#3 +char sub_main::i#4 +char sub_main::i#5 +char sub_main::i#6 +char sub_main::j +char sub_main::j#0 +char sub_main::j#1 +char sub_main::j#2 +char sub_main::j#3 +char sub_main::j#4 +char sub_main::k +char sub_main::k#0 +char sub_main::k#1 +char sub_main::k#2 Adding number conversion cast (unumber) $7f in *VICII_CONTROL1 = *VICII_CONTROL1 & $7f Adding number conversion cast (unumber) $fd in *RASTER = $fd Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)$fd Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 56333 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 56333 Simplifying constant integer cast $7f Simplifying constant integer cast $fd Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $fd +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $fd Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::k#2 = main::k#3 Alias main::i#2 = main::i#5 main::i#6 main::i#3 @@ -449,18 +449,18 @@ Simplifying constant integer cast $b Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -562,7 +562,7 @@ irq::@3: scope:[irq] from irq::@2 irq::@7 [4] irq::$2 = irq::i#7 + irq::j#4 [5] irq::$3 = irq::$2 + irq::k#2 [6] *FGCOL = irq::$3 - [7] call sub_irq + [7] call sub_irq to:irq::@7 irq::@7: scope:[irq] from irq::@3 [8] irq::k#1 = ++ irq::k#2 @@ -605,7 +605,7 @@ main::@3: scope:[main] from main::@2 main::@6 [27] main::$0 = main::i#7 + main::j#4 [28] main::$1 = main::$0 + main::k#2 [29] *FGCOL = main::$1 - [30] call sub_main + [30] call sub_main to:main::@6 main::@6: scope:[main] from main::@3 [31] main::k#1 = ++ main::k#2 @@ -686,53 +686,53 @@ sub_main::@return: scope:[sub_main] from sub_main::@5 VARIABLE REGISTER WEIGHTS __interrupt(rom_min_c64) void irq() -byte~ irq::$2 2002.0 -byte~ irq::$3 2002.0 -byte irq::i -byte irq::i#1 16.5 -byte irq::i#7 93.0 -byte irq::j -byte irq::j#1 151.5 -byte irq::j#4 150.375 -byte irq::k -byte irq::k#1 1501.5 -byte irq::k#2 600.5999999999999 +char irq::$2 // 2002.0 +char irq::$3 // 2002.0 +char irq::i +char irq::i#1 // 16.5 +char irq::i#7 // 93.0 +char irq::j +char irq::j#1 // 151.5 +char irq::j#4 // 150.375 +char irq::k +char irq::k#1 // 1501.5 +char irq::k#2 // 600.5999999999999 void main() -byte~ main::$0 20002.0 -byte~ main::$1 20002.0 -byte main::i -byte main::i#1 71.0 -byte main::i#7 919.3636363636363 -byte main::j -byte main::j#1 1501.5 -byte main::j#4 1500.375 -byte main::k -byte main::k#1 15001.5 -byte main::k#2 6000.6 +char main::$0 // 20002.0 +char main::$1 // 20002.0 +char main::i +char main::i#1 // 71.0 +char main::i#7 // 919.3636363636363 +char main::j +char main::j#1 // 1501.5 +char main::j#4 // 1500.375 +char main::k +char main::k#1 // 15001.5 +char main::k#2 // 6000.6 void sub_irq() -byte~ sub_irq::$0 2.0000000002E10 -byte~ sub_irq::$1 2.0000000002E10 -byte sub_irq::i -byte sub_irq::i#1 1.500000015E8 -byte sub_irq::i#6 1.0200000003000001E9 -byte sub_irq::j -byte sub_irq::j#1 1.5000000015E9 -byte sub_irq::j#4 1.7142857147142856E9 -byte sub_irq::k -byte sub_irq::k#1 1.50000000015E10 -byte sub_irq::k#2 7.50000000075E9 +char sub_irq::$0 // 2.0000000002E10 +char sub_irq::$1 // 2.0000000002E10 +char sub_irq::i +char sub_irq::i#1 // 1.500000015E8 +char sub_irq::i#6 // 1.0200000003000001E9 +char sub_irq::j +char sub_irq::j#1 // 1.5000000015E9 +char sub_irq::j#4 // 1.7142857147142856E9 +char sub_irq::k +char sub_irq::k#1 // 1.50000000015E10 +char sub_irq::k#2 // 7.50000000075E9 void sub_main() -byte~ sub_main::$0 2.000000000002E12 -byte~ sub_main::$1 2.000000000002E12 -byte sub_main::i -byte sub_main::i#1 1.50000000015E10 -byte sub_main::i#6 1.0200000000030002E11 -byte sub_main::j -byte sub_main::j#1 1.500000000015E11 -byte sub_main::j#4 1.71428571429E11 -byte sub_main::k -byte sub_main::k#1 1.5000000000015E12 -byte sub_main::k#2 7.5000000000075E11 +char sub_main::$0 // 2.000000000002E12 +char sub_main::$1 // 2.000000000002E12 +char sub_main::i +char sub_main::i#1 // 1.50000000015E10 +char sub_main::i#6 // 1.0200000000030002E11 +char sub_main::j +char sub_main::j#1 // 1.500000000015E11 +char sub_main::j#4 // 1.71428571429E11 +char sub_main::k +char sub_main::k#1 // 1.5000000000015E12 +char sub_main::k#2 // 7.5000000000075E11 Initial phi equivalence classes [ irq::i#7 irq::i#1 ] @@ -969,7 +969,7 @@ irq: { adc.z k // [6] *FGCOL = irq::$3 -- _deref_pbuc1=vbuaa sta FGCOL - // [7] call sub_irq + // [7] call sub_irq // [38] phi from irq::@3 to sub_irq [phi:irq::@3->sub_irq] sub_irq_from___b3: jsr sub_irq @@ -1088,7 +1088,7 @@ main: { adc.z k // [29] *FGCOL = main::$1 -- _deref_pbuc1=vbuaa sta FGCOL - // [30] call sub_main + // [30] call sub_main // [52] phi from main::@3 to sub_main [phi:main::@3->sub_main] sub_main_from___b3: jsr sub_main @@ -1393,64 +1393,64 @@ Removing unreachable instruction jmp __b1 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 __interrupt(rom_min_c64) void irq() -byte~ irq::$2 reg byte a 2002.0 -byte~ irq::$3 reg byte a 2002.0 -byte irq::i -byte irq::i#1 i zp[1]:2 16.5 -byte irq::i#7 i zp[1]:2 93.0 -byte irq::j -byte irq::j#1 j zp[1]:3 151.5 -byte irq::j#4 j zp[1]:3 150.375 -byte irq::k -byte irq::k#1 k zp[1]:4 1501.5 -byte irq::k#2 k zp[1]:4 600.5999999999999 +char irq::$2 // reg byte a 2002.0 +char irq::$3 // reg byte a 2002.0 +char irq::i +char irq::i#1 // i zp[1]:2 16.5 +char irq::i#7 // i zp[1]:2 93.0 +char irq::j +char irq::j#1 // j zp[1]:3 151.5 +char irq::j#4 // j zp[1]:3 150.375 +char irq::k +char irq::k#1 // k zp[1]:4 1501.5 +char irq::k#2 // k zp[1]:4 600.5999999999999 void main() -byte~ main::$0 reg byte a 20002.0 -byte~ main::$1 reg byte a 20002.0 -byte main::i -byte main::i#1 i zp[1]:5 71.0 -byte main::i#7 i zp[1]:5 919.3636363636363 -byte main::j -byte main::j#1 j zp[1]:6 1501.5 -byte main::j#4 j zp[1]:6 1500.375 -byte main::k -byte main::k#1 k zp[1]:7 15001.5 -byte main::k#2 k zp[1]:7 6000.6 +char main::$0 // reg byte a 20002.0 +char main::$1 // reg byte a 20002.0 +char main::i +char main::i#1 // i zp[1]:5 71.0 +char main::i#7 // i zp[1]:5 919.3636363636363 +char main::j +char main::j#1 // j zp[1]:6 1501.5 +char main::j#4 // j zp[1]:6 1500.375 +char main::k +char main::k#1 // k zp[1]:7 15001.5 +char main::k#2 // k zp[1]:7 6000.6 void sub_irq() -byte~ sub_irq::$0 reg byte a 2.0000000002E10 -byte~ sub_irq::$1 reg byte a 2.0000000002E10 -byte sub_irq::i -byte sub_irq::i#1 i zp[1]:8 1.500000015E8 -byte sub_irq::i#6 i zp[1]:8 1.0200000003000001E9 -byte sub_irq::j -byte sub_irq::j#1 reg byte x 1.5000000015E9 -byte sub_irq::j#4 reg byte x 1.7142857147142856E9 -byte sub_irq::k -byte sub_irq::k#1 reg byte y 1.50000000015E10 -byte sub_irq::k#2 reg byte y 7.50000000075E9 +char sub_irq::$0 // reg byte a 2.0000000002E10 +char sub_irq::$1 // reg byte a 2.0000000002E10 +char sub_irq::i +char sub_irq::i#1 // i zp[1]:8 1.500000015E8 +char sub_irq::i#6 // i zp[1]:8 1.0200000003000001E9 +char sub_irq::j +char sub_irq::j#1 // reg byte x 1.5000000015E9 +char sub_irq::j#4 // reg byte x 1.7142857147142856E9 +char sub_irq::k +char sub_irq::k#1 // reg byte y 1.50000000015E10 +char sub_irq::k#2 // reg byte y 7.50000000075E9 void sub_main() -byte~ sub_main::$0 reg byte a 2.000000000002E12 -byte~ sub_main::$1 reg byte a 2.000000000002E12 -byte sub_main::i -byte sub_main::i#1 i zp[1]:9 1.50000000015E10 -byte sub_main::i#6 i zp[1]:9 1.0200000000030002E11 -byte sub_main::j -byte sub_main::j#1 reg byte x 1.500000000015E11 -byte sub_main::j#4 reg byte x 1.71428571429E11 -byte sub_main::k -byte sub_main::k#1 reg byte y 1.5000000000015E12 -byte sub_main::k#2 reg byte y 7.5000000000075E11 +char sub_main::$0 // reg byte a 2.000000000002E12 +char sub_main::$1 // reg byte a 2.000000000002E12 +char sub_main::i +char sub_main::i#1 // i zp[1]:9 1.50000000015E10 +char sub_main::i#6 // i zp[1]:9 1.0200000000030002E11 +char sub_main::j +char sub_main::j#1 // reg byte x 1.500000000015E11 +char sub_main::j#4 // reg byte x 1.71428571429E11 +char sub_main::k +char sub_main::k#1 // reg byte y 1.5000000000015E12 +char sub_main::k#2 // reg byte y 7.5000000000075E11 zp[1]:2 [ irq::i#7 irq::i#1 ] zp[1]:3 [ irq::j#4 irq::j#1 ] @@ -1546,7 +1546,7 @@ irq: { // [6] *FGCOL = irq::$3 -- _deref_pbuc1=vbuaa sta FGCOL // sub_irq() - // [7] call sub_irq + // [7] call sub_irq // [38] phi from irq::@3 to sub_irq [phi:irq::@3->sub_irq] jsr sub_irq // irq::@7 @@ -1659,7 +1659,7 @@ main: { // [29] *FGCOL = main::$1 -- _deref_pbuc1=vbuaa sta FGCOL // sub_main() - // [30] call sub_main + // [30] call sub_main // [52] phi from main::@3 to sub_main [phi:main::@3->sub_main] jsr sub_main // main::@6 diff --git a/src/test/ref/irq-local-var-overlap-problem.sym b/src/test/ref/irq-local-var-overlap-problem.sym index 443c85d07..a5b62c052 100644 --- a/src/test/ref/irq-local-var-overlap-problem.sym +++ b/src/test/ref/irq-local-var-overlap-problem.sym @@ -1,61 +1,61 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const FGCOL = (byte*) 53281 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const FGCOL = (char *) 53281 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 __interrupt(rom_min_c64) void irq() -byte~ irq::$2 reg byte a 2002.0 -byte~ irq::$3 reg byte a 2002.0 -byte irq::i -byte irq::i#1 i zp[1]:2 16.5 -byte irq::i#7 i zp[1]:2 93.0 -byte irq::j -byte irq::j#1 j zp[1]:3 151.5 -byte irq::j#4 j zp[1]:3 150.375 -byte irq::k -byte irq::k#1 k zp[1]:4 1501.5 -byte irq::k#2 k zp[1]:4 600.5999999999999 +char irq::$2 // reg byte a 2002.0 +char irq::$3 // reg byte a 2002.0 +char irq::i +char irq::i#1 // i zp[1]:2 16.5 +char irq::i#7 // i zp[1]:2 93.0 +char irq::j +char irq::j#1 // j zp[1]:3 151.5 +char irq::j#4 // j zp[1]:3 150.375 +char irq::k +char irq::k#1 // k zp[1]:4 1501.5 +char irq::k#2 // k zp[1]:4 600.5999999999999 void main() -byte~ main::$0 reg byte a 20002.0 -byte~ main::$1 reg byte a 20002.0 -byte main::i -byte main::i#1 i zp[1]:5 71.0 -byte main::i#7 i zp[1]:5 919.3636363636363 -byte main::j -byte main::j#1 j zp[1]:6 1501.5 -byte main::j#4 j zp[1]:6 1500.375 -byte main::k -byte main::k#1 k zp[1]:7 15001.5 -byte main::k#2 k zp[1]:7 6000.6 +char main::$0 // reg byte a 20002.0 +char main::$1 // reg byte a 20002.0 +char main::i +char main::i#1 // i zp[1]:5 71.0 +char main::i#7 // i zp[1]:5 919.3636363636363 +char main::j +char main::j#1 // j zp[1]:6 1501.5 +char main::j#4 // j zp[1]:6 1500.375 +char main::k +char main::k#1 // k zp[1]:7 15001.5 +char main::k#2 // k zp[1]:7 6000.6 void sub_irq() -byte~ sub_irq::$0 reg byte a 2.0000000002E10 -byte~ sub_irq::$1 reg byte a 2.0000000002E10 -byte sub_irq::i -byte sub_irq::i#1 i zp[1]:8 1.500000015E8 -byte sub_irq::i#6 i zp[1]:8 1.0200000003000001E9 -byte sub_irq::j -byte sub_irq::j#1 reg byte x 1.5000000015E9 -byte sub_irq::j#4 reg byte x 1.7142857147142856E9 -byte sub_irq::k -byte sub_irq::k#1 reg byte y 1.50000000015E10 -byte sub_irq::k#2 reg byte y 7.50000000075E9 +char sub_irq::$0 // reg byte a 2.0000000002E10 +char sub_irq::$1 // reg byte a 2.0000000002E10 +char sub_irq::i +char sub_irq::i#1 // i zp[1]:8 1.500000015E8 +char sub_irq::i#6 // i zp[1]:8 1.0200000003000001E9 +char sub_irq::j +char sub_irq::j#1 // reg byte x 1.5000000015E9 +char sub_irq::j#4 // reg byte x 1.7142857147142856E9 +char sub_irq::k +char sub_irq::k#1 // reg byte y 1.50000000015E10 +char sub_irq::k#2 // reg byte y 7.50000000075E9 void sub_main() -byte~ sub_main::$0 reg byte a 2.000000000002E12 -byte~ sub_main::$1 reg byte a 2.000000000002E12 -byte sub_main::i -byte sub_main::i#1 i zp[1]:9 1.50000000015E10 -byte sub_main::i#6 i zp[1]:9 1.0200000000030002E11 -byte sub_main::j -byte sub_main::j#1 reg byte x 1.500000000015E11 -byte sub_main::j#4 reg byte x 1.71428571429E11 -byte sub_main::k -byte sub_main::k#1 reg byte y 1.5000000000015E12 -byte sub_main::k#2 reg byte y 7.5000000000075E11 +char sub_main::$0 // reg byte a 2.000000000002E12 +char sub_main::$1 // reg byte a 2.000000000002E12 +char sub_main::i +char sub_main::i#1 // i zp[1]:9 1.50000000015E10 +char sub_main::i#6 // i zp[1]:9 1.0200000000030002E11 +char sub_main::j +char sub_main::j#1 // reg byte x 1.500000000015E11 +char sub_main::j#4 // reg byte x 1.71428571429E11 +char sub_main::k +char sub_main::k#1 // reg byte y 1.5000000000015E12 +char sub_main::k#2 // reg byte y 7.5000000000075E11 zp[1]:2 [ irq::i#7 irq::i#1 ] zp[1]:3 [ irq::j#4 irq::j#1 ] diff --git a/src/test/ref/irq-pragma.log b/src/test/ref/irq-pragma.log index cc0e03016..348b09d39 100644 --- a/src/test/ref/irq-pragma.log +++ b/src/test/ref/irq-pragma.log @@ -23,7 +23,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,8 +32,8 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant void()** const KERNEL_IRQ = (void()**)$314 +__constant char * const BG_COLOR = (char *)$d021 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 void __start() __interrupt(rom_sys_c64) void irq() void main() @@ -44,13 +44,13 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BG_COLOR = (unumber)1 Inlining cast *BG_COLOR = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -166,8 +166,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53281 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/irq-pragma.sym b/src/test/ref/irq-pragma.sym index f2bf4a1e3..25be29f92 100644 --- a/src/test/ref/irq-pragma.sym +++ b/src/test/ref/irq-pragma.sym @@ -1,5 +1,5 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53281 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/irq-raster.log b/src/test/ref/irq-raster.log index 5b9502923..2472af974 100644 --- a/src/test/ref/irq-raster.log +++ b/src/test/ref/irq-raster.log @@ -28,7 +28,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,17 +37,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d020 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 +__constant const char WHITE = 1 void __start() __interrupt(rom_min_c64) void irq() void main() @@ -57,18 +57,18 @@ Adding number conversion cast (unumber) 0 in *RASTER = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 56333 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 56333 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -223,17 +223,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/irq-raster.sym b/src/test/ref/irq-raster.sym index 0f2a27ec2..dd2634456 100644 --- a/src/test/ref/irq-raster.sym +++ b/src/test/ref/irq-raster.sym @@ -1,14 +1,14 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant const byte BLACK = 0 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53280 +__constant const char BLACK = 0 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char WHITE = 1 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/irq-volatile-bool-problem.log b/src/test/ref/irq-volatile-bool-problem.log index 02f170be3..fd64313a6 100644 --- a/src/test/ref/irq-volatile-bool-problem.log +++ b/src/test/ref/irq-volatile-bool-problem.log @@ -1,6 +1,6 @@ Resolved forward reference irq to __interrupt(rom_min_c64) void irq() Resolved forward reference framedone to framedone -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -51,7 +51,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -60,22 +60,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant byte* const CIA1_INTERRUPT = (byte*)$dc0d -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*)$d01a -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*)$d019 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant byte* const RASTER = (byte*)$d012 -constant byte* const VICII_CONTROL1 = (byte*)$d011 +__constant char * const BG_COLOR = (char *)$d020 +__constant char * const CIA1_INTERRUPT = (char *)$dc0d +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *)$d01a +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *)$d019 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant char * const RASTER = (char *)$d012 +__constant char * const VICII_CONTROL1 = (char *)$d011 void __start() __interrupt(rom_min_c64) void irq() -bool~ irq::$1 -bool~ irq::$2 +bool irq::$1 +bool irq::$2 void main() -bool~ main::$0 -bool~ main::$1 +bool main::$0 +bool main::$1 Adding number conversion cast (unumber) $7f in *VICII_CONTROL1 = *VICII_CONTROL1 & $7f Adding number conversion cast (unumber) $fd in *RASTER = $fd @@ -84,22 +84,22 @@ Adding number conversion cast (unumber) $32 in irq::$1 = *RASTER > $32 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *RASTER = (unumber)$fd Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53265 -Simplifying constant pointer cast (byte*) 53273 -Simplifying constant pointer cast (byte*) 53274 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 56333 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53265 +Simplifying constant pointer cast (char *) 53273 +Simplifying constant pointer cast (char *) 53274 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 56333 Simplifying constant integer cast $7f Simplifying constant integer cast $fd Simplifying constant integer cast $14 Simplifying constant integer cast $32 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) $fd -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $32 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) $fd +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $32 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [9] main::$1 = *RASTER >= $14 from [8] main::$0 = *RASTER < $14 Inversing boolean not [15] irq::$2 = *RASTER <= $32 from [14] irq::$1 = *RASTER > $32 @@ -125,7 +125,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $32+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of irq::@2 Adding NOP phi() at start of main::@1 @@ -318,15 +318,15 @@ Removing instruction __b1: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/irq-volatile-bool-problem.sym b/src/test/ref/irq-volatile-bool-problem.sym index 81bdf3337..a40b10902 100644 --- a/src/test/ref/irq-volatile-bool-problem.sym +++ b/src/test/ref/irq-volatile-bool-problem.sym @@ -1,12 +1,12 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const CIA1_INTERRUPT = (byte*) 56333 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte* const RASTER = (byte*) 53266 -constant byte* const VICII_CONTROL1 = (byte*) 53265 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const CIA1_INTERRUPT = (char *) 56333 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char * const RASTER = (char *) 53266 +__constant char * const VICII_CONTROL1 = (char *) 53265 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/issue-594-case.log b/src/test/ref/issue-594-case.log index 55115a13c..ab868fec9 100644 --- a/src/test/ref/issue-594-case.log +++ b/src/test/ref/issue-594-case.log @@ -1,5 +1,5 @@ Setting inferred volatile on symbol affected by address-of main::ss = &main::substate -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -30,7 +30,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -39,28 +39,28 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte DEVICES = 1 -constant byte HOSTS = 0 -constant const byte* OUT = (byte*)$8000 +__constant char DEVICES = 1 +__constant char HOSTS = 0 +__constant const char *OUT = (char *)$8000 void __start() -constant byte _substate_hosts::DEVICES = 1 -constant byte _substate_hosts::DONE = 2 -constant byte _substate_hosts::HOSTS = 0 +__constant char _substate_hosts::DEVICES = 1 +__constant char _substate_hosts::DONE = 2 +__constant char _substate_hosts::HOSTS = 0 void main() -bool~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -constant byte* main::ss = &main::substate -volatile byte main::substate loadstore -byte main::x -byte main::x#0 +bool main::$0 +number main::$1 +number main::$2 +number main::$3 +__constant char *main::ss = &main::substate +__loadstore volatile char main::substate +char main::x +char main::x#0 Adding number conversion cast (unumber) main::$3 in main::x#0 = main::$3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::x#0 = (unumber)main::$3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [2] if(*main::ss==DEVICES) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -77,14 +77,14 @@ Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::$1 = 2 Constant inlined main::$2 = $d Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) main::$3 in main::$3 = phi( main::@1/$d, main::@2/2 ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::$3 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for main::$3 +Inferred type updated to char for main::$3 Alias main::x#0 = main::$3 Successful SSA optimization Pass2AliasElimination Adding NOP phi() at start of main::@2 @@ -118,9 +118,9 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -volatile byte main::substate loadstore 20.0 -byte main::x -byte main::x#0 2.0 +__loadstore volatile char main::substate // 20.0 +char main::x +char main::x#0 // 2.0 Initial phi equivalence classes [ main::x#0 ] @@ -216,17 +216,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte DEVICES = 1 -constant byte HOSTS = 0 -constant const byte* OUT = (byte*) 32768 -constant byte _substate_hosts::DEVICES = 1 -constant byte _substate_hosts::DONE = 2 -constant byte _substate_hosts::HOSTS = 0 +__constant char DEVICES = 1 +__constant char HOSTS = 0 +__constant const char *OUT = (char *) 32768 +__constant char _substate_hosts::DEVICES = 1 +__constant char _substate_hosts::DONE = 2 +__constant char _substate_hosts::HOSTS = 0 void main() -constant byte* main::ss = &main::substate -volatile byte main::substate loadstore zp[1]:2 20.0 -byte main::x -byte main::x#0 reg byte a 2.0 +__constant char *main::ss = &main::substate +__loadstore volatile char main::substate // zp[1]:2 20.0 +char main::x +char main::x#0 // reg byte a 2.0 reg byte a [ main::x#0 ] zp[1]:2 [ main::substate ] diff --git a/src/test/ref/issue-594-case.sym b/src/test/ref/issue-594-case.sym index e4ce391b2..88d1ffd18 100644 --- a/src/test/ref/issue-594-case.sym +++ b/src/test/ref/issue-594-case.sym @@ -1,14 +1,14 @@ -constant byte DEVICES = 1 -constant byte HOSTS = 0 -constant const byte* OUT = (byte*) 32768 -constant byte _substate_hosts::DEVICES = 1 -constant byte _substate_hosts::DONE = 2 -constant byte _substate_hosts::HOSTS = 0 +__constant char DEVICES = 1 +__constant char HOSTS = 0 +__constant const char *OUT = (char *) 32768 +__constant char _substate_hosts::DEVICES = 1 +__constant char _substate_hosts::DONE = 2 +__constant char _substate_hosts::HOSTS = 0 void main() -constant byte* main::ss = &main::substate -volatile byte main::substate loadstore zp[1]:2 20.0 -byte main::x -byte main::x#0 reg byte a 2.0 +__constant char *main::ss = &main::substate +__loadstore volatile char main::substate // zp[1]:2 20.0 +char main::x +char main::x#0 // reg byte a 2.0 reg byte a [ main::x#0 ] zp[1]:2 [ main::substate ] diff --git a/src/test/ref/iterarray.log b/src/test/ref/iterarray.log index e3dbd3b6d..8f9b0ae47 100644 --- a/src/test/ref/iterarray.log +++ b/src/test/ref/iterarray.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,15 +32,15 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -bool~ main::$3 -constant byte* main::buf[$10] = (byte*)$1100 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +number main::$0 +number main::$1 +number main::$2 +bool main::$3 +__constant char main::buf[$10] = (char *)$1100 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) 2 in main::$0 = 2 + main::i#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)2 + main::i#2 @@ -50,20 +50,20 @@ Adding number conversion cast (unumber) 1 in main::$2 = main::i#2 + 1 Adding number conversion cast (unumber) main::$2 in main::$2 = main::i#2 + (unumber)1 Adding number conversion cast (unumber) $a in main::$3 = main::i#1 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 4352 +Simplifying constant pointer cast (char *) 4352 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 2 + main::i#2 -Inferred type updated to byte in main::$1 = main::$0 + 2 -Inferred type updated to byte in main::$2 = main::i#2 + 1 +Inferred type updated to char in main::$0 = 2 + main::i#2 +Inferred type updated to char in main::$1 = main::$0 + 2 +Inferred type updated to char in main::$2 = main::i#2 + 1 Alias main::i#1 = main::$2 Successful SSA optimization Pass2AliasElimination Simple Condition main::$3 [7] if(main::i#1<$a) goto main::@1 @@ -82,7 +82,7 @@ Consolidated constant in assignment main::$1 Successful SSA optimization Pass2ConstantAdditionElimination Alias main::i#2 = main::$0 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -114,10 +114,10 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -199,11 +199,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -constant byte* main::buf[$10] = (byte*) 4352 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::$1 // reg byte a 22.0 +__constant char main::buf[$10] = (char *) 4352 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/iterarray.sym b/src/test/ref/iterarray.sym index 22ce5fef2..d957359a7 100644 --- a/src/test/ref/iterarray.sym +++ b/src/test/ref/iterarray.sym @@ -1,9 +1,9 @@ void main() -byte~ main::$1 reg byte a 22.0 -constant byte* main::buf[$10] = (byte*) 4352 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::$1 // reg byte a 22.0 +__constant char main::buf[$10] = (char *) 4352 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/kc-ka-string-encoding.cfg b/src/test/ref/kc-ka-string-encoding.cfg index c87d63950..07ce3734b 100644 --- a/src/test/ref/kc-ka-string-encoding.cfg +++ b/src/test/ref/kc-ka-string-encoding.cfg @@ -1,5 +1,5 @@ -signed word main() +int main() main: scope:[main] from [0] *(strTemp+2) = 'e'pm [1] *(strTemp+3) = 0 diff --git a/src/test/ref/kc-ka-string-encoding.log b/src/test/ref/kc-ka-string-encoding.log index 0c75b8719..8381e7177 100644 --- a/src/test/ref/kc-ka-string-encoding.log +++ b/src/test/ref/kc-ka-string-encoding.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA -signed word main() +int main() main: scope:[main] from __start strTemp[2] = 'e'pm strTemp[3] = 0 @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main main::return#2 = main::return#1 to:__start::@1 __start::@1: scope:[__start] from __start @@ -27,13 +27,13 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -signed word main() -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 -constant byte* strTemp[] = "v=X"pm +int main() +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 +__constant char strTemp[] = "v=X"pm Adding number conversion cast (unumber) 2 in strTemp[2] = 'e'pm Adding number conversion cast (unumber) 0 in strTemp[3] = 0 @@ -48,10 +48,10 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::return#0 = main::return#3 main::return#1 Successful SSA optimization Pass2AliasElimination @@ -78,7 +78,7 @@ Coalesced down to 0 phi equivalence classes FINAL CONTROL FLOW GRAPH -signed word main() +int main() main: scope:[main] from [0] *(strTemp+2) = 'e'pm [1] *(strTemp+3) = 0 @@ -90,8 +90,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -signed word main() -signed word main::return +int main() +int main::return Initial phi equivalence classes Complete equivalence classes @@ -157,9 +157,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5RedundantLabelElimination FINAL SYMBOL TABLE -signed word main() -signed word main::return -constant byte* strTemp[] = "v=X"pm +int main() +int main::return +__constant char strTemp[] = "v=X"pm diff --git a/src/test/ref/kc-ka-string-encoding.sym b/src/test/ref/kc-ka-string-encoding.sym index 7be3b0f25..c46bdfda6 100644 --- a/src/test/ref/kc-ka-string-encoding.sym +++ b/src/test/ref/kc-ka-string-encoding.sym @@ -1,4 +1,4 @@ -signed word main() -signed word main::return -constant byte* strTemp[] = "v=X"pm +int main() +int main::return +__constant char strTemp[] = "v=X"pm diff --git a/src/test/ref/keyboard-glitch.asm b/src/test/ref/keyboard-glitch.asm index 05eb693a2..6b1339caa 100644 --- a/src/test/ref/keyboard-glitch.asm +++ b/src/test/ref/keyboard-glitch.asm @@ -106,7 +106,7 @@ menu: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed -// keyboard_key_pressed(byte register(X) key) +// __register(A) char keyboard_key_pressed(__register(X) char key) keyboard_key_pressed: { // char colidx = key&7 txa @@ -146,7 +146,7 @@ pressed: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. -// keyboard_matrix_read(byte register(X) rowid) +// __register(A) char keyboard_matrix_read(__register(X) char rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] lda keyboard_matrix_row_bitmask,x diff --git a/src/test/ref/keyboard-glitch.cfg b/src/test/ref/keyboard-glitch.cfg index 5589e9367..28f6ef6cf 100644 --- a/src/test/ref/keyboard-glitch.cfg +++ b/src/test/ref/keyboard-glitch.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] phi() - [2] call menu + [2] call menu to:main::@1 void menu() @@ -14,7 +14,7 @@ menu: scope:[menu] from main::@1 to:menu::@1 menu::@1: scope:[menu] from menu menu::@4 [4] phi() - [5] call keyboard_key_pressed + [5] call keyboard_key_pressed [6] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 to:menu::@8 menu::@8: scope:[menu] from menu::@1 @@ -23,14 +23,14 @@ menu::@8: scope:[menu] from menu::@1 to:menu::@5 menu::@5: scope:[menu] from menu::@8 [9] phi() - [10] call pressed + [10] call pressed to:menu::@return menu::@return: scope:[menu] from menu::@5 menu::@6 menu::@7 [11] return to:@return menu::@2: scope:[menu] from menu::@8 [12] phi() - [13] call keyboard_key_pressed + [13] call keyboard_key_pressed [14] keyboard_key_pressed::return#3 = keyboard_key_pressed::return#0 to:menu::@9 menu::@9: scope:[menu] from menu::@2 @@ -43,7 +43,7 @@ menu::@6: scope:[menu] from menu::@9 to:menu::@return menu::@3: scope:[menu] from menu::@9 [19] phi() - [20] call keyboard_key_pressed + [20] call keyboard_key_pressed [21] keyboard_key_pressed::return#4 = keyboard_key_pressed::return#0 to:menu::@10 menu::@10: scope:[menu] from menu::@3 @@ -58,13 +58,13 @@ menu::@4: scope:[menu] from menu::@10 [26] *SCREEN = ++ *SCREEN to:menu::@1 -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@1 menu::@2 menu::@3 pressed::@1 [27] keyboard_key_pressed::key#4 = phi( menu::@1/KEY_C, menu::@2/KEY_I, menu::@3/KEY_E, pressed::@1/KEY_SPACE ) [28] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#4 & 7 [29] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#4 >> 3 [30] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - [31] call keyboard_matrix_read + [31] call keyboard_matrix_read [32] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -81,7 +81,7 @@ pressed: scope:[pressed] from menu::@5 to:pressed::@1 pressed::@1: scope:[pressed] from pressed pressed::@2 [37] phi() - [38] call keyboard_key_pressed + [38] call keyboard_key_pressed [39] keyboard_key_pressed::return#10 = keyboard_key_pressed::return#0 to:pressed::@2 pressed::@2: scope:[pressed] from pressed::@1 @@ -92,10 +92,10 @@ pressed::@return: scope:[pressed] from pressed::@2 [42] return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [43] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] - [44] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [43] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] + [44] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [45] return diff --git a/src/test/ref/keyboard-glitch.log b/src/test/ref/keyboard-glitch.log index 74ef14820..a890dfbdd 100644 --- a/src/test/ref/keyboard-glitch.log +++ b/src/test/ref/keyboard-glitch.log @@ -1,16 +1,16 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement keyboard_matrix_read::$0 Eliminating unused variable with no statement keyboard_key_pressed::$0 Eliminating unused variable with no statement keyboard_key_pressed::$1 CONTROL FLOW GRAPH SSA -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed keyboard_matrix_read::rowid#1 = phi( keyboard_key_pressed/keyboard_matrix_read::rowid#0 ) - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#1] - keyboard_matrix_read::row_pressed_bits#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#1] + keyboard_matrix_read::row_pressed_bits#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) keyboard_matrix_read::return#0 = keyboard_matrix_read::row_pressed_bits#0 to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read @@ -19,13 +19,13 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@2 menu::@3 menu::@4 pressed::@2 keyboard_key_pressed::key#4 = phi( menu::@2/keyboard_key_pressed::key#0, menu::@3/keyboard_key_pressed::key#1, menu::@4/keyboard_key_pressed::key#2, pressed::@2/keyboard_key_pressed::key#3 ) keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#4 & 7 keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#4 >> 3 keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - call keyboard_matrix_read + call keyboard_matrix_read keyboard_matrix_read::return#2 = keyboard_matrix_read::return#1 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -49,7 +49,7 @@ main::@1: scope:[main] from main main::@3 if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - call menu + call menu to:main::@3 main::@3: scope:[main] from main::@2 to:main::@1 @@ -65,7 +65,7 @@ menu::@1: scope:[menu] from menu menu::@5 to:menu::@return menu::@2: scope:[menu] from menu::@1 keyboard_key_pressed::key#0 = KEY_C - call keyboard_key_pressed + call keyboard_key_pressed keyboard_key_pressed::return#2 = keyboard_key_pressed::return#1 to:menu::@9 menu::@9: scope:[menu] from menu::@2 @@ -77,7 +77,7 @@ menu::@9: scope:[menu] from menu::@2 to:menu::@6 menu::@3: scope:[menu] from menu::@9 keyboard_key_pressed::key#1 = KEY_I - call keyboard_key_pressed + call keyboard_key_pressed keyboard_key_pressed::return#3 = keyboard_key_pressed::return#1 to:menu::@10 menu::@10: scope:[menu] from menu::@3 @@ -88,7 +88,7 @@ menu::@10: scope:[menu] from menu::@3 if(menu::$6) goto menu::@4 to:menu::@7 menu::@6: scope:[menu] from menu::@9 - call pressed + call pressed to:menu::@11 menu::@11: scope:[menu] from menu::@6 to:menu::@return @@ -97,7 +97,7 @@ menu::@return: scope:[menu] from menu::@1 menu::@11 menu::@7 menu::@8 to:@return menu::@4: scope:[menu] from menu::@10 keyboard_key_pressed::key#2 = KEY_E - call keyboard_key_pressed + call keyboard_key_pressed keyboard_key_pressed::return#4 = keyboard_key_pressed::return#1 to:menu::@12 menu::@12: scope:[menu] from menu::@4 @@ -128,7 +128,7 @@ pressed::@1: scope:[pressed] from pressed pressed::@3 to:pressed::@return pressed::@2: scope:[pressed] from pressed::@1 keyboard_key_pressed::key#3 = KEY_SPACE - call keyboard_key_pressed + call keyboard_key_pressed keyboard_key_pressed::return#5 = keyboard_key_pressed::return#1 to:pressed::@3 pressed::@3: scope:[pressed] from pressed::@2 @@ -148,7 +148,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -157,74 +157,74 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte GREEN = 5 -constant const byte KEY_C = $14 -constant const byte KEY_E = $e -constant const byte KEY_I = $21 -constant const byte KEY_SPACE = $3c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant const byte RED = 2 -constant byte* SCREEN = (byte*)$400 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char GREEN = 5 +__constant const char KEY_C = $14 +__constant const char KEY_E = $e +__constant const char KEY_I = $21 +__constant const char KEY_SPACE = $3c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant const char RED = 2 +__constant char *SCREEN = (char *)$400 void __start() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 -byte~ keyboard_key_pressed::$3 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 -byte keyboard_key_pressed::colidx#1 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#0 -byte keyboard_key_pressed::key#1 -byte keyboard_key_pressed::key#2 -byte keyboard_key_pressed::key#3 -byte keyboard_key_pressed::key#4 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 -byte keyboard_key_pressed::return#1 -byte keyboard_key_pressed::return#10 -byte keyboard_key_pressed::return#2 -byte keyboard_key_pressed::return#3 -byte keyboard_key_pressed::return#4 -byte keyboard_key_pressed::return#5 -byte keyboard_key_pressed::return#6 -byte keyboard_key_pressed::return#7 -byte keyboard_key_pressed::return#8 -byte keyboard_key_pressed::return#9 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 -byte keyboard_matrix_read::return#1 -byte keyboard_matrix_read::return#2 -byte keyboard_matrix_read::return#3 -byte keyboard_matrix_read::return#4 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::row_pressed_bits#0 -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 -byte keyboard_matrix_read::rowid#1 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 +char keyboard_key_pressed::$3 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 +char keyboard_key_pressed::colidx#1 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#0 +char keyboard_key_pressed::key#1 +char keyboard_key_pressed::key#2 +char keyboard_key_pressed::key#3 +char keyboard_key_pressed::key#4 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 +char keyboard_key_pressed::return#1 +char keyboard_key_pressed::return#10 +char keyboard_key_pressed::return#2 +char keyboard_key_pressed::return#3 +char keyboard_key_pressed::return#4 +char keyboard_key_pressed::return#5 +char keyboard_key_pressed::return#6 +char keyboard_key_pressed::return#7 +char keyboard_key_pressed::return#8 +char keyboard_key_pressed::return#9 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 +char keyboard_matrix_read::return#1 +char keyboard_matrix_read::return#2 +char keyboard_matrix_read::return#3 +char keyboard_matrix_read::return#4 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::row_pressed_bits#0 +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 +char keyboard_matrix_read::rowid#1 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() void menu() -byte~ menu::$0 -bool~ menu::$1 -bool~ menu::$2 -byte~ menu::$4 -bool~ menu::$5 -bool~ menu::$6 -byte~ menu::$7 -bool~ menu::$8 -bool~ menu::$9 +char menu::$0 +bool menu::$1 +bool menu::$2 +char menu::$4 +bool menu::$5 +bool menu::$6 +char menu::$7 +bool menu::$8 +bool menu::$9 void pressed() -byte~ pressed::$1 -bool~ pressed::$2 -bool~ pressed::$3 +char pressed::$1 +bool pressed::$2 +bool pressed::$3 Adding number conversion cast (unumber) 7 in keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#4 & 7 Adding number conversion cast (unumber) 3 in keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#4 >> 3 @@ -233,10 +233,10 @@ Adding number conversion cast (unumber) 0 in menu::$5 = menu::$4 != 0 Adding number conversion cast (unumber) 0 in menu::$8 = menu::$7 != 0 Adding number conversion cast (unumber) 0 in pressed::$2 = pressed::$1 != 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 3 Simplifying constant integer cast 0 @@ -244,12 +244,12 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [31] menu::$2 = menu::$0 == 0 from [30] menu::$1 = menu::$0 != 0 Inversing boolean not [39] menu::$6 = menu::$4 == 0 from [38] menu::$5 = menu::$4 != 0 @@ -283,7 +283,7 @@ if() condition always true - replacing block destination [14] if(true) goto main if() condition always true - replacing block destination [17] if(true) goto menu::@2 if() condition always true - replacing block destination [44] if(true) goto pressed::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero (byte*)CIA1 in [1] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] +Simplifying expression containing zero (char *)CIA1 in [1] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -305,8 +305,8 @@ Constant inlined keyboard_key_pressed::key#1 = KEY_I Constant inlined keyboard_key_pressed::key#2 = KEY_E Constant inlined keyboard_key_pressed::key#3 = KEY_SPACE Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -362,7 +362,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] phi() - [2] call menu + [2] call menu to:main::@1 void menu() @@ -371,7 +371,7 @@ menu: scope:[menu] from main::@1 to:menu::@1 menu::@1: scope:[menu] from menu menu::@4 [4] phi() - [5] call keyboard_key_pressed + [5] call keyboard_key_pressed [6] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 to:menu::@8 menu::@8: scope:[menu] from menu::@1 @@ -380,14 +380,14 @@ menu::@8: scope:[menu] from menu::@1 to:menu::@5 menu::@5: scope:[menu] from menu::@8 [9] phi() - [10] call pressed + [10] call pressed to:menu::@return menu::@return: scope:[menu] from menu::@5 menu::@6 menu::@7 [11] return to:@return menu::@2: scope:[menu] from menu::@8 [12] phi() - [13] call keyboard_key_pressed + [13] call keyboard_key_pressed [14] keyboard_key_pressed::return#3 = keyboard_key_pressed::return#0 to:menu::@9 menu::@9: scope:[menu] from menu::@2 @@ -400,7 +400,7 @@ menu::@6: scope:[menu] from menu::@9 to:menu::@return menu::@3: scope:[menu] from menu::@9 [19] phi() - [20] call keyboard_key_pressed + [20] call keyboard_key_pressed [21] keyboard_key_pressed::return#4 = keyboard_key_pressed::return#0 to:menu::@10 menu::@10: scope:[menu] from menu::@3 @@ -415,13 +415,13 @@ menu::@4: scope:[menu] from menu::@10 [26] *SCREEN = ++ *SCREEN to:menu::@1 -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@1 menu::@2 menu::@3 pressed::@1 [27] keyboard_key_pressed::key#4 = phi( menu::@1/KEY_C, menu::@2/KEY_I, menu::@3/KEY_E, pressed::@1/KEY_SPACE ) [28] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#4 & 7 [29] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#4 >> 3 [30] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - [31] call keyboard_matrix_read + [31] call keyboard_matrix_read [32] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -438,7 +438,7 @@ pressed: scope:[pressed] from menu::@5 to:pressed::@1 pressed::@1: scope:[pressed] from pressed pressed::@2 [37] phi() - [38] call keyboard_key_pressed + [38] call keyboard_key_pressed [39] keyboard_key_pressed::return#10 = keyboard_key_pressed::return#0 to:pressed::@2 pressed::@2: scope:[pressed] from pressed::@1 @@ -449,10 +449,10 @@ pressed::@return: scope:[pressed] from pressed::@2 [42] return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [43] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] - [44] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [43] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] + [44] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [45] return @@ -461,34 +461,34 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri null depth in calling loop Loop head: pressed::@1 tails: pressed::@2 blocks: pressed::@2 pressed::@1 in scope keyboard_key_pressed VARIABLE REGISTER WEIGHTS -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 2000002.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 333333.6666666667 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#4 1000001.0 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 188334.1666666667 -byte keyboard_key_pressed::return#10 200002.0 -byte keyboard_key_pressed::return#2 20002.0 -byte keyboard_key_pressed::return#3 20002.0 -byte keyboard_key_pressed::return#4 20002.0 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 2000002.0 -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 3666667.333333333 -byte keyboard_matrix_read::return#2 2000002.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 1.1000002E7 +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // 2000002.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 // 333333.6666666667 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#4 // 1000001.0 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // 188334.1666666667 +char keyboard_key_pressed::return#10 // 200002.0 +char keyboard_key_pressed::return#2 // 20002.0 +char keyboard_key_pressed::return#3 // 20002.0 +char keyboard_key_pressed::return#4 // 20002.0 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 // 2000002.0 +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // 3666667.333333333 +char keyboard_matrix_read::return#2 // 2000002.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 // 1.1000002E7 void main() void menu() -byte~ menu::$0 20002.0 -byte~ menu::$4 20002.0 -byte~ menu::$7 20002.0 +char menu::$0 // 20002.0 +char menu::$4 // 20002.0 +char menu::$7 // 20002.0 void pressed() -byte~ pressed::$1 200002.0 +char pressed::$1 // 200002.0 Initial phi equivalence classes [ keyboard_key_pressed::key#4 ] @@ -546,14 +546,14 @@ Statement [17] *BORDER_COLOR = RED [ ] ( menu:2 [ ] { } ) always clobbers reg b Statement [24] *BORDER_COLOR = GREEN [ ] ( menu:2 [ ] { } ) always clobbers reg byte a Statement [29] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#4 >> 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( menu:2::keyboard_key_pressed:5 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ keyboard_key_pressed::colidx#0 ] -Statement [43] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] [ ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [44] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [43] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] [ ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [44] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Statement [0] *BORDER_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [17] *BORDER_COLOR = RED [ ] ( menu:2 [ ] { } ) always clobbers reg byte a Statement [24] *BORDER_COLOR = GREEN [ ] ( menu:2 [ ] { } ) always clobbers reg byte a Statement [29] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#4 >> 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( menu:2::keyboard_key_pressed:5 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [43] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] [ ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [44] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [43] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] [ ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [44] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( menu:2::keyboard_key_pressed:5::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:13::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#3 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::keyboard_key_pressed:20::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#4 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } menu:2::pressed:10::keyboard_key_pressed:38::keyboard_matrix_read:31 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#10 } { keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ keyboard_key_pressed::key#4 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ keyboard_key_pressed::return#2 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ menu::$0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -669,7 +669,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call menu + // [2] call menu // [3] phi from main::@1 to menu [phi:main::@1->menu] menu_from___b1: jsr menu @@ -683,7 +683,7 @@ menu: { jmp __b1 // menu::@1 __b1: - // [5] call keyboard_key_pressed + // [5] call keyboard_key_pressed // [27] phi from menu::@1 to keyboard_key_pressed [phi:menu::@1->keyboard_key_pressed] keyboard_key_pressed_from___b1: // [27] phi keyboard_key_pressed::key#4 = KEY_C [phi:menu::@1->keyboard_key_pressed#0] -- vbuxx=vbuc1 @@ -702,7 +702,7 @@ menu: { jmp __b5 // menu::@5 __b5: - // [10] call pressed + // [10] call pressed jsr pressed jmp __breturn // menu::@return @@ -714,7 +714,7 @@ menu: { jmp __b2 // menu::@2 __b2: - // [13] call keyboard_key_pressed + // [13] call keyboard_key_pressed // [27] phi from menu::@2 to keyboard_key_pressed [phi:menu::@2->keyboard_key_pressed] keyboard_key_pressed_from___b2: // [27] phi keyboard_key_pressed::key#4 = KEY_I [phi:menu::@2->keyboard_key_pressed#0] -- vbuxx=vbuc1 @@ -742,7 +742,7 @@ menu: { jmp __b3 // menu::@3 __b3: - // [20] call keyboard_key_pressed + // [20] call keyboard_key_pressed // [27] phi from menu::@3 to keyboard_key_pressed [phi:menu::@3->keyboard_key_pressed] keyboard_key_pressed_from___b3: // [27] phi keyboard_key_pressed::key#4 = KEY_E [phi:menu::@3->keyboard_key_pressed#0] -- vbuxx=vbuc1 @@ -776,7 +776,7 @@ menu: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed -// keyboard_key_pressed(byte register(X) key) +// __register(A) char keyboard_key_pressed(__register(X) char key) keyboard_key_pressed: { // [28] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#4 & 7 -- vbuyy=vbuxx_band_vbuc1 txa @@ -789,7 +789,7 @@ keyboard_key_pressed: { lsr // [30] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 -- vbuxx=vbuaa tax - // [31] call keyboard_matrix_read + // [31] call keyboard_matrix_read jsr keyboard_matrix_read // [32] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 jmp __b1 @@ -814,7 +814,7 @@ pressed: { jmp __b1 // pressed::@1 __b1: - // [38] call keyboard_key_pressed + // [38] call keyboard_key_pressed // [27] phi from pressed::@1 to keyboard_key_pressed [phi:pressed::@1->keyboard_key_pressed] keyboard_key_pressed_from___b1: // [27] phi keyboard_key_pressed::key#4 = KEY_SPACE [phi:pressed::@1->keyboard_key_pressed#0] -- vbuxx=vbuc1 @@ -840,12 +840,12 @@ pressed: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. -// keyboard_matrix_read(byte register(X) rowid) +// __register(A) char keyboard_matrix_read(__register(X) char rowid) keyboard_matrix_read: { - // [43] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [43] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1 - // [44] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [44] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff jmp __breturn @@ -917,47 +917,47 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte GREEN = 5 -constant const byte KEY_C = $14 -constant const byte KEY_E = $e -constant const byte KEY_I = $21 -constant const byte KEY_SPACE = $3c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant const byte RED = 2 -constant byte* SCREEN = (byte*) 1024 -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 reg byte a 2000002.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 reg byte y 333333.6666666667 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#4 reg byte x 1000001.0 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 reg byte a 188334.1666666667 -byte keyboard_key_pressed::return#10 reg byte a 200002.0 -byte keyboard_key_pressed::return#2 reg byte a 20002.0 -byte keyboard_key_pressed::return#3 reg byte a 20002.0 -byte keyboard_key_pressed::return#4 reg byte a 20002.0 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 reg byte a 2000002.0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 reg byte a 3666667.333333333 -byte keyboard_matrix_read::return#2 reg byte a 2000002.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 reg byte x 1.1000002E7 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char GREEN = 5 +__constant const char KEY_C = $14 +__constant const char KEY_E = $e +__constant const char KEY_I = $21 +__constant const char KEY_SPACE = $3c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant const char RED = 2 +__constant char *SCREEN = (char *) 1024 +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // reg byte a 2000002.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 // reg byte y 333333.6666666667 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#4 // reg byte x 1000001.0 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // reg byte a 188334.1666666667 +char keyboard_key_pressed::return#10 // reg byte a 200002.0 +char keyboard_key_pressed::return#2 // reg byte a 20002.0 +char keyboard_key_pressed::return#3 // reg byte a 20002.0 +char keyboard_key_pressed::return#4 // reg byte a 20002.0 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 // reg byte a 2000002.0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // reg byte a 3666667.333333333 +char keyboard_matrix_read::return#2 // reg byte a 2000002.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 // reg byte x 1.1000002E7 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() void menu() -byte~ menu::$0 reg byte a 20002.0 -byte~ menu::$4 reg byte a 20002.0 -byte~ menu::$7 reg byte a 20002.0 +char menu::$0 // reg byte a 20002.0 +char menu::$4 // reg byte a 20002.0 +char menu::$7 // reg byte a 20002.0 void pressed() -byte~ pressed::$1 reg byte a 200002.0 +char pressed::$1 // reg byte a 200002.0 reg byte x [ keyboard_key_pressed::key#4 ] reg byte a [ keyboard_key_pressed::return#2 ] @@ -1042,7 +1042,7 @@ main: { // main::@1 __b1: // menu() - // [2] call menu + // [2] call menu // [3] phi from main::@1 to menu [phi:main::@1->menu] jsr menu jmp __b1 @@ -1053,7 +1053,7 @@ menu: { // menu::@1 __b1: // keyboard_key_pressed(KEY_C) - // [5] call keyboard_key_pressed + // [5] call keyboard_key_pressed // [27] phi from menu::@1 to keyboard_key_pressed [phi:menu::@1->keyboard_key_pressed] // [27] phi keyboard_key_pressed::key#4 = KEY_C [phi:menu::@1->keyboard_key_pressed#0] -- vbuxx=vbuc1 ldx #KEY_C @@ -1069,7 +1069,7 @@ menu: { // [9] phi from menu::@8 to menu::@5 [phi:menu::@8->menu::@5] // menu::@5 // pressed() - // [10] call pressed + // [10] call pressed jsr pressed // menu::@return // } @@ -1079,7 +1079,7 @@ menu: { // menu::@2 __b2: // keyboard_key_pressed(KEY_I) - // [13] call keyboard_key_pressed + // [13] call keyboard_key_pressed // [27] phi from menu::@2 to keyboard_key_pressed [phi:menu::@2->keyboard_key_pressed] // [27] phi keyboard_key_pressed::key#4 = KEY_I [phi:menu::@2->keyboard_key_pressed#0] -- vbuxx=vbuc1 ldx #KEY_I @@ -1105,7 +1105,7 @@ menu: { // menu::@3 __b3: // keyboard_key_pressed(KEY_E) - // [20] call keyboard_key_pressed + // [20] call keyboard_key_pressed // [27] phi from menu::@3 to keyboard_key_pressed [phi:menu::@3->keyboard_key_pressed] // [27] phi keyboard_key_pressed::key#4 = KEY_E [phi:menu::@3->keyboard_key_pressed#0] -- vbuxx=vbuc1 ldx #KEY_E @@ -1139,7 +1139,7 @@ menu: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed -// keyboard_key_pressed(byte register(X) key) +// __register(A) char keyboard_key_pressed(__register(X) char key) keyboard_key_pressed: { // char colidx = key&7 // [28] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#4 & 7 -- vbuyy=vbuxx_band_vbuc1 @@ -1155,7 +1155,7 @@ keyboard_key_pressed: { // keyboard_matrix_read(rowidx) // [30] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 -- vbuxx=vbuaa tax - // [31] call keyboard_matrix_read + // [31] call keyboard_matrix_read jsr keyboard_matrix_read // [32] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 // keyboard_key_pressed::@1 @@ -1177,7 +1177,7 @@ pressed: { // pressed::@1 __b1: // keyboard_key_pressed(KEY_SPACE) - // [38] call keyboard_key_pressed + // [38] call keyboard_key_pressed // [27] phi from pressed::@1 to keyboard_key_pressed [phi:pressed::@1->keyboard_key_pressed] // [27] phi keyboard_key_pressed::key#4 = KEY_SPACE [phi:pressed::@1->keyboard_key_pressed#0] -- vbuxx=vbuc1 ldx #KEY_SPACE @@ -1203,14 +1203,14 @@ pressed: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. -// keyboard_matrix_read(byte register(X) rowid) +// __register(A) char keyboard_matrix_read(__register(X) char rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] - // [43] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [43] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1 // char row_pressed_bits = ~CIA1->PORT_B - // [44] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [44] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff // keyboard_matrix_read::@return diff --git a/src/test/ref/keyboard-glitch.sym b/src/test/ref/keyboard-glitch.sym index bbd890c6f..723ec0fb7 100644 --- a/src/test/ref/keyboard-glitch.sym +++ b/src/test/ref/keyboard-glitch.sym @@ -1,44 +1,44 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte GREEN = 5 -constant const byte KEY_C = $14 -constant const byte KEY_E = $e -constant const byte KEY_I = $21 -constant const byte KEY_SPACE = $3c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant const byte RED = 2 -constant byte* SCREEN = (byte*) 1024 -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 reg byte a 2000002.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 reg byte y 333333.6666666667 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#4 reg byte x 1000001.0 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 reg byte a 188334.1666666667 -byte keyboard_key_pressed::return#10 reg byte a 200002.0 -byte keyboard_key_pressed::return#2 reg byte a 20002.0 -byte keyboard_key_pressed::return#3 reg byte a 20002.0 -byte keyboard_key_pressed::return#4 reg byte a 20002.0 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 reg byte a 2000002.0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 reg byte a 3666667.333333333 -byte keyboard_matrix_read::return#2 reg byte a 2000002.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 reg byte x 1.1000002E7 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char GREEN = 5 +__constant const char KEY_C = $14 +__constant const char KEY_E = $e +__constant const char KEY_I = $21 +__constant const char KEY_SPACE = $3c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant const char RED = 2 +__constant char *SCREEN = (char *) 1024 +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // reg byte a 2000002.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 // reg byte y 333333.6666666667 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#4 // reg byte x 1000001.0 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // reg byte a 188334.1666666667 +char keyboard_key_pressed::return#10 // reg byte a 200002.0 +char keyboard_key_pressed::return#2 // reg byte a 20002.0 +char keyboard_key_pressed::return#3 // reg byte a 20002.0 +char keyboard_key_pressed::return#4 // reg byte a 20002.0 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 // reg byte a 2000002.0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // reg byte a 3666667.333333333 +char keyboard_matrix_read::return#2 // reg byte a 2000002.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 // reg byte x 1.1000002E7 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() void menu() -byte~ menu::$0 reg byte a 20002.0 -byte~ menu::$4 reg byte a 20002.0 -byte~ menu::$7 reg byte a 20002.0 +char menu::$0 // reg byte a 20002.0 +char menu::$4 // reg byte a 20002.0 +char menu::$7 // reg byte a 20002.0 void pressed() -byte~ pressed::$1 reg byte a 200002.0 +char pressed::$1 // reg byte a 200002.0 reg byte x [ keyboard_key_pressed::key#4 ] reg byte a [ keyboard_key_pressed::return#2 ] diff --git a/src/test/ref/kickasm-uses-prevent-deletion.log b/src/test/ref/kickasm-uses-prevent-deletion.log index 2c9db3fe8..71e20fb0e 100644 --- a/src/test/ref/kickasm-uses-prevent-deletion.log +++ b/src/test/ref/kickasm-uses-prevent-deletion.log @@ -27,7 +27,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,16 +36,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte BLACK = 0 -constant void()** const KERNEL_IRQ = (void()**)$314 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char BLACK = 0 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 +__constant const char WHITE = 1 void __start() __interrupt(rom_sys_c64) void irq() void main() -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -164,10 +164,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant const char WHITE = 1 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/kickasm-uses-prevent-deletion.sym b/src/test/ref/kickasm-uses-prevent-deletion.sym index c870d2a13..f0d1eb3cb 100644 --- a/src/test/ref/kickasm-uses-prevent-deletion.sym +++ b/src/test/ref/kickasm-uses-prevent-deletion.sym @@ -1,7 +1,7 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLACK = 0 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant const byte WHITE = 1 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLACK = 0 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant const char WHITE = 1 __interrupt(rom_sys_c64) void irq() void main() diff --git a/src/test/ref/labelgoto-0.log b/src/test/ref/labelgoto-0.log index 71b6d60af..001f8fb34 100644 --- a/src/test/ref/labelgoto-0.log +++ b/src/test/ref/labelgoto-0.log @@ -44,24 +44,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Adding number conversion cast (unumber) $28 in main::SCREEN[$28] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 main::i#4 Successful SSA optimization Pass2AliasElimination @@ -128,9 +128,9 @@ main::label4: scope:[main] from main::label3 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -244,10 +244,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/labelgoto-0.sym b/src/test/ref/labelgoto-0.sym index 8e59d7e02..f47ffb777 100644 --- a/src/test/ref/labelgoto-0.sym +++ b/src/test/ref/labelgoto-0.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/labelgoto-2.log b/src/test/ref/labelgoto-2.log index e00925a82..9f5e507bc 100644 --- a/src/test/ref/labelgoto-2.log +++ b/src/test/ref/labelgoto-2.log @@ -27,17 +27,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = '*' Adding number conversion cast (unumber) 0 in main::SCREEN[0] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[0] = '*' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -128,7 +128,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/labelgoto-2.sym b/src/test/ref/labelgoto-2.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/labelgoto-2.sym +++ b/src/test/ref/labelgoto-2.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/labelgoto-3.log b/src/test/ref/labelgoto-3.log index 5153dfb36..fba7229c1 100644 --- a/src/test/ref/labelgoto-3.log +++ b/src/test/ref/labelgoto-3.log @@ -27,13 +27,13 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -70,9 +70,9 @@ main::repeat: scope:[main] from main main::repeat VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 16.5 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -138,10 +138,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/labelgoto-3.sym b/src/test/ref/labelgoto-3.sym index d331071f9..32370a670 100644 --- a/src/test/ref/labelgoto-3.sym +++ b/src/test/ref/labelgoto-3.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/labelgoto-5.log b/src/test/ref/labelgoto-5.log index 3edc6d322..64ab5b879 100644 --- a/src/test/ref/labelgoto-5.log +++ b/src/test/ref/labelgoto-5.log @@ -36,27 +36,27 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) $28 in main::SCREEN[$28] = ++ main::SCREEN[$28] Adding number conversion cast (unumber) $28 in main::SCREEN[$28] = ++ main::SCREEN[(unumber)$28] Adding number conversion cast (unumber) $a in main::$0 = main::i#3 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#1 = main::i#3 main::i#4 Successful SSA optimization Pass2AliasElimination @@ -107,9 +107,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 14.666666666666666 -byte main::i#2 11.0 +char main::i +char main::i#1 // 14.666666666666666 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -194,10 +194,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 14.666666666666666 -byte main::i#2 reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 14.666666666666666 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/labelgoto-5.sym b/src/test/ref/labelgoto-5.sym index 30bff1f77..2c2a51644 100644 --- a/src/test/ref/labelgoto-5.sym +++ b/src/test/ref/labelgoto-5.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 14.666666666666666 -byte main::i#2 reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 14.666666666666666 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/library-constructor-1.log b/src/test/ref/library-constructor-1.log index e7dc53739..0b755e7a0 100644 --- a/src/test/ref/library-constructor-1.log +++ b/src/test/ref/library-constructor-1.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -12,7 +12,7 @@ my_init::@return: scope:[my_init] from my_init void main() main: scope:[main] from __start::@1 - call print + call print to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -33,12 +33,12 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start my_value = 0 - call my_init + call my_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -47,14 +47,14 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() void my_init() -volatile byte my_value loadstore +__loadstore volatile char my_value void print() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@2 @@ -83,11 +83,11 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] my_value = 0 - [2] call my_init + [2] call my_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -104,7 +104,7 @@ my_init::@return: scope:[my_init] from my_init void main() main: scope:[main] from __start::@1 [8] phi() - [9] call print + [9] call print to:main::@return main::@return: scope:[main] from main [10] return @@ -123,7 +123,7 @@ VARIABLE REGISTER WEIGHTS void __start() void main() void my_init() -volatile byte my_value loadstore 22.8 +__loadstore volatile char my_value // 22.8 void print() Initial phi equivalence classes @@ -177,14 +177,14 @@ __start: { // [1] my_value = 0 -- vbuz1=vbuc1 lda #0 sta.z my_value - // [2] call my_init + // [2] call my_init jsr my_init // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main // [8] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -207,7 +207,7 @@ my_init: { } // main main: { - // [9] call print + // [9] call print jsr print jmp __breturn // main::@return @@ -248,11 +248,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() void main() void my_init() -volatile byte my_value loadstore zp[1]:2 22.8 +__loadstore volatile char my_value // zp[1]:2 22.8 void print() zp[1]:2 [ my_value ] @@ -285,11 +285,11 @@ __start: { lda #0 sta.z my_value // #pragma constructor_for(my_init, print) - // [2] call my_init + // [2] call my_init jsr my_init // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main // [8] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -310,7 +310,7 @@ my_init: { // main main: { // print() - // [9] call print + // [9] call print jsr print // main::@return // } diff --git a/src/test/ref/library-constructor-1.sym b/src/test/ref/library-constructor-1.sym index c53f96246..6aee1c0cc 100644 --- a/src/test/ref/library-constructor-1.sym +++ b/src/test/ref/library-constructor-1.sym @@ -1,8 +1,8 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() void main() void my_init() -volatile byte my_value loadstore zp[1]:2 22.8 +__loadstore volatile char my_value // zp[1]:2 22.8 void print() zp[1]:2 [ my_value ] diff --git a/src/test/ref/library-constructor-2.log b/src/test/ref/library-constructor-2.log index 1857a8a8d..c2c721d34 100644 --- a/src/test/ref/library-constructor-2.log +++ b/src/test/ref/library-constructor-2.log @@ -1,5 +1,5 @@ Resolved forward reference SCREEN to SCREEN -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -23,12 +23,12 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - call my_init + call my_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -37,7 +37,7 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() void my_init() @@ -45,16 +45,16 @@ void my_init() Adding number conversion cast (unumber) 0 in SCREEN[0] = '*' Adding number conversion cast (unumber) 2 in SCREEN[2] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = '*' Successful SSA optimization PassNSimplifyExpressionWithZero -Removing call to empty/unused procedure [4] call my_init +Removing call to empty/unused procedure [4] call my_init Successful SSA optimization PassNEliminateUnusedConstructors Removing unused procedure my_init Removing unused procedure block my_init @@ -137,7 +137,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/library-constructor-2.sym b/src/test/ref/library-constructor-2.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/library-constructor-2.sym +++ b/src/test/ref/library-constructor-2.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/library-constructor-3.cfg b/src/test/ref/library-constructor-3.cfg index 74c201d7d..7212f45d8 100644 --- a/src/test/ref/library-constructor-3.cfg +++ b/src/test/ref/library-constructor-3.cfg @@ -5,16 +5,16 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] sym = 0 - [2] SCREEN = (byte*) 0 - [3] call init_1 + [2] SCREEN = (char *) 0 + [3] call init_1 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 [4] phi() - [5] call init_2 + [5] call init_2 to:__start::@1 __start::@1: scope:[__start] from __start::@2 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -22,7 +22,7 @@ __start::@return: scope:[__start] from __start::@1 void init_2() init_2: scope:[init_2] from __start::@2 - [9] SCREEN = (byte*) 1024 + [9] SCREEN = (char *) 1024 to:init_2::@return init_2::@return: scope:[init_2] from init_2 [10] return @@ -39,7 +39,7 @@ init_1::@return: scope:[init_1] from init_1 void main() main: scope:[main] from __start::@1 [13] phi() - [14] call print + [14] call print to:main::@return main::@return: scope:[main] from main [15] return diff --git a/src/test/ref/library-constructor-3.log b/src/test/ref/library-constructor-3.log index 8cad07a54..fa85d9640 100644 --- a/src/test/ref/library-constructor-3.log +++ b/src/test/ref/library-constructor-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -12,7 +12,7 @@ init_1::@return: scope:[init_1] from init_1 void init_2() init_2: scope:[init_2] from __start::@2 - SCREEN = (byte*)$400 + SCREEN = (char *)$400 to:init_2::@return init_2::@return: scope:[init_2] from init_2 return @@ -20,7 +20,7 @@ init_2::@return: scope:[init_2] from init_2 void main() main: scope:[main] from __start::@1 - call print + call print to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -41,16 +41,16 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start sym = 0 - SCREEN = (byte*) 0 - call init_1 + SCREEN = (char *) 0 + call init_1 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 - call init_2 + call init_2 to:__start::@3 __start::@3: scope:[__start] from __start::@2 to:__start::@1 __start::@1: scope:[__start] from __start::@3 - call main + call main to:__start::@4 __start::@4: scope:[__start] from __start::@1 to:__start::@return @@ -59,15 +59,15 @@ __start::@return: scope:[__start] from __start::@4 to:@return SYMBOL TABLE SSA -byte* volatile SCREEN loadstore +__loadstore char * volatile SCREEN void __start() void init_1() void init_2() void main() void print() -volatile byte sym loadstore +__loadstore volatile char sym -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@2 @@ -98,16 +98,16 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] sym = 0 - [2] SCREEN = (byte*) 0 - [3] call init_1 + [2] SCREEN = (char *) 0 + [3] call init_1 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 [4] phi() - [5] call init_2 + [5] call init_2 to:__start::@1 __start::@1: scope:[__start] from __start::@2 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -115,7 +115,7 @@ __start::@return: scope:[__start] from __start::@1 void init_2() init_2: scope:[init_2] from __start::@2 - [9] SCREEN = (byte*) 1024 + [9] SCREEN = (char *) 1024 to:init_2::@return init_2::@return: scope:[init_2] from init_2 [10] return @@ -132,7 +132,7 @@ init_1::@return: scope:[init_1] from init_1 void main() main: scope:[main] from __start::@1 [13] phi() - [14] call print + [14] call print to:main::@return main::@return: scope:[main] from main [15] return @@ -148,13 +148,13 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte* volatile SCREEN loadstore 22.8 +__loadstore char * volatile SCREEN // 22.8 void __start() void init_1() void init_2() void main() void print() -volatile byte sym loadstore 16.285714285714285 +__loadstore volatile char sym // 16.285714285714285 Initial phi equivalence classes Added variable sym to live range equivalence class [ sym ] @@ -166,8 +166,8 @@ Allocated zp[1]:2 [ sym ] Allocated zp[2]:3 [ SCREEN ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] sym = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] SCREEN = (byte*) 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] SCREEN = (byte*) 1024 [ SCREEN ] ( [ SCREEN ] { } init_2:5 [ sym SCREEN ] { } ) always clobbers reg byte a +Statement [2] SCREEN = (char *) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] SCREEN = (char *) 1024 [ SCREEN ] ( [ SCREEN ] { } init_2:5 [ sym SCREEN ] { } ) always clobbers reg byte a Statement [11] sym = '*' [ sym ] ( [ sym ] { } init_1:3 [ sym ] { } ) always clobbers reg byte a Statement [16] *SCREEN = sym [ ] ( main:7::print:14 [ ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ sym ] : zp[1]:2 , @@ -215,26 +215,26 @@ __start: { // [1] sym = 0 -- vbuz1=vbuc1 lda #0 sta.z sym - // [2] SCREEN = (byte*) 0 -- pbuz1=pbuc1 + // [2] SCREEN = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z SCREEN lda #>0 sta.z SCREEN+1 - // [3] call init_1 + // [3] call init_1 jsr init_1 // [4] phi from __start::__init1 to __start::@2 [phi:__start::__init1->__start::@2] __b2_from___init1: jmp __b2 // __start::@2 __b2: - // [5] call init_2 + // [5] call init_2 jsr init_2 // [6] phi from __start::@2 to __start::@1 [phi:__start::@2->__start::@1] __b1_from___b2: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [13] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -246,7 +246,7 @@ __start: { } // init_2 init_2: { - // [9] SCREEN = (byte*) 1024 -- pbuz1=pbuc1 + // [9] SCREEN = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z SCREEN lda #>$400 @@ -270,7 +270,7 @@ init_1: { } // main main: { - // [14] call print + // [14] call print jsr print jmp __breturn // main::@return @@ -320,13 +320,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte* volatile SCREEN loadstore zp[2]:3 22.8 +__loadstore char * volatile SCREEN // zp[2]:3 22.8 void __start() void init_1() void init_2() void main() void print() -volatile byte sym loadstore zp[1]:2 16.285714285714285 +__loadstore volatile char sym // zp[1]:2 16.285714285714285 zp[1]:2 [ sym ] zp[2]:3 [ SCREEN ] @@ -359,20 +359,20 @@ __start: { lda #0 sta.z sym // char * volatile SCREEN - // [2] SCREEN = (byte*) 0 -- pbuz1=pbuc1 + // [2] SCREEN = (char *) 0 -- pbuz1=pbuc1 sta.z SCREEN sta.z SCREEN+1 // #pragma constructor_for(init_1, print) - // [3] call init_1 + // [3] call init_1 jsr init_1 // [4] phi from __start::__init1 to __start::@2 [phi:__start::__init1->__start::@2] // __start::@2 // #pragma constructor_for(init_2, print) - // [5] call init_2 + // [5] call init_2 jsr init_2 // [6] phi from __start::@2 to __start::@1 [phi:__start::@2->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [13] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -382,7 +382,7 @@ __start: { // init_2 init_2: { // SCREEN = (char*)0x0400 - // [9] SCREEN = (byte*) 1024 -- pbuz1=pbuc1 + // [9] SCREEN = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z SCREEN lda #>$400 @@ -406,7 +406,7 @@ init_1: { // main main: { // print() - // [14] call print + // [14] call print jsr print // main::@return // } diff --git a/src/test/ref/library-constructor-3.sym b/src/test/ref/library-constructor-3.sym index fc251c4e1..7665b2cd3 100644 --- a/src/test/ref/library-constructor-3.sym +++ b/src/test/ref/library-constructor-3.sym @@ -1,10 +1,10 @@ -byte* volatile SCREEN loadstore zp[2]:3 22.8 +__loadstore char * volatile SCREEN // zp[2]:3 22.8 void __start() void init_1() void init_2() void main() void print() -volatile byte sym loadstore zp[1]:2 16.285714285714285 +__loadstore volatile char sym // zp[1]:2 16.285714285714285 zp[1]:2 [ sym ] zp[2]:3 [ SCREEN ] diff --git a/src/test/ref/linegen.asm b/src/test/ref/linegen.asm index 2ca391b70..2b3561d12 100644 --- a/src/test/ref/linegen.asm +++ b/src/test/ref/linegen.asm @@ -13,7 +13,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label print_screen = $400 // Remainder after unsigned 16-bit division .label rem16u = $18 @@ -231,7 +231,7 @@ main: { // Generate word linear table // lintab - the table to generate into // length - the number of points in a total sine wavelength (the size of the table) -// lin16u_gen(word zp(9) min, word zp(7) max, word* zp($d) lintab) +// void lin16u_gen(__zp(9) unsigned int min, __zp(7) unsigned int max, __zp($d) unsigned int *lintab, unsigned int length) lin16u_gen: { .label __8 = $18 .label ampl = 7 @@ -324,7 +324,7 @@ lin16u_gen: { adc.z step+3 sta.z val+3 // lintab++; - lda #SIZEOF_WORD + lda #SIZEOF_UNSIGNED_INT clc adc.z lintab sta.z lintab @@ -346,7 +346,7 @@ print_cls: { rts } // Print a zero-terminated string -// print_str(byte* zp(7) str) +// void print_str(__zp(7) char *str) print_str: { .label str = 7 __b1: @@ -370,7 +370,7 @@ print_str: { jmp __b1 } // Print a unsigned int as HEX -// print_uint(word zp(9) w) +// void print_uint(__zp(9) unsigned int w) print_uint: { .label w = 9 // print_uchar(BYTE1(w)) @@ -406,7 +406,7 @@ print_ln: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -432,7 +432,7 @@ print_uchar: { // Returns the quotient dividend/divisor. // The final remainder will be set into the global variable rem16u // Implemented using simple binary division -// divr16u(word zp(7) dividend, word zp($18) rem) +// __zp($f) unsigned int divr16u(__zp(7) unsigned int dividend, unsigned int divisor, __zp($18) unsigned int rem) divr16u: { .label rem = $18 .label dividend = 7 @@ -494,6 +494,7 @@ divr16u: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -527,7 +528,7 @@ memset: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/linegen.cfg b/src/test/ref/linegen.cfg index 5edb3cfe4..be5eb6712 100644 --- a/src/test/ref/linegen.cfg +++ b/src/test/ref/linegen.cfg @@ -2,47 +2,47 @@ void main() main: scope:[main] from [0] phi() - [1] call lin16u_gen + [1] call lin16u_gen to:main::@4 main::@4: scope:[main] from main [2] phi() - [3] call lin16u_gen + [3] call lin16u_gen to:main::@5 main::@5: scope:[main] from main::@4 [4] phi() - [5] call lin16u_gen + [5] call lin16u_gen to:main::@6 main::@6: scope:[main] from main::@5 [6] phi() - [7] call print_cls + [7] call print_cls to:main::@7 main::@7: scope:[main] from main::@6 [8] phi() - [9] call print_str + [9] call print_str to:main::@8 main::@8: scope:[main] from main::@7 [10] phi() - [11] call print_uint + [11] call print_uint to:main::@9 main::@9: scope:[main] from main::@8 [12] phi() - [13] call print_str + [13] call print_str to:main::@10 main::@10: scope:[main] from main::@9 [14] phi() - [15] call print_uint + [15] call print_uint to:main::@11 main::@11: scope:[main] from main::@10 [16] phi() - [17] call print_str + [17] call print_str to:main::@12 main::@12: scope:[main] from main::@11 [18] phi() - [19] call print_uint + [19] call print_uint to:main::@13 main::@13: scope:[main] from main::@12 [20] phi() - [21] call print_ln + [21] call print_ln to:main::@1 main::@1: scope:[main] from main::@13 main::@21 [22] main::i#10 = phi( main::@13/0, main::@21/main::i#1 ) @@ -50,31 +50,31 @@ main::@1: scope:[main] from main::@13 main::@21 to:main::@3 main::@3: scope:[main] from main::@1 [24] print_char_cursor#100 = print_line_cursor#0 - [25] call print_str + [25] call print_str to:main::@22 main::@22: scope:[main] from main::@3 [26] phi() - [27] call print_uint + [27] call print_uint to:main::@23 main::@23: scope:[main] from main::@22 [28] phi() - [29] call print_str + [29] call print_str to:main::@24 main::@24: scope:[main] from main::@23 [30] phi() - [31] call print_uint + [31] call print_uint to:main::@25 main::@25: scope:[main] from main::@24 [32] phi() - [33] call print_str + [33] call print_str to:main::@26 main::@26: scope:[main] from main::@25 [34] phi() - [35] call print_uint + [35] call print_uint to:main::@27 main::@27: scope:[main] from main::@26 [36] phi() - [37] call print_ln + [37] call print_ln to:main::@return main::@return: scope:[main] from main::@27 [38] return @@ -82,55 +82,55 @@ main::@return: scope:[main] from main::@27 main::@2: scope:[main] from main::@1 [39] print_uchar::b#2 = main::i#10 [40] print_char_cursor#104 = print_line_cursor#0 - [41] call print_uchar + [41] call print_uchar to:main::@14 main::@14: scope:[main] from main::@2 [42] phi() - [43] call print_str + [43] call print_str to:main::@15 main::@15: scope:[main] from main::@14 [44] main::$28 = main::i#10 << 1 [45] print_uint::w#3 = main::lintab1[main::$28] - [46] call print_uint + [46] call print_uint to:main::@16 main::@16: scope:[main] from main::@15 [47] phi() - [48] call print_str + [48] call print_str to:main::@17 main::@17: scope:[main] from main::@16 [49] print_uint::w#4 = main::lintab2[main::$28] - [50] call print_uint + [50] call print_uint to:main::@18 main::@18: scope:[main] from main::@17 [51] phi() - [52] call print_str + [52] call print_str to:main::@19 main::@19: scope:[main] from main::@18 [53] print_uint::w#5 = main::lintab3[main::$28] - [54] call print_uint + [54] call print_uint to:main::@20 main::@20: scope:[main] from main::@19 [55] phi() - [56] call print_ln + [56] call print_ln to:main::@21 main::@21: scope:[main] from main::@20 [57] main::i#1 = ++ main::i#10 to:main::@1 -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) lin16u_gen: scope:[lin16u_gen] from main main::@4 main::@5 [58] lin16u_gen::lintab#6 = phi( main/main::lintab1, main::@4/main::lintab2, main::@5/main::lintab3 ) [58] lin16u_gen::min#3 = phi( main/$22d, main::@4/$79cb, main::@5/0 ) [58] lin16u_gen::max#3 = phi( main/$7461, main::@4/$f781, main::@5/$6488 ) [59] lin16u_gen::ampl#0 = lin16u_gen::max#3 - lin16u_gen::min#3 [60] divr16u::dividend#1 = lin16u_gen::ampl#0 - [61] call divr16u + [61] call divr16u [62] divr16u::return#2 = divr16u::return#0 to:lin16u_gen::@3 lin16u_gen::@3: scope:[lin16u_gen] from lin16u_gen [63] lin16u_gen::stepi#0 = divr16u::return#2 [64] divr16u::rem#4 = rem16u#0 - [65] call divr16u + [65] call divr16u [66] divr16u::return#3 = divr16u::return#0 to:lin16u_gen::@4 lin16u_gen::@4: scope:[lin16u_gen] from lin16u_gen::@3 @@ -151,20 +151,20 @@ lin16u_gen::@2: scope:[lin16u_gen] from lin16u_gen::@1 [73] lin16u_gen::$8 = word1 lin16u_gen::val#2 [74] *lin16u_gen::lintab#4 = lin16u_gen::$8 [75] lin16u_gen::val#1 = lin16u_gen::val#2 + lin16u_gen::step#0 - [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD + [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT [77] lin16u_gen::i#1 = ++ lin16u_gen::i#2 to:lin16u_gen::@1 void print_cls() print_cls: scope:[print_cls] from main::@6 [78] phi() - [79] call memset + [79] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [80] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main::@23 main::@25 main::@3 main::@7 main::@9 [81] print_char_cursor#89 = phi( main::@11/print_char_cursor#10, main::@14/print_char_cursor#10, main::@16/print_char_cursor#10, main::@18/print_char_cursor#10, main::@23/print_char_cursor#10, main::@25/print_char_cursor#10, main::@3/print_char_cursor#100, main::@7/print_screen#0, main::@9/print_char_cursor#10 ) [81] print_str::str#13 = phi( main::@11/main::str1, main::@14/main::str1, main::@16/main::str1, main::@18/main::str1, main::@23/main::str1, main::@25/main::str1, main::@3/main::str, main::@7/main::str, main::@9/main::str1 ) @@ -179,21 +179,21 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [85] print_char::ch#0 = *print_str::str#10 - [86] call print_char + [86] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [87] print_str::str#0 = ++ print_str::str#10 to:print_str::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@10 main::@12 main::@15 main::@17 main::@19 main::@22 main::@24 main::@26 main::@8 [88] print_uint::w#10 = phi( main::@10/$79cb, main::@12/0, main::@15/print_uint::w#3, main::@17/print_uint::w#4, main::@19/print_uint::w#5, main::@22/$7461, main::@24/$f781, main::@26/$6488, main::@8/$22d ) [89] print_uchar::b#0 = byte1 print_uint::w#10 - [90] call print_uchar + [90] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [91] print_uchar::b#1 = byte0 print_uint::w#10 - [92] call print_uchar + [92] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [93] return @@ -212,24 +212,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [98] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@2 print_uint print_uint::@1 [99] print_char_cursor#84 = phi( main::@2/print_char_cursor#104, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) [99] print_uchar::b#3 = phi( main::@2/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [100] print_uchar::$0 = print_uchar::b#3 >> 4 [101] print_char::ch#1 = print_hextab[print_uchar::$0] - [102] call print_char + [102] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [103] print_uchar::$2 = print_uchar::b#3 & $f [104] print_char::ch#2 = print_hextab[print_uchar::$2] - [105] call print_char + [105] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [106] return to:@return -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3 [107] divr16u::dividend#5 = phi( lin16u_gen/divr16u::dividend#1, lin16u_gen::@3/0 ) [107] divr16u::rem#10 = phi( lin16u_gen/0, lin16u_gen::@3/divr16u::rem#4 ) @@ -270,12 +270,12 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 [124] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [125] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [126] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [126] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [127] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -286,7 +286,7 @@ memset::@2: scope:[memset] from memset::@1 [130] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [131] print_char_cursor#51 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#84, print_uchar::@1/print_char_cursor#10 ) [131] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) diff --git a/src/test/ref/linegen.log b/src/test/ref/linegen.log index 63ec5919f..7836f4ef0 100644 --- a/src/test/ref/linegen.log +++ b/src/test/ref/linegen.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement lin16u_gen::$0 Eliminating unused variable with no statement lin16u_gen::$2 @@ -8,7 +8,7 @@ Eliminating unused variable with no statement lin16u_gen::$6 CONTROL FLOW GRAPH SSA -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3 divr16u::divisor#6 = phi( lin16u_gen/divr16u::divisor#0, lin16u_gen::@3/divr16u::divisor#1 ) divr16u::dividend#5 = phi( lin16u_gen/divr16u::dividend#1, lin16u_gen::@3/divr16u::dividend#2 ) @@ -87,7 +87,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@11 main::@15 main::@17 main::@19 main::@24 main::@26 main::@3 main::@7 main::@9 print_char_cursor#89 = phi( main::@11/print_char_cursor#18, main::@15/print_char_cursor#22, main::@17/print_char_cursor#24, main::@19/print_char_cursor#26, main::@24/print_char_cursor#31, main::@26/print_char_cursor#33, main::@3/print_char_cursor#87, main::@7/print_char_cursor#14, main::@9/print_char_cursor#16 ) print_str::str#13 = phi( main::@11/print_str::str#3, main::@15/print_str::str#4, main::@17/print_str::str#5, main::@19/print_str::str#6, main::@24/print_str::str#8, main::@26/print_str::str#9, main::@3/print_str::str#7, main::@7/print_str::str#1, main::@9/print_str::str#2 ) @@ -102,7 +102,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#80 = phi( print_str::@1/print_char_cursor#81 ) print_str::str#11 = phi( print_str::@1/print_str::str#10 ) print_char::ch#0 = *print_str::str#11 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#12 = phi( print_str::@2/print_str::str#11 ) @@ -141,13 +141,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@10 main::@12 main::@16 main::@18 main::@20 main::@23 main::@25 main::@27 main::@8 print_char_cursor#83 = phi( main::@10/print_char_cursor#17, main::@12/print_char_cursor#19, main::@16/print_char_cursor#23, main::@18/print_char_cursor#25, main::@20/print_char_cursor#27, main::@23/print_char_cursor#30, main::@25/print_char_cursor#32, main::@27/print_char_cursor#34, main::@8/print_char_cursor#15 ) print_uint::w#9 = phi( main::@10/print_uint::w#1, main::@12/print_uint::w#2, main::@16/print_uint::w#3, main::@18/print_uint::w#4, main::@20/print_uint::w#5, main::@23/print_uint::w#6, main::@25/print_uint::w#7, main::@27/print_uint::w#8, main::@8/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#9 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#10 = phi( print_uint/print_uint::w#9 ) @@ -155,7 +155,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#4 = print_char_cursor#45 print_uint::$2 = byte0 print_uint::w#10 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#46 = phi( print_uint::@1/print_char_cursor#9 ) @@ -167,13 +167,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@2 print_uint print_uint::@1 print_char_cursor#84 = phi( main::@2/print_char_cursor#86, print_uint/print_char_cursor#83, print_uint::@1/print_char_cursor#4 ) print_uchar::b#3 = phi( main::@2/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#3 >> 4 print_char::ch#1 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#4 = phi( print_uchar/print_uchar::b#3 ) @@ -181,7 +181,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#7 = print_char_cursor#48 print_uchar::$2 = print_uchar::b#4 & $f print_char::ch#2 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#49 = phi( print_uchar::@1/print_char_cursor#11 ) @@ -193,7 +193,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_char_cursor#51 = phi( print_str::@2/print_char_cursor#80, print_uchar/print_char_cursor#84, print_uchar::@1/print_char_cursor#7 ) print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -209,10 +209,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main::@6 print_screen#2 = phi( main::@6/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -228,7 +228,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -245,9 +245,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -281,7 +281,7 @@ main: scope:[main] from __start::@1 lin16u_gen::max#0 = $7461 lin16u_gen::lintab#0 = main::lintab1 lin16u_gen::length#0 = $14 - call lin16u_gen + call lin16u_gen to:main::@4 main::@4: scope:[main] from main print_char_cursor#92 = phi( main/print_char_cursor#93 ) @@ -293,7 +293,7 @@ main::@4: scope:[main] from main lin16u_gen::max#1 = $f781 lin16u_gen::lintab#1 = main::lintab2 lin16u_gen::length#1 = $14 - call lin16u_gen + call lin16u_gen to:main::@5 main::@5: scope:[main] from main::@4 print_char_cursor#90 = phi( main::@4/print_char_cursor#92 ) @@ -305,7 +305,7 @@ main::@5: scope:[main] from main::@4 lin16u_gen::max#2 = $6488 lin16u_gen::lintab#2 = main::lintab3 lin16u_gen::length#2 = $14 - call lin16u_gen + call lin16u_gen to:main::@6 main::@6: scope:[main] from main::@5 print_char_cursor#85 = phi( main::@5/print_char_cursor#90 ) @@ -313,7 +313,7 @@ main::@6: scope:[main] from main::@5 print_screen#5 = phi( main::@5/print_screen#7 ) rem16u#15 = phi( main::@5/rem16u#8 ) rem16u#4 = rem16u#15 - call print_cls + call print_cls to:main::@7 main::@7: scope:[main] from main::@6 rem16u#50 = phi( main::@6/rem16u#4 ) @@ -322,7 +322,7 @@ main::@7: scope:[main] from main::@6 print_line_cursor#4 = print_line_cursor#16 print_char_cursor#14 = print_char_cursor#54 print_str::str#1 = main::str - call print_str + call print_str to:main::@8 main::@8: scope:[main] from main::@7 rem16u#48 = phi( main::@7/rem16u#50 ) @@ -330,7 +330,7 @@ main::@8: scope:[main] from main::@7 print_char_cursor#55 = phi( main::@7/print_char_cursor#1 ) print_char_cursor#15 = print_char_cursor#55 print_uint::w#0 = $22d - call print_uint + call print_uint to:main::@9 main::@9: scope:[main] from main::@8 rem16u#46 = phi( main::@8/rem16u#48 ) @@ -338,7 +338,7 @@ main::@9: scope:[main] from main::@8 print_char_cursor#56 = phi( main::@8/print_char_cursor#6 ) print_char_cursor#16 = print_char_cursor#56 print_str::str#2 = main::str1 - call print_str + call print_str to:main::@10 main::@10: scope:[main] from main::@9 rem16u#44 = phi( main::@9/rem16u#46 ) @@ -346,7 +346,7 @@ main::@10: scope:[main] from main::@9 print_char_cursor#57 = phi( main::@9/print_char_cursor#1 ) print_char_cursor#17 = print_char_cursor#57 print_uint::w#1 = $79cb - call print_uint + call print_uint to:main::@11 main::@11: scope:[main] from main::@10 rem16u#42 = phi( main::@10/rem16u#44 ) @@ -354,7 +354,7 @@ main::@11: scope:[main] from main::@10 print_char_cursor#58 = phi( main::@10/print_char_cursor#6 ) print_char_cursor#18 = print_char_cursor#58 print_str::str#3 = main::str2 - call print_str + call print_str to:main::@12 main::@12: scope:[main] from main::@11 rem16u#40 = phi( main::@11/rem16u#42 ) @@ -362,14 +362,14 @@ main::@12: scope:[main] from main::@11 print_char_cursor#59 = phi( main::@11/print_char_cursor#1 ) print_char_cursor#19 = print_char_cursor#59 print_uint::w#2 = 0 - call print_uint + call print_uint to:main::@13 main::@13: scope:[main] from main::@12 rem16u#38 = phi( main::@12/rem16u#40 ) print_line_cursor#25 = phi( main::@12/print_line_cursor#30 ) print_char_cursor#60 = phi( main::@12/print_char_cursor#6 ) print_char_cursor#20 = print_char_cursor#60 - call print_ln + call print_ln to:main::@14 main::@14: scope:[main] from main::@13 rem16u#36 = phi( main::@13/rem16u#38 ) @@ -393,7 +393,7 @@ main::@2: scope:[main] from main::@1 print_char_cursor#86 = phi( main::@1/print_char_cursor#91 ) main::i#3 = phi( main::@1/main::i#2 ) print_uchar::b#2 = main::i#3 - call print_uchar + call print_uchar to:main::@15 main::@15: scope:[main] from main::@2 rem16u#51 = phi( main::@2/rem16u#52 ) @@ -402,7 +402,7 @@ main::@15: scope:[main] from main::@2 print_char_cursor#62 = phi( main::@2/print_char_cursor#9 ) print_char_cursor#22 = print_char_cursor#62 print_str::str#4 = main::str3 - call print_str + call print_str to:main::@16 main::@16: scope:[main] from main::@15 rem16u#49 = phi( main::@15/rem16u#51 ) @@ -410,9 +410,9 @@ main::@16: scope:[main] from main::@15 main::i#4 = phi( main::@15/main::i#8 ) print_char_cursor#63 = phi( main::@15/print_char_cursor#1 ) print_char_cursor#23 = print_char_cursor#63 - main::$27 = main::i#4 * SIZEOF_WORD + main::$27 = main::i#4 * SIZEOF_UNSIGNED_INT print_uint::w#3 = main::lintab1[main::$27] - call print_uint + call print_uint to:main::@17 main::@17: scope:[main] from main::@16 rem16u#47 = phi( main::@16/rem16u#49 ) @@ -421,7 +421,7 @@ main::@17: scope:[main] from main::@16 print_char_cursor#64 = phi( main::@16/print_char_cursor#6 ) print_char_cursor#24 = print_char_cursor#64 print_str::str#5 = main::str4 - call print_str + call print_str to:main::@18 main::@18: scope:[main] from main::@17 rem16u#45 = phi( main::@17/rem16u#47 ) @@ -429,9 +429,9 @@ main::@18: scope:[main] from main::@17 main::i#5 = phi( main::@17/main::i#9 ) print_char_cursor#65 = phi( main::@17/print_char_cursor#1 ) print_char_cursor#25 = print_char_cursor#65 - main::$28 = main::i#5 * SIZEOF_WORD + main::$28 = main::i#5 * SIZEOF_UNSIGNED_INT print_uint::w#4 = main::lintab2[main::$28] - call print_uint + call print_uint to:main::@19 main::@19: scope:[main] from main::@18 rem16u#43 = phi( main::@18/rem16u#45 ) @@ -440,7 +440,7 @@ main::@19: scope:[main] from main::@18 print_char_cursor#66 = phi( main::@18/print_char_cursor#6 ) print_char_cursor#26 = print_char_cursor#66 print_str::str#6 = main::str5 - call print_str + call print_str to:main::@20 main::@20: scope:[main] from main::@19 rem16u#41 = phi( main::@19/rem16u#43 ) @@ -448,9 +448,9 @@ main::@20: scope:[main] from main::@19 main::i#6 = phi( main::@19/main::i#10 ) print_char_cursor#67 = phi( main::@19/print_char_cursor#1 ) print_char_cursor#27 = print_char_cursor#67 - main::$29 = main::i#6 * SIZEOF_WORD + main::$29 = main::i#6 * SIZEOF_UNSIGNED_INT print_uint::w#5 = main::lintab3[main::$29] - call print_uint + call print_uint to:main::@21 main::@21: scope:[main] from main::@20 rem16u#39 = phi( main::@20/rem16u#41 ) @@ -458,7 +458,7 @@ main::@21: scope:[main] from main::@20 print_line_cursor#26 = phi( main::@20/print_line_cursor#31 ) print_char_cursor#68 = phi( main::@20/print_char_cursor#6 ) print_char_cursor#28 = print_char_cursor#68 - call print_ln + call print_ln to:main::@22 main::@22: scope:[main] from main::@21 rem16u#37 = phi( main::@21/rem16u#39 ) @@ -474,7 +474,7 @@ main::@3: scope:[main] from main::@1 print_line_cursor#48 = phi( main::@1/print_line_cursor#50 ) print_char_cursor#87 = phi( main::@1/print_char_cursor#91 ) print_str::str#7 = main::str6 - call print_str + call print_str to:main::@23 main::@23: scope:[main] from main::@3 rem16u#33 = phi( main::@3/rem16u#34 ) @@ -482,7 +482,7 @@ main::@23: scope:[main] from main::@3 print_char_cursor#70 = phi( main::@3/print_char_cursor#1 ) print_char_cursor#30 = print_char_cursor#70 print_uint::w#6 = $7461 - call print_uint + call print_uint to:main::@24 main::@24: scope:[main] from main::@23 rem16u#32 = phi( main::@23/rem16u#33 ) @@ -490,7 +490,7 @@ main::@24: scope:[main] from main::@23 print_char_cursor#71 = phi( main::@23/print_char_cursor#6 ) print_char_cursor#31 = print_char_cursor#71 print_str::str#8 = main::str7 - call print_str + call print_str to:main::@25 main::@25: scope:[main] from main::@24 rem16u#31 = phi( main::@24/rem16u#32 ) @@ -498,7 +498,7 @@ main::@25: scope:[main] from main::@24 print_char_cursor#72 = phi( main::@24/print_char_cursor#1 ) print_char_cursor#32 = print_char_cursor#72 print_uint::w#7 = $f781 - call print_uint + call print_uint to:main::@26 main::@26: scope:[main] from main::@25 rem16u#30 = phi( main::@25/rem16u#31 ) @@ -506,7 +506,7 @@ main::@26: scope:[main] from main::@25 print_char_cursor#73 = phi( main::@25/print_char_cursor#6 ) print_char_cursor#33 = print_char_cursor#73 print_str::str#9 = main::str8 - call print_str + call print_str to:main::@27 main::@27: scope:[main] from main::@26 rem16u#29 = phi( main::@26/rem16u#30 ) @@ -514,14 +514,14 @@ main::@27: scope:[main] from main::@26 print_char_cursor#74 = phi( main::@26/print_char_cursor#1 ) print_char_cursor#34 = print_char_cursor#74 print_uint::w#8 = $6488 - call print_uint + call print_uint to:main::@28 main::@28: scope:[main] from main::@27 rem16u#27 = phi( main::@27/rem16u#29 ) print_line_cursor#27 = phi( main::@27/print_line_cursor#32 ) print_char_cursor#75 = phi( main::@27/print_char_cursor#6 ) print_char_cursor#35 = print_char_cursor#75 - call print_ln + call print_ln to:main::@29 main::@29: scope:[main] from main::@28 rem16u#23 = phi( main::@28/rem16u#27 ) @@ -540,7 +540,7 @@ main::@return: scope:[main] from main::@29 return to:@return -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) lin16u_gen: scope:[lin16u_gen] from main main::@4 main::@5 lin16u_gen::lintab#8 = phi( main/lin16u_gen::lintab#0, main::@4/lin16u_gen::lintab#1, main::@5/lin16u_gen::lintab#2 ) rem16u#24 = phi( main/rem16u#22, main::@4/rem16u#2, main::@5/rem16u#3 ) @@ -552,7 +552,7 @@ lin16u_gen: scope:[lin16u_gen] from main main::@4 main::@5 divr16u::dividend#1 = lin16u_gen::ampl#0 divr16u::divisor#0 = lin16u_gen::$1 divr16u::rem#3 = 0 - call divr16u + call divr16u divr16u::return#2 = divr16u::return#1 to:lin16u_gen::@3 lin16u_gen::@3: scope:[lin16u_gen] from lin16u_gen @@ -567,7 +567,7 @@ lin16u_gen::@3: scope:[lin16u_gen] from lin16u_gen divr16u::dividend#2 = 0 divr16u::divisor#1 = lin16u_gen::$3 divr16u::rem#4 = rem16u#6 - call divr16u + call divr16u divr16u::return#3 = divr16u::return#1 to:lin16u_gen::@4 lin16u_gen::@4: scope:[lin16u_gen] from lin16u_gen::@3 @@ -604,7 +604,7 @@ lin16u_gen::@2: scope:[lin16u_gen] from lin16u_gen::@1 *lin16u_gen::lintab#4 = lin16u_gen::$8 lin16u_gen::$9 = lin16u_gen::val#2 + lin16u_gen::step#1 lin16u_gen::val#1 = lin16u_gen::$9 - lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD + lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT lin16u_gen::i#1 = ++ lin16u_gen::i#3 to:lin16u_gen::@1 lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1 @@ -618,7 +618,7 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start rem16u#9 = 0 - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#9 = print_screen#0 print_char_cursor#38 = print_line_cursor#9 to:__start::@1 @@ -627,7 +627,7 @@ __start::@1: scope:[__start] from __start::__init1 print_char_cursor#88 = phi( __start::__init1/print_char_cursor#38 ) print_line_cursor#28 = phi( __start::__init1/print_line_cursor#9 ) rem16u#26 = phi( __start::__init1/rem16u#9 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#8 ) @@ -651,472 +651,472 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -word~ divr16u::$0 -byte~ divr16u::$1 -word~ divr16u::$10 -bool~ divr16u::$11 -number~ divr16u::$2 -bool~ divr16u::$3 -bool~ divr16u::$4 -number~ divr16u::$5 -word~ divr16u::$6 -word~ divr16u::$7 -bool~ divr16u::$8 -bool~ divr16u::$9 -word divr16u::dividend -word divr16u::dividend#0 -word divr16u::dividend#1 -word divr16u::dividend#2 -word divr16u::dividend#3 -word divr16u::dividend#4 -word divr16u::dividend#5 -word divr16u::dividend#6 -word divr16u::dividend#7 -word divr16u::dividend#8 -word divr16u::divisor -word divr16u::divisor#0 -word divr16u::divisor#1 -word divr16u::divisor#2 -word divr16u::divisor#3 -word divr16u::divisor#4 -word divr16u::divisor#5 -word divr16u::divisor#6 -word divr16u::divisor#7 -byte divr16u::i -byte divr16u::i#0 -byte divr16u::i#1 -byte divr16u::i#2 -byte divr16u::i#3 -byte divr16u::i#4 -byte divr16u::i#5 -byte divr16u::i#6 -word divr16u::quotient -word divr16u::quotient#0 -word divr16u::quotient#1 -word divr16u::quotient#2 -word divr16u::quotient#3 -word divr16u::quotient#4 -word divr16u::quotient#5 -word divr16u::quotient#6 -word divr16u::quotient#7 -word divr16u::quotient#8 -word divr16u::rem -word divr16u::rem#0 -word divr16u::rem#1 -word divr16u::rem#10 -word divr16u::rem#11 -word divr16u::rem#2 -word divr16u::rem#3 -word divr16u::rem#4 -word divr16u::rem#5 -word divr16u::rem#6 -word divr16u::rem#7 -word divr16u::rem#8 -word divr16u::rem#9 -word divr16u::return -word divr16u::return#0 -word divr16u::return#1 -word divr16u::return#2 -word divr16u::return#3 -word divr16u::return#4 -word divr16u::return#5 -word divr16u::return#6 -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) -number~ lin16u_gen::$1 -number~ lin16u_gen::$3 -bool~ lin16u_gen::$7 -word~ lin16u_gen::$8 -dword~ lin16u_gen::$9 -word lin16u_gen::ampl -word lin16u_gen::ampl#0 -word lin16u_gen::i -word lin16u_gen::i#0 -word lin16u_gen::i#1 -word lin16u_gen::i#2 -word lin16u_gen::i#3 -word lin16u_gen::length -word lin16u_gen::length#0 -word lin16u_gen::length#1 -word lin16u_gen::length#2 -word lin16u_gen::length#3 -word lin16u_gen::length#4 -word lin16u_gen::length#5 -word lin16u_gen::length#6 -word lin16u_gen::length#7 -word* lin16u_gen::lintab -word* lin16u_gen::lintab#0 -word* lin16u_gen::lintab#1 -word* lin16u_gen::lintab#2 -word* lin16u_gen::lintab#3 -word* lin16u_gen::lintab#4 -word* lin16u_gen::lintab#5 -word* lin16u_gen::lintab#6 -word* lin16u_gen::lintab#7 -word* lin16u_gen::lintab#8 -word lin16u_gen::max -word lin16u_gen::max#0 -word lin16u_gen::max#1 -word lin16u_gen::max#2 -word lin16u_gen::max#3 -word lin16u_gen::min -word lin16u_gen::min#0 -word lin16u_gen::min#1 -word lin16u_gen::min#2 -word lin16u_gen::min#3 -word lin16u_gen::min#4 -word lin16u_gen::min#5 -dword lin16u_gen::step -dword lin16u_gen::step#0 -dword lin16u_gen::step#1 -dword lin16u_gen::step#2 -word lin16u_gen::stepf -word lin16u_gen::stepf#0 -word lin16u_gen::stepi -word lin16u_gen::stepi#0 -word lin16u_gen::stepi#1 -dword lin16u_gen::val -dword lin16u_gen::val#0 -dword lin16u_gen::val#1 -dword lin16u_gen::val#2 -dword lin16u_gen::val#3 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +unsigned int divr16u::$0 +char divr16u::$1 +unsigned int divr16u::$10 +bool divr16u::$11 +number divr16u::$2 +bool divr16u::$3 +bool divr16u::$4 +number divr16u::$5 +unsigned int divr16u::$6 +unsigned int divr16u::$7 +bool divr16u::$8 +bool divr16u::$9 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 +unsigned int divr16u::dividend#1 +unsigned int divr16u::dividend#2 +unsigned int divr16u::dividend#3 +unsigned int divr16u::dividend#4 +unsigned int divr16u::dividend#5 +unsigned int divr16u::dividend#6 +unsigned int divr16u::dividend#7 +unsigned int divr16u::dividend#8 +unsigned int divr16u::divisor +unsigned int divr16u::divisor#0 +unsigned int divr16u::divisor#1 +unsigned int divr16u::divisor#2 +unsigned int divr16u::divisor#3 +unsigned int divr16u::divisor#4 +unsigned int divr16u::divisor#5 +unsigned int divr16u::divisor#6 +unsigned int divr16u::divisor#7 +char divr16u::i +char divr16u::i#0 +char divr16u::i#1 +char divr16u::i#2 +char divr16u::i#3 +char divr16u::i#4 +char divr16u::i#5 +char divr16u::i#6 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#0 +unsigned int divr16u::quotient#1 +unsigned int divr16u::quotient#2 +unsigned int divr16u::quotient#3 +unsigned int divr16u::quotient#4 +unsigned int divr16u::quotient#5 +unsigned int divr16u::quotient#6 +unsigned int divr16u::quotient#7 +unsigned int divr16u::quotient#8 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 +unsigned int divr16u::rem#1 +unsigned int divr16u::rem#10 +unsigned int divr16u::rem#11 +unsigned int divr16u::rem#2 +unsigned int divr16u::rem#3 +unsigned int divr16u::rem#4 +unsigned int divr16u::rem#5 +unsigned int divr16u::rem#6 +unsigned int divr16u::rem#7 +unsigned int divr16u::rem#8 +unsigned int divr16u::rem#9 +unsigned int divr16u::return +unsigned int divr16u::return#0 +unsigned int divr16u::return#1 +unsigned int divr16u::return#2 +unsigned int divr16u::return#3 +unsigned int divr16u::return#4 +unsigned int divr16u::return#5 +unsigned int divr16u::return#6 +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) +number lin16u_gen::$1 +number lin16u_gen::$3 +bool lin16u_gen::$7 +unsigned int lin16u_gen::$8 +unsigned long lin16u_gen::$9 +unsigned int lin16u_gen::ampl +unsigned int lin16u_gen::ampl#0 +unsigned int lin16u_gen::i +unsigned int lin16u_gen::i#0 +unsigned int lin16u_gen::i#1 +unsigned int lin16u_gen::i#2 +unsigned int lin16u_gen::i#3 +unsigned int lin16u_gen::length +unsigned int lin16u_gen::length#0 +unsigned int lin16u_gen::length#1 +unsigned int lin16u_gen::length#2 +unsigned int lin16u_gen::length#3 +unsigned int lin16u_gen::length#4 +unsigned int lin16u_gen::length#5 +unsigned int lin16u_gen::length#6 +unsigned int lin16u_gen::length#7 +unsigned int *lin16u_gen::lintab +unsigned int *lin16u_gen::lintab#0 +unsigned int *lin16u_gen::lintab#1 +unsigned int *lin16u_gen::lintab#2 +unsigned int *lin16u_gen::lintab#3 +unsigned int *lin16u_gen::lintab#4 +unsigned int *lin16u_gen::lintab#5 +unsigned int *lin16u_gen::lintab#6 +unsigned int *lin16u_gen::lintab#7 +unsigned int *lin16u_gen::lintab#8 +unsigned int lin16u_gen::max +unsigned int lin16u_gen::max#0 +unsigned int lin16u_gen::max#1 +unsigned int lin16u_gen::max#2 +unsigned int lin16u_gen::max#3 +unsigned int lin16u_gen::min +unsigned int lin16u_gen::min#0 +unsigned int lin16u_gen::min#1 +unsigned int lin16u_gen::min#2 +unsigned int lin16u_gen::min#3 +unsigned int lin16u_gen::min#4 +unsigned int lin16u_gen::min#5 +unsigned long lin16u_gen::step +unsigned long lin16u_gen::step#0 +unsigned long lin16u_gen::step#1 +unsigned long lin16u_gen::step#2 +unsigned int lin16u_gen::stepf +unsigned int lin16u_gen::stepf#0 +unsigned int lin16u_gen::stepi +unsigned int lin16u_gen::stepi#0 +unsigned int lin16u_gen::stepi#1 +unsigned long lin16u_gen::val +unsigned long lin16u_gen::val#0 +unsigned long lin16u_gen::val#1 +unsigned long lin16u_gen::val#2 +unsigned long lin16u_gen::val#3 void main() -bool~ main::$18 -byte~ main::$27 -byte~ main::$28 -byte~ main::$29 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#11 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -constant word* main::lintab1[$14] = { fill( $14, 0) } -constant word* main::lintab2[$14] = { fill( $14, 0) } -constant word* main::lintab3[$14] = { fill( $14, 0) } -constant byte* main::str[4] = " " -constant byte* main::str1[2] = " " -constant byte* main::str2[2] = " " -constant byte* main::str3[2] = " " -constant byte* main::str4[2] = " " -constant byte* main::str5[2] = " " -constant byte* main::str6[4] = " " -constant byte* main::str7[2] = " " -constant byte* main::str8[2] = " " -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#80 -byte* print_char_cursor#81 -byte* print_char_cursor#82 -byte* print_char_cursor#83 -byte* print_char_cursor#84 -byte* print_char_cursor#85 -byte* print_char_cursor#86 -byte* print_char_cursor#87 -byte* print_char_cursor#88 -byte* print_char_cursor#89 -byte* print_char_cursor#9 -byte* print_char_cursor#90 -byte* print_char_cursor#91 -byte* print_char_cursor#92 -byte* print_char_cursor#93 +bool main::$18 +char main::$27 +char main::$28 +char main::$29 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#11 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__constant unsigned int main::lintab1[$14] = { fill( $14, 0) } +__constant unsigned int main::lintab2[$14] = { fill( $14, 0) } +__constant unsigned int main::lintab3[$14] = { fill( $14, 0) } +__constant char main::str[4] = " " +__constant char main::str1[2] = " " +__constant char main::str2[2] = " " +__constant char main::str3[2] = " " +__constant char main::str4[2] = " " +__constant char main::str5[2] = " " +__constant char main::str6[4] = " " +__constant char main::str7[2] = " " +__constant char main::str8[2] = " " +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#80 +char *print_char_cursor#81 +char *print_char_cursor#82 +char *print_char_cursor#83 +char *print_char_cursor#84 +char *print_char_cursor#85 +char *print_char_cursor#86 +char *print_char_cursor#87 +char *print_char_cursor#88 +char *print_char_cursor#89 +char *print_char_cursor#9 +char *print_char_cursor#90 +char *print_char_cursor#91 +char *print_char_cursor#92 +char *print_char_cursor#93 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#40 -byte* print_line_cursor#41 -byte* print_line_cursor#42 -byte* print_line_cursor#43 -byte* print_line_cursor#44 -byte* print_line_cursor#45 -byte* print_line_cursor#46 -byte* print_line_cursor#47 -byte* print_line_cursor#48 -byte* print_line_cursor#49 -byte* print_line_cursor#5 -byte* print_line_cursor#50 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#40 +char *print_line_cursor#41 +char *print_line_cursor#42 +char *print_line_cursor#43 +char *print_line_cursor#44 +char *print_line_cursor#45 +char *print_line_cursor#46 +char *print_line_cursor#47 +char *print_line_cursor#48 +char *print_line_cursor#49 +char *print_line_cursor#5 +char *print_line_cursor#50 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#10 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -byte* print_screen#8 -byte* print_screen#9 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#10 -byte* print_str::str#11 -byte* print_str::str#12 -byte* print_str::str#13 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 -byte* print_str::str#8 -byte* print_str::str#9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -byte print_uchar::b#4 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#10 -word print_uint::w#2 -word print_uint::w#3 -word print_uint::w#4 -word print_uint::w#5 -word print_uint::w#6 -word print_uint::w#7 -word print_uint::w#8 -word print_uint::w#9 -word rem16u -word rem16u#0 -word rem16u#1 -word rem16u#10 -word rem16u#11 -word rem16u#12 -word rem16u#13 -word rem16u#14 -word rem16u#15 -word rem16u#16 -word rem16u#17 -word rem16u#18 -word rem16u#19 -word rem16u#2 -word rem16u#20 -word rem16u#21 -word rem16u#22 -word rem16u#23 -word rem16u#24 -word rem16u#25 -word rem16u#26 -word rem16u#27 -word rem16u#28 -word rem16u#29 -word rem16u#3 -word rem16u#30 -word rem16u#31 -word rem16u#32 -word rem16u#33 -word rem16u#34 -word rem16u#35 -word rem16u#36 -word rem16u#37 -word rem16u#38 -word rem16u#39 -word rem16u#4 -word rem16u#40 -word rem16u#41 -word rem16u#42 -word rem16u#43 -word rem16u#44 -word rem16u#45 -word rem16u#46 -word rem16u#47 -word rem16u#48 -word rem16u#49 -word rem16u#5 -word rem16u#50 -word rem16u#51 -word rem16u#52 -word rem16u#6 -word rem16u#7 -word rem16u#8 -word rem16u#9 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#10 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +char *print_screen#8 +char *print_screen#9 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#10 +char *print_str::str#11 +char *print_str::str#12 +char *print_str::str#13 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 +char *print_str::str#8 +char *print_str::str#9 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +char print_uchar::b#4 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#10 +unsigned int print_uint::w#2 +unsigned int print_uint::w#3 +unsigned int print_uint::w#4 +unsigned int print_uint::w#5 +unsigned int print_uint::w#6 +unsigned int print_uint::w#7 +unsigned int print_uint::w#8 +unsigned int print_uint::w#9 +unsigned int rem16u +unsigned int rem16u#0 +unsigned int rem16u#1 +unsigned int rem16u#10 +unsigned int rem16u#11 +unsigned int rem16u#12 +unsigned int rem16u#13 +unsigned int rem16u#14 +unsigned int rem16u#15 +unsigned int rem16u#16 +unsigned int rem16u#17 +unsigned int rem16u#18 +unsigned int rem16u#19 +unsigned int rem16u#2 +unsigned int rem16u#20 +unsigned int rem16u#21 +unsigned int rem16u#22 +unsigned int rem16u#23 +unsigned int rem16u#24 +unsigned int rem16u#25 +unsigned int rem16u#26 +unsigned int rem16u#27 +unsigned int rem16u#28 +unsigned int rem16u#29 +unsigned int rem16u#3 +unsigned int rem16u#30 +unsigned int rem16u#31 +unsigned int rem16u#32 +unsigned int rem16u#33 +unsigned int rem16u#34 +unsigned int rem16u#35 +unsigned int rem16u#36 +unsigned int rem16u#37 +unsigned int rem16u#38 +unsigned int rem16u#39 +unsigned int rem16u#4 +unsigned int rem16u#40 +unsigned int rem16u#41 +unsigned int rem16u#42 +unsigned int rem16u#43 +unsigned int rem16u#44 +unsigned int rem16u#45 +unsigned int rem16u#46 +unsigned int rem16u#47 +unsigned int rem16u#48 +unsigned int rem16u#49 +unsigned int rem16u#5 +unsigned int rem16u#50 +unsigned int rem16u#51 +unsigned int rem16u#52 +unsigned int rem16u#6 +unsigned int rem16u#7 +unsigned int rem16u#8 +unsigned int rem16u#9 Adding number conversion cast (unumber) 1 in divr16u::$0 = divr16u::rem#5 << 1 Adding number conversion cast (unumber) $80 in divr16u::$2 = divr16u::$1 & $80 @@ -1158,7 +1158,7 @@ Adding number conversion cast (unumber) 0 in divr16u::dividend#2 = 0 Adding number conversion cast (unumber) 0 in lin16u_gen::val#0 = lin16u_gen::min#4 dw= 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast lin16u_gen::min#0 = (unumber)$22d Inlining cast lin16u_gen::max#0 = (unumber)$7461 Inlining cast lin16u_gen::length#0 = (unumber)$14 @@ -1210,47 +1210,47 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $22d -Finalized unsigned number type (word) $7461 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (word) $79cb -Finalized unsigned number type (word) $f781 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $6488 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (word) $22d -Finalized unsigned number type (word) $79cb -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (word) $7461 -Finalized unsigned number type (word) $f781 -Finalized unsigned number type (word) $6488 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $22d +Finalized unsigned number type (unsigned int) $7461 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (unsigned int) $79cb +Finalized unsigned number type (unsigned int) $f781 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $6488 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (unsigned int) $22d +Finalized unsigned number type (unsigned int) $79cb +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (unsigned int) $7461 +Finalized unsigned number type (unsigned int) $f781 +Finalized unsigned number type (unsigned int) $6488 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in divr16u::$2 = divr16u::$1 & $80 -Inferred type updated to word in divr16u::$5 = divr16u::rem#7 | 1 -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#4 & $f -Inferred type updated to word in lin16u_gen::$1 = lin16u_gen::length#3 - 1 -Inferred type updated to word in lin16u_gen::$3 = lin16u_gen::length#4 - 1 +Inferred type updated to char in divr16u::$2 = divr16u::$1 & $80 +Inferred type updated to unsigned int in divr16u::$5 = divr16u::rem#7 | 1 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#4 & $f +Inferred type updated to unsigned int in lin16u_gen::$1 = lin16u_gen::length#3 - 1 +Inferred type updated to unsigned int in lin16u_gen::$3 = lin16u_gen::length#4 - 1 Inversing boolean not [9] divr16u::$4 = divr16u::$2 == 0 from [8] divr16u::$3 = divr16u::$2 != 0 Inversing boolean not [17] divr16u::$9 = divr16u::rem#6 < divr16u::divisor#2 from [16] divr16u::$8 = divr16u::rem#6 >= divr16u::divisor#2 Inversing boolean not [111] memset::$1 = memset::num#1 <= 0 from [110] memset::$0 = memset::num#1 > 0 @@ -1468,13 +1468,13 @@ Constant divr16u::rem#3 = 0 Constant divr16u::dividend#2 = 0 Constant lin16u_gen::i#0 = 0 Constant rem16u#26 = 0 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [69] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -1499,15 +1499,15 @@ Adding number conversion cast (unumber) $10 in [13] if(divr16u::i#1!=$10) goto d Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $10 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [50] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [71] main::$27 = main::i#10 * SIZEOF_WORD -Rewriting multiplication to use shift [75] main::$28 = main::i#10 * SIZEOF_WORD -Rewriting multiplication to use shift [79] main::$29 = main::i#10 * SIZEOF_WORD +Rewriting multiplication to use shift [71] main::$27 = main::i#10 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [75] main::$28 = main::i#10 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [79] main::$29 = main::i#10 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings divr16u::quotient#0 Inlining constant with var siblings divr16u::i#0 @@ -1556,7 +1556,7 @@ Constant inlined lin16u_gen::max#0 = $7461 Constant inlined lin16u_gen::max#2 = $6488 Constant inlined lin16u_gen::max#1 = $f781 Constant inlined divr16u::quotient#0 = 0 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined main::i#0 = 0 Constant inlined lin16u_gen::min#0 = $22d Constant inlined divr16u::dividend#2 = 0 @@ -1569,7 +1569,7 @@ Constant inlined print_uint::w#6 = $7461 Constant inlined print_str::str#3 = main::str1 Constant inlined print_uint::w#7 = $f781 Constant inlined print_str::str#2 = main::str1 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = main::str Constant inlined print_str::str#8 = main::str1 Constant inlined main::str8 = main::str1 @@ -1606,16 +1606,16 @@ Alias main::$28 = main::$27 main::$29 Successful SSA optimization Pass2AliasElimination Identical Phi Values divr16u::divisor#6 $14-1 Successful SSA optimization Pass2IdenticalPhiElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $14 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $14 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting divr16u::@7(between divr16u::@3 and divr16u::@1) Added new block during phi lifting divr16u::@8(between divr16u::@1 and divr16u::@2) @@ -1762,47 +1762,47 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call lin16u_gen + [1] call lin16u_gen to:main::@4 main::@4: scope:[main] from main [2] phi() - [3] call lin16u_gen + [3] call lin16u_gen to:main::@5 main::@5: scope:[main] from main::@4 [4] phi() - [5] call lin16u_gen + [5] call lin16u_gen to:main::@6 main::@6: scope:[main] from main::@5 [6] phi() - [7] call print_cls + [7] call print_cls to:main::@7 main::@7: scope:[main] from main::@6 [8] phi() - [9] call print_str + [9] call print_str to:main::@8 main::@8: scope:[main] from main::@7 [10] phi() - [11] call print_uint + [11] call print_uint to:main::@9 main::@9: scope:[main] from main::@8 [12] phi() - [13] call print_str + [13] call print_str to:main::@10 main::@10: scope:[main] from main::@9 [14] phi() - [15] call print_uint + [15] call print_uint to:main::@11 main::@11: scope:[main] from main::@10 [16] phi() - [17] call print_str + [17] call print_str to:main::@12 main::@12: scope:[main] from main::@11 [18] phi() - [19] call print_uint + [19] call print_uint to:main::@13 main::@13: scope:[main] from main::@12 [20] phi() - [21] call print_ln + [21] call print_ln to:main::@1 main::@1: scope:[main] from main::@13 main::@21 [22] main::i#10 = phi( main::@13/0, main::@21/main::i#1 ) @@ -1810,31 +1810,31 @@ main::@1: scope:[main] from main::@13 main::@21 to:main::@3 main::@3: scope:[main] from main::@1 [24] print_char_cursor#100 = print_line_cursor#0 - [25] call print_str + [25] call print_str to:main::@22 main::@22: scope:[main] from main::@3 [26] phi() - [27] call print_uint + [27] call print_uint to:main::@23 main::@23: scope:[main] from main::@22 [28] phi() - [29] call print_str + [29] call print_str to:main::@24 main::@24: scope:[main] from main::@23 [30] phi() - [31] call print_uint + [31] call print_uint to:main::@25 main::@25: scope:[main] from main::@24 [32] phi() - [33] call print_str + [33] call print_str to:main::@26 main::@26: scope:[main] from main::@25 [34] phi() - [35] call print_uint + [35] call print_uint to:main::@27 main::@27: scope:[main] from main::@26 [36] phi() - [37] call print_ln + [37] call print_ln to:main::@return main::@return: scope:[main] from main::@27 [38] return @@ -1842,55 +1842,55 @@ main::@return: scope:[main] from main::@27 main::@2: scope:[main] from main::@1 [39] print_uchar::b#2 = main::i#10 [40] print_char_cursor#104 = print_line_cursor#0 - [41] call print_uchar + [41] call print_uchar to:main::@14 main::@14: scope:[main] from main::@2 [42] phi() - [43] call print_str + [43] call print_str to:main::@15 main::@15: scope:[main] from main::@14 [44] main::$28 = main::i#10 << 1 [45] print_uint::w#3 = main::lintab1[main::$28] - [46] call print_uint + [46] call print_uint to:main::@16 main::@16: scope:[main] from main::@15 [47] phi() - [48] call print_str + [48] call print_str to:main::@17 main::@17: scope:[main] from main::@16 [49] print_uint::w#4 = main::lintab2[main::$28] - [50] call print_uint + [50] call print_uint to:main::@18 main::@18: scope:[main] from main::@17 [51] phi() - [52] call print_str + [52] call print_str to:main::@19 main::@19: scope:[main] from main::@18 [53] print_uint::w#5 = main::lintab3[main::$28] - [54] call print_uint + [54] call print_uint to:main::@20 main::@20: scope:[main] from main::@19 [55] phi() - [56] call print_ln + [56] call print_ln to:main::@21 main::@21: scope:[main] from main::@20 [57] main::i#1 = ++ main::i#10 to:main::@1 -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) lin16u_gen: scope:[lin16u_gen] from main main::@4 main::@5 [58] lin16u_gen::lintab#6 = phi( main/main::lintab1, main::@4/main::lintab2, main::@5/main::lintab3 ) [58] lin16u_gen::min#3 = phi( main/$22d, main::@4/$79cb, main::@5/0 ) [58] lin16u_gen::max#3 = phi( main/$7461, main::@4/$f781, main::@5/$6488 ) [59] lin16u_gen::ampl#0 = lin16u_gen::max#3 - lin16u_gen::min#3 [60] divr16u::dividend#1 = lin16u_gen::ampl#0 - [61] call divr16u + [61] call divr16u [62] divr16u::return#2 = divr16u::return#0 to:lin16u_gen::@3 lin16u_gen::@3: scope:[lin16u_gen] from lin16u_gen [63] lin16u_gen::stepi#0 = divr16u::return#2 [64] divr16u::rem#4 = rem16u#0 - [65] call divr16u + [65] call divr16u [66] divr16u::return#3 = divr16u::return#0 to:lin16u_gen::@4 lin16u_gen::@4: scope:[lin16u_gen] from lin16u_gen::@3 @@ -1911,20 +1911,20 @@ lin16u_gen::@2: scope:[lin16u_gen] from lin16u_gen::@1 [73] lin16u_gen::$8 = word1 lin16u_gen::val#2 [74] *lin16u_gen::lintab#4 = lin16u_gen::$8 [75] lin16u_gen::val#1 = lin16u_gen::val#2 + lin16u_gen::step#0 - [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD + [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT [77] lin16u_gen::i#1 = ++ lin16u_gen::i#2 to:lin16u_gen::@1 void print_cls() print_cls: scope:[print_cls] from main::@6 [78] phi() - [79] call memset + [79] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [80] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main::@23 main::@25 main::@3 main::@7 main::@9 [81] print_char_cursor#89 = phi( main::@11/print_char_cursor#10, main::@14/print_char_cursor#10, main::@16/print_char_cursor#10, main::@18/print_char_cursor#10, main::@23/print_char_cursor#10, main::@25/print_char_cursor#10, main::@3/print_char_cursor#100, main::@7/print_screen#0, main::@9/print_char_cursor#10 ) [81] print_str::str#13 = phi( main::@11/main::str1, main::@14/main::str1, main::@16/main::str1, main::@18/main::str1, main::@23/main::str1, main::@25/main::str1, main::@3/main::str, main::@7/main::str, main::@9/main::str1 ) @@ -1939,21 +1939,21 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [85] print_char::ch#0 = *print_str::str#10 - [86] call print_char + [86] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [87] print_str::str#0 = ++ print_str::str#10 to:print_str::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@10 main::@12 main::@15 main::@17 main::@19 main::@22 main::@24 main::@26 main::@8 [88] print_uint::w#10 = phi( main::@10/$79cb, main::@12/0, main::@15/print_uint::w#3, main::@17/print_uint::w#4, main::@19/print_uint::w#5, main::@22/$7461, main::@24/$f781, main::@26/$6488, main::@8/$22d ) [89] print_uchar::b#0 = byte1 print_uint::w#10 - [90] call print_uchar + [90] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [91] print_uchar::b#1 = byte0 print_uint::w#10 - [92] call print_uchar + [92] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [93] return @@ -1972,24 +1972,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [98] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@2 print_uint print_uint::@1 [99] print_char_cursor#84 = phi( main::@2/print_char_cursor#104, print_uint/print_char_cursor#1, print_uint::@1/print_char_cursor#10 ) [99] print_uchar::b#3 = phi( main::@2/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [100] print_uchar::$0 = print_uchar::b#3 >> 4 [101] print_char::ch#1 = print_hextab[print_uchar::$0] - [102] call print_char + [102] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [103] print_uchar::$2 = print_uchar::b#3 & $f [104] print_char::ch#2 = print_hextab[print_uchar::$2] - [105] call print_char + [105] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [106] return to:@return -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3 [107] divr16u::dividend#5 = phi( lin16u_gen/divr16u::dividend#1, lin16u_gen::@3/0 ) [107] divr16u::rem#10 = phi( lin16u_gen/0, lin16u_gen::@3/divr16u::rem#4 ) @@ -2030,12 +2030,12 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 [124] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [125] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [126] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [126] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [127] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -2046,7 +2046,7 @@ memset::@2: scope:[memset] from memset::@1 [130] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [131] print_char_cursor#51 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#84, print_uchar::@1/print_char_cursor#10 ) [131] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -2059,117 +2059,117 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -byte~ divr16u::$1 2002.0 -byte~ divr16u::$2 2002.0 -word divr16u::dividend -word divr16u::dividend#0 250.25 -word divr16u::dividend#1 22.0 -word divr16u::dividend#3 443.42857142857144 -word divr16u::dividend#5 112.0 -word divr16u::divisor -byte divr16u::i -byte divr16u::i#1 1501.5 -byte divr16u::i#2 154.0 -word divr16u::quotient -word divr16u::quotient#1 1501.5 -word divr16u::quotient#2 1001.0 -word divr16u::quotient#3 250.25 -word divr16u::rem -word divr16u::rem#0 750.75 -word divr16u::rem#1 2002.0 -word divr16u::rem#10 112.0 -word divr16u::rem#11 1034.6666666666667 -word divr16u::rem#2 2002.0 -word divr16u::rem#4 22.0 -word divr16u::rem#5 2103.0 -word divr16u::rem#6 1001.0 -word divr16u::return -word divr16u::return#0 432.1428571428571 -word divr16u::return#2 22.0 -word divr16u::return#3 22.0 -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) -word~ lin16u_gen::$8 202.0 -word lin16u_gen::ampl -word lin16u_gen::ampl#0 22.0 -word lin16u_gen::i -word lin16u_gen::i#1 202.0 -word lin16u_gen::i#2 50.5 -word lin16u_gen::length -word* lin16u_gen::lintab -word* lin16u_gen::lintab#3 101.0 -word* lin16u_gen::lintab#4 62.8 -word* lin16u_gen::lintab#6 0.9166666666666666 -word lin16u_gen::max -word lin16u_gen::max#3 11.0 -word lin16u_gen::min -word lin16u_gen::min#3 2.0 -dword lin16u_gen::step -dword lin16u_gen::step#0 12.444444444444443 -word lin16u_gen::stepf -word lin16u_gen::stepf#0 22.0 -word lin16u_gen::stepi -word lin16u_gen::stepi#0 4.4 -dword lin16u_gen::val -dword lin16u_gen::val#0 22.0 -dword lin16u_gen::val#1 67.33333333333333 -dword lin16u_gen::val#2 78.5 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +char divr16u::$1 // 2002.0 +char divr16u::$2 // 2002.0 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 // 250.25 +unsigned int divr16u::dividend#1 // 22.0 +unsigned int divr16u::dividend#3 // 443.42857142857144 +unsigned int divr16u::dividend#5 // 112.0 +unsigned int divr16u::divisor +char divr16u::i +char divr16u::i#1 // 1501.5 +char divr16u::i#2 // 154.0 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#1 // 1501.5 +unsigned int divr16u::quotient#2 // 1001.0 +unsigned int divr16u::quotient#3 // 250.25 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 // 750.75 +unsigned int divr16u::rem#1 // 2002.0 +unsigned int divr16u::rem#10 // 112.0 +unsigned int divr16u::rem#11 // 1034.6666666666667 +unsigned int divr16u::rem#2 // 2002.0 +unsigned int divr16u::rem#4 // 22.0 +unsigned int divr16u::rem#5 // 2103.0 +unsigned int divr16u::rem#6 // 1001.0 +unsigned int divr16u::return +unsigned int divr16u::return#0 // 432.1428571428571 +unsigned int divr16u::return#2 // 22.0 +unsigned int divr16u::return#3 // 22.0 +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) +unsigned int lin16u_gen::$8 // 202.0 +unsigned int lin16u_gen::ampl +unsigned int lin16u_gen::ampl#0 // 22.0 +unsigned int lin16u_gen::i +unsigned int lin16u_gen::i#1 // 202.0 +unsigned int lin16u_gen::i#2 // 50.5 +unsigned int lin16u_gen::length +unsigned int *lin16u_gen::lintab +unsigned int *lin16u_gen::lintab#3 // 101.0 +unsigned int *lin16u_gen::lintab#4 // 62.8 +unsigned int *lin16u_gen::lintab#6 // 0.9166666666666666 +unsigned int lin16u_gen::max +unsigned int lin16u_gen::max#3 // 11.0 +unsigned int lin16u_gen::min +unsigned int lin16u_gen::min#3 // 2.0 +unsigned long lin16u_gen::step +unsigned long lin16u_gen::step#0 // 12.444444444444443 +unsigned int lin16u_gen::stepf +unsigned int lin16u_gen::stepf#0 // 22.0 +unsigned int lin16u_gen::stepi +unsigned int lin16u_gen::stepi#0 // 4.4 +unsigned long lin16u_gen::val +unsigned long lin16u_gen::val#0 // 22.0 +unsigned long lin16u_gen::val#1 // 67.33333333333333 +unsigned long lin16u_gen::val#2 // 78.5 void main() -byte~ main::$28 4.888888888888889 -byte main::i -byte main::i#1 22.0 -byte main::i#10 2.75 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#1 2002.0 -byte print_char::ch#2 2002.0 -byte print_char::ch#3 112004.0 -byte* print_char_cursor -byte* print_char_cursor#1 808.1600000000001 -byte* print_char_cursor#10 3274.216216216216 -byte* print_char_cursor#100 4.0 -byte* print_char_cursor#104 22.0 -byte* print_char_cursor#51 106002.5 -byte* print_char_cursor#84 404.6666666666667 -byte* print_char_cursor#89 144.0 +char main::$28 // 4.888888888888889 +char main::i +char main::i#1 // 22.0 +char main::i#10 // 2.75 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#1 // 2002.0 +char print_char::ch#2 // 2002.0 +char print_char::ch#3 // 112004.0 +char *print_char_cursor +char *print_char_cursor#1 // 808.1600000000001 +char *print_char_cursor#10 // 3274.216216216216 +char *print_char_cursor#100 // 4.0 +char *print_char_cursor#104 // 22.0 +char *print_char_cursor#51 // 106002.5 +char *print_char_cursor#84 // 404.6666666666667 +char *print_char_cursor#89 // 144.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 790.2368421052631 -byte* print_line_cursor#12 20103.0 -byte* print_line_cursor#23 114.0 +char *print_line_cursor +char *print_line_cursor#0 // 790.2368421052631 +char *print_line_cursor#12 // 20103.0 +char *print_line_cursor#23 // 114.0 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 20002.0 -byte* print_str::str#10 10026.25 -byte* print_str::str#13 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 2002.0 -byte~ print_uchar::$2 2002.0 -byte print_uchar::b -byte print_uchar::b#0 202.0 -byte print_uchar::b#1 202.0 -byte print_uchar::b#2 11.0 -byte print_uchar::b#3 553.75 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#10 78.33333333333333 -word print_uint::w#3 22.0 -word print_uint::w#4 22.0 -word print_uint::w#5 22.0 -word rem16u -word rem16u#0 22.4 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 20002.0 +char *print_str::str#10 // 10026.25 +char *print_str::str#13 // 101.0 +void print_uchar(char b) +char print_uchar::$0 // 2002.0 +char print_uchar::$2 // 2002.0 +char print_uchar::b +char print_uchar::b#0 // 202.0 +char print_uchar::b#1 // 202.0 +char print_uchar::b#2 // 11.0 +char print_uchar::b#3 // 553.75 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#10 // 78.33333333333333 +unsigned int print_uint::w#3 // 22.0 +unsigned int print_uint::w#4 // 22.0 +unsigned int print_uint::w#5 // 22.0 +unsigned int rem16u +unsigned int rem16u#0 // 22.4 Initial phi equivalence classes [ main::i#10 main::i#1 ] @@ -2286,7 +2286,7 @@ Statement [71] if(lin16u_gen::i#2<$14) goto lin16u_gen::@2 [ lin16u_gen::step#0 Statement [73] lin16u_gen::$8 = word1 lin16u_gen::val#2 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] { } ) always clobbers reg byte a Statement [74] *lin16u_gen::lintab#4 = lin16u_gen::$8 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] { } ) always clobbers reg byte a reg byte y Statement [75] lin16u_gen::val#1 = lin16u_gen::val#2 + lin16u_gen::step#0 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] { } ) always clobbers reg byte a -Statement [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } ) always clobbers reg byte a +Statement [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } ) always clobbers reg byte a Statement [83] if(0!=*print_str::str#10) goto print_str::@2 [ print_str::str#10 print_char_cursor#1 ] ( print_str:9 [ print_str::str#10 print_char_cursor#1 ] { } print_str:13 [ print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:17 [ print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:25 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#100 = print_char_cursor#89 } } print_str:29 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:33 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:43 [ main::i#10 print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:48 [ main::i#10 print_line_cursor#0 main::$28 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:52 [ main::i#10 print_line_cursor#0 main::$28 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#10 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:34 [ main::$28 ] @@ -2323,7 +2323,7 @@ Statement [71] if(lin16u_gen::i#2<$14) goto lin16u_gen::@2 [ lin16u_gen::step#0 Statement [73] lin16u_gen::$8 = word1 lin16u_gen::val#2 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 lin16u_gen::$8 ] { } ) always clobbers reg byte a Statement [74] *lin16u_gen::lintab#4 = lin16u_gen::$8 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#2 lin16u_gen::lintab#4 ] { } ) always clobbers reg byte a reg byte y Statement [75] lin16u_gen::val#1 = lin16u_gen::val#2 + lin16u_gen::step#0 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::lintab#4 lin16u_gen::val#1 ] { } ) always clobbers reg byte a -Statement [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } ) always clobbers reg byte a +Statement [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] ( lin16u_gen:1 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:3 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#3 ] { } ) always clobbers reg byte a Statement [83] if(0!=*print_str::str#10) goto print_str::@2 [ print_str::str#10 print_char_cursor#1 ] ( print_str:9 [ print_str::str#10 print_char_cursor#1 ] { } print_str:13 [ print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:17 [ print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:25 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#100 = print_char_cursor#89 } } print_str:29 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:33 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:43 [ main::i#10 print_line_cursor#0 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:48 [ main::i#10 print_line_cursor#0 main::$28 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } print_str:52 [ main::i#10 print_line_cursor#0 main::$28 print_str::str#10 print_char_cursor#1 ] { { print_char_cursor#10 = print_char_cursor#89 } } ) always clobbers reg byte a reg byte y Statement [85] print_char::ch#0 = *print_str::str#10 [ print_str::str#10 print_char_cursor#1 print_char::ch#0 ] ( print_str:9 [ print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:13 [ print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:17 [ print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:25 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#100 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:29 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:33 [ print_line_cursor#0 print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:43 [ main::i#10 print_line_cursor#0 print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:48 [ main::i#10 print_line_cursor#0 main::$28 print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } print_str:52 [ main::i#10 print_line_cursor#0 main::$28 print_str::str#10 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#10 = print_char_cursor#89 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#51 } } ) always clobbers reg byte a reg byte y Statement [96] print_line_cursor#0 = print_line_cursor#12 + $28 [ print_line_cursor#0 print_char_cursor#10 ] ( print_ln:21 [ print_line_cursor#0 print_char_cursor#10 ] { } print_ln:37 [ print_line_cursor#0 print_char_cursor#10 ] { { print_line_cursor#0 = print_line_cursor#23 } } print_ln:56 [ main::i#10 print_line_cursor#0 print_char_cursor#10 ] { { print_line_cursor#0 = print_line_cursor#23 } } ) always clobbers reg byte a @@ -2440,7 +2440,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label print_screen = $400 // Remainder after unsigned 16-bit division .label rem16u = $18 @@ -2451,7 +2451,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label __28 = $11 .label i = 2 - // [1] call lin16u_gen + // [1] call lin16u_gen // [58] phi from main to lin16u_gen [phi:main->lin16u_gen] lin16u_gen_from_main: // [58] phi lin16u_gen::lintab#6 = main::lintab1 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 @@ -2475,7 +2475,7 @@ main: { jmp __b4 // main::@4 __b4: - // [3] call lin16u_gen + // [3] call lin16u_gen // [58] phi from main::@4 to lin16u_gen [phi:main::@4->lin16u_gen] lin16u_gen_from___b4: // [58] phi lin16u_gen::lintab#6 = main::lintab2 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 @@ -2499,7 +2499,7 @@ main: { jmp __b5 // main::@5 __b5: - // [5] call lin16u_gen + // [5] call lin16u_gen // [58] phi from main::@5 to lin16u_gen [phi:main::@5->lin16u_gen] lin16u_gen_from___b5: // [58] phi lin16u_gen::lintab#6 = main::lintab3 [phi:main::@5->lin16u_gen#0] -- pwuz1=pwuc1 @@ -2523,7 +2523,7 @@ main: { jmp __b6 // main::@6 __b6: - // [7] call print_cls + // [7] call print_cls // [78] phi from main::@6 to print_cls [phi:main::@6->print_cls] print_cls_from___b6: jsr print_cls @@ -2532,7 +2532,7 @@ main: { jmp __b7 // main::@7 __b7: - // [9] call print_str + // [9] call print_str // [81] phi from main::@7 to print_str [phi:main::@7->print_str] print_str_from___b7: // [81] phi print_char_cursor#89 = print_screen#0 [phi:main::@7->print_str#0] -- pbuz1=pbuc1 @@ -2551,7 +2551,7 @@ main: { jmp __b8 // main::@8 __b8: - // [11] call print_uint + // [11] call print_uint // [88] phi from main::@8 to print_uint [phi:main::@8->print_uint] print_uint_from___b8: // [88] phi print_uint::w#10 = $22d [phi:main::@8->print_uint#0] -- vwuz1=vwuc1 @@ -2565,7 +2565,7 @@ main: { jmp __b9 // main::@9 __b9: - // [13] call print_str + // [13] call print_str // [81] phi from main::@9 to print_str [phi:main::@9->print_str] print_str_from___b9: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@9->print_str#0] -- register_copy @@ -2580,7 +2580,7 @@ main: { jmp __b10 // main::@10 __b10: - // [15] call print_uint + // [15] call print_uint // [88] phi from main::@10 to print_uint [phi:main::@10->print_uint] print_uint_from___b10: // [88] phi print_uint::w#10 = $79cb [phi:main::@10->print_uint#0] -- vwuz1=vwuc1 @@ -2594,7 +2594,7 @@ main: { jmp __b11 // main::@11 __b11: - // [17] call print_str + // [17] call print_str // [81] phi from main::@11 to print_str [phi:main::@11->print_str] print_str_from___b11: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@11->print_str#0] -- register_copy @@ -2609,7 +2609,7 @@ main: { jmp __b12 // main::@12 __b12: - // [19] call print_uint + // [19] call print_uint // [88] phi from main::@12 to print_uint [phi:main::@12->print_uint] print_uint_from___b12: // [88] phi print_uint::w#10 = 0 [phi:main::@12->print_uint#0] -- vwuz1=vbuc1 @@ -2623,7 +2623,7 @@ main: { jmp __b13 // main::@13 __b13: - // [21] call print_ln + // [21] call print_ln // [94] phi from main::@13 to print_ln [phi:main::@13->print_ln] print_ln_from___b13: // [94] phi print_line_cursor#23 = print_screen#0 [phi:main::@13->print_ln#0] -- pbuz1=pbuc1 @@ -2652,7 +2652,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [25] call print_str + // [25] call print_str // [81] phi from main::@3 to print_str [phi:main::@3->print_str] print_str_from___b3: // [81] phi print_char_cursor#89 = print_char_cursor#100 [phi:main::@3->print_str#0] -- register_copy @@ -2667,7 +2667,7 @@ main: { jmp __b22 // main::@22 __b22: - // [27] call print_uint + // [27] call print_uint // [88] phi from main::@22 to print_uint [phi:main::@22->print_uint] print_uint_from___b22: // [88] phi print_uint::w#10 = $7461 [phi:main::@22->print_uint#0] -- vwuz1=vwuc1 @@ -2681,7 +2681,7 @@ main: { jmp __b23 // main::@23 __b23: - // [29] call print_str + // [29] call print_str // [81] phi from main::@23 to print_str [phi:main::@23->print_str] print_str_from___b23: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@23->print_str#0] -- register_copy @@ -2696,7 +2696,7 @@ main: { jmp __b24 // main::@24 __b24: - // [31] call print_uint + // [31] call print_uint // [88] phi from main::@24 to print_uint [phi:main::@24->print_uint] print_uint_from___b24: // [88] phi print_uint::w#10 = $f781 [phi:main::@24->print_uint#0] -- vwuz1=vwuc1 @@ -2710,7 +2710,7 @@ main: { jmp __b25 // main::@25 __b25: - // [33] call print_str + // [33] call print_str // [81] phi from main::@25 to print_str [phi:main::@25->print_str] print_str_from___b25: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@25->print_str#0] -- register_copy @@ -2725,7 +2725,7 @@ main: { jmp __b26 // main::@26 __b26: - // [35] call print_uint + // [35] call print_uint // [88] phi from main::@26 to print_uint [phi:main::@26->print_uint] print_uint_from___b26: // [88] phi print_uint::w#10 = $6488 [phi:main::@26->print_uint#0] -- vwuz1=vwuc1 @@ -2739,7 +2739,7 @@ main: { jmp __b27 // main::@27 __b27: - // [37] call print_ln + // [37] call print_ln // [94] phi from main::@27 to print_ln [phi:main::@27->print_ln] print_ln_from___b27: // [94] phi print_line_cursor#23 = print_line_cursor#0 [phi:main::@27->print_ln#0] -- register_copy @@ -2758,7 +2758,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [41] call print_uchar + // [41] call print_uchar // [99] phi from main::@2 to print_uchar [phi:main::@2->print_uchar] print_uchar_from___b2: // [99] phi print_char_cursor#84 = print_char_cursor#104 [phi:main::@2->print_uchar#0] -- register_copy @@ -2769,7 +2769,7 @@ main: { jmp __b14 // main::@14 __b14: - // [43] call print_str + // [43] call print_str // [81] phi from main::@14 to print_str [phi:main::@14->print_str] print_str_from___b14: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@14->print_str#0] -- register_copy @@ -2792,7 +2792,7 @@ main: { sta.z print_uint.w lda lintab1+1,y sta.z print_uint.w+1 - // [46] call print_uint + // [46] call print_uint // [88] phi from main::@15 to print_uint [phi:main::@15->print_uint] print_uint_from___b15: // [88] phi print_uint::w#10 = print_uint::w#3 [phi:main::@15->print_uint#0] -- register_copy @@ -2802,7 +2802,7 @@ main: { jmp __b16 // main::@16 __b16: - // [48] call print_str + // [48] call print_str // [81] phi from main::@16 to print_str [phi:main::@16->print_str] print_str_from___b16: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@16->print_str#0] -- register_copy @@ -2821,7 +2821,7 @@ main: { sta.z print_uint.w lda lintab2+1,y sta.z print_uint.w+1 - // [50] call print_uint + // [50] call print_uint // [88] phi from main::@17 to print_uint [phi:main::@17->print_uint] print_uint_from___b17: // [88] phi print_uint::w#10 = print_uint::w#4 [phi:main::@17->print_uint#0] -- register_copy @@ -2831,7 +2831,7 @@ main: { jmp __b18 // main::@18 __b18: - // [52] call print_str + // [52] call print_str // [81] phi from main::@18 to print_str [phi:main::@18->print_str] print_str_from___b18: // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@18->print_str#0] -- register_copy @@ -2850,7 +2850,7 @@ main: { sta.z print_uint.w lda lintab3+1,y sta.z print_uint.w+1 - // [54] call print_uint + // [54] call print_uint // [88] phi from main::@19 to print_uint [phi:main::@19->print_uint] print_uint_from___b19: // [88] phi print_uint::w#10 = print_uint::w#5 [phi:main::@19->print_uint#0] -- register_copy @@ -2860,7 +2860,7 @@ main: { jmp __b20 // main::@20 __b20: - // [56] call print_ln + // [56] call print_ln // [94] phi from main::@20 to print_ln [phi:main::@20->print_ln] print_ln_from___b20: // [94] phi print_line_cursor#23 = print_line_cursor#0 [phi:main::@20->print_ln#0] -- register_copy @@ -2888,7 +2888,7 @@ main: { // Generate word linear table // lintab - the table to generate into // length - the number of points in a total sine wavelength (the size of the table) -// lin16u_gen(word zp(9) min, word zp(7) max, word* zp($d) lintab) +// void lin16u_gen(__zp(9) unsigned int min, __zp(7) unsigned int max, __zp($d) unsigned int *lintab, unsigned int length) lin16u_gen: { .label __8 = $18 .label ampl = 7 @@ -2909,7 +2909,7 @@ lin16u_gen: { sbc.z min+1 sta.z ampl+1 // [60] divr16u::dividend#1 = lin16u_gen::ampl#0 - // [61] call divr16u + // [61] call divr16u // [107] phi from lin16u_gen to divr16u [phi:lin16u_gen->divr16u] divr16u_from_lin16u_gen: // [107] phi divr16u::dividend#5 = divr16u::dividend#1 [phi:lin16u_gen->divr16u#0] -- register_copy @@ -2929,7 +2929,7 @@ lin16u_gen: { lda.z divr16u.return+1 sta.z stepi+1 // [64] divr16u::rem#4 = rem16u#0 - // [65] call divr16u + // [65] call divr16u // [107] phi from lin16u_gen::@3 to divr16u [phi:lin16u_gen::@3->divr16u] divr16u_from___b3: // [107] phi divr16u::dividend#5 = 0 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 @@ -3014,8 +3014,8 @@ lin16u_gen: { lda.z val+3 adc.z step+3 sta.z val+3 - // [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD + // [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT clc adc.z lintab sta.z lintab @@ -3037,7 +3037,7 @@ lin16u_gen: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [79] call memset + // [79] call memset // [125] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -3049,7 +3049,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(7) str) +// void print_str(__zp(7) char *str) print_str: { .label str = 7 // [82] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3075,7 +3075,7 @@ print_str: { // [85] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [86] call print_char + // [86] call print_char // [131] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [131] phi print_char_cursor#51 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -3093,12 +3093,12 @@ print_str: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(9) w) +// void print_uint(__zp(9) unsigned int w) print_uint: { .label w = 9 // [89] print_uchar::b#0 = byte1 print_uint::w#10 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [90] call print_uchar + // [90] call print_uchar // [99] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [99] phi print_char_cursor#84 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy @@ -3109,7 +3109,7 @@ print_uint: { __b1: // [91] print_uchar::b#1 = byte0 print_uint::w#10 -- vbuxx=_byte0_vwuz1 ldx.z w - // [92] call print_uchar + // [92] call print_uchar // [99] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [99] phi print_char_cursor#84 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -3156,7 +3156,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [100] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -3167,7 +3167,7 @@ print_uchar: { // [101] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [102] call print_char + // [102] call print_char // Table of hexadecimal digits // [131] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -3182,7 +3182,7 @@ print_uchar: { axs #0 // [104] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [105] call print_char + // [105] call print_char // [131] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [131] phi print_char_cursor#51 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -3199,7 +3199,7 @@ print_uchar: { // Returns the quotient dividend/divisor. // The final remainder will be set into the global variable rem16u // Implemented using simple binary division -// divr16u(word zp(7) dividend, word zp($18) rem) +// __zp($f) unsigned int divr16u(__zp(7) unsigned int dividend, unsigned int divisor, __zp($18) unsigned int rem) divr16u: { .label rem = $18 .label dividend = 7 @@ -3304,6 +3304,7 @@ divr16u: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3312,7 +3313,7 @@ memset: { .label dst = $d // [126] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [126] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [126] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3350,7 +3351,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [132] *print_char_cursor#51 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -3560,133 +3561,133 @@ Removing instruction lda #<0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -byte~ divr16u::$1 reg byte a 2002.0 -byte~ divr16u::$2 reg byte a 2002.0 -word divr16u::dividend -word divr16u::dividend#0 dividend zp[2]:7 250.25 -word divr16u::dividend#1 dividend zp[2]:7 22.0 -word divr16u::dividend#3 dividend zp[2]:7 443.42857142857144 -word divr16u::dividend#5 dividend zp[2]:7 112.0 -word divr16u::divisor -byte divr16u::i -byte divr16u::i#1 reg byte x 1501.5 -byte divr16u::i#2 reg byte x 154.0 -word divr16u::quotient -word divr16u::quotient#1 quotient zp[2]:15 1501.5 -word divr16u::quotient#2 quotient zp[2]:15 1001.0 -word divr16u::quotient#3 quotient zp[2]:15 250.25 -word divr16u::rem -word divr16u::rem#0 rem zp[2]:24 750.75 -word divr16u::rem#1 rem zp[2]:24 2002.0 -word divr16u::rem#10 rem zp[2]:24 112.0 -word divr16u::rem#11 rem zp[2]:24 1034.6666666666667 -word divr16u::rem#2 rem zp[2]:24 2002.0 -word divr16u::rem#4 rem zp[2]:24 22.0 -word divr16u::rem#5 rem zp[2]:24 2103.0 -word divr16u::rem#6 rem zp[2]:24 1001.0 -word divr16u::return -word divr16u::return#0 return zp[2]:15 432.1428571428571 -word divr16u::return#2 return zp[2]:15 22.0 -word divr16u::return#3 return zp[2]:15 22.0 -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) -word~ lin16u_gen::$8 zp[2]:24 202.0 -word lin16u_gen::ampl -word lin16u_gen::ampl#0 ampl zp[2]:7 22.0 -word lin16u_gen::i -word lin16u_gen::i#1 i zp[2]:11 202.0 -word lin16u_gen::i#2 i zp[2]:11 50.5 -word lin16u_gen::length -word* lin16u_gen::lintab -word* lin16u_gen::lintab#3 lintab zp[2]:13 101.0 -word* lin16u_gen::lintab#4 lintab zp[2]:13 62.8 -word* lin16u_gen::lintab#6 lintab zp[2]:13 0.9166666666666666 -word lin16u_gen::max -word lin16u_gen::max#3 max zp[2]:7 11.0 -word lin16u_gen::min -word lin16u_gen::min#3 min zp[2]:9 2.0 -dword lin16u_gen::step -dword lin16u_gen::step#0 step zp[4]:20 12.444444444444443 -word lin16u_gen::stepf -word lin16u_gen::stepf#0 stepf zp[2]:15 22.0 -word lin16u_gen::stepi -word lin16u_gen::stepi#0 stepi zp[2]:18 4.4 -dword lin16u_gen::val -dword lin16u_gen::val#0 val zp[4]:3 22.0 -dword lin16u_gen::val#1 val zp[4]:3 67.33333333333333 -dword lin16u_gen::val#2 val zp[4]:3 78.5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +char divr16u::$1 // reg byte a 2002.0 +char divr16u::$2 // reg byte a 2002.0 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 // dividend zp[2]:7 250.25 +unsigned int divr16u::dividend#1 // dividend zp[2]:7 22.0 +unsigned int divr16u::dividend#3 // dividend zp[2]:7 443.42857142857144 +unsigned int divr16u::dividend#5 // dividend zp[2]:7 112.0 +unsigned int divr16u::divisor +char divr16u::i +char divr16u::i#1 // reg byte x 1501.5 +char divr16u::i#2 // reg byte x 154.0 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#1 // quotient zp[2]:15 1501.5 +unsigned int divr16u::quotient#2 // quotient zp[2]:15 1001.0 +unsigned int divr16u::quotient#3 // quotient zp[2]:15 250.25 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 // rem zp[2]:24 750.75 +unsigned int divr16u::rem#1 // rem zp[2]:24 2002.0 +unsigned int divr16u::rem#10 // rem zp[2]:24 112.0 +unsigned int divr16u::rem#11 // rem zp[2]:24 1034.6666666666667 +unsigned int divr16u::rem#2 // rem zp[2]:24 2002.0 +unsigned int divr16u::rem#4 // rem zp[2]:24 22.0 +unsigned int divr16u::rem#5 // rem zp[2]:24 2103.0 +unsigned int divr16u::rem#6 // rem zp[2]:24 1001.0 +unsigned int divr16u::return +unsigned int divr16u::return#0 // return zp[2]:15 432.1428571428571 +unsigned int divr16u::return#2 // return zp[2]:15 22.0 +unsigned int divr16u::return#3 // return zp[2]:15 22.0 +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) +unsigned int lin16u_gen::$8 // zp[2]:24 202.0 +unsigned int lin16u_gen::ampl +unsigned int lin16u_gen::ampl#0 // ampl zp[2]:7 22.0 +unsigned int lin16u_gen::i +unsigned int lin16u_gen::i#1 // i zp[2]:11 202.0 +unsigned int lin16u_gen::i#2 // i zp[2]:11 50.5 +unsigned int lin16u_gen::length +unsigned int *lin16u_gen::lintab +unsigned int *lin16u_gen::lintab#3 // lintab zp[2]:13 101.0 +unsigned int *lin16u_gen::lintab#4 // lintab zp[2]:13 62.8 +unsigned int *lin16u_gen::lintab#6 // lintab zp[2]:13 0.9166666666666666 +unsigned int lin16u_gen::max +unsigned int lin16u_gen::max#3 // max zp[2]:7 11.0 +unsigned int lin16u_gen::min +unsigned int lin16u_gen::min#3 // min zp[2]:9 2.0 +unsigned long lin16u_gen::step +unsigned long lin16u_gen::step#0 // step zp[4]:20 12.444444444444443 +unsigned int lin16u_gen::stepf +unsigned int lin16u_gen::stepf#0 // stepf zp[2]:15 22.0 +unsigned int lin16u_gen::stepi +unsigned int lin16u_gen::stepi#0 // stepi zp[2]:18 4.4 +unsigned long lin16u_gen::val +unsigned long lin16u_gen::val#0 // val zp[4]:3 22.0 +unsigned long lin16u_gen::val#1 // val zp[4]:3 67.33333333333333 +unsigned long lin16u_gen::val#2 // val zp[4]:3 78.5 void main() -byte~ main::$28 zp[1]:17 4.888888888888889 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#10 i zp[1]:2 2.75 -constant word* main::lintab1[$14] = { fill( $14, 0) } -constant word* main::lintab2[$14] = { fill( $14, 0) } -constant word* main::lintab3[$14] = { fill( $14, 0) } -constant byte* main::str[4] = " " -constant byte* main::str1[2] = " " -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:13 2002.0 -byte* memset::dst#2 dst zp[2]:13 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#2 reg byte a 2002.0 -byte print_char::ch#3 reg byte a 112004.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:15 808.1600000000001 -byte* print_char_cursor#10 print_char_cursor zp[2]:15 3274.216216216216 -byte* print_char_cursor#100 print_char_cursor zp[2]:15 4.0 -byte* print_char_cursor#104 print_char_cursor zp[2]:15 22.0 -byte* print_char_cursor#51 print_char_cursor zp[2]:15 106002.5 -byte* print_char_cursor#84 print_char_cursor zp[2]:15 404.6666666666667 -byte* print_char_cursor#89 print_char_cursor zp[2]:15 144.0 +char main::$28 // zp[1]:17 4.888888888888889 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#10 // i zp[1]:2 2.75 +__constant unsigned int main::lintab1[$14] = { fill( $14, 0) } +__constant unsigned int main::lintab2[$14] = { fill( $14, 0) } +__constant unsigned int main::lintab3[$14] = { fill( $14, 0) } +__constant char main::str[4] = " " +__constant char main::str1[2] = " " +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:13 2002.0 +char *memset::dst#2 // dst zp[2]:13 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#2 // reg byte a 2002.0 +char print_char::ch#3 // reg byte a 112004.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:15 808.1600000000001 +char *print_char_cursor#10 // print_char_cursor zp[2]:15 3274.216216216216 +char *print_char_cursor#100 // print_char_cursor zp[2]:15 4.0 +char *print_char_cursor#104 // print_char_cursor zp[2]:15 22.0 +char *print_char_cursor#51 // print_char_cursor zp[2]:15 106002.5 +char *print_char_cursor#84 // print_char_cursor zp[2]:15 404.6666666666667 +char *print_char_cursor#89 // print_char_cursor zp[2]:15 144.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:11 790.2368421052631 -byte* print_line_cursor#12 print_line_cursor zp[2]:11 20103.0 -byte* print_line_cursor#23 print_line_cursor zp[2]:11 114.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:11 790.2368421052631 +char *print_line_cursor#12 // print_line_cursor zp[2]:11 20103.0 +char *print_line_cursor#23 // print_line_cursor zp[2]:11 114.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:7 20002.0 -byte* print_str::str#10 str zp[2]:7 10026.25 -byte* print_str::str#13 str zp[2]:7 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 11.0 -byte print_uchar::b#3 reg byte x 553.75 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#10 w zp[2]:9 78.33333333333333 -word print_uint::w#3 w zp[2]:9 22.0 -word print_uint::w#4 w zp[2]:9 22.0 -word print_uint::w#5 w zp[2]:9 22.0 -word rem16u -word rem16u#0 rem16u zp[2]:24 22.4 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:7 20002.0 +char *print_str::str#10 // str zp[2]:7 10026.25 +char *print_str::str#13 // str zp[2]:7 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 11.0 +char print_uchar::b#3 // reg byte x 553.75 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#10 // w zp[2]:9 78.33333333333333 +unsigned int print_uint::w#3 // w zp[2]:9 22.0 +unsigned int print_uint::w#4 // w zp[2]:9 22.0 +unsigned int print_uint::w#5 // w zp[2]:9 22.0 +unsigned int rem16u +unsigned int rem16u#0 // rem16u zp[2]:24 22.4 zp[1]:2 [ main::i#10 main::i#1 ] zp[4]:3 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] @@ -3729,7 +3730,7 @@ Score: 11659 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label print_screen = $400 // Remainder after unsigned 16-bit division .label rem16u = $18 @@ -3741,7 +3742,7 @@ main: { .label __28 = $11 .label i = 2 // lin16u_gen(557, 29793, lintab1, 20) - // [1] call lin16u_gen + // [1] call lin16u_gen // [58] phi from main to lin16u_gen [phi:main->lin16u_gen] // [58] phi lin16u_gen::lintab#6 = main::lintab1 [phi:main->lin16u_gen#0] -- pwuz1=pwuc1 lda #main::@4] // main::@4 // lin16u_gen(31179, 63361, lintab2, 20) - // [3] call lin16u_gen + // [3] call lin16u_gen // [58] phi from main::@4 to lin16u_gen [phi:main::@4->lin16u_gen] // [58] phi lin16u_gen::lintab#6 = main::lintab2 [phi:main::@4->lin16u_gen#0] -- pwuz1=pwuc1 lda #main::@5] // main::@5 // lin16u_gen(0, $6488, lintab3, 20) - // [5] call lin16u_gen + // [5] call lin16u_gen // [58] phi from main::@5 to lin16u_gen [phi:main::@5->lin16u_gen] // [58] phi lin16u_gen::lintab#6 = main::lintab3 [phi:main::@5->lin16u_gen#0] -- pwuz1=pwuc1 lda #main::@6] // main::@6 // print_cls() - // [7] call print_cls + // [7] call print_cls // [78] phi from main::@6 to print_cls [phi:main::@6->print_cls] jsr print_cls // [8] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // print_str(" ") - // [9] call print_str + // [9] call print_str // [81] phi from main::@7 to print_str [phi:main::@7->print_str] // [81] phi print_char_cursor#89 = print_screen#0 [phi:main::@7->print_str#0] -- pbuz1=pbuc1 lda #main::@8] // main::@8 // print_uint(557) - // [11] call print_uint + // [11] call print_uint // [88] phi from main::@8 to print_uint [phi:main::@8->print_uint] // [88] phi print_uint::w#10 = $22d [phi:main::@8->print_uint#0] -- vwuz1=vwuc1 lda #<$22d @@ -3836,7 +3837,7 @@ main: { // [12] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // print_str(" ") - // [13] call print_str + // [13] call print_str // [81] phi from main::@9 to print_str [phi:main::@9->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@9->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1 @@ -3848,7 +3849,7 @@ main: { // [14] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // print_uint(31179) - // [15] call print_uint + // [15] call print_uint // [88] phi from main::@10 to print_uint [phi:main::@10->print_uint] // [88] phi print_uint::w#10 = $79cb [phi:main::@10->print_uint#0] -- vwuz1=vwuc1 lda #<$79cb @@ -3859,7 +3860,7 @@ main: { // [16] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // print_str(" ") - // [17] call print_str + // [17] call print_str // [81] phi from main::@11 to print_str [phi:main::@11->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@11->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1 @@ -3871,7 +3872,7 @@ main: { // [18] phi from main::@11 to main::@12 [phi:main::@11->main::@12] // main::@12 // print_uint(0) - // [19] call print_uint + // [19] call print_uint // [88] phi from main::@12 to print_uint [phi:main::@12->print_uint] // [88] phi print_uint::w#10 = 0 [phi:main::@12->print_uint#0] -- vwuz1=vbuc1 lda #<0 @@ -3881,7 +3882,7 @@ main: { // [20] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // print_ln() - // [21] call print_ln + // [21] call print_ln // [94] phi from main::@13 to print_ln [phi:main::@13->print_ln] // [94] phi print_line_cursor#23 = print_screen#0 [phi:main::@13->print_ln#0] -- pbuz1=pbuc1 lda #print_str] // [81] phi print_char_cursor#89 = print_char_cursor#100 [phi:main::@3->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1 @@ -3919,7 +3920,7 @@ main: { // [26] phi from main::@3 to main::@22 [phi:main::@3->main::@22] // main::@22 // print_uint(29793) - // [27] call print_uint + // [27] call print_uint // [88] phi from main::@22 to print_uint [phi:main::@22->print_uint] // [88] phi print_uint::w#10 = $7461 [phi:main::@22->print_uint#0] -- vwuz1=vwuc1 lda #<$7461 @@ -3930,7 +3931,7 @@ main: { // [28] phi from main::@22 to main::@23 [phi:main::@22->main::@23] // main::@23 // print_str(" ") - // [29] call print_str + // [29] call print_str // [81] phi from main::@23 to print_str [phi:main::@23->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@23->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1 @@ -3942,7 +3943,7 @@ main: { // [30] phi from main::@23 to main::@24 [phi:main::@23->main::@24] // main::@24 // print_uint(63361) - // [31] call print_uint + // [31] call print_uint // [88] phi from main::@24 to print_uint [phi:main::@24->print_uint] // [88] phi print_uint::w#10 = $f781 [phi:main::@24->print_uint#0] -- vwuz1=vwuc1 lda #<$f781 @@ -3953,7 +3954,7 @@ main: { // [32] phi from main::@24 to main::@25 [phi:main::@24->main::@25] // main::@25 // print_str(" ") - // [33] call print_str + // [33] call print_str // [81] phi from main::@25 to print_str [phi:main::@25->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@25->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1 @@ -3965,7 +3966,7 @@ main: { // [34] phi from main::@25 to main::@26 [phi:main::@25->main::@26] // main::@26 // print_uint($6488) - // [35] call print_uint + // [35] call print_uint // [88] phi from main::@26 to print_uint [phi:main::@26->print_uint] // [88] phi print_uint::w#10 = $6488 [phi:main::@26->print_uint#0] -- vwuz1=vwuc1 lda #<$6488 @@ -3976,7 +3977,7 @@ main: { // [36] phi from main::@26 to main::@27 [phi:main::@26->main::@27] // main::@27 // print_ln() - // [37] call print_ln + // [37] call print_ln // [94] phi from main::@27 to print_ln [phi:main::@27->print_ln] // [94] phi print_line_cursor#23 = print_line_cursor#0 [phi:main::@27->print_ln#0] -- register_copy jsr print_ln @@ -3995,7 +3996,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_uchar(i) - // [41] call print_uchar + // [41] call print_uchar // [99] phi from main::@2 to print_uchar [phi:main::@2->print_uchar] // [99] phi print_char_cursor#84 = print_char_cursor#104 [phi:main::@2->print_uchar#0] -- register_copy // [99] phi print_uchar::b#3 = print_uchar::b#2 [phi:main::@2->print_uchar#1] -- register_copy @@ -4003,7 +4004,7 @@ main: { // [42] phi from main::@2 to main::@14 [phi:main::@2->main::@14] // main::@14 // print_str(" ") - // [43] call print_str + // [43] call print_str // [81] phi from main::@14 to print_str [phi:main::@14->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@14->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1 @@ -4024,14 +4025,14 @@ main: { sta.z print_uint.w lda lintab1+1,y sta.z print_uint.w+1 - // [46] call print_uint + // [46] call print_uint // [88] phi from main::@15 to print_uint [phi:main::@15->print_uint] // [88] phi print_uint::w#10 = print_uint::w#3 [phi:main::@15->print_uint#0] -- register_copy jsr print_uint // [47] phi from main::@15 to main::@16 [phi:main::@15->main::@16] // main::@16 // print_str(" ") - // [48] call print_str + // [48] call print_str // [81] phi from main::@16 to print_str [phi:main::@16->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@16->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1 @@ -4048,14 +4049,14 @@ main: { sta.z print_uint.w lda lintab2+1,y sta.z print_uint.w+1 - // [50] call print_uint + // [50] call print_uint // [88] phi from main::@17 to print_uint [phi:main::@17->print_uint] // [88] phi print_uint::w#10 = print_uint::w#4 [phi:main::@17->print_uint#0] -- register_copy jsr print_uint // [51] phi from main::@17 to main::@18 [phi:main::@17->main::@18] // main::@18 // print_str(" ") - // [52] call print_str + // [52] call print_str // [81] phi from main::@18 to print_str [phi:main::@18->print_str] // [81] phi print_char_cursor#89 = print_char_cursor#10 [phi:main::@18->print_str#0] -- register_copy // [81] phi print_str::str#13 = main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1 @@ -4072,14 +4073,14 @@ main: { sta.z print_uint.w lda lintab3+1,y sta.z print_uint.w+1 - // [54] call print_uint + // [54] call print_uint // [88] phi from main::@19 to print_uint [phi:main::@19->print_uint] // [88] phi print_uint::w#10 = print_uint::w#5 [phi:main::@19->print_uint#0] -- register_copy jsr print_uint // [55] phi from main::@19 to main::@20 [phi:main::@19->main::@20] // main::@20 // print_ln() - // [56] call print_ln + // [56] call print_ln // [94] phi from main::@20 to print_ln [phi:main::@20->print_ln] // [94] phi print_line_cursor#23 = print_line_cursor#0 [phi:main::@20->print_ln#0] -- register_copy jsr print_ln @@ -4104,7 +4105,7 @@ main: { // Generate word linear table // lintab - the table to generate into // length - the number of points in a total sine wavelength (the size of the table) -// lin16u_gen(word zp(9) min, word zp(7) max, word* zp($d) lintab) +// void lin16u_gen(__zp(9) unsigned int min, __zp(7) unsigned int max, __zp($d) unsigned int *lintab, unsigned int length) lin16u_gen: { .label __8 = $18 .label ampl = 7 @@ -4127,7 +4128,7 @@ lin16u_gen: { sta.z ampl+1 // word stepi = divr16u(ampl, length-1, 0) // [60] divr16u::dividend#1 = lin16u_gen::ampl#0 - // [61] call divr16u + // [61] call divr16u // [107] phi from lin16u_gen to divr16u [phi:lin16u_gen->divr16u] // [107] phi divr16u::dividend#5 = divr16u::dividend#1 [phi:lin16u_gen->divr16u#0] -- register_copy // [107] phi divr16u::rem#10 = 0 [phi:lin16u_gen->divr16u#1] -- vwuz1=vbuc1 @@ -4145,7 +4146,7 @@ lin16u_gen: { sta.z stepi+1 // word stepf = divr16u(0, length-1, rem16u) // [64] divr16u::rem#4 = rem16u#0 - // [65] call divr16u + // [65] call divr16u // [107] phi from lin16u_gen::@3 to divr16u [phi:lin16u_gen::@3->divr16u] // [107] phi divr16u::dividend#5 = 0 [phi:lin16u_gen::@3->divr16u#0] -- vwuz1=vbuc1 lda #<0 @@ -4228,8 +4229,8 @@ lin16u_gen: { adc.z step+3 sta.z val+3 // lintab++; - // [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD + // [76] lin16u_gen::lintab#3 = lin16u_gen::lintab#4 + SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT clc adc.z lintab sta.z lintab @@ -4252,7 +4253,7 @@ lin16u_gen: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [79] call memset + // [79] call memset // [125] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -4262,7 +4263,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(7) str) +// void print_str(__zp(7) char *str) print_str: { .label str = 7 // [82] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -4286,7 +4287,7 @@ print_str: { // [85] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [86] call print_char + // [86] call print_char // [131] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [131] phi print_char_cursor#51 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy // [131] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -4302,13 +4303,13 @@ print_str: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(9) w) +// void print_uint(__zp(9) unsigned int w) print_uint: { .label w = 9 // print_uchar(BYTE1(w)) // [89] print_uchar::b#0 = byte1 print_uint::w#10 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [90] call print_uchar + // [90] call print_uchar // [99] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [99] phi print_char_cursor#84 = print_char_cursor#1 [phi:print_uint->print_uchar#0] -- register_copy // [99] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -4317,7 +4318,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [91] print_uchar::b#1 = byte0 print_uint::w#10 -- vbuxx=_byte0_vwuz1 ldx.z w - // [92] call print_uchar + // [92] call print_uchar // [99] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [99] phi print_char_cursor#84 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy // [99] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -4360,7 +4361,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [100] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 @@ -4373,7 +4374,7 @@ print_uchar: { // [101] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [102] call print_char + // [102] call print_char // Table of hexadecimal digits // [131] phi from print_uchar to print_char [phi:print_uchar->print_char] // [131] phi print_char_cursor#51 = print_char_cursor#84 [phi:print_uchar->print_char#0] -- register_copy @@ -4387,7 +4388,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [104] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [105] call print_char + // [105] call print_char // [131] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [131] phi print_char_cursor#51 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy // [131] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -4402,7 +4403,7 @@ print_uchar: { // Returns the quotient dividend/divisor. // The final remainder will be set into the global variable rem16u // Implemented using simple binary division -// divr16u(word zp(7) dividend, word zp($18) rem) +// __zp($f) unsigned int divr16u(__zp(7) unsigned int dividend, unsigned int divisor, __zp($18) unsigned int rem) divr16u: { .label rem = $18 .label dividend = 7 @@ -4501,6 +4502,7 @@ divr16u: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -4508,7 +4510,7 @@ memset: { .label end = str+num .label dst = $d // [126] phi from memset to memset::@1 [phi:memset->memset::@1] - // [126] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [126] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -4546,7 +4548,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [132] *print_char_cursor#51 = print_char::ch#3 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/linegen.sym b/src/test/ref/linegen.sym index 026619cd3..c8ef6de8e 100644 --- a/src/test/ref/linegen.sym +++ b/src/test/ref/linegen.sym @@ -1,130 +1,130 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -byte~ divr16u::$1 reg byte a 2002.0 -byte~ divr16u::$2 reg byte a 2002.0 -word divr16u::dividend -word divr16u::dividend#0 dividend zp[2]:7 250.25 -word divr16u::dividend#1 dividend zp[2]:7 22.0 -word divr16u::dividend#3 dividend zp[2]:7 443.42857142857144 -word divr16u::dividend#5 dividend zp[2]:7 112.0 -word divr16u::divisor -byte divr16u::i -byte divr16u::i#1 reg byte x 1501.5 -byte divr16u::i#2 reg byte x 154.0 -word divr16u::quotient -word divr16u::quotient#1 quotient zp[2]:15 1501.5 -word divr16u::quotient#2 quotient zp[2]:15 1001.0 -word divr16u::quotient#3 quotient zp[2]:15 250.25 -word divr16u::rem -word divr16u::rem#0 rem zp[2]:24 750.75 -word divr16u::rem#1 rem zp[2]:24 2002.0 -word divr16u::rem#10 rem zp[2]:24 112.0 -word divr16u::rem#11 rem zp[2]:24 1034.6666666666667 -word divr16u::rem#2 rem zp[2]:24 2002.0 -word divr16u::rem#4 rem zp[2]:24 22.0 -word divr16u::rem#5 rem zp[2]:24 2103.0 -word divr16u::rem#6 rem zp[2]:24 1001.0 -word divr16u::return -word divr16u::return#0 return zp[2]:15 432.1428571428571 -word divr16u::return#2 return zp[2]:15 22.0 -word divr16u::return#3 return zp[2]:15 22.0 -void lin16u_gen(word lin16u_gen::min , word lin16u_gen::max , word* lin16u_gen::lintab , word lin16u_gen::length) -word~ lin16u_gen::$8 zp[2]:24 202.0 -word lin16u_gen::ampl -word lin16u_gen::ampl#0 ampl zp[2]:7 22.0 -word lin16u_gen::i -word lin16u_gen::i#1 i zp[2]:11 202.0 -word lin16u_gen::i#2 i zp[2]:11 50.5 -word lin16u_gen::length -word* lin16u_gen::lintab -word* lin16u_gen::lintab#3 lintab zp[2]:13 101.0 -word* lin16u_gen::lintab#4 lintab zp[2]:13 62.8 -word* lin16u_gen::lintab#6 lintab zp[2]:13 0.9166666666666666 -word lin16u_gen::max -word lin16u_gen::max#3 max zp[2]:7 11.0 -word lin16u_gen::min -word lin16u_gen::min#3 min zp[2]:9 2.0 -dword lin16u_gen::step -dword lin16u_gen::step#0 step zp[4]:20 12.444444444444443 -word lin16u_gen::stepf -word lin16u_gen::stepf#0 stepf zp[2]:15 22.0 -word lin16u_gen::stepi -word lin16u_gen::stepi#0 stepi zp[2]:18 4.4 -dword lin16u_gen::val -dword lin16u_gen::val#0 val zp[4]:3 22.0 -dword lin16u_gen::val#1 val zp[4]:3 67.33333333333333 -dword lin16u_gen::val#2 val zp[4]:3 78.5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +char divr16u::$1 // reg byte a 2002.0 +char divr16u::$2 // reg byte a 2002.0 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 // dividend zp[2]:7 250.25 +unsigned int divr16u::dividend#1 // dividend zp[2]:7 22.0 +unsigned int divr16u::dividend#3 // dividend zp[2]:7 443.42857142857144 +unsigned int divr16u::dividend#5 // dividend zp[2]:7 112.0 +unsigned int divr16u::divisor +char divr16u::i +char divr16u::i#1 // reg byte x 1501.5 +char divr16u::i#2 // reg byte x 154.0 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#1 // quotient zp[2]:15 1501.5 +unsigned int divr16u::quotient#2 // quotient zp[2]:15 1001.0 +unsigned int divr16u::quotient#3 // quotient zp[2]:15 250.25 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 // rem zp[2]:24 750.75 +unsigned int divr16u::rem#1 // rem zp[2]:24 2002.0 +unsigned int divr16u::rem#10 // rem zp[2]:24 112.0 +unsigned int divr16u::rem#11 // rem zp[2]:24 1034.6666666666667 +unsigned int divr16u::rem#2 // rem zp[2]:24 2002.0 +unsigned int divr16u::rem#4 // rem zp[2]:24 22.0 +unsigned int divr16u::rem#5 // rem zp[2]:24 2103.0 +unsigned int divr16u::rem#6 // rem zp[2]:24 1001.0 +unsigned int divr16u::return +unsigned int divr16u::return#0 // return zp[2]:15 432.1428571428571 +unsigned int divr16u::return#2 // return zp[2]:15 22.0 +unsigned int divr16u::return#3 // return zp[2]:15 22.0 +void lin16u_gen(unsigned int min , unsigned int max , unsigned int *lintab , unsigned int length) +unsigned int lin16u_gen::$8 // zp[2]:24 202.0 +unsigned int lin16u_gen::ampl +unsigned int lin16u_gen::ampl#0 // ampl zp[2]:7 22.0 +unsigned int lin16u_gen::i +unsigned int lin16u_gen::i#1 // i zp[2]:11 202.0 +unsigned int lin16u_gen::i#2 // i zp[2]:11 50.5 +unsigned int lin16u_gen::length +unsigned int *lin16u_gen::lintab +unsigned int *lin16u_gen::lintab#3 // lintab zp[2]:13 101.0 +unsigned int *lin16u_gen::lintab#4 // lintab zp[2]:13 62.8 +unsigned int *lin16u_gen::lintab#6 // lintab zp[2]:13 0.9166666666666666 +unsigned int lin16u_gen::max +unsigned int lin16u_gen::max#3 // max zp[2]:7 11.0 +unsigned int lin16u_gen::min +unsigned int lin16u_gen::min#3 // min zp[2]:9 2.0 +unsigned long lin16u_gen::step +unsigned long lin16u_gen::step#0 // step zp[4]:20 12.444444444444443 +unsigned int lin16u_gen::stepf +unsigned int lin16u_gen::stepf#0 // stepf zp[2]:15 22.0 +unsigned int lin16u_gen::stepi +unsigned int lin16u_gen::stepi#0 // stepi zp[2]:18 4.4 +unsigned long lin16u_gen::val +unsigned long lin16u_gen::val#0 // val zp[4]:3 22.0 +unsigned long lin16u_gen::val#1 // val zp[4]:3 67.33333333333333 +unsigned long lin16u_gen::val#2 // val zp[4]:3 78.5 void main() -byte~ main::$28 zp[1]:17 4.888888888888889 -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#10 i zp[1]:2 2.75 -constant word* main::lintab1[$14] = { fill( $14, 0) } -constant word* main::lintab2[$14] = { fill( $14, 0) } -constant word* main::lintab3[$14] = { fill( $14, 0) } -constant byte* main::str[4] = " " -constant byte* main::str1[2] = " " -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:13 2002.0 -byte* memset::dst#2 dst zp[2]:13 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#2 reg byte a 2002.0 -byte print_char::ch#3 reg byte a 112004.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:15 808.1600000000001 -byte* print_char_cursor#10 print_char_cursor zp[2]:15 3274.216216216216 -byte* print_char_cursor#100 print_char_cursor zp[2]:15 4.0 -byte* print_char_cursor#104 print_char_cursor zp[2]:15 22.0 -byte* print_char_cursor#51 print_char_cursor zp[2]:15 106002.5 -byte* print_char_cursor#84 print_char_cursor zp[2]:15 404.6666666666667 -byte* print_char_cursor#89 print_char_cursor zp[2]:15 144.0 +char main::$28 // zp[1]:17 4.888888888888889 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#10 // i zp[1]:2 2.75 +__constant unsigned int main::lintab1[$14] = { fill( $14, 0) } +__constant unsigned int main::lintab2[$14] = { fill( $14, 0) } +__constant unsigned int main::lintab3[$14] = { fill( $14, 0) } +__constant char main::str[4] = " " +__constant char main::str1[2] = " " +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:13 2002.0 +char *memset::dst#2 // dst zp[2]:13 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#2 // reg byte a 2002.0 +char print_char::ch#3 // reg byte a 112004.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:15 808.1600000000001 +char *print_char_cursor#10 // print_char_cursor zp[2]:15 3274.216216216216 +char *print_char_cursor#100 // print_char_cursor zp[2]:15 4.0 +char *print_char_cursor#104 // print_char_cursor zp[2]:15 22.0 +char *print_char_cursor#51 // print_char_cursor zp[2]:15 106002.5 +char *print_char_cursor#84 // print_char_cursor zp[2]:15 404.6666666666667 +char *print_char_cursor#89 // print_char_cursor zp[2]:15 144.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:11 790.2368421052631 -byte* print_line_cursor#12 print_line_cursor zp[2]:11 20103.0 -byte* print_line_cursor#23 print_line_cursor zp[2]:11 114.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:11 790.2368421052631 +char *print_line_cursor#12 // print_line_cursor zp[2]:11 20103.0 +char *print_line_cursor#23 // print_line_cursor zp[2]:11 114.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:7 20002.0 -byte* print_str::str#10 str zp[2]:7 10026.25 -byte* print_str::str#13 str zp[2]:7 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 11.0 -byte print_uchar::b#3 reg byte x 553.75 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#10 w zp[2]:9 78.33333333333333 -word print_uint::w#3 w zp[2]:9 22.0 -word print_uint::w#4 w zp[2]:9 22.0 -word print_uint::w#5 w zp[2]:9 22.0 -word rem16u -word rem16u#0 rem16u zp[2]:24 22.4 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:7 20002.0 +char *print_str::str#10 // str zp[2]:7 10026.25 +char *print_str::str#13 // str zp[2]:7 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 11.0 +char print_uchar::b#3 // reg byte x 553.75 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#10 // w zp[2]:9 78.33333333333333 +unsigned int print_uint::w#3 // w zp[2]:9 22.0 +unsigned int print_uint::w#4 // w zp[2]:9 22.0 +unsigned int print_uint::w#5 // w zp[2]:9 22.0 +unsigned int rem16u +unsigned int rem16u#0 // rem16u zp[2]:24 22.4 zp[1]:2 [ main::i#10 main::i#1 ] zp[4]:3 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] diff --git a/src/test/ref/literal-char-minus-number.log b/src/test/ref/literal-char-minus-number.log index be99b185f..4a9a86d96 100644 --- a/src/test/ref/literal-char-minus-number.log +++ b/src/test/ref/literal-char-minus-number.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,18 +22,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 'a'-1 in *main::SCREEN = 'a'-1 Adding number conversion cast (unumber) 1 in *main::SCREEN = ((unumber)) 'a'-1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::SCREEN = (unumber)'a'-(unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 'a'-(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant evaluating to zero 'a'-1 in [0] *main::SCREEN = 'a'-1 Successful SSA optimization PassNSimplifyConstantZero @@ -109,7 +109,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/literal-char-minus-number.sym b/src/test/ref/literal-char-minus-number.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/literal-char-minus-number.sym +++ b/src/test/ref/literal-char-minus-number.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/literal-string-array.cfg b/src/test/ref/literal-string-array.cfg index 5608c5203..373e60ccb 100644 --- a/src/test/ref/literal-string-array.cfg +++ b/src/test/ref/literal-string-array.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@5 [1] main::i#4 = phi( main/0, main::@5/main::i#2 ) [1] main::msg#2 = phi( main/msgs, main::@5/main::msg#1 ) - [2] if((byte*)0!=*main::msg#2) goto main::@2 + [2] if((char *)0!=*main::msg#2) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [3] return diff --git a/src/test/ref/literal-string-array.log b/src/test/ref/literal-string-array.log index e988ff80c..94dae7bd1 100644 --- a/src/test/ref/literal-string-array.log +++ b/src/test/ref/literal-string-array.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@5 main::i#5 = phi( main/main::i#0, main::@5/main::i#6 ) main::msg#2 = phi( main/main::msg#0, main::@5/main::msg#1 ) - main::$0 = (byte*)0 != *main::msg#2 + main::$0 = (char *)0 != *main::msg#2 if(main::$0) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 @@ -43,7 +43,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -52,46 +52,46 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* $0[6] = "hello" -constant byte* $1[6] = "cruel" -constant byte* $2[6] = "world" -constant void* const NUL = (void*)0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_POINTER = 2 +__constant char $0[6] = "hello" +__constant char $1[6] = "cruel" +__constant char $2[6] = "world" +__constant void * const NUL = (void *)0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_POINTER = 2 void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte* main::c -byte* main::c#0 -byte* main::c#1 -byte* main::c#2 -byte* main::c#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte** main::msg -byte** main::msg#0 -byte** main::msg#1 -byte** main::msg#2 -byte** main::msg#3 -byte** main::msg#4 -byte** main::msg#5 -byte** main::msg#6 -constant byte** msgs[] = { $0, $1, $2, NUL } +bool main::$0 +bool main::$1 +char *main::c +char *main::c#0 +char *main::c#1 +char *main::c#2 +char *main::c#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char **main::msg +char **main::msg#0 +char **main::msg#1 +char **main::msg#2 +char **main::msg#3 +char **main::msg#4 +char **main::msg#5 +char **main::msg#6 +__constant char *msgs[] = { $0, $1, $2, NUL } Adding number conversion cast (unumber) 0 in main::$1 = 0 != *main::c#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (void*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (void *) 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::msg#2 = main::msg#3 Alias main::i#4 = main::i#5 @@ -101,7 +101,7 @@ Alias main::msg#4 = main::msg#6 main::msg#5 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::msg#4 main::msg#2 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$0 [4] if((byte*)0!=*main::msg#2) goto main::@2 +Simple Condition main::$0 [4] if((char *)0!=*main::msg#2) goto main::@2 Simple Condition main::$1 [8] if(0!=*main::c#2) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 @@ -139,7 +139,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@5 [1] main::i#4 = phi( main/0, main::@5/main::i#2 ) [1] main::msg#2 = phi( main/msgs, main::@5/main::msg#1 ) - [2] if((byte*)0!=*main::msg#2) goto main::@2 + [2] if((char *)0!=*main::msg#2) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [3] return @@ -164,17 +164,17 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte* main::c -byte* main::c#0 22.0 -byte* main::c#1 202.0 -byte* main::c#2 103.75 -byte main::i -byte main::i#1 101.0 -byte main::i#2 81.25 -byte main::i#4 7.333333333333333 -byte** main::msg -byte** main::msg#1 22.0 -byte** main::msg#2 5.5 +char *main::c +char *main::c#0 // 22.0 +char *main::c#1 // 202.0 +char *main::c#2 // 103.75 +char main::i +char main::i#1 // 101.0 +char main::i#2 // 81.25 +char main::i#4 // 7.333333333333333 +char **main::msg +char **main::msg#1 // 22.0 +char **main::msg#2 // 5.5 Initial phi equivalence classes [ main::msg#2 main::msg#1 ] @@ -188,14 +188,14 @@ Allocated zp[2]:2 [ main::msg#2 main::msg#1 ] Allocated zp[1]:4 [ main::i#4 main::i#2 main::i#1 ] Allocated zp[2]:5 [ main::c#2 main::c#0 main::c#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] if((byte*)0!=*main::msg#2) goto main::@2 [ main::msg#2 main::i#4 ] ( [ main::msg#2 main::i#4 ] { } ) always clobbers reg byte a reg byte y +Statement [2] if((char *)0!=*main::msg#2) goto main::@2 [ main::msg#2 main::i#4 ] ( [ main::msg#2 main::i#4 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i#4 main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::i#4 main::i#2 main::i#1 ] Statement [4] main::c#0 = *main::msg#2 [ main::msg#2 main::i#4 main::c#0 ] ( [ main::msg#2 main::i#4 main::c#0 ] { } ) always clobbers reg byte a reg byte y Statement [6] if(0!=*main::c#2) goto main::@4 [ main::msg#2 main::i#2 main::c#2 ] ( [ main::msg#2 main::i#2 main::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [7] main::msg#1 = main::msg#2 + SIZEOF_POINTER [ main::msg#1 main::i#2 ] ( [ main::msg#1 main::i#2 ] { } ) always clobbers reg byte a Statement [8] SCREEN[main::i#2] = *main::c#2 [ main::msg#2 main::i#2 main::c#2 ] ( [ main::msg#2 main::i#2 main::c#2 ] { } ) always clobbers reg byte a reg byte y -Statement [2] if((byte*)0!=*main::msg#2) goto main::@2 [ main::msg#2 main::i#4 ] ( [ main::msg#2 main::i#4 ] { } ) always clobbers reg byte a reg byte y +Statement [2] if((char *)0!=*main::msg#2) goto main::@2 [ main::msg#2 main::i#4 ] ( [ main::msg#2 main::i#4 ] { } ) always clobbers reg byte a reg byte y Statement [4] main::c#0 = *main::msg#2 [ main::msg#2 main::i#4 main::c#0 ] ( [ main::msg#2 main::i#4 main::c#0 ] { } ) always clobbers reg byte a reg byte y Statement [6] if(0!=*main::c#2) goto main::@4 [ main::msg#2 main::i#2 main::c#2 ] ( [ main::msg#2 main::i#2 main::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [7] main::msg#1 = main::msg#2 + SIZEOF_POINTER [ main::msg#1 main::i#2 ] ( [ main::msg#1 main::i#2 ] { } ) always clobbers reg byte a @@ -245,7 +245,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] if((byte*)0!=*main::msg#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 + // [2] if((char *)0!=*main::msg#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 ldy #0 lda #<0 cmp (msg),y @@ -345,25 +345,25 @@ Removing instruction __b1_from___b5: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* $0[6] = "hello" -constant byte* $1[6] = "cruel" -constant byte* $2[6] = "world" -constant void* const NUL = (void*) 0 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_POINTER = 2 +__constant char $0[6] = "hello" +__constant char $1[6] = "cruel" +__constant char $2[6] = "world" +__constant void * const NUL = (void *) 0 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_POINTER = 2 void main() -byte* main::c -byte* main::c#0 c zp[2]:4 22.0 -byte* main::c#1 c zp[2]:4 202.0 -byte* main::c#2 c zp[2]:4 103.75 -byte main::i -byte main::i#1 reg byte x 101.0 -byte main::i#2 reg byte x 81.25 -byte main::i#4 reg byte x 7.333333333333333 -byte** main::msg -byte** main::msg#1 msg zp[2]:2 22.0 -byte** main::msg#2 msg zp[2]:2 5.5 -constant byte** msgs[] = { $0, $1, $2, NUL } +char *main::c +char *main::c#0 // c zp[2]:4 22.0 +char *main::c#1 // c zp[2]:4 202.0 +char *main::c#2 // c zp[2]:4 103.75 +char main::i +char main::i#1 // reg byte x 101.0 +char main::i#2 // reg byte x 81.25 +char main::i#4 // reg byte x 7.333333333333333 +char **main::msg +char **main::msg#1 // msg zp[2]:2 22.0 +char **main::msg#2 // msg zp[2]:2 5.5 +__constant char *msgs[] = { $0, $1, $2, NUL } zp[2]:2 [ main::msg#2 main::msg#1 ] reg byte x [ main::i#4 main::i#2 main::i#1 ] @@ -404,7 +404,7 @@ main: { // main::@1 __b1: // while(*msg) - // [2] if((byte*)0!=*main::msg#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 + // [2] if((char *)0!=*main::msg#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 ldy #0 tya cmp (msg),y diff --git a/src/test/ref/literal-string-array.sym b/src/test/ref/literal-string-array.sym index 82cfb8fa0..83310d147 100644 --- a/src/test/ref/literal-string-array.sym +++ b/src/test/ref/literal-string-array.sym @@ -1,22 +1,22 @@ -constant byte* $0[6] = "hello" -constant byte* $1[6] = "cruel" -constant byte* $2[6] = "world" -constant void* const NUL = (void*) 0 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_POINTER = 2 +__constant char $0[6] = "hello" +__constant char $1[6] = "cruel" +__constant char $2[6] = "world" +__constant void * const NUL = (void *) 0 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_POINTER = 2 void main() -byte* main::c -byte* main::c#0 c zp[2]:4 22.0 -byte* main::c#1 c zp[2]:4 202.0 -byte* main::c#2 c zp[2]:4 103.75 -byte main::i -byte main::i#1 reg byte x 101.0 -byte main::i#2 reg byte x 81.25 -byte main::i#4 reg byte x 7.333333333333333 -byte** main::msg -byte** main::msg#1 msg zp[2]:2 22.0 -byte** main::msg#2 msg zp[2]:2 5.5 -constant byte** msgs[] = { $0, $1, $2, NUL } +char *main::c +char *main::c#0 // c zp[2]:4 22.0 +char *main::c#1 // c zp[2]:4 202.0 +char *main::c#2 // c zp[2]:4 103.75 +char main::i +char main::i#1 // reg byte x 101.0 +char main::i#2 // reg byte x 81.25 +char main::i#4 // reg byte x 7.333333333333333 +char **main::msg +char **main::msg#1 // msg zp[2]:2 22.0 +char **main::msg#2 // msg zp[2]:2 5.5 +__constant char *msgs[] = { $0, $1, $2, NUL } zp[2]:2 [ main::msg#2 main::msg#1 ] reg byte x [ main::i#4 main::i#2 main::i#1 ] diff --git a/src/test/ref/literal-strings.log b/src/test/ref/literal-strings.log index 55cb2ef9a..8fccc7545 100644 --- a/src/test/ref/literal-strings.log +++ b/src/test/ref/literal-strings.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,23 +28,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* msg[] = "cml" -constant byte* msgz[] = "cml"z +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char msg[] = "cml" +__constant char msgz[] = "cml"z Adding number conversion cast (unumber) $28 in (SCREEN+$28)[main::i#2] = msgz[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -61,7 +61,7 @@ Adding number conversion cast (unumber) 4 in [4] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -96,9 +96,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -185,13 +185,13 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* msg[] = "cml" -constant byte* msgz[] = "cml"z +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char msg[] = "cml" +__constant char msgz[] = "cml"z reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/literal-strings.sym b/src/test/ref/literal-strings.sym index 1a6e2463f..aa2e9d121 100644 --- a/src/test/ref/literal-strings.sym +++ b/src/test/ref/literal-strings.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte* msg[] = "cml" -constant byte* msgz[] = "cml"z +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char msg[] = "cml" +__constant char msgz[] = "cml"z reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/literal-word-pointer-0.asm b/src/test/ref/literal-word-pointer-0.asm index 70f138d5c..b99d8ce54 100644 --- a/src/test/ref/literal-word-pointer-0.asm +++ b/src/test/ref/literal-word-pointer-0.asm @@ -18,6 +18,7 @@ main: { .byte 0 } .segment Code +// void print(char *str) print: { // *(char**)0x80 = (char*)str lda #main.str @@ -156,9 +157,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::str[4] = "qwe" -void print(byte* print::str) -byte* print::str +__constant char main::str[4] = "qwe" +void print(char *str) +char *print::str @@ -181,7 +182,7 @@ Score: 30 // main main: { // print("qwe") - // [1] call print + // [1] call print jsr print // main::@return // } @@ -193,9 +194,10 @@ main: { } .segment Code // print +// void print(char *str) print: { // *(char**)0x80 = (char*)str - // [3] *((byte**) 128) = main::str -- _deref_qbuc1=pbuc2 + // [3] *((char **) 128) = main::str -- _deref_qbuc1=pbuc2 lda #main.str diff --git a/src/test/ref/literal-word-pointer-0.sym b/src/test/ref/literal-word-pointer-0.sym index a5a8e058c..50d3e5cab 100644 --- a/src/test/ref/literal-word-pointer-0.sym +++ b/src/test/ref/literal-word-pointer-0.sym @@ -1,5 +1,5 @@ void main() -constant byte* main::str[4] = "qwe" -void print(byte* print::str) -byte* print::str +__constant char main::str[4] = "qwe" +void print(char *str) +char *print::str diff --git a/src/test/ref/literal-word-pointer-1.asm b/src/test/ref/literal-word-pointer-1.asm index 59986b4ec..65e809484 100644 --- a/src/test/ref/literal-word-pointer-1.asm +++ b/src/test/ref/literal-word-pointer-1.asm @@ -18,6 +18,7 @@ main: { .byte 0 } .segment Code +// void print(char *str) print: { // *(word*)0x80 = (word)str lda #main.str @@ -157,9 +158,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::str[4] = "qwe" -void print(byte* print::str) -byte* print::str +__constant char main::str[4] = "qwe" +void print(char *str) +char *print::str @@ -182,7 +183,7 @@ Score: 30 // main main: { // print("qwe") - // [1] call print + // [1] call print jsr print // main::@return // } @@ -194,9 +195,10 @@ main: { } .segment Code // print +// void print(char *str) print: { // *(word*)0x80 = (word)str - // [3] *((word*) 128) = (word)main::str -- _deref_pwuc1=vwuc2 + // [3] *((unsigned int *) 128) = (unsigned int)main::str -- _deref_pwuc1=vwuc2 lda #main.str diff --git a/src/test/ref/literal-word-pointer-1.sym b/src/test/ref/literal-word-pointer-1.sym index a5a8e058c..50d3e5cab 100644 --- a/src/test/ref/literal-word-pointer-1.sym +++ b/src/test/ref/literal-word-pointer-1.sym @@ -1,5 +1,5 @@ void main() -constant byte* main::str[4] = "qwe" -void print(byte* print::str) -byte* print::str +__constant char main::str[4] = "qwe" +void print(char *str) +char *print::str diff --git a/src/test/ref/literals.log b/src/test/ref/literals.log index da5affc07..9f27d19a1 100644 --- a/src/test/ref/literals.log +++ b/src/test/ref/literals.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -37,20 +37,20 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -constant byte ch = 'a' +__constant char ch = 'a' void main() -number~ main::$0 -number~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte num = 1 -constant byte* nums[] = { 2, 3, 4, 5 } -constant byte* str[] = "bcde" +number main::$0 +number main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char num = 1 +__constant char nums[] = { 2, 3, 4, 5 } +__constant char str[] = "bcde" Adding number conversion cast (unumber) 0 in SCREEN[0] = ch Adding number conversion cast (unumber) 2 in SCREEN[2] = num @@ -59,19 +59,19 @@ Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)4 + main Adding number conversion cast (unumber) 9 in main::$1 = 9 + main::i#2 Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)9 + main::i#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 4 Simplifying constant integer cast 9 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 9 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 9 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 4 + main::i#2 -Inferred type updated to byte in main::$1 = 9 + main::i#2 +Inferred type updated to char in main::$0 = 4 + main::i#2 +Inferred type updated to char in main::$1 = 9 + main::i#2 Simple Condition main::$2 [10] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 @@ -91,7 +91,7 @@ Adding number conversion cast (unumber) 4 in [8] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -131,9 +131,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -231,15 +231,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte ch = 'a' +__constant char *SCREEN = (char *) 1024 +__constant char ch = 'a' void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte num = 1 -constant byte* nums[] = { 2, 3, 4, 5 } -constant byte* str[] = "bcde" +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char num = 1 +__constant char nums[] = { 2, 3, 4, 5 } +__constant char str[] = "bcde" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/literals.sym b/src/test/ref/literals.sym index 52474e226..b063ec6bc 100644 --- a/src/test/ref/literals.sym +++ b/src/test/ref/literals.sym @@ -1,11 +1,11 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte ch = 'a' +__constant char *SCREEN = (char *) 1024 +__constant char ch = 'a' void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -constant byte num = 1 -constant byte* nums[] = { 2, 3, 4, 5 } -constant byte* str[] = "bcde" +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +__constant char num = 1 +__constant char nums[] = { 2, 3, 4, 5 } +__constant char str[] = "bcde" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/liverange-1.asm b/src/test/ref/liverange-1.asm index 33e20795b..a1b154ecf 100644 --- a/src/test/ref/liverange-1.asm +++ b/src/test/ref/liverange-1.asm @@ -21,7 +21,7 @@ main: { // } rts } -// out(byte register(A) c) +// void out(__register(A) char c) out: { // SCREEN[idx++] = c sta SCREEN,x diff --git a/src/test/ref/liverange-1.cfg b/src/test/ref/liverange-1.cfg index f006b2eb2..d2e7a1d3b 100644 --- a/src/test/ref/liverange-1.cfg +++ b/src/test/ref/liverange-1.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call out + [1] call out to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call out + [3] call out to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main main::@1 [5] idx#11 = phi( main/0, main::@1/idx#12 ) [5] out::c#2 = phi( main/'c', main::@1/'m' ) diff --git a/src/test/ref/liverange-1.log b/src/test/ref/liverange-1.log index af8a75dde..c055d6b6b 100644 --- a/src/test/ref/liverange-1.log +++ b/src/test/ref/liverange-1.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start::@1 idx#15 = phi( __start::@1/idx#16 ) out::c#0 = 'c' - call out + call out to:main::@1 main::@1: scope:[main] from main idx#8 = phi( main/idx#4 ) idx#0 = idx#8 out::c#1 = 'm' - call out + call out to:main::@2 main::@2: scope:[main] from main::@1 idx#9 = phi( main::@1/idx#4 ) @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main main::@1 idx#11 = phi( main/idx#15, main::@1/idx#0 ) out::c#2 = phi( main/out::c#0, main::@1/out::c#1 ) @@ -45,7 +45,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#16 = phi( __start::__init1/idx#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#13 = phi( __start::@1/idx#2 ) @@ -58,34 +58,34 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 -byte out::c#2 +void out(char c) +char out::c +char out::c#0 +char out::c#1 +char out::c#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#8 Alias idx#1 = idx#9 idx#10 idx#2 @@ -133,17 +133,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call out + [1] call out to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call out + [3] call out to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main main::@1 [5] idx#11 = phi( main/0, main::@1/idx#12 ) [5] out::c#2 = phi( main/'c', main::@1/'m' ) @@ -156,13 +156,13 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS -byte idx -byte idx#11 12.0 -byte idx#12 3.25 +char idx +char idx#11 // 12.0 +char idx#12 // 3.25 void main() -void out(byte out::c) -byte out::c -byte out::c#2 11.0 +void out(char c) +char out::c +char out::c#2 // 11.0 Initial phi equivalence classes [ out::c#2 ] @@ -203,7 +203,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call out + // [1] call out // [5] phi from main to out [phi:main->out] out_from_main: // [5] phi idx#11 = 0 [phi:main->out#0] -- vbuxx=vbuc1 @@ -216,7 +216,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call out + // [3] call out // [5] phi from main::@1 to out [phi:main::@1->out] out_from___b1: // [5] phi idx#11 = idx#12 [phi:main::@1->out#0] -- register_copy @@ -230,7 +230,7 @@ main: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // [6] SCREEN[idx#11] = out::c#2 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x @@ -259,14 +259,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#11 reg byte x 12.0 -byte idx#12 reg byte x 3.25 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#11 // reg byte x 12.0 +char idx#12 // reg byte x 3.25 void main() -void out(byte out::c) -byte out::c -byte out::c#2 reg byte a 11.0 +void out(char c) +char out::c +char out::c#2 // reg byte a 11.0 reg byte a [ out::c#2 ] reg byte x [ idx#11 idx#12 ] @@ -293,7 +293,7 @@ Score: 37 // main main: { // out('c') - // [1] call out + // [1] call out // [5] phi from main to out [phi:main->out] // [5] phi idx#11 = 0 [phi:main->out#0] -- vbuxx=vbuc1 ldx #0 @@ -303,7 +303,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // out('m') - // [3] call out + // [3] call out // [5] phi from main::@1 to out [phi:main::@1->out] // [5] phi idx#11 = idx#12 [phi:main::@1->out#0] -- register_copy // [5] phi out::c#2 = 'm' [phi:main::@1->out#1] -- vbuaa=vbuc1 @@ -315,7 +315,7 @@ main: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // SCREEN[idx++] = c // [6] SCREEN[idx#11] = out::c#2 -- pbuc1_derefidx_vbuxx=vbuaa diff --git a/src/test/ref/liverange-1.sym b/src/test/ref/liverange-1.sym index 5e981677c..102d11d7b 100644 --- a/src/test/ref/liverange-1.sym +++ b/src/test/ref/liverange-1.sym @@ -1,11 +1,11 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#11 reg byte x 12.0 -byte idx#12 reg byte x 3.25 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#11 // reg byte x 12.0 +char idx#12 // reg byte x 3.25 void main() -void out(byte out::c) -byte out::c -byte out::c#2 reg byte a 11.0 +void out(char c) +char out::c +char out::c#2 // reg byte a 11.0 reg byte a [ out::c#2 ] reg byte x [ idx#11 idx#12 ] diff --git a/src/test/ref/liverange-10.asm b/src/test/ref/liverange-10.asm index 150ed459b..300ea05c9 100644 --- a/src/test/ref/liverange-10.asm +++ b/src/test/ref/liverange-10.asm @@ -55,7 +55,7 @@ main: { // } rts } -// outsw(signed word zp(4) sw) +// void outsw(__zp(4) int sw) outsw: { .label sw = 4 // if(sw<0) @@ -78,7 +78,7 @@ outsw: { // } rts } -// outw(word zp(4) w) +// void outw(__zp(4) unsigned int w) outw: { .label w = 4 // BYTE1(w) @@ -122,7 +122,7 @@ outw: { // } rts } -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; inx diff --git a/src/test/ref/liverange-10.cfg b/src/test/ref/liverange-10.cfg index b18465de3..502b49936 100644 --- a/src/test/ref/liverange-10.cfg +++ b/src/test/ref/liverange-10.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@3 [1] idx#31 = phi( main/0, main::@3/idx#11 ) [1] main::sw#2 = phi( main/-$14, main::@3/main::sw#1 ) [2] outsw::sw#0 = main::sw#2 - [3] call outsw + [3] call outsw to:main::@3 main::@3: scope:[main] from main::@1 [4] main::sw#1 = ++ main::sw#2 @@ -16,7 +16,7 @@ main::@3: scope:[main] from main::@1 main::@2: scope:[main] from main::@3 main::@4 [6] main::w#2 = phi( main::@3/0, main::@4/main::w#1 ) [7] outw::w#0 = main::w#2 - [8] call outw + [8] call outw to:main::@4 main::@4: scope:[main] from main::@2 [9] main::w#1 = ++ main::w#2 @@ -26,13 +26,13 @@ main::@return: scope:[main] from main::@4 [11] return to:@return -void outsw(signed word outsw::sw) +void outsw(int sw) outsw: scope:[outsw] from main::@1 [12] if(outsw::sw#0>=0) goto outsw::@1 to:outsw::@2 outsw::@2: scope:[outsw] from outsw [13] phi() - [14] call out + [14] call out to:outsw::@3 outsw::@3: scope:[outsw] from outsw::@2 [15] outsw::sw#1 = - outsw::sw#0 @@ -40,45 +40,45 @@ outsw::@3: scope:[outsw] from outsw::@2 outsw::@1: scope:[outsw] from outsw outsw::@3 [16] idx#33 = phi( outsw/idx#31, outsw::@3/idx#11 ) [16] outsw::sw#3 = phi( outsw/outsw::sw#0, outsw::@3/outsw::sw#1 ) - [17] outw::w#1 = (word)outsw::sw#3 - [18] call outw + [17] outw::w#1 = (unsigned int)outsw::sw#3 + [18] call outw to:outsw::@return outsw::@return: scope:[outsw] from outsw::@1 [19] return to:@return -void outw(word outw::w) +void outw(unsigned int w) outw: scope:[outw] from main::@2 outsw::@1 [20] idx#35 = phi( main::@2/idx#11, outsw::@1/idx#33 ) [20] outw::w#2 = phi( main::@2/outw::w#0, outsw::@1/outw::w#1 ) [21] outw::$0 = byte1 outw::w#2 [22] outw::$1 = outw::$0 << 4 [23] out::c#1 = HEXTAB[outw::$1] - [24] call out + [24] call out to:outw::@1 outw::@1: scope:[outw] from outw [25] outw::$3 = byte1 outw::w#2 [26] outw::$4 = outw::$3 & $f [27] out::c#2 = HEXTAB[outw::$4] - [28] call out + [28] call out to:outw::@2 outw::@2: scope:[outw] from outw::@1 [29] outw::$6 = byte0 outw::w#2 [30] outw::$7 = outw::$6 << 4 [31] out::c#3 = HEXTAB[outw::$7] - [32] call out + [32] call out to:outw::@3 outw::@3: scope:[outw] from outw::@2 [33] outw::$9 = byte0 outw::w#2 [34] outw::$10 = outw::$9 & $f [35] out::c#4 = HEXTAB[outw::$10] - [36] call out + [36] call out to:outw::@return outw::@return: scope:[outw] from outw::@3 [37] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from outsw::@2 outw outw::@1 outw::@2 outw::@3 [38] out::c#5 = phi( outsw::@2/'-', outw/out::c#1, outw::@1/out::c#2, outw::@2/out::c#3, outw::@3/out::c#4 ) [38] idx#27 = phi( outsw::@2/idx#31, outw/idx#35, outw::@1/idx#11, outw::@2/idx#11, outw::@3/idx#11 ) diff --git a/src/test/ref/liverange-10.log b/src/test/ref/liverange-10.log index d18df4312..be41b3923 100644 --- a/src/test/ref/liverange-10.log +++ b/src/test/ref/liverange-10.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@4 idx#31 = phi( main/idx#37, main::@4/idx#0 ) main::sw#2 = phi( main/main::sw#0, main::@4/main::sw#1 ) outsw::sw#0 = main::sw#2 - call outsw + call outsw to:main::@4 main::@4: scope:[main] from main::@1 main::sw#3 = phi( main::@1/main::sw#2 ) @@ -29,7 +29,7 @@ main::@3: scope:[main] from main::@2 main::@5 idx#32 = phi( main::@2/idx#38, main::@5/idx#1 ) main::w#2 = phi( main::@2/main::w#0, main::@5/main::w#1 ) outw::w#0 = main::w#2 - call outw + call outw to:main::@5 main::@5: scope:[main] from main::@3 main::w#3 = phi( main::@3/main::w#2 ) @@ -45,7 +45,7 @@ main::@return: scope:[main] from main::@5 return to:@return -void outsw(signed word outsw::sw) +void outsw(int sw) outsw: scope:[outsw] from main::@1 idx#39 = phi( main::@1/idx#31 ) outsw::sw#2 = phi( main::@1/outsw::sw#0 ) @@ -56,8 +56,8 @@ outsw: scope:[outsw] from main::@1 outsw::@1: scope:[outsw] from outsw outsw::@4 idx#33 = phi( outsw/idx#39, outsw::@4/idx#4 ) outsw::sw#3 = phi( outsw/outsw::sw#2, outsw::@4/outsw::sw#1 ) - outw::w#1 = (word)outsw::sw#3 - call outw + outw::w#1 = (unsigned int)outsw::sw#3 + call outw to:outsw::@3 outsw::@3: scope:[outsw] from outsw::@1 idx#19 = phi( outsw::@1/idx#10 ) @@ -67,7 +67,7 @@ outsw::@2: scope:[outsw] from outsw outsw::sw#5 = phi( outsw/outsw::sw#2 ) idx#34 = phi( outsw/idx#39 ) out::c#0 = '-' - call out + call out to:outsw::@4 outsw::@4: scope:[outsw] from outsw::@2 outsw::sw#4 = phi( outsw::@2/outsw::sw#5 ) @@ -82,14 +82,14 @@ outsw::@return: scope:[outsw] from outsw::@3 return to:@return -void outw(word outw::w) +void outw(unsigned int w) outw: scope:[outw] from main::@3 outsw::@1 idx#35 = phi( main::@3/idx#32, outsw::@1/idx#33 ) outw::w#2 = phi( main::@3/outw::w#0, outsw::@1/outw::w#1 ) outw::$0 = byte1 outw::w#2 outw::$1 = outw::$0 << 4 out::c#1 = HEXTAB[outw::$1] - call out + call out to:outw::@1 outw::@1: scope:[outw] from outw outw::w#3 = phi( outw/outw::w#2 ) @@ -98,7 +98,7 @@ outw::@1: scope:[outw] from outw outw::$3 = byte1 outw::w#3 outw::$4 = outw::$3 & $f out::c#2 = HEXTAB[outw::$4] - call out + call out to:outw::@2 outw::@2: scope:[outw] from outw::@1 outw::w#4 = phi( outw::@1/outw::w#3 ) @@ -107,7 +107,7 @@ outw::@2: scope:[outw] from outw::@1 outw::$6 = byte0 outw::w#4 outw::$7 = outw::$6 << 4 out::c#3 = HEXTAB[outw::$7] - call out + call out to:outw::@3 outw::@3: scope:[outw] from outw::@2 outw::w#5 = phi( outw::@2/outw::w#4 ) @@ -116,7 +116,7 @@ outw::@3: scope:[outw] from outw::@2 outw::$9 = byte0 outw::w#5 outw::$10 = outw::$9 & $f out::c#4 = HEXTAB[outw::$10] - call out + call out to:outw::@4 outw::@4: scope:[outw] from outw::@3 idx#25 = phi( outw::@3/idx#12 ) @@ -128,7 +128,7 @@ outw::@return: scope:[outw] from outw::@4 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from outsw::@2 outw outw::@1 outw::@2 outw::@3 out::c#5 = phi( outsw::@2/out::c#0, outw/out::c#1, outw::@1/out::c#2, outw::@2/out::c#3, outw::@3/out::c#4 ) idx#27 = phi( outsw::@2/idx#34, outw/idx#35, outw::@1/idx#6, outw::@2/idx#7, outw::@3/idx#8 ) @@ -149,7 +149,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#36 = phi( __start::__init1/idx#13 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#29 = phi( __start::@1/idx#2 ) @@ -162,98 +162,98 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* HEXTAB[] = "0123456789abcdef" -constant byte* const SCREEN = (byte*)$400 +__constant char HEXTAB[] = "0123456789abcdef" +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#30 -byte idx#31 -byte idx#32 -byte idx#33 -byte idx#34 -byte idx#35 -byte idx#36 -byte idx#37 -byte idx#38 -byte idx#39 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#30 +char idx#31 +char idx#32 +char idx#33 +char idx#34 +char idx#35 +char idx#36 +char idx#37 +char idx#38 +char idx#39 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -bool~ main::$3 -signed word main::sw -signed word main::sw#0 -signed word main::sw#1 -signed word main::sw#2 -signed word main::sw#3 -word main::w -word main::w#0 -word main::w#1 -word main::w#2 -word main::w#3 -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 -byte out::c#2 -byte out::c#3 -byte out::c#4 -byte out::c#5 -void outsw(signed word outsw::sw) -bool~ outsw::$0 -bool~ outsw::$1 -signed word~ outsw::$4 -signed word outsw::sw -signed word outsw::sw#0 -signed word outsw::sw#1 -signed word outsw::sw#2 -signed word outsw::sw#3 -signed word outsw::sw#4 -signed word outsw::sw#5 -void outw(word outw::w) -byte~ outw::$0 -byte~ outw::$1 -number~ outw::$10 -byte~ outw::$3 -number~ outw::$4 -byte~ outw::$6 -byte~ outw::$7 -byte~ outw::$9 -word outw::w -word outw::w#0 -word outw::w#1 -word outw::w#2 -word outw::w#3 -word outw::w#4 -word outw::w#5 +bool main::$1 +bool main::$3 +int main::sw +int main::sw#0 +int main::sw#1 +int main::sw#2 +int main::sw#3 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +unsigned int main::w#2 +unsigned int main::w#3 +void out(char c) +char out::c +char out::c#0 +char out::c#1 +char out::c#2 +char out::c#3 +char out::c#4 +char out::c#5 +void outsw(int sw) +bool outsw::$0 +bool outsw::$1 +int outsw::$4 +int outsw::sw +int outsw::sw#0 +int outsw::sw#1 +int outsw::sw#2 +int outsw::sw#3 +int outsw::sw#4 +int outsw::sw#5 +void outw(unsigned int w) +char outw::$0 +char outw::$1 +number outw::$10 +char outw::$3 +number outw::$4 +char outw::$6 +char outw::$7 +char outw::$9 +unsigned int outw::w +unsigned int outw::w#0 +unsigned int outw::w#1 +unsigned int outw::w#2 +unsigned int outw::w#3 +unsigned int outw::w#4 +unsigned int outw::w#5 Adding number conversion cast (snumber) 0 in outsw::$0 = outsw::sw#2 < 0 Adding number conversion cast (unumber) 4 in outw::$1 = outw::$0 << 4 @@ -263,21 +263,21 @@ Adding number conversion cast (unumber) 4 in outw::$7 = outw::$6 << 4 Adding number conversion cast (unumber) $f in outw::$10 = outw::$9 & $f Adding number conversion cast (unumber) outw::$10 in outw::$10 = outw::$9 & (unumber)$f Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 4 Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in outw::$4 = outw::$3 & $f -Inferred type updated to byte in outw::$10 = outw::$9 & $f +Inferred type updated to char in outw::$4 = outw::$3 & $f +Inferred type updated to char in outw::$10 = outw::$9 & $f Inversing boolean not [25] outsw::$1 = outsw::sw#2 >= 0 from [24] outsw::$0 = outsw::sw#2 < 0 Successful SSA optimization Pass2UnaryNotSimplification Alias main::sw#2 = main::sw#3 @@ -339,8 +339,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $14 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $14 -Finalized unsigned number type (byte) $28 +Finalized signed number type (signed char) $14 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::sw#0 Inlining constant with var siblings main::w#0 @@ -408,7 +408,7 @@ main::@1: scope:[main] from main main::@3 [1] idx#31 = phi( main/0, main::@3/idx#11 ) [1] main::sw#2 = phi( main/-$14, main::@3/main::sw#1 ) [2] outsw::sw#0 = main::sw#2 - [3] call outsw + [3] call outsw to:main::@3 main::@3: scope:[main] from main::@1 [4] main::sw#1 = ++ main::sw#2 @@ -417,7 +417,7 @@ main::@3: scope:[main] from main::@1 main::@2: scope:[main] from main::@3 main::@4 [6] main::w#2 = phi( main::@3/0, main::@4/main::w#1 ) [7] outw::w#0 = main::w#2 - [8] call outw + [8] call outw to:main::@4 main::@4: scope:[main] from main::@2 [9] main::w#1 = ++ main::w#2 @@ -427,13 +427,13 @@ main::@return: scope:[main] from main::@4 [11] return to:@return -void outsw(signed word outsw::sw) +void outsw(int sw) outsw: scope:[outsw] from main::@1 [12] if(outsw::sw#0>=0) goto outsw::@1 to:outsw::@2 outsw::@2: scope:[outsw] from outsw [13] phi() - [14] call out + [14] call out to:outsw::@3 outsw::@3: scope:[outsw] from outsw::@2 [15] outsw::sw#1 = - outsw::sw#0 @@ -441,45 +441,45 @@ outsw::@3: scope:[outsw] from outsw::@2 outsw::@1: scope:[outsw] from outsw outsw::@3 [16] idx#33 = phi( outsw/idx#31, outsw::@3/idx#11 ) [16] outsw::sw#3 = phi( outsw/outsw::sw#0, outsw::@3/outsw::sw#1 ) - [17] outw::w#1 = (word)outsw::sw#3 - [18] call outw + [17] outw::w#1 = (unsigned int)outsw::sw#3 + [18] call outw to:outsw::@return outsw::@return: scope:[outsw] from outsw::@1 [19] return to:@return -void outw(word outw::w) +void outw(unsigned int w) outw: scope:[outw] from main::@2 outsw::@1 [20] idx#35 = phi( main::@2/idx#11, outsw::@1/idx#33 ) [20] outw::w#2 = phi( main::@2/outw::w#0, outsw::@1/outw::w#1 ) [21] outw::$0 = byte1 outw::w#2 [22] outw::$1 = outw::$0 << 4 [23] out::c#1 = HEXTAB[outw::$1] - [24] call out + [24] call out to:outw::@1 outw::@1: scope:[outw] from outw [25] outw::$3 = byte1 outw::w#2 [26] outw::$4 = outw::$3 & $f [27] out::c#2 = HEXTAB[outw::$4] - [28] call out + [28] call out to:outw::@2 outw::@2: scope:[outw] from outw::@1 [29] outw::$6 = byte0 outw::w#2 [30] outw::$7 = outw::$6 << 4 [31] out::c#3 = HEXTAB[outw::$7] - [32] call out + [32] call out to:outw::@3 outw::@3: scope:[outw] from outw::@2 [33] outw::$9 = byte0 outw::w#2 [34] outw::$10 = outw::$9 & $f [35] out::c#4 = HEXTAB[outw::$10] - [36] call out + [36] call out to:outw::@return outw::@return: scope:[outw] from outw::@3 [37] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from outsw::@2 outw outw::@1 outw::@2 outw::@3 [38] out::c#5 = phi( outsw::@2/'-', outw/out::c#1, outw::@1/out::c#2, outw::@2/out::c#3, outw::@3/out::c#4 ) [38] idx#27 = phi( outsw::@2/idx#31, outw/idx#35, outw::@1/idx#11, outw::@2/idx#11, outw::@3/idx#11 ) @@ -492,44 +492,44 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS -byte idx -byte idx#11 797.5172413793105 -byte idx#27 14106.0 -byte idx#31 53.25 -byte idx#33 151.5 -byte idx#35 278.25 +char idx +char idx#11 // 797.5172413793105 +char idx#27 // 14106.0 +char idx#31 // 53.25 +char idx#33 // 151.5 +char idx#35 // 278.25 void main() -signed word main::sw -signed word main::sw#1 16.5 -signed word main::sw#2 11.0 -word main::w -word main::w#1 16.5 -word main::w#2 11.0 -void out(byte out::c) -byte out::c -byte out::c#1 2002.0 -byte out::c#2 2002.0 -byte out::c#3 2002.0 -byte out::c#4 2002.0 -byte out::c#5 7002.5 -void outsw(signed word outsw::sw) -signed word outsw::sw -signed word outsw::sw#0 78.5 -signed word outsw::sw#1 202.0 -signed word outsw::sw#3 202.0 -void outw(word outw::w) -byte~ outw::$0 2002.0 -byte~ outw::$1 2002.0 -byte~ outw::$10 2002.0 -byte~ outw::$3 2002.0 -byte~ outw::$4 2002.0 -byte~ outw::$6 2002.0 -byte~ outw::$7 2002.0 -byte~ outw::$9 2002.0 -word outw::w -word outw::w#0 22.0 -word outw::w#1 202.0 -word outw::w#2 316.61538461538464 +int main::sw +int main::sw#1 // 16.5 +int main::sw#2 // 11.0 +unsigned int main::w +unsigned int main::w#1 // 16.5 +unsigned int main::w#2 // 11.0 +void out(char c) +char out::c +char out::c#1 // 2002.0 +char out::c#2 // 2002.0 +char out::c#3 // 2002.0 +char out::c#4 // 2002.0 +char out::c#5 // 7002.5 +void outsw(int sw) +int outsw::sw +int outsw::sw#0 // 78.5 +int outsw::sw#1 // 202.0 +int outsw::sw#3 // 202.0 +void outw(unsigned int w) +char outw::$0 // 2002.0 +char outw::$1 // 2002.0 +char outw::$10 // 2002.0 +char outw::$3 // 2002.0 +char outw::$4 // 2002.0 +char outw::$6 // 2002.0 +char outw::$7 // 2002.0 +char outw::$9 // 2002.0 +unsigned int outw::w +unsigned int outw::w#0 // 22.0 +unsigned int outw::w#1 // 202.0 +unsigned int outw::w#2 // 316.61538461538464 Initial phi equivalence classes [ main::sw#2 main::sw#1 ] @@ -583,7 +583,7 @@ Statement [7] outw::w#0 = main::w#2 [ idx#11 main::w#2 outw::w#0 ] ( [ idx#11 m Statement [10] if(main::w#1!=$28) goto main::@2 [ idx#11 main::w#1 ] ( [ idx#11 main::w#1 ] { } ) always clobbers reg byte a Statement [12] if(outsw::sw#0>=0) goto outsw::@1 [ idx#31 outsw::sw#0 ] ( outsw:3 [ main::sw#2 idx#31 outsw::sw#0 ] { { outsw::sw#0 = main::sw#2 } } ) always clobbers reg byte a Statement [15] outsw::sw#1 = - outsw::sw#0 [ idx#11 outsw::sw#1 ] ( outsw:3 [ main::sw#2 idx#11 outsw::sw#1 ] { { outsw::sw#0 = main::sw#2 } } ) always clobbers reg byte a -Statement [17] outw::w#1 = (word)outsw::sw#3 [ idx#33 outw::w#1 ] ( outsw:3 [ main::sw#2 idx#33 outw::w#1 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#33 = idx#35 } } ) always clobbers reg byte a +Statement [17] outw::w#1 = (unsigned int)outsw::sw#3 [ idx#33 outw::w#1 ] ( outsw:3 [ main::sw#2 idx#33 outw::w#1 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#33 = idx#35 } } ) always clobbers reg byte a Statement [22] outw::$1 = outw::$0 << 4 [ outw::w#2 idx#35 outw::$1 ] ( outw:8 [ main::w#2 outw::w#2 idx#35 outw::$1 ] { { outw::w#0 = outw::w#2 main::w#2 } { idx#11 = idx#35 idx#27 } { out::c#1 = out::c#5 } } outsw:3::outw:18 [ main::sw#2 outw::w#2 idx#35 outw::$1 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#27 = idx#35 idx#33 } { out::c#1 = out::c#5 } } ) always clobbers reg byte a Statement [30] outw::$7 = outw::$6 << 4 [ idx#11 outw::w#2 outw::$7 ] ( outw:8 [ main::w#2 idx#11 outw::w#2 outw::$7 ] { { outw::w#0 = outw::w#2 main::w#2 } { idx#11 = idx#35 idx#27 } { out::c#3 = out::c#5 } } outsw:3::outw:18 [ main::sw#2 idx#11 outw::w#2 outw::$7 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#33 = idx#35 } { idx#11 = idx#27 } { out::c#3 = out::c#5 } } ) always clobbers reg byte a Statement [2] outsw::sw#0 = main::sw#2 [ main::sw#2 idx#31 outsw::sw#0 ] ( [ main::sw#2 idx#31 outsw::sw#0 ] { { outsw::sw#0 = main::sw#2 } } ) always clobbers reg byte a @@ -592,7 +592,7 @@ Statement [7] outw::w#0 = main::w#2 [ idx#11 main::w#2 outw::w#0 ] ( [ idx#11 m Statement [10] if(main::w#1!=$28) goto main::@2 [ idx#11 main::w#1 ] ( [ idx#11 main::w#1 ] { } ) always clobbers reg byte a Statement [12] if(outsw::sw#0>=0) goto outsw::@1 [ idx#31 outsw::sw#0 ] ( outsw:3 [ main::sw#2 idx#31 outsw::sw#0 ] { { outsw::sw#0 = main::sw#2 } } ) always clobbers reg byte a Statement [15] outsw::sw#1 = - outsw::sw#0 [ idx#11 outsw::sw#1 ] ( outsw:3 [ main::sw#2 idx#11 outsw::sw#1 ] { { outsw::sw#0 = main::sw#2 } } ) always clobbers reg byte a -Statement [17] outw::w#1 = (word)outsw::sw#3 [ idx#33 outw::w#1 ] ( outsw:3 [ main::sw#2 idx#33 outw::w#1 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#33 = idx#35 } } ) always clobbers reg byte a +Statement [17] outw::w#1 = (unsigned int)outsw::sw#3 [ idx#33 outw::w#1 ] ( outsw:3 [ main::sw#2 idx#33 outw::w#1 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#33 = idx#35 } } ) always clobbers reg byte a Statement [22] outw::$1 = outw::$0 << 4 [ outw::w#2 idx#35 outw::$1 ] ( outw:8 [ main::w#2 outw::w#2 idx#35 outw::$1 ] { { outw::w#0 = outw::w#2 main::w#2 } { idx#11 = idx#35 idx#27 } { out::c#1 = out::c#5 } } outsw:3::outw:18 [ main::sw#2 outw::w#2 idx#35 outw::$1 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#27 = idx#35 idx#33 } { out::c#1 = out::c#5 } } ) always clobbers reg byte a Statement [30] outw::$7 = outw::$6 << 4 [ idx#11 outw::w#2 outw::$7 ] ( outw:8 [ main::w#2 idx#11 outw::w#2 outw::$7 ] { { outw::w#0 = outw::w#2 main::w#2 } { idx#11 = idx#35 idx#27 } { out::c#3 = out::c#5 } } outsw:3::outw:18 [ main::sw#2 idx#11 outw::w#2 outw::$7 ] { { outsw::sw#0 = main::sw#2 } { outw::w#1 = outw::w#2 } { idx#33 = idx#35 } { idx#11 = idx#27 } { out::c#3 = out::c#5 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::sw#2 main::sw#1 ] : zp[2]:2 , @@ -676,7 +676,7 @@ main: { sta.z outsw.sw lda.z sw+1 sta.z outsw.sw+1 - // [3] call outsw + // [3] call outsw jsr outsw jmp __b3 // main::@3 @@ -708,7 +708,7 @@ main: { // main::@2 __b2: // [7] outw::w#0 = main::w#2 - // [8] call outw + // [8] call outw // [20] phi from main::@2 to outw [phi:main::@2->outw] outw_from___b2: // [20] phi idx#35 = idx#11 [phi:main::@2->outw#0] -- register_copy @@ -735,7 +735,7 @@ main: { rts } // outsw -// outsw(signed word zp(4) sw) +// void outsw(__zp(4) int sw) outsw: { .label sw = 4 // [12] if(outsw::sw#0>=0) goto outsw::@1 -- vwsz1_ge_0_then_la1 @@ -746,7 +746,7 @@ outsw: { jmp __b2 // outsw::@2 __b2: - // [14] call out + // [14] call out // [38] phi from outsw::@2 to out [phi:outsw::@2->out] out_from___b2: // [38] phi out::c#5 = '-' [phi:outsw::@2->out#0] -- vbuaa=vbuc1 @@ -772,8 +772,8 @@ outsw: { jmp __b1 // outsw::@1 __b1: - // [17] outw::w#1 = (word)outsw::sw#3 - // [18] call outw + // [17] outw::w#1 = (unsigned int)outsw::sw#3 + // [18] call outw // [20] phi from outsw::@1 to outw [phi:outsw::@1->outw] outw_from___b1: // [20] phi idx#35 = idx#33 [phi:outsw::@1->outw#0] -- register_copy @@ -786,7 +786,7 @@ outsw: { rts } // outw -// outw(word zp(4) w) +// void outw(__zp(4) unsigned int w) outw: { .label w = 4 // [21] outw::$0 = byte1 outw::w#2 -- vbuaa=_byte1_vwuz1 @@ -799,7 +799,7 @@ outw: { // [23] out::c#1 = HEXTAB[outw::$1] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [24] call out + // [24] call out // [38] phi from outw to out [phi:outw->out] out_from_outw: // [38] phi out::c#5 = out::c#1 [phi:outw->out#0] -- register_copy @@ -815,7 +815,7 @@ outw: { // [27] out::c#2 = HEXTAB[outw::$4] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [28] call out + // [28] call out // [38] phi from outw::@1 to out [phi:outw::@1->out] out_from___b1: // [38] phi out::c#5 = out::c#2 [phi:outw::@1->out#0] -- register_copy @@ -834,7 +834,7 @@ outw: { // [31] out::c#3 = HEXTAB[outw::$7] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [32] call out + // [32] call out // [38] phi from outw::@2 to out [phi:outw::@2->out] out_from___b2: // [38] phi out::c#5 = out::c#3 [phi:outw::@2->out#0] -- register_copy @@ -850,7 +850,7 @@ outw: { // [35] out::c#4 = HEXTAB[outw::$10] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [36] call out + // [36] call out // [38] phi from outw::@3 to out [phi:outw::@3->out] out_from___b3: // [38] phi out::c#5 = out::c#4 [phi:outw::@3->out#0] -- register_copy @@ -863,7 +863,7 @@ outw: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // [39] idx#11 = ++ idx#27 -- vbuxx=_inc_vbuxx inx @@ -935,46 +935,46 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* HEXTAB[] = "0123456789abcdef" -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#11 reg byte x 797.5172413793105 -byte idx#27 reg byte x 14106.0 -byte idx#31 reg byte x 53.25 -byte idx#33 reg byte x 151.5 -byte idx#35 reg byte x 278.25 +__constant char HEXTAB[] = "0123456789abcdef" +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#11 // reg byte x 797.5172413793105 +char idx#27 // reg byte x 14106.0 +char idx#31 // reg byte x 53.25 +char idx#33 // reg byte x 151.5 +char idx#35 // reg byte x 278.25 void main() -signed word main::sw -signed word main::sw#1 sw zp[2]:2 16.5 -signed word main::sw#2 sw zp[2]:2 11.0 -word main::w -word main::w#1 w zp[2]:4 16.5 -word main::w#2 w zp[2]:4 11.0 -void out(byte out::c) -byte out::c -byte out::c#1 reg byte a 2002.0 -byte out::c#2 reg byte a 2002.0 -byte out::c#3 reg byte a 2002.0 -byte out::c#4 reg byte a 2002.0 -byte out::c#5 reg byte a 7002.5 -void outsw(signed word outsw::sw) -signed word outsw::sw -signed word outsw::sw#0 sw zp[2]:4 78.5 -signed word outsw::sw#1 sw zp[2]:4 202.0 -signed word outsw::sw#3 sw zp[2]:4 202.0 -void outw(word outw::w) -byte~ outw::$0 reg byte a 2002.0 -byte~ outw::$1 reg byte a 2002.0 -byte~ outw::$10 reg byte a 2002.0 -byte~ outw::$3 reg byte a 2002.0 -byte~ outw::$4 reg byte a 2002.0 -byte~ outw::$6 reg byte a 2002.0 -byte~ outw::$7 reg byte a 2002.0 -byte~ outw::$9 reg byte a 2002.0 -word outw::w -word outw::w#0 w zp[2]:4 22.0 -word outw::w#1 w zp[2]:4 202.0 -word outw::w#2 w zp[2]:4 316.61538461538464 +int main::sw +int main::sw#1 // sw zp[2]:2 16.5 +int main::sw#2 // sw zp[2]:2 11.0 +unsigned int main::w +unsigned int main::w#1 // w zp[2]:4 16.5 +unsigned int main::w#2 // w zp[2]:4 11.0 +void out(char c) +char out::c +char out::c#1 // reg byte a 2002.0 +char out::c#2 // reg byte a 2002.0 +char out::c#3 // reg byte a 2002.0 +char out::c#4 // reg byte a 2002.0 +char out::c#5 // reg byte a 7002.5 +void outsw(int sw) +int outsw::sw +int outsw::sw#0 // sw zp[2]:4 78.5 +int outsw::sw#1 // sw zp[2]:4 202.0 +int outsw::sw#3 // sw zp[2]:4 202.0 +void outw(unsigned int w) +char outw::$0 // reg byte a 2002.0 +char outw::$1 // reg byte a 2002.0 +char outw::$10 // reg byte a 2002.0 +char outw::$3 // reg byte a 2002.0 +char outw::$4 // reg byte a 2002.0 +char outw::$6 // reg byte a 2002.0 +char outw::$7 // reg byte a 2002.0 +char outw::$9 // reg byte a 2002.0 +unsigned int outw::w +unsigned int outw::w#0 // w zp[2]:4 22.0 +unsigned int outw::w#1 // w zp[2]:4 202.0 +unsigned int outw::w#2 // w zp[2]:4 316.61538461538464 zp[2]:2 [ main::sw#2 main::sw#1 ] zp[2]:4 [ main::w#2 main::w#1 outw::w#2 outw::w#0 outw::w#1 outsw::sw#3 outsw::sw#0 outsw::sw#1 ] @@ -1031,7 +1031,7 @@ main: { sta.z outsw.sw lda.z sw+1 sta.z outsw.sw+1 - // [3] call outsw + // [3] call outsw jsr outsw // main::@3 // for(signed int sw: -20..19 ) @@ -1058,7 +1058,7 @@ main: { __b2: // outw(w) // [7] outw::w#0 = main::w#2 - // [8] call outw + // [8] call outw // [20] phi from main::@2 to outw [phi:main::@2->outw] // [20] phi idx#35 = idx#11 [phi:main::@2->outw#0] -- register_copy // [20] phi outw::w#2 = outw::w#0 [phi:main::@2->outw#1] -- register_copy @@ -1082,7 +1082,7 @@ main: { rts } // outsw -// outsw(signed word zp(4) sw) +// void outsw(__zp(4) int sw) outsw: { .label sw = 4 // if(sw<0) @@ -1092,7 +1092,7 @@ outsw: { // [13] phi from outsw to outsw::@2 [phi:outsw->outsw::@2] // outsw::@2 // out('-') - // [14] call out + // [14] call out // [38] phi from outsw::@2 to out [phi:outsw::@2->out] // [38] phi out::c#5 = '-' [phi:outsw::@2->out#0] -- vbuaa=vbuc1 lda #'-' @@ -1114,8 +1114,8 @@ outsw: { // outsw::@1 __b1: // outw((unsigned int)sw) - // [17] outw::w#1 = (word)outsw::sw#3 - // [18] call outw + // [17] outw::w#1 = (unsigned int)outsw::sw#3 + // [18] call outw // [20] phi from outsw::@1 to outw [phi:outsw::@1->outw] // [20] phi idx#35 = idx#33 [phi:outsw::@1->outw#0] -- register_copy // [20] phi outw::w#2 = outw::w#1 [phi:outsw::@1->outw#1] -- register_copy @@ -1126,7 +1126,7 @@ outsw: { rts } // outw -// outw(word zp(4) w) +// void outw(__zp(4) unsigned int w) outw: { .label w = 4 // BYTE1(w) @@ -1142,7 +1142,7 @@ outw: { // [23] out::c#1 = HEXTAB[outw::$1] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [24] call out + // [24] call out // [38] phi from outw to out [phi:outw->out] // [38] phi out::c#5 = out::c#1 [phi:outw->out#0] -- register_copy // [38] phi idx#27 = idx#35 [phi:outw->out#1] -- register_copy @@ -1158,7 +1158,7 @@ outw: { // [27] out::c#2 = HEXTAB[outw::$4] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [28] call out + // [28] call out // [38] phi from outw::@1 to out [phi:outw::@1->out] // [38] phi out::c#5 = out::c#2 [phi:outw::@1->out#0] -- register_copy // [38] phi idx#27 = idx#11 [phi:outw::@1->out#1] -- register_copy @@ -1177,7 +1177,7 @@ outw: { // [31] out::c#3 = HEXTAB[outw::$7] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [32] call out + // [32] call out // [38] phi from outw::@2 to out [phi:outw::@2->out] // [38] phi out::c#5 = out::c#3 [phi:outw::@2->out#0] -- register_copy // [38] phi idx#27 = idx#11 [phi:outw::@2->out#1] -- register_copy @@ -1193,7 +1193,7 @@ outw: { // [35] out::c#4 = HEXTAB[outw::$10] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEXTAB,y - // [36] call out + // [36] call out // [38] phi from outw::@3 to out [phi:outw::@3->out] // [38] phi out::c#5 = out::c#4 [phi:outw::@3->out#0] -- register_copy // [38] phi idx#27 = idx#11 [phi:outw::@3->out#1] -- register_copy @@ -1204,7 +1204,7 @@ outw: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; // [39] idx#11 = ++ idx#27 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/liverange-10.sym b/src/test/ref/liverange-10.sym index 8abcd1303..270290f6e 100644 --- a/src/test/ref/liverange-10.sym +++ b/src/test/ref/liverange-10.sym @@ -1,43 +1,43 @@ -constant byte* HEXTAB[] = "0123456789abcdef" -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#11 reg byte x 797.5172413793105 -byte idx#27 reg byte x 14106.0 -byte idx#31 reg byte x 53.25 -byte idx#33 reg byte x 151.5 -byte idx#35 reg byte x 278.25 +__constant char HEXTAB[] = "0123456789abcdef" +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#11 // reg byte x 797.5172413793105 +char idx#27 // reg byte x 14106.0 +char idx#31 // reg byte x 53.25 +char idx#33 // reg byte x 151.5 +char idx#35 // reg byte x 278.25 void main() -signed word main::sw -signed word main::sw#1 sw zp[2]:2 16.5 -signed word main::sw#2 sw zp[2]:2 11.0 -word main::w -word main::w#1 w zp[2]:4 16.5 -word main::w#2 w zp[2]:4 11.0 -void out(byte out::c) -byte out::c -byte out::c#1 reg byte a 2002.0 -byte out::c#2 reg byte a 2002.0 -byte out::c#3 reg byte a 2002.0 -byte out::c#4 reg byte a 2002.0 -byte out::c#5 reg byte a 7002.5 -void outsw(signed word outsw::sw) -signed word outsw::sw -signed word outsw::sw#0 sw zp[2]:4 78.5 -signed word outsw::sw#1 sw zp[2]:4 202.0 -signed word outsw::sw#3 sw zp[2]:4 202.0 -void outw(word outw::w) -byte~ outw::$0 reg byte a 2002.0 -byte~ outw::$1 reg byte a 2002.0 -byte~ outw::$10 reg byte a 2002.0 -byte~ outw::$3 reg byte a 2002.0 -byte~ outw::$4 reg byte a 2002.0 -byte~ outw::$6 reg byte a 2002.0 -byte~ outw::$7 reg byte a 2002.0 -byte~ outw::$9 reg byte a 2002.0 -word outw::w -word outw::w#0 w zp[2]:4 22.0 -word outw::w#1 w zp[2]:4 202.0 -word outw::w#2 w zp[2]:4 316.61538461538464 +int main::sw +int main::sw#1 // sw zp[2]:2 16.5 +int main::sw#2 // sw zp[2]:2 11.0 +unsigned int main::w +unsigned int main::w#1 // w zp[2]:4 16.5 +unsigned int main::w#2 // w zp[2]:4 11.0 +void out(char c) +char out::c +char out::c#1 // reg byte a 2002.0 +char out::c#2 // reg byte a 2002.0 +char out::c#3 // reg byte a 2002.0 +char out::c#4 // reg byte a 2002.0 +char out::c#5 // reg byte a 7002.5 +void outsw(int sw) +int outsw::sw +int outsw::sw#0 // sw zp[2]:4 78.5 +int outsw::sw#1 // sw zp[2]:4 202.0 +int outsw::sw#3 // sw zp[2]:4 202.0 +void outw(unsigned int w) +char outw::$0 // reg byte a 2002.0 +char outw::$1 // reg byte a 2002.0 +char outw::$10 // reg byte a 2002.0 +char outw::$3 // reg byte a 2002.0 +char outw::$4 // reg byte a 2002.0 +char outw::$6 // reg byte a 2002.0 +char outw::$7 // reg byte a 2002.0 +char outw::$9 // reg byte a 2002.0 +unsigned int outw::w +unsigned int outw::w#0 // w zp[2]:4 22.0 +unsigned int outw::w#1 // w zp[2]:4 202.0 +unsigned int outw::w#2 // w zp[2]:4 316.61538461538464 zp[2]:2 [ main::sw#2 main::sw#1 ] zp[2]:4 [ main::w#2 main::w#1 outw::w#2 outw::w#0 outw::w#1 outsw::sw#3 outsw::sw#0 outsw::sw#1 ] diff --git a/src/test/ref/liverange-2.asm b/src/test/ref/liverange-2.asm index 8f967724b..98c40857c 100644 --- a/src/test/ref/liverange-2.asm +++ b/src/test/ref/liverange-2.asm @@ -41,7 +41,7 @@ main: { // } rts } -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // SCREEN[b] = ca sta SCREEN,x diff --git a/src/test/ref/liverange-2.cfg b/src/test/ref/liverange-2.cfg index 330ea92be..497d57b04 100644 --- a/src/test/ref/liverange-2.cfg +++ b/src/test/ref/liverange-2.cfg @@ -14,7 +14,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] SCREEN[print::b#0] = print::ca#0 to:print::@return diff --git a/src/test/ref/liverange-2.log b/src/test/ref/liverange-2.log index 8fb7b42ff..cff0e9f7a 100644 --- a/src/test/ref/liverange-2.log +++ b/src/test/ref/liverange-2.log @@ -22,7 +22,7 @@ main::@3: scope:[main] from main::@2 main::@6 main::ca#0 = main::c#2 + main::a#2 print::b#0 = main::b#2 print::ca#0 = main::ca#0 - call print + call print to:main::@6 main::@6: scope:[main] from main::@3 main::b#5 = phi( main::@3/main::b#2 ) @@ -49,7 +49,7 @@ main::@return: scope:[main] from main::@5 return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 print::b#1 = phi( main::@3/print::b#0 ) print::ca#1 = phi( main::@3/print::ca#0 ) @@ -61,7 +61,7 @@ print::@return: scope:[print] from print void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -70,44 +70,44 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::a#6 -byte main::a#7 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::ca -byte main::ca#0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 -byte print::b#1 -byte print::ca -byte print::ca#0 -byte print::ca#1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::a#5 +char main::a#6 +char main::a#7 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::ca +char main::ca#0 +void print(char b , char ca) +char print::b +char print::b#0 +char print::b#1 +char print::ca +char print::ca#0 +char print::ca#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::c#2 = main::c#3 Alias main::a#2 = main::a#5 main::a#6 main::a#3 @@ -147,9 +147,9 @@ Simplifying constant integer cast $65 Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::a#0 Inlining constant with var siblings main::b#0 @@ -192,7 +192,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -210,7 +210,7 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] SCREEN[print::b#0] = print::ca#0 to:print::@return @@ -221,22 +221,22 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 16.5 -byte main::a#7 93.0 -byte main::b -byte main::b#1 151.5 -byte main::b#4 150.375 -byte main::c -byte main::c#1 1501.5 -byte main::c#2 600.5999999999999 -byte main::ca -byte main::ca#0 1001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 5501.0 -byte print::ca -byte print::ca#0 11002.0 +char main::a +char main::a#1 // 16.5 +char main::a#7 // 93.0 +char main::b +char main::b#1 // 151.5 +char main::b#4 // 150.375 +char main::c +char main::c#1 // 1501.5 +char main::c#2 // 600.5999999999999 +char main::ca +char main::ca#0 // 1001.0 +void print(char b , char ca) +char print::b +char print::b#0 // 5501.0 +char print::ca +char print::ca#0 // 11002.0 Initial phi equivalence classes [ main::a#7 main::a#1 ] @@ -342,7 +342,7 @@ main: { adc.z a // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print jmp __b6 // main::@6 @@ -376,7 +376,7 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // [15] SCREEN[print::b#0] = print::ca#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x @@ -420,24 +420,24 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 5501.0 -byte print::ca -byte print::ca#0 reg byte a 11002.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 5501.0 +char print::ca +char print::ca#0 // reg byte a 11002.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] @@ -498,7 +498,7 @@ main: { // print(b, ca) // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print // main::@6 // for( char c: 0..100 ) @@ -528,7 +528,7 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // SCREEN[b] = ca // [15] SCREEN[print::b#0] = print::ca#0 -- pbuc1_derefidx_vbuxx=vbuaa diff --git a/src/test/ref/liverange-2.sym b/src/test/ref/liverange-2.sym index ff3369970..f7fb119b5 100644 --- a/src/test/ref/liverange-2.sym +++ b/src/test/ref/liverange-2.sym @@ -1,21 +1,21 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 5501.0 -byte print::ca -byte print::ca#0 reg byte a 11002.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 5501.0 +char print::ca +char print::ca#0 // reg byte a 11002.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] diff --git a/src/test/ref/liverange-3.asm b/src/test/ref/liverange-3.asm index d5478d067..e25b517d0 100644 --- a/src/test/ref/liverange-3.asm +++ b/src/test/ref/liverange-3.asm @@ -41,7 +41,7 @@ main: { // } rts } -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // (*(SCREEN+999))++; inc SCREEN+$3e7 diff --git a/src/test/ref/liverange-3.cfg b/src/test/ref/liverange-3.cfg index bca8e0e5a..c4a642150 100644 --- a/src/test/ref/liverange-3.cfg +++ b/src/test/ref/liverange-3.cfg @@ -14,7 +14,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) [16] SCREEN[print::b#0] = print::ca#0 diff --git a/src/test/ref/liverange-3.log b/src/test/ref/liverange-3.log index 47926f7da..d62e0c4dd 100644 --- a/src/test/ref/liverange-3.log +++ b/src/test/ref/liverange-3.log @@ -22,7 +22,7 @@ main::@3: scope:[main] from main::@2 main::@6 main::ca#0 = main::c#2 + main::a#2 print::b#0 = main::b#2 print::ca#0 = main::ca#0 - call print + call print to:main::@6 main::@6: scope:[main] from main::@3 main::b#5 = phi( main::@3/main::b#2 ) @@ -49,7 +49,7 @@ main::@return: scope:[main] from main::@5 return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 print::b#1 = phi( main::@3/print::b#0 ) print::ca#1 = phi( main::@3/print::ca#0 ) @@ -62,7 +62,7 @@ print::@return: scope:[print] from print void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -71,49 +71,49 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::a#6 -byte main::a#7 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::ca -byte main::ca#0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 -byte print::b#1 -byte print::ca -byte print::ca#0 -byte print::ca#1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::a#5 +char main::a#6 +char main::a#7 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::ca +char main::ca#0 +void print(char b , char ca) +char print::b +char print::b#0 +char print::b#1 +char print::ca +char print::ca#0 +char print::ca#1 Adding number conversion cast (unumber) $3e7 in *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e7 +Finalized unsigned number type (unsigned int) $3e7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::c#2 = main::c#3 Alias main::a#2 = main::a#5 main::a#6 main::a#3 @@ -153,9 +153,9 @@ Simplifying constant integer cast $65 Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::a#0 Inlining constant with var siblings main::b#0 @@ -198,7 +198,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -216,7 +216,7 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) [16] SCREEN[print::b#0] = print::ca#0 @@ -228,22 +228,22 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 16.5 -byte main::a#7 93.0 -byte main::b -byte main::b#1 151.5 -byte main::b#4 150.375 -byte main::c -byte main::c#1 1501.5 -byte main::c#2 600.5999999999999 -byte main::ca -byte main::ca#0 1001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 3667.333333333333 -byte print::ca -byte print::ca#0 5501.0 +char main::a +char main::a#1 // 16.5 +char main::a#7 // 93.0 +char main::b +char main::b#1 // 151.5 +char main::b#4 // 150.375 +char main::c +char main::c#1 // 1501.5 +char main::c#2 // 600.5999999999999 +char main::ca +char main::ca#0 // 1001.0 +void print(char b , char ca) +char print::b +char print::b#0 // 3667.333333333333 +char print::ca +char print::ca#0 // 5501.0 Initial phi equivalence classes [ main::a#7 main::a#1 ] @@ -349,7 +349,7 @@ main: { adc.z a // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print jmp __b6 // main::@6 @@ -383,7 +383,7 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // [15] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) -- _deref_pbuc1=_inc__deref_pbuc1 inc SCREEN+$3e7 @@ -429,24 +429,24 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 3667.333333333333 -byte print::ca -byte print::ca#0 reg byte a 5501.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 3667.333333333333 +char print::ca +char print::ca#0 // reg byte a 5501.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] @@ -507,7 +507,7 @@ main: { // print(b, ca) // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print // main::@6 // for( char c: 0..100 ) @@ -537,7 +537,7 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // (*(SCREEN+999))++; // [15] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) -- _deref_pbuc1=_inc__deref_pbuc1 diff --git a/src/test/ref/liverange-3.sym b/src/test/ref/liverange-3.sym index df023eb6c..70c218ad0 100644 --- a/src/test/ref/liverange-3.sym +++ b/src/test/ref/liverange-3.sym @@ -1,21 +1,21 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 3667.333333333333 -byte print::ca -byte print::ca#0 reg byte a 5501.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 3667.333333333333 +char print::ca +char print::ca#0 // reg byte a 5501.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] diff --git a/src/test/ref/liverange-4.asm b/src/test/ref/liverange-4.asm index b915adbcc..adb5029a2 100644 --- a/src/test/ref/liverange-4.asm +++ b/src/test/ref/liverange-4.asm @@ -41,14 +41,14 @@ main: { // } rts } -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // out(b, ca) jsr out // } rts } -// out(byte register(X) b, byte register(A) ca) +// void out(__register(X) char b, __register(A) char ca) out: { // SCREEN[b] = ca sta SCREEN,x diff --git a/src/test/ref/liverange-4.cfg b/src/test/ref/liverange-4.cfg index 2f802a2b8..09383c47d 100644 --- a/src/test/ref/liverange-4.cfg +++ b/src/test/ref/liverange-4.cfg @@ -14,7 +14,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -32,17 +32,17 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] out::b#0 = print::b#0 [16] out::ca#0 = print::ca#0 - [17] call out + [17] call out to:print::@return print::@return: scope:[print] from print [18] return to:@return -void out(byte out::b , byte out::ca) +void out(char b , char ca) out: scope:[out] from print [19] SCREEN[out::b#0] = out::ca#0 to:out::@return diff --git a/src/test/ref/liverange-4.log b/src/test/ref/liverange-4.log index a7b44011a..23a52bf6f 100644 --- a/src/test/ref/liverange-4.log +++ b/src/test/ref/liverange-4.log @@ -22,7 +22,7 @@ main::@3: scope:[main] from main::@2 main::@6 main::ca#0 = main::c#2 + main::a#2 print::b#0 = main::b#2 print::ca#0 = main::ca#0 - call print + call print to:main::@6 main::@6: scope:[main] from main::@3 main::b#5 = phi( main::@3/main::b#2 ) @@ -49,13 +49,13 @@ main::@return: scope:[main] from main::@5 return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 print::ca#1 = phi( main::@3/print::ca#0 ) print::b#1 = phi( main::@3/print::b#0 ) out::b#0 = print::b#1 out::ca#0 = print::ca#1 - call out + call out to:print::@1 print::@1: scope:[print] from print to:print::@return @@ -63,7 +63,7 @@ print::@return: scope:[print] from print::@1 return to:@return -void out(byte out::b , byte out::ca) +void out(char b , char ca) out: scope:[out] from print out::b#1 = phi( print/out::b#0 ) out::ca#1 = phi( print/out::ca#0 ) @@ -75,7 +75,7 @@ out::@return: scope:[out] from out void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -84,51 +84,51 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::a#6 -byte main::a#7 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::ca -byte main::ca#0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 -byte out::b#1 -byte out::ca -byte out::ca#0 -byte out::ca#1 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 -byte print::b#1 -byte print::ca -byte print::ca#0 -byte print::ca#1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::a#5 +char main::a#6 +char main::a#7 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::ca +char main::ca#0 +void out(char b , char ca) +char out::b +char out::b#0 +char out::b#1 +char out::ca +char out::ca#0 +char out::ca#1 +void print(char b , char ca) +char print::b +char print::b#0 +char print::b#1 +char print::ca +char print::ca#0 +char print::ca#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::c#2 = main::c#3 Alias main::a#2 = main::a#5 main::a#6 main::a#3 @@ -170,9 +170,9 @@ Simplifying constant integer cast $65 Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::a#0 Inlining constant with var siblings main::b#0 @@ -218,7 +218,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -236,17 +236,17 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] out::b#0 = print::b#0 [16] out::ca#0 = print::ca#0 - [17] call out + [17] call out to:print::@return print::@return: scope:[print] from print [18] return to:@return -void out(byte out::b , byte out::ca) +void out(char b , char ca) out: scope:[out] from print [19] SCREEN[out::b#0] = out::ca#0 to:out::@return @@ -257,27 +257,27 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 16.5 -byte main::a#7 93.0 -byte main::b -byte main::b#1 151.5 -byte main::b#4 150.375 -byte main::c -byte main::c#1 1501.5 -byte main::c#2 600.5999999999999 -byte main::ca -byte main::ca#0 1001.0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 55001.0 -byte out::ca -byte out::ca#0 110002.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 5501.0 -byte print::ca -byte print::ca#0 5501.0 +char main::a +char main::a#1 // 16.5 +char main::a#7 // 93.0 +char main::b +char main::b#1 // 151.5 +char main::b#4 // 150.375 +char main::c +char main::c#1 // 1501.5 +char main::c#2 // 600.5999999999999 +char main::ca +char main::ca#0 // 1001.0 +void out(char b , char ca) +char out::b +char out::b#0 // 55001.0 +char out::ca +char out::ca#0 // 110002.0 +void print(char b , char ca) +char print::b +char print::b#0 // 5501.0 +char print::ca +char print::ca#0 // 5501.0 Initial phi equivalence classes [ main::a#7 main::a#1 ] @@ -393,7 +393,7 @@ main: { adc.z a // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print jmp __b6 // main::@6 @@ -427,11 +427,11 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // [15] out::b#0 = print::b#0 // [16] out::ca#0 = print::ca#0 - // [17] call out + // [17] call out jsr out jmp __breturn // print::@return @@ -440,7 +440,7 @@ print: { rts } // out -// out(byte register(X) b, byte register(A) ca) +// void out(__register(X) char b, __register(A) char ca) out: { // [19] SCREEN[out::b#0] = out::ca#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x @@ -486,29 +486,29 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 reg byte x 55001.0 -byte out::ca -byte out::ca#0 reg byte a 110002.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 5501.0 -byte print::ca -byte print::ca#0 reg byte a 5501.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void out(char b , char ca) +char out::b +char out::b#0 // reg byte x 55001.0 +char out::ca +char out::ca#0 // reg byte a 110002.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 5501.0 +char print::ca +char print::ca#0 // reg byte a 5501.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] @@ -571,7 +571,7 @@ main: { // print(b, ca) // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print // main::@6 // for( char c: 0..100 ) @@ -601,12 +601,12 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // out(b, ca) // [15] out::b#0 = print::b#0 // [16] out::ca#0 = print::ca#0 - // [17] call out + // [17] call out jsr out // print::@return // } @@ -614,7 +614,7 @@ print: { rts } // out -// out(byte register(X) b, byte register(A) ca) +// void out(__register(X) char b, __register(A) char ca) out: { // SCREEN[b] = ca // [19] SCREEN[out::b#0] = out::ca#0 -- pbuc1_derefidx_vbuxx=vbuaa diff --git a/src/test/ref/liverange-4.sym b/src/test/ref/liverange-4.sym index b08e20f1b..4ddbfe34a 100644 --- a/src/test/ref/liverange-4.sym +++ b/src/test/ref/liverange-4.sym @@ -1,26 +1,26 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 reg byte x 55001.0 -byte out::ca -byte out::ca#0 reg byte a 110002.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 5501.0 -byte print::ca -byte print::ca#0 reg byte a 5501.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void out(char b , char ca) +char out::b +char out::b#0 // reg byte x 55001.0 +char out::ca +char out::ca#0 // reg byte a 110002.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 5501.0 +char print::ca +char print::ca#0 // reg byte a 5501.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] diff --git a/src/test/ref/liverange-5.asm b/src/test/ref/liverange-5.asm index 15fb4b050..86e2e219f 100644 --- a/src/test/ref/liverange-5.asm +++ b/src/test/ref/liverange-5.asm @@ -41,14 +41,14 @@ main: { // } rts } -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // out(b, ca) jsr out // } rts } -// out(byte register(X) b, byte register(A) ca) +// void out(__register(X) char b, __register(A) char ca) out: { // (*(SCREEN+999))++; inc SCREEN+$3e7 diff --git a/src/test/ref/liverange-5.cfg b/src/test/ref/liverange-5.cfg index 66e6fe47f..ce2f61cc6 100644 --- a/src/test/ref/liverange-5.cfg +++ b/src/test/ref/liverange-5.cfg @@ -14,7 +14,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -32,17 +32,17 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] out::b#0 = print::b#0 [16] out::ca#0 = print::ca#0 - [17] call out + [17] call out to:print::@return print::@return: scope:[print] from print [18] return to:@return -void out(byte out::b , byte out::ca) +void out(char b , char ca) out: scope:[out] from print [19] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) [20] SCREEN[out::b#0] = out::ca#0 diff --git a/src/test/ref/liverange-5.log b/src/test/ref/liverange-5.log index cff4f1e18..b912904ea 100644 --- a/src/test/ref/liverange-5.log +++ b/src/test/ref/liverange-5.log @@ -22,7 +22,7 @@ main::@3: scope:[main] from main::@2 main::@6 main::ca#0 = main::c#2 + main::a#2 print::b#0 = main::b#2 print::ca#0 = main::ca#0 - call print + call print to:main::@6 main::@6: scope:[main] from main::@3 main::b#5 = phi( main::@3/main::b#2 ) @@ -49,13 +49,13 @@ main::@return: scope:[main] from main::@5 return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 print::ca#1 = phi( main::@3/print::ca#0 ) print::b#1 = phi( main::@3/print::b#0 ) out::b#0 = print::b#1 out::ca#0 = print::ca#1 - call out + call out to:print::@1 print::@1: scope:[print] from print to:print::@return @@ -63,7 +63,7 @@ print::@return: scope:[print] from print::@1 return to:@return -void out(byte out::b , byte out::ca) +void out(char b , char ca) out: scope:[out] from print out::b#1 = phi( print/out::b#0 ) out::ca#1 = phi( print/out::ca#0 ) @@ -76,7 +76,7 @@ out::@return: scope:[out] from out void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -85,56 +85,56 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::a#6 -byte main::a#7 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::ca -byte main::ca#0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 -byte out::b#1 -byte out::ca -byte out::ca#0 -byte out::ca#1 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 -byte print::b#1 -byte print::ca -byte print::ca#0 -byte print::ca#1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::a#5 +char main::a#6 +char main::a#7 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::ca +char main::ca#0 +void out(char b , char ca) +char out::b +char out::b#0 +char out::b#1 +char out::ca +char out::ca#0 +char out::ca#1 +void print(char b , char ca) +char print::b +char print::b#0 +char print::b#1 +char print::ca +char print::ca#0 +char print::ca#1 Adding number conversion cast (unumber) $3e7 in *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e7 +Finalized unsigned number type (unsigned int) $3e7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::c#2 = main::c#3 Alias main::a#2 = main::a#5 main::a#6 main::a#3 @@ -176,9 +176,9 @@ Simplifying constant integer cast $65 Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::a#0 Inlining constant with var siblings main::b#0 @@ -224,7 +224,7 @@ main::@3: scope:[main] from main::@2 main::@6 [4] main::ca#0 = main::c#2 + main::a#7 [5] print::b#0 = main::b#4 [6] print::ca#0 = main::ca#0 - [7] call print + [7] call print to:main::@6 main::@6: scope:[main] from main::@3 [8] main::c#1 = ++ main::c#2 @@ -242,17 +242,17 @@ main::@return: scope:[main] from main::@5 [14] return to:@return -void print(byte print::b , byte print::ca) +void print(char b , char ca) print: scope:[print] from main::@3 [15] out::b#0 = print::b#0 [16] out::ca#0 = print::ca#0 - [17] call out + [17] call out to:print::@return print::@return: scope:[print] from print [18] return to:@return -void out(byte out::b , byte out::ca) +void out(char b , char ca) out: scope:[out] from print [19] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) [20] SCREEN[out::b#0] = out::ca#0 @@ -264,27 +264,27 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS void main() -byte main::a -byte main::a#1 16.5 -byte main::a#7 93.0 -byte main::b -byte main::b#1 151.5 -byte main::b#4 150.375 -byte main::c -byte main::c#1 1501.5 -byte main::c#2 600.5999999999999 -byte main::ca -byte main::ca#0 1001.0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 36667.33333333333 -byte out::ca -byte out::ca#0 55001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 5501.0 -byte print::ca -byte print::ca#0 5501.0 +char main::a +char main::a#1 // 16.5 +char main::a#7 // 93.0 +char main::b +char main::b#1 // 151.5 +char main::b#4 // 150.375 +char main::c +char main::c#1 // 1501.5 +char main::c#2 // 600.5999999999999 +char main::ca +char main::ca#0 // 1001.0 +void out(char b , char ca) +char out::b +char out::b#0 // 36667.33333333333 +char out::ca +char out::ca#0 // 55001.0 +void print(char b , char ca) +char print::b +char print::b#0 // 5501.0 +char print::ca +char print::ca#0 // 5501.0 Initial phi equivalence classes [ main::a#7 main::a#1 ] @@ -400,7 +400,7 @@ main: { adc.z a // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print jmp __b6 // main::@6 @@ -434,11 +434,11 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // [15] out::b#0 = print::b#0 // [16] out::ca#0 = print::ca#0 - // [17] call out + // [17] call out jsr out jmp __breturn // print::@return @@ -447,7 +447,7 @@ print: { rts } // out -// out(byte register(X) b, byte register(A) ca) +// void out(__register(X) char b, __register(A) char ca) out: { // [19] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) -- _deref_pbuc1=_inc__deref_pbuc1 inc SCREEN+$3e7 @@ -495,29 +495,29 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 reg byte x 36667.33333333333 -byte out::ca -byte out::ca#0 reg byte a 55001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 5501.0 -byte print::ca -byte print::ca#0 reg byte a 5501.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void out(char b , char ca) +char out::b +char out::b#0 // reg byte x 36667.33333333333 +char out::ca +char out::ca#0 // reg byte a 55001.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 5501.0 +char print::ca +char print::ca#0 // reg byte a 5501.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] @@ -580,7 +580,7 @@ main: { // print(b, ca) // [5] print::b#0 = main::b#4 // [6] print::ca#0 = main::ca#0 - // [7] call print + // [7] call print jsr print // main::@6 // for( char c: 0..100 ) @@ -610,12 +610,12 @@ main: { rts } // print -// print(byte register(X) b, byte register(A) ca) +// void print(__register(X) char b, __register(A) char ca) print: { // out(b, ca) // [15] out::b#0 = print::b#0 // [16] out::ca#0 = print::ca#0 - // [17] call out + // [17] call out jsr out // print::@return // } @@ -623,7 +623,7 @@ print: { rts } // out -// out(byte register(X) b, byte register(A) ca) +// void out(__register(X) char b, __register(A) char ca) out: { // (*(SCREEN+999))++; // [19] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) -- _deref_pbuc1=_inc__deref_pbuc1 diff --git a/src/test/ref/liverange-5.sym b/src/test/ref/liverange-5.sym index 3d863610f..bf42ec512 100644 --- a/src/test/ref/liverange-5.sym +++ b/src/test/ref/liverange-5.sym @@ -1,26 +1,26 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#7 a zp[1]:2 93.0 -byte main::b -byte main::b#1 reg byte x 151.5 -byte main::b#4 reg byte x 150.375 -byte main::c -byte main::c#1 reg byte y 1501.5 -byte main::c#2 reg byte y 600.5999999999999 -byte main::ca -byte main::ca#0 reg byte a 1001.0 -void out(byte out::b , byte out::ca) -byte out::b -byte out::b#0 reg byte x 36667.33333333333 -byte out::ca -byte out::ca#0 reg byte a 55001.0 -void print(byte print::b , byte print::ca) -byte print::b -byte print::b#0 reg byte x 5501.0 -byte print::ca -byte print::ca#0 reg byte a 5501.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#7 // a zp[1]:2 93.0 +char main::b +char main::b#1 // reg byte x 151.5 +char main::b#4 // reg byte x 150.375 +char main::c +char main::c#1 // reg byte y 1501.5 +char main::c#2 // reg byte y 600.5999999999999 +char main::ca +char main::ca#0 // reg byte a 1001.0 +void out(char b , char ca) +char out::b +char out::b#0 // reg byte x 36667.33333333333 +char out::ca +char out::ca#0 // reg byte a 55001.0 +void print(char b , char ca) +char print::b +char print::b#0 // reg byte x 5501.0 +char print::ca +char print::ca#0 // reg byte a 5501.0 zp[1]:2 [ main::a#7 main::a#1 ] reg byte x [ main::b#4 main::b#1 ] diff --git a/src/test/ref/liverange-6.asm b/src/test/ref/liverange-6.asm index 9d56d377b..4f98cab9e 100644 --- a/src/test/ref/liverange-6.asm +++ b/src/test/ref/liverange-6.asm @@ -24,7 +24,7 @@ main: { // } rts } -// out(byte register(A) c) +// void out(__register(A) char c) out: { // SCREEN[idx++] = c sta SCREEN,x diff --git a/src/test/ref/liverange-6.cfg b/src/test/ref/liverange-6.cfg index b593cb958..4a1375750 100644 --- a/src/test/ref/liverange-6.cfg +++ b/src/test/ref/liverange-6.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#13 = phi( main/0, main::@2/idx#10 ) [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] out::c#0 = msg[main::i#2] - [3] call out + [3] call out to:main::@2 main::@2: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -17,7 +17,7 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main::@1 [7] SCREEN[idx#13] = out::c#0 [8] idx#10 = ++ idx#13 diff --git a/src/test/ref/liverange-6.log b/src/test/ref/liverange-6.log index 6aead52f9..10ee257b7 100644 --- a/src/test/ref/liverange-6.log +++ b/src/test/ref/liverange-6.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@2 idx#13 = phi( main/idx#15, main::@2/idx#0 ) main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) out::c#0 = msg[main::i#2] - call out + call out to:main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main::@1 idx#9 = phi( main::@1/idx#13 ) out::c#1 = phi( main::@1/out::c#0 ) @@ -48,7 +48,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#14 = phi( __start::__init1/idx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#11 = phi( __start::@1/idx#1 ) @@ -61,39 +61,39 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* msg[] = "hello world!" -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char msg[] = "hello world!" +void out(char c) +char out::c +char out::c#0 +char out::c#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Alias idx#0 = idx#7 idx#8 idx#1 @@ -125,7 +125,7 @@ Adding number conversion cast (unumber) $c in [4] if(main::i#1!=$c) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings idx#14 @@ -154,7 +154,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#13 = phi( main/0, main::@2/idx#10 ) [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] out::c#0 = msg[main::i#2] - [3] call out + [3] call out to:main::@2 main::@2: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -164,7 +164,7 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from main::@1 [7] SCREEN[idx#13] = out::c#0 [8] idx#10 = ++ idx#13 @@ -175,16 +175,16 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS -byte idx -byte idx#10 22.4 -byte idx#13 71.0 +char idx +char idx#10 // 22.4 +char idx#13 // 71.0 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 112.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +void out(char c) +char out::c +char out::c#0 // 112.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -245,7 +245,7 @@ main: { __b1: // [2] out::c#0 = msg[main::i#2] -- vbuaa=pbuc1_derefidx_vbuyy lda msg,y - // [3] call out + // [3] call out jsr out jmp __b2 // main::@2 @@ -262,7 +262,7 @@ main: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // [7] SCREEN[idx#13] = out::c#0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x @@ -297,18 +297,18 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#10 reg byte x 22.4 -byte idx#13 reg byte x 71.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#10 // reg byte x 22.4 +char idx#13 // reg byte x 71.0 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -constant byte* msg[] = "hello world!" -void out(byte out::c) -byte out::c -byte out::c#0 reg byte a 112.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +__constant char msg[] = "hello world!" +void out(char c) +char out::c +char out::c#0 // reg byte a 112.0 reg byte y [ main::i#2 main::i#1 ] reg byte x [ idx#13 idx#10 ] @@ -348,7 +348,7 @@ main: { // out(msg[i]) // [2] out::c#0 = msg[main::i#2] -- vbuaa=pbuc1_derefidx_vbuyy lda msg,y - // [3] call out + // [3] call out jsr out // main::@2 // for( byte i: 0..11) @@ -363,7 +363,7 @@ main: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // SCREEN[idx++] = c // [7] SCREEN[idx#13] = out::c#0 -- pbuc1_derefidx_vbuxx=vbuaa diff --git a/src/test/ref/liverange-6.sym b/src/test/ref/liverange-6.sym index f7dc38816..872dfde59 100644 --- a/src/test/ref/liverange-6.sym +++ b/src/test/ref/liverange-6.sym @@ -1,15 +1,15 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#10 reg byte x 22.4 -byte idx#13 reg byte x 71.0 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#10 // reg byte x 22.4 +char idx#13 // reg byte x 71.0 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -constant byte* msg[] = "hello world!" -void out(byte out::c) -byte out::c -byte out::c#0 reg byte a 112.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +__constant char msg[] = "hello world!" +void out(char c) +char out::c +char out::c#0 // reg byte a 112.0 reg byte y [ main::i#2 main::i#1 ] reg byte x [ idx#13 idx#10 ] diff --git a/src/test/ref/liverange-7.asm b/src/test/ref/liverange-7.asm index 4d5289e58..e25f577dd 100644 --- a/src/test/ref/liverange-7.asm +++ b/src/test/ref/liverange-7.asm @@ -24,14 +24,14 @@ main: { // } rts } -// out2(byte register(A) c) +// void out2(__register(A) char c) out2: { // out(c) jsr out // } rts } -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; inx diff --git a/src/test/ref/liverange-7.cfg b/src/test/ref/liverange-7.cfg index 6375fcaf6..71f17b358 100644 --- a/src/test/ref/liverange-7.cfg +++ b/src/test/ref/liverange-7.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#17 = phi( main/0, main::@2/idx#14 ) [1] main::c#2 = phi( main/0, main::@2/main::c#1 ) [2] out2::c#0 = main::c#2 - [3] call out2 + [3] call out2 to:main::@2 main::@2: scope:[main] from main::@1 [4] main::c#1 = ++ main::c#2 @@ -17,16 +17,16 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void out2(byte out2::c) +void out2(char c) out2: scope:[out2] from main::@1 [7] out::c#0 = out2::c#0 - [8] call out + [8] call out to:out2::@return out2::@return: scope:[out2] from out2 [9] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from out2 [10] idx#14 = ++ idx#17 [11] SCREEN[idx#14] = out::c#0 diff --git a/src/test/ref/liverange-7.log b/src/test/ref/liverange-7.log index ff667de0e..9658a5656 100644 --- a/src/test/ref/liverange-7.log +++ b/src/test/ref/liverange-7.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@2 idx#17 = phi( main/idx#20, main::@2/idx#0 ) main::c#2 = phi( main/main::c#0, main::@2/main::c#1 ) out2::c#0 = main::c#2 - call out2 + call out2 to:main::@2 main::@2: scope:[main] from main::@1 main::c#3 = phi( main::@1/main::c#2 ) @@ -27,12 +27,12 @@ main::@return: scope:[main] from main::@2 return to:@return -void out2(byte out2::c) +void out2(char c) out2: scope:[out2] from main::@1 idx#18 = phi( main::@1/idx#17 ) out2::c#1 = phi( main::@1/out2::c#0 ) out::c#0 = out2::c#1 - call out + call out to:out2::@1 out2::@1: scope:[out2] from out2 idx#11 = phi( out2/idx#5 ) @@ -44,7 +44,7 @@ out2::@return: scope:[out2] from out2::@1 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from out2 out::c#1 = phi( out2/out::c#0 ) idx#13 = phi( out2/idx#18 ) @@ -65,7 +65,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#19 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#1 ) @@ -78,47 +78,47 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 -byte out2::c#1 +bool main::$1 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +void out(char c) +char out::c +char out::c#0 +char out::c#1 +void out2(char c) +char out2::c +char out2::c#0 +char out2::c#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::c#2 = main::c#3 Alias idx#0 = idx#9 idx#10 idx#1 @@ -154,7 +154,7 @@ Adding number conversion cast (unumber) $28 in [4] if(main::c#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::c#0 Inlining constant with var siblings idx#19 @@ -186,7 +186,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#17 = phi( main/0, main::@2/idx#14 ) [1] main::c#2 = phi( main/0, main::@2/main::c#1 ) [2] out2::c#0 = main::c#2 - [3] call out2 + [3] call out2 to:main::@2 main::@2: scope:[main] from main::@1 [4] main::c#1 = ++ main::c#2 @@ -196,16 +196,16 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void out2(byte out2::c) +void out2(char c) out2: scope:[out2] from main::@1 [7] out::c#0 = out2::c#0 - [8] call out + [8] call out to:out2::@return out2::@return: scope:[out2] from out2 [9] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from out2 [10] idx#14 = ++ idx#17 [11] SCREEN[idx#14] = out::c#0 @@ -216,19 +216,19 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS -byte idx -byte idx#14 251.625 -byte idx#17 337.33333333333337 +char idx +char idx#14 // 251.625 +char idx#17 // 337.33333333333337 void main() -byte main::c -byte main::c#1 16.5 -byte main::c#2 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 551.0 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 112.0 +char main::c +char main::c#1 // 16.5 +char main::c#2 // 11.0 +void out(char c) +char out::c +char out::c#0 // 551.0 +void out2(char c) +char out2::c +char out2::c#0 // 112.0 Initial phi equivalence classes [ main::c#2 main::c#1 ] @@ -294,7 +294,7 @@ main: { // main::@1 __b1: // [2] out2::c#0 = main::c#2 - // [3] call out2 + // [3] call out2 jsr out2 jmp __b2 // main::@2 @@ -312,10 +312,10 @@ main: { rts } // out2 -// out2(byte register(A) c) +// void out2(__register(A) char c) out2: { // [7] out::c#0 = out2::c#0 - // [8] call out + // [8] call out jsr out jmp __breturn // out2::@return @@ -324,7 +324,7 @@ out2: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // [10] idx#14 = ++ idx#17 -- vbuxx=_inc_vbuxx inx @@ -359,20 +359,20 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#14 reg byte x 251.625 -byte idx#17 reg byte x 337.33333333333337 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#14 // reg byte x 251.625 +char idx#17 // reg byte x 337.33333333333337 void main() -byte main::c -byte main::c#1 reg byte a 16.5 -byte main::c#2 reg byte a 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 reg byte a 551.0 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 reg byte a 112.0 +char main::c +char main::c#1 // reg byte a 16.5 +char main::c#2 // reg byte a 11.0 +void out(char c) +char out::c +char out::c#0 // reg byte a 551.0 +void out2(char c) +char out2::c +char out2::c#0 // reg byte a 112.0 reg byte a [ main::c#2 main::c#1 ] reg byte x [ idx#17 idx#14 ] @@ -412,7 +412,7 @@ main: { __b1: // out2(c) // [2] out2::c#0 = main::c#2 - // [3] call out2 + // [3] call out2 jsr out2 // main::@2 // for(char c: 0..39 ) @@ -428,11 +428,11 @@ main: { rts } // out2 -// out2(byte register(A) c) +// void out2(__register(A) char c) out2: { // out(c) // [7] out::c#0 = out2::c#0 - // [8] call out + // [8] call out jsr out // out2::@return // } @@ -440,7 +440,7 @@ out2: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; // [10] idx#14 = ++ idx#17 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/liverange-7.sym b/src/test/ref/liverange-7.sym index a8b29e0c6..42424bf36 100644 --- a/src/test/ref/liverange-7.sym +++ b/src/test/ref/liverange-7.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#14 reg byte x 251.625 -byte idx#17 reg byte x 337.33333333333337 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#14 // reg byte x 251.625 +char idx#17 // reg byte x 337.33333333333337 void main() -byte main::c -byte main::c#1 reg byte a 16.5 -byte main::c#2 reg byte a 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 reg byte a 551.0 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 reg byte a 112.0 +char main::c +char main::c#1 // reg byte a 16.5 +char main::c#2 // reg byte a 11.0 +void out(char c) +char out::c +char out::c#0 // reg byte a 551.0 +void out2(char c) +char out2::c +char out2::c#0 // reg byte a 112.0 reg byte a [ main::c#2 main::c#1 ] reg byte x [ idx#17 idx#14 ] diff --git a/src/test/ref/liverange-8.asm b/src/test/ref/liverange-8.asm index 844056785..f451f080f 100644 --- a/src/test/ref/liverange-8.asm +++ b/src/test/ref/liverange-8.asm @@ -24,7 +24,7 @@ main: { // } rts } -// out2(byte register(A) c) +// void out2(__register(A) char c) out2: { // out(c) jsr out @@ -33,7 +33,7 @@ out2: { // } rts } -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; inx diff --git a/src/test/ref/liverange-8.cfg b/src/test/ref/liverange-8.cfg index 2c9ce35be..a75ae7dc8 100644 --- a/src/test/ref/liverange-8.cfg +++ b/src/test/ref/liverange-8.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#19 = phi( main/0, main::@2/idx#16 ) [1] main::c#2 = phi( main/0, main::@2/main::c#1 ) [2] out2::c#0 = main::c#2 - [3] call out2 + [3] call out2 to:main::@2 main::@2: scope:[main] from main::@1 [4] main::c#1 = ++ main::c#2 @@ -17,20 +17,20 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void out2(byte out2::c) +void out2(char c) out2: scope:[out2] from main::@1 [7] out::c#0 = out2::c#0 - [8] call out + [8] call out to:out2::@1 out2::@1: scope:[out2] from out2 [9] out::c#1 = out2::c#0 - [10] call out + [10] call out to:out2::@return out2::@return: scope:[out2] from out2::@1 [11] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from out2 out2::@1 [12] out::c#2 = phi( out2/out::c#0, out2::@1/out::c#1 ) [12] idx#15 = phi( out2/idx#19, out2::@1/idx#16 ) diff --git a/src/test/ref/liverange-8.log b/src/test/ref/liverange-8.log index 030693593..58870d713 100644 --- a/src/test/ref/liverange-8.log +++ b/src/test/ref/liverange-8.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@2 idx#19 = phi( main/idx#22, main::@2/idx#0 ) main::c#2 = phi( main/main::c#0, main::@2/main::c#1 ) out2::c#0 = main::c#2 - call out2 + call out2 to:main::@2 main::@2: scope:[main] from main::@1 main::c#3 = phi( main::@1/main::c#2 ) @@ -27,19 +27,19 @@ main::@return: scope:[main] from main::@2 return to:@return -void out2(byte out2::c) +void out2(char c) out2: scope:[out2] from main::@1 idx#20 = phi( main::@1/idx#19 ) out2::c#1 = phi( main::@1/out2::c#0 ) out::c#0 = out2::c#1 - call out + call out to:out2::@1 out2::@1: scope:[out2] from out2 out2::c#2 = phi( out2/out2::c#1 ) idx#12 = phi( out2/idx#6 ) idx#2 = idx#12 out::c#1 = out2::c#2 - call out + call out to:out2::@2 out2::@2: scope:[out2] from out2::@1 idx#13 = phi( out2::@1/idx#6 ) @@ -51,7 +51,7 @@ out2::@return: scope:[out2] from out2::@2 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from out2 out2::@1 out::c#2 = phi( out2/out::c#0, out2::@1/out::c#1 ) idx#15 = phi( out2/idx#20, out2::@1/idx#2 ) @@ -72,7 +72,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#21 = phi( __start::__init1/idx#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#17 = phi( __start::@1/idx#1 ) @@ -85,51 +85,51 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 -byte out::c#2 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 -byte out2::c#1 -byte out2::c#2 +bool main::$1 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +void out(char c) +char out::c +char out::c#0 +char out::c#1 +char out::c#2 +void out2(char c) +char out2::c +char out2::c#0 +char out2::c#1 +char out2::c#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::c#2 = main::c#3 Alias idx#0 = idx#10 idx#11 idx#1 @@ -166,7 +166,7 @@ Adding number conversion cast (unumber) $28 in [4] if(main::c#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::c#0 Inlining constant with var siblings idx#21 @@ -202,7 +202,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#19 = phi( main/0, main::@2/idx#16 ) [1] main::c#2 = phi( main/0, main::@2/main::c#1 ) [2] out2::c#0 = main::c#2 - [3] call out2 + [3] call out2 to:main::@2 main::@2: scope:[main] from main::@1 [4] main::c#1 = ++ main::c#2 @@ -212,20 +212,20 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void out2(byte out2::c) +void out2(char c) out2: scope:[out2] from main::@1 [7] out::c#0 = out2::c#0 - [8] call out + [8] call out to:out2::@1 out2::@1: scope:[out2] from out2 [9] out::c#1 = out2::c#0 - [10] call out + [10] call out to:out2::@return out2::@return: scope:[out2] from out2::@1 [11] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from out2 out2::@1 [12] out::c#2 = phi( out2/out::c#0, out2::@1/out::c#1 ) [12] idx#15 = phi( out2/idx#19, out2::@1/idx#16 ) @@ -238,22 +238,22 @@ out::@return: scope:[out] from out VARIABLE REGISTER WEIGHTS -byte idx -byte idx#15 1203.0 -byte idx#16 211.39999999999998 -byte idx#19 37.33333333333333 +char idx +char idx#15 // 1203.0 +char idx#16 // 211.39999999999998 +char idx#19 // 37.33333333333333 void main() -byte main::c -byte main::c#1 16.5 -byte main::c#2 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 202.0 -byte out::c#1 202.0 -byte out::c#2 601.5 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 71.0 +char main::c +char main::c#1 // 16.5 +char main::c#2 // 11.0 +void out(char c) +char out::c +char out::c#0 // 202.0 +char out::c#1 // 202.0 +char out::c#2 // 601.5 +void out2(char c) +char out2::c +char out2::c#0 // 71.0 Initial phi equivalence classes [ main::c#2 main::c#1 ] @@ -319,7 +319,7 @@ main: { // main::@1 __b1: // [2] out2::c#0 = main::c#2 - // [3] call out2 + // [3] call out2 jsr out2 jmp __b2 // main::@2 @@ -337,10 +337,10 @@ main: { rts } // out2 -// out2(byte register(A) c) +// void out2(__register(A) char c) out2: { // [7] out::c#0 = out2::c#0 - // [8] call out + // [8] call out // [12] phi from out2 to out [phi:out2->out] out_from_out2: // [12] phi out::c#2 = out::c#0 [phi:out2->out#0] -- register_copy @@ -350,7 +350,7 @@ out2: { // out2::@1 __b1: // [9] out::c#1 = out2::c#0 - // [10] call out + // [10] call out // [12] phi from out2::@1 to out [phi:out2::@1->out] out_from___b1: // [12] phi out::c#2 = out::c#1 [phi:out2::@1->out#0] -- register_copy @@ -363,7 +363,7 @@ out2: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // [13] idx#16 = ++ idx#15 -- vbuxx=_inc_vbuxx inx @@ -402,23 +402,23 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#15 reg byte x 1203.0 -byte idx#16 reg byte x 211.39999999999998 -byte idx#19 reg byte x 37.33333333333333 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#15 // reg byte x 1203.0 +char idx#16 // reg byte x 211.39999999999998 +char idx#19 // reg byte x 37.33333333333333 void main() -byte main::c -byte main::c#1 reg byte a 16.5 -byte main::c#2 reg byte a 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 reg byte a 202.0 -byte out::c#1 reg byte a 202.0 -byte out::c#2 reg byte a 601.5 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 reg byte a 71.0 +char main::c +char main::c#1 // reg byte a 16.5 +char main::c#2 // reg byte a 11.0 +void out(char c) +char out::c +char out::c#0 // reg byte a 202.0 +char out::c#1 // reg byte a 202.0 +char out::c#2 // reg byte a 601.5 +void out2(char c) +char out2::c +char out2::c#0 // reg byte a 71.0 reg byte a [ main::c#2 main::c#1 ] reg byte x [ idx#15 idx#19 idx#16 ] @@ -458,7 +458,7 @@ main: { __b1: // out2(c) // [2] out2::c#0 = main::c#2 - // [3] call out2 + // [3] call out2 jsr out2 // main::@2 // for(char c: 0..39 ) @@ -474,11 +474,11 @@ main: { rts } // out2 -// out2(byte register(A) c) +// void out2(__register(A) char c) out2: { // out(c) // [7] out::c#0 = out2::c#0 - // [8] call out + // [8] call out // [12] phi from out2 to out [phi:out2->out] // [12] phi out::c#2 = out::c#0 [phi:out2->out#0] -- register_copy // [12] phi idx#15 = idx#19 [phi:out2->out#1] -- register_copy @@ -486,7 +486,7 @@ out2: { // out2::@1 // out(c) // [9] out::c#1 = out2::c#0 - // [10] call out + // [10] call out // [12] phi from out2::@1 to out [phi:out2::@1->out] // [12] phi out::c#2 = out::c#1 [phi:out2::@1->out#0] -- register_copy // [12] phi idx#15 = idx#16 [phi:out2::@1->out#1] -- register_copy @@ -497,7 +497,7 @@ out2: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; // [13] idx#16 = ++ idx#15 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/liverange-8.sym b/src/test/ref/liverange-8.sym index 9da58fabc..1ce043f63 100644 --- a/src/test/ref/liverange-8.sym +++ b/src/test/ref/liverange-8.sym @@ -1,20 +1,20 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#15 reg byte x 1203.0 -byte idx#16 reg byte x 211.39999999999998 -byte idx#19 reg byte x 37.33333333333333 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#15 // reg byte x 1203.0 +char idx#16 // reg byte x 211.39999999999998 +char idx#19 // reg byte x 37.33333333333333 void main() -byte main::c -byte main::c#1 reg byte a 16.5 -byte main::c#2 reg byte a 11.0 -void out(byte out::c) -byte out::c -byte out::c#0 reg byte a 202.0 -byte out::c#1 reg byte a 202.0 -byte out::c#2 reg byte a 601.5 -void out2(byte out2::c) -byte out2::c -byte out2::c#0 reg byte a 71.0 +char main::c +char main::c#1 // reg byte a 16.5 +char main::c#2 // reg byte a 11.0 +void out(char c) +char out::c +char out::c#0 // reg byte a 202.0 +char out::c#1 // reg byte a 202.0 +char out::c#2 // reg byte a 601.5 +void out2(char c) +char out2::c +char out2::c#0 // reg byte a 71.0 reg byte a [ main::c#2 main::c#1 ] reg byte x [ idx#15 idx#19 idx#16 ] diff --git a/src/test/ref/liverange-9.asm b/src/test/ref/liverange-9.asm index 0f083eb83..299b79e58 100644 --- a/src/test/ref/liverange-9.asm +++ b/src/test/ref/liverange-9.asm @@ -23,7 +23,7 @@ main: { // } rts } -// outsw(byte register(Y) c) +// void outsw(__register(Y) char c) outsw: { // out('-') lda #'-' @@ -33,7 +33,7 @@ outsw: { // } rts } -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; inx @@ -42,7 +42,7 @@ out: { // } rts } -// outw(byte register(Y) c) +// void outw(__register(Y) char c) outw: { // out(c<<4) tya diff --git a/src/test/ref/liverange-9.cfg b/src/test/ref/liverange-9.cfg index 53869130d..b7974ea29 100644 --- a/src/test/ref/liverange-9.cfg +++ b/src/test/ref/liverange-9.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#25 = phi( main/0, main::@2/idx#22 ) [1] main::c#2 = phi( main/0, main::@2/main::c#1 ) [2] outsw::c#0 = main::c#2 - [3] call outsw + [3] call outsw to:main::@2 main::@2: scope:[main] from main::@1 [4] main::c#1 = ++ main::c#2 @@ -17,20 +17,20 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void outsw(byte outsw::c) +void outsw(char c) outsw: scope:[outsw] from main::@1 [7] phi() - [8] call out + [8] call out to:outsw::@1 outsw::@1: scope:[outsw] from outsw [9] outw::c#0 = outsw::c#0 - [10] call outw + [10] call outw to:outsw::@return outsw::@return: scope:[outsw] from outsw::@1 [11] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from outsw outw outw::@1 [12] out::c#3 = phi( outsw/'-', outw/out::c#1, outw::@1/out::c#2 ) [12] idx#21 = phi( outsw/idx#25, outw/idx#22, outw::@1/idx#22 ) @@ -41,14 +41,14 @@ out::@return: scope:[out] from out [15] return to:@return -void outw(byte outw::c) +void outw(char c) outw: scope:[outw] from outsw::@1 [16] out::c#1 = outw::c#0 << 4 - [17] call out + [17] call out to:outw::@1 outw::@1: scope:[outw] from outw [18] out::c#2 = outw::c#0 & $f - [19] call out + [19] call out to:outw::@return outw::@return: scope:[outw] from outw::@1 [20] return diff --git a/src/test/ref/liverange-9.log b/src/test/ref/liverange-9.log index c10165886..5b773a778 100644 --- a/src/test/ref/liverange-9.log +++ b/src/test/ref/liverange-9.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@2 idx#25 = phi( main/idx#29, main::@2/idx#0 ) main::c#2 = phi( main/main::c#0, main::@2/main::c#1 ) outsw::c#0 = main::c#2 - call outsw + call outsw to:main::@2 main::@2: scope:[main] from main::@1 main::c#3 = phi( main::@1/main::c#2 ) @@ -27,19 +27,19 @@ main::@return: scope:[main] from main::@2 return to:@return -void outsw(byte outsw::c) +void outsw(char c) outsw: scope:[outsw] from main::@1 outsw::c#2 = phi( main::@1/outsw::c#0 ) idx#26 = phi( main::@1/idx#25 ) out::c#0 = '-' - call out + call out to:outsw::@1 outsw::@1: scope:[outsw] from outsw outsw::c#1 = phi( outsw/outsw::c#2 ) idx#15 = phi( outsw/idx#9 ) idx#2 = idx#15 outw::c#0 = outsw::c#1 - call outw + call outw to:outsw::@2 outsw::@2: scope:[outsw] from outsw::@1 idx#16 = phi( outsw::@1/idx#7 ) @@ -51,13 +51,13 @@ outsw::@return: scope:[outsw] from outsw::@2 return to:@return -void outw(byte outw::c) +void outw(char c) outw: scope:[outw] from outsw::@1 idx#27 = phi( outsw::@1/idx#2 ) outw::c#1 = phi( outsw::@1/outw::c#0 ) outw::$0 = outw::c#1 << 4 out::c#1 = outw::$0 - call out + call out to:outw::@1 outw::@1: scope:[outw] from outw outw::c#2 = phi( outw/outw::c#1 ) @@ -65,7 +65,7 @@ outw::@1: scope:[outw] from outw idx#5 = idx#18 outw::$2 = outw::c#2 & $f out::c#2 = outw::$2 - call out + call out to:outw::@2 outw::@2: scope:[outw] from outw::@1 idx#19 = phi( outw::@1/idx#9 ) @@ -77,7 +77,7 @@ outw::@return: scope:[outw] from outw::@2 return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from outsw outw outw::@1 out::c#3 = phi( outsw/out::c#0, outw/out::c#1, outw::@1/out::c#2 ) idx#21 = phi( outsw/idx#26, outw/idx#27, outw::@1/idx#5 ) @@ -98,7 +98,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#28 = phi( __start::__init1/idx#10 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#23 = phi( __start::@1/idx#1 ) @@ -111,77 +111,77 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -void out(byte out::c) -byte out::c -byte out::c#0 -byte out::c#1 -byte out::c#2 -byte out::c#3 -void outsw(byte outsw::c) -byte outsw::c -byte outsw::c#0 -byte outsw::c#1 -byte outsw::c#2 -void outw(byte outw::c) -byte~ outw::$0 -number~ outw::$2 -byte outw::c -byte outw::c#0 -byte outw::c#1 -byte outw::c#2 +bool main::$1 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +void out(char c) +char out::c +char out::c#0 +char out::c#1 +char out::c#2 +char out::c#3 +void outsw(char c) +char outsw::c +char outsw::c#0 +char outsw::c#1 +char outsw::c#2 +void outw(char c) +char outw::$0 +number outw::$2 +char outw::c +char outw::c#0 +char outw::c#1 +char outw::c#2 Adding number conversion cast (unumber) 4 in outw::$0 = outw::c#1 << 4 Adding number conversion cast (unumber) $f in outw::$2 = outw::c#2 & $f Adding number conversion cast (unumber) outw::$2 in outw::$2 = outw::c#2 & (unumber)$f Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in outw::$2 = outw::c#2 & $f +Inferred type updated to char in outw::$2 = outw::c#2 & $f Alias main::c#2 = main::c#3 Alias idx#0 = idx#13 idx#14 idx#1 Alias outsw::c#1 = outsw::c#2 @@ -227,7 +227,7 @@ Adding number conversion cast (unumber) $28 in [4] if(main::c#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::c#0 Inlining constant with var siblings out::c#0 @@ -270,7 +270,7 @@ main::@1: scope:[main] from main main::@2 [1] idx#25 = phi( main/0, main::@2/idx#22 ) [1] main::c#2 = phi( main/0, main::@2/main::c#1 ) [2] outsw::c#0 = main::c#2 - [3] call outsw + [3] call outsw to:main::@2 main::@2: scope:[main] from main::@1 [4] main::c#1 = ++ main::c#2 @@ -280,20 +280,20 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void outsw(byte outsw::c) +void outsw(char c) outsw: scope:[outsw] from main::@1 [7] phi() - [8] call out + [8] call out to:outsw::@1 outsw::@1: scope:[outsw] from outsw [9] outw::c#0 = outsw::c#0 - [10] call outw + [10] call outw to:outsw::@return outsw::@return: scope:[outsw] from outsw::@1 [11] return to:@return -void out(byte out::c) +void out(char c) out: scope:[out] from outsw outw outw::@1 [12] out::c#3 = phi( outsw/'-', outw/out::c#1, outw::@1/out::c#2 ) [12] idx#21 = phi( outsw/idx#25, outw/idx#22, outw::@1/idx#22 ) @@ -304,14 +304,14 @@ out::@return: scope:[out] from out [15] return to:@return -void outw(byte outw::c) +void outw(char c) outw: scope:[outw] from outsw::@1 [16] out::c#1 = outw::c#0 << 4 - [17] call out + [17] call out to:outw::@1 outw::@1: scope:[outw] from outw [18] out::c#2 = outw::c#0 & $f - [19] call out + [19] call out to:outw::@return outw::@return: scope:[outw] from outw::@1 [20] return @@ -319,25 +319,25 @@ outw::@return: scope:[outw] from outw::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#21 12104.0 -byte idx#22 1467.6666666666667 -byte idx#25 37.33333333333333 +char idx +char idx#21 // 12104.0 +char idx#22 // 1467.6666666666667 +char idx#25 // 37.33333333333333 void main() -byte main::c -byte main::c#1 16.5 -byte main::c#2 11.0 -void out(byte out::c) -byte out::c -byte out::c#1 2002.0 -byte out::c#2 2002.0 -byte out::c#3 6001.5 -void outsw(byte outsw::c) -byte outsw::c -byte outsw::c#0 37.33333333333333 -void outw(byte outw::c) -byte outw::c -byte outw::c#0 701.0 +char main::c +char main::c#1 // 16.5 +char main::c#2 // 11.0 +void out(char c) +char out::c +char out::c#1 // 2002.0 +char out::c#2 // 2002.0 +char out::c#3 // 6001.5 +void outsw(char c) +char outsw::c +char outsw::c#0 // 37.33333333333333 +void outw(char c) +char outw::c +char outw::c#0 // 701.0 Initial phi equivalence classes [ main::c#2 main::c#1 ] @@ -416,7 +416,7 @@ main: { // main::@1 __b1: // [2] outsw::c#0 = main::c#2 - // [3] call outsw + // [3] call outsw // [7] phi from main::@1 to outsw [phi:main::@1->outsw] outsw_from___b1: jsr outsw @@ -435,9 +435,9 @@ main: { rts } // outsw -// outsw(byte register(Y) c) +// void outsw(__register(Y) char c) outsw: { - // [8] call out + // [8] call out // [12] phi from outsw to out [phi:outsw->out] out_from_outsw: // [12] phi out::c#3 = '-' [phi:outsw->out#0] -- vbuaa=vbuc1 @@ -448,7 +448,7 @@ outsw: { // outsw::@1 __b1: // [9] outw::c#0 = outsw::c#0 - // [10] call outw + // [10] call outw jsr outw jmp __breturn // outsw::@return @@ -457,7 +457,7 @@ outsw: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // [13] idx#22 = ++ idx#21 -- vbuxx=_inc_vbuxx inx @@ -470,7 +470,7 @@ out: { rts } // outw -// outw(byte register(Y) c) +// void outw(__register(Y) char c) outw: { // [16] out::c#1 = outw::c#0 << 4 -- vbuaa=vbuyy_rol_4 tya @@ -478,7 +478,7 @@ outw: { asl asl asl - // [17] call out + // [17] call out // [12] phi from outw to out [phi:outw->out] out_from_outw: // [12] phi out::c#3 = out::c#1 [phi:outw->out#0] -- register_copy @@ -490,7 +490,7 @@ outw: { // [18] out::c#2 = outw::c#0 & $f -- vbuaa=vbuyy_band_vbuc1 tya and #$f - // [19] call out + // [19] call out // [12] phi from outw::@1 to out [phi:outw::@1->out] out_from___b1: // [12] phi out::c#3 = out::c#2 [phi:outw::@1->out#0] -- register_copy @@ -534,26 +534,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#21 reg byte x 12104.0 -byte idx#22 reg byte x 1467.6666666666667 -byte idx#25 reg byte x 37.33333333333333 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#21 // reg byte x 12104.0 +char idx#22 // reg byte x 1467.6666666666667 +char idx#25 // reg byte x 37.33333333333333 void main() -byte main::c -byte main::c#1 reg byte y 16.5 -byte main::c#2 reg byte y 11.0 -void out(byte out::c) -byte out::c -byte out::c#1 reg byte a 2002.0 -byte out::c#2 reg byte a 2002.0 -byte out::c#3 reg byte a 6001.5 -void outsw(byte outsw::c) -byte outsw::c -byte outsw::c#0 reg byte y 37.33333333333333 -void outw(byte outw::c) -byte outw::c -byte outw::c#0 reg byte y 701.0 +char main::c +char main::c#1 // reg byte y 16.5 +char main::c#2 // reg byte y 11.0 +void out(char c) +char out::c +char out::c#1 // reg byte a 2002.0 +char out::c#2 // reg byte a 2002.0 +char out::c#3 // reg byte a 6001.5 +void outsw(char c) +char outsw::c +char outsw::c#0 // reg byte y 37.33333333333333 +void outw(char c) +char outw::c +char outw::c#0 // reg byte y 701.0 reg byte y [ main::c#2 main::c#1 ] reg byte x [ idx#21 idx#25 idx#22 ] @@ -594,7 +594,7 @@ main: { __b1: // outsw(c) // [2] outsw::c#0 = main::c#2 - // [3] call outsw + // [3] call outsw // [7] phi from main::@1 to outsw [phi:main::@1->outsw] jsr outsw // main::@2 @@ -610,10 +610,10 @@ main: { rts } // outsw -// outsw(byte register(Y) c) +// void outsw(__register(Y) char c) outsw: { // out('-') - // [8] call out + // [8] call out // [12] phi from outsw to out [phi:outsw->out] // [12] phi out::c#3 = '-' [phi:outsw->out#0] -- vbuaa=vbuc1 lda #'-' @@ -622,7 +622,7 @@ outsw: { // outsw::@1 // outw(c) // [9] outw::c#0 = outsw::c#0 - // [10] call outw + // [10] call outw jsr outw // outsw::@return // } @@ -630,7 +630,7 @@ outsw: { rts } // out -// out(byte register(A) c) +// void out(__register(A) char c) out: { // idx++; // [13] idx#22 = ++ idx#21 -- vbuxx=_inc_vbuxx @@ -644,7 +644,7 @@ out: { rts } // outw -// outw(byte register(Y) c) +// void outw(__register(Y) char c) outw: { // out(c<<4) // [16] out::c#1 = outw::c#0 << 4 -- vbuaa=vbuyy_rol_4 @@ -653,7 +653,7 @@ outw: { asl asl asl - // [17] call out + // [17] call out // [12] phi from outw to out [phi:outw->out] // [12] phi out::c#3 = out::c#1 [phi:outw->out#0] -- register_copy // [12] phi idx#21 = idx#22 [phi:outw->out#1] -- register_copy @@ -663,7 +663,7 @@ outw: { // [18] out::c#2 = outw::c#0 & $f -- vbuaa=vbuyy_band_vbuc1 tya and #$f - // [19] call out + // [19] call out // [12] phi from outw::@1 to out [phi:outw::@1->out] // [12] phi out::c#3 = out::c#2 [phi:outw::@1->out#0] -- register_copy // [12] phi idx#21 = idx#22 [phi:outw::@1->out#1] -- register_copy diff --git a/src/test/ref/liverange-9.sym b/src/test/ref/liverange-9.sym index cfdbe92d3..657ad5d1f 100644 --- a/src/test/ref/liverange-9.sym +++ b/src/test/ref/liverange-9.sym @@ -1,23 +1,23 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#21 reg byte x 12104.0 -byte idx#22 reg byte x 1467.6666666666667 -byte idx#25 reg byte x 37.33333333333333 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#21 // reg byte x 12104.0 +char idx#22 // reg byte x 1467.6666666666667 +char idx#25 // reg byte x 37.33333333333333 void main() -byte main::c -byte main::c#1 reg byte y 16.5 -byte main::c#2 reg byte y 11.0 -void out(byte out::c) -byte out::c -byte out::c#1 reg byte a 2002.0 -byte out::c#2 reg byte a 2002.0 -byte out::c#3 reg byte a 6001.5 -void outsw(byte outsw::c) -byte outsw::c -byte outsw::c#0 reg byte y 37.33333333333333 -void outw(byte outw::c) -byte outw::c -byte outw::c#0 reg byte y 701.0 +char main::c +char main::c#1 // reg byte y 16.5 +char main::c#2 // reg byte y 11.0 +void out(char c) +char out::c +char out::c#1 // reg byte a 2002.0 +char out::c#2 // reg byte a 2002.0 +char out::c#3 // reg byte a 6001.5 +void outsw(char c) +char outsw::c +char outsw::c#0 // reg byte y 37.33333333333333 +void outw(char c) +char outw::c +char outw::c#0 // reg byte y 701.0 reg byte y [ main::c#2 main::c#1 ] reg byte x [ idx#21 idx#25 idx#22 ] diff --git a/src/test/ref/liverange-call-problem.asm b/src/test/ref/liverange-call-problem.asm index 455810611..5394e1396 100644 --- a/src/test/ref/liverange-call-problem.asm +++ b/src/test/ref/liverange-call-problem.asm @@ -8,7 +8,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label w1 = 2 .label w2 = 4 .segment Code @@ -35,9 +35,9 @@ main: { sta SCREEN+1 // SCREEN[2] = w2 lda.z w2 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda.z w2+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // } rts } diff --git a/src/test/ref/liverange-call-problem.cfg b/src/test/ref/liverange-call-problem.cfg index ca26166d9..190a89934 100644 --- a/src/test/ref/liverange-call-problem.cfg +++ b/src/test/ref/liverange-call-problem.cfg @@ -2,23 +2,23 @@ void main() main: scope:[main] from [0] phi() - [1] call incw1 + [1] call incw1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call incw2 + [3] call incw2 to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call incw1 + [5] call incw1 to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call incw2 + [7] call incw2 to:main::@4 main::@4: scope:[main] from main::@3 [8] *main::SCREEN = w1#13 - [9] *(main::SCREEN+2*SIZEOF_WORD) = w2#12 + [9] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = w2#12 to:main::@return main::@return: scope:[main] from main::@4 [10] return diff --git a/src/test/ref/liverange-call-problem.log b/src/test/ref/liverange-call-problem.log index 7576d1642..da30bd528 100644 --- a/src/test/ref/liverange-call-problem.log +++ b/src/test/ref/liverange-call-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,33 +6,33 @@ void main() main: scope:[main] from __start::@1 w2#18 = phi( __start::@1/w2#17 ) w1#16 = phi( __start::@1/w1#18 ) - call incw1 + call incw1 to:main::@1 main::@1: scope:[main] from main w2#15 = phi( main/w2#18 ) w1#8 = phi( main/w1#4 ) w1#0 = w1#8 - call incw2 + call incw2 to:main::@2 main::@2: scope:[main] from main::@1 w1#17 = phi( main::@1/w1#0 ) w2#8 = phi( main::@1/w2#4 ) w2#0 = w2#8 - call incw1 + call incw1 to:main::@3 main::@3: scope:[main] from main::@2 w2#16 = phi( main::@2/w2#0 ) w1#9 = phi( main::@2/w1#4 ) w1#1 = w1#9 - call incw2 + call incw2 to:main::@4 main::@4: scope:[main] from main::@3 w1#10 = phi( main::@3/w1#1 ) w2#9 = phi( main::@3/w2#4 ) w2#1 = w2#9 - main::$4 = 0 * SIZEOF_WORD + main::$4 = 0 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$4] = w1#10 - main::$5 = 2 * SIZEOF_WORD + main::$5 = 2 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$5] = w2#1 to:main::@return main::@return: scope:[main] from main::@4 @@ -75,7 +75,7 @@ __start::__init1: scope:[__start] from __start __start::@1: scope:[__start] from __start::__init1 w2#17 = phi( __start::__init1/w2#5 ) w1#18 = phi( __start::__init1/w1#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 w2#13 = phi( __start::@1/w2#2 ) @@ -92,69 +92,69 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void incw1() void incw2() void main() -number~ main::$4 -number~ main::$5 -constant word* main::SCREEN = (byte*)$400 -word w1 -word w1#0 -word w1#1 -word w1#10 -word w1#11 -word w1#12 -word w1#13 -word w1#14 -word w1#15 -word w1#16 -word w1#17 -word w1#18 -word w1#2 -word w1#3 -word w1#4 -word w1#5 -word w1#6 -word w1#7 -word w1#8 -word w1#9 -word w2 -word w2#0 -word w2#1 -word w2#10 -word w2#11 -word w2#12 -word w2#13 -word w2#14 -word w2#15 -word w2#16 -word w2#17 -word w2#18 -word w2#2 -word w2#3 -word w2#4 -word w2#5 -word w2#6 -word w2#7 -word w2#8 -word w2#9 +number main::$4 +number main::$5 +__constant unsigned int *main::SCREEN = (char *)$400 +unsigned int w1 +unsigned int w1#0 +unsigned int w1#1 +unsigned int w1#10 +unsigned int w1#11 +unsigned int w1#12 +unsigned int w1#13 +unsigned int w1#14 +unsigned int w1#15 +unsigned int w1#16 +unsigned int w1#17 +unsigned int w1#18 +unsigned int w1#2 +unsigned int w1#3 +unsigned int w1#4 +unsigned int w1#5 +unsigned int w1#6 +unsigned int w1#7 +unsigned int w1#8 +unsigned int w1#9 +unsigned int w2 +unsigned int w2#0 +unsigned int w2#1 +unsigned int w2#10 +unsigned int w2#11 +unsigned int w2#12 +unsigned int w2#13 +unsigned int w2#14 +unsigned int w2#15 +unsigned int w2#16 +unsigned int w2#17 +unsigned int w2#18 +unsigned int w2#2 +unsigned int w2#3 +unsigned int w2#4 +unsigned int w2#5 +unsigned int w2#6 +unsigned int w2#7 +unsigned int w2#8 +unsigned int w2#9 -Adding number conversion cast (unumber) 0 in main::$4 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZEOF_WORD -Adding number conversion cast (unumber) 2 in main::$5 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$4 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 2 in main::$5 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)2 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$5 = 2 * SIZEOF_WORD +Inferred type updated to char in main::$4 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$5 = 2 * SIZEOF_UNSIGNED_INT Alias w2#15 = w2#18 Alias w1#0 = w1#8 w1#17 Alias w2#0 = w2#8 w2#16 @@ -176,15 +176,15 @@ Identical Phi Values w2#1 w2#12 Identical Phi Values w1#14 w1#1 Identical Phi Values w2#13 w2#1 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [9] main::$4 = 0 * SIZEOF_WORD -Constant right-side identified [11] main::$5 = 2 * SIZEOF_WORD +Constant right-side identified [9] main::$4 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [11] main::$5 = 2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$4 = 0*SIZEOF_WORD -Constant main::$5 = 2*SIZEOF_WORD +Constant main::$4 = 0*SIZEOF_UNSIGNED_INT +Constant main::$5 = 2*SIZEOF_UNSIGNED_INT Constant w1#18 = 0 Constant w2#17 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [10] main::SCREEN[main::$4] = w1#13 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -199,11 +199,11 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings w1#18 Inlining constant with var siblings w2#17 -Constant inlined main::$5 = 2*SIZEOF_WORD +Constant inlined main::$5 = 2*SIZEOF_UNSIGNED_INT Constant inlined w2#17 = 0 Constant inlined w1#18 = 0 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::SCREEN+2*SIZEOF_WORD) +Consolidated array index constant in *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -224,23 +224,23 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call incw1 + [1] call incw1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call incw2 + [3] call incw2 to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call incw1 + [5] call incw1 to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call incw2 + [7] call incw2 to:main::@4 main::@4: scope:[main] from main::@3 [8] *main::SCREEN = w1#13 - [9] *(main::SCREEN+2*SIZEOF_WORD) = w2#12 + [9] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = w2#12 to:main::@return main::@return: scope:[main] from main::@4 [10] return @@ -269,12 +269,12 @@ VARIABLE REGISTER WEIGHTS void incw1() void incw2() void main() -word w1 -word w1#12 13.0 -word w1#13 1.6666666666666667 -word w2 -word w2#11 13.0 -word w2#12 1.875 +unsigned int w1 +unsigned int w1#12 // 13.0 +unsigned int w1#13 // 1.6666666666666667 +unsigned int w2 +unsigned int w2#11 // 13.0 +unsigned int w2#12 // 1.875 Initial phi equivalence classes [ w1#12 w1#13 ] @@ -286,7 +286,7 @@ Allocated zp[2]:2 [ w1#12 w1#13 ] Allocated zp[2]:4 [ w2#11 w2#12 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [8] *main::SCREEN = w1#13 [ w2#12 ] ( [ w2#12 ] { } ) always clobbers reg byte a -Statement [9] *(main::SCREEN+2*SIZEOF_WORD) = w2#12 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = w2#12 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ w1#12 w1#13 ] : zp[2]:2 , Potential registers zp[2]:4 [ w2#11 w2#12 ] : zp[2]:4 , @@ -315,14 +315,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label w1 = 2 .label w2 = 4 .segment Code // main main: { .label SCREEN = $400 - // [1] call incw1 + // [1] call incw1 // [11] phi from main to incw1 [phi:main->incw1] incw1_from_main: // [11] phi w1#12 = 0 [phi:main->incw1#0] -- vwuz1=vwuc1 @@ -336,7 +336,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call incw2 + // [3] call incw2 // [14] phi from main::@1 to incw2 [phi:main::@1->incw2] incw2_from___b1: // [14] phi w2#11 = 0 [phi:main::@1->incw2#0] -- vwuz1=vwuc1 @@ -350,7 +350,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call incw1 + // [5] call incw1 // [11] phi from main::@2 to incw1 [phi:main::@2->incw1] incw1_from___b2: // [11] phi w1#12 = w1#13 [phi:main::@2->incw1#0] -- register_copy @@ -360,7 +360,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call incw2 + // [7] call incw2 // [14] phi from main::@3 to incw2 [phi:main::@3->incw2] incw2_from___b3: // [14] phi w2#11 = w2#12 [phi:main::@3->incw2#0] -- register_copy @@ -373,11 +373,11 @@ main: { sta SCREEN lda.z w1+1 sta SCREEN+1 - // [9] *(main::SCREEN+2*SIZEOF_WORD) = w2#12 -- _deref_pwuc1=vwuz1 + // [9] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = w2#12 -- _deref_pwuc1=vwuz1 lda.z w2 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda.z w2+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 jmp __breturn // main::@return __breturn: @@ -442,17 +442,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void incw1() void incw2() void main() -constant word* main::SCREEN = (byte*) 1024 -word w1 -word w1#12 w1 zp[2]:2 13.0 -word w1#13 w1 zp[2]:2 1.6666666666666667 -word w2 -word w2#11 w2 zp[2]:4 13.0 -word w2#12 w2 zp[2]:4 1.875 +__constant unsigned int *main::SCREEN = (char *) 1024 +unsigned int w1 +unsigned int w1#12 // w1 zp[2]:2 13.0 +unsigned int w1#13 // w1 zp[2]:2 1.6666666666666667 +unsigned int w2 +unsigned int w2#11 // w2 zp[2]:4 13.0 +unsigned int w2#12 // w2 zp[2]:4 1.875 zp[2]:2 [ w1#12 w1#13 ] zp[2]:4 [ w2#11 w2#12 ] @@ -474,7 +474,7 @@ Score: 110 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label w1 = 2 .label w2 = 4 .segment Code @@ -482,7 +482,7 @@ Score: 110 main: { .label SCREEN = $400 // incw1() - // [1] call incw1 + // [1] call incw1 // [11] phi from main to incw1 [phi:main->incw1] // [11] phi w1#12 = 0 [phi:main->incw1#0] -- vwuz1=vwuc1 lda #<0 @@ -492,7 +492,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // incw2() - // [3] call incw2 + // [3] call incw2 // [14] phi from main::@1 to incw2 [phi:main::@1->incw2] // [14] phi w2#11 = 0 [phi:main::@1->incw2#0] -- vwuz1=vwuc1 lda #<0 @@ -502,14 +502,14 @@ main: { // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // incw1() - // [5] call incw1 + // [5] call incw1 // [11] phi from main::@2 to incw1 [phi:main::@2->incw1] // [11] phi w1#12 = w1#13 [phi:main::@2->incw1#0] -- register_copy jsr incw1 // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // incw2() - // [7] call incw2 + // [7] call incw2 // [14] phi from main::@3 to incw2 [phi:main::@3->incw2] // [14] phi w2#11 = w2#12 [phi:main::@3->incw2#0] -- register_copy jsr incw2 @@ -521,11 +521,11 @@ main: { lda.z w1+1 sta SCREEN+1 // SCREEN[2] = w2 - // [9] *(main::SCREEN+2*SIZEOF_WORD) = w2#12 -- _deref_pwuc1=vwuz1 + // [9] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = w2#12 -- _deref_pwuc1=vwuz1 lda.z w2 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda.z w2+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // main::@return // } // [10] return diff --git a/src/test/ref/liverange-call-problem.sym b/src/test/ref/liverange-call-problem.sym index 09c0ca2c2..8bbe99887 100644 --- a/src/test/ref/liverange-call-problem.sym +++ b/src/test/ref/liverange-call-problem.sym @@ -1,14 +1,14 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void incw1() void incw2() void main() -constant word* main::SCREEN = (byte*) 1024 -word w1 -word w1#12 w1 zp[2]:2 13.0 -word w1#13 w1 zp[2]:2 1.6666666666666667 -word w2 -word w2#11 w2 zp[2]:4 13.0 -word w2#12 w2 zp[2]:4 1.875 +__constant unsigned int *main::SCREEN = (char *) 1024 +unsigned int w1 +unsigned int w1#12 // w1 zp[2]:2 13.0 +unsigned int w1#13 // w1 zp[2]:2 1.6666666666666667 +unsigned int w2 +unsigned int w2#11 // w2 zp[2]:4 13.0 +unsigned int w2#12 // w2 zp[2]:4 1.875 zp[2]:2 [ w1#12 w1#13 ] zp[2]:4 [ w2#11 w2#12 ] diff --git a/src/test/ref/liverange-problem-0.cfg b/src/test/ref/liverange-problem-0.cfg index cffe0116c..cb1f6c66c 100644 --- a/src/test/ref/liverange-problem-0.cfg +++ b/src/test/ref/liverange-problem-0.cfg @@ -5,12 +5,12 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call malloc + [2] call malloc [3] malloc::return#2 = malloc::return#0 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 [4] SCREEN_1#0 = malloc::return#2 - [5] call malloc + [5] call malloc [6] malloc::return#3 = malloc::return#0 to:__start::@3 __start::@3: scope:[__start] from __start::@2 @@ -18,15 +18,15 @@ __start::@3: scope:[__start] from __start::@2 to:__start::@1 __start::@1: scope:[__start] from __start::@3 [8] phi() - [9] call main + [9] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [10] return to:@return -byte* malloc() +char * malloc() malloc: scope:[malloc] from __start::@2 __start::__init1 - [11] MEM#6 = phi( __start::@2/MEM#0, __start::__init1/(byte*) 1024 ) + [11] MEM#6 = phi( __start::@2/MEM#0, __start::__init1/(char *) 1024 ) [12] MEM#0 = ++ MEM#6 [13] malloc::return#0 = MEM#0 to:malloc::@return diff --git a/src/test/ref/liverange-problem-0.log b/src/test/ref/liverange-problem-0.log index 6243614a4..6d50a934e 100644 --- a/src/test/ref/liverange-problem-0.log +++ b/src/test/ref/liverange-problem-0.log @@ -1,10 +1,10 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement __start::__init1_$0 Eliminating unused variable with no statement __start::__init1_$1 CONTROL FLOW GRAPH SSA -byte* malloc() +char * malloc() malloc: scope:[malloc] from __start::@2 __start::__init1 MEM#6 = phi( __start::@2/MEM#3, __start::__init1/MEM#2 ) MEM#0 = ++ MEM#6 @@ -33,8 +33,8 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - MEM#2 = (byte*)$400 - call malloc + MEM#2 = (char *)$400 + call malloc malloc::return#2 = malloc::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 @@ -42,7 +42,7 @@ __start::@2: scope:[__start] from __start::__init1 malloc::return#5 = phi( __start::__init1/malloc::return#2 ) SCREEN_1#0 = malloc::return#5 MEM#3 = MEM#8 - call malloc + call malloc malloc::return#3 = malloc::return#1 to:__start::@3 __start::@3: scope:[__start] from __start::@2 @@ -56,7 +56,7 @@ __start::@1: scope:[__start] from __start::@3 MEM#12 = phi( __start::@3/MEM#4 ) SCREEN_2#4 = phi( __start::@3/SCREEN_2#0 ) SCREEN_1#4 = phi( __start::@3/SCREEN_1#6 ) - call main + call main to:__start::@4 __start::@4: scope:[__start] from __start::@1 SCREEN_2#5 = phi( __start::@1/SCREEN_2#4 ) @@ -74,46 +74,46 @@ __start::@return: scope:[__start] from __start::@4 to:@return SYMBOL TABLE SSA -byte* MEM -byte* MEM#0 -byte* MEM#1 -byte* MEM#10 -byte* MEM#11 -byte* MEM#12 -byte* MEM#2 -byte* MEM#3 -byte* MEM#4 -byte* MEM#5 -byte* MEM#6 -byte* MEM#7 -byte* MEM#8 -byte* MEM#9 -byte* SCREEN_1 -byte* SCREEN_1#0 -byte* SCREEN_1#1 -byte* SCREEN_1#2 -byte* SCREEN_1#3 -byte* SCREEN_1#4 -byte* SCREEN_1#5 -byte* SCREEN_1#6 -byte* SCREEN_2 -byte* SCREEN_2#0 -byte* SCREEN_2#1 -byte* SCREEN_2#2 -byte* SCREEN_2#3 -byte* SCREEN_2#4 -byte* SCREEN_2#5 +char *MEM +char *MEM#0 +char *MEM#1 +char *MEM#10 +char *MEM#11 +char *MEM#12 +char *MEM#2 +char *MEM#3 +char *MEM#4 +char *MEM#5 +char *MEM#6 +char *MEM#7 +char *MEM#8 +char *MEM#9 +char *SCREEN_1 +char *SCREEN_1#0 +char *SCREEN_1#1 +char *SCREEN_1#2 +char *SCREEN_1#3 +char *SCREEN_1#4 +char *SCREEN_1#5 +char *SCREEN_1#6 +char *SCREEN_2 +char *SCREEN_2#0 +char *SCREEN_2#1 +char *SCREEN_2#2 +char *SCREEN_2#3 +char *SCREEN_2#4 +char *SCREEN_2#5 void __start() void main() -byte* malloc() -byte* malloc::return -byte* malloc::return#0 -byte* malloc::return#1 -byte* malloc::return#2 -byte* malloc::return#3 -byte* malloc::return#4 -byte* malloc::return#5 -byte* malloc::return#6 +char * malloc() +char *malloc::return +char *malloc::return#0 +char *malloc::return#1 +char *malloc::return#2 +char *malloc::return#3 +char *malloc::return#4 +char *malloc::return#5 +char *malloc::return#6 Adding number conversion cast (unumber) 0 in *SCREEN_1#2 = 0 Adding number conversion cast (unumber) 0 in *SCREEN_2#2 = 0 @@ -123,10 +123,10 @@ Inlining cast *SCREEN_2#2 = (unumber)0 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias malloc::return#0 = malloc::return#4 malloc::return#1 Alias MEM#0 = MEM#7 MEM#1 @@ -142,10 +142,10 @@ Identical Phi Values SCREEN_2#2 SCREEN_2#0 Identical Phi Values MEM#3 MEM#0 Identical Phi Values MEM#10 MEM#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant MEM#2 = (byte*) 1024 +Constant MEM#2 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings MEM#2 -Constant inlined MEM#2 = (byte*) 1024 +Constant inlined MEM#2 = (char *) 1024 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of __start Adding NOP phi() at start of __start::__init1 @@ -170,12 +170,12 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call malloc + [2] call malloc [3] malloc::return#2 = malloc::return#0 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 [4] SCREEN_1#0 = malloc::return#2 - [5] call malloc + [5] call malloc [6] malloc::return#3 = malloc::return#0 to:__start::@3 __start::@3: scope:[__start] from __start::@2 @@ -183,15 +183,15 @@ __start::@3: scope:[__start] from __start::@2 to:__start::@1 __start::@1: scope:[__start] from __start::@3 [8] phi() - [9] call main + [9] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [10] return to:@return -byte* malloc() +char * malloc() malloc: scope:[malloc] from __start::@2 __start::__init1 - [11] MEM#6 = phi( __start::@2/MEM#0, __start::__init1/(byte*) 1024 ) + [11] MEM#6 = phi( __start::@2/MEM#0, __start::__init1/(char *) 1024 ) [12] MEM#0 = ++ MEM#6 [13] malloc::return#0 = MEM#0 to:malloc::@return @@ -210,20 +210,20 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte* MEM -byte* MEM#0 4.0 -byte* MEM#6 13.0 -byte* SCREEN_1 -byte* SCREEN_1#0 2.6 -byte* SCREEN_2 -byte* SCREEN_2#0 4.333333333333333 +char *MEM +char *MEM#0 // 4.0 +char *MEM#6 // 13.0 +char *SCREEN_1 +char *SCREEN_1#0 // 2.6 +char *SCREEN_2 +char *SCREEN_2#0 // 4.333333333333333 void __start() void main() -byte* malloc() -byte* malloc::return -byte* malloc::return#0 3.75 -byte* malloc::return#2 4.0 -byte* malloc::return#3 4.0 +char * malloc() +char *malloc::return +char *malloc::return#0 // 3.75 +char *malloc::return#2 // 4.0 +char *malloc::return#3 // 4.0 Initial phi equivalence classes [ MEM#6 MEM#0 ] @@ -302,10 +302,10 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [2] call malloc + // [2] call malloc // [11] phi from __start::__init1 to malloc [phi:__start::__init1->malloc] malloc_from___init1: - // [11] phi MEM#6 = (byte*) 1024 [phi:__start::__init1->malloc#0] -- pbuz1=pbuc1 + // [11] phi MEM#6 = (char *) 1024 [phi:__start::__init1->malloc#0] -- pbuz1=pbuc1 lda #<$400 sta.z MEM lda #>$400 @@ -320,7 +320,7 @@ __start: { // __start::@2 __b2: // [4] SCREEN_1#0 = malloc::return#2 - // [5] call malloc + // [5] call malloc // [11] phi from __start::@2 to malloc [phi:__start::@2->malloc] malloc_from___b2: // [11] phi MEM#6 = MEM#0 [phi:__start::@2->malloc#0] -- register_copy @@ -335,7 +335,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [9] call main + // [9] call main jsr main jmp __breturn // __start::@return @@ -409,20 +409,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte* MEM -byte* MEM#0 MEM zp[2]:2 4.0 -byte* MEM#6 MEM zp[2]:2 13.0 -byte* SCREEN_1 -byte* SCREEN_1#0 SCREEN_1 zp[2]:4 2.6 -byte* SCREEN_2 -byte* SCREEN_2#0 SCREEN_2 zp[2]:6 4.333333333333333 +char *MEM +char *MEM#0 // MEM zp[2]:2 4.0 +char *MEM#6 // MEM zp[2]:2 13.0 +char *SCREEN_1 +char *SCREEN_1#0 // SCREEN_1 zp[2]:4 2.6 +char *SCREEN_2 +char *SCREEN_2#0 // SCREEN_2 zp[2]:6 4.333333333333333 void __start() void main() -byte* malloc() -byte* malloc::return -byte* malloc::return#0 return zp[2]:6 3.75 -byte* malloc::return#2 return_1 zp[2]:4 4.0 -byte* malloc::return#3 return zp[2]:6 4.0 +char * malloc() +char *malloc::return +char *malloc::return#0 // return zp[2]:6 3.75 +char *malloc::return#2 // return_1 zp[2]:4 4.0 +char *malloc::return#3 // return zp[2]:6 4.0 zp[2]:2 [ MEM#6 MEM#0 ] zp[2]:4 [ malloc::return#2 SCREEN_1#0 ] @@ -456,9 +456,9 @@ __start: { // [1] phi from __start to __start::__init1 [phi:__start->__start::__init1] // __start::__init1 // byte* SCREEN_1 = malloc() - // [2] call malloc + // [2] call malloc // [11] phi from __start::__init1 to malloc [phi:__start::__init1->malloc] - // [11] phi MEM#6 = (byte*) 1024 [phi:__start::__init1->malloc#0] -- pbuz1=pbuc1 + // [11] phi MEM#6 = (char *) 1024 [phi:__start::__init1->malloc#0] -- pbuz1=pbuc1 lda #<$400 sta.z MEM lda #>$400 @@ -473,7 +473,7 @@ __start: { // __start::@2 // [4] SCREEN_1#0 = malloc::return#2 // byte* SCREEN_2 = malloc() - // [5] call malloc + // [5] call malloc // [11] phi from __start::@2 to malloc [phi:__start::@2->malloc] // [11] phi MEM#6 = MEM#0 [phi:__start::@2->malloc#0] -- register_copy jsr malloc @@ -483,7 +483,7 @@ __start: { // [7] SCREEN_2#0 = malloc::return#3 // [8] phi from __start::@3 to __start::@1 [phi:__start::@3->__start::@1] // __start::@1 - // [9] call main + // [9] call main jsr main // __start::@return // [10] return diff --git a/src/test/ref/liverange-problem-0.sym b/src/test/ref/liverange-problem-0.sym index be7a342b8..75116f08d 100644 --- a/src/test/ref/liverange-problem-0.sym +++ b/src/test/ref/liverange-problem-0.sym @@ -1,17 +1,17 @@ -byte* MEM -byte* MEM#0 MEM zp[2]:2 4.0 -byte* MEM#6 MEM zp[2]:2 13.0 -byte* SCREEN_1 -byte* SCREEN_1#0 SCREEN_1 zp[2]:4 2.6 -byte* SCREEN_2 -byte* SCREEN_2#0 SCREEN_2 zp[2]:6 4.333333333333333 +char *MEM +char *MEM#0 // MEM zp[2]:2 4.0 +char *MEM#6 // MEM zp[2]:2 13.0 +char *SCREEN_1 +char *SCREEN_1#0 // SCREEN_1 zp[2]:4 2.6 +char *SCREEN_2 +char *SCREEN_2#0 // SCREEN_2 zp[2]:6 4.333333333333333 void __start() void main() -byte* malloc() -byte* malloc::return -byte* malloc::return#0 return zp[2]:6 3.75 -byte* malloc::return#2 return_1 zp[2]:4 4.0 -byte* malloc::return#3 return zp[2]:6 4.0 +char * malloc() +char *malloc::return +char *malloc::return#0 // return zp[2]:6 3.75 +char *malloc::return#2 // return_1 zp[2]:4 4.0 +char *malloc::return#3 // return zp[2]:6 4.0 zp[2]:2 [ MEM#6 MEM#0 ] zp[2]:4 [ malloc::return#2 SCREEN_1#0 ] diff --git a/src/test/ref/liverange.cfg b/src/test/ref/liverange.cfg index 79b7ae332..11d0424c8 100644 --- a/src/test/ref/liverange.cfg +++ b/src/test/ref/liverange.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call inci + [1] call inci [2] inci::return#0 = inci::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = inci::return#0 [4] main::a#1 = 4 + main::$0 - [5] call inci + [5] call inci [6] inci::return#1 = inci::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@2 [11] return to:@return -byte inci() +char inci() inci: scope:[inci] from main main::@1 [12] i#11 = phi( main/0, main::@1/i#12 ) [13] i#12 = i#11 + 7 diff --git a/src/test/ref/liverange.log b/src/test/ref/liverange.log index 20b7a3c61..47fe77b93 100644 --- a/src/test/ref/liverange.log +++ b/src/test/ref/liverange.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,7 +6,7 @@ void main() main: scope:[main] from __start::@1 i#15 = phi( __start::@1/i#16 ) main::a#0 = 4 - call inci + call inci inci::return#0 = inci::return#3 to:main::@1 main::@1: scope:[main] from main @@ -17,7 +17,7 @@ main::@1: scope:[main] from main i#0 = i#8 main::$1 = main::a#3 + main::$0 main::a#1 = main::$1 - call inci + call inci inci::return#1 = inci::return#3 to:main::@2 main::@2: scope:[main] from main::@1 @@ -38,7 +38,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte inci() +char inci() inci: scope:[inci] from main main::@1 i#11 = phi( main/i#15, main::@1/i#0 ) inci::$0 = i#11 + 7 @@ -61,7 +61,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 i#16 = phi( __start::__init1/i#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 i#13 = phi( __start::@1/i#2 ) @@ -75,60 +75,60 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -byte i -byte i#0 -byte i#1 -byte i#10 -byte i#11 -byte i#12 -byte i#13 -byte i#14 -byte i#15 -byte i#16 -byte i#2 -byte i#3 -byte i#4 -byte i#5 -byte i#6 -byte i#7 -byte i#8 -byte i#9 -byte inci() -number~ inci::$0 -byte inci::return -byte inci::return#0 -byte inci::return#1 -byte inci::return#2 -byte inci::return#3 -byte inci::return#4 -byte inci::return#5 -byte inci::return#6 +char i +char i#0 +char i#1 +char i#10 +char i#11 +char i#12 +char i#13 +char i#14 +char i#15 +char i#16 +char i#2 +char i#3 +char i#4 +char i#5 +char i#6 +char i#7 +char i#8 +char i#9 +char inci() +number inci::$0 +char inci::return +char inci::return#0 +char inci::return#1 +char inci::return#2 +char inci::return#3 +char inci::return#4 +char inci::return#5 +char inci::return#6 void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte*~ main::$4 -constant byte* main::SCREEN = (byte*)$400 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char *main::$4 +__constant char *main::SCREEN = (char *)$400 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 Adding number conversion cast (unumber) 1 in main::$4 = main::SCREEN + 1 Adding number conversion cast (unumber) 7 in inci::$0 = i#11 + 7 Adding number conversion cast (unumber) inci::$0 in inci::$0 = i#11 + (unumber)7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in inci::$0 = i#11 + 7 +Inferred type updated to char in inci::$0 = i#11 + 7 Alias inci::return#0 = inci::return#4 Alias main::a#0 = main::a#3 Alias i#0 = i#8 @@ -179,13 +179,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call inci + [1] call inci [2] inci::return#0 = inci::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = inci::return#0 [4] main::a#1 = 4 + main::$0 - [5] call inci + [5] call inci [6] inci::return#1 = inci::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -198,7 +198,7 @@ main::@return: scope:[main] from main::@2 [11] return to:@return -byte inci() +char inci() inci: scope:[inci] from main main::@1 [12] i#11 = phi( main/0, main::@1/i#12 ) [13] i#12 = i#11 + 7 @@ -210,20 +210,20 @@ inci::@return: scope:[inci] from inci VARIABLE REGISTER WEIGHTS -byte i -byte i#11 13.0 -byte i#12 2.3636363636363638 -byte inci() -byte inci::return -byte inci::return#0 4.0 -byte inci::return#1 4.0 -byte inci::return#2 3.75 +char i +char i#11 // 13.0 +char i#12 // 2.3636363636363638 +char inci() +char inci::return +char inci::return#0 // 4.0 +char inci::return#1 // 4.0 +char inci::return#2 // 3.75 void main() -byte~ main::$0 4.0 -byte~ main::$2 4.0 -byte main::a -byte main::a#1 1.0 -byte main::a#2 2.0 +char main::$0 // 4.0 +char main::$2 // 4.0 +char main::a +char main::a#1 // 1.0 +char main::a#2 // 2.0 Initial phi equivalence classes [ i#11 i#12 ] @@ -297,7 +297,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label SCREEN = $400 .label a = 2 - // [1] call inci + // [1] call inci // [12] phi from main to inci [phi:main->inci] inci_from_main: // [12] phi i#11 = 0 [phi:main->inci#0] -- vbuyy=vbuc1 @@ -312,7 +312,7 @@ main: { clc adc #4 sta.z a - // [5] call inci + // [5] call inci // [12] phi from main::@1 to inci [phi:main::@1->inci] inci_from___b1: // [12] phi i#11 = i#12 [phi:main::@1->inci#0] -- register_copy @@ -367,21 +367,21 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte i -byte i#11 reg byte y 13.0 -byte i#12 reg byte y 2.3636363636363638 -byte inci() -byte inci::return -byte inci::return#0 reg byte a 4.0 -byte inci::return#1 reg byte a 4.0 -byte inci::return#2 reg byte a 3.75 +char i +char i#11 // reg byte y 13.0 +char i#12 // reg byte y 2.3636363636363638 +char inci() +char inci::return +char inci::return#0 // reg byte a 4.0 +char inci::return#1 // reg byte a 4.0 +char inci::return#2 // reg byte a 3.75 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -constant byte* main::SCREEN = (byte*) 1024 -byte main::a -byte main::a#1 a zp[1]:2 1.0 -byte main::a#2 reg byte a 2.0 +char main::$0 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +__constant char *main::SCREEN = (char *) 1024 +char main::a +char main::a#1 // a zp[1]:2 1.0 +char main::a#2 // reg byte a 2.0 reg byte y [ i#11 i#12 ] reg byte a [ inci::return#0 ] @@ -413,7 +413,7 @@ main: { .label SCREEN = $400 .label a = 2 // inci() - // [1] call inci + // [1] call inci // [12] phi from main to inci [phi:main->inci] // [12] phi i#11 = 0 [phi:main->inci#0] -- vbuyy=vbuc1 ldy #0 @@ -428,7 +428,7 @@ main: { adc #4 sta.z a // inci() - // [5] call inci + // [5] call inci // [12] phi from main::@1 to inci [phi:main::@1->inci] // [12] phi i#11 = i#12 [phi:main::@1->inci#0] -- register_copy jsr inci diff --git a/src/test/ref/liverange.sym b/src/test/ref/liverange.sym index 3e684bc1a..cca9f914e 100644 --- a/src/test/ref/liverange.sym +++ b/src/test/ref/liverange.sym @@ -1,18 +1,18 @@ -byte i -byte i#11 reg byte y 13.0 -byte i#12 reg byte y 2.3636363636363638 -byte inci() -byte inci::return -byte inci::return#0 reg byte a 4.0 -byte inci::return#1 reg byte a 4.0 -byte inci::return#2 reg byte a 3.75 +char i +char i#11 // reg byte y 13.0 +char i#12 // reg byte y 2.3636363636363638 +char inci() +char inci::return +char inci::return#0 // reg byte a 4.0 +char inci::return#1 // reg byte a 4.0 +char inci::return#2 // reg byte a 3.75 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -constant byte* main::SCREEN = (byte*) 1024 -byte main::a -byte main::a#1 a zp[1]:2 1.0 -byte main::a#2 reg byte a 2.0 +char main::$0 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +__constant char *main::SCREEN = (char *) 1024 +char main::a +char main::a#1 // a zp[1]:2 1.0 +char main::a#2 // reg byte a 2.0 reg byte y [ i#11 i#12 ] reg byte a [ inci::return#0 ] diff --git a/src/test/ref/local-string.log b/src/test/ref/local-string.log index 7f3d03c1a..e654c9d45 100644 --- a/src/test/ref/local-string.log +++ b/src/test/ref/local-string.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,21 +32,21 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* main::msg[] = "message 2 " -constant byte* main::screen = (byte*)$400 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char main::msg[] = "message 2 " +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::$0 = 0 != main::msg[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -91,9 +91,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -176,11 +176,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* main::msg[] = "message 2 " -constant byte* main::screen = (byte*) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char main::msg[] = "message 2 " +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/local-string.sym b/src/test/ref/local-string.sym index 95d69a1cc..af77fd735 100644 --- a/src/test/ref/local-string.sym +++ b/src/test/ref/local-string.sym @@ -1,8 +1,8 @@ void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* main::msg[] = "message 2 " -constant byte* main::screen = (byte*) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char main::msg[] = "message 2 " +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/localscope-loops.log b/src/test/ref/localscope-loops.log index 24f10d8b4..681eedc2e 100644 --- a/src/test/ref/localscope-loops.log +++ b/src/test/ref/localscope-loops.log @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -38,30 +38,30 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 +bool main::$0 +number main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 Adding number conversion cast (unumber) $28 in main::$1 = $28 + main::i1#2 Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)$28 + main::i1#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = $28 + main::i1#2 +Inferred type updated to char in main::$1 = $28 + main::i1#2 Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,5)) goto main::@1 Simple Condition main::$2 [12] if(main::i1#1!=rangelast(0,5)) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -83,8 +83,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::i1#0 @@ -136,12 +136,12 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 16.5 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 16.5 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -250,14 +250,14 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 -byte main::i1 -byte main::i1#1 reg byte x 16.5 -byte main::i1#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 +char main::i1 +char main::i1#1 // reg byte x 16.5 +char main::i1#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/localscope-loops.sym b/src/test/ref/localscope-loops.sym index 8e911747f..e816bf74e 100644 --- a/src/test/ref/localscope-loops.sym +++ b/src/test/ref/localscope-loops.sym @@ -1,11 +1,11 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 16.5 -byte main::i1 -byte main::i1#1 reg byte x 16.5 -byte main::i1#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 16.5 +char main::i1 +char main::i1#1 // reg byte x 16.5 +char main::i1#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/localscope-simple.log b/src/test/ref/localscope-simple.log index d51a6c750..72a30075b 100644 --- a/src/test/ref/localscope-simple.log +++ b/src/test/ref/localscope-simple.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,13 +21,13 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 +__constant char * const BG_COLOR = (char *)$d021 void __start() void main() -constant byte main::i = 0 -constant byte main::i1 = 1 +__constant char main::i = 0 +__constant char main::i1 = 1 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -107,10 +107,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 +__constant char * const BG_COLOR = (char *) 53281 void main() -constant byte main::i = 0 -constant byte main::i1 = 1 +__constant char main::i = 0 +__constant char main::i1 = 1 diff --git a/src/test/ref/localscope-simple.sym b/src/test/ref/localscope-simple.sym index 78d5c9765..ba2180190 100644 --- a/src/test/ref/localscope-simple.sym +++ b/src/test/ref/localscope-simple.sym @@ -1,5 +1,5 @@ -constant byte* const BG_COLOR = (byte*) 53281 +__constant char * const BG_COLOR = (char *) 53281 void main() -constant byte main::i = 0 -constant byte main::i1 = 1 +__constant char main::i = 0 +__constant char main::i1 = 1 diff --git a/src/test/ref/long-pointer-0.log b/src/test/ref/long-pointer-0.log index 119410f4f..2a783f30e 100644 --- a/src/test/ref/long-pointer-0.log +++ b/src/test/ref/long-pointer-0.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,8 +24,8 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -volatile dword main::long_ptr loadstore -constant const byte main::long_ptr_zp = (byte)&main::long_ptr +__loadstore volatile unsigned long main::long_ptr +__constant const char main::long_ptr_zp = (char)&main::long_ptr Removing unused procedure __start Removing unused procedure block __start @@ -51,7 +51,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -volatile dword main::long_ptr loadstore 20.0 +__loadstore volatile unsigned long main::long_ptr // 20.0 Initial phi equivalence classes Added variable main::long_ptr to live range equivalence class [ main::long_ptr ] @@ -117,8 +117,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -volatile dword main::long_ptr loadstore zp[4]:2 20.0 -constant const byte main::long_ptr_zp = (byte)&main::long_ptr +__loadstore volatile unsigned long main::long_ptr // zp[4]:2 20.0 +__constant const char main::long_ptr_zp = (char)&main::long_ptr zp[4]:2 [ main::long_ptr ] diff --git a/src/test/ref/long-pointer-0.sym b/src/test/ref/long-pointer-0.sym index 1f97b8a7c..c33b2653f 100644 --- a/src/test/ref/long-pointer-0.sym +++ b/src/test/ref/long-pointer-0.sym @@ -1,5 +1,5 @@ void main() -volatile dword main::long_ptr loadstore zp[4]:2 20.0 -constant const byte main::long_ptr_zp = (byte)&main::long_ptr +__loadstore volatile unsigned long main::long_ptr // zp[4]:2 20.0 +__constant const char main::long_ptr_zp = (char)&main::long_ptr zp[4]:2 [ main::long_ptr ] diff --git a/src/test/ref/longbranch-interrupt-problem.log b/src/test/ref/longbranch-interrupt-problem.log index 7783aa73d..c8bb0b78d 100644 --- a/src/test/ref/longbranch-interrupt-problem.log +++ b/src/test/ref/longbranch-interrupt-problem.log @@ -1,5 +1,5 @@ Resolved forward reference irq to __interrupt(rom_min_c64) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -44,7 +44,7 @@ __start::__init1: scope:[__start] from __start col = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -53,16 +53,16 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant void()** KERNEL_IRQ = (void()**)$314 +__constant char * const BG_COLOR = (char *)$d020 +__constant void (**KERNEL_IRQ)() = (void (**)())$314 void __start() -volatile byte col loadstore +__loadstore volatile char col __interrupt(rom_min_c64) void irq() -bool~ irq::$0 -bool~ irq::$1 +bool irq::$0 +bool irq::$1 void main() -bool~ main::$0 -bool~ main::$1 +bool main::$0 +bool main::$1 Adding number conversion cast (unumber) $a in main::$0 = col > $a Adding number conversion cast (unumber) 0 in col = 0 @@ -70,15 +70,15 @@ Adding number conversion cast (unumber) 0 in irq::$0 = col != 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast col = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (void()**) 788 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (void (**)()) 788 Simplifying constant integer cast $a Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [3] main::$1 = col <= $a from [2] main::$0 = col > $a Inversing boolean not [10] irq::$1 = col == 0 from [9] irq::$0 = col != 0 @@ -97,7 +97,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -126,7 +126,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -159,7 +159,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -volatile byte col loadstore 139.0 +__loadstore volatile char col // 139.0 __interrupt(rom_min_c64) void irq() void main() @@ -221,7 +221,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -300,10 +300,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination Fixing long branch [24] beq $ea81 to bne FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant void()** KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant void (**KERNEL_IRQ)() = (void (**)()) 788 void __start() -volatile byte col loadstore zp[1]:2 139.0 +__loadstore volatile char col // zp[1]:2 139.0 __interrupt(rom_min_c64) void irq() void main() @@ -338,7 +338,7 @@ __start: { sta.z col // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/longbranch-interrupt-problem.sym b/src/test/ref/longbranch-interrupt-problem.sym index 03dc97b25..0a298c0f4 100644 --- a/src/test/ref/longbranch-interrupt-problem.sym +++ b/src/test/ref/longbranch-interrupt-problem.sym @@ -1,7 +1,7 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant void()** KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant void (**KERNEL_IRQ)() = (void (**)()) 788 void __start() -volatile byte col loadstore zp[1]:2 139.0 +__loadstore volatile char col // zp[1]:2 139.0 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/longjump.log b/src/test/ref/longjump.log index 0814ee47f..bcfd2b2c9 100644 --- a/src/test/ref/longjump.log +++ b/src/test/ref/longjump.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,14 +30,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -54,7 +54,7 @@ Adding number conversion cast (unumber) $b in [4] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -89,9 +89,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -425,10 +425,10 @@ Fixing long branch [274] bne __b1 to beq FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/longjump.sym b/src/test/ref/longjump.sym index 8bdbe0aa3..7d76ab6fa 100644 --- a/src/test/ref/longjump.sym +++ b/src/test/ref/longjump.sym @@ -1,7 +1,7 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/longjump2.log b/src/test/ref/longjump2.log index 946ec7caf..124820e22 100644 --- a/src/test/ref/longjump2.log +++ b/src/test/ref/longjump2.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call long1 + call long1 to:main::@1 main::@1: scope:[main] from main - call long2 + call long2 to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -48,7 +48,7 @@ long2::@return: scope:[long2] from long2::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -59,23 +59,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void long1() -bool~ long1::$0 -constant byte* long1::SCREEN = (byte*)$400 -byte long1::i -byte long1::i#0 -byte long1::i#1 -byte long1::i#2 +bool long1::$0 +__constant char *long1::SCREEN = (char *)$400 +char long1::i +char long1::i#0 +char long1::i#1 +char long1::i#2 void long2() -bool~ long2::$0 -constant byte* long2::SCREEN = (byte*)$400 -byte long2::i -byte long2::i#0 -byte long2::i#1 -byte long2::i#2 +bool long2::$0 +__constant char *long2::SCREEN = (char *)$400 +char long2::i +char long2::i#0 +char long2::i#1 +char long2::i#2 void main() -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition long1::$0 [9] if(long1::i#1!=rangelast(0,$a)) goto long1::@1 Simple Condition long2::$0 [17] if(long2::i#1!=rangelast(0,$a)) goto long2::@1 @@ -98,8 +98,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings long1::i#0 Inlining constant with var siblings long2::i#0 @@ -133,11 +133,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call long1 + [1] call long1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call long2 + [3] call long2 to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -176,13 +176,13 @@ long2::@return: scope:[long2] from long2::@1 VARIABLE REGISTER WEIGHTS void long1() -byte long1::i -byte long1::i#1 151.5 -byte long1::i#2 134.66666666666666 +char long1::i +char long1::i#1 // 151.5 +char long1::i#2 // 134.66666666666666 void long2() -byte long2::i -byte long2::i#1 151.5 -byte long2::i#2 134.66666666666666 +char long2::i +char long2::i#1 // 151.5 +char long2::i#2 // 134.66666666666666 void main() Initial phi equivalence classes @@ -224,7 +224,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call long1 + // [1] call long1 // [5] phi from main to long1 [phi:main->long1] long1_from_main: jsr long1 @@ -233,7 +233,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call long2 + // [3] call long2 // [12] phi from main::@1 to long2 [phi:main::@1->long2] long2_from___b1: jsr long2 @@ -846,15 +846,15 @@ Fixing long branch [548] bne __b1 to beq FINAL SYMBOL TABLE void long1() -constant byte* long1::SCREEN = (byte*) 1024 -byte long1::i -byte long1::i#1 reg byte x 151.5 -byte long1::i#2 reg byte x 134.66666666666666 +__constant char *long1::SCREEN = (char *) 1024 +char long1::i +char long1::i#1 // reg byte x 151.5 +char long1::i#2 // reg byte x 134.66666666666666 void long2() -constant byte* long2::SCREEN = (byte*) 1024 -byte long2::i -byte long2::i#1 reg byte x 151.5 -byte long2::i#2 reg byte x 134.66666666666666 +__constant char *long2::SCREEN = (char *) 1024 +char long2::i +char long2::i#1 // reg byte x 151.5 +char long2::i#2 // reg byte x 134.66666666666666 void main() reg byte x [ long1::i#2 long1::i#1 ] @@ -880,13 +880,13 @@ Score: 10640 // main main: { // long1() - // [1] call long1 + // [1] call long1 // [5] phi from main to long1 [phi:main->long1] jsr long1 // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // long2() - // [3] call long2 + // [3] call long2 // [12] phi from main::@1 to long2 [phi:main::@1->long2] jsr long2 // main::@return diff --git a/src/test/ref/longjump2.sym b/src/test/ref/longjump2.sym index 195c5f298..1b0fb8b0a 100644 --- a/src/test/ref/longjump2.sym +++ b/src/test/ref/longjump2.sym @@ -1,13 +1,13 @@ void long1() -constant byte* long1::SCREEN = (byte*) 1024 -byte long1::i -byte long1::i#1 reg byte x 151.5 -byte long1::i#2 reg byte x 134.66666666666666 +__constant char *long1::SCREEN = (char *) 1024 +char long1::i +char long1::i#1 // reg byte x 151.5 +char long1::i#2 // reg byte x 134.66666666666666 void long2() -constant byte* long2::SCREEN = (byte*) 1024 -byte long2::i -byte long2::i#1 reg byte x 151.5 -byte long2::i#2 reg byte x 134.66666666666666 +__constant char *long2::SCREEN = (char *) 1024 +char long2::i +char long2::i#1 // reg byte x 151.5 +char long2::i#2 // reg byte x 134.66666666666666 void main() reg byte x [ long1::i#2 long1::i#1 ] diff --git a/src/test/ref/loop-break-continue.cfg b/src/test/ref/loop-break-continue.cfg index 5b4b3981a..d732b5d6d 100644 --- a/src/test/ref/loop-break-continue.cfg +++ b/src/test/ref/loop-break-continue.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@4 - [1] main::screen#2 = phi( main/(byte*) 1024, main::@4/main::screen#5 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@4/main::screen#5 ) [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] if(main::str[main::i#2]!=0) goto main::@2 to:main::@return diff --git a/src/test/ref/loop-break-continue.log b/src/test/ref/loop-break-continue.log index b8e580eed..4fab6af84 100644 --- a/src/test/ref/loop-break-continue.log +++ b/src/test/ref/loop-break-continue.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -39,7 +39,7 @@ main::@return: scope:[main] from main::@1 main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -50,33 +50,33 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -constant byte* main::str[] = "hello brave new world" +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +__constant char main::str[] = "hello brave new world" Adding number conversion cast (unumber) 0 in main::$0 = main::str[main::i#2] == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [4] main::$1 = main::str[main::i#2] != 0 from [3] main::$0 = main::str[main::i#2] == 0 Inversing boolean not [8] main::$3 = main::str[main::i#3] != ' ' from [7] main::$2 = main::str[main::i#3] == ' ' @@ -93,7 +93,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [6] if(main::str[main::i#2]==' ') goto main::@4 Negating conditional jump and destination [12] if(main::i#1==rangelast(0,$ff)) goto main::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [10] main::i#1 = ++ main::i#2 to ++ @@ -107,11 +107,11 @@ Adding number conversion cast (unumber) 0 in [7] if(main::i#1==0) goto main::@re Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@5(between main::@4 and main::@1) @@ -136,7 +136,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@4 - [1] main::screen#2 = phi( main/(byte*) 1024, main::@4/main::screen#5 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@4/main::screen#5 ) [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] if(main::str[main::i#2]!=0) goto main::@2 to:main::@return @@ -159,13 +159,13 @@ main::@4: scope:[main] from main::@2 main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 9.166666666666666 -byte* main::screen -byte* main::screen#1 22.0 -byte* main::screen#2 11.0 -byte* main::screen#5 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 9.166666666666666 +char *main::screen +char *main::screen#1 // 22.0 +char *main::screen#2 // 11.0 +char *main::screen#5 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -215,7 +215,7 @@ main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -292,14 +292,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 9.166666666666666 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 22.0 -byte* main::screen#2 screen zp[2]:2 11.0 -byte* main::screen#5 screen zp[2]:2 11.0 -constant byte* main::str[] = "hello brave new world" +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 9.166666666666666 +char *main::screen +char *main::screen#1 // screen zp[2]:2 22.0 +char *main::screen#2 // screen zp[2]:2 11.0 +char *main::screen#5 // screen zp[2]:2 11.0 +__constant char main::str[] = "hello brave new world" reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#2 main::screen#5 main::screen#1 ] @@ -326,7 +326,7 @@ Score: 651 main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/loop-break-continue.sym b/src/test/ref/loop-break-continue.sym index d34fd2415..b94d94b77 100644 --- a/src/test/ref/loop-break-continue.sym +++ b/src/test/ref/loop-break-continue.sym @@ -1,12 +1,12 @@ void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 9.166666666666666 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 22.0 -byte* main::screen#2 screen zp[2]:2 11.0 -byte* main::screen#5 screen zp[2]:2 11.0 -constant byte* main::str[] = "hello brave new world" +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 9.166666666666666 +char *main::screen +char *main::screen#1 // screen zp[2]:2 22.0 +char *main::screen#2 // screen zp[2]:2 11.0 +char *main::screen#5 // screen zp[2]:2 11.0 +__constant char main::str[] = "hello brave new world" reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#2 main::screen#5 main::screen#1 ] diff --git a/src/test/ref/loop-break-nested.cfg b/src/test/ref/loop-break-nested.cfg index bd435f1c1..a4b73bbda 100644 --- a/src/test/ref/loop-break-nested.cfg +++ b/src/test/ref/loop-break-nested.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@5 - [1] main::line#2 = phi( main/(byte*) 1024, main::@5/main::line#1 ) + [1] main::line#2 = phi( main/(char *) 1024, main::@5/main::line#1 ) [2] if(main::line#2>=$400+$28*$19) goto main::@return to:main::@2 main::@2: scope:[main] from main::@1 diff --git a/src/test/ref/loop-break-nested.log b/src/test/ref/loop-break-nested.log index 8e76db3c7..09d6c5177 100644 --- a/src/test/ref/loop-break-nested.log +++ b/src/test/ref/loop-break-nested.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::line#0 = (byte*)$400 + main::line#0 = (char *)$400 to:main::@1 main::@1: scope:[main] from main main::@6 main::line#2 = phi( main/main::line#0, main::@6/main::line#1 ) @@ -45,7 +45,7 @@ main::@return: scope:[main] from main::@1 main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,34 +56,34 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte* main::line -byte* main::line#0 -byte* main::line#1 -byte* main::line#2 -byte* main::line#3 -byte* main::line#4 -byte* main::line#5 -byte* main::line#6 -byte* main::line#7 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char *main::line +char *main::line#0 +char *main::line#1 +char *main::line#2 +char *main::line#3 +char *main::line#4 +char *main::line#5 +char *main::line#6 +char *main::line#7 Adding number conversion cast (unumber) $400+$28*$19 in main::$0 = main::line#2 < $400+$28*$19 Adding number conversion cast (unumber) $28 in main::line#1 = main::line#6 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [6] main::$2 = *main::line#3 != 'a' from [5] main::$1 = *main::line#3 == 'a' Inversing boolean not [12] main::$4 = main::line#4[main::i#2] != 'a' from [11] main::$3 = main::line#4[main::i#2] == 'a' @@ -96,15 +96,15 @@ Alias main::line#4 = main::line#6 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::line#4 main::line#2 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$0 [3] if(main::line#2<(word)$400+$28*$19) goto main::@2 +Simple Condition main::$0 [3] if(main::line#2<(unsigned int)$400+$28*$19) goto main::@2 Simple Condition main::$2 [5] if(*main::line#2!='a') goto main::@3 Simple Condition main::$4 [9] if(main::line#2[main::i#2]!='a') goto main::@5 Simple Condition main::$5 [13] if(main::i#1!=rangelast(0,$27)) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -Negating conditional jump and destination [3] if(main::line#2>=(word)$400+$28*$19) goto main::@return +Negating conditional jump and destination [3] if(main::line#2>=(unsigned int)$400+$28*$19) goto main::@return Negating conditional jump and destination [9] if(main::line#2[main::i#2]=='a') goto main::@6 Successful SSA optimization Pass2ConditionalJumpSequenceImprovement -Constant main::line#0 = (byte*) 1024 +Constant main::line#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [11] main::i#1 = ++ main::i#2 to ++ @@ -118,16 +118,16 @@ Adding number conversion cast (unumber) $28 in [7] if(main::i#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::line#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 -Constant inlined main::line#0 = (byte*) 1024 +Constant inlined main::line#0 = (char *) 1024 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $400+$28*$19 Successful SSA optimization PassNCastSimplification @@ -154,7 +154,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@5 - [1] main::line#2 = phi( main/(byte*) 1024, main::@5/main::line#1 ) + [1] main::line#2 = phi( main/(char *) 1024, main::@5/main::line#1 ) [2] if(main::line#2>=$400+$28*$19) goto main::@return to:main::@2 main::@2: scope:[main] from main::@1 @@ -179,12 +179,12 @@ main::@5: scope:[main] from main::@3 main::@4 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 134.66666666666666 -byte* main::line -byte* main::line#1 22.0 -byte* main::line#2 30.75 +char main::i +char main::i#1 // 151.5 +char main::i#2 // 134.66666666666666 +char *main::line +char *main::line#1 // 22.0 +char *main::line#2 // 30.75 Initial phi equivalence classes [ main::line#2 main::line#1 ] @@ -235,7 +235,7 @@ main: { .label line = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::line#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::line#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -334,12 +334,12 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte y 151.5 -byte main::i#2 reg byte y 134.66666666666666 -byte* main::line -byte* main::line#1 line zp[2]:2 22.0 -byte* main::line#2 line zp[2]:2 30.75 +char main::i +char main::i#1 // reg byte y 151.5 +char main::i#2 // reg byte y 134.66666666666666 +char *main::line +char *main::line#1 // line zp[2]:2 22.0 +char *main::line#2 // line zp[2]:2 30.75 zp[2]:2 [ main::line#2 main::line#1 ] reg byte y [ main::i#2 main::i#1 ] @@ -365,7 +365,7 @@ Score: 3056 main: { .label line = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::line#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::line#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 diff --git a/src/test/ref/loop-break-nested.sym b/src/test/ref/loop-break-nested.sym index 611eddb5e..d02242c01 100644 --- a/src/test/ref/loop-break-nested.sym +++ b/src/test/ref/loop-break-nested.sym @@ -1,10 +1,10 @@ void main() -byte main::i -byte main::i#1 reg byte y 151.5 -byte main::i#2 reg byte y 134.66666666666666 -byte* main::line -byte* main::line#1 line zp[2]:2 22.0 -byte* main::line#2 line zp[2]:2 30.75 +char main::i +char main::i#1 // reg byte y 151.5 +char main::i#2 // reg byte y 134.66666666666666 +char *main::line +char *main::line#1 // line zp[2]:2 22.0 +char *main::line#2 // line zp[2]:2 30.75 zp[2]:2 [ main::line#2 main::line#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-break.log b/src/test/ref/loop-break.log index 3fe98615d..762f06a09 100644 --- a/src/test/ref/loop-break.log +++ b/src/test/ref/loop-break.log @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,19 +33,19 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Inversing boolean not [3] main::$1 = SCREEN[main::i#2] != 'a' from [2] main::$0 = SCREEN[main::i#2] == 'a' Successful SSA optimization Pass2UnaryNotSimplification @@ -70,9 +70,9 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*6+1 Successful SSA optimization PassNCastSimplification @@ -108,9 +108,9 @@ main::@return: scope:[main] from main::@1 main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -198,11 +198,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-break.sym b/src/test/ref/loop-break.sym index 2b5e6a8fa..9716ab7e0 100644 --- a/src/test/ref/loop-break.sym +++ b/src/test/ref/loop-break.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-continue.log b/src/test/ref/loop-continue.log index c519d0cab..fca21dac5 100644 --- a/src/test/ref/loop-continue.log +++ b/src/test/ref/loop-continue.log @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,20 +36,20 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +bool main::$1 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Inversing boolean not [3] main::$1 = SCREEN[main::i#2] != ' ' from [2] main::$0 = SCREEN[main::i#2] == ' ' Successful SSA optimization Pass2UnaryNotSimplification @@ -76,9 +76,9 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*6+1 Successful SSA optimization PassNCastSimplification @@ -116,9 +116,9 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -208,11 +208,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-continue.sym b/src/test/ref/loop-continue.sym index fe4834348..2c29a3669 100644 --- a/src/test/ref/loop-continue.sym +++ b/src/test/ref/loop-continue.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-for-continue.log b/src/test/ref/loop-for-continue.log index 0a709a238..cc9df1b74 100644 --- a/src/test/ref/loop-for-continue.log +++ b/src/test/ref/loop-for-continue.log @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,34 +45,34 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte* MESSAGE[] = "hello brave new world!" -constant byte* const SCREEN = (byte*)$400 +__constant const char MESSAGE[] = "hello brave new world!" +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 Adding number conversion cast (unumber) 0 in main::$2 = 0 != MESSAGE[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [7] main::$1 = MESSAGE[main::i#3] != ' ' from [6] main::$0 = MESSAGE[main::i#3] == ' ' Successful SSA optimization Pass2UnaryNotSimplification @@ -141,13 +141,13 @@ main::@4: scope:[main] from main::@2 main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 9.166666666666666 -byte main::idx -byte main::idx#1 22.0 -byte main::idx#2 11.0 -byte main::idx#5 16.5 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 9.166666666666666 +char main::idx +char main::idx#1 // 22.0 +char main::idx#2 // 11.0 +char main::idx#5 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -262,16 +262,16 @@ Removing instruction __b1_from___b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte* MESSAGE[] = "hello brave new world!" -constant byte* const SCREEN = (byte*) 1024 +__constant const char MESSAGE[] = "hello brave new world!" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 9.166666666666666 -byte main::idx -byte main::idx#1 reg byte y 22.0 -byte main::idx#2 reg byte y 11.0 -byte main::idx#5 reg byte y 16.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 9.166666666666666 +char main::idx +char main::idx#1 // reg byte y 22.0 +char main::idx#2 // reg byte y 11.0 +char main::idx#5 // reg byte y 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#2 main::idx#5 main::idx#1 ] diff --git a/src/test/ref/loop-for-continue.sym b/src/test/ref/loop-for-continue.sym index 398cb2cbb..1856f072a 100644 --- a/src/test/ref/loop-for-continue.sym +++ b/src/test/ref/loop-for-continue.sym @@ -1,13 +1,13 @@ -constant const byte* MESSAGE[] = "hello brave new world!" -constant byte* const SCREEN = (byte*) 1024 +__constant const char MESSAGE[] = "hello brave new world!" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 9.166666666666666 -byte main::idx -byte main::idx#1 reg byte y 22.0 -byte main::idx#2 reg byte y 11.0 -byte main::idx#5 reg byte y 16.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 9.166666666666666 +char main::idx +char main::idx#1 // reg byte y 22.0 +char main::idx#2 // reg byte y 11.0 +char main::idx#5 // reg byte y 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#2 main::idx#5 main::idx#1 ] diff --git a/src/test/ref/loop-for-empty-body.log b/src/test/ref/loop-for-empty-body.log index dccfdc4a0..2dc6245f8 100644 --- a/src/test/ref/loop-for-empty-body.log +++ b/src/test/ref/loop-for-empty-body.log @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,28 +34,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -bool~ main::$1 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -constant const byte* str[] = "Hello!" +char main::$0 +bool main::$1 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +__constant const char str[] = "Hello!" Adding number conversion cast (unumber) 0 in main::$1 = str[main::b#2] != 0 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::b#2 = main::b#3 main::b#4 Successful SSA optimization Pass2AliasElimination @@ -105,10 +105,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte main::b -byte main::b#1 22.0 -byte main::b#2 17.5 +char main::$0 // 4.0 +char main::b +char main::b#1 // 22.0 +char main::b#2 // 17.5 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -202,13 +202,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte x 4.0 -byte main::b -byte main::b#1 reg byte x 22.0 -byte main::b#2 reg byte x 17.5 -constant const byte* str[] = "Hello!" +char main::$0 // reg byte x 4.0 +char main::b +char main::b#1 // reg byte x 22.0 +char main::b#2 // reg byte x 17.5 +__constant const char str[] = "Hello!" reg byte x [ main::b#2 main::b#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/loop-for-empty-body.sym b/src/test/ref/loop-for-empty-body.sym index 3a314256d..50f123854 100644 --- a/src/test/ref/loop-for-empty-body.sym +++ b/src/test/ref/loop-for-empty-body.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte x 4.0 -byte main::b -byte main::b#1 reg byte x 22.0 -byte main::b#2 reg byte x 17.5 -constant const byte* str[] = "Hello!" +char main::$0 // reg byte x 4.0 +char main::b +char main::b#1 // reg byte x 22.0 +char main::b#2 // reg byte x 17.5 +__constant const char str[] = "Hello!" reg byte x [ main::b#2 main::b#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/loop-for-sideeffect.log b/src/test/ref/loop-for-sideeffect.log index a87ad7e5d..127a3e8c6 100644 --- a/src/test/ref/loop-for-sideeffect.log +++ b/src/test/ref/loop-for-sideeffect.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -31,7 +31,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -40,29 +40,29 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 Adding number conversion cast (unumber) 7 in main::i#1 = 7 Adding number conversion cast (unumber) 7 in main::$0 = main::i#3 < 7 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::i#1 = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#4 main::i#5 Successful SSA optimization Pass2AliasElimination @@ -116,10 +116,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#2 15.333333333333332 -byte main::i#3 16.5 -byte main::i#6 22.0 +char main::i +char main::i#2 // 15.333333333333332 +char main::i#3 // 16.5 +char main::i#6 // 22.0 Initial phi equivalence classes [ main::i#3 main::i#6 ] @@ -210,12 +210,12 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#2 reg byte x 15.333333333333332 -byte main::i#3 reg byte a 16.5 -byte main::i#6 reg byte a 22.0 +char main::i +char main::i#2 // reg byte x 15.333333333333332 +char main::i#3 // reg byte a 16.5 +char main::i#6 // reg byte a 22.0 reg byte a [ main::i#3 main::i#6 ] reg byte x [ main::i#2 ] diff --git a/src/test/ref/loop-for-sideeffect.sym b/src/test/ref/loop-for-sideeffect.sym index 8f5442990..06467caf6 100644 --- a/src/test/ref/loop-for-sideeffect.sym +++ b/src/test/ref/loop-for-sideeffect.sym @@ -1,9 +1,9 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#2 reg byte x 15.333333333333332 -byte main::i#3 reg byte a 16.5 -byte main::i#6 reg byte a 22.0 +char main::i +char main::i#2 // reg byte x 15.333333333333332 +char main::i#3 // reg byte a 16.5 +char main::i#6 // reg byte a 22.0 reg byte a [ main::i#3 main::i#6 ] reg byte x [ main::i#2 ] diff --git a/src/test/ref/loop-memset-min.asm b/src/test/ref/loop-memset-min.asm index 57ed6063e..9ca1904fa 100644 --- a/src/test/ref/loop-memset-min.asm +++ b/src/test/ref/loop-memset-min.asm @@ -16,6 +16,7 @@ main: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = 'c' .const num = $3e8 diff --git a/src/test/ref/loop-memset-min.cfg b/src/test/ref/loop-memset-min.cfg index cc59b46fb..b530e2615 100644 --- a/src/test/ref/loop-memset-min.cfg +++ b/src/test/ref/loop-memset-min.cfg @@ -2,18 +2,18 @@ void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@return main::@return: scope:[main] from main [2] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [3] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [4] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [4] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [5] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 diff --git a/src/test/ref/loop-memset-min.log b/src/test/ref/loop-memset-min.log index 128cecad4..58b097890 100644 --- a/src/test/ref/loop-memset-min.log +++ b/src/test/ref/loop-memset-min.log @@ -1,14 +1,14 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - memset::str#0 = (void*)SCREEN + memset::str#0 = (void *)SCREEN memset::c#0 = 'c' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:main::@1 main::@1: scope:[main] from main @@ -17,7 +17,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main memset::c#4 = phi( main/memset::c#0 ) memset::str#3 = phi( main/memset::str#0 ) @@ -34,9 +34,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -66,7 +66,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -75,58 +75,58 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 Adding number conversion cast (unumber) $3e8 in memset::num#0 = $3e8 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [8] memset::$1 = memset::num#1 <= 0 from [7] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -151,15 +151,15 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition memset::$1 [8] if(memset::num#0<=0) goto memset::@1 Simple Condition memset::$3 [15] if(memset::dst#2!=memset::end#0) goto memset::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [0] memset::str#0 = (void*)SCREEN +Constant right-side identified [0] memset::str#0 = (void *)SCREEN Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memset::str#0 = (void*)SCREEN +Constant memset::str#0 = (void *)SCREEN Constant memset::c#0 = 'c' Constant memset::num#0 = $3e8 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [8] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -177,8 +177,8 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings memset::dst#0 -Constant inlined memset::$4 = (byte*)memset::str#0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -204,18 +204,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@return main::@return: scope:[main] from main [2] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [3] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [4] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [4] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [5] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -229,15 +229,15 @@ memset::@2: scope:[memset] from memset::@1 VARIABLE REGISTER WEIGHTS void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 134.66666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 134.66666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str Initial phi equivalence classes [ memset::dst#2 memset::dst#1 ] @@ -275,7 +275,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call memset + // [1] call memset // [3] phi from main to memset [phi:main->memset] memset_from_main: jsr memset @@ -287,6 +287,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = 'c' .const num = $3e8 @@ -295,7 +296,7 @@ memset: { .label dst = 2 // [4] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [4] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [4] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -346,21 +347,21 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = 'c' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 202.0 -byte* memset::dst#2 dst zp[2]:2 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)SCREEN +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = 'c' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 202.0 +char *memset::dst#2 // dst zp[2]:2 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)SCREEN // str zp[2]:2 [ memset::dst#2 memset::dst#1 ] @@ -385,7 +386,7 @@ Score: 523 // main main: { // memset(SCREEN, 'c', 1000) - // [1] call memset + // [1] call memset // [3] phi from main to memset [phi:main->memset] jsr memset // main::@return @@ -395,6 +396,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = 'c' .const num = $3e8 @@ -402,7 +404,7 @@ memset: { .label end = str+num .label dst = 2 // [4] phi from memset to memset::@1 [phi:memset->memset::@1] - // [4] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [4] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/loop-memset-min.sym b/src/test/ref/loop-memset-min.sym index 6895424ee..316df906b 100644 --- a/src/test/ref/loop-memset-min.sym +++ b/src/test/ref/loop-memset-min.sym @@ -1,17 +1,17 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = 'c' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 202.0 -byte* memset::dst#2 dst zp[2]:2 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)SCREEN +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = 'c' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 202.0 +char *memset::dst#2 // dst zp[2]:2 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)SCREEN // str zp[2]:2 [ memset::dst#2 memset::dst#1 ] diff --git a/src/test/ref/loop-problem.log b/src/test/ref/loop-problem.log index 2ccd1f303..ea713553e 100644 --- a/src/test/ref/loop-problem.log +++ b/src/test/ref/loop-problem.log @@ -1,14 +1,14 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 *SCREEN = '0' - call d + call d to:main::@1 main::@1: scope:[main] from main - call b + call b to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -22,7 +22,7 @@ b: scope:[b] from main::@1 to:b::@1 b::@1: scope:[b] from b b::@2 b::i#3 = phi( b/b::i#0, b::@2/b::i#1 ) - call d + call d to:b::@2 b::@2: scope:[b] from b::@1 b::i#2 = phi( b::@1/b::i#3 ) @@ -48,7 +48,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -57,19 +57,19 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void b() -bool~ b::$1 -byte b::i -byte b::i#0 -byte b::i#1 -byte b::i#2 -byte b::i#3 +bool b::$1 +char b::i +char b::i#0 +char b::i#1 +char b::i#2 +char b::i#3 void d() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias b::i#2 = b::i#3 Successful SSA optimization Pass2AliasElimination @@ -90,7 +90,7 @@ Adding number conversion cast (unumber) 4 in [7] if(b::i#1!=4) goto b::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings b::i#0 Constant inlined b::i#0 = 0 @@ -116,11 +116,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *SCREEN = '0' - [1] call d + [1] call d to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call b + [3] call b to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -140,7 +140,7 @@ b: scope:[b] from main::@1 to:b::@1 b::@1: scope:[b] from b b::@2 [8] b::i#2 = phi( b/0, b::@2/b::i#1 ) - [9] call d + [9] call d to:b::@2 b::@2: scope:[b] from b::@1 [10] b::i#1 = ++ b::i#2 @@ -154,9 +154,9 @@ null depth in calling loop Loop head: b::@1 tails: b::@2 blocks: b::@2 b::@1 in VARIABLE REGISTER WEIGHTS void b() -byte b::i -byte b::i#1 151.5 -byte b::i#2 101.0 +char b::i +char b::i#1 // 151.5 +char b::i#2 // 101.0 void d() void main() @@ -200,14 +200,14 @@ main: { // [0] *SCREEN = '0' -- _deref_pbuc1=vbuc2 lda #'0' sta SCREEN - // [1] call d + // [1] call d jsr d // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call b + // [3] call b // [7] phi from main::@1 to b [phi:main::@1->b] b_from___b1: jsr b @@ -240,7 +240,7 @@ b: { jmp __b1 // b::@1 __b1: - // [9] call d + // [9] call d jsr d jmp __b2 // b::@2 @@ -282,11 +282,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void b() -byte b::i -byte b::i#1 reg byte x 151.5 -byte b::i#2 reg byte x 101.0 +char b::i +char b::i#1 // reg byte x 151.5 +char b::i#2 // reg byte x 101.0 void d() void main() @@ -317,12 +317,12 @@ main: { lda #'0' sta SCREEN // d() - // [1] call d + // [1] call d jsr d // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // b() - // [3] call b + // [3] call b // [7] phi from main::@1 to b [phi:main::@1->b] jsr b // main::@return @@ -350,7 +350,7 @@ b: { // b::@1 __b1: // d() - // [9] call d + // [9] call d jsr d // b::@2 // for( byte i: 0..3) diff --git a/src/test/ref/loop-problem.sym b/src/test/ref/loop-problem.sym index 888dc99d8..2b37f9dd4 100644 --- a/src/test/ref/loop-problem.sym +++ b/src/test/ref/loop-problem.sym @@ -1,8 +1,8 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void b() -byte b::i -byte b::i#1 reg byte x 151.5 -byte b::i#2 reg byte x 101.0 +char b::i +char b::i#1 // reg byte x 151.5 +char b::i#2 // reg byte x 101.0 void d() void main() diff --git a/src/test/ref/loop-problem2.log b/src/test/ref/loop-problem2.log index 1e733f7fe..7a74d1625 100644 --- a/src/test/ref/loop-problem2.log +++ b/src/test/ref/loop-problem2.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call print_cls + call print_cls to:main::@1 main::@1: scope:[main] from main - call mode_ctrl + call mode_ctrl to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -55,7 +55,7 @@ mode_ctrl::@return: scope:[mode_ctrl] from mode_ctrl::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -64,21 +64,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const SCREEN = (byte*)$400 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const SCREEN = (char *)$400 void __start() void main() void mode_ctrl() -bool~ mode_ctrl::$0 -byte mode_ctrl::before -byte mode_ctrl::before#0 +bool mode_ctrl::$0 +char mode_ctrl::before +char mode_ctrl::before#0 void print_cls() -bool~ print_cls::$0 -byte* print_cls::sc -byte* print_cls::sc#0 -byte* print_cls::sc#1 -byte* print_cls::sc#2 -byte* print_cls::sc#3 +bool print_cls::$0 +char *print_cls::sc +char *print_cls::sc#0 +char *print_cls::sc#1 +char *print_cls::sc#2 +char *print_cls::sc#3 Adding number conversion cast (unumber) $3e8 in print_cls::$0 = print_cls::sc#2 != SCREEN+$3e8 Adding number conversion cast (unumber) $ff in mode_ctrl::$0 = mode_ctrl::before#0 == $ff @@ -88,17 +88,17 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *BORDER_COLOR = (unumber)2 Inlining cast *BORDER_COLOR = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3e8 Simplifying constant integer cast $ff Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias print_cls::sc#2 = print_cls::sc#3 Successful SSA optimization Pass2AliasElimination @@ -146,11 +146,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call mode_ctrl + [3] call mode_ctrl to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -191,12 +191,12 @@ mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl::@1 VARIABLE REGISTER WEIGHTS void main() void mode_ctrl() -byte mode_ctrl::before -byte mode_ctrl::before#0 202.0 +char mode_ctrl::before +char mode_ctrl::before#0 // 202.0 void print_cls() -byte* print_cls::sc -byte* print_cls::sc#1 202.0 -byte* print_cls::sc#2 134.66666666666666 +char *print_cls::sc +char *print_cls::sc#1 // 202.0 +char *print_cls::sc#2 // 134.66666666666666 Initial phi equivalence classes [ print_cls::sc#2 print_cls::sc#1 ] @@ -242,7 +242,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_cls + // [1] call print_cls // [5] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -251,7 +251,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call mode_ctrl + // [3] call mode_ctrl // [11] phi from main::@1 to mode_ctrl [phi:main::@1->mode_ctrl] mode_ctrl_from___b1: jsr mode_ctrl @@ -349,16 +349,16 @@ Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const SCREEN = (char *) 1024 void main() void mode_ctrl() -byte mode_ctrl::before -byte mode_ctrl::before#0 reg byte a 202.0 +char mode_ctrl::before +char mode_ctrl::before#0 // reg byte a 202.0 void print_cls() -byte* print_cls::sc -byte* print_cls::sc#1 sc zp[2]:2 202.0 -byte* print_cls::sc#2 sc zp[2]:2 134.66666666666666 +char *print_cls::sc +char *print_cls::sc#1 // sc zp[2]:2 202.0 +char *print_cls::sc#2 // sc zp[2]:2 134.66666666666666 zp[2]:2 [ print_cls::sc#2 print_cls::sc#1 ] reg byte a [ mode_ctrl::before#0 ] @@ -384,13 +384,13 @@ Score: 794 // main main: { // print_cls() - // [1] call print_cls + // [1] call print_cls // [5] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // mode_ctrl() - // [3] call mode_ctrl + // [3] call mode_ctrl // [11] phi from main::@1 to mode_ctrl [phi:main::@1->mode_ctrl] jsr mode_ctrl // main::@return diff --git a/src/test/ref/loop-problem2.sym b/src/test/ref/loop-problem2.sym index 4839a2aa8..2e8434740 100644 --- a/src/test/ref/loop-problem2.sym +++ b/src/test/ref/loop-problem2.sym @@ -1,13 +1,13 @@ -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const SCREEN = (char *) 1024 void main() void mode_ctrl() -byte mode_ctrl::before -byte mode_ctrl::before#0 reg byte a 202.0 +char mode_ctrl::before +char mode_ctrl::before#0 // reg byte a 202.0 void print_cls() -byte* print_cls::sc -byte* print_cls::sc#1 sc zp[2]:2 202.0 -byte* print_cls::sc#2 sc zp[2]:2 134.66666666666666 +char *print_cls::sc +char *print_cls::sc#1 // sc zp[2]:2 202.0 +char *print_cls::sc#2 // sc zp[2]:2 134.66666666666666 zp[2]:2 [ print_cls::sc#2 print_cls::sc#1 ] reg byte a [ mode_ctrl::before#0 ] diff --git a/src/test/ref/loop-problem3.cfg b/src/test/ref/loop-problem3.cfg index c40bc090e..e883b322c 100644 --- a/src/test/ref/loop-problem3.cfg +++ b/src/test/ref/loop-problem3.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 main::@2 - [1] main::sc#2 = phi( main/(byte*) 1024, main::@2/main::sc#1, main::@1/(byte*) 1024 ) + [1] main::sc#2 = phi( main/(char *) 1024, main::@2/main::sc#1, main::@1/(char *) 1024 ) [2] if(main::sc#2<$800) goto main::@2 to:main::@1 main::@2: scope:[main] from main::@1 diff --git a/src/test/ref/loop-problem3.log b/src/test/ref/loop-problem3.log index ce1fa97c1..2d22f1480 100644 --- a/src/test/ref/loop-problem3.log +++ b/src/test/ref/loop-problem3.log @@ -5,7 +5,7 @@ void main() main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 - main::sc#0 = (byte*)$400 + main::sc#0 = (char *)$400 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 main::sc#2 = phi( main::@1/main::sc#0, main::@3/main::sc#1 ) @@ -23,7 +23,7 @@ main::@return: scope:[main] from void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,25 +34,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc#3 +bool main::$0 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc#3 Adding number conversion cast (unumber) $800 in main::$0 = main::sc#2 < $800 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $800 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $800 +Finalized unsigned number type (unsigned int) $800 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::sc#2 = main::sc#3 Successful SSA optimization Pass2AliasElimination Simple Condition main::$0 [3] if(main::sc#2<$800) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::sc#0 = (byte*) 1024 +Constant main::sc#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -62,7 +62,7 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::sc#0 -Constant inlined main::sc#0 = (byte*) 1024 +Constant inlined main::sc#0 = (char *) 1024 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -83,7 +83,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 main::@2 - [1] main::sc#2 = phi( main/(byte*) 1024, main::@2/main::sc#1, main::@1/(byte*) 1024 ) + [1] main::sc#2 = phi( main/(char *) 1024, main::@2/main::sc#1, main::@1/(char *) 1024 ) [2] if(main::sc#2<$800) goto main::@2 to:main::@1 main::@2: scope:[main] from main::@1 @@ -94,9 +94,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::sc -byte* main::sc#1 22.0 -byte* main::sc#2 48.33333333333332 +char *main::sc +char *main::sc#1 // 22.0 +char *main::sc#2 // 48.33333333333332 Initial phi equivalence classes [ main::sc#2 main::sc#1 ] @@ -135,7 +135,7 @@ main: { // [1] phi from main main::@1 to main::@1 [phi:main/main::@1->main::@1] __b1_from_main: __b1_from___b1: - // [1] phi main::sc#2 = (byte*) 1024 [phi:main/main::@1->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::sc#2 = (char *) 1024 [phi:main/main::@1->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z sc lda #>$400 @@ -188,9 +188,9 @@ Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE void main() -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 48.33333333333332 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 48.33333333333332 zp[2]:2 [ main::sc#2 main::sc#1 ] @@ -216,7 +216,7 @@ main: { .label sc = 2 // [1] phi from main main::@1 to main::@1 [phi:main/main::@1->main::@1] __b3: - // [1] phi main::sc#2 = (byte*) 1024 [phi:main/main::@1->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::sc#2 = (char *) 1024 [phi:main/main::@1->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z sc lda #>$400 diff --git a/src/test/ref/loop-problem3.sym b/src/test/ref/loop-problem3.sym index 4b7b40e5e..5433916a8 100644 --- a/src/test/ref/loop-problem3.sym +++ b/src/test/ref/loop-problem3.sym @@ -1,6 +1,6 @@ void main() -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 48.33333333333332 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 48.33333333333332 zp[2]:2 [ main::sc#2 main::sc#1 ] diff --git a/src/test/ref/loop-while-continue.log b/src/test/ref/loop-while-continue.log index d7286c0c5..748a5bdd2 100644 --- a/src/test/ref/loop-while-continue.log +++ b/src/test/ref/loop-while-continue.log @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,28 +36,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) $28*6 in main::$0 = main::i#1 < $28*6 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Inversing boolean not [7] main::$2 = SCREEN[main::i#3] != ' ' from [6] main::$1 = SCREEN[main::i#3] == ' ' Successful SSA optimization Pass2UnaryNotSimplification Alias main::i#1 = main::i#3 main::i#4 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$0 [4] if(main::i#1<(byte)$28*6) goto main::@2 +Simple Condition main::$0 [4] if(main::i#1<(char)$28*6) goto main::@2 Simple Condition main::$2 [6] if(SCREEN[main::i#1]!=' ') goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [6] if(SCREEN[main::i#1]==' ') goto main::@1 @@ -72,8 +72,8 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*6 Successful SSA optimization PassNCastSimplification @@ -112,9 +112,9 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 109.25 -byte main::i#2 213.0 +char main::i +char main::i#1 // 109.25 +char main::i#2 // 213.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -206,11 +206,11 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 109.25 -byte main::i#2 reg byte x 213.0 +char main::i +char main::i#1 // reg byte x 109.25 +char main::i#2 // reg byte x 213.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-while-continue.sym b/src/test/ref/loop-while-continue.sym index 5ac8afcd9..6355a89e2 100644 --- a/src/test/ref/loop-while-continue.sym +++ b/src/test/ref/loop-while-continue.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 109.25 -byte main::i#2 reg byte x 213.0 +char main::i +char main::i#1 // reg byte x 109.25 +char main::i#2 // reg byte x 213.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-while-min.log b/src/test/ref/loop-while-min.log index 0b0c3d81b..78acaa5e8 100644 --- a/src/test/ref/loop-while-min.log +++ b/src/test/ref/loop-while-min.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -35,22 +35,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $64 in main::$0 = main::i#2 != $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -97,9 +97,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -172,11 +172,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-while-min.sym b/src/test/ref/loop-while-min.sym index 040e89745..e729ab255 100644 --- a/src/test/ref/loop-while-min.sym +++ b/src/test/ref/loop-while-min.sym @@ -1,7 +1,7 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop-while-sideeffect.log b/src/test/ref/loop-while-sideeffect.log index 30f9391d4..73bc95444 100644 --- a/src/test/ref/loop-while-sideeffect.log +++ b/src/test/ref/loop-while-sideeffect.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -30,7 +30,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -39,23 +39,23 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) 7 in main::$0 = main::i#2 != 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#1 = main::i#3 main::i#4 Successful SSA optimization Pass2AliasElimination @@ -106,10 +106,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 15.333333333333332 -byte main::i#2 16.5 -byte main::i#5 22.0 +char main::i +char main::i#1 // 15.333333333333332 +char main::i#2 // 16.5 +char main::i#5 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#5 ] @@ -199,12 +199,12 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 15.333333333333332 -byte main::i#2 reg byte a 16.5 -byte main::i#5 reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 15.333333333333332 +char main::i#2 // reg byte a 16.5 +char main::i#5 // reg byte a 22.0 reg byte a [ main::i#2 main::i#5 ] reg byte x [ main::i#1 ] diff --git a/src/test/ref/loop-while-sideeffect.sym b/src/test/ref/loop-while-sideeffect.sym index ebc0a46c4..414a10e45 100644 --- a/src/test/ref/loop-while-sideeffect.sym +++ b/src/test/ref/loop-while-sideeffect.sym @@ -1,9 +1,9 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 15.333333333333332 -byte main::i#2 reg byte a 16.5 -byte main::i#5 reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 15.333333333333332 +char main::i#2 // reg byte a 16.5 +char main::i#5 // reg byte a 22.0 reg byte a [ main::i#2 main::i#5 ] reg byte x [ main::i#1 ] diff --git a/src/test/ref/loop100.log b/src/test/ref/loop100.log index 36e5e5092..392dd9e5e 100644 --- a/src/test/ref/loop100.log +++ b/src/test/ref/loop100.log @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,18 +31,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $64 in main::$0 = main::i#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -86,9 +86,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 16.5 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -157,9 +157,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loop100.sym b/src/test/ref/loop100.sym index e14de9e00..257adf056 100644 --- a/src/test/ref/loop100.sym +++ b/src/test/ref/loop100.sym @@ -1,6 +1,6 @@ void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loophead-problem-2.cfg b/src/test/ref/loophead-problem-2.cfg index deebd38e8..f44d77aac 100644 --- a/src/test/ref/loophead-problem-2.cfg +++ b/src/test/ref/loophead-problem-2.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call scan_for_lowest + [1] call scan_for_lowest [2] scan_for_lowest::return#0 = scan_for_lowest::lowest#2 to:main::@1 main::@1: scope:[main] from main @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 [10] return to:@return -byte scan_for_lowest() +char scan_for_lowest() scan_for_lowest: scope:[scan_for_lowest] from main [11] phi() to:scan_for_lowest::@1 diff --git a/src/test/ref/loophead-problem-2.log b/src/test/ref/loophead-problem-2.log index 0a52fcd37..c6a822c57 100644 --- a/src/test/ref/loophead-problem-2.log +++ b/src/test/ref/loophead-problem-2.log @@ -4,17 +4,17 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call scan_for_lowest + call scan_for_lowest scan_for_lowest::return#0 = scan_for_lowest::return#2 to:main::@1 main::@1: scope:[main] from main scan_for_lowest::return#3 = phi( main/scan_for_lowest::return#0 ) main::hit_check#0 = scan_for_lowest::return#3 main::screen[0] = main::hit_check#0 - main::$3 = main::hit_check#0 * SIZEOF_SIGNED_WORD + main::$3 = main::hit_check#0 * SIZEOF_INT main::$1 = byte0 ball_y[main::$3] main::screen[2] = main::$1 - main::$4 = main::hit_check#0 * SIZEOF_SIGNED_WORD + main::$4 = main::hit_check#0 * SIZEOF_INT main::$2 = byte1 ball_y[main::$4] main::screen[3] = main::$2 to:main::@return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 return to:@return -byte scan_for_lowest() +char scan_for_lowest() scan_for_lowest: scope:[scan_for_lowest] from main scan_for_lowest::lowest#0 = $ff scan_for_lowest::height#0 = $258 @@ -39,7 +39,7 @@ scan_for_lowest::@2: scope:[scan_for_lowest] from scan_for_lowest::@1 scan_for_lowest::lowest#5 = phi( scan_for_lowest::@1/scan_for_lowest::lowest#3 ) scan_for_lowest::height#2 = phi( scan_for_lowest::@1/scan_for_lowest::height#3 ) scan_for_lowest::i#3 = phi( scan_for_lowest::@1/scan_for_lowest::i#2 ) - scan_for_lowest::$3 = scan_for_lowest::i#3 * SIZEOF_SIGNED_WORD + scan_for_lowest::$3 = scan_for_lowest::i#3 * SIZEOF_INT scan_for_lowest::$1 = ball_y[scan_for_lowest::$3] < scan_for_lowest::height#2 scan_for_lowest::$2 = ! scan_for_lowest::$1 if(scan_for_lowest::$2) goto scan_for_lowest::@4 @@ -56,7 +56,7 @@ scan_for_lowest::@4: scope:[scan_for_lowest] from scan_for_lowest::@2 scan_for_ to:scan_for_lowest::@1 scan_for_lowest::@5: scope:[scan_for_lowest] from scan_for_lowest::@2 scan_for_lowest::i#5 = phi( scan_for_lowest::@2/scan_for_lowest::i#3 ) - scan_for_lowest::$4 = scan_for_lowest::i#5 * SIZEOF_SIGNED_WORD + scan_for_lowest::$4 = scan_for_lowest::i#5 * SIZEOF_INT scan_for_lowest::height#1 = ball_y[scan_for_lowest::$4] scan_for_lowest::lowest#1 = scan_for_lowest::i#5 to:scan_for_lowest::@4 @@ -68,7 +68,7 @@ scan_for_lowest::@return: scope:[scan_for_lowest] from scan_for_lowest::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -77,65 +77,65 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() -constant signed word* ball_y[8] = { $32, $64, -$c8, $c, -$64, $4b, 0, -$79 } +__constant int ball_y[8] = { $32, $64, -$c8, $c, -$64, $4b, 0, -$79 } void main() -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte main::hit_check -byte main::hit_check#0 -constant byte* const main::screen = (byte*)$400 -byte scan_for_lowest() -bool~ scan_for_lowest::$0 -bool~ scan_for_lowest::$1 -bool~ scan_for_lowest::$2 -byte~ scan_for_lowest::$3 -byte~ scan_for_lowest::$4 -signed word scan_for_lowest::height -signed word scan_for_lowest::height#0 -signed word scan_for_lowest::height#1 -signed word scan_for_lowest::height#2 -signed word scan_for_lowest::height#3 -signed word scan_for_lowest::height#4 -byte scan_for_lowest::i -byte scan_for_lowest::i#0 -byte scan_for_lowest::i#1 -byte scan_for_lowest::i#2 -byte scan_for_lowest::i#3 -byte scan_for_lowest::i#4 -byte scan_for_lowest::i#5 -byte scan_for_lowest::lowest -byte scan_for_lowest::lowest#0 -byte scan_for_lowest::lowest#1 -byte scan_for_lowest::lowest#2 -byte scan_for_lowest::lowest#3 -byte scan_for_lowest::lowest#4 -byte scan_for_lowest::lowest#5 -byte scan_for_lowest::return -byte scan_for_lowest::return#0 -byte scan_for_lowest::return#1 -byte scan_for_lowest::return#2 -byte scan_for_lowest::return#3 -byte scan_for_lowest::return#4 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::hit_check +char main::hit_check#0 +__constant char * const main::screen = (char *)$400 +char scan_for_lowest() +bool scan_for_lowest::$0 +bool scan_for_lowest::$1 +bool scan_for_lowest::$2 +char scan_for_lowest::$3 +char scan_for_lowest::$4 +int scan_for_lowest::height +int scan_for_lowest::height#0 +int scan_for_lowest::height#1 +int scan_for_lowest::height#2 +int scan_for_lowest::height#3 +int scan_for_lowest::height#4 +char scan_for_lowest::i +char scan_for_lowest::i#0 +char scan_for_lowest::i#1 +char scan_for_lowest::i#2 +char scan_for_lowest::i#3 +char scan_for_lowest::i#4 +char scan_for_lowest::i#5 +char scan_for_lowest::lowest +char scan_for_lowest::lowest#0 +char scan_for_lowest::lowest#1 +char scan_for_lowest::lowest#2 +char scan_for_lowest::lowest#3 +char scan_for_lowest::lowest#4 +char scan_for_lowest::lowest#5 +char scan_for_lowest::return +char scan_for_lowest::return#0 +char scan_for_lowest::return#1 +char scan_for_lowest::return#2 +char scan_for_lowest::return#3 +char scan_for_lowest::return#4 Adding number conversion cast (unumber) 0 in main::screen[0] = main::hit_check#0 Adding number conversion cast (unumber) 2 in main::screen[2] = main::$1 Adding number conversion cast (unumber) 3 in main::screen[3] = main::$2 Adding number conversion cast (unumber) 8 in scan_for_lowest::$0 = scan_for_lowest::i#2 < 8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [21] scan_for_lowest::$2 = ball_y[scan_for_lowest::$3] >= scan_for_lowest::height#2 from [20] scan_for_lowest::$1 = ball_y[scan_for_lowest::$3] < scan_for_lowest::height#2 Successful SSA optimization Pass2UnaryNotSimplification @@ -147,7 +147,7 @@ Successful SSA optimization Pass2AliasElimination Alias candidate removed (phi-usage) scan_for_lowest::i#2 = scan_for_lowest::i#4 Identical Phi Values scan_for_lowest::i#4 scan_for_lowest::i#2 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [8] main::$4 = main::hit_check#0 * SIZEOF_SIGNED_WORD +Identified duplicate assignment right side [8] main::$4 = main::hit_check#0 * SIZEOF_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition scan_for_lowest::$0 [16] if(scan_for_lowest::i#2<8) goto scan_for_lowest::@2 Simple Condition scan_for_lowest::$2 [19] if(ball_y[scan_for_lowest::$3]>=scan_for_lowest::height#2) goto scan_for_lowest::@4 @@ -165,9 +165,9 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Alias main::$4 = main::$3 Successful SSA optimization Pass2AliasElimination -Rewriting multiplication to use shift [4] main::$4 = main::hit_check#0 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [12] scan_for_lowest::$3 = scan_for_lowest::i#2 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [16] scan_for_lowest::$4 = scan_for_lowest::i#2 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [4] main::$4 = main::hit_check#0 * SIZEOF_INT +Rewriting multiplication to use shift [12] scan_for_lowest::$3 = scan_for_lowest::i#2 * SIZEOF_INT +Rewriting multiplication to use shift [16] scan_for_lowest::$4 = scan_for_lowest::i#2 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings scan_for_lowest::lowest#0 Inlining constant with var siblings scan_for_lowest::height#0 @@ -181,11 +181,11 @@ Consolidated array index constant in *(main::screen+3) Successful SSA optimization Pass2ConstantAdditionElimination Identified duplicate assignment right side [16] scan_for_lowest::$4 = scan_for_lowest::i#2 << 1 Successful SSA optimization Pass2DuplicateRValueIdentification -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Alias scan_for_lowest::$4 = scan_for_lowest::$3 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting scan_for_lowest::@6(between scan_for_lowest::@2 and scan_for_lowest::@4) Adding NOP phi() at start of main @@ -215,7 +215,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call scan_for_lowest + [1] call scan_for_lowest [2] scan_for_lowest::return#0 = scan_for_lowest::lowest#2 to:main::@1 main::@1: scope:[main] from main @@ -231,7 +231,7 @@ main::@return: scope:[main] from main::@1 [10] return to:@return -byte scan_for_lowest() +char scan_for_lowest() scan_for_lowest: scope:[scan_for_lowest] from main [11] phi() to:scan_for_lowest::@1 @@ -261,26 +261,26 @@ scan_for_lowest::@3: scope:[scan_for_lowest] from scan_for_lowest::@2 scan_for_ VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$4 2.0 -byte main::hit_check -byte main::hit_check#0 3.0 -byte scan_for_lowest() -byte~ scan_for_lowest::$4 151.5 -signed word scan_for_lowest::height -signed word scan_for_lowest::height#1 101.0 -signed word scan_for_lowest::height#2 75.75 -signed word scan_for_lowest::height#4 151.5 -byte scan_for_lowest::i -byte scan_for_lowest::i#1 202.0 -byte scan_for_lowest::i#2 72.14285714285714 -byte scan_for_lowest::lowest -byte scan_for_lowest::lowest#2 34.0 -byte scan_for_lowest::lowest#4 151.5 -byte scan_for_lowest::lowest#8 202.0 -byte scan_for_lowest::return -byte scan_for_lowest::return#0 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$4 // 2.0 +char main::hit_check +char main::hit_check#0 // 3.0 +char scan_for_lowest() +char scan_for_lowest::$4 // 151.5 +int scan_for_lowest::height +int scan_for_lowest::height#1 // 101.0 +int scan_for_lowest::height#2 // 75.75 +int scan_for_lowest::height#4 // 151.5 +char scan_for_lowest::i +char scan_for_lowest::i#1 // 202.0 +char scan_for_lowest::i#2 // 72.14285714285714 +char scan_for_lowest::lowest +char scan_for_lowest::lowest#2 // 34.0 +char scan_for_lowest::lowest#4 // 151.5 +char scan_for_lowest::lowest#8 // 202.0 +char scan_for_lowest::return +char scan_for_lowest::return#0 // 4.0 Initial phi equivalence classes [ scan_for_lowest::i#2 scan_for_lowest::i#1 ] @@ -372,7 +372,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label screen = $400 - // [1] call scan_for_lowest + // [1] call scan_for_lowest // [11] phi from main to scan_for_lowest [phi:main->scan_for_lowest] scan_for_lowest_from_main: jsr scan_for_lowest @@ -496,29 +496,29 @@ Removing instruction __b1_from___b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant signed word* ball_y[8] = { $32, $64, -$c8, $c, -$64, $4b, 0, -$79 } +__constant int ball_y[8] = { $32, $64, -$c8, $c, -$64, $4b, 0, -$79 } void main() -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$4 reg byte x 2.0 -byte main::hit_check -byte main::hit_check#0 reg byte a 3.0 -constant byte* const main::screen = (byte*) 1024 -byte scan_for_lowest() -byte~ scan_for_lowest::$4 reg byte x 151.5 -signed word scan_for_lowest::height -signed word scan_for_lowest::height#1 height zp[2]:2 101.0 -signed word scan_for_lowest::height#2 height zp[2]:2 75.75 -signed word scan_for_lowest::height#4 height zp[2]:2 151.5 -byte scan_for_lowest::i -byte scan_for_lowest::i#1 reg byte y 202.0 -byte scan_for_lowest::i#2 reg byte y 72.14285714285714 -byte scan_for_lowest::lowest -byte scan_for_lowest::lowest#2 lowest zp[1]:4 34.0 -byte scan_for_lowest::lowest#4 lowest zp[1]:4 151.5 -byte scan_for_lowest::lowest#8 lowest zp[1]:4 202.0 -byte scan_for_lowest::return -byte scan_for_lowest::return#0 reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$4 // reg byte x 2.0 +char main::hit_check +char main::hit_check#0 // reg byte a 3.0 +__constant char * const main::screen = (char *) 1024 +char scan_for_lowest() +char scan_for_lowest::$4 // reg byte x 151.5 +int scan_for_lowest::height +int scan_for_lowest::height#1 // height zp[2]:2 101.0 +int scan_for_lowest::height#2 // height zp[2]:2 75.75 +int scan_for_lowest::height#4 // height zp[2]:2 151.5 +char scan_for_lowest::i +char scan_for_lowest::i#1 // reg byte y 202.0 +char scan_for_lowest::i#2 // reg byte y 72.14285714285714 +char scan_for_lowest::lowest +char scan_for_lowest::lowest#2 // lowest zp[1]:4 34.0 +char scan_for_lowest::lowest#4 // lowest zp[1]:4 151.5 +char scan_for_lowest::lowest#8 // lowest zp[1]:4 202.0 +char scan_for_lowest::return +char scan_for_lowest::return#0 // reg byte a 4.0 reg byte y [ scan_for_lowest::i#2 scan_for_lowest::i#1 ] zp[2]:2 [ scan_for_lowest::height#2 scan_for_lowest::height#4 scan_for_lowest::height#1 ] @@ -553,7 +553,7 @@ Score: 770 main: { .label screen = $400 // char hit_check=scan_for_lowest() - // [1] call scan_for_lowest + // [1] call scan_for_lowest // [11] phi from main to scan_for_lowest [phi:main->scan_for_lowest] jsr scan_for_lowest // char hit_check=scan_for_lowest() diff --git a/src/test/ref/loophead-problem-2.sym b/src/test/ref/loophead-problem-2.sym index 9c4d21163..1aa327858 100644 --- a/src/test/ref/loophead-problem-2.sym +++ b/src/test/ref/loophead-problem-2.sym @@ -1,26 +1,26 @@ -constant signed word* ball_y[8] = { $32, $64, -$c8, $c, -$64, $4b, 0, -$79 } +__constant int ball_y[8] = { $32, $64, -$c8, $c, -$64, $4b, 0, -$79 } void main() -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$4 reg byte x 2.0 -byte main::hit_check -byte main::hit_check#0 reg byte a 3.0 -constant byte* const main::screen = (byte*) 1024 -byte scan_for_lowest() -byte~ scan_for_lowest::$4 reg byte x 151.5 -signed word scan_for_lowest::height -signed word scan_for_lowest::height#1 height zp[2]:2 101.0 -signed word scan_for_lowest::height#2 height zp[2]:2 75.75 -signed word scan_for_lowest::height#4 height zp[2]:2 151.5 -byte scan_for_lowest::i -byte scan_for_lowest::i#1 reg byte y 202.0 -byte scan_for_lowest::i#2 reg byte y 72.14285714285714 -byte scan_for_lowest::lowest -byte scan_for_lowest::lowest#2 lowest zp[1]:4 34.0 -byte scan_for_lowest::lowest#4 lowest zp[1]:4 151.5 -byte scan_for_lowest::lowest#8 lowest zp[1]:4 202.0 -byte scan_for_lowest::return -byte scan_for_lowest::return#0 reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$4 // reg byte x 2.0 +char main::hit_check +char main::hit_check#0 // reg byte a 3.0 +__constant char * const main::screen = (char *) 1024 +char scan_for_lowest() +char scan_for_lowest::$4 // reg byte x 151.5 +int scan_for_lowest::height +int scan_for_lowest::height#1 // height zp[2]:2 101.0 +int scan_for_lowest::height#2 // height zp[2]:2 75.75 +int scan_for_lowest::height#4 // height zp[2]:2 151.5 +char scan_for_lowest::i +char scan_for_lowest::i#1 // reg byte y 202.0 +char scan_for_lowest::i#2 // reg byte y 72.14285714285714 +char scan_for_lowest::lowest +char scan_for_lowest::lowest#2 // lowest zp[1]:4 34.0 +char scan_for_lowest::lowest#4 // lowest zp[1]:4 151.5 +char scan_for_lowest::lowest#8 // lowest zp[1]:4 202.0 +char scan_for_lowest::return +char scan_for_lowest::return#0 // reg byte a 4.0 reg byte y [ scan_for_lowest::i#2 scan_for_lowest::i#1 ] zp[2]:2 [ scan_for_lowest::height#2 scan_for_lowest::height#4 scan_for_lowest::height#1 ] diff --git a/src/test/ref/loophead-problem-3.asm b/src/test/ref/loophead-problem-3.asm index 095658e99..87176d61d 100644 --- a/src/test/ref/loophead-problem-3.asm +++ b/src/test/ref/loophead-problem-3.asm @@ -36,7 +36,7 @@ main: { rts } // Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// mul16u(word zp($a) a) +// __zp(2) unsigned long mul16u(__zp($a) unsigned int a, unsigned int b) mul16u: { .const b = $7b .label a = $a diff --git a/src/test/ref/loophead-problem-3.cfg b/src/test/ref/loophead-problem-3.cfg index f297fc83e..987e85770 100644 --- a/src/test/ref/loophead-problem-3.cfg +++ b/src/test/ref/loophead-problem-3.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call mul16u + [1] call mul16u [2] mul16u::return#2 = mul16u::res#2 to:main::@1 main::@1: scope:[main] from main @@ -17,12 +17,12 @@ main::@return: scope:[main] from main::@1 [9] return to:@return -dword mul16u(word mul16u::a , word mul16u::b) +unsigned long mul16u(unsigned int a , unsigned int b) mul16u: scope:[mul16u] from main [10] phi() to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@3 - [11] mul16u::mb#2 = phi( mul16u/(dword)mul16u::b#0, mul16u::@3/mul16u::mb#1 ) + [11] mul16u::mb#2 = phi( mul16u/(unsigned long)mul16u::b#0, mul16u::@3/mul16u::mb#1 ) [11] mul16u::res#2 = phi( mul16u/0, mul16u::@3/mul16u::res#6 ) [11] mul16u::a#2 = phi( mul16u/4, mul16u::@3/mul16u::a#0 ) [12] if(mul16u::a#2!=0) goto mul16u::@2 diff --git a/src/test/ref/loophead-problem-3.log b/src/test/ref/loophead-problem-3.log index 1a3e7d9f4..b2f3d1f0e 100644 --- a/src/test/ref/loophead-problem-3.log +++ b/src/test/ref/loophead-problem-3.log @@ -4,12 +4,12 @@ Eliminating unused variable with no statement main::$1 CONTROL FLOW GRAPH SSA -dword mul16u(word mul16u::a , word mul16u::b) +unsigned long mul16u(unsigned int a , unsigned int b) mul16u: scope:[mul16u] from main mul16u::a#5 = phi( main/mul16u::a#1 ) mul16u::b#1 = phi( main/mul16u::b#0 ) mul16u::res#0 = 0 - mul16u::mb#0 = (dword)mul16u::b#1 + mul16u::mb#0 = (unsigned long)mul16u::b#1 to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@4 mul16u::mb#5 = phi( mul16u/mul16u::mb#0, mul16u::@4/mul16u::mb#1 ) @@ -57,7 +57,7 @@ void main() main: scope:[main] from __start mul16u::a#1 = 4 mul16u::b#0 = $7b - call mul16u + call mul16u mul16u::return#2 = mul16u::return#1 to:main::@1 main::@1: scope:[main] from main @@ -75,7 +75,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -84,56 +84,56 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const BORDER_COLOR = (byte*)$d020 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const BORDER_COLOR = (char *)$d020 void __start() void main() -byte~ main::$2 -byte~ main::$3 -word main::kaputt -word main::kaputt#0 -dword main::result -dword main::result#0 -dword mul16u(word mul16u::a , word mul16u::b) -bool~ mul16u::$0 -number~ mul16u::$1 -bool~ mul16u::$2 -bool~ mul16u::$3 -dword~ mul16u::$4 -word~ mul16u::$5 -dword~ mul16u::$6 -word mul16u::a -word mul16u::a#0 -word mul16u::a#1 -word mul16u::a#2 -word mul16u::a#3 -word mul16u::a#4 -word mul16u::a#5 -word mul16u::a#6 -word mul16u::b -word mul16u::b#0 -word mul16u::b#1 -dword mul16u::mb -dword mul16u::mb#0 -dword mul16u::mb#1 -dword mul16u::mb#2 -dword mul16u::mb#3 -dword mul16u::mb#4 -dword mul16u::mb#5 -dword mul16u::res -dword mul16u::res#0 -dword mul16u::res#1 -dword mul16u::res#2 -dword mul16u::res#3 -dword mul16u::res#4 -dword mul16u::res#5 -dword mul16u::res#6 -dword mul16u::return -dword mul16u::return#0 -dword mul16u::return#1 -dword mul16u::return#2 -dword mul16u::return#3 -dword mul16u::return#4 +char main::$2 +char main::$3 +unsigned int main::kaputt +unsigned int main::kaputt#0 +unsigned long main::result +unsigned long main::result#0 +unsigned long mul16u(unsigned int a , unsigned int b) +bool mul16u::$0 +number mul16u::$1 +bool mul16u::$2 +bool mul16u::$3 +unsigned long mul16u::$4 +unsigned int mul16u::$5 +unsigned long mul16u::$6 +unsigned int mul16u::a +unsigned int mul16u::a#0 +unsigned int mul16u::a#1 +unsigned int mul16u::a#2 +unsigned int mul16u::a#3 +unsigned int mul16u::a#4 +unsigned int mul16u::a#5 +unsigned int mul16u::a#6 +unsigned int mul16u::b +unsigned int mul16u::b#0 +unsigned int mul16u::b#1 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 +unsigned long mul16u::mb#1 +unsigned long mul16u::mb#2 +unsigned long mul16u::mb#3 +unsigned long mul16u::mb#4 +unsigned long mul16u::mb#5 +unsigned long mul16u::res +unsigned long mul16u::res#0 +unsigned long mul16u::res#1 +unsigned long mul16u::res#2 +unsigned long mul16u::res#3 +unsigned long mul16u::res#4 +unsigned long mul16u::res#5 +unsigned long mul16u::res#6 +unsigned long mul16u::return +unsigned long mul16u::return#0 +unsigned long mul16u::return#1 +unsigned long mul16u::return#2 +unsigned long mul16u::return#3 +unsigned long mul16u::return#4 Adding number conversion cast (unumber) 0 in mul16u::$0 = mul16u::a#2 != 0 Adding number conversion cast (unumber) 1 in mul16u::$1 = mul16u::a#3 & 1 @@ -147,8 +147,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast mul16u::a#1 = (unumber)4 Inlining cast mul16u::b#0 = (unumber)$7b Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -157,15 +157,15 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 4 Simplifying constant integer cast $7b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $7b +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $7b Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in mul16u::$1 = mul16u::a#3 & 1 +Inferred type updated to char in mul16u::$1 = mul16u::a#3 & 1 Inversing boolean not [9] mul16u::$3 = mul16u::$1 == 0 from [8] mul16u::$2 = mul16u::$1 != 0 Successful SSA optimization Pass2UnaryNotSimplification Alias mul16u::a#2 = mul16u::a#3 mul16u::a#6 @@ -189,7 +189,7 @@ Constant mul16u::res#0 = 0 Constant mul16u::a#1 = 4 Constant mul16u::b#0 = $7b Successful SSA optimization Pass2ConstantIdentification -Constant mul16u::mb#0 = (dword)mul16u::b#0 +Constant mul16u::mb#0 = (unsigned long)mul16u::b#0 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -199,7 +199,7 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings mul16u::res#0 Inlining constant with var siblings mul16u::a#1 Inlining constant with var siblings mul16u::mb#0 -Constant inlined mul16u::mb#0 = (dword)mul16u::b#0 +Constant inlined mul16u::mb#0 = (unsigned long)mul16u::b#0 Constant inlined mul16u::res#0 = 0 Constant inlined mul16u::a#1 = 4 Successful SSA optimization Pass2ConstantInlining @@ -229,7 +229,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call mul16u + [1] call mul16u [2] mul16u::return#2 = mul16u::res#2 to:main::@1 main::@1: scope:[main] from main @@ -244,12 +244,12 @@ main::@return: scope:[main] from main::@1 [9] return to:@return -dword mul16u(word mul16u::a , word mul16u::b) +unsigned long mul16u(unsigned int a , unsigned int b) mul16u: scope:[mul16u] from main [10] phi() to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@3 - [11] mul16u::mb#2 = phi( mul16u/(dword)mul16u::b#0, mul16u::@3/mul16u::mb#1 ) + [11] mul16u::mb#2 = phi( mul16u/(unsigned long)mul16u::b#0, mul16u::@3/mul16u::mb#1 ) [11] mul16u::res#2 = phi( mul16u/0, mul16u::@3/mul16u::res#6 ) [11] mul16u::a#2 = phi( mul16u/4, mul16u::@3/mul16u::a#0 ) [12] if(mul16u::a#2!=0) goto mul16u::@2 @@ -273,27 +273,27 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 4.0 -byte~ main::$3 4.0 -word main::kaputt -word main::kaputt#0 2.0 -dword main::result -dword main::result#0 4.0 -dword mul16u(word mul16u::a , word mul16u::b) -byte~ mul16u::$1 202.0 -word mul16u::a -word mul16u::a#0 101.0 -word mul16u::a#2 67.33333333333333 -word mul16u::b -dword mul16u::mb -dword mul16u::mb#1 202.0 -dword mul16u::mb#2 43.285714285714285 -dword mul16u::res -dword mul16u::res#1 202.0 -dword mul16u::res#2 50.83333333333333 -dword mul16u::res#6 101.0 -dword mul16u::return -dword mul16u::return#2 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +unsigned int main::kaputt +unsigned int main::kaputt#0 // 2.0 +unsigned long main::result +unsigned long main::result#0 // 4.0 +unsigned long mul16u(unsigned int a , unsigned int b) +char mul16u::$1 // 202.0 +unsigned int mul16u::a +unsigned int mul16u::a#0 // 101.0 +unsigned int mul16u::a#2 // 67.33333333333333 +unsigned int mul16u::b +unsigned long mul16u::mb +unsigned long mul16u::mb#1 // 202.0 +unsigned long mul16u::mb#2 // 43.285714285714285 +unsigned long mul16u::res +unsigned long mul16u::res#1 // 202.0 +unsigned long mul16u::res#2 // 50.83333333333333 +unsigned long mul16u::res#6 // 101.0 +unsigned long mul16u::return +unsigned long mul16u::return#2 // 4.0 Initial phi equivalence classes [ mul16u::a#2 mul16u::a#0 ] @@ -385,7 +385,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label result = 2 .label kaputt = $a - // [1] call mul16u + // [1] call mul16u // [10] phi from main to mul16u [phi:main->mul16u] mul16u_from_main: jsr mul16u @@ -415,7 +415,7 @@ main: { } // mul16u // Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// mul16u(word zp($a) a) +// __zp(2) unsigned long mul16u(__zp($a) unsigned int a, unsigned int b) mul16u: { .const b = $7b .label a = $a @@ -424,7 +424,7 @@ mul16u: { .label return = 2 // [11] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] __b1_from_mul16u: - // [11] phi mul16u::mb#2 = (dword)mul16u::b#0 [phi:mul16u->mul16u::@1#0] -- vduz1=vduc1 + // [11] phi mul16u::mb#2 = (unsigned long)mul16u::b#0 [phi:mul16u->mul16u::@1#0] -- vduz1=vduc1 lda #b @@ -532,31 +532,31 @@ Removing instruction __b1_from___b3: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BORDER_COLOR = (byte*) 53280 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BORDER_COLOR = (char *) 53280 void main() -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -word main::kaputt -word main::kaputt#0 kaputt zp[2]:10 2.0 -dword main::result -dword main::result#0 result zp[4]:2 4.0 -dword mul16u(word mul16u::a , word mul16u::b) -byte~ mul16u::$1 reg byte a 202.0 -word mul16u::a -word mul16u::a#0 a zp[2]:10 101.0 -word mul16u::a#2 a zp[2]:10 67.33333333333333 -word mul16u::b -constant word mul16u::b#0 b = $7b -dword mul16u::mb -dword mul16u::mb#1 mb zp[4]:6 202.0 -dword mul16u::mb#2 mb zp[4]:6 43.285714285714285 -dword mul16u::res -dword mul16u::res#1 res zp[4]:2 202.0 -dword mul16u::res#2 res zp[4]:2 50.83333333333333 -dword mul16u::res#6 res zp[4]:2 101.0 -dword mul16u::return -dword mul16u::return#2 return zp[4]:2 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +unsigned int main::kaputt +unsigned int main::kaputt#0 // kaputt zp[2]:10 2.0 +unsigned long main::result +unsigned long main::result#0 // result zp[4]:2 4.0 +unsigned long mul16u(unsigned int a , unsigned int b) +char mul16u::$1 // reg byte a 202.0 +unsigned int mul16u::a +unsigned int mul16u::a#0 // a zp[2]:10 101.0 +unsigned int mul16u::a#2 // a zp[2]:10 67.33333333333333 +unsigned int mul16u::b +__constant unsigned int mul16u::b#0 = $7b // b +unsigned long mul16u::mb +unsigned long mul16u::mb#1 // mb zp[4]:6 202.0 +unsigned long mul16u::mb#2 // mb zp[4]:6 43.285714285714285 +unsigned long mul16u::res +unsigned long mul16u::res#1 // res zp[4]:2 202.0 +unsigned long mul16u::res#2 // res zp[4]:2 50.83333333333333 +unsigned long mul16u::res#6 // res zp[4]:2 101.0 +unsigned long mul16u::return +unsigned long mul16u::return#2 // return zp[4]:2 4.0 zp[4]:2 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 main::result#0 ] zp[4]:6 [ mul16u::mb#2 mul16u::mb#1 ] @@ -592,7 +592,7 @@ main: { .label result = 2 .label kaputt = $a // dword result = mul16u(4,123) - // [1] call mul16u + // [1] call mul16u // [10] phi from main to mul16u [phi:main->mul16u] jsr mul16u // dword result = mul16u(4,123) @@ -624,7 +624,7 @@ main: { } // mul16u // Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// mul16u(word zp($a) a) +// __zp(2) unsigned long mul16u(__zp($a) unsigned int a, unsigned int b) mul16u: { .const b = $7b .label a = $a @@ -632,7 +632,7 @@ mul16u: { .label res = 2 .label return = 2 // [11] phi from mul16u to mul16u::@1 [phi:mul16u->mul16u::@1] - // [11] phi mul16u::mb#2 = (dword)mul16u::b#0 [phi:mul16u->mul16u::@1#0] -- vduz1=vduc1 + // [11] phi mul16u::mb#2 = (unsigned long)mul16u::b#0 [phi:mul16u->mul16u::@1#0] -- vduz1=vduc1 lda #b diff --git a/src/test/ref/loophead-problem-3.sym b/src/test/ref/loophead-problem-3.sym index dfe509cc0..f4331301c 100644 --- a/src/test/ref/loophead-problem-3.sym +++ b/src/test/ref/loophead-problem-3.sym @@ -1,28 +1,28 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BORDER_COLOR = (byte*) 53280 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BORDER_COLOR = (char *) 53280 void main() -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -word main::kaputt -word main::kaputt#0 kaputt zp[2]:10 2.0 -dword main::result -dword main::result#0 result zp[4]:2 4.0 -dword mul16u(word mul16u::a , word mul16u::b) -byte~ mul16u::$1 reg byte a 202.0 -word mul16u::a -word mul16u::a#0 a zp[2]:10 101.0 -word mul16u::a#2 a zp[2]:10 67.33333333333333 -word mul16u::b -constant word mul16u::b#0 b = $7b -dword mul16u::mb -dword mul16u::mb#1 mb zp[4]:6 202.0 -dword mul16u::mb#2 mb zp[4]:6 43.285714285714285 -dword mul16u::res -dword mul16u::res#1 res zp[4]:2 202.0 -dword mul16u::res#2 res zp[4]:2 50.83333333333333 -dword mul16u::res#6 res zp[4]:2 101.0 -dword mul16u::return -dword mul16u::return#2 return zp[4]:2 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +unsigned int main::kaputt +unsigned int main::kaputt#0 // kaputt zp[2]:10 2.0 +unsigned long main::result +unsigned long main::result#0 // result zp[4]:2 4.0 +unsigned long mul16u(unsigned int a , unsigned int b) +char mul16u::$1 // reg byte a 202.0 +unsigned int mul16u::a +unsigned int mul16u::a#0 // a zp[2]:10 101.0 +unsigned int mul16u::a#2 // a zp[2]:10 67.33333333333333 +unsigned int mul16u::b +__constant unsigned int mul16u::b#0 = $7b // b +unsigned long mul16u::mb +unsigned long mul16u::mb#1 // mb zp[4]:6 202.0 +unsigned long mul16u::mb#2 // mb zp[4]:6 43.285714285714285 +unsigned long mul16u::res +unsigned long mul16u::res#1 // res zp[4]:2 202.0 +unsigned long mul16u::res#2 // res zp[4]:2 50.83333333333333 +unsigned long mul16u::res#6 // res zp[4]:2 101.0 +unsigned long mul16u::return +unsigned long mul16u::return#2 // return zp[4]:2 4.0 zp[4]:2 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#2 main::result#0 ] zp[4]:6 [ mul16u::mb#2 mul16u::mb#1 ] diff --git a/src/test/ref/loophead-problem.log b/src/test/ref/loophead-problem.log index 187afa3bb..47c442d02 100644 --- a/src/test/ref/loophead-problem.log +++ b/src/test/ref/loophead-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,7 +6,7 @@ void main() main: scope:[main] from __start::@1 opcode#7 = phi( __start::@1/opcode#13 ) screen[$28] = opcode#7 - call popup_selector + call popup_selector to:main::@1 main::@1: scope:[main] from main opcode#8 = phi( main/opcode#3 ) @@ -50,7 +50,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 opcode#13 = phi( __start::__init1/opcode#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 opcode#11 = phi( __start::@1/opcode#1 ) @@ -65,44 +65,44 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte opcode -byte opcode#0 -byte opcode#1 -byte opcode#10 -byte opcode#11 -byte opcode#12 -byte opcode#13 -byte opcode#14 -byte opcode#15 -byte opcode#2 -byte opcode#3 -byte opcode#4 -byte opcode#5 -byte opcode#6 -byte opcode#7 -byte opcode#8 -byte opcode#9 +char opcode +char opcode#0 +char opcode#1 +char opcode#10 +char opcode#11 +char opcode#12 +char opcode#13 +char opcode#14 +char opcode#15 +char opcode#2 +char opcode#3 +char opcode#4 +char opcode#5 +char opcode#6 +char opcode#7 +char opcode#8 +char opcode#9 void popup_selector() -bool~ popup_selector::$0 -byte popup_selector::k -byte popup_selector::k#0 -byte popup_selector::k#1 -byte popup_selector::k#2 -byte popup_selector::k#3 -constant byte* const screen = (byte*)$400 +bool popup_selector::$0 +char popup_selector::k +char popup_selector::k#0 +char popup_selector::k#1 +char popup_selector::k#2 +char popup_selector::k#3 +__constant char * const screen = (char *)$400 Adding number conversion cast (unumber) $28 in screen[$28] = opcode#7 Adding number conversion cast (unumber) $29 in screen[$29] = opcode#0 Adding number conversion cast (unumber) 2 in popup_selector::$0 = popup_selector::k#2 <= 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $29 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias opcode#0 = opcode#8 opcode#9 opcode#1 Alias popup_selector::k#2 = popup_selector::k#3 @@ -135,7 +135,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings popup_selector::k#0 Inlining constant with var siblings opcode#2 @@ -161,7 +161,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(screen+$28) = 'a' - [1] call popup_selector + [1] call popup_selector to:main::@1 main::@1: scope:[main] from main [2] *(screen+$29) = opcode#10 @@ -190,12 +190,12 @@ popup_selector::@2: scope:[popup_selector] from popup_selector::@1 VARIABLE REGISTER WEIGHTS void main() -byte opcode -byte opcode#10 0.5 +char opcode +char opcode#10 // 0.5 void popup_selector() -byte popup_selector::k -byte popup_selector::k#1 202.0 -byte popup_selector::k#2 134.66666666666666 +char popup_selector::k +char popup_selector::k#1 // 202.0 +char popup_selector::k#2 // 134.66666666666666 Initial phi equivalence classes [ popup_selector::k#2 popup_selector::k#1 ] @@ -247,7 +247,7 @@ main: { // [0] *(screen+$28) = 'a' -- _deref_pbuc1=vbuc2 lda #'a' sta screen+$28 - // [1] call popup_selector + // [1] call popup_selector // [4] phi from main to popup_selector [phi:main->popup_selector] popup_selector_from_main: jsr popup_selector @@ -315,13 +315,13 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -byte opcode -byte opcode#10 reg byte a 0.5 +char opcode +char opcode#10 // reg byte a 0.5 void popup_selector() -byte popup_selector::k -byte popup_selector::k#1 reg byte x 202.0 -byte popup_selector::k#2 reg byte x 134.66666666666666 -constant byte* const screen = (byte*) 1024 +char popup_selector::k +char popup_selector::k#1 // reg byte x 202.0 +char popup_selector::k#2 // reg byte x 134.66666666666666 +__constant char * const screen = (char *) 1024 reg byte x [ popup_selector::k#2 popup_selector::k#1 ] reg byte a [ opcode#10 ] @@ -355,7 +355,7 @@ main: { lda #'a' sta screen+$28 // popup_selector() - // [1] call popup_selector + // [1] call popup_selector // [4] phi from main to popup_selector [phi:main->popup_selector] jsr popup_selector // main::@1 diff --git a/src/test/ref/loophead-problem.sym b/src/test/ref/loophead-problem.sym index 35f129220..214aefff4 100644 --- a/src/test/ref/loophead-problem.sym +++ b/src/test/ref/loophead-problem.sym @@ -1,11 +1,11 @@ void main() -byte opcode -byte opcode#10 reg byte a 0.5 +char opcode +char opcode#10 // reg byte a 0.5 void popup_selector() -byte popup_selector::k -byte popup_selector::k#1 reg byte x 202.0 -byte popup_selector::k#2 reg byte x 134.66666666666666 -constant byte* const screen = (byte*) 1024 +char popup_selector::k +char popup_selector::k#1 // reg byte x 202.0 +char popup_selector::k#2 // reg byte x 134.66666666666666 +__constant char * const screen = (char *) 1024 reg byte x [ popup_selector::k#2 popup_selector::k#1 ] reg byte a [ opcode#10 ] diff --git a/src/test/ref/loophead-trivial-1.log b/src/test/ref/loophead-trivial-1.log index aef3e8aff..78d7d4a1c 100644 --- a/src/test/ref/loophead-trivial-1.log +++ b/src/test/ref/loophead-trivial-1.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,22 +30,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $28 in main::$0 = main::i#2 < $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -90,9 +90,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -170,11 +170,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loophead-trivial-1.sym b/src/test/ref/loophead-trivial-1.sym index f60d3a1e0..5e0fd5a5a 100644 --- a/src/test/ref/loophead-trivial-1.sym +++ b/src/test/ref/loophead-trivial-1.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 14.666666666666666 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/loopmin.log b/src/test/ref/loopmin.log index 43dd84b30..c42b63a61 100644 --- a/src/test/ref/loopmin.log +++ b/src/test/ref/loopmin.log @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,22 +43,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::s -byte main::s#0 -byte main::s#1 -byte main::s#2 -byte main::s#3 -byte main::s#4 +bool main::$0 +bool main::$1 +char main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::s +char main::s#0 +char main::s#1 +char main::s#2 +char main::s#3 +char main::s#4 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 > 5 Adding number conversion cast (unumber) 0 in main::$3 = main::i#1 > 0 @@ -66,8 +66,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 5 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [4] main::$1 = main::i#2 <= 5 from [3] main::$0 = main::i#2 > 5 Successful SSA optimization Pass2UnaryNotSimplification @@ -95,7 +95,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 5+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::s#0 @@ -143,13 +143,13 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::s -byte main::s#1 22.0 -byte main::s#2 16.5 -byte main::s#4 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::s +char main::s#1 // 22.0 +char main::s#2 // 16.5 +char main::s#4 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -253,13 +253,13 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::s -byte main::s#1 reg byte a 22.0 -byte main::s#2 reg byte a 16.5 -byte main::s#4 reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::s +char main::s#1 // reg byte a 22.0 +char main::s#2 // reg byte a 16.5 +char main::s#4 // reg byte a 11.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::s#2 main::s#4 main::s#1 ] diff --git a/src/test/ref/loopmin.sym b/src/test/ref/loopmin.sym index 63e280978..903b87e9c 100644 --- a/src/test/ref/loopmin.sym +++ b/src/test/ref/loopmin.sym @@ -1,11 +1,11 @@ void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::s -byte main::s#1 reg byte a 22.0 -byte main::s#2 reg byte a 16.5 -byte main::s#4 reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::s +char main::s#1 // reg byte a 22.0 +char main::s#2 // reg byte a 16.5 +char main::s#4 // reg byte a 11.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::s#2 main::s#4 main::s#1 ] diff --git a/src/test/ref/loopnest.log b/src/test/ref/loopnest.log index 35e513060..e35af00cd 100644 --- a/src/test/ref/loopnest.log +++ b/src/test/ref/loopnest.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -8,7 +8,7 @@ main: scope:[main] from __start::@1 to:main::@1 main::@1: scope:[main] from main main::@2 main::i#3 = phi( main/main::i#0, main::@2/main::i#1 ) - call nest + call nest to:main::@2 main::@2: scope:[main] from main::@1 main::i#2 = phi( main::@1/main::i#3 ) @@ -41,7 +41,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -50,31 +50,31 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 void nest() -bool~ nest::$0 -byte nest::j -byte nest::j#0 -byte nest::j#1 -byte nest::j#2 +bool nest::$0 +char nest::j +char nest::j#0 +char nest::j#1 +char nest::j#2 Adding number conversion cast (unumber) 0 in main::$1 = main::i#1 > 0 Adding number conversion cast (unumber) 0 in nest::$0 = nest::j#1 > 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -120,7 +120,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/$64, main::@2/main::i#1 ) - [2] call nest + [2] call nest to:main::@2 main::@2: scope:[main] from main::@1 [3] main::i#1 = -- main::i#2 @@ -147,13 +147,13 @@ nest::@return: scope:[nest] from nest::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 void nest() -byte nest::j -byte nest::j#1 15001.5 -byte nest::j#2 15001.5 +char nest::j +char nest::j#1 // 15001.5 +char nest::j#2 // 15001.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -203,7 +203,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call nest + // [2] call nest // [6] phi from main::@1 to nest [phi:main::@1->nest] nest_from___b1: jsr nest @@ -273,15 +273,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 void nest() -byte nest::j -byte nest::j#1 reg byte x 15001.5 -byte nest::j#2 reg byte x 15001.5 +char nest::j +char nest::j#1 // reg byte x 15001.5 +char nest::j#2 // reg byte x 15001.5 reg byte y [ main::i#2 main::i#1 ] reg byte x [ nest::j#2 nest::j#1 ] @@ -313,7 +313,7 @@ main: { // main::@1 __b1: // nest() - // [2] call nest + // [2] call nest // [6] phi from main::@1 to nest [phi:main::@1->nest] jsr nest // main::@2 diff --git a/src/test/ref/loopnest.sym b/src/test/ref/loopnest.sym index 40516de6c..8ac8a34f4 100644 --- a/src/test/ref/loopnest.sym +++ b/src/test/ref/loopnest.sym @@ -1,12 +1,12 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 void nest() -byte nest::j -byte nest::j#1 reg byte x 15001.5 -byte nest::j#2 reg byte x 15001.5 +char nest::j +char nest::j#1 // reg byte x 15001.5 +char nest::j#2 // reg byte x 15001.5 reg byte y [ main::i#2 main::i#1 ] reg byte x [ nest::j#2 nest::j#1 ] diff --git a/src/test/ref/loopnest2.log b/src/test/ref/loopnest2.log index 99c156fe8..18523acbc 100644 --- a/src/test/ref/loopnest2.log +++ b/src/test/ref/loopnest2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 main::@4 main::i#4 = phi( main::@1/main::i#5, main::@4/main::i#3 ) main::j#3 = phi( main::@1/main::j#0, main::@4/main::j#1 ) - call nest1 + call nest1 to:main::@4 main::@4: scope:[main] from main::@2 main::i#3 = phi( main::@2/main::i#4 ) @@ -43,7 +43,7 @@ nest1::@1: scope:[nest1] from nest1 nest1::@3 nest1::@2: scope:[nest1] from nest1::@1 nest1::@4 nest1::i#4 = phi( nest1::@1/nest1::i#5, nest1::@4/nest1::i#3 ) nest1::j#3 = phi( nest1::@1/nest1::j#0, nest1::@4/nest1::j#1 ) - call nest2 + call nest2 to:nest1::@4 nest1::@4: scope:[nest1] from nest1::@2 nest1::i#3 = phi( nest1::@2/nest1::i#4 ) @@ -94,7 +94,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -103,51 +103,51 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 void nest1() -bool~ nest1::$1 -bool~ nest1::$2 -byte nest1::i -byte nest1::i#0 -byte nest1::i#1 -byte nest1::i#2 -byte nest1::i#3 -byte nest1::i#4 -byte nest1::i#5 -byte nest1::j -byte nest1::j#0 -byte nest1::j#1 -byte nest1::j#2 -byte nest1::j#3 +bool nest1::$1 +bool nest1::$2 +char nest1::i +char nest1::i#0 +char nest1::i#1 +char nest1::i#2 +char nest1::i#3 +char nest1::i#4 +char nest1::i#5 +char nest1::j +char nest1::j#0 +char nest1::j#1 +char nest1::j#2 +char nest1::j#3 void nest2() -bool~ nest2::$0 -bool~ nest2::$1 -byte nest2::i -byte nest2::i#0 -byte nest2::i#1 -byte nest2::i#2 -byte nest2::i#3 -byte nest2::i#4 -byte nest2::j -byte nest2::j#0 -byte nest2::j#1 -byte nest2::j#2 +bool nest2::$0 +bool nest2::$1 +char nest2::i +char nest2::i#0 +char nest2::i#1 +char nest2::i#2 +char nest2::i#3 +char nest2::i#4 +char nest2::j +char nest2::j#0 +char nest2::j#1 +char nest2::j#2 Adding number conversion cast (unumber) 0 in main::$1 = main::j#1 > 0 Adding number conversion cast (unumber) 0 in main::$2 = main::i#1 > 0 @@ -156,7 +156,7 @@ Adding number conversion cast (unumber) 0 in nest1::$2 = nest1::i#1 > 0 Adding number conversion cast (unumber) 0 in nest2::$0 = nest2::j#1 > 0 Adding number conversion cast (unumber) 0 in nest2::$1 = nest2::i#1 > 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -164,12 +164,12 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::j#2 = main::j#3 Alias main::i#2 = main::i#3 main::i#4 @@ -257,7 +257,7 @@ main::@1: scope:[main] from main main::@3 to:main::@2 main::@2: scope:[main] from main::@1 main::@4 [2] main::j#2 = phi( main::@1/$64, main::@4/main::j#1 ) - [3] call nest1 + [3] call nest1 to:main::@4 main::@4: scope:[main] from main::@2 [4] main::j#1 = -- main::j#2 @@ -280,7 +280,7 @@ nest1::@1: scope:[nest1] from nest1 nest1::@3 to:nest1::@2 nest1::@2: scope:[nest1] from nest1::@1 nest1::@4 [11] nest1::j#2 = phi( nest1::@1/$64, nest1::@4/nest1::j#1 ) - [12] call nest2 + [12] call nest2 to:nest1::@4 nest1::@4: scope:[nest1] from nest1::@2 [13] nest1::j#1 = -- nest1::j#2 @@ -318,26 +318,26 @@ nest2::@return: scope:[nest2] from nest2::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#5 4.4 -byte main::j -byte main::j#1 151.5 -byte main::j#2 101.0 +char main::i +char main::i#1 // 16.5 +char main::i#5 // 4.4 +char main::j +char main::j#1 // 151.5 +char main::j#2 // 101.0 void nest1() -byte nest1::i -byte nest1::i#1 1500001.5 -byte nest1::i#5 400000.4 -byte nest1::j -byte nest1::j#1 1.50000015E7 -byte nest1::j#2 1.0000001E7 +char nest1::i +char nest1::i#1 // 1500001.5 +char nest1::i#5 // 400000.4 +char nest1::j +char nest1::j#1 // 1.50000015E7 +char nest1::j#2 // 1.0000001E7 void nest2() -byte nest2::i -byte nest2::i#1 1.50000000000015E13 -byte nest2::i#4 4.0000000000004E12 -byte nest2::j -byte nest2::j#1 1.500000000000015E14 -byte nest2::j#2 1.500000000000015E14 +char nest2::i +char nest2::i#1 // 1.50000000000015E13 +char nest2::i#4 // 4.0000000000004E12 +char nest2::j +char nest2::j#1 // 1.500000000000015E14 +char nest2::j#2 // 1.500000000000015E14 Initial phi equivalence classes [ main::i#5 main::i#1 ] @@ -426,7 +426,7 @@ main: { jmp __b2 // main::@2 __b2: - // [3] call nest1 + // [3] call nest1 // [9] phi from main::@2 to nest1 [phi:main::@2->nest1] nest1_from___b2: jsr nest1 @@ -478,7 +478,7 @@ nest1: { jmp __b2 // nest1::@2 __b2: - // [12] call nest2 + // [12] call nest2 // [18] phi from nest1::@2 to nest2 [phi:nest1::@2->nest2] nest2_from___b2: jsr nest2 @@ -607,28 +607,28 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#5 i zp[1]:2 4.4 -byte main::j -byte main::j#1 j zp[1]:3 151.5 -byte main::j#2 j zp[1]:3 101.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#5 // i zp[1]:2 4.4 +char main::j +char main::j#1 // j zp[1]:3 151.5 +char main::j#2 // j zp[1]:3 101.0 void nest1() -byte nest1::i -byte nest1::i#1 i zp[1]:4 1500001.5 -byte nest1::i#5 i zp[1]:4 400000.4 -byte nest1::j -byte nest1::j#1 reg byte a 1.50000015E7 -byte nest1::j#2 reg byte a 1.0000001E7 +char nest1::i +char nest1::i#1 // i zp[1]:4 1500001.5 +char nest1::i#5 // i zp[1]:4 400000.4 +char nest1::j +char nest1::j#1 // reg byte a 1.50000015E7 +char nest1::j#2 // reg byte a 1.0000001E7 void nest2() -byte nest2::i -byte nest2::i#1 reg byte x 1.50000000000015E13 -byte nest2::i#4 reg byte x 4.0000000000004E12 -byte nest2::j -byte nest2::j#1 reg byte y 1.500000000000015E14 -byte nest2::j#2 reg byte y 1.500000000000015E14 +char nest2::i +char nest2::i#1 // reg byte x 1.50000000000015E13 +char nest2::i#4 // reg byte x 4.0000000000004E12 +char nest2::j +char nest2::j#1 // reg byte y 1.500000000000015E14 +char nest2::j#2 // reg byte y 1.500000000000015E14 zp[1]:2 [ main::i#5 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] @@ -675,7 +675,7 @@ main: { // main::@2 __b2: // nest1() - // [3] call nest1 + // [3] call nest1 // [9] phi from main::@2 to nest1 [phi:main::@2->nest1] jsr nest1 // main::@4 @@ -716,7 +716,7 @@ nest1: { // nest1::@2 __b2: // nest2() - // [12] call nest2 + // [12] call nest2 // [18] phi from nest1::@2 to nest2 [phi:nest1::@2->nest2] jsr nest2 // nest1::@4 diff --git a/src/test/ref/loopnest2.sym b/src/test/ref/loopnest2.sym index fd38731b6..35f74d53e 100644 --- a/src/test/ref/loopnest2.sym +++ b/src/test/ref/loopnest2.sym @@ -1,25 +1,25 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#5 i zp[1]:2 4.4 -byte main::j -byte main::j#1 j zp[1]:3 151.5 -byte main::j#2 j zp[1]:3 101.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#5 // i zp[1]:2 4.4 +char main::j +char main::j#1 // j zp[1]:3 151.5 +char main::j#2 // j zp[1]:3 101.0 void nest1() -byte nest1::i -byte nest1::i#1 i zp[1]:4 1500001.5 -byte nest1::i#5 i zp[1]:4 400000.4 -byte nest1::j -byte nest1::j#1 reg byte a 1.50000015E7 -byte nest1::j#2 reg byte a 1.0000001E7 +char nest1::i +char nest1::i#1 // i zp[1]:4 1500001.5 +char nest1::i#5 // i zp[1]:4 400000.4 +char nest1::j +char nest1::j#1 // reg byte a 1.50000015E7 +char nest1::j#2 // reg byte a 1.0000001E7 void nest2() -byte nest2::i -byte nest2::i#1 reg byte x 1.50000000000015E13 -byte nest2::i#4 reg byte x 4.0000000000004E12 -byte nest2::j -byte nest2::j#1 reg byte y 1.500000000000015E14 -byte nest2::j#2 reg byte y 1.500000000000015E14 +char nest2::i +char nest2::i#1 // reg byte x 1.50000000000015E13 +char nest2::i#4 // reg byte x 4.0000000000004E12 +char nest2::j +char nest2::j#1 // reg byte y 1.500000000000015E14 +char nest2::j#2 // reg byte y 1.500000000000015E14 zp[1]:2 [ main::i#5 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] diff --git a/src/test/ref/loopnest3.asm b/src/test/ref/loopnest3.asm index 8e8eff7ac..bfed769ff 100644 --- a/src/test/ref/loopnest3.asm +++ b/src/test/ref/loopnest3.asm @@ -21,14 +21,14 @@ main: { // } rts } -// b(byte register(A) i) +// void b(__register(A) char i) b: { // c(i) jsr c // } rts } -// c(byte register(A) i) +// void c(__register(A) char i) c: { ldx #0 __b1: diff --git a/src/test/ref/loopnest3.cfg b/src/test/ref/loopnest3.cfg index cf0562153..65b799ce7 100644 --- a/src/test/ref/loopnest3.cfg +++ b/src/test/ref/loopnest3.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] b::i#0 = main::i#2 - [3] call b + [3] call b to:main::@2 main::@2: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -16,16 +16,16 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void b(byte b::i) +void b(char i) b: scope:[b] from main::@1 [7] c::i#0 = b::i#0 - [8] call c + [8] call c to:b::@return b::@return: scope:[b] from b [9] return to:@return -void c(byte c::i) +void c(char i) c: scope:[c] from b [10] phi() to:c::@1 diff --git a/src/test/ref/loopnest3.log b/src/test/ref/loopnest3.log index 784b6974e..893f9dcb3 100644 --- a/src/test/ref/loopnest3.log +++ b/src/test/ref/loopnest3.log @@ -8,7 +8,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@2 main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) b::i#0 = main::i#2 - call b + call b to:main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -20,11 +20,11 @@ main::@return: scope:[main] from main::@2 return to:@return -void b(byte b::i) +void b(char i) b: scope:[b] from main::@1 b::i#1 = phi( main::@1/b::i#0 ) c::i#0 = b::i#1 - call c + call c to:b::@1 b::@1: scope:[b] from b to:b::@return @@ -32,7 +32,7 @@ b::@return: scope:[b] from b::@1 return to:@return -void c(byte c::i) +void c(char i) c: scope:[c] from b c::i#2 = phi( b/c::i#0 ) c::j#0 = 0 @@ -51,7 +51,7 @@ c::@return: scope:[c] from c::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -60,31 +60,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -void b(byte b::i) -byte b::i -byte b::i#0 -byte b::i#1 -void c(byte c::i) -bool~ c::$0 -byte c::i -byte c::i#0 -byte c::i#1 -byte c::i#2 -byte c::j -byte c::j#0 -byte c::j#1 -byte c::j#2 +void b(char i) +char b::i +char b::i#0 +char b::i#1 +void c(char i) +bool c::$0 +char c::i +char c::i#0 +char c::i#1 +char c::i#2 +char c::j +char c::j#0 +char c::j#1 +char c::j#2 void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -113,8 +113,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings c::j#0 @@ -149,7 +149,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] b::i#0 = main::i#2 - [3] call b + [3] call b to:main::@2 main::@2: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -159,16 +159,16 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void b(byte b::i) +void b(char i) b: scope:[b] from main::@1 [7] c::i#0 = b::i#0 - [8] call c + [8] call c to:b::@return b::@return: scope:[b] from b [9] return to:@return -void c(byte c::i) +void c(char i) c: scope:[c] from b [10] phi() to:c::@1 @@ -184,19 +184,19 @@ c::@return: scope:[c] from c::@1 VARIABLE REGISTER WEIGHTS -void b(byte b::i) -byte b::i -byte b::i#0 112.0 -void c(byte c::i) -byte c::i -byte c::i#0 16683.666666666664 -byte c::j -byte c::j#1 150001.5 -byte c::j#2 150001.5 +void b(char i) +char b::i +char b::i#0 // 112.0 +void c(char i) +char c::i +char c::i#0 // 16683.666666666664 +char c::j +char c::j#1 // 150001.5 +char c::j#2 // 150001.5 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -257,7 +257,7 @@ main: { // main::@1 __b1: // [2] b::i#0 = main::i#2 - // [3] call b + // [3] call b jsr b jmp __b2 // main::@2 @@ -275,10 +275,10 @@ main: { rts } // b -// b(byte register(A) i) +// void b(__register(A) char i) b: { // [7] c::i#0 = b::i#0 - // [8] call c + // [8] call c // [10] phi from b to c [phi:b->c] c_from_b: jsr c @@ -289,7 +289,7 @@ b: { rts } // c -// c(byte register(A) i) +// void c(__register(A) char i) c: { // [11] phi from c to c::@1 [phi:c->c::@1] __b1_from_c: @@ -343,20 +343,20 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -void b(byte b::i) -byte b::i -byte b::i#0 reg byte a 112.0 -void c(byte c::i) -byte c::i -byte c::i#0 reg byte a 16683.666666666664 -byte c::j -byte c::j#1 reg byte x 150001.5 -byte c::j#2 reg byte x 150001.5 +__constant char * const SCREEN = (char *) 1024 +void b(char i) +char b::i +char b::i#0 // reg byte a 112.0 +void c(char i) +char c::i +char c::i#0 // reg byte a 16683.666666666664 +char c::j +char c::j#1 // reg byte x 150001.5 +char c::j#2 // reg byte x 150001.5 void main() -byte main::i -byte main::i#1 reg byte a 16.5 -byte main::i#2 reg byte a 11.0 +char main::i +char main::i#1 // reg byte a 16.5 +char main::i#2 // reg byte a 11.0 reg byte a [ main::i#2 main::i#1 ] reg byte x [ c::j#2 c::j#1 ] @@ -391,7 +391,7 @@ main: { __b1: // b(i) // [2] b::i#0 = main::i#2 - // [3] call b + // [3] call b jsr b // main::@2 // for(byte i:0..100) @@ -407,11 +407,11 @@ main: { rts } // b -// b(byte register(A) i) +// void b(__register(A) char i) b: { // c(i) // [7] c::i#0 = b::i#0 - // [8] call c + // [8] call c // [10] phi from b to c [phi:b->c] jsr c // b::@return @@ -420,7 +420,7 @@ b: { rts } // c -// c(byte register(A) i) +// void c(__register(A) char i) c: { // [11] phi from c to c::@1 [phi:c->c::@1] // [11] phi c::j#2 = 0 [phi:c->c::@1#0] -- vbuxx=vbuc1 diff --git a/src/test/ref/loopnest3.sym b/src/test/ref/loopnest3.sym index 91179be42..39ca500ad 100644 --- a/src/test/ref/loopnest3.sym +++ b/src/test/ref/loopnest3.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -void b(byte b::i) -byte b::i -byte b::i#0 reg byte a 112.0 -void c(byte c::i) -byte c::i -byte c::i#0 reg byte a 16683.666666666664 -byte c::j -byte c::j#1 reg byte x 150001.5 -byte c::j#2 reg byte x 150001.5 +__constant char * const SCREEN = (char *) 1024 +void b(char i) +char b::i +char b::i#0 // reg byte a 112.0 +void c(char i) +char c::i +char c::i#0 // reg byte a 16683.666666666664 +char c::j +char c::j#1 // reg byte x 150001.5 +char c::j#2 // reg byte x 150001.5 void main() -byte main::i -byte main::i#1 reg byte a 16.5 -byte main::i#2 reg byte a 11.0 +char main::i +char main::i#1 // reg byte a 16.5 +char main::i#2 // reg byte a 11.0 reg byte a [ main::i#2 main::i#1 ] reg byte x [ c::j#2 c::j#1 ] diff --git a/src/test/ref/loopsplit.log b/src/test/ref/loopsplit.log index e1e25a917..fb9c40544 100644 --- a/src/test/ref/loopsplit.log +++ b/src/test/ref/loopsplit.log @@ -39,7 +39,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -50,35 +50,35 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::s -byte main::s#0 -byte main::s#1 -byte main::s#2 -byte main::s#3 -byte main::s#4 -byte main::s#5 -byte main::s#6 -byte main::s#7 +bool main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::s +char main::s#0 +char main::s#1 +char main::s#2 +char main::s#3 +char main::s#4 +char main::s#5 +char main::s#6 +char main::s#7 Adding number conversion cast (unumber) 0 in main::$0 = main::i#1 > 0 Adding number conversion cast (unumber) $32 in main::$1 = main::i#3 > $32 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $32 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $32 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $32 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#1 = main::i#3 main::i#4 main::i#5 Alias main::s#3 = main::s#7 main::s#6 main::s#4 main::s#5 @@ -101,7 +101,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $32+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::s#0 @@ -150,13 +150,13 @@ main::@4: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 33.0 -byte main::s -byte main::s#1 22.0 -byte main::s#2 22.0 -byte main::s#3 11.5 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 33.0 +char main::s +char main::s#1 // 22.0 +char main::s#2 // 22.0 +char main::s#3 // 11.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -264,14 +264,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 33.0 -byte main::s -byte main::s#1 reg byte y 22.0 -byte main::s#2 reg byte y 22.0 -byte main::s#3 reg byte y 11.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 33.0 +char main::s +char main::s#1 // reg byte y 22.0 +char main::s#2 // reg byte y 22.0 +char main::s#3 // reg byte y 11.5 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::s#3 main::s#1 main::s#2 ] diff --git a/src/test/ref/loopsplit.sym b/src/test/ref/loopsplit.sym index 1feef5c68..af919b5dc 100644 --- a/src/test/ref/loopsplit.sym +++ b/src/test/ref/loopsplit.sym @@ -1,12 +1,12 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 33.0 -byte main::s -byte main::s#1 reg byte y 22.0 -byte main::s#2 reg byte y 22.0 -byte main::s#3 reg byte y 11.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 33.0 +char main::s +char main::s#1 // reg byte y 22.0 +char main::s#2 // reg byte y 22.0 +char main::s#3 // reg byte y 11.5 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::s#3 main::s#1 main::s#2 ] diff --git a/src/test/ref/ma_coalesce_problem.log b/src/test/ref/ma_coalesce_problem.log index c62cc1500..b38251c44 100644 --- a/src/test/ref/ma_coalesce_problem.log +++ b/src/test/ref/ma_coalesce_problem.log @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -40,29 +40,29 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant const byte* SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) +__constant char * const SCREEN = (char *)$400 +__constant const char SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) .byte round(127.5+127.5*sin(2*PI*i/256)) }} void __start() -byte c1A loadstore = 0 +__loadstore char c1A = 0 void main() -bool~ main::$0 -byte main::c1a loadstore -byte main::i loadstore +bool main::$0 +__loadstore char main::c1a +__loadstore char main::i Adding number conversion cast (unumber) $28 in main::$0 = main::i < $28 Adding number conversion cast (unumber) 4 in main::c1a = main::c1a + 4 Adding number conversion cast (unumber) 3 in c1A = c1A + 3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast 4 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [4] if(main::i<$28) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -75,7 +75,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -114,10 +114,10 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS -byte c1A loadstore 4.125 = 0 +__loadstore char c1A = 0 // 4.125 void main() -byte main::c1a loadstore 52.33333333333333 -byte main::i loadstore 83.0 +__loadstore char main::c1a // 52.33333333333333 +__loadstore char main::i // 83.0 Initial phi equivalence classes Added variable main::c1a to live range equivalence class [ main::c1a ] @@ -232,14 +232,14 @@ Removing instruction __b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) +__constant char * const SCREEN = (char *) 1024 +__constant const char SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) .byte round(127.5+127.5*sin(2*PI*i/256)) }} -byte c1A loadstore mem[1] 4.125 = 0 +__loadstore char c1A = 0 // mem[1] 4.125 void main() -byte main::c1a loadstore mem[1] 52.33333333333333 -byte main::i loadstore mem[1] 83.0 +__loadstore char main::c1a // mem[1] 52.33333333333333 +__loadstore char main::i // mem[1] 83.0 mem[1] [ main::c1a ] mem[1] [ main::i ] diff --git a/src/test/ref/ma_coalesce_problem.sym b/src/test/ref/ma_coalesce_problem.sym index f9bfd6892..db163dcb1 100644 --- a/src/test/ref/ma_coalesce_problem.sym +++ b/src/test/ref/ma_coalesce_problem.sym @@ -1,11 +1,11 @@ -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) +__constant char * const SCREEN = (char *) 1024 +__constant const char SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) .byte round(127.5+127.5*sin(2*PI*i/256)) }} -byte c1A loadstore mem[1] 4.125 = 0 +__loadstore char c1A = 0 // mem[1] 4.125 void main() -byte main::c1a loadstore mem[1] 52.33333333333333 -byte main::i loadstore mem[1] 83.0 +__loadstore char main::c1a // mem[1] 52.33333333333333 +__loadstore char main::i // mem[1] 83.0 mem[1] [ main::c1a ] mem[1] [ main::i ] diff --git a/src/test/ref/main-param-0.asm b/src/test/ref/main-param-0.asm index aefdc0e8c..db89a1bfb 100644 --- a/src/test/ref/main-param-0.asm +++ b/src/test/ref/main-param-0.asm @@ -8,6 +8,7 @@ .segment Basic :BasicUpstart(main) .segment Code +// int main(int argc, char **argv) main: { // } rts diff --git a/src/test/ref/main-param-0.cfg b/src/test/ref/main-param-0.cfg index 7fb86986c..c147aed7a 100644 --- a/src/test/ref/main-param-0.cfg +++ b/src/test/ref/main-param-0.cfg @@ -1,5 +1,5 @@ -signed word main(signed word main::argc , byte** main::argv) +int main(int argc , char **argv) main: scope:[main] from [0] phi() to:main::@return diff --git a/src/test/ref/main-param-0.log b/src/test/ref/main-param-0.log index 42c391d4d..99448e062 100644 --- a/src/test/ref/main-param-0.log +++ b/src/test/ref/main-param-0.log @@ -1,9 +1,9 @@ CONTROL FLOW GRAPH SSA -signed word main(signed word main::argc , byte** main::argv) +int main(int argc , char **argv) main: scope:[main] from __start - main::return#0 = (signed word)*main::SCREEN + main::return#0 = (int)*main::SCREEN to:main::@return main::@return: scope:[main] from main main::return#3 = phi( main/main::return#0 ) @@ -14,8 +14,8 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from main::argc#0 = 0 - main::argv#0 = (byte**) 0 - call main + main::argv#0 = (char **) 0 + call main main::return#2 = main::return#1 to:__start::@1 __start::@1: scope:[__start] from __start @@ -26,30 +26,30 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -signed word main(signed word main::argc , byte** main::argv) -constant byte* main::SCREEN = (byte*)$400 -signed word main::argc -signed word main::argc#0 -byte** main::argv -byte** main::argv#0 -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 +int main(int argc , char **argv) +__constant char *main::SCREEN = (char *)$400 +int main::argc +int main::argc#0 +char **main::argv +char **main::argv#0 +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::return#0 = main::return#3 main::return#1 Successful SSA optimization Pass2AliasElimination Constant main::argc#0 = 0 -Constant main::argv#0 = (byte**) 0 +Constant main::argv#0 = (char **) 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused variable main::return#2 and assignment [3] main::return#2 = main::return#0 Eliminating unused constant main::argc#0 Eliminating unused constant main::argv#0 Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused variable main::return#0 and assignment [0] main::return#0 = (signed word)*main::SCREEN +Eliminating unused variable main::return#0 and assignment [0] main::return#0 = (int)*main::SCREEN Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant main::SCREEN Successful SSA optimization PassNEliminateUnusedVars @@ -67,7 +67,7 @@ Adding NOP phi() at start of main FINAL CONTROL FLOW GRAPH -signed word main(signed word main::argc , byte** main::argv) +int main(int argc , char **argv) main: scope:[main] from [0] phi() to:main::@return @@ -77,10 +77,10 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -signed word main(signed word main::argc , byte** main::argv) -signed word main::argc -byte** main::argv -signed word main::return +int main(int argc , char **argv) +int main::argc +char **main::argv +int main::return Initial phi equivalence classes Complete equivalence classes @@ -108,6 +108,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Global Constants & labels .segment Code // main +// int main(int argc, char **argv) main: { jmp __breturn // main::@return @@ -124,10 +125,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -signed word main(signed word main::argc , byte** main::argv) -signed word main::argc -byte** main::argv -signed word main::return +int main(int argc , char **argv) +int main::argc +char **main::argv +int main::return @@ -148,6 +149,7 @@ Score: 6 // Global Constants & labels .segment Code // main +// int main(int argc, char **argv) main: { // main::@return // } diff --git a/src/test/ref/main-param-0.sym b/src/test/ref/main-param-0.sym index 79415ac46..478f66cce 100644 --- a/src/test/ref/main-param-0.sym +++ b/src/test/ref/main-param-0.sym @@ -1,5 +1,5 @@ -signed word main(signed word main::argc , byte** main::argv) -signed word main::argc -byte** main::argv -signed word main::return +int main(int argc , char **argv) +int main::argc +char **main::argv +int main::return diff --git a/src/test/ref/main-param-1.asm b/src/test/ref/main-param-1.asm index 72c7e7fb4..673e8b47e 100644 --- a/src/test/ref/main-param-1.asm +++ b/src/test/ref/main-param-1.asm @@ -8,6 +8,7 @@ .segment Basic :BasicUpstart(main) .segment Code +// int main(int argc, char **argv) main: { .label SCREEN = $400 // SCREEN[0] = (char)argc diff --git a/src/test/ref/main-param-1.cfg b/src/test/ref/main-param-1.cfg index c9549b780..e2a36bd11 100644 --- a/src/test/ref/main-param-1.cfg +++ b/src/test/ref/main-param-1.cfg @@ -1,5 +1,5 @@ -signed word main(signed word main::argc , byte** main::argv) +int main(int argc , char **argv) main: scope:[main] from [0] *main::SCREEN = 0 [1] *(main::SCREEN+1) = 0 diff --git a/src/test/ref/main-param-1.log b/src/test/ref/main-param-1.log index 4324e9bcc..67814f408 100644 --- a/src/test/ref/main-param-1.log +++ b/src/test/ref/main-param-1.log @@ -1,12 +1,12 @@ CONTROL FLOW GRAPH SSA -signed word main(signed word main::argc , byte** main::argv) +int main(int argc , char **argv) main: scope:[main] from __start main::argv#1 = phi( __start/main::argv#0 ) main::argc#1 = phi( __start/main::argc#0 ) - main::SCREEN[0] = (byte)main::argc#1 - main::SCREEN[1] = (byte)main::argv#1 + main::SCREEN[0] = (char)main::argc#1 + main::SCREEN[1] = (char)main::argv#1 main::return#0 = -1 to:main::@return main::@return: scope:[main] from main @@ -18,8 +18,8 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from main::argc#0 = 0 - main::argv#0 = (byte**) 0 - call main + main::argv#0 = (char **) 0 + call main main::return#2 = main::return#1 to:__start::@1 __start::@1: scope:[__start] from __start @@ -30,34 +30,34 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -signed word main(signed word main::argc , byte** main::argv) -constant byte* main::SCREEN = (byte*)$400 -signed word main::argc -signed word main::argc#0 -signed word main::argc#1 -byte** main::argv -byte** main::argv#0 -byte** main::argv#1 -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 +int main(int argc , char **argv) +__constant char *main::SCREEN = (char *)$400 +int main::argc +int main::argc#0 +int main::argc#1 +char **main::argv +char **main::argv#0 +char **main::argv#1 +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 -Adding number conversion cast (unumber) 0 in main::SCREEN[0] = (byte)main::argc#1 -Adding number conversion cast (unumber) 1 in main::SCREEN[1] = (byte)main::argv#1 +Adding number conversion cast (unumber) 0 in main::SCREEN[0] = (char)main::argc#1 +Adding number conversion cast (unumber) 1 in main::SCREEN[1] = (char)main::argv#1 Adding number conversion cast (snumber) -1 in main::return#0 = -1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::return#0 = (snumber)-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast -1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) -1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) -1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::return#0 = main::return#3 main::return#1 Successful SSA optimization Pass2AliasElimination @@ -66,15 +66,15 @@ Identical Phi Values main::argv#1 main::argv#0 Successful SSA optimization Pass2IdenticalPhiElimination Constant main::return#0 = -1 Constant main::argc#0 = 0 -Constant main::argv#0 = (byte**) 0 +Constant main::argv#0 = (char **) 0 Successful SSA optimization Pass2ConstantIdentification Constant main::return#2 = main::return#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte)main::argc#0 in [1] main::SCREEN[0] = (byte)main::argc#0 -Constant value identified (byte)main::argv#0 in [2] main::SCREEN[1] = (byte)main::argv#0 +Constant value identified (char)main::argc#0 in [1] main::SCREEN[0] = (char)main::argc#0 +Constant value identified (char)main::argv#0 in [2] main::SCREEN[1] = (char)main::argv#0 Successful SSA optimization Pass2ConstantValues -Simplifying constant evaluating to zero (byte)main::argc#0 in [1] main::SCREEN[0] = (byte)main::argc#0 -Simplifying constant evaluating to zero (byte)main::argv#0 in [2] main::SCREEN[1] = (byte)main::argv#0 +Simplifying constant evaluating to zero (char)main::argc#0 in [1] main::SCREEN[0] = (char)main::argc#0 +Simplifying constant evaluating to zero (char)main::argv#0 in [2] main::SCREEN[1] = (char)main::argv#0 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[0] = 0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -98,7 +98,7 @@ Coalesced down to 0 phi equivalence classes FINAL CONTROL FLOW GRAPH -signed word main(signed word main::argc , byte** main::argv) +int main(int argc , char **argv) main: scope:[main] from [0] *main::SCREEN = 0 [1] *(main::SCREEN+1) = 0 @@ -109,10 +109,10 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -signed word main(signed word main::argc , byte** main::argv) -signed word main::argc -byte** main::argv -signed word main::return +int main(int argc , char **argv) +int main::argc +char **main::argv +int main::return Initial phi equivalence classes Complete equivalence classes @@ -142,6 +142,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Global Constants & labels .segment Code // main +// int main(int argc, char **argv) main: { .label SCREEN = $400 // [0] *main::SCREEN = 0 -- _deref_pbuc1=vbuc2 @@ -167,11 +168,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -signed word main(signed word main::argc , byte** main::argv) -constant byte* main::SCREEN = (byte*) 1024 -signed word main::argc -byte** main::argv -signed word main::return +int main(int argc , char **argv) +__constant char *main::SCREEN = (char *) 1024 +int main::argc +char **main::argv +int main::return @@ -192,6 +193,7 @@ Score: 16 // Global Constants & labels .segment Code // main +// int main(int argc, char **argv) main: { .label SCREEN = $400 // SCREEN[0] = (char)argc diff --git a/src/test/ref/main-param-1.sym b/src/test/ref/main-param-1.sym index be649d00e..964389cd0 100644 --- a/src/test/ref/main-param-1.sym +++ b/src/test/ref/main-param-1.sym @@ -1,6 +1,6 @@ -signed word main(signed word main::argc , byte** main::argv) -constant byte* main::SCREEN = (byte*) 1024 -signed word main::argc -byte** main::argv -signed word main::return +int main(int argc , char **argv) +__constant char *main::SCREEN = (char *) 1024 +int main::argc +char **main::argv +int main::return diff --git a/src/test/ref/main-return.cfg b/src/test/ref/main-return.cfg index 616fe3d0f..9db6833db 100644 --- a/src/test/ref/main-return.cfg +++ b/src/test/ref/main-return.cfg @@ -1,5 +1,5 @@ -signed word main() +int main() main: scope:[main] from [0] phi() to:main::@return diff --git a/src/test/ref/main-return.log b/src/test/ref/main-return.log index 9bc4b7706..fb37d7e4c 100644 --- a/src/test/ref/main-return.log +++ b/src/test/ref/main-return.log @@ -1,9 +1,9 @@ CONTROL FLOW GRAPH SSA -signed word main() +int main() main: scope:[main] from __start - main::return#0 = (signed word)*main::SCREEN + main::return#0 = (int)*main::SCREEN to:main::@return main::@return: scope:[main] from main main::return#3 = phi( main/main::return#0 ) @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main main::return#2 = main::return#1 to:__start::@1 __start::@1: scope:[__start] from __start @@ -24,21 +24,21 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -signed word main() -constant byte* main::SCREEN = (byte*)$400 -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 +int main() +__constant char *main::SCREEN = (char *)$400 +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::return#0 = main::return#3 main::return#1 Successful SSA optimization Pass2AliasElimination Eliminating unused variable main::return#2 and assignment [3] main::return#2 = main::return#0 Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused variable main::return#0 and assignment [0] main::return#0 = (signed word)*main::SCREEN +Eliminating unused variable main::return#0 and assignment [0] main::return#0 = (int)*main::SCREEN Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant main::SCREEN Successful SSA optimization PassNEliminateUnusedVars @@ -56,7 +56,7 @@ Adding NOP phi() at start of main FINAL CONTROL FLOW GRAPH -signed word main() +int main() main: scope:[main] from [0] phi() to:main::@return @@ -66,8 +66,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -signed word main() -signed word main::return +int main() +int main::return Initial phi equivalence classes Complete equivalence classes @@ -111,8 +111,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -signed word main() -signed word main::return +int main() +int main::return diff --git a/src/test/ref/main-return.sym b/src/test/ref/main-return.sym index 7b37c9c37..865957400 100644 --- a/src/test/ref/main-return.sym +++ b/src/test/ref/main-return.sym @@ -1,3 +1,3 @@ -signed word main() -signed word main::return +int main() +int main::return diff --git a/src/test/ref/makelong-0.log b/src/test/ref/makelong-0.log index 6a987146b..568cb2d89 100644 --- a/src/test/ref/makelong-0.log +++ b/src/test/ref/makelong-0.log @@ -38,7 +38,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -49,34 +49,34 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -constant dword* const main::SCREEN = (word*)$400 -word main::hi -word main::hi#0 -word main::hi#1 -word main::hi#2 -word main::hi#3 -dword main::i -dword main::i#0 -word main::lo -word main::lo#0 -word main::lo#1 -word main::lo#2 -word main::lo#3 -word main::lo#4 -word main::lo#5 -word main::lo#6 +bool main::$0 +bool main::$1 +__constant unsigned long * const main::SCREEN = (unsigned int *)$400 +unsigned int main::hi +unsigned int main::hi#0 +unsigned int main::hi#1 +unsigned int main::hi#2 +unsigned int main::hi#3 +unsigned long main::i +unsigned long main::i#0 +unsigned int main::lo +unsigned int main::lo#0 +unsigned int main::lo#1 +unsigned int main::lo#2 +unsigned int main::lo#3 +unsigned int main::lo#4 +unsigned int main::lo#5 +unsigned int main::lo#6 Adding number conversion cast (unumber) $64 in main::$0 = main::lo#2 < $64 Adding number conversion cast (unumber) $64 in main::$1 = main::hi#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::lo#2 = main::lo#6 Alias main::hi#2 = main::hi#3 @@ -143,14 +143,14 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -word main::hi -word main::hi#1 202.0 -word main::hi#2 101.0 -dword main::i -dword main::i#0 202.0 -word main::lo -word main::lo#1 22.0 -word main::lo#2 19.142857142857142 +unsigned int main::hi +unsigned int main::hi#1 // 202.0 +unsigned int main::hi#2 // 101.0 +unsigned long main::i +unsigned long main::i#0 // 202.0 +unsigned int main::lo +unsigned int main::lo#1 // 22.0 +unsigned int main::lo#2 // 19.142857142857142 Initial phi equivalence classes [ main::lo#2 main::lo#1 ] @@ -302,15 +302,15 @@ Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE void main() -constant dword* const main::SCREEN = (word*) 1024 -word main::hi -word main::hi#1 hi zp[2]:4 202.0 -word main::hi#2 hi zp[2]:4 101.0 -dword main::i -dword main::i#0 i zp[4]:6 202.0 -word main::lo -word main::lo#1 lo zp[2]:2 22.0 -word main::lo#2 lo zp[2]:2 19.142857142857142 +__constant unsigned long * const main::SCREEN = (unsigned int *) 1024 +unsigned int main::hi +unsigned int main::hi#1 // hi zp[2]:4 202.0 +unsigned int main::hi#2 // hi zp[2]:4 101.0 +unsigned long main::i +unsigned long main::i#0 // i zp[4]:6 202.0 +unsigned int main::lo +unsigned int main::lo#1 // lo zp[2]:2 22.0 +unsigned int main::lo#2 // lo zp[2]:2 19.142857142857142 zp[2]:2 [ main::lo#2 main::lo#1 ] zp[2]:4 [ main::hi#2 main::hi#1 ] diff --git a/src/test/ref/makelong-0.sym b/src/test/ref/makelong-0.sym index 7f22ef180..4b7f3e984 100644 --- a/src/test/ref/makelong-0.sym +++ b/src/test/ref/makelong-0.sym @@ -1,13 +1,13 @@ void main() -constant dword* const main::SCREEN = (word*) 1024 -word main::hi -word main::hi#1 hi zp[2]:4 202.0 -word main::hi#2 hi zp[2]:4 101.0 -dword main::i -dword main::i#0 i zp[4]:6 202.0 -word main::lo -word main::lo#1 lo zp[2]:2 22.0 -word main::lo#2 lo zp[2]:2 19.142857142857142 +__constant unsigned long * const main::SCREEN = (unsigned int *) 1024 +unsigned int main::hi +unsigned int main::hi#1 // hi zp[2]:4 202.0 +unsigned int main::hi#2 // hi zp[2]:4 101.0 +unsigned long main::i +unsigned long main::i#0 // i zp[4]:6 202.0 +unsigned int main::lo +unsigned int main::lo#1 // lo zp[2]:2 22.0 +unsigned int main::lo#2 // lo zp[2]:2 19.142857142857142 zp[2]:2 [ main::lo#2 main::lo#1 ] zp[2]:4 [ main::hi#2 main::hi#1 ] diff --git a/src/test/ref/makelong4-0.log b/src/test/ref/makelong4-0.log index c33500fa8..cd622b117 100644 --- a/src/test/ref/makelong4-0.log +++ b/src/test/ref/makelong4-0.log @@ -76,7 +76,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -85,73 +85,73 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -dword~ main::$4 -constant dword* const main::SCREEN = (word*)$400 -byte main::hihi -byte main::hihi#0 -byte main::hihi#1 -byte main::hihi#2 -byte main::hihi#3 -byte main::hilo -byte main::hilo#0 -byte main::hilo#1 -byte main::hilo#2 -byte main::hilo#3 -byte main::hilo#4 -byte main::hilo#5 -byte main::hilo#6 -byte main::lohi -byte main::lohi#0 -byte main::lohi#1 -byte main::lohi#2 -byte main::lohi#3 -byte main::lohi#4 -byte main::lohi#5 -byte main::lohi#6 -byte main::lohi#7 -byte main::lohi#8 -byte main::lohi#9 -byte main::lolo -byte main::lolo#0 -byte main::lolo#1 -byte main::lolo#10 -byte main::lolo#11 -byte main::lolo#12 -byte main::lolo#2 -byte main::lolo#3 -byte main::lolo#4 -byte main::lolo#5 -byte main::lolo#6 -byte main::lolo#7 -byte main::lolo#8 -byte main::lolo#9 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +unsigned long main::$4 +__constant unsigned long * const main::SCREEN = (unsigned int *)$400 +char main::hihi +char main::hihi#0 +char main::hihi#1 +char main::hihi#2 +char main::hihi#3 +char main::hilo +char main::hilo#0 +char main::hilo#1 +char main::hilo#2 +char main::hilo#3 +char main::hilo#4 +char main::hilo#5 +char main::hilo#6 +char main::lohi +char main::lohi#0 +char main::lohi#1 +char main::lohi#2 +char main::lohi#3 +char main::lohi#4 +char main::lohi#5 +char main::lohi#6 +char main::lohi#7 +char main::lohi#8 +char main::lohi#9 +char main::lolo +char main::lolo#0 +char main::lolo#1 +char main::lolo#10 +char main::lolo#11 +char main::lolo#12 +char main::lolo#2 +char main::lolo#3 +char main::lolo#4 +char main::lolo#5 +char main::lolo#6 +char main::lolo#7 +char main::lolo#8 +char main::lolo#9 Adding number conversion cast (unumber) $64 in main::$0 = main::lolo#2 < $64 Adding number conversion cast (unumber) $64 in main::$1 = main::lohi#2 < $64 Adding number conversion cast (unumber) $64 in main::$2 = main::hilo#2 < $64 Adding number conversion cast (unumber) $64 in main::$3 = main::hihi#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::lolo#2 = main::lolo#7 Alias main::lohi#2 = main::lohi#8 @@ -267,25 +267,25 @@ main::@7: scope:[main] from main::@6 VARIABLE REGISTER WEIGHTS -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void main() -dword~ main::$4 10001.0 -byte main::hihi -byte main::hihi#1 20002.0 -byte main::hihi#2 6000.6 -byte main::hilo -byte main::hilo#1 2002.0 -byte main::hilo#2 375.375 -byte main::lohi -byte main::lohi#1 202.0 -byte main::lohi#2 27.545454545454547 -byte main::lolo -byte main::lolo#1 22.0 -byte main::lolo#2 2.357142857142857 +unsigned long main::$4 // 10001.0 +char main::hihi +char main::hihi#1 // 20002.0 +char main::hihi#2 // 6000.6 +char main::hilo +char main::hilo#1 // 2002.0 +char main::hilo#2 // 375.375 +char main::lohi +char main::lohi#1 // 202.0 +char main::lohi#2 // 27.545454545454547 +char main::lolo +char main::lolo#1 // 22.0 +char main::lolo#2 // 2.357142857142857 Initial phi equivalence classes [ main::lolo#2 main::lolo#1 ] @@ -769,26 +769,26 @@ Relabelling long label __b6_from___b4 to __b8 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void main() -dword~ main::$4 zp[4]:4 10001.0 -constant dword* const main::SCREEN = (word*) 1024 -byte main::hihi -byte main::hihi#1 reg byte x 20002.0 -byte main::hihi#2 reg byte x 6000.6 -byte main::hilo -byte main::hilo#1 reg byte y 2002.0 -byte main::hilo#2 reg byte y 375.375 -byte main::lohi -byte main::lohi#1 lohi zp[1]:3 202.0 -byte main::lohi#2 lohi zp[1]:3 27.545454545454547 -byte main::lolo -byte main::lolo#1 lolo zp[1]:2 22.0 -byte main::lolo#2 lolo zp[1]:2 2.357142857142857 +unsigned long main::$4 // zp[4]:4 10001.0 +__constant unsigned long * const main::SCREEN = (unsigned int *) 1024 +char main::hihi +char main::hihi#1 // reg byte x 20002.0 +char main::hihi#2 // reg byte x 6000.6 +char main::hilo +char main::hilo#1 // reg byte y 2002.0 +char main::hilo#2 // reg byte y 375.375 +char main::lohi +char main::lohi#1 // lohi zp[1]:3 202.0 +char main::lohi#2 // lohi zp[1]:3 27.545454545454547 +char main::lolo +char main::lolo#1 // lolo zp[1]:2 22.0 +char main::lolo#2 // lolo zp[1]:2 2.357142857142857 zp[1]:2 [ main::lolo#2 main::lolo#1 ] zp[1]:3 [ main::lohi#2 main::lohi#1 ] diff --git a/src/test/ref/makelong4-0.sym b/src/test/ref/makelong4-0.sym index 7644bc5a0..6d799bda7 100644 --- a/src/test/ref/makelong4-0.sym +++ b/src/test/ref/makelong4-0.sym @@ -1,23 +1,23 @@ -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void main() -dword~ main::$4 zp[4]:4 10001.0 -constant dword* const main::SCREEN = (word*) 1024 -byte main::hihi -byte main::hihi#1 reg byte x 20002.0 -byte main::hihi#2 reg byte x 6000.6 -byte main::hilo -byte main::hilo#1 reg byte y 2002.0 -byte main::hilo#2 reg byte y 375.375 -byte main::lohi -byte main::lohi#1 lohi zp[1]:3 202.0 -byte main::lohi#2 lohi zp[1]:3 27.545454545454547 -byte main::lolo -byte main::lolo#1 lolo zp[1]:2 22.0 -byte main::lolo#2 lolo zp[1]:2 2.357142857142857 +unsigned long main::$4 // zp[4]:4 10001.0 +__constant unsigned long * const main::SCREEN = (unsigned int *) 1024 +char main::hihi +char main::hihi#1 // reg byte x 20002.0 +char main::hihi#2 // reg byte x 6000.6 +char main::hilo +char main::hilo#1 // reg byte y 2002.0 +char main::hilo#2 // reg byte y 375.375 +char main::lohi +char main::lohi#1 // lohi zp[1]:3 202.0 +char main::lohi#2 // lohi zp[1]:3 27.545454545454547 +char main::lolo +char main::lolo#1 // lolo zp[1]:2 22.0 +char main::lolo#2 // lolo zp[1]:2 2.357142857142857 zp[1]:2 [ main::lolo#2 main::lolo#1 ] zp[1]:3 [ main::lohi#2 main::lohi#1 ] diff --git a/src/test/ref/makelong4-1.log b/src/test/ref/makelong4-1.log index 380e1f68c..27555b72f 100644 --- a/src/test/ref/makelong4-1.log +++ b/src/test/ref/makelong4-1.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,31 +21,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void __start() void main() -dword~ main::$0 -constant dword* const main::SCREEN = (word*)$400 +unsigned long main::$0 +__constant unsigned long * const main::SCREEN = (unsigned int *)$400 Adding number conversion cast (unumber) 1 in main::$0 = call MAKELONG4(1, 2, 3, 4) Adding number conversion cast (unumber) 2 in main::$0 = call MAKELONG4((unumber)1, 2, 3, 4) Adding number conversion cast (unumber) 3 in main::$0 = call MAKELONG4((unumber)1, (unumber)2, 3, 4) Adding number conversion cast (unumber) 4 in main::$0 = call MAKELONG4((unumber)1, (unumber)2, (unumber)3, 4) Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Identified constant dword [0] main::$0 = call MAKELONG4(1, 2, 3, 4) Constant main::$0 = 1*$1000000+2*$10000+3*$100+4 @@ -74,11 +74,11 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void main() Initial phi equivalence classes @@ -136,13 +136,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void main() -constant dword* const main::SCREEN = (word*) 1024 +__constant unsigned long * const main::SCREEN = (unsigned int *) 1024 diff --git a/src/test/ref/makelong4-1.sym b/src/test/ref/makelong4-1.sym index ef1f1223d..365b03af8 100644 --- a/src/test/ref/makelong4-1.sym +++ b/src/test/ref/makelong4-1.sym @@ -1,8 +1,8 @@ -__intrinsic __intrinsiccall dword MAKELONG4(byte MAKELONG4::hihi , byte MAKELONG4::hilo , byte MAKELONG4::lohi , byte MAKELONG4::lolo) -byte MAKELONG4::hihi -byte MAKELONG4::hilo -byte MAKELONG4::lohi -byte MAKELONG4::lolo +__intrinsic __intrinsiccall unsigned long MAKELONG4(char hihi , char hilo , char lohi , char lolo) +char MAKELONG4::hihi +char MAKELONG4::hilo +char MAKELONG4::lohi +char MAKELONG4::lolo void main() -constant dword* const main::SCREEN = (word*) 1024 +__constant unsigned long * const main::SCREEN = (unsigned int *) 1024 diff --git a/src/test/ref/makeword-0.log b/src/test/ref/makeword-0.log index cf89d391c..e8882d5f2 100644 --- a/src/test/ref/makeword-0.log +++ b/src/test/ref/makeword-0.log @@ -38,7 +38,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -49,34 +49,34 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -constant word* const main::SCREEN = (word*)$400 -byte main::hi -byte main::hi#0 -byte main::hi#1 -byte main::hi#2 -byte main::hi#3 -word main::i -word main::i#0 -byte main::lo -byte main::lo#0 -byte main::lo#1 -byte main::lo#2 -byte main::lo#3 -byte main::lo#4 -byte main::lo#5 -byte main::lo#6 +bool main::$0 +bool main::$1 +__constant unsigned int * const main::SCREEN = (unsigned int *)$400 +char main::hi +char main::hi#0 +char main::hi#1 +char main::hi#2 +char main::hi#3 +unsigned int main::i +unsigned int main::i#0 +char main::lo +char main::lo#0 +char main::lo#1 +char main::lo#2 +char main::lo#3 +char main::lo#4 +char main::lo#5 +char main::lo#6 Adding number conversion cast (unumber) $64 in main::$0 = main::lo#2 < $64 Adding number conversion cast (unumber) $64 in main::$1 = main::hi#2 < $64 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::lo#2 = main::lo#6 Alias main::hi#2 = main::hi#3 @@ -143,14 +143,14 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::hi -byte main::hi#1 202.0 -byte main::hi#2 101.0 -word main::i -word main::i#0 202.0 -byte main::lo -byte main::lo#1 22.0 -byte main::lo#2 19.142857142857142 +char main::hi +char main::hi#1 // 202.0 +char main::hi#2 // 101.0 +unsigned int main::i +unsigned int main::i#0 // 202.0 +char main::lo +char main::lo#1 // 22.0 +char main::lo#2 // 19.142857142857142 Initial phi equivalence classes [ main::lo#2 main::lo#1 ] @@ -270,15 +270,15 @@ Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE void main() -constant word* const main::SCREEN = (word*) 1024 -byte main::hi -byte main::hi#1 reg byte y 202.0 -byte main::hi#2 reg byte y 101.0 -word main::i -word main::i#0 i zp[2]:2 202.0 -byte main::lo -byte main::lo#1 reg byte x 22.0 -byte main::lo#2 reg byte x 19.142857142857142 +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +char main::hi +char main::hi#1 // reg byte y 202.0 +char main::hi#2 // reg byte y 101.0 +unsigned int main::i +unsigned int main::i#0 // i zp[2]:2 202.0 +char main::lo +char main::lo#1 // reg byte x 22.0 +char main::lo#2 // reg byte x 19.142857142857142 reg byte x [ main::lo#2 main::lo#1 ] reg byte y [ main::hi#2 main::hi#1 ] diff --git a/src/test/ref/makeword-0.sym b/src/test/ref/makeword-0.sym index 7e02c2c72..a9e8aa14c 100644 --- a/src/test/ref/makeword-0.sym +++ b/src/test/ref/makeword-0.sym @@ -1,13 +1,13 @@ void main() -constant word* const main::SCREEN = (word*) 1024 -byte main::hi -byte main::hi#1 reg byte y 202.0 -byte main::hi#2 reg byte y 101.0 -word main::i -word main::i#0 i zp[2]:2 202.0 -byte main::lo -byte main::lo#1 reg byte x 22.0 -byte main::lo#2 reg byte x 19.142857142857142 +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +char main::hi +char main::hi#1 // reg byte y 202.0 +char main::hi#2 // reg byte y 101.0 +unsigned int main::i +unsigned int main::i#0 // i zp[2]:2 202.0 +char main::lo +char main::lo#1 // reg byte x 22.0 +char main::lo#2 // reg byte x 19.142857142857142 reg byte x [ main::lo#2 main::lo#1 ] reg byte y [ main::hi#2 main::hi#1 ] diff --git a/src/test/ref/malloc-0.asm b/src/test/ref/malloc-0.asm index ac50090c9..00e64dcde 100644 --- a/src/test/ref/malloc-0.asm +++ b/src/test/ref/malloc-0.asm @@ -19,6 +19,7 @@ __start: { } // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = $100 .label mem = HEAP_TOP-size diff --git a/src/test/ref/malloc-0.cfg b/src/test/ref/malloc-0.cfg index 1941746ea..ec3feada0 100644 --- a/src/test/ref/malloc-0.cfg +++ b/src/test/ref/malloc-0.cfg @@ -5,17 +5,17 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call malloc + [2] call malloc to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from __start::__init1 [6] phi() to:malloc::@return diff --git a/src/test/ref/malloc-0.log b/src/test/ref/malloc-0.log index 0c30fe569..0925f45ce 100644 --- a/src/test/ref/malloc-0.log +++ b/src/test/ref/malloc-0.log @@ -1,16 +1,16 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement malloc::$0 Eliminating unused variable with no statement __start::__init1_$0 CONTROL FLOW GRAPH SSA -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from __start::__init1 malloc::size#1 = phi( __start::__init1/malloc::size#0 ) heap_head#5 = phi( __start::__init1/heap_head#2 ) malloc::mem#0 = heap_head#5 - malloc::size#1 heap_head#0 = malloc::mem#0 - malloc::return#0 = ((void*)) malloc::mem#0 + malloc::return#0 = ((void *)) malloc::mem#0 to:malloc::@return malloc::@return: scope:[malloc] from malloc heap_head#6 = phi( malloc/heap_head#0 ) @@ -43,19 +43,19 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start heap_head#2 = HEAP_TOP malloc::size#0 = $100 - call malloc + call malloc malloc::return#2 = malloc::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 heap_head#7 = phi( __start::__init1/heap_head#1 ) malloc::return#4 = phi( __start::__init1/malloc::return#2 ) - BYTES#0 = ((byte*)) malloc::return#4 + BYTES#0 = ((char *)) malloc::return#4 heap_head#3 = heap_head#7 to:__start::@1 __start::@1: scope:[__start] from __start::@2 heap_head#10 = phi( __start::@2/heap_head#3 ) BYTES#6 = phi( __start::@2/BYTES#0 ) - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 BYTES#5 = phi( __start::@1/BYTES#6 ) @@ -70,61 +70,61 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -byte* BYTES -byte* BYTES#0 -byte* BYTES#1 -byte* BYTES#2 -byte* BYTES#3 -byte* BYTES#4 -byte* BYTES#5 -byte* BYTES#6 -constant byte* HEAP_TOP = (byte*)$a000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +char *BYTES +char *BYTES#0 +char *BYTES#1 +char *BYTES#2 +char *BYTES#3 +char *BYTES#4 +char *BYTES#5 +char *BYTES#6 +__constant char *HEAP_TOP = (char *)$a000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -byte* heap_head -byte* heap_head#0 -byte* heap_head#1 -byte* heap_head#10 -byte* heap_head#2 -byte* heap_head#3 -byte* heap_head#4 -byte* heap_head#5 -byte* heap_head#6 -byte* heap_head#7 -byte* heap_head#8 -byte* heap_head#9 +char *heap_head +char *heap_head#0 +char *heap_head#1 +char *heap_head#10 +char *heap_head#2 +char *heap_head#3 +char *heap_head#4 +char *heap_head#5 +char *heap_head#6 +char *heap_head#7 +char *heap_head#8 +char *heap_head#9 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 -void* malloc::return -void* malloc::return#0 -void* malloc::return#1 -void* malloc::return#2 -void* malloc::return#3 -void* malloc::return#4 -word malloc::size -word malloc::size#0 -word malloc::size#1 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 +void *malloc::return +void *malloc::return#0 +void *malloc::return#1 +void *malloc::return#2 +void *malloc::return#3 +void *malloc::return#4 +unsigned int malloc::size +unsigned int malloc::size#0 +unsigned int malloc::size#1 Adding number conversion cast (unumber) $100 in malloc::size#0 = $100 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast malloc::return#0 = (void*)malloc::mem#0 +Inlining cast malloc::return#0 = (void *)malloc::mem#0 Inlining cast malloc::size#0 = (unumber)$100 -Inlining cast BYTES#0 = (byte*)malloc::return#4 +Inlining cast BYTES#0 = (char *)malloc::return#4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 40960 +Simplifying constant pointer cast (char *) 40960 Simplifying constant integer cast $100 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias malloc::return#0 = malloc::return#3 malloc::return#1 Alias heap_head#0 = heap_head#6 heap_head#1 @@ -152,17 +152,17 @@ Adding number conversion cast (unumber) 0 in if(main::i#1!=0) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] malloc::mem#0 = heap_head#2 - malloc::size#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant malloc::mem#0 = heap_head#2-malloc::size#0 Successful SSA optimization Pass2ConstantIdentification -Constant malloc::return#0 = (void*)malloc::mem#0 +Constant malloc::return#0 = (void *)malloc::mem#0 Successful SSA optimization Pass2ConstantIdentification Constant malloc::return#2 = malloc::return#0 Successful SSA optimization Pass2ConstantIdentification -Constant BYTES#0 = (byte*)malloc::return#2 +Constant BYTES#0 = (char *)malloc::return#2 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings malloc::return#2 Inlining constant with var siblings main::i#0 @@ -170,10 +170,10 @@ Constant inlined main::i#0 = 0 Constant inlined malloc::return#2 = malloc::return#0 Constant inlined heap_head#2 = HEAP_TOP Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of __start @@ -206,17 +206,17 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call malloc + [2] call malloc to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from __start::__init1 [6] phi() to:malloc::@return @@ -240,17 +240,17 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte* BYTES +char *BYTES void __start() -byte* heap_head +char *heap_head void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 202.0 -void* malloc(word malloc::size) -byte* malloc::mem -void* malloc::return -word malloc::size +char main::i +char main::i#1 // 151.5 +char main::i#2 // 202.0 +void * malloc(unsigned int size) +char *malloc::mem +void *malloc::return +unsigned int malloc::size Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -297,7 +297,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [2] call malloc + // [2] call malloc // [6] phi from __start::__init1 to malloc [phi:__start::__init1->malloc] malloc_from___init1: jsr malloc @@ -306,7 +306,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main // [8] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -319,6 +319,7 @@ __start: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = $100 .label mem = HEAP_TOP-size @@ -384,26 +385,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -byte* BYTES -constant byte* BYTES#0 BYTES = (byte*)malloc::return#0 -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +char *BYTES +__constant char *BYTES#0 = (char *)malloc::return#0 // BYTES +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -byte* heap_head +char *heap_head void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 202.0 -void* malloc(word malloc::size) -byte* malloc::mem -constant byte* malloc::mem#0 mem = HEAP_TOP-malloc::size#0 -void* malloc::return -constant void* malloc::return#0 return = (void*)malloc::mem#0 -word malloc::size -constant word malloc::size#0 size = $100 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 202.0 +void * malloc(unsigned int size) +char *malloc::mem +__constant char *malloc::mem#0 = HEAP_TOP-malloc::size#0 // mem +void *malloc::return +__constant void *malloc::return#0 = (void *)malloc::mem#0 // return +unsigned int malloc::size +__constant unsigned int malloc::size#0 = $100 // size reg byte x [ main::i#2 main::i#1 ] @@ -432,12 +433,12 @@ __start: { // [1] phi from __start to __start::__init1 [phi:__start->__start::__init1] // __start::__init1 // byte* BYTES = malloc(0x100) - // [2] call malloc + // [2] call malloc // [6] phi from __start::__init1 to malloc [phi:__start::__init1->malloc] jsr malloc // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main // [8] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -447,6 +448,7 @@ __start: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = $100 .label mem = HEAP_TOP-size diff --git a/src/test/ref/malloc-0.sym b/src/test/ref/malloc-0.sym index 90881583b..0a829f4b9 100644 --- a/src/test/ref/malloc-0.sym +++ b/src/test/ref/malloc-0.sym @@ -1,22 +1,22 @@ -byte* BYTES -constant byte* BYTES#0 BYTES = (byte*)malloc::return#0 -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +char *BYTES +__constant char *BYTES#0 = (char *)malloc::return#0 // BYTES +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -byte* heap_head +char *heap_head void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 202.0 -void* malloc(word malloc::size) -byte* malloc::mem -constant byte* malloc::mem#0 mem = HEAP_TOP-malloc::size#0 -void* malloc::return -constant void* malloc::return#0 return = (void*)malloc::mem#0 -word malloc::size -constant word malloc::size#0 size = $100 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 202.0 +void * malloc(unsigned int size) +char *malloc::mem +__constant char *malloc::mem#0 = HEAP_TOP-malloc::size#0 // mem +void *malloc::return +__constant void *malloc::return#0 = (void *)malloc::mem#0 // return +unsigned int malloc::size +__constant unsigned int malloc::size#0 = $100 // size reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/malloc-1.asm b/src/test/ref/malloc-1.asm index a1cc4502d..0bd85e1a1 100644 --- a/src/test/ref/malloc-1.asm +++ b/src/test/ref/malloc-1.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 // Top of the heap used by malloc() .label HEAP_TOP = $a000 .label WORDS = malloc.return @@ -20,6 +20,7 @@ __start: { } // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = $200 .label mem = HEAP_TOP-size @@ -43,7 +44,7 @@ main: { iny sta (w),y // *w++ = i; - lda #SIZEOF_WORD + lda #SIZEOF_UNSIGNED_INT clc adc.z w sta.z w diff --git a/src/test/ref/malloc-1.cfg b/src/test/ref/malloc-1.cfg index 720dcf153..10a75eb48 100644 --- a/src/test/ref/malloc-1.cfg +++ b/src/test/ref/malloc-1.cfg @@ -5,17 +5,17 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call malloc + [2] call malloc to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from __start::__init1 [6] phi() to:malloc::@return @@ -31,7 +31,7 @@ main::@1: scope:[main] from main main::@1 [9] main::w#2 = phi( main/WORDS#0, main::@1/main::w#1 ) [9] main::i#2 = phi( main/0, main::@1/main::i#1 ) [10] *main::w#2 = main::i#2 - [11] main::w#1 = main::w#2 + SIZEOF_WORD + [11] main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT [12] main::i#1 = ++ main::i#2 [13] if(main::i#1!=0) goto main::@1 to:main::@return diff --git a/src/test/ref/malloc-1.log b/src/test/ref/malloc-1.log index 28222c6d9..72f6b7643 100644 --- a/src/test/ref/malloc-1.log +++ b/src/test/ref/malloc-1.log @@ -1,16 +1,16 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement malloc::$0 Eliminating unused variable with no statement __start::__init1_$0 CONTROL FLOW GRAPH SSA -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from __start::__init1 malloc::size#1 = phi( __start::__init1/malloc::size#0 ) heap_head#5 = phi( __start::__init1/heap_head#2 ) malloc::mem#0 = heap_head#5 - malloc::size#1 heap_head#0 = malloc::mem#0 - malloc::return#0 = ((void*)) malloc::mem#0 + malloc::return#0 = ((void *)) malloc::mem#0 to:malloc::@return malloc::@return: scope:[malloc] from malloc heap_head#6 = phi( malloc/heap_head#0 ) @@ -30,7 +30,7 @@ main::@1: scope:[main] from main main::@1 main::w#2 = phi( main/main::w#0, main::@1/main::w#1 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) *main::w#2 = main::i#2 - main::w#1 = main::w#2 + SIZEOF_WORD + main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT main::i#1 = main::i#2 + rangenext(0,$ff) main::$0 = main::i#1 != rangelast(0,$ff) if(main::$0) goto main::@1 @@ -45,19 +45,19 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start heap_head#2 = HEAP_TOP malloc::size#0 = $200 - call malloc + call malloc malloc::return#2 = malloc::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::__init1 heap_head#7 = phi( __start::__init1/heap_head#1 ) malloc::return#4 = phi( __start::__init1/malloc::return#2 ) - WORDS#0 = ((word*)) malloc::return#4 + WORDS#0 = ((unsigned int *)) malloc::return#4 heap_head#3 = heap_head#7 to:__start::@1 __start::@1: scope:[__start] from __start::@2 heap_head#10 = phi( __start::@2/heap_head#3 ) WORDS#4 = phi( __start::@2/WORDS#0 ) - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 WORDS#5 = phi( __start::@1/WORDS#4 ) @@ -72,65 +72,65 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* HEAP_TOP = (byte*)$a000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 -word* WORDS -word* WORDS#0 -word* WORDS#1 -word* WORDS#2 -word* WORDS#3 -word* WORDS#4 -word* WORDS#5 +__constant char *HEAP_TOP = (char *)$a000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 +unsigned int *WORDS +unsigned int *WORDS#0 +unsigned int *WORDS#1 +unsigned int *WORDS#2 +unsigned int *WORDS#3 +unsigned int *WORDS#4 +unsigned int *WORDS#5 void __start() -byte* heap_head -byte* heap_head#0 -byte* heap_head#1 -byte* heap_head#10 -byte* heap_head#2 -byte* heap_head#3 -byte* heap_head#4 -byte* heap_head#5 -byte* heap_head#6 -byte* heap_head#7 -byte* heap_head#8 -byte* heap_head#9 +char *heap_head +char *heap_head#0 +char *heap_head#1 +char *heap_head#10 +char *heap_head#2 +char *heap_head#3 +char *heap_head#4 +char *heap_head#5 +char *heap_head#6 +char *heap_head#7 +char *heap_head#8 +char *heap_head#9 void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -word* main::w -word* main::w#0 -word* main::w#1 -word* main::w#2 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 -void* malloc::return -void* malloc::return#0 -void* malloc::return#1 -void* malloc::return#2 -void* malloc::return#3 -void* malloc::return#4 -word malloc::size -word malloc::size#0 -word malloc::size#1 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +unsigned int *main::w +unsigned int *main::w#0 +unsigned int *main::w#1 +unsigned int *main::w#2 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 +void *malloc::return +void *malloc::return#0 +void *malloc::return#1 +void *malloc::return#2 +void *malloc::return#3 +void *malloc::return#4 +unsigned int malloc::size +unsigned int malloc::size#0 +unsigned int malloc::size#1 Adding number conversion cast (unumber) $200 in malloc::size#0 = $200 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast malloc::return#0 = (void*)malloc::mem#0 +Inlining cast malloc::return#0 = (void *)malloc::mem#0 Inlining cast malloc::size#0 = (unumber)$200 -Inlining cast WORDS#0 = (word*)malloc::return#4 +Inlining cast WORDS#0 = (unsigned int *)malloc::return#4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 40960 +Simplifying constant pointer cast (char *) 40960 Simplifying constant integer cast $200 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $200 +Finalized unsigned number type (unsigned int) $200 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias malloc::return#0 = malloc::return#3 malloc::return#1 Alias heap_head#0 = heap_head#6 heap_head#1 @@ -157,17 +157,17 @@ Adding number conversion cast (unumber) 0 in if(main::i#1!=0) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] malloc::mem#0 = heap_head#2 - malloc::size#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant malloc::mem#0 = heap_head#2-malloc::size#0 Successful SSA optimization Pass2ConstantIdentification -Constant malloc::return#0 = (void*)malloc::mem#0 +Constant malloc::return#0 = (void *)malloc::mem#0 Successful SSA optimization Pass2ConstantIdentification Constant malloc::return#2 = malloc::return#0 Successful SSA optimization Pass2ConstantIdentification -Constant WORDS#0 = (word*)malloc::return#2 +Constant WORDS#0 = (unsigned int *)malloc::return#2 Successful SSA optimization Pass2ConstantIdentification Constant main::w#0 = WORDS#0 Successful SSA optimization Pass2ConstantIdentification @@ -179,10 +179,10 @@ Constant inlined malloc::return#2 = malloc::return#0 Constant inlined heap_head#2 = HEAP_TOP Constant inlined main::w#0 = WORDS#0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of __start @@ -216,17 +216,17 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call malloc + [2] call malloc to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from __start::__init1 [6] phi() to:malloc::@return @@ -242,7 +242,7 @@ main::@1: scope:[main] from main main::@1 [9] main::w#2 = phi( main/WORDS#0, main::@1/main::w#1 ) [9] main::i#2 = phi( main/0, main::@1/main::i#1 ) [10] *main::w#2 = main::i#2 - [11] main::w#1 = main::w#2 + SIZEOF_WORD + [11] main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT [12] main::i#1 = ++ main::i#2 [13] if(main::i#1!=0) goto main::@1 to:main::@return @@ -252,20 +252,20 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -word* WORDS +unsigned int *WORDS void __start() -byte* heap_head +char *heap_head void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 101.0 -word* main::w -word* main::w#1 67.33333333333333 -word* main::w#2 151.5 -void* malloc(word malloc::size) -byte* malloc::mem -void* malloc::return -word malloc::size +char main::i +char main::i#1 // 151.5 +char main::i#2 // 101.0 +unsigned int *main::w +unsigned int *main::w#1 // 67.33333333333333 +unsigned int *main::w#2 // 151.5 +void * malloc(unsigned int size) +char *malloc::mem +void *malloc::return +unsigned int malloc::size Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -279,9 +279,9 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [10] *main::w#2 = main::i#2 [ main::i#2 main::w#2 ] ( main:4 [ main::i#2 main::w#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [11] main::w#1 = main::w#2 + SIZEOF_WORD [ main::i#2 main::w#1 ] ( main:4 [ main::i#2 main::w#1 ] { } ) always clobbers reg byte a +Statement [11] main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT [ main::i#2 main::w#1 ] ( main:4 [ main::i#2 main::w#1 ] { } ) always clobbers reg byte a Statement [10] *main::w#2 = main::i#2 [ main::i#2 main::w#2 ] ( main:4 [ main::i#2 main::w#2 ] { } ) always clobbers reg byte a reg byte y -Statement [11] main::w#1 = main::w#2 + SIZEOF_WORD [ main::i#2 main::w#1 ] ( main:4 [ main::i#2 main::w#1 ] { } ) always clobbers reg byte a +Statement [11] main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT [ main::i#2 main::w#1 ] ( main:4 [ main::i#2 main::w#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , Potential registers zp[2]:3 [ main::w#2 main::w#1 ] : zp[2]:3 , @@ -312,7 +312,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(__start) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 // Top of the heap used by malloc() .label HEAP_TOP = $a000 .label WORDS = malloc.return @@ -324,7 +324,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [2] call malloc + // [2] call malloc // [6] phi from __start::__init1 to malloc [phi:__start::__init1->malloc] malloc_from___init1: jsr malloc @@ -333,7 +333,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main // [8] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -346,6 +346,7 @@ __start: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = $200 .label mem = HEAP_TOP-size @@ -383,8 +384,8 @@ main: { tya iny sta (w),y - // [11] main::w#1 = main::w#2 + SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD + // [11] main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT clc adc.z w sta.z w @@ -430,30 +431,30 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 -word* WORDS -constant word* WORDS#0 WORDS = (word*)malloc::return#0 +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 +unsigned int *WORDS +__constant unsigned int *WORDS#0 = (unsigned int *)malloc::return#0 // WORDS void __start() -byte* heap_head +char *heap_head void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 101.0 -word* main::w -word* main::w#1 w zp[2]:2 67.33333333333333 -word* main::w#2 w zp[2]:2 151.5 -void* malloc(word malloc::size) -byte* malloc::mem -constant byte* malloc::mem#0 mem = HEAP_TOP-malloc::size#0 -void* malloc::return -constant void* malloc::return#0 return = (void*)malloc::mem#0 -word malloc::size -constant word malloc::size#0 size = $200 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 101.0 +unsigned int *main::w +unsigned int *main::w#1 // w zp[2]:2 67.33333333333333 +unsigned int *main::w#2 // w zp[2]:2 151.5 +void * malloc(unsigned int size) +char *malloc::mem +__constant char *malloc::mem#0 = HEAP_TOP-malloc::size#0 // mem +void *malloc::return +__constant void *malloc::return#0 = (void *)malloc::mem#0 // return +unsigned int malloc::size +__constant unsigned int malloc::size#0 = $200 // size reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::w#2 main::w#1 ] @@ -474,7 +475,7 @@ Score: 590 .segment Basic :BasicUpstart(__start) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 // Top of the heap used by malloc() .label HEAP_TOP = $a000 .label WORDS = malloc.return @@ -484,12 +485,12 @@ __start: { // [1] phi from __start to __start::__init1 [phi:__start->__start::__init1] // __start::__init1 // word* WORDS = malloc(0x200) - // [2] call malloc + // [2] call malloc // [6] phi from __start::__init1 to malloc [phi:__start::__init1->malloc] jsr malloc // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main // [8] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -499,6 +500,7 @@ __start: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = $200 .label mem = HEAP_TOP-size @@ -533,8 +535,8 @@ main: { iny sta (w),y // *w++ = i; - // [11] main::w#1 = main::w#2 + SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD + // [11] main::w#1 = main::w#2 + SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT clc adc.z w sta.z w diff --git a/src/test/ref/malloc-1.sym b/src/test/ref/malloc-1.sym index b8d1d2870..1b09fbc84 100644 --- a/src/test/ref/malloc-1.sym +++ b/src/test/ref/malloc-1.sym @@ -1,27 +1,27 @@ -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 -word* WORDS -constant word* WORDS#0 WORDS = (word*)malloc::return#0 +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 +unsigned int *WORDS +__constant unsigned int *WORDS#0 = (unsigned int *)malloc::return#0 // WORDS void __start() -byte* heap_head +char *heap_head void main() -byte main::i -byte main::i#1 reg byte x 151.5 -byte main::i#2 reg byte x 101.0 -word* main::w -word* main::w#1 w zp[2]:2 67.33333333333333 -word* main::w#2 w zp[2]:2 151.5 -void* malloc(word malloc::size) -byte* malloc::mem -constant byte* malloc::mem#0 mem = HEAP_TOP-malloc::size#0 -void* malloc::return -constant void* malloc::return#0 return = (void*)malloc::mem#0 -word malloc::size -constant word malloc::size#0 size = $200 +char main::i +char main::i#1 // reg byte x 151.5 +char main::i#2 // reg byte x 101.0 +unsigned int *main::w +unsigned int *main::w#1 // w zp[2]:2 67.33333333333333 +unsigned int *main::w#2 // w zp[2]:2 151.5 +void * malloc(unsigned int size) +char *malloc::mem +__constant char *malloc::mem#0 = HEAP_TOP-malloc::size#0 // mem +void *malloc::return +__constant void *malloc::return#0 = (void *)malloc::mem#0 // return +unsigned int malloc::size +__constant unsigned int malloc::size#0 = $200 // size reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::w#2 main::w#1 ] diff --git a/src/test/ref/mem-alignment.log b/src/test/ref/mem-alignment.log index db86863e7..1f2bcb961 100644 --- a/src/test/ref/mem-alignment.log +++ b/src/test/ref/mem-alignment.log @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -41,23 +41,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* bs[$100] = { fill( $100, 0) } +__constant char bs[$100] = { fill( $100, 0) } void main() -bool~ main::$0 -bool~ main::$1 -constant byte* main::cs[$100] = { fill( $100, 0) } -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 +bool main::$0 +bool main::$1 +__constant char main::cs[$100] = { fill( $100, 0) } +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 Simple Condition main::$0 [5] if(main::i#1!=rangelast(0,$ff)) goto main::@1 Simple Condition main::$1 [13] if(main::i1#1!=rangelast(0,$ff)) goto main::@3 @@ -81,8 +81,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -91,10 +91,10 @@ Constant inlined main::i#0 = 0 Constant inlined main::i1#0 = 0 Constant inlined main::j#0 = $ff Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -140,15 +140,15 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 11.0 -byte main::j -byte main::j#1 7.333333333333333 -byte main::j#2 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 11.0 +char main::j +char main::j#1 // 7.333333333333333 +char main::j#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -268,18 +268,18 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* bs[$100] = { fill( $100, 0) } +__constant char bs[$100] = { fill( $100, 0) } void main() -constant byte* main::cs[$100] = { fill( $100, 0) } -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::i1 -byte main::i1#1 reg byte y 16.5 -byte main::i1#2 reg byte y 11.0 -byte main::j -byte main::j#1 reg byte x 7.333333333333333 -byte main::j#2 reg byte x 16.5 +__constant char main::cs[$100] = { fill( $100, 0) } +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::i1 +char main::i1#1 // reg byte y 16.5 +char main::i1#2 // reg byte y 11.0 +char main::j +char main::j#1 // reg byte x 7.333333333333333 +char main::j#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/mem-alignment.sym b/src/test/ref/mem-alignment.sym index 8f5682912..3369fe5f3 100644 --- a/src/test/ref/mem-alignment.sym +++ b/src/test/ref/mem-alignment.sym @@ -1,15 +1,15 @@ -constant byte* bs[$100] = { fill( $100, 0) } +__constant char bs[$100] = { fill( $100, 0) } void main() -constant byte* main::cs[$100] = { fill( $100, 0) } -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::i1 -byte main::i1#1 reg byte y 16.5 -byte main::i1#2 reg byte y 11.0 -byte main::j -byte main::j#1 reg byte x 7.333333333333333 -byte main::j#2 reg byte x 16.5 +__constant char main::cs[$100] = { fill( $100, 0) } +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::i1 +char main::i1#1 // reg byte y 16.5 +char main::i1#2 // reg byte y 11.0 +char main::j +char main::j#1 // reg byte x 7.333333333333333 +char main::j#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/memcpy-0.asm b/src/test/ref/memcpy-0.asm index 575f716c4..e447a2d94 100644 --- a/src/test/ref/memcpy-0.asm +++ b/src/test/ref/memcpy-0.asm @@ -70,7 +70,7 @@ main: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(4) destination, void* zp(2) source, word zp(6) num) +// void * memcpy(__zp(4) void *destination, __zp(2) void *source, __zp(6) unsigned int num) memcpy: { .label src_end = 6 .label dst = 4 diff --git a/src/test/ref/memcpy-0.cfg b/src/test/ref/memcpy-0.cfg index 09f7bdaee..f2e1875ee 100644 --- a/src/test/ref/memcpy-0.cfg +++ b/src/test/ref/memcpy-0.cfg @@ -8,12 +8,12 @@ main::toD0181: scope:[main] from main to:main::@1 main::@1: scope:[main] from main::toD0181 [2] *D018 = main::toD0181_return#0 - [3] call memcpy + [3] call memcpy to:main::@2 main::@2: scope:[main] from main::@1 asm { sei } [5] *PROCPORT = PROCPORT_RAM_CHARROM - [6] call memcpy + [6] call memcpy to:main::@3 main::@3: scope:[main] from main::@2 [7] *PROCPORT = PROCPORT_BASIC_KERNEL_IO @@ -23,14 +23,14 @@ main::@return: scope:[main] from main::@3 [9] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main::@1 main::@2 [10] memcpy::num#2 = phi( main::@1/$400, main::@2/$800 ) - [10] memcpy::destination#2 = phi( main::@1/(void*)SCREEN_COPY, main::@2/(void*)CHARSET ) - [10] memcpy::source#2 = phi( main::@1/(void*)SCREEN, main::@2/(void*)CHARGEN ) - [11] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 - [12] memcpy::src#4 = (byte*)memcpy::source#2 - [13] memcpy::dst#4 = (byte*)memcpy::destination#2 + [10] memcpy::destination#2 = phi( main::@1/(void *)SCREEN_COPY, main::@2/(void *)CHARSET ) + [10] memcpy::source#2 = phi( main::@1/(void *)SCREEN, main::@2/(void *)CHARGEN ) + [11] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 + [12] memcpy::src#4 = (char *)memcpy::source#2 + [13] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [14] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) diff --git a/src/test/ref/memcpy-0.log b/src/test/ref/memcpy-0.log index 882abe6ff..831ff0c95 100644 --- a/src/test/ref/memcpy-0.log +++ b/src/test/ref/memcpy-0.log @@ -4,14 +4,14 @@ Eliminating unused variable with no statement memcpy::$0 CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main::@1 main::@2 memcpy::num#2 = phi( main::@1/memcpy::num#0, main::@2/memcpy::num#1 ) memcpy::destination#2 = phi( main::@1/memcpy::destination#0, main::@2/memcpy::destination#1 ) memcpy::source#2 = phi( main::@1/memcpy::source#0, main::@2/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -49,11 +49,11 @@ main: scope:[main] from __start main::toD0181: scope:[main] from main main::toD0181_gfx#1 = phi( main/main::toD0181_gfx#0 ) main::toD0181_screen#1 = phi( main/main::toD0181_screen#0 ) - main::toD0181_$7 = (word)main::toD0181_screen#1 + main::toD0181_$7 = (unsigned int)main::toD0181_screen#1 main::toD0181_$0 = main::toD0181_$7 & $3fff main::toD0181_$1 = main::toD0181_$0 * 4 main::toD0181_$2 = byte1 main::toD0181_$1 - main::toD0181_$3 = byte1 (word)main::toD0181_gfx#1 + main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#1 main::toD0181_$4 = main::toD0181_$3 / 4 main::toD0181_$5 = main::toD0181_$4 & $f main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 @@ -67,19 +67,19 @@ main::@1: scope:[main] from main::toD0181_@return main::toD0181_return#3 = phi( main::toD0181_@return/main::toD0181_return#1 ) main::$0 = main::toD0181_return#3 *D018 = main::$0 - memcpy::destination#0 = (void*)SCREEN_COPY - memcpy::source#0 = (void*)SCREEN + memcpy::destination#0 = (void *)SCREEN_COPY + memcpy::source#0 = (void *)SCREEN memcpy::num#0 = $400 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:main::@2 main::@2: scope:[main] from main::@1 asm { sei } *PROCPORT = PROCPORT_RAM_CHARROM - memcpy::destination#1 = (void*)CHARSET - memcpy::source#1 = (void*)CHARGEN + memcpy::destination#1 = (void *)CHARSET + memcpy::source#1 = (void *)CHARGEN memcpy::num#1 = $800 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:main::@3 main::@3: scope:[main] from main::@2 @@ -92,7 +92,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -101,74 +101,74 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const CHARGEN = (byte*)$d000 -constant byte* const CHARSET = (byte*)$2000 -constant byte* const D018 = (byte*)$d018 -constant byte* const PROCPORT = (byte*)1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte* const SCREEN_COPY = (byte*)$2400 +__constant char * const CHARGEN = (char *)$d000 +__constant char * const CHARSET = (char *)$2000 +__constant char * const D018 = (char *)$d018 +__constant char * const PROCPORT = (char *)1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant char * const SCREEN = (char *)$400 +__constant char * const SCREEN_COPY = (char *)$2400 void __start() void main() -byte~ main::$0 -number~ main::toD0181_$0 -number~ main::toD0181_$1 -byte~ main::toD0181_$2 -byte~ main::toD0181_$3 -number~ main::toD0181_$4 -number~ main::toD0181_$5 -number~ main::toD0181_$6 -word~ main::toD0181_$7 -byte* main::toD0181_gfx -byte* main::toD0181_gfx#0 -byte* main::toD0181_gfx#1 -byte main::toD0181_return -byte main::toD0181_return#0 -byte main::toD0181_return#1 -byte main::toD0181_return#2 -byte main::toD0181_return#3 -byte* main::toD0181_screen -byte* main::toD0181_screen#0 -byte* main::toD0181_screen#1 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 +char main::$0 +number main::toD0181_$0 +number main::toD0181_$1 +char main::toD0181_$2 +char main::toD0181_$3 +number main::toD0181_$4 +number main::toD0181_$5 +number main::toD0181_$6 +unsigned int main::toD0181_$7 +char *main::toD0181_gfx +char *main::toD0181_gfx#0 +char *main::toD0181_gfx#1 +char main::toD0181_return +char main::toD0181_return#0 +char main::toD0181_return#1 +char main::toD0181_return#2 +char main::toD0181_return#3 +char *main::toD0181_screen +char *main::toD0181_screen#0 +char *main::toD0181_screen#1 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 Adding number conversion cast (unumber) $3fff in main::toD0181_$0 = main::toD0181_$7 & $3fff Adding number conversion cast (unumber) main::toD0181_$0 in main::toD0181_$0 = main::toD0181_$7 & (unumber)$3fff @@ -182,17 +182,17 @@ Adding number conversion cast (unumber) main::toD0181_$6 in main::toD0181_$6 = m Adding number conversion cast (unumber) $400 in memcpy::num#0 = $400 Adding number conversion cast (unumber) $800 in memcpy::num#1 = $800 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 Inlining cast memcpy::num#0 = (unumber)$400 Inlining cast memcpy::num#1 = (unumber)$800 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 9216 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 9216 Simplifying constant integer cast $3fff Simplifying constant integer cast 4 Simplifying constant integer cast 4 @@ -200,18 +200,18 @@ Simplifying constant integer cast $f Simplifying constant integer cast $400 Simplifying constant integer cast $800 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $800 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (unsigned int) $800 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::toD0181_$0 = main::toD0181_$7 & $3fff -Inferred type updated to word in main::toD0181_$1 = main::toD0181_$0 * 4 -Inferred type updated to byte in main::toD0181_$4 = main::toD0181_$3 / 4 -Inferred type updated to byte in main::toD0181_$5 = main::toD0181_$4 & $f -Inferred type updated to byte in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 +Inferred type updated to unsigned int in main::toD0181_$0 = main::toD0181_$7 & $3fff +Inferred type updated to unsigned int in main::toD0181_$1 = main::toD0181_$0 * 4 +Inferred type updated to char in main::toD0181_$4 = main::toD0181_$3 / 4 +Inferred type updated to char in main::toD0181_$5 = main::toD0181_$4 & $f +Inferred type updated to char in main::toD0181_$6 = main::toD0181_$2 | main::toD0181_$5 Alias memcpy::src#2 = memcpy::src#3 Alias memcpy::dst#2 = memcpy::dst#3 Alias memcpy::src_end#1 = memcpy::src_end#2 @@ -227,16 +227,16 @@ Simple Condition memcpy::$1 [7] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::toD0181_screen#0 = SCREEN_COPY Constant main::toD0181_gfx#0 = CHARSET -Constant memcpy::destination#0 = (void*)SCREEN_COPY -Constant memcpy::source#0 = (void*)SCREEN +Constant memcpy::destination#0 = (void *)SCREEN_COPY +Constant memcpy::source#0 = (void *)SCREEN Constant memcpy::num#0 = $400 -Constant memcpy::destination#1 = (void*)CHARSET -Constant memcpy::source#1 = (void*)CHARGEN +Constant memcpy::destination#1 = (void *)CHARSET +Constant memcpy::source#1 = (void *)CHARGEN Constant memcpy::num#1 = $800 Successful SSA optimization Pass2ConstantIdentification -Constant main::toD0181_$7 = (word)main::toD0181_screen#0 +Constant main::toD0181_$7 = (unsigned int)main::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)main::toD0181_gfx#0 in [18] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant value identified (unsigned int)main::toD0181_gfx#0 in [18] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues Eliminating unused variable memcpy::return#2 and assignment [20] memcpy::return#2 = memcpy::destination#2 Eliminating unused variable memcpy::return#3 and assignment [24] memcpy::return#3 = memcpy::destination#2 @@ -247,10 +247,10 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant right-side identified [11] main::toD0181_$0 = main::toD0181_$7 & $3fff -Constant right-side identified [14] main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant right-side identified [14] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_$0 = main::toD0181_$7&$3fff -Constant main::toD0181_$3 = byte1 (word)main::toD0181_gfx#0 +Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [11] main::toD0181_$1 = main::toD0181_$0 * 4 Constant right-side identified [13] main::toD0181_$4 = main::toD0181_$3 / 4 @@ -268,9 +268,9 @@ Constant right-side identified [11] main::toD0181_return#0 = main::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings memcpy::destination#0 Inlining constant with var siblings memcpy::source#0 @@ -280,19 +280,19 @@ Inlining constant with var siblings memcpy::source#1 Inlining constant with var siblings memcpy::num#1 Constant inlined main::toD0181_screen#0 = SCREEN_COPY Constant inlined main::toD0181_gfx#0 = CHARSET -Constant inlined main::toD0181_$7 = (word)SCREEN_COPY -Constant inlined main::toD0181_$2 = byte1 (word)SCREEN_COPY&$3fff*4 -Constant inlined main::toD0181_$1 = (word)SCREEN_COPY&$3fff*4 -Constant inlined main::toD0181_$0 = (word)SCREEN_COPY&$3fff -Constant inlined memcpy::destination#0 = (void*)SCREEN_COPY -Constant inlined memcpy::destination#1 = (void*)CHARSET -Constant inlined memcpy::source#0 = (void*)SCREEN -Constant inlined main::toD0181_$5 = byte1 (word)CHARSET/4&$f -Constant inlined main::toD0181_$4 = byte1 (word)CHARSET/4 -Constant inlined main::toD0181_$3 = byte1 (word)CHARSET +Constant inlined main::toD0181_$7 = (unsigned int)SCREEN_COPY +Constant inlined main::toD0181_$2 = byte1 (unsigned int)SCREEN_COPY&$3fff*4 +Constant inlined main::toD0181_$1 = (unsigned int)SCREEN_COPY&$3fff*4 +Constant inlined main::toD0181_$0 = (unsigned int)SCREEN_COPY&$3fff +Constant inlined memcpy::destination#0 = (void *)SCREEN_COPY +Constant inlined memcpy::destination#1 = (void *)CHARSET +Constant inlined memcpy::source#0 = (void *)SCREEN +Constant inlined main::toD0181_$5 = byte1 (unsigned int)CHARSET/4&$f +Constant inlined main::toD0181_$4 = byte1 (unsigned int)CHARSET/4 +Constant inlined main::toD0181_$3 = byte1 (unsigned int)CHARSET Constant inlined memcpy::num#1 = $800 Constant inlined memcpy::num#0 = $400 -Constant inlined memcpy::source#1 = (void*)CHARGEN +Constant inlined memcpy::source#1 = (void *)CHARGEN Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main Adding NOP phi() at start of main::toD0181 @@ -321,12 +321,12 @@ main::toD0181: scope:[main] from main to:main::@1 main::@1: scope:[main] from main::toD0181 [2] *D018 = main::toD0181_return#0 - [3] call memcpy + [3] call memcpy to:main::@2 main::@2: scope:[main] from main::@1 asm { sei } [5] *PROCPORT = PROCPORT_RAM_CHARROM - [6] call memcpy + [6] call memcpy to:main::@3 main::@3: scope:[main] from main::@2 [7] *PROCPORT = PROCPORT_BASIC_KERNEL_IO @@ -336,14 +336,14 @@ main::@return: scope:[main] from main::@3 [9] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main::@1 main::@2 [10] memcpy::num#2 = phi( main::@1/$400, main::@2/$800 ) - [10] memcpy::destination#2 = phi( main::@1/(void*)SCREEN_COPY, main::@2/(void*)CHARSET ) - [10] memcpy::source#2 = phi( main::@1/(void*)SCREEN, main::@2/(void*)CHARGEN ) - [11] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 - [12] memcpy::src#4 = (byte*)memcpy::source#2 - [13] memcpy::dst#4 = (byte*)memcpy::destination#2 + [10] memcpy::destination#2 = phi( main::@1/(void *)SCREEN_COPY, main::@2/(void *)CHARSET ) + [10] memcpy::source#2 = phi( main::@1/(void *)SCREEN, main::@2/(void *)CHARGEN ) + [11] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 + [12] memcpy::src#4 = (char *)memcpy::source#2 + [13] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [14] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -362,27 +362,27 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::toD0181_gfx -byte main::toD0181_return -byte* main::toD0181_screen -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 101.0 -byte* memcpy::dst#2 104.66666666666666 -byte* memcpy::dst#4 22.0 -word memcpy::num -word memcpy::num#2 11.0 -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 202.0 -byte* memcpy::src#2 103.75 -byte* memcpy::src#4 11.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 14.0 +char *main::toD0181_gfx +char main::toD0181_return +char *main::toD0181_screen +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 101.0 +char *memcpy::dst#2 // 104.66666666666666 +char *memcpy::dst#4 // 22.0 +unsigned int memcpy::num +unsigned int memcpy::num#2 // 11.0 +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 202.0 +char *memcpy::src#2 // 103.75 +char *memcpy::src#4 // 11.0 +char *memcpy::src_end +char *memcpy::src_end#0 // 14.0 Initial phi equivalence classes [ memcpy::source#2 ] @@ -408,9 +408,9 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] *D018 = main::toD0181_return#0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *PROCPORT = PROCPORT_RAM_CHARROM [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *PROCPORT = PROCPORT_BASIC_KERNEL_IO [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( memcpy:3 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } memcpy:6 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } ) always clobbers reg byte a -Statement [12] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( memcpy:3 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } memcpy:6 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } ) always clobbers reg byte a -Statement [13] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( memcpy:3 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } memcpy:6 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } ) always clobbers reg byte a +Statement [11] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( memcpy:3 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } memcpy:6 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } ) always clobbers reg byte a +Statement [12] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( memcpy:3 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } memcpy:6 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } ) always clobbers reg byte a +Statement [13] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( memcpy:3 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } memcpy:6 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } ) always clobbers reg byte a Statement [15] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( memcpy:3 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } memcpy:6 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a Statement [17] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( memcpy:3 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } memcpy:6 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ memcpy::source#2 ] : zp[2]:2 , @@ -480,7 +480,7 @@ main: { // [2] *D018 = main::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - // [3] call memcpy + // [3] call memcpy // [10] phi from main::@1 to memcpy [phi:main::@1->memcpy] memcpy_from___b1: // [10] phi memcpy::num#2 = $400 [phi:main::@1->memcpy#0] -- vwuz1=vwuc1 @@ -488,12 +488,12 @@ main: { sta.z memcpy.num lda #>$400 sta.z memcpy.num+1 - // [10] phi memcpy::destination#2 = (void*)SCREEN_COPY [phi:main::@1->memcpy#1] -- pvoz1=pvoc1 + // [10] phi memcpy::destination#2 = (void *)SCREEN_COPY [phi:main::@1->memcpy#1] -- pvoz1=pvoc1 lda #SCREEN_COPY sta.z memcpy.destination+1 - // [10] phi memcpy::source#2 = (void*)SCREEN [phi:main::@1->memcpy#2] -- pvoz1=pvoc1 + // [10] phi memcpy::source#2 = (void *)SCREEN [phi:main::@1->memcpy#2] -- pvoz1=pvoc1 lda #SCREEN @@ -507,7 +507,7 @@ main: { // [5] *PROCPORT = PROCPORT_RAM_CHARROM -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_CHARROM sta PROCPORT - // [6] call memcpy + // [6] call memcpy // [10] phi from main::@2 to memcpy [phi:main::@2->memcpy] memcpy_from___b2: // [10] phi memcpy::num#2 = $800 [phi:main::@2->memcpy#0] -- vwuz1=vwuc1 @@ -515,12 +515,12 @@ main: { sta.z memcpy.num lda #>$800 sta.z memcpy.num+1 - // [10] phi memcpy::destination#2 = (void*)CHARSET [phi:main::@2->memcpy#1] -- pvoz1=pvoc1 + // [10] phi memcpy::destination#2 = (void *)CHARSET [phi:main::@2->memcpy#1] -- pvoz1=pvoc1 lda #CHARSET sta.z memcpy.destination+1 - // [10] phi memcpy::source#2 = (void*)CHARGEN [phi:main::@2->memcpy#2] -- pvoz1=pvoc1 + // [10] phi memcpy::source#2 = (void *)CHARGEN [phi:main::@2->memcpy#2] -- pvoz1=pvoc1 lda #CHARGEN @@ -543,7 +543,7 @@ main: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(4) destination, void* zp(2) source, word zp(6) num) +// void * memcpy(__zp(4) void *destination, __zp(2) void *source, __zp(6) unsigned int num) memcpy: { .label src_end = 6 .label dst = 4 @@ -551,7 +551,7 @@ memcpy: { .label source = 2 .label destination = 4 .label num = 6 - // [11] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [11] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z src_end adc.z source @@ -559,8 +559,8 @@ memcpy: { lda.z src_end+1 adc.z source+1 sta.z src_end+1 - // [12] memcpy::src#4 = (byte*)memcpy::source#2 - // [13] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [12] memcpy::src#4 = (char *)memcpy::source#2 + // [13] memcpy::dst#4 = (char *)memcpy::destination#2 // [14] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -629,37 +629,37 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const CHARGEN = (byte*) 53248 -constant byte* const CHARSET = (byte*) 8192 -constant byte* const D018 = (byte*) 53272 -constant byte* const PROCPORT = (byte*) 1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const SCREEN_COPY = (byte*) 9216 +__constant char * const CHARGEN = (char *) 53248 +__constant char * const CHARSET = (char *) 8192 +__constant char * const D018 = (char *) 53272 +__constant char * const PROCPORT = (char *) 1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char * const SCREEN_COPY = (char *) 9216 void main() -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN_COPY&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:4 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:4 101.0 -byte* memcpy::dst#2 dst zp[2]:4 104.66666666666666 -byte* memcpy::dst#4 dst zp[2]:4 22.0 -word memcpy::num -word memcpy::num#2 num zp[2]:6 11.0 -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:2 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:2 202.0 -byte* memcpy::src#2 src zp[2]:2 103.75 -byte* memcpy::src#4 src zp[2]:2 11.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:6 14.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN_COPY&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:4 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:4 101.0 +char *memcpy::dst#2 // dst zp[2]:4 104.66666666666666 +char *memcpy::dst#4 // dst zp[2]:4 22.0 +unsigned int memcpy::num +unsigned int memcpy::num#2 // num zp[2]:6 11.0 +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:2 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:2 202.0 +char *memcpy::src#2 // src zp[2]:2 103.75 +char *memcpy::src#4 // src zp[2]:2 11.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:6 14.0 zp[2]:2 [ memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 ] zp[2]:4 [ memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] @@ -707,19 +707,19 @@ main: { lda #toD0181_return sta D018 // memcpy(SCREEN_COPY, SCREEN, 0x0400) - // [3] call memcpy + // [3] call memcpy // [10] phi from main::@1 to memcpy [phi:main::@1->memcpy] // [10] phi memcpy::num#2 = $400 [phi:main::@1->memcpy#0] -- vwuz1=vwuc1 lda #<$400 sta.z memcpy.num lda #>$400 sta.z memcpy.num+1 - // [10] phi memcpy::destination#2 = (void*)SCREEN_COPY [phi:main::@1->memcpy#1] -- pvoz1=pvoc1 + // [10] phi memcpy::destination#2 = (void *)SCREEN_COPY [phi:main::@1->memcpy#1] -- pvoz1=pvoc1 lda #SCREEN_COPY sta.z memcpy.destination+1 - // [10] phi memcpy::source#2 = (void*)SCREEN [phi:main::@1->memcpy#2] -- pvoz1=pvoc1 + // [10] phi memcpy::source#2 = (void *)SCREEN [phi:main::@1->memcpy#2] -- pvoz1=pvoc1 lda #SCREEN @@ -734,19 +734,19 @@ main: { lda #PROCPORT_RAM_CHARROM sta PROCPORT // memcpy(CHARSET, CHARGEN, 0x0800) - // [6] call memcpy + // [6] call memcpy // [10] phi from main::@2 to memcpy [phi:main::@2->memcpy] // [10] phi memcpy::num#2 = $800 [phi:main::@2->memcpy#0] -- vwuz1=vwuc1 lda #<$800 sta.z memcpy.num lda #>$800 sta.z memcpy.num+1 - // [10] phi memcpy::destination#2 = (void*)CHARSET [phi:main::@2->memcpy#1] -- pvoz1=pvoc1 + // [10] phi memcpy::destination#2 = (void *)CHARSET [phi:main::@2->memcpy#1] -- pvoz1=pvoc1 lda #CHARSET sta.z memcpy.destination+1 - // [10] phi memcpy::source#2 = (void*)CHARGEN [phi:main::@2->memcpy#2] -- pvoz1=pvoc1 + // [10] phi memcpy::source#2 = (void *)CHARGEN [phi:main::@2->memcpy#2] -- pvoz1=pvoc1 lda #CHARGEN @@ -768,7 +768,7 @@ main: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(4) destination, void* zp(2) source, word zp(6) num) +// void * memcpy(__zp(4) void *destination, __zp(2) void *source, __zp(6) unsigned int num) memcpy: { .label src_end = 6 .label dst = 4 @@ -777,7 +777,7 @@ memcpy: { .label destination = 4 .label num = 6 // char* src_end = (char*)source+num - // [11] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [11] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z src_end adc.z source @@ -785,8 +785,8 @@ memcpy: { lda.z src_end+1 adc.z source+1 sta.z src_end+1 - // [12] memcpy::src#4 = (byte*)memcpy::source#2 - // [13] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [12] memcpy::src#4 = (char *)memcpy::source#2 + // [13] memcpy::dst#4 = (char *)memcpy::destination#2 // [14] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [14] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [14] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy diff --git a/src/test/ref/memcpy-0.sym b/src/test/ref/memcpy-0.sym index 53b25035d..20695b759 100644 --- a/src/test/ref/memcpy-0.sym +++ b/src/test/ref/memcpy-0.sym @@ -1,34 +1,34 @@ -constant byte* const CHARGEN = (byte*) 53248 -constant byte* const CHARSET = (byte*) 8192 -constant byte* const D018 = (byte*) 53272 -constant byte* const PROCPORT = (byte*) 1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const SCREEN_COPY = (byte*) 9216 +__constant char * const CHARGEN = (char *) 53248 +__constant char * const CHARSET = (char *) 8192 +__constant char * const D018 = (char *) 53272 +__constant char * const PROCPORT = (char *) 1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char * const SCREEN_COPY = (char *) 9216 void main() -byte* main::toD0181_gfx -byte main::toD0181_return -constant byte main::toD0181_return#0 toD0181_return = byte1 (word)SCREEN_COPY&$3fff*4|byte1 (word)CHARSET/4&$f -byte* main::toD0181_screen -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:4 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:4 101.0 -byte* memcpy::dst#2 dst zp[2]:4 104.66666666666666 -byte* memcpy::dst#4 dst zp[2]:4 22.0 -word memcpy::num -word memcpy::num#2 num zp[2]:6 11.0 -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:2 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:2 202.0 -byte* memcpy::src#2 src zp[2]:2 103.75 -byte* memcpy::src#4 src zp[2]:2 11.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:6 14.0 +char *main::toD0181_gfx +char main::toD0181_return +__constant char main::toD0181_return#0 = byte1 (unsigned int)SCREEN_COPY&$3fff*4|byte1 (unsigned int)CHARSET/4&$f // toD0181_return +char *main::toD0181_screen +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:4 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:4 101.0 +char *memcpy::dst#2 // dst zp[2]:4 104.66666666666666 +char *memcpy::dst#4 // dst zp[2]:4 22.0 +unsigned int memcpy::num +unsigned int memcpy::num#2 // num zp[2]:6 11.0 +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:2 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:2 202.0 +char *memcpy::src#2 // src zp[2]:2 103.75 +char *memcpy::src#4 // src zp[2]:2 11.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:6 14.0 zp[2]:2 [ memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 ] zp[2]:4 [ memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] diff --git a/src/test/ref/memcpy-1.asm b/src/test/ref/memcpy-1.asm index a207a30b7..0d48f30d9 100644 --- a/src/test/ref/memcpy-1.asm +++ b/src/test/ref/memcpy-1.asm @@ -108,7 +108,7 @@ main: { .segment Code // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($c) destination, void* zp($a) source, word zp($e) num) +// void * memcpy(__zp($c) void *destination, __zp($a) void *source, __zp($e) unsigned int num) memcpy: { .label src_end = $e .label dst = $c diff --git a/src/test/ref/memcpy-1.cfg b/src/test/ref/memcpy-1.cfg index 0a326723e..a7aedf511 100644 --- a/src/test/ref/memcpy-1.cfg +++ b/src/test/ref/memcpy-1.cfg @@ -25,24 +25,24 @@ main::@2: scope:[main] from main::@1 main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [13] phi() - [14] call memcpy + [14] call memcpy to:main::@4 main::@4: scope:[main] from main::@3 [15] phi() - [16] call memcpy + [16] call memcpy to:main::@return main::@return: scope:[main] from main::@4 [17] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main::@3 main::@4 [18] memcpy::num#2 = phi( main::@3/7, main::@4/5 ) - [18] memcpy::destination#2 = phi( main::@3/(void*)SCREEN+$a, main::@4/(void*)SCREEN+$32 ) - [18] memcpy::source#2 = phi( main::@3/(void*)CAMELOT, main::@4/(void*)main::$5 ) - [19] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 - [20] memcpy::src#4 = (byte*)memcpy::source#2 - [21] memcpy::dst#4 = (byte*)memcpy::destination#2 + [18] memcpy::destination#2 = phi( main::@3/(void *)SCREEN+$a, main::@4/(void *)SCREEN+$32 ) + [18] memcpy::source#2 = phi( main::@3/(void *)CAMELOT, main::@4/(void *)main::$5 ) + [19] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 + [20] memcpy::src#4 = (char *)memcpy::source#2 + [21] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [22] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) diff --git a/src/test/ref/memcpy-1.log b/src/test/ref/memcpy-1.log index bc3ecc335..c09331795 100644 --- a/src/test/ref/memcpy-1.log +++ b/src/test/ref/memcpy-1.log @@ -2,14 +2,14 @@ Eliminating unused variable with no statement memcpy::$0 CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main::@4 main::@5 memcpy::num#2 = phi( main::@4/memcpy::num#0, main::@5/memcpy::num#1 ) memcpy::destination#2 = phi( main::@4/memcpy::destination#0, main::@5/memcpy::destination#1 ) memcpy::source#2 = phi( main::@4/memcpy::source#0, main::@5/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -73,17 +73,17 @@ main::@3: scope:[main] from main::@2 main::@3 if(main::$3) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 - memcpy::destination#0 = (void*)SCREEN+$a - memcpy::source#0 = (void*)CAMELOT + memcpy::destination#0 = (void *)SCREEN+$a + memcpy::source#0 = (void *)CAMELOT memcpy::num#0 = 7 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:main::@5 main::@5: scope:[main] from main::@4 - memcpy::destination#1 = (void*)SCREEN+$32 - memcpy::source#1 = (void*)main::$5 + memcpy::destination#1 = (void *)SCREEN+$32 + memcpy::source#1 = (void *)main::$5 memcpy::num#1 = 5 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:main::@6 main::@6: scope:[main] from main::@5 @@ -94,7 +94,7 @@ main::@return: scope:[main] from main::@6 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -103,100 +103,100 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte* CAMELOT[] = "camelot" -constant byte* const SCREEN = (byte*)$400 +__constant const char CAMELOT[] = "camelot" +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$2 -bool~ main::$3 -constant byte* main::$4[7] = "reigns" -constant byte* main::$5[6] = "rules" -byte* main::camelot -byte* main::camelot#0 -byte* main::camelot#1 -byte* main::camelot#2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte* main::reigns -byte* main::reigns#0 -byte* main::reigns#1 -byte* main::reigns#2 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc2 -byte* main::sc2#0 -byte* main::sc2#1 -byte* main::sc2#2 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 +bool main::$2 +bool main::$3 +__constant char main::$4[7] = "reigns" +__constant char main::$5[6] = "rules" +char *main::camelot +char *main::camelot#0 +char *main::camelot#1 +char *main::camelot#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char *main::reigns +char *main::reigns#0 +char *main::reigns#1 +char *main::reigns#2 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc2 +char *main::sc2#0 +char *main::sc2#1 +char *main::sc2#2 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 Adding number conversion cast (unumber) $28 in main::sc2#0 = SCREEN+$28 -Adding number conversion cast (unumber) $a in memcpy::destination#0 = (void*)SCREEN+$a +Adding number conversion cast (unumber) $a in memcpy::destination#0 = (void *)SCREEN+$a Adding number conversion cast (unumber) 7 in memcpy::num#0 = 7 -Adding number conversion cast (unumber) $32 in memcpy::destination#1 = (void*)SCREEN+$32 +Adding number conversion cast (unumber) $32 in memcpy::destination#1 = (void *)SCREEN+$32 Adding number conversion cast (unumber) 5 in memcpy::num#1 = 5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 Inlining cast memcpy::num#0 = (unumber)7 Inlining cast memcpy::num#1 = (unumber)5 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $a Simplifying constant integer cast 7 Simplifying constant integer cast $32 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias memcpy::src#2 = memcpy::src#3 Alias memcpy::dst#2 = memcpy::dst#3 @@ -216,11 +216,11 @@ Constant main::i#0 = 0 Constant main::sc2#0 = SCREEN+$28 Constant main::reigns#0 = main::$4 Constant main::i1#0 = 0 -Constant memcpy::destination#0 = (void*)SCREEN+$a -Constant memcpy::source#0 = (void*)CAMELOT +Constant memcpy::destination#0 = (void *)SCREEN+$a +Constant memcpy::source#0 = (void *)CAMELOT Constant memcpy::num#0 = 7 -Constant memcpy::destination#1 = (void*)SCREEN+$32 -Constant memcpy::source#1 = (void*)main::$5 +Constant memcpy::destination#1 = (void *)SCREEN+$32 +Constant memcpy::source#1 = (void *)main::$5 Constant memcpy::num#1 = 5 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [19] main::i#1 = ++ main::i#2 to ++ @@ -241,12 +241,12 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 7 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings memcpy::destination#0 Inlining constant with var siblings memcpy::source#0 @@ -262,12 +262,12 @@ Inlining constant with var siblings main::reigns#0 Inlining constant with var siblings main::i1#0 Constant inlined main::camelot#0 = CAMELOT Constant inlined main::sc#0 = SCREEN -Constant inlined memcpy::destination#0 = (void*)SCREEN+$a -Constant inlined memcpy::destination#1 = (void*)SCREEN+$32 -Constant inlined memcpy::source#0 = (void*)CAMELOT +Constant inlined memcpy::destination#0 = (void *)SCREEN+$a +Constant inlined memcpy::destination#1 = (void *)SCREEN+$32 +Constant inlined memcpy::source#0 = (void *)CAMELOT Constant inlined memcpy::num#1 = 5 Constant inlined memcpy::num#0 = 7 -Constant inlined memcpy::source#1 = (void*)main::$5 +Constant inlined memcpy::source#1 = (void *)main::$5 Constant inlined main::i#0 = 0 Constant inlined main::i1#0 = 0 Constant inlined main::$4 = main::reigns#0 @@ -336,24 +336,24 @@ main::@2: scope:[main] from main::@1 main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [13] phi() - [14] call memcpy + [14] call memcpy to:main::@4 main::@4: scope:[main] from main::@3 [15] phi() - [16] call memcpy + [16] call memcpy to:main::@return main::@return: scope:[main] from main::@4 [17] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main::@3 main::@4 [18] memcpy::num#2 = phi( main::@3/7, main::@4/5 ) - [18] memcpy::destination#2 = phi( main::@3/(void*)SCREEN+$a, main::@4/(void*)SCREEN+$32 ) - [18] memcpy::source#2 = phi( main::@3/(void*)CAMELOT, main::@4/(void*)main::$5 ) - [19] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 - [20] memcpy::src#4 = (byte*)memcpy::source#2 - [21] memcpy::dst#4 = (byte*)memcpy::destination#2 + [18] memcpy::destination#2 = phi( main::@3/(void *)SCREEN+$a, main::@4/(void *)SCREEN+$32 ) + [18] memcpy::source#2 = phi( main::@3/(void *)CAMELOT, main::@4/(void *)main::$5 ) + [19] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 + [20] memcpy::src#4 = (char *)memcpy::source#2 + [21] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [22] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -372,42 +372,42 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::camelot -byte* main::camelot#1 7.333333333333333 -byte* main::camelot#2 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 5.5 -byte* main::reigns -byte* main::reigns#1 7.333333333333333 -byte* main::reigns#2 11.0 -byte* main::sc -byte* main::sc#1 5.5 -byte* main::sc#2 16.5 -byte* main::sc2 -byte* main::sc2#1 5.5 -byte* main::sc2#2 16.5 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 101.0 -byte* memcpy::dst#2 104.66666666666666 -byte* memcpy::dst#4 22.0 -word memcpy::num -word memcpy::num#2 11.0 -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 202.0 -byte* memcpy::src#2 103.75 -byte* memcpy::src#4 11.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 14.0 +char *main::camelot +char *main::camelot#1 // 7.333333333333333 +char *main::camelot#2 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 5.5 +char *main::reigns +char *main::reigns#1 // 7.333333333333333 +char *main::reigns#2 // 11.0 +char *main::sc +char *main::sc#1 // 5.5 +char *main::sc#2 // 16.5 +char *main::sc2 +char *main::sc2#1 // 5.5 +char *main::sc2#2 // 16.5 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 101.0 +char *memcpy::dst#2 // 104.66666666666666 +char *memcpy::dst#4 // 22.0 +unsigned int memcpy::num +unsigned int memcpy::num#2 // 11.0 +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 202.0 +char *memcpy::src#2 // 103.75 +char *memcpy::src#4 // 11.0 +char *memcpy::src_end +char *memcpy::src_end#0 // 14.0 Initial phi equivalence classes [ main::camelot#2 main::camelot#1 ] @@ -454,16 +454,16 @@ Removing always clobbered register reg byte y as potential for zp[1]:6 [ main::i Statement [8] *main::sc2#2 = *main::reigns#2 [ main::reigns#2 main::sc2#2 main::i1#2 ] ( [ main::reigns#2 main::sc2#2 main::i1#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:11 [ main::i1#2 main::i1#1 ] Removing always clobbered register reg byte y as potential for zp[1]:11 [ main::i1#2 main::i1#1 ] -Statement [19] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( memcpy:14 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } memcpy:16 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } ) always clobbers reg byte a -Statement [20] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( memcpy:14 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } memcpy:16 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } ) always clobbers reg byte a -Statement [21] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } ) always clobbers reg byte a +Statement [19] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( memcpy:14 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } memcpy:16 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } ) always clobbers reg byte a +Statement [20] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( memcpy:14 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } memcpy:16 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } ) always clobbers reg byte a +Statement [21] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } ) always clobbers reg byte a Statement [23] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a Statement [25] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [2] *main::sc#2 = *main::camelot#2 [ main::camelot#2 main::sc#2 main::i#2 ] ( [ main::camelot#2 main::sc#2 main::i#2 ] { } ) always clobbers reg byte a reg byte y Statement [8] *main::sc2#2 = *main::reigns#2 [ main::reigns#2 main::sc2#2 main::i1#2 ] ( [ main::reigns#2 main::sc2#2 main::i1#2 ] { } ) always clobbers reg byte a reg byte y -Statement [19] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( memcpy:14 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } memcpy:16 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } ) always clobbers reg byte a -Statement [20] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( memcpy:14 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } memcpy:16 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } ) always clobbers reg byte a -Statement [21] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } ) always clobbers reg byte a +Statement [19] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( memcpy:14 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } memcpy:16 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } ) always clobbers reg byte a +Statement [20] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( memcpy:14 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } memcpy:16 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } ) always clobbers reg byte a +Statement [21] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } ) always clobbers reg byte a Statement [23] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a Statement [25] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( memcpy:14 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } memcpy:16 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ main::camelot#2 main::camelot#1 ] : zp[2]:2 , @@ -609,7 +609,7 @@ main: { jmp __b3 // main::@3 __b3: - // [14] call memcpy + // [14] call memcpy // [18] phi from main::@3 to memcpy [phi:main::@3->memcpy] memcpy_from___b3: // [18] phi memcpy::num#2 = 7 [phi:main::@3->memcpy#0] -- vwuz1=vbuc1 @@ -617,12 +617,12 @@ main: { sta.z memcpy.num lda #>7 sta.z memcpy.num+1 - // [18] phi memcpy::destination#2 = (void*)SCREEN+$a [phi:main::@3->memcpy#1] -- pvoz1=pvoc1 + // [18] phi memcpy::destination#2 = (void *)SCREEN+$a [phi:main::@3->memcpy#1] -- pvoz1=pvoc1 lda #SCREEN+$a sta.z memcpy.destination+1 - // [18] phi memcpy::source#2 = (void*)CAMELOT [phi:main::@3->memcpy#2] -- pvoz1=pvoc1 + // [18] phi memcpy::source#2 = (void *)CAMELOT [phi:main::@3->memcpy#2] -- pvoz1=pvoc1 lda #CAMELOT @@ -633,7 +633,7 @@ main: { jmp __b4 // main::@4 __b4: - // [16] call memcpy + // [16] call memcpy // [18] phi from main::@4 to memcpy [phi:main::@4->memcpy] memcpy_from___b4: // [18] phi memcpy::num#2 = 5 [phi:main::@4->memcpy#0] -- vwuz1=vbuc1 @@ -641,12 +641,12 @@ main: { sta.z memcpy.num lda #>5 sta.z memcpy.num+1 - // [18] phi memcpy::destination#2 = (void*)SCREEN+$32 [phi:main::@4->memcpy#1] -- pvoz1=pvoc1 + // [18] phi memcpy::destination#2 = (void *)SCREEN+$32 [phi:main::@4->memcpy#1] -- pvoz1=pvoc1 lda #SCREEN+$32 sta.z memcpy.destination+1 - // [18] phi memcpy::source#2 = (void*)main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1 + // [18] phi memcpy::source#2 = (void *)main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1 lda #<__5 sta.z memcpy.source lda #>__5 @@ -667,7 +667,7 @@ main: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($c) destination, void* zp($a) source, word zp($e) num) +// void * memcpy(__zp($c) void *destination, __zp($a) void *source, __zp($e) unsigned int num) memcpy: { .label src_end = $e .label dst = $c @@ -675,7 +675,7 @@ memcpy: { .label source = $a .label destination = $c .label num = $e - // [19] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [19] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z src_end adc.z source @@ -683,8 +683,8 @@ memcpy: { lda.z src_end+1 adc.z source+1 sta.z src_end+1 - // [20] memcpy::src#4 = (byte*)memcpy::source#2 - // [21] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [20] memcpy::src#4 = (char *)memcpy::source#2 + // [21] memcpy::dst#4 = (char *)memcpy::destination#2 // [22] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -766,47 +766,47 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte* CAMELOT[] = "camelot" -constant byte* const SCREEN = (byte*) 1024 +__constant const char CAMELOT[] = "camelot" +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* main::$5[6] = "rules" -byte* main::camelot -byte* main::camelot#1 camelot zp[2]:2 7.333333333333333 -byte* main::camelot#2 camelot zp[2]:2 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte main::i1 -byte main::i1#1 reg byte x 16.5 -byte main::i1#2 reg byte x 5.5 -byte* main::reigns -constant byte* main::reigns#0 reigns_1 = "reigns" -byte* main::reigns#1 reigns zp[2]:6 7.333333333333333 -byte* main::reigns#2 reigns zp[2]:6 11.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:4 5.5 -byte* main::sc#2 sc zp[2]:4 16.5 -byte* main::sc2 -byte* main::sc2#1 sc2 zp[2]:8 5.5 -byte* main::sc2#2 sc2 zp[2]:8 16.5 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:12 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:12 101.0 -byte* memcpy::dst#2 dst zp[2]:12 104.66666666666666 -byte* memcpy::dst#4 dst zp[2]:12 22.0 -word memcpy::num -word memcpy::num#2 num zp[2]:14 11.0 -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:10 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:10 202.0 -byte* memcpy::src#2 src zp[2]:10 103.75 -byte* memcpy::src#4 src zp[2]:10 11.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:14 14.0 +__constant char main::$5[6] = "rules" +char *main::camelot +char *main::camelot#1 // camelot zp[2]:2 7.333333333333333 +char *main::camelot#2 // camelot zp[2]:2 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char main::i1 +char main::i1#1 // reg byte x 16.5 +char main::i1#2 // reg byte x 5.5 +char *main::reigns +__constant char *main::reigns#0 = "reigns" // reigns_1 +char *main::reigns#1 // reigns zp[2]:6 7.333333333333333 +char *main::reigns#2 // reigns zp[2]:6 11.0 +char *main::sc +char *main::sc#1 // sc zp[2]:4 5.5 +char *main::sc#2 // sc zp[2]:4 16.5 +char *main::sc2 +char *main::sc2#1 // sc2 zp[2]:8 5.5 +char *main::sc2#2 // sc2 zp[2]:8 16.5 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:12 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:12 101.0 +char *memcpy::dst#2 // dst zp[2]:12 104.66666666666666 +char *memcpy::dst#4 // dst zp[2]:12 22.0 +unsigned int memcpy::num +unsigned int memcpy::num#2 // num zp[2]:14 11.0 +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:10 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:10 202.0 +char *memcpy::src#2 // src zp[2]:10 103.75 +char *memcpy::src#4 // src zp[2]:10 11.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:14 14.0 zp[2]:2 [ main::camelot#2 main::camelot#1 ] zp[2]:4 [ main::sc#2 main::sc#1 ] @@ -928,19 +928,19 @@ main: { // [13] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // memcpy(SCREEN+10, CAMELOT, 7) - // [14] call memcpy + // [14] call memcpy // [18] phi from main::@3 to memcpy [phi:main::@3->memcpy] // [18] phi memcpy::num#2 = 7 [phi:main::@3->memcpy#0] -- vwuz1=vbuc1 lda #<7 sta.z memcpy.num lda #>7 sta.z memcpy.num+1 - // [18] phi memcpy::destination#2 = (void*)SCREEN+$a [phi:main::@3->memcpy#1] -- pvoz1=pvoc1 + // [18] phi memcpy::destination#2 = (void *)SCREEN+$a [phi:main::@3->memcpy#1] -- pvoz1=pvoc1 lda #SCREEN+$a sta.z memcpy.destination+1 - // [18] phi memcpy::source#2 = (void*)CAMELOT [phi:main::@3->memcpy#2] -- pvoz1=pvoc1 + // [18] phi memcpy::source#2 = (void *)CAMELOT [phi:main::@3->memcpy#2] -- pvoz1=pvoc1 lda #CAMELOT @@ -949,19 +949,19 @@ main: { // [15] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // memcpy(SCREEN+50, "rules", 5) - // [16] call memcpy + // [16] call memcpy // [18] phi from main::@4 to memcpy [phi:main::@4->memcpy] // [18] phi memcpy::num#2 = 5 [phi:main::@4->memcpy#0] -- vwuz1=vbuc1 lda #<5 sta.z memcpy.num lda #>5 sta.z memcpy.num+1 - // [18] phi memcpy::destination#2 = (void*)SCREEN+$32 [phi:main::@4->memcpy#1] -- pvoz1=pvoc1 + // [18] phi memcpy::destination#2 = (void *)SCREEN+$32 [phi:main::@4->memcpy#1] -- pvoz1=pvoc1 lda #SCREEN+$32 sta.z memcpy.destination+1 - // [18] phi memcpy::source#2 = (void*)main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1 + // [18] phi memcpy::source#2 = (void *)main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1 lda #<__5 sta.z memcpy.source lda #>__5 @@ -981,7 +981,7 @@ main: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($c) destination, void* zp($a) source, word zp($e) num) +// void * memcpy(__zp($c) void *destination, __zp($a) void *source, __zp($e) unsigned int num) memcpy: { .label src_end = $e .label dst = $c @@ -990,7 +990,7 @@ memcpy: { .label destination = $c .label num = $e // char* src_end = (char*)source+num - // [19] memcpy::src_end#0 = (byte*)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 + // [19] memcpy::src_end#0 = (char *)memcpy::source#2 + memcpy::num#2 -- pbuz1=pbuz2_plus_vwuz1 clc lda.z src_end adc.z source @@ -998,8 +998,8 @@ memcpy: { lda.z src_end+1 adc.z source+1 sta.z src_end+1 - // [20] memcpy::src#4 = (byte*)memcpy::source#2 - // [21] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [20] memcpy::src#4 = (char *)memcpy::source#2 + // [21] memcpy::dst#4 = (char *)memcpy::destination#2 // [22] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [22] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [22] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy diff --git a/src/test/ref/memcpy-1.sym b/src/test/ref/memcpy-1.sym index 9566f2847..68505ae5a 100644 --- a/src/test/ref/memcpy-1.sym +++ b/src/test/ref/memcpy-1.sym @@ -1,44 +1,44 @@ -constant const byte* CAMELOT[] = "camelot" -constant byte* const SCREEN = (byte*) 1024 +__constant const char CAMELOT[] = "camelot" +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* main::$5[6] = "rules" -byte* main::camelot -byte* main::camelot#1 camelot zp[2]:2 7.333333333333333 -byte* main::camelot#2 camelot zp[2]:2 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte main::i1 -byte main::i1#1 reg byte x 16.5 -byte main::i1#2 reg byte x 5.5 -byte* main::reigns -constant byte* main::reigns#0 reigns_1 = "reigns" -byte* main::reigns#1 reigns zp[2]:6 7.333333333333333 -byte* main::reigns#2 reigns zp[2]:6 11.0 -byte* main::sc -byte* main::sc#1 sc zp[2]:4 5.5 -byte* main::sc#2 sc zp[2]:4 16.5 -byte* main::sc2 -byte* main::sc2#1 sc2 zp[2]:8 5.5 -byte* main::sc2#2 sc2 zp[2]:8 16.5 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:12 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:12 101.0 -byte* memcpy::dst#2 dst zp[2]:12 104.66666666666666 -byte* memcpy::dst#4 dst zp[2]:12 22.0 -word memcpy::num -word memcpy::num#2 num zp[2]:14 11.0 -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:10 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:10 202.0 -byte* memcpy::src#2 src zp[2]:10 103.75 -byte* memcpy::src#4 src zp[2]:10 11.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:14 14.0 +__constant char main::$5[6] = "rules" +char *main::camelot +char *main::camelot#1 // camelot zp[2]:2 7.333333333333333 +char *main::camelot#2 // camelot zp[2]:2 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char main::i1 +char main::i1#1 // reg byte x 16.5 +char main::i1#2 // reg byte x 5.5 +char *main::reigns +__constant char *main::reigns#0 = "reigns" // reigns_1 +char *main::reigns#1 // reigns zp[2]:6 7.333333333333333 +char *main::reigns#2 // reigns zp[2]:6 11.0 +char *main::sc +char *main::sc#1 // sc zp[2]:4 5.5 +char *main::sc#2 // sc zp[2]:4 16.5 +char *main::sc2 +char *main::sc2#1 // sc2 zp[2]:8 5.5 +char *main::sc2#2 // sc2 zp[2]:8 16.5 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:12 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:12 101.0 +char *memcpy::dst#2 // dst zp[2]:12 104.66666666666666 +char *memcpy::dst#4 // dst zp[2]:12 22.0 +unsigned int memcpy::num +unsigned int memcpy::num#2 // num zp[2]:14 11.0 +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:10 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:10 202.0 +char *memcpy::src#2 // src zp[2]:10 103.75 +char *memcpy::src#4 // src zp[2]:10 11.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:14 14.0 zp[2]:2 [ main::camelot#2 main::camelot#1 ] zp[2]:4 [ main::sc#2 main::sc#1 ] diff --git a/src/test/ref/memory-heap.asm b/src/test/ref/memory-heap.asm index 750e0590f..a82bd47d0 100644 --- a/src/test/ref/memory-heap.asm +++ b/src/test/ref/memory-heap.asm @@ -58,6 +58,7 @@ main: { } // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .label mem = 6 // unsigned char* mem = heap_head-size diff --git a/src/test/ref/memory-heap.cfg b/src/test/ref/memory-heap.cfg index 3e4b9b7bd..c2a8ef7bf 100644 --- a/src/test/ref/memory-heap.cfg +++ b/src/test/ref/memory-heap.cfg @@ -2,14 +2,14 @@ void main() main: scope:[main] from [0] phi() - [1] call malloc + [1] call malloc to:main::@2 main::@2: scope:[main] from main - [2] main::buf1#0 = (byte*)(void*)malloc::mem#0 - [3] call malloc + [2] main::buf1#0 = (char *)(void *)malloc::mem#0 + [3] call malloc to:main::@3 main::@3: scope:[main] from main::@2 - [4] main::buf2#0 = (byte*)(void*)malloc::mem#0 + [4] main::buf2#0 = (char *)(void *)malloc::mem#0 to:main::@1 main::@1: scope:[main] from main::@1 main::@3 [5] main::i#2 = phi( main::@1/main::i#1, main::@3/0 ) @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@4 [13] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from main main::@2 [14] heap_head#8 = phi( main/HEAP_TOP, main::@2/heap_head#0 ) [15] malloc::mem#0 = heap_head#8 - $64 diff --git a/src/test/ref/memory-heap.log b/src/test/ref/memory-heap.log index f934b8b44..8fe1ad2b2 100644 --- a/src/test/ref/memory-heap.log +++ b/src/test/ref/memory-heap.log @@ -1,17 +1,17 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement malloc::$0 Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 CONTROL FLOW GRAPH SSA -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from main main::@3 malloc::size#2 = phi( main/malloc::size#0, main::@3/malloc::size#1 ) heap_head#8 = phi( main/heap_head#15, main::@3/heap_head#2 ) malloc::mem#0 = heap_head#8 - malloc::size#2 heap_head#0 = malloc::mem#0 - malloc::return#0 = ((void*)) malloc::mem#0 + malloc::return#0 = ((void *)) malloc::mem#0 to:malloc::@return malloc::@return: scope:[malloc] from malloc heap_head#9 = phi( malloc/heap_head#0 ) @@ -21,7 +21,7 @@ malloc::@return: scope:[malloc] from malloc return to:@return -void free(void* free::ptr) +void free(void *ptr) free: scope:[free] from main::@2 main::@5 to:free::@return free::@return: scope:[free] from free @@ -32,23 +32,23 @@ void main() main: scope:[main] from __start::@1 heap_head#15 = phi( __start::@1/heap_head#17 ) malloc::size#0 = $64 - call malloc + call malloc malloc::return#2 = malloc::return#1 to:main::@3 main::@3: scope:[main] from main heap_head#10 = phi( main/heap_head#1 ) malloc::return#5 = phi( main/malloc::return#2 ) - main::buf1#0 = ((byte*)) malloc::return#5 + main::buf1#0 = ((char *)) malloc::return#5 heap_head#2 = heap_head#10 malloc::size#1 = $64 - call malloc + call malloc malloc::return#3 = malloc::return#1 to:main::@4 main::@4: scope:[main] from main::@3 main::buf1#4 = phi( main::@3/main::buf1#0 ) heap_head#11 = phi( main::@3/heap_head#1 ) malloc::return#6 = phi( main::@3/malloc::return#3 ) - main::buf2#0 = ((byte*)) malloc::return#6 + main::buf2#0 = ((char *)) malloc::return#6 heap_head#3 = heap_head#11 main::i#0 = 0 to:main::@1 @@ -68,15 +68,15 @@ main::@2: scope:[main] from main::@1 heap_head#19 = phi( main::@1/heap_head#20 ) main::buf2#4 = phi( main::@1/main::buf2#1 ) main::buf1#2 = phi( main::@1/main::buf1#1 ) - free::ptr#0 = (void*)main::buf1#2 - call free + free::ptr#0 = (void *)main::buf1#2 + call free to:main::@5 main::@5: scope:[main] from main::@2 heap_head#18 = phi( main::@2/heap_head#19 ) main::buf1#5 = phi( main::@2/main::buf1#2 ) main::buf2#2 = phi( main::@2/main::buf2#4 ) - free::ptr#1 = (void*)main::buf2#2 - call free + free::ptr#1 = (void *)main::buf2#2 + call free to:main::@6 main::@6: scope:[main] from main::@5 heap_head#16 = phi( main::@5/heap_head#18 ) @@ -99,7 +99,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 heap_head#17 = phi( __start::__init1/heap_head#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 heap_head#13 = phi( __start::@1/heap_head#4 ) @@ -112,74 +112,74 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* HEAP_TOP = (byte*)$a000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char *HEAP_TOP = (char *)$a000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -void free(void* free::ptr) -void* free::ptr -void* free::ptr#0 -void* free::ptr#1 -byte* heap_head -byte* heap_head#0 -byte* heap_head#1 -byte* heap_head#10 -byte* heap_head#11 -byte* heap_head#12 -byte* heap_head#13 -byte* heap_head#14 -byte* heap_head#15 -byte* heap_head#16 -byte* heap_head#17 -byte* heap_head#18 -byte* heap_head#19 -byte* heap_head#2 -byte* heap_head#20 -byte* heap_head#3 -byte* heap_head#4 -byte* heap_head#5 -byte* heap_head#6 -byte* heap_head#7 -byte* heap_head#8 -byte* heap_head#9 +void free(void *ptr) +void *free::ptr +void *free::ptr#0 +void *free::ptr#1 +char *heap_head +char *heap_head#0 +char *heap_head#1 +char *heap_head#10 +char *heap_head#11 +char *heap_head#12 +char *heap_head#13 +char *heap_head#14 +char *heap_head#15 +char *heap_head#16 +char *heap_head#17 +char *heap_head#18 +char *heap_head#19 +char *heap_head#2 +char *heap_head#20 +char *heap_head#3 +char *heap_head#4 +char *heap_head#5 +char *heap_head#6 +char *heap_head#7 +char *heap_head#8 +char *heap_head#9 void main() -number~ main::$4 -bool~ main::$5 -byte* main::buf1 -byte* main::buf1#0 -byte* main::buf1#1 -byte* main::buf1#2 -byte* main::buf1#3 -byte* main::buf1#4 -byte* main::buf1#5 -byte* main::buf2 -byte* main::buf2#0 -byte* main::buf2#1 -byte* main::buf2#2 -byte* main::buf2#3 -byte* main::buf2#4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* main::screen = (byte*)$400 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 -void* malloc::return -void* malloc::return#0 -void* malloc::return#1 -void* malloc::return#2 -void* malloc::return#3 -void* malloc::return#4 -void* malloc::return#5 -void* malloc::return#6 -word malloc::size -word malloc::size#0 -word malloc::size#1 -word malloc::size#2 +number main::$4 +bool main::$5 +char *main::buf1 +char *main::buf1#0 +char *main::buf1#1 +char *main::buf1#2 +char *main::buf1#3 +char *main::buf1#4 +char *main::buf1#5 +char *main::buf2 +char *main::buf2#0 +char *main::buf2#1 +char *main::buf2#2 +char *main::buf2#3 +char *main::buf2#4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char *main::screen = (char *)$400 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 +void *malloc::return +void *malloc::return#0 +void *malloc::return#1 +void *malloc::return#2 +void *malloc::return#3 +void *malloc::return#4 +void *malloc::return#5 +void *malloc::return#6 +unsigned int malloc::size +unsigned int malloc::size#0 +unsigned int malloc::size#1 +unsigned int malloc::size#2 Adding number conversion cast (unumber) $64 in malloc::size#0 = $64 Adding number conversion cast (unumber) $64 in malloc::size#1 = $64 @@ -188,27 +188,27 @@ Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)$ff - ma Adding number conversion cast (unumber) 0 in main::screen[0] = *main::buf1#3 Adding number conversion cast (unumber) 1 in main::screen[1] = *main::buf2#3 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast malloc::return#0 = (void*)malloc::mem#0 +Inlining cast malloc::return#0 = (void *)malloc::mem#0 Inlining cast malloc::size#0 = (unumber)$64 -Inlining cast main::buf1#0 = (byte*)malloc::return#5 +Inlining cast main::buf1#0 = (char *)malloc::return#5 Inlining cast malloc::size#1 = (unumber)$64 -Inlining cast main::buf2#0 = (byte*)malloc::return#6 +Inlining cast main::buf2#0 = (char *)malloc::return#6 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 40960 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 40960 Simplifying constant integer cast $64 Simplifying constant integer cast $64 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = $ff - main::i#2 +Inferred type updated to char in main::$4 = $ff - main::i#2 Alias malloc::return#0 = malloc::return#4 malloc::return#1 Alias heap_head#0 = heap_head#9 heap_head#1 Alias malloc::return#2 = malloc::return#5 @@ -241,11 +241,11 @@ Resolved ranged next value [22] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [24] if(main::i#1!=rangelast(0,$63)) goto main::@1 to $64 Simplifying expression containing zero main::screen in [29] main::screen[0] = *main::buf1#0 Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable free::ptr#0 and assignment [18] free::ptr#0 = (void*)main::buf1#0 -Eliminating unused variable free::ptr#1 and assignment [20] free::ptr#1 = (void*)main::buf2#0 +Eliminating unused variable free::ptr#0 and assignment [18] free::ptr#0 = (void *)main::buf1#0 +Eliminating unused variable free::ptr#1 and assignment [20] free::ptr#1 = (void *)main::buf2#0 Successful SSA optimization PassNEliminateUnusedVars -Removing call to empty/unused procedure [18] call free -Removing call to empty/unused procedure [19] call free +Removing call to empty/unused procedure [18] call free +Removing call to empty/unused procedure [19] call free Removing unused procedure free Removing unused procedure block free Removing unused procedure block free::@return @@ -261,12 +261,12 @@ Adding number conversion cast (unumber) $64 in [16] if(main::i#1!=$64) goto main Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $64 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [3] malloc::return#0 = (void*)malloc::mem#0 keeping malloc::mem#0 +Inlining Noop Cast [3] malloc::return#0 = (void *)malloc::mem#0 keeping malloc::mem#0 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [6] malloc::return#2 = (void*)malloc::mem#0 keeping malloc::mem#0 -Inlining Noop Cast [9] malloc::return#3 = (void*)malloc::mem#0 keeping malloc::mem#0 +Inlining Noop Cast [6] malloc::return#2 = (void *)malloc::mem#0 keeping malloc::mem#0 +Inlining Noop Cast [9] malloc::return#3 = (void *)malloc::mem#0 keeping malloc::mem#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings malloc::size#0 Inlining constant with var siblings malloc::size#1 @@ -281,10 +281,10 @@ Consolidated array index constant in *(main::screen+1) Successful SSA optimization Pass2ConstantAdditionElimination Identical Phi Values malloc::size#2 $64 Successful SSA optimization Pass2IdenticalPhiElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@7(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -311,14 +311,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call malloc + [1] call malloc to:main::@2 main::@2: scope:[main] from main - [2] main::buf1#0 = (byte*)(void*)malloc::mem#0 - [3] call malloc + [2] main::buf1#0 = (char *)(void *)malloc::mem#0 + [3] call malloc to:main::@3 main::@3: scope:[main] from main::@2 - [4] main::buf2#0 = (byte*)(void*)malloc::mem#0 + [4] main::buf2#0 = (char *)(void *)malloc::mem#0 to:main::@1 main::@1: scope:[main] from main::@1 main::@3 [5] main::i#2 = phi( main::@1/main::i#1, main::@3/0 ) @@ -336,7 +336,7 @@ main::@return: scope:[main] from main::@4 [13] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from main main::@2 [14] heap_head#8 = phi( main/HEAP_TOP, main::@2/heap_head#0 ) [15] malloc::mem#0 = heap_head#8 - $64 @@ -348,23 +348,23 @@ malloc::@return: scope:[malloc] from malloc VARIABLE REGISTER WEIGHTS -byte* heap_head -byte* heap_head#0 3.25 -byte* heap_head#8 13.0 +char *heap_head +char *heap_head#0 // 3.25 +char *heap_head#8 // 13.0 void main() -byte~ main::$4 22.0 -byte* main::buf1 -byte* main::buf1#0 1.666666666666667 -byte* main::buf2 -byte* main::buf2#0 1.875 -byte main::i -byte main::i#1 16.5 -byte main::i#2 16.5 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 4.4 -void* malloc::return -word malloc::size +char main::$4 // 22.0 +char *main::buf1 +char *main::buf1#0 // 1.666666666666667 +char *main::buf2 +char *main::buf2#0 // 1.875 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 16.5 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 // 4.4 +void *malloc::return +unsigned int malloc::size Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -387,16 +387,16 @@ Allocated zp[2]:7 [ main::buf2#0 ] Allocated zp[1]:9 [ main::$4 ] Allocated zp[2]:10 [ malloc::mem#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::buf1#0 = (byte*)(void*)malloc::mem#0 [ main::buf1#0 heap_head#0 ] ( [ main::buf1#0 heap_head#0 ] { { heap_head#0 = heap_head#8 } } ) always clobbers reg byte a -Statement [4] main::buf2#0 = (byte*)(void*)malloc::mem#0 [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a +Statement [2] main::buf1#0 = (char *)(void *)malloc::mem#0 [ main::buf1#0 heap_head#0 ] ( [ main::buf1#0 heap_head#0 ] { { heap_head#0 = heap_head#8 } } ) always clobbers reg byte a +Statement [4] main::buf2#0 = (char *)(void *)malloc::mem#0 [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a Statement [7] main::$4 = $ff - main::i#2 [ main::buf1#0 main::buf2#0 main::i#2 main::$4 ] ( [ main::buf1#0 main::buf2#0 main::i#2 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [11] *main::screen = *main::buf1#0 [ main::buf2#0 ] ( [ main::buf2#0 ] { } ) always clobbers reg byte a reg byte y Statement [12] *(main::screen+1) = *main::buf2#0 [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Statement [15] malloc::mem#0 = heap_head#8 - $64 [ malloc::mem#0 ] ( malloc:1 [ malloc::mem#0 ] { } malloc:3 [ main::buf1#0 malloc::mem#0 ] { { heap_head#0 = heap_head#8 } } ) always clobbers reg byte a Statement [16] heap_head#0 = malloc::mem#0 [ malloc::mem#0 heap_head#0 ] ( malloc:1 [ malloc::mem#0 heap_head#0 ] { } malloc:3 [ main::buf1#0 malloc::mem#0 heap_head#0 ] { { heap_head#0 = heap_head#8 } } ) always clobbers reg byte a -Statement [2] main::buf1#0 = (byte*)(void*)malloc::mem#0 [ main::buf1#0 heap_head#0 ] ( [ main::buf1#0 heap_head#0 ] { { heap_head#0 = heap_head#8 } } ) always clobbers reg byte a -Statement [4] main::buf2#0 = (byte*)(void*)malloc::mem#0 [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a +Statement [2] main::buf1#0 = (char *)(void *)malloc::mem#0 [ main::buf1#0 heap_head#0 ] ( [ main::buf1#0 heap_head#0 ] { { heap_head#0 = heap_head#8 } } ) always clobbers reg byte a +Statement [4] main::buf2#0 = (char *)(void *)malloc::mem#0 [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a Statement [6] main::buf1#0[main::i#2] = main::i#2 [ main::buf1#0 main::buf2#0 main::i#2 ] ( [ main::buf1#0 main::buf2#0 main::i#2 ] { } ) always clobbers reg byte a Statement [7] main::$4 = $ff - main::i#2 [ main::buf1#0 main::buf2#0 main::i#2 main::$4 ] ( [ main::buf1#0 main::buf2#0 main::i#2 main::$4 ] { } ) always clobbers reg byte a Statement [11] *main::screen = *main::buf1#0 [ main::buf2#0 ] ( [ main::buf2#0 ] { } ) always clobbers reg byte a reg byte y @@ -448,7 +448,7 @@ main: { .label screen = $400 .label buf1 = 4 .label buf2 = 6 - // [1] call malloc + // [1] call malloc // [14] phi from main to malloc [phi:main->malloc] malloc_from_main: // [14] phi heap_head#8 = HEAP_TOP [phi:main->malloc#0] -- pbuz1=pbuc1 @@ -460,12 +460,12 @@ main: { jmp __b2 // main::@2 __b2: - // [2] main::buf1#0 = (byte*)(void*)malloc::mem#0 -- pbuz1=pbuz2 + // [2] main::buf1#0 = (char *)(void *)malloc::mem#0 -- pbuz1=pbuz2 lda.z malloc.mem sta.z buf1 lda.z malloc.mem+1 sta.z buf1+1 - // [3] call malloc + // [3] call malloc // [14] phi from main::@2 to malloc [phi:main::@2->malloc] malloc_from___b2: // [14] phi heap_head#8 = heap_head#0 [phi:main::@2->malloc#0] -- register_copy @@ -473,7 +473,7 @@ main: { jmp __b3 // main::@3 __b3: - // [4] main::buf2#0 = (byte*)(void*)malloc::mem#0 + // [4] main::buf2#0 = (char *)(void *)malloc::mem#0 // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] __b1_from___b3: // [5] phi main::i#2 = 0 [phi:main::@3->main::@1#0] -- vbuyy=vbuc1 @@ -520,6 +520,7 @@ main: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .label mem = 6 // [15] malloc::mem#0 = heap_head#8 - $64 -- pbuz1=pbuz2_minus_vbuc1 @@ -569,29 +570,29 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -byte* heap_head -byte* heap_head#0 heap_head zp[2]:2 3.25 -byte* heap_head#8 heap_head zp[2]:2 13.0 +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +char *heap_head +char *heap_head#0 // heap_head zp[2]:2 3.25 +char *heap_head#8 // heap_head zp[2]:2 13.0 void main() -byte~ main::$4 reg byte a 22.0 -byte* main::buf1 -byte* main::buf1#0 buf1 zp[2]:4 1.666666666666667 -byte* main::buf2 -byte* main::buf2#0 buf2 zp[2]:6 1.875 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 16.5 -constant byte* main::screen = (byte*) 1024 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 mem zp[2]:6 4.4 -void* malloc::return -word malloc::size +char main::$4 // reg byte a 22.0 +char *main::buf1 +char *main::buf1#0 // buf1 zp[2]:4 1.666666666666667 +char *main::buf2 +char *main::buf2#0 // buf2 zp[2]:6 1.875 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 16.5 +__constant char *main::screen = (char *) 1024 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 // mem zp[2]:6 4.4 +void *malloc::return +unsigned int malloc::size reg byte y [ main::i#2 main::i#1 ] zp[2]:2 [ heap_head#8 heap_head#0 ] @@ -626,7 +627,7 @@ main: { .label buf1 = 4 .label buf2 = 6 // unsigned char* buf1 = malloc(100) - // [1] call malloc + // [1] call malloc // [14] phi from main to malloc [phi:main->malloc] // [14] phi heap_head#8 = HEAP_TOP [phi:main->malloc#0] -- pbuz1=pbuc1 lda #malloc] // [14] phi heap_head#8 = heap_head#0 [phi:main::@2->malloc#0] -- register_copy jsr malloc // main::@3 // unsigned char* buf2 = malloc(100) - // [4] main::buf2#0 = (byte*)(void*)malloc::mem#0 + // [4] main::buf2#0 = (char *)(void *)malloc::mem#0 // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] // [5] phi main::i#2 = 0 [phi:main::@3->main::@1#0] -- vbuyy=vbuc1 ldy #0 @@ -693,6 +694,7 @@ main: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .label mem = 6 // unsigned char* mem = heap_head-size diff --git a/src/test/ref/memory-heap.sym b/src/test/ref/memory-heap.sym index 311986443..73a70aea6 100644 --- a/src/test/ref/memory-heap.sym +++ b/src/test/ref/memory-heap.sym @@ -1,26 +1,26 @@ -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -byte* heap_head -byte* heap_head#0 heap_head zp[2]:2 3.25 -byte* heap_head#8 heap_head zp[2]:2 13.0 +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +char *heap_head +char *heap_head#0 // heap_head zp[2]:2 3.25 +char *heap_head#8 // heap_head zp[2]:2 13.0 void main() -byte~ main::$4 reg byte a 22.0 -byte* main::buf1 -byte* main::buf1#0 buf1 zp[2]:4 1.666666666666667 -byte* main::buf2 -byte* main::buf2#0 buf2 zp[2]:6 1.875 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 16.5 -constant byte* main::screen = (byte*) 1024 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 mem zp[2]:6 4.4 -void* malloc::return -word malloc::size +char main::$4 // reg byte a 22.0 +char *main::buf1 +char *main::buf1#0 // buf1 zp[2]:4 1.666666666666667 +char *main::buf2 +char *main::buf2#0 // buf2 zp[2]:6 1.875 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 16.5 +__constant char *main::screen = (char *) 1024 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 // mem zp[2]:6 4.4 +void *malloc::return +unsigned int malloc::size reg byte y [ main::i#2 main::i#1 ] zp[2]:2 [ heap_head#8 heap_head#0 ] diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.asm b/src/test/ref/millfork-benchmarks/linkedlist-kc.asm index 9d767b095..d82d82ccf 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.asm +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.asm @@ -83,7 +83,7 @@ start: { // } rts } -// prepend(word zp(8) x) +// void prepend(__zp(8) unsigned int x) prepend: { .label new = $c .label x = 8 @@ -153,7 +153,7 @@ sum: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -222,7 +222,7 @@ alloc: { rts } // Print a unsigned int as HEX -// print_uint(word zp($e) w) +// void print_uint(__zp($e) unsigned int w) print_uint: { .label w = $e // print_uchar(BYTE1(w)) @@ -262,7 +262,7 @@ print_ln: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg b/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg index 8e6aa8518..348a88315 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,18 +17,18 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] phi() - [6] call start + [6] call start to:main::@1 main::@1: scope:[main] from main main::@7 [7] main::c#7 = phi( main/0, main::@7/main::c#1 ) [7] print_char_cursor#48 = phi( main/print_screen#0, main::@7/print_char_cursor#28 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - [8] root#22 = phi( main::@1/(struct node*)(void*) 0, main::@5/root#12 ) + [8] root#22 = phi( main::@1/(struct node *)(void *) 0, main::@5/root#12 ) [8] free_#24 = phi( main::@1/0, main::@5/free_#14 ) [8] main::i#2 = phi( main::@1/0, main::@5/main::i#1 ) [9] prepend::x#0 = main::i#2 - [10] call prepend + [10] call prepend to:main::@5 main::@5: scope:[main] from main::@2 [11] main::i#1 = ++ main::i#2 @@ -36,13 +36,13 @@ main::@5: scope:[main] from main::@2 to:main::@3 main::@3: scope:[main] from main::@5 [13] phi() - [14] call sum + [14] call sum [15] sum::return#2 = sum::s#3 to:main::@6 main::@6: scope:[main] from main::@3 [16] main::$5 = sum::return#2 - [17] print_char::ch#2 = (byte)main::$5 - [18] call print_char + [17] print_char::ch#2 = (char)main::$5 + [18] call print_char to:main::@7 main::@7: scope:[main] from main::@6 [19] main::c#1 = ++ main::c#7 @@ -50,7 +50,7 @@ main::@7: scope:[main] from main::@6 to:main::@4 main::@4: scope:[main] from main::@7 [21] phi() - [22] call end + [22] call end to:main::@return main::@return: scope:[main] from main::@4 [23] return @@ -64,40 +64,40 @@ start::@return: scope:[start] from start [25] return to:@return -void prepend(word prepend::x) +void prepend(unsigned int x) prepend: scope:[prepend] from main::@2 [26] phi() - [27] call alloc + [27] call alloc [28] alloc::return#2 = alloc::return#0 to:prepend::@1 prepend::@1: scope:[prepend] from prepend [29] prepend::new#1 = alloc::return#2 - [30] *((struct node**)prepend::new#1) = root#22 - [31] ((word*)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 + [30] *((struct node **)prepend::new#1) = root#22 + [31] ((unsigned int *)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 [32] root#12 = prepend::new#1 to:prepend::@return prepend::@return: scope:[prepend] from prepend::@1 [33] return to:@return -word sum() +unsigned int sum() sum: scope:[sum] from main::@3 [34] sum::current#1 = root#12 to:sum::@1 sum::@1: scope:[sum] from sum sum::@2 [35] sum::s#3 = phi( sum/0, sum::@2/sum::s#2 ) [35] sum::current#3 = phi( sum/sum::current#1, sum::@2/sum::current#2 ) - [36] if((struct node*)0!=sum::current#3) goto sum::@2 + [36] if((struct node *)0!=sum::current#3) goto sum::@2 to:sum::@return sum::@return: scope:[sum] from sum::@1 [37] return to:@return sum::@2: scope:[sum] from sum::@1 - [38] sum::s#2 = sum::s#3 + ((word*)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] - [39] sum::current#2 = *((struct node**)sum::current#3) + [38] sum::s#2 = sum::s#3 + ((unsigned int *)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] + [39] sum::current#2 = *((struct node **)sum::current#3) to:sum::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@6 print_uchar print_uchar::@1 [40] print_char_cursor#27 = phi( main::@6/print_char_cursor#48, print_uchar/print_char_cursor#28, print_uchar::@1/print_char_cursor#28 ) [40] print_char::ch#3 = phi( main::@6/print_char::ch#2, print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -111,23 +111,23 @@ print_char::@return: scope:[print_char] from print_char void end() end: scope:[end] from main::@4 [44] Ticks#0 = last_time - [45] call start + [45] call start to:end::@1 end::@1: scope:[end] from end [46] last_time = last_time - Ticks#0 [47] Ticks#1 = last_time [48] print_uint::w#0 = Ticks#1 - [49] call print_uint + [49] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 [50] phi() - [51] call print_ln + [51] call print_ln to:end::@return end::@return: scope:[end] from end::@2 [52] return to:@return -struct node* alloc() +struct node * alloc() alloc: scope:[alloc] from prepend [53] alloc::$1 = free_#24 << 2 [54] alloc::return#0 = heap + alloc::$1 @@ -137,14 +137,14 @@ alloc::@return: scope:[alloc] from alloc [56] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 [57] print_uchar::b#0 = byte1 print_uint::w#0 - [58] call print_uchar + [58] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [59] print_uchar::b#1 = byte0 print_uint::w#0 - [60] call print_uchar + [60] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [61] return @@ -163,17 +163,17 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [66] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [67] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [68] print_uchar::$0 = print_uchar::b#2 >> 4 [69] print_char::ch#0 = print_hextab[print_uchar::$0] - [70] call print_char + [70] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [71] print_uchar::$2 = print_uchar::b#2 & $f [72] print_char::ch#1 = print_hextab[print_uchar::$2] - [73] call print_char + [73] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [74] return diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.log b/src/test/ref/millfork-benchmarks/linkedlist-kc.log index 053497d18..e3ce7f1df 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.log +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.log @@ -1,7 +1,7 @@ Fixing struct type size struct node to 4 Setting inferred volatile on symbol affected by address-of last_time Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -30,13 +30,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 print_char_cursor#38 = phi( end::@1/print_char_cursor#41 ) print_uint::w#1 = phi( end::@1/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -44,7 +44,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#2 = print_char_cursor#21 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#22 = phi( print_uint::@1/print_char_cursor#7 ) @@ -56,13 +56,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#39 = phi( print_uint/print_char_cursor#38, print_uint::@1/print_char_cursor#2 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -70,7 +70,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#5 = print_char_cursor#24 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#25 = phi( print_uchar::@1/print_char_cursor#9 ) @@ -82,7 +82,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@8 print_uchar print_uchar::@1 print_char_cursor#27 = phi( main::@8/print_char_cursor#40, print_uchar/print_char_cursor#39, print_uchar::@1/print_char_cursor#5 ) print_char::ch#3 = phi( main::@8/print_char::ch#2, print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -108,7 +108,7 @@ end: scope:[end] from main::@4 print_line_cursor#24 = phi( main::@4/print_line_cursor#20 ) print_char_cursor#44 = phi( main::@4/print_char_cursor#42 ) Ticks#0 = last_time - call start + call start to:end::@1 end::@1: scope:[end] from end print_line_cursor#22 = phi( end/print_line_cursor#24 ) @@ -117,14 +117,14 @@ end::@1: scope:[end] from end last_time = last_time - Ticks#8 Ticks#1 = last_time print_uint::w#0 = Ticks#1 - call print_uint + call print_uint to:end::@2 end::@2: scope:[end] from end::@1 Ticks#17 = phi( end::@1/Ticks#1 ) print_line_cursor#19 = phi( end::@1/print_line_cursor#22 ) print_char_cursor#29 = phi( end::@1/print_char_cursor#4 ) print_char_cursor#10 = print_char_cursor#29 - call print_ln + call print_ln to:end::@3 end::@3: scope:[end] from end::@2 Ticks#14 = phi( end::@2/Ticks#17 ) @@ -146,7 +146,7 @@ end::@return: scope:[end] from end::@3 void init() init: scope:[init] from main::@1 free_#0 = 0 - root#0 = ((struct node*)) (void*)0 + root#0 = ((struct node *)) (void *)0 to:init::@return init::@return: scope:[init] from init root#10 = phi( init/root#0 ) @@ -156,10 +156,10 @@ init::@return: scope:[init] from init return to:@return -struct node* alloc() +struct node * alloc() alloc: scope:[alloc] from prepend free_#13 = phi( prepend/free_#22 ) - alloc::result#0 = (struct node*) 0 + alloc::result#0 = (struct node *) 0 alloc::$1 = free_#13 * SIZEOF_STRUCT_NODE alloc::$0 = heap + alloc::$1 alloc::result#1 = alloc::$0 @@ -174,13 +174,13 @@ alloc::@return: scope:[alloc] from alloc return to:@return -void prepend(word prepend::x) +void prepend(unsigned int x) prepend: scope:[prepend] from main::@2 prepend::x#2 = phi( main::@2/prepend::x#0 ) root#19 = phi( main::@2/root#22 ) free_#22 = phi( main::@2/free_#24 ) - prepend::new#0 = (struct node*) 0 - call alloc + prepend::new#0 = (struct node *) 0 + call alloc alloc::return#2 = alloc::return#1 to:prepend::@1 prepend::@1: scope:[prepend] from prepend @@ -191,10 +191,10 @@ prepend::@1: scope:[prepend] from prepend prepend::$0 = alloc::return#4 free_#4 = free_#15 prepend::new#1 = prepend::$0 - prepend::$3 = (struct node**)prepend::new#1 + prepend::$3 = (struct node **)prepend::new#1 prepend::$1 = prepend::$3 + OFFSET_STRUCT_NODE_NEXT *prepend::$1 = root#11 - prepend::$4 = (word*)prepend::new#1 + prepend::$4 = (unsigned int *)prepend::new#1 prepend::$2 = prepend::$4 + OFFSET_STRUCT_NODE_VALUE *prepend::$2 = prepend::x#1 root#2 = prepend::new#1 @@ -207,10 +207,10 @@ prepend::@return: scope:[prepend] from prepend::@1 return to:@return -word sum() +unsigned int sum() sum: scope:[sum] from main::@3 root#13 = phi( main::@3/root#20 ) - sum::current#0 = (struct node*) 0 + sum::current#0 = (struct node *) 0 sum::s#0 = 0 sum::s#1 = 0 sum::current#1 = root#13 @@ -218,16 +218,16 @@ sum: scope:[sum] from main::@3 sum::@1: scope:[sum] from sum sum::@2 sum::s#5 = phi( sum/sum::s#1, sum::@2/sum::s#2 ) sum::current#3 = phi( sum/sum::current#1, sum::@2/sum::current#2 ) - sum::$4 = (struct node*)0 != sum::current#3 + sum::$4 = (struct node *)0 != sum::current#3 if(sum::$4) goto sum::@2 to:sum::@3 sum::@2: scope:[sum] from sum::@1 sum::s#3 = phi( sum::@1/sum::s#5 ) sum::current#4 = phi( sum::@1/sum::current#3 ) - sum::$2 = (word*)sum::current#4 + sum::$2 = (unsigned int *)sum::current#4 sum::$0 = sum::$2 + OFFSET_STRUCT_NODE_VALUE sum::s#2 = sum::s#3 + *sum::$0 - sum::$3 = (struct node**)sum::current#4 + sum::$3 = (struct node **)sum::current#4 sum::$1 = sum::$3 + OFFSET_STRUCT_NODE_NEXT sum::current#2 = *sum::$1 to:sum::@1 @@ -248,7 +248,7 @@ main: scope:[main] from __start::@1 print_char_cursor#51 = phi( __start::@1/print_char_cursor#43 ) root#28 = phi( __start::@1/root#24 ) free_#30 = phi( __start::@1/free_#26 ) - call start + call start to:main::@5 main::@5: scope:[main] from main print_line_cursor#31 = phi( main/print_line_cursor#32 ) @@ -265,7 +265,7 @@ main::@1: scope:[main] from main::@5 main::@9 print_char_cursor#49 = phi( main::@5/print_char_cursor#50, main::@9/print_char_cursor#13 ) root#21 = phi( main::@5/root#25, main::@9/root#26 ) free_#23 = phi( main::@5/free_#27, main::@9/free_#28 ) - call init + call init to:main::@6 main::@6: scope:[main] from main::@1 print_line_cursor#29 = phi( main::@1/print_line_cursor#30 ) @@ -287,7 +287,7 @@ main::@2: scope:[main] from main::@6 main::@7 free_#24 = phi( main::@6/free_#6, main::@7/free_#7 ) main::i#2 = phi( main::@6/main::i#0, main::@7/main::i#1 ) prepend::x#0 = main::i#2 - call prepend + call prepend to:main::@7 main::@7: scope:[main] from main::@2 print_line_cursor#27 = phi( main::@2/print_line_cursor#28 ) @@ -310,7 +310,7 @@ main::@3: scope:[main] from main::@7 main::c#4 = phi( main::@7/main::c#5 ) print_char_cursor#45 = phi( main::@7/print_char_cursor#46 ) root#20 = phi( main::@7/root#5 ) - call sum + call sum sum::return#2 = sum::return#1 to:main::@8 main::@8: scope:[main] from main::@3 @@ -322,8 +322,8 @@ main::@8: scope:[main] from main::@3 print_char_cursor#40 = phi( main::@3/print_char_cursor#45 ) sum::return#4 = phi( main::@3/sum::return#2 ) main::$5 = sum::return#4 - print_char::ch#2 = (byte)main::$5 - call print_char + print_char::ch#2 = (char)main::$5 + call print_char to:main::@9 main::@9: scope:[main] from main::@8 print_line_cursor#23 = phi( main::@8/print_line_cursor#25 ) @@ -343,7 +343,7 @@ main::@4: scope:[main] from main::@9 print_line_cursor#20 = phi( main::@9/print_line_cursor#23 ) print_char_cursor#42 = phi( main::@9/print_char_cursor#13 ) Ticks#15 = phi( main::@9/Ticks#18 ) - call end + call end to:main::@10 main::@10: scope:[main] from main::@4 root#23 = phi( main::@4/root#27 ) @@ -373,13 +373,13 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#6 = print_screen#0 print_char_cursor#16 = print_line_cursor#6 last_time = 0 Ticks#5 = 0 free_#9 = 0 - root#7 = (struct node*) 0 + root#7 = (struct node *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 print_screen#4 = phi( __start::__init1/print_screen#0 ) @@ -388,7 +388,7 @@ __start::@1: scope:[__start] from __start::__init1 print_char_cursor#43 = phi( __start::__init1/print_char_cursor#16 ) root#24 = phi( __start::__init1/root#7 ) free_#26 = phi( __start::__init1/free_#9 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#3 = phi( __start::@1/print_screen#4 ) @@ -420,300 +420,300 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_NODE_NEXT = 0 -constant byte OFFSET_STRUCT_NODE_VALUE = 2 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_STRUCT_NODE = 4 -word Ticks -word Ticks#0 -word Ticks#1 -word Ticks#10 -word Ticks#11 -word Ticks#12 -word Ticks#13 -word Ticks#14 -word Ticks#15 -word Ticks#16 -word Ticks#17 -word Ticks#18 -word Ticks#19 -word Ticks#2 -word Ticks#20 -word Ticks#21 -word Ticks#22 -word Ticks#23 -word Ticks#24 -word Ticks#25 -word Ticks#26 -word Ticks#3 -word Ticks#4 -word Ticks#5 -word Ticks#6 -word Ticks#7 -word Ticks#8 -word Ticks#9 +__constant char OFFSET_STRUCT_NODE_NEXT = 0 +__constant char OFFSET_STRUCT_NODE_VALUE = 2 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_STRUCT_NODE = 4 +unsigned int Ticks +unsigned int Ticks#0 +unsigned int Ticks#1 +unsigned int Ticks#10 +unsigned int Ticks#11 +unsigned int Ticks#12 +unsigned int Ticks#13 +unsigned int Ticks#14 +unsigned int Ticks#15 +unsigned int Ticks#16 +unsigned int Ticks#17 +unsigned int Ticks#18 +unsigned int Ticks#19 +unsigned int Ticks#2 +unsigned int Ticks#20 +unsigned int Ticks#21 +unsigned int Ticks#22 +unsigned int Ticks#23 +unsigned int Ticks#24 +unsigned int Ticks#25 +unsigned int Ticks#26 +unsigned int Ticks#3 +unsigned int Ticks#4 +unsigned int Ticks#5 +unsigned int Ticks#6 +unsigned int Ticks#7 +unsigned int Ticks#8 +unsigned int Ticks#9 void __start() -struct node* alloc() -struct node*~ alloc::$0 -word~ alloc::$1 -struct node* alloc::result -struct node* alloc::result#0 -struct node* alloc::result#1 -struct node* alloc::return -struct node* alloc::return#0 -struct node* alloc::return#1 -struct node* alloc::return#2 -struct node* alloc::return#3 -struct node* alloc::return#4 +struct node * alloc() +struct node *alloc::$0 +unsigned int alloc::$1 +struct node *alloc::result +struct node *alloc::result#0 +struct node *alloc::result#1 +struct node *alloc::return +struct node *alloc::return#0 +struct node *alloc::return#1 +struct node *alloc::return#2 +struct node *alloc::return#3 +struct node *alloc::return#4 void end() -word free_ -word free_#0 -word free_#1 -word free_#10 -word free_#11 -word free_#12 -word free_#13 -word free_#14 -word free_#15 -word free_#16 -word free_#17 -word free_#18 -word free_#19 -word free_#2 -word free_#20 -word free_#21 -word free_#22 -word free_#23 -word free_#24 -word free_#25 -word free_#26 -word free_#27 -word free_#28 -word free_#29 -word free_#3 -word free_#30 -word free_#31 -word free_#32 -word free_#4 -word free_#5 -word free_#6 -word free_#7 -word free_#8 -word free_#9 -constant struct node* heap[$fa0] = { fill( $fa0, 0) } +unsigned int free_ +unsigned int free_#0 +unsigned int free_#1 +unsigned int free_#10 +unsigned int free_#11 +unsigned int free_#12 +unsigned int free_#13 +unsigned int free_#14 +unsigned int free_#15 +unsigned int free_#16 +unsigned int free_#17 +unsigned int free_#18 +unsigned int free_#19 +unsigned int free_#2 +unsigned int free_#20 +unsigned int free_#21 +unsigned int free_#22 +unsigned int free_#23 +unsigned int free_#24 +unsigned int free_#25 +unsigned int free_#26 +unsigned int free_#27 +unsigned int free_#28 +unsigned int free_#29 +unsigned int free_#3 +unsigned int free_#30 +unsigned int free_#31 +unsigned int free_#32 +unsigned int free_#4 +unsigned int free_#5 +unsigned int free_#6 +unsigned int free_#7 +unsigned int free_#8 +unsigned int free_#9 +__constant struct node heap[$fa0] = { fill( $fa0, 0) } void init() -volatile word last_time loadstore +__loadstore volatile unsigned int last_time void main() -bool~ main::$4 -word~ main::$5 -bool~ main::$7 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c#4 -byte main::c#5 -byte main::c#6 -byte main::c#7 -byte main::c#8 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 -void prepend(word prepend::x) -struct node*~ prepend::$0 -struct node**~ prepend::$1 -word*~ prepend::$2 -struct node**~ prepend::$3 -word*~ prepend::$4 -struct node* prepend::new -struct node* prepend::new#0 -struct node* prepend::new#1 -word prepend::x -word prepend::x#0 -word prepend::x#1 -word prepend::x#2 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +bool main::$4 +unsigned int main::$5 +bool main::$7 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c#4 +char main::c#5 +char main::c#6 +char main::c#7 +char main::c#8 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 +void prepend(unsigned int x) +struct node *prepend::$0 +struct node **prepend::$1 +unsigned int *prepend::$2 +struct node **prepend::$3 +unsigned int *prepend::$4 +struct node *prepend::new +struct node *prepend::new#0 +struct node *prepend::new#1 +unsigned int prepend::x +unsigned int prepend::x#0 +unsigned int prepend::x#1 +unsigned int prepend::x#2 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -struct node* root -struct node* root#0 -struct node* root#1 -struct node* root#10 -struct node* root#11 -struct node* root#12 -struct node* root#13 -struct node* root#14 -struct node* root#15 -struct node* root#16 -struct node* root#17 -struct node* root#18 -struct node* root#19 -struct node* root#2 -struct node* root#20 -struct node* root#21 -struct node* root#22 -struct node* root#23 -struct node* root#24 -struct node* root#25 -struct node* root#26 -struct node* root#27 -struct node* root#28 -struct node* root#29 -struct node* root#3 -struct node* root#4 -struct node* root#5 -struct node* root#6 -struct node* root#7 -struct node* root#8 -struct node* root#9 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +struct node *root +struct node *root#0 +struct node *root#1 +struct node *root#10 +struct node *root#11 +struct node *root#12 +struct node *root#13 +struct node *root#14 +struct node *root#15 +struct node *root#16 +struct node *root#17 +struct node *root#18 +struct node *root#19 +struct node *root#2 +struct node *root#20 +struct node *root#21 +struct node *root#22 +struct node *root#23 +struct node *root#24 +struct node *root#25 +struct node *root#26 +struct node *root#27 +struct node *root#28 +struct node *root#29 +struct node *root#3 +struct node *root#4 +struct node *root#5 +struct node *root#6 +struct node *root#7 +struct node *root#8 +struct node *root#9 void start() -constant word* const start::LAST_TIME = &last_time -word sum() -word*~ sum::$0 -struct node**~ sum::$1 -word*~ sum::$2 -struct node**~ sum::$3 -bool~ sum::$4 -struct node* sum::current -struct node* sum::current#0 -struct node* sum::current#1 -struct node* sum::current#2 -struct node* sum::current#3 -struct node* sum::current#4 -word sum::return -word sum::return#0 -word sum::return#1 -word sum::return#2 -word sum::return#3 -word sum::return#4 -word sum::s -word sum::s#0 -word sum::s#1 -word sum::s#2 -word sum::s#3 -word sum::s#4 -word sum::s#5 +__constant unsigned int * const start::LAST_TIME = &last_time +unsigned int sum() +unsigned int *sum::$0 +struct node **sum::$1 +unsigned int *sum::$2 +struct node **sum::$3 +bool sum::$4 +struct node *sum::current +struct node *sum::current#0 +struct node *sum::current#1 +struct node *sum::current#2 +struct node *sum::current#3 +struct node *sum::current#4 +unsigned int sum::return +unsigned int sum::return#0 +unsigned int sum::return#1 +unsigned int sum::return#2 +unsigned int sum::return#3 +unsigned int sum::return#4 +unsigned int sum::s +unsigned int sum::s#0 +unsigned int sum::s#1 +unsigned int sum::s#2 +unsigned int sum::s#3 +unsigned int sum::s#4 +unsigned int sum::s#5 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#9 + $28 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#2 >> 4 @@ -723,24 +723,24 @@ Adding number conversion cast (unumber) 0 in free_#0 = 0 Adding number conversion cast (unumber) 0 in sum::s#1 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast free_#0 = (unumber)0 -Inlining cast root#0 = (struct node*)(void*)0 +Inlining cast root#0 = (struct node *)(void *)0 Inlining cast sum::s#1 = (unumber)0 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $28 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 0 -Simplifying constant pointer cast (void*) 0 +Simplifying constant pointer cast (void *) 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#10 print_char_cursor#0 print_line_cursor#11 print_char_cursor#20 print_line_cursor#1 print_char_cursor#1 Alias print_uchar::b#0 = print_uint::$0 Alias print_uint::w#1 = print_uint::w#2 @@ -851,25 +851,25 @@ Identical Phi Values Ticks#23 Ticks#16 Identical Phi Values print_line_cursor#29 print_screen#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition print_ln::$1 [4] if(print_line_cursor#0> 4 [69] print_char::ch#0 = print_hextab[print_uchar::$0] - [70] call print_char + [70] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [71] print_uchar::$2 = print_uchar::b#2 & $f [72] print_char::ch#1 = print_hextab[print_uchar::$2] - [73] call print_char + [73] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [74] return @@ -1198,73 +1198,73 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS -word Ticks -word Ticks#0 101.0 -word Ticks#1 202.0 +unsigned int Ticks +unsigned int Ticks#0 // 101.0 +unsigned int Ticks#1 // 202.0 void __start() -struct node* alloc() -word~ alloc::$1 200002.0 -struct node* alloc::result -struct node* alloc::return -struct node* alloc::return#0 27500.5 -struct node* alloc::return#2 20002.0 +struct node * alloc() +unsigned int alloc::$1 // 200002.0 +struct node *alloc::result +struct node *alloc::return +struct node *alloc::return#0 // 27500.5 +struct node *alloc::return#2 // 20002.0 void end() -word free_ -word free_#14 8416.833333333332 -word free_#24 40200.600000000006 -volatile word last_time loadstore 18.454545454545453 +unsigned int free_ +unsigned int free_#14 // 8416.833333333332 +unsigned int free_#24 // 40200.600000000006 +__loadstore volatile unsigned int last_time // 18.454545454545453 void main() -word~ main::$5 101.0 -byte main::c -byte main::c#1 151.5 -byte main::c#7 16.833333333333332 -word main::i -word main::i#1 1501.5 -word main::i#2 1001.0 -void prepend(word prepend::x) -struct node* prepend::new -struct node* prepend::new#1 6667.333333333333 -word prepend::x -word prepend::x#0 1833.6666666666665 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#1 20002.0 -byte print_char::ch#2 202.0 -byte print_char::ch#3 120104.0 -byte* print_char_cursor -byte* print_char_cursor#27 110052.5 -byte* print_char_cursor#28 4336.833333333333 -byte* print_char_cursor#48 18.363636363636363 -byte* print_line_cursor -byte* print_line_cursor#0 15001.5 -byte* print_line_cursor#9 20002.0 +unsigned int main::$5 // 101.0 +char main::c +char main::c#1 // 151.5 +char main::c#7 // 16.833333333333332 +unsigned int main::i +unsigned int main::i#1 // 1501.5 +unsigned int main::i#2 // 1001.0 +void prepend(unsigned int x) +struct node *prepend::new +struct node *prepend::new#1 // 6667.333333333333 +unsigned int prepend::x +unsigned int prepend::x#0 // 1833.6666666666665 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#1 // 20002.0 +char print_char::ch#2 // 202.0 +char print_char::ch#3 // 120104.0 +char *print_char_cursor +char *print_char_cursor#27 // 110052.5 +char *print_char_cursor#28 // 4336.833333333333 +char *print_char_cursor#48 // 18.363636363636363 +char *print_line_cursor +char *print_line_cursor#0 // 15001.5 +char *print_line_cursor#9 // 20002.0 void print_ln() -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 -struct node* root -struct node* root#12 2000.4999999999998 -struct node* root#22 1833.6666666666665 +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 +struct node *root +struct node *root#12 // 2000.4999999999998 +struct node *root#22 // 1833.6666666666665 void start() -word sum() -struct node* sum::current -struct node* sum::current#1 2002.0 -struct node* sum::current#2 200002.0 -struct node* sum::current#3 67001.0 -word sum::return -word sum::return#2 202.0 -word sum::s -word sum::s#2 100001.0 -word sum::s#3 50025.75 +unsigned int sum() +struct node *sum::current +struct node *sum::current#1 // 2002.0 +struct node *sum::current#2 // 200002.0 +struct node *sum::current#3 // 67001.0 +unsigned int sum::return +unsigned int sum::return#2 // 202.0 +unsigned int sum::s +unsigned int sum::s#2 // 100001.0 +unsigned int sum::s#3 // 50025.75 Initial phi equivalence classes [ main::c#7 main::c#1 ] @@ -1347,14 +1347,14 @@ Statement [16] main::$5 = sum::return#2 [ last_time print_char_cursor#48 main::c Statement asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1 } always clobbers reg byte a reg byte x reg byte y Statement [28] alloc::return#2 = alloc::return#0 [ root#22 free_#14 prepend::x#0 alloc::return#2 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 root#22 free_#14 prepend::x#0 alloc::return#2 ] { { prepend::x#0 = main::i#2 } { alloc::return#0 = alloc::return#2 } } ) always clobbers reg byte a Statement [29] prepend::new#1 = alloc::return#2 [ root#22 free_#14 prepend::x#0 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 root#22 free_#14 prepend::x#0 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a -Statement [30] *((struct node**)prepend::new#1) = root#22 [ free_#14 prepend::x#0 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::x#0 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y +Statement [30] *((struct node **)prepend::new#1) = root#22 [ free_#14 prepend::x#0 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::x#0 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::c#7 main::c#1 ] -Statement [31] ((word*)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 [ free_#14 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y +Statement [31] ((unsigned int *)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 [ free_#14 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y Statement [32] root#12 = prepend::new#1 [ free_#14 root#12 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 root#12 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a Statement [34] sum::current#1 = root#12 [ sum::current#1 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#1 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a -Statement [36] if((struct node*)0!=sum::current#3) goto sum::@2 [ sum::s#3 sum::current#3 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::s#3 sum::current#3 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a -Statement [38] sum::s#2 = sum::s#3 + ((word*)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] [ sum::current#3 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#3 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y -Statement [39] sum::current#2 = *((struct node**)sum::current#3) [ sum::current#2 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#2 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y +Statement [36] if((struct node *)0!=sum::current#3) goto sum::@2 [ sum::s#3 sum::current#3 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::s#3 sum::current#3 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a +Statement [38] sum::s#2 = sum::s#3 + ((unsigned int *)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] [ sum::current#3 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#3 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y +Statement [39] sum::current#2 = *((struct node **)sum::current#3) [ sum::current#2 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#2 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y Statement [41] *print_char_cursor#27 = print_char::ch#3 [ print_char_cursor#27 ] ( main:3::print_char:18 [ last_time main::c#7 print_char_cursor#27 ] { { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#48 } } main:3::end:22::print_uint:49::print_uchar:58::print_char:70 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } main:3::end:22::print_uint:49::print_uchar:60::print_char:70 [ print_uchar::b#2 print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } main:3::end:22::print_uint:49::print_uchar:58::print_char:73 [ print_uint::w#0 print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } main:3::end:22::print_uint:49::print_uchar:60::print_char:73 [ print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:18 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] Statement [44] Ticks#0 = last_time [ last_time print_char_cursor#28 Ticks#0 ] ( main:3::end:22 [ last_time print_char_cursor#28 Ticks#0 ] { } ) always clobbers reg byte a @@ -1376,13 +1376,13 @@ Statement [16] main::$5 = sum::return#2 [ last_time print_char_cursor#48 main::c Statement asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1 } always clobbers reg byte a reg byte x reg byte y Statement [28] alloc::return#2 = alloc::return#0 [ root#22 free_#14 prepend::x#0 alloc::return#2 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 root#22 free_#14 prepend::x#0 alloc::return#2 ] { { prepend::x#0 = main::i#2 } { alloc::return#0 = alloc::return#2 } } ) always clobbers reg byte a Statement [29] prepend::new#1 = alloc::return#2 [ root#22 free_#14 prepend::x#0 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 root#22 free_#14 prepend::x#0 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a -Statement [30] *((struct node**)prepend::new#1) = root#22 [ free_#14 prepend::x#0 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::x#0 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y -Statement [31] ((word*)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 [ free_#14 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y +Statement [30] *((struct node **)prepend::new#1) = root#22 [ free_#14 prepend::x#0 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::x#0 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y +Statement [31] ((unsigned int *)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 [ free_#14 prepend::new#1 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 prepend::new#1 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a reg byte y Statement [32] root#12 = prepend::new#1 [ free_#14 root#12 ] ( main:3::prepend:10 [ last_time print_char_cursor#48 main::c#7 main::i#2 free_#14 root#12 ] { { prepend::x#0 = main::i#2 } } ) always clobbers reg byte a Statement [34] sum::current#1 = root#12 [ sum::current#1 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#1 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a -Statement [36] if((struct node*)0!=sum::current#3) goto sum::@2 [ sum::s#3 sum::current#3 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::s#3 sum::current#3 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a -Statement [38] sum::s#2 = sum::s#3 + ((word*)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] [ sum::current#3 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#3 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y -Statement [39] sum::current#2 = *((struct node**)sum::current#3) [ sum::current#2 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#2 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y +Statement [36] if((struct node *)0!=sum::current#3) goto sum::@2 [ sum::s#3 sum::current#3 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::s#3 sum::current#3 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a +Statement [38] sum::s#2 = sum::s#3 + ((unsigned int *)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] [ sum::current#3 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#3 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y +Statement [39] sum::current#2 = *((struct node **)sum::current#3) [ sum::current#2 sum::s#2 ] ( main:3::sum:14 [ last_time print_char_cursor#48 main::c#7 sum::current#2 sum::s#2 ] { { sum::return#2 = sum::s#3 } } ) always clobbers reg byte a reg byte y Statement [41] *print_char_cursor#27 = print_char::ch#3 [ print_char_cursor#27 ] ( main:3::print_char:18 [ last_time main::c#7 print_char_cursor#27 ] { { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#48 } } main:3::end:22::print_uint:49::print_uchar:58::print_char:70 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } main:3::end:22::print_uint:49::print_uchar:60::print_char:70 [ print_uchar::b#2 print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } main:3::end:22::print_uint:49::print_uchar:58::print_char:73 [ print_uint::w#0 print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } main:3::end:22::print_uint:49::print_uchar:60::print_char:73 [ print_char_cursor#27 ] { { Ticks#1 = print_uint::w#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#3 } { print_char_cursor#27 = print_char_cursor#28 } } ) always clobbers reg byte y Statement [44] Ticks#0 = last_time [ last_time print_char_cursor#28 Ticks#0 ] ( main:3::end:22 [ last_time print_char_cursor#28 Ticks#0 ] { } ) always clobbers reg byte a Statement [46] last_time = last_time - Ticks#0 [ last_time print_char_cursor#28 ] ( main:3::end:22 [ last_time print_char_cursor#28 ] { { Ticks#1 = print_uint::w#0 } } ) always clobbers reg byte a @@ -1514,7 +1514,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1528,7 +1528,7 @@ __start: { main: { .label __5 = 4 .label i = 8 - // [6] call start + // [6] call start jsr start // [7] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: @@ -1549,7 +1549,7 @@ main: { __b1: // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: - // [8] phi root#22 = (struct node*)(void*) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 + // [8] phi root#22 = (struct node *)(void *) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 lda #<0 sta.z root lda #>0 @@ -1574,7 +1574,7 @@ main: { // main::@2 __b2: // [9] prepend::x#0 = main::i#2 - // [10] call prepend + // [10] call prepend // [26] phi from main::@2 to prepend [phi:main::@2->prepend] prepend_from___b2: jsr prepend @@ -1598,16 +1598,16 @@ main: { jmp __b3 // main::@3 __b3: - // [14] call sum + // [14] call sum jsr sum // [15] sum::return#2 = sum::s#3 jmp __b6 // main::@6 __b6: // [16] main::$5 = sum::return#2 - // [17] print_char::ch#2 = (byte)main::$5 -- vbuaa=_byte_vwuz1 + // [17] print_char::ch#2 = (char)main::$5 -- vbuaa=_byte_vwuz1 lda.z __5 - // [18] call print_char + // [18] call print_char // [40] phi from main::@6 to print_char [phi:main::@6->print_char] print_char_from___b6: // [40] phi print_char_cursor#27 = print_char_cursor#48 [phi:main::@6->print_char#0] -- register_copy @@ -1626,7 +1626,7 @@ main: { jmp __b4 // main::@4 __b4: - // [22] call end + // [22] call end jsr end jmp __breturn // main::@return @@ -1648,25 +1648,25 @@ start: { rts } // prepend -// prepend(word zp(8) x) +// void prepend(__zp(8) unsigned int x) prepend: { .label new = $c .label x = 8 - // [27] call alloc + // [27] call alloc jsr alloc // [28] alloc::return#2 = alloc::return#0 jmp __b1 // prepend::@1 __b1: // [29] prepend::new#1 = alloc::return#2 - // [30] *((struct node**)prepend::new#1) = root#22 -- _deref_qssz1=pssz2 + // [30] *((struct node **)prepend::new#1) = root#22 -- _deref_qssz1=pssz2 ldy #0 lda.z root sta (new),y iny lda.z root+1 sta (new),y - // [31] ((word*)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 -- pwuz1_derefidx_vbuc1=vwuz2 + // [31] ((unsigned int *)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 -- pwuz1_derefidx_vbuc1=vwuz2 ldy #OFFSET_STRUCT_NODE_VALUE lda.z x sta (new),y @@ -1701,7 +1701,7 @@ sum: { jmp __b1 // sum::@1 __b1: - // [36] if((struct node*)0!=sum::current#3) goto sum::@2 -- pssc1_neq_pssz1_then_la1 + // [36] if((struct node *)0!=sum::current#3) goto sum::@2 -- pssc1_neq_pssz1_then_la1 lda.z current+1 cmp #>0 bne __b2 @@ -1715,7 +1715,7 @@ sum: { rts // sum::@2 __b2: - // [38] sum::s#2 = sum::s#3 + ((word*)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] -- vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1 + // [38] sum::s#2 = sum::s#3 + ((unsigned int *)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] -- vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_NODE_VALUE clc lda.z s @@ -1725,7 +1725,7 @@ sum: { lda.z s+1 adc (current),y sta.z s+1 - // [39] sum::current#2 = *((struct node**)sum::current#3) -- pssz1=_deref_qssz1 + // [39] sum::current#2 = *((struct node **)sum::current#3) -- pssz1=_deref_qssz1 ldy #0 lda (current),y pha @@ -1742,7 +1742,7 @@ sum: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [41] *print_char_cursor#27 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -1765,7 +1765,7 @@ end: { sta.z Ticks lda.z last_time+1 sta.z Ticks+1 - // [45] call start + // [45] call start jsr start jmp __b1 // end::@1 @@ -1784,14 +1784,14 @@ end: { lda.z last_time+1 sta.z Ticks_1+1 // [48] print_uint::w#0 = Ticks#1 - // [49] call print_uint + // [49] call print_uint jsr print_uint // [50] phi from end::@1 to end::@2 [phi:end::@1->end::@2] __b2_from___b1: jmp __b2 // end::@2 __b2: - // [51] call print_ln + // [51] call print_ln // [62] phi from end::@2 to print_ln [phi:end::@2->print_ln] print_ln_from___b2: jsr print_ln @@ -1835,12 +1835,12 @@ alloc: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($e) w) +// void print_uint(__zp($e) unsigned int w) print_uint: { .label w = $e // [57] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [58] call print_uchar + // [58] call print_uchar // [67] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [67] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy @@ -1850,7 +1850,7 @@ print_uint: { __b1: // [59] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [60] call print_uchar + // [60] call print_uchar // [67] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [67] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1903,7 +1903,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [68] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1914,7 +1914,7 @@ print_uchar: { // [69] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [70] call print_char + // [70] call print_char // Table of hexadecimal digits // [40] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1929,7 +1929,7 @@ print_uchar: { axs #0 // [72] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [73] call print_char + // [73] call print_char // [40] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [40] phi print_char_cursor#27 = print_char_cursor#28 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -2039,82 +2039,82 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_NODE_VALUE = 2 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -word Ticks -word Ticks#0 Ticks zp[2]:12 101.0 -word Ticks#1 Ticks_1 zp[2]:14 202.0 +__constant char OFFSET_STRUCT_NODE_VALUE = 2 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:12 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:14 202.0 void __start() -struct node* alloc() -word~ alloc::$1 zp[2]:12 200002.0 -struct node* alloc::result -struct node* alloc::return -struct node* alloc::return#0 return zp[2]:12 27500.5 -struct node* alloc::return#2 return zp[2]:12 20002.0 +struct node * alloc() +unsigned int alloc::$1 // zp[2]:12 200002.0 +struct node *alloc::result +struct node *alloc::return +struct node *alloc::return#0 // return zp[2]:12 27500.5 +struct node *alloc::return#2 // return zp[2]:12 20002.0 void end() -word free_ -word free_#14 free_ zp[2]:4 8416.833333333332 -word free_#24 free_ zp[2]:4 40200.600000000006 -constant struct node* heap[$fa0] = { fill( $fa0, 0) } -volatile word last_time loadstore zp[2]:10 18.454545454545453 +unsigned int free_ +unsigned int free_#14 // free_ zp[2]:4 8416.833333333332 +unsigned int free_#24 // free_ zp[2]:4 40200.600000000006 +__constant struct node heap[$fa0] = { fill( $fa0, 0) } +__loadstore volatile unsigned int last_time // zp[2]:10 18.454545454545453 void main() -word~ main::$5 zp[2]:4 101.0 -byte main::c -byte main::c#1 reg byte x 151.5 -byte main::c#7 reg byte x 16.833333333333332 -word main::i -word main::i#1 i zp[2]:8 1501.5 -word main::i#2 i zp[2]:8 1001.0 -void prepend(word prepend::x) -struct node* prepend::new -struct node* prepend::new#1 new zp[2]:12 6667.333333333333 -word prepend::x -word prepend::x#0 x zp[2]:8 1833.6666666666665 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 202.0 -byte print_char::ch#3 reg byte a 120104.0 -byte* print_char_cursor -byte* print_char_cursor#27 print_char_cursor zp[2]:6 110052.5 -byte* print_char_cursor#28 print_char_cursor zp[2]:6 4336.833333333333 -byte* print_char_cursor#48 print_char_cursor zp[2]:6 18.363636363636363 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:8 15001.5 -byte* print_line_cursor#9 print_line_cursor zp[2]:8 20002.0 +unsigned int main::$5 // zp[2]:4 101.0 +char main::c +char main::c#1 // reg byte x 151.5 +char main::c#7 // reg byte x 16.833333333333332 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:8 1501.5 +unsigned int main::i#2 // i zp[2]:8 1001.0 +void prepend(unsigned int x) +struct node *prepend::new +struct node *prepend::new#1 // new zp[2]:12 6667.333333333333 +unsigned int prepend::x +unsigned int prepend::x#0 // x zp[2]:8 1833.6666666666665 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 202.0 +char print_char::ch#3 // reg byte a 120104.0 +char *print_char_cursor +char *print_char_cursor#27 // print_char_cursor zp[2]:6 110052.5 +char *print_char_cursor#28 // print_char_cursor zp[2]:6 4336.833333333333 +char *print_char_cursor#48 // print_char_cursor zp[2]:6 18.363636363636363 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:8 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:8 20002.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:14 701.0 -struct node* root -struct node* root#12 root zp[2]:2 2000.4999999999998 -struct node* root#22 root zp[2]:2 1833.6666666666665 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:14 701.0 +struct node *root +struct node *root#12 // root zp[2]:2 2000.4999999999998 +struct node *root#22 // root zp[2]:2 1833.6666666666665 void start() -constant word* const start::LAST_TIME = &last_time -word sum() -struct node* sum::current -struct node* sum::current#1 current zp[2]:2 2002.0 -struct node* sum::current#2 current zp[2]:2 200002.0 -struct node* sum::current#3 current zp[2]:2 67001.0 -word sum::return -word sum::return#2 return zp[2]:4 202.0 -word sum::s -word sum::s#2 s zp[2]:4 100001.0 -word sum::s#3 s zp[2]:4 50025.75 +__constant unsigned int * const start::LAST_TIME = &last_time +unsigned int sum() +struct node *sum::current +struct node *sum::current#1 // current zp[2]:2 2002.0 +struct node *sum::current#2 // current zp[2]:2 200002.0 +struct node *sum::current#3 // current zp[2]:2 67001.0 +unsigned int sum::return +unsigned int sum::return#2 // return zp[2]:4 202.0 +unsigned int sum::s +unsigned int sum::s#2 // s zp[2]:4 100001.0 +unsigned int sum::s#3 // s zp[2]:4 50025.75 reg byte x [ main::c#7 main::c#1 ] zp[2]:2 [ root#22 root#12 sum::current#3 sum::current#1 sum::current#2 ] @@ -2168,7 +2168,7 @@ __start: { sta.z last_time+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -2180,7 +2180,7 @@ main: { .label __5 = 4 .label i = 8 // start() - // [6] call start + // [6] call start jsr start // [7] phi from main to main::@1 [phi:main->main::@1] // [7] phi main::c#7 = 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 @@ -2196,7 +2196,7 @@ main: { // main::@1 __b1: // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - // [8] phi root#22 = (struct node*)(void*) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 + // [8] phi root#22 = (struct node *)(void *) 0 [phi:main::@1->main::@2#0] -- pssz1=pssc1 lda #<0 sta.z root sta.z root+1 @@ -2214,7 +2214,7 @@ main: { __b2: // prepend(i) // [9] prepend::x#0 = main::i#2 - // [10] call prepend + // [10] call prepend // [26] phi from main::@2 to prepend [phi:main::@2->prepend] jsr prepend // main::@5 @@ -2234,15 +2234,15 @@ main: { // [13] phi from main::@5 to main::@3 [phi:main::@5->main::@3] // main::@3 // sum() - // [14] call sum + // [14] call sum jsr sum // [15] sum::return#2 = sum::s#3 // main::@6 // [16] main::$5 = sum::return#2 // print_char((byte)sum()) - // [17] print_char::ch#2 = (byte)main::$5 -- vbuaa=_byte_vwuz1 + // [17] print_char::ch#2 = (char)main::$5 -- vbuaa=_byte_vwuz1 lda.z __5 - // [18] call print_char + // [18] call print_char // [40] phi from main::@6 to print_char [phi:main::@6->print_char] // [40] phi print_char_cursor#27 = print_char_cursor#48 [phi:main::@6->print_char#0] -- register_copy // [40] phi print_char::ch#3 = print_char::ch#2 [phi:main::@6->print_char#1] -- register_copy @@ -2257,7 +2257,7 @@ main: { // [21] phi from main::@7 to main::@4 [phi:main::@7->main::@4] // main::@4 // end() - // [22] call end + // [22] call end jsr end // main::@return // } @@ -2278,19 +2278,19 @@ start: { rts } // prepend -// prepend(word zp(8) x) +// void prepend(__zp(8) unsigned int x) prepend: { .label new = $c .label x = 8 // alloc() - // [27] call alloc + // [27] call alloc jsr alloc // [28] alloc::return#2 = alloc::return#0 // prepend::@1 // new = alloc() // [29] prepend::new#1 = alloc::return#2 // new->next = root - // [30] *((struct node**)prepend::new#1) = root#22 -- _deref_qssz1=pssz2 + // [30] *((struct node **)prepend::new#1) = root#22 -- _deref_qssz1=pssz2 ldy #0 lda.z root sta (new),y @@ -2298,7 +2298,7 @@ prepend: { lda.z root+1 sta (new),y // new->value = x - // [31] ((word*)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 -- pwuz1_derefidx_vbuc1=vwuz2 + // [31] ((unsigned int *)prepend::new#1)[OFFSET_STRUCT_NODE_VALUE] = prepend::x#0 -- pwuz1_derefidx_vbuc1=vwuz2 ldy #OFFSET_STRUCT_NODE_VALUE lda.z x sta (new),y @@ -2332,7 +2332,7 @@ sum: { // sum::@1 __b1: // while (current) - // [36] if((struct node*)0!=sum::current#3) goto sum::@2 -- pssc1_neq_pssz1_then_la1 + // [36] if((struct node *)0!=sum::current#3) goto sum::@2 -- pssc1_neq_pssz1_then_la1 lda.z current+1 cmp #>0 bne __b2 @@ -2346,7 +2346,7 @@ sum: { // sum::@2 __b2: // s += current->value - // [38] sum::s#2 = sum::s#3 + ((word*)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] -- vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1 + // [38] sum::s#2 = sum::s#3 + ((unsigned int *)sum::current#3)[OFFSET_STRUCT_NODE_VALUE] -- vwuz1=vwuz1_plus_pwuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_NODE_VALUE clc lda.z s @@ -2357,7 +2357,7 @@ sum: { adc (current),y sta.z s+1 // current = current->next - // [39] sum::current#2 = *((struct node**)sum::current#3) -- pssz1=_deref_qssz1 + // [39] sum::current#2 = *((struct node **)sum::current#3) -- pssz1=_deref_qssz1 ldy #0 lda (current),y pha @@ -2373,7 +2373,7 @@ sum: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [41] *print_char_cursor#27 = print_char::ch#3 -- _deref_pbuz1=vbuaa @@ -2399,7 +2399,7 @@ end: { lda.z last_time+1 sta.z Ticks+1 // start() - // [45] call start + // [45] call start jsr start // end::@1 // last_time -= Ticks @@ -2419,12 +2419,12 @@ end: { sta.z Ticks_1+1 // print_uint(Ticks) // [48] print_uint::w#0 = Ticks#1 - // [49] call print_uint + // [49] call print_uint jsr print_uint // [50] phi from end::@1 to end::@2 [phi:end::@1->end::@2] // end::@2 // print_ln() - // [51] call print_ln + // [51] call print_ln // [62] phi from end::@2 to print_ln [phi:end::@2->print_ln] jsr print_ln // end::@return @@ -2467,13 +2467,13 @@ alloc: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($e) w) +// void print_uint(__zp($e) unsigned int w) print_uint: { .label w = $e // print_uchar(BYTE1(w)) // [57] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [58] call print_uchar + // [58] call print_uchar // [67] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [67] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy jsr print_uchar @@ -2481,7 +2481,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [59] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [60] call print_uchar + // [60] call print_uchar // [67] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [67] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy jsr print_uchar @@ -2529,7 +2529,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [68] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2542,7 +2542,7 @@ print_uchar: { // [69] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [70] call print_char + // [70] call print_char // Table of hexadecimal digits // [40] phi from print_uchar to print_char [phi:print_uchar->print_char] // [40] phi print_char_cursor#27 = print_char_cursor#28 [phi:print_uchar->print_char#0] -- register_copy @@ -2556,7 +2556,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [72] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [73] call print_char + // [73] call print_char // [40] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [40] phi print_char_cursor#27 = print_char_cursor#28 [phi:print_uchar::@1->print_char#0] -- register_copy // [40] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.sym b/src/test/ref/millfork-benchmarks/linkedlist-kc.sym index 917bc0051..a7a93a16b 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.sym +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.sym @@ -1,79 +1,79 @@ -constant byte OFFSET_STRUCT_NODE_VALUE = 2 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -word Ticks -word Ticks#0 Ticks zp[2]:12 101.0 -word Ticks#1 Ticks_1 zp[2]:14 202.0 +__constant char OFFSET_STRUCT_NODE_VALUE = 2 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:12 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:14 202.0 void __start() -struct node* alloc() -word~ alloc::$1 zp[2]:12 200002.0 -struct node* alloc::result -struct node* alloc::return -struct node* alloc::return#0 return zp[2]:12 27500.5 -struct node* alloc::return#2 return zp[2]:12 20002.0 +struct node * alloc() +unsigned int alloc::$1 // zp[2]:12 200002.0 +struct node *alloc::result +struct node *alloc::return +struct node *alloc::return#0 // return zp[2]:12 27500.5 +struct node *alloc::return#2 // return zp[2]:12 20002.0 void end() -word free_ -word free_#14 free_ zp[2]:4 8416.833333333332 -word free_#24 free_ zp[2]:4 40200.600000000006 -constant struct node* heap[$fa0] = { fill( $fa0, 0) } -volatile word last_time loadstore zp[2]:10 18.454545454545453 +unsigned int free_ +unsigned int free_#14 // free_ zp[2]:4 8416.833333333332 +unsigned int free_#24 // free_ zp[2]:4 40200.600000000006 +__constant struct node heap[$fa0] = { fill( $fa0, 0) } +__loadstore volatile unsigned int last_time // zp[2]:10 18.454545454545453 void main() -word~ main::$5 zp[2]:4 101.0 -byte main::c -byte main::c#1 reg byte x 151.5 -byte main::c#7 reg byte x 16.833333333333332 -word main::i -word main::i#1 i zp[2]:8 1501.5 -word main::i#2 i zp[2]:8 1001.0 -void prepend(word prepend::x) -struct node* prepend::new -struct node* prepend::new#1 new zp[2]:12 6667.333333333333 -word prepend::x -word prepend::x#0 x zp[2]:8 1833.6666666666665 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 202.0 -byte print_char::ch#3 reg byte a 120104.0 -byte* print_char_cursor -byte* print_char_cursor#27 print_char_cursor zp[2]:6 110052.5 -byte* print_char_cursor#28 print_char_cursor zp[2]:6 4336.833333333333 -byte* print_char_cursor#48 print_char_cursor zp[2]:6 18.363636363636363 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:8 15001.5 -byte* print_line_cursor#9 print_line_cursor zp[2]:8 20002.0 +unsigned int main::$5 // zp[2]:4 101.0 +char main::c +char main::c#1 // reg byte x 151.5 +char main::c#7 // reg byte x 16.833333333333332 +unsigned int main::i +unsigned int main::i#1 // i zp[2]:8 1501.5 +unsigned int main::i#2 // i zp[2]:8 1001.0 +void prepend(unsigned int x) +struct node *prepend::new +struct node *prepend::new#1 // new zp[2]:12 6667.333333333333 +unsigned int prepend::x +unsigned int prepend::x#0 // x zp[2]:8 1833.6666666666665 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 202.0 +char print_char::ch#3 // reg byte a 120104.0 +char *print_char_cursor +char *print_char_cursor#27 // print_char_cursor zp[2]:6 110052.5 +char *print_char_cursor#28 // print_char_cursor zp[2]:6 4336.833333333333 +char *print_char_cursor#48 // print_char_cursor zp[2]:6 18.363636363636363 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:8 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:8 20002.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:14 701.0 -struct node* root -struct node* root#12 root zp[2]:2 2000.4999999999998 -struct node* root#22 root zp[2]:2 1833.6666666666665 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:14 701.0 +struct node *root +struct node *root#12 // root zp[2]:2 2000.4999999999998 +struct node *root#22 // root zp[2]:2 1833.6666666666665 void start() -constant word* const start::LAST_TIME = &last_time -word sum() -struct node* sum::current -struct node* sum::current#1 current zp[2]:2 2002.0 -struct node* sum::current#2 current zp[2]:2 200002.0 -struct node* sum::current#3 current zp[2]:2 67001.0 -word sum::return -word sum::return#2 return zp[2]:4 202.0 -word sum::s -word sum::s#2 s zp[2]:4 100001.0 -word sum::s#3 s zp[2]:4 50025.75 +__constant unsigned int * const start::LAST_TIME = &last_time +unsigned int sum() +struct node *sum::current +struct node *sum::current#1 // current zp[2]:2 2002.0 +struct node *sum::current#2 // current zp[2]:2 200002.0 +struct node *sum::current#3 // current zp[2]:2 67001.0 +unsigned int sum::return +unsigned int sum::return#2 // return zp[2]:4 202.0 +unsigned int sum::s +unsigned int sum::s#2 // s zp[2]:4 100001.0 +unsigned int sum::s#3 // s zp[2]:4 50025.75 reg byte x [ main::c#7 main::c#1 ] zp[2]:2 [ root#22 root#12 sum::current#3 sum::current#1 sum::current#2 ] diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.asm b/src/test/ref/millfork-benchmarks/plasma-kc.asm index 7950a64be..2870f0c71 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.asm +++ b/src/test/ref/millfork-benchmarks/plasma-kc.asm @@ -251,7 +251,7 @@ end: { // } rts } -// doplasma(byte* zp(8) scrn) +// void doplasma(__zp(8) char *scrn) doplasma: { .const c2A = 0 .const c2B = 0 @@ -417,7 +417,7 @@ rand: { rts } // Print a unsigned int as HEX -// print_uint(word zp($16) w) +// void print_uint(__zp($16) unsigned int w) print_uint: { .label w = $16 // print_uchar(BYTE1(w)) @@ -461,7 +461,7 @@ print_ln: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -484,7 +484,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.cfg b/src/test/ref/millfork-benchmarks/plasma-kc.cfg index de817a2fa..d708e6005 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.cfg +++ b/src/test/ref/millfork-benchmarks/plasma-kc.cfg @@ -8,25 +8,25 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 [5] phi() - [6] call makechar + [6] call makechar to:main::@4 main::@4: scope:[main] from main [7] phi() - [8] call start + [8] call start to:main::@5 main::@5: scope:[main] from main::@4 - [9] main::block#1 = *((byte*)CIA2) + [9] main::block#1 = *((char *)CIA2) [10] main::tmp#1 = main::block#1 & $fc - [11] *((byte*)CIA2) = main::tmp#1 + [11] *((char *)CIA2) = main::tmp#1 [12] main::v#1 = *VICII_MEMORY to:main::@1 main::@1: scope:[main] from main::@5 main::@7 @@ -35,19 +35,19 @@ main::@1: scope:[main] from main::@5 main::@7 to:main::@3 main::@3: scope:[main] from main::@1 [15] *VICII_MEMORY = main::v#1 - [16] *((byte*)CIA2) = main::block#1 - [17] call end + [16] *((char *)CIA2) = main::block#1 + [17] call end to:main::@return main::@return: scope:[main] from main::@3 [18] return to:@return main::@2: scope:[main] from main::@1 [19] phi() - [20] call doplasma + [20] call doplasma to:main::@6 main::@6: scope:[main] from main::@2 [21] *VICII_MEMORY = PAGE1 - [22] call doplasma + [22] call doplasma to:main::@7 main::@7: scope:[main] from main::@6 [23] *VICII_MEMORY = PAGE2 @@ -67,7 +67,7 @@ makechar::@return: scope:[makechar] from makechar::@1 [28] return to:@return makechar::@2: scope:[makechar] from makechar::@1 - [29] makechar::$9 = (byte)makechar::c#3 + [29] makechar::$9 = (char)makechar::c#3 [30] makechar::s#1 = sinetable[makechar::$9] to:makechar::@3 makechar::@3: scope:[makechar] from makechar::@2 makechar::@7 @@ -93,7 +93,7 @@ makechar::@7: scope:[makechar] from makechar::@5 to:makechar::@3 makechar::@6: scope:[makechar] from makechar::@5 [41] phi() - [42] call rand + [42] call rand [43] rand::return#2 = rand::return#0 to:makechar::@10 makechar::@10: scope:[makechar] from makechar::@6 @@ -120,23 +120,23 @@ start::@return: scope:[start] from start void end() end: scope:[end] from main::@3 [52] Ticks#0 = last_time - [53] call start + [53] call start to:end::@1 end::@1: scope:[end] from end [54] last_time = last_time - Ticks#0 [55] Ticks#1 = last_time [56] print_uint::w#0 = Ticks#1 - [57] call print_uint + [57] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 [58] phi() - [59] call print_ln + [59] call print_ln to:end::@return end::@return: scope:[end] from end::@2 [60] return to:@return -void doplasma(byte* doplasma::scrn) +void doplasma(char *scrn) doplasma: scope:[doplasma] from main::@2 main::@6 [61] doplasma::scrn#13 = phi( main::@2/SCREEN1, main::@6/SCREEN2 ) to:doplasma::@1 @@ -188,7 +188,7 @@ doplasma::@2: scope:[doplasma] from doplasma::@1 [85] doplasma::ii#2 = ++ doplasma::ii#3 to:doplasma::@1 -word rand() +unsigned int rand() rand: scope:[rand] from makechar::@6 [86] rand::$0 = rand_state#19 << 7 [87] rand_state#0 = rand_state#19 ^ rand::$0 @@ -202,14 +202,14 @@ rand::@return: scope:[rand] from rand [93] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 [94] print_uchar::b#0 = byte1 print_uint::w#0 - [95] call print_uchar + [95] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [96] print_uchar::b#1 = byte0 print_uint::w#0 - [97] call print_uchar + [97] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [98] return @@ -228,24 +228,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [103] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [104] print_char_cursor#37 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#27 ) [104] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [105] print_uchar::$0 = print_uchar::b#2 >> 4 [106] print_char::ch#0 = print_hextab[print_uchar::$0] - [107] call print_char + [107] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [108] print_uchar::$2 = print_uchar::b#2 & $f [109] print_char::ch#1 = print_hextab[print_uchar::$2] - [110] call print_char + [110] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [111] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [112] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) [112] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.log b/src/test/ref/millfork-benchmarks/plasma-kc.log index 01065e649..0069ecf1b 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.log +++ b/src/test/ref/millfork-benchmarks/plasma-kc.log @@ -1,6 +1,6 @@ Setting inferred volatile on symbol affected by address-of last_time Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -29,13 +29,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 print_char_cursor#36 = phi( end::@1/print_char_cursor#38 ) print_uint::w#1 = phi( end::@1/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -43,7 +43,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#2 = print_char_cursor#20 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#21 = phi( print_uint::@1/print_char_cursor#7 ) @@ -55,13 +55,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#37 = phi( print_uint/print_char_cursor#36, print_uint::@1/print_char_cursor#2 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -69,7 +69,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#5 = print_char_cursor#23 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#24 = phi( print_uchar::@1/print_char_cursor#9 ) @@ -81,7 +81,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#5 ) print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -94,7 +94,7 @@ print_char::@return: scope:[print_char] from print_char return to:@return -word rand() +unsigned int rand() rand: scope:[rand] from makechar::@7 rand_state#11 = phi( makechar::@7/rand_state#19 ) rand::$0 = rand_state#11 << 7 @@ -126,7 +126,7 @@ end: scope:[end] from main::@3 print_line_cursor#24 = phi( main::@3/print_line_cursor#20 ) print_char_cursor#41 = phi( main::@3/print_char_cursor#39 ) Ticks#0 = last_time - call start + call start to:end::@1 end::@1: scope:[end] from end print_line_cursor#22 = phi( end/print_line_cursor#24 ) @@ -135,14 +135,14 @@ end::@1: scope:[end] from end last_time = last_time - Ticks#8 Ticks#1 = last_time print_uint::w#0 = Ticks#1 - call print_uint + call print_uint to:end::@2 end::@2: scope:[end] from end::@1 Ticks#17 = phi( end::@1/Ticks#1 ) print_line_cursor#19 = phi( end::@1/print_line_cursor#22 ) print_char_cursor#28 = phi( end::@1/print_char_cursor#4 ) print_char_cursor#10 = print_char_cursor#28 - call print_ln + call print_ln to:end::@3 end::@3: scope:[end] from end::@2 Ticks#14 = phi( end::@2/Ticks#17 ) @@ -161,7 +161,7 @@ end::@return: scope:[end] from end::@3 return to:@return -void doplasma(byte* doplasma::scrn) +void doplasma(char *scrn) doplasma: scope:[doplasma] from main::@2 main::@6 doplasma::scrn#13 = phi( main::@2/doplasma::scrn#1, main::@6/doplasma::scrn#2 ) doplasma::c1a#0 = 0 @@ -305,7 +305,7 @@ makechar::@1: scope:[makechar] from makechar makechar::@5 makechar::@2: scope:[makechar] from makechar::@1 rand_state#32 = phi( makechar::@1/rand_state#20 ) makechar::c#4 = phi( makechar::@1/makechar::c#3 ) - makechar::$9 = (byte)makechar::c#4 + makechar::$9 = (char)makechar::c#4 makechar::s#1 = sinetable[makechar::$9] makechar::i#1 = 0 to:makechar::@3 @@ -347,7 +347,7 @@ makechar::@7: scope:[makechar] from makechar::@6 makechar::ii#7 = phi( makechar::@6/makechar::ii#3 ) makechar::s#3 = phi( makechar::@6/makechar::s#4 ) rand_state#19 = phi( makechar::@6/rand_state#26 ) - call rand + call rand rand::return#2 = rand::return#1 to:makechar::@11 makechar::@11: scope:[makechar] from makechar::@7 @@ -373,7 +373,7 @@ makechar::@8: scope:[makechar] from makechar::@6 makechar::c#6 = phi( makechar::@6/makechar::c#8 ) makechar::$7 = makechar::c#6 << 3 makechar::$8 = makechar::$7 + makechar::i#4 - ((byte*)CHARSET)[makechar::$8] = makechar::b#3 + ((char *)CHARSET)[makechar::$8] = makechar::b#3 makechar::i#2 = ++ makechar::i#4 to:makechar::@3 makechar::@9: scope:[makechar] from makechar::@10 makechar::@11 @@ -400,7 +400,7 @@ makechar::@return: scope:[makechar] from makechar::@1 return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 print_line_cursor#29 = phi( __start::@1/print_line_cursor#21 ) print_char_cursor#47 = phi( __start::@1/print_char_cursor#40 ) @@ -409,7 +409,7 @@ main: scope:[main] from __start::@1 main::v#0 = 0 main::block#0 = 0 main::count#0 = $1f4 - call makechar + call makechar to:main::@4 main::@4: scope:[main] from main print_line_cursor#27 = phi( main/print_line_cursor#29 ) @@ -418,7 +418,7 @@ main::@4: scope:[main] from main main::count#6 = phi( main/main::count#0 ) rand_state#15 = phi( main/rand_state#5 ) rand_state#6 = rand_state#15 - call start + call start to:main::@5 main::@5: scope:[main] from main::@4 rand_state#35 = phi( main::@4/rand_state#6 ) @@ -426,12 +426,12 @@ main::@5: scope:[main] from main::@4 print_char_cursor#43 = phi( main::@4/print_char_cursor#45 ) Ticks#19 = phi( main::@4/Ticks#21 ) main::count#4 = phi( main::@4/main::count#6 ) - main::block#1 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) + main::block#1 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) main::tmp#0 = 0 main::$2 = main::block#1 & $fc main::tmp#1 = main::$2 - main::tmp#2 = main::tmp#1 | (byte)(word)SCREEN1>>$e^3 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::tmp#2 + main::tmp#2 = main::tmp#1 | (char)(unsigned int)SCREEN1>>$e^3 + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::tmp#2 main::v#1 = *VICII_MEMORY to:main::@1 main::@1: scope:[main] from main::@5 main::@7 @@ -453,8 +453,8 @@ main::@2: scope:[main] from main::@1 main::block#6 = phi( main::@1/main::block#3 ) main::v#6 = phi( main::@1/main::v#3 ) main::count#7 = phi( main::@1/main::count#2 ) - doplasma::scrn#1 = (byte*)SCREEN1 - call doplasma + doplasma::scrn#1 = (char *)SCREEN1 + call doplasma to:main::@6 main::@6: scope:[main] from main::@2 rand_state#37 = phi( main::@2/rand_state#38 ) @@ -465,8 +465,8 @@ main::@6: scope:[main] from main::@2 main::v#5 = phi( main::@2/main::v#6 ) main::count#5 = phi( main::@2/main::count#7 ) *VICII_MEMORY = PAGE1 - doplasma::scrn#2 = (byte*)SCREEN2 - call doplasma + doplasma::scrn#2 = (char *)SCREEN2 + call doplasma to:main::@7 main::@7: scope:[main] from main::@6 rand_state#36 = phi( main::@6/rand_state#37 ) @@ -487,8 +487,8 @@ main::@3: scope:[main] from main::@1 main::block#2 = phi( main::@1/main::block#3 ) main::v#2 = phi( main::@1/main::v#3 ) *VICII_MEMORY = main::v#2 - *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::block#2 - call end + *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::block#2 + call end to:main::@8 main::@8: scope:[main] from main::@3 rand_state#22 = phi( main::@3/rand_state#27 ) @@ -519,7 +519,7 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start rand_state#8 = 1 - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#6 = print_screen#0 print_char_cursor#15 = print_line_cursor#6 last_time = 0 @@ -531,7 +531,7 @@ __start::@1: scope:[__start] from __start::__init1 print_char_cursor#40 = phi( __start::__init1/print_char_cursor#15 ) Ticks#16 = phi( __start::__init1/Ticks#5 ) rand_state#23 = phi( __start::__init1/rand_state#8 ) - call main + call main main::return#2 = main::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::@1 @@ -560,425 +560,425 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const CHARSET = (byte*)$e800 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*)$dd00 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant const byte PAGE1 = (byte)(word)SCREEN1>>6&$f0|(word)CHARSET>>$a&$e -constant const byte PAGE2 = (byte)(word)SCREEN2>>6&$f0|(word)CHARSET>>$a&$e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN1 = (byte*)$e000 -constant byte* const SCREEN2 = (byte*)$e400 -word Ticks -word Ticks#0 -word Ticks#1 -word Ticks#10 -word Ticks#11 -word Ticks#12 -word Ticks#13 -word Ticks#14 -word Ticks#15 -word Ticks#16 -word Ticks#17 -word Ticks#18 -word Ticks#19 -word Ticks#2 -word Ticks#20 -word Ticks#21 -word Ticks#22 -word Ticks#23 -word Ticks#24 -word Ticks#3 -word Ticks#4 -word Ticks#5 -word Ticks#6 -word Ticks#7 -word Ticks#8 -word Ticks#9 -constant byte* const VICII_MEMORY = (byte*)$d018 +__constant char * const CHARSET = (char *)$e800 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *)$dd00 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant const char PAGE1 = (char)(unsigned int)SCREEN1>>6&$f0|(unsigned int)CHARSET>>$a&$e +__constant const char PAGE2 = (char)(unsigned int)SCREEN2>>6&$f0|(unsigned int)CHARSET>>$a&$e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN1 = (char *)$e000 +__constant char * const SCREEN2 = (char *)$e400 +unsigned int Ticks +unsigned int Ticks#0 +unsigned int Ticks#1 +unsigned int Ticks#10 +unsigned int Ticks#11 +unsigned int Ticks#12 +unsigned int Ticks#13 +unsigned int Ticks#14 +unsigned int Ticks#15 +unsigned int Ticks#16 +unsigned int Ticks#17 +unsigned int Ticks#18 +unsigned int Ticks#19 +unsigned int Ticks#2 +unsigned int Ticks#20 +unsigned int Ticks#21 +unsigned int Ticks#22 +unsigned int Ticks#23 +unsigned int Ticks#24 +unsigned int Ticks#3 +unsigned int Ticks#4 +unsigned int Ticks#5 +unsigned int Ticks#6 +unsigned int Ticks#7 +unsigned int Ticks#8 +unsigned int Ticks#9 +__constant char * const VICII_MEMORY = (char *)$d018 void __start() -constant const byte* bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } -void doplasma(byte* doplasma::scrn) -bool~ doplasma::$0 -byte~ doplasma::$1 -bool~ doplasma::$2 -byte~ doplasma::$3 -bool~ doplasma::$4 -bool~ doplasma::$5 -byte~ doplasma::$6 -byte doplasma::c1A -byte doplasma::c1A#0 -byte doplasma::c1A#1 -byte doplasma::c1A#2 -byte doplasma::c1A#3 -byte doplasma::c1A#4 -byte doplasma::c1B -byte doplasma::c1B#0 -byte doplasma::c1B#1 -byte doplasma::c1B#2 -byte doplasma::c1B#3 -byte doplasma::c1B#4 -byte doplasma::c1a -byte doplasma::c1a#0 -byte doplasma::c1a#1 -byte doplasma::c1a#2 -byte doplasma::c1a#3 -byte doplasma::c1a#4 -byte doplasma::c1b -byte doplasma::c1b#0 -byte doplasma::c1b#1 -byte doplasma::c1b#2 -byte doplasma::c1b#3 -byte doplasma::c1b#4 -byte doplasma::c2A -byte doplasma::c2A#0 -byte doplasma::c2A#1 -byte doplasma::c2A#2 -byte doplasma::c2A#3 -byte doplasma::c2A#4 -byte doplasma::c2A#5 -byte doplasma::c2A#6 -byte doplasma::c2A#7 -byte doplasma::c2B -byte doplasma::c2B#0 -byte doplasma::c2B#1 -byte doplasma::c2B#2 -byte doplasma::c2B#3 -byte doplasma::c2B#4 -byte doplasma::c2B#5 -byte doplasma::c2B#6 -byte doplasma::c2B#7 -byte doplasma::c2a -byte doplasma::c2a#0 -byte doplasma::c2a#1 -byte doplasma::c2a#2 -byte doplasma::c2a#3 -byte doplasma::c2a#4 -byte doplasma::c2b -byte doplasma::c2b#0 -byte doplasma::c2b#1 -byte doplasma::c2b#2 -byte doplasma::c2b#3 -byte doplasma::c2b#4 -byte doplasma::i -byte doplasma::i#0 -byte doplasma::i#1 -byte doplasma::i#2 -byte doplasma::i#3 -byte doplasma::i#4 -byte doplasma::ii -byte doplasma::ii#0 -byte doplasma::ii#1 -byte doplasma::ii#2 -byte doplasma::ii#3 -byte doplasma::ii#4 -byte doplasma::j -byte doplasma::j#0 -byte doplasma::j#1 -byte doplasma::j#2 -byte doplasma::j#3 -byte doplasma::j#4 -byte doplasma::jj -byte doplasma::jj#0 -byte doplasma::jj#1 -byte doplasma::jj#2 -byte doplasma::jj#3 -byte doplasma::jj#4 -byte doplasma::jj#5 -byte doplasma::jj#6 -byte doplasma::jj#7 -byte* doplasma::scrn -byte* doplasma::scrn#0 -byte* doplasma::scrn#1 -byte* doplasma::scrn#10 -byte* doplasma::scrn#11 -byte* doplasma::scrn#12 -byte* doplasma::scrn#13 -byte* doplasma::scrn#14 -byte* doplasma::scrn#2 -byte* doplasma::scrn#3 -byte* doplasma::scrn#4 -byte* doplasma::scrn#5 -byte* doplasma::scrn#6 -byte* doplasma::scrn#7 -byte* doplasma::scrn#8 -byte* doplasma::scrn#9 +__constant const char bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } +void doplasma(char *scrn) +bool doplasma::$0 +char doplasma::$1 +bool doplasma::$2 +char doplasma::$3 +bool doplasma::$4 +bool doplasma::$5 +char doplasma::$6 +char doplasma::c1A +char doplasma::c1A#0 +char doplasma::c1A#1 +char doplasma::c1A#2 +char doplasma::c1A#3 +char doplasma::c1A#4 +char doplasma::c1B +char doplasma::c1B#0 +char doplasma::c1B#1 +char doplasma::c1B#2 +char doplasma::c1B#3 +char doplasma::c1B#4 +char doplasma::c1a +char doplasma::c1a#0 +char doplasma::c1a#1 +char doplasma::c1a#2 +char doplasma::c1a#3 +char doplasma::c1a#4 +char doplasma::c1b +char doplasma::c1b#0 +char doplasma::c1b#1 +char doplasma::c1b#2 +char doplasma::c1b#3 +char doplasma::c1b#4 +char doplasma::c2A +char doplasma::c2A#0 +char doplasma::c2A#1 +char doplasma::c2A#2 +char doplasma::c2A#3 +char doplasma::c2A#4 +char doplasma::c2A#5 +char doplasma::c2A#6 +char doplasma::c2A#7 +char doplasma::c2B +char doplasma::c2B#0 +char doplasma::c2B#1 +char doplasma::c2B#2 +char doplasma::c2B#3 +char doplasma::c2B#4 +char doplasma::c2B#5 +char doplasma::c2B#6 +char doplasma::c2B#7 +char doplasma::c2a +char doplasma::c2a#0 +char doplasma::c2a#1 +char doplasma::c2a#2 +char doplasma::c2a#3 +char doplasma::c2a#4 +char doplasma::c2b +char doplasma::c2b#0 +char doplasma::c2b#1 +char doplasma::c2b#2 +char doplasma::c2b#3 +char doplasma::c2b#4 +char doplasma::i +char doplasma::i#0 +char doplasma::i#1 +char doplasma::i#2 +char doplasma::i#3 +char doplasma::i#4 +char doplasma::ii +char doplasma::ii#0 +char doplasma::ii#1 +char doplasma::ii#2 +char doplasma::ii#3 +char doplasma::ii#4 +char doplasma::j +char doplasma::j#0 +char doplasma::j#1 +char doplasma::j#2 +char doplasma::j#3 +char doplasma::j#4 +char doplasma::jj +char doplasma::jj#0 +char doplasma::jj#1 +char doplasma::jj#2 +char doplasma::jj#3 +char doplasma::jj#4 +char doplasma::jj#5 +char doplasma::jj#6 +char doplasma::jj#7 +char *doplasma::scrn +char *doplasma::scrn#0 +char *doplasma::scrn#1 +char *doplasma::scrn#10 +char *doplasma::scrn#11 +char *doplasma::scrn#12 +char *doplasma::scrn#13 +char *doplasma::scrn#14 +char *doplasma::scrn#2 +char *doplasma::scrn#3 +char *doplasma::scrn#4 +char *doplasma::scrn#5 +char *doplasma::scrn#6 +char *doplasma::scrn#7 +char *doplasma::scrn#8 +char *doplasma::scrn#9 void end() -volatile word last_time loadstore -signed word main() -number~ main::$2 -bool~ main::$6 -byte main::block -byte main::block#0 -byte main::block#1 -byte main::block#2 -byte main::block#3 -byte main::block#4 -byte main::block#5 -byte main::block#6 -word main::count -word main::count#0 -word main::count#1 -word main::count#2 -word main::count#3 -word main::count#4 -word main::count#5 -word main::count#6 -word main::count#7 -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 -byte main::tmp -byte main::tmp#0 -byte main::tmp#1 -byte main::tmp#2 -byte main::v -byte main::v#0 -byte main::v#1 -byte main::v#2 -byte main::v#3 -byte main::v#4 -byte main::v#5 -byte main::v#6 +__loadstore volatile unsigned int last_time +int main() +number main::$2 +bool main::$6 +char main::block +char main::block#0 +char main::block#1 +char main::block#2 +char main::block#3 +char main::block#4 +char main::block#5 +char main::block#6 +unsigned int main::count +unsigned int main::count#0 +unsigned int main::count#1 +unsigned int main::count#2 +unsigned int main::count#3 +unsigned int main::count#4 +unsigned int main::count#5 +unsigned int main::count#6 +unsigned int main::count#7 +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 +char main::tmp +char main::tmp#0 +char main::tmp#1 +char main::tmp#2 +char main::v +char main::v#0 +char main::v#1 +char main::v#2 +char main::v#3 +char main::v#4 +char main::v#5 +char main::v#6 void makechar() -bool~ makechar::$0 -bool~ makechar::$1 -bool~ makechar::$2 -word~ makechar::$3 -number~ makechar::$4 -bool~ makechar::$5 -bool~ makechar::$6 -word~ makechar::$7 -word~ makechar::$8 -byte~ makechar::$9 -byte makechar::b -byte makechar::b#0 -byte makechar::b#1 -byte makechar::b#2 -byte makechar::b#3 -byte makechar::b#4 -byte makechar::b#5 -byte makechar::b#6 -byte makechar::b#7 -byte makechar::b#8 -word makechar::c -word makechar::c#0 -word makechar::c#1 -word makechar::c#10 -word makechar::c#11 -word makechar::c#12 -word makechar::c#13 -word makechar::c#2 -word makechar::c#3 -word makechar::c#4 -word makechar::c#5 -word makechar::c#6 -word makechar::c#7 -word makechar::c#8 -word makechar::c#9 -byte makechar::i -byte makechar::i#0 -byte makechar::i#1 -byte makechar::i#10 -byte makechar::i#2 -byte makechar::i#3 -byte makechar::i#4 -byte makechar::i#5 -byte makechar::i#6 -byte makechar::i#7 -byte makechar::i#8 -byte makechar::i#9 -byte makechar::ii -byte makechar::ii#0 -byte makechar::ii#1 -byte makechar::ii#2 -byte makechar::ii#3 -byte makechar::ii#4 -byte makechar::ii#5 -byte makechar::ii#6 -byte makechar::ii#7 -byte makechar::s -byte makechar::s#0 -byte makechar::s#1 -byte makechar::s#2 -byte makechar::s#3 -byte makechar::s#4 -byte makechar::s#5 -byte makechar::s#6 -byte makechar::s#7 -byte makechar::s#8 -byte makechar::s#9 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +bool makechar::$0 +bool makechar::$1 +bool makechar::$2 +unsigned int makechar::$3 +number makechar::$4 +bool makechar::$5 +bool makechar::$6 +unsigned int makechar::$7 +unsigned int makechar::$8 +char makechar::$9 +char makechar::b +char makechar::b#0 +char makechar::b#1 +char makechar::b#2 +char makechar::b#3 +char makechar::b#4 +char makechar::b#5 +char makechar::b#6 +char makechar::b#7 +char makechar::b#8 +unsigned int makechar::c +unsigned int makechar::c#0 +unsigned int makechar::c#1 +unsigned int makechar::c#10 +unsigned int makechar::c#11 +unsigned int makechar::c#12 +unsigned int makechar::c#13 +unsigned int makechar::c#2 +unsigned int makechar::c#3 +unsigned int makechar::c#4 +unsigned int makechar::c#5 +unsigned int makechar::c#6 +unsigned int makechar::c#7 +unsigned int makechar::c#8 +unsigned int makechar::c#9 +char makechar::i +char makechar::i#0 +char makechar::i#1 +char makechar::i#10 +char makechar::i#2 +char makechar::i#3 +char makechar::i#4 +char makechar::i#5 +char makechar::i#6 +char makechar::i#7 +char makechar::i#8 +char makechar::i#9 +char makechar::ii +char makechar::ii#0 +char makechar::ii#1 +char makechar::ii#2 +char makechar::ii#3 +char makechar::ii#4 +char makechar::ii#5 +char makechar::ii#6 +char makechar::ii#7 +char makechar::s +char makechar::s#0 +char makechar::s#1 +char makechar::s#2 +char makechar::s#3 +char makechar::s#4 +char makechar::s#5 +char makechar::s#6 +char makechar::s#7 +char makechar::s#8 +char makechar::s#9 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -word rand() -word~ rand::$0 -word~ rand::$1 -word~ rand::$2 -word rand::return -word rand::return#0 -word rand::return#1 -word rand::return#2 -word rand::return#3 -word rand::return#4 -word rand_state -word rand_state#0 -word rand_state#1 -word rand_state#10 -word rand_state#11 -word rand_state#12 -word rand_state#13 -word rand_state#14 -word rand_state#15 -word rand_state#16 -word rand_state#17 -word rand_state#18 -word rand_state#19 -word rand_state#2 -word rand_state#20 -word rand_state#21 -word rand_state#22 -word rand_state#23 -word rand_state#24 -word rand_state#25 -word rand_state#26 -word rand_state#27 -word rand_state#28 -word rand_state#29 -word rand_state#3 -word rand_state#30 -word rand_state#31 -word rand_state#32 -word rand_state#33 -word rand_state#34 -word rand_state#35 -word rand_state#36 -word rand_state#37 -word rand_state#38 -word rand_state#4 -word rand_state#5 -word rand_state#6 -word rand_state#7 -word rand_state#8 -word rand_state#9 -constant const byte* sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +unsigned int rand() +unsigned int rand::$0 +unsigned int rand::$1 +unsigned int rand::$2 +unsigned int rand::return +unsigned int rand::return#0 +unsigned int rand::return#1 +unsigned int rand::return#2 +unsigned int rand::return#3 +unsigned int rand::return#4 +unsigned int rand_state +unsigned int rand_state#0 +unsigned int rand_state#1 +unsigned int rand_state#10 +unsigned int rand_state#11 +unsigned int rand_state#12 +unsigned int rand_state#13 +unsigned int rand_state#14 +unsigned int rand_state#15 +unsigned int rand_state#16 +unsigned int rand_state#17 +unsigned int rand_state#18 +unsigned int rand_state#19 +unsigned int rand_state#2 +unsigned int rand_state#20 +unsigned int rand_state#21 +unsigned int rand_state#22 +unsigned int rand_state#23 +unsigned int rand_state#24 +unsigned int rand_state#25 +unsigned int rand_state#26 +unsigned int rand_state#27 +unsigned int rand_state#28 +unsigned int rand_state#29 +unsigned int rand_state#3 +unsigned int rand_state#30 +unsigned int rand_state#31 +unsigned int rand_state#32 +unsigned int rand_state#33 +unsigned int rand_state#34 +unsigned int rand_state#35 +unsigned int rand_state#36 +unsigned int rand_state#37 +unsigned int rand_state#38 +unsigned int rand_state#4 +unsigned int rand_state#5 +unsigned int rand_state#6 +unsigned int rand_state#7 +unsigned int rand_state#8 +unsigned int rand_state#9 +__constant const char sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } void start() -constant word* const start::LAST_TIME = &last_time -constant byte* xbuf[$28] = { fill( $28, 0) } -constant byte* ybuf[$19] = { fill( $19, 0) } +__constant unsigned int * const start::LAST_TIME = &last_time +__constant char xbuf[$28] = { fill( $28, 0) } +__constant char ybuf[$19] = { fill( $19, 0) } Adding number conversion cast (unumber) $f0 in Adding number conversion cast (unumber) 6 in @@ -1024,8 +1024,8 @@ Adding number conversion cast (unumber) makechar::$4 in makechar::$4 = makechar: Adding number conversion cast (unumber) 3 in makechar::$7 = makechar::c#6 << 3 Adding number conversion cast (unumber) $fc in main::$2 = main::block#1 & $fc Adding number conversion cast (unumber) main::$2 in main::$2 = main::block#1 & (unumber)$fc -Adding number conversion cast (unumber) 3 in main::tmp#2 = main::tmp#1 | (byte)(word)SCREEN1>>$e^3 -Adding number conversion cast (unumber) $e in main::tmp#2 = main::tmp#1 | (byte)(word)SCREEN1>>$e^(unumber)3 +Adding number conversion cast (unumber) 3 in main::tmp#2 = main::tmp#1 | (char)(unsigned int)SCREEN1>>$e^3 +Adding number conversion cast (unumber) $e in main::tmp#2 = main::tmp#1 | (char)(unsigned int)SCREEN1>>$e^(unumber)3 Adding number conversion cast (unumber) 0 in main::$6 = 0 != main::count#2 Adding number conversion cast (snumber) 0 in main::return#0 = 0 Successful SSA optimization PassNAddNumberTypeConversions @@ -1039,11 +1039,11 @@ Inlining cast makechar::b#1 = (unumber)0 Inlining cast makechar::ii#1 = (unumber)0 Inlining cast main::return#0 = (snumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56576 -Simplifying constant pointer cast (byte*) 57344 -Simplifying constant pointer cast (byte*) 58368 -Simplifying constant pointer cast (byte*) 59392 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56576 +Simplifying constant pointer cast (char *) 57344 +Simplifying constant pointer cast (char *) 58368 +Simplifying constant pointer cast (char *) 59392 Simplifying constant integer cast 6 Simplifying constant integer cast $f0 Simplifying constant integer cast $a @@ -1092,57 +1092,57 @@ Simplifying constant integer cast 0 Simplifying constant integer cast SCREEN1 Simplifying constant integer cast SCREEN2 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $f0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $fc -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $f0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $fc +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f -Inferred type updated to byte in makechar::$4 = makechar::$3 & $ff -Inferred type updated to byte in main::$2 = main::block#1 & $fc +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in makechar::$4 = makechar::$3 & $ff +Inferred type updated to char in main::$2 = main::block#1 & $fc Inversing boolean not [172] makechar::$6 = makechar::$4 <= makechar::s#2 from [171] makechar::$5 = makechar::$4 > makechar::s#2 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#10 print_char_cursor#0 print_line_cursor#11 print_char_cursor#19 print_line_cursor#1 print_char_cursor#1 @@ -1326,23 +1326,23 @@ Constant doplasma::scrn#1 = SCREEN1 Constant doplasma::scrn#2 = SCREEN2 Constant main::return#0 = 0 Constant rand_state#23 = 1 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Constant Ticks#16 = 0 Successful SSA optimization Pass2ConstantIdentification Constant main::return#2 = main::return#0 Successful SSA optimization Pass2ConstantIdentification De-inlining pointer[w] to *(pointer+w) [130] CHARSET[makechar::$8] = makechar::b#3 Successful SSA optimization Pass2DeInlineWordDerefIdx -Simplifying constant evaluating to zero (byte)(word)SCREEN1>>$e^3 in [146] main::tmp#2 = main::tmp#1 | (byte)(word)SCREEN1>>$e^3 +Simplifying constant evaluating to zero (char)(unsigned int)SCREEN1>>$e^3 in [146] main::tmp#2 = main::tmp#1 | (char)(unsigned int)SCREEN1>>$e^3 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero 3 in [72] doplasma::c1A#1 = doplasma::c1a#1 + 3 Simplifying expression containing zero 5 in [73] doplasma::c1B#1 = doplasma::c1b#1 - 5 Simplifying expression containing zero 2 in [83] doplasma::c2A#1 = doplasma::c2A#0 + 2 Simplifying expression containing zero 3 in [84] doplasma::c2B#1 = doplasma::c2B#0 - 3 -Simplifying expression containing zero (byte*)CIA2 in [143] main::block#1 = *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) +Simplifying expression containing zero (char *)CIA2 in [143] main::block#1 = *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) Simplifying expression containing zero main::tmp#1 in [146] main::tmp#2 = main::tmp#1 | 0 -Simplifying expression containing zero (byte*)CIA2 in [147] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::tmp#2 -Simplifying expression containing zero (byte*)CIA2 in [160] *((byte*)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::block#1 +Simplifying expression containing zero (char *)CIA2 in [147] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::tmp#2 +Simplifying expression containing zero (char *)CIA2 in [160] *((char *)CIA2+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = main::block#1 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable doplasma::c1A#1 and assignment [47] doplasma::c1A#1 = 3 Eliminating unused variable doplasma::c1B#1 and assignment [48] doplasma::c1B#1 = 5 @@ -1370,8 +1370,8 @@ Eliminating unused constant Ticks#16 Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant main::return#0 Successful SSA optimization PassNEliminateUnusedVars -Simplifying constant integer cast (word)SCREEN1>>6&$f0|(word)CHARSET>>$a&$e -Simplifying constant integer cast (word)SCREEN2>>6&$f0|(word)CHARSET>>$a&$e +Simplifying constant integer cast (unsigned int)SCREEN1>>6&$f0|(unsigned int)CHARSET>>$a&$e +Simplifying constant integer cast (unsigned int)SCREEN2>>6&$f0|(unsigned int)CHARSET>>$a&$e Successful SSA optimization PassNCastSimplification Alias main::tmp#1 = main::tmp#2 Successful SSA optimization Pass2AliasElimination @@ -1404,15 +1404,15 @@ Constant inlined doplasma::c1b#1 = 0 Constant inlined makechar::i#1 = 0 Constant inlined rand_state#23 = 1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting makechar::@12(between makechar::@11 and makechar::@9) @@ -1519,25 +1519,25 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 [5] phi() - [6] call makechar + [6] call makechar to:main::@4 main::@4: scope:[main] from main [7] phi() - [8] call start + [8] call start to:main::@5 main::@5: scope:[main] from main::@4 - [9] main::block#1 = *((byte*)CIA2) + [9] main::block#1 = *((char *)CIA2) [10] main::tmp#1 = main::block#1 & $fc - [11] *((byte*)CIA2) = main::tmp#1 + [11] *((char *)CIA2) = main::tmp#1 [12] main::v#1 = *VICII_MEMORY to:main::@1 main::@1: scope:[main] from main::@5 main::@7 @@ -1546,19 +1546,19 @@ main::@1: scope:[main] from main::@5 main::@7 to:main::@3 main::@3: scope:[main] from main::@1 [15] *VICII_MEMORY = main::v#1 - [16] *((byte*)CIA2) = main::block#1 - [17] call end + [16] *((char *)CIA2) = main::block#1 + [17] call end to:main::@return main::@return: scope:[main] from main::@3 [18] return to:@return main::@2: scope:[main] from main::@1 [19] phi() - [20] call doplasma + [20] call doplasma to:main::@6 main::@6: scope:[main] from main::@2 [21] *VICII_MEMORY = PAGE1 - [22] call doplasma + [22] call doplasma to:main::@7 main::@7: scope:[main] from main::@6 [23] *VICII_MEMORY = PAGE2 @@ -1578,7 +1578,7 @@ makechar::@return: scope:[makechar] from makechar::@1 [28] return to:@return makechar::@2: scope:[makechar] from makechar::@1 - [29] makechar::$9 = (byte)makechar::c#3 + [29] makechar::$9 = (char)makechar::c#3 [30] makechar::s#1 = sinetable[makechar::$9] to:makechar::@3 makechar::@3: scope:[makechar] from makechar::@2 makechar::@7 @@ -1604,7 +1604,7 @@ makechar::@7: scope:[makechar] from makechar::@5 to:makechar::@3 makechar::@6: scope:[makechar] from makechar::@5 [41] phi() - [42] call rand + [42] call rand [43] rand::return#2 = rand::return#0 to:makechar::@10 makechar::@10: scope:[makechar] from makechar::@6 @@ -1631,23 +1631,23 @@ start::@return: scope:[start] from start void end() end: scope:[end] from main::@3 [52] Ticks#0 = last_time - [53] call start + [53] call start to:end::@1 end::@1: scope:[end] from end [54] last_time = last_time - Ticks#0 [55] Ticks#1 = last_time [56] print_uint::w#0 = Ticks#1 - [57] call print_uint + [57] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 [58] phi() - [59] call print_ln + [59] call print_ln to:end::@return end::@return: scope:[end] from end::@2 [60] return to:@return -void doplasma(byte* doplasma::scrn) +void doplasma(char *scrn) doplasma: scope:[doplasma] from main::@2 main::@6 [61] doplasma::scrn#13 = phi( main::@2/SCREEN1, main::@6/SCREEN2 ) to:doplasma::@1 @@ -1699,7 +1699,7 @@ doplasma::@2: scope:[doplasma] from doplasma::@1 [85] doplasma::ii#2 = ++ doplasma::ii#3 to:doplasma::@1 -word rand() +unsigned int rand() rand: scope:[rand] from makechar::@6 [86] rand::$0 = rand_state#19 << 7 [87] rand_state#0 = rand_state#19 ^ rand::$0 @@ -1713,14 +1713,14 @@ rand::@return: scope:[rand] from rand [93] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 [94] print_uchar::b#0 = byte1 print_uint::w#0 - [95] call print_uchar + [95] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [96] print_uchar::b#1 = byte0 print_uint::w#0 - [97] call print_uchar + [97] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [98] return @@ -1739,24 +1739,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [103] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [104] print_char_cursor#37 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#27 ) [104] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [105] print_uchar::$0 = print_uchar::b#2 >> 4 [106] print_char::ch#0 = print_hextab[print_uchar::$0] - [107] call print_char + [107] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [108] print_uchar::$2 = print_uchar::b#2 & $f [109] print_char::ch#1 = print_hextab[print_uchar::$2] - [110] call print_char + [110] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [111] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [112] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) [112] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -1769,119 +1769,119 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -word Ticks -word Ticks#0 101.0 -word Ticks#1 202.0 +unsigned int Ticks +unsigned int Ticks#0 // 101.0 +unsigned int Ticks#1 // 202.0 void __start() -void doplasma(byte* doplasma::scrn) -byte~ doplasma::$1 200002.0 -byte~ doplasma::$3 200002.0 -byte~ doplasma::$6 2000002.0 -byte doplasma::c1A -byte doplasma::c1B -byte doplasma::c1a -byte doplasma::c1a#2 66667.33333333333 -byte doplasma::c1a#3 75000.75 -byte doplasma::c1b -byte doplasma::c1b#2 100001.0 -byte doplasma::c1b#3 60000.600000000006 -byte doplasma::c2A -byte doplasma::c2B -byte doplasma::c2a -byte doplasma::c2a#2 66667.33333333333 -byte doplasma::c2a#3 75000.75 -byte doplasma::c2b -byte doplasma::c2b#2 100001.0 -byte doplasma::c2b#3 60000.600000000006 -byte doplasma::i -byte doplasma::i#2 200002.0 -byte doplasma::i#3 66667.33333333333 -byte doplasma::ii -byte doplasma::ii#2 200002.0 -byte doplasma::ii#3 66667.33333333333 -byte doplasma::j -byte doplasma::j#2 2000002.0 -byte doplasma::j#3 1250001.25 -byte doplasma::jj -byte doplasma::jj#2 200002.0 -byte doplasma::jj#3 162500.5 -byte* doplasma::scrn -byte* doplasma::scrn#0 100001.0 -byte* doplasma::scrn#13 6666.733333333334 -byte* doplasma::scrn#6 185714.85714285713 +void doplasma(char *scrn) +char doplasma::$1 // 200002.0 +char doplasma::$3 // 200002.0 +char doplasma::$6 // 2000002.0 +char doplasma::c1A +char doplasma::c1B +char doplasma::c1a +char doplasma::c1a#2 // 66667.33333333333 +char doplasma::c1a#3 // 75000.75 +char doplasma::c1b +char doplasma::c1b#2 // 100001.0 +char doplasma::c1b#3 // 60000.600000000006 +char doplasma::c2A +char doplasma::c2B +char doplasma::c2a +char doplasma::c2a#2 // 66667.33333333333 +char doplasma::c2a#3 // 75000.75 +char doplasma::c2b +char doplasma::c2b#2 // 100001.0 +char doplasma::c2b#3 // 60000.600000000006 +char doplasma::i +char doplasma::i#2 // 200002.0 +char doplasma::i#3 // 66667.33333333333 +char doplasma::ii +char doplasma::ii#2 // 200002.0 +char doplasma::ii#3 // 66667.33333333333 +char doplasma::j +char doplasma::j#2 // 2000002.0 +char doplasma::j#3 // 1250001.25 +char doplasma::jj +char doplasma::jj#2 // 200002.0 +char doplasma::jj#3 // 162500.5 +char *doplasma::scrn +char *doplasma::scrn#0 // 100001.0 +char *doplasma::scrn#13 // 6666.733333333334 +char *doplasma::scrn#6 // 185714.85714285713 void end() -volatile word last_time loadstore 17.652173913043477 -signed word main() -byte main::block -byte main::block#1 2.5384615384615383 -word main::count -word main::count#1 202.0 -word main::count#2 43.285714285714285 -signed word main::return -byte main::tmp -byte main::tmp#1 22.0 -byte main::v -byte main::v#1 2.4444444444444446 +__loadstore volatile unsigned int last_time // 17.652173913043477 +int main() +char main::block +char main::block#1 // 2.5384615384615383 +unsigned int main::count +unsigned int main::count#1 // 202.0 +unsigned int main::count#2 // 43.285714285714285 +int main::return +char main::tmp +char main::tmp#1 // 22.0 +char main::v +char main::v#1 // 2.4444444444444446 void makechar() -byte*~ makechar::$10 20002.0 -word~ makechar::$3 200002.0 -byte~ makechar::$4 200002.0 -word~ makechar::$7 20002.0 -word~ makechar::$8 20002.0 -byte~ makechar::$9 2002.0 -byte makechar::b -byte makechar::b#2 200002.0 -byte makechar::b#3 28182.181818181816 -byte makechar::b#7 150001.5 -word makechar::c -word makechar::c#2 2002.0 -word makechar::c#3 591.090909090909 -byte makechar::i -byte makechar::i#2 20002.0 -byte makechar::i#3 2353.176470588235 -byte makechar::ii -byte makechar::ii#2 200002.0 -byte makechar::ii#3 40000.4 -byte makechar::s -byte makechar::s#1 5315.894736842105 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#1 20002.0 -byte print_char::ch#2 120003.0 -byte* print_char_cursor -byte* print_char_cursor#26 110002.0 -byte* print_char_cursor#27 7117.882352941177 -byte* print_char_cursor#37 3667.333333333333 -byte* print_line_cursor -byte* print_line_cursor#0 15001.5 -byte* print_line_cursor#9 20002.0 +char *makechar::$10 // 20002.0 +unsigned int makechar::$3 // 200002.0 +char makechar::$4 // 200002.0 +unsigned int makechar::$7 // 20002.0 +unsigned int makechar::$8 // 20002.0 +char makechar::$9 // 2002.0 +char makechar::b +char makechar::b#2 // 200002.0 +char makechar::b#3 // 28182.181818181816 +char makechar::b#7 // 150001.5 +unsigned int makechar::c +unsigned int makechar::c#2 // 2002.0 +unsigned int makechar::c#3 // 591.090909090909 +char makechar::i +char makechar::i#2 // 20002.0 +char makechar::i#3 // 2353.176470588235 +char makechar::ii +char makechar::ii#2 // 200002.0 +char makechar::ii#3 // 40000.4 +char makechar::s +char makechar::s#1 // 5315.894736842105 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#1 // 20002.0 +char print_char::ch#2 // 120003.0 +char *print_char_cursor +char *print_char_cursor#26 // 110002.0 +char *print_char_cursor#27 // 7117.882352941177 +char *print_char_cursor#37 // 3667.333333333333 +char *print_line_cursor +char *print_line_cursor#0 // 15001.5 +char *print_line_cursor#9 // 20002.0 void print_ln() -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 -word rand() -word~ rand::$0 2000002.0 -word~ rand::$1 2000002.0 -word~ rand::$2 2000002.0 -word rand::return -word rand::return#0 366667.3333333334 -word rand::return#2 200002.0 -word rand_state -word rand_state#0 1500001.5 -word rand_state#1 1500001.5 -word rand_state#12 190909.36363636365 -word rand_state#14 500.5 -word rand_state#19 235556.11111111112 -word rand_state#25 7334.666666666666 +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 +unsigned int rand() +unsigned int rand::$0 // 2000002.0 +unsigned int rand::$1 // 2000002.0 +unsigned int rand::$2 // 2000002.0 +unsigned int rand::return +unsigned int rand::return#0 // 366667.3333333334 +unsigned int rand::return#2 // 200002.0 +unsigned int rand_state +unsigned int rand_state#0 // 1500001.5 +unsigned int rand_state#1 // 1500001.5 +unsigned int rand_state#12 // 190909.36363636365 +unsigned int rand_state#14 // 500.5 +unsigned int rand_state#19 // 235556.11111111112 +unsigned int rand_state#25 // 7334.666666666666 void start() Initial phi equivalence classes @@ -2315,7 +2315,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -2330,7 +2330,7 @@ main: { .label block = $c .label v = $d .label count = 2 - // [6] call makechar + // [6] call makechar // [25] phi from main to makechar [phi:main->makechar] makechar_from_main: jsr makechar @@ -2339,18 +2339,18 @@ main: { jmp __b4 // main::@4 __b4: - // [8] call start + // [8] call start jsr start jmp __b5 // main::@5 __b5: - // [9] main::block#1 = *((byte*)CIA2) -- vbuz1=_deref_pbuc1 + // [9] main::block#1 = *((char *)CIA2) -- vbuz1=_deref_pbuc1 lda CIA2 sta.z block // [10] main::tmp#1 = main::block#1 & $fc -- vbuaa=vbuz1_band_vbuc1 lda #$fc and.z block - // [11] *((byte*)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa + // [11] *((char *)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa sta CIA2 // [12] main::v#1 = *VICII_MEMORY -- vbuz1=_deref_pbuc1 lda VICII_MEMORY @@ -2376,10 +2376,10 @@ main: { // [15] *VICII_MEMORY = main::v#1 -- _deref_pbuc1=vbuz1 lda.z v sta VICII_MEMORY - // [16] *((byte*)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 + // [16] *((char *)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 lda.z block sta CIA2 - // [17] call end + // [17] call end /* Reset screen colors */ jsr end jmp __breturn @@ -2392,7 +2392,7 @@ main: { jmp __b2 // main::@2 __b2: - // [20] call doplasma + // [20] call doplasma /* Build page 1, then make it visible */ // [61] phi from main::@2 to doplasma [phi:main::@2->doplasma] doplasma_from___b2: @@ -2408,7 +2408,7 @@ main: { // [21] *VICII_MEMORY = PAGE1 -- _deref_pbuc1=vbuc2 lda #PAGE1 sta VICII_MEMORY - // [22] call doplasma + // [22] call doplasma /* Build page 2, then make it visible */ // [61] phi from main::@6 to doplasma [phi:main::@6->doplasma] doplasma_from___b6: @@ -2476,7 +2476,7 @@ makechar: { rts // makechar::@2 __b2: - // [29] makechar::$9 = (byte)makechar::c#3 -- vbuxx=_byte_vwuz1 + // [29] makechar::$9 = (char)makechar::c#3 -- vbuxx=_byte_vwuz1 ldx.z c // [30] makechar::s#1 = sinetable[makechar::$9] -- vbuz1=pbuc1_derefidx_vbuxx lda sinetable,x @@ -2566,7 +2566,7 @@ makechar: { jmp __b6 // makechar::@6 __b6: - // [42] call rand + // [42] call rand jsr rand // [43] rand::return#2 = rand::return#0 jmp __b10 @@ -2624,7 +2624,7 @@ end: { sta.z Ticks lda.z last_time+1 sta.z Ticks+1 - // [53] call start + // [53] call start jsr start jmp __b1 // end::@1 @@ -2643,14 +2643,14 @@ end: { lda.z last_time+1 sta.z Ticks_1+1 // [56] print_uint::w#0 = Ticks#1 - // [57] call print_uint + // [57] call print_uint jsr print_uint // [58] phi from end::@1 to end::@2 [phi:end::@1->end::@2] __b2_from___b1: jmp __b2 // end::@2 __b2: - // [59] call print_ln + // [59] call print_ln // [99] phi from end::@2 to print_ln [phi:end::@2->print_ln] print_ln_from___b2: jsr print_ln @@ -2661,7 +2661,7 @@ end: { rts } // doplasma -// doplasma(byte* zp(8) scrn) +// void doplasma(__zp(8) char *scrn) doplasma: { .const c2A = 0 .const c2B = 0 @@ -2885,12 +2885,12 @@ rand: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($16) w) +// void print_uint(__zp($16) unsigned int w) print_uint: { .label w = $16 // [94] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [95] call print_uchar + // [95] call print_uchar // [104] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [104] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 @@ -2905,7 +2905,7 @@ print_uint: { __b1: // [96] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [97] call print_uchar + // [97] call print_uchar // [104] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [104] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -2959,7 +2959,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [105] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -2970,7 +2970,7 @@ print_uchar: { // [106] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [107] call print_char + // [107] call print_char // Table of hexadecimal digits // [112] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -2985,7 +2985,7 @@ print_uchar: { axs #0 // [109] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [110] call print_char + // [110] call print_char // [112] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [112] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -2999,7 +2999,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [113] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 @@ -3145,140 +3145,140 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const CHARSET = (byte*) 59392 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant const byte PAGE1 = (word)SCREEN1>>6&$f0|(word)CHARSET>>$a&$e -constant const byte PAGE2 = (word)SCREEN2>>6&$f0|(word)CHARSET>>$a&$e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN1 = (byte*) 57344 -constant byte* const SCREEN2 = (byte*) 58368 -word Ticks -word Ticks#0 Ticks zp[2]:20 101.0 -word Ticks#1 Ticks_1 zp[2]:22 202.0 -constant byte* const VICII_MEMORY = (byte*) 53272 +__constant char * const CHARSET = (char *) 59392 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant const char PAGE1 = (unsigned int)SCREEN1>>6&$f0|(unsigned int)CHARSET>>$a&$e +__constant const char PAGE2 = (unsigned int)SCREEN2>>6&$f0|(unsigned int)CHARSET>>$a&$e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN1 = (char *) 57344 +__constant char * const SCREEN2 = (char *) 58368 +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:20 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:22 202.0 +__constant char * const VICII_MEMORY = (char *) 53272 void __start() -constant const byte* bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } -void doplasma(byte* doplasma::scrn) -byte~ doplasma::$1 reg byte a 200002.0 -byte~ doplasma::$3 reg byte a 200002.0 -byte~ doplasma::$6 reg byte a 2000002.0 -byte doplasma::c1A -byte doplasma::c1B -byte doplasma::c1a -byte doplasma::c1a#2 c1a zp[1]:14 66667.33333333333 -byte doplasma::c1a#3 c1a zp[1]:14 75000.75 -byte doplasma::c1b -byte doplasma::c1b#2 c1b zp[1]:19 100001.0 -byte doplasma::c1b#3 c1b zp[1]:19 60000.600000000006 -byte doplasma::c2A -constant byte doplasma::c2A#0 c2A = 0 -byte doplasma::c2B -constant byte doplasma::c2B#0 c2B = 0 -byte doplasma::c2a -byte doplasma::c2a#2 c2a zp[1]:6 66667.33333333333 -byte doplasma::c2a#3 c2a zp[1]:6 75000.75 -byte doplasma::c2b -byte doplasma::c2b#2 c2b zp[1]:7 100001.0 -byte doplasma::c2b#3 c2b zp[1]:7 60000.600000000006 -byte doplasma::i -byte doplasma::i#2 i zp[1]:5 200002.0 -byte doplasma::i#3 i zp[1]:5 66667.33333333333 -byte doplasma::ii -byte doplasma::ii#2 ii zp[1]:4 200002.0 -byte doplasma::ii#3 ii zp[1]:4 66667.33333333333 -byte doplasma::j -byte doplasma::j#2 reg byte y 2000002.0 -byte doplasma::j#3 reg byte y 1250001.25 -byte doplasma::jj -byte doplasma::jj#2 reg byte x 200002.0 -byte doplasma::jj#3 reg byte x 162500.5 -byte* doplasma::scrn -byte* doplasma::scrn#0 scrn zp[2]:8 100001.0 -byte* doplasma::scrn#13 scrn zp[2]:8 6666.733333333334 -byte* doplasma::scrn#6 scrn zp[2]:8 185714.85714285713 +__constant const char bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } +void doplasma(char *scrn) +char doplasma::$1 // reg byte a 200002.0 +char doplasma::$3 // reg byte a 200002.0 +char doplasma::$6 // reg byte a 2000002.0 +char doplasma::c1A +char doplasma::c1B +char doplasma::c1a +char doplasma::c1a#2 // c1a zp[1]:14 66667.33333333333 +char doplasma::c1a#3 // c1a zp[1]:14 75000.75 +char doplasma::c1b +char doplasma::c1b#2 // c1b zp[1]:19 100001.0 +char doplasma::c1b#3 // c1b zp[1]:19 60000.600000000006 +char doplasma::c2A +__constant char doplasma::c2A#0 = 0 // c2A +char doplasma::c2B +__constant char doplasma::c2B#0 = 0 // c2B +char doplasma::c2a +char doplasma::c2a#2 // c2a zp[1]:6 66667.33333333333 +char doplasma::c2a#3 // c2a zp[1]:6 75000.75 +char doplasma::c2b +char doplasma::c2b#2 // c2b zp[1]:7 100001.0 +char doplasma::c2b#3 // c2b zp[1]:7 60000.600000000006 +char doplasma::i +char doplasma::i#2 // i zp[1]:5 200002.0 +char doplasma::i#3 // i zp[1]:5 66667.33333333333 +char doplasma::ii +char doplasma::ii#2 // ii zp[1]:4 200002.0 +char doplasma::ii#3 // ii zp[1]:4 66667.33333333333 +char doplasma::j +char doplasma::j#2 // reg byte y 2000002.0 +char doplasma::j#3 // reg byte y 1250001.25 +char doplasma::jj +char doplasma::jj#2 // reg byte x 200002.0 +char doplasma::jj#3 // reg byte x 162500.5 +char *doplasma::scrn +char *doplasma::scrn#0 // scrn zp[2]:8 100001.0 +char *doplasma::scrn#13 // scrn zp[2]:8 6666.733333333334 +char *doplasma::scrn#6 // scrn zp[2]:8 185714.85714285713 void end() -volatile word last_time loadstore zp[2]:10 17.652173913043477 -signed word main() -byte main::block -byte main::block#1 block zp[1]:12 2.5384615384615383 -word main::count -word main::count#1 count zp[2]:2 202.0 -word main::count#2 count zp[2]:2 43.285714285714285 -signed word main::return -byte main::tmp -byte main::tmp#1 reg byte a 22.0 -byte main::v -byte main::v#1 v zp[1]:13 2.4444444444444446 +__loadstore volatile unsigned int last_time // zp[2]:10 17.652173913043477 +int main() +char main::block +char main::block#1 // block zp[1]:12 2.5384615384615383 +unsigned int main::count +unsigned int main::count#1 // count zp[2]:2 202.0 +unsigned int main::count#2 // count zp[2]:2 43.285714285714285 +int main::return +char main::tmp +char main::tmp#1 // reg byte a 22.0 +char main::v +char main::v#1 // v zp[1]:13 2.4444444444444446 void makechar() -byte*~ makechar::$10 zp[2]:15 20002.0 -word~ makechar::$3 zp[2]:17 200002.0 -byte~ makechar::$4 zp[1]:19 200002.0 -word~ makechar::$7 zp[2]:15 20002.0 -word~ makechar::$8 zp[2]:15 20002.0 -byte~ makechar::$9 reg byte x 2002.0 -byte makechar::b -byte makechar::b#2 reg byte y 200002.0 -byte makechar::b#3 reg byte y 28182.181818181816 -byte makechar::b#7 reg byte y 150001.5 -word makechar::c -word makechar::c#2 c zp[2]:8 2002.0 -word makechar::c#3 c zp[2]:8 591.090909090909 -byte makechar::i -byte makechar::i#2 i zp[1]:4 20002.0 -byte makechar::i#3 i zp[1]:4 2353.176470588235 -byte makechar::ii -byte makechar::ii#2 reg byte x 200002.0 -byte makechar::ii#3 reg byte x 40000.4 -byte makechar::s -byte makechar::s#1 s zp[1]:14 5315.894736842105 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#26 print_char_cursor zp[2]:17 110002.0 -byte* print_char_cursor#27 print_char_cursor zp[2]:17 7117.882352941177 -byte* print_char_cursor#37 print_char_cursor zp[2]:17 3667.333333333333 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:15 15001.5 -byte* print_line_cursor#9 print_line_cursor zp[2]:15 20002.0 +char *makechar::$10 // zp[2]:15 20002.0 +unsigned int makechar::$3 // zp[2]:17 200002.0 +char makechar::$4 // zp[1]:19 200002.0 +unsigned int makechar::$7 // zp[2]:15 20002.0 +unsigned int makechar::$8 // zp[2]:15 20002.0 +char makechar::$9 // reg byte x 2002.0 +char makechar::b +char makechar::b#2 // reg byte y 200002.0 +char makechar::b#3 // reg byte y 28182.181818181816 +char makechar::b#7 // reg byte y 150001.5 +unsigned int makechar::c +unsigned int makechar::c#2 // c zp[2]:8 2002.0 +unsigned int makechar::c#3 // c zp[2]:8 591.090909090909 +char makechar::i +char makechar::i#2 // i zp[1]:4 20002.0 +char makechar::i#3 // i zp[1]:4 2353.176470588235 +char makechar::ii +char makechar::ii#2 // reg byte x 200002.0 +char makechar::ii#3 // reg byte x 40000.4 +char makechar::s +char makechar::s#1 // s zp[1]:14 5315.894736842105 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#26 // print_char_cursor zp[2]:17 110002.0 +char *print_char_cursor#27 // print_char_cursor zp[2]:17 7117.882352941177 +char *print_char_cursor#37 // print_char_cursor zp[2]:17 3667.333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:15 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:15 20002.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:22 701.0 -word rand() -word~ rand::$0 zp[2]:20 2000002.0 -word~ rand::$1 zp[2]:22 2000002.0 -word~ rand::$2 zp[2]:24 2000002.0 -word rand::return -word rand::return#0 return zp[2]:17 366667.3333333334 -word rand::return#2 return zp[2]:17 200002.0 -word rand_state -word rand_state#0 rand_state zp[2]:2 1500001.5 -word rand_state#1 rand_state zp[2]:2 1500001.5 -word rand_state#12 rand_state zp[2]:2 190909.36363636365 -word rand_state#14 rand_state zp[2]:2 500.5 -word rand_state#19 rand_state zp[2]:2 235556.11111111112 -word rand_state#25 rand_state zp[2]:2 7334.666666666666 -constant const byte* sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:22 701.0 +unsigned int rand() +unsigned int rand::$0 // zp[2]:20 2000002.0 +unsigned int rand::$1 // zp[2]:22 2000002.0 +unsigned int rand::$2 // zp[2]:24 2000002.0 +unsigned int rand::return +unsigned int rand::return#0 // return zp[2]:17 366667.3333333334 +unsigned int rand::return#2 // return zp[2]:17 200002.0 +unsigned int rand_state +unsigned int rand_state#0 // rand_state zp[2]:2 1500001.5 +unsigned int rand_state#1 // rand_state zp[2]:2 1500001.5 +unsigned int rand_state#12 // rand_state zp[2]:2 190909.36363636365 +unsigned int rand_state#14 // rand_state zp[2]:2 500.5 +unsigned int rand_state#19 // rand_state zp[2]:2 235556.11111111112 +unsigned int rand_state#25 // rand_state zp[2]:2 7334.666666666666 +__constant const char sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } void start() -constant word* const start::LAST_TIME = &last_time -constant byte* xbuf[$28] = { fill( $28, 0) } -constant byte* ybuf[$19] = { fill( $19, 0) } +__constant unsigned int * const start::LAST_TIME = &last_time +__constant char xbuf[$28] = { fill( $28, 0) } +__constant char ybuf[$19] = { fill( $19, 0) } zp[2]:2 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 rand_state#1 main::count#2 main::count#1 ] reg byte x [ makechar::ii#3 makechar::ii#2 ] @@ -3361,7 +3361,7 @@ __start: { sta.z last_time+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -3374,17 +3374,17 @@ main: { .label v = $d .label count = 2 // makechar() - // [6] call makechar + // [6] call makechar // [25] phi from main to makechar [phi:main->makechar] jsr makechar // [7] phi from main to main::@4 [phi:main->main::@4] // main::@4 // start() - // [8] call start + // [8] call start jsr start // main::@5 // block = CIA2->PORT_A - // [9] main::block#1 = *((byte*)CIA2) -- vbuz1=_deref_pbuc1 + // [9] main::block#1 = *((char *)CIA2) -- vbuz1=_deref_pbuc1 lda CIA2 sta.z block // tmp = block & 0xFC @@ -3392,7 +3392,7 @@ main: { lda #$fc and.z block // CIA2->PORT_A = tmp - // [11] *((byte*)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa + // [11] *((char *)CIA2) = main::tmp#1 -- _deref_pbuc1=vbuaa sta CIA2 // v = *VICII_MEMORY // [12] main::v#1 = *VICII_MEMORY -- vbuz1=_deref_pbuc1 @@ -3418,11 +3418,11 @@ main: { lda.z v sta VICII_MEMORY // CIA2->PORT_A = block - // [16] *((byte*)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 + // [16] *((char *)CIA2) = main::block#1 -- _deref_pbuc1=vbuz1 lda.z block sta CIA2 // end() - // [17] call end + // [17] call end /* Reset screen colors */ jsr end // main::@return @@ -3433,7 +3433,7 @@ main: { // main::@2 __b2: // doplasma ((char*)SCREEN1) - // [20] call doplasma + // [20] call doplasma /* Build page 1, then make it visible */ // [61] phi from main::@2 to doplasma [phi:main::@2->doplasma] // [61] phi doplasma::scrn#13 = SCREEN1 [phi:main::@2->doplasma#0] -- pbuz1=pbuc1 @@ -3448,7 +3448,7 @@ main: { lda #PAGE1 sta VICII_MEMORY // doplasma ((char*)SCREEN2) - // [22] call doplasma + // [22] call doplasma /* Build page 2, then make it visible */ // [61] phi from main::@6 to doplasma [phi:main::@6->doplasma] // [61] phi doplasma::scrn#13 = SCREEN2 [phi:main::@6->doplasma#0] -- pbuz1=pbuc1 @@ -3511,7 +3511,7 @@ makechar: { // makechar::@2 __b2: // s = sinetable[(char)c] - // [29] makechar::$9 = (byte)makechar::c#3 -- vbuxx=_byte_vwuz1 + // [29] makechar::$9 = (char)makechar::c#3 -- vbuxx=_byte_vwuz1 ldx.z c // [30] makechar::s#1 = sinetable[makechar::$9] -- vbuz1=pbuc1_derefidx_vbuxx lda sinetable,x @@ -3598,7 +3598,7 @@ makechar: { // makechar::@6 __b6: // rand() - // [42] call rand + // [42] call rand jsr rand // [43] rand::return#2 = rand::return#0 // makechar::@10 @@ -3654,7 +3654,7 @@ end: { lda.z last_time+1 sta.z Ticks+1 // start() - // [53] call start + // [53] call start jsr start // end::@1 // last_time -= Ticks @@ -3674,12 +3674,12 @@ end: { sta.z Ticks_1+1 // print_uint(Ticks) // [56] print_uint::w#0 = Ticks#1 - // [57] call print_uint + // [57] call print_uint jsr print_uint // [58] phi from end::@1 to end::@2 [phi:end::@1->end::@2] // end::@2 // print_ln() - // [59] call print_ln + // [59] call print_ln // [99] phi from end::@2 to print_ln [phi:end::@2->print_ln] jsr print_ln // end::@return @@ -3688,7 +3688,7 @@ end: { rts } // doplasma -// doplasma(byte* zp(8) scrn) +// void doplasma(__zp(8) char *scrn) doplasma: { .const c2A = 0 .const c2B = 0 @@ -3920,13 +3920,13 @@ rand: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($16) w) +// void print_uint(__zp($16) unsigned int w) print_uint: { .label w = $16 // print_uchar(BYTE1(w)) // [94] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [95] call print_uchar + // [95] call print_uchar // [104] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [104] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 lda #print_uchar] // [104] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy // [104] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -3988,7 +3988,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [105] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -4001,7 +4001,7 @@ print_uchar: { // [106] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [107] call print_char + // [107] call print_char // Table of hexadecimal digits // [112] phi from print_uchar to print_char [phi:print_uchar->print_char] // [112] phi print_char_cursor#26 = print_char_cursor#37 [phi:print_uchar->print_char#0] -- register_copy @@ -4015,7 +4015,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [109] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [110] call print_char + // [110] call print_char // [112] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [112] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy // [112] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -4027,7 +4027,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [113] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.sym b/src/test/ref/millfork-benchmarks/plasma-kc.sym index 5d4b58642..9b4bac1b9 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.sym +++ b/src/test/ref/millfork-benchmarks/plasma-kc.sym @@ -1,137 +1,137 @@ -constant byte* const CHARSET = (byte*) 59392 -constant struct MOS6526_CIA* const CIA2 = (struct MOS6526_CIA*) 56576 -constant const byte PAGE1 = (word)SCREEN1>>6&$f0|(word)CHARSET>>$a&$e -constant const byte PAGE2 = (word)SCREEN2>>6&$f0|(word)CHARSET>>$a&$e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN1 = (byte*) 57344 -constant byte* const SCREEN2 = (byte*) 58368 -word Ticks -word Ticks#0 Ticks zp[2]:20 101.0 -word Ticks#1 Ticks_1 zp[2]:22 202.0 -constant byte* const VICII_MEMORY = (byte*) 53272 +__constant char * const CHARSET = (char *) 59392 +__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576 +__constant const char PAGE1 = (unsigned int)SCREEN1>>6&$f0|(unsigned int)CHARSET>>$a&$e +__constant const char PAGE2 = (unsigned int)SCREEN2>>6&$f0|(unsigned int)CHARSET>>$a&$e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN1 = (char *) 57344 +__constant char * const SCREEN2 = (char *) 58368 +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:20 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:22 202.0 +__constant char * const VICII_MEMORY = (char *) 53272 void __start() -constant const byte* bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } -void doplasma(byte* doplasma::scrn) -byte~ doplasma::$1 reg byte a 200002.0 -byte~ doplasma::$3 reg byte a 200002.0 -byte~ doplasma::$6 reg byte a 2000002.0 -byte doplasma::c1A -byte doplasma::c1B -byte doplasma::c1a -byte doplasma::c1a#2 c1a zp[1]:14 66667.33333333333 -byte doplasma::c1a#3 c1a zp[1]:14 75000.75 -byte doplasma::c1b -byte doplasma::c1b#2 c1b zp[1]:19 100001.0 -byte doplasma::c1b#3 c1b zp[1]:19 60000.600000000006 -byte doplasma::c2A -constant byte doplasma::c2A#0 c2A = 0 -byte doplasma::c2B -constant byte doplasma::c2B#0 c2B = 0 -byte doplasma::c2a -byte doplasma::c2a#2 c2a zp[1]:6 66667.33333333333 -byte doplasma::c2a#3 c2a zp[1]:6 75000.75 -byte doplasma::c2b -byte doplasma::c2b#2 c2b zp[1]:7 100001.0 -byte doplasma::c2b#3 c2b zp[1]:7 60000.600000000006 -byte doplasma::i -byte doplasma::i#2 i zp[1]:5 200002.0 -byte doplasma::i#3 i zp[1]:5 66667.33333333333 -byte doplasma::ii -byte doplasma::ii#2 ii zp[1]:4 200002.0 -byte doplasma::ii#3 ii zp[1]:4 66667.33333333333 -byte doplasma::j -byte doplasma::j#2 reg byte y 2000002.0 -byte doplasma::j#3 reg byte y 1250001.25 -byte doplasma::jj -byte doplasma::jj#2 reg byte x 200002.0 -byte doplasma::jj#3 reg byte x 162500.5 -byte* doplasma::scrn -byte* doplasma::scrn#0 scrn zp[2]:8 100001.0 -byte* doplasma::scrn#13 scrn zp[2]:8 6666.733333333334 -byte* doplasma::scrn#6 scrn zp[2]:8 185714.85714285713 +__constant const char bittab[] = { 1, 2, 4, 8, $10, $20, $40, $80 } +void doplasma(char *scrn) +char doplasma::$1 // reg byte a 200002.0 +char doplasma::$3 // reg byte a 200002.0 +char doplasma::$6 // reg byte a 2000002.0 +char doplasma::c1A +char doplasma::c1B +char doplasma::c1a +char doplasma::c1a#2 // c1a zp[1]:14 66667.33333333333 +char doplasma::c1a#3 // c1a zp[1]:14 75000.75 +char doplasma::c1b +char doplasma::c1b#2 // c1b zp[1]:19 100001.0 +char doplasma::c1b#3 // c1b zp[1]:19 60000.600000000006 +char doplasma::c2A +__constant char doplasma::c2A#0 = 0 // c2A +char doplasma::c2B +__constant char doplasma::c2B#0 = 0 // c2B +char doplasma::c2a +char doplasma::c2a#2 // c2a zp[1]:6 66667.33333333333 +char doplasma::c2a#3 // c2a zp[1]:6 75000.75 +char doplasma::c2b +char doplasma::c2b#2 // c2b zp[1]:7 100001.0 +char doplasma::c2b#3 // c2b zp[1]:7 60000.600000000006 +char doplasma::i +char doplasma::i#2 // i zp[1]:5 200002.0 +char doplasma::i#3 // i zp[1]:5 66667.33333333333 +char doplasma::ii +char doplasma::ii#2 // ii zp[1]:4 200002.0 +char doplasma::ii#3 // ii zp[1]:4 66667.33333333333 +char doplasma::j +char doplasma::j#2 // reg byte y 2000002.0 +char doplasma::j#3 // reg byte y 1250001.25 +char doplasma::jj +char doplasma::jj#2 // reg byte x 200002.0 +char doplasma::jj#3 // reg byte x 162500.5 +char *doplasma::scrn +char *doplasma::scrn#0 // scrn zp[2]:8 100001.0 +char *doplasma::scrn#13 // scrn zp[2]:8 6666.733333333334 +char *doplasma::scrn#6 // scrn zp[2]:8 185714.85714285713 void end() -volatile word last_time loadstore zp[2]:10 17.652173913043477 -signed word main() -byte main::block -byte main::block#1 block zp[1]:12 2.5384615384615383 -word main::count -word main::count#1 count zp[2]:2 202.0 -word main::count#2 count zp[2]:2 43.285714285714285 -signed word main::return -byte main::tmp -byte main::tmp#1 reg byte a 22.0 -byte main::v -byte main::v#1 v zp[1]:13 2.4444444444444446 +__loadstore volatile unsigned int last_time // zp[2]:10 17.652173913043477 +int main() +char main::block +char main::block#1 // block zp[1]:12 2.5384615384615383 +unsigned int main::count +unsigned int main::count#1 // count zp[2]:2 202.0 +unsigned int main::count#2 // count zp[2]:2 43.285714285714285 +int main::return +char main::tmp +char main::tmp#1 // reg byte a 22.0 +char main::v +char main::v#1 // v zp[1]:13 2.4444444444444446 void makechar() -byte*~ makechar::$10 zp[2]:15 20002.0 -word~ makechar::$3 zp[2]:17 200002.0 -byte~ makechar::$4 zp[1]:19 200002.0 -word~ makechar::$7 zp[2]:15 20002.0 -word~ makechar::$8 zp[2]:15 20002.0 -byte~ makechar::$9 reg byte x 2002.0 -byte makechar::b -byte makechar::b#2 reg byte y 200002.0 -byte makechar::b#3 reg byte y 28182.181818181816 -byte makechar::b#7 reg byte y 150001.5 -word makechar::c -word makechar::c#2 c zp[2]:8 2002.0 -word makechar::c#3 c zp[2]:8 591.090909090909 -byte makechar::i -byte makechar::i#2 i zp[1]:4 20002.0 -byte makechar::i#3 i zp[1]:4 2353.176470588235 -byte makechar::ii -byte makechar::ii#2 reg byte x 200002.0 -byte makechar::ii#3 reg byte x 40000.4 -byte makechar::s -byte makechar::s#1 s zp[1]:14 5315.894736842105 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#26 print_char_cursor zp[2]:17 110002.0 -byte* print_char_cursor#27 print_char_cursor zp[2]:17 7117.882352941177 -byte* print_char_cursor#37 print_char_cursor zp[2]:17 3667.333333333333 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:15 15001.5 -byte* print_line_cursor#9 print_line_cursor zp[2]:15 20002.0 +char *makechar::$10 // zp[2]:15 20002.0 +unsigned int makechar::$3 // zp[2]:17 200002.0 +char makechar::$4 // zp[1]:19 200002.0 +unsigned int makechar::$7 // zp[2]:15 20002.0 +unsigned int makechar::$8 // zp[2]:15 20002.0 +char makechar::$9 // reg byte x 2002.0 +char makechar::b +char makechar::b#2 // reg byte y 200002.0 +char makechar::b#3 // reg byte y 28182.181818181816 +char makechar::b#7 // reg byte y 150001.5 +unsigned int makechar::c +unsigned int makechar::c#2 // c zp[2]:8 2002.0 +unsigned int makechar::c#3 // c zp[2]:8 591.090909090909 +char makechar::i +char makechar::i#2 // i zp[1]:4 20002.0 +char makechar::i#3 // i zp[1]:4 2353.176470588235 +char makechar::ii +char makechar::ii#2 // reg byte x 200002.0 +char makechar::ii#3 // reg byte x 40000.4 +char makechar::s +char makechar::s#1 // s zp[1]:14 5315.894736842105 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#26 // print_char_cursor zp[2]:17 110002.0 +char *print_char_cursor#27 // print_char_cursor zp[2]:17 7117.882352941177 +char *print_char_cursor#37 // print_char_cursor zp[2]:17 3667.333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:15 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:15 20002.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:22 701.0 -word rand() -word~ rand::$0 zp[2]:20 2000002.0 -word~ rand::$1 zp[2]:22 2000002.0 -word~ rand::$2 zp[2]:24 2000002.0 -word rand::return -word rand::return#0 return zp[2]:17 366667.3333333334 -word rand::return#2 return zp[2]:17 200002.0 -word rand_state -word rand_state#0 rand_state zp[2]:2 1500001.5 -word rand_state#1 rand_state zp[2]:2 1500001.5 -word rand_state#12 rand_state zp[2]:2 190909.36363636365 -word rand_state#14 rand_state zp[2]:2 500.5 -word rand_state#19 rand_state zp[2]:2 235556.11111111112 -word rand_state#25 rand_state zp[2]:2 7334.666666666666 -constant const byte* sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:22 701.0 +unsigned int rand() +unsigned int rand::$0 // zp[2]:20 2000002.0 +unsigned int rand::$1 // zp[2]:22 2000002.0 +unsigned int rand::$2 // zp[2]:24 2000002.0 +unsigned int rand::return +unsigned int rand::return#0 // return zp[2]:17 366667.3333333334 +unsigned int rand::return#2 // return zp[2]:17 200002.0 +unsigned int rand_state +unsigned int rand_state#0 // rand_state zp[2]:2 1500001.5 +unsigned int rand_state#1 // rand_state zp[2]:2 1500001.5 +unsigned int rand_state#12 // rand_state zp[2]:2 190909.36363636365 +unsigned int rand_state#14 // rand_state zp[2]:2 500.5 +unsigned int rand_state#19 // rand_state zp[2]:2 235556.11111111112 +unsigned int rand_state#25 // rand_state zp[2]:2 7334.666666666666 +__constant const char sinetable[$100] = { $80, $7d, $7a, $77, $74, $70, $6d, $6a, $67, $64, $61, $5e, $5b, $58, $55, $52, $4f, $4d, $4a, $47, $44, $41, $3f, $3c, $39, $37, $34, $32, $2f, $2d, $2b, $28, $26, $24, $22, $20, $1e, $1c, $1a, $18, $16, $15, $13, $11, $10, $f, $d, $c, $b, $a, 8, 7, 6, 6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 7, 8, $a, $b, $c, $d, $f, $10, $11, $13, $15, $16, $18, $1a, $1c, $1e, $20, $22, $24, $26, $28, $2b, $2d, $2f, $32, $34, $37, $39, $3c, $3f, $41, $44, $47, $4a, $4d, $4f, $52, $55, $58, $5b, $5e, $61, $64, $67, $6a, $6d, $70, $74, $77, $7a, $7d, $80, $83, $86, $89, $8c, $90, $93, $96, $99, $9c, $9f, $a2, $a5, $a8, $ab, $ae, $b1, $b3, $b6, $b9, $bc, $bf, $c1, $c4, $c7, $c9, $cc, $ce, $d1, $d3, $d5, $d8, $da, $dc, $de, $e0, $e2, $e4, $e6, $e8, $ea, $eb, $ed, $ef, $f0, $f1, $f3, $f4, $f5, $f6, $f8, $f9, $fa, $fa, $fb, $fc, $fd, $fd, $fe, $fe, $fe, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $fe, $fe, $fe, $fd, $fd, $fc, $fb, $fa, $fa, $f9, $f8, $f6, $f5, $f4, $f3, $f1, $f0, $ef, $ed, $eb, $ea, $e8, $e6, $e4, $e2, $e0, $de, $dc, $da, $d8, $d5, $d3, $d1, $ce, $cc, $c9, $c7, $c4, $c1, $bf, $bc, $b9, $b6, $b3, $b1, $ae, $ab, $a8, $a5, $a2, $9f, $9c, $99, $96, $93, $90, $8c, $89, $86, $83 } void start() -constant word* const start::LAST_TIME = &last_time -constant byte* xbuf[$28] = { fill( $28, 0) } -constant byte* ybuf[$19] = { fill( $19, 0) } +__constant unsigned int * const start::LAST_TIME = &last_time +__constant char xbuf[$28] = { fill( $28, 0) } +__constant char ybuf[$19] = { fill( $19, 0) } zp[2]:2 [ rand_state#14 rand_state#25 rand_state#19 rand_state#12 rand_state#0 rand_state#1 main::count#2 main::count#1 ] reg byte x [ makechar::ii#3 makechar::ii#2 ] diff --git a/src/test/ref/millfork-benchmarks/romsum-kc.asm b/src/test/ref/millfork-benchmarks/romsum-kc.asm index a7f9f679c..9bad3d163 100644 --- a/src/test/ref/millfork-benchmarks/romsum-kc.asm +++ b/src/test/ref/millfork-benchmarks/romsum-kc.asm @@ -158,7 +158,7 @@ sum: { jmp __b1 } // Print a unsigned int as DECIMAL -// print_uint_decimal(word zp($d) w) +// void print_uint_decimal(__zp($d) unsigned int w) print_uint_decimal: { .label w = $d // utoa(w, decimal_digits, DECIMAL) @@ -192,7 +192,7 @@ print_ln: { rts } // Print a unsigned int as HEX -// print_uint(word zp($d) w) +// void print_uint(__zp($d) unsigned int w) print_uint: { .label w = $d // print_uchar(BYTE1(w)) @@ -209,7 +209,7 @@ print_uint: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($d) value, byte* zp(5) buffer) +// void utoa(__zp($d) unsigned int value, __zp(5) char *buffer, char radix) utoa: { .const max_digits = 5 .label value = $d @@ -281,7 +281,7 @@ utoa: { jmp __b4 } // Print a zero-terminated string -// print_str(byte* zp($f) str) +// void print_str(__zp($f) char *str) print_str: { .label str = $f lda #>4 txa @@ -339,7 +339,7 @@ print_uchar: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp(5) buffer, word zp($d) value, word zp($f) sub) +// __zp($d) unsigned int utoa_append(__zp(5) char *buffer, __zp($d) unsigned int value, __zp($f) unsigned int sub) utoa_append: { .label buffer = 5 .label value = $d @@ -376,7 +376,7 @@ utoa_append: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/millfork-benchmarks/romsum-kc.cfg b/src/test/ref/millfork-benchmarks/romsum-kc.cfg index 25458e82d..41a1082d5 100644 --- a/src/test/ref/millfork-benchmarks/romsum-kc.cfg +++ b/src/test/ref/millfork-benchmarks/romsum-kc.cfg @@ -8,16 +8,16 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 [5] phi() - [6] call start + [6] call start to:main::@1 main::@1: scope:[main] from main main::@6 [7] print_line_cursor#22 = phi( main/print_screen#0, main::@6/print_line_cursor#0 ) @@ -27,23 +27,23 @@ main::@1: scope:[main] from main main::@6 to:main::@3 main::@3: scope:[main] from main::@1 [9] phi() - [10] call end + [10] call end to:main::@return main::@return: scope:[main] from main::@3 [11] return to:@return main::@2: scope:[main] from main::@1 [12] phi() - [13] call sum + [13] call sum [14] sum::return#2 = sum::s#3 to:main::@4 main::@4: scope:[main] from main::@2 [15] print_uint_decimal::w#0 = sum::return#2 - [16] call print_uint_decimal + [16] call print_uint_decimal to:main::@5 main::@5: scope:[main] from main::@4 [17] phi() - [18] call print_ln + [18] call print_ln to:main::@6 main::@6: scope:[main] from main::@5 [19] main::i#2 = ++ main::i#3 @@ -61,23 +61,23 @@ start::@return: scope:[start] from start void end() end: scope:[end] from main::@3 [23] Ticks#0 = last_time - [24] call start + [24] call start to:end::@1 end::@1: scope:[end] from end [25] last_time = last_time - Ticks#0 [26] Ticks#1 = last_time [27] print_uint::w#0 = Ticks#1 - [28] call print_uint + [28] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 [29] phi() - [30] call print_ln + [30] call print_ln to:end::@return end::@return: scope:[end] from end::@2 [31] return to:@return -word sum() +unsigned int sum() sum: scope:[sum] from main::@2 [32] phi() to:sum::@1 @@ -103,14 +103,14 @@ sum::@3: scope:[sum] from sum::@2 [42] sum::page#2 = ++ sum::page#3 to:sum::@1 -void print_uint_decimal(word print_uint_decimal::w) +void print_uint_decimal(unsigned int w) print_uint_decimal: scope:[print_uint_decimal] from main::@4 [43] utoa::value#0 = print_uint_decimal::w#0 - [44] call utoa + [44] call utoa to:print_uint_decimal::@1 print_uint_decimal::@1: scope:[print_uint_decimal] from print_uint_decimal [45] phi() - [46] call print_str + [46] call print_str to:print_uint_decimal::@return print_uint_decimal::@return: scope:[print_uint_decimal] from print_uint_decimal::@1 [47] return @@ -129,20 +129,20 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [52] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 [53] print_uchar::b#0 = byte1 print_uint::w#0 - [54] call print_uchar + [54] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [55] print_uchar::b#1 = byte0 print_uint::w#0 - [56] call print_uchar + [56] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [57] return to:@return -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from print_uint_decimal [58] phi() to:utoa::@1 @@ -154,7 +154,7 @@ utoa::@1: scope:[utoa] from utoa utoa::@4 [60] if(utoa::digit#2> 4 [88] print_char::ch#1 = DIGITS[print_uchar::$0] - [89] call print_char + [89] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [90] print_uchar::$2 = print_uchar::b#2 & $f [91] print_char::ch#2 = DIGITS[print_uchar::$2] - [92] call print_char + [92] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [93] return to:@return -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@5 [94] phi() to:utoa_append::@1 @@ -245,7 +245,7 @@ utoa_append::@2: scope:[utoa_append] from utoa_append::@1 [100] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [101] print_char_cursor#36 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#52, print_uchar::@1/print_char_cursor#12 ) [101] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) diff --git a/src/test/ref/millfork-benchmarks/romsum-kc.log b/src/test/ref/millfork-benchmarks/romsum-kc.log index 3964cd2b7..d0469af8d 100644 --- a/src/test/ref/millfork-benchmarks/romsum-kc.log +++ b/src/test/ref/millfork-benchmarks/romsum-kc.log @@ -1,10 +1,10 @@ Setting inferred volatile on symbol affected by address-of last_time Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_uint_decimal::@1 print_char_cursor#57 = phi( print_uint_decimal::@1/print_char_cursor#51 ) print_str::str#5 = phi( print_uint_decimal::@1/print_str::str#1 ) @@ -19,7 +19,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#47 = phi( print_str::@1/print_char_cursor#48 ) print_str::str#3 = phi( print_str::@1/print_str::str#2 ) print_char::ch#0 = *print_str::str#3 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#4 = phi( print_str::@2/print_str::str#3 ) @@ -58,13 +58,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 print_char_cursor#50 = phi( end::@1/print_char_cursor#53 ) print_uint::w#1 = phi( end::@1/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -72,7 +72,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#4 = print_char_cursor#28 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#29 = phi( print_uint::@1/print_char_cursor#11 ) @@ -84,19 +84,19 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uint_decimal(word print_uint_decimal::w) +void print_uint_decimal(unsigned int w) print_uint_decimal: scope:[print_uint_decimal] from main::@5 print_char_cursor#58 = phi( main::@5/print_char_cursor#54 ) print_uint_decimal::w#1 = phi( main::@5/print_uint_decimal::w#0 ) utoa::value#0 = print_uint_decimal::w#1 utoa::buffer#0 = decimal_digits utoa::radix#0 = DECIMAL - call utoa + call utoa to:print_uint_decimal::@1 print_uint_decimal::@1: scope:[print_uint_decimal] from print_uint_decimal print_char_cursor#51 = phi( print_uint_decimal/print_char_cursor#58 ) print_str::str#1 = decimal_digits - call print_str + call print_str to:print_uint_decimal::@2 print_uint_decimal::@2: scope:[print_uint_decimal] from print_uint_decimal::@1 print_char_cursor#31 = phi( print_uint_decimal::@1/print_char_cursor#1 ) @@ -108,13 +108,13 @@ print_uint_decimal::@return: scope:[print_uint_decimal] from print_uint_decimal return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#52 = phi( print_uint/print_char_cursor#50, print_uint::@1/print_char_cursor#4 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#1 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -122,7 +122,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#9 = print_char_cursor#33 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#2 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#34 = phi( print_uchar::@1/print_char_cursor#13 ) @@ -134,7 +134,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_char_cursor#36 = phi( print_str::@2/print_char_cursor#47, print_uchar/print_char_cursor#52, print_uchar::@1/print_char_cursor#9 ) print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -147,13 +147,13 @@ print_char::@return: scope:[print_char] from print_char return to:@return -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from print_uint_decimal utoa::buffer#21 = phi( print_uint_decimal/utoa::buffer#0 ) utoa::value#12 = phi( print_uint_decimal/utoa::value#0 ) utoa::radix#1 = phi( print_uint_decimal/utoa::radix#0 ) utoa::max_digits#0 = 0 - utoa::digit_values#0 = (word*) 0 + utoa::digit_values#0 = (unsigned int *) 0 utoa::$0 = utoa::radix#1 == DECIMAL if(utoa::$0) goto utoa::@1 to:utoa::@6 @@ -241,7 +241,7 @@ utoa::@11: scope:[utoa] from utoa::@10 utoa::value#2 = phi( utoa::@10/utoa::value#5 ) utoa::digit_values#5 = phi( utoa::@10/utoa::digit_values#6 ) utoa::digit#3 = phi( utoa::@10/utoa::digit#2 ) - utoa::$10 = utoa::digit#3 * SIZEOF_WORD + utoa::$10 = utoa::digit#3 * SIZEOF_UNSIGNED_INT utoa::digit_value#0 = utoa::digit_values#5[utoa::$10] utoa::$6 = utoa::value#2 >= utoa::digit_value#0 utoa::$7 = utoa::started#2 || utoa::$6 @@ -251,7 +251,7 @@ utoa::@11: scope:[utoa] from utoa::@10 utoa::@12: scope:[utoa] from utoa::@10 utoa::buffer#7 = phi( utoa::@10/utoa::buffer#11 ) utoa::value#3 = phi( utoa::@10/utoa::value#5 ) - utoa::$11 = (byte)utoa::value#3 + utoa::$11 = (char)utoa::value#3 *utoa::buffer#7 = DIGITS[utoa::$11] utoa::buffer#4 = ++ utoa::buffer#7 *utoa::buffer#4 = 0 @@ -275,7 +275,7 @@ utoa::@14: scope:[utoa] from utoa::@11 utoa_append::buffer#0 = utoa::buffer#8 utoa_append::value#0 = utoa::value#4 utoa_append::sub#0 = utoa::digit_value#1 - call utoa_append + call utoa_append utoa_append::return#0 = utoa_append::return#2 to:utoa::@15 utoa::@15: scope:[utoa] from utoa::@14 @@ -290,7 +290,7 @@ utoa::@15: scope:[utoa] from utoa::@14 utoa::started#1 = 1 to:utoa::@13 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@14 utoa_append::buffer#3 = phi( utoa::@14/utoa_append::buffer#0 ) utoa_append::sub#3 = phi( utoa::@14/utoa_append::sub#0 ) @@ -339,7 +339,7 @@ end: scope:[end] from main::@3 print_line_cursor#28 = phi( main::@3/print_line_cursor#23 ) print_char_cursor#59 = phi( main::@3/print_char_cursor#55 ) Ticks#0 = last_time - call start + call start to:end::@1 end::@1: scope:[end] from end print_line_cursor#25 = phi( end/print_line_cursor#28 ) @@ -348,14 +348,14 @@ end::@1: scope:[end] from end last_time = last_time - Ticks#8 Ticks#1 = last_time print_uint::w#0 = Ticks#1 - call print_uint + call print_uint to:end::@2 end::@2: scope:[end] from end::@1 Ticks#17 = phi( end::@1/Ticks#1 ) print_line_cursor#21 = phi( end::@1/print_line_cursor#25 ) print_char_cursor#38 = phi( end::@1/print_char_cursor#6 ) print_char_cursor#14 = print_char_cursor#38 - call print_ln + call print_ln to:end::@3 end::@3: scope:[end] from end::@2 Ticks#14 = phi( end::@2/Ticks#17 ) @@ -374,10 +374,10 @@ end::@return: scope:[end] from end::@3 return to:@return -word sum() +unsigned int sum() sum: scope:[sum] from main::@2 sum::s#0 = 0 - sum::p#0 = (byte*) 0 + sum::p#0 = (char *) 0 sum::page#0 = 0 sum::i#0 = 0 sum::tmp#0 = 0 @@ -426,13 +426,13 @@ sum::@return: scope:[sum] from sum::@3 return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 print_line_cursor#31 = phi( __start::@1/print_line_cursor#24 ) print_char_cursor#63 = phi( __start::@1/print_char_cursor#56 ) Ticks#21 = phi( __start::@1/Ticks#16 ) main::i#0 = 0 - call start + call start to:main::@4 main::@4: scope:[main] from main print_line_cursor#29 = phi( main/print_line_cursor#31 ) @@ -453,7 +453,7 @@ main::@2: scope:[main] from main::@1 main::i#7 = phi( main::@1/main::i#3 ) print_line_cursor#30 = phi( main::@1/print_line_cursor#27 ) print_char_cursor#60 = phi( main::@1/print_char_cursor#61 ) - call sum + call sum sum::return#2 = sum::return#1 to:main::@5 main::@5: scope:[main] from main::@2 @@ -464,7 +464,7 @@ main::@5: scope:[main] from main::@2 sum::return#4 = phi( main::@2/sum::return#2 ) main::$3 = sum::return#4 print_uint_decimal::w#0 = main::$3 - call print_uint_decimal + call print_uint_decimal to:main::@6 main::@6: scope:[main] from main::@5 Ticks#22 = phi( main::@5/Ticks#23 ) @@ -472,7 +472,7 @@ main::@6: scope:[main] from main::@5 print_line_cursor#22 = phi( main::@5/print_line_cursor#26 ) print_char_cursor#41 = phi( main::@5/print_char_cursor#8 ) print_char_cursor#17 = print_char_cursor#41 - call print_ln + call print_ln to:main::@7 main::@7: scope:[main] from main::@6 Ticks#20 = phi( main::@6/Ticks#22 ) @@ -487,7 +487,7 @@ main::@3: scope:[main] from main::@1 print_line_cursor#23 = phi( main::@1/print_line_cursor#27 ) print_char_cursor#55 = phi( main::@1/print_char_cursor#61 ) Ticks#15 = phi( main::@1/Ticks#18 ) - call end + call end to:main::@8 main::@8: scope:[main] from main::@3 print_line_cursor#16 = phi( main::@3/print_line_cursor#3 ) @@ -514,7 +514,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#21 = print_line_cursor#7 last_time = 0 @@ -525,7 +525,7 @@ __start::@1: scope:[__start] from __start::__init1 Ticks#16 = phi( __start::__init1/Ticks#5 ) print_line_cursor#24 = phi( __start::__init1/print_line_cursor#7 ) print_char_cursor#56 = phi( __start::__init1/print_char_cursor#21 ) - call main + call main main::return#2 = main::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::@1 @@ -550,386 +550,386 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte DECIMAL = $a -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant byte OCTAL = 8 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } -constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } -constant byte SIZEOF_WORD = 2 -word Ticks -word Ticks#0 -word Ticks#1 -word Ticks#10 -word Ticks#11 -word Ticks#12 -word Ticks#13 -word Ticks#14 -word Ticks#15 -word Ticks#16 -word Ticks#17 -word Ticks#18 -word Ticks#19 -word Ticks#2 -word Ticks#20 -word Ticks#21 -word Ticks#22 -word Ticks#23 -word Ticks#24 -word Ticks#3 -word Ticks#4 -word Ticks#5 -word Ticks#6 -word Ticks#7 -word Ticks#8 -word Ticks#9 +__constant char BINARY = 2 +__constant char DECIMAL = $a +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant char OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } +__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } +__constant char SIZEOF_UNSIGNED_INT = 2 +unsigned int Ticks +unsigned int Ticks#0 +unsigned int Ticks#1 +unsigned int Ticks#10 +unsigned int Ticks#11 +unsigned int Ticks#12 +unsigned int Ticks#13 +unsigned int Ticks#14 +unsigned int Ticks#15 +unsigned int Ticks#16 +unsigned int Ticks#17 +unsigned int Ticks#18 +unsigned int Ticks#19 +unsigned int Ticks#2 +unsigned int Ticks#20 +unsigned int Ticks#21 +unsigned int Ticks#22 +unsigned int Ticks#23 +unsigned int Ticks#24 +unsigned int Ticks#3 +unsigned int Ticks#4 +unsigned int Ticks#5 +unsigned int Ticks#6 +unsigned int Ticks#7 +unsigned int Ticks#8 +unsigned int Ticks#9 void __start() -constant byte* decimal_digits[6] = { fill( 6, 0) } +__constant char decimal_digits[6] = { fill( 6, 0) } void end() -volatile word last_time loadstore -signed word main() -bool~ main::$2 -word~ main::$3 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i#3 -word main::i#4 -word main::i#5 -word main::i#6 -word main::i#7 -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__loadstore volatile unsigned int last_time +int main() +bool main::$2 +unsigned int main::$3 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i#3 +unsigned int main::i#4 +unsigned int main::i#5 +unsigned int main::i#6 +unsigned int main::i#7 +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 -word print_uint_decimal::w#1 -constant byte* const rom = (byte*)$e000 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 +unsigned int print_uint_decimal::w#1 +__constant char * const rom = (char *)$e000 void start() -constant word* const start::LAST_TIME = &last_time -word sum() -bool~ sum::$0 -bool~ sum::$1 -byte sum::i -byte sum::i#0 -byte sum::i#1 -byte sum::i#2 -byte sum::i#3 -byte* sum::p -byte* sum::p#0 -byte* sum::p#1 -byte* sum::p#2 -byte* sum::p#3 -byte* sum::p#4 -byte* sum::p#5 -byte* sum::p#6 -byte sum::page -byte sum::page#0 -byte sum::page#1 -byte sum::page#2 -byte sum::page#3 -byte sum::page#4 -byte sum::page#5 -byte sum::page#6 -word sum::return -word sum::return#0 -word sum::return#1 -word sum::return#2 -word sum::return#3 -word sum::return#4 -word sum::s -word sum::s#0 -word sum::s#1 -word sum::s#2 -word sum::s#3 -word sum::s#4 -word sum::s#5 -word sum::s#6 -word sum::s#7 -byte sum::tmp -byte sum::tmp#0 -byte sum::tmp#1 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -bool~ utoa::$0 -bool~ utoa::$1 -byte~ utoa::$10 -byte~ utoa::$11 -bool~ utoa::$2 -bool~ utoa::$3 -number~ utoa::$4 -bool~ utoa::$5 -bool~ utoa::$6 -bool~ utoa::$7 -bool~ utoa::$8 -word~ utoa::$9 -byte* utoa::buffer -byte* utoa::buffer#0 -byte* utoa::buffer#1 -byte* utoa::buffer#10 -byte* utoa::buffer#11 -byte* utoa::buffer#12 -byte* utoa::buffer#13 -byte* utoa::buffer#14 -byte* utoa::buffer#15 -byte* utoa::buffer#16 -byte* utoa::buffer#17 -byte* utoa::buffer#18 -byte* utoa::buffer#19 -byte* utoa::buffer#2 -byte* utoa::buffer#20 -byte* utoa::buffer#21 -byte* utoa::buffer#3 -byte* utoa::buffer#4 -byte* utoa::buffer#5 -byte* utoa::buffer#6 -byte* utoa::buffer#7 -byte* utoa::buffer#8 -byte* utoa::buffer#9 -byte utoa::digit -byte utoa::digit#0 -byte utoa::digit#1 -byte utoa::digit#2 -byte utoa::digit#3 -byte utoa::digit#4 -byte utoa::digit#5 -byte utoa::digit#6 -word utoa::digit_value -word utoa::digit_value#0 -word utoa::digit_value#1 -word* utoa::digit_values -word* utoa::digit_values#0 -word* utoa::digit_values#1 -word* utoa::digit_values#10 -word* utoa::digit_values#2 -word* utoa::digit_values#3 -word* utoa::digit_values#4 -word* utoa::digit_values#5 -word* utoa::digit_values#6 -word* utoa::digit_values#7 -word* utoa::digit_values#8 -word* utoa::digit_values#9 -byte utoa::max_digits -byte utoa::max_digits#0 -byte utoa::max_digits#1 -byte utoa::max_digits#10 -byte utoa::max_digits#2 -byte utoa::max_digits#3 -byte utoa::max_digits#4 -byte utoa::max_digits#5 -byte utoa::max_digits#6 -byte utoa::max_digits#7 -byte utoa::max_digits#8 -byte utoa::max_digits#9 -byte utoa::radix -byte utoa::radix#0 -byte utoa::radix#1 -byte utoa::radix#2 -byte utoa::radix#3 -byte utoa::radix#4 -byte utoa::started -byte utoa::started#0 -byte utoa::started#1 -byte utoa::started#2 -byte utoa::started#3 -byte utoa::started#4 -word utoa::value -word utoa::value#0 -word utoa::value#1 -word utoa::value#10 -word utoa::value#11 -word utoa::value#12 -word utoa::value#13 -word utoa::value#14 -word utoa::value#15 -word utoa::value#2 -word utoa::value#3 -word utoa::value#4 -word utoa::value#5 -word utoa::value#6 -word utoa::value#7 -word utoa::value#8 -word utoa::value#9 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -bool~ utoa_append::$0 -byte* utoa_append::buffer -byte* utoa_append::buffer#0 -byte* utoa_append::buffer#1 -byte* utoa_append::buffer#2 -byte* utoa_append::buffer#3 -byte* utoa_append::buffer#4 -byte utoa_append::digit -byte utoa_append::digit#0 -byte utoa_append::digit#1 -byte utoa_append::digit#2 -byte utoa_append::digit#3 -byte utoa_append::digit#4 -word utoa_append::return -word utoa_append::return#0 -word utoa_append::return#1 -word utoa_append::return#2 -word utoa_append::return#3 -word utoa_append::return#4 -word utoa_append::sub -word utoa_append::sub#0 -word utoa_append::sub#1 -word utoa_append::sub#2 -word utoa_append::sub#3 -word utoa_append::value -word utoa_append::value#0 -word utoa_append::value#1 -word utoa_append::value#2 -word utoa_append::value#3 -word utoa_append::value#4 -word utoa_append::value#5 +__constant unsigned int * const start::LAST_TIME = &last_time +unsigned int sum() +bool sum::$0 +bool sum::$1 +char sum::i +char sum::i#0 +char sum::i#1 +char sum::i#2 +char sum::i#3 +char *sum::p +char *sum::p#0 +char *sum::p#1 +char *sum::p#2 +char *sum::p#3 +char *sum::p#4 +char *sum::p#5 +char *sum::p#6 +char sum::page +char sum::page#0 +char sum::page#1 +char sum::page#2 +char sum::page#3 +char sum::page#4 +char sum::page#5 +char sum::page#6 +unsigned int sum::return +unsigned int sum::return#0 +unsigned int sum::return#1 +unsigned int sum::return#2 +unsigned int sum::return#3 +unsigned int sum::return#4 +unsigned int sum::s +unsigned int sum::s#0 +unsigned int sum::s#1 +unsigned int sum::s#2 +unsigned int sum::s#3 +unsigned int sum::s#4 +unsigned int sum::s#5 +unsigned int sum::s#6 +unsigned int sum::s#7 +char sum::tmp +char sum::tmp#0 +char sum::tmp#1 +void utoa(unsigned int value , char *buffer , char radix) +bool utoa::$0 +bool utoa::$1 +char utoa::$10 +char utoa::$11 +bool utoa::$2 +bool utoa::$3 +number utoa::$4 +bool utoa::$5 +bool utoa::$6 +bool utoa::$7 +bool utoa::$8 +unsigned int utoa::$9 +char *utoa::buffer +char *utoa::buffer#0 +char *utoa::buffer#1 +char *utoa::buffer#10 +char *utoa::buffer#11 +char *utoa::buffer#12 +char *utoa::buffer#13 +char *utoa::buffer#14 +char *utoa::buffer#15 +char *utoa::buffer#16 +char *utoa::buffer#17 +char *utoa::buffer#18 +char *utoa::buffer#19 +char *utoa::buffer#2 +char *utoa::buffer#20 +char *utoa::buffer#21 +char *utoa::buffer#3 +char *utoa::buffer#4 +char *utoa::buffer#5 +char *utoa::buffer#6 +char *utoa::buffer#7 +char *utoa::buffer#8 +char *utoa::buffer#9 +char utoa::digit +char utoa::digit#0 +char utoa::digit#1 +char utoa::digit#2 +char utoa::digit#3 +char utoa::digit#4 +char utoa::digit#5 +char utoa::digit#6 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 +unsigned int utoa::digit_value#1 +unsigned int *utoa::digit_values +unsigned int *utoa::digit_values#0 +unsigned int *utoa::digit_values#1 +unsigned int *utoa::digit_values#10 +unsigned int *utoa::digit_values#2 +unsigned int *utoa::digit_values#3 +unsigned int *utoa::digit_values#4 +unsigned int *utoa::digit_values#5 +unsigned int *utoa::digit_values#6 +unsigned int *utoa::digit_values#7 +unsigned int *utoa::digit_values#8 +unsigned int *utoa::digit_values#9 +char utoa::max_digits +char utoa::max_digits#0 +char utoa::max_digits#1 +char utoa::max_digits#10 +char utoa::max_digits#2 +char utoa::max_digits#3 +char utoa::max_digits#4 +char utoa::max_digits#5 +char utoa::max_digits#6 +char utoa::max_digits#7 +char utoa::max_digits#8 +char utoa::max_digits#9 +char utoa::radix +char utoa::radix#0 +char utoa::radix#1 +char utoa::radix#2 +char utoa::radix#3 +char utoa::radix#4 +char utoa::started +char utoa::started#0 +char utoa::started#1 +char utoa::started#2 +char utoa::started#3 +char utoa::started#4 +unsigned int utoa::value +unsigned int utoa::value#0 +unsigned int utoa::value#1 +unsigned int utoa::value#10 +unsigned int utoa::value#11 +unsigned int utoa::value#12 +unsigned int utoa::value#13 +unsigned int utoa::value#14 +unsigned int utoa::value#15 +unsigned int utoa::value#2 +unsigned int utoa::value#3 +unsigned int utoa::value#4 +unsigned int utoa::value#5 +unsigned int utoa::value#6 +unsigned int utoa::value#7 +unsigned int utoa::value#8 +unsigned int utoa::value#9 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +bool utoa_append::$0 +char *utoa_append::buffer +char *utoa_append::buffer#0 +char *utoa_append::buffer#1 +char *utoa_append::buffer#2 +char *utoa_append::buffer#3 +char *utoa_append::buffer#4 +char utoa_append::digit +char utoa_append::digit#0 +char utoa_append::digit#1 +char utoa_append::digit#2 +char utoa_append::digit#3 +char utoa_append::digit#4 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 +unsigned int utoa_append::return#1 +unsigned int utoa_append::return#2 +unsigned int utoa_append::return#3 +unsigned int utoa_append::return#4 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 +unsigned int utoa_append::sub#1 +unsigned int utoa_append::sub#2 +unsigned int utoa_append::sub#3 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 +unsigned int utoa_append::value#1 +unsigned int utoa_append::value#2 +unsigned int utoa_append::value#3 +unsigned int utoa_append::value#4 +unsigned int utoa_append::value#5 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 @@ -968,7 +968,7 @@ Inlining cast sum::i#1 = (unumber)0 Inlining cast main::i#1 = (unumber)0 Inlining cast main::return#0 = (snumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 57344 +Simplifying constant pointer cast (char *) 57344 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast 4 @@ -990,32 +990,32 @@ Simplifying constant integer cast $100 Simplifying constant integer cast 0 Simplifying constant integer cast 6 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 6 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 6 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f -Inferred type updated to byte in utoa::$4 = utoa::max_digits#5 - 1 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in utoa::$4 = utoa::max_digits#5 - 1 Alias print_str::str#2 = print_str::str#3 print_str::str#4 Alias print_char_cursor#1 = print_char_cursor#47 print_char_cursor#48 print_char_cursor#25 Alias print_char_cursor#0 = print_char_cursor#24 @@ -1154,7 +1154,7 @@ Constant utoa::buffer#0 = decimal_digits Constant utoa::radix#0 = DECIMAL Constant print_str::str#1 = decimal_digits Constant utoa::max_digits#0 = 0 -Constant utoa::digit_values#0 = (word*) 0 +Constant utoa::digit_values#0 = (unsigned int *) 0 Constant utoa::max_digits#1 = 5 Constant utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant utoa::max_digits#2 = 4 @@ -1168,7 +1168,7 @@ Constant utoa::digit#0 = 0 Constant utoa::started#1 = 1 Constant utoa_append::digit#0 = 0 Constant sum::s#0 = 0 -Constant sum::p#0 = (byte*) 0 +Constant sum::p#0 = (char *) 0 Constant sum::page#0 = 0 Constant sum::i#0 = 0 Constant sum::tmp#0 = 0 @@ -1179,7 +1179,7 @@ Constant sum::i#1 = 0 Constant main::i#0 = 0 Constant main::i#1 = 0 Constant main::return#0 = 0 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Constant Ticks#16 = 0 Successful SSA optimization Pass2ConstantIdentification Constant main::return#2 = main::return#0 @@ -1239,7 +1239,7 @@ Adding number conversion cast (unumber) 0 in utoa::$12 = 0 != utoa::started#2 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Identical Phi Values utoa::max_digits#7 utoa::max_digits#1 Identical Phi Values utoa::digit_values#8 utoa::digit_values#1 @@ -1251,7 +1251,7 @@ Constant right-side identified [35] utoa::$4 = utoa::max_digits#1 - 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::$4 = utoa::max_digits#1-1 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [35] utoa::$10 = utoa::digit#2 * SIZEOF_WORD +Rewriting multiplication to use shift [35] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print_str::str#1 Inlining constant with var siblings utoa::buffer#0 @@ -1279,14 +1279,14 @@ Constant inlined sum::s#1 = 0 Constant inlined main::i#1 = 0 Constant inlined sum::p#1 = rom Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting utoa::@17(between utoa::@16 and utoa::@13) @@ -1411,16 +1411,16 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 [5] phi() - [6] call start + [6] call start to:main::@1 main::@1: scope:[main] from main main::@6 [7] print_line_cursor#22 = phi( main/print_screen#0, main::@6/print_line_cursor#0 ) @@ -1430,23 +1430,23 @@ main::@1: scope:[main] from main main::@6 to:main::@3 main::@3: scope:[main] from main::@1 [9] phi() - [10] call end + [10] call end to:main::@return main::@return: scope:[main] from main::@3 [11] return to:@return main::@2: scope:[main] from main::@1 [12] phi() - [13] call sum + [13] call sum [14] sum::return#2 = sum::s#3 to:main::@4 main::@4: scope:[main] from main::@2 [15] print_uint_decimal::w#0 = sum::return#2 - [16] call print_uint_decimal + [16] call print_uint_decimal to:main::@5 main::@5: scope:[main] from main::@4 [17] phi() - [18] call print_ln + [18] call print_ln to:main::@6 main::@6: scope:[main] from main::@5 [19] main::i#2 = ++ main::i#3 @@ -1464,23 +1464,23 @@ start::@return: scope:[start] from start void end() end: scope:[end] from main::@3 [23] Ticks#0 = last_time - [24] call start + [24] call start to:end::@1 end::@1: scope:[end] from end [25] last_time = last_time - Ticks#0 [26] Ticks#1 = last_time [27] print_uint::w#0 = Ticks#1 - [28] call print_uint + [28] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 [29] phi() - [30] call print_ln + [30] call print_ln to:end::@return end::@return: scope:[end] from end::@2 [31] return to:@return -word sum() +unsigned int sum() sum: scope:[sum] from main::@2 [32] phi() to:sum::@1 @@ -1506,14 +1506,14 @@ sum::@3: scope:[sum] from sum::@2 [42] sum::page#2 = ++ sum::page#3 to:sum::@1 -void print_uint_decimal(word print_uint_decimal::w) +void print_uint_decimal(unsigned int w) print_uint_decimal: scope:[print_uint_decimal] from main::@4 [43] utoa::value#0 = print_uint_decimal::w#0 - [44] call utoa + [44] call utoa to:print_uint_decimal::@1 print_uint_decimal::@1: scope:[print_uint_decimal] from print_uint_decimal [45] phi() - [46] call print_str + [46] call print_str to:print_uint_decimal::@return print_uint_decimal::@return: scope:[print_uint_decimal] from print_uint_decimal::@1 [47] return @@ -1532,20 +1532,20 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [52] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 [53] print_uchar::b#0 = byte1 print_uint::w#0 - [54] call print_uchar + [54] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [55] print_uchar::b#1 = byte0 print_uint::w#0 - [56] call print_uchar + [56] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [57] return to:@return -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from print_uint_decimal [58] phi() to:utoa::@1 @@ -1557,7 +1557,7 @@ utoa::@1: scope:[utoa] from utoa utoa::@4 [60] if(utoa::digit#2> 4 [88] print_char::ch#1 = DIGITS[print_uchar::$0] - [89] call print_char + [89] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [90] print_uchar::$2 = print_uchar::b#2 & $f [91] print_char::ch#2 = DIGITS[print_uchar::$2] - [92] call print_char + [92] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [93] return to:@return -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@5 [94] phi() to:utoa_append::@1 @@ -1648,7 +1648,7 @@ utoa_append::@2: scope:[utoa_append] from utoa_append::@1 [100] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [101] print_char_cursor#36 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#52, print_uchar::@1/print_char_cursor#12 ) [101] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -1661,111 +1661,111 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -word Ticks -word Ticks#0 101.0 -word Ticks#1 202.0 +unsigned int Ticks +unsigned int Ticks#0 // 101.0 +unsigned int Ticks#1 // 202.0 void __start() void end() -volatile word last_time loadstore 21.368421052631582 -signed word main() -word main::i -word main::i#2 101.0 -word main::i#3 33.666666666666664 -signed word main::return -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2000002.0 -byte print_char::ch#1 20002.0 -byte print_char::ch#2 20002.0 -byte print_char::ch#3 1.1020004E7 -byte* print_char_cursor -byte* print_char_cursor#1 251263.0 -byte* print_char_cursor#12 734073.6666666666 -byte* print_char_cursor#36 1.05100025E7 -byte* print_char_cursor#49 25050.75 -byte* print_char_cursor#52 4001.0 -byte* print_char_cursor#54 653.1176470588235 -byte* print_char_cursor#73 202.0 -byte* print_line_cursor -byte* print_line_cursor#0 50034.16666666666 -byte* print_line_cursor#10 201003.0 -byte* print_line_cursor#22 64.82352941176471 +__loadstore volatile unsigned int last_time // 21.368421052631582 +int main() +unsigned int main::i +unsigned int main::i#2 // 101.0 +unsigned int main::i#3 // 33.666666666666664 +int main::return +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2000002.0 +char print_char::ch#1 // 20002.0 +char print_char::ch#2 // 20002.0 +char print_char::ch#3 // 1.1020004E7 +char *print_char_cursor +char *print_char_cursor#1 // 251263.0 +char *print_char_cursor#12 // 734073.6666666666 +char *print_char_cursor#36 // 1.05100025E7 +char *print_char_cursor#49 // 25050.75 +char *print_char_cursor#52 // 4001.0 +char *print_char_cursor#54 // 653.1176470588235 +char *print_char_cursor#73 // 202.0 +char *print_line_cursor +char *print_line_cursor#0 // 50034.16666666666 +char *print_line_cursor#10 // 201003.0 +char *print_line_cursor#22 // 64.82352941176471 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 2000002.0 -byte* print_str::str#2 1000001.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 1102.0 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 2000002.0 +char *print_str::str#2 // 1000001.0 +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 // 1102.0 void start() -word sum() -byte sum::i -byte sum::i#2 1500001.5 -byte sum::i#3 1000001.0 -byte* sum::p -byte* sum::p#2 100001.0 -byte* sum::p#5 171428.99999999997 -byte sum::page -byte sum::page#2 200002.0 -byte sum::page#3 37500.375 -word sum::return -word sum::return#2 202.0 -word sum::s -word sum::s#2 420000.60000000003 -word sum::s#3 50025.75 -word sum::s#4 1050001.5 -byte sum::tmp -byte sum::tmp#1 2000002.0 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 2000002.0 -byte~ utoa::$11 20002.0 -byte* utoa::buffer -byte* utoa::buffer#11 287143.2857142857 -byte* utoa::buffer#14 1500001.5 -byte* utoa::buffer#4 20002.0 -byte* utoa::buffer#5 2000002.0 -byte utoa::digit -byte utoa::digit#1 2000002.0 -byte utoa::digit#2 285714.5714285714 -word utoa::digit_value -word utoa::digit_value#0 600000.6000000001 -word* utoa::digit_values -byte utoa::max_digits -byte utoa::radix -byte utoa::started -byte utoa::started#2 500000.5 -byte utoa::started#4 1000001.0 -word utoa::value -word utoa::value#0 5501.0 -word utoa::value#1 1000001.0 -word utoa::value#2 572857.857142857 -word utoa::value#6 1500001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 1375000.25 -byte utoa_append::digit -byte utoa_append::digit#1 1.0000000001E10 -byte utoa_append::digit#2 1.00050000015E10 -word utoa_append::return -word utoa_append::return#0 2000002.0 -word utoa_append::sub -word utoa_append::sub#0 3.3335000005E9 -word utoa_append::value -word utoa_append::value#0 3666667.333333333 -word utoa_append::value#1 2.0000000002E10 -word utoa_append::value#2 5.001833334166666E9 +unsigned int sum() +char sum::i +char sum::i#2 // 1500001.5 +char sum::i#3 // 1000001.0 +char *sum::p +char *sum::p#2 // 100001.0 +char *sum::p#5 // 171428.99999999997 +char sum::page +char sum::page#2 // 200002.0 +char sum::page#3 // 37500.375 +unsigned int sum::return +unsigned int sum::return#2 // 202.0 +unsigned int sum::s +unsigned int sum::s#2 // 420000.60000000003 +unsigned int sum::s#3 // 50025.75 +unsigned int sum::s#4 // 1050001.5 +char sum::tmp +char sum::tmp#1 // 2000002.0 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // 2000002.0 +char utoa::$11 // 20002.0 +char *utoa::buffer +char *utoa::buffer#11 // 287143.2857142857 +char *utoa::buffer#14 // 1500001.5 +char *utoa::buffer#4 // 20002.0 +char *utoa::buffer#5 // 2000002.0 +char utoa::digit +char utoa::digit#1 // 2000002.0 +char utoa::digit#2 // 285714.5714285714 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // 600000.6000000001 +unsigned int *utoa::digit_values +char utoa::max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // 500000.5 +char utoa::started#4 // 1000001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // 5501.0 +unsigned int utoa::value#1 // 1000001.0 +unsigned int utoa::value#2 // 572857.857142857 +unsigned int utoa::value#6 // 1500001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // 1375000.25 +char utoa_append::digit +char utoa_append::digit#1 // 1.0000000001E10 +char utoa_append::digit#2 // 1.00050000015E10 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // 2000002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // 3.3335000005E9 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // 3666667.333333333 +unsigned int utoa_append::value#1 // 2.0000000002E10 +unsigned int utoa_append::value#2 // 5.001833334166666E9 Initial phi equivalence classes [ main::i#3 main::i#2 ] @@ -2078,7 +2078,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -2091,7 +2091,7 @@ __start: { // main main: { .label i = $b - // [6] call start + // [6] call start jsr start // [7] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: @@ -2125,7 +2125,7 @@ main: { jmp __b3 // main::@3 __b3: - // [10] call end + // [10] call end jsr end jmp __breturn // main::@return @@ -2137,7 +2137,7 @@ main: { jmp __b2 // main::@2 __b2: - // [13] call sum + // [13] call sum // [32] phi from main::@2 to sum [phi:main::@2->sum] sum_from___b2: jsr sum @@ -2146,14 +2146,14 @@ main: { // main::@4 __b4: // [15] print_uint_decimal::w#0 = sum::return#2 - // [16] call print_uint_decimal + // [16] call print_uint_decimal jsr print_uint_decimal // [17] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: jmp __b5 // main::@5 __b5: - // [18] call print_ln + // [18] call print_ln // [48] phi from main::@5 to print_ln [phi:main::@5->print_ln] print_ln_from___b5: // [48] phi print_char_cursor#49 = print_char_cursor#1 [phi:main::@5->print_ln#0] -- register_copy @@ -2198,7 +2198,7 @@ end: { sta.z Ticks lda.z last_time+1 sta.z Ticks+1 - // [24] call start + // [24] call start jsr start jmp __b1 // end::@1 @@ -2217,14 +2217,14 @@ end: { lda.z last_time+1 sta.z Ticks_1+1 // [27] print_uint::w#0 = Ticks#1 - // [28] call print_uint + // [28] call print_uint jsr print_uint // [29] phi from end::@1 to end::@2 [phi:end::@1->end::@2] __b2_from___b1: jmp __b2 // end::@2 __b2: - // [30] call print_ln + // [30] call print_ln // [48] phi from end::@2 to print_ln [phi:end::@2->print_ln] print_ln_from___b2: // [48] phi print_char_cursor#49 = print_char_cursor#12 [phi:end::@2->print_ln#0] -- register_copy @@ -2315,11 +2315,11 @@ sum: { } // print_uint_decimal // Print a unsigned int as DECIMAL -// print_uint_decimal(word zp($d) w) +// void print_uint_decimal(__zp($d) unsigned int w) print_uint_decimal: { .label w = $d // [43] utoa::value#0 = print_uint_decimal::w#0 - // [44] call utoa + // [44] call utoa // [58] phi from print_uint_decimal to utoa [phi:print_uint_decimal->utoa] utoa_from_print_uint_decimal: jsr utoa @@ -2328,7 +2328,7 @@ print_uint_decimal: { jmp __b1 // print_uint_decimal::@1 __b1: - // [46] call print_str + // [46] call print_str // [79] phi from print_uint_decimal::@1 to print_str [phi:print_uint_decimal::@1->print_str] print_str_from___b1: jsr print_str @@ -2373,12 +2373,12 @@ print_ln: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($d) w) +// void print_uint(__zp($d) unsigned int w) print_uint: { .label w = $d // [53] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [54] call print_uchar + // [54] call print_uchar // [86] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [86] phi print_char_cursor#52 = print_char_cursor#54 [phi:print_uint->print_uchar#0] -- register_copy @@ -2389,7 +2389,7 @@ print_uint: { __b1: // [55] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [56] call print_uchar + // [56] call print_uchar // [86] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [86] phi print_char_cursor#52 = print_char_cursor#12 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -2407,7 +2407,7 @@ print_uint: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($d) value, byte* zp(5) buffer) +// void utoa(__zp($d) unsigned int value, __zp(5) char *buffer, char radix) utoa: { .const max_digits = 5 .label value = $d @@ -2437,7 +2437,7 @@ utoa: { jmp __b3 // utoa::@3 __b3: - // [61] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [61] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [62] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -2505,7 +2505,7 @@ utoa: { // [72] utoa_append::buffer#0 = utoa::buffer#11 // [73] utoa_append::value#0 = utoa::value#2 // [74] utoa_append::sub#0 = utoa::digit_value#0 - // [75] call utoa_append + // [75] call utoa_append // [94] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append @@ -2529,7 +2529,7 @@ utoa: { } // print_str // Print a zero-terminated string -// print_str(byte* zp($f) str) +// void print_str(__zp($f) char *str) print_str: { .label str = $f // [80] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -2558,7 +2558,7 @@ print_str: { // [83] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [84] call print_char + // [84] call print_char // [101] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [101] phi print_char_cursor#36 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -2580,7 +2580,7 @@ print_str: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [87] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -2591,7 +2591,7 @@ print_uchar: { // [88] print_char::ch#1 = DIGITS[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda DIGITS,y - // [89] call print_char + // [89] call print_char // Table of hexadecimal digits // [101] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -2606,7 +2606,7 @@ print_uchar: { axs #0 // [91] print_char::ch#2 = DIGITS[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda DIGITS,x - // [92] call print_char + // [92] call print_char // [101] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [101] phi print_char_cursor#36 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -2627,7 +2627,7 @@ print_uchar: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp(5) buffer, word zp($d) value, word zp($f) sub) +// __zp($d) unsigned int utoa_append(__zp(5) char *buffer, __zp($d) unsigned int value, __zp($f) unsigned int sub) utoa_append: { .label buffer = 5 .label value = $d @@ -2682,7 +2682,7 @@ utoa_append: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [102] *print_char_cursor#36 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -2832,122 +2832,122 @@ Removing instruction lda.z digit_value+1 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -word Ticks -word Ticks#0 Ticks zp[2]:11 101.0 -word Ticks#1 Ticks_1 zp[2]:13 202.0 +__constant char DIGITS[] = "0123456789abcdef"z +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:11 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:13 202.0 void __start() -constant byte* decimal_digits[6] = { fill( 6, 0) } +__constant char decimal_digits[6] = { fill( 6, 0) } void end() -volatile word last_time loadstore zp[2]:9 21.368421052631582 -signed word main() -word main::i -word main::i#2 i zp[2]:11 101.0 -word main::i#3 i zp[2]:11 33.666666666666664 -signed word main::return -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2000002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 1.1020004E7 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:7 251263.0 -byte* print_char_cursor#12 print_char_cursor zp[2]:7 734073.6666666666 -byte* print_char_cursor#36 print_char_cursor zp[2]:7 1.05100025E7 -byte* print_char_cursor#49 print_char_cursor zp[2]:7 25050.75 -byte* print_char_cursor#52 print_char_cursor zp[2]:7 4001.0 -byte* print_char_cursor#54 print_char_cursor zp[2]:7 653.1176470588235 -byte* print_char_cursor#73 print_char_cursor zp[2]:7 202.0 -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:2 50034.16666666666 -byte* print_line_cursor#10 print_line_cursor zp[2]:2 201003.0 -byte* print_line_cursor#22 print_line_cursor zp[2]:2 64.82352941176471 +__loadstore volatile unsigned int last_time // zp[2]:9 21.368421052631582 +int main() +unsigned int main::i +unsigned int main::i#2 // i zp[2]:11 101.0 +unsigned int main::i#3 // i zp[2]:11 33.666666666666664 +int main::return +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2000002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 1.1020004E7 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:7 251263.0 +char *print_char_cursor#12 // print_char_cursor zp[2]:7 734073.6666666666 +char *print_char_cursor#36 // print_char_cursor zp[2]:7 1.05100025E7 +char *print_char_cursor#49 // print_char_cursor zp[2]:7 25050.75 +char *print_char_cursor#52 // print_char_cursor zp[2]:7 4001.0 +char *print_char_cursor#54 // print_char_cursor zp[2]:7 653.1176470588235 +char *print_char_cursor#73 // print_char_cursor zp[2]:7 202.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:2 50034.16666666666 +char *print_line_cursor#10 // print_line_cursor zp[2]:2 201003.0 +char *print_line_cursor#22 // print_line_cursor zp[2]:2 64.82352941176471 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:15 2000002.0 -byte* print_str::str#2 str zp[2]:15 1000001.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:13 701.0 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 w zp[2]:13 1102.0 -constant byte* const rom = (byte*) 57344 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:15 2000002.0 +char *print_str::str#2 // str zp[2]:15 1000001.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:13 701.0 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 // w zp[2]:13 1102.0 +__constant char * const rom = (char *) 57344 void start() -constant word* const start::LAST_TIME = &last_time -word sum() -byte sum::i -byte sum::i#2 reg byte y 1500001.5 -byte sum::i#3 reg byte y 1000001.0 -byte* sum::p -byte* sum::p#2 p zp[2]:5 100001.0 -byte* sum::p#5 p zp[2]:5 171428.99999999997 -byte sum::page -byte sum::page#2 reg byte x 200002.0 -byte sum::page#3 reg byte x 37500.375 -word sum::return -word sum::return#2 return zp[2]:13 202.0 -word sum::s -word sum::s#2 s zp[2]:13 420000.60000000003 -word sum::s#3 s zp[2]:13 50025.75 -word sum::s#4 s zp[2]:13 1050001.5 -byte sum::tmp -byte sum::tmp#1 reg byte a 2000002.0 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 2000002.0 -byte~ utoa::$11 reg byte x 20002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:5 287143.2857142857 -byte* utoa::buffer#14 buffer zp[2]:5 1500001.5 -byte* utoa::buffer#4 buffer zp[2]:5 20002.0 -byte* utoa::buffer#5 buffer zp[2]:5 2000002.0 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:4 2000002.0 -byte utoa::digit#2 digit zp[1]:4 285714.5714285714 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:15 600000.6000000001 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 500000.5 -byte utoa::started#4 reg byte x 1000001.0 -word utoa::value -word utoa::value#0 value zp[2]:13 5501.0 -word utoa::value#1 value zp[2]:13 1000001.0 -word utoa::value#2 value zp[2]:13 572857.857142857 -word utoa::value#6 value zp[2]:13 1500001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:5 1375000.25 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.0000000001E10 -byte utoa_append::digit#2 reg byte x 1.00050000015E10 -word utoa_append::return -word utoa_append::return#0 return zp[2]:13 2000002.0 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:15 3.3335000005E9 -word utoa_append::value -word utoa_append::value#0 value zp[2]:13 3666667.333333333 -word utoa_append::value#1 value zp[2]:13 2.0000000002E10 -word utoa_append::value#2 value zp[2]:13 5.001833334166666E9 +__constant unsigned int * const start::LAST_TIME = &last_time +unsigned int sum() +char sum::i +char sum::i#2 // reg byte y 1500001.5 +char sum::i#3 // reg byte y 1000001.0 +char *sum::p +char *sum::p#2 // p zp[2]:5 100001.0 +char *sum::p#5 // p zp[2]:5 171428.99999999997 +char sum::page +char sum::page#2 // reg byte x 200002.0 +char sum::page#3 // reg byte x 37500.375 +unsigned int sum::return +unsigned int sum::return#2 // return zp[2]:13 202.0 +unsigned int sum::s +unsigned int sum::s#2 // s zp[2]:13 420000.60000000003 +unsigned int sum::s#3 // s zp[2]:13 50025.75 +unsigned int sum::s#4 // s zp[2]:13 1050001.5 +char sum::tmp +char sum::tmp#1 // reg byte a 2000002.0 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 2000002.0 +char utoa::$11 // reg byte x 20002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:5 287143.2857142857 +char *utoa::buffer#14 // buffer zp[2]:5 1500001.5 +char *utoa::buffer#4 // buffer zp[2]:5 20002.0 +char *utoa::buffer#5 // buffer zp[2]:5 2000002.0 +char utoa::digit +char utoa::digit#1 // digit zp[1]:4 2000002.0 +char utoa::digit#2 // digit zp[1]:4 285714.5714285714 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:15 600000.6000000001 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 500000.5 +char utoa::started#4 // reg byte x 1000001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:13 5501.0 +unsigned int utoa::value#1 // value zp[2]:13 1000001.0 +unsigned int utoa::value#2 // value zp[2]:13 572857.857142857 +unsigned int utoa::value#6 // value zp[2]:13 1500001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:5 1375000.25 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.0000000001E10 +char utoa_append::digit#2 // reg byte x 1.00050000015E10 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:13 2000002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:15 3.3335000005E9 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:13 3666667.333333333 +unsigned int utoa_append::value#1 // value zp[2]:13 2.0000000002E10 +unsigned int utoa_append::value#2 // value zp[2]:13 5.001833334166666E9 reg byte x [ sum::page#3 sum::page#2 ] reg byte y [ sum::i#3 sum::i#2 ] @@ -3006,7 +3006,7 @@ __start: { sta.z last_time+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -3017,7 +3017,7 @@ __start: { main: { .label i = $b // start() - // [6] call start + // [6] call start jsr start // [7] phi from main to main::@1 [phi:main->main::@1] // [7] phi print_line_cursor#22 = print_screen#0 [phi:main->main::@1#0] -- pbuz1=pbuc1 @@ -3047,7 +3047,7 @@ main: { // [9] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // main::@3 // end() - // [10] call end + // [10] call end jsr end // main::@return // } @@ -3057,7 +3057,7 @@ main: { // main::@2 __b2: // sum() - // [13] call sum + // [13] call sum // [32] phi from main::@2 to sum [phi:main::@2->sum] jsr sum // sum() @@ -3065,12 +3065,12 @@ main: { // main::@4 // print_uint_decimal(sum()) // [15] print_uint_decimal::w#0 = sum::return#2 - // [16] call print_uint_decimal + // [16] call print_uint_decimal jsr print_uint_decimal // [17] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // print_ln() - // [18] call print_ln + // [18] call print_ln // [48] phi from main::@5 to print_ln [phi:main::@5->print_ln] // [48] phi print_char_cursor#49 = print_char_cursor#1 [phi:main::@5->print_ln#0] -- register_copy jsr print_ln @@ -3114,7 +3114,7 @@ end: { lda.z last_time+1 sta.z Ticks+1 // start() - // [24] call start + // [24] call start jsr start // end::@1 // last_time -= Ticks @@ -3134,12 +3134,12 @@ end: { sta.z Ticks_1+1 // print_uint(Ticks) // [27] print_uint::w#0 = Ticks#1 - // [28] call print_uint + // [28] call print_uint jsr print_uint // [29] phi from end::@1 to end::@2 [phi:end::@1->end::@2] // end::@2 // print_ln() - // [30] call print_ln + // [30] call print_ln // [48] phi from end::@2 to print_ln [phi:end::@2->print_ln] // [48] phi print_char_cursor#49 = print_char_cursor#12 [phi:end::@2->print_ln#0] -- register_copy jsr print_ln @@ -3225,18 +3225,18 @@ sum: { } // print_uint_decimal // Print a unsigned int as DECIMAL -// print_uint_decimal(word zp($d) w) +// void print_uint_decimal(__zp($d) unsigned int w) print_uint_decimal: { .label w = $d // utoa(w, decimal_digits, DECIMAL) // [43] utoa::value#0 = print_uint_decimal::w#0 - // [44] call utoa + // [44] call utoa // [58] phi from print_uint_decimal to utoa [phi:print_uint_decimal->utoa] jsr utoa // [45] phi from print_uint_decimal to print_uint_decimal::@1 [phi:print_uint_decimal->print_uint_decimal::@1] // print_uint_decimal::@1 // print_str(decimal_digits) - // [46] call print_str + // [46] call print_str // [79] phi from print_uint_decimal::@1 to print_str [phi:print_uint_decimal::@1->print_str] jsr print_str // print_uint_decimal::@return @@ -3277,13 +3277,13 @@ print_ln: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($d) w) +// void print_uint(__zp($d) unsigned int w) print_uint: { .label w = $d // print_uchar(BYTE1(w)) // [53] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [54] call print_uchar + // [54] call print_uchar // [86] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [86] phi print_char_cursor#52 = print_char_cursor#54 [phi:print_uint->print_uchar#0] -- register_copy // [86] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -3292,7 +3292,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [55] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [56] call print_uchar + // [56] call print_uchar // [86] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [86] phi print_char_cursor#52 = print_char_cursor#12 [phi:print_uint::@1->print_uchar#0] -- register_copy // [86] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -3308,7 +3308,7 @@ print_uint: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($d) value, byte* zp(5) buffer) +// void utoa(__zp($d) unsigned int value, __zp(5) char *buffer, char radix) utoa: { .const max_digits = 5 .label value = $d @@ -3336,7 +3336,7 @@ utoa: { bcc __b2 // utoa::@3 // *buffer++ = DIGITS[(char)value] - // [61] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [61] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [62] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -3403,7 +3403,7 @@ utoa: { // [72] utoa_append::buffer#0 = utoa::buffer#11 // [73] utoa_append::value#0 = utoa::value#2 // [74] utoa_append::sub#0 = utoa::digit_value#0 - // [75] call utoa_append + // [75] call utoa_append // [94] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) @@ -3426,7 +3426,7 @@ utoa: { } // print_str // Print a zero-terminated string -// print_str(byte* zp($f) str) +// void print_str(__zp($f) char *str) print_str: { .label str = $f // [80] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -3454,7 +3454,7 @@ print_str: { // [83] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [84] call print_char + // [84] call print_char // [101] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [101] phi print_char_cursor#36 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy // [101] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -3473,7 +3473,7 @@ print_str: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [87] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -3486,7 +3486,7 @@ print_uchar: { // [88] print_char::ch#1 = DIGITS[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda DIGITS,y - // [89] call print_char + // [89] call print_char // Table of hexadecimal digits // [101] phi from print_uchar to print_char [phi:print_uchar->print_char] // [101] phi print_char_cursor#36 = print_char_cursor#52 [phi:print_uchar->print_char#0] -- register_copy @@ -3500,7 +3500,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [91] print_char::ch#2 = DIGITS[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda DIGITS,x - // [92] call print_char + // [92] call print_char // [101] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [101] phi print_char_cursor#36 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy // [101] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -3519,7 +3519,7 @@ print_uchar: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp(5) buffer, word zp($d) value, word zp($f) sub) +// __zp($d) unsigned int utoa_append(__zp(5) char *buffer, __zp($d) unsigned int value, __zp($f) unsigned int sub) utoa_append: { .label buffer = 5 .label value = $d @@ -3572,7 +3572,7 @@ utoa_append: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [102] *print_char_cursor#36 = print_char::ch#3 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/millfork-benchmarks/romsum-kc.sym b/src/test/ref/millfork-benchmarks/romsum-kc.sym index 65e7f7c9a..721e94330 100644 --- a/src/test/ref/millfork-benchmarks/romsum-kc.sym +++ b/src/test/ref/millfork-benchmarks/romsum-kc.sym @@ -1,119 +1,119 @@ -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -word Ticks -word Ticks#0 Ticks zp[2]:11 101.0 -word Ticks#1 Ticks_1 zp[2]:13 202.0 +__constant char DIGITS[] = "0123456789abcdef"z +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:11 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:13 202.0 void __start() -constant byte* decimal_digits[6] = { fill( 6, 0) } +__constant char decimal_digits[6] = { fill( 6, 0) } void end() -volatile word last_time loadstore zp[2]:9 21.368421052631582 -signed word main() -word main::i -word main::i#2 i zp[2]:11 101.0 -word main::i#3 i zp[2]:11 33.666666666666664 -signed word main::return -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2000002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 1.1020004E7 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:7 251263.0 -byte* print_char_cursor#12 print_char_cursor zp[2]:7 734073.6666666666 -byte* print_char_cursor#36 print_char_cursor zp[2]:7 1.05100025E7 -byte* print_char_cursor#49 print_char_cursor zp[2]:7 25050.75 -byte* print_char_cursor#52 print_char_cursor zp[2]:7 4001.0 -byte* print_char_cursor#54 print_char_cursor zp[2]:7 653.1176470588235 -byte* print_char_cursor#73 print_char_cursor zp[2]:7 202.0 -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:2 50034.16666666666 -byte* print_line_cursor#10 print_line_cursor zp[2]:2 201003.0 -byte* print_line_cursor#22 print_line_cursor zp[2]:2 64.82352941176471 +__loadstore volatile unsigned int last_time // zp[2]:9 21.368421052631582 +int main() +unsigned int main::i +unsigned int main::i#2 // i zp[2]:11 101.0 +unsigned int main::i#3 // i zp[2]:11 33.666666666666664 +int main::return +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2000002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 1.1020004E7 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:7 251263.0 +char *print_char_cursor#12 // print_char_cursor zp[2]:7 734073.6666666666 +char *print_char_cursor#36 // print_char_cursor zp[2]:7 1.05100025E7 +char *print_char_cursor#49 // print_char_cursor zp[2]:7 25050.75 +char *print_char_cursor#52 // print_char_cursor zp[2]:7 4001.0 +char *print_char_cursor#54 // print_char_cursor zp[2]:7 653.1176470588235 +char *print_char_cursor#73 // print_char_cursor zp[2]:7 202.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:2 50034.16666666666 +char *print_line_cursor#10 // print_line_cursor zp[2]:2 201003.0 +char *print_line_cursor#22 // print_line_cursor zp[2]:2 64.82352941176471 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:15 2000002.0 -byte* print_str::str#2 str zp[2]:15 1000001.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:13 701.0 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 w zp[2]:13 1102.0 -constant byte* const rom = (byte*) 57344 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:15 2000002.0 +char *print_str::str#2 // str zp[2]:15 1000001.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:13 701.0 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 // w zp[2]:13 1102.0 +__constant char * const rom = (char *) 57344 void start() -constant word* const start::LAST_TIME = &last_time -word sum() -byte sum::i -byte sum::i#2 reg byte y 1500001.5 -byte sum::i#3 reg byte y 1000001.0 -byte* sum::p -byte* sum::p#2 p zp[2]:5 100001.0 -byte* sum::p#5 p zp[2]:5 171428.99999999997 -byte sum::page -byte sum::page#2 reg byte x 200002.0 -byte sum::page#3 reg byte x 37500.375 -word sum::return -word sum::return#2 return zp[2]:13 202.0 -word sum::s -word sum::s#2 s zp[2]:13 420000.60000000003 -word sum::s#3 s zp[2]:13 50025.75 -word sum::s#4 s zp[2]:13 1050001.5 -byte sum::tmp -byte sum::tmp#1 reg byte a 2000002.0 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 2000002.0 -byte~ utoa::$11 reg byte x 20002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:5 287143.2857142857 -byte* utoa::buffer#14 buffer zp[2]:5 1500001.5 -byte* utoa::buffer#4 buffer zp[2]:5 20002.0 -byte* utoa::buffer#5 buffer zp[2]:5 2000002.0 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:4 2000002.0 -byte utoa::digit#2 digit zp[1]:4 285714.5714285714 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:15 600000.6000000001 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 500000.5 -byte utoa::started#4 reg byte x 1000001.0 -word utoa::value -word utoa::value#0 value zp[2]:13 5501.0 -word utoa::value#1 value zp[2]:13 1000001.0 -word utoa::value#2 value zp[2]:13 572857.857142857 -word utoa::value#6 value zp[2]:13 1500001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:5 1375000.25 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.0000000001E10 -byte utoa_append::digit#2 reg byte x 1.00050000015E10 -word utoa_append::return -word utoa_append::return#0 return zp[2]:13 2000002.0 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:15 3.3335000005E9 -word utoa_append::value -word utoa_append::value#0 value zp[2]:13 3666667.333333333 -word utoa_append::value#1 value zp[2]:13 2.0000000002E10 -word utoa_append::value#2 value zp[2]:13 5.001833334166666E9 +__constant unsigned int * const start::LAST_TIME = &last_time +unsigned int sum() +char sum::i +char sum::i#2 // reg byte y 1500001.5 +char sum::i#3 // reg byte y 1000001.0 +char *sum::p +char *sum::p#2 // p zp[2]:5 100001.0 +char *sum::p#5 // p zp[2]:5 171428.99999999997 +char sum::page +char sum::page#2 // reg byte x 200002.0 +char sum::page#3 // reg byte x 37500.375 +unsigned int sum::return +unsigned int sum::return#2 // return zp[2]:13 202.0 +unsigned int sum::s +unsigned int sum::s#2 // s zp[2]:13 420000.60000000003 +unsigned int sum::s#3 // s zp[2]:13 50025.75 +unsigned int sum::s#4 // s zp[2]:13 1050001.5 +char sum::tmp +char sum::tmp#1 // reg byte a 2000002.0 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 2000002.0 +char utoa::$11 // reg byte x 20002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:5 287143.2857142857 +char *utoa::buffer#14 // buffer zp[2]:5 1500001.5 +char *utoa::buffer#4 // buffer zp[2]:5 20002.0 +char *utoa::buffer#5 // buffer zp[2]:5 2000002.0 +char utoa::digit +char utoa::digit#1 // digit zp[1]:4 2000002.0 +char utoa::digit#2 // digit zp[1]:4 285714.5714285714 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:15 600000.6000000001 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 500000.5 +char utoa::started#4 // reg byte x 1000001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:13 5501.0 +unsigned int utoa::value#1 // value zp[2]:13 1000001.0 +unsigned int utoa::value#2 // value zp[2]:13 572857.857142857 +unsigned int utoa::value#6 // value zp[2]:13 1500001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:5 1375000.25 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.0000000001E10 +char utoa_append::digit#2 // reg byte x 1.00050000015E10 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:13 2000002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:15 3.3335000005E9 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:13 3666667.333333333 +unsigned int utoa_append::value#1 // value zp[2]:13 2.0000000002E10 +unsigned int utoa_append::value#2 // value zp[2]:13 5.001833334166666E9 reg byte x [ sum::page#3 sum::page#2 ] reg byte y [ sum::i#3 sum::i#2 ] diff --git a/src/test/ref/millfork-benchmarks/sieve-kc.asm b/src/test/ref/millfork-benchmarks/sieve-kc.asm index e43536013..f2ade4ab9 100644 --- a/src/test/ref/millfork-benchmarks/sieve-kc.asm +++ b/src/test/ref/millfork-benchmarks/sieve-kc.asm @@ -172,7 +172,7 @@ end: { rts } // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) @@ -216,7 +216,7 @@ print_ln: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -239,7 +239,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/millfork-benchmarks/sieve-kc.cfg b/src/test/ref/millfork-benchmarks/sieve-kc.cfg index f9c2d36c8..7a4b40a35 100644 --- a/src/test/ref/millfork-benchmarks/sieve-kc.cfg +++ b/src/test/ref/millfork-benchmarks/sieve-kc.cfg @@ -8,60 +8,60 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 [5] phi() - [6] call start + [6] call start to:main::@1 main::@1: scope:[main] from main [7] phi() - [8] call round + [8] call round to:main::@2 main::@2: scope:[main] from main::@1 [9] phi() - [10] call round + [10] call round to:main::@3 main::@3: scope:[main] from main::@2 [11] phi() - [12] call round + [12] call round to:main::@4 main::@4: scope:[main] from main::@3 [13] phi() - [14] call round + [14] call round to:main::@5 main::@5: scope:[main] from main::@4 [15] phi() - [16] call round + [16] call round to:main::@6 main::@6: scope:[main] from main::@5 [17] phi() - [18] call round + [18] call round to:main::@7 main::@7: scope:[main] from main::@6 [19] phi() - [20] call round + [20] call round to:main::@8 main::@8: scope:[main] from main::@7 [21] phi() - [22] call round + [22] call round to:main::@9 main::@9: scope:[main] from main::@8 [23] phi() - [24] call round + [24] call round to:main::@10 main::@10: scope:[main] from main::@9 [25] phi() - [26] call round + [26] call round to:main::@11 main::@11: scope:[main] from main::@10 [27] phi() - [28] call end + [28] call end to:main::@return main::@return: scope:[main] from main::@11 [29] return @@ -116,30 +116,30 @@ round::@2: scope:[round] from round::@1 void end() end: scope:[end] from main::@11 [48] Ticks#0 = last_time - [49] call start + [49] call start to:end::@1 end::@1: scope:[end] from end [50] last_time = last_time - Ticks#0 [51] Ticks#1 = last_time [52] print_uint::w#0 = Ticks#1 - [53] call print_uint + [53] call print_uint to:end::@2 end::@2: scope:[end] from end::@1 [54] phi() - [55] call print_ln + [55] call print_ln to:end::@return end::@return: scope:[end] from end::@2 [56] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 [57] print_uchar::b#0 = byte1 print_uint::w#0 - [58] call print_uchar + [58] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [59] print_uchar::b#1 = byte0 print_uint::w#0 - [60] call print_uchar + [60] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [61] return @@ -158,24 +158,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [66] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [67] print_char_cursor#37 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#27 ) [67] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [68] print_uchar::$0 = print_uchar::b#2 >> 4 [69] print_char::ch#0 = print_hextab[print_uchar::$0] - [70] call print_char + [70] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [71] print_uchar::$2 = print_uchar::b#2 & $f [72] print_char::ch#1 = print_hextab[print_uchar::$2] - [73] call print_char + [73] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [74] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [75] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) [75] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) diff --git a/src/test/ref/millfork-benchmarks/sieve-kc.log b/src/test/ref/millfork-benchmarks/sieve-kc.log index 6c70c7676..dfb74864e 100644 --- a/src/test/ref/millfork-benchmarks/sieve-kc.log +++ b/src/test/ref/millfork-benchmarks/sieve-kc.log @@ -1,6 +1,6 @@ Setting inferred volatile on symbol affected by address-of last_time Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -29,13 +29,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from end::@1 print_char_cursor#36 = phi( end::@1/print_char_cursor#38 ) print_uint::w#1 = phi( end::@1/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -43,7 +43,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#2 = print_char_cursor#20 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#21 = phi( print_uint::@1/print_char_cursor#7 ) @@ -55,13 +55,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#37 = phi( print_uint/print_char_cursor#36, print_uint::@1/print_char_cursor#2 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -69,7 +69,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#5 = print_char_cursor#23 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#24 = phi( print_uchar::@1/print_char_cursor#9 ) @@ -81,7 +81,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#5 ) print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -107,7 +107,7 @@ end: scope:[end] from main::@11 print_line_cursor#24 = phi( main::@11/print_line_cursor#20 ) print_char_cursor#41 = phi( main::@11/print_char_cursor#39 ) Ticks#0 = last_time - call start + call start to:end::@1 end::@1: scope:[end] from end print_line_cursor#22 = phi( end/print_line_cursor#24 ) @@ -116,14 +116,14 @@ end::@1: scope:[end] from end last_time = last_time - Ticks#8 Ticks#1 = last_time print_uint::w#0 = Ticks#1 - call print_uint + call print_uint to:end::@2 end::@2: scope:[end] from end::@1 Ticks#17 = phi( end::@1/Ticks#1 ) print_line_cursor#19 = phi( end::@1/print_line_cursor#22 ) print_char_cursor#28 = phi( end::@1/print_char_cursor#4 ) print_char_cursor#10 = print_char_cursor#28 - call print_ln + call print_ln to:end::@3 end::@3: scope:[end] from end::@2 Ticks#14 = phi( end::@2/Ticks#17 ) @@ -144,7 +144,7 @@ end::@return: scope:[end] from end::@3 void round() round: scope:[round] from main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 - round::S#0 = (byte*) 0 + round::S#0 = (char *) 0 round::I#0 = 0 round::p#0 = Sieve to:round::@1 @@ -198,78 +198,78 @@ round::@return: scope:[round] from round::@4 return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 print_line_cursor#34 = phi( __start::@1/print_line_cursor#21 ) print_char_cursor#52 = phi( __start::@1/print_char_cursor#40 ) Ticks#28 = phi( __start::@1/Ticks#16 ) - call start + call start to:main::@1 main::@1: scope:[main] from main print_line_cursor#33 = phi( main/print_line_cursor#34 ) print_char_cursor#51 = phi( main/print_char_cursor#52 ) Ticks#27 = phi( main/Ticks#28 ) - call round + call round to:main::@2 main::@2: scope:[main] from main::@1 print_line_cursor#32 = phi( main::@1/print_line_cursor#33 ) print_char_cursor#50 = phi( main::@1/print_char_cursor#51 ) Ticks#26 = phi( main::@1/Ticks#27 ) - call round + call round to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#31 = phi( main::@2/print_line_cursor#32 ) print_char_cursor#49 = phi( main::@2/print_char_cursor#50 ) Ticks#25 = phi( main::@2/Ticks#26 ) - call round + call round to:main::@4 main::@4: scope:[main] from main::@3 print_line_cursor#30 = phi( main::@3/print_line_cursor#31 ) print_char_cursor#48 = phi( main::@3/print_char_cursor#49 ) Ticks#24 = phi( main::@3/Ticks#25 ) - call round + call round to:main::@5 main::@5: scope:[main] from main::@4 print_line_cursor#29 = phi( main::@4/print_line_cursor#30 ) print_char_cursor#47 = phi( main::@4/print_char_cursor#48 ) Ticks#23 = phi( main::@4/Ticks#24 ) - call round + call round to:main::@6 main::@6: scope:[main] from main::@5 print_line_cursor#28 = phi( main::@5/print_line_cursor#29 ) print_char_cursor#46 = phi( main::@5/print_char_cursor#47 ) Ticks#22 = phi( main::@5/Ticks#23 ) - call round + call round to:main::@7 main::@7: scope:[main] from main::@6 print_line_cursor#27 = phi( main::@6/print_line_cursor#28 ) print_char_cursor#45 = phi( main::@6/print_char_cursor#46 ) Ticks#21 = phi( main::@6/Ticks#22 ) - call round + call round to:main::@8 main::@8: scope:[main] from main::@7 print_line_cursor#26 = phi( main::@7/print_line_cursor#27 ) print_char_cursor#44 = phi( main::@7/print_char_cursor#45 ) Ticks#20 = phi( main::@7/Ticks#21 ) - call round + call round to:main::@9 main::@9: scope:[main] from main::@8 print_line_cursor#25 = phi( main::@8/print_line_cursor#26 ) print_char_cursor#43 = phi( main::@8/print_char_cursor#44 ) Ticks#19 = phi( main::@8/Ticks#20 ) - call round + call round to:main::@10 main::@10: scope:[main] from main::@9 print_line_cursor#23 = phi( main::@9/print_line_cursor#25 ) print_char_cursor#42 = phi( main::@9/print_char_cursor#43 ) Ticks#18 = phi( main::@9/Ticks#19 ) - call round + call round to:main::@11 main::@11: scope:[main] from main::@10 print_line_cursor#20 = phi( main::@10/print_line_cursor#23 ) print_char_cursor#39 = phi( main::@10/print_char_cursor#42 ) Ticks#15 = phi( main::@10/Ticks#18 ) - call end + call end to:main::@12 main::@12: scope:[main] from main::@11 print_line_cursor#14 = phi( main::@11/print_line_cursor#3 ) @@ -296,7 +296,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#6 = print_screen#0 print_char_cursor#15 = print_line_cursor#6 last_time = 0 @@ -307,7 +307,7 @@ __start::@1: scope:[__start] from __start::__init1 print_line_cursor#21 = phi( __start::__init1/print_line_cursor#6 ) print_char_cursor#40 = phi( __start::__init1/print_char_cursor#15 ) Ticks#16 = phi( __start::__init1/Ticks#5 ) - call main + call main main::return#2 = main::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::@1 @@ -332,203 +332,203 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const word COUNT = $4000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte SQRT_COUNT = $80 -constant byte* Sieve[COUNT] = { fill( COUNT, 0) } -word Ticks -word Ticks#0 -word Ticks#1 -word Ticks#10 -word Ticks#11 -word Ticks#12 -word Ticks#13 -word Ticks#14 -word Ticks#15 -word Ticks#16 -word Ticks#17 -word Ticks#18 -word Ticks#19 -word Ticks#2 -word Ticks#20 -word Ticks#21 -word Ticks#22 -word Ticks#23 -word Ticks#24 -word Ticks#25 -word Ticks#26 -word Ticks#27 -word Ticks#28 -word Ticks#3 -word Ticks#4 -word Ticks#5 -word Ticks#6 -word Ticks#7 -word Ticks#8 -word Ticks#9 +__constant const unsigned int COUNT = $4000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char SQRT_COUNT = $80 +__constant char Sieve[COUNT] = { fill( COUNT, 0) } +unsigned int Ticks +unsigned int Ticks#0 +unsigned int Ticks#1 +unsigned int Ticks#10 +unsigned int Ticks#11 +unsigned int Ticks#12 +unsigned int Ticks#13 +unsigned int Ticks#14 +unsigned int Ticks#15 +unsigned int Ticks#16 +unsigned int Ticks#17 +unsigned int Ticks#18 +unsigned int Ticks#19 +unsigned int Ticks#2 +unsigned int Ticks#20 +unsigned int Ticks#21 +unsigned int Ticks#22 +unsigned int Ticks#23 +unsigned int Ticks#24 +unsigned int Ticks#25 +unsigned int Ticks#26 +unsigned int Ticks#27 +unsigned int Ticks#28 +unsigned int Ticks#3 +unsigned int Ticks#4 +unsigned int Ticks#5 +unsigned int Ticks#6 +unsigned int Ticks#7 +unsigned int Ticks#8 +unsigned int Ticks#9 void __start() void end() -volatile word last_time loadstore -signed word main() -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__loadstore volatile unsigned int last_time +int main() +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 void round() -bool~ round::$0 -bool~ round::$1 -bool~ round::$2 -bool~ round::$3 -byte~ round::$4 -byte*~ round::$5 -bool~ round::$6 -byte round::I -byte round::I#0 -byte round::I#1 -byte round::I#2 -byte round::I#3 -byte round::I#4 -byte round::I#5 -byte round::I#6 -byte round::I#7 -byte round::I#8 -byte* round::S -byte* round::S#0 -byte* round::S#1 -byte* round::S#2 -byte* round::S#3 -byte* round::S#4 -byte* round::p -byte* round::p#0 -byte* round::p#1 -byte* round::p#2 -byte* round::p#3 +bool round::$0 +bool round::$1 +bool round::$2 +bool round::$3 +char round::$4 +char *round::$5 +bool round::$6 +char round::I +char round::I#0 +char round::I#1 +char round::I#2 +char round::I#3 +char round::I#4 +char round::I#5 +char round::I#6 +char round::I#7 +char round::I#8 +char *round::S +char *round::S#0 +char *round::S#1 +char *round::S#2 +char *round::S#3 +char *round::S#4 +char *round::p +char *round::p#0 +char *round::p#1 +char *round::p#2 +char *round::p#3 void start() -constant word* const start::LAST_TIME = &last_time +__constant unsigned int * const start::LAST_TIME = &last_time Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#9 + $28 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#2 >> 4 @@ -555,19 +555,19 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [82] round::$3 = Sieve[round::I#4] != 0 from [81] round::$2 = Sieve[round::I#4] == 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#10 print_char_cursor#0 print_line_cursor#11 print_char_cursor#19 print_line_cursor#1 print_char_cursor#1 @@ -638,12 +638,12 @@ Simple Condition round::$1 [52] if(round::I#3> 4 [69] print_char::ch#0 = print_hextab[print_uchar::$0] - [70] call print_char + [70] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [71] print_uchar::$2 = print_uchar::b#2 & $f [72] print_char::ch#1 = print_hextab[print_uchar::$2] - [73] call print_char + [73] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [74] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [75] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 ) [75] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -934,50 +934,50 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -word Ticks -word Ticks#0 101.0 -word Ticks#1 202.0 +unsigned int Ticks +unsigned int Ticks#0 // 101.0 +unsigned int Ticks#1 // 202.0 void __start() void end() -volatile word last_time loadstore 14.500000000000002 -signed word main() -signed word main::return -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#1 20002.0 -byte print_char::ch#2 120003.0 -byte* print_char_cursor -byte* print_char_cursor#26 110002.0 -byte* print_char_cursor#27 7117.882352941177 -byte* print_char_cursor#37 3667.333333333333 -byte* print_line_cursor -byte* print_line_cursor#0 15001.5 -byte* print_line_cursor#9 20002.0 +__loadstore volatile unsigned int last_time // 14.500000000000002 +int main() +int main::return +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#1 // 20002.0 +char print_char::ch#2 // 120003.0 +char *print_char_cursor +char *print_char_cursor#26 // 110002.0 +char *print_char_cursor#27 // 7117.882352941177 +char *print_char_cursor#37 // 3667.333333333333 +char *print_line_cursor +char *print_line_cursor#0 // 15001.5 +char *print_line_cursor#9 // 20002.0 void print_ln() -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 void round() -byte~ round::$4 2002.0 -byte round::I -byte round::I#2 2002.0 -byte round::I#3 1667.3333333333333 -byte* round::S -byte* round::S#1 2002.0 -byte* round::S#2 20002.0 -byte* round::S#3 13668.333333333332 -byte* round::p -byte* round::p#1 2002.0 -byte* round::p#2 1334.6666666666667 +char round::$4 // 2002.0 +char round::I +char round::I#2 // 2002.0 +char round::I#3 // 1667.3333333333333 +char *round::S +char *round::S#1 // 2002.0 +char *round::S#2 // 20002.0 +char *round::S#3 // 13668.333333333332 +char *round::p +char *round::p#1 // 2002.0 +char *round::p#2 // 1334.6666666666667 void start() Initial phi equivalence classes @@ -1161,7 +1161,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1173,14 +1173,14 @@ __start: { } // main main: { - // [6] call start + // [6] call start jsr start // [7] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [8] call round + // [8] call round // [32] phi from main::@1 to round [phi:main::@1->round] round_from___b1: jsr round @@ -1189,7 +1189,7 @@ main: { jmp __b2 // main::@2 __b2: - // [10] call round + // [10] call round // [32] phi from main::@2 to round [phi:main::@2->round] round_from___b2: jsr round @@ -1198,7 +1198,7 @@ main: { jmp __b3 // main::@3 __b3: - // [12] call round + // [12] call round // [32] phi from main::@3 to round [phi:main::@3->round] round_from___b3: jsr round @@ -1207,7 +1207,7 @@ main: { jmp __b4 // main::@4 __b4: - // [14] call round + // [14] call round // [32] phi from main::@4 to round [phi:main::@4->round] round_from___b4: jsr round @@ -1216,7 +1216,7 @@ main: { jmp __b5 // main::@5 __b5: - // [16] call round + // [16] call round // [32] phi from main::@5 to round [phi:main::@5->round] round_from___b5: jsr round @@ -1225,7 +1225,7 @@ main: { jmp __b6 // main::@6 __b6: - // [18] call round + // [18] call round // [32] phi from main::@6 to round [phi:main::@6->round] round_from___b6: jsr round @@ -1234,7 +1234,7 @@ main: { jmp __b7 // main::@7 __b7: - // [20] call round + // [20] call round // [32] phi from main::@7 to round [phi:main::@7->round] round_from___b7: jsr round @@ -1243,7 +1243,7 @@ main: { jmp __b8 // main::@8 __b8: - // [22] call round + // [22] call round // [32] phi from main::@8 to round [phi:main::@8->round] round_from___b8: jsr round @@ -1252,7 +1252,7 @@ main: { jmp __b9 // main::@9 __b9: - // [24] call round + // [24] call round // [32] phi from main::@9 to round [phi:main::@9->round] round_from___b9: jsr round @@ -1261,7 +1261,7 @@ main: { jmp __b10 // main::@10 __b10: - // [26] call round + // [26] call round // [32] phi from main::@10 to round [phi:main::@10->round] round_from___b10: jsr round @@ -1270,7 +1270,7 @@ main: { jmp __b11 // main::@11 __b11: - // [28] call end + // [28] call end jsr end jmp __breturn // main::@return @@ -1411,7 +1411,7 @@ end: { sta.z Ticks lda.z last_time+1 sta.z Ticks+1 - // [49] call start + // [49] call start jsr start jmp __b1 // end::@1 @@ -1430,14 +1430,14 @@ end: { lda.z last_time+1 sta.z Ticks_1+1 // [52] print_uint::w#0 = Ticks#1 - // [53] call print_uint + // [53] call print_uint jsr print_uint // [54] phi from end::@1 to end::@2 [phi:end::@1->end::@2] __b2_from___b1: jmp __b2 // end::@2 __b2: - // [55] call print_ln + // [55] call print_ln // [62] phi from end::@2 to print_ln [phi:end::@2->print_ln] print_ln_from___b2: jsr print_ln @@ -1449,12 +1449,12 @@ end: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // [57] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [58] call print_uchar + // [58] call print_uchar // [67] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [67] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 @@ -1469,7 +1469,7 @@ print_uint: { __b1: // [59] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [60] call print_uchar + // [60] call print_uchar // [67] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [67] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1523,7 +1523,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [68] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1534,7 +1534,7 @@ print_uchar: { // [69] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [70] call print_char + // [70] call print_char // Table of hexadecimal digits // [75] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1549,7 +1549,7 @@ print_uchar: { axs #0 // [72] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [73] call print_char + // [73] call print_char // [75] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [75] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1563,7 +1563,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [76] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 @@ -1695,61 +1695,61 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const word COUNT = $4000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte SQRT_COUNT = $80 -constant byte* Sieve[COUNT] = { fill( COUNT, 0) } -word Ticks -word Ticks#0 Ticks zp[2]:8 101.0 -word Ticks#1 Ticks_1 zp[2]:10 202.0 +__constant const unsigned int COUNT = $4000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char SQRT_COUNT = $80 +__constant char Sieve[COUNT] = { fill( COUNT, 0) } +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:8 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:10 202.0 void __start() void end() -volatile word last_time loadstore zp[2]:6 14.500000000000002 -signed word main() -signed word main::return -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#26 print_char_cursor zp[2]:4 110002.0 -byte* print_char_cursor#27 print_char_cursor zp[2]:4 7117.882352941177 -byte* print_char_cursor#37 print_char_cursor zp[2]:4 3667.333333333333 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:2 15001.5 -byte* print_line_cursor#9 print_line_cursor zp[2]:2 20002.0 +__loadstore volatile unsigned int last_time // zp[2]:6 14.500000000000002 +int main() +int main::return +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#26 // print_char_cursor zp[2]:4 110002.0 +char *print_char_cursor#27 // print_char_cursor zp[2]:4 7117.882352941177 +char *print_char_cursor#37 // print_char_cursor zp[2]:4 3667.333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:2 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:2 20002.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 701.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 701.0 void round() -byte~ round::$4 reg byte a 2002.0 -byte round::I -byte round::I#2 reg byte x 2002.0 -byte round::I#3 reg byte x 1667.3333333333333 -byte* round::S -byte* round::S#1 S zp[2]:4 2002.0 -byte* round::S#2 S zp[2]:4 20002.0 -byte* round::S#3 S zp[2]:4 13668.333333333332 -byte* round::p -byte* round::p#1 p zp[2]:2 2002.0 -byte* round::p#2 p zp[2]:2 1334.6666666666667 +char round::$4 // reg byte a 2002.0 +char round::I +char round::I#2 // reg byte x 2002.0 +char round::I#3 // reg byte x 1667.3333333333333 +char *round::S +char *round::S#1 // S zp[2]:4 2002.0 +char *round::S#2 // S zp[2]:4 20002.0 +char *round::S#3 // S zp[2]:4 13668.333333333332 +char *round::p +char *round::p#1 // p zp[2]:2 2002.0 +char *round::p#2 // p zp[2]:2 1334.6666666666667 void start() -constant word* const start::LAST_TIME = &last_time +__constant unsigned int * const start::LAST_TIME = &last_time reg byte x [ round::I#3 round::I#2 ] zp[2]:2 [ print_line_cursor#9 print_line_cursor#0 round::p#2 round::p#1 ] @@ -1801,7 +1801,7 @@ __start: { sta.z last_time+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -1811,72 +1811,72 @@ __start: { // main main: { // start() - // [6] call start + // [6] call start jsr start // [7] phi from main to main::@1 [phi:main->main::@1] // main::@1 // round() - // [8] call round + // [8] call round // [32] phi from main::@1 to round [phi:main::@1->round] jsr round // [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // round() - // [10] call round + // [10] call round // [32] phi from main::@2 to round [phi:main::@2->round] jsr round // [11] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // round() - // [12] call round + // [12] call round // [32] phi from main::@3 to round [phi:main::@3->round] jsr round // [13] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // round() - // [14] call round + // [14] call round // [32] phi from main::@4 to round [phi:main::@4->round] jsr round // [15] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // round() - // [16] call round + // [16] call round // [32] phi from main::@5 to round [phi:main::@5->round] jsr round // [17] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // round() - // [18] call round + // [18] call round // [32] phi from main::@6 to round [phi:main::@6->round] jsr round // [19] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // round() - // [20] call round + // [20] call round // [32] phi from main::@7 to round [phi:main::@7->round] jsr round // [21] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // round() - // [22] call round + // [22] call round // [32] phi from main::@8 to round [phi:main::@8->round] jsr round // [23] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // round() - // [24] call round + // [24] call round // [32] phi from main::@9 to round [phi:main::@9->round] jsr round // [25] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // round() - // [26] call round + // [26] call round // [32] phi from main::@10 to round [phi:main::@10->round] jsr round // [27] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // end() - // [28] call end + // [28] call end jsr end // main::@return // } @@ -2016,7 +2016,7 @@ end: { lda.z last_time+1 sta.z Ticks+1 // start() - // [49] call start + // [49] call start jsr start // end::@1 // last_time -= Ticks @@ -2036,12 +2036,12 @@ end: { sta.z Ticks_1+1 // print_uint(Ticks) // [52] print_uint::w#0 = Ticks#1 - // [53] call print_uint + // [53] call print_uint jsr print_uint // [54] phi from end::@1 to end::@2 [phi:end::@1->end::@2] // end::@2 // print_ln() - // [55] call print_ln + // [55] call print_ln // [62] phi from end::@2 to print_ln [phi:end::@2->print_ln] jsr print_ln // end::@return @@ -2051,13 +2051,13 @@ end: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) // [57] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [58] call print_uchar + // [58] call print_uchar // [67] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [67] phi print_char_cursor#37 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 lda #print_uchar] // [67] phi print_char_cursor#37 = print_char_cursor#27 [phi:print_uint::@1->print_uchar#0] -- register_copy // [67] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -2119,7 +2119,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [68] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2132,7 +2132,7 @@ print_uchar: { // [69] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [70] call print_char + // [70] call print_char // Table of hexadecimal digits // [75] phi from print_uchar to print_char [phi:print_uchar->print_char] // [75] phi print_char_cursor#26 = print_char_cursor#37 [phi:print_uchar->print_char#0] -- register_copy @@ -2146,7 +2146,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [72] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [73] call print_char + // [73] call print_char // [75] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [75] phi print_char_cursor#26 = print_char_cursor#27 [phi:print_uchar::@1->print_char#0] -- register_copy // [75] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2158,7 +2158,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [76] *print_char_cursor#26 = print_char::ch#2 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/millfork-benchmarks/sieve-kc.sym b/src/test/ref/millfork-benchmarks/sieve-kc.sym index de450290d..a1c911261 100644 --- a/src/test/ref/millfork-benchmarks/sieve-kc.sym +++ b/src/test/ref/millfork-benchmarks/sieve-kc.sym @@ -1,58 +1,58 @@ -constant const word COUNT = $4000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte SQRT_COUNT = $80 -constant byte* Sieve[COUNT] = { fill( COUNT, 0) } -word Ticks -word Ticks#0 Ticks zp[2]:8 101.0 -word Ticks#1 Ticks_1 zp[2]:10 202.0 +__constant const unsigned int COUNT = $4000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char SQRT_COUNT = $80 +__constant char Sieve[COUNT] = { fill( COUNT, 0) } +unsigned int Ticks +unsigned int Ticks#0 // Ticks zp[2]:8 101.0 +unsigned int Ticks#1 // Ticks_1 zp[2]:10 202.0 void __start() void end() -volatile word last_time loadstore zp[2]:6 14.500000000000002 -signed word main() -signed word main::return -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#26 print_char_cursor zp[2]:4 110002.0 -byte* print_char_cursor#27 print_char_cursor zp[2]:4 7117.882352941177 -byte* print_char_cursor#37 print_char_cursor zp[2]:4 3667.333333333333 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:2 15001.5 -byte* print_line_cursor#9 print_line_cursor zp[2]:2 20002.0 +__loadstore volatile unsigned int last_time // zp[2]:6 14.500000000000002 +int main() +int main::return +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#26 // print_char_cursor zp[2]:4 110002.0 +char *print_char_cursor#27 // print_char_cursor zp[2]:4 7117.882352941177 +char *print_char_cursor#37 // print_char_cursor zp[2]:4 3667.333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:2 15001.5 +char *print_line_cursor#9 // print_line_cursor zp[2]:2 20002.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 701.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 701.0 void round() -byte~ round::$4 reg byte a 2002.0 -byte round::I -byte round::I#2 reg byte x 2002.0 -byte round::I#3 reg byte x 1667.3333333333333 -byte* round::S -byte* round::S#1 S zp[2]:4 2002.0 -byte* round::S#2 S zp[2]:4 20002.0 -byte* round::S#3 S zp[2]:4 13668.333333333332 -byte* round::p -byte* round::p#1 p zp[2]:2 2002.0 -byte* round::p#2 p zp[2]:2 1334.6666666666667 +char round::$4 // reg byte a 2002.0 +char round::I +char round::I#2 // reg byte x 2002.0 +char round::I#3 // reg byte x 1667.3333333333333 +char *round::S +char *round::S#1 // S zp[2]:4 2002.0 +char *round::S#2 // S zp[2]:4 20002.0 +char *round::S#3 // S zp[2]:4 13668.333333333332 +char *round::p +char *round::p#1 // p zp[2]:2 2002.0 +char *round::p#2 // p zp[2]:2 1334.6666666666667 void start() -constant word* const start::LAST_TIME = &last_time +__constant unsigned int * const start::LAST_TIME = &last_time reg byte x [ round::I#3 round::I#2 ] zp[2]:2 [ print_line_cursor#9 print_line_cursor#0 round::p#2 round::p#1 ] diff --git a/src/test/ref/min-fmul-16.asm b/src/test/ref/min-fmul-16.asm index 96bccb95c..7040371df 100644 --- a/src/test/ref/min-fmul-16.asm +++ b/src/test/ref/min-fmul-16.asm @@ -187,6 +187,7 @@ mulf_init: { } // Fast multiply two unsigned words to a double word result // Done in assembler to utilize fast addition A+X +// __zp($e) unsigned long mulf16u(unsigned int a, unsigned int b) mulf16u: { .label memA = $f8 .label memB = $fa @@ -308,7 +309,7 @@ mulf16u: { rts } // Print a unsigned long as HEX -// print_ulong(dword zp($e) dw) +// void print_ulong(__zp($e) unsigned long dw) print_ulong: { .label dw = $e // print_uint(WORD1(dw)) @@ -327,7 +328,7 @@ print_ulong: { rts } // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) @@ -340,7 +341,7 @@ print_uint: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -363,7 +364,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/min-fmul-16.cfg b/src/test/ref/min-fmul-16.cfg index 92457d371..14c2c45c3 100644 --- a/src/test/ref/min-fmul-16.cfg +++ b/src/test/ref/min-fmul-16.cfg @@ -2,27 +2,27 @@ void main() main: scope:[main] from [0] phi() - [1] call mulf_init + [1] call mulf_init to:main::@4 main::@4: scope:[main] from main asm { sei } to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - [3] print_char_cursor#15 = phi( main::@4/(byte*) 1024, main::@5/SCREEN ) + [3] print_char_cursor#15 = phi( main::@4/(char *) 1024, main::@5/SCREEN ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [4] if(*RASTER!=$ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [5] *BORDER_COLOR = ++ *BORDER_COLOR - [6] call mulf16u + [6] call mulf16u [7] mulf16u::return#0 = mulf16u::return#1 to:main::@5 main::@5: scope:[main] from main::@3 [8] main::r#0 = mulf16u::return#0 [9] *BORDER_COLOR = -- *BORDER_COLOR [10] print_ulong::dw#0 = main::r#0 - [11] call print_ulong + [11] call print_ulong to:main::@1 void mulf_init() @@ -86,7 +86,7 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 [40] mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#2 to:mulf_init::@1 -dword mulf16u(word mulf16u::a , word mulf16u::b) +unsigned long mulf16u(unsigned int a , unsigned int b) mulf16u: scope:[mulf16u] from main::@3 [41] *mulf16u::memA = main::a [42] *mulf16u::memB = main::b @@ -97,52 +97,52 @@ mulf16u::@return: scope:[mulf16u] from mulf16u [45] return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from main::@5 [46] print_uint::w#0 = word1 print_ulong::dw#0 - [47] call print_uint + [47] call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong [48] print_uint::w#1 = word0 print_ulong::dw#0 - [49] call print_uint + [49] call print_uint to:print_ulong::@return print_ulong::@return: scope:[print_ulong] from print_ulong::@1 [50] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_ulong print_ulong::@1 [51] print_char_cursor#36 = phi( print_ulong/print_char_cursor#15, print_ulong::@1/print_char_cursor#10 ) [51] print_uint::w#2 = phi( print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 ) [52] print_uchar::b#0 = byte1 print_uint::w#2 - [53] call print_uchar + [53] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [54] print_uchar::b#1 = byte0 print_uint::w#2 - [55] call print_uchar + [55] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [56] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [57] print_char_cursor#38 = phi( print_uint/print_char_cursor#36, print_uint::@1/print_char_cursor#10 ) [57] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [58] print_uchar::$0 = print_uchar::b#2 >> 4 [59] print_char::ch#0 = print_hextab[print_uchar::$0] - [60] call print_char + [60] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [61] print_uchar::$2 = print_uchar::b#2 & $f [62] print_char::ch#1 = print_hextab[print_uchar::$2] - [63] call print_char + [63] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [64] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [65] print_char_cursor#28 = phi( print_uchar/print_char_cursor#38, print_uchar::@1/print_char_cursor#10 ) [65] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) diff --git a/src/test/ref/min-fmul-16.log b/src/test/ref/min-fmul-16.log index 6b06d83a1..ec7e03fa7 100644 --- a/src/test/ref/min-fmul-16.log +++ b/src/test/ref/min-fmul-16.log @@ -1,15 +1,15 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$3 CONTROL FLOW GRAPH SSA -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_ulong print_ulong::@1 print_char_cursor#36 = phi( print_ulong/print_char_cursor#37, print_ulong::@1/print_char_cursor#3 ) print_uint::w#2 = phi( print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 ) print_uint::$0 = byte1 print_uint::w#2 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#3 = phi( print_uint/print_uint::w#2 ) @@ -17,7 +17,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#0 = print_char_cursor#19 print_uint::$2 = byte0 print_uint::w#3 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#20 = phi( print_uint::@1/print_char_cursor#8 ) @@ -29,13 +29,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from main::@5 print_char_cursor#37 = phi( main::@5/print_char_cursor#39 ) print_ulong::dw#1 = phi( main::@5/print_ulong::dw#0 ) print_ulong::$0 = word1 print_ulong::dw#1 print_uint::w#0 = print_ulong::$0 - call print_uint + call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong print_ulong::dw#2 = phi( print_ulong/print_ulong::dw#1 ) @@ -43,7 +43,7 @@ print_ulong::@1: scope:[print_ulong] from print_ulong print_char_cursor#3 = print_char_cursor#22 print_ulong::$2 = word0 print_ulong::dw#2 print_uint::w#1 = print_ulong::$2 - call print_uint + call print_uint to:print_ulong::@2 print_ulong::@2: scope:[print_ulong] from print_ulong::@1 print_char_cursor#23 = phi( print_ulong::@1/print_char_cursor#2 ) @@ -55,13 +55,13 @@ print_ulong::@return: scope:[print_ulong] from print_ulong::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#38 = phi( print_uint/print_char_cursor#36, print_uint::@1/print_char_cursor#0 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -69,7 +69,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#6 = print_char_cursor#25 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#26 = phi( print_uchar::@1/print_char_cursor#10 ) @@ -81,7 +81,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 print_char_cursor#28 = phi( print_uchar/print_char_cursor#38, print_uchar::@1/print_char_cursor#6 ) print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -94,7 +94,7 @@ print_char::@return: scope:[print_char] from print_char return to:@return -void print_set_screen(byte* print_set_screen::screen) +void print_set_screen(char *screen) print_set_screen: scope:[print_set_screen] from main::@6 print_set_screen::screen#1 = phi( main::@6/print_set_screen::screen#0 ) print_screen#0 = print_set_screen::screen#1 @@ -116,7 +116,7 @@ main: scope:[main] from __start::@1 print_line_cursor#17 = phi( __start::@1/print_line_cursor#14 ) print_screen#17 = phi( __start::@1/print_screen#14 ) print_char_cursor#44 = phi( __start::@1/print_char_cursor#41 ) - call mulf_init + call mulf_init to:main::@4 main::@4: scope:[main] from main print_line_cursor#15 = phi( main/print_line_cursor#17 ) @@ -144,7 +144,7 @@ main::@3: scope:[main] from main::@2 *BORDER_COLOR = ++ *BORDER_COLOR mulf16u::a#0 = main::a mulf16u::b#0 = main::b - call mulf16u + call mulf16u mulf16u::return#0 = mulf16u::return#2 to:main::@5 main::@5: scope:[main] from main::@3 @@ -155,7 +155,7 @@ main::@5: scope:[main] from main::@3 main::r#0 = mulf16u::return#3 *BORDER_COLOR = -- *BORDER_COLOR print_ulong::dw#0 = main::r#0 - call print_ulong + call print_ulong to:main::@6 main::@6: scope:[main] from main::@5 print_line_cursor#12 = phi( main::@5/print_line_cursor#16 ) @@ -163,7 +163,7 @@ main::@6: scope:[main] from main::@5 print_char_cursor#31 = phi( main::@5/print_char_cursor#5 ) print_char_cursor#13 = print_char_cursor#31 print_set_screen::screen#0 = SCREEN - call print_set_screen + call print_set_screen to:main::@7 main::@7: scope:[main] from main::@6 print_char_cursor#32 = phi( main::@6/print_char_cursor#12 ) @@ -213,7 +213,7 @@ mulf_init::@2: scope:[mulf_init] from mulf_init::@1 if(mulf_init::$3) goto mulf_init::@4 to:mulf_init::@5 mulf_init::@3: scope:[mulf_init] from mulf_init::@1 - mulf_init::x_255#0 = (byte)-1 + mulf_init::x_255#0 = (char)-1 mulf_init::dir#0 = $ff mulf_init::sqr2_hi#0 = mulf_sqr2_hi mulf_init::sqr2_lo#0 = mulf_sqr2_lo @@ -285,7 +285,7 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@8 return to:@return -dword mulf16u(word mulf16u::a , word mulf16u::b) +unsigned long mulf16u(unsigned int a , unsigned int b) mulf16u: scope:[mulf16u] from main::@3 mulf16u::b#1 = phi( main::@3/mulf16u::b#0 ) mulf16u::a#1 = phi( main::@3/mulf16u::a#0 ) @@ -304,7 +304,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#4 = (byte*)$400 + print_screen#4 = (char *)$400 print_line_cursor#4 = print_screen#4 print_char_cursor#16 = print_line_cursor#4 to:__start::@1 @@ -312,7 +312,7 @@ __start::@1: scope:[__start] from __start::__init1 print_line_cursor#14 = phi( __start::__init1/print_line_cursor#4 ) print_screen#14 = phi( __start::__init1/print_screen#4 ) print_char_cursor#41 = phi( __start::__init1/print_char_cursor#16 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_line_cursor#10 = phi( __start::@1/print_line_cursor#3 ) @@ -333,237 +333,237 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* BORDER_COLOR = (byte*)$d020 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RASTER = (byte*)$d012 -constant byte* SCREEN = (byte*)$400 +__constant char *BORDER_COLOR = (char *)$d020 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char *RASTER = (char *)$d012 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$1 -constant word main::a = $4d2 -constant word main::b = $929 -dword main::r -dword main::r#0 -dword mulf16u(word mulf16u::a , word mulf16u::b) -word mulf16u::a -word mulf16u::a#0 -word mulf16u::a#1 -word mulf16u::b -word mulf16u::b#0 -word mulf16u::b#1 -constant word* const mulf16u::memA = (word*)$f8 -constant word* const mulf16u::memB = (word*)$fa -constant dword* const mulf16u::memR = (dword*)$fc -dword mulf16u::return -dword mulf16u::return#0 -dword mulf16u::return#1 -dword mulf16u::return#2 -dword mulf16u::return#3 -dword mulf16u::return#4 +bool main::$1 +__constant unsigned int main::a = $4d2 +__constant unsigned int main::b = $929 +unsigned long main::r +unsigned long main::r#0 +unsigned long mulf16u(unsigned int a , unsigned int b) +unsigned int mulf16u::a +unsigned int mulf16u::a#0 +unsigned int mulf16u::a#1 +unsigned int mulf16u::b +unsigned int mulf16u::b#0 +unsigned int mulf16u::b#1 +__constant unsigned int * const mulf16u::memA = (unsigned int *)$f8 +__constant unsigned int * const mulf16u::memB = (unsigned int *)$fa +__constant unsigned long * const mulf16u::memR = (unsigned long *)$fc +unsigned long mulf16u::return +unsigned long mulf16u::return#0 +unsigned long mulf16u::return#1 +unsigned long mulf16u::return#2 +unsigned long mulf16u::return#3 +unsigned long mulf16u::return#4 void mulf_init() -bool~ mulf_init::$0 -number~ mulf_init::$1 -bool~ mulf_init::$10 -bool~ mulf_init::$2 -bool~ mulf_init::$3 -byte~ mulf_init::$4 -byte~ mulf_init::$5 -word~ mulf_init::$6 -bool~ mulf_init::$7 -byte~ mulf_init::$8 -bool~ mulf_init::$9 -byte mulf_init::c -byte mulf_init::c#0 -byte mulf_init::c#1 -byte mulf_init::c#2 -byte mulf_init::c#3 -byte mulf_init::c#4 -byte mulf_init::c#5 -byte mulf_init::dir -byte mulf_init::dir#0 -byte mulf_init::dir#1 -byte mulf_init::dir#2 -byte mulf_init::dir#3 -byte mulf_init::dir#4 -word mulf_init::sqr -word mulf_init::sqr#0 -word mulf_init::sqr#1 -word mulf_init::sqr#2 -word mulf_init::sqr#3 -word mulf_init::sqr#4 -word mulf_init::sqr#5 -word mulf_init::sqr#6 -byte* mulf_init::sqr1_hi -byte* mulf_init::sqr1_hi#0 -byte* mulf_init::sqr1_hi#1 -byte* mulf_init::sqr1_hi#2 -byte* mulf_init::sqr1_hi#3 -byte* mulf_init::sqr1_hi#4 -byte* mulf_init::sqr1_hi#5 -byte* mulf_init::sqr1_lo -byte* mulf_init::sqr1_lo#0 -byte* mulf_init::sqr1_lo#1 -byte* mulf_init::sqr1_lo#2 -byte* mulf_init::sqr1_lo#3 -byte* mulf_init::sqr1_lo#4 -byte* mulf_init::sqr1_lo#5 -byte* mulf_init::sqr2_hi -byte* mulf_init::sqr2_hi#0 -byte* mulf_init::sqr2_hi#1 -byte* mulf_init::sqr2_hi#2 -byte* mulf_init::sqr2_hi#3 -byte* mulf_init::sqr2_hi#4 -byte* mulf_init::sqr2_hi#5 -byte* mulf_init::sqr2_lo -byte* mulf_init::sqr2_lo#0 -byte* mulf_init::sqr2_lo#1 -byte* mulf_init::sqr2_lo#2 -byte* mulf_init::sqr2_lo#3 -byte* mulf_init::sqr2_lo#4 -byte* mulf_init::sqr2_lo#5 -byte mulf_init::x_2 -byte mulf_init::x_2#0 -byte mulf_init::x_2#1 -byte mulf_init::x_2#2 -byte mulf_init::x_2#3 -byte mulf_init::x_2#4 -byte mulf_init::x_2#5 -byte mulf_init::x_255 -byte mulf_init::x_255#0 -byte mulf_init::x_255#1 -byte mulf_init::x_255#2 -byte mulf_init::x_255#3 -byte mulf_init::x_255#4 -byte mulf_init::x_255#5 -constant byte* mulf_sqr1_hi[$200] = { fill( $200, 0) } -constant byte* mulf_sqr1_lo[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2_hi[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2_lo[$200] = { fill( $200, 0) } -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#10 -byte* print_screen#11 -byte* print_screen#12 -byte* print_screen#13 -byte* print_screen#14 -byte* print_screen#15 -byte* print_screen#16 -byte* print_screen#17 -byte* print_screen#18 -byte* print_screen#19 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -byte* print_screen#8 -byte* print_screen#9 -void print_set_screen(byte* print_set_screen::screen) -byte* print_set_screen::screen -byte* print_set_screen::screen#0 -byte* print_set_screen::screen#1 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -word print_uint::w#3 -void print_ulong(dword print_ulong::dw) -word~ print_ulong::$0 -word~ print_ulong::$2 -dword print_ulong::dw -dword print_ulong::dw#0 -dword print_ulong::dw#1 -dword print_ulong::dw#2 +bool mulf_init::$0 +number mulf_init::$1 +bool mulf_init::$10 +bool mulf_init::$2 +bool mulf_init::$3 +char mulf_init::$4 +char mulf_init::$5 +unsigned int mulf_init::$6 +bool mulf_init::$7 +char mulf_init::$8 +bool mulf_init::$9 +char mulf_init::c +char mulf_init::c#0 +char mulf_init::c#1 +char mulf_init::c#2 +char mulf_init::c#3 +char mulf_init::c#4 +char mulf_init::c#5 +char mulf_init::dir +char mulf_init::dir#0 +char mulf_init::dir#1 +char mulf_init::dir#2 +char mulf_init::dir#3 +char mulf_init::dir#4 +unsigned int mulf_init::sqr +unsigned int mulf_init::sqr#0 +unsigned int mulf_init::sqr#1 +unsigned int mulf_init::sqr#2 +unsigned int mulf_init::sqr#3 +unsigned int mulf_init::sqr#4 +unsigned int mulf_init::sqr#5 +unsigned int mulf_init::sqr#6 +char *mulf_init::sqr1_hi +char *mulf_init::sqr1_hi#0 +char *mulf_init::sqr1_hi#1 +char *mulf_init::sqr1_hi#2 +char *mulf_init::sqr1_hi#3 +char *mulf_init::sqr1_hi#4 +char *mulf_init::sqr1_hi#5 +char *mulf_init::sqr1_lo +char *mulf_init::sqr1_lo#0 +char *mulf_init::sqr1_lo#1 +char *mulf_init::sqr1_lo#2 +char *mulf_init::sqr1_lo#3 +char *mulf_init::sqr1_lo#4 +char *mulf_init::sqr1_lo#5 +char *mulf_init::sqr2_hi +char *mulf_init::sqr2_hi#0 +char *mulf_init::sqr2_hi#1 +char *mulf_init::sqr2_hi#2 +char *mulf_init::sqr2_hi#3 +char *mulf_init::sqr2_hi#4 +char *mulf_init::sqr2_hi#5 +char *mulf_init::sqr2_lo +char *mulf_init::sqr2_lo#0 +char *mulf_init::sqr2_lo#1 +char *mulf_init::sqr2_lo#2 +char *mulf_init::sqr2_lo#3 +char *mulf_init::sqr2_lo#4 +char *mulf_init::sqr2_lo#5 +char mulf_init::x_2 +char mulf_init::x_2#0 +char mulf_init::x_2#1 +char mulf_init::x_2#2 +char mulf_init::x_2#3 +char mulf_init::x_2#4 +char mulf_init::x_2#5 +char mulf_init::x_255 +char mulf_init::x_255#0 +char mulf_init::x_255#1 +char mulf_init::x_255#2 +char mulf_init::x_255#3 +char mulf_init::x_255#4 +char mulf_init::x_255#5 +__constant char mulf_sqr1_hi[$200] = { fill( $200, 0) } +__constant char mulf_sqr1_lo[$200] = { fill( $200, 0) } +__constant char mulf_sqr2_hi[$200] = { fill( $200, 0) } +__constant char mulf_sqr2_lo[$200] = { fill( $200, 0) } +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#10 +char *print_screen#11 +char *print_screen#12 +char *print_screen#13 +char *print_screen#14 +char *print_screen#15 +char *print_screen#16 +char *print_screen#17 +char *print_screen#18 +char *print_screen#19 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +char *print_screen#8 +char *print_screen#9 +void print_set_screen(char *screen) +char *print_set_screen::screen +char *print_set_screen::screen#0 +char *print_set_screen::screen#1 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +unsigned int print_uint::w#3 +void print_ulong(unsigned long dw) +unsigned int print_ulong::$0 +unsigned int print_ulong::$2 +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 +unsigned long print_ulong::dw#1 +unsigned long print_ulong::dw#2 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#2 >> 4 Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#3 & $f @@ -585,12 +585,12 @@ Adding number conversion cast (unumber) 1 in mulf_init::dir#1 = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast mulf_init::dir#1 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 248 -Simplifying constant pointer cast (word*) 250 -Simplifying constant pointer cast (dword*) 252 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (unsigned int *) 248 +Simplifying constant pointer cast (unsigned int *) 250 +Simplifying constant pointer cast (unsigned long *) 252 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $ff @@ -607,26 +607,26 @@ Simplifying constant integer cast $1ff Simplifying constant integer cast $100 Simplifying constant integer cast $1ff Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $1ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $1ff -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $1ff -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $1ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $1ff +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $1ff +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f -Inferred type updated to byte in mulf_init::$1 = mulf_init::c#1 & 1 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in mulf_init::$1 = mulf_init::c#1 & 1 Inversing boolean not [102] mulf_init::$3 = mulf_init::$1 != 0 from [101] mulf_init::$2 = mulf_init::$1 == 0 Inversing boolean not [130] mulf_init::$10 = mulf_init::x_255#1 != 0 from [129] mulf_init::$9 = mulf_init::x_255#1 == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -729,7 +729,7 @@ Constant mulf_init::dir#0 = $ff Constant mulf_init::sqr2_hi#0 = mulf_sqr2_hi Constant mulf_init::sqr2_lo#0 = mulf_sqr2_lo Constant mulf_init::dir#1 = 1 -Constant print_char_cursor#16 = (byte*) 1024 +Constant print_char_cursor#16 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Constant print_screen#0 = print_set_screen::screen#0 Successful SSA optimization Pass2ConstantIdentification @@ -771,26 +771,26 @@ Constant inlined mulf_init::sqr1_hi#0 = mulf_sqr1_hi+1 Constant inlined print_set_screen::screen#0 = SCREEN Constant inlined mulf_init::sqr1_lo#0 = mulf_sqr1_lo+1 Constant inlined mulf_init::x_255#0 = -1 -Constant inlined print_char_cursor#16 = (byte*) 1024 +Constant inlined print_char_cursor#16 = (char *) 1024 Constant inlined mulf_init::x_2#0 = 0 Successful SSA optimization Pass2ConstantInlining -Removing call to empty/unused procedure [35] call print_set_screen +Removing call to empty/unused procedure [35] call print_set_screen Removing unused procedure print_set_screen Removing unused procedure block print_set_screen Removing unused procedure block print_set_screen::@return Successful SSA optimization PassNEliminateEmptyProcedure -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 -Finalized unsigned number type (word) $200 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 +Finalized unsigned number type (unsigned int) $200 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting mulf_init::@11(between mulf_init::@2 and mulf_init::@4) Added new block during phi lifting mulf_init::@12(between mulf_init::@7 and mulf_init::@9) @@ -861,27 +861,27 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call mulf_init + [1] call mulf_init to:main::@4 main::@4: scope:[main] from main asm { sei } to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - [3] print_char_cursor#15 = phi( main::@4/(byte*) 1024, main::@5/SCREEN ) + [3] print_char_cursor#15 = phi( main::@4/(char *) 1024, main::@5/SCREEN ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [4] if(*RASTER!=$ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 [5] *BORDER_COLOR = ++ *BORDER_COLOR - [6] call mulf16u + [6] call mulf16u [7] mulf16u::return#0 = mulf16u::return#1 to:main::@5 main::@5: scope:[main] from main::@3 [8] main::r#0 = mulf16u::return#0 [9] *BORDER_COLOR = -- *BORDER_COLOR [10] print_ulong::dw#0 = main::r#0 - [11] call print_ulong + [11] call print_ulong to:main::@1 void mulf_init() @@ -945,7 +945,7 @@ mulf_init::@3: scope:[mulf_init] from mulf_init::@2 mulf_init::@4 [40] mulf_init::sqr1_lo#1 = ++ mulf_init::sqr1_lo#2 to:mulf_init::@1 -dword mulf16u(word mulf16u::a , word mulf16u::b) +unsigned long mulf16u(unsigned int a , unsigned int b) mulf16u: scope:[mulf16u] from main::@3 [41] *mulf16u::memA = main::a [42] *mulf16u::memB = main::b @@ -956,52 +956,52 @@ mulf16u::@return: scope:[mulf16u] from mulf16u [45] return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from main::@5 [46] print_uint::w#0 = word1 print_ulong::dw#0 - [47] call print_uint + [47] call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong [48] print_uint::w#1 = word0 print_ulong::dw#0 - [49] call print_uint + [49] call print_uint to:print_ulong::@return print_ulong::@return: scope:[print_ulong] from print_ulong::@1 [50] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_ulong print_ulong::@1 [51] print_char_cursor#36 = phi( print_ulong/print_char_cursor#15, print_ulong::@1/print_char_cursor#10 ) [51] print_uint::w#2 = phi( print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 ) [52] print_uchar::b#0 = byte1 print_uint::w#2 - [53] call print_uchar + [53] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [54] print_uchar::b#1 = byte0 print_uint::w#2 - [55] call print_uchar + [55] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [56] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [57] print_char_cursor#38 = phi( print_uint/print_char_cursor#36, print_uint::@1/print_char_cursor#10 ) [57] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [58] print_uchar::$0 = print_uchar::b#2 >> 4 [59] print_char::ch#0 = print_hextab[print_uchar::$0] - [60] call print_char + [60] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [61] print_uchar::$2 = print_uchar::b#2 & $f [62] print_char::ch#1 = print_hextab[print_uchar::$2] - [63] call print_char + [63] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [64] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [65] print_char_cursor#28 = phi( print_uchar/print_char_cursor#38, print_uchar::@1/print_char_cursor#10 ) [65] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -1015,76 +1015,76 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void main() -dword main::r -dword main::r#0 11.0 -dword mulf16u(word mulf16u::a , word mulf16u::b) -word mulf16u::a -word mulf16u::b -dword mulf16u::return -dword mulf16u::return#0 22.0 -dword mulf16u::return#1 37.33333333333333 +unsigned long main::r +unsigned long main::r#0 // 11.0 +unsigned long mulf16u(unsigned int a , unsigned int b) +unsigned int mulf16u::a +unsigned int mulf16u::b +unsigned long mulf16u::return +unsigned long mulf16u::return#0 // 22.0 +unsigned long mulf16u::return#1 // 37.33333333333333 void mulf_init() -byte~ mulf_init::$1 202.0 -byte~ mulf_init::$4 202.0 -byte~ mulf_init::$5 202.0 -byte mulf_init::c -byte mulf_init::c#1 23.307692307692307 -byte mulf_init::c#2 101.0 -byte mulf_init::dir -byte mulf_init::dir#2 37.875 -byte mulf_init::dir#4 101.0 -word mulf_init::sqr -word mulf_init::sqr#1 101.0 -word mulf_init::sqr#2 202.0 -word mulf_init::sqr#3 84.16666666666666 -word mulf_init::sqr#4 50.5 -byte* mulf_init::sqr1_hi -byte* mulf_init::sqr1_hi#1 67.33333333333333 -byte* mulf_init::sqr1_hi#2 25.25 -byte* mulf_init::sqr1_lo -byte* mulf_init::sqr1_lo#1 202.0 -byte* mulf_init::sqr1_lo#2 28.857142857142858 -byte* mulf_init::sqr2_hi -byte* mulf_init::sqr2_hi#1 33.666666666666664 -byte* mulf_init::sqr2_hi#2 75.75 -byte* mulf_init::sqr2_lo -byte* mulf_init::sqr2_lo#1 202.0 -byte* mulf_init::sqr2_lo#2 44.888888888888886 -byte mulf_init::x_2 -byte mulf_init::x_2#1 101.0 -byte mulf_init::x_2#2 50.5 -byte mulf_init::x_2#3 60.599999999999994 -byte mulf_init::x_255 -byte mulf_init::x_255#1 60.599999999999994 -byte mulf_init::x_255#2 80.8 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#1 20002.0 -byte print_char::ch#2 120003.0 -byte* print_char_cursor -byte* print_char_cursor#10 8546.461538461539 -byte* print_char_cursor#15 11.222222222222221 -byte* print_char_cursor#28 110002.0 -byte* print_char_cursor#36 601.5 -byte* print_char_cursor#38 4001.0 -byte* print_line_cursor -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 202.0 -word print_uint::w#1 202.0 -word print_uint::w#2 734.6666666666667 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 71.0 +char mulf_init::$1 // 202.0 +char mulf_init::$4 // 202.0 +char mulf_init::$5 // 202.0 +char mulf_init::c +char mulf_init::c#1 // 23.307692307692307 +char mulf_init::c#2 // 101.0 +char mulf_init::dir +char mulf_init::dir#2 // 37.875 +char mulf_init::dir#4 // 101.0 +unsigned int mulf_init::sqr +unsigned int mulf_init::sqr#1 // 101.0 +unsigned int mulf_init::sqr#2 // 202.0 +unsigned int mulf_init::sqr#3 // 84.16666666666666 +unsigned int mulf_init::sqr#4 // 50.5 +char *mulf_init::sqr1_hi +char *mulf_init::sqr1_hi#1 // 67.33333333333333 +char *mulf_init::sqr1_hi#2 // 25.25 +char *mulf_init::sqr1_lo +char *mulf_init::sqr1_lo#1 // 202.0 +char *mulf_init::sqr1_lo#2 // 28.857142857142858 +char *mulf_init::sqr2_hi +char *mulf_init::sqr2_hi#1 // 33.666666666666664 +char *mulf_init::sqr2_hi#2 // 75.75 +char *mulf_init::sqr2_lo +char *mulf_init::sqr2_lo#1 // 202.0 +char *mulf_init::sqr2_lo#2 // 44.888888888888886 +char mulf_init::x_2 +char mulf_init::x_2#1 // 101.0 +char mulf_init::x_2#2 // 50.5 +char mulf_init::x_2#3 // 60.599999999999994 +char mulf_init::x_255 +char mulf_init::x_255#1 // 60.599999999999994 +char mulf_init::x_255#2 // 80.8 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#1 // 20002.0 +char print_char::ch#2 // 120003.0 +char *print_char_cursor +char *print_char_cursor#10 // 8546.461538461539 +char *print_char_cursor#15 // 11.222222222222221 +char *print_char_cursor#28 // 110002.0 +char *print_char_cursor#36 // 601.5 +char *print_char_cursor#38 // 4001.0 +char *print_line_cursor +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 202.0 +unsigned int print_uint::w#1 // 202.0 +unsigned int print_uint::w#2 // 734.6666666666667 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // 71.0 Initial phi equivalence classes [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] @@ -1303,7 +1303,7 @@ main: { .label a = $4d2 .label b = $929 .label r = $e - // [1] call mulf_init + // [1] call mulf_init // [12] phi from main to mulf_init [phi:main->mulf_init] mulf_init_from_main: jsr mulf_init @@ -1314,7 +1314,7 @@ main: { sei // [3] phi from main::@4 to main::@1 [phi:main::@4->main::@1] __b1_from___b4: - // [3] phi print_char_cursor#15 = (byte*) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 + // [3] phi print_char_cursor#15 = (char *) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z print_char_cursor lda #>$400 @@ -1334,7 +1334,7 @@ main: { __b3: // [5] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR - // [6] call mulf16u + // [6] call mulf16u jsr mulf16u // [7] mulf16u::return#0 = mulf16u::return#1 jmp __b5 @@ -1344,7 +1344,7 @@ main: { // [9] *BORDER_COLOR = -- *BORDER_COLOR -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDER_COLOR // [10] print_ulong::dw#0 = main::r#0 - // [11] call print_ulong + // [11] call print_ulong jsr print_ulong // [3] phi from main::@5 to main::@1 [phi:main::@5->main::@1] __b1_from___b5: @@ -1564,6 +1564,7 @@ mulf_init: { // mulf16u // Fast multiply two unsigned words to a double word result // Done in assembler to utilize fast addition A+X +// __zp($e) unsigned long mulf16u(unsigned int a, unsigned int b) mulf16u: { .label memA = $f8 .label memB = $fa @@ -1689,7 +1690,7 @@ mulf16u: { } // print_ulong // Print a unsigned long as HEX -// print_ulong(dword zp($e) dw) +// void print_ulong(__zp($e) unsigned long dw) print_ulong: { .label dw = $e // [46] print_uint::w#0 = word1 print_ulong::dw#0 -- vwuz1=_word1_vduz2 @@ -1697,7 +1698,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+3 sta.z print_uint.w+1 - // [47] call print_uint + // [47] call print_uint // [51] phi from print_ulong to print_uint [phi:print_ulong->print_uint] print_uint_from_print_ulong: // [51] phi print_char_cursor#36 = print_char_cursor#15 [phi:print_ulong->print_uint#0] -- register_copy @@ -1711,7 +1712,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+1 sta.z print_uint.w+1 - // [49] call print_uint + // [49] call print_uint // [51] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint] print_uint_from___b1: // [51] phi print_char_cursor#36 = print_char_cursor#10 [phi:print_ulong::@1->print_uint#0] -- register_copy @@ -1725,12 +1726,12 @@ print_ulong: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // [52] print_uchar::b#0 = byte1 print_uint::w#2 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [53] call print_uchar + // [53] call print_uchar // [57] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [57] phi print_char_cursor#38 = print_char_cursor#36 [phi:print_uint->print_uchar#0] -- register_copy @@ -1741,7 +1742,7 @@ print_uint: { __b1: // [54] print_uchar::b#1 = byte0 print_uint::w#2 -- vbuxx=_byte0_vwuz1 ldx.z w - // [55] call print_uchar + // [55] call print_uchar // [57] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [57] phi print_char_cursor#38 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1755,7 +1756,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [58] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1766,7 +1767,7 @@ print_uchar: { // [59] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [60] call print_char + // [60] call print_char // Table of hexadecimal digits // [65] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1781,7 +1782,7 @@ print_uchar: { axs #0 // [62] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [63] call print_char + // [63] call print_char // [65] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [65] phi print_char_cursor#28 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1795,7 +1796,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [66] *print_char_cursor#28 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 @@ -1900,94 +1901,94 @@ Removing instruction jmp __b8 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* BORDER_COLOR = (byte*) 53280 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RASTER = (byte*) 53266 -constant byte* SCREEN = (byte*) 1024 +__constant char *BORDER_COLOR = (char *) 53280 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char *RASTER = (char *) 53266 +__constant char *SCREEN = (char *) 1024 void main() -constant word main::a = $4d2 -constant word main::b = $929 -dword main::r -dword main::r#0 r zp[4]:14 11.0 -dword mulf16u(word mulf16u::a , word mulf16u::b) -word mulf16u::a -word mulf16u::b -constant word* const mulf16u::memA = (word*) 248 -constant word* const mulf16u::memB = (word*) 250 -constant dword* const mulf16u::memR = (dword*) 252 -dword mulf16u::return -dword mulf16u::return#0 return zp[4]:14 22.0 -dword mulf16u::return#1 return zp[4]:14 37.33333333333333 +__constant unsigned int main::a = $4d2 +__constant unsigned int main::b = $929 +unsigned long main::r +unsigned long main::r#0 // r zp[4]:14 11.0 +unsigned long mulf16u(unsigned int a , unsigned int b) +unsigned int mulf16u::a +unsigned int mulf16u::b +__constant unsigned int * const mulf16u::memA = (unsigned int *) 248 +__constant unsigned int * const mulf16u::memB = (unsigned int *) 250 +__constant unsigned long * const mulf16u::memR = (unsigned long *) 252 +unsigned long mulf16u::return +unsigned long mulf16u::return#0 // return zp[4]:14 22.0 +unsigned long mulf16u::return#1 // return zp[4]:14 37.33333333333333 void mulf_init() -byte~ mulf_init::$1 reg byte a 202.0 -byte~ mulf_init::$4 reg byte a 202.0 -byte~ mulf_init::$5 reg byte a 202.0 -byte mulf_init::c -byte mulf_init::c#1 c zp[1]:2 23.307692307692307 -byte mulf_init::c#2 c zp[1]:2 101.0 -byte mulf_init::dir -byte mulf_init::dir#2 dir zp[1]:7 37.875 -byte mulf_init::dir#4 dir zp[1]:7 101.0 -word mulf_init::sqr -word mulf_init::sqr#1 sqr zp[2]:8 101.0 -word mulf_init::sqr#2 sqr zp[2]:8 202.0 -word mulf_init::sqr#3 sqr zp[2]:8 84.16666666666666 -word mulf_init::sqr#4 sqr zp[2]:8 50.5 -byte* mulf_init::sqr1_hi -byte* mulf_init::sqr1_hi#1 sqr1_hi zp[2]:12 67.33333333333333 -byte* mulf_init::sqr1_hi#2 sqr1_hi zp[2]:12 25.25 -byte* mulf_init::sqr1_lo -byte* mulf_init::sqr1_lo#1 sqr1_lo zp[2]:10 202.0 -byte* mulf_init::sqr1_lo#2 sqr1_lo zp[2]:10 28.857142857142858 -byte* mulf_init::sqr2_hi -byte* mulf_init::sqr2_hi#1 sqr2_hi zp[2]:5 33.666666666666664 -byte* mulf_init::sqr2_hi#2 sqr2_hi zp[2]:5 75.75 -byte* mulf_init::sqr2_lo -byte* mulf_init::sqr2_lo#1 sqr2_lo zp[2]:3 202.0 -byte* mulf_init::sqr2_lo#2 sqr2_lo zp[2]:3 44.888888888888886 -byte mulf_init::x_2 -byte mulf_init::x_2#1 reg byte x 101.0 -byte mulf_init::x_2#2 reg byte x 50.5 -byte mulf_init::x_2#3 reg byte x 60.599999999999994 -byte mulf_init::x_255 -byte mulf_init::x_255#1 reg byte x 60.599999999999994 -byte mulf_init::x_255#2 reg byte x 80.8 -constant byte* mulf_sqr1_hi[$200] = { fill( $200, 0) } -constant byte* mulf_sqr1_lo[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2_hi[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2_lo[$200] = { fill( $200, 0) } -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#10 print_char_cursor zp[2]:12 8546.461538461539 -byte* print_char_cursor#15 print_char_cursor zp[2]:12 11.222222222222221 -byte* print_char_cursor#28 print_char_cursor zp[2]:12 110002.0 -byte* print_char_cursor#36 print_char_cursor zp[2]:12 601.5 -byte* print_char_cursor#38 print_char_cursor zp[2]:12 4001.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 202.0 -word print_uint::w#1 w zp[2]:10 202.0 -word print_uint::w#2 w zp[2]:10 734.6666666666667 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 dw zp[4]:14 71.0 +char mulf_init::$1 // reg byte a 202.0 +char mulf_init::$4 // reg byte a 202.0 +char mulf_init::$5 // reg byte a 202.0 +char mulf_init::c +char mulf_init::c#1 // c zp[1]:2 23.307692307692307 +char mulf_init::c#2 // c zp[1]:2 101.0 +char mulf_init::dir +char mulf_init::dir#2 // dir zp[1]:7 37.875 +char mulf_init::dir#4 // dir zp[1]:7 101.0 +unsigned int mulf_init::sqr +unsigned int mulf_init::sqr#1 // sqr zp[2]:8 101.0 +unsigned int mulf_init::sqr#2 // sqr zp[2]:8 202.0 +unsigned int mulf_init::sqr#3 // sqr zp[2]:8 84.16666666666666 +unsigned int mulf_init::sqr#4 // sqr zp[2]:8 50.5 +char *mulf_init::sqr1_hi +char *mulf_init::sqr1_hi#1 // sqr1_hi zp[2]:12 67.33333333333333 +char *mulf_init::sqr1_hi#2 // sqr1_hi zp[2]:12 25.25 +char *mulf_init::sqr1_lo +char *mulf_init::sqr1_lo#1 // sqr1_lo zp[2]:10 202.0 +char *mulf_init::sqr1_lo#2 // sqr1_lo zp[2]:10 28.857142857142858 +char *mulf_init::sqr2_hi +char *mulf_init::sqr2_hi#1 // sqr2_hi zp[2]:5 33.666666666666664 +char *mulf_init::sqr2_hi#2 // sqr2_hi zp[2]:5 75.75 +char *mulf_init::sqr2_lo +char *mulf_init::sqr2_lo#1 // sqr2_lo zp[2]:3 202.0 +char *mulf_init::sqr2_lo#2 // sqr2_lo zp[2]:3 44.888888888888886 +char mulf_init::x_2 +char mulf_init::x_2#1 // reg byte x 101.0 +char mulf_init::x_2#2 // reg byte x 50.5 +char mulf_init::x_2#3 // reg byte x 60.599999999999994 +char mulf_init::x_255 +char mulf_init::x_255#1 // reg byte x 60.599999999999994 +char mulf_init::x_255#2 // reg byte x 80.8 +__constant char mulf_sqr1_hi[$200] = { fill( $200, 0) } +__constant char mulf_sqr1_lo[$200] = { fill( $200, 0) } +__constant char mulf_sqr2_hi[$200] = { fill( $200, 0) } +__constant char mulf_sqr2_lo[$200] = { fill( $200, 0) } +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#10 // print_char_cursor zp[2]:12 8546.461538461539 +char *print_char_cursor#15 // print_char_cursor zp[2]:12 11.222222222222221 +char *print_char_cursor#28 // print_char_cursor zp[2]:12 110002.0 +char *print_char_cursor#36 // print_char_cursor zp[2]:12 601.5 +char *print_char_cursor#38 // print_char_cursor zp[2]:12 4001.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 202.0 +unsigned int print_uint::w#1 // w zp[2]:10 202.0 +unsigned int print_uint::w#2 // w zp[2]:10 734.6666666666667 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // dw zp[4]:14 71.0 zp[1]:2 [ mulf_init::c#2 mulf_init::c#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] @@ -2037,7 +2038,7 @@ main: { .label b = $929 .label r = $e // mulf_init() - // [1] call mulf_init + // [1] call mulf_init // [12] phi from main to mulf_init [phi:main->mulf_init] jsr mulf_init // main::@4 @@ -2045,7 +2046,7 @@ main: { // asm { sei } sei // [3] phi from main::@4 to main::@1 [phi:main::@4->main::@1] - // [3] phi print_char_cursor#15 = (byte*) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 + // [3] phi print_char_cursor#15 = (char *) 1024 [phi:main::@4->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z print_char_cursor lda #>$400 @@ -2063,7 +2064,7 @@ main: { // [5] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR // dword r = mulf16u(a, b) - // [6] call mulf16u + // [6] call mulf16u jsr mulf16u // [7] mulf16u::return#0 = mulf16u::return#1 // main::@5 @@ -2073,7 +2074,7 @@ main: { dec BORDER_COLOR // print_ulong(r) // [10] print_ulong::dw#0 = main::r#0 - // [11] call print_ulong + // [11] call print_ulong jsr print_ulong // [3] phi from main::@5 to main::@1 [phi:main::@5->main::@1] // [3] phi print_char_cursor#15 = SCREEN [phi:main::@5->main::@1#0] -- pbuz1=pbuc1 @@ -2289,6 +2290,7 @@ mulf_init: { // mulf16u // Fast multiply two unsigned words to a double word result // Done in assembler to utilize fast addition A+X +// __zp($e) unsigned long mulf16u(unsigned int a, unsigned int b) mulf16u: { .label memA = $f8 .label memB = $fa @@ -2417,7 +2419,7 @@ mulf16u: { } // print_ulong // Print a unsigned long as HEX -// print_ulong(dword zp($e) dw) +// void print_ulong(__zp($e) unsigned long dw) print_ulong: { .label dw = $e // print_uint(WORD1(dw)) @@ -2426,7 +2428,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+3 sta.z print_uint.w+1 - // [47] call print_uint + // [47] call print_uint // [51] phi from print_ulong to print_uint [phi:print_ulong->print_uint] // [51] phi print_char_cursor#36 = print_char_cursor#15 [phi:print_ulong->print_uint#0] -- register_copy // [51] phi print_uint::w#2 = print_uint::w#0 [phi:print_ulong->print_uint#1] -- register_copy @@ -2438,7 +2440,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+1 sta.z print_uint.w+1 - // [49] call print_uint + // [49] call print_uint // [51] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint] // [51] phi print_char_cursor#36 = print_char_cursor#10 [phi:print_ulong::@1->print_uint#0] -- register_copy // [51] phi print_uint::w#2 = print_uint::w#1 [phi:print_ulong::@1->print_uint#1] -- register_copy @@ -2450,13 +2452,13 @@ print_ulong: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) // [52] print_uchar::b#0 = byte1 print_uint::w#2 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [53] call print_uchar + // [53] call print_uchar // [57] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [57] phi print_char_cursor#38 = print_char_cursor#36 [phi:print_uint->print_uchar#0] -- register_copy // [57] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -2465,7 +2467,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [54] print_uchar::b#1 = byte0 print_uint::w#2 -- vbuxx=_byte0_vwuz1 ldx.z w - // [55] call print_uchar + // [55] call print_uchar // [57] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [57] phi print_char_cursor#38 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy // [57] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -2477,7 +2479,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [58] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2490,7 +2492,7 @@ print_uchar: { // [59] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [60] call print_char + // [60] call print_char // Table of hexadecimal digits // [65] phi from print_uchar to print_char [phi:print_uchar->print_char] // [65] phi print_char_cursor#28 = print_char_cursor#38 [phi:print_uchar->print_char#0] -- register_copy @@ -2504,7 +2506,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [62] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [63] call print_char + // [63] call print_char // [65] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [65] phi print_char_cursor#28 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy // [65] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2516,7 +2518,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [66] *print_char_cursor#28 = print_char::ch#2 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/min-fmul-16.sym b/src/test/ref/min-fmul-16.sym index cdf755623..45d63d1b3 100644 --- a/src/test/ref/min-fmul-16.sym +++ b/src/test/ref/min-fmul-16.sym @@ -1,91 +1,91 @@ -constant byte* BORDER_COLOR = (byte*) 53280 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RASTER = (byte*) 53266 -constant byte* SCREEN = (byte*) 1024 +__constant char *BORDER_COLOR = (char *) 53280 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char *RASTER = (char *) 53266 +__constant char *SCREEN = (char *) 1024 void main() -constant word main::a = $4d2 -constant word main::b = $929 -dword main::r -dword main::r#0 r zp[4]:14 11.0 -dword mulf16u(word mulf16u::a , word mulf16u::b) -word mulf16u::a -word mulf16u::b -constant word* const mulf16u::memA = (word*) 248 -constant word* const mulf16u::memB = (word*) 250 -constant dword* const mulf16u::memR = (dword*) 252 -dword mulf16u::return -dword mulf16u::return#0 return zp[4]:14 22.0 -dword mulf16u::return#1 return zp[4]:14 37.33333333333333 +__constant unsigned int main::a = $4d2 +__constant unsigned int main::b = $929 +unsigned long main::r +unsigned long main::r#0 // r zp[4]:14 11.0 +unsigned long mulf16u(unsigned int a , unsigned int b) +unsigned int mulf16u::a +unsigned int mulf16u::b +__constant unsigned int * const mulf16u::memA = (unsigned int *) 248 +__constant unsigned int * const mulf16u::memB = (unsigned int *) 250 +__constant unsigned long * const mulf16u::memR = (unsigned long *) 252 +unsigned long mulf16u::return +unsigned long mulf16u::return#0 // return zp[4]:14 22.0 +unsigned long mulf16u::return#1 // return zp[4]:14 37.33333333333333 void mulf_init() -byte~ mulf_init::$1 reg byte a 202.0 -byte~ mulf_init::$4 reg byte a 202.0 -byte~ mulf_init::$5 reg byte a 202.0 -byte mulf_init::c -byte mulf_init::c#1 c zp[1]:2 23.307692307692307 -byte mulf_init::c#2 c zp[1]:2 101.0 -byte mulf_init::dir -byte mulf_init::dir#2 dir zp[1]:7 37.875 -byte mulf_init::dir#4 dir zp[1]:7 101.0 -word mulf_init::sqr -word mulf_init::sqr#1 sqr zp[2]:8 101.0 -word mulf_init::sqr#2 sqr zp[2]:8 202.0 -word mulf_init::sqr#3 sqr zp[2]:8 84.16666666666666 -word mulf_init::sqr#4 sqr zp[2]:8 50.5 -byte* mulf_init::sqr1_hi -byte* mulf_init::sqr1_hi#1 sqr1_hi zp[2]:12 67.33333333333333 -byte* mulf_init::sqr1_hi#2 sqr1_hi zp[2]:12 25.25 -byte* mulf_init::sqr1_lo -byte* mulf_init::sqr1_lo#1 sqr1_lo zp[2]:10 202.0 -byte* mulf_init::sqr1_lo#2 sqr1_lo zp[2]:10 28.857142857142858 -byte* mulf_init::sqr2_hi -byte* mulf_init::sqr2_hi#1 sqr2_hi zp[2]:5 33.666666666666664 -byte* mulf_init::sqr2_hi#2 sqr2_hi zp[2]:5 75.75 -byte* mulf_init::sqr2_lo -byte* mulf_init::sqr2_lo#1 sqr2_lo zp[2]:3 202.0 -byte* mulf_init::sqr2_lo#2 sqr2_lo zp[2]:3 44.888888888888886 -byte mulf_init::x_2 -byte mulf_init::x_2#1 reg byte x 101.0 -byte mulf_init::x_2#2 reg byte x 50.5 -byte mulf_init::x_2#3 reg byte x 60.599999999999994 -byte mulf_init::x_255 -byte mulf_init::x_255#1 reg byte x 60.599999999999994 -byte mulf_init::x_255#2 reg byte x 80.8 -constant byte* mulf_sqr1_hi[$200] = { fill( $200, 0) } -constant byte* mulf_sqr1_lo[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2_hi[$200] = { fill( $200, 0) } -constant byte* mulf_sqr2_lo[$200] = { fill( $200, 0) } -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#2 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#10 print_char_cursor zp[2]:12 8546.461538461539 -byte* print_char_cursor#15 print_char_cursor zp[2]:12 11.222222222222221 -byte* print_char_cursor#28 print_char_cursor zp[2]:12 110002.0 -byte* print_char_cursor#36 print_char_cursor zp[2]:12 601.5 -byte* print_char_cursor#38 print_char_cursor zp[2]:12 4001.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 202.0 -word print_uint::w#1 w zp[2]:10 202.0 -word print_uint::w#2 w zp[2]:10 734.6666666666667 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 dw zp[4]:14 71.0 +char mulf_init::$1 // reg byte a 202.0 +char mulf_init::$4 // reg byte a 202.0 +char mulf_init::$5 // reg byte a 202.0 +char mulf_init::c +char mulf_init::c#1 // c zp[1]:2 23.307692307692307 +char mulf_init::c#2 // c zp[1]:2 101.0 +char mulf_init::dir +char mulf_init::dir#2 // dir zp[1]:7 37.875 +char mulf_init::dir#4 // dir zp[1]:7 101.0 +unsigned int mulf_init::sqr +unsigned int mulf_init::sqr#1 // sqr zp[2]:8 101.0 +unsigned int mulf_init::sqr#2 // sqr zp[2]:8 202.0 +unsigned int mulf_init::sqr#3 // sqr zp[2]:8 84.16666666666666 +unsigned int mulf_init::sqr#4 // sqr zp[2]:8 50.5 +char *mulf_init::sqr1_hi +char *mulf_init::sqr1_hi#1 // sqr1_hi zp[2]:12 67.33333333333333 +char *mulf_init::sqr1_hi#2 // sqr1_hi zp[2]:12 25.25 +char *mulf_init::sqr1_lo +char *mulf_init::sqr1_lo#1 // sqr1_lo zp[2]:10 202.0 +char *mulf_init::sqr1_lo#2 // sqr1_lo zp[2]:10 28.857142857142858 +char *mulf_init::sqr2_hi +char *mulf_init::sqr2_hi#1 // sqr2_hi zp[2]:5 33.666666666666664 +char *mulf_init::sqr2_hi#2 // sqr2_hi zp[2]:5 75.75 +char *mulf_init::sqr2_lo +char *mulf_init::sqr2_lo#1 // sqr2_lo zp[2]:3 202.0 +char *mulf_init::sqr2_lo#2 // sqr2_lo zp[2]:3 44.888888888888886 +char mulf_init::x_2 +char mulf_init::x_2#1 // reg byte x 101.0 +char mulf_init::x_2#2 // reg byte x 50.5 +char mulf_init::x_2#3 // reg byte x 60.599999999999994 +char mulf_init::x_255 +char mulf_init::x_255#1 // reg byte x 60.599999999999994 +char mulf_init::x_255#2 // reg byte x 80.8 +__constant char mulf_sqr1_hi[$200] = { fill( $200, 0) } +__constant char mulf_sqr1_lo[$200] = { fill( $200, 0) } +__constant char mulf_sqr2_hi[$200] = { fill( $200, 0) } +__constant char mulf_sqr2_lo[$200] = { fill( $200, 0) } +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#2 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#10 // print_char_cursor zp[2]:12 8546.461538461539 +char *print_char_cursor#15 // print_char_cursor zp[2]:12 11.222222222222221 +char *print_char_cursor#28 // print_char_cursor zp[2]:12 110002.0 +char *print_char_cursor#36 // print_char_cursor zp[2]:12 601.5 +char *print_char_cursor#38 // print_char_cursor zp[2]:12 4001.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 202.0 +unsigned int print_uint::w#1 // w zp[2]:10 202.0 +unsigned int print_uint::w#2 // w zp[2]:10 734.6666666666667 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // dw zp[4]:14 71.0 zp[1]:2 [ mulf_init::c#2 mulf_init::c#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] diff --git a/src/test/ref/minus-precedence-problem.cfg b/src/test/ref/minus-precedence-problem.cfg index c3ae2f18f..f11bee5f0 100644 --- a/src/test/ref/minus-precedence-problem.cfg +++ b/src/test/ref/minus-precedence-problem.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *((byte*) 1024) = matrixSizeMask + [0] *((char *) 1024) = matrixSizeMask to:main::@return main::@return: scope:[main] from main [1] return diff --git a/src/test/ref/minus-precedence-problem.log b/src/test/ref/minus-precedence-problem.log index fc61eac0e..c1a49a7f8 100644 --- a/src/test/ref/minus-precedence-problem.log +++ b/src/test/ref/minus-precedence-problem.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)$400) = matrixSizeMask + *((char *)$400) = matrixSizeMask to:main::@return main::@return: scope:[main] from main return @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,8 +22,8 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant const byte matrixSize = 8 -constant const byte matrixSizeMask = (byte)$ff-matrixSize-1 +__constant const char matrixSize = 8 +__constant const char matrixSizeMask = (char)$ff-matrixSize-1 Adding number conversion cast (unumber) 1 in Successful SSA optimization PassNAddNumberTypeConversions @@ -31,10 +31,10 @@ Adding number conversion cast (unumber) $ff in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $ff Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -52,7 +52,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*) 1024) = matrixSizeMask + [0] *((char *) 1024) = matrixSizeMask to:main::@return main::@return: scope:[main] from main [1] return @@ -65,7 +65,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*) 1024) = matrixSizeMask [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *) 1024) = matrixSizeMask [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -91,7 +91,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*) 1024) = matrixSizeMask -- _deref_pbuc1=vbuc2 + // [0] *((char *) 1024) = matrixSizeMask -- _deref_pbuc1=vbuc2 lda #matrixSizeMask sta $400 jmp __breturn @@ -110,8 +110,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant const byte matrixSize = 8 -constant const byte matrixSizeMask = $ff-matrixSize-1 +__constant const char matrixSize = 8 +__constant const char matrixSizeMask = $ff-matrixSize-1 @@ -135,7 +135,7 @@ Score: 12 // main main: { // *((unsigned char *)0x400) = matrixSizeMask - // [0] *((byte*) 1024) = matrixSizeMask -- _deref_pbuc1=vbuc2 + // [0] *((char *) 1024) = matrixSizeMask -- _deref_pbuc1=vbuc2 lda #matrixSizeMask sta $400 // main::@return diff --git a/src/test/ref/minus-precedence-problem.sym b/src/test/ref/minus-precedence-problem.sym index aa41dddde..d09bde447 100644 --- a/src/test/ref/minus-precedence-problem.sym +++ b/src/test/ref/minus-precedence-problem.sym @@ -1,4 +1,4 @@ void main() -constant const byte matrixSize = 8 -constant const byte matrixSizeMask = $ff-matrixSize-1 +__constant const char matrixSize = 8 +__constant const char matrixSizeMask = $ff-matrixSize-1 diff --git a/src/test/ref/missing-band.asm b/src/test/ref/missing-band.asm index 6692d24e4..c768585b6 100644 --- a/src/test/ref/missing-band.asm +++ b/src/test/ref/missing-band.asm @@ -25,6 +25,7 @@ main: { // } rts } +// __register(A) char foo(char x) foo: { .const x = 1 // return bar[x]; diff --git a/src/test/ref/missing-band.cfg b/src/test/ref/missing-band.cfg index d8b16231f..482cb1231 100644 --- a/src/test/ref/missing-band.cfg +++ b/src/test/ref/missing-band.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call foo + [1] call foo [2] foo::return#0 = foo::return#1 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = foo::return#0 [4] main::a#1 = main::$0 & 3 - [5] *SCREEN = (byte)main::a#1 + [5] *SCREEN = (char)main::a#1 to:main::@return main::@return: scope:[main] from main::@1 [6] return to:@return -byte foo(byte foo::x) +char foo(char x) foo: scope:[foo] from main [7] foo::return#1 = *(bar+foo::x#0) to:foo::@return diff --git a/src/test/ref/missing-band.log b/src/test/ref/missing-band.log index 50013cca0..5203a1a64 100644 --- a/src/test/ref/missing-band.log +++ b/src/test/ref/missing-band.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,7 +6,7 @@ void main() main: scope:[main] from __start::@1 main::a#0 = 0 foo::x#0 = 1 - call foo + call foo foo::return#0 = foo::return#2 to:main::@1 main::@1: scope:[main] from main @@ -14,13 +14,13 @@ main::@1: scope:[main] from main main::$0 = foo::return#3 main::$1 = main::$0 & 3 main::a#1 = main::$1 - *SCREEN = (byte)main::a#1 + *SCREEN = (char)main::a#1 to:main::@return main::@return: scope:[main] from main::@1 return to:@return -byte foo(byte foo::x) +char foo(char x) foo: scope:[foo] from main foo::x#1 = phi( main/foo::x#0 ) foo::return#1 = bar[foo::x#1] @@ -37,7 +37,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -46,25 +46,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -constant byte* bar[$a] = { 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 } -byte foo(byte foo::x) -byte foo::return -byte foo::return#0 -byte foo::return#1 -byte foo::return#2 -byte foo::return#3 -byte foo::return#4 -byte foo::x -byte foo::x#0 -byte foo::x#1 +__constant char bar[$a] = { 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 } +char foo(char x) +char foo::return +char foo::return#0 +char foo::return#1 +char foo::return#2 +char foo::return#3 +char foo::return#4 +char foo::x +char foo::x#0 +char foo::x#1 void main() -byte~ main::$0 -number~ main::$1 -word main::a -word main::a#0 -word main::a#1 +char main::$0 +number main::$1 +unsigned int main::a +unsigned int main::a#0 +unsigned int main::a#1 Adding number conversion cast (unumber) 1 in foo::x#0 = 1 Adding number conversion cast (unumber) 3 in main::$1 = main::$0 & 3 @@ -72,14 +72,14 @@ Adding number conversion cast (unumber) main::$1 in main::$1 = main::$0 & (unumb Successful SSA optimization PassNAddNumberTypeConversions Inlining cast foo::x#0 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::$0 & 3 +Inferred type updated to char in main::$1 = main::$0 & 3 Alias foo::return#0 = foo::return#3 Alias main::a#1 = main::$1 Alias foo::return#1 = foo::return#4 foo::return#2 @@ -100,7 +100,7 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Consolidated array index constant in *(bar+foo::x#0) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -115,19 +115,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call foo + [1] call foo [2] foo::return#0 = foo::return#1 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = foo::return#0 [4] main::a#1 = main::$0 & 3 - [5] *SCREEN = (byte)main::a#1 + [5] *SCREEN = (char)main::a#1 to:main::@return main::@return: scope:[main] from main::@1 [6] return to:@return -byte foo(byte foo::x) +char foo(char x) foo: scope:[foo] from main [7] foo::return#1 = *(bar+foo::x#0) to:foo::@return @@ -137,15 +137,15 @@ foo::@return: scope:[foo] from foo VARIABLE REGISTER WEIGHTS -byte foo(byte foo::x) -byte foo::return -byte foo::return#0 4.0 -byte foo::return#1 4.333333333333333 -byte foo::x +char foo(char x) +char foo::return +char foo::return#0 // 4.0 +char foo::return#1 // 4.333333333333333 +char foo::x void main() -byte~ main::$0 4.0 -word main::a -word main::a#1 2.0 +char main::$0 // 4.0 +unsigned int main::a +unsigned int main::a#1 // 2.0 Initial phi equivalence classes Added variable foo::return#0 to live range equivalence class [ foo::return#0 ] @@ -163,7 +163,7 @@ Allocated zp[2]:4 [ main::a#1 ] Allocated zp[1]:6 [ foo::return#1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] main::a#1 = main::$0 & 3 [ main::a#1 ] ( [ main::a#1 ] { } ) always clobbers reg byte a -Statement [5] *SCREEN = (byte)main::a#1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *SCREEN = (char)main::a#1 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ foo::return#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$0 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:4 [ main::a#1 ] : zp[2]:4 , @@ -198,7 +198,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label a = 2 - // [1] call foo + // [1] call foo jsr foo // [2] foo::return#0 = foo::return#1 jmp __b1 @@ -210,7 +210,7 @@ main: { sta.z a lda #0 sta.z a+1 - // [5] *SCREEN = (byte)main::a#1 -- _deref_pbuc1=_byte_vwuz1 + // [5] *SCREEN = (char)main::a#1 -- _deref_pbuc1=_byte_vwuz1 lda.z a sta SCREEN jmp __breturn @@ -220,6 +220,7 @@ main: { rts } // foo +// __register(A) char foo(char x) foo: { .const x = 1 // [7] foo::return#1 = *(bar+foo::x#0) -- vbuaa=_deref_pbuc1 @@ -245,18 +246,18 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* bar[$a] = { 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 } -byte foo(byte foo::x) -byte foo::return -byte foo::return#0 reg byte a 4.0 -byte foo::return#1 reg byte a 4.333333333333333 -byte foo::x -constant byte foo::x#0 x = 1 +__constant char *SCREEN = (char *) 1024 +__constant char bar[$a] = { 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 } +char foo(char x) +char foo::return +char foo::return#0 // reg byte a 4.0 +char foo::return#1 // reg byte a 4.333333333333333 +char foo::x +__constant char foo::x#0 = 1 // x void main() -byte~ main::$0 reg byte a 4.0 -word main::a -word main::a#1 a zp[2]:2 2.0 +char main::$0 // reg byte a 4.0 +unsigned int main::a +unsigned int main::a#1 // a zp[2]:2 2.0 reg byte a [ foo::return#0 ] reg byte a [ main::$0 ] @@ -286,7 +287,7 @@ Score: 39 main: { .label a = 2 // foo(1) - // [1] call foo + // [1] call foo jsr foo // [2] foo::return#0 = foo::return#1 // main::@1 @@ -298,7 +299,7 @@ main: { lda #0 sta.z a+1 // *SCREEN = (byte)a - // [5] *SCREEN = (byte)main::a#1 -- _deref_pbuc1=_byte_vwuz1 + // [5] *SCREEN = (char)main::a#1 -- _deref_pbuc1=_byte_vwuz1 lda.z a sta SCREEN // main::@return @@ -307,6 +308,7 @@ main: { rts } // foo +// __register(A) char foo(char x) foo: { .const x = 1 // return bar[x]; diff --git a/src/test/ref/missing-band.sym b/src/test/ref/missing-band.sym index 9c1b1c364..90c0c9451 100644 --- a/src/test/ref/missing-band.sym +++ b/src/test/ref/missing-band.sym @@ -1,15 +1,15 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* bar[$a] = { 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 } -byte foo(byte foo::x) -byte foo::return -byte foo::return#0 reg byte a 4.0 -byte foo::return#1 reg byte a 4.333333333333333 -byte foo::x -constant byte foo::x#0 x = 1 +__constant char *SCREEN = (char *) 1024 +__constant char bar[$a] = { 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 } +char foo(char x) +char foo::return +char foo::return#0 // reg byte a 4.0 +char foo::return#1 // reg byte a 4.333333333333333 +char foo::x +__constant char foo::x#0 = 1 // x void main() -byte~ main::$0 reg byte a 4.0 -word main::a -word main::a#1 a zp[2]:2 2.0 +char main::$0 // reg byte a 4.0 +unsigned int main::a +unsigned int main::a#1 // a zp[2]:2 2.0 reg byte a [ foo::return#0 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/missing-instruction.log b/src/test/ref/missing-instruction.log index ab7095651..2e4dd955a 100644 --- a/src/test/ref/missing-instruction.log +++ b/src/test/ref/missing-instruction.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,7 +23,7 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -volatile byte main::test loadstore +__loadstore volatile char main::test Removing unused procedure __start Removing unused procedure block __start @@ -49,7 +49,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -volatile byte main::test loadstore 2.0 +__loadstore volatile char main::test // 2.0 Initial phi equivalence classes Added variable main::test to live range equivalence class [ main::test ] @@ -106,7 +106,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -volatile byte main::test loadstore zp[1]:2 2.0 +__loadstore volatile char main::test // zp[1]:2 2.0 zp[1]:2 [ main::test ] diff --git a/src/test/ref/missing-instruction.sym b/src/test/ref/missing-instruction.sym index bf19e69d3..fdf47ae96 100644 --- a/src/test/ref/missing-instruction.sym +++ b/src/test/ref/missing-instruction.sym @@ -1,4 +1,4 @@ void main() -volatile byte main::test loadstore zp[1]:2 2.0 +__loadstore volatile char main::test // zp[1]:2 2.0 zp[1]:2 [ main::test ] diff --git a/src/test/ref/mixed-array-0.log b/src/test/ref/mixed-array-0.log index 4e5f2717d..6d5aea11d 100644 --- a/src/test/ref/mixed-array-0.log +++ b/src/test/ref/mixed-array-0.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,8 +24,8 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::SCREEN = (byte*)$400 -constant byte* main::msg[] = { 1, 2, 3 } +__constant char *main::SCREEN = (char *)$400 +__constant char main::msg[] = { 1, 2, 3 } Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::msg[0] Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::msg[(unumber)0] @@ -34,7 +34,7 @@ Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::msg[(unumbe Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::msg[2] Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::msg[(unumber)2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -42,12 +42,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::msg in [0] main::SCREEN[0] = main::msg[0] Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = *main::msg @@ -141,8 +141,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -constant byte* main::msg[] = { 1, 2, 3 } +__constant char *main::SCREEN = (char *) 1024 +__constant char main::msg[] = { 1, 2, 3 } diff --git a/src/test/ref/mixed-array-0.sym b/src/test/ref/mixed-array-0.sym index c9cfec1a5..05f89a9b9 100644 --- a/src/test/ref/mixed-array-0.sym +++ b/src/test/ref/mixed-array-0.sym @@ -1,4 +1,4 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -constant byte* main::msg[] = { 1, 2, 3 } +__constant char *main::SCREEN = (char *) 1024 +__constant char main::msg[] = { 1, 2, 3 } diff --git a/src/test/ref/mixed-array-1.log b/src/test/ref/mixed-array-1.log index 05d8a1291..ac46ed6fd 100644 --- a/src/test/ref/mixed-array-1.log +++ b/src/test/ref/mixed-array-1.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,8 +24,8 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant signed byte* main::SCREEN = (signed byte*)$400 -constant signed byte* main::msg[] = { -1, 0, 1 } +__constant signed char *main::SCREEN = (signed char *)$400 +__constant signed char main::msg[] = { -1, 0, 1 } Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::msg[0] Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::msg[(unumber)0] @@ -34,7 +34,7 @@ Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::msg[(unumbe Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::msg[2] Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::msg[(unumber)2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (signed byte*) 1024 +Simplifying constant pointer cast (signed char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -42,12 +42,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::msg in [0] main::SCREEN[0] = main::msg[0] Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = *main::msg @@ -141,8 +141,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant signed byte* main::SCREEN = (signed byte*) 1024 -constant signed byte* main::msg[] = { -1, 0, 1 } +__constant signed char *main::SCREEN = (signed char *) 1024 +__constant signed char main::msg[] = { -1, 0, 1 } diff --git a/src/test/ref/mixed-array-1.sym b/src/test/ref/mixed-array-1.sym index 9e8e6c91b..a69a726f7 100644 --- a/src/test/ref/mixed-array-1.sym +++ b/src/test/ref/mixed-array-1.sym @@ -1,4 +1,4 @@ void main() -constant signed byte* main::SCREEN = (signed byte*) 1024 -constant signed byte* main::msg[] = { -1, 0, 1 } +__constant signed char *main::SCREEN = (signed char *) 1024 +__constant signed char main::msg[] = { -1, 0, 1 } diff --git a/src/test/ref/modglobal.cfg b/src/test/ref/modglobal.cfg index d2cf23ac1..770169e94 100644 --- a/src/test/ref/modglobal.cfg +++ b/src/test/ref/modglobal.cfg @@ -2,14 +2,14 @@ void main() main: scope:[main] from [0] phi() - [1] call inccnt + [1] call inccnt [2] inccnt::return#0 = inccnt::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = inccnt::return#0 [4] *SCREEN = main::$0 [5] cnt#1 = ++ cnt#13 - [6] call inccnt + [6] call inccnt [7] inccnt::return#1 = inccnt::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 [12] return to:@return -byte inccnt() +char inccnt() inccnt: scope:[inccnt] from main main::@1 [13] cnt3#11 = phi( main/0, main::@1/cnt3#12 ) [13] cnt2#11 = phi( main/0, main::@1/cnt2#12 ) diff --git a/src/test/ref/modglobal.log b/src/test/ref/modglobal.log index 27e93bc51..e8152d989 100644 --- a/src/test/ref/modglobal.log +++ b/src/test/ref/modglobal.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,7 +7,7 @@ main: scope:[main] from __start::@1 cnt3#15 = phi( __start::@1/cnt3#16 ) cnt2#15 = phi( __start::@1/cnt2#16 ) cnt#16 = phi( __start::@1/cnt#17 ) - call inccnt + call inccnt inccnt::return#0 = inccnt::return#3 to:main::@1 main::@1: scope:[main] from main @@ -21,7 +21,7 @@ main::@1: scope:[main] from main cnt3#0 = cnt3#8 SCREEN[0] = main::$0 cnt#1 = ++ cnt#0 - call inccnt + call inccnt inccnt::return#1 = inccnt::return#3 to:main::@2 main::@2: scope:[main] from main::@1 @@ -47,7 +47,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte inccnt() +char inccnt() inccnt: scope:[inccnt] from main main::@1 cnt3#11 = phi( main/cnt3#15, main::@1/cnt3#0 ) cnt2#11 = phi( main/cnt2#15, main::@1/cnt2#0 ) @@ -81,7 +81,7 @@ __start::@1: scope:[__start] from __start::__init1 cnt3#16 = phi( __start::__init1/cnt3#5 ) cnt2#16 = phi( __start::__init1/cnt2#5 ) cnt#17 = phi( __start::__init1/cnt#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 cnt3#13 = phi( __start::@1/cnt3#2 ) @@ -102,91 +102,91 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN[$100] = (byte*)$400 +__constant char SCREEN[$100] = (char *)$400 void __start() -byte cnt -byte cnt#0 -byte cnt#1 -byte cnt#10 -byte cnt#11 -byte cnt#12 -byte cnt#13 -byte cnt#14 -byte cnt#15 -byte cnt#16 -byte cnt#17 -byte cnt#2 -byte cnt#3 -byte cnt#4 -byte cnt#5 -byte cnt#6 -byte cnt#7 -byte cnt#8 -byte cnt#9 -byte cnt2 -byte cnt2#0 -byte cnt2#1 -byte cnt2#10 -byte cnt2#11 -byte cnt2#12 -byte cnt2#13 -byte cnt2#14 -byte cnt2#15 -byte cnt2#16 -byte cnt2#2 -byte cnt2#3 -byte cnt2#4 -byte cnt2#5 -byte cnt2#6 -byte cnt2#7 -byte cnt2#8 -byte cnt2#9 -byte cnt3 -byte cnt3#0 -byte cnt3#1 -byte cnt3#10 -byte cnt3#11 -byte cnt3#12 -byte cnt3#13 -byte cnt3#14 -byte cnt3#15 -byte cnt3#16 -byte cnt3#2 -byte cnt3#3 -byte cnt3#4 -byte cnt3#5 -byte cnt3#6 -byte cnt3#7 -byte cnt3#8 -byte cnt3#9 -byte inccnt() -byte inccnt::return -byte inccnt::return#0 -byte inccnt::return#1 -byte inccnt::return#2 -byte inccnt::return#3 -byte inccnt::return#4 -byte inccnt::return#5 -byte inccnt::return#6 +char cnt +char cnt#0 +char cnt#1 +char cnt#10 +char cnt#11 +char cnt#12 +char cnt#13 +char cnt#14 +char cnt#15 +char cnt#16 +char cnt#17 +char cnt#2 +char cnt#3 +char cnt#4 +char cnt#5 +char cnt#6 +char cnt#7 +char cnt#8 +char cnt#9 +char cnt2 +char cnt2#0 +char cnt2#1 +char cnt2#10 +char cnt2#11 +char cnt2#12 +char cnt2#13 +char cnt2#14 +char cnt2#15 +char cnt2#16 +char cnt2#2 +char cnt2#3 +char cnt2#4 +char cnt2#5 +char cnt2#6 +char cnt2#7 +char cnt2#8 +char cnt2#9 +char cnt3 +char cnt3#0 +char cnt3#1 +char cnt3#10 +char cnt3#11 +char cnt3#12 +char cnt3#13 +char cnt3#14 +char cnt3#15 +char cnt3#16 +char cnt3#2 +char cnt3#3 +char cnt3#4 +char cnt3#5 +char cnt3#6 +char cnt3#7 +char cnt3#8 +char cnt3#9 +char inccnt() +char inccnt::return +char inccnt::return#0 +char inccnt::return#1 +char inccnt::return#2 +char inccnt::return#3 +char inccnt::return#4 +char inccnt::return#5 +char inccnt::return#6 void main() -byte~ main::$0 -byte~ main::$1 +char main::$0 +char main::$1 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Adding number conversion cast (unumber) 1 in SCREEN[1] = main::$1 Adding number conversion cast (unumber) 2 in SCREEN[2] = cnt2#1 Adding number conversion cast (unumber) 3 in SCREEN[3] = cnt3#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias inccnt::return#0 = inccnt::return#4 Alias cnt#0 = cnt#9 @@ -244,7 +244,7 @@ Consolidated array index constant in *(SCREEN+1) Consolidated array index constant in *(SCREEN+2) Consolidated array index constant in *(SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -262,14 +262,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call inccnt + [1] call inccnt [2] inccnt::return#0 = inccnt::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = inccnt::return#0 [4] *SCREEN = main::$0 [5] cnt#1 = ++ cnt#13 - [6] call inccnt + [6] call inccnt [7] inccnt::return#1 = inccnt::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -282,7 +282,7 @@ main::@return: scope:[main] from main::@2 [12] return to:@return -byte inccnt() +char inccnt() inccnt: scope:[inccnt] from main main::@1 [13] cnt3#11 = phi( main/0, main::@1/cnt3#12 ) [13] cnt2#11 = phi( main/0, main::@1/cnt2#12 ) @@ -298,24 +298,24 @@ inccnt::@return: scope:[inccnt] from inccnt VARIABLE REGISTER WEIGHTS -byte cnt -byte cnt#1 4.0 -byte cnt#12 13.0 -byte cnt#13 2.666666666666667 -byte cnt2 -byte cnt2#11 6.5 -byte cnt2#12 1.1538461538461537 -byte cnt3 -byte cnt3#11 4.333333333333333 -byte cnt3#12 1.1538461538461537 -byte inccnt() -byte inccnt::return -byte inccnt::return#0 4.0 -byte inccnt::return#1 4.0 -byte inccnt::return#2 3.75 +char cnt +char cnt#1 // 4.0 +char cnt#12 // 13.0 +char cnt#13 // 2.666666666666667 +char cnt2 +char cnt2#11 // 6.5 +char cnt2#12 // 1.1538461538461537 +char cnt3 +char cnt3#11 // 4.333333333333333 +char cnt3#12 // 1.1538461538461537 +char inccnt() +char inccnt::return +char inccnt::return#0 // 4.0 +char inccnt::return#1 // 4.0 +char inccnt::return#2 // 3.75 void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 +char main::$0 // 4.0 +char main::$1 // 4.0 Initial phi equivalence classes [ cnt#12 cnt#1 ] @@ -387,7 +387,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call inccnt + // [1] call inccnt // [13] phi from main to inccnt [phi:main->inccnt] inccnt_from_main: // [13] phi cnt3#11 = 0 [phi:main->inccnt#0] -- vbuxx=vbuc1 @@ -408,7 +408,7 @@ main: { lda.z cnt clc adc #1 - // [6] call inccnt + // [6] call inccnt // [13] phi from main::@1 to inccnt [phi:main::@1->inccnt] inccnt_from___b1: // [13] phi cnt3#11 = cnt3#12 [phi:main::@1->inccnt#0] -- register_copy @@ -470,25 +470,25 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN[$100] = (byte*) 1024 -byte cnt -byte cnt#1 reg byte a 4.0 -byte cnt#12 reg byte a 13.0 -byte cnt#13 cnt zp[1]:2 2.666666666666667 -byte cnt2 -byte cnt2#11 reg byte y 6.5 -byte cnt2#12 reg byte y 1.1538461538461537 -byte cnt3 -byte cnt3#11 reg byte x 4.333333333333333 -byte cnt3#12 reg byte x 1.1538461538461537 -byte inccnt() -byte inccnt::return -byte inccnt::return#0 reg byte a 4.0 -byte inccnt::return#1 reg byte a 4.0 -byte inccnt::return#2 reg byte a 3.75 +__constant char SCREEN[$100] = (char *) 1024 +char cnt +char cnt#1 // reg byte a 4.0 +char cnt#12 // reg byte a 13.0 +char cnt#13 // cnt zp[1]:2 2.666666666666667 +char cnt2 +char cnt2#11 // reg byte y 6.5 +char cnt2#12 // reg byte y 1.1538461538461537 +char cnt3 +char cnt3#11 // reg byte x 4.333333333333333 +char cnt3#12 // reg byte x 1.1538461538461537 +char inccnt() +char inccnt::return +char inccnt::return#0 // reg byte a 4.0 +char inccnt::return#1 // reg byte a 4.0 +char inccnt::return#2 // reg byte a 3.75 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 reg byte a [ cnt#12 cnt#1 ] reg byte y [ cnt2#11 cnt2#12 ] @@ -521,7 +521,7 @@ Score: 64 // main main: { // inccnt() - // [1] call inccnt + // [1] call inccnt // [13] phi from main to inccnt [phi:main->inccnt] // [13] phi cnt3#11 = 0 [phi:main->inccnt#0] -- vbuxx=vbuc1 ldx #0 @@ -543,7 +543,7 @@ main: { clc adc #1 // inccnt() - // [6] call inccnt + // [6] call inccnt // [13] phi from main::@1 to inccnt [phi:main::@1->inccnt] // [13] phi cnt3#11 = cnt3#12 [phi:main::@1->inccnt#0] -- register_copy // [13] phi cnt2#11 = cnt2#12 [phi:main::@1->inccnt#1] -- register_copy diff --git a/src/test/ref/modglobal.sym b/src/test/ref/modglobal.sym index 17618db89..a1fa01ab1 100644 --- a/src/test/ref/modglobal.sym +++ b/src/test/ref/modglobal.sym @@ -1,22 +1,22 @@ -constant byte* SCREEN[$100] = (byte*) 1024 -byte cnt -byte cnt#1 reg byte a 4.0 -byte cnt#12 reg byte a 13.0 -byte cnt#13 cnt zp[1]:2 2.666666666666667 -byte cnt2 -byte cnt2#11 reg byte y 6.5 -byte cnt2#12 reg byte y 1.1538461538461537 -byte cnt3 -byte cnt3#11 reg byte x 4.333333333333333 -byte cnt3#12 reg byte x 1.1538461538461537 -byte inccnt() -byte inccnt::return -byte inccnt::return#0 reg byte a 4.0 -byte inccnt::return#1 reg byte a 4.0 -byte inccnt::return#2 reg byte a 3.75 +__constant char SCREEN[$100] = (char *) 1024 +char cnt +char cnt#1 // reg byte a 4.0 +char cnt#12 // reg byte a 13.0 +char cnt#13 // cnt zp[1]:2 2.666666666666667 +char cnt2 +char cnt2#11 // reg byte y 6.5 +char cnt2#12 // reg byte y 1.1538461538461537 +char cnt3 +char cnt3#11 // reg byte x 4.333333333333333 +char cnt3#12 // reg byte x 1.1538461538461537 +char inccnt() +char inccnt::return +char inccnt::return#0 // reg byte a 4.0 +char inccnt::return#1 // reg byte a 4.0 +char inccnt::return#2 // reg byte a 3.75 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 reg byte a [ cnt#12 cnt#1 ] reg byte y [ cnt2#11 cnt2#12 ] diff --git a/src/test/ref/modglobalmin.log b/src/test/ref/modglobalmin.log index 8388da7eb..be74abc80 100644 --- a/src/test/ref/modglobalmin.log +++ b/src/test/ref/modglobalmin.log @@ -1,18 +1,18 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 cnt#17 = phi( __start::@1/cnt#18 ) - call inccnt + call inccnt to:main::@1 main::@1: scope:[main] from main cnt#10 = phi( main/cnt#6 ) cnt#0 = cnt#10 SCREEN[0] = cnt#0 cnt#1 = ++ cnt#0 - call inccnt + call inccnt to:main::@2 main::@2: scope:[main] from main::@1 cnt#11 = phi( main::@1/cnt#6 ) @@ -45,7 +45,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 cnt#18 = phi( __start::__init1/cnt#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 cnt#15 = phi( __start::@1/cnt#4 ) @@ -58,40 +58,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN[$100] = (byte*)$400 +__constant char SCREEN[$100] = (char *)$400 void __start() -byte cnt -byte cnt#0 -byte cnt#1 -byte cnt#10 -byte cnt#11 -byte cnt#12 -byte cnt#13 -byte cnt#14 -byte cnt#15 -byte cnt#16 -byte cnt#17 -byte cnt#18 -byte cnt#2 -byte cnt#3 -byte cnt#4 -byte cnt#5 -byte cnt#6 -byte cnt#7 -byte cnt#8 -byte cnt#9 +char cnt +char cnt#0 +char cnt#1 +char cnt#10 +char cnt#11 +char cnt#12 +char cnt#13 +char cnt#14 +char cnt#15 +char cnt#16 +char cnt#17 +char cnt#18 +char cnt#2 +char cnt#3 +char cnt#4 +char cnt#5 +char cnt#6 +char cnt#7 +char cnt#8 +char cnt#9 void inccnt() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = cnt#0 Adding number conversion cast (unumber) 1 in SCREEN[1] = cnt#3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias cnt#0 = cnt#10 Alias cnt#11 = cnt#2 @@ -121,7 +121,7 @@ Constant inlined cnt#18 = 0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -137,12 +137,12 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call inccnt + [1] call inccnt to:main::@1 main::@1: scope:[main] from main [2] *SCREEN = cnt#14 [3] cnt#1 = ++ cnt#14 - [4] call inccnt + [4] call inccnt to:main::@2 main::@2: scope:[main] from main::@1 [5] cnt#12 = ++ cnt#14 @@ -163,11 +163,11 @@ inccnt::@return: scope:[inccnt] from inccnt VARIABLE REGISTER WEIGHTS -byte cnt -byte cnt#1 4.0 -byte cnt#12 4.0 -byte cnt#13 13.0 -byte cnt#14 3.4000000000000004 +char cnt +char cnt#1 // 4.0 +char cnt#12 // 4.0 +char cnt#13 // 13.0 +char cnt#14 // 3.4000000000000004 void inccnt() void main() @@ -212,7 +212,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call inccnt + // [1] call inccnt // [8] phi from main to inccnt [phi:main->inccnt] inccnt_from_main: // [8] phi cnt#13 = 0 [phi:main->inccnt#0] -- vbuxx=vbuc1 @@ -225,7 +225,7 @@ main: { stx SCREEN // [3] cnt#1 = ++ cnt#14 -- vbuxx=_inc_vbuxx inx - // [4] call inccnt + // [4] call inccnt // [8] phi from main::@1 to inccnt [phi:main::@1->inccnt] inccnt_from___b1: // [8] phi cnt#13 = cnt#1 [phi:main::@1->inccnt#0] -- register_copy @@ -270,12 +270,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN[$100] = (byte*) 1024 -byte cnt -byte cnt#1 reg byte x 4.0 -byte cnt#12 reg byte x 4.0 -byte cnt#13 reg byte x 13.0 -byte cnt#14 reg byte x 3.4000000000000004 +__constant char SCREEN[$100] = (char *) 1024 +char cnt +char cnt#1 // reg byte x 4.0 +char cnt#12 // reg byte x 4.0 +char cnt#13 // reg byte x 13.0 +char cnt#14 // reg byte x 3.4000000000000004 void inccnt() void main() @@ -303,7 +303,7 @@ Score: 40 // main main: { // inccnt() - // [1] call inccnt + // [1] call inccnt // [8] phi from main to inccnt [phi:main->inccnt] // [8] phi cnt#13 = 0 [phi:main->inccnt#0] -- vbuxx=vbuc1 ldx #0 @@ -316,7 +316,7 @@ main: { // [3] cnt#1 = ++ cnt#14 -- vbuxx=_inc_vbuxx inx // inccnt() - // [4] call inccnt + // [4] call inccnt // [8] phi from main::@1 to inccnt [phi:main::@1->inccnt] // [8] phi cnt#13 = cnt#1 [phi:main::@1->inccnt#0] -- register_copy jsr inccnt diff --git a/src/test/ref/modglobalmin.sym b/src/test/ref/modglobalmin.sym index 64efa9565..24716d7b8 100644 --- a/src/test/ref/modglobalmin.sym +++ b/src/test/ref/modglobalmin.sym @@ -1,9 +1,9 @@ -constant byte* SCREEN[$100] = (byte*) 1024 -byte cnt -byte cnt#1 reg byte x 4.0 -byte cnt#12 reg byte x 4.0 -byte cnt#13 reg byte x 13.0 -byte cnt#14 reg byte x 3.4000000000000004 +__constant char SCREEN[$100] = (char *) 1024 +char cnt +char cnt#1 // reg byte x 4.0 +char cnt#12 // reg byte x 4.0 +char cnt#13 // reg byte x 13.0 +char cnt#14 // reg byte x 3.4000000000000004 void inccnt() void main() diff --git a/src/test/ref/mul8u-min.asm b/src/test/ref/mul8u-min.asm index 691361b6d..97244ff7d 100644 --- a/src/test/ref/mul8u-min.asm +++ b/src/test/ref/mul8u-min.asm @@ -46,7 +46,7 @@ main: { rts } // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a, byte register(A) b) +// __zp(4) unsigned int mul8u(__register(X) char a, __register(A) char b) mul8u: { .label mb = 6 .label res = 4 diff --git a/src/test/ref/mul8u-min.cfg b/src/test/ref/mul8u-min.cfg index 5d5e3d751..8b8e2c0be 100644 --- a/src/test/ref/mul8u-min.cfg +++ b/src/test/ref/mul8u-min.cfg @@ -12,7 +12,7 @@ main::@2: scope:[main] from main::@1 main::@4 [2] main::b#2 = phi( main::@1/0, main::@4/main::b#1 ) [3] mul8u::a#1 = main::a#4 [4] mul8u::b#0 = main::b#2 - [5] call mul8u + [5] call mul8u [6] mul8u::return#2 = mul8u::res#2 to:main::@4 main::@4: scope:[main] from main::@2 @@ -31,9 +31,9 @@ main::@return: scope:[main] from main::@3 [15] return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@2 - [16] mul8u::mb#0 = (word)mul8u::b#0 + [16] mul8u::mb#0 = (unsigned int)mul8u::b#0 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@3 [17] mul8u::mb#2 = phi( mul8u/mul8u::mb#0, mul8u::@3/mul8u::mb#1 ) diff --git a/src/test/ref/mul8u-min.log b/src/test/ref/mul8u-min.log index 556524158..9e2aeeb15 100644 --- a/src/test/ref/mul8u-min.log +++ b/src/test/ref/mul8u-min.log @@ -1,12 +1,12 @@ CONTROL FLOW GRAPH SSA -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@2 mul8u::a#5 = phi( main::@2/mul8u::a#1 ) mul8u::b#1 = phi( main::@2/mul8u::b#0 ) mul8u::res#0 = 0 - mul8u::mb#0 = (word)mul8u::b#1 + mul8u::mb#0 = (unsigned int)mul8u::b#1 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@4 mul8u::mb#5 = phi( mul8u/mul8u::mb#0, mul8u::@4/mul8u::mb#1 ) @@ -66,7 +66,7 @@ main::@2: scope:[main] from main::@1 main::@4 main::a#2 = phi( main::@1/main::a#4, main::@4/main::a#5 ) mul8u::a#1 = main::a#2 mul8u::b#0 = main::b#2 - call mul8u + call mul8u mul8u::return#2 = mul8u::return#1 to:main::@4 main::@4: scope:[main] from main::@2 @@ -75,7 +75,7 @@ main::@4: scope:[main] from main::@2 main::i#2 = phi( main::@2/main::i#3 ) mul8u::return#4 = phi( main::@2/mul8u::return#2 ) main::$0 = mul8u::return#4 - main::$3 = main::i#2 * SIZEOF_WORD + main::$3 = main::i#2 * SIZEOF_UNSIGNED_INT main::screen[main::$3] = main::$0 main::i#1 = ++ main::i#2 main::b#1 = main::b#3 + rangenext(0,5) @@ -95,7 +95,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -104,73 +104,73 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 -byte main::a#4 -byte main::a#5 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -constant word* const main::screen = (word*)$400 -word mul8u(byte mul8u::a , byte mul8u::b) -bool~ mul8u::$0 -number~ mul8u::$1 -bool~ mul8u::$2 -bool~ mul8u::$3 -word~ mul8u::$4 -byte~ mul8u::$5 -word~ mul8u::$6 -byte mul8u::a -byte mul8u::a#0 -byte mul8u::a#1 -byte mul8u::a#2 -byte mul8u::a#3 -byte mul8u::a#4 -byte mul8u::a#5 -byte mul8u::a#6 -byte mul8u::b -byte mul8u::b#0 -byte mul8u::b#1 -word mul8u::mb -word mul8u::mb#0 -word mul8u::mb#1 -word mul8u::mb#2 -word mul8u::mb#3 -word mul8u::mb#4 -word mul8u::mb#5 -word mul8u::res -word mul8u::res#0 -word mul8u::res#1 -word mul8u::res#2 -word mul8u::res#3 -word mul8u::res#4 -word mul8u::res#5 -word mul8u::res#6 -word mul8u::return -word mul8u::return#0 -word mul8u::return#1 -word mul8u::return#2 -word mul8u::return#3 -word mul8u::return#4 +unsigned int main::$0 +bool main::$1 +bool main::$2 +char main::$3 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 +char main::a#4 +char main::a#5 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +__constant unsigned int * const main::screen = (unsigned int *)$400 +unsigned int mul8u(char a , char b) +bool mul8u::$0 +number mul8u::$1 +bool mul8u::$2 +bool mul8u::$3 +unsigned int mul8u::$4 +char mul8u::$5 +unsigned int mul8u::$6 +char mul8u::a +char mul8u::a#0 +char mul8u::a#1 +char mul8u::a#2 +char mul8u::a#3 +char mul8u::a#4 +char mul8u::a#5 +char mul8u::a#6 +char mul8u::b +char mul8u::b#0 +char mul8u::b#1 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 +unsigned int mul8u::mb#1 +unsigned int mul8u::mb#2 +unsigned int mul8u::mb#3 +unsigned int mul8u::mb#4 +unsigned int mul8u::mb#5 +unsigned int mul8u::res +unsigned int mul8u::res#0 +unsigned int mul8u::res#1 +unsigned int mul8u::res#2 +unsigned int mul8u::res#3 +unsigned int mul8u::res#4 +unsigned int mul8u::res#5 +unsigned int mul8u::res#6 +unsigned int mul8u::return +unsigned int mul8u::return#0 +unsigned int mul8u::return#1 +unsigned int mul8u::return#2 +unsigned int mul8u::return#3 +unsigned int mul8u::return#4 Adding number conversion cast (unumber) 0 in mul8u::$0 = mul8u::a#2 != 0 Adding number conversion cast (unumber) 1 in mul8u::$1 = mul8u::a#3 & 1 @@ -179,20 +179,20 @@ Adding number conversion cast (unumber) 0 in mul8u::$2 = mul8u::$1 != 0 Adding number conversion cast (unumber) 1 in mul8u::$5 = mul8u::a#4 >> 1 Adding number conversion cast (unumber) 1 in mul8u::$6 = mul8u::mb#2 << 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in mul8u::$1 = mul8u::a#3 & 1 +Inferred type updated to char in mul8u::$1 = mul8u::a#3 & 1 Inversing boolean not [9] mul8u::$3 = mul8u::$1 == 0 from [8] mul8u::$2 = mul8u::$1 != 0 Successful SSA optimization Pass2UnaryNotSimplification Alias mul8u::a#2 = mul8u::a#3 mul8u::a#6 @@ -239,10 +239,10 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [17] main::$3 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [17] main::$3 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings mul8u::res#0 Inlining constant with var siblings main::i#0 @@ -253,7 +253,7 @@ Constant inlined main::i#0 = 0 Constant inlined mul8u::res#0 = 0 Constant inlined main::b#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting mul8u::@6(between mul8u::@2 and mul8u::@4) Added new block during phi lifting main::@5(between main::@3 and main::@1) @@ -300,7 +300,7 @@ main::@2: scope:[main] from main::@1 main::@4 [2] main::b#2 = phi( main::@1/0, main::@4/main::b#1 ) [3] mul8u::a#1 = main::a#4 [4] mul8u::b#0 = main::b#2 - [5] call mul8u + [5] call mul8u [6] mul8u::return#2 = mul8u::res#2 to:main::@4 main::@4: scope:[main] from main::@2 @@ -319,9 +319,9 @@ main::@return: scope:[main] from main::@3 [15] return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@2 - [16] mul8u::mb#0 = (word)mul8u::b#0 + [16] mul8u::mb#0 = (unsigned int)mul8u::b#0 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@3 [17] mul8u::mb#2 = phi( mul8u/mul8u::mb#0, mul8u::@3/mul8u::mb#1 ) @@ -348,36 +348,36 @@ mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4 VARIABLE REGISTER WEIGHTS void main() -word~ main::$0 101.0 -byte~ main::$3 202.0 -byte main::a -byte main::a#1 16.5 -byte main::a#4 10.249999999999998 -byte main::b -byte main::b#1 151.5 -byte main::b#2 33.666666666666664 -byte main::i -byte main::i#1 42.599999999999994 -byte main::i#2 39.25 -byte main::i#4 22.0 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 2000002.0 -byte mul8u::a -byte mul8u::a#0 1000001.0 -byte mul8u::a#1 367.33333333333337 -byte mul8u::a#2 666834.1666666667 -byte mul8u::b -byte mul8u::b#0 101.0 -word mul8u::mb -word mul8u::mb#0 2002.0 -word mul8u::mb#1 2000002.0 -word mul8u::mb#2 428714.85714285716 -word mul8u::res -word mul8u::res#1 2000002.0 -word mul8u::res#2 500017.3333333334 -word mul8u::res#6 1000001.0 -word mul8u::return -word mul8u::return#2 202.0 +unsigned int main::$0 // 101.0 +char main::$3 // 202.0 +char main::a +char main::a#1 // 16.5 +char main::a#4 // 10.249999999999998 +char main::b +char main::b#1 // 151.5 +char main::b#2 // 33.666666666666664 +char main::i +char main::i#1 // 42.599999999999994 +char main::i#2 // 39.25 +char main::i#4 // 22.0 +unsigned int mul8u(char a , char b) +char mul8u::$1 // 2000002.0 +char mul8u::a +char mul8u::a#0 // 1000001.0 +char mul8u::a#1 // 367.33333333333337 +char mul8u::a#2 // 666834.1666666667 +char mul8u::b +char mul8u::b#0 // 101.0 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 // 2002.0 +unsigned int mul8u::mb#1 // 2000002.0 +unsigned int mul8u::mb#2 // 428714.85714285716 +unsigned int mul8u::res +unsigned int mul8u::res#1 // 2000002.0 +unsigned int mul8u::res#2 // 500017.3333333334 +unsigned int mul8u::res#6 // 1000001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // 202.0 Initial phi equivalence classes [ main::a#4 main::a#1 ] @@ -422,7 +422,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i Statement [7] main::$0 = mul8u::return#2 [ main::a#4 main::b#2 main::i#2 main::$0 ] ( [ main::a#4 main::b#2 main::i#2 main::$0 ] { } ) always clobbers reg byte a Statement [8] main::$3 = main::i#2 << 1 [ main::a#4 main::b#2 main::i#2 main::$0 main::$3 ] ( [ main::a#4 main::b#2 main::i#2 main::$0 main::$3 ] { } ) always clobbers reg byte a Statement [9] main::screen[main::$3] = main::$0 [ main::a#4 main::b#2 main::i#2 ] ( [ main::a#4 main::b#2 main::i#2 ] { } ) always clobbers reg byte a -Statement [16] mul8u::mb#0 = (word)mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::a#1 mul8u::mb#0 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a +Statement [16] mul8u::mb#0 = (unsigned int)mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::a#1 mul8u::mb#0 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] Statement [20] mul8u::$1 = mul8u::a#2 & 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [22] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a @@ -430,7 +430,7 @@ Statement [6] mul8u::return#2 = mul8u::res#2 [ main::a#4 main::b#2 main::i#2 mul Statement [7] main::$0 = mul8u::return#2 [ main::a#4 main::b#2 main::i#2 main::$0 ] ( [ main::a#4 main::b#2 main::i#2 main::$0 ] { } ) always clobbers reg byte a Statement [8] main::$3 = main::i#2 << 1 [ main::a#4 main::b#2 main::i#2 main::$0 main::$3 ] ( [ main::a#4 main::b#2 main::i#2 main::$0 main::$3 ] { } ) always clobbers reg byte a Statement [9] main::screen[main::$3] = main::$0 [ main::a#4 main::b#2 main::i#2 ] ( [ main::a#4 main::b#2 main::i#2 ] { } ) always clobbers reg byte a -Statement [16] mul8u::mb#0 = (word)mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::a#1 mul8u::mb#0 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a +Statement [16] mul8u::mb#0 = (unsigned int)mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::a#1 mul8u::mb#0 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [20] mul8u::$1 = mul8u::a#2 & 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [22] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( mul8u:5 [ main::a#4 main::b#2 main::i#2 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#1 = main::a#4 } { mul8u::b#0 = main::b#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::a#4 main::a#1 ] : zp[1]:2 , reg byte x , reg byte y , @@ -517,7 +517,7 @@ main: { ldx.z a // [4] mul8u::b#0 = main::b#2 -- vbuaa=vbuyy tya - // [5] call mul8u + // [5] call mul8u jsr mul8u // [6] mul8u::return#2 = mul8u::res#2 jmp __b4 @@ -557,12 +557,12 @@ main: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a, byte register(A) b) +// __zp(4) unsigned int mul8u(__register(X) char a, __register(A) char b) mul8u: { .label mb = 6 .label res = 4 .label return = 4 - // [16] mul8u::mb#0 = (word)mul8u::b#0 -- vwuz1=_word_vbuaa + // [16] mul8u::mb#0 = (unsigned int)mul8u::b#0 -- vwuz1=_word_vbuaa sta.z mb lda #0 sta.z mb+1 @@ -668,37 +668,37 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -word~ main::$0 zp[2]:4 101.0 -byte~ main::$3 reg byte x 202.0 -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#4 a zp[1]:2 10.249999999999998 -byte main::b -byte main::b#1 reg byte y 151.5 -byte main::b#2 reg byte y 33.666666666666664 -byte main::i -byte main::i#1 i zp[1]:3 42.599999999999994 -byte main::i#2 i zp[1]:3 39.25 -byte main::i#4 i zp[1]:3 22.0 -constant word* const main::screen = (word*) 1024 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 2000002.0 -byte mul8u::a -byte mul8u::a#0 reg byte x 1000001.0 -byte mul8u::a#1 reg byte x 367.33333333333337 -byte mul8u::a#2 reg byte x 666834.1666666667 -byte mul8u::b -byte mul8u::b#0 reg byte a 101.0 -word mul8u::mb -word mul8u::mb#0 mb zp[2]:6 2002.0 -word mul8u::mb#1 mb zp[2]:6 2000002.0 -word mul8u::mb#2 mb zp[2]:6 428714.85714285716 -word mul8u::res -word mul8u::res#1 res zp[2]:4 2000002.0 -word mul8u::res#2 res zp[2]:4 500017.3333333334 -word mul8u::res#6 res zp[2]:4 1000001.0 -word mul8u::return -word mul8u::return#2 return zp[2]:4 202.0 +unsigned int main::$0 // zp[2]:4 101.0 +char main::$3 // reg byte x 202.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#4 // a zp[1]:2 10.249999999999998 +char main::b +char main::b#1 // reg byte y 151.5 +char main::b#2 // reg byte y 33.666666666666664 +char main::i +char main::i#1 // i zp[1]:3 42.599999999999994 +char main::i#2 // i zp[1]:3 39.25 +char main::i#4 // i zp[1]:3 22.0 +__constant unsigned int * const main::screen = (unsigned int *) 1024 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 2000002.0 +char mul8u::a +char mul8u::a#0 // reg byte x 1000001.0 +char mul8u::a#1 // reg byte x 367.33333333333337 +char mul8u::a#2 // reg byte x 666834.1666666667 +char mul8u::b +char mul8u::b#0 // reg byte a 101.0 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 // mb zp[2]:6 2002.0 +unsigned int mul8u::mb#1 // mb zp[2]:6 2000002.0 +unsigned int mul8u::mb#2 // mb zp[2]:6 428714.85714285716 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:4 2000002.0 +unsigned int mul8u::res#2 // res zp[2]:4 500017.3333333334 +unsigned int mul8u::res#6 // res zp[2]:4 1000001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:4 202.0 zp[1]:2 [ main::a#4 main::a#1 ] reg byte y [ main::b#2 main::b#1 ] @@ -758,7 +758,7 @@ main: { ldx.z a // [4] mul8u::b#0 = main::b#2 -- vbuaa=vbuyy tya - // [5] call mul8u + // [5] call mul8u jsr mul8u // [6] mul8u::return#2 = mul8u::res#2 // main::@4 @@ -797,13 +797,13 @@ main: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a, byte register(A) b) +// __zp(4) unsigned int mul8u(__register(X) char a, __register(A) char b) mul8u: { .label mb = 6 .label res = 4 .label return = 4 // unsigned int mb = b - // [16] mul8u::mb#0 = (word)mul8u::b#0 -- vwuz1=_word_vbuaa + // [16] mul8u::mb#0 = (unsigned int)mul8u::b#0 -- vwuz1=_word_vbuaa sta.z mb lda #0 sta.z mb+1 diff --git a/src/test/ref/mul8u-min.sym b/src/test/ref/mul8u-min.sym index 0016cd23e..49d767429 100644 --- a/src/test/ref/mul8u-min.sym +++ b/src/test/ref/mul8u-min.sym @@ -1,35 +1,35 @@ void main() -word~ main::$0 zp[2]:4 101.0 -byte~ main::$3 reg byte x 202.0 -byte main::a -byte main::a#1 a zp[1]:2 16.5 -byte main::a#4 a zp[1]:2 10.249999999999998 -byte main::b -byte main::b#1 reg byte y 151.5 -byte main::b#2 reg byte y 33.666666666666664 -byte main::i -byte main::i#1 i zp[1]:3 42.599999999999994 -byte main::i#2 i zp[1]:3 39.25 -byte main::i#4 i zp[1]:3 22.0 -constant word* const main::screen = (word*) 1024 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 2000002.0 -byte mul8u::a -byte mul8u::a#0 reg byte x 1000001.0 -byte mul8u::a#1 reg byte x 367.33333333333337 -byte mul8u::a#2 reg byte x 666834.1666666667 -byte mul8u::b -byte mul8u::b#0 reg byte a 101.0 -word mul8u::mb -word mul8u::mb#0 mb zp[2]:6 2002.0 -word mul8u::mb#1 mb zp[2]:6 2000002.0 -word mul8u::mb#2 mb zp[2]:6 428714.85714285716 -word mul8u::res -word mul8u::res#1 res zp[2]:4 2000002.0 -word mul8u::res#2 res zp[2]:4 500017.3333333334 -word mul8u::res#6 res zp[2]:4 1000001.0 -word mul8u::return -word mul8u::return#2 return zp[2]:4 202.0 +unsigned int main::$0 // zp[2]:4 101.0 +char main::$3 // reg byte x 202.0 +char main::a +char main::a#1 // a zp[1]:2 16.5 +char main::a#4 // a zp[1]:2 10.249999999999998 +char main::b +char main::b#1 // reg byte y 151.5 +char main::b#2 // reg byte y 33.666666666666664 +char main::i +char main::i#1 // i zp[1]:3 42.599999999999994 +char main::i#2 // i zp[1]:3 39.25 +char main::i#4 // i zp[1]:3 22.0 +__constant unsigned int * const main::screen = (unsigned int *) 1024 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 2000002.0 +char mul8u::a +char mul8u::a#0 // reg byte x 1000001.0 +char mul8u::a#1 // reg byte x 367.33333333333337 +char mul8u::a#2 // reg byte x 666834.1666666667 +char mul8u::b +char mul8u::b#0 // reg byte a 101.0 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 // mb zp[2]:6 2002.0 +unsigned int mul8u::mb#1 // mb zp[2]:6 2000002.0 +unsigned int mul8u::mb#2 // mb zp[2]:6 428714.85714285716 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:4 2000002.0 +unsigned int mul8u::res#2 // res zp[2]:4 500017.3333333334 +unsigned int mul8u::res#6 // res zp[2]:4 1000001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:4 202.0 zp[1]:2 [ main::a#4 main::a#1 ] reg byte y [ main::b#2 main::b#1 ] diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm index cd5d428ec..ec1ff44c3 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm @@ -381,6 +381,7 @@ loop: { jmp __b2 } // Initialize the multiplexer data structures +// void plexInit(char *screen) plexInit: { // PLEX_SCREEN_PTR = screen+0x3f8 lda #= PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]] from [17] plexSort::$2 = plexSort::nxt_y#0 < PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]] Inversing boolean not [76] plexShowSprite::$7 = plex_sprite_msb != 0 from [75] plexShowSprite::$6 = plex_sprite_msb == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -688,7 +688,7 @@ Identical Phi Values loop::sin_idx#3 loop::sin_idx#2 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values plexSort::m#3 plexSort::m#2 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [63] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_WORD +Identified duplicate assignment right side [63] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition plexInit::$1 [8] if(plexInit::i#1!=rangelast(0,PLEX_COUNT-1)) goto plexInit::@1 Simple Condition plexSort::$3 [16] if(plexSort::nxt_y#0>=PLEX_YPOS[PLEX_SORTED_IDX[plexSort::m#2]]) goto plexSort::@2 @@ -756,12 +756,12 @@ Simplifying constant integer cast 8 Simplifying constant integer cast PLEX_COUNT-1+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)PLEX_SCREEN_PTR = plexInit::plexSetScreen1_$0 Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 @@ -786,8 +786,8 @@ Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5 Rewriting multiplication to use shift [29] plexShowSprite::plex_sprite_idx2#0 = plex_sprite_idx * 2 -Rewriting multiplication to use shift [39] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_WORD -Rewriting multiplication to use shift [62] init::$3 = init::sx#2 * SIZEOF_WORD +Rewriting multiplication to use shift [39] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [62] init::$3 = init::sx#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings plexInit::i#0 Inlining constant with var siblings plexSort::m#0 @@ -818,14 +818,14 @@ Alias plexSort::s#3 = plexSort::$4 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2 Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5 @@ -903,7 +903,7 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 + [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 [2] plex_show_idx = 0 [3] plex_sprite_idx = 0 [4] plex_sprite_msb = 1 @@ -912,7 +912,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [7] phi() - [8] call main + [8] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [9] return @@ -925,7 +925,7 @@ plex_irq: scope:[plex_irq] from to:plex_irq::@3 plex_irq::@3: scope:[plex_irq] from plex_irq plex_irq::@7 [12] phi() - [13] call plexShowSprite + [13] call plexShowSprite to:plex_irq::plexFreeNextYpos1 plex_irq::plexFreeNextYpos1: scope:[plex_irq] from plex_irq::@3 [14] plex_irq::plexFreeNextYpos1_return#0 = PLEX_FREE_YPOS[plex_free_next] @@ -959,11 +959,11 @@ plex_irq::@1: scope:[plex_irq] from plex_irq::@4 void main() main: scope:[main] from __start::@1 asm { sei } - [27] call init + [27] call init to:main::@1 main::@1: scope:[main] from main [28] phi() - [29] call loop + [29] call loop to:main::@return main::@return: scope:[main] from main::@1 [30] return @@ -986,7 +986,7 @@ plexShowSprite::@5: scope:[plexShowSprite] from plexShowSprite::plexFreeAdd1 [39] PLEX_SCREEN_PTR[plex_sprite_idx] = PLEX_PTR[PLEX_SORTED_IDX[plex_show_idx]] [40] plexShowSprite::xpos_idx#0 = PLEX_SORTED_IDX[plex_show_idx] [41] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 - [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] + [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] [43] plexShowSprite::$2 = byte1 PLEX_XPOS[plexShowSprite::$10] [44] if(plexShowSprite::$2!=0) goto plexShowSprite::@1 to:plexShowSprite::@3 @@ -1015,12 +1015,12 @@ plexShowSprite::@1: scope:[plexShowSprite] from plexShowSprite::@5 void init() init: scope:[init] from main [56] *D011 = VICII_DEN|VICII_RSEL|3 - [57] call plexInit + [57] call plexInit to:init::@1 init::@1: scope:[init] from init init::@1 [58] init::xp#2 = phi( init::@1/init::xp#1, init/$20 ) [58] init::sx#2 = phi( init::@1/init::sx#1, init/0 ) - [59] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 + [59] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 [60] init::$3 = init::sx#2 << 1 [61] PLEX_XPOS[init::$3] = init::xp#2 [62] init::xp#1 = init::xp#2 + 9 @@ -1038,7 +1038,7 @@ init::@3: scope:[init] from init::@2 init::@3 to:init::@4 init::@4: scope:[init] from init::@3 asm { sei } - [71] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR + [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [72] *IRQ_ENABLE = IRQ_RASTER [73] *IRQ_STATUS = IRQ_RASTER [74] *KERNEL_IRQ = &plex_irq @@ -1075,14 +1075,14 @@ loop::@4: scope:[loop] from loop::@3 loop::@4 loop::@5: scope:[loop] from loop::@4 [89] loop::sin_idx#1 = loop::sin_idx#6 + 1 [90] *BORDER_COLOR = ++ *BORDER_COLOR - [91] call plexSort + [91] call plexSort to:loop::@6 loop::@6: scope:[loop] from loop::@5 [92] *BORDER_COLOR = GREEN [93] framedone = false to:loop::@1 -void plexInit(byte* plexInit::screen) +void plexInit(char *screen) plexInit: scope:[plexInit] from init [94] phi() to:plexInit::plexSetScreen1 @@ -1152,79 +1152,79 @@ plexSort::@return: scope:[plexSort] from plexSort::plexFreePrepare1_@2 VARIABLE REGISTER WEIGHTS -byte* volatile PLEX_SCREEN_PTR loadstore 33.45454545454545 +__loadstore char * volatile PLEX_SCREEN_PTR // 33.45454545454545 void __start() -volatile bool framedone loadstore 1222.8888888888887 +__loadstore volatile bool framedone // 1222.8888888888887 void init() -byte~ init::$3 2002.0 -byte init::ss -byte init::ss#1 1501.5 -byte init::ss#2 1501.5 -byte init::sx -byte init::sx#1 1501.5 -byte init::sx#2 800.8 -word init::xp -word init::xp#1 667.3333333333334 -word init::xp#2 750.75 +char init::$3 // 2002.0 +char init::ss +char init::ss#1 // 1501.5 +char init::ss#2 // 1501.5 +char init::sx +char init::sx#1 // 1501.5 +char init::sx#2 // 800.8 +unsigned int init::xp +unsigned int init::xp#1 // 667.3333333333334 +unsigned int init::xp#2 // 750.75 void loop() -byte loop::sin_idx -byte loop::sin_idx#1 400.4 -byte loop::sin_idx#6 333.6666666666667 -byte loop::sy -byte loop::sy#1 15001.5 -byte loop::sy#2 10001.0 -byte loop::y_idx -byte loop::y_idx#1 6667.333333333333 -byte loop::y_idx#2 15502.0 -byte loop::y_idx#3 2002.0 +char loop::sin_idx +char loop::sin_idx#1 // 400.4 +char loop::sin_idx#6 // 333.6666666666667 +char loop::sy +char loop::sy#1 // 15001.5 +char loop::sy#2 // 10001.0 +char loop::y_idx +char loop::y_idx#1 // 6667.333333333333 +char loop::y_idx#2 // 15502.0 +char loop::y_idx#3 // 2002.0 void main() -void plexInit(byte* plexInit::screen) -byte plexInit::i -byte plexInit::i#1 15001.5 -byte plexInit::i#2 20002.0 -byte* plexInit::plexSetScreen1_screen -byte* plexInit::screen +void plexInit(char *screen) +char plexInit::i +char plexInit::i#1 // 15001.5 +char plexInit::i#2 // 20002.0 +char *plexInit::plexSetScreen1_screen +char *plexInit::screen void plexShowSprite() -byte~ plexShowSprite::$10 101.0 -byte~ plexShowSprite::$2 202.0 -byte~ plexShowSprite::$4 202.0 -byte~ plexShowSprite::$5 202.0 -byte~ plexShowSprite::$8 202.0 -byte~ plexShowSprite::plexFreeAdd1_$0 202.0 -byte~ plexShowSprite::plexFreeAdd1_$1 202.0 -byte~ plexShowSprite::plexFreeAdd1_$2 202.0 -byte plexShowSprite::plexFreeAdd1_ypos -byte plexShowSprite::plexFreeAdd1_ypos#0 151.5 -byte plexShowSprite::plex_sprite_idx2 -byte plexShowSprite::plex_sprite_idx2#0 27.545454545454547 -byte plexShowSprite::xpos_idx -byte plexShowSprite::xpos_idx#0 202.0 -byte plexShowSprite::ypos +char plexShowSprite::$10 // 101.0 +char plexShowSprite::$2 // 202.0 +char plexShowSprite::$4 // 202.0 +char plexShowSprite::$5 // 202.0 +char plexShowSprite::$8 // 202.0 +char plexShowSprite::plexFreeAdd1_$0 // 202.0 +char plexShowSprite::plexFreeAdd1_$1 // 202.0 +char plexShowSprite::plexFreeAdd1_$2 // 202.0 +char plexShowSprite::plexFreeAdd1_ypos +char plexShowSprite::plexFreeAdd1_ypos#0 // 151.5 +char plexShowSprite::plex_sprite_idx2 +char plexShowSprite::plex_sprite_idx2#0 // 27.545454545454547 +char plexShowSprite::xpos_idx +char plexShowSprite::xpos_idx#0 // 202.0 +char plexShowSprite::ypos void plexSort() -byte plexSort::m -byte plexSort::m#1 1500001.5 -byte plexSort::m#2 416667.0833333334 -byte plexSort::nxt_idx -byte plexSort::nxt_idx#0 300000.30000000005 -byte plexSort::nxt_y -byte plexSort::nxt_y#0 1500000.375 -byte plexSort::plexFreePrepare1_s -byte plexSort::plexFreePrepare1_s#1 1500001.5 -byte plexSort::plexFreePrepare1_s#2 1500001.5 -byte plexSort::s -byte plexSort::s#1 1.3666668333333332E7 -byte plexSort::s#2 2000002.0 -byte plexSort::s#3 2.05000025E7 -byte plexSort::s#6 2000002.0 -volatile byte plex_free_next loadstore 332.80645161290323 +char plexSort::m +char plexSort::m#1 // 1500001.5 +char plexSort::m#2 // 416667.0833333334 +char plexSort::nxt_idx +char plexSort::nxt_idx#0 // 300000.30000000005 +char plexSort::nxt_y +char plexSort::nxt_y#0 // 1500000.375 +char plexSort::plexFreePrepare1_s +char plexSort::plexFreePrepare1_s#1 // 1500001.5 +char plexSort::plexFreePrepare1_s#2 // 1500001.5 +char plexSort::s +char plexSort::s#1 // 1.3666668333333332E7 +char plexSort::s#2 // 2000002.0 +char plexSort::s#3 // 2.05000025E7 +char plexSort::s#6 // 2000002.0 +__loadstore volatile char plex_free_next // 332.80645161290323 __interrupt(rom_min_c64) void plex_irq() -byte~ plex_irq::$4 11.0 -byte plex_irq::plexFreeNextYpos1_return -byte plex_irq::plexFreeNextYpos1_return#0 4.0 -byte plex_irq::rasterY -volatile byte plex_show_idx loadstore 309.44117647058823 -volatile byte plex_sprite_idx loadstore 335.7096774193549 -volatile byte plex_sprite_msb loadstore 321.4848484848485 +char plex_irq::$4 // 11.0 +char plex_irq::plexFreeNextYpos1_return +char plex_irq::plexFreeNextYpos1_return#0 // 4.0 +char plex_irq::rasterY +__loadstore volatile char plex_show_idx // 309.44117647058823 +__loadstore volatile char plex_sprite_idx // 335.7096774193549 +__loadstore volatile char plex_sprite_msb // 321.4848484848485 Initial phi equivalence classes [ init::sx#2 init::sx#1 ] @@ -1328,7 +1328,7 @@ Allocated zp[1]:34 [ plexSort::nxt_idx#0 ] Allocated zp[1]:35 [ plexSort::nxt_y#0 ] Allocated zp[1]:36 [ plexSort::s#2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1353,7 +1353,7 @@ Statement [39] PLEX_SCREEN_PTR[plex_sprite_idx] = PLEX_PTR[PLEX_SORTED_IDX[plex_ Removing always clobbered register reg byte a as potential for zp[1]:22 [ plexShowSprite::plex_sprite_idx2#0 ] Statement [40] plexShowSprite::xpos_idx#0 = PLEX_SORTED_IDX[plex_show_idx] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] { } ) always clobbers reg byte y Statement [41] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] { } ) always clobbers reg byte a -Statement [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a +Statement [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:28 [ plexShowSprite::$10 ] Statement [43] plexShowSprite::$2 = byte1 PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] { } ) always clobbers reg byte a Statement [45] plexShowSprite::$8 = $ff ^ plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] { } ) always clobbers reg byte a @@ -1362,7 +1362,7 @@ Statement [52] if(plex_sprite_msb!=0) goto plexShowSprite::@return [ PLEX_SCREEN Statement [53] plex_sprite_msb = 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [55] *SPRITES_XMSB = *SPRITES_XMSB | plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [56] *D011 = VICII_DEN|VICII_RSEL|3 [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a -Statement [59] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a +Statement [59] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ init::sx#2 init::sx#1 ] Statement [60] init::$3 = init::sx#2 << 1 [ init::sx#2 init::xp#2 init::$3 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 init::$3 ] { } ) always clobbers reg byte a Statement [61] PLEX_XPOS[init::$3] = init::xp#2 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a @@ -1370,7 +1370,7 @@ Statement [62] init::xp#1 = init::xp#2 + 9 [ init::sx#2 init::xp#1 ] ( main:8::i Statement [65] *SPRITES_ENABLE = $ff [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [67] SPRITES_COLOR[init::ss#2] = GREEN [ init::ss#2 ] ( main:8::init:27 [ framedone init::ss#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ init::ss#2 init::ss#1 ] -Statement [71] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a +Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [72] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [73] *IRQ_STATUS = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [74] *KERNEL_IRQ = &plex_irq [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a @@ -1399,7 +1399,7 @@ Statement [118] plex_sprite_msb = 1 [ ] ( main:8::loop:29::plexSort:91 [ loop::s Statement [121] PLEX_FREE_YPOS[plexSort::plexFreePrepare1_s#2] = 0 [ plexSort::plexFreePrepare1_s#2 ] ( main:8::loop:29::plexSort:91 [ loop::sin_idx#1 plexSort::plexFreePrepare1_s#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:12 [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] Statement [124] plex_free_next = 0 [ ] ( main:8::loop:29::plexSort:91 [ loop::sin_idx#1 ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1421,7 +1421,7 @@ Statement [35] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 Statement [39] PLEX_SCREEN_PTR[plex_sprite_idx] = PLEX_PTR[PLEX_SORTED_IDX[plex_show_idx]] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [40] plexShowSprite::xpos_idx#0 = PLEX_SORTED_IDX[plex_show_idx] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] { } ) always clobbers reg byte y Statement [41] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] { } ) always clobbers reg byte a -Statement [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a +Statement [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a Statement [43] plexShowSprite::$2 = byte1 PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] { } ) always clobbers reg byte a Statement [45] plexShowSprite::$8 = $ff ^ plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] { } ) always clobbers reg byte a Statement [46] *SPRITES_XMSB = *SPRITES_XMSB & plexShowSprite::$8 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a @@ -1429,13 +1429,13 @@ Statement [52] if(plex_sprite_msb!=0) goto plexShowSprite::@return [ PLEX_SCREEN Statement [53] plex_sprite_msb = 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [55] *SPRITES_XMSB = *SPRITES_XMSB | plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [56] *D011 = VICII_DEN|VICII_RSEL|3 [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a -Statement [59] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a +Statement [59] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Statement [60] init::$3 = init::sx#2 << 1 [ init::sx#2 init::xp#2 init::$3 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 init::$3 ] { } ) always clobbers reg byte a Statement [61] PLEX_XPOS[init::$3] = init::xp#2 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Statement [62] init::xp#1 = init::xp#2 + 9 [ init::sx#2 init::xp#1 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#1 ] { } ) always clobbers reg byte a Statement [65] *SPRITES_ENABLE = $ff [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [67] SPRITES_COLOR[init::ss#2] = GREEN [ init::ss#2 ] ( main:8::init:27 [ framedone init::ss#2 ] { } ) always clobbers reg byte a -Statement [71] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a +Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [72] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [73] *IRQ_STATUS = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [74] *KERNEL_IRQ = &plex_irq [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a @@ -1457,7 +1457,7 @@ Statement [117] plex_sprite_idx = 0 [ ] ( main:8::loop:29::plexSort:91 [ loop::s Statement [118] plex_sprite_msb = 1 [ ] ( main:8::loop:29::plexSort:91 [ loop::sin_idx#1 ] { } ) always clobbers reg byte a Statement [121] PLEX_FREE_YPOS[plexSort::plexFreePrepare1_s#2] = 0 [ plexSort::plexFreePrepare1_s#2 ] ( main:8::loop:29::plexSort:91 [ loop::sin_idx#1 plexSort::plexFreePrepare1_s#2 ] { } ) always clobbers reg byte a Statement [124] plex_free_next = 0 [ ] ( main:8::loop:29::plexSort:91 [ loop::sin_idx#1 ] { } ) always clobbers reg byte a -Statement [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] plex_show_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] plex_sprite_idx = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] plex_sprite_msb = 1 [ ] ( [ ] { } ) always clobbers reg byte a @@ -1478,7 +1478,7 @@ Statement [35] PLEX_FREE_YPOS[plex_free_next] = plexShowSprite::plexFreeAdd1_$0 Statement [39] PLEX_SCREEN_PTR[plex_sprite_idx] = PLEX_PTR[PLEX_SORTED_IDX[plex_show_idx]] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [40] plexShowSprite::xpos_idx#0 = PLEX_SORTED_IDX[plex_show_idx] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::xpos_idx#0 ] { } ) always clobbers reg byte y Statement [41] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::plex_sprite_idx2#0 plexShowSprite::$10 ] { } ) always clobbers reg byte a -Statement [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a +Statement [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$10 ] { } ) always clobbers reg byte a Statement [43] plexShowSprite::$2 = byte1 PLEX_XPOS[plexShowSprite::$10] [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$2 ] { } ) always clobbers reg byte a Statement [45] plexShowSprite::$8 = $ff ^ plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next plexShowSprite::$8 ] { } ) always clobbers reg byte a Statement [46] *SPRITES_XMSB = *SPRITES_XMSB & plexShowSprite::$8 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a @@ -1486,13 +1486,13 @@ Statement [52] if(plex_sprite_msb!=0) goto plexShowSprite::@return [ PLEX_SCREEN Statement [53] plex_sprite_msb = 1 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [55] *SPRITES_XMSB = *SPRITES_XMSB | plex_sprite_msb [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] ( plexShowSprite:13 [ PLEX_SCREEN_PTR plex_show_idx plex_sprite_idx plex_sprite_msb plex_free_next ] { } ) always clobbers reg byte a Statement [56] *D011 = VICII_DEN|VICII_RSEL|3 [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a -Statement [59] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a +Statement [59] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Statement [60] init::$3 = init::sx#2 << 1 [ init::sx#2 init::xp#2 init::$3 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 init::$3 ] { } ) always clobbers reg byte a Statement [61] PLEX_XPOS[init::$3] = init::xp#2 [ init::sx#2 init::xp#2 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#2 ] { } ) always clobbers reg byte a Statement [62] init::xp#1 = init::xp#2 + 9 [ init::sx#2 init::xp#1 ] ( main:8::init:27 [ framedone init::sx#2 init::xp#1 ] { } ) always clobbers reg byte a Statement [65] *SPRITES_ENABLE = $ff [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [67] SPRITES_COLOR[init::ss#2] = GREEN [ init::ss#2 ] ( main:8::init:27 [ framedone init::ss#2 ] { } ) always clobbers reg byte a -Statement [71] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a +Statement [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [72] *IRQ_ENABLE = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [73] *IRQ_STATUS = IRQ_RASTER [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a Statement [74] *KERNEL_IRQ = &plex_irq [ ] ( main:8::init:27 [ framedone ] { } ) always clobbers reg byte a @@ -1734,7 +1734,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 + // [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 @@ -1759,7 +1759,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [8] call main + // [8] call main jsr main jmp __breturn // __start::@return @@ -1782,7 +1782,7 @@ plex_irq: { jmp __b3 // plex_irq::@3 __b3: - // [13] call plexShowSprite + // [13] call plexShowSprite jsr plexShowSprite jmp plexFreeNextYpos1 // plex_irq::plexFreeNextYpos1 @@ -1851,14 +1851,14 @@ plex_irq: { main: { // asm { sei } sei - // [27] call init + // [27] call init jsr init // [28] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [29] call loop + // [29] call loop // [79] phi from main::@1 to loop [phi:main::@1->loop] loop_from___b1: jsr loop @@ -1916,7 +1916,7 @@ plexShowSprite: { // [41] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 -- vbuxx=vbuaa_rol_1 asl tax - // [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx + // [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx ldy.z plex_sprite_idx2 lda PLEX_XPOS,x sta SPRITES_XPOS,y @@ -1979,7 +1979,7 @@ init: { // [56] *D011 = VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_DEN|VICII_RSEL|3 sta D011 - // [57] call plexInit + // [57] call plexInit // Initialize the multiplexer // [94] phi from init to plexInit [phi:init->plexInit] plexInit_from_init: @@ -2001,7 +2001,7 @@ init: { jmp __b1 // init::@1 __b1: - // [59] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 + // [59] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta PLEX_PTR,x // [60] init::$3 = init::sx#2 << 1 -- vbuaa=vbuxx_rol_1 @@ -2058,7 +2058,7 @@ init: { // asm { sei } // enable the interrupt sei - // [71] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // [72] *IRQ_ENABLE = IRQ_RASTER -- _deref_pbuc1=vbuc2 @@ -2146,7 +2146,7 @@ loop: { inc.z sin_idx // [90] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR - // [91] call plexSort + // [91] call plexSort // [101] phi from loop::@5 to plexSort [phi:loop::@5->plexSort] plexSort_from___b5: jsr plexSort @@ -2166,6 +2166,7 @@ loop: { } // plexInit // Initialize the multiplexer data structures +// void plexInit(char *screen) plexInit: { jmp plexSetScreen1 // plexInit::plexSetScreen1 @@ -2484,114 +2485,114 @@ Removing instruction lda #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* const BORDER_COLOR = (byte*) 53280 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const D011 = (byte*) 53265 -constant const byte GREEN = 5 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant const byte PLEX_COUNT = $20 -constant byte* PLEX_FREE_YPOS[8] = { fill( 8, 0) } -constant byte* PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -byte* volatile PLEX_SCREEN_PTR loadstore zp[2]:6 33.45454545454545 -constant byte* PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant word* PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* const RASTER = (byte*) 53266 -constant const byte RED = 2 -constant byte* SCREEN = (byte*) 1024 -constant byte* SPRITE[$40] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant char * const BORDER_COLOR = (char *) 53280 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const D011 = (char *) 53265 +__constant const char GREEN = 5 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant const char PLEX_COUNT = $20 +__constant char PLEX_FREE_YPOS[8] = { fill( 8, 0) } +__constant char PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__loadstore char * volatile PLEX_SCREEN_PTR // zp[2]:6 33.45454545454545 +__constant char PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant unsigned int PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char * const RASTER = (char *) 53266 +__constant const char RED = 2 +__constant char *SCREEN = (char *) 1024 +__constant char SPRITE[$40] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -constant byte* YSIN[$100] = kickasm {{ .fill $100, round(139.5+89.5*sin(toRadians(360*i/256))) +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +__constant char YSIN[$100] = kickasm {{ .fill $100, round(139.5+89.5*sin(toRadians(360*i/256))) }} void __start() -volatile bool framedone loadstore zp[1]:12 1222.8888888888887 +__loadstore volatile bool framedone // zp[1]:12 1222.8888888888887 void init() -byte~ init::$3 reg byte a 2002.0 -byte init::ss -byte init::ss#1 reg byte x 1501.5 -byte init::ss#2 reg byte x 1501.5 -byte init::sx -byte init::sx#1 reg byte x 1501.5 -byte init::sx#2 reg byte x 800.8 -word init::xp -word init::xp#1 xp zp[2]:2 667.3333333333334 -word init::xp#2 xp zp[2]:2 750.75 +char init::$3 // reg byte a 2002.0 +char init::ss +char init::ss#1 // reg byte x 1501.5 +char init::ss#2 // reg byte x 1501.5 +char init::sx +char init::sx#1 // reg byte x 1501.5 +char init::sx#2 // reg byte x 800.8 +unsigned int init::xp +unsigned int init::xp#1 // xp zp[2]:2 667.3333333333334 +unsigned int init::xp#2 // xp zp[2]:2 750.75 void loop() -byte loop::sin_idx -byte loop::sin_idx#1 sin_idx zp[1]:4 400.4 -byte loop::sin_idx#6 sin_idx zp[1]:4 333.6666666666667 -byte loop::sy -byte loop::sy#1 reg byte y 15001.5 -byte loop::sy#2 reg byte y 10001.0 -byte loop::y_idx -byte loop::y_idx#1 reg byte x 6667.333333333333 -byte loop::y_idx#2 reg byte x 15502.0 -byte loop::y_idx#3 reg byte x 2002.0 +char loop::sin_idx +char loop::sin_idx#1 // sin_idx zp[1]:4 400.4 +char loop::sin_idx#6 // sin_idx zp[1]:4 333.6666666666667 +char loop::sy +char loop::sy#1 // reg byte y 15001.5 +char loop::sy#2 // reg byte y 10001.0 +char loop::y_idx +char loop::y_idx#1 // reg byte x 6667.333333333333 +char loop::y_idx#2 // reg byte x 15502.0 +char loop::y_idx#3 // reg byte x 2002.0 void main() -void plexInit(byte* plexInit::screen) -byte plexInit::i -byte plexInit::i#1 reg byte x 15001.5 -byte plexInit::i#2 reg byte x 20002.0 -byte* plexInit::plexSetScreen1_screen -byte* plexInit::screen +void plexInit(char *screen) +char plexInit::i +char plexInit::i#1 // reg byte x 15001.5 +char plexInit::i#2 // reg byte x 20002.0 +char *plexInit::plexSetScreen1_screen +char *plexInit::screen void plexShowSprite() -byte~ plexShowSprite::$10 reg byte x 101.0 -byte~ plexShowSprite::$2 reg byte a 202.0 -byte~ plexShowSprite::$4 reg byte x 202.0 -byte~ plexShowSprite::$5 reg byte a 202.0 -byte~ plexShowSprite::$8 reg byte a 202.0 -byte~ plexShowSprite::plexFreeAdd1_$0 reg byte a 202.0 -byte~ plexShowSprite::plexFreeAdd1_$1 reg byte x 202.0 -byte~ plexShowSprite::plexFreeAdd1_$2 reg byte a 202.0 -byte plexShowSprite::plexFreeAdd1_ypos -byte plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 151.5 -byte plexShowSprite::plex_sprite_idx2 -byte plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp[1]:14 27.545454545454547 -byte plexShowSprite::xpos_idx -byte plexShowSprite::xpos_idx#0 reg byte a 202.0 -byte plexShowSprite::ypos +char plexShowSprite::$10 // reg byte x 101.0 +char plexShowSprite::$2 // reg byte a 202.0 +char plexShowSprite::$4 // reg byte x 202.0 +char plexShowSprite::$5 // reg byte a 202.0 +char plexShowSprite::$8 // reg byte a 202.0 +char plexShowSprite::plexFreeAdd1_$0 // reg byte a 202.0 +char plexShowSprite::plexFreeAdd1_$1 // reg byte x 202.0 +char plexShowSprite::plexFreeAdd1_$2 // reg byte a 202.0 +char plexShowSprite::plexFreeAdd1_ypos +char plexShowSprite::plexFreeAdd1_ypos#0 // reg byte a 151.5 +char plexShowSprite::plex_sprite_idx2 +char plexShowSprite::plex_sprite_idx2#0 // plex_sprite_idx2 zp[1]:14 27.545454545454547 +char plexShowSprite::xpos_idx +char plexShowSprite::xpos_idx#0 // reg byte a 202.0 +char plexShowSprite::ypos void plexSort() -byte plexSort::m -byte plexSort::m#1 m zp[1]:5 1500001.5 -byte plexSort::m#2 m zp[1]:5 416667.0833333334 -byte plexSort::nxt_idx -byte plexSort::nxt_idx#0 nxt_idx zp[1]:15 300000.30000000005 -byte plexSort::nxt_y -byte plexSort::nxt_y#0 nxt_y zp[1]:16 1500000.375 -byte plexSort::plexFreePrepare1_s -byte plexSort::plexFreePrepare1_s#1 reg byte x 1500001.5 -byte plexSort::plexFreePrepare1_s#2 reg byte x 1500001.5 -byte plexSort::s -byte plexSort::s#1 reg byte x 1.3666668333333332E7 -byte plexSort::s#2 reg byte x 2000002.0 -byte plexSort::s#3 reg byte x 2.05000025E7 -byte plexSort::s#6 reg byte x 2000002.0 -volatile byte plex_free_next loadstore zp[1]:11 332.80645161290323 +char plexSort::m +char plexSort::m#1 // m zp[1]:5 1500001.5 +char plexSort::m#2 // m zp[1]:5 416667.0833333334 +char plexSort::nxt_idx +char plexSort::nxt_idx#0 // nxt_idx zp[1]:15 300000.30000000005 +char plexSort::nxt_y +char plexSort::nxt_y#0 // nxt_y zp[1]:16 1500000.375 +char plexSort::plexFreePrepare1_s +char plexSort::plexFreePrepare1_s#1 // reg byte x 1500001.5 +char plexSort::plexFreePrepare1_s#2 // reg byte x 1500001.5 +char plexSort::s +char plexSort::s#1 // reg byte x 1.3666668333333332E7 +char plexSort::s#2 // reg byte x 2000002.0 +char plexSort::s#3 // reg byte x 2.05000025E7 +char plexSort::s#6 // reg byte x 2000002.0 +__loadstore volatile char plex_free_next // zp[1]:11 332.80645161290323 __interrupt(rom_min_c64) void plex_irq() -byte~ plex_irq::$4 zp[1]:13 11.0 -byte plex_irq::plexFreeNextYpos1_return -byte plex_irq::plexFreeNextYpos1_return#0 reg byte x 4.0 -byte plex_irq::rasterY -volatile byte plex_show_idx loadstore zp[1]:8 309.44117647058823 -volatile byte plex_sprite_idx loadstore zp[1]:9 335.7096774193549 -volatile byte plex_sprite_msb loadstore zp[1]:10 321.4848484848485 +char plex_irq::$4 // zp[1]:13 11.0 +char plex_irq::plexFreeNextYpos1_return +char plex_irq::plexFreeNextYpos1_return#0 // reg byte x 4.0 +char plex_irq::rasterY +__loadstore volatile char plex_show_idx // zp[1]:8 309.44117647058823 +__loadstore volatile char plex_sprite_idx // zp[1]:9 335.7096774193549 +__loadstore volatile char plex_sprite_msb // zp[1]:10 321.4848484848485 reg byte x [ init::sx#2 init::sx#1 ] zp[2]:2 [ init::xp#2 init::xp#1 ] @@ -2729,7 +2730,7 @@ Score: 43652 __start: { // __start::__init1 // char* volatile PLEX_SCREEN_PTR = (char*)0x400+0x3f8 - // [1] PLEX_SCREEN_PTR = (byte*) 1024+$3f8 -- pbuz1=pbuc1 + // [1] PLEX_SCREEN_PTR = (char *) 1024+$3f8 -- pbuz1=pbuc1 lda #<$400+$3f8 sta.z PLEX_SCREEN_PTR lda #>$400+$3f8 @@ -2755,7 +2756,7 @@ __start: { sta.z framedone // [7] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [8] call main + // [8] call main jsr main // __start::@return // [9] return @@ -2776,7 +2777,7 @@ plex_irq: { // plex_irq::@3 __b3: // plexShowSprite() - // [13] call plexShowSprite + // [13] call plexShowSprite jsr plexShowSprite // plex_irq::plexFreeNextYpos1 // return PLEX_FREE_YPOS[plex_free_next]; @@ -2846,12 +2847,12 @@ main: { // asm { sei } sei // init() - // [27] call init + // [27] call init jsr init // [28] phi from main to main::@1 [phi:main->main::@1] // main::@1 // loop() - // [29] call loop + // [29] call loop // [79] phi from main::@1 to loop [phi:main::@1->loop] jsr loop // main::@return @@ -2914,7 +2915,7 @@ plexShowSprite: { // [41] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 << 1 -- vbuxx=vbuaa_rol_1 asl tax - // [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (byte)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx + // [42] SPRITES_XPOS[plexShowSprite::plex_sprite_idx2#0] = (char)PLEX_XPOS[plexShowSprite::$10] -- pbuc1_derefidx_vbuz1=_byte_pwuc2_derefidx_vbuxx ldy.z plex_sprite_idx2 lda PLEX_XPOS,x sta SPRITES_XPOS,y @@ -2986,7 +2987,7 @@ init: { lda #VICII_DEN|VICII_RSEL|3 sta D011 // plexInit(SCREEN) - // [57] call plexInit + // [57] call plexInit // Initialize the multiplexer // [94] phi from init to plexInit [phi:init->plexInit] jsr plexInit @@ -3004,7 +3005,7 @@ init: { // init::@1 __b1: // PLEX_PTR[sx] = (char)(SPRITE/0x40) - // [59] PLEX_PTR[init::sx#2] = (byte)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 + // [59] PLEX_PTR[init::sx#2] = (char)SPRITE/$40 -- pbuc1_derefidx_vbuxx=vbuc2 lda #$ff&SPRITE/$40 sta PLEX_PTR,x // PLEX_XPOS[sx] = xp @@ -3061,7 +3062,7 @@ init: { // enable the interrupt sei // CIA1->INTERRUPT = CIA_INTERRUPT_CLEAR - // [71] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [71] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT // *IRQ_ENABLE = IRQ_RASTER @@ -3151,7 +3152,7 @@ loop: { // [90] *BORDER_COLOR = ++ *BORDER_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDER_COLOR // plexSort() - // [91] call plexSort + // [91] call plexSort // [101] phi from loop::@5 to plexSort [phi:loop::@5->plexSort] jsr plexSort // loop::@6 @@ -3169,6 +3170,7 @@ loop: { } // plexInit // Initialize the multiplexer data structures +// void plexInit(char *screen) plexInit: { // plexInit::plexSetScreen1 // PLEX_SCREEN_PTR = screen+0x3f8 diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym index 7182ea669..0c6aed837 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.sym @@ -1,111 +1,111 @@ -constant byte* const BORDER_COLOR = (byte*) 53280 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte CIA_INTERRUPT_CLEAR = $7f -constant byte* const D011 = (byte*) 53265 -constant const byte GREEN = 5 -constant byte* const IRQ_ENABLE = (byte*) 53274 -constant const byte IRQ_RASTER = 1 -constant byte* const IRQ_STATUS = (byte*) 53273 -constant void()** const KERNEL_IRQ = (void()**) 788 -constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d -constant const byte PLEX_COUNT = $20 -constant byte* PLEX_FREE_YPOS[8] = { fill( 8, 0) } -constant byte* PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -byte* volatile PLEX_SCREEN_PTR loadstore zp[2]:6 33.45454545454545 -constant byte* PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant word* PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } -constant byte* const RASTER = (byte*) 53266 -constant const byte RED = 2 -constant byte* SCREEN = (byte*) 1024 -constant byte* SPRITE[$40] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) +__constant char * const BORDER_COLOR = (char *) 53280 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char CIA_INTERRUPT_CLEAR = $7f +__constant char * const D011 = (char *) 53265 +__constant const char GREEN = 5 +__constant char * const IRQ_ENABLE = (char *) 53274 +__constant const char IRQ_RASTER = 1 +__constant char * const IRQ_STATUS = (char *) 53273 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 +__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d +__constant const char PLEX_COUNT = $20 +__constant char PLEX_FREE_YPOS[8] = { fill( 8, 0) } +__constant char PLEX_PTR[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__loadstore char * volatile PLEX_SCREEN_PTR // zp[2]:6 33.45454545454545 +__constant char PLEX_SORTED_IDX[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant unsigned int PLEX_XPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char PLEX_YPOS[PLEX_COUNT] = { fill( PLEX_COUNT, 0) } +__constant char * const RASTER = (char *) 53266 +__constant const char RED = 2 +__constant char *SCREEN = (char *) 1024 +__constant char SPRITE[$40] = kickasm {{ .var pic = LoadPicture("balloon.png", List().add($000000, $ffffff)) .for (var y=0; y<21; y++) .for (var x=0;x<3; x++) .byte pic.getSinglecolorByte(x,y) }} -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant byte* const VICII_CONTROL1 = (byte*) 53265 -constant const byte VICII_DEN = $10 -constant const byte VICII_RSEL = 8 -constant const byte WHITE = 1 -constant byte* YSIN[$100] = kickasm {{ .fill $100, round(139.5+89.5*sin(toRadians(360*i/256))) +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant char * const VICII_CONTROL1 = (char *) 53265 +__constant const char VICII_DEN = $10 +__constant const char VICII_RSEL = 8 +__constant const char WHITE = 1 +__constant char YSIN[$100] = kickasm {{ .fill $100, round(139.5+89.5*sin(toRadians(360*i/256))) }} void __start() -volatile bool framedone loadstore zp[1]:12 1222.8888888888887 +__loadstore volatile bool framedone // zp[1]:12 1222.8888888888887 void init() -byte~ init::$3 reg byte a 2002.0 -byte init::ss -byte init::ss#1 reg byte x 1501.5 -byte init::ss#2 reg byte x 1501.5 -byte init::sx -byte init::sx#1 reg byte x 1501.5 -byte init::sx#2 reg byte x 800.8 -word init::xp -word init::xp#1 xp zp[2]:2 667.3333333333334 -word init::xp#2 xp zp[2]:2 750.75 +char init::$3 // reg byte a 2002.0 +char init::ss +char init::ss#1 // reg byte x 1501.5 +char init::ss#2 // reg byte x 1501.5 +char init::sx +char init::sx#1 // reg byte x 1501.5 +char init::sx#2 // reg byte x 800.8 +unsigned int init::xp +unsigned int init::xp#1 // xp zp[2]:2 667.3333333333334 +unsigned int init::xp#2 // xp zp[2]:2 750.75 void loop() -byte loop::sin_idx -byte loop::sin_idx#1 sin_idx zp[1]:4 400.4 -byte loop::sin_idx#6 sin_idx zp[1]:4 333.6666666666667 -byte loop::sy -byte loop::sy#1 reg byte y 15001.5 -byte loop::sy#2 reg byte y 10001.0 -byte loop::y_idx -byte loop::y_idx#1 reg byte x 6667.333333333333 -byte loop::y_idx#2 reg byte x 15502.0 -byte loop::y_idx#3 reg byte x 2002.0 +char loop::sin_idx +char loop::sin_idx#1 // sin_idx zp[1]:4 400.4 +char loop::sin_idx#6 // sin_idx zp[1]:4 333.6666666666667 +char loop::sy +char loop::sy#1 // reg byte y 15001.5 +char loop::sy#2 // reg byte y 10001.0 +char loop::y_idx +char loop::y_idx#1 // reg byte x 6667.333333333333 +char loop::y_idx#2 // reg byte x 15502.0 +char loop::y_idx#3 // reg byte x 2002.0 void main() -void plexInit(byte* plexInit::screen) -byte plexInit::i -byte plexInit::i#1 reg byte x 15001.5 -byte plexInit::i#2 reg byte x 20002.0 -byte* plexInit::plexSetScreen1_screen -byte* plexInit::screen +void plexInit(char *screen) +char plexInit::i +char plexInit::i#1 // reg byte x 15001.5 +char plexInit::i#2 // reg byte x 20002.0 +char *plexInit::plexSetScreen1_screen +char *plexInit::screen void plexShowSprite() -byte~ plexShowSprite::$10 reg byte x 101.0 -byte~ plexShowSprite::$2 reg byte a 202.0 -byte~ plexShowSprite::$4 reg byte x 202.0 -byte~ plexShowSprite::$5 reg byte a 202.0 -byte~ plexShowSprite::$8 reg byte a 202.0 -byte~ plexShowSprite::plexFreeAdd1_$0 reg byte a 202.0 -byte~ plexShowSprite::plexFreeAdd1_$1 reg byte x 202.0 -byte~ plexShowSprite::plexFreeAdd1_$2 reg byte a 202.0 -byte plexShowSprite::plexFreeAdd1_ypos -byte plexShowSprite::plexFreeAdd1_ypos#0 reg byte a 151.5 -byte plexShowSprite::plex_sprite_idx2 -byte plexShowSprite::plex_sprite_idx2#0 plex_sprite_idx2 zp[1]:14 27.545454545454547 -byte plexShowSprite::xpos_idx -byte plexShowSprite::xpos_idx#0 reg byte a 202.0 -byte plexShowSprite::ypos +char plexShowSprite::$10 // reg byte x 101.0 +char plexShowSprite::$2 // reg byte a 202.0 +char plexShowSprite::$4 // reg byte x 202.0 +char plexShowSprite::$5 // reg byte a 202.0 +char plexShowSprite::$8 // reg byte a 202.0 +char plexShowSprite::plexFreeAdd1_$0 // reg byte a 202.0 +char plexShowSprite::plexFreeAdd1_$1 // reg byte x 202.0 +char plexShowSprite::plexFreeAdd1_$2 // reg byte a 202.0 +char plexShowSprite::plexFreeAdd1_ypos +char plexShowSprite::plexFreeAdd1_ypos#0 // reg byte a 151.5 +char plexShowSprite::plex_sprite_idx2 +char plexShowSprite::plex_sprite_idx2#0 // plex_sprite_idx2 zp[1]:14 27.545454545454547 +char plexShowSprite::xpos_idx +char plexShowSprite::xpos_idx#0 // reg byte a 202.0 +char plexShowSprite::ypos void plexSort() -byte plexSort::m -byte plexSort::m#1 m zp[1]:5 1500001.5 -byte plexSort::m#2 m zp[1]:5 416667.0833333334 -byte plexSort::nxt_idx -byte plexSort::nxt_idx#0 nxt_idx zp[1]:15 300000.30000000005 -byte plexSort::nxt_y -byte plexSort::nxt_y#0 nxt_y zp[1]:16 1500000.375 -byte plexSort::plexFreePrepare1_s -byte plexSort::plexFreePrepare1_s#1 reg byte x 1500001.5 -byte plexSort::plexFreePrepare1_s#2 reg byte x 1500001.5 -byte plexSort::s -byte plexSort::s#1 reg byte x 1.3666668333333332E7 -byte plexSort::s#2 reg byte x 2000002.0 -byte plexSort::s#3 reg byte x 2.05000025E7 -byte plexSort::s#6 reg byte x 2000002.0 -volatile byte plex_free_next loadstore zp[1]:11 332.80645161290323 +char plexSort::m +char plexSort::m#1 // m zp[1]:5 1500001.5 +char plexSort::m#2 // m zp[1]:5 416667.0833333334 +char plexSort::nxt_idx +char plexSort::nxt_idx#0 // nxt_idx zp[1]:15 300000.30000000005 +char plexSort::nxt_y +char plexSort::nxt_y#0 // nxt_y zp[1]:16 1500000.375 +char plexSort::plexFreePrepare1_s +char plexSort::plexFreePrepare1_s#1 // reg byte x 1500001.5 +char plexSort::plexFreePrepare1_s#2 // reg byte x 1500001.5 +char plexSort::s +char plexSort::s#1 // reg byte x 1.3666668333333332E7 +char plexSort::s#2 // reg byte x 2000002.0 +char plexSort::s#3 // reg byte x 2.05000025E7 +char plexSort::s#6 // reg byte x 2000002.0 +__loadstore volatile char plex_free_next // zp[1]:11 332.80645161290323 __interrupt(rom_min_c64) void plex_irq() -byte~ plex_irq::$4 zp[1]:13 11.0 -byte plex_irq::plexFreeNextYpos1_return -byte plex_irq::plexFreeNextYpos1_return#0 reg byte x 4.0 -byte plex_irq::rasterY -volatile byte plex_show_idx loadstore zp[1]:8 309.44117647058823 -volatile byte plex_sprite_idx loadstore zp[1]:9 335.7096774193549 -volatile byte plex_sprite_msb loadstore zp[1]:10 321.4848484848485 +char plex_irq::$4 // zp[1]:13 11.0 +char plex_irq::plexFreeNextYpos1_return +char plex_irq::plexFreeNextYpos1_return#0 // reg byte x 4.0 +char plex_irq::rasterY +__loadstore volatile char plex_show_idx // zp[1]:8 309.44117647058823 +__loadstore volatile char plex_sprite_idx // zp[1]:9 335.7096774193549 +__loadstore volatile char plex_sprite_msb // zp[1]:10 321.4848484848485 reg byte x [ init::sx#2 init::sx#1 ] zp[2]:2 [ init::xp#2 init::xp#1 ] diff --git a/src/test/ref/multiply-1.log b/src/test/ref/multiply-1.log index c5e06cd6b..59163878c 100644 --- a/src/test/ref/multiply-1.log +++ b/src/test/ref/multiply-1.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,25 +25,25 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte main::c1 = 4 -byte main::c2 -byte main::c2#0 -byte main::c2#1 -byte main::c3 -byte main::c3#0 +__constant char main::c1 = 4 +char main::c2 +char main::c2#0 +char main::c2#1 +char main::c3 +char main::c3#0 Adding number conversion cast (unumber) 2 in main::c2#0 = main::c1 * 2 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::c3#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::c2#0 = main::c1 * 2 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -77,7 +77,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::c1*2+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -97,8 +97,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::c2 -byte main::c3 +char main::c2 +char main::c3 Initial phi equivalence classes Complete equivalence classes @@ -150,12 +150,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte main::c1 = 4 -byte main::c2 -byte main::c3 -constant byte main::c3#0 c3 = main::c1*main::c1*2+1 +__constant char main::c1 = 4 +char main::c2 +char main::c3 +__constant char main::c3#0 = main::c1*main::c1*2+1 // c3 diff --git a/src/test/ref/multiply-1.sym b/src/test/ref/multiply-1.sym index 64a63330f..b46fed5b3 100644 --- a/src/test/ref/multiply-1.sym +++ b/src/test/ref/multiply-1.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte main::c1 = 4 -byte main::c2 -byte main::c3 -constant byte main::c3#0 c3 = main::c1*main::c1*2+1 +__constant char main::c1 = 4 +char main::c2 +char main::c3 +__constant char main::c3#0 = main::c1*main::c1*2+1 // c3 diff --git a/src/test/ref/multiply-16bit-const.asm b/src/test/ref/multiply-16bit-const.asm index 8b6860b2c..2f48eaf55 100644 --- a/src/test/ref/multiply-16bit-const.asm +++ b/src/test/ref/multiply-16bit-const.asm @@ -191,7 +191,7 @@ print_cls: { rts } // Print a unsigned long as DECIMAL -// print_ulong_decimal(dword zp($b) w) +// void print_ulong_decimal(__zp($b) unsigned long w) print_ulong_decimal: { .label w = $b // ultoa(w, decimal_digits_long, DECIMAL) @@ -230,6 +230,7 @@ print_ln: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -267,7 +268,7 @@ memset: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// ultoa(dword zp($b) value, byte* zp($f) buffer) +// void ultoa(__zp($b) unsigned long value, __zp($f) char *buffer, char radix) ultoa: { .const max_digits = $a .label value = $b @@ -354,7 +355,7 @@ ultoa: { jmp __b4 } // Print a zero-terminated string -// print_str(byte* zp($f) str) +// void print_str(__zp($f) char *str) print_str: { .label str = $f lda.z print_char_cursor_1 @@ -393,7 +394,7 @@ print_str: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// ultoa_append(byte* zp($f) buffer, dword zp($b) value, dword zp($13) sub) +// __zp($b) unsigned long ultoa_append(__zp($f) char *buffer, __zp($b) unsigned long value, __zp($13) unsigned long sub) ultoa_append: { .label buffer = $f .label value = $b @@ -444,7 +445,7 @@ ultoa_append: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/multiply-16bit-const.cfg b/src/test/ref/multiply-16bit-const.cfg index 7e921745d..0ed94db16 100644 --- a/src/test/ref/multiply-16bit-const.cfg +++ b/src/test/ref/multiply-16bit-const.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@4 [2] print_char_cursor#13 = phi( main/print_screen#0, main::@4/print_line_cursor#0 ) @@ -22,11 +22,11 @@ main::@2: scope:[main] from main::@1 [10] main::$10 = main::$9 + main::i#2 [11] main::$11 = main::$10 << 1 [12] print_ulong_decimal::w#0 = main::$11 + main::i#2 - [13] call print_ulong_decimal + [13] call print_ulong_decimal to:main::@3 main::@3: scope:[main] from main::@2 [14] phi() - [15] call print_ln + [15] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [16] main::i#1 = main::i#2 + $14d @@ -36,20 +36,20 @@ main::@4: scope:[main] from main::@3 void print_cls() print_cls: scope:[print_cls] from main [18] phi() - [19] call memset + [19] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [20] return to:@return -void print_ulong_decimal(dword print_ulong_decimal::w) +void print_ulong_decimal(unsigned long w) print_ulong_decimal: scope:[print_ulong_decimal] from main::@2 [21] ultoa::value#0 = print_ulong_decimal::w#0 - [22] call ultoa + [22] call ultoa to:print_ulong_decimal::@1 print_ulong_decimal::@1: scope:[print_ulong_decimal] from print_ulong_decimal [23] phi() - [24] call print_str + [24] call print_str to:print_ulong_decimal::@return print_ulong_decimal::@return: scope:[print_ulong_decimal] from print_ulong_decimal::@1 [25] return @@ -71,12 +71,12 @@ print_ln::@2: scope:[print_ln] from print_ln::@1 [31] print_line_cursor#26 = print_line_cursor#0 to:print_ln::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [32] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [33] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [33] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [34] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -87,7 +87,7 @@ memset::@2: scope:[memset] from memset::@1 [37] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void ultoa(dword ultoa::value , byte* ultoa::buffer , byte ultoa::radix) +void ultoa(unsigned long value , char *buffer , char radix) ultoa: scope:[ultoa] from print_ulong_decimal [38] phi() to:ultoa::@1 @@ -99,7 +99,7 @@ ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 [40] if(ultoa::digit#2= ultoa::digit_value#0 ultoa::$7 = ultoa::started#2 || ultoa::$6 @@ -263,7 +263,7 @@ ultoa::@11: scope:[ultoa] from ultoa::@10 ultoa::@12: scope:[ultoa] from ultoa::@10 ultoa::buffer#7 = phi( ultoa::@10/ultoa::buffer#11 ) ultoa::value#3 = phi( ultoa::@10/ultoa::value#5 ) - ultoa::$11 = (byte)ultoa::value#3 + ultoa::$11 = (char)ultoa::value#3 *ultoa::buffer#7 = DIGITS[ultoa::$11] ultoa::buffer#4 = ++ ultoa::buffer#7 *ultoa::buffer#4 = 0 @@ -287,7 +287,7 @@ ultoa::@14: scope:[ultoa] from ultoa::@11 ultoa_append::buffer#0 = ultoa::buffer#8 ultoa_append::value#0 = ultoa::value#4 ultoa_append::sub#0 = ultoa::digit_value#1 - call ultoa_append + call ultoa_append ultoa_append::return#0 = ultoa_append::return#2 to:ultoa::@15 ultoa::@15: scope:[ultoa] from ultoa::@14 @@ -302,7 +302,7 @@ ultoa::@15: scope:[ultoa] from ultoa::@14 ultoa::started#1 = 1 to:ultoa::@13 -dword ultoa_append(byte* ultoa_append::buffer , dword ultoa_append::value , dword ultoa_append::sub) +unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub) ultoa_append: scope:[ultoa_append] from ultoa::@14 ultoa_append::buffer#3 = phi( ultoa::@14/ultoa_append::buffer#0 ) ultoa_append::sub#3 = phi( ultoa::@14/ultoa_append::sub#0 ) @@ -343,7 +343,7 @@ main: scope:[main] from __start::@1 print_char_cursor#36 = phi( __start::@1/print_char_cursor#39 ) print_line_cursor#20 = phi( __start::@1/print_line_cursor#23 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@3 main::@3: scope:[main] from main print_char_cursor#26 = phi( main/print_char_cursor#9 ) @@ -365,14 +365,14 @@ main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::$2 = main::i#3 * $22b print_ulong_decimal::w#0 = main::$2 - call print_ulong_decimal + call print_ulong_decimal to:main::@4 main::@4: scope:[main] from main::@2 main::i#5 = phi( main::@2/main::i#3 ) print_line_cursor#21 = phi( main::@2/print_line_cursor#24 ) print_char_cursor#27 = phi( main::@2/print_char_cursor#5 ) print_char_cursor#11 = print_char_cursor#27 - call print_ln + call print_ln to:main::@5 main::@5: scope:[main] from main::@4 main::i#4 = phi( main::@4/main::i#5 ) @@ -394,7 +394,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#14 = print_line_cursor#7 to:__start::@1 @@ -402,7 +402,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#39 = phi( __start::__init1/print_char_cursor#14 ) print_line_cursor#23 = phi( __start::__init1/print_line_cursor#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -422,299 +422,299 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte DECIMAL = $a -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant byte OCTAL = 8 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant dword* RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } -constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a } -constant dword* RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 } -constant dword* RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 } -constant byte SIZEOF_DWORD = 4 +__constant char BINARY = 2 +__constant char DECIMAL = $a +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant char OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned long RADIX_BINARY_VALUES_LONG[] = { $80000000, $40000000, $20000000, $10000000, $8000000, $4000000, $2000000, $1000000, $800000, $400000, $200000, $100000, $80000, $40000, $20000, $10000, $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } +__constant unsigned long RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a } +__constant unsigned long RADIX_HEXADECIMAL_VALUES_LONG[] = { $10000000, $1000000, $100000, $10000, $1000, $100, $10 } +__constant unsigned long RADIX_OCTAL_VALUES_LONG[] = { $40000000, $8000000, $1000000, $200000, $40000, $8000, $1000, $200, $40, 8 } +__constant char SIZEOF_UNSIGNED_LONG = 4 void __start() -constant byte* decimal_digits_long[$b] = { fill( $b, 0) } +__constant char decimal_digits_long[$b] = { fill( $b, 0) } void main() -bool~ main::$1 -number~ main::$2 -dword main::i -dword main::i#0 -dword main::i#1 -dword main::i#2 -dword main::i#3 -dword main::i#4 -dword main::i#5 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +bool main::$1 +number main::$2 +unsigned long main::i +unsigned long main::i#0 +unsigned long main::i#1 +unsigned long main::i#2 +unsigned long main::i#3 +unsigned long main::i#4 +unsigned long main::i#5 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_ulong_decimal(dword print_ulong_decimal::w) -dword print_ulong_decimal::w -dword print_ulong_decimal::w#0 -dword print_ulong_decimal::w#1 -void ultoa(dword ultoa::value , byte* ultoa::buffer , byte ultoa::radix) -bool~ ultoa::$0 -bool~ ultoa::$1 -byte~ ultoa::$10 -byte~ ultoa::$11 -bool~ ultoa::$2 -bool~ ultoa::$3 -number~ ultoa::$4 -bool~ ultoa::$5 -bool~ ultoa::$6 -bool~ ultoa::$7 -bool~ ultoa::$8 -dword~ ultoa::$9 -byte* ultoa::buffer -byte* ultoa::buffer#0 -byte* ultoa::buffer#1 -byte* ultoa::buffer#10 -byte* ultoa::buffer#11 -byte* ultoa::buffer#12 -byte* ultoa::buffer#13 -byte* ultoa::buffer#14 -byte* ultoa::buffer#15 -byte* ultoa::buffer#16 -byte* ultoa::buffer#17 -byte* ultoa::buffer#18 -byte* ultoa::buffer#19 -byte* ultoa::buffer#2 -byte* ultoa::buffer#20 -byte* ultoa::buffer#21 -byte* ultoa::buffer#3 -byte* ultoa::buffer#4 -byte* ultoa::buffer#5 -byte* ultoa::buffer#6 -byte* ultoa::buffer#7 -byte* ultoa::buffer#8 -byte* ultoa::buffer#9 -byte ultoa::digit -byte ultoa::digit#0 -byte ultoa::digit#1 -byte ultoa::digit#2 -byte ultoa::digit#3 -byte ultoa::digit#4 -byte ultoa::digit#5 -byte ultoa::digit#6 -dword ultoa::digit_value -dword ultoa::digit_value#0 -dword ultoa::digit_value#1 -dword* ultoa::digit_values -dword* ultoa::digit_values#0 -dword* ultoa::digit_values#1 -dword* ultoa::digit_values#10 -dword* ultoa::digit_values#2 -dword* ultoa::digit_values#3 -dword* ultoa::digit_values#4 -dword* ultoa::digit_values#5 -dword* ultoa::digit_values#6 -dword* ultoa::digit_values#7 -dword* ultoa::digit_values#8 -dword* ultoa::digit_values#9 -byte ultoa::max_digits -byte ultoa::max_digits#0 -byte ultoa::max_digits#1 -byte ultoa::max_digits#10 -byte ultoa::max_digits#2 -byte ultoa::max_digits#3 -byte ultoa::max_digits#4 -byte ultoa::max_digits#5 -byte ultoa::max_digits#6 -byte ultoa::max_digits#7 -byte ultoa::max_digits#8 -byte ultoa::max_digits#9 -byte ultoa::radix -byte ultoa::radix#0 -byte ultoa::radix#1 -byte ultoa::radix#2 -byte ultoa::radix#3 -byte ultoa::radix#4 -byte ultoa::started -byte ultoa::started#0 -byte ultoa::started#1 -byte ultoa::started#2 -byte ultoa::started#3 -byte ultoa::started#4 -dword ultoa::value -dword ultoa::value#0 -dword ultoa::value#1 -dword ultoa::value#10 -dword ultoa::value#11 -dword ultoa::value#12 -dword ultoa::value#13 -dword ultoa::value#14 -dword ultoa::value#15 -dword ultoa::value#2 -dword ultoa::value#3 -dword ultoa::value#4 -dword ultoa::value#5 -dword ultoa::value#6 -dword ultoa::value#7 -dword ultoa::value#8 -dword ultoa::value#9 -dword ultoa_append(byte* ultoa_append::buffer , dword ultoa_append::value , dword ultoa_append::sub) -bool~ ultoa_append::$0 -byte* ultoa_append::buffer -byte* ultoa_append::buffer#0 -byte* ultoa_append::buffer#1 -byte* ultoa_append::buffer#2 -byte* ultoa_append::buffer#3 -byte* ultoa_append::buffer#4 -byte ultoa_append::digit -byte ultoa_append::digit#0 -byte ultoa_append::digit#1 -byte ultoa_append::digit#2 -byte ultoa_append::digit#3 -byte ultoa_append::digit#4 -dword ultoa_append::return -dword ultoa_append::return#0 -dword ultoa_append::return#1 -dword ultoa_append::return#2 -dword ultoa_append::return#3 -dword ultoa_append::return#4 -dword ultoa_append::sub -dword ultoa_append::sub#0 -dword ultoa_append::sub#1 -dword ultoa_append::sub#2 -dword ultoa_append::sub#3 -dword ultoa_append::value -dword ultoa_append::value#0 -dword ultoa_append::value#1 -dword ultoa_append::value#2 -dword ultoa_append::value#3 -dword ultoa_append::value#4 -dword ultoa_append::value#5 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_ulong_decimal(unsigned long w) +unsigned long print_ulong_decimal::w +unsigned long print_ulong_decimal::w#0 +unsigned long print_ulong_decimal::w#1 +void ultoa(unsigned long value , char *buffer , char radix) +bool ultoa::$0 +bool ultoa::$1 +char ultoa::$10 +char ultoa::$11 +bool ultoa::$2 +bool ultoa::$3 +number ultoa::$4 +bool ultoa::$5 +bool ultoa::$6 +bool ultoa::$7 +bool ultoa::$8 +unsigned long ultoa::$9 +char *ultoa::buffer +char *ultoa::buffer#0 +char *ultoa::buffer#1 +char *ultoa::buffer#10 +char *ultoa::buffer#11 +char *ultoa::buffer#12 +char *ultoa::buffer#13 +char *ultoa::buffer#14 +char *ultoa::buffer#15 +char *ultoa::buffer#16 +char *ultoa::buffer#17 +char *ultoa::buffer#18 +char *ultoa::buffer#19 +char *ultoa::buffer#2 +char *ultoa::buffer#20 +char *ultoa::buffer#21 +char *ultoa::buffer#3 +char *ultoa::buffer#4 +char *ultoa::buffer#5 +char *ultoa::buffer#6 +char *ultoa::buffer#7 +char *ultoa::buffer#8 +char *ultoa::buffer#9 +char ultoa::digit +char ultoa::digit#0 +char ultoa::digit#1 +char ultoa::digit#2 +char ultoa::digit#3 +char ultoa::digit#4 +char ultoa::digit#5 +char ultoa::digit#6 +unsigned long ultoa::digit_value +unsigned long ultoa::digit_value#0 +unsigned long ultoa::digit_value#1 +unsigned long *ultoa::digit_values +unsigned long *ultoa::digit_values#0 +unsigned long *ultoa::digit_values#1 +unsigned long *ultoa::digit_values#10 +unsigned long *ultoa::digit_values#2 +unsigned long *ultoa::digit_values#3 +unsigned long *ultoa::digit_values#4 +unsigned long *ultoa::digit_values#5 +unsigned long *ultoa::digit_values#6 +unsigned long *ultoa::digit_values#7 +unsigned long *ultoa::digit_values#8 +unsigned long *ultoa::digit_values#9 +char ultoa::max_digits +char ultoa::max_digits#0 +char ultoa::max_digits#1 +char ultoa::max_digits#10 +char ultoa::max_digits#2 +char ultoa::max_digits#3 +char ultoa::max_digits#4 +char ultoa::max_digits#5 +char ultoa::max_digits#6 +char ultoa::max_digits#7 +char ultoa::max_digits#8 +char ultoa::max_digits#9 +char ultoa::radix +char ultoa::radix#0 +char ultoa::radix#1 +char ultoa::radix#2 +char ultoa::radix#3 +char ultoa::radix#4 +char ultoa::started +char ultoa::started#0 +char ultoa::started#1 +char ultoa::started#2 +char ultoa::started#3 +char ultoa::started#4 +unsigned long ultoa::value +unsigned long ultoa::value#0 +unsigned long ultoa::value#1 +unsigned long ultoa::value#10 +unsigned long ultoa::value#11 +unsigned long ultoa::value#12 +unsigned long ultoa::value#13 +unsigned long ultoa::value#14 +unsigned long ultoa::value#15 +unsigned long ultoa::value#2 +unsigned long ultoa::value#3 +unsigned long ultoa::value#4 +unsigned long ultoa::value#5 +unsigned long ultoa::value#6 +unsigned long ultoa::value#7 +unsigned long ultoa::value#8 +unsigned long ultoa::value#9 +unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub) +bool ultoa_append::$0 +char *ultoa_append::buffer +char *ultoa_append::buffer#0 +char *ultoa_append::buffer#1 +char *ultoa_append::buffer#2 +char *ultoa_append::buffer#3 +char *ultoa_append::buffer#4 +char ultoa_append::digit +char ultoa_append::digit#0 +char ultoa_append::digit#1 +char ultoa_append::digit#2 +char ultoa_append::digit#3 +char ultoa_append::digit#4 +unsigned long ultoa_append::return +unsigned long ultoa_append::return#0 +unsigned long ultoa_append::return#1 +unsigned long ultoa_append::return#2 +unsigned long ultoa_append::return#3 +unsigned long ultoa_append::return#4 +unsigned long ultoa_append::sub +unsigned long ultoa_append::sub#0 +unsigned long ultoa_append::sub#1 +unsigned long ultoa_append::sub#2 +unsigned long ultoa_append::sub#3 +unsigned long ultoa_append::value +unsigned long ultoa_append::value#0 +unsigned long ultoa_append::value#1 +unsigned long ultoa_append::value#2 +unsigned long ultoa_append::value#3 +unsigned long ultoa_append::value#4 +unsigned long ultoa_append::value#5 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 @@ -735,7 +735,7 @@ Adding number conversion cast (unumber) main::$2 in main::$2 = main::i#3 * (unum Adding number conversion cast (unumber) $14d in main::i#1 = main::i#4 + $14d Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast ultoa::max_digits#1 = (unumber)$a Inlining cast ultoa::max_digits#2 = (unumber)8 Inlining cast ultoa::max_digits#3 = (unumber)$b @@ -759,26 +759,26 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $d02 Simplifying constant integer cast $22b Simplifying constant integer cast $14d -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $d02 -Finalized unsigned number type (word) $22b -Finalized unsigned number type (word) $14d +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $d02 +Finalized unsigned number type (unsigned int) $22b +Finalized unsigned number type (unsigned int) $14d Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in ultoa::$4 = ultoa::max_digits#5 - 1 -Inferred type updated to dword in main::$2 = main::i#3 * $22b +Inferred type updated to char in ultoa::$4 = ultoa::max_digits#5 - 1 +Inferred type updated to unsigned long in main::$2 = main::i#3 * $22b Inversing boolean not [59] memset::$1 = memset::num#1 <= 0 from [58] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#2 = print_str::str#3 print_str::str#4 @@ -895,7 +895,7 @@ Constant print_str::str#1 = decimal_digits_long Constant memset::c#0 = ' ' Constant memset::num#0 = $3e8 Constant ultoa::max_digits#0 = 0 -Constant ultoa::digit_values#0 = (dword*) 0 +Constant ultoa::digit_values#0 = (unsigned long *) 0 Constant ultoa::max_digits#1 = $a Constant ultoa::digit_values#1 = RADIX_DECIMAL_VALUES_LONG Constant ultoa::max_digits#2 = 8 @@ -909,13 +909,13 @@ Constant ultoa::digit#0 = 0 Constant ultoa::started#1 = 1 Constant ultoa_append::digit#0 = 0 Constant main::i#0 = 0 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [37] if(memset::num#0<=0) goto memset::@1 if() condition always true - replacing block destination [52] if(ultoa::radix#0==DECIMAL) goto ultoa::@1 @@ -970,7 +970,7 @@ Adding number conversion cast (unumber) 0 in [33] ultoa::$12 = 0 != ultoa::start Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Identical Phi Values ultoa::max_digits#7 ultoa::max_digits#1 Identical Phi Values ultoa::digit_values#8 ultoa::digit_values#1 @@ -984,7 +984,7 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Constant ultoa::$4 = ultoa::max_digits#1-1 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [27] ultoa::$10 = ultoa::digit#2 * SIZEOF_DWORD +Rewriting multiplication to use shift [27] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG Rewriting multiplication to use shift and addition[52] print_ulong_decimal::w#0 = main::i#2 * $22b Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print_str::str#1 @@ -995,11 +995,11 @@ Inlining constant with var siblings ultoa::digit#0 Inlining constant with var siblings ultoa::started#1 Inlining constant with var siblings ultoa_append::digit#0 Inlining constant with var siblings main::i#0 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined ultoa::started#0 = 0 Constant inlined ultoa::digit#0 = 0 Constant inlined main::i#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined ultoa_append::digit#0 = 0 Constant inlined print_str::str#1 = decimal_digits_long Constant inlined ultoa::digit_values#1 = RADIX_DECIMAL_VALUES_LONG @@ -1009,14 +1009,14 @@ Constant inlined ultoa::buffer#0 = decimal_digits_long Successful SSA optimization Pass2ConstantInlining Alias print_ulong_decimal::w#0 = main::$12 Successful SSA optimization Pass2AliasElimination -Eliminating unused constant SIZEOF_DWORD +Eliminating unused constant SIZEOF_UNSIGNED_LONG Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting ultoa::@17(between ultoa::@16 and ultoa::@13) @@ -1099,7 +1099,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@4 [2] print_char_cursor#13 = phi( main/print_screen#0, main::@4/print_line_cursor#0 ) @@ -1119,11 +1119,11 @@ main::@2: scope:[main] from main::@1 [10] main::$10 = main::$9 + main::i#2 [11] main::$11 = main::$10 << 1 [12] print_ulong_decimal::w#0 = main::$11 + main::i#2 - [13] call print_ulong_decimal + [13] call print_ulong_decimal to:main::@3 main::@3: scope:[main] from main::@2 [14] phi() - [15] call print_ln + [15] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [16] main::i#1 = main::i#2 + $14d @@ -1133,20 +1133,20 @@ main::@4: scope:[main] from main::@3 void print_cls() print_cls: scope:[print_cls] from main [18] phi() - [19] call memset + [19] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [20] return to:@return -void print_ulong_decimal(dword print_ulong_decimal::w) +void print_ulong_decimal(unsigned long w) print_ulong_decimal: scope:[print_ulong_decimal] from main::@2 [21] ultoa::value#0 = print_ulong_decimal::w#0 - [22] call ultoa + [22] call ultoa to:print_ulong_decimal::@1 print_ulong_decimal::@1: scope:[print_ulong_decimal] from print_ulong_decimal [23] phi() - [24] call print_str + [24] call print_str to:print_ulong_decimal::@return print_ulong_decimal::@return: scope:[print_ulong_decimal] from print_ulong_decimal::@1 [25] return @@ -1168,12 +1168,12 @@ print_ln::@2: scope:[print_ln] from print_ln::@1 [31] print_line_cursor#26 = print_line_cursor#0 to:print_ln::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [32] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [33] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [33] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [34] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1184,7 +1184,7 @@ memset::@2: scope:[memset] from memset::@1 [37] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void ultoa(dword ultoa::value , byte* ultoa::buffer , byte ultoa::radix) +void ultoa(unsigned long value , char *buffer , char radix) ultoa: scope:[ultoa] from print_ulong_decimal [38] phi() to:ultoa::@1 @@ -1196,7 +1196,7 @@ ultoa::@1: scope:[ultoa] from ultoa ultoa::@4 [40] if(ultoa::digit#2print_cls] print_cls_from_main: jsr print_cls @@ -1793,14 +1793,14 @@ main: { lda.z print_ulong_decimal.w+3 adc.z i+3 sta.z print_ulong_decimal.w+3 - // [13] call print_ulong_decimal + // [13] call print_ulong_decimal jsr print_ulong_decimal // [14] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [15] call print_ln + // [15] call print_ln // [26] phi from main::@3 to print_ln [phi:main::@3->print_ln] print_ln_from___b3: jsr print_ln @@ -1836,7 +1836,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [19] call memset + // [19] call memset // [32] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1848,11 +1848,11 @@ print_cls: { } // print_ulong_decimal // Print a unsigned long as DECIMAL -// print_ulong_decimal(dword zp($b) w) +// void print_ulong_decimal(__zp($b) unsigned long w) print_ulong_decimal: { .label w = $b // [21] ultoa::value#0 = print_ulong_decimal::w#0 - // [22] call ultoa + // [22] call ultoa // [38] phi from print_ulong_decimal to ultoa [phi:print_ulong_decimal->ultoa] ultoa_from_print_ulong_decimal: jsr ultoa @@ -1861,7 +1861,7 @@ print_ulong_decimal: { jmp __b1 // print_ulong_decimal::@1 __b1: - // [24] call print_str + // [24] call print_str jsr print_str jmp __breturn // print_ulong_decimal::@return @@ -1912,6 +1912,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1920,7 +1921,7 @@ memset: { .label dst = 8 // [33] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [33] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [33] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1962,7 +1963,7 @@ memset: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// ultoa(dword zp($b) value, byte* zp($f) buffer) +// void ultoa(__zp($b) unsigned long value, __zp($f) char *buffer, char radix) ultoa: { .const max_digits = $a .label value = $b @@ -1992,7 +1993,7 @@ ultoa: { jmp __b3 // ultoa::@3 __b3: - // [41] ultoa::$11 = (byte)ultoa::value#2 -- vbuaa=_byte_vduz1 + // [41] ultoa::$11 = (char)ultoa::value#2 -- vbuaa=_byte_vduz1 lda.z value // [42] *ultoa::buffer#11 = DIGITS[ultoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay @@ -2074,7 +2075,7 @@ ultoa: { // [52] ultoa_append::buffer#0 = ultoa::buffer#11 // [53] ultoa_append::value#0 = ultoa::value#2 // [54] ultoa_append::sub#0 = ultoa::digit_value#0 - // [55] call ultoa_append + // [55] call ultoa_append // [66] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] ultoa_append_from___b5: jsr ultoa_append @@ -2098,7 +2099,7 @@ ultoa: { } // print_str // Print a zero-terminated string -// print_str(byte* zp($f) str) +// void print_str(__zp($f) char *str) print_str: { .label str = $f // [59] print_char_cursor#42 = print_char_cursor#13 -- pbuz1=pbuz2 @@ -2132,7 +2133,7 @@ print_str: { // [63] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [64] call print_char + // [64] call print_char jsr print_char jmp __b3 // print_str::@3 @@ -2157,7 +2158,7 @@ print_str: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// ultoa_append(byte* zp($f) buffer, dword zp($b) value, dword zp($13) sub) +// __zp($b) unsigned long ultoa_append(__zp($f) char *buffer, __zp($b) unsigned long value, __zp($13) unsigned long sub) ultoa_append: { .label buffer = $f .label value = $b @@ -2226,7 +2227,7 @@ ultoa_append: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [73] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -2325,101 +2326,101 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a } -constant byte* decimal_digits_long[$b] = { fill( $b, 0) } +__constant char DIGITS[] = "0123456789abcdef"z +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned long RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a } +__constant char decimal_digits_long[$b] = { fill( $b, 0) } void main() -dword~ main::$10 zp[4]:11 22.0 -dword~ main::$11 zp[4]:11 22.0 -dword~ main::$5 zp[4]:11 22.0 -dword~ main::$6 zp[4]:11 22.0 -dword~ main::$7 zp[4]:11 22.0 -dword~ main::$8 zp[4]:11 22.0 -dword~ main::$9 zp[4]:11 22.0 -dword main::i -dword main::i#1 i zp[4]:2 11.0 -dword main::i#2 i zp[4]:2 6.769230769230768 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2002.0 -byte* memset::dst#2 dst zp[2]:8 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 1100002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:17 150786.07142857142 -byte* print_char_cursor#13 print_char_cursor_1 zp[2]:8 77.84615384615384 -byte* print_char_cursor#24 print_char_cursor zp[2]:17 275000.5 -byte* print_char_cursor#42 print_char_cursor zp[2]:17 2002.0 +unsigned long main::$10 // zp[4]:11 22.0 +unsigned long main::$11 // zp[4]:11 22.0 +unsigned long main::$5 // zp[4]:11 22.0 +unsigned long main::$6 // zp[4]:11 22.0 +unsigned long main::$7 // zp[4]:11 22.0 +unsigned long main::$8 // zp[4]:11 22.0 +unsigned long main::$9 // zp[4]:11 22.0 +unsigned long main::i +unsigned long main::i#1 // i zp[4]:2 11.0 +unsigned long main::i#2 // i zp[4]:2 6.769230769230768 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2002.0 +char *memset::dst#2 // dst zp[2]:8 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 1100002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:17 150786.07142857142 +char *print_char_cursor#13 // print_char_cursor_1 zp[2]:8 77.84615384615384 +char *print_char_cursor#24 // print_char_cursor zp[2]:17 275000.5 +char *print_char_cursor#42 // print_char_cursor zp[2]:17 2002.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:8 5004.166666666666 -byte* print_line_cursor#10 print_line_cursor_1 zp[2]:6 20103.0 -byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 8.615384615384615 -byte* print_line_cursor#26 print_line_cursor_1 zp[2]:6 20002.0 -byte* print_line_cursor#27 print_line_cursor_1 zp[2]:6 22.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:8 5004.166666666666 +char *print_line_cursor#10 // print_line_cursor_1 zp[2]:6 20103.0 +char *print_line_cursor#16 // print_line_cursor_1 zp[2]:6 8.615384615384615 +char *print_line_cursor#26 // print_line_cursor_1 zp[2]:6 20002.0 +char *print_line_cursor#27 // print_line_cursor_1 zp[2]:6 22.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:15 200002.0 -byte* print_str::str#2 str zp[2]:15 100001.0 -void print_ulong_decimal(dword print_ulong_decimal::w) -dword print_ulong_decimal::w -dword print_ulong_decimal::w#0 w zp[4]:11 112.0 -void ultoa(dword ultoa::value , byte* ultoa::buffer , byte ultoa::radix) -byte~ ultoa::$10 reg byte a 200002.0 -byte~ ultoa::$11 reg byte a 2002.0 -byte* ultoa::buffer -byte* ultoa::buffer#11 buffer zp[2]:15 28714.714285714286 -byte* ultoa::buffer#14 buffer zp[2]:15 150001.5 -byte* ultoa::buffer#4 buffer zp[2]:15 2002.0 -byte* ultoa::buffer#5 buffer zp[2]:15 200002.0 -byte ultoa::digit -byte ultoa::digit#1 digit zp[1]:10 200002.0 -byte ultoa::digit#2 digit zp[1]:10 28571.714285714286 -dword ultoa::digit_value -dword ultoa::digit_value#0 digit_value zp[4]:19 60000.600000000006 -dword* ultoa::digit_values -byte ultoa::max_digits -constant byte ultoa::max_digits#1 max_digits = $a -byte ultoa::radix -byte ultoa::started -byte ultoa::started#2 reg byte x 50000.5 -byte ultoa::started#4 reg byte x 100001.0 -dword ultoa::value -dword ultoa::value#0 value zp[4]:11 551.0 -dword ultoa::value#1 value zp[4]:11 100001.0 -dword ultoa::value#2 value zp[4]:11 57286.42857142857 -dword ultoa::value#6 value zp[4]:11 150001.5 -dword ultoa_append(byte* ultoa_append::buffer , dword ultoa_append::value , dword ultoa_append::sub) -byte* ultoa_append::buffer -byte* ultoa_append::buffer#0 buffer zp[2]:15 137500.25 -byte ultoa_append::digit -byte ultoa_append::digit#1 reg byte x 1.000000001E9 -byte ultoa_append::digit#2 reg byte x 1.0005000015E9 -dword ultoa_append::return -dword ultoa_append::return#0 return zp[4]:11 200002.0 -dword ultoa_append::sub -dword ultoa_append::sub#0 sub zp[4]:19 3.333500005E8 -dword ultoa_append::value -dword ultoa_append::value#0 value zp[4]:11 366667.3333333334 -dword ultoa_append::value#1 value zp[4]:11 2.000000002E9 -dword ultoa_append::value#2 value zp[4]:11 5.0018333416666675E8 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:15 200002.0 +char *print_str::str#2 // str zp[2]:15 100001.0 +void print_ulong_decimal(unsigned long w) +unsigned long print_ulong_decimal::w +unsigned long print_ulong_decimal::w#0 // w zp[4]:11 112.0 +void ultoa(unsigned long value , char *buffer , char radix) +char ultoa::$10 // reg byte a 200002.0 +char ultoa::$11 // reg byte a 2002.0 +char *ultoa::buffer +char *ultoa::buffer#11 // buffer zp[2]:15 28714.714285714286 +char *ultoa::buffer#14 // buffer zp[2]:15 150001.5 +char *ultoa::buffer#4 // buffer zp[2]:15 2002.0 +char *ultoa::buffer#5 // buffer zp[2]:15 200002.0 +char ultoa::digit +char ultoa::digit#1 // digit zp[1]:10 200002.0 +char ultoa::digit#2 // digit zp[1]:10 28571.714285714286 +unsigned long ultoa::digit_value +unsigned long ultoa::digit_value#0 // digit_value zp[4]:19 60000.600000000006 +unsigned long *ultoa::digit_values +char ultoa::max_digits +__constant char ultoa::max_digits#1 = $a // max_digits +char ultoa::radix +char ultoa::started +char ultoa::started#2 // reg byte x 50000.5 +char ultoa::started#4 // reg byte x 100001.0 +unsigned long ultoa::value +unsigned long ultoa::value#0 // value zp[4]:11 551.0 +unsigned long ultoa::value#1 // value zp[4]:11 100001.0 +unsigned long ultoa::value#2 // value zp[4]:11 57286.42857142857 +unsigned long ultoa::value#6 // value zp[4]:11 150001.5 +unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub) +char *ultoa_append::buffer +char *ultoa_append::buffer#0 // buffer zp[2]:15 137500.25 +char ultoa_append::digit +char ultoa_append::digit#1 // reg byte x 1.000000001E9 +char ultoa_append::digit#2 // reg byte x 1.0005000015E9 +unsigned long ultoa_append::return +unsigned long ultoa_append::return#0 // return zp[4]:11 200002.0 +unsigned long ultoa_append::sub +unsigned long ultoa_append::sub#0 // sub zp[4]:19 3.333500005E8 +unsigned long ultoa_append::value +unsigned long ultoa_append::value#0 // value zp[4]:11 366667.3333333334 +unsigned long ultoa_append::value#1 // value zp[4]:11 2.000000002E9 +unsigned long ultoa_append::value#2 // value zp[4]:11 5.0018333416666675E8 zp[4]:2 [ main::i#2 main::i#1 ] zp[2]:6 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#27 print_line_cursor#26 ] @@ -2471,7 +2472,7 @@ main: { .label __10 = $b .label __11 = $b // print_cls() - // [1] call print_cls + // [1] call print_cls // [18] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] @@ -2624,12 +2625,12 @@ main: { lda.z print_ulong_decimal.w+3 adc.z i+3 sta.z print_ulong_decimal.w+3 - // [13] call print_ulong_decimal + // [13] call print_ulong_decimal jsr print_ulong_decimal // [14] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // print_ln() - // [15] call print_ln + // [15] call print_ln // [26] phi from main::@3 to print_ln [phi:main::@3->print_ln] jsr print_ln // main::@4 @@ -2663,7 +2664,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [19] call memset + // [19] call memset // [32] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2673,18 +2674,18 @@ print_cls: { } // print_ulong_decimal // Print a unsigned long as DECIMAL -// print_ulong_decimal(dword zp($b) w) +// void print_ulong_decimal(__zp($b) unsigned long w) print_ulong_decimal: { .label w = $b // ultoa(w, decimal_digits_long, DECIMAL) // [21] ultoa::value#0 = print_ulong_decimal::w#0 - // [22] call ultoa + // [22] call ultoa // [38] phi from print_ulong_decimal to ultoa [phi:print_ulong_decimal->ultoa] jsr ultoa // [23] phi from print_ulong_decimal to print_ulong_decimal::@1 [phi:print_ulong_decimal->print_ulong_decimal::@1] // print_ulong_decimal::@1 // print_str(decimal_digits_long) - // [24] call print_str + // [24] call print_str jsr print_str // print_ulong_decimal::@return // } @@ -2731,6 +2732,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2738,7 +2740,7 @@ memset: { .label end = str+num .label dst = 8 // [33] phi from memset to memset::@1 [phi:memset->memset::@1] - // [33] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [33] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2780,7 +2782,7 @@ memset: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// ultoa(dword zp($b) value, byte* zp($f) buffer) +// void ultoa(__zp($b) unsigned long value, __zp($f) char *buffer, char radix) ultoa: { .const max_digits = $a .label value = $b @@ -2808,7 +2810,7 @@ ultoa: { bcc __b2 // ultoa::@3 // *buffer++ = DIGITS[(char)value] - // [41] ultoa::$11 = (byte)ultoa::value#2 -- vbuaa=_byte_vduz1 + // [41] ultoa::$11 = (char)ultoa::value#2 -- vbuaa=_byte_vduz1 lda.z value // [42] *ultoa::buffer#11 = DIGITS[ultoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay @@ -2890,7 +2892,7 @@ ultoa: { // [52] ultoa_append::buffer#0 = ultoa::buffer#11 // [53] ultoa_append::value#0 = ultoa::value#2 // [54] ultoa_append::sub#0 = ultoa::digit_value#0 - // [55] call ultoa_append + // [55] call ultoa_append // [66] phi from ultoa::@5 to ultoa_append [phi:ultoa::@5->ultoa_append] jsr ultoa_append // ultoa_append(buffer++, value, digit_value) @@ -2913,7 +2915,7 @@ ultoa: { } // print_str // Print a zero-terminated string -// print_str(byte* zp($f) str) +// void print_str(__zp($f) char *str) print_str: { .label str = $f // [59] print_char_cursor#42 = print_char_cursor#13 -- pbuz1=pbuz2 @@ -2946,7 +2948,7 @@ print_str: { // [63] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [64] call print_char + // [64] call print_char jsr print_char // print_str::@3 // print_char(*(str++)); @@ -2969,7 +2971,7 @@ print_str: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// ultoa_append(byte* zp($f) buffer, dword zp($b) value, dword zp($13) sub) +// __zp($b) unsigned long ultoa_append(__zp($f) char *buffer, __zp($b) unsigned long value, __zp($13) unsigned long sub) ultoa_append: { .label buffer = $f .label value = $b @@ -3036,7 +3038,7 @@ ultoa_append: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [73] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/multiply-16bit-const.sym b/src/test/ref/multiply-16bit-const.sym index 818083581..4e58fd507 100644 --- a/src/test/ref/multiply-16bit-const.sym +++ b/src/test/ref/multiply-16bit-const.sym @@ -1,98 +1,98 @@ -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant dword* RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a } -constant byte* decimal_digits_long[$b] = { fill( $b, 0) } +__constant char DIGITS[] = "0123456789abcdef"z +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned long RADIX_DECIMAL_VALUES_LONG[] = { $3b9aca00, $5f5e100, $989680, $f4240, $186a0, $2710, $3e8, $64, $a } +__constant char decimal_digits_long[$b] = { fill( $b, 0) } void main() -dword~ main::$10 zp[4]:11 22.0 -dword~ main::$11 zp[4]:11 22.0 -dword~ main::$5 zp[4]:11 22.0 -dword~ main::$6 zp[4]:11 22.0 -dword~ main::$7 zp[4]:11 22.0 -dword~ main::$8 zp[4]:11 22.0 -dword~ main::$9 zp[4]:11 22.0 -dword main::i -dword main::i#1 i zp[4]:2 11.0 -dword main::i#2 i zp[4]:2 6.769230769230768 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2002.0 -byte* memset::dst#2 dst zp[2]:8 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 1100002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:17 150786.07142857142 -byte* print_char_cursor#13 print_char_cursor_1 zp[2]:8 77.84615384615384 -byte* print_char_cursor#24 print_char_cursor zp[2]:17 275000.5 -byte* print_char_cursor#42 print_char_cursor zp[2]:17 2002.0 +unsigned long main::$10 // zp[4]:11 22.0 +unsigned long main::$11 // zp[4]:11 22.0 +unsigned long main::$5 // zp[4]:11 22.0 +unsigned long main::$6 // zp[4]:11 22.0 +unsigned long main::$7 // zp[4]:11 22.0 +unsigned long main::$8 // zp[4]:11 22.0 +unsigned long main::$9 // zp[4]:11 22.0 +unsigned long main::i +unsigned long main::i#1 // i zp[4]:2 11.0 +unsigned long main::i#2 // i zp[4]:2 6.769230769230768 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2002.0 +char *memset::dst#2 // dst zp[2]:8 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 1100002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:17 150786.07142857142 +char *print_char_cursor#13 // print_char_cursor_1 zp[2]:8 77.84615384615384 +char *print_char_cursor#24 // print_char_cursor zp[2]:17 275000.5 +char *print_char_cursor#42 // print_char_cursor zp[2]:17 2002.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:8 5004.166666666666 -byte* print_line_cursor#10 print_line_cursor_1 zp[2]:6 20103.0 -byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 8.615384615384615 -byte* print_line_cursor#26 print_line_cursor_1 zp[2]:6 20002.0 -byte* print_line_cursor#27 print_line_cursor_1 zp[2]:6 22.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:8 5004.166666666666 +char *print_line_cursor#10 // print_line_cursor_1 zp[2]:6 20103.0 +char *print_line_cursor#16 // print_line_cursor_1 zp[2]:6 8.615384615384615 +char *print_line_cursor#26 // print_line_cursor_1 zp[2]:6 20002.0 +char *print_line_cursor#27 // print_line_cursor_1 zp[2]:6 22.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:15 200002.0 -byte* print_str::str#2 str zp[2]:15 100001.0 -void print_ulong_decimal(dword print_ulong_decimal::w) -dword print_ulong_decimal::w -dword print_ulong_decimal::w#0 w zp[4]:11 112.0 -void ultoa(dword ultoa::value , byte* ultoa::buffer , byte ultoa::radix) -byte~ ultoa::$10 reg byte a 200002.0 -byte~ ultoa::$11 reg byte a 2002.0 -byte* ultoa::buffer -byte* ultoa::buffer#11 buffer zp[2]:15 28714.714285714286 -byte* ultoa::buffer#14 buffer zp[2]:15 150001.5 -byte* ultoa::buffer#4 buffer zp[2]:15 2002.0 -byte* ultoa::buffer#5 buffer zp[2]:15 200002.0 -byte ultoa::digit -byte ultoa::digit#1 digit zp[1]:10 200002.0 -byte ultoa::digit#2 digit zp[1]:10 28571.714285714286 -dword ultoa::digit_value -dword ultoa::digit_value#0 digit_value zp[4]:19 60000.600000000006 -dword* ultoa::digit_values -byte ultoa::max_digits -constant byte ultoa::max_digits#1 max_digits = $a -byte ultoa::radix -byte ultoa::started -byte ultoa::started#2 reg byte x 50000.5 -byte ultoa::started#4 reg byte x 100001.0 -dword ultoa::value -dword ultoa::value#0 value zp[4]:11 551.0 -dword ultoa::value#1 value zp[4]:11 100001.0 -dword ultoa::value#2 value zp[4]:11 57286.42857142857 -dword ultoa::value#6 value zp[4]:11 150001.5 -dword ultoa_append(byte* ultoa_append::buffer , dword ultoa_append::value , dword ultoa_append::sub) -byte* ultoa_append::buffer -byte* ultoa_append::buffer#0 buffer zp[2]:15 137500.25 -byte ultoa_append::digit -byte ultoa_append::digit#1 reg byte x 1.000000001E9 -byte ultoa_append::digit#2 reg byte x 1.0005000015E9 -dword ultoa_append::return -dword ultoa_append::return#0 return zp[4]:11 200002.0 -dword ultoa_append::sub -dword ultoa_append::sub#0 sub zp[4]:19 3.333500005E8 -dword ultoa_append::value -dword ultoa_append::value#0 value zp[4]:11 366667.3333333334 -dword ultoa_append::value#1 value zp[4]:11 2.000000002E9 -dword ultoa_append::value#2 value zp[4]:11 5.0018333416666675E8 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:15 200002.0 +char *print_str::str#2 // str zp[2]:15 100001.0 +void print_ulong_decimal(unsigned long w) +unsigned long print_ulong_decimal::w +unsigned long print_ulong_decimal::w#0 // w zp[4]:11 112.0 +void ultoa(unsigned long value , char *buffer , char radix) +char ultoa::$10 // reg byte a 200002.0 +char ultoa::$11 // reg byte a 2002.0 +char *ultoa::buffer +char *ultoa::buffer#11 // buffer zp[2]:15 28714.714285714286 +char *ultoa::buffer#14 // buffer zp[2]:15 150001.5 +char *ultoa::buffer#4 // buffer zp[2]:15 2002.0 +char *ultoa::buffer#5 // buffer zp[2]:15 200002.0 +char ultoa::digit +char ultoa::digit#1 // digit zp[1]:10 200002.0 +char ultoa::digit#2 // digit zp[1]:10 28571.714285714286 +unsigned long ultoa::digit_value +unsigned long ultoa::digit_value#0 // digit_value zp[4]:19 60000.600000000006 +unsigned long *ultoa::digit_values +char ultoa::max_digits +__constant char ultoa::max_digits#1 = $a // max_digits +char ultoa::radix +char ultoa::started +char ultoa::started#2 // reg byte x 50000.5 +char ultoa::started#4 // reg byte x 100001.0 +unsigned long ultoa::value +unsigned long ultoa::value#0 // value zp[4]:11 551.0 +unsigned long ultoa::value#1 // value zp[4]:11 100001.0 +unsigned long ultoa::value#2 // value zp[4]:11 57286.42857142857 +unsigned long ultoa::value#6 // value zp[4]:11 150001.5 +unsigned long ultoa_append(char *buffer , unsigned long value , unsigned long sub) +char *ultoa_append::buffer +char *ultoa_append::buffer#0 // buffer zp[2]:15 137500.25 +char ultoa_append::digit +char ultoa_append::digit#1 // reg byte x 1.000000001E9 +char ultoa_append::digit#2 // reg byte x 1.0005000015E9 +unsigned long ultoa_append::return +unsigned long ultoa_append::return#0 // return zp[4]:11 200002.0 +unsigned long ultoa_append::sub +unsigned long ultoa_append::sub#0 // sub zp[4]:19 3.333500005E8 +unsigned long ultoa_append::value +unsigned long ultoa_append::value#0 // value zp[4]:11 366667.3333333334 +unsigned long ultoa_append::value#1 // value zp[4]:11 2.000000002E9 +unsigned long ultoa_append::value#2 // value zp[4]:11 5.0018333416666675E8 zp[4]:2 [ main::i#2 main::i#1 ] zp[2]:6 [ print_line_cursor#10 print_line_cursor#16 print_line_cursor#27 print_line_cursor#26 ] diff --git a/src/test/ref/multiply-2.log b/src/test/ref/multiply-2.log index 1cbbe4e46..1a0f3c0fe 100644 --- a/src/test/ref/multiply-2.log +++ b/src/test/ref/multiply-2.log @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,30 +36,30 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::c1 -byte main::c1#0 -byte main::c1#1 -byte main::c1#2 -byte main::c1#3 -constant byte main::c2 = (byte)3*2+1 -byte main::c3 -byte main::c3#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::c1 +char main::c1#0 +char main::c1#1 +char main::c1#2 +char main::c1#3 +__constant char main::c2 = (char)3*2+1 +char main::c3 +char main::c3#0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 5 in main::$0 = main::c1#2 < 5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::c1#2 = main::c1#3 Alias main::i#2 = main::i#3 @@ -120,17 +120,17 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte~ main::$4 22.0 -byte main::c1 -byte main::c1#1 22.0 -byte main::c1#2 8.25 -byte main::c3 -byte main::c3#0 22.0 -byte main::i -byte main::i#1 11.0 -byte main::i#2 4.714285714285714 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::$4 // 22.0 +char main::c1 +char main::c1#1 // 22.0 +char main::c1#2 // 8.25 +char main::c3 +char main::c3#0 // 22.0 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 4.714285714285714 Initial phi equivalence classes [ main::c1#2 main::c1#1 ] @@ -256,19 +256,19 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::c1 -byte main::c1#1 reg byte x 22.0 -byte main::c1#2 reg byte x 8.25 -byte main::c3 -byte main::c3#0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte y 11.0 -byte main::i#2 reg byte y 4.714285714285714 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::c1 +char main::c1#1 // reg byte x 22.0 +char main::c1#2 // reg byte x 8.25 +char main::c3 +char main::c3#0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte y 11.0 +char main::i#2 // reg byte y 4.714285714285714 reg byte x [ main::c1#2 main::c1#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/multiply-2.sym b/src/test/ref/multiply-2.sym index 04dd90ce4..b246e22ad 100644 --- a/src/test/ref/multiply-2.sym +++ b/src/test/ref/multiply-2.sym @@ -1,16 +1,16 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::c1 -byte main::c1#1 reg byte x 22.0 -byte main::c1#2 reg byte x 8.25 -byte main::c3 -byte main::c3#0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte y 11.0 -byte main::i#2 reg byte y 4.714285714285714 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::c1 +char main::c1#1 // reg byte x 22.0 +char main::c1#2 // reg byte x 8.25 +char main::c3 +char main::c3#0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte y 11.0 +char main::i#2 // reg byte y 4.714285714285714 reg byte x [ main::c1#2 main::c1#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/multiply-2s.cfg b/src/test/ref/multiply-2s.cfg index fbeb15d57..569406360 100644 --- a/src/test/ref/multiply-2s.cfg +++ b/src/test/ref/multiply-2s.cfg @@ -12,9 +12,9 @@ main::@1: scope:[main] from main main::@1 [6] (main::SCREEN+2*$28)[main::i#2] = main::$2 [7] main::$3 = main::i#2 << 3 [8] (main::SCREEN+3*$28)[main::i#2] = main::$3 - [9] main::sb#0 = - (signed byte)main::i#2 + [9] main::sb#0 = - (signed char)main::i#2 [10] main::$5 = main::sb#0 << 1 - [11] (main::SCREEN+5*$28)[main::i#2] = (byte)main::$5 + [11] (main::SCREEN+5*$28)[main::i#2] = (char)main::$5 [12] main::i#1 = ++ main::i#2 [13] if(main::i#1!=$b) goto main::@1 to:main::@return diff --git a/src/test/ref/multiply-2s.log b/src/test/ref/multiply-2s.log index e23f0145a..4733eea10 100644 --- a/src/test/ref/multiply-2s.log +++ b/src/test/ref/multiply-2s.log @@ -16,9 +16,9 @@ main::@1: scope:[main] from main main::@1 (main::SCREEN+2*$28)[main::i#2] = main::$2 main::$3 = main::i#2 * 8 (main::SCREEN+3*$28)[main::i#2] = main::$3 - main::sb#0 = - (signed byte)main::i#2 + main::sb#0 = - (signed char)main::i#2 main::$5 = main::sb#0 * 2 - (main::SCREEN+5*$28)[main::i#2] = (byte)main::$5 + (main::SCREEN+5*$28)[main::i#2] = (char)main::$5 main::i#1 = main::i#2 + rangenext(0,$a) main::$6 = main::i#1 != rangelast(0,$a) if(main::$6) goto main::@1 @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -40,19 +40,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$5 -bool~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -signed byte main::sb -signed byte main::sb#0 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +number main::$5 +bool main::$6 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +signed char main::sb +signed char main::sb#0 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 * 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 * (unumber)1 @@ -68,33 +68,33 @@ Adding number conversion cast (unumber) main::$3 in main::$3 = main::i#2 * (unum Adding number conversion cast (unumber) 3*$28 in (main::SCREEN+3*$28)[main::i#2] = main::$3 Adding number conversion cast (snumber) 2 in main::$5 = main::sb#0 * 2 Adding number conversion cast (snumber) main::$5 in main::$5 = main::sb#0 * (snumber)2 -Adding number conversion cast (unumber) 5*$28 in (main::SCREEN+5*$28)[main::i#2] = (byte)main::$5 +Adding number conversion cast (unumber) 5*$28 in (main::SCREEN+5*$28)[main::i#2] = (char)main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 4 Simplifying constant integer cast 8 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 8 -Finalized signed number type (signed byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 8 +Finalized signed number type (signed char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 * 1 -Inferred type updated to byte in main::$1 = main::i#2 * 2 -Inferred type updated to byte in main::$2 = main::i#2 * 4 -Inferred type updated to byte in main::$3 = main::i#2 * 8 -Inferred type updated to signed byte in main::$5 = main::sb#0 * 2 +Inferred type updated to char in main::$0 = main::i#2 * 1 +Inferred type updated to char in main::$1 = main::i#2 * 2 +Inferred type updated to char in main::$2 = main::i#2 * 4 +Inferred type updated to char in main::$3 = main::i#2 * 8 +Inferred type updated to signed char in main::$5 = main::sb#0 * 2 Simple Condition main::$6 [15] if(main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [13] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [15] if(main::i#1!=rangelast(0,$a)) goto main::@1 to $b -Simplifying constant evaluating to zero (byte)0*$28 in [3] (main::SCREEN+(byte)0*$28)[main::i#2] = main::$0 +Simplifying constant evaluating to zero (char)0*$28 in [3] (main::SCREEN+(char)0*$28)[main::i#2] = main::$0 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [3] (main::SCREEN+0)[main::i#2] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -107,7 +107,7 @@ Adding number conversion cast (unumber) $b in [13] if(main::i#1!=$b) goto main:: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to remove identity multiply/divide [1] main::$0 = main::i#2 * 1 Rewriting multiplication to use shift [3] main::$1 = main::i#2 * 2 @@ -120,14 +120,14 @@ Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Alias main::i#2 = main::$0 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 1*$28 Simplifying constant integer cast 2*$28 @@ -159,9 +159,9 @@ main::@1: scope:[main] from main main::@1 [6] (main::SCREEN+2*$28)[main::i#2] = main::$2 [7] main::$3 = main::i#2 << 3 [8] (main::SCREEN+3*$28)[main::i#2] = main::$3 - [9] main::sb#0 = - (signed byte)main::i#2 + [9] main::sb#0 = - (signed char)main::i#2 [10] main::$5 = main::sb#0 << 1 - [11] (main::SCREEN+5*$28)[main::i#2] = (byte)main::$5 + [11] (main::SCREEN+5*$28)[main::i#2] = (char)main::$5 [12] main::i#1 = ++ main::i#2 [13] if(main::i#1!=$b) goto main::@1 to:main::@return @@ -172,15 +172,15 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte~ main::$2 22.0 -byte~ main::$3 22.0 -signed byte~ main::$5 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -signed byte main::sb -signed byte main::sb#0 22.0 +char main::$1 // 22.0 +char main::$2 // 22.0 +char main::$3 // 22.0 +signed char main::$5 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +signed char main::sb +signed char main::sb#0 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -207,13 +207,13 @@ Statement [3] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 ma Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [5] main::$2 = main::i#2 << 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Statement [7] main::$3 = main::i#2 << 3 [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a -Statement [9] main::sb#0 = - (signed byte)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a +Statement [9] main::sb#0 = - (signed char)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a Statement [10] main::$5 = main::sb#0 << 1 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Statement [2] main::SCREEN[main::i#2] = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [3] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Statement [5] main::$2 = main::i#2 << 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Statement [7] main::$3 = main::i#2 << 3 [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a -Statement [9] main::sb#0 = - (signed byte)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a +Statement [9] main::sb#0 = - (signed char)main::i#2 [ main::i#2 main::sb#0 ] ( [ main::i#2 main::sb#0 ] { } ) always clobbers reg byte a Statement [10] main::$5 = main::sb#0 << 1 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -283,7 +283,7 @@ main: { asl // [8] (main::SCREEN+3*$28)[main::i#2] = main::$3 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+3*$28,x - // [9] main::sb#0 = - (signed byte)main::i#2 -- vbsaa=_neg_vbsxx + // [9] main::sb#0 = - (signed char)main::i#2 -- vbsaa=_neg_vbsxx // And a single signed byte txa eor #$ff @@ -291,7 +291,7 @@ main: { adc #1 // [10] main::$5 = main::sb#0 << 1 -- vbsaa=vbsaa_rol_1 asl - // [11] (main::SCREEN+5*$28)[main::i#2] = (byte)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa + // [11] (main::SCREEN+5*$28)[main::i#2] = (char)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+5*$28,x // [12] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx inx @@ -321,16 +321,16 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -signed byte~ main::$5 reg byte a 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -signed byte main::sb -signed byte main::sb#0 reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +signed char main::$5 // reg byte a 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +signed char main::sb +signed char main::sb#0 // reg byte a 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] @@ -395,7 +395,7 @@ main: { // [8] (main::SCREEN+3*$28)[main::i#2] = main::$3 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+3*$28,x // signed byte sb = -(signed byte)i - // [9] main::sb#0 = - (signed byte)main::i#2 -- vbsaa=_neg_vbsxx + // [9] main::sb#0 = - (signed char)main::i#2 -- vbsaa=_neg_vbsxx // And a single signed byte txa eor #$ff @@ -405,7 +405,7 @@ main: { // [10] main::$5 = main::sb#0 << 1 -- vbsaa=vbsaa_rol_1 asl // (SCREEN+5*40)[i] = (byte)(sb*2) - // [11] (main::SCREEN+5*$28)[main::i#2] = (byte)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa + // [11] (main::SCREEN+5*$28)[main::i#2] = (char)main::$5 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+5*$28,x // for(byte i: 0..10) // [12] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/multiply-2s.sym b/src/test/ref/multiply-2s.sym index ee822380f..22a7b7254 100644 --- a/src/test/ref/multiply-2s.sym +++ b/src/test/ref/multiply-2s.sym @@ -1,14 +1,14 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -signed byte~ main::$5 reg byte a 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -signed byte main::sb -signed byte main::sb#0 reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +signed char main::$5 // reg byte a 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +signed char main::sb +signed char main::sb#0 // reg byte a 22.0 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/multiply-ns.cfg b/src/test/ref/multiply-ns.cfg index 8ada716a9..c3c5bff75 100644 --- a/src/test/ref/multiply-ns.cfg +++ b/src/test/ref/multiply-ns.cfg @@ -19,21 +19,21 @@ main::@1: scope:[main] from main main::@1 [13] main::$46 = main::$25 + main::i#2 [14] (main::SCREEN+6*$28)[main::i#2] = main::$46 [15] main::$27 = main::i#2 << 3 - [16] (main::SCREEN+(word)7*$28)[main::i#2] = main::$27 + [16] (main::SCREEN+(unsigned int)7*$28)[main::i#2] = main::$27 [17] main::$8 = main::$27 + main::i#2 - [18] (main::SCREEN+(word)8*$28)[main::i#2] = main::$8 + [18] (main::SCREEN+(unsigned int)8*$28)[main::i#2] = main::$8 [19] main::$34 = main::$30 << 1 - [20] (main::SCREEN+(word)9*$28)[main::i#2] = main::$34 + [20] (main::SCREEN+(unsigned int)9*$28)[main::i#2] = main::$34 [21] main::$10 = main::$34 + main::i#2 - [22] (main::SCREEN+(word)$a*$28)[main::i#2] = main::$10 + [22] (main::SCREEN+(unsigned int)$a*$28)[main::i#2] = main::$10 [23] main::$41 = main::$21 << 2 - [24] (main::SCREEN+(word)$b*$28)[main::i#2] = main::$41 + [24] (main::SCREEN+(unsigned int)$b*$28)[main::i#2] = main::$41 [25] main::$12 = main::$41 + main::i#2 - [26] (main::SCREEN+(word)$c*$28)[main::i#2] = main::$12 + [26] (main::SCREEN+(unsigned int)$c*$28)[main::i#2] = main::$12 [27] main::$52 = main::$46 << 1 - [28] (main::SCREEN+(word)$d*$28)[main::i#2] = main::$52 + [28] (main::SCREEN+(unsigned int)$d*$28)[main::i#2] = main::$52 [29] main::$14 = main::$52 + main::i#2 - [30] (main::SCREEN+(word)$e*$28)[main::i#2] = main::$14 + [30] (main::SCREEN+(unsigned int)$e*$28)[main::i#2] = main::$14 [31] main::i#1 = ++ main::i#2 [32] if(main::i#1!=$12) goto main::@1 to:main::@return diff --git a/src/test/ref/multiply-ns.log b/src/test/ref/multiply-ns.log index 171118110..c539ab809 100644 --- a/src/test/ref/multiply-ns.log +++ b/src/test/ref/multiply-ns.log @@ -47,7 +47,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -58,27 +58,27 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$10 -number~ main::$11 -number~ main::$12 -number~ main::$13 -number~ main::$14 -bool~ main::$15 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -number~ main::$7 -number~ main::$8 -number~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +number main::$0 +number main::$1 +number main::$10 +number main::$11 +number main::$12 +number main::$13 +number main::$14 +bool main::$15 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +number main::$6 +number main::$7 +number main::$8 +number main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 * 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 * (unumber)1 @@ -126,7 +126,7 @@ Adding number conversion cast (unumber) $f in main::$14 = main::i#2 * $f Adding number conversion cast (unumber) main::$14 in main::$14 = main::i#2 * (unumber)$f Adding number conversion cast (unumber) $e*$28 in (main::SCREEN+$e*$28)[main::i#2] = main::$14 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 @@ -143,44 +143,44 @@ Simplifying constant integer cast $d Simplifying constant integer cast $e Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 * 1 -Inferred type updated to byte in main::$1 = main::i#2 * 2 -Inferred type updated to byte in main::$2 = main::i#2 * 3 -Inferred type updated to byte in main::$3 = main::i#2 * 4 -Inferred type updated to byte in main::$4 = main::i#2 * 5 -Inferred type updated to byte in main::$5 = main::i#2 * 6 -Inferred type updated to byte in main::$6 = main::i#2 * 7 -Inferred type updated to byte in main::$7 = main::i#2 * 8 -Inferred type updated to byte in main::$8 = main::i#2 * 9 -Inferred type updated to byte in main::$9 = main::i#2 * $a -Inferred type updated to byte in main::$10 = main::i#2 * $b -Inferred type updated to byte in main::$11 = main::i#2 * $c -Inferred type updated to byte in main::$12 = main::i#2 * $d -Inferred type updated to byte in main::$13 = main::i#2 * $e -Inferred type updated to byte in main::$14 = main::i#2 * $f +Inferred type updated to char in main::$0 = main::i#2 * 1 +Inferred type updated to char in main::$1 = main::i#2 * 2 +Inferred type updated to char in main::$2 = main::i#2 * 3 +Inferred type updated to char in main::$3 = main::i#2 * 4 +Inferred type updated to char in main::$4 = main::i#2 * 5 +Inferred type updated to char in main::$5 = main::i#2 * 6 +Inferred type updated to char in main::$6 = main::i#2 * 7 +Inferred type updated to char in main::$7 = main::i#2 * 8 +Inferred type updated to char in main::$8 = main::i#2 * 9 +Inferred type updated to char in main::$9 = main::i#2 * $a +Inferred type updated to char in main::$10 = main::i#2 * $b +Inferred type updated to char in main::$11 = main::i#2 * $c +Inferred type updated to char in main::$12 = main::i#2 * $d +Inferred type updated to char in main::$13 = main::i#2 * $e +Inferred type updated to char in main::$14 = main::i#2 * $f Simple Condition main::$15 [34] if(main::i#1!=rangelast(0,$11)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [32] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [34] if(main::i#1!=rangelast(0,$11)) goto main::@1 to $12 -Simplifying constant evaluating to zero (byte)0*$28 in [3] (main::SCREEN+(byte)0*$28)[main::i#2] = main::$0 +Simplifying constant evaluating to zero (char)0*$28 in [3] (main::SCREEN+(char)0*$28)[main::i#2] = main::$0 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [3] (main::SCREEN+0)[main::i#2] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -193,7 +193,7 @@ Adding number conversion cast (unumber) $12 in [32] if(main::i#1!=$12) goto main Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $12 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $12 +Finalized unsigned number type (char) $12 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to remove identity multiply/divide [1] main::$0 = main::i#2 * 1 Rewriting multiplication to use shift [3] main::$1 = main::i#2 * 2 @@ -274,34 +274,34 @@ Identified duplicate assignment right side [30] main::$52 = main::$46 << 1 Successful SSA optimization Pass2DuplicateRValueIdentification Alias main::$52 = main::$13 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 1*$28 Simplifying constant integer cast 2*$28 @@ -342,21 +342,21 @@ main::@1: scope:[main] from main main::@1 [13] main::$46 = main::$25 + main::i#2 [14] (main::SCREEN+6*$28)[main::i#2] = main::$46 [15] main::$27 = main::i#2 << 3 - [16] (main::SCREEN+(word)7*$28)[main::i#2] = main::$27 + [16] (main::SCREEN+(unsigned int)7*$28)[main::i#2] = main::$27 [17] main::$8 = main::$27 + main::i#2 - [18] (main::SCREEN+(word)8*$28)[main::i#2] = main::$8 + [18] (main::SCREEN+(unsigned int)8*$28)[main::i#2] = main::$8 [19] main::$34 = main::$30 << 1 - [20] (main::SCREEN+(word)9*$28)[main::i#2] = main::$34 + [20] (main::SCREEN+(unsigned int)9*$28)[main::i#2] = main::$34 [21] main::$10 = main::$34 + main::i#2 - [22] (main::SCREEN+(word)$a*$28)[main::i#2] = main::$10 + [22] (main::SCREEN+(unsigned int)$a*$28)[main::i#2] = main::$10 [23] main::$41 = main::$21 << 2 - [24] (main::SCREEN+(word)$b*$28)[main::i#2] = main::$41 + [24] (main::SCREEN+(unsigned int)$b*$28)[main::i#2] = main::$41 [25] main::$12 = main::$41 + main::i#2 - [26] (main::SCREEN+(word)$c*$28)[main::i#2] = main::$12 + [26] (main::SCREEN+(unsigned int)$c*$28)[main::i#2] = main::$12 [27] main::$52 = main::$46 << 1 - [28] (main::SCREEN+(word)$d*$28)[main::i#2] = main::$52 + [28] (main::SCREEN+(unsigned int)$d*$28)[main::i#2] = main::$52 [29] main::$14 = main::$52 + main::i#2 - [30] (main::SCREEN+(word)$e*$28)[main::i#2] = main::$14 + [30] (main::SCREEN+(unsigned int)$e*$28)[main::i#2] = main::$14 [31] main::i#1 = ++ main::i#2 [32] if(main::i#1!=$12) goto main::@1 to:main::@return @@ -367,23 +367,23 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$10 22.0 -byte~ main::$12 22.0 -byte~ main::$14 22.0 -byte~ main::$16 16.5 -byte~ main::$18 16.5 -byte~ main::$21 2.4444444444444446 -byte~ main::$25 16.5 -byte~ main::$27 16.5 -byte~ main::$30 3.3000000000000003 -byte~ main::$34 16.5 -byte~ main::$41 16.5 -byte~ main::$46 2.357142857142857 -byte~ main::$52 16.5 -byte~ main::$8 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 10.266666666666666 +char main::$10 // 22.0 +char main::$12 // 22.0 +char main::$14 // 22.0 +char main::$16 // 16.5 +char main::$18 // 16.5 +char main::$21 // 2.4444444444444446 +char main::$25 // 16.5 +char main::$27 // 16.5 +char main::$30 // 3.3000000000000003 +char main::$34 // 16.5 +char main::$41 // 16.5 +char main::$46 // 2.357142857142857 +char main::$52 // 16.5 +char main::$8 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 10.266666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -595,47 +595,47 @@ main: { asl asl asl - // [16] (main::SCREEN+(word)7*$28)[main::i#2] = main::$27 -- pbuc1_derefidx_vbuxx=vbuaa + // [16] (main::SCREEN+(unsigned int)7*$28)[main::i#2] = main::$27 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+7*$28,x // [17] main::$8 = main::$27 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx stx.z $ff clc adc.z $ff - // [18] (main::SCREEN+(word)8*$28)[main::i#2] = main::$8 -- pbuc1_derefidx_vbuxx=vbuaa + // [18] (main::SCREEN+(unsigned int)8*$28)[main::i#2] = main::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+8*$28,x // [19] main::$34 = main::$30 << 1 -- vbuaa=vbuyy_rol_1 tya asl - // [20] (main::SCREEN+(word)9*$28)[main::i#2] = main::$34 -- pbuc1_derefidx_vbuxx=vbuaa + // [20] (main::SCREEN+(unsigned int)9*$28)[main::i#2] = main::$34 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+9*$28,x // [21] main::$10 = main::$34 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx stx.z $ff clc adc.z $ff - // [22] (main::SCREEN+(word)$a*$28)[main::i#2] = main::$10 -- pbuc1_derefidx_vbuxx=vbuaa + // [22] (main::SCREEN+(unsigned int)$a*$28)[main::i#2] = main::$10 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$a*$28,x // [23] main::$41 = main::$21 << 2 -- vbuaa=vbuz1_rol_2 lda.z __21 asl asl - // [24] (main::SCREEN+(word)$b*$28)[main::i#2] = main::$41 -- pbuc1_derefidx_vbuxx=vbuaa + // [24] (main::SCREEN+(unsigned int)$b*$28)[main::i#2] = main::$41 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$b*$28,x // [25] main::$12 = main::$41 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx stx.z $ff clc adc.z $ff - // [26] (main::SCREEN+(word)$c*$28)[main::i#2] = main::$12 -- pbuc1_derefidx_vbuxx=vbuaa + // [26] (main::SCREEN+(unsigned int)$c*$28)[main::i#2] = main::$12 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$c*$28,x // [27] main::$52 = main::$46 << 1 -- vbuaa=vbuz1_rol_1 lda.z __46 asl - // [28] (main::SCREEN+(word)$d*$28)[main::i#2] = main::$52 -- pbuc1_derefidx_vbuxx=vbuaa + // [28] (main::SCREEN+(unsigned int)$d*$28)[main::i#2] = main::$52 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$d*$28,x // [29] main::$14 = main::$52 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx stx.z $ff clc adc.z $ff - // [30] (main::SCREEN+(word)$e*$28)[main::i#2] = main::$14 -- pbuc1_derefidx_vbuxx=vbuaa + // [30] (main::SCREEN+(unsigned int)$e*$28)[main::i#2] = main::$14 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$e*$28,x // [31] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx inx @@ -668,24 +668,24 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$10 reg byte a 22.0 -byte~ main::$12 reg byte a 22.0 -byte~ main::$14 reg byte a 22.0 -byte~ main::$16 reg byte a 16.5 -byte~ main::$18 reg byte a 16.5 -byte~ main::$21 zp[1]:2 2.4444444444444446 -byte~ main::$25 reg byte a 16.5 -byte~ main::$27 reg byte a 16.5 -byte~ main::$30 reg byte y 3.3000000000000003 -byte~ main::$34 reg byte a 16.5 -byte~ main::$41 reg byte a 16.5 -byte~ main::$46 zp[1]:3 2.357142857142857 -byte~ main::$52 reg byte a 16.5 -byte~ main::$8 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 10.266666666666666 +char main::$10 // reg byte a 22.0 +char main::$12 // reg byte a 22.0 +char main::$14 // reg byte a 22.0 +char main::$16 // reg byte a 16.5 +char main::$18 // reg byte a 16.5 +char main::$21 // zp[1]:2 2.4444444444444446 +char main::$25 // reg byte a 16.5 +char main::$27 // reg byte a 16.5 +char main::$30 // reg byte y 3.3000000000000003 +char main::$34 // reg byte a 16.5 +char main::$41 // reg byte a 16.5 +char main::$46 // zp[1]:3 2.357142857142857 +char main::$52 // reg byte a 16.5 +char main::$8 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 10.266666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$16 ] @@ -793,7 +793,7 @@ main: { asl asl // (SCREEN+7*40)[i] = i*8 - // [16] (main::SCREEN+(word)7*$28)[main::i#2] = main::$27 -- pbuc1_derefidx_vbuxx=vbuaa + // [16] (main::SCREEN+(unsigned int)7*$28)[main::i#2] = main::$27 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+7*$28,x // i*9 // [17] main::$8 = main::$27 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx @@ -801,14 +801,14 @@ main: { clc adc.z $ff // (SCREEN+8*40)[i] = i*9 - // [18] (main::SCREEN+(word)8*$28)[main::i#2] = main::$8 -- pbuc1_derefidx_vbuxx=vbuaa + // [18] (main::SCREEN+(unsigned int)8*$28)[main::i#2] = main::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+8*$28,x // i*10 // [19] main::$34 = main::$30 << 1 -- vbuaa=vbuyy_rol_1 tya asl // (SCREEN+9*40)[i] = i*10 - // [20] (main::SCREEN+(word)9*$28)[main::i#2] = main::$34 -- pbuc1_derefidx_vbuxx=vbuaa + // [20] (main::SCREEN+(unsigned int)9*$28)[main::i#2] = main::$34 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+9*$28,x // i*11 // [21] main::$10 = main::$34 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx @@ -816,7 +816,7 @@ main: { clc adc.z $ff // (SCREEN+10*40)[i] = i*11 - // [22] (main::SCREEN+(word)$a*$28)[main::i#2] = main::$10 -- pbuc1_derefidx_vbuxx=vbuaa + // [22] (main::SCREEN+(unsigned int)$a*$28)[main::i#2] = main::$10 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$a*$28,x // i*12 // [23] main::$41 = main::$21 << 2 -- vbuaa=vbuz1_rol_2 @@ -824,7 +824,7 @@ main: { asl asl // (SCREEN+11*40)[i] = i*12 - // [24] (main::SCREEN+(word)$b*$28)[main::i#2] = main::$41 -- pbuc1_derefidx_vbuxx=vbuaa + // [24] (main::SCREEN+(unsigned int)$b*$28)[main::i#2] = main::$41 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$b*$28,x // i*13 // [25] main::$12 = main::$41 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx @@ -832,14 +832,14 @@ main: { clc adc.z $ff // (SCREEN+12*40)[i] = i*13 - // [26] (main::SCREEN+(word)$c*$28)[main::i#2] = main::$12 -- pbuc1_derefidx_vbuxx=vbuaa + // [26] (main::SCREEN+(unsigned int)$c*$28)[main::i#2] = main::$12 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$c*$28,x // i*14 // [27] main::$52 = main::$46 << 1 -- vbuaa=vbuz1_rol_1 lda.z __46 asl // (SCREEN+13*40)[i] = i*14 - // [28] (main::SCREEN+(word)$d*$28)[main::i#2] = main::$52 -- pbuc1_derefidx_vbuxx=vbuaa + // [28] (main::SCREEN+(unsigned int)$d*$28)[main::i#2] = main::$52 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$d*$28,x // i*15 // [29] main::$14 = main::$52 + main::i#2 -- vbuaa=vbuaa_plus_vbuxx @@ -847,7 +847,7 @@ main: { clc adc.z $ff // (SCREEN+14*40)[i] = i*15 - // [30] (main::SCREEN+(word)$e*$28)[main::i#2] = main::$14 -- pbuc1_derefidx_vbuxx=vbuaa + // [30] (main::SCREEN+(unsigned int)$e*$28)[main::i#2] = main::$14 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN+$e*$28,x // for(byte i: 0..17) // [31] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx diff --git a/src/test/ref/multiply-ns.sym b/src/test/ref/multiply-ns.sym index aa5a01f1f..ee3a239ee 100644 --- a/src/test/ref/multiply-ns.sym +++ b/src/test/ref/multiply-ns.sym @@ -1,22 +1,22 @@ void main() -byte~ main::$10 reg byte a 22.0 -byte~ main::$12 reg byte a 22.0 -byte~ main::$14 reg byte a 22.0 -byte~ main::$16 reg byte a 16.5 -byte~ main::$18 reg byte a 16.5 -byte~ main::$21 zp[1]:2 2.4444444444444446 -byte~ main::$25 reg byte a 16.5 -byte~ main::$27 reg byte a 16.5 -byte~ main::$30 reg byte y 3.3000000000000003 -byte~ main::$34 reg byte a 16.5 -byte~ main::$41 reg byte a 16.5 -byte~ main::$46 zp[1]:3 2.357142857142857 -byte~ main::$52 reg byte a 16.5 -byte~ main::$8 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 10.266666666666666 +char main::$10 // reg byte a 22.0 +char main::$12 // reg byte a 22.0 +char main::$14 // reg byte a 22.0 +char main::$16 // reg byte a 16.5 +char main::$18 // reg byte a 16.5 +char main::$21 // zp[1]:2 2.4444444444444446 +char main::$25 // reg byte a 16.5 +char main::$27 // reg byte a 16.5 +char main::$30 // reg byte y 3.3000000000000003 +char main::$34 // reg byte a 16.5 +char main::$41 // reg byte a 16.5 +char main::$46 // zp[1]:3 2.357142857142857 +char main::$52 // reg byte a 16.5 +char main::$8 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 10.266666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$16 ] diff --git a/src/test/ref/nes-array.asm b/src/test/ref/nes-array.asm index 133c46449..d8668bf19 100644 --- a/src/test/ref/nes-array.asm +++ b/src/test/ref/nes-array.asm @@ -8,7 +8,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code main: { .label SCREEN = $400 @@ -49,13 +49,13 @@ main: { // foo(2, &y2) // *SCREEN++ = foo(2, &y2) lda.z __1 - sta SCREEN+SIZEOF_SIGNED_WORD + sta SCREEN+SIZEOF_INT lda.z __1+1 - sta SCREEN+SIZEOF_SIGNED_WORD+1 + sta SCREEN+SIZEOF_INT+1 // } rts } -// foo(byte register(X) x, signed word* zp(2) y) +// __zp(2) int foo(__register(X) char x, __zp(2) int *y) foo: { .label return = 2 .label y = 2 diff --git a/src/test/ref/nes-array.cfg b/src/test/ref/nes-array.cfg index b1ce3f40a..64037fdfc 100644 --- a/src/test/ref/nes-array.cfg +++ b/src/test/ref/nes-array.cfg @@ -3,24 +3,24 @@ void main() main: scope:[main] from [0] main::y1 = $1234 [1] main::y2 = $1234 - [2] call foo + [2] call foo [3] foo::return#2 = foo::return#0 to:main::@1 main::@1: scope:[main] from main [4] main::$0 = foo::return#2 [5] *main::SCREEN#0 = main::$0 - [6] call foo + [6] call foo [7] foo::return#3 = foo::return#0 to:main::@2 main::@2: scope:[main] from main::@1 [8] main::$1 = foo::return#3 - [9] *(main::SCREEN#0+SIZEOF_SIGNED_WORD) = main::$1 + [9] *(main::SCREEN#0+SIZEOF_INT) = main::$1 to:main::@return main::@return: scope:[main] from main::@2 [10] return to:@return -signed word foo(byte foo::x , signed word* foo::y) +int foo(char x , int *y) foo: scope:[foo] from main main::@1 [11] foo::y#2 = phi( main/&main::y1, main::@1/&main::y2 ) [11] foo::x#2 = phi( main/1, main::@1/2 ) diff --git a/src/test/ref/nes-array.log b/src/test/ref/nes-array.log index 367cf5310..455f07676 100644 --- a/src/test/ref/nes-array.log +++ b/src/test/ref/nes-array.log @@ -3,11 +3,11 @@ Setting inferred volatile on symbol affected by address-of main::$1 = call foo(2 CONTROL FLOW GRAPH SSA -signed word foo(byte foo::x , signed word* foo::y) +int foo(char x , int *y) foo: scope:[foo] from main main::@1 foo::y#2 = phi( main/foo::y#0, main::@1/foo::y#1 ) foo::x#2 = phi( main/foo::x#0, main::@1/foo::x#1 ) - foo::$1 = foo::x#2 * SIZEOF_SIGNED_WORD + foo::$1 = foo::x#2 * SIZEOF_INT foo::$0 = wow[foo::$1] + *foo::y#2 foo::return#0 = foo::$0 to:foo::@return @@ -19,12 +19,12 @@ foo::@return: scope:[foo] from foo void main() main: scope:[main] from __start - main::SCREEN#0 = (signed word*)$400 + main::SCREEN#0 = (int *)$400 main::y1 = $1234 main::y2 = $1234 foo::x#0 = 1 foo::y#0 = &main::y1 - call foo + call foo foo::return#2 = foo::return#1 to:main::@1 main::@1: scope:[main] from main @@ -32,10 +32,10 @@ main::@1: scope:[main] from main foo::return#5 = phi( main/foo::return#2 ) main::$0 = foo::return#5 *main::SCREEN#3 = main::$0 - main::SCREEN#1 = main::SCREEN#3 + SIZEOF_SIGNED_WORD + main::SCREEN#1 = main::SCREEN#3 + SIZEOF_INT foo::x#1 = 2 foo::y#1 = &main::y2 - call foo + call foo foo::return#3 = foo::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -43,7 +43,7 @@ main::@2: scope:[main] from main::@1 foo::return#6 = phi( main::@1/foo::return#3 ) main::$1 = foo::return#6 *main::SCREEN#4 = main::$1 - main::SCREEN#2 = main::SCREEN#4 + SIZEOF_SIGNED_WORD + main::SCREEN#2 = main::SCREEN#4 + SIZEOF_INT to:main::@return main::@return: scope:[main] from main::@2 return @@ -51,7 +51,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -60,39 +60,39 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() -signed word foo(byte foo::x , signed word* foo::y) -signed word~ foo::$0 -byte~ foo::$1 -signed word foo::return -signed word foo::return#0 -signed word foo::return#1 -signed word foo::return#2 -signed word foo::return#3 -signed word foo::return#4 -signed word foo::return#5 -signed word foo::return#6 -byte foo::x -byte foo::x#0 -byte foo::x#1 -byte foo::x#2 -signed word* foo::y -signed word* foo::y#0 -signed word* foo::y#1 -signed word* foo::y#2 +int foo(char x , int *y) +int foo::$0 +char foo::$1 +int foo::return +int foo::return#0 +int foo::return#1 +int foo::return#2 +int foo::return#3 +int foo::return#4 +int foo::return#5 +int foo::return#6 +char foo::x +char foo::x#0 +char foo::x#1 +char foo::x#2 +int *foo::y +int *foo::y#0 +int *foo::y#1 +int *foo::y#2 void main() -signed word~ main::$0 -signed word~ main::$1 -signed word* main::SCREEN -signed word* main::SCREEN#0 -signed word* main::SCREEN#1 -signed word* main::SCREEN#2 -signed word* main::SCREEN#3 -signed word* main::SCREEN#4 -volatile signed word main::y1 loadstore -volatile signed word main::y2 loadstore -constant signed word* wow[4] = { (signed word)$cafe, (signed word)$babe, $1234, $5678 } +int main::$0 +int main::$1 +int *main::SCREEN +int *main::SCREEN#0 +int *main::SCREEN#1 +int *main::SCREEN#2 +int *main::SCREEN#3 +int *main::SCREEN#4 +__loadstore volatile int main::y1 +__loadstore volatile int main::y2 +__constant int wow[4] = { (int)$cafe, (int)$babe, $1234, $5678 } Adding number conversion cast (unumber) 1 in foo::x#0 = 1 Adding number conversion cast (unumber) 2 in foo::x#1 = 2 @@ -102,12 +102,12 @@ Inlining cast foo::x#1 = (unumber)2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $cafe Simplifying constant integer cast $babe -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias foo::return#0 = foo::$0 foo::return#4 foo::return#1 Alias foo::return#2 = foo::return#5 @@ -115,24 +115,24 @@ Alias main::SCREEN#0 = main::SCREEN#3 Alias foo::return#3 = foo::return#6 Alias main::SCREEN#1 = main::SCREEN#4 Successful SSA optimization Pass2AliasElimination -Constant main::SCREEN#0 = (signed word*) 1024 +Constant main::SCREEN#0 = (int *) 1024 Constant foo::x#0 = 1 Constant foo::y#0 = &main::y1 Constant foo::x#1 = 2 Constant foo::y#1 = &main::y2 Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [19] *main::SCREEN#1 = main::$1 -- main::SCREEN#0[SIZEOF_SIGNED_WORD] +Converting *(pointer+n) to pointer[n] [19] *main::SCREEN#1 = main::$1 -- main::SCREEN#0[SIZEOF_INT] Successful SSA optimization Pass2InlineDerefIdx -Eliminating unused variable main::SCREEN#2 and assignment [15] main::SCREEN#2 = main::SCREEN#1 + SIZEOF_SIGNED_WORD +Eliminating unused variable main::SCREEN#2 and assignment [15] main::SCREEN#2 = main::SCREEN#1 + SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars -Eliminating unused variable main::SCREEN#1 and assignment [10] main::SCREEN#1 = main::SCREEN#0 + SIZEOF_SIGNED_WORD +Eliminating unused variable main::SCREEN#1 and assignment [10] main::SCREEN#1 = main::SCREEN#0 + SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [1] foo::$1 = foo::x#2 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [1] foo::$1 = foo::x#2 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings foo::x#0 Inlining constant with var siblings foo::y#0 @@ -143,9 +143,9 @@ Constant inlined foo::x#1 = 2 Constant inlined foo::y#1 = &main::y2 Constant inlined foo::x#0 = 1 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::SCREEN#0+SIZEOF_SIGNED_WORD) +Consolidated array index constant in *(main::SCREEN#0+SIZEOF_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to foo:2 foo:6 @@ -159,24 +159,24 @@ void main() main: scope:[main] from [0] main::y1 = $1234 [1] main::y2 = $1234 - [2] call foo + [2] call foo [3] foo::return#2 = foo::return#0 to:main::@1 main::@1: scope:[main] from main [4] main::$0 = foo::return#2 [5] *main::SCREEN#0 = main::$0 - [6] call foo + [6] call foo [7] foo::return#3 = foo::return#0 to:main::@2 main::@2: scope:[main] from main::@1 [8] main::$1 = foo::return#3 - [9] *(main::SCREEN#0+SIZEOF_SIGNED_WORD) = main::$1 + [9] *(main::SCREEN#0+SIZEOF_INT) = main::$1 to:main::@return main::@return: scope:[main] from main::@2 [10] return to:@return -signed word foo(byte foo::x , signed word* foo::y) +int foo(char x , int *y) foo: scope:[foo] from main main::@1 [11] foo::y#2 = phi( main/&main::y1, main::@1/&main::y2 ) [11] foo::x#2 = phi( main/1, main::@1/2 ) @@ -189,22 +189,22 @@ foo::@return: scope:[foo] from foo VARIABLE REGISTER WEIGHTS -signed word foo(byte foo::x , signed word* foo::y) -byte~ foo::$1 22.0 -signed word foo::return -signed word foo::return#0 3.75 -signed word foo::return#2 4.0 -signed word foo::return#3 4.0 -byte foo::x -byte foo::x#2 11.0 -signed word* foo::y -signed word* foo::y#2 5.5 +int foo(char x , int *y) +char foo::$1 // 22.0 +int foo::return +int foo::return#0 // 3.75 +int foo::return#2 // 4.0 +int foo::return#3 // 4.0 +char foo::x +char foo::x#2 // 11.0 +int *foo::y +int *foo::y#2 // 5.5 void main() -signed word~ main::$0 4.0 -signed word~ main::$1 4.0 -signed word* main::SCREEN -volatile signed word main::y1 loadstore 20.0 -volatile signed word main::y2 loadstore 20.0 +int main::$0 // 4.0 +int main::$1 // 4.0 +int *main::SCREEN +__loadstore volatile int main::y1 // 20.0 +__loadstore volatile int main::y2 // 20.0 Initial phi equivalence classes [ foo::x#2 ] @@ -246,7 +246,7 @@ Statement [4] main::$0 = foo::return#2 [ main::$0 ] ( [ main::$0 ] { { foo::ret Statement [5] *main::SCREEN#0 = main::$0 [ ] ( [ ] { { foo::return#0 = foo::return#3 } } ) always clobbers reg byte a Statement [7] foo::return#3 = foo::return#0 [ foo::return#3 ] ( [ foo::return#3 ] { { foo::return#0 = foo::return#3 } } ) always clobbers reg byte a Statement [8] main::$1 = foo::return#3 [ main::$1 ] ( [ main::$1 ] { } ) always clobbers reg byte a -Statement [9] *(main::SCREEN#0+SIZEOF_SIGNED_WORD) = main::$1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *(main::SCREEN#0+SIZEOF_INT) = main::$1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [12] foo::$1 = foo::x#2 << 1 [ foo::y#2 foo::$1 ] ( foo:2 [ foo::y#2 foo::$1 ] { { foo::return#0 = foo::return#2 } } foo:6 [ foo::y#2 foo::$1 ] { { foo::return#0 = foo::return#3 } } ) always clobbers reg byte a Statement [13] foo::return#0 = wow[foo::$1] + *foo::y#2 [ foo::return#0 ] ( foo:2 [ foo::return#0 ] { { foo::return#0 = foo::return#2 } } foo:6 [ foo::return#0 ] { { foo::return#0 = foo::return#3 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ foo::x#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -291,7 +291,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code // main main: { @@ -310,7 +310,7 @@ main: { sta.z y2 lda #>$1234 sta.z y2+1 - // [2] call foo + // [2] call foo // [11] phi from main to foo [phi:main->foo] foo_from_main: // [11] phi foo::y#2 = &main::y1 [phi:main->foo#0] -- pwsz1=pwsc1 @@ -331,7 +331,7 @@ main: { sta SCREEN lda.z __0+1 sta SCREEN+1 - // [6] call foo + // [6] call foo // [11] phi from main::@1 to foo [phi:main::@1->foo] foo_from___b1: // [11] phi foo::y#2 = &main::y2 [phi:main::@1->foo#0] -- pwsz1=pwsc1 @@ -347,11 +347,11 @@ main: { // main::@2 __b2: // [8] main::$1 = foo::return#3 - // [9] *(main::SCREEN#0+SIZEOF_SIGNED_WORD) = main::$1 -- _deref_pwsc1=vwsz1 + // [9] *(main::SCREEN#0+SIZEOF_INT) = main::$1 -- _deref_pwsc1=vwsz1 lda.z __1 - sta SCREEN+SIZEOF_SIGNED_WORD + sta SCREEN+SIZEOF_INT lda.z __1+1 - sta SCREEN+SIZEOF_SIGNED_WORD+1 + sta SCREEN+SIZEOF_INT+1 jmp __breturn // main::@return __breturn: @@ -359,7 +359,7 @@ main: { rts } // foo -// foo(byte register(X) x, signed word* zp(2) y) +// __zp(2) int foo(__register(X) char x, __zp(2) int *y) foo: { .label return = 2 .label y = 2 @@ -404,25 +404,25 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_SIGNED_WORD = 2 -signed word foo(byte foo::x , signed word* foo::y) -byte~ foo::$1 reg byte a 22.0 -signed word foo::return -signed word foo::return#0 return zp[2]:2 3.75 -signed word foo::return#2 return zp[2]:2 4.0 -signed word foo::return#3 return zp[2]:2 4.0 -byte foo::x -byte foo::x#2 reg byte x 11.0 -signed word* foo::y -signed word* foo::y#2 y zp[2]:2 5.5 +__constant char SIZEOF_INT = 2 +int foo(char x , int *y) +char foo::$1 // reg byte a 22.0 +int foo::return +int foo::return#0 // return zp[2]:2 3.75 +int foo::return#2 // return zp[2]:2 4.0 +int foo::return#3 // return zp[2]:2 4.0 +char foo::x +char foo::x#2 // reg byte x 11.0 +int *foo::y +int *foo::y#2 // y zp[2]:2 5.5 void main() -signed word~ main::$0 zp[2]:2 4.0 -signed word~ main::$1 zp[2]:2 4.0 -signed word* main::SCREEN -constant signed word* main::SCREEN#0 SCREEN = (signed word*) 1024 -volatile signed word main::y1 loadstore zp[2]:4 20.0 -volatile signed word main::y2 loadstore zp[2]:6 20.0 -constant signed word* wow[4] = { $cafe, $babe, $1234, $5678 } +int main::$0 // zp[2]:2 4.0 +int main::$1 // zp[2]:2 4.0 +int *main::SCREEN +__constant int *main::SCREEN#0 = (int *) 1024 // SCREEN +__loadstore volatile int main::y1 // zp[2]:4 20.0 +__loadstore volatile int main::y2 // zp[2]:6 20.0 +__constant int wow[4] = { $cafe, $babe, $1234, $5678 } reg byte x [ foo::x#2 ] zp[2]:2 [ foo::y#2 foo::return#0 foo::return#2 main::$0 foo::return#3 main::$1 ] @@ -447,7 +447,7 @@ Score: 141 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code // main main: { @@ -469,7 +469,7 @@ main: { lda #>$1234 sta.z y2+1 // foo(1, &y1) - // [2] call foo + // [2] call foo // [11] phi from main to foo [phi:main->foo] // [11] phi foo::y#2 = &main::y1 [phi:main->foo#0] -- pwsz1=pwsc1 lda #foo] // [11] phi foo::y#2 = &main::y2 [phi:main::@1->foo#0] -- pwsz1=pwsc1 lda #__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/nomodify-3.sym b/src/test/ref/nomodify-3.sym index f0d4362b6..68200dd1d 100644 --- a/src/test/ref/nomodify-3.sym +++ b/src/test/ref/nomodify-3.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile const byte i loadstore zp[1]:2 6.5 +__loadstore volatile const char i // zp[1]:2 6.5 void main() zp[1]:2 [ i ] diff --git a/src/test/ref/nomodify-4.asm b/src/test/ref/nomodify-4.asm index ca2a23321..877294f58 100644 --- a/src/test/ref/nomodify-4.asm +++ b/src/test/ref/nomodify-4.asm @@ -19,7 +19,7 @@ main: { // } rts } -// print(byte register(A) c) +// void print(__register(A) const char c) print: { // *SCREEN = c sta SCREEN diff --git a/src/test/ref/nomodify-4.cfg b/src/test/ref/nomodify-4.cfg index ec07adfca..e728ac0f8 100644 --- a/src/test/ref/nomodify-4.cfg +++ b/src/test/ref/nomodify-4.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(const byte print::c) +void print(const char c) print: scope:[print] from main main::@1 [5] print::c#2 = phi( main/'a', main::@1/'b' ) [6] *SCREEN = print::c#2 diff --git a/src/test/ref/nomodify-4.log b/src/test/ref/nomodify-4.log index 34ebb7dff..7acfaf501 100644 --- a/src/test/ref/nomodify-4.log +++ b/src/test/ref/nomodify-4.log @@ -4,11 +4,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start print::c#0 = 'a' - call print + call print to:main::@1 main::@1: scope:[main] from main print::c#1 = 'b' - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -16,7 +16,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(const byte print::c) +void print(const char c) print: scope:[print] from main main::@1 print::c#2 = phi( main/print::c#0, main::@1/print::c#1 ) *SCREEN = print::c#2 @@ -27,7 +27,7 @@ print::@return: scope:[print] from print void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,16 +36,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -void print(const byte print::c) -const byte print::c -const byte print::c#0 -const byte print::c#1 -const byte print::c#2 +void print(const char c) +const char print::c +const char print::c#0 +const char print::c#1 +const char print::c#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant print::c#0 = 'a' Constant print::c#1 = 'b' @@ -77,17 +77,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(const byte print::c) +void print(const char c) print: scope:[print] from main main::@1 [5] print::c#2 = phi( main/'a', main::@1/'b' ) [6] *SCREEN = print::c#2 @@ -99,9 +99,9 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void main() -void print(const byte print::c) -const byte print::c -const byte print::c#2 11.0 +void print(const char c) +const char print::c +const char print::c#2 // 11.0 Initial phi equivalence classes [ print::c#2 ] @@ -137,7 +137,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] print_from_main: // [5] phi print::c#2 = 'a' [phi:main->print#0] -- vbuaa=vbuc1 @@ -148,7 +148,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [5] phi print::c#2 = 'b' [phi:main::@1->print#0] -- vbuaa=vbuc1 @@ -161,7 +161,7 @@ main: { rts } // print -// print(byte register(A) c) +// void print(__register(A) const char c) print: { // [6] *SCREEN = print::c#2 -- _deref_pbuc1=vbuaa sta SCREEN @@ -188,11 +188,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -void print(const byte print::c) -const byte print::c -const byte print::c#2 reg byte a 11.0 +void print(const char c) +const char print::c +const char print::c#2 // reg byte a 11.0 reg byte a [ print::c#2 ] @@ -217,7 +217,7 @@ Score: 32 // main main: { // print('a') - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] // [5] phi print::c#2 = 'a' [phi:main->print#0] -- vbuaa=vbuc1 lda #'a' @@ -225,7 +225,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print('b') - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] // [5] phi print::c#2 = 'b' [phi:main::@1->print#0] -- vbuaa=vbuc1 lda #'b' @@ -236,7 +236,7 @@ main: { rts } // print -// print(byte register(A) c) +// void print(__register(A) const char c) print: { // *SCREEN = c // [6] *SCREEN = print::c#2 -- _deref_pbuc1=vbuaa diff --git a/src/test/ref/nomodify-4.sym b/src/test/ref/nomodify-4.sym index a9cee4aea..e5faa085b 100644 --- a/src/test/ref/nomodify-4.sym +++ b/src/test/ref/nomodify-4.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -void print(const byte print::c) -const byte print::c -const byte print::c#2 reg byte a 11.0 +void print(const char c) +const char print::c +const char print::c#2 // reg byte a 11.0 reg byte a [ print::c#2 ] diff --git a/src/test/ref/noop-cast-elimination.cfg b/src/test/ref/noop-cast-elimination.cfg index 765cdfa2e..7b36abad2 100644 --- a/src/test/ref/noop-cast-elimination.cfg +++ b/src/test/ref/noop-cast-elimination.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::sw#2 = phi( main/$1234, main::@1/main::sw#1 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] main::sw#1 = main::sw#2 + (signed byte)main::i#2 + [2] main::sw#1 = main::sw#2 + (signed char)main::i#2 [3] main::$1 = main::i#2 << 1 [4] main::screen[main::$1] = main::sw#1 [5] main::i#1 = ++ main::i#2 diff --git a/src/test/ref/noop-cast-elimination.log b/src/test/ref/noop-cast-elimination.log index 4d5f965ae..baf4acbe9 100644 --- a/src/test/ref/noop-cast-elimination.log +++ b/src/test/ref/noop-cast-elimination.log @@ -9,9 +9,9 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::sw#2 = phi( main/main::sw#0, main::@1/main::sw#1 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$2 = (signed byte)main::i#2 + main::$2 = (signed char)main::i#2 main::sw#1 = main::sw#2 + main::$2 - main::$1 = main::i#2 * SIZEOF_SIGNED_WORD + main::$1 = main::i#2 * SIZEOF_INT main::screen[main::$1] = main::sw#1 main::i#1 = main::i#2 + rangenext(0,$a) main::$0 = main::i#1 != rangelast(0,$a) @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,23 +32,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -signed byte~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant signed word* const main::screen = (signed word*)$400 -signed word main::sw -signed word main::sw#0 -signed word main::sw#1 -signed word main::sw#2 +bool main::$0 +char main::$1 +signed char main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant int * const main::screen = (int *)$400 +int main::sw +int main::sw#0 +int main::sw#1 +int main::sw#2 -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [9] if(main::i#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -66,18 +66,18 @@ Adding number conversion cast (unumber) $b in [6] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [1] main::$2 = (signed byte)main::i#2 keeping main::i#2 +Inlining Noop Cast [1] main::$2 = (signed char)main::i#2 keeping main::i#2 Successful SSA optimization Pass2NopCastInlining -Rewriting multiplication to use shift [3] main::$1 = main::i#2 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [3] main::$1 = main::i#2 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::sw#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::sw#0 = $1234 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -99,7 +99,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::sw#2 = phi( main/$1234, main::@1/main::sw#1 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] main::sw#1 = main::sw#2 + (signed byte)main::i#2 + [2] main::sw#1 = main::sw#2 + (signed char)main::i#2 [3] main::$1 = main::i#2 << 1 [4] main::screen[main::$1] = main::sw#1 [5] main::i#1 = ++ main::i#2 @@ -112,13 +112,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.25 -signed word main::sw -signed word main::sw#1 6.6000000000000005 -signed word main::sw#2 22.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.25 +int main::sw +int main::sw#1 // 6.6000000000000005 +int main::sw#2 // 22.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -132,11 +132,11 @@ Allocated zp[1]:2 [ main::i#2 main::i#1 ] Allocated zp[2]:3 [ main::sw#2 main::sw#1 ] Allocated zp[1]:5 [ main::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::sw#1 = main::sw#2 + (signed byte)main::i#2 [ main::i#2 main::sw#1 ] ( [ main::i#2 main::sw#1 ] { } ) always clobbers reg byte a +Statement [2] main::sw#1 = main::sw#2 + (signed char)main::i#2 [ main::i#2 main::sw#1 ] ( [ main::i#2 main::sw#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [3] main::$1 = main::i#2 << 1 [ main::i#2 main::sw#1 main::$1 ] ( [ main::i#2 main::sw#1 main::$1 ] { } ) always clobbers reg byte a Statement [4] main::screen[main::$1] = main::sw#1 [ main::i#2 main::sw#1 ] ( [ main::i#2 main::sw#1 ] { } ) always clobbers reg byte a -Statement [2] main::sw#1 = main::sw#2 + (signed byte)main::i#2 [ main::i#2 main::sw#1 ] ( [ main::i#2 main::sw#1 ] { } ) always clobbers reg byte a +Statement [2] main::sw#1 = main::sw#2 + (signed char)main::i#2 [ main::i#2 main::sw#1 ] ( [ main::i#2 main::sw#1 ] { } ) always clobbers reg byte a Statement [3] main::$1 = main::i#2 << 1 [ main::i#2 main::sw#1 main::$1 ] ( [ main::i#2 main::sw#1 main::$1 ] { } ) always clobbers reg byte a Statement [4] main::screen[main::$1] = main::sw#1 [ main::i#2 main::sw#1 ] ( [ main::i#2 main::sw#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , @@ -186,7 +186,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] main::sw#1 = main::sw#2 + (signed byte)main::i#2 -- vwsz1=vwsz1_plus_vbsxx + // [2] main::sw#1 = main::sw#2 + (signed char)main::i#2 -- vwsz1=vwsz1_plus_vbsxx txa sta.z $ff clc @@ -236,14 +236,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 -constant signed word* const main::screen = (signed word*) 1024 -signed word main::sw -signed word main::sw#1 sw zp[2]:2 6.6000000000000005 -signed word main::sw#2 sw zp[2]:2 22.0 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 +__constant int * const main::screen = (int *) 1024 +int main::sw +int main::sw#1 // sw zp[2]:2 6.6000000000000005 +int main::sw#2 // sw zp[2]:2 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::sw#2 main::sw#1 ] @@ -284,7 +284,7 @@ main: { // main::@1 __b1: // sw += (signed byte)i - // [2] main::sw#1 = main::sw#2 + (signed byte)main::i#2 -- vwsz1=vwsz1_plus_vbsxx + // [2] main::sw#1 = main::sw#2 + (signed char)main::i#2 -- vwsz1=vwsz1_plus_vbsxx txa sta.z $ff clc diff --git a/src/test/ref/noop-cast-elimination.sym b/src/test/ref/noop-cast-elimination.sym index 9a5f68d0c..5067da49f 100644 --- a/src/test/ref/noop-cast-elimination.sym +++ b/src/test/ref/noop-cast-elimination.sym @@ -1,12 +1,12 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 -constant signed word* const main::screen = (signed word*) 1024 -signed word main::sw -signed word main::sw#1 sw zp[2]:2 6.6000000000000005 -signed word main::sw#2 sw zp[2]:2 22.0 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 +__constant int * const main::screen = (int *) 1024 +int main::sw +int main::sw#1 // sw zp[2]:2 6.6000000000000005 +int main::sw#2 // sw zp[2]:2 22.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::sw#2 main::sw#1 ] diff --git a/src/test/ref/norom-charset.asm b/src/test/ref/norom-charset.asm index 0402ebe56..b4ad6fcac 100644 --- a/src/test/ref/norom-charset.asm +++ b/src/test/ref/norom-charset.asm @@ -54,7 +54,7 @@ main: { } // Generate one 5x3 character from a 16-bit char spec // The 5x3 char is stored as 5x 3-bit rows followed by a zero. %aaabbbcc cdddeee0 -// gen_char3(byte* zp(3) dst, word zp(6) spec) +// void gen_char3(__zp(3) char *dst, __zp(6) unsigned int spec) gen_char3: { .label dst = 3 .label spec = 6 diff --git a/src/test/ref/norom-charset.cfg b/src/test/ref/norom-charset.cfg index 585f910c8..e94e79d41 100644 --- a/src/test/ref/norom-charset.cfg +++ b/src/test/ref/norom-charset.cfg @@ -9,7 +9,7 @@ main::@1: scope:[main] from main main::@4 [2] if(main::c#2!=4) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 - [3] *VICII_MEMORY = (byte)(word)SCREEN/$40|(word)CHARSET/$400 + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 to:main::@return main::@return: scope:[main] from main::@3 [4] return @@ -18,14 +18,14 @@ main::@2: scope:[main] from main::@1 [5] main::$7 = main::c#2 << 1 [6] gen_char3::dst#0 = main::charset#2 [7] gen_char3::spec#0 = charset_spec_row[main::$7] - [8] call gen_char3 + [8] call gen_char3 to:main::@4 main::@4: scope:[main] from main::@2 [9] main::charset#1 = main::charset#2 + 8 [10] main::c#1 = ++ main::c#2 to:main::@1 -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) +void gen_char3(char *dst , unsigned int spec) gen_char3: scope:[gen_char3] from main::@2 [11] phi() to:gen_char3::@1 diff --git a/src/test/ref/norom-charset.log b/src/test/ref/norom-charset.log index 4d8e4ca2f..a3d6937bd 100644 --- a/src/test/ref/norom-charset.log +++ b/src/test/ref/norom-charset.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA @@ -17,10 +17,10 @@ main::@1: scope:[main] from main main::@4 main::@2: scope:[main] from main::@1 main::charset#2 = phi( main::@1/main::charset#4 ) main::c#3 = phi( main::@1/main::c#2 ) - main::$7 = main::c#3 * SIZEOF_WORD + main::$7 = main::c#3 * SIZEOF_UNSIGNED_INT gen_char3::dst#0 = main::charset#2 gen_char3::spec#0 = charset_spec_row[main::$7] - call gen_char3 + call gen_char3 to:main::@4 main::@4: scope:[main] from main::@2 main::c#4 = phi( main::@2/main::c#3 ) @@ -30,18 +30,18 @@ main::@4: scope:[main] from main::@2 main::c#1 = ++ main::c#4 to:main::@1 main::@3: scope:[main] from main::@1 - main::$8 = (word)SCREEN + main::$8 = (unsigned int)SCREEN main::$1 = main::$8 / $40 - main::$9 = (word)CHARSET + main::$9 = (unsigned int)CHARSET main::$2 = main::$9 / $400 main::$3 = main::$1 | main::$2 - *VICII_MEMORY = (byte)main::$3 + *VICII_MEMORY = (char)main::$3 to:main::@return main::@return: scope:[main] from main::@3 return to:@return -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) +void gen_char3(char *dst , unsigned int spec) gen_char3: scope:[gen_char3] from main::@2 gen_char3::dst#6 = phi( main::@2/gen_char3::dst#0 ) gen_char3::spec#6 = phi( main::@2/gen_char3::spec#0 ) @@ -109,7 +109,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -118,82 +118,82 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* CHARSET = (byte*)$3000 -constant byte* SCREEN = (byte*)$400 -constant byte SIZEOF_WORD = 2 -constant byte* VICII_MEMORY = (byte*)$d018 +__constant char *CHARSET = (char *)$3000 +__constant char *SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char *VICII_MEMORY = (char *)$d018 void __start() -constant word* charset_spec_row[] = { $f7da, $f7de, $f24e, $d6de } -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) -byte~ gen_char3::$0 -number~ gen_char3::$1 -bool~ gen_char3::$2 -bool~ gen_char3::$3 -number~ gen_char3::$4 -number~ gen_char3::$5 -number~ gen_char3::$6 -bool~ gen_char3::$7 -bool~ gen_char3::$8 -byte gen_char3::b -byte gen_char3::b#0 -byte gen_char3::b#1 -byte gen_char3::b#2 -byte gen_char3::b#3 -byte gen_char3::b#4 -byte gen_char3::b#5 -byte gen_char3::b#6 -byte gen_char3::c -byte gen_char3::c#0 -byte gen_char3::c#1 -byte gen_char3::c#2 -byte gen_char3::c#3 -byte gen_char3::c#4 -byte* gen_char3::dst -byte* gen_char3::dst#0 -byte* gen_char3::dst#1 -byte* gen_char3::dst#2 -byte* gen_char3::dst#3 -byte* gen_char3::dst#4 -byte* gen_char3::dst#5 -byte* gen_char3::dst#6 -byte gen_char3::r -byte gen_char3::r#0 -byte gen_char3::r#1 -byte gen_char3::r#2 -byte gen_char3::r#3 -byte gen_char3::r#4 -byte gen_char3::r#5 -byte gen_char3::r#6 -word gen_char3::spec -word gen_char3::spec#0 -word gen_char3::spec#1 -word gen_char3::spec#2 -word gen_char3::spec#3 -word gen_char3::spec#4 -word gen_char3::spec#5 -word gen_char3::spec#6 -word gen_char3::spec#7 +__constant unsigned int charset_spec_row[] = { $f7da, $f7de, $f24e, $d6de } +void gen_char3(char *dst , unsigned int spec) +char gen_char3::$0 +number gen_char3::$1 +bool gen_char3::$2 +bool gen_char3::$3 +number gen_char3::$4 +number gen_char3::$5 +number gen_char3::$6 +bool gen_char3::$7 +bool gen_char3::$8 +char gen_char3::b +char gen_char3::b#0 +char gen_char3::b#1 +char gen_char3::b#2 +char gen_char3::b#3 +char gen_char3::b#4 +char gen_char3::b#5 +char gen_char3::b#6 +char gen_char3::c +char gen_char3::c#0 +char gen_char3::c#1 +char gen_char3::c#2 +char gen_char3::c#3 +char gen_char3::c#4 +char *gen_char3::dst +char *gen_char3::dst#0 +char *gen_char3::dst#1 +char *gen_char3::dst#2 +char *gen_char3::dst#3 +char *gen_char3::dst#4 +char *gen_char3::dst#5 +char *gen_char3::dst#6 +char gen_char3::r +char gen_char3::r#0 +char gen_char3::r#1 +char gen_char3::r#2 +char gen_char3::r#3 +char gen_char3::r#4 +char gen_char3::r#5 +char gen_char3::r#6 +unsigned int gen_char3::spec +unsigned int gen_char3::spec#0 +unsigned int gen_char3::spec#1 +unsigned int gen_char3::spec#2 +unsigned int gen_char3::spec#3 +unsigned int gen_char3::spec#4 +unsigned int gen_char3::spec#5 +unsigned int gen_char3::spec#6 +unsigned int gen_char3::spec#7 void main() -number~ main::$1 -number~ main::$2 -number~ main::$3 -bool~ main::$4 -byte*~ main::$6 -byte~ main::$7 -word~ main::$8 -word~ main::$9 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c#4 -byte* main::charset -byte* main::charset#0 -byte* main::charset#1 -byte* main::charset#2 -byte* main::charset#3 -byte* main::charset#4 +number main::$1 +number main::$2 +number main::$3 +bool main::$4 +char *main::$6 +char main::$7 +unsigned int main::$8 +unsigned int main::$9 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c#4 +char *main::charset +char *main::charset#0 +char *main::charset#1 +char *main::charset#2 +char *main::charset#3 +char *main::charset#4 Adding number conversion cast (unumber) 8 in main::charset#0 = CHARSET + 8 Adding number conversion cast (unumber) 4 in main::$4 = main::c#2 != 4 @@ -213,9 +213,9 @@ Adding number conversion cast (unumber) gen_char3::$6 in gen_char3::$6 = gen_cha Adding number conversion cast (unumber) 1 in gen_char3::$4 = gen_char3::b#4 | 1 Adding number conversion cast (unumber) gen_char3::$4 in gen_char3::$4 = gen_char3::b#4 | (unumber)1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 12288 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 12288 Simplifying constant integer cast 8 Simplifying constant integer cast 4 Simplifying constant integer cast 8 @@ -227,24 +227,24 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$1 = main::$8 / $40 -Inferred type updated to word in main::$2 = main::$9 / $400 -Inferred type updated to word in main::$3 = main::$1 | main::$2 -Inferred type updated to byte in gen_char3::$1 = gen_char3::$0 & $80 -Inferred type updated to byte in gen_char3::$5 = gen_char3::b#3 * 2 -Inferred type updated to word in gen_char3::$6 = gen_char3::spec#3 * 2 -Inferred type updated to byte in gen_char3::$4 = gen_char3::b#4 | 1 +Inferred type updated to unsigned int in main::$1 = main::$8 / $40 +Inferred type updated to unsigned int in main::$2 = main::$9 / $400 +Inferred type updated to unsigned int in main::$3 = main::$1 | main::$2 +Inferred type updated to char in gen_char3::$1 = gen_char3::$0 & $80 +Inferred type updated to char in gen_char3::$5 = gen_char3::b#3 * 2 +Inferred type updated to unsigned int in gen_char3::$6 = gen_char3::spec#3 * 2 +Inferred type updated to char in gen_char3::$4 = gen_char3::b#4 | 1 Inversing boolean not [30] gen_char3::$3 = gen_char3::$1 == 0 from [29] gen_char3::$2 = gen_char3::$1 != 0 Successful SSA optimization Pass2UnaryNotSimplification Alias main::c#2 = main::c#3 main::c#4 @@ -279,13 +279,13 @@ Simple Condition gen_char3::$7 [33] if(gen_char3::c#1!=rangelast(0,2)) goto gen_ Simple Condition gen_char3::$8 [38] if(gen_char3::r#1!=rangelast(0,4)) goto gen_char3::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [0] main::charset#0 = CHARSET + 8 -Constant right-side identified [11] main::$8 = (word)SCREEN -Constant right-side identified [13] main::$9 = (word)CHARSET +Constant right-side identified [11] main::$8 = (unsigned int)SCREEN +Constant right-side identified [13] main::$9 = (unsigned int)CHARSET Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::charset#0 = CHARSET+8 Constant main::c#0 = 0 -Constant main::$8 = (word)SCREEN -Constant main::$9 = (word)CHARSET +Constant main::$8 = (unsigned int)SCREEN +Constant main::$9 = (unsigned int)CHARSET Constant gen_char3::r#0 = 0 Constant gen_char3::b#0 = 0 Constant gen_char3::c#0 = 0 @@ -307,8 +307,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [8] main::$1 = main::$8 / $40 Constant right-side identified [9] main::$2 = main::$9 / $400 @@ -320,9 +320,9 @@ Constant right-side identified [8] main::$3 = main::$1 | main::$2 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$3 = main::$1|main::$2 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte)main::$3 in [9] *VICII_MEMORY = (byte)main::$3 +Constant value identified (char)main::$3 in [9] *VICII_MEMORY = (char)main::$3 Successful SSA optimization Pass2ConstantValues -Rewriting multiplication to use shift [2] main::$7 = main::c#2 * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$7 = main::c#2 * SIZEOF_UNSIGNED_INT Rewriting multiplication to use shift [16] gen_char3::b#1 = gen_char3::b#3 * 2 Rewriting multiplication to use shift [17] gen_char3::spec#1 = gen_char3::spec#2 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -335,14 +335,14 @@ Constant inlined gen_char3::r#0 = 0 Constant inlined gen_char3::b#0 = 0 Constant inlined main::c#0 = 0 Constant inlined gen_char3::c#0 = 0 -Constant inlined main::$1 = (word)SCREEN/$40 -Constant inlined main::$2 = (word)CHARSET/$400 +Constant inlined main::$1 = (unsigned int)SCREEN/$40 +Constant inlined main::$2 = (unsigned int)CHARSET/$400 Constant inlined main::charset#0 = CHARSET+8 -Constant inlined main::$3 = (word)SCREEN/$40|(word)CHARSET/$400 -Constant inlined main::$9 = (word)CHARSET -Constant inlined main::$8 = (word)SCREEN +Constant inlined main::$3 = (unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 +Constant inlined main::$9 = (unsigned int)CHARSET +Constant inlined main::$8 = (unsigned int)SCREEN Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting gen_char3::@6(between gen_char3::@5 and gen_char3::@1) Added new block during phi lifting gen_char3::@7(between gen_char3::@3 and gen_char3::@2) @@ -382,7 +382,7 @@ main::@1: scope:[main] from main main::@4 [2] if(main::c#2!=4) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 - [3] *VICII_MEMORY = (byte)(word)SCREEN/$40|(word)CHARSET/$400 + [3] *VICII_MEMORY = (char)(unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 to:main::@return main::@return: scope:[main] from main::@3 [4] return @@ -391,14 +391,14 @@ main::@2: scope:[main] from main::@1 [5] main::$7 = main::c#2 << 1 [6] gen_char3::dst#0 = main::charset#2 [7] gen_char3::spec#0 = charset_spec_row[main::$7] - [8] call gen_char3 + [8] call gen_char3 to:main::@4 main::@4: scope:[main] from main::@2 [9] main::charset#1 = main::charset#2 + 8 [10] main::c#1 = ++ main::c#2 to:main::@1 -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) +void gen_char3(char *dst , unsigned int spec) gen_char3: scope:[gen_char3] from main::@2 [11] phi() to:gen_char3::@1 @@ -435,35 +435,35 @@ gen_char3::@return: scope:[gen_char3] from gen_char3::@5 VARIABLE REGISTER WEIGHTS -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) -byte~ gen_char3::$0 200002.0 -byte~ gen_char3::$1 200002.0 -byte gen_char3::b -byte gen_char3::b#1 52500.75 -byte gen_char3::b#2 200002.0 -byte gen_char3::b#3 300003.0 -byte gen_char3::b#4 75000.75 -byte gen_char3::c -byte gen_char3::c#1 150001.5 -byte gen_char3::c#2 25000.25 -byte* gen_char3::dst -byte* gen_char3::dst#0 588.9411764705882 -byte gen_char3::r -byte gen_char3::r#1 15001.5 -byte gen_char3::r#6 2500.25 -word gen_char3::spec -word gen_char3::spec#0 56.0 -word gen_char3::spec#1 35000.5 -word gen_char3::spec#2 44286.28571428572 -word gen_char3::spec#4 20103.0 +void gen_char3(char *dst , unsigned int spec) +char gen_char3::$0 // 200002.0 +char gen_char3::$1 // 200002.0 +char gen_char3::b +char gen_char3::b#1 // 52500.75 +char gen_char3::b#2 // 200002.0 +char gen_char3::b#3 // 300003.0 +char gen_char3::b#4 // 75000.75 +char gen_char3::c +char gen_char3::c#1 // 150001.5 +char gen_char3::c#2 // 25000.25 +char *gen_char3::dst +char *gen_char3::dst#0 // 588.9411764705882 +char gen_char3::r +char gen_char3::r#1 // 15001.5 +char gen_char3::r#6 // 2500.25 +unsigned int gen_char3::spec +unsigned int gen_char3::spec#0 // 56.0 +unsigned int gen_char3::spec#1 // 35000.5 +unsigned int gen_char3::spec#2 // 44286.28571428572 +unsigned int gen_char3::spec#4 // 20103.0 void main() -byte~ main::$7 11.0 -byte main::c -byte main::c#1 22.0 -byte main::c#2 6.285714285714286 -byte* main::charset -byte* main::charset#1 11.0 -byte* main::charset#2 5.5 +char main::$7 // 11.0 +char main::c +char main::c#1 // 22.0 +char main::c#2 // 6.285714285714286 +char *main::charset +char *main::charset#1 // 11.0 +char *main::charset#2 // 5.5 Initial phi equivalence classes [ main::c#2 main::c#1 ] @@ -498,7 +498,7 @@ Allocated zp[2]:11 [ gen_char3::dst#0 ] Allocated zp[1]:13 [ gen_char3::$0 ] Allocated zp[1]:14 [ gen_char3::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN/$40|(word)CHARSET/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] main::$7 = main::c#2 << 1 [ main::c#2 main::charset#2 main::$7 ] ( [ main::c#2 main::charset#2 main::$7 ] { { gen_char3::dst#0 = main::charset#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::c#2 main::c#1 ] Statement [6] gen_char3::dst#0 = main::charset#2 [ main::c#2 main::charset#2 main::$7 gen_char3::dst#0 ] ( [ main::c#2 main::charset#2 main::$7 gen_char3::dst#0 ] { { gen_char3::dst#0 = main::charset#2 } } ) always clobbers reg byte a @@ -508,7 +508,7 @@ Statement [9] main::charset#1 = main::charset#2 + 8 [ main::c#2 main::charset#1 Statement [17] gen_char3::b#2 = gen_char3::b#4 | 1 [ gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::c#2 gen_char3::b#2 ] ( gen_char3:8 [ main::c#2 main::charset#2 gen_char3::dst#0 gen_char3::r#6 gen_char3::spec#2 gen_char3::c#2 gen_char3::b#2 ] { { gen_char3::dst#0 = main::charset#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ gen_char3::r#6 gen_char3::r#1 ] Removing always clobbered register reg byte a as potential for zp[1]:8 [ gen_char3::c#2 gen_char3::c#1 ] -Statement [3] *VICII_MEMORY = (byte)(word)SCREEN/$40|(word)CHARSET/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *VICII_MEMORY = (char)(unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] main::$7 = main::c#2 << 1 [ main::c#2 main::charset#2 main::$7 ] ( [ main::c#2 main::charset#2 main::$7 ] { { gen_char3::dst#0 = main::charset#2 } } ) always clobbers reg byte a Statement [6] gen_char3::dst#0 = main::charset#2 [ main::c#2 main::charset#2 main::$7 gen_char3::dst#0 ] ( [ main::c#2 main::charset#2 main::$7 gen_char3::dst#0 ] { { gen_char3::dst#0 = main::charset#2 } } ) always clobbers reg byte a Statement [7] gen_char3::spec#0 = charset_spec_row[main::$7] [ main::c#2 main::charset#2 gen_char3::dst#0 gen_char3::spec#0 ] ( [ main::c#2 main::charset#2 gen_char3::dst#0 gen_char3::spec#0 ] { { gen_char3::dst#0 = main::charset#2 } } ) always clobbers reg byte a @@ -581,7 +581,7 @@ main: { jmp __b3 // main::@3 __b3: - // [3] *VICII_MEMORY = (byte)(word)SCREEN/$40|(word)CHARSET/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|CHARSET/$400 sta VICII_MEMORY jmp __breturn @@ -601,7 +601,7 @@ main: { sta.z gen_char3.spec lda charset_spec_row+1,x sta.z gen_char3.spec+1 - // [8] call gen_char3 + // [8] call gen_char3 // [11] phi from main::@2 to gen_char3 [phi:main::@2->gen_char3] gen_char3_from___b2: jsr gen_char3 @@ -627,7 +627,7 @@ main: { // gen_char3 // Generate one 5x3 character from a 16-bit char spec // The 5x3 char is stored as 5x 3-bit rows followed by a zero. %aaabbbcc cdddeee0 -// gen_char3(byte* zp(3) dst, word zp(6) spec) +// void gen_char3(__zp(3) char *dst, __zp(6) unsigned int spec) gen_char3: { .label dst = 3 .label spec = 6 @@ -757,39 +757,39 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* CHARSET = (byte*) 12288 -constant byte* SCREEN = (byte*) 1024 -constant byte* VICII_MEMORY = (byte*) 53272 -constant word* charset_spec_row[] = { $f7da, $f7de, $f24e, $d6de } -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) -byte~ gen_char3::$0 reg byte a 200002.0 -byte~ gen_char3::$1 reg byte a 200002.0 -byte gen_char3::b -byte gen_char3::b#1 reg byte y 52500.75 -byte gen_char3::b#2 reg byte y 200002.0 -byte gen_char3::b#3 reg byte y 300003.0 -byte gen_char3::b#4 reg byte y 75000.75 -byte gen_char3::c -byte gen_char3::c#1 reg byte x 150001.5 -byte gen_char3::c#2 reg byte x 25000.25 -byte* gen_char3::dst -byte* gen_char3::dst#0 dst zp[2]:3 588.9411764705882 -byte gen_char3::r -byte gen_char3::r#1 r zp[1]:5 15001.5 -byte gen_char3::r#6 r zp[1]:5 2500.25 -word gen_char3::spec -word gen_char3::spec#0 spec zp[2]:6 56.0 -word gen_char3::spec#1 spec zp[2]:6 35000.5 -word gen_char3::spec#2 spec zp[2]:6 44286.28571428572 -word gen_char3::spec#4 spec zp[2]:6 20103.0 +__constant char *CHARSET = (char *) 12288 +__constant char *SCREEN = (char *) 1024 +__constant char *VICII_MEMORY = (char *) 53272 +__constant unsigned int charset_spec_row[] = { $f7da, $f7de, $f24e, $d6de } +void gen_char3(char *dst , unsigned int spec) +char gen_char3::$0 // reg byte a 200002.0 +char gen_char3::$1 // reg byte a 200002.0 +char gen_char3::b +char gen_char3::b#1 // reg byte y 52500.75 +char gen_char3::b#2 // reg byte y 200002.0 +char gen_char3::b#3 // reg byte y 300003.0 +char gen_char3::b#4 // reg byte y 75000.75 +char gen_char3::c +char gen_char3::c#1 // reg byte x 150001.5 +char gen_char3::c#2 // reg byte x 25000.25 +char *gen_char3::dst +char *gen_char3::dst#0 // dst zp[2]:3 588.9411764705882 +char gen_char3::r +char gen_char3::r#1 // r zp[1]:5 15001.5 +char gen_char3::r#6 // r zp[1]:5 2500.25 +unsigned int gen_char3::spec +unsigned int gen_char3::spec#0 // spec zp[2]:6 56.0 +unsigned int gen_char3::spec#1 // spec zp[2]:6 35000.5 +unsigned int gen_char3::spec#2 // spec zp[2]:6 44286.28571428572 +unsigned int gen_char3::spec#4 // spec zp[2]:6 20103.0 void main() -byte~ main::$7 reg byte x 11.0 -byte main::c -byte main::c#1 c zp[1]:2 22.0 -byte main::c#2 c zp[1]:2 6.285714285714286 -byte* main::charset -byte* main::charset#1 charset zp[2]:3 11.0 -byte* main::charset#2 charset zp[2]:3 5.5 +char main::$7 // reg byte x 11.0 +char main::c +char main::c#1 // c zp[1]:2 22.0 +char main::c#2 // c zp[1]:2 6.285714285714286 +char *main::charset +char *main::charset#1 // charset zp[2]:3 11.0 +char *main::charset#2 // charset zp[2]:3 5.5 zp[1]:2 [ main::c#2 main::c#1 ] zp[2]:3 [ main::charset#2 main::charset#1 gen_char3::dst#0 ] @@ -843,7 +843,7 @@ main: { bne __b2 // main::@3 // *VICII_MEMORY = (byte)(((word)SCREEN/$40)|((word)CHARSET/$400)) - // [3] *VICII_MEMORY = (byte)(word)SCREEN/$40|(word)CHARSET/$400 -- _deref_pbuc1=vbuc2 + // [3] *VICII_MEMORY = (char)(unsigned int)SCREEN/$40|(unsigned int)CHARSET/$400 -- _deref_pbuc1=vbuc2 lda #SCREEN/$40|CHARSET/$400 sta VICII_MEMORY // main::@return @@ -863,7 +863,7 @@ main: { sta.z gen_char3.spec lda charset_spec_row+1,x sta.z gen_char3.spec+1 - // [8] call gen_char3 + // [8] call gen_char3 // [11] phi from main::@2 to gen_char3 [phi:main::@2->gen_char3] jsr gen_char3 // main::@4 @@ -887,7 +887,7 @@ main: { // gen_char3 // Generate one 5x3 character from a 16-bit char spec // The 5x3 char is stored as 5x 3-bit rows followed by a zero. %aaabbbcc cdddeee0 -// gen_char3(byte* zp(3) dst, word zp(6) spec) +// void gen_char3(__zp(3) char *dst, __zp(6) unsigned int spec) gen_char3: { .label dst = 3 .label spec = 6 diff --git a/src/test/ref/norom-charset.sym b/src/test/ref/norom-charset.sym index 2d8eaf32b..970875af3 100644 --- a/src/test/ref/norom-charset.sym +++ b/src/test/ref/norom-charset.sym @@ -1,36 +1,36 @@ -constant byte* CHARSET = (byte*) 12288 -constant byte* SCREEN = (byte*) 1024 -constant byte* VICII_MEMORY = (byte*) 53272 -constant word* charset_spec_row[] = { $f7da, $f7de, $f24e, $d6de } -void gen_char3(byte* gen_char3::dst , word gen_char3::spec) -byte~ gen_char3::$0 reg byte a 200002.0 -byte~ gen_char3::$1 reg byte a 200002.0 -byte gen_char3::b -byte gen_char3::b#1 reg byte y 52500.75 -byte gen_char3::b#2 reg byte y 200002.0 -byte gen_char3::b#3 reg byte y 300003.0 -byte gen_char3::b#4 reg byte y 75000.75 -byte gen_char3::c -byte gen_char3::c#1 reg byte x 150001.5 -byte gen_char3::c#2 reg byte x 25000.25 -byte* gen_char3::dst -byte* gen_char3::dst#0 dst zp[2]:3 588.9411764705882 -byte gen_char3::r -byte gen_char3::r#1 r zp[1]:5 15001.5 -byte gen_char3::r#6 r zp[1]:5 2500.25 -word gen_char3::spec -word gen_char3::spec#0 spec zp[2]:6 56.0 -word gen_char3::spec#1 spec zp[2]:6 35000.5 -word gen_char3::spec#2 spec zp[2]:6 44286.28571428572 -word gen_char3::spec#4 spec zp[2]:6 20103.0 +__constant char *CHARSET = (char *) 12288 +__constant char *SCREEN = (char *) 1024 +__constant char *VICII_MEMORY = (char *) 53272 +__constant unsigned int charset_spec_row[] = { $f7da, $f7de, $f24e, $d6de } +void gen_char3(char *dst , unsigned int spec) +char gen_char3::$0 // reg byte a 200002.0 +char gen_char3::$1 // reg byte a 200002.0 +char gen_char3::b +char gen_char3::b#1 // reg byte y 52500.75 +char gen_char3::b#2 // reg byte y 200002.0 +char gen_char3::b#3 // reg byte y 300003.0 +char gen_char3::b#4 // reg byte y 75000.75 +char gen_char3::c +char gen_char3::c#1 // reg byte x 150001.5 +char gen_char3::c#2 // reg byte x 25000.25 +char *gen_char3::dst +char *gen_char3::dst#0 // dst zp[2]:3 588.9411764705882 +char gen_char3::r +char gen_char3::r#1 // r zp[1]:5 15001.5 +char gen_char3::r#6 // r zp[1]:5 2500.25 +unsigned int gen_char3::spec +unsigned int gen_char3::spec#0 // spec zp[2]:6 56.0 +unsigned int gen_char3::spec#1 // spec zp[2]:6 35000.5 +unsigned int gen_char3::spec#2 // spec zp[2]:6 44286.28571428572 +unsigned int gen_char3::spec#4 // spec zp[2]:6 20103.0 void main() -byte~ main::$7 reg byte x 11.0 -byte main::c -byte main::c#1 c zp[1]:2 22.0 -byte main::c#2 c zp[1]:2 6.285714285714286 -byte* main::charset -byte* main::charset#1 charset zp[2]:3 11.0 -byte* main::charset#2 charset zp[2]:3 5.5 +char main::$7 // reg byte x 11.0 +char main::c +char main::c#1 // c zp[1]:2 22.0 +char main::c#2 // c zp[1]:2 6.285714285714286 +char *main::charset +char *main::charset#1 // charset zp[2]:3 11.0 +char *main::charset#2 // charset zp[2]:3 5.5 zp[1]:2 [ main::c#2 main::c#1 ] zp[2]:3 [ main::charset#2 main::charset#1 gen_char3::dst#0 ] diff --git a/src/test/ref/npe-problem-0.cfg b/src/test/ref/npe-problem-0.cfg index e7aacb373..8ade99ab5 100644 --- a/src/test/ref/npe-problem-0.cfg +++ b/src/test/ref/npe-problem-0.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&bram) - [1] *(SCREEN+1) = *(++(byte*)&bram) + [0] *SCREEN = *((char *)&bram) + [1] *(SCREEN+1) = *(++(char *)&bram) to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/npe-problem-0.log b/src/test/ref/npe-problem-0.log index 812b6809c..0bf260944 100644 --- a/src/test/ref/npe-problem-0.log +++ b/src/test/ref/npe-problem-0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -20,11 +20,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - bram_base#3 = (byte*)&bram + bram_base#3 = (char *)&bram to:__start::@1 __start::@1: scope:[__start] from __start::__init1 bram_base#10 = phi( __start::__init1/bram_base#3 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 bram_base#8 = phi( __start::@1/bram_base#2 ) @@ -37,32 +37,32 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte* bram[$64] = { fill( $64, 0) } -byte* bram_base -byte* bram_base#0 -byte* bram_base#1 -byte* bram_base#10 -byte* bram_base#2 -byte* bram_base#3 -byte* bram_base#4 -byte* bram_base#5 -byte* bram_base#6 -byte* bram_base#7 -byte* bram_base#8 -byte* bram_base#9 +__constant char bram[$64] = { fill( $64, 0) } +char *bram_base +char *bram_base#0 +char *bram_base#1 +char *bram_base#10 +char *bram_base#2 +char *bram_base#3 +char *bram_base#4 +char *bram_base#5 +char *bram_base#6 +char *bram_base#7 +char *bram_base#8 +char *bram_base#9 void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = *bram_base#6 Adding number conversion cast (unumber) 1 in SCREEN[1] = *bram_base#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias bram_base#1 = bram_base#7 bram_base#2 Alias bram_base#10 = bram_base#3 @@ -71,7 +71,7 @@ Successful SSA optimization Pass2AliasElimination Identical Phi Values bram_base#6 bram_base#10 Identical Phi Values bram_base#4 bram_base#1 Successful SSA optimization Pass2IdenticalPhiElimination -Constant bram_base#10 = (byte*)&bram +Constant bram_base#10 = (char *)&bram Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *bram_base#10 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -90,13 +90,13 @@ Constant bram_base#0 = ++bram_base#10 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings bram_base#10 Inlining constant with different constant siblings bram_base#0 -Constant inlined bram_base#10 = (byte*)&bram -Constant inlined bram_base#0 = ++(byte*)&bram +Constant inlined bram_base#10 = (char *)&bram +Constant inlined bram_base#0 = ++(char *)&bram Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) $64 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) $64 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -107,8 +107,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&bram) - [1] *(SCREEN+1) = *(++(byte*)&bram) + [0] *SCREEN = *((char *)&bram) + [1] *(SCREEN+1) = *(++(char *)&bram) to:main::@return main::@return: scope:[main] from main [2] return @@ -116,14 +116,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte* bram_base +char *bram_base void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = *((byte*)&bram) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = *(++(byte*)&bram) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = *((char *)&bram) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = *(++(char *)&bram) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -148,10 +148,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *SCREEN = *((byte*)&bram) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&bram) -- _deref_pbuc1=_deref_pbuc2 lda bram sta SCREEN - // [1] *(SCREEN+1) = *(++(byte*)&bram) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *(++(char *)&bram) -- _deref_pbuc1=_deref_pbuc2 lda bram+1 sta SCREEN+1 jmp __breturn @@ -171,9 +171,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* bram[$64] = { fill( $64, 0) } -byte* bram_base +__constant char * const SCREEN = (char *) 1024 +__constant char bram[$64] = { fill( $64, 0) } +char *bram_base void main() @@ -197,11 +197,11 @@ Score: 22 // main main: { // SCREEN[0] = *bram_base++ - // [0] *SCREEN = *((byte*)&bram) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&bram) -- _deref_pbuc1=_deref_pbuc2 lda bram sta SCREEN // SCREEN[1] = *bram_base++ - // [1] *(SCREEN+1) = *(++(byte*)&bram) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *(++(char *)&bram) -- _deref_pbuc1=_deref_pbuc2 lda bram+1 sta SCREEN+1 // main::@return diff --git a/src/test/ref/npe-problem-0.sym b/src/test/ref/npe-problem-0.sym index f7c3fab46..d5d2ffc1e 100644 --- a/src/test/ref/npe-problem-0.sym +++ b/src/test/ref/npe-problem-0.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte* bram[$64] = { fill( $64, 0) } -byte* bram_base +__constant char * const SCREEN = (char *) 1024 +__constant char bram[$64] = { fill( $64, 0) } +char *bram_base void main() diff --git a/src/test/ref/null-constant.cfg b/src/test/ref/null-constant.cfg index dff0d0686..e70d089d7 100644 --- a/src/test/ref/null-constant.cfg +++ b/src/test/ref/null-constant.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::ptr#2 = phi( main/ptrs, main::@2/main::ptr#1 ) - [2] if((byte*)0!=*main::ptr#2) goto main::@2 + [2] if((char *)0!=*main::ptr#2) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [3] return diff --git a/src/test/ref/null-constant.log b/src/test/ref/null-constant.log index 76b966ecd..35671e40e 100644 --- a/src/test/ref/null-constant.log +++ b/src/test/ref/null-constant.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,7 +10,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@2 screen#8 = phi( main/screen#10, main::@2/screen#0 ) main::ptr#2 = phi( main/main::ptr#0, main::@2/main::ptr#1 ) - main::$0 = (byte*)0 != *main::ptr#2 + main::$0 = (char *)0 != *main::ptr#2 if(main::$0) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 @@ -34,7 +34,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#9 = phi( __start::__init1/screen#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#6 = phi( __start::@1/screen#1 ) @@ -47,42 +47,42 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void __start() void main() -bool~ main::$0 -byte** main::ptr -byte** main::ptr#0 -byte** main::ptr#1 -byte** main::ptr#2 -byte** main::ptr#3 -constant byte** ptrs[] = { (byte*)$400, (byte*)$450, (byte*)$4a0, 0 } -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#2 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 +bool main::$0 +char **main::ptr +char **main::ptr#0 +char **main::ptr#1 +char **main::ptr#2 +char **main::ptr#3 +__constant char *ptrs[] = { (char *)$400, (char *)$450, (char *)$4a0, 0 } +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#2 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 Adding number conversion cast (unumber) 1 in screen#0[1] = 'b' Adding number conversion cast (unumber) 0 in screen#2 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast screen#2 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1104 -Simplifying constant pointer cast (byte*) 1184 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1104 +Simplifying constant pointer cast (char *) 1184 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::ptr#2 = main::ptr#3 Alias screen#1 = screen#5 screen#8 @@ -92,7 +92,7 @@ Successful SSA optimization Pass2AliasElimination Identical Phi Values screen#10 screen#2 Identical Phi Values screen#3 screen#1 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$0 [4] if((byte*)0!=*main::ptr#2) goto main::@2 +Simple Condition main::$0 [4] if((char *)0!=*main::ptr#2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::ptr#0 = ptrs Constant screen#2 = 0 @@ -111,7 +111,7 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::ptr#0 Constant inlined main::ptr#0 = ptrs Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -129,7 +129,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::ptr#2 = phi( main/ptrs, main::@2/main::ptr#1 ) - [2] if((byte*)0!=*main::ptr#2) goto main::@2 + [2] if((char *)0!=*main::ptr#2) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [3] return @@ -144,11 +144,11 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte** main::ptr -byte** main::ptr#1 22.0 -byte** main::ptr#2 11.0 -byte* screen -byte* screen#0 22.0 +char **main::ptr +char **main::ptr#1 // 22.0 +char **main::ptr#2 // 11.0 +char *screen +char *screen#0 // 22.0 Initial phi equivalence classes [ main::ptr#2 main::ptr#1 ] @@ -159,7 +159,7 @@ Complete equivalence classes Allocated zp[2]:2 [ main::ptr#2 main::ptr#1 ] Allocated zp[2]:4 [ screen#0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] if((byte*)0!=*main::ptr#2) goto main::@2 [ main::ptr#2 ] ( [ main::ptr#2 ] { } ) always clobbers reg byte a reg byte y +Statement [2] if((char *)0!=*main::ptr#2) goto main::@2 [ main::ptr#2 ] ( [ main::ptr#2 ] { } ) always clobbers reg byte a reg byte y Statement [4] *(*main::ptr#2) = 'a' [ main::ptr#2 ] ( [ main::ptr#2 ] { } ) always clobbers reg byte a reg byte y Statement [5] screen#0 = *main::ptr#2 [ main::ptr#2 screen#0 ] ( [ main::ptr#2 screen#0 ] { } ) always clobbers reg byte a reg byte y Statement [6] screen#0[1] = 'b' [ main::ptr#2 ] ( [ main::ptr#2 ] { } ) always clobbers reg byte a reg byte y @@ -203,7 +203,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] if((byte*)0!=*main::ptr#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 + // [2] if((char *)0!=*main::ptr#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 ldy #0 lda #<0 cmp (ptr),y @@ -271,14 +271,14 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void main() -byte** main::ptr -byte** main::ptr#1 ptr zp[2]:2 22.0 -byte** main::ptr#2 ptr zp[2]:2 11.0 -constant byte** ptrs[] = { (byte*) 1024, (byte*) 1104, (byte*) 1184, 0 } -byte* screen -byte* screen#0 screen zp[2]:4 22.0 +char **main::ptr +char **main::ptr#1 // ptr zp[2]:2 22.0 +char **main::ptr#2 // ptr zp[2]:2 11.0 +__constant char *ptrs[] = { (char *) 1024, (char *) 1104, (char *) 1184, 0 } +char *screen +char *screen#0 // screen zp[2]:4 22.0 zp[2]:2 [ main::ptr#2 main::ptr#1 ] zp[2]:4 [ screen#0 ] @@ -314,7 +314,7 @@ main: { // main::@1 __b1: // for(char ** ptr = ptrs; *ptr; ptr++) - // [2] if((byte*)0!=*main::ptr#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 + // [2] if((char *)0!=*main::ptr#2) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 ldy #0 tya cmp (ptr),y diff --git a/src/test/ref/null-constant.sym b/src/test/ref/null-constant.sym index f4540203a..4bdcfbdf6 100644 --- a/src/test/ref/null-constant.sym +++ b/src/test/ref/null-constant.sym @@ -1,11 +1,11 @@ -constant byte SIZEOF_POINTER = 2 +__constant char SIZEOF_POINTER = 2 void main() -byte** main::ptr -byte** main::ptr#1 ptr zp[2]:2 22.0 -byte** main::ptr#2 ptr zp[2]:2 11.0 -constant byte** ptrs[] = { (byte*) 1024, (byte*) 1104, (byte*) 1184, 0 } -byte* screen -byte* screen#0 screen zp[2]:4 22.0 +char **main::ptr +char **main::ptr#1 // ptr zp[2]:2 22.0 +char **main::ptr#2 // ptr zp[2]:2 11.0 +__constant char *ptrs[] = { (char *) 1024, (char *) 1104, (char *) 1184, 0 } +char *screen +char *screen#0 // screen zp[2]:4 22.0 zp[2]:2 [ main::ptr#2 main::ptr#1 ] zp[2]:4 [ screen#0 ] diff --git a/src/test/ref/number-conversion.asm b/src/test/ref/number-conversion.asm index f175ee06b..264b5be97 100644 --- a/src/test/ref/number-conversion.asm +++ b/src/test/ref/number-conversion.asm @@ -8,12 +8,12 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_SIGNED_DWORD = 6 - .const TYPEID_BYTE = 1 - .const TYPEID_WORD = 3 - .const TYPEID_DWORD = 5 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_INT = 4 + .const TYPEID_LONG = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_UNSIGNED_LONG = 5 .const RED = 2 .const GREEN = 5 .label SCREEN = $400 @@ -22,181 +22,181 @@ main: { // assertType(typeid(12sb+12), typeid(signed byte)) ldx #0 - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+130), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+33000), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+12), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+130), typeid(signed word)) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sw+100000), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+12), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+130), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sd+100000), typeid(signed dword)) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+12), typeid(unsigned byte)) ldx #$28 - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+250), typeid(unsigned byte)) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+300), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+65534), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+66000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+12), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+130), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+66000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+12), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+130), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+66000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+3000000000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+-12), typeid(unsigned byte)) ldx #$50 - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+-120), typeid(unsigned byte)) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+-250), typeid(unsigned byte)) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+-260), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+-65000), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ub+-66000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+-12), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+-130), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+-65000), typeid(unsigned word)) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 tay jsr assertType // assertType(typeid(12uw+-66000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+-12), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+-130), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12ud+-66000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 tay jsr assertType // assertType(typeid(12sb+-2100000000), typeid(unsigned dword)) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - ldy #TYPEID_SIGNED_DWORD + ldy #TYPEID_LONG jsr assertType // } rts @@ -204,7 +204,7 @@ main: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(Y) t1, byte zp(2) t2) +// void assertType(__register(Y) char t1, __zp(2) char t2) assertType: { .label t2 = 2 // if(t1==t2) diff --git a/src/test/ref/number-conversion.cfg b/src/test/ref/number-conversion.cfg index b6a5d2933..3fedd1816 100644 --- a/src/test/ref/number-conversion.cfg +++ b/src/test/ref/number-conversion.cfg @@ -2,153 +2,153 @@ void main() main: scope:[main] from [0] phi() - [1] call assertType + [1] call assertType to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call assertType + [3] call assertType to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call assertType + [5] call assertType to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call assertType + [7] call assertType to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call assertType + [9] call assertType to:main::@5 main::@5: scope:[main] from main::@4 [10] phi() - [11] call assertType + [11] call assertType to:main::@6 main::@6: scope:[main] from main::@5 [12] phi() - [13] call assertType + [13] call assertType to:main::@7 main::@7: scope:[main] from main::@6 [14] phi() - [15] call assertType + [15] call assertType to:main::@8 main::@8: scope:[main] from main::@7 [16] phi() - [17] call assertType + [17] call assertType to:main::@9 main::@9: scope:[main] from main::@8 [18] phi() - [19] call assertType + [19] call assertType to:main::@10 main::@10: scope:[main] from main::@9 [20] phi() - [21] call assertType + [21] call assertType to:main::@11 main::@11: scope:[main] from main::@10 [22] phi() - [23] call assertType + [23] call assertType to:main::@12 main::@12: scope:[main] from main::@11 [24] phi() - [25] call assertType + [25] call assertType to:main::@13 main::@13: scope:[main] from main::@12 [26] phi() - [27] call assertType + [27] call assertType to:main::@14 main::@14: scope:[main] from main::@13 [28] phi() - [29] call assertType + [29] call assertType to:main::@15 main::@15: scope:[main] from main::@14 [30] phi() - [31] call assertType + [31] call assertType to:main::@16 main::@16: scope:[main] from main::@15 [32] phi() - [33] call assertType + [33] call assertType to:main::@17 main::@17: scope:[main] from main::@16 [34] phi() - [35] call assertType + [35] call assertType to:main::@18 main::@18: scope:[main] from main::@17 [36] phi() - [37] call assertType + [37] call assertType to:main::@19 main::@19: scope:[main] from main::@18 [38] phi() - [39] call assertType + [39] call assertType to:main::@20 main::@20: scope:[main] from main::@19 [40] phi() - [41] call assertType + [41] call assertType to:main::@21 main::@21: scope:[main] from main::@20 [42] phi() - [43] call assertType + [43] call assertType to:main::@22 main::@22: scope:[main] from main::@21 [44] phi() - [45] call assertType + [45] call assertType to:main::@23 main::@23: scope:[main] from main::@22 [46] phi() - [47] call assertType + [47] call assertType to:main::@24 main::@24: scope:[main] from main::@23 [48] phi() - [49] call assertType + [49] call assertType to:main::@25 main::@25: scope:[main] from main::@24 [50] phi() - [51] call assertType + [51] call assertType to:main::@26 main::@26: scope:[main] from main::@25 [52] phi() - [53] call assertType + [53] call assertType to:main::@27 main::@27: scope:[main] from main::@26 [54] phi() - [55] call assertType + [55] call assertType to:main::@28 main::@28: scope:[main] from main::@27 [56] phi() - [57] call assertType + [57] call assertType to:main::@29 main::@29: scope:[main] from main::@28 [58] phi() - [59] call assertType + [59] call assertType to:main::@30 main::@30: scope:[main] from main::@29 [60] phi() - [61] call assertType + [61] call assertType to:main::@31 main::@31: scope:[main] from main::@30 [62] phi() - [63] call assertType + [63] call assertType to:main::@32 main::@32: scope:[main] from main::@31 [64] phi() - [65] call assertType + [65] call assertType to:main::@33 main::@33: scope:[main] from main::@32 [66] phi() - [67] call assertType + [67] call assertType to:main::@34 main::@34: scope:[main] from main::@33 [68] phi() - [69] call assertType + [69] call assertType to:main::@return main::@return: scope:[main] from main::@34 [70] return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from main main::@1 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@28 main::@29 main::@3 main::@30 main::@31 main::@32 main::@33 main::@34 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [71] idx#80 = phi( main/0, main::@1/idx#39, main::@10/idx#39, main::@11/idx#39, main::@12/idx#39, main::@13/idx#39, main::@14/idx#39, main::@15/idx#39, main::@16/idx#39, main::@17/idx#39, main::@18/idx#39, main::@19/idx#39, main::@2/idx#39, main::@20/idx#39, main::@21/$50, main::@22/idx#39, main::@23/idx#39, main::@24/idx#39, main::@25/idx#39, main::@26/idx#39, main::@27/idx#39, main::@28/idx#39, main::@29/idx#39, main::@3/idx#39, main::@30/idx#39, main::@31/idx#39, main::@32/idx#39, main::@33/idx#39, main::@34/idx#39, main::@4/idx#39, main::@5/idx#39, main::@6/idx#39, main::@7/idx#39, main::@8/idx#39, main::@9/$28 ) - [71] assertType::t2#35 = phi( main/TYPEID_SIGNED_BYTE, main::@1/TYPEID_SIGNED_WORD, main::@10/TYPEID_BYTE, main::@11/TYPEID_WORD, main::@12/TYPEID_WORD, main::@13/TYPEID_DWORD, main::@14/TYPEID_WORD, main::@15/TYPEID_WORD, main::@16/TYPEID_DWORD, main::@17/TYPEID_DWORD, main::@18/TYPEID_DWORD, main::@19/TYPEID_DWORD, main::@2/TYPEID_SIGNED_DWORD, main::@20/TYPEID_DWORD, main::@21/TYPEID_BYTE, main::@22/TYPEID_BYTE, main::@23/TYPEID_BYTE, main::@24/TYPEID_WORD, main::@25/TYPEID_WORD, main::@26/TYPEID_DWORD, main::@27/TYPEID_WORD, main::@28/TYPEID_WORD, main::@29/TYPEID_WORD, main::@3/TYPEID_SIGNED_WORD, main::@30/TYPEID_DWORD, main::@31/TYPEID_DWORD, main::@32/TYPEID_DWORD, main::@33/TYPEID_DWORD, main::@34/TYPEID_DWORD, main::@4/TYPEID_SIGNED_WORD, main::@5/TYPEID_SIGNED_DWORD, main::@6/TYPEID_SIGNED_DWORD, main::@7/TYPEID_SIGNED_DWORD, main::@8/TYPEID_SIGNED_DWORD, main::@9/TYPEID_BYTE ) - [71] assertType::t1#35 = phi( main/TYPEID_SIGNED_BYTE, main::@1/TYPEID_SIGNED_WORD, main::@10/TYPEID_BYTE, main::@11/TYPEID_WORD, main::@12/TYPEID_WORD, main::@13/TYPEID_DWORD, main::@14/TYPEID_WORD, main::@15/TYPEID_WORD, main::@16/TYPEID_DWORD, main::@17/TYPEID_DWORD, main::@18/TYPEID_DWORD, main::@19/TYPEID_DWORD, main::@2/TYPEID_SIGNED_DWORD, main::@20/TYPEID_DWORD, main::@21/TYPEID_BYTE, main::@22/TYPEID_BYTE, main::@23/TYPEID_BYTE, main::@24/TYPEID_WORD, main::@25/TYPEID_WORD, main::@26/TYPEID_DWORD, main::@27/TYPEID_WORD, main::@28/TYPEID_WORD, main::@29/TYPEID_WORD, main::@3/TYPEID_SIGNED_WORD, main::@30/TYPEID_DWORD, main::@31/TYPEID_DWORD, main::@32/TYPEID_DWORD, main::@33/TYPEID_DWORD, main::@34/TYPEID_SIGNED_DWORD, main::@4/TYPEID_SIGNED_WORD, main::@5/TYPEID_SIGNED_DWORD, main::@6/TYPEID_SIGNED_DWORD, main::@7/TYPEID_SIGNED_DWORD, main::@8/TYPEID_SIGNED_DWORD, main::@9/TYPEID_BYTE ) + [71] assertType::t2#35 = phi( main/TYPEID_SIGNED_CHAR, main::@1/TYPEID_INT, main::@10/TYPEID_CHAR, main::@11/TYPEID_UNSIGNED_INT, main::@12/TYPEID_UNSIGNED_INT, main::@13/TYPEID_UNSIGNED_LONG, main::@14/TYPEID_UNSIGNED_INT, main::@15/TYPEID_UNSIGNED_INT, main::@16/TYPEID_UNSIGNED_LONG, main::@17/TYPEID_UNSIGNED_LONG, main::@18/TYPEID_UNSIGNED_LONG, main::@19/TYPEID_UNSIGNED_LONG, main::@2/TYPEID_LONG, main::@20/TYPEID_UNSIGNED_LONG, main::@21/TYPEID_CHAR, main::@22/TYPEID_CHAR, main::@23/TYPEID_CHAR, main::@24/TYPEID_UNSIGNED_INT, main::@25/TYPEID_UNSIGNED_INT, main::@26/TYPEID_UNSIGNED_LONG, main::@27/TYPEID_UNSIGNED_INT, main::@28/TYPEID_UNSIGNED_INT, main::@29/TYPEID_UNSIGNED_INT, main::@3/TYPEID_INT, main::@30/TYPEID_UNSIGNED_LONG, main::@31/TYPEID_UNSIGNED_LONG, main::@32/TYPEID_UNSIGNED_LONG, main::@33/TYPEID_UNSIGNED_LONG, main::@34/TYPEID_UNSIGNED_LONG, main::@4/TYPEID_INT, main::@5/TYPEID_LONG, main::@6/TYPEID_LONG, main::@7/TYPEID_LONG, main::@8/TYPEID_LONG, main::@9/TYPEID_CHAR ) + [71] assertType::t1#35 = phi( main/TYPEID_SIGNED_CHAR, main::@1/TYPEID_INT, main::@10/TYPEID_CHAR, main::@11/TYPEID_UNSIGNED_INT, main::@12/TYPEID_UNSIGNED_INT, main::@13/TYPEID_UNSIGNED_LONG, main::@14/TYPEID_UNSIGNED_INT, main::@15/TYPEID_UNSIGNED_INT, main::@16/TYPEID_UNSIGNED_LONG, main::@17/TYPEID_UNSIGNED_LONG, main::@18/TYPEID_UNSIGNED_LONG, main::@19/TYPEID_UNSIGNED_LONG, main::@2/TYPEID_LONG, main::@20/TYPEID_UNSIGNED_LONG, main::@21/TYPEID_CHAR, main::@22/TYPEID_CHAR, main::@23/TYPEID_CHAR, main::@24/TYPEID_UNSIGNED_INT, main::@25/TYPEID_UNSIGNED_INT, main::@26/TYPEID_UNSIGNED_LONG, main::@27/TYPEID_UNSIGNED_INT, main::@28/TYPEID_UNSIGNED_INT, main::@29/TYPEID_UNSIGNED_INT, main::@3/TYPEID_INT, main::@30/TYPEID_UNSIGNED_LONG, main::@31/TYPEID_UNSIGNED_LONG, main::@32/TYPEID_UNSIGNED_LONG, main::@33/TYPEID_UNSIGNED_LONG, main::@34/TYPEID_LONG, main::@4/TYPEID_INT, main::@5/TYPEID_LONG, main::@6/TYPEID_LONG, main::@7/TYPEID_LONG, main::@8/TYPEID_LONG, main::@9/TYPEID_CHAR ) [72] if(assertType::t1#35==assertType::t2#35) goto assertType::@1 to:assertType::@3 assertType::@3: scope:[assertType] from assertType diff --git a/src/test/ref/number-conversion.log b/src/test/ref/number-conversion.log index dd7ce75cc..35b5d6fdb 100644 --- a/src/test/ref/number-conversion.log +++ b/src/test/ref/number-conversion.log @@ -1,7 +1,7 @@ Resolved forward reference idx to idx Resolved forward reference idx to idx Resolved forward reference idx to idx -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,72 +10,72 @@ main: scope:[main] from __start::@1 idx#0 = 0 main::$0 = typeid $c+$c assertType::t1#0 = main::$0 - assertType::t2#0 = TYPEID_SIGNED_BYTE - call assertType + assertType::t2#0 = TYPEID_SIGNED_CHAR + call assertType to:main::@1 main::@1: scope:[main] from main idx#44 = phi( main/idx#40 ) idx#1 = idx#44 main::$2 = typeid $c+$82 assertType::t1#1 = main::$2 - assertType::t2#1 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#1 = TYPEID_INT + call assertType to:main::@2 main::@2: scope:[main] from main::@1 idx#45 = phi( main::@1/idx#40 ) idx#2 = idx#45 main::$4 = typeid $c+$80e8 assertType::t1#2 = main::$4 - assertType::t2#2 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#2 = TYPEID_LONG + call assertType to:main::@3 main::@3: scope:[main] from main::@2 idx#46 = phi( main::@2/idx#40 ) idx#3 = idx#46 main::$6 = typeid $c+$c assertType::t1#3 = main::$6 - assertType::t2#3 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#3 = TYPEID_INT + call assertType to:main::@4 main::@4: scope:[main] from main::@3 idx#47 = phi( main::@3/idx#40 ) idx#4 = idx#47 main::$8 = typeid $c+$82 assertType::t1#4 = main::$8 - assertType::t2#4 = TYPEID_SIGNED_WORD - call assertType + assertType::t2#4 = TYPEID_INT + call assertType to:main::@5 main::@5: scope:[main] from main::@4 idx#48 = phi( main::@4/idx#40 ) idx#5 = idx#48 main::$10 = typeid $c+$186a0 assertType::t1#5 = main::$10 - assertType::t2#5 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#5 = TYPEID_LONG + call assertType to:main::@6 main::@6: scope:[main] from main::@5 idx#49 = phi( main::@5/idx#40 ) idx#6 = idx#49 main::$12 = typeid $c+$c assertType::t1#6 = main::$12 - assertType::t2#6 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#6 = TYPEID_LONG + call assertType to:main::@7 main::@7: scope:[main] from main::@6 idx#50 = phi( main::@6/idx#40 ) idx#7 = idx#50 main::$14 = typeid $c+$82 assertType::t1#7 = main::$14 - assertType::t2#7 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#7 = TYPEID_LONG + call assertType to:main::@8 main::@8: scope:[main] from main::@7 idx#51 = phi( main::@7/idx#40 ) idx#8 = idx#51 main::$16 = typeid $c+$186a0 assertType::t1#8 = main::$16 - assertType::t2#8 = TYPEID_SIGNED_DWORD - call assertType + assertType::t2#8 = TYPEID_LONG + call assertType to:main::@9 main::@9: scope:[main] from main::@8 idx#52 = phi( main::@8/idx#40 ) @@ -83,96 +83,96 @@ main::@9: scope:[main] from main::@8 idx#10 = $28 main::$18 = typeid $c+$c assertType::t1#9 = main::$18 - assertType::t2#9 = TYPEID_BYTE - call assertType + assertType::t2#9 = TYPEID_CHAR + call assertType to:main::@10 main::@10: scope:[main] from main::@9 idx#53 = phi( main::@9/idx#40 ) idx#11 = idx#53 main::$20 = typeid $c+$fa assertType::t1#10 = main::$20 - assertType::t2#10 = TYPEID_BYTE - call assertType + assertType::t2#10 = TYPEID_CHAR + call assertType to:main::@11 main::@11: scope:[main] from main::@10 idx#54 = phi( main::@10/idx#40 ) idx#12 = idx#54 main::$22 = typeid $c+$12c assertType::t1#11 = main::$22 - assertType::t2#11 = TYPEID_WORD - call assertType + assertType::t2#11 = TYPEID_UNSIGNED_INT + call assertType to:main::@12 main::@12: scope:[main] from main::@11 idx#55 = phi( main::@11/idx#40 ) idx#13 = idx#55 main::$24 = typeid $c+$fffe assertType::t1#12 = main::$24 - assertType::t2#12 = TYPEID_WORD - call assertType + assertType::t2#12 = TYPEID_UNSIGNED_INT + call assertType to:main::@13 main::@13: scope:[main] from main::@12 idx#56 = phi( main::@12/idx#40 ) idx#14 = idx#56 main::$26 = typeid $c+$101d0 assertType::t1#13 = main::$26 - assertType::t2#13 = TYPEID_DWORD - call assertType + assertType::t2#13 = TYPEID_UNSIGNED_LONG + call assertType to:main::@14 main::@14: scope:[main] from main::@13 idx#57 = phi( main::@13/idx#40 ) idx#15 = idx#57 main::$28 = typeid $c+$c assertType::t1#14 = main::$28 - assertType::t2#14 = TYPEID_WORD - call assertType + assertType::t2#14 = TYPEID_UNSIGNED_INT + call assertType to:main::@15 main::@15: scope:[main] from main::@14 idx#58 = phi( main::@14/idx#40 ) idx#16 = idx#58 main::$30 = typeid $c+$82 assertType::t1#15 = main::$30 - assertType::t2#15 = TYPEID_WORD - call assertType + assertType::t2#15 = TYPEID_UNSIGNED_INT + call assertType to:main::@16 main::@16: scope:[main] from main::@15 idx#59 = phi( main::@15/idx#40 ) idx#17 = idx#59 main::$32 = typeid $c+$101d0 assertType::t1#16 = main::$32 - assertType::t2#16 = TYPEID_DWORD - call assertType + assertType::t2#16 = TYPEID_UNSIGNED_LONG + call assertType to:main::@17 main::@17: scope:[main] from main::@16 idx#60 = phi( main::@16/idx#40 ) idx#18 = idx#60 main::$34 = typeid $c+$c assertType::t1#17 = main::$34 - assertType::t2#17 = TYPEID_DWORD - call assertType + assertType::t2#17 = TYPEID_UNSIGNED_LONG + call assertType to:main::@18 main::@18: scope:[main] from main::@17 idx#61 = phi( main::@17/idx#40 ) idx#19 = idx#61 main::$36 = typeid $c+$82 assertType::t1#18 = main::$36 - assertType::t2#18 = TYPEID_DWORD - call assertType + assertType::t2#18 = TYPEID_UNSIGNED_LONG + call assertType to:main::@19 main::@19: scope:[main] from main::@18 idx#62 = phi( main::@18/idx#40 ) idx#20 = idx#62 main::$38 = typeid $c+$101d0 assertType::t1#19 = main::$38 - assertType::t2#19 = TYPEID_DWORD - call assertType + assertType::t2#19 = TYPEID_UNSIGNED_LONG + call assertType to:main::@20 main::@20: scope:[main] from main::@19 idx#63 = phi( main::@19/idx#40 ) idx#21 = idx#63 main::$40 = typeid $c+$b2d05e00 assertType::t1#20 = main::$40 - assertType::t2#20 = TYPEID_DWORD - call assertType + assertType::t2#20 = TYPEID_UNSIGNED_LONG + call assertType to:main::@21 main::@21: scope:[main] from main::@20 idx#64 = phi( main::@20/idx#40 ) @@ -180,112 +180,112 @@ main::@21: scope:[main] from main::@20 idx#23 = $50 main::$42 = typeid $c+-$c assertType::t1#21 = main::$42 - assertType::t2#21 = TYPEID_BYTE - call assertType + assertType::t2#21 = TYPEID_CHAR + call assertType to:main::@22 main::@22: scope:[main] from main::@21 idx#65 = phi( main::@21/idx#40 ) idx#24 = idx#65 main::$44 = typeid $c+-$78 assertType::t1#22 = main::$44 - assertType::t2#22 = TYPEID_BYTE - call assertType + assertType::t2#22 = TYPEID_CHAR + call assertType to:main::@23 main::@23: scope:[main] from main::@22 idx#66 = phi( main::@22/idx#40 ) idx#25 = idx#66 main::$46 = typeid $c+-$fa assertType::t1#23 = main::$46 - assertType::t2#23 = TYPEID_BYTE - call assertType + assertType::t2#23 = TYPEID_CHAR + call assertType to:main::@24 main::@24: scope:[main] from main::@23 idx#67 = phi( main::@23/idx#40 ) idx#26 = idx#67 main::$48 = typeid $c+-$104 assertType::t1#24 = main::$48 - assertType::t2#24 = TYPEID_WORD - call assertType + assertType::t2#24 = TYPEID_UNSIGNED_INT + call assertType to:main::@25 main::@25: scope:[main] from main::@24 idx#68 = phi( main::@24/idx#40 ) idx#27 = idx#68 main::$50 = typeid $c+-$fde8 assertType::t1#25 = main::$50 - assertType::t2#25 = TYPEID_WORD - call assertType + assertType::t2#25 = TYPEID_UNSIGNED_INT + call assertType to:main::@26 main::@26: scope:[main] from main::@25 idx#69 = phi( main::@25/idx#40 ) idx#28 = idx#69 main::$52 = typeid $c+-$101d0 assertType::t1#26 = main::$52 - assertType::t2#26 = TYPEID_DWORD - call assertType + assertType::t2#26 = TYPEID_UNSIGNED_LONG + call assertType to:main::@27 main::@27: scope:[main] from main::@26 idx#70 = phi( main::@26/idx#40 ) idx#29 = idx#70 main::$54 = typeid $c+-$c assertType::t1#27 = main::$54 - assertType::t2#27 = TYPEID_WORD - call assertType + assertType::t2#27 = TYPEID_UNSIGNED_INT + call assertType to:main::@28 main::@28: scope:[main] from main::@27 idx#71 = phi( main::@27/idx#40 ) idx#30 = idx#71 main::$56 = typeid $c+-$82 assertType::t1#28 = main::$56 - assertType::t2#28 = TYPEID_WORD - call assertType + assertType::t2#28 = TYPEID_UNSIGNED_INT + call assertType to:main::@29 main::@29: scope:[main] from main::@28 idx#72 = phi( main::@28/idx#40 ) idx#31 = idx#72 main::$58 = typeid $c+-$fde8 assertType::t1#29 = main::$58 - assertType::t2#29 = TYPEID_WORD - call assertType + assertType::t2#29 = TYPEID_UNSIGNED_INT + call assertType to:main::@30 main::@30: scope:[main] from main::@29 idx#73 = phi( main::@29/idx#40 ) idx#32 = idx#73 main::$60 = typeid $c+-$101d0 assertType::t1#30 = main::$60 - assertType::t2#30 = TYPEID_DWORD - call assertType + assertType::t2#30 = TYPEID_UNSIGNED_LONG + call assertType to:main::@31 main::@31: scope:[main] from main::@30 idx#74 = phi( main::@30/idx#40 ) idx#33 = idx#74 main::$62 = typeid $c+-$c assertType::t1#31 = main::$62 - assertType::t2#31 = TYPEID_DWORD - call assertType + assertType::t2#31 = TYPEID_UNSIGNED_LONG + call assertType to:main::@32 main::@32: scope:[main] from main::@31 idx#75 = phi( main::@31/idx#40 ) idx#34 = idx#75 main::$64 = typeid $c+-$82 assertType::t1#32 = main::$64 - assertType::t2#32 = TYPEID_DWORD - call assertType + assertType::t2#32 = TYPEID_UNSIGNED_LONG + call assertType to:main::@33 main::@33: scope:[main] from main::@32 idx#76 = phi( main::@32/idx#40 ) idx#35 = idx#76 main::$66 = typeid $c+-$101d0 assertType::t1#33 = main::$66 - assertType::t2#33 = TYPEID_DWORD - call assertType + assertType::t2#33 = TYPEID_UNSIGNED_LONG + call assertType to:main::@34 main::@34: scope:[main] from main::@33 idx#77 = phi( main::@33/idx#40 ) idx#36 = idx#77 main::$68 = typeid $c+-$7d2b7500 assertType::t1#34 = main::$68 - assertType::t2#34 = TYPEID_DWORD - call assertType + assertType::t2#34 = TYPEID_UNSIGNED_LONG + call assertType to:main::@35 main::@35: scope:[main] from main::@34 idx#78 = phi( main::@34/idx#40 ) @@ -297,7 +297,7 @@ main::@return: scope:[main] from main::@35 return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from main main::@1 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@28 main::@29 main::@3 main::@30 main::@31 main::@32 main::@33 main::@34 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 idx#86 = phi( main/idx#0, main::@1/idx#1, main::@10/idx#11, main::@11/idx#12, main::@12/idx#13, main::@13/idx#14, main::@14/idx#15, main::@15/idx#16, main::@16/idx#17, main::@17/idx#18, main::@18/idx#19, main::@19/idx#20, main::@2/idx#2, main::@20/idx#21, main::@21/idx#23, main::@22/idx#24, main::@23/idx#25, main::@24/idx#26, main::@25/idx#27, main::@26/idx#28, main::@27/idx#29, main::@28/idx#30, main::@29/idx#31, main::@3/idx#3, main::@30/idx#32, main::@31/idx#33, main::@32/idx#34, main::@33/idx#35, main::@34/idx#36, main::@4/idx#4, main::@5/idx#5, main::@6/idx#6, main::@7/idx#7, main::@8/idx#8, main::@9/idx#10 ) assertType::t2#35 = phi( main/assertType::t2#0, main::@1/assertType::t2#1, main::@10/assertType::t2#10, main::@11/assertType::t2#11, main::@12/assertType::t2#12, main::@13/assertType::t2#13, main::@14/assertType::t2#14, main::@15/assertType::t2#15, main::@16/assertType::t2#16, main::@17/assertType::t2#17, main::@18/assertType::t2#18, main::@19/assertType::t2#19, main::@2/assertType::t2#2, main::@20/assertType::t2#20, main::@21/assertType::t2#21, main::@22/assertType::t2#22, main::@23/assertType::t2#23, main::@24/assertType::t2#24, main::@25/assertType::t2#25, main::@26/assertType::t2#26, main::@27/assertType::t2#27, main::@28/assertType::t2#28, main::@29/assertType::t2#29, main::@3/assertType::t2#3, main::@30/assertType::t2#30, main::@31/assertType::t2#31, main::@32/assertType::t2#32, main::@33/assertType::t2#33, main::@34/assertType::t2#34, main::@4/assertType::t2#4, main::@5/assertType::t2#5, main::@6/assertType::t2#6, main::@7/assertType::t2#7, main::@8/assertType::t2#8, main::@9/assertType::t2#9 ) @@ -335,7 +335,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#87 = phi( __start::__init1/idx#41 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#84 = phi( __start::@1/idx#38 ) @@ -348,221 +348,221 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 void __start() -void assertType(byte assertType::t1 , byte assertType::t2) -bool~ assertType::$0 -byte assertType::t1 -byte assertType::t1#0 -byte assertType::t1#1 -byte assertType::t1#10 -byte assertType::t1#11 -byte assertType::t1#12 -byte assertType::t1#13 -byte assertType::t1#14 -byte assertType::t1#15 -byte assertType::t1#16 -byte assertType::t1#17 -byte assertType::t1#18 -byte assertType::t1#19 -byte assertType::t1#2 -byte assertType::t1#20 -byte assertType::t1#21 -byte assertType::t1#22 -byte assertType::t1#23 -byte assertType::t1#24 -byte assertType::t1#25 -byte assertType::t1#26 -byte assertType::t1#27 -byte assertType::t1#28 -byte assertType::t1#29 -byte assertType::t1#3 -byte assertType::t1#30 -byte assertType::t1#31 -byte assertType::t1#32 -byte assertType::t1#33 -byte assertType::t1#34 -byte assertType::t1#35 -byte assertType::t1#36 -byte assertType::t1#37 -byte assertType::t1#38 -byte assertType::t1#4 -byte assertType::t1#5 -byte assertType::t1#6 -byte assertType::t1#7 -byte assertType::t1#8 -byte assertType::t1#9 -byte assertType::t2 -byte assertType::t2#0 -byte assertType::t2#1 -byte assertType::t2#10 -byte assertType::t2#11 -byte assertType::t2#12 -byte assertType::t2#13 -byte assertType::t2#14 -byte assertType::t2#15 -byte assertType::t2#16 -byte assertType::t2#17 -byte assertType::t2#18 -byte assertType::t2#19 -byte assertType::t2#2 -byte assertType::t2#20 -byte assertType::t2#21 -byte assertType::t2#22 -byte assertType::t2#23 -byte assertType::t2#24 -byte assertType::t2#25 -byte assertType::t2#26 -byte assertType::t2#27 -byte assertType::t2#28 -byte assertType::t2#29 -byte assertType::t2#3 -byte assertType::t2#30 -byte assertType::t2#31 -byte assertType::t2#32 -byte assertType::t2#33 -byte assertType::t2#34 -byte assertType::t2#35 -byte assertType::t2#4 -byte assertType::t2#5 -byte assertType::t2#6 -byte assertType::t2#7 -byte assertType::t2#8 -byte assertType::t2#9 -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#30 -byte idx#31 -byte idx#32 -byte idx#33 -byte idx#34 -byte idx#35 -byte idx#36 -byte idx#37 -byte idx#38 -byte idx#39 -byte idx#4 -byte idx#40 -byte idx#41 -byte idx#42 -byte idx#43 -byte idx#44 -byte idx#45 -byte idx#46 -byte idx#47 -byte idx#48 -byte idx#49 -byte idx#5 -byte idx#50 -byte idx#51 -byte idx#52 -byte idx#53 -byte idx#54 -byte idx#55 -byte idx#56 -byte idx#57 -byte idx#58 -byte idx#59 -byte idx#6 -byte idx#60 -byte idx#61 -byte idx#62 -byte idx#63 -byte idx#64 -byte idx#65 -byte idx#66 -byte idx#67 -byte idx#68 -byte idx#69 -byte idx#7 -byte idx#70 -byte idx#71 -byte idx#72 -byte idx#73 -byte idx#74 -byte idx#75 -byte idx#76 -byte idx#77 -byte idx#78 -byte idx#79 -byte idx#8 -byte idx#80 -byte idx#81 -byte idx#82 -byte idx#83 -byte idx#84 -byte idx#85 -byte idx#86 -byte idx#87 -byte idx#9 +void assertType(char t1 , char t2) +bool assertType::$0 +char assertType::t1 +char assertType::t1#0 +char assertType::t1#1 +char assertType::t1#10 +char assertType::t1#11 +char assertType::t1#12 +char assertType::t1#13 +char assertType::t1#14 +char assertType::t1#15 +char assertType::t1#16 +char assertType::t1#17 +char assertType::t1#18 +char assertType::t1#19 +char assertType::t1#2 +char assertType::t1#20 +char assertType::t1#21 +char assertType::t1#22 +char assertType::t1#23 +char assertType::t1#24 +char assertType::t1#25 +char assertType::t1#26 +char assertType::t1#27 +char assertType::t1#28 +char assertType::t1#29 +char assertType::t1#3 +char assertType::t1#30 +char assertType::t1#31 +char assertType::t1#32 +char assertType::t1#33 +char assertType::t1#34 +char assertType::t1#35 +char assertType::t1#36 +char assertType::t1#37 +char assertType::t1#38 +char assertType::t1#4 +char assertType::t1#5 +char assertType::t1#6 +char assertType::t1#7 +char assertType::t1#8 +char assertType::t1#9 +char assertType::t2 +char assertType::t2#0 +char assertType::t2#1 +char assertType::t2#10 +char assertType::t2#11 +char assertType::t2#12 +char assertType::t2#13 +char assertType::t2#14 +char assertType::t2#15 +char assertType::t2#16 +char assertType::t2#17 +char assertType::t2#18 +char assertType::t2#19 +char assertType::t2#2 +char assertType::t2#20 +char assertType::t2#21 +char assertType::t2#22 +char assertType::t2#23 +char assertType::t2#24 +char assertType::t2#25 +char assertType::t2#26 +char assertType::t2#27 +char assertType::t2#28 +char assertType::t2#29 +char assertType::t2#3 +char assertType::t2#30 +char assertType::t2#31 +char assertType::t2#32 +char assertType::t2#33 +char assertType::t2#34 +char assertType::t2#35 +char assertType::t2#4 +char assertType::t2#5 +char assertType::t2#6 +char assertType::t2#7 +char assertType::t2#8 +char assertType::t2#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#30 +char idx#31 +char idx#32 +char idx#33 +char idx#34 +char idx#35 +char idx#36 +char idx#37 +char idx#38 +char idx#39 +char idx#4 +char idx#40 +char idx#41 +char idx#42 +char idx#43 +char idx#44 +char idx#45 +char idx#46 +char idx#47 +char idx#48 +char idx#49 +char idx#5 +char idx#50 +char idx#51 +char idx#52 +char idx#53 +char idx#54 +char idx#55 +char idx#56 +char idx#57 +char idx#58 +char idx#59 +char idx#6 +char idx#60 +char idx#61 +char idx#62 +char idx#63 +char idx#64 +char idx#65 +char idx#66 +char idx#67 +char idx#68 +char idx#69 +char idx#7 +char idx#70 +char idx#71 +char idx#72 +char idx#73 +char idx#74 +char idx#75 +char idx#76 +char idx#77 +char idx#78 +char idx#79 +char idx#8 +char idx#80 +char idx#81 +char idx#82 +char idx#83 +char idx#84 +char idx#85 +char idx#86 +char idx#87 +char idx#9 void main() -byte~ main::$0 -byte~ main::$10 -byte~ main::$12 -byte~ main::$14 -byte~ main::$16 -byte~ main::$18 -byte~ main::$2 -byte~ main::$20 -byte~ main::$22 -byte~ main::$24 -byte~ main::$26 -byte~ main::$28 -byte~ main::$30 -byte~ main::$32 -byte~ main::$34 -byte~ main::$36 -byte~ main::$38 -byte~ main::$4 -byte~ main::$40 -byte~ main::$42 -byte~ main::$44 -byte~ main::$46 -byte~ main::$48 -byte~ main::$50 -byte~ main::$52 -byte~ main::$54 -byte~ main::$56 -byte~ main::$58 -byte~ main::$6 -byte~ main::$60 -byte~ main::$62 -byte~ main::$64 -byte~ main::$66 -byte~ main::$68 -byte~ main::$8 +char main::$0 +char main::$10 +char main::$12 +char main::$14 +char main::$16 +char main::$18 +char main::$2 +char main::$20 +char main::$22 +char main::$24 +char main::$26 +char main::$28 +char main::$30 +char main::$32 +char main::$34 +char main::$36 +char main::$38 +char main::$4 +char main::$40 +char main::$42 +char main::$44 +char main::$46 +char main::$48 +char main::$50 +char main::$52 +char main::$54 +char main::$56 +char main::$58 +char main::$6 +char main::$60 +char main::$62 +char main::$64 +char main::$66 +char main::$68 +char main::$8 Adding number conversion cast (snumber) $c in main::$0 = typeid $c+$c Adding number conversion cast (snumber) $82 in main::$2 = typeid $c+$82 @@ -636,41 +636,41 @@ Simplifying constant integer cast -$82 Simplifying constant integer cast -$101d0 Simplifying constant integer cast -$7d2b7500 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $c -Finalized signed number type (signed word) $82 -Finalized signed number type (signed dword) $80e8 -Finalized signed number type (signed byte) $c -Finalized signed number type (signed word) $82 -Finalized signed number type (signed dword) $186a0 -Finalized signed number type (signed byte) $c -Finalized signed number type (signed word) $82 -Finalized signed number type (signed dword) $186a0 -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (word) $12c -Finalized unsigned number type (word) $fffe -Finalized unsigned number type (dword) $101d0 -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $82 -Finalized unsigned number type (dword) $101d0 -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $82 -Finalized unsigned number type (dword) $101d0 -Finalized unsigned number type (dword) $b2d05e00 -Finalized unsigned number type (byte) -$c -Finalized unsigned number type (byte) -$78 -Finalized unsigned number type (byte) -$fa -Finalized unsigned number type (word) -$104 -Finalized unsigned number type (word) -$fde8 -Finalized unsigned number type (dword) -$101d0 -Finalized unsigned number type (byte) -$c -Finalized unsigned number type (byte) -$82 -Finalized unsigned number type (word) -$fde8 -Finalized unsigned number type (dword) -$101d0 -Finalized unsigned number type (byte) -$c -Finalized unsigned number type (byte) -$82 -Finalized unsigned number type (dword) -$101d0 -Finalized signed number type (signed dword) -$7d2b7500 +Finalized signed number type (signed char) $c +Finalized signed number type (int) $82 +Finalized signed number type (long) $80e8 +Finalized signed number type (signed char) $c +Finalized signed number type (int) $82 +Finalized signed number type (long) $186a0 +Finalized signed number type (signed char) $c +Finalized signed number type (int) $82 +Finalized signed number type (long) $186a0 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $fa +Finalized unsigned number type (unsigned int) $12c +Finalized unsigned number type (unsigned int) $fffe +Finalized unsigned number type (unsigned long) $101d0 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $82 +Finalized unsigned number type (unsigned long) $101d0 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $82 +Finalized unsigned number type (unsigned long) $101d0 +Finalized unsigned number type (unsigned long) $b2d05e00 +Finalized unsigned number type (char) -$c +Finalized unsigned number type (char) -$78 +Finalized unsigned number type (char) -$fa +Finalized unsigned number type (unsigned int) -$104 +Finalized unsigned number type (unsigned int) -$fde8 +Finalized unsigned number type (unsigned long) -$101d0 +Finalized unsigned number type (char) -$c +Finalized unsigned number type (char) -$82 +Finalized unsigned number type (unsigned int) -$fde8 +Finalized unsigned number type (unsigned long) -$101d0 +Finalized unsigned number type (char) -$c +Finalized unsigned number type (char) -$82 +Finalized unsigned number type (unsigned long) -$101d0 +Finalized signed number type (long) -$7d2b7500 Successful SSA optimization PassNFinalizeNumberTypeConversions Resolving typeid() main::$0 = typeid $c+$c Resolving typeid() main::$2 = typeid $c+$82 @@ -827,78 +827,78 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition assertType::$0 [146] if(assertType::t1#35==assertType::t2#35) goto assertType::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant idx#0 = 0 -Constant assertType::t1#0 = TYPEID_SIGNED_BYTE -Constant assertType::t2#0 = TYPEID_SIGNED_BYTE -Constant assertType::t1#1 = TYPEID_SIGNED_WORD -Constant assertType::t2#1 = TYPEID_SIGNED_WORD -Constant assertType::t1#2 = TYPEID_SIGNED_DWORD -Constant assertType::t2#2 = TYPEID_SIGNED_DWORD -Constant assertType::t1#3 = TYPEID_SIGNED_WORD -Constant assertType::t2#3 = TYPEID_SIGNED_WORD -Constant assertType::t1#4 = TYPEID_SIGNED_WORD -Constant assertType::t2#4 = TYPEID_SIGNED_WORD -Constant assertType::t1#5 = TYPEID_SIGNED_DWORD -Constant assertType::t2#5 = TYPEID_SIGNED_DWORD -Constant assertType::t1#6 = TYPEID_SIGNED_DWORD -Constant assertType::t2#6 = TYPEID_SIGNED_DWORD -Constant assertType::t1#7 = TYPEID_SIGNED_DWORD -Constant assertType::t2#7 = TYPEID_SIGNED_DWORD -Constant assertType::t1#8 = TYPEID_SIGNED_DWORD -Constant assertType::t2#8 = TYPEID_SIGNED_DWORD +Constant assertType::t1#0 = TYPEID_SIGNED_CHAR +Constant assertType::t2#0 = TYPEID_SIGNED_CHAR +Constant assertType::t1#1 = TYPEID_INT +Constant assertType::t2#1 = TYPEID_INT +Constant assertType::t1#2 = TYPEID_LONG +Constant assertType::t2#2 = TYPEID_LONG +Constant assertType::t1#3 = TYPEID_INT +Constant assertType::t2#3 = TYPEID_INT +Constant assertType::t1#4 = TYPEID_INT +Constant assertType::t2#4 = TYPEID_INT +Constant assertType::t1#5 = TYPEID_LONG +Constant assertType::t2#5 = TYPEID_LONG +Constant assertType::t1#6 = TYPEID_LONG +Constant assertType::t2#6 = TYPEID_LONG +Constant assertType::t1#7 = TYPEID_LONG +Constant assertType::t2#7 = TYPEID_LONG +Constant assertType::t1#8 = TYPEID_LONG +Constant assertType::t2#8 = TYPEID_LONG Constant idx#10 = $28 -Constant assertType::t1#9 = TYPEID_BYTE -Constant assertType::t2#9 = TYPEID_BYTE -Constant assertType::t1#10 = TYPEID_BYTE -Constant assertType::t2#10 = TYPEID_BYTE -Constant assertType::t1#11 = TYPEID_WORD -Constant assertType::t2#11 = TYPEID_WORD -Constant assertType::t1#12 = TYPEID_WORD -Constant assertType::t2#12 = TYPEID_WORD -Constant assertType::t1#13 = TYPEID_DWORD -Constant assertType::t2#13 = TYPEID_DWORD -Constant assertType::t1#14 = TYPEID_WORD -Constant assertType::t2#14 = TYPEID_WORD -Constant assertType::t1#15 = TYPEID_WORD -Constant assertType::t2#15 = TYPEID_WORD -Constant assertType::t1#16 = TYPEID_DWORD -Constant assertType::t2#16 = TYPEID_DWORD -Constant assertType::t1#17 = TYPEID_DWORD -Constant assertType::t2#17 = TYPEID_DWORD -Constant assertType::t1#18 = TYPEID_DWORD -Constant assertType::t2#18 = TYPEID_DWORD -Constant assertType::t1#19 = TYPEID_DWORD -Constant assertType::t2#19 = TYPEID_DWORD -Constant assertType::t1#20 = TYPEID_DWORD -Constant assertType::t2#20 = TYPEID_DWORD +Constant assertType::t1#9 = TYPEID_CHAR +Constant assertType::t2#9 = TYPEID_CHAR +Constant assertType::t1#10 = TYPEID_CHAR +Constant assertType::t2#10 = TYPEID_CHAR +Constant assertType::t1#11 = TYPEID_UNSIGNED_INT +Constant assertType::t2#11 = TYPEID_UNSIGNED_INT +Constant assertType::t1#12 = TYPEID_UNSIGNED_INT +Constant assertType::t2#12 = TYPEID_UNSIGNED_INT +Constant assertType::t1#13 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#13 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#14 = TYPEID_UNSIGNED_INT +Constant assertType::t2#14 = TYPEID_UNSIGNED_INT +Constant assertType::t1#15 = TYPEID_UNSIGNED_INT +Constant assertType::t2#15 = TYPEID_UNSIGNED_INT +Constant assertType::t1#16 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#16 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#17 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#17 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#18 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#18 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#19 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#19 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#20 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#20 = TYPEID_UNSIGNED_LONG Constant idx#23 = $50 -Constant assertType::t1#21 = TYPEID_BYTE -Constant assertType::t2#21 = TYPEID_BYTE -Constant assertType::t1#22 = TYPEID_BYTE -Constant assertType::t2#22 = TYPEID_BYTE -Constant assertType::t1#23 = TYPEID_BYTE -Constant assertType::t2#23 = TYPEID_BYTE -Constant assertType::t1#24 = TYPEID_WORD -Constant assertType::t2#24 = TYPEID_WORD -Constant assertType::t1#25 = TYPEID_WORD -Constant assertType::t2#25 = TYPEID_WORD -Constant assertType::t1#26 = TYPEID_DWORD -Constant assertType::t2#26 = TYPEID_DWORD -Constant assertType::t1#27 = TYPEID_WORD -Constant assertType::t2#27 = TYPEID_WORD -Constant assertType::t1#28 = TYPEID_WORD -Constant assertType::t2#28 = TYPEID_WORD -Constant assertType::t1#29 = TYPEID_WORD -Constant assertType::t2#29 = TYPEID_WORD -Constant assertType::t1#30 = TYPEID_DWORD -Constant assertType::t2#30 = TYPEID_DWORD -Constant assertType::t1#31 = TYPEID_DWORD -Constant assertType::t2#31 = TYPEID_DWORD -Constant assertType::t1#32 = TYPEID_DWORD -Constant assertType::t2#32 = TYPEID_DWORD -Constant assertType::t1#33 = TYPEID_DWORD -Constant assertType::t2#33 = TYPEID_DWORD -Constant assertType::t1#34 = TYPEID_SIGNED_DWORD -Constant assertType::t2#34 = TYPEID_DWORD +Constant assertType::t1#21 = TYPEID_CHAR +Constant assertType::t2#21 = TYPEID_CHAR +Constant assertType::t1#22 = TYPEID_CHAR +Constant assertType::t2#22 = TYPEID_CHAR +Constant assertType::t1#23 = TYPEID_CHAR +Constant assertType::t2#23 = TYPEID_CHAR +Constant assertType::t1#24 = TYPEID_UNSIGNED_INT +Constant assertType::t2#24 = TYPEID_UNSIGNED_INT +Constant assertType::t1#25 = TYPEID_UNSIGNED_INT +Constant assertType::t2#25 = TYPEID_UNSIGNED_INT +Constant assertType::t1#26 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#26 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#27 = TYPEID_UNSIGNED_INT +Constant assertType::t2#27 = TYPEID_UNSIGNED_INT +Constant assertType::t1#28 = TYPEID_UNSIGNED_INT +Constant assertType::t2#28 = TYPEID_UNSIGNED_INT +Constant assertType::t1#29 = TYPEID_UNSIGNED_INT +Constant assertType::t2#29 = TYPEID_UNSIGNED_INT +Constant assertType::t1#30 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#30 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#31 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#31 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#32 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#32 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#33 = TYPEID_UNSIGNED_LONG +Constant assertType::t2#33 = TYPEID_UNSIGNED_LONG +Constant assertType::t1#34 = TYPEID_LONG +Constant assertType::t2#34 = TYPEID_UNSIGNED_LONG Constant idx#41 = 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant idx#41 @@ -983,86 +983,86 @@ Inlining constant with var siblings assertType::t2#34 Inlining constant with var siblings idx#0 Inlining constant with var siblings idx#10 Inlining constant with var siblings idx#23 -Constant inlined assertType::t2#5 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#6 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#7 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#8 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#9 = TYPEID_BYTE -Constant inlined assertType::t2#31 = TYPEID_DWORD -Constant inlined assertType::t2#30 = TYPEID_DWORD -Constant inlined assertType::t1#21 = TYPEID_BYTE -Constant inlined assertType::t2#33 = TYPEID_DWORD -Constant inlined assertType::t1#20 = TYPEID_DWORD -Constant inlined assertType::t2#32 = TYPEID_DWORD -Constant inlined assertType::t1#23 = TYPEID_BYTE -Constant inlined assertType::t1#22 = TYPEID_BYTE -Constant inlined assertType::t2#34 = TYPEID_DWORD -Constant inlined assertType::t1#25 = TYPEID_WORD -Constant inlined assertType::t1#24 = TYPEID_WORD -Constant inlined assertType::t1#27 = TYPEID_WORD -Constant inlined assertType::t2#0 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t1#26 = TYPEID_DWORD -Constant inlined assertType::t2#1 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#29 = TYPEID_WORD +Constant inlined assertType::t2#5 = TYPEID_LONG +Constant inlined assertType::t2#6 = TYPEID_LONG +Constant inlined assertType::t2#7 = TYPEID_LONG +Constant inlined assertType::t2#8 = TYPEID_LONG +Constant inlined assertType::t2#9 = TYPEID_CHAR +Constant inlined assertType::t2#31 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#30 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#21 = TYPEID_CHAR +Constant inlined assertType::t2#33 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#20 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#32 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#23 = TYPEID_CHAR +Constant inlined assertType::t1#22 = TYPEID_CHAR +Constant inlined assertType::t2#34 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#25 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#24 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#27 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#0 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t1#26 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#1 = TYPEID_INT +Constant inlined assertType::t1#29 = TYPEID_UNSIGNED_INT Constant inlined idx#0 = 0 -Constant inlined assertType::t2#2 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#28 = TYPEID_WORD -Constant inlined assertType::t2#3 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#4 = TYPEID_SIGNED_WORD +Constant inlined assertType::t2#2 = TYPEID_LONG +Constant inlined assertType::t1#28 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#3 = TYPEID_INT +Constant inlined assertType::t2#4 = TYPEID_INT Constant inlined idx#23 = $50 -Constant inlined assertType::t2#20 = TYPEID_DWORD -Constant inlined assertType::t1#10 = TYPEID_BYTE -Constant inlined assertType::t2#22 = TYPEID_BYTE -Constant inlined assertType::t2#21 = TYPEID_BYTE -Constant inlined assertType::t1#12 = TYPEID_WORD -Constant inlined assertType::t2#24 = TYPEID_WORD -Constant inlined assertType::t1#11 = TYPEID_WORD -Constant inlined assertType::t2#23 = TYPEID_BYTE -Constant inlined assertType::t1#14 = TYPEID_WORD -Constant inlined assertType::t2#26 = TYPEID_DWORD -Constant inlined assertType::t1#13 = TYPEID_DWORD -Constant inlined assertType::t2#25 = TYPEID_WORD -Constant inlined assertType::t1#16 = TYPEID_DWORD -Constant inlined assertType::t2#28 = TYPEID_WORD -Constant inlined assertType::t1#15 = TYPEID_WORD -Constant inlined assertType::t2#27 = TYPEID_WORD -Constant inlined assertType::t1#18 = TYPEID_DWORD -Constant inlined assertType::t1#17 = TYPEID_DWORD -Constant inlined assertType::t2#29 = TYPEID_WORD -Constant inlined assertType::t1#19 = TYPEID_DWORD -Constant inlined assertType::t1#6 = TYPEID_SIGNED_DWORD +Constant inlined assertType::t2#20 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#10 = TYPEID_CHAR +Constant inlined assertType::t2#22 = TYPEID_CHAR +Constant inlined assertType::t2#21 = TYPEID_CHAR +Constant inlined assertType::t1#12 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#24 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#11 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#23 = TYPEID_CHAR +Constant inlined assertType::t1#14 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#26 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#13 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#25 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#16 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#28 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#15 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#27 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#18 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#17 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#29 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#19 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#6 = TYPEID_LONG Constant inlined idx#10 = $28 -Constant inlined assertType::t1#7 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#8 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#9 = TYPEID_BYTE -Constant inlined assertType::t2#11 = TYPEID_WORD -Constant inlined assertType::t2#10 = TYPEID_BYTE -Constant inlined assertType::t2#13 = TYPEID_DWORD -Constant inlined assertType::t2#12 = TYPEID_WORD -Constant inlined assertType::t2#15 = TYPEID_WORD -Constant inlined assertType::t2#14 = TYPEID_WORD -Constant inlined assertType::t1#0 = TYPEID_SIGNED_BYTE -Constant inlined assertType::t2#17 = TYPEID_DWORD -Constant inlined assertType::t1#1 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#16 = TYPEID_DWORD -Constant inlined assertType::t1#2 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t2#19 = TYPEID_DWORD -Constant inlined assertType::t1#3 = TYPEID_SIGNED_WORD -Constant inlined assertType::t2#18 = TYPEID_DWORD -Constant inlined assertType::t1#4 = TYPEID_SIGNED_WORD -Constant inlined assertType::t1#5 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#30 = TYPEID_DWORD -Constant inlined assertType::t1#32 = TYPEID_DWORD -Constant inlined assertType::t1#31 = TYPEID_DWORD -Constant inlined assertType::t1#34 = TYPEID_SIGNED_DWORD -Constant inlined assertType::t1#33 = TYPEID_DWORD +Constant inlined assertType::t1#7 = TYPEID_LONG +Constant inlined assertType::t1#8 = TYPEID_LONG +Constant inlined assertType::t1#9 = TYPEID_CHAR +Constant inlined assertType::t2#11 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#10 = TYPEID_CHAR +Constant inlined assertType::t2#13 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t2#12 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#15 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t2#14 = TYPEID_UNSIGNED_INT +Constant inlined assertType::t1#0 = TYPEID_SIGNED_CHAR +Constant inlined assertType::t2#17 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#1 = TYPEID_INT +Constant inlined assertType::t2#16 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#2 = TYPEID_LONG +Constant inlined assertType::t2#19 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#3 = TYPEID_INT +Constant inlined assertType::t2#18 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#4 = TYPEID_INT +Constant inlined assertType::t1#5 = TYPEID_LONG +Constant inlined assertType::t1#30 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#32 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#31 = TYPEID_UNSIGNED_LONG +Constant inlined assertType::t1#34 = TYPEID_LONG +Constant inlined assertType::t1#33 = TYPEID_UNSIGNED_LONG Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@9 @@ -1147,153 +1147,153 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call assertType + [1] call assertType to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call assertType + [3] call assertType to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call assertType + [5] call assertType to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call assertType + [7] call assertType to:main::@4 main::@4: scope:[main] from main::@3 [8] phi() - [9] call assertType + [9] call assertType to:main::@5 main::@5: scope:[main] from main::@4 [10] phi() - [11] call assertType + [11] call assertType to:main::@6 main::@6: scope:[main] from main::@5 [12] phi() - [13] call assertType + [13] call assertType to:main::@7 main::@7: scope:[main] from main::@6 [14] phi() - [15] call assertType + [15] call assertType to:main::@8 main::@8: scope:[main] from main::@7 [16] phi() - [17] call assertType + [17] call assertType to:main::@9 main::@9: scope:[main] from main::@8 [18] phi() - [19] call assertType + [19] call assertType to:main::@10 main::@10: scope:[main] from main::@9 [20] phi() - [21] call assertType + [21] call assertType to:main::@11 main::@11: scope:[main] from main::@10 [22] phi() - [23] call assertType + [23] call assertType to:main::@12 main::@12: scope:[main] from main::@11 [24] phi() - [25] call assertType + [25] call assertType to:main::@13 main::@13: scope:[main] from main::@12 [26] phi() - [27] call assertType + [27] call assertType to:main::@14 main::@14: scope:[main] from main::@13 [28] phi() - [29] call assertType + [29] call assertType to:main::@15 main::@15: scope:[main] from main::@14 [30] phi() - [31] call assertType + [31] call assertType to:main::@16 main::@16: scope:[main] from main::@15 [32] phi() - [33] call assertType + [33] call assertType to:main::@17 main::@17: scope:[main] from main::@16 [34] phi() - [35] call assertType + [35] call assertType to:main::@18 main::@18: scope:[main] from main::@17 [36] phi() - [37] call assertType + [37] call assertType to:main::@19 main::@19: scope:[main] from main::@18 [38] phi() - [39] call assertType + [39] call assertType to:main::@20 main::@20: scope:[main] from main::@19 [40] phi() - [41] call assertType + [41] call assertType to:main::@21 main::@21: scope:[main] from main::@20 [42] phi() - [43] call assertType + [43] call assertType to:main::@22 main::@22: scope:[main] from main::@21 [44] phi() - [45] call assertType + [45] call assertType to:main::@23 main::@23: scope:[main] from main::@22 [46] phi() - [47] call assertType + [47] call assertType to:main::@24 main::@24: scope:[main] from main::@23 [48] phi() - [49] call assertType + [49] call assertType to:main::@25 main::@25: scope:[main] from main::@24 [50] phi() - [51] call assertType + [51] call assertType to:main::@26 main::@26: scope:[main] from main::@25 [52] phi() - [53] call assertType + [53] call assertType to:main::@27 main::@27: scope:[main] from main::@26 [54] phi() - [55] call assertType + [55] call assertType to:main::@28 main::@28: scope:[main] from main::@27 [56] phi() - [57] call assertType + [57] call assertType to:main::@29 main::@29: scope:[main] from main::@28 [58] phi() - [59] call assertType + [59] call assertType to:main::@30 main::@30: scope:[main] from main::@29 [60] phi() - [61] call assertType + [61] call assertType to:main::@31 main::@31: scope:[main] from main::@30 [62] phi() - [63] call assertType + [63] call assertType to:main::@32 main::@32: scope:[main] from main::@31 [64] phi() - [65] call assertType + [65] call assertType to:main::@33 main::@33: scope:[main] from main::@32 [66] phi() - [67] call assertType + [67] call assertType to:main::@34 main::@34: scope:[main] from main::@33 [68] phi() - [69] call assertType + [69] call assertType to:main::@return main::@return: scope:[main] from main::@34 [70] return to:@return -void assertType(byte assertType::t1 , byte assertType::t2) +void assertType(char t1 , char t2) assertType: scope:[assertType] from main main::@1 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@28 main::@29 main::@3 main::@30 main::@31 main::@32 main::@33 main::@34 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [71] idx#80 = phi( main/0, main::@1/idx#39, main::@10/idx#39, main::@11/idx#39, main::@12/idx#39, main::@13/idx#39, main::@14/idx#39, main::@15/idx#39, main::@16/idx#39, main::@17/idx#39, main::@18/idx#39, main::@19/idx#39, main::@2/idx#39, main::@20/idx#39, main::@21/$50, main::@22/idx#39, main::@23/idx#39, main::@24/idx#39, main::@25/idx#39, main::@26/idx#39, main::@27/idx#39, main::@28/idx#39, main::@29/idx#39, main::@3/idx#39, main::@30/idx#39, main::@31/idx#39, main::@32/idx#39, main::@33/idx#39, main::@34/idx#39, main::@4/idx#39, main::@5/idx#39, main::@6/idx#39, main::@7/idx#39, main::@8/idx#39, main::@9/$28 ) - [71] assertType::t2#35 = phi( main/TYPEID_SIGNED_BYTE, main::@1/TYPEID_SIGNED_WORD, main::@10/TYPEID_BYTE, main::@11/TYPEID_WORD, main::@12/TYPEID_WORD, main::@13/TYPEID_DWORD, main::@14/TYPEID_WORD, main::@15/TYPEID_WORD, main::@16/TYPEID_DWORD, main::@17/TYPEID_DWORD, main::@18/TYPEID_DWORD, main::@19/TYPEID_DWORD, main::@2/TYPEID_SIGNED_DWORD, main::@20/TYPEID_DWORD, main::@21/TYPEID_BYTE, main::@22/TYPEID_BYTE, main::@23/TYPEID_BYTE, main::@24/TYPEID_WORD, main::@25/TYPEID_WORD, main::@26/TYPEID_DWORD, main::@27/TYPEID_WORD, main::@28/TYPEID_WORD, main::@29/TYPEID_WORD, main::@3/TYPEID_SIGNED_WORD, main::@30/TYPEID_DWORD, main::@31/TYPEID_DWORD, main::@32/TYPEID_DWORD, main::@33/TYPEID_DWORD, main::@34/TYPEID_DWORD, main::@4/TYPEID_SIGNED_WORD, main::@5/TYPEID_SIGNED_DWORD, main::@6/TYPEID_SIGNED_DWORD, main::@7/TYPEID_SIGNED_DWORD, main::@8/TYPEID_SIGNED_DWORD, main::@9/TYPEID_BYTE ) - [71] assertType::t1#35 = phi( main/TYPEID_SIGNED_BYTE, main::@1/TYPEID_SIGNED_WORD, main::@10/TYPEID_BYTE, main::@11/TYPEID_WORD, main::@12/TYPEID_WORD, main::@13/TYPEID_DWORD, main::@14/TYPEID_WORD, main::@15/TYPEID_WORD, main::@16/TYPEID_DWORD, main::@17/TYPEID_DWORD, main::@18/TYPEID_DWORD, main::@19/TYPEID_DWORD, main::@2/TYPEID_SIGNED_DWORD, main::@20/TYPEID_DWORD, main::@21/TYPEID_BYTE, main::@22/TYPEID_BYTE, main::@23/TYPEID_BYTE, main::@24/TYPEID_WORD, main::@25/TYPEID_WORD, main::@26/TYPEID_DWORD, main::@27/TYPEID_WORD, main::@28/TYPEID_WORD, main::@29/TYPEID_WORD, main::@3/TYPEID_SIGNED_WORD, main::@30/TYPEID_DWORD, main::@31/TYPEID_DWORD, main::@32/TYPEID_DWORD, main::@33/TYPEID_DWORD, main::@34/TYPEID_SIGNED_DWORD, main::@4/TYPEID_SIGNED_WORD, main::@5/TYPEID_SIGNED_DWORD, main::@6/TYPEID_SIGNED_DWORD, main::@7/TYPEID_SIGNED_DWORD, main::@8/TYPEID_SIGNED_DWORD, main::@9/TYPEID_BYTE ) + [71] assertType::t2#35 = phi( main/TYPEID_SIGNED_CHAR, main::@1/TYPEID_INT, main::@10/TYPEID_CHAR, main::@11/TYPEID_UNSIGNED_INT, main::@12/TYPEID_UNSIGNED_INT, main::@13/TYPEID_UNSIGNED_LONG, main::@14/TYPEID_UNSIGNED_INT, main::@15/TYPEID_UNSIGNED_INT, main::@16/TYPEID_UNSIGNED_LONG, main::@17/TYPEID_UNSIGNED_LONG, main::@18/TYPEID_UNSIGNED_LONG, main::@19/TYPEID_UNSIGNED_LONG, main::@2/TYPEID_LONG, main::@20/TYPEID_UNSIGNED_LONG, main::@21/TYPEID_CHAR, main::@22/TYPEID_CHAR, main::@23/TYPEID_CHAR, main::@24/TYPEID_UNSIGNED_INT, main::@25/TYPEID_UNSIGNED_INT, main::@26/TYPEID_UNSIGNED_LONG, main::@27/TYPEID_UNSIGNED_INT, main::@28/TYPEID_UNSIGNED_INT, main::@29/TYPEID_UNSIGNED_INT, main::@3/TYPEID_INT, main::@30/TYPEID_UNSIGNED_LONG, main::@31/TYPEID_UNSIGNED_LONG, main::@32/TYPEID_UNSIGNED_LONG, main::@33/TYPEID_UNSIGNED_LONG, main::@34/TYPEID_UNSIGNED_LONG, main::@4/TYPEID_INT, main::@5/TYPEID_LONG, main::@6/TYPEID_LONG, main::@7/TYPEID_LONG, main::@8/TYPEID_LONG, main::@9/TYPEID_CHAR ) + [71] assertType::t1#35 = phi( main/TYPEID_SIGNED_CHAR, main::@1/TYPEID_INT, main::@10/TYPEID_CHAR, main::@11/TYPEID_UNSIGNED_INT, main::@12/TYPEID_UNSIGNED_INT, main::@13/TYPEID_UNSIGNED_LONG, main::@14/TYPEID_UNSIGNED_INT, main::@15/TYPEID_UNSIGNED_INT, main::@16/TYPEID_UNSIGNED_LONG, main::@17/TYPEID_UNSIGNED_LONG, main::@18/TYPEID_UNSIGNED_LONG, main::@19/TYPEID_UNSIGNED_LONG, main::@2/TYPEID_LONG, main::@20/TYPEID_UNSIGNED_LONG, main::@21/TYPEID_CHAR, main::@22/TYPEID_CHAR, main::@23/TYPEID_CHAR, main::@24/TYPEID_UNSIGNED_INT, main::@25/TYPEID_UNSIGNED_INT, main::@26/TYPEID_UNSIGNED_LONG, main::@27/TYPEID_UNSIGNED_INT, main::@28/TYPEID_UNSIGNED_INT, main::@29/TYPEID_UNSIGNED_INT, main::@3/TYPEID_INT, main::@30/TYPEID_UNSIGNED_LONG, main::@31/TYPEID_UNSIGNED_LONG, main::@32/TYPEID_UNSIGNED_LONG, main::@33/TYPEID_UNSIGNED_LONG, main::@34/TYPEID_LONG, main::@4/TYPEID_INT, main::@5/TYPEID_LONG, main::@6/TYPEID_LONG, main::@7/TYPEID_LONG, main::@8/TYPEID_LONG, main::@9/TYPEID_CHAR ) [72] if(assertType::t1#35==assertType::t2#35) goto assertType::@1 to:assertType::@3 assertType::@3: scope:[assertType] from assertType @@ -1312,14 +1312,14 @@ assertType::@1: scope:[assertType] from assertType VARIABLE REGISTER WEIGHTS -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#35 5.5 -byte assertType::t2 -byte assertType::t2#35 11.0 -byte idx -byte idx#39 1.1363636363636358 -byte idx#80 21.600000000000005 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#35 // 5.5 +char assertType::t2 +char assertType::t2#35 // 11.0 +char idx +char idx#39 // 1.1363636363636358 +char idx#80 // 21.600000000000005 void main() Initial phi equivalence classes @@ -1372,12 +1372,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_SIGNED_DWORD = 6 - .const TYPEID_BYTE = 1 - .const TYPEID_WORD = 3 - .const TYPEID_DWORD = 5 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_INT = 4 + .const TYPEID_LONG = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_UNSIGNED_LONG = 5 .const RED = 2 .const GREEN = 5 .label SCREEN = $400 @@ -1385,528 +1385,528 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call assertType + // [1] call assertType // [71] phi from main to assertType [phi:main->assertType] assertType_from_main: // [71] phi idx#80 = 0 [phi:main->assertType#0] -- vbuxx=vbuc1 ldx #0 - // [71] phi assertType::t2#35 = TYPEID_SIGNED_BYTE [phi:main->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_BYTE + // [71] phi assertType::t2#35 = TYPEID_SIGNED_CHAR [phi:main->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_BYTE [phi:main->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_BYTE + // [71] phi assertType::t1#35 = TYPEID_SIGNED_CHAR [phi:main->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_SIGNED_CHAR jsr assertType // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call assertType + // [3] call assertType // [71] phi from main::@1 to assertType [phi:main::@1->assertType] assertType_from___b1: // [71] phi idx#80 = idx#39 [phi:main::@1->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_WORD [phi:main::@1->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [71] phi assertType::t2#35 = TYPEID_INT [phi:main::@1->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_WORD [phi:main::@1->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [71] phi assertType::t1#35 = TYPEID_INT [phi:main::@1->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: jmp __b2 // main::@2 __b2: - // [5] call assertType + // [5] call assertType // [71] phi from main::@2 to assertType [phi:main::@2->assertType] assertType_from___b2: // [71] phi idx#80 = idx#39 [phi:main::@2->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@2->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@2->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@2->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@2->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [7] call assertType + // [7] call assertType // [71] phi from main::@3 to assertType [phi:main::@3->assertType] assertType_from___b3: // [71] phi idx#80 = idx#39 [phi:main::@3->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_WORD [phi:main::@3->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [71] phi assertType::t2#35 = TYPEID_INT [phi:main::@3->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_WORD [phi:main::@3->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [71] phi assertType::t1#35 = TYPEID_INT [phi:main::@3->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [9] call assertType + // [9] call assertType // [71] phi from main::@4 to assertType [phi:main::@4->assertType] assertType_from___b4: // [71] phi idx#80 = idx#39 [phi:main::@4->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_WORD [phi:main::@4->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [71] phi assertType::t2#35 = TYPEID_INT [phi:main::@4->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_WORD [phi:main::@4->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_WORD + // [71] phi assertType::t1#35 = TYPEID_INT [phi:main::@4->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_INT jsr assertType // [10] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: jmp __b5 // main::@5 __b5: - // [11] call assertType + // [11] call assertType // [71] phi from main::@5 to assertType [phi:main::@5->assertType] assertType_from___b5: // [71] phi idx#80 = idx#39 [phi:main::@5->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@5->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@5->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@5->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@5->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [12] phi from main::@5 to main::@6 [phi:main::@5->main::@6] __b6_from___b5: jmp __b6 // main::@6 __b6: - // [13] call assertType + // [13] call assertType // [71] phi from main::@6 to assertType [phi:main::@6->assertType] assertType_from___b6: // [71] phi idx#80 = idx#39 [phi:main::@6->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@6->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@6->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@6->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@6->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [14] phi from main::@6 to main::@7 [phi:main::@6->main::@7] __b7_from___b6: jmp __b7 // main::@7 __b7: - // [15] call assertType + // [15] call assertType // [71] phi from main::@7 to assertType [phi:main::@7->assertType] assertType_from___b7: // [71] phi idx#80 = idx#39 [phi:main::@7->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@7->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@7->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@7->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@7->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [16] phi from main::@7 to main::@8 [phi:main::@7->main::@8] __b8_from___b7: jmp __b8 // main::@8 __b8: - // [17] call assertType + // [17] call assertType // [71] phi from main::@8 to assertType [phi:main::@8->assertType] assertType_from___b8: // [71] phi idx#80 = idx#39 [phi:main::@8->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@8->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@8->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@8->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@8->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // [18] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [19] call assertType + // [19] call assertType // [71] phi from main::@9 to assertType [phi:main::@9->assertType] assertType_from___b9: // [71] phi idx#80 = $28 [phi:main::@9->assertType#0] -- vbuxx=vbuc1 ldx #$28 - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@9->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@9->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@9->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@9->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [20] phi from main::@9 to main::@10 [phi:main::@9->main::@10] __b10_from___b9: jmp __b10 // main::@10 __b10: - // [21] call assertType + // [21] call assertType // [71] phi from main::@10 to assertType [phi:main::@10->assertType] assertType_from___b10: // [71] phi idx#80 = idx#39 [phi:main::@10->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@10->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@10->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@10->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@10->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [22] phi from main::@10 to main::@11 [phi:main::@10->main::@11] __b11_from___b10: jmp __b11 // main::@11 __b11: - // [23] call assertType + // [23] call assertType // [71] phi from main::@11 to assertType [phi:main::@11->assertType] assertType_from___b11: // [71] phi idx#80 = idx#39 [phi:main::@11->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@11->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@11->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@11->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@11->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [24] phi from main::@11 to main::@12 [phi:main::@11->main::@12] __b12_from___b11: jmp __b12 // main::@12 __b12: - // [25] call assertType + // [25] call assertType // [71] phi from main::@12 to assertType [phi:main::@12->assertType] assertType_from___b12: // [71] phi idx#80 = idx#39 [phi:main::@12->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@12->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@12->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@12->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@12->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [26] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [27] call assertType + // [27] call assertType // [71] phi from main::@13 to assertType [phi:main::@13->assertType] assertType_from___b13: // [71] phi idx#80 = idx#39 [phi:main::@13->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@13->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@13->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@13->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@13->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [28] phi from main::@13 to main::@14 [phi:main::@13->main::@14] __b14_from___b13: jmp __b14 // main::@14 __b14: - // [29] call assertType + // [29] call assertType // [71] phi from main::@14 to assertType [phi:main::@14->assertType] assertType_from___b14: // [71] phi idx#80 = idx#39 [phi:main::@14->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@14->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@14->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@14->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@14->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [30] phi from main::@14 to main::@15 [phi:main::@14->main::@15] __b15_from___b14: jmp __b15 // main::@15 __b15: - // [31] call assertType + // [31] call assertType // [71] phi from main::@15 to assertType [phi:main::@15->assertType] assertType_from___b15: // [71] phi idx#80 = idx#39 [phi:main::@15->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@15->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@15->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@15->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@15->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [32] phi from main::@15 to main::@16 [phi:main::@15->main::@16] __b16_from___b15: jmp __b16 // main::@16 __b16: - // [33] call assertType + // [33] call assertType // [71] phi from main::@16 to assertType [phi:main::@16->assertType] assertType_from___b16: // [71] phi idx#80 = idx#39 [phi:main::@16->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@16->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@16->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@16->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@16->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [34] phi from main::@16 to main::@17 [phi:main::@16->main::@17] __b17_from___b16: jmp __b17 // main::@17 __b17: - // [35] call assertType + // [35] call assertType // [71] phi from main::@17 to assertType [phi:main::@17->assertType] assertType_from___b17: // [71] phi idx#80 = idx#39 [phi:main::@17->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@17->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@17->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@17->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@17->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [36] phi from main::@17 to main::@18 [phi:main::@17->main::@18] __b18_from___b17: jmp __b18 // main::@18 __b18: - // [37] call assertType + // [37] call assertType // [71] phi from main::@18 to assertType [phi:main::@18->assertType] assertType_from___b18: // [71] phi idx#80 = idx#39 [phi:main::@18->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@18->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@18->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@18->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@18->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [38] phi from main::@18 to main::@19 [phi:main::@18->main::@19] __b19_from___b18: jmp __b19 // main::@19 __b19: - // [39] call assertType + // [39] call assertType // [71] phi from main::@19 to assertType [phi:main::@19->assertType] assertType_from___b19: // [71] phi idx#80 = idx#39 [phi:main::@19->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@19->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@19->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@19->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@19->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [40] phi from main::@19 to main::@20 [phi:main::@19->main::@20] __b20_from___b19: jmp __b20 // main::@20 __b20: - // [41] call assertType + // [41] call assertType // [71] phi from main::@20 to assertType [phi:main::@20->assertType] assertType_from___b20: // [71] phi idx#80 = idx#39 [phi:main::@20->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@20->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@20->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@20->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@20->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [42] phi from main::@20 to main::@21 [phi:main::@20->main::@21] __b21_from___b20: jmp __b21 // main::@21 __b21: - // [43] call assertType + // [43] call assertType // [71] phi from main::@21 to assertType [phi:main::@21->assertType] assertType_from___b21: // [71] phi idx#80 = $50 [phi:main::@21->assertType#0] -- vbuxx=vbuc1 ldx #$50 - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@21->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@21->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@21->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@21->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [44] phi from main::@21 to main::@22 [phi:main::@21->main::@22] __b22_from___b21: jmp __b22 // main::@22 __b22: - // [45] call assertType + // [45] call assertType // [71] phi from main::@22 to assertType [phi:main::@22->assertType] assertType_from___b22: // [71] phi idx#80 = idx#39 [phi:main::@22->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@22->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@22->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@22->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@22->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [46] phi from main::@22 to main::@23 [phi:main::@22->main::@23] __b23_from___b22: jmp __b23 // main::@23 __b23: - // [47] call assertType + // [47] call assertType // [71] phi from main::@23 to assertType [phi:main::@23->assertType] assertType_from___b23: // [71] phi idx#80 = idx#39 [phi:main::@23->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@23->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@23->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@23->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_BYTE + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@23->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_CHAR jsr assertType // [48] phi from main::@23 to main::@24 [phi:main::@23->main::@24] __b24_from___b23: jmp __b24 // main::@24 __b24: - // [49] call assertType + // [49] call assertType // [71] phi from main::@24 to assertType [phi:main::@24->assertType] assertType_from___b24: // [71] phi idx#80 = idx#39 [phi:main::@24->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@24->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@24->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@24->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@24->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [50] phi from main::@24 to main::@25 [phi:main::@24->main::@25] __b25_from___b24: jmp __b25 // main::@25 __b25: - // [51] call assertType + // [51] call assertType // [71] phi from main::@25 to assertType [phi:main::@25->assertType] assertType_from___b25: // [71] phi idx#80 = idx#39 [phi:main::@25->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@25->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@25->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@25->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@25->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [52] phi from main::@25 to main::@26 [phi:main::@25->main::@26] __b26_from___b25: jmp __b26 // main::@26 __b26: - // [53] call assertType + // [53] call assertType // [71] phi from main::@26 to assertType [phi:main::@26->assertType] assertType_from___b26: // [71] phi idx#80 = idx#39 [phi:main::@26->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@26->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@26->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@26->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@26->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [54] phi from main::@26 to main::@27 [phi:main::@26->main::@27] __b27_from___b26: jmp __b27 // main::@27 __b27: - // [55] call assertType + // [55] call assertType // [71] phi from main::@27 to assertType [phi:main::@27->assertType] assertType_from___b27: // [71] phi idx#80 = idx#39 [phi:main::@27->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@27->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@27->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@27->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@27->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [56] phi from main::@27 to main::@28 [phi:main::@27->main::@28] __b28_from___b27: jmp __b28 // main::@28 __b28: - // [57] call assertType + // [57] call assertType // [71] phi from main::@28 to assertType [phi:main::@28->assertType] assertType_from___b28: // [71] phi idx#80 = idx#39 [phi:main::@28->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@28->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@28->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@28->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@28->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [58] phi from main::@28 to main::@29 [phi:main::@28->main::@29] __b29_from___b28: jmp __b29 // main::@29 __b29: - // [59] call assertType + // [59] call assertType // [71] phi from main::@29 to assertType [phi:main::@29->assertType] assertType_from___b29: // [71] phi idx#80 = idx#39 [phi:main::@29->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@29->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@29->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@29->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_WORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@29->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_INT jsr assertType // [60] phi from main::@29 to main::@30 [phi:main::@29->main::@30] __b30_from___b29: jmp __b30 // main::@30 __b30: - // [61] call assertType + // [61] call assertType // [71] phi from main::@30 to assertType [phi:main::@30->assertType] assertType_from___b30: // [71] phi idx#80 = idx#39 [phi:main::@30->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@30->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@30->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@30->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@30->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [62] phi from main::@30 to main::@31 [phi:main::@30->main::@31] __b31_from___b30: jmp __b31 // main::@31 __b31: - // [63] call assertType + // [63] call assertType // [71] phi from main::@31 to assertType [phi:main::@31->assertType] assertType_from___b31: // [71] phi idx#80 = idx#39 [phi:main::@31->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@31->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@31->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@31->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@31->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [64] phi from main::@31 to main::@32 [phi:main::@31->main::@32] __b32_from___b31: jmp __b32 // main::@32 __b32: - // [65] call assertType + // [65] call assertType // [71] phi from main::@32 to assertType [phi:main::@32->assertType] assertType_from___b32: // [71] phi idx#80 = idx#39 [phi:main::@32->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@32->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@32->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@32->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@32->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [66] phi from main::@32 to main::@33 [phi:main::@32->main::@33] __b33_from___b32: jmp __b33 // main::@33 __b33: - // [67] call assertType + // [67] call assertType // [71] phi from main::@33 to assertType [phi:main::@33->assertType] assertType_from___b33: // [71] phi idx#80 = idx#39 [phi:main::@33->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@33->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@33->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@33->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_DWORD + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@33->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_UNSIGNED_LONG jsr assertType // [68] phi from main::@33 to main::@34 [phi:main::@33->main::@34] __b34_from___b33: jmp __b34 // main::@34 __b34: - // [69] call assertType + // [69] call assertType // [71] phi from main::@34 to assertType [phi:main::@34->assertType] assertType_from___b34: // [71] phi idx#80 = idx#39 [phi:main::@34->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@34->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@34->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@34->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@34->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType jmp __breturn // main::@return @@ -1918,7 +1918,7 @@ main: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(Y) t1, byte zp(2) t2) +// void assertType(__register(Y) char t1, __zp(2) char t2) assertType: { .label t2 = 2 // [72] if(assertType::t1#35==assertType::t2#35) goto assertType::@1 -- vbuyy_eq_vbuz1_then_la1 @@ -1993,40 +1993,40 @@ Removing instruction jmp __b3 Removing instruction jmp __b2 Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Replacing instruction ldy #TYPEID_SIGNED_BYTE with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_WORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_SIGNED_DWORD with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_BYTE with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_WORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY -Replacing instruction ldy #TYPEID_DWORD with TAY +Replacing instruction ldy #TYPEID_SIGNED_CHAR with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_INT with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_LONG with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_CHAR with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_INT with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY +Replacing instruction ldy #TYPEID_UNSIGNED_LONG with TAY Removing instruction __b1_from_main: Removing instruction assertType_from___b1: Removing instruction __b2_from___b1: @@ -2137,24 +2137,24 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#35 reg byte y 5.5 -byte assertType::t2 -byte assertType::t2#35 t2 zp[1]:2 11.0 -byte idx -byte idx#39 reg byte x 1.1363636363636358 -byte idx#80 reg byte x 21.600000000000005 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#35 // reg byte y 5.5 +char assertType::t2 +char assertType::t2#35 // t2 zp[1]:2 11.0 +char idx +char idx#39 // reg byte x 1.1363636363636358 +char idx#80 // reg byte x 21.600000000000005 void main() reg byte y [ assertType::t1#35 ] @@ -2178,12 +2178,12 @@ Score: 506 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_SIGNED_DWORD = 6 - .const TYPEID_BYTE = 1 - .const TYPEID_WORD = 3 - .const TYPEID_DWORD = 5 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_INT = 4 + .const TYPEID_LONG = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_UNSIGNED_LONG = 5 .const RED = 2 .const GREEN = 5 .label SCREEN = $400 @@ -2192,425 +2192,425 @@ Score: 506 // main main: { // assertType(typeid(12sb+12), typeid(signed byte)) - // [1] call assertType + // [1] call assertType // [71] phi from main to assertType [phi:main->assertType] // [71] phi idx#80 = 0 [phi:main->assertType#0] -- vbuxx=vbuc1 ldx #0 - // [71] phi assertType::t2#35 = TYPEID_SIGNED_BYTE [phi:main->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_BYTE + // [71] phi assertType::t2#35 = TYPEID_SIGNED_CHAR [phi:main->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_SIGNED_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_BYTE [phi:main->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_SIGNED_CHAR [phi:main->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // assertType(typeid(12sb+130), typeid(signed word)) - // [3] call assertType + // [3] call assertType // [71] phi from main::@1 to assertType [phi:main::@1->assertType] // [71] phi idx#80 = idx#39 [phi:main::@1->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_WORD [phi:main::@1->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [71] phi assertType::t2#35 = TYPEID_INT [phi:main::@1->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_WORD [phi:main::@1->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_INT [phi:main::@1->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // assertType(typeid(12sb+33000), typeid(signed dword)) - // [5] call assertType + // [5] call assertType // [71] phi from main::@2 to assertType [phi:main::@2->assertType] // [71] phi idx#80 = idx#39 [phi:main::@2->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@2->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@2->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@2->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@2->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // assertType(typeid(12sw+12), typeid(signed word)) - // [7] call assertType + // [7] call assertType // [71] phi from main::@3 to assertType [phi:main::@3->assertType] // [71] phi idx#80 = idx#39 [phi:main::@3->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_WORD [phi:main::@3->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [71] phi assertType::t2#35 = TYPEID_INT [phi:main::@3->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_WORD [phi:main::@3->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_INT [phi:main::@3->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // assertType(typeid(12sw+130), typeid(signed word)) - // [9] call assertType + // [9] call assertType // [71] phi from main::@4 to assertType [phi:main::@4->assertType] // [71] phi idx#80 = idx#39 [phi:main::@4->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_WORD [phi:main::@4->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_WORD + // [71] phi assertType::t2#35 = TYPEID_INT [phi:main::@4->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_WORD [phi:main::@4->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_INT [phi:main::@4->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [10] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // assertType(typeid(12sw+100000), typeid(signed dword)) - // [11] call assertType + // [11] call assertType // [71] phi from main::@5 to assertType [phi:main::@5->assertType] // [71] phi idx#80 = idx#39 [phi:main::@5->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@5->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@5->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@5->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@5->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [12] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // assertType(typeid(12sd+12), typeid(signed dword)) - // [13] call assertType + // [13] call assertType // [71] phi from main::@6 to assertType [phi:main::@6->assertType] // [71] phi idx#80 = idx#39 [phi:main::@6->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@6->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@6->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@6->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@6->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [14] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // assertType(typeid(12sd+130), typeid(signed dword)) - // [15] call assertType + // [15] call assertType // [71] phi from main::@7 to assertType [phi:main::@7->assertType] // [71] phi idx#80 = idx#39 [phi:main::@7->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@7->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@7->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@7->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@7->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [16] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // assertType(typeid(12sd+100000), typeid(signed dword)) - // [17] call assertType + // [17] call assertType // [71] phi from main::@8 to assertType [phi:main::@8->assertType] // [71] phi idx#80 = idx#39 [phi:main::@8->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_SIGNED_DWORD [phi:main::@8->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_SIGNED_DWORD + // [71] phi assertType::t2#35 = TYPEID_LONG [phi:main::@8->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@8->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@8->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [18] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // assertType(typeid(12ub+12), typeid(unsigned byte)) - // [19] call assertType + // [19] call assertType // [71] phi from main::@9 to assertType [phi:main::@9->assertType] // [71] phi idx#80 = $28 [phi:main::@9->assertType#0] -- vbuxx=vbuc1 ldx #$28 - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@9->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@9->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@9->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@9->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [20] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // assertType(typeid(12ub+250), typeid(unsigned byte)) - // [21] call assertType + // [21] call assertType // [71] phi from main::@10 to assertType [phi:main::@10->assertType] // [71] phi idx#80 = idx#39 [phi:main::@10->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@10->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@10->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@10->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@10->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [22] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // assertType(typeid(12ub+300), typeid(unsigned word)) - // [23] call assertType + // [23] call assertType // [71] phi from main::@11 to assertType [phi:main::@11->assertType] // [71] phi idx#80 = idx#39 [phi:main::@11->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@11->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@11->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@11->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@11->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [24] phi from main::@11 to main::@12 [phi:main::@11->main::@12] // main::@12 // assertType(typeid(12ub+65534), typeid(unsigned word)) - // [25] call assertType + // [25] call assertType // [71] phi from main::@12 to assertType [phi:main::@12->assertType] // [71] phi idx#80 = idx#39 [phi:main::@12->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@12->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@12->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@12->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@12->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [26] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // assertType(typeid(12ub+66000), typeid(unsigned dword)) - // [27] call assertType + // [27] call assertType // [71] phi from main::@13 to assertType [phi:main::@13->assertType] // [71] phi idx#80 = idx#39 [phi:main::@13->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@13->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@13->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@13->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@13->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [28] phi from main::@13 to main::@14 [phi:main::@13->main::@14] // main::@14 // assertType(typeid(12uw+12), typeid(unsigned word)) - // [29] call assertType + // [29] call assertType // [71] phi from main::@14 to assertType [phi:main::@14->assertType] // [71] phi idx#80 = idx#39 [phi:main::@14->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@14->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@14->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@14->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@14->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [30] phi from main::@14 to main::@15 [phi:main::@14->main::@15] // main::@15 // assertType(typeid(12uw+130), typeid(unsigned word)) - // [31] call assertType + // [31] call assertType // [71] phi from main::@15 to assertType [phi:main::@15->assertType] // [71] phi idx#80 = idx#39 [phi:main::@15->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@15->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@15->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@15->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@15->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [32] phi from main::@15 to main::@16 [phi:main::@15->main::@16] // main::@16 // assertType(typeid(12uw+66000), typeid(unsigned dword)) - // [33] call assertType + // [33] call assertType // [71] phi from main::@16 to assertType [phi:main::@16->assertType] // [71] phi idx#80 = idx#39 [phi:main::@16->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@16->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@16->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@16->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@16->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [34] phi from main::@16 to main::@17 [phi:main::@16->main::@17] // main::@17 // assertType(typeid(12ud+12), typeid(unsigned dword)) - // [35] call assertType + // [35] call assertType // [71] phi from main::@17 to assertType [phi:main::@17->assertType] // [71] phi idx#80 = idx#39 [phi:main::@17->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@17->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@17->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@17->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@17->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [36] phi from main::@17 to main::@18 [phi:main::@17->main::@18] // main::@18 // assertType(typeid(12ud+130), typeid(unsigned dword)) - // [37] call assertType + // [37] call assertType // [71] phi from main::@18 to assertType [phi:main::@18->assertType] // [71] phi idx#80 = idx#39 [phi:main::@18->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@18->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@18->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@18->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@18->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [38] phi from main::@18 to main::@19 [phi:main::@18->main::@19] // main::@19 // assertType(typeid(12ud+66000), typeid(unsigned dword)) - // [39] call assertType + // [39] call assertType // [71] phi from main::@19 to assertType [phi:main::@19->assertType] // [71] phi idx#80 = idx#39 [phi:main::@19->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@19->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@19->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@19->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@19->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [40] phi from main::@19 to main::@20 [phi:main::@19->main::@20] // main::@20 // assertType(typeid(12ub+3000000000), typeid(unsigned dword)) - // [41] call assertType + // [41] call assertType // [71] phi from main::@20 to assertType [phi:main::@20->assertType] // [71] phi idx#80 = idx#39 [phi:main::@20->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@20->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@20->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@20->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@20->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [42] phi from main::@20 to main::@21 [phi:main::@20->main::@21] // main::@21 // assertType(typeid(12ub+-12), typeid(unsigned byte)) - // [43] call assertType + // [43] call assertType // [71] phi from main::@21 to assertType [phi:main::@21->assertType] // [71] phi idx#80 = $50 [phi:main::@21->assertType#0] -- vbuxx=vbuc1 ldx #$50 - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@21->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@21->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@21->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@21->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [44] phi from main::@21 to main::@22 [phi:main::@21->main::@22] // main::@22 // assertType(typeid(12ub+-120), typeid(unsigned byte)) - // [45] call assertType + // [45] call assertType // [71] phi from main::@22 to assertType [phi:main::@22->assertType] // [71] phi idx#80 = idx#39 [phi:main::@22->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@22->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@22->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@22->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@22->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [46] phi from main::@22 to main::@23 [phi:main::@22->main::@23] // main::@23 // assertType(typeid(12ub+-250), typeid(unsigned byte)) - // [47] call assertType + // [47] call assertType // [71] phi from main::@23 to assertType [phi:main::@23->assertType] // [71] phi idx#80 = idx#39 [phi:main::@23->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_BYTE [phi:main::@23->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_BYTE + // [71] phi assertType::t2#35 = TYPEID_CHAR [phi:main::@23->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_CHAR sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_BYTE [phi:main::@23->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_CHAR [phi:main::@23->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [48] phi from main::@23 to main::@24 [phi:main::@23->main::@24] // main::@24 // assertType(typeid(12ub+-260), typeid(unsigned word)) - // [49] call assertType + // [49] call assertType // [71] phi from main::@24 to assertType [phi:main::@24->assertType] // [71] phi idx#80 = idx#39 [phi:main::@24->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@24->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@24->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@24->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@24->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [50] phi from main::@24 to main::@25 [phi:main::@24->main::@25] // main::@25 // assertType(typeid(12ub+-65000), typeid(unsigned word)) - // [51] call assertType + // [51] call assertType // [71] phi from main::@25 to assertType [phi:main::@25->assertType] // [71] phi idx#80 = idx#39 [phi:main::@25->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@25->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@25->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@25->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@25->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [52] phi from main::@25 to main::@26 [phi:main::@25->main::@26] // main::@26 // assertType(typeid(12ub+-66000), typeid(unsigned dword)) - // [53] call assertType + // [53] call assertType // [71] phi from main::@26 to assertType [phi:main::@26->assertType] // [71] phi idx#80 = idx#39 [phi:main::@26->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@26->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@26->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@26->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@26->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [54] phi from main::@26 to main::@27 [phi:main::@26->main::@27] // main::@27 // assertType(typeid(12uw+-12), typeid(unsigned word)) - // [55] call assertType + // [55] call assertType // [71] phi from main::@27 to assertType [phi:main::@27->assertType] // [71] phi idx#80 = idx#39 [phi:main::@27->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@27->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@27->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@27->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@27->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [56] phi from main::@27 to main::@28 [phi:main::@27->main::@28] // main::@28 // assertType(typeid(12uw+-130), typeid(unsigned word)) - // [57] call assertType + // [57] call assertType // [71] phi from main::@28 to assertType [phi:main::@28->assertType] // [71] phi idx#80 = idx#39 [phi:main::@28->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@28->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@28->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@28->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@28->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [58] phi from main::@28 to main::@29 [phi:main::@28->main::@29] // main::@29 // assertType(typeid(12uw+-65000), typeid(unsigned word)) - // [59] call assertType + // [59] call assertType // [71] phi from main::@29 to assertType [phi:main::@29->assertType] // [71] phi idx#80 = idx#39 [phi:main::@29->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_WORD [phi:main::@29->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_WORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_INT [phi:main::@29->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_INT sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_WORD [phi:main::@29->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_INT [phi:main::@29->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [60] phi from main::@29 to main::@30 [phi:main::@29->main::@30] // main::@30 // assertType(typeid(12uw+-66000), typeid(unsigned dword)) - // [61] call assertType + // [61] call assertType // [71] phi from main::@30 to assertType [phi:main::@30->assertType] // [71] phi idx#80 = idx#39 [phi:main::@30->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@30->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@30->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@30->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@30->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [62] phi from main::@30 to main::@31 [phi:main::@30->main::@31] // main::@31 // assertType(typeid(12ud+-12), typeid(unsigned dword)) - // [63] call assertType + // [63] call assertType // [71] phi from main::@31 to assertType [phi:main::@31->assertType] // [71] phi idx#80 = idx#39 [phi:main::@31->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@31->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@31->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@31->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@31->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [64] phi from main::@31 to main::@32 [phi:main::@31->main::@32] // main::@32 // assertType(typeid(12ud+-130), typeid(unsigned dword)) - // [65] call assertType + // [65] call assertType // [71] phi from main::@32 to assertType [phi:main::@32->assertType] // [71] phi idx#80 = idx#39 [phi:main::@32->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@32->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@32->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@32->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@32->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [66] phi from main::@32 to main::@33 [phi:main::@32->main::@33] // main::@33 // assertType(typeid(12ud+-66000), typeid(unsigned dword)) - // [67] call assertType + // [67] call assertType // [71] phi from main::@33 to assertType [phi:main::@33->assertType] // [71] phi idx#80 = idx#39 [phi:main::@33->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@33->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@33->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_DWORD [phi:main::@33->assertType#2] -- vbuyy=vbuc1 + // [71] phi assertType::t1#35 = TYPEID_UNSIGNED_LONG [phi:main::@33->assertType#2] -- vbuyy=vbuc1 tay jsr assertType // [68] phi from main::@33 to main::@34 [phi:main::@33->main::@34] // main::@34 // assertType(typeid(12sb+-2100000000), typeid(unsigned dword)) - // [69] call assertType + // [69] call assertType // [71] phi from main::@34 to assertType [phi:main::@34->assertType] // [71] phi idx#80 = idx#39 [phi:main::@34->assertType#0] -- register_copy - // [71] phi assertType::t2#35 = TYPEID_DWORD [phi:main::@34->assertType#1] -- vbuz1=vbuc1 - lda #TYPEID_DWORD + // [71] phi assertType::t2#35 = TYPEID_UNSIGNED_LONG [phi:main::@34->assertType#1] -- vbuz1=vbuc1 + lda #TYPEID_UNSIGNED_LONG sta.z assertType.t2 - // [71] phi assertType::t1#35 = TYPEID_SIGNED_DWORD [phi:main::@34->assertType#2] -- vbuyy=vbuc1 - ldy #TYPEID_SIGNED_DWORD + // [71] phi assertType::t1#35 = TYPEID_LONG [phi:main::@34->assertType#2] -- vbuyy=vbuc1 + ldy #TYPEID_LONG jsr assertType // main::@return // } @@ -2621,7 +2621,7 @@ main: { // Check that the two passed type IDs are equal. // Shows a letter symbolizing t1 // If they are equal the letter is green - if not it is red. -// assertType(byte register(Y) t1, byte zp(2) t2) +// void assertType(__register(Y) char t1, __zp(2) char t2) assertType: { .label t2 = 2 // if(t1==t2) diff --git a/src/test/ref/number-conversion.sym b/src/test/ref/number-conversion.sym index 20d673393..b6b2ba53b 100644 --- a/src/test/ref/number-conversion.sym +++ b/src/test/ref/number-conversion.sym @@ -1,21 +1,21 @@ -constant byte* const COLS = (byte*)$d800 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_WORD = 3 -void assertType(byte assertType::t1 , byte assertType::t2) -byte assertType::t1 -byte assertType::t1#35 reg byte y 5.5 -byte assertType::t2 -byte assertType::t2#35 t2 zp[1]:2 11.0 -byte idx -byte idx#39 reg byte x 1.1363636363636358 -byte idx#80 reg byte x 21.600000000000005 +__constant char * const COLS = (char *)$d800 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SCREEN = (char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +void assertType(char t1 , char t2) +char assertType::t1 +char assertType::t1#35 // reg byte y 5.5 +char assertType::t2 +char assertType::t2#35 // t2 zp[1]:2 11.0 +char idx +char idx#39 // reg byte x 1.1363636363636358 +char idx#80 // reg byte x 21.600000000000005 void main() reg byte y [ assertType::t1#35 ] diff --git a/src/test/ref/number-inference-sum.log b/src/test/ref/number-inference-sum.log index 0fd629239..7115fd096 100644 --- a/src/test/ref/number-inference-sum.log +++ b/src/test/ref/number-inference-sum.log @@ -7,7 +7,7 @@ void main() main: scope:[main] from __start main::b2#0 = main::b1 + $fa main::w#0 = main::b2#0 + 1 - main::$4 = 0 * SIZEOF_WORD + main::$4 = 0 * SIZEOF_UNSIGNED_INT main::screen[main::$4] = main::w#0 main::$2 = main::w#0 > $ff main::$3 = ! main::$2 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,56 +31,56 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$2 -bool~ main::$3 -number~ main::$4 -constant byte* const main::BG_COLOR = (byte*)$d020 -constant const byte main::RED = 2 -constant byte main::b1 = $fa -byte main::b2 -byte main::b2#0 -constant word* const main::screen = (word*)$400 -word main::w -word main::w#0 +bool main::$2 +bool main::$3 +number main::$4 +__constant char * const main::BG_COLOR = (char *)$d020 +__constant const char main::RED = 2 +__constant char main::b1 = $fa +char main::b2 +char main::b2#0 +__constant unsigned int * const main::screen = (unsigned int *)$400 +unsigned int main::w +unsigned int main::w#0 Adding number conversion cast (unumber) $fa in main::b2#0 = main::b1 + $fa Adding number conversion cast (unumber) 1 in main::w#0 = main::b2#0 + 1 -Adding number conversion cast (unumber) 0 in main::$4 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$4 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)0 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) $ff in main::$2 = main::w#0 > $ff Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (unsigned int *) 1024 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast $fa Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = 0 * SIZEOF_WORD +Inferred type updated to char in main::$4 = 0 * SIZEOF_UNSIGNED_INT Inversing boolean not [5] main::$3 = main::w#0 <= $ff from [4] main::$2 = main::w#0 > $ff Successful SSA optimization Pass2UnaryNotSimplification Simple Condition main::$3 [5] if(main::w#0<=$ff) goto main::@return Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [0] main::b2#0 = main::b1 + $fa -Constant right-side identified [2] main::$4 = 0 * SIZEOF_WORD +Constant right-side identified [2] main::$4 = 0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::b2#0 = main::b1+$fa -Constant main::$4 = 0*SIZEOF_WORD +Constant main::$4 = 0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::screen in [3] main::screen[main::$4] = main::w#0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$4 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -114,8 +114,8 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::b2 -word main::w +char main::b2 +unsigned int main::w Initial phi equivalence classes Complete equivalence classes @@ -182,14 +182,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::BG_COLOR = (byte*) 53280 -constant const byte main::RED = 2 -constant byte main::b1 = $fa -byte main::b2 -constant byte main::b2#0 b2 = main::b1+$fa -constant word* const main::screen = (word*) 1024 -word main::w -constant word main::w#0 w = main::b2#0+1 +__constant char * const main::BG_COLOR = (char *) 53280 +__constant const char main::RED = 2 +__constant char main::b1 = $fa +char main::b2 +__constant char main::b2#0 = main::b1+$fa // b2 +__constant unsigned int * const main::screen = (unsigned int *) 1024 +unsigned int main::w +__constant unsigned int main::w#0 = main::b2#0+1 // w diff --git a/src/test/ref/number-inference-sum.sym b/src/test/ref/number-inference-sum.sym index 346c30520..f50094868 100644 --- a/src/test/ref/number-inference-sum.sym +++ b/src/test/ref/number-inference-sum.sym @@ -1,10 +1,10 @@ void main() -constant byte* const main::BG_COLOR = (byte*) 53280 -constant const byte main::RED = 2 -constant byte main::b1 = $fa -byte main::b2 -constant byte main::b2#0 b2 = main::b1+$fa -constant word* const main::screen = (word*) 1024 -word main::w -constant word main::w#0 w = main::b2#0+1 +__constant char * const main::BG_COLOR = (char *) 53280 +__constant const char main::RED = 2 +__constant char main::b1 = $fa +char main::b2 +__constant char main::b2#0 = main::b1+$fa // b2 +__constant unsigned int * const main::screen = (unsigned int *) 1024 +unsigned int main::w +__constant unsigned int main::w#0 = main::b2#0+1 // w diff --git a/src/test/ref/number-ternary-fail-2.asm b/src/test/ref/number-ternary-fail-2.asm index 03adf0263..c8fc45162 100644 --- a/src/test/ref/number-ternary-fail-2.asm +++ b/src/test/ref/number-ternary-fail-2.asm @@ -26,12 +26,14 @@ main: { } // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = main.width*main.height .label mem = HEAP_TOP-size .label return = mem rts } +// void SolveMaze(char *maze, unsigned int width, unsigned int height) SolveMaze: { .const x = 3 .const y = 2 diff --git a/src/test/ref/number-ternary-fail-2.cfg b/src/test/ref/number-ternary-fail-2.cfg index ac16a5ee1..ef7e83985 100644 --- a/src/test/ref/number-ternary-fail-2.cfg +++ b/src/test/ref/number-ternary-fail-2.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] phi() - [1] call malloc + [1] call malloc to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call SolveMaze + [3] call SolveMaze to:main::@2 main::@2: scope:[main] from main::@1 asm { loop: jmploop } @@ -15,7 +15,7 @@ main::@return: scope:[main] from main::@2 [5] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from main [6] phi() to:malloc::@return @@ -23,7 +23,7 @@ malloc::@return: scope:[malloc] from malloc [7] return to:@return -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) +void SolveMaze(char *maze , unsigned int width , unsigned int height) SolveMaze: scope:[SolveMaze] from main::@1 [8] phi() to:SolveMaze::@1 diff --git a/src/test/ref/number-ternary-fail-2.log b/src/test/ref/number-ternary-fail-2.log index c53bbce46..99ddb8acf 100644 --- a/src/test/ref/number-ternary-fail-2.log +++ b/src/test/ref/number-ternary-fail-2.log @@ -1,15 +1,15 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement malloc::$0 CONTROL FLOW GRAPH SSA -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from main malloc::size#1 = phi( main/malloc::size#0 ) heap_head#7 = phi( main/heap_head#13 ) malloc::mem#0 = heap_head#7 - malloc::size#1 heap_head#0 = malloc::mem#0 - malloc::return#0 = ((void*)) malloc::mem#0 + malloc::return#0 = ((void *)) malloc::mem#0 to:malloc::@return malloc::@return: scope:[malloc] from malloc heap_head#8 = phi( malloc/heap_head#0 ) @@ -19,14 +19,14 @@ malloc::@return: scope:[malloc] from malloc return to:@return -void free(void* free::ptr) +void free(void *ptr) free: scope:[free] from main::@2 to:free::@return free::@return: scope:[free] from free return to:@return -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) +void SolveMaze(char *maze , unsigned int width , unsigned int height) SolveMaze: scope:[SolveMaze] from main::@1 SolveMaze::maze#6 = phi( main::@1/SolveMaze::maze#0 ) SolveMaze::height#2 = phi( main::@1/SolveMaze::height#0 ) @@ -94,10 +94,10 @@ SolveMaze::@return: scope:[SolveMaze] from SolveMaze::@1 void main() main: scope:[main] from __start::@1 heap_head#13 = phi( __start::@1/heap_head#15 ) - main::maze#0 = (byte*) 0 + main::maze#0 = (char *) 0 main::$0 = main::width * main::height malloc::size#0 = main::$0 - call malloc + call malloc malloc::return#2 = malloc::return#1 to:main::@1 main::@1: scope:[main] from main @@ -105,17 +105,17 @@ main::@1: scope:[main] from main malloc::return#4 = phi( main/malloc::return#2 ) main::$1 = malloc::return#4 heap_head#2 = heap_head#9 - main::maze#1 = ((byte*)) main::$1 + main::maze#1 = ((char *)) main::$1 SolveMaze::maze#0 = main::maze#1 SolveMaze::width#0 = main::width SolveMaze::height#0 = main::height - call SolveMaze + call SolveMaze to:main::@2 main::@2: scope:[main] from main::@1 heap_head#16 = phi( main::@1/heap_head#2 ) main::maze#2 = phi( main::@1/main::maze#1 ) - free::ptr#0 = (void*)main::maze#2 - call free + free::ptr#0 = (void *)main::maze#2 + call free to:main::@3 main::@3: scope:[main] from main::@2 heap_head#14 = phi( main::@2/heap_head#16 ) @@ -135,7 +135,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 heap_head#15 = phi( __start::__init1/heap_head#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 heap_head#11 = phi( __start::@1/heap_head#3 ) @@ -148,104 +148,104 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* HEAP_TOP = (byte*)$a000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) -number~ SolveMaze::$0 -bool~ SolveMaze::$1 -bool~ SolveMaze::$10 -number~ SolveMaze::$2 -bool~ SolveMaze::$3 -bool~ SolveMaze::$4 -word~ SolveMaze::$5 -word~ SolveMaze::$6 -number~ SolveMaze::$7 -number~ SolveMaze::$8 -number~ SolveMaze::$9 -word SolveMaze::forward -word SolveMaze::forward#0 -word SolveMaze::forward#1 -word SolveMaze::forward#2 -word SolveMaze::forward#3 -word SolveMaze::forward#4 -word SolveMaze::height -word SolveMaze::height#0 -word SolveMaze::height#1 -word SolveMaze::height#2 -word SolveMaze::height#3 -word SolveMaze::height#4 -word SolveMaze::height#5 -word SolveMaze::height#6 -word SolveMaze::height#7 -word SolveMaze::height#8 -byte* SolveMaze::maze -byte* SolveMaze::maze#0 -byte* SolveMaze::maze#1 -byte* SolveMaze::maze#2 -byte* SolveMaze::maze#3 -byte* SolveMaze::maze#4 -byte* SolveMaze::maze#5 -byte* SolveMaze::maze#6 -byte* SolveMaze::maze#7 -byte* SolveMaze::maze#8 -word SolveMaze::width -word SolveMaze::width#0 -word SolveMaze::width#1 -word SolveMaze::width#2 -word SolveMaze::width#3 -word SolveMaze::width#4 -word SolveMaze::width#5 -word SolveMaze::width#6 -word SolveMaze::width#7 -word SolveMaze::width#8 -constant word SolveMaze::x = 3 -constant word SolveMaze::y = 2 +__constant char *HEAP_TOP = (char *)$a000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void SolveMaze(char *maze , unsigned int width , unsigned int height) +number SolveMaze::$0 +bool SolveMaze::$1 +bool SolveMaze::$10 +number SolveMaze::$2 +bool SolveMaze::$3 +bool SolveMaze::$4 +unsigned int SolveMaze::$5 +unsigned int SolveMaze::$6 +number SolveMaze::$7 +number SolveMaze::$8 +number SolveMaze::$9 +unsigned int SolveMaze::forward +unsigned int SolveMaze::forward#0 +unsigned int SolveMaze::forward#1 +unsigned int SolveMaze::forward#2 +unsigned int SolveMaze::forward#3 +unsigned int SolveMaze::forward#4 +unsigned int SolveMaze::height +unsigned int SolveMaze::height#0 +unsigned int SolveMaze::height#1 +unsigned int SolveMaze::height#2 +unsigned int SolveMaze::height#3 +unsigned int SolveMaze::height#4 +unsigned int SolveMaze::height#5 +unsigned int SolveMaze::height#6 +unsigned int SolveMaze::height#7 +unsigned int SolveMaze::height#8 +char *SolveMaze::maze +char *SolveMaze::maze#0 +char *SolveMaze::maze#1 +char *SolveMaze::maze#2 +char *SolveMaze::maze#3 +char *SolveMaze::maze#4 +char *SolveMaze::maze#5 +char *SolveMaze::maze#6 +char *SolveMaze::maze#7 +char *SolveMaze::maze#8 +unsigned int SolveMaze::width +unsigned int SolveMaze::width#0 +unsigned int SolveMaze::width#1 +unsigned int SolveMaze::width#2 +unsigned int SolveMaze::width#3 +unsigned int SolveMaze::width#4 +unsigned int SolveMaze::width#5 +unsigned int SolveMaze::width#6 +unsigned int SolveMaze::width#7 +unsigned int SolveMaze::width#8 +__constant unsigned int SolveMaze::x = 3 +__constant unsigned int SolveMaze::y = 2 void __start() -void free(void* free::ptr) -void* free::ptr -void* free::ptr#0 -byte* heap_head -byte* heap_head#0 -byte* heap_head#1 -byte* heap_head#10 -byte* heap_head#11 -byte* heap_head#12 -byte* heap_head#13 -byte* heap_head#14 -byte* heap_head#15 -byte* heap_head#16 -byte* heap_head#2 -byte* heap_head#3 -byte* heap_head#4 -byte* heap_head#5 -byte* heap_head#6 -byte* heap_head#7 -byte* heap_head#8 -byte* heap_head#9 +void free(void *ptr) +void *free::ptr +void *free::ptr#0 +char *heap_head +char *heap_head#0 +char *heap_head#1 +char *heap_head#10 +char *heap_head#11 +char *heap_head#12 +char *heap_head#13 +char *heap_head#14 +char *heap_head#15 +char *heap_head#16 +char *heap_head#2 +char *heap_head#3 +char *heap_head#4 +char *heap_head#5 +char *heap_head#6 +char *heap_head#7 +char *heap_head#8 +char *heap_head#9 void main() -word~ main::$0 -void*~ main::$1 -constant word main::height = (word)6*2+3 -byte* main::maze -byte* main::maze#0 -byte* main::maze#1 -byte* main::maze#2 -constant word main::width = (word)$12*2+3 -void* malloc(word malloc::size) -byte* malloc::mem -byte* malloc::mem#0 -void* malloc::return -void* malloc::return#0 -void* malloc::return#1 -void* malloc::return#2 -void* malloc::return#3 -void* malloc::return#4 -word malloc::size -word malloc::size#0 -word malloc::size#1 +unsigned int main::$0 +void *main::$1 +__constant unsigned int main::height = (unsigned int)6*2+3 +char *main::maze +char *main::maze#0 +char *main::maze#1 +char *main::maze#2 +__constant unsigned int main::width = (unsigned int)$12*2+3 +void * malloc(unsigned int size) +char *malloc::mem +char *malloc::mem#0 +void *malloc::return +void *malloc::return#0 +void *malloc::return#1 +void *malloc::return#2 +void *malloc::return#3 +void *malloc::return#4 +unsigned int malloc::size +unsigned int malloc::size#0 +unsigned int malloc::size#1 Adding number conversion cast (unumber) 2 in SolveMaze::$0 = SolveMaze::width#1 - 2 Adding number conversion cast (unumber) SolveMaze::$0 in SolveMaze::$0 = SolveMaze::width#1 - (unumber)2 @@ -256,27 +256,27 @@ Adding number conversion cast (unumber) SolveMaze::$9 in SolveMaze::maze#1[Solve Adding number conversion cast (unumber) 1 in SolveMaze::forward#1 = 1 Adding number conversion cast (unumber) 0 in SolveMaze::forward#2 = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast malloc::return#0 = (void*)malloc::mem#0 +Inlining cast malloc::return#0 = (void *)malloc::mem#0 Inlining cast SolveMaze::maze#1[SolveMaze::$6] = (unumber)SolveMaze::$9 Inlining cast SolveMaze::forward#1 = (unumber)1 Inlining cast SolveMaze::forward#2 = (unumber)0 -Inlining cast main::maze#1 = (byte*)main::$1 +Inlining cast main::maze#1 = (char *)main::$1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 40960 +Simplifying constant pointer cast (char *) 40960 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in SolveMaze::$0 = SolveMaze::width#1 - 2 -Inferred type updated to word in SolveMaze::$2 = SolveMaze::height#1 - 2 +Inferred type updated to unsigned int in SolveMaze::$0 = SolveMaze::width#1 - 2 +Inferred type updated to unsigned int in SolveMaze::$2 = SolveMaze::height#1 - 2 Alias malloc::return#0 = malloc::return#3 malloc::return#1 Alias heap_head#0 = heap_head#8 heap_head#1 Alias SolveMaze::width#1 = SolveMaze::width#2 SolveMaze::width#7 SolveMaze::width#8 @@ -320,7 +320,7 @@ Constant SolveMaze::$8 = 2 Constant SolveMaze::$7 = 3 Constant SolveMaze::forward#1 = 1 Constant SolveMaze::forward#2 = 0 -Constant main::maze#0 = (byte*) 0 +Constant main::maze#0 = (char *) 0 Constant malloc::size#0 = main::width*main::height Constant SolveMaze::width#0 = main::width Constant SolveMaze::height#0 = main::height @@ -334,11 +334,11 @@ Removing PHI-reference to removed block (SolveMaze::@7) in block SolveMaze::@1 Removing unused block SolveMaze::@7 Successful SSA optimization Pass2EliminateUnusedBlocks Eliminating unused variable heap_head#0 and assignment [1] heap_head#0 = malloc::mem#0 -Eliminating unused variable free::ptr#0 and assignment [24] free::ptr#0 = (void*)main::maze#1 +Eliminating unused variable free::ptr#0 and assignment [24] free::ptr#0 = (void *)main::maze#1 Eliminating unused constant SolveMaze::forward#2 Eliminating unused constant main::maze#0 Successful SSA optimization PassNEliminateUnusedVars -Removing call to empty/unused procedure [23] call free +Removing call to empty/unused procedure [23] call free Removing unused procedure free Removing unused procedure block free Removing unused procedure block free::@return @@ -363,13 +363,13 @@ Constant SolveMaze::$0 = SolveMaze::width#0-2 Constant SolveMaze::$2 = SolveMaze::height#0-2 Constant SolveMaze::$5 = SolveMaze::y*SolveMaze::width#0 Successful SSA optimization Pass2ConstantIdentification -Constant malloc::return#0 = (void*)malloc::mem#0 +Constant malloc::return#0 = (void *)malloc::mem#0 Successful SSA optimization Pass2ConstantIdentification Constant malloc::return#2 = malloc::return#0 Successful SSA optimization Pass2ConstantIdentification Constant main::$1 = malloc::return#2 Successful SSA optimization Pass2ConstantIdentification -Constant main::maze#1 = (byte*)main::$1 +Constant main::maze#1 = (char *)main::$1 Successful SSA optimization Pass2ConstantIdentification Constant SolveMaze::maze#0 = main::maze#1 Successful SSA optimization Pass2ConstantIdentification @@ -408,24 +408,24 @@ Constant inlined SolveMaze::width#0 = main::width Constant inlined SolveMaze::forward#0 = 0 Constant inlined SolveMaze::forward#1 = 1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $12 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $12 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) SolveMaze::$9 in [3] SolveMaze::$9 = phi( SolveMaze::@3/2, SolveMaze::@4/3 ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast SolveMaze::$9 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for SolveMaze::$9 +Inferred type updated to char for SolveMaze::$9 Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -455,11 +455,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call malloc + [1] call malloc to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call SolveMaze + [3] call SolveMaze to:main::@2 main::@2: scope:[main] from main::@1 asm { loop: jmploop } @@ -468,7 +468,7 @@ main::@return: scope:[main] from main::@2 [5] return to:@return -void* malloc(word malloc::size) +void * malloc(unsigned int size) malloc: scope:[malloc] from main [6] phi() to:malloc::@return @@ -476,7 +476,7 @@ malloc::@return: scope:[malloc] from malloc [7] return to:@return -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) +void SolveMaze(char *maze , unsigned int width , unsigned int height) SolveMaze: scope:[SolveMaze] from main::@1 [8] phi() to:SolveMaze::@1 @@ -496,20 +496,20 @@ SolveMaze::@4: scope:[SolveMaze] from SolveMaze::@2 SolveMaze::@3 VARIABLE REGISTER WEIGHTS -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) -byte~ SolveMaze::$9 101.0 -word SolveMaze::forward -word SolveMaze::forward#3 101.0 -word SolveMaze::height -byte* SolveMaze::maze -word SolveMaze::width -byte* heap_head +void SolveMaze(char *maze , unsigned int width , unsigned int height) +char SolveMaze::$9 // 101.0 +unsigned int SolveMaze::forward +unsigned int SolveMaze::forward#3 // 101.0 +unsigned int SolveMaze::height +char *SolveMaze::maze +unsigned int SolveMaze::width +char *heap_head void main() -byte* main::maze -void* malloc(word malloc::size) -byte* malloc::mem -void* malloc::return -word malloc::size +char *main::maze +void * malloc(unsigned int size) +char *malloc::mem +void *malloc::return +unsigned int malloc::size Initial phi equivalence classes [ SolveMaze::forward#3 ] @@ -559,7 +559,7 @@ main: { .label width = $12*2+3 .label height = 6*2+3 .label maze = malloc.return - // [1] call malloc + // [1] call malloc // [6] phi from main to malloc [phi:main->malloc] malloc_from_main: jsr malloc @@ -568,7 +568,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call SolveMaze + // [3] call SolveMaze // [8] phi from main::@1 to SolveMaze [phi:main::@1->SolveMaze] SolveMaze_from___b1: jsr SolveMaze @@ -587,6 +587,7 @@ main: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = main.width*main.height .label mem = HEAP_TOP-size @@ -598,6 +599,7 @@ malloc: { rts } // SolveMaze +// void SolveMaze(char *maze, unsigned int width, unsigned int height) SolveMaze: { .const x = 3 .const y = 2 @@ -682,33 +684,33 @@ Removing unreachable instruction rts Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) -byte~ SolveMaze::$9 reg byte a 101.0 -word SolveMaze::forward -word SolveMaze::forward#3 forward zp[2]:2 101.0 -word SolveMaze::height -byte* SolveMaze::maze -word SolveMaze::width -constant word SolveMaze::x = 3 -constant word SolveMaze::y = 2 -byte* heap_head +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void SolveMaze(char *maze , unsigned int width , unsigned int height) +char SolveMaze::$9 // reg byte a 101.0 +unsigned int SolveMaze::forward +unsigned int SolveMaze::forward#3 // forward zp[2]:2 101.0 +unsigned int SolveMaze::height +char *SolveMaze::maze +unsigned int SolveMaze::width +__constant unsigned int SolveMaze::x = 3 +__constant unsigned int SolveMaze::y = 2 +char *heap_head void main() -constant word main::height = (word)6*2+3 -byte* main::maze -constant byte* main::maze#1 maze = (byte*)malloc::return#0 -constant word main::width = (word)$12*2+3 -void* malloc(word malloc::size) -byte* malloc::mem -constant byte* malloc::mem#0 mem = HEAP_TOP-malloc::size#0 -void* malloc::return -constant void* malloc::return#0 return = (void*)malloc::mem#0 -word malloc::size -constant word malloc::size#0 size = main::width*main::height +__constant unsigned int main::height = (unsigned int)6*2+3 +char *main::maze +__constant char *main::maze#1 = (char *)malloc::return#0 // maze +__constant unsigned int main::width = (unsigned int)$12*2+3 +void * malloc(unsigned int size) +char *malloc::mem +__constant char *malloc::mem#0 = HEAP_TOP-malloc::size#0 // mem +void *malloc::return +__constant void *malloc::return#0 = (void *)malloc::mem#0 // return +unsigned int malloc::size +__constant unsigned int malloc::size#0 = main::width*main::height // size zp[2]:2 [ SolveMaze::forward#3 ] reg byte a [ SolveMaze::$9 ] @@ -739,13 +741,13 @@ main: { .label height = 6*2+3 .label maze = malloc.return // malloc(width * height) - // [1] call malloc + // [1] call malloc // [6] phi from main to malloc [phi:main->malloc] jsr malloc // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // SolveMaze(maze, width, height) - // [3] call SolveMaze + // [3] call SolveMaze // [8] phi from main::@1 to SolveMaze [phi:main::@1->SolveMaze] jsr SolveMaze // main::@2 @@ -760,6 +762,7 @@ main: { // malloc // Allocates a block of size chars of memory, returning a pointer to the beginning of the block. // The content of the newly allocated block of memory is not initialized, remaining with indeterminate values. +// void * malloc(unsigned int size) malloc: { .const size = main.width*main.height .label mem = HEAP_TOP-size @@ -769,6 +772,7 @@ malloc: { rts } // SolveMaze +// void SolveMaze(char *maze, unsigned int width, unsigned int height) SolveMaze: { .const x = 3 .const y = 2 diff --git a/src/test/ref/number-ternary-fail-2.sym b/src/test/ref/number-ternary-fail-2.sym index 3dfd2f174..96846acac 100644 --- a/src/test/ref/number-ternary-fail-2.sym +++ b/src/test/ref/number-ternary-fail-2.sym @@ -1,30 +1,30 @@ -constant byte* HEAP_TOP = (byte*) 40960 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void SolveMaze(byte* SolveMaze::maze , word SolveMaze::width , word SolveMaze::height) -byte~ SolveMaze::$9 reg byte a 101.0 -word SolveMaze::forward -word SolveMaze::forward#3 forward zp[2]:2 101.0 -word SolveMaze::height -byte* SolveMaze::maze -word SolveMaze::width -constant word SolveMaze::x = 3 -constant word SolveMaze::y = 2 -byte* heap_head +__constant char *HEAP_TOP = (char *) 40960 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void SolveMaze(char *maze , unsigned int width , unsigned int height) +char SolveMaze::$9 // reg byte a 101.0 +unsigned int SolveMaze::forward +unsigned int SolveMaze::forward#3 // forward zp[2]:2 101.0 +unsigned int SolveMaze::height +char *SolveMaze::maze +unsigned int SolveMaze::width +__constant unsigned int SolveMaze::x = 3 +__constant unsigned int SolveMaze::y = 2 +char *heap_head void main() -constant word main::height = (word)6*2+3 -byte* main::maze -constant byte* main::maze#1 maze = (byte*)malloc::return#0 -constant word main::width = (word)$12*2+3 -void* malloc(word malloc::size) -byte* malloc::mem -constant byte* malloc::mem#0 mem = HEAP_TOP-malloc::size#0 -void* malloc::return -constant void* malloc::return#0 return = (void*)malloc::mem#0 -word malloc::size -constant word malloc::size#0 size = main::width*main::height +__constant unsigned int main::height = (unsigned int)6*2+3 +char *main::maze +__constant char *main::maze#1 = (char *)malloc::return#0 // maze +__constant unsigned int main::width = (unsigned int)$12*2+3 +void * malloc(unsigned int size) +char *malloc::mem +__constant char *malloc::mem#0 = HEAP_TOP-malloc::size#0 // mem +void *malloc::return +__constant void *malloc::return#0 = (void *)malloc::mem#0 // return +unsigned int malloc::size +__constant unsigned int malloc::size#0 = main::width*main::height // size zp[2]:2 [ SolveMaze::forward#3 ] reg byte a [ SolveMaze::$9 ] diff --git a/src/test/ref/number-ternary-fail-3.log b/src/test/ref/number-ternary-fail-3.log index 3a13a0fda..22a535a8b 100644 --- a/src/test/ref/number-ternary-fail-3.log +++ b/src/test/ref/number-ternary-fail-3.log @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -46,25 +46,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -bool~ main::$4 -bool~ main::$5 -constant byte* main::BASIC = (byte*)$a000 -constant byte* main::SCREEN = (byte*)$400 -byte main::glyph_bit -byte main::glyph_bit#0 -byte main::glyph_bits -byte main::glyph_bits#0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +bool main::$4 +bool main::$5 +__constant char *main::BASIC = (char *)$a000 +__constant char *main::SCREEN = (char *)$400 +char main::glyph_bit +char main::glyph_bit#0 +char main::glyph_bits +char main::glyph_bits#0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 Adding number conversion cast (unumber) $80 in main::$0 = main::glyph_bits#0 & $80 Adding number conversion cast (unumber) main::$0 in main::$0 = main::glyph_bits#0 & (unumber)$80 @@ -73,15 +73,15 @@ Adding number conversion cast (unumber) main::$3 in main::glyph_bit#0 = main::$3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::glyph_bit#0 = (unumber)main::$3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 40960 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 40960 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::glyph_bits#0 & $80 +Inferred type updated to char in main::$0 = main::glyph_bits#0 & $80 Alias main::i#2 = main::i#4 main::i#5 Successful SSA optimization Pass2AliasElimination Alias main::i#2 = main::i#3 @@ -104,21 +104,21 @@ Adding number conversion cast (unumber) 8 in [8] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::$1 = 0 Constant inlined main::i#0 = 0 Constant inlined main::$2 = 1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) main::$3 in main::$3 = phi( main::@2/1, main::@3/0 ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::$3 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for main::$3 +Inferred type updated to char for main::$3 Alias main::glyph_bit#0 = main::$3 Successful SSA optimization Pass2AliasElimination Added new block during phi lifting main::@5(between main::@4 and main::@1) @@ -164,14 +164,14 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::glyph_bit -byte main::glyph_bit#0 11.0 -byte main::glyph_bits -byte main::glyph_bits#0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.285714285714286 +char main::$0 // 22.0 +char main::glyph_bit +char main::glyph_bit#0 // 11.0 +char main::glyph_bits +char main::glyph_bits#0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.285714285714286 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -291,16 +291,16 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* main::BASIC = (byte*) 40960 -constant byte* main::SCREEN = (byte*) 1024 -byte main::glyph_bit -byte main::glyph_bit#0 reg byte a 11.0 -byte main::glyph_bits -byte main::glyph_bits#0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.285714285714286 +char main::$0 // reg byte a 22.0 +__constant char *main::BASIC = (char *) 40960 +__constant char *main::SCREEN = (char *) 1024 +char main::glyph_bit +char main::glyph_bit#0 // reg byte a 11.0 +char main::glyph_bits +char main::glyph_bits#0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.285714285714286 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::glyph_bit#0 ] diff --git a/src/test/ref/number-ternary-fail-3.sym b/src/test/ref/number-ternary-fail-3.sym index ef9645892..33f78532d 100644 --- a/src/test/ref/number-ternary-fail-3.sym +++ b/src/test/ref/number-ternary-fail-3.sym @@ -1,14 +1,14 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* main::BASIC = (byte*) 40960 -constant byte* main::SCREEN = (byte*) 1024 -byte main::glyph_bit -byte main::glyph_bit#0 reg byte a 11.0 -byte main::glyph_bits -byte main::glyph_bits#0 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.285714285714286 +char main::$0 // reg byte a 22.0 +__constant char *main::BASIC = (char *) 40960 +__constant char *main::SCREEN = (char *) 1024 +char main::glyph_bit +char main::glyph_bit#0 // reg byte a 11.0 +char main::glyph_bits +char main::glyph_bits#0 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.285714285714286 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::glyph_bit#0 ] diff --git a/src/test/ref/number-ternary-fail.log b/src/test/ref/number-ternary-fail.log index b7a4b4d70..c07437d51 100644 --- a/src/test/ref/number-ternary-fail.log +++ b/src/test/ref/number-ternary-fail.log @@ -33,7 +33,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,22 +42,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +bool main::$4 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -66,14 +66,14 @@ Adding number conversion cast (unumber) main::$3 in SCREEN[main::i#3] = main::$3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast SCREEN[main::i#3] = (unumber)main::$3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 +Inferred type updated to char in main::$0 = main::i#2 & 1 Alias main::i#2 = main::i#4 main::i#5 Successful SSA optimization Pass2AliasElimination Alias main::i#2 = main::i#3 @@ -96,21 +96,21 @@ Adding number conversion cast (unumber) $29 in [6] if(main::i#1!=$29) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $29 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $29 +Finalized unsigned number type (char) $29 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::$1 = $80 Constant inlined main::i#0 = 0 Constant inlined main::$2 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) main::$3 in main::$3 = phi( main::@2/0, main::@3/$80 ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::$3 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for main::$3 +Inferred type updated to char for main::$3 Added new block during phi lifting main::@5(between main::@4 and main::@1) Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -153,11 +153,11 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$3 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.333333333333333 +char main::$0 // 22.0 +char main::$3 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -269,13 +269,13 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$3 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 +char main::$0 // reg byte a 22.0 +char main::$3 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/number-ternary-fail.sym b/src/test/ref/number-ternary-fail.sym index c0711600b..1e789cdf0 100644 --- a/src/test/ref/number-ternary-fail.sym +++ b/src/test/ref/number-ternary-fail.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$3 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 7.333333333333333 +char main::$0 // reg byte a 22.0 +char main::$3 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/number-type.cfg b/src/test/ref/number-type.cfg index f0f9f4d48..fc741e87d 100644 --- a/src/test/ref/number-type.cfg +++ b/src/test/ref/number-type.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] phi() - [1] call testBytes + [1] call testBytes to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call testSBytes + [3] call testSBytes to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -17,7 +17,7 @@ testBytes: scope:[testBytes] from main [5] *testBytes::SCREEN = $c [6] *(testBytes::SCREEN+1) = 6+6 [7] *(testBytes::SCREEN+2) = $12-6 - [8] *(testBytes::SCREEN+3) = (byte)$714-$708 + [8] *(testBytes::SCREEN+3) = (char)$714-$708 [9] *(testBytes::SCREEN+4) = 1+2+3+6 [10] *(testBytes::SCREEN+5) = 2*6 [11] *(testBytes::SCREEN+6) = 3<<2 @@ -26,7 +26,7 @@ testBytes: scope:[testBytes] from main [14] *(testBytes::SCREEN+9) = 4|8 [15] *(testBytes::SCREEN+$a) = 5^9 [16] *(testBytes::SCREEN+$b) = 2+2*$f/5 - [17] *(testBytes::SCREEN+$c) = (byte)$1000+$c + [17] *(testBytes::SCREEN+$c) = (char)$1000+$c to:testBytes::@return testBytes::@return: scope:[testBytes] from testBytes [18] return @@ -35,17 +35,17 @@ testBytes::@return: scope:[testBytes] from testBytes void testSBytes() testSBytes: scope:[testSBytes] from main::@1 [19] *testSBytes::SCREEN = -$c - [20] *(testSBytes::SCREEN+1) = (signed byte)-6-6 - [21] *(testSBytes::SCREEN+2) = (signed byte)-$12+6 - [22] *(testSBytes::SCREEN+3) = (signed byte)-$714+$708 - [23] *(testSBytes::SCREEN+4) = (signed byte)-1-2-3-6 - [24] *(testSBytes::SCREEN+5) = (signed byte)-2*6 + [20] *(testSBytes::SCREEN+1) = (signed char)-6-6 + [21] *(testSBytes::SCREEN+2) = (signed char)-$12+6 + [22] *(testSBytes::SCREEN+3) = (signed char)-$714+$708 + [23] *(testSBytes::SCREEN+4) = (signed char)-1-2-3-6 + [24] *(testSBytes::SCREEN+5) = (signed char)-2*6 [25] *(testSBytes::SCREEN+6) = -3<<2 [26] *(testSBytes::SCREEN+7) = -$18>>1 [27] *(testSBytes::SCREEN+8) = -4&-9 - [28] *(testSBytes::SCREEN+9) = (signed byte)-$10|-$fc - [29] *(testSBytes::SCREEN+$a) = (signed byte)-2-2*$f/5 - [30] *(testSBytes::SCREEN+$b) = (signed byte)$1000-$c + [28] *(testSBytes::SCREEN+9) = (signed char)-$10|-$fc + [29] *(testSBytes::SCREEN+$a) = (signed char)-2-2*$f/5 + [30] *(testSBytes::SCREEN+$b) = (signed char)$1000-$c to:testSBytes::@return testSBytes::@return: scope:[testSBytes] from testSBytes [31] return diff --git a/src/test/ref/number-type.log b/src/test/ref/number-type.log index 26d798ce0..88a159a46 100644 --- a/src/test/ref/number-type.log +++ b/src/test/ref/number-type.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call testBytes + call testBytes to:main::@1 main::@1: scope:[main] from main - call testSBytes + call testSBytes to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -41,7 +41,7 @@ testBytes: scope:[testBytes] from main testBytes::idx#11 = ++ testBytes::idx#10 testBytes::SCREEN[testBytes::idx#11] = 2+2*$f/5 testBytes::idx#12 = ++ testBytes::idx#11 - testBytes::SCREEN[testBytes::idx#12] = (byte)$1000+$c + testBytes::SCREEN[testBytes::idx#12] = (char)$1000+$c testBytes::idx#13 = ++ testBytes::idx#12 to:testBytes::@return testBytes::@return: scope:[testBytes] from testBytes @@ -73,7 +73,7 @@ testSBytes: scope:[testSBytes] from main::@1 testSBytes::idx#10 = ++ testSBytes::idx#9 testSBytes::SCREEN[testSBytes::idx#10] = -2-2*$f/5 testSBytes::idx#11 = ++ testSBytes::idx#10 - testSBytes::SCREEN[testSBytes::idx#11] = (signed byte)$1000-$c + testSBytes::SCREEN[testSBytes::idx#11] = (signed char)$1000-$c testSBytes::idx#12 = ++ testSBytes::idx#11 to:testSBytes::@return testSBytes::@return: scope:[testSBytes] from testSBytes @@ -82,7 +82,7 @@ testSBytes::@return: scope:[testSBytes] from testSBytes void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -94,38 +94,38 @@ SYMBOL TABLE SSA void __start() void main() void testBytes() -constant byte* const testBytes::SCREEN = (byte*)$400 -byte testBytes::idx -byte testBytes::idx#0 -byte testBytes::idx#1 -byte testBytes::idx#10 -byte testBytes::idx#11 -byte testBytes::idx#12 -byte testBytes::idx#13 -byte testBytes::idx#2 -byte testBytes::idx#3 -byte testBytes::idx#4 -byte testBytes::idx#5 -byte testBytes::idx#6 -byte testBytes::idx#7 -byte testBytes::idx#8 -byte testBytes::idx#9 +__constant char * const testBytes::SCREEN = (char *)$400 +char testBytes::idx +char testBytes::idx#0 +char testBytes::idx#1 +char testBytes::idx#10 +char testBytes::idx#11 +char testBytes::idx#12 +char testBytes::idx#13 +char testBytes::idx#2 +char testBytes::idx#3 +char testBytes::idx#4 +char testBytes::idx#5 +char testBytes::idx#6 +char testBytes::idx#7 +char testBytes::idx#8 +char testBytes::idx#9 void testSBytes() -constant signed byte* const testSBytes::SCREEN = (signed byte*)$428 -byte testSBytes::idx -byte testSBytes::idx#0 -byte testSBytes::idx#1 -byte testSBytes::idx#10 -byte testSBytes::idx#11 -byte testSBytes::idx#12 -byte testSBytes::idx#2 -byte testSBytes::idx#3 -byte testSBytes::idx#4 -byte testSBytes::idx#5 -byte testSBytes::idx#6 -byte testSBytes::idx#7 -byte testSBytes::idx#8 -byte testSBytes::idx#9 +__constant signed char * const testSBytes::SCREEN = (signed char *)$428 +char testSBytes::idx +char testSBytes::idx#0 +char testSBytes::idx#1 +char testSBytes::idx#10 +char testSBytes::idx#11 +char testSBytes::idx#12 +char testSBytes::idx#2 +char testSBytes::idx#3 +char testSBytes::idx#4 +char testSBytes::idx#5 +char testSBytes::idx#6 +char testSBytes::idx#7 +char testSBytes::idx#8 +char testSBytes::idx#9 Adding number conversion cast (unumber) $c in testBytes::SCREEN[testBytes::idx#0] = $c Adding number conversion cast (unumber) 6+6 in testBytes::SCREEN[testBytes::idx#1] = 6+6 @@ -175,13 +175,13 @@ Inlining cast testSBytes::SCREEN[testSBytes::idx#8] = (snumber)-4&-9 Inlining cast testSBytes::SCREEN[testSBytes::idx#9] = (snumber)-$10|-$fc Inlining cast testSBytes::SCREEN[testSBytes::idx#10] = (snumber)-2-2*$f/5 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (signed byte*) 1064 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (signed char *) 1064 Simplifying constant integer cast $c Simplifying constant integer cast -$c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c -Finalized signed number type (signed byte) -$c +Finalized unsigned number type (char) $c +Finalized signed number type (signed char) -$c Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [6] testBytes::SCREEN[testBytes::idx#1] = (unumber)6+6 Constant right-side identified [8] testBytes::SCREEN[testBytes::idx#2] = (unumber)$12-6 @@ -410,60 +410,60 @@ Simplifying constant integer increment ++8 Simplifying constant integer increment ++9 Simplifying constant integer increment ++$a Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $12 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (word) $714 -Finalized unsigned number type (word) $708 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $1c -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (word) $1000 -Finalized unsigned number type (byte) $c -Finalized signed number type (signed byte) -6 -Finalized unsigned number type (byte) 6 -Finalized signed number type (signed byte) -$12 -Finalized unsigned number type (byte) 6 -Finalized signed number type (signed word) -$714 -Finalized unsigned number type (word) $708 -Finalized signed number type (signed byte) -1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 6 -Finalized signed number type (signed byte) -2 -Finalized unsigned number type (byte) 6 -Finalized signed number type (signed byte) -3 -Finalized unsigned number type (byte) 2 -Finalized signed number type (signed byte) -$18 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) -4 -Finalized signed number type (signed byte) -9 -Finalized signed number type (signed byte) -$10 -Finalized signed number type (signed word) -$fc -Finalized signed number type (signed byte) -2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (word) $1000 -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $12 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (unsigned int) $714 +Finalized unsigned number type (unsigned int) $708 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $1c +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 5 +Finalized unsigned number type (unsigned int) $1000 +Finalized unsigned number type (char) $c +Finalized signed number type (signed char) -6 +Finalized unsigned number type (char) 6 +Finalized signed number type (signed char) -$12 +Finalized unsigned number type (char) 6 +Finalized signed number type (int) -$714 +Finalized unsigned number type (unsigned int) $708 +Finalized signed number type (signed char) -1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 6 +Finalized signed number type (signed char) -2 +Finalized unsigned number type (char) 6 +Finalized signed number type (signed char) -3 +Finalized unsigned number type (char) 2 +Finalized signed number type (signed char) -$18 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) -4 +Finalized signed number type (signed char) -9 +Finalized signed number type (signed char) -$10 +Finalized signed number type (int) -$fc +Finalized signed number type (signed char) -2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 5 +Finalized unsigned number type (unsigned int) $1000 +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 6+6 Simplifying constant integer cast $12-6 @@ -496,11 +496,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call testBytes + [1] call testBytes to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call testSBytes + [3] call testSBytes to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -511,7 +511,7 @@ testBytes: scope:[testBytes] from main [5] *testBytes::SCREEN = $c [6] *(testBytes::SCREEN+1) = 6+6 [7] *(testBytes::SCREEN+2) = $12-6 - [8] *(testBytes::SCREEN+3) = (byte)$714-$708 + [8] *(testBytes::SCREEN+3) = (char)$714-$708 [9] *(testBytes::SCREEN+4) = 1+2+3+6 [10] *(testBytes::SCREEN+5) = 2*6 [11] *(testBytes::SCREEN+6) = 3<<2 @@ -520,7 +520,7 @@ testBytes: scope:[testBytes] from main [14] *(testBytes::SCREEN+9) = 4|8 [15] *(testBytes::SCREEN+$a) = 5^9 [16] *(testBytes::SCREEN+$b) = 2+2*$f/5 - [17] *(testBytes::SCREEN+$c) = (byte)$1000+$c + [17] *(testBytes::SCREEN+$c) = (char)$1000+$c to:testBytes::@return testBytes::@return: scope:[testBytes] from testBytes [18] return @@ -529,17 +529,17 @@ testBytes::@return: scope:[testBytes] from testBytes void testSBytes() testSBytes: scope:[testSBytes] from main::@1 [19] *testSBytes::SCREEN = -$c - [20] *(testSBytes::SCREEN+1) = (signed byte)-6-6 - [21] *(testSBytes::SCREEN+2) = (signed byte)-$12+6 - [22] *(testSBytes::SCREEN+3) = (signed byte)-$714+$708 - [23] *(testSBytes::SCREEN+4) = (signed byte)-1-2-3-6 - [24] *(testSBytes::SCREEN+5) = (signed byte)-2*6 + [20] *(testSBytes::SCREEN+1) = (signed char)-6-6 + [21] *(testSBytes::SCREEN+2) = (signed char)-$12+6 + [22] *(testSBytes::SCREEN+3) = (signed char)-$714+$708 + [23] *(testSBytes::SCREEN+4) = (signed char)-1-2-3-6 + [24] *(testSBytes::SCREEN+5) = (signed char)-2*6 [25] *(testSBytes::SCREEN+6) = -3<<2 [26] *(testSBytes::SCREEN+7) = -$18>>1 [27] *(testSBytes::SCREEN+8) = -4&-9 - [28] *(testSBytes::SCREEN+9) = (signed byte)-$10|-$fc - [29] *(testSBytes::SCREEN+$a) = (signed byte)-2-2*$f/5 - [30] *(testSBytes::SCREEN+$b) = (signed byte)$1000-$c + [28] *(testSBytes::SCREEN+9) = (signed char)-$10|-$fc + [29] *(testSBytes::SCREEN+$a) = (signed char)-2-2*$f/5 + [30] *(testSBytes::SCREEN+$b) = (signed char)$1000-$c to:testSBytes::@return testSBytes::@return: scope:[testSBytes] from testSBytes [31] return @@ -549,9 +549,9 @@ testSBytes::@return: scope:[testSBytes] from testSBytes VARIABLE REGISTER WEIGHTS void main() void testBytes() -byte testBytes::idx +char testBytes::idx void testSBytes() -byte testSBytes::idx +char testSBytes::idx Initial phi equivalence classes Complete equivalence classes @@ -559,7 +559,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [5] *testBytes::SCREEN = $c [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [6] *(testBytes::SCREEN+1) = 6+6 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [7] *(testBytes::SCREEN+2) = $12-6 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a -Statement [8] *(testBytes::SCREEN+3) = (byte)$714-$708 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a +Statement [8] *(testBytes::SCREEN+3) = (char)$714-$708 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [9] *(testBytes::SCREEN+4) = 1+2+3+6 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [10] *(testBytes::SCREEN+5) = 2*6 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [11] *(testBytes::SCREEN+6) = 3<<2 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a @@ -568,19 +568,19 @@ Statement [13] *(testBytes::SCREEN+8) = $f&$1c [ ] ( testBytes:1 [ ] { } ) alwa Statement [14] *(testBytes::SCREEN+9) = 4|8 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [15] *(testBytes::SCREEN+$a) = 5^9 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [16] *(testBytes::SCREEN+$b) = 2+2*$f/5 [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a -Statement [17] *(testBytes::SCREEN+$c) = (byte)$1000+$c [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a +Statement [17] *(testBytes::SCREEN+$c) = (char)$1000+$c [ ] ( testBytes:1 [ ] { } ) always clobbers reg byte a Statement [19] *testSBytes::SCREEN = -$c [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [20] *(testSBytes::SCREEN+1) = (signed byte)-6-6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [21] *(testSBytes::SCREEN+2) = (signed byte)-$12+6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [22] *(testSBytes::SCREEN+3) = (signed byte)-$714+$708 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [23] *(testSBytes::SCREEN+4) = (signed byte)-1-2-3-6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [24] *(testSBytes::SCREEN+5) = (signed byte)-2*6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [20] *(testSBytes::SCREEN+1) = (signed char)-6-6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [21] *(testSBytes::SCREEN+2) = (signed char)-$12+6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [22] *(testSBytes::SCREEN+3) = (signed char)-$714+$708 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [23] *(testSBytes::SCREEN+4) = (signed char)-1-2-3-6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [24] *(testSBytes::SCREEN+5) = (signed char)-2*6 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a Statement [25] *(testSBytes::SCREEN+6) = -3<<2 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a Statement [26] *(testSBytes::SCREEN+7) = -$18>>1 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a Statement [27] *(testSBytes::SCREEN+8) = -4&-9 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [28] *(testSBytes::SCREEN+9) = (signed byte)-$10|-$fc [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [29] *(testSBytes::SCREEN+$a) = (signed byte)-2-2*$f/5 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a -Statement [30] *(testSBytes::SCREEN+$b) = (signed byte)$1000-$c [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [28] *(testSBytes::SCREEN+9) = (signed char)-$10|-$fc [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [29] *(testSBytes::SCREEN+$a) = (signed char)-2-2*$f/5 [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a +Statement [30] *(testSBytes::SCREEN+$b) = (signed char)$1000-$c [ ] ( testSBytes:3 [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -609,14 +609,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call testBytes + // [1] call testBytes jsr testBytes // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call testSBytes + // [3] call testSBytes jsr testSBytes jmp __breturn // main::@return @@ -637,7 +637,7 @@ testBytes: { // [7] *(testBytes::SCREEN+2) = $12-6 -- _deref_pbuc1=vbuc2 lda #$12-6 sta SCREEN+2 - // [8] *(testBytes::SCREEN+3) = (byte)$714-$708 -- _deref_pbuc1=vbuc2 + // [8] *(testBytes::SCREEN+3) = (char)$714-$708 -- _deref_pbuc1=vbuc2 lda #$714-$708 sta SCREEN+3 // [9] *(testBytes::SCREEN+4) = 1+2+3+6 -- _deref_pbuc1=vbuc2 @@ -664,7 +664,7 @@ testBytes: { // [16] *(testBytes::SCREEN+$b) = 2+2*$f/5 -- _deref_pbuc1=vbuc2 lda #(2+2)*$f/5 sta SCREEN+$b - // [17] *(testBytes::SCREEN+$c) = (byte)$1000+$c -- _deref_pbuc1=vbuc2 + // [17] *(testBytes::SCREEN+$c) = (char)$1000+$c -- _deref_pbuc1=vbuc2 lda #$ff&$1000+$c sta SCREEN+$c jmp __breturn @@ -680,19 +680,19 @@ testSBytes: { // [19] *testSBytes::SCREEN = -$c -- _deref_pbsc1=vbsc2 lda #-$c sta SCREEN - // [20] *(testSBytes::SCREEN+1) = (signed byte)-6-6 -- _deref_pbsc1=vbsc2 + // [20] *(testSBytes::SCREEN+1) = (signed char)-6-6 -- _deref_pbsc1=vbsc2 lda #-6-6 sta SCREEN+1 - // [21] *(testSBytes::SCREEN+2) = (signed byte)-$12+6 -- _deref_pbsc1=vbsc2 + // [21] *(testSBytes::SCREEN+2) = (signed char)-$12+6 -- _deref_pbsc1=vbsc2 lda #-$12+6 sta SCREEN+2 - // [22] *(testSBytes::SCREEN+3) = (signed byte)-$714+$708 -- _deref_pbsc1=vbsc2 + // [22] *(testSBytes::SCREEN+3) = (signed char)-$714+$708 -- _deref_pbsc1=vbsc2 lda #-$714+$708 sta SCREEN+3 - // [23] *(testSBytes::SCREEN+4) = (signed byte)-1-2-3-6 -- _deref_pbsc1=vbsc2 + // [23] *(testSBytes::SCREEN+4) = (signed char)-1-2-3-6 -- _deref_pbsc1=vbsc2 lda #-1-2-3-6 sta SCREEN+4 - // [24] *(testSBytes::SCREEN+5) = (signed byte)-2*6 -- _deref_pbsc1=vbsc2 + // [24] *(testSBytes::SCREEN+5) = (signed char)-2*6 -- _deref_pbsc1=vbsc2 lda #-2*6 sta SCREEN+5 // [25] *(testSBytes::SCREEN+6) = -3<<2 -- _deref_pbsc1=vbsc2 @@ -704,13 +704,13 @@ testSBytes: { // [27] *(testSBytes::SCREEN+8) = -4&-9 -- _deref_pbsc1=vbsc2 lda #-4&-9 sta SCREEN+8 - // [28] *(testSBytes::SCREEN+9) = (signed byte)-$10|-$fc -- _deref_pbsc1=vbsc2 + // [28] *(testSBytes::SCREEN+9) = (signed char)-$10|-$fc -- _deref_pbsc1=vbsc2 lda #-$10|-$fc sta SCREEN+9 - // [29] *(testSBytes::SCREEN+$a) = (signed byte)-2-2*$f/5 -- _deref_pbsc1=vbsc2 + // [29] *(testSBytes::SCREEN+$a) = (signed char)-2-2*$f/5 -- _deref_pbsc1=vbsc2 lda #(-2-2)*$f/5 sta SCREEN+$a - // [30] *(testSBytes::SCREEN+$b) = (signed byte)$1000-$c -- _deref_pbsc1=vbsc2 + // [30] *(testSBytes::SCREEN+$b) = (signed char)$1000-$c -- _deref_pbsc1=vbsc2 lda #$ff&$1000-$c sta SCREEN+$b jmp __breturn @@ -738,11 +738,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() void testBytes() -constant byte* const testBytes::SCREEN = (byte*) 1024 -byte testBytes::idx +__constant char * const testBytes::SCREEN = (char *) 1024 +char testBytes::idx void testSBytes() -constant signed byte* const testSBytes::SCREEN = (signed byte*) 1064 -byte testSBytes::idx +__constant signed char * const testSBytes::SCREEN = (signed char *) 1064 +char testSBytes::idx @@ -765,12 +765,12 @@ Score: 180 // main main: { // testBytes() - // [1] call testBytes + // [1] call testBytes jsr testBytes // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // testSBytes() - // [3] call testSBytes + // [3] call testSBytes jsr testSBytes // main::@return // } @@ -794,7 +794,7 @@ testBytes: { lda #$12-6 sta SCREEN+2 // SCREEN[idx++] = 1812-1800 - // [8] *(testBytes::SCREEN+3) = (byte)$714-$708 -- _deref_pbuc1=vbuc2 + // [8] *(testBytes::SCREEN+3) = (char)$714-$708 -- _deref_pbuc1=vbuc2 lda #$714-$708 sta SCREEN+3 // SCREEN[idx++] = 1+2+3+6 @@ -830,7 +830,7 @@ testBytes: { lda #(2+2)*$f/5 sta SCREEN+$b // SCREEN[idx++] = (byte)(4096+12) - // [17] *(testBytes::SCREEN+$c) = (byte)$1000+$c -- _deref_pbuc1=vbuc2 + // [17] *(testBytes::SCREEN+$c) = (char)$1000+$c -- _deref_pbuc1=vbuc2 lda #$ff&$1000+$c sta SCREEN+$c // testBytes::@return @@ -847,23 +847,23 @@ testSBytes: { lda #-$c sta SCREEN // SCREEN[idx++] = -6-6 - // [20] *(testSBytes::SCREEN+1) = (signed byte)-6-6 -- _deref_pbsc1=vbsc2 + // [20] *(testSBytes::SCREEN+1) = (signed char)-6-6 -- _deref_pbsc1=vbsc2 lda #-6-6 sta SCREEN+1 // SCREEN[idx++] = -18+6 - // [21] *(testSBytes::SCREEN+2) = (signed byte)-$12+6 -- _deref_pbsc1=vbsc2 + // [21] *(testSBytes::SCREEN+2) = (signed char)-$12+6 -- _deref_pbsc1=vbsc2 lda #-$12+6 sta SCREEN+2 // SCREEN[idx++] = -1812+1800 - // [22] *(testSBytes::SCREEN+3) = (signed byte)-$714+$708 -- _deref_pbsc1=vbsc2 + // [22] *(testSBytes::SCREEN+3) = (signed char)-$714+$708 -- _deref_pbsc1=vbsc2 lda #-$714+$708 sta SCREEN+3 // SCREEN[idx++] = -1-2-3-6 - // [23] *(testSBytes::SCREEN+4) = (signed byte)-1-2-3-6 -- _deref_pbsc1=vbsc2 + // [23] *(testSBytes::SCREEN+4) = (signed char)-1-2-3-6 -- _deref_pbsc1=vbsc2 lda #-1-2-3-6 sta SCREEN+4 // SCREEN[idx++] = -2*6 - // [24] *(testSBytes::SCREEN+5) = (signed byte)-2*6 -- _deref_pbsc1=vbsc2 + // [24] *(testSBytes::SCREEN+5) = (signed char)-2*6 -- _deref_pbsc1=vbsc2 lda #-2*6 sta SCREEN+5 // SCREEN[idx++] = -3<<2 @@ -879,15 +879,15 @@ testSBytes: { lda #-4&-9 sta SCREEN+8 // SCREEN[idx++] = -0x10|-0xfc - // [28] *(testSBytes::SCREEN+9) = (signed byte)-$10|-$fc -- _deref_pbsc1=vbsc2 + // [28] *(testSBytes::SCREEN+9) = (signed char)-$10|-$fc -- _deref_pbsc1=vbsc2 lda #-$10|-$fc sta SCREEN+9 // SCREEN[idx++] = (-2-2)*(15/5) - // [29] *(testSBytes::SCREEN+$a) = (signed byte)-2-2*$f/5 -- _deref_pbsc1=vbsc2 + // [29] *(testSBytes::SCREEN+$a) = (signed char)-2-2*$f/5 -- _deref_pbsc1=vbsc2 lda #(-2-2)*$f/5 sta SCREEN+$a // SCREEN[idx++] = (signed byte)(4096-12) - // [30] *(testSBytes::SCREEN+$b) = (signed byte)$1000-$c -- _deref_pbsc1=vbsc2 + // [30] *(testSBytes::SCREEN+$b) = (signed char)$1000-$c -- _deref_pbsc1=vbsc2 lda #$ff&$1000-$c sta SCREEN+$b // testSBytes::@return diff --git a/src/test/ref/number-type.sym b/src/test/ref/number-type.sym index a3924cb74..bbf422424 100644 --- a/src/test/ref/number-type.sym +++ b/src/test/ref/number-type.sym @@ -1,8 +1,8 @@ void main() void testBytes() -constant byte* const testBytes::SCREEN = (byte*) 1024 -byte testBytes::idx +__constant char * const testBytes::SCREEN = (char *) 1024 +char testBytes::idx void testSBytes() -constant signed byte* const testSBytes::SCREEN = (signed byte*) 1064 -byte testSBytes::idx +__constant signed char * const testSBytes::SCREEN = (signed char *) 1064 +char testSBytes::idx diff --git a/src/test/ref/operator-byte0-initializer.log b/src/test/ref/operator-byte0-initializer.log index 4340c4907..c71622bed 100644 --- a/src/test/ref/operator-byte0-initializer.log +++ b/src/test/ref/operator-byte0-initializer.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,32 +28,32 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* VALS[] = { byte0 $756b5b3, byte1 $756b5b3, byte2 $756b5b3, byte3 $756b5b3 } +__constant char VALS[] = { byte0 $756b5b3, byte1 $756b5b3, byte2 $756b5b3, byte3 $756b5b3 } void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) 0 in main::SCREEN[main::i#0] = VALS[0] Adding number conversion cast (unumber) 1 in main::SCREEN[main::i#1] = VALS[1] Adding number conversion cast (unumber) 2 in main::SCREEN[main::i#2] = VALS[2] Adding number conversion cast (unumber) 3 in main::SCREEN[main::i#3] = VALS[3] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -102,10 +102,10 @@ Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer increment ++1 Simplifying constant integer increment ++2 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (dword) $756b5b3 -Finalized unsigned number type (dword) $756b5b3 -Finalized unsigned number type (dword) $756b5b3 -Finalized unsigned number type (dword) $756b5b3 +Finalized unsigned number type (unsigned long) $756b5b3 +Finalized unsigned number type (unsigned long) $756b5b3 +Finalized unsigned number type (unsigned long) $756b5b3 +Finalized unsigned number type (unsigned long) $756b5b3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -128,7 +128,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::i +char main::i Initial phi equivalence classes Complete equivalence classes @@ -191,10 +191,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* VALS[] = { byte0 $756b5b3, byte1 $756b5b3, byte2 $756b5b3, byte3 $756b5b3 } +__constant char VALS[] = { byte0 $756b5b3, byte1 $756b5b3, byte2 $756b5b3, byte3 $756b5b3 } void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i +__constant char * const main::SCREEN = (char *) 1024 +char main::i diff --git a/src/test/ref/operator-byte0-initializer.sym b/src/test/ref/operator-byte0-initializer.sym index 16a0719a6..1e3e0a0dc 100644 --- a/src/test/ref/operator-byte0-initializer.sym +++ b/src/test/ref/operator-byte0-initializer.sym @@ -1,5 +1,5 @@ -constant byte* VALS[] = { byte0 $756b5b3, byte1 $756b5b3, byte2 $756b5b3, byte3 $756b5b3 } +__constant char VALS[] = { byte0 $756b5b3, byte1 $756b5b3, byte2 $756b5b3, byte3 $756b5b3 } void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i +__constant char * const main::SCREEN = (char *) 1024 +char main::i diff --git a/src/test/ref/operator-byte0-lvalue-1.asm b/src/test/ref/operator-byte0-lvalue-1.asm index 01abdb7ec..4156229fc 100644 --- a/src/test/ref/operator-byte0-lvalue-1.asm +++ b/src/test/ref/operator-byte0-lvalue-1.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400 @@ -19,13 +19,13 @@ main: { lda #>$3039 sta SCREEN+1 lda #<$3039&$ffffff00|1 - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda #>$3039&$ffffff00|1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 lda #<($3039&$ffffff00|1)&$ffff00ff|2*$100 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda #>($3039&$ffffff00|1)&$ffff00ff|2*$100 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 lda #3 sta.z i lda #0 diff --git a/src/test/ref/operator-byte0-lvalue-1.cfg b/src/test/ref/operator-byte0-lvalue-1.cfg index c5377e26a..f9ef6d2ca 100644 --- a/src/test/ref/operator-byte0-lvalue-1.cfg +++ b/src/test/ref/operator-byte0-lvalue-1.cfg @@ -2,8 +2,8 @@ void main() main: scope:[main] from [0] *main::SCREEN = $3039 - [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 - [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 + [1] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1 + [2] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1&$ffff00ff|2*$100 to:main::@1 main::@1: scope:[main] from main main::@2 [3] main::i#6 = phi( main/3, main::@2/main::i#5 ) diff --git a/src/test/ref/operator-byte0-lvalue-1.log b/src/test/ref/operator-byte0-lvalue-1.log index b2573a104..869c946c7 100644 --- a/src/test/ref/operator-byte0-lvalue-1.log +++ b/src/test/ref/operator-byte0-lvalue-1.log @@ -5,17 +5,17 @@ void main() main: scope:[main] from __start main::w#0 = $3039 main::i#0 = 0 - main::$7 = main::i#0 * SIZEOF_WORD + main::$7 = main::i#0 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$7] = main::w#0 main::i#1 = ++ main::i#0 main::$4 = 1 main::w#1 = main::w#0 byte0= main::$4 - main::$8 = main::i#1 * SIZEOF_WORD + main::$8 = main::i#1 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$8] = main::w#1 main::i#2 = ++ main::i#1 main::$5 = 2 main::w#2 = main::w#1 byte1= main::$5 - main::$9 = main::i#2 * SIZEOF_WORD + main::$9 = main::i#2 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$9] = main::w#2 main::i#3 = ++ main::i#2 main::j#0 = 0 @@ -29,15 +29,15 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::i#6 = phi( main::@1/main::i#7 ) main::j#3 = phi( main::@1/main::j#2 ) - main::$10 = main::j#3 * SIZEOF_WORD - main::$11 = main::i#6 * SIZEOF_WORD + main::$10 = main::j#3 * SIZEOF_UNSIGNED_INT + main::$11 = main::i#6 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$11] = main::ws[main::$10] main::i#4 = ++ main::i#6 main::$6 = 2 - main::$12 = main::j#3 * SIZEOF_WORD + main::$12 = main::j#3 * SIZEOF_UNSIGNED_INT main::ws[main::$12] = main::ws[main::$12] byte0= main::$6 - main::$13 = main::j#3 * SIZEOF_WORD - main::$14 = main::i#4 * SIZEOF_WORD + main::$13 = main::j#3 * SIZEOF_UNSIGNED_INT + main::$14 = main::i#4 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$14] = main::ws[main::$13] main::i#5 = ++ main::i#4 main::j#1 = ++ main::j#3 @@ -48,7 +48,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -57,41 +57,41 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$10 -byte~ main::$11 -byte~ main::$12 -byte~ main::$13 -byte~ main::$14 -bool~ main::$2 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -byte~ main::$7 -byte~ main::$8 -byte~ main::$9 -constant word* const main::SCREEN = (word*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -word main::w -word main::w#0 -word main::w#1 -word main::w#2 -constant word* main::ws[] = { $5ba0, $8707 } +char main::$10 +char main::$11 +char main::$12 +char main::$13 +char main::$14 +bool main::$2 +char main::$4 +char main::$5 +char main::$6 +char main::$7 +char main::$8 +char main::$9 +__constant unsigned int * const main::SCREEN = (unsigned int *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +unsigned int main::w#2 +__constant unsigned int main::ws[] = { $5ba0, $8707 } Adding number conversion cast (unumber) 1 in main::$4 = 1 Adding number conversion cast (unumber) 2 in main::$5 = 2 @@ -102,22 +102,22 @@ Inlining cast main::$4 = (unumber)1 Inlining cast main::$5 = (unumber)2 Inlining cast main::$6 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::j#2 = main::j#3 Alias main::i#6 = main::i#7 Successful SSA optimization Pass2AliasElimination -Identified duplicate assignment right side [25] main::$12 = main::j#2 * SIZEOF_WORD -Identified duplicate assignment right side [27] main::$13 = main::j#2 * SIZEOF_WORD +Identified duplicate assignment right side [25] main::$12 = main::j#2 * SIZEOF_UNSIGNED_INT +Identified duplicate assignment right side [27] main::$13 = main::j#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$2 [18] if(main::j#2<2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -135,14 +135,14 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Alias main::$12 = main::$10 main::$13 Successful SSA optimization Pass2AliasElimination -Constant right-side identified [0] main::$7 = main::i#0 * SIZEOF_WORD +Constant right-side identified [0] main::$7 = main::i#0 * SIZEOF_UNSIGNED_INT Constant right-side identified [2] main::i#1 = ++ main::i#0 Constant right-side identified [3] main::w#1 = main::w#0 byte0= main::$4 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$7 = main::i#0*SIZEOF_WORD +Constant main::$7 = main::i#0*SIZEOF_UNSIGNED_INT Constant main::i#1 = ++main::i#0 Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero main::i#0*SIZEOF_WORD in +Simplifying constant evaluating to zero main::i#0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[main::$7] = main::w#0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -158,20 +158,20 @@ Simplifying constant integer cast (unumber)main::w#0&(unumber)$ffffff00|main::$4 Simplifying constant integer cast main::w#0&(unumber)$ffffff00 Simplifying constant integer cast $ffffff00 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (dword) $ffffff00 +Finalized unsigned number type (unsigned long) $ffffff00 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant right-side identified [2] main::$8 = main::i#1 * SIZEOF_WORD +Constant right-side identified [2] main::$8 = main::i#1 * SIZEOF_UNSIGNED_INT Constant right-side identified [4] main::i#2 = ++ main::i#1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::w#1 = main::w#0&$ffffff00|main::$4 -Constant main::$8 = main::i#1*SIZEOF_WORD +Constant main::$8 = main::i#1*SIZEOF_UNSIGNED_INT Constant main::i#2 = ++main::i#1 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [2] main::w#2 = main::w#1 byte1= main::$5 -Constant right-side identified [3] main::$9 = main::i#2 * SIZEOF_WORD +Constant right-side identified [3] main::$9 = main::i#2 * SIZEOF_UNSIGNED_INT Constant right-side identified [5] main::i#3 = ++ main::i#2 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$9 = main::i#2*SIZEOF_WORD +Constant main::$9 = main::i#2*SIZEOF_UNSIGNED_INT Constant main::i#3 = ++main::i#2 Successful SSA optimization Pass2ConstantIdentification Adding number conversion cast (unumber) main::w#1&$ffff00ff|main::$5*$100 in main::w#2 = main::w#1&$ffff00ff|main::$5*$100 @@ -184,14 +184,14 @@ Simplifying constant integer cast main::w#1&(unumber)$ffff00ff|main::$5*(unumber Simplifying constant integer cast $ffff00ff Simplifying constant integer cast $100 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (dword) $ffff00ff -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned long) $ffff00ff +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::w#2 = main::w#1&$ffff00ff|main::$5*$100 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [5] main::$12 = main::j#2 * SIZEOF_WORD -Rewriting multiplication to use shift [6] main::$11 = main::i#6 * SIZEOF_WORD -Rewriting multiplication to use shift [10] main::$14 = main::i#4 * SIZEOF_WORD +Rewriting multiplication to use shift [5] main::$12 = main::j#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [6] main::$11 = main::i#6 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [10] main::$14 = main::i#4 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with different constant siblings main::w#0 Inlining constant with var siblings main::i#0 @@ -212,11 +212,11 @@ Constant inlined main::i#2 = ++++0 Constant inlined main::$4 = 1 Constant inlined main::j#0 = 0 Constant inlined main::i#1 = ++0 -Constant inlined main::$9 = ++++0*SIZEOF_WORD -Constant inlined main::$8 = ++0*SIZEOF_WORD +Constant inlined main::$9 = ++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$8 = ++0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_WORD) +Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 @@ -237,8 +237,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *main::SCREEN = $3039 - [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 - [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 + [1] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1 + [2] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1&$ffff00ff|2*$100 to:main::@1 main::@1: scope:[main] from main main::@2 [3] main::i#6 = phi( main/3, main::@2/main::i#5 ) @@ -263,17 +263,17 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$11 22.0 -byte~ main::$12 9.166666666666666 -byte~ main::$14 22.0 -byte main::i -byte main::i#4 8.25 -byte main::i#5 11.0 -byte main::i#6 6.6000000000000005 -byte main::j -byte main::j#1 22.0 -byte main::j#2 4.4 -word main::w +char main::$11 // 22.0 +char main::$12 // 9.166666666666666 +char main::$14 // 22.0 +char main::i +char main::i#4 // 8.25 +char main::i#5 // 11.0 +char main::i#6 // 6.6000000000000005 +char main::j +char main::j#1 // 22.0 +char main::j#2 // 4.4 +unsigned int main::w Initial phi equivalence classes [ main::j#2 main::j#1 ] @@ -297,8 +297,8 @@ Allocated zp[1]:6 [ main::i#4 ] Allocated zp[1]:7 [ main::$14 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *main::SCREEN = $3039 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1&$ffff00ff|2*$100 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] main::$12 = main::j#2 << 1 [ main::j#2 main::i#6 main::$12 ] ( [ main::j#2 main::i#6 main::$12 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::j#2 main::j#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i#6 main::i#5 ] @@ -310,8 +310,8 @@ Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::i Statement [11] main::$14 = main::i#4 << 1 [ main::j#2 main::$12 main::i#4 main::$14 ] ( [ main::j#2 main::$12 main::i#4 main::$14 ] { } ) always clobbers reg byte a Statement [12] main::SCREEN[main::$14] = main::ws[main::$12] [ main::j#2 main::i#4 ] ( [ main::j#2 main::i#4 ] { } ) always clobbers reg byte a Statement [0] *main::SCREEN = $3039 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1&$ffff00ff|2*$100 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] main::$12 = main::j#2 << 1 [ main::j#2 main::i#6 main::$12 ] ( [ main::j#2 main::i#6 main::$12 ] { } ) always clobbers reg byte a Statement [7] main::$11 = main::i#6 << 1 [ main::j#2 main::i#6 main::$12 main::$11 ] ( [ main::j#2 main::i#6 main::$12 main::$11 ] { } ) always clobbers reg byte a Statement [8] main::SCREEN[main::$11] = main::ws[main::$12] [ main::j#2 main::i#6 main::$12 ] ( [ main::j#2 main::i#6 main::$12 ] { } ) always clobbers reg byte a @@ -355,7 +355,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -367,16 +367,16 @@ main: { sta SCREEN lda #>$3039 sta SCREEN+1 - // [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 -- _deref_pwuc1=vwuc2 + // [1] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1 -- _deref_pwuc1=vwuc2 lda #<$3039&$ffffff00|1 - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda #>$3039&$ffffff00|1 - sta SCREEN+1*SIZEOF_WORD+1 - // [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 -- _deref_pwuc1=vwuc2 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 + // [2] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1&$ffff00ff|2*$100 -- _deref_pwuc1=vwuc2 lda #<($3039&$ffffff00|1)&$ffff00ff|2*$100 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda #>($3039&$ffffff00|1)&$ffff00ff|2*$100 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // [3] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: // [3] phi main::i#6 = 3 [phi:main->main::@1#0] -- vbuz1=vbuc1 @@ -450,21 +450,21 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$11 reg byte a 22.0 -byte~ main::$12 reg byte x 9.166666666666666 -byte~ main::$14 reg byte a 22.0 -constant word* const main::SCREEN = (word*) 1024 -byte main::i -byte main::i#4 i zp[1]:3 8.25 -byte main::i#5 i zp[1]:3 11.0 -byte main::i#6 i zp[1]:3 6.6000000000000005 -byte main::j -byte main::j#1 j zp[1]:2 22.0 -byte main::j#2 j zp[1]:2 4.4 -word main::w -constant word* main::ws[] = { $5ba0, $8707 } +char main::$11 // reg byte a 22.0 +char main::$12 // reg byte x 9.166666666666666 +char main::$14 // reg byte a 22.0 +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +char main::i +char main::i#4 // i zp[1]:3 8.25 +char main::i#5 // i zp[1]:3 11.0 +char main::i#6 // i zp[1]:3 6.6000000000000005 +char main::j +char main::j#1 // j zp[1]:2 22.0 +char main::j#2 // j zp[1]:2 4.4 +unsigned int main::w +__constant unsigned int main::ws[] = { $5ba0, $8707 } zp[1]:2 [ main::j#2 main::j#1 ] zp[1]:3 [ main::i#6 main::i#5 main::i#4 ] @@ -488,7 +488,7 @@ Score: 1057 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -501,16 +501,16 @@ main: { sta SCREEN lda #>$3039 sta SCREEN+1 - // [1] *(main::SCREEN+1*SIZEOF_WORD) = $3039&$ffffff00|1 -- _deref_pwuc1=vwuc2 + // [1] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1 -- _deref_pwuc1=vwuc2 lda #<$3039&$ffffff00|1 - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda #>$3039&$ffffff00|1 - sta SCREEN+1*SIZEOF_WORD+1 - // [2] *(main::SCREEN+2*SIZEOF_WORD) = $3039&$ffffff00|1&$ffff00ff|2*$100 -- _deref_pwuc1=vwuc2 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 + // [2] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = $3039&$ffffff00|1&$ffff00ff|2*$100 -- _deref_pwuc1=vwuc2 lda #<($3039&$ffffff00|1)&$ffff00ff|2*$100 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda #>($3039&$ffffff00|1)&$ffff00ff|2*$100 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // [3] phi from main to main::@1 [phi:main->main::@1] // [3] phi main::i#6 = 3 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #3 diff --git a/src/test/ref/operator-byte0-lvalue-1.sym b/src/test/ref/operator-byte0-lvalue-1.sym index 5a82cae62..21c7eadc7 100644 --- a/src/test/ref/operator-byte0-lvalue-1.sym +++ b/src/test/ref/operator-byte0-lvalue-1.sym @@ -1,18 +1,18 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$11 reg byte a 22.0 -byte~ main::$12 reg byte x 9.166666666666666 -byte~ main::$14 reg byte a 22.0 -constant word* const main::SCREEN = (word*) 1024 -byte main::i -byte main::i#4 i zp[1]:3 8.25 -byte main::i#5 i zp[1]:3 11.0 -byte main::i#6 i zp[1]:3 6.6000000000000005 -byte main::j -byte main::j#1 j zp[1]:2 22.0 -byte main::j#2 j zp[1]:2 4.4 -word main::w -constant word* main::ws[] = { $5ba0, $8707 } +char main::$11 // reg byte a 22.0 +char main::$12 // reg byte x 9.166666666666666 +char main::$14 // reg byte a 22.0 +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +char main::i +char main::i#4 // i zp[1]:3 8.25 +char main::i#5 // i zp[1]:3 11.0 +char main::i#6 // i zp[1]:3 6.6000000000000005 +char main::j +char main::j#1 // j zp[1]:2 22.0 +char main::j#2 // j zp[1]:2 4.4 +unsigned int main::w +__constant unsigned int main::ws[] = { $5ba0, $8707 } zp[1]:2 [ main::j#2 main::j#1 ] zp[1]:3 [ main::i#6 main::i#5 main::i#4 ] diff --git a/src/test/ref/operator-byte0.cfg b/src/test/ref/operator-byte0.cfg index 4815702f9..aa6a544e3 100644 --- a/src/test/ref/operator-byte0.cfg +++ b/src/test/ref/operator-byte0.cfg @@ -7,7 +7,7 @@ main: scope:[main] from [3] main::ws = -$b1 [4] main::du = $1e8480 [5] main::ds = -$39a4f1 - [6] main::ptr = (byte*) 0 + [6] main::ptr = (char *) 0 [7] *main::SCREEN = byte0 $11 [8] *(main::SCREEN+1) = byte0 $179 [9] main::$0 = byte0 main::bu diff --git a/src/test/ref/operator-byte0.log b/src/test/ref/operator-byte0.log index a51a139e8..d88cdf04a 100644 --- a/src/test/ref/operator-byte0.log +++ b/src/test/ref/operator-byte0.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::ws = -$b1 main::du = $1e8480 main::ds = -$39a4f1 - main::ptr = (byte*)0 + main::ptr = (char *)0 main::i#0 = 0 main::SCREEN[main::i#0] = byte0 $11 main::i#1 = ++ main::i#0 @@ -43,7 +43,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -54,35 +54,35 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -volatile signed byte main::bs loadstore -volatile byte main::bu loadstore -volatile signed dword main::ds loadstore -volatile dword main::du loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte* volatile main::ptr loadstore -volatile signed word main::ws loadstore -volatile word main::wu loadstore +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +char main::$6 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile signed char main::bs +__loadstore volatile char main::bu +__loadstore volatile long main::ds +__loadstore volatile unsigned long main::du +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__loadstore char * volatile main::ptr +__loadstore volatile int main::ws +__loadstore volatile unsigned int main::wu -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 Successful SSA optimization PassNCastSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -172,8 +172,8 @@ Simplifying constant integer increment ++5 Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) $11 -Finalized unsigned number type (word) $179 +Finalized unsigned number type (char) $11 +Finalized unsigned number type (unsigned int) $179 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -190,7 +190,7 @@ main: scope:[main] from [3] main::ws = -$b1 [4] main::du = $1e8480 [5] main::ds = -$39a4f1 - [6] main::ptr = (byte*) 0 + [6] main::ptr = (char *) 0 [7] *main::SCREEN = byte0 $11 [8] *(main::SCREEN+1) = byte0 $179 [9] main::$0 = byte0 main::bu @@ -215,21 +215,21 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 -byte~ main::$4 4.0 -byte~ main::$5 4.0 -byte~ main::$6 4.0 -volatile signed byte main::bs loadstore 0.4 -volatile byte main::bu loadstore 0.4444444444444444 -volatile signed dword main::ds loadstore 0.2857142857142857 -volatile dword main::du loadstore 0.3076923076923077 -byte main::i -byte* volatile main::ptr loadstore 0.26666666666666666 -volatile signed word main::ws loadstore 0.3333333333333333 -volatile word main::wu loadstore 0.36363636363636365 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +char main::$4 // 4.0 +char main::$5 // 4.0 +char main::$6 // 4.0 +__loadstore volatile signed char main::bs // 0.4 +__loadstore volatile char main::bu // 0.4444444444444444 +__loadstore volatile long main::ds // 0.2857142857142857 +__loadstore volatile unsigned long main::du // 0.3076923076923077 +char main::i +__loadstore char * volatile main::ptr // 0.26666666666666666 +__loadstore volatile int main::ws // 0.3333333333333333 +__loadstore volatile unsigned int main::wu // 0.36363636363636365 Initial phi equivalence classes Added variable main::bu to live range equivalence class [ main::bu ] @@ -282,7 +282,7 @@ Statement [2] main::wu = $4e20 [ main::bu main::bs main::wu ] ( [ main::bu main Statement [3] main::ws = -$b1 [ main::bu main::bs main::wu main::ws ] ( [ main::bu main::bs main::wu main::ws ] { } ) always clobbers reg byte a Statement [4] main::du = $1e8480 [ main::bu main::bs main::wu main::ws main::du ] ( [ main::bu main::bs main::wu main::ws main::du ] { } ) always clobbers reg byte a Statement [5] main::ds = -$39a4f1 [ main::bu main::bs main::wu main::ws main::du main::ds ] ( [ main::bu main::bs main::wu main::ws main::du main::ds ] { } ) always clobbers reg byte a -Statement [6] main::ptr = (byte*) 0 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [6] main::ptr = (char *) 0 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [7] *main::SCREEN = byte0 $11 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [8] *(main::SCREEN+1) = byte0 $179 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [9] main::$0 = byte0 main::bu [ main::bs main::wu main::ws main::du main::ds main::ptr main::$0 ] ( [ main::bs main::wu main::ws main::du main::ds main::ptr main::$0 ] { } ) always clobbers reg byte a @@ -378,7 +378,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // [6] main::ptr = (byte*) 0 -- pbuz1=pbuc1 + // [6] main::ptr = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr lda #>0 @@ -436,22 +436,22 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -byte~ main::$6 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed byte main::bs loadstore zp[1]:3 0.4 -volatile byte main::bu loadstore zp[1]:2 0.4444444444444444 -volatile signed dword main::ds loadstore zp[4]:12 0.2857142857142857 -volatile dword main::du loadstore zp[4]:8 0.3076923076923077 -byte main::i -byte* volatile main::ptr loadstore zp[2]:16 0.26666666666666666 -volatile signed word main::ws loadstore zp[2]:6 0.3333333333333333 -volatile word main::wu loadstore zp[2]:4 0.36363636363636365 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +char main::$6 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile signed char main::bs // zp[1]:3 0.4 +__loadstore volatile char main::bu // zp[1]:2 0.4444444444444444 +__loadstore volatile long main::ds // zp[4]:12 0.2857142857142857 +__loadstore volatile unsigned long main::du // zp[4]:8 0.3076923076923077 +char main::i +__loadstore char * volatile main::ptr // zp[2]:16 0.26666666666666666 +__loadstore volatile int main::ws // zp[2]:6 0.3333333333333333 +__loadstore volatile unsigned int main::wu // zp[2]:4 0.36363636363636365 zp[1]:2 [ main::bu ] zp[1]:3 [ main::bs ] @@ -535,7 +535,7 @@ main: { lda #>-$39a4f1>>$10 sta.z ds+3 // char * volatile ptr = (char*)0x0000 - // [6] main::ptr = (byte*) 0 -- pbuz1=pbuc1 + // [6] main::ptr = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr sta.z ptr+1 diff --git a/src/test/ref/operator-byte0.sym b/src/test/ref/operator-byte0.sym index 6e556424a..87fe9bbbf 100644 --- a/src/test/ref/operator-byte0.sym +++ b/src/test/ref/operator-byte0.sym @@ -1,20 +1,20 @@ void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -byte~ main::$6 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed byte main::bs loadstore zp[1]:3 0.4 -volatile byte main::bu loadstore zp[1]:2 0.4444444444444444 -volatile signed dword main::ds loadstore zp[4]:12 0.2857142857142857 -volatile dword main::du loadstore zp[4]:8 0.3076923076923077 -byte main::i -byte* volatile main::ptr loadstore zp[2]:16 0.26666666666666666 -volatile signed word main::ws loadstore zp[2]:6 0.3333333333333333 -volatile word main::wu loadstore zp[2]:4 0.36363636363636365 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +char main::$6 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile signed char main::bs // zp[1]:3 0.4 +__loadstore volatile char main::bu // zp[1]:2 0.4444444444444444 +__loadstore volatile long main::ds // zp[4]:12 0.2857142857142857 +__loadstore volatile unsigned long main::du // zp[4]:8 0.3076923076923077 +char main::i +__loadstore char * volatile main::ptr // zp[2]:16 0.26666666666666666 +__loadstore volatile int main::ws // zp[2]:6 0.3333333333333333 +__loadstore volatile unsigned int main::wu // zp[2]:4 0.36363636363636365 zp[1]:2 [ main::bu ] zp[1]:3 [ main::bs ] diff --git a/src/test/ref/operator-byte1.cfg b/src/test/ref/operator-byte1.cfg index ddaa7af02..8d9dbf70a 100644 --- a/src/test/ref/operator-byte1.cfg +++ b/src/test/ref/operator-byte1.cfg @@ -5,7 +5,7 @@ main: scope:[main] from [1] main::ws = -$b1 [2] main::du = $1e8480 [3] main::ds = -$39a4f1 - [4] main::ptr = (byte*) 0 + [4] main::ptr = (char *) 0 [5] *main::SCREEN = 0 [6] *(main::SCREEN+1) = byte1 $179 [7] *(main::SCREEN+2) = 0 diff --git a/src/test/ref/operator-byte1.log b/src/test/ref/operator-byte1.log index 002aee1ec..750f2f47c 100644 --- a/src/test/ref/operator-byte1.log +++ b/src/test/ref/operator-byte1.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::ws = -$b1 main::du = $1e8480 main::ds = -$39a4f1 - main::ptr = (byte*)0 + main::ptr = (char *)0 main::i#0 = 0 main::SCREEN[main::i#0] = byte1 $11 main::i#1 = ++ main::i#0 @@ -43,7 +43,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -54,35 +54,35 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -volatile signed byte main::bs loadstore -volatile byte main::bu loadstore -volatile signed dword main::ds loadstore -volatile dword main::du loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte* volatile main::ptr loadstore -volatile signed word main::ws loadstore -volatile word main::wu loadstore +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +char main::$6 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile signed char main::bs +__loadstore volatile char main::bu +__loadstore volatile long main::ds +__loadstore volatile unsigned long main::du +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__loadstore char * volatile main::ptr +__loadstore volatile int main::ws +__loadstore volatile unsigned int main::wu -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 Successful SSA optimization PassNCastSimplification Constant right-side identified [12] main::$0 = byte1 main::bu Constant right-side identified [15] main::$1 = byte1 main::bs @@ -183,7 +183,7 @@ Simplifying constant integer increment ++5 Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (word) $179 +Finalized unsigned number type (unsigned int) $179 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -198,7 +198,7 @@ main: scope:[main] from [1] main::ws = -$b1 [2] main::du = $1e8480 [3] main::ds = -$39a4f1 - [4] main::ptr = (byte*) 0 + [4] main::ptr = (char *) 0 [5] *main::SCREEN = 0 [6] *(main::SCREEN+1) = byte1 $179 [7] *(main::SCREEN+2) = 0 @@ -221,17 +221,17 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 4.0 -byte~ main::$3 4.0 -byte~ main::$4 4.0 -byte~ main::$5 4.0 -byte~ main::$6 4.0 -volatile signed dword main::ds loadstore 0.3333333333333333 -volatile dword main::du loadstore 0.36363636363636365 -byte main::i -byte* volatile main::ptr loadstore 0.3076923076923077 -volatile signed word main::ws loadstore 0.4 -volatile word main::wu loadstore 0.4444444444444444 +char main::$2 // 4.0 +char main::$3 // 4.0 +char main::$4 // 4.0 +char main::$5 // 4.0 +char main::$6 // 4.0 +__loadstore volatile long main::ds // 0.3333333333333333 +__loadstore volatile unsigned long main::du // 0.36363636363636365 +char main::i +__loadstore char * volatile main::ptr // 0.3076923076923077 +__loadstore volatile int main::ws // 0.4 +__loadstore volatile unsigned int main::wu // 0.4444444444444444 Initial phi equivalence classes Added variable main::wu to live range equivalence class [ main::wu ] @@ -270,7 +270,7 @@ Statement [0] main::wu = $4e20 [ main::wu ] ( [ main::wu ] { } ) always clobbe Statement [1] main::ws = -$b1 [ main::wu main::ws ] ( [ main::wu main::ws ] { } ) always clobbers reg byte a Statement [2] main::du = $1e8480 [ main::wu main::ws main::du ] ( [ main::wu main::ws main::du ] { } ) always clobbers reg byte a Statement [3] main::ds = -$39a4f1 [ main::wu main::ws main::du main::ds ] ( [ main::wu main::ws main::du main::ds ] { } ) always clobbers reg byte a -Statement [4] main::ptr = (byte*) 0 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [4] main::ptr = (char *) 0 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [5] *main::SCREEN = 0 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [6] *(main::SCREEN+1) = byte1 $179 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [7] *(main::SCREEN+2) = 0 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a @@ -346,7 +346,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // [4] main::ptr = (byte*) 0 -- pbuz1=pbuc1 + // [4] main::ptr = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr lda #>0 @@ -403,18 +403,18 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -byte~ main::$6 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:10 0.3333333333333333 -volatile dword main::du loadstore zp[4]:6 0.36363636363636365 -byte main::i -byte* volatile main::ptr loadstore zp[2]:14 0.3076923076923077 -volatile signed word main::ws loadstore zp[2]:4 0.4 -volatile word main::wu loadstore zp[2]:2 0.4444444444444444 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +char main::$6 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:10 0.3333333333333333 +__loadstore volatile unsigned long main::du // zp[4]:6 0.36363636363636365 +char main::i +__loadstore char * volatile main::ptr // zp[2]:14 0.3076923076923077 +__loadstore volatile int main::ws // zp[2]:4 0.4 +__loadstore volatile unsigned int main::wu // zp[2]:2 0.4444444444444444 zp[2]:2 [ main::wu ] zp[2]:4 [ main::ws ] @@ -485,7 +485,7 @@ main: { lda #>-$39a4f1>>$10 sta.z ds+3 // char * volatile ptr = (char*)0x0000 - // [4] main::ptr = (byte*) 0 -- pbuz1=pbuc1 + // [4] main::ptr = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr sta.z ptr+1 diff --git a/src/test/ref/operator-byte1.sym b/src/test/ref/operator-byte1.sym index 9ae7bfc5b..8751e1221 100644 --- a/src/test/ref/operator-byte1.sym +++ b/src/test/ref/operator-byte1.sym @@ -1,16 +1,16 @@ void main() -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -byte~ main::$6 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:10 0.3333333333333333 -volatile dword main::du loadstore zp[4]:6 0.36363636363636365 -byte main::i -byte* volatile main::ptr loadstore zp[2]:14 0.3076923076923077 -volatile signed word main::ws loadstore zp[2]:4 0.4 -volatile word main::wu loadstore zp[2]:2 0.4444444444444444 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +char main::$6 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:10 0.3333333333333333 +__loadstore volatile unsigned long main::du // zp[4]:6 0.36363636363636365 +char main::i +__loadstore char * volatile main::ptr // zp[2]:14 0.3076923076923077 +__loadstore volatile int main::ws // zp[2]:4 0.4 +__loadstore volatile unsigned int main::wu // zp[2]:2 0.4444444444444444 zp[2]:2 [ main::wu ] zp[2]:4 [ main::ws ] diff --git a/src/test/ref/operator-byte2.log b/src/test/ref/operator-byte2.log index c7992bbbf..b16b4060a 100644 --- a/src/test/ref/operator-byte2.log +++ b/src/test/ref/operator-byte2.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::ws = -$b1 main::du = $1e8480 main::ds = -$39a4f1 - main::ptr = (byte*)0 + main::ptr = (char *)0 main::i#0 = 0 main::SCREEN[main::i#0] = byte2 $11 main::i#1 = ++ main::i#0 @@ -45,7 +45,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,36 +56,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -volatile signed byte main::bs loadstore -volatile byte main::bu loadstore -volatile signed dword main::ds loadstore -volatile dword main::du loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte* volatile main::ptr loadstore -volatile signed word main::ws loadstore -volatile word main::wu loadstore +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +char main::$6 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile signed char main::bs +__loadstore volatile char main::bu +__loadstore volatile long main::ds +__loadstore volatile unsigned long main::du +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__loadstore char * volatile main::ptr +__loadstore volatile int main::ws +__loadstore volatile unsigned int main::wu -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 Successful SSA optimization PassNCastSimplification Constant right-side identified [14] main::$0 = byte2 main::bu Constant right-side identified [17] main::$1 = byte2 main::bs @@ -109,7 +109,7 @@ Eliminating unused variable main::bu and assignment [0] main::bu = 7 Eliminating unused variable main::bs and assignment [1] main::bs = 7 Eliminating unused variable main::wu and assignment [2] main::wu = $4e20 Eliminating unused variable main::ws and assignment [3] main::ws = -$b1 -Eliminating unused variable main::ptr and assignment [6] main::ptr = (byte*) 0 +Eliminating unused variable main::ptr and assignment [6] main::ptr = (char *) 0 Eliminating unused variable main::i#10 and assignment [28] main::i#10 = ++ main::i#9 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start @@ -208,7 +208,7 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (dword) $5c3b1 +Finalized unsigned number type (unsigned long) $5c3b1 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -241,11 +241,11 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$4 4.0 -byte~ main::$5 4.0 -volatile signed dword main::ds loadstore 0.4 -volatile dword main::du loadstore 0.4444444444444444 -byte main::i +char main::$4 // 4.0 +char main::$5 // 4.0 +__loadstore volatile long main::ds // 0.4 +__loadstore volatile unsigned long main::du // 0.4444444444444444 +char main::i Initial phi equivalence classes Added variable main::du to live range equivalence class [ main::du ] @@ -374,12 +374,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:6 0.4 -volatile dword main::du loadstore zp[4]:2 0.4444444444444444 -byte main::i +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:6 0.4 +__loadstore volatile unsigned long main::du // zp[4]:2 0.4444444444444444 +char main::i zp[4]:2 [ main::du ] zp[4]:6 [ main::ds ] diff --git a/src/test/ref/operator-byte2.sym b/src/test/ref/operator-byte2.sym index 30ae3e8c5..79906883b 100644 --- a/src/test/ref/operator-byte2.sym +++ b/src/test/ref/operator-byte2.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:6 0.4 -volatile dword main::du loadstore zp[4]:2 0.4444444444444444 -byte main::i +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:6 0.4 +__loadstore volatile unsigned long main::du // zp[4]:2 0.4444444444444444 +char main::i zp[4]:2 [ main::du ] zp[4]:6 [ main::ds ] diff --git a/src/test/ref/operator-byte3.log b/src/test/ref/operator-byte3.log index 06f59562e..c00c862c4 100644 --- a/src/test/ref/operator-byte3.log +++ b/src/test/ref/operator-byte3.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::ws = -$b1 main::du = $1e8480 main::ds = -$39a4f1 - main::ptr = (byte*)0 + main::ptr = (char *)0 main::i#0 = 0 main::SCREEN[main::i#0] = byte3 $11 main::i#1 = ++ main::i#0 @@ -45,7 +45,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,36 +56,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -volatile signed byte main::bs loadstore -volatile byte main::bu loadstore -volatile signed dword main::ds loadstore -volatile dword main::du loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte* volatile main::ptr loadstore -volatile signed word main::ws loadstore -volatile word main::wu loadstore +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +char main::$6 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile signed char main::bs +__loadstore volatile char main::bu +__loadstore volatile long main::ds +__loadstore volatile unsigned long main::du +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__loadstore char * volatile main::ptr +__loadstore volatile int main::ws +__loadstore volatile unsigned int main::wu -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 Successful SSA optimization PassNCastSimplification Constant right-side identified [14] main::$0 = byte3 main::bu Constant right-side identified [17] main::$1 = byte3 main::bs @@ -109,7 +109,7 @@ Eliminating unused variable main::bu and assignment [0] main::bu = 7 Eliminating unused variable main::bs and assignment [1] main::bs = 7 Eliminating unused variable main::wu and assignment [2] main::wu = $4e20 Eliminating unused variable main::ws and assignment [3] main::ws = -$b1 -Eliminating unused variable main::ptr and assignment [6] main::ptr = (byte*) 0 +Eliminating unused variable main::ptr and assignment [6] main::ptr = (char *) 0 Eliminating unused variable main::i#10 and assignment [28] main::i#10 = ++ main::i#9 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start @@ -208,7 +208,7 @@ Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (dword) $13def0f1 +Finalized unsigned number type (unsigned long) $13def0f1 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -241,11 +241,11 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$4 4.0 -byte~ main::$5 4.0 -volatile signed dword main::ds loadstore 0.4 -volatile dword main::du loadstore 0.4444444444444444 -byte main::i +char main::$4 // 4.0 +char main::$5 // 4.0 +__loadstore volatile long main::ds // 0.4 +__loadstore volatile unsigned long main::du // 0.4444444444444444 +char main::i Initial phi equivalence classes Added variable main::du to live range equivalence class [ main::du ] @@ -374,12 +374,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:6 0.4 -volatile dword main::du loadstore zp[4]:2 0.4444444444444444 -byte main::i +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:6 0.4 +__loadstore volatile unsigned long main::du // zp[4]:2 0.4444444444444444 +char main::i zp[4]:2 [ main::du ] zp[4]:6 [ main::ds ] diff --git a/src/test/ref/operator-byte3.sym b/src/test/ref/operator-byte3.sym index 30ae3e8c5..79906883b 100644 --- a/src/test/ref/operator-byte3.sym +++ b/src/test/ref/operator-byte3.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:6 0.4 -volatile dword main::du loadstore zp[4]:2 0.4444444444444444 -byte main::i +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:6 0.4 +__loadstore volatile unsigned long main::du // zp[4]:2 0.4444444444444444 +char main::i zp[4]:2 [ main::du ] zp[4]:6 [ main::ds ] diff --git a/src/test/ref/operator-lohi-problem-1.cfg b/src/test/ref/operator-lohi-problem-1.cfg index fc2bd0a43..1cf6f6b25 100644 --- a/src/test/ref/operator-lohi-problem-1.cfg +++ b/src/test/ref/operator-lohi-problem-1.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *SCREEN = byte0 (word)DVAL/$400 + [0] *SCREEN = byte0 (unsigned int)DVAL/$400 [1] *(SCREEN+1) = 0 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/operator-lohi-problem-1.log b/src/test/ref/operator-lohi-problem-1.log index c613207c1..08e44f4f6 100644 --- a/src/test/ref/operator-lohi-problem-1.log +++ b/src/test/ref/operator-lohi-problem-1.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - SCREEN[0] = byte0 (word)DVAL/$400 - SCREEN[1] = byte1 (word)DVAL/$400 + SCREEN[0] = byte0 (unsigned int)DVAL/$400 + SCREEN[1] = byte1 (unsigned int)DVAL/$400 to:main::@return main::@return: scope:[main] from main return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,30 +21,30 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const dword DVAL = $20000 -constant byte* const SCREEN = (byte*)$400 +__constant const unsigned long DVAL = $20000 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Adding number conversion cast (unumber) $400 in SCREEN[0] = byte0 (word)DVAL/$400 -Adding number conversion cast (unumber) 0 in SCREEN[0] = byte0 (word)DVAL/(unumber)$400 -Adding number conversion cast (unumber) $400 in SCREEN[1] = byte1 (word)DVAL/$400 -Adding number conversion cast (unumber) 1 in SCREEN[1] = byte1 (word)DVAL/(unumber)$400 +Adding number conversion cast (unumber) $400 in SCREEN[0] = byte0 (unsigned int)DVAL/$400 +Adding number conversion cast (unumber) 0 in SCREEN[0] = byte0 (unsigned int)DVAL/(unumber)$400 +Adding number conversion cast (unumber) $400 in SCREEN[1] = byte1 (unsigned int)DVAL/$400 +Adding number conversion cast (unumber) 1 in SCREEN[1] = byte1 (unsigned int)DVAL/(unumber)$400 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $400 Simplifying constant integer cast 0 Simplifying constant integer cast $400 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying constant evaluating to zero byte1 (word)DVAL/$400 in [1] SCREEN[1] = byte1 (word)DVAL/$400 +Simplifying constant evaluating to zero byte1 (unsigned int)DVAL/$400 in [1] SCREEN[1] = byte1 (unsigned int)DVAL/$400 Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero SCREEN in [0] SCREEN[0] = byte0 (word)DVAL/$400 +Simplifying expression containing zero SCREEN in [0] SCREEN[0] = byte0 (unsigned int)DVAL/$400 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start @@ -62,7 +62,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = byte0 (word)DVAL/$400 + [0] *SCREEN = byte0 (unsigned int)DVAL/$400 [1] *(SCREEN+1) = 0 to:main::@return main::@return: scope:[main] from main @@ -76,7 +76,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = byte0 (word)DVAL/$400 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = byte0 (unsigned int)DVAL/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *(SCREEN+1) = 0 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES @@ -108,7 +108,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *SCREEN = byte0 (word)DVAL/$400 -- _deref_pbuc1=vbuc2 + // [0] *SCREEN = byte0 (unsigned int)DVAL/$400 -- _deref_pbuc1=vbuc2 lda #$179&$ffff - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // WORD0(bu) lda.z bu sta.z __0 @@ -79,9 +79,9 @@ main: { sta.z __0+1 // SCREEN[i++] = WORD0(bu) lda.z __0 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda.z __0+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // WORD0(bs) lda.z bs sta.z __1 @@ -92,9 +92,9 @@ main: { sta.z __1+1 // SCREEN[i++] = WORD0(bs) lda.z __1 - sta SCREEN+3*SIZEOF_WORD + sta SCREEN+3*SIZEOF_UNSIGNED_INT lda.z __1+1 - sta SCREEN+3*SIZEOF_WORD+1 + sta SCREEN+3*SIZEOF_UNSIGNED_INT+1 // WORD0(wu) lda.z wu sta.z __2 @@ -102,9 +102,9 @@ main: { sta.z __2+1 // SCREEN[i++] = WORD0(wu) lda.z __2 - sta SCREEN+4*SIZEOF_WORD + sta SCREEN+4*SIZEOF_UNSIGNED_INT lda.z __2+1 - sta SCREEN+4*SIZEOF_WORD+1 + sta SCREEN+4*SIZEOF_UNSIGNED_INT+1 // WORD0(ws) lda.z ws sta.z __3 @@ -112,9 +112,9 @@ main: { sta.z __3+1 // SCREEN[i++] = WORD0(ws) lda.z __3 - sta SCREEN+5*SIZEOF_WORD + sta SCREEN+5*SIZEOF_UNSIGNED_INT lda.z __3+1 - sta SCREEN+5*SIZEOF_WORD+1 + sta SCREEN+5*SIZEOF_UNSIGNED_INT+1 // WORD0(du) lda.z du sta.z __4 @@ -122,9 +122,9 @@ main: { sta.z __4+1 // SCREEN[i++] = WORD0(du) lda.z __4 - sta SCREEN+6*SIZEOF_WORD + sta SCREEN+6*SIZEOF_UNSIGNED_INT lda.z __4+1 - sta SCREEN+6*SIZEOF_WORD+1 + sta SCREEN+6*SIZEOF_UNSIGNED_INT+1 // WORD0(ds) lda.z ds sta.z __5 @@ -132,9 +132,9 @@ main: { sta.z __5+1 // SCREEN[i++] = WORD0(ds) lda.z __5 - sta SCREEN+7*SIZEOF_WORD + sta SCREEN+7*SIZEOF_UNSIGNED_INT lda.z __5+1 - sta SCREEN+7*SIZEOF_WORD+1 + sta SCREEN+7*SIZEOF_UNSIGNED_INT+1 // WORD0(ptr) lda.z ptr sta.z __6 @@ -142,9 +142,9 @@ main: { sta.z __6+1 // SCREEN[i++] = WORD0(ptr) lda.z __6 - sta SCREEN+8*SIZEOF_WORD + sta SCREEN+8*SIZEOF_UNSIGNED_INT lda.z __6+1 - sta SCREEN+8*SIZEOF_WORD+1 + sta SCREEN+8*SIZEOF_UNSIGNED_INT+1 // } rts } diff --git a/src/test/ref/operator-word0.cfg b/src/test/ref/operator-word0.cfg index ce71b3a45..45d27f47a 100644 --- a/src/test/ref/operator-word0.cfg +++ b/src/test/ref/operator-word0.cfg @@ -7,23 +7,23 @@ main: scope:[main] from [3] main::ws = -$b1 [4] main::du = $1e8480 [5] main::ds = -$39a4f1 - [6] main::ptr = (byte*) 0 + [6] main::ptr = (char *) 0 [7] *main::SCREEN = word0 $11 - [8] *(main::SCREEN+1*SIZEOF_WORD) = word0 $179 + [8] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = word0 $179 [9] main::$0 = word0 main::bu - [10] *(main::SCREEN+2*SIZEOF_WORD) = main::$0 + [10] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = main::$0 [11] main::$1 = word0 main::bs - [12] *(main::SCREEN+3*SIZEOF_WORD) = main::$1 + [12] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = main::$1 [13] main::$2 = word0 main::wu - [14] *(main::SCREEN+4*SIZEOF_WORD) = main::$2 + [14] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = main::$2 [15] main::$3 = word0 main::ws - [16] *(main::SCREEN+5*SIZEOF_WORD) = main::$3 + [16] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = main::$3 [17] main::$4 = word0 main::du - [18] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 + [18] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 [19] main::$5 = word0 main::ds - [20] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 + [20] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 [21] main::$6 = word0 main::ptr - [22] *(main::SCREEN+8*SIZEOF_WORD) = main::$6 + [22] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = main::$6 to:main::@return main::@return: scope:[main] from main [23] return diff --git a/src/test/ref/operator-word0.log b/src/test/ref/operator-word0.log index c06606dc9..489f9a1ce 100644 --- a/src/test/ref/operator-word0.log +++ b/src/test/ref/operator-word0.log @@ -9,40 +9,40 @@ main: scope:[main] from __start main::ws = -$b1 main::du = $1e8480 main::ds = -$39a4f1 - main::ptr = (byte*)0 + main::ptr = (char *)0 main::i#0 = 0 - main::$7 = main::i#0 * SIZEOF_WORD + main::$7 = main::i#0 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$7] = word0 $11 main::i#1 = ++ main::i#0 - main::$8 = main::i#1 * SIZEOF_WORD + main::$8 = main::i#1 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$8] = word0 $179 main::i#2 = ++ main::i#1 main::$0 = word0 main::bu - main::$9 = main::i#2 * SIZEOF_WORD + main::$9 = main::i#2 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$9] = main::$0 main::i#3 = ++ main::i#2 main::$1 = word0 main::bs - main::$10 = main::i#3 * SIZEOF_WORD + main::$10 = main::i#3 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$10] = main::$1 main::i#4 = ++ main::i#3 main::$2 = word0 main::wu - main::$11 = main::i#4 * SIZEOF_WORD + main::$11 = main::i#4 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$11] = main::$2 main::i#5 = ++ main::i#4 main::$3 = word0 main::ws - main::$12 = main::i#5 * SIZEOF_WORD + main::$12 = main::i#5 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$12] = main::$3 main::i#6 = ++ main::i#5 main::$4 = word0 main::du - main::$13 = main::i#6 * SIZEOF_WORD + main::$13 = main::i#6 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$13] = main::$4 main::i#7 = ++ main::i#6 main::$5 = word0 main::ds - main::$14 = main::i#7 * SIZEOF_WORD + main::$14 = main::i#7 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$14] = main::$5 main::i#8 = ++ main::i#7 main::$6 = word0 main::ptr - main::$15 = main::i#8 * SIZEOF_WORD + main::$15 = main::i#8 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$15] = main::$6 main::i#9 = ++ main::i#8 to:main::@return @@ -52,7 +52,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -61,47 +61,47 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word~ main::$0 -word~ main::$1 -byte~ main::$10 -byte~ main::$11 -byte~ main::$12 -byte~ main::$13 -byte~ main::$14 -byte~ main::$15 -word~ main::$2 -word~ main::$3 -word~ main::$4 -word~ main::$5 -word~ main::$6 -byte~ main::$7 -byte~ main::$8 -byte~ main::$9 -constant word* const main::SCREEN = (byte*)$400 -volatile signed byte main::bs loadstore -volatile byte main::bu loadstore -volatile signed dword main::ds loadstore -volatile dword main::du loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte* volatile main::ptr loadstore -volatile signed word main::ws loadstore -volatile word main::wu loadstore +unsigned int main::$0 +unsigned int main::$1 +char main::$10 +char main::$11 +char main::$12 +char main::$13 +char main::$14 +char main::$15 +unsigned int main::$2 +unsigned int main::$3 +unsigned int main::$4 +unsigned int main::$5 +unsigned int main::$6 +char main::$7 +char main::$8 +char main::$9 +__constant unsigned int * const main::SCREEN = (char *)$400 +__loadstore volatile signed char main::bs +__loadstore volatile char main::bu +__loadstore volatile long main::ds +__loadstore volatile unsigned long main::du +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__loadstore char * volatile main::ptr +__loadstore volatile int main::ws +__loadstore volatile unsigned int main::wu -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 Successful SSA optimization PassNCastSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -112,63 +112,63 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [7] main::$7 = main::i#0 * SIZEOF_WORD +Constant right-side identified [7] main::$7 = main::i#0 * SIZEOF_UNSIGNED_INT Constant right-side identified [9] main::i#1 = ++ main::i#0 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$7 = main::i#0*SIZEOF_WORD +Constant main::$7 = main::i#0*SIZEOF_UNSIGNED_INT Constant main::i#1 = ++main::i#0 Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero main::i#0*SIZEOF_WORD in +Simplifying constant evaluating to zero main::i#0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [8] main::SCREEN[main::$7] = word0 $11 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$7 Successful SSA optimization PassNEliminateUnusedVars -Constant right-side identified [8] main::$8 = main::i#1 * SIZEOF_WORD +Constant right-side identified [8] main::$8 = main::i#1 * SIZEOF_UNSIGNED_INT Constant right-side identified [10] main::i#2 = ++ main::i#1 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$8 = main::i#1*SIZEOF_WORD +Constant main::$8 = main::i#1*SIZEOF_UNSIGNED_INT Constant main::i#2 = ++main::i#1 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [10] main::$9 = main::i#2 * SIZEOF_WORD +Constant right-side identified [10] main::$9 = main::i#2 * SIZEOF_UNSIGNED_INT Constant right-side identified [12] main::i#3 = ++ main::i#2 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$9 = main::i#2*SIZEOF_WORD +Constant main::$9 = main::i#2*SIZEOF_UNSIGNED_INT Constant main::i#3 = ++main::i#2 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [12] main::$10 = main::i#3 * SIZEOF_WORD +Constant right-side identified [12] main::$10 = main::i#3 * SIZEOF_UNSIGNED_INT Constant right-side identified [14] main::i#4 = ++ main::i#3 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$10 = main::i#3*SIZEOF_WORD +Constant main::$10 = main::i#3*SIZEOF_UNSIGNED_INT Constant main::i#4 = ++main::i#3 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [14] main::$11 = main::i#4 * SIZEOF_WORD +Constant right-side identified [14] main::$11 = main::i#4 * SIZEOF_UNSIGNED_INT Constant right-side identified [16] main::i#5 = ++ main::i#4 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$11 = main::i#4*SIZEOF_WORD +Constant main::$11 = main::i#4*SIZEOF_UNSIGNED_INT Constant main::i#5 = ++main::i#4 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [16] main::$12 = main::i#5 * SIZEOF_WORD +Constant right-side identified [16] main::$12 = main::i#5 * SIZEOF_UNSIGNED_INT Constant right-side identified [18] main::i#6 = ++ main::i#5 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$12 = main::i#5*SIZEOF_WORD +Constant main::$12 = main::i#5*SIZEOF_UNSIGNED_INT Constant main::i#6 = ++main::i#5 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [18] main::$13 = main::i#6 * SIZEOF_WORD +Constant right-side identified [18] main::$13 = main::i#6 * SIZEOF_UNSIGNED_INT Constant right-side identified [20] main::i#7 = ++ main::i#6 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$13 = main::i#6*SIZEOF_WORD +Constant main::$13 = main::i#6*SIZEOF_UNSIGNED_INT Constant main::i#7 = ++main::i#6 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [20] main::$14 = main::i#7 * SIZEOF_WORD +Constant right-side identified [20] main::$14 = main::i#7 * SIZEOF_UNSIGNED_INT Constant right-side identified [22] main::i#8 = ++ main::i#7 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$14 = main::i#7*SIZEOF_WORD +Constant main::$14 = main::i#7*SIZEOF_UNSIGNED_INT Constant main::i#8 = ++main::i#7 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [22] main::$15 = main::i#8 * SIZEOF_WORD +Constant right-side identified [22] main::$15 = main::i#8 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$15 = main::i#8*SIZEOF_WORD +Constant main::$15 = main::i#8*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::i#0 Inlining constant with different constant siblings main::i#1 @@ -185,26 +185,26 @@ Constant inlined main::i#4 = ++++++++0 Constant inlined main::i#3 = ++++++0 Constant inlined main::i#6 = ++++++++++++0 Constant inlined main::i#5 = ++++++++++0 -Constant inlined main::$12 = ++++++++++0*SIZEOF_WORD -Constant inlined main::$13 = ++++++++++++0*SIZEOF_WORD -Constant inlined main::$14 = ++++++++++++++0*SIZEOF_WORD -Constant inlined main::$15 = ++++++++++++++++0*SIZEOF_WORD -Constant inlined main::$10 = ++++++0*SIZEOF_WORD -Constant inlined main::$11 = ++++++++0*SIZEOF_WORD +Constant inlined main::$12 = ++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$13 = ++++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$14 = ++++++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$15 = ++++++++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$10 = ++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$11 = ++++++++0*SIZEOF_UNSIGNED_INT Constant inlined main::i#0 = 0 Constant inlined main::i#2 = ++++0 Constant inlined main::i#1 = ++0 -Constant inlined main::$9 = ++++0*SIZEOF_WORD -Constant inlined main::$8 = ++0*SIZEOF_WORD +Constant inlined main::$9 = ++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$8 = ++0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++++++++0*SIZEOF_WORD) +Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++++++++0*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 @@ -223,8 +223,8 @@ Simplifying constant integer increment ++5 Simplifying constant integer increment ++6 Simplifying constant integer increment ++7 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) $11 -Finalized unsigned number type (word) $179 +Finalized unsigned number type (char) $11 +Finalized unsigned number type (unsigned int) $179 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -241,23 +241,23 @@ main: scope:[main] from [3] main::ws = -$b1 [4] main::du = $1e8480 [5] main::ds = -$39a4f1 - [6] main::ptr = (byte*) 0 + [6] main::ptr = (char *) 0 [7] *main::SCREEN = word0 $11 - [8] *(main::SCREEN+1*SIZEOF_WORD) = word0 $179 + [8] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = word0 $179 [9] main::$0 = word0 main::bu - [10] *(main::SCREEN+2*SIZEOF_WORD) = main::$0 + [10] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = main::$0 [11] main::$1 = word0 main::bs - [12] *(main::SCREEN+3*SIZEOF_WORD) = main::$1 + [12] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = main::$1 [13] main::$2 = word0 main::wu - [14] *(main::SCREEN+4*SIZEOF_WORD) = main::$2 + [14] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = main::$2 [15] main::$3 = word0 main::ws - [16] *(main::SCREEN+5*SIZEOF_WORD) = main::$3 + [16] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = main::$3 [17] main::$4 = word0 main::du - [18] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 + [18] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 [19] main::$5 = word0 main::ds - [20] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 + [20] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 [21] main::$6 = word0 main::ptr - [22] *(main::SCREEN+8*SIZEOF_WORD) = main::$6 + [22] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = main::$6 to:main::@return main::@return: scope:[main] from main [23] return @@ -266,21 +266,21 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -word~ main::$0 4.0 -word~ main::$1 4.0 -word~ main::$2 4.0 -word~ main::$3 4.0 -word~ main::$4 4.0 -word~ main::$5 4.0 -word~ main::$6 4.0 -volatile signed byte main::bs loadstore 0.4 -volatile byte main::bu loadstore 0.4444444444444444 -volatile signed dword main::ds loadstore 0.2857142857142857 -volatile dword main::du loadstore 0.3076923076923077 -byte main::i -byte* volatile main::ptr loadstore 0.26666666666666666 -volatile signed word main::ws loadstore 0.3333333333333333 -volatile word main::wu loadstore 0.36363636363636365 +unsigned int main::$0 // 4.0 +unsigned int main::$1 // 4.0 +unsigned int main::$2 // 4.0 +unsigned int main::$3 // 4.0 +unsigned int main::$4 // 4.0 +unsigned int main::$5 // 4.0 +unsigned int main::$6 // 4.0 +__loadstore volatile signed char main::bs // 0.4 +__loadstore volatile char main::bu // 0.4444444444444444 +__loadstore volatile long main::ds // 0.2857142857142857 +__loadstore volatile unsigned long main::du // 0.3076923076923077 +char main::i +__loadstore char * volatile main::ptr // 0.26666666666666666 +__loadstore volatile int main::ws // 0.3333333333333333 +__loadstore volatile unsigned int main::wu // 0.36363636363636365 Initial phi equivalence classes Added variable main::bu to live range equivalence class [ main::bu ] @@ -333,23 +333,23 @@ Statement [2] main::wu = $4e20 [ main::bu main::bs main::wu ] ( [ main::bu main Statement [3] main::ws = -$b1 [ main::bu main::bs main::wu main::ws ] ( [ main::bu main::bs main::wu main::ws ] { } ) always clobbers reg byte a Statement [4] main::du = $1e8480 [ main::bu main::bs main::wu main::ws main::du ] ( [ main::bu main::bs main::wu main::ws main::du ] { } ) always clobbers reg byte a Statement [5] main::ds = -$39a4f1 [ main::bu main::bs main::wu main::ws main::du main::ds ] ( [ main::bu main::bs main::wu main::ws main::du main::ds ] { } ) always clobbers reg byte a -Statement [6] main::ptr = (byte*) 0 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [6] main::ptr = (char *) 0 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [7] *main::SCREEN = word0 $11 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a -Statement [8] *(main::SCREEN+1*SIZEOF_WORD) = word0 $179 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [8] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = word0 $179 [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bu main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [9] main::$0 = word0 main::bu [ main::bs main::wu main::ws main::du main::ds main::ptr main::$0 ] ( [ main::bs main::wu main::ws main::du main::ds main::ptr main::$0 ] { } ) always clobbers reg byte a -Statement [10] *(main::SCREEN+2*SIZEOF_WORD) = main::$0 [ main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [10] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = main::$0 [ main::bs main::wu main::ws main::du main::ds main::ptr ] ( [ main::bs main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [11] main::$1 = word0 main::bs [ main::wu main::ws main::du main::ds main::ptr main::$1 ] ( [ main::wu main::ws main::du main::ds main::ptr main::$1 ] { } ) always clobbers reg byte a -Statement [12] *(main::SCREEN+3*SIZEOF_WORD) = main::$1 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [12] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = main::$1 [ main::wu main::ws main::du main::ds main::ptr ] ( [ main::wu main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [13] main::$2 = word0 main::wu [ main::ws main::du main::ds main::ptr main::$2 ] ( [ main::ws main::du main::ds main::ptr main::$2 ] { } ) always clobbers reg byte a -Statement [14] *(main::SCREEN+4*SIZEOF_WORD) = main::$2 [ main::ws main::du main::ds main::ptr ] ( [ main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [14] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = main::$2 [ main::ws main::du main::ds main::ptr ] ( [ main::ws main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [15] main::$3 = word0 main::ws [ main::du main::ds main::ptr main::$3 ] ( [ main::du main::ds main::ptr main::$3 ] { } ) always clobbers reg byte a -Statement [16] *(main::SCREEN+5*SIZEOF_WORD) = main::$3 [ main::du main::ds main::ptr ] ( [ main::du main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [16] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = main::$3 [ main::du main::ds main::ptr ] ( [ main::du main::ds main::ptr ] { } ) always clobbers reg byte a Statement [17] main::$4 = word0 main::du [ main::ds main::ptr main::$4 ] ( [ main::ds main::ptr main::$4 ] { } ) always clobbers reg byte a -Statement [18] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 [ main::ds main::ptr ] ( [ main::ds main::ptr ] { } ) always clobbers reg byte a +Statement [18] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 [ main::ds main::ptr ] ( [ main::ds main::ptr ] { } ) always clobbers reg byte a Statement [19] main::$5 = word0 main::ds [ main::ptr main::$5 ] ( [ main::ptr main::$5 ] { } ) always clobbers reg byte a -Statement [20] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 [ main::ptr ] ( [ main::ptr ] { } ) always clobbers reg byte a +Statement [20] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 [ main::ptr ] ( [ main::ptr ] { } ) always clobbers reg byte a Statement [21] main::$6 = word0 main::ptr [ main::$6 ] ( [ main::$6 ] { } ) always clobbers reg byte a -Statement [22] *(main::SCREEN+8*SIZEOF_WORD) = main::$6 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [22] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = main::$6 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::bu ] : zp[1]:2 , Potential registers zp[1]:3 [ main::bs ] : zp[1]:3 , Potential registers zp[2]:4 [ main::wu ] : zp[2]:4 , @@ -389,7 +389,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -442,7 +442,7 @@ main: { sta.z ds+2 lda #>-$39a4f1>>$10 sta.z ds+3 - // [6] main::ptr = (byte*) 0 -- pbuz1=pbuc1 + // [6] main::ptr = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr lda #>0 @@ -452,21 +452,21 @@ main: { sta SCREEN lda #>$11&$ffff sta SCREEN+1 - // [8] *(main::SCREEN+1*SIZEOF_WORD) = word0 $179 -- _deref_pwuc1=vwuc2 + // [8] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = word0 $179 -- _deref_pwuc1=vwuc2 lda #<$179&$ffff - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda #>$179&$ffff - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // [9] main::$0 = word0 main::bu -- vwuz1=_word0_vbuz2 lda.z bu sta.z __0 lda #0 sta.z __0+1 - // [10] *(main::SCREEN+2*SIZEOF_WORD) = main::$0 -- _deref_pwuc1=vwuz1 + // [10] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = main::$0 -- _deref_pwuc1=vwuz1 lda.z __0 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda.z __0+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // [11] main::$1 = word0 main::bs -- vwuz1=_word0_vbsz2 lda.z bs sta.z __1 @@ -475,61 +475,61 @@ main: { lda #0 !: sta.z __1+1 - // [12] *(main::SCREEN+3*SIZEOF_WORD) = main::$1 -- _deref_pwuc1=vwuz1 + // [12] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = main::$1 -- _deref_pwuc1=vwuz1 lda.z __1 - sta SCREEN+3*SIZEOF_WORD + sta SCREEN+3*SIZEOF_UNSIGNED_INT lda.z __1+1 - sta SCREEN+3*SIZEOF_WORD+1 + sta SCREEN+3*SIZEOF_UNSIGNED_INT+1 // [13] main::$2 = word0 main::wu -- vwuz1=_word0_vwuz2 lda.z wu sta.z __2 lda.z wu+1 sta.z __2+1 - // [14] *(main::SCREEN+4*SIZEOF_WORD) = main::$2 -- _deref_pwuc1=vwuz1 + // [14] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = main::$2 -- _deref_pwuc1=vwuz1 lda.z __2 - sta SCREEN+4*SIZEOF_WORD + sta SCREEN+4*SIZEOF_UNSIGNED_INT lda.z __2+1 - sta SCREEN+4*SIZEOF_WORD+1 + sta SCREEN+4*SIZEOF_UNSIGNED_INT+1 // [15] main::$3 = word0 main::ws -- vwuz1=_word0_vwsz2 lda.z ws sta.z __3 lda.z ws+1 sta.z __3+1 - // [16] *(main::SCREEN+5*SIZEOF_WORD) = main::$3 -- _deref_pwuc1=vwuz1 + // [16] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = main::$3 -- _deref_pwuc1=vwuz1 lda.z __3 - sta SCREEN+5*SIZEOF_WORD + sta SCREEN+5*SIZEOF_UNSIGNED_INT lda.z __3+1 - sta SCREEN+5*SIZEOF_WORD+1 + sta SCREEN+5*SIZEOF_UNSIGNED_INT+1 // [17] main::$4 = word0 main::du -- vwuz1=_word0_vduz2 lda.z du sta.z __4 lda.z du+1 sta.z __4+1 - // [18] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 -- _deref_pwuc1=vwuz1 + // [18] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 -- _deref_pwuc1=vwuz1 lda.z __4 - sta SCREEN+6*SIZEOF_WORD + sta SCREEN+6*SIZEOF_UNSIGNED_INT lda.z __4+1 - sta SCREEN+6*SIZEOF_WORD+1 + sta SCREEN+6*SIZEOF_UNSIGNED_INT+1 // [19] main::$5 = word0 main::ds -- vwuz1=_word0_vdsz2 lda.z ds sta.z __5 lda.z ds+1 sta.z __5+1 - // [20] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 -- _deref_pwuc1=vwuz1 + // [20] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 -- _deref_pwuc1=vwuz1 lda.z __5 - sta SCREEN+7*SIZEOF_WORD + sta SCREEN+7*SIZEOF_UNSIGNED_INT lda.z __5+1 - sta SCREEN+7*SIZEOF_WORD+1 + sta SCREEN+7*SIZEOF_UNSIGNED_INT+1 // [21] main::$6 = word0 main::ptr -- vwuz1=_word0_pbuz2 lda.z ptr sta.z __6 lda.z ptr+1 sta.z __6+1 - // [22] *(main::SCREEN+8*SIZEOF_WORD) = main::$6 -- _deref_pwuc1=vwuz1 + // [22] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = main::$6 -- _deref_pwuc1=vwuz1 lda.z __6 - sta SCREEN+8*SIZEOF_WORD + sta SCREEN+8*SIZEOF_UNSIGNED_INT lda.z __6+1 - sta SCREEN+8*SIZEOF_WORD+1 + sta SCREEN+8*SIZEOF_UNSIGNED_INT+1 jmp __breturn // main::@return __breturn: @@ -548,24 +548,24 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word~ main::$0 zp[2]:18 4.0 -word~ main::$1 zp[2]:20 4.0 -word~ main::$2 zp[2]:22 4.0 -word~ main::$3 zp[2]:24 4.0 -word~ main::$4 zp[2]:26 4.0 -word~ main::$5 zp[2]:28 4.0 -word~ main::$6 zp[2]:30 4.0 -constant word* const main::SCREEN = (byte*) 1024 -volatile signed byte main::bs loadstore zp[1]:3 0.4 -volatile byte main::bu loadstore zp[1]:2 0.4444444444444444 -volatile signed dword main::ds loadstore zp[4]:12 0.2857142857142857 -volatile dword main::du loadstore zp[4]:8 0.3076923076923077 -byte main::i -byte* volatile main::ptr loadstore zp[2]:16 0.26666666666666666 -volatile signed word main::ws loadstore zp[2]:6 0.3333333333333333 -volatile word main::wu loadstore zp[2]:4 0.36363636363636365 +unsigned int main::$0 // zp[2]:18 4.0 +unsigned int main::$1 // zp[2]:20 4.0 +unsigned int main::$2 // zp[2]:22 4.0 +unsigned int main::$3 // zp[2]:24 4.0 +unsigned int main::$4 // zp[2]:26 4.0 +unsigned int main::$5 // zp[2]:28 4.0 +unsigned int main::$6 // zp[2]:30 4.0 +__constant unsigned int * const main::SCREEN = (char *) 1024 +__loadstore volatile signed char main::bs // zp[1]:3 0.4 +__loadstore volatile char main::bu // zp[1]:2 0.4444444444444444 +__loadstore volatile long main::ds // zp[4]:12 0.2857142857142857 +__loadstore volatile unsigned long main::du // zp[4]:8 0.3076923076923077 +char main::i +__loadstore char * volatile main::ptr // zp[2]:16 0.26666666666666666 +__loadstore volatile int main::ws // zp[2]:6 0.3333333333333333 +__loadstore volatile unsigned int main::wu // zp[2]:4 0.36363636363636365 zp[1]:2 [ main::bu ] zp[1]:3 [ main::bs ] @@ -598,7 +598,7 @@ Score: 290 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -657,7 +657,7 @@ main: { lda #>-$39a4f1>>$10 sta.z ds+3 // char * volatile ptr = (char*)0x0000 - // [6] main::ptr = (byte*) 0 -- pbuz1=pbuc1 + // [6] main::ptr = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z ptr sta.z ptr+1 @@ -668,11 +668,11 @@ main: { lda #>$11&$ffff sta SCREEN+1 // SCREEN[i++] = WORD0(377) - // [8] *(main::SCREEN+1*SIZEOF_WORD) = word0 $179 -- _deref_pwuc1=vwuc2 + // [8] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = word0 $179 -- _deref_pwuc1=vwuc2 lda #<$179&$ffff - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda #>$179&$ffff - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // WORD0(bu) // [9] main::$0 = word0 main::bu -- vwuz1=_word0_vbuz2 lda.z bu @@ -680,11 +680,11 @@ main: { lda #0 sta.z __0+1 // SCREEN[i++] = WORD0(bu) - // [10] *(main::SCREEN+2*SIZEOF_WORD) = main::$0 -- _deref_pwuc1=vwuz1 + // [10] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = main::$0 -- _deref_pwuc1=vwuz1 lda.z __0 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda.z __0+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // WORD0(bs) // [11] main::$1 = word0 main::bs -- vwuz1=_word0_vbsz2 lda.z bs @@ -695,11 +695,11 @@ main: { !: sta.z __1+1 // SCREEN[i++] = WORD0(bs) - // [12] *(main::SCREEN+3*SIZEOF_WORD) = main::$1 -- _deref_pwuc1=vwuz1 + // [12] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = main::$1 -- _deref_pwuc1=vwuz1 lda.z __1 - sta SCREEN+3*SIZEOF_WORD + sta SCREEN+3*SIZEOF_UNSIGNED_INT lda.z __1+1 - sta SCREEN+3*SIZEOF_WORD+1 + sta SCREEN+3*SIZEOF_UNSIGNED_INT+1 // WORD0(wu) // [13] main::$2 = word0 main::wu -- vwuz1=_word0_vwuz2 lda.z wu @@ -707,11 +707,11 @@ main: { lda.z wu+1 sta.z __2+1 // SCREEN[i++] = WORD0(wu) - // [14] *(main::SCREEN+4*SIZEOF_WORD) = main::$2 -- _deref_pwuc1=vwuz1 + // [14] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = main::$2 -- _deref_pwuc1=vwuz1 lda.z __2 - sta SCREEN+4*SIZEOF_WORD + sta SCREEN+4*SIZEOF_UNSIGNED_INT lda.z __2+1 - sta SCREEN+4*SIZEOF_WORD+1 + sta SCREEN+4*SIZEOF_UNSIGNED_INT+1 // WORD0(ws) // [15] main::$3 = word0 main::ws -- vwuz1=_word0_vwsz2 lda.z ws @@ -719,11 +719,11 @@ main: { lda.z ws+1 sta.z __3+1 // SCREEN[i++] = WORD0(ws) - // [16] *(main::SCREEN+5*SIZEOF_WORD) = main::$3 -- _deref_pwuc1=vwuz1 + // [16] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = main::$3 -- _deref_pwuc1=vwuz1 lda.z __3 - sta SCREEN+5*SIZEOF_WORD + sta SCREEN+5*SIZEOF_UNSIGNED_INT lda.z __3+1 - sta SCREEN+5*SIZEOF_WORD+1 + sta SCREEN+5*SIZEOF_UNSIGNED_INT+1 // WORD0(du) // [17] main::$4 = word0 main::du -- vwuz1=_word0_vduz2 lda.z du @@ -731,11 +731,11 @@ main: { lda.z du+1 sta.z __4+1 // SCREEN[i++] = WORD0(du) - // [18] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 -- _deref_pwuc1=vwuz1 + // [18] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 -- _deref_pwuc1=vwuz1 lda.z __4 - sta SCREEN+6*SIZEOF_WORD + sta SCREEN+6*SIZEOF_UNSIGNED_INT lda.z __4+1 - sta SCREEN+6*SIZEOF_WORD+1 + sta SCREEN+6*SIZEOF_UNSIGNED_INT+1 // WORD0(ds) // [19] main::$5 = word0 main::ds -- vwuz1=_word0_vdsz2 lda.z ds @@ -743,11 +743,11 @@ main: { lda.z ds+1 sta.z __5+1 // SCREEN[i++] = WORD0(ds) - // [20] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 -- _deref_pwuc1=vwuz1 + // [20] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 -- _deref_pwuc1=vwuz1 lda.z __5 - sta SCREEN+7*SIZEOF_WORD + sta SCREEN+7*SIZEOF_UNSIGNED_INT lda.z __5+1 - sta SCREEN+7*SIZEOF_WORD+1 + sta SCREEN+7*SIZEOF_UNSIGNED_INT+1 // WORD0(ptr) // [21] main::$6 = word0 main::ptr -- vwuz1=_word0_pbuz2 lda.z ptr @@ -755,11 +755,11 @@ main: { lda.z ptr+1 sta.z __6+1 // SCREEN[i++] = WORD0(ptr) - // [22] *(main::SCREEN+8*SIZEOF_WORD) = main::$6 -- _deref_pwuc1=vwuz1 + // [22] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = main::$6 -- _deref_pwuc1=vwuz1 lda.z __6 - sta SCREEN+8*SIZEOF_WORD + sta SCREEN+8*SIZEOF_UNSIGNED_INT lda.z __6+1 - sta SCREEN+8*SIZEOF_WORD+1 + sta SCREEN+8*SIZEOF_UNSIGNED_INT+1 // main::@return // } // [23] return diff --git a/src/test/ref/operator-word0.sym b/src/test/ref/operator-word0.sym index e220e7c1d..8df9497c7 100644 --- a/src/test/ref/operator-word0.sym +++ b/src/test/ref/operator-word0.sym @@ -1,21 +1,21 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word~ main::$0 zp[2]:18 4.0 -word~ main::$1 zp[2]:20 4.0 -word~ main::$2 zp[2]:22 4.0 -word~ main::$3 zp[2]:24 4.0 -word~ main::$4 zp[2]:26 4.0 -word~ main::$5 zp[2]:28 4.0 -word~ main::$6 zp[2]:30 4.0 -constant word* const main::SCREEN = (byte*) 1024 -volatile signed byte main::bs loadstore zp[1]:3 0.4 -volatile byte main::bu loadstore zp[1]:2 0.4444444444444444 -volatile signed dword main::ds loadstore zp[4]:12 0.2857142857142857 -volatile dword main::du loadstore zp[4]:8 0.3076923076923077 -byte main::i -byte* volatile main::ptr loadstore zp[2]:16 0.26666666666666666 -volatile signed word main::ws loadstore zp[2]:6 0.3333333333333333 -volatile word main::wu loadstore zp[2]:4 0.36363636363636365 +unsigned int main::$0 // zp[2]:18 4.0 +unsigned int main::$1 // zp[2]:20 4.0 +unsigned int main::$2 // zp[2]:22 4.0 +unsigned int main::$3 // zp[2]:24 4.0 +unsigned int main::$4 // zp[2]:26 4.0 +unsigned int main::$5 // zp[2]:28 4.0 +unsigned int main::$6 // zp[2]:30 4.0 +__constant unsigned int * const main::SCREEN = (char *) 1024 +__loadstore volatile signed char main::bs // zp[1]:3 0.4 +__loadstore volatile char main::bu // zp[1]:2 0.4444444444444444 +__loadstore volatile long main::ds // zp[4]:12 0.2857142857142857 +__loadstore volatile unsigned long main::du // zp[4]:8 0.3076923076923077 +char main::i +__loadstore char * volatile main::ptr // zp[2]:16 0.26666666666666666 +__loadstore volatile int main::ws // zp[2]:6 0.3333333333333333 +__loadstore volatile unsigned int main::wu // zp[2]:4 0.36363636363636365 zp[1]:2 [ main::bu ] zp[1]:3 [ main::bs ] diff --git a/src/test/ref/operator-word1.asm b/src/test/ref/operator-word1.asm index e080164c4..35e1c9e3c 100644 --- a/src/test/ref/operator-word1.asm +++ b/src/test/ref/operator-word1.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400 @@ -38,20 +38,20 @@ main: { sta SCREEN sta SCREEN+1 // SCREEN[i++] = WORD1(377) - sta SCREEN+1*SIZEOF_WORD - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(bu) - sta SCREEN+2*SIZEOF_WORD - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(bs) - sta SCREEN+3*SIZEOF_WORD - sta SCREEN+3*SIZEOF_WORD+1 + sta SCREEN+3*SIZEOF_UNSIGNED_INT + sta SCREEN+3*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(wu) - sta SCREEN+4*SIZEOF_WORD - sta SCREEN+4*SIZEOF_WORD+1 + sta SCREEN+4*SIZEOF_UNSIGNED_INT + sta SCREEN+4*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(ws) - sta SCREEN+5*SIZEOF_WORD - sta SCREEN+5*SIZEOF_WORD+1 + sta SCREEN+5*SIZEOF_UNSIGNED_INT + sta SCREEN+5*SIZEOF_UNSIGNED_INT+1 // WORD1(du) lda.z du+2 sta.z __4 @@ -59,9 +59,9 @@ main: { sta.z __4+1 // SCREEN[i++] = WORD1(du) lda.z __4 - sta SCREEN+6*SIZEOF_WORD + sta SCREEN+6*SIZEOF_UNSIGNED_INT lda.z __4+1 - sta SCREEN+6*SIZEOF_WORD+1 + sta SCREEN+6*SIZEOF_UNSIGNED_INT+1 // WORD1(ds) lda.z ds+2 sta.z __5 @@ -69,13 +69,13 @@ main: { sta.z __5+1 // SCREEN[i++] = WORD1(ds) lda.z __5 - sta SCREEN+7*SIZEOF_WORD + sta SCREEN+7*SIZEOF_UNSIGNED_INT lda.z __5+1 - sta SCREEN+7*SIZEOF_WORD+1 + sta SCREEN+7*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(ptr) lda #<0 - sta SCREEN+8*SIZEOF_WORD - sta SCREEN+8*SIZEOF_WORD+1 + sta SCREEN+8*SIZEOF_UNSIGNED_INT + sta SCREEN+8*SIZEOF_UNSIGNED_INT+1 // } rts } diff --git a/src/test/ref/operator-word1.cfg b/src/test/ref/operator-word1.cfg index a255556ed..3d648c5fa 100644 --- a/src/test/ref/operator-word1.cfg +++ b/src/test/ref/operator-word1.cfg @@ -4,16 +4,16 @@ main: scope:[main] from [0] main::du = $1e8480 [1] main::ds = -$39a4f1 [2] *main::SCREEN = 0 - [3] *(main::SCREEN+1*SIZEOF_WORD) = 0 - [4] *(main::SCREEN+2*SIZEOF_WORD) = 0 - [5] *(main::SCREEN+3*SIZEOF_WORD) = 0 - [6] *(main::SCREEN+4*SIZEOF_WORD) = 0 - [7] *(main::SCREEN+5*SIZEOF_WORD) = 0 + [3] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = 0 + [4] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = 0 + [5] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = 0 + [6] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = 0 + [7] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = 0 [8] main::$4 = word1 main::du - [9] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 + [9] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 [10] main::$5 = word1 main::ds - [11] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 - [12] *(main::SCREEN+8*SIZEOF_WORD) = 0 + [11] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 + [12] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = 0 to:main::@return main::@return: scope:[main] from main [13] return diff --git a/src/test/ref/operator-word1.log b/src/test/ref/operator-word1.log index 6f7b804b1..af76213d0 100644 --- a/src/test/ref/operator-word1.log +++ b/src/test/ref/operator-word1.log @@ -9,40 +9,40 @@ main: scope:[main] from __start main::ws = -$b1 main::du = $1e8480 main::ds = -$39a4f1 - main::ptr = (byte*)0 + main::ptr = (char *)0 main::i#0 = 0 - main::$7 = main::i#0 * SIZEOF_WORD + main::$7 = main::i#0 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$7] = word1 $11 main::i#1 = ++ main::i#0 - main::$8 = main::i#1 * SIZEOF_WORD + main::$8 = main::i#1 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$8] = word1 $179 main::i#2 = ++ main::i#1 main::$0 = word1 main::bu - main::$9 = main::i#2 * SIZEOF_WORD + main::$9 = main::i#2 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$9] = main::$0 main::i#3 = ++ main::i#2 main::$1 = word1 main::bs - main::$10 = main::i#3 * SIZEOF_WORD + main::$10 = main::i#3 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$10] = main::$1 main::i#4 = ++ main::i#3 main::$2 = word1 main::wu - main::$11 = main::i#4 * SIZEOF_WORD + main::$11 = main::i#4 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$11] = main::$2 main::i#5 = ++ main::i#4 main::$3 = word1 main::ws - main::$12 = main::i#5 * SIZEOF_WORD + main::$12 = main::i#5 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$12] = main::$3 main::i#6 = ++ main::i#5 main::$4 = word1 main::du - main::$13 = main::i#6 * SIZEOF_WORD + main::$13 = main::i#6 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$13] = main::$4 main::i#7 = ++ main::i#6 main::$5 = word1 main::ds - main::$14 = main::i#7 * SIZEOF_WORD + main::$14 = main::i#7 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$14] = main::$5 main::i#8 = ++ main::i#7 main::$6 = word1 main::ptr - main::$15 = main::i#8 * SIZEOF_WORD + main::$15 = main::i#8 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$15] = main::$6 main::i#9 = ++ main::i#8 to:main::@return @@ -52,7 +52,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -61,47 +61,47 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word~ main::$0 -word~ main::$1 -byte~ main::$10 -byte~ main::$11 -byte~ main::$12 -byte~ main::$13 -byte~ main::$14 -byte~ main::$15 -word~ main::$2 -word~ main::$3 -word~ main::$4 -word~ main::$5 -word~ main::$6 -byte~ main::$7 -byte~ main::$8 -byte~ main::$9 -constant word* const main::SCREEN = (byte*)$400 -volatile signed byte main::bs loadstore -volatile byte main::bu loadstore -volatile signed dword main::ds loadstore -volatile dword main::du loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte* volatile main::ptr loadstore -volatile signed word main::ws loadstore -volatile word main::wu loadstore +unsigned int main::$0 +unsigned int main::$1 +char main::$10 +char main::$11 +char main::$12 +char main::$13 +char main::$14 +char main::$15 +unsigned int main::$2 +unsigned int main::$3 +unsigned int main::$4 +unsigned int main::$5 +unsigned int main::$6 +char main::$7 +char main::$8 +char main::$9 +__constant unsigned int * const main::SCREEN = (char *)$400 +__loadstore volatile signed char main::bs +__loadstore volatile char main::bu +__loadstore volatile long main::ds +__loadstore volatile unsigned long main::du +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__loadstore char * volatile main::ptr +__loadstore volatile int main::ws +__loadstore volatile unsigned int main::wu -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 0 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 0 Successful SSA optimization PassNCastSimplification Constant right-side identified [14] main::$0 = word1 main::bu Constant right-side identified [18] main::$1 = word1 main::bs @@ -123,7 +123,7 @@ Eliminating unused variable main::bu and assignment [0] main::bu = 7 Eliminating unused variable main::bs and assignment [1] main::bs = 7 Eliminating unused variable main::wu and assignment [2] main::wu = $4e20 Eliminating unused variable main::ws and assignment [3] main::ws = -$b1 -Eliminating unused variable main::ptr and assignment [6] main::ptr = (byte*) 0 +Eliminating unused variable main::ptr and assignment [6] main::ptr = (char *) 0 Eliminating unused variable main::i#9 and assignment [35] main::i#9 = ++ main::i#8 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start @@ -131,63 +131,63 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [2] main::$7 = main::i#0 * SIZEOF_WORD +Constant right-side identified [2] main::$7 = main::i#0 * SIZEOF_UNSIGNED_INT Constant right-side identified [4] main::i#1 = ++ main::i#0 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$7 = main::i#0*SIZEOF_WORD +Constant main::$7 = main::i#0*SIZEOF_UNSIGNED_INT Constant main::i#1 = ++main::i#0 Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero main::i#0*SIZEOF_WORD in +Simplifying constant evaluating to zero main::i#0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [3] main::SCREEN[main::$7] = 0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$7 Successful SSA optimization PassNEliminateUnusedVars -Constant right-side identified [3] main::$8 = main::i#1 * SIZEOF_WORD +Constant right-side identified [3] main::$8 = main::i#1 * SIZEOF_UNSIGNED_INT Constant right-side identified [5] main::i#2 = ++ main::i#1 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$8 = main::i#1*SIZEOF_WORD +Constant main::$8 = main::i#1*SIZEOF_UNSIGNED_INT Constant main::i#2 = ++main::i#1 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [4] main::$9 = main::i#2 * SIZEOF_WORD +Constant right-side identified [4] main::$9 = main::i#2 * SIZEOF_UNSIGNED_INT Constant right-side identified [6] main::i#3 = ++ main::i#2 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$9 = main::i#2*SIZEOF_WORD +Constant main::$9 = main::i#2*SIZEOF_UNSIGNED_INT Constant main::i#3 = ++main::i#2 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [5] main::$10 = main::i#3 * SIZEOF_WORD +Constant right-side identified [5] main::$10 = main::i#3 * SIZEOF_UNSIGNED_INT Constant right-side identified [7] main::i#4 = ++ main::i#3 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$10 = main::i#3*SIZEOF_WORD +Constant main::$10 = main::i#3*SIZEOF_UNSIGNED_INT Constant main::i#4 = ++main::i#3 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [6] main::$11 = main::i#4 * SIZEOF_WORD +Constant right-side identified [6] main::$11 = main::i#4 * SIZEOF_UNSIGNED_INT Constant right-side identified [8] main::i#5 = ++ main::i#4 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$11 = main::i#4*SIZEOF_WORD +Constant main::$11 = main::i#4*SIZEOF_UNSIGNED_INT Constant main::i#5 = ++main::i#4 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [7] main::$12 = main::i#5 * SIZEOF_WORD +Constant right-side identified [7] main::$12 = main::i#5 * SIZEOF_UNSIGNED_INT Constant right-side identified [9] main::i#6 = ++ main::i#5 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$12 = main::i#5*SIZEOF_WORD +Constant main::$12 = main::i#5*SIZEOF_UNSIGNED_INT Constant main::i#6 = ++main::i#5 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [9] main::$13 = main::i#6 * SIZEOF_WORD +Constant right-side identified [9] main::$13 = main::i#6 * SIZEOF_UNSIGNED_INT Constant right-side identified [11] main::i#7 = ++ main::i#6 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$13 = main::i#6*SIZEOF_WORD +Constant main::$13 = main::i#6*SIZEOF_UNSIGNED_INT Constant main::i#7 = ++main::i#6 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [11] main::$14 = main::i#7 * SIZEOF_WORD +Constant right-side identified [11] main::$14 = main::i#7 * SIZEOF_UNSIGNED_INT Constant right-side identified [13] main::i#8 = ++ main::i#7 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$14 = main::i#7*SIZEOF_WORD +Constant main::$14 = main::i#7*SIZEOF_UNSIGNED_INT Constant main::i#8 = ++main::i#7 Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [12] main::$15 = main::i#8 * SIZEOF_WORD +Constant right-side identified [12] main::$15 = main::i#8 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$15 = main::i#8*SIZEOF_WORD +Constant main::$15 = main::i#8*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::i#0 Inlining constant with different constant siblings main::i#1 @@ -204,12 +204,12 @@ Constant inlined main::i#4 = ++++++++0 Constant inlined main::i#3 = ++++++0 Constant inlined main::i#6 = ++++++++++++0 Constant inlined main::i#5 = ++++++++++0 -Constant inlined main::$12 = ++++++++++0*SIZEOF_WORD -Constant inlined main::$13 = ++++++++++++0*SIZEOF_WORD -Constant inlined main::$14 = ++++++++++++++0*SIZEOF_WORD -Constant inlined main::$15 = ++++++++++++++++0*SIZEOF_WORD -Constant inlined main::$10 = ++++++0*SIZEOF_WORD -Constant inlined main::$11 = ++++++++0*SIZEOF_WORD +Constant inlined main::$12 = ++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$13 = ++++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$14 = ++++++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$15 = ++++++++++++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$10 = ++++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$11 = ++++++++0*SIZEOF_UNSIGNED_INT Constant inlined main::$1 = 0 Constant inlined main::$2 = 0 Constant inlined main::$0 = 0 @@ -218,17 +218,17 @@ Constant inlined main::$6 = 0 Constant inlined main::$3 = 0 Constant inlined main::i#2 = ++++0 Constant inlined main::i#1 = ++0 -Constant inlined main::$9 = ++++0*SIZEOF_WORD -Constant inlined main::$8 = ++0*SIZEOF_WORD +Constant inlined main::$9 = ++++0*SIZEOF_UNSIGNED_INT +Constant inlined main::$8 = ++0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++++++0*SIZEOF_WORD) -Consolidated array index constant in *(main::SCREEN+++++++++++++++++0*SIZEOF_WORD) +Consolidated array index constant in *(main::SCREEN+++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++++++0*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(main::SCREEN+++++++++++++++++0*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 @@ -259,16 +259,16 @@ main: scope:[main] from [0] main::du = $1e8480 [1] main::ds = -$39a4f1 [2] *main::SCREEN = 0 - [3] *(main::SCREEN+1*SIZEOF_WORD) = 0 - [4] *(main::SCREEN+2*SIZEOF_WORD) = 0 - [5] *(main::SCREEN+3*SIZEOF_WORD) = 0 - [6] *(main::SCREEN+4*SIZEOF_WORD) = 0 - [7] *(main::SCREEN+5*SIZEOF_WORD) = 0 + [3] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = 0 + [4] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = 0 + [5] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = 0 + [6] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = 0 + [7] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = 0 [8] main::$4 = word1 main::du - [9] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 + [9] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 [10] main::$5 = word1 main::ds - [11] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 - [12] *(main::SCREEN+8*SIZEOF_WORD) = 0 + [11] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 + [12] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = 0 to:main::@return main::@return: scope:[main] from main [13] return @@ -277,11 +277,11 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -word~ main::$4 4.0 -word~ main::$5 4.0 -volatile signed dword main::ds loadstore 0.4444444444444444 -volatile dword main::du loadstore 0.5 -byte main::i +unsigned int main::$4 // 4.0 +unsigned int main::$5 // 4.0 +__loadstore volatile long main::ds // 0.4444444444444444 +__loadstore volatile unsigned long main::du // 0.5 +char main::i Initial phi equivalence classes Added variable main::du to live range equivalence class [ main::du ] @@ -301,16 +301,16 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] main::du = $1e8480 [ main::du ] ( [ main::du ] { } ) always clobbers reg byte a Statement [1] main::ds = -$39a4f1 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a Statement [2] *main::SCREEN = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN+1*SIZEOF_WORD) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a -Statement [4] *(main::SCREEN+2*SIZEOF_WORD) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a -Statement [5] *(main::SCREEN+3*SIZEOF_WORD) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a -Statement [6] *(main::SCREEN+4*SIZEOF_WORD) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a -Statement [7] *(main::SCREEN+5*SIZEOF_WORD) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a +Statement [4] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a +Statement [5] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a +Statement [6] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a +Statement [7] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = 0 [ main::du main::ds ] ( [ main::du main::ds ] { } ) always clobbers reg byte a Statement [8] main::$4 = word1 main::du [ main::ds main::$4 ] ( [ main::ds main::$4 ] { } ) always clobbers reg byte a -Statement [9] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a +Statement [9] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a Statement [10] main::$5 = word1 main::ds [ main::$5 ] ( [ main::$5 ] { } ) always clobbers reg byte a -Statement [11] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [12] *(main::SCREEN+8*SIZEOF_WORD) = 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = 0 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[4]:2 [ main::du ] : zp[4]:2 , Potential registers zp[4]:6 [ main::ds ] : zp[4]:6 , Potential registers zp[2]:10 [ main::$4 ] : zp[2]:10 , @@ -336,7 +336,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -368,56 +368,56 @@ main: { sta SCREEN lda #>0 sta SCREEN+1 - // [3] *(main::SCREEN+1*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + // [3] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda #>0 - sta SCREEN+1*SIZEOF_WORD+1 - // [4] *(main::SCREEN+2*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 + // [4] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+2*SIZEOF_WORD + sta SCREEN+2*SIZEOF_UNSIGNED_INT lda #>0 - sta SCREEN+2*SIZEOF_WORD+1 - // [5] *(main::SCREEN+3*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 + // [5] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+3*SIZEOF_WORD + sta SCREEN+3*SIZEOF_UNSIGNED_INT lda #>0 - sta SCREEN+3*SIZEOF_WORD+1 - // [6] *(main::SCREEN+4*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+3*SIZEOF_UNSIGNED_INT+1 + // [6] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+4*SIZEOF_WORD + sta SCREEN+4*SIZEOF_UNSIGNED_INT lda #>0 - sta SCREEN+4*SIZEOF_WORD+1 - // [7] *(main::SCREEN+5*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+4*SIZEOF_UNSIGNED_INT+1 + // [7] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+5*SIZEOF_WORD + sta SCREEN+5*SIZEOF_UNSIGNED_INT lda #>0 - sta SCREEN+5*SIZEOF_WORD+1 + sta SCREEN+5*SIZEOF_UNSIGNED_INT+1 // [8] main::$4 = word1 main::du -- vwuz1=_word1_vduz2 lda.z du+2 sta.z __4 lda.z du+3 sta.z __4+1 - // [9] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 -- _deref_pwuc1=vwuz1 + // [9] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 -- _deref_pwuc1=vwuz1 lda.z __4 - sta SCREEN+6*SIZEOF_WORD + sta SCREEN+6*SIZEOF_UNSIGNED_INT lda.z __4+1 - sta SCREEN+6*SIZEOF_WORD+1 + sta SCREEN+6*SIZEOF_UNSIGNED_INT+1 // [10] main::$5 = word1 main::ds -- vwuz1=_word1_vdsz2 lda.z ds+2 sta.z __5 lda.z ds+3 sta.z __5+1 - // [11] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 -- _deref_pwuc1=vwuz1 + // [11] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 -- _deref_pwuc1=vwuz1 lda.z __5 - sta SCREEN+7*SIZEOF_WORD + sta SCREEN+7*SIZEOF_UNSIGNED_INT lda.z __5+1 - sta SCREEN+7*SIZEOF_WORD+1 - // [12] *(main::SCREEN+8*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+7*SIZEOF_UNSIGNED_INT+1 + // [12] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+8*SIZEOF_WORD + sta SCREEN+8*SIZEOF_UNSIGNED_INT lda #>0 - sta SCREEN+8*SIZEOF_WORD+1 + sta SCREEN+8*SIZEOF_UNSIGNED_INT+1 jmp __breturn // main::@return __breturn: @@ -446,14 +446,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word~ main::$4 zp[2]:10 4.0 -word~ main::$5 zp[2]:12 4.0 -constant word* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:6 0.4444444444444444 -volatile dword main::du loadstore zp[4]:2 0.5 -byte main::i +unsigned int main::$4 // zp[2]:10 4.0 +unsigned int main::$5 // zp[2]:12 4.0 +__constant unsigned int * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:6 0.4444444444444444 +__loadstore volatile unsigned long main::du // zp[4]:2 0.5 +char main::i zp[4]:2 [ main::du ] zp[4]:6 [ main::ds ] @@ -476,7 +476,7 @@ Score: 158 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -511,25 +511,25 @@ main: { sta SCREEN sta SCREEN+1 // SCREEN[i++] = WORD1(377) - // [3] *(main::SCREEN+1*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 - sta SCREEN+1*SIZEOF_WORD - sta SCREEN+1*SIZEOF_WORD+1 + // [3] *(main::SCREEN+1*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+1*SIZEOF_UNSIGNED_INT + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(bu) - // [4] *(main::SCREEN+2*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 - sta SCREEN+2*SIZEOF_WORD - sta SCREEN+2*SIZEOF_WORD+1 + // [4] *(main::SCREEN+2*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+2*SIZEOF_UNSIGNED_INT + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(bs) - // [5] *(main::SCREEN+3*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 - sta SCREEN+3*SIZEOF_WORD - sta SCREEN+3*SIZEOF_WORD+1 + // [5] *(main::SCREEN+3*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+3*SIZEOF_UNSIGNED_INT + sta SCREEN+3*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(wu) - // [6] *(main::SCREEN+4*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 - sta SCREEN+4*SIZEOF_WORD - sta SCREEN+4*SIZEOF_WORD+1 + // [6] *(main::SCREEN+4*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+4*SIZEOF_UNSIGNED_INT + sta SCREEN+4*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(ws) - // [7] *(main::SCREEN+5*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 - sta SCREEN+5*SIZEOF_WORD - sta SCREEN+5*SIZEOF_WORD+1 + // [7] *(main::SCREEN+5*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 + sta SCREEN+5*SIZEOF_UNSIGNED_INT + sta SCREEN+5*SIZEOF_UNSIGNED_INT+1 // WORD1(du) // [8] main::$4 = word1 main::du -- vwuz1=_word1_vduz2 lda.z du+2 @@ -537,11 +537,11 @@ main: { lda.z du+3 sta.z __4+1 // SCREEN[i++] = WORD1(du) - // [9] *(main::SCREEN+6*SIZEOF_WORD) = main::$4 -- _deref_pwuc1=vwuz1 + // [9] *(main::SCREEN+6*SIZEOF_UNSIGNED_INT) = main::$4 -- _deref_pwuc1=vwuz1 lda.z __4 - sta SCREEN+6*SIZEOF_WORD + sta SCREEN+6*SIZEOF_UNSIGNED_INT lda.z __4+1 - sta SCREEN+6*SIZEOF_WORD+1 + sta SCREEN+6*SIZEOF_UNSIGNED_INT+1 // WORD1(ds) // [10] main::$5 = word1 main::ds -- vwuz1=_word1_vdsz2 lda.z ds+2 @@ -549,16 +549,16 @@ main: { lda.z ds+3 sta.z __5+1 // SCREEN[i++] = WORD1(ds) - // [11] *(main::SCREEN+7*SIZEOF_WORD) = main::$5 -- _deref_pwuc1=vwuz1 + // [11] *(main::SCREEN+7*SIZEOF_UNSIGNED_INT) = main::$5 -- _deref_pwuc1=vwuz1 lda.z __5 - sta SCREEN+7*SIZEOF_WORD + sta SCREEN+7*SIZEOF_UNSIGNED_INT lda.z __5+1 - sta SCREEN+7*SIZEOF_WORD+1 + sta SCREEN+7*SIZEOF_UNSIGNED_INT+1 // SCREEN[i++] = WORD1(ptr) - // [12] *(main::SCREEN+8*SIZEOF_WORD) = 0 -- _deref_pwuc1=vwuc2 + // [12] *(main::SCREEN+8*SIZEOF_UNSIGNED_INT) = 0 -- _deref_pwuc1=vwuc2 lda #<0 - sta SCREEN+8*SIZEOF_WORD - sta SCREEN+8*SIZEOF_WORD+1 + sta SCREEN+8*SIZEOF_UNSIGNED_INT + sta SCREEN+8*SIZEOF_UNSIGNED_INT+1 // main::@return // } // [13] return diff --git a/src/test/ref/operator-word1.sym b/src/test/ref/operator-word1.sym index 30e69d944..479406cdf 100644 --- a/src/test/ref/operator-word1.sym +++ b/src/test/ref/operator-word1.sym @@ -1,11 +1,11 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word~ main::$4 zp[2]:10 4.0 -word~ main::$5 zp[2]:12 4.0 -constant word* const main::SCREEN = (byte*) 1024 -volatile signed dword main::ds loadstore zp[4]:6 0.4444444444444444 -volatile dword main::du loadstore zp[4]:2 0.5 -byte main::i +unsigned int main::$4 // zp[2]:10 4.0 +unsigned int main::$5 // zp[2]:12 4.0 +__constant unsigned int * const main::SCREEN = (char *) 1024 +__loadstore volatile long main::ds // zp[4]:6 0.4444444444444444 +__loadstore volatile unsigned long main::du // zp[4]:2 0.5 +char main::i zp[4]:2 [ main::du ] zp[4]:6 [ main::ds ] diff --git a/src/test/ref/optimize-unsigned-comparisons.log b/src/test/ref/optimize-unsigned-comparisons.log index 72a4e9454..7b7498119 100644 --- a/src/test/ref/optimize-unsigned-comparisons.log +++ b/src/test/ref/optimize-unsigned-comparisons.log @@ -39,7 +39,7 @@ main::@return: scope:[main] from main::@4 main::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -49,38 +49,38 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* ball_active[8] = { 0, 1, 0, 1, 0, 1, 1, 1 } +__constant char ball_active[8] = { 0, 1, 0, 1, 0, 1, 1, 1 } void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -constant byte* const main::screen = (byte*)$400 -byte main::temp -byte main::temp#0 -byte main::temp#1 -byte main::temp#2 -byte main::temp#3 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +__constant char * const main::screen = (char *)$400 +char main::temp +char main::temp#0 +char main::temp#1 +char main::temp#2 +char main::temp#3 Adding number conversion cast (unumber) 0 in main::$2 = ball_active[main::i#2] < 0 Adding number conversion cast (unumber) 0 in main::$0 = main::temp#2 < 0 Adding number conversion cast (unumber) $28 in main::screen[$28] = main::temp#3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [4] main::$3 = ball_active[main::i#2] >= 0 from [3] main::$2 = ball_active[main::i#2] < 0 Inversing boolean not [15] main::$1 = main::temp#2 >= 0 from [14] main::$0 = main::temp#2 < 0 @@ -120,7 +120,7 @@ Adding number conversion cast (unumber) 8 in [2] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -157,10 +157,10 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 -byte main::temp +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 +char main::temp Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -239,10 +239,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::temp +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::temp reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/optimize-unsigned-comparisons.sym b/src/test/ref/optimize-unsigned-comparisons.sym index e1694faad..d59aae7a2 100644 --- a/src/test/ref/optimize-unsigned-comparisons.sym +++ b/src/test/ref/optimize-unsigned-comparisons.sym @@ -1,7 +1,7 @@ void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::temp +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::temp reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/overlap-allocation-2.asm b/src/test/ref/overlap-allocation-2.asm index 40aac8fef..69a05cc50 100644 --- a/src/test/ref/overlap-allocation-2.asm +++ b/src/test/ref/overlap-allocation-2.asm @@ -33,7 +33,7 @@ main: { // } rts } -// line(byte register(X) l) +// void line(__register(X) char l) line: { // plot(l) jsr plot @@ -44,7 +44,7 @@ line: { // } rts } -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // SCREEN[x] = '*' lda #'*' diff --git a/src/test/ref/overlap-allocation-2.cfg b/src/test/ref/overlap-allocation-2.cfg index 7d877f683..116483d01 100644 --- a/src/test/ref/overlap-allocation-2.cfg +++ b/src/test/ref/overlap-allocation-2.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@3 [1] main::i#2 = phi( main/0, main::@3/main::i#1 ) [2] line::l#0 = main::i#2 - [3] call line + [3] call line to:main::@3 main::@3: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -15,7 +15,7 @@ main::@3: scope:[main] from main::@1 main::@2: scope:[main] from main::@3 main::@4 [6] main::j#2 = phi( main::@3/$a, main::@4/main::j#1 ) [7] line::l#1 = main::j#2 - [8] call line + [8] call line to:main::@4 main::@4: scope:[main] from main::@2 [9] main::j#1 = ++ main::j#2 @@ -25,21 +25,21 @@ main::@return: scope:[main] from main::@4 [11] return to:@return -void line(byte line::l) +void line(char l) line: scope:[line] from main::@1 main::@2 [12] line::l#2 = phi( main::@1/line::l#0, main::@2/line::l#1 ) [13] plot::x#0 = line::l#2 - [14] call plot + [14] call plot to:line::@1 line::@1: scope:[line] from line [15] plot::x#1 = line::l#2 + $14 - [16] call plot + [16] call plot to:line::@return line::@return: scope:[line] from line::@1 [17] return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from line line::@1 [18] plot::x#2 = phi( line/plot::x#0, line::@1/plot::x#1 ) [19] SCREEN[plot::x#2] = '*' diff --git a/src/test/ref/overlap-allocation-2.log b/src/test/ref/overlap-allocation-2.log index 57af4fef2..559335a8f 100644 --- a/src/test/ref/overlap-allocation-2.log +++ b/src/test/ref/overlap-allocation-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@4 main::i#2 = phi( main/main::i#0, main::@4/main::i#1 ) line::l#0 = main::i#2 - call line + call line to:main::@4 main::@4: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -23,7 +23,7 @@ main::@2: scope:[main] from main::@4 main::@3: scope:[main] from main::@2 main::@5 main::j#2 = phi( main::@2/main::j#0, main::@5/main::j#1 ) line::l#1 = main::j#2 - call line + call line to:main::@5 main::@5: scope:[main] from main::@3 main::j#3 = phi( main::@3/main::j#2 ) @@ -35,17 +35,17 @@ main::@return: scope:[main] from main::@5 return to:@return -void line(byte line::l) +void line(char l) line: scope:[line] from main::@1 main::@3 line::l#2 = phi( main::@1/line::l#0, main::@3/line::l#1 ) plot::x#0 = line::l#2 - call plot + call plot to:line::@1 line::@1: scope:[line] from line line::l#3 = phi( line/line::l#2 ) line::$1 = line::l#3 + $14 plot::x#1 = line::$1 - call plot + call plot to:line::@2 line::@2: scope:[line] from line::@1 to:line::@return @@ -53,7 +53,7 @@ line::@return: scope:[line] from line::@2 return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from line line::@1 plot::x#2 = phi( line/plot::x#0, line::@1/plot::x#1 ) SCREEN[plot::x#2] = '*' @@ -68,7 +68,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -77,43 +77,43 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -void line(byte line::l) -number~ line::$1 -byte line::l -byte line::l#0 -byte line::l#1 -byte line::l#2 -byte line::l#3 +void line(char l) +number line::$1 +char line::l +char line::l#0 +char line::l#1 +char line::l#2 +char line::l#3 void main() -bool~ main::$1 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 -byte plot::x#1 -byte plot::x#2 +bool main::$1 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +void plot(char x) +char plot::x +char plot::x#0 +char plot::x#1 +char plot::x#2 Adding number conversion cast (unumber) $14 in line::$1 = line::l#3 + $14 Adding number conversion cast (unumber) line::$1 in line::$1 = line::l#3 + (unumber)$14 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $14 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $14 +Finalized unsigned number type (char) $14 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in line::$1 = line::l#3 + $14 +Inferred type updated to char in line::$1 = line::l#3 + $14 Alias main::i#2 = main::i#3 Alias main::j#2 = main::j#3 Alias line::l#2 = line::l#3 @@ -142,8 +142,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 9 Simplifying constant integer cast $13 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $13 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $13 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -185,7 +185,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@3 [1] main::i#2 = phi( main/0, main::@3/main::i#1 ) [2] line::l#0 = main::i#2 - [3] call line + [3] call line to:main::@3 main::@3: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -194,7 +194,7 @@ main::@3: scope:[main] from main::@1 main::@2: scope:[main] from main::@3 main::@4 [6] main::j#2 = phi( main::@3/$a, main::@4/main::j#1 ) [7] line::l#1 = main::j#2 - [8] call line + [8] call line to:main::@4 main::@4: scope:[main] from main::@2 [9] main::j#1 = ++ main::j#2 @@ -204,21 +204,21 @@ main::@return: scope:[main] from main::@4 [11] return to:@return -void line(byte line::l) +void line(char l) line: scope:[line] from main::@1 main::@2 [12] line::l#2 = phi( main::@1/line::l#0, main::@2/line::l#1 ) [13] plot::x#0 = line::l#2 - [14] call plot + [14] call plot to:line::@1 line::@1: scope:[line] from line [15] plot::x#1 = line::l#2 + $14 - [16] call plot + [16] call plot to:line::@return line::@return: scope:[line] from line::@1 [17] return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from line line::@1 [18] plot::x#2 = phi( line/plot::x#0, line::@1/plot::x#1 ) [19] SCREEN[plot::x#2] = '*' @@ -229,23 +229,23 @@ plot::@return: scope:[plot] from plot VARIABLE REGISTER WEIGHTS -void line(byte line::l) -byte line::l -byte line::l#0 22.0 -byte line::l#1 22.0 -byte line::l#2 74.66666666666666 +void line(char l) +char line::l +char line::l#0 // 22.0 +char line::l#1 // 22.0 +char line::l#2 // 74.66666666666666 void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::j -byte main::j#1 16.5 -byte main::j#2 11.0 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 202.0 -byte plot::x#1 202.0 -byte plot::x#2 1203.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 11.0 +void plot(char x) +char plot::x +char plot::x#0 // 202.0 +char plot::x#1 // 202.0 +char plot::x#2 // 1203.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -315,7 +315,7 @@ main: { // [2] line::l#0 = main::i#2 -- vbuxx=vbuyy tya tax - // [3] call line + // [3] call line // [12] phi from main::@1 to line [phi:main::@1->line] line_from___b1: // [12] phi line::l#2 = line::l#0 [phi:main::@1->line#0] -- register_copy @@ -342,7 +342,7 @@ main: { // [7] line::l#1 = main::j#2 -- vbuxx=vbuyy tya tax - // [8] call line + // [8] call line // [12] phi from main::@2 to line [phi:main::@2->line] line_from___b2: // [12] phi line::l#2 = line::l#1 [phi:main::@2->line#0] -- register_copy @@ -362,10 +362,10 @@ main: { rts } // line -// line(byte register(X) l) +// void line(__register(X) char l) line: { // [13] plot::x#0 = line::l#2 - // [14] call plot + // [14] call plot // [18] phi from line to plot [phi:line->plot] plot_from_line: // [18] phi plot::x#2 = plot::x#0 [phi:line->plot#0] -- register_copy @@ -376,7 +376,7 @@ line: { // [15] plot::x#1 = line::l#2 + $14 -- vbuxx=vbuxx_plus_vbuc1 txa axs #-[$14] - // [16] call plot + // [16] call plot // [18] phi from line::@1 to plot [phi:line::@1->plot] plot_from___b1: // [18] phi plot::x#2 = plot::x#1 [phi:line::@1->plot#0] -- register_copy @@ -388,7 +388,7 @@ line: { rts } // plot -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // [19] SCREEN[plot::x#2] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'*' @@ -434,24 +434,24 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -void line(byte line::l) -byte line::l -byte line::l#0 reg byte x 22.0 -byte line::l#1 reg byte x 22.0 -byte line::l#2 reg byte x 74.66666666666666 +__constant char *SCREEN = (char *) 1024 +void line(char l) +char line::l +char line::l#0 // reg byte x 22.0 +char line::l#1 // reg byte x 22.0 +char line::l#2 // reg byte x 74.66666666666666 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::j -byte main::j#1 reg byte y 16.5 -byte main::j#2 reg byte y 11.0 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 reg byte x 202.0 -byte plot::x#1 reg byte x 202.0 -byte plot::x#2 reg byte x 1203.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::j +char main::j#1 // reg byte y 16.5 +char main::j#2 // reg byte y 11.0 +void plot(char x) +char plot::x +char plot::x#0 // reg byte x 202.0 +char plot::x#1 // reg byte x 202.0 +char plot::x#2 // reg byte x 1203.0 reg byte y [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ] @@ -489,7 +489,7 @@ main: { // [2] line::l#0 = main::i#2 -- vbuxx=vbuyy tya tax - // [3] call line + // [3] call line // [12] phi from main::@1 to line [phi:main::@1->line] // [12] phi line::l#2 = line::l#0 [phi:main::@1->line#0] -- register_copy jsr line @@ -511,7 +511,7 @@ main: { // [7] line::l#1 = main::j#2 -- vbuxx=vbuyy tya tax - // [8] call line + // [8] call line // [12] phi from main::@2 to line [phi:main::@2->line] // [12] phi line::l#2 = line::l#1 [phi:main::@2->line#0] -- register_copy jsr line @@ -528,11 +528,11 @@ main: { rts } // line -// line(byte register(X) l) +// void line(__register(X) char l) line: { // plot(l) // [13] plot::x#0 = line::l#2 - // [14] call plot + // [14] call plot // [18] phi from line to plot [phi:line->plot] // [18] phi plot::x#2 = plot::x#0 [phi:line->plot#0] -- register_copy jsr plot @@ -541,7 +541,7 @@ line: { // [15] plot::x#1 = line::l#2 + $14 -- vbuxx=vbuxx_plus_vbuc1 txa axs #-[$14] - // [16] call plot + // [16] call plot // [18] phi from line::@1 to plot [phi:line::@1->plot] // [18] phi plot::x#2 = plot::x#1 [phi:line::@1->plot#0] -- register_copy jsr plot @@ -551,7 +551,7 @@ line: { rts } // plot -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // SCREEN[x] = '*' // [19] SCREEN[plot::x#2] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 diff --git a/src/test/ref/overlap-allocation-2.sym b/src/test/ref/overlap-allocation-2.sym index 7a56f13e6..345b0a970 100644 --- a/src/test/ref/overlap-allocation-2.sym +++ b/src/test/ref/overlap-allocation-2.sym @@ -1,21 +1,21 @@ -constant byte* SCREEN = (byte*) 1024 -void line(byte line::l) -byte line::l -byte line::l#0 reg byte x 22.0 -byte line::l#1 reg byte x 22.0 -byte line::l#2 reg byte x 74.66666666666666 +__constant char *SCREEN = (char *) 1024 +void line(char l) +char line::l +char line::l#0 // reg byte x 22.0 +char line::l#1 // reg byte x 22.0 +char line::l#2 // reg byte x 74.66666666666666 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::j -byte main::j#1 reg byte y 16.5 -byte main::j#2 reg byte y 11.0 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 reg byte x 202.0 -byte plot::x#1 reg byte x 202.0 -byte plot::x#2 reg byte x 1203.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::j +char main::j#1 // reg byte y 16.5 +char main::j#2 // reg byte y 11.0 +void plot(char x) +char plot::x +char plot::x#0 // reg byte x 202.0 +char plot::x#1 // reg byte x 202.0 +char plot::x#2 // reg byte x 1203.0 reg byte y [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ] diff --git a/src/test/ref/overlap-allocation.asm b/src/test/ref/overlap-allocation.asm index eb736c2f2..5ea08a5ee 100644 --- a/src/test/ref/overlap-allocation.asm +++ b/src/test/ref/overlap-allocation.asm @@ -38,7 +38,7 @@ main: { // } rts } -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // SCREEN[x] = '*' lda #'*' diff --git a/src/test/ref/overlap-allocation.cfg b/src/test/ref/overlap-allocation.cfg index fa27bd5b8..dbe39fe54 100644 --- a/src/test/ref/overlap-allocation.cfg +++ b/src/test/ref/overlap-allocation.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@4 [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] plot::x#0 = main::i#2 - [3] call plot + [3] call plot to:main::@4 main::@4: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -15,7 +15,7 @@ main::@4: scope:[main] from main::@1 main::@2: scope:[main] from main::@4 main::@5 [6] main::j#2 = phi( main::@4/0, main::@5/main::j#1 ) [7] plot::x#1 = main::j#2 - [8] call plot + [8] call plot to:main::@5 main::@5: scope:[main] from main::@2 [9] main::j#1 = ++ main::j#2 @@ -24,7 +24,7 @@ main::@5: scope:[main] from main::@2 main::@3: scope:[main] from main::@5 main::@6 [11] main::k#2 = phi( main::@5/0, main::@6/main::k#1 ) [12] plot::x#2 = main::k#2 - [13] call plot + [13] call plot to:main::@6 main::@6: scope:[main] from main::@3 [14] main::k#1 = ++ main::k#2 @@ -34,7 +34,7 @@ main::@return: scope:[main] from main::@6 [16] return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from main::@1 main::@2 main::@3 [17] plot::x#3 = phi( main::@1/plot::x#0, main::@2/plot::x#1, main::@3/plot::x#2 ) [18] SCREEN[plot::x#3] = '*' diff --git a/src/test/ref/overlap-allocation.log b/src/test/ref/overlap-allocation.log index 9aed7fb50..87837c9ed 100644 --- a/src/test/ref/overlap-allocation.log +++ b/src/test/ref/overlap-allocation.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@6 main::i#2 = phi( main/main::i#0, main::@6/main::i#1 ) plot::x#0 = main::i#2 - call plot + call plot to:main::@6 main::@6: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -23,7 +23,7 @@ main::@2: scope:[main] from main::@6 main::@3: scope:[main] from main::@2 main::@7 main::j#2 = phi( main::@2/main::j#0, main::@7/main::j#1 ) plot::x#1 = main::j#2 - call plot + call plot to:main::@7 main::@7: scope:[main] from main::@3 main::j#3 = phi( main::@3/main::j#2 ) @@ -37,7 +37,7 @@ main::@4: scope:[main] from main::@7 main::@5: scope:[main] from main::@4 main::@8 main::k#2 = phi( main::@4/main::k#0, main::@8/main::k#1 ) plot::x#2 = main::k#2 - call plot + call plot to:main::@8 main::@8: scope:[main] from main::@5 main::k#3 = phi( main::@5/main::k#2 ) @@ -49,7 +49,7 @@ main::@return: scope:[main] from main::@8 return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from main::@1 main::@3 main::@5 plot::x#3 = phi( main::@1/plot::x#0, main::@3/plot::x#1, main::@5/plot::x#2 ) SCREEN[plot::x#3] = '*' @@ -64,7 +64,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -73,35 +73,35 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$1 -bool~ main::$3 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 -byte main::k#3 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 -byte plot::x#1 -byte plot::x#2 -byte plot::x#3 +bool main::$1 +bool main::$3 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 +char main::k#3 +void plot(char x) +char plot::x +char plot::x#0 +char plot::x#1 +char plot::x#2 +char plot::x#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Alias main::j#2 = main::j#3 @@ -136,9 +136,9 @@ Simplifying constant integer cast $b Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -185,7 +185,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@4 [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] plot::x#0 = main::i#2 - [3] call plot + [3] call plot to:main::@4 main::@4: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -194,7 +194,7 @@ main::@4: scope:[main] from main::@1 main::@2: scope:[main] from main::@4 main::@5 [6] main::j#2 = phi( main::@4/0, main::@5/main::j#1 ) [7] plot::x#1 = main::j#2 - [8] call plot + [8] call plot to:main::@5 main::@5: scope:[main] from main::@2 [9] main::j#1 = ++ main::j#2 @@ -203,7 +203,7 @@ main::@5: scope:[main] from main::@2 main::@3: scope:[main] from main::@5 main::@6 [11] main::k#2 = phi( main::@5/0, main::@6/main::k#1 ) [12] plot::x#2 = main::k#2 - [13] call plot + [13] call plot to:main::@6 main::@6: scope:[main] from main::@3 [14] main::k#1 = ++ main::k#2 @@ -213,7 +213,7 @@ main::@return: scope:[main] from main::@6 [16] return to:@return -void plot(byte plot::x) +void plot(char x) plot: scope:[plot] from main::@1 main::@2 main::@3 [17] plot::x#3 = phi( main::@1/plot::x#0, main::@2/plot::x#1, main::@3/plot::x#2 ) [18] SCREEN[plot::x#3] = '*' @@ -225,21 +225,21 @@ plot::@return: scope:[plot] from plot VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::j -byte main::j#1 16.5 -byte main::j#2 11.0 -byte main::k -byte main::k#1 16.5 -byte main::k#2 11.0 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 22.0 -byte plot::x#1 22.0 -byte plot::x#2 22.0 -byte plot::x#3 134.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 11.0 +char main::k +char main::k#1 // 16.5 +char main::k#2 // 11.0 +void plot(char x) +char plot::x +char plot::x#0 // 22.0 +char plot::x#1 // 22.0 +char plot::x#2 // 22.0 +char plot::x#3 // 134.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -305,7 +305,7 @@ main: { // main::@1 __b1: // [2] plot::x#0 = main::i#2 - // [3] call plot + // [3] call plot // [17] phi from main::@1 to plot [phi:main::@1->plot] plot_from___b1: // [17] phi plot::x#3 = plot::x#0 [phi:main::@1->plot#0] -- register_copy @@ -330,7 +330,7 @@ main: { // main::@2 __b2: // [7] plot::x#1 = main::j#2 - // [8] call plot + // [8] call plot // [17] phi from main::@2 to plot [phi:main::@2->plot] plot_from___b2: // [17] phi plot::x#3 = plot::x#1 [phi:main::@2->plot#0] -- register_copy @@ -355,7 +355,7 @@ main: { // main::@3 __b3: // [12] plot::x#2 = main::k#2 - // [13] call plot + // [13] call plot // [17] phi from main::@3 to plot [phi:main::@3->plot] plot_from___b3: // [17] phi plot::x#3 = plot::x#2 [phi:main::@3->plot#0] -- register_copy @@ -375,7 +375,7 @@ main: { rts } // plot -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // [18] SCREEN[plot::x#3] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'*' @@ -423,23 +423,23 @@ Removing instruction jmp __b3 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 11.0 -byte main::k -byte main::k#1 reg byte x 16.5 -byte main::k#2 reg byte x 11.0 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 reg byte x 22.0 -byte plot::x#1 reg byte x 22.0 -byte plot::x#2 reg byte x 22.0 -byte plot::x#3 reg byte x 134.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 11.0 +char main::k +char main::k#1 // reg byte x 16.5 +char main::k#2 // reg byte x 11.0 +void plot(char x) +char plot::x +char plot::x#0 // reg byte x 22.0 +char plot::x#1 // reg byte x 22.0 +char plot::x#2 // reg byte x 22.0 +char plot::x#3 // reg byte x 134.0 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] @@ -476,7 +476,7 @@ main: { __b1: // plot(i) // [2] plot::x#0 = main::i#2 - // [3] call plot + // [3] call plot // [17] phi from main::@1 to plot [phi:main::@1->plot] // [17] phi plot::x#3 = plot::x#0 [phi:main::@1->plot#0] -- register_copy jsr plot @@ -496,7 +496,7 @@ main: { __b2: // plot(j) // [7] plot::x#1 = main::j#2 - // [8] call plot + // [8] call plot // [17] phi from main::@2 to plot [phi:main::@2->plot] // [17] phi plot::x#3 = plot::x#1 [phi:main::@2->plot#0] -- register_copy jsr plot @@ -516,7 +516,7 @@ main: { __b3: // plot(k) // [12] plot::x#2 = main::k#2 - // [13] call plot + // [13] call plot // [17] phi from main::@3 to plot [phi:main::@3->plot] // [17] phi plot::x#3 = plot::x#2 [phi:main::@3->plot#0] -- register_copy jsr plot @@ -533,7 +533,7 @@ main: { rts } // plot -// plot(byte register(X) x) +// void plot(__register(X) char x) plot: { // SCREEN[x] = '*' // [18] SCREEN[plot::x#3] = '*' -- pbuc1_derefidx_vbuxx=vbuc2 diff --git a/src/test/ref/overlap-allocation.sym b/src/test/ref/overlap-allocation.sym index e0f863c7b..e32ec228b 100644 --- a/src/test/ref/overlap-allocation.sym +++ b/src/test/ref/overlap-allocation.sym @@ -1,20 +1,20 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 11.0 -byte main::k -byte main::k#1 reg byte x 16.5 -byte main::k#2 reg byte x 11.0 -void plot(byte plot::x) -byte plot::x -byte plot::x#0 reg byte x 22.0 -byte plot::x#1 reg byte x 22.0 -byte plot::x#2 reg byte x 22.0 -byte plot::x#3 reg byte x 134.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 11.0 +char main::k +char main::k#1 // reg byte x 16.5 +char main::k#2 // reg byte x 11.0 +void plot(char x) +char plot::x +char plot::x#0 // reg byte x 22.0 +char plot::x#1 // reg byte x 22.0 +char plot::x#2 // reg byte x 22.0 +char plot::x#3 // reg byte x 134.0 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/parse-negated-struct-ref.cfg b/src/test/ref/parse-negated-struct-ref.cfg index 5effda14d..d2d0714ca 100644 --- a/src/test/ref/parse-negated-struct-ref.cfg +++ b/src/test/ref/parse-negated-struct-ref.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] if(0!=*((byte*)main::a)) goto main::@1 + [0] if(0!=*((char *)main::a)) goto main::@1 to:main::@2 main::@2: scope:[main] from main [1] *main::SCREEN = 'a' diff --git a/src/test/ref/parse-negated-struct-ref.log b/src/test/ref/parse-negated-struct-ref.log index f3a838418..7f9674997 100644 --- a/src/test/ref/parse-negated-struct-ref.log +++ b/src/test/ref/parse-negated-struct-ref.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$3 = (byte*)main::a + main::$3 = (char *)main::a main::$2 = main::$3 + OFFSET_STRUCT_A_B main::$4 = 0 != *main::$2 main::$0 = ! main::$4 @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,33 +32,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_A_B = 0 +__constant char OFFSET_STRUCT_A_B = 0 void __start() -volatile struct A aa loadstore = { b: 1 } +__loadstore volatile struct A aa = { b: 1 } void main() -bool~ main::$0 -bool~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -bool~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -constant struct A* main::a = &aa +bool main::$0 +bool main::$1 +char *main::$2 +char *main::$3 +bool main::$4 +__constant char * const main::SCREEN = (char *)$400 +__constant struct A *main::a = &aa Adding number conversion cast (unumber) 0 in main::$4 = 0 != *main::$2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [3] main::$0 = 0 == *main::$2 from [2] main::$4 = 0 != *main::$2 Inversing boolean not [4] main::$1 = 0 != *main::$2 from [3] main::$0 = 0 == *main::$2 Successful SSA optimization Pass2UnaryNotSimplification Simple Condition main::$1 [3] if(0!=*main::$2) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [0] main::$3 = (byte*)main::a +Constant right-side identified [0] main::$3 = (char *)main::a Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$3 = (byte*)main::a +Constant main::$3 = (char *)main::a Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [3] if(0!=*main::$2) goto main::@1 -- main::$3[OFFSET_STRUCT_A_B] Successful SSA optimization Pass2InlineDerefIdx @@ -73,7 +73,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$3 = (byte*)main::a +Constant inlined main::$3 = (char *)main::a Successful SSA optimization Pass2ConstantInlining CALL GRAPH @@ -84,7 +84,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] if(0!=*((byte*)main::a)) goto main::@1 + [0] if(0!=*((char *)main::a)) goto main::@1 to:main::@2 main::@2: scope:[main] from main [1] *main::SCREEN = 'a' @@ -98,7 +98,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -volatile struct A aa loadstore = { b: 1 } +__loadstore volatile struct A aa = { b: 1 } void main() Initial phi equivalence classes @@ -107,7 +107,7 @@ Complete equivalence classes [ aa ] Allocated mem[1] [ aa ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] if(0!=*((byte*)main::a)) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] if(0!=*((char *)main::a)) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *main::SCREEN = 'a' [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[1] [ aa ] : mem[1] , @@ -141,7 +141,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label SCREEN = $400 .label a = aa - // [0] if(0!=*((byte*)main::a)) goto main::@1 -- 0_neq__deref_pbuc1_then_la1 + // [0] if(0!=*((char *)main::a)) goto main::@1 -- 0_neq__deref_pbuc1_then_la1 lda a bne __b1 jmp __b2 @@ -181,10 +181,10 @@ Removing instruction __b1: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -volatile struct A aa loadstore mem[1] = { b: 1 } +__loadstore volatile struct A aa = { b: 1 } // mem[1] void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct A* main::a = &aa +__constant char * const main::SCREEN = (char *) 1024 +__constant struct A *main::a = &aa mem[1] [ aa ] @@ -211,7 +211,7 @@ main: { .label SCREEN = $400 .label a = aa // if(!a->b) - // [0] if(0!=*((byte*)main::a)) goto main::@1 -- 0_neq__deref_pbuc1_then_la1 + // [0] if(0!=*((char *)main::a)) goto main::@1 -- 0_neq__deref_pbuc1_then_la1 lda a bne !a+ // main::@2 diff --git a/src/test/ref/parse-negated-struct-ref.sym b/src/test/ref/parse-negated-struct-ref.sym index b8bb9fb0c..d24e0ab18 100644 --- a/src/test/ref/parse-negated-struct-ref.sym +++ b/src/test/ref/parse-negated-struct-ref.sym @@ -1,6 +1,6 @@ -volatile struct A aa loadstore mem[1] = { b: 1 } +__loadstore volatile struct A aa = { b: 1 } // mem[1] void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct A* main::a = &aa +__constant char * const main::SCREEN = (char *) 1024 +__constant struct A *main::a = &aa mem[1] [ aa ] diff --git a/src/test/ref/platform-asm6502.log b/src/test/ref/platform-asm6502.log index e17afa378..34d3a272b 100644 --- a/src/test/ref/platform-asm6502.log +++ b/src/test/ref/platform-asm6502.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,21 +30,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* TABLE[$a] = { fill( $a, 0) } +__constant char TABLE[$a] = { fill( $a, 0) } void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -60,8 +60,8 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -92,9 +92,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -165,11 +165,11 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* TABLE[$a] = { fill( $a, 0) } +__constant char TABLE[$a] = { fill( $a, 0) } void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/platform-asm6502.sym b/src/test/ref/platform-asm6502.sym index 14600c329..6ce762587 100644 --- a/src/test/ref/platform-asm6502.sym +++ b/src/test/ref/platform-asm6502.sym @@ -1,7 +1,7 @@ -constant byte* TABLE[$a] = { fill( $a, 0) } +__constant char TABLE[$a] = { fill( $a, 0) } void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/platform-default-define.log b/src/test/ref/platform-default-define.log index 6b05e8acd..19dc5068f 100644 --- a/src/test/ref/platform-default-define.log +++ b/src/test/ref/platform-default-define.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,16 +20,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -104,7 +104,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/platform-default-define.sym b/src/test/ref/platform-default-define.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/platform-default-define.sym +++ b/src/test/ref/platform-default-define.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/platform-plus4-define.log b/src/test/ref/platform-plus4-define.log index 6086438b5..9af426b21 100644 --- a/src/test/ref/platform-plus4-define.log +++ b/src/test/ref/platform-plus4-define.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,16 +20,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$c00 +__constant char * const SCREEN = (char *)$c00 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 3072 +Simplifying constant pointer cast (char *) 3072 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -104,7 +104,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 3072 +__constant char * const SCREEN = (char *) 3072 void main() diff --git a/src/test/ref/platform-plus4-define.sym b/src/test/ref/platform-plus4-define.sym index 7b17c3a5f..d4a77c199 100644 --- a/src/test/ref/platform-plus4-define.sym +++ b/src/test/ref/platform-plus4-define.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 3072 +__constant char * const SCREEN = (char *) 3072 void main() diff --git a/src/test/ref/plus-0.asm b/src/test/ref/plus-0.asm index 41f733344..6e2813e20 100644 --- a/src/test/ref/plus-0.asm +++ b/src/test/ref/plus-0.asm @@ -26,7 +26,7 @@ main: { // } rts } -// fill(byte* zp(2) screen, byte register(X) ch) +// void fill(__zp(2) char *screen, __register(X) char ch) fill: { .label screen = 2 .label __5 = 4 diff --git a/src/test/ref/plus-0.cfg b/src/test/ref/plus-0.cfg index be94375e3..4987dfcaf 100644 --- a/src/test/ref/plus-0.cfg +++ b/src/test/ref/plus-0.cfg @@ -2,20 +2,20 @@ void main() main: scope:[main] from [0] phi() - [1] call fill + [1] call fill to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call fill + [3] call fill to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void fill(byte* fill::screen , byte fill::ch) +void fill(char *screen , char ch) fill: scope:[fill] from main main::@1 [5] fill::ch#4 = phi( main/'a', main::@1/'b' ) - [5] fill::screen#4 = phi( main/(byte*) 1024, main::@1/(byte*) 8192 ) + [5] fill::screen#4 = phi( main/(char *) 1024, main::@1/(char *) 8192 ) to:fill::@1 fill::@1: scope:[fill] from fill fill::@3 [6] fill::i#4 = phi( fill/0, fill::@3/fill::i#1 ) diff --git a/src/test/ref/plus-0.log b/src/test/ref/plus-0.log index 1acdac7bc..334ef4f24 100644 --- a/src/test/ref/plus-0.log +++ b/src/test/ref/plus-0.log @@ -3,14 +3,14 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - fill::screen#0 = (byte*)$400 + fill::screen#0 = (char *)$400 fill::ch#0 = 'a' - call fill + call fill to:main::@1 main::@1: scope:[main] from main - fill::screen#1 = (byte*)$2000 + fill::screen#1 = (char *)$2000 fill::ch#1 = 'b' - call fill + call fill to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void fill(byte* fill::screen , byte fill::ch) +void fill(char *screen , char ch) fill: scope:[fill] from main main::@1 fill::ch#4 = phi( main/fill::ch#0, main::@1/fill::ch#1 ) fill::screen#4 = phi( main/fill::screen#0, main::@1/fill::screen#1 ) @@ -56,7 +56,7 @@ fill::@return: scope:[fill] from fill::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -66,47 +66,47 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -void fill(byte* fill::screen , byte fill::ch) -number~ fill::$0 -byte*~ fill::$1 -bool~ fill::$2 -bool~ fill::$3 -byte fill::ch -byte fill::ch#0 -byte fill::ch#1 -byte fill::ch#2 -byte fill::ch#3 -byte fill::ch#4 -byte fill::ch#5 -byte fill::i -byte fill::i#0 -byte fill::i#1 -byte fill::i#2 -byte fill::i#3 -byte fill::i#4 -byte fill::j -byte fill::j#0 -byte fill::j#1 -byte fill::j#2 -byte* fill::screen -byte* fill::screen#0 -byte* fill::screen#1 -byte* fill::screen#2 -byte* fill::screen#3 -byte* fill::screen#4 -byte* fill::screen#5 +void fill(char *screen , char ch) +number fill::$0 +char *fill::$1 +bool fill::$2 +bool fill::$3 +char fill::ch +char fill::ch#0 +char fill::ch#1 +char fill::ch#2 +char fill::ch#3 +char fill::ch#4 +char fill::ch#5 +char fill::i +char fill::i#0 +char fill::i#1 +char fill::i#2 +char fill::i#3 +char fill::i#4 +char fill::j +char fill::j#0 +char fill::j#1 +char fill::j#2 +char *fill::screen +char *fill::screen#0 +char *fill::screen#1 +char *fill::screen#2 +char *fill::screen#3 +char *fill::screen#4 +char *fill::screen#5 void main() Adding number conversion cast (unumber) $28 in fill::$0 = fill::j#2 * $28 Adding number conversion cast (unumber) fill::$0 in fill::$0 = fill::j#2 * (unumber)$28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in fill::$0 = fill::j#2 * $28 +Inferred type updated to char in fill::$0 = fill::j#2 * $28 Alias fill::i#2 = fill::i#3 Alias fill::screen#2 = fill::screen#5 Alias fill::ch#2 = fill::ch#5 @@ -121,9 +121,9 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition fill::$2 [17] unroll if(fill::j#1!=rangelast(0,2)) goto fill::@2 Simple Condition fill::$3 [20] if(fill::i#1!=rangelast(0,$27)) goto fill::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant fill::screen#0 = (byte*) 1024 +Constant fill::screen#0 = (char *) 1024 Constant fill::ch#0 = 'a' -Constant fill::screen#1 = (byte*) 8192 +Constant fill::screen#1 = (char *) 8192 Constant fill::ch#1 = 'b' Constant fill::i#0 = 0 Constant fill::j#0 = 0 @@ -143,8 +143,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Unrolling loop Loop head: fill::@2 tails: fill::@2 blocks: fill::@2 Successful SSA optimization Pass2LoopUnroll @@ -215,8 +215,8 @@ Inlining constant with different constant siblings fill::j#1 Inlining constant with different constant siblings fill::j#4 Constant inlined fill::j#4 = ++++0 Constant inlined fill::ch#0 = 'a' -Constant inlined fill::screen#1 = (byte*) 8192 -Constant inlined fill::screen#0 = (byte*) 1024 +Constant inlined fill::screen#1 = (char *) 8192 +Constant inlined fill::screen#0 = (char *) 1024 Constant inlined fill::i#0 = 0 Constant inlined fill::$6 = ++++0*$28 Constant inlined fill::ch#1 = 'b' @@ -249,20 +249,20 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call fill + [1] call fill to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call fill + [3] call fill to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void fill(byte* fill::screen , byte fill::ch) +void fill(char *screen , char ch) fill: scope:[fill] from main main::@1 [5] fill::ch#4 = phi( main/'a', main::@1/'b' ) - [5] fill::screen#4 = phi( main/(byte*) 1024, main::@1/(byte*) 8192 ) + [5] fill::screen#4 = phi( main/(char *) 1024, main::@1/(char *) 8192 ) to:fill::@1 fill::@1: scope:[fill] from fill fill::@3 [6] fill::i#4 = phi( fill/0, fill::@3/fill::i#1 ) @@ -288,17 +288,17 @@ fill::@return: scope:[fill] from fill::@3 VARIABLE REGISTER WEIGHTS -void fill(byte* fill::screen , byte fill::ch) -byte*~ fill::$5 202.0 -byte*~ fill::$7 202.0 -byte fill::ch -byte fill::ch#4 33.666666666666664 -byte fill::i -byte fill::i#1 151.5 -byte fill::i#4 84.16666666666666 -byte fill::j -byte* fill::screen -byte* fill::screen#4 33.666666666666664 +void fill(char *screen , char ch) +char *fill::$5 // 202.0 +char *fill::$7 // 202.0 +char fill::ch +char fill::ch#4 // 33.666666666666664 +char fill::i +char fill::i#1 // 151.5 +char fill::i#4 // 84.16666666666666 +char fill::j +char *fill::screen +char *fill::screen#4 // 33.666666666666664 void main() Initial phi equivalence classes @@ -363,12 +363,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call fill + // [1] call fill // [5] phi from main to fill [phi:main->fill] fill_from_main: // [5] phi fill::ch#4 = 'a' [phi:main->fill#0] -- vbuxx=vbuc1 ldx #'a' - // [5] phi fill::screen#4 = (byte*) 1024 [phi:main->fill#1] -- pbuz1=pbuc1 + // [5] phi fill::screen#4 = (char *) 1024 [phi:main->fill#1] -- pbuz1=pbuc1 lda #<$400 sta.z fill.screen lda #>$400 @@ -379,12 +379,12 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call fill + // [3] call fill // [5] phi from main::@1 to fill [phi:main::@1->fill] fill_from___b1: // [5] phi fill::ch#4 = 'b' [phi:main::@1->fill#0] -- vbuxx=vbuc1 ldx #'b' - // [5] phi fill::screen#4 = (byte*) 8192 [phi:main::@1->fill#1] -- pbuz1=pbuc1 + // [5] phi fill::screen#4 = (char *) 8192 [phi:main::@1->fill#1] -- pbuz1=pbuc1 lda #<$2000 sta.z fill.screen lda #>$2000 @@ -397,7 +397,7 @@ main: { rts } // fill -// fill(byte* zp(2) screen, byte register(X) ch) +// void fill(__zp(2) char *screen, __register(X) char ch) fill: { .label screen = 2 .label __5 = 4 @@ -493,17 +493,17 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -void fill(byte* fill::screen , byte fill::ch) -byte*~ fill::$5 zp[2]:4 202.0 -byte*~ fill::$7 zp[2]:6 202.0 -byte fill::ch -byte fill::ch#4 reg byte x 33.666666666666664 -byte fill::i -byte fill::i#1 reg byte y 151.5 -byte fill::i#4 reg byte y 84.16666666666666 -byte fill::j -byte* fill::screen -byte* fill::screen#4 screen zp[2]:2 33.666666666666664 +void fill(char *screen , char ch) +char *fill::$5 // zp[2]:4 202.0 +char *fill::$7 // zp[2]:6 202.0 +char fill::ch +char fill::ch#4 // reg byte x 33.666666666666664 +char fill::i +char fill::i#1 // reg byte y 151.5 +char fill::i#4 // reg byte y 84.16666666666666 +char fill::j +char *fill::screen +char *fill::screen#4 // screen zp[2]:2 33.666666666666664 void main() zp[2]:2 [ fill::screen#4 ] @@ -532,11 +532,11 @@ Score: 733 // main main: { // fill((byte*)$400,'a') - // [1] call fill + // [1] call fill // [5] phi from main to fill [phi:main->fill] // [5] phi fill::ch#4 = 'a' [phi:main->fill#0] -- vbuxx=vbuc1 ldx #'a' - // [5] phi fill::screen#4 = (byte*) 1024 [phi:main->fill#1] -- pbuz1=pbuc1 + // [5] phi fill::screen#4 = (char *) 1024 [phi:main->fill#1] -- pbuz1=pbuc1 lda #<$400 sta.z fill.screen lda #>$400 @@ -545,11 +545,11 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // fill((byte*)$2000,'b') - // [3] call fill + // [3] call fill // [5] phi from main::@1 to fill [phi:main::@1->fill] // [5] phi fill::ch#4 = 'b' [phi:main::@1->fill#0] -- vbuxx=vbuc1 ldx #'b' - // [5] phi fill::screen#4 = (byte*) 8192 [phi:main::@1->fill#1] -- pbuz1=pbuc1 + // [5] phi fill::screen#4 = (char *) 8192 [phi:main::@1->fill#1] -- pbuz1=pbuc1 lda #<$2000 sta.z fill.screen lda #>$2000 @@ -561,7 +561,7 @@ main: { rts } // fill -// fill(byte* zp(2) screen, byte register(X) ch) +// void fill(__zp(2) char *screen, __register(X) char ch) fill: { .label screen = 2 .label __5 = 4 diff --git a/src/test/ref/plus-0.sym b/src/test/ref/plus-0.sym index a3e24627e..c6aa3b281 100644 --- a/src/test/ref/plus-0.sym +++ b/src/test/ref/plus-0.sym @@ -1,14 +1,14 @@ -void fill(byte* fill::screen , byte fill::ch) -byte*~ fill::$5 zp[2]:4 202.0 -byte*~ fill::$7 zp[2]:6 202.0 -byte fill::ch -byte fill::ch#4 reg byte x 33.666666666666664 -byte fill::i -byte fill::i#1 reg byte y 151.5 -byte fill::i#4 reg byte y 84.16666666666666 -byte fill::j -byte* fill::screen -byte* fill::screen#4 screen zp[2]:2 33.666666666666664 +void fill(char *screen , char ch) +char *fill::$5 // zp[2]:4 202.0 +char *fill::$7 // zp[2]:6 202.0 +char fill::ch +char fill::ch#4 // reg byte x 33.666666666666664 +char fill::i +char fill::i#1 // reg byte y 151.5 +char fill::i#4 // reg byte y 84.16666666666666 +char fill::j +char *fill::screen +char *fill::screen#4 // screen zp[2]:2 33.666666666666664 void main() zp[2]:2 [ fill::screen#4 ] diff --git a/src/test/ref/plus4-kbhit.cfg b/src/test/ref/plus4-kbhit.cfg index 70f7be33d..984a8e302 100644 --- a/src/test/ref/plus4-kbhit.cfg +++ b/src/test/ref/plus4-kbhit.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] phi() - [2] call kbhit + [2] call kbhit [3] kbhit::return#0 = kbhit::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -16,11 +16,11 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -byte kbhit() +char kbhit() kbhit: scope:[kbhit] from main::@1 - [7] *((byte*)KEYBOARD_PORT) = 0 - [8] *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 - [9] kbhit::return#1 = ~ *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) + [7] *((char *)KEYBOARD_PORT) = 0 + [8] *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 + [9] kbhit::return#1 = ~ *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) to:kbhit::@return kbhit::@return: scope:[kbhit] from kbhit [10] return diff --git a/src/test/ref/plus4-kbhit.log b/src/test/ref/plus4-kbhit.log index 4ef2e017c..a5d5ca5a0 100644 --- a/src/test/ref/plus4-kbhit.log +++ b/src/test/ref/plus4-kbhit.log @@ -8,7 +8,7 @@ void main() main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 - call kbhit + call kbhit kbhit::return#0 = kbhit::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,11 +22,11 @@ main::@return: scope:[main] from main::@2 return to:@return -byte kbhit() +char kbhit() kbhit: scope:[kbhit] from main::@1 - *((byte*)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = 0 - *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 - kbhit::$0 = ~ *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) + *((char *)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = 0 + *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 + kbhit::$0 = ~ *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) kbhit::return#1 = kbhit::$0 to:kbhit::@return kbhit::@return: scope:[kbhit] from kbhit @@ -37,7 +37,7 @@ kbhit::@return: scope:[kbhit] from kbhit void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -46,40 +46,40 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct MOS6529_PIO* const KEYBOARD_PORT = (struct MOS6529_PIO*)$fd30 -constant byte OFFSET_STRUCT_MOS6529_PIO_PORT = 0 -constant byte OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT = 8 -constant struct MOS7360_TED* const TED = (struct MOS7360_TED*)$ff00 +__constant struct MOS6529_PIO * const KEYBOARD_PORT = (struct MOS6529_PIO *)$fd30 +__constant char OFFSET_STRUCT_MOS6529_PIO_PORT = 0 +__constant char OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT = 8 +__constant struct MOS7360_TED * const TED = (struct MOS7360_TED *)$ff00 void __start() -byte kbhit() -byte~ kbhit::$0 -byte kbhit::return -byte kbhit::return#0 -byte kbhit::return#1 -byte kbhit::return#2 -byte kbhit::return#3 -byte kbhit::return#4 +char kbhit() +char kbhit::$0 +char kbhit::return +char kbhit::return#0 +char kbhit::return#1 +char kbhit::return#2 +char kbhit::return#3 +char kbhit::return#4 void main() -byte~ main::$0 -bool~ main::$1 -bool~ main::$2 +char main::$0 +bool main::$1 +bool main::$2 Adding number conversion cast (unumber) 0 in main::$2 = 0 != main::$0 -Adding number conversion cast (unumber) 0 in *((byte*)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = 0 -Adding number conversion cast (unumber) 0 in *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 +Adding number conversion cast (unumber) 0 in *((char *)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = 0 +Adding number conversion cast (unumber) 0 in *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = (unumber)0 -Inlining cast *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = (unumber)0 +Inlining cast *((char *)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = (unumber)0 +Inlining cast *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6529_PIO*) 64816 -Simplifying constant pointer cast (struct MOS7360_TED*) 65280 +Simplifying constant pointer cast (struct MOS6529_PIO *) 64816 +Simplifying constant pointer cast (struct MOS7360_TED *) 65280 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [5] main::$1 = 0 == main::$0 from [4] main::$2 = 0 != main::$0 Successful SSA optimization Pass2UnaryNotSimplification @@ -88,7 +88,7 @@ Alias kbhit::return#1 = kbhit::$0 kbhit::return#4 kbhit::return#2 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [4] if(0==main::$0) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Simplifying expression containing zero (byte*)KEYBOARD_PORT in [6] *((byte*)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = 0 +Simplifying expression containing zero (char *)KEYBOARD_PORT in [6] *((char *)KEYBOARD_PORT+OFFSET_STRUCT_MOS6529_PIO_PORT) = 0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_MOS6529_PIO_PORT Successful SSA optimization PassNEliminateUnusedVars @@ -97,8 +97,8 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) $1d -Finalized unsigned number type (byte) $1d +Finalized unsigned number type (char) $1d +Finalized unsigned number type (char) $1d Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -118,7 +118,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] phi() - [2] call kbhit + [2] call kbhit [3] kbhit::return#0 = kbhit::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -129,11 +129,11 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -byte kbhit() +char kbhit() kbhit: scope:[kbhit] from main::@1 - [7] *((byte*)KEYBOARD_PORT) = 0 - [8] *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 - [9] kbhit::return#1 = ~ *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) + [7] *((char *)KEYBOARD_PORT) = 0 + [8] *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 + [9] kbhit::return#1 = ~ *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) to:kbhit::@return kbhit::@return: scope:[kbhit] from kbhit [10] return @@ -141,12 +141,12 @@ kbhit::@return: scope:[kbhit] from kbhit VARIABLE REGISTER WEIGHTS -byte kbhit() -byte kbhit::return -byte kbhit::return#0 22.0 -byte kbhit::return#1 37.33333333333333 +char kbhit() +char kbhit::return +char kbhit::return#0 // 22.0 +char kbhit::return#1 // 37.33333333333333 void main() -byte~ main::$0 22.0 +char main::$0 // 22.0 Initial phi equivalence classes Added variable kbhit::return#0 to live range equivalence class [ kbhit::return#0 ] @@ -160,9 +160,9 @@ Allocated zp[1]:2 [ kbhit::return#0 ] Allocated zp[1]:3 [ main::$0 ] Allocated zp[1]:4 [ kbhit::return#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] *((byte*)KEYBOARD_PORT) = 0 [ ] ( kbhit:2 [ ] { { kbhit::return#0 = kbhit::return#1 } } ) always clobbers reg byte a -Statement [8] *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 [ ] ( kbhit:2 [ ] { { kbhit::return#0 = kbhit::return#1 } } ) always clobbers reg byte a -Statement [9] kbhit::return#1 = ~ *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) [ kbhit::return#1 ] ( kbhit:2 [ kbhit::return#1 ] { { kbhit::return#0 = kbhit::return#1 } } ) always clobbers reg byte a +Statement [7] *((char *)KEYBOARD_PORT) = 0 [ ] ( kbhit:2 [ ] { { kbhit::return#0 = kbhit::return#1 } } ) always clobbers reg byte a +Statement [8] *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 [ ] ( kbhit:2 [ ] { { kbhit::return#0 = kbhit::return#1 } } ) always clobbers reg byte a +Statement [9] kbhit::return#1 = ~ *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) [ kbhit::return#1 ] ( kbhit:2 [ kbhit::return#1 ] { { kbhit::return#0 = kbhit::return#1 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ kbhit::return#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$0 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ kbhit::return#1 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -226,7 +226,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call kbhit + // [2] call kbhit jsr kbhit // [3] kbhit::return#0 = kbhit::return#1 jmp __b2 @@ -245,15 +245,15 @@ main: { // kbhit // Return true if there's a key waiting, return false if not kbhit: { - // [7] *((byte*)KEYBOARD_PORT) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)KEYBOARD_PORT) = 0 -- _deref_pbuc1=vbuc2 // Read all keyboard matrix rows lda #0 sta KEYBOARD_PORT - // [8] *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 -- _deref_pbuc1=vbuc2 // Write to the keyboard input to latch the matrix column values lda #0 sta TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT - // [9] kbhit::return#1 = ~ *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) -- vbuaa=_bnot__deref_pbuc1 + // [9] kbhit::return#1 = ~ *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) -- vbuaa=_bnot__deref_pbuc1 lda TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT eor #$ff jmp __breturn @@ -283,15 +283,15 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct MOS6529_PIO* const KEYBOARD_PORT = (struct MOS6529_PIO*) 64816 -constant byte OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT = 8 -constant struct MOS7360_TED* const TED = (struct MOS7360_TED*) 65280 -byte kbhit() -byte kbhit::return -byte kbhit::return#0 reg byte a 22.0 -byte kbhit::return#1 reg byte a 37.33333333333333 +__constant struct MOS6529_PIO * const KEYBOARD_PORT = (struct MOS6529_PIO *) 64816 +__constant char OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT = 8 +__constant struct MOS7360_TED * const TED = (struct MOS7360_TED *) 65280 +char kbhit() +char kbhit::return +char kbhit::return#0 // reg byte a 22.0 +char kbhit::return#1 // reg byte a 37.33333333333333 void main() -byte~ main::$0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 reg byte a [ kbhit::return#0 ] reg byte a [ main::$0 ] @@ -338,7 +338,7 @@ main: { // main::@1 __b1: // kbhit() - // [2] call kbhit + // [2] call kbhit jsr kbhit // [3] kbhit::return#0 = kbhit::return#1 // main::@2 @@ -356,16 +356,16 @@ main: { // Return true if there's a key waiting, return false if not kbhit: { // KEYBOARD_PORT->PORT = 0x00 - // [7] *((byte*)KEYBOARD_PORT) = 0 -- _deref_pbuc1=vbuc2 + // [7] *((char *)KEYBOARD_PORT) = 0 -- _deref_pbuc1=vbuc2 // Read all keyboard matrix rows lda #0 sta KEYBOARD_PORT // TED->KEYBOARD_INPUT = 0 - // [8] *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 -- _deref_pbuc1=vbuc2 + // [8] *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) = 0 -- _deref_pbuc1=vbuc2 // Write to the keyboard input to latch the matrix column values sta TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT // ~TED->KEYBOARD_INPUT - // [9] kbhit::return#1 = ~ *((volatile byte*)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) -- vbuaa=_bnot__deref_pbuc1 + // [9] kbhit::return#1 = ~ *((volatile char *)TED+OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT) -- vbuaa=_bnot__deref_pbuc1 eor #$ff // kbhit::@return // } diff --git a/src/test/ref/plus4-kbhit.sym b/src/test/ref/plus4-kbhit.sym index d5e92ecea..c5954d930 100644 --- a/src/test/ref/plus4-kbhit.sym +++ b/src/test/ref/plus4-kbhit.sym @@ -1,12 +1,12 @@ -constant struct MOS6529_PIO* const KEYBOARD_PORT = (struct MOS6529_PIO*) 64816 -constant byte OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT = 8 -constant struct MOS7360_TED* const TED = (struct MOS7360_TED*) 65280 -byte kbhit() -byte kbhit::return -byte kbhit::return#0 reg byte a 22.0 -byte kbhit::return#1 reg byte a 37.33333333333333 +__constant struct MOS6529_PIO * const KEYBOARD_PORT = (struct MOS6529_PIO *) 64816 +__constant char OFFSET_STRUCT_MOS7360_TED_KEYBOARD_INPUT = 8 +__constant struct MOS7360_TED * const TED = (struct MOS7360_TED *) 65280 +char kbhit() +char kbhit::return +char kbhit::return#0 // reg byte a 22.0 +char kbhit::return#1 // reg byte a 37.33333333333333 void main() -byte~ main::$0 reg byte a 22.0 +char main::$0 // reg byte a 22.0 reg byte a [ kbhit::return#0 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/plus4-keyboard-test.asm b/src/test/ref/plus4-keyboard-test.asm index 65b2e96f4..d1b3484e6 100644 --- a/src/test/ref/plus4-keyboard-test.asm +++ b/src/test/ref/plus4-keyboard-test.asm @@ -97,6 +97,7 @@ main: { jmp __b3 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $400 diff --git a/src/test/ref/plus4-keyboard-test.cfg b/src/test/ref/plus4-keyboard-test.cfg index 0a3f246d6..ce7cf74f8 100644 --- a/src/test/ref/plus4-keyboard-test.cfg +++ b/src/test/ref/plus4-keyboard-test.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from asm { sei } - [1] call memset + [1] call memset to:main::@1 main::@1: scope:[main] from main main::@1 main::@5 [2] main::row#6 = phi( main/DEFAULT_SCREEN, main::@5/main::row#1, main::@1/DEFAULT_SCREEN ) @@ -37,12 +37,12 @@ main::@6: scope:[main] from main::@4 main::@7 [17] main::x#1 = ++ main::x#2 to:main::@3 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [18] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [19] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [19] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [20] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 diff --git a/src/test/ref/plus4-keyboard-test.log b/src/test/ref/plus4-keyboard-test.log index a81c2dd14..4daa96d2b 100644 --- a/src/test/ref/plus4-keyboard-test.log +++ b/src/test/ref/plus4-keyboard-test.log @@ -3,7 +3,7 @@ Eliminating unused variable with no statement main::$4 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main memset::c#4 = phi( main/memset::c#0 ) memset::str#3 = phi( main/memset::str#0 ) @@ -20,9 +20,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -49,10 +49,10 @@ memset::@return: scope:[memset] from memset::@1 void main() main: scope:[main] from __start asm { sei } - memset::str#0 = (void*)DEFAULT_SCREEN + memset::str#0 = (void *)DEFAULT_SCREEN memset::c#0 = ' ' memset::num#0 = $400 - call memset + call memset memset::return#2 = memset::return#1 to:main::@10 main::@10: scope:[main] from main @@ -126,7 +126,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -135,89 +135,89 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_SCREEN = (byte*)$c00 -constant byte* const KEYBOARD_INPUT = (byte*)$ff08 -constant byte* const KEYBOARD_SCAN = (byte*)$fd30 +__constant char * const DEFAULT_SCREEN = (char *)$c00 +__constant char * const KEYBOARD_INPUT = (char *)$ff08 +__constant char * const KEYBOARD_SCAN = (char *)$fd30 void __start() void main() -bool~ main::$1 -number~ main::$2 -number~ main::$3 -bool~ main::$5 -number~ main::$6 -bool~ main::$7 -bool~ main::$8 -bool~ main::$9 -byte main::key_bit -byte main::key_bit#0 -byte main::key_bit#1 -byte main::key_bit#2 -byte main::key_bit#3 -byte main::key_bit#4 -byte main::key_bit#5 -byte* main::row -byte* main::row#0 -byte* main::row#1 -byte* main::row#2 -byte* main::row#3 -byte* main::row#4 -byte* main::row#5 -byte* main::row#6 -byte* main::row#7 -byte* main::row#8 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -byte main::x#5 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -byte main::y#5 -byte main::y#6 -byte main::y#7 -byte main::y#8 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 +bool main::$1 +number main::$2 +number main::$3 +bool main::$5 +number main::$6 +bool main::$7 +bool main::$8 +bool main::$9 +char main::key_bit +char main::key_bit#0 +char main::key_bit#1 +char main::key_bit#2 +char main::key_bit#3 +char main::key_bit#4 +char main::key_bit#5 +char *main::row +char *main::row#0 +char *main::row#1 +char *main::row#2 +char *main::row#3 +char *main::row#4 +char *main::row#5 +char *main::row#6 +char *main::row#7 +char *main::row#8 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +char main::x#5 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +char main::y#5 +char main::y#6 +char main::y#7 +char main::y#8 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Adding number conversion cast (unumber) $400 in memset::num#0 = $400 @@ -235,13 +235,13 @@ Adding number conversion cast (unumber) 0 in main::$9 = 0 != main::$6 Adding number conversion cast (unumber) $28 in main::row#1 = main::row#2 + $28 Adding number conversion cast (unumber) 1 in main::key_bit#1 = main::key_bit#3 << 1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast memset::num#0 = (unumber)$400 Inlining cast *KEYBOARD_INPUT = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 65288 -Simplifying constant pointer cast (byte*) 64816 -Simplifying constant pointer cast (byte*) 3072 +Simplifying constant pointer cast (char *) 65288 +Simplifying constant pointer cast (char *) 64816 +Simplifying constant pointer cast (char *) 3072 Simplifying constant integer cast 0 Simplifying constant integer cast $400 Simplifying constant integer cast 8 @@ -255,22 +255,22 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 1 << main::y#3 -Inferred type updated to byte in main::$3 = $ff ^ main::$2 -Inferred type updated to byte in main::$6 = main::key_bit#2 & $80 +Inferred type updated to char in main::$2 = 1 << main::y#3 +Inferred type updated to char in main::$3 = $ff ^ main::$2 +Inferred type updated to char in main::$6 = main::key_bit#2 & $80 Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 Inversing boolean not [45] main::$7 = 0 == main::$6 from [44] main::$9 = 0 != main::$6 Successful SSA optimization Pass2UnaryNotSimplification @@ -312,15 +312,15 @@ Simple Condition main::$1 [25] if(main::y#2<8) goto main::@4 Simple Condition main::$5 [34] if(main::x#2<8) goto main::@6 Simple Condition main::$7 [37] if(0==main::$6) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant memset::str#0 = (void*)DEFAULT_SCREEN +Constant memset::str#0 = (void *)DEFAULT_SCREEN Constant memset::c#0 = ' ' Constant memset::num#0 = $400 Constant main::row#0 = DEFAULT_SCREEN Constant main::y#0 = 0 Constant main::x#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Constant memset::return#2 = memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [2] if(memset::num#0<=0) goto memset::@1 @@ -343,10 +343,10 @@ Inlining constant with var siblings memset::dst#0 Inlining constant with var siblings main::row#0 Inlining constant with var siblings main::y#0 Inlining constant with var siblings main::x#0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined main::x#0 = 0 Constant inlined main::y#0 = 0 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined main::row#0 = DEFAULT_SCREEN Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main::@10 @@ -387,7 +387,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from asm { sei } - [1] call memset + [1] call memset to:main::@1 main::@1: scope:[main] from main main::@1 main::@5 [2] main::row#6 = phi( main/DEFAULT_SCREEN, main::@5/main::row#1, main::@1/DEFAULT_SCREEN ) @@ -422,12 +422,12 @@ main::@6: scope:[main] from main::@4 main::@7 [17] main::x#1 = ++ main::x#2 to:main::@3 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [18] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [19] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [19] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [20] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -441,31 +441,31 @@ memset::@2: scope:[memset] from memset::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte~ main::$6 202.0 -byte main::key_bit -byte main::key_bit#0 22.0 -byte main::key_bit#1 101.0 -byte main::key_bit#2 62.8 -byte* main::row -byte* main::row#1 11.0 -byte* main::row#6 8.785714285714286 -byte main::x -byte main::x#1 202.0 -byte main::x#2 67.33333333333333 -byte main::y -byte main::y#1 22.0 -byte main::y#2 8.933333333333332 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 134.66666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::$6 // 202.0 +char main::key_bit +char main::key_bit#0 // 22.0 +char main::key_bit#1 // 101.0 +char main::key_bit#2 // 62.8 +char *main::row +char *main::row#1 // 11.0 +char *main::row#6 // 8.785714285714286 +char main::x +char main::x#1 // 202.0 +char main::x#2 // 67.33333333333333 +char main::y +char main::y#1 // 22.0 +char main::y#2 // 8.933333333333332 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 134.66666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str Initial phi equivalence classes [ main::y#2 main::y#1 ] @@ -571,7 +571,7 @@ main: { .label y = 2 // asm { sei } sei - // [1] call memset + // [1] call memset // [18] phi from main to memset [phi:main->memset] memset_from_main: jsr memset @@ -677,6 +677,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $400 @@ -685,7 +686,7 @@ memset: { .label dst = 5 // [19] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [19] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [19] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -748,39 +749,39 @@ Relabelling long label __b1_from___b1 to __b5 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -constant byte* const DEFAULT_SCREEN = (byte*) 3072 -constant byte* const KEYBOARD_INPUT = (byte*) 65288 -constant byte* const KEYBOARD_SCAN = (byte*) 64816 +__constant char * const DEFAULT_SCREEN = (char *) 3072 +__constant char * const KEYBOARD_INPUT = (char *) 65288 +__constant char * const KEYBOARD_SCAN = (char *) 64816 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$6 reg byte a 202.0 -byte main::key_bit -byte main::key_bit#0 reg byte x 22.0 -byte main::key_bit#1 reg byte x 101.0 -byte main::key_bit#2 reg byte x 62.8 -byte* main::row -byte* main::row#1 row zp[2]:3 11.0 -byte* main::row#6 row zp[2]:3 8.785714285714286 -byte main::x -byte main::x#1 reg byte y 202.0 -byte main::x#2 reg byte y 67.33333333333333 -byte main::y -byte main::y#1 y zp[1]:2 22.0 -byte main::y#2 y zp[1]:2 8.933333333333332 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:5 202.0 -byte* memset::dst#2 dst zp[2]:5 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $400 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)DEFAULT_SCREEN +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$6 // reg byte a 202.0 +char main::key_bit +char main::key_bit#0 // reg byte x 22.0 +char main::key_bit#1 // reg byte x 101.0 +char main::key_bit#2 // reg byte x 62.8 +char *main::row +char *main::row#1 // row zp[2]:3 11.0 +char *main::row#6 // row zp[2]:3 8.785714285714286 +char main::x +char main::x#1 // reg byte y 202.0 +char main::x#2 // reg byte y 67.33333333333333 +char main::y +char main::y#1 // y zp[1]:2 22.0 +char main::y#2 // y zp[1]:2 8.933333333333332 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:5 202.0 +char *memset::dst#2 // dst zp[2]:5 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $400 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)DEFAULT_SCREEN // str zp[1]:2 [ main::y#2 main::y#1 ] zp[2]:3 [ main::row#6 main::row#1 ] @@ -827,7 +828,7 @@ main: { // asm { sei } sei // memset(DEFAULT_SCREEN, ' ', 0x0400) - // [1] call memset + // [1] call memset // [18] phi from main to memset [phi:main->memset] jsr memset // [2] phi from main main::@1 to main::@1 [phi:main/main::@1->main::@1] @@ -935,6 +936,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $400 @@ -942,7 +944,7 @@ memset: { .label end = str+num .label dst = 5 // [19] phi from memset to memset::@1 [phi:memset->memset::@1] - // [19] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [19] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/plus4-keyboard-test.sym b/src/test/ref/plus4-keyboard-test.sym index 3ecfa4b6d..aea7c1c19 100644 --- a/src/test/ref/plus4-keyboard-test.sym +++ b/src/test/ref/plus4-keyboard-test.sym @@ -1,36 +1,36 @@ -constant byte* const DEFAULT_SCREEN = (byte*) 3072 -constant byte* const KEYBOARD_INPUT = (byte*) 65288 -constant byte* const KEYBOARD_SCAN = (byte*) 64816 +__constant char * const DEFAULT_SCREEN = (char *) 3072 +__constant char * const KEYBOARD_INPUT = (char *) 65288 +__constant char * const KEYBOARD_SCAN = (char *) 64816 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$6 reg byte a 202.0 -byte main::key_bit -byte main::key_bit#0 reg byte x 22.0 -byte main::key_bit#1 reg byte x 101.0 -byte main::key_bit#2 reg byte x 62.8 -byte* main::row -byte* main::row#1 row zp[2]:3 11.0 -byte* main::row#6 row zp[2]:3 8.785714285714286 -byte main::x -byte main::x#1 reg byte y 202.0 -byte main::x#2 reg byte y 67.33333333333333 -byte main::y -byte main::y#1 y zp[1]:2 22.0 -byte main::y#2 y zp[1]:2 8.933333333333332 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:5 202.0 -byte* memset::dst#2 dst zp[2]:5 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $400 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)DEFAULT_SCREEN +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$6 // reg byte a 202.0 +char main::key_bit +char main::key_bit#0 // reg byte x 22.0 +char main::key_bit#1 // reg byte x 101.0 +char main::key_bit#2 // reg byte x 62.8 +char *main::row +char *main::row#1 // row zp[2]:3 11.0 +char *main::row#6 // row zp[2]:3 8.785714285714286 +char main::x +char main::x#1 // reg byte y 202.0 +char main::x#2 // reg byte y 67.33333333333333 +char main::y +char main::y#1 // y zp[1]:2 22.0 +char main::y#2 // y zp[1]:2 8.933333333333332 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:5 202.0 +char *memset::dst#2 // dst zp[2]:5 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $400 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)DEFAULT_SCREEN // str zp[1]:2 [ main::y#2 main::y#1 ] zp[2]:3 [ main::row#6 main::row#1 ] diff --git a/src/test/ref/pointer-anding.asm b/src/test/ref/pointer-anding.asm index bb5ee365b..8cad3c83b 100644 --- a/src/test/ref/pointer-anding.asm +++ b/src/test/ref/pointer-anding.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code main: { .label __0 = 6 @@ -62,7 +62,7 @@ main: { inc.z vram_ptr+1 !: // pos_ptr++; - lda #SIZEOF_SIGNED_WORD + lda #SIZEOF_INT clc adc.z pos_ptr sta.z pos_ptr diff --git a/src/test/ref/pointer-anding.cfg b/src/test/ref/pointer-anding.cfg index 70f0fd77d..625cf79bb 100644 --- a/src/test/ref/pointer-anding.cfg +++ b/src/test/ref/pointer-anding.cfg @@ -5,8 +5,8 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [1] main::vram_ptr#3 = phi( main/(byte*) 1064, main::@1/main::vram_ptr#2 ) - [1] main::pos_ptr#2 = phi( main/(signed word*) 1024, main::@1/main::pos_ptr#1 ) + [1] main::vram_ptr#3 = phi( main/(char *) 1064, main::@1/main::vram_ptr#2 ) + [1] main::pos_ptr#2 = phi( main/(int *) 1024, main::@1/main::pos_ptr#1 ) [2] *main::pos_ptr#2 = $55aa [3] main::$0 = *main::pos_ptr#2 & $aa55 [4] main::$1 = byte0 main::$0 @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@1 [7] main::$2 = byte1 *main::pos_ptr#2 [8] *main::vram_ptr#1 = main::$2 [9] main::vram_ptr#2 = ++ main::vram_ptr#1 - [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD + [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT [11] main::i#1 = ++ main::i#2 [12] if(main::i#1!=3) goto main::@1 to:main::@return diff --git a/src/test/ref/pointer-anding.log b/src/test/ref/pointer-anding.log index 2c63092f2..e0c46d50b 100644 --- a/src/test/ref/pointer-anding.log +++ b/src/test/ref/pointer-anding.log @@ -3,23 +3,23 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::pos_ptr#0 = (signed word*)$400 - main::vram_ptr#0 = (byte*)$428 + main::pos_ptr#0 = (int *)$400 + main::vram_ptr#0 = (char *)$428 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::vram_ptr#3 = phi( main/main::vram_ptr#0, main::@1/main::vram_ptr#2 ) main::pos_ptr#2 = phi( main/main::pos_ptr#0, main::@1/main::pos_ptr#1 ) - *main::pos_ptr#2 = (signed word)$55aa - main::$0 = *main::pos_ptr#2 & (signed word)$aa55 + *main::pos_ptr#2 = (int)$55aa + main::$0 = *main::pos_ptr#2 & (int)$aa55 main::$1 = byte0 main::$0 *main::vram_ptr#3 = main::$1 main::vram_ptr#1 = ++ main::vram_ptr#3 main::$2 = byte1 *main::pos_ptr#2 *main::vram_ptr#1 = main::$2 main::vram_ptr#2 = ++ main::vram_ptr#1 - main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD + main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT main::i#1 = main::i#2 + rangenext(0,2) main::$3 = main::i#1 != rangelast(0,2) if(main::$3) goto main::@1 @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -39,36 +39,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() void main() -signed word~ main::$0 -byte~ main::$1 -byte~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -signed word* main::pos_ptr -signed word* main::pos_ptr#0 -signed word* main::pos_ptr#1 -signed word* main::pos_ptr#2 -byte* main::vram_ptr -byte* main::vram_ptr#0 -byte* main::vram_ptr#1 -byte* main::vram_ptr#2 -byte* main::vram_ptr#3 +int main::$0 +char main::$1 +char main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +int *main::pos_ptr +int *main::pos_ptr#0 +int *main::pos_ptr#1 +int *main::pos_ptr#2 +char *main::vram_ptr +char *main::vram_ptr#0 +char *main::vram_ptr#1 +char *main::vram_ptr#2 +char *main::vram_ptr#3 -Simplifying constant pointer cast (signed word*) 1024 -Simplifying constant pointer cast (byte*) 1064 +Simplifying constant pointer cast (int *) 1024 +Simplifying constant pointer cast (char *) 1064 Simplifying constant integer cast $55aa Simplifying constant integer cast $aa55 Successful SSA optimization PassNCastSimplification Simple Condition main::$3 [15] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::pos_ptr#0 = (signed word*) 1024 -Constant main::vram_ptr#0 = (byte*) 1064 +Constant main::pos_ptr#0 = (int *) 1024 +Constant main::vram_ptr#0 = (char *) 1064 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [13] main::i#1 = ++ main::i#2 to ++ @@ -82,14 +82,14 @@ Adding number conversion cast (unumber) 3 in [11] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::pos_ptr#0 Inlining constant with var siblings main::vram_ptr#0 Inlining constant with var siblings main::i#0 -Constant inlined main::vram_ptr#0 = (byte*) 1064 +Constant inlined main::vram_ptr#0 = (char *) 1064 Constant inlined main::i#0 = 0 -Constant inlined main::pos_ptr#0 = (signed word*) 1024 +Constant inlined main::pos_ptr#0 = (int *) 1024 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -111,8 +111,8 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [1] main::vram_ptr#3 = phi( main/(byte*) 1064, main::@1/main::vram_ptr#2 ) - [1] main::pos_ptr#2 = phi( main/(signed word*) 1024, main::@1/main::pos_ptr#1 ) + [1] main::vram_ptr#3 = phi( main/(char *) 1064, main::@1/main::vram_ptr#2 ) + [1] main::pos_ptr#2 = phi( main/(int *) 1024, main::@1/main::pos_ptr#1 ) [2] *main::pos_ptr#2 = $55aa [3] main::$0 = *main::pos_ptr#2 & $aa55 [4] main::$1 = byte0 main::$0 @@ -121,7 +121,7 @@ main::@1: scope:[main] from main main::@1 [7] main::$2 = byte1 *main::pos_ptr#2 [8] *main::vram_ptr#1 = main::$2 [9] main::vram_ptr#2 = ++ main::vram_ptr#1 - [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD + [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT [11] main::i#1 = ++ main::i#2 [12] if(main::i#1!=3) goto main::@1 to:main::@return @@ -132,19 +132,19 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -signed word~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 2.2 -signed word* main::pos_ptr -signed word* main::pos_ptr#1 7.333333333333333 -signed word* main::pos_ptr#2 6.111111111111112 -byte* main::vram_ptr -byte* main::vram_ptr#1 11.0 -byte* main::vram_ptr#2 5.5 -byte* main::vram_ptr#3 6.6000000000000005 +int main::$0 // 22.0 +char main::$1 // 22.0 +char main::$2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 2.2 +int *main::pos_ptr +int *main::pos_ptr#1 // 7.333333333333333 +int *main::pos_ptr#2 // 6.111111111111112 +char *main::vram_ptr +char *main::vram_ptr#1 // 11.0 +char *main::vram_ptr#2 // 5.5 +char *main::vram_ptr#3 // 6.6000000000000005 Initial phi equivalence classes [ main::pos_ptr#2 main::pos_ptr#1 ] @@ -179,7 +179,7 @@ Statement [6] main::vram_ptr#1 = ++ main::vram_ptr#3 [ main::pos_ptr#2 main::i#2 Statement [7] main::$2 = byte1 *main::pos_ptr#2 [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 main::$2 ] ( [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 main::$2 ] { } ) always clobbers reg byte a reg byte y Statement [8] *main::vram_ptr#1 = main::$2 [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 ] ( [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 ] { } ) always clobbers reg byte y Statement [9] main::vram_ptr#2 = ++ main::vram_ptr#1 [ main::pos_ptr#2 main::i#2 main::vram_ptr#2 ] ( [ main::pos_ptr#2 main::i#2 main::vram_ptr#2 ] { } ) always clobbers reg byte a -Statement [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] ( [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] { } ) always clobbers reg byte a +Statement [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] ( [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] { } ) always clobbers reg byte a Statement [2] *main::pos_ptr#2 = $55aa [ main::pos_ptr#2 main::vram_ptr#3 main::i#2 ] ( [ main::pos_ptr#2 main::vram_ptr#3 main::i#2 ] { } ) always clobbers reg byte a reg byte y Statement [3] main::$0 = *main::pos_ptr#2 & $aa55 [ main::pos_ptr#2 main::vram_ptr#3 main::i#2 main::$0 ] ( [ main::pos_ptr#2 main::vram_ptr#3 main::i#2 main::$0 ] { } ) always clobbers reg byte a reg byte y Statement [5] *main::vram_ptr#3 = main::$1 [ main::pos_ptr#2 main::vram_ptr#3 main::i#2 ] ( [ main::pos_ptr#2 main::vram_ptr#3 main::i#2 ] { } ) always clobbers reg byte y @@ -187,7 +187,7 @@ Statement [6] main::vram_ptr#1 = ++ main::vram_ptr#3 [ main::pos_ptr#2 main::i#2 Statement [7] main::$2 = byte1 *main::pos_ptr#2 [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 main::$2 ] ( [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 main::$2 ] { } ) always clobbers reg byte a reg byte y Statement [8] *main::vram_ptr#1 = main::$2 [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 ] ( [ main::pos_ptr#2 main::i#2 main::vram_ptr#1 ] { } ) always clobbers reg byte y Statement [9] main::vram_ptr#2 = ++ main::vram_ptr#1 [ main::pos_ptr#2 main::i#2 main::vram_ptr#2 ] ( [ main::pos_ptr#2 main::i#2 main::vram_ptr#2 ] { } ) always clobbers reg byte a -Statement [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] ( [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] { } ) always clobbers reg byte a +Statement [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] ( [ main::i#2 main::pos_ptr#1 main::vram_ptr#2 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::pos_ptr#2 main::pos_ptr#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::vram_ptr#3 main::vram_ptr#2 ] : zp[2]:4 , Potential registers zp[1]:6 [ main::i#2 main::i#1 ] : zp[1]:6 , reg byte x , @@ -218,7 +218,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code // main main: { @@ -229,12 +229,12 @@ main: { __b1_from_main: // [1] phi main::i#2 = 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - // [1] phi main::vram_ptr#3 = (byte*) 1064 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::vram_ptr#3 = (char *) 1064 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$428 sta.z vram_ptr lda #>$428 sta.z vram_ptr+1 - // [1] phi main::pos_ptr#2 = (signed word*) 1024 [phi:main->main::@1#2] -- pwsz1=pwsc1 + // [1] phi main::pos_ptr#2 = (int *) 1024 [phi:main->main::@1#2] -- pwsz1=pwsc1 lda #<$400 sta.z pos_ptr lda #>$400 @@ -286,8 +286,8 @@ main: { bne !+ inc.z vram_ptr+1 !: - // [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 - lda #SIZEOF_SIGNED_WORD + // [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT -- pwsz1=pwsz1_plus_vbuc1 + lda #SIZEOF_INT clc adc.z pos_ptr sta.z pos_ptr @@ -321,21 +321,21 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void main() -signed word~ main::$0 zp[2]:6 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 2.2 -signed word* main::pos_ptr -signed word* main::pos_ptr#1 pos_ptr zp[2]:2 7.333333333333333 -signed word* main::pos_ptr#2 pos_ptr zp[2]:2 6.111111111111112 -byte* main::vram_ptr -byte* main::vram_ptr#1 vram_ptr zp[2]:4 11.0 -byte* main::vram_ptr#2 vram_ptr zp[2]:4 5.5 -byte* main::vram_ptr#3 vram_ptr zp[2]:4 6.6000000000000005 +int main::$0 // zp[2]:6 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 2.2 +int *main::pos_ptr +int *main::pos_ptr#1 // pos_ptr zp[2]:2 7.333333333333333 +int *main::pos_ptr#2 // pos_ptr zp[2]:2 6.111111111111112 +char *main::vram_ptr +char *main::vram_ptr#1 // vram_ptr zp[2]:4 11.0 +char *main::vram_ptr#2 // vram_ptr zp[2]:4 5.5 +char *main::vram_ptr#3 // vram_ptr zp[2]:4 6.6000000000000005 zp[2]:2 [ main::pos_ptr#2 main::pos_ptr#1 ] zp[2]:4 [ main::vram_ptr#3 main::vram_ptr#2 main::vram_ptr#1 ] @@ -360,7 +360,7 @@ Score: 1431 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code // main main: { @@ -370,12 +370,12 @@ main: { // [1] phi from main to main::@1 [phi:main->main::@1] // [1] phi main::i#2 = 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - // [1] phi main::vram_ptr#3 = (byte*) 1064 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::vram_ptr#3 = (char *) 1064 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$428 sta.z vram_ptr lda #>$428 sta.z vram_ptr+1 - // [1] phi main::pos_ptr#2 = (signed word*) 1024 [phi:main->main::@1#2] -- pwsz1=pwsc1 + // [1] phi main::pos_ptr#2 = (int *) 1024 [phi:main->main::@1#2] -- pwsz1=pwsc1 lda #<$400 sta.z pos_ptr lda #>$400 @@ -433,8 +433,8 @@ main: { inc.z vram_ptr+1 !: // pos_ptr++; - // [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 - lda #SIZEOF_SIGNED_WORD + // [10] main::pos_ptr#1 = main::pos_ptr#2 + SIZEOF_INT -- pwsz1=pwsz1_plus_vbuc1 + lda #SIZEOF_INT clc adc.z pos_ptr sta.z pos_ptr diff --git a/src/test/ref/pointer-anding.sym b/src/test/ref/pointer-anding.sym index 845e2d3b5..a303e2d86 100644 --- a/src/test/ref/pointer-anding.sym +++ b/src/test/ref/pointer-anding.sym @@ -1,18 +1,18 @@ -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void main() -signed word~ main::$0 zp[2]:6 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 2.2 -signed word* main::pos_ptr -signed word* main::pos_ptr#1 pos_ptr zp[2]:2 7.333333333333333 -signed word* main::pos_ptr#2 pos_ptr zp[2]:2 6.111111111111112 -byte* main::vram_ptr -byte* main::vram_ptr#1 vram_ptr zp[2]:4 11.0 -byte* main::vram_ptr#2 vram_ptr zp[2]:4 5.5 -byte* main::vram_ptr#3 vram_ptr zp[2]:4 6.6000000000000005 +int main::$0 // zp[2]:6 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 2.2 +int *main::pos_ptr +int *main::pos_ptr#1 // pos_ptr zp[2]:2 7.333333333333333 +int *main::pos_ptr#2 // pos_ptr zp[2]:2 6.111111111111112 +char *main::vram_ptr +char *main::vram_ptr#1 // vram_ptr zp[2]:4 11.0 +char *main::vram_ptr#2 // vram_ptr zp[2]:4 5.5 +char *main::vram_ptr#3 // vram_ptr zp[2]:4 6.6000000000000005 zp[2]:2 [ main::pos_ptr#2 main::pos_ptr#1 ] zp[2]:4 [ main::vram_ptr#3 main::vram_ptr#2 main::vram_ptr#1 ] diff --git a/src/test/ref/pointer-cast-2.log b/src/test/ref/pointer-cast-2.log index 18178a0a0..a44666554 100644 --- a/src/test/ref/pointer-cast-2.log +++ b/src/test/ref/pointer-cast-2.log @@ -1,5 +1,5 @@ -Setting inferred volatile on symbol affected by address-of main::sb_ptr = (signed byte*)&main::ub -Setting inferred volatile on symbol affected by address-of main::ub_ptr = (byte*)&main::sb +Setting inferred volatile on symbol affected by address-of main::sb_ptr = (signed char *)&main::ub +Setting inferred volatile on symbol affected by address-of main::ub_ptr = (char *)&main::sb CONTROL FLOW GRAPH SSA @@ -8,7 +8,7 @@ main: scope:[main] from __start main::ub = $ff *main::sb_ptr = 1 *main::ub_screen = main::ub - main::sb = (signed byte)$7f + main::sb = (signed char)$7f *main::ub_ptr = 1 *main::sb_screen = main::sb to:main::@return @@ -18,7 +18,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,12 +29,12 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -volatile signed byte main::sb loadstore -constant signed byte* main::sb_ptr = (signed byte*)&main::ub -constant signed byte* const main::sb_screen = (signed byte*)$428 -volatile byte main::ub loadstore -constant byte* main::ub_ptr = (byte*)&main::sb -constant byte* const main::ub_screen = (byte*)$400 +__loadstore volatile signed char main::sb +__constant signed char *main::sb_ptr = (signed char *)&main::ub +__constant signed char * const main::sb_screen = (signed char *)$428 +__loadstore volatile char main::ub +__constant char *main::ub_ptr = (char *)&main::sb +__constant char * const main::ub_screen = (char *)$400 Adding number conversion cast (snumber) 1 in *main::sb_ptr = 1 Adding number conversion cast (unumber) 1 in *main::ub_ptr = 1 @@ -42,14 +42,14 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::sb_ptr = (snumber)1 Inlining cast *main::ub_ptr = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (signed byte*) 1064 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (signed char *) 1064 Simplifying constant integer cast 1 Simplifying constant integer cast $7f Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 1 -Finalized unsigned number type (byte) 1 +Finalized signed number type (signed char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -79,8 +79,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -volatile signed byte main::sb loadstore 2.0 -volatile byte main::ub loadstore 2.0 +__loadstore volatile signed char main::sb // 2.0 +__loadstore volatile char main::ub // 2.0 Initial phi equivalence classes Added variable main::ub to live range equivalence class [ main::ub ] @@ -167,12 +167,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -volatile signed byte main::sb loadstore zp[1]:3 2.0 -constant signed byte* main::sb_ptr = (signed byte*)&main::ub -constant signed byte* const main::sb_screen = (signed byte*) 1064 -volatile byte main::ub loadstore zp[1]:2 2.0 -constant byte* main::ub_ptr = (byte*)&main::sb -constant byte* const main::ub_screen = (byte*) 1024 +__loadstore volatile signed char main::sb // zp[1]:3 2.0 +__constant signed char *main::sb_ptr = (signed char *)&main::ub +__constant signed char * const main::sb_screen = (signed char *) 1064 +__loadstore volatile char main::ub // zp[1]:2 2.0 +__constant char *main::ub_ptr = (char *)&main::sb +__constant char * const main::ub_screen = (char *) 1024 zp[1]:2 [ main::ub ] zp[1]:3 [ main::sb ] diff --git a/src/test/ref/pointer-cast-2.sym b/src/test/ref/pointer-cast-2.sym index 0a49ec8c9..72b7ef24d 100644 --- a/src/test/ref/pointer-cast-2.sym +++ b/src/test/ref/pointer-cast-2.sym @@ -1,10 +1,10 @@ void main() -volatile signed byte main::sb loadstore zp[1]:3 2.0 -constant signed byte* main::sb_ptr = (signed byte*)&main::ub -constant signed byte* const main::sb_screen = (signed byte*) 1064 -volatile byte main::ub loadstore zp[1]:2 2.0 -constant byte* main::ub_ptr = (byte*)&main::sb -constant byte* const main::ub_screen = (byte*) 1024 +__loadstore volatile signed char main::sb // zp[1]:3 2.0 +__constant signed char *main::sb_ptr = (signed char *)&main::ub +__constant signed char * const main::sb_screen = (signed char *) 1064 +__loadstore volatile char main::ub // zp[1]:2 2.0 +__constant char *main::ub_ptr = (char *)&main::sb +__constant char * const main::ub_screen = (char *) 1024 zp[1]:2 [ main::ub ] zp[1]:3 [ main::sb ] diff --git a/src/test/ref/pointer-cast-3.log b/src/test/ref/pointer-cast-3.log index d326ebfcb..42d1abfc0 100644 --- a/src/test/ref/pointer-cast-3.log +++ b/src/test/ref/pointer-cast-3.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,10 +22,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant signed byte main::sb = (signed byte)$ff -constant signed byte* const main::sb_screen = (signed byte*)$400 +__constant signed char main::sb = (signed char)$ff +__constant signed char * const main::sb_screen = (signed char *)$400 -Simplifying constant pointer cast (signed byte*) 1024 +Simplifying constant pointer cast (signed char *) 1024 Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification Removing unused procedure __start @@ -101,8 +101,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant signed byte main::sb = $ff -constant signed byte* const main::sb_screen = (signed byte*) 1024 +__constant signed char main::sb = $ff +__constant signed char * const main::sb_screen = (signed char *) 1024 diff --git a/src/test/ref/pointer-cast-3.sym b/src/test/ref/pointer-cast-3.sym index 16958be85..145d008e7 100644 --- a/src/test/ref/pointer-cast-3.sym +++ b/src/test/ref/pointer-cast-3.sym @@ -1,4 +1,4 @@ void main() -constant signed byte main::sb = $ff -constant signed byte* const main::sb_screen = (signed byte*) 1024 +__constant signed char main::sb = $ff +__constant signed char * const main::sb_screen = (signed char *) 1024 diff --git a/src/test/ref/pointer-cast-4.cfg b/src/test/ref/pointer-cast-4.cfg index b29fc0599..0a6c08b31 100644 --- a/src/test/ref/pointer-cast-4.cfg +++ b/src/test/ref/pointer-cast-4.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$1 = main::i#2 << 1 - [3] main::wscreen#0[main::$1] = (word)main::i#2 + [3] main::wscreen#0[main::$1] = (unsigned int)main::i#2 [4] main::i#1 = ++ main::i#2 [5] if(main::i#1!=3) goto main::@1 to:main::@return diff --git a/src/test/ref/pointer-cast-4.log b/src/test/ref/pointer-cast-4.log index e7fa02a12..a7d1e2a52 100644 --- a/src/test/ref/pointer-cast-4.log +++ b/src/test/ref/pointer-cast-4.log @@ -7,9 +7,9 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::wscreen#0 = (word*)main::bscreen - main::$1 = main::i#2 * SIZEOF_WORD - main::wscreen#0[main::$1] = (word)main::i#2 + main::wscreen#0 = (unsigned int *)main::bscreen + main::$1 = main::i#2 * SIZEOF_UNSIGNED_INT + main::wscreen#0[main::$1] = (unsigned int)main::i#2 main::i#1 = main::i#2 + rangenext(0,2) main::$0 = main::i#1 != rangelast(0,2) if(main::$0) goto main::@1 @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,27 +29,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -constant byte* main::bscreen = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -word* main::wscreen -word* main::wscreen#0 +bool main::$0 +char main::$1 +__constant char *main::bscreen = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +unsigned int *main::wscreen +unsigned int *main::wscreen#0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [7] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [2] main::wscreen#0 = (word*)main::bscreen +Constant right-side identified [2] main::wscreen#0 = (unsigned int *)main::bscreen Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::wscreen#0 = (word*)main::bscreen +Constant main::wscreen#0 = (unsigned int *)main::bscreen Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [5] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [7] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 @@ -62,14 +62,14 @@ Adding number conversion cast (unumber) 3 in [4] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [1] main::$1 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [1] main::$1 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -90,7 +90,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$1 = main::i#2 << 1 - [3] main::wscreen#0[main::$1] = (word)main::i#2 + [3] main::wscreen#0[main::$1] = (unsigned int)main::i#2 [4] main::i#1 = ++ main::i#2 [5] if(main::i#1!=3) goto main::@1 to:main::@return @@ -101,11 +101,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -word* main::wscreen +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +unsigned int *main::wscreen Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -118,9 +118,9 @@ Allocated zp[1]:3 [ main::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [3] main::wscreen#0[main::$1] = (word)main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [3] main::wscreen#0[main::$1] = (unsigned int)main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [2] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a -Statement [3] main::wscreen#0[main::$1] = (word)main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [3] main::wscreen#0[main::$1] = (unsigned int)main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -163,7 +163,7 @@ main: { // [2] main::$1 = main::i#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [3] main::wscreen#0[main::$1] = (word)main::i#2 -- pwuc1_derefidx_vbuaa=_word_vbuxx + // [3] main::wscreen#0[main::$1] = (unsigned int)main::i#2 -- pwuc1_derefidx_vbuaa=_word_vbuxx tay txa sta wscreen,y @@ -197,13 +197,13 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -constant byte* main::bscreen = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -word* main::wscreen -constant word* main::wscreen#0 wscreen = (word*)main::bscreen +char main::$1 // reg byte a 22.0 +__constant char *main::bscreen = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +unsigned int *main::wscreen +__constant unsigned int *main::wscreen#0 = (unsigned int *)main::bscreen // wscreen reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] @@ -240,7 +240,7 @@ main: { // [2] main::$1 = main::i#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [3] main::wscreen#0[main::$1] = (word)main::i#2 -- pwuc1_derefidx_vbuaa=_word_vbuxx + // [3] main::wscreen#0[main::$1] = (unsigned int)main::i#2 -- pwuc1_derefidx_vbuaa=_word_vbuxx tay txa sta wscreen,y diff --git a/src/test/ref/pointer-cast-4.sym b/src/test/ref/pointer-cast-4.sym index 86a2c5ba1..c8d14ca45 100644 --- a/src/test/ref/pointer-cast-4.sym +++ b/src/test/ref/pointer-cast-4.sym @@ -1,11 +1,11 @@ void main() -byte~ main::$1 reg byte a 22.0 -constant byte* main::bscreen = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -word* main::wscreen -constant word* main::wscreen#0 wscreen = (word*)main::bscreen +char main::$1 // reg byte a 22.0 +__constant char *main::bscreen = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +unsigned int *main::wscreen +__constant unsigned int *main::wscreen#0 = (unsigned int *)main::bscreen // wscreen reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/pointer-cast.asm b/src/test/ref/pointer-cast.asm index 124e0de54..235909b64 100644 --- a/src/test/ref/pointer-cast.asm +++ b/src/test/ref/pointer-cast.asm @@ -7,8 +7,8 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 + .const SIZEOF_INT = 2 .const ub = $29 .const sb = -$29 .const uw = $3000 @@ -27,14 +27,14 @@ main: { sta ub_screen+1 // *((word*)ub_screen+1)= uw lda #uw - sta ub_screen+1*SIZEOF_WORD+1 + sta ub_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)ub_screen+2) = sw lda #sw - sta ub_screen+2*SIZEOF_SIGNED_WORD+1 + sta ub_screen+2*SIZEOF_INT+1 // *((byte*)sb_screen) = ub lda #ub sta sb_screen @@ -43,14 +43,14 @@ main: { sta sb_screen+1 // *((word*)sb_screen+1)= uw lda #uw - sta sb_screen+1*SIZEOF_WORD+1 + sta sb_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)sb_screen+2) = sw lda #sw - sta sb_screen+2*SIZEOF_SIGNED_WORD+1 + sta sb_screen+2*SIZEOF_INT+1 // *((byte*)uw_screen) = ub lda #ub sta uw_screen @@ -59,14 +59,14 @@ main: { sta uw_screen+1 // *((word*)uw_screen+1)= uw lda #uw - sta uw_screen+1*SIZEOF_WORD+1 + sta uw_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)uw_screen+2) = sw lda #sw - sta uw_screen+2*SIZEOF_SIGNED_WORD+1 + sta uw_screen+2*SIZEOF_INT+1 // *((byte*)sw_screen) = ub lda #ub sta sw_screen @@ -75,14 +75,14 @@ main: { sta sw_screen+1 // *((word*)sw_screen+1)= uw lda #uw - sta sw_screen+1*SIZEOF_WORD+1 + sta sw_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)sw_screen+2) = sw lda #sw - sta sw_screen+2*SIZEOF_SIGNED_WORD+1 + sta sw_screen+2*SIZEOF_INT+1 // } rts } diff --git a/src/test/ref/pointer-cast.cfg b/src/test/ref/pointer-cast.cfg index 0d08e2adf..184d7b55f 100644 --- a/src/test/ref/pointer-cast.cfg +++ b/src/test/ref/pointer-cast.cfg @@ -2,21 +2,21 @@ void main() main: scope:[main] from [0] *ub_screen = ub - [1] *((signed byte*)ub_screen+1) = sb - [2] *((word*)ub_screen+1*SIZEOF_WORD) = uw - [3] *((signed word*)ub_screen+2*SIZEOF_SIGNED_WORD) = sw - [4] *((byte*)sb_screen) = ub + [1] *((signed char *)ub_screen+1) = sb + [2] *((unsigned int *)ub_screen+1*SIZEOF_UNSIGNED_INT) = uw + [3] *((int *)ub_screen+2*SIZEOF_INT) = sw + [4] *((char *)sb_screen) = ub [5] *(sb_screen+1) = sb - [6] *((word*)sb_screen+1*SIZEOF_WORD) = uw - [7] *((signed word*)sb_screen+2*SIZEOF_SIGNED_WORD) = sw - [8] *((byte*)uw_screen) = ub - [9] *((signed byte*)uw_screen+1) = sb - [10] *(uw_screen+1*SIZEOF_WORD) = uw - [11] *((signed word*)uw_screen+2*SIZEOF_SIGNED_WORD) = sw - [12] *((byte*)sw_screen) = ub - [13] *((signed byte*)sw_screen+1) = sb - [14] *((word*)sw_screen+1*SIZEOF_WORD) = uw - [15] *(sw_screen+2*SIZEOF_SIGNED_WORD) = sw + [6] *((unsigned int *)sb_screen+1*SIZEOF_UNSIGNED_INT) = uw + [7] *((int *)sb_screen+2*SIZEOF_INT) = sw + [8] *((char *)uw_screen) = ub + [9] *((signed char *)uw_screen+1) = sb + [10] *(uw_screen+1*SIZEOF_UNSIGNED_INT) = uw + [11] *((int *)uw_screen+2*SIZEOF_INT) = sw + [12] *((char *)sw_screen) = ub + [13] *((signed char *)sw_screen+1) = sb + [14] *((unsigned int *)sw_screen+1*SIZEOF_UNSIGNED_INT) = uw + [15] *(sw_screen+2*SIZEOF_INT) = sw to:main::@return main::@return: scope:[main] from main [16] return diff --git a/src/test/ref/pointer-cast.log b/src/test/ref/pointer-cast.log index 307263e05..4dc8b5d21 100644 --- a/src/test/ref/pointer-cast.log +++ b/src/test/ref/pointer-cast.log @@ -1,55 +1,55 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - *((byte*)ub_screen) = ub - main::$20 = (signed byte*)ub_screen + *((char *)ub_screen) = ub + main::$20 = (signed char *)ub_screen main::$0 = main::$20 + 1 *main::$0 = sb - main::$12 = 1 * SIZEOF_WORD - main::$21 = (word*)ub_screen + main::$12 = 1 * SIZEOF_UNSIGNED_INT + main::$21 = (unsigned int *)ub_screen main::$1 = main::$21 + main::$12 *main::$1 = uw - main::$13 = 2 * SIZEOF_SIGNED_WORD - main::$22 = (signed word*)ub_screen + main::$13 = 2 * SIZEOF_INT + main::$22 = (int *)ub_screen main::$2 = main::$22 + main::$13 *main::$2 = sw - *((byte*)sb_screen) = ub - main::$23 = (signed byte*)sb_screen + *((char *)sb_screen) = ub + main::$23 = (signed char *)sb_screen main::$3 = main::$23 + 1 *main::$3 = sb - main::$14 = 1 * SIZEOF_WORD - main::$24 = (word*)sb_screen + main::$14 = 1 * SIZEOF_UNSIGNED_INT + main::$24 = (unsigned int *)sb_screen main::$4 = main::$24 + main::$14 *main::$4 = uw - main::$15 = 2 * SIZEOF_SIGNED_WORD - main::$25 = (signed word*)sb_screen + main::$15 = 2 * SIZEOF_INT + main::$25 = (int *)sb_screen main::$5 = main::$25 + main::$15 *main::$5 = sw - *((byte*)uw_screen) = ub - main::$26 = (signed byte*)uw_screen + *((char *)uw_screen) = ub + main::$26 = (signed char *)uw_screen main::$6 = main::$26 + 1 *main::$6 = sb - main::$16 = 1 * SIZEOF_WORD - main::$27 = (word*)uw_screen + main::$16 = 1 * SIZEOF_UNSIGNED_INT + main::$27 = (unsigned int *)uw_screen main::$7 = main::$27 + main::$16 *main::$7 = uw - main::$17 = 2 * SIZEOF_SIGNED_WORD - main::$28 = (signed word*)uw_screen + main::$17 = 2 * SIZEOF_INT + main::$28 = (int *)uw_screen main::$8 = main::$28 + main::$17 *main::$8 = sw - *((byte*)sw_screen) = ub - main::$29 = (signed byte*)sw_screen + *((char *)sw_screen) = ub + main::$29 = (signed char *)sw_screen main::$9 = main::$29 + 1 *main::$9 = sb - main::$18 = 1 * SIZEOF_WORD - main::$30 = (word*)sw_screen + main::$18 = 1 * SIZEOF_UNSIGNED_INT + main::$30 = (unsigned int *)sw_screen main::$10 = main::$30 + main::$18 *main::$10 = uw - main::$19 = 2 * SIZEOF_SIGNED_WORD - main::$31 = (signed word*)sw_screen + main::$19 = 2 * SIZEOF_INT + main::$31 = (int *)sw_screen main::$11 = main::$31 + main::$19 *main::$11 = sw to:main::@return @@ -63,7 +63,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -72,76 +72,76 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -signed byte*~ main::$0 -word*~ main::$1 -word*~ main::$10 -signed word*~ main::$11 -number~ main::$12 -number~ main::$13 -number~ main::$14 -number~ main::$15 -number~ main::$16 -number~ main::$17 -number~ main::$18 -number~ main::$19 -signed word*~ main::$2 -signed byte*~ main::$20 -word*~ main::$21 -signed word*~ main::$22 -signed byte*~ main::$23 -word*~ main::$24 -signed word*~ main::$25 -signed byte*~ main::$26 -word*~ main::$27 -signed word*~ main::$28 -signed byte*~ main::$29 -signed byte*~ main::$3 -word*~ main::$30 -signed word*~ main::$31 -word*~ main::$4 -signed word*~ main::$5 -signed byte*~ main::$6 -word*~ main::$7 -signed word*~ main::$8 -signed byte*~ main::$9 -constant signed byte sb = -$29 -constant signed byte* sb_screen = (signed byte*)$428 -constant signed word sw = -$3000 -constant signed word* sw_screen = (signed word*)$478 -constant byte ub = $29 -constant byte* ub_screen = (byte*)$400 -constant word uw = $3000 -constant word* uw_screen = (word*)$450 +signed char *main::$0 +unsigned int *main::$1 +unsigned int *main::$10 +int *main::$11 +number main::$12 +number main::$13 +number main::$14 +number main::$15 +number main::$16 +number main::$17 +number main::$18 +number main::$19 +int *main::$2 +signed char *main::$20 +unsigned int *main::$21 +int *main::$22 +signed char *main::$23 +unsigned int *main::$24 +int *main::$25 +signed char *main::$26 +unsigned int *main::$27 +int *main::$28 +signed char *main::$29 +signed char *main::$3 +unsigned int *main::$30 +int *main::$31 +unsigned int *main::$4 +int *main::$5 +signed char *main::$6 +unsigned int *main::$7 +int *main::$8 +signed char *main::$9 +__constant signed char sb = -$29 +__constant signed char *sb_screen = (signed char *)$428 +__constant int sw = -$3000 +__constant int *sw_screen = (int *)$478 +__constant char ub = $29 +__constant char *ub_screen = (char *)$400 +__constant unsigned int uw = $3000 +__constant unsigned int *uw_screen = (unsigned int *)$450 Adding number conversion cast (unumber) 1 in main::$0 = main::$20 + 1 -Adding number conversion cast (unumber) 1 in main::$12 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$12 in main::$12 = (unumber)1 * SIZEOF_WORD -Adding number conversion cast (unumber) 2 in main::$13 = 2 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$13 in main::$13 = (unumber)2 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 1 in main::$12 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$12 in main::$12 = (unumber)1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 2 in main::$13 = 2 * SIZEOF_INT +Adding number conversion cast (unumber) main::$13 in main::$13 = (unumber)2 * SIZEOF_INT Adding number conversion cast (unumber) 1 in main::$3 = main::$23 + 1 -Adding number conversion cast (unumber) 1 in main::$14 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$14 in main::$14 = (unumber)1 * SIZEOF_WORD -Adding number conversion cast (unumber) 2 in main::$15 = 2 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$15 in main::$15 = (unumber)2 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 1 in main::$14 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$14 in main::$14 = (unumber)1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 2 in main::$15 = 2 * SIZEOF_INT +Adding number conversion cast (unumber) main::$15 in main::$15 = (unumber)2 * SIZEOF_INT Adding number conversion cast (unumber) 1 in main::$6 = main::$26 + 1 -Adding number conversion cast (unumber) 1 in main::$16 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$16 in main::$16 = (unumber)1 * SIZEOF_WORD -Adding number conversion cast (unumber) 2 in main::$17 = 2 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$17 in main::$17 = (unumber)2 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 1 in main::$16 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$16 in main::$16 = (unumber)1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 2 in main::$17 = 2 * SIZEOF_INT +Adding number conversion cast (unumber) main::$17 in main::$17 = (unumber)2 * SIZEOF_INT Adding number conversion cast (unumber) 1 in main::$9 = main::$29 + 1 -Adding number conversion cast (unumber) 1 in main::$18 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$18 in main::$18 = (unumber)1 * SIZEOF_WORD -Adding number conversion cast (unumber) 2 in main::$19 = 2 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$19 in main::$19 = (unumber)2 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 1 in main::$18 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$18 in main::$18 = (unumber)1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 2 in main::$19 = 2 * SIZEOF_INT +Adding number conversion cast (unumber) main::$19 in main::$19 = (unumber)2 * SIZEOF_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (signed byte*) 1064 -Simplifying constant pointer cast (word*) 1104 -Simplifying constant pointer cast (signed word*) 1144 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (signed char *) 1064 +Simplifying constant pointer cast (unsigned int *) 1104 +Simplifying constant pointer cast (int *) 1144 Simplifying constant integer cast ub_screen Simplifying constant integer cast 1 Simplifying constant integer cast 1 @@ -159,69 +159,69 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast sw_screen Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$12 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$13 = 2 * SIZEOF_SIGNED_WORD -Inferred type updated to byte in main::$14 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$15 = 2 * SIZEOF_SIGNED_WORD -Inferred type updated to byte in main::$16 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$17 = 2 * SIZEOF_SIGNED_WORD -Inferred type updated to byte in main::$18 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$19 = 2 * SIZEOF_SIGNED_WORD -Constant right-side identified [1] main::$20 = (signed byte*)ub_screen -Constant right-side identified [4] main::$12 = 1 * SIZEOF_WORD -Constant right-side identified [5] main::$21 = (word*)ub_screen -Constant right-side identified [8] main::$13 = 2 * SIZEOF_SIGNED_WORD -Constant right-side identified [9] main::$22 = (signed word*)ub_screen -Constant right-side identified [16] main::$14 = 1 * SIZEOF_WORD -Constant right-side identified [17] main::$24 = (word*)sb_screen -Constant right-side identified [20] main::$15 = 2 * SIZEOF_SIGNED_WORD -Constant right-side identified [21] main::$25 = (signed word*)sb_screen -Constant right-side identified [25] main::$26 = (signed byte*)uw_screen -Constant right-side identified [28] main::$16 = 1 * SIZEOF_WORD -Constant right-side identified [32] main::$17 = 2 * SIZEOF_SIGNED_WORD -Constant right-side identified [33] main::$28 = (signed word*)uw_screen -Constant right-side identified [37] main::$29 = (signed byte*)sw_screen -Constant right-side identified [40] main::$18 = 1 * SIZEOF_WORD -Constant right-side identified [41] main::$30 = (word*)sw_screen -Constant right-side identified [44] main::$19 = 2 * SIZEOF_SIGNED_WORD +Inferred type updated to char in main::$12 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$13 = 2 * SIZEOF_INT +Inferred type updated to char in main::$14 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$15 = 2 * SIZEOF_INT +Inferred type updated to char in main::$16 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$17 = 2 * SIZEOF_INT +Inferred type updated to char in main::$18 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$19 = 2 * SIZEOF_INT +Constant right-side identified [1] main::$20 = (signed char *)ub_screen +Constant right-side identified [4] main::$12 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [5] main::$21 = (unsigned int *)ub_screen +Constant right-side identified [8] main::$13 = 2 * SIZEOF_INT +Constant right-side identified [9] main::$22 = (int *)ub_screen +Constant right-side identified [16] main::$14 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [17] main::$24 = (unsigned int *)sb_screen +Constant right-side identified [20] main::$15 = 2 * SIZEOF_INT +Constant right-side identified [21] main::$25 = (int *)sb_screen +Constant right-side identified [25] main::$26 = (signed char *)uw_screen +Constant right-side identified [28] main::$16 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [32] main::$17 = 2 * SIZEOF_INT +Constant right-side identified [33] main::$28 = (int *)uw_screen +Constant right-side identified [37] main::$29 = (signed char *)sw_screen +Constant right-side identified [40] main::$18 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [41] main::$30 = (unsigned int *)sw_screen +Constant right-side identified [44] main::$19 = 2 * SIZEOF_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$20 = (signed byte*)ub_screen -Constant main::$12 = 1*SIZEOF_WORD -Constant main::$21 = (word*)ub_screen -Constant main::$13 = 2*SIZEOF_SIGNED_WORD -Constant main::$22 = (signed word*)ub_screen +Constant main::$20 = (signed char *)ub_screen +Constant main::$12 = 1*SIZEOF_UNSIGNED_INT +Constant main::$21 = (unsigned int *)ub_screen +Constant main::$13 = 2*SIZEOF_INT +Constant main::$22 = (int *)ub_screen Constant main::$23 = sb_screen -Constant main::$14 = 1*SIZEOF_WORD -Constant main::$24 = (word*)sb_screen -Constant main::$15 = 2*SIZEOF_SIGNED_WORD -Constant main::$25 = (signed word*)sb_screen -Constant main::$26 = (signed byte*)uw_screen -Constant main::$16 = 1*SIZEOF_WORD +Constant main::$14 = 1*SIZEOF_UNSIGNED_INT +Constant main::$24 = (unsigned int *)sb_screen +Constant main::$15 = 2*SIZEOF_INT +Constant main::$25 = (int *)sb_screen +Constant main::$26 = (signed char *)uw_screen +Constant main::$16 = 1*SIZEOF_UNSIGNED_INT Constant main::$27 = uw_screen -Constant main::$17 = 2*SIZEOF_SIGNED_WORD -Constant main::$28 = (signed word*)uw_screen -Constant main::$29 = (signed byte*)sw_screen -Constant main::$18 = 1*SIZEOF_WORD -Constant main::$30 = (word*)sw_screen -Constant main::$19 = 2*SIZEOF_SIGNED_WORD +Constant main::$17 = 2*SIZEOF_INT +Constant main::$28 = (int *)uw_screen +Constant main::$29 = (signed char *)sw_screen +Constant main::$18 = 1*SIZEOF_UNSIGNED_INT +Constant main::$30 = (unsigned int *)sw_screen +Constant main::$19 = 2*SIZEOF_INT Constant main::$31 = sw_screen Successful SSA optimization Pass2ConstantIdentification -Constant value identified (byte*)sb_screen in [12] *((byte*)sb_screen) = ub -Constant value identified (byte*)uw_screen in [24] *((byte*)uw_screen) = ub -Constant value identified (byte*)sw_screen in [36] *((byte*)sw_screen) = ub +Constant value identified (char *)sb_screen in [12] *((char *)sb_screen) = ub +Constant value identified (char *)uw_screen in [24] *((char *)uw_screen) = ub +Constant value identified (char *)sw_screen in [36] *((char *)sw_screen) = ub Successful SSA optimization Pass2ConstantValues Converting *(pointer+n) to pointer[n] [3] *main::$0 = sb -- main::$20[1] Converting *(pointer+n) to pointer[n] [7] *main::$1 = uw -- main::$21[main::$12] @@ -257,38 +257,38 @@ Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::$23 = sb_screen -Constant inlined main::$12 = 1*SIZEOF_WORD -Constant inlined main::$13 = 2*SIZEOF_SIGNED_WORD -Constant inlined main::$24 = (word*)sb_screen -Constant inlined main::$14 = 1*SIZEOF_WORD -Constant inlined main::$25 = (signed word*)sb_screen -Constant inlined main::$15 = 2*SIZEOF_SIGNED_WORD -Constant inlined main::$26 = (signed byte*)uw_screen -Constant inlined main::$30 = (word*)sw_screen +Constant inlined main::$12 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$13 = 2*SIZEOF_INT +Constant inlined main::$24 = (unsigned int *)sb_screen +Constant inlined main::$14 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$25 = (int *)sb_screen +Constant inlined main::$15 = 2*SIZEOF_INT +Constant inlined main::$26 = (signed char *)uw_screen +Constant inlined main::$30 = (unsigned int *)sw_screen Constant inlined main::$31 = sw_screen -Constant inlined main::$20 = (signed byte*)ub_screen -Constant inlined main::$21 = (word*)ub_screen -Constant inlined main::$22 = (signed word*)ub_screen +Constant inlined main::$20 = (signed char *)ub_screen +Constant inlined main::$21 = (unsigned int *)ub_screen +Constant inlined main::$22 = (int *)ub_screen Constant inlined main::$27 = uw_screen -Constant inlined main::$16 = 1*SIZEOF_WORD -Constant inlined main::$17 = 2*SIZEOF_SIGNED_WORD -Constant inlined main::$28 = (signed word*)uw_screen -Constant inlined main::$29 = (signed byte*)sw_screen -Constant inlined main::$18 = 1*SIZEOF_WORD -Constant inlined main::$19 = 2*SIZEOF_SIGNED_WORD +Constant inlined main::$16 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$17 = 2*SIZEOF_INT +Constant inlined main::$28 = (int *)uw_screen +Constant inlined main::$29 = (signed char *)sw_screen +Constant inlined main::$18 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$19 = 2*SIZEOF_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((signed byte*)ub_screen+1) -Consolidated array index constant in *((word*)ub_screen+1*SIZEOF_WORD) -Consolidated array index constant in *((signed word*)ub_screen+2*SIZEOF_SIGNED_WORD) +Consolidated array index constant in *((signed char *)ub_screen+1) +Consolidated array index constant in *((unsigned int *)ub_screen+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *((int *)ub_screen+2*SIZEOF_INT) Consolidated array index constant in *(sb_screen+1) -Consolidated array index constant in *((word*)sb_screen+1*SIZEOF_WORD) -Consolidated array index constant in *((signed word*)sb_screen+2*SIZEOF_SIGNED_WORD) -Consolidated array index constant in *((signed byte*)uw_screen+1) -Consolidated array index constant in *(uw_screen+1*SIZEOF_WORD) -Consolidated array index constant in *((signed word*)uw_screen+2*SIZEOF_SIGNED_WORD) -Consolidated array index constant in *((signed byte*)sw_screen+1) -Consolidated array index constant in *((word*)sw_screen+1*SIZEOF_WORD) -Consolidated array index constant in *(sw_screen+2*SIZEOF_SIGNED_WORD) +Consolidated array index constant in *((unsigned int *)sb_screen+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *((int *)sb_screen+2*SIZEOF_INT) +Consolidated array index constant in *((signed char *)uw_screen+1) +Consolidated array index constant in *(uw_screen+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *((int *)uw_screen+2*SIZEOF_INT) +Consolidated array index constant in *((signed char *)sw_screen+1) +Consolidated array index constant in *((unsigned int *)sw_screen+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(sw_screen+2*SIZEOF_INT) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -300,21 +300,21 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *ub_screen = ub - [1] *((signed byte*)ub_screen+1) = sb - [2] *((word*)ub_screen+1*SIZEOF_WORD) = uw - [3] *((signed word*)ub_screen+2*SIZEOF_SIGNED_WORD) = sw - [4] *((byte*)sb_screen) = ub + [1] *((signed char *)ub_screen+1) = sb + [2] *((unsigned int *)ub_screen+1*SIZEOF_UNSIGNED_INT) = uw + [3] *((int *)ub_screen+2*SIZEOF_INT) = sw + [4] *((char *)sb_screen) = ub [5] *(sb_screen+1) = sb - [6] *((word*)sb_screen+1*SIZEOF_WORD) = uw - [7] *((signed word*)sb_screen+2*SIZEOF_SIGNED_WORD) = sw - [8] *((byte*)uw_screen) = ub - [9] *((signed byte*)uw_screen+1) = sb - [10] *(uw_screen+1*SIZEOF_WORD) = uw - [11] *((signed word*)uw_screen+2*SIZEOF_SIGNED_WORD) = sw - [12] *((byte*)sw_screen) = ub - [13] *((signed byte*)sw_screen+1) = sb - [14] *((word*)sw_screen+1*SIZEOF_WORD) = uw - [15] *(sw_screen+2*SIZEOF_SIGNED_WORD) = sw + [6] *((unsigned int *)sb_screen+1*SIZEOF_UNSIGNED_INT) = uw + [7] *((int *)sb_screen+2*SIZEOF_INT) = sw + [8] *((char *)uw_screen) = ub + [9] *((signed char *)uw_screen+1) = sb + [10] *(uw_screen+1*SIZEOF_UNSIGNED_INT) = uw + [11] *((int *)uw_screen+2*SIZEOF_INT) = sw + [12] *((char *)sw_screen) = ub + [13] *((signed char *)sw_screen+1) = sb + [14] *((unsigned int *)sw_screen+1*SIZEOF_UNSIGNED_INT) = uw + [15] *(sw_screen+2*SIZEOF_INT) = sw to:main::@return main::@return: scope:[main] from main [16] return @@ -328,21 +328,21 @@ Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *ub_screen = ub [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((signed byte*)ub_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((word*)ub_screen+1*SIZEOF_WORD) = uw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((signed word*)ub_screen+2*SIZEOF_SIGNED_WORD) = sw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((byte*)sb_screen) = ub [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((signed char *)ub_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((unsigned int *)ub_screen+1*SIZEOF_UNSIGNED_INT) = uw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((int *)ub_screen+2*SIZEOF_INT) = sw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((char *)sb_screen) = ub [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *(sb_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *((word*)sb_screen+1*SIZEOF_WORD) = uw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *((signed word*)sb_screen+2*SIZEOF_SIGNED_WORD) = sw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] *((byte*)uw_screen) = ub [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] *((signed byte*)uw_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *(uw_screen+1*SIZEOF_WORD) = uw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] *((signed word*)uw_screen+2*SIZEOF_SIGNED_WORD) = sw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [12] *((byte*)sw_screen) = ub [ ] ( [ ] { } ) always clobbers reg byte a -Statement [13] *((signed byte*)sw_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a -Statement [14] *((word*)sw_screen+1*SIZEOF_WORD) = uw [ ] ( [ ] { } ) always clobbers reg byte a -Statement [15] *(sw_screen+2*SIZEOF_SIGNED_WORD) = sw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *((unsigned int *)sb_screen+1*SIZEOF_UNSIGNED_INT) = uw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *((int *)sb_screen+2*SIZEOF_INT) = sw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] *((char *)uw_screen) = ub [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *((signed char *)uw_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *(uw_screen+1*SIZEOF_UNSIGNED_INT) = uw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *((int *)uw_screen+2*SIZEOF_INT) = sw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *((char *)sw_screen) = ub [ ] ( [ ] { } ) always clobbers reg byte a +Statement [13] *((signed char *)sw_screen+1) = sb [ ] ( [ ] { } ) always clobbers reg byte a +Statement [14] *((unsigned int *)sw_screen+1*SIZEOF_UNSIGNED_INT) = uw [ ] ( [ ] { } ) always clobbers reg byte a +Statement [15] *(sw_screen+2*SIZEOF_INT) = sw [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -364,8 +364,8 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 + .const SIZEOF_INT = 2 .const ub = $29 .const sb = -$29 .const uw = $3000 @@ -380,67 +380,67 @@ main: { // [0] *ub_screen = ub -- _deref_pbuc1=vbuc2 lda #ub sta ub_screen - // [1] *((signed byte*)ub_screen+1) = sb -- _deref_pbsc1=vbsc2 + // [1] *((signed char *)ub_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta ub_screen+1 - // [2] *((word*)ub_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [2] *((unsigned int *)ub_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta ub_screen+1*SIZEOF_WORD+1 - // [3] *((signed word*)ub_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + sta ub_screen+1*SIZEOF_UNSIGNED_INT+1 + // [3] *((int *)ub_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta ub_screen+2*SIZEOF_SIGNED_WORD+1 - // [4] *((byte*)sb_screen) = ub -- _deref_pbuc1=vbuc2 + sta ub_screen+2*SIZEOF_INT+1 + // [4] *((char *)sb_screen) = ub -- _deref_pbuc1=vbuc2 lda #ub sta sb_screen // [5] *(sb_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta sb_screen+1 - // [6] *((word*)sb_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [6] *((unsigned int *)sb_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta sb_screen+1*SIZEOF_WORD+1 - // [7] *((signed word*)sb_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + sta sb_screen+1*SIZEOF_UNSIGNED_INT+1 + // [7] *((int *)sb_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta sb_screen+2*SIZEOF_SIGNED_WORD+1 - // [8] *((byte*)uw_screen) = ub -- _deref_pbuc1=vbuc2 + sta sb_screen+2*SIZEOF_INT+1 + // [8] *((char *)uw_screen) = ub -- _deref_pbuc1=vbuc2 lda #ub sta uw_screen - // [9] *((signed byte*)uw_screen+1) = sb -- _deref_pbsc1=vbsc2 + // [9] *((signed char *)uw_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta uw_screen+1 - // [10] *(uw_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [10] *(uw_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta uw_screen+1*SIZEOF_WORD+1 - // [11] *((signed word*)uw_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + sta uw_screen+1*SIZEOF_UNSIGNED_INT+1 + // [11] *((int *)uw_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta uw_screen+2*SIZEOF_SIGNED_WORD+1 - // [12] *((byte*)sw_screen) = ub -- _deref_pbuc1=vbuc2 + sta uw_screen+2*SIZEOF_INT+1 + // [12] *((char *)sw_screen) = ub -- _deref_pbuc1=vbuc2 lda #ub sta sw_screen - // [13] *((signed byte*)sw_screen+1) = sb -- _deref_pbsc1=vbsc2 + // [13] *((signed char *)sw_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta sw_screen+1 - // [14] *((word*)sw_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [14] *((unsigned int *)sw_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta sw_screen+1*SIZEOF_WORD+1 - // [15] *(sw_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + sta sw_screen+1*SIZEOF_UNSIGNED_INT+1 + // [15] *(sw_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta sw_screen+2*SIZEOF_SIGNED_WORD+1 + sta sw_screen+2*SIZEOF_INT+1 jmp __breturn // main::@return __breturn: @@ -456,17 +456,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -constant signed byte sb = -$29 -constant signed byte* sb_screen = (signed byte*) 1064 -constant signed word sw = -$3000 -constant signed word* sw_screen = (signed word*) 1144 -constant byte ub = $29 -constant byte* ub_screen = (byte*) 1024 -constant word uw = $3000 -constant word* uw_screen = (word*) 1104 +__constant signed char sb = -$29 +__constant signed char *sb_screen = (signed char *) 1064 +__constant int sw = -$3000 +__constant int *sw_screen = (int *) 1144 +__constant char ub = $29 +__constant char *ub_screen = (char *) 1024 +__constant unsigned int uw = $3000 +__constant unsigned int *uw_screen = (unsigned int *) 1104 @@ -485,8 +485,8 @@ Score: 150 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 + .const SIZEOF_INT = 2 .const ub = $29 .const sb = -$29 .const uw = $3000 @@ -503,23 +503,23 @@ main: { lda #ub sta ub_screen // *((signed byte*)ub_screen+1) = sb - // [1] *((signed byte*)ub_screen+1) = sb -- _deref_pbsc1=vbsc2 + // [1] *((signed char *)ub_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta ub_screen+1 // *((word*)ub_screen+1)= uw - // [2] *((word*)ub_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [2] *((unsigned int *)ub_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta ub_screen+1*SIZEOF_WORD+1 + sta ub_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)ub_screen+2) = sw - // [3] *((signed word*)ub_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + // [3] *((int *)ub_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta ub_screen+2*SIZEOF_SIGNED_WORD+1 + sta ub_screen+2*SIZEOF_INT+1 // *((byte*)sb_screen) = ub - // [4] *((byte*)sb_screen) = ub -- _deref_pbuc1=vbuc2 + // [4] *((char *)sb_screen) = ub -- _deref_pbuc1=vbuc2 lda #ub sta sb_screen // *((signed byte*)sb_screen+1) = sb @@ -527,57 +527,57 @@ main: { lda #sb sta sb_screen+1 // *((word*)sb_screen+1)= uw - // [6] *((word*)sb_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [6] *((unsigned int *)sb_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta sb_screen+1*SIZEOF_WORD+1 + sta sb_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)sb_screen+2) = sw - // [7] *((signed word*)sb_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + // [7] *((int *)sb_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta sb_screen+2*SIZEOF_SIGNED_WORD+1 + sta sb_screen+2*SIZEOF_INT+1 // *((byte*)uw_screen) = ub - // [8] *((byte*)uw_screen) = ub -- _deref_pbuc1=vbuc2 + // [8] *((char *)uw_screen) = ub -- _deref_pbuc1=vbuc2 lda #ub sta uw_screen // *((signed byte*)uw_screen+1) = sb - // [9] *((signed byte*)uw_screen+1) = sb -- _deref_pbsc1=vbsc2 + // [9] *((signed char *)uw_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta uw_screen+1 // *((word*)uw_screen+1)= uw - // [10] *(uw_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [10] *(uw_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta uw_screen+1*SIZEOF_WORD+1 + sta uw_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)uw_screen+2) = sw - // [11] *((signed word*)uw_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + // [11] *((int *)uw_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta uw_screen+2*SIZEOF_SIGNED_WORD+1 + sta uw_screen+2*SIZEOF_INT+1 // *((byte*)sw_screen) = ub - // [12] *((byte*)sw_screen) = ub -- _deref_pbuc1=vbuc2 + // [12] *((char *)sw_screen) = ub -- _deref_pbuc1=vbuc2 lda #ub sta sw_screen // *((signed byte*)sw_screen+1) = sb - // [13] *((signed byte*)sw_screen+1) = sb -- _deref_pbsc1=vbsc2 + // [13] *((signed char *)sw_screen+1) = sb -- _deref_pbsc1=vbsc2 lda #sb sta sw_screen+1 // *((word*)sw_screen+1)= uw - // [14] *((word*)sw_screen+1*SIZEOF_WORD) = uw -- _deref_pwuc1=vwuc2 + // [14] *((unsigned int *)sw_screen+1*SIZEOF_UNSIGNED_INT) = uw -- _deref_pwuc1=vwuc2 lda #uw - sta sw_screen+1*SIZEOF_WORD+1 + sta sw_screen+1*SIZEOF_UNSIGNED_INT+1 // *((signed word*)sw_screen+2) = sw - // [15] *(sw_screen+2*SIZEOF_SIGNED_WORD) = sw -- _deref_pwsc1=vwsc2 + // [15] *(sw_screen+2*SIZEOF_INT) = sw -- _deref_pwsc1=vwsc2 lda #sw - sta sw_screen+2*SIZEOF_SIGNED_WORD+1 + sta sw_screen+2*SIZEOF_INT+1 // main::@return // } // [16] return diff --git a/src/test/ref/pointer-cast.sym b/src/test/ref/pointer-cast.sym index 2a88921ef..a4d75395c 100644 --- a/src/test/ref/pointer-cast.sym +++ b/src/test/ref/pointer-cast.sym @@ -1,12 +1,12 @@ -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -constant signed byte sb = -$29 -constant signed byte* sb_screen = (signed byte*) 1064 -constant signed word sw = -$3000 -constant signed word* sw_screen = (signed word*) 1144 -constant byte ub = $29 -constant byte* ub_screen = (byte*) 1024 -constant word uw = $3000 -constant word* uw_screen = (word*) 1104 +__constant signed char sb = -$29 +__constant signed char *sb_screen = (signed char *) 1064 +__constant int sw = -$3000 +__constant int *sw_screen = (int *) 1144 +__constant char ub = $29 +__constant char *ub_screen = (char *) 1024 +__constant unsigned int uw = $3000 +__constant unsigned int *uw_screen = (unsigned int *) 1104 diff --git a/src/test/ref/pointer-const-typedef.log b/src/test/ref/pointer-const-typedef.log index 0a30708b9..d1cf5e5ef 100644 --- a/src/test/ref/pointer-const-typedef.log +++ b/src/test/ref/pointer-const-typedef.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -34,7 +34,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -43,40 +43,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -constant byte* const cp0 = (byte*)$400 -constant byte* const cp1 = (byte*)$400 -constant byte* const cp2 = (byte*)$400 -constant const byte* const cpc0 = (byte*)$400 -constant const byte* const cpc1 = (byte*)$400 -constant const byte* const cpc2 = (byte*)$400 +__constant char * const cp0 = (char *)$400 +__constant char * const cp1 = (char *)$400 +__constant char * const cp2 = (char *)$400 +__constant const char * const cpc0 = (char *)$400 +__constant const char * const cpc1 = (char *)$400 +__constant const char * const cpc2 = (char *)$400 void main() -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 -constant const byte* pc0 = (byte*)$400 -constant const byte* pc1 = (byte*)$400 -constant const byte* pc2 = (byte*)$400 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 +__constant const char *pc0 = (char *)$400 +__constant const char *pc1 = (char *)$400 +__constant const char *pc2 = (char *)$400 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::idx#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -194,7 +194,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes @@ -287,18 +287,18 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* const cp0 = (byte*) 1024 -constant byte* const cp1 = (byte*) 1024 -constant byte* const cp2 = (byte*) 1024 -constant const byte* const cpc0 = (byte*) 1024 -constant const byte* const cpc1 = (byte*) 1024 -constant const byte* const cpc2 = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 +__constant char * const cp0 = (char *) 1024 +__constant char * const cp1 = (char *) 1024 +__constant char * const cp2 = (char *) 1024 +__constant const char * const cpc0 = (char *) 1024 +__constant const char * const cpc1 = (char *) 1024 +__constant const char * const cpc2 = (char *) 1024 void main() -byte main::idx -constant const byte* pc0 = (byte*) 1024 -constant const byte* pc1 = (byte*) 1024 -constant const byte* pc2 = (byte*) 1024 +char main::idx +__constant const char *pc0 = (char *) 1024 +__constant const char *pc1 = (char *) 1024 +__constant const char *pc2 = (char *) 1024 diff --git a/src/test/ref/pointer-const-typedef.sym b/src/test/ref/pointer-const-typedef.sym index e67413e06..b33997d7f 100644 --- a/src/test/ref/pointer-const-typedef.sym +++ b/src/test/ref/pointer-const-typedef.sym @@ -1,13 +1,13 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* const cp0 = (byte*) 1024 -constant byte* const cp1 = (byte*) 1024 -constant byte* const cp2 = (byte*) 1024 -constant const byte* const cpc0 = (byte*) 1024 -constant const byte* const cpc1 = (byte*) 1024 -constant const byte* const cpc2 = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 +__constant char * const cp0 = (char *) 1024 +__constant char * const cp1 = (char *) 1024 +__constant char * const cp2 = (char *) 1024 +__constant const char * const cpc0 = (char *) 1024 +__constant const char * const cpc1 = (char *) 1024 +__constant const char * const cpc2 = (char *) 1024 void main() -byte main::idx -constant const byte* pc0 = (byte*) 1024 -constant const byte* pc1 = (byte*) 1024 -constant const byte* pc2 = (byte*) 1024 +char main::idx +__constant const char *pc0 = (char *) 1024 +__constant const char *pc1 = (char *) 1024 +__constant const char *pc2 = (char *) 1024 diff --git a/src/test/ref/pointer-const.log b/src/test/ref/pointer-const.log index 934d0d003..4ac895637 100644 --- a/src/test/ref/pointer-const.log +++ b/src/test/ref/pointer-const.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -41,7 +41,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -50,24 +50,24 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte* const BASIC = (byte*)$a004 -constant const byte* MSG = "hello world!" -constant byte* const SCREEN = (byte*)$400 +__constant const char * const BASIC = (char *)$a004 +__constant const char *MSG = "hello world!" +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -number~ main::$1 -number~ main::$2 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 +bool main::$0 +number main::$1 +number main::$2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 Adding number conversion cast (unumber) 0 in main::$3 = 0 != MSG[main::i#4] Adding number conversion cast (unumber) 0 in main::i#2 = 0 @@ -78,20 +78,20 @@ Adding number conversion cast (unumber) main::$2 in main::$2 = BASIC[main::i#7] Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::i#2 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 40964 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 40964 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $3f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $3f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $3f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = $28 + main::i#7 -Inferred type updated to byte in main::$2 = BASIC[main::i#7] & $3f +Inferred type updated to char in main::$1 = $28 + main::i#7 +Inferred type updated to char in main::$2 = BASIC[main::i#7] & $3f Alias main::i#4 = main::i#5 Alias main::i#6 = main::i#7 Successful SSA optimization Pass2AliasElimination @@ -160,12 +160,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#3 22.0 -byte main::i#4 18.333333333333332 -byte main::i#6 13.75 +char main::$2 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#3 // 22.0 +char main::i#4 // 18.333333333333332 +char main::i#6 // 13.75 Initial phi equivalence classes [ main::i#4 main::i#1 ] @@ -291,16 +291,16 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte* const BASIC = (byte*) 40964 -constant const byte* MSG = "hello world!" -constant byte* const SCREEN = (byte*) 1024 +__constant const char * const BASIC = (char *) 40964 +__constant const char *MSG = "hello world!" +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#3 reg byte x 22.0 -byte main::i#4 reg byte x 18.333333333333332 -byte main::i#6 reg byte x 13.75 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#3 // reg byte x 22.0 +char main::i#4 // reg byte x 18.333333333333332 +char main::i#6 // reg byte x 13.75 reg byte x [ main::i#4 main::i#1 ] reg byte x [ main::i#6 main::i#3 ] diff --git a/src/test/ref/pointer-const.sym b/src/test/ref/pointer-const.sym index e2ff9d225..f87e907b4 100644 --- a/src/test/ref/pointer-const.sym +++ b/src/test/ref/pointer-const.sym @@ -1,13 +1,13 @@ -constant const byte* const BASIC = (byte*) 40964 -constant const byte* MSG = "hello world!" -constant byte* const SCREEN = (byte*) 1024 +__constant const char * const BASIC = (char *) 40964 +__constant const char *MSG = "hello world!" +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#3 reg byte x 22.0 -byte main::i#4 reg byte x 18.333333333333332 -byte main::i#6 reg byte x 13.75 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#3 // reg byte x 22.0 +char main::i#4 // reg byte x 18.333333333333332 +char main::i#6 // reg byte x 13.75 reg byte x [ main::i#4 main::i#1 ] reg byte x [ main::i#6 main::i#3 ] diff --git a/src/test/ref/pointer-plus-0.asm b/src/test/ref/pointer-plus-0.asm index 446ff59c1..a0faae9c5 100644 --- a/src/test/ref/pointer-plus-0.asm +++ b/src/test/ref/pointer-plus-0.asm @@ -37,6 +37,7 @@ main: { // } rts } +// __zp(2) char * first(char *msg) first: { .label return = 2 rts diff --git a/src/test/ref/pointer-plus-0.cfg b/src/test/ref/pointer-plus-0.cfg index 2aa22d034..d87901ad6 100644 --- a/src/test/ref/pointer-plus-0.cfg +++ b/src/test/ref/pointer-plus-0.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call first + [1] call first [2] first::return#0 = first::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = first::return#0 [4] *main::SCREEN = *main::$0 - [5] call first + [5] call first [6] first::return#1 = first::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte* first(byte* first::msg) +char * first(char *msg) first: scope:[first] from main main::@1 [10] first::return#2 = phi( main/msg1, main::@1/msg2 ) to:first::@return diff --git a/src/test/ref/pointer-plus-0.log b/src/test/ref/pointer-plus-0.log index 530779879..7fe00fccc 100644 --- a/src/test/ref/pointer-plus-0.log +++ b/src/test/ref/pointer-plus-0.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start first::msg#0 = msg1 - call first + call first first::return#0 = first::return#3 to:main::@1 main::@1: scope:[main] from main @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::$1 = main::$0 + 0 main::SCREEN[0] = *main::$1 first::msg#1 = msg2 - call first + call first first::return#1 = first::return#3 to:main::@2 main::@2: scope:[main] from main::@1 @@ -26,11 +26,11 @@ main::@return: scope:[main] from main::@2 return to:@return -byte* first(byte* first::msg) +char * first(char *msg) first: scope:[first] from main main::@1 first::msg#2 = phi( main/first::msg#0, main::@1/first::msg#1 ) first::$0 = first::msg#2 + 0 - first::return#2 = (byte*)first::$0 + first::return#2 = (char *)first::$0 to:first::@return first::@return: scope:[first] from first first::return#6 = phi( first/first::return#2 ) @@ -40,7 +40,7 @@ first::@return: scope:[first] from first void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -50,28 +50,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -byte* first(byte* first::msg) -byte*~ first::$0 -byte* first::msg -byte* first::msg#0 -byte* first::msg#1 -byte* first::msg#2 -byte* first::return -byte* first::return#0 -byte* first::return#1 -byte* first::return#2 -byte* first::return#3 -byte* first::return#4 -byte* first::return#5 -byte* first::return#6 +char * first(char *msg) +char *first::$0 +char *first::msg +char *first::msg#0 +char *first::msg#1 +char *first::msg#2 +char *first::return +char *first::return#0 +char *first::return#1 +char *first::return#2 +char *first::return#3 +char *first::return#4 +char *first::return#5 +char *first::return#6 void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -constant byte* const main::SCREEN = (byte*)$400 -constant byte* msg1[] = "hello world!" -constant byte* msg2[] = "goodbye sky?" +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +__constant char * const main::SCREEN = (char *)$400 +__constant char msg1[] = "hello world!" +__constant char msg2[] = "goodbye sky?" Adding number conversion cast (unumber) 0 in main::$1 = main::$0 + 0 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = *main::$1 @@ -79,7 +79,7 @@ Adding number conversion cast (unumber) 0 in main::$3 = main::$2 + 0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = *main::$3 Adding number conversion cast (unumber) 0 in first::$0 = first::msg#2 + 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -87,11 +87,11 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast first::$0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias first::return#0 = first::return#4 Alias first::return#1 = first::return#5 @@ -138,13 +138,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call first + [1] call first [2] first::return#0 = first::return#2 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = first::return#0 [4] *main::SCREEN = *main::$0 - [5] call first + [5] call first [6] first::return#1 = first::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -155,7 +155,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte* first(byte* first::msg) +char * first(char *msg) first: scope:[first] from main main::@1 [10] first::return#2 = phi( main/msg1, main::@1/msg2 ) to:first::@return @@ -165,15 +165,15 @@ first::@return: scope:[first] from first VARIABLE REGISTER WEIGHTS -byte* first(byte* first::msg) -byte* first::msg -byte* first::return -byte* first::return#0 4.0 -byte* first::return#1 4.0 -byte* first::return#2 1.0 +char * first(char *msg) +char *first::msg +char *first::return +char *first::return#0 // 4.0 +char *first::return#1 // 4.0 +char *first::return#2 // 1.0 void main() -byte*~ main::$0 4.0 -byte*~ main::$2 4.0 +char *main::$0 // 4.0 +char *main::$2 // 4.0 Initial phi equivalence classes [ first::return#2 ] @@ -237,7 +237,7 @@ main: { .label SCREEN = $400 .label __0 = 2 .label __2 = 2 - // [1] call first + // [1] call first // [10] phi from main to first [phi:main->first] first_from_main: // [10] phi first::return#2 = msg1 [phi:main->first#0] -- pbuz1=pbuc1 @@ -255,7 +255,7 @@ main: { ldy #0 lda (__0),y sta SCREEN - // [5] call first + // [5] call first // [10] phi from main::@1 to first [phi:main::@1->first] first_from___b1: // [10] phi first::return#2 = msg2 [phi:main::@1->first#0] -- pbuz1=pbuc1 @@ -280,6 +280,7 @@ main: { rts } // first +// __zp(2) char * first(char *msg) first: { .label return = 2 jmp __breturn @@ -310,18 +311,18 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte* first(byte* first::msg) -byte* first::msg -byte* first::return -byte* first::return#0 return zp[2]:2 4.0 -byte* first::return#1 return zp[2]:2 4.0 -byte* first::return#2 return zp[2]:2 1.0 +char * first(char *msg) +char *first::msg +char *first::return +char *first::return#0 // return zp[2]:2 4.0 +char *first::return#1 // return zp[2]:2 4.0 +char *first::return#2 // return zp[2]:2 1.0 void main() -byte*~ main::$0 zp[2]:2 4.0 -byte*~ main::$2 zp[2]:2 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -constant byte* msg1[] = "hello world!" -constant byte* msg2[] = "goodbye sky?" +char *main::$0 // zp[2]:2 4.0 +char *main::$2 // zp[2]:2 4.0 +__constant char * const main::SCREEN = (char *) 1024 +__constant char msg1[] = "hello world!" +__constant char msg2[] = "goodbye sky?" zp[2]:2 [ first::return#2 first::return#0 first::return#1 main::$0 main::$2 ] @@ -348,7 +349,7 @@ main: { .label __0 = 2 .label __2 = 2 // first(msg1) - // [1] call first + // [1] call first // [10] phi from main to first [phi:main->first] // [10] phi first::return#2 = msg1 [phi:main->first#0] -- pbuz1=pbuc1 lda #first] // [10] phi first::return#2 = msg2 [phi:main::@1->first#0] -- pbuz1=pbuc1 lda #SCREEN adc.z i+1 sta.z sc+1 - // [3] *main::sc#0 = (byte)main::i#2 -- _deref_pbuz1=_byte_vwsz2 + // [3] *main::sc#0 = (char)main::i#2 -- _deref_pbuz1=_byte_vwsz2 lda.z i ldy #0 sta (sc),y @@ -213,13 +213,13 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024+(word)$28*$a +__constant char *SCREEN = (char *) 1024+(unsigned int)$28*$a void main() -signed word main::i -signed word main::i#1 i zp[2]:2 16.5 -signed word main::i#2 i zp[2]:2 11.0 -byte* main::sc -byte* main::sc#0 sc zp[2]:4 22.0 +int main::i +int main::i#1 // i zp[2]:2 16.5 +int main::i#2 // i zp[2]:2 11.0 +char *main::sc +char *main::sc#0 // sc zp[2]:4 22.0 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::sc#0 ] @@ -267,7 +267,7 @@ main: { adc.z i+1 sta.z sc+1 // *sc = (char)i - // [3] *main::sc#0 = (byte)main::i#2 -- _deref_pbuz1=_byte_vwsz2 + // [3] *main::sc#0 = (char)main::i#2 -- _deref_pbuz1=_byte_vwsz2 lda.z i ldy #0 sta (sc),y diff --git a/src/test/ref/pointer-plus-signed-word.sym b/src/test/ref/pointer-plus-signed-word.sym index 1ec2b183f..02ad05997 100644 --- a/src/test/ref/pointer-plus-signed-word.sym +++ b/src/test/ref/pointer-plus-signed-word.sym @@ -1,10 +1,10 @@ -constant byte* SCREEN = (byte*) 1024+(word)$28*$a +__constant char *SCREEN = (char *) 1024+(unsigned int)$28*$a void main() -signed word main::i -signed word main::i#1 i zp[2]:2 16.5 -signed word main::i#2 i zp[2]:2 11.0 -byte* main::sc -byte* main::sc#0 sc zp[2]:4 22.0 +int main::i +int main::i#1 // i zp[2]:2 16.5 +int main::i#2 // i zp[2]:2 11.0 +char *main::sc +char *main::sc#0 // sc zp[2]:4 22.0 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::sc#0 ] diff --git a/src/test/ref/pointer-pointer-1.log b/src/test/ref/pointer-pointer-1.log index 3c6bfbb32..5a92e76b7 100644 --- a/src/test/ref/pointer-pointer-1.log +++ b/src/test/ref/pointer-pointer-1.log @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,12 +26,12 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::b loadstore -byte* volatile main::pb loadstore -constant byte** main::ppb = &main::pb +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::b +__loadstore char * volatile main::pb +__constant char **main::ppb = &main::pb -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -58,8 +58,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -volatile byte main::b loadstore 2.0 -byte* volatile main::pb loadstore 20.0 +__loadstore volatile char main::b // 2.0 +__loadstore char * volatile main::pb // 20.0 Initial phi equivalence classes Added variable main::b to live range equivalence class [ main::b ] @@ -137,10 +137,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::b loadstore zp[1]:2 2.0 -byte* volatile main::pb loadstore zp[2]:3 20.0 -constant byte** main::ppb = &main::pb +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::b // zp[1]:2 2.0 +__loadstore char * volatile main::pb // zp[2]:3 20.0 +__constant char **main::ppb = &main::pb zp[1]:2 [ main::b ] zp[2]:3 [ main::pb ] diff --git a/src/test/ref/pointer-pointer-1.sym b/src/test/ref/pointer-pointer-1.sym index 358d82ea3..5a9ae4e57 100644 --- a/src/test/ref/pointer-pointer-1.sym +++ b/src/test/ref/pointer-pointer-1.sym @@ -1,8 +1,8 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::b loadstore zp[1]:2 2.0 -byte* volatile main::pb loadstore zp[2]:3 20.0 -constant byte** main::ppb = &main::pb +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::b // zp[1]:2 2.0 +__loadstore char * volatile main::pb // zp[2]:3 20.0 +__constant char **main::ppb = &main::pb zp[1]:2 [ main::b ] zp[2]:3 [ main::pb ] diff --git a/src/test/ref/pointer-pointer-2.asm b/src/test/ref/pointer-pointer-2.asm index fab98f03a..5c0a9c095 100644 --- a/src/test/ref/pointer-pointer-2.asm +++ b/src/test/ref/pointer-pointer-2.asm @@ -55,6 +55,7 @@ main: { jmp __b2 } // Choose the next text to show - by updating the text pointer pointed to by the passed pointer to a pointer +// void nexttext(char **textp) nexttext: { .label textp = main.text // textid++&1 diff --git a/src/test/ref/pointer-pointer-2.cfg b/src/test/ref/pointer-pointer-2.cfg index 1c3f1276e..1c031689f 100644 --- a/src/test/ref/pointer-pointer-2.cfg +++ b/src/test/ref/pointer-pointer-2.cfg @@ -1,13 +1,13 @@ void main() main: scope:[main] from - [0] main::text = (byte*) 0 + [0] main::text = (char *) 0 to:main::@1 main::@1: scope:[main] from main main::@4 [1] main::i#5 = phi( main/0, main::@4/main::i#1 ) - [1] main::screen#4 = phi( main/(byte*) 1024, main::@4/main::screen#2 ) + [1] main::screen#4 = phi( main/(char *) 1024, main::@4/main::screen#2 ) [1] textid#13 = phi( main/0, main::@4/textid#10 ) - [2] call nexttext + [2] call nexttext to:main::@2 main::@2: scope:[main] from main::@1 main::@3 [3] main::screen#2 = phi( main::@3/main::screen#1, main::@1/main::screen#4 ) @@ -26,7 +26,7 @@ main::@3: scope:[main] from main::@2 [10] main::text = ++ main::text to:main::@2 -void nexttext(byte** nexttext::textp) +void nexttext(char **textp) nexttext: scope:[nexttext] from main::@1 [11] nexttext::$0 = textid#13 & 1 [12] textid#10 = ++ textid#13 diff --git a/src/test/ref/pointer-pointer-2.log b/src/test/ref/pointer-pointer-2.log index e12a5dd9d..73a16852f 100644 --- a/src/test/ref/pointer-pointer-2.log +++ b/src/test/ref/pointer-pointer-2.log @@ -1,13 +1,13 @@ Setting inferred volatile on symbol affected by address-of main::$0 = call nexttext(&main::text) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 textid#18 = phi( __start::@1/textid#17 ) - main::screen#0 = (byte*)$400 - main::text = (byte*) 0 + main::screen#0 = (char *)$400 + main::text = (char *) 0 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@4 main::screen#5 = phi( main/main::screen#0, main::@4/main::screen#6 ) textid#13 = phi( main/textid#18, main::@4/textid#14 ) nexttext::textp#0 = &main::text - call nexttext + call nexttext to:main::@5 main::@5: scope:[main] from main::@1 main::i#5 = phi( main::@1/main::i#6 ) @@ -52,7 +52,7 @@ main::@return: scope:[main] from main::@4 return to:@return -void nexttext(byte** nexttext::textp) +void nexttext(char **textp) nexttext: scope:[nexttext] from main::@1 nexttext::textp#3 = phi( main::@1/nexttext::textp#0 ) textid#9 = phi( main::@1/textid#13 ) @@ -85,7 +85,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 textid#17 = phi( __start::__init1/textid#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 textid#11 = phi( __start::@1/textid#1 ) @@ -100,73 +100,73 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* volatile main::text loadstore -void nexttext(byte** nexttext::textp) -number~ nexttext::$0 -bool~ nexttext::$1 -byte** nexttext::textp -byte** nexttext::textp#0 -byte** nexttext::textp#1 -byte** nexttext::textp#2 -byte** nexttext::textp#3 -constant byte* text1[] = "camelot " -constant byte* text2[] = "rex " -byte textid -byte textid#0 -byte textid#1 -byte textid#10 -byte textid#11 -byte textid#12 -byte textid#13 -byte textid#14 -byte textid#15 -byte textid#16 -byte textid#17 -byte textid#18 -byte textid#19 -byte textid#2 -byte textid#20 -byte textid#3 -byte textid#4 -byte textid#5 -byte textid#6 -byte textid#7 -byte textid#8 -byte textid#9 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +__loadstore char * volatile main::text +void nexttext(char **textp) +number nexttext::$0 +bool nexttext::$1 +char **nexttext::textp +char **nexttext::textp#0 +char **nexttext::textp#1 +char **nexttext::textp#2 +char **nexttext::textp#3 +__constant char text1[] = "camelot " +__constant char text2[] = "rex " +char textid +char textid#0 +char textid#1 +char textid#10 +char textid#11 +char textid#12 +char textid#13 +char textid#14 +char textid#15 +char textid#16 +char textid#17 +char textid#18 +char textid#19 +char textid#2 +char textid#20 +char textid#3 +char textid#4 +char textid#5 +char textid#6 +char textid#7 +char textid#8 +char textid#9 Adding number conversion cast (unumber) 0 in main::$2 = 0 != *main::text Adding number conversion cast (unumber) 1 in nexttext::$0 = textid#9 & 1 Adding number conversion cast (unumber) nexttext::$0 in nexttext::$0 = textid#9 & (unumber)1 Adding number conversion cast (unumber) 0 in nexttext::$1 = nexttext::$0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in nexttext::$0 = textid#9 & 1 +Inferred type updated to char in nexttext::$0 = textid#9 & 1 Alias main::screen#4 = main::screen#5 Alias main::i#5 = main::i#6 Alias textid#0 = textid#7 @@ -193,7 +193,7 @@ Simple Condition main::$2 [10] if(0!=*main::text) goto main::@3 Simple Condition main::$1 [16] if(main::i#1!=rangelast(0,$14)) goto main::@1 Simple Condition nexttext::$1 [22] if(nexttext::$0==0) goto nexttext::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Constant nexttext::textp#0 = &main::text Constant textid#17 = 0 @@ -211,12 +211,12 @@ Adding number conversion cast (unumber) $15 in [9] if(main::i#1!=$15) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $15 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $15 +Finalized unsigned number type (char) $15 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 Inlining constant with var siblings textid#17 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Constant inlined textid#17 = 0 Successful SSA optimization Pass2ConstantInlining @@ -238,13 +238,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::text = (byte*) 0 + [0] main::text = (char *) 0 to:main::@1 main::@1: scope:[main] from main main::@4 [1] main::i#5 = phi( main/0, main::@4/main::i#1 ) - [1] main::screen#4 = phi( main/(byte*) 1024, main::@4/main::screen#2 ) + [1] main::screen#4 = phi( main/(char *) 1024, main::@4/main::screen#2 ) [1] textid#13 = phi( main/0, main::@4/textid#10 ) - [2] call nexttext + [2] call nexttext to:main::@2 main::@2: scope:[main] from main::@1 main::@3 [3] main::screen#2 = phi( main::@3/main::screen#1, main::@1/main::screen#4 ) @@ -263,7 +263,7 @@ main::@3: scope:[main] from main::@2 [10] main::text = ++ main::text to:main::@2 -void nexttext(byte** nexttext::textp) +void nexttext(char **textp) nexttext: scope:[nexttext] from main::@1 [11] nexttext::$0 = textid#13 & 1 [12] textid#10 = ++ textid#13 @@ -282,20 +282,20 @@ nexttext::@1: scope:[nexttext] from nexttext VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#5 3.142857142857143 -byte* main::screen -byte* main::screen#1 101.0 -byte* main::screen#2 65.0 -byte* main::screen#4 11.0 -byte* volatile main::text loadstore 40.6 -void nexttext(byte** nexttext::textp) -byte~ nexttext::$0 101.0 -byte** nexttext::textp -byte textid -byte textid#10 8.615384615384615 -byte textid#13 106.5 +char main::i +char main::i#1 // 16.5 +char main::i#5 // 3.142857142857143 +char *main::screen +char *main::screen#1 // 101.0 +char *main::screen#2 // 65.0 +char *main::screen#4 // 11.0 +__loadstore char * volatile main::text // 40.6 +void nexttext(char **textp) +char nexttext::$0 // 101.0 +char **nexttext::textp +char textid +char textid#10 // 8.615384615384615 +char textid#13 // 106.5 Initial phi equivalence classes [ textid#13 textid#10 ] @@ -315,7 +315,7 @@ Allocated zp[1]:5 [ main::i#5 main::i#1 ] Allocated zp[2]:6 [ main::text ] Allocated zp[1]:8 [ nexttext::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::text = (byte*) 0 [ main::text ] ( [ main::text ] { } ) always clobbers reg byte a +Statement [0] main::text = (char *) 0 [ main::text ] ( [ main::text ] { } ) always clobbers reg byte a Statement [4] if(0!=*main::text) goto main::@3 [ main::text main::i#5 textid#10 main::screen#2 ] ( [ main::text main::i#5 textid#10 main::screen#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::i#5 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:5 [ main::i#5 main::i#1 ] @@ -325,7 +325,7 @@ Statement [8] *main::screen#2 = *main::text [ main::text main::i#5 textid#10 mai Statement [11] nexttext::$0 = textid#13 & 1 [ textid#13 nexttext::$0 ] ( nexttext:2 [ main::text main::screen#4 main::i#5 textid#13 nexttext::$0 ] { } ) always clobbers reg byte a Statement [14] *nexttext::textp#0 = text2 [ textid#10 ] ( nexttext:2 [ main::text main::screen#4 main::i#5 textid#10 ] { } ) always clobbers reg byte a Statement [16] *nexttext::textp#0 = text1 [ textid#10 ] ( nexttext:2 [ main::text main::screen#4 main::i#5 textid#10 ] { } ) always clobbers reg byte a -Statement [0] main::text = (byte*) 0 [ main::text ] ( [ main::text ] { } ) always clobbers reg byte a +Statement [0] main::text = (char *) 0 [ main::text ] ( [ main::text ] { } ) always clobbers reg byte a Statement [4] if(0!=*main::text) goto main::@3 [ main::text main::i#5 textid#10 main::screen#2 ] ( [ main::text main::i#5 textid#10 main::screen#2 ] { } ) always clobbers reg byte a reg byte y Statement [8] *main::screen#2 = *main::text [ main::text main::i#5 textid#10 main::screen#2 ] ( [ main::text main::i#5 textid#10 main::screen#2 ] { } ) always clobbers reg byte a reg byte y Statement [11] nexttext::$0 = textid#13 & 1 [ textid#13 nexttext::$0 ] ( nexttext:2 [ main::text main::screen#4 main::i#5 textid#13 nexttext::$0 ] { } ) always clobbers reg byte a @@ -368,7 +368,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label text = 5 .label screen = 3 - // [0] main::text = (byte*) 0 -- pbuz1=pbuc1 + // [0] main::text = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z text lda #>0 @@ -377,7 +377,7 @@ main: { __b1_from_main: // [1] phi main::i#5 = 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 ldx #0 - // [1] phi main::screen#4 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::screen#4 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -394,7 +394,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call nexttext + // [2] call nexttext jsr nexttext // [3] phi from main::@1 main::@3 to main::@2 [phi:main::@1/main::@3->main::@2] __b2_from___b1: @@ -442,6 +442,7 @@ main: { } // nexttext // Choose the next text to show - by updating the text pointer pointed to by the passed pointer to a pointer +// void nexttext(char **textp) nexttext: { .label textp = main.text // [11] nexttext::$0 = textid#13 & 1 -- vbuaa=vbuz1_band_vbuc1 @@ -514,23 +515,23 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#5 reg byte x 3.142857142857143 -byte* main::screen -byte* main::screen#1 screen zp[2]:3 101.0 -byte* main::screen#2 screen zp[2]:3 65.0 -byte* main::screen#4 screen zp[2]:3 11.0 -byte* volatile main::text loadstore zp[2]:5 40.6 -void nexttext(byte** nexttext::textp) -byte~ nexttext::$0 reg byte a 101.0 -byte** nexttext::textp -constant byte** nexttext::textp#0 textp = &main::text -constant byte* text1[] = "camelot " -constant byte* text2[] = "rex " -byte textid -byte textid#10 textid zp[1]:2 8.615384615384615 -byte textid#13 textid zp[1]:2 106.5 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#5 // reg byte x 3.142857142857143 +char *main::screen +char *main::screen#1 // screen zp[2]:3 101.0 +char *main::screen#2 // screen zp[2]:3 65.0 +char *main::screen#4 // screen zp[2]:3 11.0 +__loadstore char * volatile main::text // zp[2]:5 40.6 +void nexttext(char **textp) +char nexttext::$0 // reg byte a 101.0 +char **nexttext::textp +__constant char **nexttext::textp#0 = &main::text // textp +__constant char text1[] = "camelot " +__constant char text2[] = "rex " +char textid +char textid#10 // textid zp[1]:2 8.615384615384615 +char textid#13 // textid zp[1]:2 106.5 zp[1]:2 [ textid#13 textid#10 ] zp[2]:3 [ main::screen#4 main::screen#2 main::screen#1 ] @@ -561,14 +562,14 @@ main: { .label text = 5 .label screen = 3 // byte* text - // [0] main::text = (byte*) 0 -- pbuz1=pbuc1 + // [0] main::text = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z text sta.z text+1 // [1] phi from main to main::@1 [phi:main->main::@1] // [1] phi main::i#5 = 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 tax - // [1] phi main::screen#4 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::screen#4 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -583,7 +584,7 @@ main: { // main::@1 __b1: // nexttext(&text) - // [2] call nexttext + // [2] call nexttext jsr nexttext // [3] phi from main::@1 main::@3 to main::@2 [phi:main::@1/main::@3->main::@2] // [3] phi main::screen#2 = main::screen#4 [phi:main::@1/main::@3->main::@2#0] -- register_copy @@ -628,6 +629,7 @@ main: { } // nexttext // Choose the next text to show - by updating the text pointer pointed to by the passed pointer to a pointer +// void nexttext(char **textp) nexttext: { .label textp = main.text // textid++&1 diff --git a/src/test/ref/pointer-pointer-2.sym b/src/test/ref/pointer-pointer-2.sym index 7bc73f1b3..b451e1682 100644 --- a/src/test/ref/pointer-pointer-2.sym +++ b/src/test/ref/pointer-pointer-2.sym @@ -1,21 +1,21 @@ void main() -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#5 reg byte x 3.142857142857143 -byte* main::screen -byte* main::screen#1 screen zp[2]:3 101.0 -byte* main::screen#2 screen zp[2]:3 65.0 -byte* main::screen#4 screen zp[2]:3 11.0 -byte* volatile main::text loadstore zp[2]:5 40.6 -void nexttext(byte** nexttext::textp) -byte~ nexttext::$0 reg byte a 101.0 -byte** nexttext::textp -constant byte** nexttext::textp#0 textp = &main::text -constant byte* text1[] = "camelot " -constant byte* text2[] = "rex " -byte textid -byte textid#10 textid zp[1]:2 8.615384615384615 -byte textid#13 textid zp[1]:2 106.5 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#5 // reg byte x 3.142857142857143 +char *main::screen +char *main::screen#1 // screen zp[2]:3 101.0 +char *main::screen#2 // screen zp[2]:3 65.0 +char *main::screen#4 // screen zp[2]:3 11.0 +__loadstore char * volatile main::text // zp[2]:5 40.6 +void nexttext(char **textp) +char nexttext::$0 // reg byte a 101.0 +char **nexttext::textp +__constant char **nexttext::textp#0 = &main::text // textp +__constant char text1[] = "camelot " +__constant char text2[] = "rex " +char textid +char textid#10 // textid zp[1]:2 8.615384615384615 +char textid#13 // textid zp[1]:2 106.5 zp[1]:2 [ textid#13 textid#10 ] zp[2]:3 [ main::screen#4 main::screen#2 main::screen#1 ] diff --git a/src/test/ref/pointer-pointer-3.asm b/src/test/ref/pointer-pointer-3.asm index de9393eb7..d595736cd 100644 --- a/src/test/ref/pointer-pointer-3.asm +++ b/src/test/ref/pointer-pointer-3.asm @@ -44,7 +44,7 @@ main: { // } rts } -// setscreen(byte* zp(2) val) +// void setscreen(char **screen, __zp(2) char *val) setscreen: { .label val = 2 // *screen = val diff --git a/src/test/ref/pointer-pointer-3.cfg b/src/test/ref/pointer-pointer-3.cfg index a991ce562..1c15ee291 100644 --- a/src/test/ref/pointer-pointer-3.cfg +++ b/src/test/ref/pointer-pointer-3.cfg @@ -4,11 +4,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] screen = (byte*) 1024 + [1] screen = (char *) 1024 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,11 +17,11 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] phi() - [6] call setscreen + [6] call setscreen to:main::@1 main::@1: scope:[main] from main [7] *screen = 'a' - [8] call setscreen + [8] call setscreen to:main::@2 main::@2: scope:[main] from main::@1 [9] *screen = 'a' @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -void setscreen(byte** setscreen::screen , byte* setscreen::val) +void setscreen(char **screen , char *val) setscreen: scope:[setscreen] from main main::@1 [11] setscreen::val#2 = phi( main/screen1, main::@1/screen2 ) [12] *(&screen) = setscreen::val#2 diff --git a/src/test/ref/pointer-pointer-3.log b/src/test/ref/pointer-pointer-3.log index 9d3b2f5e1..45197a30d 100644 --- a/src/test/ref/pointer-pointer-3.log +++ b/src/test/ref/pointer-pointer-3.log @@ -1,5 +1,5 @@ Setting inferred volatile on symbol affected by address-of main::$0 = call setscreen(&screen, screen1) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,13 +7,13 @@ void main() main: scope:[main] from __start::@1 setscreen::screen#0 = &screen setscreen::val#0 = screen1 - call setscreen + call setscreen to:main::@1 main::@1: scope:[main] from main screen[0] = 'a' setscreen::screen#1 = &screen setscreen::val#1 = screen2 - call setscreen + call setscreen to:main::@2 main::@2: scope:[main] from main::@1 screen[0] = 'a' @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void setscreen(byte** setscreen::screen , byte* setscreen::val) +void setscreen(char **screen , char *val) setscreen: scope:[setscreen] from main main::@1 setscreen::screen#2 = phi( main/setscreen::screen#0, main::@1/setscreen::screen#1 ) setscreen::val#2 = phi( main/setscreen::val#0, main::@1/setscreen::val#1 ) @@ -36,10 +36,10 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen = (byte*)$400 + screen = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -50,33 +50,33 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte* volatile screen loadstore -constant byte* screen1 = (byte*)$400 -constant byte* screen2 = (byte*)$400+$28 -void setscreen(byte** setscreen::screen , byte* setscreen::val) -byte** setscreen::screen -byte** setscreen::screen#0 -byte** setscreen::screen#1 -byte** setscreen::screen#2 -byte* setscreen::val -byte* setscreen::val#0 -byte* setscreen::val#1 -byte* setscreen::val#2 +__loadstore char * volatile screen +__constant char *screen1 = (char *)$400 +__constant char *screen2 = (char *)$400+$28 +void setscreen(char **screen , char *val) +char **setscreen::screen +char **setscreen::screen#0 +char **setscreen::screen#1 +char **setscreen::screen#2 +char *setscreen::val +char *setscreen::val#0 +char *setscreen::val#1 +char *setscreen::val#2 Adding number conversion cast (unumber) $28 in Adding number conversion cast (unumber) 0 in screen[0] = 'a' Adding number conversion cast (unumber) 0 in screen[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant setscreen::screen#0 = &screen Constant setscreen::val#0 = screen1 @@ -119,11 +119,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] screen = (byte*) 1024 + [1] screen = (char *) 1024 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -132,11 +132,11 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] phi() - [6] call setscreen + [6] call setscreen to:main::@1 main::@1: scope:[main] from main [7] *screen = 'a' - [8] call setscreen + [8] call setscreen to:main::@2 main::@2: scope:[main] from main::@1 [9] *screen = 'a' @@ -145,7 +145,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -void setscreen(byte** setscreen::screen , byte* setscreen::val) +void setscreen(char **screen , char *val) setscreen: scope:[setscreen] from main main::@1 [11] setscreen::val#2 = phi( main/screen1, main::@1/screen2 ) [12] *(&screen) = setscreen::val#2 @@ -158,11 +158,11 @@ setscreen::@return: scope:[setscreen] from setscreen VARIABLE REGISTER WEIGHTS void __start() void main() -byte* volatile screen loadstore 2.666666666666667 -void setscreen(byte** setscreen::screen , byte* setscreen::val) -byte** setscreen::screen -byte* setscreen::val -byte* setscreen::val#2 101.0 +__loadstore char * volatile screen // 2.666666666666667 +void setscreen(char **screen , char *val) +char **setscreen::screen +char *setscreen::val +char *setscreen::val#2 // 101.0 Initial phi equivalence classes [ setscreen::val#2 ] @@ -173,7 +173,7 @@ Complete equivalence classes Allocated zp[2]:2 [ setscreen::val#2 ] Allocated zp[2]:4 [ screen ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] screen = (byte*) 1024 [ screen ] ( [ screen ] { } ) always clobbers reg byte a +Statement [1] screen = (char *) 1024 [ screen ] ( [ screen ] { } ) always clobbers reg byte a Statement [7] *screen = 'a' [ screen ] ( main:3 [ screen ] { } ) always clobbers reg byte a reg byte y Statement [9] *screen = 'a' [ ] ( main:3 [ ] { } ) always clobbers reg byte a reg byte y Statement [12] *(&screen) = setscreen::val#2 [ screen ] ( main:3::setscreen:6 [ screen ] { } main:3::setscreen:8 [ screen ] { } ) always clobbers reg byte a @@ -213,7 +213,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] screen = (byte*) 1024 -- pbuz1=pbuc1 + // [1] screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -223,7 +223,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -235,7 +235,7 @@ __start: { } // main main: { - // [6] call setscreen + // [6] call setscreen // [11] phi from main to setscreen [phi:main->setscreen] setscreen_from_main: // [11] phi setscreen::val#2 = screen1 [phi:main->setscreen#0] -- pbuz1=pbuc1 @@ -251,7 +251,7 @@ main: { lda #'a' ldy #0 sta (screen),y - // [8] call setscreen + // [8] call setscreen // [11] phi from main::@1 to setscreen [phi:main::@1->setscreen] setscreen_from___b1: // [11] phi setscreen::val#2 = screen2 [phi:main::@1->setscreen#0] -- pbuz1=pbuc1 @@ -274,7 +274,7 @@ main: { rts } // setscreen -// setscreen(byte* zp(2) val) +// void setscreen(char **screen, __zp(2) char *val) setscreen: { .label val = 2 // [12] *(&screen) = setscreen::val#2 -- _deref_qbuc1=pbuz1 @@ -316,13 +316,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void __start() void main() -byte* volatile screen loadstore zp[2]:4 2.666666666666667 -constant byte* screen1 = (byte*) 1024 -constant byte* screen2 = (byte*) 1024+$28 -void setscreen(byte** setscreen::screen , byte* setscreen::val) -byte** setscreen::screen -byte* setscreen::val -byte* setscreen::val#2 val zp[2]:2 101.0 +__loadstore char * volatile screen // zp[2]:4 2.666666666666667 +__constant char *screen1 = (char *) 1024 +__constant char *screen2 = (char *) 1024+$28 +void setscreen(char **screen , char *val) +char **setscreen::screen +char *setscreen::val +char *setscreen::val#2 // val zp[2]:2 101.0 zp[2]:2 [ setscreen::val#2 ] zp[2]:4 [ screen ] @@ -351,14 +351,14 @@ Score: 98 __start: { // __start::__init1 // byte* screen = (char*)$400 - // [1] screen = (byte*) 1024 -- pbuz1=pbuc1 + // [1] screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -368,7 +368,7 @@ __start: { // main main: { // setscreen(&screen, screen1) - // [6] call setscreen + // [6] call setscreen // [11] phi from main to setscreen [phi:main->setscreen] // [11] phi setscreen::val#2 = screen1 [phi:main->setscreen#0] -- pbuz1=pbuc1 lda #setscreen] // [11] phi setscreen::val#2 = screen2 [phi:main::@1->setscreen#0] -- pbuz1=pbuc1 lda #$1003 @@ -100,7 +100,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant void** const IRQ = (void**) 65534 +__constant void ** const IRQ = (void **) 65534 void main() @@ -125,7 +125,7 @@ Score: 18 // main main: { // *IRQ = (void*) 0x1003 - // [0] *IRQ = (void*) 4099 -- _deref_qvoc1=pvoc2 + // [0] *IRQ = (void *) 4099 -- _deref_qvoc1=pvoc2 lda #<$1003 sta IRQ lda #>$1003 diff --git a/src/test/ref/pointer-to-pointer-const.sym b/src/test/ref/pointer-to-pointer-const.sym index d327f0bd6..eb3702ac0 100644 --- a/src/test/ref/pointer-to-pointer-const.sym +++ b/src/test/ref/pointer-to-pointer-const.sym @@ -1,3 +1,3 @@ -constant void** const IRQ = (void**) 65534 +__constant void ** const IRQ = (void **) 65534 void main() diff --git a/src/test/ref/pointer-to-pointer-problem.log b/src/test/ref/pointer-to-pointer-problem.log index 4f8f612ce..79043bc89 100644 --- a/src/test/ref/pointer-to-pointer-problem.log +++ b/src/test/ref/pointer-to-pointer-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -27,8 +27,8 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -constant word** p1 = (word**) 0 -constant word** p2 = (word**) 0 +__constant unsigned int **p1 = (unsigned int **) 0 +__constant unsigned int **p2 = (unsigned int **) 0 Removing unused procedure __start Removing unused procedure block __start @@ -115,8 +115,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant word** p1 = (word**) 0 -constant word** p2 = (word**) 0 +__constant unsigned int **p1 = (unsigned int **) 0 +__constant unsigned int **p2 = (unsigned int **) 0 diff --git a/src/test/ref/pointer-to-pointer-problem.sym b/src/test/ref/pointer-to-pointer-problem.sym index 637072a58..9c4449319 100644 --- a/src/test/ref/pointer-to-pointer-problem.sym +++ b/src/test/ref/pointer-to-pointer-problem.sym @@ -1,4 +1,4 @@ void main() -constant word** p1 = (word**) 0 -constant word** p2 = (word**) 0 +__constant unsigned int **p1 = (unsigned int **) 0 +__constant unsigned int **p2 = (unsigned int **) 0 diff --git a/src/test/ref/pointer-void-0.log b/src/test/ref/pointer-void-0.log index e46c49479..18865b97e 100644 --- a/src/test/ref/pointer-void-0.log +++ b/src/test/ref/pointer-void-0.log @@ -5,8 +5,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::w = $4d2 - main::vp#0 = ((void*)) main::wp - main::bp#0 = ((byte*)) main::vp#0 + main::vp#0 = ((void *)) main::wp + main::bp#0 = ((char *)) main::vp#0 *main::SCREEN = *main::bp#0 to:main::@return main::@return: scope:[main] from main @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,24 +26,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -byte* main::bp -byte* main::bp#0 -void* main::vp -void* main::vp#0 -volatile word main::w loadstore -constant word* main::wp = &main::w +__constant char * const main::SCREEN = (char *)$400 +char *main::bp +char *main::bp#0 +void *main::vp +void *main::vp#0 +__loadstore volatile unsigned int main::w +__constant unsigned int *main::wp = &main::w -Inlining cast main::vp#0 = (void*)main::wp -Inlining cast main::bp#0 = (byte*)main::vp#0 +Inlining cast main::vp#0 = (void *)main::wp +Inlining cast main::bp#0 = (char *)main::vp#0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Constant right-side identified [1] main::vp#0 = (void*)main::wp +Constant right-side identified [1] main::vp#0 = (void *)main::wp Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::vp#0 = (void*)main::wp +Constant main::vp#0 = (void *)main::wp Successful SSA optimization Pass2ConstantIdentification -Constant main::bp#0 = (byte*)main::vp#0 +Constant main::bp#0 = (char *)main::vp#0 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -69,9 +69,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* main::bp -void* main::vp -volatile word main::w loadstore 20.0 +char *main::bp +void *main::vp +__loadstore volatile unsigned int main::w // 20.0 Initial phi equivalence classes Added variable main::w to live range equivalence class [ main::w ] @@ -135,13 +135,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte* main::bp -constant byte* main::bp#0 bp = (byte*)main::vp#0 -void* main::vp -constant void* main::vp#0 vp = (void*)main::wp -volatile word main::w loadstore zp[2]:2 20.0 -constant word* main::wp = &main::w +__constant char * const main::SCREEN = (char *) 1024 +char *main::bp +__constant char *main::bp#0 = (char *)main::vp#0 // bp +void *main::vp +__constant void *main::vp#0 = (void *)main::wp // vp +__loadstore volatile unsigned int main::w // zp[2]:2 20.0 +__constant unsigned int *main::wp = &main::w zp[2]:2 [ main::w ] diff --git a/src/test/ref/pointer-void-0.sym b/src/test/ref/pointer-void-0.sym index 129ecda93..e790a9c04 100644 --- a/src/test/ref/pointer-void-0.sym +++ b/src/test/ref/pointer-void-0.sym @@ -1,10 +1,10 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte* main::bp -constant byte* main::bp#0 bp = (byte*)main::vp#0 -void* main::vp -constant void* main::vp#0 vp = (void*)main::wp -volatile word main::w loadstore zp[2]:2 20.0 -constant word* main::wp = &main::w +__constant char * const main::SCREEN = (char *) 1024 +char *main::bp +__constant char *main::bp#0 = (char *)main::vp#0 // bp +void *main::vp +__constant void *main::vp#0 = (void *)main::wp // vp +__loadstore volatile unsigned int main::w // zp[2]:2 20.0 +__constant unsigned int *main::wp = &main::w zp[2]:2 [ main::w ] diff --git a/src/test/ref/pointer-void-1.asm b/src/test/ref/pointer-void-1.asm index 3d287f653..4ea8886e4 100644 --- a/src/test/ref/pointer-void-1.asm +++ b/src/test/ref/pointer-void-1.asm @@ -55,7 +55,7 @@ main: { // } rts } -// print(void* zp(2) ptr) +// void print(__zp(2) void *ptr) print: { .label ptr = 2 // SCREEN[idx++] = *((byte*)ptr) diff --git a/src/test/ref/pointer-void-1.cfg b/src/test/ref/pointer-void-1.cfg index d75a9ca73..6b7d21382 100644 --- a/src/test/ref/pointer-void-1.cfg +++ b/src/test/ref/pointer-void-1.cfg @@ -4,25 +4,25 @@ main: scope:[main] from [0] main::d = $12345678 [1] main::w = $1234 [2] main::b = $12 - [3] call print + [3] call print to:main::@1 main::@1: scope:[main] from main [4] phi() - [5] call print + [5] call print to:main::@2 main::@2: scope:[main] from main::@1 [6] phi() - [7] call print + [7] call print to:main::@return main::@return: scope:[main] from main::@2 [8] return to:@return -void print(void* print::ptr) +void print(void *ptr) print: scope:[print] from main main::@1 main::@2 [9] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) [9] print::ptr#3 = phi( main/main::vb, main::@1/main::vw, main::@2/main::vd ) - [10] SCREEN[idx#13] = *((byte*)print::ptr#3) + [10] SCREEN[idx#13] = *((char *)print::ptr#3) [11] idx#14 = ++ idx#13 to:print::@return print::@return: scope:[print] from print diff --git a/src/test/ref/pointer-void-1.log b/src/test/ref/pointer-void-1.log index 1531aa3c5..271e6d20d 100644 --- a/src/test/ref/pointer-void-1.log +++ b/src/test/ref/pointer-void-1.log @@ -1,6 +1,6 @@ -Setting inferred volatile on symbol affected by address-of main::vb = ((void*)) &main::b -Setting inferred volatile on symbol affected by address-of main::vw = ((void*)) &main::w -Setting inferred volatile on symbol affected by address-of main::vd = ((void*)) &main::d +Setting inferred volatile on symbol affected by address-of main::vb = ((void *)) &main::b +Setting inferred volatile on symbol affected by address-of main::vw = ((void *)) &main::w +Setting inferred volatile on symbol affected by address-of main::vd = ((void *)) &main::d Inlined call call __init CONTROL FLOW GRAPH SSA @@ -36,11 +36,11 @@ main::@return: scope:[main] from main::@3 return to:@return -void print(void* print::ptr) +void print(void *ptr) print: scope:[print] from main main::@1 main::@2 idx#13 = phi( main/idx#17, main::@1/idx#0, main::@2/idx#1 ) print::ptr#3 = phi( main/print::ptr#0, main::@1/print::ptr#1, main::@2/print::ptr#2 ) - SCREEN[idx#13] = *((byte*)print::ptr#3) + SCREEN[idx#13] = *((char *)print::ptr#3) idx#4 = ++ idx#13 to:print::@return print::@return: scope:[print] from print @@ -70,43 +70,43 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -volatile byte main::b loadstore -volatile dword main::d loadstore -constant void* main::vb = (void*)&main::b -constant void* main::vd = (void*)&main::d -constant void* main::vw = (void*)&main::w -volatile word main::w loadstore -void print(void* print::ptr) -void* print::ptr -void* print::ptr#0 -void* print::ptr#1 -void* print::ptr#2 -void* print::ptr#3 +__loadstore volatile char main::b +__loadstore volatile unsigned long main::d +__constant void *main::vb = (void *)&main::b +__constant void *main::vd = (void *)&main::d +__constant void *main::vw = (void *)&main::w +__loadstore volatile unsigned int main::w +void print(void *ptr) +void *print::ptr +void *print::ptr#0 +void *print::ptr#1 +void *print::ptr#2 +void *print::ptr#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#9 Alias idx#1 = idx#10 @@ -175,11 +175,11 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -void print(void* print::ptr) +void print(void *ptr) print: scope:[print] from main main::@1 main::@2 [9] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) [9] print::ptr#3 = phi( main/main::vb, main::@1/main::vw, main::@2/main::vd ) - [10] SCREEN[idx#13] = *((byte*)print::ptr#3) + [10] SCREEN[idx#13] = *((char *)print::ptr#3) [11] idx#14 = ++ idx#13 to:print::@return print::@return: scope:[print] from print @@ -188,16 +188,16 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#13 13.0 -byte idx#14 2.5 +char idx +char idx#13 // 13.0 +char idx#14 // 2.5 void main() -volatile byte main::b loadstore 20.0 -volatile dword main::d loadstore 20.0 -volatile word main::w loadstore 20.0 -void print(void* print::ptr) -void* print::ptr -void* print::ptr#3 +__loadstore volatile char main::b // 20.0 +__loadstore volatile unsigned long main::d // 20.0 +__loadstore volatile unsigned int main::w // 20.0 +void print(void *ptr) +void *print::ptr +void *print::ptr#3 Initial phi equivalence classes [ print::ptr#3 ] @@ -220,13 +220,13 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] main::d = $12345678 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] main::w = $1234 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::b = $12 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] SCREEN[idx#13] = *((byte*)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y +Statement [10] SCREEN[idx#13] = *((char *)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#13 idx#14 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ idx#13 idx#14 ] Statement [0] main::d = $12345678 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] main::w = $1234 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::b = $12 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] SCREEN[idx#13] = *((byte*)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y +Statement [10] SCREEN[idx#13] = *((char *)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ print::ptr#3 ] : zp[2]:2 , Potential registers zp[1]:4 [ idx#13 idx#14 ] : zp[1]:4 , reg byte x , Potential registers zp[4]:5 [ main::d ] : zp[4]:5 , @@ -335,10 +335,10 @@ main: { rts } // print -// print(void* zp(2) ptr) +// void print(__zp(2) void *ptr) print: { .label ptr = 2 - // [10] SCREEN[idx#13] = *((byte*)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 + // [10] SCREEN[idx#13] = *((char *)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 ldy #0 lda (ptr),y sta SCREEN,x @@ -371,20 +371,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#13 reg byte x 13.0 -byte idx#14 reg byte x 2.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#13 // reg byte x 13.0 +char idx#14 // reg byte x 2.5 void main() -volatile byte main::b loadstore zp[1]:10 20.0 -volatile dword main::d loadstore zp[4]:4 20.0 -constant void* main::vb = (void*)&main::b -constant void* main::vd = (void*)&main::d -constant void* main::vw = (void*)&main::w -volatile word main::w loadstore zp[2]:8 20.0 -void print(void* print::ptr) -void* print::ptr -void* print::ptr#3 ptr zp[2]:2 +__loadstore volatile char main::b // zp[1]:10 20.0 +__loadstore volatile unsigned long main::d // zp[4]:4 20.0 +__constant void *main::vb = (void *)&main::b +__constant void *main::vd = (void *)&main::d +__constant void *main::vw = (void *)&main::w +__loadstore volatile unsigned int main::w // zp[2]:8 20.0 +void print(void *ptr) +void *print::ptr +void *print::ptr#3 // ptr zp[2]:2 zp[2]:2 [ print::ptr#3 ] reg byte x [ idx#13 idx#14 ] @@ -479,11 +479,11 @@ main: { rts } // print -// print(void* zp(2) ptr) +// void print(__zp(2) void *ptr) print: { .label ptr = 2 // SCREEN[idx++] = *((byte*)ptr) - // [10] SCREEN[idx#13] = *((byte*)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 + // [10] SCREEN[idx#13] = *((char *)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 ldy #0 lda (ptr),y sta SCREEN,x diff --git a/src/test/ref/pointer-void-1.sym b/src/test/ref/pointer-void-1.sym index 0235201b0..0d5c7e8c9 100644 --- a/src/test/ref/pointer-void-1.sym +++ b/src/test/ref/pointer-void-1.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#13 reg byte x 13.0 -byte idx#14 reg byte x 2.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#13 // reg byte x 13.0 +char idx#14 // reg byte x 2.5 void main() -volatile byte main::b loadstore zp[1]:10 20.0 -volatile dword main::d loadstore zp[4]:4 20.0 -constant void* main::vb = (void*)&main::b -constant void* main::vd = (void*)&main::d -constant void* main::vw = (void*)&main::w -volatile word main::w loadstore zp[2]:8 20.0 -void print(void* print::ptr) -void* print::ptr -void* print::ptr#3 ptr zp[2]:2 +__loadstore volatile char main::b // zp[1]:10 20.0 +__loadstore volatile unsigned long main::d // zp[4]:4 20.0 +__constant void *main::vb = (void *)&main::b +__constant void *main::vd = (void *)&main::d +__constant void *main::vw = (void *)&main::w +__loadstore volatile unsigned int main::w // zp[2]:8 20.0 +void print(void *ptr) +void *print::ptr +void *print::ptr#3 // ptr zp[2]:2 zp[2]:2 [ print::ptr#3 ] reg byte x [ idx#13 idx#14 ] diff --git a/src/test/ref/pointer-void-2.asm b/src/test/ref/pointer-void-2.asm index 1c93b8cc1..a145fe714 100644 --- a/src/test/ref/pointer-void-2.asm +++ b/src/test/ref/pointer-void-2.asm @@ -52,7 +52,7 @@ main: { // } rts } -// print(void* zp(2) ptr) +// void print(__zp(2) void *ptr) print: { .label ptr = 2 // SCREEN[idx++] = *((byte*)ptr) diff --git a/src/test/ref/pointer-void-2.cfg b/src/test/ref/pointer-void-2.cfg index 524439ed9..71a5233fb 100644 --- a/src/test/ref/pointer-void-2.cfg +++ b/src/test/ref/pointer-void-2.cfg @@ -4,25 +4,25 @@ main: scope:[main] from [0] main::d = $12345678 [1] main::w = $1234 [2] main::b = $12 - [3] call print + [3] call print to:main::@1 main::@1: scope:[main] from main [4] phi() - [5] call print + [5] call print to:main::@2 main::@2: scope:[main] from main::@1 [6] phi() - [7] call print + [7] call print to:main::@return main::@return: scope:[main] from main::@2 [8] return to:@return -void print(void* print::ptr) +void print(void *ptr) print: scope:[print] from main main::@1 main::@2 [9] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) - [9] print::ptr#3 = phi( main/(void*)&main::b, main::@1/(void*)&main::w, main::@2/(void*)&main::d ) - [10] SCREEN[idx#13] = *((byte*)print::ptr#3) + [9] print::ptr#3 = phi( main/(void *)&main::b, main::@1/(void *)&main::w, main::@2/(void *)&main::d ) + [10] SCREEN[idx#13] = *((char *)print::ptr#3) [11] idx#14 = ++ idx#13 to:print::@return print::@return: scope:[print] from print diff --git a/src/test/ref/pointer-void-2.log b/src/test/ref/pointer-void-2.log index e24b6e975..5377dbdd4 100644 --- a/src/test/ref/pointer-void-2.log +++ b/src/test/ref/pointer-void-2.log @@ -1,6 +1,6 @@ -Setting inferred volatile on symbol affected by address-of main::$0 = call print((void*)&main::b) -Setting inferred volatile on symbol affected by address-of main::$1 = call print((void*)&main::w) -Setting inferred volatile on symbol affected by address-of main::$2 = call print((void*)&main::d) +Setting inferred volatile on symbol affected by address-of main::$0 = call print((void *)&main::b) +Setting inferred volatile on symbol affected by address-of main::$1 = call print((void *)&main::w) +Setting inferred volatile on symbol affected by address-of main::$2 = call print((void *)&main::d) Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,19 +11,19 @@ main: scope:[main] from __start::@1 main::d = $12345678 main::w = $1234 main::b = $12 - print::ptr#0 = (void*)&main::b + print::ptr#0 = (void *)&main::b call print to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) idx#0 = idx#9 - print::ptr#1 = (void*)&main::w + print::ptr#1 = (void *)&main::w call print to:main::@2 main::@2: scope:[main] from main::@1 idx#10 = phi( main::@1/idx#5 ) idx#1 = idx#10 - print::ptr#2 = (void*)&main::d + print::ptr#2 = (void *)&main::d call print to:main::@3 main::@3: scope:[main] from main::@2 @@ -36,11 +36,11 @@ main::@return: scope:[main] from main::@3 return to:@return -void print(void* print::ptr) +void print(void *ptr) print: scope:[print] from main main::@1 main::@2 idx#13 = phi( main/idx#17, main::@1/idx#0, main::@2/idx#1 ) print::ptr#3 = phi( main/print::ptr#0, main::@1/print::ptr#1, main::@2/print::ptr#2 ) - SCREEN[idx#13] = *((byte*)print::ptr#3) + SCREEN[idx#13] = *((char *)print::ptr#3) idx#4 = ++ idx#13 to:print::@return print::@return: scope:[print] from print @@ -70,40 +70,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -volatile byte main::b loadstore -volatile dword main::d loadstore -volatile word main::w loadstore -void print(void* print::ptr) -void* print::ptr -void* print::ptr#0 -void* print::ptr#1 -void* print::ptr#2 -void* print::ptr#3 +__loadstore volatile char main::b +__loadstore volatile unsigned long main::d +__loadstore volatile unsigned int main::w +void print(void *ptr) +void *print::ptr +void *print::ptr#0 +void *print::ptr#1 +void *print::ptr#2 +void *print::ptr#3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#9 Alias idx#1 = idx#10 @@ -118,9 +118,9 @@ Identical Phi Values idx#1 idx#14 Identical Phi Values idx#11 idx#14 Identical Phi Values idx#15 idx#11 Successful SSA optimization Pass2IdenticalPhiElimination -Constant print::ptr#0 = (void*)&main::b -Constant print::ptr#1 = (void*)&main::w -Constant print::ptr#2 = (void*)&main::d +Constant print::ptr#0 = (void *)&main::b +Constant print::ptr#1 = (void *)&main::w +Constant print::ptr#2 = (void *)&main::d Constant idx#18 = 0 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start @@ -135,9 +135,9 @@ Inlining constant with var siblings print::ptr#1 Inlining constant with var siblings print::ptr#2 Inlining constant with var siblings idx#18 Constant inlined idx#18 = 0 -Constant inlined print::ptr#2 = (void*)&main::d -Constant inlined print::ptr#0 = (void*)&main::b -Constant inlined print::ptr#1 = (void*)&main::w +Constant inlined print::ptr#2 = (void *)&main::d +Constant inlined print::ptr#0 = (void *)&main::b +Constant inlined print::ptr#1 = (void *)&main::w Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main::@3 CALL GRAPH @@ -172,11 +172,11 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -void print(void* print::ptr) +void print(void *ptr) print: scope:[print] from main main::@1 main::@2 [9] idx#13 = phi( main/0, main::@1/idx#14, main::@2/idx#14 ) - [9] print::ptr#3 = phi( main/(void*)&main::b, main::@1/(void*)&main::w, main::@2/(void*)&main::d ) - [10] SCREEN[idx#13] = *((byte*)print::ptr#3) + [9] print::ptr#3 = phi( main/(void *)&main::b, main::@1/(void *)&main::w, main::@2/(void *)&main::d ) + [10] SCREEN[idx#13] = *((char *)print::ptr#3) [11] idx#14 = ++ idx#13 to:print::@return print::@return: scope:[print] from print @@ -185,16 +185,16 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#13 13.0 -byte idx#14 2.5 +char idx +char idx#13 // 13.0 +char idx#14 // 2.5 void main() -volatile byte main::b loadstore 20.0 -volatile dword main::d loadstore 20.0 -volatile word main::w loadstore 20.0 -void print(void* print::ptr) -void* print::ptr -void* print::ptr#3 +__loadstore volatile char main::b // 20.0 +__loadstore volatile unsigned long main::d // 20.0 +__loadstore volatile unsigned int main::w // 20.0 +void print(void *ptr) +void *print::ptr +void *print::ptr#3 Initial phi equivalence classes [ print::ptr#3 ] @@ -217,13 +217,13 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] main::d = $12345678 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] main::w = $1234 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::b = $12 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] SCREEN[idx#13] = *((byte*)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y +Statement [10] SCREEN[idx#13] = *((char *)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#13 idx#14 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ idx#13 idx#14 ] Statement [0] main::d = $12345678 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] main::w = $1234 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::b = $12 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] SCREEN[idx#13] = *((byte*)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y +Statement [10] SCREEN[idx#13] = *((char *)print::ptr#3) [ idx#13 ] ( print:3 [ idx#13 ] { } print:5 [ idx#13 ] { { idx#13 = idx#14 } } print:7 [ idx#13 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ print::ptr#3 ] : zp[2]:2 , Potential registers zp[1]:4 [ idx#13 idx#14 ] : zp[1]:4 , reg byte x , Potential registers zp[4]:5 [ main::d ] : zp[4]:5 , @@ -286,7 +286,7 @@ main: { print_from_main: // [9] phi idx#13 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 - // [9] phi print::ptr#3 = (void*)&main::b [phi:main->print#1] -- pvoz1=pvoc1 + // [9] phi print::ptr#3 = (void *)&main::b [phi:main->print#1] -- pvoz1=pvoc1 lda #b @@ -301,7 +301,7 @@ main: { // [9] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [9] phi idx#13 = idx#14 [phi:main::@1->print#0] -- register_copy - // [9] phi print::ptr#3 = (void*)&main::w [phi:main::@1->print#1] -- pvoz1=pvoc1 + // [9] phi print::ptr#3 = (void *)&main::w [phi:main::@1->print#1] -- pvoz1=pvoc1 lda #w @@ -316,7 +316,7 @@ main: { // [9] phi from main::@2 to print [phi:main::@2->print] print_from___b2: // [9] phi idx#13 = idx#14 [phi:main::@2->print#0] -- register_copy - // [9] phi print::ptr#3 = (void*)&main::d [phi:main::@2->print#1] -- pvoz1=pvoc1 + // [9] phi print::ptr#3 = (void *)&main::d [phi:main::@2->print#1] -- pvoz1=pvoc1 lda #d @@ -329,10 +329,10 @@ main: { rts } // print -// print(void* zp(2) ptr) +// void print(__zp(2) void *ptr) print: { .label ptr = 2 - // [10] SCREEN[idx#13] = *((byte*)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 + // [10] SCREEN[idx#13] = *((char *)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 ldy #0 lda (ptr),y sta SCREEN,x @@ -365,17 +365,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#13 reg byte x 13.0 -byte idx#14 reg byte x 2.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#13 // reg byte x 13.0 +char idx#14 // reg byte x 2.5 void main() -volatile byte main::b loadstore zp[1]:10 20.0 -volatile dword main::d loadstore zp[4]:4 20.0 -volatile word main::w loadstore zp[2]:8 20.0 -void print(void* print::ptr) -void* print::ptr -void* print::ptr#3 ptr zp[2]:2 +__loadstore volatile char main::b // zp[1]:10 20.0 +__loadstore volatile unsigned long main::d // zp[4]:4 20.0 +__loadstore volatile unsigned int main::w // zp[2]:8 20.0 +void print(void *ptr) +void *print::ptr +void *print::ptr#3 // ptr zp[2]:2 zp[2]:2 [ print::ptr#3 ] reg byte x [ idx#13 idx#14 ] @@ -431,7 +431,7 @@ main: { // [9] phi from main to print [phi:main->print] // [9] phi idx#13 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 - // [9] phi print::ptr#3 = (void*)&main::b [phi:main->print#1] -- pvoz1=pvoc1 + // [9] phi print::ptr#3 = (void *)&main::b [phi:main->print#1] -- pvoz1=pvoc1 lda #b @@ -443,7 +443,7 @@ main: { // [5] call print // [9] phi from main::@1 to print [phi:main::@1->print] // [9] phi idx#13 = idx#14 [phi:main::@1->print#0] -- register_copy - // [9] phi print::ptr#3 = (void*)&main::w [phi:main::@1->print#1] -- pvoz1=pvoc1 + // [9] phi print::ptr#3 = (void *)&main::w [phi:main::@1->print#1] -- pvoz1=pvoc1 lda #w @@ -455,7 +455,7 @@ main: { // [7] call print // [9] phi from main::@2 to print [phi:main::@2->print] // [9] phi idx#13 = idx#14 [phi:main::@2->print#0] -- register_copy - // [9] phi print::ptr#3 = (void*)&main::d [phi:main::@2->print#1] -- pvoz1=pvoc1 + // [9] phi print::ptr#3 = (void *)&main::d [phi:main::@2->print#1] -- pvoz1=pvoc1 lda #d @@ -467,11 +467,11 @@ main: { rts } // print -// print(void* zp(2) ptr) +// void print(__zp(2) void *ptr) print: { .label ptr = 2 // SCREEN[idx++] = *((byte*)ptr) - // [10] SCREEN[idx#13] = *((byte*)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 + // [10] SCREEN[idx#13] = *((char *)print::ptr#3) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 ldy #0 lda (ptr),y sta SCREEN,x diff --git a/src/test/ref/pointer-void-2.sym b/src/test/ref/pointer-void-2.sym index ed126e446..9643d826a 100644 --- a/src/test/ref/pointer-void-2.sym +++ b/src/test/ref/pointer-void-2.sym @@ -1,14 +1,14 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#13 reg byte x 13.0 -byte idx#14 reg byte x 2.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#13 // reg byte x 13.0 +char idx#14 // reg byte x 2.5 void main() -volatile byte main::b loadstore zp[1]:10 20.0 -volatile dword main::d loadstore zp[4]:4 20.0 -volatile word main::w loadstore zp[2]:8 20.0 -void print(void* print::ptr) -void* print::ptr -void* print::ptr#3 ptr zp[2]:2 +__loadstore volatile char main::b // zp[1]:10 20.0 +__loadstore volatile unsigned long main::d // zp[4]:4 20.0 +__loadstore volatile unsigned int main::w // zp[2]:8 20.0 +void print(void *ptr) +void *print::ptr +void *print::ptr#3 // ptr zp[2]:2 zp[2]:2 [ print::ptr#3 ] reg byte x [ idx#13 idx#14 ] diff --git a/src/test/ref/pointer-void-3.cfg b/src/test/ref/pointer-void-3.cfg index 70b8f8069..60288d4cc 100644 --- a/src/test/ref/pointer-void-3.cfg +++ b/src/test/ref/pointer-void-3.cfg @@ -2,16 +2,16 @@ void main() main: scope:[main] from [0] phi() - [1] call malloc + [1] call malloc [2] malloc::return#0 = malloc::return#2 to:main::@1 main::@1: scope:[main] from main - [3] main::buf1#0 = (byte*)malloc::return#0 - [4] call malloc + [3] main::buf1#0 = (char *)malloc::return#0 + [4] call malloc [5] malloc::return#1 = malloc::return#2 to:main::@2 main::@2: scope:[main] from main::@1 - [6] main::buf2#0 = (byte*)malloc::return#1 + [6] main::buf2#0 = (char *)malloc::return#1 [7] *main::buf1#0 = 'a' [8] *main::buf2#0 = 'b' [9] *SCREEN = *main::buf1#0 @@ -21,11 +21,11 @@ main::@return: scope:[main] from main::@2 [11] return to:@return -void* malloc() +void * malloc() malloc: scope:[malloc] from main main::@1 - [12] heap_head#11 = phi( main/(byte*) 49152, main::@1/heap_head#12 ) + [12] heap_head#11 = phi( main/(char *) 49152, main::@1/heap_head#12 ) [13] heap_head#12 = ++ heap_head#11 - [14] malloc::return#2 = (void*)heap_head#12 + [14] malloc::return#2 = (void *)heap_head#12 to:malloc::@return malloc::@return: scope:[malloc] from malloc [15] return diff --git a/src/test/ref/pointer-void-3.log b/src/test/ref/pointer-void-3.log index 99388dca3..bd2ce96e9 100644 --- a/src/test/ref/pointer-void-3.log +++ b/src/test/ref/pointer-void-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 @@ -7,22 +7,22 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 heap_head#15 = phi( __start::@1/heap_head#16 ) - call malloc + call malloc malloc::return#0 = malloc::return#3 to:main::@1 main::@1: scope:[main] from main heap_head#8 = phi( main/heap_head#4 ) malloc::return#4 = phi( main/malloc::return#0 ) - main::buf1#0 = ((byte*)) malloc::return#4 + main::buf1#0 = ((char *)) malloc::return#4 heap_head#0 = heap_head#8 - call malloc + call malloc malloc::return#1 = malloc::return#3 to:main::@2 main::@2: scope:[main] from main::@1 main::buf1#1 = phi( main::@1/main::buf1#0 ) heap_head#9 = phi( main::@1/heap_head#4 ) malloc::return#5 = phi( main::@1/malloc::return#1 ) - main::buf2#0 = ((byte*)) malloc::return#5 + main::buf2#0 = ((char *)) malloc::return#5 heap_head#1 = heap_head#9 *main::buf1#1 = 'a' *main::buf2#0 = 'b' @@ -35,11 +35,11 @@ main::@return: scope:[main] from main::@2 return to:@return -void* malloc() +void * malloc() malloc: scope:[malloc] from main main::@1 heap_head#11 = phi( main/heap_head#15, main::@1/heap_head#0 ) heap_head#3 = ++ heap_head#11 - malloc::return#2 = ((void*)) heap_head#3 + malloc::return#2 = ((void *)) heap_head#3 to:malloc::@return malloc::@return: scope:[malloc] from malloc heap_head#12 = phi( malloc/heap_head#3 ) @@ -53,11 +53,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - heap_head#5 = (byte*)$c000 + heap_head#5 = (char *)$c000 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 heap_head#16 = phi( __start::__init1/heap_head#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 heap_head#13 = phi( __start::@1/heap_head#2 ) @@ -70,56 +70,56 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte* heap_head -byte* heap_head#0 -byte* heap_head#1 -byte* heap_head#10 -byte* heap_head#11 -byte* heap_head#12 -byte* heap_head#13 -byte* heap_head#14 -byte* heap_head#15 -byte* heap_head#16 -byte* heap_head#2 -byte* heap_head#3 -byte* heap_head#4 -byte* heap_head#5 -byte* heap_head#6 -byte* heap_head#7 -byte* heap_head#8 -byte* heap_head#9 +char *heap_head +char *heap_head#0 +char *heap_head#1 +char *heap_head#10 +char *heap_head#11 +char *heap_head#12 +char *heap_head#13 +char *heap_head#14 +char *heap_head#15 +char *heap_head#16 +char *heap_head#2 +char *heap_head#3 +char *heap_head#4 +char *heap_head#5 +char *heap_head#6 +char *heap_head#7 +char *heap_head#8 +char *heap_head#9 void main() -byte* main::buf1 -byte* main::buf1#0 -byte* main::buf1#1 -byte* main::buf2 -byte* main::buf2#0 -void* malloc() -void* malloc::return -void* malloc::return#0 -void* malloc::return#1 -void* malloc::return#2 -void* malloc::return#3 -void* malloc::return#4 -void* malloc::return#5 -void* malloc::return#6 +char *main::buf1 +char *main::buf1#0 +char *main::buf1#1 +char *main::buf2 +char *main::buf2#0 +void * malloc() +void *malloc::return +void *malloc::return#0 +void *malloc::return#1 +void *malloc::return#2 +void *malloc::return#3 +void *malloc::return#4 +void *malloc::return#5 +void *malloc::return#6 Adding number conversion cast (unumber) 0 in SCREEN[0] = *main::buf1#1 Adding number conversion cast (unumber) 1 in SCREEN[1] = *main::buf2#0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast main::buf1#0 = (byte*)malloc::return#4 -Inlining cast main::buf2#0 = (byte*)malloc::return#5 -Inlining cast malloc::return#2 = (void*)heap_head#3 +Inlining cast main::buf1#0 = (char *)malloc::return#4 +Inlining cast main::buf2#0 = (char *)malloc::return#5 +Inlining cast malloc::return#2 = (void *)heap_head#3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 49152 +Simplifying constant pointer cast (char *) 49152 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias malloc::return#0 = malloc::return#4 Alias heap_head#0 = heap_head#8 @@ -136,7 +136,7 @@ Identical Phi Values heap_head#0 heap_head#12 Identical Phi Values heap_head#1 heap_head#12 Identical Phi Values heap_head#13 heap_head#1 Successful SSA optimization Pass2IdenticalPhiElimination -Constant heap_head#16 = (byte*) 49152 +Constant heap_head#16 = (char *) 49152 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [11] SCREEN[0] = *main::buf1#0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -148,7 +148,7 @@ Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings heap_head#16 -Constant inlined heap_head#16 = (byte*) 49152 +Constant inlined heap_head#16 = (char *) 49152 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination @@ -166,16 +166,16 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call malloc + [1] call malloc [2] malloc::return#0 = malloc::return#2 to:main::@1 main::@1: scope:[main] from main - [3] main::buf1#0 = (byte*)malloc::return#0 - [4] call malloc + [3] main::buf1#0 = (char *)malloc::return#0 + [4] call malloc [5] malloc::return#1 = malloc::return#2 to:main::@2 main::@2: scope:[main] from main::@1 - [6] main::buf2#0 = (byte*)malloc::return#1 + [6] main::buf2#0 = (char *)malloc::return#1 [7] *main::buf1#0 = 'a' [8] *main::buf2#0 = 'b' [9] *SCREEN = *main::buf1#0 @@ -185,11 +185,11 @@ main::@return: scope:[main] from main::@2 [11] return to:@return -void* malloc() +void * malloc() malloc: scope:[malloc] from main main::@1 - [12] heap_head#11 = phi( main/(byte*) 49152, main::@1/heap_head#12 ) + [12] heap_head#11 = phi( main/(char *) 49152, main::@1/heap_head#12 ) [13] heap_head#12 = ++ heap_head#11 - [14] malloc::return#2 = (void*)heap_head#12 + [14] malloc::return#2 = (void *)heap_head#12 to:malloc::@return malloc::@return: scope:[malloc] from malloc [15] return @@ -197,19 +197,19 @@ malloc::@return: scope:[malloc] from malloc VARIABLE REGISTER WEIGHTS -byte* heap_head -byte* heap_head#11 13.0 -byte* heap_head#12 2.1666666666666665 +char *heap_head +char *heap_head#11 // 13.0 +char *heap_head#12 // 2.1666666666666665 void main() -byte* main::buf1 -byte* main::buf1#0 1.0 -byte* main::buf2 -byte* main::buf2#0 1.5 -void* malloc() -void* malloc::return -void* malloc::return#0 2.0 -void* malloc::return#1 2.0 -void* malloc::return#2 3.75 +char *main::buf1 +char *main::buf1#0 // 1.0 +char *main::buf2 +char *main::buf2#0 // 1.5 +void * malloc() +void *malloc::return +void *malloc::return#0 // 2.0 +void *malloc::return#1 // 2.0 +void *malloc::return#2 // 3.75 Initial phi equivalence classes [ heap_head#11 heap_head#12 ] @@ -233,14 +233,14 @@ Allocated zp[2]:10 [ main::buf2#0 ] Allocated zp[2]:12 [ malloc::return#2 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] malloc::return#0 = malloc::return#2 [ malloc::return#0 heap_head#12 ] ( [ malloc::return#0 heap_head#12 ] { { malloc::return#0 = malloc::return#2 } } ) always clobbers reg byte a -Statement [3] main::buf1#0 = (byte*)malloc::return#0 [ main::buf1#0 heap_head#12 ] ( [ main::buf1#0 heap_head#12 ] { { heap_head#11 = heap_head#12 } { malloc::return#1 = malloc::return#2 } } ) always clobbers reg byte a +Statement [3] main::buf1#0 = (char *)malloc::return#0 [ main::buf1#0 heap_head#12 ] ( [ main::buf1#0 heap_head#12 ] { { heap_head#11 = heap_head#12 } { malloc::return#1 = malloc::return#2 } } ) always clobbers reg byte a Statement [5] malloc::return#1 = malloc::return#2 [ main::buf1#0 malloc::return#1 ] ( [ main::buf1#0 malloc::return#1 ] { { heap_head#11 = heap_head#12 } { malloc::return#1 = malloc::return#2 } } ) always clobbers reg byte a -Statement [6] main::buf2#0 = (byte*)malloc::return#1 [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a +Statement [6] main::buf2#0 = (char *)malloc::return#1 [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a Statement [7] *main::buf1#0 = 'a' [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a reg byte y Statement [8] *main::buf2#0 = 'b' [ main::buf1#0 main::buf2#0 ] ( [ main::buf1#0 main::buf2#0 ] { } ) always clobbers reg byte a reg byte y Statement [9] *SCREEN = *main::buf1#0 [ main::buf2#0 ] ( [ main::buf2#0 ] { } ) always clobbers reg byte a reg byte y Statement [10] *(SCREEN+1) = *main::buf2#0 [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [14] malloc::return#2 = (void*)heap_head#12 [ malloc::return#2 heap_head#12 ] ( malloc:1 [ malloc::return#2 heap_head#12 ] { { malloc::return#0 = malloc::return#2 } } malloc:4 [ main::buf1#0 malloc::return#2 heap_head#12 ] { { heap_head#11 = heap_head#12 } { malloc::return#1 = malloc::return#2 } } ) always clobbers reg byte a +Statement [14] malloc::return#2 = (void *)heap_head#12 [ malloc::return#2 heap_head#12 ] ( malloc:1 [ malloc::return#2 heap_head#12 ] { { malloc::return#0 = malloc::return#2 } } malloc:4 [ main::buf1#0 malloc::return#2 heap_head#12 ] { { heap_head#11 = heap_head#12 } { malloc::return#1 = malloc::return#2 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ heap_head#11 heap_head#12 ] : zp[2]:2 , Potential registers zp[2]:4 [ malloc::return#0 ] : zp[2]:4 , Potential registers zp[2]:6 [ main::buf1#0 ] : zp[2]:6 , @@ -281,10 +281,10 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label buf1 = 4 .label buf2 = 6 - // [1] call malloc + // [1] call malloc // [12] phi from main to malloc [phi:main->malloc] malloc_from_main: - // [12] phi heap_head#11 = (byte*) 49152 [phi:main->malloc#0] -- pbuz1=pbuc1 + // [12] phi heap_head#11 = (char *) 49152 [phi:main->malloc#0] -- pbuz1=pbuc1 lda #<$c000 sta.z heap_head lda #>$c000 @@ -298,8 +298,8 @@ main: { jmp __b1 // main::@1 __b1: - // [3] main::buf1#0 = (byte*)malloc::return#0 - // [4] call malloc + // [3] main::buf1#0 = (char *)malloc::return#0 + // [4] call malloc // [12] phi from main::@1 to malloc [phi:main::@1->malloc] malloc_from___b1: // [12] phi heap_head#11 = heap_head#12 [phi:main::@1->malloc#0] -- register_copy @@ -308,7 +308,7 @@ main: { jmp __b2 // main::@2 __b2: - // [6] main::buf2#0 = (byte*)malloc::return#1 + // [6] main::buf2#0 = (char *)malloc::return#1 // [7] *main::buf1#0 = 'a' -- _deref_pbuz1=vbuc1 lda #'a' ldy #0 @@ -340,7 +340,7 @@ malloc: { bne !+ inc.z heap_head+1 !: - // [14] malloc::return#2 = (void*)heap_head#12 -- pvoz1=pvoz2 + // [14] malloc::return#2 = (void *)heap_head#12 -- pvoz1=pvoz2 lda.z heap_head sta.z return_1 lda.z heap_head+1 @@ -373,20 +373,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte* heap_head -byte* heap_head#11 heap_head zp[2]:2 13.0 -byte* heap_head#12 heap_head zp[2]:2 2.1666666666666665 +__constant char * const SCREEN = (char *) 1024 +char *heap_head +char *heap_head#11 // heap_head zp[2]:2 13.0 +char *heap_head#12 // heap_head zp[2]:2 2.1666666666666665 void main() -byte* main::buf1 -byte* main::buf1#0 buf1 zp[2]:4 1.0 -byte* main::buf2 -byte* main::buf2#0 buf2 zp[2]:6 1.5 -void* malloc() -void* malloc::return -void* malloc::return#0 return zp[2]:4 2.0 -void* malloc::return#1 return_1 zp[2]:6 2.0 -void* malloc::return#2 return_1 zp[2]:6 3.75 +char *main::buf1 +char *main::buf1#0 // buf1 zp[2]:4 1.0 +char *main::buf2 +char *main::buf2#0 // buf2 zp[2]:6 1.5 +void * malloc() +void *malloc::return +void *malloc::return#0 // return zp[2]:4 2.0 +void *malloc::return#1 // return_1 zp[2]:6 2.0 +void *malloc::return#2 // return_1 zp[2]:6 3.75 zp[2]:2 [ heap_head#11 heap_head#12 ] zp[2]:4 [ malloc::return#0 main::buf1#0 ] @@ -416,9 +416,9 @@ main: { .label buf1 = 4 .label buf2 = 6 // byte* buf1 = malloc() - // [1] call malloc + // [1] call malloc // [12] phi from main to malloc [phi:main->malloc] - // [12] phi heap_head#11 = (byte*) 49152 [phi:main->malloc#0] -- pbuz1=pbuc1 + // [12] phi heap_head#11 = (char *) 49152 [phi:main->malloc#0] -- pbuz1=pbuc1 lda #<$c000 sta.z heap_head lda #>$c000 @@ -431,16 +431,16 @@ main: { lda.z malloc.return_1+1 sta.z malloc.return+1 // main::@1 - // [3] main::buf1#0 = (byte*)malloc::return#0 + // [3] main::buf1#0 = (char *)malloc::return#0 // byte* buf2 = malloc() - // [4] call malloc + // [4] call malloc // [12] phi from main::@1 to malloc [phi:main::@1->malloc] // [12] phi heap_head#11 = heap_head#12 [phi:main::@1->malloc#0] -- register_copy jsr malloc // byte* buf2 = malloc() // [5] malloc::return#1 = malloc::return#2 // main::@2 - // [6] main::buf2#0 = (byte*)malloc::return#1 + // [6] main::buf2#0 = (char *)malloc::return#1 // *buf1 = 'a' // [7] *main::buf1#0 = 'a' -- _deref_pbuz1=vbuc1 lda #'a' @@ -474,7 +474,7 @@ malloc: { inc.z heap_head+1 !: // return heap_head; - // [14] malloc::return#2 = (void*)heap_head#12 -- pvoz1=pvoz2 + // [14] malloc::return#2 = (void *)heap_head#12 -- pvoz1=pvoz2 lda.z heap_head sta.z return_1 lda.z heap_head+1 diff --git a/src/test/ref/pointer-void-3.sym b/src/test/ref/pointer-void-3.sym index 0f757e3ea..87a402796 100644 --- a/src/test/ref/pointer-void-3.sym +++ b/src/test/ref/pointer-void-3.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -byte* heap_head -byte* heap_head#11 heap_head zp[2]:2 13.0 -byte* heap_head#12 heap_head zp[2]:2 2.1666666666666665 +__constant char * const SCREEN = (char *) 1024 +char *heap_head +char *heap_head#11 // heap_head zp[2]:2 13.0 +char *heap_head#12 // heap_head zp[2]:2 2.1666666666666665 void main() -byte* main::buf1 -byte* main::buf1#0 buf1 zp[2]:4 1.0 -byte* main::buf2 -byte* main::buf2#0 buf2 zp[2]:6 1.5 -void* malloc() -void* malloc::return -void* malloc::return#0 return zp[2]:4 2.0 -void* malloc::return#1 return_1 zp[2]:6 2.0 -void* malloc::return#2 return_1 zp[2]:6 3.75 +char *main::buf1 +char *main::buf1#0 // buf1 zp[2]:4 1.0 +char *main::buf2 +char *main::buf2#0 // buf2 zp[2]:6 1.5 +void * malloc() +void *malloc::return +void *malloc::return#0 // return zp[2]:4 2.0 +void *malloc::return#1 // return_1 zp[2]:6 2.0 +void *malloc::return#2 // return_1 zp[2]:6 3.75 zp[2]:2 [ heap_head#11 heap_head#12 ] zp[2]:4 [ malloc::return#0 main::buf1#0 ] diff --git a/src/test/ref/post-increment-problem-2.asm b/src/test/ref/post-increment-problem-2.asm index ae0c41a7d..92fc7beff 100644 --- a/src/test/ref/post-increment-problem-2.asm +++ b/src/test/ref/post-increment-problem-2.asm @@ -24,6 +24,7 @@ main: { inx jmp __b1 } +// void incscreen(unsigned int ptr) incscreen: { // --(*(screen+ptr)); dec screen+main.offset diff --git a/src/test/ref/post-increment-problem-2.cfg b/src/test/ref/post-increment-problem-2.cfg index 623038f8b..7a56634aa 100644 --- a/src/test/ref/post-increment-problem-2.cfg +++ b/src/test/ref/post-increment-problem-2.cfg @@ -12,13 +12,13 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] phi() - [5] call incscreen + [5] call incscreen to:main::@3 main::@3: scope:[main] from main::@2 [6] main::x#1 = ++ main::x#2 to:main::@1 -void incscreen(word incscreen::ptr) +void incscreen(unsigned int ptr) incscreen: scope:[incscreen] from main::@2 [7] *(screen+main::offset) = -- *(screen+main::offset) [8] *(screen+main::offset+1) = -- *(screen+main::offset+1) diff --git a/src/test/ref/post-increment-problem-2.log b/src/test/ref/post-increment-problem-2.log index 36f3e68f7..0b912585f 100644 --- a/src/test/ref/post-increment-problem-2.log +++ b/src/test/ref/post-increment-problem-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 main::x#4 = phi( main::@1/main::x#2 ) incscreen::ptr#0 = main::offset - call incscreen + call incscreen to:main::@3 main::@3: scope:[main] from main::@2 main::x#3 = phi( main::@2/main::x#4 ) @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void incscreen(word incscreen::ptr) +void incscreen(unsigned int ptr) incscreen: scope:[incscreen] from main::@2 incscreen::ptr#1 = phi( main::@2/incscreen::ptr#0 ) incscreen::$0 = screen + incscreen::ptr#1 @@ -48,7 +48,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -58,39 +58,39 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -void incscreen(word incscreen::ptr) -byte*~ incscreen::$0 -byte*~ incscreen::$10 -byte*~ incscreen::$11 -byte*~ incscreen::$20 -byte*~ incscreen::$21 -byte*~ incscreen::$9 -word incscreen::ptr -word incscreen::ptr#0 -word incscreen::ptr#1 +void incscreen(unsigned int ptr) +char *incscreen::$0 +char *incscreen::$10 +char *incscreen::$11 +char *incscreen::$20 +char *incscreen::$21 +char *incscreen::$9 +unsigned int incscreen::ptr +unsigned int incscreen::ptr#0 +unsigned int incscreen::ptr#1 void main() -bool~ main::$0 -constant word main::offset = (word)$28*$a -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -constant byte* screen = (byte*)$400 +bool main::$0 +__constant unsigned int main::offset = (unsigned int)$28*$a +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) $fe in main::$0 = main::x#2 < $fe Adding number conversion cast (unumber) 1 in incscreen::$10 = incscreen::$9 + 1 Adding number conversion cast (unumber) 1 in incscreen::$21 = incscreen::$20 + 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $fe Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $fe -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $fe +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::x#2 = main::x#4 main::x#3 Successful SSA optimization Pass2AliasElimination @@ -136,8 +136,8 @@ Consolidated array index constant in *(screen+main::offset+1) Consolidated array index constant in *(screen+main::offset+1) Consolidated array index constant in *(screen+main::offset+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -165,13 +165,13 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] phi() - [5] call incscreen + [5] call incscreen to:main::@3 main::@3: scope:[main] from main::@2 [6] main::x#1 = ++ main::x#2 to:main::@1 -void incscreen(word incscreen::ptr) +void incscreen(unsigned int ptr) incscreen: scope:[incscreen] from main::@2 [7] *(screen+main::offset) = -- *(screen+main::offset) [8] *(screen+main::offset+1) = -- *(screen+main::offset+1) @@ -184,12 +184,12 @@ incscreen::@return: scope:[incscreen] from incscreen VARIABLE REGISTER WEIGHTS -void incscreen(word incscreen::ptr) -word incscreen::ptr +void incscreen(unsigned int ptr) +unsigned int incscreen::ptr void main() -byte main::x -byte main::x#1 22.0 -byte main::x#2 8.25 +char main::x +char main::x#1 // 22.0 +char main::x#2 // 8.25 Initial phi equivalence classes [ main::x#2 main::x#1 ] @@ -245,7 +245,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call incscreen + // [5] call incscreen jsr incscreen jmp __b3 // main::@3 @@ -258,6 +258,7 @@ main: { jmp __b1 } // incscreen +// void incscreen(unsigned int ptr) incscreen: { // [7] *(screen+main::offset) = -- *(screen+main::offset) -- _deref_pbuc1=_dec__deref_pbuc1 dec screen+main.offset @@ -293,14 +294,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void incscreen(word incscreen::ptr) -word incscreen::ptr +void incscreen(unsigned int ptr) +unsigned int incscreen::ptr void main() -constant word main::offset = (word)$28*$a -byte main::x -byte main::x#1 reg byte x 22.0 -byte main::x#2 reg byte x 8.25 -constant byte* screen = (byte*) 1024 +__constant unsigned int main::offset = (unsigned int)$28*$a +char main::x +char main::x#1 // reg byte x 22.0 +char main::x#2 // reg byte x 8.25 +__constant char *screen = (char *) 1024 reg byte x [ main::x#2 main::x#1 ] @@ -341,7 +342,7 @@ main: { // main::@2 __b2: // incscreen(offset) - // [5] call incscreen + // [5] call incscreen jsr incscreen // main::@3 // for (char x=0;x<254;x++) @@ -352,6 +353,7 @@ main: { jmp __b1 } // incscreen +// void incscreen(unsigned int ptr) incscreen: { // --(*(screen+ptr)); // [7] *(screen+main::offset) = -- *(screen+main::offset) -- _deref_pbuc1=_dec__deref_pbuc1 diff --git a/src/test/ref/post-increment-problem-2.sym b/src/test/ref/post-increment-problem-2.sym index 2e240861c..f323063bd 100644 --- a/src/test/ref/post-increment-problem-2.sym +++ b/src/test/ref/post-increment-problem-2.sym @@ -1,10 +1,10 @@ -void incscreen(word incscreen::ptr) -word incscreen::ptr +void incscreen(unsigned int ptr) +unsigned int incscreen::ptr void main() -constant word main::offset = (word)$28*$a -byte main::x -byte main::x#1 reg byte x 22.0 -byte main::x#2 reg byte x 8.25 -constant byte* screen = (byte*) 1024 +__constant unsigned int main::offset = (unsigned int)$28*$a +char main::x +char main::x#1 // reg byte x 22.0 +char main::x#2 // reg byte x 8.25 +__constant char *screen = (char *) 1024 reg byte x [ main::x#2 main::x#1 ] diff --git a/src/test/ref/post-increment-problem-3.cfg b/src/test/ref/post-increment-problem-3.cfg index a9a6974d9..812c82032 100644 --- a/src/test/ref/post-increment-problem-3.cfg +++ b/src/test/ref/post-increment-problem-3.cfg @@ -12,6 +12,6 @@ main::@return: scope:[main] from main::@1 [4] return to:@return main::@2: scope:[main] from main::@1 - [5] *((byte*) 1024) = main::n#1 + [5] *((char *) 1024) = main::n#1 [6] main::n#5 = main::n#1 to:main::@1 diff --git a/src/test/ref/post-increment-problem-3.log b/src/test/ref/post-increment-problem-3.log index 800fbec7c..2a288f4e5 100644 --- a/src/test/ref/post-increment-problem-3.log +++ b/src/test/ref/post-increment-problem-3.log @@ -16,7 +16,7 @@ main::@1: scope:[main] from main main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::n#3 = phi( main::@1/main::n#1 ) - *((byte*)$400) = main::n#3 + *((char *)$400) = main::n#3 to:main::@1 main::@return: scope:[main] from main::@1 return @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -35,24 +35,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -byte main::n -byte main::n#0 -byte main::n#1 -byte main::n#2 -byte main::n#3 -byte* main::ptr -byte* main::ptr#0 -byte* main::ptr#1 -constant const byte* mmap[] = { 2, $5c, $1a, 3, $60, $1a, 7 } +char main::$0 +bool main::$1 +char main::n +char main::n#0 +char main::n#1 +char main::n#2 +char main::n#3 +char *main::ptr +char *main::ptr#0 +char *main::ptr#1 +__constant const char mmap[] = { 2, $5c, $1a, 3, $60, $1a, 7 } Adding number conversion cast (unumber) 0 in main::$1 = 0 != main::$0 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::n#2 = main::$0 Alias main::n#1 = main::n#3 @@ -92,19 +92,19 @@ main::@return: scope:[main] from main::@1 [4] return to:@return main::@2: scope:[main] from main::@1 - [5] *((byte*) 1024) = main::n#1 + [5] *((char *) 1024) = main::n#1 [6] main::n#5 = main::n#1 to:main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::n -byte main::n#0 4.0 -byte main::n#1 11.0 -byte main::n#2 17.5 -byte main::n#5 22.0 -byte* main::ptr +char main::n +char main::n#0 // 4.0 +char main::n#1 // 11.0 +char main::n#2 // 17.5 +char main::n#5 // 22.0 +char *main::ptr Initial phi equivalence classes [ main::n#2 main::n#0 main::n#5 ] @@ -164,7 +164,7 @@ main: { rts // main::@2 __b2: - // [5] *((byte*) 1024) = main::n#1 -- _deref_pbuc1=vbuxx + // [5] *((char *) 1024) = main::n#1 -- _deref_pbuc1=vbuxx stx $400 // [6] main::n#5 = main::n#1 -- vbuaa=vbuxx txa @@ -187,13 +187,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::n -byte main::n#0 reg byte a 4.0 -byte main::n#1 reg byte x 11.0 -byte main::n#2 reg byte a 17.5 -byte main::n#5 reg byte a 22.0 -byte* main::ptr -constant const byte* mmap[] = { 2, $5c, $1a, 3, $60, $1a, 7 } +char main::n +char main::n#0 // reg byte a 4.0 +char main::n#1 // reg byte x 11.0 +char main::n#2 // reg byte a 17.5 +char main::n#5 // reg byte a 22.0 +char *main::ptr +__constant const char mmap[] = { 2, $5c, $1a, 3, $60, $1a, 7 } reg byte a [ main::n#2 main::n#0 main::n#5 ] reg byte x [ main::n#1 ] @@ -239,7 +239,7 @@ main: { // main::@2 __b2: // *((unsigned char *)0x400) = n - // [5] *((byte*) 1024) = main::n#1 -- _deref_pbuc1=vbuxx + // [5] *((char *) 1024) = main::n#1 -- _deref_pbuc1=vbuxx stx $400 // [6] main::n#5 = main::n#1 -- vbuaa=vbuxx txa diff --git a/src/test/ref/post-increment-problem-3.sym b/src/test/ref/post-increment-problem-3.sym index bd67ab1a8..fe9d64110 100644 --- a/src/test/ref/post-increment-problem-3.sym +++ b/src/test/ref/post-increment-problem-3.sym @@ -1,11 +1,11 @@ void main() -byte main::n -byte main::n#0 reg byte a 4.0 -byte main::n#1 reg byte x 11.0 -byte main::n#2 reg byte a 17.5 -byte main::n#5 reg byte a 22.0 -byte* main::ptr -constant const byte* mmap[] = { 2, $5c, $1a, 3, $60, $1a, 7 } +char main::n +char main::n#0 // reg byte a 4.0 +char main::n#1 // reg byte x 11.0 +char main::n#2 // reg byte a 17.5 +char main::n#5 // reg byte a 22.0 +char *main::ptr +__constant const char mmap[] = { 2, $5c, $1a, 3, $60, $1a, 7 } reg byte a [ main::n#2 main::n#0 main::n#5 ] reg byte x [ main::n#1 ] diff --git a/src/test/ref/post-increment-problem-4.log b/src/test/ref/post-increment-problem-4.log index 889d0167f..4de71b324 100644 --- a/src/test/ref/post-increment-problem-4.log +++ b/src/test/ref/post-increment-problem-4.log @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -38,33 +38,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* MESSAGE[] = "hello world!" -constant byte* const SCREEN = (byte*)$400 +__constant char MESSAGE[] = "hello world!" +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -bool~ main::$1 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte* main::s -byte* main::s#0 -byte* main::s#1 -byte* main::s#2 -byte* main::s#3 +char main::$0 +bool main::$1 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char *main::s +char *main::s#0 +char *main::s#1 +char *main::s#2 +char *main::s#3 Adding number conversion cast (unumber) 0 in main::$1 = 0 != main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::c#1 = main::$0 main::c#2 Alias main::i#2 = main::i#3 @@ -121,14 +121,14 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::c -byte main::c#1 11.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 6.6000000000000005 -byte* main::s -byte* main::s#1 5.5 -byte* main::s#2 16.5 +char main::c +char main::c#1 // 11.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 6.6000000000000005 +char *main::s +char *main::s#1 // 5.5 +char *main::s#2 // 16.5 Initial phi equivalence classes [ main::s#2 main::s#1 ] @@ -231,17 +231,17 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* MESSAGE[] = "hello world!" -constant byte* const SCREEN = (byte*) 1024 +__constant char MESSAGE[] = "hello world!" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::c -byte main::c#1 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 6.6000000000000005 -byte* main::s -byte* main::s#1 s zp[2]:2 5.5 -byte* main::s#2 s zp[2]:2 16.5 +char main::c +char main::c#1 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 6.6000000000000005 +char *main::s +char *main::s#1 // s zp[2]:2 5.5 +char *main::s#2 // s zp[2]:2 16.5 zp[2]:2 [ main::s#2 main::s#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/post-increment-problem-4.sym b/src/test/ref/post-increment-problem-4.sym index c40405c1a..eb84286d9 100644 --- a/src/test/ref/post-increment-problem-4.sym +++ b/src/test/ref/post-increment-problem-4.sym @@ -1,14 +1,14 @@ -constant byte* MESSAGE[] = "hello world!" -constant byte* const SCREEN = (byte*) 1024 +__constant char MESSAGE[] = "hello world!" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::c -byte main::c#1 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 6.6000000000000005 -byte* main::s -byte* main::s#1 s zp[2]:2 5.5 -byte* main::s#2 s zp[2]:2 16.5 +char main::c +char main::c#1 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 6.6000000000000005 +char *main::s +char *main::s#1 // s zp[2]:2 5.5 +char *main::s#2 // s zp[2]:2 16.5 zp[2]:2 [ main::s#2 main::s#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/post-increment-problem.log b/src/test/ref/post-increment-problem.log index a03e2e369..9c1bb62d5 100644 --- a/src/test/ref/post-increment-problem.log +++ b/src/test/ref/post-increment-problem.log @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,25 +45,25 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* MESSAGE[$14] = "camelot" -constant byte* const SCREEN = (byte*)$400 +__constant char MESSAGE[$14] = "camelot" +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte* main::msg -byte* main::msg#0 -byte* main::msg#1 -byte* main::msg#2 -byte* main::msg#3 -byte* main::msg#4 -byte* main::msg#5 +char main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char *main::msg +char *main::msg#0 +char *main::msg#1 +char *main::msg#2 +char *main::msg#3 +char *main::msg#4 +char *main::msg#5 Adding number conversion cast (unumber) 0 in main::$1 = 0 != main::$0 Adding number conversion cast (unumber) 0 in *main::msg#3 = 0 @@ -71,14 +71,14 @@ Adding number conversion cast (unumber) 0 in main::$2 = 0 != MESSAGE[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::msg#3 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::msg#1 = main::msg#5 Alias main::i#2 = main::i#3 @@ -99,7 +99,7 @@ Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::msg#0 = MESSAGE Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $14 +Finalized unsigned number type (char) $14 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@5(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -145,15 +145,15 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 11.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 -byte* main::msg -byte* main::msg#1 12.0 -byte* main::msg#2 3.0 -byte* main::msg#3 4.0 -byte* main::msg#4 16.5 +char main::$0 // 11.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 +char *main::msg +char *main::msg#1 // 12.0 +char *main::msg#2 // 3.0 +char *main::msg#3 // 4.0 +char *main::msg#4 // 16.5 Initial phi equivalence classes [ main::msg#4 main::msg#1 ] @@ -325,18 +325,18 @@ Succesful ASM optimization Pass5NextJumpElimination Replacing instruction ldx #0 with TAX FINAL SYMBOL TABLE -constant byte* MESSAGE[$14] = "camelot" -constant byte* const SCREEN = (byte*) 1024 +__constant char MESSAGE[$14] = "camelot" +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte* main::msg -byte* main::msg#1 msg zp[2]:2 12.0 -byte* main::msg#2 msg zp[2]:2 3.0 -byte* main::msg#3 msg zp[2]:2 4.0 -byte* main::msg#4 msg zp[2]:2 16.5 +char main::$0 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char *main::msg +char *main::msg#1 // msg zp[2]:2 12.0 +char *main::msg#2 // msg zp[2]:2 3.0 +char *main::msg#3 // msg zp[2]:2 4.0 +char *main::msg#4 // msg zp[2]:2 16.5 zp[2]:2 [ main::msg#4 main::msg#1 main::msg#2 main::msg#3 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/post-increment-problem.sym b/src/test/ref/post-increment-problem.sym index fa751a1cb..5ffa84baf 100644 --- a/src/test/ref/post-increment-problem.sym +++ b/src/test/ref/post-increment-problem.sym @@ -1,15 +1,15 @@ -constant byte* MESSAGE[$14] = "camelot" -constant byte* const SCREEN = (byte*) 1024 +__constant char MESSAGE[$14] = "camelot" +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 11.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -byte* main::msg -byte* main::msg#1 msg zp[2]:2 12.0 -byte* main::msg#2 msg zp[2]:2 3.0 -byte* main::msg#3 msg zp[2]:2 4.0 -byte* main::msg#4 msg zp[2]:2 16.5 +char main::$0 // reg byte a 11.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +char *main::msg +char *main::msg#1 // msg zp[2]:2 12.0 +char *main::msg#2 // msg zp[2]:2 3.0 +char *main::msg#3 // msg zp[2]:2 4.0 +char *main::msg#4 // msg zp[2]:2 16.5 zp[2]:2 [ main::msg#4 main::msg#1 main::msg#2 main::msg#3 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/pragma-noparenthesis.log b/src/test/ref/pragma-noparenthesis.log index 0e5be9f20..6a439aaa9 100644 --- a/src/test/ref/pragma-noparenthesis.log +++ b/src/test/ref/pragma-noparenthesis.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -22,12 +22,12 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - call init + call init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -36,7 +36,7 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void init() void main() @@ -44,12 +44,12 @@ void main() Adding number conversion cast (unumber) 1 in SCREEN[1] = 'b' Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [2] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -79,11 +79,11 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start [1] phi() - [2] call init + [2] call init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -150,14 +150,14 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [2] call init + // [2] call init jsr init // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main jsr main jmp __breturn // __start::@return @@ -207,7 +207,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() void init() void main() @@ -235,11 +235,11 @@ Score: 42 __start: { // [1] phi from __start to __start::__init1 [phi:__start->__start::__init1] // __start::__init1 - // [2] call init + // [2] call init jsr init // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main jsr main // __start::@return // [5] return diff --git a/src/test/ref/pragma-noparenthesis.sym b/src/test/ref/pragma-noparenthesis.sym index e8f01d4b9..d489c3a3d 100644 --- a/src/test/ref/pragma-noparenthesis.sym +++ b/src/test/ref/pragma-noparenthesis.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() void init() void main() diff --git a/src/test/ref/pragma-unknown.log b/src/test/ref/pragma-unknown.log index 91e92440a..f16e98f71 100644 --- a/src/test/ref/pragma-unknown.log +++ b/src/test/ref/pragma-unknown.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,11 +21,11 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -98,7 +98,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/pragma-unknown.sym b/src/test/ref/pragma-unknown.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/pragma-unknown.sym +++ b/src/test/ref/pragma-unknown.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/precedence-1.log b/src/test/ref/precedence-1.log index 071509f1f..5aa0b6a0b 100644 --- a/src/test/ref/precedence-1.log +++ b/src/test/ref/precedence-1.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,17 +22,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 1+2*3*4+5*6|7 in main::SCREEN[0] = 1+2*3*4+5*6|7 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = ((unumber)) 1+2*3*4+5*6|7 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::SCREEN[(unumber)0] = (unumber)1+2*3*4+5*6|7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::SCREEN[0] = (unumber)1+2*3*4+5*6|7 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -43,13 +43,13 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 1+2*3*4+5*6|7 Successful SSA optimization PassNCastSimplification @@ -120,7 +120,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/precedence-1.sym b/src/test/ref/precedence-1.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/precedence-1.sym +++ b/src/test/ref/precedence-1.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/preprocessor-0.log b/src/test/ref/preprocessor-0.log index 5466c0273..4d5b660c9 100644 --- a/src/test/ref/preprocessor-0.log +++ b/src/test/ref/preprocessor-0.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,11 +20,11 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -98,7 +98,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-0.sym b/src/test/ref/preprocessor-0.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/preprocessor-0.sym +++ b/src/test/ref/preprocessor-0.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-1.log b/src/test/ref/preprocessor-1.log index e070e74fa..92ea0a1b2 100644 --- a/src/test/ref/preprocessor-1.log +++ b/src/test/ref/preprocessor-1.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,11 +20,11 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -96,7 +96,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-1.sym b/src/test/ref/preprocessor-1.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/preprocessor-1.sym +++ b/src/test/ref/preprocessor-1.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-11.log b/src/test/ref/preprocessor-11.log index f12d23dc4..4e69b7741 100644 --- a/src/test/ref/preprocessor-11.log +++ b/src/test/ref/preprocessor-11.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,16 +20,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -105,7 +105,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-11.sym b/src/test/ref/preprocessor-11.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/preprocessor-11.sym +++ b/src/test/ref/preprocessor-11.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-12.log b/src/test/ref/preprocessor-12.log index 672e71be4..483b6e854 100644 --- a/src/test/ref/preprocessor-12.log +++ b/src/test/ref/preprocessor-12.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,16 +20,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -105,7 +105,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-12.sym b/src/test/ref/preprocessor-12.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/preprocessor-12.sym +++ b/src/test/ref/preprocessor-12.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-13.log b/src/test/ref/preprocessor-13.log index 1929224c1..d7cd35245 100644 --- a/src/test/ref/preprocessor-13.log +++ b/src/test/ref/preprocessor-13.log @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,10 +26,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -constant byte main::x = 7 +number main::$0 +number main::$1 +__constant char * const main::SCREEN = (char *)$400 +__constant char main::x = 7 Adding number conversion cast (unumber) 2*1 in main::SCREEN[0] = 2*1 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = ((unumber)) 2*1 @@ -43,19 +43,19 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::SCREEN[(unumber)0] = (unumber)2*1 Inlining cast main::SCREEN[(unumber)1] = (unumber)2*2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 2 * main::x -Inferred type updated to byte in main::$1 = main::x + main::$0 +Inferred type updated to char in main::$0 = 2 * main::x +Inferred type updated to char in main::$1 = main::x + main::$0 Constant right-side identified [0] main::SCREEN[0] = (unumber)2*1 Constant right-side identified [1] main::SCREEN[1] = (unumber)2*2 Constant right-side identified [2] main::$0 = 2 * main::x @@ -79,10 +79,10 @@ Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 2*1 Simplifying constant integer cast 2*2 @@ -172,8 +172,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::x = 7 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::x = 7 diff --git a/src/test/ref/preprocessor-13.sym b/src/test/ref/preprocessor-13.sym index 2e606c792..157a67967 100644 --- a/src/test/ref/preprocessor-13.sym +++ b/src/test/ref/preprocessor-13.sym @@ -1,4 +1,4 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant byte main::x = 7 +__constant char * const main::SCREEN = (char *) 1024 +__constant char main::x = 7 diff --git a/src/test/ref/preprocessor-14.log b/src/test/ref/preprocessor-14.log index dc0256e8d..e432083b6 100644 --- a/src/test/ref/preprocessor-14.log +++ b/src/test/ref/preprocessor-14.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,16 +22,16 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 1 in *main::SCREEN = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::SCREEN = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -106,7 +106,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/preprocessor-14.sym b/src/test/ref/preprocessor-14.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/preprocessor-14.sym +++ b/src/test/ref/preprocessor-14.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/preprocessor-17.log b/src/test/ref/preprocessor-17.log index cbfeeec27..0f6f95f73 100644 --- a/src/test/ref/preprocessor-17.log +++ b/src/test/ref/preprocessor-17.log @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,10 +25,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte main::CLEAR -byte main::CLEAR#0 -byte main::CLEAR#1 -constant byte* const main::SCREEN = (byte*)$400 +char main::CLEAR +char main::CLEAR#0 +char main::CLEAR#1 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::CLEAR#0 Adding number conversion cast (unumber) 0 in main::CLEAR#1 = 0 @@ -36,14 +36,14 @@ Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::CLEAR#1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::CLEAR#1 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::CLEAR#0 = $7f Constant main::CLEAR#1 = 0 @@ -81,7 +81,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::CLEAR +char main::CLEAR Initial phi equivalence classes Complete equivalence classes @@ -135,8 +135,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::CLEAR -constant byte* const main::SCREEN = (byte*) 1024 +char main::CLEAR +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/preprocessor-17.sym b/src/test/ref/preprocessor-17.sym index 8f20beac2..0c0917e5d 100644 --- a/src/test/ref/preprocessor-17.sym +++ b/src/test/ref/preprocessor-17.sym @@ -1,4 +1,4 @@ void main() -byte main::CLEAR -constant byte* const main::SCREEN = (byte*) 1024 +char main::CLEAR +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/preprocessor-2.log b/src/test/ref/preprocessor-2.log index b05c353b9..7f73a1881 100644 --- a/src/test/ref/preprocessor-2.log +++ b/src/test/ref/preprocessor-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -17,7 +17,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -26,20 +26,20 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -constant byte main::a = 'a' +__constant char main::a = 'a' Adding number conversion cast (unumber) 0 in SCREEN[0] = 'x' Adding number conversion cast (unumber) 1 in SCREEN[1] = main::a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'x' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -125,9 +125,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -constant byte main::a = 'a' +__constant char main::a = 'a' diff --git a/src/test/ref/preprocessor-2.sym b/src/test/ref/preprocessor-2.sym index 9584e23cd..1dc67b6d6 100644 --- a/src/test/ref/preprocessor-2.sym +++ b/src/test/ref/preprocessor-2.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -constant byte main::a = 'a' +__constant char main::a = 'a' diff --git a/src/test/ref/preprocessor-3.log b/src/test/ref/preprocessor-3.log index de182279a..43a2c0928 100644 --- a/src/test/ref/preprocessor-3.log +++ b/src/test/ref/preprocessor-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,16 +25,16 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = '*' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -114,7 +114,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-3.sym b/src/test/ref/preprocessor-3.sym index 2527e14d5..94fb47daa 100644 --- a/src/test/ref/preprocessor-3.sym +++ b/src/test/ref/preprocessor-3.sym @@ -1,3 +1,3 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/preprocessor-4.log b/src/test/ref/preprocessor-4.log index 153dbf85e..4b8198ba2 100644 --- a/src/test/ref/preprocessor-4.log +++ b/src/test/ref/preprocessor-4.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#11 = phi( __start::__init1/idx#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#9 = phi( __start::@1/idx#3 ) @@ -39,24 +39,24 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#2 = idx#8 idx#3 Alias idx#11 = idx#4 @@ -120,7 +120,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() Initial phi equivalence classes @@ -179,8 +179,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-4.sym b/src/test/ref/preprocessor-4.sym index 46c79a18c..93a99ad60 100644 --- a/src/test/ref/preprocessor-4.sym +++ b/src/test/ref/preprocessor-4.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-5.log b/src/test/ref/preprocessor-5.log index 7efc3ead8..4b7a0fec7 100644 --- a/src/test/ref/preprocessor-5.log +++ b/src/test/ref/preprocessor-5.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#12 = phi( __start::__init1/idx#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#10 = phi( __start::@1/idx#4 ) @@ -41,25 +41,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#3 = idx#9 idx#4 Alias idx#12 = idx#5 @@ -133,7 +133,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() Initial phi equivalence classes @@ -198,8 +198,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-5.sym b/src/test/ref/preprocessor-5.sym index 46c79a18c..93a99ad60 100644 --- a/src/test/ref/preprocessor-5.sym +++ b/src/test/ref/preprocessor-5.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-6.log b/src/test/ref/preprocessor-6.log index 3dc879754..ff5ce3078 100644 --- a/src/test/ref/preprocessor-6.log +++ b/src/test/ref/preprocessor-6.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -23,7 +23,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#9 = phi( __start::__init1/idx#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#7 = phi( __start::@1/idx#1 ) @@ -36,32 +36,32 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte A = 'a' -constant byte* SCREEN = (byte*)$400 +__constant char A = 'a' +__constant char *SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -number~ main::$0 +number main::$0 Adding number conversion cast (unumber) 1 in main::$0 = A + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = A + (unumber)1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = A + 1 +Inferred type updated to char in main::$0 = A + 1 Alias idx#0 = idx#6 idx#1 Alias idx#2 = idx#9 Alias idx#3 = idx#7 idx#8 idx#4 @@ -106,7 +106,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() Initial phi equivalence classes @@ -158,9 +158,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte A = 'a' -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char A = 'a' +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-6.sym b/src/test/ref/preprocessor-6.sym index 2f7b835ce..10edb6492 100644 --- a/src/test/ref/preprocessor-6.sym +++ b/src/test/ref/preprocessor-6.sym @@ -1,5 +1,5 @@ -constant byte A = 'a' -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char A = 'a' +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-7.log b/src/test/ref/preprocessor-7.log index 02b265396..28db99815 100644 --- a/src/test/ref/preprocessor-7.log +++ b/src/test/ref/preprocessor-7.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#9 = phi( __start::__init1/idx#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#7 = phi( __start::@1/idx#1 ) @@ -37,22 +37,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#6 idx#1 Alias idx#2 = idx#9 @@ -95,7 +95,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() Initial phi equivalence classes @@ -150,8 +150,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-7.sym b/src/test/ref/preprocessor-7.sym index 46c79a18c..93a99ad60 100644 --- a/src/test/ref/preprocessor-7.sym +++ b/src/test/ref/preprocessor-7.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-8.log b/src/test/ref/preprocessor-8.log index 65d62d36f..a53f6c494 100644 --- a/src/test/ref/preprocessor-8.log +++ b/src/test/ref/preprocessor-8.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#9 = phi( __start::__init1/idx#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#7 = phi( __start::@1/idx#1 ) @@ -37,22 +37,22 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#6 idx#1 Alias idx#2 = idx#9 @@ -95,7 +95,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() Initial phi equivalence classes @@ -150,8 +150,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-8.sym b/src/test/ref/preprocessor-8.sym index 46c79a18c..93a99ad60 100644 --- a/src/test/ref/preprocessor-8.sym +++ b/src/test/ref/preprocessor-8.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*) 1024 -byte idx +__constant char *SCREEN = (char *) 1024 +char idx void main() diff --git a/src/test/ref/preprocessor-9.log b/src/test/ref/preprocessor-9.log index e2c9881eb..9bd6fc307 100644 --- a/src/test/ref/preprocessor-9.log +++ b/src/test/ref/preprocessor-9.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -22,7 +22,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -31,25 +31,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 Adding number conversion cast (unumber) '0'+4 in SCREEN[main::idx#0] = '0'+4 Adding number conversion cast (unumber) 4 in SCREEN[main::idx#0] = ((unumber)) '0'+4 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast SCREEN[main::idx#0] = (unumber)'0'+(unumber)4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast '0'+(unumber)4 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::idx#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -107,7 +107,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes @@ -165,9 +165,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::idx +char main::idx diff --git a/src/test/ref/preprocessor-9.sym b/src/test/ref/preprocessor-9.sym index 8f1d3a566..979dbdddd 100644 --- a/src/test/ref/preprocessor-9.sym +++ b/src/test/ref/preprocessor-9.sym @@ -1,4 +1,4 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::idx +char main::idx diff --git a/src/test/ref/primes-1000-2.asm b/src/test/ref/primes-1000-2.asm index 14711dc96..05534cad2 100644 --- a/src/test/ref/primes-1000-2.asm +++ b/src/test/ref/primes-1000-2.asm @@ -9,7 +9,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label print_screen = $400 .label print_char_cursor = $f // The number currently being tested for whether it is a prime @@ -27,14 +27,14 @@ main: { .label __15 = $11 // PRIMES[1] = 2 lda #<2 - sta PRIMES+1*SIZEOF_WORD + sta PRIMES+1*SIZEOF_UNSIGNED_INT lda #>2 - sta PRIMES+1*SIZEOF_WORD+1 + sta PRIMES+1*SIZEOF_UNSIGNED_INT+1 // PRIMES[2] = 3 lda #<3 - sta PRIMES+2*SIZEOF_WORD + sta PRIMES+2*SIZEOF_UNSIGNED_INT lda #>3 - sta PRIMES+2*SIZEOF_WORD+1 + sta PRIMES+2*SIZEOF_UNSIGNED_INT+1 lda #print_screen @@ -155,7 +155,7 @@ main: { rts } // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a, byte register(A) b) +// __zp(7) unsigned int mul8u(__register(X) char a, __register(A) char b) mul8u: { .label mb = $11 .label res = 7 @@ -199,7 +199,7 @@ mul8u: { } // Divide unsigned 16-bit unsigned long dividend with a 8-bit unsigned char divisor // The 8-bit unsigned char remainder can be found in rem8u after the division -// div16u8u(word zp(5) dividend, byte zp(9) divisor) +// unsigned int div16u8u(__zp(5) unsigned int dividend, __zp(9) char divisor) div16u8u: { .label dividend = 5 .label divisor = 9 @@ -216,7 +216,7 @@ div16u8u: { rts } // Print a unsigned int as DECIMAL -// print_uint_decimal(word zp(5) w) +// void print_uint_decimal(__zp(5) unsigned int w) print_uint_decimal: { .label w = 5 // utoa(w, decimal_digits, DECIMAL) @@ -231,7 +231,7 @@ print_uint_decimal: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -248,7 +248,7 @@ print_char: { // Returns dividend/divisor. // The final remainder will be set into the global variable rem8u // Implemented using simple binary division -// divr8u(byte zp($a) dividend, byte zp(9) divisor, byte register(Y) rem) +// __zp($b) char divr8u(__zp($a) char dividend, __zp(9) char divisor, __register(Y) char rem) divr8u: { .label dividend = $a .label quotient = $b @@ -301,7 +301,7 @@ divr8u: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($11) value, byte* zp($d) buffer) +// void utoa(__zp($11) unsigned int value, __zp($d) char *buffer, char radix) utoa: { .const max_digits = 5 .label value = $11 @@ -373,7 +373,7 @@ utoa: { jmp __b4 } // Print a zero-terminated string -// print_str(byte* zp($d) str) +// void print_str(__zp($d) char *str) print_str: { .label str = $d lda #= utoa::digit_value#0 utoa::$7 = utoa::started#2 || utoa::$6 @@ -175,7 +175,7 @@ utoa::@11: scope:[utoa] from utoa::@10 utoa::@12: scope:[utoa] from utoa::@10 utoa::buffer#7 = phi( utoa::@10/utoa::buffer#11 ) utoa::value#3 = phi( utoa::@10/utoa::value#5 ) - utoa::$11 = (byte)utoa::value#3 + utoa::$11 = (char)utoa::value#3 *utoa::buffer#7 = DIGITS[utoa::$11] utoa::buffer#4 = ++ utoa::buffer#7 *utoa::buffer#4 = 0 @@ -199,7 +199,7 @@ utoa::@14: scope:[utoa] from utoa::@11 utoa_append::buffer#0 = utoa::buffer#8 utoa_append::value#0 = utoa::value#4 utoa_append::sub#0 = utoa::digit_value#1 - call utoa_append + call utoa_append utoa_append::return#0 = utoa_append::return#2 to:utoa::@15 utoa::@15: scope:[utoa] from utoa::@14 @@ -214,7 +214,7 @@ utoa::@15: scope:[utoa] from utoa::@14 utoa::started#1 = 1 to:utoa::@13 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@14 utoa_append::buffer#3 = phi( utoa::@14/utoa_append::buffer#0 ) utoa_append::sub#3 = phi( utoa::@14/utoa_append::sub#0 ) @@ -250,12 +250,12 @@ utoa_append::@return: scope:[utoa_append] from utoa_append::@3 return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@1 mul8u::a#5 = phi( main::@1/mul8u::a#1 ) mul8u::b#1 = phi( main::@1/mul8u::b#0 ) mul8u::res#0 = 0 - mul8u::mb#0 = (word)mul8u::b#1 + mul8u::mb#0 = (unsigned int)mul8u::b#1 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@4 mul8u::mb#5 = phi( mul8u/mul8u::mb#0, mul8u::@4/mul8u::mb#1 ) @@ -299,7 +299,7 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 return to:@return -byte divr8u(byte divr8u::dividend , byte divr8u::divisor , byte divr8u::rem) +char divr8u(char dividend , char divisor , char rem) divr8u: scope:[divr8u] from div16u8u div16u8u::@1 divr8u::divisor#6 = phi( div16u8u/divr8u::divisor#0, div16u8u::@1/divr8u::divisor#1 ) divr8u::dividend#5 = phi( div16u8u/divr8u::dividend#1, div16u8u::@1/divr8u::dividend#2 ) @@ -377,7 +377,7 @@ divr8u::@return: scope:[divr8u] from divr8u::@6 return to:@return -word div16u8u(word div16u8u::dividend , byte div16u8u::divisor) +unsigned int div16u8u(unsigned int dividend , char divisor) div16u8u: scope:[div16u8u] from main::@3 rem8u#18 = phi( main::@3/rem8u#19 ) div16u8u::divisor#1 = phi( main::@3/div16u8u::divisor#0 ) @@ -386,7 +386,7 @@ div16u8u: scope:[div16u8u] from main::@3 divr8u::dividend#1 = div16u8u::$0 divr8u::divisor#0 = div16u8u::divisor#1 divr8u::rem#3 = 0 - call divr8u + call divr8u divr8u::return#2 = divr8u::return#1 to:div16u8u::@1 div16u8u::@1: scope:[div16u8u] from div16u8u @@ -400,7 +400,7 @@ div16u8u::@1: scope:[div16u8u] from div16u8u divr8u::dividend#2 = div16u8u::$2 divr8u::divisor#1 = div16u8u::divisor#2 divr8u::rem#4 = rem8u#2 - call divr8u + call divr8u divr8u::return#3 = divr8u::return#1 to:div16u8u::@2 div16u8u::@2: scope:[div16u8u] from div16u8u::@1 @@ -424,9 +424,9 @@ void main() main: scope:[main] from __start::@1 print_char_cursor#38 = phi( __start::@1/print_char_cursor#27 ) rem8u#30 = phi( __start::@1/rem8u#21 ) - main::$10 = 1 * SIZEOF_WORD + main::$10 = 1 * SIZEOF_UNSIGNED_INT PRIMES[main::$10] = 2 - main::$11 = 2 * SIZEOF_WORD + main::$11 = 2 * SIZEOF_UNSIGNED_INT PRIMES[main::$11] = 3 potential#0 = 3 test_last#0 = 2 @@ -438,11 +438,11 @@ main::@1: scope:[main] from main main::@11 rem8u#29 = phi( main/rem8u#30, main::@11/rem8u#20 ) potential#15 = phi( main/potential#0, main::@11/potential#19 ) test_last#6 = phi( main/test_last#0, main::@11/test_last#12 ) - main::$12 = test_last#6 * SIZEOF_WORD - main::p#0 = (byte)PRIMES[main::$12] + main::$12 = test_last#6 * SIZEOF_UNSIGNED_INT + main::p#0 = (char)PRIMES[main::$12] mul8u::a#1 = main::p#0 mul8u::b#0 = main::p#0 - call mul8u + call mul8u mul8u::return#2 = mul8u::return#1 to:main::@8 main::@8: scope:[main] from main::@1 @@ -481,10 +481,10 @@ main::@3: scope:[main] from main::@2 main::@4 rem8u#19 = phi( main::@2/rem8u#22, main::@4/rem8u#23 ) potential#9 = phi( main::@2/potential#1, main::@4/potential#17 ) test_idx#7 = phi( main::@2/test_idx#0, main::@4/test_idx#9 ) - main::$13 = test_idx#7 * SIZEOF_WORD + main::$13 = test_idx#7 * SIZEOF_UNSIGNED_INT div16u8u::dividend#0 = potential#9 - div16u8u::divisor#0 = (byte)PRIMES[main::$13] - call div16u8u + div16u8u::divisor#0 = (char)PRIMES[main::$13] + call div16u8u div16u8u::return#2 = div16u8u::return#1 to:main::@9 main::@9: scope:[main] from main::@3 @@ -527,10 +527,10 @@ main::@6: scope:[main] from main::@4 potential#11 = phi( main::@4/potential#17 ) prime_idx#6 = phi( main::@4/prime_idx#11 ) prime_idx#1 = ++ prime_idx#6 - main::$14 = prime_idx#1 * SIZEOF_WORD + main::$14 = prime_idx#1 * SIZEOF_UNSIGNED_INT PRIMES[main::$14] = potential#11 print_uint_decimal::w#0 = potential#11 - call print_uint_decimal + call print_uint_decimal to:main::@10 main::@10: scope:[main] from main::@6 rem8u#24 = phi( main::@6/rem8u#28 ) @@ -541,7 +541,7 @@ main::@10: scope:[main] from main::@6 print_char_cursor#18 = phi( main::@6/print_char_cursor#3 ) print_char_cursor#6 = print_char_cursor#18 print_char::ch#1 = ' ' - call print_char + call print_char to:main::@11 main::@11: scope:[main] from main::@10 rem8u#20 = phi( main::@10/rem8u#24 ) @@ -574,7 +574,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#0 = print_screen#0 print_char_cursor#9 = print_line_cursor#0 rem8u#7 = 0 @@ -592,7 +592,7 @@ __start::@1: scope:[__start] from __start::__init1 prime_idx#13 = phi( __start::__init1/prime_idx#3 ) test_last#16 = phi( __start::__init1/test_last#3 ) potential#20 = phi( __start::__init1/potential#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_line_cursor#3 = phi( __start::@1/print_line_cursor#4 ) @@ -631,490 +631,490 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte DECIMAL = $a -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant byte OCTAL = 8 -constant word* PRIMES[$3e8] = { fill( $3e8, 0) } -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } -constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } -constant byte SIZEOF_WORD = 2 +__constant char BINARY = 2 +__constant char DECIMAL = $a +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant char OCTAL = 8 +__constant unsigned int PRIMES[$3e8] = { fill( $3e8, 0) } +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } +__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -constant byte* decimal_digits[6] = { fill( 6, 0) } -word div16u8u(word div16u8u::dividend , byte div16u8u::divisor) -byte~ div16u8u::$0 -byte~ div16u8u::$2 -word div16u8u::dividend -word div16u8u::dividend#0 -word div16u8u::dividend#1 -word div16u8u::dividend#2 -byte div16u8u::divisor -byte div16u8u::divisor#0 -byte div16u8u::divisor#1 -byte div16u8u::divisor#2 -word div16u8u::quotient -word div16u8u::quotient#0 -byte div16u8u::quotient_hi -byte div16u8u::quotient_hi#0 -byte div16u8u::quotient_hi#1 -byte div16u8u::quotient_lo -byte div16u8u::quotient_lo#0 -word div16u8u::return -word div16u8u::return#0 -word div16u8u::return#1 -word div16u8u::return#2 -word div16u8u::return#3 -byte divr8u(byte divr8u::dividend , byte divr8u::divisor , byte divr8u::rem) -byte~ divr8u::$0 -number~ divr8u::$1 -bool~ divr8u::$10 -bool~ divr8u::$2 -bool~ divr8u::$3 -number~ divr8u::$4 -byte~ divr8u::$5 -byte~ divr8u::$6 -bool~ divr8u::$7 -bool~ divr8u::$8 -byte~ divr8u::$9 -byte divr8u::dividend -byte divr8u::dividend#0 -byte divr8u::dividend#1 -byte divr8u::dividend#2 -byte divr8u::dividend#3 -byte divr8u::dividend#4 -byte divr8u::dividend#5 -byte divr8u::dividend#6 -byte divr8u::dividend#7 -byte divr8u::dividend#8 -byte divr8u::divisor -byte divr8u::divisor#0 -byte divr8u::divisor#1 -byte divr8u::divisor#2 -byte divr8u::divisor#3 -byte divr8u::divisor#4 -byte divr8u::divisor#5 -byte divr8u::divisor#6 -byte divr8u::divisor#7 -byte divr8u::i -byte divr8u::i#0 -byte divr8u::i#1 -byte divr8u::i#2 -byte divr8u::i#3 -byte divr8u::i#4 -byte divr8u::i#5 -byte divr8u::i#6 -byte divr8u::quotient -byte divr8u::quotient#0 -byte divr8u::quotient#1 -byte divr8u::quotient#2 -byte divr8u::quotient#3 -byte divr8u::quotient#4 -byte divr8u::quotient#5 -byte divr8u::quotient#6 -byte divr8u::quotient#7 -byte divr8u::quotient#8 -byte divr8u::rem -byte divr8u::rem#0 -byte divr8u::rem#1 -byte divr8u::rem#10 -byte divr8u::rem#11 -byte divr8u::rem#2 -byte divr8u::rem#3 -byte divr8u::rem#4 -byte divr8u::rem#5 -byte divr8u::rem#6 -byte divr8u::rem#7 -byte divr8u::rem#8 -byte divr8u::rem#9 -byte divr8u::return -byte divr8u::return#0 -byte divr8u::return#1 -byte divr8u::return#2 -byte divr8u::return#3 -byte divr8u::return#4 -byte divr8u::return#5 -byte divr8u::return#6 +__constant char decimal_digits[6] = { fill( 6, 0) } +unsigned int div16u8u(unsigned int dividend , char divisor) +char div16u8u::$0 +char div16u8u::$2 +unsigned int div16u8u::dividend +unsigned int div16u8u::dividend#0 +unsigned int div16u8u::dividend#1 +unsigned int div16u8u::dividend#2 +char div16u8u::divisor +char div16u8u::divisor#0 +char div16u8u::divisor#1 +char div16u8u::divisor#2 +unsigned int div16u8u::quotient +unsigned int div16u8u::quotient#0 +char div16u8u::quotient_hi +char div16u8u::quotient_hi#0 +char div16u8u::quotient_hi#1 +char div16u8u::quotient_lo +char div16u8u::quotient_lo#0 +unsigned int div16u8u::return +unsigned int div16u8u::return#0 +unsigned int div16u8u::return#1 +unsigned int div16u8u::return#2 +unsigned int div16u8u::return#3 +char divr8u(char dividend , char divisor , char rem) +char divr8u::$0 +number divr8u::$1 +bool divr8u::$10 +bool divr8u::$2 +bool divr8u::$3 +number divr8u::$4 +char divr8u::$5 +char divr8u::$6 +bool divr8u::$7 +bool divr8u::$8 +char divr8u::$9 +char divr8u::dividend +char divr8u::dividend#0 +char divr8u::dividend#1 +char divr8u::dividend#2 +char divr8u::dividend#3 +char divr8u::dividend#4 +char divr8u::dividend#5 +char divr8u::dividend#6 +char divr8u::dividend#7 +char divr8u::dividend#8 +char divr8u::divisor +char divr8u::divisor#0 +char divr8u::divisor#1 +char divr8u::divisor#2 +char divr8u::divisor#3 +char divr8u::divisor#4 +char divr8u::divisor#5 +char divr8u::divisor#6 +char divr8u::divisor#7 +char divr8u::i +char divr8u::i#0 +char divr8u::i#1 +char divr8u::i#2 +char divr8u::i#3 +char divr8u::i#4 +char divr8u::i#5 +char divr8u::i#6 +char divr8u::quotient +char divr8u::quotient#0 +char divr8u::quotient#1 +char divr8u::quotient#2 +char divr8u::quotient#3 +char divr8u::quotient#4 +char divr8u::quotient#5 +char divr8u::quotient#6 +char divr8u::quotient#7 +char divr8u::quotient#8 +char divr8u::rem +char divr8u::rem#0 +char divr8u::rem#1 +char divr8u::rem#10 +char divr8u::rem#11 +char divr8u::rem#2 +char divr8u::rem#3 +char divr8u::rem#4 +char divr8u::rem#5 +char divr8u::rem#6 +char divr8u::rem#7 +char divr8u::rem#8 +char divr8u::rem#9 +char divr8u::return +char divr8u::return#0 +char divr8u::return#1 +char divr8u::return#2 +char divr8u::return#3 +char divr8u::return#4 +char divr8u::return#5 +char divr8u::return#6 void main() -word~ main::$0 -bool~ main::$1 -number~ main::$10 -number~ main::$11 -byte~ main::$12 -byte~ main::$13 -word~ main::$14 -bool~ main::$2 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -bool~ main::$9 -byte main::p -byte main::p#0 -word mul8u(byte mul8u::a , byte mul8u::b) -bool~ mul8u::$0 -number~ mul8u::$1 -bool~ mul8u::$2 -bool~ mul8u::$3 -word~ mul8u::$4 -byte~ mul8u::$5 -word~ mul8u::$6 -byte mul8u::a -byte mul8u::a#0 -byte mul8u::a#1 -byte mul8u::a#2 -byte mul8u::a#3 -byte mul8u::a#4 -byte mul8u::a#5 -byte mul8u::a#6 -byte mul8u::b -byte mul8u::b#0 -byte mul8u::b#1 -word mul8u::mb -word mul8u::mb#0 -word mul8u::mb#1 -word mul8u::mb#2 -word mul8u::mb#3 -word mul8u::mb#4 -word mul8u::mb#5 -word mul8u::res -word mul8u::res#0 -word mul8u::res#1 -word mul8u::res#2 -word mul8u::res#3 -word mul8u::res#4 -word mul8u::res#5 -word mul8u::res#6 -word mul8u::return -word mul8u::return#0 -word mul8u::return#1 -word mul8u::return#2 -word mul8u::return#3 -word mul8u::return#4 -word potential -word potential#0 -word potential#1 -word potential#10 -word potential#11 -word potential#12 -word potential#13 -word potential#14 -word potential#15 -word potential#16 -word potential#17 -word potential#18 -word potential#19 -word potential#2 -word potential#20 -word potential#21 -word potential#3 -word potential#4 -word potential#5 -word potential#6 -word potential#7 -word potential#8 -word potential#9 -word prime_idx -word prime_idx#0 -word prime_idx#1 -word prime_idx#10 -word prime_idx#11 -word prime_idx#12 -word prime_idx#13 -word prime_idx#14 -word prime_idx#15 -word prime_idx#16 -word prime_idx#17 -word prime_idx#18 -word prime_idx#19 -word prime_idx#2 -word prime_idx#20 -word prime_idx#3 -word prime_idx#4 -word prime_idx#5 -word prime_idx#6 -word prime_idx#7 -word prime_idx#8 -word prime_idx#9 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#4 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#2 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 -word print_uint_decimal::w#1 -byte rem8u -byte rem8u#0 -byte rem8u#1 -byte rem8u#10 -byte rem8u#11 -byte rem8u#12 -byte rem8u#13 -byte rem8u#14 -byte rem8u#15 -byte rem8u#16 -byte rem8u#17 -byte rem8u#18 -byte rem8u#19 -byte rem8u#2 -byte rem8u#20 -byte rem8u#21 -byte rem8u#22 -byte rem8u#23 -byte rem8u#24 -byte rem8u#25 -byte rem8u#26 -byte rem8u#27 -byte rem8u#28 -byte rem8u#29 -byte rem8u#3 -byte rem8u#30 -byte rem8u#4 -byte rem8u#5 -byte rem8u#6 -byte rem8u#7 -byte rem8u#8 -byte rem8u#9 -byte test_idx -byte test_idx#0 -byte test_idx#1 -byte test_idx#10 -byte test_idx#11 -byte test_idx#12 -byte test_idx#13 -byte test_idx#14 -byte test_idx#15 -byte test_idx#16 -byte test_idx#2 -byte test_idx#3 -byte test_idx#4 -byte test_idx#5 -byte test_idx#6 -byte test_idx#7 -byte test_idx#8 -byte test_idx#9 -byte test_last -byte test_last#0 -byte test_last#1 -byte test_last#10 -byte test_last#11 -byte test_last#12 -byte test_last#13 -byte test_last#14 -byte test_last#15 -byte test_last#16 -byte test_last#17 -byte test_last#18 -byte test_last#19 -byte test_last#2 -byte test_last#20 -byte test_last#3 -byte test_last#4 -byte test_last#5 -byte test_last#6 -byte test_last#7 -byte test_last#8 -byte test_last#9 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -bool~ utoa::$0 -bool~ utoa::$1 -byte~ utoa::$10 -byte~ utoa::$11 -bool~ utoa::$2 -bool~ utoa::$3 -number~ utoa::$4 -bool~ utoa::$5 -bool~ utoa::$6 -bool~ utoa::$7 -bool~ utoa::$8 -word~ utoa::$9 -byte* utoa::buffer -byte* utoa::buffer#0 -byte* utoa::buffer#1 -byte* utoa::buffer#10 -byte* utoa::buffer#11 -byte* utoa::buffer#12 -byte* utoa::buffer#13 -byte* utoa::buffer#14 -byte* utoa::buffer#15 -byte* utoa::buffer#16 -byte* utoa::buffer#17 -byte* utoa::buffer#18 -byte* utoa::buffer#19 -byte* utoa::buffer#2 -byte* utoa::buffer#20 -byte* utoa::buffer#21 -byte* utoa::buffer#3 -byte* utoa::buffer#4 -byte* utoa::buffer#5 -byte* utoa::buffer#6 -byte* utoa::buffer#7 -byte* utoa::buffer#8 -byte* utoa::buffer#9 -byte utoa::digit -byte utoa::digit#0 -byte utoa::digit#1 -byte utoa::digit#2 -byte utoa::digit#3 -byte utoa::digit#4 -byte utoa::digit#5 -byte utoa::digit#6 -word utoa::digit_value -word utoa::digit_value#0 -word utoa::digit_value#1 -word* utoa::digit_values -word* utoa::digit_values#0 -word* utoa::digit_values#1 -word* utoa::digit_values#10 -word* utoa::digit_values#2 -word* utoa::digit_values#3 -word* utoa::digit_values#4 -word* utoa::digit_values#5 -word* utoa::digit_values#6 -word* utoa::digit_values#7 -word* utoa::digit_values#8 -word* utoa::digit_values#9 -byte utoa::max_digits -byte utoa::max_digits#0 -byte utoa::max_digits#1 -byte utoa::max_digits#10 -byte utoa::max_digits#2 -byte utoa::max_digits#3 -byte utoa::max_digits#4 -byte utoa::max_digits#5 -byte utoa::max_digits#6 -byte utoa::max_digits#7 -byte utoa::max_digits#8 -byte utoa::max_digits#9 -byte utoa::radix -byte utoa::radix#0 -byte utoa::radix#1 -byte utoa::radix#2 -byte utoa::radix#3 -byte utoa::radix#4 -byte utoa::started -byte utoa::started#0 -byte utoa::started#1 -byte utoa::started#2 -byte utoa::started#3 -byte utoa::started#4 -word utoa::value -word utoa::value#0 -word utoa::value#1 -word utoa::value#10 -word utoa::value#11 -word utoa::value#12 -word utoa::value#13 -word utoa::value#14 -word utoa::value#15 -word utoa::value#2 -word utoa::value#3 -word utoa::value#4 -word utoa::value#5 -word utoa::value#6 -word utoa::value#7 -word utoa::value#8 -word utoa::value#9 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -bool~ utoa_append::$0 -byte* utoa_append::buffer -byte* utoa_append::buffer#0 -byte* utoa_append::buffer#1 -byte* utoa_append::buffer#2 -byte* utoa_append::buffer#3 -byte* utoa_append::buffer#4 -byte utoa_append::digit -byte utoa_append::digit#0 -byte utoa_append::digit#1 -byte utoa_append::digit#2 -byte utoa_append::digit#3 -byte utoa_append::digit#4 -word utoa_append::return -word utoa_append::return#0 -word utoa_append::return#1 -word utoa_append::return#2 -word utoa_append::return#3 -word utoa_append::return#4 -word utoa_append::sub -word utoa_append::sub#0 -word utoa_append::sub#1 -word utoa_append::sub#2 -word utoa_append::sub#3 -word utoa_append::value -word utoa_append::value#0 -word utoa_append::value#1 -word utoa_append::value#2 -word utoa_append::value#3 -word utoa_append::value#4 -word utoa_append::value#5 +unsigned int main::$0 +bool main::$1 +number main::$10 +number main::$11 +char main::$12 +char main::$13 +unsigned int main::$14 +bool main::$2 +bool main::$4 +bool main::$5 +bool main::$6 +bool main::$9 +char main::p +char main::p#0 +unsigned int mul8u(char a , char b) +bool mul8u::$0 +number mul8u::$1 +bool mul8u::$2 +bool mul8u::$3 +unsigned int mul8u::$4 +char mul8u::$5 +unsigned int mul8u::$6 +char mul8u::a +char mul8u::a#0 +char mul8u::a#1 +char mul8u::a#2 +char mul8u::a#3 +char mul8u::a#4 +char mul8u::a#5 +char mul8u::a#6 +char mul8u::b +char mul8u::b#0 +char mul8u::b#1 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 +unsigned int mul8u::mb#1 +unsigned int mul8u::mb#2 +unsigned int mul8u::mb#3 +unsigned int mul8u::mb#4 +unsigned int mul8u::mb#5 +unsigned int mul8u::res +unsigned int mul8u::res#0 +unsigned int mul8u::res#1 +unsigned int mul8u::res#2 +unsigned int mul8u::res#3 +unsigned int mul8u::res#4 +unsigned int mul8u::res#5 +unsigned int mul8u::res#6 +unsigned int mul8u::return +unsigned int mul8u::return#0 +unsigned int mul8u::return#1 +unsigned int mul8u::return#2 +unsigned int mul8u::return#3 +unsigned int mul8u::return#4 +unsigned int potential +unsigned int potential#0 +unsigned int potential#1 +unsigned int potential#10 +unsigned int potential#11 +unsigned int potential#12 +unsigned int potential#13 +unsigned int potential#14 +unsigned int potential#15 +unsigned int potential#16 +unsigned int potential#17 +unsigned int potential#18 +unsigned int potential#19 +unsigned int potential#2 +unsigned int potential#20 +unsigned int potential#21 +unsigned int potential#3 +unsigned int potential#4 +unsigned int potential#5 +unsigned int potential#6 +unsigned int potential#7 +unsigned int potential#8 +unsigned int potential#9 +unsigned int prime_idx +unsigned int prime_idx#0 +unsigned int prime_idx#1 +unsigned int prime_idx#10 +unsigned int prime_idx#11 +unsigned int prime_idx#12 +unsigned int prime_idx#13 +unsigned int prime_idx#14 +unsigned int prime_idx#15 +unsigned int prime_idx#16 +unsigned int prime_idx#17 +unsigned int prime_idx#18 +unsigned int prime_idx#19 +unsigned int prime_idx#2 +unsigned int prime_idx#20 +unsigned int prime_idx#3 +unsigned int prime_idx#4 +unsigned int prime_idx#5 +unsigned int prime_idx#6 +unsigned int prime_idx#7 +unsigned int prime_idx#8 +unsigned int prime_idx#9 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#4 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#2 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 +unsigned int print_uint_decimal::w#1 +char rem8u +char rem8u#0 +char rem8u#1 +char rem8u#10 +char rem8u#11 +char rem8u#12 +char rem8u#13 +char rem8u#14 +char rem8u#15 +char rem8u#16 +char rem8u#17 +char rem8u#18 +char rem8u#19 +char rem8u#2 +char rem8u#20 +char rem8u#21 +char rem8u#22 +char rem8u#23 +char rem8u#24 +char rem8u#25 +char rem8u#26 +char rem8u#27 +char rem8u#28 +char rem8u#29 +char rem8u#3 +char rem8u#30 +char rem8u#4 +char rem8u#5 +char rem8u#6 +char rem8u#7 +char rem8u#8 +char rem8u#9 +char test_idx +char test_idx#0 +char test_idx#1 +char test_idx#10 +char test_idx#11 +char test_idx#12 +char test_idx#13 +char test_idx#14 +char test_idx#15 +char test_idx#16 +char test_idx#2 +char test_idx#3 +char test_idx#4 +char test_idx#5 +char test_idx#6 +char test_idx#7 +char test_idx#8 +char test_idx#9 +char test_last +char test_last#0 +char test_last#1 +char test_last#10 +char test_last#11 +char test_last#12 +char test_last#13 +char test_last#14 +char test_last#15 +char test_last#16 +char test_last#17 +char test_last#18 +char test_last#19 +char test_last#2 +char test_last#20 +char test_last#3 +char test_last#4 +char test_last#5 +char test_last#6 +char test_last#7 +char test_last#8 +char test_last#9 +void utoa(unsigned int value , char *buffer , char radix) +bool utoa::$0 +bool utoa::$1 +char utoa::$10 +char utoa::$11 +bool utoa::$2 +bool utoa::$3 +number utoa::$4 +bool utoa::$5 +bool utoa::$6 +bool utoa::$7 +bool utoa::$8 +unsigned int utoa::$9 +char *utoa::buffer +char *utoa::buffer#0 +char *utoa::buffer#1 +char *utoa::buffer#10 +char *utoa::buffer#11 +char *utoa::buffer#12 +char *utoa::buffer#13 +char *utoa::buffer#14 +char *utoa::buffer#15 +char *utoa::buffer#16 +char *utoa::buffer#17 +char *utoa::buffer#18 +char *utoa::buffer#19 +char *utoa::buffer#2 +char *utoa::buffer#20 +char *utoa::buffer#21 +char *utoa::buffer#3 +char *utoa::buffer#4 +char *utoa::buffer#5 +char *utoa::buffer#6 +char *utoa::buffer#7 +char *utoa::buffer#8 +char *utoa::buffer#9 +char utoa::digit +char utoa::digit#0 +char utoa::digit#1 +char utoa::digit#2 +char utoa::digit#3 +char utoa::digit#4 +char utoa::digit#5 +char utoa::digit#6 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 +unsigned int utoa::digit_value#1 +unsigned int *utoa::digit_values +unsigned int *utoa::digit_values#0 +unsigned int *utoa::digit_values#1 +unsigned int *utoa::digit_values#10 +unsigned int *utoa::digit_values#2 +unsigned int *utoa::digit_values#3 +unsigned int *utoa::digit_values#4 +unsigned int *utoa::digit_values#5 +unsigned int *utoa::digit_values#6 +unsigned int *utoa::digit_values#7 +unsigned int *utoa::digit_values#8 +unsigned int *utoa::digit_values#9 +char utoa::max_digits +char utoa::max_digits#0 +char utoa::max_digits#1 +char utoa::max_digits#10 +char utoa::max_digits#2 +char utoa::max_digits#3 +char utoa::max_digits#4 +char utoa::max_digits#5 +char utoa::max_digits#6 +char utoa::max_digits#7 +char utoa::max_digits#8 +char utoa::max_digits#9 +char utoa::radix +char utoa::radix#0 +char utoa::radix#1 +char utoa::radix#2 +char utoa::radix#3 +char utoa::radix#4 +char utoa::started +char utoa::started#0 +char utoa::started#1 +char utoa::started#2 +char utoa::started#3 +char utoa::started#4 +unsigned int utoa::value +unsigned int utoa::value#0 +unsigned int utoa::value#1 +unsigned int utoa::value#10 +unsigned int utoa::value#11 +unsigned int utoa::value#12 +unsigned int utoa::value#13 +unsigned int utoa::value#14 +unsigned int utoa::value#15 +unsigned int utoa::value#2 +unsigned int utoa::value#3 +unsigned int utoa::value#4 +unsigned int utoa::value#5 +unsigned int utoa::value#6 +unsigned int utoa::value#7 +unsigned int utoa::value#8 +unsigned int utoa::value#9 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +bool utoa_append::$0 +char *utoa_append::buffer +char *utoa_append::buffer#0 +char *utoa_append::buffer#1 +char *utoa_append::buffer#2 +char *utoa_append::buffer#3 +char *utoa_append::buffer#4 +char utoa_append::digit +char utoa_append::digit#0 +char utoa_append::digit#1 +char utoa_append::digit#2 +char utoa_append::digit#3 +char utoa_append::digit#4 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 +unsigned int utoa_append::return#1 +unsigned int utoa_append::return#2 +unsigned int utoa_append::return#3 +unsigned int utoa_append::return#4 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 +unsigned int utoa_append::sub#1 +unsigned int utoa_append::sub#2 +unsigned int utoa_append::sub#3 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 +unsigned int utoa_append::value#1 +unsigned int utoa_append::value#2 +unsigned int utoa_append::value#3 +unsigned int utoa_append::value#4 +unsigned int utoa_append::value#5 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) 5 in utoa::max_digits#1 = 5 @@ -1141,11 +1141,11 @@ Adding number conversion cast (unumber) 1 in divr8u::$6 = divr8u::quotient#3 << Adding number conversion cast (unumber) 1 in divr8u::$4 = divr8u::rem#7 | 1 Adding number conversion cast (unumber) divr8u::$4 in divr8u::$4 = divr8u::rem#7 | (unumber)1 Adding number conversion cast (unumber) 0 in divr8u::rem#3 = 0 -Adding number conversion cast (unumber) 1 in main::$10 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$10 in main::$10 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$10 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$10 in main::$10 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 2 in PRIMES[main::$10] = 2 -Adding number conversion cast (unumber) 2 in main::$11 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$11 in main::$11 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 2 in main::$11 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$11 in main::$11 = (unumber)2 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 3 in PRIMES[main::$11] = 3 Adding number conversion cast (unumber) 3 in potential#0 = 3 Adding number conversion cast (unumber) 2 in test_last#0 = 2 @@ -1207,49 +1207,49 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast $3e8 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in utoa::$4 = utoa::max_digits#5 - 1 -Inferred type updated to byte in mul8u::$1 = mul8u::a#3 & 1 -Inferred type updated to byte in divr8u::$1 = divr8u::dividend#3 & $80 -Inferred type updated to byte in divr8u::$4 = divr8u::rem#7 | 1 -Inferred type updated to byte in main::$10 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$11 = 2 * SIZEOF_WORD +Inferred type updated to char in utoa::$4 = utoa::max_digits#5 - 1 +Inferred type updated to char in mul8u::$1 = mul8u::a#3 & 1 +Inferred type updated to char in divr8u::$1 = divr8u::dividend#3 & $80 +Inferred type updated to char in divr8u::$4 = divr8u::rem#7 | 1 +Inferred type updated to char in main::$10 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$11 = 2 * SIZEOF_UNSIGNED_INT Inversing boolean not [122] mul8u::$3 = mul8u::$1 == 0 from [121] mul8u::$2 = mul8u::$1 != 0 Inversing boolean not [145] divr8u::$3 = divr8u::$1 == 0 from [144] divr8u::$2 = divr8u::$1 != 0 Inversing boolean not [153] divr8u::$8 = divr8u::rem#6 < divr8u::divisor#2 from [152] divr8u::$7 = divr8u::rem#6 >= divr8u::divisor#2 @@ -1426,14 +1426,14 @@ Rewriting ! if()-condition to reversed if() [60] utoa::$8 = ! utoa::$7 Rewriting || if()-condition to two if()s [59] utoa::$7 = utoa::started#2 || utoa::$6 Successful SSA optimization Pass2ConditionalAndOrRewriting Warning! Adding boolean cast to non-boolean condition utoa::started#2 -Constant right-side identified [139] main::$10 = 1 * SIZEOF_WORD -Constant right-side identified [141] main::$11 = 2 * SIZEOF_WORD +Constant right-side identified [139] main::$10 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [141] main::$11 = 2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::buffer#0 = decimal_digits Constant utoa::radix#0 = DECIMAL Constant print_str::str#1 = decimal_digits Constant utoa::max_digits#0 = 0 -Constant utoa::digit_values#0 = (word*) 0 +Constant utoa::digit_values#0 = (unsigned int *) 0 Constant utoa::max_digits#1 = 5 Constant utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant utoa::max_digits#2 = 4 @@ -1450,15 +1450,15 @@ Constant mul8u::res#0 = 0 Constant divr8u::quotient#0 = 0 Constant divr8u::i#0 = 0 Constant divr8u::rem#3 = 0 -Constant main::$10 = 1*SIZEOF_WORD -Constant main::$11 = 2*SIZEOF_WORD +Constant main::$10 = 1*SIZEOF_UNSIGNED_INT +Constant main::$11 = 2*SIZEOF_UNSIGNED_INT Constant potential#0 = 3 Constant test_last#0 = 2 Constant prime_idx#0 = 2 Constant test_idx#0 = 2 Constant test_idx#2 = 2 Constant print_char::ch#1 = ' ' -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Constant rem8u#21 = 0 Constant prime_idx#13 = 0 Constant potential#20 = 0 @@ -1537,8 +1537,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Identical Phi Values utoa::max_digits#7 utoa::max_digits#1 Identical Phi Values utoa::digit_values#8 utoa::digit_values#1 @@ -1550,10 +1550,10 @@ Constant right-side identified [17] utoa::$4 = utoa::max_digits#1 - 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::$4 = utoa::max_digits#1-1 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [17] utoa::$10 = utoa::digit#2 * SIZEOF_WORD -Rewriting multiplication to use shift [77] main::$12 = test_last#13 * SIZEOF_WORD -Rewriting multiplication to use shift [89] main::$13 = test_idx#7 * SIZEOF_WORD -Rewriting multiplication to use shift [99] main::$14 = prime_idx#1 * SIZEOF_WORD +Rewriting multiplication to use shift [17] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [77] main::$12 = test_last#13 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [89] main::$13 = test_idx#7 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [99] main::$14 = prime_idx#1 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print_str::str#1 Inlining constant with var siblings print_char::ch#1 @@ -1579,8 +1579,8 @@ Constant inlined utoa::started#1 = 1 Constant inlined test_idx#0 = 2 Constant inlined utoa::started#0 = 0 Constant inlined test_idx#2 = 2 -Constant inlined main::$10 = 1*SIZEOF_WORD -Constant inlined main::$11 = 2*SIZEOF_WORD +Constant inlined main::$10 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$11 = 2*SIZEOF_UNSIGNED_INT Constant inlined divr8u::i#0 = 0 Constant inlined divr8u::quotient#0 = 0 Constant inlined mul8u::res#0 = 0 @@ -1592,17 +1592,17 @@ Constant inlined test_last#0 = 2 Constant inlined print_str::str#1 = decimal_digits Constant inlined potential#0 = 3 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(PRIMES+1*SIZEOF_WORD) -Consolidated array index constant in *(PRIMES+2*SIZEOF_WORD) +Consolidated array index constant in *(PRIMES+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(PRIMES+2*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting utoa::@17(between utoa::@16 and utoa::@13) Added new block during phi lifting mul8u::@6(between mul8u::@2 and mul8u::@4) @@ -1715,8 +1715,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *(PRIMES+1*SIZEOF_WORD) = 2 - [1] *(PRIMES+2*SIZEOF_WORD) = 3 + [0] *(PRIMES+1*SIZEOF_UNSIGNED_INT) = 2 + [1] *(PRIMES+2*SIZEOF_UNSIGNED_INT) = 3 to:main::@1 main::@1: scope:[main] from main main::@11 [2] print_char_cursor#34 = phi( main/print_screen#0, main::@11/print_char_cursor#17 ) @@ -1724,10 +1724,10 @@ main::@1: scope:[main] from main main::@11 [2] potential#15 = phi( main/3, main::@11/potential#11 ) [2] test_last#13 = phi( main/2, main::@11/test_last#19 ) [3] main::$12 = test_last#13 << 1 - [4] main::p#0 = (byte)PRIMES[main::$12] + [4] main::p#0 = (char)PRIMES[main::$12] [5] mul8u::a#1 = main::p#0 [6] mul8u::b#0 = main::p#0 - [7] call mul8u + [7] call mul8u [8] mul8u::return#2 = mul8u::res#2 to:main::@8 main::@8: scope:[main] from main::@1 @@ -1746,8 +1746,8 @@ main::@3: scope:[main] from main::@2 main::@4 [14] test_idx#7 = phi( main::@2/2, main::@4/test_idx#10 ) [15] main::$13 = test_idx#7 << 1 [16] div16u8u::dividend#0 = potential#10 - [17] div16u8u::divisor#0 = (byte)PRIMES[main::$13] - [18] call div16u8u + [17] div16u8u::divisor#0 = (char)PRIMES[main::$13] + [18] call div16u8u to:main::@9 main::@9: scope:[main] from main::@3 [19] test_idx#1 = ++ test_idx#7 @@ -1767,11 +1767,11 @@ main::@6: scope:[main] from main::@4 [26] main::$15 = PRIMES + main::$14 [27] *main::$15 = potential#11 [28] print_uint_decimal::w#0 = potential#11 - [29] call print_uint_decimal + [29] call print_uint_decimal to:main::@10 main::@10: scope:[main] from main::@6 [30] phi() - [31] call print_char + [31] call print_char to:main::@11 main::@11: scope:[main] from main::@10 [32] if(prime_idx#1<$3e8) goto main::@1 @@ -1780,9 +1780,9 @@ main::@return: scope:[main] from main::@11 [33] return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@1 - [34] mul8u::mb#0 = (word)mul8u::b#0 + [34] mul8u::mb#0 = (unsigned int)mul8u::b#0 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@3 [35] mul8u::mb#2 = phi( mul8u/mul8u::mb#0, mul8u::@3/mul8u::mb#1 ) @@ -1806,36 +1806,36 @@ mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4 [43] mul8u::mb#1 = mul8u::mb#2 << 1 to:mul8u::@1 -word div16u8u(word div16u8u::dividend , byte div16u8u::divisor) +unsigned int div16u8u(unsigned int dividend , char divisor) div16u8u: scope:[div16u8u] from main::@3 [44] divr8u::dividend#1 = byte1 div16u8u::dividend#0 [45] divr8u::divisor#0 = div16u8u::divisor#0 - [46] call divr8u + [46] call divr8u to:div16u8u::@1 div16u8u::@1: scope:[div16u8u] from div16u8u [47] divr8u::dividend#2 = byte0 div16u8u::dividend#0 [48] divr8u::divisor#1 = div16u8u::divisor#0 [49] divr8u::rem#4 = rem8u#0 - [50] call divr8u + [50] call divr8u to:div16u8u::@return div16u8u::@return: scope:[div16u8u] from div16u8u::@1 [51] return to:@return -void print_uint_decimal(word print_uint_decimal::w) +void print_uint_decimal(unsigned int w) print_uint_decimal: scope:[print_uint_decimal] from main::@6 [52] utoa::value#0 = print_uint_decimal::w#0 - [53] call utoa + [53] call utoa to:print_uint_decimal::@1 print_uint_decimal::@1: scope:[print_uint_decimal] from print_uint_decimal [54] phi() - [55] call print_str + [55] call print_str to:print_uint_decimal::@return print_uint_decimal::@return: scope:[print_uint_decimal] from print_uint_decimal::@1 [56] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@10 print_str::@2 [57] print_char::ch#2 = phi( main::@10/' ', print_str::@2/print_char::ch#0 ) [58] *print_char_cursor#1 = print_char::ch#2 @@ -1845,7 +1845,7 @@ print_char::@return: scope:[print_char] from print_char [60] return to:@return -byte divr8u(byte divr8u::dividend , byte divr8u::divisor , byte divr8u::rem) +char divr8u(char dividend , char divisor , char rem) divr8u: scope:[divr8u] from div16u8u div16u8u::@1 [61] divr8u::divisor#6 = phi( div16u8u/divr8u::divisor#0, div16u8u::@1/divr8u::divisor#1 ) [61] divr8u::dividend#5 = phi( div16u8u/divr8u::dividend#1, div16u8u::@1/divr8u::dividend#2 ) @@ -1886,7 +1886,7 @@ divr8u::@return: scope:[divr8u] from divr8u::@6 [77] return to:@return -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from print_uint_decimal [78] phi() to:utoa::@1 @@ -1898,7 +1898,7 @@ utoa::@1: scope:[utoa] from utoa utoa::@4 [80] if(utoa::digit#2=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( print_uint_decimal:29::utoa:53::utoa_append:95 [ test_last#19 potential#11 prime_idx#1 print_char_cursor#34 utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { potential#11 = print_uint_decimal::w#0 utoa::value#0 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [109] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( print_uint_decimal:29::utoa:53::utoa_append:95 [ test_last#19 potential#11 prime_idx#1 print_char_cursor#34 utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { potential#11 = print_uint_decimal::w#0 utoa::value#0 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y Statement [112] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( print_uint_decimal:29::utoa:53::utoa_append:95 [ test_last#19 potential#11 prime_idx#1 print_char_cursor#34 utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { potential#11 = print_uint_decimal::w#0 utoa::value#0 } { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [0] *(PRIMES+1*SIZEOF_WORD) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(PRIMES+2*SIZEOF_WORD) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *(PRIMES+1*SIZEOF_UNSIGNED_INT) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(PRIMES+2*SIZEOF_UNSIGNED_INT) = 3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] main::$12 = test_last#13 << 1 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::$12 ] ( [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::$12 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a -Statement [4] main::p#0 = (byte)PRIMES[main::$12] [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::p#0 ] ( [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::p#0 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a +Statement [4] main::p#0 = (char)PRIMES[main::$12] [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::p#0 ] ( [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::p#0 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [8] mul8u::return#2 = mul8u::res#2 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 mul8u::return#2 ] ( [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 mul8u::return#2 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [9] main::$0 = mul8u::return#2 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::$0 ] ( [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 main::$0 ] { } ) always clobbers reg byte a Statement [10] if(potential#15<=main::$0) goto main::@2 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 ] ( [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 ] { } ) always clobbers reg byte a Statement [13] potential#1 = potential#15 + 2 [ prime_idx#17 print_char_cursor#34 test_last#19 potential#1 ] ( [ prime_idx#17 print_char_cursor#34 test_last#19 potential#1 ] { } ) always clobbers reg byte a Statement [15] main::$13 = test_idx#7 << 1 [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 main::$13 ] ( [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 main::$13 ] { { potential#10 = div16u8u::dividend#0 } } ) always clobbers reg byte a Statement [16] div16u8u::dividend#0 = potential#10 [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 main::$13 div16u8u::dividend#0 ] ( [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 main::$13 div16u8u::dividend#0 ] { { potential#10 = div16u8u::dividend#0 } } ) always clobbers reg byte a -Statement [17] div16u8u::divisor#0 = (byte)PRIMES[main::$13] [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 div16u8u::dividend#0 div16u8u::divisor#0 ] ( [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 div16u8u::dividend#0 div16u8u::divisor#0 ] { { potential#10 = div16u8u::dividend#0 } } ) always clobbers reg byte a +Statement [17] div16u8u::divisor#0 = (char)PRIMES[main::$13] [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 div16u8u::dividend#0 div16u8u::divisor#0 ] ( [ prime_idx#17 print_char_cursor#34 test_last#19 test_idx#7 potential#10 div16u8u::dividend#0 div16u8u::divisor#0 ] { { potential#10 = div16u8u::dividend#0 } } ) always clobbers reg byte a Statement [21] potential#2 = potential#10 + 2 [ prime_idx#17 print_char_cursor#34 test_last#19 potential#2 ] ( [ prime_idx#17 print_char_cursor#34 test_last#19 potential#2 ] { } ) always clobbers reg byte a Statement [25] main::$14 = prime_idx#1 << 1 [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 main::$14 ] ( [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 main::$14 ] { { potential#11 = print_uint_decimal::w#0 } } ) always clobbers reg byte a Statement [26] main::$15 = PRIMES + main::$14 [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 main::$15 ] ( [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 main::$15 ] { { potential#11 = print_uint_decimal::w#0 } } ) always clobbers reg byte a Statement [27] *main::$15 = potential#11 [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 ] ( [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 ] { { potential#11 = print_uint_decimal::w#0 } } ) always clobbers reg byte a reg byte y Statement [28] print_uint_decimal::w#0 = potential#11 [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 print_uint_decimal::w#0 ] ( [ print_char_cursor#34 test_last#19 potential#11 prime_idx#1 print_uint_decimal::w#0 ] { { potential#11 = print_uint_decimal::w#0 } } ) always clobbers reg byte a Statement [32] if(prime_idx#1<$3e8) goto main::@1 [ test_last#19 potential#11 prime_idx#1 print_char_cursor#17 ] ( [ test_last#19 potential#11 prime_idx#1 print_char_cursor#17 ] { } ) always clobbers reg byte a -Statement [34] mul8u::mb#0 = (word)mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( mul8u:7 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 mul8u::a#1 mul8u::mb#0 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a +Statement [34] mul8u::mb#0 = (unsigned int)mul8u::b#0 [ mul8u::a#1 mul8u::mb#0 ] ( mul8u:7 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 mul8u::a#1 mul8u::mb#0 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [38] mul8u::$1 = mul8u::a#2 & 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( mul8u:7 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [40] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] ( mul8u:7 [ test_last#13 potential#15 prime_idx#17 print_char_cursor#34 mul8u::a#2 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#1 = main::p#0 mul8u::b#0 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a Statement [52] utoa::value#0 = print_uint_decimal::w#0 [ print_char_cursor#34 utoa::value#0 ] ( print_uint_decimal:29 [ test_last#19 potential#11 prime_idx#1 print_char_cursor#34 utoa::value#0 ] { { potential#11 = print_uint_decimal::w#0 utoa::value#0 } } ) always clobbers reg byte a @@ -2504,7 +2504,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label print_screen = $400 .label print_char_cursor = $f // The number currently being tested for whether it is a prime @@ -2521,16 +2521,16 @@ main: { .label __0 = 7 .label __14 = $11 .label __15 = $11 - // [0] *(PRIMES+1*SIZEOF_WORD) = 2 -- _deref_pwuc1=vbuc2 + // [0] *(PRIMES+1*SIZEOF_UNSIGNED_INT) = 2 -- _deref_pwuc1=vbuc2 lda #<2 - sta PRIMES+1*SIZEOF_WORD + sta PRIMES+1*SIZEOF_UNSIGNED_INT lda #>2 - sta PRIMES+1*SIZEOF_WORD+1 - // [1] *(PRIMES+2*SIZEOF_WORD) = 3 -- _deref_pwuc1=vbuc2 + sta PRIMES+1*SIZEOF_UNSIGNED_INT+1 + // [1] *(PRIMES+2*SIZEOF_UNSIGNED_INT) = 3 -- _deref_pwuc1=vbuc2 lda #<3 - sta PRIMES+2*SIZEOF_WORD + sta PRIMES+2*SIZEOF_UNSIGNED_INT lda #>3 - sta PRIMES+2*SIZEOF_WORD+1 + sta PRIMES+2*SIZEOF_UNSIGNED_INT+1 // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: // [2] phi print_char_cursor#34 = print_screen#0 [phi:main->main::@1#0] -- pbuz1=pbuc1 @@ -2564,13 +2564,13 @@ main: { // [3] main::$12 = test_last#13 << 1 -- vbuaa=vbuz1_rol_1 lda.z test_last asl - // [4] main::p#0 = (byte)PRIMES[main::$12] -- vbuaa=_byte_pwuc1_derefidx_vbuaa + // [4] main::p#0 = (char)PRIMES[main::$12] -- vbuaa=_byte_pwuc1_derefidx_vbuaa tay lda PRIMES,y // [5] mul8u::a#1 = main::p#0 -- vbuxx=vbuaa tax // [6] mul8u::b#0 = main::p#0 - // [7] call mul8u + // [7] call mul8u jsr mul8u // [8] mul8u::return#2 = mul8u::res#2 jmp __b8 @@ -2625,10 +2625,10 @@ main: { asl tax // [16] div16u8u::dividend#0 = potential#10 - // [17] div16u8u::divisor#0 = (byte)PRIMES[main::$13] -- vbuz1=_byte_pwuc1_derefidx_vbuxx + // [17] div16u8u::divisor#0 = (char)PRIMES[main::$13] -- vbuz1=_byte_pwuc1_derefidx_vbuxx lda PRIMES,x sta.z div16u8u.divisor - // [18] call div16u8u + // [18] call div16u8u jsr div16u8u jmp __b9 // main::@9 @@ -2698,14 +2698,14 @@ main: { lda.z potential+1 sta (__15),y // [28] print_uint_decimal::w#0 = potential#11 - // [29] call print_uint_decimal + // [29] call print_uint_decimal jsr print_uint_decimal // [30] phi from main::@6 to main::@10 [phi:main::@6->main::@10] __b10_from___b6: jmp __b10 // main::@10 __b10: - // [31] call print_char + // [31] call print_char // [57] phi from main::@10 to print_char [phi:main::@10->print_char] print_char_from___b10: // [57] phi print_char::ch#2 = ' ' [phi:main::@10->print_char#0] -- vbuaa=vbuc1 @@ -2731,12 +2731,12 @@ main: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a, byte register(A) b) +// __zp(7) unsigned int mul8u(__register(X) char a, __register(A) char b) mul8u: { .label mb = $11 .label res = 7 .label return = 7 - // [34] mul8u::mb#0 = (word)mul8u::b#0 -- vwuz1=_word_vbuaa + // [34] mul8u::mb#0 = (unsigned int)mul8u::b#0 -- vwuz1=_word_vbuaa sta.z mb lda #0 sta.z mb+1 @@ -2803,7 +2803,7 @@ mul8u: { // div16u8u // Divide unsigned 16-bit unsigned long dividend with a 8-bit unsigned char divisor // The 8-bit unsigned char remainder can be found in rem8u after the division -// div16u8u(word zp(5) dividend, byte zp(9) divisor) +// unsigned int div16u8u(__zp(5) unsigned int dividend, __zp(9) char divisor) div16u8u: { .label dividend = 5 .label divisor = 9 @@ -2811,7 +2811,7 @@ div16u8u: { lda.z dividend+1 sta.z divr8u.dividend // [45] divr8u::divisor#0 = div16u8u::divisor#0 - // [46] call divr8u + // [46] call divr8u // [61] phi from div16u8u to divr8u [phi:div16u8u->divr8u] divr8u_from_div16u8u: // [61] phi divr8u::divisor#6 = divr8u::divisor#0 [phi:div16u8u->divr8u#0] -- register_copy @@ -2827,7 +2827,7 @@ div16u8u: { sta.z divr8u.dividend // [48] divr8u::divisor#1 = div16u8u::divisor#0 // [49] divr8u::rem#4 = rem8u#0 - // [50] call divr8u + // [50] call divr8u // [61] phi from div16u8u::@1 to divr8u [phi:div16u8u::@1->divr8u] divr8u_from___b1: // [61] phi divr8u::divisor#6 = divr8u::divisor#1 [phi:div16u8u::@1->divr8u#0] -- register_copy @@ -2842,7 +2842,7 @@ div16u8u: { } // print_uint_decimal // Print a unsigned int as DECIMAL -// print_uint_decimal(word zp(5) w) +// void print_uint_decimal(__zp(5) unsigned int w) print_uint_decimal: { .label w = 5 // [52] utoa::value#0 = print_uint_decimal::w#0 -- vwuz1=vwuz2 @@ -2850,7 +2850,7 @@ print_uint_decimal: { sta.z utoa.value lda.z w+1 sta.z utoa.value+1 - // [53] call utoa + // [53] call utoa // [78] phi from print_uint_decimal to utoa [phi:print_uint_decimal->utoa] utoa_from_print_uint_decimal: jsr utoa @@ -2859,7 +2859,7 @@ print_uint_decimal: { jmp __b1 // print_uint_decimal::@1 __b1: - // [55] call print_str + // [55] call print_str // [99] phi from print_uint_decimal::@1 to print_str [phi:print_uint_decimal::@1->print_str] print_str_from___b1: jsr print_str @@ -2871,7 +2871,7 @@ print_uint_decimal: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [58] *print_char_cursor#1 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 @@ -2892,7 +2892,7 @@ print_char: { // Returns dividend/divisor. // The final remainder will be set into the global variable rem8u // Implemented using simple binary division -// divr8u(byte zp($a) dividend, byte zp(9) divisor, byte register(Y) rem) +// __zp($b) char divr8u(__zp($a) char dividend, __zp(9) char divisor, __register(Y) char rem) divr8u: { .label dividend = $a .label quotient = $b @@ -2987,7 +2987,7 @@ divr8u: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($11) value, byte* zp($d) buffer) +// void utoa(__zp($11) unsigned int value, __zp($d) char *buffer, char radix) utoa: { .const max_digits = 5 .label value = $11 @@ -3017,7 +3017,7 @@ utoa: { jmp __b3 // utoa::@3 __b3: - // [81] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [81] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [82] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -3085,7 +3085,7 @@ utoa: { // [92] utoa_append::buffer#0 = utoa::buffer#11 // [93] utoa_append::value#0 = utoa::value#2 // [94] utoa_append::sub#0 = utoa::digit_value#0 - // [95] call utoa_append + // [95] call utoa_append // [106] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append @@ -3109,7 +3109,7 @@ utoa: { } // print_str // Print a zero-terminated string -// print_str(byte* zp($d) str) +// void print_str(__zp($d) char *str) print_str: { .label str = $d // [100] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -3138,7 +3138,7 @@ print_str: { // [103] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [104] call print_char + // [104] call print_char // [57] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [57] phi print_char::ch#2 = print_char::ch#0 [phi:print_str::@2->print_char#0] -- register_copy @@ -3166,7 +3166,7 @@ print_str: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($d) buffer, word zp($11) value, word zp($13) sub) +// __zp($11) unsigned int utoa_append(__zp($d) char *buffer, __zp($11) unsigned int value, __zp($13) unsigned int sub) utoa_append: { .label buffer = $d .label value = $11 @@ -3363,156 +3363,156 @@ Fixing long branch [126] bcc __b1 to bcs Fixing long branch [132] bcc __b1 to bcs FINAL SYMBOL TABLE -constant byte* DIGITS[] = "0123456789abcdef"z -constant word* PRIMES[$3e8] = { fill( $3e8, 0) } -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant byte SIZEOF_WORD = 2 -constant byte* decimal_digits[6] = { fill( 6, 0) } -word div16u8u(word div16u8u::dividend , byte div16u8u::divisor) -word div16u8u::dividend -word div16u8u::dividend#0 dividend zp[2]:5 420.59999999999997 -byte div16u8u::divisor -byte div16u8u::divisor#0 divisor zp[1]:9 420.59999999999997 -word div16u8u::quotient -byte div16u8u::quotient_hi -byte div16u8u::quotient_lo -word div16u8u::return -byte divr8u(byte divr8u::dividend , byte divr8u::divisor , byte divr8u::rem) -byte~ divr8u::$1 reg byte a 2.0000002E7 -byte divr8u::dividend -byte divr8u::dividend#0 dividend zp[1]:10 2500000.25 -byte divr8u::dividend#1 dividend zp[1]:10 1001.0 -byte divr8u::dividend#2 dividend zp[1]:10 667.3333333333334 -byte divr8u::dividend#3 dividend zp[1]:10 5001667.333333333 -byte divr8u::dividend#5 dividend zp[1]:10 12003.0 -byte divr8u::divisor -byte divr8u::divisor#0 divisor zp[1]:9 2002.0 -byte divr8u::divisor#1 divisor zp[1]:9 1001.0 -byte divr8u::divisor#6 divisor zp[1]:9 1333466.933333333 -byte divr8u::i -byte divr8u::i#1 reg byte x 1.50000015E7 -byte divr8u::i#2 reg byte x 1666666.8333333333 -byte divr8u::quotient -byte divr8u::quotient#1 quotient zp[1]:11 1.50000015E7 -byte divr8u::quotient#2 quotient zp[1]:11 1.0000001E7 -byte divr8u::quotient#3 quotient zp[1]:11 2857143.1428571427 -byte divr8u::rem -byte divr8u::rem#0 reg byte y 1.0000001E7 -byte divr8u::rem#1 reg byte y 2.0000002E7 -byte divr8u::rem#10 reg byte y 11002.0 -byte divr8u::rem#11 reg byte y 1.0003334666666666E7 -byte divr8u::rem#2 reg byte y 2.0000002E7 -byte divr8u::rem#4 reg byte y 2002.0 -byte divr8u::rem#5 reg byte y 2.0010003E7 -byte divr8u::rem#6 reg byte y 1.0000001E7 -byte divr8u::return -byte divr8u::return#0 return zp[1]:11 1.0000001E7 +__constant char DIGITS[] = "0123456789abcdef"z +__constant unsigned int PRIMES[$3e8] = { fill( $3e8, 0) } +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char decimal_digits[6] = { fill( 6, 0) } +unsigned int div16u8u(unsigned int dividend , char divisor) +unsigned int div16u8u::dividend +unsigned int div16u8u::dividend#0 // dividend zp[2]:5 420.59999999999997 +char div16u8u::divisor +char div16u8u::divisor#0 // divisor zp[1]:9 420.59999999999997 +unsigned int div16u8u::quotient +char div16u8u::quotient_hi +char div16u8u::quotient_lo +unsigned int div16u8u::return +char divr8u(char dividend , char divisor , char rem) +char divr8u::$1 // reg byte a 2.0000002E7 +char divr8u::dividend +char divr8u::dividend#0 // dividend zp[1]:10 2500000.25 +char divr8u::dividend#1 // dividend zp[1]:10 1001.0 +char divr8u::dividend#2 // dividend zp[1]:10 667.3333333333334 +char divr8u::dividend#3 // dividend zp[1]:10 5001667.333333333 +char divr8u::dividend#5 // dividend zp[1]:10 12003.0 +char divr8u::divisor +char divr8u::divisor#0 // divisor zp[1]:9 2002.0 +char divr8u::divisor#1 // divisor zp[1]:9 1001.0 +char divr8u::divisor#6 // divisor zp[1]:9 1333466.933333333 +char divr8u::i +char divr8u::i#1 // reg byte x 1.50000015E7 +char divr8u::i#2 // reg byte x 1666666.8333333333 +char divr8u::quotient +char divr8u::quotient#1 // quotient zp[1]:11 1.50000015E7 +char divr8u::quotient#2 // quotient zp[1]:11 1.0000001E7 +char divr8u::quotient#3 // quotient zp[1]:11 2857143.1428571427 +char divr8u::rem +char divr8u::rem#0 // reg byte y 1.0000001E7 +char divr8u::rem#1 // reg byte y 2.0000002E7 +char divr8u::rem#10 // reg byte y 11002.0 +char divr8u::rem#11 // reg byte y 1.0003334666666666E7 +char divr8u::rem#2 // reg byte y 2.0000002E7 +char divr8u::rem#4 // reg byte y 2002.0 +char divr8u::rem#5 // reg byte y 2.0010003E7 +char divr8u::rem#6 // reg byte y 1.0000001E7 +char divr8u::return +char divr8u::return#0 // return zp[1]:11 1.0000001E7 void main() -word~ main::$0 zp[2]:7 22.0 -byte~ main::$12 reg byte a 11.0 -byte~ main::$13 reg byte x 50.5 -word~ main::$14 zp[2]:17 22.0 -word*~ main::$15 zp[2]:17 22.0 -byte main::p -byte main::p#0 reg byte a 16.5 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 20002.0 -byte mul8u::a -byte mul8u::a#0 reg byte x 10001.0 -byte mul8u::a#1 reg byte x 37.33333333333333 -byte mul8u::a#2 reg byte x 6684.166666666666 -byte mul8u::b -byte mul8u::b#0 reg byte a 11.0 -word mul8u::mb -word mul8u::mb#0 mb zp[2]:17 202.0 -word mul8u::mb#1 mb zp[2]:17 20002.0 -word mul8u::mb#2 mb zp[2]:17 4300.571428571429 -word mul8u::res -word mul8u::res#1 res zp[2]:7 20002.0 -word mul8u::res#2 res zp[2]:7 5002.333333333333 -word mul8u::res#6 res zp[2]:7 10001.0 -word mul8u::return -word mul8u::return#2 return zp[2]:7 22.0 -word potential -word potential#1 potential zp[2]:5 22.0 -word potential#10 potential zp[2]:5 59.28571428571429 -word potential#11 potential zp[2]:5 30.545454545454547 -word potential#15 potential zp[2]:5 3.0 -word potential#2 potential zp[2]:5 202.0 -word prime_idx -word prime_idx#1 prime_idx zp[2]:3 4.888888888888889 -word prime_idx#17 prime_idx zp[2]:3 1.0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 200002.0 -byte print_char::ch#2 reg byte a 1100002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:15 210100.40000000002 -byte* print_char_cursor#17 print_char_cursor zp[2]:15 183335.50000000003 -byte* print_char_cursor#34 print_char_cursor zp[2]:15 32.64516129032258 -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:13 200002.0 -byte* print_str::str#2 str zp[2]:13 100001.0 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 w zp[2]:5 112.0 -byte rem8u -byte rem8u#0 reg byte y 1233.6666666666665 -byte test_idx -byte test_idx#1 test_idx zp[1]:12 101.0 -byte test_idx#10 test_idx zp[1]:12 151.5 -byte test_idx#7 test_idx zp[1]:12 60.599999999999994 -byte test_last -byte test_last#1 test_last zp[1]:2 22.0 -byte test_last#13 test_last zp[1]:2 4.888888888888889 -byte test_last#19 test_last zp[1]:2 6.380952380952381 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 200002.0 -byte~ utoa::$11 reg byte x 2002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:13 28714.714285714286 -byte* utoa::buffer#14 buffer zp[2]:13 150001.5 -byte* utoa::buffer#4 buffer zp[2]:13 2002.0 -byte* utoa::buffer#5 buffer zp[2]:13 200002.0 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:12 200002.0 -byte utoa::digit#2 digit zp[1]:12 28571.714285714286 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:19 60000.600000000006 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 50000.5 -byte utoa::started#4 reg byte x 100001.0 -word utoa::value -word utoa::value#0 value zp[2]:17 551.0 -word utoa::value#1 value zp[2]:17 100001.0 -word utoa::value#2 value zp[2]:17 57286.42857142857 -word utoa::value#6 value zp[2]:17 150001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:13 137500.25 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.000000001E9 -byte utoa_append::digit#2 reg byte x 1.0005000015E9 -word utoa_append::return -word utoa_append::return#0 return zp[2]:17 200002.0 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:19 3.333500005E8 -word utoa_append::value -word utoa_append::value#0 value zp[2]:17 366667.3333333334 -word utoa_append::value#1 value zp[2]:17 2.000000002E9 -word utoa_append::value#2 value zp[2]:17 5.0018333416666675E8 +unsigned int main::$0 // zp[2]:7 22.0 +char main::$12 // reg byte a 11.0 +char main::$13 // reg byte x 50.5 +unsigned int main::$14 // zp[2]:17 22.0 +unsigned int *main::$15 // zp[2]:17 22.0 +char main::p +char main::p#0 // reg byte a 16.5 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 20002.0 +char mul8u::a +char mul8u::a#0 // reg byte x 10001.0 +char mul8u::a#1 // reg byte x 37.33333333333333 +char mul8u::a#2 // reg byte x 6684.166666666666 +char mul8u::b +char mul8u::b#0 // reg byte a 11.0 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 // mb zp[2]:17 202.0 +unsigned int mul8u::mb#1 // mb zp[2]:17 20002.0 +unsigned int mul8u::mb#2 // mb zp[2]:17 4300.571428571429 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:7 20002.0 +unsigned int mul8u::res#2 // res zp[2]:7 5002.333333333333 +unsigned int mul8u::res#6 // res zp[2]:7 10001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:7 22.0 +unsigned int potential +unsigned int potential#1 // potential zp[2]:5 22.0 +unsigned int potential#10 // potential zp[2]:5 59.28571428571429 +unsigned int potential#11 // potential zp[2]:5 30.545454545454547 +unsigned int potential#15 // potential zp[2]:5 3.0 +unsigned int potential#2 // potential zp[2]:5 202.0 +unsigned int prime_idx +unsigned int prime_idx#1 // prime_idx zp[2]:3 4.888888888888889 +unsigned int prime_idx#17 // prime_idx zp[2]:3 1.0 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 200002.0 +char print_char::ch#2 // reg byte a 1100002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:15 210100.40000000002 +char *print_char_cursor#17 // print_char_cursor zp[2]:15 183335.50000000003 +char *print_char_cursor#34 // print_char_cursor zp[2]:15 32.64516129032258 +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:13 200002.0 +char *print_str::str#2 // str zp[2]:13 100001.0 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 // w zp[2]:5 112.0 +char rem8u +char rem8u#0 // reg byte y 1233.6666666666665 +char test_idx +char test_idx#1 // test_idx zp[1]:12 101.0 +char test_idx#10 // test_idx zp[1]:12 151.5 +char test_idx#7 // test_idx zp[1]:12 60.599999999999994 +char test_last +char test_last#1 // test_last zp[1]:2 22.0 +char test_last#13 // test_last zp[1]:2 4.888888888888889 +char test_last#19 // test_last zp[1]:2 6.380952380952381 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 200002.0 +char utoa::$11 // reg byte x 2002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:13 28714.714285714286 +char *utoa::buffer#14 // buffer zp[2]:13 150001.5 +char *utoa::buffer#4 // buffer zp[2]:13 2002.0 +char *utoa::buffer#5 // buffer zp[2]:13 200002.0 +char utoa::digit +char utoa::digit#1 // digit zp[1]:12 200002.0 +char utoa::digit#2 // digit zp[1]:12 28571.714285714286 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:19 60000.600000000006 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 50000.5 +char utoa::started#4 // reg byte x 100001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:17 551.0 +unsigned int utoa::value#1 // value zp[2]:17 100001.0 +unsigned int utoa::value#2 // value zp[2]:17 57286.42857142857 +unsigned int utoa::value#6 // value zp[2]:17 150001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:13 137500.25 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.000000001E9 +char utoa_append::digit#2 // reg byte x 1.0005000015E9 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:17 200002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:19 3.333500005E8 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:17 366667.3333333334 +unsigned int utoa_append::value#1 // value zp[2]:17 2.000000002E9 +unsigned int utoa_append::value#2 // value zp[2]:17 5.0018333416666675E8 zp[1]:2 [ test_last#13 test_last#19 test_last#1 ] zp[2]:3 [ prime_idx#17 prime_idx#1 ] @@ -3560,7 +3560,7 @@ Score: 139370 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .label print_screen = $400 .label print_char_cursor = $f // The number currently being tested for whether it is a prime @@ -3578,17 +3578,17 @@ main: { .label __14 = $11 .label __15 = $11 // PRIMES[1] = 2 - // [0] *(PRIMES+1*SIZEOF_WORD) = 2 -- _deref_pwuc1=vbuc2 + // [0] *(PRIMES+1*SIZEOF_UNSIGNED_INT) = 2 -- _deref_pwuc1=vbuc2 lda #<2 - sta PRIMES+1*SIZEOF_WORD + sta PRIMES+1*SIZEOF_UNSIGNED_INT lda #>2 - sta PRIMES+1*SIZEOF_WORD+1 + sta PRIMES+1*SIZEOF_UNSIGNED_INT+1 // PRIMES[2] = 3 - // [1] *(PRIMES+2*SIZEOF_WORD) = 3 -- _deref_pwuc1=vbuc2 + // [1] *(PRIMES+2*SIZEOF_UNSIGNED_INT) = 3 -- _deref_pwuc1=vbuc2 lda #<3 - sta PRIMES+2*SIZEOF_WORD + sta PRIMES+2*SIZEOF_UNSIGNED_INT lda #>3 - sta PRIMES+2*SIZEOF_WORD+1 + sta PRIMES+2*SIZEOF_UNSIGNED_INT+1 // [2] phi from main to main::@1 [phi:main->main::@1] // [2] phi print_char_cursor#34 = print_screen#0 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #main::@10] // main::@10 // print_char(' ') - // [31] call print_char + // [31] call print_char // [57] phi from main::@10 to print_char [phi:main::@10->print_char] // [57] phi print_char::ch#2 = ' ' [phi:main::@10->print_char#0] -- vbuaa=vbuc1 lda #' ' @@ -3776,13 +3776,13 @@ main: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a, byte register(A) b) +// __zp(7) unsigned int mul8u(__register(X) char a, __register(A) char b) mul8u: { .label mb = $11 .label res = 7 .label return = 7 // unsigned int mb = b - // [34] mul8u::mb#0 = (word)mul8u::b#0 -- vwuz1=_word_vbuaa + // [34] mul8u::mb#0 = (unsigned int)mul8u::b#0 -- vwuz1=_word_vbuaa sta.z mb lda #0 sta.z mb+1 @@ -3844,7 +3844,7 @@ mul8u: { // div16u8u // Divide unsigned 16-bit unsigned long dividend with a 8-bit unsigned char divisor // The 8-bit unsigned char remainder can be found in rem8u after the division -// div16u8u(word zp(5) dividend, byte zp(9) divisor) +// unsigned int div16u8u(__zp(5) unsigned int dividend, __zp(9) char divisor) div16u8u: { .label dividend = 5 .label divisor = 9 @@ -3853,7 +3853,7 @@ div16u8u: { lda.z dividend+1 sta.z divr8u.dividend // [45] divr8u::divisor#0 = div16u8u::divisor#0 - // [46] call divr8u + // [46] call divr8u // [61] phi from div16u8u to divr8u [phi:div16u8u->divr8u] // [61] phi divr8u::divisor#6 = divr8u::divisor#0 [phi:div16u8u->divr8u#0] -- register_copy // [61] phi divr8u::dividend#5 = divr8u::dividend#1 [phi:div16u8u->divr8u#1] -- register_copy @@ -3867,7 +3867,7 @@ div16u8u: { sta.z divr8u.dividend // [48] divr8u::divisor#1 = div16u8u::divisor#0 // [49] divr8u::rem#4 = rem8u#0 - // [50] call divr8u + // [50] call divr8u // [61] phi from div16u8u::@1 to divr8u [phi:div16u8u::@1->divr8u] // [61] phi divr8u::divisor#6 = divr8u::divisor#1 [phi:div16u8u::@1->divr8u#0] -- register_copy // [61] phi divr8u::dividend#5 = divr8u::dividend#2 [phi:div16u8u::@1->divr8u#1] -- register_copy @@ -3880,7 +3880,7 @@ div16u8u: { } // print_uint_decimal // Print a unsigned int as DECIMAL -// print_uint_decimal(word zp(5) w) +// void print_uint_decimal(__zp(5) unsigned int w) print_uint_decimal: { .label w = 5 // utoa(w, decimal_digits, DECIMAL) @@ -3889,13 +3889,13 @@ print_uint_decimal: { sta.z utoa.value lda.z w+1 sta.z utoa.value+1 - // [53] call utoa + // [53] call utoa // [78] phi from print_uint_decimal to utoa [phi:print_uint_decimal->utoa] jsr utoa // [54] phi from print_uint_decimal to print_uint_decimal::@1 [phi:print_uint_decimal->print_uint_decimal::@1] // print_uint_decimal::@1 // print_str(decimal_digits) - // [55] call print_str + // [55] call print_str // [99] phi from print_uint_decimal::@1 to print_str [phi:print_uint_decimal::@1->print_str] jsr print_str // print_uint_decimal::@return @@ -3905,7 +3905,7 @@ print_uint_decimal: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [58] *print_char_cursor#1 = print_char::ch#2 -- _deref_pbuz1=vbuaa @@ -3927,7 +3927,7 @@ print_char: { // Returns dividend/divisor. // The final remainder will be set into the global variable rem8u // Implemented using simple binary division -// divr8u(byte zp($a) dividend, byte zp(9) divisor, byte register(Y) rem) +// __zp($b) char divr8u(__zp($a) char dividend, __zp(9) char divisor, __register(Y) char rem) divr8u: { .label dividend = $a .label quotient = $b @@ -4016,7 +4016,7 @@ divr8u: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($11) value, byte* zp($d) buffer) +// void utoa(__zp($11) unsigned int value, __zp($d) char *buffer, char radix) utoa: { .const max_digits = 5 .label value = $11 @@ -4044,7 +4044,7 @@ utoa: { bcc __b2 // utoa::@3 // *buffer++ = DIGITS[(char)value] - // [81] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [81] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [82] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -4111,7 +4111,7 @@ utoa: { // [92] utoa_append::buffer#0 = utoa::buffer#11 // [93] utoa_append::value#0 = utoa::value#2 // [94] utoa_append::sub#0 = utoa::digit_value#0 - // [95] call utoa_append + // [95] call utoa_append // [106] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) @@ -4134,7 +4134,7 @@ utoa: { } // print_str // Print a zero-terminated string -// print_str(byte* zp($d) str) +// void print_str(__zp($d) char *str) print_str: { .label str = $d // [100] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -4162,7 +4162,7 @@ print_str: { // [103] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [104] call print_char + // [104] call print_char // [57] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [57] phi print_char::ch#2 = print_char::ch#0 [phi:print_str::@2->print_char#0] -- register_copy jsr print_char @@ -4187,7 +4187,7 @@ print_str: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($d) buffer, word zp($11) value, word zp($13) sub) +// __zp($11) unsigned int utoa_append(__zp($d) char *buffer, __zp($11) unsigned int value, __zp($13) unsigned int sub) utoa_append: { .label buffer = $d .label value = $11 diff --git a/src/test/ref/primes-1000-2.sym b/src/test/ref/primes-1000-2.sym index 42ab2eb5f..6a8a91afb 100644 --- a/src/test/ref/primes-1000-2.sym +++ b/src/test/ref/primes-1000-2.sym @@ -1,153 +1,153 @@ -constant byte* DIGITS[] = "0123456789abcdef"z -constant word* PRIMES[$3e8] = { fill( $3e8, 0) } -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant byte SIZEOF_WORD = 2 -constant byte* decimal_digits[6] = { fill( 6, 0) } -word div16u8u(word div16u8u::dividend , byte div16u8u::divisor) -word div16u8u::dividend -word div16u8u::dividend#0 dividend zp[2]:5 420.59999999999997 -byte div16u8u::divisor -byte div16u8u::divisor#0 divisor zp[1]:9 420.59999999999997 -word div16u8u::quotient -byte div16u8u::quotient_hi -byte div16u8u::quotient_lo -word div16u8u::return -byte divr8u(byte divr8u::dividend , byte divr8u::divisor , byte divr8u::rem) -byte~ divr8u::$1 reg byte a 2.0000002E7 -byte divr8u::dividend -byte divr8u::dividend#0 dividend zp[1]:10 2500000.25 -byte divr8u::dividend#1 dividend zp[1]:10 1001.0 -byte divr8u::dividend#2 dividend zp[1]:10 667.3333333333334 -byte divr8u::dividend#3 dividend zp[1]:10 5001667.333333333 -byte divr8u::dividend#5 dividend zp[1]:10 12003.0 -byte divr8u::divisor -byte divr8u::divisor#0 divisor zp[1]:9 2002.0 -byte divr8u::divisor#1 divisor zp[1]:9 1001.0 -byte divr8u::divisor#6 divisor zp[1]:9 1333466.933333333 -byte divr8u::i -byte divr8u::i#1 reg byte x 1.50000015E7 -byte divr8u::i#2 reg byte x 1666666.8333333333 -byte divr8u::quotient -byte divr8u::quotient#1 quotient zp[1]:11 1.50000015E7 -byte divr8u::quotient#2 quotient zp[1]:11 1.0000001E7 -byte divr8u::quotient#3 quotient zp[1]:11 2857143.1428571427 -byte divr8u::rem -byte divr8u::rem#0 reg byte y 1.0000001E7 -byte divr8u::rem#1 reg byte y 2.0000002E7 -byte divr8u::rem#10 reg byte y 11002.0 -byte divr8u::rem#11 reg byte y 1.0003334666666666E7 -byte divr8u::rem#2 reg byte y 2.0000002E7 -byte divr8u::rem#4 reg byte y 2002.0 -byte divr8u::rem#5 reg byte y 2.0010003E7 -byte divr8u::rem#6 reg byte y 1.0000001E7 -byte divr8u::return -byte divr8u::return#0 return zp[1]:11 1.0000001E7 +__constant char DIGITS[] = "0123456789abcdef"z +__constant unsigned int PRIMES[$3e8] = { fill( $3e8, 0) } +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char decimal_digits[6] = { fill( 6, 0) } +unsigned int div16u8u(unsigned int dividend , char divisor) +unsigned int div16u8u::dividend +unsigned int div16u8u::dividend#0 // dividend zp[2]:5 420.59999999999997 +char div16u8u::divisor +char div16u8u::divisor#0 // divisor zp[1]:9 420.59999999999997 +unsigned int div16u8u::quotient +char div16u8u::quotient_hi +char div16u8u::quotient_lo +unsigned int div16u8u::return +char divr8u(char dividend , char divisor , char rem) +char divr8u::$1 // reg byte a 2.0000002E7 +char divr8u::dividend +char divr8u::dividend#0 // dividend zp[1]:10 2500000.25 +char divr8u::dividend#1 // dividend zp[1]:10 1001.0 +char divr8u::dividend#2 // dividend zp[1]:10 667.3333333333334 +char divr8u::dividend#3 // dividend zp[1]:10 5001667.333333333 +char divr8u::dividend#5 // dividend zp[1]:10 12003.0 +char divr8u::divisor +char divr8u::divisor#0 // divisor zp[1]:9 2002.0 +char divr8u::divisor#1 // divisor zp[1]:9 1001.0 +char divr8u::divisor#6 // divisor zp[1]:9 1333466.933333333 +char divr8u::i +char divr8u::i#1 // reg byte x 1.50000015E7 +char divr8u::i#2 // reg byte x 1666666.8333333333 +char divr8u::quotient +char divr8u::quotient#1 // quotient zp[1]:11 1.50000015E7 +char divr8u::quotient#2 // quotient zp[1]:11 1.0000001E7 +char divr8u::quotient#3 // quotient zp[1]:11 2857143.1428571427 +char divr8u::rem +char divr8u::rem#0 // reg byte y 1.0000001E7 +char divr8u::rem#1 // reg byte y 2.0000002E7 +char divr8u::rem#10 // reg byte y 11002.0 +char divr8u::rem#11 // reg byte y 1.0003334666666666E7 +char divr8u::rem#2 // reg byte y 2.0000002E7 +char divr8u::rem#4 // reg byte y 2002.0 +char divr8u::rem#5 // reg byte y 2.0010003E7 +char divr8u::rem#6 // reg byte y 1.0000001E7 +char divr8u::return +char divr8u::return#0 // return zp[1]:11 1.0000001E7 void main() -word~ main::$0 zp[2]:7 22.0 -byte~ main::$12 reg byte a 11.0 -byte~ main::$13 reg byte x 50.5 -word~ main::$14 zp[2]:17 22.0 -word*~ main::$15 zp[2]:17 22.0 -byte main::p -byte main::p#0 reg byte a 16.5 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 20002.0 -byte mul8u::a -byte mul8u::a#0 reg byte x 10001.0 -byte mul8u::a#1 reg byte x 37.33333333333333 -byte mul8u::a#2 reg byte x 6684.166666666666 -byte mul8u::b -byte mul8u::b#0 reg byte a 11.0 -word mul8u::mb -word mul8u::mb#0 mb zp[2]:17 202.0 -word mul8u::mb#1 mb zp[2]:17 20002.0 -word mul8u::mb#2 mb zp[2]:17 4300.571428571429 -word mul8u::res -word mul8u::res#1 res zp[2]:7 20002.0 -word mul8u::res#2 res zp[2]:7 5002.333333333333 -word mul8u::res#6 res zp[2]:7 10001.0 -word mul8u::return -word mul8u::return#2 return zp[2]:7 22.0 -word potential -word potential#1 potential zp[2]:5 22.0 -word potential#10 potential zp[2]:5 59.28571428571429 -word potential#11 potential zp[2]:5 30.545454545454547 -word potential#15 potential zp[2]:5 3.0 -word potential#2 potential zp[2]:5 202.0 -word prime_idx -word prime_idx#1 prime_idx zp[2]:3 4.888888888888889 -word prime_idx#17 prime_idx zp[2]:3 1.0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 200002.0 -byte print_char::ch#2 reg byte a 1100002.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:15 210100.40000000002 -byte* print_char_cursor#17 print_char_cursor zp[2]:15 183335.50000000003 -byte* print_char_cursor#34 print_char_cursor zp[2]:15 32.64516129032258 -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:13 200002.0 -byte* print_str::str#2 str zp[2]:13 100001.0 -void print_uint_decimal(word print_uint_decimal::w) -word print_uint_decimal::w -word print_uint_decimal::w#0 w zp[2]:5 112.0 -byte rem8u -byte rem8u#0 reg byte y 1233.6666666666665 -byte test_idx -byte test_idx#1 test_idx zp[1]:12 101.0 -byte test_idx#10 test_idx zp[1]:12 151.5 -byte test_idx#7 test_idx zp[1]:12 60.599999999999994 -byte test_last -byte test_last#1 test_last zp[1]:2 22.0 -byte test_last#13 test_last zp[1]:2 4.888888888888889 -byte test_last#19 test_last zp[1]:2 6.380952380952381 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 200002.0 -byte~ utoa::$11 reg byte x 2002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:13 28714.714285714286 -byte* utoa::buffer#14 buffer zp[2]:13 150001.5 -byte* utoa::buffer#4 buffer zp[2]:13 2002.0 -byte* utoa::buffer#5 buffer zp[2]:13 200002.0 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:12 200002.0 -byte utoa::digit#2 digit zp[1]:12 28571.714285714286 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:19 60000.600000000006 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 50000.5 -byte utoa::started#4 reg byte x 100001.0 -word utoa::value -word utoa::value#0 value zp[2]:17 551.0 -word utoa::value#1 value zp[2]:17 100001.0 -word utoa::value#2 value zp[2]:17 57286.42857142857 -word utoa::value#6 value zp[2]:17 150001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:13 137500.25 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.000000001E9 -byte utoa_append::digit#2 reg byte x 1.0005000015E9 -word utoa_append::return -word utoa_append::return#0 return zp[2]:17 200002.0 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:19 3.333500005E8 -word utoa_append::value -word utoa_append::value#0 value zp[2]:17 366667.3333333334 -word utoa_append::value#1 value zp[2]:17 2.000000002E9 -word utoa_append::value#2 value zp[2]:17 5.0018333416666675E8 +unsigned int main::$0 // zp[2]:7 22.0 +char main::$12 // reg byte a 11.0 +char main::$13 // reg byte x 50.5 +unsigned int main::$14 // zp[2]:17 22.0 +unsigned int *main::$15 // zp[2]:17 22.0 +char main::p +char main::p#0 // reg byte a 16.5 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 20002.0 +char mul8u::a +char mul8u::a#0 // reg byte x 10001.0 +char mul8u::a#1 // reg byte x 37.33333333333333 +char mul8u::a#2 // reg byte x 6684.166666666666 +char mul8u::b +char mul8u::b#0 // reg byte a 11.0 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 // mb zp[2]:17 202.0 +unsigned int mul8u::mb#1 // mb zp[2]:17 20002.0 +unsigned int mul8u::mb#2 // mb zp[2]:17 4300.571428571429 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:7 20002.0 +unsigned int mul8u::res#2 // res zp[2]:7 5002.333333333333 +unsigned int mul8u::res#6 // res zp[2]:7 10001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:7 22.0 +unsigned int potential +unsigned int potential#1 // potential zp[2]:5 22.0 +unsigned int potential#10 // potential zp[2]:5 59.28571428571429 +unsigned int potential#11 // potential zp[2]:5 30.545454545454547 +unsigned int potential#15 // potential zp[2]:5 3.0 +unsigned int potential#2 // potential zp[2]:5 202.0 +unsigned int prime_idx +unsigned int prime_idx#1 // prime_idx zp[2]:3 4.888888888888889 +unsigned int prime_idx#17 // prime_idx zp[2]:3 1.0 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 200002.0 +char print_char::ch#2 // reg byte a 1100002.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:15 210100.40000000002 +char *print_char_cursor#17 // print_char_cursor zp[2]:15 183335.50000000003 +char *print_char_cursor#34 // print_char_cursor zp[2]:15 32.64516129032258 +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:13 200002.0 +char *print_str::str#2 // str zp[2]:13 100001.0 +void print_uint_decimal(unsigned int w) +unsigned int print_uint_decimal::w +unsigned int print_uint_decimal::w#0 // w zp[2]:5 112.0 +char rem8u +char rem8u#0 // reg byte y 1233.6666666666665 +char test_idx +char test_idx#1 // test_idx zp[1]:12 101.0 +char test_idx#10 // test_idx zp[1]:12 151.5 +char test_idx#7 // test_idx zp[1]:12 60.599999999999994 +char test_last +char test_last#1 // test_last zp[1]:2 22.0 +char test_last#13 // test_last zp[1]:2 4.888888888888889 +char test_last#19 // test_last zp[1]:2 6.380952380952381 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 200002.0 +char utoa::$11 // reg byte x 2002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:13 28714.714285714286 +char *utoa::buffer#14 // buffer zp[2]:13 150001.5 +char *utoa::buffer#4 // buffer zp[2]:13 2002.0 +char *utoa::buffer#5 // buffer zp[2]:13 200002.0 +char utoa::digit +char utoa::digit#1 // digit zp[1]:12 200002.0 +char utoa::digit#2 // digit zp[1]:12 28571.714285714286 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:19 60000.600000000006 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 50000.5 +char utoa::started#4 // reg byte x 100001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:17 551.0 +unsigned int utoa::value#1 // value zp[2]:17 100001.0 +unsigned int utoa::value#2 // value zp[2]:17 57286.42857142857 +unsigned int utoa::value#6 // value zp[2]:17 150001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:13 137500.25 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.000000001E9 +char utoa_append::digit#2 // reg byte x 1.0005000015E9 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:17 200002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:19 3.333500005E8 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:17 366667.3333333334 +unsigned int utoa_append::value#1 // value zp[2]:17 2.000000002E9 +unsigned int utoa_append::value#2 // value zp[2]:17 5.0018333416666675E8 zp[1]:2 [ test_last#13 test_last#19 test_last#1 ] zp[2]:3 [ prime_idx#17 prime_idx#1 ] diff --git a/src/test/ref/print-problem.log b/src/test/ref/print-problem.log index 0acc42cf5..660c6d482 100644 --- a/src/test/ref/print-problem.log +++ b/src/test/ref/print-problem.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,7 +6,7 @@ void main() main: scope:[main] from __start::@1 ch#18 = phi( __start::@1/ch#19 ) line#17 = phi( __start::@1/line#18 ) - call ln + call ln to:main::@1 main::@1: scope:[main] from main ch#11 = phi( main/ch#7 ) @@ -14,7 +14,7 @@ main::@1: scope:[main] from main line#0 = line#9 ch#0 = ch#11 ch#1 = ++ ch#0 - call ln + call ln to:main::@2 main::@2: scope:[main] from main::@1 ch#12 = phi( main::@1/ch#7 ) @@ -22,7 +22,7 @@ main::@2: scope:[main] from main::@1 line#1 = line#10 ch#2 = ch#12 ch#3 = ++ ch#2 - call ln + call ln to:main::@3 main::@3: scope:[main] from main::@2 ch#13 = phi( main::@2/ch#7 ) @@ -66,7 +66,7 @@ __start::__init1: scope:[__start] from __start __start::@1: scope:[__start] from __start::__init1 ch#19 = phi( __start::__init1/ch#8 ) line#18 = phi( __start::__init1/line#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 ch#16 = phi( __start::@1/ch#5 ) @@ -83,66 +83,66 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -byte ch -byte ch#0 -byte ch#1 -byte ch#10 -byte ch#11 -byte ch#12 -byte ch#13 -byte ch#14 -byte ch#15 -byte ch#16 -byte ch#17 -byte ch#18 -byte ch#19 -byte ch#2 -byte ch#3 -byte ch#4 -byte ch#5 -byte ch#6 -byte ch#7 -byte ch#8 -byte ch#9 -byte line -byte line#0 -byte line#1 -byte line#10 -byte line#11 -byte line#12 -byte line#13 -byte line#14 -byte line#15 -byte line#16 -byte line#17 -byte line#18 -byte line#2 -byte line#3 -byte line#4 -byte line#5 -byte line#6 -byte line#7 -byte line#8 -byte line#9 +char ch +char ch#0 +char ch#1 +char ch#10 +char ch#11 +char ch#12 +char ch#13 +char ch#14 +char ch#15 +char ch#16 +char ch#17 +char ch#18 +char ch#19 +char ch#2 +char ch#3 +char ch#4 +char ch#5 +char ch#6 +char ch#7 +char ch#8 +char ch#9 +char line +char line#0 +char line#1 +char line#10 +char line#11 +char line#12 +char line#13 +char line#14 +char line#15 +char line#16 +char line#17 +char line#18 +char line#2 +char line#3 +char line#4 +char line#5 +char line#6 +char line#7 +char line#8 +char line#9 void ln() -number~ ln::$0 +number ln::$0 void main() -byte*~ main::$3 +char *main::$3 Adding number conversion cast (unumber) $28 in main::$3 = SCREEN + $28 Adding number conversion cast (unumber) 2 in ln::$0 = line#13 + 2 Adding number conversion cast (unumber) ln::$0 in ln::$0 = line#13 + (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in ln::$0 = line#13 + 2 +Inferred type updated to char in ln::$0 = line#13 + 2 Alias line#0 = line#9 Alias ch#0 = ch#11 Alias line#1 = line#10 @@ -201,15 +201,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call ln + [1] call ln to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call ln + [3] call ln to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call ln + [5] call ln to:main::@3 main::@3: scope:[main] from main::@2 [6] *SCREEN = line#14 @@ -230,10 +230,10 @@ ln::@return: scope:[ln] from ln VARIABLE REGISTER WEIGHTS -byte ch -byte line -byte line#13 15.0 -byte line#14 2.375 +char ch +char line +char line#13 // 15.0 +char line#14 // 2.375 void ln() void main() @@ -270,7 +270,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call ln + // [1] call ln // [9] phi from main to ln [phi:main->ln] ln_from_main: // [9] phi line#13 = $40 [phi:main->ln#0] -- vbuaa=vbuc1 @@ -281,7 +281,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call ln + // [3] call ln // [9] phi from main::@1 to ln [phi:main::@1->ln] ln_from___b1: // [9] phi line#13 = line#14 [phi:main::@1->ln#0] -- register_copy @@ -291,7 +291,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call ln + // [5] call ln // [9] phi from main::@2 to ln [phi:main::@2->ln] ln_from___b2: // [9] phi line#13 = line#14 [phi:main::@2->ln#0] -- register_copy @@ -343,11 +343,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -byte ch -byte line -byte line#13 reg byte a 15.0 -byte line#14 reg byte a 2.375 +__constant char *SCREEN = (char *) 1024 +char ch +char line +char line#13 // reg byte a 15.0 +char line#14 // reg byte a 2.375 void ln() void main() @@ -373,7 +373,7 @@ Score: 44 // main main: { // ln() - // [1] call ln + // [1] call ln // [9] phi from main to ln [phi:main->ln] // [9] phi line#13 = $40 [phi:main->ln#0] -- vbuaa=vbuc1 lda #$40 @@ -381,14 +381,14 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // ln() - // [3] call ln + // [3] call ln // [9] phi from main::@1 to ln [phi:main::@1->ln] // [9] phi line#13 = line#14 [phi:main::@1->ln#0] -- register_copy jsr ln // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // ln() - // [5] call ln + // [5] call ln // [9] phi from main::@2 to ln [phi:main::@2->ln] // [9] phi line#13 = line#14 [phi:main::@2->ln#0] -- register_copy jsr ln diff --git a/src/test/ref/print-problem.sym b/src/test/ref/print-problem.sym index 15631b2e2..780adabb0 100644 --- a/src/test/ref/print-problem.sym +++ b/src/test/ref/print-problem.sym @@ -1,8 +1,8 @@ -constant byte* SCREEN = (byte*) 1024 -byte ch -byte line -byte line#13 reg byte a 15.0 -byte line#14 reg byte a 2.375 +__constant char *SCREEN = (char *) 1024 +char ch +char line +char line#13 // reg byte a 15.0 +char line#14 // reg byte a 2.375 void ln() void main() diff --git a/src/test/ref/printf-1.asm b/src/test/ref/printf-1.asm index 2d3a1005e..17ccd60ce 100644 --- a/src/test/ref/printf-1.asm +++ b/src/test/ref/printf-1.asm @@ -111,7 +111,7 @@ main: { } .segment Code // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $17 @@ -257,7 +257,7 @@ clrscr: { } // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(3) str, byte zp(2) format_justify_left) +// void printf_string(__zp(3) char *str, char format_min_length, __zp(2) char format_justify_left) printf_string: { .label __9 = 6 .label padding = 5 @@ -347,7 +347,7 @@ cputln: { rts } // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($b) str) +// __zp(6) unsigned int strlen(__zp($b) char *str) strlen: { .label len = 6 .label str = $b @@ -377,7 +377,7 @@ strlen: { jmp __b1 } // Print a padding char a number of times -// printf_padding(byte zp(9) pad, byte zp(8) length) +// void printf_padding(__zp(9) char pad, __zp(8) char length) printf_padding: { .label i = $a .label length = 8 @@ -400,7 +400,7 @@ printf_padding: { jmp __b1 } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(3) s) +// void cputs(__zp(3) const char *s) cputs: { .label s = 3 __b1: @@ -484,7 +484,7 @@ cscroll: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -512,7 +512,7 @@ cputc: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($1b) destination, void* zp($b) source) +// void * memcpy(__zp($1b) void *destination, __zp($b) void *source, unsigned int num) memcpy: { .label src_end = $19 .label dst = $1b @@ -554,7 +554,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($b) str, byte register(X) c) +// void * memset(__zp($b) void *str, __register(X) char c, unsigned int num) memset: { .label end = $1b .label dst = $b diff --git a/src/test/ref/printf-1.cfg b/src/test/ref/printf-1.cfg index d9b020bb2..fe9e21654 100644 --- a/src/test/ref/printf-1.cfg +++ b/src/test/ref/printf-1.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -29,7 +29,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -38,41 +38,41 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main [18] phi() - [19] call printf_string + [19] call printf_string to:main::@2 main::@2: scope:[main] from main::@1 [20] phi() - [21] call cputln + [21] call cputln to:main::@3 main::@3: scope:[main] from main::@2 [22] phi() - [23] call printf_string + [23] call printf_string to:main::@4 main::@4: scope:[main] from main::@3 [24] phi() - [25] call cputln + [25] call cputln to:main::@5 main::@5: scope:[main] from main::@4 [26] phi() - [27] call printf_string + [27] call printf_string to:main::@6 main::@6: scope:[main] from main::@5 [28] phi() - [29] call cputln + [29] call cputln to:main::@7 main::@7: scope:[main] from main::@6 [30] phi() - [31] call printf_string + [31] call printf_string to:main::@return main::@return: scope:[main] from main::@7 [32] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [33] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -85,7 +85,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [36] conio_cursor_x = gotoxy::x#2 [37] conio_cursor_y = gotoxy::y#4 - [38] gotoxy::$7 = (word)gotoxy::y#4 + [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 [39] gotoxy::$8 = gotoxy::$7 << 2 [40] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [41] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -132,19 +132,19 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [62] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@1 main::@3 main::@5 main::@7 [63] printf_string::str#10 = phi( main::@1/main::str, main::@3/main::str1, main::@5/main::str, main::@7/main::str1 ) [63] printf_string::format_justify_left#10 = phi( main::@1/0, main::@3/0, main::@5/1, main::@7/1 ) to:printf_string::@3 printf_string::@3: scope:[printf_string] from printf_string [64] strlen::str#1 = printf_string::str#10 - [65] call strlen + [65] call strlen [66] strlen::return#2 = strlen::len#2 to:printf_string::@6 printf_string::@6: scope:[printf_string] from printf_string::@3 [67] printf_string::$9 = strlen::return#2 - [68] printf_string::len#0 = (signed byte)printf_string::$9 + [68] printf_string::len#0 = (signed char)printf_string::$9 [69] printf_string::padding#1 = $a - printf_string::len#0 [70] if(printf_string::padding#1>=0) goto printf_string::@10 to:printf_string::@1 @@ -159,12 +159,12 @@ printf_string::@8: scope:[printf_string] from printf_string::@1 [74] if(0!=printf_string::padding#3) goto printf_string::@4 to:printf_string::@2 printf_string::@4: scope:[printf_string] from printf_string::@8 - [75] printf_padding::length#0 = (byte)printf_string::padding#3 - [76] call printf_padding + [75] printf_padding::length#0 = (char)printf_string::padding#3 + [76] call printf_padding to:printf_string::@2 printf_string::@2: scope:[printf_string] from printf_string::@1 printf_string::@4 printf_string::@8 [77] cputs::s#1 = printf_string::str#10 - [78] call cputs + [78] call cputs to:printf_string::@7 printf_string::@7: scope:[printf_string] from printf_string::@2 [79] if(0==printf_string::format_justify_left#10) goto printf_string::@return @@ -173,8 +173,8 @@ printf_string::@9: scope:[printf_string] from printf_string::@7 [80] if(0!=printf_string::padding#3) goto printf_string::@5 to:printf_string::@return printf_string::@5: scope:[printf_string] from printf_string::@9 - [81] printf_padding::length#1 = (byte)printf_string::padding#3 - [82] call printf_padding + [81] printf_padding::length#1 = (char)printf_string::padding#3 + [82] call printf_padding to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@5 printf_string::@7 printf_string::@9 [83] return @@ -186,13 +186,13 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 main::@2 main::@4 main::@6 [85] conio_line_color = conio_line_color + $28 [86] conio_cursor_x = 0 [87] conio_cursor_y = ++ conio_cursor_y - [88] call cscroll + [88] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [89] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from printf_string::@3 [90] phi() to:strlen::@1 @@ -209,7 +209,7 @@ strlen::@2: scope:[strlen] from strlen::@1 [95] strlen::str#0 = ++ strlen::str#2 to:strlen::@1 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_string::@4 printf_string::@5 [96] printf_padding::pad#4 = phi( printf_string::@4/' ', printf_string::@5/' ' ) [96] printf_padding::length#3 = phi( printf_string::@4/printf_padding::length#0, printf_string::@5/printf_padding::length#1 ) @@ -223,13 +223,13 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 to:@return printf_padding::@2: scope:[printf_padding] from printf_padding::@1 [100] cputc::c#1 = printf_padding::pad#4 - [101] call cputc + [101] call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 [102] printf_padding::i#1 = ++ printf_padding::i#2 to:printf_padding::@1 -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_string::@2 [103] phi() to:cputs::@1 @@ -244,7 +244,7 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [109] cputc::c#0 = cputs::c#1 - [110] call cputc + [110] call cputc to:cputs::@1 void cscroll() @@ -253,19 +253,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [112] phi() - [113] call memcpy + [113] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [114] phi() - [115] call memcpy + [115] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [116] phi() - [117] call memset + [117] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [118] phi() - [119] call memset + [119] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [120] conio_line_text = conio_line_text - $28 @@ -276,7 +276,7 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [123] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_padding::@2 [124] cputc::c#2 = phi( cputs::@2/cputc::c#0, printf_padding::@2/cputc::c#1 ) [125] if(cputc::c#2==' @@ -290,23 +290,23 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [130] phi() - [131] call cputln + [131] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [132] return to:@return cputc::@1: scope:[cputc] from cputc [133] phi() - [134] call cputln + [134] call cputln to:cputc::@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [135] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [135] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [136] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [137] memcpy::src#4 = (byte*)memcpy::source#2 - [138] memcpy::dst#4 = (byte*)memcpy::destination#2 + [135] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [135] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [136] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [137] memcpy::src#4 = (char *)memcpy::source#2 + [138] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [139] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -322,14 +322,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [144] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [145] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [145] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [145] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [146] memset::end#0 = (byte*)memset::str#3 + $28 - [147] memset::dst#4 = (byte*)memset::str#3 + [146] memset::end#0 = (char *)memset::str#3 + $28 + [147] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [148] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/printf-1.log b/src/test/ref/printf-1.log index 6a848a6bb..5b4563a4a 100644 --- a/src/test/ref/printf-1.log +++ b/src/test/ref/printf-1.log @@ -8,7 +8,7 @@ Added struct type cast to parameter value list main::$3 = call printf_string("ru Added struct type cast to parameter value list main::$5 = call printf_string("cml", (struct printf_format_string){ $a, 1 }) Added struct type cast to parameter value list main::$7 = call printf_string("rules", (struct printf_format_string){ $a, 1 }) Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 @@ -16,14 +16,14 @@ Eliminating unused variable with no statement printf_buffer CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -53,7 +53,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -70,9 +70,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -96,7 +96,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from printf_string::@3 strlen::str#4 = phi( printf_string::@3/strlen::str#1 ) strlen::len#0 = 0 @@ -177,7 +177,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -201,7 +201,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -216,7 +216,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_padding::@2 cputc::c#2 = phi( cputs::@2/cputc::c#0, printf_padding::@2/cputc::c#1 ) cputc::$0 = cputc::c#2 == ' @@ -224,7 +224,7 @@ cputc: scope:[cputc] from cputs::@2 printf_padding::@2 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -238,7 +238,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -252,7 +252,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 main::@2 main::@4 main::@6 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -260,7 +260,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_string::@2 cputs::s#3 = phi( printf_string::@2/cputs::s#1 ) cputs::c#0 = 0 @@ -277,7 +277,7 @@ cputs::@2: scope:[cputs] from cputs::@1 cputs::s#5 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 - call cputc + call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#4 = phi( cputs::@2/cputs::s#5 ) @@ -297,31 +297,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -332,7 +332,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -351,7 +351,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -362,7 +362,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_string::@5 printf_string::@6 printf_padding::pad#4 = phi( printf_string::@5/printf_padding::pad#0, printf_string::@6/printf_padding::pad#1 ) printf_padding::length#3 = phi( printf_string::@5/printf_padding::length#0, printf_string::@6/printf_padding::length#1 ) @@ -380,7 +380,7 @@ printf_padding::@2: scope:[printf_padding] from printf_padding::@1 printf_padding::i#4 = phi( printf_padding::@1/printf_padding::i#2 ) printf_padding::pad#2 = phi( printf_padding::@1/printf_padding::pad#3 ) cputc::c#1 = printf_padding::pad#2 - call cputc + call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 printf_padding::pad#5 = phi( printf_padding::@2/printf_padding::pad#2 ) @@ -392,7 +392,7 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 return to:@return -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@1 main::@3 main::@5 main::@7 printf_string::str#6 = phi( main::@1/printf_string::str#0, main::@3/printf_string::str#1, main::@5/printf_string::str#2, main::@7/printf_string::str#3 ) printf_string::format_justify_left#6 = phi( main::@1/printf_string::format_justify_left#0, main::@3/printf_string::format_justify_left#1, main::@5/printf_string::format_justify_left#2, main::@7/printf_string::format_justify_left#3 ) @@ -417,7 +417,7 @@ printf_string::@3: scope:[printf_string] from printf_string printf_string::format_min_length#6 = phi( printf_string/printf_string::format_min_length#4 ) printf_string::str#4 = phi( printf_string/printf_string::str#6 ) strlen::str#1 = printf_string::str#4 - call strlen + call strlen strlen::return#2 = strlen::return#1 to:printf_string::@7 printf_string::@7: scope:[printf_string] from printf_string::@3 @@ -426,8 +426,8 @@ printf_string::@7: scope:[printf_string] from printf_string::@3 printf_string::format_min_length#5 = phi( printf_string::@3/printf_string::format_min_length#6 ) strlen::return#4 = phi( printf_string::@3/strlen::return#2 ) printf_string::$9 = strlen::return#4 - printf_string::len#0 = (signed byte)printf_string::$9 - printf_string::$13 = (signed byte)printf_string::format_min_length#5 + printf_string::len#0 = (signed char)printf_string::$9 + printf_string::$13 = (signed char)printf_string::format_min_length#5 printf_string::$10 = printf_string::$13 - printf_string::len#0 printf_string::padding#1 = printf_string::$10 printf_string::$11 = printf_string::padding#1 < 0 @@ -444,7 +444,7 @@ printf_string::@2: scope:[printf_string] from printf_string::@1 printf_string:: printf_string::format_justify_left#9 = phi( printf_string::@1/printf_string::format_justify_left#4, printf_string::@9/printf_string::format_justify_left#11 ) printf_string::str#5 = phi( printf_string::@1/printf_string::str#7, printf_string::@9/printf_string::str#8 ) cputs::s#1 = printf_string::str#5 - call cputs + call cputs to:printf_string::@8 printf_string::@8: scope:[printf_string] from printf_string::@2 printf_string::padding#4 = phi( printf_string::@2/printf_string::padding#7 ) @@ -458,8 +458,8 @@ printf_string::@5: scope:[printf_string] from printf_string::@1 printf_string::str#11 = phi( printf_string::@1/printf_string::str#7 ) printf_string::padding#5 = phi( printf_string::@1/printf_string::padding#3 ) printf_padding::pad#0 = ' ' - printf_padding::length#0 = (byte)printf_string::padding#5 - call printf_padding + printf_padding::length#0 = (char)printf_string::padding#5 + call printf_padding to:printf_string::@9 printf_string::@9: scope:[printf_string] from printf_string::@5 printf_string::padding#8 = phi( printf_string::@5/printf_string::padding#5 ) @@ -469,8 +469,8 @@ printf_string::@9: scope:[printf_string] from printf_string::@5 printf_string::@6: scope:[printf_string] from printf_string::@8 printf_string::padding#6 = phi( printf_string::@8/printf_string::padding#4 ) printf_padding::pad#1 = ' ' - printf_padding::length#1 = (byte)printf_string::padding#6 - call printf_padding + printf_padding::length#1 = (char)printf_string::padding#6 + call printf_padding to:printf_string::@10 printf_string::@10: scope:[printf_string] from printf_string::@6 to:printf_string::@return @@ -480,40 +480,40 @@ printf_string::@return: scope:[printf_string] from printf_string::@10 printf_st void main() main: scope:[main] from __start::@1 - call clrscr + call clrscr to:main::@1 main::@1: scope:[main] from main printf_string::str#0 = main::str printf_string::format_min_length#0 = $a printf_string::format_justify_left#0 = 0 - call printf_string + call printf_string to:main::@2 main::@2: scope:[main] from main::@1 - call cputln + call cputln to:main::@3 main::@3: scope:[main] from main::@2 printf_string::str#1 = main::str1 printf_string::format_min_length#1 = $a printf_string::format_justify_left#1 = 0 - call printf_string + call printf_string to:main::@4 main::@4: scope:[main] from main::@3 - call cputln + call cputln to:main::@5 main::@5: scope:[main] from main::@4 printf_string::str#2 = main::str2 printf_string::format_min_length#2 = $a printf_string::format_justify_left#2 = 1 - call printf_string + call printf_string to:main::@6 main::@6: scope:[main] from main::@5 - call cputln + call cputln to:main::@7 main::@7: scope:[main] from main::@6 printf_string::str#3 = main::str3 printf_string::format_min_length#3 = $a printf_string::format_justify_left#3 = 1 - call printf_string + call printf_string to:main::@8 main::@8: scope:[main] from main::@7 to:main::@return @@ -531,12 +531,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -545,304 +545,304 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void clrscr() -bool~ clrscr::$0 -bool~ clrscr::$1 -byte clrscr::c -byte clrscr::c#0 -byte clrscr::c#1 -byte clrscr::c#2 -byte clrscr::c#3 -byte clrscr::l -byte clrscr::l#0 -byte clrscr::l#1 -byte clrscr::l#2 -byte clrscr::l#3 -byte clrscr::l#4 -byte clrscr::l#5 -byte clrscr::l#6 -byte* clrscr::line_cols -byte* clrscr::line_cols#0 -byte* clrscr::line_cols#1 -byte* clrscr::line_cols#2 -byte* clrscr::line_cols#3 -byte* clrscr::line_cols#4 -byte* clrscr::line_cols#5 -byte* clrscr::line_cols#6 -byte* clrscr::line_text -byte* clrscr::line_text#0 -byte* clrscr::line_text#1 -byte* clrscr::line_text#2 -byte* clrscr::line_text#3 -byte* clrscr::line_text#4 -byte* clrscr::line_text#5 -byte* clrscr::line_text#6 +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -constant byte* main::str[4] = "cml" -constant byte* main::str1[6] = "rules" -constant byte* main::str2[4] = "cml" -constant byte* main::str3[6] = "rules" -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -bool~ printf_padding::$0 -byte printf_padding::i -byte printf_padding::i#0 -byte printf_padding::i#1 -byte printf_padding::i#2 -byte printf_padding::i#3 -byte printf_padding::i#4 -byte printf_padding::length -byte printf_padding::length#0 -byte printf_padding::length#1 -byte printf_padding::length#2 -byte printf_padding::length#3 -byte printf_padding::length#4 -byte printf_padding::length#5 -byte printf_padding::pad -byte printf_padding::pad#0 -byte printf_padding::pad#1 -byte printf_padding::pad#2 -byte printf_padding::pad#3 -byte printf_padding::pad#4 -byte printf_padding::pad#5 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) -bool~ printf_string::$0 -bool~ printf_string::$1 -signed byte~ printf_string::$10 -bool~ printf_string::$11 -bool~ printf_string::$12 -signed byte~ printf_string::$13 -bool~ printf_string::$14 -bool~ printf_string::$15 -bool~ printf_string::$2 -bool~ printf_string::$3 -bool~ printf_string::$6 -bool~ printf_string::$7 -word~ printf_string::$9 +__constant char main::str[4] = "cml" +__constant char main::str1[6] = "rules" +__constant char main::str2[4] = "cml" +__constant char main::str3[6] = "rules" +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +void printf_padding(char pad , char length) +bool printf_padding::$0 +char printf_padding::i +char printf_padding::i#0 +char printf_padding::i#1 +char printf_padding::i#2 +char printf_padding::i#3 +char printf_padding::i#4 +char printf_padding::length +char printf_padding::length#0 +char printf_padding::length#1 +char printf_padding::length#2 +char printf_padding::length#3 +char printf_padding::length#4 +char printf_padding::length#5 +char printf_padding::pad +char printf_padding::pad#0 +char printf_padding::pad#1 +char printf_padding::pad#2 +char printf_padding::pad#3 +char printf_padding::pad#4 +char printf_padding::pad#5 +void printf_string(char *str , char format_min_length , char format_justify_left) +bool printf_string::$0 +bool printf_string::$1 +signed char printf_string::$10 +bool printf_string::$11 +bool printf_string::$12 +signed char printf_string::$13 +bool printf_string::$14 +bool printf_string::$15 +bool printf_string::$2 +bool printf_string::$3 +bool printf_string::$6 +bool printf_string::$7 +unsigned int printf_string::$9 struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_justify_left#0 -byte printf_string::format_justify_left#1 -byte printf_string::format_justify_left#10 -byte printf_string::format_justify_left#11 -byte printf_string::format_justify_left#12 -byte printf_string::format_justify_left#2 -byte printf_string::format_justify_left#3 -byte printf_string::format_justify_left#4 -byte printf_string::format_justify_left#5 -byte printf_string::format_justify_left#6 -byte printf_string::format_justify_left#7 -byte printf_string::format_justify_left#8 -byte printf_string::format_justify_left#9 -byte printf_string::format_min_length -byte printf_string::format_min_length#0 -byte printf_string::format_min_length#1 -byte printf_string::format_min_length#2 -byte printf_string::format_min_length#3 -byte printf_string::format_min_length#4 -byte printf_string::format_min_length#5 -byte printf_string::format_min_length#6 -signed byte printf_string::len -signed byte printf_string::len#0 -signed byte printf_string::padding -signed byte printf_string::padding#0 -signed byte printf_string::padding#1 -signed byte printf_string::padding#2 -signed byte printf_string::padding#3 -signed byte printf_string::padding#4 -signed byte printf_string::padding#5 -signed byte printf_string::padding#6 -signed byte printf_string::padding#7 -signed byte printf_string::padding#8 -byte* printf_string::str -byte* printf_string::str#0 -byte* printf_string::str#1 -byte* printf_string::str#10 -byte* printf_string::str#11 -byte* printf_string::str#2 -byte* printf_string::str#3 -byte* printf_string::str#4 -byte* printf_string::str#5 -byte* printf_string::str#6 -byte* printf_string::str#7 -byte* printf_string::str#8 -byte* printf_string::str#9 -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 +char printf_string::format_justify_left +char printf_string::format_justify_left#0 +char printf_string::format_justify_left#1 +char printf_string::format_justify_left#10 +char printf_string::format_justify_left#11 +char printf_string::format_justify_left#12 +char printf_string::format_justify_left#2 +char printf_string::format_justify_left#3 +char printf_string::format_justify_left#4 +char printf_string::format_justify_left#5 +char printf_string::format_justify_left#6 +char printf_string::format_justify_left#7 +char printf_string::format_justify_left#8 +char printf_string::format_justify_left#9 +char printf_string::format_min_length +char printf_string::format_min_length#0 +char printf_string::format_min_length#1 +char printf_string::format_min_length#2 +char printf_string::format_min_length#3 +char printf_string::format_min_length#4 +char printf_string::format_min_length#5 +char printf_string::format_min_length#6 +signed char printf_string::len +signed char printf_string::len#0 +signed char printf_string::padding +signed char printf_string::padding#0 +signed char printf_string::padding#1 +signed char printf_string::padding#2 +signed char printf_string::padding#3 +signed char printf_string::padding#4 +signed char printf_string::padding#5 +signed char printf_string::padding#6 +signed char printf_string::padding#7 +signed char printf_string::padding#8 +char *printf_string::str +char *printf_string::str#0 +char *printf_string::str#1 +char *printf_string::str#10 +char *printf_string::str#11 +char *printf_string::str#2 +char *printf_string::str#3 +char *printf_string::str#4 +char *printf_string::str#5 +char *printf_string::str#6 +char *printf_string::str#7 +char *printf_string::str#8 +char *printf_string::str#9 +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#2 @@ -864,15 +864,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -894,9 +894,9 @@ Adding number conversion cast (unumber) 1 in printf_string::format_justify_left# Adding number conversion cast (unumber) $a in printf_string::format_min_length#3 = $a Adding number conversion cast (unumber) 1 in printf_string::format_justify_left#3 = 1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast conio_cursor_x = (unumber)0 Inlining cast conio_cursor_y = (unumber)0 Inlining cast gotoxy::y#0 = (unumber)0 @@ -920,9 +920,9 @@ Inlining cast printf_string::format_justify_left#2 = (unumber)1 Inlining cast printf_string::format_min_length#3 = (unumber)$a Inlining cast printf_string::format_justify_left#3 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $19 @@ -968,50 +968,50 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $a Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [75] gotoxy::$1 = gotoxy::y#3 <= $19 from [74] gotoxy::$0 = gotoxy::y#3 > $19 @@ -1129,16 +1129,16 @@ Constant clrscr::c#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -1198,10 +1198,10 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -1229,12 +1229,12 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [105] printf_string::$13 = (signed byte)printf_string::format_min_length#4 keeping printf_string::format_min_length#4 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [105] printf_string::$13 = (signed char)printf_string::format_min_length#4 keeping printf_string::format_min_length#4 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[46] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -1277,33 +1277,33 @@ Constant inlined main::str2 = main::str Constant inlined main::str3 = main::str1 Constant inlined printf_string::format_min_length#3 = $a Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 Constant inlined clrscr::l#0 = 0 Constant inlined strlen::len#0 = 0 Constant inlined printf_string::format_min_length#0 = $a Constant inlined printf_string::format_min_length#1 = $a Constant inlined printf_string::format_min_length#2 = $a -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined printf_string::str#0 = main::str Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined printf_string::str#3 = main::str1 Constant inlined printf_string::str#2 = main::str Constant inlined printf_string::str#1 = main::str1 Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 Constant inlined printf_padding::pad#0 = ' ' -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined printf_padding::i#0 = 0 Constant inlined printf_padding::pad#1 = ' ' Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined printf_string::padding#0 = 0 Constant inlined gotoxy::y#0 = 0 Constant inlined printf_string::padding#2 = 0 @@ -1322,11 +1322,11 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Identical Phi Values printf_string::format_min_length#4 $a Successful SSA optimization Pass2IdenticalPhiElimination -Constant value identified (signed byte)$a in [102] printf_string::padding#1 = (signed byte)$a - printf_string::len#0 +Constant value identified (signed char)$a in [102] printf_string::padding#1 = (signed char)$a - printf_string::len#0 Successful SSA optimization Pass2ConstantValues if() condition always false - eliminating [9] if($28<=0) goto memset::@1 Removing PHI-reference to removed block (printf_string) in block printf_string::@1 @@ -1338,21 +1338,21 @@ Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -1503,11 +1503,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -1524,7 +1524,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -1533,41 +1533,41 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main [18] phi() - [19] call printf_string + [19] call printf_string to:main::@2 main::@2: scope:[main] from main::@1 [20] phi() - [21] call cputln + [21] call cputln to:main::@3 main::@3: scope:[main] from main::@2 [22] phi() - [23] call printf_string + [23] call printf_string to:main::@4 main::@4: scope:[main] from main::@3 [24] phi() - [25] call cputln + [25] call cputln to:main::@5 main::@5: scope:[main] from main::@4 [26] phi() - [27] call printf_string + [27] call printf_string to:main::@6 main::@6: scope:[main] from main::@5 [28] phi() - [29] call cputln + [29] call cputln to:main::@7 main::@7: scope:[main] from main::@6 [30] phi() - [31] call printf_string + [31] call printf_string to:main::@return main::@return: scope:[main] from main::@7 [32] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [33] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -1580,7 +1580,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [36] conio_cursor_x = gotoxy::x#2 [37] conio_cursor_y = gotoxy::y#4 - [38] gotoxy::$7 = (word)gotoxy::y#4 + [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 [39] gotoxy::$8 = gotoxy::$7 << 2 [40] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [41] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -1627,19 +1627,19 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [62] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@1 main::@3 main::@5 main::@7 [63] printf_string::str#10 = phi( main::@1/main::str, main::@3/main::str1, main::@5/main::str, main::@7/main::str1 ) [63] printf_string::format_justify_left#10 = phi( main::@1/0, main::@3/0, main::@5/1, main::@7/1 ) to:printf_string::@3 printf_string::@3: scope:[printf_string] from printf_string [64] strlen::str#1 = printf_string::str#10 - [65] call strlen + [65] call strlen [66] strlen::return#2 = strlen::len#2 to:printf_string::@6 printf_string::@6: scope:[printf_string] from printf_string::@3 [67] printf_string::$9 = strlen::return#2 - [68] printf_string::len#0 = (signed byte)printf_string::$9 + [68] printf_string::len#0 = (signed char)printf_string::$9 [69] printf_string::padding#1 = $a - printf_string::len#0 [70] if(printf_string::padding#1>=0) goto printf_string::@10 to:printf_string::@1 @@ -1654,12 +1654,12 @@ printf_string::@8: scope:[printf_string] from printf_string::@1 [74] if(0!=printf_string::padding#3) goto printf_string::@4 to:printf_string::@2 printf_string::@4: scope:[printf_string] from printf_string::@8 - [75] printf_padding::length#0 = (byte)printf_string::padding#3 - [76] call printf_padding + [75] printf_padding::length#0 = (char)printf_string::padding#3 + [76] call printf_padding to:printf_string::@2 printf_string::@2: scope:[printf_string] from printf_string::@1 printf_string::@4 printf_string::@8 [77] cputs::s#1 = printf_string::str#10 - [78] call cputs + [78] call cputs to:printf_string::@7 printf_string::@7: scope:[printf_string] from printf_string::@2 [79] if(0==printf_string::format_justify_left#10) goto printf_string::@return @@ -1668,8 +1668,8 @@ printf_string::@9: scope:[printf_string] from printf_string::@7 [80] if(0!=printf_string::padding#3) goto printf_string::@5 to:printf_string::@return printf_string::@5: scope:[printf_string] from printf_string::@9 - [81] printf_padding::length#1 = (byte)printf_string::padding#3 - [82] call printf_padding + [81] printf_padding::length#1 = (char)printf_string::padding#3 + [82] call printf_padding to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@5 printf_string::@7 printf_string::@9 [83] return @@ -1681,13 +1681,13 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 main::@2 main::@4 main::@6 [85] conio_line_color = conio_line_color + $28 [86] conio_cursor_x = 0 [87] conio_cursor_y = ++ conio_cursor_y - [88] call cscroll + [88] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [89] return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from printf_string::@3 [90] phi() to:strlen::@1 @@ -1704,7 +1704,7 @@ strlen::@2: scope:[strlen] from strlen::@1 [95] strlen::str#0 = ++ strlen::str#2 to:strlen::@1 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_string::@4 printf_string::@5 [96] printf_padding::pad#4 = phi( printf_string::@4/' ', printf_string::@5/' ' ) [96] printf_padding::length#3 = phi( printf_string::@4/printf_padding::length#0, printf_string::@5/printf_padding::length#1 ) @@ -1718,13 +1718,13 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 to:@return printf_padding::@2: scope:[printf_padding] from printf_padding::@1 [100] cputc::c#1 = printf_padding::pad#4 - [101] call cputc + [101] call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 [102] printf_padding::i#1 = ++ printf_padding::i#2 to:printf_padding::@1 -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_string::@2 [103] phi() to:cputs::@1 @@ -1739,7 +1739,7 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [109] cputc::c#0 = cputs::c#1 - [110] call cputc + [110] call cputc to:cputs::@1 void cscroll() @@ -1748,19 +1748,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [112] phi() - [113] call memcpy + [113] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [114] phi() - [115] call memcpy + [115] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [116] phi() - [117] call memset + [117] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [118] phi() - [119] call memset + [119] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [120] conio_line_text = conio_line_text - $28 @@ -1771,7 +1771,7 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [123] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_padding::@2 [124] cputc::c#2 = phi( cputs::@2/cputc::c#0, printf_padding::@2/cputc::c#1 ) [125] if(cputc::c#2==' @@ -1785,23 +1785,23 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [130] phi() - [131] call cputln + [131] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [132] return to:@return cputc::@1: scope:[cputc] from cputc [133] phi() - [134] call cputln + [134] call cputln to:cputc::@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [135] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [135] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [136] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [137] memcpy::src#4 = (byte*)memcpy::source#2 - [138] memcpy::dst#4 = (byte*)memcpy::destination#2 + [135] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [135] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [136] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [137] memcpy::src#4 = (char *)memcpy::source#2 + [138] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [139] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1817,14 +1817,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [144] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [145] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [145] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [145] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [146] memset::end#0 = (byte*)memset::str#3 + $28 - [147] memset::dst#4 = (byte*)memset::str#3 + [146] memset::end#0 = (char *)memset::str#3 + $28 + [147] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [148] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1846,116 +1846,116 @@ null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs:: VARIABLE REGISTER WEIGHTS void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 20002.0 -byte clrscr::c#2 12501.25 -byte clrscr::l -byte clrscr::l#1 2002.0 -byte clrscr::l#2 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 1001.0 -byte* clrscr::line_cols#5 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 667.3333333333334 -byte* clrscr::line_text#5 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // 20002.0 +char clrscr::c#2 // 12501.25 +char clrscr::l +char clrscr::l#1 // 2002.0 +char clrscr::l#2 // 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // 1001.0 +char *clrscr::line_cols#5 // 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // 667.3333333333334 +char *clrscr::line_text#5 // 1714.7142857142858 void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 25003.500000000007 -byte conio_cursor_y loadstore 380954.86904761905 -byte* conio_line_color loadstore 269514.743902439 -byte* conio_line_text loadstore 266267.578313253 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 20002.0 -byte cputc::c#1 20002.0 -byte cputc::c#2 110002.0 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 25003.500000000007 +__loadstore char conio_cursor_y // 380954.86904761905 +__loadstore char *conio_line_color // 269514.743902439 +__loadstore char *conio_line_text // 266267.578313253 +void cputc(char c) +char cputc::c +char cputc::c#0 // 20002.0 +char cputc::c#1 // 20002.0 +char cputc::c#2 // 110002.0 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 10001.0 -const byte* cputs::s -const byte* cputs::s#0 5000.5 -const byte* cputs::s#1 551.0 -const byte* cputs::s#2 15502.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 10001.0 +const char *cputs::s +const char *cputs::s#0 // 5000.5 +const char *cputs::s#1 // 551.0 +const char *cputs::s#2 // 15502.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.0000000001E10 -byte* memcpy::dst#2 1.0033333334666666E10 -byte* memcpy::dst#4 2.00000002E8 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.0000000002E10 -byte* memcpy::src#2 1.002500000125E10 -byte* memcpy::src#4 1.00000001E8 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.26250000025E9 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.4285714287142856E9 -byte* memset::dst -byte* memset::dst#1 2.0000000002E10 -byte* memset::dst#2 1.3366666668333332E10 -byte* memset::dst#4 2.00000002E8 -byte* memset::end -byte* memset::end#0 1.6833333336666665E9 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -byte printf_padding::i -byte printf_padding::i#1 20002.0 -byte printf_padding::i#2 7500.75 -byte printf_padding::length -byte printf_padding::length#0 202.0 -byte printf_padding::length#1 202.0 -byte printf_padding::length#3 1700.5 -byte printf_padding::pad -byte printf_padding::pad#4 1666.8333333333333 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) -word~ printf_string::$9 101.0 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.0000000001E10 +char *memcpy::dst#2 // 1.0033333334666666E10 +char *memcpy::dst#4 // 2.00000002E8 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.0000000002E10 +char *memcpy::src#2 // 1.002500000125E10 +char *memcpy::src#4 // 1.00000001E8 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.26250000025E9 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.4285714287142856E9 +char *memset::dst +char *memset::dst#1 // 2.0000000002E10 +char *memset::dst#2 // 1.3366666668333332E10 +char *memset::dst#4 // 2.00000002E8 +char *memset::end +char *memset::end#0 // 1.6833333336666665E9 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 +void printf_padding(char pad , char length) +char printf_padding::i +char printf_padding::i#1 // 20002.0 +char printf_padding::i#2 // 7500.75 +char printf_padding::length +char printf_padding::length#0 // 202.0 +char printf_padding::length#1 // 202.0 +char printf_padding::length#3 // 1700.5 +char printf_padding::pad +char printf_padding::pad#4 // 1666.8333333333333 +void printf_string(char *str , char format_min_length , char format_justify_left) +unsigned int printf_string::$9 // 101.0 struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_justify_left#10 12.625 -byte printf_string::format_min_length -signed byte printf_string::len -signed byte printf_string::len#0 202.0 -signed byte printf_string::padding -signed byte printf_string::padding#1 101.0 -signed byte printf_string::padding#3 33.666666666666664 -byte* printf_string::str -byte* printf_string::str#10 14.428571428571429 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 10001.0 -word strlen::len#2 5025.75 -word strlen::return -word strlen::return#2 202.0 -byte* strlen::str -byte* strlen::str#0 20002.0 -byte* strlen::str#1 551.0 -byte* strlen::str#2 10334.666666666666 +char printf_string::format_justify_left +char printf_string::format_justify_left#10 // 12.625 +char printf_string::format_min_length +signed char printf_string::len +signed char printf_string::len#0 // 202.0 +signed char printf_string::padding +signed char printf_string::padding#1 // 101.0 +signed char printf_string::padding#3 // 33.666666666666664 +char *printf_string::str +char *printf_string::str#10 // 14.428571428571429 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // 10001.0 +unsigned int strlen::len#2 // 5025.75 +unsigned int strlen::return +unsigned int strlen::return#2 // 202.0 +char *strlen::str +char *strlen::str#0 // 20002.0 +char *strlen::str#1 // 551.0 +char *strlen::str#2 // 10334.666666666666 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -2083,7 +2083,7 @@ Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [36] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [38] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [39] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [40] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [41] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -2127,14 +2127,14 @@ Removing always clobbered register reg byte y as potential for zp[1]:19 [ printf Removing always clobbered register reg byte y as potential for zp[1]:20 [ printf_padding::i#2 printf_padding::i#1 ] Statement [127] conio_line_color[conio_cursor_x] = LIGHT_BLUE [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_string:19::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a reg byte y Statement [129] if(conio_cursor_x!=$28) goto cputc::@return [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_string:19::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [136] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [137] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [138] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [136] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [137] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [138] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [140] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [142] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [146] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [146] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:34 [ memset::c#4 ] -Statement [147] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [147] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [149] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [151] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:34 [ memset::c#4 ] @@ -2143,7 +2143,7 @@ Statement [2] conio_cursor_y = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [36] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a -Statement [38] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [39] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [40] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [41] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -2175,13 +2175,13 @@ Statement [121] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio Statement [126] conio_line_text[conio_cursor_x] = cputc::c#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_string:19::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte y Statement [127] conio_line_color[conio_cursor_x] = LIGHT_BLUE [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_string:19::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a reg byte y Statement [129] if(conio_cursor_x!=$28) goto cputc::@return [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_string:19::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [136] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [137] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [138] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [136] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [137] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [138] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [140] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [142] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputln:21::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:113 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:113 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:25::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::cputln:29::cscroll:88::memcpy:115 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memcpy:115 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memcpy:115 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [146] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a -Statement [147] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [146] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a +Statement [147] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [149] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a Statement [151] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputln:21::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:117 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:117 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::cputln:21::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:25::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::cputln:29::cscroll:88::memset:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:131::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:131::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:19::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:76::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:23::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:27::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:31::printf_padding:82::cputc:101::cputln:134::cscroll:88::memset:119 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { cputc::c#1 = cputc::c#2 printf_padding::pad#4 } } main:7::printf_string:19::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:23::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:27::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } main:7::printf_string:31::cputs:78::cputc:110::cputln:134::cscroll:88::memset:119 [ printf_string::format_justify_left#10 printf_string::padding#3 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputs::s#1 = printf_string::str#10 } { cputc::c#0 = cputc::c#2 cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -2366,14 +2366,14 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -2410,7 +2410,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -2420,7 +2420,7 @@ conio_c64_init: { } // main main: { - // [17] call clrscr + // [17] call clrscr // [47] phi from main to clrscr [phi:main->clrscr] clrscr_from_main: jsr clrscr @@ -2429,7 +2429,7 @@ main: { jmp __b1 // main::@1 __b1: - // [19] call printf_string + // [19] call printf_string // [63] phi from main::@1 to printf_string [phi:main::@1->printf_string] printf_string_from___b1: // [63] phi printf_string::str#10 = main::str [phi:main::@1->printf_string#0] -- pbuz1=pbuc1 @@ -2446,14 +2446,14 @@ main: { jmp __b2 // main::@2 __b2: - // [21] call cputln + // [21] call cputln jsr cputln // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [23] call printf_string + // [23] call printf_string // [63] phi from main::@3 to printf_string [phi:main::@3->printf_string] printf_string_from___b3: // [63] phi printf_string::str#10 = main::str1 [phi:main::@3->printf_string#0] -- pbuz1=pbuc1 @@ -2470,14 +2470,14 @@ main: { jmp __b4 // main::@4 __b4: - // [25] call cputln + // [25] call cputln jsr cputln // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: jmp __b5 // main::@5 __b5: - // [27] call printf_string + // [27] call printf_string // [63] phi from main::@5 to printf_string [phi:main::@5->printf_string] printf_string_from___b5: // [63] phi printf_string::str#10 = main::str [phi:main::@5->printf_string#0] -- pbuz1=pbuc1 @@ -2494,14 +2494,14 @@ main: { jmp __b6 // main::@6 __b6: - // [29] call cputln + // [29] call cputln jsr cputln // [30] phi from main::@6 to main::@7 [phi:main::@6->main::@7] __b7_from___b6: jmp __b7 // main::@7 __b7: - // [31] call printf_string + // [31] call printf_string // [63] phi from main::@7 to printf_string [phi:main::@7->printf_string] printf_string_from___b7: // [63] phi printf_string::str#10 = main::str1 [phi:main::@7->printf_string#0] -- pbuz1=pbuc1 @@ -2527,7 +2527,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $17 @@ -2563,7 +2563,7 @@ gotoxy: { sta.z conio_cursor_x // [37] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [38] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -2728,7 +2728,7 @@ clrscr: { // printf_string // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(3) str, byte zp(2) format_justify_left) +// void printf_string(__zp(3) char *str, char format_min_length, __zp(2) char format_justify_left) printf_string: { .label __9 = 6 .label padding = 5 @@ -2742,7 +2742,7 @@ printf_string: { sta.z strlen.str lda.z str+1 sta.z strlen.str+1 - // [65] call strlen + // [65] call strlen // [90] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] strlen_from___b3: jsr strlen @@ -2751,7 +2751,7 @@ printf_string: { // printf_string::@6 __b6: // [67] printf_string::$9 = strlen::return#2 - // [68] printf_string::len#0 = (signed byte)printf_string::$9 -- vbsaa=_sbyte_vwuz1 + // [68] printf_string::len#0 = (signed char)printf_string::$9 -- vbsaa=_sbyte_vwuz1 lda.z __9 // [69] printf_string::padding#1 = $a - printf_string::len#0 -- vbsz1=vbsc1_minus_vbsaa eor #$ff @@ -2792,10 +2792,10 @@ printf_string: { jmp __b2 // printf_string::@4 __b4: - // [75] printf_padding::length#0 = (byte)printf_string::padding#3 -- vbuz1=vbuz2 + // [75] printf_padding::length#0 = (char)printf_string::padding#3 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [76] call printf_padding + // [76] call printf_padding // [96] phi from printf_string::@4 to printf_padding [phi:printf_string::@4->printf_padding] printf_padding_from___b4: // [96] phi printf_padding::pad#4 = ' ' [phi:printf_string::@4->printf_padding#0] -- vbuz1=vbuc1 @@ -2807,7 +2807,7 @@ printf_string: { // printf_string::@2 __b2: // [77] cputs::s#1 = printf_string::str#10 - // [78] call cputs + // [78] call cputs // [103] phi from printf_string::@2 to cputs [phi:printf_string::@2->cputs] cputs_from___b2: jsr cputs @@ -2827,10 +2827,10 @@ printf_string: { jmp __breturn // printf_string::@5 __b5: - // [81] printf_padding::length#1 = (byte)printf_string::padding#3 -- vbuz1=vbuz2 + // [81] printf_padding::length#1 = (char)printf_string::padding#3 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [82] call printf_padding + // [82] call printf_padding // [96] phi from printf_string::@5 to printf_padding [phi:printf_string::@5->printf_padding] printf_padding_from___b5: // [96] phi printf_padding::pad#4 = ' ' [phi:printf_string::@5->printf_padding#0] -- vbuz1=vbuc1 @@ -2868,7 +2868,7 @@ cputln: { sta.z conio_cursor_x // [87] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [88] call cscroll + // [88] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -2878,7 +2878,7 @@ cputln: { } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($b) str) +// __zp(6) unsigned int strlen(__zp($b) char *str) strlen: { .label len = 6 .label str = $b @@ -2924,7 +2924,7 @@ strlen: { } // printf_padding // Print a padding char a number of times -// printf_padding(byte zp(9) pad, byte zp(8) length) +// void printf_padding(__zp(9) char pad, __zp(8) char length) printf_padding: { .label i = $a .label length = 8 @@ -2950,7 +2950,7 @@ printf_padding: { __b2: // [100] cputc::c#1 = printf_padding::pad#4 -- vbuaa=vbuz1 lda.z pad - // [101] call cputc + // [101] call cputc // [124] phi from printf_padding::@2 to cputc [phi:printf_padding::@2->cputc] cputc_from___b2: // [124] phi cputc::c#2 = cputc::c#1 [phi:printf_padding::@2->cputc#0] -- register_copy @@ -2967,7 +2967,7 @@ printf_padding: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(3) s) +// void cputs(__zp(3) const char *s) cputs: { .label s = 3 // [104] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -2996,7 +2996,7 @@ cputs: { // cputs::@2 __b2: // [109] cputc::c#0 = cputs::c#1 - // [110] call cputc + // [110] call cputc // [124] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] cputc_from___b2: // [124] phi cputc::c#2 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy @@ -3015,15 +3015,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [113] call memcpy + // [113] call memcpy // [135] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [135] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [135] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [135] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [135] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -3034,15 +3034,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [115] call memcpy + // [115] call memcpy // [135] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [135] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [135] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [135] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [135] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -3053,12 +3053,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [117] call memset + // [117] call memset // [145] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [145] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [145] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [145] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -3069,12 +3069,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [119] call memset + // [119] call memset // [145] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [145] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [145] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [145] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -3110,7 +3110,7 @@ cscroll: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [125] if(cputc::c#2==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -3136,7 +3136,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [131] call cputln + // [131] call cputln jsr cputln jmp __breturn // cputc::@return @@ -3148,21 +3148,21 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [134] call cputln + // [134] call cputln jsr cputln jmp __breturn } // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($1b) destination, void* zp($b) source) +// void * memcpy(__zp($1b) void *destination, __zp($b) void *source, unsigned int num) memcpy: { .label src_end = $19 .label dst = $1b .label src = $b .label source = $b .label destination = $1b - // [136] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [136] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -3170,8 +3170,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [137] memcpy::src#4 = (byte*)memcpy::source#2 - // [138] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [137] memcpy::src#4 = (char *)memcpy::source#2 + // [138] memcpy::dst#4 = (char *)memcpy::destination#2 // [139] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -3213,7 +3213,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($b) str, byte register(X) c) +// void * memset(__zp($b) void *str, __register(X) char c, unsigned int num) memset: { .label end = $1b .label dst = $b @@ -3221,7 +3221,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [146] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [146] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -3229,7 +3229,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [147] memset::dst#4 = (byte*)memset::str#3 + // [147] memset::dst#4 = (char *)memset::str#3 // [148] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -3441,129 +3441,129 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:11 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:11 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:3 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:3 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:11 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:11 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:3 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:3 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:13 25003.500000000007 -byte conio_cursor_y loadstore zp[1]:14 380954.86904761905 -byte* conio_line_color loadstore zp[2]:17 269514.743902439 -byte* conio_line_text loadstore zp[2]:15 266267.578313253 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 20002.0 -byte cputc::c#1 reg byte a 20002.0 -byte cputc::c#2 reg byte a 110002.0 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:13 25003.500000000007 +__loadstore char conio_cursor_y // zp[1]:14 380954.86904761905 +__loadstore char *conio_line_color // zp[2]:17 269514.743902439 +__loadstore char *conio_line_text // zp[2]:15 266267.578313253 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 20002.0 +char cputc::c#1 // reg byte a 20002.0 +char cputc::c#2 // reg byte a 110002.0 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 10001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:3 5000.5 -const byte* cputs::s#1 s zp[2]:3 551.0 -const byte* cputs::s#2 s zp[2]:3 15502.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 10001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:3 5000.5 +const char *cputs::s#1 // s zp[2]:3 551.0 +const char *cputs::s#2 // s zp[2]:3 15502.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:23 202.0 -byte*~ gotoxy::$6 zp[2]:19 202.0 -word~ gotoxy::$7 zp[2]:19 151.5 -word~ gotoxy::$8 zp[2]:21 202.0 -word~ gotoxy::$9 zp[2]:19 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:19 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:23 202.0 +char *gotoxy::$6 // zp[2]:19 202.0 +unsigned int gotoxy::$7 // zp[2]:19 151.5 +unsigned int gotoxy::$8 // zp[2]:21 202.0 +unsigned int gotoxy::$9 // zp[2]:19 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:19 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::str[4] = "cml" -constant byte* main::str1[6] = "rules" -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:27 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:27 1.0000000001E10 -byte* memcpy::dst#2 dst zp[2]:27 1.0033333334666666E10 -byte* memcpy::dst#4 dst zp[2]:27 2.00000002E8 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:11 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:11 2.0000000002E10 -byte* memcpy::src#2 src zp[2]:11 1.002500000125E10 -byte* memcpy::src#4 src zp[2]:11 1.00000001E8 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:25 1.26250000025E9 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714287142856E9 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:11 2.0000000002E10 -byte* memset::dst#2 dst zp[2]:11 1.3366666668333332E10 -byte* memset::dst#4 dst zp[2]:11 2.00000002E8 -byte* memset::end -byte* memset::end#0 end zp[2]:27 1.6833333336666665E9 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:11 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -byte printf_padding::i -byte printf_padding::i#1 i zp[1]:10 20002.0 -byte printf_padding::i#2 i zp[1]:10 7500.75 -byte printf_padding::length -byte printf_padding::length#0 length zp[1]:8 202.0 -byte printf_padding::length#1 length zp[1]:8 202.0 -byte printf_padding::length#3 length zp[1]:8 1700.5 -byte printf_padding::pad -byte printf_padding::pad#4 pad zp[1]:9 1666.8333333333333 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) -word~ printf_string::$9 zp[2]:6 101.0 +__constant char main::str[4] = "cml" +__constant char main::str1[6] = "rules" +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:27 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:27 1.0000000001E10 +char *memcpy::dst#2 // dst zp[2]:27 1.0033333334666666E10 +char *memcpy::dst#4 // dst zp[2]:27 2.00000002E8 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:11 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:11 2.0000000002E10 +char *memcpy::src#2 // src zp[2]:11 1.002500000125E10 +char *memcpy::src#4 // src zp[2]:11 1.00000001E8 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:25 1.26250000025E9 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714287142856E9 +char *memset::dst +char *memset::dst#1 // dst zp[2]:11 2.0000000002E10 +char *memset::dst#2 // dst zp[2]:11 1.3366666668333332E10 +char *memset::dst#4 // dst zp[2]:11 2.00000002E8 +char *memset::end +char *memset::end#0 // end zp[2]:27 1.6833333336666665E9 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:11 +void printf_padding(char pad , char length) +char printf_padding::i +char printf_padding::i#1 // i zp[1]:10 20002.0 +char printf_padding::i#2 // i zp[1]:10 7500.75 +char printf_padding::length +char printf_padding::length#0 // length zp[1]:8 202.0 +char printf_padding::length#1 // length zp[1]:8 202.0 +char printf_padding::length#3 // length zp[1]:8 1700.5 +char printf_padding::pad +char printf_padding::pad#4 // pad zp[1]:9 1666.8333333333333 +void printf_string(char *str , char format_min_length , char format_justify_left) +unsigned int printf_string::$9 // zp[2]:6 101.0 struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_justify_left#10 format_justify_left zp[1]:2 12.625 -byte printf_string::format_min_length -signed byte printf_string::len -signed byte printf_string::len#0 reg byte a 202.0 -signed byte printf_string::padding -signed byte printf_string::padding#1 padding zp[1]:5 101.0 -signed byte printf_string::padding#3 padding zp[1]:5 33.666666666666664 -byte* printf_string::str -byte* printf_string::str#10 str zp[2]:3 14.428571428571429 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 len zp[2]:6 10001.0 -word strlen::len#2 len zp[2]:6 5025.75 -word strlen::return -word strlen::return#2 return zp[2]:6 202.0 -byte* strlen::str -byte* strlen::str#0 str zp[2]:11 20002.0 -byte* strlen::str#1 str zp[2]:11 551.0 -byte* strlen::str#2 str zp[2]:11 10334.666666666666 +char printf_string::format_justify_left +char printf_string::format_justify_left#10 // format_justify_left zp[1]:2 12.625 +char printf_string::format_min_length +signed char printf_string::len +signed char printf_string::len#0 // reg byte a 202.0 +signed char printf_string::padding +signed char printf_string::padding#1 // padding zp[1]:5 101.0 +signed char printf_string::padding#3 // padding zp[1]:5 33.666666666666664 +char *printf_string::str +char *printf_string::str#10 // str zp[2]:3 14.428571428571429 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // len zp[2]:6 10001.0 +unsigned int strlen::len#2 // len zp[2]:6 5025.75 +unsigned int strlen::return +unsigned int strlen::return#2 // return zp[2]:6 202.0 +char *strlen::str +char *strlen::str#0 // str zp[2]:11 20002.0 +char *strlen::str#1 // str zp[2]:11 551.0 +char *strlen::str#2 // str zp[2]:11 10334.666666666666 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] @@ -3646,11 +3646,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -3680,7 +3680,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -3690,13 +3690,13 @@ conio_c64_init: { // main main: { // clrscr() - // [17] call clrscr + // [17] call clrscr // [47] phi from main to clrscr [phi:main->clrscr] jsr clrscr // [18] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf_string( "cml", { 10, 0 } ) - // [19] call printf_string + // [19] call printf_string // [63] phi from main::@1 to printf_string [phi:main::@1->printf_string] // [63] phi printf_string::str#10 = main::str [phi:main::@1->printf_string#0] -- pbuz1=pbuc1 lda #main::@2] // main::@2 // cputln() - // [21] call cputln + // [21] call cputln jsr cputln // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // printf_string( "rules", { 10, 0 } ) - // [23] call printf_string + // [23] call printf_string // [63] phi from main::@3 to printf_string [phi:main::@3->printf_string] // [63] phi printf_string::str#10 = main::str1 [phi:main::@3->printf_string#0] -- pbuz1=pbuc1 lda #main::@4] // main::@4 // cputln() - // [25] call cputln + // [25] call cputln jsr cputln // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // printf_string( "cml", { 10, 1 } ) - // [27] call printf_string + // [27] call printf_string // [63] phi from main::@5 to printf_string [phi:main::@5->printf_string] // [63] phi printf_string::str#10 = main::str [phi:main::@5->printf_string#0] -- pbuz1=pbuc1 lda #main::@6] // main::@6 // cputln() - // [29] call cputln + // [29] call cputln jsr cputln // [30] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // printf_string( "rules", { 10, 1 } ) - // [31] call printf_string + // [31] call printf_string // [63] phi from main::@7 to printf_string [phi:main::@7->printf_string] // [63] phi printf_string::str#10 = main::str1 [phi:main::@7->printf_string#0] -- pbuz1=pbuc1 lda #strlen] jsr strlen // strlen(str) @@ -3998,7 +3998,7 @@ printf_string: { // printf_string::@6 // [67] printf_string::$9 = strlen::return#2 // signed char len = (signed char)strlen(str) - // [68] printf_string::len#0 = (signed byte)printf_string::$9 -- vbsaa=_sbyte_vwuz1 + // [68] printf_string::len#0 = (signed char)printf_string::$9 -- vbsaa=_sbyte_vwuz1 lda.z __9 // padding = (signed char)format.min_length - len // [69] printf_string::padding#1 = $a - printf_string::len#0 -- vbsz1=vbsc1_minus_vbsaa @@ -4033,10 +4033,10 @@ printf_string: { // printf_string::@4 __b4: // printf_padding(' ',(char)padding) - // [75] printf_padding::length#0 = (byte)printf_string::padding#3 -- vbuz1=vbuz2 + // [75] printf_padding::length#0 = (char)printf_string::padding#3 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [76] call printf_padding + // [76] call printf_padding // [96] phi from printf_string::@4 to printf_padding [phi:printf_string::@4->printf_padding] // [96] phi printf_padding::pad#4 = ' ' [phi:printf_string::@4->printf_padding#0] -- vbuz1=vbuc1 lda #' ' @@ -4047,7 +4047,7 @@ printf_string: { __b2: // cputs(str) // [77] cputs::s#1 = printf_string::str#10 - // [78] call cputs + // [78] call cputs // [103] phi from printf_string::@2 to cputs [phi:printf_string::@2->cputs] jsr cputs // printf_string::@7 @@ -4064,10 +4064,10 @@ printf_string: { // printf_string::@5 __b5: // printf_padding(' ',(char)padding) - // [81] printf_padding::length#1 = (byte)printf_string::padding#3 -- vbuz1=vbuz2 + // [81] printf_padding::length#1 = (char)printf_string::padding#3 -- vbuz1=vbuz2 lda.z padding sta.z printf_padding.length - // [82] call printf_padding + // [82] call printf_padding // [96] phi from printf_string::@5 to printf_padding [phi:printf_string::@5->printf_padding] // [96] phi printf_padding::pad#4 = ' ' [phi:printf_string::@5->printf_padding#0] -- vbuz1=vbuc1 lda #' ' @@ -4109,7 +4109,7 @@ cputln: { // [87] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [88] call cscroll + // [88] call cscroll jsr cscroll // cputln::@return // } @@ -4118,7 +4118,7 @@ cputln: { } // strlen // Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($b) str) +// __zp(6) unsigned int strlen(__zp($b) char *str) strlen: { .label len = 6 .label str = $b @@ -4162,7 +4162,7 @@ strlen: { } // printf_padding // Print a padding char a number of times -// printf_padding(byte zp(9) pad, byte zp(8) length) +// void printf_padding(__zp(9) char pad, __zp(8) char length) printf_padding: { .label i = $a .label length = 8 @@ -4187,7 +4187,7 @@ printf_padding: { // cputc(pad) // [100] cputc::c#1 = printf_padding::pad#4 -- vbuaa=vbuz1 lda.z pad - // [101] call cputc + // [101] call cputc // [124] phi from printf_padding::@2 to cputc [phi:printf_padding::@2->cputc] // [124] phi cputc::c#2 = cputc::c#1 [phi:printf_padding::@2->cputc#0] -- register_copy jsr cputc @@ -4201,7 +4201,7 @@ printf_padding: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(3) s) +// void cputs(__zp(3) const char *s) cputs: { .label s = 3 // [104] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -4228,7 +4228,7 @@ cputs: { __b2: // cputc(c) // [109] cputc::c#0 = cputs::c#1 - // [110] call cputc + // [110] call cputc // [124] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] // [124] phi cputc::c#2 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy jsr cputc @@ -4245,14 +4245,14 @@ cscroll: { // [112] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [113] call memcpy + // [113] call memcpy // [135] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [135] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [135] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [135] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [135] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -4261,14 +4261,14 @@ cscroll: { // [114] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [115] call memcpy + // [115] call memcpy // [135] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [135] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [135] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [135] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [135] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -4277,11 +4277,11 @@ cscroll: { // [116] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [117] call memset + // [117] call memset // [145] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [145] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [145] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [145] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -4290,11 +4290,11 @@ cscroll: { // [118] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [119] call memset + // [119] call memset // [145] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [145] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [145] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [145] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -4331,7 +4331,7 @@ cscroll: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [125] if(cputc::c#2==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -4356,7 +4356,7 @@ cputc: { // [130] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [131] call cputln + // [131] call cputln jsr cputln // cputc::@return __breturn: @@ -4367,14 +4367,14 @@ cputc: { // cputc::@1 __b1: // cputln() - // [134] call cputln + // [134] call cputln jsr cputln rts } // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($1b) destination, void* zp($b) source) +// void * memcpy(__zp($1b) void *destination, __zp($b) void *source, unsigned int num) memcpy: { .label src_end = $19 .label dst = $1b @@ -4382,7 +4382,7 @@ memcpy: { .label source = $b .label destination = $1b // char* src_end = (char*)source+num - // [136] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [136] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -4390,8 +4390,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [137] memcpy::src#4 = (byte*)memcpy::source#2 - // [138] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [137] memcpy::src#4 = (char *)memcpy::source#2 + // [138] memcpy::dst#4 = (char *)memcpy::destination#2 // [139] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [139] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [139] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -4431,14 +4431,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($b) str, byte register(X) c) +// void * memset(__zp($b) void *str, __register(X) char c, unsigned int num) memset: { .label end = $1b .label dst = $b .label str = $b // memset::@1 // char* end = (char*)str + num - // [146] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [146] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -4446,7 +4446,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [147] memset::dst#4 = (byte*)memset::str#3 + // [147] memset::dst#4 = (char *)memset::str#3 // [148] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [148] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/printf-1.sym b/src/test/ref/printf-1.sym index 8fbcc28b7..f3a1a813c 100644 --- a/src/test/ref/printf-1.sym +++ b/src/test/ref/printf-1.sym @@ -1,126 +1,126 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:11 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:11 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:3 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:3 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:11 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:11 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:3 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:3 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:13 25003.500000000007 -byte conio_cursor_y loadstore zp[1]:14 380954.86904761905 -byte* conio_line_color loadstore zp[2]:17 269514.743902439 -byte* conio_line_text loadstore zp[2]:15 266267.578313253 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 20002.0 -byte cputc::c#1 reg byte a 20002.0 -byte cputc::c#2 reg byte a 110002.0 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:13 25003.500000000007 +__loadstore char conio_cursor_y // zp[1]:14 380954.86904761905 +__loadstore char *conio_line_color // zp[2]:17 269514.743902439 +__loadstore char *conio_line_text // zp[2]:15 266267.578313253 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 20002.0 +char cputc::c#1 // reg byte a 20002.0 +char cputc::c#2 // reg byte a 110002.0 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 10001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:3 5000.5 -const byte* cputs::s#1 s zp[2]:3 551.0 -const byte* cputs::s#2 s zp[2]:3 15502.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 10001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:3 5000.5 +const char *cputs::s#1 // s zp[2]:3 551.0 +const char *cputs::s#2 // s zp[2]:3 15502.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:23 202.0 -byte*~ gotoxy::$6 zp[2]:19 202.0 -word~ gotoxy::$7 zp[2]:19 151.5 -word~ gotoxy::$8 zp[2]:21 202.0 -word~ gotoxy::$9 zp[2]:19 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:19 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:23 202.0 +char *gotoxy::$6 // zp[2]:19 202.0 +unsigned int gotoxy::$7 // zp[2]:19 151.5 +unsigned int gotoxy::$8 // zp[2]:21 202.0 +unsigned int gotoxy::$9 // zp[2]:19 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:19 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::str[4] = "cml" -constant byte* main::str1[6] = "rules" -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:27 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:27 1.0000000001E10 -byte* memcpy::dst#2 dst zp[2]:27 1.0033333334666666E10 -byte* memcpy::dst#4 dst zp[2]:27 2.00000002E8 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:11 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:11 2.0000000002E10 -byte* memcpy::src#2 src zp[2]:11 1.002500000125E10 -byte* memcpy::src#4 src zp[2]:11 1.00000001E8 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:25 1.26250000025E9 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714287142856E9 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:11 2.0000000002E10 -byte* memset::dst#2 dst zp[2]:11 1.3366666668333332E10 -byte* memset::dst#4 dst zp[2]:11 2.00000002E8 -byte* memset::end -byte* memset::end#0 end zp[2]:27 1.6833333336666665E9 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:11 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -byte printf_padding::i -byte printf_padding::i#1 i zp[1]:10 20002.0 -byte printf_padding::i#2 i zp[1]:10 7500.75 -byte printf_padding::length -byte printf_padding::length#0 length zp[1]:8 202.0 -byte printf_padding::length#1 length zp[1]:8 202.0 -byte printf_padding::length#3 length zp[1]:8 1700.5 -byte printf_padding::pad -byte printf_padding::pad#4 pad zp[1]:9 1666.8333333333333 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) -word~ printf_string::$9 zp[2]:6 101.0 +__constant char main::str[4] = "cml" +__constant char main::str1[6] = "rules" +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:27 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:27 1.0000000001E10 +char *memcpy::dst#2 // dst zp[2]:27 1.0033333334666666E10 +char *memcpy::dst#4 // dst zp[2]:27 2.00000002E8 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:11 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:11 2.0000000002E10 +char *memcpy::src#2 // src zp[2]:11 1.002500000125E10 +char *memcpy::src#4 // src zp[2]:11 1.00000001E8 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:25 1.26250000025E9 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714287142856E9 +char *memset::dst +char *memset::dst#1 // dst zp[2]:11 2.0000000002E10 +char *memset::dst#2 // dst zp[2]:11 1.3366666668333332E10 +char *memset::dst#4 // dst zp[2]:11 2.00000002E8 +char *memset::end +char *memset::end#0 // end zp[2]:27 1.6833333336666665E9 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:11 +void printf_padding(char pad , char length) +char printf_padding::i +char printf_padding::i#1 // i zp[1]:10 20002.0 +char printf_padding::i#2 // i zp[1]:10 7500.75 +char printf_padding::length +char printf_padding::length#0 // length zp[1]:8 202.0 +char printf_padding::length#1 // length zp[1]:8 202.0 +char printf_padding::length#3 // length zp[1]:8 1700.5 +char printf_padding::pad +char printf_padding::pad#4 // pad zp[1]:9 1666.8333333333333 +void printf_string(char *str , char format_min_length , char format_justify_left) +unsigned int printf_string::$9 // zp[2]:6 101.0 struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_justify_left#10 format_justify_left zp[1]:2 12.625 -byte printf_string::format_min_length -signed byte printf_string::len -signed byte printf_string::len#0 reg byte a 202.0 -signed byte printf_string::padding -signed byte printf_string::padding#1 padding zp[1]:5 101.0 -signed byte printf_string::padding#3 padding zp[1]:5 33.666666666666664 -byte* printf_string::str -byte* printf_string::str#10 str zp[2]:3 14.428571428571429 -word strlen(byte* strlen::str) -word strlen::len -word strlen::len#1 len zp[2]:6 10001.0 -word strlen::len#2 len zp[2]:6 5025.75 -word strlen::return -word strlen::return#2 return zp[2]:6 202.0 -byte* strlen::str -byte* strlen::str#0 str zp[2]:11 20002.0 -byte* strlen::str#1 str zp[2]:11 551.0 -byte* strlen::str#2 str zp[2]:11 10334.666666666666 +char printf_string::format_justify_left +char printf_string::format_justify_left#10 // format_justify_left zp[1]:2 12.625 +char printf_string::format_min_length +signed char printf_string::len +signed char printf_string::len#0 // reg byte a 202.0 +signed char printf_string::padding +signed char printf_string::padding#1 // padding zp[1]:5 101.0 +signed char printf_string::padding#3 // padding zp[1]:5 33.666666666666664 +char *printf_string::str +char *printf_string::str#10 // str zp[2]:3 14.428571428571429 +unsigned int strlen(char *str) +unsigned int strlen::len +unsigned int strlen::len#1 // len zp[2]:6 10001.0 +unsigned int strlen::len#2 // len zp[2]:6 5025.75 +unsigned int strlen::return +unsigned int strlen::return#2 // return zp[2]:6 202.0 +char *strlen::str +char *strlen::str#0 // str zp[2]:11 20002.0 +char *strlen::str#1 // str zp[2]:11 551.0 +char *strlen::str#2 // str zp[2]:11 10334.666666666666 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] diff --git a/src/test/ref/printf-10.asm b/src/test/ref/printf-10.asm index 7dfb3f776..fb10b6327 100644 --- a/src/test/ref/printf-10.asm +++ b/src/test/ref/printf-10.asm @@ -40,7 +40,7 @@ main: { .byte 0 } .segment Code -// cputs(byte* zp(4) str) +// void cputs(__zp(4) char *str) cputs: { .label str = 4 __b1: @@ -69,6 +69,7 @@ cputs: { } // Print a string value using a specific format // Handles justification and min length +// void printf_string(char *str, char format_min_length, char format_justify_left) printf_string: { // cputs(str) lda #cputs] cputs_from_main: - // [7] phi screen#25 = (byte*) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 + // [7] phi screen#25 = (char *) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -356,7 +356,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call printf_string + // [3] call printf_string // [14] phi from main::@1 to printf_string [phi:main::@1->printf_string] printf_string_from___b1: jsr printf_string @@ -365,7 +365,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call cputs + // [5] call cputs // [7] phi from main::@2 to cputs [phi:main::@2->cputs] cputs_from___b2: // [7] phi screen#25 = screen#1 [phi:main::@2->cputs#0] -- register_copy @@ -390,7 +390,7 @@ main: { } .segment Code // cputs -// cputs(byte* zp(4) str) +// void cputs(__zp(4) char *str) cputs: { .label str = 4 // [8] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -433,8 +433,9 @@ cputs: { // printf_string // Print a string value using a specific format // Handles justification and min length +// void printf_string(char *str, char format_min_length, char format_justify_left) printf_string: { - // [15] call cputs + // [15] call cputs // [7] phi from printf_string to cputs [phi:printf_string->cputs] cputs_from_printf_string: // [7] phi screen#25 = screen#1 [phi:printf_string->cputs#0] -- register_copy @@ -480,24 +481,24 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void cputs(byte* cputs::str) -byte* cputs::str -byte* cputs::str#0 str zp[2]:4 2002.0 -byte* cputs::str#4 str zp[2]:4 1026.25 -byte* cputs::str#6 str zp[2]:4 101.0 +void cputs(char *str) +char *cputs::str +char *cputs::str#0 // str zp[2]:4 2002.0 +char *cputs::str#4 // str zp[2]:4 1026.25 +char *cputs::str#6 // str zp[2]:4 101.0 void main() -constant byte* main::name = "Jesper" -constant byte* main::str[$d] = "Hello, I am " -constant byte* main::str1[$f] = ". who are you?" -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +__constant char *main::name = "Jesper" +__constant char main::str[$d] = "Hello, I am " +__constant char main::str1[$f] = ". who are you?" +void printf_string(char *str , char format_min_length , char format_justify_left) struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_min_length -byte* printf_string::str -byte* screen -byte* screen#0 screen zp[2]:2 1001.0 -byte* screen#1 screen zp[2]:2 283.3636363636364 -byte* screen#25 screen zp[2]:2 114.0 +char printf_string::format_justify_left +char printf_string::format_min_length +char *printf_string::str +char *screen +char *screen#0 // screen zp[2]:2 1001.0 +char *screen#1 // screen zp[2]:2 283.3636363636364 +char *screen#25 // screen zp[2]:2 114.0 zp[2]:2 [ screen#25 screen#1 screen#0 ] zp[2]:4 [ cputs::str#4 cputs::str#6 cputs::str#0 ] @@ -524,9 +525,9 @@ Score: 617 // main main: { // printf("Hello, I am %s. who are you?", name) - // [1] call cputs + // [1] call cputs // [7] phi from main to cputs [phi:main->cputs] - // [7] phi screen#25 = (byte*) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 + // [7] phi screen#25 = (char *) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -540,13 +541,13 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf("Hello, I am %s. who are you?", name) - // [3] call printf_string + // [3] call printf_string // [14] phi from main::@1 to printf_string [phi:main::@1->printf_string] jsr printf_string // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // printf("Hello, I am %s. who are you?", name) - // [5] call cputs + // [5] call cputs // [7] phi from main::@2 to cputs [phi:main::@2->cputs] // [7] phi screen#25 = screen#1 [phi:main::@2->cputs#0] -- register_copy // [7] phi cputs::str#6 = main::str1 [phi:main::@2->cputs#1] -- pbuz1=pbuc1 @@ -569,7 +570,7 @@ main: { } .segment Code // cputs -// cputs(byte* zp(4) str) +// void cputs(__zp(4) char *str) cputs: { .label str = 4 // [8] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -610,9 +611,10 @@ cputs: { // printf_string // Print a string value using a specific format // Handles justification and min length +// void printf_string(char *str, char format_min_length, char format_justify_left) printf_string: { // cputs(str) - // [15] call cputs + // [15] call cputs // [7] phi from printf_string to cputs [phi:printf_string->cputs] // [7] phi screen#25 = screen#1 [phi:printf_string->cputs#0] -- register_copy // [7] phi cputs::str#6 = main::name [phi:printf_string->cputs#1] -- pbuz1=pbuc1 diff --git a/src/test/ref/printf-10.sym b/src/test/ref/printf-10.sym index 57de5aa6d..d688e97ab 100644 --- a/src/test/ref/printf-10.sym +++ b/src/test/ref/printf-10.sym @@ -1,21 +1,21 @@ -void cputs(byte* cputs::str) -byte* cputs::str -byte* cputs::str#0 str zp[2]:4 2002.0 -byte* cputs::str#4 str zp[2]:4 1026.25 -byte* cputs::str#6 str zp[2]:4 101.0 +void cputs(char *str) +char *cputs::str +char *cputs::str#0 // str zp[2]:4 2002.0 +char *cputs::str#4 // str zp[2]:4 1026.25 +char *cputs::str#6 // str zp[2]:4 101.0 void main() -constant byte* main::name = "Jesper" -constant byte* main::str[$d] = "Hello, I am " -constant byte* main::str1[$f] = ". who are you?" -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +__constant char *main::name = "Jesper" +__constant char main::str[$d] = "Hello, I am " +__constant char main::str1[$f] = ". who are you?" +void printf_string(char *str , char format_min_length , char format_justify_left) struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_min_length -byte* printf_string::str -byte* screen -byte* screen#0 screen zp[2]:2 1001.0 -byte* screen#1 screen zp[2]:2 283.3636363636364 -byte* screen#25 screen zp[2]:2 114.0 +char printf_string::format_justify_left +char printf_string::format_min_length +char *printf_string::str +char *screen +char *screen#0 // screen zp[2]:2 1001.0 +char *screen#1 // screen zp[2]:2 283.3636363636364 +char *screen#25 // screen zp[2]:2 114.0 zp[2]:2 [ screen#25 screen#1 screen#0 ] zp[2]:4 [ cputs::str#4 cputs::str#6 cputs::str#0 ] diff --git a/src/test/ref/printf-11.asm b/src/test/ref/printf-11.asm index 9ee799e54..df45efb86 100644 --- a/src/test/ref/printf-11.asm +++ b/src/test/ref/printf-11.asm @@ -39,7 +39,7 @@ main: { .byte 0 } .segment Code -// cputs(byte* zp(2) str) +// void cputs(__zp(2) char *str) cputs: { .label str = 2 __b1: @@ -68,6 +68,7 @@ cputs: { } // Print an unsigned int using a specific format // Always prints hexadecimals - ignores min_length and flags +// void printf_uint(unsigned int uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uint: { // *screen++ = printf_hextab[BYTE1(uvalue)>>4] lda printf_hextab diff --git a/src/test/ref/printf-11.cfg b/src/test/ref/printf-11.cfg index 89ae3406d..cb93c549a 100644 --- a/src/test/ref/printf-11.cfg +++ b/src/test/ref/printf-11.cfg @@ -2,23 +2,23 @@ void main() main: scope:[main] from [0] phi() - [1] call cputs + [1] call cputs to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call printf_uint + [3] call printf_uint to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call cputs + [5] call cputs to:main::@return main::@return: scope:[main] from main::@2 [6] return to:@return -void cputs(byte* cputs::str) +void cputs(char *str) cputs: scope:[cputs] from main main::@2 - [7] screen#27 = phi( main/(byte*) 1024, main::@2/screen#17 ) + [7] screen#27 = phi( main/(char *) 1024, main::@2/screen#17 ) [7] cputs::str#5 = phi( main/main::str, main::@2/main::str1 ) to:cputs::@1 cputs::@1: scope:[cputs] from cputs cputs::@2 @@ -35,7 +35,7 @@ cputs::@2: scope:[cputs] from cputs::@1 [13] cputs::str#0 = ++ cputs::str#3 to:cputs::@1 -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@1 [14] *screen#1 = *printf_hextab [15] screen#2 = ++ screen#1 diff --git a/src/test/ref/printf-11.log b/src/test/ref/printf-11.log index 838b69100..eac27be00 100644 --- a/src/test/ref/printf-11.log +++ b/src/test/ref/printf-11.log @@ -1,10 +1,10 @@ Added struct type cast to parameter value list call printf_uint(main::pct, (struct printf_format_number){ 0, 0, 0, 0, 0, HEXADECIMAL }) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 CONTROL FLOW GRAPH SSA -void cputs(byte* cputs::str) +void cputs(char *str) cputs: scope:[cputs] from main main::@2 screen#27 = phi( main/screen#25, main::@2/screen#8 ) cputs::str#5 = phi( main/cputs::str#1, main::@2/cputs::str#2 ) @@ -28,7 +28,7 @@ cputs::@return: scope:[cputs] from cputs::@1 return to:@return -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@1 screen#16 = phi( main::@1/screen#7 ) printf_uint::uvalue#1 = phi( main::@1/printf_uint::uvalue#0 ) @@ -59,7 +59,7 @@ void main() main: scope:[main] from __start::@1 screen#25 = phi( __start::@1/screen#26 ) cputs::str#1 = main::str - call cputs + call cputs to:main::@1 main::@1: scope:[main] from main screen#18 = phi( main/screen#1 ) @@ -71,13 +71,13 @@ main::@1: scope:[main] from main printf_uint::format_zero_padding#0 = 0 printf_uint::format_upper_case#0 = 0 printf_uint::format_radix#0 = HEXADECIMAL - call printf_uint + call printf_uint to:main::@2 main::@2: scope:[main] from main::@1 screen#19 = phi( main::@1/screen#6 ) screen#8 = screen#19 cputs::str#2 = main::str1 - call cputs + call cputs to:main::@3 main::@3: scope:[main] from main::@2 screen#20 = phi( main::@2/screen#1 ) @@ -93,11 +93,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#11 = (byte*)$400 + screen#11 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#26 = phi( __start::__init1/screen#11 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#22 = phi( __start::@1/screen#10 ) @@ -110,80 +110,80 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte HEXADECIMAL = $10 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char HEXADECIMAL = $10 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -void cputs(byte* cputs::str) -bool~ cputs::$0 -byte* cputs::str -byte* cputs::str#0 -byte* cputs::str#1 -byte* cputs::str#2 -byte* cputs::str#3 -byte* cputs::str#4 -byte* cputs::str#5 +void cputs(char *str) +bool cputs::$0 +char *cputs::str +char *cputs::str#0 +char *cputs::str#1 +char *cputs::str#2 +char *cputs::str#3 +char *cputs::str#4 +char *cputs::str#5 void main() -constant word main::pct = $156 -constant byte* main::str[$e] = "Commodore is " -constant byte* main::str1[6] = " cool" -constant const byte* printf_hextab[] = "0123456789abcdef"z -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) -byte~ printf_uint::$0 -byte~ printf_uint::$1 -byte~ printf_uint::$2 -number~ printf_uint::$3 -byte~ printf_uint::$4 -byte~ printf_uint::$5 -byte~ printf_uint::$6 -number~ printf_uint::$7 +__constant unsigned int main::pct = $156 +__constant char main::str[$e] = "Commodore is " +__constant char main::str1[6] = " cool" +__constant const char printf_hextab[] = "0123456789abcdef"z +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +char printf_uint::$0 +char printf_uint::$1 +char printf_uint::$2 +number printf_uint::$3 +char printf_uint::$4 +char printf_uint::$5 +char printf_uint::$6 +number printf_uint::$7 struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_justify_left#0 -byte printf_uint::format_min_length -byte printf_uint::format_min_length#0 -byte printf_uint::format_radix -byte printf_uint::format_radix#0 -byte printf_uint::format_sign_always -byte printf_uint::format_sign_always#0 -byte printf_uint::format_upper_case -byte printf_uint::format_upper_case#0 -byte printf_uint::format_zero_padding -byte printf_uint::format_zero_padding#0 -word printf_uint::uvalue -word printf_uint::uvalue#0 -word printf_uint::uvalue#1 -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#11 -byte* screen#12 -byte* screen#13 -byte* screen#14 -byte* screen#15 -byte* screen#16 -byte* screen#17 -byte* screen#18 -byte* screen#19 -byte* screen#2 -byte* screen#20 -byte* screen#21 -byte* screen#22 -byte* screen#23 -byte* screen#24 -byte* screen#25 -byte* screen#26 -byte* screen#27 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 +char printf_uint::format_justify_left +char printf_uint::format_justify_left#0 +char printf_uint::format_min_length +char printf_uint::format_min_length#0 +char printf_uint::format_radix +char printf_uint::format_radix#0 +char printf_uint::format_sign_always +char printf_uint::format_sign_always#0 +char printf_uint::format_upper_case +char printf_uint::format_upper_case#0 +char printf_uint::format_zero_padding +char printf_uint::format_zero_padding#0 +unsigned int printf_uint::uvalue +unsigned int printf_uint::uvalue#0 +unsigned int printf_uint::uvalue#1 +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#11 +char *screen#12 +char *screen#13 +char *screen#14 +char *screen#15 +char *screen#16 +char *screen#17 +char *screen#18 +char *screen#19 +char *screen#2 +char *screen#20 +char *screen#21 +char *screen#22 +char *screen#23 +char *screen#24 +char *screen#25 +char *screen#26 +char *screen#27 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 Adding number conversion cast (unumber) 0 in cputs::$0 = 0 != *cputs::str#3 Adding number conversion cast (unumber) 4 in printf_uint::$1 = printf_uint::$0 >> 4 @@ -198,16 +198,16 @@ Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast 4 Simplifying constant integer cast $f -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in printf_uint::$3 = printf_uint::$2 & $f -Inferred type updated to byte in printf_uint::$7 = printf_uint::$6 & $f +Inferred type updated to char in printf_uint::$3 = printf_uint::$2 & $f +Inferred type updated to char in printf_uint::$7 = printf_uint::$6 & $f Alias cputs::str#3 = cputs::str#4 Alias screen#1 = screen#14 screen#24 screen#15 Alias screen#17 = screen#5 screen#6 @@ -236,7 +236,7 @@ Constant printf_uint::format_zero_padding#0 = 0 Constant printf_uint::format_upper_case#0 = 0 Constant printf_uint::format_radix#0 = HEXADECIMAL Constant cputs::str#2 = main::str1 -Constant screen#11 = (byte*) 1024 +Constant screen#11 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant printf_uint::format_min_length#0 Eliminating unused constant printf_uint::format_justify_left#0 @@ -286,7 +286,7 @@ Inlining constant with var siblings cputs::str#2 Inlining constant with var siblings screen#11 Constant inlined cputs::str#1 = main::str Constant inlined cputs::str#2 = main::str1 -Constant inlined screen#11 = (byte*) 1024 +Constant inlined screen#11 = (char *) 1024 Constant inlined printf_uint::$3 = byte1 main::pct&$f Constant inlined printf_uint::uvalue#0 = main::pct Constant inlined printf_uint::$2 = byte1 main::pct @@ -299,10 +299,10 @@ Consolidated array index constant in *(printf_hextab+byte1 main::pct&$f) Consolidated array index constant in *(printf_hextab+byte0 main::pct>>4) Consolidated array index constant in *(printf_hextab+byte0 main::pct&$f) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -327,23 +327,23 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call cputs + [1] call cputs to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call printf_uint + [3] call printf_uint to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call cputs + [5] call cputs to:main::@return main::@return: scope:[main] from main::@2 [6] return to:@return -void cputs(byte* cputs::str) +void cputs(char *str) cputs: scope:[cputs] from main main::@2 - [7] screen#27 = phi( main/(byte*) 1024, main::@2/screen#17 ) + [7] screen#27 = phi( main/(char *) 1024, main::@2/screen#17 ) [7] cputs::str#5 = phi( main/main::str, main::@2/main::str1 ) to:cputs::@1 cputs::@1: scope:[cputs] from cputs cputs::@2 @@ -360,7 +360,7 @@ cputs::@2: scope:[cputs] from cputs::@1 [13] cputs::str#0 = ++ cputs::str#3 to:cputs::@1 -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@1 [14] *screen#1 = *printf_hextab [15] screen#2 = ++ screen#1 @@ -377,29 +377,29 @@ printf_uint::@return: scope:[printf_uint] from printf_uint VARIABLE REGISTER WEIGHTS -void cputs(byte* cputs::str) -byte* cputs::str -byte* cputs::str#0 202.0 -byte* cputs::str#3 103.75 -byte* cputs::str#5 11.0 +void cputs(char *str) +char *cputs::str +char *cputs::str#0 // 202.0 +char *cputs::str#3 // 103.75 +char *cputs::str#5 // 11.0 void main() -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_min_length -byte printf_uint::format_radix -byte printf_uint::format_sign_always -byte printf_uint::format_upper_case -byte printf_uint::format_zero_padding -word printf_uint::uvalue -byte* screen -byte* screen#0 101.0 -byte* screen#1 48.0 -byte* screen#17 3.25 -byte* screen#2 16.5 -byte* screen#27 13.0 -byte* screen#3 16.5 -byte* screen#4 16.5 +char printf_uint::format_justify_left +char printf_uint::format_min_length +char printf_uint::format_radix +char printf_uint::format_sign_always +char printf_uint::format_upper_case +char printf_uint::format_zero_padding +unsigned int printf_uint::uvalue +char *screen +char *screen#0 // 101.0 +char *screen#1 // 48.0 +char *screen#17 // 3.25 +char *screen#2 // 16.5 +char *screen#27 // 13.0 +char *screen#3 // 16.5 +char *screen#4 // 16.5 Initial phi equivalence classes [ cputs::str#3 cputs::str#5 cputs::str#0 ] @@ -472,10 +472,10 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label pct = $156 - // [1] call cputs + // [1] call cputs // [7] phi from main to cputs [phi:main->cputs] cputs_from_main: - // [7] phi screen#27 = (byte*) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 + // [7] phi screen#27 = (char *) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -491,14 +491,14 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call printf_uint + // [3] call printf_uint jsr printf_uint // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: jmp __b2 // main::@2 __b2: - // [5] call cputs + // [5] call cputs // [7] phi from main::@2 to cputs [phi:main::@2->cputs] cputs_from___b2: // [7] phi screen#27 = screen#17 [phi:main::@2->cputs#0] -- register_copy @@ -521,7 +521,7 @@ main: { } .segment Code // cputs -// cputs(byte* zp(2) str) +// void cputs(__zp(2) char *str) cputs: { .label str = 2 // [8] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -564,6 +564,7 @@ cputs: { // printf_uint // Print an unsigned int using a specific format // Always prints hexadecimals - ignores min_length and flags +// void printf_uint(unsigned int uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uint: { // [14] *screen#1 = *printf_hextab -- _deref_pbuz1=_deref_pbuc1 lda printf_hextab @@ -637,37 +638,37 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void cputs(byte* cputs::str) -byte* cputs::str -byte* cputs::str#0 str zp[2]:2 202.0 -byte* cputs::str#3 str zp[2]:2 103.75 -byte* cputs::str#5 str zp[2]:2 11.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void cputs(char *str) +char *cputs::str +char *cputs::str#0 // str zp[2]:2 202.0 +char *cputs::str#3 // str zp[2]:2 103.75 +char *cputs::str#5 // str zp[2]:2 11.0 void main() -constant word main::pct = $156 -constant byte* main::str[$e] = "Commodore is " -constant byte* main::str1[6] = " cool" -constant const byte* printf_hextab[] = "0123456789abcdef"z -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +__constant unsigned int main::pct = $156 +__constant char main::str[$e] = "Commodore is " +__constant char main::str1[6] = " cool" +__constant const char printf_hextab[] = "0123456789abcdef"z +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_min_length -byte printf_uint::format_radix -byte printf_uint::format_sign_always -byte printf_uint::format_upper_case -byte printf_uint::format_zero_padding -word printf_uint::uvalue -byte* screen -byte* screen#0 screen zp[2]:4 101.0 -byte* screen#1 screen zp[2]:4 48.0 -byte* screen#17 screen zp[2]:4 3.25 -byte* screen#2 screen zp[2]:4 16.5 -byte* screen#27 screen zp[2]:4 13.0 -byte* screen#3 screen zp[2]:4 16.5 -byte* screen#4 screen zp[2]:4 16.5 +char printf_uint::format_justify_left +char printf_uint::format_min_length +char printf_uint::format_radix +char printf_uint::format_sign_always +char printf_uint::format_upper_case +char printf_uint::format_zero_padding +unsigned int printf_uint::uvalue +char *screen +char *screen#0 // screen zp[2]:4 101.0 +char *screen#1 // screen zp[2]:4 48.0 +char *screen#17 // screen zp[2]:4 3.25 +char *screen#2 // screen zp[2]:4 16.5 +char *screen#27 // screen zp[2]:4 13.0 +char *screen#3 // screen zp[2]:4 16.5 +char *screen#4 // screen zp[2]:4 16.5 zp[2]:2 [ cputs::str#3 cputs::str#5 cputs::str#0 ] zp[2]:4 [ screen#1 screen#27 screen#17 screen#0 screen#2 screen#4 screen#3 ] @@ -695,9 +696,9 @@ Score: 697 main: { .label pct = $156 // printf("Commodore is %x cool", pct) - // [1] call cputs + // [1] call cputs // [7] phi from main to cputs [phi:main->cputs] - // [7] phi screen#27 = (byte*) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 + // [7] phi screen#27 = (char *) 1024 [phi:main->cputs#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -711,12 +712,12 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf("Commodore is %x cool", pct) - // [3] call printf_uint + // [3] call printf_uint jsr printf_uint // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // printf("Commodore is %x cool", pct) - // [5] call cputs + // [5] call cputs // [7] phi from main::@2 to cputs [phi:main::@2->cputs] // [7] phi screen#27 = screen#17 [phi:main::@2->cputs#0] -- register_copy // [7] phi cputs::str#5 = main::str1 [phi:main::@2->cputs#1] -- pbuz1=pbuc1 @@ -737,7 +738,7 @@ main: { } .segment Code // cputs -// cputs(byte* zp(2) str) +// void cputs(__zp(2) char *str) cputs: { .label str = 2 // [8] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -778,6 +779,7 @@ cputs: { // printf_uint // Print an unsigned int using a specific format // Always prints hexadecimals - ignores min_length and flags +// void printf_uint(unsigned int uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uint: { // *screen++ = printf_hextab[BYTE1(uvalue)>>4] // [14] *screen#1 = *printf_hextab -- _deref_pbuz1=_deref_pbuc1 diff --git a/src/test/ref/printf-11.sym b/src/test/ref/printf-11.sym index 711918385..a77444d91 100644 --- a/src/test/ref/printf-11.sym +++ b/src/test/ref/printf-11.sym @@ -1,34 +1,34 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void cputs(byte* cputs::str) -byte* cputs::str -byte* cputs::str#0 str zp[2]:2 202.0 -byte* cputs::str#3 str zp[2]:2 103.75 -byte* cputs::str#5 str zp[2]:2 11.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void cputs(char *str) +char *cputs::str +char *cputs::str#0 // str zp[2]:2 202.0 +char *cputs::str#3 // str zp[2]:2 103.75 +char *cputs::str#5 // str zp[2]:2 11.0 void main() -constant word main::pct = $156 -constant byte* main::str[$e] = "Commodore is " -constant byte* main::str1[6] = " cool" -constant const byte* printf_hextab[] = "0123456789abcdef"z -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +__constant unsigned int main::pct = $156 +__constant char main::str[$e] = "Commodore is " +__constant char main::str1[6] = " cool" +__constant const char printf_hextab[] = "0123456789abcdef"z +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_min_length -byte printf_uint::format_radix -byte printf_uint::format_sign_always -byte printf_uint::format_upper_case -byte printf_uint::format_zero_padding -word printf_uint::uvalue -byte* screen -byte* screen#0 screen zp[2]:4 101.0 -byte* screen#1 screen zp[2]:4 48.0 -byte* screen#17 screen zp[2]:4 3.25 -byte* screen#2 screen zp[2]:4 16.5 -byte* screen#27 screen zp[2]:4 13.0 -byte* screen#3 screen zp[2]:4 16.5 -byte* screen#4 screen zp[2]:4 16.5 +char printf_uint::format_justify_left +char printf_uint::format_min_length +char printf_uint::format_radix +char printf_uint::format_sign_always +char printf_uint::format_upper_case +char printf_uint::format_zero_padding +unsigned int printf_uint::uvalue +char *screen +char *screen#0 // screen zp[2]:4 101.0 +char *screen#1 // screen zp[2]:4 48.0 +char *screen#17 // screen zp[2]:4 3.25 +char *screen#2 // screen zp[2]:4 16.5 +char *screen#27 // screen zp[2]:4 13.0 +char *screen#3 // screen zp[2]:4 16.5 +char *screen#4 // screen zp[2]:4 16.5 zp[2]:2 [ cputs::str#3 cputs::str#5 cputs::str#0 ] zp[2]:4 [ screen#1 screen#27 screen#17 screen#0 screen#2 screen#4 screen#3 ] diff --git a/src/test/ref/printf-14.asm b/src/test/ref/printf-14.asm index cafe514a2..bdfa0b2e9 100644 --- a/src/test/ref/printf-14.asm +++ b/src/test/ref/printf-14.asm @@ -72,7 +72,7 @@ main: { rts } // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -217,6 +217,7 @@ clrscr: { jmp __b3 } // Print an unsigned char using a specific format +// void printf_uchar(char uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uchar: { // printf_buffer.sign = format.sign_always?'+':0 // Handle any sign @@ -237,7 +238,7 @@ printf_uchar: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp(6) buffer) +// void uctoa(__register(X) char value, __zp(6) char *buffer, char radix) uctoa: { .const max_digits = 3 .label digit_value = $14 @@ -302,7 +303,7 @@ uctoa: { } // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // if(buffer.sign) @@ -324,7 +325,7 @@ printf_number_buffer: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp(6) buffer, byte register(X) value, byte zp($14) sub) +// __register(X) char uctoa_append(__zp(6) char *buffer, __register(X) char value, __zp($14) char sub) uctoa_append: { .label buffer = 6 .label sub = $14 @@ -351,7 +352,7 @@ uctoa_append: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -378,7 +379,7 @@ cputc: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(4) s) +// void cputs(__zp(4) const char *s) cputs: { .label s = 4 lda #= 'a' @@ -143,7 +143,7 @@ toupper::@return: scope:[toupper] from toupper::@1 toupper::@2 return to:@return -byte* strupr(byte* strupr::str) +char * strupr(char *str) strupr: scope:[strupr] from printf_number_buffer::@11 strupr::str#1 = phi( printf_number_buffer::@11/strupr::str#0 ) strupr::src#0 = strupr::str#1 @@ -158,7 +158,7 @@ strupr::@2: scope:[strupr] from strupr::@1 strupr::str#5 = phi( strupr::@1/strupr::str#3 ) strupr::src#3 = phi( strupr::@1/strupr::src#2 ) toupper::ch#0 = *strupr::src#3 - call toupper + call toupper toupper::return#3 = toupper::return#2 to:strupr::@4 strupr::@4: scope:[strupr] from strupr::@2 @@ -179,13 +179,13 @@ strupr::@return: scope:[strupr] from strupr::@3 return to:@return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_uchar::@3 uctoa::buffer#21 = phi( printf_uchar::@3/uctoa::buffer#5 ) uctoa::value#12 = phi( printf_uchar::@3/uctoa::value#1 ) uctoa::radix#1 = phi( printf_uchar::@3/uctoa::radix#0 ) uctoa::max_digits#0 = 0 - uctoa::digit_values#0 = (byte*) 0 + uctoa::digit_values#0 = (char *) 0 uctoa::$0 = uctoa::radix#1 == DECIMAL if(uctoa::$0) goto uctoa::@1 to:uctoa::@6 @@ -282,7 +282,7 @@ uctoa::@11: scope:[uctoa] from uctoa::@10 uctoa::@12: scope:[uctoa] from uctoa::@10 uctoa::buffer#7 = phi( uctoa::@10/uctoa::buffer#11 ) uctoa::value#3 = phi( uctoa::@10/uctoa::value#5 ) - uctoa::$10 = (byte)uctoa::value#3 + uctoa::$10 = (char)uctoa::value#3 *uctoa::buffer#7 = DIGITS[uctoa::$10] uctoa::buffer#3 = ++ uctoa::buffer#7 *uctoa::buffer#3 = 0 @@ -306,7 +306,7 @@ uctoa::@14: scope:[uctoa] from uctoa::@11 uctoa_append::buffer#0 = uctoa::buffer#8 uctoa_append::value#0 = uctoa::value#4 uctoa_append::sub#0 = uctoa::digit_value#1 - call uctoa_append + call uctoa_append uctoa_append::return#0 = uctoa_append::return#2 to:uctoa::@15 uctoa::@15: scope:[uctoa] from uctoa::@14 @@ -321,7 +321,7 @@ uctoa::@15: scope:[uctoa] from uctoa::@14 uctoa::started#1 = 1 to:uctoa::@13 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@14 uctoa_append::buffer#3 = phi( uctoa::@14/uctoa_append::buffer#0 ) uctoa_append::sub#3 = phi( uctoa::@14/uctoa_append::sub#0 ) @@ -411,7 +411,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -435,7 +435,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -450,7 +450,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@9/cputc::c#2, printf_padding::@2/cputc::c#1 ) cputc::$0 = cputc::c#3 == ' @@ -458,7 +458,7 @@ cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -472,7 +472,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -486,7 +486,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -494,7 +494,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_number_buffer::@5 cputs::s#3 = phi( printf_number_buffer::@5/cputs::s#1 ) cputs::c#0 = 0 @@ -511,7 +511,7 @@ cputs::@2: scope:[cputs] from cputs::@1 cputs::s#5 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 - call cputc + call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#4 = phi( cputs::@2/cputs::s#5 ) @@ -531,31 +531,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -566,7 +566,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -585,7 +585,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -596,7 +596,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_padding::pad#5 = phi( printf_number_buffer::@10/printf_padding::pad#1, printf_number_buffer::@12/printf_padding::pad#2, printf_number_buffer::@8/printf_padding::pad#0 ) printf_padding::length#4 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) @@ -614,7 +614,7 @@ printf_padding::@2: scope:[printf_padding] from printf_padding::@1 printf_padding::i#4 = phi( printf_padding::@1/printf_padding::i#2 ) printf_padding::pad#3 = phi( printf_padding::@1/printf_padding::pad#4 ) cputc::c#1 = printf_padding::pad#3 - call cputc + call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 printf_padding::pad#6 = phi( printf_padding::@2/printf_padding::pad#3 ) @@ -626,7 +626,7 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 return to:@return -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uchar: scope:[printf_uchar] from main::@1 printf_uchar::format_upper_case#5 = phi( main::@1/printf_uchar::format_upper_case#0 ) printf_uchar::format_zero_padding#5 = phi( main::@1/printf_uchar::format_zero_padding#0 ) @@ -667,11 +667,11 @@ printf_uchar::@3: scope:[printf_uchar] from printf_uchar::@1 printf_uchar::@2 printf_uchar::format_radix#1 = phi( printf_uchar::@1/printf_uchar::format_radix#3, printf_uchar::@2/printf_uchar::format_radix#4 ) printf_uchar::uvalue#1 = phi( printf_uchar::@1/printf_uchar::uvalue#2, printf_uchar::@2/printf_uchar::uvalue#3 ) printf_uchar::$2 = phi( printf_uchar::@1/printf_uchar::$1, printf_uchar::@2/printf_uchar::$0 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 uctoa::value#1 = printf_uchar::uvalue#1 - uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS uctoa::radix#0 = printf_uchar::format_radix#1 - call uctoa + call uctoa to:printf_uchar::@4 printf_uchar::@4: scope:[printf_uchar] from printf_uchar::@3 printf_uchar::format_radix#2 = phi( printf_uchar::@3/printf_uchar::format_radix#1 ) @@ -680,15 +680,15 @@ printf_uchar::@4: scope:[printf_uchar] from printf_uchar::@3 printf_uchar::format_sign_always#2 = phi( printf_uchar::@3/printf_uchar::format_sign_always#3 ) printf_uchar::format_justify_left#1 = phi( printf_uchar::@3/printf_uchar::format_justify_left#2 ) printf_uchar::format_min_length#1 = phi( printf_uchar::@3/printf_uchar::format_min_length#2 ) - printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) + printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_number_buffer::format_min_length#0 = printf_uchar::format_min_length#1 printf_number_buffer::format_justify_left#0 = printf_uchar::format_justify_left#1 printf_number_buffer::format_sign_always#0 = printf_uchar::format_sign_always#2 printf_number_buffer::format_zero_padding#0 = printf_uchar::format_zero_padding#1 printf_number_buffer::format_upper_case#0 = printf_uchar::format_upper_case#1 printf_number_buffer::format_radix#0 = printf_uchar::format_radix#2 - call printf_number_buffer + call printf_number_buffer to:printf_uchar::@5 printf_uchar::@5: scope:[printf_uchar] from printf_uchar::@4 to:printf_uchar::@return @@ -696,7 +696,7 @@ printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@5 return to:@return -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@4 printf_number_buffer::format_upper_case#10 = phi( printf_uchar::@4/printf_number_buffer::format_upper_case#0 ) printf_number_buffer::buffer_sign#7 = phi( printf_uchar::@4/printf_number_buffer::buffer_sign#0 ) @@ -733,7 +733,7 @@ printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#4 = phi( printf_number_buffer/printf_number_buffer::buffer_sign#7 ) printf_number_buffer::buffer_digits#1 = phi( printf_number_buffer/printf_number_buffer::buffer_digits#4 ) strlen::str#1 = printf_number_buffer::buffer_digits#1 - call strlen + call strlen strlen::return#2 = strlen::return#1 to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@6 @@ -745,7 +745,7 @@ printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::buffer_sign#1 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_sign#4 ) strlen::return#4 = phi( printf_number_buffer::@6/strlen::return#2 ) printf_number_buffer::$19 = strlen::return#4 - printf_number_buffer::len#0 = (signed byte)printf_number_buffer::$19 + printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#1 printf_number_buffer::$20 = ! printf_number_buffer::$29 if(printf_number_buffer::$20) goto printf_number_buffer::@13 @@ -758,7 +758,7 @@ printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_justify_left#4 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#7, printf_number_buffer::@7/printf_number_buffer::format_justify_left#8 ) printf_number_buffer::len#2 = phi( printf_number_buffer::@15/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) printf_number_buffer::format_min_length#2 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#3, printf_number_buffer::@7/printf_number_buffer::format_min_length#4 ) - printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#2 + printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 printf_number_buffer::$21 = printf_number_buffer::$25 - printf_number_buffer::len#2 printf_number_buffer::padding#1 = printf_number_buffer::$21 printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0 @@ -802,8 +802,8 @@ printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#10 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#5 ) printf_number_buffer::padding#4 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3 ) printf_padding::pad#0 = ' ' - printf_padding::length#0 = (byte)printf_number_buffer::padding#4 - call printf_padding + printf_padding::length#0 = (char)printf_number_buffer::padding#4 + call printf_padding to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@8 printf_number_buffer::format_justify_left#18 = phi( printf_number_buffer::@8/printf_number_buffer::format_justify_left#20 ) @@ -831,7 +831,7 @@ printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#13 = phi( printf_number_buffer::@2/printf_number_buffer::format_zero_padding#8 ) printf_number_buffer::buffer_sign#3 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_sign#2 ) cputc::c#2 = printf_number_buffer::buffer_sign#3 - call cputc + call cputc to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@9 printf_number_buffer::format_justify_left#15 = phi( printf_number_buffer::@9/printf_number_buffer::format_justify_left#19 ) @@ -857,8 +857,8 @@ printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_upper_case#6 = phi( printf_number_buffer::@3/printf_number_buffer::format_upper_case#3 ) printf_number_buffer::padding#6 = phi( printf_number_buffer::@3/printf_number_buffer::padding#5 ) printf_padding::pad#1 = '0' - printf_padding::length#1 = (byte)printf_number_buffer::padding#6 - call printf_padding + printf_padding::length#1 = (char)printf_number_buffer::padding#6 + call printf_padding to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::padding#16 = phi( printf_number_buffer::@10/printf_number_buffer::padding#6 ) @@ -873,7 +873,7 @@ printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#9 = phi( printf_number_buffer::@20/printf_number_buffer::format_zero_padding#14, printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#2 = phi( printf_number_buffer::@20/printf_number_buffer::buffer_digits#5, printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) cputs::s#1 = printf_number_buffer::buffer_digits#2 - call cputs + call cputs to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@5 printf_number_buffer::padding#7 = phi( printf_number_buffer::@5/printf_number_buffer::padding#11 ) @@ -892,7 +892,7 @@ printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_zero_padding#19 = phi( printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#3 = phi( printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) strupr::str#0 = printf_number_buffer::buffer_digits#3 - call strupr + call strupr strupr::return#2 = strupr::return#1 to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@11 @@ -904,8 +904,8 @@ printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::padding#8 = phi( printf_number_buffer::@19/printf_number_buffer::padding#7 ) printf_padding::pad#2 = ' ' - printf_padding::length#2 = (byte)printf_number_buffer::padding#8 - call printf_padding + printf_padding::length#2 = (char)printf_number_buffer::padding#8 + call printf_padding to:printf_number_buffer::@21 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@12 to:printf_number_buffer::@return @@ -915,7 +915,7 @@ printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_ void main() main: scope:[main] from __start::@1 - call clrscr + call clrscr to:main::@1 main::@1: scope:[main] from main printf_uchar::uvalue#0 = main::c @@ -925,7 +925,7 @@ main::@1: scope:[main] from main printf_uchar::format_zero_padding#0 = 0 printf_uchar::format_upper_case#0 = 0 printf_uchar::format_radix#0 = DECIMAL - call printf_uchar + call printf_uchar to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -943,12 +943,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -957,638 +957,638 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte DECIMAL = $a -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant const byte LIGHT_BLUE = $e -constant byte OCTAL = 8 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 } -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 } -constant byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 } +__constant char BINARY = 2 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char DECIMAL = $a +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant const char LIGHT_BLUE = $e +__constant char OCTAL = 8 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 } +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 } +__constant char RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 } void __start() void clrscr() -bool~ clrscr::$0 -bool~ clrscr::$1 -byte clrscr::c -byte clrscr::c#0 -byte clrscr::c#1 -byte clrscr::c#2 -byte clrscr::c#3 -byte clrscr::l -byte clrscr::l#0 -byte clrscr::l#1 -byte clrscr::l#2 -byte clrscr::l#3 -byte clrscr::l#4 -byte clrscr::l#5 -byte clrscr::l#6 -byte* clrscr::line_cols -byte* clrscr::line_cols#0 -byte* clrscr::line_cols#1 -byte* clrscr::line_cols#2 -byte* clrscr::line_cols#3 -byte* clrscr::line_cols#4 -byte* clrscr::line_cols#5 -byte* clrscr::line_cols#6 -byte* clrscr::line_text -byte* clrscr::line_text#0 -byte* clrscr::line_text#1 -byte* clrscr::line_text#2 -byte* clrscr::line_text#3 -byte* clrscr::line_text#4 -byte* clrscr::line_text#5 -byte* clrscr::line_text#6 +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 -byte cputc::c#4 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 +char cputc::c#4 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -constant byte main::c = 7 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -struct printf_buffer_number printf_buffer loadstore = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) -bool~ printf_number_buffer::$0 -bool~ printf_number_buffer::$1 -bool~ printf_number_buffer::$10 -bool~ printf_number_buffer::$12 -bool~ printf_number_buffer::$14 -bool~ printf_number_buffer::$15 -bool~ printf_number_buffer::$16 -bool~ printf_number_buffer::$17 -word~ printf_number_buffer::$19 -bool~ printf_number_buffer::$2 -bool~ printf_number_buffer::$20 -signed byte~ printf_number_buffer::$21 -bool~ printf_number_buffer::$22 -bool~ printf_number_buffer::$23 -signed byte~ printf_number_buffer::$25 -bool~ printf_number_buffer::$26 -bool~ printf_number_buffer::$27 -bool~ printf_number_buffer::$28 -bool~ printf_number_buffer::$29 -bool~ printf_number_buffer::$3 -bool~ printf_number_buffer::$30 -bool~ printf_number_buffer::$31 -bool~ printf_number_buffer::$32 -bool~ printf_number_buffer::$4 -bool~ printf_number_buffer::$5 -bool~ printf_number_buffer::$7 -bool~ printf_number_buffer::$9 +__constant char main::c = 7 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +__loadstore struct printf_buffer_number printf_buffer = {} +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +bool printf_number_buffer::$0 +bool printf_number_buffer::$1 +bool printf_number_buffer::$10 +bool printf_number_buffer::$12 +bool printf_number_buffer::$14 +bool printf_number_buffer::$15 +bool printf_number_buffer::$16 +bool printf_number_buffer::$17 +unsigned int printf_number_buffer::$19 +bool printf_number_buffer::$2 +bool printf_number_buffer::$20 +signed char printf_number_buffer::$21 +bool printf_number_buffer::$22 +bool printf_number_buffer::$23 +signed char printf_number_buffer::$25 +bool printf_number_buffer::$26 +bool printf_number_buffer::$27 +bool printf_number_buffer::$28 +bool printf_number_buffer::$29 +bool printf_number_buffer::$3 +bool printf_number_buffer::$30 +bool printf_number_buffer::$31 +bool printf_number_buffer::$32 +bool printf_number_buffer::$4 +bool printf_number_buffer::$5 +bool printf_number_buffer::$7 +bool printf_number_buffer::$9 struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -byte* printf_number_buffer::buffer_digits#0 -byte* printf_number_buffer::buffer_digits#1 -byte* printf_number_buffer::buffer_digits#10 -byte* printf_number_buffer::buffer_digits#11 -byte* printf_number_buffer::buffer_digits#12 -byte* printf_number_buffer::buffer_digits#13 -byte* printf_number_buffer::buffer_digits#14 -byte* printf_number_buffer::buffer_digits#15 -byte* printf_number_buffer::buffer_digits#16 -byte* printf_number_buffer::buffer_digits#17 -byte* printf_number_buffer::buffer_digits#18 -byte* printf_number_buffer::buffer_digits#19 -byte* printf_number_buffer::buffer_digits#2 -byte* printf_number_buffer::buffer_digits#3 -byte* printf_number_buffer::buffer_digits#4 -byte* printf_number_buffer::buffer_digits#5 -byte* printf_number_buffer::buffer_digits#6 -byte* printf_number_buffer::buffer_digits#7 -byte* printf_number_buffer::buffer_digits#8 -byte* printf_number_buffer::buffer_digits#9 -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 -byte printf_number_buffer::buffer_sign#1 -byte printf_number_buffer::buffer_sign#10 -byte printf_number_buffer::buffer_sign#11 -byte printf_number_buffer::buffer_sign#2 -byte printf_number_buffer::buffer_sign#3 -byte printf_number_buffer::buffer_sign#4 -byte printf_number_buffer::buffer_sign#5 -byte printf_number_buffer::buffer_sign#6 -byte printf_number_buffer::buffer_sign#7 -byte printf_number_buffer::buffer_sign#8 -byte printf_number_buffer::buffer_sign#9 +char *printf_number_buffer::buffer_digits +char *printf_number_buffer::buffer_digits#0 +char *printf_number_buffer::buffer_digits#1 +char *printf_number_buffer::buffer_digits#10 +char *printf_number_buffer::buffer_digits#11 +char *printf_number_buffer::buffer_digits#12 +char *printf_number_buffer::buffer_digits#13 +char *printf_number_buffer::buffer_digits#14 +char *printf_number_buffer::buffer_digits#15 +char *printf_number_buffer::buffer_digits#16 +char *printf_number_buffer::buffer_digits#17 +char *printf_number_buffer::buffer_digits#18 +char *printf_number_buffer::buffer_digits#19 +char *printf_number_buffer::buffer_digits#2 +char *printf_number_buffer::buffer_digits#3 +char *printf_number_buffer::buffer_digits#4 +char *printf_number_buffer::buffer_digits#5 +char *printf_number_buffer::buffer_digits#6 +char *printf_number_buffer::buffer_digits#7 +char *printf_number_buffer::buffer_digits#8 +char *printf_number_buffer::buffer_digits#9 +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 +char printf_number_buffer::buffer_sign#1 +char printf_number_buffer::buffer_sign#10 +char printf_number_buffer::buffer_sign#11 +char printf_number_buffer::buffer_sign#2 +char printf_number_buffer::buffer_sign#3 +char printf_number_buffer::buffer_sign#4 +char printf_number_buffer::buffer_sign#5 +char printf_number_buffer::buffer_sign#6 +char printf_number_buffer::buffer_sign#7 +char printf_number_buffer::buffer_sign#8 +char printf_number_buffer::buffer_sign#9 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_justify_left#0 -byte printf_number_buffer::format_justify_left#1 -byte printf_number_buffer::format_justify_left#10 -byte printf_number_buffer::format_justify_left#11 -byte printf_number_buffer::format_justify_left#12 -byte printf_number_buffer::format_justify_left#13 -byte printf_number_buffer::format_justify_left#14 -byte printf_number_buffer::format_justify_left#15 -byte printf_number_buffer::format_justify_left#16 -byte printf_number_buffer::format_justify_left#17 -byte printf_number_buffer::format_justify_left#18 -byte printf_number_buffer::format_justify_left#19 -byte printf_number_buffer::format_justify_left#2 -byte printf_number_buffer::format_justify_left#20 -byte printf_number_buffer::format_justify_left#3 -byte printf_number_buffer::format_justify_left#4 -byte printf_number_buffer::format_justify_left#5 -byte printf_number_buffer::format_justify_left#6 -byte printf_number_buffer::format_justify_left#7 -byte printf_number_buffer::format_justify_left#8 -byte printf_number_buffer::format_justify_left#9 -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_min_length#0 -byte printf_number_buffer::format_min_length#1 -byte printf_number_buffer::format_min_length#2 -byte printf_number_buffer::format_min_length#3 -byte printf_number_buffer::format_min_length#4 -byte printf_number_buffer::format_min_length#5 -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_radix#0 -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_sign_always#0 -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_upper_case#0 -byte printf_number_buffer::format_upper_case#1 -byte printf_number_buffer::format_upper_case#10 -byte printf_number_buffer::format_upper_case#11 -byte printf_number_buffer::format_upper_case#12 -byte printf_number_buffer::format_upper_case#13 -byte printf_number_buffer::format_upper_case#14 -byte printf_number_buffer::format_upper_case#15 -byte printf_number_buffer::format_upper_case#16 -byte printf_number_buffer::format_upper_case#2 -byte printf_number_buffer::format_upper_case#3 -byte printf_number_buffer::format_upper_case#4 -byte printf_number_buffer::format_upper_case#5 -byte printf_number_buffer::format_upper_case#6 -byte printf_number_buffer::format_upper_case#7 -byte printf_number_buffer::format_upper_case#8 -byte printf_number_buffer::format_upper_case#9 -byte printf_number_buffer::format_zero_padding -byte printf_number_buffer::format_zero_padding#0 -byte printf_number_buffer::format_zero_padding#1 -byte printf_number_buffer::format_zero_padding#10 -byte printf_number_buffer::format_zero_padding#11 -byte printf_number_buffer::format_zero_padding#12 -byte printf_number_buffer::format_zero_padding#13 -byte printf_number_buffer::format_zero_padding#14 -byte printf_number_buffer::format_zero_padding#15 -byte printf_number_buffer::format_zero_padding#16 -byte printf_number_buffer::format_zero_padding#17 -byte printf_number_buffer::format_zero_padding#18 -byte printf_number_buffer::format_zero_padding#19 -byte printf_number_buffer::format_zero_padding#2 -byte printf_number_buffer::format_zero_padding#20 -byte printf_number_buffer::format_zero_padding#3 -byte printf_number_buffer::format_zero_padding#4 -byte printf_number_buffer::format_zero_padding#5 -byte printf_number_buffer::format_zero_padding#6 -byte printf_number_buffer::format_zero_padding#7 -byte printf_number_buffer::format_zero_padding#8 -byte printf_number_buffer::format_zero_padding#9 -signed byte printf_number_buffer::len -signed byte printf_number_buffer::len#0 -signed byte printf_number_buffer::len#1 -signed byte printf_number_buffer::len#2 -signed byte printf_number_buffer::len#3 -signed byte printf_number_buffer::padding -signed byte printf_number_buffer::padding#0 -signed byte printf_number_buffer::padding#1 -signed byte printf_number_buffer::padding#10 -signed byte printf_number_buffer::padding#11 -signed byte printf_number_buffer::padding#12 -signed byte printf_number_buffer::padding#13 -signed byte printf_number_buffer::padding#14 -signed byte printf_number_buffer::padding#15 -signed byte printf_number_buffer::padding#16 -signed byte printf_number_buffer::padding#17 -signed byte printf_number_buffer::padding#2 -signed byte printf_number_buffer::padding#3 -signed byte printf_number_buffer::padding#4 -signed byte printf_number_buffer::padding#5 -signed byte printf_number_buffer::padding#6 -signed byte printf_number_buffer::padding#7 -signed byte printf_number_buffer::padding#8 -signed byte printf_number_buffer::padding#9 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -bool~ printf_padding::$0 -byte printf_padding::i -byte printf_padding::i#0 -byte printf_padding::i#1 -byte printf_padding::i#2 -byte printf_padding::i#3 -byte printf_padding::i#4 -byte printf_padding::length -byte printf_padding::length#0 -byte printf_padding::length#1 -byte printf_padding::length#2 -byte printf_padding::length#3 -byte printf_padding::length#4 -byte printf_padding::length#5 -byte printf_padding::length#6 -byte printf_padding::pad -byte printf_padding::pad#0 -byte printf_padding::pad#1 -byte printf_padding::pad#2 -byte printf_padding::pad#3 -byte printf_padding::pad#4 -byte printf_padding::pad#5 -byte printf_padding::pad#6 -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) -number~ printf_uchar::$0 -byte~ printf_uchar::$1 -number~ printf_uchar::$2 -bool~ printf_uchar::$5 +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_justify_left#0 +char printf_number_buffer::format_justify_left#1 +char printf_number_buffer::format_justify_left#10 +char printf_number_buffer::format_justify_left#11 +char printf_number_buffer::format_justify_left#12 +char printf_number_buffer::format_justify_left#13 +char printf_number_buffer::format_justify_left#14 +char printf_number_buffer::format_justify_left#15 +char printf_number_buffer::format_justify_left#16 +char printf_number_buffer::format_justify_left#17 +char printf_number_buffer::format_justify_left#18 +char printf_number_buffer::format_justify_left#19 +char printf_number_buffer::format_justify_left#2 +char printf_number_buffer::format_justify_left#20 +char printf_number_buffer::format_justify_left#3 +char printf_number_buffer::format_justify_left#4 +char printf_number_buffer::format_justify_left#5 +char printf_number_buffer::format_justify_left#6 +char printf_number_buffer::format_justify_left#7 +char printf_number_buffer::format_justify_left#8 +char printf_number_buffer::format_justify_left#9 +char printf_number_buffer::format_min_length +char printf_number_buffer::format_min_length#0 +char printf_number_buffer::format_min_length#1 +char printf_number_buffer::format_min_length#2 +char printf_number_buffer::format_min_length#3 +char printf_number_buffer::format_min_length#4 +char printf_number_buffer::format_min_length#5 +char printf_number_buffer::format_radix +char printf_number_buffer::format_radix#0 +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_sign_always#0 +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_upper_case#0 +char printf_number_buffer::format_upper_case#1 +char printf_number_buffer::format_upper_case#10 +char printf_number_buffer::format_upper_case#11 +char printf_number_buffer::format_upper_case#12 +char printf_number_buffer::format_upper_case#13 +char printf_number_buffer::format_upper_case#14 +char printf_number_buffer::format_upper_case#15 +char printf_number_buffer::format_upper_case#16 +char printf_number_buffer::format_upper_case#2 +char printf_number_buffer::format_upper_case#3 +char printf_number_buffer::format_upper_case#4 +char printf_number_buffer::format_upper_case#5 +char printf_number_buffer::format_upper_case#6 +char printf_number_buffer::format_upper_case#7 +char printf_number_buffer::format_upper_case#8 +char printf_number_buffer::format_upper_case#9 +char printf_number_buffer::format_zero_padding +char printf_number_buffer::format_zero_padding#0 +char printf_number_buffer::format_zero_padding#1 +char printf_number_buffer::format_zero_padding#10 +char printf_number_buffer::format_zero_padding#11 +char printf_number_buffer::format_zero_padding#12 +char printf_number_buffer::format_zero_padding#13 +char printf_number_buffer::format_zero_padding#14 +char printf_number_buffer::format_zero_padding#15 +char printf_number_buffer::format_zero_padding#16 +char printf_number_buffer::format_zero_padding#17 +char printf_number_buffer::format_zero_padding#18 +char printf_number_buffer::format_zero_padding#19 +char printf_number_buffer::format_zero_padding#2 +char printf_number_buffer::format_zero_padding#20 +char printf_number_buffer::format_zero_padding#3 +char printf_number_buffer::format_zero_padding#4 +char printf_number_buffer::format_zero_padding#5 +char printf_number_buffer::format_zero_padding#6 +char printf_number_buffer::format_zero_padding#7 +char printf_number_buffer::format_zero_padding#8 +char printf_number_buffer::format_zero_padding#9 +signed char printf_number_buffer::len +signed char printf_number_buffer::len#0 +signed char printf_number_buffer::len#1 +signed char printf_number_buffer::len#2 +signed char printf_number_buffer::len#3 +signed char printf_number_buffer::padding +signed char printf_number_buffer::padding#0 +signed char printf_number_buffer::padding#1 +signed char printf_number_buffer::padding#10 +signed char printf_number_buffer::padding#11 +signed char printf_number_buffer::padding#12 +signed char printf_number_buffer::padding#13 +signed char printf_number_buffer::padding#14 +signed char printf_number_buffer::padding#15 +signed char printf_number_buffer::padding#16 +signed char printf_number_buffer::padding#17 +signed char printf_number_buffer::padding#2 +signed char printf_number_buffer::padding#3 +signed char printf_number_buffer::padding#4 +signed char printf_number_buffer::padding#5 +signed char printf_number_buffer::padding#6 +signed char printf_number_buffer::padding#7 +signed char printf_number_buffer::padding#8 +signed char printf_number_buffer::padding#9 +void printf_padding(char pad , char length) +bool printf_padding::$0 +char printf_padding::i +char printf_padding::i#0 +char printf_padding::i#1 +char printf_padding::i#2 +char printf_padding::i#3 +char printf_padding::i#4 +char printf_padding::length +char printf_padding::length#0 +char printf_padding::length#1 +char printf_padding::length#2 +char printf_padding::length#3 +char printf_padding::length#4 +char printf_padding::length#5 +char printf_padding::length#6 +char printf_padding::pad +char printf_padding::pad#0 +char printf_padding::pad#1 +char printf_padding::pad#2 +char printf_padding::pad#3 +char printf_padding::pad#4 +char printf_padding::pad#5 +char printf_padding::pad#6 +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +number printf_uchar::$0 +char printf_uchar::$1 +number printf_uchar::$2 +bool printf_uchar::$5 struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_justify_left#0 -byte printf_uchar::format_justify_left#1 -byte printf_uchar::format_justify_left#2 -byte printf_uchar::format_justify_left#3 -byte printf_uchar::format_justify_left#4 -byte printf_uchar::format_justify_left#5 -byte printf_uchar::format_min_length -byte printf_uchar::format_min_length#0 -byte printf_uchar::format_min_length#1 -byte printf_uchar::format_min_length#2 -byte printf_uchar::format_min_length#3 -byte printf_uchar::format_min_length#4 -byte printf_uchar::format_min_length#5 -byte printf_uchar::format_radix -byte printf_uchar::format_radix#0 -byte printf_uchar::format_radix#1 -byte printf_uchar::format_radix#2 -byte printf_uchar::format_radix#3 -byte printf_uchar::format_radix#4 -byte printf_uchar::format_radix#5 -byte printf_uchar::format_sign_always -byte printf_uchar::format_sign_always#0 -byte printf_uchar::format_sign_always#1 -byte printf_uchar::format_sign_always#2 -byte printf_uchar::format_sign_always#3 -byte printf_uchar::format_sign_always#4 -byte printf_uchar::format_sign_always#5 -byte printf_uchar::format_upper_case -byte printf_uchar::format_upper_case#0 -byte printf_uchar::format_upper_case#1 -byte printf_uchar::format_upper_case#2 -byte printf_uchar::format_upper_case#3 -byte printf_uchar::format_upper_case#4 -byte printf_uchar::format_upper_case#5 -byte printf_uchar::format_zero_padding -byte printf_uchar::format_zero_padding#0 -byte printf_uchar::format_zero_padding#1 -byte printf_uchar::format_zero_padding#2 -byte printf_uchar::format_zero_padding#3 -byte printf_uchar::format_zero_padding#4 -byte printf_uchar::format_zero_padding#5 -byte printf_uchar::uvalue -byte printf_uchar::uvalue#0 -byte printf_uchar::uvalue#1 -byte printf_uchar::uvalue#2 -byte printf_uchar::uvalue#3 -byte printf_uchar::uvalue#4 -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 -byte* strupr(byte* strupr::str) -byte~ strupr::$0 -bool~ strupr::$1 -byte* strupr::return -byte* strupr::return#0 -byte* strupr::return#1 -byte* strupr::return#2 -byte* strupr::return#3 -byte* strupr::src -byte* strupr::src#0 -byte* strupr::src#1 -byte* strupr::src#2 -byte* strupr::src#3 -byte* strupr::src#4 -byte* strupr::str -byte* strupr::str#0 -byte* strupr::str#1 -byte* strupr::str#2 -byte* strupr::str#3 -byte* strupr::str#4 -byte* strupr::str#5 -byte toupper(byte toupper::ch) -bool~ toupper::$0 -bool~ toupper::$1 -bool~ toupper::$2 -byte~ toupper::$3 -byte toupper::ch -byte toupper::ch#0 -byte toupper::ch#1 -byte toupper::ch#2 -byte toupper::ch#3 -byte toupper::return -byte toupper::return#0 -byte toupper::return#1 -byte toupper::return#2 -byte toupper::return#3 -byte toupper::return#4 -byte toupper::return#5 -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -bool~ uctoa::$0 -bool~ uctoa::$1 -byte~ uctoa::$10 -bool~ uctoa::$2 -bool~ uctoa::$3 -number~ uctoa::$4 -bool~ uctoa::$5 -bool~ uctoa::$6 -bool~ uctoa::$7 -bool~ uctoa::$8 -byte~ uctoa::$9 -byte* uctoa::buffer -byte* uctoa::buffer#0 -byte* uctoa::buffer#1 -byte* uctoa::buffer#10 -byte* uctoa::buffer#11 -byte* uctoa::buffer#12 -byte* uctoa::buffer#13 -byte* uctoa::buffer#14 -byte* uctoa::buffer#15 -byte* uctoa::buffer#16 -byte* uctoa::buffer#17 -byte* uctoa::buffer#18 -byte* uctoa::buffer#19 -byte* uctoa::buffer#2 -byte* uctoa::buffer#20 -byte* uctoa::buffer#21 -byte* uctoa::buffer#3 -byte* uctoa::buffer#4 -byte* uctoa::buffer#5 -byte* uctoa::buffer#6 -byte* uctoa::buffer#7 -byte* uctoa::buffer#8 -byte* uctoa::buffer#9 -byte uctoa::digit -byte uctoa::digit#0 -byte uctoa::digit#1 -byte uctoa::digit#2 -byte uctoa::digit#3 -byte uctoa::digit#4 -byte uctoa::digit#5 -byte uctoa::digit#6 -byte uctoa::digit_value -byte uctoa::digit_value#0 -byte uctoa::digit_value#1 -byte* uctoa::digit_values -byte* uctoa::digit_values#0 -byte* uctoa::digit_values#1 -byte* uctoa::digit_values#10 -byte* uctoa::digit_values#2 -byte* uctoa::digit_values#3 -byte* uctoa::digit_values#4 -byte* uctoa::digit_values#5 -byte* uctoa::digit_values#6 -byte* uctoa::digit_values#7 -byte* uctoa::digit_values#8 -byte* uctoa::digit_values#9 -byte uctoa::max_digits -byte uctoa::max_digits#0 -byte uctoa::max_digits#1 -byte uctoa::max_digits#10 -byte uctoa::max_digits#2 -byte uctoa::max_digits#3 -byte uctoa::max_digits#4 -byte uctoa::max_digits#5 -byte uctoa::max_digits#6 -byte uctoa::max_digits#7 -byte uctoa::max_digits#8 -byte uctoa::max_digits#9 -byte uctoa::radix -byte uctoa::radix#0 -byte uctoa::radix#1 -byte uctoa::radix#2 -byte uctoa::radix#3 -byte uctoa::radix#4 -byte uctoa::started -byte uctoa::started#0 -byte uctoa::started#1 -byte uctoa::started#2 -byte uctoa::started#3 -byte uctoa::started#4 -byte uctoa::value -byte uctoa::value#0 -byte uctoa::value#1 -byte uctoa::value#10 -byte uctoa::value#11 -byte uctoa::value#12 -byte uctoa::value#13 -byte uctoa::value#14 -byte uctoa::value#15 -byte uctoa::value#2 -byte uctoa::value#3 -byte uctoa::value#4 -byte uctoa::value#5 -byte uctoa::value#6 -byte uctoa::value#7 -byte uctoa::value#8 -byte uctoa::value#9 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -bool~ uctoa_append::$0 -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 -byte* uctoa_append::buffer#1 -byte* uctoa_append::buffer#2 -byte* uctoa_append::buffer#3 -byte* uctoa_append::buffer#4 -byte uctoa_append::digit -byte uctoa_append::digit#0 -byte uctoa_append::digit#1 -byte uctoa_append::digit#2 -byte uctoa_append::digit#3 -byte uctoa_append::digit#4 -byte uctoa_append::return -byte uctoa_append::return#0 -byte uctoa_append::return#1 -byte uctoa_append::return#2 -byte uctoa_append::return#3 -byte uctoa_append::return#4 -byte uctoa_append::sub -byte uctoa_append::sub#0 -byte uctoa_append::sub#1 -byte uctoa_append::sub#2 -byte uctoa_append::sub#3 -byte uctoa_append::value -byte uctoa_append::value#0 -byte uctoa_append::value#1 -byte uctoa_append::value#2 -byte uctoa_append::value#3 -byte uctoa_append::value#4 -byte uctoa_append::value#5 +char printf_uchar::format_justify_left +char printf_uchar::format_justify_left#0 +char printf_uchar::format_justify_left#1 +char printf_uchar::format_justify_left#2 +char printf_uchar::format_justify_left#3 +char printf_uchar::format_justify_left#4 +char printf_uchar::format_justify_left#5 +char printf_uchar::format_min_length +char printf_uchar::format_min_length#0 +char printf_uchar::format_min_length#1 +char printf_uchar::format_min_length#2 +char printf_uchar::format_min_length#3 +char printf_uchar::format_min_length#4 +char printf_uchar::format_min_length#5 +char printf_uchar::format_radix +char printf_uchar::format_radix#0 +char printf_uchar::format_radix#1 +char printf_uchar::format_radix#2 +char printf_uchar::format_radix#3 +char printf_uchar::format_radix#4 +char printf_uchar::format_radix#5 +char printf_uchar::format_sign_always +char printf_uchar::format_sign_always#0 +char printf_uchar::format_sign_always#1 +char printf_uchar::format_sign_always#2 +char printf_uchar::format_sign_always#3 +char printf_uchar::format_sign_always#4 +char printf_uchar::format_sign_always#5 +char printf_uchar::format_upper_case +char printf_uchar::format_upper_case#0 +char printf_uchar::format_upper_case#1 +char printf_uchar::format_upper_case#2 +char printf_uchar::format_upper_case#3 +char printf_uchar::format_upper_case#4 +char printf_uchar::format_upper_case#5 +char printf_uchar::format_zero_padding +char printf_uchar::format_zero_padding#0 +char printf_uchar::format_zero_padding#1 +char printf_uchar::format_zero_padding#2 +char printf_uchar::format_zero_padding#3 +char printf_uchar::format_zero_padding#4 +char printf_uchar::format_zero_padding#5 +char printf_uchar::uvalue +char printf_uchar::uvalue#0 +char printf_uchar::uvalue#1 +char printf_uchar::uvalue#2 +char printf_uchar::uvalue#3 +char printf_uchar::uvalue#4 +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 +char * strupr(char *str) +char strupr::$0 +bool strupr::$1 +char *strupr::return +char *strupr::return#0 +char *strupr::return#1 +char *strupr::return#2 +char *strupr::return#3 +char *strupr::src +char *strupr::src#0 +char *strupr::src#1 +char *strupr::src#2 +char *strupr::src#3 +char *strupr::src#4 +char *strupr::str +char *strupr::str#0 +char *strupr::str#1 +char *strupr::str#2 +char *strupr::str#3 +char *strupr::str#4 +char *strupr::str#5 +char toupper(char ch) +bool toupper::$0 +bool toupper::$1 +bool toupper::$2 +char toupper::$3 +char toupper::ch +char toupper::ch#0 +char toupper::ch#1 +char toupper::ch#2 +char toupper::ch#3 +char toupper::return +char toupper::return#0 +char toupper::return#1 +char toupper::return#2 +char toupper::return#3 +char toupper::return#4 +char toupper::return#5 +void uctoa(char value , char *buffer , char radix) +bool uctoa::$0 +bool uctoa::$1 +char uctoa::$10 +bool uctoa::$2 +bool uctoa::$3 +number uctoa::$4 +bool uctoa::$5 +bool uctoa::$6 +bool uctoa::$7 +bool uctoa::$8 +char uctoa::$9 +char *uctoa::buffer +char *uctoa::buffer#0 +char *uctoa::buffer#1 +char *uctoa::buffer#10 +char *uctoa::buffer#11 +char *uctoa::buffer#12 +char *uctoa::buffer#13 +char *uctoa::buffer#14 +char *uctoa::buffer#15 +char *uctoa::buffer#16 +char *uctoa::buffer#17 +char *uctoa::buffer#18 +char *uctoa::buffer#19 +char *uctoa::buffer#2 +char *uctoa::buffer#20 +char *uctoa::buffer#21 +char *uctoa::buffer#3 +char *uctoa::buffer#4 +char *uctoa::buffer#5 +char *uctoa::buffer#6 +char *uctoa::buffer#7 +char *uctoa::buffer#8 +char *uctoa::buffer#9 +char uctoa::digit +char uctoa::digit#0 +char uctoa::digit#1 +char uctoa::digit#2 +char uctoa::digit#3 +char uctoa::digit#4 +char uctoa::digit#5 +char uctoa::digit#6 +char uctoa::digit_value +char uctoa::digit_value#0 +char uctoa::digit_value#1 +char *uctoa::digit_values +char *uctoa::digit_values#0 +char *uctoa::digit_values#1 +char *uctoa::digit_values#10 +char *uctoa::digit_values#2 +char *uctoa::digit_values#3 +char *uctoa::digit_values#4 +char *uctoa::digit_values#5 +char *uctoa::digit_values#6 +char *uctoa::digit_values#7 +char *uctoa::digit_values#8 +char *uctoa::digit_values#9 +char uctoa::max_digits +char uctoa::max_digits#0 +char uctoa::max_digits#1 +char uctoa::max_digits#10 +char uctoa::max_digits#2 +char uctoa::max_digits#3 +char uctoa::max_digits#4 +char uctoa::max_digits#5 +char uctoa::max_digits#6 +char uctoa::max_digits#7 +char uctoa::max_digits#8 +char uctoa::max_digits#9 +char uctoa::radix +char uctoa::radix#0 +char uctoa::radix#1 +char uctoa::radix#2 +char uctoa::radix#3 +char uctoa::radix#4 +char uctoa::started +char uctoa::started#0 +char uctoa::started#1 +char uctoa::started#2 +char uctoa::started#3 +char uctoa::started#4 +char uctoa::value +char uctoa::value#0 +char uctoa::value#1 +char uctoa::value#10 +char uctoa::value#11 +char uctoa::value#12 +char uctoa::value#13 +char uctoa::value#14 +char uctoa::value#15 +char uctoa::value#2 +char uctoa::value#3 +char uctoa::value#4 +char uctoa::value#5 +char uctoa::value#6 +char uctoa::value#7 +char uctoa::value#8 +char uctoa::value#9 +char uctoa_append(char *buffer , char value , char sub) +bool uctoa_append::$0 +char *uctoa_append::buffer +char *uctoa_append::buffer#0 +char *uctoa_append::buffer#1 +char *uctoa_append::buffer#2 +char *uctoa_append::buffer#3 +char *uctoa_append::buffer#4 +char uctoa_append::digit +char uctoa_append::digit#0 +char uctoa_append::digit#1 +char uctoa_append::digit#2 +char uctoa_append::digit#3 +char uctoa_append::digit#4 +char uctoa_append::return +char uctoa_append::return#0 +char uctoa_append::return#1 +char uctoa_append::return#2 +char uctoa_append::return#3 +char uctoa_append::return#4 +char uctoa_append::sub +char uctoa_append::sub#0 +char uctoa_append::sub#1 +char uctoa_append::sub#2 +char uctoa_append::sub#3 +char uctoa_append::value +char uctoa_append::value#0 +char uctoa_append::value#1 +char uctoa_append::value#2 +char uctoa_append::value#3 +char uctoa_append::value#4 +char uctoa_append::value#5 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#2 @@ -1620,15 +1620,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -1666,9 +1666,9 @@ Adding number conversion cast (unumber) 0 in printf_number_buffer::$32 = 0 != pr Successful SSA optimization PassNAddNumberTypeConversions Adding number conversion cast (unumber) 0 in printf_uchar::$0 = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast uctoa::max_digits#1 = (unumber)3 Inlining cast uctoa::max_digits#2 = (unumber)2 Inlining cast uctoa::max_digits#3 = (unumber)3 @@ -1692,9 +1692,9 @@ Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Inlining cast printf_uchar::$0 = (unumber)0 Inlining cast printf_number_buffer::padding#2 = (snumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -1749,62 +1749,62 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in uctoa::$4 = uctoa::max_digits#5 - 1 -Inferred type updated to byte in printf_uchar::$0 = 0 -Inferred type updated to byte for printf_uchar::$2 +Inferred type updated to char in uctoa::$4 = uctoa::max_digits#5 - 1 +Inferred type updated to char in printf_uchar::$0 = 0 +Inferred type updated to char for printf_uchar::$2 Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [186] gotoxy::$1 = gotoxy::y#3 <= $19 from [185] gotoxy::$0 = gotoxy::y#3 > $19 Inversing boolean not [190] gotoxy::$3 = gotoxy::x#3 < $28 from [189] gotoxy::$2 = gotoxy::x#3 >= $28 @@ -2060,7 +2060,7 @@ Constant right-side identified [217] conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant strlen::len#0 = 0 Constant uctoa::max_digits#0 = 0 -Constant uctoa::digit_values#0 = (byte*) 0 +Constant uctoa::digit_values#0 = (char *) 0 Constant uctoa::max_digits#1 = 3 Constant uctoa::digit_values#1 = RADIX_DECIMAL_VALUES_CHAR Constant uctoa::max_digits#2 = 2 @@ -2080,16 +2080,16 @@ Constant clrscr::c#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -2098,8 +2098,8 @@ Constant conio_c64_init::line#1 = (unumber)$19-1 Constant printf_padding::i#0 = 0 Constant printf_uchar::$1 = '+' Constant printf_uchar::$0 = 0 -Constant uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant printf_number_buffer::padding#0 = 0 Constant printf_number_buffer::padding#2 = 0 Constant printf_padding::pad#0 = ' ' @@ -2128,7 +2128,7 @@ Constant strlen::str#1 = printf_number_buffer::buffer_digits#0 Constant cputs::s#1 = printf_number_buffer::buffer_digits#0 Constant strupr::str#0 = printf_number_buffer::buffer_digits#0 Successful SSA optimization Pass2ConstantIdentification -Constant printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#0 +Constant printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 Constant strupr::return#2 = strupr::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [56] if(uctoa::radix#0==DECIMAL) goto uctoa::@1 @@ -2141,10 +2141,10 @@ if() condition always true - replacing block destination [252] if(0==printf_numb if() condition always true - replacing block destination [285] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5 Successful SSA optimization Pass2ConstantIfs Rewriting conditional comparison [136] if(gotoxy::y#3<=$19) goto gotoxy::@1 -Simplifying constant evaluating to zero (signed byte)printf_number_buffer::format_min_length#0 in +Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)&printf_buffer in [234] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 -Simplifying expression containing zero (byte*)&printf_buffer in [239] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (char *)&printf_buffer in [234] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 +Simplifying expression containing zero (char *)&printf_buffer in [239] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) Simplifying expression containing zero printf_number_buffer::len#2 in [269] printf_number_buffer::padding#1 = printf_number_buffer::$25 - printf_number_buffer::len#2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating variable strlen::str#2 from unused block strlen::@1 @@ -2280,13 +2280,13 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -2315,14 +2315,14 @@ Negating conditional jump and destination [160] if(0!=printf_number_buffer::form Negating conditional jump and destination [165] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [24] uctoa::$4 = uctoa::max_digits#1 - 1 -Constant right-side identified [132] printf_padding::length#0 = (byte)printf_number_buffer::padding#0 -Constant right-side identified [138] printf_padding::length#1 = (byte)printf_number_buffer::padding#0 -Constant right-side identified [144] printf_padding::length#2 = (byte)printf_number_buffer::padding#0 +Constant right-side identified [132] printf_padding::length#0 = (char)printf_number_buffer::padding#0 +Constant right-side identified [138] printf_padding::length#1 = (char)printf_number_buffer::padding#0 +Constant right-side identified [144] printf_padding::length#2 = (char)printf_number_buffer::padding#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant uctoa::$4 = uctoa::max_digits#1-1 -Constant printf_padding::length#0 = (byte)printf_number_buffer::padding#0 -Constant printf_padding::length#1 = (byte)printf_number_buffer::padding#0 -Constant printf_padding::length#2 = (byte)printf_number_buffer::padding#0 +Constant printf_padding::length#0 = (char)printf_number_buffer::padding#0 +Constant printf_padding::length#1 = (char)printf_number_buffer::padding#0 +Constant printf_padding::length#2 = (char)printf_number_buffer::padding#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [66] if(gotoxy::x#2<$28) goto gotoxy::@2 if() condition always false - eliminating [130] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2 @@ -2334,9 +2334,9 @@ if() condition always false - eliminating [162] if(0!=printf_number_buffer::padd if() condition always false - eliminating [164] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12 if() condition always false - eliminating [165] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in Successful SSA optimization PassNSimplifyConstantZero Eliminating variable printf_padding::length#4 from unused block printf_padding Eliminating variable printf_padding::pad#5 from unused block printf_padding @@ -2377,11 +2377,11 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[64] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -2418,24 +2418,24 @@ Constant inlined cputs::s#1 = printf_number_buffer::buffer_digits#0 Constant inlined printf_uchar::uvalue#0 = main::c Constant inlined printf_uchar::$0 = 0 Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 Constant inlined clrscr::l#0 = 0 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 Constant inlined uctoa::digit#0 = 0 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 -Constant inlined uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 +Constant inlined uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined gotoxy::y#0 = 0 Constant inlined memset::c#0 = ' ' Constant inlined memset::c#1 = LIGHT_BLUE @@ -2449,28 +2449,28 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [9] if($28<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -2642,11 +2642,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -2663,7 +2663,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -2672,17 +2672,17 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main [18] phi() - [19] call printf_uchar + [19] call printf_uchar to:main::@return main::@return: scope:[main] from main::@1 [20] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [21] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -2695,7 +2695,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [24] conio_cursor_x = gotoxy::x#2 [25] conio_cursor_y = gotoxy::y#4 - [26] gotoxy::$7 = (word)gotoxy::y#4 + [26] gotoxy::$7 = (unsigned int)gotoxy::y#4 [27] gotoxy::$8 = gotoxy::$7 << 2 [28] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [29] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -2742,28 +2742,28 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [50] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uchar: scope:[printf_uchar] from main::@1 [51] phi() to:printf_uchar::@1 printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [52] *((byte*)&printf_buffer) = 0 - [53] call uctoa + [52] *((char *)&printf_buffer) = 0 + [53] call uctoa to:printf_uchar::@2 printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [54] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) - [55] call printf_number_buffer + [54] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [55] call printf_number_buffer to:printf_uchar::@return printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 [56] return to:@return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_uchar::@1 [57] phi() to:uctoa::@1 uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [58] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [58] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [58] uctoa::started#2 = phi( uctoa::@4/uctoa::started#4, uctoa/0 ) [58] uctoa::value#2 = phi( uctoa::@4/uctoa::value#6, uctoa/main::c ) [58] uctoa::digit#2 = phi( uctoa::@4/uctoa::digit#1, uctoa/0 ) @@ -2794,7 +2794,7 @@ uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 [69] uctoa_append::buffer#0 = uctoa::buffer#11 [70] uctoa_append::value#0 = uctoa::value#2 [71] uctoa_append::sub#0 = uctoa::digit_value#0 - [72] call uctoa_append + [72] call uctoa_append [73] uctoa_append::return#0 = uctoa_append::value#2 to:uctoa::@6 uctoa::@6: scope:[uctoa] from uctoa::@5 @@ -2802,7 +2802,7 @@ uctoa::@6: scope:[uctoa] from uctoa::@5 [75] uctoa::buffer#4 = ++ uctoa::buffer#11 to:uctoa::@4 -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 [76] phi() to:printf_number_buffer::@1 @@ -2811,17 +2811,17 @@ printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffe to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@1 [78] cputc::c#2 = printf_number_buffer::buffer_sign#0 - [79] call cputc + [79] call cputc to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@3 [80] phi() - [81] call cputs + [81] call cputs to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@2 [82] return to:@return -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@5 [83] phi() to:uctoa_append::@1 @@ -2841,7 +2841,7 @@ uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 [89] uctoa_append::value#1 = uctoa_append::value#2 - uctoa_append::sub#0 to:uctoa_append::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@3 [90] cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@3/cputc::c#2 ) [91] if(cputc::c#3==' @@ -2855,17 +2855,17 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [96] phi() - [97] call cputln + [97] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [98] return to:@return cputc::@1: scope:[cputc] from cputc [99] phi() - [100] call cputln + [100] call cputln to:cputc::@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from printf_number_buffer::@2 [101] phi() to:cputs::@1 @@ -2880,7 +2880,7 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [107] cputc::c#0 = cputs::c#1 - [108] call cputc + [108] call cputc to:cputs::@1 void cputln() @@ -2889,7 +2889,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [110] conio_line_color = conio_line_color + $28 [111] conio_cursor_x = 0 [112] conio_cursor_y = ++ conio_cursor_y - [113] call cscroll + [113] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [114] return @@ -2901,19 +2901,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [116] phi() - [117] call memcpy + [117] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [118] phi() - [119] call memcpy + [119] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [120] phi() - [121] call memset + [121] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [122] phi() - [123] call memset + [123] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [124] conio_line_text = conio_line_text - $28 @@ -2924,13 +2924,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [127] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [128] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [128] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [129] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [130] memcpy::src#4 = (byte*)memcpy::source#2 - [131] memcpy::dst#4 = (byte*)memcpy::destination#2 + [128] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [128] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [129] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [130] memcpy::src#4 = (char *)memcpy::source#2 + [131] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [132] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -2946,14 +2946,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [137] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [138] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [138] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [138] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [139] memset::end#0 = (byte*)memset::str#3 + $28 - [140] memset::dst#4 = (byte*)memset::str#3 + [139] memset::end#0 = (char *)memset::str#3 + $28 + [140] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [141] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -2972,141 +2972,141 @@ null depth in calling loop Loop head: cputs::@1 tails: cputs::@2 blocks: cputs:: VARIABLE REGISTER WEIGHTS void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 20002.0 -byte clrscr::c#2 12501.25 -byte clrscr::l -byte clrscr::l#1 2002.0 -byte clrscr::l#2 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 1001.0 -byte* clrscr::line_cols#5 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 667.3333333333334 -byte* clrscr::line_text#5 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // 20002.0 +char clrscr::c#2 // 12501.25 +char clrscr::l +char clrscr::l#1 // 2002.0 +char clrscr::l#2 // 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // 1001.0 +char *clrscr::line_cols#5 // 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // 667.3333333333334 +char *clrscr::line_text#5 // 1714.7142857142858 void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 416672.5 -byte conio_cursor_y loadstore 6153850.173076923 -byte* conio_line_color loadstore 4420004.18 -byte* conio_line_text loadstore 4333337.431372548 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 200002.0 -byte cputc::c#2 2002.0 -byte cputc::c#3 1050502.0 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 416672.5 +__loadstore char conio_cursor_y // 6153850.173076923 +__loadstore char *conio_line_color // 4420004.18 +__loadstore char *conio_line_text // 4333337.431372548 +void cputc(char c) +char cputc::c +char cputc::c#0 // 200002.0 +char cputc::c#2 // 2002.0 +char cputc::c#3 // 1050502.0 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 100001.0 -const byte* cputs::s -const byte* cputs::s#0 50000.5 -const byte* cputs::s#2 150001.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 100001.0 +const char *cputs::s +const char *cputs::s#0 // 50000.5 +const char *cputs::s#2 // 150001.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.00000000001E11 -byte* memcpy::dst#2 1.0033333333466667E11 -byte* memcpy::dst#4 2.000000002E9 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.00000000002E11 -byte* memcpy::src#2 1.0025000000125E11 -byte* memcpy::src#4 1.000000001E9 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.262500000025E10 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.4285714285857143E10 -byte* memset::dst -byte* memset::dst#1 2.00000000002E11 -byte* memset::dst#2 1.3366666666833334E11 -byte* memset::dst#4 2.000000002E9 -byte* memset::end -byte* memset::end#0 1.6833333333666668E10 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 -struct printf_buffer_number printf_buffer loadstore = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.00000000001E11 +char *memcpy::dst#2 // 1.0033333333466667E11 +char *memcpy::dst#4 // 2.000000002E9 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.00000000002E11 +char *memcpy::src#2 // 1.0025000000125E11 +char *memcpy::src#4 // 1.000000001E9 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.262500000025E10 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.4285714285857143E10 +char *memset::dst +char *memset::dst#1 // 2.00000000002E11 +char *memset::dst#2 // 1.3366666666833334E11 +char *memset::dst#4 // 2.000000002E9 +char *memset::end +char *memset::end#0 // 1.6833333333666668E10 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 +__loadstore struct printf_buffer_number printf_buffer = {} +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 701.0 +char *printf_number_buffer::buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // 701.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_min_length -byte printf_uchar::format_radix -byte printf_uchar::format_sign_always -byte printf_uchar::format_upper_case -byte printf_uchar::format_zero_padding -byte printf_uchar::uvalue -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -byte* uctoa::buffer -byte* uctoa::buffer#11 3500.4999999999995 -byte* uctoa::buffer#14 15001.5 -byte* uctoa::buffer#3 2002.0 -byte* uctoa::buffer#4 20002.0 -byte uctoa::digit -byte uctoa::digit#1 20002.0 -byte uctoa::digit#2 3077.230769230769 -byte uctoa::digit_value -byte uctoa::digit_value#0 6000.6 -byte* uctoa::digit_values -byte uctoa::max_digits -byte uctoa::radix -byte uctoa::started -byte uctoa::started#2 6000.6 -byte uctoa::started#4 10001.0 -byte uctoa::value -byte uctoa::value#0 10001.0 -byte uctoa::value#2 6834.166666666666 -byte uctoa::value#6 15001.5 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 13750.25 -byte uctoa_append::digit -byte uctoa_append::digit#1 1.0000001E7 -byte uctoa_append::digit#2 1.00500015E7 -byte uctoa_append::return -byte uctoa_append::return#0 20002.0 -byte uctoa_append::sub -byte uctoa_append::sub#0 3335000.5 -byte uctoa_append::value -byte uctoa_append::value#0 36667.33333333333 -byte uctoa_append::value#1 2.0000002E7 -byte uctoa_append::value#2 5018334.166666666 +char printf_uchar::format_justify_left +char printf_uchar::format_min_length +char printf_uchar::format_radix +char printf_uchar::format_sign_always +char printf_uchar::format_upper_case +char printf_uchar::format_zero_padding +char printf_uchar::uvalue +void uctoa(char value , char *buffer , char radix) +char *uctoa::buffer +char *uctoa::buffer#11 // 3500.4999999999995 +char *uctoa::buffer#14 // 15001.5 +char *uctoa::buffer#3 // 2002.0 +char *uctoa::buffer#4 // 20002.0 +char uctoa::digit +char uctoa::digit#1 // 20002.0 +char uctoa::digit#2 // 3077.230769230769 +char uctoa::digit_value +char uctoa::digit_value#0 // 6000.6 +char *uctoa::digit_values +char uctoa::max_digits +char uctoa::radix +char uctoa::started +char uctoa::started#2 // 6000.6 +char uctoa::started#4 // 10001.0 +char uctoa::value +char uctoa::value#0 // 10001.0 +char uctoa::value#2 // 6834.166666666666 +char uctoa::value#6 // 15001.5 +char uctoa_append(char *buffer , char value , char sub) +char *uctoa_append::buffer +char *uctoa_append::buffer#0 // 13750.25 +char uctoa_append::digit +char uctoa_append::digit#1 // 1.0000001E7 +char uctoa_append::digit#2 // 1.00500015E7 +char uctoa_append::return +char uctoa_append::return#0 // 20002.0 +char uctoa_append::sub +char uctoa_append::sub#0 // 3335000.5 +char uctoa_append::value +char uctoa_append::value#0 // 36667.33333333333 +char uctoa_append::value#1 // 2.0000002E7 +char uctoa_append::value#2 // 5018334.166666666 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -3240,7 +3240,7 @@ Statement [3] conio_line_text = DEFAULT_SCREEN [ printf_buffer ] ( [ printf_buf Statement [4] conio_line_color = COLORRAM [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a Statement [24] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [26] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [26] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [27] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [28] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [29] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -3258,7 +3258,7 @@ Statement [46] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 [ clrscr::l#2 clr Statement [48] clrscr::line_text#5[clrscr::c#2] = ' ' [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:7::clrscr:17 [ printf_buffer clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ clrscr::c#2 clrscr::c#1 ] Statement [49] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:7::clrscr:17 [ printf_buffer clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a -Statement [52] *((byte*)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] ( main:7::printf_uchar:19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { } ) always clobbers reg byte a +Statement [52] *((char *)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] ( main:7::printf_uchar:19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { } ) always clobbers reg byte a Statement [60] *uctoa::buffer#11 = DIGITS[uctoa::value#2] [ printf_buffer uctoa::buffer#11 ] ( main:7::printf_uchar:19::uctoa:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y Statement [61] uctoa::buffer#3 = ++ uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:7::printf_uchar:19::uctoa:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#3 ] { } ) always clobbers reg byte a Statement [62] *uctoa::buffer#3 = 0 [ printf_buffer ] ( main:7::printf_uchar:19::uctoa:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { } ) always clobbers reg byte a reg byte y @@ -3283,14 +3283,14 @@ Statement [111] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_te Statement [115] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [124] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [125] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [129] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [130] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [131] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [129] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [130] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [131] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [133] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [135] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [139] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [139] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:30 [ memset::c#4 ] -Statement [140] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [140] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [142] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [144] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:30 [ memset::c#4 ] @@ -3299,7 +3299,7 @@ Statement [2] conio_cursor_y = 0 [ printf_buffer ] ( [ printf_buffer ] { } ) a Statement [3] conio_line_text = DEFAULT_SCREEN [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a Statement [24] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a -Statement [26] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [26] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [27] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [28] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [29] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ printf_buffer gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -3315,7 +3315,7 @@ Statement [45] clrscr::line_text#1 = clrscr::line_text#5 + $28 [ clrscr::l#2 clr Statement [46] clrscr::line_cols#1 = clrscr::line_cols#5 + $28 [ clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] ( main:7::clrscr:17 [ printf_buffer clrscr::l#2 clrscr::line_text#1 clrscr::line_cols#1 ] { } ) always clobbers reg byte a Statement [48] clrscr::line_text#5[clrscr::c#2] = ' ' [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:7::clrscr:17 [ printf_buffer clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a Statement [49] clrscr::line_cols#5[clrscr::c#2] = LIGHT_BLUE [ clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] ( main:7::clrscr:17 [ printf_buffer clrscr::l#2 clrscr::line_text#5 clrscr::line_cols#5 clrscr::c#2 ] { } ) always clobbers reg byte a -Statement [52] *((byte*)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] ( main:7::printf_uchar:19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { } ) always clobbers reg byte a +Statement [52] *((char *)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] ( main:7::printf_uchar:19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { } ) always clobbers reg byte a Statement [60] *uctoa::buffer#11 = DIGITS[uctoa::value#2] [ printf_buffer uctoa::buffer#11 ] ( main:7::printf_uchar:19::uctoa:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y Statement [61] uctoa::buffer#3 = ++ uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:7::printf_uchar:19::uctoa:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer uctoa::buffer#3 ] { } ) always clobbers reg byte a Statement [62] *uctoa::buffer#3 = 0 [ printf_buffer ] ( main:7::printf_uchar:19::uctoa:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer ] { } ) always clobbers reg byte a reg byte y @@ -3332,13 +3332,13 @@ Statement [111] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_te Statement [115] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [124] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [125] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [129] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [130] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [131] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [129] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [130] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [131] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [133] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [135] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:117 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:117 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memcpy:119 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memcpy:119 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [139] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a -Statement [140] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [139] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a +Statement [140] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [142] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a Statement [144] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:121 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:121 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:97::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:97::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:7::printf_uchar:19::printf_number_buffer:55::cputc:79::cputln:100::cscroll:113::memset:123 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:7::printf_uchar:19::printf_number_buffer:55::cputs:81::cputc:108::cputln:100::cscroll:113::memset:123 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#3 cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -3524,14 +3524,14 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -3568,7 +3568,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -3579,7 +3579,7 @@ conio_c64_init: { // main main: { .label c = 7 - // [17] call clrscr + // [17] call clrscr // [35] phi from main to clrscr [phi:main->clrscr] clrscr_from_main: jsr clrscr @@ -3588,7 +3588,7 @@ main: { jmp __b1 // main::@1 __b1: - // [19] call printf_uchar + // [19] call printf_uchar // [51] phi from main::@1 to printf_uchar [phi:main::@1->printf_uchar] printf_uchar_from___b1: jsr printf_uchar @@ -3600,7 +3600,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -3636,7 +3636,7 @@ gotoxy: { sta.z conio_cursor_x // [25] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [26] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [26] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -3800,15 +3800,16 @@ clrscr: { } // printf_uchar // Print an unsigned char using a specific format +// void printf_uchar(char uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uchar: { jmp __b1 // printf_uchar::@1 __b1: - // [52] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [52] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [53] call uctoa + // [53] call uctoa // Format number into buffer // [57] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] uctoa_from___b1: @@ -3816,9 +3817,9 @@ printf_uchar: { jmp __b2 // printf_uchar::@2 __b2: - // [54] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [54] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [55] call printf_number_buffer + // [55] call printf_number_buffer // Print using format // [76] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] printf_number_buffer_from___b2: @@ -3835,7 +3836,7 @@ printf_uchar: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp(6) buffer) +// void uctoa(__register(X) char value, __zp(6) char *buffer, char radix) uctoa: { .const max_digits = 3 .label digit_value = $14 @@ -3844,7 +3845,7 @@ uctoa: { .label started = 3 // [58] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] __b1_from_uctoa: - // [58] phi uctoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [58] phi uctoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -3922,7 +3923,7 @@ uctoa: { // [69] uctoa_append::buffer#0 = uctoa::buffer#11 // [70] uctoa_append::value#0 = uctoa::value#2 // [71] uctoa_append::sub#0 = uctoa::digit_value#0 - // [72] call uctoa_append + // [72] call uctoa_append // [83] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] uctoa_append_from___b5: jsr uctoa_append @@ -3948,7 +3949,7 @@ uctoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS jmp __b1 @@ -3961,7 +3962,7 @@ printf_number_buffer: { // printf_number_buffer::@3 __b3: // [78] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [79] call cputc + // [79] call cputc // [90] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] cputc_from___b3: // [90] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy @@ -3972,7 +3973,7 @@ printf_number_buffer: { jmp __b2 // printf_number_buffer::@2 __b2: - // [81] call cputs + // [81] call cputs // [101] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] cputs_from___b2: jsr cputs @@ -3991,7 +3992,7 @@ printf_number_buffer: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp(6) buffer, byte register(X) value, byte zp($14) sub) +// __register(X) char uctoa_append(__zp(6) char *buffer, __register(X) char value, __zp($14) char sub) uctoa_append: { .label buffer = 6 .label sub = $14 @@ -4036,7 +4037,7 @@ uctoa_append: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [91] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -4062,7 +4063,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [97] call cputln + // [97] call cputln jsr cputln jmp __breturn // cputc::@return @@ -4074,13 +4075,13 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [100] call cputln + // [100] call cputln jsr cputln jmp __breturn } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(4) s) +// void cputs(__zp(4) const char *s) cputs: { .label s = 4 // [102] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -4112,7 +4113,7 @@ cputs: { // cputs::@2 __b2: // [107] cputc::c#0 = cputs::c#1 - // [108] call cputc + // [108] call cputc // [90] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] cputc_from___b2: // [90] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy @@ -4146,7 +4147,7 @@ cputln: { sta.z conio_cursor_x // [112] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [113] call cscroll + // [113] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -4166,15 +4167,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [117] call memcpy + // [117] call memcpy // [128] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [128] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [128] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [128] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [128] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -4185,15 +4186,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [119] call memcpy + // [119] call memcpy // [128] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [128] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [128] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [128] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [128] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -4204,12 +4205,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [121] call memset + // [121] call memset // [138] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [138] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [138] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [138] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -4220,12 +4221,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [123] call memset + // [123] call memset // [138] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [138] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [138] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [138] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -4261,14 +4262,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($17) destination, void* zp(6) source) +// void * memcpy(__zp($17) void *destination, __zp(6) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = $17 .label src = 6 .label source = 6 .label destination = $17 - // [129] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [129] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -4276,8 +4277,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [130] memcpy::src#4 = (byte*)memcpy::source#2 - // [131] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [130] memcpy::src#4 = (char *)memcpy::source#2 + // [131] memcpy::dst#4 = (char *)memcpy::destination#2 // [132] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -4319,7 +4320,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 6 @@ -4327,7 +4328,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [139] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [139] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -4335,7 +4336,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [140] memset::dst#4 = (byte*)memset::str#3 + // [140] memset::dst#4 = (char *)memset::str#3 // [141] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -4536,159 +4537,159 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:4 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:4 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:6 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:6 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:4 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:4 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:6 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:6 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:8 416672.5 -byte conio_cursor_y loadstore zp[1]:9 6153850.173076923 -byte* conio_line_color loadstore zp[2]:12 4420004.18 -byte* conio_line_text loadstore zp[2]:10 4333337.431372548 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 200002.0 -byte cputc::c#2 reg byte a 2002.0 -byte cputc::c#3 reg byte a 1050502.0 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:8 416672.5 +__loadstore char conio_cursor_y // zp[1]:9 6153850.173076923 +__loadstore char *conio_line_color // zp[2]:12 4420004.18 +__loadstore char *conio_line_text // zp[2]:10 4333337.431372548 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 200002.0 +char cputc::c#2 // reg byte a 2002.0 +char cputc::c#3 // reg byte a 1050502.0 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 100001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:4 50000.5 -const byte* cputs::s#2 s zp[2]:4 150001.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 100001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:4 50000.5 +const char *cputs::s#2 // s zp[2]:4 150001.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 202.0 -byte*~ gotoxy::$6 zp[2]:14 202.0 -word~ gotoxy::$7 zp[2]:14 151.5 -word~ gotoxy::$8 zp[2]:16 202.0 -word~ gotoxy::$9 zp[2]:14 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 202.0 +char *gotoxy::$6 // zp[2]:14 202.0 +unsigned int gotoxy::$7 // zp[2]:14 151.5 +unsigned int gotoxy::$8 // zp[2]:16 202.0 +unsigned int gotoxy::$9 // zp[2]:14 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte main::c = 7 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:23 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:23 1.00000000001E11 -byte* memcpy::dst#2 dst zp[2]:23 1.0033333333466667E11 -byte* memcpy::dst#4 dst zp[2]:23 2.000000002E9 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:6 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:6 2.00000000002E11 -byte* memcpy::src#2 src zp[2]:6 1.0025000000125E11 -byte* memcpy::src#4 src zp[2]:6 1.000000001E9 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:21 1.262500000025E10 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714285857143E10 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2.00000000002E11 -byte* memset::dst#2 dst zp[2]:6 1.3366666666833334E11 -byte* memset::dst#4 dst zp[2]:6 2.000000002E9 -byte* memset::end -byte* memset::end#0 end zp[2]:23 1.6833333333666668E10 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +__constant char main::c = 7 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:23 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:23 1.00000000001E11 +char *memcpy::dst#2 // dst zp[2]:23 1.0033333333466667E11 +char *memcpy::dst#4 // dst zp[2]:23 2.000000002E9 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:6 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:6 2.00000000002E11 +char *memcpy::src#2 // src zp[2]:6 1.0025000000125E11 +char *memcpy::src#4 // src zp[2]:6 1.000000001E9 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:21 1.262500000025E10 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714285857143E10 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2.00000000002E11 +char *memset::dst#2 // dst zp[2]:6 1.3366666666833334E11 +char *memset::dst#4 // dst zp[2]:6 2.000000002E9 +char *memset::end +char *memset::end#0 // end zp[2]:23 1.6833333333666668E10 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 701.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 701.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_min_length -byte printf_uchar::format_radix -byte printf_uchar::format_sign_always -byte printf_uchar::format_upper_case -byte printf_uchar::format_zero_padding -byte printf_uchar::uvalue -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -byte* uctoa::buffer -byte* uctoa::buffer#11 buffer zp[2]:6 3500.4999999999995 -byte* uctoa::buffer#14 buffer zp[2]:6 15001.5 -byte* uctoa::buffer#3 buffer zp[2]:6 2002.0 -byte* uctoa::buffer#4 buffer zp[2]:6 20002.0 -byte uctoa::digit -byte uctoa::digit#1 digit zp[1]:2 20002.0 -byte uctoa::digit#2 digit zp[1]:2 3077.230769230769 -byte uctoa::digit_value -byte uctoa::digit_value#0 digit_value zp[1]:20 6000.6 -byte* uctoa::digit_values -byte uctoa::max_digits -constant byte uctoa::max_digits#1 max_digits = 3 -byte uctoa::radix -byte uctoa::started -byte uctoa::started#2 started zp[1]:3 6000.6 -byte uctoa::started#4 started zp[1]:3 10001.0 -byte uctoa::value -byte uctoa::value#0 reg byte x 10001.0 -byte uctoa::value#2 reg byte x 6834.166666666666 -byte uctoa::value#6 reg byte x 15001.5 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 buffer zp[2]:6 13750.25 -byte uctoa_append::digit -byte uctoa_append::digit#1 reg byte y 1.0000001E7 -byte uctoa_append::digit#2 reg byte y 1.00500015E7 -byte uctoa_append::return -byte uctoa_append::return#0 reg byte x 20002.0 -byte uctoa_append::sub -byte uctoa_append::sub#0 sub zp[1]:20 3335000.5 -byte uctoa_append::value -byte uctoa_append::value#0 reg byte x 36667.33333333333 -byte uctoa_append::value#1 reg byte x 2.0000002E7 -byte uctoa_append::value#2 reg byte x 5018334.166666666 +char printf_uchar::format_justify_left +char printf_uchar::format_min_length +char printf_uchar::format_radix +char printf_uchar::format_sign_always +char printf_uchar::format_upper_case +char printf_uchar::format_zero_padding +char printf_uchar::uvalue +void uctoa(char value , char *buffer , char radix) +char *uctoa::buffer +char *uctoa::buffer#11 // buffer zp[2]:6 3500.4999999999995 +char *uctoa::buffer#14 // buffer zp[2]:6 15001.5 +char *uctoa::buffer#3 // buffer zp[2]:6 2002.0 +char *uctoa::buffer#4 // buffer zp[2]:6 20002.0 +char uctoa::digit +char uctoa::digit#1 // digit zp[1]:2 20002.0 +char uctoa::digit#2 // digit zp[1]:2 3077.230769230769 +char uctoa::digit_value +char uctoa::digit_value#0 // digit_value zp[1]:20 6000.6 +char *uctoa::digit_values +char uctoa::max_digits +__constant char uctoa::max_digits#1 = 3 // max_digits +char uctoa::radix +char uctoa::started +char uctoa::started#2 // started zp[1]:3 6000.6 +char uctoa::started#4 // started zp[1]:3 10001.0 +char uctoa::value +char uctoa::value#0 // reg byte x 10001.0 +char uctoa::value#2 // reg byte x 6834.166666666666 +char uctoa::value#6 // reg byte x 15001.5 +char uctoa_append(char *buffer , char value , char sub) +char *uctoa_append::buffer +char *uctoa_append::buffer#0 // buffer zp[2]:6 13750.25 +char uctoa_append::digit +char uctoa_append::digit#1 // reg byte y 1.0000001E7 +char uctoa_append::digit#2 // reg byte y 1.00500015E7 +char uctoa_append::return +char uctoa_append::return#0 // reg byte x 20002.0 +char uctoa_append::sub +char uctoa_append::sub#0 // sub zp[1]:20 3335000.5 +char uctoa_append::value +char uctoa_append::value#0 // reg byte x 36667.33333333333 +char uctoa_append::value#1 // reg byte x 2.0000002E7 +char uctoa_append::value#2 // reg byte x 5018334.166666666 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] @@ -4775,11 +4776,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -4809,7 +4810,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -4820,13 +4821,13 @@ conio_c64_init: { main: { .label c = 7 // clrscr() - // [17] call clrscr + // [17] call clrscr // [35] phi from main to clrscr [phi:main->clrscr] jsr clrscr // [18] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf("%u", c) - // [19] call printf_uchar + // [19] call printf_uchar // [51] phi from main::@1 to printf_uchar [phi:main::@1->printf_uchar] jsr printf_uchar // main::@return @@ -4836,7 +4837,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -4867,7 +4868,7 @@ gotoxy: { // [25] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [26] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [26] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -5035,23 +5036,24 @@ clrscr: { } // printf_uchar // Print an unsigned char using a specific format +// void printf_uchar(char uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uchar: { // printf_uchar::@1 // printf_buffer.sign = format.sign_always?'+':0 - // [52] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [52] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // uctoa(uvalue, printf_buffer.digits, format.radix) - // [53] call uctoa + // [53] call uctoa // Format number into buffer // [57] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] jsr uctoa // printf_uchar::@2 // printf_number_buffer(printf_buffer, format) - // [54] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [54] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [55] call printf_number_buffer + // [55] call printf_number_buffer // Print using format // [76] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] jsr printf_number_buffer @@ -5066,7 +5068,7 @@ printf_uchar: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp(6) buffer) +// void uctoa(__register(X) char value, __zp(6) char *buffer, char radix) uctoa: { .const max_digits = 3 .label digit_value = $14 @@ -5074,7 +5076,7 @@ uctoa: { .label digit = 2 .label started = 3 // [58] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - // [58] phi uctoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [58] phi uctoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -5150,7 +5152,7 @@ uctoa: { // [69] uctoa_append::buffer#0 = uctoa::buffer#11 // [70] uctoa_append::value#0 = uctoa::value#2 // [71] uctoa_append::sub#0 = uctoa::digit_value#0 - // [72] call uctoa_append + // [72] call uctoa_append // [83] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] jsr uctoa_append // uctoa_append(buffer++, value, digit_value) @@ -5175,7 +5177,7 @@ uctoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // printf_number_buffer::@1 @@ -5186,7 +5188,7 @@ printf_number_buffer: { // printf_number_buffer::@3 // cputc(buffer.sign) // [78] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [79] call cputc + // [79] call cputc // [90] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] // [90] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy jsr cputc @@ -5194,7 +5196,7 @@ printf_number_buffer: { // printf_number_buffer::@2 __b2: // cputs(buffer.digits) - // [81] call cputs + // [81] call cputs // [101] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] jsr cputs // printf_number_buffer::@return @@ -5211,7 +5213,7 @@ printf_number_buffer: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp(6) buffer, byte register(X) value, byte zp($14) sub) +// __register(X) char uctoa_append(__zp(6) char *buffer, __register(X) char value, __zp($14) char sub) uctoa_append: { .label buffer = 6 .label sub = $14 @@ -5254,7 +5256,7 @@ uctoa_append: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [91] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -5279,7 +5281,7 @@ cputc: { // [96] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [97] call cputln + // [97] call cputln jsr cputln // cputc::@return __breturn: @@ -5290,13 +5292,13 @@ cputc: { // cputc::@1 __b1: // cputln() - // [100] call cputln + // [100] call cputln jsr cputln rts } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(4) s) +// void cputs(__zp(4) const char *s) cputs: { .label s = 4 // [102] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -5327,7 +5329,7 @@ cputs: { __b2: // cputc(c) // [107] cputc::c#0 = cputs::c#1 - // [108] call cputc + // [108] call cputc // [90] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] // [90] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy jsr cputc @@ -5364,7 +5366,7 @@ cputln: { // [112] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [113] call cscroll + // [113] call cscroll jsr cscroll // cputln::@return // } @@ -5382,14 +5384,14 @@ cscroll: { // [116] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [117] call memcpy + // [117] call memcpy // [128] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [128] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [128] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [128] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [128] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -5398,14 +5400,14 @@ cscroll: { // [118] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [119] call memcpy + // [119] call memcpy // [128] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [128] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [128] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [128] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [128] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -5414,11 +5416,11 @@ cscroll: { // [120] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [121] call memset + // [121] call memset // [138] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [138] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [138] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [138] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -5427,11 +5429,11 @@ cscroll: { // [122] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [123] call memset + // [123] call memset // [138] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [138] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [138] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [138] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -5468,7 +5470,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($17) destination, void* zp(6) source) +// void * memcpy(__zp($17) void *destination, __zp(6) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = $17 @@ -5476,7 +5478,7 @@ memcpy: { .label source = 6 .label destination = $17 // char* src_end = (char*)source+num - // [129] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [129] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -5484,8 +5486,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [130] memcpy::src#4 = (byte*)memcpy::source#2 - // [131] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [130] memcpy::src#4 = (char *)memcpy::source#2 + // [131] memcpy::dst#4 = (char *)memcpy::destination#2 // [132] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [132] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [132] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -5525,14 +5527,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 6 .label str = 6 // memset::@1 // char* end = (char*)str + num - // [139] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [139] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -5540,7 +5542,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [140] memset::dst#4 = (byte*)memset::str#3 + // [140] memset::dst#4 = (char *)memset::str#3 // [141] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [141] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/printf-14.sym b/src/test/ref/printf-14.sym index 074bc89c7..f60833955 100644 --- a/src/test/ref/printf-14.sym +++ b/src/test/ref/printf-14.sym @@ -1,156 +1,156 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:4 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:4 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:6 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:6 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:4 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:4 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:6 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:6 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:8 416672.5 -byte conio_cursor_y loadstore zp[1]:9 6153850.173076923 -byte* conio_line_color loadstore zp[2]:12 4420004.18 -byte* conio_line_text loadstore zp[2]:10 4333337.431372548 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 200002.0 -byte cputc::c#2 reg byte a 2002.0 -byte cputc::c#3 reg byte a 1050502.0 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:8 416672.5 +__loadstore char conio_cursor_y // zp[1]:9 6153850.173076923 +__loadstore char *conio_line_color // zp[2]:12 4420004.18 +__loadstore char *conio_line_text // zp[2]:10 4333337.431372548 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 200002.0 +char cputc::c#2 // reg byte a 2002.0 +char cputc::c#3 // reg byte a 1050502.0 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 100001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:4 50000.5 -const byte* cputs::s#2 s zp[2]:4 150001.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 100001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:4 50000.5 +const char *cputs::s#2 // s zp[2]:4 150001.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 202.0 -byte*~ gotoxy::$6 zp[2]:14 202.0 -word~ gotoxy::$7 zp[2]:14 151.5 -word~ gotoxy::$8 zp[2]:16 202.0 -word~ gotoxy::$9 zp[2]:14 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 202.0 +char *gotoxy::$6 // zp[2]:14 202.0 +unsigned int gotoxy::$7 // zp[2]:14 151.5 +unsigned int gotoxy::$8 // zp[2]:16 202.0 +unsigned int gotoxy::$9 // zp[2]:14 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte main::c = 7 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:23 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:23 1.00000000001E11 -byte* memcpy::dst#2 dst zp[2]:23 1.0033333333466667E11 -byte* memcpy::dst#4 dst zp[2]:23 2.000000002E9 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:6 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:6 2.00000000002E11 -byte* memcpy::src#2 src zp[2]:6 1.0025000000125E11 -byte* memcpy::src#4 src zp[2]:6 1.000000001E9 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:21 1.262500000025E10 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714285857143E10 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2.00000000002E11 -byte* memset::dst#2 dst zp[2]:6 1.3366666666833334E11 -byte* memset::dst#4 dst zp[2]:6 2.000000002E9 -byte* memset::end -byte* memset::end#0 end zp[2]:23 1.6833333333666668E10 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +__constant char main::c = 7 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:23 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:23 1.00000000001E11 +char *memcpy::dst#2 // dst zp[2]:23 1.0033333333466667E11 +char *memcpy::dst#4 // dst zp[2]:23 2.000000002E9 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:6 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:6 2.00000000002E11 +char *memcpy::src#2 // src zp[2]:6 1.0025000000125E11 +char *memcpy::src#4 // src zp[2]:6 1.000000001E9 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:21 1.262500000025E10 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714285857143E10 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2.00000000002E11 +char *memset::dst#2 // dst zp[2]:6 1.3366666666833334E11 +char *memset::dst#4 // dst zp[2]:6 2.000000002E9 +char *memset::end +char *memset::end#0 // end zp[2]:23 1.6833333333666668E10 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 701.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 701.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_min_length -byte printf_uchar::format_radix -byte printf_uchar::format_sign_always -byte printf_uchar::format_upper_case -byte printf_uchar::format_zero_padding -byte printf_uchar::uvalue -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -byte* uctoa::buffer -byte* uctoa::buffer#11 buffer zp[2]:6 3500.4999999999995 -byte* uctoa::buffer#14 buffer zp[2]:6 15001.5 -byte* uctoa::buffer#3 buffer zp[2]:6 2002.0 -byte* uctoa::buffer#4 buffer zp[2]:6 20002.0 -byte uctoa::digit -byte uctoa::digit#1 digit zp[1]:2 20002.0 -byte uctoa::digit#2 digit zp[1]:2 3077.230769230769 -byte uctoa::digit_value -byte uctoa::digit_value#0 digit_value zp[1]:20 6000.6 -byte* uctoa::digit_values -byte uctoa::max_digits -constant byte uctoa::max_digits#1 max_digits = 3 -byte uctoa::radix -byte uctoa::started -byte uctoa::started#2 started zp[1]:3 6000.6 -byte uctoa::started#4 started zp[1]:3 10001.0 -byte uctoa::value -byte uctoa::value#0 reg byte x 10001.0 -byte uctoa::value#2 reg byte x 6834.166666666666 -byte uctoa::value#6 reg byte x 15001.5 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 buffer zp[2]:6 13750.25 -byte uctoa_append::digit -byte uctoa_append::digit#1 reg byte y 1.0000001E7 -byte uctoa_append::digit#2 reg byte y 1.00500015E7 -byte uctoa_append::return -byte uctoa_append::return#0 reg byte x 20002.0 -byte uctoa_append::sub -byte uctoa_append::sub#0 sub zp[1]:20 3335000.5 -byte uctoa_append::value -byte uctoa_append::value#0 reg byte x 36667.33333333333 -byte uctoa_append::value#1 reg byte x 2.0000002E7 -byte uctoa_append::value#2 reg byte x 5018334.166666666 +char printf_uchar::format_justify_left +char printf_uchar::format_min_length +char printf_uchar::format_radix +char printf_uchar::format_sign_always +char printf_uchar::format_upper_case +char printf_uchar::format_zero_padding +char printf_uchar::uvalue +void uctoa(char value , char *buffer , char radix) +char *uctoa::buffer +char *uctoa::buffer#11 // buffer zp[2]:6 3500.4999999999995 +char *uctoa::buffer#14 // buffer zp[2]:6 15001.5 +char *uctoa::buffer#3 // buffer zp[2]:6 2002.0 +char *uctoa::buffer#4 // buffer zp[2]:6 20002.0 +char uctoa::digit +char uctoa::digit#1 // digit zp[1]:2 20002.0 +char uctoa::digit#2 // digit zp[1]:2 3077.230769230769 +char uctoa::digit_value +char uctoa::digit_value#0 // digit_value zp[1]:20 6000.6 +char *uctoa::digit_values +char uctoa::max_digits +__constant char uctoa::max_digits#1 = 3 // max_digits +char uctoa::radix +char uctoa::started +char uctoa::started#2 // started zp[1]:3 6000.6 +char uctoa::started#4 // started zp[1]:3 10001.0 +char uctoa::value +char uctoa::value#0 // reg byte x 10001.0 +char uctoa::value#2 // reg byte x 6834.166666666666 +char uctoa::value#6 // reg byte x 15001.5 +char uctoa_append(char *buffer , char value , char sub) +char *uctoa_append::buffer +char *uctoa_append::buffer#0 // buffer zp[2]:6 13750.25 +char uctoa_append::digit +char uctoa_append::digit#1 // reg byte y 1.0000001E7 +char uctoa_append::digit#2 // reg byte y 1.00500015E7 +char uctoa_append::return +char uctoa_append::return#0 // reg byte x 20002.0 +char uctoa_append::sub +char uctoa_append::sub#0 // sub zp[1]:20 3335000.5 +char uctoa_append::value +char uctoa_append::value#0 // reg byte x 36667.33333333333 +char uctoa_append::value#1 // reg byte x 2.0000002E7 +char uctoa_append::value#2 // reg byte x 5018334.166666666 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] diff --git a/src/test/ref/printf-15.asm b/src/test/ref/printf-15.asm index 98e6f600a..1c75fc9cb 100644 --- a/src/test/ref/printf-15.asm +++ b/src/test/ref/printf-15.asm @@ -85,7 +85,7 @@ main: { } .segment Code // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -230,7 +230,7 @@ clrscr: { jmp __b3 } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 __b1: @@ -252,7 +252,7 @@ cputs: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -370,7 +370,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(6) destination, void* zp(4) source) +// void * memcpy(__zp(6) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $14 .label dst = 6 @@ -412,7 +412,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 6 diff --git a/src/test/ref/printf-15.cfg b/src/test/ref/printf-15.cfg index d3ff04254..123bc16b7 100644 --- a/src/test/ref/printf-15.cfg +++ b/src/test/ref/printf-15.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -29,7 +29,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -38,21 +38,21 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main [18] phi() - [19] call cputs + [19] call cputs to:main::@2 main::@2: scope:[main] from main::@1 [20] phi() - [21] call cputs + [21] call cputs to:main::@return main::@return: scope:[main] from main::@2 [22] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [23] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -65,7 +65,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [26] conio_cursor_x = gotoxy::x#2 [27] conio_cursor_y = gotoxy::y#4 - [28] gotoxy::$7 = (word)gotoxy::y#4 + [28] gotoxy::$7 = (unsigned int)gotoxy::y#4 [29] gotoxy::$8 = gotoxy::$7 << 2 [30] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [31] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -112,7 +112,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [52] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@1 main::@2 [53] cputs::s#4 = phi( main::@1/main::s, main::@2/main::s1 ) to:cputs::@1 @@ -127,10 +127,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [59] cputc::c#0 = cputs::c#1 - [60] call cputc + [60] call cputc to:cputs::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [61] if(cputc::c#0==' ') goto cputc::@1 @@ -143,14 +143,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [66] phi() - [67] call cputln + [67] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [68] return to:@return cputc::@1: scope:[cputc] from cputc [69] phi() - [70] call cputln + [70] call cputln to:cputc::@return void cputln() @@ -159,7 +159,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [72] conio_line_color = conio_line_color + $28 [73] conio_cursor_x = 0 [74] conio_cursor_y = ++ conio_cursor_y - [75] call cscroll + [75] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [76] return @@ -171,19 +171,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [78] phi() - [79] call memcpy + [79] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [80] phi() - [81] call memcpy + [81] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [82] phi() - [83] call memset + [83] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [84] phi() - [85] call memset + [85] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [86] conio_line_text = conio_line_text - $28 @@ -194,13 +194,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [89] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [90] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [90] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [91] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [92] memcpy::src#4 = (byte*)memcpy::source#2 - [93] memcpy::dst#4 = (byte*)memcpy::destination#2 + [90] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [90] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [91] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [92] memcpy::src#4 = (char *)memcpy::source#2 + [93] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [94] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -216,14 +216,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [99] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [100] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [100] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [100] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [101] memset::end#0 = (byte*)memset::str#3 + $28 - [102] memset::dst#4 = (byte*)memset::str#3 + [101] memset::end#0 = (char *)memset::str#3 + $28 + [102] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [103] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/printf-15.log b/src/test/ref/printf-15.log index 4ca98fbeb..0b73f5ff4 100644 --- a/src/test/ref/printf-15.log +++ b/src/test/ref/printf-15.log @@ -4,7 +4,7 @@ Fixing struct type size struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 @@ -14,14 +14,14 @@ Eliminating unused variable with no statement main::$2 CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -51,7 +51,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -68,9 +68,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -148,7 +148,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -172,7 +172,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -187,7 +187,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 cputc::c#1 = phi( cputs::@2/cputc::c#0 ) cputc::$0 = cputc::c#1 == ' @@ -195,7 +195,7 @@ cputc: scope:[cputc] from cputs::@2 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -209,7 +209,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -223,7 +223,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -231,7 +231,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@1 main::@2 cputs::s#4 = phi( main::@1/cputs::s#1, main::@2/cputs::s#2 ) cputs::c#0 = 0 @@ -248,7 +248,7 @@ cputs::@2: scope:[cputs] from cputs::@1 cputs::s#6 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 - call cputc + call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#5 = phi( cputs::@2/cputs::s#6 ) @@ -268,31 +268,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -303,7 +303,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -322,7 +322,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -335,15 +335,15 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 void main() main: scope:[main] from __start::@1 - call clrscr + call clrscr to:main::@1 main::@1: scope:[main] from main cputs::s#1 = main::s - call cputs + call cputs to:main::@2 main::@2: scope:[main] from main::@1 cputs::s#2 = main::s1 - call cputs + call cputs to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -361,12 +361,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -375,200 +375,200 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void clrscr() -bool~ clrscr::$0 -bool~ clrscr::$1 -byte clrscr::c -byte clrscr::c#0 -byte clrscr::c#1 -byte clrscr::c#2 -byte clrscr::c#3 -byte clrscr::l -byte clrscr::l#0 -byte clrscr::l#1 -byte clrscr::l#2 -byte clrscr::l#3 -byte clrscr::l#4 -byte clrscr::l#5 -byte clrscr::l#6 -byte* clrscr::line_cols -byte* clrscr::line_cols#0 -byte* clrscr::line_cols#1 -byte* clrscr::line_cols#2 -byte* clrscr::line_cols#3 -byte* clrscr::line_cols#4 -byte* clrscr::line_cols#5 -byte* clrscr::line_cols#6 -byte* clrscr::line_text -byte* clrscr::line_text#0 -byte* clrscr::line_text#1 -byte* clrscr::line_text#2 -byte* clrscr::line_text#3 -byte* clrscr::line_text#4 -byte* clrscr::line_text#5 -byte* clrscr::line_text#6 +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 -const byte* cputs::s#6 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 +const char *cputs::s#6 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -constant byte* main::s[8] = "Lone 1 +__constant char main::s[8] = "Lone 1 " -constant byte* main::s1[8] = "Lone 2 +__constant char main::s1[8] = "Lone 2 " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) $19 in clrscr::$0 = clrscr::l#2 < $19 @@ -589,15 +589,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -607,9 +607,9 @@ Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_in Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast conio_cursor_x = (unumber)0 Inlining cast conio_cursor_y = (unumber)0 Inlining cast gotoxy::y#0 = (unumber)0 @@ -624,9 +624,9 @@ Inlining cast gotoxy::y#1 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 @@ -659,37 +659,37 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [62] gotoxy::$1 = gotoxy::y#3 <= $19 from [61] gotoxy::$0 = gotoxy::y#3 > $19 @@ -770,16 +770,16 @@ Constant clrscr::c#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -815,7 +815,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -835,11 +835,11 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[41] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -862,23 +862,23 @@ Inlining constant with var siblings gotoxy::y#0 Inlining constant with var siblings cputs::s#1 Inlining constant with var siblings cputs::s#2 Inlining constant with var siblings conio_c64_init::line#1 -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined cputs::s#1 = main::s Constant inlined cputs::s#2 = main::s1 Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined clrscr::l#0 = 0 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined gotoxy::y#0 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined memset::c#0 = ' ' @@ -893,28 +893,28 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination if() condition always false - eliminating [9] if($28<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -1025,11 +1025,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -1046,7 +1046,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -1055,21 +1055,21 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main [18] phi() - [19] call cputs + [19] call cputs to:main::@2 main::@2: scope:[main] from main::@1 [20] phi() - [21] call cputs + [21] call cputs to:main::@return main::@return: scope:[main] from main::@2 [22] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [23] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -1082,7 +1082,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [26] conio_cursor_x = gotoxy::x#2 [27] conio_cursor_y = gotoxy::y#4 - [28] gotoxy::$7 = (word)gotoxy::y#4 + [28] gotoxy::$7 = (unsigned int)gotoxy::y#4 [29] gotoxy::$8 = gotoxy::$7 << 2 [30] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [31] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -1129,7 +1129,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [52] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@1 main::@2 [53] cputs::s#4 = phi( main::@1/main::s, main::@2/main::s1 ) to:cputs::@1 @@ -1144,10 +1144,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [59] cputc::c#0 = cputs::c#1 - [60] call cputc + [60] call cputc to:cputs::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [61] if(cputc::c#0==' ') goto cputc::@1 @@ -1160,14 +1160,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [66] phi() - [67] call cputln + [67] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [68] return to:@return cputc::@1: scope:[cputc] from cputc [69] phi() - [70] call cputln + [70] call cputln to:cputc::@return void cputln() @@ -1176,7 +1176,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [72] conio_line_color = conio_line_color + $28 [73] conio_cursor_x = 0 [74] conio_cursor_y = ++ conio_cursor_y - [75] call cscroll + [75] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [76] return @@ -1188,19 +1188,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [78] phi() - [79] call memcpy + [79] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [80] phi() - [81] call memcpy + [81] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [82] phi() - [83] call memset + [83] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [84] phi() - [85] call memset + [85] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [86] conio_line_text = conio_line_text - $28 @@ -1211,13 +1211,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [89] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [90] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [90] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [91] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [92] memcpy::src#4 = (byte*)memcpy::source#2 - [93] memcpy::dst#4 = (byte*)memcpy::destination#2 + [90] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [90] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [91] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [92] memcpy::src#4 = (char *)memcpy::source#2 + [93] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [94] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1233,14 +1233,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [99] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [100] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [100] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [100] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [101] memset::end#0 = (byte*)memset::str#3 + $28 - [102] memset::dst#4 = (byte*)memset::str#3 + [101] memset::end#0 = (char *)memset::str#3 + $28 + [102] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [103] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1258,81 +1258,81 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 20002.0 -byte clrscr::c#2 12501.25 -byte clrscr::l -byte clrscr::l#1 2002.0 -byte clrscr::l#2 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 1001.0 -byte* clrscr::line_cols#5 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 667.3333333333334 -byte* clrscr::line_text#5 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // 20002.0 +char clrscr::c#2 // 12501.25 +char clrscr::l +char clrscr::l#1 // 2002.0 +char clrscr::l#2 // 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // 1001.0 +char *clrscr::line_cols#5 // 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // 667.3333333333334 +char *clrscr::line_text#5 // 1714.7142857142858 void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 5179.6551724137935 -byte conio_cursor_y loadstore 71115.75555555556 -byte* conio_line_color loadstore 51400.20930232557 -byte* conio_line_text loadstore 50232.02272727273 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 10501.5 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 5179.6551724137935 +__loadstore char conio_cursor_y // 71115.75555555556 +__loadstore char *conio_line_color // 51400.20930232557 +__loadstore char *conio_line_text // 50232.02272727273 +void cputc(char c) +char cputc::c +char cputc::c#0 // 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 1001.0 -const byte* cputs::s -const byte* cputs::s#0 500.5 -const byte* cputs::s#3 1552.0 -const byte* cputs::s#4 101.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 1001.0 +const char *cputs::s +const char *cputs::s#0 // 500.5 +const char *cputs::s#3 // 1552.0 +const char *cputs::s#4 // 101.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.000000001E9 -byte* memcpy::dst#2 1.0033333346666667E9 -byte* memcpy::dst#4 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.000000002E9 -byte* memcpy::src#2 1.00250000125E9 -byte* memcpy::src#4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.2625000025E8 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 2.000000002E9 -byte* memset::dst#2 1.3366666683333335E9 -byte* memset::dst#4 2.0000002E7 -byte* memset::end -byte* memset::end#0 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.000000001E9 +char *memcpy::dst#2 // 1.0033333346666667E9 +char *memcpy::dst#4 // 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.000000002E9 +char *memcpy::src#2 // 1.00250000125E9 +char *memcpy::src#4 // 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.2625000025E8 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.42857143E8 +char *memset::dst +char *memset::dst#1 // 2.000000002E9 +char *memset::dst#2 // 1.3366666683333335E9 +char *memset::dst#4 // 2.0000002E7 +char *memset::end +char *memset::end#0 // 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -1427,7 +1427,7 @@ Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [26] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [28] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [28] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [29] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [30] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [31] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -1455,14 +1455,14 @@ Statement [73] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [77] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [86] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [87] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [91] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [92] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [93] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [91] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [92] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [93] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [95] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [97] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [101] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [101] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:22 [ memset::c#4 ] -Statement [102] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [102] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [104] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [106] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:22 [ memset::c#4 ] @@ -1471,7 +1471,7 @@ Statement [2] conio_cursor_y = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a Statement [26] conio_cursor_x = gotoxy::x#2 [ gotoxy::y#4 ] ( gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a -Statement [28] gotoxy::$7 = (word)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [28] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ gotoxy::$7 ] ( gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [29] gotoxy::$8 = gotoxy::$7 << 2 [ gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [30] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ gotoxy::$9 ] ( gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [31] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ gotoxy::line_offset#0 ] ( gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -1497,13 +1497,13 @@ Statement [73] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [77] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [86] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [87] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [91] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [92] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [93] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [91] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [92] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [93] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [95] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [97] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:79 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memcpy:81 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [101] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [102] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [101] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [102] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [104] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [106] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:83 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:67::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:19::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:21::cputc:60::cputln:70::cscroll:75::memset:85 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -1651,14 +1651,14 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -1695,7 +1695,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -1705,7 +1705,7 @@ conio_c64_init: { } // main main: { - // [17] call clrscr + // [17] call clrscr // [37] phi from main to clrscr [phi:main->clrscr] clrscr_from_main: jsr clrscr @@ -1714,7 +1714,7 @@ main: { jmp __b1 // main::@1 __b1: - // [19] call cputs + // [19] call cputs // [53] phi from main::@1 to cputs [phi:main::@1->cputs] cputs_from___b1: // [53] phi cputs::s#4 = main::s [phi:main::@1->cputs#0] -- pbuz1=pbuc1 @@ -1728,7 +1728,7 @@ main: { jmp __b2 // main::@2 __b2: - // [21] call cputs + // [21] call cputs // [53] phi from main::@2 to cputs [phi:main::@2->cputs] cputs_from___b2: // [53] phi cputs::s#4 = main::s1 [phi:main::@2->cputs#0] -- pbuz1=pbuc1 @@ -1751,7 +1751,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $12 @@ -1787,7 +1787,7 @@ gotoxy: { sta.z conio_cursor_x // [27] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [28] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [28] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -1951,7 +1951,7 @@ clrscr: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [54] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -1980,14 +1980,14 @@ cputs: { // cputs::@2 __b2: // [59] cputc::c#0 = cputs::c#1 - // [60] call cputc + // [60] call cputc jsr cputc jmp __b1_from___b2 } // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [61] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -2013,7 +2013,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [67] call cputln + // [67] call cputln jsr cputln jmp __breturn // cputc::@return @@ -2025,7 +2025,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [70] call cputln + // [70] call cputln jsr cputln jmp __breturn } @@ -2053,7 +2053,7 @@ cputln: { sta.z conio_cursor_x // [74] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [75] call cscroll + // [75] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -2073,15 +2073,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [79] call memcpy + // [79] call memcpy // [90] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [90] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [90] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [90] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [90] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -2092,15 +2092,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [81] call memcpy + // [81] call memcpy // [90] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [90] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [90] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [90] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [90] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -2111,12 +2111,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [83] call memset + // [83] call memset // [100] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [100] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [100] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [100] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -2127,12 +2127,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [85] call memset + // [85] call memset // [100] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [100] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [100] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [100] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -2168,14 +2168,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(6) destination, void* zp(4) source) +// void * memcpy(__zp(6) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $14 .label dst = 6 .label src = 4 .label source = 4 .label destination = 6 - // [91] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [91] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -2183,8 +2183,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [92] memcpy::src#4 = (byte*)memcpy::source#2 - // [93] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [92] memcpy::src#4 = (char *)memcpy::source#2 + // [93] memcpy::dst#4 = (char *)memcpy::destination#2 // [94] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -2226,7 +2226,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 6 @@ -2234,7 +2234,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [101] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [101] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -2242,7 +2242,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [102] memset::dst#4 = (byte*)memset::str#3 + // [102] memset::dst#4 = (char *)memset::str#3 // [103] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2396,96 +2396,96 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:4 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:4 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:2 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:2 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:4 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:4 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:2 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:2 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:8 5179.6551724137935 -byte conio_cursor_y loadstore zp[1]:9 71115.75555555556 -byte* conio_line_color loadstore zp[2]:12 51400.20930232557 -byte* conio_line_text loadstore zp[2]:10 50232.02272727273 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 10501.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:8 5179.6551724137935 +__loadstore char conio_cursor_y // zp[1]:9 71115.75555555556 +__loadstore char *conio_line_color // zp[2]:12 51400.20930232557 +__loadstore char *conio_line_text // zp[2]:10 50232.02272727273 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 500.5 -const byte* cputs::s#3 s zp[2]:2 1552.0 -const byte* cputs::s#4 s zp[2]:2 101.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 500.5 +const char *cputs::s#3 // s zp[2]:2 1552.0 +const char *cputs::s#4 // s zp[2]:2 101.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 202.0 -byte*~ gotoxy::$6 zp[2]:14 202.0 -word~ gotoxy::$7 zp[2]:14 151.5 -word~ gotoxy::$8 zp[2]:16 202.0 -word~ gotoxy::$9 zp[2]:14 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 202.0 +char *gotoxy::$6 // zp[2]:14 202.0 +unsigned int gotoxy::$7 // zp[2]:14 151.5 +unsigned int gotoxy::$8 // zp[2]:16 202.0 +unsigned int gotoxy::$9 // zp[2]:14 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::s[8] = "Lone 1 +__constant char main::s[8] = "Lone 1 " -constant byte* main::s1[8] = "Lone 2 +__constant char main::s1[8] = "Lone 2 " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:6 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:6 1.000000001E9 -byte* memcpy::dst#2 dst zp[2]:6 1.0033333346666667E9 -byte* memcpy::dst#4 dst zp[2]:6 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000002E9 -byte* memcpy::src#2 src zp[2]:4 1.00250000125E9 -byte* memcpy::src#4 src zp[2]:4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:20 1.2625000025E8 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2.000000002E9 -byte* memset::dst#2 dst zp[2]:6 1.3366666683333335E9 -byte* memset::dst#4 dst zp[2]:6 2.0000002E7 -byte* memset::end -byte* memset::end#0 end zp[2]:20 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:6 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:6 1.000000001E9 +char *memcpy::dst#2 // dst zp[2]:6 1.0033333346666667E9 +char *memcpy::dst#4 // dst zp[2]:6 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000002E9 +char *memcpy::src#2 // src zp[2]:4 1.00250000125E9 +char *memcpy::src#4 // src zp[2]:4 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:20 1.2625000025E8 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.42857143E8 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2.000000002E9 +char *memset::dst#2 // dst zp[2]:6 1.3366666683333335E9 +char *memset::dst#4 // dst zp[2]:6 2.0000002E7 +char *memset::end +char *memset::end#0 // end zp[2]:20 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] @@ -2561,11 +2561,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -2595,7 +2595,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -2605,13 +2605,13 @@ conio_c64_init: { // main main: { // clrscr() - // [17] call clrscr + // [17] call clrscr // [37] phi from main to clrscr [phi:main->clrscr] jsr clrscr // [18] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf("Lone 1\n") - // [19] call cputs + // [19] call cputs // [53] phi from main::@1 to cputs [phi:main::@1->cputs] // [53] phi cputs::s#4 = main::s [phi:main::@1->cputs#0] -- pbuz1=pbuc1 lda #main::@2] // main::@2 // printf("Lone 2\n") - // [21] call cputs + // [21] call cputs // [53] phi from main::@2 to cputs [phi:main::@2->cputs] // [53] phi cputs::s#4 = main::s1 [phi:main::@2->cputs#0] -- pbuz1=pbuc1 lda #cputs::@1] @@ -2869,14 +2869,14 @@ cputs: { __b2: // cputc(c) // [59] cputc::c#0 = cputs::c#1 - // [60] call cputc + // [60] call cputc jsr cputc jmp __b1 } // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [61] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -2901,7 +2901,7 @@ cputc: { // [66] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [67] call cputln + // [67] call cputln jsr cputln // cputc::@return __breturn: @@ -2912,7 +2912,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [70] call cputln + // [70] call cputln jsr cputln rts } @@ -2945,7 +2945,7 @@ cputln: { // [74] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [75] call cscroll + // [75] call cscroll jsr cscroll // cputln::@return // } @@ -2963,14 +2963,14 @@ cscroll: { // [78] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [79] call memcpy + // [79] call memcpy // [90] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [90] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [90] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [90] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [90] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -2979,14 +2979,14 @@ cscroll: { // [80] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [81] call memcpy + // [81] call memcpy // [90] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [90] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [90] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [90] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [90] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -2995,11 +2995,11 @@ cscroll: { // [82] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [83] call memset + // [83] call memset // [100] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [100] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [100] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [100] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -3008,11 +3008,11 @@ cscroll: { // [84] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [85] call memset + // [85] call memset // [100] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [100] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [100] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [100] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -3049,7 +3049,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(6) destination, void* zp(4) source) +// void * memcpy(__zp(6) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $14 .label dst = 6 @@ -3057,7 +3057,7 @@ memcpy: { .label source = 4 .label destination = 6 // char* src_end = (char*)source+num - // [91] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [91] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -3065,8 +3065,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [92] memcpy::src#4 = (byte*)memcpy::source#2 - // [93] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [92] memcpy::src#4 = (char *)memcpy::source#2 + // [93] memcpy::dst#4 = (char *)memcpy::destination#2 // [94] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [94] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [94] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -3106,14 +3106,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(6) str, byte register(X) c) +// void * memset(__zp(6) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 6 .label str = 6 // memset::@1 // char* end = (char*)str + num - // [101] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [101] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -3121,7 +3121,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [102] memset::dst#4 = (byte*)memset::str#3 + // [102] memset::dst#4 = (char *)memset::str#3 // [103] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [103] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/printf-15.sym b/src/test/ref/printf-15.sym index 205546d27..80adb5682 100644 --- a/src/test/ref/printf-15.sym +++ b/src/test/ref/printf-15.sym @@ -1,93 +1,93 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:4 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:4 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:2 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:2 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:4 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:4 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:2 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:2 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:8 5179.6551724137935 -byte conio_cursor_y loadstore zp[1]:9 71115.75555555556 -byte* conio_line_color loadstore zp[2]:12 51400.20930232557 -byte* conio_line_text loadstore zp[2]:10 50232.02272727273 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 10501.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:8 5179.6551724137935 +__loadstore char conio_cursor_y // zp[1]:9 71115.75555555556 +__loadstore char *conio_line_color // zp[2]:12 51400.20930232557 +__loadstore char *conio_line_text // zp[2]:10 50232.02272727273 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 10501.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 500.5 -const byte* cputs::s#3 s zp[2]:2 1552.0 -const byte* cputs::s#4 s zp[2]:2 101.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 500.5 +const char *cputs::s#3 // s zp[2]:2 1552.0 +const char *cputs::s#4 // s zp[2]:2 101.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 202.0 -byte*~ gotoxy::$6 zp[2]:14 202.0 -word~ gotoxy::$7 zp[2]:14 151.5 -word~ gotoxy::$8 zp[2]:16 202.0 -word~ gotoxy::$9 zp[2]:14 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 202.0 +char *gotoxy::$6 // zp[2]:14 202.0 +unsigned int gotoxy::$7 // zp[2]:14 151.5 +unsigned int gotoxy::$8 // zp[2]:16 202.0 +unsigned int gotoxy::$9 // zp[2]:14 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::s[8] = "Lone 1 +__constant char main::s[8] = "Lone 1 " -constant byte* main::s1[8] = "Lone 2 +__constant char main::s1[8] = "Lone 2 " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:6 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:6 1.000000001E9 -byte* memcpy::dst#2 dst zp[2]:6 1.0033333346666667E9 -byte* memcpy::dst#4 dst zp[2]:6 2.0000002E7 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000002E9 -byte* memcpy::src#2 src zp[2]:4 1.00250000125E9 -byte* memcpy::src#4 src zp[2]:4 1.0000001E7 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:20 1.2625000025E8 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.42857143E8 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2.000000002E9 -byte* memset::dst#2 dst zp[2]:6 1.3366666683333335E9 -byte* memset::dst#4 dst zp[2]:6 2.0000002E7 -byte* memset::end -byte* memset::end#0 end zp[2]:20 1.683333336666667E8 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:6 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:6 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:6 1.000000001E9 +char *memcpy::dst#2 // dst zp[2]:6 1.0033333346666667E9 +char *memcpy::dst#4 // dst zp[2]:6 2.0000002E7 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000002E9 +char *memcpy::src#2 // src zp[2]:4 1.00250000125E9 +char *memcpy::src#4 // src zp[2]:4 1.0000001E7 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:20 1.2625000025E8 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.42857143E8 +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2.000000002E9 +char *memset::dst#2 // dst zp[2]:6 1.3366666683333335E9 +char *memset::dst#4 // dst zp[2]:6 2.0000002E7 +char *memset::end +char *memset::end#0 // end zp[2]:20 1.683333336666667E8 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:6 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#4 gotoxy::y#2 ] diff --git a/src/test/ref/printmsg.asm b/src/test/ref/printmsg.asm index a81725d3f..7cb2d110e 100644 --- a/src/test/ref/printmsg.asm +++ b/src/test/ref/printmsg.asm @@ -59,7 +59,7 @@ main: { rts } // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 __b1: @@ -106,7 +106,7 @@ print_ln: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/printmsg.cfg b/src/test/ref/printmsg.cfg index 1f66cb78c..8065b676e 100644 --- a/src/test/ref/printmsg.cfg +++ b/src/test/ref/printmsg.cfg @@ -2,33 +2,33 @@ void main() main: scope:[main] from [0] phi() - [1] call print_str + [1] call print_str to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_ln + [3] call print_ln to:main::@2 main::@2: scope:[main] from main::@1 [4] print_char_cursor#37 = print_line_cursor#0 - [5] call print_str + [5] call print_str to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call print_ln + [7] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [8] print_char_cursor#38 = print_line_cursor#0 - [9] call print_str + [9] call print_str to:main::@5 main::@5: scope:[main] from main::@4 [10] phi() - [11] call print_ln + [11] call print_ln to:main::@return main::@return: scope:[main] from main::@5 [12] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main main::@2 main::@4 [13] print_char_cursor#36 = phi( main/print_screen#0, main::@2/print_char_cursor#37, main::@4/print_char_cursor#38 ) [13] print_str::str#7 = phi( main/msg, main::@2/msg2, main::@4/msg3 ) @@ -43,7 +43,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [17] print_char::ch#0 = *print_str::str#4 - [18] call print_char + [18] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [19] print_str::str#0 = ++ print_str::str#4 @@ -62,7 +62,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [24] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [25] *print_char_cursor#1 = print_char::ch#0 [26] print_char_cursor#21 = ++ print_char_cursor#1 diff --git a/src/test/ref/printmsg.log b/src/test/ref/printmsg.log index 5eeabe3ff..73a276910 100644 --- a/src/test/ref/printmsg.log +++ b/src/test/ref/printmsg.log @@ -1,8 +1,8 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main main::@2 main::@4 print_char_cursor#36 = phi( main/print_char_cursor#34, main::@2/print_char_cursor#7, main::@4/print_char_cursor#9 ) print_str::str#7 = phi( main/print_str::str#1, main::@2/print_str::str#2, main::@4/print_str::str#3 ) @@ -17,7 +17,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#31 = phi( print_str::@1/print_char_cursor#32 ) print_str::str#5 = phi( print_str::@1/print_str::str#4 ) print_char::ch#0 = *print_str::str#5 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#6 = phi( print_str::@2/print_str::str#5 ) @@ -56,7 +56,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_char_cursor#20 = phi( print_str::@2/print_char_cursor#31 ) print_char::ch#1 = phi( print_str::@2/print_char::ch#0 ) @@ -74,13 +74,13 @@ main: scope:[main] from __start::@1 print_line_cursor#23 = phi( __start::@1/print_line_cursor#22 ) print_char_cursor#34 = phi( __start::@1/print_char_cursor#35 ) print_str::str#1 = msg - call print_str + call print_str to:main::@1 main::@1: scope:[main] from main print_line_cursor#19 = phi( main/print_line_cursor#23 ) print_char_cursor#22 = phi( main/print_char_cursor#1 ) print_char_cursor#6 = print_char_cursor#22 - call print_ln + call print_ln to:main::@2 main::@2: scope:[main] from main::@1 print_char_cursor#23 = phi( main::@1/print_char_cursor#3 ) @@ -88,13 +88,13 @@ main::@2: scope:[main] from main::@1 print_line_cursor#2 = print_line_cursor#12 print_char_cursor#7 = print_char_cursor#23 print_str::str#2 = msg2 - call print_str + call print_str to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#20 = phi( main::@2/print_line_cursor#2 ) print_char_cursor#24 = phi( main::@2/print_char_cursor#1 ) print_char_cursor#8 = print_char_cursor#24 - call print_ln + call print_ln to:main::@4 main::@4: scope:[main] from main::@3 print_char_cursor#25 = phi( main::@3/print_char_cursor#3 ) @@ -102,13 +102,13 @@ main::@4: scope:[main] from main::@3 print_line_cursor#3 = print_line_cursor#13 print_char_cursor#9 = print_char_cursor#25 print_str::str#3 = msg3 - call print_str + call print_str to:main::@5 main::@5: scope:[main] from main::@4 print_line_cursor#21 = phi( main::@4/print_line_cursor#3 ) print_char_cursor#26 = phi( main::@4/print_char_cursor#1 ) print_char_cursor#10 = print_char_cursor#26 - call print_ln + call print_ln to:main::@6 main::@6: scope:[main] from main::@5 print_char_cursor#27 = phi( main::@5/print_char_cursor#3 ) @@ -128,7 +128,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#6 = print_screen#0 print_char_cursor#13 = print_line_cursor#6 to:__start::@1 @@ -136,7 +136,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#4 = phi( __start::__init1/print_screen#0 ) print_line_cursor#22 = phi( __start::__init1/print_line_cursor#6 ) print_char_cursor#35 = phi( __start::__init1/print_char_cursor#13 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#3 = phi( __start::@1/print_screen#4 ) @@ -156,112 +156,112 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void main() -constant byte* msg[] = "hello world! " -constant byte* msg2[] = "hello c64! " -constant byte* msg3[] = "hello 2017! " -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#4 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant char msg[] = "hello world! " +__constant char msg2[] = "hello c64! " +__constant char msg3[] = "hello 2017! " +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#4 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#4 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#9 + $28 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast $28 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias print_str::str#4 = print_str::str#5 print_str::str#6 Alias print_char_cursor#1 = print_char_cursor#31 print_char_cursor#32 print_char_cursor#17 @@ -308,7 +308,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant print_str::str#1 = msg Constant print_str::str#2 = msg2 Constant print_str::str#3 = msg3 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -324,10 +324,10 @@ Constant inlined print_str::str#3 = msg3 Constant inlined print_str::str#2 = msg2 Constant inlined print_str::str#1 = msg Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main @@ -363,33 +363,33 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_str + [1] call print_str to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_ln + [3] call print_ln to:main::@2 main::@2: scope:[main] from main::@1 [4] print_char_cursor#37 = print_line_cursor#0 - [5] call print_str + [5] call print_str to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call print_ln + [7] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [8] print_char_cursor#38 = print_line_cursor#0 - [9] call print_str + [9] call print_str to:main::@5 main::@5: scope:[main] from main::@4 [10] phi() - [11] call print_ln + [11] call print_ln to:main::@return main::@return: scope:[main] from main::@5 [12] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main main::@2 main::@4 [13] print_char_cursor#36 = phi( main/print_screen#0, main::@2/print_char_cursor#37, main::@4/print_char_cursor#38 ) [13] print_str::str#7 = phi( main/msg, main::@2/msg2, main::@4/msg3 ) @@ -404,7 +404,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [17] print_char::ch#0 = *print_str::str#4 - [18] call print_char + [18] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [19] print_str::str#0 = ++ print_str::str#4 @@ -423,7 +423,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [24] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [25] *print_char_cursor#1 = print_char::ch#0 [26] print_char_cursor#21 = ++ print_char_cursor#1 @@ -435,26 +435,26 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void main() -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 1102.0 -byte* print_char_cursor -byte* print_char_cursor#1 147.66666666666669 -byte* print_char_cursor#21 275.5 -byte* print_char_cursor#36 15.0 -byte* print_char_cursor#37 4.0 -byte* print_char_cursor#38 4.0 -byte* print_line_cursor -byte* print_line_cursor#0 28.272727272727273 -byte* print_line_cursor#18 15.0 -byte* print_line_cursor#9 213.0 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 1102.0 +char *print_char_cursor +char *print_char_cursor#1 // 147.66666666666669 +char *print_char_cursor#21 // 275.5 +char *print_char_cursor#36 // 15.0 +char *print_char_cursor#37 // 4.0 +char *print_char_cursor#38 // 4.0 +char *print_line_cursor +char *print_line_cursor#0 // 28.272727272727273 +char *print_line_cursor#18 // 15.0 +char *print_line_cursor#9 // 213.0 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 202.0 -byte* print_str::str#4 103.75 -byte* print_str::str#7 11.0 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 202.0 +char *print_str::str#4 // 103.75 +char *print_str::str#7 // 11.0 Initial phi equivalence classes [ print_str::str#4 print_str::str#7 print_str::str#0 ] @@ -520,7 +520,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_str + // [1] call print_str // [13] phi from main to print_str [phi:main->print_str] print_str_from_main: // [13] phi print_char_cursor#36 = print_screen#0 [phi:main->print_str#0] -- pbuz1=pbuc1 @@ -539,7 +539,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_ln + // [3] call print_ln // [20] phi from main::@1 to print_ln [phi:main::@1->print_ln] print_ln_from___b1: // [20] phi print_line_cursor#18 = print_screen#0 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 @@ -556,7 +556,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [5] call print_str + // [5] call print_str // [13] phi from main::@2 to print_str [phi:main::@2->print_str] print_str_from___b2: // [13] phi print_char_cursor#36 = print_char_cursor#37 [phi:main::@2->print_str#0] -- register_copy @@ -571,7 +571,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call print_ln + // [7] call print_ln // [20] phi from main::@3 to print_ln [phi:main::@3->print_ln] print_ln_from___b3: // [20] phi print_line_cursor#18 = print_line_cursor#0 [phi:main::@3->print_ln#0] -- register_copy @@ -584,7 +584,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [9] call print_str + // [9] call print_str // [13] phi from main::@4 to print_str [phi:main::@4->print_str] print_str_from___b4: // [13] phi print_char_cursor#36 = print_char_cursor#38 [phi:main::@4->print_str#0] -- register_copy @@ -599,7 +599,7 @@ main: { jmp __b5 // main::@5 __b5: - // [11] call print_ln + // [11] call print_ln // [20] phi from main::@5 to print_ln [phi:main::@5->print_ln] print_ln_from___b5: // [20] phi print_line_cursor#18 = print_line_cursor#0 [phi:main::@5->print_ln#0] -- register_copy @@ -612,7 +612,7 @@ main: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [14] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -638,7 +638,7 @@ print_str: { // [17] print_char::ch#0 = *print_str::str#4 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [18] call print_char + // [18] call print_char jsr print_char jmp __b3 // print_str::@3 @@ -685,7 +685,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [25] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -754,35 +754,35 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -constant byte* msg[] = "hello world! " -constant byte* msg2[] = "hello c64! " -constant byte* msg3[] = "hello 2017! " -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 1102.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:4 147.66666666666669 -byte* print_char_cursor#21 print_char_cursor zp[2]:4 275.5 -byte* print_char_cursor#36 print_char_cursor zp[2]:4 15.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#38 print_char_cursor zp[2]:4 4.0 -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:6 28.272727272727273 -byte* print_line_cursor#18 print_line_cursor zp[2]:6 15.0 -byte* print_line_cursor#9 print_line_cursor zp[2]:6 213.0 +__constant char msg[] = "hello world! " +__constant char msg2[] = "hello c64! " +__constant char msg3[] = "hello 2017! " +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 1102.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:4 147.66666666666669 +char *print_char_cursor#21 // print_char_cursor zp[2]:4 275.5 +char *print_char_cursor#36 // print_char_cursor zp[2]:4 15.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#38 // print_char_cursor zp[2]:4 4.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:6 28.272727272727273 +char *print_line_cursor#18 // print_line_cursor zp[2]:6 15.0 +char *print_line_cursor#9 // print_line_cursor zp[2]:6 213.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 202.0 -byte* print_str::str#4 str zp[2]:2 103.75 -byte* print_str::str#7 str zp[2]:2 11.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 202.0 +char *print_str::str#4 // str zp[2]:2 103.75 +char *print_str::str#7 // str zp[2]:2 11.0 zp[2]:2 [ print_str::str#4 print_str::str#7 print_str::str#0 ] zp[2]:4 [ print_char_cursor#1 print_char_cursor#36 print_char_cursor#37 print_char_cursor#38 print_char_cursor#21 ] @@ -815,7 +815,7 @@ Score: 934 // main main: { // print_str(msg) - // [1] call print_str + // [1] call print_str // [13] phi from main to print_str [phi:main->print_str] // [13] phi print_char_cursor#36 = print_screen#0 [phi:main->print_str#0] -- pbuz1=pbuc1 lda #main::@1] // main::@1 // print_ln() - // [3] call print_ln + // [3] call print_ln // [20] phi from main::@1 to print_ln [phi:main::@1->print_ln] // [20] phi print_line_cursor#18 = print_screen#0 [phi:main::@1->print_ln#0] -- pbuz1=pbuc1 lda #print_str] // [13] phi print_char_cursor#36 = print_char_cursor#37 [phi:main::@2->print_str#0] -- register_copy // [13] phi print_str::str#7 = msg2 [phi:main::@2->print_str#1] -- pbuz1=pbuc1 @@ -858,7 +858,7 @@ main: { // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // print_ln() - // [7] call print_ln + // [7] call print_ln // [20] phi from main::@3 to print_ln [phi:main::@3->print_ln] // [20] phi print_line_cursor#18 = print_line_cursor#0 [phi:main::@3->print_ln#0] -- register_copy jsr print_ln @@ -869,7 +869,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str(msg3) - // [9] call print_str + // [9] call print_str // [13] phi from main::@4 to print_str [phi:main::@4->print_str] // [13] phi print_char_cursor#36 = print_char_cursor#38 [phi:main::@4->print_str#0] -- register_copy // [13] phi print_str::str#7 = msg3 [phi:main::@4->print_str#1] -- pbuz1=pbuc1 @@ -881,7 +881,7 @@ main: { // [10] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // print_ln() - // [11] call print_ln + // [11] call print_ln // [20] phi from main::@5 to print_ln [phi:main::@5->print_ln] // [20] phi print_line_cursor#18 = print_line_cursor#0 [phi:main::@5->print_ln#0] -- register_copy jsr print_ln @@ -892,7 +892,7 @@ main: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [14] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -916,7 +916,7 @@ print_str: { // [17] print_char::ch#0 = *print_str::str#4 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [18] call print_char + // [18] call print_char jsr print_char // print_str::@3 // print_char(*(str++)); @@ -960,7 +960,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [25] *print_char_cursor#1 = print_char::ch#0 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/printmsg.sym b/src/test/ref/printmsg.sym index e1f838b2e..769918b0f 100644 --- a/src/test/ref/printmsg.sym +++ b/src/test/ref/printmsg.sym @@ -1,32 +1,32 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -constant byte* msg[] = "hello world! " -constant byte* msg2[] = "hello c64! " -constant byte* msg3[] = "hello 2017! " -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 1102.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:4 147.66666666666669 -byte* print_char_cursor#21 print_char_cursor zp[2]:4 275.5 -byte* print_char_cursor#36 print_char_cursor zp[2]:4 15.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:4 4.0 -byte* print_char_cursor#38 print_char_cursor zp[2]:4 4.0 -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:6 28.272727272727273 -byte* print_line_cursor#18 print_line_cursor zp[2]:6 15.0 -byte* print_line_cursor#9 print_line_cursor zp[2]:6 213.0 +__constant char msg[] = "hello world! " +__constant char msg2[] = "hello c64! " +__constant char msg3[] = "hello 2017! " +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 1102.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:4 147.66666666666669 +char *print_char_cursor#21 // print_char_cursor zp[2]:4 275.5 +char *print_char_cursor#36 // print_char_cursor zp[2]:4 15.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:4 4.0 +char *print_char_cursor#38 // print_char_cursor zp[2]:4 4.0 +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:6 28.272727272727273 +char *print_line_cursor#18 // print_line_cursor zp[2]:6 15.0 +char *print_line_cursor#9 // print_line_cursor zp[2]:6 213.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 202.0 -byte* print_str::str#4 str zp[2]:2 103.75 -byte* print_str::str#7 str zp[2]:2 11.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 202.0 +char *print_str::str#4 // str zp[2]:2 103.75 +char *print_str::str#7 // str zp[2]:2 11.0 zp[2]:2 [ print_str::str#4 print_str::str#7 print_str::str#0 ] zp[2]:4 [ print_char_cursor#1 print_char_cursor#36 print_char_cursor#37 print_char_cursor#38 print_char_cursor#21 ] diff --git a/src/test/ref/problem-bool-compare-2.log b/src/test/ref/problem-bool-compare-2.log index b70c41d16..a7506f53a 100644 --- a/src/test/ref/problem-bool-compare-2.log +++ b/src/test/ref/problem-bool-compare-2.log @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,19 +33,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -constant byte* main::SCREEN = (byte*)$400 +bool main::$0 +bool main::$1 +__constant char *main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = '*' Adding number conversion cast (unumber) 1 in main::SCREEN[1] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting ! if()-condition to reversed if() [0] main::$0 = ! 0!=0 Rewriting ! if()-condition to reversed if() [2] main::$1 = ! 1!=0 @@ -145,7 +145,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 +__constant char *main::SCREEN = (char *) 1024 diff --git a/src/test/ref/problem-bool-compare-2.sym b/src/test/ref/problem-bool-compare-2.sym index 8fd25b017..aaa55e135 100644 --- a/src/test/ref/problem-bool-compare-2.sym +++ b/src/test/ref/problem-bool-compare-2.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 +__constant char *main::SCREEN = (char *) 1024 diff --git a/src/test/ref/problem-bool-compare.log b/src/test/ref/problem-bool-compare.log index b4c0d7c99..1946b4485 100644 --- a/src/test/ref/problem-bool-compare.log +++ b/src/test/ref/problem-bool-compare.log @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,19 +33,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -constant byte* main::SCREEN = (byte*)$400 +bool main::$0 +bool main::$1 +__constant char *main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = '*' Adding number conversion cast (unumber) 1 in main::SCREEN[1] = '*' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting ! if()-condition to reversed if() [0] main::$0 = ! false!=false Rewriting ! if()-condition to reversed if() [2] main::$1 = ! true!=false @@ -145,7 +145,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 +__constant char *main::SCREEN = (char *) 1024 diff --git a/src/test/ref/problem-bool-compare.sym b/src/test/ref/problem-bool-compare.sym index 8fd25b017..aaa55e135 100644 --- a/src/test/ref/problem-bool-compare.sym +++ b/src/test/ref/problem-bool-compare.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 +__constant char *main::SCREEN = (char *) 1024 diff --git a/src/test/ref/problem-ma-var-overwrite.asm b/src/test/ref/problem-ma-var-overwrite.asm index 4809be1ab..e8d11adc3 100644 --- a/src/test/ref/problem-ma-var-overwrite.asm +++ b/src/test/ref/problem-ma-var-overwrite.asm @@ -28,7 +28,7 @@ main: { rts } // This must be volatile because is used in an interrupt routine... -// test(byte* zp(4) videoMem) +// void test(__zp(4) char *videoMem, char *colorMem, char *other) test: { .label colorMem = $d800 .label other = $c000 diff --git a/src/test/ref/problem-ma-var-overwrite.cfg b/src/test/ref/problem-ma-var-overwrite.cfg index 857a09a00..35bf45b48 100644 --- a/src/test/ref/problem-ma-var-overwrite.cfg +++ b/src/test/ref/problem-ma-var-overwrite.cfg @@ -4,11 +4,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] h1 = (byte*) 0 + [1] h1 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,15 +17,15 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] test::videoMem#0 = h1 - [6] call test + [6] call test to:main::@return main::@return: scope:[main] from main [7] return to:@return -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) +void test(char *videoMem , char *colorMem , char *other) test: scope:[test] from main - [8] test::dst = (byte*) 0 + [8] test::dst = (char *) 0 [9] test::diff#1 = test::colorMem#0 - test::videoMem#0 [10] test::$1 = test::other#0 + test::diff#1 [11] test::dst = test::$1 diff --git a/src/test/ref/problem-ma-var-overwrite.log b/src/test/ref/problem-ma-var-overwrite.log index 6ce588285..da351b02a 100644 --- a/src/test/ref/problem-ma-var-overwrite.log +++ b/src/test/ref/problem-ma-var-overwrite.log @@ -1,18 +1,18 @@ Setting inferred volatile on symbol affected by address-of: test::dst in asm { ldy#0 lda#1 sta(dst),y } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) +void test(char *videoMem , char *colorMem , char *other) test: scope:[test] from main test::other#1 = phi( main/test::other#0 ) test::videoMem#1 = phi( main/test::videoMem#0 ) test::colorMem#1 = phi( main/test::colorMem#0 ) test::diff#0 = 0 - test::dst = (byte*) 0 + test::dst = (char *) 0 test::$0 = test::colorMem#1 - test::videoMem#1 test::diff#1 = test::$0 - test::$2 = (word)test::diff#1 + test::$2 = (unsigned int)test::diff#1 test::$1 = test::other#1 + test::$2 test::dst = test::$1 test::dst[0] = 1 @@ -25,9 +25,9 @@ test::@return: scope:[test] from test void main() main: scope:[main] from __start::@1 test::videoMem#0 = h1 - test::colorMem#0 = (byte*)$d800 - test::other#0 = (byte*)$c000 - call test + test::colorMem#0 = (char *)$d800 + test::other#0 = (char *)$c000 + call test to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -39,10 +39,10 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - h1 = (byte*) 0 + h1 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -52,25 +52,25 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -byte* volatile h1 loadstore +__loadstore char * volatile h1 void main() -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) -word~ test::$0 -byte*~ test::$1 -word~ test::$2 -byte* test::colorMem -byte* test::colorMem#0 -byte* test::colorMem#1 -word test::diff -word test::diff#0 -word test::diff#1 -byte* volatile test::dst loadstore -byte* test::other -byte* test::other#0 -byte* test::other#1 -byte* test::videoMem -byte* test::videoMem#0 -byte* test::videoMem#1 +void test(char *videoMem , char *colorMem , char *other) +unsigned int test::$0 +char *test::$1 +unsigned int test::$2 +char *test::colorMem +char *test::colorMem#0 +char *test::colorMem#1 +unsigned int test::diff +unsigned int test::diff#0 +unsigned int test::diff#1 +__loadstore char * volatile test::dst +char *test::other +char *test::other#0 +char *test::other#1 +char *test::videoMem +char *test::videoMem#0 +char *test::videoMem#1 Adding number conversion cast (unumber) 1 in test::dst[0] = 1 Adding number conversion cast (unumber) 0 in test::dst[0] = ((unumber)) 1 @@ -80,11 +80,11 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast test::diff#1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 49152 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 49152 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)test::dst = test::$1 Alias test::diff#1 = test::$0 test::$2 @@ -95,8 +95,8 @@ Identical Phi Values test::videoMem#1 test::videoMem#0 Identical Phi Values test::other#1 test::other#0 Successful SSA optimization Pass2IdenticalPhiElimination Constant test::diff#0 = 0 -Constant test::colorMem#0 = (byte*) 55296 -Constant test::other#0 = (byte*) 49152 +Constant test::colorMem#0 = (char *) 55296 +Constant test::other#0 = (char *) 49152 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero test::dst in [6] test::dst[0] = 1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -127,11 +127,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] h1 = (byte*) 0 + [1] h1 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -140,15 +140,15 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] test::videoMem#0 = h1 - [6] call test + [6] call test to:main::@return main::@return: scope:[main] from main [7] return to:@return -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) +void test(char *videoMem , char *colorMem , char *other) test: scope:[test] from main - [8] test::dst = (byte*) 0 + [8] test::dst = (char *) 0 [9] test::diff#1 = test::colorMem#0 - test::videoMem#0 [10] test::$1 = test::other#0 + test::diff#1 [11] test::dst = test::$1 @@ -162,17 +162,17 @@ test::@return: scope:[test] from test VARIABLE REGISTER WEIGHTS void __start() -byte* volatile h1 loadstore 6.5 +__loadstore char * volatile h1 // 6.5 void main() -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) -byte*~ test::$1 202.0 -byte* test::colorMem -word test::diff -word test::diff#1 202.0 -byte* volatile test::dst loadstore 151.5 -byte* test::other -byte* test::videoMem -byte* test::videoMem#0 56.0 +void test(char *videoMem , char *colorMem , char *other) +char *test::$1 // 202.0 +char *test::colorMem +unsigned int test::diff +unsigned int test::diff#1 // 202.0 +__loadstore char * volatile test::dst // 151.5 +char *test::other +char *test::videoMem +char *test::videoMem#0 // 56.0 Initial phi equivalence classes Added variable h1 to live range equivalence class [ h1 ] @@ -192,9 +192,9 @@ Allocated zp[2]:6 [ test::dst ] Allocated zp[2]:8 [ test::diff#1 ] Allocated zp[2]:10 [ test::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] h1 = (byte*) 0 [ h1 ] ( [ h1 ] { } ) always clobbers reg byte a +Statement [1] h1 = (char *) 0 [ h1 ] ( [ h1 ] { } ) always clobbers reg byte a Statement [5] test::videoMem#0 = h1 [ test::videoMem#0 ] ( main:3 [ test::videoMem#0 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a -Statement [8] test::dst = (byte*) 0 [ test::videoMem#0 ] ( main:3::test:6 [ test::videoMem#0 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a +Statement [8] test::dst = (char *) 0 [ test::videoMem#0 ] ( main:3::test:6 [ test::videoMem#0 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [9] test::diff#1 = test::colorMem#0 - test::videoMem#0 [ test::diff#1 ] ( main:3::test:6 [ test::diff#1 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [10] test::$1 = test::other#0 + test::diff#1 [ test::$1 ] ( main:3::test:6 [ test::$1 ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a Statement [11] test::dst = test::$1 [ test::dst ] ( main:3::test:6 [ test::dst ] { { test::videoMem#0 = h1 } } ) always clobbers reg byte a @@ -239,7 +239,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] h1 = (byte*) 0 -- pbuz1=pbuc1 + // [1] h1 = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z h1 lda #>0 @@ -249,7 +249,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -264,7 +264,7 @@ main: { sta.z test.videoMem lda.z h1+1 sta.z test.videoMem+1 - // [6] call test + // [6] call test jsr test jmp __breturn // main::@return @@ -274,7 +274,7 @@ main: { } // test // This must be volatile because is used in an interrupt routine... -// test(byte* zp(4) videoMem) +// void test(__zp(4) char *videoMem, char *colorMem, char *other) test: { .label colorMem = $d800 .label other = $c000 @@ -282,7 +282,7 @@ test: { .label __1 = 4 .label diff = 4 .label videoMem = 4 - // [8] test::dst = (byte*) 0 -- pbuz1=pbuc1 + // [8] test::dst = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z dst lda #>0 @@ -347,19 +347,19 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void __start() -byte* volatile h1 loadstore zp[2]:2 6.5 +__loadstore char * volatile h1 // zp[2]:2 6.5 void main() -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) -byte*~ test::$1 zp[2]:4 202.0 -byte* test::colorMem -constant byte* test::colorMem#0 colorMem = (byte*) 55296 -word test::diff -word test::diff#1 diff zp[2]:4 202.0 -byte* volatile test::dst loadstore zp[2]:6 151.5 -byte* test::other -constant byte* test::other#0 other = (byte*) 49152 -byte* test::videoMem -byte* test::videoMem#0 videoMem zp[2]:4 56.0 +void test(char *videoMem , char *colorMem , char *other) +char *test::$1 // zp[2]:4 202.0 +char *test::colorMem +__constant char *test::colorMem#0 = (char *) 55296 // colorMem +unsigned int test::diff +unsigned int test::diff#1 // diff zp[2]:4 202.0 +__loadstore char * volatile test::dst // zp[2]:6 151.5 +char *test::other +__constant char *test::other#0 = (char *) 49152 // other +char *test::videoMem +char *test::videoMem#0 // videoMem zp[2]:4 56.0 zp[2]:2 [ h1 ] zp[2]:4 [ test::videoMem#0 test::diff#1 test::$1 ] @@ -387,13 +387,13 @@ Score: 122 __start: { // __start::__init1 // unsigned char *volatile h1 - // [1] h1 = (byte*) 0 -- pbuz1=pbuc1 + // [1] h1 = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z h1 sta.z h1+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -407,7 +407,7 @@ main: { sta.z test.videoMem lda.z h1+1 sta.z test.videoMem+1 - // [6] call test + // [6] call test jsr test // main::@return // } @@ -416,7 +416,7 @@ main: { } // test // This must be volatile because is used in an interrupt routine... -// test(byte* zp(4) videoMem) +// void test(__zp(4) char *videoMem, char *colorMem, char *other) test: { .label colorMem = $d800 .label other = $c000 @@ -425,7 +425,7 @@ test: { .label diff = 4 .label videoMem = 4 // __ma unsigned char *dst - // [8] test::dst = (byte*) 0 -- pbuz1=pbuc1 + // [8] test::dst = (char *) 0 -- pbuz1=pbuc1 lda #<0 sta.z dst sta.z dst+1 diff --git a/src/test/ref/problem-ma-var-overwrite.sym b/src/test/ref/problem-ma-var-overwrite.sym index 4e1d3b702..a0af57504 100644 --- a/src/test/ref/problem-ma-var-overwrite.sym +++ b/src/test/ref/problem-ma-var-overwrite.sym @@ -1,17 +1,17 @@ void __start() -byte* volatile h1 loadstore zp[2]:2 6.5 +__loadstore char * volatile h1 // zp[2]:2 6.5 void main() -void test(byte* test::videoMem , byte* test::colorMem , byte* test::other) -byte*~ test::$1 zp[2]:4 202.0 -byte* test::colorMem -constant byte* test::colorMem#0 colorMem = (byte*) 55296 -word test::diff -word test::diff#1 diff zp[2]:4 202.0 -byte* volatile test::dst loadstore zp[2]:6 151.5 -byte* test::other -constant byte* test::other#0 other = (byte*) 49152 -byte* test::videoMem -byte* test::videoMem#0 videoMem zp[2]:4 56.0 +void test(char *videoMem , char *colorMem , char *other) +char *test::$1 // zp[2]:4 202.0 +char *test::colorMem +__constant char *test::colorMem#0 = (char *) 55296 // colorMem +unsigned int test::diff +unsigned int test::diff#1 // diff zp[2]:4 202.0 +__loadstore char * volatile test::dst // zp[2]:6 151.5 +char *test::other +__constant char *test::other#0 = (char *) 49152 // other +char *test::videoMem +char *test::videoMem#0 // videoMem zp[2]:4 56.0 zp[2]:2 [ h1 ] zp[2]:4 [ test::videoMem#0 test::diff#1 test::$1 ] diff --git a/src/test/ref/problem-negate-const.asm b/src/test/ref/problem-negate-const.asm index b34bf0574..0db66fe0a 100644 --- a/src/test/ref/problem-negate-const.asm +++ b/src/test/ref/problem-negate-const.asm @@ -16,6 +16,7 @@ main: { // } rts } +// void printneg(signed char c) printneg: { // SCREEN[0] = c lda #-(-4) diff --git a/src/test/ref/problem-negate-const.cfg b/src/test/ref/problem-negate-const.cfg index d060de328..7310910bf 100644 --- a/src/test/ref/problem-negate-const.cfg +++ b/src/test/ref/problem-negate-const.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call printneg + [1] call printneg to:main::@return main::@return: scope:[main] from main [2] return to:@return -void printneg(signed byte printneg::c) +void printneg(signed char c) printneg: scope:[printneg] from main [3] *SCREEN = --4 to:printneg::@return diff --git a/src/test/ref/problem-negate-const.log b/src/test/ref/problem-negate-const.log index 8c1beafc7..31fdf120c 100644 --- a/src/test/ref/problem-negate-const.log +++ b/src/test/ref/problem-negate-const.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start printneg::c#0 = -4 - call printneg + call printneg to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void printneg(signed byte printneg::c) +void printneg(signed char c) printneg: scope:[printneg] from main printneg::c#2 = phi( main/printneg::c#0 ) printneg::$0 = - printneg::c#2 @@ -25,7 +25,7 @@ printneg::@return: scope:[printneg] from printneg void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,27 +34,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant signed byte* const SCREEN = (signed byte*)$400 +__constant signed char * const SCREEN = (signed char *)$400 void __start() void main() -void printneg(signed byte printneg::c) -signed byte~ printneg::$0 -signed byte printneg::c -signed byte printneg::c#0 -signed byte printneg::c#1 -signed byte printneg::c#2 +void printneg(signed char c) +signed char printneg::$0 +signed char printneg::c +signed char printneg::c#0 +signed char printneg::c#1 +signed char printneg::c#2 Adding number conversion cast (snumber) -4 in printneg::c#0 = -4 Adding number conversion cast (unumber) 0 in SCREEN[0] = printneg::c#1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast printneg::c#0 = (snumber)-4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (signed byte*) 1024 +Simplifying constant pointer cast (signed char *) 1024 Simplifying constant integer cast -4 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) -4 -Finalized unsigned number type (byte) 0 +Finalized signed number type (signed char) -4 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias printneg::c#1 = printneg::$0 Successful SSA optimization Pass2AliasElimination @@ -93,13 +93,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call printneg + [1] call printneg to:main::@return main::@return: scope:[main] from main [2] return to:@return -void printneg(signed byte printneg::c) +void printneg(signed char c) printneg: scope:[printneg] from main [3] *SCREEN = --4 to:printneg::@return @@ -110,8 +110,8 @@ printneg::@return: scope:[printneg] from printneg VARIABLE REGISTER WEIGHTS void main() -void printneg(signed byte printneg::c) -signed byte printneg::c +void printneg(signed char c) +signed char printneg::c Initial phi equivalence classes Complete equivalence classes @@ -145,7 +145,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call printneg + // [1] call printneg jsr printneg jmp __breturn // main::@return @@ -154,6 +154,7 @@ main: { rts } // printneg +// void printneg(signed char c) printneg: { // [3] *SCREEN = --4 -- _deref_pbsc1=vbsc2 lda #-(-4) @@ -175,10 +176,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant signed byte* const SCREEN = (signed byte*) 1024 +__constant signed char * const SCREEN = (signed char *) 1024 void main() -void printneg(signed byte printneg::c) -signed byte printneg::c +void printneg(signed char c) +signed char printneg::c @@ -203,7 +204,7 @@ Score: 24 // main main: { // printneg(-4) - // [1] call printneg + // [1] call printneg jsr printneg // main::@return // } @@ -211,6 +212,7 @@ main: { rts } // printneg +// void printneg(signed char c) printneg: { // SCREEN[0] = c // [3] *SCREEN = --4 -- _deref_pbsc1=vbsc2 diff --git a/src/test/ref/problem-negate-const.sym b/src/test/ref/problem-negate-const.sym index 2712e8ede..02edc569e 100644 --- a/src/test/ref/problem-negate-const.sym +++ b/src/test/ref/problem-negate-const.sym @@ -1,5 +1,5 @@ -constant signed byte* const SCREEN = (signed byte*) 1024 +__constant signed char * const SCREEN = (signed char *) 1024 void main() -void printneg(signed byte printneg::c) -signed byte printneg::c +void printneg(signed char c) +signed char printneg::c diff --git a/src/test/ref/problem-negative-word-const.cfg b/src/test/ref/problem-negative-word-const.cfg index 21007a09d..b7832669e 100644 --- a/src/test/ref/problem-negative-word-const.cfg +++ b/src/test/ref/problem-negative-word-const.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) - [2] main::w#0 = (word)main::i#2 + [2] main::w#0 = (unsigned int)main::i#2 [3] main::$0 = main::i#2 & 1 [4] if(0==main::$0) goto main::@3 to:main::@2 diff --git a/src/test/ref/problem-negative-word-const.log b/src/test/ref/problem-negative-word-const.log index 8480e01ad..efee47c35 100644 --- a/src/test/ref/problem-negative-word-const.log +++ b/src/test/ref/problem-negative-word-const.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -8,7 +8,7 @@ main: scope:[main] from __start::@1 to:main::@1 main::@1: scope:[main] from main main::@2 main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) - main::w#0 = (word)main::i#2 + main::w#0 = (unsigned int)main::i#2 main::$0 = main::i#2 & 1 main::$4 = 0 != main::$0 main::$1 = ! main::$4 @@ -17,7 +17,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::@3 main::w#2 = phi( main::@1/main::w#0, main::@3/main::w#1 ) main::i#3 = phi( main::@1/main::i#2, main::@3/main::i#4 ) - main::$3 = main::i#3 * SIZEOF_WORD + main::$3 = main::i#3 * SIZEOF_UNSIGNED_INT screen[main::$3] = main::w#2 main::i#1 = main::i#3 + rangenext(0,7) main::$2 = main::i#1 != rangelast(0,7) @@ -37,7 +37,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -46,25 +46,25 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte~ main::$3 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -word main::w -word main::w#0 -word main::w#1 -word main::w#2 -constant word* screen = (byte*)$400 +number main::$0 +bool main::$1 +bool main::$2 +char main::$3 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +unsigned int main::w#2 +__constant unsigned int *screen = (char *)$400 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -73,16 +73,16 @@ Adding number conversion cast (unumber) -1 in main::w#1 = -1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::w#1 = (unumber)-1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast -1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) -1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) -1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 +Inferred type updated to char in main::$0 = main::i#2 & 1 Inversing boolean not [5] main::$1 = 0 == main::$0 from [4] main::$4 = 0 != main::$0 Successful SSA optimization Pass2UnaryNotSimplification Alias main::i#2 = main::i#4 @@ -108,16 +108,16 @@ Adding number conversion cast (unumber) 8 in [8] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [5] main::$3 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [5] main::$3 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::w#1 Constant inlined main::i#0 = 0 Constant inlined main::w#1 = -1 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@4(between main::@2 and main::@1) Added new block during phi lifting main::@5(between main::@1 and main::@2) @@ -143,7 +143,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) - [2] main::w#0 = (word)main::i#2 + [2] main::w#0 = (unsigned int)main::i#2 [3] main::$0 = main::i#2 & 1 [4] if(0==main::$0) goto main::@3 to:main::@2 @@ -164,14 +164,14 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$3 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -word main::w -word main::w#0 5.5 -word main::w#2 11.0 +char main::$0 // 22.0 +char main::$3 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +unsigned int main::w +unsigned int main::w#0 // 5.5 +unsigned int main::w#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -188,12 +188,12 @@ Allocated zp[2]:3 [ main::w#2 main::w#0 ] Allocated zp[1]:5 [ main::$0 ] Allocated zp[1]:6 [ main::$3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::w#0 = (word)main::i#2 [ main::i#2 main::w#0 ] ( [ main::i#2 main::w#0 ] { } ) always clobbers reg byte a +Statement [2] main::w#0 = (unsigned int)main::i#2 [ main::i#2 main::w#0 ] ( [ main::i#2 main::w#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [3] main::$0 = main::i#2 & 1 [ main::i#2 main::w#0 main::$0 ] ( [ main::i#2 main::w#0 main::$0 ] { } ) always clobbers reg byte a Statement [7] main::$3 = main::i#2 << 1 [ main::i#2 main::w#2 main::$3 ] ( [ main::i#2 main::w#2 main::$3 ] { } ) always clobbers reg byte a Statement [8] screen[main::$3] = main::w#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [2] main::w#0 = (word)main::i#2 [ main::i#2 main::w#0 ] ( [ main::i#2 main::w#0 ] { } ) always clobbers reg byte a +Statement [2] main::w#0 = (unsigned int)main::i#2 [ main::i#2 main::w#0 ] ( [ main::i#2 main::w#0 ] { } ) always clobbers reg byte a Statement [3] main::$0 = main::i#2 & 1 [ main::i#2 main::w#0 main::$0 ] ( [ main::i#2 main::w#0 main::$0 ] { } ) always clobbers reg byte a Statement [7] main::$3 = main::i#2 << 1 [ main::i#2 main::w#2 main::$3 ] ( [ main::i#2 main::w#2 main::$3 ] { } ) always clobbers reg byte a Statement [8] screen[main::$3] = main::w#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a @@ -239,7 +239,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] main::w#0 = (word)main::i#2 -- vwuz1=_word_vbuxx + // [2] main::w#0 = (unsigned int)main::i#2 -- vwuz1=_word_vbuxx txa sta.z w lda #0 @@ -316,15 +316,15 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -word main::w -word main::w#0 w zp[2]:2 5.5 -word main::w#2 w zp[2]:2 11.0 -constant word* screen = (byte*) 1024 +char main::$0 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:2 5.5 +unsigned int main::w#2 // w zp[2]:2 11.0 +__constant unsigned int *screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::w#2 main::w#0 ] @@ -360,7 +360,7 @@ main: { // main::@1 __b1: // word w = i - // [2] main::w#0 = (word)main::i#2 -- vwuz1=_word_vbuxx + // [2] main::w#0 = (unsigned int)main::i#2 -- vwuz1=_word_vbuxx txa sta.z w lda #0 diff --git a/src/test/ref/problem-negative-word-const.sym b/src/test/ref/problem-negative-word-const.sym index 34f3cb360..a75472b24 100644 --- a/src/test/ref/problem-negative-word-const.sym +++ b/src/test/ref/problem-negative-word-const.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -word main::w -word main::w#0 w zp[2]:2 5.5 -word main::w#2 w zp[2]:2 11.0 -constant word* screen = (byte*) 1024 +char main::$0 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:2 5.5 +unsigned int main::w#2 // w zp[2]:2 11.0 +__constant unsigned int *screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::w#2 main::w#0 ] diff --git a/src/test/ref/problem-struct-inline-parameter-1.asm b/src/test/ref/problem-struct-inline-parameter-1.asm index fd1a7f9a9..77a3a334a 100644 --- a/src/test/ref/problem-struct-inline-parameter-1.asm +++ b/src/test/ref/problem-struct-inline-parameter-1.asm @@ -15,6 +15,7 @@ main: { // } rts } +// void print(char c, char fmt_prefix, char fmt_postfix) print: { .const c = 'c' .const fmt_prefix = '-' diff --git a/src/test/ref/problem-struct-inline-parameter-1.cfg b/src/test/ref/problem-struct-inline-parameter-1.cfg index 3ba0fe584..7474381b0 100644 --- a/src/test/ref/problem-struct-inline-parameter-1.cfg +++ b/src/test/ref/problem-struct-inline-parameter-1.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@return main::@return: scope:[main] from main [2] return to:@return -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) +void print(char c , char fmt_prefix , char fmt_postfix) print: scope:[print] from main [3] *SCREEN = print::fmt_prefix#0 [4] *(SCREEN+1) = print::c#0 diff --git a/src/test/ref/problem-struct-inline-parameter-1.log b/src/test/ref/problem-struct-inline-parameter-1.log index 61e185a34..288ce050f 100644 --- a/src/test/ref/problem-struct-inline-parameter-1.log +++ b/src/test/ref/problem-struct-inline-parameter-1.log @@ -1,5 +1,5 @@ Added struct type cast to parameter value list main::$0 = call print('c', (struct format){ '-', '-' }) -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 print::c#0 = 'c' print::fmt_prefix#0 = '-' print::fmt_postfix#0 = '-' - call print + call print to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) +void print(char c , char fmt_prefix , char fmt_postfix) print: scope:[print] from main print::fmt_postfix#1 = phi( main/print::fmt_postfix#0 ) print::c#1 = phi( main/print::c#0 ) @@ -48,7 +48,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#16 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#13 = phi( __start::@1/idx#1 ) @@ -61,40 +61,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c -byte print::c#0 -byte print::c#1 +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c +char print::c#0 +char print::c#1 struct format print::fmt -byte print::fmt_postfix -byte print::fmt_postfix#0 -byte print::fmt_postfix#1 -byte print::fmt_prefix -byte print::fmt_prefix#0 -byte print::fmt_prefix#1 +char print::fmt_postfix +char print::fmt_postfix#0 +char print::fmt_postfix#1 +char print::fmt_prefix +char print::fmt_prefix#0 +char print::fmt_prefix#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#9 idx#10 idx#1 Alias idx#12 = idx#4 idx#5 @@ -163,13 +163,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@return main::@return: scope:[main] from main [2] return to:@return -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) +void print(char c , char fmt_prefix , char fmt_postfix) print: scope:[print] from main [3] *SCREEN = print::fmt_prefix#0 [4] *(SCREEN+1) = print::c#0 @@ -181,13 +181,13 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c struct format print::fmt -byte print::fmt_postfix -byte print::fmt_prefix +char print::fmt_postfix +char print::fmt_prefix Initial phi equivalence classes Complete equivalence classes @@ -224,7 +224,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print jsr print jmp __breturn // main::@return @@ -233,6 +233,7 @@ main: { rts } // print +// void print(char c, char fmt_prefix, char fmt_postfix) print: { .const c = 'c' .const fmt_prefix = '-' @@ -263,17 +264,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx +__constant char * const SCREEN = (char *) 1024 +char idx void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c -constant byte print::c#0 c = 'c' +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c +__constant char print::c#0 = 'c' // c struct format print::fmt -byte print::fmt_postfix -constant byte print::fmt_postfix#0 fmt_postfix = '-' -byte print::fmt_prefix -constant byte print::fmt_prefix#0 fmt_prefix = '-' +char print::fmt_postfix +__constant char print::fmt_postfix#0 = '-' // fmt_postfix +char print::fmt_prefix +__constant char print::fmt_prefix#0 = '-' // fmt_prefix @@ -297,7 +298,7 @@ Score: 36 // main main: { // print('c', { '-', '-' } ) - // [1] call print + // [1] call print jsr print // main::@return // } @@ -305,6 +306,7 @@ main: { rts } // print +// void print(char c, char fmt_prefix, char fmt_postfix) print: { .const c = 'c' .const fmt_prefix = '-' diff --git a/src/test/ref/problem-struct-inline-parameter-1.sym b/src/test/ref/problem-struct-inline-parameter-1.sym index 1c92898a6..92e55e465 100644 --- a/src/test/ref/problem-struct-inline-parameter-1.sym +++ b/src/test/ref/problem-struct-inline-parameter-1.sym @@ -1,12 +1,12 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx +__constant char * const SCREEN = (char *) 1024 +char idx void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c -constant byte print::c#0 c = 'c' +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c +__constant char print::c#0 = 'c' // c struct format print::fmt -byte print::fmt_postfix -constant byte print::fmt_postfix#0 fmt_postfix = '-' -byte print::fmt_prefix -constant byte print::fmt_prefix#0 fmt_prefix = '-' +char print::fmt_postfix +__constant char print::fmt_postfix#0 = '-' // fmt_postfix +char print::fmt_prefix +__constant char print::fmt_prefix#0 = '-' // fmt_prefix diff --git a/src/test/ref/problem-struct-inline-parameter.asm b/src/test/ref/problem-struct-inline-parameter.asm index 284ea7e08..ff61fdd29 100644 --- a/src/test/ref/problem-struct-inline-parameter.asm +++ b/src/test/ref/problem-struct-inline-parameter.asm @@ -15,6 +15,7 @@ main: { // } rts } +// void print(char c, char fmt_prefix, char fmt_postfix) print: { .const c = 'c' .const fmt_prefix = '-' diff --git a/src/test/ref/problem-struct-inline-parameter.cfg b/src/test/ref/problem-struct-inline-parameter.cfg index 3ba0fe584..7474381b0 100644 --- a/src/test/ref/problem-struct-inline-parameter.cfg +++ b/src/test/ref/problem-struct-inline-parameter.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@return main::@return: scope:[main] from main [2] return to:@return -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) +void print(char c , char fmt_prefix , char fmt_postfix) print: scope:[print] from main [3] *SCREEN = print::fmt_prefix#0 [4] *(SCREEN+1) = print::c#0 diff --git a/src/test/ref/problem-struct-inline-parameter.log b/src/test/ref/problem-struct-inline-parameter.log index d700e73ef..90545c237 100644 --- a/src/test/ref/problem-struct-inline-parameter.log +++ b/src/test/ref/problem-struct-inline-parameter.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -8,7 +8,7 @@ main: scope:[main] from __start::@1 print::c#0 = 'c' print::fmt_prefix#0 = '-' print::fmt_postfix#0 = '-' - call print + call print to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) +void print(char c , char fmt_prefix , char fmt_postfix) print: scope:[print] from main print::fmt_postfix#1 = phi( main/print::fmt_postfix#0 ) print::c#1 = phi( main/print::c#0 ) @@ -47,7 +47,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#16 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#13 = phi( __start::@1/idx#1 ) @@ -60,40 +60,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c -byte print::c#0 -byte print::c#1 +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c +char print::c#0 +char print::c#1 struct format print::fmt -byte print::fmt_postfix -byte print::fmt_postfix#0 -byte print::fmt_postfix#1 -byte print::fmt_prefix -byte print::fmt_prefix#0 -byte print::fmt_prefix#1 +char print::fmt_postfix +char print::fmt_postfix#0 +char print::fmt_postfix#1 +char print::fmt_prefix +char print::fmt_prefix#0 +char print::fmt_prefix#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#9 idx#10 idx#1 Alias idx#12 = idx#4 idx#5 @@ -162,13 +162,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@return main::@return: scope:[main] from main [2] return to:@return -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) +void print(char c , char fmt_prefix , char fmt_postfix) print: scope:[print] from main [3] *SCREEN = print::fmt_prefix#0 [4] *(SCREEN+1) = print::c#0 @@ -180,13 +180,13 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c struct format print::fmt -byte print::fmt_postfix -byte print::fmt_prefix +char print::fmt_postfix +char print::fmt_prefix Initial phi equivalence classes Complete equivalence classes @@ -223,7 +223,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print jsr print jmp __breturn // main::@return @@ -232,6 +232,7 @@ main: { rts } // print +// void print(char c, char fmt_prefix, char fmt_postfix) print: { .const c = 'c' .const fmt_prefix = '-' @@ -262,17 +263,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx +__constant char * const SCREEN = (char *) 1024 +char idx void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c -constant byte print::c#0 c = 'c' +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c +__constant char print::c#0 = 'c' // c struct format print::fmt -byte print::fmt_postfix -constant byte print::fmt_postfix#0 fmt_postfix = '-' -byte print::fmt_prefix -constant byte print::fmt_prefix#0 fmt_prefix = '-' +char print::fmt_postfix +__constant char print::fmt_postfix#0 = '-' // fmt_postfix +char print::fmt_prefix +__constant char print::fmt_prefix#0 = '-' // fmt_prefix @@ -296,7 +297,7 @@ Score: 36 // main main: { // print('c', (struct format){ '-', '-' } ) - // [1] call print + // [1] call print jsr print // main::@return // } @@ -304,6 +305,7 @@ main: { rts } // print +// void print(char c, char fmt_prefix, char fmt_postfix) print: { .const c = 'c' .const fmt_prefix = '-' diff --git a/src/test/ref/problem-struct-inline-parameter.sym b/src/test/ref/problem-struct-inline-parameter.sym index 1c92898a6..92e55e465 100644 --- a/src/test/ref/problem-struct-inline-parameter.sym +++ b/src/test/ref/problem-struct-inline-parameter.sym @@ -1,12 +1,12 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx +__constant char * const SCREEN = (char *) 1024 +char idx void main() -void print(byte print::c , byte print::fmt_prefix , byte print::fmt_postfix) -byte print::c -constant byte print::c#0 c = 'c' +void print(char c , char fmt_prefix , char fmt_postfix) +char print::c +__constant char print::c#0 = 'c' // c struct format print::fmt -byte print::fmt_postfix -constant byte print::fmt_postfix#0 fmt_postfix = '-' -byte print::fmt_prefix -constant byte print::fmt_prefix#0 fmt_prefix = '-' +char print::fmt_postfix +__constant char print::fmt_postfix#0 = '-' // fmt_postfix +char print::fmt_prefix +__constant char print::fmt_prefix#0 = '-' // fmt_prefix diff --git a/src/test/ref/procedure-callingconvention-stack-0.asm b/src/test/ref/procedure-callingconvention-stack-0.asm index eaa78b5e5..8fafa1a4e 100644 --- a/src/test/ref/procedure-callingconvention-stack-0.asm +++ b/src/test/ref/procedure-callingconvention-stack-0.asm @@ -10,7 +10,7 @@ .const STACK_BASE = $103 .label SCREEN = $400 .segment Code -// plus(byte zp(2) a, byte register(A) b) +// __register(A) char plus(__zp(2) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-0.cfg b/src/test/ref/procedure-callingconvention-stack-0.cfg index 48fad4ba5..1d8811c38 100644 --- a/src/test/ref/procedure-callingconvention-stack-0.cfg +++ b/src/test/ref/procedure-callingconvention-stack-0.cfg @@ -1,22 +1,22 @@ -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [2] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 + [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [4] return to:@return void main() main: scope:[main] from - [5] stackpush(byte) = '0' - [6] stackpush(byte) = 7 + [5] stackpush(char) = '0' + [6] stackpush(char) = 7 [7] callexecute plus sideeffect stackpullbytes(1) - [9] main::$0 = stackpull(byte) + [9] main::$0 = stackpull(char) [10] *SCREEN = main::$0 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/procedure-callingconvention-stack-0.log b/src/test/ref/procedure-callingconvention-stack-0.log index eee60feff..3a813bb33 100644 --- a/src/test/ref/procedure-callingconvention-stack-0.log +++ b/src/test/ref/procedure-callingconvention-stack-0.log @@ -1,38 +1,38 @@ Adding parameter assignment in __stackcall procedure plus::b = param(plus::b) Adding parameter assignment in __stackcall procedure plus::a = param(plus::a) Calling convention __stackcall adding prepare/execute/finalize for main::$0 = call plus('0', 7) -Calling convention STACK_CALL replacing param(plus::a) with stackidx(byte,plus::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(plus::b) with stackidx(byte,plus::OFFSET_STACK_B) -Calling convention STACK_CALL adding stack return stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return -Calling convention STACK_CALL adding stack pull main::$0 = stackpull(byte) -Calling convention STACK_CALL adding stack push stackpush(byte) = '0' -Calling convention STACK_CALL adding stack push stackpush(byte) = 7 +Calling convention STACK_CALL replacing param(plus::a) with stackidx(char,plus::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(plus::b) with stackidx(char,plus::OFFSET_STACK_B) +Calling convention STACK_CALL adding stack return stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return +Calling convention STACK_CALL adding stack pull main::$0 = stackpull(char) +Calling convention STACK_CALL adding stack push stackpush(char) = '0' +Calling convention STACK_CALL adding stack push stackpush(char) = 7 CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - stackpush(byte) = '0' - stackpush(byte) = 7 + stackpush(char) = '0' + stackpush(char) = 7 callexecute plus sideeffect stackpullbytes(1) - main::$0 = stackpull(byte) + main::$0 = stackpull(char) SCREEN[0] = main::$0 to:main::@return main::@return: scope:[main] from main return to:@return -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) plus::$0 = plus::a#0 + plus::b#0 plus::return#0 = plus::$0 to:plus::@return plus::@return: scope:[plus] from plus plus::return#1 = phi( plus/plus::return#0 ) - stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#1 + stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#1 return to:@return @@ -47,35 +47,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *)$400 +__constant unsigned int STACK_BASE = $103 void __start() void main() -byte~ main::$0 -__stackcall byte plus(byte plus::a , byte plus::b) -byte~ plus::$0 -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 -byte plus::b -byte plus::b#0 -byte plus::return -byte plus::return#0 -byte plus::return#1 +char main::$0 +__stackcall char plus(char a , char b) +char plus::$0 +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 +char plus::b +char plus::b#0 +char plus::return +char plus::return#0 +char plus::return#1 -Adding number conversion cast (unumber) 7 in stackpush(byte) = 7 +Adding number conversion cast (unumber) 7 in stackpush(char) = 7 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast stackpush(byte) = (unumber)7 +Inlining cast stackpush(char) = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias plus::return#0 = plus::$0 plus::return#1 Successful SSA optimization Pass2AliasElimination @@ -86,7 +86,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to plus:7 @@ -96,24 +96,24 @@ Coalesced down to 0 phi equivalence classes FINAL CONTROL FLOW GRAPH -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [2] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 + [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [4] return to:@return void main() main: scope:[main] from - [5] stackpush(byte) = '0' - [6] stackpush(byte) = 7 + [5] stackpush(char) = '0' + [6] stackpush(char) = 7 [7] callexecute plus sideeffect stackpullbytes(1) - [9] main::$0 = stackpull(byte) + [9] main::$0 = stackpull(char) [10] *SCREEN = main::$0 to:main::@return main::@return: scope:[main] from main @@ -123,14 +123,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -__stackcall byte plus(byte plus::a , byte plus::b) -byte plus::a -byte plus::a#0 11.0 -byte plus::b -byte plus::b#0 22.0 -byte plus::return -byte plus::return#0 22.0 +char main::$0 // 4.0 +__stackcall char plus(char a , char b) +char plus::a +char plus::a#0 // 11.0 +char plus::b +char plus::b#0 // 22.0 +char plus::return +char plus::return#0 // 22.0 Initial phi equivalence classes Added variable plus::a#0 to live range equivalence class [ plus::a#0 ] @@ -147,24 +147,24 @@ Allocated zp[1]:3 [ plus::b#0 ] Allocated zp[1]:4 [ plus::return#0 ] Allocated zp[1]:5 [ main::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:2 [ plus::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ plus::a#0 ] Statement [2] plus::return#0 = plus::a#0 + plus::b#0 [ plus::return#0 ] ( plus:7 [ plus::return#0 ] { } ) always clobbers reg byte a -Statement [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x -Statement [5] stackpush(byte) = '0' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] stackpush(byte) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x +Statement [5] stackpush(char) = '0' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] stackpush(char) = 7 [ ] ( [ ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [9] main::$0 = stackpull(byte) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a -Statement [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [9] main::$0 = stackpull(char) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a +Statement [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Statement [2] plus::return#0 = plus::a#0 + plus::b#0 [ plus::return#0 ] ( plus:7 [ plus::return#0 ] { } ) always clobbers reg byte a -Statement [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x -Statement [5] stackpush(byte) = '0' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] stackpush(byte) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x +Statement [5] stackpush(char) = '0' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] stackpush(char) = 7 [ ] ( [ ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [9] main::$0 = stackpull(byte) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a +Statement [9] main::$0 = stackpull(char) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ plus::a#0 ] : zp[1]:2 , reg byte y , Potential registers zp[1]:3 [ plus::b#0 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ plus::return#0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -198,17 +198,17 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN = $400 .segment Code // plus -// plus(byte zp(2) a, byte register(A) b) +// __register(A) char plus(__zp(2) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = 2 - // [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // [2] plus::return#0 = plus::a#0 + plus::b#0 -- vbuaa=vbuz1_plus_vbuaa @@ -217,7 +217,7 @@ plus: { jmp __breturn // plus::@return __breturn: - // [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [4] return @@ -225,17 +225,17 @@ plus: { } // main main: { - // [5] stackpush(byte) = '0' -- _stackpushbyte_=vbuc1 + // [5] stackpush(char) = '0' -- _stackpushbyte_=vbuc1 lda #'0' pha - // [6] stackpush(byte) = 7 -- _stackpushbyte_=vbuc1 + // [6] stackpush(char) = 7 -- _stackpushbyte_=vbuc1 lda #7 pha // [7] callexecute plus -- call_vprc1 jsr plus // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [9] main::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [9] main::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // [10] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN @@ -256,20 +256,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -byte~ main::$0 reg byte a 4.0 -__stackcall byte plus(byte plus::a , byte plus::b) -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 a zp[1]:2 11.0 -byte plus::b -byte plus::b#0 reg byte a 22.0 -byte plus::return -byte plus::return#0 reg byte a 22.0 +char main::$0 // reg byte a 4.0 +__stackcall char plus(char a , char b) +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 // a zp[1]:2 11.0 +char plus::b +char plus::b#0 // reg byte a 22.0 +char plus::return +char plus::return#0 // reg byte a 22.0 zp[1]:2 [ plus::a#0 ] reg byte a [ plus::b#0 ] @@ -296,17 +296,17 @@ Score: 67 .label SCREEN = $400 .segment Code // plus -// plus(byte zp(2) a, byte register(A) b) +// __register(A) char plus(__zp(2) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = 2 - // [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // return a+b; @@ -315,7 +315,7 @@ plus: { adc.z a // plus::@return // } - // [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [4] return @@ -324,17 +324,17 @@ plus: { // main main: { // plus('0', 7) - // [5] stackpush(byte) = '0' -- _stackpushbyte_=vbuc1 + // [5] stackpush(char) = '0' -- _stackpushbyte_=vbuc1 lda #'0' pha - // [6] stackpush(byte) = 7 -- _stackpushbyte_=vbuc1 + // [6] stackpush(char) = 7 -- _stackpushbyte_=vbuc1 lda #7 pha // [7] callexecute plus -- call_vprc1 jsr plus // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [9] main::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [9] main::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // SCREEN[0] = plus('0', 7) // [10] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa diff --git a/src/test/ref/procedure-callingconvention-stack-0.sym b/src/test/ref/procedure-callingconvention-stack-0.sym index 5f814603d..30874c0fd 100644 --- a/src/test/ref/procedure-callingconvention-stack-0.sym +++ b/src/test/ref/procedure-callingconvention-stack-0.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -byte~ main::$0 reg byte a 4.0 -__stackcall byte plus(byte plus::a , byte plus::b) -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 a zp[1]:2 11.0 -byte plus::b -byte plus::b#0 reg byte a 22.0 -byte plus::return -byte plus::return#0 reg byte a 22.0 +char main::$0 // reg byte a 4.0 +__stackcall char plus(char a , char b) +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 // a zp[1]:2 11.0 +char plus::b +char plus::b#0 // reg byte a 22.0 +char plus::return +char plus::return#0 // reg byte a 22.0 zp[1]:2 [ plus::a#0 ] reg byte a [ plus::b#0 ] diff --git a/src/test/ref/procedure-callingconvention-stack-1.asm b/src/test/ref/procedure-callingconvention-stack-1.asm index 918d5d445..45c96fd4b 100644 --- a/src/test/ref/procedure-callingconvention-stack-1.asm +++ b/src/test/ref/procedure-callingconvention-stack-1.asm @@ -10,7 +10,7 @@ .const STACK_BASE = $103 .label SCREEN = $400 .segment Code -// plus(byte zp(2) a, byte register(A) b) +// __register(A) char plus(__zp(2) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-1.cfg b/src/test/ref/procedure-callingconvention-stack-1.cfg index 48fad4ba5..1d8811c38 100644 --- a/src/test/ref/procedure-callingconvention-stack-1.cfg +++ b/src/test/ref/procedure-callingconvention-stack-1.cfg @@ -1,22 +1,22 @@ -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [2] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 + [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [4] return to:@return void main() main: scope:[main] from - [5] stackpush(byte) = '0' - [6] stackpush(byte) = 7 + [5] stackpush(char) = '0' + [6] stackpush(char) = 7 [7] callexecute plus sideeffect stackpullbytes(1) - [9] main::$0 = stackpull(byte) + [9] main::$0 = stackpull(char) [10] *SCREEN = main::$0 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/procedure-callingconvention-stack-1.log b/src/test/ref/procedure-callingconvention-stack-1.log index 3f3ad0fe5..959231d7a 100644 --- a/src/test/ref/procedure-callingconvention-stack-1.log +++ b/src/test/ref/procedure-callingconvention-stack-1.log @@ -1,38 +1,38 @@ Adding parameter assignment in __stackcall procedure plus::b = param(plus::b) Adding parameter assignment in __stackcall procedure plus::a = param(plus::a) Calling convention __stackcall adding prepare/execute/finalize for main::$0 = call plus('0', 7) -Calling convention STACK_CALL replacing param(plus::a) with stackidx(byte,plus::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(plus::b) with stackidx(byte,plus::OFFSET_STACK_B) -Calling convention STACK_CALL adding stack return stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return -Calling convention STACK_CALL adding stack pull main::$0 = stackpull(byte) -Calling convention STACK_CALL adding stack push stackpush(byte) = '0' -Calling convention STACK_CALL adding stack push stackpush(byte) = 7 +Calling convention STACK_CALL replacing param(plus::a) with stackidx(char,plus::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(plus::b) with stackidx(char,plus::OFFSET_STACK_B) +Calling convention STACK_CALL adding stack return stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return +Calling convention STACK_CALL adding stack pull main::$0 = stackpull(char) +Calling convention STACK_CALL adding stack push stackpush(char) = '0' +Calling convention STACK_CALL adding stack push stackpush(char) = 7 CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - stackpush(byte) = '0' - stackpush(byte) = 7 + stackpush(char) = '0' + stackpush(char) = 7 callexecute plus sideeffect stackpullbytes(1) - main::$0 = stackpull(byte) + main::$0 = stackpull(char) SCREEN[0] = main::$0 to:main::@return main::@return: scope:[main] from main return to:@return -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) plus::$0 = plus::a#0 + plus::b#0 plus::return#0 = plus::$0 to:plus::@return plus::@return: scope:[plus] from plus plus::return#1 = phi( plus/plus::return#0 ) - stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#1 + stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#1 return to:@return @@ -47,35 +47,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *)$400 +__constant unsigned int STACK_BASE = $103 void __start() void main() -byte~ main::$0 -__stackcall byte plus(byte plus::a , byte plus::b) -byte~ plus::$0 -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 -byte plus::b -byte plus::b#0 -byte plus::return -byte plus::return#0 -byte plus::return#1 +char main::$0 +__stackcall char plus(char a , char b) +char plus::$0 +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 +char plus::b +char plus::b#0 +char plus::return +char plus::return#0 +char plus::return#1 -Adding number conversion cast (unumber) 7 in stackpush(byte) = 7 +Adding number conversion cast (unumber) 7 in stackpush(char) = 7 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast stackpush(byte) = (unumber)7 +Inlining cast stackpush(char) = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias plus::return#0 = plus::$0 plus::return#1 Successful SSA optimization Pass2AliasElimination @@ -86,7 +86,7 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to plus:7 @@ -96,24 +96,24 @@ Coalesced down to 0 phi equivalence classes FINAL CONTROL FLOW GRAPH -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [2] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 + [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [4] return to:@return void main() main: scope:[main] from - [5] stackpush(byte) = '0' - [6] stackpush(byte) = 7 + [5] stackpush(char) = '0' + [6] stackpush(char) = 7 [7] callexecute plus sideeffect stackpullbytes(1) - [9] main::$0 = stackpull(byte) + [9] main::$0 = stackpull(char) [10] *SCREEN = main::$0 to:main::@return main::@return: scope:[main] from main @@ -123,14 +123,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -__stackcall byte plus(byte plus::a , byte plus::b) -byte plus::a -byte plus::a#0 11.0 -byte plus::b -byte plus::b#0 22.0 -byte plus::return -byte plus::return#0 22.0 +char main::$0 // 4.0 +__stackcall char plus(char a , char b) +char plus::a +char plus::a#0 // 11.0 +char plus::b +char plus::b#0 // 22.0 +char plus::return +char plus::return#0 // 22.0 Initial phi equivalence classes Added variable plus::a#0 to live range equivalence class [ plus::a#0 ] @@ -147,24 +147,24 @@ Allocated zp[1]:3 [ plus::b#0 ] Allocated zp[1]:4 [ plus::return#0 ] Allocated zp[1]:5 [ main::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:2 [ plus::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ plus::a#0 ] Statement [2] plus::return#0 = plus::a#0 + plus::b#0 [ plus::return#0 ] ( plus:7 [ plus::return#0 ] { } ) always clobbers reg byte a -Statement [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x -Statement [5] stackpush(byte) = '0' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] stackpush(byte) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x +Statement [5] stackpush(char) = '0' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] stackpush(char) = 7 [ ] ( [ ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [9] main::$0 = stackpull(byte) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a -Statement [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [9] main::$0 = stackpull(char) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a +Statement [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Statement [2] plus::return#0 = plus::a#0 + plus::b#0 [ plus::return#0 ] ( plus:7 [ plus::return#0 ] { } ) always clobbers reg byte a -Statement [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x -Statement [5] stackpush(byte) = '0' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] stackpush(byte) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte x +Statement [5] stackpush(char) = '0' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] stackpush(char) = 7 [ ] ( [ ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [9] main::$0 = stackpull(byte) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a +Statement [9] main::$0 = stackpull(char) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ plus::a#0 ] : zp[1]:2 , reg byte y , Potential registers zp[1]:3 [ plus::b#0 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ plus::return#0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -198,17 +198,17 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN = $400 .segment Code // plus -// plus(byte zp(2) a, byte register(A) b) +// __register(A) char plus(__zp(2) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = 2 - // [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // [2] plus::return#0 = plus::a#0 + plus::b#0 -- vbuaa=vbuz1_plus_vbuaa @@ -217,7 +217,7 @@ plus: { jmp __breturn // plus::@return __breturn: - // [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [4] return @@ -225,17 +225,17 @@ plus: { } // main main: { - // [5] stackpush(byte) = '0' -- _stackpushbyte_=vbuc1 + // [5] stackpush(char) = '0' -- _stackpushbyte_=vbuc1 lda #'0' pha - // [6] stackpush(byte) = 7 -- _stackpushbyte_=vbuc1 + // [6] stackpush(char) = 7 -- _stackpushbyte_=vbuc1 lda #7 pha // [7] callexecute plus -- call_vprc1 jsr plus // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [9] main::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [9] main::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // [10] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN @@ -256,20 +256,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -byte~ main::$0 reg byte a 4.0 -__stackcall byte plus(byte plus::a , byte plus::b) -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 a zp[1]:2 11.0 -byte plus::b -byte plus::b#0 reg byte a 22.0 -byte plus::return -byte plus::return#0 reg byte a 22.0 +char main::$0 // reg byte a 4.0 +__stackcall char plus(char a , char b) +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 // a zp[1]:2 11.0 +char plus::b +char plus::b#0 // reg byte a 22.0 +char plus::return +char plus::return#0 // reg byte a 22.0 zp[1]:2 [ plus::a#0 ] reg byte a [ plus::b#0 ] @@ -296,17 +296,17 @@ Score: 67 .label SCREEN = $400 .segment Code // plus -// plus(byte zp(2) a, byte register(A) b) +// __register(A) char plus(__zp(2) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = 2 - // [0] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [0] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [1] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [1] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // return a+b; @@ -315,7 +315,7 @@ plus: { adc.z a // plus::@return // } - // [3] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [3] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [4] return @@ -324,17 +324,17 @@ plus: { // main main: { // plus('0', 7) - // [5] stackpush(byte) = '0' -- _stackpushbyte_=vbuc1 + // [5] stackpush(char) = '0' -- _stackpushbyte_=vbuc1 lda #'0' pha - // [6] stackpush(byte) = 7 -- _stackpushbyte_=vbuc1 + // [6] stackpush(char) = 7 -- _stackpushbyte_=vbuc1 lda #7 pha // [7] callexecute plus -- call_vprc1 jsr plus // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [9] main::$0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [9] main::$0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // SCREEN[0] = plus('0', 7) // [10] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa diff --git a/src/test/ref/procedure-callingconvention-stack-1.sym b/src/test/ref/procedure-callingconvention-stack-1.sym index 5f814603d..30874c0fd 100644 --- a/src/test/ref/procedure-callingconvention-stack-1.sym +++ b/src/test/ref/procedure-callingconvention-stack-1.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -byte~ main::$0 reg byte a 4.0 -__stackcall byte plus(byte plus::a , byte plus::b) -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 a zp[1]:2 11.0 -byte plus::b -byte plus::b#0 reg byte a 22.0 -byte plus::return -byte plus::return#0 reg byte a 22.0 +char main::$0 // reg byte a 4.0 +__stackcall char plus(char a , char b) +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 // a zp[1]:2 11.0 +char plus::b +char plus::b#0 // reg byte a 22.0 +char plus::return +char plus::return#0 // reg byte a 22.0 zp[1]:2 [ plus::a#0 ] reg byte a [ plus::b#0 ] diff --git a/src/test/ref/procedure-callingconvention-stack-10.asm b/src/test/ref/procedure-callingconvention-stack-10.asm index fbb07673c..71e9b8fe7 100644 --- a/src/test/ref/procedure-callingconvention-stack-10.asm +++ b/src/test/ref/procedure-callingconvention-stack-10.asm @@ -21,7 +21,7 @@ __start: { jsr main rts } -// print(struct Point zp(4) p) +// void print(__zp(4) struct Point p) print: { .const OFFSET_STACK_P = 0 .label p = 4 @@ -45,7 +45,7 @@ print: { // } rts } -// get(byte register(X) i) +// __zp(6) struct Point get(__register(X) char i) get: { .const OFFSET_STACK_I = 0 .const OFFSET_STACK_RETURN_0 = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-10.cfg b/src/test/ref/procedure-callingconvention-stack-10.cfg index 1b10a8760..337867091 100644 --- a/src/test/ref/procedure-callingconvention-stack-10.cfg +++ b/src/test/ref/procedure-callingconvention-stack-10.cfg @@ -14,24 +14,24 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall void print(struct Point print::p) +__stackcall void print(struct Point p) print: scope:[print] from [5] print::p = stackidx(struct Point,print::OFFSET_STACK_P) - [6] SCREEN[idx] = *((byte*)&print::p) + [6] SCREEN[idx] = *((char *)&print::p) [7] idx = ++ idx - [8] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) + [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) [9] idx = ++ idx to:print::@return print::@return: scope:[print] from print [10] return to:@return -__stackcall struct Point get(byte get::i) +__stackcall struct Point get(char i) get: scope:[get] from - [11] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) + [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [12] get::$0 = get::i#0 >> 1 - [13] *((byte*)&get::p) = get::i#0 - [14] *((byte*)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 + [13] *((char *)&get::p) = get::i#0 + [14] *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) to:get::@return get::@return: scope:[get] from get @@ -51,7 +51,7 @@ main::@return: scope:[main] from main::@1 [21] return to:@return main::@2: scope:[main] from main::@1 - [22] stackpush(byte) = main::i#2 + [22] stackpush(char) = main::i#2 sideeffect stackpushbytes(1) [24] callexecute get [25] main::p = stackpull(struct Point) diff --git a/src/test/ref/procedure-callingconvention-stack-10.log b/src/test/ref/procedure-callingconvention-stack-10.log index 5cfcefd37..6f7366ea9 100644 --- a/src/test/ref/procedure-callingconvention-stack-10.log +++ b/src/test/ref/procedure-callingconvention-stack-10.log @@ -6,13 +6,13 @@ Eliminating unused variable with no statement main::$1 Calling convention __stackcall adding prepare/execute/finalize for main::p = call get(main::i) Calling convention __stackcall adding prepare/execute/finalize for call print(main::p) Calling convention __stackcall adding prepare/execute/finalize for call main -Calling convention STACK_CALL replacing param(get::i) with stackidx(byte,get::OFFSET_STACK_I) +Calling convention STACK_CALL replacing param(get::i) with stackidx(char,get::OFFSET_STACK_I) Calling convention STACK_CALL replacing param(print::p) with stackidx(struct Point,print::OFFSET_STACK_P) Calling convention STACK_CALL adding stack return stackidx(struct Point,get::OFFSET_STACK_RETURN_0) = get::return Calling convention STACK_CALL adding stack pull main::p = stackpull(struct Point) -Calling convention STACK_CALL adding stack push stackpush(byte) = main::i +Calling convention STACK_CALL adding stack push stackpush(char) = main::i Calling convention STACK_CALL adding stack push stackpush(struct Point) = main::p -Removing C-classic struct-unwound assignment get::p = struct-unwound {*((byte*)&get::p+OFFSET_STRUCT_POINT_X), *((byte*)&get::p+OFFSET_STRUCT_POINT_Y)} +Removing C-classic struct-unwound assignment get::p = struct-unwound {*((char *)&get::p+OFFSET_STRUCT_POINT_X), *((char *)&get::p+OFFSET_STRUCT_POINT_Y)} Removing C-classic struct-unwound assignment get::return = struct-unwound {*(&get::return)} CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ main::@1: scope:[main] from main main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - stackpush(byte) = main::i#3 + stackpush(char) = main::i#3 sideeffect stackpushbytes(1) callexecute get main::p = stackpull(struct Point) @@ -41,12 +41,12 @@ main::@return: scope:[main] from main::@1 return to:@return -__stackcall struct Point get(byte get::i) +__stackcall struct Point get(char i) get: scope:[get] from - get::i#0 = stackidx(byte,get::OFFSET_STACK_I) + get::i#0 = stackidx(char,get::OFFSET_STACK_I) get::$0 = get::i#0 / 2 - *((byte*)&get::p+OFFSET_STRUCT_POINT_X) = get::i#0 - *((byte*)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 + *((char *)&get::p+OFFSET_STRUCT_POINT_X) = get::i#0 + *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) to:get::@return get::@return: scope:[get] from get @@ -54,12 +54,12 @@ get::@return: scope:[get] from get return to:@return -__stackcall void print(struct Point print::p) +__stackcall void print(struct Point p) print: scope:[print] from print::p = stackidx(struct Point,print::OFFSET_STACK_P) - SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_X) + SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_X) idx = ++ idx - SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) + SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) idx = ++ idx to:print::@return print::@return: scope:[print] from print @@ -80,53 +80,53 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 -constant word STACK_BASE = $103 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall struct Point get(byte get::i) -number~ get::$0 -constant byte get::OFFSET_STACK_I = 0 -constant byte get::OFFSET_STACK_RETURN_0 = 0 -byte get::i -byte get::i#0 -struct Point get::p loadstore -struct Point get::return loadstore -byte idx loadstore +__stackcall struct Point get(char i) +number get::$0 +__constant char get::OFFSET_STACK_I = 0 +__constant char get::OFFSET_STACK_RETURN_0 = 0 +char get::i +char get::i#0 +__loadstore struct Point get::p +__loadstore struct Point get::return +__loadstore char idx __stackcall void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -struct Point main::p loadstore -__stackcall void print(struct Point print::p) -constant byte print::OFFSET_STACK_P = 0 -struct Point print::p loadstore +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__loadstore struct Point main::p +__stackcall void print(struct Point p) +__constant char print::OFFSET_STACK_P = 0 +__loadstore struct Point print::p Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 < 5 Adding number conversion cast (unumber) 2 in get::$0 = get::i#0 / 2 Adding number conversion cast (unumber) get::$0 in get::$0 = get::i#0 / (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in get::$0 = get::i#0 / 2 +Inferred type updated to char in get::$0 = get::i#0 / 2 Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination Simple Condition main::$0 [3] if(main::i#2<5) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)&get::p in [15] *((byte*)&get::p+OFFSET_STRUCT_POINT_X) = get::i#0 -Simplifying expression containing zero (byte*)&print::p in [21] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&get::p in [15] *((char *)&get::p+OFFSET_STRUCT_POINT_X) = get::i#0 +Simplifying expression containing zero (char *)&print::p in [21] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_X) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -135,8 +135,8 @@ Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -169,24 +169,24 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall void print(struct Point print::p) +__stackcall void print(struct Point p) print: scope:[print] from [5] print::p = stackidx(struct Point,print::OFFSET_STACK_P) - [6] SCREEN[idx] = *((byte*)&print::p) + [6] SCREEN[idx] = *((char *)&print::p) [7] idx = ++ idx - [8] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) + [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) [9] idx = ++ idx to:print::@return print::@return: scope:[print] from print [10] return to:@return -__stackcall struct Point get(byte get::i) +__stackcall struct Point get(char i) get: scope:[get] from - [11] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) + [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [12] get::$0 = get::i#0 >> 1 - [13] *((byte*)&get::p) = get::i#0 - [14] *((byte*)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 + [13] *((char *)&get::p) = get::i#0 + [14] *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) to:get::@return get::@return: scope:[get] from get @@ -206,7 +206,7 @@ main::@return: scope:[main] from main::@1 [21] return to:@return main::@2: scope:[main] from main::@1 - [22] stackpush(byte) = main::i#2 + [22] stackpush(char) = main::i#2 sideeffect stackpushbytes(1) [24] callexecute get [25] main::p = stackpull(struct Point) @@ -221,20 +221,20 @@ null depth in calling loop Loop head: main::@1 tails: main::@2 blocks: main::@2 VARIABLE REGISTER WEIGHTS void __start() -__stackcall struct Point get(byte get::i) -byte~ get::$0 1001.0 -byte get::i -byte get::i#0 1501.5 -struct Point get::p loadstore -struct Point get::return loadstore 47.666666666666664 -byte idx loadstore 316.2105263157895 +__stackcall struct Point get(char i) +char get::$0 // 1001.0 +char get::i +char get::i#0 // 1501.5 +__loadstore struct Point get::p +__loadstore struct Point get::return // 47.666666666666664 +__loadstore char idx // 316.2105263157895 __stackcall void main() -byte main::i -byte main::i#1 202.0 -byte main::i#2 44.888888888888886 -struct Point main::p loadstore 202.0 -__stackcall void print(struct Point print::p) -struct Point print::p loadstore 333.6666666666667 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 44.888888888888886 +__loadstore struct Point main::p // 202.0 +__stackcall void print(struct Point p) +__loadstore struct Point print::p // 333.6666666666667 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -267,29 +267,29 @@ Statement [1] idx = 0 [ idx get::p get::return ] ( [ idx get::p get::return ] { Statement [5] print::p = stackidx(struct Point,print::OFFSET_STACK_P) [ idx print::p ] ( main:3::print:27 [ get::p get::return main::i#2 idx print::p ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [6] SCREEN[idx] = *((byte*)&print::p) [ idx print::p ] ( main:3::print:27 [ get::p get::return main::i#2 idx print::p ] { } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx] = *((char *)&print::p) [ idx print::p ] ( main:3::print:27 [ get::p get::return main::i#2 idx print::p ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [8] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:27 [ get::p get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y -Statement [11] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) [ get::i#0 get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::i#0 get::p get::return ] { } ) always clobbers reg byte a reg byte x +Statement [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:27 [ get::p get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y +Statement [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [ get::i#0 get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::i#0 get::p get::return ] { } ) always clobbers reg byte a reg byte x Statement [12] get::$0 = get::i#0 >> 1 [ get::i#0 get::$0 get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::i#0 get::$0 get::p get::return ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ get::i#0 ] Statement [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) [ get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::p get::return ] { } ) always clobbers reg byte a reg byte y Statement [16] stackidx(struct Point,get::OFFSET_STACK_RETURN_0) = get::return [ get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::p get::return ] { } ) always clobbers reg byte a reg byte x Statement [20] if(main::i#2<5) goto main::@2 [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a -Statement [22] stackpush(byte) = main::i#2 [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a +Statement [22] stackpush(char) = main::i#2 [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a Statement [25] main::p = stackpull(struct Point) [ idx get::p get::return main::i#2 main::p ] ( main:3 [ idx get::p get::return main::i#2 main::p ] { } ) always clobbers reg byte a Statement [26] stackpush(struct Point) = main::p [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(2) always clobbers reg byte a Statement [1] idx = 0 [ idx get::p get::return ] ( [ idx get::p get::return ] { } ) always clobbers reg byte a Statement [5] print::p = stackidx(struct Point,print::OFFSET_STACK_P) [ idx print::p ] ( main:3::print:27 [ get::p get::return main::i#2 idx print::p ] { } ) always clobbers reg byte a reg byte x -Statement [6] SCREEN[idx] = *((byte*)&print::p) [ idx print::p ] ( main:3::print:27 [ get::p get::return main::i#2 idx print::p ] { } ) always clobbers reg byte a reg byte y -Statement [8] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:27 [ get::p get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y -Statement [11] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) [ get::i#0 get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::i#0 get::p get::return ] { } ) always clobbers reg byte a reg byte x +Statement [6] SCREEN[idx] = *((char *)&print::p) [ idx print::p ] ( main:3::print:27 [ get::p get::return main::i#2 idx print::p ] { } ) always clobbers reg byte a reg byte y +Statement [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:27 [ get::p get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y +Statement [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [ get::i#0 get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::i#0 get::p get::return ] { } ) always clobbers reg byte a reg byte x Statement [12] get::$0 = get::i#0 >> 1 [ get::i#0 get::$0 get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::i#0 get::$0 get::p get::return ] { } ) always clobbers reg byte a Statement [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) [ get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::p get::return ] { } ) always clobbers reg byte a reg byte y Statement [16] stackidx(struct Point,get::OFFSET_STACK_RETURN_0) = get::return [ get::p get::return ] ( main:3::get:24 [ idx main::i#2 get::p get::return ] { } ) always clobbers reg byte a reg byte x Statement [20] if(main::i#2<5) goto main::@2 [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a -Statement [22] stackpush(byte) = main::i#2 [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a +Statement [22] stackpush(char) = main::i#2 [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a Statement [25] main::p = stackpull(struct Point) [ idx get::p get::return main::i#2 main::p ] ( main:3 [ idx get::p get::return main::i#2 main::p ] { } ) always clobbers reg byte a Statement [26] stackpush(struct Point) = main::p [ idx get::p get::return main::i#2 ] ( main:3 [ idx get::p get::return main::i#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(2) always clobbers reg byte a @@ -367,7 +367,7 @@ __start: { rts } // print -// print(struct Point zp(4) p) +// void print(__zp(4) struct Point p) print: { .const OFFSET_STACK_P = 0 .label p = 4 @@ -377,13 +377,13 @@ print: { sta.z p lda STACK_BASE+OFFSET_STACK_P+1,x sta.z p+1 - // [6] SCREEN[idx] = *((byte*)&print::p) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [6] SCREEN[idx] = *((char *)&print::p) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda.z p ldy.z idx sta SCREEN,y // [7] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx - // [8] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda p+OFFSET_STRUCT_POINT_Y ldy.z idx sta SCREEN,y @@ -396,22 +396,22 @@ print: { rts } // get -// get(byte register(X) i) +// __zp(6) struct Point get(__register(X) char i) get: { .const OFFSET_STACK_I = 0 .const OFFSET_STACK_RETURN_0 = 0 .label return = 6 .label p = 8 - // [11] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) -- vbuxx=_stackidxbyte_vbuc1 + // [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_I,x tax // [12] get::$0 = get::i#0 >> 1 -- vbuaa=vbuxx_ror_1 txa lsr - // [13] *((byte*)&get::p) = get::i#0 -- _deref_pbuc1=vbuxx + // [13] *((char *)&get::p) = get::i#0 -- _deref_pbuc1=vbuxx stx.z p - // [14] *((byte*)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuaa + // [14] *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuaa sta p+OFFSET_STRUCT_POINT_Y // [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_POINT @@ -455,7 +455,7 @@ main: { rts // main::@2 __b2: - // [22] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [22] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // sideeffect stackpushbytes(1) -- _stackpushbyte_1 @@ -510,28 +510,28 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -constant word STACK_BASE = $103 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall struct Point get(byte get::i) -byte~ get::$0 reg byte a 1001.0 -constant byte get::OFFSET_STACK_I = 0 -constant byte get::OFFSET_STACK_RETURN_0 = 0 -byte get::i -byte get::i#0 reg byte x 1501.5 -struct Point get::p loadstore zp[2]:8 -struct Point get::return loadstore zp[2]:6 47.666666666666664 -byte idx loadstore zp[1]:3 316.2105263157895 +__stackcall struct Point get(char i) +char get::$0 // reg byte a 1001.0 +__constant char get::OFFSET_STACK_I = 0 +__constant char get::OFFSET_STACK_RETURN_0 = 0 +char get::i +char get::i#0 // reg byte x 1501.5 +__loadstore struct Point get::p // zp[2]:8 +__loadstore struct Point get::return // zp[2]:6 47.666666666666664 +__loadstore char idx // zp[1]:3 316.2105263157895 __stackcall void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 44.888888888888886 -struct Point main::p loadstore zp[2]:4 202.0 -__stackcall void print(struct Point print::p) -constant byte print::OFFSET_STACK_P = 0 -struct Point print::p loadstore zp[2]:4 333.6666666666667 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 44.888888888888886 +__loadstore struct Point main::p // zp[2]:4 202.0 +__stackcall void print(struct Point p) +__constant char print::OFFSET_STACK_P = 0 +__loadstore struct Point print::p // zp[2]:4 333.6666666666667 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx ] @@ -580,7 +580,7 @@ __start: { rts } // print -// print(struct Point zp(4) p) +// void print(__zp(4) struct Point p) print: { .const OFFSET_STACK_P = 0 .label p = 4 @@ -591,7 +591,7 @@ print: { lda STACK_BASE+OFFSET_STACK_P+1,x sta.z p+1 // SCREEN[idx++] = p.x - // [6] SCREEN[idx] = *((byte*)&print::p) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [6] SCREEN[idx] = *((char *)&print::p) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda.z p ldy.z idx sta SCREEN,y @@ -599,7 +599,7 @@ print: { // [7] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx // SCREEN[idx++] = p.y - // [8] SCREEN[idx] = *((byte*)&print::p+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [8] SCREEN[idx] = *((char *)&print::p+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda p+OFFSET_STRUCT_POINT_Y ldy.z idx sta SCREEN,y @@ -612,13 +612,13 @@ print: { rts } // get -// get(byte register(X) i) +// __zp(6) struct Point get(__register(X) char i) get: { .const OFFSET_STACK_I = 0 .const OFFSET_STACK_RETURN_0 = 0 .label return = 6 .label p = 8 - // [11] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) -- vbuxx=_stackidxbyte_vbuc1 + // [11] get::i#0 = stackidx(char,get::OFFSET_STACK_I) -- vbuxx=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_I,x tax @@ -627,9 +627,9 @@ get: { txa lsr // struct Point p = { i, i/2 } - // [13] *((byte*)&get::p) = get::i#0 -- _deref_pbuc1=vbuxx + // [13] *((char *)&get::p) = get::i#0 -- _deref_pbuc1=vbuxx stx.z p - // [14] *((byte*)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuaa + // [14] *((char *)&get::p+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuaa sta p+OFFSET_STRUCT_POINT_Y // return p; // [15] *(&get::return) = memcpy(*(&get::p), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 @@ -672,7 +672,7 @@ main: { // main::@2 __b2: // struct Point p = get(i) - // [22] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [22] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // sideeffect stackpushbytes(1) -- _stackpushbyte_1 diff --git a/src/test/ref/procedure-callingconvention-stack-10.sym b/src/test/ref/procedure-callingconvention-stack-10.sym index 979bd9cd0..0083f0ea2 100644 --- a/src/test/ref/procedure-callingconvention-stack-10.sym +++ b/src/test/ref/procedure-callingconvention-stack-10.sym @@ -1,25 +1,25 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -constant word STACK_BASE = $103 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall struct Point get(byte get::i) -byte~ get::$0 reg byte a 1001.0 -constant byte get::OFFSET_STACK_I = 0 -constant byte get::OFFSET_STACK_RETURN_0 = 0 -byte get::i -byte get::i#0 reg byte x 1501.5 -struct Point get::p loadstore zp[2]:8 -struct Point get::return loadstore zp[2]:6 47.666666666666664 -byte idx loadstore zp[1]:3 316.2105263157895 +__stackcall struct Point get(char i) +char get::$0 // reg byte a 1001.0 +__constant char get::OFFSET_STACK_I = 0 +__constant char get::OFFSET_STACK_RETURN_0 = 0 +char get::i +char get::i#0 // reg byte x 1501.5 +__loadstore struct Point get::p // zp[2]:8 +__loadstore struct Point get::return // zp[2]:6 47.666666666666664 +__loadstore char idx // zp[1]:3 316.2105263157895 __stackcall void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 44.888888888888886 -struct Point main::p loadstore zp[2]:4 202.0 -__stackcall void print(struct Point print::p) -constant byte print::OFFSET_STACK_P = 0 -struct Point print::p loadstore zp[2]:4 333.6666666666667 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 44.888888888888886 +__loadstore struct Point main::p // zp[2]:4 202.0 +__stackcall void print(struct Point p) +__constant char print::OFFSET_STACK_P = 0 +__loadstore struct Point print::p // zp[2]:4 333.6666666666667 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx ] diff --git a/src/test/ref/procedure-callingconvention-stack-11.asm b/src/test/ref/procedure-callingconvention-stack-11.asm index 3ac266043..23ff27d7d 100644 --- a/src/test/ref/procedure-callingconvention-stack-11.asm +++ b/src/test/ref/procedure-callingconvention-stack-11.asm @@ -22,7 +22,7 @@ __start: { jsr main rts } -// print(struct Vector zp(6) v) +// void print(__zp(6) struct Vector v) print: { .const OFFSET_STACK_V = 0 .label v = 6 @@ -68,7 +68,7 @@ print: { // } rts } -// get(byte register(Y) i) +// __zp($a) struct Vector get(__register(Y) char i) get: { .const OFFSET_STACK_I = 0 .const OFFSET_STACK_RETURN_0 = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-11.cfg b/src/test/ref/procedure-callingconvention-stack-11.cfg index 76df66019..d71d16c57 100644 --- a/src/test/ref/procedure-callingconvention-stack-11.cfg +++ b/src/test/ref/procedure-callingconvention-stack-11.cfg @@ -14,16 +14,16 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall void print(struct Vector print::v) +__stackcall void print(struct Vector v) print: scope:[print] from [5] print::v = stackidx(struct Vector,print::OFFSET_STACK_V) - [6] SCREEN[idx] = *((byte*)(struct Point*)&print::v) + [6] SCREEN[idx] = *((char *)(struct Point *)&print::v) [7] idx = ++ idx - [8] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_POINT_Y) + [8] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_POINT_Y) [9] idx = ++ idx - [10] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2) + [10] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2) [11] idx = ++ idx - [12] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) + [12] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) [13] idx = ++ idx [14] SCREEN[idx] = ' ' [15] idx = ++ idx @@ -32,16 +32,16 @@ print::@return: scope:[print] from print [16] return to:@return -__stackcall struct Vector get(byte get::i) +__stackcall struct Vector get(char i) get: scope:[get] from - [17] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) + [17] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [18] get::$0 = get::i#0 >> 1 [19] get::$1 = get::i#0 + 1 [20] get::$2 = get::i#0 << 1 - [21] *((byte*)(struct Point*)&get::v) = get::i#0 - [22] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 - [23] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 - [24] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 + [21] *((char *)(struct Point *)&get::v) = get::i#0 + [22] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 + [23] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 + [24] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 [25] *(&get::return) = memcpy(*(&get::v), struct Vector, SIZEOF_STRUCT_VECTOR) to:get::@return get::@return: scope:[get] from get @@ -61,7 +61,7 @@ main::@return: scope:[main] from main::@1 [31] return to:@return main::@2: scope:[main] from main::@1 - [32] stackpush(byte) = main::i#2 + [32] stackpush(char) = main::i#2 sideeffect stackpushbytes(3) [34] callexecute get [35] main::v = stackpull(struct Vector) diff --git a/src/test/ref/procedure-callingconvention-stack-11.log b/src/test/ref/procedure-callingconvention-stack-11.log index b41484332..df76de131 100644 --- a/src/test/ref/procedure-callingconvention-stack-11.log +++ b/src/test/ref/procedure-callingconvention-stack-11.log @@ -6,13 +6,13 @@ Eliminating unused variable with no statement main::$1 Calling convention __stackcall adding prepare/execute/finalize for main::v = call get(main::i) Calling convention __stackcall adding prepare/execute/finalize for call print(main::v) Calling convention __stackcall adding prepare/execute/finalize for call main -Calling convention STACK_CALL replacing param(get::i) with stackidx(byte,get::OFFSET_STACK_I) +Calling convention STACK_CALL replacing param(get::i) with stackidx(char,get::OFFSET_STACK_I) Calling convention STACK_CALL replacing param(print::v) with stackidx(struct Vector,print::OFFSET_STACK_V) Calling convention STACK_CALL adding stack return stackidx(struct Vector,get::OFFSET_STACK_RETURN_0) = get::return Calling convention STACK_CALL adding stack pull main::v = stackpull(struct Vector) -Calling convention STACK_CALL adding stack push stackpush(byte) = main::i +Calling convention STACK_CALL adding stack push stackpush(char) = main::i Calling convention STACK_CALL adding stack push stackpush(struct Vector) = main::v -Removing C-classic struct-unwound assignment get::v = struct-unwound {*((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X), *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y), *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X), *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y)} +Removing C-classic struct-unwound assignment get::v = struct-unwound {*((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X), *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y), *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X), *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y)} Removing C-classic struct-unwound assignment get::return = struct-unwound {*(&get::return)} CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ main::@1: scope:[main] from main main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - stackpush(byte) = main::i#3 + stackpush(char) = main::i#3 sideeffect stackpushbytes(3) callexecute get main::v = stackpull(struct Vector) @@ -41,16 +41,16 @@ main::@return: scope:[main] from main::@1 return to:@return -__stackcall struct Vector get(byte get::i) +__stackcall struct Vector get(char i) get: scope:[get] from - get::i#0 = stackidx(byte,get::OFFSET_STACK_I) + get::i#0 = stackidx(char,get::OFFSET_STACK_I) get::$0 = get::i#0 / 2 get::$1 = get::i#0 + 1 get::$2 = get::i#0 * 2 - *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) = get::i#0 - *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) = get::$0 - *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) = get::$1 - *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 + *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) = get::i#0 + *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) = get::$0 + *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) = get::$1 + *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 *(&get::return) = memcpy(*(&get::v), struct Vector, SIZEOF_STRUCT_VECTOR) to:get::@return get::@return: scope:[get] from get @@ -58,16 +58,16 @@ get::@return: scope:[get] from get return to:@return -__stackcall void print(struct Vector print::v) +__stackcall void print(struct Vector v) print: scope:[print] from print::v = stackidx(struct Vector,print::OFFSET_STACK_V) - SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) + SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) idx = ++ idx - SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) + SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) idx = ++ idx - SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) + SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) idx = ++ idx - SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) + SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) idx = ++ idx SCREEN[idx] = ' ' idx = ++ idx @@ -90,36 +90,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte OFFSET_STRUCT_VECTOR_P1 = 0 -constant byte OFFSET_STRUCT_VECTOR_P2 = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_VECTOR = 4 -constant word STACK_BASE = $103 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_VECTOR_P1 = 0 +__constant char OFFSET_STRUCT_VECTOR_P2 = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_VECTOR = 4 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall struct Vector get(byte get::i) -number~ get::$0 -number~ get::$1 -number~ get::$2 -constant byte get::OFFSET_STACK_I = 0 -constant byte get::OFFSET_STACK_RETURN_0 = 0 -byte get::i -byte get::i#0 -struct Vector get::return loadstore -struct Vector get::v loadstore -byte idx loadstore +__stackcall struct Vector get(char i) +number get::$0 +number get::$1 +number get::$2 +__constant char get::OFFSET_STACK_I = 0 +__constant char get::OFFSET_STACK_RETURN_0 = 0 +char get::i +char get::i#0 +__loadstore struct Vector get::return +__loadstore struct Vector get::v +__loadstore char idx __stackcall void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -struct Vector main::v loadstore -__stackcall void print(struct Vector print::v) -constant byte print::OFFSET_STACK_V = 0 -struct Vector print::v loadstore +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__loadstore struct Vector main::v +__stackcall void print(struct Vector v) +__constant char print::OFFSET_STACK_V = 0 +__loadstore struct Vector print::v Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 < 5 Adding number conversion cast (unumber) 2 in get::$0 = get::i#0 / 2 @@ -129,34 +129,34 @@ Adding number conversion cast (unumber) get::$1 in get::$1 = get::i#0 + (unumber Adding number conversion cast (unumber) 2 in get::$2 = get::i#0 * 2 Adding number conversion cast (unumber) get::$2 in get::$2 = get::i#0 * (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in get::$0 = get::i#0 / 2 -Inferred type updated to byte in get::$1 = get::i#0 + 1 -Inferred type updated to byte in get::$2 = get::i#0 * 2 +Inferred type updated to char in get::$0 = get::i#0 / 2 +Inferred type updated to char in get::$1 = get::i#0 + 1 +Inferred type updated to char in get::$2 = get::i#0 * 2 Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination Simple Condition main::$0 [3] if(main::i#2<5) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1 in [17] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) = get::i#0 -Simplifying expression containing zero (struct Point*)&get::v in [17] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1) = get::i#0 -Simplifying expression containing zero (struct Point*)&get::v in [18] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) = get::$0 -Simplifying expression containing zero (byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2 in [19] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) = get::$1 -Simplifying expression containing zero (byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P1 in [25] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (struct Point*)&print::v in [25] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P1) -Simplifying expression containing zero (struct Point*)&print::v in [27] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) -Simplifying expression containing zero (byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2 in [29] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1 in [17] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) = get::i#0 +Simplifying expression containing zero (struct Point *)&get::v in [17] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1) = get::i#0 +Simplifying expression containing zero (struct Point *)&get::v in [18] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) = get::$0 +Simplifying expression containing zero (char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2 in [19] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) = get::$1 +Simplifying expression containing zero (char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P1 in [25] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (struct Point *)&print::v in [25] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P1) +Simplifying expression containing zero (struct Point *)&print::v in [27] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P1+OFFSET_STRUCT_POINT_Y) +Simplifying expression containing zero (char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2 in [29] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_X) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_VECTOR_P1 Eliminating unused constant OFFSET_STRUCT_POINT_X @@ -167,8 +167,8 @@ Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -201,16 +201,16 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall void print(struct Vector print::v) +__stackcall void print(struct Vector v) print: scope:[print] from [5] print::v = stackidx(struct Vector,print::OFFSET_STACK_V) - [6] SCREEN[idx] = *((byte*)(struct Point*)&print::v) + [6] SCREEN[idx] = *((char *)(struct Point *)&print::v) [7] idx = ++ idx - [8] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_POINT_Y) + [8] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_POINT_Y) [9] idx = ++ idx - [10] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2) + [10] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2) [11] idx = ++ idx - [12] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) + [12] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) [13] idx = ++ idx [14] SCREEN[idx] = ' ' [15] idx = ++ idx @@ -219,16 +219,16 @@ print::@return: scope:[print] from print [16] return to:@return -__stackcall struct Vector get(byte get::i) +__stackcall struct Vector get(char i) get: scope:[get] from - [17] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) + [17] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [18] get::$0 = get::i#0 >> 1 [19] get::$1 = get::i#0 + 1 [20] get::$2 = get::i#0 << 1 - [21] *((byte*)(struct Point*)&get::v) = get::i#0 - [22] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 - [23] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 - [24] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 + [21] *((char *)(struct Point *)&get::v) = get::i#0 + [22] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 + [23] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 + [24] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 [25] *(&get::return) = memcpy(*(&get::v), struct Vector, SIZEOF_STRUCT_VECTOR) to:get::@return get::@return: scope:[get] from get @@ -248,7 +248,7 @@ main::@return: scope:[main] from main::@1 [31] return to:@return main::@2: scope:[main] from main::@1 - [32] stackpush(byte) = main::i#2 + [32] stackpush(char) = main::i#2 sideeffect stackpushbytes(3) [34] callexecute get [35] main::v = stackpull(struct Vector) @@ -263,22 +263,22 @@ null depth in calling loop Loop head: main::@1 tails: main::@2 blocks: main::@2 VARIABLE REGISTER WEIGHTS void __start() -__stackcall struct Vector get(byte get::i) -byte~ get::$0 500.5 -byte~ get::$1 500.5 -byte~ get::$2 500.5 -byte get::i -byte get::i#0 1251.25 -struct Vector get::return loadstore 40.04 -struct Vector get::v loadstore -byte idx loadstore 600.68 +__stackcall struct Vector get(char i) +char get::$0 // 500.5 +char get::$1 // 500.5 +char get::$2 // 500.5 +char get::i +char get::i#0 // 1251.25 +__loadstore struct Vector get::return // 40.04 +__loadstore struct Vector get::v +__loadstore char idx // 600.68 __stackcall void main() -byte main::i -byte main::i#1 202.0 -byte main::i#2 44.888888888888886 -struct Vector main::v loadstore 202.0 -__stackcall void print(struct Vector print::v) -struct Vector print::v loadstore 143.0 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 44.888888888888886 +__loadstore struct Vector main::v // 202.0 +__stackcall void print(struct Vector v) +__loadstore struct Vector print::v // 143.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -317,13 +317,13 @@ Statement [1] idx = 0 [ idx get::v get::return ] ( [ idx get::v get::return ] { Statement [5] print::v = stackidx(struct Vector,print::OFFSET_STACK_V) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [6] SCREEN[idx] = *((byte*)(struct Point*)&print::v) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx] = *((char *)(struct Point *)&print::v) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [8] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_POINT_Y) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y -Statement [10] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y -Statement [12] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:37 [ get::v get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y +Statement [8] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_POINT_Y) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y +Statement [10] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y +Statement [12] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:37 [ get::v get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y Statement [14] SCREEN[idx] = ' ' [ idx ] ( main:3::print:37 [ get::v get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y -Statement [17] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) [ get::i#0 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::v get::return ] { } ) always clobbers reg byte a reg byte x +Statement [17] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [ get::i#0 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::v get::return ] { } ) always clobbers reg byte a reg byte x Statement [18] get::$0 = get::i#0 >> 1 [ get::i#0 get::$0 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::$0 get::v get::return ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ get::i#0 ] Statement [20] get::$2 = get::i#0 << 1 [ get::i#0 get::$0 get::$1 get::$2 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::$0 get::$1 get::$2 get::v get::return ] { } ) always clobbers reg byte a @@ -332,24 +332,24 @@ Removing always clobbered register reg byte a as potential for zp[1]:10 [ get::$ Statement [25] *(&get::return) = memcpy(*(&get::v), struct Vector, SIZEOF_STRUCT_VECTOR) [ get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::v get::return ] { } ) always clobbers reg byte a reg byte y Statement [26] stackidx(struct Vector,get::OFFSET_STACK_RETURN_0) = get::return [ get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::v get::return ] { } ) always clobbers reg byte a reg byte x Statement [30] if(main::i#2<5) goto main::@2 [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a -Statement [32] stackpush(byte) = main::i#2 [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a +Statement [32] stackpush(char) = main::i#2 [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a Statement [35] main::v = stackpull(struct Vector) [ idx get::v get::return main::i#2 main::v ] ( main:3 [ idx get::v get::return main::i#2 main::v ] { } ) always clobbers reg byte a Statement [36] stackpush(struct Vector) = main::v [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(4) always clobbers reg byte a reg byte x Statement [1] idx = 0 [ idx get::v get::return ] ( [ idx get::v get::return ] { } ) always clobbers reg byte a Statement [5] print::v = stackidx(struct Vector,print::OFFSET_STACK_V) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte x -Statement [6] SCREEN[idx] = *((byte*)(struct Point*)&print::v) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y -Statement [8] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_POINT_Y) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y -Statement [10] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y -Statement [12] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:37 [ get::v get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx] = *((char *)(struct Point *)&print::v) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y +Statement [8] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_POINT_Y) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y +Statement [10] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2) [ idx print::v ] ( main:3::print:37 [ get::v get::return main::i#2 idx print::v ] { } ) always clobbers reg byte a reg byte y +Statement [12] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) [ idx ] ( main:3::print:37 [ get::v get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y Statement [14] SCREEN[idx] = ' ' [ idx ] ( main:3::print:37 [ get::v get::return main::i#2 idx ] { } ) always clobbers reg byte a reg byte y -Statement [17] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) [ get::i#0 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::v get::return ] { } ) always clobbers reg byte a reg byte x +Statement [17] get::i#0 = stackidx(char,get::OFFSET_STACK_I) [ get::i#0 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::v get::return ] { } ) always clobbers reg byte a reg byte x Statement [18] get::$0 = get::i#0 >> 1 [ get::i#0 get::$0 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::$0 get::v get::return ] { } ) always clobbers reg byte a Statement [20] get::$2 = get::i#0 << 1 [ get::i#0 get::$0 get::$1 get::$2 get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::i#0 get::$0 get::$1 get::$2 get::v get::return ] { } ) always clobbers reg byte a Statement [25] *(&get::return) = memcpy(*(&get::v), struct Vector, SIZEOF_STRUCT_VECTOR) [ get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::v get::return ] { } ) always clobbers reg byte a reg byte y Statement [26] stackidx(struct Vector,get::OFFSET_STACK_RETURN_0) = get::return [ get::v get::return ] ( main:3::get:34 [ idx main::i#2 get::v get::return ] { } ) always clobbers reg byte a reg byte x Statement [30] if(main::i#2<5) goto main::@2 [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a -Statement [32] stackpush(byte) = main::i#2 [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a +Statement [32] stackpush(char) = main::i#2 [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a Statement [35] main::v = stackpull(struct Vector) [ idx get::v get::return main::i#2 main::v ] ( main:3 [ idx get::v get::return main::i#2 main::v ] { } ) always clobbers reg byte a Statement [36] stackpush(struct Vector) = main::v [ idx get::v get::return main::i#2 ] ( main:3 [ idx get::v get::return main::i#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(4) always clobbers reg byte a reg byte x @@ -439,7 +439,7 @@ __start: { rts } // print -// print(struct Vector zp(6) v) +// void print(__zp(6) struct Vector v) print: { .const OFFSET_STACK_V = 0 .label v = 6 @@ -453,25 +453,25 @@ print: { sta.z v+2 lda STACK_BASE+OFFSET_STACK_V+3,x sta.z v+3 - // [6] SCREEN[idx] = *((byte*)(struct Point*)&print::v) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [6] SCREEN[idx] = *((char *)(struct Point *)&print::v) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda.z v ldy.z idx sta SCREEN,y // [7] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx - // [8] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [8] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda v+OFFSET_STRUCT_POINT_Y ldy.z idx sta SCREEN,y // [9] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx - // [10] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [10] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda v+OFFSET_STRUCT_VECTOR_P2 ldy.z idx sta SCREEN,y // [11] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx - // [12] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [12] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y ldy.z idx sta SCREEN,y @@ -490,7 +490,7 @@ print: { rts } // get -// get(byte register(Y) i) +// __zp($a) struct Vector get(__register(Y) char i) get: { .const OFFSET_STACK_I = 0 .const OFFSET_STACK_RETURN_0 = 0 @@ -498,7 +498,7 @@ get: { .label v = $e .label __0 = 4 .label __2 = 5 - // [17] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) -- vbuyy=_stackidxbyte_vbuc1 + // [17] get::i#0 = stackidx(char,get::OFFSET_STACK_I) -- vbuyy=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_I,x tay @@ -514,14 +514,14 @@ get: { tya asl sta.z __2 - // [21] *((byte*)(struct Point*)&get::v) = get::i#0 -- _deref_pbuc1=vbuyy + // [21] *((char *)(struct Point *)&get::v) = get::i#0 -- _deref_pbuc1=vbuyy sty.z v - // [22] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuz1 + // [22] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuz1 lda.z __0 sta v+OFFSET_STRUCT_POINT_Y - // [23] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 -- _deref_pbuc1=vbuxx + // [23] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 -- _deref_pbuc1=vbuxx stx v+OFFSET_STRUCT_VECTOR_P2 - // [24] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 -- _deref_pbuc1=vbuz1 + // [24] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 -- _deref_pbuc1=vbuz1 lda.z __2 sta v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y // [25] *(&get::return) = memcpy(*(&get::v), struct Vector, SIZEOF_STRUCT_VECTOR) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 @@ -570,7 +570,7 @@ main: { rts // main::@2 __b2: - // [32] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [32] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // sideeffect stackpushbytes(3) -- _stackpushbyte_3 @@ -637,31 +637,31 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte OFFSET_STRUCT_VECTOR_P2 = 2 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_VECTOR = 4 -constant word STACK_BASE = $103 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_VECTOR_P2 = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_VECTOR = 4 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall struct Vector get(byte get::i) -byte~ get::$0 zp[1]:4 500.5 -byte~ get::$1 reg byte x 500.5 -byte~ get::$2 zp[1]:5 500.5 -constant byte get::OFFSET_STACK_I = 0 -constant byte get::OFFSET_STACK_RETURN_0 = 0 -byte get::i -byte get::i#0 reg byte y 1251.25 -struct Vector get::return loadstore zp[4]:10 40.04 -struct Vector get::v loadstore zp[4]:14 -byte idx loadstore zp[1]:3 600.68 +__stackcall struct Vector get(char i) +char get::$0 // zp[1]:4 500.5 +char get::$1 // reg byte x 500.5 +char get::$2 // zp[1]:5 500.5 +__constant char get::OFFSET_STACK_I = 0 +__constant char get::OFFSET_STACK_RETURN_0 = 0 +char get::i +char get::i#0 // reg byte y 1251.25 +__loadstore struct Vector get::return // zp[4]:10 40.04 +__loadstore struct Vector get::v // zp[4]:14 +__loadstore char idx // zp[1]:3 600.68 __stackcall void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 44.888888888888886 -struct Vector main::v loadstore zp[4]:6 202.0 -__stackcall void print(struct Vector print::v) -constant byte print::OFFSET_STACK_V = 0 -struct Vector print::v loadstore zp[4]:6 143.0 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 44.888888888888886 +__loadstore struct Vector main::v // zp[4]:6 202.0 +__stackcall void print(struct Vector v) +__constant char print::OFFSET_STACK_V = 0 +__loadstore struct Vector print::v // zp[4]:6 143.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx ] @@ -713,7 +713,7 @@ __start: { rts } // print -// print(struct Vector zp(6) v) +// void print(__zp(6) struct Vector v) print: { .const OFFSET_STACK_V = 0 .label v = 6 @@ -728,7 +728,7 @@ print: { lda STACK_BASE+OFFSET_STACK_V+3,x sta.z v+3 // SCREEN[idx++] = v.p1.x - // [6] SCREEN[idx] = *((byte*)(struct Point*)&print::v) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [6] SCREEN[idx] = *((char *)(struct Point *)&print::v) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda.z v ldy.z idx sta SCREEN,y @@ -736,7 +736,7 @@ print: { // [7] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx // SCREEN[idx++] = v.p1.y - // [8] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [8] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda v+OFFSET_STRUCT_POINT_Y ldy.z idx sta SCREEN,y @@ -744,7 +744,7 @@ print: { // [9] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx // SCREEN[idx++] = v.p2.x - // [10] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [10] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda v+OFFSET_STRUCT_VECTOR_P2 ldy.z idx sta SCREEN,y @@ -752,7 +752,7 @@ print: { // [11] idx = ++ idx -- vbuz1=_inc_vbuz1 inc.z idx // SCREEN[idx++] = v.p2.y - // [12] SCREEN[idx] = *((byte*)(struct Point*)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [12] SCREEN[idx] = *((char *)(struct Point *)&print::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y ldy.z idx sta SCREEN,y @@ -773,7 +773,7 @@ print: { rts } // get -// get(byte register(Y) i) +// __zp($a) struct Vector get(__register(Y) char i) get: { .const OFFSET_STACK_I = 0 .const OFFSET_STACK_RETURN_0 = 0 @@ -781,7 +781,7 @@ get: { .label v = $e .label __0 = 4 .label __2 = 5 - // [17] get::i#0 = stackidx(byte,get::OFFSET_STACK_I) -- vbuyy=_stackidxbyte_vbuc1 + // [17] get::i#0 = stackidx(char,get::OFFSET_STACK_I) -- vbuyy=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_I,x tay @@ -801,14 +801,14 @@ get: { asl sta.z __2 // struct Vector v = { {i, i/2}, {i+1, i*2} } - // [21] *((byte*)(struct Point*)&get::v) = get::i#0 -- _deref_pbuc1=vbuyy + // [21] *((char *)(struct Point *)&get::v) = get::i#0 -- _deref_pbuc1=vbuyy sty.z v - // [22] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuz1 + // [22] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_POINT_Y) = get::$0 -- _deref_pbuc1=vbuz1 lda.z __0 sta v+OFFSET_STRUCT_POINT_Y - // [23] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 -- _deref_pbuc1=vbuxx + // [23] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2) = get::$1 -- _deref_pbuc1=vbuxx stx v+OFFSET_STRUCT_VECTOR_P2 - // [24] *((byte*)(struct Point*)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 -- _deref_pbuc1=vbuz1 + // [24] *((char *)(struct Point *)&get::v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y) = get::$2 -- _deref_pbuc1=vbuz1 lda.z __2 sta v+OFFSET_STRUCT_VECTOR_P2+OFFSET_STRUCT_POINT_Y // return v; @@ -856,7 +856,7 @@ main: { // main::@2 __b2: // struct Vector v = get(i) - // [32] stackpush(byte) = main::i#2 -- _stackpushbyte_=vbuz1 + // [32] stackpush(char) = main::i#2 -- _stackpushbyte_=vbuz1 lda.z i pha // sideeffect stackpushbytes(3) -- _stackpushbyte_3 diff --git a/src/test/ref/procedure-callingconvention-stack-11.sym b/src/test/ref/procedure-callingconvention-stack-11.sym index 0225f00b7..e3f812b3a 100644 --- a/src/test/ref/procedure-callingconvention-stack-11.sym +++ b/src/test/ref/procedure-callingconvention-stack-11.sym @@ -1,28 +1,28 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte OFFSET_STRUCT_VECTOR_P2 = 2 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_VECTOR = 4 -constant word STACK_BASE = $103 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_VECTOR_P2 = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_VECTOR = 4 +__constant unsigned int STACK_BASE = $103 void __start() -__stackcall struct Vector get(byte get::i) -byte~ get::$0 zp[1]:4 500.5 -byte~ get::$1 reg byte x 500.5 -byte~ get::$2 zp[1]:5 500.5 -constant byte get::OFFSET_STACK_I = 0 -constant byte get::OFFSET_STACK_RETURN_0 = 0 -byte get::i -byte get::i#0 reg byte y 1251.25 -struct Vector get::return loadstore zp[4]:10 40.04 -struct Vector get::v loadstore zp[4]:14 -byte idx loadstore zp[1]:3 600.68 +__stackcall struct Vector get(char i) +char get::$0 // zp[1]:4 500.5 +char get::$1 // reg byte x 500.5 +char get::$2 // zp[1]:5 500.5 +__constant char get::OFFSET_STACK_I = 0 +__constant char get::OFFSET_STACK_RETURN_0 = 0 +char get::i +char get::i#0 // reg byte y 1251.25 +__loadstore struct Vector get::return // zp[4]:10 40.04 +__loadstore struct Vector get::v // zp[4]:14 +__loadstore char idx // zp[1]:3 600.68 __stackcall void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 44.888888888888886 -struct Vector main::v loadstore zp[4]:6 202.0 -__stackcall void print(struct Vector print::v) -constant byte print::OFFSET_STACK_V = 0 -struct Vector print::v loadstore zp[4]:6 143.0 +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 44.888888888888886 +__loadstore struct Vector main::v // zp[4]:6 202.0 +__stackcall void print(struct Vector v) +__constant char print::OFFSET_STACK_V = 0 +__loadstore struct Vector print::v // zp[4]:6 143.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx ] diff --git a/src/test/ref/procedure-callingconvention-stack-12.asm b/src/test/ref/procedure-callingconvention-stack-12.asm index 18a98cac3..6c8b5e785 100644 --- a/src/test/ref/procedure-callingconvention-stack-12.asm +++ b/src/test/ref/procedure-callingconvention-stack-12.asm @@ -19,7 +19,7 @@ __start: { jsr main rts } -// print(byte* zp(2) str, byte zp(5) spacing) +// void print(__zp(2) char *str, __zp(5) char spacing) print: { .const OFFSET_STACK_STR = 1 .const OFFSET_STACK_SPACING = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-12.cfg b/src/test/ref/procedure-callingconvention-stack-12.cfg index e46cd3173..010308c10 100644 --- a/src/test/ref/procedure-callingconvention-stack-12.cfg +++ b/src/test/ref/procedure-callingconvention-stack-12.cfg @@ -14,10 +14,10 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall void print(byte* print::str , byte print::spacing) +__stackcall void print(char *str , char spacing) print: scope:[print] from - [5] print::str#0 = stackidx(byte*,print::OFFSET_STACK_STR) - [6] print::spacing#0 = stackidx(byte,print::OFFSET_STACK_SPACING) + [5] print::str#0 = stackidx(char *,print::OFFSET_STACK_STR) + [6] print::spacing#0 = stackidx(char,print::OFFSET_STACK_SPACING) to:print::@1 print::@1: scope:[print] from print print::@3 [7] print::str#2 = phi( print/print::str#0, print::@3/print::str#1 ) @@ -43,12 +43,12 @@ print::@4: scope:[print] from print::@3 __stackcall void main() main: scope:[main] from - [18] stackpush(byte*) = main::str - [19] stackpush(byte) = 1 + [18] stackpush(char *) = main::str + [19] stackpush(char) = 1 [20] callexecute print sideeffect stackpullbytes(3) - [22] stackpush(byte*) = main::str1 - [23] stackpush(byte) = 2 + [22] stackpush(char *) = main::str1 + [23] stackpush(char) = 2 [24] callexecute print sideeffect stackpullbytes(3) to:main::@return diff --git a/src/test/ref/procedure-callingconvention-stack-12.log b/src/test/ref/procedure-callingconvention-stack-12.log index 8bb698aec..c20309b9d 100644 --- a/src/test/ref/procedure-callingconvention-stack-12.log +++ b/src/test/ref/procedure-callingconvention-stack-12.log @@ -5,23 +5,23 @@ Inlined call call __init Calling convention __stackcall adding prepare/execute/finalize for call print(main::str, 1) Calling convention __stackcall adding prepare/execute/finalize for call print(main::str1, 2) Calling convention __stackcall adding prepare/execute/finalize for call main -Calling convention STACK_CALL replacing param(print::str) with stackidx(byte*,print::OFFSET_STACK_STR) -Calling convention STACK_CALL replacing param(print::spacing) with stackidx(byte,print::OFFSET_STACK_SPACING) -Calling convention STACK_CALL adding stack push stackpush(byte*) = main::str -Calling convention STACK_CALL adding stack push stackpush(byte) = 1 -Calling convention STACK_CALL adding stack push stackpush(byte*) = main::str1 -Calling convention STACK_CALL adding stack push stackpush(byte) = 2 +Calling convention STACK_CALL replacing param(print::str) with stackidx(char *,print::OFFSET_STACK_STR) +Calling convention STACK_CALL replacing param(print::spacing) with stackidx(char,print::OFFSET_STACK_SPACING) +Calling convention STACK_CALL adding stack push stackpush(char *) = main::str +Calling convention STACK_CALL adding stack push stackpush(char) = 1 +Calling convention STACK_CALL adding stack push stackpush(char *) = main::str1 +Calling convention STACK_CALL adding stack push stackpush(char) = 2 CONTROL FLOW GRAPH SSA __stackcall void main() main: scope:[main] from - stackpush(byte*) = main::str - stackpush(byte) = 1 + stackpush(char *) = main::str + stackpush(char) = 1 callexecute print sideeffect stackpullbytes(3) - stackpush(byte*) = main::str1 - stackpush(byte) = 2 + stackpush(char *) = main::str1 + stackpush(char) = 2 callexecute print sideeffect stackpullbytes(3) to:main::@return @@ -29,10 +29,10 @@ main::@return: scope:[main] from main return to:@return -__stackcall void print(byte* print::str , byte print::spacing) +__stackcall void print(char *str , char spacing) print: scope:[print] from - print::str#0 = stackidx(byte*,print::OFFSET_STACK_STR) - print::spacing#0 = stackidx(byte,print::OFFSET_STACK_SPACING) + print::str#0 = stackidx(char *,print::OFFSET_STACK_STR) + print::spacing#0 = stackidx(char,print::OFFSET_STACK_SPACING) to:print::@1 print::@1: scope:[print] from print print::@3 print::spacing#4 = phi( print/print::spacing#0, print::@3/print::spacing#1 ) @@ -81,52 +81,52 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *)$400 +__constant unsigned int STACK_BASE = $103 void __start() -byte idx loadstore +__loadstore char idx __stackcall void main() -constant byte* main::str[6] = "hello" -constant byte* main::str1[6] = "world" -__stackcall void print(byte* print::str , byte print::spacing) -bool~ print::$0 -bool~ print::$1 -constant byte print::OFFSET_STACK_SPACING = 0 -constant byte print::OFFSET_STACK_STR = 1 -byte print::c -byte print::c#0 -byte print::c#1 -byte print::c#2 -byte print::c#3 -byte print::spacing -byte print::spacing#0 -byte print::spacing#1 -byte print::spacing#2 -byte print::spacing#3 -byte print::spacing#4 -byte* print::str -byte* print::str#0 -byte* print::str#1 -byte* print::str#2 -byte* print::str#3 -byte* print::str#4 -byte* print::str#5 +__constant char main::str[6] = "hello" +__constant char main::str1[6] = "world" +__stackcall void print(char *str , char spacing) +bool print::$0 +bool print::$1 +__constant char print::OFFSET_STACK_SPACING = 0 +__constant char print::OFFSET_STACK_STR = 1 +char print::c +char print::c#0 +char print::c#1 +char print::c#2 +char print::c#3 +char print::spacing +char print::spacing#0 +char print::spacing#1 +char print::spacing#2 +char print::spacing#3 +char print::spacing#4 +char *print::str +char *print::str#0 +char *print::str#1 +char *print::str#2 +char *print::str#3 +char *print::str#4 +char *print::str#5 -Adding number conversion cast (unumber) 1 in stackpush(byte) = 1 -Adding number conversion cast (unumber) 2 in stackpush(byte) = 2 +Adding number conversion cast (unumber) 1 in stackpush(char) = 1 +Adding number conversion cast (unumber) 2 in stackpush(char) = 2 Adding number conversion cast (unumber) 0 in print::$1 = 0 != *print::str#2 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast stackpush(byte) = (unumber)1 -Inlining cast stackpush(byte) = (unumber)2 +Inlining cast stackpush(char) = (unumber)1 +Inlining cast stackpush(char) = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias print::str#2 = print::str#3 Alias print::spacing#2 = print::spacing#4 @@ -147,8 +147,8 @@ Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings print::c#0 Constant inlined print::c#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print::@5(between print::@3 and print::@1) Adding NOP phi() at start of __start @@ -183,10 +183,10 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall void print(byte* print::str , byte print::spacing) +__stackcall void print(char *str , char spacing) print: scope:[print] from - [5] print::str#0 = stackidx(byte*,print::OFFSET_STACK_STR) - [6] print::spacing#0 = stackidx(byte,print::OFFSET_STACK_SPACING) + [5] print::str#0 = stackidx(char *,print::OFFSET_STACK_STR) + [6] print::spacing#0 = stackidx(char,print::OFFSET_STACK_SPACING) to:print::@1 print::@1: scope:[print] from print print::@3 [7] print::str#2 = phi( print/print::str#0, print::@3/print::str#1 ) @@ -212,12 +212,12 @@ print::@4: scope:[print] from print::@3 __stackcall void main() main: scope:[main] from - [18] stackpush(byte*) = main::str - [19] stackpush(byte) = 1 + [18] stackpush(char *) = main::str + [19] stackpush(char) = 1 [20] callexecute print sideeffect stackpullbytes(3) - [22] stackpush(byte*) = main::str1 - [23] stackpush(byte) = 2 + [22] stackpush(char *) = main::str1 + [23] stackpush(char) = 2 [24] callexecute print sideeffect stackpullbytes(3) to:main::@return @@ -228,18 +228,18 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() -byte idx loadstore 1571.8095238095236 +__loadstore char idx // 1571.8095238095236 __stackcall void main() -__stackcall void print(byte* print::str , byte print::spacing) -byte print::c -byte print::c#1 20002.0 -byte print::c#2 7500.75 -byte print::spacing -byte print::spacing#0 918.3636363636363 -byte* print::str -byte* print::str#0 101.0 -byte* print::str#1 1833.6666666666665 -byte* print::str#2 3276.25 +__stackcall void print(char *str , char spacing) +char print::c +char print::c#1 // 20002.0 +char print::c#2 // 7500.75 +char print::spacing +char print::spacing#0 // 918.3636363636363 +char *print::str +char *print::str#0 // 101.0 +char *print::str#1 // 1833.6666666666665 +char *print::str#2 // 3276.25 Initial phi equivalence classes [ print::str#2 print::str#0 print::str#1 ] @@ -257,8 +257,8 @@ Allocated zp[1]:5 [ idx ] Allocated zp[1]:6 [ print::spacing#0 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] idx = 0 [ idx ] ( [ idx ] { } ) always clobbers reg byte a -Statement [5] print::str#0 = stackidx(byte*,print::OFFSET_STACK_STR) [ idx print::str#0 ] ( main:3::print:20 [ idx print::str#0 ] { } main:3::print:24 [ idx print::str#0 ] { } ) always clobbers reg byte a reg byte x -Statement [6] print::spacing#0 = stackidx(byte,print::OFFSET_STACK_SPACING) [ idx print::str#0 print::spacing#0 ] ( main:3::print:20 [ idx print::str#0 print::spacing#0 ] { } main:3::print:24 [ idx print::str#0 print::spacing#0 ] { } ) always clobbers reg byte a reg byte x +Statement [5] print::str#0 = stackidx(char *,print::OFFSET_STACK_STR) [ idx print::str#0 ] ( main:3::print:20 [ idx print::str#0 ] { } main:3::print:24 [ idx print::str#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] print::spacing#0 = stackidx(char,print::OFFSET_STACK_SPACING) [ idx print::str#0 print::spacing#0 ] ( main:3::print:20 [ idx print::str#0 print::spacing#0 ] { } main:3::print:24 [ idx print::str#0 print::spacing#0 ] { } ) always clobbers reg byte a reg byte x Statement [8] if(0!=*print::str#2) goto print::@2 [ idx print::spacing#0 print::str#2 ] ( main:3::print:20 [ idx print::spacing#0 print::str#2 ] { } main:3::print:24 [ idx print::spacing#0 print::str#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:6 [ print::spacing#0 ] Removing always clobbered register reg byte y as potential for zp[1]:6 [ print::spacing#0 ] @@ -266,23 +266,23 @@ Statement [10] SCREEN[idx] = *print::str#2 [ idx print::spacing#0 print::str#2 ] Statement [15] SCREEN[idx] = ' ' [ idx print::spacing#0 print::str#1 print::c#2 ] ( main:3::print:20 [ idx print::spacing#0 print::str#1 print::c#2 ] { } main:3::print:24 [ idx print::spacing#0 print::str#1 print::c#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ print::c#2 print::c#1 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ print::c#2 print::c#1 ] -Statement [18] stackpush(byte*) = main::str [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a -Statement [19] stackpush(byte) = 1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [18] stackpush(char *) = main::str [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [19] stackpush(char) = 1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(3) always clobbers reg byte a reg byte x -Statement [22] stackpush(byte*) = main::str1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a -Statement [23] stackpush(byte) = 2 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [22] stackpush(char *) = main::str1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [23] stackpush(char) = 2 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(3) always clobbers reg byte a reg byte x Statement [1] idx = 0 [ idx ] ( [ idx ] { } ) always clobbers reg byte a -Statement [5] print::str#0 = stackidx(byte*,print::OFFSET_STACK_STR) [ idx print::str#0 ] ( main:3::print:20 [ idx print::str#0 ] { } main:3::print:24 [ idx print::str#0 ] { } ) always clobbers reg byte a reg byte x -Statement [6] print::spacing#0 = stackidx(byte,print::OFFSET_STACK_SPACING) [ idx print::str#0 print::spacing#0 ] ( main:3::print:20 [ idx print::str#0 print::spacing#0 ] { } main:3::print:24 [ idx print::str#0 print::spacing#0 ] { } ) always clobbers reg byte a reg byte x +Statement [5] print::str#0 = stackidx(char *,print::OFFSET_STACK_STR) [ idx print::str#0 ] ( main:3::print:20 [ idx print::str#0 ] { } main:3::print:24 [ idx print::str#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] print::spacing#0 = stackidx(char,print::OFFSET_STACK_SPACING) [ idx print::str#0 print::spacing#0 ] ( main:3::print:20 [ idx print::str#0 print::spacing#0 ] { } main:3::print:24 [ idx print::str#0 print::spacing#0 ] { } ) always clobbers reg byte a reg byte x Statement [8] if(0!=*print::str#2) goto print::@2 [ idx print::spacing#0 print::str#2 ] ( main:3::print:20 [ idx print::spacing#0 print::str#2 ] { } main:3::print:24 [ idx print::spacing#0 print::str#2 ] { } ) always clobbers reg byte a reg byte y Statement [10] SCREEN[idx] = *print::str#2 [ idx print::spacing#0 print::str#2 ] ( main:3::print:20 [ idx print::spacing#0 print::str#2 ] { } main:3::print:24 [ idx print::spacing#0 print::str#2 ] { } ) always clobbers reg byte a reg byte y Statement [15] SCREEN[idx] = ' ' [ idx print::spacing#0 print::str#1 print::c#2 ] ( main:3::print:20 [ idx print::spacing#0 print::str#1 print::c#2 ] { } main:3::print:24 [ idx print::spacing#0 print::str#1 print::c#2 ] { } ) always clobbers reg byte a reg byte y -Statement [18] stackpush(byte*) = main::str [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a -Statement [19] stackpush(byte) = 1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [18] stackpush(char *) = main::str [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [19] stackpush(char) = 1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(3) always clobbers reg byte a reg byte x -Statement [22] stackpush(byte*) = main::str1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a -Statement [23] stackpush(byte) = 2 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [22] stackpush(char *) = main::str1 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a +Statement [23] stackpush(char) = 2 [ idx ] ( main:3 [ idx ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(3) always clobbers reg byte a reg byte x Potential registers zp[2]:2 [ print::str#2 print::str#0 print::str#1 ] : zp[2]:2 , Potential registers zp[1]:4 [ print::c#2 print::c#1 ] : zp[1]:4 , reg byte x , @@ -346,19 +346,19 @@ __start: { rts } // print -// print(byte* zp(2) str, byte zp(5) spacing) +// void print(__zp(2) char *str, __zp(5) char spacing) print: { .const OFFSET_STACK_STR = 1 .const OFFSET_STACK_SPACING = 0 .label str = 2 .label spacing = 5 - // [5] print::str#0 = stackidx(byte*,print::OFFSET_STACK_STR) -- pbuz1=_stackidxptr_vbuc1 + // [5] print::str#0 = stackidx(char *,print::OFFSET_STACK_STR) -- pbuz1=_stackidxptr_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_STR,x sta.z str lda STACK_BASE+OFFSET_STACK_STR+1,x sta.z str+1 - // [6] print::spacing#0 = stackidx(byte,print::OFFSET_STACK_SPACING) -- vbuz1=_stackidxbyte_vbuc1 + // [6] print::spacing#0 = stackidx(char,print::OFFSET_STACK_SPACING) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_SPACING,x sta.z spacing @@ -421,13 +421,13 @@ print: { } // main main: { - // [18] stackpush(byte*) = main::str -- _stackpushptr_=pbuc1 + // [18] stackpush(char *) = main::str -- _stackpushptr_=pbuc1 // Print "hello" lda #>str pha lda #str1 pha lda #str pha lda #str1 pha lda #$1234 pha lda #<$1234 pha - // [6] stackpush(word) = $2345 -- _stackpushword_=vwuc1 + // [6] stackpush(unsigned int) = $2345 -- _stackpushword_=vwuc1 lda #>$2345 pha lda #<$2345 @@ -267,7 +267,7 @@ main: { // sideeffect stackpullbytes(2) -- _stackpullbyte_2 pla pla - // [9] main::$0 = stackpull(word) -- vwuz1=_stackpullword_ + // [9] main::$0 = stackpull(unsigned int) -- vwuz1=_stackpullword_ pla sta.z __0 pla @@ -294,20 +294,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant unsigned int * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -word~ main::$0 zp[2]:4 4.0 -__stackcall word plus(word plus::a , word plus::b) -constant byte plus::OFFSET_STACK_A = 2 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_2 = 2 -word plus::a -word plus::a#0 a zp[2]:4 11.0 -word plus::b -word plus::b#0 b zp[2]:2 22.0 -word plus::return -word plus::return#0 return zp[2]:4 22.0 +unsigned int main::$0 // zp[2]:4 4.0 +__stackcall unsigned int plus(unsigned int a , unsigned int b) +__constant char plus::OFFSET_STACK_A = 2 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_2 = 2 +unsigned int plus::a +unsigned int plus::a#0 // a zp[2]:4 11.0 +unsigned int plus::b +unsigned int plus::b#0 // b zp[2]:2 22.0 +unsigned int plus::return +unsigned int plus::return#0 // return zp[2]:4 22.0 zp[2]:2 [ plus::b#0 ] zp[2]:4 [ main::$0 plus::a#0 plus::return#0 ] @@ -332,7 +332,7 @@ Score: 146 .label SCREEN = $400 .segment Code // plus -// plus(word zp(4) a, word zp(2) b) +// __zp(4) unsigned int plus(__zp(4) unsigned int a, __zp(2) unsigned int b) plus: { .const OFFSET_STACK_A = 2 .const OFFSET_STACK_B = 0 @@ -340,13 +340,13 @@ plus: { .label a = 4 .label b = 2 .label return = 4 - // [0] plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) -- vwuz1=_stackidxword_vbuc1 + // [0] plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) -- vwuz1=_stackidxword_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a lda STACK_BASE+OFFSET_STACK_A+1,x sta.z a+1 - // [1] plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) -- vwuz1=_stackidxword_vbuc1 + // [1] plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) -- vwuz1=_stackidxword_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x sta.z b @@ -363,7 +363,7 @@ plus: { sta.z return+1 // plus::@return // } - // [3] stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#0 -- _stackidxword_vbuc1=vwuz1 + // [3] stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#0 -- _stackidxword_vbuc1=vwuz1 tsx lda.z return sta STACK_BASE+OFFSET_STACK_RETURN_2,x @@ -376,12 +376,12 @@ plus: { main: { .label __0 = 4 // plus(0x1234, 0x2345) - // [5] stackpush(word) = $1234 -- _stackpushword_=vwuc1 + // [5] stackpush(unsigned int) = $1234 -- _stackpushword_=vwuc1 lda #>$1234 pha lda #<$1234 pha - // [6] stackpush(word) = $2345 -- _stackpushword_=vwuc1 + // [6] stackpush(unsigned int) = $2345 -- _stackpushword_=vwuc1 lda #>$2345 pha lda #<$2345 @@ -391,7 +391,7 @@ main: { // sideeffect stackpullbytes(2) -- _stackpullbyte_2 pla pla - // [9] main::$0 = stackpull(word) -- vwuz1=_stackpullword_ + // [9] main::$0 = stackpull(unsigned int) -- vwuz1=_stackpullword_ pla sta.z __0 pla diff --git a/src/test/ref/procedure-callingconvention-stack-2.sym b/src/test/ref/procedure-callingconvention-stack-2.sym index 266a44da6..204491f42 100644 --- a/src/test/ref/procedure-callingconvention-stack-2.sym +++ b/src/test/ref/procedure-callingconvention-stack-2.sym @@ -1,17 +1,17 @@ -constant word* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant unsigned int * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -word~ main::$0 zp[2]:4 4.0 -__stackcall word plus(word plus::a , word plus::b) -constant byte plus::OFFSET_STACK_A = 2 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_2 = 2 -word plus::a -word plus::a#0 a zp[2]:4 11.0 -word plus::b -word plus::b#0 b zp[2]:2 22.0 -word plus::return -word plus::return#0 return zp[2]:4 22.0 +unsigned int main::$0 // zp[2]:4 4.0 +__stackcall unsigned int plus(unsigned int a , unsigned int b) +__constant char plus::OFFSET_STACK_A = 2 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_2 = 2 +unsigned int plus::a +unsigned int plus::a#0 // a zp[2]:4 11.0 +unsigned int plus::b +unsigned int plus::b#0 // b zp[2]:2 22.0 +unsigned int plus::return +unsigned int plus::return#0 // return zp[2]:4 22.0 zp[2]:2 [ plus::b#0 ] zp[2]:4 [ main::$0 plus::a#0 plus::return#0 ] diff --git a/src/test/ref/procedure-callingconvention-stack-3.asm b/src/test/ref/procedure-callingconvention-stack-3.asm index 13b77bda0..ed51ff60b 100644 --- a/src/test/ref/procedure-callingconvention-stack-3.asm +++ b/src/test/ref/procedure-callingconvention-stack-3.asm @@ -13,7 +13,7 @@ .const STACK_BASE = $103 .label SCREEN = $400 .segment Code -// plus(word zp(4) a, word zp(2) b) +// __zp(4) unsigned int plus(__zp(4) unsigned int a, __zp(2) unsigned int b) plus: { .const OFFSET_STACK_A = 2 .const OFFSET_STACK_B = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-3.cfg b/src/test/ref/procedure-callingconvention-stack-3.cfg index 281f6718a..5721052bf 100644 --- a/src/test/ref/procedure-callingconvention-stack-3.cfg +++ b/src/test/ref/procedure-callingconvention-stack-3.cfg @@ -1,22 +1,22 @@ -__stackcall word plus(word plus::a , word plus::b) +__stackcall unsigned int plus(unsigned int a , unsigned int b) plus: scope:[plus] from - [0] plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) - [1] plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) + [0] plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) + [1] plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) [2] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [3] stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#0 + [3] stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#0 [4] return to:@return void main() main: scope:[main] from - [5] stackpush(word) = '0' - [6] stackpush(word) = 7 + [5] stackpush(unsigned int) = '0' + [6] stackpush(unsigned int) = 7 [7] callexecute plus sideeffect stackpullbytes(2) - [9] main::$0 = stackpull(word) + [9] main::$0 = stackpull(unsigned int) [10] *SCREEN = main::$0 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/procedure-callingconvention-stack-3.log b/src/test/ref/procedure-callingconvention-stack-3.log index 378144c9c..a8aeb45db 100644 --- a/src/test/ref/procedure-callingconvention-stack-3.log +++ b/src/test/ref/procedure-callingconvention-stack-3.log @@ -1,39 +1,39 @@ Adding parameter assignment in __stackcall procedure plus::b = param(plus::b) Adding parameter assignment in __stackcall procedure plus::a = param(plus::a) Calling convention __stackcall adding prepare/execute/finalize for main::$0 = call plus('0', 7) -Calling convention STACK_CALL replacing param(plus::a) with stackidx(word,plus::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(plus::b) with stackidx(word,plus::OFFSET_STACK_B) -Calling convention STACK_CALL adding stack return stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return -Calling convention STACK_CALL adding stack pull main::$0 = stackpull(word) -Calling convention STACK_CALL adding stack push stackpush(word) = '0' -Calling convention STACK_CALL adding stack push stackpush(word) = 7 +Calling convention STACK_CALL replacing param(plus::a) with stackidx(unsigned int,plus::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(plus::b) with stackidx(unsigned int,plus::OFFSET_STACK_B) +Calling convention STACK_CALL adding stack return stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return +Calling convention STACK_CALL adding stack pull main::$0 = stackpull(unsigned int) +Calling convention STACK_CALL adding stack push stackpush(unsigned int) = '0' +Calling convention STACK_CALL adding stack push stackpush(unsigned int) = 7 CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - stackpush(word) = '0' - stackpush(word) = 7 + stackpush(unsigned int) = '0' + stackpush(unsigned int) = 7 callexecute plus sideeffect stackpullbytes(2) - main::$0 = stackpull(word) - main::$1 = 0 * SIZEOF_WORD + main::$0 = stackpull(unsigned int) + main::$1 = 0 * SIZEOF_UNSIGNED_INT SCREEN[main::$1] = main::$0 to:main::@return main::@return: scope:[main] from main return to:@return -__stackcall word plus(word plus::a , word plus::b) +__stackcall unsigned int plus(unsigned int a , unsigned int b) plus: scope:[plus] from - plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) - plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) + plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) + plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) plus::$0 = plus::a#0 + plus::b#0 plus::return#0 = plus::$0 to:plus::@return plus::@return: scope:[plus] from plus plus::return#1 = phi( plus/plus::return#0 ) - stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#1 + stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#1 return to:@return @@ -48,59 +48,59 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant word* const SCREEN = (byte*)$400 -constant byte SIZEOF_WORD = 2 -constant word STACK_BASE = $103 +__constant unsigned int * const SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant unsigned int STACK_BASE = $103 void __start() void main() -word~ main::$0 -number~ main::$1 -__stackcall word plus(word plus::a , word plus::b) -word~ plus::$0 -constant byte plus::OFFSET_STACK_A = 2 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_2 = 2 -word plus::a -word plus::a#0 -word plus::b -word plus::b#0 -word plus::return -word plus::return#0 -word plus::return#1 +unsigned int main::$0 +number main::$1 +__stackcall unsigned int plus(unsigned int a , unsigned int b) +unsigned int plus::$0 +__constant char plus::OFFSET_STACK_A = 2 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_2 = 2 +unsigned int plus::a +unsigned int plus::a#0 +unsigned int plus::b +unsigned int plus::b#0 +unsigned int plus::return +unsigned int plus::return#0 +unsigned int plus::return#1 -Adding number conversion cast (unumber) 7 in stackpush(word) = 7 -Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 7 in stackpush(unsigned int) = 7 +Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast stackpush(word) = (unumber)7 +Inlining cast stackpush(unsigned int) = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = 0 * SIZEOF_WORD +Inferred type updated to char in main::$1 = 0 * SIZEOF_UNSIGNED_INT Alias plus::return#0 = plus::$0 plus::return#1 Successful SSA optimization Pass2AliasElimination -Constant right-side identified [5] main::$1 = 0 * SIZEOF_WORD +Constant right-side identified [5] main::$1 = 0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$1 = 0*SIZEOF_WORD +Constant main::$1 = 0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero SCREEN in [6] SCREEN[main::$1] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$1 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to plus:7 @@ -110,24 +110,24 @@ Coalesced down to 0 phi equivalence classes FINAL CONTROL FLOW GRAPH -__stackcall word plus(word plus::a , word plus::b) +__stackcall unsigned int plus(unsigned int a , unsigned int b) plus: scope:[plus] from - [0] plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) - [1] plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) + [0] plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) + [1] plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) [2] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [3] stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#0 + [3] stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#0 [4] return to:@return void main() main: scope:[main] from - [5] stackpush(word) = '0' - [6] stackpush(word) = 7 + [5] stackpush(unsigned int) = '0' + [6] stackpush(unsigned int) = 7 [7] callexecute plus sideeffect stackpullbytes(2) - [9] main::$0 = stackpull(word) + [9] main::$0 = stackpull(unsigned int) [10] *SCREEN = main::$0 to:main::@return main::@return: scope:[main] from main @@ -137,14 +137,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -word~ main::$0 4.0 -__stackcall word plus(word plus::a , word plus::b) -word plus::a -word plus::a#0 11.0 -word plus::b -word plus::b#0 22.0 -word plus::return -word plus::return#0 22.0 +unsigned int main::$0 // 4.0 +__stackcall unsigned int plus(unsigned int a , unsigned int b) +unsigned int plus::a +unsigned int plus::a#0 // 11.0 +unsigned int plus::b +unsigned int plus::b#0 // 22.0 +unsigned int plus::return +unsigned int plus::return#0 // 22.0 Initial phi equivalence classes Added variable plus::a#0 to live range equivalence class [ plus::a#0 ] @@ -161,14 +161,14 @@ Allocated zp[2]:4 [ plus::b#0 ] Allocated zp[2]:6 [ plus::return#0 ] Allocated zp[2]:8 [ main::$0 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [1] plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [0] plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) [ plus::a#0 ] ( plus:7 [ plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [1] plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) [ plus::a#0 plus::b#0 ] ( plus:7 [ plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Statement [2] plus::return#0 = plus::a#0 + plus::b#0 [ plus::return#0 ] ( plus:7 [ plus::return#0 ] { } ) always clobbers reg byte a -Statement [3] stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte a reg byte x -Statement [5] stackpush(word) = '0' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] stackpush(word) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#0 [ ] ( plus:7 [ ] { } ) always clobbers reg byte a reg byte x +Statement [5] stackpush(unsigned int) = '0' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] stackpush(unsigned int) = 7 [ ] ( [ ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(2) always clobbers reg byte a -Statement [9] main::$0 = stackpull(word) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a +Statement [9] main::$0 = stackpull(unsigned int) [ main::$0 ] ( [ main::$0 ] { } ) always clobbers reg byte a Statement [10] *SCREEN = main::$0 [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ plus::a#0 ] : zp[2]:2 , Potential registers zp[2]:4 [ plus::b#0 ] : zp[2]:4 , @@ -208,7 +208,7 @@ ASSEMBLER BEFORE OPTIMIZATION .label SCREEN = $400 .segment Code // plus -// plus(word zp(4) a, word zp(2) b) +// __zp(4) unsigned int plus(__zp(4) unsigned int a, __zp(2) unsigned int b) plus: { .const OFFSET_STACK_A = 2 .const OFFSET_STACK_B = 0 @@ -216,13 +216,13 @@ plus: { .label a = 4 .label b = 2 .label return = 4 - // [0] plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) -- vwuz1=_stackidxword_vbuc1 + // [0] plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) -- vwuz1=_stackidxword_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a lda STACK_BASE+OFFSET_STACK_A+1,x sta.z a+1 - // [1] plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) -- vwuz1=_stackidxword_vbuc1 + // [1] plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) -- vwuz1=_stackidxword_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x sta.z b @@ -239,7 +239,7 @@ plus: { jmp __breturn // plus::@return __breturn: - // [3] stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#0 -- _stackidxword_vbuc1=vwuz1 + // [3] stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#0 -- _stackidxword_vbuc1=vwuz1 tsx lda.z return sta STACK_BASE+OFFSET_STACK_RETURN_2,x @@ -251,12 +251,12 @@ plus: { // main main: { .label __0 = 4 - // [5] stackpush(word) = '0' -- _stackpushword_=vbuc1 + // [5] stackpush(unsigned int) = '0' -- _stackpushword_=vbuc1 lda #0 pha lda #<'0' pha - // [6] stackpush(word) = 7 -- _stackpushword_=vbuc1 + // [6] stackpush(unsigned int) = 7 -- _stackpushword_=vbuc1 lda #0 pha lda #<7 @@ -266,7 +266,7 @@ main: { // sideeffect stackpullbytes(2) -- _stackpullbyte_2 pla pla - // [9] main::$0 = stackpull(word) -- vwuz1=_stackpullword_ + // [9] main::$0 = stackpull(unsigned int) -- vwuz1=_stackpullword_ pla sta.z __0 pla @@ -293,20 +293,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant word* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant unsigned int * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -word~ main::$0 zp[2]:4 4.0 -__stackcall word plus(word plus::a , word plus::b) -constant byte plus::OFFSET_STACK_A = 2 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_2 = 2 -word plus::a -word plus::a#0 a zp[2]:4 11.0 -word plus::b -word plus::b#0 b zp[2]:2 22.0 -word plus::return -word plus::return#0 return zp[2]:4 22.0 +unsigned int main::$0 // zp[2]:4 4.0 +__stackcall unsigned int plus(unsigned int a , unsigned int b) +__constant char plus::OFFSET_STACK_A = 2 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_2 = 2 +unsigned int plus::a +unsigned int plus::a#0 // a zp[2]:4 11.0 +unsigned int plus::b +unsigned int plus::b#0 // b zp[2]:2 22.0 +unsigned int plus::return +unsigned int plus::return#0 // return zp[2]:4 22.0 zp[2]:2 [ plus::b#0 ] zp[2]:4 [ main::$0 plus::a#0 plus::return#0 ] @@ -334,7 +334,7 @@ Score: 146 .label SCREEN = $400 .segment Code // plus -// plus(word zp(4) a, word zp(2) b) +// __zp(4) unsigned int plus(__zp(4) unsigned int a, __zp(2) unsigned int b) plus: { .const OFFSET_STACK_A = 2 .const OFFSET_STACK_B = 0 @@ -342,13 +342,13 @@ plus: { .label a = 4 .label b = 2 .label return = 4 - // [0] plus::a#0 = stackidx(word,plus::OFFSET_STACK_A) -- vwuz1=_stackidxword_vbuc1 + // [0] plus::a#0 = stackidx(unsigned int,plus::OFFSET_STACK_A) -- vwuz1=_stackidxword_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a lda STACK_BASE+OFFSET_STACK_A+1,x sta.z a+1 - // [1] plus::b#0 = stackidx(word,plus::OFFSET_STACK_B) -- vwuz1=_stackidxword_vbuc1 + // [1] plus::b#0 = stackidx(unsigned int,plus::OFFSET_STACK_B) -- vwuz1=_stackidxword_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x sta.z b @@ -365,7 +365,7 @@ plus: { sta.z return+1 // plus::@return // } - // [3] stackidx(word,plus::OFFSET_STACK_RETURN_2) = plus::return#0 -- _stackidxword_vbuc1=vwuz1 + // [3] stackidx(unsigned int,plus::OFFSET_STACK_RETURN_2) = plus::return#0 -- _stackidxword_vbuc1=vwuz1 tsx lda.z return sta STACK_BASE+OFFSET_STACK_RETURN_2,x @@ -378,12 +378,12 @@ plus: { main: { .label __0 = 4 // plus('0', 7) - // [5] stackpush(word) = '0' -- _stackpushword_=vbuc1 + // [5] stackpush(unsigned int) = '0' -- _stackpushword_=vbuc1 lda #0 pha lda #<'0' pha - // [6] stackpush(word) = 7 -- _stackpushword_=vbuc1 + // [6] stackpush(unsigned int) = 7 -- _stackpushword_=vbuc1 lda #0 pha lda #<7 @@ -393,7 +393,7 @@ main: { // sideeffect stackpullbytes(2) -- _stackpullbyte_2 pla pla - // [9] main::$0 = stackpull(word) -- vwuz1=_stackpullword_ + // [9] main::$0 = stackpull(unsigned int) -- vwuz1=_stackpullword_ pla sta.z __0 pla diff --git a/src/test/ref/procedure-callingconvention-stack-3.sym b/src/test/ref/procedure-callingconvention-stack-3.sym index 266a44da6..204491f42 100644 --- a/src/test/ref/procedure-callingconvention-stack-3.sym +++ b/src/test/ref/procedure-callingconvention-stack-3.sym @@ -1,17 +1,17 @@ -constant word* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant unsigned int * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void main() -word~ main::$0 zp[2]:4 4.0 -__stackcall word plus(word plus::a , word plus::b) -constant byte plus::OFFSET_STACK_A = 2 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_2 = 2 -word plus::a -word plus::a#0 a zp[2]:4 11.0 -word plus::b -word plus::b#0 b zp[2]:2 22.0 -word plus::return -word plus::return#0 return zp[2]:4 22.0 +unsigned int main::$0 // zp[2]:4 4.0 +__stackcall unsigned int plus(unsigned int a , unsigned int b) +__constant char plus::OFFSET_STACK_A = 2 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_2 = 2 +unsigned int plus::a +unsigned int plus::a#0 // a zp[2]:4 11.0 +unsigned int plus::b +unsigned int plus::b#0 // b zp[2]:2 22.0 +unsigned int plus::return +unsigned int plus::return#0 // return zp[2]:4 22.0 zp[2]:2 [ plus::b#0 ] zp[2]:4 [ main::$0 plus::a#0 plus::return#0 ] diff --git a/src/test/ref/procedure-callingconvention-stack-4.asm b/src/test/ref/procedure-callingconvention-stack-4.asm index 39728b9a8..7eb366b14 100644 --- a/src/test/ref/procedure-callingconvention-stack-4.asm +++ b/src/test/ref/procedure-callingconvention-stack-4.asm @@ -19,7 +19,7 @@ __start: { jsr main rts } -// plus(byte zp(4) a, byte register(A) b) +// __register(A) char plus(__zp(4) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 diff --git a/src/test/ref/procedure-callingconvention-stack-4.cfg b/src/test/ref/procedure-callingconvention-stack-4.cfg index 720a4740b..7d47c6530 100644 --- a/src/test/ref/procedure-callingconvention-stack-4.cfg +++ b/src/test/ref/procedure-callingconvention-stack-4.cfg @@ -8,21 +8,21 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - [5] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - [6] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + [5] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + [6] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [7] i = ++ i [8] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [9] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 + [9] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [10] return to:@return @@ -33,11 +33,11 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@1 [12] main::a#2 = phi( main/0, main::@1/main::a#1 ) [13] main::v#0 = main::a#2 + 1 - [14] stackpush(byte) = '0' - [15] stackpush(byte) = main::v#0 + [14] stackpush(char) = '0' + [15] stackpush(char) = main::v#0 [16] callexecute plus sideeffect stackpullbytes(1) - [18] main::w#0 = stackpull(byte) + [18] main::w#0 = stackpull(char) [19] main::$2 = main::w#0 + main::a#2 [20] SCREEN[i] = main::$2 [21] main::a#1 = ++ main::a#2 diff --git a/src/test/ref/procedure-callingconvention-stack-4.log b/src/test/ref/procedure-callingconvention-stack-4.log index 9008ced6c..a7f4ab3aa 100644 --- a/src/test/ref/procedure-callingconvention-stack-4.log +++ b/src/test/ref/procedure-callingconvention-stack-4.log @@ -5,12 +5,12 @@ Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 Calling convention __stackcall adding prepare/execute/finalize for main::w = call plus('0', main::v) -Calling convention STACK_CALL replacing param(plus::a) with stackidx(byte,plus::OFFSET_STACK_A) -Calling convention STACK_CALL replacing param(plus::b) with stackidx(byte,plus::OFFSET_STACK_B) -Calling convention STACK_CALL adding stack return stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return -Calling convention STACK_CALL adding stack pull main::w = stackpull(byte) -Calling convention STACK_CALL adding stack push stackpush(byte) = '0' -Calling convention STACK_CALL adding stack push stackpush(byte) = main::v +Calling convention STACK_CALL replacing param(plus::a) with stackidx(char,plus::OFFSET_STACK_A) +Calling convention STACK_CALL replacing param(plus::b) with stackidx(char,plus::OFFSET_STACK_B) +Calling convention STACK_CALL adding stack return stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return +Calling convention STACK_CALL adding stack pull main::w = stackpull(char) +Calling convention STACK_CALL adding stack push stackpush(char) = '0' +Calling convention STACK_CALL adding stack push stackpush(char) = main::v CONTROL FLOW GRAPH SSA @@ -21,11 +21,11 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@1 main::a#2 = phi( main/main::a#0, main::@1/main::a#1 ) main::v#0 = main::a#2 + 1 - stackpush(byte) = '0' - stackpush(byte) = main::v#0 + stackpush(char) = '0' + stackpush(char) = main::v#0 callexecute plus sideeffect stackpullbytes(1) - main::w#0 = stackpull(byte) + main::w#0 = stackpull(char) main::$2 = main::w#0 + main::a#2 SCREEN[i] = main::$2 main::a#1 = main::a#2 + rangenext(0,1) @@ -36,17 +36,17 @@ main::@return: scope:[main] from main::@1 return to:@return -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) i = ++ i plus::$0 = plus::a#0 + plus::b#0 plus::return#0 = plus::$0 to:plus::@return plus::@return: scope:[plus] from plus plus::return#1 = phi( plus/plus::return#0 ) - stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#1 + stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#1 return to:@return @@ -66,40 +66,40 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *)$400 +__constant unsigned int STACK_BASE = $103 void __start() -byte i loadstore +__loadstore char i void main() -byte~ main::$2 -bool~ main::$3 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::v -byte main::v#0 -byte main::w -byte main::w#0 -__stackcall byte plus(byte plus::a , byte plus::b) -byte~ plus::$0 -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 -byte plus::b -byte plus::b#0 -byte plus::return -byte plus::return#0 -byte plus::return#1 +char main::$2 +bool main::$3 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::v +char main::v#0 +char main::w +char main::w#0 +__stackcall char plus(char a , char b) +char plus::$0 +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 +char plus::b +char plus::b#0 +char plus::return +char plus::return#0 +char plus::return#1 Adding number conversion cast (unumber) 1 in main::v#0 = main::a#2 + 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias plus::return#0 = plus::$0 plus::return#1 Successful SSA optimization Pass2AliasElimination @@ -113,12 +113,12 @@ Adding number conversion cast (unumber) 2 in if(main::a#1!=2) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::a#0 Constant inlined main::a#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of __start @@ -155,15 +155,15 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall byte plus(byte plus::a , byte plus::b) +__stackcall char plus(char a , char b) plus: scope:[plus] from - [5] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) - [6] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) + [5] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) + [6] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [7] i = ++ i [8] plus::return#0 = plus::a#0 + plus::b#0 to:plus::@return plus::@return: scope:[plus] from plus - [9] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 + [9] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [10] return to:@return @@ -174,11 +174,11 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@1 [12] main::a#2 = phi( main/0, main::@1/main::a#1 ) [13] main::v#0 = main::a#2 + 1 - [14] stackpush(byte) = '0' - [15] stackpush(byte) = main::v#0 + [14] stackpush(char) = '0' + [15] stackpush(char) = main::v#0 [16] callexecute plus sideeffect stackpullbytes(1) - [18] main::w#0 = stackpull(byte) + [18] main::w#0 = stackpull(char) [19] main::$2 = main::w#0 + main::a#2 [20] SCREEN[i] = main::$2 [21] main::a#1 = ++ main::a#2 @@ -192,23 +192,23 @@ null depth in calling loop Loop head: main::@1 tails: main::@1 blocks: main::@1 VARIABLE REGISTER WEIGHTS void __start() -byte i loadstore 105.24999999999999 +__loadstore char i // 105.24999999999999 void main() -byte~ main::$2 202.0 -byte main::a -byte main::a#1 151.5 -byte main::a#2 44.888888888888886 -byte main::v -byte main::v#0 101.0 -byte main::w -byte main::w#0 202.0 -__stackcall byte plus(byte plus::a , byte plus::b) -byte plus::a -byte plus::a#0 667.3333333333334 -byte plus::b -byte plus::b#0 1001.0 -byte plus::return -byte plus::return#0 2002.0 +char main::$2 // 202.0 +char main::a +char main::a#1 // 151.5 +char main::a#2 // 44.888888888888886 +char main::v +char main::v#0 // 101.0 +char main::w +char main::w#0 // 202.0 +__stackcall char plus(char a , char b) +char plus::a +char plus::a#0 // 667.3333333333334 +char plus::b +char plus::b#0 // 1001.0 +char plus::return +char plus::return#0 // 2002.0 Initial phi equivalence classes [ main::a#2 main::a#1 ] @@ -238,32 +238,32 @@ Allocated zp[1]:8 [ main::w#0 ] Allocated zp[1]:9 [ main::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] i = 0 [ i ] ( [ i ] { } ) always clobbers reg byte a -Statement [5] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) [ i plus::a#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [5] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) [ i plus::a#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::a#2 main::a#1 ] Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::a#2 main::a#1 ] -Statement [6] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) [ i plus::a#0 plus::b#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [ i plus::a#0 plus::b#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte a as potential for zp[1]:4 [ plus::a#0 ] Removing always clobbered register reg byte x as potential for zp[1]:4 [ plus::a#0 ] Statement [8] plus::return#0 = plus::a#0 + plus::b#0 [ i plus::return#0 ] ( main:3::plus:16 [ main::a#2 i plus::return#0 ] { } ) always clobbers reg byte a -Statement [9] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ i ] ( main:3::plus:16 [ main::a#2 i ] { } ) always clobbers reg byte x -Statement [14] stackpush(byte) = '0' [ i main::a#2 main::v#0 ] ( main:3 [ i main::a#2 main::v#0 ] { } ) always clobbers reg byte a +Statement [9] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ i ] ( main:3::plus:16 [ main::a#2 i ] { } ) always clobbers reg byte x +Statement [14] stackpush(char) = '0' [ i main::a#2 main::v#0 ] ( main:3 [ i main::a#2 main::v#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::v#0 ] -Statement [15] stackpush(byte) = main::v#0 [ i main::a#2 ] ( main:3 [ i main::a#2 ] { } ) always clobbers reg byte a +Statement [15] stackpush(char) = main::v#0 [ i main::a#2 ] ( main:3 [ i main::a#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [18] main::w#0 = stackpull(byte) [ i main::a#2 main::w#0 ] ( main:3 [ i main::a#2 main::w#0 ] { } ) always clobbers reg byte a +Statement [18] main::w#0 = stackpull(char) [ i main::a#2 main::w#0 ] ( main:3 [ i main::a#2 main::w#0 ] { } ) always clobbers reg byte a Statement [19] main::$2 = main::w#0 + main::a#2 [ i main::a#2 main::$2 ] ( main:3 [ i main::a#2 main::$2 ] { } ) always clobbers reg byte a Statement [20] SCREEN[i] = main::$2 [ i main::a#2 ] ( main:3 [ i main::a#2 ] { } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::a#2 main::a#1 ] Statement [22] if(main::a#1!=2) goto main::@1 [ i main::a#1 ] ( main:3 [ i main::a#1 ] { } ) always clobbers reg byte a Statement [1] i = 0 [ i ] ( [ i ] { } ) always clobbers reg byte a -Statement [5] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) [ i plus::a#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 ] { } ) always clobbers reg byte a reg byte x -Statement [6] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) [ i plus::a#0 plus::b#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x +Statement [5] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) [ i plus::a#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 ] { } ) always clobbers reg byte a reg byte x +Statement [6] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) [ i plus::a#0 plus::b#0 ] ( main:3::plus:16 [ main::a#2 i plus::a#0 plus::b#0 ] { } ) always clobbers reg byte a reg byte x Statement [8] plus::return#0 = plus::a#0 + plus::b#0 [ i plus::return#0 ] ( main:3::plus:16 [ main::a#2 i plus::return#0 ] { } ) always clobbers reg byte a -Statement [9] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ i ] ( main:3::plus:16 [ main::a#2 i ] { } ) always clobbers reg byte x -Statement [14] stackpush(byte) = '0' [ i main::a#2 main::v#0 ] ( main:3 [ i main::a#2 main::v#0 ] { } ) always clobbers reg byte a -Statement [15] stackpush(byte) = main::v#0 [ i main::a#2 ] ( main:3 [ i main::a#2 ] { } ) always clobbers reg byte a +Statement [9] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 [ i ] ( main:3::plus:16 [ main::a#2 i ] { } ) always clobbers reg byte x +Statement [14] stackpush(char) = '0' [ i main::a#2 main::v#0 ] ( main:3 [ i main::a#2 main::v#0 ] { } ) always clobbers reg byte a +Statement [15] stackpush(char) = main::v#0 [ i main::a#2 ] ( main:3 [ i main::a#2 ] { } ) always clobbers reg byte a Statement sideeffect stackpullbytes(1) always clobbers reg byte a -Statement [18] main::w#0 = stackpull(byte) [ i main::a#2 main::w#0 ] ( main:3 [ i main::a#2 main::w#0 ] { } ) always clobbers reg byte a +Statement [18] main::w#0 = stackpull(char) [ i main::a#2 main::w#0 ] ( main:3 [ i main::a#2 main::w#0 ] { } ) always clobbers reg byte a Statement [19] main::$2 = main::w#0 + main::a#2 [ i main::a#2 main::$2 ] ( main:3 [ i main::a#2 main::$2 ] { } ) always clobbers reg byte a Statement [20] SCREEN[i] = main::$2 [ i main::a#2 ] ( main:3 [ i main::a#2 ] { } ) always clobbers reg byte y Statement [22] if(main::a#1!=2) goto main::@1 [ i main::a#1 ] ( main:3 [ i main::a#1 ] { } ) always clobbers reg byte a @@ -335,17 +335,17 @@ __start: { rts } // plus -// plus(byte zp(4) a, byte register(A) b) +// __register(A) char plus(__zp(4) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = 4 - // [5] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [5] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [6] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [6] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // [7] i = ++ i -- vbuz1=_inc_vbuz1 @@ -356,7 +356,7 @@ plus: { jmp __breturn // plus::@return __breturn: - // [9] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [9] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [10] return @@ -380,17 +380,17 @@ main: { // [13] main::v#0 = main::a#2 + 1 -- vbuxx=vbuz1_plus_1 ldx.z a inx - // [14] stackpush(byte) = '0' -- _stackpushbyte_=vbuc1 + // [14] stackpush(char) = '0' -- _stackpushbyte_=vbuc1 lda #'0' pha - // [15] stackpush(byte) = main::v#0 -- _stackpushbyte_=vbuxx + // [15] stackpush(char) = main::v#0 -- _stackpushbyte_=vbuxx txa pha // [16] callexecute plus -- call_vprc1 jsr plus // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [18] main::w#0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [18] main::w#0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // [19] main::$2 = main::w#0 + main::a#2 -- vbuaa=vbuaa_plus_vbuz1 clc @@ -436,29 +436,29 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void __start() -byte i loadstore zp[1]:3 105.24999999999999 +__loadstore char i // zp[1]:3 105.24999999999999 void main() -byte~ main::$2 reg byte a 202.0 -byte main::a -byte main::a#1 a zp[1]:2 151.5 -byte main::a#2 a zp[1]:2 44.888888888888886 -byte main::v -byte main::v#0 reg byte x 101.0 -byte main::w -byte main::w#0 reg byte a 202.0 -__stackcall byte plus(byte plus::a , byte plus::b) -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 a zp[1]:4 667.3333333333334 -byte plus::b -byte plus::b#0 reg byte a 1001.0 -byte plus::return -byte plus::return#0 reg byte a 2002.0 +char main::$2 // reg byte a 202.0 +char main::a +char main::a#1 // a zp[1]:2 151.5 +char main::a#2 // a zp[1]:2 44.888888888888886 +char main::v +char main::v#0 // reg byte x 101.0 +char main::w +char main::w#0 // reg byte a 202.0 +__stackcall char plus(char a , char b) +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 // a zp[1]:4 667.3333333333334 +char plus::b +char plus::b#0 // reg byte a 1001.0 +char plus::return +char plus::return#0 // reg byte a 2002.0 zp[1]:2 [ main::a#2 main::a#1 ] zp[1]:3 [ i ] @@ -507,17 +507,17 @@ __start: { rts } // plus -// plus(byte zp(4) a, byte register(A) b) +// __register(A) char plus(__zp(4) char a, __register(A) char b) plus: { .const OFFSET_STACK_A = 1 .const OFFSET_STACK_B = 0 .const OFFSET_STACK_RETURN_1 = 1 .label a = 4 - // [5] plus::a#0 = stackidx(byte,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 + // [5] plus::a#0 = stackidx(char,plus::OFFSET_STACK_A) -- vbuz1=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_A,x sta.z a - // [6] plus::b#0 = stackidx(byte,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 + // [6] plus::b#0 = stackidx(char,plus::OFFSET_STACK_B) -- vbuaa=_stackidxbyte_vbuc1 tsx lda STACK_BASE+OFFSET_STACK_B,x // i++; @@ -529,7 +529,7 @@ plus: { adc.z a // plus::@return // } - // [9] stackidx(byte,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa + // [9] stackidx(char,plus::OFFSET_STACK_RETURN_1) = plus::return#0 -- _stackidxbyte_vbuc1=vbuaa tsx sta STACK_BASE+OFFSET_STACK_RETURN_1,x // [10] return @@ -551,17 +551,17 @@ main: { ldx.z a inx // char w = plus('0', v) - // [14] stackpush(byte) = '0' -- _stackpushbyte_=vbuc1 + // [14] stackpush(char) = '0' -- _stackpushbyte_=vbuc1 lda #'0' pha - // [15] stackpush(byte) = main::v#0 -- _stackpushbyte_=vbuxx + // [15] stackpush(char) = main::v#0 -- _stackpushbyte_=vbuxx txa pha // [16] callexecute plus -- call_vprc1 jsr plus // sideeffect stackpullbytes(1) -- _stackpullbyte_1 pla - // [18] main::w#0 = stackpull(byte) -- vbuaa=_stackpullbyte_ + // [18] main::w#0 = stackpull(char) -- vbuaa=_stackpullbyte_ pla // w+a // [19] main::$2 = main::w#0 + main::a#2 -- vbuaa=vbuaa_plus_vbuz1 diff --git a/src/test/ref/procedure-callingconvention-stack-4.sym b/src/test/ref/procedure-callingconvention-stack-4.sym index f133e09d8..a72f47bab 100644 --- a/src/test/ref/procedure-callingconvention-stack-4.sym +++ b/src/test/ref/procedure-callingconvention-stack-4.sym @@ -1,26 +1,26 @@ -constant byte* const SCREEN = (byte*) 1024 -constant word STACK_BASE = $103 +__constant char * const SCREEN = (char *) 1024 +__constant unsigned int STACK_BASE = $103 void __start() -byte i loadstore zp[1]:3 105.24999999999999 +__loadstore char i // zp[1]:3 105.24999999999999 void main() -byte~ main::$2 reg byte a 202.0 -byte main::a -byte main::a#1 a zp[1]:2 151.5 -byte main::a#2 a zp[1]:2 44.888888888888886 -byte main::v -byte main::v#0 reg byte x 101.0 -byte main::w -byte main::w#0 reg byte a 202.0 -__stackcall byte plus(byte plus::a , byte plus::b) -constant byte plus::OFFSET_STACK_A = 1 -constant byte plus::OFFSET_STACK_B = 0 -constant byte plus::OFFSET_STACK_RETURN_1 = 1 -byte plus::a -byte plus::a#0 a zp[1]:4 667.3333333333334 -byte plus::b -byte plus::b#0 reg byte a 1001.0 -byte plus::return -byte plus::return#0 reg byte a 2002.0 +char main::$2 // reg byte a 202.0 +char main::a +char main::a#1 // a zp[1]:2 151.5 +char main::a#2 // a zp[1]:2 44.888888888888886 +char main::v +char main::v#0 // reg byte x 101.0 +char main::w +char main::w#0 // reg byte a 202.0 +__stackcall char plus(char a , char b) +__constant char plus::OFFSET_STACK_A = 1 +__constant char plus::OFFSET_STACK_B = 0 +__constant char plus::OFFSET_STACK_RETURN_1 = 1 +char plus::a +char plus::a#0 // a zp[1]:4 667.3333333333334 +char plus::b +char plus::b#0 // reg byte a 1001.0 +char plus::return +char plus::return#0 // reg byte a 2002.0 zp[1]:2 [ main::a#2 main::a#1 ] zp[1]:3 [ i ] diff --git a/src/test/ref/procedure-callingconvention-stack-5.asm b/src/test/ref/procedure-callingconvention-stack-5.asm index 6161a5d75..c7bff831c 100644 --- a/src/test/ref/procedure-callingconvention-stack-5.asm +++ b/src/test/ref/procedure-callingconvention-stack-5.asm @@ -8,7 +8,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .const STACK_BASE = $103 .label SCREEN = $400 .label current = 4 @@ -68,9 +68,9 @@ main: { sta.z __1+1 // SCREEN[1] = next() lda.z __1 - sta SCREEN+1*SIZEOF_SIGNED_WORD + sta SCREEN+1*SIZEOF_INT lda.z __1+1 - sta SCREEN+1*SIZEOF_SIGNED_WORD+1 + sta SCREEN+1*SIZEOF_INT+1 // } rts } diff --git a/src/test/ref/procedure-callingconvention-stack-5.cfg b/src/test/ref/procedure-callingconvention-stack-5.cfg index 45450ec17..b61b88077 100644 --- a/src/test/ref/procedure-callingconvention-stack-5.cfg +++ b/src/test/ref/procedure-callingconvention-stack-5.cfg @@ -8,19 +8,19 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall signed word next() +__stackcall int next() next: scope:[next] from [5] next::return#0 = current [6] current = ++ current to:next::@return next::@return: scope:[next] from next - [7] stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return#0 + [7] stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return#0 [8] return to:@return @@ -28,12 +28,12 @@ void main() main: scope:[main] from __start::@1 sideeffect stackpushbytes(2) [10] callexecute next - [11] main::$0 = stackpull(signed word) + [11] main::$0 = stackpull(int) [12] *SCREEN = main::$0 sideeffect stackpushbytes(2) [14] callexecute next - [15] main::$1 = stackpull(signed word) - [16] *(SCREEN+1*SIZEOF_SIGNED_WORD) = main::$1 + [15] main::$1 = stackpull(int) + [16] *(SCREEN+1*SIZEOF_INT) = main::$1 to:main::@return main::@return: scope:[main] from main [17] return diff --git a/src/test/ref/procedure-callingconvention-stack-5.log b/src/test/ref/procedure-callingconvention-stack-5.log index c68a1ef9e..8b344b112 100644 --- a/src/test/ref/procedure-callingconvention-stack-5.log +++ b/src/test/ref/procedure-callingconvention-stack-5.log @@ -2,9 +2,9 @@ Converting variable modified inside __stackcall procedure next() to load/store c Inlined call call __init Calling convention __stackcall adding prepare/execute/finalize for main::$0 = call next Calling convention __stackcall adding prepare/execute/finalize for main::$1 = call next -Calling convention STACK_CALL adding stack return stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return -Calling convention STACK_CALL adding stack pull main::$0 = stackpull(signed word) -Calling convention STACK_CALL adding stack pull main::$1 = stackpull(signed word) +Calling convention STACK_CALL adding stack return stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return +Calling convention STACK_CALL adding stack pull main::$0 = stackpull(int) +Calling convention STACK_CALL adding stack pull main::$1 = stackpull(int) CONTROL FLOW GRAPH SSA @@ -12,27 +12,27 @@ void main() main: scope:[main] from __start::@1 sideeffect stackpushbytes(2) callexecute next - main::$0 = stackpull(signed word) - main::$2 = 0 * SIZEOF_SIGNED_WORD + main::$0 = stackpull(int) + main::$2 = 0 * SIZEOF_INT SCREEN[main::$2] = main::$0 sideeffect stackpushbytes(2) callexecute next - main::$1 = stackpull(signed word) - main::$3 = 1 * SIZEOF_SIGNED_WORD + main::$1 = stackpull(int) + main::$3 = 1 * SIZEOF_INT SCREEN[main::$3] = main::$1 to:main::@return main::@return: scope:[main] from main return to:@return -__stackcall signed word next() +__stackcall int next() next: scope:[next] from next::return#0 = current current = ++ current to:next::@return next::@return: scope:[next] from next next::return#1 = phi( next/next::return#0 ) - stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return#1 + stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return#1 return to:@return @@ -52,56 +52,56 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant signed word* const SCREEN = (signed word*)$400 -constant byte SIZEOF_SIGNED_WORD = 2 -constant word STACK_BASE = $103 +__constant int * const SCREEN = (int *)$400 +__constant char SIZEOF_INT = 2 +__constant unsigned int STACK_BASE = $103 void __start() -signed word current loadstore +__loadstore int current void main() -signed word~ main::$0 -signed word~ main::$1 -number~ main::$2 -number~ main::$3 -__stackcall signed word next() -constant byte next::OFFSET_STACK_RETURN_0 = 0 -signed word next::return -signed word next::return#0 -signed word next::return#1 +int main::$0 +int main::$1 +number main::$2 +number main::$3 +__stackcall int next() +__constant char next::OFFSET_STACK_RETURN_0 = 0 +int next::return +int next::return#0 +int next::return#1 -Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_INT +Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_INT +Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_INT +Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 0 * SIZEOF_SIGNED_WORD -Inferred type updated to byte in main::$3 = 1 * SIZEOF_SIGNED_WORD +Inferred type updated to char in main::$2 = 0 * SIZEOF_INT +Inferred type updated to char in main::$3 = 1 * SIZEOF_INT Alias next::return#0 = next::return#1 Successful SSA optimization Pass2AliasElimination -Constant right-side identified [3] main::$2 = 0 * SIZEOF_SIGNED_WORD -Constant right-side identified [8] main::$3 = 1 * SIZEOF_SIGNED_WORD +Constant right-side identified [3] main::$2 = 0 * SIZEOF_INT +Constant right-side identified [8] main::$3 = 1 * SIZEOF_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$2 = 0*SIZEOF_SIGNED_WORD -Constant main::$3 = 1*SIZEOF_SIGNED_WORD +Constant main::$2 = 0*SIZEOF_INT +Constant main::$3 = 1*SIZEOF_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_SIGNED_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero SCREEN in [4] SCREEN[main::$2] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$2 Successful SSA optimization PassNEliminateUnusedVars -Constant inlined main::$3 = 1*SIZEOF_SIGNED_WORD +Constant inlined main::$3 = 1*SIZEOF_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(SCREEN+1*SIZEOF_SIGNED_WORD) +Consolidated array index constant in *(SCREEN+1*SIZEOF_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -133,13 +133,13 @@ __start::@return: scope:[__start] from __start::@1 [4] return to:@return -__stackcall signed word next() +__stackcall int next() next: scope:[next] from [5] next::return#0 = current [6] current = ++ current to:next::@return next::@return: scope:[next] from next - [7] stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return#0 + [7] stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return#0 [8] return to:@return @@ -147,12 +147,12 @@ void main() main: scope:[main] from __start::@1 sideeffect stackpushbytes(2) [10] callexecute next - [11] main::$0 = stackpull(signed word) + [11] main::$0 = stackpull(int) [12] *SCREEN = main::$0 sideeffect stackpushbytes(2) [14] callexecute next - [15] main::$1 = stackpull(signed word) - [16] *(SCREEN+1*SIZEOF_SIGNED_WORD) = main::$1 + [15] main::$1 = stackpull(int) + [16] *(SCREEN+1*SIZEOF_INT) = main::$1 to:main::@return main::@return: scope:[main] from main [17] return @@ -161,13 +161,13 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() -signed word current loadstore 27.727272727272727 +__loadstore int current // 27.727272727272727 void main() -signed word~ main::$0 22.0 -signed word~ main::$1 22.0 -__stackcall signed word next() -signed word next::return -signed word next::return#0 101.0 +int main::$0 // 22.0 +int main::$1 // 22.0 +__stackcall int next() +int next::return +int next::return#0 // 101.0 Initial phi equivalence classes Added variable current to live range equivalence class [ current ] @@ -186,11 +186,11 @@ Allocated zp[2]:8 [ main::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] current = $30 [ current ] ( [ current ] { } ) always clobbers reg byte a Statement [5] next::return#0 = current [ current next::return#0 ] ( main:3::next:10 [ current next::return#0 ] { } main:3::next:14 [ current next::return#0 ] { } ) always clobbers reg byte a -Statement [7] stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return#0 [ current ] ( main:3::next:10 [ current ] { } main:3::next:14 [ current ] { } ) always clobbers reg byte a reg byte x -Statement [11] main::$0 = stackpull(signed word) [ current main::$0 ] ( main:3 [ current main::$0 ] { } ) always clobbers reg byte a +Statement [7] stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return#0 [ current ] ( main:3::next:10 [ current ] { } main:3::next:14 [ current ] { } ) always clobbers reg byte a reg byte x +Statement [11] main::$0 = stackpull(int) [ current main::$0 ] ( main:3 [ current main::$0 ] { } ) always clobbers reg byte a Statement [12] *SCREEN = main::$0 [ current ] ( main:3 [ current ] { } ) always clobbers reg byte a -Statement [15] main::$1 = stackpull(signed word) [ main::$1 ] ( main:3 [ main::$1 ] { } ) always clobbers reg byte a -Statement [16] *(SCREEN+1*SIZEOF_SIGNED_WORD) = main::$1 [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [15] main::$1 = stackpull(int) [ main::$1 ] ( main:3 [ main::$1 ] { } ) always clobbers reg byte a +Statement [16] *(SCREEN+1*SIZEOF_INT) = main::$1 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ current ] : zp[2]:2 , Potential registers zp[2]:4 [ next::return#0 ] : zp[2]:4 , Potential registers zp[2]:6 [ main::$0 ] : zp[2]:6 , @@ -225,7 +225,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(__start) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .const STACK_BASE = $103 .label SCREEN = $400 .label current = 4 @@ -270,7 +270,7 @@ next: { jmp __breturn // next::@return __breturn: - // [7] stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return#0 -- _stackidxsword_vbuc1=vwsz1 + // [7] stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return#0 -- _stackidxsword_vbuc1=vwsz1 tsx lda.z return sta STACK_BASE+OFFSET_STACK_RETURN_0,x @@ -288,7 +288,7 @@ main: { pha // [10] callexecute next -- call_vprc1 jsr next - // [11] main::$0 = stackpull(signed word) -- vwsz1=_stackpullsword_ + // [11] main::$0 = stackpull(int) -- vwsz1=_stackpullsword_ pla sta.z __0 pla @@ -303,16 +303,16 @@ main: { pha // [14] callexecute next -- call_vprc1 jsr next - // [15] main::$1 = stackpull(signed word) -- vwsz1=_stackpullsword_ + // [15] main::$1 = stackpull(int) -- vwsz1=_stackpullsword_ pla sta.z __1 pla sta.z __1+1 - // [16] *(SCREEN+1*SIZEOF_SIGNED_WORD) = main::$1 -- _deref_pwsc1=vwsz1 + // [16] *(SCREEN+1*SIZEOF_INT) = main::$1 -- _deref_pwsc1=vwsz1 lda.z __1 - sta SCREEN+1*SIZEOF_SIGNED_WORD + sta SCREEN+1*SIZEOF_INT lda.z __1+1 - sta SCREEN+1*SIZEOF_SIGNED_WORD+1 + sta SCREEN+1*SIZEOF_INT+1 jmp __breturn // main::@return __breturn: @@ -338,18 +338,18 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SIZEOF_SIGNED_WORD = 2 -constant word STACK_BASE = $103 +__constant int * const SCREEN = (int *) 1024 +__constant char SIZEOF_INT = 2 +__constant unsigned int STACK_BASE = $103 void __start() -signed word current loadstore zp[2]:4 27.727272727272727 +__loadstore int current // zp[2]:4 27.727272727272727 void main() -signed word~ main::$0 zp[2]:2 22.0 -signed word~ main::$1 zp[2]:4 22.0 -__stackcall signed word next() -constant byte next::OFFSET_STACK_RETURN_0 = 0 -signed word next::return -signed word next::return#0 return zp[2]:2 101.0 +int main::$0 // zp[2]:2 22.0 +int main::$1 // zp[2]:4 22.0 +__stackcall int next() +__constant char next::OFFSET_STACK_RETURN_0 = 0 +int next::return +int next::return#0 // return zp[2]:2 101.0 zp[2]:2 [ main::$0 next::return#0 ] zp[2]:4 [ main::$1 current ] @@ -371,7 +371,7 @@ Score: 156 .segment Basic :BasicUpstart(__start) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .const STACK_BASE = $103 .label SCREEN = $400 .label current = 4 @@ -410,7 +410,7 @@ next: { !: // next::@return // } - // [7] stackidx(signed word,next::OFFSET_STACK_RETURN_0) = next::return#0 -- _stackidxsword_vbuc1=vwsz1 + // [7] stackidx(int,next::OFFSET_STACK_RETURN_0) = next::return#0 -- _stackidxsword_vbuc1=vwsz1 tsx lda.z return sta STACK_BASE+OFFSET_STACK_RETURN_0,x @@ -429,7 +429,7 @@ main: { pha // [10] callexecute next -- call_vprc1 jsr next - // [11] main::$0 = stackpull(signed word) -- vwsz1=_stackpullsword_ + // [11] main::$0 = stackpull(int) -- vwsz1=_stackpullsword_ pla sta.z __0 pla @@ -446,17 +446,17 @@ main: { pha // [14] callexecute next -- call_vprc1 jsr next - // [15] main::$1 = stackpull(signed word) -- vwsz1=_stackpullsword_ + // [15] main::$1 = stackpull(int) -- vwsz1=_stackpullsword_ pla sta.z __1 pla sta.z __1+1 // SCREEN[1] = next() - // [16] *(SCREEN+1*SIZEOF_SIGNED_WORD) = main::$1 -- _deref_pwsc1=vwsz1 + // [16] *(SCREEN+1*SIZEOF_INT) = main::$1 -- _deref_pwsc1=vwsz1 lda.z __1 - sta SCREEN+1*SIZEOF_SIGNED_WORD + sta SCREEN+1*SIZEOF_INT lda.z __1+1 - sta SCREEN+1*SIZEOF_SIGNED_WORD+1 + sta SCREEN+1*SIZEOF_INT+1 // main::@return // } // [17] return diff --git a/src/test/ref/procedure-callingconvention-stack-5.sym b/src/test/ref/procedure-callingconvention-stack-5.sym index 8fdea7113..81a886111 100644 --- a/src/test/ref/procedure-callingconvention-stack-5.sym +++ b/src/test/ref/procedure-callingconvention-stack-5.sym @@ -1,15 +1,15 @@ -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SIZEOF_SIGNED_WORD = 2 -constant word STACK_BASE = $103 +__constant int * const SCREEN = (int *) 1024 +__constant char SIZEOF_INT = 2 +__constant unsigned int STACK_BASE = $103 void __start() -signed word current loadstore zp[2]:4 27.727272727272727 +__loadstore int current // zp[2]:4 27.727272727272727 void main() -signed word~ main::$0 zp[2]:2 22.0 -signed word~ main::$1 zp[2]:4 22.0 -__stackcall signed word next() -constant byte next::OFFSET_STACK_RETURN_0 = 0 -signed word next::return -signed word next::return#0 return zp[2]:2 101.0 +int main::$0 // zp[2]:2 22.0 +int main::$1 // zp[2]:4 22.0 +__stackcall int next() +__constant char next::OFFSET_STACK_RETURN_0 = 0 +int next::return +int next::return#0 // return zp[2]:2 101.0 zp[2]:2 [ main::$0 next::return#0 ] zp[2]:4 [ main::$1 current ] diff --git a/src/test/ref/procedure-callingconvention-stack-7.log b/src/test/ref/procedure-callingconvention-stack-7.log index ea5f915ff..ee752c476 100644 --- a/src/test/ref/procedure-callingconvention-stack-7.log +++ b/src/test/ref/procedure-callingconvention-stack-7.log @@ -41,29 +41,29 @@ __start::@return: scope:[__start] from __start to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() __stackcall void main() -byte main::val -byte main::val#0 -byte main::val#1 +char main::val +char main::val#0 +char main::val#1 __stackcall void printline() -bool~ printline::$0 -byte printline::i -byte printline::i#0 -byte printline::i#1 -byte printline::i#2 -byte printline::i#3 +bool printline::$0 +char printline::i +char printline::i#0 +char printline::i#1 +char printline::i#2 +char printline::i#3 Adding number conversion cast (unumber) $50 in SCREEN[$50] = main::val#1 Adding number conversion cast (unumber) $28 in printline::$0 = printline::i#2 < $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $50 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias printline::i#2 = printline::i#3 Successful SSA optimization Pass2AliasElimination @@ -132,12 +132,12 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() __stackcall void main() -byte main::val -byte main::val#1 11.0 +char main::val +char main::val#1 // 11.0 __stackcall void printline() -byte printline::i -byte printline::i#1 2002.0 -byte printline::i#2 1334.6666666666667 +char printline::i +char printline::i#1 // 2002.0 +char printline::i#2 // 1334.6666666666667 Initial phi equivalence classes [ printline::i#2 printline::i#1 ] @@ -251,15 +251,15 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void main() -byte main::val -byte main::val#1 reg byte y 11.0 +char main::val +char main::val#1 // reg byte y 11.0 __stackcall void printline() -byte printline::i -byte printline::i#1 reg byte x 2002.0 -byte printline::i#2 reg byte x 1334.6666666666667 +char printline::i +char printline::i#1 // reg byte x 2002.0 +char printline::i#2 // reg byte x 1334.6666666666667 reg byte x [ printline::i#2 printline::i#1 ] reg byte y [ main::val#1 ] diff --git a/src/test/ref/procedure-callingconvention-stack-7.sym b/src/test/ref/procedure-callingconvention-stack-7.sym index 446f5e0eb..bafff72a9 100644 --- a/src/test/ref/procedure-callingconvention-stack-7.sym +++ b/src/test/ref/procedure-callingconvention-stack-7.sym @@ -1,12 +1,12 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void main() -byte main::val -byte main::val#1 reg byte y 11.0 +char main::val +char main::val#1 // reg byte y 11.0 __stackcall void printline() -byte printline::i -byte printline::i#1 reg byte x 2002.0 -byte printline::i#2 reg byte x 1334.6666666666667 +char printline::i +char printline::i#1 // reg byte x 2002.0 +char printline::i#2 // reg byte x 1334.6666666666667 reg byte x [ printline::i#2 printline::i#1 ] reg byte y [ main::val#1 ] diff --git a/src/test/ref/procedure-callingconvention-stack-8.log b/src/test/ref/procedure-callingconvention-stack-8.log index aae1829cf..1f34133cb 100644 --- a/src/test/ref/procedure-callingconvention-stack-8.log +++ b/src/test/ref/procedure-callingconvention-stack-8.log @@ -47,27 +47,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() __stackcall void main() __stackcall void printline() -bool~ printline::$0 -byte printline::i -byte printline::i#0 -byte printline::i#1 -byte printline::i#2 -byte printline::i#3 -byte val loadstore +bool printline::$0 +char printline::i +char printline::i#0 +char printline::i#1 +char printline::i#2 +char printline::i#3 +__loadstore char val Adding number conversion cast (unumber) $50 in SCREEN[$50] = val Adding number conversion cast (unumber) $28 in printline::$0 = printline::i#2 < $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $50 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias printline::i#2 = printline::i#3 Successful SSA optimization Pass2AliasElimination @@ -142,10 +142,10 @@ VARIABLE REGISTER WEIGHTS void __start() __stackcall void main() __stackcall void printline() -byte printline::i -byte printline::i#1 2002.0 -byte printline::i#2 1334.6666666666667 -byte val loadstore 12.0 +char printline::i +char printline::i#1 // 2002.0 +char printline::i#2 // 1334.6666666666667 +__loadstore char val // 12.0 Initial phi equivalence classes [ printline::i#2 printline::i#1 ] @@ -287,14 +287,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void main() __stackcall void printline() -byte printline::i -byte printline::i#1 reg byte x 2002.0 -byte printline::i#2 reg byte x 1334.6666666666667 -byte val loadstore zp[1]:2 12.0 +char printline::i +char printline::i#1 // reg byte x 2002.0 +char printline::i#2 // reg byte x 1334.6666666666667 +__loadstore char val // zp[1]:2 12.0 reg byte x [ printline::i#2 printline::i#1 ] zp[1]:2 [ val ] diff --git a/src/test/ref/procedure-callingconvention-stack-8.sym b/src/test/ref/procedure-callingconvention-stack-8.sym index ef02c05ed..df13dbff4 100644 --- a/src/test/ref/procedure-callingconvention-stack-8.sym +++ b/src/test/ref/procedure-callingconvention-stack-8.sym @@ -1,11 +1,11 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void main() __stackcall void printline() -byte printline::i -byte printline::i#1 reg byte x 2002.0 -byte printline::i#2 reg byte x 1334.6666666666667 -byte val loadstore zp[1]:2 12.0 +char printline::i +char printline::i#1 // reg byte x 2002.0 +char printline::i#2 // reg byte x 1334.6666666666667 +__loadstore char val // zp[1]:2 12.0 reg byte x [ printline::i#2 printline::i#1 ] zp[1]:2 [ val ] diff --git a/src/test/ref/procedure-callingconvention-stack-9.log b/src/test/ref/procedure-callingconvention-stack-9.log index ce6da89cb..1f0cb43a9 100644 --- a/src/test/ref/procedure-callingconvention-stack-9.log +++ b/src/test/ref/procedure-callingconvention-stack-9.log @@ -87,35 +87,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() __stackcall void incval() __stackcall void ival() __stackcall void main() -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 __stackcall void printother() -bool~ printother::$1 -byte printother::i -byte printother::i#0 -byte printother::i#1 -byte printother::i#2 +bool printother::$1 +char printother::i +char printother::i#0 +char printother::i#1 +char printother::i#2 __stackcall void printval() __stackcall void pval() -byte val loadstore +__loadstore char val Adding number conversion cast (unumber) 0 in SCREEN[0] = val Adding number conversion cast (unumber) $28 in (SCREEN+$28)[printother::i#2] = ++ (SCREEN+$28)[printother::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$3 [7] if(main::i#1!=rangelast(0,5)) goto main::@1 Simple Condition printother::$1 [22] if(printother::i#1!=rangelast(0,5)) goto printother::@1 @@ -135,8 +135,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings printother::i#0 @@ -262,16 +262,16 @@ void __start() __stackcall void incval() __stackcall void ival() __stackcall void main() -byte main::i -byte main::i#1 151.5 -byte main::i#2 50.5 +char main::i +char main::i#1 // 151.5 +char main::i#2 // 50.5 __stackcall void printother() -byte printother::i -byte printother::i#1 15001.5 -byte printother::i#2 20002.0 +char printother::i +char printother::i#1 // 15001.5 +char printother::i#2 // 20002.0 __stackcall void printval() __stackcall void pval() -byte val loadstore 1579.2105263157896 +__loadstore char val // 1579.2105263157896 Initial phi equivalence classes [ printother::i#2 printother::i#1 ] @@ -489,21 +489,21 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void incval() __stackcall void ival() __stackcall void main() -byte main::i -byte main::i#1 reg byte y 151.5 -byte main::i#2 reg byte y 50.5 +char main::i +char main::i#1 // reg byte y 151.5 +char main::i#2 // reg byte y 50.5 __stackcall void printother() -byte printother::i -byte printother::i#1 reg byte x 15001.5 -byte printother::i#2 reg byte x 20002.0 +char printother::i +char printother::i#1 // reg byte x 15001.5 +char printother::i#2 // reg byte x 20002.0 __stackcall void printval() __stackcall void pval() -byte val loadstore zp[1]:2 1579.2105263157896 +__loadstore char val // zp[1]:2 1579.2105263157896 reg byte x [ printother::i#2 printother::i#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/procedure-callingconvention-stack-9.sym b/src/test/ref/procedure-callingconvention-stack-9.sym index b1f5f6f84..4eeb8472d 100644 --- a/src/test/ref/procedure-callingconvention-stack-9.sym +++ b/src/test/ref/procedure-callingconvention-stack-9.sym @@ -1,18 +1,18 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() __stackcall void incval() __stackcall void ival() __stackcall void main() -byte main::i -byte main::i#1 reg byte y 151.5 -byte main::i#2 reg byte y 50.5 +char main::i +char main::i#1 // reg byte y 151.5 +char main::i#2 // reg byte y 50.5 __stackcall void printother() -byte printother::i -byte printother::i#1 reg byte x 15001.5 -byte printother::i#2 reg byte x 20002.0 +char printother::i +char printother::i#1 // reg byte x 15001.5 +char printother::i#2 // reg byte x 20002.0 __stackcall void printval() __stackcall void pval() -byte val loadstore zp[1]:2 1579.2105263157896 +__loadstore char val // zp[1]:2 1579.2105263157896 reg byte x [ printother::i#2 printother::i#1 ] reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/procedure-declare-0.log b/src/test/ref/procedure-declare-0.log index 15e5fca80..93df60809 100644 --- a/src/test/ref/procedure-declare-0.log +++ b/src/test/ref/procedure-declare-0.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,14 +22,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -105,7 +105,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/procedure-declare-0.sym b/src/test/ref/procedure-declare-0.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/procedure-declare-0.sym +++ b/src/test/ref/procedure-declare-0.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/procedure-declare-1.log b/src/test/ref/procedure-declare-1.log index e22e8806f..35999087d 100644 --- a/src/test/ref/procedure-declare-1.log +++ b/src/test/ref/procedure-declare-1.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,14 +22,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -105,7 +105,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/procedure-declare-1.sym b/src/test/ref/procedure-declare-1.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/procedure-declare-1.sym +++ b/src/test/ref/procedure-declare-1.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/procedure-declare-10.asm b/src/test/ref/procedure-declare-10.asm index cef223e3f..255b09294 100644 --- a/src/test/ref/procedure-declare-10.asm +++ b/src/test/ref/procedure-declare-10.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .label SCREEN = $400 .segment Code main: { @@ -18,8 +18,9 @@ main: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. +// void * memcpy(void *destination, void *source, unsigned int num) memcpy: { - .const num = $c*SIZEOF_BYTE + .const num = $c*SIZEOF_CHAR .label destination = SCREEN .label source = STRING .label src_end = source+num diff --git a/src/test/ref/procedure-declare-10.cfg b/src/test/ref/procedure-declare-10.cfg index 80bf52f92..dff9fb064 100644 --- a/src/test/ref/procedure-declare-10.cfg +++ b/src/test/ref/procedure-declare-10.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call memcpy + [1] call memcpy to:main::@return main::@return: scope:[main] from main [2] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main [3] phi() to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [4] memcpy::dst#2 = phi( memcpy/(byte*)memcpy::destination#0, memcpy::@2/memcpy::dst#1 ) - [4] memcpy::src#2 = phi( memcpy/(byte*)memcpy::source#0, memcpy::@2/memcpy::src#1 ) + [4] memcpy::dst#2 = phi( memcpy/(char *)memcpy::destination#0, memcpy::@2/memcpy::dst#1 ) + [4] memcpy::src#2 = phi( memcpy/(char *)memcpy::source#0, memcpy::@2/memcpy::src#1 ) [5] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 to:memcpy::@return memcpy::@return: scope:[memcpy] from memcpy::@1 diff --git a/src/test/ref/procedure-declare-10.log b/src/test/ref/procedure-declare-10.log index 762bd99ed..5f3d5ca17 100644 --- a/src/test/ref/procedure-declare-10.log +++ b/src/test/ref/procedure-declare-10.log @@ -2,14 +2,14 @@ Eliminating unused variable with no statement memcpy::$0 CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main memcpy::num#1 = phi( main/memcpy::num#0 ) memcpy::destination#1 = phi( main/memcpy::destination#0 ) memcpy::source#1 = phi( main/memcpy::source#0 ) - memcpy::src#0 = ((byte*)) memcpy::source#1 - memcpy::dst#0 = ((byte*)) memcpy::destination#1 - memcpy::$2 = (byte*)memcpy::source#1 + memcpy::src#0 = ((char *)) memcpy::source#1 + memcpy::dst#0 = ((char *)) memcpy::destination#1 + memcpy::$2 = (char *)memcpy::source#1 memcpy::src_end#0 = memcpy::$2 + memcpy::num#1 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -42,10 +42,10 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 void main() main: scope:[main] from __start main::$0 = sizeof STRING - memcpy::destination#0 = (void*)SCREEN - memcpy::source#0 = (void*)STRING + memcpy::destination#0 = (void *)SCREEN + memcpy::source#0 = (void *)STRING memcpy::num#0 = main::$0 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:main::@1 main::@1: scope:[main] from main @@ -56,7 +56,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -65,50 +65,50 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte* STRING[] = "hello world" +__constant char * const SCREEN = (char *)$400 +__constant char STRING[] = "hello world" void __start() void main() -word~ main::$0 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 +unsigned int main::$0 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 -Inlining cast memcpy::src#0 = (byte*)memcpy::source#1 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#1 +Inlining cast memcpy::src#0 = (char *)memcpy::source#1 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias memcpy::src#2 = memcpy::src#3 Alias memcpy::dst#2 = memcpy::dst#3 @@ -127,12 +127,12 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [12] memcpy::num#0 = sizeof STRING Successful SSA optimization Pass2ConstantRValueConsolidation Constant memcpy::num#0 = sizeof STRING -Constant memcpy::destination#0 = (void*)SCREEN -Constant memcpy::source#0 = (void*)STRING +Constant memcpy::destination#0 = (void *)SCREEN +Constant memcpy::source#0 = (void *)STRING Successful SSA optimization Pass2ConstantIdentification -Constant memcpy::src#0 = (byte*)memcpy::source#0 -Constant memcpy::dst#0 = (byte*)memcpy::destination#0 -Constant memcpy::$2 = (byte*)memcpy::source#0 +Constant memcpy::src#0 = (char *)memcpy::source#0 +Constant memcpy::dst#0 = (char *)memcpy::destination#0 +Constant memcpy::$2 = (char *)memcpy::source#0 Constant memcpy::return#2 = memcpy::destination#0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant memcpy::return#2 @@ -152,13 +152,13 @@ Adding number conversion cast (unumber) $c in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings memcpy::src#0 Inlining constant with var siblings memcpy::dst#0 -Constant inlined memcpy::$2 = (byte*)memcpy::source#0 -Constant inlined memcpy::dst#0 = (byte*)memcpy::destination#0 -Constant inlined memcpy::src#0 = (byte*)memcpy::source#0 +Constant inlined memcpy::$2 = (char *)memcpy::source#0 +Constant inlined memcpy::dst#0 = (char *)memcpy::destination#0 +Constant inlined memcpy::src#0 = (char *)memcpy::source#0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -181,19 +181,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memcpy + [1] call memcpy to:main::@return main::@return: scope:[main] from main [2] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from main [3] phi() to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 - [4] memcpy::dst#2 = phi( memcpy/(byte*)memcpy::destination#0, memcpy::@2/memcpy::dst#1 ) - [4] memcpy::src#2 = phi( memcpy/(byte*)memcpy::source#0, memcpy::@2/memcpy::src#1 ) + [4] memcpy::dst#2 = phi( memcpy/(char *)memcpy::destination#0, memcpy::@2/memcpy::dst#1 ) + [4] memcpy::src#2 = phi( memcpy/(char *)memcpy::source#0, memcpy::@2/memcpy::src#1 ) [5] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 to:memcpy::@return memcpy::@return: scope:[memcpy] from memcpy::@1 @@ -208,18 +208,18 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 VARIABLE REGISTER WEIGHTS void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -byte* memcpy::dst -byte* memcpy::dst#1 101.0 -byte* memcpy::dst#2 101.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -byte* memcpy::src -byte* memcpy::src#1 202.0 -byte* memcpy::src#2 101.0 -byte* memcpy::src_end +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +char *memcpy::dst +char *memcpy::dst#1 // 101.0 +char *memcpy::dst#2 // 101.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +char *memcpy::src +char *memcpy::src#1 // 202.0 +char *memcpy::src#2 // 101.0 +char *memcpy::src_end Initial phi equivalence classes [ memcpy::src#2 memcpy::src#1 ] @@ -257,12 +257,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .label SCREEN = $400 .segment Code // main main: { - // [1] call memcpy + // [1] call memcpy // [3] phi from main to memcpy [phi:main->memcpy] memcpy_from_main: jsr memcpy @@ -275,8 +275,9 @@ main: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. +// void * memcpy(void *destination, void *source, unsigned int num) memcpy: { - .const num = $c*SIZEOF_BYTE + .const num = $c*SIZEOF_CHAR .label destination = SCREEN .label source = STRING .label src_end = source+num @@ -284,12 +285,12 @@ memcpy: { .label src = 2 // [4] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] __b1_from_memcpy: - // [4] phi memcpy::dst#2 = (byte*)memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + // [4] phi memcpy::dst#2 = (char *)memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [4] phi memcpy::src#2 = (byte*)memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [4] phi memcpy::src#2 = (char *)memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source @@ -352,26 +353,26 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte* STRING[] = "hello world" +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char STRING[] = "hello world" void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -constant void* memcpy::destination#0 destination = (void*)SCREEN -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:4 101.0 -byte* memcpy::dst#2 dst zp[2]:4 101.0 -word memcpy::num -constant word memcpy::num#0 num = $c*SIZEOF_BYTE -void* memcpy::return -void* memcpy::source -constant void* memcpy::source#0 source = (void*)STRING -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:2 202.0 -byte* memcpy::src#2 src zp[2]:2 101.0 -byte* memcpy::src_end -constant byte* memcpy::src_end#0 src_end = (byte*)memcpy::source#0+memcpy::num#0 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +__constant void *memcpy::destination#0 = (void *)SCREEN // destination +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:4 101.0 +char *memcpy::dst#2 // dst zp[2]:4 101.0 +unsigned int memcpy::num +__constant unsigned int memcpy::num#0 = $c*SIZEOF_CHAR // num +void *memcpy::return +void *memcpy::source +__constant void *memcpy::source#0 = (void *)STRING // source +char *memcpy::src +char *memcpy::src#1 // src zp[2]:2 202.0 +char *memcpy::src#2 // src zp[2]:2 101.0 +char *memcpy::src_end +__constant char *memcpy::src_end#0 = (char *)memcpy::source#0+memcpy::num#0 // src_end zp[2]:2 [ memcpy::src#2 memcpy::src#1 ] zp[2]:4 [ memcpy::dst#2 memcpy::dst#1 ] @@ -392,13 +393,13 @@ Score: 783 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .label SCREEN = $400 .segment Code // main main: { // memcpy(SCREEN, STRING, sizeof(STRING)) - // [1] call memcpy + // [1] call memcpy // [3] phi from main to memcpy [phi:main->memcpy] jsr memcpy // main::@return @@ -409,20 +410,21 @@ main: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. +// void * memcpy(void *destination, void *source, unsigned int num) memcpy: { - .const num = $c*SIZEOF_BYTE + .const num = $c*SIZEOF_CHAR .label destination = SCREEN .label source = STRING .label src_end = source+num .label dst = 4 .label src = 2 // [4] phi from memcpy to memcpy::@1 [phi:memcpy->memcpy::@1] - // [4] phi memcpy::dst#2 = (byte*)memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 + // [4] phi memcpy::dst#2 = (char *)memcpy::destination#0 [phi:memcpy->memcpy::@1#0] -- pbuz1=pbuc1 lda #destination sta.z dst+1 - // [4] phi memcpy::src#2 = (byte*)memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 + // [4] phi memcpy::src#2 = (char *)memcpy::source#0 [phi:memcpy->memcpy::@1#1] -- pbuz1=pbuc1 lda #source diff --git a/src/test/ref/procedure-declare-10.sym b/src/test/ref/procedure-declare-10.sym index a2400bdcf..250e17d3f 100644 --- a/src/test/ref/procedure-declare-10.sym +++ b/src/test/ref/procedure-declare-10.sym @@ -1,23 +1,23 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte* STRING[] = "hello world" +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char STRING[] = "hello world" void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -constant void* memcpy::destination#0 destination = (void*)SCREEN -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:4 101.0 -byte* memcpy::dst#2 dst zp[2]:4 101.0 -word memcpy::num -constant word memcpy::num#0 num = $c*SIZEOF_BYTE -void* memcpy::return -void* memcpy::source -constant void* memcpy::source#0 source = (void*)STRING -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:2 202.0 -byte* memcpy::src#2 src zp[2]:2 101.0 -byte* memcpy::src_end -constant byte* memcpy::src_end#0 src_end = (byte*)memcpy::source#0+memcpy::num#0 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +__constant void *memcpy::destination#0 = (void *)SCREEN // destination +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:4 101.0 +char *memcpy::dst#2 // dst zp[2]:4 101.0 +unsigned int memcpy::num +__constant unsigned int memcpy::num#0 = $c*SIZEOF_CHAR // num +void *memcpy::return +void *memcpy::source +__constant void *memcpy::source#0 = (void *)STRING // source +char *memcpy::src +char *memcpy::src#1 // src zp[2]:2 202.0 +char *memcpy::src#2 // src zp[2]:2 101.0 +char *memcpy::src_end +__constant char *memcpy::src_end#0 = (char *)memcpy::source#0+memcpy::num#0 // src_end zp[2]:2 [ memcpy::src#2 memcpy::src#1 ] zp[2]:4 [ memcpy::dst#2 memcpy::dst#1 ] diff --git a/src/test/ref/procedure-declare-11.log b/src/test/ref/procedure-declare-11.log index 9a0c99183..1dd6054de 100644 --- a/src/test/ref/procedure-declare-11.log +++ b/src/test/ref/procedure-declare-11.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,8 +28,8 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant void()** const IRQ = (void()**)$314 -constant byte* const SCREEN = (byte*)$400 +__constant void (** const IRQ)() = (void (**)())$314 +__constant char * const SCREEN = (char *)$400 void __start() __interrupt(rom_min_c64) void irq() void main() @@ -37,13 +37,13 @@ void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = ++ SCREEN[0] Adding number conversion cast (unumber) 0 in SCREEN[0] = ++ SCREEN[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = ++ SCREEN[0] Simplifying expression containing zero SCREEN in [0] SCREEN[0] = ++ *SCREEN @@ -148,8 +148,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant void()** const IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/procedure-declare-11.sym b/src/test/ref/procedure-declare-11.sym index 8fa7075da..6adc0870c 100644 --- a/src/test/ref/procedure-declare-11.sym +++ b/src/test/ref/procedure-declare-11.sym @@ -1,5 +1,5 @@ -constant void()** const IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/procedure-declare-2.asm b/src/test/ref/procedure-declare-2.asm index 673530a57..9249a1e8b 100644 --- a/src/test/ref/procedure-declare-2.asm +++ b/src/test/ref/procedure-declare-2.asm @@ -27,7 +27,7 @@ main: { // } rts } -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b stx.z $ff diff --git a/src/test/ref/procedure-declare-2.cfg b/src/test/ref/procedure-declare-2.cfg index 0c3f067f5..5c642d644 100644 --- a/src/test/ref/procedure-declare-2.cfg +++ b/src/test/ref/procedure-declare-2.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#2 = sum::return#0 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#2 [4] *main::SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#3 = sum::return#0 to:main::@2 main::@2: scope:[main] from main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 [10] sum::b#2 = phi( main/1, main::@1/2 ) [10] sum::a#2 = phi( main/'a', main::@1/'b' ) diff --git a/src/test/ref/procedure-declare-2.log b/src/test/ref/procedure-declare-2.log index 61a56947e..0bffbff44 100644 --- a/src/test/ref/procedure-declare-2.log +++ b/src/test/ref/procedure-declare-2.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 sum::b#2 = phi( main/sum::b#0, main::@1/sum::b#1 ) sum::a#2 = phi( main/sum::a#0, main::@1/sum::a#1 ) @@ -19,7 +19,7 @@ void main() main: scope:[main] from __start sum::a#0 = 'a' sum::b#0 = 1 - call sum + call sum sum::return#2 = sum::return#1 to:main::@1 main::@1: scope:[main] from main @@ -28,7 +28,7 @@ main::@1: scope:[main] from main main::SCREEN[0] = main::$0 sum::a#1 = 'b' sum::b#1 = 2 - call sum + call sum sum::return#3 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -53,28 +53,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -number~ sum::$1 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 +char main::$0 +char main::$1 +__constant char * const main::SCREEN = (char *)$400 +char sum(char a , char b) +char sum::$0 +number sum::$1 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 Adding number conversion cast (unumber) 1 in sum::$1 = sum::$0 + 1 Adding number conversion cast (unumber) sum::$1 in sum::$1 = sum::$0 + (unumber)1 @@ -86,20 +86,20 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast sum::b#0 = (unumber)1 Inlining cast sum::b#1 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in sum::$1 = sum::$0 + 1 +Inferred type updated to char in sum::$1 = sum::$0 + 1 Alias sum::return#0 = sum::$1 sum::return#4 sum::return#1 Alias sum::return#2 = sum::return#5 Alias sum::return#3 = sum::return#6 @@ -140,13 +140,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#2 = sum::return#0 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#2 [4] *main::SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#3 = sum::return#0 to:main::@2 main::@2: scope:[main] from main::@1 @@ -157,7 +157,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 [10] sum::b#2 = phi( main/1, main::@1/2 ) [10] sum::a#2 = phi( main/'a', main::@1/'b' ) @@ -171,18 +171,18 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 22.0 -byte sum::a -byte sum::a#2 11.0 -byte sum::b -byte sum::b#2 11.0 -byte sum::return -byte sum::return#0 3.75 -byte sum::return#2 4.0 -byte sum::return#3 4.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char sum(char a , char b) +char sum::$0 // 22.0 +char sum::a +char sum::a#2 // 11.0 +char sum::b +char sum::b#2 // 11.0 +char sum::return +char sum::return#0 // 3.75 +char sum::return#2 // 4.0 +char sum::return#3 // 4.0 Initial phi equivalence classes [ sum::a#2 ] @@ -252,7 +252,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] sum_from_main: // [10] phi sum::b#2 = 1 [phi:main->sum#0] -- vbuaa=vbuc1 @@ -267,7 +267,7 @@ main: { // [3] main::$0 = sum::return#2 // [4] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [10] phi sum::b#2 = 2 [phi:main::@1->sum#0] -- vbuaa=vbuc1 @@ -289,7 +289,7 @@ main: { rts } // sum -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // [11] sum::$0 = sum::a#2 + sum::b#2 -- vbuaa=vbuxx_plus_vbuaa stx.z $ff @@ -322,19 +322,19 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 reg byte a 22.0 -byte sum::a -byte sum::a#2 reg byte x 11.0 -byte sum::b -byte sum::b#2 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 3.75 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +char sum(char a , char b) +char sum::$0 // reg byte a 22.0 +char sum::a +char sum::a#2 // reg byte x 11.0 +char sum::b +char sum::b#2 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 3.75 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 4.0 reg byte x [ sum::a#2 ] reg byte a [ sum::b#2 ] @@ -366,7 +366,7 @@ Score: 52 main: { .label SCREEN = $400 // sum('a', 1) - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] // [10] phi sum::b#2 = 1 [phi:main->sum#0] -- vbuaa=vbuc1 lda #1 @@ -381,7 +381,7 @@ main: { // [4] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // sum('b', 2) - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] // [10] phi sum::b#2 = 2 [phi:main::@1->sum#0] -- vbuaa=vbuc1 lda #2 @@ -401,7 +401,7 @@ main: { rts } // sum -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b // [11] sum::$0 = sum::a#2 + sum::b#2 -- vbuaa=vbuxx_plus_vbuaa diff --git a/src/test/ref/procedure-declare-2.sym b/src/test/ref/procedure-declare-2.sym index 75d671506..b8d4c2a88 100644 --- a/src/test/ref/procedure-declare-2.sym +++ b/src/test/ref/procedure-declare-2.sym @@ -1,17 +1,17 @@ void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 reg byte a 22.0 -byte sum::a -byte sum::a#2 reg byte x 11.0 -byte sum::b -byte sum::b#2 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 3.75 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +char sum(char a , char b) +char sum::$0 // reg byte a 22.0 +char sum::a +char sum::a#2 // reg byte x 11.0 +char sum::b +char sum::b#2 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 3.75 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 4.0 reg byte x [ sum::a#2 ] reg byte a [ sum::b#2 ] diff --git a/src/test/ref/procedure-declare-3.asm b/src/test/ref/procedure-declare-3.asm index a58cd62ff..ffd1726fc 100644 --- a/src/test/ref/procedure-declare-3.asm +++ b/src/test/ref/procedure-declare-3.asm @@ -27,7 +27,7 @@ main: { // } rts } -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b stx.z $ff diff --git a/src/test/ref/procedure-declare-3.cfg b/src/test/ref/procedure-declare-3.cfg index 0c3f067f5..5c642d644 100644 --- a/src/test/ref/procedure-declare-3.cfg +++ b/src/test/ref/procedure-declare-3.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#2 = sum::return#0 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#2 [4] *main::SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#3 = sum::return#0 to:main::@2 main::@2: scope:[main] from main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 [10] sum::b#2 = phi( main/1, main::@1/2 ) [10] sum::a#2 = phi( main/'a', main::@1/'b' ) diff --git a/src/test/ref/procedure-declare-3.log b/src/test/ref/procedure-declare-3.log index c12bbfcac..212a985c1 100644 --- a/src/test/ref/procedure-declare-3.log +++ b/src/test/ref/procedure-declare-3.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 sum::b#2 = phi( main/sum::b#0, main::@1/sum::b#1 ) sum::a#2 = phi( main/sum::a#0, main::@1/sum::a#1 ) @@ -19,7 +19,7 @@ void main() main: scope:[main] from __start sum::a#0 = 'a' sum::b#0 = 1 - call sum + call sum sum::return#2 = sum::return#1 to:main::@1 main::@1: scope:[main] from main @@ -28,7 +28,7 @@ main::@1: scope:[main] from main main::SCREEN[0] = main::$0 sum::a#1 = 'b' sum::b#1 = 2 - call sum + call sum sum::return#3 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -53,28 +53,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -number~ sum::$1 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 +char main::$0 +char main::$1 +__constant char * const main::SCREEN = (char *)$400 +char sum(char a , char b) +char sum::$0 +number sum::$1 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 Adding number conversion cast (unumber) 1 in sum::$1 = sum::$0 + 1 Adding number conversion cast (unumber) sum::$1 in sum::$1 = sum::$0 + (unumber)1 @@ -86,20 +86,20 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast sum::b#0 = (unumber)1 Inlining cast sum::b#1 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in sum::$1 = sum::$0 + 1 +Inferred type updated to char in sum::$1 = sum::$0 + 1 Alias sum::return#0 = sum::$1 sum::return#4 sum::return#1 Alias sum::return#2 = sum::return#5 Alias sum::return#3 = sum::return#6 @@ -140,13 +140,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#2 = sum::return#0 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#2 [4] *main::SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#3 = sum::return#0 to:main::@2 main::@2: scope:[main] from main::@1 @@ -157,7 +157,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 [10] sum::b#2 = phi( main/1, main::@1/2 ) [10] sum::a#2 = phi( main/'a', main::@1/'b' ) @@ -171,18 +171,18 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 22.0 -byte sum::a -byte sum::a#2 11.0 -byte sum::b -byte sum::b#2 11.0 -byte sum::return -byte sum::return#0 3.75 -byte sum::return#2 4.0 -byte sum::return#3 4.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char sum(char a , char b) +char sum::$0 // 22.0 +char sum::a +char sum::a#2 // 11.0 +char sum::b +char sum::b#2 // 11.0 +char sum::return +char sum::return#0 // 3.75 +char sum::return#2 // 4.0 +char sum::return#3 // 4.0 Initial phi equivalence classes [ sum::a#2 ] @@ -252,7 +252,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] sum_from_main: // [10] phi sum::b#2 = 1 [phi:main->sum#0] -- vbuaa=vbuc1 @@ -267,7 +267,7 @@ main: { // [3] main::$0 = sum::return#2 // [4] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [10] phi sum::b#2 = 2 [phi:main::@1->sum#0] -- vbuaa=vbuc1 @@ -289,7 +289,7 @@ main: { rts } // sum -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // [11] sum::$0 = sum::a#2 + sum::b#2 -- vbuaa=vbuxx_plus_vbuaa stx.z $ff @@ -322,19 +322,19 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 reg byte a 22.0 -byte sum::a -byte sum::a#2 reg byte x 11.0 -byte sum::b -byte sum::b#2 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 3.75 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +char sum(char a , char b) +char sum::$0 // reg byte a 22.0 +char sum::a +char sum::a#2 // reg byte x 11.0 +char sum::b +char sum::b#2 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 3.75 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 4.0 reg byte x [ sum::a#2 ] reg byte a [ sum::b#2 ] @@ -366,7 +366,7 @@ Score: 52 main: { .label SCREEN = $400 // sum('a', 1) - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] // [10] phi sum::b#2 = 1 [phi:main->sum#0] -- vbuaa=vbuc1 lda #1 @@ -381,7 +381,7 @@ main: { // [4] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // sum('b', 2) - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] // [10] phi sum::b#2 = 2 [phi:main::@1->sum#0] -- vbuaa=vbuc1 lda #2 @@ -401,7 +401,7 @@ main: { rts } // sum -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b // [11] sum::$0 = sum::a#2 + sum::b#2 -- vbuaa=vbuxx_plus_vbuaa diff --git a/src/test/ref/procedure-declare-3.sym b/src/test/ref/procedure-declare-3.sym index 75d671506..b8d4c2a88 100644 --- a/src/test/ref/procedure-declare-3.sym +++ b/src/test/ref/procedure-declare-3.sym @@ -1,17 +1,17 @@ void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 reg byte a 22.0 -byte sum::a -byte sum::a#2 reg byte x 11.0 -byte sum::b -byte sum::b#2 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 3.75 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +char sum(char a , char b) +char sum::$0 // reg byte a 22.0 +char sum::a +char sum::a#2 // reg byte x 11.0 +char sum::b +char sum::b#2 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 3.75 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 4.0 reg byte x [ sum::a#2 ] reg byte a [ sum::b#2 ] diff --git a/src/test/ref/procedure-declare-4.asm b/src/test/ref/procedure-declare-4.asm index 36fd5ef7a..6999d864a 100644 --- a/src/test/ref/procedure-declare-4.asm +++ b/src/test/ref/procedure-declare-4.asm @@ -28,7 +28,7 @@ main: { rts } // Calculate sum of two integers plus 1 -// sum(byte register(X) q, byte register(A) w) +// __register(A) char sum(__register(X) char q, __register(A) char w) sum: { // q+w stx.z $ff diff --git a/src/test/ref/procedure-declare-4.cfg b/src/test/ref/procedure-declare-4.cfg index b01223747..ff25a5a05 100644 --- a/src/test/ref/procedure-declare-4.cfg +++ b/src/test/ref/procedure-declare-4.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#2 = sum::return#0 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#2 [4] *main::SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#3 = sum::return#0 to:main::@2 main::@2: scope:[main] from main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::q , byte sum::w) +char sum(char q , char w) sum: scope:[sum] from main main::@1 [10] sum::w#2 = phi( main/1, main::@1/2 ) [10] sum::q#2 = phi( main/'a', main::@1/'b' ) diff --git a/src/test/ref/procedure-declare-4.log b/src/test/ref/procedure-declare-4.log index 9433507fb..007f8e40b 100644 --- a/src/test/ref/procedure-declare-4.log +++ b/src/test/ref/procedure-declare-4.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA -byte sum(byte sum::q , byte sum::w) +char sum(char q , char w) sum: scope:[sum] from main main::@1 sum::w#2 = phi( main/sum::w#0, main::@1/sum::w#1 ) sum::q#2 = phi( main/sum::q#0, main::@1/sum::q#1 ) @@ -19,7 +19,7 @@ void main() main: scope:[main] from __start sum::q#0 = 'a' sum::w#0 = 1 - call sum + call sum sum::return#2 = sum::return#1 to:main::@1 main::@1: scope:[main] from main @@ -28,7 +28,7 @@ main::@1: scope:[main] from main main::SCREEN[0] = main::$0 sum::q#1 = 'b' sum::w#1 = 2 - call sum + call sum sum::return#3 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -53,28 +53,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte sum(byte sum::q , byte sum::w) -byte~ sum::$0 -number~ sum::$1 -byte sum::q -byte sum::q#0 -byte sum::q#1 -byte sum::q#2 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 -byte sum::w -byte sum::w#0 -byte sum::w#1 -byte sum::w#2 +char main::$0 +char main::$1 +__constant char * const main::SCREEN = (char *)$400 +char sum(char q , char w) +char sum::$0 +number sum::$1 +char sum::q +char sum::q#0 +char sum::q#1 +char sum::q#2 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 +char sum::w +char sum::w#0 +char sum::w#1 +char sum::w#2 Adding number conversion cast (unumber) 1 in sum::$1 = sum::$0 + 1 Adding number conversion cast (unumber) sum::$1 in sum::$1 = sum::$0 + (unumber)1 @@ -86,20 +86,20 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast sum::w#0 = (unumber)1 Inlining cast sum::w#1 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in sum::$1 = sum::$0 + 1 +Inferred type updated to char in sum::$1 = sum::$0 + 1 Alias sum::return#0 = sum::$1 sum::return#4 sum::return#1 Alias sum::return#2 = sum::return#5 Alias sum::return#3 = sum::return#6 @@ -140,13 +140,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#2 = sum::return#0 to:main::@1 main::@1: scope:[main] from main [3] main::$0 = sum::return#2 [4] *main::SCREEN = main::$0 - [5] call sum + [5] call sum [6] sum::return#3 = sum::return#0 to:main::@2 main::@2: scope:[main] from main::@1 @@ -157,7 +157,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -byte sum(byte sum::q , byte sum::w) +char sum(char q , char w) sum: scope:[sum] from main main::@1 [10] sum::w#2 = phi( main/1, main::@1/2 ) [10] sum::q#2 = phi( main/'a', main::@1/'b' ) @@ -171,18 +171,18 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte sum(byte sum::q , byte sum::w) -byte~ sum::$0 22.0 -byte sum::q -byte sum::q#2 11.0 -byte sum::return -byte sum::return#0 3.75 -byte sum::return#2 4.0 -byte sum::return#3 4.0 -byte sum::w -byte sum::w#2 11.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char sum(char q , char w) +char sum::$0 // 22.0 +char sum::q +char sum::q#2 // 11.0 +char sum::return +char sum::return#0 // 3.75 +char sum::return#2 // 4.0 +char sum::return#3 // 4.0 +char sum::w +char sum::w#2 // 11.0 Initial phi equivalence classes [ sum::q#2 ] @@ -252,7 +252,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] sum_from_main: // [10] phi sum::w#2 = 1 [phi:main->sum#0] -- vbuaa=vbuc1 @@ -267,7 +267,7 @@ main: { // [3] main::$0 = sum::return#2 // [4] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [10] phi sum::w#2 = 2 [phi:main::@1->sum#0] -- vbuaa=vbuc1 @@ -290,7 +290,7 @@ main: { } // sum // Calculate sum of two integers plus 1 -// sum(byte register(X) q, byte register(A) w) +// __register(A) char sum(__register(X) char q, __register(A) char w) sum: { // [11] sum::$0 = sum::q#2 + sum::w#2 -- vbuaa=vbuxx_plus_vbuaa stx.z $ff @@ -323,19 +323,19 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte sum(byte sum::q , byte sum::w) -byte~ sum::$0 reg byte a 22.0 -byte sum::q -byte sum::q#2 reg byte x 11.0 -byte sum::return -byte sum::return#0 reg byte a 3.75 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 4.0 -byte sum::w -byte sum::w#2 reg byte a 11.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +char sum(char q , char w) +char sum::$0 // reg byte a 22.0 +char sum::q +char sum::q#2 // reg byte x 11.0 +char sum::return +char sum::return#0 // reg byte a 3.75 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 4.0 +char sum::w +char sum::w#2 // reg byte a 11.0 reg byte x [ sum::q#2 ] reg byte a [ sum::w#2 ] @@ -367,7 +367,7 @@ Score: 52 main: { .label SCREEN = $400 // sum('a', 1) - // [1] call sum + // [1] call sum // [10] phi from main to sum [phi:main->sum] // [10] phi sum::w#2 = 1 [phi:main->sum#0] -- vbuaa=vbuc1 lda #1 @@ -382,7 +382,7 @@ main: { // [4] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // sum('b', 2) - // [5] call sum + // [5] call sum // [10] phi from main::@1 to sum [phi:main::@1->sum] // [10] phi sum::w#2 = 2 [phi:main::@1->sum#0] -- vbuaa=vbuc1 lda #2 @@ -403,7 +403,7 @@ main: { } // sum // Calculate sum of two integers plus 1 -// sum(byte register(X) q, byte register(A) w) +// __register(A) char sum(__register(X) char q, __register(A) char w) sum: { // q+w // [11] sum::$0 = sum::q#2 + sum::w#2 -- vbuaa=vbuxx_plus_vbuaa diff --git a/src/test/ref/procedure-declare-4.sym b/src/test/ref/procedure-declare-4.sym index d8da7e99b..132d19b45 100644 --- a/src/test/ref/procedure-declare-4.sym +++ b/src/test/ref/procedure-declare-4.sym @@ -1,17 +1,17 @@ void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte sum(byte sum::q , byte sum::w) -byte~ sum::$0 reg byte a 22.0 -byte sum::q -byte sum::q#2 reg byte x 11.0 -byte sum::return -byte sum::return#0 reg byte a 3.75 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 4.0 -byte sum::w -byte sum::w#2 reg byte a 11.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024 +char sum(char q , char w) +char sum::$0 // reg byte a 22.0 +char sum::q +char sum::q#2 // reg byte x 11.0 +char sum::return +char sum::return#0 // reg byte a 3.75 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 4.0 +char sum::w +char sum::w#2 // reg byte a 11.0 reg byte x [ sum::q#2 ] reg byte a [ sum::w#2 ] diff --git a/src/test/ref/procedure-declare-5.cfg b/src/test/ref/procedure-declare-5.cfg index 6c2aee320..b53e375aa 100644 --- a/src/test/ref/procedure-declare-5.cfg +++ b/src/test/ref/procedure-declare-5.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call f + [1] call f to:main::@1 main::@1: scope:[main] from main [2] *main::SCREEN = f::return#0 @@ -11,7 +11,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return -byte f() +char f() f: scope:[f] from main [4] phi() to:f::@return diff --git a/src/test/ref/procedure-declare-5.log b/src/test/ref/procedure-declare-5.log index 67633d405..b7f393e78 100644 --- a/src/test/ref/procedure-declare-5.log +++ b/src/test/ref/procedure-declare-5.log @@ -1,7 +1,7 @@ CONTROL FLOW GRAPH SSA -byte f() +char f() f: scope:[f] from main f::return#0 = 7 to:f::@return @@ -13,7 +13,7 @@ f::@return: scope:[f] from f void main() main: scope:[main] from __start - call f + call f f::return#2 = f::return#1 to:main::@1 main::@1: scope:[main] from main @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,28 +37,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -byte f() -byte f::return -byte f::return#0 -byte f::return#1 -byte f::return#2 -byte f::return#3 -byte f::return#4 +char f() +char f::return +char f::return#0 +char f::return#1 +char f::return#2 +char f::return#3 +char f::return#4 void main() -byte~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 +char main::$0 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 7 in f::return#0 = 7 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast f::return#0 = (unumber)7 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias f::return#0 = f::return#3 f::return#1 Alias f::return#2 = f::return#4 @@ -95,7 +95,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call f + [1] call f to:main::@1 main::@1: scope:[main] from main [2] *main::SCREEN = f::return#0 @@ -104,7 +104,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return -byte f() +char f() f: scope:[f] from main [4] phi() to:f::@return @@ -114,8 +114,8 @@ f::@return: scope:[f] from f VARIABLE REGISTER WEIGHTS -byte f() -byte f::return +char f() +char f::return void main() Initial phi equivalence classes @@ -149,7 +149,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [1] call f + // [1] call f // [4] phi from main to f [phi:main->f] f_from_main: jsr f @@ -188,11 +188,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte f() -byte f::return -constant byte f::return#0 return = 7 +char f() +char f::return +__constant char f::return#0 = 7 // return void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 @@ -216,7 +216,7 @@ Score: 24 main: { .label SCREEN = $400 // f() - // [1] call f + // [1] call f // [4] phi from main to f [phi:main->f] jsr f // main::@1 diff --git a/src/test/ref/procedure-declare-5.sym b/src/test/ref/procedure-declare-5.sym index 2aa366dc2..1f8a460aa 100644 --- a/src/test/ref/procedure-declare-5.sym +++ b/src/test/ref/procedure-declare-5.sym @@ -1,6 +1,6 @@ -byte f() -byte f::return -constant byte f::return#0 return = 7 +char f() +char f::return +__constant char f::return#0 = 7 // return void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/procedure-declare-8.log b/src/test/ref/procedure-declare-8.log index ab8e82656..897722527 100644 --- a/src/test/ref/procedure-declare-8.log +++ b/src/test/ref/procedure-declare-8.log @@ -39,7 +39,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - proc_ptr#3 = (void()*) 0 + proc_ptr#3 = (void (*)()) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 proc_ptr#9 = phi( __start::__init1/proc_ptr#3 ) @@ -56,32 +56,32 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() void proc1() void proc2() -void()* proc_ptr -void()* proc_ptr#0 -void()* proc_ptr#1 -void()* proc_ptr#2 -void()* proc_ptr#3 -void()* proc_ptr#4 -void()* proc_ptr#5 -void()* proc_ptr#6 -void()* proc_ptr#7 -void()* proc_ptr#8 -void()* proc_ptr#9 +void (*proc_ptr)() +void (*proc_ptr#0)() +void (*proc_ptr#1)() +void (*proc_ptr#2)() +void (*proc_ptr#3)() +void (*proc_ptr#4)() +void (*proc_ptr#5)() +void (*proc_ptr#6)() +void (*proc_ptr#7)() +void (*proc_ptr#8)() +void (*proc_ptr#9)() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Adding number conversion cast (unumber) 1 in SCREEN[1] = 'b' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias proc_ptr#1 = proc_ptr#6 proc_ptr#2 Alias proc_ptr#3 = proc_ptr#9 @@ -91,7 +91,7 @@ Identical Phi Values proc_ptr#4 proc_ptr#1 Successful SSA optimization Pass2IdenticalPhiElimination Constant proc_ptr#0 = &proc1 Constant proc_ptr#1 = &proc2 -Constant proc_ptr#3 = (void()*) 0 +Constant proc_ptr#3 = (void (*)()) 0 Successful SSA optimization Pass2ConstantIdentification Replacing constant pointer function [5] callexecute proc1 Replacing constant pointer function [7] callexecute proc2 @@ -157,7 +157,7 @@ VARIABLE REGISTER WEIGHTS void main() __stackcall void proc1() __stackcall void proc2() -void()* proc_ptr +void (*proc_ptr)() Initial phi equivalence classes Complete equivalence classes @@ -247,11 +247,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() __stackcall void proc1() __stackcall void proc2() -void()* proc_ptr +void (*proc_ptr)() diff --git a/src/test/ref/procedure-declare-8.sym b/src/test/ref/procedure-declare-8.sym index b704896b7..ab9a56d1e 100644 --- a/src/test/ref/procedure-declare-8.sym +++ b/src/test/ref/procedure-declare-8.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() __stackcall void proc1() __stackcall void proc2() -void()* proc_ptr +void (*proc_ptr)() diff --git a/src/test/ref/procedure-declare-9.log b/src/test/ref/procedure-declare-9.log index 827a85042..2248fb023 100644 --- a/src/test/ref/procedure-declare-9.log +++ b/src/test/ref/procedure-declare-9.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,8 +28,8 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant void()** const IRQ = (void()**)$314 -constant byte* const SCREEN = (byte*)$400 +__constant void (** const IRQ)() = (void (**)())$314 +__constant char * const SCREEN = (char *)$400 void __start() __interrupt(rom_min_c64) void irq() void main() @@ -37,13 +37,13 @@ void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = ++ SCREEN[0] Adding number conversion cast (unumber) 0 in SCREEN[0] = ++ SCREEN[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = ++ SCREEN[0] Simplifying expression containing zero SCREEN in [0] SCREEN[0] = ++ *SCREEN @@ -148,8 +148,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant void()** const IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/procedure-declare-9.sym b/src/test/ref/procedure-declare-9.sym index 8fa7075da..6adc0870c 100644 --- a/src/test/ref/procedure-declare-9.sym +++ b/src/test/ref/procedure-declare-9.sym @@ -1,5 +1,5 @@ -constant void()** const IRQ = (void()**) 788 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const IRQ)() = (void (**)()) 788 +__constant char * const SCREEN = (char *) 1024 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/processor-port-test.asm b/src/test/ref/processor-port-test.asm index f95d0f5a0..dba37ee1e 100644 --- a/src/test/ref/processor-port-test.asm +++ b/src/test/ref/processor-port-test.asm @@ -259,7 +259,7 @@ print_cls: { rts } // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 __b1: @@ -305,7 +305,7 @@ print_ln: { // } rts } -// testProcport(byte register(X) ddr, byte zp(4) port, byte zp(5) ddr2) +// void testProcport(__register(X) char ddr, __zp(4) char port, __zp(5) char ddr2) testProcport: { .label port = 4 .label ddr2 = 5 @@ -414,6 +414,7 @@ testProcport: { } .segment Code // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -447,7 +448,7 @@ memset: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -461,7 +462,7 @@ print_char: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/processor-port-test.cfg b/src/test/ref/processor-port-test.cfg index bc2274a3b..808b53326 100644 --- a/src/test/ref/processor-port-test.cfg +++ b/src/test/ref/processor-port-test.cfg @@ -10,107 +10,107 @@ main: scope:[main] from [6] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [7] *PROCPORT = PROCPORT_BASIC_KERNEL_IO [8] *IO_RAM = $dd - [9] call print_cls + [9] call print_cls to:main::@2 main::@2: scope:[main] from main [10] phi() - [11] call print_str + [11] call print_str to:main::@3 main::@3: scope:[main] from main::@2 [12] phi() - [13] call print_ln + [13] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [14] phi() - [15] call testProcport + [15] call testProcport to:main::@5 main::@5: scope:[main] from main::@4 [16] phi() - [17] call testProcport + [17] call testProcport to:main::@6 main::@6: scope:[main] from main::@5 [18] phi() - [19] call testProcport + [19] call testProcport to:main::@7 main::@7: scope:[main] from main::@6 [20] phi() - [21] call testProcport + [21] call testProcport to:main::@8 main::@8: scope:[main] from main::@7 [22] phi() - [23] call testProcport + [23] call testProcport to:main::@9 main::@9: scope:[main] from main::@8 [24] phi() - [25] call testProcport + [25] call testProcport to:main::@10 main::@10: scope:[main] from main::@9 [26] phi() - [27] call testProcport + [27] call testProcport to:main::@11 main::@11: scope:[main] from main::@10 [28] phi() - [29] call testProcport + [29] call testProcport to:main::@12 main::@12: scope:[main] from main::@11 [30] phi() - [31] call testProcport + [31] call testProcport to:main::@13 main::@13: scope:[main] from main::@12 [32] phi() - [33] call testProcport + [33] call testProcport to:main::@14 main::@14: scope:[main] from main::@13 [34] phi() - [35] call testProcport + [35] call testProcport to:main::@15 main::@15: scope:[main] from main::@14 [36] phi() - [37] call testProcport + [37] call testProcport to:main::@16 main::@16: scope:[main] from main::@15 [38] phi() - [39] call testProcport + [39] call testProcport to:main::@17 main::@17: scope:[main] from main::@16 [40] phi() - [41] call testProcport + [41] call testProcport to:main::@18 main::@18: scope:[main] from main::@17 [42] phi() - [43] call testProcport + [43] call testProcport to:main::@19 main::@19: scope:[main] from main::@18 [44] phi() - [45] call testProcport + [45] call testProcport to:main::@20 main::@20: scope:[main] from main::@19 [46] phi() - [47] call testProcport + [47] call testProcport to:main::@21 main::@21: scope:[main] from main::@20 [48] phi() - [49] call testProcport + [49] call testProcport to:main::@22 main::@22: scope:[main] from main::@21 [50] phi() - [51] call testProcport + [51] call testProcport to:main::@23 main::@23: scope:[main] from main::@22 [52] phi() - [53] call testProcport + [53] call testProcport to:main::@24 main::@24: scope:[main] from main::@23 [54] phi() - [55] call testProcport + [55] call testProcport to:main::@25 main::@25: scope:[main] from main::@24 [56] phi() - [57] call testProcport + [57] call testProcport to:main::@26 main::@26: scope:[main] from main::@25 [58] phi() - [59] call testProcport + [59] call testProcport to:main::@27 main::@27: scope:[main] from main::@26 asm { cli } @@ -124,13 +124,13 @@ main::@1: scope:[main] from main::@1 main::@27 void print_cls() print_cls: scope:[print_cls] from main [64] phi() - [65] call memset + [65] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [66] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@2 testProcport testProcport::@10 testProcport::@12 testProcport::@14 testProcport::@2 testProcport::@4 testProcport::@6 testProcport::@8 [67] print_char_cursor#124 = phi( main::@2/print_screen#0, testProcport/print_char_cursor#126, testProcport::@10/print_char_cursor#67, testProcport::@12/print_char_cursor#67, testProcport::@14/print_char_cursor#67, testProcport::@2/print_char_cursor#67, testProcport::@4/print_char_cursor#67, testProcport::@6/print_char_cursor#67, testProcport::@8/print_char_cursor#67 ) [67] print_str::str#13 = phi( main::@2/main::str, testProcport/testProcport::str, testProcport::@10/testProcport::str5, testProcport::@12/testProcport::str5, testProcport::@14/testProcport::str5, testProcport::@2/testProcport::str1, testProcport::@4/testProcport::str1, testProcport::@6/testProcport::str3, testProcport::@8/testProcport::str3 ) @@ -145,7 +145,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [71] print_char::ch#0 = *print_str::str#10 - [72] call print_char + [72] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [73] print_str::str#0 = ++ print_str::str#10 @@ -165,7 +165,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [78] return to:@return -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) +void testProcport(char ddr , char port , char ddr2) testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [79] testProcport::ddr2#23 = phi( main::@9/0, main::@10/0, main::@11/0, main::@12/$ff, main::@13/$ff, main::@14/$ff, main::@15/$ff, main::@16/$55, main::@17/$55, main::@18/$55, main::@19/$aa, main::@20/$aa, main::@21/$aa, main::@22/0, main::@23/$55, main::@24/$15, main::@25/$17, main::@26/$17, main::@4/PROCPORT_DDR_MEMORY_MASK, main::@5/PROCPORT_DDR_MEMORY_MASK, main::@6/PROCPORT_DDR_MEMORY_MASK, main::@7/PROCPORT_DDR_MEMORY_MASK, main::@8/PROCPORT_DDR_MEMORY_MASK ) [79] testProcport::port#23 = phi( main::@9/0, main::@10/0, main::@11/$ff, main::@12/0, main::@13/$55, main::@14/$aa, main::@15/$ff, main::@16/0, main::@17/$55, main::@18/$ff, main::@19/0, main::@20/$ff, main::@21/$aa, main::@22/$d0, main::@23/$55, main::@24/$15, main::@25/$15, main::@26/$17, main::@4/PROCPORT_RAM_ALL, main::@5/PROCPORT_RAM_IO, main::@6/PROCPORT_RAM_CHARROM, main::@7/PROCPORT_KERNEL_IO, main::@8/PROCPORT_BASIC_KERNEL_IO ) @@ -176,82 +176,82 @@ testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13 [83] *PROCPORT = testProcport::port#23 [84] *PROCPORT_DDR = testProcport::ddr2#23 [85] print_char_cursor#126 = print_line_cursor#0 - [86] call print_str + [86] call print_str to:testProcport::@1 testProcport::@1: scope:[testProcport] from testProcport [87] print_uchar::b#0 = testProcport::ddr#23 - [88] call print_uchar + [88] call print_uchar to:testProcport::@2 testProcport::@2: scope:[testProcport] from testProcport::@1 [89] phi() - [90] call print_str + [90] call print_str to:testProcport::@3 testProcport::@3: scope:[testProcport] from testProcport::@2 [91] print_uchar::b#1 = testProcport::port#23 - [92] call print_uchar + [92] call print_uchar to:testProcport::@4 testProcport::@4: scope:[testProcport] from testProcport::@3 [93] phi() - [94] call print_str + [94] call print_str to:testProcport::@5 testProcport::@5: scope:[testProcport] from testProcport::@4 [95] print_uchar::b#2 = testProcport::ddr2#23 - [96] call print_uchar + [96] call print_uchar to:testProcport::@6 testProcport::@6: scope:[testProcport] from testProcport::@5 [97] phi() - [98] call print_str + [98] call print_str to:testProcport::@7 testProcport::@7: scope:[testProcport] from testProcport::@6 [99] print_uchar::b#3 = *PROCPORT_DDR - [100] call print_uchar + [100] call print_uchar to:testProcport::@8 testProcport::@8: scope:[testProcport] from testProcport::@7 [101] phi() - [102] call print_str + [102] call print_str to:testProcport::@9 testProcport::@9: scope:[testProcport] from testProcport::@8 [103] print_uchar::b#4 = *PROCPORT - [104] call print_uchar + [104] call print_uchar to:testProcport::@10 testProcport::@10: scope:[testProcport] from testProcport::@9 [105] phi() - [106] call print_str + [106] call print_str to:testProcport::@11 testProcport::@11: scope:[testProcport] from testProcport::@10 [107] print_uchar::b#5 = *BASIC_ROM - [108] call print_uchar + [108] call print_uchar to:testProcport::@12 testProcport::@12: scope:[testProcport] from testProcport::@11 [109] phi() - [110] call print_str + [110] call print_str to:testProcport::@13 testProcport::@13: scope:[testProcport] from testProcport::@12 [111] print_uchar::b#6 = *IO_RAM - [112] call print_uchar + [112] call print_uchar to:testProcport::@14 testProcport::@14: scope:[testProcport] from testProcport::@13 [113] phi() - [114] call print_str + [114] call print_str to:testProcport::@15 testProcport::@15: scope:[testProcport] from testProcport::@14 [115] print_uchar::b#7 = *KERNAL_ROM - [116] call print_uchar + [116] call print_uchar to:testProcport::@16 testProcport::@16: scope:[testProcport] from testProcport::@15 [117] phi() - [118] call print_ln + [118] call print_ln to:testProcport::@return testProcport::@return: scope:[testProcport] from testProcport::@16 [119] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [120] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [121] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [121] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [122] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -262,7 +262,7 @@ memset::@2: scope:[memset] from memset::@1 [125] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [126] print_char_cursor#66 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#1, print_uchar::@1/print_char_cursor#67 ) [126] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -273,17 +273,17 @@ print_char::@return: scope:[print_char] from print_char [129] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from testProcport::@1 testProcport::@11 testProcport::@13 testProcport::@15 testProcport::@3 testProcport::@5 testProcport::@7 testProcport::@9 [130] print_uchar::b#8 = phi( testProcport::@1/print_uchar::b#0, testProcport::@11/print_uchar::b#5, testProcport::@13/print_uchar::b#6, testProcport::@15/print_uchar::b#7, testProcport::@3/print_uchar::b#1, testProcport::@5/print_uchar::b#2, testProcport::@7/print_uchar::b#3, testProcport::@9/print_uchar::b#4 ) [131] print_uchar::$0 = print_uchar::b#8 >> 4 [132] print_char::ch#1 = print_hextab[print_uchar::$0] - [133] call print_char + [133] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [134] print_uchar::$2 = print_uchar::b#8 & $f [135] print_char::ch#2 = print_hextab[print_uchar::$2] - [136] call print_char + [136] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [137] return diff --git a/src/test/ref/processor-port-test.log b/src/test/ref/processor-port-test.log index 131d71daf..21d7222cf 100644 --- a/src/test/ref/processor-port-test.log +++ b/src/test/ref/processor-port-test.log @@ -1,10 +1,10 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@3 testProcport testProcport::@10 testProcport::@12 testProcport::@14 testProcport::@2 testProcport::@4 testProcport::@6 testProcport::@8 print_char_cursor#124 = phi( main::@3/print_char_cursor#11, testProcport/print_char_cursor#122, testProcport::@10/print_char_cursor#47, testProcport::@12/print_char_cursor#49, testProcport::@14/print_char_cursor#51, testProcport::@2/print_char_cursor#39, testProcport::@4/print_char_cursor#41, testProcport::@6/print_char_cursor#43, testProcport::@8/print_char_cursor#45 ) print_str::str#13 = phi( main::@3/print_str::str#1, testProcport/print_str::str#2, testProcport::@10/print_str::str#7, testProcport::@12/print_str::str#8, testProcport::@14/print_str::str#9, testProcport::@2/print_str::str#3, testProcport::@4/print_str::str#4, testProcport::@6/print_str::str#5, testProcport::@8/print_str::str#6 ) @@ -19,7 +19,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#116 = phi( print_str::@1/print_char_cursor#117 ) print_str::str#11 = phi( print_str::@1/print_str::str#10 ) print_char::ch#0 = *print_str::str#11 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#12 = phi( print_str::@2/print_str::str#11 ) @@ -58,13 +58,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from testProcport::@1 testProcport::@11 testProcport::@13 testProcport::@15 testProcport::@3 testProcport::@5 testProcport::@7 testProcport::@9 print_char_cursor#119 = phi( testProcport::@1/print_char_cursor#38, testProcport::@11/print_char_cursor#48, testProcport::@13/print_char_cursor#50, testProcport::@15/print_char_cursor#52, testProcport::@3/print_char_cursor#40, testProcport::@5/print_char_cursor#42, testProcport::@7/print_char_cursor#44, testProcport::@9/print_char_cursor#46 ) print_uchar::b#8 = phi( testProcport::@1/print_uchar::b#0, testProcport::@11/print_uchar::b#5, testProcport::@13/print_uchar::b#6, testProcport::@15/print_uchar::b#7, testProcport::@3/print_uchar::b#1, testProcport::@5/print_uchar::b#2, testProcport::@7/print_uchar::b#3, testProcport::@9/print_uchar::b#4 ) print_uchar::$0 = print_uchar::b#8 >> 4 print_char::ch#1 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#9 = phi( print_uchar/print_uchar::b#8 ) @@ -72,7 +72,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#4 = print_char_cursor#63 print_uchar::$2 = print_uchar::b#9 & $f print_char::ch#2 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#64 = phi( print_uchar::@1/print_char_cursor#8 ) @@ -84,7 +84,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_char_cursor#66 = phi( print_str::@2/print_char_cursor#116, print_uchar/print_char_cursor#119, print_uchar::@1/print_char_cursor#4 ) print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -100,10 +100,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -119,7 +119,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -136,9 +136,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -176,7 +176,7 @@ main: scope:[main] from __start::@1 *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK *PROCPORT = PROCPORT_BASIC_KERNEL_IO *IO_RAM = $dd - call print_cls + call print_cls to:main::@3 main::@3: scope:[main] from main print_char_cursor#69 = phi( main/print_char_cursor#10 ) @@ -184,13 +184,13 @@ main::@3: scope:[main] from main print_line_cursor#4 = print_line_cursor#39 print_char_cursor#11 = print_char_cursor#69 print_str::str#1 = main::str - call print_str + call print_str to:main::@4 main::@4: scope:[main] from main::@3 print_line_cursor#71 = phi( main::@3/print_line_cursor#4 ) print_char_cursor#70 = phi( main::@3/print_char_cursor#1 ) print_char_cursor#12 = print_char_cursor#70 - call print_ln + call print_ln to:main::@5 main::@5: scope:[main] from main::@4 print_char_cursor#71 = phi( main::@4/print_char_cursor#3 ) @@ -200,7 +200,7 @@ main::@5: scope:[main] from main::@4 testProcport::ddr#0 = PROCPORT_DDR_MEMORY_MASK testProcport::port#0 = PROCPORT_RAM_ALL testProcport::ddr2#0 = PROCPORT_DDR_MEMORY_MASK - call testProcport + call testProcport to:main::@6 main::@6: scope:[main] from main::@5 print_line_cursor#41 = phi( main::@5/print_line_cursor#31 ) @@ -210,7 +210,7 @@ main::@6: scope:[main] from main::@5 testProcport::ddr#1 = PROCPORT_DDR_MEMORY_MASK testProcport::port#1 = PROCPORT_RAM_IO testProcport::ddr2#1 = PROCPORT_DDR_MEMORY_MASK - call testProcport + call testProcport to:main::@7 main::@7: scope:[main] from main::@6 print_line_cursor#42 = phi( main::@6/print_line_cursor#31 ) @@ -220,7 +220,7 @@ main::@7: scope:[main] from main::@6 testProcport::ddr#2 = PROCPORT_DDR_MEMORY_MASK testProcport::port#2 = PROCPORT_RAM_CHARROM testProcport::ddr2#2 = PROCPORT_DDR_MEMORY_MASK - call testProcport + call testProcport to:main::@8 main::@8: scope:[main] from main::@7 print_line_cursor#43 = phi( main::@7/print_line_cursor#31 ) @@ -230,7 +230,7 @@ main::@8: scope:[main] from main::@7 testProcport::ddr#3 = PROCPORT_DDR_MEMORY_MASK testProcport::port#3 = PROCPORT_KERNEL_IO testProcport::ddr2#3 = PROCPORT_DDR_MEMORY_MASK - call testProcport + call testProcport to:main::@9 main::@9: scope:[main] from main::@8 print_line_cursor#44 = phi( main::@8/print_line_cursor#31 ) @@ -240,7 +240,7 @@ main::@9: scope:[main] from main::@8 testProcport::ddr#4 = PROCPORT_DDR_MEMORY_MASK testProcport::port#4 = PROCPORT_BASIC_KERNEL_IO testProcport::ddr2#4 = PROCPORT_DDR_MEMORY_MASK - call testProcport + call testProcport to:main::@10 main::@10: scope:[main] from main::@9 print_line_cursor#45 = phi( main::@9/print_line_cursor#31 ) @@ -250,7 +250,7 @@ main::@10: scope:[main] from main::@9 testProcport::ddr#5 = 0 testProcport::port#5 = 0 testProcport::ddr2#5 = 0 - call testProcport + call testProcport to:main::@11 main::@11: scope:[main] from main::@10 print_line_cursor#46 = phi( main::@10/print_line_cursor#31 ) @@ -260,7 +260,7 @@ main::@11: scope:[main] from main::@10 testProcport::ddr#6 = $ff testProcport::port#6 = 0 testProcport::ddr2#6 = 0 - call testProcport + call testProcport to:main::@12 main::@12: scope:[main] from main::@11 print_line_cursor#47 = phi( main::@11/print_line_cursor#31 ) @@ -270,7 +270,7 @@ main::@12: scope:[main] from main::@11 testProcport::ddr#7 = $ff testProcport::port#7 = $ff testProcport::ddr2#7 = 0 - call testProcport + call testProcport to:main::@13 main::@13: scope:[main] from main::@12 print_line_cursor#48 = phi( main::@12/print_line_cursor#31 ) @@ -280,7 +280,7 @@ main::@13: scope:[main] from main::@12 testProcport::ddr#8 = $ff testProcport::port#8 = 0 testProcport::ddr2#8 = $ff - call testProcport + call testProcport to:main::@14 main::@14: scope:[main] from main::@13 print_line_cursor#49 = phi( main::@13/print_line_cursor#31 ) @@ -290,7 +290,7 @@ main::@14: scope:[main] from main::@13 testProcport::ddr#9 = $ff testProcport::port#9 = $55 testProcport::ddr2#9 = $ff - call testProcport + call testProcport to:main::@15 main::@15: scope:[main] from main::@14 print_line_cursor#50 = phi( main::@14/print_line_cursor#31 ) @@ -300,7 +300,7 @@ main::@15: scope:[main] from main::@14 testProcport::ddr#10 = $ff testProcport::port#10 = $aa testProcport::ddr2#10 = $ff - call testProcport + call testProcport to:main::@16 main::@16: scope:[main] from main::@15 print_line_cursor#51 = phi( main::@15/print_line_cursor#31 ) @@ -310,7 +310,7 @@ main::@16: scope:[main] from main::@15 testProcport::ddr#11 = $ff testProcport::port#11 = $ff testProcport::ddr2#11 = $ff - call testProcport + call testProcport to:main::@17 main::@17: scope:[main] from main::@16 print_line_cursor#52 = phi( main::@16/print_line_cursor#31 ) @@ -320,7 +320,7 @@ main::@17: scope:[main] from main::@16 testProcport::ddr#12 = $55 testProcport::port#12 = 0 testProcport::ddr2#12 = $55 - call testProcport + call testProcport to:main::@18 main::@18: scope:[main] from main::@17 print_line_cursor#53 = phi( main::@17/print_line_cursor#31 ) @@ -330,7 +330,7 @@ main::@18: scope:[main] from main::@17 testProcport::ddr#13 = $55 testProcport::port#13 = $55 testProcport::ddr2#13 = $55 - call testProcport + call testProcport to:main::@19 main::@19: scope:[main] from main::@18 print_line_cursor#54 = phi( main::@18/print_line_cursor#31 ) @@ -340,7 +340,7 @@ main::@19: scope:[main] from main::@18 testProcport::ddr#14 = $55 testProcport::port#14 = $ff testProcport::ddr2#14 = $55 - call testProcport + call testProcport to:main::@20 main::@20: scope:[main] from main::@19 print_line_cursor#55 = phi( main::@19/print_line_cursor#31 ) @@ -350,7 +350,7 @@ main::@20: scope:[main] from main::@19 testProcport::ddr#15 = $aa testProcport::port#15 = 0 testProcport::ddr2#15 = $aa - call testProcport + call testProcport to:main::@21 main::@21: scope:[main] from main::@20 print_line_cursor#56 = phi( main::@20/print_line_cursor#31 ) @@ -360,7 +360,7 @@ main::@21: scope:[main] from main::@20 testProcport::ddr#16 = $aa testProcport::port#16 = $ff testProcport::ddr2#16 = $aa - call testProcport + call testProcport to:main::@22 main::@22: scope:[main] from main::@21 print_line_cursor#57 = phi( main::@21/print_line_cursor#31 ) @@ -370,7 +370,7 @@ main::@22: scope:[main] from main::@21 testProcport::ddr#17 = $aa testProcport::port#17 = $aa testProcport::ddr2#17 = $aa - call testProcport + call testProcport to:main::@23 main::@23: scope:[main] from main::@22 print_line_cursor#58 = phi( main::@22/print_line_cursor#31 ) @@ -380,7 +380,7 @@ main::@23: scope:[main] from main::@22 testProcport::ddr#18 = $ff testProcport::port#18 = $d0 testProcport::ddr2#18 = 0 - call testProcport + call testProcport to:main::@24 main::@24: scope:[main] from main::@23 print_line_cursor#59 = phi( main::@23/print_line_cursor#31 ) @@ -390,7 +390,7 @@ main::@24: scope:[main] from main::@23 testProcport::ddr#19 = $ff testProcport::port#19 = $55 testProcport::ddr2#19 = $55 - call testProcport + call testProcport to:main::@25 main::@25: scope:[main] from main::@24 print_line_cursor#60 = phi( main::@24/print_line_cursor#31 ) @@ -400,7 +400,7 @@ main::@25: scope:[main] from main::@24 testProcport::ddr#20 = $17 testProcport::port#20 = $15 testProcport::ddr2#20 = $15 - call testProcport + call testProcport to:main::@26 main::@26: scope:[main] from main::@25 print_line_cursor#61 = phi( main::@25/print_line_cursor#31 ) @@ -410,7 +410,7 @@ main::@26: scope:[main] from main::@25 testProcport::ddr#21 = $17 testProcport::port#21 = $15 testProcport::ddr2#21 = $17 - call testProcport + call testProcport to:main::@27 main::@27: scope:[main] from main::@26 print_line_cursor#62 = phi( main::@26/print_line_cursor#31 ) @@ -420,7 +420,7 @@ main::@27: scope:[main] from main::@26 testProcport::ddr#22 = $17 testProcport::port#22 = $17 testProcport::ddr2#22 = $17 - call testProcport + call testProcport to:main::@28 main::@28: scope:[main] from main::@27 print_line_cursor#63 = phi( main::@27/print_line_cursor#31 ) @@ -449,7 +449,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) +void testProcport(char ddr , char port , char ddr2) testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@5 main::@6 main::@7 main::@8 main::@9 print_line_cursor#91 = phi( main::@10/print_line_cursor#10, main::@11/print_line_cursor#11, main::@12/print_line_cursor#12, main::@13/print_line_cursor#13, main::@14/print_line_cursor#14, main::@15/print_line_cursor#15, main::@16/print_line_cursor#16, main::@17/print_line_cursor#17, main::@18/print_line_cursor#18, main::@19/print_line_cursor#19, main::@20/print_line_cursor#20, main::@21/print_line_cursor#21, main::@22/print_line_cursor#22, main::@23/print_line_cursor#23, main::@24/print_line_cursor#24, main::@25/print_line_cursor#25, main::@26/print_line_cursor#26, main::@27/print_line_cursor#27, main::@5/print_line_cursor#5, main::@6/print_line_cursor#6, main::@7/print_line_cursor#7, main::@8/print_line_cursor#8, main::@9/print_line_cursor#9 ) print_char_cursor#122 = phi( main::@10/print_char_cursor#18, main::@11/print_char_cursor#19, main::@12/print_char_cursor#20, main::@13/print_char_cursor#21, main::@14/print_char_cursor#22, main::@15/print_char_cursor#23, main::@16/print_char_cursor#24, main::@17/print_char_cursor#25, main::@18/print_char_cursor#26, main::@19/print_char_cursor#27, main::@20/print_char_cursor#28, main::@21/print_char_cursor#29, main::@22/print_char_cursor#30, main::@23/print_char_cursor#31, main::@24/print_char_cursor#32, main::@25/print_char_cursor#33, main::@26/print_char_cursor#34, main::@27/print_char_cursor#35, main::@5/print_char_cursor#13, main::@6/print_char_cursor#14, main::@7/print_char_cursor#15, main::@8/print_char_cursor#16, main::@9/print_char_cursor#17 ) @@ -462,7 +462,7 @@ testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13 *PROCPORT = testProcport::port#23 *PROCPORT_DDR = testProcport::ddr2#23 print_str::str#2 = testProcport::str - call print_str + call print_str to:testProcport::@1 testProcport::@1: scope:[testProcport] from testProcport print_line_cursor#90 = phi( testProcport/print_line_cursor#91 ) @@ -472,7 +472,7 @@ testProcport::@1: scope:[testProcport] from testProcport print_char_cursor#96 = phi( testProcport/print_char_cursor#1 ) print_char_cursor#38 = print_char_cursor#96 print_uchar::b#0 = testProcport::ddr#24 - call print_uchar + call print_uchar to:testProcport::@2 testProcport::@2: scope:[testProcport] from testProcport::@1 print_line_cursor#89 = phi( testProcport::@1/print_line_cursor#90 ) @@ -481,7 +481,7 @@ testProcport::@2: scope:[testProcport] from testProcport::@1 print_char_cursor#97 = phi( testProcport::@1/print_char_cursor#6 ) print_char_cursor#39 = print_char_cursor#97 print_str::str#3 = testProcport::str1 - call print_str + call print_str to:testProcport::@3 testProcport::@3: scope:[testProcport] from testProcport::@2 print_line_cursor#88 = phi( testProcport::@2/print_line_cursor#89 ) @@ -490,7 +490,7 @@ testProcport::@3: scope:[testProcport] from testProcport::@2 print_char_cursor#98 = phi( testProcport::@2/print_char_cursor#1 ) print_char_cursor#40 = print_char_cursor#98 print_uchar::b#1 = testProcport::port#24 - call print_uchar + call print_uchar to:testProcport::@4 testProcport::@4: scope:[testProcport] from testProcport::@3 print_line_cursor#87 = phi( testProcport::@3/print_line_cursor#88 ) @@ -498,7 +498,7 @@ testProcport::@4: scope:[testProcport] from testProcport::@3 print_char_cursor#99 = phi( testProcport::@3/print_char_cursor#6 ) print_char_cursor#41 = print_char_cursor#99 print_str::str#4 = testProcport::str2 - call print_str + call print_str to:testProcport::@5 testProcport::@5: scope:[testProcport] from testProcport::@4 print_line_cursor#86 = phi( testProcport::@4/print_line_cursor#87 ) @@ -506,83 +506,83 @@ testProcport::@5: scope:[testProcport] from testProcport::@4 print_char_cursor#100 = phi( testProcport::@4/print_char_cursor#1 ) print_char_cursor#42 = print_char_cursor#100 print_uchar::b#2 = testProcport::ddr2#24 - call print_uchar + call print_uchar to:testProcport::@6 testProcport::@6: scope:[testProcport] from testProcport::@5 print_line_cursor#85 = phi( testProcport::@5/print_line_cursor#86 ) print_char_cursor#101 = phi( testProcport::@5/print_char_cursor#6 ) print_char_cursor#43 = print_char_cursor#101 print_str::str#5 = testProcport::str3 - call print_str + call print_str to:testProcport::@7 testProcport::@7: scope:[testProcport] from testProcport::@6 print_line_cursor#84 = phi( testProcport::@6/print_line_cursor#85 ) print_char_cursor#102 = phi( testProcport::@6/print_char_cursor#1 ) print_char_cursor#44 = print_char_cursor#102 print_uchar::b#3 = *PROCPORT_DDR - call print_uchar + call print_uchar to:testProcport::@8 testProcport::@8: scope:[testProcport] from testProcport::@7 print_line_cursor#83 = phi( testProcport::@7/print_line_cursor#84 ) print_char_cursor#103 = phi( testProcport::@7/print_char_cursor#6 ) print_char_cursor#45 = print_char_cursor#103 print_str::str#6 = testProcport::str4 - call print_str + call print_str to:testProcport::@9 testProcport::@9: scope:[testProcport] from testProcport::@8 print_line_cursor#82 = phi( testProcport::@8/print_line_cursor#83 ) print_char_cursor#104 = phi( testProcport::@8/print_char_cursor#1 ) print_char_cursor#46 = print_char_cursor#104 print_uchar::b#4 = *PROCPORT - call print_uchar + call print_uchar to:testProcport::@10 testProcport::@10: scope:[testProcport] from testProcport::@9 print_line_cursor#81 = phi( testProcport::@9/print_line_cursor#82 ) print_char_cursor#105 = phi( testProcport::@9/print_char_cursor#6 ) print_char_cursor#47 = print_char_cursor#105 print_str::str#7 = testProcport::str5 - call print_str + call print_str to:testProcport::@11 testProcport::@11: scope:[testProcport] from testProcport::@10 print_line_cursor#80 = phi( testProcport::@10/print_line_cursor#81 ) print_char_cursor#106 = phi( testProcport::@10/print_char_cursor#1 ) print_char_cursor#48 = print_char_cursor#106 print_uchar::b#5 = *BASIC_ROM - call print_uchar + call print_uchar to:testProcport::@12 testProcport::@12: scope:[testProcport] from testProcport::@11 print_line_cursor#79 = phi( testProcport::@11/print_line_cursor#80 ) print_char_cursor#107 = phi( testProcport::@11/print_char_cursor#6 ) print_char_cursor#49 = print_char_cursor#107 print_str::str#8 = testProcport::str6 - call print_str + call print_str to:testProcport::@13 testProcport::@13: scope:[testProcport] from testProcport::@12 print_line_cursor#78 = phi( testProcport::@12/print_line_cursor#79 ) print_char_cursor#108 = phi( testProcport::@12/print_char_cursor#1 ) print_char_cursor#50 = print_char_cursor#108 print_uchar::b#6 = *IO_RAM - call print_uchar + call print_uchar to:testProcport::@14 testProcport::@14: scope:[testProcport] from testProcport::@13 print_line_cursor#77 = phi( testProcport::@13/print_line_cursor#78 ) print_char_cursor#109 = phi( testProcport::@13/print_char_cursor#6 ) print_char_cursor#51 = print_char_cursor#109 print_str::str#9 = testProcport::str7 - call print_str + call print_str to:testProcport::@15 testProcport::@15: scope:[testProcport] from testProcport::@14 print_line_cursor#76 = phi( testProcport::@14/print_line_cursor#77 ) print_char_cursor#110 = phi( testProcport::@14/print_char_cursor#1 ) print_char_cursor#52 = print_char_cursor#110 print_uchar::b#7 = *KERNAL_ROM - call print_uchar + call print_uchar to:testProcport::@16 testProcport::@16: scope:[testProcport] from testProcport::@15 print_line_cursor#73 = phi( testProcport::@15/print_line_cursor#76 ) print_char_cursor#111 = phi( testProcport::@15/print_char_cursor#6 ) print_char_cursor#53 = print_char_cursor#111 - call print_ln + call print_ln to:testProcport::@17 testProcport::@17: scope:[testProcport] from testProcport::@16 print_char_cursor#112 = phi( testProcport::@16/print_char_cursor#3 ) @@ -602,7 +602,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#32 = print_screen#0 print_char_cursor#56 = print_line_cursor#32 to:__start::@1 @@ -610,7 +610,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#123 = phi( __start::__init1/print_char_cursor#56 ) print_line_cursor#74 = phi( __start::__init1/print_line_cursor#32 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -630,425 +630,425 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BASIC_ROM = (byte*)$a000 -constant byte* const IO_RAM = (byte*)$d000 -constant byte* const KERNAL_ROM = (byte*)$e000 -constant byte* const PROCPORT = (byte*)1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant byte* const PROCPORT_DDR = (byte*)0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_KERNEL_IO = 6 -constant const byte PROCPORT_RAM_ALL = 0 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant const byte PROCPORT_RAM_IO = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*)$400 +__constant char * const BASIC_ROM = (char *)$a000 +__constant char * const IO_RAM = (char *)$d000 +__constant char * const KERNAL_ROM = (char *)$e000 +__constant char * const PROCPORT = (char *)1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant char * const PROCPORT_DDR = (char *)0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_KERNEL_IO = 6 +__constant const char PROCPORT_RAM_ALL = 0 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant const char PROCPORT_RAM_IO = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte* main::str[$28] = "ddr port ddr2 $00 $01 $a000 $d000 $e000" -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#100 -byte* print_char_cursor#101 -byte* print_char_cursor#102 -byte* print_char_cursor#103 -byte* print_char_cursor#104 -byte* print_char_cursor#105 -byte* print_char_cursor#106 -byte* print_char_cursor#107 -byte* print_char_cursor#108 -byte* print_char_cursor#109 -byte* print_char_cursor#11 -byte* print_char_cursor#110 -byte* print_char_cursor#111 -byte* print_char_cursor#112 -byte* print_char_cursor#113 -byte* print_char_cursor#114 -byte* print_char_cursor#115 -byte* print_char_cursor#116 -byte* print_char_cursor#117 -byte* print_char_cursor#118 -byte* print_char_cursor#119 -byte* print_char_cursor#12 -byte* print_char_cursor#120 -byte* print_char_cursor#121 -byte* print_char_cursor#122 -byte* print_char_cursor#123 -byte* print_char_cursor#124 -byte* print_char_cursor#125 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#80 -byte* print_char_cursor#81 -byte* print_char_cursor#82 -byte* print_char_cursor#83 -byte* print_char_cursor#84 -byte* print_char_cursor#85 -byte* print_char_cursor#86 -byte* print_char_cursor#87 -byte* print_char_cursor#88 -byte* print_char_cursor#89 -byte* print_char_cursor#9 -byte* print_char_cursor#90 -byte* print_char_cursor#91 -byte* print_char_cursor#92 -byte* print_char_cursor#93 -byte* print_char_cursor#94 -byte* print_char_cursor#95 -byte* print_char_cursor#96 -byte* print_char_cursor#97 -byte* print_char_cursor#98 -byte* print_char_cursor#99 +__constant char main::str[$28] = "ddr port ddr2 $00 $01 $a000 $d000 $e000" +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#100 +char *print_char_cursor#101 +char *print_char_cursor#102 +char *print_char_cursor#103 +char *print_char_cursor#104 +char *print_char_cursor#105 +char *print_char_cursor#106 +char *print_char_cursor#107 +char *print_char_cursor#108 +char *print_char_cursor#109 +char *print_char_cursor#11 +char *print_char_cursor#110 +char *print_char_cursor#111 +char *print_char_cursor#112 +char *print_char_cursor#113 +char *print_char_cursor#114 +char *print_char_cursor#115 +char *print_char_cursor#116 +char *print_char_cursor#117 +char *print_char_cursor#118 +char *print_char_cursor#119 +char *print_char_cursor#12 +char *print_char_cursor#120 +char *print_char_cursor#121 +char *print_char_cursor#122 +char *print_char_cursor#123 +char *print_char_cursor#124 +char *print_char_cursor#125 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#80 +char *print_char_cursor#81 +char *print_char_cursor#82 +char *print_char_cursor#83 +char *print_char_cursor#84 +char *print_char_cursor#85 +char *print_char_cursor#86 +char *print_char_cursor#87 +char *print_char_cursor#88 +char *print_char_cursor#89 +char *print_char_cursor#9 +char *print_char_cursor#90 +char *print_char_cursor#91 +char *print_char_cursor#92 +char *print_char_cursor#93 +char *print_char_cursor#94 +char *print_char_cursor#95 +char *print_char_cursor#96 +char *print_char_cursor#97 +char *print_char_cursor#98 +char *print_char_cursor#99 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#40 -byte* print_line_cursor#41 -byte* print_line_cursor#42 -byte* print_line_cursor#43 -byte* print_line_cursor#44 -byte* print_line_cursor#45 -byte* print_line_cursor#46 -byte* print_line_cursor#47 -byte* print_line_cursor#48 -byte* print_line_cursor#49 -byte* print_line_cursor#5 -byte* print_line_cursor#50 -byte* print_line_cursor#51 -byte* print_line_cursor#52 -byte* print_line_cursor#53 -byte* print_line_cursor#54 -byte* print_line_cursor#55 -byte* print_line_cursor#56 -byte* print_line_cursor#57 -byte* print_line_cursor#58 -byte* print_line_cursor#59 -byte* print_line_cursor#6 -byte* print_line_cursor#60 -byte* print_line_cursor#61 -byte* print_line_cursor#62 -byte* print_line_cursor#63 -byte* print_line_cursor#64 -byte* print_line_cursor#65 -byte* print_line_cursor#66 -byte* print_line_cursor#67 -byte* print_line_cursor#68 -byte* print_line_cursor#69 -byte* print_line_cursor#7 -byte* print_line_cursor#70 -byte* print_line_cursor#71 -byte* print_line_cursor#72 -byte* print_line_cursor#73 -byte* print_line_cursor#74 -byte* print_line_cursor#75 -byte* print_line_cursor#76 -byte* print_line_cursor#77 -byte* print_line_cursor#78 -byte* print_line_cursor#79 -byte* print_line_cursor#8 -byte* print_line_cursor#80 -byte* print_line_cursor#81 -byte* print_line_cursor#82 -byte* print_line_cursor#83 -byte* print_line_cursor#84 -byte* print_line_cursor#85 -byte* print_line_cursor#86 -byte* print_line_cursor#87 -byte* print_line_cursor#88 -byte* print_line_cursor#89 -byte* print_line_cursor#9 -byte* print_line_cursor#90 -byte* print_line_cursor#91 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#40 +char *print_line_cursor#41 +char *print_line_cursor#42 +char *print_line_cursor#43 +char *print_line_cursor#44 +char *print_line_cursor#45 +char *print_line_cursor#46 +char *print_line_cursor#47 +char *print_line_cursor#48 +char *print_line_cursor#49 +char *print_line_cursor#5 +char *print_line_cursor#50 +char *print_line_cursor#51 +char *print_line_cursor#52 +char *print_line_cursor#53 +char *print_line_cursor#54 +char *print_line_cursor#55 +char *print_line_cursor#56 +char *print_line_cursor#57 +char *print_line_cursor#58 +char *print_line_cursor#59 +char *print_line_cursor#6 +char *print_line_cursor#60 +char *print_line_cursor#61 +char *print_line_cursor#62 +char *print_line_cursor#63 +char *print_line_cursor#64 +char *print_line_cursor#65 +char *print_line_cursor#66 +char *print_line_cursor#67 +char *print_line_cursor#68 +char *print_line_cursor#69 +char *print_line_cursor#7 +char *print_line_cursor#70 +char *print_line_cursor#71 +char *print_line_cursor#72 +char *print_line_cursor#73 +char *print_line_cursor#74 +char *print_line_cursor#75 +char *print_line_cursor#76 +char *print_line_cursor#77 +char *print_line_cursor#78 +char *print_line_cursor#79 +char *print_line_cursor#8 +char *print_line_cursor#80 +char *print_line_cursor#81 +char *print_line_cursor#82 +char *print_line_cursor#83 +char *print_line_cursor#84 +char *print_line_cursor#85 +char *print_line_cursor#86 +char *print_line_cursor#87 +char *print_line_cursor#88 +char *print_line_cursor#89 +char *print_line_cursor#9 +char *print_line_cursor#90 +char *print_line_cursor#91 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#10 -byte* print_str::str#11 -byte* print_str::str#12 -byte* print_str::str#13 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 -byte* print_str::str#8 -byte* print_str::str#9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -byte print_uchar::b#4 -byte print_uchar::b#5 -byte print_uchar::b#6 -byte print_uchar::b#7 -byte print_uchar::b#8 -byte print_uchar::b#9 -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) -byte testProcport::ddr -byte testProcport::ddr#0 -byte testProcport::ddr#1 -byte testProcport::ddr#10 -byte testProcport::ddr#11 -byte testProcport::ddr#12 -byte testProcport::ddr#13 -byte testProcport::ddr#14 -byte testProcport::ddr#15 -byte testProcport::ddr#16 -byte testProcport::ddr#17 -byte testProcport::ddr#18 -byte testProcport::ddr#19 -byte testProcport::ddr#2 -byte testProcport::ddr#20 -byte testProcport::ddr#21 -byte testProcport::ddr#22 -byte testProcport::ddr#23 -byte testProcport::ddr#24 -byte testProcport::ddr#3 -byte testProcport::ddr#4 -byte testProcport::ddr#5 -byte testProcport::ddr#6 -byte testProcport::ddr#7 -byte testProcport::ddr#8 -byte testProcport::ddr#9 -byte testProcport::ddr2 -byte testProcport::ddr2#0 -byte testProcport::ddr2#1 -byte testProcport::ddr2#10 -byte testProcport::ddr2#11 -byte testProcport::ddr2#12 -byte testProcport::ddr2#13 -byte testProcport::ddr2#14 -byte testProcport::ddr2#15 -byte testProcport::ddr2#16 -byte testProcport::ddr2#17 -byte testProcport::ddr2#18 -byte testProcport::ddr2#19 -byte testProcport::ddr2#2 -byte testProcport::ddr2#20 -byte testProcport::ddr2#21 -byte testProcport::ddr2#22 -byte testProcport::ddr2#23 -byte testProcport::ddr2#24 -byte testProcport::ddr2#25 -byte testProcport::ddr2#26 -byte testProcport::ddr2#27 -byte testProcport::ddr2#28 -byte testProcport::ddr2#3 -byte testProcport::ddr2#4 -byte testProcport::ddr2#5 -byte testProcport::ddr2#6 -byte testProcport::ddr2#7 -byte testProcport::ddr2#8 -byte testProcport::ddr2#9 -byte testProcport::port -byte testProcport::port#0 -byte testProcport::port#1 -byte testProcport::port#10 -byte testProcport::port#11 -byte testProcport::port#12 -byte testProcport::port#13 -byte testProcport::port#14 -byte testProcport::port#15 -byte testProcport::port#16 -byte testProcport::port#17 -byte testProcport::port#18 -byte testProcport::port#19 -byte testProcport::port#2 -byte testProcport::port#20 -byte testProcport::port#21 -byte testProcport::port#22 -byte testProcport::port#23 -byte testProcport::port#24 -byte testProcport::port#25 -byte testProcport::port#26 -byte testProcport::port#3 -byte testProcport::port#4 -byte testProcport::port#5 -byte testProcport::port#6 -byte testProcport::port#7 -byte testProcport::port#8 -byte testProcport::port#9 -constant byte* testProcport::str[2] = " " -constant byte* testProcport::str1[4] = " " -constant byte* testProcport::str2[4] = " " -constant byte* testProcport::str3[3] = " " -constant byte* testProcport::str4[3] = " " -constant byte* testProcport::str5[5] = " " -constant byte* testProcport::str6[5] = " " -constant byte* testProcport::str7[5] = " " +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#10 +char *print_str::str#11 +char *print_str::str#12 +char *print_str::str#13 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 +char *print_str::str#8 +char *print_str::str#9 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +char print_uchar::b#4 +char print_uchar::b#5 +char print_uchar::b#6 +char print_uchar::b#7 +char print_uchar::b#8 +char print_uchar::b#9 +void testProcport(char ddr , char port , char ddr2) +char testProcport::ddr +char testProcport::ddr#0 +char testProcport::ddr#1 +char testProcport::ddr#10 +char testProcport::ddr#11 +char testProcport::ddr#12 +char testProcport::ddr#13 +char testProcport::ddr#14 +char testProcport::ddr#15 +char testProcport::ddr#16 +char testProcport::ddr#17 +char testProcport::ddr#18 +char testProcport::ddr#19 +char testProcport::ddr#2 +char testProcport::ddr#20 +char testProcport::ddr#21 +char testProcport::ddr#22 +char testProcport::ddr#23 +char testProcport::ddr#24 +char testProcport::ddr#3 +char testProcport::ddr#4 +char testProcport::ddr#5 +char testProcport::ddr#6 +char testProcport::ddr#7 +char testProcport::ddr#8 +char testProcport::ddr#9 +char testProcport::ddr2 +char testProcport::ddr2#0 +char testProcport::ddr2#1 +char testProcport::ddr2#10 +char testProcport::ddr2#11 +char testProcport::ddr2#12 +char testProcport::ddr2#13 +char testProcport::ddr2#14 +char testProcport::ddr2#15 +char testProcport::ddr2#16 +char testProcport::ddr2#17 +char testProcport::ddr2#18 +char testProcport::ddr2#19 +char testProcport::ddr2#2 +char testProcport::ddr2#20 +char testProcport::ddr2#21 +char testProcport::ddr2#22 +char testProcport::ddr2#23 +char testProcport::ddr2#24 +char testProcport::ddr2#25 +char testProcport::ddr2#26 +char testProcport::ddr2#27 +char testProcport::ddr2#28 +char testProcport::ddr2#3 +char testProcport::ddr2#4 +char testProcport::ddr2#5 +char testProcport::ddr2#6 +char testProcport::ddr2#7 +char testProcport::ddr2#8 +char testProcport::ddr2#9 +char testProcport::port +char testProcport::port#0 +char testProcport::port#1 +char testProcport::port#10 +char testProcport::port#11 +char testProcport::port#12 +char testProcport::port#13 +char testProcport::port#14 +char testProcport::port#15 +char testProcport::port#16 +char testProcport::port#17 +char testProcport::port#18 +char testProcport::port#19 +char testProcport::port#2 +char testProcport::port#20 +char testProcport::port#21 +char testProcport::port#22 +char testProcport::port#23 +char testProcport::port#24 +char testProcport::port#25 +char testProcport::port#26 +char testProcport::port#3 +char testProcport::port#4 +char testProcport::port#5 +char testProcport::port#6 +char testProcport::port#7 +char testProcport::port#8 +char testProcport::port#9 +__constant char testProcport::str[2] = " " +__constant char testProcport::str1[4] = " " +__constant char testProcport::str2[4] = " " +__constant char testProcport::str3[3] = " " +__constant char testProcport::str4[3] = " " +__constant char testProcport::str5[5] = " " +__constant char testProcport::str6[5] = " " +__constant char testProcport::str7[5] = " " Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#10 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#35 + $28 @@ -1120,7 +1120,7 @@ Adding number conversion cast (unumber) $ff in *PROCPORT_DDR = $ff Adding number conversion cast (unumber) 0 in *PROCPORT = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast *BASIC_ROM = (unumber)$a0 Inlining cast *KERNAL_ROM = (unumber)$e0 Inlining cast *IO_RAM = (unumber)$d0 @@ -1182,12 +1182,12 @@ Inlining cast testProcport::ddr2#22 = (unumber)$17 Inlining cast *PROCPORT_DDR = (unumber)$ff Inlining cast *PROCPORT = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 1 -Simplifying constant pointer cast (byte*) 40960 -Simplifying constant pointer cast (byte*) 57344 -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 1 +Simplifying constant pointer cast (char *) 40960 +Simplifying constant pointer cast (char *) 57344 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast 4 @@ -1255,77 +1255,77 @@ Simplifying constant integer cast $17 Simplifying constant integer cast $3e7 Simplifying constant integer cast $ff Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (byte) $e0 -Finalized unsigned number type (byte) $d0 -Finalized unsigned number type (byte) $dd -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $d0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $55 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (word) $3e7 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (char) $e0 +Finalized unsigned number type (char) $d0 +Finalized unsigned number type (char) $dd +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $d0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $55 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (unsigned int) $3e7 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#9 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#9 & $f Inversing boolean not [60] memset::$1 = memset::num#1 <= 0 from [59] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#10 = print_str::str#11 print_str::str#12 @@ -1602,13 +1602,13 @@ Constant print_str::str#6 = testProcport::str4 Constant print_str::str#7 = testProcport::str5 Constant print_str::str#8 = testProcport::str6 Constant print_str::str#9 = testProcport::str7 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [38] if(memset::num#0<=0) goto memset::@1 if() condition always true - replacing block destination [185] if(true) goto main::@2 @@ -1729,7 +1729,7 @@ Constant inlined print_str::str#9 = testProcport::str5 Constant inlined print_str::str#4 = testProcport::str1 Constant inlined print_str::str#3 = testProcport::str1 Constant inlined print_str::str#2 = testProcport::str -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = main::str Constant inlined print_str::str#8 = testProcport::str5 Constant inlined print_str::str#7 = testProcport::str5 @@ -1754,7 +1754,7 @@ Constant inlined testProcport::str2 = testProcport::str1 Constant inlined testProcport::ddr#14 = $55 Constant inlined testProcport::ddr#13 = $55 Constant inlined testProcport::str4 = testProcport::str3 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined testProcport::ddr#12 = $55 Constant inlined testProcport::ddr2#22 = $17 Constant inlined testProcport::ddr#11 = $ff @@ -1796,10 +1796,10 @@ Constant inlined testProcport::ddr#20 = $17 Constant inlined testProcport::ddr2#1 = PROCPORT_DDR_MEMORY_MASK Constant inlined testProcport::ddr2#0 = PROCPORT_DDR_MEMORY_MASK Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main::@3 @@ -1962,107 +1962,107 @@ main: scope:[main] from [6] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK [7] *PROCPORT = PROCPORT_BASIC_KERNEL_IO [8] *IO_RAM = $dd - [9] call print_cls + [9] call print_cls to:main::@2 main::@2: scope:[main] from main [10] phi() - [11] call print_str + [11] call print_str to:main::@3 main::@3: scope:[main] from main::@2 [12] phi() - [13] call print_ln + [13] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [14] phi() - [15] call testProcport + [15] call testProcport to:main::@5 main::@5: scope:[main] from main::@4 [16] phi() - [17] call testProcport + [17] call testProcport to:main::@6 main::@6: scope:[main] from main::@5 [18] phi() - [19] call testProcport + [19] call testProcport to:main::@7 main::@7: scope:[main] from main::@6 [20] phi() - [21] call testProcport + [21] call testProcport to:main::@8 main::@8: scope:[main] from main::@7 [22] phi() - [23] call testProcport + [23] call testProcport to:main::@9 main::@9: scope:[main] from main::@8 [24] phi() - [25] call testProcport + [25] call testProcport to:main::@10 main::@10: scope:[main] from main::@9 [26] phi() - [27] call testProcport + [27] call testProcport to:main::@11 main::@11: scope:[main] from main::@10 [28] phi() - [29] call testProcport + [29] call testProcport to:main::@12 main::@12: scope:[main] from main::@11 [30] phi() - [31] call testProcport + [31] call testProcport to:main::@13 main::@13: scope:[main] from main::@12 [32] phi() - [33] call testProcport + [33] call testProcport to:main::@14 main::@14: scope:[main] from main::@13 [34] phi() - [35] call testProcport + [35] call testProcport to:main::@15 main::@15: scope:[main] from main::@14 [36] phi() - [37] call testProcport + [37] call testProcport to:main::@16 main::@16: scope:[main] from main::@15 [38] phi() - [39] call testProcport + [39] call testProcport to:main::@17 main::@17: scope:[main] from main::@16 [40] phi() - [41] call testProcport + [41] call testProcport to:main::@18 main::@18: scope:[main] from main::@17 [42] phi() - [43] call testProcport + [43] call testProcport to:main::@19 main::@19: scope:[main] from main::@18 [44] phi() - [45] call testProcport + [45] call testProcport to:main::@20 main::@20: scope:[main] from main::@19 [46] phi() - [47] call testProcport + [47] call testProcport to:main::@21 main::@21: scope:[main] from main::@20 [48] phi() - [49] call testProcport + [49] call testProcport to:main::@22 main::@22: scope:[main] from main::@21 [50] phi() - [51] call testProcport + [51] call testProcport to:main::@23 main::@23: scope:[main] from main::@22 [52] phi() - [53] call testProcport + [53] call testProcport to:main::@24 main::@24: scope:[main] from main::@23 [54] phi() - [55] call testProcport + [55] call testProcport to:main::@25 main::@25: scope:[main] from main::@24 [56] phi() - [57] call testProcport + [57] call testProcport to:main::@26 main::@26: scope:[main] from main::@25 [58] phi() - [59] call testProcport + [59] call testProcport to:main::@27 main::@27: scope:[main] from main::@26 asm { cli } @@ -2076,13 +2076,13 @@ main::@1: scope:[main] from main::@1 main::@27 void print_cls() print_cls: scope:[print_cls] from main [64] phi() - [65] call memset + [65] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [66] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@2 testProcport testProcport::@10 testProcport::@12 testProcport::@14 testProcport::@2 testProcport::@4 testProcport::@6 testProcport::@8 [67] print_char_cursor#124 = phi( main::@2/print_screen#0, testProcport/print_char_cursor#126, testProcport::@10/print_char_cursor#67, testProcport::@12/print_char_cursor#67, testProcport::@14/print_char_cursor#67, testProcport::@2/print_char_cursor#67, testProcport::@4/print_char_cursor#67, testProcport::@6/print_char_cursor#67, testProcport::@8/print_char_cursor#67 ) [67] print_str::str#13 = phi( main::@2/main::str, testProcport/testProcport::str, testProcport::@10/testProcport::str5, testProcport::@12/testProcport::str5, testProcport::@14/testProcport::str5, testProcport::@2/testProcport::str1, testProcport::@4/testProcport::str1, testProcport::@6/testProcport::str3, testProcport::@8/testProcport::str3 ) @@ -2097,7 +2097,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [71] print_char::ch#0 = *print_str::str#10 - [72] call print_char + [72] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [73] print_str::str#0 = ++ print_str::str#10 @@ -2117,7 +2117,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [78] return to:@return -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) +void testProcport(char ddr , char port , char ddr2) testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 [79] testProcport::ddr2#23 = phi( main::@9/0, main::@10/0, main::@11/0, main::@12/$ff, main::@13/$ff, main::@14/$ff, main::@15/$ff, main::@16/$55, main::@17/$55, main::@18/$55, main::@19/$aa, main::@20/$aa, main::@21/$aa, main::@22/0, main::@23/$55, main::@24/$15, main::@25/$17, main::@26/$17, main::@4/PROCPORT_DDR_MEMORY_MASK, main::@5/PROCPORT_DDR_MEMORY_MASK, main::@6/PROCPORT_DDR_MEMORY_MASK, main::@7/PROCPORT_DDR_MEMORY_MASK, main::@8/PROCPORT_DDR_MEMORY_MASK ) [79] testProcport::port#23 = phi( main::@9/0, main::@10/0, main::@11/$ff, main::@12/0, main::@13/$55, main::@14/$aa, main::@15/$ff, main::@16/0, main::@17/$55, main::@18/$ff, main::@19/0, main::@20/$ff, main::@21/$aa, main::@22/$d0, main::@23/$55, main::@24/$15, main::@25/$15, main::@26/$17, main::@4/PROCPORT_RAM_ALL, main::@5/PROCPORT_RAM_IO, main::@6/PROCPORT_RAM_CHARROM, main::@7/PROCPORT_KERNEL_IO, main::@8/PROCPORT_BASIC_KERNEL_IO ) @@ -2128,82 +2128,82 @@ testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13 [83] *PROCPORT = testProcport::port#23 [84] *PROCPORT_DDR = testProcport::ddr2#23 [85] print_char_cursor#126 = print_line_cursor#0 - [86] call print_str + [86] call print_str to:testProcport::@1 testProcport::@1: scope:[testProcport] from testProcport [87] print_uchar::b#0 = testProcport::ddr#23 - [88] call print_uchar + [88] call print_uchar to:testProcport::@2 testProcport::@2: scope:[testProcport] from testProcport::@1 [89] phi() - [90] call print_str + [90] call print_str to:testProcport::@3 testProcport::@3: scope:[testProcport] from testProcport::@2 [91] print_uchar::b#1 = testProcport::port#23 - [92] call print_uchar + [92] call print_uchar to:testProcport::@4 testProcport::@4: scope:[testProcport] from testProcport::@3 [93] phi() - [94] call print_str + [94] call print_str to:testProcport::@5 testProcport::@5: scope:[testProcport] from testProcport::@4 [95] print_uchar::b#2 = testProcport::ddr2#23 - [96] call print_uchar + [96] call print_uchar to:testProcport::@6 testProcport::@6: scope:[testProcport] from testProcport::@5 [97] phi() - [98] call print_str + [98] call print_str to:testProcport::@7 testProcport::@7: scope:[testProcport] from testProcport::@6 [99] print_uchar::b#3 = *PROCPORT_DDR - [100] call print_uchar + [100] call print_uchar to:testProcport::@8 testProcport::@8: scope:[testProcport] from testProcport::@7 [101] phi() - [102] call print_str + [102] call print_str to:testProcport::@9 testProcport::@9: scope:[testProcport] from testProcport::@8 [103] print_uchar::b#4 = *PROCPORT - [104] call print_uchar + [104] call print_uchar to:testProcport::@10 testProcport::@10: scope:[testProcport] from testProcport::@9 [105] phi() - [106] call print_str + [106] call print_str to:testProcport::@11 testProcport::@11: scope:[testProcport] from testProcport::@10 [107] print_uchar::b#5 = *BASIC_ROM - [108] call print_uchar + [108] call print_uchar to:testProcport::@12 testProcport::@12: scope:[testProcport] from testProcport::@11 [109] phi() - [110] call print_str + [110] call print_str to:testProcport::@13 testProcport::@13: scope:[testProcport] from testProcport::@12 [111] print_uchar::b#6 = *IO_RAM - [112] call print_uchar + [112] call print_uchar to:testProcport::@14 testProcport::@14: scope:[testProcport] from testProcport::@13 [113] phi() - [114] call print_str + [114] call print_str to:testProcport::@15 testProcport::@15: scope:[testProcport] from testProcport::@14 [115] print_uchar::b#7 = *KERNAL_ROM - [116] call print_uchar + [116] call print_uchar to:testProcport::@16 testProcport::@16: scope:[testProcport] from testProcport::@15 [117] phi() - [118] call print_ln + [118] call print_ln to:testProcport::@return testProcport::@return: scope:[testProcport] from testProcport::@16 [119] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [120] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [121] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [121] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [122] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -2214,7 +2214,7 @@ memset::@2: scope:[memset] from memset::@1 [125] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [126] print_char_cursor#66 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#1, print_uchar::@1/print_char_cursor#67 ) [126] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -2225,17 +2225,17 @@ print_char::@return: scope:[print_char] from print_char [129] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from testProcport::@1 testProcport::@11 testProcport::@13 testProcport::@15 testProcport::@3 testProcport::@5 testProcport::@7 testProcport::@9 [130] print_uchar::b#8 = phi( testProcport::@1/print_uchar::b#0, testProcport::@11/print_uchar::b#5, testProcport::@13/print_uchar::b#6, testProcport::@15/print_uchar::b#7, testProcport::@3/print_uchar::b#1, testProcport::@5/print_uchar::b#2, testProcport::@7/print_uchar::b#3, testProcport::@9/print_uchar::b#4 ) [131] print_uchar::$0 = print_uchar::b#8 >> 4 [132] print_char::ch#1 = print_hextab[print_uchar::$0] - [133] call print_char + [133] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [134] print_uchar::$2 = print_uchar::b#8 & $f [135] print_char::ch#2 = print_hextab[print_uchar::$2] - [136] call print_char + [136] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [137] return @@ -2244,60 +2244,60 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2002.0 -byte print_char::ch#1 202.0 -byte print_char::ch#2 202.0 -byte print_char::ch#3 11204.0 -byte* print_char_cursor -byte* print_char_cursor#1 88.24 -byte* print_char_cursor#118 253.5 -byte* print_char_cursor#124 189.0 -byte* print_char_cursor#126 22.0 -byte* print_char_cursor#66 10602.5 -byte* print_char_cursor#67 447.64 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2002.0 +char print_char::ch#1 // 202.0 +char print_char::ch#2 // 202.0 +char print_char::ch#3 // 11204.0 +char *print_char_cursor +char *print_char_cursor#1 // 88.24 +char *print_char_cursor#118 // 253.5 +char *print_char_cursor#124 // 189.0 +char *print_char_cursor#126 // 22.0 +char *print_char_cursor#66 // 10602.5 +char *print_char_cursor#67 // 447.64 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 33.61111111111111 -byte* print_line_cursor#35 2103.0 -byte* print_line_cursor#69 112.0 +char *print_line_cursor +char *print_line_cursor#0 // 33.61111111111111 +char *print_line_cursor#35 // 2103.0 +char *print_line_cursor#69 // 112.0 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 2002.0 -byte* print_str::str#10 1026.25 -byte* print_str::str#13 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 202.0 -byte~ print_uchar::$2 202.0 -byte print_uchar::b -byte print_uchar::b#0 22.0 -byte print_uchar::b#1 22.0 -byte print_uchar::b#2 22.0 -byte print_uchar::b#3 22.0 -byte print_uchar::b#4 22.0 -byte print_uchar::b#5 22.0 -byte print_uchar::b#6 22.0 -byte print_uchar::b#7 22.0 -byte print_uchar::b#8 72.5 -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) -byte testProcport::ddr -byte testProcport::ddr#23 2.75 -byte testProcport::ddr2 -byte testProcport::ddr2#23 1.375 -byte testProcport::port -byte testProcport::port#23 1.8333333333333333 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 2002.0 +char *print_str::str#10 // 1026.25 +char *print_str::str#13 // 101.0 +void print_uchar(char b) +char print_uchar::$0 // 202.0 +char print_uchar::$2 // 202.0 +char print_uchar::b +char print_uchar::b#0 // 22.0 +char print_uchar::b#1 // 22.0 +char print_uchar::b#2 // 22.0 +char print_uchar::b#3 // 22.0 +char print_uchar::b#4 // 22.0 +char print_uchar::b#5 // 22.0 +char print_uchar::b#6 // 22.0 +char print_uchar::b#7 // 22.0 +char print_uchar::b#8 // 72.5 +void testProcport(char ddr , char port , char ddr2) +char testProcport::ddr +char testProcport::ddr#23 // 2.75 +char testProcport::ddr2 +char testProcport::ddr2#23 // 1.375 +char testProcport::port +char testProcport::port#23 // 1.8333333333333333 Initial phi equivalence classes [ print_str::str#10 print_str::str#13 print_str::str#0 ] @@ -2506,7 +2506,7 @@ main: { // [8] *IO_RAM = $dd -- _deref_pbuc1=vbuc2 lda #$dd sta IO_RAM - // [9] call print_cls + // [9] call print_cls // [64] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -2515,7 +2515,7 @@ main: { jmp __b2 // main::@2 __b2: - // [11] call print_str + // [11] call print_str // [67] phi from main::@2 to print_str [phi:main::@2->print_str] print_str_from___b2: // [67] phi print_char_cursor#124 = print_screen#0 [phi:main::@2->print_str#0] -- pbuz1=pbuc1 @@ -2534,7 +2534,7 @@ main: { jmp __b3 // main::@3 __b3: - // [13] call print_ln + // [13] call print_ln // [74] phi from main::@3 to print_ln [phi:main::@3->print_ln] print_ln_from___b3: // [74] phi print_char_cursor#118 = print_char_cursor#1 [phi:main::@3->print_ln#0] -- register_copy @@ -2549,7 +2549,7 @@ main: { jmp __b4 // main::@4 __b4: - // [15] call testProcport + // [15] call testProcport // [79] phi from main::@4 to testProcport [phi:main::@4->testProcport] testProcport_from___b4: // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@4->testProcport#0] -- vbuz1=vbuc1 @@ -2566,7 +2566,7 @@ main: { jmp __b5 // main::@5 __b5: - // [17] call testProcport + // [17] call testProcport // [79] phi from main::@5 to testProcport [phi:main::@5->testProcport] testProcport_from___b5: // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@5->testProcport#0] -- vbuz1=vbuc1 @@ -2583,7 +2583,7 @@ main: { jmp __b6 // main::@6 __b6: - // [19] call testProcport + // [19] call testProcport // [79] phi from main::@6 to testProcport [phi:main::@6->testProcport] testProcport_from___b6: // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@6->testProcport#0] -- vbuz1=vbuc1 @@ -2600,7 +2600,7 @@ main: { jmp __b7 // main::@7 __b7: - // [21] call testProcport + // [21] call testProcport // [79] phi from main::@7 to testProcport [phi:main::@7->testProcport] testProcport_from___b7: // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@7->testProcport#0] -- vbuz1=vbuc1 @@ -2617,7 +2617,7 @@ main: { jmp __b8 // main::@8 __b8: - // [23] call testProcport + // [23] call testProcport // [79] phi from main::@8 to testProcport [phi:main::@8->testProcport] testProcport_from___b8: // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@8->testProcport#0] -- vbuz1=vbuc1 @@ -2634,7 +2634,7 @@ main: { jmp __b9 // main::@9 __b9: - // [25] call testProcport + // [25] call testProcport // [79] phi from main::@9 to testProcport [phi:main::@9->testProcport] testProcport_from___b9: // [79] phi testProcport::ddr2#23 = 0 [phi:main::@9->testProcport#0] -- vbuz1=vbuc1 @@ -2651,7 +2651,7 @@ main: { jmp __b10 // main::@10 __b10: - // [27] call testProcport + // [27] call testProcport // [79] phi from main::@10 to testProcport [phi:main::@10->testProcport] testProcport_from___b10: // [79] phi testProcport::ddr2#23 = 0 [phi:main::@10->testProcport#0] -- vbuz1=vbuc1 @@ -2668,7 +2668,7 @@ main: { jmp __b11 // main::@11 __b11: - // [29] call testProcport + // [29] call testProcport // [79] phi from main::@11 to testProcport [phi:main::@11->testProcport] testProcport_from___b11: // [79] phi testProcport::ddr2#23 = 0 [phi:main::@11->testProcport#0] -- vbuz1=vbuc1 @@ -2685,7 +2685,7 @@ main: { jmp __b12 // main::@12 __b12: - // [31] call testProcport + // [31] call testProcport // [79] phi from main::@12 to testProcport [phi:main::@12->testProcport] testProcport_from___b12: // [79] phi testProcport::ddr2#23 = $ff [phi:main::@12->testProcport#0] -- vbuz1=vbuc1 @@ -2702,7 +2702,7 @@ main: { jmp __b13 // main::@13 __b13: - // [33] call testProcport + // [33] call testProcport // [79] phi from main::@13 to testProcport [phi:main::@13->testProcport] testProcport_from___b13: // [79] phi testProcport::ddr2#23 = $ff [phi:main::@13->testProcport#0] -- vbuz1=vbuc1 @@ -2719,7 +2719,7 @@ main: { jmp __b14 // main::@14 __b14: - // [35] call testProcport + // [35] call testProcport // [79] phi from main::@14 to testProcport [phi:main::@14->testProcport] testProcport_from___b14: // [79] phi testProcport::ddr2#23 = $ff [phi:main::@14->testProcport#0] -- vbuz1=vbuc1 @@ -2736,7 +2736,7 @@ main: { jmp __b15 // main::@15 __b15: - // [37] call testProcport + // [37] call testProcport // [79] phi from main::@15 to testProcport [phi:main::@15->testProcport] testProcport_from___b15: // [79] phi testProcport::ddr2#23 = $ff [phi:main::@15->testProcport#0] -- vbuz1=vbuc1 @@ -2753,7 +2753,7 @@ main: { jmp __b16 // main::@16 __b16: - // [39] call testProcport + // [39] call testProcport // [79] phi from main::@16 to testProcport [phi:main::@16->testProcport] testProcport_from___b16: // [79] phi testProcport::ddr2#23 = $55 [phi:main::@16->testProcport#0] -- vbuz1=vbuc1 @@ -2770,7 +2770,7 @@ main: { jmp __b17 // main::@17 __b17: - // [41] call testProcport + // [41] call testProcport // [79] phi from main::@17 to testProcport [phi:main::@17->testProcport] testProcport_from___b17: // [79] phi testProcport::ddr2#23 = $55 [phi:main::@17->testProcport#0] -- vbuz1=vbuc1 @@ -2787,7 +2787,7 @@ main: { jmp __b18 // main::@18 __b18: - // [43] call testProcport + // [43] call testProcport // [79] phi from main::@18 to testProcport [phi:main::@18->testProcport] testProcport_from___b18: // [79] phi testProcport::ddr2#23 = $55 [phi:main::@18->testProcport#0] -- vbuz1=vbuc1 @@ -2804,7 +2804,7 @@ main: { jmp __b19 // main::@19 __b19: - // [45] call testProcport + // [45] call testProcport // [79] phi from main::@19 to testProcport [phi:main::@19->testProcport] testProcport_from___b19: // [79] phi testProcport::ddr2#23 = $aa [phi:main::@19->testProcport#0] -- vbuz1=vbuc1 @@ -2821,7 +2821,7 @@ main: { jmp __b20 // main::@20 __b20: - // [47] call testProcport + // [47] call testProcport // [79] phi from main::@20 to testProcport [phi:main::@20->testProcport] testProcport_from___b20: // [79] phi testProcport::ddr2#23 = $aa [phi:main::@20->testProcport#0] -- vbuz1=vbuc1 @@ -2838,7 +2838,7 @@ main: { jmp __b21 // main::@21 __b21: - // [49] call testProcport + // [49] call testProcport // [79] phi from main::@21 to testProcport [phi:main::@21->testProcport] testProcport_from___b21: // [79] phi testProcport::ddr2#23 = $aa [phi:main::@21->testProcport#0] -- vbuz1=vbuc1 @@ -2855,7 +2855,7 @@ main: { jmp __b22 // main::@22 __b22: - // [51] call testProcport + // [51] call testProcport // [79] phi from main::@22 to testProcport [phi:main::@22->testProcport] testProcport_from___b22: // [79] phi testProcport::ddr2#23 = 0 [phi:main::@22->testProcport#0] -- vbuz1=vbuc1 @@ -2872,7 +2872,7 @@ main: { jmp __b23 // main::@23 __b23: - // [53] call testProcport + // [53] call testProcport // [79] phi from main::@23 to testProcport [phi:main::@23->testProcport] testProcport_from___b23: // [79] phi testProcport::ddr2#23 = $55 [phi:main::@23->testProcport#0] -- vbuz1=vbuc1 @@ -2889,7 +2889,7 @@ main: { jmp __b24 // main::@24 __b24: - // [55] call testProcport + // [55] call testProcport // [79] phi from main::@24 to testProcport [phi:main::@24->testProcport] testProcport_from___b24: // [79] phi testProcport::ddr2#23 = $15 [phi:main::@24->testProcport#0] -- vbuz1=vbuc1 @@ -2906,7 +2906,7 @@ main: { jmp __b25 // main::@25 __b25: - // [57] call testProcport + // [57] call testProcport // [79] phi from main::@25 to testProcport [phi:main::@25->testProcport] testProcport_from___b25: // [79] phi testProcport::ddr2#23 = $17 [phi:main::@25->testProcport#0] -- vbuz1=vbuc1 @@ -2923,7 +2923,7 @@ main: { jmp __b26 // main::@26 __b26: - // [59] call testProcport + // [59] call testProcport // [79] phi from main::@26 to testProcport [phi:main::@26->testProcport] testProcport_from___b26: // [79] phi testProcport::ddr2#23 = $17 [phi:main::@26->testProcport#0] -- vbuz1=vbuc1 @@ -2962,7 +2962,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [65] call memset + // [65] call memset // [120] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -2974,7 +2974,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 // [68] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3000,7 +3000,7 @@ print_str: { // [71] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [72] call print_char + // [72] call print_char // [126] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [126] phi print_char_cursor#66 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -3050,7 +3050,7 @@ print_ln: { rts } // testProcport -// testProcport(byte register(X) ddr, byte zp(4) port, byte zp(5) ddr2) +// void testProcport(__register(X) char ddr, __zp(4) char port, __zp(5) char ddr2) testProcport: { .label port = 4 .label ddr2 = 5 @@ -3073,7 +3073,7 @@ testProcport: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [86] call print_str + // [86] call print_str // [67] phi from testProcport to print_str [phi:testProcport->print_str] print_str_from_testProcport: // [67] phi print_char_cursor#124 = print_char_cursor#126 [phi:testProcport->print_str#0] -- register_copy @@ -3087,7 +3087,7 @@ testProcport: { // testProcport::@1 __b1: // [87] print_uchar::b#0 = testProcport::ddr#23 - // [88] call print_uchar + // [88] call print_uchar // [130] phi from testProcport::@1 to print_uchar [phi:testProcport::@1->print_uchar] print_uchar_from___b1: // [130] phi print_uchar::b#8 = print_uchar::b#0 [phi:testProcport::@1->print_uchar#0] -- register_copy @@ -3097,7 +3097,7 @@ testProcport: { jmp __b2 // testProcport::@2 __b2: - // [90] call print_str + // [90] call print_str // [67] phi from testProcport::@2 to print_str [phi:testProcport::@2->print_str] print_str_from___b2: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@2->print_str#0] -- register_copy @@ -3112,7 +3112,7 @@ testProcport: { __b3: // [91] print_uchar::b#1 = testProcport::port#23 -- vbuxx=vbuz1 ldx.z port - // [92] call print_uchar + // [92] call print_uchar // [130] phi from testProcport::@3 to print_uchar [phi:testProcport::@3->print_uchar] print_uchar_from___b3: // [130] phi print_uchar::b#8 = print_uchar::b#1 [phi:testProcport::@3->print_uchar#0] -- register_copy @@ -3122,7 +3122,7 @@ testProcport: { jmp __b4 // testProcport::@4 __b4: - // [94] call print_str + // [94] call print_str // [67] phi from testProcport::@4 to print_str [phi:testProcport::@4->print_str] print_str_from___b4: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@4->print_str#0] -- register_copy @@ -3137,7 +3137,7 @@ testProcport: { __b5: // [95] print_uchar::b#2 = testProcport::ddr2#23 -- vbuxx=vbuz1 ldx.z ddr2 - // [96] call print_uchar + // [96] call print_uchar // [130] phi from testProcport::@5 to print_uchar [phi:testProcport::@5->print_uchar] print_uchar_from___b5: // [130] phi print_uchar::b#8 = print_uchar::b#2 [phi:testProcport::@5->print_uchar#0] -- register_copy @@ -3147,7 +3147,7 @@ testProcport: { jmp __b6 // testProcport::@6 __b6: - // [98] call print_str + // [98] call print_str // [67] phi from testProcport::@6 to print_str [phi:testProcport::@6->print_str] print_str_from___b6: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@6->print_str#0] -- register_copy @@ -3162,7 +3162,7 @@ testProcport: { __b7: // [99] print_uchar::b#3 = *PROCPORT_DDR -- vbuxx=_deref_pbuc1 ldx PROCPORT_DDR - // [100] call print_uchar + // [100] call print_uchar // [130] phi from testProcport::@7 to print_uchar [phi:testProcport::@7->print_uchar] print_uchar_from___b7: // [130] phi print_uchar::b#8 = print_uchar::b#3 [phi:testProcport::@7->print_uchar#0] -- register_copy @@ -3172,7 +3172,7 @@ testProcport: { jmp __b8 // testProcport::@8 __b8: - // [102] call print_str + // [102] call print_str // [67] phi from testProcport::@8 to print_str [phi:testProcport::@8->print_str] print_str_from___b8: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@8->print_str#0] -- register_copy @@ -3187,7 +3187,7 @@ testProcport: { __b9: // [103] print_uchar::b#4 = *PROCPORT -- vbuxx=_deref_pbuc1 ldx PROCPORT - // [104] call print_uchar + // [104] call print_uchar // [130] phi from testProcport::@9 to print_uchar [phi:testProcport::@9->print_uchar] print_uchar_from___b9: // [130] phi print_uchar::b#8 = print_uchar::b#4 [phi:testProcport::@9->print_uchar#0] -- register_copy @@ -3197,7 +3197,7 @@ testProcport: { jmp __b10 // testProcport::@10 __b10: - // [106] call print_str + // [106] call print_str // [67] phi from testProcport::@10 to print_str [phi:testProcport::@10->print_str] print_str_from___b10: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@10->print_str#0] -- register_copy @@ -3212,7 +3212,7 @@ testProcport: { __b11: // [107] print_uchar::b#5 = *BASIC_ROM -- vbuxx=_deref_pbuc1 ldx BASIC_ROM - // [108] call print_uchar + // [108] call print_uchar // [130] phi from testProcport::@11 to print_uchar [phi:testProcport::@11->print_uchar] print_uchar_from___b11: // [130] phi print_uchar::b#8 = print_uchar::b#5 [phi:testProcport::@11->print_uchar#0] -- register_copy @@ -3222,7 +3222,7 @@ testProcport: { jmp __b12 // testProcport::@12 __b12: - // [110] call print_str + // [110] call print_str // [67] phi from testProcport::@12 to print_str [phi:testProcport::@12->print_str] print_str_from___b12: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@12->print_str#0] -- register_copy @@ -3237,7 +3237,7 @@ testProcport: { __b13: // [111] print_uchar::b#6 = *IO_RAM -- vbuxx=_deref_pbuc1 ldx IO_RAM - // [112] call print_uchar + // [112] call print_uchar // [130] phi from testProcport::@13 to print_uchar [phi:testProcport::@13->print_uchar] print_uchar_from___b13: // [130] phi print_uchar::b#8 = print_uchar::b#6 [phi:testProcport::@13->print_uchar#0] -- register_copy @@ -3247,7 +3247,7 @@ testProcport: { jmp __b14 // testProcport::@14 __b14: - // [114] call print_str + // [114] call print_str // [67] phi from testProcport::@14 to print_str [phi:testProcport::@14->print_str] print_str_from___b14: // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@14->print_str#0] -- register_copy @@ -3262,7 +3262,7 @@ testProcport: { __b15: // [115] print_uchar::b#7 = *KERNAL_ROM -- vbuxx=_deref_pbuc1 ldx KERNAL_ROM - // [116] call print_uchar + // [116] call print_uchar // [130] phi from testProcport::@15 to print_uchar [phi:testProcport::@15->print_uchar] print_uchar_from___b15: // [130] phi print_uchar::b#8 = print_uchar::b#7 [phi:testProcport::@15->print_uchar#0] -- register_copy @@ -3272,7 +3272,7 @@ testProcport: { jmp __b16 // testProcport::@16 __b16: - // [118] call print_ln + // [118] call print_ln // [74] phi from testProcport::@16 to print_ln [phi:testProcport::@16->print_ln] print_ln_from___b16: // [74] phi print_char_cursor#118 = print_char_cursor#67 [phi:testProcport::@16->print_ln#0] -- register_copy @@ -3296,6 +3296,7 @@ testProcport: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3304,7 +3305,7 @@ memset: { .label dst = 6 // [121] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [121] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [121] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3342,7 +3343,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [127] *print_char_cursor#66 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -3360,7 +3361,7 @@ print_char: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [131] print_uchar::$0 = print_uchar::b#8 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -3371,7 +3372,7 @@ print_uchar: { // [132] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [133] call print_char + // [133] call print_char // Table of hexadecimal digits // [126] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -3386,7 +3387,7 @@ print_uchar: { axs #0 // [135] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [136] call print_char + // [136] call print_char // [126] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [126] phi print_char_cursor#66 = print_char_cursor#67 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -3618,88 +3619,88 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BASIC_ROM = (byte*) 40960 -constant byte* const IO_RAM = (byte*) 53248 -constant byte* const KERNAL_ROM = (byte*) 57344 -constant byte* const PROCPORT = (byte*) 1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_KERNEL_IO = 6 -constant const byte PROCPORT_RAM_ALL = 0 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant const byte PROCPORT_RAM_IO = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const BASIC_ROM = (char *) 40960 +__constant char * const IO_RAM = (char *) 53248 +__constant char * const KERNAL_ROM = (char *) 57344 +__constant char * const PROCPORT = (char *) 1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_KERNEL_IO = 6 +__constant const char PROCPORT_RAM_ALL = 0 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant const char PROCPORT_RAM_IO = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* main::str[$28] = "ddr port ddr2 $00 $01 $a000 $d000 $e000" -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2002.0 -byte* memset::dst#2 dst zp[2]:6 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#1 reg byte a 202.0 -byte print_char::ch#2 reg byte a 202.0 -byte print_char::ch#3 reg byte a 11204.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:8 88.24 -byte* print_char_cursor#118 print_char_cursor zp[2]:8 253.5 -byte* print_char_cursor#124 print_char_cursor zp[2]:8 189.0 -byte* print_char_cursor#126 print_char_cursor zp[2]:8 22.0 -byte* print_char_cursor#66 print_char_cursor zp[2]:8 10602.5 -byte* print_char_cursor#67 print_char_cursor zp[2]:8 447.64 +__constant char main::str[$28] = "ddr port ddr2 $00 $01 $a000 $d000 $e000" +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2002.0 +char *memset::dst#2 // dst zp[2]:6 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#1 // reg byte a 202.0 +char print_char::ch#2 // reg byte a 202.0 +char print_char::ch#3 // reg byte a 11204.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:8 88.24 +char *print_char_cursor#118 // print_char_cursor zp[2]:8 253.5 +char *print_char_cursor#124 // print_char_cursor zp[2]:8 189.0 +char *print_char_cursor#126 // print_char_cursor zp[2]:8 22.0 +char *print_char_cursor#66 // print_char_cursor zp[2]:8 10602.5 +char *print_char_cursor#67 // print_char_cursor zp[2]:8 447.64 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:2 33.61111111111111 -byte* print_line_cursor#35 print_line_cursor zp[2]:2 2103.0 -byte* print_line_cursor#69 print_line_cursor zp[2]:2 112.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:2 33.61111111111111 +char *print_line_cursor#35 // print_line_cursor zp[2]:2 2103.0 +char *print_line_cursor#69 // print_line_cursor zp[2]:2 112.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:6 2002.0 -byte* print_str::str#10 str zp[2]:6 1026.25 -byte* print_str::str#13 str zp[2]:6 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte x 202.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 22.0 -byte print_uchar::b#1 reg byte x 22.0 -byte print_uchar::b#2 reg byte x 22.0 -byte print_uchar::b#3 reg byte x 22.0 -byte print_uchar::b#4 reg byte x 22.0 -byte print_uchar::b#5 reg byte x 22.0 -byte print_uchar::b#6 reg byte x 22.0 -byte print_uchar::b#7 reg byte x 22.0 -byte print_uchar::b#8 reg byte x 72.5 -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) -byte testProcport::ddr -byte testProcport::ddr#23 reg byte x 2.75 -byte testProcport::ddr2 -byte testProcport::ddr2#23 ddr2 zp[1]:5 1.375 -byte testProcport::port -byte testProcport::port#23 port zp[1]:4 1.8333333333333333 -constant byte* testProcport::str[2] = " " -constant byte* testProcport::str1[4] = " " -constant byte* testProcport::str3[3] = " " -constant byte* testProcport::str5[5] = " " +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:6 2002.0 +char *print_str::str#10 // str zp[2]:6 1026.25 +char *print_str::str#13 // str zp[2]:6 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte x 202.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 22.0 +char print_uchar::b#1 // reg byte x 22.0 +char print_uchar::b#2 // reg byte x 22.0 +char print_uchar::b#3 // reg byte x 22.0 +char print_uchar::b#4 // reg byte x 22.0 +char print_uchar::b#5 // reg byte x 22.0 +char print_uchar::b#6 // reg byte x 22.0 +char print_uchar::b#7 // reg byte x 22.0 +char print_uchar::b#8 // reg byte x 72.5 +void testProcport(char ddr , char port , char ddr2) +char testProcport::ddr +char testProcport::ddr#23 // reg byte x 2.75 +char testProcport::ddr2 +char testProcport::ddr2#23 // ddr2 zp[1]:5 1.375 +char testProcport::port +char testProcport::port#23 // port zp[1]:4 1.8333333333333333 +__constant char testProcport::str[2] = " " +__constant char testProcport::str1[4] = " " +__constant char testProcport::str3[3] = " " +__constant char testProcport::str5[5] = " " zp[2]:2 [ print_line_cursor#35 print_line_cursor#69 print_line_cursor#0 ] reg byte x [ testProcport::ddr#23 ] @@ -3793,13 +3794,13 @@ main: { lda #$dd sta IO_RAM // print_cls() - // [9] call print_cls + // [9] call print_cls // [64] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [10] phi from main to main::@2 [phi:main->main::@2] // main::@2 // print_str("ddr port ddr2 $00 $01 $a000 $d000 $e000") - // [11] call print_str + // [11] call print_str // [67] phi from main::@2 to print_str [phi:main::@2->print_str] // [67] phi print_char_cursor#124 = print_screen#0 [phi:main::@2->print_str#0] -- pbuz1=pbuc1 lda #main::@3] // main::@3 // print_ln() - // [13] call print_ln + // [13] call print_ln // [74] phi from main::@3 to print_ln [phi:main::@3->print_ln] // [74] phi print_char_cursor#118 = print_char_cursor#1 [phi:main::@3->print_ln#0] -- register_copy // [74] phi print_line_cursor#69 = print_screen#0 [phi:main::@3->print_ln#1] -- pbuz1=pbuc1 @@ -3827,7 +3828,7 @@ main: { // [14] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // testProcport(PROCPORT_DDR_MEMORY_MASK, PROCPORT_RAM_ALL, PROCPORT_DDR_MEMORY_MASK) - // [15] call testProcport + // [15] call testProcport // [79] phi from main::@4 to testProcport [phi:main::@4->testProcport] // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@4->testProcport#0] -- vbuz1=vbuc1 lda #PROCPORT_DDR_MEMORY_MASK @@ -3841,7 +3842,7 @@ main: { // [16] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // testProcport(PROCPORT_DDR_MEMORY_MASK, PROCPORT_RAM_IO, PROCPORT_DDR_MEMORY_MASK) - // [17] call testProcport + // [17] call testProcport // [79] phi from main::@5 to testProcport [phi:main::@5->testProcport] // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@5->testProcport#0] -- vbuz1=vbuc1 lda #PROCPORT_DDR_MEMORY_MASK @@ -3855,7 +3856,7 @@ main: { // [18] phi from main::@5 to main::@6 [phi:main::@5->main::@6] // main::@6 // testProcport(PROCPORT_DDR_MEMORY_MASK, PROCPORT_RAM_CHARROM, PROCPORT_DDR_MEMORY_MASK) - // [19] call testProcport + // [19] call testProcport // [79] phi from main::@6 to testProcport [phi:main::@6->testProcport] // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@6->testProcport#0] -- vbuz1=vbuc1 lda #PROCPORT_DDR_MEMORY_MASK @@ -3869,7 +3870,7 @@ main: { // [20] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // testProcport(PROCPORT_DDR_MEMORY_MASK, PROCPORT_KERNEL_IO, PROCPORT_DDR_MEMORY_MASK) - // [21] call testProcport + // [21] call testProcport // [79] phi from main::@7 to testProcport [phi:main::@7->testProcport] // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@7->testProcport#0] -- vbuz1=vbuc1 lda #PROCPORT_DDR_MEMORY_MASK @@ -3883,7 +3884,7 @@ main: { // [22] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // testProcport(PROCPORT_DDR_MEMORY_MASK, PROCPORT_BASIC_KERNEL_IO, PROCPORT_DDR_MEMORY_MASK) - // [23] call testProcport + // [23] call testProcport // [79] phi from main::@8 to testProcport [phi:main::@8->testProcport] // [79] phi testProcport::ddr2#23 = PROCPORT_DDR_MEMORY_MASK [phi:main::@8->testProcport#0] -- vbuz1=vbuc1 lda #PROCPORT_DDR_MEMORY_MASK @@ -3897,7 +3898,7 @@ main: { // [24] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // testProcport($00, $00, $00) - // [25] call testProcport + // [25] call testProcport // [79] phi from main::@9 to testProcport [phi:main::@9->testProcport] // [79] phi testProcport::ddr2#23 = 0 [phi:main::@9->testProcport#0] -- vbuz1=vbuc1 lda #0 @@ -3910,7 +3911,7 @@ main: { // [26] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // testProcport($ff, $00, $00) - // [27] call testProcport + // [27] call testProcport // [79] phi from main::@10 to testProcport [phi:main::@10->testProcport] // [79] phi testProcport::ddr2#23 = 0 [phi:main::@10->testProcport#0] -- vbuz1=vbuc1 lda #0 @@ -3923,7 +3924,7 @@ main: { // [28] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // testProcport($ff, $ff, $00) - // [29] call testProcport + // [29] call testProcport // [79] phi from main::@11 to testProcport [phi:main::@11->testProcport] // [79] phi testProcport::ddr2#23 = 0 [phi:main::@11->testProcport#0] -- vbuz1=vbuc1 lda #0 @@ -3937,7 +3938,7 @@ main: { // [30] phi from main::@11 to main::@12 [phi:main::@11->main::@12] // main::@12 // testProcport($ff, $00, $ff) - // [31] call testProcport + // [31] call testProcport // [79] phi from main::@12 to testProcport [phi:main::@12->testProcport] // [79] phi testProcport::ddr2#23 = $ff [phi:main::@12->testProcport#0] -- vbuz1=vbuc1 lda #$ff @@ -3951,7 +3952,7 @@ main: { // [32] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // testProcport($ff, $55, $ff) - // [33] call testProcport + // [33] call testProcport // [79] phi from main::@13 to testProcport [phi:main::@13->testProcport] // [79] phi testProcport::ddr2#23 = $ff [phi:main::@13->testProcport#0] -- vbuz1=vbuc1 lda #$ff @@ -3965,7 +3966,7 @@ main: { // [34] phi from main::@13 to main::@14 [phi:main::@13->main::@14] // main::@14 // testProcport($ff, $aa, $ff) - // [35] call testProcport + // [35] call testProcport // [79] phi from main::@14 to testProcport [phi:main::@14->testProcport] // [79] phi testProcport::ddr2#23 = $ff [phi:main::@14->testProcport#0] -- vbuz1=vbuc1 lda #$ff @@ -3979,7 +3980,7 @@ main: { // [36] phi from main::@14 to main::@15 [phi:main::@14->main::@15] // main::@15 // testProcport($ff, $ff, $ff) - // [37] call testProcport + // [37] call testProcport // [79] phi from main::@15 to testProcport [phi:main::@15->testProcport] // [79] phi testProcport::ddr2#23 = $ff [phi:main::@15->testProcport#0] -- vbuz1=vbuc1 lda #$ff @@ -3992,7 +3993,7 @@ main: { // [38] phi from main::@15 to main::@16 [phi:main::@15->main::@16] // main::@16 // testProcport($55, $00, $55) - // [39] call testProcport + // [39] call testProcport // [79] phi from main::@16 to testProcport [phi:main::@16->testProcport] // [79] phi testProcport::ddr2#23 = $55 [phi:main::@16->testProcport#0] -- vbuz1=vbuc1 lda #$55 @@ -4006,7 +4007,7 @@ main: { // [40] phi from main::@16 to main::@17 [phi:main::@16->main::@17] // main::@17 // testProcport($55, $55, $55) - // [41] call testProcport + // [41] call testProcport // [79] phi from main::@17 to testProcport [phi:main::@17->testProcport] // [79] phi testProcport::ddr2#23 = $55 [phi:main::@17->testProcport#0] -- vbuz1=vbuc1 lda #$55 @@ -4019,7 +4020,7 @@ main: { // [42] phi from main::@17 to main::@18 [phi:main::@17->main::@18] // main::@18 // testProcport($55, $ff, $55) - // [43] call testProcport + // [43] call testProcport // [79] phi from main::@18 to testProcport [phi:main::@18->testProcport] // [79] phi testProcport::ddr2#23 = $55 [phi:main::@18->testProcport#0] -- vbuz1=vbuc1 lda #$55 @@ -4033,7 +4034,7 @@ main: { // [44] phi from main::@18 to main::@19 [phi:main::@18->main::@19] // main::@19 // testProcport($aa, $00, $aa) - // [45] call testProcport + // [45] call testProcport // [79] phi from main::@19 to testProcport [phi:main::@19->testProcport] // [79] phi testProcport::ddr2#23 = $aa [phi:main::@19->testProcport#0] -- vbuz1=vbuc1 lda #$aa @@ -4047,7 +4048,7 @@ main: { // [46] phi from main::@19 to main::@20 [phi:main::@19->main::@20] // main::@20 // testProcport($aa, $ff, $aa) - // [47] call testProcport + // [47] call testProcport // [79] phi from main::@20 to testProcport [phi:main::@20->testProcport] // [79] phi testProcport::ddr2#23 = $aa [phi:main::@20->testProcport#0] -- vbuz1=vbuc1 lda #$aa @@ -4061,7 +4062,7 @@ main: { // [48] phi from main::@20 to main::@21 [phi:main::@20->main::@21] // main::@21 // testProcport($aa, $aa, $aa) - // [49] call testProcport + // [49] call testProcport // [79] phi from main::@21 to testProcport [phi:main::@21->testProcport] // [79] phi testProcport::ddr2#23 = $aa [phi:main::@21->testProcport#0] -- vbuz1=vbuc1 lda #$aa @@ -4074,7 +4075,7 @@ main: { // [50] phi from main::@21 to main::@22 [phi:main::@21->main::@22] // main::@22 // testProcport($ff, $d0, $00) - // [51] call testProcport + // [51] call testProcport // [79] phi from main::@22 to testProcport [phi:main::@22->testProcport] // [79] phi testProcport::ddr2#23 = 0 [phi:main::@22->testProcport#0] -- vbuz1=vbuc1 lda #0 @@ -4088,7 +4089,7 @@ main: { // [52] phi from main::@22 to main::@23 [phi:main::@22->main::@23] // main::@23 // testProcport($ff, $55, $55) - // [53] call testProcport + // [53] call testProcport // [79] phi from main::@23 to testProcport [phi:main::@23->testProcport] // [79] phi testProcport::ddr2#23 = $55 [phi:main::@23->testProcport#0] -- vbuz1=vbuc1 lda #$55 @@ -4101,7 +4102,7 @@ main: { // [54] phi from main::@23 to main::@24 [phi:main::@23->main::@24] // main::@24 // testProcport($17, $15, $15) - // [55] call testProcport + // [55] call testProcport // [79] phi from main::@24 to testProcport [phi:main::@24->testProcport] // [79] phi testProcport::ddr2#23 = $15 [phi:main::@24->testProcport#0] -- vbuz1=vbuc1 lda #$15 @@ -4114,7 +4115,7 @@ main: { // [56] phi from main::@24 to main::@25 [phi:main::@24->main::@25] // main::@25 // testProcport($17, $15, $17) - // [57] call testProcport + // [57] call testProcport // [79] phi from main::@25 to testProcport [phi:main::@25->testProcport] // [79] phi testProcport::ddr2#23 = $17 [phi:main::@25->testProcport#0] -- vbuz1=vbuc1 lda #$17 @@ -4128,7 +4129,7 @@ main: { // [58] phi from main::@25 to main::@26 [phi:main::@25->main::@26] // main::@26 // testProcport($17, $17, $17) - // [59] call testProcport + // [59] call testProcport // [79] phi from main::@26 to testProcport [phi:main::@26->testProcport] // [79] phi testProcport::ddr2#23 = $17 [phi:main::@26->testProcport#0] -- vbuz1=vbuc1 lda #$17 @@ -4167,7 +4168,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [65] call memset + // [65] call memset // [120] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -4177,7 +4178,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(6) str) +// void print_str(__zp(6) char *str) print_str: { .label str = 6 // [68] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -4201,7 +4202,7 @@ print_str: { // [71] print_char::ch#0 = *print_str::str#10 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [72] call print_char + // [72] call print_char // [126] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [126] phi print_char_cursor#66 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy // [126] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -4247,7 +4248,7 @@ print_ln: { rts } // testProcport -// testProcport(byte register(X) ddr, byte zp(4) port, byte zp(5) ddr2) +// void testProcport(__register(X) char ddr, __zp(4) char port, __zp(5) char ddr2) testProcport: { .label port = 4 .label ddr2 = 5 @@ -4276,7 +4277,7 @@ testProcport: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str(" ") - // [86] call print_str + // [86] call print_str // [67] phi from testProcport to print_str [phi:testProcport->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#126 [phi:testProcport->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1 @@ -4288,14 +4289,14 @@ testProcport: { // testProcport::@1 // print_uchar(ddr) // [87] print_uchar::b#0 = testProcport::ddr#23 - // [88] call print_uchar + // [88] call print_uchar // [130] phi from testProcport::@1 to print_uchar [phi:testProcport::@1->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#0 [phi:testProcport::@1->print_uchar#0] -- register_copy jsr print_uchar // [89] phi from testProcport::@1 to testProcport::@2 [phi:testProcport::@1->testProcport::@2] // testProcport::@2 // print_str(" ") - // [90] call print_str + // [90] call print_str // [67] phi from testProcport::@2 to print_str [phi:testProcport::@2->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@2->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1 @@ -4308,14 +4309,14 @@ testProcport: { // print_uchar(port) // [91] print_uchar::b#1 = testProcport::port#23 -- vbuxx=vbuz1 ldx.z port - // [92] call print_uchar + // [92] call print_uchar // [130] phi from testProcport::@3 to print_uchar [phi:testProcport::@3->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#1 [phi:testProcport::@3->print_uchar#0] -- register_copy jsr print_uchar // [93] phi from testProcport::@3 to testProcport::@4 [phi:testProcport::@3->testProcport::@4] // testProcport::@4 // print_str(" ") - // [94] call print_str + // [94] call print_str // [67] phi from testProcport::@4 to print_str [phi:testProcport::@4->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@4->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1 @@ -4328,14 +4329,14 @@ testProcport: { // print_uchar(ddr2) // [95] print_uchar::b#2 = testProcport::ddr2#23 -- vbuxx=vbuz1 ldx.z ddr2 - // [96] call print_uchar + // [96] call print_uchar // [130] phi from testProcport::@5 to print_uchar [phi:testProcport::@5->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#2 [phi:testProcport::@5->print_uchar#0] -- register_copy jsr print_uchar // [97] phi from testProcport::@5 to testProcport::@6 [phi:testProcport::@5->testProcport::@6] // testProcport::@6 // print_str(" ") - // [98] call print_str + // [98] call print_str // [67] phi from testProcport::@6 to print_str [phi:testProcport::@6->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@6->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1 @@ -4348,14 +4349,14 @@ testProcport: { // print_uchar(*PROCPORT_DDR) // [99] print_uchar::b#3 = *PROCPORT_DDR -- vbuxx=_deref_pbuc1 ldx PROCPORT_DDR - // [100] call print_uchar + // [100] call print_uchar // [130] phi from testProcport::@7 to print_uchar [phi:testProcport::@7->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#3 [phi:testProcport::@7->print_uchar#0] -- register_copy jsr print_uchar // [101] phi from testProcport::@7 to testProcport::@8 [phi:testProcport::@7->testProcport::@8] // testProcport::@8 // print_str(" ") - // [102] call print_str + // [102] call print_str // [67] phi from testProcport::@8 to print_str [phi:testProcport::@8->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@8->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1 @@ -4368,14 +4369,14 @@ testProcport: { // print_uchar(*PROCPORT) // [103] print_uchar::b#4 = *PROCPORT -- vbuxx=_deref_pbuc1 ldx PROCPORT - // [104] call print_uchar + // [104] call print_uchar // [130] phi from testProcport::@9 to print_uchar [phi:testProcport::@9->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#4 [phi:testProcport::@9->print_uchar#0] -- register_copy jsr print_uchar // [105] phi from testProcport::@9 to testProcport::@10 [phi:testProcport::@9->testProcport::@10] // testProcport::@10 // print_str(" ") - // [106] call print_str + // [106] call print_str // [67] phi from testProcport::@10 to print_str [phi:testProcport::@10->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@10->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1 @@ -4388,14 +4389,14 @@ testProcport: { // print_uchar(*BASIC_ROM) // [107] print_uchar::b#5 = *BASIC_ROM -- vbuxx=_deref_pbuc1 ldx BASIC_ROM - // [108] call print_uchar + // [108] call print_uchar // [130] phi from testProcport::@11 to print_uchar [phi:testProcport::@11->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#5 [phi:testProcport::@11->print_uchar#0] -- register_copy jsr print_uchar // [109] phi from testProcport::@11 to testProcport::@12 [phi:testProcport::@11->testProcport::@12] // testProcport::@12 // print_str(" ") - // [110] call print_str + // [110] call print_str // [67] phi from testProcport::@12 to print_str [phi:testProcport::@12->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@12->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1 @@ -4408,14 +4409,14 @@ testProcport: { // print_uchar(*IO_RAM) // [111] print_uchar::b#6 = *IO_RAM -- vbuxx=_deref_pbuc1 ldx IO_RAM - // [112] call print_uchar + // [112] call print_uchar // [130] phi from testProcport::@13 to print_uchar [phi:testProcport::@13->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#6 [phi:testProcport::@13->print_uchar#0] -- register_copy jsr print_uchar // [113] phi from testProcport::@13 to testProcport::@14 [phi:testProcport::@13->testProcport::@14] // testProcport::@14 // print_str(" ") - // [114] call print_str + // [114] call print_str // [67] phi from testProcport::@14 to print_str [phi:testProcport::@14->print_str] // [67] phi print_char_cursor#124 = print_char_cursor#67 [phi:testProcport::@14->print_str#0] -- register_copy // [67] phi print_str::str#13 = testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1 @@ -4428,14 +4429,14 @@ testProcport: { // print_uchar(*KERNAL_ROM) // [115] print_uchar::b#7 = *KERNAL_ROM -- vbuxx=_deref_pbuc1 ldx KERNAL_ROM - // [116] call print_uchar + // [116] call print_uchar // [130] phi from testProcport::@15 to print_uchar [phi:testProcport::@15->print_uchar] // [130] phi print_uchar::b#8 = print_uchar::b#7 [phi:testProcport::@15->print_uchar#0] -- register_copy jsr print_uchar // [117] phi from testProcport::@15 to testProcport::@16 [phi:testProcport::@15->testProcport::@16] // testProcport::@16 // print_ln() - // [118] call print_ln + // [118] call print_ln // [74] phi from testProcport::@16 to print_ln [phi:testProcport::@16->print_ln] // [74] phi print_char_cursor#118 = print_char_cursor#67 [phi:testProcport::@16->print_ln#0] -- register_copy // [74] phi print_line_cursor#69 = print_line_cursor#0 [phi:testProcport::@16->print_ln#1] -- register_copy @@ -4457,6 +4458,7 @@ testProcport: { .segment Code // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -4464,7 +4466,7 @@ memset: { .label end = str+num .label dst = 6 // [121] phi from memset to memset::@1 [phi:memset->memset::@1] - // [121] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [121] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -4502,7 +4504,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [127] *print_char_cursor#66 = print_char::ch#3 -- _deref_pbuz1=vbuaa @@ -4521,7 +4523,7 @@ print_char: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [131] print_uchar::$0 = print_uchar::b#8 >> 4 -- vbuaa=vbuxx_ror_4 @@ -4534,7 +4536,7 @@ print_uchar: { // [132] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [133] call print_char + // [133] call print_char // Table of hexadecimal digits // [126] phi from print_uchar to print_char [phi:print_uchar->print_char] // [126] phi print_char_cursor#66 = print_char_cursor#1 [phi:print_uchar->print_char#0] -- register_copy @@ -4548,7 +4550,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [135] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [136] call print_char + // [136] call print_char // [126] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [126] phi print_char_cursor#66 = print_char_cursor#67 [phi:print_uchar::@1->print_char#0] -- register_copy // [126] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/processor-port-test.sym b/src/test/ref/processor-port-test.sym index 61581b98e..88b5376f7 100644 --- a/src/test/ref/processor-port-test.sym +++ b/src/test/ref/processor-port-test.sym @@ -1,85 +1,85 @@ -constant byte* const BASIC_ROM = (byte*) 40960 -constant byte* const IO_RAM = (byte*) 53248 -constant byte* const KERNAL_ROM = (byte*) 57344 -constant byte* const PROCPORT = (byte*) 1 -constant const byte PROCPORT_BASIC_KERNEL_IO = 7 -constant byte* const PROCPORT_DDR = (byte*) 0 -constant const byte PROCPORT_DDR_MEMORY_MASK = 7 -constant const byte PROCPORT_KERNEL_IO = 6 -constant const byte PROCPORT_RAM_ALL = 0 -constant const byte PROCPORT_RAM_CHARROM = 1 -constant const byte PROCPORT_RAM_IO = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 +__constant char * const BASIC_ROM = (char *) 40960 +__constant char * const IO_RAM = (char *) 53248 +__constant char * const KERNAL_ROM = (char *) 57344 +__constant char * const PROCPORT = (char *) 1 +__constant const char PROCPORT_BASIC_KERNEL_IO = 7 +__constant char * const PROCPORT_DDR = (char *) 0 +__constant const char PROCPORT_DDR_MEMORY_MASK = 7 +__constant const char PROCPORT_KERNEL_IO = 6 +__constant const char PROCPORT_RAM_ALL = 0 +__constant const char PROCPORT_RAM_CHARROM = 1 +__constant const char PROCPORT_RAM_IO = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* main::str[$28] = "ddr port ddr2 $00 $01 $a000 $d000 $e000" -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:6 2002.0 -byte* memset::dst#2 dst zp[2]:6 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#1 reg byte a 202.0 -byte print_char::ch#2 reg byte a 202.0 -byte print_char::ch#3 reg byte a 11204.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:8 88.24 -byte* print_char_cursor#118 print_char_cursor zp[2]:8 253.5 -byte* print_char_cursor#124 print_char_cursor zp[2]:8 189.0 -byte* print_char_cursor#126 print_char_cursor zp[2]:8 22.0 -byte* print_char_cursor#66 print_char_cursor zp[2]:8 10602.5 -byte* print_char_cursor#67 print_char_cursor zp[2]:8 447.64 +__constant char main::str[$28] = "ddr port ddr2 $00 $01 $a000 $d000 $e000" +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:6 2002.0 +char *memset::dst#2 // dst zp[2]:6 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#1 // reg byte a 202.0 +char print_char::ch#2 // reg byte a 202.0 +char print_char::ch#3 // reg byte a 11204.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:8 88.24 +char *print_char_cursor#118 // print_char_cursor zp[2]:8 253.5 +char *print_char_cursor#124 // print_char_cursor zp[2]:8 189.0 +char *print_char_cursor#126 // print_char_cursor zp[2]:8 22.0 +char *print_char_cursor#66 // print_char_cursor zp[2]:8 10602.5 +char *print_char_cursor#67 // print_char_cursor zp[2]:8 447.64 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:2 33.61111111111111 -byte* print_line_cursor#35 print_line_cursor zp[2]:2 2103.0 -byte* print_line_cursor#69 print_line_cursor zp[2]:2 112.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:2 33.61111111111111 +char *print_line_cursor#35 // print_line_cursor zp[2]:2 2103.0 +char *print_line_cursor#69 // print_line_cursor zp[2]:2 112.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:6 2002.0 -byte* print_str::str#10 str zp[2]:6 1026.25 -byte* print_str::str#13 str zp[2]:6 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte x 202.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 22.0 -byte print_uchar::b#1 reg byte x 22.0 -byte print_uchar::b#2 reg byte x 22.0 -byte print_uchar::b#3 reg byte x 22.0 -byte print_uchar::b#4 reg byte x 22.0 -byte print_uchar::b#5 reg byte x 22.0 -byte print_uchar::b#6 reg byte x 22.0 -byte print_uchar::b#7 reg byte x 22.0 -byte print_uchar::b#8 reg byte x 72.5 -void testProcport(byte testProcport::ddr , byte testProcport::port , byte testProcport::ddr2) -byte testProcport::ddr -byte testProcport::ddr#23 reg byte x 2.75 -byte testProcport::ddr2 -byte testProcport::ddr2#23 ddr2 zp[1]:5 1.375 -byte testProcport::port -byte testProcport::port#23 port zp[1]:4 1.8333333333333333 -constant byte* testProcport::str[2] = " " -constant byte* testProcport::str1[4] = " " -constant byte* testProcport::str3[3] = " " -constant byte* testProcport::str5[5] = " " +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:6 2002.0 +char *print_str::str#10 // str zp[2]:6 1026.25 +char *print_str::str#13 // str zp[2]:6 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte x 202.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 22.0 +char print_uchar::b#1 // reg byte x 22.0 +char print_uchar::b#2 // reg byte x 22.0 +char print_uchar::b#3 // reg byte x 22.0 +char print_uchar::b#4 // reg byte x 22.0 +char print_uchar::b#5 // reg byte x 22.0 +char print_uchar::b#6 // reg byte x 22.0 +char print_uchar::b#7 // reg byte x 22.0 +char print_uchar::b#8 // reg byte x 72.5 +void testProcport(char ddr , char port , char ddr2) +char testProcport::ddr +char testProcport::ddr#23 // reg byte x 2.75 +char testProcport::ddr2 +char testProcport::ddr2#23 // ddr2 zp[1]:5 1.375 +char testProcport::port +char testProcport::port#23 // port zp[1]:4 1.8333333333333333 +__constant char testProcport::str[2] = " " +__constant char testProcport::str1[4] = " " +__constant char testProcport::str3[3] = " " +__constant char testProcport::str5[5] = " " zp[2]:2 [ print_line_cursor#35 print_line_cursor#69 print_line_cursor#0 ] reg byte x [ testProcport::ddr#23 ] diff --git a/src/test/ref/ptr-complex.cfg b/src/test/ref/ptr-complex.cfg index b914efd07..d5588d77f 100644 --- a/src/test/ref/ptr-complex.cfg +++ b/src/test/ref/ptr-complex.cfg @@ -20,8 +20,8 @@ main::@3: scope:[main] from main::@2 main::@3 [10] if(main::j#1!=$b) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 - [11] *((byte*) 53280) = ++ *((byte*) 53280) - [12] *((byte*)$d000+$21) = -- *((byte*)$d000+$21) + [11] *((char *) 53280) = ++ *((char *) 53280) + [12] *((char *)$d000+$21) = -- *((char *)$d000+$21) [13] *main::BG_COLOR = ++ *main::BG_COLOR to:main::@return main::@return: scope:[main] from main::@4 diff --git a/src/test/ref/ptr-complex.log b/src/test/ref/ptr-complex.log index 0b66152e5..d8f1cfead 100644 --- a/src/test/ref/ptr-complex.log +++ b/src/test/ref/ptr-complex.log @@ -36,8 +36,8 @@ main::@3: scope:[main] from main::@2 main::@3 if(main::$15) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 - *((byte*)$d020) = ++ *((byte*)$d020) - *((byte*)$d000+$21) = -- *((byte*)$d000+$21) + *((char *)$d020) = ++ *((char *)$d020) + *((char *)$d000+$21) = -- *((char *)$d000+$21) *main::BG_COLOR = ++ *main::BG_COLOR to:main::@return main::@return: scope:[main] from main::@4 @@ -46,7 +46,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -57,29 +57,29 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$10 -byte*~ main::$11 -byte*~ main::$12 -byte*~ main::$13 -byte*~ main::$14 -bool~ main::$15 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$8 -byte*~ main::$9 -constant byte* main::BG_COLOR = (byte*)$d020 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte* main::sc2 -byte* main::sc2#0 -constant byte* main::screen = (byte*)$400 +bool main::$10 +char *main::$11 +char *main::$12 +char *main::$13 +char *main::$14 +bool main::$15 +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$8 +char *main::$9 +__constant char *main::BG_COLOR = (char *)$d020 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char *main::sc2 +char *main::sc2#0 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) $28 in main::$8 = main::screen + $28 Adding number conversion cast (unumber) $51 in main::sc2#0 = main::screen + $51 @@ -89,8 +89,8 @@ Adding number conversion cast (unumber) $7a in main::$4 = main::screen + $7a Adding number conversion cast (unumber) $a0 in main::$11 = main::screen + $a0 Adding number conversion cast (unumber) $c8 in main::$13 = main::screen + $c8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast $28 Simplifying constant integer cast $51 Simplifying constant integer cast $79 @@ -98,16 +98,16 @@ Simplifying constant integer cast $52 Simplifying constant integer cast $7a Simplifying constant integer cast $a0 Simplifying constant integer cast $c8 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53280 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $51 -Finalized unsigned number type (byte) $79 -Finalized unsigned number type (byte) $52 -Finalized unsigned number type (byte) $7a -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (byte) $c8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $51 +Finalized unsigned number type (char) $79 +Finalized unsigned number type (char) $52 +Finalized unsigned number type (char) $7a +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (char) $c8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$10 [7] if(main::i#1!=rangelast(0,$a)) goto main::@1 Simple Condition main::$15 [23] if(main::j#1!=rangelast(0,$a)) goto main::@3 @@ -153,8 +153,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::j#0 @@ -167,8 +167,8 @@ Constant inlined main::j#0 = 0 Constant inlined main::$8 = main::screen+$28 Constant inlined main::$11 = main::screen+$a0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $d000 -Finalized unsigned number type (byte) $21 +Finalized unsigned number type (unsigned int) $d000 +Finalized unsigned number type (char) $21 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@5(between main::@1 and main::@1) Added new block during phi lifting main::@6(between main::@3 and main::@3) @@ -206,8 +206,8 @@ main::@3: scope:[main] from main::@2 main::@3 [10] if(main::j#1!=$b) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@3 - [11] *((byte*) 53280) = ++ *((byte*) 53280) - [12] *((byte*)$d000+$21) = -- *((byte*)$d000+$21) + [11] *((char *) 53280) = ++ *((char *) 53280) + [12] *((char *)$d000+$21) = -- *((char *)$d000+$21) [13] *main::BG_COLOR = ++ *main::BG_COLOR to:main::@return main::@return: scope:[main] from main::@4 @@ -217,13 +217,13 @@ main::@return: scope:[main] from main::@4 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.0 -byte main::j -byte main::j#1 16.5 -byte main::j#2 22.0 -byte* main::sc2 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.0 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 22.0 +char *main::sc2 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -329,9 +329,9 @@ main: { jmp __b4 // main::@4 __b4: - // [11] *((byte*) 53280) = ++ *((byte*) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 + // [11] *((char *) 53280) = ++ *((char *) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 inc $d020 - // [12] *((byte*)$d000+$21) = -- *((byte*)$d000+$21) -- _deref_pbuc1=_dec__deref_pbuc1 + // [12] *((char *)$d000+$21) = -- *((char *)$d000+$21) -- _deref_pbuc1=_dec__deref_pbuc1 dec $d000+$21 // [13] *main::BG_COLOR = ++ *main::BG_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 inc BG_COLOR @@ -367,16 +367,16 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::BG_COLOR = (byte*) 53280 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 -byte* main::sc2 -constant byte* main::sc2#0 sc2 = main::screen+$51 -constant byte* main::screen = (byte*) 1024 +__constant char *main::BG_COLOR = (char *) 53280 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 +char *main::sc2 +__constant char *main::sc2#0 = main::screen+$51 // sc2 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] @@ -454,10 +454,10 @@ main: { bne __b3 // main::@4 // ++*(byte*)$d020; - // [11] *((byte*) 53280) = ++ *((byte*) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 + // [11] *((char *) 53280) = ++ *((char *) 53280) -- _deref_pbuc1=_inc__deref_pbuc1 inc $d020 // --*(byte*)($d000+$21); - // [12] *((byte*)$d000+$21) = -- *((byte*)$d000+$21) -- _deref_pbuc1=_dec__deref_pbuc1 + // [12] *((char *)$d000+$21) = -- *((char *)$d000+$21) -- _deref_pbuc1=_dec__deref_pbuc1 dec $d000+$21 // ++*BG_COLOR; // [13] *main::BG_COLOR = ++ *main::BG_COLOR -- _deref_pbuc1=_inc__deref_pbuc1 diff --git a/src/test/ref/ptr-complex.sym b/src/test/ref/ptr-complex.sym index 5b1a9f0fc..1670995d8 100644 --- a/src/test/ref/ptr-complex.sym +++ b/src/test/ref/ptr-complex.sym @@ -1,14 +1,14 @@ void main() -constant byte* main::BG_COLOR = (byte*) 53280 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.0 -byte main::j -byte main::j#1 reg byte x 16.5 -byte main::j#2 reg byte x 22.0 -byte* main::sc2 -constant byte* main::sc2#0 sc2 = main::screen+$51 -constant byte* main::screen = (byte*) 1024 +__constant char *main::BG_COLOR = (char *) 53280 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.0 +char main::j +char main::j#1 // reg byte x 16.5 +char main::j#2 // reg byte x 22.0 +char *main::sc2 +__constant char *main::sc2#0 = main::screen+$51 // sc2 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::j#2 main::j#1 ] diff --git a/src/test/ref/ptrptr-optimize-0.cfg b/src/test/ref/ptrptr-optimize-0.cfg index 638fc688c..846d339d0 100644 --- a/src/test/ref/ptrptr-optimize-0.cfg +++ b/src/test/ref/ptrptr-optimize-0.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 + [0] main::screen = (char *) 1024 [1] *(*main::pscreen) = 'a' [2] *main::pscreen = ++ *main::pscreen [3] *(*main::pscreen) = 'b' diff --git a/src/test/ref/ptrptr-optimize-0.log b/src/test/ref/ptrptr-optimize-0.log index a25ac7e79..b71875389 100644 --- a/src/test/ref/ptrptr-optimize-0.log +++ b/src/test/ref/ptrptr-optimize-0.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen = (byte*)$400 + main::screen = (char *)$400 *(*main::pscreen) = 'a' *main::pscreen = ++ *main::pscreen *(*main::pscreen) = 'b' @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,10 +26,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte** main::pscreen = &main::screen -byte* volatile main::screen loadstore +__constant char **main::pscreen = &main::screen +__loadstore char * volatile main::screen -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -45,7 +45,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 + [0] main::screen = (char *) 1024 [1] *(*main::pscreen) = 'a' [2] *main::pscreen = ++ *main::pscreen [3] *(*main::pscreen) = 'b' @@ -57,7 +57,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* volatile main::screen loadstore 20.0 +__loadstore char * volatile main::screen // 20.0 Initial phi equivalence classes Added variable main::screen to live range equivalence class [ main::screen ] @@ -65,7 +65,7 @@ Complete equivalence classes [ main::screen ] Allocated zp[2]:2 [ main::screen ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::screen = (byte*) 1024 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] main::screen = (char *) 1024 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *(*main::pscreen) = 'a' [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Statement [3] *(*main::pscreen) = 'b' [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ main::screen ] : zp[2]:2 , @@ -95,7 +95,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label pscreen = screen .label screen = 2 - // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -137,8 +137,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte** main::pscreen = &main::screen -byte* volatile main::screen loadstore zp[2]:2 20.0 +__constant char **main::pscreen = &main::screen +__loadstore char * volatile main::screen // zp[2]:2 20.0 zp[2]:2 [ main::screen ] @@ -164,7 +164,7 @@ main: { .label pscreen = screen .label screen = 2 // byte* screen = (char*)0x400 - // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/ptrptr-optimize-0.sym b/src/test/ref/ptrptr-optimize-0.sym index 67455bdc2..406d94a86 100644 --- a/src/test/ref/ptrptr-optimize-0.sym +++ b/src/test/ref/ptrptr-optimize-0.sym @@ -1,5 +1,5 @@ void main() -constant byte** main::pscreen = &main::screen -byte* volatile main::screen loadstore zp[2]:2 20.0 +__constant char **main::pscreen = &main::screen +__loadstore char * volatile main::screen // zp[2]:2 20.0 zp[2]:2 [ main::screen ] diff --git a/src/test/ref/ptrptr-optimize-1.asm b/src/test/ref/ptrptr-optimize-1.asm index a6b68c33c..12d749780 100644 --- a/src/test/ref/ptrptr-optimize-1.asm +++ b/src/test/ref/ptrptr-optimize-1.asm @@ -25,7 +25,7 @@ main: { // } rts } -// sub(byte register(A) ch) +// void sub(__register(A) char ch, char **dst) sub: { // *(*dst)++ = ch ldy.z main.pscreen diff --git a/src/test/ref/ptrptr-optimize-1.cfg b/src/test/ref/ptrptr-optimize-1.cfg index c0161be6c..f679b1834 100644 --- a/src/test/ref/ptrptr-optimize-1.cfg +++ b/src/test/ref/ptrptr-optimize-1.cfg @@ -1,18 +1,18 @@ void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 - [1] call sub + [0] main::screen = (char *) 1024 + [1] call sub to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call sub + [3] call sub to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void sub(byte sub::ch , byte** sub::dst) +void sub(char ch , char **dst) sub: scope:[sub] from main main::@1 [5] sub::ch#2 = phi( main/'a', main::@1/'b' ) [6] *(*main::pscreen) = sub::ch#2 diff --git a/src/test/ref/ptrptr-optimize-1.log b/src/test/ref/ptrptr-optimize-1.log index 87d62610d..ccb4fbfba 100644 --- a/src/test/ref/ptrptr-optimize-1.log +++ b/src/test/ref/ptrptr-optimize-1.log @@ -4,15 +4,15 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen = (byte*)$400 + main::screen = (char *)$400 sub::ch#0 = 'a' sub::dst#0 = main::pscreen - call sub + call sub to:main::@1 main::@1: scope:[main] from main sub::ch#1 = 'b' sub::dst#1 = main::pscreen - call sub + call sub to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void sub(byte sub::ch , byte** sub::dst) +void sub(char ch , char **dst) sub: scope:[sub] from main main::@1 sub::dst#2 = phi( main/sub::dst#0, main::@1/sub::dst#1 ) sub::ch#2 = phi( main/sub::ch#0, main::@1/sub::ch#1 ) @@ -33,7 +33,7 @@ sub::@return: scope:[sub] from sub void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,19 +44,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte** main::pscreen = &main::screen -byte* volatile main::screen loadstore -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#0 -byte sub::ch#1 -byte sub::ch#2 -byte** sub::dst -byte** sub::dst#0 -byte** sub::dst#1 -byte** sub::dst#2 +__constant char **main::pscreen = &main::screen +__loadstore char * volatile main::screen +void sub(char ch , char **dst) +char sub::ch +char sub::ch#0 +char sub::ch#1 +char sub::ch#2 +char **sub::dst +char **sub::dst#0 +char **sub::dst#1 +char **sub::dst#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant sub::ch#0 = 'a' Constant sub::dst#0 = main::pscreen @@ -93,18 +93,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 - [1] call sub + [0] main::screen = (char *) 1024 + [1] call sub to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call sub + [3] call sub to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void sub(byte sub::ch , byte** sub::dst) +void sub(char ch , char **dst) sub: scope:[sub] from main main::@1 [5] sub::ch#2 = phi( main/'a', main::@1/'b' ) [6] *(*main::pscreen) = sub::ch#2 @@ -117,11 +117,11 @@ sub::@return: scope:[sub] from sub VARIABLE REGISTER WEIGHTS void main() -byte* volatile main::screen loadstore 20.0 -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#2 11.0 -byte** sub::dst +__loadstore char * volatile main::screen // 20.0 +void sub(char ch , char **dst) +char sub::ch +char sub::ch#2 // 11.0 +char **sub::dst Initial phi equivalence classes [ sub::ch#2 ] @@ -132,7 +132,7 @@ Complete equivalence classes Allocated zp[1]:2 [ sub::ch#2 ] Allocated zp[2]:3 [ main::screen ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::screen = (byte*) 1024 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] main::screen = (char *) 1024 [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *(*main::pscreen) = sub::ch#2 [ ] ( sub:1 [ ] { } sub:3 [ ] { } ) always clobbers reg byte y Potential registers zp[1]:2 [ sub::ch#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:3 [ main::screen ] : zp[2]:3 , @@ -165,12 +165,12 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label pscreen = screen .label screen = 2 - // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 - // [1] call sub + // [1] call sub // [5] phi from main to sub [phi:main->sub] sub_from_main: // [5] phi sub::ch#2 = 'a' [phi:main->sub#0] -- vbuaa=vbuc1 @@ -181,7 +181,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call sub + // [3] call sub // [5] phi from main::@1 to sub [phi:main::@1->sub] sub_from___b1: // [5] phi sub::ch#2 = 'b' [phi:main::@1->sub#0] -- vbuaa=vbuc1 @@ -194,7 +194,7 @@ main: { rts } // sub -// sub(byte register(A) ch) +// void sub(__register(A) char ch, char **dst) sub: { // [6] *(*main::pscreen) = sub::ch#2 -- _deref_(_deref_qbuc1)=vbuaa ldy.z main.pscreen @@ -232,12 +232,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte** main::pscreen = &main::screen -byte* volatile main::screen loadstore zp[2]:2 20.0 -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#2 reg byte a 11.0 -byte** sub::dst +__constant char **main::pscreen = &main::screen +__loadstore char * volatile main::screen // zp[2]:2 20.0 +void sub(char ch , char **dst) +char sub::ch +char sub::ch#2 // reg byte a 11.0 +char **sub::dst reg byte a [ sub::ch#2 ] zp[2]:2 [ main::screen ] @@ -264,13 +264,13 @@ main: { .label pscreen = screen .label screen = 2 // byte* screen = (char*)0x400 - // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 // sub('a',pscreen) - // [1] call sub + // [1] call sub // [5] phi from main to sub [phi:main->sub] // [5] phi sub::ch#2 = 'a' [phi:main->sub#0] -- vbuaa=vbuc1 lda #'a' @@ -278,7 +278,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // sub('b',pscreen) - // [3] call sub + // [3] call sub // [5] phi from main::@1 to sub [phi:main::@1->sub] // [5] phi sub::ch#2 = 'b' [phi:main::@1->sub#0] -- vbuaa=vbuc1 lda #'b' @@ -289,7 +289,7 @@ main: { rts } // sub -// sub(byte register(A) ch) +// void sub(__register(A) char ch, char **dst) sub: { // *(*dst)++ = ch // [6] *(*main::pscreen) = sub::ch#2 -- _deref_(_deref_qbuc1)=vbuaa diff --git a/src/test/ref/ptrptr-optimize-1.sym b/src/test/ref/ptrptr-optimize-1.sym index 4bfc2bc1a..04f74405e 100644 --- a/src/test/ref/ptrptr-optimize-1.sym +++ b/src/test/ref/ptrptr-optimize-1.sym @@ -1,10 +1,10 @@ void main() -constant byte** main::pscreen = &main::screen -byte* volatile main::screen loadstore zp[2]:2 20.0 -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#2 reg byte a 11.0 -byte** sub::dst +__constant char **main::pscreen = &main::screen +__loadstore char * volatile main::screen // zp[2]:2 20.0 +void sub(char ch , char **dst) +char sub::ch +char sub::ch#2 // reg byte a 11.0 +char **sub::dst reg byte a [ sub::ch#2 ] zp[2]:2 [ main::screen ] diff --git a/src/test/ref/ptrptr-optimize-2.asm b/src/test/ref/ptrptr-optimize-2.asm index 50f1ec6fe..a9160833c 100644 --- a/src/test/ref/ptrptr-optimize-2.asm +++ b/src/test/ref/ptrptr-optimize-2.asm @@ -25,7 +25,7 @@ main: { // } rts } -// sub(byte register(A) ch) +// void sub(__register(A) char ch, char **dst) sub: { // *(*dst)++ = ch ldy.z main.screen diff --git a/src/test/ref/ptrptr-optimize-2.cfg b/src/test/ref/ptrptr-optimize-2.cfg index e3503d5be..d4697fa8f 100644 --- a/src/test/ref/ptrptr-optimize-2.cfg +++ b/src/test/ref/ptrptr-optimize-2.cfg @@ -1,18 +1,18 @@ void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 - [1] call sub + [0] main::screen = (char *) 1024 + [1] call sub to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call sub + [3] call sub to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void sub(byte sub::ch , byte** sub::dst) +void sub(char ch , char **dst) sub: scope:[sub] from main main::@1 [5] sub::ch#2 = phi( main/'a', main::@1/'b' ) [6] *(*(&main::screen)) = sub::ch#2 diff --git a/src/test/ref/ptrptr-optimize-2.log b/src/test/ref/ptrptr-optimize-2.log index b8611bc0c..f569b5aab 100644 --- a/src/test/ref/ptrptr-optimize-2.log +++ b/src/test/ref/ptrptr-optimize-2.log @@ -4,15 +4,15 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen = (byte*)$400 + main::screen = (char *)$400 sub::ch#0 = 'a' sub::dst#0 = &main::screen - call sub + call sub to:main::@1 main::@1: scope:[main] from main sub::ch#1 = 'b' sub::dst#1 = &main::screen - call sub + call sub to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void sub(byte sub::ch , byte** sub::dst) +void sub(char ch , char **dst) sub: scope:[sub] from main main::@1 sub::dst#2 = phi( main/sub::dst#0, main::@1/sub::dst#1 ) sub::ch#2 = phi( main/sub::ch#0, main::@1/sub::ch#1 ) @@ -33,7 +33,7 @@ sub::@return: scope:[sub] from sub void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,18 +44,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte* volatile main::screen loadstore -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#0 -byte sub::ch#1 -byte sub::ch#2 -byte** sub::dst -byte** sub::dst#0 -byte** sub::dst#1 -byte** sub::dst#2 +__loadstore char * volatile main::screen +void sub(char ch , char **dst) +char sub::ch +char sub::ch#0 +char sub::ch#1 +char sub::ch#2 +char **sub::dst +char **sub::dst#0 +char **sub::dst#1 +char **sub::dst#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant sub::ch#0 = 'a' Constant sub::dst#0 = &main::screen @@ -92,18 +92,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 - [1] call sub + [0] main::screen = (char *) 1024 + [1] call sub to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call sub + [3] call sub to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void sub(byte sub::ch , byte** sub::dst) +void sub(char ch , char **dst) sub: scope:[sub] from main main::@1 [5] sub::ch#2 = phi( main/'a', main::@1/'b' ) [6] *(*(&main::screen)) = sub::ch#2 @@ -116,11 +116,11 @@ sub::@return: scope:[sub] from sub VARIABLE REGISTER WEIGHTS void main() -byte* volatile main::screen loadstore 0.2857142857142857 -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#2 11.0 -byte** sub::dst +__loadstore char * volatile main::screen // 0.2857142857142857 +void sub(char ch , char **dst) +char sub::ch +char sub::ch#2 // 11.0 +char **sub::dst Initial phi equivalence classes [ sub::ch#2 ] @@ -131,7 +131,7 @@ Complete equivalence classes Allocated zp[1]:2 [ sub::ch#2 ] Allocated zp[2]:3 [ main::screen ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::screen = (byte*) 1024 [ main::screen ] ( [ main::screen ] { } ) always clobbers reg byte a +Statement [0] main::screen = (char *) 1024 [ main::screen ] ( [ main::screen ] { } ) always clobbers reg byte a Statement [6] *(*(&main::screen)) = sub::ch#2 [ main::screen ] ( sub:1 [ main::screen ] { } sub:3 [ main::screen ] { } ) always clobbers reg byte y Potential registers zp[1]:2 [ sub::ch#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:3 [ main::screen ] : zp[2]:3 , @@ -164,12 +164,12 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label screen = 2 - // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 - // [1] call sub + // [1] call sub // [5] phi from main to sub [phi:main->sub] sub_from_main: // [5] phi sub::ch#2 = 'a' [phi:main->sub#0] -- vbuaa=vbuc1 @@ -180,7 +180,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call sub + // [3] call sub // [5] phi from main::@1 to sub [phi:main::@1->sub] sub_from___b1: // [5] phi sub::ch#2 = 'b' [phi:main::@1->sub#0] -- vbuaa=vbuc1 @@ -193,7 +193,7 @@ main: { rts } // sub -// sub(byte register(A) ch) +// void sub(__register(A) char ch, char **dst) sub: { // [6] *(*(&main::screen)) = sub::ch#2 -- _deref_(_deref_qbuc1)=vbuaa ldy.z main.screen @@ -231,11 +231,11 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte* volatile main::screen loadstore zp[2]:2 0.2857142857142857 -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#2 reg byte a 11.0 -byte** sub::dst +__loadstore char * volatile main::screen // zp[2]:2 0.2857142857142857 +void sub(char ch , char **dst) +char sub::ch +char sub::ch#2 // reg byte a 11.0 +char **sub::dst reg byte a [ sub::ch#2 ] zp[2]:2 [ main::screen ] @@ -262,13 +262,13 @@ Score: 70 main: { .label screen = 2 // byte* screen = (char*)0x400 - // [0] main::screen = (byte*) 1024 -- pbuz1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 // sub('a',&screen) - // [1] call sub + // [1] call sub // [5] phi from main to sub [phi:main->sub] // [5] phi sub::ch#2 = 'a' [phi:main->sub#0] -- vbuaa=vbuc1 lda #'a' @@ -276,7 +276,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // sub('b',&screen) - // [3] call sub + // [3] call sub // [5] phi from main::@1 to sub [phi:main::@1->sub] // [5] phi sub::ch#2 = 'b' [phi:main::@1->sub#0] -- vbuaa=vbuc1 lda #'b' @@ -287,7 +287,7 @@ main: { rts } // sub -// sub(byte register(A) ch) +// void sub(__register(A) char ch, char **dst) sub: { // *(*dst)++ = ch // [6] *(*(&main::screen)) = sub::ch#2 -- _deref_(_deref_qbuc1)=vbuaa diff --git a/src/test/ref/ptrptr-optimize-2.sym b/src/test/ref/ptrptr-optimize-2.sym index 79698dbd0..5eb722771 100644 --- a/src/test/ref/ptrptr-optimize-2.sym +++ b/src/test/ref/ptrptr-optimize-2.sym @@ -1,9 +1,9 @@ void main() -byte* volatile main::screen loadstore zp[2]:2 0.2857142857142857 -void sub(byte sub::ch , byte** sub::dst) -byte sub::ch -byte sub::ch#2 reg byte a 11.0 -byte** sub::dst +__loadstore char * volatile main::screen // zp[2]:2 0.2857142857142857 +void sub(char ch , char **dst) +char sub::ch +char sub::ch#2 // reg byte a 11.0 +char **sub::dst reg byte a [ sub::ch#2 ] zp[2]:2 [ main::screen ] diff --git a/src/test/ref/ptrtest.cfg b/src/test/ref/ptrtest.cfg index 2c129f9f2..97033b09c 100644 --- a/src/test/ref/ptrtest.cfg +++ b/src/test/ref/ptrtest.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call lvalue + [1] call lvalue to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call rvalue + [3] call rvalue to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call rvaluevar + [5] call rvaluevar to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call lvaluevar + [7] call lvaluevar to:main::@return main::@return: scope:[main] from main::@3 [8] return @@ -63,7 +63,7 @@ rvaluevar: scope:[rvaluevar] from main::@2 to:rvaluevar::@1 rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2 [24] rvaluevar::b#2 = phi( rvaluevar/0, rvaluevar::@2/rvaluevar::b#1 ) - [24] rvaluevar::screen#2 = phi( rvaluevar/(byte*) 1024, rvaluevar::@2/rvaluevar::screen#1 ) + [24] rvaluevar::screen#2 = phi( rvaluevar/(char *) 1024, rvaluevar::@2/rvaluevar::screen#1 ) [24] rvaluevar::i#2 = phi( rvaluevar/2, rvaluevar::@2/rvaluevar::i#1 ) [25] if(rvaluevar::i#2<$a) goto rvaluevar::@2 to:rvaluevar::@3 @@ -84,7 +84,7 @@ lvaluevar: scope:[lvaluevar] from main::@3 [31] phi() to:lvaluevar::@1 lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2 - [32] lvaluevar::screen#2 = phi( lvaluevar/(byte*) 1024, lvaluevar::@2/lvaluevar::screen#1 ) + [32] lvaluevar::screen#2 = phi( lvaluevar/(char *) 1024, lvaluevar::@2/lvaluevar::screen#1 ) [32] lvaluevar::i#2 = phi( lvaluevar/2, lvaluevar::@2/lvaluevar::i#1 ) [33] if(lvaluevar::i#2<$a) goto lvaluevar::@2 to:lvaluevar::@return diff --git a/src/test/ref/ptrtest.log b/src/test/ref/ptrtest.log index 80d3f0907..e00e9f660 100644 --- a/src/test/ref/ptrtest.log +++ b/src/test/ref/ptrtest.log @@ -3,16 +3,16 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call lvalue + call lvalue to:main::@1 main::@1: scope:[main] from main - call rvalue + call rvalue to:main::@2 main::@2: scope:[main] from main::@1 - call rvaluevar + call rvaluevar to:main::@3 main::@3: scope:[main] from main::@2 - call lvaluevar + call lvaluevar to:main::@4 main::@4: scope:[main] from main::@3 to:main::@return @@ -67,7 +67,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@3 void lvaluevar() lvaluevar: scope:[lvaluevar] from main::@3 - lvaluevar::screen#0 = (byte*)$400 + lvaluevar::screen#0 = (char *)$400 lvaluevar::i#0 = 2 to:lvaluevar::@1 lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2 @@ -89,7 +89,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1 void rvaluevar() rvaluevar: scope:[rvaluevar] from main::@2 - rvaluevar::screen#0 = (byte*)$400 + rvaluevar::screen#0 = (char *)$400 rvaluevar::b#0 = 0 rvaluevar::i#0 = 2 to:rvaluevar::@1 @@ -117,7 +117,7 @@ rvaluevar::@return: scope:[rvaluevar] from rvaluevar::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -128,60 +128,60 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void lvalue() -bool~ lvalue::$0 -constant byte* lvalue::SCREEN[$400] = (byte*)$400 -byte lvalue::i -byte lvalue::i#0 -byte lvalue::i#1 -byte lvalue::i#2 -byte lvalue::i#3 +bool lvalue::$0 +__constant char lvalue::SCREEN[$400] = (char *)$400 +char lvalue::i +char lvalue::i#0 +char lvalue::i#1 +char lvalue::i#2 +char lvalue::i#3 void lvaluevar() -bool~ lvaluevar::$0 -constant byte lvaluevar::b = 4 -byte lvaluevar::i -byte lvaluevar::i#0 -byte lvaluevar::i#1 -byte lvaluevar::i#2 -byte lvaluevar::i#3 -byte* lvaluevar::screen -byte* lvaluevar::screen#0 -byte* lvaluevar::screen#1 -byte* lvaluevar::screen#2 -byte* lvaluevar::screen#3 +bool lvaluevar::$0 +__constant char lvaluevar::b = 4 +char lvaluevar::i +char lvaluevar::i#0 +char lvaluevar::i#1 +char lvaluevar::i#2 +char lvaluevar::i#3 +char *lvaluevar::screen +char *lvaluevar::screen#0 +char *lvaluevar::screen#1 +char *lvaluevar::screen#2 +char *lvaluevar::screen#3 void main() void rvalue() -bool~ rvalue::$0 -constant byte* rvalue::SCREEN[$400] = (byte*)$400 -byte rvalue::b -byte rvalue::b#0 -byte rvalue::b#1 -byte rvalue::b#2 -byte rvalue::b#3 -byte rvalue::b#4 -byte rvalue::i -byte rvalue::i#0 -byte rvalue::i#1 -byte rvalue::i#2 -byte rvalue::i#3 -constant byte* rvalue::screen2 = (byte*)$400 +bool rvalue::$0 +__constant char rvalue::SCREEN[$400] = (char *)$400 +char rvalue::b +char rvalue::b#0 +char rvalue::b#1 +char rvalue::b#2 +char rvalue::b#3 +char rvalue::b#4 +char rvalue::i +char rvalue::i#0 +char rvalue::i#1 +char rvalue::i#2 +char rvalue::i#3 +__constant char *rvalue::screen2 = (char *)$400 void rvaluevar() -bool~ rvaluevar::$0 -byte rvaluevar::b -byte rvaluevar::b#0 -byte rvaluevar::b#1 -byte rvaluevar::b#2 -byte rvaluevar::b#3 -byte rvaluevar::i -byte rvaluevar::i#0 -byte rvaluevar::i#1 -byte rvaluevar::i#2 -byte rvaluevar::i#3 -byte* rvaluevar::screen -byte* rvaluevar::screen#0 -byte* rvaluevar::screen#1 -byte* rvaluevar::screen#2 -byte* rvaluevar::screen#3 -constant byte* rvaluevar::screen2 = (byte*)$400 +bool rvaluevar::$0 +char rvaluevar::b +char rvaluevar::b#0 +char rvaluevar::b#1 +char rvaluevar::b#2 +char rvaluevar::b#3 +char rvaluevar::i +char rvaluevar::i#0 +char rvaluevar::i#1 +char rvaluevar::i#2 +char rvaluevar::i#3 +char *rvaluevar::screen +char *rvaluevar::screen#0 +char *rvaluevar::screen#1 +char *rvaluevar::screen#2 +char *rvaluevar::screen#3 +__constant char *rvaluevar::screen2 = (char *)$400 Adding number conversion cast (unumber) 1 in *lvalue::SCREEN = 1 Adding number conversion cast (unumber) 2 in lvalue::SCREEN[1] = 2 @@ -197,10 +197,10 @@ Inlining cast *lvalue::SCREEN = (unumber)1 Inlining cast lvalue::SCREEN[(unumber)1] = (unumber)2 Inlining cast lvalue::SCREEN[lvalue::i#3] = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 @@ -208,20 +208,20 @@ Simplifying constant integer cast $a Simplifying constant integer cast 3 Simplifying constant integer cast 1 Simplifying constant integer cast $a -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias lvalue::i#2 = lvalue::i#3 Alias rvalue::i#2 = rvalue::i#3 @@ -239,9 +239,9 @@ Simple Condition rvaluevar::$0 [38] if(rvaluevar::i#2<$a) goto rvaluevar::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant lvalue::i#0 = 2 Constant rvalue::i#0 = 2 -Constant lvaluevar::screen#0 = (byte*) 1024 +Constant lvaluevar::screen#0 = (char *) 1024 Constant lvaluevar::i#0 = 2 -Constant rvaluevar::screen#0 = (byte*) 1024 +Constant rvaluevar::screen#0 = (char *) 1024 Constant rvaluevar::b#0 = 0 Constant rvaluevar::i#0 = 2 Successful SSA optimization Pass2ConstantIdentification @@ -260,18 +260,18 @@ Inlining constant with var siblings rvaluevar::screen#0 Inlining constant with var siblings rvaluevar::b#0 Inlining constant with var siblings rvaluevar::i#0 Constant inlined lvalue::i#0 = 2 -Constant inlined rvaluevar::screen#0 = (byte*) 1024 +Constant inlined rvaluevar::screen#0 = (char *) 1024 Constant inlined rvaluevar::b#0 = 0 Constant inlined rvalue::i#0 = 2 Constant inlined lvaluevar::i#0 = 2 -Constant inlined lvaluevar::screen#0 = (byte*) 1024 +Constant inlined lvaluevar::screen#0 = (char *) 1024 Constant inlined rvaluevar::i#0 = 2 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(lvalue::SCREEN+1) Consolidated array index constant in *(rvalue::SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $400 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (unsigned int) $400 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 @@ -307,19 +307,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call lvalue + [1] call lvalue to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call rvalue + [3] call rvalue to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call rvaluevar + [5] call rvaluevar to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call lvaluevar + [7] call lvaluevar to:main::@return main::@return: scope:[main] from main::@3 [8] return @@ -368,7 +368,7 @@ rvaluevar: scope:[rvaluevar] from main::@2 to:rvaluevar::@1 rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2 [24] rvaluevar::b#2 = phi( rvaluevar/0, rvaluevar::@2/rvaluevar::b#1 ) - [24] rvaluevar::screen#2 = phi( rvaluevar/(byte*) 1024, rvaluevar::@2/rvaluevar::screen#1 ) + [24] rvaluevar::screen#2 = phi( rvaluevar/(char *) 1024, rvaluevar::@2/rvaluevar::screen#1 ) [24] rvaluevar::i#2 = phi( rvaluevar/2, rvaluevar::@2/rvaluevar::i#1 ) [25] if(rvaluevar::i#2<$a) goto rvaluevar::@2 to:rvaluevar::@3 @@ -389,7 +389,7 @@ lvaluevar: scope:[lvaluevar] from main::@3 [31] phi() to:lvaluevar::@1 lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2 - [32] lvaluevar::screen#2 = phi( lvaluevar/(byte*) 1024, lvaluevar::@2/lvaluevar::screen#1 ) + [32] lvaluevar::screen#2 = phi( lvaluevar/(char *) 1024, lvaluevar::@2/lvaluevar::screen#1 ) [32] lvaluevar::i#2 = phi( lvaluevar/2, lvaluevar::@2/lvaluevar::i#1 ) [33] if(lvaluevar::i#2<$a) goto lvaluevar::@2 to:lvaluevar::@return @@ -405,35 +405,35 @@ lvaluevar::@2: scope:[lvaluevar] from lvaluevar::@1 VARIABLE REGISTER WEIGHTS void lvalue() -byte lvalue::i -byte lvalue::i#1 202.0 -byte lvalue::i#2 134.66666666666666 +char lvalue::i +char lvalue::i#1 // 202.0 +char lvalue::i#2 // 134.66666666666666 void lvaluevar() -byte lvaluevar::i -byte lvaluevar::i#1 202.0 -byte lvaluevar::i#2 75.75 -byte* lvaluevar::screen -byte* lvaluevar::screen#1 101.0 -byte* lvaluevar::screen#2 101.0 +char lvaluevar::i +char lvaluevar::i#1 // 202.0 +char lvaluevar::i#2 // 75.75 +char *lvaluevar::screen +char *lvaluevar::screen#1 // 101.0 +char *lvaluevar::screen#2 // 101.0 void main() void rvalue() -byte rvalue::b -byte rvalue::b#1 22.0 -byte rvalue::b#2 101.0 -byte rvalue::b#3 61.5 -byte rvalue::i -byte rvalue::i#1 202.0 -byte rvalue::i#2 134.66666666666666 +char rvalue::b +char rvalue::b#1 // 22.0 +char rvalue::b#2 // 101.0 +char rvalue::b#3 // 61.5 +char rvalue::i +char rvalue::i#1 // 202.0 +char rvalue::i#2 // 134.66666666666666 void rvaluevar() -byte rvaluevar::b -byte rvaluevar::b#1 67.33333333333333 -byte rvaluevar::b#2 56.0 -byte rvaluevar::i -byte rvaluevar::i#1 202.0 -byte rvaluevar::i#2 75.75 -byte* rvaluevar::screen -byte* rvaluevar::screen#1 101.0 -byte* rvaluevar::screen#2 101.0 +char rvaluevar::b +char rvaluevar::b#1 // 67.33333333333333 +char rvaluevar::b#2 // 56.0 +char rvaluevar::i +char rvaluevar::i#1 // 202.0 +char rvaluevar::i#2 // 75.75 +char *rvaluevar::screen +char *rvaluevar::screen#1 // 101.0 +char *rvaluevar::screen#2 // 101.0 Initial phi equivalence classes [ lvalue::i#2 lvalue::i#1 ] @@ -519,21 +519,21 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call lvalue + // [1] call lvalue jsr lvalue // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call rvalue + // [3] call rvalue jsr rvalue // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: jmp __b2 // main::@2 __b2: - // [5] call rvaluevar + // [5] call rvaluevar // [23] phi from main::@2 to rvaluevar [phi:main::@2->rvaluevar] rvaluevar_from___b2: jsr rvaluevar @@ -542,7 +542,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call lvaluevar + // [7] call lvaluevar // [31] phi from main::@3 to lvaluevar [phi:main::@3->lvaluevar] lvaluevar_from___b3: jsr lvaluevar @@ -640,7 +640,7 @@ rvaluevar: { __b1_from_rvaluevar: // [24] phi rvaluevar::b#2 = 0 [phi:rvaluevar->rvaluevar::@1#0] -- vbuyy=vbuc1 ldy #0 - // [24] phi rvaluevar::screen#2 = (byte*) 1024 [phi:rvaluevar->rvaluevar::@1#1] -- pbuz1=pbuc1 + // [24] phi rvaluevar::screen#2 = (char *) 1024 [phi:rvaluevar->rvaluevar::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -690,7 +690,7 @@ lvaluevar: { .label screen = 2 // [32] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1] __b1_from_lvaluevar: - // [32] phi lvaluevar::screen#2 = (byte*) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 + // [32] phi lvaluevar::screen#2 = (char *) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -774,40 +774,40 @@ Replacing instruction ldx #2 with TAX FINAL SYMBOL TABLE void lvalue() -constant byte* lvalue::SCREEN[$400] = (byte*) 1024 -byte lvalue::i -byte lvalue::i#1 reg byte x 202.0 -byte lvalue::i#2 reg byte x 134.66666666666666 +__constant char lvalue::SCREEN[$400] = (char *) 1024 +char lvalue::i +char lvalue::i#1 // reg byte x 202.0 +char lvalue::i#2 // reg byte x 134.66666666666666 void lvaluevar() -constant byte lvaluevar::b = 4 -byte lvaluevar::i -byte lvaluevar::i#1 reg byte x 202.0 -byte lvaluevar::i#2 reg byte x 75.75 -byte* lvaluevar::screen -byte* lvaluevar::screen#1 screen zp[2]:2 101.0 -byte* lvaluevar::screen#2 screen zp[2]:2 101.0 +__constant char lvaluevar::b = 4 +char lvaluevar::i +char lvaluevar::i#1 // reg byte x 202.0 +char lvaluevar::i#2 // reg byte x 75.75 +char *lvaluevar::screen +char *lvaluevar::screen#1 // screen zp[2]:2 101.0 +char *lvaluevar::screen#2 // screen zp[2]:2 101.0 void main() void rvalue() -constant byte* rvalue::SCREEN[$400] = (byte*) 1024 -byte rvalue::b -byte rvalue::b#1 reg byte a 22.0 -byte rvalue::b#2 reg byte a 101.0 -byte rvalue::b#3 reg byte a 61.5 -byte rvalue::i -byte rvalue::i#1 reg byte x 202.0 -byte rvalue::i#2 reg byte x 134.66666666666666 -constant byte* rvalue::screen2 = (byte*) 1024 +__constant char rvalue::SCREEN[$400] = (char *) 1024 +char rvalue::b +char rvalue::b#1 // reg byte a 22.0 +char rvalue::b#2 // reg byte a 101.0 +char rvalue::b#3 // reg byte a 61.5 +char rvalue::i +char rvalue::i#1 // reg byte x 202.0 +char rvalue::i#2 // reg byte x 134.66666666666666 +__constant char *rvalue::screen2 = (char *) 1024 void rvaluevar() -byte rvaluevar::b -byte rvaluevar::b#1 reg byte y 67.33333333333333 -byte rvaluevar::b#2 reg byte y 56.0 -byte rvaluevar::i -byte rvaluevar::i#1 reg byte x 202.0 -byte rvaluevar::i#2 reg byte x 75.75 -byte* rvaluevar::screen -byte* rvaluevar::screen#1 screen zp[2]:2 101.0 -byte* rvaluevar::screen#2 screen zp[2]:2 101.0 -constant byte* rvaluevar::screen2 = (byte*) 1024 +char rvaluevar::b +char rvaluevar::b#1 // reg byte y 67.33333333333333 +char rvaluevar::b#2 // reg byte y 56.0 +char rvaluevar::i +char rvaluevar::i#1 // reg byte x 202.0 +char rvaluevar::i#2 // reg byte x 75.75 +char *rvaluevar::screen +char *rvaluevar::screen#1 // screen zp[2]:2 101.0 +char *rvaluevar::screen#2 // screen zp[2]:2 101.0 +__constant char *rvaluevar::screen2 = (char *) 1024 reg byte x [ lvalue::i#2 lvalue::i#1 ] reg byte x [ rvalue::i#2 rvalue::i#1 ] @@ -837,23 +837,23 @@ Score: 1318 // main main: { // lvalue() - // [1] call lvalue + // [1] call lvalue jsr lvalue // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // rvalue() - // [3] call rvalue + // [3] call rvalue jsr rvalue // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // rvaluevar() - // [5] call rvaluevar + // [5] call rvaluevar // [23] phi from main::@2 to rvaluevar [phi:main::@2->rvaluevar] jsr rvaluevar // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // lvaluevar() - // [7] call lvaluevar + // [7] call lvaluevar // [31] phi from main::@3 to lvaluevar [phi:main::@3->lvaluevar] jsr lvaluevar // main::@return @@ -948,7 +948,7 @@ rvaluevar: { // [24] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1] // [24] phi rvaluevar::b#2 = 0 [phi:rvaluevar->rvaluevar::@1#0] -- vbuyy=vbuc1 ldy #0 - // [24] phi rvaluevar::screen#2 = (byte*) 1024 [phi:rvaluevar->rvaluevar::@1#1] -- pbuz1=pbuc1 + // [24] phi rvaluevar::screen#2 = (char *) 1024 [phi:rvaluevar->rvaluevar::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -997,7 +997,7 @@ lvaluevar: { .const b = 4 .label screen = 2 // [32] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1] - // [32] phi lvaluevar::screen#2 = (byte*) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 + // [32] phi lvaluevar::screen#2 = (char *) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/ptrtest.sym b/src/test/ref/ptrtest.sym index 1c40111d8..229e8fc40 100644 --- a/src/test/ref/ptrtest.sym +++ b/src/test/ref/ptrtest.sym @@ -1,38 +1,38 @@ void lvalue() -constant byte* lvalue::SCREEN[$400] = (byte*) 1024 -byte lvalue::i -byte lvalue::i#1 reg byte x 202.0 -byte lvalue::i#2 reg byte x 134.66666666666666 +__constant char lvalue::SCREEN[$400] = (char *) 1024 +char lvalue::i +char lvalue::i#1 // reg byte x 202.0 +char lvalue::i#2 // reg byte x 134.66666666666666 void lvaluevar() -constant byte lvaluevar::b = 4 -byte lvaluevar::i -byte lvaluevar::i#1 reg byte x 202.0 -byte lvaluevar::i#2 reg byte x 75.75 -byte* lvaluevar::screen -byte* lvaluevar::screen#1 screen zp[2]:2 101.0 -byte* lvaluevar::screen#2 screen zp[2]:2 101.0 +__constant char lvaluevar::b = 4 +char lvaluevar::i +char lvaluevar::i#1 // reg byte x 202.0 +char lvaluevar::i#2 // reg byte x 75.75 +char *lvaluevar::screen +char *lvaluevar::screen#1 // screen zp[2]:2 101.0 +char *lvaluevar::screen#2 // screen zp[2]:2 101.0 void main() void rvalue() -constant byte* rvalue::SCREEN[$400] = (byte*) 1024 -byte rvalue::b -byte rvalue::b#1 reg byte a 22.0 -byte rvalue::b#2 reg byte a 101.0 -byte rvalue::b#3 reg byte a 61.5 -byte rvalue::i -byte rvalue::i#1 reg byte x 202.0 -byte rvalue::i#2 reg byte x 134.66666666666666 -constant byte* rvalue::screen2 = (byte*) 1024 +__constant char rvalue::SCREEN[$400] = (char *) 1024 +char rvalue::b +char rvalue::b#1 // reg byte a 22.0 +char rvalue::b#2 // reg byte a 101.0 +char rvalue::b#3 // reg byte a 61.5 +char rvalue::i +char rvalue::i#1 // reg byte x 202.0 +char rvalue::i#2 // reg byte x 134.66666666666666 +__constant char *rvalue::screen2 = (char *) 1024 void rvaluevar() -byte rvaluevar::b -byte rvaluevar::b#1 reg byte y 67.33333333333333 -byte rvaluevar::b#2 reg byte y 56.0 -byte rvaluevar::i -byte rvaluevar::i#1 reg byte x 202.0 -byte rvaluevar::i#2 reg byte x 75.75 -byte* rvaluevar::screen -byte* rvaluevar::screen#1 screen zp[2]:2 101.0 -byte* rvaluevar::screen#2 screen zp[2]:2 101.0 -constant byte* rvaluevar::screen2 = (byte*) 1024 +char rvaluevar::b +char rvaluevar::b#1 // reg byte y 67.33333333333333 +char rvaluevar::b#2 // reg byte y 56.0 +char rvaluevar::i +char rvaluevar::i#1 // reg byte x 202.0 +char rvaluevar::i#2 // reg byte x 75.75 +char *rvaluevar::screen +char *rvaluevar::screen#1 // screen zp[2]:2 101.0 +char *rvaluevar::screen#2 // screen zp[2]:2 101.0 +__constant char *rvaluevar::screen2 = (char *) 1024 reg byte x [ lvalue::i#2 lvalue::i#1 ] reg byte x [ rvalue::i#2 rvalue::i#1 ] diff --git a/src/test/ref/ptrtestmin.log b/src/test/ref/ptrtestmin.log index c91aeb5ce..1b6f31d22 100644 --- a/src/test/ref/ptrtestmin.log +++ b/src/test/ref/ptrtestmin.log @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -38,28 +38,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN[$400] = (byte*)$400 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +__constant char main::SCREEN[$400] = (char *)$400 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Adding number conversion cast (unumber) $3e7 in main::SCREEN[$3e7] = main::b#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Simplifying constant integer cast $3e7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (word) $3e7 +Finalized unsigned number type (char) $a +Finalized unsigned number type (unsigned int) $3e7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias main::b#2 = main::b#3 @@ -86,7 +86,7 @@ Constant inlined main::$1 = main::SCREEN+$3e7 Constant inlined main::i#0 = 2 Constant inlined main::b#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 +Finalized unsigned number type (unsigned int) $400 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -122,12 +122,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::b -byte main::b#1 11.0 -byte main::b#2 6.5 -byte main::i -byte main::i#1 22.0 -byte main::i#2 14.666666666666666 +char main::b +char main::b#1 // 11.0 +char main::b#2 // 6.5 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -215,13 +215,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN[$400] = (byte*) 1024 -byte main::b -byte main::b#1 reg byte a 11.0 -byte main::b#2 reg byte a 6.5 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 14.666666666666666 +__constant char main::SCREEN[$400] = (char *) 1024 +char main::b +char main::b#1 // reg byte a 11.0 +char main::b#2 // reg byte a 6.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::b#2 main::b#1 ] diff --git a/src/test/ref/ptrtestmin.sym b/src/test/ref/ptrtestmin.sym index c734df370..76e0c2039 100644 --- a/src/test/ref/ptrtestmin.sym +++ b/src/test/ref/ptrtestmin.sym @@ -1,11 +1,11 @@ void main() -constant byte* main::SCREEN[$400] = (byte*) 1024 -byte main::b -byte main::b#1 reg byte a 11.0 -byte main::b#2 reg byte a 6.5 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 14.666666666666666 +__constant char main::SCREEN[$400] = (char *) 1024 +char main::b +char main::b#1 // reg byte a 11.0 +char main::b#2 // reg byte a 6.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::b#2 main::b#1 ] diff --git a/src/test/ref/register-0.asm b/src/test/ref/register-0.asm index 8730600ff..9772e303b 100644 --- a/src/test/ref/register-0.asm +++ b/src/test/ref/register-0.asm @@ -34,7 +34,7 @@ main: { // } rts } -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // kickasm diff --git a/src/test/ref/register-0.cfg b/src/test/ref/register-0.cfg index 53c14a067..643454be6 100644 --- a/src/test/ref/register-0.cfg +++ b/src/test/ref/register-0.cfg @@ -8,7 +8,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -17,21 +17,21 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] print::ch = 'c' - [6] call print + [6] call print to:main::@1 main::@1: scope:[main] from main [7] print::ch = 'm' - [8] call print + [8] call print to:main::@2 main::@2: scope:[main] from main::@1 [9] print::ch = 'l' - [10] call print + [10] call print to:main::@return main::@return: scope:[main] from main::@2 [11] return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 kickasm( uses print::ch) {{ }} asm { ldxidx staSCREEN,x incidx } diff --git a/src/test/ref/register-0.log b/src/test/ref/register-0.log index c2cd7978d..7b7e77db1 100644 --- a/src/test/ref/register-0.log +++ b/src/test/ref/register-0.log @@ -1,20 +1,20 @@ Setting inferred volatile on symbol affected by address-of: print::ch in kickasm( uses print::ch) {{ }} -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 print::ch = 'c' - call print + call print to:main::@1 main::@1: scope:[main] from main print::ch = 'm' - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 print::ch = 'l' - call print + call print to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 kickasm( uses print::ch) {{ }} asm { ldxidx staSCREEN,x incidx } @@ -38,7 +38,7 @@ __start::__init1: scope:[__start] from __start idx = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -47,14 +47,14 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte idx loadstore !zp[-1]:3 +__loadstore volatile char idx // !zp[-1]:3 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore +void print(volatile char ch) +__loadstore volatile char print::ch -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -82,7 +82,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -91,21 +91,21 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 [5] print::ch = 'c' - [6] call print + [6] call print to:main::@1 main::@1: scope:[main] from main [7] print::ch = 'm' - [8] call print + [8] call print to:main::@2 main::@2: scope:[main] from main::@1 [9] print::ch = 'l' - [10] call print + [10] call print to:main::@return main::@return: scope:[main] from main::@2 [11] return to:@return -void print(volatile byte print::ch) +void print(volatile char ch) print: scope:[print] from main main::@1 main::@2 kickasm( uses print::ch) {{ }} asm { ldxidx staSCREEN,x incidx } @@ -117,10 +117,10 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void __start() -volatile byte idx loadstore !zp[-1]:3 0.2 +__loadstore volatile char idx // !zp[-1]:3 0.2 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // 11.0 Initial phi equivalence classes Added variable idx to live range equivalence class [ idx ] @@ -183,7 +183,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -196,7 +196,7 @@ main: { // [5] print::ch = 'c' -- vbuz1=vbuc1 lda #'c' sta.z print.ch - // [6] call print + // [6] call print jsr print jmp __b1 // main::@1 @@ -204,7 +204,7 @@ main: { // [7] print::ch = 'm' -- vbuz1=vbuc1 lda #'m' sta.z print.ch - // [8] call print + // [8] call print jsr print jmp __b2 // main::@2 @@ -212,7 +212,7 @@ main: { // [9] print::ch = 'l' -- vbuz1=vbuc1 lda #'l' sta.z print.ch - // [10] call print + // [10] call print jsr print jmp __breturn // main::@return @@ -221,7 +221,7 @@ main: { rts } // print -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // kickasm( uses print::ch) {{ }} @@ -260,12 +260,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte idx loadstore !zp[-1]:3 zp[1]:3 0.2 +__loadstore volatile char idx // !zp[-1]:3 zp[1]:3 0.2 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore zp[1]:2 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // zp[1]:2 11.0 zp[1]:3 [ idx ] zp[1]:2 [ print::ch ] @@ -299,7 +299,7 @@ __start: { sta.z idx // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -311,21 +311,21 @@ main: { // [5] print::ch = 'c' -- vbuz1=vbuc1 lda #'c' sta.z print.ch - // [6] call print + // [6] call print jsr print // main::@1 // print('m') // [7] print::ch = 'm' -- vbuz1=vbuc1 lda #'m' sta.z print.ch - // [8] call print + // [8] call print jsr print // main::@2 // print('l') // [9] print::ch = 'l' -- vbuz1=vbuc1 lda #'l' sta.z print.ch - // [10] call print + // [10] call print jsr print // main::@return // } @@ -333,7 +333,7 @@ main: { rts } // print -// print(byte zp(2) ch) +// void print(__zp(2) volatile char ch) print: { .label ch = 2 // kickasm diff --git a/src/test/ref/register-0.sym b/src/test/ref/register-0.sym index 2f39d7c33..9b9ef5c59 100644 --- a/src/test/ref/register-0.sym +++ b/src/test/ref/register-0.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte idx loadstore !zp[-1]:3 zp[1]:3 0.2 +__loadstore volatile char idx // !zp[-1]:3 zp[1]:3 0.2 void main() -void print(volatile byte print::ch) -volatile byte print::ch loadstore zp[1]:2 11.0 +void print(volatile char ch) +__loadstore volatile char print::ch // zp[1]:2 11.0 zp[1]:3 [ idx ] zp[1]:2 [ print::ch ] diff --git a/src/test/ref/reserve-zp-global-range.asm b/src/test/ref/reserve-zp-global-range.asm index 9e2adf5ad..f45dab45d 100644 --- a/src/test/ref/reserve-zp-global-range.asm +++ b/src/test/ref/reserve-zp-global-range.asm @@ -29,7 +29,7 @@ main: { // } rts } -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i asl diff --git a/src/test/ref/reserve-zp-global-range.cfg b/src/test/ref/reserve-zp-global-range.cfg index 7845e0a00..1a7fa314f 100644 --- a/src/test/ref/reserve-zp-global-range.cfg +++ b/src/test/ref/reserve-zp-global-range.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return diff --git a/src/test/ref/reserve-zp-global-range.log b/src/test/ref/reserve-zp-global-range.log index 48b8b5c51..e7548e891 100644 --- a/src/test/ref/reserve-zp-global-range.log +++ b/src/test/ref/reserve-zp-global-range.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 sub1::i#0 = main::i - call sub1 + call sub1 sub1::return#0 = sub1::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 sub1::i#1 = phi( main::@1/sub1::i#0 ) sub1::$0 = sub1::i#1 + sub1::i#1 @@ -36,7 +36,7 @@ sub1::@return: scope:[sub1] from sub1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,23 +47,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::i loadstore -byte sub1(byte sub1::i) -byte~ sub1::$0 -byte sub1::i -byte sub1::i#0 -byte sub1::i#1 -byte sub1::return -byte sub1::return#0 -byte sub1::return#1 -byte sub1::return#2 -byte sub1::return#3 -byte sub1::return#4 +char main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::i +char sub1(char i) +char sub1::$0 +char sub1::i +char sub1::i#0 +char sub1::i#1 +char sub1::return +char sub1::return#0 +char sub1::return#1 +char sub1::return#2 +char sub1::return#3 +char sub1::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sub1::return#0 = sub1::return#3 Alias sub1::return#1 = sub1::$0 sub1::return#4 sub1::return#2 @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 3 in [7] if(main::i!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to sub1:2 @@ -99,7 +99,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -123,14 +123,14 @@ sub1::@return: scope:[sub1] from sub1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -volatile byte main::i loadstore 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 213.0 -byte sub1::return -byte sub1::return#0 22.0 -byte sub1::return#1 37.33333333333333 +char main::$0 // 22.0 +__loadstore volatile char main::i // 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // 213.0 +char sub1::return +char sub1::return#0 // 22.0 +char sub1::return#1 // 37.33333333333333 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -197,7 +197,7 @@ main: { __b1: // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 jmp __b2 @@ -220,7 +220,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa asl @@ -245,15 +245,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:129 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:129 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:129 [ main::i ] reg byte a [ sub1::i#0 ] @@ -291,7 +291,7 @@ main: { // sub1(i) // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 // main::@2 @@ -313,7 +313,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa diff --git a/src/test/ref/reserve-zp-global-range.sym b/src/test/ref/reserve-zp-global-range.sym index 13a95a6f3..76514a263 100644 --- a/src/test/ref/reserve-zp-global-range.sym +++ b/src/test/ref/reserve-zp-global-range.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:129 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:129 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:129 [ main::i ] reg byte a [ sub1::i#0 ] diff --git a/src/test/ref/reserve-zp-global.asm b/src/test/ref/reserve-zp-global.asm index 31d278c0a..ed7e17ee4 100644 --- a/src/test/ref/reserve-zp-global.asm +++ b/src/test/ref/reserve-zp-global.asm @@ -29,7 +29,7 @@ main: { // } rts } -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i asl diff --git a/src/test/ref/reserve-zp-global.cfg b/src/test/ref/reserve-zp-global.cfg index 7845e0a00..1a7fa314f 100644 --- a/src/test/ref/reserve-zp-global.cfg +++ b/src/test/ref/reserve-zp-global.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return diff --git a/src/test/ref/reserve-zp-global.log b/src/test/ref/reserve-zp-global.log index 2fe34df00..13bc11a8e 100644 --- a/src/test/ref/reserve-zp-global.log +++ b/src/test/ref/reserve-zp-global.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 sub1::i#0 = main::i - call sub1 + call sub1 sub1::return#0 = sub1::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 sub1::i#1 = phi( main::@1/sub1::i#0 ) sub1::$0 = sub1::i#1 + sub1::i#1 @@ -36,7 +36,7 @@ sub1::@return: scope:[sub1] from sub1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,23 +47,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::i loadstore -byte sub1(byte sub1::i) -byte~ sub1::$0 -byte sub1::i -byte sub1::i#0 -byte sub1::i#1 -byte sub1::return -byte sub1::return#0 -byte sub1::return#1 -byte sub1::return#2 -byte sub1::return#3 -byte sub1::return#4 +char main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::i +char sub1(char i) +char sub1::$0 +char sub1::i +char sub1::i#0 +char sub1::i#1 +char sub1::return +char sub1::return#0 +char sub1::return#1 +char sub1::return#2 +char sub1::return#3 +char sub1::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sub1::return#0 = sub1::return#3 Alias sub1::return#1 = sub1::$0 sub1::return#4 sub1::return#2 @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 3 in [7] if(main::i!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to sub1:2 @@ -99,7 +99,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -123,14 +123,14 @@ sub1::@return: scope:[sub1] from sub1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -volatile byte main::i loadstore 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 213.0 -byte sub1::return -byte sub1::return#0 22.0 -byte sub1::return#1 37.33333333333333 +char main::$0 // 22.0 +__loadstore volatile char main::i // 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // 213.0 +char sub1::return +char sub1::return#0 // 22.0 +char sub1::return#1 // 37.33333333333333 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -197,7 +197,7 @@ main: { __b1: // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 jmp __b2 @@ -220,7 +220,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa asl @@ -245,15 +245,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:4 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:4 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:4 [ main::i ] reg byte a [ sub1::i#0 ] @@ -291,7 +291,7 @@ main: { // sub1(i) // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 // main::@2 @@ -313,7 +313,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa diff --git a/src/test/ref/reserve-zp-global.sym b/src/test/ref/reserve-zp-global.sym index 9a36e6b55..2b38ace52 100644 --- a/src/test/ref/reserve-zp-global.sym +++ b/src/test/ref/reserve-zp-global.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:4 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:4 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:4 [ main::i ] reg byte a [ sub1::i#0 ] diff --git a/src/test/ref/reserve-zp-procedure-1.asm b/src/test/ref/reserve-zp-procedure-1.asm index 0a2107cd7..1386a7bbf 100644 --- a/src/test/ref/reserve-zp-procedure-1.asm +++ b/src/test/ref/reserve-zp-procedure-1.asm @@ -29,7 +29,7 @@ main: { // } rts } -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i asl diff --git a/src/test/ref/reserve-zp-procedure-1.cfg b/src/test/ref/reserve-zp-procedure-1.cfg index 7845e0a00..1a7fa314f 100644 --- a/src/test/ref/reserve-zp-procedure-1.cfg +++ b/src/test/ref/reserve-zp-procedure-1.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return diff --git a/src/test/ref/reserve-zp-procedure-1.log b/src/test/ref/reserve-zp-procedure-1.log index 7960722f1..e8309da44 100644 --- a/src/test/ref/reserve-zp-procedure-1.log +++ b/src/test/ref/reserve-zp-procedure-1.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 sub1::i#0 = main::i - call sub1 + call sub1 sub1::return#0 = sub1::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 sub1::i#1 = phi( main::@1/sub1::i#0 ) sub1::$0 = sub1::i#1 + sub1::i#1 @@ -36,7 +36,7 @@ sub1::@return: scope:[sub1] from sub1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,23 +47,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::i loadstore -byte sub1(byte sub1::i) -byte~ sub1::$0 -byte sub1::i -byte sub1::i#0 -byte sub1::i#1 -byte sub1::return -byte sub1::return#0 -byte sub1::return#1 -byte sub1::return#2 -byte sub1::return#3 -byte sub1::return#4 +char main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::i +char sub1(char i) +char sub1::$0 +char sub1::i +char sub1::i#0 +char sub1::i#1 +char sub1::return +char sub1::return#0 +char sub1::return#1 +char sub1::return#2 +char sub1::return#3 +char sub1::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sub1::return#0 = sub1::return#3 Alias sub1::return#1 = sub1::$0 sub1::return#4 sub1::return#2 @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 3 in [7] if(main::i!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to sub1:2 @@ -99,7 +99,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -123,14 +123,14 @@ sub1::@return: scope:[sub1] from sub1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -volatile byte main::i loadstore 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 213.0 -byte sub1::return -byte sub1::return#0 22.0 -byte sub1::return#1 37.33333333333333 +char main::$0 // 22.0 +__loadstore volatile char main::i // 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // 213.0 +char sub1::return +char sub1::return#0 // 22.0 +char sub1::return#1 // 37.33333333333333 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -197,7 +197,7 @@ main: { __b1: // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 jmp __b2 @@ -220,7 +220,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa asl @@ -245,15 +245,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:5 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:5 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:5 [ main::i ] reg byte a [ sub1::i#0 ] @@ -291,7 +291,7 @@ main: { // sub1(i) // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 // main::@2 @@ -313,7 +313,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa diff --git a/src/test/ref/reserve-zp-procedure-1.sym b/src/test/ref/reserve-zp-procedure-1.sym index f7041c914..4fb67bb12 100644 --- a/src/test/ref/reserve-zp-procedure-1.sym +++ b/src/test/ref/reserve-zp-procedure-1.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:5 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:5 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:5 [ main::i ] reg byte a [ sub1::i#0 ] diff --git a/src/test/ref/reserve-zp-procedure-2.asm b/src/test/ref/reserve-zp-procedure-2.asm index e29aab019..ae98f651c 100644 --- a/src/test/ref/reserve-zp-procedure-2.asm +++ b/src/test/ref/reserve-zp-procedure-2.asm @@ -35,14 +35,14 @@ main: { // } rts } -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i asl // } rts } -// sub2(byte register(X) i) +// __register(A) char sub2(__register(X) char i) sub2: { // i+i txa diff --git a/src/test/ref/reserve-zp-procedure-2.cfg b/src/test/ref/reserve-zp-procedure-2.cfg index 928f602d2..63ef63aff 100644 --- a/src/test/ref/reserve-zp-procedure-2.cfg +++ b/src/test/ref/reserve-zp-procedure-2.cfg @@ -5,14 +5,14 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 [4] main::$0 = sub1::return#0 [5] main::SCREEN[main::i] = main::$0 [6] sub2::i#0 = main::i - [7] call sub2 + [7] call sub2 [8] sub2::return#0 = sub2::return#1 to:main::@3 main::@3: scope:[main] from main::@2 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@3 [13] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [14] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -33,7 +33,7 @@ sub1::@return: scope:[sub1] from sub1 [15] return to:@return -byte sub2(byte sub2::i) +char sub2(char i) sub2: scope:[sub2] from main::@2 [16] sub2::$0 = sub2::i#0 + sub2::i#0 [17] sub2::return#1 = sub2::$0 + sub2::i#0 diff --git a/src/test/ref/reserve-zp-procedure-2.log b/src/test/ref/reserve-zp-procedure-2.log index 752626682..a6e859994 100644 --- a/src/test/ref/reserve-zp-procedure-2.log +++ b/src/test/ref/reserve-zp-procedure-2.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@3 sub1::i#0 = main::i - call sub1 + call sub1 sub1::return#0 = sub1::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -15,7 +15,7 @@ main::@2: scope:[main] from main::@1 main::$0 = sub1::return#3 main::SCREEN[main::i] = main::$0 sub2::i#0 = main::i - call sub2 + call sub2 sub2::return#0 = sub2::return#2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@3 return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 sub1::i#1 = phi( main::@1/sub1::i#0 ) sub1::$0 = sub1::i#1 + sub1::i#1 @@ -42,7 +42,7 @@ sub1::@return: scope:[sub1] from sub1 return to:@return -byte sub2(byte sub2::i) +char sub2(char i) sub2: scope:[sub2] from main::@2 sub2::i#1 = phi( main::@2/sub2::i#0 ) sub2::$0 = sub2::i#1 + sub2::i#1 @@ -57,7 +57,7 @@ sub2::@return: scope:[sub2] from sub2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -68,41 +68,41 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::i loadstore -byte sub1(byte sub1::i) -byte~ sub1::$0 -byte sub1::i -byte sub1::i#0 -byte sub1::i#1 -byte sub1::return -byte sub1::return#0 -byte sub1::return#1 -byte sub1::return#2 -byte sub1::return#3 -byte sub1::return#4 -byte sub2(byte sub2::i) -byte~ sub2::$0 -byte~ sub2::$1 -byte sub2::i -byte sub2::i#0 -byte sub2::i#1 -byte sub2::return -byte sub2::return#0 -byte sub2::return#1 -byte sub2::return#2 -byte sub2::return#3 -byte sub2::return#4 +char main::$0 +char main::$1 +bool main::$2 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::i +char sub1(char i) +char sub1::$0 +char sub1::i +char sub1::i#0 +char sub1::i#1 +char sub1::return +char sub1::return#0 +char sub1::return#1 +char sub1::return#2 +char sub1::return#3 +char sub1::return#4 +char sub2(char i) +char sub2::$0 +char sub2::$1 +char sub2::i +char sub2::i#0 +char sub2::i#1 +char sub2::return +char sub2::return#0 +char sub2::return#1 +char sub2::return#2 +char sub2::return#3 +char sub2::return#4 Adding number conversion cast (unumber) $28 in (main::SCREEN+$28)[main::i] = main::$1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias sub1::return#0 = sub1::return#3 Alias sub2::return#0 = sub2::return#3 @@ -125,7 +125,7 @@ Adding number conversion cast (unumber) 3 in [12] if(main::i!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to sub1:2 sub2:7 @@ -141,14 +141,14 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@3 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 [4] main::$0 = sub1::return#0 [5] main::SCREEN[main::i] = main::$0 [6] sub2::i#0 = main::i - [7] call sub2 + [7] call sub2 [8] sub2::return#0 = sub2::return#1 to:main::@3 main::@3: scope:[main] from main::@2 @@ -161,7 +161,7 @@ main::@return: scope:[main] from main::@3 [13] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [14] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -169,7 +169,7 @@ sub1::@return: scope:[sub1] from sub1 [15] return to:@return -byte sub2(byte sub2::i) +char sub2(char i) sub2: scope:[sub2] from main::@2 [16] sub2::$0 = sub2::i#0 + sub2::i#0 [17] sub2::return#1 = sub2::$0 + sub2::i#0 @@ -181,22 +181,22 @@ sub2::@return: scope:[sub2] from sub2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -volatile byte main::i loadstore 6.076923076923077 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 213.0 -byte sub1::return -byte sub1::return#0 22.0 -byte sub1::return#1 37.33333333333333 -byte sub2(byte sub2::i) -byte~ sub2::$0 202.0 -byte sub2::i -byte sub2::i#0 157.0 -byte sub2::return -byte sub2::return#0 22.0 -byte sub2::return#1 37.33333333333333 +char main::$0 // 22.0 +char main::$1 // 22.0 +__loadstore volatile char main::i // 6.076923076923077 +char sub1(char i) +char sub1::i +char sub1::i#0 // 213.0 +char sub1::return +char sub1::return#0 // 22.0 +char sub1::return#1 // 37.33333333333333 +char sub2(char i) +char sub2::$0 // 202.0 +char sub2::i +char sub2::i#0 // 157.0 +char sub2::return +char sub2::return#0 // 22.0 +char sub2::return#1 // 37.33333333333333 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -297,7 +297,7 @@ main: { __b1: // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 jmp __b2 @@ -309,7 +309,7 @@ main: { sta SCREEN,y // [6] sub2::i#0 = main::i -- vbuxx=vbuz1 ldx.z i - // [7] call sub2 + // [7] call sub2 jsr sub2 // [8] sub2::return#0 = sub2::return#1 jmp __b3 @@ -332,7 +332,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // [14] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa asl @@ -343,7 +343,7 @@ sub1: { rts } // sub2 -// sub2(byte register(X) i) +// __register(A) char sub2(__register(X) char i) sub2: { // [16] sub2::$0 = sub2::i#0 + sub2::i#0 -- vbuaa=vbuxx_plus_vbuxx txa @@ -377,23 +377,23 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:8 6.076923076923077 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 -byte sub2(byte sub2::i) -byte~ sub2::$0 reg byte a 202.0 -byte sub2::i -byte sub2::i#0 reg byte x 157.0 -byte sub2::return -byte sub2::return#0 reg byte a 22.0 -byte sub2::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:8 6.076923076923077 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 +char sub2(char i) +char sub2::$0 // reg byte a 202.0 +char sub2::i +char sub2::i#0 // reg byte x 157.0 +char sub2::return +char sub2::return#0 // reg byte a 22.0 +char sub2::return#1 // reg byte a 37.33333333333333 zp[1]:8 [ main::i ] reg byte a [ sub1::i#0 ] @@ -436,7 +436,7 @@ main: { // sub1(i) // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 // main::@2 @@ -448,7 +448,7 @@ main: { // sub2(i) // [6] sub2::i#0 = main::i -- vbuxx=vbuz1 ldx.z i - // [7] call sub2 + // [7] call sub2 jsr sub2 // [8] sub2::return#0 = sub2::return#1 // main::@3 @@ -470,7 +470,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i // [14] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa @@ -481,7 +481,7 @@ sub1: { rts } // sub2 -// sub2(byte register(X) i) +// __register(A) char sub2(__register(X) char i) sub2: { // i+i // [16] sub2::$0 = sub2::i#0 + sub2::i#0 -- vbuaa=vbuxx_plus_vbuxx diff --git a/src/test/ref/reserve-zp-procedure-2.sym b/src/test/ref/reserve-zp-procedure-2.sym index 270eca36a..a64237423 100644 --- a/src/test/ref/reserve-zp-procedure-2.sym +++ b/src/test/ref/reserve-zp-procedure-2.sym @@ -1,21 +1,21 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:8 6.076923076923077 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 -byte sub2(byte sub2::i) -byte~ sub2::$0 reg byte a 202.0 -byte sub2::i -byte sub2::i#0 reg byte x 157.0 -byte sub2::return -byte sub2::return#0 reg byte a 22.0 -byte sub2::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:8 6.076923076923077 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 +char sub2(char i) +char sub2::$0 // reg byte a 202.0 +char sub2::i +char sub2::i#0 // reg byte x 157.0 +char sub2::return +char sub2::return#0 // reg byte a 22.0 +char sub2::return#1 // reg byte a 37.33333333333333 zp[1]:8 [ main::i ] reg byte a [ sub1::i#0 ] diff --git a/src/test/ref/reserve-zp-procedure-3.asm b/src/test/ref/reserve-zp-procedure-3.asm index 4aad03203..ab25d0fec 100644 --- a/src/test/ref/reserve-zp-procedure-3.asm +++ b/src/test/ref/reserve-zp-procedure-3.asm @@ -29,7 +29,7 @@ main: { // } rts } -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i asl diff --git a/src/test/ref/reserve-zp-procedure-3.cfg b/src/test/ref/reserve-zp-procedure-3.cfg index 7845e0a00..1a7fa314f 100644 --- a/src/test/ref/reserve-zp-procedure-3.cfg +++ b/src/test/ref/reserve-zp-procedure-3.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return diff --git a/src/test/ref/reserve-zp-procedure-3.log b/src/test/ref/reserve-zp-procedure-3.log index c74a6b642..e59c2eb7f 100644 --- a/src/test/ref/reserve-zp-procedure-3.log +++ b/src/test/ref/reserve-zp-procedure-3.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 sub1::i#0 = main::i - call sub1 + call sub1 sub1::return#0 = sub1::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 sub1::i#1 = phi( main::@1/sub1::i#0 ) sub1::$0 = sub1::i#1 + sub1::i#1 @@ -36,7 +36,7 @@ sub1::@return: scope:[sub1] from sub1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,23 +47,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::i loadstore -byte sub1(byte sub1::i) -byte~ sub1::$0 -byte sub1::i -byte sub1::i#0 -byte sub1::i#1 -byte sub1::return -byte sub1::return#0 -byte sub1::return#1 -byte sub1::return#2 -byte sub1::return#3 -byte sub1::return#4 +char main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::i +char sub1(char i) +char sub1::$0 +char sub1::i +char sub1::i#0 +char sub1::i#1 +char sub1::return +char sub1::return#0 +char sub1::return#1 +char sub1::return#2 +char sub1::return#3 +char sub1::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sub1::return#0 = sub1::return#3 Alias sub1::return#1 = sub1::$0 sub1::return#4 sub1::return#2 @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 3 in [7] if(main::i!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to sub1:2 @@ -99,7 +99,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -123,14 +123,14 @@ sub1::@return: scope:[sub1] from sub1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -volatile byte main::i loadstore 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 213.0 -byte sub1::return -byte sub1::return#0 22.0 -byte sub1::return#1 37.33333333333333 +char main::$0 // 22.0 +__loadstore volatile char main::i // 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // 213.0 +char sub1::return +char sub1::return#0 // 22.0 +char sub1::return#1 // 37.33333333333333 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -197,7 +197,7 @@ main: { __b1: // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 jmp __b2 @@ -220,7 +220,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa asl @@ -245,15 +245,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:5 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:5 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:5 [ main::i ] reg byte a [ sub1::i#0 ] @@ -291,7 +291,7 @@ main: { // sub1(i) // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 // main::@2 @@ -313,7 +313,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa diff --git a/src/test/ref/reserve-zp-procedure-3.sym b/src/test/ref/reserve-zp-procedure-3.sym index f7041c914..4fb67bb12 100644 --- a/src/test/ref/reserve-zp-procedure-3.sym +++ b/src/test/ref/reserve-zp-procedure-3.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:5 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:5 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:5 [ main::i ] reg byte a [ sub1::i#0 ] diff --git a/src/test/ref/reserve-zp-procedure-4.asm b/src/test/ref/reserve-zp-procedure-4.asm index c9396cd20..aad2e9b46 100644 --- a/src/test/ref/reserve-zp-procedure-4.asm +++ b/src/test/ref/reserve-zp-procedure-4.asm @@ -29,7 +29,7 @@ main: { // } rts } -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i asl diff --git a/src/test/ref/reserve-zp-procedure-4.cfg b/src/test/ref/reserve-zp-procedure-4.cfg index 7845e0a00..1a7fa314f 100644 --- a/src/test/ref/reserve-zp-procedure-4.cfg +++ b/src/test/ref/reserve-zp-procedure-4.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return diff --git a/src/test/ref/reserve-zp-procedure-4.log b/src/test/ref/reserve-zp-procedure-4.log index 5e43af589..27088b7b8 100644 --- a/src/test/ref/reserve-zp-procedure-4.log +++ b/src/test/ref/reserve-zp-procedure-4.log @@ -7,7 +7,7 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 sub1::i#0 = main::i - call sub1 + call sub1 sub1::return#0 = sub1::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 sub1::i#1 = phi( main::@1/sub1::i#0 ) sub1::$0 = sub1::i#1 + sub1::i#1 @@ -36,7 +36,7 @@ sub1::@return: scope:[sub1] from sub1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,23 +47,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -volatile byte main::i loadstore -byte sub1(byte sub1::i) -byte~ sub1::$0 -byte sub1::i -byte sub1::i#0 -byte sub1::i#1 -byte sub1::return -byte sub1::return#0 -byte sub1::return#1 -byte sub1::return#2 -byte sub1::return#3 -byte sub1::return#4 +char main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile char main::i +char sub1(char i) +char sub1::$0 +char sub1::i +char sub1::i#0 +char sub1::i#1 +char sub1::return +char sub1::return#0 +char sub1::return#1 +char sub1::return#2 +char sub1::return#3 +char sub1::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sub1::return#0 = sub1::return#3 Alias sub1::return#1 = sub1::$0 sub1::return#4 sub1::return#2 @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 3 in [7] if(main::i!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to sub1:2 @@ -99,7 +99,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] sub1::i#0 = main::i - [2] call sub1 + [2] call sub1 [3] sub1::return#0 = sub1::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -112,7 +112,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte sub1(byte sub1::i) +char sub1(char i) sub1: scope:[sub1] from main::@1 [9] sub1::return#1 = sub1::i#0 + sub1::i#0 to:sub1::@return @@ -123,14 +123,14 @@ sub1::@return: scope:[sub1] from sub1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -volatile byte main::i loadstore 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 213.0 -byte sub1::return -byte sub1::return#0 22.0 -byte sub1::return#1 37.33333333333333 +char main::$0 // 22.0 +__loadstore volatile char main::i // 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // 213.0 +char sub1::return +char sub1::return#0 // 22.0 +char sub1::return#1 // 37.33333333333333 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -197,7 +197,7 @@ main: { __b1: // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 jmp __b2 @@ -220,7 +220,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa asl @@ -245,15 +245,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:5 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:5 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:5 [ main::i ] reg byte a [ sub1::i#0 ] @@ -291,7 +291,7 @@ main: { // sub1(i) // [1] sub1::i#0 = main::i -- vbuaa=vbuz1 lda.z i - // [2] call sub1 + // [2] call sub1 jsr sub1 // [3] sub1::return#0 = sub1::return#1 // main::@2 @@ -313,7 +313,7 @@ main: { rts } // sub1 -// sub1(byte register(A) i) +// __register(A) char sub1(__register(A) char i) sub1: { // i+i // [9] sub1::return#1 = sub1::i#0 + sub1::i#0 -- vbuaa=vbuaa_plus_vbuaa diff --git a/src/test/ref/reserve-zp-procedure-4.sym b/src/test/ref/reserve-zp-procedure-4.sym index f7041c914..4fb67bb12 100644 --- a/src/test/ref/reserve-zp-procedure-4.sym +++ b/src/test/ref/reserve-zp-procedure-4.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -volatile byte main::i loadstore zp[1]:5 7.125 -byte sub1(byte sub1::i) -byte sub1::i -byte sub1::i#0 reg byte a 213.0 -byte sub1::return -byte sub1::return#0 reg byte a 22.0 -byte sub1::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile char main::i // zp[1]:5 7.125 +char sub1(char i) +char sub1::i +char sub1::i#0 // reg byte a 213.0 +char sub1::return +char sub1::return#0 // reg byte a 22.0 +char sub1::return#1 // reg byte a 37.33333333333333 zp[1]:5 [ main::i ] reg byte a [ sub1::i#0 ] diff --git a/src/test/ref/robozzle64-label-problem.asm b/src/test/ref/robozzle64-label-problem.asm index 560960468..583a63b4c 100644 --- a/src/test/ref/robozzle64-label-problem.asm +++ b/src/test/ref/robozzle64-label-problem.asm @@ -8,7 +8,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label z1 = 5 @@ -38,14 +38,14 @@ main: { jsr mul8u // word z2 = mul8u(y,40) // *screen++ = z2 - ldy #SIZEOF_WORD + ldy #SIZEOF_UNSIGNED_INT lda.z z2 sta (screen),y iny lda.z z2+1 sta (screen),y // *screen++ = z2; - lda #SIZEOF_WORD+SIZEOF_WORD + lda #SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT clc adc.z screen sta.z screen @@ -61,7 +61,7 @@ main: { rts } // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a) +// __zp(5) unsigned int mul8u(__register(X) char a, char b) mul8u: { .label mb = 7 .label res = 5 diff --git a/src/test/ref/robozzle64-label-problem.cfg b/src/test/ref/robozzle64-label-problem.cfg index 6c7ad2b08..5ea43e247 100644 --- a/src/test/ref/robozzle64-label-problem.cfg +++ b/src/test/ref/robozzle64-label-problem.cfg @@ -4,23 +4,23 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::screen#1 = phi( main/(byte*) 1024, main::@3/main::screen#2 ) + [1] main::screen#1 = phi( main/(char *) 1024, main::@3/main::screen#2 ) [1] main::y#2 = phi( main/0, main::@3/main::y#1 ) [2] mul8u::a#1 = main::y#2 - [3] call mul8u + [3] call mul8u [4] mul8u::return#2 = mul8u::res#2 to:main::@2 main::@2: scope:[main] from main::@1 [5] main::z1#0 = mul8u::return#2 [6] *main::screen#1 = main::z1#0 [7] mul8u::a#2 = main::y#2 - [8] call mul8u + [8] call mul8u [9] mul8u::return#3 = mul8u::res#2 to:main::@3 main::@3: scope:[main] from main::@2 [10] main::z2#0 = mul8u::return#3 - [11] main::screen#1[SIZEOF_WORD] = main::z2#0 - [12] main::screen#2 = main::screen#1 + SIZEOF_WORD+SIZEOF_WORD + [11] main::screen#1[SIZEOF_UNSIGNED_INT] = main::z2#0 + [12] main::screen#2 = main::screen#1 + SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT [13] main::y#1 = ++ main::y#2 [14] if(main::y#1!=6) goto main::@1 to:main::@return @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@3 [15] return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@1 main::@2 [16] mul8u::a#6 = phi( main::@1/mul8u::a#1, main::@2/mul8u::a#2 ) to:mul8u::@1 diff --git a/src/test/ref/robozzle64-label-problem.log b/src/test/ref/robozzle64-label-problem.log index e12ccf959..6af4c6653 100644 --- a/src/test/ref/robozzle64-label-problem.log +++ b/src/test/ref/robozzle64-label-problem.log @@ -3,12 +3,12 @@ Eliminating unused variable with no statement main::$1 CONTROL FLOW GRAPH SSA -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@1 main::@2 mul8u::a#6 = phi( main::@1/mul8u::a#1, main::@2/mul8u::a#2 ) mul8u::b#2 = phi( main::@1/mul8u::b#0, main::@2/mul8u::b#1 ) mul8u::res#0 = 0 - mul8u::mb#0 = (word)mul8u::b#2 + mul8u::mb#0 = (unsigned int)mul8u::b#2 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@4 mul8u::mb#5 = phi( mul8u/mul8u::mb#0, mul8u::@4/mul8u::mb#1 ) @@ -54,7 +54,7 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::y#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@3 @@ -62,7 +62,7 @@ main::@1: scope:[main] from main main::@3 main::y#2 = phi( main/main::y#0, main::@3/main::y#1 ) mul8u::a#1 = main::y#2 mul8u::b#0 = $28 - call mul8u + call mul8u mul8u::return#2 = mul8u::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -71,10 +71,10 @@ main::@2: scope:[main] from main::@1 mul8u::return#5 = phi( main::@1/mul8u::return#2 ) main::z1#0 = mul8u::return#5 *main::screen#3 = main::z1#0 - main::screen#1 = main::screen#3 + SIZEOF_WORD + main::screen#1 = main::screen#3 + SIZEOF_UNSIGNED_INT mul8u::a#2 = main::y#3 mul8u::b#1 = $28 - call mul8u + call mul8u mul8u::return#3 = mul8u::return#1 to:main::@3 main::@3: scope:[main] from main::@2 @@ -83,7 +83,7 @@ main::@3: scope:[main] from main::@2 mul8u::return#6 = phi( main::@2/mul8u::return#3 ) main::z2#0 = mul8u::return#6 *main::screen#4 = main::z2#0 - main::screen#2 = main::screen#4 + SIZEOF_WORD + main::screen#2 = main::screen#4 + SIZEOF_UNSIGNED_INT main::y#1 = main::y#4 + rangenext(0,5) main::$2 = main::y#1 != rangelast(0,5) if(main::$2) goto main::@1 @@ -94,7 +94,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -103,71 +103,71 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$2 -word* main::screen -word* main::screen#0 -word* main::screen#1 -word* main::screen#2 -word* main::screen#3 -word* main::screen#4 -word* main::screen#5 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -word main::z1 -word main::z1#0 -word main::z2 -word main::z2#0 -word mul8u(byte mul8u::a , byte mul8u::b) -bool~ mul8u::$0 -number~ mul8u::$1 -bool~ mul8u::$2 -bool~ mul8u::$3 -word~ mul8u::$4 -byte~ mul8u::$5 -word~ mul8u::$6 -byte mul8u::a -byte mul8u::a#0 -byte mul8u::a#1 -byte mul8u::a#2 -byte mul8u::a#3 -byte mul8u::a#4 -byte mul8u::a#5 -byte mul8u::a#6 -byte mul8u::a#7 -byte mul8u::b -byte mul8u::b#0 -byte mul8u::b#1 -byte mul8u::b#2 -word mul8u::mb -word mul8u::mb#0 -word mul8u::mb#1 -word mul8u::mb#2 -word mul8u::mb#3 -word mul8u::mb#4 -word mul8u::mb#5 -word mul8u::res -word mul8u::res#0 -word mul8u::res#1 -word mul8u::res#2 -word mul8u::res#3 -word mul8u::res#4 -word mul8u::res#5 -word mul8u::res#6 -word mul8u::return -word mul8u::return#0 -word mul8u::return#1 -word mul8u::return#2 -word mul8u::return#3 -word mul8u::return#4 -word mul8u::return#5 -word mul8u::return#6 +bool main::$2 +unsigned int *main::screen +unsigned int *main::screen#0 +unsigned int *main::screen#1 +unsigned int *main::screen#2 +unsigned int *main::screen#3 +unsigned int *main::screen#4 +unsigned int *main::screen#5 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +unsigned int main::z1 +unsigned int main::z1#0 +unsigned int main::z2 +unsigned int main::z2#0 +unsigned int mul8u(char a , char b) +bool mul8u::$0 +number mul8u::$1 +bool mul8u::$2 +bool mul8u::$3 +unsigned int mul8u::$4 +char mul8u::$5 +unsigned int mul8u::$6 +char mul8u::a +char mul8u::a#0 +char mul8u::a#1 +char mul8u::a#2 +char mul8u::a#3 +char mul8u::a#4 +char mul8u::a#5 +char mul8u::a#6 +char mul8u::a#7 +char mul8u::b +char mul8u::b#0 +char mul8u::b#1 +char mul8u::b#2 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 +unsigned int mul8u::mb#1 +unsigned int mul8u::mb#2 +unsigned int mul8u::mb#3 +unsigned int mul8u::mb#4 +unsigned int mul8u::mb#5 +unsigned int mul8u::res +unsigned int mul8u::res#0 +unsigned int mul8u::res#1 +unsigned int mul8u::res#2 +unsigned int mul8u::res#3 +unsigned int mul8u::res#4 +unsigned int mul8u::res#5 +unsigned int mul8u::res#6 +unsigned int mul8u::return +unsigned int mul8u::return#0 +unsigned int mul8u::return#1 +unsigned int mul8u::return#2 +unsigned int mul8u::return#3 +unsigned int mul8u::return#4 +unsigned int mul8u::return#5 +unsigned int mul8u::return#6 Adding number conversion cast (unumber) 0 in mul8u::$0 = mul8u::a#3 != 0 Adding number conversion cast (unumber) 1 in mul8u::$1 = mul8u::a#4 & 1 @@ -186,19 +186,19 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in mul8u::$1 = mul8u::a#4 & 1 +Inferred type updated to char in mul8u::$1 = mul8u::a#4 & 1 Inversing boolean not [9] mul8u::$3 = mul8u::$1 == 0 from [8] mul8u::$2 = mul8u::$1 != 0 Successful SSA optimization Pass2UnaryNotSimplification Alias mul8u::a#3 = mul8u::a#4 mul8u::a#7 @@ -221,14 +221,14 @@ Simple Condition mul8u::$3 [8] if(mul8u::$1==0) goto mul8u::@4 Simple Condition main::$2 [33] if(main::y#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant mul8u::res#0 = 0 -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::y#0 = 0 Constant mul8u::b#0 = $28 Constant mul8u::b#1 = $28 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [31] main::y#1 = ++ main::y#2 to ++ Resolved ranged comparison value [33] if(main::y#1!=rangelast(0,5)) goto main::@1 to 6 -Converting *(pointer+n) to pointer[n] [29] *main::screen#1 = main::z2#0 -- main::screen#3[SIZEOF_WORD] +Converting *(pointer+n) to pointer[n] [29] *main::screen#1 = main::z2#0 -- main::screen#3[SIZEOF_UNSIGNED_INT] Successful SSA optimization Pass2InlineDerefIdx Removing unused procedure __start Removing unused procedure block __start @@ -239,14 +239,14 @@ Adding number conversion cast (unumber) 6 in [25] if(main::y#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings mul8u::res#0 Inlining constant with var siblings mul8u::b#0 Inlining constant with var siblings mul8u::b#1 Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::y#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined mul8u::res#0 = 0 Constant inlined main::y#0 = 0 Constant inlined mul8u::b#1 = $28 @@ -258,12 +258,12 @@ Alias main::screen#1 = main::screen#3 Successful SSA optimization Pass2AliasElimination Identical Phi Values mul8u::b#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [1] mul8u::mb#0 = (word)$28 +Constant right-side identified [1] mul8u::mb#0 = (unsigned int)$28 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant mul8u::mb#0 = (word)$28 +Constant mul8u::mb#0 = (unsigned int)$28 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings mul8u::mb#0 -Constant inlined mul8u::mb#0 = (word)$28 +Constant inlined mul8u::mb#0 = (unsigned int)$28 Successful SSA optimization Pass2ConstantInlining Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification @@ -300,23 +300,23 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::screen#1 = phi( main/(byte*) 1024, main::@3/main::screen#2 ) + [1] main::screen#1 = phi( main/(char *) 1024, main::@3/main::screen#2 ) [1] main::y#2 = phi( main/0, main::@3/main::y#1 ) [2] mul8u::a#1 = main::y#2 - [3] call mul8u + [3] call mul8u [4] mul8u::return#2 = mul8u::res#2 to:main::@2 main::@2: scope:[main] from main::@1 [5] main::z1#0 = mul8u::return#2 [6] *main::screen#1 = main::z1#0 [7] mul8u::a#2 = main::y#2 - [8] call mul8u + [8] call mul8u [9] mul8u::return#3 = mul8u::res#2 to:main::@3 main::@3: scope:[main] from main::@2 [10] main::z2#0 = mul8u::return#3 - [11] main::screen#1[SIZEOF_WORD] = main::z2#0 - [12] main::screen#2 = main::screen#1 + SIZEOF_WORD+SIZEOF_WORD + [11] main::screen#1[SIZEOF_UNSIGNED_INT] = main::z2#0 + [12] main::screen#2 = main::screen#1 + SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT [13] main::y#1 = ++ main::y#2 [14] if(main::y#1!=6) goto main::@1 to:main::@return @@ -324,7 +324,7 @@ main::@return: scope:[main] from main::@3 [15] return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from main::@1 main::@2 [16] mul8u::a#6 = phi( main::@1/mul8u::a#1, main::@2/mul8u::a#2 ) to:mul8u::@1 @@ -353,35 +353,35 @@ mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4 VARIABLE REGISTER WEIGHTS void main() -word* main::screen -word* main::screen#1 4.0 -word* main::screen#2 7.333333333333333 -byte main::y -byte main::y#1 16.5 -byte main::y#2 3.6666666666666665 -word main::z1 -word main::z1#0 22.0 -word main::z2 -word main::z2#0 22.0 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 20002.0 -byte mul8u::a -byte mul8u::a#0 10001.0 -byte mul8u::a#1 22.0 -byte mul8u::a#2 22.0 -byte mul8u::a#3 6684.166666666666 -byte mul8u::a#6 123.0 -byte mul8u::b -word mul8u::mb -word mul8u::mb#1 20002.0 -word mul8u::mb#2 4286.142857142857 -word mul8u::res -word mul8u::res#1 20002.0 -word mul8u::res#2 4289.285714285714 -word mul8u::res#6 10001.0 -word mul8u::return -word mul8u::return#2 22.0 -word mul8u::return#3 22.0 +unsigned int *main::screen +unsigned int *main::screen#1 // 4.0 +unsigned int *main::screen#2 // 7.333333333333333 +char main::y +char main::y#1 // 16.5 +char main::y#2 // 3.6666666666666665 +unsigned int main::z1 +unsigned int main::z1#0 // 22.0 +unsigned int main::z2 +unsigned int main::z2#0 // 22.0 +unsigned int mul8u(char a , char b) +char mul8u::$1 // 20002.0 +char mul8u::a +char mul8u::a#0 // 10001.0 +char mul8u::a#1 // 22.0 +char mul8u::a#2 // 22.0 +char mul8u::a#3 // 6684.166666666666 +char mul8u::a#6 // 123.0 +char mul8u::b +unsigned int mul8u::mb +unsigned int mul8u::mb#1 // 20002.0 +unsigned int mul8u::mb#2 // 4286.142857142857 +unsigned int mul8u::res +unsigned int mul8u::res#1 // 20002.0 +unsigned int mul8u::res#2 // 4289.285714285714 +unsigned int mul8u::res#6 // 10001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // 22.0 +unsigned int mul8u::return#3 // 22.0 Initial phi equivalence classes [ main::y#2 main::y#1 ] @@ -423,8 +423,8 @@ Statement [6] *main::screen#1 = main::z1#0 [ main::y#2 main::screen#1 ] ( [ mai Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::y#2 main::y#1 ] Statement [9] mul8u::return#3 = mul8u::res#2 [ main::y#2 main::screen#1 mul8u::return#3 ] ( [ main::y#2 main::screen#1 mul8u::return#3 ] { { mul8u::a#2 = mul8u::a#6 main::y#2 } { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Statement [10] main::z2#0 = mul8u::return#3 [ main::y#2 main::screen#1 main::z2#0 ] ( [ main::y#2 main::screen#1 main::z2#0 ] { } ) always clobbers reg byte a -Statement [11] main::screen#1[SIZEOF_WORD] = main::z2#0 [ main::y#2 main::screen#1 ] ( [ main::y#2 main::screen#1 ] { } ) always clobbers reg byte a reg byte y -Statement [12] main::screen#2 = main::screen#1 + SIZEOF_WORD+SIZEOF_WORD [ main::y#2 main::screen#2 ] ( [ main::y#2 main::screen#2 ] { } ) always clobbers reg byte a +Statement [11] main::screen#1[SIZEOF_UNSIGNED_INT] = main::z2#0 [ main::y#2 main::screen#1 ] ( [ main::y#2 main::screen#1 ] { } ) always clobbers reg byte a reg byte y +Statement [12] main::screen#2 = main::screen#1 + SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT [ main::y#2 main::screen#2 ] ( [ main::y#2 main::screen#2 ] { } ) always clobbers reg byte a Statement [22] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u:3 [ main::y#2 main::screen#1 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#1 = mul8u::a#6 main::y#2 } { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::y#2 main::screen#1 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#2 = mul8u::a#6 main::y#2 } { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] Statement [4] mul8u::return#2 = mul8u::res#2 [ main::y#2 main::screen#1 mul8u::return#2 ] ( [ main::y#2 main::screen#1 mul8u::return#2 ] { { mul8u::a#1 = mul8u::a#6 main::y#2 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a @@ -432,8 +432,8 @@ Statement [5] main::z1#0 = mul8u::return#2 [ main::y#2 main::screen#1 main::z1#0 Statement [6] *main::screen#1 = main::z1#0 [ main::y#2 main::screen#1 ] ( [ main::y#2 main::screen#1 ] { { mul8u::a#2 = mul8u::a#6 main::y#2 } { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a reg byte y Statement [9] mul8u::return#3 = mul8u::res#2 [ main::y#2 main::screen#1 mul8u::return#3 ] ( [ main::y#2 main::screen#1 mul8u::return#3 ] { { mul8u::a#2 = mul8u::a#6 main::y#2 } { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Statement [10] main::z2#0 = mul8u::return#3 [ main::y#2 main::screen#1 main::z2#0 ] ( [ main::y#2 main::screen#1 main::z2#0 ] { } ) always clobbers reg byte a -Statement [11] main::screen#1[SIZEOF_WORD] = main::z2#0 [ main::y#2 main::screen#1 ] ( [ main::y#2 main::screen#1 ] { } ) always clobbers reg byte a reg byte y -Statement [12] main::screen#2 = main::screen#1 + SIZEOF_WORD+SIZEOF_WORD [ main::y#2 main::screen#2 ] ( [ main::y#2 main::screen#2 ] { } ) always clobbers reg byte a +Statement [11] main::screen#1[SIZEOF_UNSIGNED_INT] = main::z2#0 [ main::y#2 main::screen#1 ] ( [ main::y#2 main::screen#1 ] { } ) always clobbers reg byte a reg byte y +Statement [12] main::screen#2 = main::screen#1 + SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT [ main::y#2 main::screen#2 ] ( [ main::y#2 main::screen#2 ] { } ) always clobbers reg byte a Statement [20] mul8u::$1 = mul8u::a#3 & 1 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] ( mul8u:3 [ main::y#2 main::screen#1 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::a#1 = mul8u::a#6 main::y#2 } { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::y#2 main::screen#1 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] { { mul8u::a#2 = mul8u::a#6 main::y#2 } { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Statement [22] mul8u::res#1 = mul8u::res#2 + mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( mul8u:3 [ main::y#2 main::screen#1 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#1 = mul8u::a#6 main::y#2 } { mul8u::return#2 = mul8u::res#2 } } mul8u:8 [ main::y#2 main::screen#1 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] { { mul8u::a#2 = mul8u::a#6 main::y#2 } { mul8u::return#3 = mul8u::res#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::y#2 main::y#1 ] : zp[1]:2 , reg byte x , @@ -478,7 +478,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -488,7 +488,7 @@ main: { .label y = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#1 = (byte*) 1024 [phi:main->main::@1#0] -- pwuz1=pbuc1 + // [1] phi main::screen#1 = (char *) 1024 [phi:main->main::@1#0] -- pwuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -506,7 +506,7 @@ main: { __b1: // [2] mul8u::a#1 = main::y#2 -- vbuxx=vbuz1 ldx.z y - // [3] call mul8u + // [3] call mul8u // [16] phi from main::@1 to mul8u [phi:main::@1->mul8u] mul8u_from___b1: // [16] phi mul8u::a#6 = mul8u::a#1 [phi:main::@1->mul8u#0] -- register_copy @@ -525,7 +525,7 @@ main: { sta (screen),y // [7] mul8u::a#2 = main::y#2 -- vbuxx=vbuz1 ldx.z y - // [8] call mul8u + // [8] call mul8u // [16] phi from main::@2 to mul8u [phi:main::@2->mul8u] mul8u_from___b2: // [16] phi mul8u::a#6 = mul8u::a#2 [phi:main::@2->mul8u#0] -- register_copy @@ -535,15 +535,15 @@ main: { // main::@3 __b3: // [10] main::z2#0 = mul8u::return#3 - // [11] main::screen#1[SIZEOF_WORD] = main::z2#0 -- pwuz1_derefidx_vbuc1=vwuz2 - ldy #SIZEOF_WORD + // [11] main::screen#1[SIZEOF_UNSIGNED_INT] = main::z2#0 -- pwuz1_derefidx_vbuc1=vwuz2 + ldy #SIZEOF_UNSIGNED_INT lda.z z2 sta (screen),y iny lda.z z2+1 sta (screen),y - // [12] main::screen#2 = main::screen#1 + SIZEOF_WORD+SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD+SIZEOF_WORD + // [12] main::screen#2 = main::screen#1 + SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT clc adc.z screen sta.z screen @@ -564,7 +564,7 @@ main: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a) +// __zp(5) unsigned int mul8u(__register(X) char a, char b) mul8u: { .label mb = 7 .label res = 5 @@ -668,37 +668,37 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word* main::screen -word* main::screen#1 screen zp[2]:3 4.0 -word* main::screen#2 screen zp[2]:3 7.333333333333333 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#2 y zp[1]:2 3.6666666666666665 -word main::z1 -word main::z1#0 z1 zp[2]:5 22.0 -word main::z2 -word main::z2#0 z2 zp[2]:5 22.0 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 20002.0 -byte mul8u::a -byte mul8u::a#0 reg byte x 10001.0 -byte mul8u::a#1 reg byte x 22.0 -byte mul8u::a#2 reg byte x 22.0 -byte mul8u::a#3 reg byte x 6684.166666666666 -byte mul8u::a#6 reg byte x 123.0 -byte mul8u::b -word mul8u::mb -word mul8u::mb#1 mb zp[2]:7 20002.0 -word mul8u::mb#2 mb zp[2]:7 4286.142857142857 -word mul8u::res -word mul8u::res#1 res zp[2]:5 20002.0 -word mul8u::res#2 res zp[2]:5 4289.285714285714 -word mul8u::res#6 res zp[2]:5 10001.0 -word mul8u::return -word mul8u::return#2 return zp[2]:5 22.0 -word mul8u::return#3 return zp[2]:5 22.0 +unsigned int *main::screen +unsigned int *main::screen#1 // screen zp[2]:3 4.0 +unsigned int *main::screen#2 // screen zp[2]:3 7.333333333333333 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#2 // y zp[1]:2 3.6666666666666665 +unsigned int main::z1 +unsigned int main::z1#0 // z1 zp[2]:5 22.0 +unsigned int main::z2 +unsigned int main::z2#0 // z2 zp[2]:5 22.0 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 20002.0 +char mul8u::a +char mul8u::a#0 // reg byte x 10001.0 +char mul8u::a#1 // reg byte x 22.0 +char mul8u::a#2 // reg byte x 22.0 +char mul8u::a#3 // reg byte x 6684.166666666666 +char mul8u::a#6 // reg byte x 123.0 +char mul8u::b +unsigned int mul8u::mb +unsigned int mul8u::mb#1 // mb zp[2]:7 20002.0 +unsigned int mul8u::mb#2 // mb zp[2]:7 4286.142857142857 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:5 20002.0 +unsigned int mul8u::res#2 // res zp[2]:5 4289.285714285714 +unsigned int mul8u::res#6 // res zp[2]:5 10001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:5 22.0 +unsigned int mul8u::return#3 // return zp[2]:5 22.0 zp[1]:2 [ main::y#2 main::y#1 ] zp[2]:3 [ main::screen#1 main::screen#2 ] @@ -724,7 +724,7 @@ Score: 7974 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -733,7 +733,7 @@ main: { .label z2 = 5 .label y = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#1 = (byte*) 1024 [phi:main->main::@1#0] -- pwuz1=pbuc1 + // [1] phi main::screen#1 = (char *) 1024 [phi:main->main::@1#0] -- pwuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -749,7 +749,7 @@ main: { // word z1 = mul8u(y,40) // [2] mul8u::a#1 = main::y#2 -- vbuxx=vbuz1 ldx.z y - // [3] call mul8u + // [3] call mul8u // [16] phi from main::@1 to mul8u [phi:main::@1->mul8u] // [16] phi mul8u::a#6 = mul8u::a#1 [phi:main::@1->mul8u#0] -- register_copy jsr mul8u @@ -768,7 +768,7 @@ main: { // word z2 = mul8u(y,40) // [7] mul8u::a#2 = main::y#2 -- vbuxx=vbuz1 ldx.z y - // [8] call mul8u + // [8] call mul8u // [16] phi from main::@2 to mul8u [phi:main::@2->mul8u] // [16] phi mul8u::a#6 = mul8u::a#2 [phi:main::@2->mul8u#0] -- register_copy jsr mul8u @@ -777,16 +777,16 @@ main: { // main::@3 // [10] main::z2#0 = mul8u::return#3 // *screen++ = z2 - // [11] main::screen#1[SIZEOF_WORD] = main::z2#0 -- pwuz1_derefidx_vbuc1=vwuz2 - ldy #SIZEOF_WORD + // [11] main::screen#1[SIZEOF_UNSIGNED_INT] = main::z2#0 -- pwuz1_derefidx_vbuc1=vwuz2 + ldy #SIZEOF_UNSIGNED_INT lda.z z2 sta (screen),y iny lda.z z2+1 sta (screen),y // *screen++ = z2; - // [12] main::screen#2 = main::screen#1 + SIZEOF_WORD+SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD+SIZEOF_WORD + // [12] main::screen#2 = main::screen#1 + SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT clc adc.z screen sta.z screen @@ -807,7 +807,7 @@ main: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a) +// __zp(5) unsigned int mul8u(__register(X) char a, char b) mul8u: { .label mb = 7 .label res = 5 diff --git a/src/test/ref/robozzle64-label-problem.sym b/src/test/ref/robozzle64-label-problem.sym index 039c3fad7..05221603b 100644 --- a/src/test/ref/robozzle64-label-problem.sym +++ b/src/test/ref/robozzle64-label-problem.sym @@ -1,34 +1,34 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word* main::screen -word* main::screen#1 screen zp[2]:3 4.0 -word* main::screen#2 screen zp[2]:3 7.333333333333333 -byte main::y -byte main::y#1 y zp[1]:2 16.5 -byte main::y#2 y zp[1]:2 3.6666666666666665 -word main::z1 -word main::z1#0 z1 zp[2]:5 22.0 -word main::z2 -word main::z2#0 z2 zp[2]:5 22.0 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 20002.0 -byte mul8u::a -byte mul8u::a#0 reg byte x 10001.0 -byte mul8u::a#1 reg byte x 22.0 -byte mul8u::a#2 reg byte x 22.0 -byte mul8u::a#3 reg byte x 6684.166666666666 -byte mul8u::a#6 reg byte x 123.0 -byte mul8u::b -word mul8u::mb -word mul8u::mb#1 mb zp[2]:7 20002.0 -word mul8u::mb#2 mb zp[2]:7 4286.142857142857 -word mul8u::res -word mul8u::res#1 res zp[2]:5 20002.0 -word mul8u::res#2 res zp[2]:5 4289.285714285714 -word mul8u::res#6 res zp[2]:5 10001.0 -word mul8u::return -word mul8u::return#2 return zp[2]:5 22.0 -word mul8u::return#3 return zp[2]:5 22.0 +unsigned int *main::screen +unsigned int *main::screen#1 // screen zp[2]:3 4.0 +unsigned int *main::screen#2 // screen zp[2]:3 7.333333333333333 +char main::y +char main::y#1 // y zp[1]:2 16.5 +char main::y#2 // y zp[1]:2 3.6666666666666665 +unsigned int main::z1 +unsigned int main::z1#0 // z1 zp[2]:5 22.0 +unsigned int main::z2 +unsigned int main::z2#0 // z2 zp[2]:5 22.0 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 20002.0 +char mul8u::a +char mul8u::a#0 // reg byte x 10001.0 +char mul8u::a#1 // reg byte x 22.0 +char mul8u::a#2 // reg byte x 22.0 +char mul8u::a#3 // reg byte x 6684.166666666666 +char mul8u::a#6 // reg byte x 123.0 +char mul8u::b +unsigned int mul8u::mb +unsigned int mul8u::mb#1 // mb zp[2]:7 20002.0 +unsigned int mul8u::mb#2 // mb zp[2]:7 4286.142857142857 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:5 20002.0 +unsigned int mul8u::res#2 // res zp[2]:5 4289.285714285714 +unsigned int mul8u::res#6 // res zp[2]:5 10001.0 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:5 22.0 +unsigned int mul8u::return#3 // return zp[2]:5 22.0 zp[1]:2 [ main::y#2 main::y#1 ] zp[2]:3 [ main::screen#1 main::screen#2 ] diff --git a/src/test/ref/roll-sprite-msb.asm b/src/test/ref/roll-sprite-msb.asm index b5a1a2c45..4479b24fa 100644 --- a/src/test/ref/roll-sprite-msb.asm +++ b/src/test/ref/roll-sprite-msb.asm @@ -40,7 +40,7 @@ main: { // } rts } -// position_sprite(byte zp(4) spriteno, word zp(2) x) +// void position_sprite(__zp(4) char spriteno, __zp(2) unsigned int x, char y) position_sprite: { .const y = $32 .label spriteno = 4 diff --git a/src/test/ref/roll-sprite-msb.cfg b/src/test/ref/roll-sprite-msb.cfg index f3c6baf7b..50adad93f 100644 --- a/src/test/ref/roll-sprite-msb.cfg +++ b/src/test/ref/roll-sprite-msb.cfg @@ -8,7 +8,7 @@ main::@1: scope:[main] from main main::@2 [1] main::s#2 = phi( main/0, main::@2/main::s#1 ) [2] position_sprite::spriteno#0 = main::s#2 [3] position_sprite::x#0 = main::xpos#2 - [4] call position_sprite + [4] call position_sprite to:main::@2 main::@2: scope:[main] from main::@1 [5] main::xpos#1 = main::xpos#2 + $a @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) +void position_sprite(char spriteno , unsigned int x , char y) position_sprite: scope:[position_sprite] from main::@1 [9] position_sprite::$1 = position_sprite::spriteno#0 << 1 [10] SPRITES_YPOS[position_sprite::$1] = position_sprite::y#0 diff --git a/src/test/ref/roll-sprite-msb.log b/src/test/ref/roll-sprite-msb.log index 3f96b52b1..9f9ad03fa 100644 --- a/src/test/ref/roll-sprite-msb.log +++ b/src/test/ref/roll-sprite-msb.log @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@2 position_sprite::spriteno#0 = main::s#2 position_sprite::x#0 = main::xpos#2 position_sprite::y#0 = $32 - call position_sprite + call position_sprite to:main::@2 main::@2: scope:[main] from main::@1 main::s#3 = phi( main::@1/main::s#2 ) @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) +void position_sprite(char spriteno , unsigned int x , char y) position_sprite: scope:[position_sprite] from main::@1 position_sprite::x#1 = phi( main::@1/position_sprite::x#0 ) position_sprite::y#1 = phi( main::@1/position_sprite::y#0 ) @@ -57,7 +57,7 @@ position_sprite::@return: scope:[position_sprite] from position_sprite::@1 posi void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -66,41 +66,41 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SPRITES_XMSB = (byte*)$d010 -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 +__constant char * const SPRITES_XMSB = (char *)$d010 +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 void __start() void main() -bool~ main::$1 -byte main::s -byte main::s#0 -byte main::s#1 -byte main::s#2 -byte main::s#3 -word main::xpos -word main::xpos#0 -word main::xpos#1 -word main::xpos#2 -word main::xpos#3 -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) -number~ position_sprite::$0 -number~ position_sprite::$1 -byte~ position_sprite::$2 -bool~ position_sprite::$3 -number~ position_sprite::$4 -number~ position_sprite::$5 -number~ position_sprite::$6 -byte position_sprite::spriteno -byte position_sprite::spriteno#0 -byte position_sprite::spriteno#1 -byte position_sprite::spriteno#2 -byte position_sprite::spriteno#3 -word position_sprite::x -word position_sprite::x#0 -word position_sprite::x#1 -byte position_sprite::y -byte position_sprite::y#0 -byte position_sprite::y#1 +bool main::$1 +char main::s +char main::s#0 +char main::s#1 +char main::s#2 +char main::s#3 +unsigned int main::xpos +unsigned int main::xpos#0 +unsigned int main::xpos#1 +unsigned int main::xpos#2 +unsigned int main::xpos#3 +void position_sprite(char spriteno , unsigned int x , char y) +number position_sprite::$0 +number position_sprite::$1 +char position_sprite::$2 +bool position_sprite::$3 +number position_sprite::$4 +number position_sprite::$5 +number position_sprite::$6 +char position_sprite::spriteno +char position_sprite::spriteno#0 +char position_sprite::spriteno#1 +char position_sprite::spriteno#2 +char position_sprite::spriteno#3 +unsigned int position_sprite::x +unsigned int position_sprite::x#0 +unsigned int position_sprite::x#1 +char position_sprite::y +char position_sprite::y#0 +char position_sprite::y#1 Adding number conversion cast (unumber) $32 in position_sprite::y#0 = $32 Adding number conversion cast (unumber) $a in main::xpos#1 = main::xpos#3 + $a @@ -118,9 +118,9 @@ Adding number conversion cast (unumber) position_sprite::$5 in position_sprite:: Successful SSA optimization PassNAddNumberTypeConversions Inlining cast position_sprite::y#0 = (unumber)$32 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53264 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53264 Simplifying constant integer cast $32 Simplifying constant integer cast $a Simplifying constant integer cast 2 @@ -130,20 +130,20 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $ff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $ff +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $ff Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in position_sprite::$0 = position_sprite::spriteno#1 * 2 -Inferred type updated to byte in position_sprite::$1 = position_sprite::spriteno#1 * 2 -Inferred type updated to byte in position_sprite::$6 = 1 << position_sprite::spriteno#2 -Inferred type updated to byte in position_sprite::$4 = 1 << position_sprite::spriteno#3 -Inferred type updated to byte in position_sprite::$5 = position_sprite::$4 ^ $ff +Inferred type updated to char in position_sprite::$0 = position_sprite::spriteno#1 * 2 +Inferred type updated to char in position_sprite::$1 = position_sprite::spriteno#1 * 2 +Inferred type updated to char in position_sprite::$6 = 1 << position_sprite::spriteno#2 +Inferred type updated to char in position_sprite::$4 = 1 << position_sprite::spriteno#3 +Inferred type updated to char in position_sprite::$5 = position_sprite::$4 ^ $ff Alias main::xpos#2 = main::xpos#3 Alias main::s#2 = main::s#3 Alias position_sprite::spriteno#1 = position_sprite::spriteno#2 position_sprite::spriteno#3 @@ -172,7 +172,7 @@ Adding number conversion cast (unumber) 8 in [6] if(main::s#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias position_sprite::$1 = position_sprite::$0 Successful SSA optimization Pass2AliasElimination @@ -206,7 +206,7 @@ main::@1: scope:[main] from main main::@2 [1] main::s#2 = phi( main/0, main::@2/main::s#1 ) [2] position_sprite::spriteno#0 = main::s#2 [3] position_sprite::x#0 = main::xpos#2 - [4] call position_sprite + [4] call position_sprite to:main::@2 main::@2: scope:[main] from main::@1 [5] main::xpos#1 = main::xpos#2 + $a @@ -217,7 +217,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) +void position_sprite(char spriteno , unsigned int x , char y) position_sprite: scope:[position_sprite] from main::@1 [9] position_sprite::$1 = position_sprite::spriteno#0 << 1 [10] SPRITES_YPOS[position_sprite::$1] = position_sprite::y#0 @@ -241,23 +241,23 @@ position_sprite::@1: scope:[position_sprite] from position_sprite VARIABLE REGISTER WEIGHTS void main() -byte main::s -byte main::s#1 16.5 -byte main::s#2 6.6000000000000005 -word main::xpos -word main::xpos#1 7.333333333333333 -word main::xpos#2 8.25 -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) -byte~ position_sprite::$1 101.0 -byte~ position_sprite::$2 202.0 -byte~ position_sprite::$4 202.0 -byte~ position_sprite::$5 202.0 -byte~ position_sprite::$6 202.0 -byte position_sprite::spriteno -byte position_sprite::spriteno#0 44.85714285714286 -word position_sprite::x -word position_sprite::x#0 42.599999999999994 -byte position_sprite::y +char main::s +char main::s#1 // 16.5 +char main::s#2 // 6.6000000000000005 +unsigned int main::xpos +unsigned int main::xpos#1 // 7.333333333333333 +unsigned int main::xpos#2 // 8.25 +void position_sprite(char spriteno , unsigned int x , char y) +char position_sprite::$1 // 101.0 +char position_sprite::$2 // 202.0 +char position_sprite::$4 // 202.0 +char position_sprite::$5 // 202.0 +char position_sprite::$6 // 202.0 +char position_sprite::spriteno +char position_sprite::spriteno#0 // 44.85714285714286 +unsigned int position_sprite::x +unsigned int position_sprite::x#0 // 42.599999999999994 +char position_sprite::y Initial phi equivalence classes [ main::s#2 main::s#1 ] @@ -388,7 +388,7 @@ main: { // [2] position_sprite::spriteno#0 = main::s#2 -- vbuz1=vbuxx stx.z position_sprite.spriteno // [3] position_sprite::x#0 = main::xpos#2 - // [4] call position_sprite + // [4] call position_sprite jsr position_sprite jmp __b2 // main::@2 @@ -413,7 +413,7 @@ main: { rts } // position_sprite -// position_sprite(byte zp(4) spriteno, word zp(2) x) +// void position_sprite(__zp(4) char spriteno, __zp(2) unsigned int x, char y) position_sprite: { .const y = $32 .label spriteno = 4 @@ -500,28 +500,28 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 void main() -byte main::s -byte main::s#1 reg byte x 16.5 -byte main::s#2 reg byte x 6.6000000000000005 -word main::xpos -word main::xpos#1 xpos zp[2]:2 7.333333333333333 -word main::xpos#2 xpos zp[2]:2 8.25 -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) -byte~ position_sprite::$1 reg byte y 101.0 -byte~ position_sprite::$2 reg byte a 202.0 -byte~ position_sprite::$4 reg byte a 202.0 -byte~ position_sprite::$5 reg byte a 202.0 -byte~ position_sprite::$6 reg byte a 202.0 -byte position_sprite::spriteno -byte position_sprite::spriteno#0 spriteno zp[1]:4 44.85714285714286 -word position_sprite::x -word position_sprite::x#0 x zp[2]:2 42.599999999999994 -byte position_sprite::y -constant byte position_sprite::y#0 y = $32 +char main::s +char main::s#1 // reg byte x 16.5 +char main::s#2 // reg byte x 6.6000000000000005 +unsigned int main::xpos +unsigned int main::xpos#1 // xpos zp[2]:2 7.333333333333333 +unsigned int main::xpos#2 // xpos zp[2]:2 8.25 +void position_sprite(char spriteno , unsigned int x , char y) +char position_sprite::$1 // reg byte y 101.0 +char position_sprite::$2 // reg byte a 202.0 +char position_sprite::$4 // reg byte a 202.0 +char position_sprite::$5 // reg byte a 202.0 +char position_sprite::$6 // reg byte a 202.0 +char position_sprite::spriteno +char position_sprite::spriteno#0 // spriteno zp[1]:4 44.85714285714286 +unsigned int position_sprite::x +unsigned int position_sprite::x#0 // x zp[2]:2 42.599999999999994 +char position_sprite::y +__constant char position_sprite::y#0 = $32 // y reg byte x [ main::s#2 main::s#1 ] zp[2]:2 [ main::xpos#2 main::xpos#1 position_sprite::x#0 ] @@ -575,7 +575,7 @@ main: { // [2] position_sprite::spriteno#0 = main::s#2 -- vbuz1=vbuxx stx.z position_sprite.spriteno // [3] position_sprite::x#0 = main::xpos#2 - // [4] call position_sprite + // [4] call position_sprite jsr position_sprite // main::@2 // xpos += 10 @@ -599,7 +599,7 @@ main: { rts } // position_sprite -// position_sprite(byte zp(4) spriteno, word zp(2) x) +// void position_sprite(__zp(4) char spriteno, __zp(2) unsigned int x, char y) position_sprite: { .const y = $32 .label spriteno = 4 diff --git a/src/test/ref/roll-sprite-msb.sym b/src/test/ref/roll-sprite-msb.sym index c8340f20b..70f19f87e 100644 --- a/src/test/ref/roll-sprite-msb.sym +++ b/src/test/ref/roll-sprite-msb.sym @@ -1,25 +1,25 @@ -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 void main() -byte main::s -byte main::s#1 reg byte x 16.5 -byte main::s#2 reg byte x 6.6000000000000005 -word main::xpos -word main::xpos#1 xpos zp[2]:2 7.333333333333333 -word main::xpos#2 xpos zp[2]:2 8.25 -void position_sprite(byte position_sprite::spriteno , word position_sprite::x , byte position_sprite::y) -byte~ position_sprite::$1 reg byte y 101.0 -byte~ position_sprite::$2 reg byte a 202.0 -byte~ position_sprite::$4 reg byte a 202.0 -byte~ position_sprite::$5 reg byte a 202.0 -byte~ position_sprite::$6 reg byte a 202.0 -byte position_sprite::spriteno -byte position_sprite::spriteno#0 spriteno zp[1]:4 44.85714285714286 -word position_sprite::x -word position_sprite::x#0 x zp[2]:2 42.599999999999994 -byte position_sprite::y -constant byte position_sprite::y#0 y = $32 +char main::s +char main::s#1 // reg byte x 16.5 +char main::s#2 // reg byte x 6.6000000000000005 +unsigned int main::xpos +unsigned int main::xpos#1 // xpos zp[2]:2 7.333333333333333 +unsigned int main::xpos#2 // xpos zp[2]:2 8.25 +void position_sprite(char spriteno , unsigned int x , char y) +char position_sprite::$1 // reg byte y 101.0 +char position_sprite::$2 // reg byte a 202.0 +char position_sprite::$4 // reg byte a 202.0 +char position_sprite::$5 // reg byte a 202.0 +char position_sprite::$6 // reg byte a 202.0 +char position_sprite::spriteno +char position_sprite::spriteno#0 // spriteno zp[1]:4 44.85714285714286 +unsigned int position_sprite::x +unsigned int position_sprite::x#0 // x zp[2]:2 42.599999999999994 +char position_sprite::y +__constant char position_sprite::y#0 = $32 // y reg byte x [ main::s#2 main::s#1 ] zp[2]:2 [ main::xpos#2 main::xpos#1 position_sprite::x#0 ] diff --git a/src/test/ref/roll-variable.log b/src/test/ref/roll-variable.log index 4c048e5f3..e964703ef 100644 --- a/src/test/ref/roll-variable.log +++ b/src/test/ref/roll-variable.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,23 +30,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -bool~ main::$1 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -constant byte* main::screen = (byte*)$400 +number main::$0 +bool main::$1 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) $55 in main::$0 = $55 << main::b#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)$55 << main::b#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $55 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $55 +Finalized unsigned number type (char) $55 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = $55 << main::b#2 +Inferred type updated to char in main::$0 = $55 << main::b#2 Simple Condition main::$1 [6] if(main::b#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::b#0 = 0 @@ -62,7 +62,7 @@ Adding number conversion cast (unumber) 8 in [4] if(main::b#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::b#0 Constant inlined main::b#0 = 0 @@ -97,10 +97,10 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::b -byte main::b#1 16.5 -byte main::b#2 14.666666666666666 +char main::$0 // 22.0 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 14.666666666666666 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -198,11 +198,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte main::b -byte main::b#1 b zp[1]:2 16.5 -byte main::b#2 b zp[1]:2 14.666666666666666 -constant byte* main::screen = (byte*) 1024 +char main::$0 // reg byte a 22.0 +char main::b +char main::b#1 // b zp[1]:2 16.5 +char main::b#2 // b zp[1]:2 14.666666666666666 +__constant char *main::screen = (char *) 1024 zp[1]:2 [ main::b#2 main::b#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/roll-variable.sym b/src/test/ref/roll-variable.sym index 73eeaef79..dfc3bbc3d 100644 --- a/src/test/ref/roll-variable.sym +++ b/src/test/ref/roll-variable.sym @@ -1,9 +1,9 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte main::b -byte main::b#1 b zp[1]:2 16.5 -byte main::b#2 b zp[1]:2 14.666666666666666 -constant byte* main::screen = (byte*) 1024 +char main::$0 // reg byte a 22.0 +char main::b +char main::b#1 // b zp[1]:2 16.5 +char main::b#2 // b zp[1]:2 14.666666666666666 +__constant char *main::screen = (char *) 1024 zp[1]:2 [ main::b#2 main::b#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/runtime-unused-procedure.log b/src/test/ref/runtime-unused-procedure.log index 7184a84e8..a76d4661b 100644 --- a/src/test/ref/runtime-unused-procedure.log +++ b/src/test/ref/runtime-unused-procedure.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,7 +10,7 @@ main: scope:[main] from __start::@1 if(main::$1) goto main::@return to:main::@1 main::@1: scope:[main] from main - call proc + call proc to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -38,7 +38,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -48,14 +48,14 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -constant byte call = 0 +__constant char call = 0 void main() -bool~ main::$0 -bool~ main::$1 +bool main::$0 +bool main::$1 void proc() -bool~ proc::$0 -bool~ proc::$1 -constant byte* screen = (byte*)$400 +bool proc::$0 +bool proc::$1 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) 0 in screen[0] = 'a' Adding number conversion cast (unumber) 0 in main::$0 = call != 0 @@ -64,7 +64,7 @@ Adding number conversion cast (unumber) 0 in proc::$0 = screen[1] != 0 Adding number conversion cast (unumber) 1 in proc::$0 = screen[1] != (unumber)0 Adding number conversion cast (unumber) 2 in screen[2] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -72,12 +72,12 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [2] main::$1 = call == 0 from [1] main::$0 = call != 0 Inversing boolean not [8] proc::$1 = screen[1] == 0 from [7] proc::$0 = screen[1] != 0 @@ -172,7 +172,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* screen = (byte*) 1024 +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/runtime-unused-procedure.sym b/src/test/ref/runtime-unused-procedure.sym index cc4ca9b6b..4bced5376 100644 --- a/src/test/ref/runtime-unused-procedure.sym +++ b/src/test/ref/runtime-unused-procedure.sym @@ -1,3 +1,3 @@ void main() -constant byte* screen = (byte*) 1024 +__constant char *screen = (char *) 1024 diff --git a/src/test/ref/sandbox-ternary-error.log b/src/test/ref/sandbox-ternary-error.log index b68a47d3a..ad713037e 100644 --- a/src/test/ref/sandbox-ternary-error.log +++ b/src/test/ref/sandbox-ternary-error.log @@ -46,7 +46,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -57,36 +57,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -byte~ main::$7 -bool~ main::$8 -constant byte* const main::SCREEN = (byte*)$400 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 -byte main::b#6 -byte main::b#7 -byte main::b#8 +bool main::$0 +bool main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +char main::$6 +char main::$7 +bool main::$8 +__constant char * const main::SCREEN = (char *)$400 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 +char main::b#6 +char main::b#7 +char main::b#8 Adding number conversion cast (unumber) 0 in main::$0 = main::b#2 == 0 Adding number conversion cast (unumber) 1 in main::$1 = main::b#3 == 1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::b#2 = main::b#5 main::b#3 main::b#7 main::b#8 Alias main::$5 = main::$4 @@ -115,7 +115,7 @@ Adding number conversion cast (unumber) 3 in [7] if(main::b#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::b#0 Constant inlined main::$6 = 'a' @@ -176,11 +176,11 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$5 11.0 -byte~ main::$7 22.0 -byte main::b -byte main::b#1 16.5 -byte main::b#2 6.285714285714286 +char main::$5 // 11.0 +char main::$7 // 22.0 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 6.285714285714286 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -312,12 +312,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$5 reg byte a 11.0 -byte~ main::$7 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::b -byte main::b#1 reg byte x 16.5 -byte main::b#2 reg byte x 6.285714285714286 +char main::$5 // reg byte a 11.0 +char main::$7 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::b +char main::b#1 // reg byte x 16.5 +char main::b#2 // reg byte x 6.285714285714286 reg byte x [ main::b#2 main::b#1 ] reg byte a [ main::$7 main::$5 ] diff --git a/src/test/ref/sandbox-ternary-error.sym b/src/test/ref/sandbox-ternary-error.sym index 501a9c914..c9ccb2306 100644 --- a/src/test/ref/sandbox-ternary-error.sym +++ b/src/test/ref/sandbox-ternary-error.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$5 reg byte a 11.0 -byte~ main::$7 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::b -byte main::b#1 reg byte x 16.5 -byte main::b#2 reg byte x 6.285714285714286 +char main::$5 // reg byte a 11.0 +char main::$7 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::b +char main::b#1 // reg byte x 16.5 +char main::b#2 // reg byte x 6.285714285714286 reg byte x [ main::b#2 main::b#1 ] reg byte a [ main::$7 main::$5 ] diff --git a/src/test/ref/scan-desire-problem.asm b/src/test/ref/scan-desire-problem.asm index 754dd819b..b3199711f 100644 --- a/src/test/ref/scan-desire-problem.asm +++ b/src/test/ref/scan-desire-problem.asm @@ -132,7 +132,7 @@ init: { // } rts } -// draw_block(byte register(Y) tileno, byte register(X) x, byte zp(3) y) +// void draw_block(__register(Y) char tileno, __register(X) char x, __zp(3) char y, char color) draw_block: { .label __6 = $a .label __8 = $e @@ -309,7 +309,7 @@ init_sprites: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 4 @@ -345,7 +345,7 @@ memset: { jmp __b2 } // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a) +// __zp(4) unsigned int mul8u(__register(X) char a, char b) mul8u: { .const b = $28 .label mb = 6 diff --git a/src/test/ref/scan-desire-problem.cfg b/src/test/ref/scan-desire-problem.cfg index 0a77aeea6..679ce03a6 100644 --- a/src/test/ref/scan-desire-problem.cfg +++ b/src/test/ref/scan-desire-problem.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call init + [1] call init to:main::@1 main::@1: scope:[main] from main main::@4 [2] main::x#2 = phi( main::@4/main::x#1, main/0 ) @@ -24,7 +24,7 @@ main::@3: scope:[main] from main::@2 [10] draw_block::tileno#0 = main::tile#0 [11] draw_block::x#0 = main::x#2 [12] draw_block::y#0 = main::y#2 - [13] call draw_block + [13] call draw_block to:main::@6 main::@6: scope:[main] from main::@3 [14] main::y#1 = ++ main::y#2 @@ -33,15 +33,15 @@ main::@6: scope:[main] from main::@3 void init() init: scope:[init] from main [15] phi() - [16] call init_sprites + [16] call init_sprites to:init::@2 init::@2: scope:[init] from init [17] phi() - [18] call memset + [18] call memset to:init::@3 init::@3: scope:[init] from init::@2 [19] phi() - [20] call memset + [20] call memset to:init::toD0181 init::toD0181: scope:[init] from init::@3 [21] phi() @@ -59,13 +59,13 @@ init::@return: scope:[init] from init::@1 [29] return to:@return -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) +void draw_block(char tileno , char x , char y , char color) draw_block: scope:[draw_block] from main::@3 [30] draw_block::tileno#1 = draw_block::tileno#0 << 2 [31] draw_block::x1#0 = draw_block::x#0 << 1 [32] draw_block::y#1 = draw_block::y#0 << 1 [33] mul8u::a#1 = draw_block::y#1 - [34] call mul8u + [34] call mul8u [35] mul8u::return#2 = mul8u::res#2 to:draw_block::@1 draw_block::@1: scope:[draw_block] from draw_block @@ -109,14 +109,14 @@ init_sprites::@return: scope:[init_sprites] from init_sprites [65] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from init::@2 init::@3 [66] memset::c#4 = phi( init::@2/0, init::@3/BLACK ) - [66] memset::str#3 = phi( init::@2/(void*)screen, init::@3/(void*)colors ) + [66] memset::str#3 = phi( init::@2/(void *)screen, init::@3/(void *)colors ) to:memset::@1 memset::@1: scope:[memset] from memset - [67] memset::end#0 = (byte*)memset::str#3 + $3e8 - [68] memset::dst#4 = (byte*)memset::str#3 + [67] memset::end#0 = (char *)memset::str#3 + $3e8 + [68] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [69] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -130,12 +130,12 @@ memset::@3: scope:[memset] from memset::@2 [73] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from draw_block [74] phi() to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@3 - [75] mul8u::mb#2 = phi( mul8u/(word)mul8u::b#0, mul8u::@3/mul8u::mb#1 ) + [75] mul8u::mb#2 = phi( mul8u/(unsigned int)mul8u::b#0, mul8u::@3/mul8u::mb#1 ) [75] mul8u::res#2 = phi( mul8u/0, mul8u::@3/mul8u::res#6 ) [75] mul8u::a#2 = phi( mul8u/mul8u::a#1, mul8u::@3/mul8u::a#0 ) [76] if(mul8u::a#2!=0) goto mul8u::@2 diff --git a/src/test/ref/scan-desire-problem.log b/src/test/ref/scan-desire-problem.log index 187d1f5da..d882a380d 100644 --- a/src/test/ref/scan-desire-problem.log +++ b/src/test/ref/scan-desire-problem.log @@ -1,6 +1,6 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call init::$3 = call toD018(screen, charset) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$3 Eliminating unused variable with no statement draw_block::$1 @@ -8,7 +8,7 @@ Eliminating unused variable with no statement draw_block::$3 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from init::@2 init::@3 memset::c#5 = phi( init::@2/memset::c#0, init::@3/memset::c#1 ) memset::str#4 = phi( init::@2/memset::str#0, init::@3/memset::str#1 ) @@ -25,9 +25,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -51,12 +51,12 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from draw_block mul8u::a#5 = phi( draw_block/mul8u::a#1 ) mul8u::b#1 = phi( draw_block/mul8u::b#0 ) mul8u::res#0 = 0 - mul8u::mb#0 = (word)mul8u::b#1 + mul8u::mb#0 = (unsigned int)mul8u::b#1 to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@4 mul8u::mb#5 = phi( mul8u/mul8u::mb#0, mul8u::@4/mul8u::mb#1 ) @@ -102,7 +102,7 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 void main() main: scope:[main] from __start::@1 - call init + call init to:main::@7 main::@7: scope:[main] from main main::x#0 = 0 @@ -131,7 +131,7 @@ main::@4: scope:[main] from main::@3 draw_block::x#0 = main::x#3 draw_block::y#0 = main::y#3 draw_block::color#0 = YELLOW - call draw_block + call draw_block to:main::@8 main::@8: scope:[main] from main::@4 main::x#7 = phi( main::@4/main::x#3 ) @@ -151,20 +151,20 @@ main::@return: scope:[main] from main::@6 void init() init: scope:[init] from main - call init_sprites + call init_sprites to:init::@2 init::@2: scope:[init] from init - memset::str#0 = (void*)screen + memset::str#0 = (void *)screen memset::c#0 = 0 memset::num#0 = $3e8 - call memset + call memset memset::return#2 = memset::return#1 to:init::@3 init::@3: scope:[init] from init::@2 - memset::str#1 = (void*)colors + memset::str#1 = (void *)colors memset::c#1 = BLACK memset::num#1 = $3e8 - call memset + call memset memset::return#3 = memset::return#1 to:init::@4 init::@4: scope:[init] from init::@3 @@ -174,11 +174,11 @@ init::@4: scope:[init] from init::@3 init::toD0181: scope:[init] from init::@4 init::toD0181_gfx#1 = phi( init::@4/init::toD0181_gfx#0 ) init::toD0181_screen#1 = phi( init::@4/init::toD0181_screen#0 ) - init::toD0181_$7 = (word)init::toD0181_screen#1 + init::toD0181_$7 = (unsigned int)init::toD0181_screen#1 init::toD0181_$0 = init::toD0181_$7 & $3fff init::toD0181_$1 = init::toD0181_$0 * 4 init::toD0181_$2 = byte1 init::toD0181_$1 - init::toD0181_$3 = byte1 (word)init::toD0181_gfx#1 + init::toD0181_$3 = byte1 (unsigned int)init::toD0181_gfx#1 init::toD0181_$4 = init::toD0181_$3 / 4 init::toD0181_$5 = init::toD0181_$4 & $f init::toD0181_$6 = init::toD0181_$2 | init::toD0181_$5 @@ -216,7 +216,7 @@ init_sprites::@return: scope:[init_sprites] from init_sprites return to:@return -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) +void draw_block(char tileno , char x , char y , char color) draw_block: scope:[draw_block] from main::@4 draw_block::y#2 = phi( main::@4/draw_block::y#0 ) draw_block::x#1 = phi( main::@4/draw_block::x#0 ) @@ -228,7 +228,7 @@ draw_block: scope:[draw_block] from main::@4 draw_block::y#1 = draw_block::$2 mul8u::a#1 = draw_block::y#1 mul8u::b#0 = $28 - call mul8u + call mul8u mul8u::return#2 = mul8u::return#1 to:draw_block::@1 draw_block::@1: scope:[draw_block] from draw_block @@ -264,7 +264,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -273,186 +273,186 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant byte* const BG_COLOR1 = (byte*)$d022 -constant byte* const BG_COLOR2 = (byte*)$d023 -constant byte* const BG_COLOR3 = (byte*)$d024 -constant const byte BLACK = 0 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*)$d020 -constant byte* const D018 = (byte*)$d018 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SPRITES_COLOR = (byte*)$d027 -constant byte* const SPRITES_ENABLE = (byte*)$d015 -constant byte* const SPRITES_EXPAND_X = (byte*)$d01d -constant byte* const SPRITES_EXPAND_Y = (byte*)$d017 -constant byte* const SPRITES_MC = (byte*)$d01c -constant byte* const SPRITES_XMSB = (byte*)$d010 -constant const byte WHITE = 1 -constant const byte YELLOW = 7 +__constant char * const BG_COLOR = (char *)$d021 +__constant char * const BG_COLOR1 = (char *)$d022 +__constant char * const BG_COLOR2 = (char *)$d023 +__constant char * const BG_COLOR3 = (char *)$d024 +__constant const char BLACK = 0 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *)$d020 +__constant char * const D018 = (char *)$d018 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SPRITES_COLOR = (char *)$d027 +__constant char * const SPRITES_ENABLE = (char *)$d015 +__constant char * const SPRITES_EXPAND_X = (char *)$d01d +__constant char * const SPRITES_EXPAND_Y = (char *)$d017 +__constant char * const SPRITES_MC = (char *)$d01c +__constant char * const SPRITES_XMSB = (char *)$d010 +__constant const char WHITE = 1 +__constant const char YELLOW = 7 void __start() -constant byte* const charset = (byte*)$2000 -constant byte* const colors = (byte*)$d800 -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) -byte~ draw_block::$0 -number~ draw_block::$10 -byte~ draw_block::$2 -word~ draw_block::$4 -number~ draw_block::$5 -number~ draw_block::$6 -number~ draw_block::$7 -number~ draw_block::$8 -number~ draw_block::$9 -byte draw_block::color -byte draw_block::color#0 -byte draw_block::drawtile -byte draw_block::drawtile#0 -byte draw_block::tileno -byte draw_block::tileno#0 -byte draw_block::tileno#1 -byte draw_block::tileno#2 -byte draw_block::tileno#3 -byte draw_block::x -byte draw_block::x#0 -byte draw_block::x#1 -word draw_block::x1 -word draw_block::x1#0 -word draw_block::x1#1 -byte draw_block::y -byte draw_block::y#0 -byte draw_block::y#1 -byte draw_block::y#2 -word draw_block::z -word draw_block::z#0 -word draw_block::z#1 +__constant char * const charset = (char *)$2000 +__constant char * const colors = (char *)$d800 +void draw_block(char tileno , char x , char y , char color) +char draw_block::$0 +number draw_block::$10 +char draw_block::$2 +unsigned int draw_block::$4 +number draw_block::$5 +number draw_block::$6 +number draw_block::$7 +number draw_block::$8 +number draw_block::$9 +char draw_block::color +char draw_block::color#0 +char draw_block::drawtile +char draw_block::drawtile#0 +char draw_block::tileno +char draw_block::tileno#0 +char draw_block::tileno#1 +char draw_block::tileno#2 +char draw_block::tileno#3 +char draw_block::x +char draw_block::x#0 +char draw_block::x#1 +unsigned int draw_block::x1 +unsigned int draw_block::x1#0 +unsigned int draw_block::x1#1 +char draw_block::y +char draw_block::y#0 +char draw_block::y#1 +char draw_block::y#2 +unsigned int draw_block::z +unsigned int draw_block::z#0 +unsigned int draw_block::z#1 void init() -byte~ init::$3 -number~ init::toD0181_$0 -number~ init::toD0181_$1 -byte~ init::toD0181_$2 -byte~ init::toD0181_$3 -number~ init::toD0181_$4 -number~ init::toD0181_$5 -number~ init::toD0181_$6 -word~ init::toD0181_$7 -byte* init::toD0181_gfx -byte* init::toD0181_gfx#0 -byte* init::toD0181_gfx#1 -byte init::toD0181_return -byte init::toD0181_return#0 -byte init::toD0181_return#1 -byte init::toD0181_return#2 -byte init::toD0181_return#3 -byte* init::toD0181_screen -byte* init::toD0181_screen#0 -byte* init::toD0181_screen#1 +char init::$3 +number init::toD0181_$0 +number init::toD0181_$1 +char init::toD0181_$2 +char init::toD0181_$3 +number init::toD0181_$4 +number init::toD0181_$5 +number init::toD0181_$6 +unsigned int init::toD0181_$7 +char *init::toD0181_gfx +char *init::toD0181_gfx#0 +char *init::toD0181_gfx#1 +char init::toD0181_return +char init::toD0181_return#0 +char init::toD0181_return#1 +char init::toD0181_return#2 +char init::toD0181_return#3 +char *init::toD0181_screen +char *init::toD0181_screen#0 +char *init::toD0181_screen#1 void init_sprites() -constant byte* const level_address = (byte*)$3000 +__constant char * const level_address = (char *)$3000 void main() -bool~ main::$1 -bool~ main::$2 -byte main::tile -byte main::tile#0 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -byte main::x#5 -byte main::x#6 -byte main::x#7 -byte main::y -byte main::y#0 -byte main::y#1 -byte main::y#2 -byte main::y#3 -byte main::y#4 -byte main::z -byte main::z#0 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -word mul8u(byte mul8u::a , byte mul8u::b) -bool~ mul8u::$0 -number~ mul8u::$1 -bool~ mul8u::$2 -bool~ mul8u::$3 -word~ mul8u::$4 -byte~ mul8u::$5 -word~ mul8u::$6 -byte mul8u::a -byte mul8u::a#0 -byte mul8u::a#1 -byte mul8u::a#2 -byte mul8u::a#3 -byte mul8u::a#4 -byte mul8u::a#5 -byte mul8u::a#6 -byte mul8u::b -byte mul8u::b#0 -byte mul8u::b#1 -word mul8u::mb -word mul8u::mb#0 -word mul8u::mb#1 -word mul8u::mb#2 -word mul8u::mb#3 -word mul8u::mb#4 -word mul8u::mb#5 -word mul8u::res -word mul8u::res#0 -word mul8u::res#1 -word mul8u::res#2 -word mul8u::res#3 -word mul8u::res#4 -word mul8u::res#5 -word mul8u::res#6 -word mul8u::return -word mul8u::return#0 -word mul8u::return#1 -word mul8u::return#2 -word mul8u::return#3 -word mul8u::return#4 -constant byte* const screen = (byte*)$400 -constant byte* const tileset = (byte*)$2800 +bool main::$1 +bool main::$2 +char main::tile +char main::tile#0 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +char main::x#5 +char main::x#6 +char main::x#7 +char main::y +char main::y#0 +char main::y#1 +char main::y#2 +char main::y#3 +char main::y#4 +char main::z +char main::z#0 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +unsigned int mul8u(char a , char b) +bool mul8u::$0 +number mul8u::$1 +bool mul8u::$2 +bool mul8u::$3 +unsigned int mul8u::$4 +char mul8u::$5 +unsigned int mul8u::$6 +char mul8u::a +char mul8u::a#0 +char mul8u::a#1 +char mul8u::a#2 +char mul8u::a#3 +char mul8u::a#4 +char mul8u::a#5 +char mul8u::a#6 +char mul8u::b +char mul8u::b#0 +char mul8u::b#1 +unsigned int mul8u::mb +unsigned int mul8u::mb#0 +unsigned int mul8u::mb#1 +unsigned int mul8u::mb#2 +unsigned int mul8u::mb#3 +unsigned int mul8u::mb#4 +unsigned int mul8u::mb#5 +unsigned int mul8u::res +unsigned int mul8u::res#0 +unsigned int mul8u::res#1 +unsigned int mul8u::res#2 +unsigned int mul8u::res#3 +unsigned int mul8u::res#4 +unsigned int mul8u::res#5 +unsigned int mul8u::res#6 +unsigned int mul8u::return +unsigned int mul8u::return#0 +unsigned int mul8u::return#1 +unsigned int mul8u::return#2 +unsigned int mul8u::return#3 +unsigned int mul8u::return#4 +__constant char * const screen = (char *)$400 +__constant char * const tileset = (char *)$2800 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) 0 in mul8u::$0 = mul8u::a#2 != 0 @@ -500,7 +500,7 @@ Adding number conversion cast (unumber) 3 in screen[draw_block::$9] = 3 Adding number conversion cast (unumber) $29 in draw_block::$10 = draw_block::z#1 + $29 Adding number conversion cast (unumber) draw_block::$10 in draw_block::$10 = draw_block::z#1 + (unumber)$29 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast memset::c#0 = (unumber)0 Inlining cast memset::num#0 = (unumber)$3e8 Inlining cast memset::num#1 = (unumber)$3e8 @@ -514,23 +514,23 @@ Inlining cast screen[draw_block::$5] = (unumber)1 Inlining cast screen[draw_block::$7] = (unumber)2 Inlining cast screen[draw_block::$9] = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53264 -Simplifying constant pointer cast (byte*) 53287 -Simplifying constant pointer cast (byte*) 53269 -Simplifying constant pointer cast (byte*) 53271 -Simplifying constant pointer cast (byte*) 53276 -Simplifying constant pointer cast (byte*) 53277 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (byte*) 53282 -Simplifying constant pointer cast (byte*) 53283 -Simplifying constant pointer cast (byte*) 53284 -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 8192 -Simplifying constant pointer cast (byte*) 10240 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 12288 +Simplifying constant pointer cast (char *) 53264 +Simplifying constant pointer cast (char *) 53287 +Simplifying constant pointer cast (char *) 53269 +Simplifying constant pointer cast (char *) 53271 +Simplifying constant pointer cast (char *) 53276 +Simplifying constant pointer cast (char *) 53277 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (char *) 53282 +Simplifying constant pointer cast (char *) 53283 +Simplifying constant pointer cast (char *) 53284 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 8192 +Simplifying constant pointer cast (char *) 10240 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 12288 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -565,52 +565,52 @@ Simplifying constant integer cast $29 Simplifying constant integer cast 3 Simplifying constant integer cast $29 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (word) $3fff -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $29 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (unsigned int) $3fff +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $29 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in mul8u::$1 = mul8u::a#3 & 1 -Inferred type updated to word in init::toD0181_$0 = init::toD0181_$7 & $3fff -Inferred type updated to word in init::toD0181_$1 = init::toD0181_$0 * 4 -Inferred type updated to byte in init::toD0181_$4 = init::toD0181_$3 / 4 -Inferred type updated to byte in init::toD0181_$5 = init::toD0181_$4 & $f -Inferred type updated to byte in init::toD0181_$6 = init::toD0181_$2 | init::toD0181_$5 -Inferred type updated to word in draw_block::$5 = draw_block::z#1 + 1 -Inferred type updated to word in draw_block::$6 = draw_block::z#1 + 1 -Inferred type updated to word in draw_block::$7 = draw_block::z#1 + $28 -Inferred type updated to word in draw_block::$8 = draw_block::z#1 + $28 -Inferred type updated to word in draw_block::$9 = draw_block::z#1 + $29 -Inferred type updated to word in draw_block::$10 = draw_block::z#1 + $29 +Inferred type updated to char in mul8u::$1 = mul8u::a#3 & 1 +Inferred type updated to unsigned int in init::toD0181_$0 = init::toD0181_$7 & $3fff +Inferred type updated to unsigned int in init::toD0181_$1 = init::toD0181_$0 * 4 +Inferred type updated to char in init::toD0181_$4 = init::toD0181_$3 / 4 +Inferred type updated to char in init::toD0181_$5 = init::toD0181_$4 & $f +Inferred type updated to char in init::toD0181_$6 = init::toD0181_$2 | init::toD0181_$5 +Inferred type updated to unsigned int in draw_block::$5 = draw_block::z#1 + 1 +Inferred type updated to unsigned int in draw_block::$6 = draw_block::z#1 + 1 +Inferred type updated to unsigned int in draw_block::$7 = draw_block::z#1 + $28 +Inferred type updated to unsigned int in draw_block::$8 = draw_block::z#1 + $28 +Inferred type updated to unsigned int in draw_block::$9 = draw_block::z#1 + $29 +Inferred type updated to unsigned int in draw_block::$10 = draw_block::z#1 + $29 Inversing boolean not [2] memset::$1 = memset::num#2 <= 0 from [1] memset::$0 = memset::num#2 > 0 Inversing boolean not [28] mul8u::$3 = mul8u::$1 == 0 from [27] mul8u::$2 = mul8u::$1 != 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -670,20 +670,20 @@ Constant mul8u::res#0 = 0 Constant main::x#0 = 0 Constant main::y#0 = 0 Constant draw_block::color#0 = YELLOW -Constant memset::str#0 = (void*)screen +Constant memset::str#0 = (void *)screen Constant memset::c#0 = 0 Constant memset::num#0 = $3e8 -Constant memset::str#1 = (void*)colors +Constant memset::str#1 = (void *)colors Constant memset::c#1 = BLACK Constant memset::num#1 = $3e8 Constant init::toD0181_screen#0 = screen Constant init::toD0181_gfx#0 = charset Constant mul8u::b#0 = $28 Successful SSA optimization Pass2ConstantIdentification -Constant mul8u::mb#0 = (word)mul8u::b#0 -Constant init::toD0181_$7 = (word)init::toD0181_screen#0 +Constant mul8u::mb#0 = (unsigned int)mul8u::b#0 +Constant init::toD0181_$7 = (unsigned int)init::toD0181_screen#0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (word)init::toD0181_gfx#0 in [64] init::toD0181_$3 = byte1 (word)init::toD0181_gfx#0 +Constant value identified (unsigned int)init::toD0181_gfx#0 in [64] init::toD0181_$3 = byte1 (unsigned int)init::toD0181_gfx#0 Successful SSA optimization Pass2ConstantValues if() condition always true - replacing block destination [45] if(true) goto main::@6 Successful SSA optimization Pass2ConstantIfs @@ -714,10 +714,10 @@ Alias draw_block::$8 = draw_block::$7 Alias draw_block::$10 = draw_block::$9 Successful SSA optimization Pass2AliasElimination Constant right-side identified [35] init::toD0181_$0 = init::toD0181_$7 & $3fff -Constant right-side identified [38] init::toD0181_$3 = byte1 (word)init::toD0181_gfx#0 +Constant right-side identified [38] init::toD0181_$3 = byte1 (unsigned int)init::toD0181_gfx#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant init::toD0181_$0 = init::toD0181_$7&$3fff -Constant init::toD0181_$3 = byte1 (word)init::toD0181_gfx#0 +Constant init::toD0181_$3 = byte1 (unsigned int)init::toD0181_gfx#0 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [35] init::toD0181_$1 = init::toD0181_$0 * 4 Constant right-side identified [37] init::toD0181_$4 = init::toD0181_$3 / 4 @@ -735,8 +735,8 @@ Constant right-side identified [35] init::toD0181_return#0 = init::toD0181_$2 | Successful SSA optimization Pass2ConstantRValueConsolidation Constant init::toD0181_return#0 = init::toD0181_$2|init::toD0181_$5 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [2] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [4] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [2] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [4] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings memset::str#0 Inlining constant with var siblings memset::c#0 @@ -749,16 +749,16 @@ Inlining constant with var siblings mul8u::mb#0 Inlining constant with var siblings main::x#0 Inlining constant with var siblings main::y#0 Constant inlined init::toD0181_gfx#0 = charset -Constant inlined init::toD0181_$2 = byte1 (word)screen&$3fff*4 -Constant inlined init::toD0181_$3 = byte1 (word)charset -Constant inlined memset::str#1 = (void*)colors -Constant inlined init::toD0181_$0 = (word)screen&$3fff -Constant inlined memset::str#0 = (void*)screen -Constant inlined init::toD0181_$1 = (word)screen&$3fff*4 -Constant inlined mul8u::mb#0 = (word)mul8u::b#0 -Constant inlined init::toD0181_$7 = (word)screen -Constant inlined init::toD0181_$4 = byte1 (word)charset/4 -Constant inlined init::toD0181_$5 = byte1 (word)charset/4&$f +Constant inlined init::toD0181_$2 = byte1 (unsigned int)screen&$3fff*4 +Constant inlined init::toD0181_$3 = byte1 (unsigned int)charset +Constant inlined memset::str#1 = (void *)colors +Constant inlined init::toD0181_$0 = (unsigned int)screen&$3fff +Constant inlined memset::str#0 = (void *)screen +Constant inlined init::toD0181_$1 = (unsigned int)screen&$3fff*4 +Constant inlined mul8u::mb#0 = (unsigned int)mul8u::b#0 +Constant inlined init::toD0181_$7 = (unsigned int)screen +Constant inlined init::toD0181_$4 = byte1 (unsigned int)charset/4 +Constant inlined init::toD0181_$5 = byte1 (unsigned int)charset/4&$f Constant inlined memset::num#1 = $3e8 Constant inlined main::x#0 = 0 Constant inlined memset::num#0 = $3e8 @@ -831,7 +831,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init + [1] call init to:main::@1 main::@1: scope:[main] from main main::@4 [2] main::x#2 = phi( main::@4/main::x#1, main/0 ) @@ -853,7 +853,7 @@ main::@3: scope:[main] from main::@2 [10] draw_block::tileno#0 = main::tile#0 [11] draw_block::x#0 = main::x#2 [12] draw_block::y#0 = main::y#2 - [13] call draw_block + [13] call draw_block to:main::@6 main::@6: scope:[main] from main::@3 [14] main::y#1 = ++ main::y#2 @@ -862,15 +862,15 @@ main::@6: scope:[main] from main::@3 void init() init: scope:[init] from main [15] phi() - [16] call init_sprites + [16] call init_sprites to:init::@2 init::@2: scope:[init] from init [17] phi() - [18] call memset + [18] call memset to:init::@3 init::@3: scope:[init] from init::@2 [19] phi() - [20] call memset + [20] call memset to:init::toD0181 init::toD0181: scope:[init] from init::@3 [21] phi() @@ -888,13 +888,13 @@ init::@return: scope:[init] from init::@1 [29] return to:@return -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) +void draw_block(char tileno , char x , char y , char color) draw_block: scope:[draw_block] from main::@3 [30] draw_block::tileno#1 = draw_block::tileno#0 << 2 [31] draw_block::x1#0 = draw_block::x#0 << 1 [32] draw_block::y#1 = draw_block::y#0 << 1 [33] mul8u::a#1 = draw_block::y#1 - [34] call mul8u + [34] call mul8u [35] mul8u::return#2 = mul8u::res#2 to:draw_block::@1 draw_block::@1: scope:[draw_block] from draw_block @@ -938,14 +938,14 @@ init_sprites::@return: scope:[init_sprites] from init_sprites [65] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from init::@2 init::@3 [66] memset::c#4 = phi( init::@2/0, init::@3/BLACK ) - [66] memset::str#3 = phi( init::@2/(void*)screen, init::@3/(void*)colors ) + [66] memset::str#3 = phi( init::@2/(void *)screen, init::@3/(void *)colors ) to:memset::@1 memset::@1: scope:[memset] from memset - [67] memset::end#0 = (byte*)memset::str#3 + $3e8 - [68] memset::dst#4 = (byte*)memset::str#3 + [67] memset::end#0 = (char *)memset::str#3 + $3e8 + [68] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [69] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -959,12 +959,12 @@ memset::@3: scope:[memset] from memset::@2 [73] memset::dst#1 = ++ memset::dst#2 to:memset::@2 -word mul8u(byte mul8u::a , byte mul8u::b) +unsigned int mul8u(char a , char b) mul8u: scope:[mul8u] from draw_block [74] phi() to:mul8u::@1 mul8u::@1: scope:[mul8u] from mul8u mul8u::@3 - [75] mul8u::mb#2 = phi( mul8u/(word)mul8u::b#0, mul8u::@3/mul8u::mb#1 ) + [75] mul8u::mb#2 = phi( mul8u/(unsigned int)mul8u::b#0, mul8u::@3/mul8u::mb#1 ) [75] mul8u::res#2 = phi( mul8u/0, mul8u::@3/mul8u::res#6 ) [75] mul8u::a#2 = phi( mul8u/mul8u::a#1, mul8u::@3/mul8u::a#0 ) [76] if(mul8u::a#2!=0) goto mul8u::@2 @@ -987,79 +987,79 @@ mul8u::@3: scope:[mul8u] from mul8u::@2 mul8u::@4 VARIABLE REGISTER WEIGHTS -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) -word~ draw_block::$10 1001.0 -byte*~ draw_block::$11 2002.0 -byte*~ draw_block::$12 2002.0 -byte*~ draw_block::$13 2002.0 -byte*~ draw_block::$14 2002.0 -byte*~ draw_block::$15 2002.0 -byte*~ draw_block::$16 2002.0 -byte*~ draw_block::$17 2002.0 -byte*~ draw_block::$18 2002.0 -word~ draw_block::$6 1001.0 -word~ draw_block::$8 1001.0 -byte draw_block::color -byte draw_block::drawtile -byte draw_block::drawtile#0 1001.0 -byte draw_block::tileno -byte draw_block::tileno#0 367.33333333333337 -byte draw_block::tileno#1 250.25 -byte draw_block::x -byte draw_block::x#0 367.33333333333337 -word draw_block::x1 -word draw_block::x1#0 333.6666666666667 -byte draw_block::y -byte draw_block::y#0 367.33333333333337 -byte draw_block::y#1 2002.0 -word draw_block::z -word draw_block::z#0 2002.0 -word draw_block::z#1 375.375 +void draw_block(char tileno , char x , char y , char color) +unsigned int draw_block::$10 // 1001.0 +char *draw_block::$11 // 2002.0 +char *draw_block::$12 // 2002.0 +char *draw_block::$13 // 2002.0 +char *draw_block::$14 // 2002.0 +char *draw_block::$15 // 2002.0 +char *draw_block::$16 // 2002.0 +char *draw_block::$17 // 2002.0 +char *draw_block::$18 // 2002.0 +unsigned int draw_block::$6 // 1001.0 +unsigned int draw_block::$8 // 1001.0 +char draw_block::color +char draw_block::drawtile +char draw_block::drawtile#0 // 1001.0 +char draw_block::tileno +char draw_block::tileno#0 // 367.33333333333337 +char draw_block::tileno#1 // 250.25 +char draw_block::x +char draw_block::x#0 // 367.33333333333337 +unsigned int draw_block::x1 +unsigned int draw_block::x1#0 // 333.6666666666667 +char draw_block::y +char draw_block::y#0 // 367.33333333333337 +char draw_block::y#1 // 2002.0 +unsigned int draw_block::z +unsigned int draw_block::z#0 // 2002.0 +unsigned int draw_block::z#1 // 375.375 void init() -byte* init::toD0181_gfx -byte init::toD0181_return -byte* init::toD0181_screen +char *init::toD0181_gfx +char init::toD0181_return +char *init::toD0181_screen void init_sprites() void main() -byte main::tile -byte main::tile#0 202.0 -byte main::x -byte main::x#1 22.0 -byte main::x#2 21.363636363636363 -byte main::y -byte main::y#1 202.0 -byte main::y#2 63.125 -byte main::z -byte main::z#0 202.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 143.0 -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1368.3333333333335 -byte* memset::dst#4 202.0 -byte* memset::end -byte* memset::end#0 183.66666666666669 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 2.0000002E7 -byte mul8u::a -byte mul8u::a#0 1.0000001E7 -byte mul8u::a#1 5501.0 -byte mul8u::a#2 6668334.166666666 -byte mul8u::b -word mul8u::mb -word mul8u::mb#1 2.0000002E7 -word mul8u::mb#2 4285714.714285715 -word mul8u::res -word mul8u::res#1 2.0000002E7 -word mul8u::res#2 5000167.333333333 -word mul8u::res#6 1.0000001E7 -word mul8u::return -word mul8u::return#2 2002.0 +char main::tile +char main::tile#0 // 202.0 +char main::x +char main::x#1 // 22.0 +char main::x#2 // 21.363636363636363 +char main::y +char main::y#1 // 202.0 +char main::y#2 // 63.125 +char main::z +char main::z#0 // 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 143.0 +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1368.3333333333335 +char *memset::dst#4 // 202.0 +char *memset::end +char *memset::end#0 // 183.66666666666669 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 +unsigned int mul8u(char a , char b) +char mul8u::$1 // 2.0000002E7 +char mul8u::a +char mul8u::a#0 // 1.0000001E7 +char mul8u::a#1 // 5501.0 +char mul8u::a#2 // 6668334.166666666 +char mul8u::b +unsigned int mul8u::mb +unsigned int mul8u::mb#1 // 2.0000002E7 +unsigned int mul8u::mb#2 // 4285714.714285715 +unsigned int mul8u::res +unsigned int mul8u::res#1 // 2.0000002E7 +unsigned int mul8u::res#2 // 5000167.333333333 +unsigned int mul8u::res#6 // 1.0000001E7 +unsigned int mul8u::return +unsigned int mul8u::return#2 // 2002.0 Initial phi equivalence classes [ main::x#2 main::x#1 ] @@ -1210,9 +1210,9 @@ Statement [61] *SPRITES_EXPAND_Y = 0 [ ] ( init:1::init_sprites:16 [ ] { } ) al Statement [62] *SPRITES_XMSB = 0 [ ] ( init:1::init_sprites:16 [ ] { } ) always clobbers reg byte a Statement [63] *SPRITES_COLOR = WHITE [ ] ( init:1::init_sprites:16 [ ] { } ) always clobbers reg byte a Statement [64] *SPRITES_MC = 0 [ ] ( init:1::init_sprites:16 [ ] { } ) always clobbers reg byte a -Statement [67] memset::end#0 = (byte*)memset::str#3 + $3e8 [ memset::str#3 memset::c#4 memset::end#0 ] ( init:1::memset:18 [ memset::str#3 memset::c#4 memset::end#0 ] { } init:1::memset:20 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [67] memset::end#0 = (char *)memset::str#3 + $3e8 [ memset::str#3 memset::c#4 memset::end#0 ] ( init:1::memset:18 [ memset::str#3 memset::c#4 memset::end#0 ] { } init:1::memset:20 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ memset::c#4 ] -Statement [68] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#4 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [68] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#4 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [70] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#2 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [72] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#2 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:6 [ memset::c#4 ] @@ -1257,8 +1257,8 @@ Statement [61] *SPRITES_EXPAND_Y = 0 [ ] ( init:1::init_sprites:16 [ ] { } ) al Statement [62] *SPRITES_XMSB = 0 [ ] ( init:1::init_sprites:16 [ ] { } ) always clobbers reg byte a Statement [63] *SPRITES_COLOR = WHITE [ ] ( init:1::init_sprites:16 [ ] { } ) always clobbers reg byte a Statement [64] *SPRITES_MC = 0 [ ] ( init:1::init_sprites:16 [ ] { } ) always clobbers reg byte a -Statement [67] memset::end#0 = (byte*)memset::str#3 + $3e8 [ memset::str#3 memset::c#4 memset::end#0 ] ( init:1::memset:18 [ memset::str#3 memset::c#4 memset::end#0 ] { } init:1::memset:20 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [68] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#4 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [67] memset::end#0 = (char *)memset::str#3 + $3e8 [ memset::str#3 memset::c#4 memset::end#0 ] ( init:1::memset:18 [ memset::str#3 memset::c#4 memset::end#0 ] { } init:1::memset:20 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [68] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#4 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a Statement [70] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#2 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a Statement [72] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( init:1::memset:18 [ memset::c#4 memset::end#0 memset::dst#2 ] { } init:1::memset:20 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [78] mul8u::$1 = mul8u::a#2 & 1 [ mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] ( draw_block:13::mul8u:34 [ main::x#2 main::y#2 draw_block::tileno#1 draw_block::x1#0 mul8u::res#2 mul8u::a#2 mul8u::mb#2 mul8u::$1 ] { { draw_block::tileno#0 = main::tile#0 } { draw_block::x#0 = main::x#2 } { draw_block::y#0 = main::y#2 } { mul8u::a#1 = draw_block::y#1 } { mul8u::return#2 = mul8u::res#2 } } ) always clobbers reg byte a @@ -1411,7 +1411,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label y = 3 .label x = 2 - // [1] call init + // [1] call init // [15] phi from main to init [phi:main->init] init_from_main: jsr init @@ -1468,7 +1468,7 @@ main: { // [11] draw_block::x#0 = main::x#2 -- vbuxx=vbuz1 ldx.z x // [12] draw_block::y#0 = main::y#2 - // [13] call draw_block + // [13] call draw_block jsr draw_block jmp __b6 // main::@6 @@ -1483,19 +1483,19 @@ main: { // init init: { .const toD0181_return = (>(screen&$3fff)*4)|(>charset)/4&$f - // [16] call init_sprites + // [16] call init_sprites jsr init_sprites // [17] phi from init to init::@2 [phi:init->init::@2] __b2_from_init: jmp __b2 // init::@2 __b2: - // [18] call memset + // [18] call memset // [66] phi from init::@2 to memset [phi:init::@2->memset] memset_from___b2: // [66] phi memset::c#4 = 0 [phi:init::@2->memset#0] -- vbuxx=vbuc1 ldx #0 - // [66] phi memset::str#3 = (void*)screen [phi:init::@2->memset#1] -- pvoz1=pvoc1 + // [66] phi memset::str#3 = (void *)screen [phi:init::@2->memset#1] -- pvoz1=pvoc1 lda #screen @@ -1506,12 +1506,12 @@ init: { jmp __b3 // init::@3 __b3: - // [20] call memset + // [20] call memset // [66] phi from init::@3 to memset [phi:init::@3->memset] memset_from___b3: // [66] phi memset::c#4 = BLACK [phi:init::@3->memset#0] -- vbuxx=vbuc1 ldx #BLACK - // [66] phi memset::str#3 = (void*)colors [phi:init::@3->memset#1] -- pvoz1=pvoc1 + // [66] phi memset::str#3 = (void *)colors [phi:init::@3->memset#1] -- pvoz1=pvoc1 lda #colors @@ -1553,7 +1553,7 @@ init: { rts } // draw_block -// draw_block(byte register(Y) tileno, byte register(X) x, byte zp(3) y) +// void draw_block(__register(Y) char tileno, __register(X) char x, __zp(3) char y, char color) draw_block: { .label __6 = $a .label __8 = $e @@ -1587,7 +1587,7 @@ draw_block: { asl // [33] mul8u::a#1 = draw_block::y#1 -- vbuxx=vbuaa tax - // [34] call mul8u + // [34] call mul8u // [74] phi from draw_block to mul8u [phi:draw_block->mul8u] mul8u_from_draw_block: jsr mul8u @@ -1761,7 +1761,7 @@ init_sprites: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 4 @@ -1769,7 +1769,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [67] memset::end#0 = (byte*)memset::str#3 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 + // [67] memset::end#0 = (char *)memset::str#3 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$3e8 @@ -1777,7 +1777,7 @@ memset: { lda.z str+1 adc #>$3e8 sta.z end+1 - // [68] memset::dst#4 = (byte*)memset::str#3 + // [68] memset::dst#4 = (char *)memset::str#3 // [69] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -1812,7 +1812,7 @@ memset: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a) +// __zp(4) unsigned int mul8u(__register(X) char a, char b) mul8u: { .const b = $28 .label mb = 6 @@ -1820,7 +1820,7 @@ mul8u: { .label return = 4 // [75] phi from mul8u to mul8u::@1 [phi:mul8u->mul8u::@1] __b1_from_mul8u: - // [75] phi mul8u::mb#2 = (word)mul8u::b#0 [phi:mul8u->mul8u::@1#0] -- vwuz1=vwuc1 + // [75] phi mul8u::mb#2 = (unsigned int)mul8u::b#0 [phi:mul8u->mul8u::@1#0] -- vwuz1=vwuc1 lda #b @@ -1959,104 +1959,104 @@ Relabelling long label __b2_from___b1 to __b4 Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BG_COLOR1 = (byte*) 53282 -constant byte* const BG_COLOR2 = (byte*) 53283 -constant byte* const BG_COLOR3 = (byte*) 53284 -constant const byte BLACK = 0 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D018 = (byte*) 53272 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_EXPAND_X = (byte*) 53277 -constant byte* const SPRITES_EXPAND_Y = (byte*) 53271 -constant byte* const SPRITES_MC = (byte*) 53276 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant const byte WHITE = 1 -constant const byte YELLOW = 7 -constant byte* const charset = (byte*) 8192 -constant byte* const colors = (byte*) 55296 -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) -word~ draw_block::$10 zp[2]:20 1001.0 -byte*~ draw_block::$11 zp[2]:6 2002.0 -byte*~ draw_block::$12 zp[2]:8 2002.0 -byte*~ draw_block::$13 zp[2]:12 2002.0 -byte*~ draw_block::$14 zp[2]:10 2002.0 -byte*~ draw_block::$15 zp[2]:16 2002.0 -byte*~ draw_block::$16 zp[2]:14 2002.0 -byte*~ draw_block::$17 zp[2]:18 2002.0 -byte*~ draw_block::$18 zp[2]:20 2002.0 -word~ draw_block::$6 zp[2]:10 1001.0 -word~ draw_block::$8 zp[2]:14 1001.0 -byte draw_block::color -byte draw_block::drawtile -byte draw_block::drawtile#0 reg byte x 1001.0 -byte draw_block::tileno -byte draw_block::tileno#0 reg byte y 367.33333333333337 -byte draw_block::tileno#1 reg byte y 250.25 -byte draw_block::x -byte draw_block::x#0 reg byte x 367.33333333333337 -word draw_block::x1 -word draw_block::x1#0 x1 zp[2]:20 333.6666666666667 -byte draw_block::y -byte draw_block::y#0 y zp[1]:3 367.33333333333337 -byte draw_block::y#1 reg byte a 2002.0 -word draw_block::z -word draw_block::z#0 z zp[2]:4 2002.0 -word draw_block::z#1 z_1 zp[2]:20 375.375 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BG_COLOR1 = (char *) 53282 +__constant char * const BG_COLOR2 = (char *) 53283 +__constant char * const BG_COLOR3 = (char *) 53284 +__constant const char BLACK = 0 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D018 = (char *) 53272 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_EXPAND_X = (char *) 53277 +__constant char * const SPRITES_EXPAND_Y = (char *) 53271 +__constant char * const SPRITES_MC = (char *) 53276 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant const char WHITE = 1 +__constant const char YELLOW = 7 +__constant char * const charset = (char *) 8192 +__constant char * const colors = (char *) 55296 +void draw_block(char tileno , char x , char y , char color) +unsigned int draw_block::$10 // zp[2]:20 1001.0 +char *draw_block::$11 // zp[2]:6 2002.0 +char *draw_block::$12 // zp[2]:8 2002.0 +char *draw_block::$13 // zp[2]:12 2002.0 +char *draw_block::$14 // zp[2]:10 2002.0 +char *draw_block::$15 // zp[2]:16 2002.0 +char *draw_block::$16 // zp[2]:14 2002.0 +char *draw_block::$17 // zp[2]:18 2002.0 +char *draw_block::$18 // zp[2]:20 2002.0 +unsigned int draw_block::$6 // zp[2]:10 1001.0 +unsigned int draw_block::$8 // zp[2]:14 1001.0 +char draw_block::color +char draw_block::drawtile +char draw_block::drawtile#0 // reg byte x 1001.0 +char draw_block::tileno +char draw_block::tileno#0 // reg byte y 367.33333333333337 +char draw_block::tileno#1 // reg byte y 250.25 +char draw_block::x +char draw_block::x#0 // reg byte x 367.33333333333337 +unsigned int draw_block::x1 +unsigned int draw_block::x1#0 // x1 zp[2]:20 333.6666666666667 +char draw_block::y +char draw_block::y#0 // y zp[1]:3 367.33333333333337 +char draw_block::y#1 // reg byte a 2002.0 +unsigned int draw_block::z +unsigned int draw_block::z#0 // z zp[2]:4 2002.0 +unsigned int draw_block::z#1 // z_1 zp[2]:20 375.375 void init() -byte* init::toD0181_gfx -byte init::toD0181_return -constant byte init::toD0181_return#0 toD0181_return = byte1 (word)screen&$3fff*4|byte1 (word)charset/4&$f -byte* init::toD0181_screen +char *init::toD0181_gfx +char init::toD0181_return +__constant char init::toD0181_return#0 = byte1 (unsigned int)screen&$3fff*4|byte1 (unsigned int)charset/4&$f // toD0181_return +char *init::toD0181_screen void init_sprites() -constant byte* const level_address = (byte*) 12288 +__constant char * const level_address = (char *) 12288 void main() -byte main::tile -byte main::tile#0 reg byte y 202.0 -byte main::x -byte main::x#1 x zp[1]:2 22.0 -byte main::x#2 x zp[1]:2 21.363636363636363 -byte main::y -byte main::y#1 y zp[1]:3 202.0 -byte main::y#2 y zp[1]:3 63.125 -byte main::z -byte main::z#0 reg byte a 202.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 143.0 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:4 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:20 183.66666666666669 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 2.0000002E7 -byte mul8u::a -byte mul8u::a#0 reg byte x 1.0000001E7 -byte mul8u::a#1 reg byte x 5501.0 -byte mul8u::a#2 reg byte x 6668334.166666666 -byte mul8u::b -constant byte mul8u::b#0 b = $28 -word mul8u::mb -word mul8u::mb#1 mb zp[2]:6 2.0000002E7 -word mul8u::mb#2 mb zp[2]:6 4285714.714285715 -word mul8u::res -word mul8u::res#1 res zp[2]:4 2.0000002E7 -word mul8u::res#2 res zp[2]:4 5000167.333333333 -word mul8u::res#6 res zp[2]:4 1.0000001E7 -word mul8u::return -word mul8u::return#2 return zp[2]:4 2002.0 -constant byte* const screen = (byte*) 1024 -constant byte* const tileset = (byte*) 10240 +char main::tile +char main::tile#0 // reg byte y 202.0 +char main::x +char main::x#1 // x zp[1]:2 22.0 +char main::x#2 // x zp[1]:2 21.363636363636363 +char main::y +char main::y#1 // y zp[1]:3 202.0 +char main::y#2 // y zp[1]:3 63.125 +char main::z +char main::z#0 // reg byte a 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 143.0 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:4 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:20 183.66666666666669 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 2.0000002E7 +char mul8u::a +char mul8u::a#0 // reg byte x 1.0000001E7 +char mul8u::a#1 // reg byte x 5501.0 +char mul8u::a#2 // reg byte x 6668334.166666666 +char mul8u::b +__constant char mul8u::b#0 = $28 // b +unsigned int mul8u::mb +unsigned int mul8u::mb#1 // mb zp[2]:6 2.0000002E7 +unsigned int mul8u::mb#2 // mb zp[2]:6 4285714.714285715 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:4 2.0000002E7 +unsigned int mul8u::res#2 // res zp[2]:4 5000167.333333333 +unsigned int mul8u::res#6 // res zp[2]:4 1.0000001E7 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:4 2002.0 +__constant char * const screen = (char *) 1024 +__constant char * const tileset = (char *) 10240 zp[1]:2 [ main::x#2 main::x#1 ] zp[1]:3 [ main::y#2 main::y#1 draw_block::y#0 ] @@ -2145,7 +2145,7 @@ main: { .label y = 3 .label x = 2 // init() - // [1] call init + // [1] call init // [15] phi from main to init [phi:main->init] jsr init // [2] phi from main to main::@1 [phi:main->main::@1] @@ -2198,7 +2198,7 @@ main: { // [11] draw_block::x#0 = main::x#2 -- vbuxx=vbuz1 ldx.z x // [12] draw_block::y#0 = main::y#2 - // [13] call draw_block + // [13] call draw_block jsr draw_block // main::@6 // for (byte y = 0; y < 9; y++) @@ -2212,16 +2212,16 @@ main: { init: { .const toD0181_return = (>(screen&$3fff)*4)|(>charset)/4&$f // init_sprites() - // [16] call init_sprites + // [16] call init_sprites jsr init_sprites // [17] phi from init to init::@2 [phi:init->init::@2] // init::@2 // memset(screen, 0, 1000) - // [18] call memset + // [18] call memset // [66] phi from init::@2 to memset [phi:init::@2->memset] // [66] phi memset::c#4 = 0 [phi:init::@2->memset#0] -- vbuxx=vbuc1 ldx #0 - // [66] phi memset::str#3 = (void*)screen [phi:init::@2->memset#1] -- pvoz1=pvoc1 + // [66] phi memset::str#3 = (void *)screen [phi:init::@2->memset#1] -- pvoz1=pvoc1 lda #screen @@ -2230,11 +2230,11 @@ init: { // [19] phi from init::@2 to init::@3 [phi:init::@2->init::@3] // init::@3 // memset(colors, BLACK, 1000) - // [20] call memset + // [20] call memset // [66] phi from init::@3 to memset [phi:init::@3->memset] // [66] phi memset::c#4 = BLACK [phi:init::@3->memset#0] -- vbuxx=vbuc1 ldx #BLACK - // [66] phi memset::str#3 = (void*)colors [phi:init::@3->memset#1] -- pvoz1=pvoc1 + // [66] phi memset::str#3 = (void *)colors [phi:init::@3->memset#1] -- pvoz1=pvoc1 lda #colors @@ -2276,7 +2276,7 @@ init: { rts } // draw_block -// draw_block(byte register(Y) tileno, byte register(X) x, byte zp(3) y) +// void draw_block(__register(Y) char tileno, __register(X) char x, __zp(3) char y, char color) draw_block: { .label __6 = $a .label __8 = $e @@ -2314,7 +2314,7 @@ draw_block: { // word z = mul8u(y,40) // [33] mul8u::a#1 = draw_block::y#1 -- vbuxx=vbuaa tax - // [34] call mul8u + // [34] call mul8u // [74] phi from draw_block to mul8u [phi:draw_block->mul8u] jsr mul8u // word z = mul8u(y,40) @@ -2495,14 +2495,14 @@ init_sprites: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = 4 .label str = 4 // memset::@1 // char* end = (char*)str + num - // [67] memset::end#0 = (byte*)memset::str#3 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 + // [67] memset::end#0 = (char *)memset::str#3 + $3e8 -- pbuz1=pbuz2_plus_vwuc1 lda.z str clc adc #<$3e8 @@ -2510,7 +2510,7 @@ memset: { lda.z str+1 adc #>$3e8 sta.z end+1 - // [68] memset::dst#4 = (byte*)memset::str#3 + // [68] memset::dst#4 = (char *)memset::str#3 // [69] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [69] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 @@ -2544,14 +2544,14 @@ memset: { } // mul8u // Perform binary multiplication of two unsigned 8-bit chars into a 16-bit unsigned int -// mul8u(byte register(X) a) +// __zp(4) unsigned int mul8u(__register(X) char a, char b) mul8u: { .const b = $28 .label mb = 6 .label res = 4 .label return = 4 // [75] phi from mul8u to mul8u::@1 [phi:mul8u->mul8u::@1] - // [75] phi mul8u::mb#2 = (word)mul8u::b#0 [phi:mul8u->mul8u::@1#0] -- vwuz1=vwuc1 + // [75] phi mul8u::mb#2 = (unsigned int)mul8u::b#0 [phi:mul8u->mul8u::@1#0] -- vwuz1=vwuc1 lda #b diff --git a/src/test/ref/scan-desire-problem.sym b/src/test/ref/scan-desire-problem.sym index 4d8e3eeca..013fec8de 100644 --- a/src/test/ref/scan-desire-problem.sym +++ b/src/test/ref/scan-desire-problem.sym @@ -1,101 +1,101 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant byte* const BG_COLOR1 = (byte*) 53282 -constant byte* const BG_COLOR2 = (byte*) 53283 -constant byte* const BG_COLOR3 = (byte*) 53284 -constant const byte BLACK = 0 -constant const byte BLUE = 6 -constant byte* const BORDER_COLOR = (byte*) 53280 -constant byte* const D018 = (byte*) 53272 -constant const byte GREEN = 5 -constant const byte RED = 2 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_EXPAND_X = (byte*) 53277 -constant byte* const SPRITES_EXPAND_Y = (byte*) 53271 -constant byte* const SPRITES_MC = (byte*) 53276 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant const byte WHITE = 1 -constant const byte YELLOW = 7 -constant byte* const charset = (byte*) 8192 -constant byte* const colors = (byte*) 55296 -void draw_block(byte draw_block::tileno , byte draw_block::x , byte draw_block::y , byte draw_block::color) -word~ draw_block::$10 zp[2]:20 1001.0 -byte*~ draw_block::$11 zp[2]:6 2002.0 -byte*~ draw_block::$12 zp[2]:8 2002.0 -byte*~ draw_block::$13 zp[2]:12 2002.0 -byte*~ draw_block::$14 zp[2]:10 2002.0 -byte*~ draw_block::$15 zp[2]:16 2002.0 -byte*~ draw_block::$16 zp[2]:14 2002.0 -byte*~ draw_block::$17 zp[2]:18 2002.0 -byte*~ draw_block::$18 zp[2]:20 2002.0 -word~ draw_block::$6 zp[2]:10 1001.0 -word~ draw_block::$8 zp[2]:14 1001.0 -byte draw_block::color -byte draw_block::drawtile -byte draw_block::drawtile#0 reg byte x 1001.0 -byte draw_block::tileno -byte draw_block::tileno#0 reg byte y 367.33333333333337 -byte draw_block::tileno#1 reg byte y 250.25 -byte draw_block::x -byte draw_block::x#0 reg byte x 367.33333333333337 -word draw_block::x1 -word draw_block::x1#0 x1 zp[2]:20 333.6666666666667 -byte draw_block::y -byte draw_block::y#0 y zp[1]:3 367.33333333333337 -byte draw_block::y#1 reg byte a 2002.0 -word draw_block::z -word draw_block::z#0 z zp[2]:4 2002.0 -word draw_block::z#1 z_1 zp[2]:20 375.375 +__constant char * const BG_COLOR = (char *) 53281 +__constant char * const BG_COLOR1 = (char *) 53282 +__constant char * const BG_COLOR2 = (char *) 53283 +__constant char * const BG_COLOR3 = (char *) 53284 +__constant const char BLACK = 0 +__constant const char BLUE = 6 +__constant char * const BORDER_COLOR = (char *) 53280 +__constant char * const D018 = (char *) 53272 +__constant const char GREEN = 5 +__constant const char RED = 2 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_EXPAND_X = (char *) 53277 +__constant char * const SPRITES_EXPAND_Y = (char *) 53271 +__constant char * const SPRITES_MC = (char *) 53276 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant const char WHITE = 1 +__constant const char YELLOW = 7 +__constant char * const charset = (char *) 8192 +__constant char * const colors = (char *) 55296 +void draw_block(char tileno , char x , char y , char color) +unsigned int draw_block::$10 // zp[2]:20 1001.0 +char *draw_block::$11 // zp[2]:6 2002.0 +char *draw_block::$12 // zp[2]:8 2002.0 +char *draw_block::$13 // zp[2]:12 2002.0 +char *draw_block::$14 // zp[2]:10 2002.0 +char *draw_block::$15 // zp[2]:16 2002.0 +char *draw_block::$16 // zp[2]:14 2002.0 +char *draw_block::$17 // zp[2]:18 2002.0 +char *draw_block::$18 // zp[2]:20 2002.0 +unsigned int draw_block::$6 // zp[2]:10 1001.0 +unsigned int draw_block::$8 // zp[2]:14 1001.0 +char draw_block::color +char draw_block::drawtile +char draw_block::drawtile#0 // reg byte x 1001.0 +char draw_block::tileno +char draw_block::tileno#0 // reg byte y 367.33333333333337 +char draw_block::tileno#1 // reg byte y 250.25 +char draw_block::x +char draw_block::x#0 // reg byte x 367.33333333333337 +unsigned int draw_block::x1 +unsigned int draw_block::x1#0 // x1 zp[2]:20 333.6666666666667 +char draw_block::y +char draw_block::y#0 // y zp[1]:3 367.33333333333337 +char draw_block::y#1 // reg byte a 2002.0 +unsigned int draw_block::z +unsigned int draw_block::z#0 // z zp[2]:4 2002.0 +unsigned int draw_block::z#1 // z_1 zp[2]:20 375.375 void init() -byte* init::toD0181_gfx -byte init::toD0181_return -constant byte init::toD0181_return#0 toD0181_return = byte1 (word)screen&$3fff*4|byte1 (word)charset/4&$f -byte* init::toD0181_screen +char *init::toD0181_gfx +char init::toD0181_return +__constant char init::toD0181_return#0 = byte1 (unsigned int)screen&$3fff*4|byte1 (unsigned int)charset/4&$f // toD0181_return +char *init::toD0181_screen void init_sprites() -constant byte* const level_address = (byte*) 12288 +__constant char * const level_address = (char *) 12288 void main() -byte main::tile -byte main::tile#0 reg byte y 202.0 -byte main::x -byte main::x#1 x zp[1]:2 22.0 -byte main::x#2 x zp[1]:2 21.363636363636363 -byte main::y -byte main::y#1 y zp[1]:3 202.0 -byte main::y#2 y zp[1]:3 63.125 -byte main::z -byte main::z#0 reg byte a 202.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 143.0 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2002.0 -byte* memset::dst#2 dst zp[2]:4 1368.3333333333335 -byte* memset::dst#4 dst zp[2]:4 202.0 -byte* memset::end -byte* memset::end#0 end zp[2]:20 183.66666666666669 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 -word mul8u(byte mul8u::a , byte mul8u::b) -byte~ mul8u::$1 reg byte a 2.0000002E7 -byte mul8u::a -byte mul8u::a#0 reg byte x 1.0000001E7 -byte mul8u::a#1 reg byte x 5501.0 -byte mul8u::a#2 reg byte x 6668334.166666666 -byte mul8u::b -constant byte mul8u::b#0 b = $28 -word mul8u::mb -word mul8u::mb#1 mb zp[2]:6 2.0000002E7 -word mul8u::mb#2 mb zp[2]:6 4285714.714285715 -word mul8u::res -word mul8u::res#1 res zp[2]:4 2.0000002E7 -word mul8u::res#2 res zp[2]:4 5000167.333333333 -word mul8u::res#6 res zp[2]:4 1.0000001E7 -word mul8u::return -word mul8u::return#2 return zp[2]:4 2002.0 -constant byte* const screen = (byte*) 1024 -constant byte* const tileset = (byte*) 10240 +char main::tile +char main::tile#0 // reg byte y 202.0 +char main::x +char main::x#1 // x zp[1]:2 22.0 +char main::x#2 // x zp[1]:2 21.363636363636363 +char main::y +char main::y#1 // y zp[1]:3 202.0 +char main::y#2 // y zp[1]:3 63.125 +char main::z +char main::z#0 // reg byte a 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 143.0 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2002.0 +char *memset::dst#2 // dst zp[2]:4 1368.3333333333335 +char *memset::dst#4 // dst zp[2]:4 202.0 +char *memset::end +char *memset::end#0 // end zp[2]:20 183.66666666666669 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 +unsigned int mul8u(char a , char b) +char mul8u::$1 // reg byte a 2.0000002E7 +char mul8u::a +char mul8u::a#0 // reg byte x 1.0000001E7 +char mul8u::a#1 // reg byte x 5501.0 +char mul8u::a#2 // reg byte x 6668334.166666666 +char mul8u::b +__constant char mul8u::b#0 = $28 // b +unsigned int mul8u::mb +unsigned int mul8u::mb#1 // mb zp[2]:6 2.0000002E7 +unsigned int mul8u::mb#2 // mb zp[2]:6 4285714.714285715 +unsigned int mul8u::res +unsigned int mul8u::res#1 // res zp[2]:4 2.0000002E7 +unsigned int mul8u::res#2 // res zp[2]:4 5000167.333333333 +unsigned int mul8u::res#6 // res zp[2]:4 1.0000001E7 +unsigned int mul8u::return +unsigned int mul8u::return#2 // return zp[2]:4 2002.0 +__constant char * const screen = (char *) 1024 +__constant char * const tileset = (char *) 10240 zp[1]:2 [ main::x#2 main::x#1 ] zp[1]:3 [ main::y#2 main::y#1 draw_block::y#0 ] diff --git a/src/test/ref/scroll-clobber.log b/src/test/ref/scroll-clobber.log index 9332da78f..b742faa60 100644 --- a/src/test/ref/scroll-clobber.log +++ b/src/test/ref/scroll-clobber.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -39,7 +39,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -48,35 +48,35 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* TEXT[] = "01234567" +__constant char *SCREEN = (char *)$400 +__constant char TEXT[] = "01234567" void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte* main::nxt -byte* main::nxt#0 -byte* main::nxt#1 -byte* main::nxt#2 -byte* main::nxt#3 -byte* main::nxt#4 +bool main::$0 +bool main::$1 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char *main::nxt +char *main::nxt#0 +char *main::nxt#1 +char *main::nxt#2 +char *main::nxt#3 +char *main::nxt#4 Adding number conversion cast (unumber) 0 in main::$0 = main::c#0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [5] main::$1 = main::c#0 != 0 from [4] main::$0 = main::c#0 == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -148,17 +148,17 @@ main::@2: scope:[main] from main::@1 main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::c -byte main::c#0 16.5 -byte main::c#1 22.0 -byte main::c#2 16.5 -byte main::i -byte main::i#1 11.0 -byte main::i#2 4.4 -byte* main::nxt -byte* main::nxt#1 22.0 -byte* main::nxt#3 11.0 -byte* main::nxt#4 7.333333333333333 +char main::c +char main::c#0 // 16.5 +char main::c#1 // 22.0 +char main::c#2 // 16.5 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 4.4 +char *main::nxt +char *main::nxt#1 // 22.0 +char *main::nxt#3 // 11.0 +char *main::nxt#4 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -283,20 +283,20 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT[] = "01234567" +__constant char *SCREEN = (char *) 1024 +__constant char TEXT[] = "01234567" void main() -byte main::c -byte main::c#0 reg byte y 16.5 -byte main::c#1 reg byte y 22.0 -byte main::c#2 reg byte y 16.5 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 4.4 -byte* main::nxt -byte* main::nxt#1 nxt zp[2]:2 22.0 -byte* main::nxt#3 nxt zp[2]:2 11.0 -byte* main::nxt#4 nxt zp[2]:2 7.333333333333333 +char main::c +char main::c#0 // reg byte y 16.5 +char main::c#1 // reg byte y 22.0 +char main::c#2 // reg byte y 16.5 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 4.4 +char *main::nxt +char *main::nxt#1 // nxt zp[2]:2 22.0 +char *main::nxt#3 // nxt zp[2]:2 11.0 +char *main::nxt#4 // nxt zp[2]:2 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::c#2 main::c#0 main::c#1 ] diff --git a/src/test/ref/scroll-clobber.sym b/src/test/ref/scroll-clobber.sym index d7cfd7928..959977ff7 100644 --- a/src/test/ref/scroll-clobber.sym +++ b/src/test/ref/scroll-clobber.sym @@ -1,17 +1,17 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* TEXT[] = "01234567" +__constant char *SCREEN = (char *) 1024 +__constant char TEXT[] = "01234567" void main() -byte main::c -byte main::c#0 reg byte y 16.5 -byte main::c#1 reg byte y 22.0 -byte main::c#2 reg byte y 16.5 -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 4.4 -byte* main::nxt -byte* main::nxt#1 nxt zp[2]:2 22.0 -byte* main::nxt#3 nxt zp[2]:2 11.0 -byte* main::nxt#4 nxt zp[2]:2 7.333333333333333 +char main::c +char main::c#0 // reg byte y 16.5 +char main::c#1 // reg byte y 22.0 +char main::c#2 // reg byte y 16.5 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 4.4 +char *main::nxt +char *main::nxt#1 // nxt zp[2]:2 22.0 +char *main::nxt#3 // nxt zp[2]:2 11.0 +char *main::nxt#4 // nxt zp[2]:2 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::c#2 main::c#0 main::c#1 ] diff --git a/src/test/ref/scrollbig-clobber.cfg b/src/test/ref/scrollbig-clobber.cfg index 3f9394848..092260af7 100644 --- a/src/test/ref/scrollbig-clobber.cfg +++ b/src/test/ref/scrollbig-clobber.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [1] nxt#15 = phi( main/TEXT, main::@2/nxt#12 ) - [2] call next_char + [2] call next_char [3] next_char::return#0 = next_char::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte next_char() +char next_char() next_char: scope:[next_char] from main::@1 [9] next_char::c#0 = *nxt#15 [10] if(next_char::c#0!=0) goto next_char::@1 diff --git a/src/test/ref/scrollbig-clobber.log b/src/test/ref/scrollbig-clobber.log index 5ea69262f..736200481 100644 --- a/src/test/ref/scrollbig-clobber.log +++ b/src/test/ref/scrollbig-clobber.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,7 +10,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@2 main::i#3 = phi( main/main::i#0, main::@2/main::i#1 ) nxt#15 = phi( main/nxt#17, main::@2/nxt#0 ) - call next_char + call next_char next_char::return#0 = next_char::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte next_char() +char next_char() next_char: scope:[next_char] from main::@1 nxt#10 = phi( main::@1/nxt#15 ) next_char::c#0 = *nxt#10 @@ -64,7 +64,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 nxt#16 = phi( __start::__init1/nxt#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 nxt#13 = phi( __start::@1/nxt#1 ) @@ -77,56 +77,56 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* TEXT = "cml " +__constant char *TEXT = "cml " void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte next_char() -bool~ next_char::$0 -bool~ next_char::$1 -byte next_char::c -byte next_char::c#0 -byte next_char::c#1 -byte next_char::c#2 -byte next_char::return -byte next_char::return#0 -byte next_char::return#1 -byte next_char::return#2 -byte next_char::return#3 -byte next_char::return#4 -byte* nxt -byte* nxt#0 -byte* nxt#1 -byte* nxt#10 -byte* nxt#11 -byte* nxt#12 -byte* nxt#13 -byte* nxt#14 -byte* nxt#15 -byte* nxt#16 -byte* nxt#17 -byte* nxt#2 -byte* nxt#3 -byte* nxt#4 -byte* nxt#5 -byte* nxt#6 -byte* nxt#7 -byte* nxt#8 -byte* nxt#9 +char main::$0 +bool main::$1 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char next_char() +bool next_char::$0 +bool next_char::$1 +char next_char::c +char next_char::c#0 +char next_char::c#1 +char next_char::c#2 +char next_char::return +char next_char::return#0 +char next_char::return#1 +char next_char::return#2 +char next_char::return#3 +char next_char::return#4 +char *nxt +char *nxt#0 +char *nxt#1 +char *nxt#10 +char *nxt#11 +char *nxt#12 +char *nxt#13 +char *nxt#14 +char *nxt#15 +char *nxt#16 +char *nxt#17 +char *nxt#2 +char *nxt#3 +char *nxt#4 +char *nxt#5 +char *nxt#6 +char *nxt#7 +char *nxt#8 +char *nxt#9 Adding number conversion cast (unumber) 0 in next_char::$0 = next_char::c#0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [18] next_char::$1 = next_char::c#0 != 0 from [17] next_char::$0 = next_char::c#0 == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -163,7 +163,7 @@ Adding number conversion cast (unumber) 0 in [6] if(main::i#1!=0) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings nxt#3 @@ -198,7 +198,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [1] nxt#15 = phi( main/TEXT, main::@2/nxt#12 ) - [2] call next_char + [2] call next_char [3] next_char::return#0 = next_char::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -211,7 +211,7 @@ main::@return: scope:[main] from main::@2 [8] return to:@return -byte next_char() +char next_char() next_char: scope:[next_char] from main::@1 [9] next_char::c#0 = *nxt#15 [10] if(next_char::c#0!=0) goto next_char::@1 @@ -231,21 +231,21 @@ next_char::@return: scope:[next_char] from next_char::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.6000000000000005 -byte next_char() -byte next_char::c -byte next_char::c#0 151.5 -byte next_char::c#1 202.0 -byte next_char::return -byte next_char::return#0 22.0 -byte next_char::return#1 53.25 -byte* nxt -byte* nxt#11 202.0 -byte* nxt#12 14.0 -byte* nxt#15 71.0 +char main::$0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.6000000000000005 +char next_char() +char next_char::c +char next_char::c#0 // 151.5 +char next_char::c#1 // 202.0 +char next_char::return +char next_char::return#0 // 22.0 +char next_char::return#1 // 53.25 +char *nxt +char *nxt#11 // 202.0 +char *nxt#12 // 14.0 +char *nxt#15 // 71.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -323,7 +323,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call next_char + // [2] call next_char jsr next_char // [3] next_char::return#0 = next_char::return#1 jmp __b2 @@ -417,24 +417,24 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* TEXT = "cml " +__constant char *TEXT = "cml " void main() -byte~ main::$0 reg byte a 22.0 -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 6.6000000000000005 -byte next_char() -byte next_char::c -byte next_char::c#0 reg byte x 151.5 -byte next_char::c#1 reg byte x 202.0 -byte next_char::return -byte next_char::return#0 reg byte x 22.0 -byte next_char::return#1 reg byte x 53.25 -byte* nxt -byte* nxt#11 nxt zp[2]:3 202.0 -byte* nxt#12 nxt zp[2]:3 14.0 -byte* nxt#15 nxt zp[2]:3 71.0 +char main::$0 // reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 6.6000000000000005 +char next_char() +char next_char::c +char next_char::c#0 // reg byte x 151.5 +char next_char::c#1 // reg byte x 202.0 +char next_char::return +char next_char::return#0 // reg byte x 22.0 +char next_char::return#1 // reg byte x 53.25 +char *nxt +char *nxt#11 // nxt zp[2]:3 202.0 +char *nxt#12 // nxt zp[2]:3 14.0 +char *nxt#15 // nxt zp[2]:3 71.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ nxt#11 nxt#15 nxt#12 ] @@ -479,7 +479,7 @@ main: { // main::@1 __b1: // next_char() - // [2] call next_char + // [2] call next_char jsr next_char // [3] next_char::return#0 = next_char::return#1 // main::@2 diff --git a/src/test/ref/scrollbig-clobber.sym b/src/test/ref/scrollbig-clobber.sym index 794b025ef..5deac548d 100644 --- a/src/test/ref/scrollbig-clobber.sym +++ b/src/test/ref/scrollbig-clobber.sym @@ -1,21 +1,21 @@ -constant byte* TEXT = "cml " +__constant char *TEXT = "cml " void main() -byte~ main::$0 reg byte a 22.0 -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 6.6000000000000005 -byte next_char() -byte next_char::c -byte next_char::c#0 reg byte x 151.5 -byte next_char::c#1 reg byte x 202.0 -byte next_char::return -byte next_char::return#0 reg byte x 22.0 -byte next_char::return#1 reg byte x 53.25 -byte* nxt -byte* nxt#11 nxt zp[2]:3 202.0 -byte* nxt#12 nxt zp[2]:3 14.0 -byte* nxt#15 nxt zp[2]:3 71.0 +char main::$0 // reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 6.6000000000000005 +char next_char() +char next_char::c +char next_char::c#0 // reg byte x 151.5 +char next_char::c#1 // reg byte x 202.0 +char next_char::return +char next_char::return#0 // reg byte x 22.0 +char next_char::return#1 // reg byte x 53.25 +char *nxt +char *nxt#11 // nxt zp[2]:3 202.0 +char *nxt#12 // nxt zp[2]:3 14.0 +char *nxt#15 // nxt zp[2]:3 71.0 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ nxt#11 nxt#15 nxt#12 ] diff --git a/src/test/ref/semi-struct-1.asm b/src/test/ref/semi-struct-1.asm index 26331b8b9..41531707e 100644 --- a/src/test/ref/semi-struct-1.asm +++ b/src/test/ref/semi-struct-1.asm @@ -138,7 +138,7 @@ print_cls: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -161,7 +161,7 @@ print_uchar: { rts } // Print a zero-terminated string -// print_str(byte* zp(3) str) +// void print_str(__zp(3) char *str) print_str: { .label str = 3 lda #> 4 [42] print_char::ch#1 = print_hextab[print_uchar::$0] - [43] call print_char + [43] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [44] print_uchar::$2 = print_uchar::b#2 & $f [45] print_char::ch#2 = print_hextab[print_uchar::$2] - [46] call print_char + [46] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [47] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_points::@4 [48] phi() to:print_str::@1 @@ -130,7 +130,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [52] print_char::ch#0 = *print_str::str#2 - [53] call print_char + [53] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [54] print_str::str#0 = ++ print_str::str#2 @@ -149,12 +149,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [59] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [60] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [61] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [61] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [62] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -165,7 +165,7 @@ memset::@2: scope:[memset] from memset::@1 [65] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [66] print_char_cursor#29 = phi( print_str::@2/print_char_cursor#30, print_uchar/print_char_cursor#45, print_uchar::@1/print_char_cursor#30 ) [66] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) diff --git a/src/test/ref/semi-struct-1.log b/src/test/ref/semi-struct-1.log index e8be0c00b..a9be4512e 100644 --- a/src/test/ref/semi-struct-1.log +++ b/src/test/ref/semi-struct-1.log @@ -4,14 +4,14 @@ Inlined call init_points::$2 = call pointYpos(init_points::point) Inlined call print_points::point = call getPoint(print_points::i) Inlined call print_points::$2 = call pointXpos(print_points::point) Inlined call print_points::$5 = call pointYpos(print_points::point) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement init_points::$0 Eliminating unused variable with no statement print_points::$1 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_points::@6 print_char_cursor#51 = phi( print_points::@6/print_char_cursor#14 ) print_str::str#5 = phi( print_points::@6/print_str::str#1 ) @@ -26,7 +26,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#42 = phi( print_str::@1/print_char_cursor#43 ) print_str::str#3 = phi( print_str::@1/print_str::str#2 ) print_char::ch#0 = *print_str::str#3 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#4 = phi( print_str::@2/print_str::str#3 ) @@ -65,13 +65,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_points::@3 print_points::@4 print_char_cursor#45 = phi( print_points::@3/print_char_cursor#48, print_points::@4/print_char_cursor#49 ) print_uchar::b#2 = phi( print_points::@3/print_uchar::b#0, print_points::@4/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#1 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -79,7 +79,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#4 = print_char_cursor#26 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#2 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#27 = phi( print_uchar::@1/print_char_cursor#8 ) @@ -91,7 +91,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_char_cursor#29 = phi( print_str::@2/print_char_cursor#42, print_uchar/print_char_cursor#45, print_uchar::@1/print_char_cursor#4 ) print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -107,10 +107,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from print_points print_screen#2 = phi( print_points/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -126,7 +126,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -143,9 +143,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -174,13 +174,13 @@ main: scope:[main] from __start::@1 print_screen#9 = phi( __start::@1/print_screen#8 ) print_char_cursor#52 = phi( __start::@1/print_char_cursor#50 ) print_line_cursor#28 = phi( __start::@1/print_line_cursor#27 ) - call init_points + call init_points to:main::@1 main::@1: scope:[main] from main print_screen#7 = phi( main/print_screen#9 ) print_char_cursor#46 = phi( main/print_char_cursor#52 ) print_line_cursor#24 = phi( main/print_line_cursor#28 ) - call print_points + call print_points to:main::@2 main::@2: scope:[main] from main::@1 print_char_cursor#32 = phi( main::@1/print_char_cursor#18 ) @@ -233,7 +233,7 @@ init_points::pointXpos1: scope:[init_points] from init_points::@2 init_points::pos#7 = phi( init_points::@2/init_points::pos#9 ) init_points::pointXpos1_point#1 = phi( init_points::@2/init_points::pointXpos1_point#0 ) init_points::pointXpos1_$0 = init_points::pointXpos1_point#1 + 0 - init_points::pointXpos1_return#0 = (byte*)init_points::pointXpos1_$0 + init_points::pointXpos1_return#0 = (char *)init_points::pointXpos1_$0 to:init_points::pointXpos1_@return init_points::pointXpos1_@return: scope:[init_points] from init_points::pointXpos1 init_points::i#7 = phi( init_points::pointXpos1/init_points::i#8 ) @@ -257,7 +257,7 @@ init_points::pointYpos1: scope:[init_points] from init_points::@3 init_points::pos#8 = phi( init_points::@3/init_points::pos#1 ) init_points::pointYpos1_point#1 = phi( init_points::@3/init_points::pointYpos1_point#0 ) init_points::pointYpos1_$0 = init_points::pointYpos1_point#1 + 1 - init_points::pointYpos1_return#0 = (byte*)init_points::pointYpos1_$0 + init_points::pointYpos1_return#0 = (char *)init_points::pointYpos1_$0 to:init_points::pointYpos1_@return init_points::pointYpos1_@return: scope:[init_points] from init_points::pointYpos1 init_points::i#4 = phi( init_points::pointYpos1/init_points::i#5 ) @@ -285,7 +285,7 @@ print_points: scope:[print_points] from main::@1 print_char_cursor#47 = phi( main::@1/print_char_cursor#46 ) print_line_cursor#25 = phi( main::@1/print_line_cursor#24 ) print_screen#5 = phi( main::@1/print_screen#7 ) - call print_cls + call print_cls to:print_points::@5 print_points::@5: scope:[print_points] from print_points print_char_cursor#34 = phi( print_points/print_char_cursor#10 ) @@ -331,7 +331,7 @@ print_points::pointXpos1: scope:[print_points] from print_points::@2 print_char_cursor#55 = phi( print_points::@2/print_char_cursor#57 ) print_points::pointXpos1_point#1 = phi( print_points::@2/print_points::pointXpos1_point#0 ) print_points::pointXpos1_$0 = print_points::pointXpos1_point#1 + 0 - print_points::pointXpos1_return#0 = (byte*)print_points::pointXpos1_$0 + print_points::pointXpos1_return#0 = (char *)print_points::pointXpos1_$0 to:print_points::pointXpos1_@return print_points::pointXpos1_@return: scope:[print_points] from print_points::pointXpos1 print_points::i#11 = phi( print_points::pointXpos1/print_points::i#12 ) @@ -349,7 +349,7 @@ print_points::@3: scope:[print_points] from print_points::pointXpos1_@return print_points::pointXpos1_return#3 = phi( print_points::pointXpos1_@return/print_points::pointXpos1_return#1 ) print_points::$2 = print_points::pointXpos1_return#3 print_uchar::b#0 = *print_points::$2 - call print_uchar + call print_uchar to:print_points::@6 print_points::@6: scope:[print_points] from print_points::@3 print_points::i#9 = phi( print_points::@3/print_points::i#10 ) @@ -358,7 +358,7 @@ print_points::@6: scope:[print_points] from print_points::@3 print_char_cursor#35 = phi( print_points::@3/print_char_cursor#6 ) print_char_cursor#14 = print_char_cursor#35 print_str::str#1 = print_points::str - call print_str + call print_str to:print_points::@7 print_points::@7: scope:[print_points] from print_points::@6 print_points::i#8 = phi( print_points::@6/print_points::i#9 ) @@ -374,7 +374,7 @@ print_points::pointYpos1: scope:[print_points] from print_points::@7 print_char_cursor#56 = phi( print_points::@7/print_char_cursor#15 ) print_points::pointYpos1_point#1 = phi( print_points::@7/print_points::pointYpos1_point#0 ) print_points::pointYpos1_$0 = print_points::pointYpos1_point#1 + 1 - print_points::pointYpos1_return#0 = (byte*)print_points::pointYpos1_$0 + print_points::pointYpos1_return#0 = (char *)print_points::pointYpos1_$0 to:print_points::pointYpos1_@return print_points::pointYpos1_@return: scope:[print_points] from print_points::pointYpos1 print_points::i#6 = phi( print_points::pointYpos1/print_points::i#7 ) @@ -390,14 +390,14 @@ print_points::@4: scope:[print_points] from print_points::pointYpos1_@return print_points::pointYpos1_return#3 = phi( print_points::pointYpos1_@return/print_points::pointYpos1_return#1 ) print_points::$5 = print_points::pointYpos1_return#3 print_uchar::b#1 = *print_points::$5 - call print_uchar + call print_uchar to:print_points::@8 print_points::@8: scope:[print_points] from print_points::@4 print_points::i#4 = phi( print_points::@4/print_points::i#5 ) print_line_cursor#26 = phi( print_points::@4/print_line_cursor#29 ) print_char_cursor#37 = phi( print_points::@4/print_char_cursor#6 ) print_char_cursor#16 = print_char_cursor#37 - call print_ln + call print_ln to:print_points::@9 print_points::@9: scope:[print_points] from print_points::@8 print_points::i#3 = phi( print_points::@8/print_points::i#4 ) @@ -421,7 +421,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#9 = print_screen#0 print_char_cursor#19 = print_line_cursor#9 to:__start::@1 @@ -429,7 +429,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#8 = phi( __start::__init1/print_screen#0 ) print_char_cursor#50 = phi( __start::__init1/print_char_cursor#19 ) print_line_cursor#27 = phi( __start::__init1/print_line_cursor#9 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#8 ) @@ -449,315 +449,315 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte NUM_POINTS = 4 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte SIZEOF_POINT = 2 +__constant const char NUM_POINTS = 4 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char SIZEOF_POINT = 2 void __start() void init_points() -byte*~ init_points::$1 -byte*~ init_points::$2 -bool~ init_points::$3 -byte~ init_points::getPoint1_$0 -byte*~ init_points::getPoint1_$1 -byte init_points::getPoint1_idx -byte init_points::getPoint1_idx#0 -byte init_points::getPoint1_idx#1 -byte* init_points::getPoint1_return -byte* init_points::getPoint1_return#0 -byte* init_points::getPoint1_return#1 -byte* init_points::getPoint1_return#2 -byte* init_points::getPoint1_return#3 -byte init_points::i -byte init_points::i#0 -byte init_points::i#1 -byte init_points::i#10 -byte init_points::i#11 -byte init_points::i#2 -byte init_points::i#3 -byte init_points::i#4 -byte init_points::i#5 -byte init_points::i#6 -byte init_points::i#7 -byte init_points::i#8 -byte init_points::i#9 -byte* init_points::point -byte* init_points::point#0 -byte* init_points::point#1 -byte* init_points::point#2 -byte* init_points::point#3 -byte*~ init_points::pointXpos1_$0 -byte* init_points::pointXpos1_point -byte* init_points::pointXpos1_point#0 -byte* init_points::pointXpos1_point#1 -byte* init_points::pointXpos1_return -byte* init_points::pointXpos1_return#0 -byte* init_points::pointXpos1_return#1 -byte* init_points::pointXpos1_return#2 -byte* init_points::pointXpos1_return#3 -byte*~ init_points::pointYpos1_$0 -byte* init_points::pointYpos1_point -byte* init_points::pointYpos1_point#0 -byte* init_points::pointYpos1_point#1 -byte* init_points::pointYpos1_return -byte* init_points::pointYpos1_return#0 -byte* init_points::pointYpos1_return#1 -byte* init_points::pointYpos1_return#2 -byte* init_points::pointYpos1_return#3 -byte init_points::pos -byte init_points::pos#0 -byte init_points::pos#1 -byte init_points::pos#10 -byte init_points::pos#11 -byte init_points::pos#12 -byte init_points::pos#2 -byte init_points::pos#3 -byte init_points::pos#4 -byte init_points::pos#5 -byte init_points::pos#6 -byte init_points::pos#7 -byte init_points::pos#8 -byte init_points::pos#9 +char *init_points::$1 +char *init_points::$2 +bool init_points::$3 +char init_points::getPoint1_$0 +char *init_points::getPoint1_$1 +char init_points::getPoint1_idx +char init_points::getPoint1_idx#0 +char init_points::getPoint1_idx#1 +char *init_points::getPoint1_return +char *init_points::getPoint1_return#0 +char *init_points::getPoint1_return#1 +char *init_points::getPoint1_return#2 +char *init_points::getPoint1_return#3 +char init_points::i +char init_points::i#0 +char init_points::i#1 +char init_points::i#10 +char init_points::i#11 +char init_points::i#2 +char init_points::i#3 +char init_points::i#4 +char init_points::i#5 +char init_points::i#6 +char init_points::i#7 +char init_points::i#8 +char init_points::i#9 +char *init_points::point +char *init_points::point#0 +char *init_points::point#1 +char *init_points::point#2 +char *init_points::point#3 +char *init_points::pointXpos1_$0 +char *init_points::pointXpos1_point +char *init_points::pointXpos1_point#0 +char *init_points::pointXpos1_point#1 +char *init_points::pointXpos1_return +char *init_points::pointXpos1_return#0 +char *init_points::pointXpos1_return#1 +char *init_points::pointXpos1_return#2 +char *init_points::pointXpos1_return#3 +char *init_points::pointYpos1_$0 +char *init_points::pointYpos1_point +char *init_points::pointYpos1_point#0 +char *init_points::pointYpos1_point#1 +char *init_points::pointYpos1_return +char *init_points::pointYpos1_return#0 +char *init_points::pointYpos1_return#1 +char *init_points::pointYpos1_return#2 +char *init_points::pointYpos1_return#3 +char init_points::pos +char init_points::pos#0 +char init_points::pos#1 +char init_points::pos#10 +char init_points::pos#11 +char init_points::pos#12 +char init_points::pos#2 +char init_points::pos#3 +char init_points::pos#4 +char init_points::pos#5 +char init_points::pos#6 +char init_points::pos#7 +char init_points::pos#8 +char init_points::pos#9 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -constant byte* points[NUM_POINTS*SIZEOF_POINT] = { fill( NUM_POINTS*SIZEOF_POINT, 0) } -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +__constant char points[NUM_POINTS*SIZEOF_POINT] = { fill( NUM_POINTS*SIZEOF_POINT, 0) } +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#37 -byte* print_line_cursor#38 -byte* print_line_cursor#39 -byte* print_line_cursor#4 -byte* print_line_cursor#40 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#37 +char *print_line_cursor#38 +char *print_line_cursor#39 +char *print_line_cursor#4 +char *print_line_cursor#40 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 +char *print_ln::$0 +bool print_ln::$1 void print_points() -byte*~ print_points::$2 -byte*~ print_points::$5 -bool~ print_points::$8 -byte~ print_points::getPoint1_$0 -byte*~ print_points::getPoint1_$1 -byte print_points::getPoint1_idx -byte print_points::getPoint1_idx#0 -byte print_points::getPoint1_idx#1 -byte* print_points::getPoint1_return -byte* print_points::getPoint1_return#0 -byte* print_points::getPoint1_return#1 -byte* print_points::getPoint1_return#2 -byte* print_points::getPoint1_return#3 -byte print_points::i -byte print_points::i#0 -byte print_points::i#1 -byte print_points::i#10 -byte print_points::i#11 -byte print_points::i#12 -byte print_points::i#13 -byte print_points::i#14 -byte print_points::i#15 -byte print_points::i#2 -byte print_points::i#3 -byte print_points::i#4 -byte print_points::i#5 -byte print_points::i#6 -byte print_points::i#7 -byte print_points::i#8 -byte print_points::i#9 -byte* print_points::point -byte* print_points::point#0 -byte* print_points::point#1 -byte* print_points::point#2 -byte* print_points::point#3 -byte* print_points::point#4 -byte* print_points::point#5 -byte*~ print_points::pointXpos1_$0 -byte* print_points::pointXpos1_point -byte* print_points::pointXpos1_point#0 -byte* print_points::pointXpos1_point#1 -byte* print_points::pointXpos1_return -byte* print_points::pointXpos1_return#0 -byte* print_points::pointXpos1_return#1 -byte* print_points::pointXpos1_return#2 -byte* print_points::pointXpos1_return#3 -byte*~ print_points::pointYpos1_$0 -byte* print_points::pointYpos1_point -byte* print_points::pointYpos1_point#0 -byte* print_points::pointYpos1_point#1 -byte* print_points::pointYpos1_return -byte* print_points::pointYpos1_return#0 -byte* print_points::pointYpos1_return#1 -byte* print_points::pointYpos1_return#2 -byte* print_points::pointYpos1_return#3 -constant byte* print_points::str[2] = " " -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -byte* print_screen#8 -byte* print_screen#9 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 +char *print_points::$2 +char *print_points::$5 +bool print_points::$8 +char print_points::getPoint1_$0 +char *print_points::getPoint1_$1 +char print_points::getPoint1_idx +char print_points::getPoint1_idx#0 +char print_points::getPoint1_idx#1 +char *print_points::getPoint1_return +char *print_points::getPoint1_return#0 +char *print_points::getPoint1_return#1 +char *print_points::getPoint1_return#2 +char *print_points::getPoint1_return#3 +char print_points::i +char print_points::i#0 +char print_points::i#1 +char print_points::i#10 +char print_points::i#11 +char print_points::i#12 +char print_points::i#13 +char print_points::i#14 +char print_points::i#15 +char print_points::i#2 +char print_points::i#3 +char print_points::i#4 +char print_points::i#5 +char print_points::i#6 +char print_points::i#7 +char print_points::i#8 +char print_points::i#9 +char *print_points::point +char *print_points::point#0 +char *print_points::point#1 +char *print_points::point#2 +char *print_points::point#3 +char *print_points::point#4 +char *print_points::point#5 +char *print_points::pointXpos1_$0 +char *print_points::pointXpos1_point +char *print_points::pointXpos1_point#0 +char *print_points::pointXpos1_point#1 +char *print_points::pointXpos1_return +char *print_points::pointXpos1_return#0 +char *print_points::pointXpos1_return#1 +char *print_points::pointXpos1_return#2 +char *print_points::pointXpos1_return#3 +char *print_points::pointYpos1_$0 +char *print_points::pointYpos1_point +char *print_points::pointYpos1_point#0 +char *print_points::pointYpos1_point#1 +char *print_points::pointYpos1_return +char *print_points::pointYpos1_return#0 +char *print_points::pointYpos1_return#1 +char *print_points::pointYpos1_return#2 +char *print_points::pointYpos1_return#3 +__constant char print_points::str[2] = " " +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +char *print_screen#8 +char *print_screen#9 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#12 + $28 @@ -776,7 +776,7 @@ Adding number conversion cast (unumber) 1 in print_points::pointYpos1_$0 = print Adding number conversion cast (unumber) 1 in print_points::i#1 = print_points::i#3 + rangenext(0,NUM_POINTS-1) Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast $28 @@ -796,24 +796,24 @@ Simplifying constant integer cast print_points::pointXpos1_$0 Simplifying constant integer cast 1 Simplifying constant integer cast print_points::pointYpos1_$0 Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [60] memset::$1 = memset::num#1 <= 0 from [59] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#2 = print_str::str#3 print_str::str#4 @@ -910,13 +910,13 @@ Constant init_points::pos#0 = $a Constant init_points::i#0 = 0 Constant print_points::i#0 = 0 Constant print_str::str#1 = print_points::str -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [38] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -957,8 +957,8 @@ Simplifying constant integer cast 1 Simplifying constant integer cast NUM_POINTS-1+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [24] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -976,16 +976,16 @@ Inlining constant with var siblings init_points::pos#0 Inlining constant with var siblings init_points::i#0 Inlining constant with var siblings print_points::i#0 Constant inlined init_points::i#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = print_points::str Constant inlined print_points::i#0 = 0 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined init_points::pos#0 = $a Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting init_points::@5(between init_points::@4 and init_points::@1) @@ -1095,11 +1095,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init_points + [1] call init_points to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_points + [3] call print_points to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -1140,7 +1140,7 @@ init_points::@return: scope:[init_points] from init_points::@3 void print_points() print_points: scope:[print_points] from main::@1 [18] phi() - [19] call print_cls + [19] call print_cls to:print_points::@1 print_points::@1: scope:[print_points] from print_points print_points::@7 [20] print_line_cursor#26 = phi( print_points/print_screen#0, print_points::@7/print_line_cursor#0 ) @@ -1156,22 +1156,22 @@ print_points::pointXpos1: scope:[print_points] from print_points::getPoint1 to:print_points::@2 print_points::@2: scope:[print_points] from print_points::pointXpos1 [24] print_uchar::b#0 = points[print_points::getPoint1_$0] - [25] call print_uchar + [25] call print_uchar to:print_points::@4 print_points::@4: scope:[print_points] from print_points::@2 [26] phi() - [27] call print_str + [27] call print_str to:print_points::pointYpos1 print_points::pointYpos1: scope:[print_points] from print_points::@4 [28] phi() to:print_points::@3 print_points::@3: scope:[print_points] from print_points::pointYpos1 [29] print_uchar::b#1 = print_points::point#0[1] - [30] call print_uchar + [30] call print_uchar to:print_points::@5 print_points::@5: scope:[print_points] from print_points::@3 [31] phi() - [32] call print_ln + [32] call print_ln to:print_points::@6 print_points::@6: scope:[print_points] from print_points::@5 [33] print_points::i#1 = ++ print_points::i#10 @@ -1187,30 +1187,30 @@ print_points::@7: scope:[print_points] from print_points::@6 void print_cls() print_cls: scope:[print_cls] from print_points [37] phi() - [38] call memset + [38] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [39] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_points::@2 print_points::@3 [40] print_char_cursor#45 = phi( print_points::@2/print_char_cursor#48, print_points::@3/print_char_cursor#30 ) [40] print_uchar::b#2 = phi( print_points::@2/print_uchar::b#0, print_points::@3/print_uchar::b#1 ) [41] print_uchar::$0 = print_uchar::b#2 >> 4 [42] print_char::ch#1 = print_hextab[print_uchar::$0] - [43] call print_char + [43] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [44] print_uchar::$2 = print_uchar::b#2 & $f [45] print_char::ch#2 = print_hextab[print_uchar::$2] - [46] call print_char + [46] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [47] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_points::@4 [48] phi() to:print_str::@1 @@ -1223,7 +1223,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [52] print_char::ch#0 = *print_str::str#2 - [53] call print_char + [53] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [54] print_str::str#0 = ++ print_str::str#2 @@ -1242,12 +1242,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [59] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [60] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [61] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [61] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [62] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1258,7 +1258,7 @@ memset::@2: scope:[memset] from memset::@1 [65] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [66] print_char_cursor#29 = phi( print_str::@2/print_char_cursor#30, print_uchar/print_char_cursor#45, print_uchar::@1/print_char_cursor#30 ) [66] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -1272,75 +1272,75 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void init_points() -byte~ init_points::getPoint1_$0 101.0 -byte init_points::getPoint1_idx -byte* init_points::getPoint1_return -byte* init_points::getPoint1_return#0 40.4 -byte init_points::i -byte init_points::i#1 151.5 -byte init_points::i#10 33.666666666666664 -byte* init_points::point -byte* init_points::pointXpos1_point -byte* init_points::pointXpos1_return -byte* init_points::pointYpos1_point -byte* init_points::pointYpos1_return -byte init_points::pos -byte init_points::pos#1 101.0 -byte init_points::pos#10 60.599999999999994 -byte init_points::pos#2 67.33333333333333 +char init_points::getPoint1_$0 // 101.0 +char init_points::getPoint1_idx +char *init_points::getPoint1_return +char *init_points::getPoint1_return#0 // 40.4 +char init_points::i +char init_points::i#1 // 151.5 +char init_points::i#10 // 33.666666666666664 +char *init_points::point +char *init_points::pointXpos1_point +char *init_points::pointXpos1_return +char *init_points::pointYpos1_point +char *init_points::pointYpos1_return +char init_points::pos +char init_points::pos#1 // 101.0 +char init_points::pos#10 // 60.599999999999994 +char init_points::pos#2 // 67.33333333333333 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 20002.0 -byte* memset::dst#2 13334.666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 200002.0 -byte print_char::ch#1 2002.0 -byte print_char::ch#2 2002.0 -byte print_char::ch#3 1102004.0 -byte* print_char_cursor -byte* print_char_cursor#29 1051002.5 -byte* print_char_cursor#30 48044.2 -byte* print_char_cursor#45 401.0 -byte* print_char_cursor#48 40.4 -byte* print_char_cursor#66 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 20002.0 +char *memset::dst#2 // 13334.666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 200002.0 +char print_char::ch#1 // 2002.0 +char print_char::ch#2 // 2002.0 +char print_char::ch#3 // 1102004.0 +char *print_char_cursor +char *print_char_cursor#29 // 1051002.5 +char *print_char_cursor#30 // 48044.2 +char *print_char_cursor#45 // 401.0 +char *print_char_cursor#48 // 40.4 +char *print_char_cursor#66 // 202.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 42886.42857142857 -byte* print_line_cursor#12 201003.0 -byte* print_line_cursor#26 84.76923076923077 +char *print_line_cursor +char *print_line_cursor#0 // 42886.42857142857 +char *print_line_cursor#12 // 201003.0 +char *print_line_cursor#26 // 84.76923076923077 void print_ln() void print_points() -byte~ print_points::getPoint1_$0 101.0 -byte print_points::getPoint1_idx -byte* print_points::getPoint1_return -byte print_points::i -byte print_points::i#1 101.0 -byte print_points::i#10 23.307692307692307 -byte* print_points::point -byte* print_points::point#0 28.857142857142858 -byte* print_points::pointXpos1_point -byte* print_points::pointXpos1_return -byte* print_points::pointYpos1_point -byte* print_points::pointYpos1_return -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 200002.0 -byte* print_str::str#2 100001.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 2002.0 -byte~ print_uchar::$2 2002.0 -byte print_uchar::b -byte print_uchar::b#0 202.0 -byte print_uchar::b#1 202.0 -byte print_uchar::b#2 551.0 +char print_points::getPoint1_$0 // 101.0 +char print_points::getPoint1_idx +char *print_points::getPoint1_return +char print_points::i +char print_points::i#1 // 101.0 +char print_points::i#10 // 23.307692307692307 +char *print_points::point +char *print_points::point#0 // 28.857142857142858 +char *print_points::pointXpos1_point +char *print_points::pointXpos1_return +char *print_points::pointYpos1_point +char *print_points::pointYpos1_return +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 200002.0 +char *print_str::str#2 // 100001.0 +void print_uchar(char b) +char print_uchar::$0 // 2002.0 +char print_uchar::$2 // 2002.0 +char print_uchar::b +char print_uchar::b#0 // 202.0 +char print_uchar::b#1 // 202.0 +char print_uchar::b#2 // 551.0 Initial phi equivalence classes [ init_points::i#10 init_points::i#1 ] @@ -1523,7 +1523,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main // Initialize some points and print them main: { - // [1] call init_points + // [1] call init_points // [5] phi from main to init_points [phi:main->init_points] init_points_from_main: jsr init_points @@ -1532,7 +1532,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_points + // [3] call print_points // [18] phi from main::@1 to print_points [phi:main::@1->print_points] print_points_from___b1: jsr print_points @@ -1623,7 +1623,7 @@ init_points: { print_points: { .label point = 9 .label i = 2 - // [19] call print_cls + // [19] call print_cls // [37] phi from print_points to print_cls [phi:print_points->print_cls] print_cls_from_print_points: jsr print_cls @@ -1670,7 +1670,7 @@ print_points: { __b2: // [24] print_uchar::b#0 = points[print_points::getPoint1_$0] -- vbuxx=pbuc1_derefidx_vbuyy ldx points,y - // [25] call print_uchar + // [25] call print_uchar // [40] phi from print_points::@2 to print_uchar [phi:print_points::@2->print_uchar] print_uchar_from___b2: // [40] phi print_char_cursor#45 = print_char_cursor#48 [phi:print_points::@2->print_uchar#0] -- register_copy @@ -1681,7 +1681,7 @@ print_points: { jmp __b4 // print_points::@4 __b4: - // [27] call print_str + // [27] call print_str // [48] phi from print_points::@4 to print_str [phi:print_points::@4->print_str] print_str_from___b4: jsr print_str @@ -1697,7 +1697,7 @@ print_points: { ldy #1 lda (point),y tax - // [30] call print_uchar + // [30] call print_uchar // [40] phi from print_points::@3 to print_uchar [phi:print_points::@3->print_uchar] print_uchar_from___b3: // [40] phi print_char_cursor#45 = print_char_cursor#30 [phi:print_points::@3->print_uchar#0] -- register_copy @@ -1708,7 +1708,7 @@ print_points: { jmp __b5 // print_points::@5 __b5: - // [32] call print_ln + // [32] call print_ln // [55] phi from print_points::@5 to print_ln [phi:print_points::@5->print_ln] print_ln_from___b5: jsr print_ln @@ -1747,7 +1747,7 @@ print_points: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [38] call memset + // [38] call memset // [60] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1759,7 +1759,7 @@ print_cls: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [41] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1770,7 +1770,7 @@ print_uchar: { // [42] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [43] call print_char + // [43] call print_char // Table of hexadecimal digits // [66] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1785,7 +1785,7 @@ print_uchar: { axs #0 // [45] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [46] call print_char + // [46] call print_char // [66] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [66] phi print_char_cursor#29 = print_char_cursor#30 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1799,7 +1799,7 @@ print_uchar: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(3) str) +// void print_str(__zp(3) char *str) print_str: { .label str = 3 // [49] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -1827,7 +1827,7 @@ print_str: { // [52] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [53] call print_char + // [53] call print_char // [66] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [66] phi print_char_cursor#29 = print_char_cursor#30 [phi:print_str::@2->print_char#0] -- register_copy @@ -1881,6 +1881,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1889,7 +1890,7 @@ memset: { .label dst = 3 // [61] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [61] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [61] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1927,7 +1928,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [67] *print_char_cursor#29 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -2043,90 +2044,90 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte NUM_POINTS = 4 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte SIZEOF_POINT = 2 +__constant const char NUM_POINTS = 4 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char SIZEOF_POINT = 2 void init_points() -byte~ init_points::getPoint1_$0 reg byte y 101.0 -byte init_points::getPoint1_idx -byte* init_points::getPoint1_return -byte* init_points::getPoint1_return#0 getPoint1_return zp[2]:7 40.4 -byte init_points::i -byte init_points::i#1 reg byte x 151.5 -byte init_points::i#10 reg byte x 33.666666666666664 -byte* init_points::point -byte* init_points::pointXpos1_point -byte* init_points::pointXpos1_return -byte* init_points::pointYpos1_point -byte* init_points::pointYpos1_return -byte init_points::pos -byte init_points::pos#1 reg byte a 101.0 -byte init_points::pos#10 pos zp[1]:2 60.599999999999994 -byte init_points::pos#2 pos zp[1]:2 67.33333333333333 +char init_points::getPoint1_$0 // reg byte y 101.0 +char init_points::getPoint1_idx +char *init_points::getPoint1_return +char *init_points::getPoint1_return#0 // getPoint1_return zp[2]:7 40.4 +char init_points::i +char init_points::i#1 // reg byte x 151.5 +char init_points::i#10 // reg byte x 33.666666666666664 +char *init_points::point +char *init_points::pointXpos1_point +char *init_points::pointXpos1_return +char *init_points::pointYpos1_point +char *init_points::pointYpos1_return +char init_points::pos +char init_points::pos#1 // reg byte a 101.0 +char init_points::pos#10 // pos zp[1]:2 60.599999999999994 +char init_points::pos#2 // pos zp[1]:2 67.33333333333333 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:3 20002.0 -byte* memset::dst#2 dst zp[2]:3 13334.666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -constant byte* points[NUM_POINTS*SIZEOF_POINT] = { fill( NUM_POINTS*SIZEOF_POINT, 0) } -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 200002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#2 reg byte a 2002.0 -byte print_char::ch#3 reg byte a 1102004.0 -byte* print_char_cursor -byte* print_char_cursor#29 print_char_cursor zp[2]:5 1051002.5 -byte* print_char_cursor#30 print_char_cursor zp[2]:5 48044.2 -byte* print_char_cursor#45 print_char_cursor zp[2]:5 401.0 -byte* print_char_cursor#48 print_char_cursor zp[2]:5 40.4 -byte* print_char_cursor#66 print_char_cursor zp[2]:5 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:3 20002.0 +char *memset::dst#2 // dst zp[2]:3 13334.666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +__constant char points[NUM_POINTS*SIZEOF_POINT] = { fill( NUM_POINTS*SIZEOF_POINT, 0) } +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 200002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#2 // reg byte a 2002.0 +char print_char::ch#3 // reg byte a 1102004.0 +char *print_char_cursor +char *print_char_cursor#29 // print_char_cursor zp[2]:5 1051002.5 +char *print_char_cursor#30 // print_char_cursor zp[2]:5 48044.2 +char *print_char_cursor#45 // print_char_cursor zp[2]:5 401.0 +char *print_char_cursor#48 // print_char_cursor zp[2]:5 40.4 +char *print_char_cursor#66 // print_char_cursor zp[2]:5 202.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 42886.42857142857 -byte* print_line_cursor#12 print_line_cursor zp[2]:7 201003.0 -byte* print_line_cursor#26 print_line_cursor zp[2]:7 84.76923076923077 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 42886.42857142857 +char *print_line_cursor#12 // print_line_cursor zp[2]:7 201003.0 +char *print_line_cursor#26 // print_line_cursor zp[2]:7 84.76923076923077 void print_ln() void print_points() -byte~ print_points::getPoint1_$0 reg byte y 101.0 -byte print_points::getPoint1_idx -byte* print_points::getPoint1_return -byte print_points::i -byte print_points::i#1 i zp[1]:2 101.0 -byte print_points::i#10 i zp[1]:2 23.307692307692307 -byte* print_points::point -byte* print_points::point#0 point zp[2]:9 28.857142857142858 -byte* print_points::pointXpos1_point -byte* print_points::pointXpos1_return -byte* print_points::pointYpos1_point -byte* print_points::pointYpos1_return -constant byte* print_points::str[2] = " " -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:3 200002.0 -byte* print_str::str#2 str zp[2]:3 100001.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 551.0 +char print_points::getPoint1_$0 // reg byte y 101.0 +char print_points::getPoint1_idx +char *print_points::getPoint1_return +char print_points::i +char print_points::i#1 // i zp[1]:2 101.0 +char print_points::i#10 // i zp[1]:2 23.307692307692307 +char *print_points::point +char *print_points::point#0 // point zp[2]:9 28.857142857142858 +char *print_points::pointXpos1_point +char *print_points::pointXpos1_return +char *print_points::pointYpos1_point +char *print_points::pointYpos1_return +__constant char print_points::str[2] = " " +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:3 200002.0 +char *print_str::str#2 // str zp[2]:3 100001.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 551.0 reg byte x [ init_points::i#10 init_points::i#1 ] zp[1]:2 [ print_points::i#10 print_points::i#1 init_points::pos#10 init_points::pos#2 ] @@ -2176,13 +2177,13 @@ Score: 10419 // Initialize some points and print them main: { // init_points() - // [1] call init_points + // [1] call init_points // [5] phi from main to init_points [phi:main->init_points] jsr init_points // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_points() - // [3] call print_points + // [3] call print_points // [18] phi from main::@1 to print_points [phi:main::@1->print_points] jsr print_points // main::@return @@ -2262,7 +2263,7 @@ print_points: { .label point = 9 .label i = 2 // print_cls() - // [19] call print_cls + // [19] call print_cls // [37] phi from print_points to print_cls [phi:print_points->print_cls] jsr print_cls // [20] phi from print_points to print_points::@1 [phi:print_points->print_points::@1] @@ -2302,7 +2303,7 @@ print_points: { // print_uchar(*pointXpos(point)) // [24] print_uchar::b#0 = points[print_points::getPoint1_$0] -- vbuxx=pbuc1_derefidx_vbuyy ldx points,y - // [25] call print_uchar + // [25] call print_uchar // [40] phi from print_points::@2 to print_uchar [phi:print_points::@2->print_uchar] // [40] phi print_char_cursor#45 = print_char_cursor#48 [phi:print_points::@2->print_uchar#0] -- register_copy // [40] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_points::@2->print_uchar#1] -- register_copy @@ -2310,7 +2311,7 @@ print_points: { // [26] phi from print_points::@2 to print_points::@4 [phi:print_points::@2->print_points::@4] // print_points::@4 // print_str(" ") - // [27] call print_str + // [27] call print_str // [48] phi from print_points::@4 to print_str [phi:print_points::@4->print_str] jsr print_str // [28] phi from print_points::@4 to print_points::pointYpos1 [phi:print_points::@4->print_points::pointYpos1] @@ -2321,7 +2322,7 @@ print_points: { ldy #1 lda (point),y tax - // [30] call print_uchar + // [30] call print_uchar // [40] phi from print_points::@3 to print_uchar [phi:print_points::@3->print_uchar] // [40] phi print_char_cursor#45 = print_char_cursor#30 [phi:print_points::@3->print_uchar#0] -- register_copy // [40] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_points::@3->print_uchar#1] -- register_copy @@ -2329,7 +2330,7 @@ print_points: { // [31] phi from print_points::@3 to print_points::@5 [phi:print_points::@3->print_points::@5] // print_points::@5 // print_ln() - // [32] call print_ln + // [32] call print_ln // [55] phi from print_points::@5 to print_ln [phi:print_points::@5->print_ln] jsr print_ln // print_points::@6 @@ -2365,7 +2366,7 @@ print_points: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [38] call memset + // [38] call memset // [60] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2375,7 +2376,7 @@ print_cls: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [41] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2388,7 +2389,7 @@ print_uchar: { // [42] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [43] call print_char + // [43] call print_char // Table of hexadecimal digits // [66] phi from print_uchar to print_char [phi:print_uchar->print_char] // [66] phi print_char_cursor#29 = print_char_cursor#45 [phi:print_uchar->print_char#0] -- register_copy @@ -2402,7 +2403,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [45] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [46] call print_char + // [46] call print_char // [66] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [66] phi print_char_cursor#29 = print_char_cursor#30 [phi:print_uchar::@1->print_char#0] -- register_copy // [66] phi print_char::ch#3 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2414,7 +2415,7 @@ print_uchar: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(3) str) +// void print_str(__zp(3) char *str) print_str: { .label str = 3 // [49] phi from print_str to print_str::@1 [phi:print_str->print_str::@1] @@ -2441,7 +2442,7 @@ print_str: { // [52] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [53] call print_char + // [53] call print_char // [66] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [66] phi print_char_cursor#29 = print_char_cursor#30 [phi:print_str::@2->print_char#0] -- register_copy // [66] phi print_char::ch#3 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -2490,6 +2491,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2497,7 +2499,7 @@ memset: { .label end = str+num .label dst = 3 // [61] phi from memset to memset::@1 [phi:memset->memset::@1] - // [61] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [61] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2535,7 +2537,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [67] *print_char_cursor#29 = print_char::ch#3 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/semi-struct-1.sym b/src/test/ref/semi-struct-1.sym index 8554eb2ca..97b13f76c 100644 --- a/src/test/ref/semi-struct-1.sym +++ b/src/test/ref/semi-struct-1.sym @@ -1,87 +1,87 @@ -constant const byte NUM_POINTS = 4 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte SIZEOF_POINT = 2 +__constant const char NUM_POINTS = 4 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char SIZEOF_POINT = 2 void init_points() -byte~ init_points::getPoint1_$0 reg byte y 101.0 -byte init_points::getPoint1_idx -byte* init_points::getPoint1_return -byte* init_points::getPoint1_return#0 getPoint1_return zp[2]:7 40.4 -byte init_points::i -byte init_points::i#1 reg byte x 151.5 -byte init_points::i#10 reg byte x 33.666666666666664 -byte* init_points::point -byte* init_points::pointXpos1_point -byte* init_points::pointXpos1_return -byte* init_points::pointYpos1_point -byte* init_points::pointYpos1_return -byte init_points::pos -byte init_points::pos#1 reg byte a 101.0 -byte init_points::pos#10 pos zp[1]:2 60.599999999999994 -byte init_points::pos#2 pos zp[1]:2 67.33333333333333 +char init_points::getPoint1_$0 // reg byte y 101.0 +char init_points::getPoint1_idx +char *init_points::getPoint1_return +char *init_points::getPoint1_return#0 // getPoint1_return zp[2]:7 40.4 +char init_points::i +char init_points::i#1 // reg byte x 151.5 +char init_points::i#10 // reg byte x 33.666666666666664 +char *init_points::point +char *init_points::pointXpos1_point +char *init_points::pointXpos1_return +char *init_points::pointYpos1_point +char *init_points::pointYpos1_return +char init_points::pos +char init_points::pos#1 // reg byte a 101.0 +char init_points::pos#10 // pos zp[1]:2 60.599999999999994 +char init_points::pos#2 // pos zp[1]:2 67.33333333333333 void main() -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:3 20002.0 -byte* memset::dst#2 dst zp[2]:3 13334.666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -constant byte* points[NUM_POINTS*SIZEOF_POINT] = { fill( NUM_POINTS*SIZEOF_POINT, 0) } -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 200002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#2 reg byte a 2002.0 -byte print_char::ch#3 reg byte a 1102004.0 -byte* print_char_cursor -byte* print_char_cursor#29 print_char_cursor zp[2]:5 1051002.5 -byte* print_char_cursor#30 print_char_cursor zp[2]:5 48044.2 -byte* print_char_cursor#45 print_char_cursor zp[2]:5 401.0 -byte* print_char_cursor#48 print_char_cursor zp[2]:5 40.4 -byte* print_char_cursor#66 print_char_cursor zp[2]:5 202.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:3 20002.0 +char *memset::dst#2 // dst zp[2]:3 13334.666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +__constant char points[NUM_POINTS*SIZEOF_POINT] = { fill( NUM_POINTS*SIZEOF_POINT, 0) } +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 200002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#2 // reg byte a 2002.0 +char print_char::ch#3 // reg byte a 1102004.0 +char *print_char_cursor +char *print_char_cursor#29 // print_char_cursor zp[2]:5 1051002.5 +char *print_char_cursor#30 // print_char_cursor zp[2]:5 48044.2 +char *print_char_cursor#45 // print_char_cursor zp[2]:5 401.0 +char *print_char_cursor#48 // print_char_cursor zp[2]:5 40.4 +char *print_char_cursor#66 // print_char_cursor zp[2]:5 202.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 42886.42857142857 -byte* print_line_cursor#12 print_line_cursor zp[2]:7 201003.0 -byte* print_line_cursor#26 print_line_cursor zp[2]:7 84.76923076923077 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 42886.42857142857 +char *print_line_cursor#12 // print_line_cursor zp[2]:7 201003.0 +char *print_line_cursor#26 // print_line_cursor zp[2]:7 84.76923076923077 void print_ln() void print_points() -byte~ print_points::getPoint1_$0 reg byte y 101.0 -byte print_points::getPoint1_idx -byte* print_points::getPoint1_return -byte print_points::i -byte print_points::i#1 i zp[1]:2 101.0 -byte print_points::i#10 i zp[1]:2 23.307692307692307 -byte* print_points::point -byte* print_points::point#0 point zp[2]:9 28.857142857142858 -byte* print_points::pointXpos1_point -byte* print_points::pointXpos1_return -byte* print_points::pointYpos1_point -byte* print_points::pointYpos1_return -constant byte* print_points::str[2] = " " -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:3 200002.0 -byte* print_str::str#2 str zp[2]:3 100001.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 551.0 +char print_points::getPoint1_$0 // reg byte y 101.0 +char print_points::getPoint1_idx +char *print_points::getPoint1_return +char print_points::i +char print_points::i#1 // i zp[1]:2 101.0 +char print_points::i#10 // i zp[1]:2 23.307692307692307 +char *print_points::point +char *print_points::point#0 // point zp[2]:9 28.857142857142858 +char *print_points::pointXpos1_point +char *print_points::pointXpos1_return +char *print_points::pointYpos1_point +char *print_points::pointYpos1_return +__constant char print_points::str[2] = " " +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:3 200002.0 +char *print_str::str#2 // str zp[2]:3 100001.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 551.0 reg byte x [ init_points::i#10 init_points::i#1 ] zp[1]:2 [ print_points::i#10 print_points::i#1 init_points::pos#10 init_points::pos#2 ] diff --git a/src/test/ref/sequence-locality-0.log b/src/test/ref/sequence-locality-0.log index 81420eb8f..45f6955f7 100644 --- a/src/test/ref/sequence-locality-0.log +++ b/src/test/ref/sequence-locality-0.log @@ -38,7 +38,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -49,38 +49,38 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +number main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 > 5 Adding number conversion cast (unumber) 5 in main::$1 = main::i#4 - 5 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#4 - (unumber)5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#4 - 5 +Inferred type updated to char in main::$1 = main::i#4 - 5 Alias main::i#2 = main::i#3 main::i#4 Alias main::idx#3 = main::idx#5 main::idx#4 Successful SSA optimization Pass2AliasElimination @@ -108,8 +108,8 @@ Simplifying constant integer cast 5+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 @@ -161,15 +161,15 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.875 -byte main::idx -byte main::idx#1 22.0 -byte main::idx#2 22.0 -byte main::idx#3 11.0 -byte main::idx#6 11.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.875 +char main::idx +char main::idx#1 // 22.0 +char main::idx#2 // 22.0 +char main::idx#3 // 11.0 +char main::idx#6 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -288,16 +288,16 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.875 -byte main::idx -byte main::idx#1 reg byte y 22.0 -byte main::idx#2 reg byte y 22.0 -byte main::idx#3 reg byte y 11.0 -byte main::idx#6 reg byte y 11.0 -constant byte* const main::screen = (byte*) 1024 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.875 +char main::idx +char main::idx#1 // reg byte y 22.0 +char main::idx#2 // reg byte y 22.0 +char main::idx#3 // reg byte y 11.0 +char main::idx#6 // reg byte y 11.0 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#3 main::idx#6 main::idx#1 main::idx#2 ] diff --git a/src/test/ref/sequence-locality-0.sym b/src/test/ref/sequence-locality-0.sym index e6cad2137..dfe611321 100644 --- a/src/test/ref/sequence-locality-0.sym +++ b/src/test/ref/sequence-locality-0.sym @@ -1,14 +1,14 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 6.875 -byte main::idx -byte main::idx#1 reg byte y 22.0 -byte main::idx#2 reg byte y 22.0 -byte main::idx#3 reg byte y 11.0 -byte main::idx#6 reg byte y 11.0 -constant byte* const main::screen = (byte*) 1024 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 6.875 +char main::idx +char main::idx#1 // reg byte y 22.0 +char main::idx#2 // reg byte y 22.0 +char main::idx#3 // reg byte y 11.0 +char main::idx#6 // reg byte y 11.0 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::idx#3 main::idx#6 main::idx#1 main::idx#2 ] diff --git a/src/test/ref/sequence-locality-1.log b/src/test/ref/sequence-locality-1.log index 1e0d4cc39..bbf2c0cdb 100644 --- a/src/test/ref/sequence-locality-1.log +++ b/src/test/ref/sequence-locality-1.log @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -47,34 +47,34 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +bool main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 > 5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [5] main::$1 = main::i#2 <= 5 from [4] main::$0 = main::i#2 > 5 Successful SSA optimization Pass2UnaryNotSimplification @@ -106,8 +106,8 @@ Simplifying constant integer cast 5+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 @@ -160,16 +160,16 @@ main::@4: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#3 9.428571428571429 -byte main::idx -byte main::idx#1 7.333333333333333 -byte main::idx#2 5.5 -byte main::j -byte main::j#1 22.0 -byte main::j#2 33.0 -byte main::j#4 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#3 // 9.428571428571429 +char main::idx +char main::idx#1 // 7.333333333333333 +char main::idx#2 // 5.5 +char main::j +char main::j#1 // 22.0 +char main::j#2 // 33.0 +char main::j#4 // 22.0 Initial phi equivalence classes [ main::i#3 main::i#1 ] @@ -288,17 +288,17 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#3 reg byte y 9.428571428571429 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 5.5 -byte main::j -byte main::j#1 reg byte a 22.0 -byte main::j#2 reg byte a 33.0 -byte main::j#4 reg byte a 22.0 -constant byte* const main::screen = (byte*) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#3 // reg byte y 9.428571428571429 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 5.5 +char main::j +char main::j#1 // reg byte a 22.0 +char main::j#2 // reg byte a 33.0 +char main::j#4 // reg byte a 22.0 +__constant char * const main::screen = (char *) 1024 reg byte y [ main::i#3 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/sequence-locality-1.sym b/src/test/ref/sequence-locality-1.sym index 2d2d21440..8cd5658da 100644 --- a/src/test/ref/sequence-locality-1.sym +++ b/src/test/ref/sequence-locality-1.sym @@ -1,15 +1,15 @@ void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#3 reg byte y 9.428571428571429 -byte main::idx -byte main::idx#1 reg byte x 7.333333333333333 -byte main::idx#2 reg byte x 5.5 -byte main::j -byte main::j#1 reg byte a 22.0 -byte main::j#2 reg byte a 33.0 -byte main::j#4 reg byte a 22.0 -constant byte* const main::screen = (byte*) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#3 // reg byte y 9.428571428571429 +char main::idx +char main::idx#1 // reg byte x 7.333333333333333 +char main::idx#2 // reg byte x 5.5 +char main::j +char main::j#1 // reg byte a 22.0 +char main::j#2 // reg byte a 33.0 +char main::j#4 // reg byte a 22.0 +__constant char * const main::screen = (char *) 1024 reg byte y [ main::i#3 main::i#1 ] reg byte x [ main::idx#2 main::idx#1 ] diff --git a/src/test/ref/sieve-min.asm b/src/test/ref/sieve-min.asm index 47cd2e737..62fd4b9ce 100644 --- a/src/test/ref/sieve-min.asm +++ b/src/test/ref/sieve-min.asm @@ -161,6 +161,7 @@ main: { jmp __b4 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = 0 .label str = sieve @@ -193,7 +194,7 @@ memset: { jmp __b1 } // Print a unsigned int as HEX -// print_uint(word zp(4) w) +// void print_uint(__zp(4) unsigned int w) print_uint: { .label w = 4 // print_uchar(BYTE1(w)) @@ -206,7 +207,7 @@ print_uint: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -220,7 +221,7 @@ print_char: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/sieve-min.cfg b/src/test/ref/sieve-min.cfg index e2008a6a2..8f43252aa 100644 --- a/src/test/ref/sieve-min.cfg +++ b/src/test/ref/sieve-min.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@1 main::@1: scope:[main] from main main::@3 [2] main::sieve_i#2 = phi( main/sieve+2, main::@3/main::sieve_i#1 ) @@ -23,11 +23,11 @@ main::@8: scope:[main] from main::@7 to:main::@10 main::@10: scope:[main] from main::@8 [9] print_uint::w#0 = main::i#10 - [10] call print_uint + [10] call print_uint to:main::@12 main::@12: scope:[main] from main::@10 [11] phi() - [12] call print_char + [12] call print_char to:main::@9 main::@9: scope:[main] from main::@12 main::@8 [13] print_char_cursor#35 = phi( main::@12/print_char_cursor#21, main::@8/print_char_cursor#29 ) @@ -55,12 +55,12 @@ main::@5: scope:[main] from main::@4 [24] main::j#1 = main::j#2 + main::i#12 to:main::@4 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [25] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [26] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [26] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [27] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -71,20 +71,20 @@ memset::@2: scope:[memset] from memset::@1 [30] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@10 [31] print_uchar::b#0 = byte1 print_uint::w#0 - [32] call print_uchar + [32] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [33] print_uchar::b#1 = byte0 print_uint::w#0 - [34] call print_uchar + [34] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [35] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@12 print_uchar print_uchar::@1 [36] print_char_cursor#20 = phi( main::@12/print_char_cursor#21, print_uchar/print_char_cursor#28, print_uchar::@1/print_char_cursor#21 ) [36] print_char::ch#3 = phi( main::@12/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -95,18 +95,18 @@ print_char::@return: scope:[print_char] from print_char [39] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [40] print_char_cursor#28 = phi( print_uint/print_char_cursor#29, print_uint::@1/print_char_cursor#21 ) [40] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [41] print_uchar::$0 = print_uchar::b#2 >> 4 [42] print_char::ch#0 = print_hextab[print_uchar::$0] - [43] call print_char + [43] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [44] print_uchar::$2 = print_uchar::b#2 & $f [45] print_char::ch#1 = print_hextab[print_uchar::$2] - [46] call print_char + [46] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [47] return diff --git a/src/test/ref/sieve-min.log b/src/test/ref/sieve-min.log index 19ece0131..72bd37254 100644 --- a/src/test/ref/sieve-min.log +++ b/src/test/ref/sieve-min.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement main::$5 @@ -7,7 +7,7 @@ Eliminating unused variable with no statement main::$6 CONTROL FLOW GRAPH SSA -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main memset::c#4 = phi( main/memset::c#0 ) memset::str#3 = phi( main/memset::str#0 ) @@ -24,9 +24,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -50,13 +50,13 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@11 print_char_cursor#27 = phi( main::@11/print_char_cursor#29 ) print_uint::w#1 = phi( main::@11/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -64,7 +64,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#0 = print_char_cursor#14 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#15 = phi( print_uint::@1/print_char_cursor#5 ) @@ -76,13 +76,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#28 = phi( print_uint/print_char_cursor#27, print_uint::@1/print_char_cursor#0 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -90,7 +90,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#3 = print_char_cursor#17 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#18 = phi( print_uchar::@1/print_char_cursor#7 ) @@ -102,7 +102,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@15 print_uchar print_uchar::@1 print_char_cursor#20 = phi( main::@15/print_char_cursor#8, print_uchar/print_char_cursor#28, print_uchar::@1/print_char_cursor#3 ) print_char::ch#3 = phi( main::@15/print_char::ch#2, print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -118,10 +118,10 @@ print_char::@return: scope:[print_char] from print_char void main() main: scope:[main] from __start::@1 print_char_cursor#40 = phi( __start::@1/print_char_cursor#31 ) - memset::str#0 = (void*)sieve + memset::str#0 = (void *)sieve memset::c#0 = 0 memset::num#0 = COUNT - call memset + call memset memset::return#2 = memset::return#1 to:main::@14 main::@14: scope:[main] from main @@ -205,14 +205,14 @@ main::@11: scope:[main] from main::@9 print_char_cursor#29 = phi( main::@9/print_char_cursor#32 ) main::i#11 = phi( main::@9/main::i#9 ) print_uint::w#0 = main::i#11 - call print_uint + call print_uint to:main::@15 main::@15: scope:[main] from main::@11 main::i#15 = phi( main::@11/main::i#11 ) print_char_cursor#22 = phi( main::@11/print_char_cursor#2 ) print_char_cursor#8 = print_char_cursor#22 print_char::ch#2 = ' ' - call print_char + call print_char to:main::@16 main::@16: scope:[main] from main::@15 main::i#14 = phi( main::@15/main::i#15 ) @@ -237,7 +237,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#0 = print_screen#0 print_char_cursor#11 = print_line_cursor#0 to:__start::@1 @@ -245,7 +245,7 @@ __start::@1: scope:[__start] from __start::__init1 print_line_cursor#4 = phi( __start::__init1/print_line_cursor#0 ) print_screen#4 = phi( __start::__init1/print_screen#0 ) print_char_cursor#31 = phi( __start::__init1/print_char_cursor#11 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_line_cursor#3 = phi( __start::@1/print_line_cursor#4 ) @@ -264,177 +264,177 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const word COUNT = $4000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*)$400 -constant const byte SQRT_COUNT = $80 +__constant const unsigned int COUNT = $4000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *)$400 +__constant const char SQRT_COUNT = $80 void __start() void main() -bool~ main::$10 -bool~ main::$14 -bool~ main::$15 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$7 -bool~ main::$8 -bool~ main::$9 -word main::i -word main::i#0 -word main::i#1 -word main::i#10 -word main::i#11 -word main::i#12 -word main::i#13 -word main::i#14 -word main::i#15 -word main::i#2 -word main::i#3 -word main::i#4 -word main::i#5 -word main::i#6 -word main::i#7 -word main::i#8 -word main::i#9 -word main::j -word main::j#0 -word main::j#1 -word main::j#2 -word main::j#3 -byte* main::s -byte* main::s#0 -byte* main::s#1 -byte* main::s#2 -byte* main::s#3 -byte* main::sieve_i -byte* main::sieve_i#0 -byte* main::sieve_i#1 -byte* main::sieve_i#2 -byte* main::sieve_i#3 -byte* main::sieve_i#4 -byte* main::sieve_i#5 -byte* main::sieve_i#6 -byte* main::sieve_i#7 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#2 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -constant byte* sieve = (byte*)$1000 +bool main::$10 +bool main::$14 +bool main::$15 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$7 +bool main::$8 +bool main::$9 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#10 +unsigned int main::i#11 +unsigned int main::i#12 +unsigned int main::i#13 +unsigned int main::i#14 +unsigned int main::i#15 +unsigned int main::i#2 +unsigned int main::i#3 +unsigned int main::i#4 +unsigned int main::i#5 +unsigned int main::i#6 +unsigned int main::i#7 +unsigned int main::i#8 +unsigned int main::i#9 +unsigned int main::j +unsigned int main::j#0 +unsigned int main::j#1 +unsigned int main::j#2 +unsigned int main::j#3 +char *main::s +char *main::s#0 +char *main::s#1 +char *main::s#2 +char *main::s#3 +char *main::sieve_i +char *main::sieve_i#0 +char *main::sieve_i#1 +char *main::sieve_i#2 +char *main::sieve_i#3 +char *main::sieve_i#4 +char *main::sieve_i#5 +char *main::sieve_i#6 +char *main::sieve_i#7 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#2 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +__constant char *sieve = (char *)$1000 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#2 >> 4 @@ -449,13 +449,13 @@ Adding number conversion cast (unumber) $4c7 in main::$8 = main::i#8 < $4c7 Adding number conversion cast (unumber) 0 in main::$15 = 0 != sieve[main::i#9] Adding number conversion cast (unumber) $3e7 in *(SCREEN+$3e7) = ++ *(SCREEN+$3e7) Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast memset::c#0 = (unumber)0 Inlining cast main::i#1 = (unumber)2 Inlining cast *main::s#2 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 4096 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 4096 Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast $f @@ -467,21 +467,21 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $4c7 Simplifying constant integer cast 0 Simplifying constant integer cast $3e7 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $4c7 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $4c7 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [2] memset::$1 = memset::num#1 <= 0 from [1] memset::$0 = memset::num#1 > 0 Inversing boolean not [67] main::$3 = 0 == *main::sieve_i#2 from [66] main::$14 = 0 != *main::sieve_i#2 Inversing boolean not [68] main::$4 = 0 != *main::sieve_i#2 from [67] main::$3 = 0 == *main::sieve_i#2 @@ -563,18 +563,18 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting array member address-of to pointer addition [42] main::sieve_i#0 = sieve + main::i#0 Rewriting array member address-of to pointer addition [53] main::s#0 = sieve + main::j#0 Successful SSA optimization PassNArrayElementAddressOfRewriting -Constant right-side identified [36] memset::str#0 = (void*)sieve +Constant right-side identified [36] memset::str#0 = (void *)sieve Successful SSA optimization Pass2ConstantRValueConsolidation -Constant memset::str#0 = (void*)sieve +Constant memset::str#0 = (void *)sieve Constant memset::c#0 = 0 Constant memset::num#0 = COUNT Constant main::i#0 = 2 Constant main::i#1 = 2 Constant print_char::ch#2 = ' ' -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Constant memset::return#2 = memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [2] if(memset::num#0<=0) goto memset::@1 @@ -607,17 +607,17 @@ Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::i#1 Inlining constant with var siblings main::sieve_i#0 Constant inlined print_char::ch#2 = ' ' -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined main::i#0 = 2 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined memset::num#0 = COUNT Constant inlined main::i#1 = 2 Constant inlined main::sieve_i#0 = sieve+2 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@17(between main::@9 and main::@10) Adding NOP phi() at start of main @@ -686,7 +686,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call memset + [1] call memset to:main::@1 main::@1: scope:[main] from main main::@3 [2] main::sieve_i#2 = phi( main/sieve+2, main::@3/main::sieve_i#1 ) @@ -707,11 +707,11 @@ main::@8: scope:[main] from main::@7 to:main::@10 main::@10: scope:[main] from main::@8 [9] print_uint::w#0 = main::i#10 - [10] call print_uint + [10] call print_uint to:main::@12 main::@12: scope:[main] from main::@10 [11] phi() - [12] call print_char + [12] call print_char to:main::@9 main::@9: scope:[main] from main::@12 main::@8 [13] print_char_cursor#35 = phi( main::@12/print_char_cursor#21, main::@8/print_char_cursor#29 ) @@ -739,12 +739,12 @@ main::@5: scope:[main] from main::@4 [24] main::j#1 = main::j#2 + main::i#12 to:main::@4 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from main [25] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [26] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [26] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [27] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -755,20 +755,20 @@ memset::@2: scope:[memset] from memset::@1 [30] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@10 [31] print_uchar::b#0 = byte1 print_uint::w#0 - [32] call print_uchar + [32] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [33] print_uchar::b#1 = byte0 print_uint::w#0 - [34] call print_uchar + [34] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [35] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@12 print_uchar print_uchar::@1 [36] print_char_cursor#20 = phi( main::@12/print_char_cursor#21, print_uchar/print_char_cursor#28, print_uchar::@1/print_char_cursor#21 ) [36] print_char::ch#3 = phi( main::@12/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -779,18 +779,18 @@ print_char::@return: scope:[print_char] from print_char [39] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [40] print_char_cursor#28 = phi( print_uint/print_char_cursor#29, print_uint::@1/print_char_cursor#21 ) [40] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [41] print_uchar::$0 = print_uchar::b#2 >> 4 [42] print_char::ch#0 = print_hextab[print_uchar::$0] - [43] call print_char + [43] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [44] print_uchar::$2 = print_uchar::b#2 & $f [45] print_char::ch#1 = print_hextab[print_uchar::$2] - [46] call print_char + [46] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [47] return @@ -799,55 +799,55 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$16 22.0 -word main::i -word main::i#10 6.111111111111112 -word main::i#12 24.6 -word main::i#2 11.0 -word main::i#3 22.0 -word main::j -word main::j#0 16.5 -word main::j#1 202.0 -word main::j#2 78.5 -byte* main::s -byte* main::s#0 22.0 -byte* main::s#1 101.0 -byte* main::s#2 104.66666666666666 -byte* main::sieve_i -byte* main::sieve_i#1 22.0 -byte* main::sieve_i#2 3.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 202.0 -byte* memset::dst#2 134.66666666666666 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2002.0 -byte print_char::ch#1 2002.0 -byte print_char::ch#3 12003.0 -byte* print_char_cursor -byte* print_char_cursor#20 11007.5 -byte* print_char_cursor#21 794.6428571428571 -byte* print_char_cursor#28 401.00000000000006 -byte* print_char_cursor#29 20.5 -byte* print_char_cursor#35 16.5 -byte* print_line_cursor -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 2002.0 -byte~ print_uchar::$2 2002.0 -byte print_uchar::b -byte print_uchar::b#0 202.0 -byte print_uchar::b#1 202.0 -byte print_uchar::b#2 551.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 71.0 +char *main::$16 // 22.0 +unsigned int main::i +unsigned int main::i#10 // 6.111111111111112 +unsigned int main::i#12 // 24.6 +unsigned int main::i#2 // 11.0 +unsigned int main::i#3 // 22.0 +unsigned int main::j +unsigned int main::j#0 // 16.5 +unsigned int main::j#1 // 202.0 +unsigned int main::j#2 // 78.5 +char *main::s +char *main::s#0 // 22.0 +char *main::s#1 // 101.0 +char *main::s#2 // 104.66666666666666 +char *main::sieve_i +char *main::sieve_i#1 // 22.0 +char *main::sieve_i#2 // 3.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 202.0 +char *memset::dst#2 // 134.66666666666666 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2002.0 +char print_char::ch#1 // 2002.0 +char print_char::ch#3 // 12003.0 +char *print_char_cursor +char *print_char_cursor#20 // 11007.5 +char *print_char_cursor#21 // 794.6428571428571 +char *print_char_cursor#28 // 401.00000000000006 +char *print_char_cursor#29 // 20.5 +char *print_char_cursor#35 // 16.5 +char *print_line_cursor +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 2002.0 +char print_uchar::$2 // 2002.0 +char print_uchar::b +char print_uchar::b#0 // 202.0 +char print_uchar::b#1 // 202.0 +char print_uchar::b#2 // 551.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 71.0 Initial phi equivalence classes [ main::i#12 main::i#2 ] @@ -1007,7 +1007,7 @@ main: { .label s = 8 .label i_1 = 4 .label __16 = $c - // [1] call memset + // [1] call memset // Fill sieve with zeros // [25] phi from main to memset [phi:main->memset] memset_from_main: @@ -1083,14 +1083,14 @@ main: { // main::@10 __b10: // [9] print_uint::w#0 = main::i#10 - // [10] call print_uint + // [10] call print_uint jsr print_uint // [11] phi from main::@10 to main::@12 [phi:main::@10->main::@12] __b12_from___b10: jmp __b12 // main::@12 __b12: - // [12] call print_char + // [12] call print_char // [36] phi from main::@12 to print_char [phi:main::@12->print_char] print_char_from___b12: // [36] phi print_char_cursor#20 = print_char_cursor#21 [phi:main::@12->print_char#0] -- register_copy @@ -1201,6 +1201,7 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = 0 .label str = sieve @@ -1208,7 +1209,7 @@ memset: { .label dst = $c // [26] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [26] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [26] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1246,12 +1247,12 @@ memset: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(4) w) +// void print_uint(__zp(4) unsigned int w) print_uint: { .label w = 4 // [31] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [32] call print_uchar + // [32] call print_uchar // [40] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [40] phi print_char_cursor#28 = print_char_cursor#29 [phi:print_uint->print_uchar#0] -- register_copy @@ -1262,7 +1263,7 @@ print_uint: { __b1: // [33] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [34] call print_uchar + // [34] call print_uchar // [40] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [40] phi print_char_cursor#28 = print_char_cursor#21 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1276,7 +1277,7 @@ print_uint: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [37] *print_char_cursor#20 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -1294,7 +1295,7 @@ print_char: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [41] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1305,7 +1306,7 @@ print_uchar: { // [42] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [43] call print_char + // [43] call print_char // Table of hexadecimal digits // [36] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1320,7 +1321,7 @@ print_uchar: { axs #0 // [45] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [46] call print_char + // [46] call print_char // [36] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [36] phi print_char_cursor#20 = print_char_cursor#21 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1386,69 +1387,69 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const word COUNT = $4000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 -constant const byte SQRT_COUNT = $80 +__constant const unsigned int COUNT = $4000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 +__constant const char SQRT_COUNT = $80 void main() -byte*~ main::$16 zp[2]:12 22.0 -word main::i -word main::i#10 i_1 zp[2]:4 6.111111111111112 -word main::i#12 i zp[2]:10 24.6 -word main::i#2 i zp[2]:10 11.0 -word main::i#3 i_1 zp[2]:4 22.0 -word main::j -word main::j#0 j zp[2]:6 16.5 -word main::j#1 j zp[2]:6 202.0 -word main::j#2 j zp[2]:6 78.5 -byte* main::s -byte* main::s#0 s zp[2]:8 22.0 -byte* main::s#1 s zp[2]:8 101.0 -byte* main::s#2 s zp[2]:8 104.66666666666666 -byte* main::sieve_i -byte* main::sieve_i#1 sieve_i zp[2]:2 22.0 -byte* main::sieve_i#2 sieve_i zp[2]:2 3.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = 0 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:12 202.0 -byte* memset::dst#2 dst zp[2]:12 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+COUNT -word memset::num -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)sieve -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#3 reg byte a 12003.0 -byte* print_char_cursor -byte* print_char_cursor#20 print_char_cursor zp[2]:10 11007.5 -byte* print_char_cursor#21 print_char_cursor zp[2]:10 794.6428571428571 -byte* print_char_cursor#28 print_char_cursor zp[2]:10 401.00000000000006 -byte* print_char_cursor#29 print_char_cursor zp[2]:10 20.5 -byte* print_char_cursor#35 print_char_cursor zp[2]:10 16.5 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 551.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:4 71.0 -constant byte* sieve = (byte*) 4096 +char *main::$16 // zp[2]:12 22.0 +unsigned int main::i +unsigned int main::i#10 // i_1 zp[2]:4 6.111111111111112 +unsigned int main::i#12 // i zp[2]:10 24.6 +unsigned int main::i#2 // i zp[2]:10 11.0 +unsigned int main::i#3 // i_1 zp[2]:4 22.0 +unsigned int main::j +unsigned int main::j#0 // j zp[2]:6 16.5 +unsigned int main::j#1 // j zp[2]:6 202.0 +unsigned int main::j#2 // j zp[2]:6 78.5 +char *main::s +char *main::s#0 // s zp[2]:8 22.0 +char *main::s#1 // s zp[2]:8 101.0 +char *main::s#2 // s zp[2]:8 104.66666666666666 +char *main::sieve_i +char *main::sieve_i#1 // sieve_i zp[2]:2 22.0 +char *main::sieve_i#2 // sieve_i zp[2]:2 3.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = 0 // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:12 202.0 +char *memset::dst#2 // dst zp[2]:12 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+COUNT // end +unsigned int memset::num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)sieve // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#3 // reg byte a 12003.0 +char *print_char_cursor +char *print_char_cursor#20 // print_char_cursor zp[2]:10 11007.5 +char *print_char_cursor#21 // print_char_cursor zp[2]:10 794.6428571428571 +char *print_char_cursor#28 // print_char_cursor zp[2]:10 401.00000000000006 +char *print_char_cursor#29 // print_char_cursor zp[2]:10 20.5 +char *print_char_cursor#35 // print_char_cursor zp[2]:10 16.5 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 551.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:4 71.0 +__constant char *sieve = (char *) 4096 zp[2]:2 [ main::sieve_i#2 main::sieve_i#1 ] zp[2]:4 [ main::i#10 main::i#3 print_uint::w#0 ] @@ -1499,7 +1500,7 @@ main: { .label i_1 = 4 .label __16 = $c // memset(sieve, 0, COUNT) - // [1] call memset + // [1] call memset // Fill sieve with zeros // [25] phi from main to memset [phi:main->memset] jsr memset @@ -1572,12 +1573,12 @@ main: { // main::@10 // print_uint(i) // [9] print_uint::w#0 = main::i#10 - // [10] call print_uint + // [10] call print_uint jsr print_uint // [11] phi from main::@10 to main::@12 [phi:main::@10->main::@12] // main::@12 // print_char(' ') - // [12] call print_char + // [12] call print_char // [36] phi from main::@12 to print_char [phi:main::@12->print_char] // [36] phi print_char_cursor#20 = print_char_cursor#21 [phi:main::@12->print_char#0] -- register_copy // [36] phi print_char::ch#3 = ' ' [phi:main::@12->print_char#1] -- vbuaa=vbuc1 @@ -1686,13 +1687,14 @@ main: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = 0 .label str = sieve .label end = str+COUNT .label dst = $c // [26] phi from memset to memset::@1 [phi:memset->memset::@1] - // [26] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [26] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1730,13 +1732,13 @@ memset: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(4) w) +// void print_uint(__zp(4) unsigned int w) print_uint: { .label w = 4 // print_uchar(BYTE1(w)) // [31] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [32] call print_uchar + // [32] call print_uchar // [40] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [40] phi print_char_cursor#28 = print_char_cursor#29 [phi:print_uint->print_uchar#0] -- register_copy // [40] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -1745,7 +1747,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [33] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [34] call print_uchar + // [34] call print_uchar // [40] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [40] phi print_char_cursor#28 = print_char_cursor#21 [phi:print_uint::@1->print_uchar#0] -- register_copy // [40] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -1757,7 +1759,7 @@ print_uint: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [37] *print_char_cursor#20 = print_char::ch#3 -- _deref_pbuz1=vbuaa @@ -1776,7 +1778,7 @@ print_char: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [41] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -1789,7 +1791,7 @@ print_uchar: { // [42] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [43] call print_char + // [43] call print_char // Table of hexadecimal digits // [36] phi from print_uchar to print_char [phi:print_uchar->print_char] // [36] phi print_char_cursor#20 = print_char_cursor#28 [phi:print_uchar->print_char#0] -- register_copy @@ -1803,7 +1805,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [45] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [46] call print_char + // [46] call print_char // [36] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [36] phi print_char_cursor#20 = print_char_cursor#21 [phi:print_uchar::@1->print_char#0] -- register_copy // [36] phi print_char::ch#3 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/sieve-min.sym b/src/test/ref/sieve-min.sym index ab02d38bf..9b7983553 100644 --- a/src/test/ref/sieve-min.sym +++ b/src/test/ref/sieve-min.sym @@ -1,66 +1,66 @@ -constant const word COUNT = $4000 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* const SCREEN = (byte*) 1024 -constant const byte SQRT_COUNT = $80 +__constant const unsigned int COUNT = $4000 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char * const SCREEN = (char *) 1024 +__constant const char SQRT_COUNT = $80 void main() -byte*~ main::$16 zp[2]:12 22.0 -word main::i -word main::i#10 i_1 zp[2]:4 6.111111111111112 -word main::i#12 i zp[2]:10 24.6 -word main::i#2 i zp[2]:10 11.0 -word main::i#3 i_1 zp[2]:4 22.0 -word main::j -word main::j#0 j zp[2]:6 16.5 -word main::j#1 j zp[2]:6 202.0 -word main::j#2 j zp[2]:6 78.5 -byte* main::s -byte* main::s#0 s zp[2]:8 22.0 -byte* main::s#1 s zp[2]:8 101.0 -byte* main::s#2 s zp[2]:8 104.66666666666666 -byte* main::sieve_i -byte* main::sieve_i#1 sieve_i zp[2]:2 22.0 -byte* main::sieve_i#2 sieve_i zp[2]:2 3.0 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = 0 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:12 202.0 -byte* memset::dst#2 dst zp[2]:12 134.66666666666666 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+COUNT -word memset::num -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)sieve -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#3 reg byte a 12003.0 -byte* print_char_cursor -byte* print_char_cursor#20 print_char_cursor zp[2]:10 11007.5 -byte* print_char_cursor#21 print_char_cursor zp[2]:10 794.6428571428571 -byte* print_char_cursor#28 print_char_cursor zp[2]:10 401.00000000000006 -byte* print_char_cursor#29 print_char_cursor zp[2]:10 20.5 -byte* print_char_cursor#35 print_char_cursor zp[2]:10 16.5 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 551.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:4 71.0 -constant byte* sieve = (byte*) 4096 +char *main::$16 // zp[2]:12 22.0 +unsigned int main::i +unsigned int main::i#10 // i_1 zp[2]:4 6.111111111111112 +unsigned int main::i#12 // i zp[2]:10 24.6 +unsigned int main::i#2 // i zp[2]:10 11.0 +unsigned int main::i#3 // i_1 zp[2]:4 22.0 +unsigned int main::j +unsigned int main::j#0 // j zp[2]:6 16.5 +unsigned int main::j#1 // j zp[2]:6 202.0 +unsigned int main::j#2 // j zp[2]:6 78.5 +char *main::s +char *main::s#0 // s zp[2]:8 22.0 +char *main::s#1 // s zp[2]:8 101.0 +char *main::s#2 // s zp[2]:8 104.66666666666666 +char *main::sieve_i +char *main::sieve_i#1 // sieve_i zp[2]:2 22.0 +char *main::sieve_i#2 // sieve_i zp[2]:2 3.0 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = 0 // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:12 202.0 +char *memset::dst#2 // dst zp[2]:12 134.66666666666666 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+COUNT // end +unsigned int memset::num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)sieve // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#3 // reg byte a 12003.0 +char *print_char_cursor +char *print_char_cursor#20 // print_char_cursor zp[2]:10 11007.5 +char *print_char_cursor#21 // print_char_cursor zp[2]:10 794.6428571428571 +char *print_char_cursor#28 // print_char_cursor zp[2]:10 401.00000000000006 +char *print_char_cursor#29 // print_char_cursor zp[2]:10 20.5 +char *print_char_cursor#35 // print_char_cursor zp[2]:10 16.5 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 551.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:4 71.0 +__constant char *sieve = (char *) 4096 zp[2]:2 [ main::sieve_i#2 main::sieve_i#1 ] zp[2]:4 [ main::i#10 main::i#3 print_uint::w#0 ] diff --git a/src/test/ref/signed-bytes.cfg b/src/test/ref/signed-bytes.cfg index d1b661915..acbcf5504 100644 --- a/src/test/ref/signed-bytes.cfg +++ b/src/test/ref/signed-bytes.cfg @@ -12,7 +12,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] main::screen[main::j#2] = (byte)main::i#2 + [4] main::screen[main::j#2] = (char)main::i#2 [5] main::i#1 = ++ main::i#2 [6] main::j#1 = ++ main::j#2 to:main::@1 diff --git a/src/test/ref/signed-bytes.log b/src/test/ref/signed-bytes.log index 84b6be265..93fc950f5 100644 --- a/src/test/ref/signed-bytes.log +++ b/src/test/ref/signed-bytes.log @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::j#2 = phi( main::@1/main::j#3 ) main::i#3 = phi( main::@1/main::i#2 ) - main::screen[main::j#2] = (byte)main::i#3 + main::screen[main::j#2] = (char)main::i#3 main::i#1 = ++ main::i#3 main::j#1 = ++ main::j#2 to:main::@1 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,25 +36,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -signed byte main::i -signed byte main::i#0 -signed byte main::i#1 -signed byte main::i#2 -signed byte main::i#3 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -constant byte* main::screen = (byte*)$400 +bool main::$0 +signed char main::i +signed char main::i#0 +signed char main::i#1 +signed char main::i#2 +signed char main::i#3 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +__constant char *main::screen = (char *)$400 Adding number conversion cast (snumber) $7f in main::$0 = main::i#2 < $7f Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $7f Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $7f +Finalized signed number type (signed char) $7f Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias main::j#2 = main::j#3 @@ -98,7 +98,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] main::screen[main::j#2] = (byte)main::i#2 + [4] main::screen[main::j#2] = (char)main::i#2 [5] main::i#1 = ++ main::i#2 [6] main::j#1 = ++ main::j#2 to:main::@1 @@ -106,12 +106,12 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -signed byte main::i -signed byte main::i#1 11.0 -signed byte main::i#2 11.0 -byte main::j -byte main::j#1 22.0 -byte main::j#2 8.25 +signed char main::i +signed char main::i#1 // 11.0 +signed char main::i#2 // 11.0 +char main::j +char main::j#1 // 22.0 +char main::j#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -125,9 +125,9 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] if(main::i#2<$7f) goto main::@2 [ main::i#2 main::j#2 ] ( [ main::i#2 main::j#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::j#2 main::j#1 ] -Statement [4] main::screen[main::j#2] = (byte)main::i#2 [ main::i#2 main::j#2 ] ( [ main::i#2 main::j#2 ] { } ) always clobbers reg byte a +Statement [4] main::screen[main::j#2] = (char)main::i#2 [ main::i#2 main::j#2 ] ( [ main::i#2 main::j#2 ] { } ) always clobbers reg byte a Statement [2] if(main::i#2<$7f) goto main::@2 [ main::i#2 main::j#2 ] ( [ main::i#2 main::j#2 ] { } ) always clobbers reg byte a -Statement [4] main::screen[main::j#2] = (byte)main::i#2 [ main::i#2 main::j#2 ] ( [ main::i#2 main::j#2 ] { } ) always clobbers reg byte a +Statement [4] main::screen[main::j#2] = (char)main::i#2 [ main::i#2 main::j#2 ] ( [ main::i#2 main::j#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::j#2 main::j#1 ] : zp[1]:3 , reg byte x , reg byte y , @@ -178,7 +178,7 @@ main: { rts // main::@2 __b2: - // [4] main::screen[main::j#2] = (byte)main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [4] main::screen[main::j#2] = (char)main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta screen,y // [5] main::i#1 = ++ main::i#2 -- vbsxx=_inc_vbsxx @@ -204,13 +204,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -signed byte main::i -signed byte main::i#1 reg byte x 11.0 -signed byte main::i#2 reg byte x 11.0 -byte main::j -byte main::j#1 reg byte y 22.0 -byte main::j#2 reg byte y 8.25 -constant byte* main::screen = (byte*) 1024 +signed char main::i +signed char main::i#1 // reg byte x 11.0 +signed char main::i#2 // reg byte x 11.0 +char main::j +char main::j#1 // reg byte y 22.0 +char main::j#2 // reg byte y 8.25 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ] @@ -257,7 +257,7 @@ main: { // main::@2 __b2: // screen[j] = (byte)i - // [4] main::screen[main::j#2] = (byte)main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [4] main::screen[main::j#2] = (char)main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta screen,y // i++; diff --git a/src/test/ref/signed-bytes.sym b/src/test/ref/signed-bytes.sym index 9bc77b138..fe326d765 100644 --- a/src/test/ref/signed-bytes.sym +++ b/src/test/ref/signed-bytes.sym @@ -1,11 +1,11 @@ void main() -signed byte main::i -signed byte main::i#1 reg byte x 11.0 -signed byte main::i#2 reg byte x 11.0 -byte main::j -byte main::j#1 reg byte y 22.0 -byte main::j#2 reg byte y 8.25 -constant byte* main::screen = (byte*) 1024 +signed char main::i +signed char main::i#1 // reg byte x 11.0 +signed char main::i#2 // reg byte x 11.0 +char main::j +char main::j#1 // reg byte y 22.0 +char main::j#2 // reg byte y 8.25 +__constant char *main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ] diff --git a/src/test/ref/signed-char-comparison.asm b/src/test/ref/signed-char-comparison.asm index 46b85bf94..52a6ccf12 100644 --- a/src/test/ref/signed-char-comparison.asm +++ b/src/test/ref/signed-char-comparison.asm @@ -22,7 +22,7 @@ main: { // } rts } -// debug(signed byte register(X) dy) +// void debug(__register(X) signed char dy) debug: { // if (dy > -120) txa diff --git a/src/test/ref/signed-char-comparison.cfg b/src/test/ref/signed-char-comparison.cfg index 7fb996447..fd0449708 100644 --- a/src/test/ref/signed-char-comparison.cfg +++ b/src/test/ref/signed-char-comparison.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::dy#2 = phi( main/-$80, main::@2/main::dy#1 ) [2] debug::dy#0 = main::dy#2 - [3] call debug + [3] call debug to:main::@2 main::@2: scope:[main] from main::@1 [4] main::dy#1 = ++ main::dy#2 @@ -16,12 +16,12 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void debug(signed byte debug::dy) +void debug(signed char dy) debug: scope:[debug] from main::@1 [7] if(debug::dy#0<=-$78) goto debug::@return to:debug::@1 debug::@1: scope:[debug] from debug - [8] SCREEN[(byte)debug::dy#0] = $a + [8] SCREEN[(char)debug::dy#0] = $a to:debug::@return debug::@return: scope:[debug] from debug debug::@1 [9] return diff --git a/src/test/ref/signed-char-comparison.log b/src/test/ref/signed-char-comparison.log index 2426e9613..3adaff872 100644 --- a/src/test/ref/signed-char-comparison.log +++ b/src/test/ref/signed-char-comparison.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@2 main::dy#2 = phi( main/main::dy#0, main::@2/main::dy#1 ) debug::dy#0 = main::dy#2 - call debug + call debug to:main::@2 main::@2: scope:[main] from main::@1 main::dy#3 = phi( main::@1/main::dy#2 ) @@ -21,10 +21,10 @@ main::@return: scope:[main] from main::@2 return to:@return -void debug(signed byte debug::dy) +void debug(signed char dy) debug: scope:[debug] from main::@1 debug::dy#1 = phi( main::@1/debug::dy#0 ) - debug::i#0 = (byte)debug::dy#1 + debug::i#0 = (char)debug::dy#1 debug::$0 = debug::dy#1 > -$78 debug::$1 = ! debug::$0 if(debug::$1) goto debug::@return @@ -43,7 +43,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -52,36 +52,36 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() -void debug(signed byte debug::dy) -bool~ debug::$0 -bool~ debug::$1 -signed byte debug::dy -signed byte debug::dy#0 -signed byte debug::dy#1 -byte debug::i -byte debug::i#0 -byte debug::i#1 +void debug(signed char dy) +bool debug::$0 +bool debug::$1 +signed char debug::dy +signed char debug::dy#0 +signed char debug::dy#1 +char debug::i +char debug::i#0 +char debug::i#1 void main() -bool~ main::$1 -signed byte main::dy -signed byte main::dy#0 -signed byte main::dy#1 -signed byte main::dy#2 -signed byte main::dy#3 +bool main::$1 +signed char main::dy +signed char main::dy#0 +signed char main::dy#1 +signed char main::dy#2 +signed char main::dy#3 Adding number conversion cast (snumber) -$78 in debug::$0 = debug::dy#1 > -$78 Adding number conversion cast (unumber) $a in SCREEN[debug::i#1] = $a Successful SSA optimization PassNAddNumberTypeConversions Inlining cast SCREEN[debug::i#1] = (unumber)$a Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast -$78 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) -$78 -Finalized unsigned number type (byte) $a +Finalized signed number type (signed char) -$78 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [12] debug::$1 = debug::dy#1 <= -$78 from [11] debug::$0 = debug::dy#1 > -$78 Successful SSA optimization Pass2UnaryNotSimplification @@ -108,9 +108,9 @@ Adding number conversion cast (snumber) -$80 in [4] if(main::dy#1!=-$80) goto ma Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast -$80 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) -$80 +Finalized signed number type (signed char) -$80 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [6] debug::i#0 = (byte)debug::dy#0 keeping debug::dy#0 +Inlining Noop Cast [6] debug::i#0 = (char)debug::dy#0 keeping debug::dy#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::dy#0 Constant inlined main::dy#0 = -$80 @@ -135,7 +135,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::dy#2 = phi( main/-$80, main::@2/main::dy#1 ) [2] debug::dy#0 = main::dy#2 - [3] call debug + [3] call debug to:main::@2 main::@2: scope:[main] from main::@1 [4] main::dy#1 = ++ main::dy#2 @@ -145,12 +145,12 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -void debug(signed byte debug::dy) +void debug(signed char dy) debug: scope:[debug] from main::@1 [7] if(debug::dy#0<=-$78) goto debug::@return to:debug::@1 debug::@1: scope:[debug] from debug - [8] SCREEN[(byte)debug::dy#0] = $a + [8] SCREEN[(char)debug::dy#0] = $a to:debug::@return debug::@return: scope:[debug] from debug debug::@1 [9] return @@ -158,14 +158,14 @@ debug::@return: scope:[debug] from debug debug::@1 VARIABLE REGISTER WEIGHTS -void debug(signed byte debug::dy) -signed byte debug::dy -signed byte debug::dy#0 56.0 -byte debug::i +void debug(signed char dy) +signed char debug::dy +signed char debug::dy#0 // 56.0 +char debug::i void main() -signed byte main::dy -signed byte main::dy#1 16.5 -signed byte main::dy#2 11.0 +signed char main::dy +signed char main::dy#1 // 16.5 +signed char main::dy#2 // 11.0 Initial phi equivalence classes [ main::dy#2 main::dy#1 ] @@ -179,9 +179,9 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [7] if(debug::dy#0<=-$78) goto debug::@return [ debug::dy#0 ] ( debug:3 [ main::dy#2 debug::dy#0 ] { { debug::dy#0 = main::dy#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::dy#2 main::dy#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ debug::dy#0 ] -Statement [8] SCREEN[(byte)debug::dy#0] = $a [ ] ( debug:3 [ main::dy#2 ] { { debug::dy#0 = main::dy#2 } } ) always clobbers reg byte a +Statement [8] SCREEN[(char)debug::dy#0] = $a [ ] ( debug:3 [ main::dy#2 ] { { debug::dy#0 = main::dy#2 } } ) always clobbers reg byte a Statement [7] if(debug::dy#0<=-$78) goto debug::@return [ debug::dy#0 ] ( debug:3 [ main::dy#2 debug::dy#0 ] { { debug::dy#0 = main::dy#2 } } ) always clobbers reg byte a -Statement [8] SCREEN[(byte)debug::dy#0] = $a [ ] ( debug:3 [ main::dy#2 ] { { debug::dy#0 = main::dy#2 } } ) always clobbers reg byte a +Statement [8] SCREEN[(char)debug::dy#0] = $a [ ] ( debug:3 [ main::dy#2 ] { { debug::dy#0 = main::dy#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::dy#2 main::dy#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ debug::dy#0 ] : zp[1]:3 , reg byte x , reg byte y , @@ -224,7 +224,7 @@ main: { // main::@1 __b1: // [2] debug::dy#0 = main::dy#2 - // [3] call debug + // [3] call debug jsr debug jmp __b2 // main::@2 @@ -241,7 +241,7 @@ main: { rts } // debug -// debug(signed byte register(X) dy) +// void debug(__register(X) signed char dy) debug: { // [7] if(debug::dy#0<=-$78) goto debug::@return -- vbsxx_le_vbsc1_then_la1 txa @@ -255,7 +255,7 @@ debug: { jmp __b1 // debug::@1 __b1: - // [8] SCREEN[(byte)debug::dy#0] = $a -- pbuc1_derefidx_vbuxx=vbuc2 + // [8] SCREEN[(char)debug::dy#0] = $a -- pbuc1_derefidx_vbuxx=vbuc2 lda #$a sta SCREEN,x jmp __breturn @@ -285,15 +285,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -void debug(signed byte debug::dy) -signed byte debug::dy -signed byte debug::dy#0 reg byte x 56.0 -byte debug::i +__constant char *SCREEN = (char *) 1024 +void debug(signed char dy) +signed char debug::dy +signed char debug::dy#0 // reg byte x 56.0 +char debug::i void main() -signed byte main::dy -signed byte main::dy#1 reg byte x 16.5 -signed byte main::dy#2 reg byte x 11.0 +signed char main::dy +signed char main::dy#1 // reg byte x 16.5 +signed char main::dy#2 // reg byte x 11.0 reg byte x [ main::dy#2 main::dy#1 ] reg byte x [ debug::dy#0 ] @@ -328,7 +328,7 @@ main: { __b1: // debug(dy) // [2] debug::dy#0 = main::dy#2 - // [3] call debug + // [3] call debug jsr debug // main::@2 // for(signed char dy:-128..127) @@ -343,7 +343,7 @@ main: { rts } // debug -// debug(signed byte register(X) dy) +// void debug(__register(X) signed char dy) debug: { // if (dy > -120) // [7] if(debug::dy#0<=-$78) goto debug::@return -- vbsxx_le_vbsc1_then_la1 @@ -357,7 +357,7 @@ debug: { bmi __breturn // debug::@1 // SCREEN[i] = 10 - // [8] SCREEN[(byte)debug::dy#0] = $a -- pbuc1_derefidx_vbuxx=vbuc2 + // [8] SCREEN[(char)debug::dy#0] = $a -- pbuc1_derefidx_vbuxx=vbuc2 lda #$a sta SCREEN,x // debug::@return diff --git a/src/test/ref/signed-char-comparison.sym b/src/test/ref/signed-char-comparison.sym index 8dcf1aa76..0045b9df6 100644 --- a/src/test/ref/signed-char-comparison.sym +++ b/src/test/ref/signed-char-comparison.sym @@ -1,12 +1,12 @@ -constant byte* SCREEN = (byte*) 1024 -void debug(signed byte debug::dy) -signed byte debug::dy -signed byte debug::dy#0 reg byte x 56.0 -byte debug::i +__constant char *SCREEN = (char *) 1024 +void debug(signed char dy) +signed char debug::dy +signed char debug::dy#0 // reg byte x 56.0 +char debug::i void main() -signed byte main::dy -signed byte main::dy#1 reg byte x 16.5 -signed byte main::dy#2 reg byte x 11.0 +signed char main::dy +signed char main::dy#1 // reg byte x 16.5 +signed char main::dy#2 // reg byte x 11.0 reg byte x [ main::dy#2 main::dy#1 ] reg byte x [ debug::dy#0 ] diff --git a/src/test/ref/signed-indexed-subtract.asm b/src/test/ref/signed-indexed-subtract.asm index 9799db289..70dd66783 100644 --- a/src/test/ref/signed-indexed-subtract.asm +++ b/src/test/ref/signed-indexed-subtract.asm @@ -69,7 +69,7 @@ main: { sta.z print_char_cursor+1 jmp __b3 } -// sub(byte register(A) idx, byte register(X) s) +// void sub(__register(A) char idx, __register(X) char s) sub: { // words[idx] -= s asl @@ -93,7 +93,7 @@ print_cls: { rts } // Print a signed int as HEX -// print_sint(signed word zp(5) w) +// void print_sint(__zp(5) int w) print_sint: { .label w = 5 // if(w<0) @@ -145,6 +145,7 @@ print_ln: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -178,7 +179,7 @@ memset: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -192,7 +193,7 @@ print_char: { rts } // Print a unsigned int as HEX -// print_uint(word zp(5) w) +// void print_uint(__zp(5) unsigned int w) print_uint: { .label w = 5 // print_uchar(BYTE1(w)) @@ -205,7 +206,7 @@ print_uint: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/signed-indexed-subtract.cfg b/src/test/ref/signed-indexed-subtract.cfg index 72633ac5d..262bea0a8 100644 --- a/src/test/ref/signed-indexed-subtract.cfg +++ b/src/test/ref/signed-indexed-subtract.cfg @@ -6,15 +6,15 @@ main: scope:[main] from main::@1: scope:[main] from main main::@6 [1] main::i#2 = phi( main/0, main::@6/main::i#1 ) [2] sub::idx#0 = main::i#2 - [3] call sub + [3] call sub to:main::@4 main::@4: scope:[main] from main::@1 [4] sub::idx#1 = main::i#2 - [5] call sub + [5] call sub to:main::@5 main::@5: scope:[main] from main::@4 [6] sub::idx#2 = main::i#2 - [7] call sub + [7] call sub to:main::@6 main::@6: scope:[main] from main::@5 [8] main::i#1 = ++ main::i#2 @@ -22,7 +22,7 @@ main::@6: scope:[main] from main::@5 to:main::@2 main::@2: scope:[main] from main::@6 [10] phi() - [11] call print_cls + [11] call print_cls to:main::@3 main::@3: scope:[main] from main::@2 main::@9 [12] print_line_cursor#21 = phi( main::@2/print_screen#0, main::@9/print_line_cursor#0 ) @@ -30,11 +30,11 @@ main::@3: scope:[main] from main::@2 main::@9 [12] main::j#2 = phi( main::@2/0, main::@9/main::j#1 ) [13] main::$8 = main::j#2 << 1 [14] print_sint::w#1 = words[main::$8] - [15] call print_sint + [15] call print_sint to:main::@7 main::@7: scope:[main] from main::@3 [16] phi() - [17] call print_ln + [17] call print_ln to:main::@8 main::@8: scope:[main] from main::@7 [18] main::j#1 = ++ main::j#2 @@ -47,7 +47,7 @@ main::@9: scope:[main] from main::@8 [21] print_char_cursor#63 = print_line_cursor#0 to:main::@3 -void sub(byte sub::idx , byte sub::s) +void sub(char idx , char s) sub: scope:[sub] from main::@1 main::@4 main::@5 [22] sub::s#3 = phi( main::@1/$80, main::@4/$40, main::@5/$40 ) [22] sub::idx#3 = phi( main::@1/sub::idx#0, main::@4/sub::idx#1, main::@5/sub::idx#2 ) @@ -61,31 +61,31 @@ sub::@return: scope:[sub] from sub void print_cls() print_cls: scope:[print_cls] from main::@2 [26] phi() - [27] call memset + [27] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [28] return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@3 [29] if(print_sint::w#1<0) goto print_sint::@1 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [30] phi() - [31] call print_char + [31] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [32] print_sint::w#4 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#1 ) - [33] print_uint::w#0 = (word)print_sint::w#4 - [34] call print_uint + [33] print_uint::w#0 = (unsigned int)print_sint::w#4 + [34] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [35] return to:@return print_sint::@1: scope:[print_sint] from print_sint [36] phi() - [37] call print_char + [37] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [38] print_sint::w#0 = - print_sint::w#1 @@ -104,12 +104,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [43] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [44] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [45] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [45] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [46] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -120,7 +120,7 @@ memset::@2: scope:[memset] from memset::@1 [49] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_sint::@1 print_sint::@3 print_uchar print_uchar::@1 [50] print_char_cursor#35 = phi( print_sint::@1/print_char_cursor#51, print_sint::@3/print_char_cursor#51, print_uchar/print_char_cursor#12, print_uchar::@1/print_char_cursor#12 ) [50] print_char::ch#4 = phi( print_sint::@1/'-', print_sint::@3/' ', print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 ) @@ -131,30 +131,30 @@ print_char::@return: scope:[print_char] from print_char [53] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 [54] print_uchar::b#0 = byte1 print_uint::w#0 - [55] call print_uchar + [55] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [56] print_uchar::b#1 = byte0 print_uint::w#0 - [57] call print_uchar + [57] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [58] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [59] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [60] print_uchar::$0 = print_uchar::b#2 >> 4 [61] print_char::ch#2 = print_hextab[print_uchar::$0] - [62] call print_char + [62] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [63] print_uchar::$2 = print_uchar::b#2 & $f [64] print_char::ch#3 = print_hextab[print_uchar::$2] - [65] call print_char + [65] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [66] return diff --git a/src/test/ref/signed-indexed-subtract.log b/src/test/ref/signed-indexed-subtract.log index f70e0014f..af72510a3 100644 --- a/src/test/ref/signed-indexed-subtract.log +++ b/src/test/ref/signed-indexed-subtract.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@3 print_char_cursor#53 = phi( main::@3/print_char_cursor#51 ) print_sint::w#2 = phi( main::@3/print_sint::w#1 ) @@ -39,7 +39,7 @@ print_sint::@1: scope:[print_sint] from print_sint print_sint::w#5 = phi( print_sint/print_sint::w#2 ) print_char_cursor#45 = phi( print_sint/print_char_cursor#53 ) print_char::ch#0 = '-' - call print_char + call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 print_sint::w#3 = phi( print_sint::@1/print_sint::w#5 ) @@ -52,7 +52,7 @@ print_sint::@3: scope:[print_sint] from print_sint print_sint::w#7 = phi( print_sint/print_sint::w#2 ) print_char_cursor#46 = phi( print_sint/print_char_cursor#53 ) print_char::ch#1 = ' ' - call print_char + call print_char to:print_sint::@5 print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::w#6 = phi( print_sint::@3/print_sint::w#7 ) @@ -62,8 +62,8 @@ print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::@2: scope:[print_sint] from print_sint::@4 print_sint::@5 print_char_cursor#47 = phi( print_sint::@4/print_char_cursor#2, print_sint::@5/print_char_cursor#3 ) print_sint::w#4 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#6 ) - print_uint::w#0 = (word)print_sint::w#4 - call print_uint + print_uint::w#0 = (unsigned int)print_sint::w#4 + call print_uint to:print_sint::@6 print_sint::@6: scope:[print_sint] from print_sint::@2 print_char_cursor#27 = phi( print_sint::@2/print_char_cursor#8 ) @@ -75,13 +75,13 @@ print_sint::@return: scope:[print_sint] from print_sint::@6 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_char_cursor#48 = phi( print_sint::@2/print_char_cursor#47 ) print_uint::w#1 = phi( print_sint::@2/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -89,7 +89,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#6 = print_char_cursor#29 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#30 = phi( print_uint::@1/print_char_cursor#11 ) @@ -101,13 +101,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#49 = phi( print_uint/print_char_cursor#48, print_uint::@1/print_char_cursor#6 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#2 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -115,7 +115,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#9 = print_char_cursor#32 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#3 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#33 = phi( print_uchar::@1/print_char_cursor#13 ) @@ -127,7 +127,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_sint::@1 print_sint::@3 print_uchar print_uchar::@1 print_char_cursor#35 = phi( print_sint::@1/print_char_cursor#45, print_sint::@3/print_char_cursor#46, print_uchar/print_char_cursor#49, print_uchar::@1/print_char_cursor#9 ) print_char::ch#4 = phi( print_sint::@1/print_char::ch#0, print_sint::@3/print_char::ch#1, print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 ) @@ -143,10 +143,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main::@2 print_screen#2 = phi( main::@2/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -162,7 +162,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -179,9 +179,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -219,7 +219,7 @@ main::@1: scope:[main] from main main::@6 main::i#2 = phi( main/main::i#0, main::@6/main::i#1 ) sub::idx#0 = main::i#2 sub::s#0 = $80 - call sub + call sub to:main::@4 main::@4: scope:[main] from main::@1 print_char_cursor#56 = phi( main::@1/print_char_cursor#57 ) @@ -228,7 +228,7 @@ main::@4: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) sub::idx#1 = main::i#3 sub::s#1 = $40 - call sub + call sub to:main::@5 main::@5: scope:[main] from main::@4 print_char_cursor#55 = phi( main::@4/print_char_cursor#56 ) @@ -237,7 +237,7 @@ main::@5: scope:[main] from main::@4 main::i#4 = phi( main::@4/main::i#3 ) sub::idx#2 = main::i#4 sub::s#2 = $40 - call sub + call sub to:main::@6 main::@6: scope:[main] from main::@5 print_char_cursor#54 = phi( main::@5/print_char_cursor#55 ) @@ -252,7 +252,7 @@ main::@2: scope:[main] from main::@6 print_char_cursor#50 = phi( main::@6/print_char_cursor#54 ) print_line_cursor#20 = phi( main::@6/print_line_cursor#23 ) print_screen#5 = phi( main::@6/print_screen#7 ) - call print_cls + call print_cls to:main::@7 main::@7: scope:[main] from main::@2 print_char_cursor#38 = phi( main::@2/print_char_cursor#15 ) @@ -265,16 +265,16 @@ main::@3: scope:[main] from main::@7 main::@9 print_line_cursor#24 = phi( main::@7/print_line_cursor#4, main::@9/print_line_cursor#5 ) print_char_cursor#51 = phi( main::@7/print_char_cursor#16, main::@9/print_char_cursor#18 ) main::j#2 = phi( main::@7/main::j#0, main::@9/main::j#1 ) - main::$8 = main::j#2 * SIZEOF_SIGNED_WORD + main::$8 = main::j#2 * SIZEOF_INT print_sint::w#1 = words[main::$8] - call print_sint + call print_sint to:main::@8 main::@8: scope:[main] from main::@3 main::j#4 = phi( main::@3/main::j#2 ) print_line_cursor#21 = phi( main::@3/print_line_cursor#24 ) print_char_cursor#39 = phi( main::@3/print_char_cursor#5 ) print_char_cursor#17 = print_char_cursor#39 - call print_ln + call print_ln to:main::@9 main::@9: scope:[main] from main::@8 main::j#3 = phi( main::@8/main::j#4 ) @@ -294,11 +294,11 @@ main::@return: scope:[main] from main::@9 return to:@return -void sub(byte sub::idx , byte sub::s) +void sub(char idx , char s) sub: scope:[sub] from main::@1 main::@4 main::@5 sub::s#3 = phi( main::@1/sub::s#0, main::@4/sub::s#1, main::@5/sub::s#2 ) sub::idx#3 = phi( main::@1/sub::idx#0, main::@4/sub::idx#1, main::@5/sub::idx#2 ) - sub::$0 = sub::idx#3 * SIZEOF_SIGNED_WORD + sub::$0 = sub::idx#3 * SIZEOF_INT words[sub::$0] = words[sub::$0] - sub::s#3 to:sub::@return sub::@return: scope:[sub] from sub @@ -309,7 +309,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#20 = print_line_cursor#7 to:__start::@1 @@ -317,7 +317,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#8 = phi( __start::__init1/print_screen#0 ) print_char_cursor#52 = phi( __start::__init1/print_char_cursor#20 ) print_line_cursor#22 = phi( __start::__init1/print_line_cursor#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#8 ) @@ -337,221 +337,221 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_INT = 2 void __start() void main() -bool~ main::$4 -bool~ main::$7 -byte~ main::$8 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +bool main::$4 +bool main::$7 +char main::$8 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#10 -byte* print_screen#11 -byte* print_screen#12 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -byte* print_screen#8 -byte* print_screen#9 -void print_sint(signed word print_sint::w) -bool~ print_sint::$0 -signed word~ print_sint::$4 -signed word print_sint::w -signed word print_sint::w#0 -signed word print_sint::w#1 -signed word print_sint::w#2 -signed word print_sint::w#3 -signed word print_sint::w#4 -signed word print_sint::w#5 -signed word print_sint::w#6 -signed word print_sint::w#7 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -void sub(byte sub::idx , byte sub::s) -byte~ sub::$0 -byte sub::idx -byte sub::idx#0 -byte sub::idx#1 -byte sub::idx#2 -byte sub::idx#3 -byte sub::s -byte sub::s#0 -byte sub::s#1 -byte sub::s#2 -byte sub::s#3 -constant signed word* words[] = { -$6000, -$600, -$60, -6, 0, 6, $60, $600, $6000 } +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#10 +char *print_screen#11 +char *print_screen#12 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +char *print_screen#8 +char *print_screen#9 +void print_sint(int w) +bool print_sint::$0 +int print_sint::$4 +int print_sint::w +int print_sint::w#0 +int print_sint::w#1 +int print_sint::w#2 +int print_sint::w#3 +int print_sint::w#4 +int print_sint::w#5 +int print_sint::w#6 +int print_sint::w#7 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +void sub(char idx , char s) +char sub::$0 +char sub::idx +char sub::idx#0 +char sub::idx#1 +char sub::idx#2 +char sub::idx#3 +char sub::s +char sub::s#0 +char sub::s#1 +char sub::s#2 +char sub::s#3 +__constant int words[] = { -$6000, -$600, -$60, -6, 0, 6, $60, $600, $6000 } Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 Adding number conversion cast (snumber) 0 in print_sint::$0 = print_sint::w#2 < 0 @@ -565,7 +565,7 @@ Adding number conversion cast (unumber) $40 in sub::s#1 = $40 Adding number conversion cast (unumber) $40 in sub::s#2 = $40 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast sub::s#0 = (unumber)$80 Inlining cast sub::s#1 = (unumber)$40 Inlining cast sub::s#2 = (unumber)$40 @@ -579,19 +579,19 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $80 Simplifying constant integer cast $40 Simplifying constant integer cast $40 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $28 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [84] memset::$1 = memset::num#1 <= 0 from [83] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#11 print_char_cursor#0 print_line_cursor#12 print_char_cursor#24 print_line_cursor#1 print_char_cursor#1 @@ -690,13 +690,13 @@ Constant sub::s#0 = $80 Constant sub::s#1 = $40 Constant sub::s#2 = $40 Constant main::j#0 = 0 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [52] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -719,15 +719,15 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 9 Simplifying constant integer cast 9 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 9 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 9 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [31] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [47] main::$8 = main::j#2 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [55] sub::$0 = sub::idx#3 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [47] main::$8 = main::j#2 * SIZEOF_INT +Rewriting multiplication to use shift [55] sub::$0 = sub::idx#3 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print_char::ch#0 Inlining constant with var siblings print_char::ch#1 @@ -737,22 +737,22 @@ Inlining constant with var siblings main::j#0 Inlining constant with var siblings sub::s#0 Inlining constant with var siblings sub::s#1 Inlining constant with var siblings sub::s#2 -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined print_char::ch#1 = ' ' Constant inlined print_char::ch#0 = '-' Constant inlined main::i#0 = 0 Constant inlined sub::s#0 = $80 Constant inlined sub::s#1 = $40 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined sub::s#2 = $40 Constant inlined main::j#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@10(between main::@6 and main::@1) @@ -833,15 +833,15 @@ main: scope:[main] from main::@1: scope:[main] from main main::@6 [1] main::i#2 = phi( main/0, main::@6/main::i#1 ) [2] sub::idx#0 = main::i#2 - [3] call sub + [3] call sub to:main::@4 main::@4: scope:[main] from main::@1 [4] sub::idx#1 = main::i#2 - [5] call sub + [5] call sub to:main::@5 main::@5: scope:[main] from main::@4 [6] sub::idx#2 = main::i#2 - [7] call sub + [7] call sub to:main::@6 main::@6: scope:[main] from main::@5 [8] main::i#1 = ++ main::i#2 @@ -849,7 +849,7 @@ main::@6: scope:[main] from main::@5 to:main::@2 main::@2: scope:[main] from main::@6 [10] phi() - [11] call print_cls + [11] call print_cls to:main::@3 main::@3: scope:[main] from main::@2 main::@9 [12] print_line_cursor#21 = phi( main::@2/print_screen#0, main::@9/print_line_cursor#0 ) @@ -857,11 +857,11 @@ main::@3: scope:[main] from main::@2 main::@9 [12] main::j#2 = phi( main::@2/0, main::@9/main::j#1 ) [13] main::$8 = main::j#2 << 1 [14] print_sint::w#1 = words[main::$8] - [15] call print_sint + [15] call print_sint to:main::@7 main::@7: scope:[main] from main::@3 [16] phi() - [17] call print_ln + [17] call print_ln to:main::@8 main::@8: scope:[main] from main::@7 [18] main::j#1 = ++ main::j#2 @@ -874,7 +874,7 @@ main::@9: scope:[main] from main::@8 [21] print_char_cursor#63 = print_line_cursor#0 to:main::@3 -void sub(byte sub::idx , byte sub::s) +void sub(char idx , char s) sub: scope:[sub] from main::@1 main::@4 main::@5 [22] sub::s#3 = phi( main::@1/$80, main::@4/$40, main::@5/$40 ) [22] sub::idx#3 = phi( main::@1/sub::idx#0, main::@4/sub::idx#1, main::@5/sub::idx#2 ) @@ -888,31 +888,31 @@ sub::@return: scope:[sub] from sub void print_cls() print_cls: scope:[print_cls] from main::@2 [26] phi() - [27] call memset + [27] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [28] return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@3 [29] if(print_sint::w#1<0) goto print_sint::@1 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [30] phi() - [31] call print_char + [31] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [32] print_sint::w#4 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#1 ) - [33] print_uint::w#0 = (word)print_sint::w#4 - [34] call print_uint + [33] print_uint::w#0 = (unsigned int)print_sint::w#4 + [34] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [35] return to:@return print_sint::@1: scope:[print_sint] from print_sint [36] phi() - [37] call print_char + [37] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [38] print_sint::w#0 = - print_sint::w#1 @@ -931,12 +931,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [43] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [44] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [45] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [45] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [46] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -947,7 +947,7 @@ memset::@2: scope:[memset] from memset::@1 [49] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_sint::@1 print_sint::@3 print_uchar print_uchar::@1 [50] print_char_cursor#35 = phi( print_sint::@1/print_char_cursor#51, print_sint::@3/print_char_cursor#51, print_uchar/print_char_cursor#12, print_uchar::@1/print_char_cursor#12 ) [50] print_char::ch#4 = phi( print_sint::@1/'-', print_sint::@3/' ', print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 ) @@ -958,30 +958,30 @@ print_char::@return: scope:[print_char] from print_char [53] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 [54] print_uchar::b#0 = byte1 print_uint::w#0 - [55] call print_uchar + [55] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [56] print_uchar::b#1 = byte0 print_uint::w#0 - [57] call print_uchar + [57] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [58] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [59] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [60] print_uchar::$0 = print_uchar::b#2 >> 4 [61] print_char::ch#2 = print_hextab[print_uchar::$0] - [62] call print_char + [62] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [63] print_uchar::$2 = print_uchar::b#2 & $f [64] print_char::ch#3 = print_hextab[print_uchar::$2] - [65] call print_char + [65] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [66] return @@ -990,63 +990,63 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$8 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.857142857142857 -byte main::j -byte main::j#1 11.0 -byte main::j#2 5.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#2 20002.0 -byte print_char::ch#3 20002.0 -byte print_char::ch#4 120003.0 -byte* print_char_cursor -byte* print_char_cursor#12 4643.0 -byte* print_char_cursor#35 110103.0 -byte* print_char_cursor#51 35.5 -byte* print_char_cursor#63 22.0 +char main::$8 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.857142857142857 +char main::j +char main::j#1 // 11.0 +char main::j#2 // 5.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#2 // 20002.0 +char print_char::ch#3 // 20002.0 +char print_char::ch#4 // 120003.0 +char *print_char_cursor +char *print_char_cursor#12 // 4643.0 +char *print_char_cursor#35 // 110103.0 +char *print_char_cursor#51 // 35.5 +char *print_char_cursor#63 // 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 4289.285714285714 -byte* print_line_cursor#10 20103.0 -byte* print_line_cursor#21 18.666666666666664 +char *print_line_cursor +char *print_line_cursor#0 // 4289.285714285714 +char *print_line_cursor#10 // 20103.0 +char *print_line_cursor#21 // 18.666666666666664 void print_ln() -byte* print_screen -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 202.0 -signed word print_sint::w#1 52.33333333333333 -signed word print_sint::w#4 202.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 -void sub(byte sub::idx , byte sub::s) -byte~ sub::$0 303.0 -byte sub::idx -byte sub::idx#0 22.0 -byte sub::idx#1 22.0 -byte sub::idx#2 22.0 -byte sub::idx#3 134.0 -byte sub::s -byte sub::s#3 50.5 +char *print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // 202.0 +int print_sint::w#1 // 52.33333333333333 +int print_sint::w#4 // 202.0 +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 +void sub(char idx , char s) +char sub::$0 // 303.0 +char sub::idx +char sub::idx#0 // 22.0 +char sub::idx#1 // 22.0 +char sub::idx#2 // 22.0 +char sub::idx#3 // 134.0 +char sub::s +char sub::s#3 // 50.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -1105,7 +1105,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i Removing always clobbered register reg byte a as potential for zp[1]:5 [ sub::s#3 ] Statement [24] words[sub::$0] = words[sub::$0] - sub::s#3 [ ] ( sub:3 [ main::i#2 ] { { sub::idx#0 = sub::idx#3 main::i#2 } } sub:5 [ main::i#2 ] { { sub::idx#1 = sub::idx#3 main::i#2 } } sub:7 [ main::i#2 ] { { sub::idx#2 = sub::idx#3 main::i#2 } } ) always clobbers reg byte a Statement [29] if(print_sint::w#1<0) goto print_sint::@1 [ print_char_cursor#51 print_sint::w#1 ] ( print_sint:15 [ main::j#2 print_line_cursor#21 print_char_cursor#51 print_sint::w#1 ] { } ) always clobbers reg byte a -Statement [33] print_uint::w#0 = (word)print_sint::w#4 [ print_uint::w#0 print_char_cursor#12 ] ( print_sint:15 [ main::j#2 print_line_cursor#21 print_uint::w#0 print_char_cursor#12 ] { } ) always clobbers reg byte a +Statement [33] print_uint::w#0 = (unsigned int)print_sint::w#4 [ print_uint::w#0 print_char_cursor#12 ] ( print_sint:15 [ main::j#2 print_line_cursor#21 print_uint::w#0 print_char_cursor#12 ] { } ) always clobbers reg byte a Statement [38] print_sint::w#0 = - print_sint::w#1 [ print_sint::w#0 print_char_cursor#12 ] ( print_sint:15 [ main::j#2 print_line_cursor#21 print_sint::w#0 print_char_cursor#12 ] { } ) always clobbers reg byte a Statement [41] print_line_cursor#0 = print_line_cursor#10 + $28 [ print_line_cursor#0 print_char_cursor#12 ] ( print_ln:17 [ main::j#2 print_line_cursor#0 print_char_cursor#12 ] { } ) always clobbers reg byte a Statement [42] if(print_line_cursor#0sub] sub_from___b1: // [22] phi sub::s#3 = $80 [phi:main::@1->sub#0] -- vbuxx=vbuc1 @@ -1226,7 +1226,7 @@ main: { __b4: // [4] sub::idx#1 = main::i#2 -- vbuaa=vbuyy tya - // [5] call sub + // [5] call sub // [22] phi from main::@4 to sub [phi:main::@4->sub] sub_from___b4: // [22] phi sub::s#3 = $40 [phi:main::@4->sub#0] -- vbuxx=vbuc1 @@ -1238,7 +1238,7 @@ main: { __b5: // [6] sub::idx#2 = main::i#2 -- vbuaa=vbuyy tya - // [7] call sub + // [7] call sub // [22] phi from main::@5 to sub [phi:main::@5->sub] sub_from___b5: // [22] phi sub::s#3 = $40 [phi:main::@5->sub#0] -- vbuxx=vbuc1 @@ -1258,7 +1258,7 @@ main: { jmp __b2 // main::@2 __b2: - // [11] call print_cls + // [11] call print_cls // [26] phi from main::@2 to print_cls [phi:main::@2->print_cls] print_cls_from___b2: jsr print_cls @@ -1289,14 +1289,14 @@ main: { sta.z print_sint.w lda words+1,y sta.z print_sint.w+1 - // [15] call print_sint + // [15] call print_sint jsr print_sint // [16] phi from main::@3 to main::@7 [phi:main::@3->main::@7] __b7_from___b3: jmp __b7 // main::@7 __b7: - // [17] call print_ln + // [17] call print_ln // [39] phi from main::@7 to print_ln [phi:main::@7->print_ln] print_ln_from___b7: jsr print_ln @@ -1329,7 +1329,7 @@ main: { jmp __b3 } // sub -// sub(byte register(A) idx, byte register(X) s) +// void sub(__register(A) char idx, __register(X) char s) sub: { // [23] sub::$0 = sub::idx#3 << 1 -- vbuaa=vbuaa_rol_1 asl @@ -1352,7 +1352,7 @@ sub: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [27] call memset + // [27] call memset // [44] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1364,7 +1364,7 @@ print_cls: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp(5) w) +// void print_sint(__zp(5) int w) print_sint: { .label w = 5 // [29] if(print_sint::w#1<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 @@ -1375,7 +1375,7 @@ print_sint: { jmp __b3 // print_sint::@3 __b3: - // [31] call print_char + // [31] call print_char // [50] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] print_char_from___b3: // [50] phi print_char_cursor#35 = print_char_cursor#51 [phi:print_sint::@3->print_char#0] -- register_copy @@ -1389,8 +1389,8 @@ print_sint: { jmp __b2 // print_sint::@2 __b2: - // [33] print_uint::w#0 = (word)print_sint::w#4 - // [34] call print_uint + // [33] print_uint::w#0 = (unsigned int)print_sint::w#4 + // [34] call print_uint jsr print_uint jmp __breturn // print_sint::@return @@ -1402,7 +1402,7 @@ print_sint: { jmp __b1 // print_sint::@1 __b1: - // [37] call print_char + // [37] call print_char // [50] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#35 = print_char_cursor#51 [phi:print_sint::@1->print_char#0] -- register_copy @@ -1457,6 +1457,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1465,7 +1466,7 @@ memset: { .label dst = 5 // [45] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [45] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [45] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1503,7 +1504,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [51] *print_char_cursor#35 = print_char::ch#4 -- _deref_pbuz1=vbuaa ldy #0 @@ -1521,12 +1522,12 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(5) w) +// void print_uint(__zp(5) unsigned int w) print_uint: { .label w = 5 // [54] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [55] call print_uchar + // [55] call print_uchar // [59] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [59] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy @@ -1536,7 +1537,7 @@ print_uint: { __b1: // [56] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [57] call print_uchar + // [57] call print_uchar // [59] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [59] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1549,7 +1550,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [60] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1560,7 +1561,7 @@ print_uchar: { // [61] print_char::ch#2 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [62] call print_char + // [62] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1575,7 +1576,7 @@ print_uchar: { axs #0 // [64] print_char::ch#3 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [65] call print_char + // [65] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#35 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1675,75 +1676,75 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte~ main::$8 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 7.857142857142857 -byte main::j -byte main::j#1 j zp[1]:2 11.0 -byte main::j#2 j zp[1]:2 5.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:5 2002.0 -byte* memset::dst#2 dst zp[2]:5 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#2 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#4 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#12 print_char_cursor zp[2]:7 4643.0 -byte* print_char_cursor#35 print_char_cursor zp[2]:7 110103.0 -byte* print_char_cursor#51 print_char_cursor zp[2]:7 35.5 -byte* print_char_cursor#63 print_char_cursor zp[2]:7 22.0 +char main::$8 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 7.857142857142857 +char main::j +char main::j#1 // j zp[1]:2 11.0 +char main::j#2 // j zp[1]:2 5.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:5 2002.0 +char *memset::dst#2 // dst zp[2]:5 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#2 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#4 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#12 // print_char_cursor zp[2]:7 4643.0 +char *print_char_cursor#35 // print_char_cursor zp[2]:7 110103.0 +char *print_char_cursor#51 // print_char_cursor zp[2]:7 35.5 +char *print_char_cursor#63 // print_char_cursor zp[2]:7 22.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:3 4289.285714285714 -byte* print_line_cursor#10 print_line_cursor zp[2]:3 20103.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:3 18.666666666666664 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:3 4289.285714285714 +char *print_line_cursor#10 // print_line_cursor zp[2]:3 20103.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:3 18.666666666666664 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:5 202.0 -signed word print_sint::w#1 w zp[2]:5 52.33333333333333 -signed word print_sint::w#4 w zp[2]:5 202.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:5 701.0 -void sub(byte sub::idx , byte sub::s) -byte~ sub::$0 reg byte a 303.0 -byte sub::idx -byte sub::idx#0 reg byte a 22.0 -byte sub::idx#1 reg byte a 22.0 -byte sub::idx#2 reg byte a 22.0 -byte sub::idx#3 reg byte a 134.0 -byte sub::s -byte sub::s#3 reg byte x 50.5 -constant signed word* words[] = { -$6000, -$600, -$60, -6, 0, 6, $60, $600, $6000 } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:5 202.0 +int print_sint::w#1 // w zp[2]:5 52.33333333333333 +int print_sint::w#4 // w zp[2]:5 202.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:5 701.0 +void sub(char idx , char s) +char sub::$0 // reg byte a 303.0 +char sub::idx +char sub::idx#0 // reg byte a 22.0 +char sub::idx#1 // reg byte a 22.0 +char sub::idx#2 // reg byte a 22.0 +char sub::idx#3 // reg byte a 134.0 +char sub::s +char sub::s#3 // reg byte x 50.5 +__constant int words[] = { -$6000, -$600, -$60, -6, 0, 6, $60, $600, $6000 } reg byte y [ main::i#2 main::i#1 ] zp[1]:2 [ main::j#2 main::j#1 ] @@ -1792,7 +1793,7 @@ main: { // sub(i, $80) // [2] sub::idx#0 = main::i#2 -- vbuaa=vbuyy tya - // [3] call sub + // [3] call sub // [22] phi from main::@1 to sub [phi:main::@1->sub] // [22] phi sub::s#3 = $80 [phi:main::@1->sub#0] -- vbuxx=vbuc1 ldx #$80 @@ -1802,7 +1803,7 @@ main: { // sub(i, $40) // [4] sub::idx#1 = main::i#2 -- vbuaa=vbuyy tya - // [5] call sub + // [5] call sub // [22] phi from main::@4 to sub [phi:main::@4->sub] // [22] phi sub::s#3 = $40 [phi:main::@4->sub#0] -- vbuxx=vbuc1 ldx #$40 @@ -1812,7 +1813,7 @@ main: { // sub(i, $40) // [6] sub::idx#2 = main::i#2 -- vbuaa=vbuyy tya - // [7] call sub + // [7] call sub // [22] phi from main::@5 to sub [phi:main::@5->sub] // [22] phi sub::s#3 = $40 [phi:main::@5->sub#0] -- vbuxx=vbuc1 ldx #$40 @@ -1828,7 +1829,7 @@ main: { // [10] phi from main::@6 to main::@2 [phi:main::@6->main::@2] // main::@2 // print_cls() - // [11] call print_cls + // [11] call print_cls // [26] phi from main::@2 to print_cls [phi:main::@2->print_cls] jsr print_cls // [12] phi from main::@2 to main::@3 [phi:main::@2->main::@3] @@ -1857,12 +1858,12 @@ main: { sta.z print_sint.w lda words+1,y sta.z print_sint.w+1 - // [15] call print_sint + // [15] call print_sint jsr print_sint // [16] phi from main::@3 to main::@7 [phi:main::@3->main::@7] // main::@7 // print_ln() - // [17] call print_ln + // [17] call print_ln // [39] phi from main::@7 to print_ln [phi:main::@7->print_ln] jsr print_ln // main::@8 @@ -1891,7 +1892,7 @@ main: { jmp __b3 } // sub -// sub(byte register(A) idx, byte register(X) s) +// void sub(__register(A) char idx, __register(X) char s) sub: { // words[idx] -= s // [23] sub::$0 = sub::idx#3 << 1 -- vbuaa=vbuaa_rol_1 @@ -1915,7 +1916,7 @@ sub: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [27] call memset + // [27] call memset // [44] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -1925,7 +1926,7 @@ print_cls: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp(5) w) +// void print_sint(__zp(5) int w) print_sint: { .label w = 5 // if(w<0) @@ -1935,7 +1936,7 @@ print_sint: { // [30] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3] // print_sint::@3 // print_char(' ') - // [31] call print_char + // [31] call print_char // [50] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] // [50] phi print_char_cursor#35 = print_char_cursor#51 [phi:print_sint::@3->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 @@ -1946,8 +1947,8 @@ print_sint: { // print_sint::@2 __b2: // print_uint((unsigned int)w) - // [33] print_uint::w#0 = (word)print_sint::w#4 - // [34] call print_uint + // [33] print_uint::w#0 = (unsigned int)print_sint::w#4 + // [34] call print_uint jsr print_uint // print_sint::@return // } @@ -1957,7 +1958,7 @@ print_sint: { // print_sint::@1 __b1: // print_char('-') - // [37] call print_char + // [37] call print_char // [50] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] // [50] phi print_char_cursor#35 = print_char_cursor#51 [phi:print_sint::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 @@ -2008,6 +2009,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2015,7 +2017,7 @@ memset: { .label end = str+num .label dst = 5 // [45] phi from memset to memset::@1 [phi:memset->memset::@1] - // [45] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [45] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2053,7 +2055,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [51] *print_char_cursor#35 = print_char::ch#4 -- _deref_pbuz1=vbuaa @@ -2072,13 +2074,13 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(5) w) +// void print_uint(__zp(5) unsigned int w) print_uint: { .label w = 5 // print_uchar(BYTE1(w)) // [54] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [55] call print_uchar + // [55] call print_uchar // [59] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [59] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy jsr print_uchar @@ -2086,7 +2088,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [56] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [57] call print_uchar + // [57] call print_uchar // [59] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [59] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy jsr print_uchar @@ -2097,7 +2099,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [60] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2110,7 +2112,7 @@ print_uchar: { // [61] print_char::ch#2 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [62] call print_char + // [62] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] // [50] phi print_char_cursor#35 = print_char_cursor#12 [phi:print_uchar->print_char#0] -- register_copy @@ -2124,7 +2126,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [64] print_char::ch#3 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [65] call print_char + // [65] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [50] phi print_char_cursor#35 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = print_char::ch#3 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/signed-indexed-subtract.sym b/src/test/ref/signed-indexed-subtract.sym index d6b68eed1..98a4986ea 100644 --- a/src/test/ref/signed-indexed-subtract.sym +++ b/src/test/ref/signed-indexed-subtract.sym @@ -1,72 +1,72 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte~ main::$8 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 7.857142857142857 -byte main::j -byte main::j#1 j zp[1]:2 11.0 -byte main::j#2 j zp[1]:2 5.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:5 2002.0 -byte* memset::dst#2 dst zp[2]:5 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#2 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#4 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#12 print_char_cursor zp[2]:7 4643.0 -byte* print_char_cursor#35 print_char_cursor zp[2]:7 110103.0 -byte* print_char_cursor#51 print_char_cursor zp[2]:7 35.5 -byte* print_char_cursor#63 print_char_cursor zp[2]:7 22.0 +char main::$8 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 7.857142857142857 +char main::j +char main::j#1 // j zp[1]:2 11.0 +char main::j#2 // j zp[1]:2 5.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:5 2002.0 +char *memset::dst#2 // dst zp[2]:5 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#2 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#4 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#12 // print_char_cursor zp[2]:7 4643.0 +char *print_char_cursor#35 // print_char_cursor zp[2]:7 110103.0 +char *print_char_cursor#51 // print_char_cursor zp[2]:7 35.5 +char *print_char_cursor#63 // print_char_cursor zp[2]:7 22.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:3 4289.285714285714 -byte* print_line_cursor#10 print_line_cursor zp[2]:3 20103.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:3 18.666666666666664 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:3 4289.285714285714 +char *print_line_cursor#10 // print_line_cursor zp[2]:3 20103.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:3 18.666666666666664 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:5 202.0 -signed word print_sint::w#1 w zp[2]:5 52.33333333333333 -signed word print_sint::w#4 w zp[2]:5 202.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:5 701.0 -void sub(byte sub::idx , byte sub::s) -byte~ sub::$0 reg byte a 303.0 -byte sub::idx -byte sub::idx#0 reg byte a 22.0 -byte sub::idx#1 reg byte a 22.0 -byte sub::idx#2 reg byte a 22.0 -byte sub::idx#3 reg byte a 134.0 -byte sub::s -byte sub::s#3 reg byte x 50.5 -constant signed word* words[] = { -$6000, -$600, -$60, -6, 0, 6, $60, $600, $6000 } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:5 202.0 +int print_sint::w#1 // w zp[2]:5 52.33333333333333 +int print_sint::w#4 // w zp[2]:5 202.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:5 701.0 +void sub(char idx , char s) +char sub::$0 // reg byte a 303.0 +char sub::idx +char sub::idx#0 // reg byte a 22.0 +char sub::idx#1 // reg byte a 22.0 +char sub::idx#2 // reg byte a 22.0 +char sub::idx#3 // reg byte a 134.0 +char sub::s +char sub::s#3 // reg byte x 50.5 +__constant int words[] = { -$6000, -$600, -$60, -6, 0, 6, $60, $600, $6000 } reg byte y [ main::i#2 main::i#1 ] zp[1]:2 [ main::j#2 main::j#1 ] diff --git a/src/test/ref/signed-word-minus-byte-2.log b/src/test/ref/signed-word-minus-byte-2.log index 5bcb5d192..e9dab97bb 100644 --- a/src/test/ref/signed-word-minus-byte-2.log +++ b/src/test/ref/signed-word-minus-byte-2.log @@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@1 main::w1#2 = phi( main/main::w1#0, main::@1/main::w1#1 ) main::$0 = main::w1#2 - $29 main::w1#1 = main::$0 - main::$2 = main::i#2 * SIZEOF_SIGNED_WORD + main::$2 = main::i#2 * SIZEOF_INT main::screen[main::$2] = main::w1#1 main::i#1 = main::i#2 + rangenext(0,$a) main::$1 = main::i#1 != rangelast(0,$a) @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,31 +32,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() void main() -number~ main::$0 -bool~ main::$1 -byte~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant signed word* main::screen = (signed word*)$400 -signed word main::w1 -signed word main::w1#0 -signed word main::w1#1 -signed word main::w1#2 +number main::$0 +bool main::$1 +char main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant int *main::screen = (int *)$400 +int main::w1 +int main::w1#0 +int main::w1#1 +int main::w1#2 Adding number conversion cast (snumber) $29 in main::$0 = main::w1#2 - $29 Adding number conversion cast (snumber) main::$0 in main::$0 = main::w1#2 - (snumber)$29 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Simplifying constant integer cast $29 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $29 +Finalized signed number type (signed char) $29 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed word in main::$0 = main::w1#2 - $29 +Inferred type updated to int in main::$0 = main::w1#2 - $29 Alias main::w1#1 = main::$0 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [8] if(main::i#1!=rangelast(0,$a)) goto main::@1 @@ -75,16 +75,16 @@ Adding number conversion cast (unumber) $b in [5] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [2] main::$2 = main::i#2 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [2] main::$2 = main::i#2 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::w1#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::w1#0 = $4d2 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -119,13 +119,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.25 -signed word main::w1 -signed word main::w1#1 6.6000000000000005 -signed word main::w1#2 22.0 +char main::$2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.25 +int main::w1 +int main::w1#1 // 6.6000000000000005 +int main::w1#2 // 22.0 Initial phi equivalence classes [ main::w1#2 main::w1#1 ] @@ -237,14 +237,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 -constant signed word* main::screen = (signed word*) 1024 -signed word main::w1 -signed word main::w1#1 w1 zp[2]:2 6.6000000000000005 -signed word main::w1#2 w1 zp[2]:2 22.0 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 +__constant int *main::screen = (int *) 1024 +int main::w1 +int main::w1#1 // w1 zp[2]:2 6.6000000000000005 +int main::w1#2 // w1 zp[2]:2 22.0 zp[2]:2 [ main::w1#2 main::w1#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/signed-word-minus-byte-2.sym b/src/test/ref/signed-word-minus-byte-2.sym index 8e661fa21..99d1eaf5e 100644 --- a/src/test/ref/signed-word-minus-byte-2.sym +++ b/src/test/ref/signed-word-minus-byte-2.sym @@ -1,12 +1,12 @@ void main() -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 -constant signed word* main::screen = (signed word*) 1024 -signed word main::w1 -signed word main::w1#1 w1 zp[2]:2 6.6000000000000005 -signed word main::w1#2 w1 zp[2]:2 22.0 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 +__constant int *main::screen = (int *) 1024 +int main::w1 +int main::w1#1 // w1 zp[2]:2 6.6000000000000005 +int main::w1#2 // w1 zp[2]:2 22.0 zp[2]:2 [ main::w1#2 main::w1#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/signed-words.cfg b/src/test/ref/signed-words.cfg index 2909b4bd6..042c3ffb3 100644 --- a/src/test/ref/signed-words.cfg +++ b/src/test/ref/signed-words.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call init + [1] call init to:main::@1 main::@1: scope:[main] from main main::@1 main::@2 [2] yvel_init#15 = phi( main::@1/yvel_init#15, main/$64, main::@2/yvel_init#12 ) @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@1 main::@2 to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call anim + [5] call anim to:main::@1 void init() @@ -25,7 +25,7 @@ init: scope:[init] from main [9] *SPRITES_XPOS = $64 [10] *SPRITES_YPOS = $64 [11] *SPRITES_COLOR = WHITE - [12] *SPRITES_PTR = (byte)SPRITE/$40 + [12] *SPRITES_PTR = (char)SPRITE/$40 to:init::@1 init::@1: scope:[init] from init init::@2 [13] init::sc#2 = phi( init/SCREEN, init::@2/init::sc#1 ) @@ -74,8 +74,8 @@ anim::@1: scope:[anim] from anim anim::@3 [34] anim::sprite_x#0 = anim::$5 + $a0 [35] anim::$7 = ypos#12 >> 5 [36] anim::sprite_y#0 = $e6 - anim::$7 - [37] *SPRITES_XPOS = (byte)anim::sprite_x#0 - [38] *SPRITES_YPOS = (byte)anim::sprite_y#0 + [37] *SPRITES_XPOS = (char)anim::sprite_x#0 + [38] *SPRITES_YPOS = (char)anim::sprite_y#0 [39] anim::$9 = byte1 anim::sprite_x#0 [40] *SPRITES_XMSB = anim::$9 to:anim::@return diff --git a/src/test/ref/signed-words.log b/src/test/ref/signed-words.log index fcbbab5b7..a90c887bc 100644 --- a/src/test/ref/signed-words.log +++ b/src/test/ref/signed-words.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement anim::$6 Eliminating unused variable with no statement anim::$8 @@ -12,7 +12,7 @@ main: scope:[main] from __start::@1 ypos#21 = phi( __start::@1/ypos#17 ) xpos#21 = phi( __start::@1/xpos#17 ) yvel#19 = phi( __start::@1/yvel#16 ) - call init + call init to:main::@3 main::@3: scope:[main] from main yvel_init#20 = phi( main/yvel_init#21 ) @@ -36,7 +36,7 @@ main::@2: scope:[main] from main::@1 ypos#15 = phi( main::@1/ypos#18 ) xpos#14 = phi( main::@1/xpos#18 ) yvel#14 = phi( main::@1/yvel#17 ) - call anim + call anim to:main::@4 main::@4: scope:[main] from main::@2 yvel_init#8 = phi( main::@2/yvel_init#4 ) @@ -73,7 +73,7 @@ init: scope:[init] from main SPRITES_XPOS[0] = $64 SPRITES_YPOS[0] = $64 SPRITES_COLOR[0] = WHITE - SPRITES_PTR[0] = (byte)SPRITE/$40 + SPRITES_PTR[0] = (char)SPRITE/$40 init::sc#0 = SCREEN to:init::@1 init::@1: scope:[init] from init init::@2 @@ -127,8 +127,8 @@ anim::@1: scope:[anim] from anim anim::@4 anim::sprite_x#0 = anim::$5 + $a0 anim::$7 = ypos#2 >> 5 anim::sprite_y#0 = $e6 - anim::$7 - SPRITES_XPOS[0] = (byte)anim::sprite_x#0 - SPRITES_YPOS[0] = (byte)anim::sprite_y#0 + SPRITES_XPOS[0] = (char)anim::sprite_x#0 + SPRITES_YPOS[0] = (char)anim::sprite_y#0 anim::$9 = byte1 anim::sprite_x#0 *SPRITES_XMSB = anim::$9 to:anim::@return @@ -188,7 +188,7 @@ __start::@1: scope:[__start] from __start::__init1 ypos#17 = phi( __start::__init1/ypos#5 ) xpos#17 = phi( __start::__init1/xpos#5 ) yvel#16 = phi( __start::__init1/yvel#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 yvel_init#13 = phi( __start::@1/yvel_init#1 ) @@ -217,164 +217,164 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const RASTER = (byte*)$d012 -constant byte* const SCREEN = (byte*)$400 -constant byte* const SPRITE = (byte*)$2000 -constant byte* const SPRITES_COLOR = (byte*)$d027 -constant byte* const SPRITES_ENABLE = (byte*)$d015 -constant byte* const SPRITES_EXPAND_X = (byte*)$d01d -constant byte* const SPRITES_EXPAND_Y = (byte*)$d017 -constant byte* const SPRITES_PTR = SCREEN+$3f8 -constant byte* const SPRITES_XMSB = (byte*)$d010 -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 -constant const byte WHITE = 1 +__constant char * const RASTER = (char *)$d012 +__constant char * const SCREEN = (char *)$400 +__constant char * const SPRITE = (char *)$2000 +__constant char * const SPRITES_COLOR = (char *)$d027 +__constant char * const SPRITES_ENABLE = (char *)$d015 +__constant char * const SPRITES_EXPAND_X = (char *)$d01d +__constant char * const SPRITES_EXPAND_Y = (char *)$d017 +__constant char * const SPRITES_PTR = SCREEN+$3f8 +__constant char * const SPRITES_XMSB = (char *)$d010 +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 +__constant const char WHITE = 1 void __start() void anim() -bool~ anim::$0 -bool~ anim::$1 -signed word~ anim::$10 -number~ anim::$11 -bool~ anim::$12 -bool~ anim::$13 -signed word~ anim::$2 -signed word~ anim::$3 -signed word~ anim::$4 -signed word~ anim::$5 -signed word~ anim::$7 -byte~ anim::$9 -signed word anim::sprite_x -signed word anim::sprite_x#0 -signed word anim::sprite_y -signed word anim::sprite_y#0 -constant const signed word g = -5 +bool anim::$0 +bool anim::$1 +int anim::$10 +number anim::$11 +bool anim::$12 +bool anim::$13 +int anim::$2 +int anim::$3 +int anim::$4 +int anim::$5 +int anim::$7 +char anim::$9 +int anim::sprite_x +int anim::sprite_x#0 +int anim::sprite_y +int anim::sprite_y#0 +__constant const int g = -5 void init() -bool~ init::$0 -bool~ init::$1 -byte init::i -byte init::i#0 -byte init::i#1 -byte init::i#2 -byte* init::sc -byte* init::sc#0 -byte* init::sc#1 -byte* init::sc#2 -byte* init::sc#3 +bool init::$0 +bool init::$1 +char init::i +char init::i#0 +char init::i#1 +char init::i#2 +char *init::sc +char *init::sc#0 +char *init::sc#1 +char *init::sc#2 +char *init::sc#3 void main() -bool~ main::$1 -signed word xpos -signed word xpos#0 -signed word xpos#1 -signed word xpos#10 -signed word xpos#11 -signed word xpos#12 -signed word xpos#13 -signed word xpos#14 -signed word xpos#15 -signed word xpos#16 -signed word xpos#17 -signed word xpos#18 -signed word xpos#19 -signed word xpos#2 -signed word xpos#20 -signed word xpos#21 -signed word xpos#3 -signed word xpos#4 -signed word xpos#5 -signed word xpos#6 -signed word xpos#7 -signed word xpos#8 -signed word xpos#9 -signed word xvel -signed word xvel#0 -signed word xvel#1 -signed word xvel#10 -signed word xvel#11 -signed word xvel#12 -signed word xvel#13 -signed word xvel#14 -signed word xvel#15 -signed word xvel#16 -signed word xvel#17 -signed word xvel#18 -signed word xvel#19 -signed word xvel#2 -signed word xvel#20 -signed word xvel#21 -signed word xvel#3 -signed word xvel#4 -signed word xvel#5 -signed word xvel#6 -signed word xvel#7 -signed word xvel#8 -signed word xvel#9 -signed word ypos -signed word ypos#0 -signed word ypos#1 -signed word ypos#10 -signed word ypos#11 -signed word ypos#12 -signed word ypos#13 -signed word ypos#14 -signed word ypos#15 -signed word ypos#16 -signed word ypos#17 -signed word ypos#18 -signed word ypos#19 -signed word ypos#2 -signed word ypos#20 -signed word ypos#21 -signed word ypos#3 -signed word ypos#4 -signed word ypos#5 -signed word ypos#6 -signed word ypos#7 -signed word ypos#8 -signed word ypos#9 -signed word yvel -signed word yvel#0 -signed word yvel#1 -signed word yvel#10 -signed word yvel#11 -signed word yvel#12 -signed word yvel#13 -signed word yvel#14 -signed word yvel#15 -signed word yvel#16 -signed word yvel#17 -signed word yvel#18 -signed word yvel#19 -signed word yvel#2 -signed word yvel#3 -signed word yvel#4 -signed word yvel#5 -signed word yvel#6 -signed word yvel#7 -signed word yvel#8 -signed word yvel#9 -signed word yvel_init -signed word yvel_init#0 -signed word yvel_init#1 -signed word yvel_init#10 -signed word yvel_init#11 -signed word yvel_init#12 -signed word yvel_init#13 -signed word yvel_init#14 -signed word yvel_init#15 -signed word yvel_init#16 -signed word yvel_init#17 -signed word yvel_init#18 -signed word yvel_init#19 -signed word yvel_init#2 -signed word yvel_init#20 -signed word yvel_init#21 -signed word yvel_init#3 -signed word yvel_init#4 -signed word yvel_init#5 -signed word yvel_init#6 -signed word yvel_init#7 -signed word yvel_init#8 -signed word yvel_init#9 +bool main::$1 +int xpos +int xpos#0 +int xpos#1 +int xpos#10 +int xpos#11 +int xpos#12 +int xpos#13 +int xpos#14 +int xpos#15 +int xpos#16 +int xpos#17 +int xpos#18 +int xpos#19 +int xpos#2 +int xpos#20 +int xpos#21 +int xpos#3 +int xpos#4 +int xpos#5 +int xpos#6 +int xpos#7 +int xpos#8 +int xpos#9 +int xvel +int xvel#0 +int xvel#1 +int xvel#10 +int xvel#11 +int xvel#12 +int xvel#13 +int xvel#14 +int xvel#15 +int xvel#16 +int xvel#17 +int xvel#18 +int xvel#19 +int xvel#2 +int xvel#20 +int xvel#21 +int xvel#3 +int xvel#4 +int xvel#5 +int xvel#6 +int xvel#7 +int xvel#8 +int xvel#9 +int ypos +int ypos#0 +int ypos#1 +int ypos#10 +int ypos#11 +int ypos#12 +int ypos#13 +int ypos#14 +int ypos#15 +int ypos#16 +int ypos#17 +int ypos#18 +int ypos#19 +int ypos#2 +int ypos#20 +int ypos#21 +int ypos#3 +int ypos#4 +int ypos#5 +int ypos#6 +int ypos#7 +int ypos#8 +int ypos#9 +int yvel +int yvel#0 +int yvel#1 +int yvel#10 +int yvel#11 +int yvel#12 +int yvel#13 +int yvel#14 +int yvel#15 +int yvel#16 +int yvel#17 +int yvel#18 +int yvel#19 +int yvel#2 +int yvel#3 +int yvel#4 +int yvel#5 +int yvel#6 +int yvel#7 +int yvel#8 +int yvel#9 +int yvel_init +int yvel_init#0 +int yvel_init#1 +int yvel_init#10 +int yvel_init#11 +int yvel_init#12 +int yvel_init#13 +int yvel_init#14 +int yvel_init#15 +int yvel_init#16 +int yvel_init#17 +int yvel_init#18 +int yvel_init#19 +int yvel_init#2 +int yvel_init#20 +int yvel_init#21 +int yvel_init#3 +int yvel_init#4 +int yvel_init#5 +int yvel_init#6 +int yvel_init#7 +int yvel_init#8 +int yvel_init#9 Adding number conversion cast (unumber) $3f8 in Adding number conversion cast (unumber) $ff in main::$1 = *RASTER != $ff @@ -386,8 +386,8 @@ Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = ((unumber)) $64 Adding number conversion cast (unumber) $64 in SPRITES_YPOS[0] = $64 Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = ((unumber)) $64 Adding number conversion cast (unumber) 0 in SPRITES_COLOR[0] = WHITE -Adding number conversion cast (unumber) $40 in SPRITES_PTR[0] = (byte)SPRITE/$40 -Adding number conversion cast (unumber) 0 in SPRITES_PTR[0] = (byte)SPRITE/(unumber)$40 +Adding number conversion cast (unumber) $40 in SPRITES_PTR[0] = (char)SPRITE/$40 +Adding number conversion cast (unumber) 0 in SPRITES_PTR[0] = (char)SPRITE/(unumber)$40 Adding number conversion cast (unumber) $3e8 in init::$0 = init::sc#2 != SCREEN+$3e8 Adding number conversion cast (unumber) $ff in SPRITE[init::i#2] = $ff Adding number conversion cast (snumber) 0 in anim::$0 = ypos#10 < 0 @@ -395,8 +395,8 @@ Adding number conversion cast (snumber) 7 in anim::$5 = xpos#2 >> 7 Adding number conversion cast (snumber) $a0 in anim::sprite_x#0 = anim::$5 + $a0 Adding number conversion cast (snumber) 5 in anim::$7 = ypos#2 >> 5 Adding number conversion cast (snumber) $e6 in anim::sprite_y#0 = $e6 - anim::$7 -Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = (byte)anim::sprite_x#0 -Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = (byte)anim::sprite_y#0 +Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = (char)anim::sprite_x#0 +Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = (char)anim::sprite_y#0 Adding number conversion cast (snumber) 0 in xpos#3 = 0 Adding number conversion cast (snumber) 0 in ypos#3 = 0 Adding number conversion cast (snumber) $a in anim::$11 = yvel_init#10 - $a @@ -414,17 +414,17 @@ Inlining cast xpos#3 = (snumber)0 Inlining cast ypos#3 = (snumber)0 Inlining cast yvel_init#3 = (snumber)$c8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53264 -Simplifying constant pointer cast (byte*) 53287 -Simplifying constant pointer cast (byte*) 53269 -Simplifying constant pointer cast (byte*) 53271 -Simplifying constant pointer cast (byte*) 53277 -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53264 +Simplifying constant pointer cast (char *) 53287 +Simplifying constant pointer cast (char *) 53269 +Simplifying constant pointer cast (char *) 53271 +Simplifying constant pointer cast (char *) 53277 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3f8 -Simplifying constant pointer cast (byte*) 8192 +Simplifying constant pointer cast (char *) 8192 Simplifying constant integer cast $ff Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -451,34 +451,34 @@ Simplifying constant integer cast $a Simplifying constant integer cast -$c8 Simplifying constant integer cast $c8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3f8 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) $ff -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 7 -Finalized signed number type (signed word) $a0 -Finalized signed number type (signed byte) 5 -Finalized signed number type (signed word) $e6 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) $a -Finalized signed number type (signed word) -$c8 -Finalized signed number type (signed word) $c8 +Finalized unsigned number type (unsigned int) $3f8 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) $ff +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 7 +Finalized signed number type (int) $a0 +Finalized signed number type (signed char) 5 +Finalized signed number type (int) $e6 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) $a +Finalized signed number type (int) -$c8 +Finalized signed number type (int) $c8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed word in anim::$11 = yvel_init#10 - $a +Inferred type updated to int in anim::$11 = yvel_init#10 - $a Inversing boolean not [45] anim::$1 = ypos#10 >= 0 from [44] anim::$0 = ypos#10 < 0 Inversing boolean not [70] anim::$13 = yvel_init#2 >= -$c8 from [69] anim::$12 = yvel_init#2 < -$c8 Successful SSA optimization Pass2UnaryNotSimplification @@ -568,9 +568,9 @@ Resolved ranged comparison value [27] if(init::i#1!=rangelast(0,$3f)) goto init: Simplifying expression containing zero SPRITES_XPOS in [12] SPRITES_XPOS[0] = $64 Simplifying expression containing zero SPRITES_YPOS in [13] SPRITES_YPOS[0] = $64 Simplifying expression containing zero SPRITES_COLOR in [14] SPRITES_COLOR[0] = WHITE -Simplifying expression containing zero SPRITES_PTR in [15] SPRITES_PTR[0] = (byte)SPRITE/$40 -Simplifying expression containing zero SPRITES_XPOS in [40] SPRITES_XPOS[0] = (byte)anim::sprite_x#0 -Simplifying expression containing zero SPRITES_YPOS in [41] SPRITES_YPOS[0] = (byte)anim::sprite_y#0 +Simplifying expression containing zero SPRITES_PTR in [15] SPRITES_PTR[0] = (char)SPRITE/$40 +Simplifying expression containing zero SPRITES_XPOS in [40] SPRITES_XPOS[0] = (char)anim::sprite_x#0 +Simplifying expression containing zero SPRITES_YPOS in [41] SPRITES_YPOS[0] = (char)anim::sprite_y#0 Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -585,7 +585,7 @@ Adding number conversion cast (unumber) $40 in [18] if(init::i#1!=$40) goto init Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $40 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings init::sc#0 Inlining constant with var siblings init::i#0 @@ -660,7 +660,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call init + [1] call init to:main::@1 main::@1: scope:[main] from main main::@1 main::@2 [2] yvel_init#15 = phi( main::@1/yvel_init#15, main/$64, main::@2/yvel_init#12 ) @@ -672,7 +672,7 @@ main::@1: scope:[main] from main main::@1 main::@2 to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call anim + [5] call anim to:main::@1 void init() @@ -683,7 +683,7 @@ init: scope:[init] from main [9] *SPRITES_XPOS = $64 [10] *SPRITES_YPOS = $64 [11] *SPRITES_COLOR = WHITE - [12] *SPRITES_PTR = (byte)SPRITE/$40 + [12] *SPRITES_PTR = (char)SPRITE/$40 to:init::@1 init::@1: scope:[init] from init init::@2 [13] init::sc#2 = phi( init/SCREEN, init::@2/init::sc#1 ) @@ -732,8 +732,8 @@ anim::@1: scope:[anim] from anim anim::@3 [34] anim::sprite_x#0 = anim::$5 + $a0 [35] anim::$7 = ypos#12 >> 5 [36] anim::sprite_y#0 = $e6 - anim::$7 - [37] *SPRITES_XPOS = (byte)anim::sprite_x#0 - [38] *SPRITES_YPOS = (byte)anim::sprite_y#0 + [37] *SPRITES_XPOS = (char)anim::sprite_x#0 + [38] *SPRITES_YPOS = (char)anim::sprite_y#0 [39] anim::$9 = byte1 anim::sprite_x#0 [40] *SPRITES_XMSB = anim::$9 to:anim::@return @@ -744,43 +744,43 @@ anim::@return: scope:[anim] from anim::@1 VARIABLE REGISTER WEIGHTS void anim() -signed word~ anim::$5 202.0 -signed word~ anim::$7 202.0 -byte~ anim::$9 202.0 -signed word anim::sprite_x -signed word anim::sprite_x#0 40.4 -signed word anim::sprite_y -signed word anim::sprite_y#0 50.5 +int anim::$5 // 202.0 +int anim::$7 // 202.0 +char anim::$9 // 202.0 +int anim::sprite_x +int anim::sprite_x#0 // 40.4 +int anim::sprite_y +int anim::sprite_y#0 // 50.5 void init() -byte init::i -byte init::i#1 151.5 -byte init::i#2 151.5 -byte* init::sc -byte* init::sc#1 202.0 -byte* init::sc#2 134.66666666666666 +char init::i +char init::i#1 // 151.5 +char init::i#2 // 151.5 +char *init::sc +char *init::sc#1 // 202.0 +char *init::sc#2 // 134.66666666666666 void main() -signed word xpos -signed word xpos#10 101.0 -signed word xpos#11 17.75 -signed word xpos#14 78.5 -signed word xvel -signed word xvel#11 22.42857142857143 -signed word xvel#14 103.75 -signed word xvel#16 33.666666666666664 -signed word ypos -signed word ypos#11 67.33333333333333 -signed word ypos#12 19.363636363636363 -signed word ypos#15 103.75 -signed word yvel -signed word yvel#10 303.0 -signed word yvel#11 16.384615384615383 -signed word yvel#14 78.5 -signed word yvel#23 202.0 -signed word yvel#3 151.5 -signed word yvel_init -signed word yvel_init#12 15.214285714285715 -signed word yvel_init#15 83.0 -signed word yvel_init#2 101.0 +int xpos +int xpos#10 // 101.0 +int xpos#11 // 17.75 +int xpos#14 // 78.5 +int xvel +int xvel#11 // 22.42857142857143 +int xvel#14 // 103.75 +int xvel#16 // 33.666666666666664 +int ypos +int ypos#11 // 67.33333333333333 +int ypos#12 // 19.363636363636363 +int ypos#15 // 103.75 +int yvel +int yvel#10 // 303.0 +int yvel#11 // 16.384615384615383 +int yvel#14 // 78.5 +int yvel#23 // 202.0 +int yvel#3 // 151.5 +int yvel_init +int yvel_init#12 // 15.214285714285715 +int yvel_init#15 // 83.0 +int yvel_init#2 // 101.0 Initial phi equivalence classes [ xvel#14 xvel#11 xvel#16 ] @@ -828,7 +828,7 @@ Statement [8] *SPRITES_EXPAND_Y = 0 [ ] ( init:1 [ ] { } ) always clobbers reg Statement [9] *SPRITES_XPOS = $64 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [10] *SPRITES_YPOS = $64 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [11] *SPRITES_COLOR = WHITE [ ] ( init:1 [ ] { } ) always clobbers reg byte a -Statement [12] *SPRITES_PTR = (byte)SPRITE/$40 [ ] ( init:1 [ ] { } ) always clobbers reg byte a +Statement [12] *SPRITES_PTR = (char)SPRITE/$40 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [14] if(init::sc#2!=SCREEN+$3e8) goto init::@2 [ init::sc#2 ] ( init:1 [ init::sc#2 ] { } ) always clobbers reg byte a Statement [16] SPRITE[init::i#2] = $ff [ init::i#2 ] ( init:1 [ init::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ init::i#2 init::i#1 ] @@ -845,8 +845,8 @@ Statement [33] anim::$5 = xpos#11 >> 7 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_in Statement [34] anim::sprite_x#0 = anim::$5 + $a0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] { } ) always clobbers reg byte a Statement [35] anim::$7 = ypos#12 >> 5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::$7 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::$7 ] { } ) always clobbers reg byte a Statement [36] anim::sprite_y#0 = $e6 - anim::$7 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] { } ) always clobbers reg byte a -Statement [37] *SPRITES_XPOS = (byte)anim::sprite_x#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] { } ) always clobbers reg byte a -Statement [38] *SPRITES_YPOS = (byte)anim::sprite_y#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] { } ) always clobbers reg byte a +Statement [37] *SPRITES_XPOS = (char)anim::sprite_x#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] { } ) always clobbers reg byte a +Statement [38] *SPRITES_YPOS = (char)anim::sprite_y#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] { } ) always clobbers reg byte a Statement [3] if(*RASTER!=$ff) goto main::@1 [ yvel#14 xpos#14 ypos#15 xvel#14 yvel_init#15 ] ( [ yvel#14 xpos#14 ypos#15 xvel#14 yvel_init#15 ] { } ) always clobbers reg byte a Statement [6] *SPRITES_ENABLE = 1 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [7] *SPRITES_EXPAND_X = 0 [ ] ( init:1 [ ] { } ) always clobbers reg byte a @@ -854,7 +854,7 @@ Statement [8] *SPRITES_EXPAND_Y = 0 [ ] ( init:1 [ ] { } ) always clobbers reg Statement [9] *SPRITES_XPOS = $64 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [10] *SPRITES_YPOS = $64 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [11] *SPRITES_COLOR = WHITE [ ] ( init:1 [ ] { } ) always clobbers reg byte a -Statement [12] *SPRITES_PTR = (byte)SPRITE/$40 [ ] ( init:1 [ ] { } ) always clobbers reg byte a +Statement [12] *SPRITES_PTR = (char)SPRITE/$40 [ ] ( init:1 [ ] { } ) always clobbers reg byte a Statement [14] if(init::sc#2!=SCREEN+$3e8) goto init::@2 [ init::sc#2 ] ( init:1 [ init::sc#2 ] { } ) always clobbers reg byte a Statement [16] SPRITE[init::i#2] = $ff [ init::i#2 ] ( init:1 [ init::i#2 ] { } ) always clobbers reg byte a Statement [20] *init::sc#2 = ' ' [ init::sc#2 ] ( init:1 [ init::sc#2 ] { } ) always clobbers reg byte a reg byte y @@ -870,8 +870,8 @@ Statement [33] anim::$5 = xpos#11 >> 7 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_in Statement [34] anim::sprite_x#0 = anim::$5 + $a0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] { } ) always clobbers reg byte a Statement [35] anim::$7 = ypos#12 >> 5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::$7 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::$7 ] { } ) always clobbers reg byte a Statement [36] anim::sprite_y#0 = $e6 - anim::$7 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] { } ) always clobbers reg byte a -Statement [37] *SPRITES_XPOS = (byte)anim::sprite_x#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] { } ) always clobbers reg byte a -Statement [38] *SPRITES_YPOS = (byte)anim::sprite_y#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] { } ) always clobbers reg byte a +Statement [37] *SPRITES_XPOS = (char)anim::sprite_x#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 anim::sprite_y#0 ] { } ) always clobbers reg byte a +Statement [38] *SPRITES_YPOS = (char)anim::sprite_y#0 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] ( anim:5 [ yvel#11 xpos#11 ypos#12 xvel#11 yvel_init#12 anim::sprite_x#0 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ xvel#14 xvel#11 xvel#16 ] : zp[2]:2 , Potential registers zp[2]:4 [ yvel_init#15 yvel_init#12 yvel#3 yvel_init#2 ] : zp[2]:4 , Potential registers zp[2]:6 [ init::sc#2 init::sc#1 ] : zp[2]:6 , @@ -962,7 +962,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call init + // [1] call init jsr init // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: @@ -1012,7 +1012,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call anim + // [5] call anim jsr anim jmp __b1_from___b2 } @@ -1038,7 +1038,7 @@ init: { // [11] *SPRITES_COLOR = WHITE -- _deref_pbuc1=vbuc2 lda #WHITE sta SPRITES_COLOR - // [12] *SPRITES_PTR = (byte)SPRITE/$40 -- _deref_pbuc1=vbuc2 + // [12] *SPRITES_PTR = (char)SPRITE/$40 -- _deref_pbuc1=vbuc2 lda #SPRITE/$40 sta SPRITES_PTR // [13] phi from init to init::@1 [phi:init->init::@1] @@ -1257,10 +1257,10 @@ anim: { lda #>$e6 sbc.z sprite_y+1 sta.z sprite_y+1 - // [37] *SPRITES_XPOS = (byte)anim::sprite_x#0 -- _deref_pbuc1=_byte_vwsz1 + // [37] *SPRITES_XPOS = (char)anim::sprite_x#0 -- _deref_pbuc1=_byte_vwsz1 lda.z sprite_x sta SPRITES_XPOS - // [38] *SPRITES_YPOS = (byte)anim::sprite_y#0 -- _deref_pbuc1=_byte_vwsz1 + // [38] *SPRITES_YPOS = (char)anim::sprite_y#0 -- _deref_pbuc1=_byte_vwsz1 lda.z sprite_y sta SPRITES_YPOS // [39] anim::$9 = byte1 anim::sprite_x#0 -- vbuaa=_byte1_vwsz1 @@ -1328,57 +1328,57 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const SPRITE = (byte*) 8192 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_EXPAND_X = (byte*) 53277 -constant byte* const SPRITES_EXPAND_Y = (byte*) 53271 -constant byte* const SPRITES_PTR = SCREEN+$3f8 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant const byte WHITE = 1 +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 +__constant char * const SPRITE = (char *) 8192 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_EXPAND_X = (char *) 53277 +__constant char * const SPRITES_EXPAND_Y = (char *) 53271 +__constant char * const SPRITES_PTR = SCREEN+$3f8 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant const char WHITE = 1 void anim() -signed word~ anim::$5 zp[2]:12 202.0 -signed word~ anim::$7 zp[2]:14 202.0 -byte~ anim::$9 reg byte a 202.0 -signed word anim::sprite_x -signed word anim::sprite_x#0 sprite_x zp[2]:12 40.4 -signed word anim::sprite_y -signed word anim::sprite_y#0 sprite_y zp[2]:14 50.5 -constant const signed word g = -5 +int anim::$5 // zp[2]:12 202.0 +int anim::$7 // zp[2]:14 202.0 +char anim::$9 // reg byte a 202.0 +int anim::sprite_x +int anim::sprite_x#0 // sprite_x zp[2]:12 40.4 +int anim::sprite_y +int anim::sprite_y#0 // sprite_y zp[2]:14 50.5 +__constant const int g = -5 void init() -byte init::i -byte init::i#1 reg byte x 151.5 -byte init::i#2 reg byte x 151.5 -byte* init::sc -byte* init::sc#1 sc zp[2]:4 202.0 -byte* init::sc#2 sc zp[2]:4 134.66666666666666 +char init::i +char init::i#1 // reg byte x 151.5 +char init::i#2 // reg byte x 151.5 +char *init::sc +char *init::sc#1 // sc zp[2]:4 202.0 +char *init::sc#2 // sc zp[2]:4 134.66666666666666 void main() -signed word xpos -signed word xpos#10 xpos zp[2]:8 101.0 -signed word xpos#11 xpos zp[2]:8 17.75 -signed word xpos#14 xpos zp[2]:8 78.5 -signed word xvel -signed word xvel#11 xvel zp[2]:4 22.42857142857143 -signed word xvel#14 xvel zp[2]:4 103.75 -signed word xvel#16 xvel zp[2]:4 33.666666666666664 -signed word ypos -signed word ypos#11 ypos zp[2]:10 67.33333333333333 -signed word ypos#12 ypos zp[2]:10 19.363636363636363 -signed word ypos#15 ypos zp[2]:10 103.75 -signed word yvel -signed word yvel#10 yvel_1 zp[2]:6 303.0 -signed word yvel#11 yvel_1 zp[2]:6 16.384615384615383 -signed word yvel#14 yvel_1 zp[2]:6 78.5 -signed word yvel#23 yvel_1 zp[2]:6 202.0 -signed word yvel#3 yvel zp[2]:2 151.5 -signed word yvel_init -signed word yvel_init#12 yvel_init zp[2]:2 15.214285714285715 -signed word yvel_init#15 yvel_init zp[2]:2 83.0 -signed word yvel_init#2 yvel_init zp[2]:2 101.0 +int xpos +int xpos#10 // xpos zp[2]:8 101.0 +int xpos#11 // xpos zp[2]:8 17.75 +int xpos#14 // xpos zp[2]:8 78.5 +int xvel +int xvel#11 // xvel zp[2]:4 22.42857142857143 +int xvel#14 // xvel zp[2]:4 103.75 +int xvel#16 // xvel zp[2]:4 33.666666666666664 +int ypos +int ypos#11 // ypos zp[2]:10 67.33333333333333 +int ypos#12 // ypos zp[2]:10 19.363636363636363 +int ypos#15 // ypos zp[2]:10 103.75 +int yvel +int yvel#10 // yvel_1 zp[2]:6 303.0 +int yvel#11 // yvel_1 zp[2]:6 16.384615384615383 +int yvel#14 // yvel_1 zp[2]:6 78.5 +int yvel#23 // yvel_1 zp[2]:6 202.0 +int yvel#3 // yvel zp[2]:2 151.5 +int yvel_init +int yvel_init#12 // yvel_init zp[2]:2 15.214285714285715 +int yvel_init#15 // yvel_init zp[2]:2 83.0 +int yvel_init#2 // yvel_init zp[2]:2 101.0 zp[2]:2 [ yvel_init#15 yvel_init#12 yvel#3 yvel_init#2 ] zp[2]:4 [ init::sc#2 init::sc#1 xvel#14 xvel#11 xvel#16 ] @@ -1444,7 +1444,7 @@ Score: 6364 // main main: { // init() - // [1] call init + // [1] call init jsr init // [2] phi from main to main::@1 [phi:main->main::@1] // [2] phi yvel_init#15 = $64 [phi:main->main::@1#0] -- vwsz1=vwsc1 @@ -1485,7 +1485,7 @@ main: { // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // anim() - // [5] call anim + // [5] call anim jsr anim jmp __b1 } @@ -1516,7 +1516,7 @@ init: { lda #WHITE sta SPRITES_COLOR // SPRITES_PTR[0] = (byte)(SPRITE/$40) - // [12] *SPRITES_PTR = (byte)SPRITE/$40 -- _deref_pbuc1=vbuc2 + // [12] *SPRITES_PTR = (char)SPRITE/$40 -- _deref_pbuc1=vbuc2 lda #SPRITE/$40 sta SPRITES_PTR // [13] phi from init to init::@1 [phi:init->init::@1] @@ -1728,11 +1728,11 @@ anim: { sbc.z sprite_y+1 sta.z sprite_y+1 // SPRITES_XPOS[0] = (byte)sprite_x - // [37] *SPRITES_XPOS = (byte)anim::sprite_x#0 -- _deref_pbuc1=_byte_vwsz1 + // [37] *SPRITES_XPOS = (char)anim::sprite_x#0 -- _deref_pbuc1=_byte_vwsz1 lda.z sprite_x sta SPRITES_XPOS // SPRITES_YPOS[0] = (byte)sprite_y - // [38] *SPRITES_YPOS = (byte)anim::sprite_y#0 -- _deref_pbuc1=_byte_vwsz1 + // [38] *SPRITES_YPOS = (char)anim::sprite_y#0 -- _deref_pbuc1=_byte_vwsz1 lda.z sprite_y sta SPRITES_YPOS // BYTE1(sprite_x) diff --git a/src/test/ref/signed-words.sym b/src/test/ref/signed-words.sym index 40d4adf34..3005c994f 100644 --- a/src/test/ref/signed-words.sym +++ b/src/test/ref/signed-words.sym @@ -1,54 +1,54 @@ -constant byte* const RASTER = (byte*) 53266 -constant byte* const SCREEN = (byte*) 1024 -constant byte* const SPRITE = (byte*) 8192 -constant byte* const SPRITES_COLOR = (byte*) 53287 -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_EXPAND_X = (byte*) 53277 -constant byte* const SPRITES_EXPAND_Y = (byte*) 53271 -constant byte* const SPRITES_PTR = SCREEN+$3f8 -constant byte* const SPRITES_XMSB = (byte*) 53264 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant const byte WHITE = 1 +__constant char * const RASTER = (char *) 53266 +__constant char * const SCREEN = (char *) 1024 +__constant char * const SPRITE = (char *) 8192 +__constant char * const SPRITES_COLOR = (char *) 53287 +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_EXPAND_X = (char *) 53277 +__constant char * const SPRITES_EXPAND_Y = (char *) 53271 +__constant char * const SPRITES_PTR = SCREEN+$3f8 +__constant char * const SPRITES_XMSB = (char *) 53264 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant const char WHITE = 1 void anim() -signed word~ anim::$5 zp[2]:12 202.0 -signed word~ anim::$7 zp[2]:14 202.0 -byte~ anim::$9 reg byte a 202.0 -signed word anim::sprite_x -signed word anim::sprite_x#0 sprite_x zp[2]:12 40.4 -signed word anim::sprite_y -signed word anim::sprite_y#0 sprite_y zp[2]:14 50.5 -constant const signed word g = -5 +int anim::$5 // zp[2]:12 202.0 +int anim::$7 // zp[2]:14 202.0 +char anim::$9 // reg byte a 202.0 +int anim::sprite_x +int anim::sprite_x#0 // sprite_x zp[2]:12 40.4 +int anim::sprite_y +int anim::sprite_y#0 // sprite_y zp[2]:14 50.5 +__constant const int g = -5 void init() -byte init::i -byte init::i#1 reg byte x 151.5 -byte init::i#2 reg byte x 151.5 -byte* init::sc -byte* init::sc#1 sc zp[2]:4 202.0 -byte* init::sc#2 sc zp[2]:4 134.66666666666666 +char init::i +char init::i#1 // reg byte x 151.5 +char init::i#2 // reg byte x 151.5 +char *init::sc +char *init::sc#1 // sc zp[2]:4 202.0 +char *init::sc#2 // sc zp[2]:4 134.66666666666666 void main() -signed word xpos -signed word xpos#10 xpos zp[2]:8 101.0 -signed word xpos#11 xpos zp[2]:8 17.75 -signed word xpos#14 xpos zp[2]:8 78.5 -signed word xvel -signed word xvel#11 xvel zp[2]:4 22.42857142857143 -signed word xvel#14 xvel zp[2]:4 103.75 -signed word xvel#16 xvel zp[2]:4 33.666666666666664 -signed word ypos -signed word ypos#11 ypos zp[2]:10 67.33333333333333 -signed word ypos#12 ypos zp[2]:10 19.363636363636363 -signed word ypos#15 ypos zp[2]:10 103.75 -signed word yvel -signed word yvel#10 yvel_1 zp[2]:6 303.0 -signed word yvel#11 yvel_1 zp[2]:6 16.384615384615383 -signed word yvel#14 yvel_1 zp[2]:6 78.5 -signed word yvel#23 yvel_1 zp[2]:6 202.0 -signed word yvel#3 yvel zp[2]:2 151.5 -signed word yvel_init -signed word yvel_init#12 yvel_init zp[2]:2 15.214285714285715 -signed word yvel_init#15 yvel_init zp[2]:2 83.0 -signed word yvel_init#2 yvel_init zp[2]:2 101.0 +int xpos +int xpos#10 // xpos zp[2]:8 101.0 +int xpos#11 // xpos zp[2]:8 17.75 +int xpos#14 // xpos zp[2]:8 78.5 +int xvel +int xvel#11 // xvel zp[2]:4 22.42857142857143 +int xvel#14 // xvel zp[2]:4 103.75 +int xvel#16 // xvel zp[2]:4 33.666666666666664 +int ypos +int ypos#11 // ypos zp[2]:10 67.33333333333333 +int ypos#12 // ypos zp[2]:10 19.363636363636363 +int ypos#15 // ypos zp[2]:10 103.75 +int yvel +int yvel#10 // yvel_1 zp[2]:6 303.0 +int yvel#11 // yvel_1 zp[2]:6 16.384615384615383 +int yvel#14 // yvel_1 zp[2]:6 78.5 +int yvel#23 // yvel_1 zp[2]:6 202.0 +int yvel#3 // yvel zp[2]:2 151.5 +int yvel_init +int yvel_init#12 // yvel_init zp[2]:2 15.214285714285715 +int yvel_init#15 // yvel_init zp[2]:2 83.0 +int yvel_init#2 // yvel_init zp[2]:2 101.0 zp[2]:2 [ yvel_init#15 yvel_init#12 yvel#3 yvel_init#2 ] zp[2]:4 [ init::sc#2 init::sc#1 xvel#14 xvel#11 xvel#16 ] diff --git a/src/test/ref/simple-loop.cfg b/src/test/ref/simple-loop.cfg index f183976b5..6d33f09c4 100644 --- a/src/test/ref/simple-loop.cfg +++ b/src/test/ref/simple-loop.cfg @@ -12,6 +12,6 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] main::SCREEN[main::i#2] = 'a' - [5] *((byte*) 53280) = 0 + [5] *((char *) 53280) = 0 [6] main::i#1 = main::i#2 + 2 to:main::@1 diff --git a/src/test/ref/simple-loop.log b/src/test/ref/simple-loop.log index ac2937682..c79aebc63 100644 --- a/src/test/ref/simple-loop.log +++ b/src/test/ref/simple-loop.log @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::SCREEN[main::i#3] = 'a' - *((byte*)$d020) = 0 + *((char *)$d020) = 0 main::i#1 = main::i#3 + 2 to:main::@1 main::@return: scope:[main] from main::@1 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,29 +33,29 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $80 in main::$0 = main::i#2 < $80 -Adding number conversion cast (unumber) 0 in *((byte*)$d020) = 0 +Adding number conversion cast (unumber) 0 in *((char *)$d020) = 0 Adding number conversion cast (unumber) 2 in main::i#1 = main::i#3 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)$d020) = (unumber)0 +Inlining cast *((char *)$d020) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $80 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -94,16 +94,16 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] main::SCREEN[main::i#2] = 'a' - [5] *((byte*) 53280) = 0 + [5] *((char *) 53280) = 0 [6] main::i#1 = main::i#2 + 2 to:main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -113,9 +113,9 @@ Allocated zp[1]:2 [ main::i#2 main::i#1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] main::SCREEN[main::i#2] = 'a' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [5] *((byte*) 53280) = 0 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [5] *((char *) 53280) = 0 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [4] main::SCREEN[main::i#2] = 'a' [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [5] *((byte*) 53280) = 0 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [5] *((char *) 53280) = 0 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , REGISTER UPLIFT SCOPES @@ -161,7 +161,7 @@ main: { // [4] main::SCREEN[main::i#2] = 'a' -- pbuc1_derefidx_vbuxx=vbuc2 lda #'a' sta SCREEN,x - // [5] *((byte*) 53280) = 0 -- _deref_pbuc1=vbuc2 + // [5] *((char *) 53280) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta $d020 // [6] main::i#1 = main::i#2 + 2 -- vbuxx=vbuxx_plus_2 @@ -185,10 +185,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] @@ -231,7 +231,7 @@ main: { lda #'a' sta SCREEN,x // (*(unsigned char*)0xD020)=0 - // [5] *((byte*) 53280) = 0 -- _deref_pbuc1=vbuc2 + // [5] *((char *) 53280) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta $d020 // i+=2 diff --git a/src/test/ref/simple-loop.sym b/src/test/ref/simple-loop.sym index e59ebf11a..38c2a0003 100644 --- a/src/test/ref/simple-loop.sym +++ b/src/test/ref/simple-loop.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/sinus-basic.asm b/src/test/ref/sinus-basic.asm index b78f3df83..0e6b4dc08 100644 --- a/src/test/ref/sinus-basic.asm +++ b/src/test/ref/sinus-basic.asm @@ -107,7 +107,7 @@ main: { .segment Code // FAC = unsigned int // Set the FAC (floating point accumulator) to the integer value of a 16bit unsigned int -// setFAC(word zp(7) w) +// void setFAC(__zp(7) unsigned int w) setFAC: { .label prepareMEM1_mem = 7 .label w = 7 @@ -137,7 +137,7 @@ divFACby10: { // MEM = FAC // Stores the value of the FAC to memory // Stores 5 chars (means it is necessary to allocate 5 chars to avoid clobbering other data using eg. char[] mem = {0, 0, 0, 0, 0};) -// setMEMtoFAC(byte* zp(7) mem) +// void setMEMtoFAC(__zp(7) char *mem) setMEMtoFAC: { .label mem = 7 // BYTE0(mem) @@ -158,7 +158,7 @@ setMEMtoFAC: { // FAC = MEM*FAC // Set FAC to MEM (float saved in memory) multiplied by FAC (float accumulator) // Reads 5 chars from memory -// mulFACbyMEM(byte* zp(7) mem) +// void mulFACbyMEM(__zp(7) char *mem) mulFACbyMEM: { .label mem = 7 // BYTE0(mem) @@ -179,6 +179,7 @@ mulFACbyMEM: { // FAC = MEM/FAC // Set FAC to MEM (float saved in memory) divided by FAC (float accumulator) // Reads 5 chars from memory +// void divMEMbyFAC(char *mem) divMEMbyFAC: { .const prepareMEM1_mem = main.f_i // *memLo = BYTE0(mem) @@ -206,6 +207,7 @@ sinFAC: { // FAC = MEM+FAC // Set FAC to MEM (float saved in memory) plus FAC (float accumulator) // Reads 5 chars from memory +// void addMEMtoFAC(char *mem) addMEMtoFAC: { .const prepareMEM1_mem = main.f_127 // *memLo = BYTE0(mem) @@ -239,7 +241,7 @@ getFAC: { rts } // Print a unsigned int as HEX -// print_uint(word zp(7) w) +// void print_uint(__zp(7) unsigned int w) print_uint: { .label w = 7 // print_uchar(BYTE1(w)) @@ -275,7 +277,7 @@ print_ln: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -298,7 +300,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/sinus-basic.cfg b/src/test/ref/sinus-basic.cfg index 4b66a7385..3bd28f048 100644 --- a/src/test/ref/sinus-basic.cfg +++ b/src/test/ref/sinus-basic.cfg @@ -2,63 +2,63 @@ void main() main: scope:[main] from [0] phi() - [1] call setFAC + [1] call setFAC to:main::@2 main::@2: scope:[main] from main [2] phi() - [3] call divFACby10 + [3] call divFACby10 to:main::@3 main::@3: scope:[main] from main::@2 [4] phi() - [5] call setMEMtoFAC + [5] call setMEMtoFAC to:main::@1 main::@1: scope:[main] from main::@15 main::@3 [6] print_line_cursor#15 = phi( main::@15/print_line_cursor#0, main::@3/print_screen#0 ) [6] print_char_cursor#34 = phi( main::@15/print_char_cursor#53, main::@3/print_screen#0 ) [6] main::i#10 = phi( main::@15/main::i#1, main::@3/1 ) - [7] setFAC::w#1 = (word)main::i#10 - [8] call setFAC + [7] setFAC::w#1 = (unsigned int)main::i#10 + [8] call setFAC to:main::@4 main::@4: scope:[main] from main::@1 [9] phi() - [10] call mulFACbyMEM + [10] call mulFACbyMEM to:main::@5 main::@5: scope:[main] from main::@4 [11] phi() - [12] call setMEMtoFAC + [12] call setMEMtoFAC to:main::@6 main::@6: scope:[main] from main::@5 [13] phi() - [14] call setFAC + [14] call setFAC to:main::@7 main::@7: scope:[main] from main::@6 [15] phi() - [16] call divMEMbyFAC + [16] call divMEMbyFAC to:main::@8 main::@8: scope:[main] from main::@7 [17] phi() - [18] call sinFAC + [18] call sinFAC to:main::@9 main::@9: scope:[main] from main::@8 [19] phi() - [20] call mulFACbyMEM + [20] call mulFACbyMEM to:main::@10 main::@10: scope:[main] from main::@9 [21] phi() - [22] call addMEMtoFAC + [22] call addMEMtoFAC to:main::@11 main::@11: scope:[main] from main::@10 [23] phi() - [24] call getFAC + [24] call getFAC [25] getFAC::return#2 = getFAC::return#0 to:main::@12 main::@12: scope:[main] from main::@11 [26] print_uint::w#0 = getFAC::return#2 - [27] call print_uint + [27] call print_uint to:main::@13 main::@13: scope:[main] from main::@12 [28] phi() - [29] call print_ln + [29] call print_ln to:main::@14 main::@14: scope:[main] from main::@13 [30] main::i#1 = ++ main::i#10 @@ -71,7 +71,7 @@ main::@15: scope:[main] from main::@14 [33] print_char_cursor#53 = print_line_cursor#0 to:main::@1 -void setFAC(word setFAC::w) +void setFAC(unsigned int w) setFAC: scope:[setFAC] from main main::@1 main::@6 [34] setFAC::prepareMEM1_mem#0 = phi( main/$4fb, main::@1/setFAC::w#1, main::@6/$19 ) to:setFAC::prepareMEM1 @@ -96,14 +96,14 @@ divFACby10::@return: scope:[divFACby10] from divFACby10 [42] return to:@return -void setMEMtoFAC(byte* setMEMtoFAC::mem) +void setMEMtoFAC(char *mem) setMEMtoFAC: scope:[setMEMtoFAC] from main::@3 main::@5 [43] setMEMtoFAC::mem#2 = phi( main::@3/main::f_127, main::@5/main::f_i ) to:setMEMtoFAC::prepareMEM1 setMEMtoFAC::prepareMEM1: scope:[setMEMtoFAC] from setMEMtoFAC - [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (word)setMEMtoFAC::mem#2 + [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (unsigned int)setMEMtoFAC::mem#2 [45] *memLo = setMEMtoFAC::prepareMEM1_$0 - [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (word)setMEMtoFAC::mem#2 + [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (unsigned int)setMEMtoFAC::mem#2 [47] *memHi = setMEMtoFAC::prepareMEM1_$1 to:setMEMtoFAC::@1 setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC::prepareMEM1 @@ -113,14 +113,14 @@ setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1 [49] return to:@return -void mulFACbyMEM(byte* mulFACbyMEM::mem) +void mulFACbyMEM(char *mem) mulFACbyMEM: scope:[mulFACbyMEM] from main::@4 main::@9 [50] mulFACbyMEM::mem#2 = phi( main::@9/main::f_127, main::@4/main::f_2pi ) to:mulFACbyMEM::prepareMEM1 mulFACbyMEM::prepareMEM1: scope:[mulFACbyMEM] from mulFACbyMEM - [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (word)mulFACbyMEM::mem#2 + [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (unsigned int)mulFACbyMEM::mem#2 [52] *memLo = mulFACbyMEM::prepareMEM1_$0 - [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (word)mulFACbyMEM::mem#2 + [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (unsigned int)mulFACbyMEM::mem#2 [54] *memHi = mulFACbyMEM::prepareMEM1_$1 to:mulFACbyMEM::@1 mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM::prepareMEM1 @@ -130,7 +130,7 @@ mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM::@1 [56] return to:@return -void divMEMbyFAC(byte* divMEMbyFAC::mem) +void divMEMbyFAC(char *mem) divMEMbyFAC: scope:[divMEMbyFAC] from main::@7 [57] phi() to:divMEMbyFAC::prepareMEM1 @@ -153,7 +153,7 @@ sinFAC::@return: scope:[sinFAC] from sinFAC [63] return to:@return -void addMEMtoFAC(byte* addMEMtoFAC::mem) +void addMEMtoFAC(char *mem) addMEMtoFAC: scope:[addMEMtoFAC] from main::@10 [64] phi() to:addMEMtoFAC::prepareMEM1 @@ -168,7 +168,7 @@ addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1 [68] return to:@return -word getFAC() +unsigned int getFAC() getFAC: scope:[getFAC] from main::@11 asm { jsr$b1aa stymemLo stamemHi } [70] getFAC::return#0 = *memHi w= *memLo @@ -177,14 +177,14 @@ getFAC::@return: scope:[getFAC] from getFAC [71] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@12 [72] print_uchar::b#0 = byte1 print_uint::w#0 - [73] call print_uchar + [73] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [74] print_uchar::b#1 = byte0 print_uint::w#0 - [75] call print_uchar + [75] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [76] return @@ -203,24 +203,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [81] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [82] print_char_cursor#33 = phi( print_uint/print_char_cursor#34, print_uint::@1/print_char_cursor#25 ) [82] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [83] print_uchar::$0 = print_uchar::b#2 >> 4 [84] print_char::ch#0 = print_hextab[print_uchar::$0] - [85] call print_char + [85] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [86] print_uchar::$2 = print_uchar::b#2 & $f [87] print_char::ch#1 = print_hextab[print_uchar::$2] - [88] call print_char + [88] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [89] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [90] print_char_cursor#24 = phi( print_uchar/print_char_cursor#33, print_uchar::@1/print_char_cursor#25 ) [90] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) diff --git a/src/test/ref/sinus-basic.log b/src/test/ref/sinus-basic.log index cf2c0ddd2..3acef2c40 100644 --- a/src/test/ref/sinus-basic.log +++ b/src/test/ref/sinus-basic.log @@ -1,13 +1,13 @@ Inlined call call prepareMEM(setFAC::w) -Inlined call call prepareMEM((word)setMEMtoFAC::mem) -Inlined call call prepareMEM((word)setFACtoMEM::mem) -Inlined call call prepareMEM((word)setARGtoMEM::mem) -Inlined call call prepareMEM((word)addMEMtoFAC::mem) -Inlined call call prepareMEM((word)subFACfromMEM::mem) -Inlined call call prepareMEM((word)divMEMbyFAC::mem) -Inlined call call prepareMEM((word)mulFACbyMEM::mem) -Inlined call call prepareMEM((word)pwrMEMbyFAC::mem) -Inlined call call __init +Inlined call call prepareMEM((unsigned int)setMEMtoFAC::mem) +Inlined call call prepareMEM((unsigned int)setFACtoMEM::mem) +Inlined call call prepareMEM((unsigned int)setARGtoMEM::mem) +Inlined call call prepareMEM((unsigned int)addMEMtoFAC::mem) +Inlined call call prepareMEM((unsigned int)subFACfromMEM::mem) +Inlined call call prepareMEM((unsigned int)divMEMbyFAC::mem) +Inlined call call prepareMEM((unsigned int)mulFACbyMEM::mem) +Inlined call call prepareMEM((unsigned int)pwrMEMbyFAC::mem) +Inlined call call __init Eliminating unused variable with no statement getFAC::$0 CONTROL FLOW GRAPH SSA @@ -37,13 +37,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@13 print_char_cursor#32 = phi( main::@13/print_char_cursor#34 ) print_uint::w#1 = phi( main::@13/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -51,7 +51,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#2 = print_char_cursor#18 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#19 = phi( print_uint::@1/print_char_cursor#7 ) @@ -63,13 +63,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#33 = phi( print_uint/print_char_cursor#32, print_uint::@1/print_char_cursor#2 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -77,7 +77,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#5 = print_char_cursor#21 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#22 = phi( print_uchar::@1/print_char_cursor#9 ) @@ -89,7 +89,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 print_char_cursor#24 = phi( print_uchar/print_char_cursor#33, print_uchar::@1/print_char_cursor#5 ) print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -102,7 +102,7 @@ print_char::@return: scope:[print_char] from print_char return to:@return -void setFAC(word setFAC::w) +void setFAC(unsigned int w) setFAC: scope:[setFAC] from main main::@1 main::@7 setFAC::w#3 = phi( main/setFAC::w#0, main::@1/setFAC::w#1, main::@7/setFAC::w#2 ) setFAC::prepareMEM1_mem#0 = setFAC::w#3 @@ -121,7 +121,7 @@ setFAC::@return: scope:[setFAC] from setFAC::@1 return to:@return -word getFAC() +unsigned int getFAC() getFAC: scope:[getFAC] from main::@12 asm { jsr$b1aa stymemLo stamemHi } getFAC::w#0 = *memHi w= *memLo @@ -133,10 +133,10 @@ getFAC::@return: scope:[getFAC] from getFAC return to:@return -void setMEMtoFAC(byte* setMEMtoFAC::mem) +void setMEMtoFAC(char *mem) setMEMtoFAC: scope:[setMEMtoFAC] from main::@3 main::@6 setMEMtoFAC::mem#2 = phi( main::@3/setMEMtoFAC::mem#0, main::@6/setMEMtoFAC::mem#1 ) - setMEMtoFAC::prepareMEM1_mem#0 = (word)setMEMtoFAC::mem#2 + setMEMtoFAC::prepareMEM1_mem#0 = (unsigned int)setMEMtoFAC::mem#2 to:setMEMtoFAC::prepareMEM1 setMEMtoFAC::prepareMEM1: scope:[setMEMtoFAC] from setMEMtoFAC setMEMtoFAC::prepareMEM1_mem#1 = phi( setMEMtoFAC/setMEMtoFAC::prepareMEM1_mem#0 ) @@ -152,10 +152,10 @@ setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1 return to:@return -void addMEMtoFAC(byte* addMEMtoFAC::mem) +void addMEMtoFAC(char *mem) addMEMtoFAC: scope:[addMEMtoFAC] from main::@11 addMEMtoFAC::mem#1 = phi( main::@11/addMEMtoFAC::mem#0 ) - addMEMtoFAC::prepareMEM1_mem#0 = (word)addMEMtoFAC::mem#1 + addMEMtoFAC::prepareMEM1_mem#0 = (unsigned int)addMEMtoFAC::mem#1 to:addMEMtoFAC::prepareMEM1 addMEMtoFAC::prepareMEM1: scope:[addMEMtoFAC] from addMEMtoFAC addMEMtoFAC::prepareMEM1_mem#1 = phi( addMEMtoFAC/addMEMtoFAC::prepareMEM1_mem#0 ) @@ -171,10 +171,10 @@ addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1 return to:@return -void divMEMbyFAC(byte* divMEMbyFAC::mem) +void divMEMbyFAC(char *mem) divMEMbyFAC: scope:[divMEMbyFAC] from main::@8 divMEMbyFAC::mem#1 = phi( main::@8/divMEMbyFAC::mem#0 ) - divMEMbyFAC::prepareMEM1_mem#0 = (word)divMEMbyFAC::mem#1 + divMEMbyFAC::prepareMEM1_mem#0 = (unsigned int)divMEMbyFAC::mem#1 to:divMEMbyFAC::prepareMEM1 divMEMbyFAC::prepareMEM1: scope:[divMEMbyFAC] from divMEMbyFAC divMEMbyFAC::prepareMEM1_mem#1 = phi( divMEMbyFAC/divMEMbyFAC::prepareMEM1_mem#0 ) @@ -190,10 +190,10 @@ divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1 return to:@return -void mulFACbyMEM(byte* mulFACbyMEM::mem) +void mulFACbyMEM(char *mem) mulFACbyMEM: scope:[mulFACbyMEM] from main::@10 main::@5 mulFACbyMEM::mem#2 = phi( main::@10/mulFACbyMEM::mem#1, main::@5/mulFACbyMEM::mem#0 ) - mulFACbyMEM::prepareMEM1_mem#0 = (word)mulFACbyMEM::mem#2 + mulFACbyMEM::prepareMEM1_mem#0 = (unsigned int)mulFACbyMEM::mem#2 to:mulFACbyMEM::prepareMEM1 mulFACbyMEM::prepareMEM1: scope:[mulFACbyMEM] from mulFACbyMEM mulFACbyMEM::prepareMEM1_mem#1 = phi( mulFACbyMEM/mulFACbyMEM::prepareMEM1_mem#0 ) @@ -230,18 +230,18 @@ main: scope:[main] from __start::@1 print_line_cursor#30 = phi( __start::@1/print_line_cursor#16 ) print_char_cursor#48 = phi( __start::@1/print_char_cursor#35 ) setFAC::w#0 = $4fb - call setFAC + call setFAC to:main::@2 main::@2: scope:[main] from main print_line_cursor#29 = phi( main/print_line_cursor#30 ) print_char_cursor#47 = phi( main/print_char_cursor#48 ) - call divFACby10 + call divFACby10 to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#28 = phi( main::@2/print_line_cursor#29 ) print_char_cursor#46 = phi( main::@2/print_char_cursor#47 ) setMEMtoFAC::mem#0 = main::f_127 - call setMEMtoFAC + call setMEMtoFAC to:main::@4 main::@4: scope:[main] from main::@3 print_line_cursor#27 = phi( main::@3/print_line_cursor#28 ) @@ -252,62 +252,62 @@ main::@1: scope:[main] from main::@15 main::@4 print_line_cursor#26 = phi( main::@15/print_line_cursor#2, main::@4/print_line_cursor#27 ) print_char_cursor#44 = phi( main::@15/print_char_cursor#11, main::@4/print_char_cursor#45 ) main::i#2 = phi( main::@15/main::i#1, main::@4/main::i#0 ) - setFAC::w#1 = (word)main::i#2 - call setFAC + setFAC::w#1 = (unsigned int)main::i#2 + call setFAC to:main::@5 main::@5: scope:[main] from main::@1 main::i#13 = phi( main::@1/main::i#2 ) print_line_cursor#25 = phi( main::@1/print_line_cursor#26 ) print_char_cursor#43 = phi( main::@1/print_char_cursor#44 ) mulFACbyMEM::mem#0 = main::f_2pi - call mulFACbyMEM + call mulFACbyMEM to:main::@6 main::@6: scope:[main] from main::@5 main::i#12 = phi( main::@5/main::i#13 ) print_line_cursor#24 = phi( main::@5/print_line_cursor#25 ) print_char_cursor#42 = phi( main::@5/print_char_cursor#43 ) setMEMtoFAC::mem#1 = main::f_i - call setMEMtoFAC + call setMEMtoFAC to:main::@7 main::@7: scope:[main] from main::@6 main::i#11 = phi( main::@6/main::i#12 ) print_line_cursor#23 = phi( main::@6/print_line_cursor#24 ) print_char_cursor#41 = phi( main::@6/print_char_cursor#42 ) setFAC::w#2 = $19 - call setFAC + call setFAC to:main::@8 main::@8: scope:[main] from main::@7 main::i#10 = phi( main::@7/main::i#11 ) print_line_cursor#22 = phi( main::@7/print_line_cursor#23 ) print_char_cursor#40 = phi( main::@7/print_char_cursor#41 ) divMEMbyFAC::mem#0 = main::f_i - call divMEMbyFAC + call divMEMbyFAC to:main::@9 main::@9: scope:[main] from main::@8 main::i#9 = phi( main::@8/main::i#10 ) print_line_cursor#21 = phi( main::@8/print_line_cursor#22 ) print_char_cursor#39 = phi( main::@8/print_char_cursor#40 ) - call sinFAC + call sinFAC to:main::@10 main::@10: scope:[main] from main::@9 main::i#8 = phi( main::@9/main::i#9 ) print_line_cursor#20 = phi( main::@9/print_line_cursor#21 ) print_char_cursor#38 = phi( main::@9/print_char_cursor#39 ) mulFACbyMEM::mem#1 = main::f_127 - call mulFACbyMEM + call mulFACbyMEM to:main::@11 main::@11: scope:[main] from main::@10 main::i#7 = phi( main::@10/main::i#8 ) print_line_cursor#19 = phi( main::@10/print_line_cursor#20 ) print_char_cursor#37 = phi( main::@10/print_char_cursor#38 ) addMEMtoFAC::mem#0 = main::f_127 - call addMEMtoFAC + call addMEMtoFAC to:main::@12 main::@12: scope:[main] from main::@11 main::i#6 = phi( main::@11/main::i#7 ) print_line_cursor#18 = phi( main::@11/print_line_cursor#19 ) print_char_cursor#36 = phi( main::@11/print_char_cursor#37 ) - call getFAC + call getFAC getFAC::return#2 = getFAC::return#1 to:main::@13 main::@13: scope:[main] from main::@12 @@ -317,14 +317,14 @@ main::@13: scope:[main] from main::@12 getFAC::return#4 = phi( main::@12/getFAC::return#2 ) main::$11 = getFAC::return#4 print_uint::w#0 = main::$11 - call print_uint + call print_uint to:main::@14 main::@14: scope:[main] from main::@13 main::i#4 = phi( main::@13/main::i#5 ) print_line_cursor#15 = phi( main::@13/print_line_cursor#17 ) print_char_cursor#26 = phi( main::@13/print_char_cursor#4 ) print_char_cursor#10 = print_char_cursor#26 - call print_ln + call print_ln to:main::@15 main::@15: scope:[main] from main::@14 main::i#3 = phi( main::@14/main::i#4 ) @@ -348,7 +348,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#4 = print_screen#0 print_char_cursor#13 = print_line_cursor#4 to:__start::@1 @@ -356,7 +356,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#4 = phi( __start::__init1/print_screen#0 ) print_line_cursor#16 = phi( __start::__init1/print_line_cursor#4 ) print_char_cursor#35 = phi( __start::__init1/print_char_cursor#13 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#3 = phi( __start::@1/print_screen#4 ) @@ -376,205 +376,205 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -void addMEMtoFAC(byte* addMEMtoFAC::mem) -byte* addMEMtoFAC::mem -byte* addMEMtoFAC::mem#0 -byte* addMEMtoFAC::mem#1 -byte~ addMEMtoFAC::prepareMEM1_$0 -byte~ addMEMtoFAC::prepareMEM1_$1 -word addMEMtoFAC::prepareMEM1_mem -word addMEMtoFAC::prepareMEM1_mem#0 -word addMEMtoFAC::prepareMEM1_mem#1 +void addMEMtoFAC(char *mem) +char *addMEMtoFAC::mem +char *addMEMtoFAC::mem#0 +char *addMEMtoFAC::mem#1 +char addMEMtoFAC::prepareMEM1_$0 +char addMEMtoFAC::prepareMEM1_$1 +unsigned int addMEMtoFAC::prepareMEM1_mem +unsigned int addMEMtoFAC::prepareMEM1_mem#0 +unsigned int addMEMtoFAC::prepareMEM1_mem#1 void divFACby10() -void divMEMbyFAC(byte* divMEMbyFAC::mem) -byte* divMEMbyFAC::mem -byte* divMEMbyFAC::mem#0 -byte* divMEMbyFAC::mem#1 -byte~ divMEMbyFAC::prepareMEM1_$0 -byte~ divMEMbyFAC::prepareMEM1_$1 -word divMEMbyFAC::prepareMEM1_mem -word divMEMbyFAC::prepareMEM1_mem#0 -word divMEMbyFAC::prepareMEM1_mem#1 -word getFAC() -word getFAC::return -word getFAC::return#0 -word getFAC::return#1 -word getFAC::return#2 -word getFAC::return#3 -word getFAC::return#4 -word getFAC::w -word getFAC::w#0 +void divMEMbyFAC(char *mem) +char *divMEMbyFAC::mem +char *divMEMbyFAC::mem#0 +char *divMEMbyFAC::mem#1 +char divMEMbyFAC::prepareMEM1_$0 +char divMEMbyFAC::prepareMEM1_$1 +unsigned int divMEMbyFAC::prepareMEM1_mem +unsigned int divMEMbyFAC::prepareMEM1_mem#0 +unsigned int divMEMbyFAC::prepareMEM1_mem#1 +unsigned int getFAC() +unsigned int getFAC::return +unsigned int getFAC::return#0 +unsigned int getFAC::return#1 +unsigned int getFAC::return#2 +unsigned int getFAC::return#3 +unsigned int getFAC::return#4 +unsigned int getFAC::w +unsigned int getFAC::w#0 void main() -word~ main::$11 -bool~ main::$14 -constant byte* main::f_127[] = { 0, 0, 0, 0, 0 } -constant byte* const main::f_2pi = (byte*)$e2e5 -constant byte* main::f_i[] = { 0, 0, 0, 0, 0 } -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#11 -byte main::i#12 -byte main::i#13 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -constant byte* const memHi = (byte*)$ff -constant byte* const memLo = (byte*)$fe -void mulFACbyMEM(byte* mulFACbyMEM::mem) -byte* mulFACbyMEM::mem -byte* mulFACbyMEM::mem#0 -byte* mulFACbyMEM::mem#1 -byte* mulFACbyMEM::mem#2 -byte~ mulFACbyMEM::prepareMEM1_$0 -byte~ mulFACbyMEM::prepareMEM1_$1 -word mulFACbyMEM::prepareMEM1_mem -word mulFACbyMEM::prepareMEM1_mem#0 -word mulFACbyMEM::prepareMEM1_mem#1 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +unsigned int main::$11 +bool main::$14 +__constant char main::f_127[] = { 0, 0, 0, 0, 0 } +__constant char * const main::f_2pi = (char *)$e2e5 +__constant char main::f_i[] = { 0, 0, 0, 0, 0 } +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#11 +char main::i#12 +char main::i#13 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +__constant char * const memHi = (char *)$ff +__constant char * const memLo = (char *)$fe +void mulFACbyMEM(char *mem) +char *mulFACbyMEM::mem +char *mulFACbyMEM::mem#0 +char *mulFACbyMEM::mem#1 +char *mulFACbyMEM::mem#2 +char mulFACbyMEM::prepareMEM1_$0 +char mulFACbyMEM::prepareMEM1_$1 +unsigned int mulFACbyMEM::prepareMEM1_mem +unsigned int mulFACbyMEM::prepareMEM1_mem#0 +unsigned int mulFACbyMEM::prepareMEM1_mem#1 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -void setFAC(word setFAC::w) -byte~ setFAC::prepareMEM1_$0 -byte~ setFAC::prepareMEM1_$1 -word setFAC::prepareMEM1_mem -word setFAC::prepareMEM1_mem#0 -word setFAC::prepareMEM1_mem#1 -word setFAC::w -word setFAC::w#0 -word setFAC::w#1 -word setFAC::w#2 -word setFAC::w#3 -void setMEMtoFAC(byte* setMEMtoFAC::mem) -byte* setMEMtoFAC::mem -byte* setMEMtoFAC::mem#0 -byte* setMEMtoFAC::mem#1 -byte* setMEMtoFAC::mem#2 -byte~ setMEMtoFAC::prepareMEM1_$0 -byte~ setMEMtoFAC::prepareMEM1_$1 -word setMEMtoFAC::prepareMEM1_mem -word setMEMtoFAC::prepareMEM1_mem#0 -word setMEMtoFAC::prepareMEM1_mem#1 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +void setFAC(unsigned int w) +char setFAC::prepareMEM1_$0 +char setFAC::prepareMEM1_$1 +unsigned int setFAC::prepareMEM1_mem +unsigned int setFAC::prepareMEM1_mem#0 +unsigned int setFAC::prepareMEM1_mem#1 +unsigned int setFAC::w +unsigned int setFAC::w#0 +unsigned int setFAC::w#1 +unsigned int setFAC::w#2 +unsigned int setFAC::w#3 +void setMEMtoFAC(char *mem) +char *setMEMtoFAC::mem +char *setMEMtoFAC::mem#0 +char *setMEMtoFAC::mem#1 +char *setMEMtoFAC::mem#2 +char setMEMtoFAC::prepareMEM1_$0 +char setMEMtoFAC::prepareMEM1_$1 +unsigned int setMEMtoFAC::prepareMEM1_mem +unsigned int setMEMtoFAC::prepareMEM1_mem#0 +unsigned int setMEMtoFAC::prepareMEM1_mem#1 void sinFAC() Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#7 + $28 @@ -587,23 +587,23 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast setFAC::w#0 = (unumber)$4fb Inlining cast setFAC::w#2 = (unumber)$19 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 254 -Simplifying constant pointer cast (byte*) 255 -Simplifying constant pointer cast (byte*) 58085 +Simplifying constant pointer cast (char *) 254 +Simplifying constant pointer cast (char *) 255 +Simplifying constant pointer cast (char *) 58085 Simplifying constant integer cast $28 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $4fb Simplifying constant integer cast $19 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $4fb -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $4fb +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#8 print_char_cursor#0 print_line_cursor#9 print_char_cursor#17 print_line_cursor#1 print_char_cursor#1 Alias print_uchar::b#0 = print_uint::$0 Alias print_uint::w#1 = print_uint::w#2 @@ -665,10 +665,10 @@ Constant setFAC::w#2 = $19 Constant divMEMbyFAC::mem#0 = main::f_i Constant mulFACbyMEM::mem#1 = main::f_127 Constant addMEMtoFAC::mem#0 = main::f_127 -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant addMEMtoFAC::prepareMEM1_mem#0 = (word)addMEMtoFAC::mem#0 -Constant divMEMbyFAC::prepareMEM1_mem#0 = (word)divMEMbyFAC::mem#0 +Constant addMEMtoFAC::prepareMEM1_mem#0 = (unsigned int)addMEMtoFAC::mem#0 +Constant divMEMbyFAC::prepareMEM1_mem#0 = (unsigned int)divMEMbyFAC::mem#0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [104] main::i#1 = ++ main::i#10 to ++ Resolved ranged comparison value [106] if(main::i#1!=rangelast(1,$19)) goto main::@1 to $1a @@ -683,7 +683,7 @@ Adding number conversion cast (unumber) $1a in [82] if(main::i#1!=$1a) goto main Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $1a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $1a +Finalized unsigned number type (char) $1a Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [39] addMEMtoFAC::prepareMEM1_$0 = byte0 addMEMtoFAC::prepareMEM1_mem#0 Constant right-side identified [41] addMEMtoFAC::prepareMEM1_$1 = byte1 addMEMtoFAC::prepareMEM1_mem#0 @@ -695,8 +695,8 @@ Constant addMEMtoFAC::prepareMEM1_$1 = byte1 addMEMtoFAC::prepareMEM1_mem#0 Constant divMEMbyFAC::prepareMEM1_$0 = byte0 divMEMbyFAC::prepareMEM1_mem#0 Constant divMEMbyFAC::prepareMEM1_$1 = byte1 divMEMbyFAC::prepareMEM1_mem#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [32] setMEMtoFAC::prepareMEM1_mem#0 = (word)setMEMtoFAC::mem#2 keeping setMEMtoFAC::mem#2 -Inlining Noop Cast [48] mulFACbyMEM::prepareMEM1_mem#0 = (word)mulFACbyMEM::mem#2 keeping mulFACbyMEM::mem#2 +Inlining Noop Cast [32] setMEMtoFAC::prepareMEM1_mem#0 = (unsigned int)setMEMtoFAC::mem#2 keeping setMEMtoFAC::mem#2 +Inlining Noop Cast [48] mulFACbyMEM::prepareMEM1_mem#0 = (unsigned int)mulFACbyMEM::mem#2 keeping mulFACbyMEM::mem#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings setFAC::w#0 Inlining constant with var siblings setFAC::w#2 @@ -719,10 +719,10 @@ Constant inlined mulFACbyMEM::mem#1 = main::f_127 Constant inlined addMEMtoFAC::prepareMEM1_$1 = byte1 addMEMtoFAC::prepareMEM1_mem#0 Constant inlined setFAC::w#0 = $4fb Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@16(between main::@15 and main::@1) @@ -803,63 +803,63 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call setFAC + [1] call setFAC to:main::@2 main::@2: scope:[main] from main [2] phi() - [3] call divFACby10 + [3] call divFACby10 to:main::@3 main::@3: scope:[main] from main::@2 [4] phi() - [5] call setMEMtoFAC + [5] call setMEMtoFAC to:main::@1 main::@1: scope:[main] from main::@15 main::@3 [6] print_line_cursor#15 = phi( main::@15/print_line_cursor#0, main::@3/print_screen#0 ) [6] print_char_cursor#34 = phi( main::@15/print_char_cursor#53, main::@3/print_screen#0 ) [6] main::i#10 = phi( main::@15/main::i#1, main::@3/1 ) - [7] setFAC::w#1 = (word)main::i#10 - [8] call setFAC + [7] setFAC::w#1 = (unsigned int)main::i#10 + [8] call setFAC to:main::@4 main::@4: scope:[main] from main::@1 [9] phi() - [10] call mulFACbyMEM + [10] call mulFACbyMEM to:main::@5 main::@5: scope:[main] from main::@4 [11] phi() - [12] call setMEMtoFAC + [12] call setMEMtoFAC to:main::@6 main::@6: scope:[main] from main::@5 [13] phi() - [14] call setFAC + [14] call setFAC to:main::@7 main::@7: scope:[main] from main::@6 [15] phi() - [16] call divMEMbyFAC + [16] call divMEMbyFAC to:main::@8 main::@8: scope:[main] from main::@7 [17] phi() - [18] call sinFAC + [18] call sinFAC to:main::@9 main::@9: scope:[main] from main::@8 [19] phi() - [20] call mulFACbyMEM + [20] call mulFACbyMEM to:main::@10 main::@10: scope:[main] from main::@9 [21] phi() - [22] call addMEMtoFAC + [22] call addMEMtoFAC to:main::@11 main::@11: scope:[main] from main::@10 [23] phi() - [24] call getFAC + [24] call getFAC [25] getFAC::return#2 = getFAC::return#0 to:main::@12 main::@12: scope:[main] from main::@11 [26] print_uint::w#0 = getFAC::return#2 - [27] call print_uint + [27] call print_uint to:main::@13 main::@13: scope:[main] from main::@12 [28] phi() - [29] call print_ln + [29] call print_ln to:main::@14 main::@14: scope:[main] from main::@13 [30] main::i#1 = ++ main::i#10 @@ -872,7 +872,7 @@ main::@15: scope:[main] from main::@14 [33] print_char_cursor#53 = print_line_cursor#0 to:main::@1 -void setFAC(word setFAC::w) +void setFAC(unsigned int w) setFAC: scope:[setFAC] from main main::@1 main::@6 [34] setFAC::prepareMEM1_mem#0 = phi( main/$4fb, main::@1/setFAC::w#1, main::@6/$19 ) to:setFAC::prepareMEM1 @@ -897,14 +897,14 @@ divFACby10::@return: scope:[divFACby10] from divFACby10 [42] return to:@return -void setMEMtoFAC(byte* setMEMtoFAC::mem) +void setMEMtoFAC(char *mem) setMEMtoFAC: scope:[setMEMtoFAC] from main::@3 main::@5 [43] setMEMtoFAC::mem#2 = phi( main::@3/main::f_127, main::@5/main::f_i ) to:setMEMtoFAC::prepareMEM1 setMEMtoFAC::prepareMEM1: scope:[setMEMtoFAC] from setMEMtoFAC - [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (word)setMEMtoFAC::mem#2 + [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (unsigned int)setMEMtoFAC::mem#2 [45] *memLo = setMEMtoFAC::prepareMEM1_$0 - [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (word)setMEMtoFAC::mem#2 + [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (unsigned int)setMEMtoFAC::mem#2 [47] *memHi = setMEMtoFAC::prepareMEM1_$1 to:setMEMtoFAC::@1 setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC::prepareMEM1 @@ -914,14 +914,14 @@ setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1 [49] return to:@return -void mulFACbyMEM(byte* mulFACbyMEM::mem) +void mulFACbyMEM(char *mem) mulFACbyMEM: scope:[mulFACbyMEM] from main::@4 main::@9 [50] mulFACbyMEM::mem#2 = phi( main::@9/main::f_127, main::@4/main::f_2pi ) to:mulFACbyMEM::prepareMEM1 mulFACbyMEM::prepareMEM1: scope:[mulFACbyMEM] from mulFACbyMEM - [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (word)mulFACbyMEM::mem#2 + [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (unsigned int)mulFACbyMEM::mem#2 [52] *memLo = mulFACbyMEM::prepareMEM1_$0 - [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (word)mulFACbyMEM::mem#2 + [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (unsigned int)mulFACbyMEM::mem#2 [54] *memHi = mulFACbyMEM::prepareMEM1_$1 to:mulFACbyMEM::@1 mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM::prepareMEM1 @@ -931,7 +931,7 @@ mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM::@1 [56] return to:@return -void divMEMbyFAC(byte* divMEMbyFAC::mem) +void divMEMbyFAC(char *mem) divMEMbyFAC: scope:[divMEMbyFAC] from main::@7 [57] phi() to:divMEMbyFAC::prepareMEM1 @@ -954,7 +954,7 @@ sinFAC::@return: scope:[sinFAC] from sinFAC [63] return to:@return -void addMEMtoFAC(byte* addMEMtoFAC::mem) +void addMEMtoFAC(char *mem) addMEMtoFAC: scope:[addMEMtoFAC] from main::@10 [64] phi() to:addMEMtoFAC::prepareMEM1 @@ -969,7 +969,7 @@ addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1 [68] return to:@return -word getFAC() +unsigned int getFAC() getFAC: scope:[getFAC] from main::@11 asm { jsr$b1aa stymemLo stamemHi } [70] getFAC::return#0 = *memHi w= *memLo @@ -978,14 +978,14 @@ getFAC::@return: scope:[getFAC] from getFAC [71] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@12 [72] print_uchar::b#0 = byte1 print_uint::w#0 - [73] call print_uchar + [73] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [74] print_uchar::b#1 = byte0 print_uint::w#0 - [75] call print_uchar + [75] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [76] return @@ -1004,24 +1004,24 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [81] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [82] print_char_cursor#33 = phi( print_uint/print_char_cursor#34, print_uint::@1/print_char_cursor#25 ) [82] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [83] print_uchar::$0 = print_uchar::b#2 >> 4 [84] print_char::ch#0 = print_hextab[print_uchar::$0] - [85] call print_char + [85] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [86] print_uchar::$2 = print_uchar::b#2 & $f [87] print_char::ch#1 = print_hextab[print_uchar::$2] - [88] call print_char + [88] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [89] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [90] print_char_cursor#24 = phi( print_uchar/print_char_cursor#33, print_uchar::@1/print_char_cursor#25 ) [90] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -1034,68 +1034,68 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -void addMEMtoFAC(byte* addMEMtoFAC::mem) -byte* addMEMtoFAC::mem -word addMEMtoFAC::prepareMEM1_mem +void addMEMtoFAC(char *mem) +char *addMEMtoFAC::mem +unsigned int addMEMtoFAC::prepareMEM1_mem void divFACby10() -void divMEMbyFAC(byte* divMEMbyFAC::mem) -byte* divMEMbyFAC::mem -word divMEMbyFAC::prepareMEM1_mem -word getFAC() -word getFAC::return -word getFAC::return#0 37.33333333333333 -word getFAC::return#2 22.0 -word getFAC::w +void divMEMbyFAC(char *mem) +char *divMEMbyFAC::mem +unsigned int divMEMbyFAC::prepareMEM1_mem +unsigned int getFAC() +unsigned int getFAC::return +unsigned int getFAC::return#0 // 37.33333333333333 +unsigned int getFAC::return#2 // 22.0 +unsigned int getFAC::w void main() -byte main::i -byte main::i#1 11.0 -byte main::i#10 0.9166666666666666 -void mulFACbyMEM(byte* mulFACbyMEM::mem) -byte* mulFACbyMEM::mem -byte* mulFACbyMEM::mem#2 -byte~ mulFACbyMEM::prepareMEM1_$0 202.0 -byte~ mulFACbyMEM::prepareMEM1_$1 202.0 -word mulFACbyMEM::prepareMEM1_mem -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2002.0 -byte print_char::ch#1 2002.0 -byte print_char::ch#2 12003.0 -byte* print_char_cursor -byte* print_char_cursor#24 11002.0 -byte* print_char_cursor#25 1241.4117647058824 -byte* print_char_cursor#33 401.0 -byte* print_char_cursor#34 5.090909090909091 -byte* print_char_cursor#53 22.0 -byte* print_line_cursor -byte* print_line_cursor#0 4289.285714285714 -byte* print_line_cursor#15 4.666666666666666 -byte* print_line_cursor#7 20103.0 +char main::i +char main::i#1 // 11.0 +char main::i#10 // 0.9166666666666666 +void mulFACbyMEM(char *mem) +char *mulFACbyMEM::mem +char *mulFACbyMEM::mem#2 +char mulFACbyMEM::prepareMEM1_$0 // 202.0 +char mulFACbyMEM::prepareMEM1_$1 // 202.0 +unsigned int mulFACbyMEM::prepareMEM1_mem +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2002.0 +char print_char::ch#1 // 2002.0 +char print_char::ch#2 // 12003.0 +char *print_char_cursor +char *print_char_cursor#24 // 11002.0 +char *print_char_cursor#25 // 1241.4117647058824 +char *print_char_cursor#33 // 401.0 +char *print_char_cursor#34 // 5.090909090909091 +char *print_char_cursor#53 // 22.0 +char *print_line_cursor +char *print_line_cursor#0 // 4289.285714285714 +char *print_line_cursor#15 // 4.666666666666666 +char *print_line_cursor#7 // 20103.0 void print_ln() -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 2002.0 -byte~ print_uchar::$2 2002.0 -byte print_uchar::b -byte print_uchar::b#0 202.0 -byte print_uchar::b#1 202.0 -byte print_uchar::b#2 551.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 71.0 -void setFAC(word setFAC::w) -byte~ setFAC::prepareMEM1_$0 202.0 -byte~ setFAC::prepareMEM1_$1 202.0 -word setFAC::prepareMEM1_mem -word setFAC::prepareMEM1_mem#0 71.0 -word setFAC::w -word setFAC::w#1 22.0 -void setMEMtoFAC(byte* setMEMtoFAC::mem) -byte* setMEMtoFAC::mem -byte* setMEMtoFAC::mem#2 -byte~ setMEMtoFAC::prepareMEM1_$0 202.0 -byte~ setMEMtoFAC::prepareMEM1_$1 202.0 -word setMEMtoFAC::prepareMEM1_mem +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 2002.0 +char print_uchar::$2 // 2002.0 +char print_uchar::b +char print_uchar::b#0 // 202.0 +char print_uchar::b#1 // 202.0 +char print_uchar::b#2 // 551.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 71.0 +void setFAC(unsigned int w) +char setFAC::prepareMEM1_$0 // 202.0 +char setFAC::prepareMEM1_$1 // 202.0 +unsigned int setFAC::prepareMEM1_mem +unsigned int setFAC::prepareMEM1_mem#0 // 71.0 +unsigned int setFAC::w +unsigned int setFAC::w#1 // 22.0 +void setMEMtoFAC(char *mem) +char *setMEMtoFAC::mem +char *setMEMtoFAC::mem#2 +char setMEMtoFAC::prepareMEM1_$0 // 202.0 +char setMEMtoFAC::prepareMEM1_$1 // 202.0 +unsigned int setMEMtoFAC::prepareMEM1_mem void sinFAC() Initial phi equivalence classes @@ -1158,7 +1158,7 @@ Allocated zp[2]:25 [ getFAC::return#0 ] Allocated zp[1]:27 [ print_uchar::$0 ] Allocated zp[1]:28 [ print_uchar::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [7] setFAC::w#1 = (word)main::i#10 [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] { { setFAC::prepareMEM1_mem#0 = setFAC::w#1 } } ) always clobbers reg byte a +Statement [7] setFAC::w#1 = (unsigned int)main::i#10 [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] { { setFAC::prepareMEM1_mem#0 = setFAC::w#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#10 main::i#1 ] Statement [25] getFAC::return#2 = getFAC::return#0 [ main::i#10 print_char_cursor#34 print_line_cursor#15 getFAC::return#2 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 getFAC::return#2 ] { { getFAC::return#0 = getFAC::return#2 } } ) always clobbers reg byte a Statement [26] print_uint::w#0 = getFAC::return#2 [ main::i#10 print_char_cursor#34 print_line_cursor#15 print_uint::w#0 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 print_uint::w#0 ] { { print_uint::w#0 = getFAC::return#2 } } ) always clobbers reg byte a @@ -1185,7 +1185,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:11 [ print_ Statement [86] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#25 print_uchar::$2 ] ( print_uint:27::print_uchar:73 [ main::i#10 print_line_cursor#15 print_uint::w#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = getFAC::return#2 } { print_uchar::b#0 = print_uchar::b#2 } { print_char_cursor#33 = print_char_cursor#34 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#24 = print_char_cursor#25 } } print_uint:27::print_uchar:75 [ main::i#10 print_line_cursor#15 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = getFAC::return#2 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#24 = print_char_cursor#33 print_char_cursor#25 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a Statement [91] *print_char_cursor#24 = print_char::ch#2 [ print_char_cursor#24 ] ( print_uint:27::print_uchar:73::print_char:85 [ main::i#10 print_line_cursor#15 print_uint::w#0 print_uchar::b#2 print_char_cursor#24 ] { { print_uint::w#0 = getFAC::return#2 } { print_uchar::b#0 = print_uchar::b#2 } { print_char_cursor#24 = print_char_cursor#33 print_char_cursor#34 } { print_char::ch#0 = print_char::ch#2 } } print_uint:27::print_uchar:75::print_char:85 [ main::i#10 print_line_cursor#15 print_uchar::b#2 print_char_cursor#24 ] { { print_uint::w#0 = getFAC::return#2 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#24 = print_char_cursor#33 print_char_cursor#25 } { print_char::ch#0 = print_char::ch#2 } } print_uint:27::print_uchar:73::print_char:88 [ main::i#10 print_line_cursor#15 print_uint::w#0 print_char_cursor#24 ] { { print_uint::w#0 = getFAC::return#2 } { print_uchar::b#0 = print_uchar::b#2 } { print_char_cursor#33 = print_char_cursor#34 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#24 = print_char_cursor#25 } } print_uint:27::print_uchar:75::print_char:88 [ main::i#10 print_line_cursor#15 print_char_cursor#24 ] { { print_uint::w#0 = getFAC::return#2 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#24 = print_char_cursor#33 print_char_cursor#25 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:11 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Statement [7] setFAC::w#1 = (word)main::i#10 [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] { { setFAC::prepareMEM1_mem#0 = setFAC::w#1 } } ) always clobbers reg byte a +Statement [7] setFAC::w#1 = (unsigned int)main::i#10 [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 setFAC::w#1 ] { { setFAC::prepareMEM1_mem#0 = setFAC::w#1 } } ) always clobbers reg byte a Statement [25] getFAC::return#2 = getFAC::return#0 [ main::i#10 print_char_cursor#34 print_line_cursor#15 getFAC::return#2 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 getFAC::return#2 ] { { getFAC::return#0 = getFAC::return#2 } } ) always clobbers reg byte a Statement [26] print_uint::w#0 = getFAC::return#2 [ main::i#10 print_char_cursor#34 print_line_cursor#15 print_uint::w#0 ] ( [ main::i#10 print_char_cursor#34 print_line_cursor#15 print_uint::w#0 ] { { print_uint::w#0 = getFAC::return#2 } } ) always clobbers reg byte a Statement [31] if(main::i#1!=$1a) goto main::@15 [ main::i#1 print_line_cursor#0 ] ( [ main::i#1 print_line_cursor#0 ] { } ) always clobbers reg byte a @@ -1298,7 +1298,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label f_2pi = $e2e5 .label i = 2 - // [1] call setFAC + // [1] call setFAC // [34] phi from main to setFAC [phi:main->setFAC] setFAC_from_main: // [34] phi setFAC::prepareMEM1_mem#0 = $4fb [phi:main->setFAC#0] -- vwuz1=vwuc1 @@ -1312,14 +1312,14 @@ main: { jmp __b2 // main::@2 __b2: - // [3] call divFACby10 + // [3] call divFACby10 jsr divFACby10 // [4] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [5] call setMEMtoFAC + // [5] call setMEMtoFAC // [43] phi from main::@3 to setMEMtoFAC [phi:main::@3->setMEMtoFAC] setMEMtoFAC_from___b3: // [43] phi setMEMtoFAC::mem#2 = main::f_127 [phi:main::@3->setMEMtoFAC#0] -- pbuz1=pbuc1 @@ -1346,12 +1346,12 @@ main: { jmp __b1 // main::@1 __b1: - // [7] setFAC::w#1 = (word)main::i#10 -- vwuz1=_word_vbuz2 + // [7] setFAC::w#1 = (unsigned int)main::i#10 -- vwuz1=_word_vbuz2 lda.z i sta.z setFAC.w lda #0 sta.z setFAC.w+1 - // [8] call setFAC + // [8] call setFAC // [34] phi from main::@1 to setFAC [phi:main::@1->setFAC] setFAC_from___b1: // [34] phi setFAC::prepareMEM1_mem#0 = setFAC::w#1 [phi:main::@1->setFAC#0] -- register_copy @@ -1361,7 +1361,7 @@ main: { jmp __b4 // main::@4 __b4: - // [10] call mulFACbyMEM + // [10] call mulFACbyMEM // [50] phi from main::@4 to mulFACbyMEM [phi:main::@4->mulFACbyMEM] mulFACbyMEM_from___b4: // [50] phi mulFACbyMEM::mem#2 = main::f_2pi [phi:main::@4->mulFACbyMEM#0] -- pbuz1=pbuc1 @@ -1375,7 +1375,7 @@ main: { jmp __b5 // main::@5 __b5: - // [12] call setMEMtoFAC + // [12] call setMEMtoFAC // [43] phi from main::@5 to setMEMtoFAC [phi:main::@5->setMEMtoFAC] setMEMtoFAC_from___b5: // [43] phi setMEMtoFAC::mem#2 = main::f_i [phi:main::@5->setMEMtoFAC#0] -- pbuz1=pbuc1 @@ -1389,7 +1389,7 @@ main: { jmp __b6 // main::@6 __b6: - // [14] call setFAC + // [14] call setFAC // [34] phi from main::@6 to setFAC [phi:main::@6->setFAC] setFAC_from___b6: // [34] phi setFAC::prepareMEM1_mem#0 = $19 [phi:main::@6->setFAC#0] -- vwuz1=vbuc1 @@ -1403,7 +1403,7 @@ main: { jmp __b7 // main::@7 __b7: - // [16] call divMEMbyFAC + // [16] call divMEMbyFAC // [57] phi from main::@7 to divMEMbyFAC [phi:main::@7->divMEMbyFAC] divMEMbyFAC_from___b7: jsr divMEMbyFAC @@ -1412,14 +1412,14 @@ main: { jmp __b8 // main::@8 __b8: - // [18] call sinFAC + // [18] call sinFAC jsr sinFAC // [19] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [20] call mulFACbyMEM + // [20] call mulFACbyMEM // [50] phi from main::@9 to mulFACbyMEM [phi:main::@9->mulFACbyMEM] mulFACbyMEM_from___b9: // [50] phi mulFACbyMEM::mem#2 = main::f_127 [phi:main::@9->mulFACbyMEM#0] -- pbuz1=pbuc1 @@ -1433,7 +1433,7 @@ main: { jmp __b10 // main::@10 __b10: - // [22] call addMEMtoFAC + // [22] call addMEMtoFAC // [64] phi from main::@10 to addMEMtoFAC [phi:main::@10->addMEMtoFAC] addMEMtoFAC_from___b10: jsr addMEMtoFAC @@ -1442,21 +1442,21 @@ main: { jmp __b11 // main::@11 __b11: - // [24] call getFAC + // [24] call getFAC jsr getFAC // [25] getFAC::return#2 = getFAC::return#0 jmp __b12 // main::@12 __b12: // [26] print_uint::w#0 = getFAC::return#2 - // [27] call print_uint + // [27] call print_uint jsr print_uint // [28] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [29] call print_ln + // [29] call print_ln // [77] phi from main::@13 to print_ln [phi:main::@13->print_ln] print_ln_from___b13: jsr print_ln @@ -1495,7 +1495,7 @@ main: { // setFAC // FAC = unsigned int // Set the FAC (floating point accumulator) to the integer value of a 16bit unsigned int -// setFAC(word zp(7) w) +// void setFAC(__zp(7) unsigned int w) setFAC: { .label prepareMEM1_mem = 7 .label w = 7 @@ -1540,17 +1540,17 @@ divFACby10: { // MEM = FAC // Stores the value of the FAC to memory // Stores 5 chars (means it is necessary to allocate 5 chars to avoid clobbering other data using eg. char[] mem = {0, 0, 0, 0, 0};) -// setMEMtoFAC(byte* zp(7) mem) +// void setMEMtoFAC(__zp(7) char *mem) setMEMtoFAC: { .label mem = 7 jmp prepareMEM1 // setMEMtoFAC::prepareMEM1 prepareMEM1: - // [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (word)setMEMtoFAC::mem#2 -- vbuaa=_byte0_vwuz1 + // [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (unsigned int)setMEMtoFAC::mem#2 -- vbuaa=_byte0_vwuz1 lda.z mem // [45] *memLo = setMEMtoFAC::prepareMEM1_$0 -- _deref_pbuc1=vbuaa sta memLo - // [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (word)setMEMtoFAC::mem#2 -- vbuaa=_byte1_vwuz1 + // [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (unsigned int)setMEMtoFAC::mem#2 -- vbuaa=_byte1_vwuz1 lda.z mem+1 // [47] *memHi = setMEMtoFAC::prepareMEM1_$1 -- _deref_pbuc1=vbuaa sta memHi @@ -1571,17 +1571,17 @@ setMEMtoFAC: { // FAC = MEM*FAC // Set FAC to MEM (float saved in memory) multiplied by FAC (float accumulator) // Reads 5 chars from memory -// mulFACbyMEM(byte* zp(7) mem) +// void mulFACbyMEM(__zp(7) char *mem) mulFACbyMEM: { .label mem = 7 jmp prepareMEM1 // mulFACbyMEM::prepareMEM1 prepareMEM1: - // [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (word)mulFACbyMEM::mem#2 -- vbuaa=_byte0_vwuz1 + // [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (unsigned int)mulFACbyMEM::mem#2 -- vbuaa=_byte0_vwuz1 lda.z mem // [52] *memLo = mulFACbyMEM::prepareMEM1_$0 -- _deref_pbuc1=vbuaa sta memLo - // [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (word)mulFACbyMEM::mem#2 -- vbuaa=_byte1_vwuz1 + // [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (unsigned int)mulFACbyMEM::mem#2 -- vbuaa=_byte1_vwuz1 lda.z mem+1 // [54] *memHi = mulFACbyMEM::prepareMEM1_$1 -- _deref_pbuc1=vbuaa sta memHi @@ -1602,6 +1602,7 @@ mulFACbyMEM: { // FAC = MEM/FAC // Set FAC to MEM (float saved in memory) divided by FAC (float accumulator) // Reads 5 chars from memory +// void divMEMbyFAC(char *mem) divMEMbyFAC: { .const prepareMEM1_mem = main.f_i jmp prepareMEM1 @@ -1643,6 +1644,7 @@ sinFAC: { // FAC = MEM+FAC // Set FAC to MEM (float saved in memory) plus FAC (float accumulator) // Reads 5 chars from memory +// void addMEMtoFAC(char *mem) addMEMtoFAC: { .const prepareMEM1_mem = main.f_127 jmp prepareMEM1 @@ -1691,12 +1693,12 @@ getFAC: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(7) w) +// void print_uint(__zp(7) unsigned int w) print_uint: { .label w = 7 // [72] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [73] call print_uchar + // [73] call print_uchar // [82] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [82] phi print_char_cursor#33 = print_char_cursor#34 [phi:print_uint->print_uchar#0] -- register_copy @@ -1707,7 +1709,7 @@ print_uint: { __b1: // [74] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [75] call print_uchar + // [75] call print_uchar // [82] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [82] phi print_char_cursor#33 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1754,7 +1756,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [83] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1765,7 +1767,7 @@ print_uchar: { // [84] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [85] call print_char + // [85] call print_char // Table of hexadecimal digits // [90] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1780,7 +1782,7 @@ print_uchar: { axs #0 // [87] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [88] call print_char + // [88] call print_char // [90] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [90] phi print_char_cursor#24 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1794,7 +1796,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [91] *print_char_cursor#24 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 @@ -1935,81 +1937,81 @@ Replacing instruction ldy memHi with TAY Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void addMEMtoFAC(byte* addMEMtoFAC::mem) -byte* addMEMtoFAC::mem -word addMEMtoFAC::prepareMEM1_mem -constant word addMEMtoFAC::prepareMEM1_mem#0 prepareMEM1_mem = (word)main::f_127 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void addMEMtoFAC(char *mem) +char *addMEMtoFAC::mem +unsigned int addMEMtoFAC::prepareMEM1_mem +__constant unsigned int addMEMtoFAC::prepareMEM1_mem#0 = (unsigned int)main::f_127 // prepareMEM1_mem void divFACby10() -void divMEMbyFAC(byte* divMEMbyFAC::mem) -byte* divMEMbyFAC::mem -word divMEMbyFAC::prepareMEM1_mem -constant word divMEMbyFAC::prepareMEM1_mem#0 prepareMEM1_mem = (word)main::f_i -word getFAC() -word getFAC::return -word getFAC::return#0 return zp[2]:7 37.33333333333333 -word getFAC::return#2 return zp[2]:7 22.0 -word getFAC::w +void divMEMbyFAC(char *mem) +char *divMEMbyFAC::mem +unsigned int divMEMbyFAC::prepareMEM1_mem +__constant unsigned int divMEMbyFAC::prepareMEM1_mem#0 = (unsigned int)main::f_i // prepareMEM1_mem +unsigned int getFAC() +unsigned int getFAC::return +unsigned int getFAC::return#0 // return zp[2]:7 37.33333333333333 +unsigned int getFAC::return#2 // return zp[2]:7 22.0 +unsigned int getFAC::w void main() -constant byte* main::f_127[] = { 0, 0, 0, 0, 0 } -constant byte* const main::f_2pi = (byte*) 58085 -constant byte* main::f_i[] = { 0, 0, 0, 0, 0 } -byte main::i -byte main::i#1 i zp[1]:2 11.0 -byte main::i#10 i zp[1]:2 0.9166666666666666 -constant byte* const memHi = (byte*) 255 -constant byte* const memLo = (byte*) 254 -void mulFACbyMEM(byte* mulFACbyMEM::mem) -byte* mulFACbyMEM::mem -byte* mulFACbyMEM::mem#2 mem zp[2]:7 -byte~ mulFACbyMEM::prepareMEM1_$0 reg byte a 202.0 -byte~ mulFACbyMEM::prepareMEM1_$1 reg byte a 202.0 -word mulFACbyMEM::prepareMEM1_mem -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#2 reg byte a 12003.0 -byte* print_char_cursor -byte* print_char_cursor#24 print_char_cursor zp[2]:5 11002.0 -byte* print_char_cursor#25 print_char_cursor zp[2]:5 1241.4117647058824 -byte* print_char_cursor#33 print_char_cursor zp[2]:5 401.0 -byte* print_char_cursor#34 print_char_cursor zp[2]:5 5.090909090909091 -byte* print_char_cursor#53 print_char_cursor zp[2]:5 22.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:3 4289.285714285714 -byte* print_line_cursor#15 print_line_cursor zp[2]:3 4.666666666666666 -byte* print_line_cursor#7 print_line_cursor zp[2]:3 20103.0 +__constant char main::f_127[] = { 0, 0, 0, 0, 0 } +__constant char * const main::f_2pi = (char *) 58085 +__constant char main::f_i[] = { 0, 0, 0, 0, 0 } +char main::i +char main::i#1 // i zp[1]:2 11.0 +char main::i#10 // i zp[1]:2 0.9166666666666666 +__constant char * const memHi = (char *) 255 +__constant char * const memLo = (char *) 254 +void mulFACbyMEM(char *mem) +char *mulFACbyMEM::mem +char *mulFACbyMEM::mem#2 // mem zp[2]:7 +char mulFACbyMEM::prepareMEM1_$0 // reg byte a 202.0 +char mulFACbyMEM::prepareMEM1_$1 // reg byte a 202.0 +unsigned int mulFACbyMEM::prepareMEM1_mem +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#2 // reg byte a 12003.0 +char *print_char_cursor +char *print_char_cursor#24 // print_char_cursor zp[2]:5 11002.0 +char *print_char_cursor#25 // print_char_cursor zp[2]:5 1241.4117647058824 +char *print_char_cursor#33 // print_char_cursor zp[2]:5 401.0 +char *print_char_cursor#34 // print_char_cursor zp[2]:5 5.090909090909091 +char *print_char_cursor#53 // print_char_cursor zp[2]:5 22.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:3 4289.285714285714 +char *print_line_cursor#15 // print_line_cursor zp[2]:3 4.666666666666666 +char *print_line_cursor#7 // print_line_cursor zp[2]:3 20103.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 551.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:7 71.0 -void setFAC(word setFAC::w) -byte~ setFAC::prepareMEM1_$0 reg byte a 202.0 -byte~ setFAC::prepareMEM1_$1 reg byte a 202.0 -word setFAC::prepareMEM1_mem -word setFAC::prepareMEM1_mem#0 prepareMEM1_mem zp[2]:7 71.0 -word setFAC::w -word setFAC::w#1 w zp[2]:7 22.0 -void setMEMtoFAC(byte* setMEMtoFAC::mem) -byte* setMEMtoFAC::mem -byte* setMEMtoFAC::mem#2 mem zp[2]:7 -byte~ setMEMtoFAC::prepareMEM1_$0 reg byte a 202.0 -byte~ setMEMtoFAC::prepareMEM1_$1 reg byte a 202.0 -word setMEMtoFAC::prepareMEM1_mem +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 551.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:7 71.0 +void setFAC(unsigned int w) +char setFAC::prepareMEM1_$0 // reg byte a 202.0 +char setFAC::prepareMEM1_$1 // reg byte a 202.0 +unsigned int setFAC::prepareMEM1_mem +unsigned int setFAC::prepareMEM1_mem#0 // prepareMEM1_mem zp[2]:7 71.0 +unsigned int setFAC::w +unsigned int setFAC::w#1 // w zp[2]:7 22.0 +void setMEMtoFAC(char *mem) +char *setMEMtoFAC::mem +char *setMEMtoFAC::mem#2 // mem zp[2]:7 +char setMEMtoFAC::prepareMEM1_$0 // reg byte a 202.0 +char setMEMtoFAC::prepareMEM1_$1 // reg byte a 202.0 +unsigned int setMEMtoFAC::prepareMEM1_mem void sinFAC() zp[1]:2 [ main::i#10 main::i#1 ] @@ -2058,7 +2060,7 @@ main: { .label f_2pi = $e2e5 .label i = 2 // setFAC(1275) - // [1] call setFAC + // [1] call setFAC // [34] phi from main to setFAC [phi:main->setFAC] // [34] phi setFAC::prepareMEM1_mem#0 = $4fb [phi:main->setFAC#0] -- vwuz1=vwuc1 lda #<$4fb @@ -2069,12 +2071,12 @@ main: { // [2] phi from main to main::@2 [phi:main->main::@2] // main::@2 // divFACby10() - // [3] call divFACby10 + // [3] call divFACby10 jsr divFACby10 // [4] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // setMEMtoFAC(f_127) - // [5] call setMEMtoFAC + // [5] call setMEMtoFAC // [43] phi from main::@3 to setMEMtoFAC [phi:main::@3->setMEMtoFAC] // [43] phi setMEMtoFAC::mem#2 = main::f_127 [phi:main::@3->setMEMtoFAC#0] -- pbuz1=pbuc1 lda #setFAC] // [34] phi setFAC::prepareMEM1_mem#0 = setFAC::w#1 [phi:main::@1->setFAC#0] -- register_copy jsr setFAC // [9] phi from main::@1 to main::@4 [phi:main::@1->main::@4] // main::@4 // mulFACbyMEM(f_2pi) - // [10] call mulFACbyMEM + // [10] call mulFACbyMEM // [50] phi from main::@4 to mulFACbyMEM [phi:main::@4->mulFACbyMEM] // [50] phi mulFACbyMEM::mem#2 = main::f_2pi [phi:main::@4->mulFACbyMEM#0] -- pbuz1=pbuc1 lda #main::@5] // main::@5 // setMEMtoFAC(f_i) - // [12] call setMEMtoFAC + // [12] call setMEMtoFAC // [43] phi from main::@5 to setMEMtoFAC [phi:main::@5->setMEMtoFAC] // [43] phi setMEMtoFAC::mem#2 = main::f_i [phi:main::@5->setMEMtoFAC#0] -- pbuz1=pbuc1 lda #main::@6] // main::@6 // setFAC(25) - // [14] call setFAC + // [14] call setFAC // [34] phi from main::@6 to setFAC [phi:main::@6->setFAC] // [34] phi setFAC::prepareMEM1_mem#0 = $19 [phi:main::@6->setFAC#0] -- vwuz1=vbuc1 lda #<$19 @@ -2144,18 +2146,18 @@ main: { // [15] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // divMEMbyFAC(f_i) - // [16] call divMEMbyFAC + // [16] call divMEMbyFAC // [57] phi from main::@7 to divMEMbyFAC [phi:main::@7->divMEMbyFAC] jsr divMEMbyFAC // [17] phi from main::@7 to main::@8 [phi:main::@7->main::@8] // main::@8 // sinFAC() - // [18] call sinFAC + // [18] call sinFAC jsr sinFAC // [19] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // mulFACbyMEM(f_127) - // [20] call mulFACbyMEM + // [20] call mulFACbyMEM // [50] phi from main::@9 to mulFACbyMEM [phi:main::@9->mulFACbyMEM] // [50] phi mulFACbyMEM::mem#2 = main::f_127 [phi:main::@9->mulFACbyMEM#0] -- pbuz1=pbuc1 lda #main::@10] // main::@10 // addMEMtoFAC(f_127) - // [22] call addMEMtoFAC + // [22] call addMEMtoFAC // [64] phi from main::@10 to addMEMtoFAC [phi:main::@10->addMEMtoFAC] jsr addMEMtoFAC // [23] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // getFAC() - // [24] call getFAC + // [24] call getFAC jsr getFAC // [25] getFAC::return#2 = getFAC::return#0 // main::@12 // print_uint(getFAC()) // [26] print_uint::w#0 = getFAC::return#2 - // [27] call print_uint + // [27] call print_uint jsr print_uint // [28] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // print_ln() - // [29] call print_ln + // [29] call print_ln // [77] phi from main::@13 to print_ln [phi:main::@13->print_ln] jsr print_ln // main::@14 @@ -2218,7 +2220,7 @@ main: { // setFAC // FAC = unsigned int // Set the FAC (floating point accumulator) to the integer value of a 16bit unsigned int -// setFAC(word zp(7) w) +// void setFAC(__zp(7) unsigned int w) setFAC: { .label prepareMEM1_mem = 7 .label w = 7 @@ -2262,18 +2264,18 @@ divFACby10: { // MEM = FAC // Stores the value of the FAC to memory // Stores 5 chars (means it is necessary to allocate 5 chars to avoid clobbering other data using eg. char[] mem = {0, 0, 0, 0, 0};) -// setMEMtoFAC(byte* zp(7) mem) +// void setMEMtoFAC(__zp(7) char *mem) setMEMtoFAC: { .label mem = 7 // setMEMtoFAC::prepareMEM1 // BYTE0(mem) - // [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (word)setMEMtoFAC::mem#2 -- vbuaa=_byte0_vwuz1 + // [44] setMEMtoFAC::prepareMEM1_$0 = byte0 (unsigned int)setMEMtoFAC::mem#2 -- vbuaa=_byte0_vwuz1 lda.z mem // *memLo = BYTE0(mem) // [45] *memLo = setMEMtoFAC::prepareMEM1_$0 -- _deref_pbuc1=vbuaa sta memLo // BYTE1(mem) - // [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (word)setMEMtoFAC::mem#2 -- vbuaa=_byte1_vwuz1 + // [46] setMEMtoFAC::prepareMEM1_$1 = byte1 (unsigned int)setMEMtoFAC::mem#2 -- vbuaa=_byte1_vwuz1 lda.z mem+1 // *memHi = BYTE1(mem) // [47] *memHi = setMEMtoFAC::prepareMEM1_$1 -- _deref_pbuc1=vbuaa @@ -2293,18 +2295,18 @@ setMEMtoFAC: { // FAC = MEM*FAC // Set FAC to MEM (float saved in memory) multiplied by FAC (float accumulator) // Reads 5 chars from memory -// mulFACbyMEM(byte* zp(7) mem) +// void mulFACbyMEM(__zp(7) char *mem) mulFACbyMEM: { .label mem = 7 // mulFACbyMEM::prepareMEM1 // BYTE0(mem) - // [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (word)mulFACbyMEM::mem#2 -- vbuaa=_byte0_vwuz1 + // [51] mulFACbyMEM::prepareMEM1_$0 = byte0 (unsigned int)mulFACbyMEM::mem#2 -- vbuaa=_byte0_vwuz1 lda.z mem // *memLo = BYTE0(mem) // [52] *memLo = mulFACbyMEM::prepareMEM1_$0 -- _deref_pbuc1=vbuaa sta memLo // BYTE1(mem) - // [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (word)mulFACbyMEM::mem#2 -- vbuaa=_byte1_vwuz1 + // [53] mulFACbyMEM::prepareMEM1_$1 = byte1 (unsigned int)mulFACbyMEM::mem#2 -- vbuaa=_byte1_vwuz1 lda.z mem+1 // *memHi = BYTE1(mem) // [54] *memHi = mulFACbyMEM::prepareMEM1_$1 -- _deref_pbuc1=vbuaa @@ -2324,6 +2326,7 @@ mulFACbyMEM: { // FAC = MEM/FAC // Set FAC to MEM (float saved in memory) divided by FAC (float accumulator) // Reads 5 chars from memory +// void divMEMbyFAC(char *mem) divMEMbyFAC: { .const prepareMEM1_mem = main.f_i // divMEMbyFAC::prepareMEM1 @@ -2363,6 +2366,7 @@ sinFAC: { // FAC = MEM+FAC // Set FAC to MEM (float saved in memory) plus FAC (float accumulator) // Reads 5 chars from memory +// void addMEMtoFAC(char *mem) addMEMtoFAC: { .const prepareMEM1_mem = main.f_127 // addMEMtoFAC::prepareMEM1 @@ -2409,13 +2413,13 @@ getFAC: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(7) w) +// void print_uint(__zp(7) unsigned int w) print_uint: { .label w = 7 // print_uchar(BYTE1(w)) // [72] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [73] call print_uchar + // [73] call print_uchar // [82] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [82] phi print_char_cursor#33 = print_char_cursor#34 [phi:print_uint->print_uchar#0] -- register_copy // [82] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -2424,7 +2428,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [74] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [75] call print_uchar + // [75] call print_uchar // [82] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [82] phi print_char_cursor#33 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy // [82] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -2467,7 +2471,7 @@ print_ln: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [83] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2480,7 +2484,7 @@ print_uchar: { // [84] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [85] call print_char + // [85] call print_char // Table of hexadecimal digits // [90] phi from print_uchar to print_char [phi:print_uchar->print_char] // [90] phi print_char_cursor#24 = print_char_cursor#33 [phi:print_uchar->print_char#0] -- register_copy @@ -2494,7 +2498,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [87] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [88] call print_char + // [88] call print_char // [90] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [90] phi print_char_cursor#24 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy // [90] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2506,7 +2510,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [91] *print_char_cursor#24 = print_char::ch#2 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/sinus-basic.sym b/src/test/ref/sinus-basic.sym index a1476c595..91f9a1e4a 100644 --- a/src/test/ref/sinus-basic.sym +++ b/src/test/ref/sinus-basic.sym @@ -1,78 +1,78 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -void addMEMtoFAC(byte* addMEMtoFAC::mem) -byte* addMEMtoFAC::mem -word addMEMtoFAC::prepareMEM1_mem -constant word addMEMtoFAC::prepareMEM1_mem#0 prepareMEM1_mem = (word)main::f_127 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +void addMEMtoFAC(char *mem) +char *addMEMtoFAC::mem +unsigned int addMEMtoFAC::prepareMEM1_mem +__constant unsigned int addMEMtoFAC::prepareMEM1_mem#0 = (unsigned int)main::f_127 // prepareMEM1_mem void divFACby10() -void divMEMbyFAC(byte* divMEMbyFAC::mem) -byte* divMEMbyFAC::mem -word divMEMbyFAC::prepareMEM1_mem -constant word divMEMbyFAC::prepareMEM1_mem#0 prepareMEM1_mem = (word)main::f_i -word getFAC() -word getFAC::return -word getFAC::return#0 return zp[2]:7 37.33333333333333 -word getFAC::return#2 return zp[2]:7 22.0 -word getFAC::w +void divMEMbyFAC(char *mem) +char *divMEMbyFAC::mem +unsigned int divMEMbyFAC::prepareMEM1_mem +__constant unsigned int divMEMbyFAC::prepareMEM1_mem#0 = (unsigned int)main::f_i // prepareMEM1_mem +unsigned int getFAC() +unsigned int getFAC::return +unsigned int getFAC::return#0 // return zp[2]:7 37.33333333333333 +unsigned int getFAC::return#2 // return zp[2]:7 22.0 +unsigned int getFAC::w void main() -constant byte* main::f_127[] = { 0, 0, 0, 0, 0 } -constant byte* const main::f_2pi = (byte*) 58085 -constant byte* main::f_i[] = { 0, 0, 0, 0, 0 } -byte main::i -byte main::i#1 i zp[1]:2 11.0 -byte main::i#10 i zp[1]:2 0.9166666666666666 -constant byte* const memHi = (byte*) 255 -constant byte* const memLo = (byte*) 254 -void mulFACbyMEM(byte* mulFACbyMEM::mem) -byte* mulFACbyMEM::mem -byte* mulFACbyMEM::mem#2 mem zp[2]:7 -byte~ mulFACbyMEM::prepareMEM1_$0 reg byte a 202.0 -byte~ mulFACbyMEM::prepareMEM1_$1 reg byte a 202.0 -word mulFACbyMEM::prepareMEM1_mem -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2002.0 -byte print_char::ch#1 reg byte a 2002.0 -byte print_char::ch#2 reg byte a 12003.0 -byte* print_char_cursor -byte* print_char_cursor#24 print_char_cursor zp[2]:5 11002.0 -byte* print_char_cursor#25 print_char_cursor zp[2]:5 1241.4117647058824 -byte* print_char_cursor#33 print_char_cursor zp[2]:5 401.0 -byte* print_char_cursor#34 print_char_cursor zp[2]:5 5.090909090909091 -byte* print_char_cursor#53 print_char_cursor zp[2]:5 22.0 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:3 4289.285714285714 -byte* print_line_cursor#15 print_line_cursor zp[2]:3 4.666666666666666 -byte* print_line_cursor#7 print_line_cursor zp[2]:3 20103.0 +__constant char main::f_127[] = { 0, 0, 0, 0, 0 } +__constant char * const main::f_2pi = (char *) 58085 +__constant char main::f_i[] = { 0, 0, 0, 0, 0 } +char main::i +char main::i#1 // i zp[1]:2 11.0 +char main::i#10 // i zp[1]:2 0.9166666666666666 +__constant char * const memHi = (char *) 255 +__constant char * const memLo = (char *) 254 +void mulFACbyMEM(char *mem) +char *mulFACbyMEM::mem +char *mulFACbyMEM::mem#2 // mem zp[2]:7 +char mulFACbyMEM::prepareMEM1_$0 // reg byte a 202.0 +char mulFACbyMEM::prepareMEM1_$1 // reg byte a 202.0 +unsigned int mulFACbyMEM::prepareMEM1_mem +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2002.0 +char print_char::ch#1 // reg byte a 2002.0 +char print_char::ch#2 // reg byte a 12003.0 +char *print_char_cursor +char *print_char_cursor#24 // print_char_cursor zp[2]:5 11002.0 +char *print_char_cursor#25 // print_char_cursor zp[2]:5 1241.4117647058824 +char *print_char_cursor#33 // print_char_cursor zp[2]:5 401.0 +char *print_char_cursor#34 // print_char_cursor zp[2]:5 5.090909090909091 +char *print_char_cursor#53 // print_char_cursor zp[2]:5 22.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:3 4289.285714285714 +char *print_line_cursor#15 // print_line_cursor zp[2]:3 4.666666666666666 +char *print_line_cursor#7 // print_line_cursor zp[2]:3 20103.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2002.0 -byte~ print_uchar::$2 reg byte x 2002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 202.0 -byte print_uchar::b#1 reg byte x 202.0 -byte print_uchar::b#2 reg byte x 551.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:7 71.0 -void setFAC(word setFAC::w) -byte~ setFAC::prepareMEM1_$0 reg byte a 202.0 -byte~ setFAC::prepareMEM1_$1 reg byte a 202.0 -word setFAC::prepareMEM1_mem -word setFAC::prepareMEM1_mem#0 prepareMEM1_mem zp[2]:7 71.0 -word setFAC::w -word setFAC::w#1 w zp[2]:7 22.0 -void setMEMtoFAC(byte* setMEMtoFAC::mem) -byte* setMEMtoFAC::mem -byte* setMEMtoFAC::mem#2 mem zp[2]:7 -byte~ setMEMtoFAC::prepareMEM1_$0 reg byte a 202.0 -byte~ setMEMtoFAC::prepareMEM1_$1 reg byte a 202.0 -word setMEMtoFAC::prepareMEM1_mem +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2002.0 +char print_uchar::$2 // reg byte x 2002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 202.0 +char print_uchar::b#1 // reg byte x 202.0 +char print_uchar::b#2 // reg byte x 551.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:7 71.0 +void setFAC(unsigned int w) +char setFAC::prepareMEM1_$0 // reg byte a 202.0 +char setFAC::prepareMEM1_$1 // reg byte a 202.0 +unsigned int setFAC::prepareMEM1_mem +unsigned int setFAC::prepareMEM1_mem#0 // prepareMEM1_mem zp[2]:7 71.0 +unsigned int setFAC::w +unsigned int setFAC::w#1 // w zp[2]:7 22.0 +void setMEMtoFAC(char *mem) +char *setMEMtoFAC::mem +char *setMEMtoFAC::mem#2 // mem zp[2]:7 +char setMEMtoFAC::prepareMEM1_$0 // reg byte a 202.0 +char setMEMtoFAC::prepareMEM1_$1 // reg byte a 202.0 +unsigned int setMEMtoFAC::prepareMEM1_mem void sinFAC() zp[1]:2 [ main::i#10 main::i#1 ] diff --git a/src/test/ref/sinusgen16.asm b/src/test/ref/sinusgen16.asm index 96b814b60..be631dcdc 100644 --- a/src/test/ref/sinusgen16.asm +++ b/src/test/ref/sinusgen16.asm @@ -20,7 +20,7 @@ .const PI_u4f28 = $3243f6a9 // PI/2 in u[4.28] format .const PI_HALF_u4f28 = $1921fb54 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .label print_screen = $400 .label print_char_cursor = $22 // Remainder after unsigned 16-bit division @@ -45,11 +45,11 @@ main: { __b1: // for(signed word* st1 = sintab1; st1sintab1+wavelength*SIZEOF_SIGNED_WORD + cmp #>sintab1+wavelength*SIZEOF_INT bcc __b2 bne !+ lda.z st1 - cmp #>4 txa @@ -686,7 +688,7 @@ print_uchar: { rts } // Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// mul16u(word zp($24) a, word zp($14) b) +// __zp($1e) unsigned long mul16u(__zp($24) unsigned int a, __zp($14) unsigned int b) mul16u: { .label a = $24 .label b = $14 diff --git a/src/test/ref/sinusgen16.cfg b/src/test/ref/sinusgen16.cfg index 615321ff4..6470c8718 100644 --- a/src/test/ref/sinusgen16.cfg +++ b/src/test/ref/sinusgen16.cfg @@ -2,16 +2,16 @@ void main() main: scope:[main] from [0] phi() - [1] call sin16s_gen + [1] call sin16s_gen to:main::@5 main::@5: scope:[main] from main [2] phi() - [3] call print_cls + [3] call print_cls to:main::@1 main::@1: scope:[main] from main::@5 main::@7 [4] print_char_cursor#20 = phi( main::@5/print_screen#0, main::@7/print_char_cursor#1 ) [4] main::st1#2 = phi( main::@5/main::sintab1, main::@7/main::st1#1 ) - [5] if(main::st1#2> 4 [146] print_char::ch#3 = print_hextab[print_uchar::$0] - [147] call print_char + [147] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [148] print_uchar::$2 = print_uchar::b#2 & $f [149] print_char::ch#4 = print_hextab[print_uchar::$2] - [150] call print_char + [150] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [151] return to:@return -dword mul16u(word mul16u::a , word mul16u::b) +unsigned long mul16u(unsigned int a , unsigned int b) mul16u: scope:[mul16u] from mulu16_sel - [152] mul16u::mb#0 = (dword)mul16u::b#0 + [152] mul16u::mb#0 = (unsigned long)mul16u::b#0 to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@3 [153] mul16u::mb#2 = phi( mul16u/mul16u::mb#0, mul16u::@3/mul16u::mb#1 ) diff --git a/src/test/ref/sinusgen16.log b/src/test/ref/sinusgen16.log index 657cf5a02..1f07143c0 100644 --- a/src/test/ref/sinusgen16.log +++ b/src/test/ref/sinusgen16.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement sin16s_gen::$0 Eliminating unused variable with no statement sin16s::$5 Eliminating unused variable with no statement sin16s::$6 @@ -15,14 +15,14 @@ Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void sin16s_gen(signed word* sin16s_gen::sintab , word sin16s_gen::wavelength) +void sin16s_gen(int *sintab , unsigned int wavelength) sin16s_gen: scope:[sin16s_gen] from main sin16s_gen::sintab#6 = phi( main/sin16s_gen::sintab#1 ) rem16u#22 = phi( main/rem16u#25 ) sin16s_gen::wavelength#1 = phi( main/sin16s_gen::wavelength#0 ) div32u16u::dividend#0 = PI2_u4f28 div32u16u::divisor#0 = sin16s_gen::wavelength#1 - call div32u16u + call div32u16u div32u16u::return#0 = div32u16u::return#2 to:sin16s_gen::@3 sin16s_gen::@3: scope:[sin16s_gen] from sin16s_gen @@ -53,7 +53,7 @@ sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@1 sin16s_gen::sintab#3 = phi( sin16s_gen::@1/sin16s_gen::sintab#4 ) sin16s_gen::x#2 = phi( sin16s_gen::@1/sin16s_gen::x#4 ) sin16s::x#0 = sin16s_gen::x#2 - call sin16s + call sin16s sin16s::return#0 = sin16s::return#2 to:sin16s_gen::@4 sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@2 @@ -66,7 +66,7 @@ sin16s_gen::@4: scope:[sin16s_gen] from sin16s_gen::@2 sin16s::return#3 = phi( sin16s_gen::@2/sin16s::return#0 ) sin16s_gen::$2 = sin16s::return#3 *sin16s_gen::sintab#2 = sin16s_gen::$2 - sin16s_gen::sintab#0 = sin16s_gen::sintab#2 + SIZEOF_SIGNED_WORD + sin16s_gen::sintab#0 = sin16s_gen::sintab#2 + SIZEOF_INT sin16s_gen::$3 = sin16s_gen::x#3 + sin16s_gen::step#1 sin16s_gen::x#1 = sin16s_gen::$3 sin16s_gen::i#1 = ++ sin16s_gen::i#3 @@ -77,7 +77,7 @@ sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@1 return to:@return -signed word sin16s(dword sin16s::x) +int sin16s(unsigned long x) sin16s: scope:[sin16s] from sin16s_gen::@2 sin16s::x#3 = phi( sin16s_gen::@2/sin16s::x#0 ) sin16s::isUpper#0 = 0 @@ -106,7 +106,7 @@ sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5 mulu16_sel::v1#0 = sin16s::x1#0 mulu16_sel::v2#0 = sin16s::x1#0 mulu16_sel::select#0 = 0 - call mulu16_sel + call mulu16_sel mulu16_sel::return#0 = mulu16_sel::return#6 to:sin16s::@7 sin16s::@7: scope:[sin16s] from sin16s::@2 @@ -117,7 +117,7 @@ sin16s::@7: scope:[sin16s] from sin16s::@2 mulu16_sel::v1#1 = sin16s::x2#0 mulu16_sel::v2#1 = sin16s::x1#1 mulu16_sel::select#1 = 1 - call mulu16_sel + call mulu16_sel mulu16_sel::return#1 = mulu16_sel::return#6 to:sin16s::@8 sin16s::@8: scope:[sin16s] from sin16s::@7 @@ -128,7 +128,7 @@ sin16s::@8: scope:[sin16s] from sin16s::@7 mulu16_sel::v1#2 = sin16s::x3#0 mulu16_sel::v2#2 = $10000/6 mulu16_sel::select#2 = 1 - call mulu16_sel + call mulu16_sel mulu16_sel::return#2 = mulu16_sel::return#6 to:sin16s::@9 sin16s::@9: scope:[sin16s] from sin16s::@8 @@ -141,7 +141,7 @@ sin16s::@9: scope:[sin16s] from sin16s::@8 mulu16_sel::v1#3 = sin16s::x3#1 mulu16_sel::v2#3 = sin16s::x1#2 mulu16_sel::select#3 = 0 - call mulu16_sel + call mulu16_sel mulu16_sel::return#3 = mulu16_sel::return#6 to:sin16s::@10 sin16s::@10: scope:[sin16s] from sin16s::@9 @@ -153,7 +153,7 @@ sin16s::@10: scope:[sin16s] from sin16s::@9 mulu16_sel::v1#4 = sin16s::x4#0 mulu16_sel::v2#4 = sin16s::x1#3 mulu16_sel::select#4 = 0 - call mulu16_sel + call mulu16_sel mulu16_sel::return#4 = mulu16_sel::return#6 to:sin16s::@11 sin16s::@11: scope:[sin16s] from sin16s::@10 @@ -164,7 +164,7 @@ sin16s::@11: scope:[sin16s] from sin16s::@10 sin16s::x5_128#0 = sin16s::x5#0 >> 4 sin16s::$13 = sin16s::usinx#2 + sin16s::x5_128#0 sin16s::usinx#1 = sin16s::$13 - sin16s::sinx#0 = (signed word)sin16s::usinx#1 + sin16s::sinx#0 = (int)sin16s::usinx#1 sin16s::$14 = sin16s::isUpper#2 != 0 sin16s::$15 = ! sin16s::$14 if(sin16s::$15) goto sin16s::@3 @@ -181,7 +181,7 @@ sin16s::@3: scope:[sin16s] from sin16s::@11 sin16s::@6 to:sin16s::@return sin16s::@6: scope:[sin16s] from sin16s::@11 sin16s::usinx#3 = phi( sin16s::@11/sin16s::usinx#1 ) - sin16s::$18 = - (signed word)sin16s::usinx#3 + sin16s::$18 = - (int)sin16s::usinx#3 sin16s::sinx#1 = sin16s::$18 to:sin16s::@3 sin16s::@return: scope:[sin16s] from sin16s::@3 @@ -190,14 +190,14 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 return to:@return -word mulu16_sel(word mulu16_sel::v1 , word mulu16_sel::v2 , byte mulu16_sel::select) +unsigned int mulu16_sel(unsigned int v1 , unsigned int v2 , char select) mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@8 sin16s::@9 mulu16_sel::select#6 = phi( sin16s::@10/mulu16_sel::select#4, sin16s::@2/mulu16_sel::select#0, sin16s::@7/mulu16_sel::select#1, sin16s::@8/mulu16_sel::select#2, sin16s::@9/mulu16_sel::select#3 ) mulu16_sel::v2#5 = phi( sin16s::@10/mulu16_sel::v2#4, sin16s::@2/mulu16_sel::v2#0, sin16s::@7/mulu16_sel::v2#1, sin16s::@8/mulu16_sel::v2#2, sin16s::@9/mulu16_sel::v2#3 ) mulu16_sel::v1#5 = phi( sin16s::@10/mulu16_sel::v1#4, sin16s::@2/mulu16_sel::v1#0, sin16s::@7/mulu16_sel::v1#1, sin16s::@8/mulu16_sel::v1#2, sin16s::@9/mulu16_sel::v1#3 ) mul16u::a#0 = mulu16_sel::v1#5 mul16u::b#0 = mulu16_sel::v2#5 - call mul16u + call mul16u mul16u::return#0 = mul16u::return#2 to:mulu16_sel::@1 mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel @@ -214,7 +214,7 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1 return to:@return -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) divr16u: scope:[divr16u] from div32u16u div32u16u::@1 divr16u::divisor#6 = phi( div32u16u/divr16u::divisor#0, div32u16u::@1/divr16u::divisor#1 ) divr16u::dividend#5 = phi( div32u16u/divr16u::dividend#1, div32u16u::@1/divr16u::dividend#2 ) @@ -293,7 +293,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 return to:@return -dword div32u16u(dword div32u16u::dividend , word div32u16u::divisor) +unsigned long div32u16u(unsigned long dividend , unsigned int divisor) div32u16u: scope:[div32u16u] from sin16s_gen rem16u#24 = phi( sin16s_gen/rem16u#22 ) div32u16u::divisor#1 = phi( sin16s_gen/div32u16u::divisor#0 ) @@ -302,7 +302,7 @@ div32u16u: scope:[div32u16u] from sin16s_gen divr16u::dividend#1 = div32u16u::$0 divr16u::divisor#0 = div32u16u::divisor#1 divr16u::rem#3 = 0 - call divr16u + call divr16u divr16u::return#2 = divr16u::return#1 to:div32u16u::@1 div32u16u::@1: scope:[div32u16u] from div32u16u @@ -316,7 +316,7 @@ div32u16u::@1: scope:[div32u16u] from div32u16u divr16u::dividend#2 = div32u16u::$2 divr16u::divisor#1 = div32u16u::divisor#2 divr16u::rem#4 = rem16u#4 - call divr16u + call divr16u divr16u::return#3 = divr16u::return#1 to:div32u16u::@2 div32u16u::@2: scope:[div32u16u] from div32u16u::@1 @@ -336,12 +336,12 @@ div32u16u::@return: scope:[div32u16u] from div32u16u::@2 return to:@return -dword mul16u(word mul16u::a , word mul16u::b) +unsigned long mul16u(unsigned int a , unsigned int b) mul16u: scope:[mul16u] from mulu16_sel mul16u::a#5 = phi( mulu16_sel/mul16u::a#0 ) mul16u::b#1 = phi( mulu16_sel/mul16u::b#0 ) mul16u::res#0 = 0 - mul16u::mb#0 = (dword)mul16u::b#1 + mul16u::mb#0 = (unsigned long)mul16u::b#1 to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@4 mul16u::mb#5 = phi( mul16u/mul16u::mb#0, mul16u::@4/mul16u::mb#1 ) @@ -385,7 +385,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@4 main::@7 print_char_cursor#58 = phi( main::@4/print_char_cursor#55, main::@7/print_char_cursor#17 ) print_str::str#6 = phi( main::@4/print_str::str#2, main::@7/print_str::str#1 ) @@ -400,7 +400,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#46 = phi( print_str::@1/print_char_cursor#47 ) print_str::str#4 = phi( print_str::@1/print_str::str#3 ) print_char::ch#0 = *print_str::str#4 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#5 = phi( print_str::@2/print_str::str#4 ) @@ -414,7 +414,7 @@ print_str::@return: scope:[print_str] from print_str::@1 return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@3 print_char_cursor#59 = phi( main::@3/print_char_cursor#54 ) print_sint::w#2 = phi( main::@3/print_sint::w#1 ) @@ -425,7 +425,7 @@ print_sint::@1: scope:[print_sint] from print_sint print_sint::w#5 = phi( print_sint/print_sint::w#2 ) print_char_cursor#48 = phi( print_sint/print_char_cursor#59 ) print_char::ch#1 = '-' - call print_char + call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 print_sint::w#3 = phi( print_sint::@1/print_sint::w#5 ) @@ -438,7 +438,7 @@ print_sint::@3: scope:[print_sint] from print_sint print_sint::w#7 = phi( print_sint/print_sint::w#2 ) print_char_cursor#49 = phi( print_sint/print_char_cursor#59 ) print_char::ch#2 = ' ' - call print_char + call print_char to:print_sint::@5 print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::w#6 = phi( print_sint::@3/print_sint::w#7 ) @@ -448,8 +448,8 @@ print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::@2: scope:[print_sint] from print_sint::@4 print_sint::@5 print_char_cursor#50 = phi( print_sint::@4/print_char_cursor#2, print_sint::@5/print_char_cursor#3 ) print_sint::w#4 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#6 ) - print_uint::w#0 = (word)print_sint::w#4 - call print_uint + print_uint::w#0 = (unsigned int)print_sint::w#4 + call print_uint to:print_sint::@6 print_sint::@6: scope:[print_sint] from print_sint::@2 print_char_cursor#28 = phi( print_sint::@2/print_char_cursor#8 ) @@ -461,13 +461,13 @@ print_sint::@return: scope:[print_sint] from print_sint::@6 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_char_cursor#51 = phi( print_sint::@2/print_char_cursor#50 ) print_uint::w#1 = phi( print_sint::@2/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -475,7 +475,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#6 = print_char_cursor#30 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#31 = phi( print_uint::@1/print_char_cursor#11 ) @@ -487,13 +487,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#52 = phi( print_uint/print_char_cursor#51, print_uint::@1/print_char_cursor#6 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#3 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -501,7 +501,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#9 = print_char_cursor#33 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#4 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#34 = phi( print_uchar::@1/print_char_cursor#13 ) @@ -513,7 +513,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1 print_char_cursor#36 = phi( print_sint::@1/print_char_cursor#48, print_sint::@3/print_char_cursor#49, print_str::@2/print_char_cursor#46, print_uchar/print_char_cursor#52, print_uchar::@1/print_char_cursor#9 ) print_char::ch#5 = phi( print_sint::@1/print_char::ch#1, print_sint::@3/print_char::ch#2, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) @@ -529,10 +529,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main::@5 print_screen#2 = phi( main::@5/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -548,7 +548,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -565,9 +565,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -599,7 +599,7 @@ main: scope:[main] from __start::@1 rem16u#25 = phi( __start::@1/rem16u#27 ) sin16s_gen::sintab#1 = main::sintab1 sin16s_gen::wavelength#0 = main::wavelength - call sin16s_gen + call sin16s_gen to:main::@5 main::@5: scope:[main] from main print_char_cursor#53 = phi( main/print_char_cursor#60 ) @@ -607,7 +607,7 @@ main::@5: scope:[main] from main print_screen#5 = phi( main/print_screen#7 ) rem16u#18 = phi( main/rem16u#1 ) rem16u#7 = rem16u#18 - call print_cls + call print_cls to:main::@6 main::@6: scope:[main] from main::@5 rem16u#29 = phi( main::@5/rem16u#7 ) @@ -622,7 +622,7 @@ main::@1: scope:[main] from main::@6 main::@8 print_line_cursor#13 = phi( main::@6/print_line_cursor#2, main::@8/print_line_cursor#16 ) rem16u#26 = phi( main::@6/rem16u#29, main::@8/rem16u#30 ) main::st1#2 = phi( main::@6/main::st1#0, main::@8/main::st1#1 ) - main::$9 = main::wavelength * SIZEOF_SIGNED_WORD + main::$9 = main::wavelength * SIZEOF_INT main::$2 = main::sintab1 + main::$9 main::$3 = main::st1#2 < main::$2 if(main::$3) goto main::@2 @@ -644,7 +644,7 @@ main::@3: scope:[main] from main::@2 main::@9 print_char_cursor#54 = phi( main::@2/print_char_cursor#61, main::@9/print_char_cursor#19 ) main::sw#1 = phi( main::@2/main::sw#0, main::@9/main::sw#2 ) print_sint::w#1 = main::sw#1 - call print_sint + call print_sint to:main::@7 main::@7: scope:[main] from main::@3 print_line_cursor#17 = phi( main::@3/print_line_cursor#18 ) @@ -653,7 +653,7 @@ main::@7: scope:[main] from main::@3 print_char_cursor#40 = phi( main::@3/print_char_cursor#5 ) print_char_cursor#17 = print_char_cursor#40 print_str::str#1 = main::str - call print_str + call print_str to:main::@8 main::@8: scope:[main] from main::@7 print_line_cursor#16 = phi( main::@7/print_line_cursor#17 ) @@ -661,7 +661,7 @@ main::@8: scope:[main] from main::@7 main::st1#4 = phi( main::@7/main::st1#5 ) print_char_cursor#41 = phi( main::@7/print_char_cursor#1 ) print_char_cursor#18 = print_char_cursor#41 - main::st1#1 = main::st1#4 + SIZEOF_SIGNED_WORD + main::st1#1 = main::st1#4 + SIZEOF_INT to:main::@1 main::@4: scope:[main] from main::@2 print_line_cursor#21 = phi( main::@2/print_line_cursor#19 ) @@ -670,7 +670,7 @@ main::@4: scope:[main] from main::@2 main::sw#3 = phi( main::@2/main::sw#0 ) print_char_cursor#55 = phi( main::@2/print_char_cursor#61 ) print_str::str#2 = main::str1 - call print_str + call print_str to:main::@9 main::@9: scope:[main] from main::@4 print_line_cursor#20 = phi( main::@4/print_line_cursor#21 ) @@ -695,7 +695,7 @@ __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start rem16u#9 = 0 - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#4 = print_screen#0 print_char_cursor#21 = print_line_cursor#4 to:__start::@1 @@ -704,7 +704,7 @@ __start::@1: scope:[__start] from __start::__init1 print_char_cursor#57 = phi( __start::__init1/print_char_cursor#21 ) print_line_cursor#14 = phi( __start::__init1/print_line_cursor#4 ) rem16u#27 = phi( __start::__init1/rem16u#9 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#8 ) @@ -728,535 +728,535 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const dword PI2_u4f28 = $6487ed51 -constant const dword PI_HALF_u4f28 = $1921fb54 -constant const dword PI_u4f28 = $3243f6a9 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_SIGNED_WORD = 2 +__constant const unsigned long PI2_u4f28 = $6487ed51 +__constant const unsigned long PI_HALF_u4f28 = $1921fb54 +__constant const unsigned long PI_u4f28 = $3243f6a9 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_INT = 2 void __start() -dword div32u16u(dword div32u16u::dividend , word div32u16u::divisor) -word~ div32u16u::$0 -word~ div32u16u::$2 -dword div32u16u::dividend -dword div32u16u::dividend#0 -dword div32u16u::dividend#1 -dword div32u16u::dividend#2 -word div32u16u::divisor -word div32u16u::divisor#0 -word div32u16u::divisor#1 -word div32u16u::divisor#2 -dword div32u16u::quotient -dword div32u16u::quotient#0 -word div32u16u::quotient_hi -word div32u16u::quotient_hi#0 -word div32u16u::quotient_hi#1 -word div32u16u::quotient_lo -word div32u16u::quotient_lo#0 -dword div32u16u::return -dword div32u16u::return#0 -dword div32u16u::return#1 -dword div32u16u::return#2 -dword div32u16u::return#3 -dword div32u16u::return#4 -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -word~ divr16u::$0 -byte~ divr16u::$1 -word~ divr16u::$10 -bool~ divr16u::$11 -number~ divr16u::$2 -bool~ divr16u::$3 -bool~ divr16u::$4 -number~ divr16u::$5 -word~ divr16u::$6 -word~ divr16u::$7 -bool~ divr16u::$8 -bool~ divr16u::$9 -word divr16u::dividend -word divr16u::dividend#0 -word divr16u::dividend#1 -word divr16u::dividend#2 -word divr16u::dividend#3 -word divr16u::dividend#4 -word divr16u::dividend#5 -word divr16u::dividend#6 -word divr16u::dividend#7 -word divr16u::dividend#8 -word divr16u::divisor -word divr16u::divisor#0 -word divr16u::divisor#1 -word divr16u::divisor#2 -word divr16u::divisor#3 -word divr16u::divisor#4 -word divr16u::divisor#5 -word divr16u::divisor#6 -word divr16u::divisor#7 -byte divr16u::i -byte divr16u::i#0 -byte divr16u::i#1 -byte divr16u::i#2 -byte divr16u::i#3 -byte divr16u::i#4 -byte divr16u::i#5 -byte divr16u::i#6 -word divr16u::quotient -word divr16u::quotient#0 -word divr16u::quotient#1 -word divr16u::quotient#2 -word divr16u::quotient#3 -word divr16u::quotient#4 -word divr16u::quotient#5 -word divr16u::quotient#6 -word divr16u::quotient#7 -word divr16u::quotient#8 -word divr16u::rem -word divr16u::rem#0 -word divr16u::rem#1 -word divr16u::rem#10 -word divr16u::rem#11 -word divr16u::rem#2 -word divr16u::rem#3 -word divr16u::rem#4 -word divr16u::rem#5 -word divr16u::rem#6 -word divr16u::rem#7 -word divr16u::rem#8 -word divr16u::rem#9 -word divr16u::return -word divr16u::return#0 -word divr16u::return#1 -word divr16u::return#2 -word divr16u::return#3 -word divr16u::return#4 -word divr16u::return#5 -word divr16u::return#6 +unsigned long div32u16u(unsigned long dividend , unsigned int divisor) +unsigned int div32u16u::$0 +unsigned int div32u16u::$2 +unsigned long div32u16u::dividend +unsigned long div32u16u::dividend#0 +unsigned long div32u16u::dividend#1 +unsigned long div32u16u::dividend#2 +unsigned int div32u16u::divisor +unsigned int div32u16u::divisor#0 +unsigned int div32u16u::divisor#1 +unsigned int div32u16u::divisor#2 +unsigned long div32u16u::quotient +unsigned long div32u16u::quotient#0 +unsigned int div32u16u::quotient_hi +unsigned int div32u16u::quotient_hi#0 +unsigned int div32u16u::quotient_hi#1 +unsigned int div32u16u::quotient_lo +unsigned int div32u16u::quotient_lo#0 +unsigned long div32u16u::return +unsigned long div32u16u::return#0 +unsigned long div32u16u::return#1 +unsigned long div32u16u::return#2 +unsigned long div32u16u::return#3 +unsigned long div32u16u::return#4 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +unsigned int divr16u::$0 +char divr16u::$1 +unsigned int divr16u::$10 +bool divr16u::$11 +number divr16u::$2 +bool divr16u::$3 +bool divr16u::$4 +number divr16u::$5 +unsigned int divr16u::$6 +unsigned int divr16u::$7 +bool divr16u::$8 +bool divr16u::$9 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 +unsigned int divr16u::dividend#1 +unsigned int divr16u::dividend#2 +unsigned int divr16u::dividend#3 +unsigned int divr16u::dividend#4 +unsigned int divr16u::dividend#5 +unsigned int divr16u::dividend#6 +unsigned int divr16u::dividend#7 +unsigned int divr16u::dividend#8 +unsigned int divr16u::divisor +unsigned int divr16u::divisor#0 +unsigned int divr16u::divisor#1 +unsigned int divr16u::divisor#2 +unsigned int divr16u::divisor#3 +unsigned int divr16u::divisor#4 +unsigned int divr16u::divisor#5 +unsigned int divr16u::divisor#6 +unsigned int divr16u::divisor#7 +char divr16u::i +char divr16u::i#0 +char divr16u::i#1 +char divr16u::i#2 +char divr16u::i#3 +char divr16u::i#4 +char divr16u::i#5 +char divr16u::i#6 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#0 +unsigned int divr16u::quotient#1 +unsigned int divr16u::quotient#2 +unsigned int divr16u::quotient#3 +unsigned int divr16u::quotient#4 +unsigned int divr16u::quotient#5 +unsigned int divr16u::quotient#6 +unsigned int divr16u::quotient#7 +unsigned int divr16u::quotient#8 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 +unsigned int divr16u::rem#1 +unsigned int divr16u::rem#10 +unsigned int divr16u::rem#11 +unsigned int divr16u::rem#2 +unsigned int divr16u::rem#3 +unsigned int divr16u::rem#4 +unsigned int divr16u::rem#5 +unsigned int divr16u::rem#6 +unsigned int divr16u::rem#7 +unsigned int divr16u::rem#8 +unsigned int divr16u::rem#9 +unsigned int divr16u::return +unsigned int divr16u::return#0 +unsigned int divr16u::return#1 +unsigned int divr16u::return#2 +unsigned int divr16u::return#3 +unsigned int divr16u::return#4 +unsigned int divr16u::return#5 +unsigned int divr16u::return#6 void main() -signed word*~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -word~ main::$9 -constant signed word* main::sintab1[$78] = { fill( $78, 0) } -signed word* main::st1 -signed word* main::st1#0 -signed word* main::st1#1 -signed word* main::st1#2 -signed word* main::st1#3 -signed word* main::st1#4 -signed word* main::st1#5 -signed word* main::st1#6 -signed word* main::st1#7 -signed word* main::st1#8 -constant byte* main::str[4] = " " -constant byte* main::str1[2] = " " -signed word main::sw -signed word main::sw#0 -signed word main::sw#1 -signed word main::sw#2 -signed word main::sw#3 -constant word main::wavelength = $78 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -dword mul16u(word mul16u::a , word mul16u::b) -bool~ mul16u::$0 -number~ mul16u::$1 -bool~ mul16u::$2 -bool~ mul16u::$3 -dword~ mul16u::$4 -word~ mul16u::$5 -dword~ mul16u::$6 -word mul16u::a -word mul16u::a#0 -word mul16u::a#1 -word mul16u::a#2 -word mul16u::a#3 -word mul16u::a#4 -word mul16u::a#5 -word mul16u::a#6 -word mul16u::b -word mul16u::b#0 -word mul16u::b#1 -dword mul16u::mb -dword mul16u::mb#0 -dword mul16u::mb#1 -dword mul16u::mb#2 -dword mul16u::mb#3 -dword mul16u::mb#4 -dword mul16u::mb#5 -dword mul16u::res -dword mul16u::res#0 -dword mul16u::res#1 -dword mul16u::res#2 -dword mul16u::res#3 -dword mul16u::res#4 -dword mul16u::res#5 -dword mul16u::res#6 -dword mul16u::return -dword mul16u::return#0 -dword mul16u::return#1 -dword mul16u::return#2 -dword mul16u::return#3 -dword mul16u::return#4 -word mulu16_sel(word mulu16_sel::v1 , word mulu16_sel::v2 , byte mulu16_sel::select) -dword~ mulu16_sel::$0 -dword~ mulu16_sel::$1 -word~ mulu16_sel::$2 -word mulu16_sel::return -word mulu16_sel::return#0 -word mulu16_sel::return#1 -word mulu16_sel::return#10 -word mulu16_sel::return#11 -word mulu16_sel::return#12 -word mulu16_sel::return#2 -word mulu16_sel::return#3 -word mulu16_sel::return#4 -word mulu16_sel::return#5 -word mulu16_sel::return#6 -word mulu16_sel::return#7 -word mulu16_sel::return#8 -word mulu16_sel::return#9 -byte mulu16_sel::select -byte mulu16_sel::select#0 -byte mulu16_sel::select#1 -byte mulu16_sel::select#2 -byte mulu16_sel::select#3 -byte mulu16_sel::select#4 -byte mulu16_sel::select#5 -byte mulu16_sel::select#6 -word mulu16_sel::v1 -word mulu16_sel::v1#0 -word mulu16_sel::v1#1 -word mulu16_sel::v1#2 -word mulu16_sel::v1#3 -word mulu16_sel::v1#4 -word mulu16_sel::v1#5 -word mulu16_sel::v2 -word mulu16_sel::v2#0 -word mulu16_sel::v2#1 -word mulu16_sel::v2#2 -word mulu16_sel::v2#3 -word mulu16_sel::v2#4 -word mulu16_sel::v2#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +int *main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +unsigned int main::$9 +__constant int main::sintab1[$78] = { fill( $78, 0) } +int *main::st1 +int *main::st1#0 +int *main::st1#1 +int *main::st1#2 +int *main::st1#3 +int *main::st1#4 +int *main::st1#5 +int *main::st1#6 +int *main::st1#7 +int *main::st1#8 +__constant char main::str[4] = " " +__constant char main::str1[2] = " " +int main::sw +int main::sw#0 +int main::sw#1 +int main::sw#2 +int main::sw#3 +__constant unsigned int main::wavelength = $78 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +unsigned long mul16u(unsigned int a , unsigned int b) +bool mul16u::$0 +number mul16u::$1 +bool mul16u::$2 +bool mul16u::$3 +unsigned long mul16u::$4 +unsigned int mul16u::$5 +unsigned long mul16u::$6 +unsigned int mul16u::a +unsigned int mul16u::a#0 +unsigned int mul16u::a#1 +unsigned int mul16u::a#2 +unsigned int mul16u::a#3 +unsigned int mul16u::a#4 +unsigned int mul16u::a#5 +unsigned int mul16u::a#6 +unsigned int mul16u::b +unsigned int mul16u::b#0 +unsigned int mul16u::b#1 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 +unsigned long mul16u::mb#1 +unsigned long mul16u::mb#2 +unsigned long mul16u::mb#3 +unsigned long mul16u::mb#4 +unsigned long mul16u::mb#5 +unsigned long mul16u::res +unsigned long mul16u::res#0 +unsigned long mul16u::res#1 +unsigned long mul16u::res#2 +unsigned long mul16u::res#3 +unsigned long mul16u::res#4 +unsigned long mul16u::res#5 +unsigned long mul16u::res#6 +unsigned long mul16u::return +unsigned long mul16u::return#0 +unsigned long mul16u::return#1 +unsigned long mul16u::return#2 +unsigned long mul16u::return#3 +unsigned long mul16u::return#4 +unsigned int mulu16_sel(unsigned int v1 , unsigned int v2 , char select) +unsigned long mulu16_sel::$0 +unsigned long mulu16_sel::$1 +unsigned int mulu16_sel::$2 +unsigned int mulu16_sel::return +unsigned int mulu16_sel::return#0 +unsigned int mulu16_sel::return#1 +unsigned int mulu16_sel::return#10 +unsigned int mulu16_sel::return#11 +unsigned int mulu16_sel::return#12 +unsigned int mulu16_sel::return#2 +unsigned int mulu16_sel::return#3 +unsigned int mulu16_sel::return#4 +unsigned int mulu16_sel::return#5 +unsigned int mulu16_sel::return#6 +unsigned int mulu16_sel::return#7 +unsigned int mulu16_sel::return#8 +unsigned int mulu16_sel::return#9 +char mulu16_sel::select +char mulu16_sel::select#0 +char mulu16_sel::select#1 +char mulu16_sel::select#2 +char mulu16_sel::select#3 +char mulu16_sel::select#4 +char mulu16_sel::select#5 +char mulu16_sel::select#6 +unsigned int mulu16_sel::v1 +unsigned int mulu16_sel::v1#0 +unsigned int mulu16_sel::v1#1 +unsigned int mulu16_sel::v1#2 +unsigned int mulu16_sel::v1#3 +unsigned int mulu16_sel::v1#4 +unsigned int mulu16_sel::v1#5 +unsigned int mulu16_sel::v2 +unsigned int mulu16_sel::v2#0 +unsigned int mulu16_sel::v2#1 +unsigned int mulu16_sel::v2#2 +unsigned int mulu16_sel::v2#3 +unsigned int mulu16_sel::v2#4 +unsigned int mulu16_sel::v2#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -byte* print_screen#8 -void print_sint(signed word print_sint::w) -bool~ print_sint::$0 -signed word~ print_sint::$4 -signed word print_sint::w -signed word print_sint::w#0 -signed word print_sint::w#1 -signed word print_sint::w#2 -signed word print_sint::w#3 -signed word print_sint::w#4 -signed word print_sint::w#5 -signed word print_sint::w#6 -signed word print_sint::w#7 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -word rem16u -word rem16u#0 -word rem16u#1 -word rem16u#10 -word rem16u#11 -word rem16u#12 -word rem16u#13 -word rem16u#14 -word rem16u#15 -word rem16u#16 -word rem16u#17 -word rem16u#18 -word rem16u#19 -word rem16u#2 -word rem16u#20 -word rem16u#21 -word rem16u#22 -word rem16u#23 -word rem16u#24 -word rem16u#25 -word rem16u#26 -word rem16u#27 -word rem16u#28 -word rem16u#29 -word rem16u#3 -word rem16u#30 -word rem16u#31 -word rem16u#32 -word rem16u#33 -word rem16u#34 -word rem16u#35 -word rem16u#36 -word rem16u#4 -word rem16u#5 -word rem16u#6 -word rem16u#7 -word rem16u#8 -word rem16u#9 -signed word sin16s(dword sin16s::x) -bool~ sin16s::$0 -bool~ sin16s::$1 -word~ sin16s::$13 -bool~ sin16s::$14 -bool~ sin16s::$15 -dword~ sin16s::$16 -dword~ sin16s::$17 -signed word~ sin16s::$18 -bool~ sin16s::$2 -bool~ sin16s::$3 -dword~ sin16s::$4 -byte sin16s::isUpper -byte sin16s::isUpper#0 -byte sin16s::isUpper#1 -byte sin16s::isUpper#2 -byte sin16s::isUpper#3 -byte sin16s::isUpper#4 -byte sin16s::isUpper#5 -byte sin16s::isUpper#6 -byte sin16s::isUpper#7 -byte sin16s::isUpper#8 -byte sin16s::isUpper#9 -signed word sin16s::return -signed word sin16s::return#0 -signed word sin16s::return#1 -signed word sin16s::return#2 -signed word sin16s::return#3 -signed word sin16s::return#4 -signed word sin16s::sinx -signed word sin16s::sinx#0 -signed word sin16s::sinx#1 -signed word sin16s::sinx#2 -word sin16s::usinx -word sin16s::usinx#0 -word sin16s::usinx#1 -word sin16s::usinx#2 -word sin16s::usinx#3 -word sin16s::usinx#4 -dword sin16s::x -dword sin16s::x#0 -dword sin16s::x#1 -dword sin16s::x#2 -dword sin16s::x#3 -dword sin16s::x#4 -dword sin16s::x#5 -dword sin16s::x#6 -dword sin16s::x#7 -word sin16s::x1 -word sin16s::x1#0 -word sin16s::x1#1 -word sin16s::x1#2 -word sin16s::x1#3 -word sin16s::x1#4 -word sin16s::x2 -word sin16s::x2#0 -word sin16s::x3 -word sin16s::x3#0 -word sin16s::x3#1 -word sin16s::x3_6 -word sin16s::x3_6#0 -word sin16s::x4 -word sin16s::x4#0 -word sin16s::x5 -word sin16s::x5#0 -word sin16s::x5_128 -word sin16s::x5_128#0 -void sin16s_gen(signed word* sin16s_gen::sintab , word sin16s_gen::wavelength) -bool~ sin16s_gen::$1 -signed word~ sin16s_gen::$2 -dword~ sin16s_gen::$3 -word sin16s_gen::i -word sin16s_gen::i#0 -word sin16s_gen::i#1 -word sin16s_gen::i#2 -word sin16s_gen::i#3 -word sin16s_gen::i#4 -signed word* sin16s_gen::sintab -signed word* sin16s_gen::sintab#0 -signed word* sin16s_gen::sintab#1 -signed word* sin16s_gen::sintab#2 -signed word* sin16s_gen::sintab#3 -signed word* sin16s_gen::sintab#4 -signed word* sin16s_gen::sintab#5 -signed word* sin16s_gen::sintab#6 -dword sin16s_gen::step -dword sin16s_gen::step#0 -dword sin16s_gen::step#1 -dword sin16s_gen::step#2 -dword sin16s_gen::step#3 -word sin16s_gen::wavelength -word sin16s_gen::wavelength#0 -word sin16s_gen::wavelength#1 -word sin16s_gen::wavelength#2 -word sin16s_gen::wavelength#3 -word sin16s_gen::wavelength#4 -word sin16s_gen::wavelength#5 -dword sin16s_gen::x -dword sin16s_gen::x#0 -dword sin16s_gen::x#1 -dword sin16s_gen::x#2 -dword sin16s_gen::x#3 -dword sin16s_gen::x#4 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +char *print_screen#8 +void print_sint(int w) +bool print_sint::$0 +int print_sint::$4 +int print_sint::w +int print_sint::w#0 +int print_sint::w#1 +int print_sint::w#2 +int print_sint::w#3 +int print_sint::w#4 +int print_sint::w#5 +int print_sint::w#6 +int print_sint::w#7 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +unsigned int rem16u +unsigned int rem16u#0 +unsigned int rem16u#1 +unsigned int rem16u#10 +unsigned int rem16u#11 +unsigned int rem16u#12 +unsigned int rem16u#13 +unsigned int rem16u#14 +unsigned int rem16u#15 +unsigned int rem16u#16 +unsigned int rem16u#17 +unsigned int rem16u#18 +unsigned int rem16u#19 +unsigned int rem16u#2 +unsigned int rem16u#20 +unsigned int rem16u#21 +unsigned int rem16u#22 +unsigned int rem16u#23 +unsigned int rem16u#24 +unsigned int rem16u#25 +unsigned int rem16u#26 +unsigned int rem16u#27 +unsigned int rem16u#28 +unsigned int rem16u#29 +unsigned int rem16u#3 +unsigned int rem16u#30 +unsigned int rem16u#31 +unsigned int rem16u#32 +unsigned int rem16u#33 +unsigned int rem16u#34 +unsigned int rem16u#35 +unsigned int rem16u#36 +unsigned int rem16u#4 +unsigned int rem16u#5 +unsigned int rem16u#6 +unsigned int rem16u#7 +unsigned int rem16u#8 +unsigned int rem16u#9 +int sin16s(unsigned long x) +bool sin16s::$0 +bool sin16s::$1 +unsigned int sin16s::$13 +bool sin16s::$14 +bool sin16s::$15 +unsigned long sin16s::$16 +unsigned long sin16s::$17 +int sin16s::$18 +bool sin16s::$2 +bool sin16s::$3 +unsigned long sin16s::$4 +char sin16s::isUpper +char sin16s::isUpper#0 +char sin16s::isUpper#1 +char sin16s::isUpper#2 +char sin16s::isUpper#3 +char sin16s::isUpper#4 +char sin16s::isUpper#5 +char sin16s::isUpper#6 +char sin16s::isUpper#7 +char sin16s::isUpper#8 +char sin16s::isUpper#9 +int sin16s::return +int sin16s::return#0 +int sin16s::return#1 +int sin16s::return#2 +int sin16s::return#3 +int sin16s::return#4 +int sin16s::sinx +int sin16s::sinx#0 +int sin16s::sinx#1 +int sin16s::sinx#2 +unsigned int sin16s::usinx +unsigned int sin16s::usinx#0 +unsigned int sin16s::usinx#1 +unsigned int sin16s::usinx#2 +unsigned int sin16s::usinx#3 +unsigned int sin16s::usinx#4 +unsigned long sin16s::x +unsigned long sin16s::x#0 +unsigned long sin16s::x#1 +unsigned long sin16s::x#2 +unsigned long sin16s::x#3 +unsigned long sin16s::x#4 +unsigned long sin16s::x#5 +unsigned long sin16s::x#6 +unsigned long sin16s::x#7 +unsigned int sin16s::x1 +unsigned int sin16s::x1#0 +unsigned int sin16s::x1#1 +unsigned int sin16s::x1#2 +unsigned int sin16s::x1#3 +unsigned int sin16s::x1#4 +unsigned int sin16s::x2 +unsigned int sin16s::x2#0 +unsigned int sin16s::x3 +unsigned int sin16s::x3#0 +unsigned int sin16s::x3#1 +unsigned int sin16s::x3_6 +unsigned int sin16s::x3_6#0 +unsigned int sin16s::x4 +unsigned int sin16s::x4#0 +unsigned int sin16s::x5 +unsigned int sin16s::x5#0 +unsigned int sin16s::x5_128 +unsigned int sin16s::x5_128#0 +void sin16s_gen(int *sintab , unsigned int wavelength) +bool sin16s_gen::$1 +int sin16s_gen::$2 +unsigned long sin16s_gen::$3 +unsigned int sin16s_gen::i +unsigned int sin16s_gen::i#0 +unsigned int sin16s_gen::i#1 +unsigned int sin16s_gen::i#2 +unsigned int sin16s_gen::i#3 +unsigned int sin16s_gen::i#4 +int *sin16s_gen::sintab +int *sin16s_gen::sintab#0 +int *sin16s_gen::sintab#1 +int *sin16s_gen::sintab#2 +int *sin16s_gen::sintab#3 +int *sin16s_gen::sintab#4 +int *sin16s_gen::sintab#5 +int *sin16s_gen::sintab#6 +unsigned long sin16s_gen::step +unsigned long sin16s_gen::step#0 +unsigned long sin16s_gen::step#1 +unsigned long sin16s_gen::step#2 +unsigned long sin16s_gen::step#3 +unsigned int sin16s_gen::wavelength +unsigned int sin16s_gen::wavelength#0 +unsigned int sin16s_gen::wavelength#1 +unsigned int sin16s_gen::wavelength#2 +unsigned int sin16s_gen::wavelength#3 +unsigned int sin16s_gen::wavelength#4 +unsigned int sin16s_gen::wavelength#5 +unsigned long sin16s_gen::x +unsigned long sin16s_gen::x#0 +unsigned long sin16s_gen::x#1 +unsigned long sin16s_gen::x#2 +unsigned long sin16s_gen::x#3 +unsigned long sin16s_gen::x#4 Adding number conversion cast (unumber) 1 in sin16s::isUpper#1 = 1 Adding number conversion cast (unumber) 3 in sin16s::$4 = sin16s::x#6 << 3 @@ -1301,7 +1301,7 @@ Inlining cast mulu16_sel::select#3 = (unumber)0 Inlining cast mulu16_sel::select#4 = (unumber)0 Inlining cast divr16u::rem#3 = (unumber)0 Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 1 Simplifying constant integer cast 3 @@ -1331,41 +1331,41 @@ Simplifying constant integer cast $f Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in divr16u::$2 = divr16u::$1 & $80 -Inferred type updated to word in divr16u::$5 = divr16u::rem#7 | 1 -Inferred type updated to byte in mul16u::$1 = mul16u::a#3 & 1 -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in divr16u::$2 = divr16u::$1 & $80 +Inferred type updated to unsigned int in divr16u::$5 = divr16u::rem#7 | 1 +Inferred type updated to char in mul16u::$1 = mul16u::a#3 & 1 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [30] sin16s::$1 = sin16s::x#3 < PI_u4f28 from [29] sin16s::$0 = sin16s::x#3 >= PI_u4f28 Inversing boolean not [34] sin16s::$3 = sin16s::x#4 < PI_HALF_u4f28 from [33] sin16s::$2 = sin16s::x#4 >= PI_HALF_u4f28 Inversing boolean not [84] sin16s::$15 = sin16s::isUpper#2 == 0 from [83] sin16s::$14 = sin16s::isUpper#2 != 0 @@ -1574,7 +1574,7 @@ Simple Condition main::$3 [214] if(main::st1#2 sin16s::@12 ) during phi lifting. @@ -1850,16 +1850,16 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sin16s_gen + [1] call sin16s_gen to:main::@5 main::@5: scope:[main] from main [2] phi() - [3] call print_cls + [3] call print_cls to:main::@1 main::@1: scope:[main] from main::@5 main::@7 [4] print_char_cursor#20 = phi( main::@5/print_screen#0, main::@7/print_char_cursor#1 ) [4] main::st1#2 = phi( main::@5/main::sintab1, main::@7/main::st1#1 ) - [5] if(main::st1#2> 4 [146] print_char::ch#3 = print_hextab[print_uchar::$0] - [147] call print_char + [147] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [148] print_uchar::$2 = print_uchar::b#2 & $f [149] print_char::ch#4 = print_hextab[print_uchar::$2] - [150] call print_char + [150] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [151] return to:@return -dword mul16u(word mul16u::a , word mul16u::b) +unsigned long mul16u(unsigned int a , unsigned int b) mul16u: scope:[mul16u] from mulu16_sel - [152] mul16u::mb#0 = (dword)mul16u::b#0 + [152] mul16u::mb#0 = (unsigned long)mul16u::b#0 to:mul16u::@1 mul16u::@1: scope:[mul16u] from mul16u mul16u::@3 [153] mul16u::mb#2 = phi( mul16u/mul16u::mb#0, mul16u::@3/mul16u::mb#1 ) @@ -2205,188 +2205,188 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4 VARIABLE REGISTER WEIGHTS -dword div32u16u(dword div32u16u::dividend , word div32u16u::divisor) -dword div32u16u::dividend -word div32u16u::divisor -dword div32u16u::quotient -word div32u16u::quotient_hi -word div32u16u::quotient_hi#0 40.4 -word div32u16u::quotient_lo -word div32u16u::quotient_lo#0 202.0 -dword div32u16u::return -dword div32u16u::return#0 22.0 -dword div32u16u::return#1 37.33333333333333 -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -byte~ divr16u::$1 20002.0 -byte~ divr16u::$2 20002.0 -word divr16u::dividend -word divr16u::dividend#0 2500.25 -word divr16u::dividend#3 4429.142857142857 -word divr16u::dividend#5 1001.0 -word divr16u::divisor -byte divr16u::i -byte divr16u::i#1 15001.5 -byte divr16u::i#2 1538.6153846153845 -word divr16u::quotient -word divr16u::quotient#1 15001.5 -word divr16u::quotient#2 10001.0 -word divr16u::quotient#3 2500.25 -word divr16u::rem -word divr16u::rem#0 7500.75 -word divr16u::rem#1 20002.0 -word divr16u::rem#10 1102.0 -word divr16u::rem#11 10334.666666666666 -word divr16u::rem#2 20002.0 -word divr16u::rem#4 202.0 -word divr16u::rem#5 21003.0 -word divr16u::rem#6 10001.0 -word divr16u::return -word divr16u::return#0 4315.0 -word divr16u::return#2 202.0 -word divr16u::return#3 202.0 +unsigned long div32u16u(unsigned long dividend , unsigned int divisor) +unsigned long div32u16u::dividend +unsigned int div32u16u::divisor +unsigned long div32u16u::quotient +unsigned int div32u16u::quotient_hi +unsigned int div32u16u::quotient_hi#0 // 40.4 +unsigned int div32u16u::quotient_lo +unsigned int div32u16u::quotient_lo#0 // 202.0 +unsigned long div32u16u::return +unsigned long div32u16u::return#0 // 22.0 +unsigned long div32u16u::return#1 // 37.33333333333333 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +char divr16u::$1 // 20002.0 +char divr16u::$2 // 20002.0 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 // 2500.25 +unsigned int divr16u::dividend#3 // 4429.142857142857 +unsigned int divr16u::dividend#5 // 1001.0 +unsigned int divr16u::divisor +char divr16u::i +char divr16u::i#1 // 15001.5 +char divr16u::i#2 // 1538.6153846153845 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#1 // 15001.5 +unsigned int divr16u::quotient#2 // 10001.0 +unsigned int divr16u::quotient#3 // 2500.25 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 // 7500.75 +unsigned int divr16u::rem#1 // 20002.0 +unsigned int divr16u::rem#10 // 1102.0 +unsigned int divr16u::rem#11 // 10334.666666666666 +unsigned int divr16u::rem#2 // 20002.0 +unsigned int divr16u::rem#4 // 202.0 +unsigned int divr16u::rem#5 // 21003.0 +unsigned int divr16u::rem#6 // 10001.0 +unsigned int divr16u::return +unsigned int divr16u::return#0 // 4315.0 +unsigned int divr16u::return#2 // 202.0 +unsigned int divr16u::return#3 // 202.0 void main() -signed word* main::st1 -signed word* main::st1#1 22.0 -signed word* main::st1#2 4.0 -signed word main::sw -signed word main::sw#0 6.6000000000000005 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -dword mul16u(word mul16u::a , word mul16u::b) -byte~ mul16u::$1 2.0000002E7 -word mul16u::a -word mul16u::a#0 36667.33333333333 -word mul16u::a#1 1.0000001E7 -word mul16u::a#2 6683334.166666666 -word mul16u::b -word mul16u::b#0 10001.0 -dword mul16u::mb -dword mul16u::mb#0 200002.0 -dword mul16u::mb#1 2.0000002E7 -dword mul16u::mb#2 4300000.571428571 -dword mul16u::res -dword mul16u::res#1 2.0000002E7 -dword mul16u::res#2 5001667.333333333 -dword mul16u::res#6 1.0000001E7 -dword mul16u::return -dword mul16u::return#0 20002.0 -word mulu16_sel(word mulu16_sel::v1 , word mulu16_sel::v2 , byte mulu16_sel::select) -dword~ mulu16_sel::$0 20002.0 -dword~ mulu16_sel::$1 20002.0 -word mulu16_sel::return -word mulu16_sel::return#0 2002.0 -word mulu16_sel::return#1 2002.0 -word mulu16_sel::return#10 2002.0 -word mulu16_sel::return#11 2002.0 -word mulu16_sel::return#12 2143.714285714286 -word mulu16_sel::return#2 2002.0 -byte mulu16_sel::select -byte mulu16_sel::select#5 1666.8333333333333 -word mulu16_sel::v1 -word mulu16_sel::v1#0 1001.0 -word mulu16_sel::v1#1 1001.0 -word mulu16_sel::v1#2 2002.0 -word mulu16_sel::v1#3 1001.0 -word mulu16_sel::v1#4 1001.0 -word mulu16_sel::v1#5 15006.0 -word mulu16_sel::v2 -word mulu16_sel::v2#0 2002.0 -word mulu16_sel::v2#1 2002.0 -word mulu16_sel::v2#3 2002.0 -word mulu16_sel::v2#4 2002.0 -word mulu16_sel::v2#5 7002.5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#3 20002.0 -byte print_char::ch#4 20002.0 -byte print_char::ch#5 130004.0 -byte* print_char_cursor -byte* print_char_cursor#1 2875.0 -byte* print_char_cursor#12 5000.576923076923 -byte* print_char_cursor#20 6.6000000000000005 -byte* print_char_cursor#36 115103.5 -byte* print_char_cursor#54 44.8 -byte* print_char_cursor#58 123.0 +int *main::st1 +int *main::st1#1 // 22.0 +int *main::st1#2 // 4.0 +int main::sw +int main::sw#0 // 6.6000000000000005 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +unsigned long mul16u(unsigned int a , unsigned int b) +char mul16u::$1 // 2.0000002E7 +unsigned int mul16u::a +unsigned int mul16u::a#0 // 36667.33333333333 +unsigned int mul16u::a#1 // 1.0000001E7 +unsigned int mul16u::a#2 // 6683334.166666666 +unsigned int mul16u::b +unsigned int mul16u::b#0 // 10001.0 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 // 200002.0 +unsigned long mul16u::mb#1 // 2.0000002E7 +unsigned long mul16u::mb#2 // 4300000.571428571 +unsigned long mul16u::res +unsigned long mul16u::res#1 // 2.0000002E7 +unsigned long mul16u::res#2 // 5001667.333333333 +unsigned long mul16u::res#6 // 1.0000001E7 +unsigned long mul16u::return +unsigned long mul16u::return#0 // 20002.0 +unsigned int mulu16_sel(unsigned int v1 , unsigned int v2 , char select) +unsigned long mulu16_sel::$0 // 20002.0 +unsigned long mulu16_sel::$1 // 20002.0 +unsigned int mulu16_sel::return +unsigned int mulu16_sel::return#0 // 2002.0 +unsigned int mulu16_sel::return#1 // 2002.0 +unsigned int mulu16_sel::return#10 // 2002.0 +unsigned int mulu16_sel::return#11 // 2002.0 +unsigned int mulu16_sel::return#12 // 2143.714285714286 +unsigned int mulu16_sel::return#2 // 2002.0 +char mulu16_sel::select +char mulu16_sel::select#5 // 1666.8333333333333 +unsigned int mulu16_sel::v1 +unsigned int mulu16_sel::v1#0 // 1001.0 +unsigned int mulu16_sel::v1#1 // 1001.0 +unsigned int mulu16_sel::v1#2 // 2002.0 +unsigned int mulu16_sel::v1#3 // 1001.0 +unsigned int mulu16_sel::v1#4 // 1001.0 +unsigned int mulu16_sel::v1#5 // 15006.0 +unsigned int mulu16_sel::v2 +unsigned int mulu16_sel::v2#0 // 2002.0 +unsigned int mulu16_sel::v2#1 // 2002.0 +unsigned int mulu16_sel::v2#3 // 2002.0 +unsigned int mulu16_sel::v2#4 // 2002.0 +unsigned int mulu16_sel::v2#5 // 7002.5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#3 // 20002.0 +char print_char::ch#4 // 20002.0 +char print_char::ch#5 // 130004.0 +char *print_char_cursor +char *print_char_cursor#1 // 2875.0 +char *print_char_cursor#12 // 5000.576923076923 +char *print_char_cursor#20 // 6.6000000000000005 +char *print_char_cursor#36 // 115103.5 +char *print_char_cursor#54 // 44.8 +char *print_char_cursor#58 // 123.0 void print_cls() -byte* print_line_cursor -byte* print_screen -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 202.0 -signed word print_sint::w#1 52.33333333333333 -signed word print_sint::w#4 202.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 20002.0 -byte* print_str::str#3 10026.25 -byte* print_str::str#6 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 -word rem16u -word rem16u#14 220.39999999999998 -signed word sin16s(dword sin16s::x) -dword~ sin16s::$4 2002.0 -byte sin16s::isUpper -byte sin16s::isUpper#2 30.333333333333332 -signed word sin16s::return -signed word sin16s::return#0 202.0 -signed word sin16s::return#1 701.0 -signed word sin16s::return#5 2002.0 -signed word sin16s::sinx -signed word sin16s::sinx#1 2002.0 -word sin16s::usinx -word sin16s::usinx#0 166.83333333333334 -word sin16s::usinx#1 500.5 -dword sin16s::x -dword sin16s::x#0 1552.0 -dword sin16s::x#1 2002.0 -dword sin16s::x#2 2002.0 -dword sin16s::x#4 2502.5 -dword sin16s::x#6 3003.0 -word sin16s::x1 -word sin16s::x1#0 318.5 -word sin16s::x2 -word sin16s::x2#0 2002.0 -word sin16s::x3 -word sin16s::x3#0 500.5 -word sin16s::x3_6 -word sin16s::x3_6#0 2002.0 -word sin16s::x4 -word sin16s::x4#0 2002.0 -word sin16s::x5 -word sin16s::x5#0 2002.0 -word sin16s::x5_128 -word sin16s::x5_128#0 2002.0 -void sin16s_gen(signed word* sin16s_gen::sintab , word sin16s_gen::wavelength) -signed word~ sin16s_gen::$2 202.0 -word sin16s_gen::i -word sin16s_gen::i#1 202.0 -word sin16s_gen::i#2 33.666666666666664 -signed word* sin16s_gen::sintab -signed word* sin16s_gen::sintab#0 67.33333333333333 -signed word* sin16s_gen::sintab#2 43.285714285714285 -dword sin16s_gen::step -dword sin16s_gen::step#0 10.181818181818182 -word sin16s_gen::wavelength -dword sin16s_gen::x -dword sin16s_gen::x#1 101.0 -dword sin16s_gen::x#2 37.875 +char *print_line_cursor +char *print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // 202.0 +int print_sint::w#1 // 52.33333333333333 +int print_sint::w#4 // 202.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 20002.0 +char *print_str::str#3 // 10026.25 +char *print_str::str#6 // 101.0 +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 +unsigned int rem16u +unsigned int rem16u#14 // 220.39999999999998 +int sin16s(unsigned long x) +unsigned long sin16s::$4 // 2002.0 +char sin16s::isUpper +char sin16s::isUpper#2 // 30.333333333333332 +int sin16s::return +int sin16s::return#0 // 202.0 +int sin16s::return#1 // 701.0 +int sin16s::return#5 // 2002.0 +int sin16s::sinx +int sin16s::sinx#1 // 2002.0 +unsigned int sin16s::usinx +unsigned int sin16s::usinx#0 // 166.83333333333334 +unsigned int sin16s::usinx#1 // 500.5 +unsigned long sin16s::x +unsigned long sin16s::x#0 // 1552.0 +unsigned long sin16s::x#1 // 2002.0 +unsigned long sin16s::x#2 // 2002.0 +unsigned long sin16s::x#4 // 2502.5 +unsigned long sin16s::x#6 // 3003.0 +unsigned int sin16s::x1 +unsigned int sin16s::x1#0 // 318.5 +unsigned int sin16s::x2 +unsigned int sin16s::x2#0 // 2002.0 +unsigned int sin16s::x3 +unsigned int sin16s::x3#0 // 500.5 +unsigned int sin16s::x3_6 +unsigned int sin16s::x3_6#0 // 2002.0 +unsigned int sin16s::x4 +unsigned int sin16s::x4#0 // 2002.0 +unsigned int sin16s::x5 +unsigned int sin16s::x5#0 // 2002.0 +unsigned int sin16s::x5_128 +unsigned int sin16s::x5_128#0 // 2002.0 +void sin16s_gen(int *sintab , unsigned int wavelength) +int sin16s_gen::$2 // 202.0 +unsigned int sin16s_gen::i +unsigned int sin16s_gen::i#1 // 202.0 +unsigned int sin16s_gen::i#2 // 33.666666666666664 +int *sin16s_gen::sintab +int *sin16s_gen::sintab#0 // 67.33333333333333 +int *sin16s_gen::sintab#2 // 43.285714285714285 +unsigned long sin16s_gen::step +unsigned long sin16s_gen::step#0 // 10.181818181818182 +unsigned int sin16s_gen::wavelength +unsigned long sin16s_gen::x +unsigned long sin16s_gen::x#1 // 101.0 +unsigned long sin16s_gen::x#2 // 37.875 Initial phi equivalence classes [ main::st1#2 main::st1#1 ] @@ -2571,11 +2571,11 @@ Allocated zp[1]:131 [ print_uchar::$0 ] Allocated zp[1]:132 [ print_uchar::$2 ] Allocated zp[1]:133 [ mul16u::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] if(main::st1#2> 4 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [96] sin16s::usinx#1 = sin16s::usinx#0 + sin16s::x5_128#0 [ sin16s::isUpper#2 sin16s::usinx#1 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a -Statement [98] sin16s::sinx#1 = - (signed word)sin16s::usinx#1 [ sin16s::sinx#1 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::sinx#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a -Statement [101] sin16s::return#5 = (signed word)sin16s::usinx#1 [ sin16s::return#5 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::return#5 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a +Statement [98] sin16s::sinx#1 = - (int)sin16s::usinx#1 [ sin16s::sinx#1 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::sinx#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a +Statement [101] sin16s::return#5 = (int)sin16s::usinx#1 [ sin16s::return#5 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::return#5 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [104] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:3::memset:33 [ memset::dst#2 ] { } ) always clobbers reg byte a Statement [106] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:3::memset:33 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [109] *print_char_cursor#36 = print_char::ch#5 [ print_char_cursor#36 ] ( print_str:10::print_char:40 [ main::st1#2 main::sw#0 print_str::str#3 print_char_cursor#36 ] { { print_char_cursor#20 = print_char_cursor#58 } { print_char::ch#0 = print_char::ch#5 } { print_char_cursor#1 = print_char_cursor#36 } } print_str:15::print_char:40 [ main::st1#2 print_str::str#3 print_char_cursor#36 ] { { print_char_cursor#12 = print_char_cursor#58 } { print_char::ch#0 = print_char::ch#5 } { print_char_cursor#1 = print_char_cursor#36 } } print_sint:13::print_char:44 [ main::st1#2 print_sint::w#1 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_char_cursor#36 = print_char_cursor#54 } } print_sint:13::print_char:50 [ main::st1#2 print_sint::w#1 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_char_cursor#36 = print_char_cursor#54 } } print_sint:13::print_uint:47::print_uchar:113::print_char:147 [ main::st1#2 print_uint::w#0 print_uchar::b#2 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115::print_char:147 [ main::st1#2 print_uchar::b#2 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:113::print_char:150 [ main::st1#2 print_uint::w#0 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115::print_char:150 [ main::st1#2 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } ) always clobbers reg byte y @@ -2646,15 +2646,15 @@ Statement [142] mulu16_sel::return#12 = word1 mulu16_sel::$1 [ mulu16_sel::retu Statement [145] print_uchar::$0 = print_uchar::b#2 >> 4 [ print_char_cursor#12 print_uchar::b#2 print_uchar::$0 ] ( print_sint:13::print_uint:47::print_uchar:113 [ main::st1#2 print_uint::w#0 print_char_cursor#12 print_uchar::b#2 print_uchar::$0 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115 [ main::st1#2 print_char_cursor#12 print_uchar::b#2 print_uchar::$0 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:40 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] Statement [148] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#12 print_uchar::$2 ] ( print_sint:13::print_uint:47::print_uchar:113 [ main::st1#2 print_uint::w#0 print_char_cursor#12 print_uchar::$2 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115 [ main::st1#2 print_char_cursor#12 print_uchar::$2 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } ) always clobbers reg byte a -Statement [152] mul16u::mb#0 = (dword)mul16u::b#0 [ mul16u::a#0 mul16u::mb#0 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a +Statement [152] mul16u::mb#0 = (unsigned long)mul16u::b#0 [ mul16u::a#0 mul16u::mb#0 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [154] if(mul16u::a#2!=0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [156] mul16u::$1 = mul16u::a#2 & 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [158] mul16u::res#1 = mul16u::res#2 + mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a -Statement [5] if(main::st1#2> 4 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [96] sin16s::usinx#1 = sin16s::usinx#0 + sin16s::x5_128#0 [ sin16s::isUpper#2 sin16s::usinx#1 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a -Statement [98] sin16s::sinx#1 = - (signed word)sin16s::usinx#1 [ sin16s::sinx#1 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::sinx#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a -Statement [101] sin16s::return#5 = (signed word)sin16s::usinx#1 [ sin16s::return#5 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::return#5 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a +Statement [98] sin16s::sinx#1 = - (int)sin16s::usinx#1 [ sin16s::sinx#1 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::sinx#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a +Statement [101] sin16s::return#5 = (int)sin16s::usinx#1 [ sin16s::return#5 ] ( sin16s_gen:1::sin16s:25 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::return#5 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } } ) always clobbers reg byte a Statement [104] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:3::memset:33 [ memset::dst#2 ] { } ) always clobbers reg byte a Statement [106] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:3::memset:33 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [109] *print_char_cursor#36 = print_char::ch#5 [ print_char_cursor#36 ] ( print_str:10::print_char:40 [ main::st1#2 main::sw#0 print_str::str#3 print_char_cursor#36 ] { { print_char_cursor#20 = print_char_cursor#58 } { print_char::ch#0 = print_char::ch#5 } { print_char_cursor#1 = print_char_cursor#36 } } print_str:15::print_char:40 [ main::st1#2 print_str::str#3 print_char_cursor#36 ] { { print_char_cursor#12 = print_char_cursor#58 } { print_char::ch#0 = print_char::ch#5 } { print_char_cursor#1 = print_char_cursor#36 } } print_sint:13::print_char:44 [ main::st1#2 print_sint::w#1 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_char_cursor#36 = print_char_cursor#54 } } print_sint:13::print_char:50 [ main::st1#2 print_sint::w#1 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_char_cursor#36 = print_char_cursor#54 } } print_sint:13::print_uint:47::print_uchar:113::print_char:147 [ main::st1#2 print_uint::w#0 print_uchar::b#2 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115::print_char:147 [ main::st1#2 print_uchar::b#2 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:113::print_char:150 [ main::st1#2 print_uint::w#0 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115::print_char:150 [ main::st1#2 print_char_cursor#36 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } ) always clobbers reg byte y @@ -2720,7 +2720,7 @@ Statement [141] mulu16_sel::$1 = mulu16_sel::$0 << mulu16_sel::select#5 [ mulu16 Statement [142] mulu16_sel::return#12 = word1 mulu16_sel::$1 [ mulu16_sel::return#12 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } } sin16s_gen:1::sin16s:25::mulu16_sel:77 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } } sin16s_gen:1::sin16s:25::mulu16_sel:81 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } } sin16s_gen:1::sin16s:25::mulu16_sel:92 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } } ) always clobbers reg byte a Statement [145] print_uchar::$0 = print_uchar::b#2 >> 4 [ print_char_cursor#12 print_uchar::b#2 print_uchar::$0 ] ( print_sint:13::print_uint:47::print_uchar:113 [ main::st1#2 print_uint::w#0 print_char_cursor#12 print_uchar::b#2 print_uchar::$0 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115 [ main::st1#2 print_char_cursor#12 print_uchar::b#2 print_uchar::$0 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } ) always clobbers reg byte a Statement [148] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#12 print_uchar::$2 ] ( print_sint:13::print_uint:47::print_uchar:113 [ main::st1#2 print_uint::w#0 print_char_cursor#12 print_uchar::$2 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } print_sint:13::print_uint:47::print_uchar:115 [ main::st1#2 print_char_cursor#12 print_uchar::$2 ] { { print_sint::w#1 = main::sw#0 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#4 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#36 } } ) always clobbers reg byte a -Statement [152] mul16u::mb#0 = (dword)mul16u::b#0 [ mul16u::a#0 mul16u::mb#0 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a +Statement [152] mul16u::mb#0 = (unsigned long)mul16u::b#0 [ mul16u::a#0 mul16u::mb#0 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::mb#0 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [154] if(mul16u::a#2!=0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [156] mul16u::$1 = mul16u::a#2 & 1 [ mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#2 mul16u::mb#2 mul16u::$1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a Statement [158] mul16u::res#1 = mul16u::res#2 + mul16u::mb#2 [ mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] ( sin16s_gen:1::sin16s:25::mulu16_sel:72::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v2#0 = mulu16_sel::v2#5 mulu16_sel::v1#5 mulu16_sel::v1#0 sin16s::x1#0 mul16u::a#0 mul16u::b#0 } { mulu16_sel::return#0 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:77::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#1 = mulu16_sel::v1#5 sin16s::x2#0 mul16u::a#0 } { mulu16_sel::v2#1 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#1 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:81::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#2 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::return#12 = mulu16_sel::return#2 } { mul16u::b#0 = mulu16_sel::v2#5 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:87::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#3 = mulu16_sel::v1#5 sin16s::x3#0 mul16u::a#0 } { mulu16_sel::v2#3 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#10 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } sin16s_gen:1::sin16s:25::mulu16_sel:92::mul16u:138 [ sin16s_gen::step#0 sin16s_gen::i#2 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#2 mul16u::mb#2 mul16u::res#1 ] { { sin16s::x#0 = sin16s_gen::x#2 } { sin16s::return#0 = sin16s::return#1 } { mulu16_sel::v1#4 = mulu16_sel::v1#5 sin16s::x4#0 mul16u::a#0 } { mulu16_sel::v2#4 = mulu16_sel::v2#5 sin16s::x1#0 mul16u::b#0 } { mulu16_sel::return#11 = mulu16_sel::return#12 } { mul16u::return#0 = mul16u::res#2 } } ) always clobbers reg byte a @@ -2895,7 +2895,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const PI_u4f28 = $3243f6a9 // PI/2 in u[4.28] format .const PI_HALF_u4f28 = $1921fb54 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .label print_screen = $400 .label print_char_cursor = $22 // Remainder after unsigned 16-bit division @@ -2906,7 +2906,7 @@ main: { .label wavelength = $78 .label sw = $a .label st1 = 2 - // [1] call sin16s_gen + // [1] call sin16s_gen // [17] phi from main to sin16s_gen [phi:main->sin16s_gen] sin16s_gen_from_main: jsr sin16s_gen @@ -2915,7 +2915,7 @@ main: { jmp __b5 // main::@5 __b5: - // [3] call print_cls + // [3] call print_cls // [32] phi from main::@5 to print_cls [phi:main::@5->print_cls] print_cls_from___b5: jsr print_cls @@ -2934,13 +2934,13 @@ main: { jmp __b1 // main::@1 __b1: - // [5] if(main::st1#2sintab1+wavelength*SIZEOF_SIGNED_WORD + cmp #>sintab1+wavelength*SIZEOF_INT bcc __b2 bne !+ lda.z st1 - cmp #print_str] print_str_from___b4: // [35] phi print_char_cursor#58 = print_char_cursor#20 [phi:main::@4->print_str#0] -- register_copy @@ -2983,14 +2983,14 @@ main: { // main::@3 __b3: // [12] print_sint::w#1 = main::sw#0 - // [13] call print_sint + // [13] call print_sint jsr print_sint // [14] phi from main::@3 to main::@6 [phi:main::@3->main::@6] __b6_from___b3: jmp __b6 // main::@6 __b6: - // [15] call print_str + // [15] call print_str // [35] phi from main::@6 to print_str [phi:main::@6->print_str] print_str_from___b6: // [35] phi print_char_cursor#58 = print_char_cursor#12 [phi:main::@6->print_str#0] -- register_copy @@ -3003,8 +3003,8 @@ main: { jmp __b7 // main::@7 __b7: - // [16] main::st1#1 = main::st1#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 - lda #SIZEOF_SIGNED_WORD + // [16] main::st1#1 = main::st1#2 + SIZEOF_INT -- pwsz1=pwsz1_plus_vbuc1 + lda #SIZEOF_INT clc adc.z st1 sta.z st1 @@ -3028,7 +3028,7 @@ main: { // Generate signed (large) unsigned int sine table - on the full -$7fff - $7fff range // sintab - the table to generate into // wavelength - the number of sine points in a total sine wavelength (the size of the table) -// sin16s_gen(signed word* zp($a) sintab) +// void sin16s_gen(__zp($a) int *sintab, unsigned int wavelength) sin16s_gen: { .label __2 = $10 .label step = $1a @@ -3037,7 +3037,7 @@ sin16s_gen: { // Iterate over the table .label x = 4 .label i = 8 - // [18] call div32u16u + // [18] call div32u16u // u[4.28] step = PI*2/wavelength // [52] phi from sin16s_gen to div32u16u [phi:sin16s_gen->div32u16u] div32u16u_from_sin16s_gen: @@ -3097,7 +3097,7 @@ sin16s_gen: { sta.z sin16s.x+2 lda.z x+3 sta.z sin16s.x+3 - // [25] call sin16s + // [25] call sin16s jsr sin16s // [26] sin16s::return#0 = sin16s::return#1 jmp __b4 @@ -3111,8 +3111,8 @@ sin16s_gen: { iny lda.z __2+1 sta (sintab),y - // [29] sin16s_gen::sintab#0 = sin16s_gen::sintab#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 - lda #SIZEOF_SIGNED_WORD + // [29] sin16s_gen::sintab#0 = sin16s_gen::sintab#2 + SIZEOF_INT -- pwsz1=pwsz1_plus_vbuc1 + lda #SIZEOF_INT clc adc.z sintab sta.z sintab @@ -3148,7 +3148,7 @@ sin16s_gen: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [33] call memset + // [33] call memset // [102] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -3160,7 +3160,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(8) str) +// void print_str(__zp(8) char *str) print_str: { .label str = 8 // [36] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3186,7 +3186,7 @@ print_str: { // [39] print_char::ch#0 = *print_str::str#3 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [40] call print_char + // [40] call print_char // [108] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [108] phi print_char_cursor#36 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -3204,7 +3204,7 @@ print_str: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp($a) w) +// void print_sint(__zp($a) int w) print_sint: { .label w = $a // [42] if(print_sint::w#1<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 @@ -3215,7 +3215,7 @@ print_sint: { jmp __b3 // print_sint::@3 __b3: - // [44] call print_char + // [44] call print_char // [108] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] print_char_from___b3: // [108] phi print_char_cursor#36 = print_char_cursor#54 [phi:print_sint::@3->print_char#0] -- register_copy @@ -3229,8 +3229,8 @@ print_sint: { jmp __b2 // print_sint::@2 __b2: - // [46] print_uint::w#0 = (word)print_sint::w#4 - // [47] call print_uint + // [46] print_uint::w#0 = (unsigned int)print_sint::w#4 + // [47] call print_uint jsr print_uint jmp __breturn // print_sint::@return @@ -3242,7 +3242,7 @@ print_sint: { jmp __b1 // print_sint::@1 __b1: - // [50] call print_char + // [50] call print_char // [108] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] print_char_from___b1: // [108] phi print_char_cursor#36 = print_char_cursor#54 [phi:print_sint::@1->print_char#0] -- register_copy @@ -3265,11 +3265,12 @@ print_sint: { // div32u16u // Divide unsigned 32-bit unsigned long dividend with a 16-bit unsigned int divisor // The 16-bit unsigned int remainder can be found in rem16u after the division +// __zp($1a) unsigned long div32u16u(unsigned long dividend, unsigned int divisor) div32u16u: { .label return = $1a .label quotient_hi = $24 .label quotient_lo = $14 - // [53] call divr16u + // [53] call divr16u // [117] phi from div32u16u to divr16u [phi:div32u16u->divr16u] divr16u_from_div32u16u: // [117] phi divr16u::dividend#5 = word1 PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 @@ -3293,7 +3294,7 @@ div32u16u: { lda.z divr16u.return+1 sta.z quotient_hi+1 // [56] divr16u::rem#4 = rem16u#14 - // [57] call divr16u + // [57] call divr16u // [117] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u] divr16u_from___b1: // [117] phi divr16u::dividend#5 = word0 PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 @@ -3327,7 +3328,7 @@ div32u16u: { // Calculate signed int sine sin(x) // x: unsigned long input u[4.28] in the interval $00000000 - PI2_u4f28 // result: signed int sin(x) s[0.15] - using the full range -$7fff - $7fff -// sin16s(dword zp($c) x) +// __zp($10) int sin16s(__zp($c) unsigned long x) sin16s: { .label __4 = $1e .label x = $c @@ -3467,7 +3468,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [72] call mulu16_sel + // [72] call mulu16_sel // u[1.15] // [135] phi from sin16s::@2 to mulu16_sel [phi:sin16s::@2->mulu16_sel] mulu16_sel_from___b2: @@ -3491,7 +3492,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [77] call mulu16_sel + // [77] call mulu16_sel // u[2.14] x^2 // [135] phi from sin16s::@7 to mulu16_sel [phi:sin16s::@7->mulu16_sel] mulu16_sel_from___b7: @@ -3510,13 +3511,13 @@ sin16s: { __b8: // [79] sin16s::x3#0 = mulu16_sel::return#1 // [80] mulu16_sel::v1#2 = sin16s::x3#0 - // [81] call mulu16_sel + // [81] call mulu16_sel // u[2.14] x^3 // [135] phi from sin16s::@8 to mulu16_sel [phi:sin16s::@8->mulu16_sel] mulu16_sel_from___b8: // [135] phi mulu16_sel::select#5 = 1 [phi:sin16s::@8->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - // [135] phi mulu16_sel::v2#5 = (word)$10000/6 [phi:sin16s::@8->mulu16_sel#1] -- vwuz1=vwuc1 + // [135] phi mulu16_sel::v2#5 = (unsigned int)$10000/6 [phi:sin16s::@8->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta.z mulu16_sel.v2 lda #>$10000/6 @@ -3543,7 +3544,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [87] call mulu16_sel + // [87] call mulu16_sel // u[1.15] x - x^3/6 // [135] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] mulu16_sel_from___b9: @@ -3567,7 +3568,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [92] call mulu16_sel + // [92] call mulu16_sel // u[3.13] x^4 // [135] phi from sin16s::@10 to mulu16_sel [phi:sin16s::@10->mulu16_sel] mulu16_sel_from___b10: @@ -3605,7 +3606,7 @@ sin16s: { jmp __b6 // sin16s::@6 __b6: - // [98] sin16s::sinx#1 = - (signed word)sin16s::usinx#1 -- vwsz1=_neg_vwsz1 + // [98] sin16s::sinx#1 = - (int)sin16s::usinx#1 -- vwsz1=_neg_vwsz1 lda #0 sec sbc.z sinx @@ -3627,11 +3628,12 @@ sin16s: { rts // sin16s::@12 __b12: - // [101] sin16s::return#5 = (signed word)sin16s::usinx#1 + // [101] sin16s::return#5 = (int)sin16s::usinx#1 jmp __b3_from___b12 } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3640,7 +3642,7 @@ memset: { .label dst = $10 // [103] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [103] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [103] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3678,7 +3680,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [109] *print_char_cursor#36 = print_char::ch#5 -- _deref_pbuz1=vbuaa ldy #0 @@ -3696,12 +3698,12 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // [112] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [113] call print_uchar + // [113] call print_uchar // [144] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [144] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy @@ -3711,7 +3713,7 @@ print_uint: { __b1: // [114] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [115] call print_uchar + // [115] call print_uchar // [144] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [144] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -3727,7 +3729,7 @@ print_uint: { // Returns the quotient dividend/divisor. // The final remainder will be set into the global variable rem16u // Implemented using simple binary division -// divr16u(word zp($22) dividend, word zp($12) rem) +// __zp($14) unsigned int divr16u(__zp($22) unsigned int dividend, unsigned int divisor, __zp($12) unsigned int rem) divr16u: { .label rem = $12 .label dividend = $22 @@ -3835,7 +3837,7 @@ divr16u: { // mulu16_sel // Calculate val*val for two unsigned int values - the result is 16 selected bits of the 32-bit result. // The select parameter indicates how many of the highest bits of the 32-bit result to skip -// mulu16_sel(word zp($12) v1, word zp($14) v2, byte register(X) select) +// __zp($24) unsigned int mulu16_sel(__zp($12) unsigned int v1, __zp($14) unsigned int v2, __register(X) char select) mulu16_sel: { .label __0 = $1e .label __1 = $1e @@ -3849,7 +3851,7 @@ mulu16_sel: { lda.z v1+1 sta.z mul16u.a+1 // [137] mul16u::b#0 = mulu16_sel::v2#5 - // [138] call mul16u + // [138] call mul16u jsr mul16u // [139] mul16u::return#0 = mul16u::res#2 jmp __b1 @@ -3880,7 +3882,7 @@ mulu16_sel: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [145] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -3891,7 +3893,7 @@ print_uchar: { // [146] print_char::ch#3 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [147] call print_char + // [147] call print_char // Table of hexadecimal digits // [108] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -3906,7 +3908,7 @@ print_uchar: { axs #0 // [149] print_char::ch#4 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [150] call print_char + // [150] call print_char // [108] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [108] phi print_char_cursor#36 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -3920,14 +3922,14 @@ print_uchar: { } // mul16u // Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// mul16u(word zp($24) a, word zp($14) b) +// __zp($1e) unsigned long mul16u(__zp($24) unsigned int a, __zp($14) unsigned int b) mul16u: { .label a = $24 .label b = $14 .label return = $1e .label mb = $16 .label res = $1e - // [152] mul16u::mb#0 = (dword)mul16u::b#0 -- vduz1=_dword_vwuz2 + // [152] mul16u::mb#0 = (unsigned long)mul16u::b#0 -- vduz1=_dword_vwuz2 lda.z b sta.z mb lda.z b+1 @@ -4199,206 +4201,206 @@ Removing unreachable instruction rts Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -constant const dword PI2_u4f28 = $6487ed51 -constant const dword PI_HALF_u4f28 = $1921fb54 -constant const dword PI_u4f28 = $3243f6a9 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_SIGNED_WORD = 2 -dword div32u16u(dword div32u16u::dividend , word div32u16u::divisor) -dword div32u16u::dividend -word div32u16u::divisor -dword div32u16u::quotient -word div32u16u::quotient_hi -word div32u16u::quotient_hi#0 quotient_hi zp[2]:36 40.4 -word div32u16u::quotient_lo -word div32u16u::quotient_lo#0 quotient_lo zp[2]:20 202.0 -dword div32u16u::return -dword div32u16u::return#0 return zp[4]:26 22.0 -dword div32u16u::return#1 return zp[4]:26 37.33333333333333 -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -byte~ divr16u::$1 reg byte a 20002.0 -byte~ divr16u::$2 reg byte a 20002.0 -word divr16u::dividend -word divr16u::dividend#0 dividend zp[2]:34 2500.25 -word divr16u::dividend#3 dividend zp[2]:34 4429.142857142857 -word divr16u::dividend#5 dividend zp[2]:34 1001.0 -word divr16u::divisor -byte divr16u::i -byte divr16u::i#1 reg byte x 15001.5 -byte divr16u::i#2 reg byte x 1538.6153846153845 -word divr16u::quotient -word divr16u::quotient#1 quotient zp[2]:20 15001.5 -word divr16u::quotient#2 quotient zp[2]:20 10001.0 -word divr16u::quotient#3 quotient zp[2]:20 2500.25 -word divr16u::rem -word divr16u::rem#0 rem zp[2]:18 7500.75 -word divr16u::rem#1 rem zp[2]:18 20002.0 -word divr16u::rem#10 rem zp[2]:18 1102.0 -word divr16u::rem#11 rem zp[2]:18 10334.666666666666 -word divr16u::rem#2 rem zp[2]:18 20002.0 -word divr16u::rem#4 rem zp[2]:18 202.0 -word divr16u::rem#5 rem zp[2]:18 21003.0 -word divr16u::rem#6 rem zp[2]:18 10001.0 -word divr16u::return -word divr16u::return#0 return zp[2]:20 4315.0 -word divr16u::return#2 return zp[2]:20 202.0 -word divr16u::return#3 return zp[2]:20 202.0 +__constant const unsigned long PI2_u4f28 = $6487ed51 +__constant const unsigned long PI_HALF_u4f28 = $1921fb54 +__constant const unsigned long PI_u4f28 = $3243f6a9 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_INT = 2 +unsigned long div32u16u(unsigned long dividend , unsigned int divisor) +unsigned long div32u16u::dividend +unsigned int div32u16u::divisor +unsigned long div32u16u::quotient +unsigned int div32u16u::quotient_hi +unsigned int div32u16u::quotient_hi#0 // quotient_hi zp[2]:36 40.4 +unsigned int div32u16u::quotient_lo +unsigned int div32u16u::quotient_lo#0 // quotient_lo zp[2]:20 202.0 +unsigned long div32u16u::return +unsigned long div32u16u::return#0 // return zp[4]:26 22.0 +unsigned long div32u16u::return#1 // return zp[4]:26 37.33333333333333 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +char divr16u::$1 // reg byte a 20002.0 +char divr16u::$2 // reg byte a 20002.0 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 // dividend zp[2]:34 2500.25 +unsigned int divr16u::dividend#3 // dividend zp[2]:34 4429.142857142857 +unsigned int divr16u::dividend#5 // dividend zp[2]:34 1001.0 +unsigned int divr16u::divisor +char divr16u::i +char divr16u::i#1 // reg byte x 15001.5 +char divr16u::i#2 // reg byte x 1538.6153846153845 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#1 // quotient zp[2]:20 15001.5 +unsigned int divr16u::quotient#2 // quotient zp[2]:20 10001.0 +unsigned int divr16u::quotient#3 // quotient zp[2]:20 2500.25 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 // rem zp[2]:18 7500.75 +unsigned int divr16u::rem#1 // rem zp[2]:18 20002.0 +unsigned int divr16u::rem#10 // rem zp[2]:18 1102.0 +unsigned int divr16u::rem#11 // rem zp[2]:18 10334.666666666666 +unsigned int divr16u::rem#2 // rem zp[2]:18 20002.0 +unsigned int divr16u::rem#4 // rem zp[2]:18 202.0 +unsigned int divr16u::rem#5 // rem zp[2]:18 21003.0 +unsigned int divr16u::rem#6 // rem zp[2]:18 10001.0 +unsigned int divr16u::return +unsigned int divr16u::return#0 // return zp[2]:20 4315.0 +unsigned int divr16u::return#2 // return zp[2]:20 202.0 +unsigned int divr16u::return#3 // return zp[2]:20 202.0 void main() -constant signed word* main::sintab1[$78] = { fill( $78, 0) } -signed word* main::st1 -signed word* main::st1#1 st1 zp[2]:2 22.0 -signed word* main::st1#2 st1 zp[2]:2 4.0 -constant byte* main::str[4] = " " -constant byte* main::str1[2] = " " -signed word main::sw -signed word main::sw#0 sw zp[2]:10 6.6000000000000005 -constant word main::wavelength = $78 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:16 2002.0 -byte* memset::dst#2 dst zp[2]:16 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -dword mul16u(word mul16u::a , word mul16u::b) -byte~ mul16u::$1 reg byte a 2.0000002E7 -word mul16u::a -word mul16u::a#0 a zp[2]:36 36667.33333333333 -word mul16u::a#1 a zp[2]:36 1.0000001E7 -word mul16u::a#2 a zp[2]:36 6683334.166666666 -word mul16u::b -word mul16u::b#0 b zp[2]:20 10001.0 -dword mul16u::mb -dword mul16u::mb#0 mb zp[4]:22 200002.0 -dword mul16u::mb#1 mb zp[4]:22 2.0000002E7 -dword mul16u::mb#2 mb zp[4]:22 4300000.571428571 -dword mul16u::res -dword mul16u::res#1 res zp[4]:30 2.0000002E7 -dword mul16u::res#2 res zp[4]:30 5001667.333333333 -dword mul16u::res#6 res zp[4]:30 1.0000001E7 -dword mul16u::return -dword mul16u::return#0 return zp[4]:30 20002.0 -word mulu16_sel(word mulu16_sel::v1 , word mulu16_sel::v2 , byte mulu16_sel::select) -dword~ mulu16_sel::$0 zp[4]:30 20002.0 -dword~ mulu16_sel::$1 zp[4]:30 20002.0 -word mulu16_sel::return -word mulu16_sel::return#0 return zp[2]:36 2002.0 -word mulu16_sel::return#1 return_1 zp[2]:18 2002.0 -word mulu16_sel::return#10 return_1 zp[2]:18 2002.0 -word mulu16_sel::return#11 return zp[2]:36 2002.0 -word mulu16_sel::return#12 return zp[2]:36 2143.714285714286 -word mulu16_sel::return#2 return zp[2]:36 2002.0 -byte mulu16_sel::select -byte mulu16_sel::select#5 reg byte x 1666.8333333333333 -word mulu16_sel::v1 -word mulu16_sel::v1#0 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#1 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#2 v1 zp[2]:18 2002.0 -word mulu16_sel::v1#3 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#4 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#5 v1 zp[2]:18 15006.0 -word mulu16_sel::v2 -word mulu16_sel::v2#0 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#1 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#3 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#4 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#5 v2 zp[2]:20 7002.5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#4 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 130004.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:34 2875.0 -byte* print_char_cursor#12 print_char_cursor zp[2]:34 5000.576923076923 -byte* print_char_cursor#20 print_char_cursor zp[2]:34 6.6000000000000005 -byte* print_char_cursor#36 print_char_cursor zp[2]:34 115103.5 -byte* print_char_cursor#54 print_char_cursor zp[2]:34 44.8 -byte* print_char_cursor#58 print_char_cursor zp[2]:34 123.0 +__constant int main::sintab1[$78] = { fill( $78, 0) } +int *main::st1 +int *main::st1#1 // st1 zp[2]:2 22.0 +int *main::st1#2 // st1 zp[2]:2 4.0 +__constant char main::str[4] = " " +__constant char main::str1[2] = " " +int main::sw +int main::sw#0 // sw zp[2]:10 6.6000000000000005 +__constant unsigned int main::wavelength = $78 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:16 2002.0 +char *memset::dst#2 // dst zp[2]:16 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +unsigned long mul16u(unsigned int a , unsigned int b) +char mul16u::$1 // reg byte a 2.0000002E7 +unsigned int mul16u::a +unsigned int mul16u::a#0 // a zp[2]:36 36667.33333333333 +unsigned int mul16u::a#1 // a zp[2]:36 1.0000001E7 +unsigned int mul16u::a#2 // a zp[2]:36 6683334.166666666 +unsigned int mul16u::b +unsigned int mul16u::b#0 // b zp[2]:20 10001.0 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 // mb zp[4]:22 200002.0 +unsigned long mul16u::mb#1 // mb zp[4]:22 2.0000002E7 +unsigned long mul16u::mb#2 // mb zp[4]:22 4300000.571428571 +unsigned long mul16u::res +unsigned long mul16u::res#1 // res zp[4]:30 2.0000002E7 +unsigned long mul16u::res#2 // res zp[4]:30 5001667.333333333 +unsigned long mul16u::res#6 // res zp[4]:30 1.0000001E7 +unsigned long mul16u::return +unsigned long mul16u::return#0 // return zp[4]:30 20002.0 +unsigned int mulu16_sel(unsigned int v1 , unsigned int v2 , char select) +unsigned long mulu16_sel::$0 // zp[4]:30 20002.0 +unsigned long mulu16_sel::$1 // zp[4]:30 20002.0 +unsigned int mulu16_sel::return +unsigned int mulu16_sel::return#0 // return zp[2]:36 2002.0 +unsigned int mulu16_sel::return#1 // return_1 zp[2]:18 2002.0 +unsigned int mulu16_sel::return#10 // return_1 zp[2]:18 2002.0 +unsigned int mulu16_sel::return#11 // return zp[2]:36 2002.0 +unsigned int mulu16_sel::return#12 // return zp[2]:36 2143.714285714286 +unsigned int mulu16_sel::return#2 // return zp[2]:36 2002.0 +char mulu16_sel::select +char mulu16_sel::select#5 // reg byte x 1666.8333333333333 +unsigned int mulu16_sel::v1 +unsigned int mulu16_sel::v1#0 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#1 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#2 // v1 zp[2]:18 2002.0 +unsigned int mulu16_sel::v1#3 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#4 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#5 // v1 zp[2]:18 15006.0 +unsigned int mulu16_sel::v2 +unsigned int mulu16_sel::v2#0 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#1 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#3 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#4 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#5 // v2 zp[2]:20 7002.5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#4 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 130004.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:34 2875.0 +char *print_char_cursor#12 // print_char_cursor zp[2]:34 5000.576923076923 +char *print_char_cursor#20 // print_char_cursor zp[2]:34 6.6000000000000005 +char *print_char_cursor#36 // print_char_cursor zp[2]:34 115103.5 +char *print_char_cursor#54 // print_char_cursor zp[2]:34 44.8 +char *print_char_cursor#58 // print_char_cursor zp[2]:34 123.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:10 202.0 -signed word print_sint::w#1 w zp[2]:10 52.33333333333333 -signed word print_sint::w#4 w zp[2]:10 202.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:8 20002.0 -byte* print_str::str#3 str zp[2]:8 10026.25 -byte* print_str::str#6 str zp[2]:8 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 701.0 -word rem16u -word rem16u#14 rem16u zp[2]:18 220.39999999999998 -signed word sin16s(dword sin16s::x) -dword~ sin16s::$4 zp[4]:30 2002.0 -byte sin16s::isUpper -byte sin16s::isUpper#2 reg byte y 30.333333333333332 -signed word sin16s::return -signed word sin16s::return#0 return zp[2]:16 202.0 -signed word sin16s::return#1 return zp[2]:16 701.0 -signed word sin16s::return#5 return zp[2]:16 2002.0 -signed word sin16s::sinx -signed word sin16s::sinx#1 sinx zp[2]:16 2002.0 -word sin16s::usinx -word sin16s::usinx#0 usinx zp[2]:16 166.83333333333334 -word sin16s::usinx#1 usinx zp[2]:16 500.5 -dword sin16s::x -dword sin16s::x#0 x zp[4]:12 1552.0 -dword sin16s::x#1 x zp[4]:12 2002.0 -dword sin16s::x#2 x zp[4]:12 2002.0 -dword sin16s::x#4 x zp[4]:12 2502.5 -dword sin16s::x#6 x zp[4]:12 3003.0 -word sin16s::x1 -word sin16s::x1#0 x1 zp[2]:34 318.5 -word sin16s::x2 -word sin16s::x2#0 x2 zp[2]:18 2002.0 -word sin16s::x3 -word sin16s::x3#0 x3 zp[2]:18 500.5 -word sin16s::x3_6 -word sin16s::x3_6#0 x3_6 zp[2]:36 2002.0 -word sin16s::x4 -word sin16s::x4#0 x4 zp[2]:18 2002.0 -word sin16s::x5 -word sin16s::x5#0 x5 zp[2]:36 2002.0 -word sin16s::x5_128 -word sin16s::x5_128#0 x5_128 zp[2]:36 2002.0 -void sin16s_gen(signed word* sin16s_gen::sintab , word sin16s_gen::wavelength) -signed word~ sin16s_gen::$2 zp[2]:16 202.0 -word sin16s_gen::i -word sin16s_gen::i#1 i zp[2]:8 202.0 -word sin16s_gen::i#2 i zp[2]:8 33.666666666666664 -signed word* sin16s_gen::sintab -signed word* sin16s_gen::sintab#0 sintab zp[2]:10 67.33333333333333 -signed word* sin16s_gen::sintab#2 sintab zp[2]:10 43.285714285714285 -dword sin16s_gen::step -dword sin16s_gen::step#0 step zp[4]:26 10.181818181818182 -word sin16s_gen::wavelength -dword sin16s_gen::x -dword sin16s_gen::x#1 x zp[4]:4 101.0 -dword sin16s_gen::x#2 x zp[4]:4 37.875 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:10 202.0 +int print_sint::w#1 // w zp[2]:10 52.33333333333333 +int print_sint::w#4 // w zp[2]:10 202.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:8 20002.0 +char *print_str::str#3 // str zp[2]:8 10026.25 +char *print_str::str#6 // str zp[2]:8 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 701.0 +unsigned int rem16u +unsigned int rem16u#14 // rem16u zp[2]:18 220.39999999999998 +int sin16s(unsigned long x) +unsigned long sin16s::$4 // zp[4]:30 2002.0 +char sin16s::isUpper +char sin16s::isUpper#2 // reg byte y 30.333333333333332 +int sin16s::return +int sin16s::return#0 // return zp[2]:16 202.0 +int sin16s::return#1 // return zp[2]:16 701.0 +int sin16s::return#5 // return zp[2]:16 2002.0 +int sin16s::sinx +int sin16s::sinx#1 // sinx zp[2]:16 2002.0 +unsigned int sin16s::usinx +unsigned int sin16s::usinx#0 // usinx zp[2]:16 166.83333333333334 +unsigned int sin16s::usinx#1 // usinx zp[2]:16 500.5 +unsigned long sin16s::x +unsigned long sin16s::x#0 // x zp[4]:12 1552.0 +unsigned long sin16s::x#1 // x zp[4]:12 2002.0 +unsigned long sin16s::x#2 // x zp[4]:12 2002.0 +unsigned long sin16s::x#4 // x zp[4]:12 2502.5 +unsigned long sin16s::x#6 // x zp[4]:12 3003.0 +unsigned int sin16s::x1 +unsigned int sin16s::x1#0 // x1 zp[2]:34 318.5 +unsigned int sin16s::x2 +unsigned int sin16s::x2#0 // x2 zp[2]:18 2002.0 +unsigned int sin16s::x3 +unsigned int sin16s::x3#0 // x3 zp[2]:18 500.5 +unsigned int sin16s::x3_6 +unsigned int sin16s::x3_6#0 // x3_6 zp[2]:36 2002.0 +unsigned int sin16s::x4 +unsigned int sin16s::x4#0 // x4 zp[2]:18 2002.0 +unsigned int sin16s::x5 +unsigned int sin16s::x5#0 // x5 zp[2]:36 2002.0 +unsigned int sin16s::x5_128 +unsigned int sin16s::x5_128#0 // x5_128 zp[2]:36 2002.0 +void sin16s_gen(int *sintab , unsigned int wavelength) +int sin16s_gen::$2 // zp[2]:16 202.0 +unsigned int sin16s_gen::i +unsigned int sin16s_gen::i#1 // i zp[2]:8 202.0 +unsigned int sin16s_gen::i#2 // i zp[2]:8 33.666666666666664 +int *sin16s_gen::sintab +int *sin16s_gen::sintab#0 // sintab zp[2]:10 67.33333333333333 +int *sin16s_gen::sintab#2 // sintab zp[2]:10 43.285714285714285 +unsigned long sin16s_gen::step +unsigned long sin16s_gen::step#0 // step zp[4]:26 10.181818181818182 +unsigned int sin16s_gen::wavelength +unsigned long sin16s_gen::x +unsigned long sin16s_gen::x#1 // x zp[4]:4 101.0 +unsigned long sin16s_gen::x#2 // x zp[4]:4 37.875 zp[2]:2 [ main::st1#2 main::st1#1 ] zp[4]:4 [ sin16s_gen::x#2 sin16s_gen::x#1 ] @@ -4453,7 +4455,7 @@ Score: 19169 .const PI_u4f28 = $3243f6a9 // PI/2 in u[4.28] format .const PI_HALF_u4f28 = $1921fb54 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .label print_screen = $400 .label print_char_cursor = $22 // Remainder after unsigned 16-bit division @@ -4465,13 +4467,13 @@ main: { .label sw = $a .label st1 = 2 // sin16s_gen(sintab1, wavelength) - // [1] call sin16s_gen + // [1] call sin16s_gen // [17] phi from main to sin16s_gen [phi:main->sin16s_gen] jsr sin16s_gen // [2] phi from main to main::@5 [phi:main->main::@5] // main::@5 // print_cls() - // [3] call print_cls + // [3] call print_cls // [32] phi from main::@5 to print_cls [phi:main::@5->print_cls] jsr print_cls // [4] phi from main::@5 to main::@1 [phi:main::@5->main::@1] @@ -4488,13 +4490,13 @@ main: { // main::@1 __b1: // for(signed word* st1 = sintab1; st1sintab1+wavelength*SIZEOF_SIGNED_WORD + cmp #>sintab1+wavelength*SIZEOF_INT bcc __b2 bne !+ lda.z st1 - cmp #main::@4] // main::@4 // print_str(" ") - // [10] call print_str + // [10] call print_str // [35] phi from main::@4 to print_str [phi:main::@4->print_str] // [35] phi print_char_cursor#58 = print_char_cursor#20 [phi:main::@4->print_str#0] -- register_copy // [35] phi print_str::str#6 = main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1 @@ -4532,12 +4534,12 @@ main: { __b3: // print_sint(sw) // [12] print_sint::w#1 = main::sw#0 - // [13] call print_sint + // [13] call print_sint jsr print_sint // [14] phi from main::@3 to main::@6 [phi:main::@3->main::@6] // main::@6 // print_str(" ") - // [15] call print_str + // [15] call print_str // [35] phi from main::@6 to print_str [phi:main::@6->print_str] // [35] phi print_char_cursor#58 = print_char_cursor#12 [phi:main::@6->print_str#0] -- register_copy // [35] phi print_str::str#6 = main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1 @@ -4548,8 +4550,8 @@ main: { jsr print_str // main::@7 // for(signed word* st1 = sintab1; st1div32u16u] jsr div32u16u @@ -4637,7 +4639,7 @@ sin16s_gen: { sta.z sin16s.x+2 lda.z x+3 sta.z sin16s.x+3 - // [25] call sin16s + // [25] call sin16s jsr sin16s // [26] sin16s::return#0 = sin16s::return#1 // sin16s_gen::@4 @@ -4651,8 +4653,8 @@ sin16s_gen: { lda.z __2+1 sta (sintab),y // *sintab++ = sin16s(x); - // [29] sin16s_gen::sintab#0 = sin16s_gen::sintab#2 + SIZEOF_SIGNED_WORD -- pwsz1=pwsz1_plus_vbuc1 - lda #SIZEOF_SIGNED_WORD + // [29] sin16s_gen::sintab#0 = sin16s_gen::sintab#2 + SIZEOF_INT -- pwsz1=pwsz1_plus_vbuc1 + lda #SIZEOF_INT clc adc.z sintab sta.z sintab @@ -4690,7 +4692,7 @@ sin16s_gen: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [33] call memset + // [33] call memset // [102] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -4700,7 +4702,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(8) str) +// void print_str(__zp(8) char *str) print_str: { .label str = 8 // [36] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -4724,7 +4726,7 @@ print_str: { // [39] print_char::ch#0 = *print_str::str#3 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [40] call print_char + // [40] call print_char // [108] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [108] phi print_char_cursor#36 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy // [108] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -4740,7 +4742,7 @@ print_str: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp($a) w) +// void print_sint(__zp($a) int w) print_sint: { .label w = $a // if(w<0) @@ -4750,7 +4752,7 @@ print_sint: { // [43] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3] // print_sint::@3 // print_char(' ') - // [44] call print_char + // [44] call print_char // [108] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] // [108] phi print_char_cursor#36 = print_char_cursor#54 [phi:print_sint::@3->print_char#0] -- register_copy // [108] phi print_char::ch#5 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 @@ -4761,8 +4763,8 @@ print_sint: { // print_sint::@2 __b2: // print_uint((unsigned int)w) - // [46] print_uint::w#0 = (word)print_sint::w#4 - // [47] call print_uint + // [46] print_uint::w#0 = (unsigned int)print_sint::w#4 + // [47] call print_uint jsr print_uint // print_sint::@return // } @@ -4772,7 +4774,7 @@ print_sint: { // print_sint::@1 __b1: // print_char('-') - // [50] call print_char + // [50] call print_char // [108] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] // [108] phi print_char_cursor#36 = print_char_cursor#54 [phi:print_sint::@1->print_char#0] -- register_copy // [108] phi print_char::ch#5 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 @@ -4793,12 +4795,13 @@ print_sint: { // div32u16u // Divide unsigned 32-bit unsigned long dividend with a 16-bit unsigned int divisor // The 16-bit unsigned int remainder can be found in rem16u after the division +// __zp($1a) unsigned long div32u16u(unsigned long dividend, unsigned int divisor) div32u16u: { .label return = $1a .label quotient_hi = $24 .label quotient_lo = $14 // unsigned int quotient_hi = divr16u(WORD1(dividend), divisor, 0) - // [53] call divr16u + // [53] call divr16u // [117] phi from div32u16u to divr16u [phi:div32u16u->divr16u] // [117] phi divr16u::dividend#5 = word1 PI2_u4f28 [phi:div32u16u->divr16u#0] -- vwuz1=vwuc1 lda #>$10 @@ -4820,7 +4823,7 @@ div32u16u: { sta.z quotient_hi+1 // unsigned int quotient_lo = divr16u(WORD0(dividend), divisor, rem16u) // [56] divr16u::rem#4 = rem16u#14 - // [57] call divr16u + // [57] call divr16u // [117] phi from div32u16u::@1 to divr16u [phi:div32u16u::@1->divr16u] // [117] phi divr16u::dividend#5 = word0 PI2_u4f28 [phi:div32u16u::@1->divr16u#0] -- vwuz1=vwuc1 lda #mulu16_sel] // [135] phi mulu16_sel::select#5 = 0 [phi:sin16s::@2->mulu16_sel#0] -- vbuxx=vbuc1 @@ -5013,7 +5016,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [77] call mulu16_sel + // [77] call mulu16_sel // u[2.14] x^2 // [135] phi from sin16s::@7 to mulu16_sel [phi:sin16s::@7->mulu16_sel] // [135] phi mulu16_sel::select#5 = 1 [phi:sin16s::@7->mulu16_sel#0] -- vbuxx=vbuc1 @@ -5031,12 +5034,12 @@ sin16s: { // [79] sin16s::x3#0 = mulu16_sel::return#1 // unsigned int x3_6 = mulu16_sel(x3, $10000/6, 1) // [80] mulu16_sel::v1#2 = sin16s::x3#0 - // [81] call mulu16_sel + // [81] call mulu16_sel // u[2.14] x^3 // [135] phi from sin16s::@8 to mulu16_sel [phi:sin16s::@8->mulu16_sel] // [135] phi mulu16_sel::select#5 = 1 [phi:sin16s::@8->mulu16_sel#0] -- vbuxx=vbuc1 ldx #1 - // [135] phi mulu16_sel::v2#5 = (word)$10000/6 [phi:sin16s::@8->mulu16_sel#1] -- vwuz1=vwuc1 + // [135] phi mulu16_sel::v2#5 = (unsigned int)$10000/6 [phi:sin16s::@8->mulu16_sel#1] -- vwuz1=vwuc1 lda #<$10000/6 sta.z mulu16_sel.v2 lda #>$10000/6 @@ -5064,7 +5067,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [87] call mulu16_sel + // [87] call mulu16_sel // u[1.15] x - x^3/6 // [135] phi from sin16s::@9 to mulu16_sel [phi:sin16s::@9->mulu16_sel] // [135] phi mulu16_sel::select#5 = 0 [phi:sin16s::@9->mulu16_sel#0] -- vbuxx=vbuc1 @@ -5087,7 +5090,7 @@ sin16s: { sta.z mulu16_sel.v2 lda.z x1+1 sta.z mulu16_sel.v2+1 - // [92] call mulu16_sel + // [92] call mulu16_sel // u[3.13] x^4 // [135] phi from sin16s::@10 to mulu16_sel [phi:sin16s::@10->mulu16_sel] // [135] phi mulu16_sel::select#5 = 0 [phi:sin16s::@10->mulu16_sel#0] -- vbuxx=vbuc1 @@ -5125,7 +5128,7 @@ sin16s: { beq __b3 // sin16s::@6 // sinx = -(signed int)usinx - // [98] sin16s::sinx#1 = - (signed word)sin16s::usinx#1 -- vwsz1=_neg_vwsz1 + // [98] sin16s::sinx#1 = - (int)sin16s::usinx#1 -- vwsz1=_neg_vwsz1 lda #0 sec sbc.z sinx @@ -5142,10 +5145,11 @@ sin16s: { // [100] return rts // sin16s::@12 - // [101] sin16s::return#5 = (signed word)sin16s::usinx#1 + // [101] sin16s::return#5 = (int)sin16s::usinx#1 } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -5153,7 +5157,7 @@ memset: { .label end = str+num .label dst = $10 // [103] phi from memset to memset::@1 [phi:memset->memset::@1] - // [103] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [103] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -5191,7 +5195,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [109] *print_char_cursor#36 = print_char::ch#5 -- _deref_pbuz1=vbuaa @@ -5210,13 +5214,13 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) // [112] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [113] call print_uchar + // [113] call print_uchar // [144] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [144] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy jsr print_uchar @@ -5224,7 +5228,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [114] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [115] call print_uchar + // [115] call print_uchar // [144] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [144] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy jsr print_uchar @@ -5238,7 +5242,7 @@ print_uint: { // Returns the quotient dividend/divisor. // The final remainder will be set into the global variable rem16u // Implemented using simple binary division -// divr16u(word zp($22) dividend, word zp($12) rem) +// __zp($14) unsigned int divr16u(__zp($22) unsigned int dividend, unsigned int divisor, __zp($12) unsigned int rem) divr16u: { .label rem = $12 .label dividend = $22 @@ -5340,7 +5344,7 @@ divr16u: { // mulu16_sel // Calculate val*val for two unsigned int values - the result is 16 selected bits of the 32-bit result. // The select parameter indicates how many of the highest bits of the 32-bit result to skip -// mulu16_sel(word zp($12) v1, word zp($14) v2, byte register(X) select) +// __zp($24) unsigned int mulu16_sel(__zp($12) unsigned int v1, __zp($14) unsigned int v2, __register(X) char select) mulu16_sel: { .label __0 = $1e .label __1 = $1e @@ -5355,7 +5359,7 @@ mulu16_sel: { lda.z v1+1 sta.z mul16u.a+1 // [137] mul16u::b#0 = mulu16_sel::v2#5 - // [138] call mul16u + // [138] call mul16u jsr mul16u // [139] mul16u::return#0 = mul16u::res#2 // mulu16_sel::@1 @@ -5385,7 +5389,7 @@ mulu16_sel: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [145] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -5398,7 +5402,7 @@ print_uchar: { // [146] print_char::ch#3 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [147] call print_char + // [147] call print_char // Table of hexadecimal digits // [108] phi from print_uchar to print_char [phi:print_uchar->print_char] // [108] phi print_char_cursor#36 = print_char_cursor#12 [phi:print_uchar->print_char#0] -- register_copy @@ -5412,7 +5416,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [149] print_char::ch#4 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [150] call print_char + // [150] call print_char // [108] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [108] phi print_char_cursor#36 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy // [108] phi print_char::ch#5 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -5424,7 +5428,7 @@ print_uchar: { } // mul16u // Perform binary multiplication of two unsigned 16-bit unsigned ints into a 32-bit unsigned long -// mul16u(word zp($24) a, word zp($14) b) +// __zp($1e) unsigned long mul16u(__zp($24) unsigned int a, __zp($14) unsigned int b) mul16u: { .label a = $24 .label b = $14 @@ -5432,7 +5436,7 @@ mul16u: { .label mb = $16 .label res = $1e // unsigned long mb = b - // [152] mul16u::mb#0 = (dword)mul16u::b#0 -- vduz1=_dword_vwuz2 + // [152] mul16u::mb#0 = (unsigned long)mul16u::b#0 -- vduz1=_dword_vwuz2 lda.z b sta.z mb lda.z b+1 diff --git a/src/test/ref/sinusgen16.sym b/src/test/ref/sinusgen16.sym index fcb6cf9c2..f50d845c5 100644 --- a/src/test/ref/sinusgen16.sym +++ b/src/test/ref/sinusgen16.sym @@ -1,203 +1,203 @@ -constant const dword PI2_u4f28 = $6487ed51 -constant const dword PI_HALF_u4f28 = $1921fb54 -constant const dword PI_u4f28 = $3243f6a9 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_SIGNED_WORD = 2 -dword div32u16u(dword div32u16u::dividend , word div32u16u::divisor) -dword div32u16u::dividend -word div32u16u::divisor -dword div32u16u::quotient -word div32u16u::quotient_hi -word div32u16u::quotient_hi#0 quotient_hi zp[2]:36 40.4 -word div32u16u::quotient_lo -word div32u16u::quotient_lo#0 quotient_lo zp[2]:20 202.0 -dword div32u16u::return -dword div32u16u::return#0 return zp[4]:26 22.0 -dword div32u16u::return#1 return zp[4]:26 37.33333333333333 -word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) -byte~ divr16u::$1 reg byte a 20002.0 -byte~ divr16u::$2 reg byte a 20002.0 -word divr16u::dividend -word divr16u::dividend#0 dividend zp[2]:34 2500.25 -word divr16u::dividend#3 dividend zp[2]:34 4429.142857142857 -word divr16u::dividend#5 dividend zp[2]:34 1001.0 -word divr16u::divisor -byte divr16u::i -byte divr16u::i#1 reg byte x 15001.5 -byte divr16u::i#2 reg byte x 1538.6153846153845 -word divr16u::quotient -word divr16u::quotient#1 quotient zp[2]:20 15001.5 -word divr16u::quotient#2 quotient zp[2]:20 10001.0 -word divr16u::quotient#3 quotient zp[2]:20 2500.25 -word divr16u::rem -word divr16u::rem#0 rem zp[2]:18 7500.75 -word divr16u::rem#1 rem zp[2]:18 20002.0 -word divr16u::rem#10 rem zp[2]:18 1102.0 -word divr16u::rem#11 rem zp[2]:18 10334.666666666666 -word divr16u::rem#2 rem zp[2]:18 20002.0 -word divr16u::rem#4 rem zp[2]:18 202.0 -word divr16u::rem#5 rem zp[2]:18 21003.0 -word divr16u::rem#6 rem zp[2]:18 10001.0 -word divr16u::return -word divr16u::return#0 return zp[2]:20 4315.0 -word divr16u::return#2 return zp[2]:20 202.0 -word divr16u::return#3 return zp[2]:20 202.0 +__constant const unsigned long PI2_u4f28 = $6487ed51 +__constant const unsigned long PI_HALF_u4f28 = $1921fb54 +__constant const unsigned long PI_u4f28 = $3243f6a9 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_INT = 2 +unsigned long div32u16u(unsigned long dividend , unsigned int divisor) +unsigned long div32u16u::dividend +unsigned int div32u16u::divisor +unsigned long div32u16u::quotient +unsigned int div32u16u::quotient_hi +unsigned int div32u16u::quotient_hi#0 // quotient_hi zp[2]:36 40.4 +unsigned int div32u16u::quotient_lo +unsigned int div32u16u::quotient_lo#0 // quotient_lo zp[2]:20 202.0 +unsigned long div32u16u::return +unsigned long div32u16u::return#0 // return zp[4]:26 22.0 +unsigned long div32u16u::return#1 // return zp[4]:26 37.33333333333333 +unsigned int divr16u(unsigned int dividend , unsigned int divisor , unsigned int rem) +char divr16u::$1 // reg byte a 20002.0 +char divr16u::$2 // reg byte a 20002.0 +unsigned int divr16u::dividend +unsigned int divr16u::dividend#0 // dividend zp[2]:34 2500.25 +unsigned int divr16u::dividend#3 // dividend zp[2]:34 4429.142857142857 +unsigned int divr16u::dividend#5 // dividend zp[2]:34 1001.0 +unsigned int divr16u::divisor +char divr16u::i +char divr16u::i#1 // reg byte x 15001.5 +char divr16u::i#2 // reg byte x 1538.6153846153845 +unsigned int divr16u::quotient +unsigned int divr16u::quotient#1 // quotient zp[2]:20 15001.5 +unsigned int divr16u::quotient#2 // quotient zp[2]:20 10001.0 +unsigned int divr16u::quotient#3 // quotient zp[2]:20 2500.25 +unsigned int divr16u::rem +unsigned int divr16u::rem#0 // rem zp[2]:18 7500.75 +unsigned int divr16u::rem#1 // rem zp[2]:18 20002.0 +unsigned int divr16u::rem#10 // rem zp[2]:18 1102.0 +unsigned int divr16u::rem#11 // rem zp[2]:18 10334.666666666666 +unsigned int divr16u::rem#2 // rem zp[2]:18 20002.0 +unsigned int divr16u::rem#4 // rem zp[2]:18 202.0 +unsigned int divr16u::rem#5 // rem zp[2]:18 21003.0 +unsigned int divr16u::rem#6 // rem zp[2]:18 10001.0 +unsigned int divr16u::return +unsigned int divr16u::return#0 // return zp[2]:20 4315.0 +unsigned int divr16u::return#2 // return zp[2]:20 202.0 +unsigned int divr16u::return#3 // return zp[2]:20 202.0 void main() -constant signed word* main::sintab1[$78] = { fill( $78, 0) } -signed word* main::st1 -signed word* main::st1#1 st1 zp[2]:2 22.0 -signed word* main::st1#2 st1 zp[2]:2 4.0 -constant byte* main::str[4] = " " -constant byte* main::str1[2] = " " -signed word main::sw -signed word main::sw#0 sw zp[2]:10 6.6000000000000005 -constant word main::wavelength = $78 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:16 2002.0 -byte* memset::dst#2 dst zp[2]:16 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -dword mul16u(word mul16u::a , word mul16u::b) -byte~ mul16u::$1 reg byte a 2.0000002E7 -word mul16u::a -word mul16u::a#0 a zp[2]:36 36667.33333333333 -word mul16u::a#1 a zp[2]:36 1.0000001E7 -word mul16u::a#2 a zp[2]:36 6683334.166666666 -word mul16u::b -word mul16u::b#0 b zp[2]:20 10001.0 -dword mul16u::mb -dword mul16u::mb#0 mb zp[4]:22 200002.0 -dword mul16u::mb#1 mb zp[4]:22 2.0000002E7 -dword mul16u::mb#2 mb zp[4]:22 4300000.571428571 -dword mul16u::res -dword mul16u::res#1 res zp[4]:30 2.0000002E7 -dword mul16u::res#2 res zp[4]:30 5001667.333333333 -dword mul16u::res#6 res zp[4]:30 1.0000001E7 -dword mul16u::return -dword mul16u::return#0 return zp[4]:30 20002.0 -word mulu16_sel(word mulu16_sel::v1 , word mulu16_sel::v2 , byte mulu16_sel::select) -dword~ mulu16_sel::$0 zp[4]:30 20002.0 -dword~ mulu16_sel::$1 zp[4]:30 20002.0 -word mulu16_sel::return -word mulu16_sel::return#0 return zp[2]:36 2002.0 -word mulu16_sel::return#1 return_1 zp[2]:18 2002.0 -word mulu16_sel::return#10 return_1 zp[2]:18 2002.0 -word mulu16_sel::return#11 return zp[2]:36 2002.0 -word mulu16_sel::return#12 return zp[2]:36 2143.714285714286 -word mulu16_sel::return#2 return zp[2]:36 2002.0 -byte mulu16_sel::select -byte mulu16_sel::select#5 reg byte x 1666.8333333333333 -word mulu16_sel::v1 -word mulu16_sel::v1#0 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#1 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#2 v1 zp[2]:18 2002.0 -word mulu16_sel::v1#3 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#4 v1 zp[2]:18 1001.0 -word mulu16_sel::v1#5 v1 zp[2]:18 15006.0 -word mulu16_sel::v2 -word mulu16_sel::v2#0 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#1 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#3 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#4 v2 zp[2]:20 2002.0 -word mulu16_sel::v2#5 v2 zp[2]:20 7002.5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#4 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 130004.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:34 2875.0 -byte* print_char_cursor#12 print_char_cursor zp[2]:34 5000.576923076923 -byte* print_char_cursor#20 print_char_cursor zp[2]:34 6.6000000000000005 -byte* print_char_cursor#36 print_char_cursor zp[2]:34 115103.5 -byte* print_char_cursor#54 print_char_cursor zp[2]:34 44.8 -byte* print_char_cursor#58 print_char_cursor zp[2]:34 123.0 +__constant int main::sintab1[$78] = { fill( $78, 0) } +int *main::st1 +int *main::st1#1 // st1 zp[2]:2 22.0 +int *main::st1#2 // st1 zp[2]:2 4.0 +__constant char main::str[4] = " " +__constant char main::str1[2] = " " +int main::sw +int main::sw#0 // sw zp[2]:10 6.6000000000000005 +__constant unsigned int main::wavelength = $78 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:16 2002.0 +char *memset::dst#2 // dst zp[2]:16 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +unsigned long mul16u(unsigned int a , unsigned int b) +char mul16u::$1 // reg byte a 2.0000002E7 +unsigned int mul16u::a +unsigned int mul16u::a#0 // a zp[2]:36 36667.33333333333 +unsigned int mul16u::a#1 // a zp[2]:36 1.0000001E7 +unsigned int mul16u::a#2 // a zp[2]:36 6683334.166666666 +unsigned int mul16u::b +unsigned int mul16u::b#0 // b zp[2]:20 10001.0 +unsigned long mul16u::mb +unsigned long mul16u::mb#0 // mb zp[4]:22 200002.0 +unsigned long mul16u::mb#1 // mb zp[4]:22 2.0000002E7 +unsigned long mul16u::mb#2 // mb zp[4]:22 4300000.571428571 +unsigned long mul16u::res +unsigned long mul16u::res#1 // res zp[4]:30 2.0000002E7 +unsigned long mul16u::res#2 // res zp[4]:30 5001667.333333333 +unsigned long mul16u::res#6 // res zp[4]:30 1.0000001E7 +unsigned long mul16u::return +unsigned long mul16u::return#0 // return zp[4]:30 20002.0 +unsigned int mulu16_sel(unsigned int v1 , unsigned int v2 , char select) +unsigned long mulu16_sel::$0 // zp[4]:30 20002.0 +unsigned long mulu16_sel::$1 // zp[4]:30 20002.0 +unsigned int mulu16_sel::return +unsigned int mulu16_sel::return#0 // return zp[2]:36 2002.0 +unsigned int mulu16_sel::return#1 // return_1 zp[2]:18 2002.0 +unsigned int mulu16_sel::return#10 // return_1 zp[2]:18 2002.0 +unsigned int mulu16_sel::return#11 // return zp[2]:36 2002.0 +unsigned int mulu16_sel::return#12 // return zp[2]:36 2143.714285714286 +unsigned int mulu16_sel::return#2 // return zp[2]:36 2002.0 +char mulu16_sel::select +char mulu16_sel::select#5 // reg byte x 1666.8333333333333 +unsigned int mulu16_sel::v1 +unsigned int mulu16_sel::v1#0 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#1 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#2 // v1 zp[2]:18 2002.0 +unsigned int mulu16_sel::v1#3 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#4 // v1 zp[2]:18 1001.0 +unsigned int mulu16_sel::v1#5 // v1 zp[2]:18 15006.0 +unsigned int mulu16_sel::v2 +unsigned int mulu16_sel::v2#0 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#1 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#3 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#4 // v2 zp[2]:20 2002.0 +unsigned int mulu16_sel::v2#5 // v2 zp[2]:20 7002.5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#4 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 130004.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:34 2875.0 +char *print_char_cursor#12 // print_char_cursor zp[2]:34 5000.576923076923 +char *print_char_cursor#20 // print_char_cursor zp[2]:34 6.6000000000000005 +char *print_char_cursor#36 // print_char_cursor zp[2]:34 115103.5 +char *print_char_cursor#54 // print_char_cursor zp[2]:34 44.8 +char *print_char_cursor#58 // print_char_cursor zp[2]:34 123.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:10 202.0 -signed word print_sint::w#1 w zp[2]:10 52.33333333333333 -signed word print_sint::w#4 w zp[2]:10 202.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:8 20002.0 -byte* print_str::str#3 str zp[2]:8 10026.25 -byte* print_str::str#6 str zp[2]:8 101.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 701.0 -word rem16u -word rem16u#14 rem16u zp[2]:18 220.39999999999998 -signed word sin16s(dword sin16s::x) -dword~ sin16s::$4 zp[4]:30 2002.0 -byte sin16s::isUpper -byte sin16s::isUpper#2 reg byte y 30.333333333333332 -signed word sin16s::return -signed word sin16s::return#0 return zp[2]:16 202.0 -signed word sin16s::return#1 return zp[2]:16 701.0 -signed word sin16s::return#5 return zp[2]:16 2002.0 -signed word sin16s::sinx -signed word sin16s::sinx#1 sinx zp[2]:16 2002.0 -word sin16s::usinx -word sin16s::usinx#0 usinx zp[2]:16 166.83333333333334 -word sin16s::usinx#1 usinx zp[2]:16 500.5 -dword sin16s::x -dword sin16s::x#0 x zp[4]:12 1552.0 -dword sin16s::x#1 x zp[4]:12 2002.0 -dword sin16s::x#2 x zp[4]:12 2002.0 -dword sin16s::x#4 x zp[4]:12 2502.5 -dword sin16s::x#6 x zp[4]:12 3003.0 -word sin16s::x1 -word sin16s::x1#0 x1 zp[2]:34 318.5 -word sin16s::x2 -word sin16s::x2#0 x2 zp[2]:18 2002.0 -word sin16s::x3 -word sin16s::x3#0 x3 zp[2]:18 500.5 -word sin16s::x3_6 -word sin16s::x3_6#0 x3_6 zp[2]:36 2002.0 -word sin16s::x4 -word sin16s::x4#0 x4 zp[2]:18 2002.0 -word sin16s::x5 -word sin16s::x5#0 x5 zp[2]:36 2002.0 -word sin16s::x5_128 -word sin16s::x5_128#0 x5_128 zp[2]:36 2002.0 -void sin16s_gen(signed word* sin16s_gen::sintab , word sin16s_gen::wavelength) -signed word~ sin16s_gen::$2 zp[2]:16 202.0 -word sin16s_gen::i -word sin16s_gen::i#1 i zp[2]:8 202.0 -word sin16s_gen::i#2 i zp[2]:8 33.666666666666664 -signed word* sin16s_gen::sintab -signed word* sin16s_gen::sintab#0 sintab zp[2]:10 67.33333333333333 -signed word* sin16s_gen::sintab#2 sintab zp[2]:10 43.285714285714285 -dword sin16s_gen::step -dword sin16s_gen::step#0 step zp[4]:26 10.181818181818182 -word sin16s_gen::wavelength -dword sin16s_gen::x -dword sin16s_gen::x#1 x zp[4]:4 101.0 -dword sin16s_gen::x#2 x zp[4]:4 37.875 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:10 202.0 +int print_sint::w#1 // w zp[2]:10 52.33333333333333 +int print_sint::w#4 // w zp[2]:10 202.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:8 20002.0 +char *print_str::str#3 // str zp[2]:8 10026.25 +char *print_str::str#6 // str zp[2]:8 101.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 701.0 +unsigned int rem16u +unsigned int rem16u#14 // rem16u zp[2]:18 220.39999999999998 +int sin16s(unsigned long x) +unsigned long sin16s::$4 // zp[4]:30 2002.0 +char sin16s::isUpper +char sin16s::isUpper#2 // reg byte y 30.333333333333332 +int sin16s::return +int sin16s::return#0 // return zp[2]:16 202.0 +int sin16s::return#1 // return zp[2]:16 701.0 +int sin16s::return#5 // return zp[2]:16 2002.0 +int sin16s::sinx +int sin16s::sinx#1 // sinx zp[2]:16 2002.0 +unsigned int sin16s::usinx +unsigned int sin16s::usinx#0 // usinx zp[2]:16 166.83333333333334 +unsigned int sin16s::usinx#1 // usinx zp[2]:16 500.5 +unsigned long sin16s::x +unsigned long sin16s::x#0 // x zp[4]:12 1552.0 +unsigned long sin16s::x#1 // x zp[4]:12 2002.0 +unsigned long sin16s::x#2 // x zp[4]:12 2002.0 +unsigned long sin16s::x#4 // x zp[4]:12 2502.5 +unsigned long sin16s::x#6 // x zp[4]:12 3003.0 +unsigned int sin16s::x1 +unsigned int sin16s::x1#0 // x1 zp[2]:34 318.5 +unsigned int sin16s::x2 +unsigned int sin16s::x2#0 // x2 zp[2]:18 2002.0 +unsigned int sin16s::x3 +unsigned int sin16s::x3#0 // x3 zp[2]:18 500.5 +unsigned int sin16s::x3_6 +unsigned int sin16s::x3_6#0 // x3_6 zp[2]:36 2002.0 +unsigned int sin16s::x4 +unsigned int sin16s::x4#0 // x4 zp[2]:18 2002.0 +unsigned int sin16s::x5 +unsigned int sin16s::x5#0 // x5 zp[2]:36 2002.0 +unsigned int sin16s::x5_128 +unsigned int sin16s::x5_128#0 // x5_128 zp[2]:36 2002.0 +void sin16s_gen(int *sintab , unsigned int wavelength) +int sin16s_gen::$2 // zp[2]:16 202.0 +unsigned int sin16s_gen::i +unsigned int sin16s_gen::i#1 // i zp[2]:8 202.0 +unsigned int sin16s_gen::i#2 // i zp[2]:8 33.666666666666664 +int *sin16s_gen::sintab +int *sin16s_gen::sintab#0 // sintab zp[2]:10 67.33333333333333 +int *sin16s_gen::sintab#2 // sintab zp[2]:10 43.285714285714285 +unsigned long sin16s_gen::step +unsigned long sin16s_gen::step#0 // step zp[4]:26 10.181818181818182 +unsigned int sin16s_gen::wavelength +unsigned long sin16s_gen::x +unsigned long sin16s_gen::x#1 // x zp[4]:4 101.0 +unsigned long sin16s_gen::x#2 // x zp[4]:4 37.875 zp[2]:2 [ main::st1#2 main::st1#1 ] zp[4]:4 [ sin16s_gen::x#2 sin16s_gen::x#1 ] diff --git a/src/test/ref/sizeof-arrays.asm b/src/test/ref/sizeof-arrays.asm index 46b0ec109..bf0b42cdc 100644 --- a/src/test/ref/sizeof-arrays.asm +++ b/src/test/ref/sizeof-arrays.asm @@ -7,29 +7,29 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 - .const SIZEOF_WORD = 2 + .const SIZEOF_CHAR = 1 + .const SIZEOF_UNSIGNED_INT = 2 .label SCREEN = $400 .segment Code main: { .const sz = 7 // SCREEN[idx++] = '0'+(char)(sizeof(ba)/sizeof(byte)) - lda #'0'+3*SIZEOF_BYTE/SIZEOF_BYTE + lda #'0'+3*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN // SCREEN[idx++] = '0'+(char)(sizeof(wa)/sizeof(word)) - lda #'0'+3*SIZEOF_WORD/SIZEOF_WORD + lda #'0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT sta SCREEN+1 // SCREEN[idx++] = '0'+(char)(sizeof(bb)/sizeof(byte)) - lda #'0'+(sz+2)*SIZEOF_BYTE/SIZEOF_BYTE + lda #'0'+(sz+2)*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+2 // SCREEN[idx++] = '0'+(char)(sizeof(wb)/sizeof(word)) - lda #'0'+4*SIZEOF_WORD/SIZEOF_WORD + lda #'0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT sta SCREEN+3 // SCREEN[idx++] = '0'+(char)(sizeof(sa)/sizeof(byte)) - lda #'0'+8*SIZEOF_BYTE/SIZEOF_BYTE + lda #'0'+8*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+4 // SCREEN[idx++] = '0'+(char)(sizeof(sb)/sizeof(byte)) - lda #'0'+4*SIZEOF_BYTE/SIZEOF_BYTE + lda #'0'+4*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+5 // } rts diff --git a/src/test/ref/sizeof-arrays.cfg b/src/test/ref/sizeof-arrays.cfg index a5185e602..d71cacf21 100644 --- a/src/test/ref/sizeof-arrays.cfg +++ b/src/test/ref/sizeof-arrays.cfg @@ -1,12 +1,12 @@ void main() main: scope:[main] from - [0] *SCREEN = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE - [1] *(SCREEN+1) = '0'+3*SIZEOF_WORD/SIZEOF_WORD - [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE - [3] *(SCREEN+3) = '0'+4*SIZEOF_WORD/SIZEOF_WORD - [4] *(SCREEN+4) = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE - [5] *(SCREEN+5) = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE + [0] *SCREEN = '0'+3*SIZEOF_CHAR/SIZEOF_CHAR + [1] *(SCREEN+1) = '0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT + [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR + [3] *(SCREEN+3) = '0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT + [4] *(SCREEN+4) = '0'+8*SIZEOF_CHAR/SIZEOF_CHAR + [5] *(SCREEN+5) = '0'+4*SIZEOF_CHAR/SIZEOF_CHAR to:main::@return main::@return: scope:[main] from main [6] return diff --git a/src/test/ref/sizeof-arrays.log b/src/test/ref/sizeof-arrays.log index d77815728..d24da7ad3 100644 --- a/src/test/ref/sizeof-arrays.log +++ b/src/test/ref/sizeof-arrays.log @@ -5,38 +5,38 @@ void main() main: scope:[main] from __start main::idx#0 = 0 main::$0 = sizeof main::ba - main::$1 = main::$0 / SIZEOF_BYTE - main::$18 = (byte)main::$1 + main::$1 = main::$0 / SIZEOF_CHAR + main::$18 = (char)main::$1 main::$2 = '0' + main::$18 SCREEN[main::idx#0] = main::$2 main::idx#1 = ++ main::idx#0 main::$3 = sizeof main::wa - main::$4 = main::$3 / SIZEOF_WORD - main::$19 = (byte)main::$4 + main::$4 = main::$3 / SIZEOF_UNSIGNED_INT + main::$19 = (char)main::$4 main::$5 = '0' + main::$19 SCREEN[main::idx#1] = main::$5 main::idx#2 = ++ main::idx#1 main::$6 = sizeof main::bb - main::$7 = main::$6 / SIZEOF_BYTE - main::$20 = (byte)main::$7 + main::$7 = main::$6 / SIZEOF_CHAR + main::$20 = (char)main::$7 main::$8 = '0' + main::$20 SCREEN[main::idx#2] = main::$8 main::idx#3 = ++ main::idx#2 main::$9 = sizeof main::wb - main::$10 = main::$9 / SIZEOF_WORD - main::$21 = (byte)main::$10 + main::$10 = main::$9 / SIZEOF_UNSIGNED_INT + main::$21 = (char)main::$10 main::$11 = '0' + main::$21 SCREEN[main::idx#3] = main::$11 main::idx#4 = ++ main::idx#3 main::$12 = sizeof main::sa - main::$13 = main::$12 / SIZEOF_BYTE - main::$22 = (byte)main::$13 + main::$13 = main::$12 / SIZEOF_CHAR + main::$22 = (char)main::$13 main::$14 = '0' + main::$22 SCREEN[main::idx#4] = main::$14 main::idx#5 = ++ main::idx#4 main::$15 = sizeof main::sb - main::$16 = main::$15 / SIZEOF_BYTE - main::$23 = (byte)main::$16 + main::$16 = main::$15 / SIZEOF_CHAR + main::$23 = (char)main::$16 main::$17 = '0' + main::$23 SCREEN[main::idx#5] = main::$17 main::idx#6 = ++ main::idx#5 @@ -47,7 +47,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -56,57 +56,57 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word~ main::$0 -word~ main::$1 -word~ main::$10 -byte~ main::$11 -word~ main::$12 -word~ main::$13 -byte~ main::$14 -word~ main::$15 -word~ main::$16 -byte~ main::$17 -byte~ main::$18 -byte~ main::$19 -byte~ main::$2 -byte~ main::$20 -byte~ main::$21 -byte~ main::$22 -byte~ main::$23 -word~ main::$3 -word~ main::$4 -byte~ main::$5 -word~ main::$6 -word~ main::$7 -byte~ main::$8 -word~ main::$9 -constant byte* main::ba[3] = { fill( 3, 0) } -constant byte* main::bb[main::sz+2] = { fill( main::sz+2, 0) } -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -constant byte* main::sa[] = "camelot" -constant byte* main::sb[] = { 'a', 'b', 'c', 0 } -constant const byte main::sz = 7 -constant word* main::wa[3] = { fill( 3, 0) } -constant word* main::wb[] = { 1, 2, 3, 4 } +unsigned int main::$0 +unsigned int main::$1 +unsigned int main::$10 +char main::$11 +unsigned int main::$12 +unsigned int main::$13 +char main::$14 +unsigned int main::$15 +unsigned int main::$16 +char main::$17 +char main::$18 +char main::$19 +char main::$2 +char main::$20 +char main::$21 +char main::$22 +char main::$23 +unsigned int main::$3 +unsigned int main::$4 +char main::$5 +unsigned int main::$6 +unsigned int main::$7 +char main::$8 +unsigned int main::$9 +__constant char main::ba[3] = { fill( 3, 0) } +__constant char main::bb[main::sz+2] = { fill( main::sz+2, 0) } +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +__constant char main::sa[] = "camelot" +__constant char main::sb[] = { 'a', 'b', 'c', 0 } +__constant const char main::sz = 7 +__constant unsigned int main::wa[3] = { fill( 3, 0) } +__constant unsigned int main::wb[] = { 1, 2, 3, 4 } Adding number conversion cast (unumber) 2 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [1] main::$0 = sizeof main::ba Constant right-side identified [7] main::$3 = sizeof main::wa @@ -139,28 +139,28 @@ Resolving array sizeof() sizeof main::wb Resolving string sizeof() sizeof main::sa Resolving array sizeof() sizeof main::sb Successful SSA optimization PassNSizeOfSimplification -Constant right-side identified [0] main::$1 = main::$0 / SIZEOF_BYTE +Constant right-side identified [0] main::$1 = main::$0 / SIZEOF_CHAR Constant right-side identified [4] main::idx#1 = ++ main::idx#0 -Constant right-side identified [5] main::$4 = main::$3 / SIZEOF_WORD -Constant right-side identified [10] main::$7 = main::$6 / SIZEOF_BYTE -Constant right-side identified [15] main::$10 = main::$9 / SIZEOF_WORD -Constant right-side identified [20] main::$13 = main::$12 / SIZEOF_BYTE -Constant right-side identified [25] main::$16 = main::$15 / SIZEOF_BYTE +Constant right-side identified [5] main::$4 = main::$3 / SIZEOF_UNSIGNED_INT +Constant right-side identified [10] main::$7 = main::$6 / SIZEOF_CHAR +Constant right-side identified [15] main::$10 = main::$9 / SIZEOF_UNSIGNED_INT +Constant right-side identified [20] main::$13 = main::$12 / SIZEOF_CHAR +Constant right-side identified [25] main::$16 = main::$15 / SIZEOF_CHAR Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$1 = main::$0/SIZEOF_BYTE +Constant main::$1 = main::$0/SIZEOF_CHAR Constant main::idx#1 = ++main::idx#0 -Constant main::$4 = main::$3/SIZEOF_WORD -Constant main::$7 = main::$6/SIZEOF_BYTE -Constant main::$10 = main::$9/SIZEOF_WORD -Constant main::$13 = main::$12/SIZEOF_BYTE -Constant main::$16 = main::$15/SIZEOF_BYTE +Constant main::$4 = main::$3/SIZEOF_UNSIGNED_INT +Constant main::$7 = main::$6/SIZEOF_CHAR +Constant main::$10 = main::$9/SIZEOF_UNSIGNED_INT +Constant main::$13 = main::$12/SIZEOF_CHAR +Constant main::$16 = main::$15/SIZEOF_CHAR Successful SSA optimization Pass2ConstantIdentification -Constant main::$18 = (byte)main::$1 -Constant main::$19 = (byte)main::$4 -Constant main::$20 = (byte)main::$7 -Constant main::$21 = (byte)main::$10 -Constant main::$22 = (byte)main::$13 -Constant main::$23 = (byte)main::$16 +Constant main::$18 = (char)main::$1 +Constant main::$19 = (char)main::$4 +Constant main::$20 = (char)main::$7 +Constant main::$21 = (char)main::$10 +Constant main::$22 = (char)main::$13 +Constant main::$23 = (char)main::$16 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant main::ba Eliminating unused constant main::wa @@ -181,11 +181,11 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 8 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::$2 = '0' + main::$18 Constant right-side identified [2] main::$5 = '0' + main::$19 @@ -221,36 +221,36 @@ Inlining constant with different constant siblings main::idx#2 Inlining constant with different constant siblings main::idx#3 Inlining constant with different constant siblings main::idx#4 Inlining constant with different constant siblings main::idx#5 -Constant inlined main::$12 = 8*SIZEOF_BYTE -Constant inlined main::$13 = 8*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$14 = '0'+(byte)8*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$15 = 4*SIZEOF_BYTE -Constant inlined main::$10 = 4*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$11 = '0'+(byte)4*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$16 = 4*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$17 = '0'+(byte)4*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$18 = (byte)3*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$19 = (byte)3*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$23 = (byte)4*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$20 = (byte)main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$21 = (byte)4*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$22 = (byte)8*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$12 = 8*SIZEOF_CHAR +Constant inlined main::$13 = 8*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$14 = '0'+(char)8*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$15 = 4*SIZEOF_CHAR +Constant inlined main::$10 = 4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Constant inlined main::$11 = '0'+(char)4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Constant inlined main::$16 = 4*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$17 = '0'+(char)4*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$18 = (char)3*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$19 = (char)3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Constant inlined main::$23 = (char)4*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$20 = (char)main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$21 = (char)4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Constant inlined main::$22 = (char)8*SIZEOF_CHAR/SIZEOF_CHAR Constant inlined main::idx#0 = 0 Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 -Constant inlined main::$1 = 3*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$1 = 3*SIZEOF_CHAR/SIZEOF_CHAR Constant inlined main::idx#3 = ++++++0 -Constant inlined main::$2 = '0'+(byte)3*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$2 = '0'+(char)3*SIZEOF_CHAR/SIZEOF_CHAR Constant inlined main::idx#4 = ++++++++0 Constant inlined main::idx#5 = ++++++++++0 -Constant inlined main::$0 = 3*SIZEOF_BYTE -Constant inlined main::$5 = '0'+(byte)3*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$6 = main::sz+2*SIZEOF_BYTE -Constant inlined main::$3 = 3*SIZEOF_WORD -Constant inlined main::$4 = 3*SIZEOF_WORD/SIZEOF_WORD -Constant inlined main::$9 = 4*SIZEOF_WORD -Constant inlined main::$7 = main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -Constant inlined main::$8 = '0'+(byte)main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE +Constant inlined main::$0 = 3*SIZEOF_CHAR +Constant inlined main::$5 = '0'+(char)3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Constant inlined main::$6 = main::sz+2*SIZEOF_CHAR +Constant inlined main::$3 = 3*SIZEOF_UNSIGNED_INT +Constant inlined main::$4 = 3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Constant inlined main::$9 = 4*SIZEOF_UNSIGNED_INT +Constant inlined main::$7 = main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR +Constant inlined main::$8 = '0'+(char)main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++0) @@ -269,12 +269,12 @@ Simplifying constant integer increment ++2 Simplifying constant integer increment ++3 Simplifying constant integer increment ++4 Successful SSA optimization Pass2ConstantSimplification -Simplifying constant integer cast 3*SIZEOF_BYTE/SIZEOF_BYTE -Simplifying constant integer cast 3*SIZEOF_WORD/SIZEOF_WORD -Simplifying constant integer cast main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -Simplifying constant integer cast 4*SIZEOF_WORD/SIZEOF_WORD -Simplifying constant integer cast 8*SIZEOF_BYTE/SIZEOF_BYTE -Simplifying constant integer cast 4*SIZEOF_BYTE/SIZEOF_BYTE +Simplifying constant integer cast 3*SIZEOF_CHAR/SIZEOF_CHAR +Simplifying constant integer cast 3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Simplifying constant integer cast main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR +Simplifying constant integer cast 4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT +Simplifying constant integer cast 8*SIZEOF_CHAR/SIZEOF_CHAR +Simplifying constant integer cast 4*SIZEOF_CHAR/SIZEOF_CHAR Successful SSA optimization PassNCastSimplification CALL GRAPH @@ -285,12 +285,12 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE - [1] *(SCREEN+1) = '0'+3*SIZEOF_WORD/SIZEOF_WORD - [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE - [3] *(SCREEN+3) = '0'+4*SIZEOF_WORD/SIZEOF_WORD - [4] *(SCREEN+4) = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE - [5] *(SCREEN+5) = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE + [0] *SCREEN = '0'+3*SIZEOF_CHAR/SIZEOF_CHAR + [1] *(SCREEN+1) = '0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT + [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR + [3] *(SCREEN+3) = '0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT + [4] *(SCREEN+4) = '0'+8*SIZEOF_CHAR/SIZEOF_CHAR + [5] *(SCREEN+5) = '0'+4*SIZEOF_CHAR/SIZEOF_CHAR to:main::@return main::@return: scope:[main] from main [6] return @@ -299,17 +299,17 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = '0'+3*SIZEOF_WORD/SIZEOF_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+3) = '0'+4*SIZEOF_WORD/SIZEOF_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+4) = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *(SCREEN+5) = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = '0'+3*SIZEOF_CHAR/SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = '0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+3) = '0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+4) = '0'+8*SIZEOF_CHAR/SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *(SCREEN+5) = '0'+4*SIZEOF_CHAR/SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -331,30 +331,30 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 - .const SIZEOF_WORD = 2 + .const SIZEOF_CHAR = 1 + .const SIZEOF_UNSIGNED_INT = 2 .label SCREEN = $400 .segment Code // main main: { .const sz = 7 - // [0] *SCREEN = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+3*SIZEOF_BYTE/SIZEOF_BYTE + // [0] *SCREEN = '0'+3*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+3*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN - // [1] *(SCREEN+1) = '0'+3*SIZEOF_WORD/SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+3*SIZEOF_WORD/SIZEOF_WORD + // [1] *(SCREEN+1) = '0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT sta SCREEN+1 - // [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+(sz+2)*SIZEOF_BYTE/SIZEOF_BYTE + // [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+(sz+2)*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+2 - // [3] *(SCREEN+3) = '0'+4*SIZEOF_WORD/SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+4*SIZEOF_WORD/SIZEOF_WORD + // [3] *(SCREEN+3) = '0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT sta SCREEN+3 - // [4] *(SCREEN+4) = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+8*SIZEOF_BYTE/SIZEOF_BYTE + // [4] *(SCREEN+4) = '0'+8*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+8*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+4 - // [5] *(SCREEN+5) = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+4*SIZEOF_BYTE/SIZEOF_BYTE + // [5] *(SCREEN+5) = '0'+4*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+4*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+5 jmp __breturn // main::@return @@ -371,12 +371,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte main::idx -constant const byte main::sz = 7 +char main::idx +__constant const char main::sz = 7 @@ -395,36 +395,36 @@ Score: 42 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 - .const SIZEOF_WORD = 2 + .const SIZEOF_CHAR = 1 + .const SIZEOF_UNSIGNED_INT = 2 .label SCREEN = $400 .segment Code // main main: { .const sz = 7 // SCREEN[idx++] = '0'+(char)(sizeof(ba)/sizeof(byte)) - // [0] *SCREEN = '0'+3*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+3*SIZEOF_BYTE/SIZEOF_BYTE + // [0] *SCREEN = '0'+3*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+3*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN // SCREEN[idx++] = '0'+(char)(sizeof(wa)/sizeof(word)) - // [1] *(SCREEN+1) = '0'+3*SIZEOF_WORD/SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+3*SIZEOF_WORD/SIZEOF_WORD + // [1] *(SCREEN+1) = '0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+3*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT sta SCREEN+1 // SCREEN[idx++] = '0'+(char)(sizeof(bb)/sizeof(byte)) - // [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+(sz+2)*SIZEOF_BYTE/SIZEOF_BYTE + // [2] *(SCREEN+2) = '0'+main::sz+2*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+(sz+2)*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+2 // SCREEN[idx++] = '0'+(char)(sizeof(wb)/sizeof(word)) - // [3] *(SCREEN+3) = '0'+4*SIZEOF_WORD/SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+4*SIZEOF_WORD/SIZEOF_WORD + // [3] *(SCREEN+3) = '0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+4*SIZEOF_UNSIGNED_INT/SIZEOF_UNSIGNED_INT sta SCREEN+3 // SCREEN[idx++] = '0'+(char)(sizeof(sa)/sizeof(byte)) - // [4] *(SCREEN+4) = '0'+8*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+8*SIZEOF_BYTE/SIZEOF_BYTE + // [4] *(SCREEN+4) = '0'+8*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+8*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+4 // SCREEN[idx++] = '0'+(char)(sizeof(sb)/sizeof(byte)) - // [5] *(SCREEN+5) = '0'+4*SIZEOF_BYTE/SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+4*SIZEOF_BYTE/SIZEOF_BYTE + // [5] *(SCREEN+5) = '0'+4*SIZEOF_CHAR/SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+4*SIZEOF_CHAR/SIZEOF_CHAR sta SCREEN+5 // main::@return // } diff --git a/src/test/ref/sizeof-arrays.sym b/src/test/ref/sizeof-arrays.sym index ffa8cf928..94b5139a6 100644 --- a/src/test/ref/sizeof-arrays.sym +++ b/src/test/ref/sizeof-arrays.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte main::idx -constant const byte main::sz = 7 +char main::idx +__constant const char main::sz = 7 diff --git a/src/test/ref/sizeof-expr.asm b/src/test/ref/sizeof-expr.asm index 9675f5f02..acff0417e 100644 --- a/src/test/ref/sizeof-expr.asm +++ b/src/test/ref/sizeof-expr.asm @@ -7,9 +7,9 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .const SIZEOF_NUMBER = -1 - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const SIZEOF_POINTER = 2 .label SCREEN = $400 .segment Code @@ -18,7 +18,7 @@ main: { lda #'0'+SIZEOF_NUMBER sta SCREEN // SCREEN[idx++] = '0'+(char)sizeof(idx) - lda #'0'+SIZEOF_BYTE + lda #'0'+SIZEOF_CHAR sta SCREEN+1 // SCREEN[idx++] = '0'+(char)sizeof(b) sta SCREEN+2 @@ -28,7 +28,7 @@ main: { // SCREEN[idx++] = '0'+(char)sizeof($43ff) sta SCREEN+5 // SCREEN[idx++] = '0'+(char)sizeof(w) - lda #'0'+SIZEOF_WORD + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+6 // SCREEN[idx++] = '0'+(char)sizeof(bp) lda #'0'+SIZEOF_POINTER diff --git a/src/test/ref/sizeof-expr.cfg b/src/test/ref/sizeof-expr.cfg index 5ad76ed9b..d8fe464c0 100644 --- a/src/test/ref/sizeof-expr.cfg +++ b/src/test/ref/sizeof-expr.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] *SCREEN = '0'+SIZEOF_NUMBER - [1] *(SCREEN+1) = '0'+SIZEOF_BYTE - [2] *(SCREEN+2) = '0'+SIZEOF_BYTE + [1] *(SCREEN+1) = '0'+SIZEOF_CHAR + [2] *(SCREEN+2) = '0'+SIZEOF_CHAR [3] *(SCREEN+3) = '0'+SIZEOF_NUMBER [4] *(SCREEN+5) = '0'+SIZEOF_NUMBER - [5] *(SCREEN+6) = '0'+SIZEOF_WORD + [5] *(SCREEN+6) = '0'+SIZEOF_UNSIGNED_INT [6] *(SCREEN+8) = '0'+SIZEOF_POINTER [7] *(SCREEN+9) = '0'+SIZEOF_POINTER to:main::@return diff --git a/src/test/ref/sizeof-expr.log b/src/test/ref/sizeof-expr.log index f2cd45555..458c91066 100644 --- a/src/test/ref/sizeof-expr.log +++ b/src/test/ref/sizeof-expr.log @@ -11,44 +11,44 @@ void main() main: scope:[main] from __start main::idx#0 = 0 main::$0 = sizeof 0 - main::$17 = (byte)main::$0 + main::$17 = (char)main::$0 main::$1 = '0' + main::$17 SCREEN[main::idx#0] = main::$1 main::idx#1 = ++ main::idx#0 - main::$2 = SIZEOF_BYTE - main::$18 = (byte)main::$2 + main::$2 = SIZEOF_CHAR + main::$18 = (char)main::$2 main::$3 = '0' + main::$18 SCREEN[main::idx#1] = main::$3 main::idx#2 = ++ main::idx#1 - main::$4 = SIZEOF_BYTE - main::$19 = (byte)main::$4 + main::$4 = SIZEOF_CHAR + main::$19 = (char)main::$4 main::$5 = '0' + main::$19 SCREEN[main::idx#2] = main::$5 main::idx#3 = ++ main::idx#2 main::$7 = SIZEOF_NUMBER - main::$20 = (byte)main::$7 + main::$20 = (char)main::$7 main::$8 = '0' + main::$20 SCREEN[main::idx#3] = main::$8 main::idx#4 = ++ main::idx#3 main::idx#5 = ++ main::idx#4 main::$9 = sizeof $43ff - main::$21 = (byte)main::$9 + main::$21 = (char)main::$9 main::$10 = '0' + main::$21 SCREEN[main::idx#5] = main::$10 main::idx#6 = ++ main::idx#5 - main::$11 = SIZEOF_WORD - main::$22 = (byte)main::$11 + main::$11 = SIZEOF_UNSIGNED_INT + main::$22 = (char)main::$11 main::$12 = '0' + main::$22 SCREEN[main::idx#6] = main::$12 main::idx#7 = ++ main::idx#6 main::idx#8 = ++ main::idx#7 main::$13 = SIZEOF_POINTER - main::$23 = (byte)main::$13 + main::$23 = (char)main::$13 main::$14 = '0' + main::$23 SCREEN[main::idx#8] = main::$14 main::idx#9 = ++ main::idx#8 main::$15 = SIZEOF_POINTER - main::$24 = (byte)main::$15 + main::$24 = (char)main::$15 main::$16 = '0' + main::$24 SCREEN[main::idx#9] = main::$16 main::idx#10 = ++ main::idx#9 @@ -59,7 +59,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -68,73 +68,73 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_NUMBER = -1 -constant byte SIZEOF_POINTER = 2 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_NUMBER = -1 +__constant char SIZEOF_POINTER = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word~ main::$0 -byte~ main::$1 -byte~ main::$10 -word~ main::$11 -byte~ main::$12 -word~ main::$13 -byte~ main::$14 -word~ main::$15 -byte~ main::$16 -byte~ main::$17 -byte~ main::$18 -byte~ main::$19 -word~ main::$2 -byte~ main::$20 -byte~ main::$21 -byte~ main::$22 -byte~ main::$23 -byte~ main::$24 -byte~ main::$3 -word~ main::$4 -byte~ main::$5 -word~ main::$7 -byte~ main::$8 -word~ main::$9 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +unsigned int main::$0 +char main::$1 +char main::$10 +unsigned int main::$11 +char main::$12 +unsigned int main::$13 +char main::$14 +unsigned int main::$15 +char main::$16 +char main::$17 +char main::$18 +char main::$19 +unsigned int main::$2 +char main::$20 +char main::$21 +char main::$22 +char main::$23 +char main::$24 +char main::$3 +unsigned int main::$4 +char main::$5 +unsigned int main::$7 +char main::$8 +unsigned int main::$9 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant right-side identified [1] main::$0 = sizeof 0 Constant right-side identified [22] main::$9 = sizeof $43ff Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#0 = 0 Constant main::$0 = sizeof 0 -Constant main::$2 = SIZEOF_BYTE -Constant main::$4 = SIZEOF_BYTE +Constant main::$2 = SIZEOF_CHAR +Constant main::$4 = SIZEOF_CHAR Constant main::$7 = SIZEOF_NUMBER Constant main::$9 = sizeof $43ff -Constant main::$11 = SIZEOF_WORD +Constant main::$11 = SIZEOF_UNSIGNED_INT Constant main::$13 = SIZEOF_POINTER Constant main::$15 = SIZEOF_POINTER Successful SSA optimization Pass2ConstantIdentification -Constant main::$17 = (byte)main::$0 -Constant main::$18 = (byte)main::$2 -Constant main::$19 = (byte)main::$4 -Constant main::$20 = (byte)main::$7 -Constant main::$21 = (byte)main::$9 -Constant main::$22 = (byte)main::$11 -Constant main::$23 = (byte)main::$13 -Constant main::$24 = (byte)main::$15 +Constant main::$17 = (char)main::$0 +Constant main::$18 = (char)main::$2 +Constant main::$19 = (char)main::$4 +Constant main::$20 = (char)main::$7 +Constant main::$21 = (char)main::$9 +Constant main::$22 = (char)main::$11 +Constant main::$23 = (char)main::$13 +Constant main::$24 = (char)main::$15 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [4] SCREEN[main::idx#0] = main::$1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -210,40 +210,40 @@ Inlining constant with different constant siblings main::idx#6 Inlining constant with different constant siblings main::idx#7 Inlining constant with different constant siblings main::idx#8 Inlining constant with different constant siblings main::idx#9 -Constant inlined main::$12 = '0'+(byte)SIZEOF_WORD +Constant inlined main::$12 = '0'+(char)SIZEOF_UNSIGNED_INT Constant inlined main::$13 = SIZEOF_POINTER -Constant inlined main::$14 = '0'+(byte)SIZEOF_POINTER +Constant inlined main::$14 = '0'+(char)SIZEOF_POINTER Constant inlined main::$15 = SIZEOF_POINTER -Constant inlined main::$10 = '0'+(byte)SIZEOF_NUMBER -Constant inlined main::$11 = SIZEOF_WORD -Constant inlined main::$16 = '0'+(byte)SIZEOF_POINTER -Constant inlined main::$17 = (byte)SIZEOF_NUMBER -Constant inlined main::$18 = (byte)SIZEOF_BYTE -Constant inlined main::$19 = (byte)SIZEOF_BYTE -Constant inlined main::$23 = (byte)SIZEOF_POINTER -Constant inlined main::$24 = (byte)SIZEOF_POINTER -Constant inlined main::$20 = (byte)SIZEOF_NUMBER -Constant inlined main::$21 = (byte)SIZEOF_NUMBER -Constant inlined main::$22 = (byte)SIZEOF_WORD +Constant inlined main::$10 = '0'+(char)SIZEOF_NUMBER +Constant inlined main::$11 = SIZEOF_UNSIGNED_INT +Constant inlined main::$16 = '0'+(char)SIZEOF_POINTER +Constant inlined main::$17 = (char)SIZEOF_NUMBER +Constant inlined main::$18 = (char)SIZEOF_CHAR +Constant inlined main::$19 = (char)SIZEOF_CHAR +Constant inlined main::$23 = (char)SIZEOF_POINTER +Constant inlined main::$24 = (char)SIZEOF_POINTER +Constant inlined main::$20 = (char)SIZEOF_NUMBER +Constant inlined main::$21 = (char)SIZEOF_NUMBER +Constant inlined main::$22 = (char)SIZEOF_UNSIGNED_INT Constant inlined main::idx#0 = 0 Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 -Constant inlined main::$1 = '0'+(byte)SIZEOF_NUMBER +Constant inlined main::$1 = '0'+(char)SIZEOF_NUMBER Constant inlined main::idx#3 = ++++++0 -Constant inlined main::$2 = SIZEOF_BYTE +Constant inlined main::$2 = SIZEOF_CHAR Constant inlined main::idx#4 = ++++++++0 Constant inlined main::idx#5 = ++++++++++0 Constant inlined main::$0 = SIZEOF_NUMBER Constant inlined main::idx#6 = ++++++++++++0 -Constant inlined main::$5 = '0'+(byte)SIZEOF_BYTE +Constant inlined main::$5 = '0'+(char)SIZEOF_CHAR Constant inlined main::idx#7 = ++++++++++++++0 Constant inlined main::idx#8 = ++++++++++++++++0 -Constant inlined main::$3 = '0'+(byte)SIZEOF_BYTE +Constant inlined main::$3 = '0'+(char)SIZEOF_CHAR Constant inlined main::idx#9 = ++++++++++++++++++0 -Constant inlined main::$4 = SIZEOF_BYTE +Constant inlined main::$4 = SIZEOF_CHAR Constant inlined main::$9 = SIZEOF_NUMBER Constant inlined main::$7 = SIZEOF_NUMBER -Constant inlined main::$8 = '0'+(byte)SIZEOF_NUMBER +Constant inlined main::$8 = '0'+(char)SIZEOF_NUMBER Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++0) @@ -272,11 +272,11 @@ Simplifying constant integer increment ++7 Simplifying constant integer increment ++8 Successful SSA optimization Pass2ConstantSimplification Simplifying constant integer cast SIZEOF_NUMBER -Simplifying constant integer cast SIZEOF_BYTE -Simplifying constant integer cast SIZEOF_BYTE +Simplifying constant integer cast SIZEOF_CHAR +Simplifying constant integer cast SIZEOF_CHAR Simplifying constant integer cast SIZEOF_NUMBER Simplifying constant integer cast SIZEOF_NUMBER -Simplifying constant integer cast SIZEOF_WORD +Simplifying constant integer cast SIZEOF_UNSIGNED_INT Simplifying constant integer cast SIZEOF_POINTER Simplifying constant integer cast SIZEOF_POINTER Successful SSA optimization PassNCastSimplification @@ -290,11 +290,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *SCREEN = '0'+SIZEOF_NUMBER - [1] *(SCREEN+1) = '0'+SIZEOF_BYTE - [2] *(SCREEN+2) = '0'+SIZEOF_BYTE + [1] *(SCREEN+1) = '0'+SIZEOF_CHAR + [2] *(SCREEN+2) = '0'+SIZEOF_CHAR [3] *(SCREEN+3) = '0'+SIZEOF_NUMBER [4] *(SCREEN+5) = '0'+SIZEOF_NUMBER - [5] *(SCREEN+6) = '0'+SIZEOF_WORD + [5] *(SCREEN+6) = '0'+SIZEOF_UNSIGNED_INT [6] *(SCREEN+8) = '0'+SIZEOF_POINTER [7] *(SCREEN+9) = '0'+SIZEOF_POINTER to:main::@return @@ -305,17 +305,17 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *SCREEN = '0'+SIZEOF_NUMBER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = '0'+SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2) = '0'+SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = '0'+SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2) = '0'+SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *(SCREEN+3) = '0'+SIZEOF_NUMBER [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] *(SCREEN+5) = '0'+SIZEOF_NUMBER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *(SCREEN+6) = '0'+SIZEOF_WORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *(SCREEN+6) = '0'+SIZEOF_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a Statement [6] *(SCREEN+8) = '0'+SIZEOF_POINTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *(SCREEN+9) = '0'+SIZEOF_POINTER [ ] ( [ ] { } ) always clobbers reg byte a @@ -339,9 +339,9 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .const SIZEOF_NUMBER = -1 - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const SIZEOF_POINTER = 2 .label SCREEN = $400 .segment Code @@ -350,11 +350,11 @@ main: { // [0] *SCREEN = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_NUMBER sta SCREEN - // [1] *(SCREEN+1) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [1] *(SCREEN+1) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+1 - // [2] *(SCREEN+2) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [2] *(SCREEN+2) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+2 // [3] *(SCREEN+3) = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_NUMBER @@ -362,8 +362,8 @@ main: { // [4] *(SCREEN+5) = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_NUMBER sta SCREEN+5 - // [5] *(SCREEN+6) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [5] *(SCREEN+6) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+6 // [6] *(SCREEN+8) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_POINTER @@ -382,7 +382,7 @@ main: { ASSEMBLER OPTIMIZATIONS Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #'0'+SIZEOF_BYTE +Removing instruction lda #'0'+SIZEOF_CHAR Removing instruction lda #'0'+SIZEOF_NUMBER Removing instruction lda #'0'+SIZEOF_POINTER Succesful ASM optimization Pass5UnnecesaryLoadElimination @@ -390,13 +390,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_NUMBER = -1 -constant byte SIZEOF_POINTER = 2 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_NUMBER = -1 +__constant char SIZEOF_POINTER = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte main::idx +char main::idx @@ -415,9 +415,9 @@ Score: 48 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .const SIZEOF_NUMBER = -1 - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const SIZEOF_POINTER = 2 .label SCREEN = $400 .segment Code @@ -428,11 +428,11 @@ main: { lda #'0'+SIZEOF_NUMBER sta SCREEN // SCREEN[idx++] = '0'+(char)sizeof(idx) - // [1] *(SCREEN+1) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [1] *(SCREEN+1) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+1 // SCREEN[idx++] = '0'+(char)sizeof(b) - // [2] *(SCREEN+2) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 + // [2] *(SCREEN+2) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+2 // SCREEN[idx++] = '0'+(char)sizeof(b*2) // [3] *(SCREEN+3) = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 @@ -442,8 +442,8 @@ main: { // [4] *(SCREEN+5) = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 sta SCREEN+5 // SCREEN[idx++] = '0'+(char)sizeof(w) - // [5] *(SCREEN+6) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [5] *(SCREEN+6) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+6 // SCREEN[idx++] = '0'+(char)sizeof(bp) // [6] *(SCREEN+8) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/sizeof-expr.sym b/src/test/ref/sizeof-expr.sym index 3232385a7..baa222e51 100644 --- a/src/test/ref/sizeof-expr.sym +++ b/src/test/ref/sizeof-expr.sym @@ -1,8 +1,8 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_NUMBER = -1 -constant byte SIZEOF_POINTER = 2 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_NUMBER = -1 +__constant char SIZEOF_POINTER = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte main::idx +char main::idx diff --git a/src/test/ref/sizeof-in-const-pointer.asm b/src/test/ref/sizeof-in-const-pointer.asm index e1328ed7e..6b83756e0 100644 --- a/src/test/ref/sizeof-in-const-pointer.asm +++ b/src/test/ref/sizeof-in-const-pointer.asm @@ -7,9 +7,9 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 // Commodore 64 processor port - .label SCREEN = $400+SIZEOF_BYTE*$64 + .label SCREEN = $400+SIZEOF_CHAR*$64 .segment Code main: { // SCREEN[0] = 'a' diff --git a/src/test/ref/sizeof-in-const-pointer.log b/src/test/ref/sizeof-in-const-pointer.log index bb1fa48d2..5167b7de3 100644 --- a/src/test/ref/sizeof-in-const-pointer.log +++ b/src/test/ref/sizeof-in-const-pointer.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,22 +20,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400+SIZEOF_BYTE*$64 -constant byte SIZEOF_BYTE = 1 +__constant char * const SCREEN = (char *)$400+SIZEOF_CHAR*$64 +__constant char SIZEOF_CHAR = 1 void __start() void main() -Adding number conversion cast (unumber) SIZEOF_BYTE*$64 in +Adding number conversion cast (unumber) SIZEOF_CHAR*$64 in Adding number conversion cast (unumber) $64 in Adding number conversion cast (unumber) 0 in SCREEN[0] = 'a' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant integer cast SIZEOF_BYTE*(unumber)$64 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant integer cast SIZEOF_CHAR*(unumber)$64 Simplifying constant integer cast $64 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'a' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -88,9 +88,9 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 // Commodore 64 processor port - .label SCREEN = $400+SIZEOF_BYTE*$64 + .label SCREEN = $400+SIZEOF_CHAR*$64 .segment Code // main main: { @@ -112,8 +112,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024+SIZEOF_BYTE*$64 -constant byte SIZEOF_BYTE = 1 +__constant char * const SCREEN = (char *) 1024+SIZEOF_CHAR*$64 +__constant char SIZEOF_CHAR = 1 void main() @@ -133,9 +133,9 @@ Score: 12 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 // Commodore 64 processor port - .label SCREEN = $400+SIZEOF_BYTE*$64 + .label SCREEN = $400+SIZEOF_CHAR*$64 .segment Code // main main: { diff --git a/src/test/ref/sizeof-in-const-pointer.sym b/src/test/ref/sizeof-in-const-pointer.sym index 80ae1cb14..243969bfa 100644 --- a/src/test/ref/sizeof-in-const-pointer.sym +++ b/src/test/ref/sizeof-in-const-pointer.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024+SIZEOF_BYTE*$64 -constant byte SIZEOF_BYTE = 1 +__constant char * const SCREEN = (char *) 1024+SIZEOF_CHAR*$64 +__constant char SIZEOF_CHAR = 1 void main() diff --git a/src/test/ref/sizeof-noparen.asm b/src/test/ref/sizeof-noparen.asm index 24184d899..0f5dc969c 100644 --- a/src/test/ref/sizeof-noparen.asm +++ b/src/test/ref/sizeof-noparen.asm @@ -7,8 +7,8 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_CHAR = 1 + .const SIZEOF_INT = 2 .const SIZEOF_NUMBER = -1 .label SCREEN = $400 .segment Code @@ -17,16 +17,16 @@ main: { lda #'0'+SIZEOF_NUMBER sta SCREEN // SCREEN[idx++] = '0'+sizeof b - lda #'0'+SIZEOF_BYTE + lda #'0'+SIZEOF_CHAR sta SCREEN+1 // SCREEN[idx++] = '0'+sizeof w - lda #'0'+SIZEOF_SIGNED_WORD + lda #'0'+SIZEOF_INT sta SCREEN+2 // SCREEN[idx++] = '0'+sizeof (char) - lda #'0'+SIZEOF_BYTE + lda #'0'+SIZEOF_CHAR sta SCREEN+3 // SCREEN[idx++] = '0'+sizeof (int) - lda #'0'+SIZEOF_SIGNED_WORD + lda #'0'+SIZEOF_INT sta SCREEN+4 // } rts diff --git a/src/test/ref/sizeof-noparen.cfg b/src/test/ref/sizeof-noparen.cfg index 74ac8ce28..6866ac9cf 100644 --- a/src/test/ref/sizeof-noparen.cfg +++ b/src/test/ref/sizeof-noparen.cfg @@ -2,10 +2,10 @@ void main() main: scope:[main] from [0] *SCREEN = '0'+SIZEOF_NUMBER - [1] *(SCREEN+1) = '0'+SIZEOF_BYTE - [2] *(SCREEN+2) = '0'+SIZEOF_SIGNED_WORD - [3] *(SCREEN+3) = '0'+SIZEOF_BYTE - [4] *(SCREEN+4) = '0'+SIZEOF_SIGNED_WORD + [1] *(SCREEN+1) = '0'+SIZEOF_CHAR + [2] *(SCREEN+2) = '0'+SIZEOF_INT + [3] *(SCREEN+3) = '0'+SIZEOF_CHAR + [4] *(SCREEN+4) = '0'+SIZEOF_INT to:main::@return main::@return: scope:[main] from main [5] return diff --git a/src/test/ref/sizeof-noparen.log b/src/test/ref/sizeof-noparen.log index 3374d8074..900ea0738 100644 --- a/src/test/ref/sizeof-noparen.log +++ b/src/test/ref/sizeof-noparen.log @@ -10,17 +10,17 @@ main: scope:[main] from __start main::$1 = '0' + main::$0 SCREEN[main::idx#0] = main::$1 main::idx#1 = ++ main::idx#0 - main::$2 = SIZEOF_BYTE + main::$2 = SIZEOF_CHAR main::$3 = '0' + main::$2 SCREEN[main::idx#1] = main::$3 main::idx#2 = ++ main::idx#1 - main::$4 = SIZEOF_SIGNED_WORD + main::$4 = SIZEOF_INT main::$5 = '0' + main::$4 SCREEN[main::idx#2] = main::$5 main::idx#3 = ++ main::idx#2 - SCREEN[main::idx#3] = '0'+SIZEOF_BYTE + SCREEN[main::idx#3] = '0'+SIZEOF_CHAR main::idx#4 = ++ main::idx#3 - SCREEN[main::idx#4] = '0'+SIZEOF_SIGNED_WORD + SCREEN[main::idx#4] = '0'+SIZEOF_INT main::idx#5 = ++ main::idx#4 to:main::@return main::@return: scope:[main] from main @@ -38,33 +38,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_INT = 2 void __start() void main() -word~ main::$0 -word~ main::$1 -word~ main::$2 -word~ main::$3 -word~ main::$4 -word~ main::$5 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 +unsigned int main::$0 +unsigned int main::$1 +unsigned int main::$2 +unsigned int main::$3 +unsigned int main::$4 +unsigned int main::$5 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant right-side identified [1] main::$0 = sizeof 0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::idx#0 = 0 Constant main::$0 = sizeof 0 -Constant main::$2 = SIZEOF_BYTE -Constant main::$4 = SIZEOF_SIGNED_WORD +Constant main::$2 = SIZEOF_CHAR +Constant main::$4 = SIZEOF_INT Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [3] SCREEN[main::idx#0] = main::$1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -109,12 +109,12 @@ Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 Constant inlined main::$1 = '0'+SIZEOF_NUMBER Constant inlined main::idx#3 = ++++++0 -Constant inlined main::$2 = SIZEOF_BYTE +Constant inlined main::$2 = SIZEOF_CHAR Constant inlined main::idx#4 = ++++++++0 Constant inlined main::$0 = SIZEOF_NUMBER -Constant inlined main::$5 = '0'+SIZEOF_SIGNED_WORD -Constant inlined main::$3 = '0'+SIZEOF_BYTE -Constant inlined main::$4 = SIZEOF_SIGNED_WORD +Constant inlined main::$5 = '0'+SIZEOF_INT +Constant inlined main::$3 = '0'+SIZEOF_CHAR +Constant inlined main::$4 = SIZEOF_INT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++0) @@ -140,10 +140,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *SCREEN = '0'+SIZEOF_NUMBER - [1] *(SCREEN+1) = '0'+SIZEOF_BYTE - [2] *(SCREEN+2) = '0'+SIZEOF_SIGNED_WORD - [3] *(SCREEN+3) = '0'+SIZEOF_BYTE - [4] *(SCREEN+4) = '0'+SIZEOF_SIGNED_WORD + [1] *(SCREEN+1) = '0'+SIZEOF_CHAR + [2] *(SCREEN+2) = '0'+SIZEOF_INT + [3] *(SCREEN+3) = '0'+SIZEOF_CHAR + [4] *(SCREEN+4) = '0'+SIZEOF_INT to:main::@return main::@return: scope:[main] from main [5] return @@ -152,16 +152,16 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *SCREEN = '0'+SIZEOF_NUMBER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = '0'+SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2) = '0'+SIZEOF_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+3) = '0'+SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+4) = '0'+SIZEOF_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = '0'+SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2) = '0'+SIZEOF_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+3) = '0'+SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+4) = '0'+SIZEOF_INT [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -183,8 +183,8 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_CHAR = 1 + .const SIZEOF_INT = 2 .const SIZEOF_NUMBER = -1 .label SCREEN = $400 .segment Code @@ -193,17 +193,17 @@ main: { // [0] *SCREEN = '0'+SIZEOF_NUMBER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_NUMBER sta SCREEN - // [1] *(SCREEN+1) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [1] *(SCREEN+1) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+1 - // [2] *(SCREEN+2) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [2] *(SCREEN+2) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+2 - // [3] *(SCREEN+3) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [3] *(SCREEN+3) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+3 - // [4] *(SCREEN+4) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [4] *(SCREEN+4) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+4 jmp __breturn // main::@return @@ -220,12 +220,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_NUMBER = -1 -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_NUMBER = -1 void main() -byte main::idx +char main::idx @@ -244,8 +244,8 @@ Score: 36 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_CHAR = 1 + .const SIZEOF_INT = 2 .const SIZEOF_NUMBER = -1 .label SCREEN = $400 .segment Code @@ -256,20 +256,20 @@ main: { lda #'0'+SIZEOF_NUMBER sta SCREEN // SCREEN[idx++] = '0'+sizeof b - // [1] *(SCREEN+1) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [1] *(SCREEN+1) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+1 // SCREEN[idx++] = '0'+sizeof w - // [2] *(SCREEN+2) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [2] *(SCREEN+2) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+2 // SCREEN[idx++] = '0'+sizeof (char) - // [3] *(SCREEN+3) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [3] *(SCREEN+3) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+3 // SCREEN[idx++] = '0'+sizeof (int) - // [4] *(SCREEN+4) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [4] *(SCREEN+4) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+4 // main::@return // } diff --git a/src/test/ref/sizeof-noparen.sym b/src/test/ref/sizeof-noparen.sym index 5ce4991ae..122fe72e8 100644 --- a/src/test/ref/sizeof-noparen.sym +++ b/src/test/ref/sizeof-noparen.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_NUMBER = -1 -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_NUMBER = -1 void main() -byte main::idx +char main::idx diff --git a/src/test/ref/sizeof-problem.asm b/src/test/ref/sizeof-problem.asm index 93ead59e9..aba32d139 100644 --- a/src/test/ref/sizeof-problem.asm +++ b/src/test/ref/sizeof-problem.asm @@ -6,11 +6,11 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .segment Code main: { - .const i = $130*SIZEOF_BYTE - .const j = 3*SIZEOF_BYTE + .const i = $130*SIZEOF_CHAR + .const j = 3*SIZEOF_CHAR // ARR1[i-1] = 0 lda #0 sta ARR1+i-1 diff --git a/src/test/ref/sizeof-problem.log b/src/test/ref/sizeof-problem.log index fd69bd39e..ee9c603b5 100644 --- a/src/test/ref/sizeof-problem.log +++ b/src/test/ref/sizeof-problem.log @@ -8,7 +8,7 @@ main: scope:[main] from __start main::$1 = main::i#0 - 1 ARR1[main::$1] = 0 main::$2 = sizeof ARR2 - main::j#0 = (byte)main::$2 + main::j#0 = (char)main::$2 main::$3 = main::j#0 - 1 ARR2[main::$3] = 0 to:main::@return @@ -18,7 +18,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,17 +27,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* ARR1[$130] = { fill( $130, 0) } -constant byte* ARR2[] = { 1, 2, 3 } +__constant char ARR1[$130] = { fill( $130, 0) } +__constant char ARR2[] = { 1, 2, 3 } void __start() void main() -number~ main::$1 -word~ main::$2 -number~ main::$3 -word main::i -word main::i#0 -byte main::j -byte main::j#0 +number main::$1 +unsigned int main::$2 +number main::$3 +unsigned int main::i +unsigned int main::i#0 +char main::j +char main::j#0 Adding number conversion cast (unumber) 1 in main::$1 = main::i#0 - 1 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#0 - (unumber)1 @@ -54,20 +54,20 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$1 = main::i#0 - 1 -Inferred type updated to byte in main::$3 = main::j#0 - 1 +Inferred type updated to unsigned int in main::$1 = main::i#0 - 1 +Inferred type updated to char in main::$3 = main::j#0 - 1 Constant right-side identified [0] main::i#0 = sizeof ARR1 Constant right-side identified [3] main::$2 = sizeof ARR2 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = sizeof ARR1 Constant main::$2 = sizeof ARR2 Successful SSA optimization Pass2ConstantIdentification -Constant main::j#0 = (byte)main::$2 +Constant main::j#0 = (char)main::$2 Successful SSA optimization Pass2ConstantIdentification De-inlining pointer[w] to *(pointer+w) [2] ARR1[main::$1] = 0 Successful SSA optimization Pass2DeInlineWordDerefIdx @@ -91,8 +91,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $130 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $130 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (unsigned int) $130 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::$4 = ARR1 + main::$1 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -101,14 +101,14 @@ Successful SSA optimization Pass2ConstantIdentification Constant inlined main::$3 = main::j#0-1 Constant inlined main::$4 = ARR1+main::i#0-1 Constant inlined main::$1 = main::i#0-1 -Constant inlined main::$2 = 3*SIZEOF_BYTE +Constant inlined main::$2 = 3*SIZEOF_CHAR Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(ARR2+main::j#0-1) Successful SSA optimization Pass2ConstantAdditionElimination -Simplifying constant integer cast 3*SIZEOF_BYTE +Simplifying constant integer cast 3*SIZEOF_CHAR Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $130 -Finalized unsigned number type (word) $130 +Finalized unsigned number type (unsigned int) $130 +Finalized unsigned number type (unsigned int) $130 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -129,8 +129,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -word main::i -byte main::j +unsigned int main::i +char main::j Initial phi equivalence classes Complete equivalence classes @@ -157,12 +157,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .segment Code // main main: { - .const i = $130*SIZEOF_BYTE - .const j = 3*SIZEOF_BYTE + .const i = $130*SIZEOF_CHAR + .const j = 3*SIZEOF_CHAR // [0] *(ARR1+main::i#0-1) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta ARR1+i-1 @@ -189,14 +189,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* ARR1[$130] = { fill( $130, 0) } -constant byte* ARR2[] = { 1, 2, 3 } -constant byte SIZEOF_BYTE = 1 +__constant char ARR1[$130] = { fill( $130, 0) } +__constant char ARR2[] = { 1, 2, 3 } +__constant char SIZEOF_CHAR = 1 void main() -word main::i -constant word main::i#0 i = $130*SIZEOF_BYTE -byte main::j -constant byte main::j#0 j = 3*SIZEOF_BYTE +unsigned int main::i +__constant unsigned int main::i#0 = $130*SIZEOF_CHAR // i +char main::j +__constant char main::j#0 = 3*SIZEOF_CHAR // j @@ -214,12 +214,12 @@ Score: 16 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 + .const SIZEOF_CHAR = 1 .segment Code // main main: { - .const i = $130*SIZEOF_BYTE - .const j = 3*SIZEOF_BYTE + .const i = $130*SIZEOF_CHAR + .const j = 3*SIZEOF_CHAR // ARR1[i-1] = 0 // [0] *(ARR1+main::i#0-1) = 0 -- _deref_pbuc1=vbuc2 lda #0 diff --git a/src/test/ref/sizeof-problem.sym b/src/test/ref/sizeof-problem.sym index ec6eed6c4..04660cffc 100644 --- a/src/test/ref/sizeof-problem.sym +++ b/src/test/ref/sizeof-problem.sym @@ -1,9 +1,9 @@ -constant byte* ARR1[$130] = { fill( $130, 0) } -constant byte* ARR2[] = { 1, 2, 3 } -constant byte SIZEOF_BYTE = 1 +__constant char ARR1[$130] = { fill( $130, 0) } +__constant char ARR2[] = { 1, 2, 3 } +__constant char SIZEOF_CHAR = 1 void main() -word main::i -constant word main::i#0 i = $130*SIZEOF_BYTE -byte main::j -constant byte main::j#0 j = 3*SIZEOF_BYTE +unsigned int main::i +__constant unsigned int main::i#0 = $130*SIZEOF_CHAR // i +char main::j +__constant char main::j#0 = 3*SIZEOF_CHAR // j diff --git a/src/test/ref/sizeof-struct.log b/src/test/ref/sizeof-struct.log index 092867097..a7284dbca 100644 --- a/src/test/ref/sizeof-struct.log +++ b/src/test/ref/sizeof-struct.log @@ -6,41 +6,41 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::idx#0 = 0 - SCREEN[main::idx#0] = '0'+(byte)SIZEOF_STRUCT_POINT + SCREEN[main::idx#0] = '0'+(char)SIZEOF_STRUCT_POINT main::idx#1 = ++ main::idx#0 - SCREEN[main::idx#1] = '0'+(byte)SIZEOF_STRUCT_CIRCLE + SCREEN[main::idx#1] = '0'+(char)SIZEOF_STRUCT_CIRCLE main::idx#2 = ++ main::idx#1 main::idx#3 = ++ main::idx#2 main::$0 = SIZEOF_STRUCT_POINT - main::$14 = (byte)main::$0 + main::$14 = (char)main::$0 main::$1 = '0' + main::$14 SCREEN[main::idx#3] = main::$1 main::idx#4 = ++ main::idx#3 main::$2 = SIZEOF_STRUCT_CIRCLE - main::$15 = (byte)main::$2 + main::$15 = (char)main::$2 main::$3 = '0' + main::$15 SCREEN[main::idx#4] = main::$3 main::idx#5 = ++ main::idx#4 main::idx#6 = ++ main::idx#5 main::$4 = sizeof main::points - main::$16 = (byte)main::$4 + main::$16 = (char)main::$4 main::$5 = '0' + main::$16 SCREEN[main::idx#6] = main::$5 main::idx#7 = ++ main::idx#6 main::$6 = sizeof main::points main::$7 = main::$6 / SIZEOF_STRUCT_POINT - main::$17 = (byte)main::$7 + main::$17 = (char)main::$7 main::$8 = '0' + main::$17 SCREEN[main::idx#7] = main::$8 main::idx#8 = ++ main::idx#7 main::$9 = sizeof main::circles - main::$18 = (byte)main::$9 + main::$18 = (char)main::$9 main::$10 = '0' + main::$18 SCREEN[main::idx#8] = main::$10 main::idx#9 = ++ main::idx#8 main::$11 = sizeof main::circles main::$12 = main::$11 / SIZEOF_STRUCT_CIRCLE - main::$19 = (byte)main::$12 + main::$19 = (char)main::$12 main::$13 = '0' + main::$19 SCREEN[main::idx#9] = main::$13 main::idx#10 = ++ main::idx#9 @@ -51,7 +51,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -60,57 +60,57 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_CIRCLE = 3 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_CIRCLE = 3 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -word~ main::$0 -byte~ main::$1 -byte~ main::$10 -word~ main::$11 -word~ main::$12 -byte~ main::$13 -byte~ main::$14 -byte~ main::$15 -byte~ main::$16 -byte~ main::$17 -byte~ main::$18 -byte~ main::$19 -word~ main::$2 -byte~ main::$3 -word~ main::$4 -byte~ main::$5 -word~ main::$6 -word~ main::$7 -byte~ main::$8 -word~ main::$9 -constant const byte main::NUM_CIRCLES = (byte)main::NUM_POINTS-1 -constant const byte main::NUM_POINTS = 4 +unsigned int main::$0 +char main::$1 +char main::$10 +unsigned int main::$11 +unsigned int main::$12 +char main::$13 +char main::$14 +char main::$15 +char main::$16 +char main::$17 +char main::$18 +char main::$19 +unsigned int main::$2 +char main::$3 +unsigned int main::$4 +char main::$5 +unsigned int main::$6 +unsigned int main::$7 +char main::$8 +unsigned int main::$9 +__constant const char main::NUM_CIRCLES = (char)main::NUM_POINTS-1 +__constant const char main::NUM_POINTS = 4 struct Point main::c_center -constant struct Circle* main::circles[main::NUM_CIRCLES] = { fill( main::NUM_CIRCLES, 0) } -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 -constant struct Point* main::points[main::NUM_POINTS] = { fill( main::NUM_POINTS, 0) } +__constant struct Circle main::circles[main::NUM_CIRCLES] = { fill( main::NUM_CIRCLES, 0) } +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 +__constant struct Point main::points[main::NUM_POINTS] = { fill( main::NUM_POINTS, 0) } Adding number conversion cast (unumber) 1 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast SIZEOF_STRUCT_POINT Simplifying constant integer cast SIZEOF_STRUCT_CIRCLE Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [17] main::$4 = sizeof main::points Constant right-side identified [22] main::$6 = sizeof main::points @@ -125,10 +125,10 @@ Constant main::$6 = sizeof main::points Constant main::$9 = sizeof main::circles Constant main::$11 = sizeof main::circles Successful SSA optimization Pass2ConstantIdentification -Constant main::$14 = (byte)main::$0 -Constant main::$15 = (byte)main::$2 -Constant main::$16 = (byte)main::$4 -Constant main::$18 = (byte)main::$9 +Constant main::$14 = (char)main::$0 +Constant main::$15 = (char)main::$2 +Constant main::$16 = (char)main::$4 +Constant main::$18 = (char)main::$9 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [1] SCREEN[main::idx#0] = '0'+SIZEOF_STRUCT_POINT Successful SSA optimization PassNSimplifyExpressionWithZero @@ -162,8 +162,8 @@ Constant main::$7 = main::$6/SIZEOF_STRUCT_POINT Constant main::$10 = '0'+main::$18 Constant main::$12 = main::$11/SIZEOF_STRUCT_CIRCLE Successful SSA optimization Pass2ConstantIdentification -Constant main::$17 = (byte)main::$7 -Constant main::$19 = (byte)main::$12 +Constant main::$17 = (char)main::$7 +Constant main::$19 = (char)main::$12 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant main::points Eliminating unused constant main::circles @@ -215,35 +215,35 @@ Inlining constant with different constant siblings main::idx#7 Inlining constant with different constant siblings main::idx#8 Inlining constant with different constant siblings main::idx#9 Constant inlined main::$12 = main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE -Constant inlined main::$13 = '0'+(byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE -Constant inlined main::$14 = (byte)SIZEOF_STRUCT_POINT -Constant inlined main::$15 = (byte)SIZEOF_STRUCT_CIRCLE -Constant inlined main::$10 = '0'+(byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$13 = '0'+(char)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE +Constant inlined main::$14 = (char)SIZEOF_STRUCT_POINT +Constant inlined main::$15 = (char)SIZEOF_STRUCT_CIRCLE +Constant inlined main::$10 = '0'+(char)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE Constant inlined main::$11 = main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE -Constant inlined main::$16 = (byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT -Constant inlined main::$17 = (byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT -Constant inlined main::$18 = (byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE -Constant inlined main::$19 = (byte)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE +Constant inlined main::$16 = (char)main::NUM_POINTS*SIZEOF_STRUCT_POINT +Constant inlined main::$17 = (char)main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT +Constant inlined main::$18 = (char)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$19 = (char)main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE/SIZEOF_STRUCT_CIRCLE Constant inlined main::idx#0 = 0 Constant inlined main::idx#1 = ++0 Constant inlined main::idx#2 = ++++0 -Constant inlined main::$1 = '0'+(byte)SIZEOF_STRUCT_POINT +Constant inlined main::$1 = '0'+(char)SIZEOF_STRUCT_POINT Constant inlined main::idx#3 = ++++++0 Constant inlined main::$2 = SIZEOF_STRUCT_CIRCLE Constant inlined main::idx#4 = ++++++++0 Constant inlined main::idx#5 = ++++++++++0 Constant inlined main::$0 = SIZEOF_STRUCT_POINT Constant inlined main::idx#6 = ++++++++++++0 -Constant inlined main::$5 = '0'+(byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT +Constant inlined main::$5 = '0'+(char)main::NUM_POINTS*SIZEOF_STRUCT_POINT Constant inlined main::idx#7 = ++++++++++++++0 Constant inlined main::$6 = main::NUM_POINTS*SIZEOF_STRUCT_POINT Constant inlined main::idx#8 = ++++++++++++++++0 -Constant inlined main::$3 = '0'+(byte)SIZEOF_STRUCT_CIRCLE +Constant inlined main::$3 = '0'+(char)SIZEOF_STRUCT_CIRCLE Constant inlined main::idx#9 = ++++++++++++++++++0 Constant inlined main::$4 = main::NUM_POINTS*SIZEOF_STRUCT_POINT Constant inlined main::$9 = main::NUM_CIRCLES*SIZEOF_STRUCT_CIRCLE Constant inlined main::$7 = main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT -Constant inlined main::$8 = '0'+(byte)main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT +Constant inlined main::$8 = '0'+(char)main::NUM_POINTS*SIZEOF_STRUCT_POINT/SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++++0) @@ -304,7 +304,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() struct Point main::c_center -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes @@ -391,14 +391,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_CIRCLE = 3 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_CIRCLE = 3 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant const byte main::NUM_CIRCLES = main::NUM_POINTS-1 -constant const byte main::NUM_POINTS = 4 +__constant const char main::NUM_CIRCLES = main::NUM_POINTS-1 +__constant const char main::NUM_POINTS = 4 struct Point main::c_center -byte main::idx +char main::idx diff --git a/src/test/ref/sizeof-struct.sym b/src/test/ref/sizeof-struct.sym index 69a6f6d53..4f36c0657 100644 --- a/src/test/ref/sizeof-struct.sym +++ b/src/test/ref/sizeof-struct.sym @@ -1,9 +1,9 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_CIRCLE = 3 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_CIRCLE = 3 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant const byte main::NUM_CIRCLES = main::NUM_POINTS-1 -constant const byte main::NUM_POINTS = 4 +__constant const char main::NUM_CIRCLES = main::NUM_POINTS-1 +__constant const char main::NUM_POINTS = 4 struct Point main::c_center -byte main::idx +char main::idx diff --git a/src/test/ref/sizeof-types.asm b/src/test/ref/sizeof-types.asm index b98040cde..c829f839e 100644 --- a/src/test/ref/sizeof-types.asm +++ b/src/test/ref/sizeof-types.asm @@ -7,14 +7,14 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_BYTE = 1 - .const SIZEOF_SIGNED_BYTE = 1 + .const SIZEOF_CHAR = 1 + .const SIZEOF_SIGNED_CHAR = 1 .const SIZEOF_BOOL = 1 - .const SIZEOF_WORD = 2 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 + .const SIZEOF_INT = 2 .const SIZEOF_POINTER = 2 - .const SIZEOF_DWORD = 4 - .const SIZEOF_SIGNED_DWORD = 4 + .const SIZEOF_UNSIGNED_LONG = 4 + .const SIZEOF_LONG = 4 .label SCREEN = $400 .segment Code main: { @@ -22,37 +22,37 @@ main: { lda #'0' sta SCREEN // SCREEN[idx++] = '0'+sizeof(byte) - lda #'0'+SIZEOF_BYTE + lda #'0'+SIZEOF_CHAR sta SCREEN+2 // SCREEN[idx++] = '0'+sizeof(signed byte) - lda #'0'+SIZEOF_SIGNED_BYTE + lda #'0'+SIZEOF_SIGNED_CHAR sta SCREEN+3 // SCREEN[idx++] = '0'+sizeof(unsigned char) - lda #'0'+SIZEOF_BYTE + lda #'0'+SIZEOF_CHAR sta SCREEN+4 // SCREEN[idx++] = '0'+sizeof(signed char) - lda #'0'+SIZEOF_SIGNED_BYTE + lda #'0'+SIZEOF_SIGNED_CHAR sta SCREEN+5 // SCREEN[idx++] = '0'+sizeof(bool) lda #'0'+SIZEOF_BOOL sta SCREEN+6 // SCREEN[idx++] = '0'+sizeof(word) - lda #'0'+SIZEOF_WORD + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+8 // SCREEN[idx++] = '0'+sizeof(signed word) - lda #'0'+SIZEOF_SIGNED_WORD + lda #'0'+SIZEOF_INT sta SCREEN+9 // SCREEN[idx++] = '0'+sizeof(unsigned int) - lda #'0'+SIZEOF_WORD + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+$a // SCREEN[idx++] = '0'+sizeof(signed int) - lda #'0'+SIZEOF_SIGNED_WORD + lda #'0'+SIZEOF_INT sta SCREEN+$b // SCREEN[idx++] = '0'+sizeof(unsigned short) - lda #'0'+SIZEOF_WORD + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+$c // SCREEN[idx++] = '0'+sizeof(signed short) - lda #'0'+SIZEOF_SIGNED_WORD + lda #'0'+SIZEOF_INT sta SCREEN+$d // SCREEN[idx++] = '0'+sizeof(byte*) lda #'0'+SIZEOF_POINTER @@ -64,16 +64,16 @@ main: { // SCREEN[idx++] = '0'+sizeof(int***) sta SCREEN+$12 // SCREEN[idx++] = '0'+sizeof(dword) - lda #'0'+SIZEOF_DWORD + lda #'0'+SIZEOF_UNSIGNED_LONG sta SCREEN+$14 // SCREEN[idx++] = '0'+sizeof(signed dword) - lda #'0'+SIZEOF_SIGNED_DWORD + lda #'0'+SIZEOF_LONG sta SCREEN+$15 // SCREEN[idx++] = '0'+sizeof(unsigned long) - lda #'0'+SIZEOF_DWORD + lda #'0'+SIZEOF_UNSIGNED_LONG sta SCREEN+$16 // SCREEN[idx++] = '0'+sizeof(signed long) - lda #'0'+SIZEOF_SIGNED_DWORD + lda #'0'+SIZEOF_LONG sta SCREEN+$17 // } rts diff --git a/src/test/ref/sizeof-types.cfg b/src/test/ref/sizeof-types.cfg index 33321c047..a43b886eb 100644 --- a/src/test/ref/sizeof-types.cfg +++ b/src/test/ref/sizeof-types.cfg @@ -2,25 +2,25 @@ void main() main: scope:[main] from [0] *SCREEN = '0' - [1] *(SCREEN+2) = '0'+SIZEOF_BYTE - [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_BYTE - [3] *(SCREEN+4) = '0'+SIZEOF_BYTE - [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_BYTE + [1] *(SCREEN+2) = '0'+SIZEOF_CHAR + [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_CHAR + [3] *(SCREEN+4) = '0'+SIZEOF_CHAR + [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_CHAR [5] *(SCREEN+6) = '0'+SIZEOF_BOOL - [6] *(SCREEN+8) = '0'+SIZEOF_WORD - [7] *(SCREEN+9) = '0'+SIZEOF_SIGNED_WORD - [8] *(SCREEN+$a) = '0'+SIZEOF_WORD - [9] *(SCREEN+$b) = '0'+SIZEOF_SIGNED_WORD - [10] *(SCREEN+$c) = '0'+SIZEOF_WORD - [11] *(SCREEN+$d) = '0'+SIZEOF_SIGNED_WORD + [6] *(SCREEN+8) = '0'+SIZEOF_UNSIGNED_INT + [7] *(SCREEN+9) = '0'+SIZEOF_INT + [8] *(SCREEN+$a) = '0'+SIZEOF_UNSIGNED_INT + [9] *(SCREEN+$b) = '0'+SIZEOF_INT + [10] *(SCREEN+$c) = '0'+SIZEOF_UNSIGNED_INT + [11] *(SCREEN+$d) = '0'+SIZEOF_INT [12] *(SCREEN+$f) = '0'+SIZEOF_POINTER [13] *(SCREEN+$10) = '0'+SIZEOF_POINTER [14] *(SCREEN+$11) = '0'+SIZEOF_POINTER [15] *(SCREEN+$12) = '0'+SIZEOF_POINTER - [16] *(SCREEN+$14) = '0'+SIZEOF_DWORD - [17] *(SCREEN+$15) = '0'+SIZEOF_SIGNED_DWORD - [18] *(SCREEN+$16) = '0'+SIZEOF_DWORD - [19] *(SCREEN+$17) = '0'+SIZEOF_SIGNED_DWORD + [16] *(SCREEN+$14) = '0'+SIZEOF_UNSIGNED_LONG + [17] *(SCREEN+$15) = '0'+SIZEOF_LONG + [18] *(SCREEN+$16) = '0'+SIZEOF_UNSIGNED_LONG + [19] *(SCREEN+$17) = '0'+SIZEOF_LONG to:main::@return main::@return: scope:[main] from main [20] return diff --git a/src/test/ref/sizeof-types.log b/src/test/ref/sizeof-types.log index d18c855c3..b063903a5 100644 --- a/src/test/ref/sizeof-types.log +++ b/src/test/ref/sizeof-types.log @@ -7,28 +7,28 @@ main: scope:[main] from __start SCREEN[main::idx#0] = '0'+SIZEOF_VOID main::idx#1 = ++ main::idx#0 main::idx#2 = ++ main::idx#1 - SCREEN[main::idx#2] = '0'+SIZEOF_BYTE + SCREEN[main::idx#2] = '0'+SIZEOF_CHAR main::idx#3 = ++ main::idx#2 - SCREEN[main::idx#3] = '0'+SIZEOF_SIGNED_BYTE + SCREEN[main::idx#3] = '0'+SIZEOF_SIGNED_CHAR main::idx#4 = ++ main::idx#3 - SCREEN[main::idx#4] = '0'+SIZEOF_BYTE + SCREEN[main::idx#4] = '0'+SIZEOF_CHAR main::idx#5 = ++ main::idx#4 - SCREEN[main::idx#5] = '0'+SIZEOF_SIGNED_BYTE + SCREEN[main::idx#5] = '0'+SIZEOF_SIGNED_CHAR main::idx#6 = ++ main::idx#5 SCREEN[main::idx#6] = '0'+SIZEOF_BOOL main::idx#7 = ++ main::idx#6 main::idx#8 = ++ main::idx#7 - SCREEN[main::idx#8] = '0'+SIZEOF_WORD + SCREEN[main::idx#8] = '0'+SIZEOF_UNSIGNED_INT main::idx#9 = ++ main::idx#8 - SCREEN[main::idx#9] = '0'+SIZEOF_SIGNED_WORD + SCREEN[main::idx#9] = '0'+SIZEOF_INT main::idx#10 = ++ main::idx#9 - SCREEN[main::idx#10] = '0'+SIZEOF_WORD + SCREEN[main::idx#10] = '0'+SIZEOF_UNSIGNED_INT main::idx#11 = ++ main::idx#10 - SCREEN[main::idx#11] = '0'+SIZEOF_SIGNED_WORD + SCREEN[main::idx#11] = '0'+SIZEOF_INT main::idx#12 = ++ main::idx#11 - SCREEN[main::idx#12] = '0'+SIZEOF_WORD + SCREEN[main::idx#12] = '0'+SIZEOF_UNSIGNED_INT main::idx#13 = ++ main::idx#12 - SCREEN[main::idx#13] = '0'+SIZEOF_SIGNED_WORD + SCREEN[main::idx#13] = '0'+SIZEOF_INT main::idx#14 = ++ main::idx#13 main::idx#15 = ++ main::idx#14 SCREEN[main::idx#15] = '0'+SIZEOF_POINTER @@ -40,13 +40,13 @@ main: scope:[main] from __start SCREEN[main::idx#18] = '0'+SIZEOF_POINTER main::idx#19 = ++ main::idx#18 main::idx#20 = ++ main::idx#19 - SCREEN[main::idx#20] = '0'+SIZEOF_DWORD + SCREEN[main::idx#20] = '0'+SIZEOF_UNSIGNED_LONG main::idx#21 = ++ main::idx#20 - SCREEN[main::idx#21] = '0'+SIZEOF_SIGNED_DWORD + SCREEN[main::idx#21] = '0'+SIZEOF_LONG main::idx#22 = ++ main::idx#21 - SCREEN[main::idx#22] = '0'+SIZEOF_DWORD + SCREEN[main::idx#22] = '0'+SIZEOF_UNSIGNED_LONG main::idx#23 = ++ main::idx#22 - SCREEN[main::idx#23] = '0'+SIZEOF_SIGNED_DWORD + SCREEN[main::idx#23] = '0'+SIZEOF_LONG main::idx#24 = ++ main::idx#23 to:main::@return main::@return: scope:[main] from main @@ -55,7 +55,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -64,46 +64,46 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_BOOL = 1 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_DWORD = 4 -constant byte SIZEOF_POINTER = 2 -constant byte SIZEOF_SIGNED_BYTE = 1 -constant byte SIZEOF_SIGNED_DWORD = 4 -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_VOID = 0 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_BOOL = 1 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_LONG = 4 +__constant char SIZEOF_POINTER = 2 +__constant char SIZEOF_SIGNED_CHAR = 1 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char SIZEOF_UNSIGNED_LONG = 4 +__constant char SIZEOF_VOID = 0 void __start() void main() -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#11 -byte main::idx#12 -byte main::idx#13 -byte main::idx#14 -byte main::idx#15 -byte main::idx#16 -byte main::idx#17 -byte main::idx#18 -byte main::idx#19 -byte main::idx#2 -byte main::idx#20 -byte main::idx#21 -byte main::idx#22 -byte main::idx#23 -byte main::idx#24 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#11 +char main::idx#12 +char main::idx#13 +char main::idx#14 +char main::idx#15 +char main::idx#16 +char main::idx#17 +char main::idx#18 +char main::idx#19 +char main::idx#2 +char main::idx#20 +char main::idx#21 +char main::idx#22 +char main::idx#23 +char main::idx#24 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::idx#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -333,25 +333,25 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *SCREEN = '0' - [1] *(SCREEN+2) = '0'+SIZEOF_BYTE - [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_BYTE - [3] *(SCREEN+4) = '0'+SIZEOF_BYTE - [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_BYTE + [1] *(SCREEN+2) = '0'+SIZEOF_CHAR + [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_CHAR + [3] *(SCREEN+4) = '0'+SIZEOF_CHAR + [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_CHAR [5] *(SCREEN+6) = '0'+SIZEOF_BOOL - [6] *(SCREEN+8) = '0'+SIZEOF_WORD - [7] *(SCREEN+9) = '0'+SIZEOF_SIGNED_WORD - [8] *(SCREEN+$a) = '0'+SIZEOF_WORD - [9] *(SCREEN+$b) = '0'+SIZEOF_SIGNED_WORD - [10] *(SCREEN+$c) = '0'+SIZEOF_WORD - [11] *(SCREEN+$d) = '0'+SIZEOF_SIGNED_WORD + [6] *(SCREEN+8) = '0'+SIZEOF_UNSIGNED_INT + [7] *(SCREEN+9) = '0'+SIZEOF_INT + [8] *(SCREEN+$a) = '0'+SIZEOF_UNSIGNED_INT + [9] *(SCREEN+$b) = '0'+SIZEOF_INT + [10] *(SCREEN+$c) = '0'+SIZEOF_UNSIGNED_INT + [11] *(SCREEN+$d) = '0'+SIZEOF_INT [12] *(SCREEN+$f) = '0'+SIZEOF_POINTER [13] *(SCREEN+$10) = '0'+SIZEOF_POINTER [14] *(SCREEN+$11) = '0'+SIZEOF_POINTER [15] *(SCREEN+$12) = '0'+SIZEOF_POINTER - [16] *(SCREEN+$14) = '0'+SIZEOF_DWORD - [17] *(SCREEN+$15) = '0'+SIZEOF_SIGNED_DWORD - [18] *(SCREEN+$16) = '0'+SIZEOF_DWORD - [19] *(SCREEN+$17) = '0'+SIZEOF_SIGNED_DWORD + [16] *(SCREEN+$14) = '0'+SIZEOF_UNSIGNED_LONG + [17] *(SCREEN+$15) = '0'+SIZEOF_LONG + [18] *(SCREEN+$16) = '0'+SIZEOF_UNSIGNED_LONG + [19] *(SCREEN+$17) = '0'+SIZEOF_LONG to:main::@return main::@return: scope:[main] from main [20] return @@ -360,31 +360,31 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *SCREEN = '0' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+2) = '0'+SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+4) = '0'+SIZEOF_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+2) = '0'+SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+4) = '0'+SIZEOF_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_CHAR [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] *(SCREEN+6) = '0'+SIZEOF_BOOL [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *(SCREEN+8) = '0'+SIZEOF_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *(SCREEN+9) = '0'+SIZEOF_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] *(SCREEN+$a) = '0'+SIZEOF_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] *(SCREEN+$b) = '0'+SIZEOF_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *(SCREEN+$c) = '0'+SIZEOF_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] *(SCREEN+$d) = '0'+SIZEOF_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+8) = '0'+SIZEOF_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *(SCREEN+9) = '0'+SIZEOF_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] *(SCREEN+$a) = '0'+SIZEOF_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *(SCREEN+$b) = '0'+SIZEOF_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *(SCREEN+$c) = '0'+SIZEOF_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *(SCREEN+$d) = '0'+SIZEOF_INT [ ] ( [ ] { } ) always clobbers reg byte a Statement [12] *(SCREEN+$f) = '0'+SIZEOF_POINTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [13] *(SCREEN+$10) = '0'+SIZEOF_POINTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [14] *(SCREEN+$11) = '0'+SIZEOF_POINTER [ ] ( [ ] { } ) always clobbers reg byte a Statement [15] *(SCREEN+$12) = '0'+SIZEOF_POINTER [ ] ( [ ] { } ) always clobbers reg byte a -Statement [16] *(SCREEN+$14) = '0'+SIZEOF_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [17] *(SCREEN+$15) = '0'+SIZEOF_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [18] *(SCREEN+$16) = '0'+SIZEOF_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [19] *(SCREEN+$17) = '0'+SIZEOF_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [16] *(SCREEN+$14) = '0'+SIZEOF_UNSIGNED_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [17] *(SCREEN+$15) = '0'+SIZEOF_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [18] *(SCREEN+$16) = '0'+SIZEOF_UNSIGNED_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [19] *(SCREEN+$17) = '0'+SIZEOF_LONG [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -406,14 +406,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 - .const SIZEOF_SIGNED_BYTE = 1 + .const SIZEOF_CHAR = 1 + .const SIZEOF_SIGNED_CHAR = 1 .const SIZEOF_BOOL = 1 - .const SIZEOF_WORD = 2 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 + .const SIZEOF_INT = 2 .const SIZEOF_POINTER = 2 - .const SIZEOF_DWORD = 4 - .const SIZEOF_SIGNED_DWORD = 4 + .const SIZEOF_UNSIGNED_LONG = 4 + .const SIZEOF_LONG = 4 .label SCREEN = $400 .segment Code // main @@ -421,38 +421,38 @@ main: { // [0] *SCREEN = '0' -- _deref_pbuc1=vbuc2 lda #'0' sta SCREEN - // [1] *(SCREEN+2) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [1] *(SCREEN+2) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+2 - // [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_BYTE + // [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_SIGNED_CHAR sta SCREEN+3 - // [3] *(SCREEN+4) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [3] *(SCREEN+4) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+4 - // [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_BYTE + // [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_SIGNED_CHAR sta SCREEN+5 // [5] *(SCREEN+6) = '0'+SIZEOF_BOOL -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_BOOL sta SCREEN+6 - // [6] *(SCREEN+8) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [6] *(SCREEN+8) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+8 - // [7] *(SCREEN+9) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [7] *(SCREEN+9) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+9 - // [8] *(SCREEN+$a) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [8] *(SCREEN+$a) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+$a - // [9] *(SCREEN+$b) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [9] *(SCREEN+$b) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+$b - // [10] *(SCREEN+$c) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [10] *(SCREEN+$c) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+$c - // [11] *(SCREEN+$d) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [11] *(SCREEN+$d) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+$d // [12] *(SCREEN+$f) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_POINTER @@ -466,17 +466,17 @@ main: { // [15] *(SCREEN+$12) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_POINTER sta SCREEN+$12 - // [16] *(SCREEN+$14) = '0'+SIZEOF_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_DWORD + // [16] *(SCREEN+$14) = '0'+SIZEOF_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_LONG sta SCREEN+$14 - // [17] *(SCREEN+$15) = '0'+SIZEOF_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_DWORD + // [17] *(SCREEN+$15) = '0'+SIZEOF_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_LONG sta SCREEN+$15 - // [18] *(SCREEN+$16) = '0'+SIZEOF_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_DWORD + // [18] *(SCREEN+$16) = '0'+SIZEOF_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_LONG sta SCREEN+$16 - // [19] *(SCREEN+$17) = '0'+SIZEOF_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_DWORD + // [19] *(SCREEN+$17) = '0'+SIZEOF_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_LONG sta SCREEN+$17 jmp __breturn // main::@return @@ -497,17 +497,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BOOL = 1 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_DWORD = 4 -constant byte SIZEOF_POINTER = 2 -constant byte SIZEOF_SIGNED_BYTE = 1 -constant byte SIZEOF_SIGNED_DWORD = 4 -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_BOOL = 1 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_LONG = 4 +__constant char SIZEOF_POINTER = 2 +__constant char SIZEOF_SIGNED_CHAR = 1 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char SIZEOF_UNSIGNED_LONG = 4 void main() -byte main::idx +char main::idx @@ -526,14 +526,14 @@ Score: 120 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_BYTE = 1 - .const SIZEOF_SIGNED_BYTE = 1 + .const SIZEOF_CHAR = 1 + .const SIZEOF_SIGNED_CHAR = 1 .const SIZEOF_BOOL = 1 - .const SIZEOF_WORD = 2 - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 + .const SIZEOF_INT = 2 .const SIZEOF_POINTER = 2 - .const SIZEOF_DWORD = 4 - .const SIZEOF_SIGNED_DWORD = 4 + .const SIZEOF_UNSIGNED_LONG = 4 + .const SIZEOF_LONG = 4 .label SCREEN = $400 .segment Code // main @@ -543,48 +543,48 @@ main: { lda #'0' sta SCREEN // SCREEN[idx++] = '0'+sizeof(byte) - // [1] *(SCREEN+2) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [1] *(SCREEN+2) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+2 // SCREEN[idx++] = '0'+sizeof(signed byte) - // [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_BYTE + // [2] *(SCREEN+3) = '0'+SIZEOF_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_SIGNED_CHAR sta SCREEN+3 // SCREEN[idx++] = '0'+sizeof(unsigned char) - // [3] *(SCREEN+4) = '0'+SIZEOF_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_BYTE + // [3] *(SCREEN+4) = '0'+SIZEOF_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_CHAR sta SCREEN+4 // SCREEN[idx++] = '0'+sizeof(signed char) - // [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_BYTE + // [4] *(SCREEN+5) = '0'+SIZEOF_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_SIGNED_CHAR sta SCREEN+5 // SCREEN[idx++] = '0'+sizeof(bool) // [5] *(SCREEN+6) = '0'+SIZEOF_BOOL -- _deref_pbuc1=vbuc2 lda #'0'+SIZEOF_BOOL sta SCREEN+6 // SCREEN[idx++] = '0'+sizeof(word) - // [6] *(SCREEN+8) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [6] *(SCREEN+8) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+8 // SCREEN[idx++] = '0'+sizeof(signed word) - // [7] *(SCREEN+9) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [7] *(SCREEN+9) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+9 // SCREEN[idx++] = '0'+sizeof(unsigned int) - // [8] *(SCREEN+$a) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [8] *(SCREEN+$a) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+$a // SCREEN[idx++] = '0'+sizeof(signed int) - // [9] *(SCREEN+$b) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [9] *(SCREEN+$b) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+$b // SCREEN[idx++] = '0'+sizeof(unsigned short) - // [10] *(SCREEN+$c) = '0'+SIZEOF_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_WORD + // [10] *(SCREEN+$c) = '0'+SIZEOF_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_INT sta SCREEN+$c // SCREEN[idx++] = '0'+sizeof(signed short) - // [11] *(SCREEN+$d) = '0'+SIZEOF_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_WORD + // [11] *(SCREEN+$d) = '0'+SIZEOF_INT -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_INT sta SCREEN+$d // SCREEN[idx++] = '0'+sizeof(byte*) // [12] *(SCREEN+$f) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 @@ -600,20 +600,20 @@ main: { // [15] *(SCREEN+$12) = '0'+SIZEOF_POINTER -- _deref_pbuc1=vbuc2 sta SCREEN+$12 // SCREEN[idx++] = '0'+sizeof(dword) - // [16] *(SCREEN+$14) = '0'+SIZEOF_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_DWORD + // [16] *(SCREEN+$14) = '0'+SIZEOF_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_LONG sta SCREEN+$14 // SCREEN[idx++] = '0'+sizeof(signed dword) - // [17] *(SCREEN+$15) = '0'+SIZEOF_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_DWORD + // [17] *(SCREEN+$15) = '0'+SIZEOF_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_LONG sta SCREEN+$15 // SCREEN[idx++] = '0'+sizeof(unsigned long) - // [18] *(SCREEN+$16) = '0'+SIZEOF_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_DWORD + // [18] *(SCREEN+$16) = '0'+SIZEOF_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_UNSIGNED_LONG sta SCREEN+$16 // SCREEN[idx++] = '0'+sizeof(signed long) - // [19] *(SCREEN+$17) = '0'+SIZEOF_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #'0'+SIZEOF_SIGNED_DWORD + // [19] *(SCREEN+$17) = '0'+SIZEOF_LONG -- _deref_pbuc1=vbuc2 + lda #'0'+SIZEOF_LONG sta SCREEN+$17 // main::@return // } diff --git a/src/test/ref/sizeof-types.sym b/src/test/ref/sizeof-types.sym index 16dd92314..776194d20 100644 --- a/src/test/ref/sizeof-types.sym +++ b/src/test/ref/sizeof-types.sym @@ -1,12 +1,12 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_BOOL = 1 -constant byte SIZEOF_BYTE = 1 -constant byte SIZEOF_DWORD = 4 -constant byte SIZEOF_POINTER = 2 -constant byte SIZEOF_SIGNED_BYTE = 1 -constant byte SIZEOF_SIGNED_DWORD = 4 -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_WORD = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_BOOL = 1 +__constant char SIZEOF_CHAR = 1 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_LONG = 4 +__constant char SIZEOF_POINTER = 2 +__constant char SIZEOF_SIGNED_CHAR = 1 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant char SIZEOF_UNSIGNED_LONG = 4 void main() -byte main::idx +char main::idx diff --git a/src/test/ref/sqr-delta.asm b/src/test/ref/sqr-delta.asm index 434232ff7..4933558e4 100644 --- a/src/test/ref/sqr-delta.asm +++ b/src/test/ref/sqr-delta.asm @@ -25,6 +25,7 @@ main: { // } rts } +// __zp(6) unsigned long ifunc(unsigned long a) ifunc: { .const a = 8 .label x = 6 diff --git a/src/test/ref/sqr-delta.cfg b/src/test/ref/sqr-delta.cfg index 12c810551..da87cf00f 100644 --- a/src/test/ref/sqr-delta.cfg +++ b/src/test/ref/sqr-delta.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call ifunc + [1] call ifunc [2] ifunc::return#2 = ifunc::return#0 to:main::@1 main::@1: scope:[main] from main @@ -13,7 +13,7 @@ main::@return: scope:[main] from main::@1 [5] return to:@return -dword ifunc(dword ifunc::a) +unsigned long ifunc(unsigned long a) ifunc: scope:[ifunc] from main [6] phi() to:ifunc::@1 diff --git a/src/test/ref/sqr-delta.log b/src/test/ref/sqr-delta.log index cc92fd63c..7b05ade8d 100644 --- a/src/test/ref/sqr-delta.log +++ b/src/test/ref/sqr-delta.log @@ -1,8 +1,8 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -dword ifunc(dword ifunc::a) +unsigned long ifunc(unsigned long a) ifunc: scope:[ifunc] from main ifunc::a#2 = phi( main/ifunc::a#0 ) ifunc::x#0 = 1 @@ -40,13 +40,13 @@ ifunc::@return: scope:[ifunc] from ifunc::@3 void main() main: scope:[main] from __start::@1 ifunc::a#0 = 8 - call ifunc + call ifunc ifunc::return#2 = ifunc::return#1 to:main::@1 main::@1: scope:[main] from main ifunc::return#4 = phi( main/ifunc::return#2 ) main::$0 = ifunc::return#4 - main::$1 = 0 * SIZEOF_DWORD + main::$1 = 0 * SIZEOF_UNSIGNED_LONG SCREEN[main::$1] = main::$0 to:main::@return main::@return: scope:[main] from main::@1 @@ -59,7 +59,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -68,60 +68,60 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant dword* SCREEN = (byte*)$400 -constant byte SIZEOF_DWORD = 4 +__constant unsigned long *SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_LONG = 4 void __start() -dword ifunc(dword ifunc::a) -bool~ ifunc::$0 -dword ifunc::a -dword ifunc::a#0 -dword ifunc::a#1 -dword ifunc::a#2 -dword ifunc::a#3 -dword ifunc::delta -dword ifunc::delta#0 -dword ifunc::delta#1 -dword ifunc::delta#2 -dword ifunc::delta#3 -dword ifunc::return -dword ifunc::return#0 -dword ifunc::return#1 -dword ifunc::return#2 -dword ifunc::return#3 -dword ifunc::return#4 -dword ifunc::x -dword ifunc::x#0 -dword ifunc::x#1 -dword ifunc::x#2 -dword ifunc::x#3 -dword ifunc::x#4 -dword ifunc::x#5 -dword ifunc::xsqr -dword ifunc::xsqr#0 -dword ifunc::xsqr#1 -dword ifunc::xsqr#2 -dword ifunc::xsqr#3 +unsigned long ifunc(unsigned long a) +bool ifunc::$0 +unsigned long ifunc::a +unsigned long ifunc::a#0 +unsigned long ifunc::a#1 +unsigned long ifunc::a#2 +unsigned long ifunc::a#3 +unsigned long ifunc::delta +unsigned long ifunc::delta#0 +unsigned long ifunc::delta#1 +unsigned long ifunc::delta#2 +unsigned long ifunc::delta#3 +unsigned long ifunc::return +unsigned long ifunc::return#0 +unsigned long ifunc::return#1 +unsigned long ifunc::return#2 +unsigned long ifunc::return#3 +unsigned long ifunc::return#4 +unsigned long ifunc::x +unsigned long ifunc::x#0 +unsigned long ifunc::x#1 +unsigned long ifunc::x#2 +unsigned long ifunc::x#3 +unsigned long ifunc::x#4 +unsigned long ifunc::x#5 +unsigned long ifunc::xsqr +unsigned long ifunc::xsqr#0 +unsigned long ifunc::xsqr#1 +unsigned long ifunc::xsqr#2 +unsigned long ifunc::xsqr#3 void main() -dword~ main::$0 -number~ main::$1 +unsigned long main::$0 +number main::$1 Adding number conversion cast (unumber) 2 in ifunc::delta#1 = ifunc::delta#2 + 2 Adding number conversion cast (unumber) 8 in ifunc::a#0 = 8 -Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_DWORD -Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_DWORD +Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_UNSIGNED_LONG +Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_UNSIGNED_LONG Successful SSA optimization PassNAddNumberTypeConversions Inlining cast ifunc::a#0 = (unumber)8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = 0 * SIZEOF_DWORD +Inferred type updated to char in main::$1 = 0 * SIZEOF_UNSIGNED_LONG Alias ifunc::x#3 = ifunc::x#5 ifunc::x#4 Alias ifunc::xsqr#2 = ifunc::xsqr#3 Alias ifunc::delta#2 = ifunc::delta#3 @@ -134,21 +134,21 @@ Identical Phi Values ifunc::a#1 ifunc::a#2 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition ifunc::$0 [6] if(ifunc::xsqr#2<=ifunc::a#0) goto ifunc::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [16] main::$1 = 0 * SIZEOF_DWORD +Constant right-side identified [16] main::$1 = 0 * SIZEOF_UNSIGNED_LONG Successful SSA optimization Pass2ConstantRValueConsolidation Constant ifunc::x#0 = 1 Constant ifunc::xsqr#0 = 1 Constant ifunc::delta#0 = 3 Constant ifunc::a#0 = 8 -Constant main::$1 = 0*SIZEOF_DWORD +Constant main::$1 = 0*SIZEOF_UNSIGNED_LONG Successful SSA optimization Pass2ConstantIdentification Rewriting conditional comparison [6] if(ifunc::xsqr#2<=ifunc::a#0) goto ifunc::@2 -Simplifying constant evaluating to zero 0*SIZEOF_DWORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_LONG in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero SCREEN in [17] SCREEN[main::$1] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$1 -Eliminating unused constant SIZEOF_DWORD +Eliminating unused constant SIZEOF_UNSIGNED_LONG Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start @@ -163,7 +163,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast ifunc::a#0+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings ifunc::x#0 Inlining constant with var siblings ifunc::xsqr#0 @@ -190,7 +190,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call ifunc + [1] call ifunc [2] ifunc::return#2 = ifunc::return#0 to:main::@1 main::@1: scope:[main] from main @@ -201,7 +201,7 @@ main::@return: scope:[main] from main::@1 [5] return to:@return -dword ifunc(dword ifunc::a) +unsigned long ifunc(unsigned long a) ifunc: scope:[ifunc] from main [6] phi() to:ifunc::@1 @@ -225,22 +225,22 @@ ifunc::@2: scope:[ifunc] from ifunc::@1 VARIABLE REGISTER WEIGHTS -dword ifunc(dword ifunc::a) -dword ifunc::a -dword ifunc::delta -dword ifunc::delta#1 202.0 -dword ifunc::delta#2 75.75 -dword ifunc::return -dword ifunc::return#0 4.333333333333333 -dword ifunc::return#2 4.0 -dword ifunc::x -dword ifunc::x#1 67.33333333333333 -dword ifunc::x#3 106.5 -dword ifunc::xsqr -dword ifunc::xsqr#1 101.0 -dword ifunc::xsqr#2 101.0 +unsigned long ifunc(unsigned long a) +unsigned long ifunc::a +unsigned long ifunc::delta +unsigned long ifunc::delta#1 // 202.0 +unsigned long ifunc::delta#2 // 75.75 +unsigned long ifunc::return +unsigned long ifunc::return#0 // 4.333333333333333 +unsigned long ifunc::return#2 // 4.0 +unsigned long ifunc::x +unsigned long ifunc::x#1 // 67.33333333333333 +unsigned long ifunc::x#3 // 106.5 +unsigned long ifunc::xsqr +unsigned long ifunc::xsqr#1 // 101.0 +unsigned long ifunc::xsqr#2 // 101.0 void main() -dword~ main::$0 4.0 +unsigned long main::$0 // 4.0 Initial phi equivalence classes [ ifunc::xsqr#2 ifunc::xsqr#1 ] @@ -306,7 +306,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label __0 = 6 - // [1] call ifunc + // [1] call ifunc // [6] phi from main to ifunc [phi:main->ifunc] ifunc_from_main: jsr ifunc @@ -331,6 +331,7 @@ main: { rts } // ifunc +// __zp(6) unsigned long ifunc(unsigned long a) ifunc: { .const a = 8 .label x = 6 @@ -471,24 +472,24 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant dword* SCREEN = (byte*) 1024 -dword ifunc(dword ifunc::a) -dword ifunc::a -constant dword ifunc::a#0 a = 8 -dword ifunc::delta -dword ifunc::delta#1 delta zp[4]:10 202.0 -dword ifunc::delta#2 delta zp[4]:10 75.75 -dword ifunc::return -dword ifunc::return#0 return zp[4]:6 4.333333333333333 -dword ifunc::return#2 return zp[4]:6 4.0 -dword ifunc::x -dword ifunc::x#1 x zp[4]:6 67.33333333333333 -dword ifunc::x#3 x zp[4]:6 106.5 -dword ifunc::xsqr -dword ifunc::xsqr#1 xsqr zp[4]:2 101.0 -dword ifunc::xsqr#2 xsqr zp[4]:2 101.0 +__constant unsigned long *SCREEN = (char *) 1024 +unsigned long ifunc(unsigned long a) +unsigned long ifunc::a +__constant unsigned long ifunc::a#0 = 8 // a +unsigned long ifunc::delta +unsigned long ifunc::delta#1 // delta zp[4]:10 202.0 +unsigned long ifunc::delta#2 // delta zp[4]:10 75.75 +unsigned long ifunc::return +unsigned long ifunc::return#0 // return zp[4]:6 4.333333333333333 +unsigned long ifunc::return#2 // return zp[4]:6 4.0 +unsigned long ifunc::x +unsigned long ifunc::x#1 // x zp[4]:6 67.33333333333333 +unsigned long ifunc::x#3 // x zp[4]:6 106.5 +unsigned long ifunc::xsqr +unsigned long ifunc::xsqr#1 // xsqr zp[4]:2 101.0 +unsigned long ifunc::xsqr#2 // xsqr zp[4]:2 101.0 void main() -dword~ main::$0 zp[4]:6 4.0 +unsigned long main::$0 // zp[4]:6 4.0 zp[4]:2 [ ifunc::xsqr#2 ifunc::xsqr#1 ] zp[4]:6 [ ifunc::x#3 ifunc::x#1 ifunc::return#0 ifunc::return#2 main::$0 ] @@ -515,7 +516,7 @@ Score: 2065 main: { .label __0 = 6 // ifunc(8) - // [1] call ifunc + // [1] call ifunc // [6] phi from main to ifunc [phi:main->ifunc] jsr ifunc // ifunc(8) @@ -538,6 +539,7 @@ main: { rts } // ifunc +// __zp(6) unsigned long ifunc(unsigned long a) ifunc: { .const a = 8 .label x = 6 diff --git a/src/test/ref/sqr-delta.sym b/src/test/ref/sqr-delta.sym index fba5fb044..5ec91495f 100644 --- a/src/test/ref/sqr-delta.sym +++ b/src/test/ref/sqr-delta.sym @@ -1,21 +1,21 @@ -constant dword* SCREEN = (byte*) 1024 -dword ifunc(dword ifunc::a) -dword ifunc::a -constant dword ifunc::a#0 a = 8 -dword ifunc::delta -dword ifunc::delta#1 delta zp[4]:10 202.0 -dword ifunc::delta#2 delta zp[4]:10 75.75 -dword ifunc::return -dword ifunc::return#0 return zp[4]:6 4.333333333333333 -dword ifunc::return#2 return zp[4]:6 4.0 -dword ifunc::x -dword ifunc::x#1 x zp[4]:6 67.33333333333333 -dword ifunc::x#3 x zp[4]:6 106.5 -dword ifunc::xsqr -dword ifunc::xsqr#1 xsqr zp[4]:2 101.0 -dword ifunc::xsqr#2 xsqr zp[4]:2 101.0 +__constant unsigned long *SCREEN = (char *) 1024 +unsigned long ifunc(unsigned long a) +unsigned long ifunc::a +__constant unsigned long ifunc::a#0 = 8 // a +unsigned long ifunc::delta +unsigned long ifunc::delta#1 // delta zp[4]:10 202.0 +unsigned long ifunc::delta#2 // delta zp[4]:10 75.75 +unsigned long ifunc::return +unsigned long ifunc::return#0 // return zp[4]:6 4.333333333333333 +unsigned long ifunc::return#2 // return zp[4]:6 4.0 +unsigned long ifunc::x +unsigned long ifunc::x#1 // x zp[4]:6 67.33333333333333 +unsigned long ifunc::x#3 // x zp[4]:6 106.5 +unsigned long ifunc::xsqr +unsigned long ifunc::xsqr#1 // xsqr zp[4]:2 101.0 +unsigned long ifunc::xsqr#2 // xsqr zp[4]:2 101.0 void main() -dword~ main::$0 zp[4]:6 4.0 +unsigned long main::$0 // zp[4]:6 4.0 zp[4]:2 [ ifunc::xsqr#2 ifunc::xsqr#1 ] zp[4]:6 [ ifunc::x#3 ifunc::x#1 ifunc::return#0 ifunc::return#2 main::$0 ] diff --git a/src/test/ref/stack-relative-addressing.log b/src/test/ref/stack-relative-addressing.log index d0f7f961c..086bef0c7 100644 --- a/src/test/ref/stack-relative-addressing.log +++ b/src/test/ref/stack-relative-addressing.log @@ -4,7 +4,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start asm { lda#'1' pha lda#'2' pha lda#'3' pha } - call peek_stack + call peek_stack to:main::@1 main::@1: scope:[main] from main asm { pla pla pla } @@ -23,7 +23,7 @@ peek_stack::@return: scope:[peek_stack] from peek_stack void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,14 +32,14 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte* const STACK = (byte*)$103 +__constant char * const SCREEN = (char *)$400 +__constant char * const STACK = (char *)$103 void __start() void main() void peek_stack() -Simplifying constant pointer cast (byte*) 259 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 259 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -57,7 +57,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from asm { lda#'1' pha lda#'2' pha lda#'3' pha } - [1] call peek_stack + [1] call peek_stack to:main::@1 main::@1: scope:[main] from main asm { pla pla pla } @@ -123,7 +123,7 @@ main: { pha lda #'3' pha - // [1] call peek_stack + // [1] call peek_stack // Then call a function jsr peek_stack jmp __b1 @@ -170,8 +170,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* const STACK = (byte*) 259 +__constant char * const SCREEN = (char *) 1024 +__constant char * const STACK = (char *) 259 void main() void peek_stack() @@ -209,7 +209,7 @@ main: { lda #'3' pha // peek_stack() - // [1] call peek_stack + // [1] call peek_stack // Then call a function jsr peek_stack // main::@1 diff --git a/src/test/ref/stack-relative-addressing.sym b/src/test/ref/stack-relative-addressing.sym index db358002f..6bc973f5f 100644 --- a/src/test/ref/stack-relative-addressing.sym +++ b/src/test/ref/stack-relative-addressing.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte* const STACK = (byte*) 259 +__constant char * const SCREEN = (char *) 1024 +__constant char * const STACK = (char *) 259 void main() void peek_stack() diff --git a/src/test/ref/stars-2.asm b/src/test/ref/stars-2.asm index 2edeac644..bf292d956 100644 --- a/src/test/ref/stars-2.asm +++ b/src/test/ref/stars-2.asm @@ -108,7 +108,7 @@ main: { } .segment Code // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $13 @@ -253,7 +253,7 @@ clrscr: { jmp __b3 } // Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) +// void printf_uchar(__register(X) char uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uchar: { // printf_buffer.sign = format.sign_always?'+':0 // Handle any sign @@ -270,7 +270,7 @@ printf_uchar: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(3) s) +// void cputs(__zp(3) const char *s) cputs: { .label s = 3 __b1: @@ -295,7 +295,7 @@ cputs: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp(7) buffer) +// void uctoa(__register(X) char value, __zp(7) char *buffer, char radix) uctoa: { .label digit_value = $15 .label buffer = 7 @@ -358,7 +358,7 @@ uctoa: { } // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // if(buffer.sign) @@ -378,7 +378,7 @@ printf_number_buffer: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -412,7 +412,7 @@ cputc: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp(7) buffer, byte register(X) value, byte zp($15) sub) +// __register(X) char uctoa_append(__zp(7) char *buffer, __register(X) char value, __zp($15) char sub) uctoa_append: { .label buffer = 7 .label sub = $15 @@ -529,7 +529,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($18) destination, void* zp(7) source) +// void * memcpy(__zp($18) void *destination, __zp(7) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = $18 @@ -571,7 +571,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(7) str, byte register(X) c) +// void * memset(__zp(7) void *str, __register(X) char c, unsigned int num) memset: { .label end = $18 .label dst = 7 diff --git a/src/test/ref/stars-2.cfg b/src/test/ref/stars-2.cfg index d01a97f8a..9e1e41c2d 100644 --- a/src/test/ref/stars-2.cfg +++ b/src/test/ref/stars-2.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -29,7 +29,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -38,7 +38,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 [16] phi() - [17] call clrscr + [17] call clrscr to:main::@1 main::@1: scope:[main] from main main::@6 [18] main::i#2 = phi( main/0, main::@6/main::i#1 ) @@ -48,26 +48,26 @@ main::@return: scope:[main] from main::@1 [20] return to:@return main::@2: scope:[main] from main::@1 - [21] printf_uchar::uvalue#0 = ((byte*)&stars)[main::i#2] - [22] call printf_uchar + [21] printf_uchar::uvalue#0 = ((char *)&stars)[main::i#2] + [22] call printf_uchar to:main::@3 main::@3: scope:[main] from main::@2 [23] phi() - [24] call cputs + [24] call cputs to:main::@4 main::@4: scope:[main] from main::@3 - [25] printf_uchar::uvalue#1 = ((byte*)&stars+5)[main::i#2] - [26] call printf_uchar + [25] printf_uchar::uvalue#1 = ((char *)&stars+5)[main::i#2] + [26] call printf_uchar to:main::@5 main::@5: scope:[main] from main::@4 [27] phi() - [28] call cputs + [28] call cputs to:main::@6 main::@6: scope:[main] from main::@5 [29] main::i#1 = ++ main::i#2 to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [30] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -80,7 +80,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [33] conio_cursor_x = gotoxy::x#2 [34] conio_cursor_y = gotoxy::y#4 - [35] gotoxy::$7 = (word)gotoxy::y#4 + [35] gotoxy::$7 = (unsigned int)gotoxy::y#4 [36] gotoxy::$8 = gotoxy::$7 << 2 [37] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [38] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -127,24 +127,24 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [59] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uchar: scope:[printf_uchar] from main::@2 main::@4 [60] printf_uchar::uvalue#2 = phi( main::@2/printf_uchar::uvalue#0, main::@4/printf_uchar::uvalue#1 ) to:printf_uchar::@1 printf_uchar::@1: scope:[printf_uchar] from printf_uchar - [61] *((byte*)&printf_buffer) = 0 + [61] *((char *)&printf_buffer) = 0 [62] uctoa::value#1 = printf_uchar::uvalue#2 - [63] call uctoa + [63] call uctoa to:printf_uchar::@2 printf_uchar::@2: scope:[printf_uchar] from printf_uchar::@1 - [64] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) - [65] call printf_number_buffer + [64] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [65] call printf_number_buffer to:printf_uchar::@return printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@2 [66] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@3 main::@5 printf_number_buffer::@2 [67] cputs::s#5 = phi( main::@3/main::s, main::@5/main::s1, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0 ) to:cputs::@1 @@ -159,15 +159,15 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [73] cputc::c#0 = cputs::c#1 - [74] call cputc + [74] call cputc to:cputs::@1 -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_uchar::@1 [75] phi() to:uctoa::@1 uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [76] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [76] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [76] uctoa::started#2 = phi( uctoa::@4/uctoa::started#4, uctoa/0 ) [76] uctoa::value#2 = phi( uctoa::@4/uctoa::value#6, uctoa/uctoa::value#1 ) [76] uctoa::digit#2 = phi( uctoa::@4/uctoa::digit#1, uctoa/0 ) @@ -198,7 +198,7 @@ uctoa::@5: scope:[uctoa] from uctoa::@2 uctoa::@7 [87] uctoa_append::buffer#0 = uctoa::buffer#11 [88] uctoa_append::value#0 = uctoa::value#2 [89] uctoa_append::sub#0 = uctoa::digit_value#0 - [90] call uctoa_append + [90] call uctoa_append [91] uctoa_append::return#0 = uctoa_append::value#2 to:uctoa::@6 uctoa::@6: scope:[uctoa] from uctoa::@5 @@ -206,7 +206,7 @@ uctoa::@6: scope:[uctoa] from uctoa::@5 [93] uctoa::buffer#4 = ++ uctoa::buffer#11 to:uctoa::@4 -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@2 [94] phi() to:printf_number_buffer::@1 @@ -215,17 +215,17 @@ printf_number_buffer::@1: scope:[printf_number_buffer] from printf_number_buffe to:printf_number_buffer::@3 printf_number_buffer::@3: scope:[printf_number_buffer] from printf_number_buffer::@1 [96] cputc::c#2 = printf_number_buffer::buffer_sign#0 - [97] call cputc + [97] call cputc to:printf_number_buffer::@2 printf_number_buffer::@2: scope:[printf_number_buffer] from printf_number_buffer::@1 printf_number_buffer::@3 [98] phi() - [99] call cputs + [99] call cputs to:printf_number_buffer::@return printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_buffer::@2 [100] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@3 [101] cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@3/cputc::c#2 ) [102] if(cputc::c#3==' @@ -239,17 +239,17 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [107] phi() - [108] call cputln + [108] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [109] return to:@return cputc::@1: scope:[cputc] from cputc [110] phi() - [111] call cputln + [111] call cputln to:cputc::@return -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@5 [112] phi() to:uctoa_append::@1 @@ -275,7 +275,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [120] conio_line_color = conio_line_color + $28 [121] conio_cursor_x = 0 [122] conio_cursor_y = ++ conio_cursor_y - [123] call cscroll + [123] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [124] return @@ -287,19 +287,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [126] phi() - [127] call memcpy + [127] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [128] phi() - [129] call memcpy + [129] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [130] phi() - [131] call memset + [131] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [132] phi() - [133] call memset + [133] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [134] conio_line_text = conio_line_text - $28 @@ -310,13 +310,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [137] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [138] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [138] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [139] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [140] memcpy::src#4 = (byte*)memcpy::source#2 - [141] memcpy::dst#4 = (byte*)memcpy::destination#2 + [138] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [138] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [139] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [140] memcpy::src#4 = (char *)memcpy::source#2 + [141] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [142] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -332,14 +332,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [147] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [148] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [148] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [148] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [149] memset::end#0 = (byte*)memset::str#3 + $28 - [150] memset::dst#4 = (byte*)memset::str#3 + [149] memset::end#0 = (char *)memset::str#3 + $28 + [150] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [151] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/stars-2.log b/src/test/ref/stars-2.log index 6b6a933a1..ec3df9dec 100644 --- a/src/test/ref/stars-2.log +++ b/src/test/ref/stars-2.log @@ -6,7 +6,7 @@ Fixing struct type SIZE_OF struct printf_buffer_number to 12 Added struct type cast to parameter value list call printf_uchar((stars.star_x)[main::i], (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL }) Added struct type cast to parameter value list call printf_uchar((stars.star_y)[main::i], (struct printf_format_number){ 0, 0, 0, 0, 0, DECIMAL }) Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 @@ -14,14 +14,14 @@ Eliminating unused variable with no statement main::$2 CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -51,7 +51,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -68,9 +68,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -94,7 +94,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from printf_number_buffer::@6 strlen::str#4 = phi( printf_number_buffer::@6/strlen::str#1 ) strlen::len#0 = 0 @@ -121,7 +121,7 @@ strlen::@return: scope:[strlen] from strlen::@3 return to:@return -byte toupper(byte toupper::ch) +char toupper(char ch) toupper: scope:[toupper] from strupr::@2 toupper::ch#1 = phi( strupr::@2/toupper::ch#0 ) toupper::$0 = toupper::ch#1 >= 'a' @@ -144,7 +144,7 @@ toupper::@return: scope:[toupper] from toupper::@1 toupper::@2 return to:@return -byte* strupr(byte* strupr::str) +char * strupr(char *str) strupr: scope:[strupr] from printf_number_buffer::@11 strupr::str#1 = phi( printf_number_buffer::@11/strupr::str#0 ) strupr::src#0 = strupr::str#1 @@ -159,7 +159,7 @@ strupr::@2: scope:[strupr] from strupr::@1 strupr::str#5 = phi( strupr::@1/strupr::str#3 ) strupr::src#3 = phi( strupr::@1/strupr::src#2 ) toupper::ch#0 = *strupr::src#3 - call toupper + call toupper toupper::return#3 = toupper::return#2 to:strupr::@4 strupr::@4: scope:[strupr] from strupr::@2 @@ -180,13 +180,13 @@ strupr::@return: scope:[strupr] from strupr::@3 return to:@return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_uchar::@3 uctoa::buffer#21 = phi( printf_uchar::@3/uctoa::buffer#5 ) uctoa::value#12 = phi( printf_uchar::@3/uctoa::value#1 ) uctoa::radix#1 = phi( printf_uchar::@3/uctoa::radix#0 ) uctoa::max_digits#0 = 0 - uctoa::digit_values#0 = (byte*) 0 + uctoa::digit_values#0 = (char *) 0 uctoa::$0 = uctoa::radix#1 == DECIMAL if(uctoa::$0) goto uctoa::@1 to:uctoa::@6 @@ -283,7 +283,7 @@ uctoa::@11: scope:[uctoa] from uctoa::@10 uctoa::@12: scope:[uctoa] from uctoa::@10 uctoa::buffer#7 = phi( uctoa::@10/uctoa::buffer#11 ) uctoa::value#3 = phi( uctoa::@10/uctoa::value#5 ) - uctoa::$10 = (byte)uctoa::value#3 + uctoa::$10 = (char)uctoa::value#3 *uctoa::buffer#7 = DIGITS[uctoa::$10] uctoa::buffer#3 = ++ uctoa::buffer#7 *uctoa::buffer#3 = 0 @@ -307,7 +307,7 @@ uctoa::@14: scope:[uctoa] from uctoa::@11 uctoa_append::buffer#0 = uctoa::buffer#8 uctoa_append::value#0 = uctoa::value#4 uctoa_append::sub#0 = uctoa::digit_value#1 - call uctoa_append + call uctoa_append uctoa_append::return#0 = uctoa_append::return#2 to:uctoa::@15 uctoa::@15: scope:[uctoa] from uctoa::@14 @@ -322,7 +322,7 @@ uctoa::@15: scope:[uctoa] from uctoa::@14 uctoa::started#1 = 1 to:uctoa::@13 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@14 uctoa_append::buffer#3 = phi( uctoa::@14/uctoa_append::buffer#0 ) uctoa_append::sub#3 = phi( uctoa::@14/uctoa_append::sub#0 ) @@ -412,7 +412,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -436,7 +436,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -451,7 +451,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@9/cputc::c#2, printf_padding::@2/cputc::c#1 ) cputc::$0 = cputc::c#3 == ' @@ -459,7 +459,7 @@ cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -473,7 +473,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -487,7 +487,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -495,7 +495,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@4 main::@6 printf_number_buffer::@5 cputs::s#5 = phi( main::@4/cputs::s#2, main::@6/cputs::s#3, printf_number_buffer::@5/cputs::s#1 ) cputs::c#0 = 0 @@ -512,7 +512,7 @@ cputs::@2: scope:[cputs] from cputs::@1 cputs::s#7 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 - call cputc + call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#6 = phi( cputs::@2/cputs::s#7 ) @@ -532,31 +532,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -567,7 +567,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -586,7 +586,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -597,7 +597,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_padding::pad#5 = phi( printf_number_buffer::@10/printf_padding::pad#1, printf_number_buffer::@12/printf_padding::pad#2, printf_number_buffer::@8/printf_padding::pad#0 ) printf_padding::length#4 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0 ) @@ -615,7 +615,7 @@ printf_padding::@2: scope:[printf_padding] from printf_padding::@1 printf_padding::i#4 = phi( printf_padding::@1/printf_padding::i#2 ) printf_padding::pad#3 = phi( printf_padding::@1/printf_padding::pad#4 ) cputc::c#1 = printf_padding::pad#3 - call cputc + call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 printf_padding::pad#6 = phi( printf_padding::@2/printf_padding::pad#3 ) @@ -627,7 +627,7 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 return to:@return -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uchar: scope:[printf_uchar] from main::@2 main::@5 printf_uchar::format_upper_case#6 = phi( main::@2/printf_uchar::format_upper_case#0, main::@5/printf_uchar::format_upper_case#1 ) printf_uchar::format_zero_padding#6 = phi( main::@2/printf_uchar::format_zero_padding#0, main::@5/printf_uchar::format_zero_padding#1 ) @@ -668,11 +668,11 @@ printf_uchar::@3: scope:[printf_uchar] from printf_uchar::@1 printf_uchar::@2 printf_uchar::format_radix#2 = phi( printf_uchar::@1/printf_uchar::format_radix#4, printf_uchar::@2/printf_uchar::format_radix#5 ) printf_uchar::uvalue#2 = phi( printf_uchar::@1/printf_uchar::uvalue#3, printf_uchar::@2/printf_uchar::uvalue#4 ) printf_uchar::$2 = phi( printf_uchar::@1/printf_uchar::$1, printf_uchar::@2/printf_uchar::$0 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 uctoa::value#1 = printf_uchar::uvalue#2 - uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS uctoa::radix#0 = printf_uchar::format_radix#2 - call uctoa + call uctoa to:printf_uchar::@4 printf_uchar::@4: scope:[printf_uchar] from printf_uchar::@3 printf_uchar::format_radix#3 = phi( printf_uchar::@3/printf_uchar::format_radix#2 ) @@ -681,15 +681,15 @@ printf_uchar::@4: scope:[printf_uchar] from printf_uchar::@3 printf_uchar::format_sign_always#3 = phi( printf_uchar::@3/printf_uchar::format_sign_always#4 ) printf_uchar::format_justify_left#2 = phi( printf_uchar::@3/printf_uchar::format_justify_left#3 ) printf_uchar::format_min_length#2 = phi( printf_uchar::@3/printf_uchar::format_min_length#3 ) - printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) + printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_number_buffer::format_min_length#0 = printf_uchar::format_min_length#2 printf_number_buffer::format_justify_left#0 = printf_uchar::format_justify_left#2 printf_number_buffer::format_sign_always#0 = printf_uchar::format_sign_always#3 printf_number_buffer::format_zero_padding#0 = printf_uchar::format_zero_padding#2 printf_number_buffer::format_upper_case#0 = printf_uchar::format_upper_case#2 printf_number_buffer::format_radix#0 = printf_uchar::format_radix#3 - call printf_number_buffer + call printf_number_buffer to:printf_uchar::@5 printf_uchar::@5: scope:[printf_uchar] from printf_uchar::@4 to:printf_uchar::@return @@ -697,7 +697,7 @@ printf_uchar::@return: scope:[printf_uchar] from printf_uchar::@5 return to:@return -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uchar::@4 printf_number_buffer::format_upper_case#10 = phi( printf_uchar::@4/printf_number_buffer::format_upper_case#0 ) printf_number_buffer::buffer_sign#7 = phi( printf_uchar::@4/printf_number_buffer::buffer_sign#0 ) @@ -734,7 +734,7 @@ printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#4 = phi( printf_number_buffer/printf_number_buffer::buffer_sign#7 ) printf_number_buffer::buffer_digits#1 = phi( printf_number_buffer/printf_number_buffer::buffer_digits#4 ) strlen::str#1 = printf_number_buffer::buffer_digits#1 - call strlen + call strlen strlen::return#2 = strlen::return#1 to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@6 @@ -746,7 +746,7 @@ printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::buffer_sign#1 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_sign#4 ) strlen::return#4 = phi( printf_number_buffer::@6/strlen::return#2 ) printf_number_buffer::$19 = strlen::return#4 - printf_number_buffer::len#0 = (signed byte)printf_number_buffer::$19 + printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#1 printf_number_buffer::$20 = ! printf_number_buffer::$29 if(printf_number_buffer::$20) goto printf_number_buffer::@13 @@ -759,7 +759,7 @@ printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_justify_left#4 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#7, printf_number_buffer::@7/printf_number_buffer::format_justify_left#8 ) printf_number_buffer::len#2 = phi( printf_number_buffer::@15/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) printf_number_buffer::format_min_length#2 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#3, printf_number_buffer::@7/printf_number_buffer::format_min_length#4 ) - printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#2 + printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 printf_number_buffer::$21 = printf_number_buffer::$25 - printf_number_buffer::len#2 printf_number_buffer::padding#1 = printf_number_buffer::$21 printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0 @@ -803,8 +803,8 @@ printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#10 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#5 ) printf_number_buffer::padding#4 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3 ) printf_padding::pad#0 = ' ' - printf_padding::length#0 = (byte)printf_number_buffer::padding#4 - call printf_padding + printf_padding::length#0 = (char)printf_number_buffer::padding#4 + call printf_padding to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@8 printf_number_buffer::format_justify_left#18 = phi( printf_number_buffer::@8/printf_number_buffer::format_justify_left#20 ) @@ -832,7 +832,7 @@ printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#13 = phi( printf_number_buffer::@2/printf_number_buffer::format_zero_padding#8 ) printf_number_buffer::buffer_sign#3 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_sign#2 ) cputc::c#2 = printf_number_buffer::buffer_sign#3 - call cputc + call cputc to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@9 printf_number_buffer::format_justify_left#15 = phi( printf_number_buffer::@9/printf_number_buffer::format_justify_left#19 ) @@ -858,8 +858,8 @@ printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_upper_case#6 = phi( printf_number_buffer::@3/printf_number_buffer::format_upper_case#3 ) printf_number_buffer::padding#6 = phi( printf_number_buffer::@3/printf_number_buffer::padding#5 ) printf_padding::pad#1 = '0' - printf_padding::length#1 = (byte)printf_number_buffer::padding#6 - call printf_padding + printf_padding::length#1 = (char)printf_number_buffer::padding#6 + call printf_padding to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::padding#16 = phi( printf_number_buffer::@10/printf_number_buffer::padding#6 ) @@ -874,7 +874,7 @@ printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#9 = phi( printf_number_buffer::@20/printf_number_buffer::format_zero_padding#14, printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#2 = phi( printf_number_buffer::@20/printf_number_buffer::buffer_digits#5, printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) cputs::s#1 = printf_number_buffer::buffer_digits#2 - call cputs + call cputs to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@5 printf_number_buffer::padding#7 = phi( printf_number_buffer::@5/printf_number_buffer::padding#11 ) @@ -893,7 +893,7 @@ printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_zero_padding#19 = phi( printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#3 = phi( printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) strupr::str#0 = printf_number_buffer::buffer_digits#3 - call strupr + call strupr strupr::return#2 = strupr::return#1 to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@11 @@ -905,8 +905,8 @@ printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::padding#8 = phi( printf_number_buffer::@19/printf_number_buffer::padding#7 ) printf_padding::pad#2 = ' ' - printf_padding::length#2 = (byte)printf_number_buffer::padding#8 - call printf_padding + printf_padding::length#2 = (char)printf_number_buffer::padding#8 + call printf_padding to:printf_number_buffer::@21 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@12 to:printf_number_buffer::@return @@ -916,7 +916,7 @@ printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_ void main() main: scope:[main] from __start::@1 - call clrscr + call clrscr to:main::@3 main::@3: scope:[main] from main main::i#0 = 0 @@ -928,35 +928,35 @@ main::@1: scope:[main] from main::@3 main::@7 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - printf_uchar::uvalue#0 = ((byte*)&stars+OFFSET_STRUCT_$0_STAR_X)[main::i#3] + printf_uchar::uvalue#0 = ((char *)&stars+OFFSET_STRUCT_$0_STAR_X)[main::i#3] printf_uchar::format_min_length#0 = 0 printf_uchar::format_justify_left#0 = 0 printf_uchar::format_sign_always#0 = 0 printf_uchar::format_zero_padding#0 = 0 printf_uchar::format_upper_case#0 = 0 printf_uchar::format_radix#0 = DECIMAL - call printf_uchar + call printf_uchar to:main::@4 main::@4: scope:[main] from main::@2 main::i#6 = phi( main::@2/main::i#3 ) cputs::s#2 = main::s - call cputs + call cputs to:main::@5 main::@5: scope:[main] from main::@4 main::i#4 = phi( main::@4/main::i#6 ) - printf_uchar::uvalue#1 = ((byte*)&stars+OFFSET_STRUCT_$0_STAR_Y)[main::i#4] + printf_uchar::uvalue#1 = ((char *)&stars+OFFSET_STRUCT_$0_STAR_Y)[main::i#4] printf_uchar::format_min_length#1 = 0 printf_uchar::format_justify_left#1 = 0 printf_uchar::format_sign_always#1 = 0 printf_uchar::format_zero_padding#1 = 0 printf_uchar::format_upper_case#1 = 0 printf_uchar::format_radix#1 = DECIMAL - call printf_uchar + call printf_uchar to:main::@6 main::@6: scope:[main] from main::@5 main::i#7 = phi( main::@5/main::i#4 ) cputs::s#3 = main::s1 - call cputs + call cputs to:main::@7 main::@7: scope:[main] from main::@6 main::i#5 = phi( main::@6/main::i#7 ) @@ -976,12 +976,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -990,662 +990,662 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte DECIMAL = $a -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant const byte LIGHT_BLUE = $e -constant byte OCTAL = 8 -constant byte OFFSET_STRUCT_$0_STAR_X = 0 -constant byte OFFSET_STRUCT_$0_STAR_Y = 5 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 } -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 } -constant byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 } +__constant char BINARY = 2 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char DECIMAL = $a +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant const char LIGHT_BLUE = $e +__constant char OCTAL = 8 +__constant char OFFSET_STRUCT_$0_STAR_X = 0 +__constant char OFFSET_STRUCT_$0_STAR_Y = 5 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 } +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 } +__constant char RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 } void __start() void clrscr() -bool~ clrscr::$0 -bool~ clrscr::$1 -byte clrscr::c -byte clrscr::c#0 -byte clrscr::c#1 -byte clrscr::c#2 -byte clrscr::c#3 -byte clrscr::l -byte clrscr::l#0 -byte clrscr::l#1 -byte clrscr::l#2 -byte clrscr::l#3 -byte clrscr::l#4 -byte clrscr::l#5 -byte clrscr::l#6 -byte* clrscr::line_cols -byte* clrscr::line_cols#0 -byte* clrscr::line_cols#1 -byte* clrscr::line_cols#2 -byte* clrscr::line_cols#3 -byte* clrscr::line_cols#4 -byte* clrscr::line_cols#5 -byte* clrscr::line_cols#6 -byte* clrscr::line_text -byte* clrscr::line_text#0 -byte* clrscr::line_text#1 -byte* clrscr::line_text#2 -byte* clrscr::line_text#3 -byte* clrscr::line_text#4 -byte* clrscr::line_text#5 -byte* clrscr::line_text#6 +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 -byte cputc::c#4 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 +char cputc::c#4 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 -const byte* cputs::s#6 -const byte* cputs::s#7 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 +const char *cputs::s#6 +const char *cputs::s#7 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -constant byte* main::s[2] = " " -constant byte* main::s1[2] = " +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +__constant char main::s[2] = " " +__constant char main::s1[2] = " " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -struct printf_buffer_number printf_buffer loadstore = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) -bool~ printf_number_buffer::$0 -bool~ printf_number_buffer::$1 -bool~ printf_number_buffer::$10 -bool~ printf_number_buffer::$12 -bool~ printf_number_buffer::$14 -bool~ printf_number_buffer::$15 -bool~ printf_number_buffer::$16 -bool~ printf_number_buffer::$17 -word~ printf_number_buffer::$19 -bool~ printf_number_buffer::$2 -bool~ printf_number_buffer::$20 -signed byte~ printf_number_buffer::$21 -bool~ printf_number_buffer::$22 -bool~ printf_number_buffer::$23 -signed byte~ printf_number_buffer::$25 -bool~ printf_number_buffer::$26 -bool~ printf_number_buffer::$27 -bool~ printf_number_buffer::$28 -bool~ printf_number_buffer::$29 -bool~ printf_number_buffer::$3 -bool~ printf_number_buffer::$30 -bool~ printf_number_buffer::$31 -bool~ printf_number_buffer::$32 -bool~ printf_number_buffer::$4 -bool~ printf_number_buffer::$5 -bool~ printf_number_buffer::$7 -bool~ printf_number_buffer::$9 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +__loadstore struct printf_buffer_number printf_buffer = {} +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +bool printf_number_buffer::$0 +bool printf_number_buffer::$1 +bool printf_number_buffer::$10 +bool printf_number_buffer::$12 +bool printf_number_buffer::$14 +bool printf_number_buffer::$15 +bool printf_number_buffer::$16 +bool printf_number_buffer::$17 +unsigned int printf_number_buffer::$19 +bool printf_number_buffer::$2 +bool printf_number_buffer::$20 +signed char printf_number_buffer::$21 +bool printf_number_buffer::$22 +bool printf_number_buffer::$23 +signed char printf_number_buffer::$25 +bool printf_number_buffer::$26 +bool printf_number_buffer::$27 +bool printf_number_buffer::$28 +bool printf_number_buffer::$29 +bool printf_number_buffer::$3 +bool printf_number_buffer::$30 +bool printf_number_buffer::$31 +bool printf_number_buffer::$32 +bool printf_number_buffer::$4 +bool printf_number_buffer::$5 +bool printf_number_buffer::$7 +bool printf_number_buffer::$9 struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -byte* printf_number_buffer::buffer_digits#0 -byte* printf_number_buffer::buffer_digits#1 -byte* printf_number_buffer::buffer_digits#10 -byte* printf_number_buffer::buffer_digits#11 -byte* printf_number_buffer::buffer_digits#12 -byte* printf_number_buffer::buffer_digits#13 -byte* printf_number_buffer::buffer_digits#14 -byte* printf_number_buffer::buffer_digits#15 -byte* printf_number_buffer::buffer_digits#16 -byte* printf_number_buffer::buffer_digits#17 -byte* printf_number_buffer::buffer_digits#18 -byte* printf_number_buffer::buffer_digits#19 -byte* printf_number_buffer::buffer_digits#2 -byte* printf_number_buffer::buffer_digits#3 -byte* printf_number_buffer::buffer_digits#4 -byte* printf_number_buffer::buffer_digits#5 -byte* printf_number_buffer::buffer_digits#6 -byte* printf_number_buffer::buffer_digits#7 -byte* printf_number_buffer::buffer_digits#8 -byte* printf_number_buffer::buffer_digits#9 -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 -byte printf_number_buffer::buffer_sign#1 -byte printf_number_buffer::buffer_sign#10 -byte printf_number_buffer::buffer_sign#11 -byte printf_number_buffer::buffer_sign#2 -byte printf_number_buffer::buffer_sign#3 -byte printf_number_buffer::buffer_sign#4 -byte printf_number_buffer::buffer_sign#5 -byte printf_number_buffer::buffer_sign#6 -byte printf_number_buffer::buffer_sign#7 -byte printf_number_buffer::buffer_sign#8 -byte printf_number_buffer::buffer_sign#9 +char *printf_number_buffer::buffer_digits +char *printf_number_buffer::buffer_digits#0 +char *printf_number_buffer::buffer_digits#1 +char *printf_number_buffer::buffer_digits#10 +char *printf_number_buffer::buffer_digits#11 +char *printf_number_buffer::buffer_digits#12 +char *printf_number_buffer::buffer_digits#13 +char *printf_number_buffer::buffer_digits#14 +char *printf_number_buffer::buffer_digits#15 +char *printf_number_buffer::buffer_digits#16 +char *printf_number_buffer::buffer_digits#17 +char *printf_number_buffer::buffer_digits#18 +char *printf_number_buffer::buffer_digits#19 +char *printf_number_buffer::buffer_digits#2 +char *printf_number_buffer::buffer_digits#3 +char *printf_number_buffer::buffer_digits#4 +char *printf_number_buffer::buffer_digits#5 +char *printf_number_buffer::buffer_digits#6 +char *printf_number_buffer::buffer_digits#7 +char *printf_number_buffer::buffer_digits#8 +char *printf_number_buffer::buffer_digits#9 +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 +char printf_number_buffer::buffer_sign#1 +char printf_number_buffer::buffer_sign#10 +char printf_number_buffer::buffer_sign#11 +char printf_number_buffer::buffer_sign#2 +char printf_number_buffer::buffer_sign#3 +char printf_number_buffer::buffer_sign#4 +char printf_number_buffer::buffer_sign#5 +char printf_number_buffer::buffer_sign#6 +char printf_number_buffer::buffer_sign#7 +char printf_number_buffer::buffer_sign#8 +char printf_number_buffer::buffer_sign#9 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_justify_left#0 -byte printf_number_buffer::format_justify_left#1 -byte printf_number_buffer::format_justify_left#10 -byte printf_number_buffer::format_justify_left#11 -byte printf_number_buffer::format_justify_left#12 -byte printf_number_buffer::format_justify_left#13 -byte printf_number_buffer::format_justify_left#14 -byte printf_number_buffer::format_justify_left#15 -byte printf_number_buffer::format_justify_left#16 -byte printf_number_buffer::format_justify_left#17 -byte printf_number_buffer::format_justify_left#18 -byte printf_number_buffer::format_justify_left#19 -byte printf_number_buffer::format_justify_left#2 -byte printf_number_buffer::format_justify_left#20 -byte printf_number_buffer::format_justify_left#3 -byte printf_number_buffer::format_justify_left#4 -byte printf_number_buffer::format_justify_left#5 -byte printf_number_buffer::format_justify_left#6 -byte printf_number_buffer::format_justify_left#7 -byte printf_number_buffer::format_justify_left#8 -byte printf_number_buffer::format_justify_left#9 -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_min_length#0 -byte printf_number_buffer::format_min_length#1 -byte printf_number_buffer::format_min_length#2 -byte printf_number_buffer::format_min_length#3 -byte printf_number_buffer::format_min_length#4 -byte printf_number_buffer::format_min_length#5 -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_radix#0 -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_sign_always#0 -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_upper_case#0 -byte printf_number_buffer::format_upper_case#1 -byte printf_number_buffer::format_upper_case#10 -byte printf_number_buffer::format_upper_case#11 -byte printf_number_buffer::format_upper_case#12 -byte printf_number_buffer::format_upper_case#13 -byte printf_number_buffer::format_upper_case#14 -byte printf_number_buffer::format_upper_case#15 -byte printf_number_buffer::format_upper_case#16 -byte printf_number_buffer::format_upper_case#2 -byte printf_number_buffer::format_upper_case#3 -byte printf_number_buffer::format_upper_case#4 -byte printf_number_buffer::format_upper_case#5 -byte printf_number_buffer::format_upper_case#6 -byte printf_number_buffer::format_upper_case#7 -byte printf_number_buffer::format_upper_case#8 -byte printf_number_buffer::format_upper_case#9 -byte printf_number_buffer::format_zero_padding -byte printf_number_buffer::format_zero_padding#0 -byte printf_number_buffer::format_zero_padding#1 -byte printf_number_buffer::format_zero_padding#10 -byte printf_number_buffer::format_zero_padding#11 -byte printf_number_buffer::format_zero_padding#12 -byte printf_number_buffer::format_zero_padding#13 -byte printf_number_buffer::format_zero_padding#14 -byte printf_number_buffer::format_zero_padding#15 -byte printf_number_buffer::format_zero_padding#16 -byte printf_number_buffer::format_zero_padding#17 -byte printf_number_buffer::format_zero_padding#18 -byte printf_number_buffer::format_zero_padding#19 -byte printf_number_buffer::format_zero_padding#2 -byte printf_number_buffer::format_zero_padding#20 -byte printf_number_buffer::format_zero_padding#3 -byte printf_number_buffer::format_zero_padding#4 -byte printf_number_buffer::format_zero_padding#5 -byte printf_number_buffer::format_zero_padding#6 -byte printf_number_buffer::format_zero_padding#7 -byte printf_number_buffer::format_zero_padding#8 -byte printf_number_buffer::format_zero_padding#9 -signed byte printf_number_buffer::len -signed byte printf_number_buffer::len#0 -signed byte printf_number_buffer::len#1 -signed byte printf_number_buffer::len#2 -signed byte printf_number_buffer::len#3 -signed byte printf_number_buffer::padding -signed byte printf_number_buffer::padding#0 -signed byte printf_number_buffer::padding#1 -signed byte printf_number_buffer::padding#10 -signed byte printf_number_buffer::padding#11 -signed byte printf_number_buffer::padding#12 -signed byte printf_number_buffer::padding#13 -signed byte printf_number_buffer::padding#14 -signed byte printf_number_buffer::padding#15 -signed byte printf_number_buffer::padding#16 -signed byte printf_number_buffer::padding#17 -signed byte printf_number_buffer::padding#2 -signed byte printf_number_buffer::padding#3 -signed byte printf_number_buffer::padding#4 -signed byte printf_number_buffer::padding#5 -signed byte printf_number_buffer::padding#6 -signed byte printf_number_buffer::padding#7 -signed byte printf_number_buffer::padding#8 -signed byte printf_number_buffer::padding#9 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -bool~ printf_padding::$0 -byte printf_padding::i -byte printf_padding::i#0 -byte printf_padding::i#1 -byte printf_padding::i#2 -byte printf_padding::i#3 -byte printf_padding::i#4 -byte printf_padding::length -byte printf_padding::length#0 -byte printf_padding::length#1 -byte printf_padding::length#2 -byte printf_padding::length#3 -byte printf_padding::length#4 -byte printf_padding::length#5 -byte printf_padding::length#6 -byte printf_padding::pad -byte printf_padding::pad#0 -byte printf_padding::pad#1 -byte printf_padding::pad#2 -byte printf_padding::pad#3 -byte printf_padding::pad#4 -byte printf_padding::pad#5 -byte printf_padding::pad#6 -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) -number~ printf_uchar::$0 -byte~ printf_uchar::$1 -number~ printf_uchar::$2 -bool~ printf_uchar::$5 +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_justify_left#0 +char printf_number_buffer::format_justify_left#1 +char printf_number_buffer::format_justify_left#10 +char printf_number_buffer::format_justify_left#11 +char printf_number_buffer::format_justify_left#12 +char printf_number_buffer::format_justify_left#13 +char printf_number_buffer::format_justify_left#14 +char printf_number_buffer::format_justify_left#15 +char printf_number_buffer::format_justify_left#16 +char printf_number_buffer::format_justify_left#17 +char printf_number_buffer::format_justify_left#18 +char printf_number_buffer::format_justify_left#19 +char printf_number_buffer::format_justify_left#2 +char printf_number_buffer::format_justify_left#20 +char printf_number_buffer::format_justify_left#3 +char printf_number_buffer::format_justify_left#4 +char printf_number_buffer::format_justify_left#5 +char printf_number_buffer::format_justify_left#6 +char printf_number_buffer::format_justify_left#7 +char printf_number_buffer::format_justify_left#8 +char printf_number_buffer::format_justify_left#9 +char printf_number_buffer::format_min_length +char printf_number_buffer::format_min_length#0 +char printf_number_buffer::format_min_length#1 +char printf_number_buffer::format_min_length#2 +char printf_number_buffer::format_min_length#3 +char printf_number_buffer::format_min_length#4 +char printf_number_buffer::format_min_length#5 +char printf_number_buffer::format_radix +char printf_number_buffer::format_radix#0 +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_sign_always#0 +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_upper_case#0 +char printf_number_buffer::format_upper_case#1 +char printf_number_buffer::format_upper_case#10 +char printf_number_buffer::format_upper_case#11 +char printf_number_buffer::format_upper_case#12 +char printf_number_buffer::format_upper_case#13 +char printf_number_buffer::format_upper_case#14 +char printf_number_buffer::format_upper_case#15 +char printf_number_buffer::format_upper_case#16 +char printf_number_buffer::format_upper_case#2 +char printf_number_buffer::format_upper_case#3 +char printf_number_buffer::format_upper_case#4 +char printf_number_buffer::format_upper_case#5 +char printf_number_buffer::format_upper_case#6 +char printf_number_buffer::format_upper_case#7 +char printf_number_buffer::format_upper_case#8 +char printf_number_buffer::format_upper_case#9 +char printf_number_buffer::format_zero_padding +char printf_number_buffer::format_zero_padding#0 +char printf_number_buffer::format_zero_padding#1 +char printf_number_buffer::format_zero_padding#10 +char printf_number_buffer::format_zero_padding#11 +char printf_number_buffer::format_zero_padding#12 +char printf_number_buffer::format_zero_padding#13 +char printf_number_buffer::format_zero_padding#14 +char printf_number_buffer::format_zero_padding#15 +char printf_number_buffer::format_zero_padding#16 +char printf_number_buffer::format_zero_padding#17 +char printf_number_buffer::format_zero_padding#18 +char printf_number_buffer::format_zero_padding#19 +char printf_number_buffer::format_zero_padding#2 +char printf_number_buffer::format_zero_padding#20 +char printf_number_buffer::format_zero_padding#3 +char printf_number_buffer::format_zero_padding#4 +char printf_number_buffer::format_zero_padding#5 +char printf_number_buffer::format_zero_padding#6 +char printf_number_buffer::format_zero_padding#7 +char printf_number_buffer::format_zero_padding#8 +char printf_number_buffer::format_zero_padding#9 +signed char printf_number_buffer::len +signed char printf_number_buffer::len#0 +signed char printf_number_buffer::len#1 +signed char printf_number_buffer::len#2 +signed char printf_number_buffer::len#3 +signed char printf_number_buffer::padding +signed char printf_number_buffer::padding#0 +signed char printf_number_buffer::padding#1 +signed char printf_number_buffer::padding#10 +signed char printf_number_buffer::padding#11 +signed char printf_number_buffer::padding#12 +signed char printf_number_buffer::padding#13 +signed char printf_number_buffer::padding#14 +signed char printf_number_buffer::padding#15 +signed char printf_number_buffer::padding#16 +signed char printf_number_buffer::padding#17 +signed char printf_number_buffer::padding#2 +signed char printf_number_buffer::padding#3 +signed char printf_number_buffer::padding#4 +signed char printf_number_buffer::padding#5 +signed char printf_number_buffer::padding#6 +signed char printf_number_buffer::padding#7 +signed char printf_number_buffer::padding#8 +signed char printf_number_buffer::padding#9 +void printf_padding(char pad , char length) +bool printf_padding::$0 +char printf_padding::i +char printf_padding::i#0 +char printf_padding::i#1 +char printf_padding::i#2 +char printf_padding::i#3 +char printf_padding::i#4 +char printf_padding::length +char printf_padding::length#0 +char printf_padding::length#1 +char printf_padding::length#2 +char printf_padding::length#3 +char printf_padding::length#4 +char printf_padding::length#5 +char printf_padding::length#6 +char printf_padding::pad +char printf_padding::pad#0 +char printf_padding::pad#1 +char printf_padding::pad#2 +char printf_padding::pad#3 +char printf_padding::pad#4 +char printf_padding::pad#5 +char printf_padding::pad#6 +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +number printf_uchar::$0 +char printf_uchar::$1 +number printf_uchar::$2 +bool printf_uchar::$5 struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_justify_left#0 -byte printf_uchar::format_justify_left#1 -byte printf_uchar::format_justify_left#2 -byte printf_uchar::format_justify_left#3 -byte printf_uchar::format_justify_left#4 -byte printf_uchar::format_justify_left#5 -byte printf_uchar::format_justify_left#6 -byte printf_uchar::format_min_length -byte printf_uchar::format_min_length#0 -byte printf_uchar::format_min_length#1 -byte printf_uchar::format_min_length#2 -byte printf_uchar::format_min_length#3 -byte printf_uchar::format_min_length#4 -byte printf_uchar::format_min_length#5 -byte printf_uchar::format_min_length#6 -byte printf_uchar::format_radix -byte printf_uchar::format_radix#0 -byte printf_uchar::format_radix#1 -byte printf_uchar::format_radix#2 -byte printf_uchar::format_radix#3 -byte printf_uchar::format_radix#4 -byte printf_uchar::format_radix#5 -byte printf_uchar::format_radix#6 -byte printf_uchar::format_sign_always -byte printf_uchar::format_sign_always#0 -byte printf_uchar::format_sign_always#1 -byte printf_uchar::format_sign_always#2 -byte printf_uchar::format_sign_always#3 -byte printf_uchar::format_sign_always#4 -byte printf_uchar::format_sign_always#5 -byte printf_uchar::format_sign_always#6 -byte printf_uchar::format_upper_case -byte printf_uchar::format_upper_case#0 -byte printf_uchar::format_upper_case#1 -byte printf_uchar::format_upper_case#2 -byte printf_uchar::format_upper_case#3 -byte printf_uchar::format_upper_case#4 -byte printf_uchar::format_upper_case#5 -byte printf_uchar::format_upper_case#6 -byte printf_uchar::format_zero_padding -byte printf_uchar::format_zero_padding#0 -byte printf_uchar::format_zero_padding#1 -byte printf_uchar::format_zero_padding#2 -byte printf_uchar::format_zero_padding#3 -byte printf_uchar::format_zero_padding#4 -byte printf_uchar::format_zero_padding#5 -byte printf_uchar::format_zero_padding#6 -byte printf_uchar::uvalue -byte printf_uchar::uvalue#0 -byte printf_uchar::uvalue#1 -byte printf_uchar::uvalue#2 -byte printf_uchar::uvalue#3 -byte printf_uchar::uvalue#4 -byte printf_uchar::uvalue#5 -struct $0 stars loadstore = { star_x: { $32, $28, $1e, $46, $28 }, star_y: { $32, $46, $14, $a, $50 }, speed_x: { 2, 2, 2, 2, 2 }, speed_y: { 7, 7, 7, 7, 7 } } -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 -byte* strupr(byte* strupr::str) -byte~ strupr::$0 -bool~ strupr::$1 -byte* strupr::return -byte* strupr::return#0 -byte* strupr::return#1 -byte* strupr::return#2 -byte* strupr::return#3 -byte* strupr::src -byte* strupr::src#0 -byte* strupr::src#1 -byte* strupr::src#2 -byte* strupr::src#3 -byte* strupr::src#4 -byte* strupr::str -byte* strupr::str#0 -byte* strupr::str#1 -byte* strupr::str#2 -byte* strupr::str#3 -byte* strupr::str#4 -byte* strupr::str#5 -byte toupper(byte toupper::ch) -bool~ toupper::$0 -bool~ toupper::$1 -bool~ toupper::$2 -byte~ toupper::$3 -byte toupper::ch -byte toupper::ch#0 -byte toupper::ch#1 -byte toupper::ch#2 -byte toupper::ch#3 -byte toupper::return -byte toupper::return#0 -byte toupper::return#1 -byte toupper::return#2 -byte toupper::return#3 -byte toupper::return#4 -byte toupper::return#5 -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -bool~ uctoa::$0 -bool~ uctoa::$1 -byte~ uctoa::$10 -bool~ uctoa::$2 -bool~ uctoa::$3 -number~ uctoa::$4 -bool~ uctoa::$5 -bool~ uctoa::$6 -bool~ uctoa::$7 -bool~ uctoa::$8 -byte~ uctoa::$9 -byte* uctoa::buffer -byte* uctoa::buffer#0 -byte* uctoa::buffer#1 -byte* uctoa::buffer#10 -byte* uctoa::buffer#11 -byte* uctoa::buffer#12 -byte* uctoa::buffer#13 -byte* uctoa::buffer#14 -byte* uctoa::buffer#15 -byte* uctoa::buffer#16 -byte* uctoa::buffer#17 -byte* uctoa::buffer#18 -byte* uctoa::buffer#19 -byte* uctoa::buffer#2 -byte* uctoa::buffer#20 -byte* uctoa::buffer#21 -byte* uctoa::buffer#3 -byte* uctoa::buffer#4 -byte* uctoa::buffer#5 -byte* uctoa::buffer#6 -byte* uctoa::buffer#7 -byte* uctoa::buffer#8 -byte* uctoa::buffer#9 -byte uctoa::digit -byte uctoa::digit#0 -byte uctoa::digit#1 -byte uctoa::digit#2 -byte uctoa::digit#3 -byte uctoa::digit#4 -byte uctoa::digit#5 -byte uctoa::digit#6 -byte uctoa::digit_value -byte uctoa::digit_value#0 -byte uctoa::digit_value#1 -byte* uctoa::digit_values -byte* uctoa::digit_values#0 -byte* uctoa::digit_values#1 -byte* uctoa::digit_values#10 -byte* uctoa::digit_values#2 -byte* uctoa::digit_values#3 -byte* uctoa::digit_values#4 -byte* uctoa::digit_values#5 -byte* uctoa::digit_values#6 -byte* uctoa::digit_values#7 -byte* uctoa::digit_values#8 -byte* uctoa::digit_values#9 -byte uctoa::max_digits -byte uctoa::max_digits#0 -byte uctoa::max_digits#1 -byte uctoa::max_digits#10 -byte uctoa::max_digits#2 -byte uctoa::max_digits#3 -byte uctoa::max_digits#4 -byte uctoa::max_digits#5 -byte uctoa::max_digits#6 -byte uctoa::max_digits#7 -byte uctoa::max_digits#8 -byte uctoa::max_digits#9 -byte uctoa::radix -byte uctoa::radix#0 -byte uctoa::radix#1 -byte uctoa::radix#2 -byte uctoa::radix#3 -byte uctoa::radix#4 -byte uctoa::started -byte uctoa::started#0 -byte uctoa::started#1 -byte uctoa::started#2 -byte uctoa::started#3 -byte uctoa::started#4 -byte uctoa::value -byte uctoa::value#0 -byte uctoa::value#1 -byte uctoa::value#10 -byte uctoa::value#11 -byte uctoa::value#12 -byte uctoa::value#13 -byte uctoa::value#14 -byte uctoa::value#15 -byte uctoa::value#2 -byte uctoa::value#3 -byte uctoa::value#4 -byte uctoa::value#5 -byte uctoa::value#6 -byte uctoa::value#7 -byte uctoa::value#8 -byte uctoa::value#9 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -bool~ uctoa_append::$0 -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 -byte* uctoa_append::buffer#1 -byte* uctoa_append::buffer#2 -byte* uctoa_append::buffer#3 -byte* uctoa_append::buffer#4 -byte uctoa_append::digit -byte uctoa_append::digit#0 -byte uctoa_append::digit#1 -byte uctoa_append::digit#2 -byte uctoa_append::digit#3 -byte uctoa_append::digit#4 -byte uctoa_append::return -byte uctoa_append::return#0 -byte uctoa_append::return#1 -byte uctoa_append::return#2 -byte uctoa_append::return#3 -byte uctoa_append::return#4 -byte uctoa_append::sub -byte uctoa_append::sub#0 -byte uctoa_append::sub#1 -byte uctoa_append::sub#2 -byte uctoa_append::sub#3 -byte uctoa_append::value -byte uctoa_append::value#0 -byte uctoa_append::value#1 -byte uctoa_append::value#2 -byte uctoa_append::value#3 -byte uctoa_append::value#4 -byte uctoa_append::value#5 +char printf_uchar::format_justify_left +char printf_uchar::format_justify_left#0 +char printf_uchar::format_justify_left#1 +char printf_uchar::format_justify_left#2 +char printf_uchar::format_justify_left#3 +char printf_uchar::format_justify_left#4 +char printf_uchar::format_justify_left#5 +char printf_uchar::format_justify_left#6 +char printf_uchar::format_min_length +char printf_uchar::format_min_length#0 +char printf_uchar::format_min_length#1 +char printf_uchar::format_min_length#2 +char printf_uchar::format_min_length#3 +char printf_uchar::format_min_length#4 +char printf_uchar::format_min_length#5 +char printf_uchar::format_min_length#6 +char printf_uchar::format_radix +char printf_uchar::format_radix#0 +char printf_uchar::format_radix#1 +char printf_uchar::format_radix#2 +char printf_uchar::format_radix#3 +char printf_uchar::format_radix#4 +char printf_uchar::format_radix#5 +char printf_uchar::format_radix#6 +char printf_uchar::format_sign_always +char printf_uchar::format_sign_always#0 +char printf_uchar::format_sign_always#1 +char printf_uchar::format_sign_always#2 +char printf_uchar::format_sign_always#3 +char printf_uchar::format_sign_always#4 +char printf_uchar::format_sign_always#5 +char printf_uchar::format_sign_always#6 +char printf_uchar::format_upper_case +char printf_uchar::format_upper_case#0 +char printf_uchar::format_upper_case#1 +char printf_uchar::format_upper_case#2 +char printf_uchar::format_upper_case#3 +char printf_uchar::format_upper_case#4 +char printf_uchar::format_upper_case#5 +char printf_uchar::format_upper_case#6 +char printf_uchar::format_zero_padding +char printf_uchar::format_zero_padding#0 +char printf_uchar::format_zero_padding#1 +char printf_uchar::format_zero_padding#2 +char printf_uchar::format_zero_padding#3 +char printf_uchar::format_zero_padding#4 +char printf_uchar::format_zero_padding#5 +char printf_uchar::format_zero_padding#6 +char printf_uchar::uvalue +char printf_uchar::uvalue#0 +char printf_uchar::uvalue#1 +char printf_uchar::uvalue#2 +char printf_uchar::uvalue#3 +char printf_uchar::uvalue#4 +char printf_uchar::uvalue#5 +__loadstore struct $0 stars = { star_x: { $32, $28, $1e, $46, $28 }, star_y: { $32, $46, $14, $a, $50 }, speed_x: { 2, 2, 2, 2, 2 }, speed_y: { 7, 7, 7, 7, 7 } } +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 +char * strupr(char *str) +char strupr::$0 +bool strupr::$1 +char *strupr::return +char *strupr::return#0 +char *strupr::return#1 +char *strupr::return#2 +char *strupr::return#3 +char *strupr::src +char *strupr::src#0 +char *strupr::src#1 +char *strupr::src#2 +char *strupr::src#3 +char *strupr::src#4 +char *strupr::str +char *strupr::str#0 +char *strupr::str#1 +char *strupr::str#2 +char *strupr::str#3 +char *strupr::str#4 +char *strupr::str#5 +char toupper(char ch) +bool toupper::$0 +bool toupper::$1 +bool toupper::$2 +char toupper::$3 +char toupper::ch +char toupper::ch#0 +char toupper::ch#1 +char toupper::ch#2 +char toupper::ch#3 +char toupper::return +char toupper::return#0 +char toupper::return#1 +char toupper::return#2 +char toupper::return#3 +char toupper::return#4 +char toupper::return#5 +void uctoa(char value , char *buffer , char radix) +bool uctoa::$0 +bool uctoa::$1 +char uctoa::$10 +bool uctoa::$2 +bool uctoa::$3 +number uctoa::$4 +bool uctoa::$5 +bool uctoa::$6 +bool uctoa::$7 +bool uctoa::$8 +char uctoa::$9 +char *uctoa::buffer +char *uctoa::buffer#0 +char *uctoa::buffer#1 +char *uctoa::buffer#10 +char *uctoa::buffer#11 +char *uctoa::buffer#12 +char *uctoa::buffer#13 +char *uctoa::buffer#14 +char *uctoa::buffer#15 +char *uctoa::buffer#16 +char *uctoa::buffer#17 +char *uctoa::buffer#18 +char *uctoa::buffer#19 +char *uctoa::buffer#2 +char *uctoa::buffer#20 +char *uctoa::buffer#21 +char *uctoa::buffer#3 +char *uctoa::buffer#4 +char *uctoa::buffer#5 +char *uctoa::buffer#6 +char *uctoa::buffer#7 +char *uctoa::buffer#8 +char *uctoa::buffer#9 +char uctoa::digit +char uctoa::digit#0 +char uctoa::digit#1 +char uctoa::digit#2 +char uctoa::digit#3 +char uctoa::digit#4 +char uctoa::digit#5 +char uctoa::digit#6 +char uctoa::digit_value +char uctoa::digit_value#0 +char uctoa::digit_value#1 +char *uctoa::digit_values +char *uctoa::digit_values#0 +char *uctoa::digit_values#1 +char *uctoa::digit_values#10 +char *uctoa::digit_values#2 +char *uctoa::digit_values#3 +char *uctoa::digit_values#4 +char *uctoa::digit_values#5 +char *uctoa::digit_values#6 +char *uctoa::digit_values#7 +char *uctoa::digit_values#8 +char *uctoa::digit_values#9 +char uctoa::max_digits +char uctoa::max_digits#0 +char uctoa::max_digits#1 +char uctoa::max_digits#10 +char uctoa::max_digits#2 +char uctoa::max_digits#3 +char uctoa::max_digits#4 +char uctoa::max_digits#5 +char uctoa::max_digits#6 +char uctoa::max_digits#7 +char uctoa::max_digits#8 +char uctoa::max_digits#9 +char uctoa::radix +char uctoa::radix#0 +char uctoa::radix#1 +char uctoa::radix#2 +char uctoa::radix#3 +char uctoa::radix#4 +char uctoa::started +char uctoa::started#0 +char uctoa::started#1 +char uctoa::started#2 +char uctoa::started#3 +char uctoa::started#4 +char uctoa::value +char uctoa::value#0 +char uctoa::value#1 +char uctoa::value#10 +char uctoa::value#11 +char uctoa::value#12 +char uctoa::value#13 +char uctoa::value#14 +char uctoa::value#15 +char uctoa::value#2 +char uctoa::value#3 +char uctoa::value#4 +char uctoa::value#5 +char uctoa::value#6 +char uctoa::value#7 +char uctoa::value#8 +char uctoa::value#9 +char uctoa_append(char *buffer , char value , char sub) +bool uctoa_append::$0 +char *uctoa_append::buffer +char *uctoa_append::buffer#0 +char *uctoa_append::buffer#1 +char *uctoa_append::buffer#2 +char *uctoa_append::buffer#3 +char *uctoa_append::buffer#4 +char uctoa_append::digit +char uctoa_append::digit#0 +char uctoa_append::digit#1 +char uctoa_append::digit#2 +char uctoa_append::digit#3 +char uctoa_append::digit#4 +char uctoa_append::return +char uctoa_append::return#0 +char uctoa_append::return#1 +char uctoa_append::return#2 +char uctoa_append::return#3 +char uctoa_append::return#4 +char uctoa_append::sub +char uctoa_append::sub#0 +char uctoa_append::sub#1 +char uctoa_append::sub#2 +char uctoa_append::sub#3 +char uctoa_append::value +char uctoa_append::value#0 +char uctoa_append::value#1 +char uctoa_append::value#2 +char uctoa_append::value#3 +char uctoa_append::value#4 +char uctoa_append::value#5 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#2 @@ -1677,15 +1677,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -1724,9 +1724,9 @@ Adding number conversion cast (unumber) 5 in main::$1 = main::i#2 < 5 Successful SSA optimization PassNAddNumberTypeConversions Adding number conversion cast (unumber) 0 in printf_uchar::$0 = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast uctoa::max_digits#1 = (unumber)3 Inlining cast uctoa::max_digits#2 = (unumber)2 Inlining cast uctoa::max_digits#3 = (unumber)3 @@ -1750,9 +1750,9 @@ Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Inlining cast printf_uchar::$0 = (unumber)0 Inlining cast printf_number_buffer::padding#2 = (snumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -1808,63 +1808,63 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in uctoa::$4 = uctoa::max_digits#5 - 1 -Inferred type updated to byte in printf_uchar::$0 = 0 -Inferred type updated to byte for printf_uchar::$2 +Inferred type updated to char in uctoa::$4 = uctoa::max_digits#5 - 1 +Inferred type updated to char in printf_uchar::$0 = 0 +Inferred type updated to char for printf_uchar::$2 Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [186] gotoxy::$1 = gotoxy::y#3 <= $19 from [185] gotoxy::$0 = gotoxy::y#3 > $19 Inversing boolean not [190] gotoxy::$3 = gotoxy::x#3 < $28 from [189] gotoxy::$2 = gotoxy::x#3 >= $28 @@ -2114,7 +2114,7 @@ Constant right-side identified [217] conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant strlen::len#0 = 0 Constant uctoa::max_digits#0 = 0 -Constant uctoa::digit_values#0 = (byte*) 0 +Constant uctoa::digit_values#0 = (char *) 0 Constant uctoa::max_digits#1 = 3 Constant uctoa::digit_values#1 = RADIX_DECIMAL_VALUES_CHAR Constant uctoa::max_digits#2 = 2 @@ -2134,16 +2134,16 @@ Constant clrscr::c#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -2152,8 +2152,8 @@ Constant conio_c64_init::line#1 = (unumber)$19-1 Constant printf_padding::i#0 = 0 Constant printf_uchar::$1 = '+' Constant printf_uchar::$0 = 0 -Constant uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant printf_number_buffer::padding#0 = 0 Constant printf_number_buffer::padding#2 = 0 Constant printf_padding::pad#0 = ' ' @@ -2187,9 +2187,9 @@ Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [182] if(0!=conio_scroll_enable) goto cscroll::@3 Successful SSA optimization Pass2ConstantIfs Rewriting conditional comparison [136] if(gotoxy::y#3<=$19) goto gotoxy::@1 -Simplifying expression containing zero (byte*)&printf_buffer in [234] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 -Simplifying expression containing zero (byte*)&printf_buffer in [239] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) -Simplifying expression containing zero (byte*)&stars in [308] printf_uchar::uvalue#0 = ((byte*)&stars+OFFSET_STRUCT_$0_STAR_X)[main::i#2] +Simplifying expression containing zero (char *)&printf_buffer in [234] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uchar::$2 +Simplifying expression containing zero (char *)&printf_buffer in [239] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (char *)&stars in [308] printf_uchar::uvalue#0 = ((char *)&stars+OFFSET_STRUCT_$0_STAR_X)[main::i#2] Successful SSA optimization PassNSimplifyExpressionWithZero Removing PHI-reference to removed block (cscroll::@2) in block gotoxy Removing PHI-reference to removed block (cscroll::@2) in block gotoxy @@ -2230,13 +2230,13 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -2290,12 +2290,12 @@ Constant uctoa::buffer#2 = ++uctoa::buffer#1 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [166] printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [166] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[92] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -2371,7 +2371,7 @@ Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined printf_number_buffer::padding#2 = 0 Constant inlined uctoa::digit#0 = 0 Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined printf_uchar::format_sign_always#1 = 0 Constant inlined printf_uchar::format_sign_always#0 = 0 Constant inlined memset::c#0 = ' ' @@ -2391,56 +2391,56 @@ Constant inlined printf_uchar::$0 = 0 Constant inlined printf_uchar::$1 = '+' Constant inlined OFFSET_STRUCT_$0_STAR_Y = 5 Constant inlined strlen::str#1 = printf_number_buffer::buffer_digits#0 -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined uctoa::max_digits#1 = 3 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined main::i#0 = 0 Constant inlined uctoa::max_digits#3 = 3 Constant inlined uctoa::max_digits#2 = 2 Constant inlined strupr::str#0 = printf_number_buffer::buffer_digits#0 Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE Constant inlined uctoa::max_digits#4 = 8 -Constant inlined uctoa::buffer#1 = ++++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined uctoa::buffer#2 = ++++++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined uctoa::buffer#1 = ++++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined uctoa::buffer#2 = ++++++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#0 = ' ' -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined printf_padding::i#0 = 0 Constant inlined printf_padding::pad#1 = '0' Constant inlined printf_uchar::format_zero_padding#1 = 0 Constant inlined CONIO_SCREEN_COLORS = COLORRAM -Constant inlined uctoa::buffer#0 = ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined uctoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#2 = ' ' Constant inlined printf_uchar::format_zero_padding#0 = 0 -Constant inlined uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined printf_uchar::format_radix#1 = DECIMAL Constant inlined printf_uchar::format_radix#0 = DECIMAL Constant inlined gotoxy::y#0 = 0 Constant inlined clrscr::c#0 = 0 Constant inlined clrscr::line_cols#0 = COLORRAM Successful SSA optimization Pass2ConstantInlining -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Successful SSA optimization Pass2ConstantSimplification -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 Successful SSA optimization Pass2ConstantSimplification -Adding number conversion cast (unumber) 1 in [44] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -Adding number conversion cast (unumber) 2 in [45] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -Adding number conversion cast (unumber) 3 in [46] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 +Adding number conversion cast (unumber) 1 in [44] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' +Adding number conversion cast (unumber) 2 in [45] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' +Adding number conversion cast (unumber) 3 in [46] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -2448,7 +2448,7 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Identical Phi Values printf_uchar::format_sign_always#2 0 Identical Phi Values printf_uchar::format_radix#2 DECIMAL @@ -2463,7 +2463,7 @@ Constant printf_number_buffer::format_justify_left#0 = 0 Constant printf_number_buffer::format_zero_padding#0 = 0 Constant printf_number_buffer::format_upper_case#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (signed byte)printf_number_buffer::format_min_length#0 in [163] printf_number_buffer::padding#1 = (signed byte)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 +Constant value identified (signed char)printf_number_buffer::format_min_length#0 in [163] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 Successful SSA optimization Pass2ConstantValues if() condition always false - eliminating [9] if($28<=0) goto memset::@1 if() condition always true - replacing block destination [34] if(uctoa::radix#0==DECIMAL) goto uctoa::@1 @@ -2479,7 +2479,7 @@ if() condition always true - replacing block destination [176] if(0==printf_numb if() condition always false - eliminating [202] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2 if() condition always false - eliminating [205] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (signed byte)printf_number_buffer::format_min_length#0 in [163] printf_number_buffer::padding#1 = (signed byte)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 +Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in [163] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero printf_number_buffer::len#2 in [163] printf_number_buffer::padding#1 = 0 - printf_number_buffer::len#2 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -2587,16 +2587,16 @@ Identical Phi Values printf_uchar::$2 0 Identical Phi Values printf_number_buffer::padding#10 0 Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [18] uctoa::$4 = 3 - 1 -Constant right-side identified [123] printf_padding::length#0 = (byte)0 +Constant right-side identified [123] printf_padding::length#0 = (char)0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant uctoa::$4 = 3-1 Constant cputc::c#1 = ' ' -Constant printf_padding::length#0 = (byte)0 +Constant printf_padding::length#0 = (char)0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [108] if(printf_padding::i#2COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -3794,7 +3794,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -3805,7 +3805,7 @@ conio_c64_init: { // main main: { .label i = 2 - // [17] call clrscr + // [17] call clrscr // [44] phi from main to clrscr [phi:main->clrscr] clrscr_from_main: jsr clrscr @@ -3828,10 +3828,10 @@ main: { rts // main::@2 __b2: - // [21] printf_uchar::uvalue#0 = ((byte*)&stars)[main::i#2] -- vbuxx=pbuc1_derefidx_vbuz1 + // [21] printf_uchar::uvalue#0 = ((char *)&stars)[main::i#2] -- vbuxx=pbuc1_derefidx_vbuz1 ldy.z i ldx stars,y - // [22] call printf_uchar + // [22] call printf_uchar // [60] phi from main::@2 to printf_uchar [phi:main::@2->printf_uchar] printf_uchar_from___b2: // [60] phi printf_uchar::uvalue#2 = printf_uchar::uvalue#0 [phi:main::@2->printf_uchar#0] -- register_copy @@ -3841,7 +3841,7 @@ main: { jmp __b3 // main::@3 __b3: - // [24] call cputs + // [24] call cputs // [67] phi from main::@3 to cputs [phi:main::@3->cputs] cputs_from___b3: // [67] phi cputs::s#5 = main::s [phi:main::@3->cputs#0] -- pbuz1=pbuc1 @@ -3853,10 +3853,10 @@ main: { jmp __b4 // main::@4 __b4: - // [25] printf_uchar::uvalue#1 = ((byte*)&stars+5)[main::i#2] -- vbuxx=pbuc1_derefidx_vbuz1 + // [25] printf_uchar::uvalue#1 = ((char *)&stars+5)[main::i#2] -- vbuxx=pbuc1_derefidx_vbuz1 ldy.z i ldx stars+5,y - // [26] call printf_uchar + // [26] call printf_uchar // [60] phi from main::@4 to printf_uchar [phi:main::@4->printf_uchar] printf_uchar_from___b4: // [60] phi printf_uchar::uvalue#2 = printf_uchar::uvalue#1 [phi:main::@4->printf_uchar#0] -- register_copy @@ -3866,7 +3866,7 @@ main: { jmp __b5 // main::@5 __b5: - // [28] call cputs + // [28] call cputs // [67] phi from main::@5 to cputs [phi:main::@5->cputs] cputs_from___b5: // [67] phi cputs::s#5 = main::s1 [phi:main::@5->cputs#0] -- pbuz1=pbuc1 @@ -3893,7 +3893,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $13 @@ -3929,7 +3929,7 @@ gotoxy: { sta.z conio_cursor_x // [34] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [35] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [35] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -4093,17 +4093,17 @@ clrscr: { } // printf_uchar // Print an unsigned char using a specific format -// printf_uchar(byte register(X) uvalue) +// void printf_uchar(__register(X) char uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uchar: { jmp __b1 // printf_uchar::@1 __b1: - // [61] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [61] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // [62] uctoa::value#1 = printf_uchar::uvalue#2 - // [63] call uctoa + // [63] call uctoa // Format number into buffer // [75] phi from printf_uchar::@1 to uctoa [phi:printf_uchar::@1->uctoa] uctoa_from___b1: @@ -4111,9 +4111,9 @@ printf_uchar: { jmp __b2 // printf_uchar::@2 __b2: - // [64] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [64] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [65] call printf_number_buffer + // [65] call printf_number_buffer // Print using format // [94] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] printf_number_buffer_from___b2: @@ -4126,7 +4126,7 @@ printf_uchar: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(3) s) +// void cputs(__zp(3) const char *s) cputs: { .label s = 3 // [68] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -4155,7 +4155,7 @@ cputs: { // cputs::@2 __b2: // [73] cputc::c#0 = cputs::c#1 - // [74] call cputc + // [74] call cputc // [101] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] cputc_from___b2: // [101] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy @@ -4168,7 +4168,7 @@ cputs: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp(7) buffer) +// void uctoa(__register(X) char value, __zp(7) char *buffer, char radix) uctoa: { .label digit_value = $15 .label buffer = 7 @@ -4176,7 +4176,7 @@ uctoa: { .label started = 6 // [76] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] __b1_from_uctoa: - // [76] phi uctoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [76] phi uctoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -4253,7 +4253,7 @@ uctoa: { // [87] uctoa_append::buffer#0 = uctoa::buffer#11 // [88] uctoa_append::value#0 = uctoa::value#2 // [89] uctoa_append::sub#0 = uctoa::digit_value#0 - // [90] call uctoa_append + // [90] call uctoa_append // [112] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] uctoa_append_from___b5: jsr uctoa_append @@ -4279,7 +4279,7 @@ uctoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS jmp __b1 @@ -4292,7 +4292,7 @@ printf_number_buffer: { // printf_number_buffer::@3 __b3: // [96] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [97] call cputc + // [97] call cputc // [101] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] cputc_from___b3: // [101] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy @@ -4303,7 +4303,7 @@ printf_number_buffer: { jmp __b2 // printf_number_buffer::@2 __b2: - // [99] call cputs + // [99] call cputs // [67] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] cputs_from___b2: // [67] phi cputs::s#5 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->cputs#0] -- pbuz1=pbuc1 @@ -4321,7 +4321,7 @@ printf_number_buffer: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [102] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -4347,7 +4347,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [108] call cputln + // [108] call cputln jsr cputln jmp __breturn // cputc::@return @@ -4359,7 +4359,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [111] call cputln + // [111] call cputln jsr cputln jmp __breturn } @@ -4372,7 +4372,7 @@ cputc: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp(7) buffer, byte register(X) value, byte zp($15) sub) +// __register(X) char uctoa_append(__zp(7) char *buffer, __register(X) char value, __zp($15) char sub) uctoa_append: { .label buffer = 7 .label sub = $15 @@ -4438,7 +4438,7 @@ cputln: { sta.z conio_cursor_x // [122] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [123] call cscroll + // [123] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -4458,15 +4458,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [127] call memcpy + // [127] call memcpy // [138] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [138] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [138] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [138] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [138] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -4477,15 +4477,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [129] call memcpy + // [129] call memcpy // [138] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [138] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [138] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [138] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [138] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -4496,12 +4496,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [131] call memset + // [131] call memset // [148] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [148] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [148] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [148] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -4512,12 +4512,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [133] call memset + // [133] call memset // [148] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [148] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [148] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [148] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -4553,14 +4553,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($18) destination, void* zp(7) source) +// void * memcpy(__zp($18) void *destination, __zp(7) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = $18 .label src = 7 .label source = 7 .label destination = $18 - // [139] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [139] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -4568,8 +4568,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [140] memcpy::src#4 = (byte*)memcpy::source#2 - // [141] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [140] memcpy::src#4 = (char *)memcpy::source#2 + // [141] memcpy::dst#4 = (char *)memcpy::destination#2 // [142] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -4611,7 +4611,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(7) str, byte register(X) c) +// void * memset(__zp(7) void *str, __register(X) char c, unsigned int num) memset: { .label end = $18 .label dst = 7 @@ -4619,7 +4619,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [149] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [149] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -4627,7 +4627,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [150] memset::dst#4 = (byte*)memset::str#3 + // [150] memset::dst#4 = (char *)memset::str#3 // [151] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -4843,169 +4843,169 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:7 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:7 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:3 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:3 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:7 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:7 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:3 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:3 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:9 2.8846157884615384E7 -byte conio_cursor_y loadstore zp[1]:10 4.705882383676472E8 -byte* conio_line_color loadstore zp[2]:13 3.348484880151515E8 -byte* conio_line_text loadstore zp[2]:11 3.2985074938805974E8 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2.0000002E7 -byte cputc::c#2 reg byte a 20002.0 -byte cputc::c#3 reg byte a 1.05005002E8 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:9 2.8846157884615384E7 +__loadstore char conio_cursor_y // zp[1]:10 4.705882383676472E8 +__loadstore char *conio_line_color // zp[2]:13 3.348484880151515E8 +__loadstore char *conio_line_text // zp[2]:11 3.2985074938805974E8 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2.0000002E7 +char cputc::c#2 // reg byte a 20002.0 +char cputc::c#3 // reg byte a 1.05005002E8 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1.0000001E7 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:3 5000000.5 -const byte* cputs::s#4 s zp[2]:3 1.5050002E7 -const byte* cputs::s#5 s zp[2]:3 100001.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1.0000001E7 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:3 5000000.5 +const char *cputs::s#4 // s zp[2]:3 1.5050002E7 +const char *cputs::s#5 // s zp[2]:3 100001.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:19 202.0 -byte*~ gotoxy::$6 zp[2]:15 202.0 -word~ gotoxy::$7 zp[2]:15 151.5 -word~ gotoxy::$8 zp[2]:17 202.0 -word~ gotoxy::$9 zp[2]:15 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:15 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:19 202.0 +char *gotoxy::$6 // zp[2]:15 202.0 +unsigned int gotoxy::$7 // zp[2]:15 151.5 +unsigned int gotoxy::$8 // zp[2]:17 202.0 +unsigned int gotoxy::$9 // zp[2]:15 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:15 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 50.5 -constant byte* main::s[2] = " " -constant byte* main::s1[2] = " +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 50.5 +__constant char main::s[2] = " " +__constant char main::s1[2] = " " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:24 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:24 1.00000000000001E14 -byte* memcpy::dst#2 dst zp[2]:24 1.0003333333333467E14 -byte* memcpy::dst#4 dst zp[2]:24 2.00000000002E11 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:7 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:7 2.00000000000002E14 -byte* memcpy::src#2 src zp[2]:7 1.0002500000000125E14 -byte* memcpy::src#4 src zp[2]:7 1.00000000001E11 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:22 1.251250000000025E13 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714285714428E13 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:7 2.00000000000002E14 -byte* memset::dst#2 dst zp[2]:7 1.3336666666666834E14 -byte* memset::dst#4 dst zp[2]:7 2.00000000002E11 -byte* memset::end -byte* memset::end#0 end zp[2]:24 1.6683333333333668E13 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:7 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:24 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:24 1.00000000000001E14 +char *memcpy::dst#2 // dst zp[2]:24 1.0003333333333467E14 +char *memcpy::dst#4 // dst zp[2]:24 2.00000000002E11 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:7 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:7 2.00000000000002E14 +char *memcpy::src#2 // src zp[2]:7 1.0002500000000125E14 +char *memcpy::src#4 // src zp[2]:7 1.00000000001E11 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:22 1.251250000000025E13 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714285714428E13 +char *memset::dst +char *memset::dst#1 // dst zp[2]:7 2.00000000000002E14 +char *memset::dst#2 // dst zp[2]:7 1.3336666666666834E14 +char *memset::dst#4 // dst zp[2]:7 2.00000000002E11 +char *memset::end +char *memset::end#0 // end zp[2]:24 1.6683333333333668E13 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:7 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 7001.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 7001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_min_length -byte printf_uchar::format_radix -byte printf_uchar::format_sign_always -byte printf_uchar::format_upper_case -byte printf_uchar::format_zero_padding -byte printf_uchar::uvalue -byte printf_uchar::uvalue#0 reg byte x 202.0 -byte printf_uchar::uvalue#1 reg byte x 202.0 -byte printf_uchar::uvalue#2 reg byte x 601.5 -struct $0 stars loadstore mem[20] = { star_x: { $32, $28, $1e, $46, $28 }, star_y: { $32, $46, $14, $a, $50 }, speed_x: { 2, 2, 2, 2, 2 }, speed_y: { 7, 7, 7, 7, 7 } } -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -byte* uctoa::buffer -byte* uctoa::buffer#11 buffer zp[2]:7 335000.50000000006 -byte* uctoa::buffer#14 buffer zp[2]:7 1500001.5 -byte* uctoa::buffer#3 buffer zp[2]:7 20002.0 -byte* uctoa::buffer#4 buffer zp[2]:7 2000002.0 -byte uctoa::digit -byte uctoa::digit#1 digit zp[1]:5 2000002.0 -byte uctoa::digit#2 digit zp[1]:5 307692.6153846154 -byte uctoa::digit_value -byte uctoa::digit_value#0 digit_value zp[1]:21 600000.6000000001 -byte* uctoa::digit_values -byte uctoa::max_digits -byte uctoa::radix -byte uctoa::started -byte uctoa::started#2 started zp[1]:6 600000.6000000001 -byte uctoa::started#4 started zp[1]:6 1000001.0 -byte uctoa::value -byte uctoa::value#0 reg byte x 1000001.0 -byte uctoa::value#1 reg byte x 5501.0 -byte uctoa::value#2 reg byte x 670001.0000000001 -byte uctoa::value#6 reg byte x 1500001.5 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 buffer zp[2]:7 1375000.25 -byte uctoa_append::digit -byte uctoa_append::digit#1 reg byte y 1.0000000001E10 -byte uctoa_append::digit#2 reg byte y 1.00050000015E10 -byte uctoa_append::return -byte uctoa_append::return#0 reg byte x 2000002.0 -byte uctoa_append::sub -byte uctoa_append::sub#0 sub zp[1]:21 3.3335000005E9 -byte uctoa_append::value -byte uctoa_append::value#0 reg byte x 3666667.333333333 -byte uctoa_append::value#1 reg byte x 2.0000000002E10 -byte uctoa_append::value#2 reg byte x 5.001833334166666E9 +char printf_uchar::format_justify_left +char printf_uchar::format_min_length +char printf_uchar::format_radix +char printf_uchar::format_sign_always +char printf_uchar::format_upper_case +char printf_uchar::format_zero_padding +char printf_uchar::uvalue +char printf_uchar::uvalue#0 // reg byte x 202.0 +char printf_uchar::uvalue#1 // reg byte x 202.0 +char printf_uchar::uvalue#2 // reg byte x 601.5 +__loadstore struct $0 stars = { star_x: { $32, $28, $1e, $46, $28 }, star_y: { $32, $46, $14, $a, $50 }, speed_x: { 2, 2, 2, 2, 2 }, speed_y: { 7, 7, 7, 7, 7 } } // mem[20] +void uctoa(char value , char *buffer , char radix) +char *uctoa::buffer +char *uctoa::buffer#11 // buffer zp[2]:7 335000.50000000006 +char *uctoa::buffer#14 // buffer zp[2]:7 1500001.5 +char *uctoa::buffer#3 // buffer zp[2]:7 20002.0 +char *uctoa::buffer#4 // buffer zp[2]:7 2000002.0 +char uctoa::digit +char uctoa::digit#1 // digit zp[1]:5 2000002.0 +char uctoa::digit#2 // digit zp[1]:5 307692.6153846154 +char uctoa::digit_value +char uctoa::digit_value#0 // digit_value zp[1]:21 600000.6000000001 +char *uctoa::digit_values +char uctoa::max_digits +char uctoa::radix +char uctoa::started +char uctoa::started#2 // started zp[1]:6 600000.6000000001 +char uctoa::started#4 // started zp[1]:6 1000001.0 +char uctoa::value +char uctoa::value#0 // reg byte x 1000001.0 +char uctoa::value#1 // reg byte x 5501.0 +char uctoa::value#2 // reg byte x 670001.0000000001 +char uctoa::value#6 // reg byte x 1500001.5 +char uctoa_append(char *buffer , char value , char sub) +char *uctoa_append::buffer +char *uctoa_append::buffer#0 // buffer zp[2]:7 1375000.25 +char uctoa_append::digit +char uctoa_append::digit#1 // reg byte y 1.0000000001E10 +char uctoa_append::digit#2 // reg byte y 1.00050000015E10 +char uctoa_append::return +char uctoa_append::return#0 // reg byte x 2000002.0 +char uctoa_append::sub +char uctoa_append::sub#0 // sub zp[1]:21 3.3335000005E9 +char uctoa_append::value +char uctoa_append::value#0 // reg byte x 3666667.333333333 +char uctoa_append::value#1 // reg byte x 2.0000000002E10 +char uctoa_append::value#2 // reg byte x 5.001833334166666E9 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[1]:2 [ main::i#2 main::i#1 ] @@ -5096,11 +5096,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main // [16] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return @@ -5130,7 +5130,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -5141,7 +5141,7 @@ conio_c64_init: { main: { .label i = 2 // clrscr() - // [17] call clrscr + // [17] call clrscr // [44] phi from main to clrscr [phi:main->clrscr] jsr clrscr // [18] phi from main to main::@1 [phi:main->main::@1] @@ -5162,17 +5162,17 @@ main: { // main::@2 __b2: // printf("%u %u\n", stars.star_x[i], stars.star_y[i]) - // [21] printf_uchar::uvalue#0 = ((byte*)&stars)[main::i#2] -- vbuxx=pbuc1_derefidx_vbuz1 + // [21] printf_uchar::uvalue#0 = ((char *)&stars)[main::i#2] -- vbuxx=pbuc1_derefidx_vbuz1 ldy.z i ldx stars,y - // [22] call printf_uchar + // [22] call printf_uchar // [60] phi from main::@2 to printf_uchar [phi:main::@2->printf_uchar] // [60] phi printf_uchar::uvalue#2 = printf_uchar::uvalue#0 [phi:main::@2->printf_uchar#0] -- register_copy jsr printf_uchar // [23] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // printf("%u %u\n", stars.star_x[i], stars.star_y[i]) - // [24] call cputs + // [24] call cputs // [67] phi from main::@3 to cputs [phi:main::@3->cputs] // [67] phi cputs::s#5 = main::s [phi:main::@3->cputs#0] -- pbuz1=pbuc1 lda #printf_uchar] // [60] phi printf_uchar::uvalue#2 = printf_uchar::uvalue#1 [phi:main::@4->printf_uchar#0] -- register_copy jsr printf_uchar // [27] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // printf("%u %u\n", stars.star_x[i], stars.star_y[i]) - // [28] call cputs + // [28] call cputs // [67] phi from main::@5 to cputs [phi:main::@5->cputs] // [67] phi cputs::s#5 = main::s1 [phi:main::@5->cputs#0] -- pbuz1=pbuc1 lda #uctoa] jsr uctoa // printf_uchar::@2 // printf_number_buffer(printf_buffer, format) - // [64] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [64] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [65] call printf_number_buffer + // [65] call printf_number_buffer // Print using format // [94] phi from printf_uchar::@2 to printf_number_buffer [phi:printf_uchar::@2->printf_number_buffer] jsr printf_number_buffer @@ -5444,7 +5444,7 @@ printf_uchar: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(3) s) +// void cputs(__zp(3) const char *s) cputs: { .label s = 3 // [68] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -5471,7 +5471,7 @@ cputs: { __b2: // cputc(c) // [73] cputc::c#0 = cputs::c#1 - // [74] call cputc + // [74] call cputc // [101] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] // [101] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy jsr cputc @@ -5483,14 +5483,14 @@ cputs: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp(7) buffer) +// void uctoa(__register(X) char value, __zp(7) char *buffer, char radix) uctoa: { .label digit_value = $15 .label buffer = 7 .label digit = 5 .label started = 6 // [76] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - // [76] phi uctoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [76] phi uctoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -5565,7 +5565,7 @@ uctoa: { // [87] uctoa_append::buffer#0 = uctoa::buffer#11 // [88] uctoa_append::value#0 = uctoa::value#2 // [89] uctoa_append::sub#0 = uctoa::digit_value#0 - // [90] call uctoa_append + // [90] call uctoa_append // [112] phi from uctoa::@5 to uctoa_append [phi:uctoa::@5->uctoa_append] jsr uctoa_append // uctoa_append(buffer++, value, digit_value) @@ -5590,7 +5590,7 @@ uctoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // printf_number_buffer::@1 @@ -5601,7 +5601,7 @@ printf_number_buffer: { // printf_number_buffer::@3 // cputc(buffer.sign) // [96] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [97] call cputc + // [97] call cputc // [101] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] // [101] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy jsr cputc @@ -5609,7 +5609,7 @@ printf_number_buffer: { // printf_number_buffer::@2 __b2: // cputs(buffer.digits) - // [99] call cputs + // [99] call cputs // [67] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] // [67] phi cputs::s#5 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->cputs#0] -- pbuz1=pbuc1 lda #cputc::@3] // cputc::@3 // cputln() - // [108] call cputln + // [108] call cputln jsr cputln // cputc::@return __breturn: @@ -5661,7 +5661,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [111] call cputln + // [111] call cputln jsr cputln rts } @@ -5674,7 +5674,7 @@ cputc: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp(7) buffer, byte register(X) value, byte zp($15) sub) +// __register(X) char uctoa_append(__zp(7) char *buffer, __register(X) char value, __zp($15) char sub) uctoa_append: { .label buffer = 7 .label sub = $15 @@ -5743,7 +5743,7 @@ cputln: { // [122] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [123] call cscroll + // [123] call cscroll jsr cscroll // cputln::@return // } @@ -5761,14 +5761,14 @@ cscroll: { // [126] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [127] call memcpy + // [127] call memcpy // [138] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [138] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [138] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [138] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [138] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -5777,14 +5777,14 @@ cscroll: { // [128] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [129] call memcpy + // [129] call memcpy // [138] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [138] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [138] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [138] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [138] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -5793,11 +5793,11 @@ cscroll: { // [130] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [131] call memset + // [131] call memset // [148] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [148] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [148] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [148] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -5806,11 +5806,11 @@ cscroll: { // [132] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [133] call memset + // [133] call memset // [148] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [148] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [148] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [148] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -5847,7 +5847,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($18) destination, void* zp(7) source) +// void * memcpy(__zp($18) void *destination, __zp(7) void *source, unsigned int num) memcpy: { .label src_end = $16 .label dst = $18 @@ -5855,7 +5855,7 @@ memcpy: { .label source = 7 .label destination = $18 // char* src_end = (char*)source+num - // [139] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [139] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -5863,8 +5863,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [140] memcpy::src#4 = (byte*)memcpy::source#2 - // [141] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [140] memcpy::src#4 = (char *)memcpy::source#2 + // [141] memcpy::dst#4 = (char *)memcpy::destination#2 // [142] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [142] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [142] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -5904,14 +5904,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(7) str, byte register(X) c) +// void * memset(__zp(7) void *str, __register(X) char c, unsigned int num) memset: { .label end = $18 .label dst = 7 .label str = 7 // memset::@1 // char* end = (char*)str + num - // [149] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [149] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -5919,7 +5919,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [150] memset::dst#4 = (byte*)memset::str#3 + // [150] memset::dst#4 = (char *)memset::str#3 // [151] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [151] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/stars-2.sym b/src/test/ref/stars-2.sym index cedb2cb3d..259ddfeeb 100644 --- a/src/test/ref/stars-2.sym +++ b/src/test/ref/stars-2.sym @@ -1,166 +1,166 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:7 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:7 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:3 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:3 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:7 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:7 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:3 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:3 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:9 2.8846157884615384E7 -byte conio_cursor_y loadstore zp[1]:10 4.705882383676472E8 -byte* conio_line_color loadstore zp[2]:13 3.348484880151515E8 -byte* conio_line_text loadstore zp[2]:11 3.2985074938805974E8 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2.0000002E7 -byte cputc::c#2 reg byte a 20002.0 -byte cputc::c#3 reg byte a 1.05005002E8 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:9 2.8846157884615384E7 +__loadstore char conio_cursor_y // zp[1]:10 4.705882383676472E8 +__loadstore char *conio_line_color // zp[2]:13 3.348484880151515E8 +__loadstore char *conio_line_text // zp[2]:11 3.2985074938805974E8 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2.0000002E7 +char cputc::c#2 // reg byte a 20002.0 +char cputc::c#3 // reg byte a 1.05005002E8 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1.0000001E7 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:3 5000000.5 -const byte* cputs::s#4 s zp[2]:3 1.5050002E7 -const byte* cputs::s#5 s zp[2]:3 100001.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1.0000001E7 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:3 5000000.5 +const char *cputs::s#4 // s zp[2]:3 1.5050002E7 +const char *cputs::s#5 // s zp[2]:3 100001.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:19 202.0 -byte*~ gotoxy::$6 zp[2]:15 202.0 -word~ gotoxy::$7 zp[2]:15 151.5 -word~ gotoxy::$8 zp[2]:17 202.0 -word~ gotoxy::$9 zp[2]:15 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:15 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:19 202.0 +char *gotoxy::$6 // zp[2]:15 202.0 +unsigned int gotoxy::$7 // zp[2]:15 151.5 +unsigned int gotoxy::$8 // zp[2]:17 202.0 +unsigned int gotoxy::$9 // zp[2]:15 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:15 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -byte main::i -byte main::i#1 i zp[1]:2 202.0 -byte main::i#2 i zp[1]:2 50.5 -constant byte* main::s[2] = " " -constant byte* main::s1[2] = " +char main::i +char main::i#1 // i zp[1]:2 202.0 +char main::i#2 // i zp[1]:2 50.5 +__constant char main::s[2] = " " +__constant char main::s1[2] = " " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:24 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:24 1.00000000000001E14 -byte* memcpy::dst#2 dst zp[2]:24 1.0003333333333467E14 -byte* memcpy::dst#4 dst zp[2]:24 2.00000000002E11 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:7 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:7 2.00000000000002E14 -byte* memcpy::src#2 src zp[2]:7 1.0002500000000125E14 -byte* memcpy::src#4 src zp[2]:7 1.00000000001E11 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:22 1.251250000000025E13 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714285714428E13 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:7 2.00000000000002E14 -byte* memset::dst#2 dst zp[2]:7 1.3336666666666834E14 -byte* memset::dst#4 dst zp[2]:7 2.00000000002E11 -byte* memset::end -byte* memset::end#0 end zp[2]:24 1.6683333333333668E13 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:7 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:24 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:24 1.00000000000001E14 +char *memcpy::dst#2 // dst zp[2]:24 1.0003333333333467E14 +char *memcpy::dst#4 // dst zp[2]:24 2.00000000002E11 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:7 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:7 2.00000000000002E14 +char *memcpy::src#2 // src zp[2]:7 1.0002500000000125E14 +char *memcpy::src#4 // src zp[2]:7 1.00000000001E11 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:22 1.251250000000025E13 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714285714428E13 +char *memset::dst +char *memset::dst#1 // dst zp[2]:7 2.00000000000002E14 +char *memset::dst#2 // dst zp[2]:7 1.3336666666666834E14 +char *memset::dst#4 // dst zp[2]:7 2.00000000002E11 +char *memset::end +char *memset::end#0 // end zp[2]:24 1.6683333333333668E13 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:7 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 7001.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 7001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_uchar(byte printf_uchar::uvalue , byte printf_uchar::format_min_length , byte printf_uchar::format_justify_left , byte printf_uchar::format_sign_always , byte printf_uchar::format_zero_padding , byte printf_uchar::format_upper_case , byte printf_uchar::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_uchar(char uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uchar::format -byte printf_uchar::format_justify_left -byte printf_uchar::format_min_length -byte printf_uchar::format_radix -byte printf_uchar::format_sign_always -byte printf_uchar::format_upper_case -byte printf_uchar::format_zero_padding -byte printf_uchar::uvalue -byte printf_uchar::uvalue#0 reg byte x 202.0 -byte printf_uchar::uvalue#1 reg byte x 202.0 -byte printf_uchar::uvalue#2 reg byte x 601.5 -struct $0 stars loadstore mem[20] = { star_x: { $32, $28, $1e, $46, $28 }, star_y: { $32, $46, $14, $a, $50 }, speed_x: { 2, 2, 2, 2, 2 }, speed_y: { 7, 7, 7, 7, 7 } } -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -byte* uctoa::buffer -byte* uctoa::buffer#11 buffer zp[2]:7 335000.50000000006 -byte* uctoa::buffer#14 buffer zp[2]:7 1500001.5 -byte* uctoa::buffer#3 buffer zp[2]:7 20002.0 -byte* uctoa::buffer#4 buffer zp[2]:7 2000002.0 -byte uctoa::digit -byte uctoa::digit#1 digit zp[1]:5 2000002.0 -byte uctoa::digit#2 digit zp[1]:5 307692.6153846154 -byte uctoa::digit_value -byte uctoa::digit_value#0 digit_value zp[1]:21 600000.6000000001 -byte* uctoa::digit_values -byte uctoa::max_digits -byte uctoa::radix -byte uctoa::started -byte uctoa::started#2 started zp[1]:6 600000.6000000001 -byte uctoa::started#4 started zp[1]:6 1000001.0 -byte uctoa::value -byte uctoa::value#0 reg byte x 1000001.0 -byte uctoa::value#1 reg byte x 5501.0 -byte uctoa::value#2 reg byte x 670001.0000000001 -byte uctoa::value#6 reg byte x 1500001.5 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 buffer zp[2]:7 1375000.25 -byte uctoa_append::digit -byte uctoa_append::digit#1 reg byte y 1.0000000001E10 -byte uctoa_append::digit#2 reg byte y 1.00050000015E10 -byte uctoa_append::return -byte uctoa_append::return#0 reg byte x 2000002.0 -byte uctoa_append::sub -byte uctoa_append::sub#0 sub zp[1]:21 3.3335000005E9 -byte uctoa_append::value -byte uctoa_append::value#0 reg byte x 3666667.333333333 -byte uctoa_append::value#1 reg byte x 2.0000000002E10 -byte uctoa_append::value#2 reg byte x 5.001833334166666E9 +char printf_uchar::format_justify_left +char printf_uchar::format_min_length +char printf_uchar::format_radix +char printf_uchar::format_sign_always +char printf_uchar::format_upper_case +char printf_uchar::format_zero_padding +char printf_uchar::uvalue +char printf_uchar::uvalue#0 // reg byte x 202.0 +char printf_uchar::uvalue#1 // reg byte x 202.0 +char printf_uchar::uvalue#2 // reg byte x 601.5 +__loadstore struct $0 stars = { star_x: { $32, $28, $1e, $46, $28 }, star_y: { $32, $46, $14, $a, $50 }, speed_x: { 2, 2, 2, 2, 2 }, speed_y: { 7, 7, 7, 7, 7 } } // mem[20] +void uctoa(char value , char *buffer , char radix) +char *uctoa::buffer +char *uctoa::buffer#11 // buffer zp[2]:7 335000.50000000006 +char *uctoa::buffer#14 // buffer zp[2]:7 1500001.5 +char *uctoa::buffer#3 // buffer zp[2]:7 20002.0 +char *uctoa::buffer#4 // buffer zp[2]:7 2000002.0 +char uctoa::digit +char uctoa::digit#1 // digit zp[1]:5 2000002.0 +char uctoa::digit#2 // digit zp[1]:5 307692.6153846154 +char uctoa::digit_value +char uctoa::digit_value#0 // digit_value zp[1]:21 600000.6000000001 +char *uctoa::digit_values +char uctoa::max_digits +char uctoa::radix +char uctoa::started +char uctoa::started#2 // started zp[1]:6 600000.6000000001 +char uctoa::started#4 // started zp[1]:6 1000001.0 +char uctoa::value +char uctoa::value#0 // reg byte x 1000001.0 +char uctoa::value#1 // reg byte x 5501.0 +char uctoa::value#2 // reg byte x 670001.0000000001 +char uctoa::value#6 // reg byte x 1500001.5 +char uctoa_append(char *buffer , char value , char sub) +char *uctoa_append::buffer +char *uctoa_append::buffer#0 // buffer zp[2]:7 1375000.25 +char uctoa_append::digit +char uctoa_append::digit#1 // reg byte y 1.0000000001E10 +char uctoa_append::digit#2 // reg byte y 1.00050000015E10 +char uctoa_append::return +char uctoa_append::return#0 // reg byte x 2000002.0 +char uctoa_append::sub +char uctoa_append::sub#0 // sub zp[1]:21 3.3335000005E9 +char uctoa_append::value +char uctoa_append::value#0 // reg byte x 3666667.333333333 +char uctoa_append::value#1 // reg byte x 2.0000000002E10 +char uctoa_append::value#2 // reg byte x 5.001833334166666E9 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[1]:2 [ main::i#2 main::i#1 ] diff --git a/src/test/ref/statement-sequence-1.log b/src/test/ref/statement-sequence-1.log index 1c082fc03..8030a1e2b 100644 --- a/src/test/ref/statement-sequence-1.log +++ b/src/test/ref/statement-sequence-1.log @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -46,24 +46,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -bool~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +number main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +bool main::$6 +__constant char * const main::SCREEN = (char *)$400 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 Adding number conversion cast (unumber) 5 in main::c#0 = main::i#2 + 5 Adding number conversion cast (unumber) 1 in main::$1 = main::i#2 & 1 @@ -71,18 +71,18 @@ Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#2 & (unum Adding number conversion cast (unumber) 0 in main::$2 = main::$1 == 0 Adding number conversion cast (unumber) 5 in main::$3 = main::i#2 > 5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#2 & 1 +Inferred type updated to char in main::$1 = main::i#2 & 1 Alias main::c#0 = main::c#3 Alias main::i#2 = main::i#4 Successful SSA optimization Pass2AliasElimination @@ -106,7 +106,7 @@ Adding number conversion cast (unumber) $b in [9] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$2 [5] if(main::$1==0) goto main::@3 Simple Condition main::$3 [12] if(main::i#2>5) goto main::@3 @@ -120,7 +120,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 5+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -170,14 +170,14 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::c -byte main::c#0 8.25 -byte main::c#1 22.0 -byte main::c#2 33.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.25 +char main::$1 // 22.0 +char main::c +char main::c#0 // 8.25 +char main::c#1 // 22.0 +char main::c#2 // 33.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -296,15 +296,15 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::c -byte main::c#0 reg byte x 8.25 -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 33.0 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 8.25 +char main::$1 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::c +char main::c#0 // reg byte x 8.25 +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 33.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 8.25 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::c#2 main::c#0 main::c#1 ] diff --git a/src/test/ref/statement-sequence-1.sym b/src/test/ref/statement-sequence-1.sym index c2fb66107..6aa88f982 100644 --- a/src/test/ref/statement-sequence-1.sym +++ b/src/test/ref/statement-sequence-1.sym @@ -1,13 +1,13 @@ void main() -byte~ main::$1 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::c -byte main::c#0 reg byte x 8.25 -byte main::c#1 reg byte x 22.0 -byte main::c#2 reg byte x 33.0 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 8.25 +char main::$1 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::c +char main::c#0 // reg byte x 8.25 +char main::c#1 // reg byte x 22.0 +char main::c#2 // reg byte x 33.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 8.25 reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::c#2 main::c#0 main::c#1 ] diff --git a/src/test/ref/static-init-code-0.log b/src/test/ref/static-init-code-0.log index fc0dfe4f0..30a96a03e 100644 --- a/src/test/ref/static-init-code-0.log +++ b/src/test/ref/static-init-code-0.log @@ -1,5 +1,5 @@ Resolved forward reference c2 to c2 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -20,7 +20,7 @@ __start::__init1: scope:[__start] from __start c2 = 'k' to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -29,21 +29,21 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte c1 loadstore -volatile byte c2 loadstore +__loadstore volatile char c1 +__loadstore volatile char c2 void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = c1 Adding number conversion cast (unumber) 1 in SCREEN[1] = c2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = c1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -73,7 +73,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [3] phi() - [4] call main + [4] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [5] return @@ -91,8 +91,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() -volatile byte c1 loadstore 4.333333333333333 -volatile byte c2 loadstore 4.333333333333333 +__loadstore volatile char c1 // 4.333333333333333 +__loadstore volatile char c2 // 4.333333333333333 void main() Initial phi equivalence classes @@ -161,7 +161,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [4] call main + // [4] call main jsr main jmp __breturn // __start::@return @@ -200,10 +200,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte c1 loadstore zp[1]:2 4.333333333333333 -volatile byte c2 loadstore zp[1]:3 4.333333333333333 +__loadstore volatile char c1 // zp[1]:2 4.333333333333333 +__loadstore volatile char c2 // zp[1]:3 4.333333333333333 void main() zp[1]:2 [ c1 ] @@ -246,7 +246,7 @@ __start: { sta.z c2 // [3] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [4] call main + // [4] call main jsr main // __start::@return // [5] return diff --git a/src/test/ref/static-init-code-0.sym b/src/test/ref/static-init-code-0.sym index 170e96e12..f81f22b9d 100644 --- a/src/test/ref/static-init-code-0.sym +++ b/src/test/ref/static-init-code-0.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte c1 loadstore zp[1]:2 4.333333333333333 -volatile byte c2 loadstore zp[1]:3 4.333333333333333 +__loadstore volatile char c1 // zp[1]:2 4.333333333333333 +__loadstore volatile char c2 // zp[1]:3 4.333333333333333 void main() zp[1]:2 [ c1 ] diff --git a/src/test/ref/static-init-code-1.log b/src/test/ref/static-init-code-1.log index ed022fcb2..4f6bddd78 100644 --- a/src/test/ref/static-init-code-1.log +++ b/src/test/ref/static-init-code-1.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,19 +21,19 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'o' Adding number conversion cast (unumber) 1 in SCREEN[1] = 'k' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'o' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -116,7 +116,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/static-init-code-1.sym b/src/test/ref/static-init-code-1.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/static-init-code-1.sym +++ b/src/test/ref/static-init-code-1.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/static-init-code-2.log b/src/test/ref/static-init-code-2.log index f071a4eed..67babed1b 100644 --- a/src/test/ref/static-init-code-2.log +++ b/src/test/ref/static-init-code-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -17,7 +17,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -26,21 +26,21 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte c1 = 'o' -constant byte c2 = 'k' +__constant char c1 = 'o' +__constant char c2 = 'k' void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = c1 Adding number conversion cast (unumber) 1 in SCREEN[1] = c2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = c1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -127,9 +127,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte c1 = 'o' -constant byte c2 = 'k' +__constant char * const SCREEN = (char *) 1024 +__constant char c1 = 'o' +__constant char c2 = 'k' void main() diff --git a/src/test/ref/static-init-code-2.sym b/src/test/ref/static-init-code-2.sym index 7fc8bbd3d..4baffce05 100644 --- a/src/test/ref/static-init-code-2.sym +++ b/src/test/ref/static-init-code-2.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte c1 = 'o' -constant byte c2 = 'k' +__constant char * const SCREEN = (char *) 1024 +__constant char c1 = 'o' +__constant char c2 = 'k' void main() diff --git a/src/test/ref/static-register-optimization-problem.cfg b/src/test/ref/static-register-optimization-problem.cfg index 2cdb22733..54b5b94b0 100644 --- a/src/test/ref/static-register-optimization-problem.cfg +++ b/src/test/ref/static-register-optimization-problem.cfg @@ -13,7 +13,7 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] main::$1 = main::screen + main::i#2 - [5] *main::$1 = (byte)main::lasti#2 + [5] *main::$1 = (char)main::lasti#2 [6] main::lasti#1 = main::i#2 [7] main::i#1 = ++ main::i#2 to:main::@1 diff --git a/src/test/ref/static-register-optimization-problem.log b/src/test/ref/static-register-optimization-problem.log index 28b7264d4..1f0ab8a5d 100644 --- a/src/test/ref/static-register-optimization-problem.log +++ b/src/test/ref/static-register-optimization-problem.log @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::lasti#2 = phi( main::@1/main::lasti#3 ) - main::screen[main::i#3] = (byte)main::lasti#2 + main::screen[main::i#3] = (char)main::lasti#2 main::lasti#1 = main::i#3 main::i#1 = ++ main::i#3 to:main::@1 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,25 +36,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -signed word main::i -signed word main::i#0 -signed word main::i#1 -signed word main::i#2 -signed word main::i#3 -signed word main::lasti -signed word main::lasti#0 -signed word main::lasti#1 -signed word main::lasti#2 -signed word main::lasti#3 -constant byte* main::screen = (byte*)$400 +bool main::$0 +int main::i +int main::i#0 +int main::i#1 +int main::i#2 +int main::i#3 +int main::lasti +int main::lasti#0 +int main::lasti#1 +int main::lasti#2 +int main::lasti#3 +__constant char *main::screen = (char *)$400 Adding number conversion cast (snumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $a +Finalized signed number type (signed char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (phi-usage) main::i#2 = main::i#3 main::lasti#1 Alias main::lasti#2 = main::lasti#3 @@ -67,7 +67,7 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::lasti#0 = -1 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -De-inlining pointer[w] to *(pointer+w) [6] main::screen[main::i#2] = (byte)main::lasti#2 +De-inlining pointer[w] to *(pointer+w) [6] main::screen[main::i#2] = (char)main::lasti#2 Successful SSA optimization Pass2DeInlineWordDerefIdx Removing unused procedure __start Removing unused procedure block __start @@ -108,7 +108,7 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] main::$1 = main::screen + main::i#2 - [5] *main::$1 = (byte)main::lasti#2 + [5] *main::$1 = (char)main::lasti#2 [6] main::lasti#1 = main::i#2 [7] main::i#1 = ++ main::i#2 to:main::@1 @@ -116,13 +116,13 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$1 22.0 -signed word main::i -signed word main::i#1 22.0 -signed word main::i#2 11.0 -signed word main::lasti -signed word main::lasti#1 11.0 -signed word main::lasti#2 3.6666666666666665 +char *main::$1 // 22.0 +int main::i +int main::i#1 // 22.0 +int main::i#2 // 11.0 +int main::lasti +int main::lasti#1 // 11.0 +int main::lasti#2 // 3.6666666666666665 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -138,7 +138,7 @@ Allocated zp[2]:6 [ main::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] if(main::i#2<$a) goto main::@2 [ main::i#2 main::lasti#2 ] ( [ main::i#2 main::lasti#2 ] { } ) always clobbers reg byte a Statement [4] main::$1 = main::screen + main::i#2 [ main::i#2 main::lasti#2 main::$1 ] ( [ main::i#2 main::lasti#2 main::$1 ] { } ) always clobbers reg byte a -Statement [5] *main::$1 = (byte)main::lasti#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y +Statement [5] *main::$1 = (char)main::lasti#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y Statement [6] main::lasti#1 = main::i#2 [ main::i#2 main::lasti#1 ] ( [ main::i#2 main::lasti#1 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::i#2 main::i#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::lasti#2 main::lasti#1 ] : zp[2]:4 , @@ -212,7 +212,7 @@ main: { lda #>screen adc.z i+1 sta.z __1+1 - // [5] *main::$1 = (byte)main::lasti#2 -- _deref_pbuz1=_byte_vwsz2 + // [5] *main::$1 = (char)main::lasti#2 -- _deref_pbuz1=_byte_vwsz2 lda.z lasti ldy #0 sta (__1),y @@ -248,14 +248,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte*~ main::$1 zp[2]:6 22.0 -signed word main::i -signed word main::i#1 i zp[2]:2 22.0 -signed word main::i#2 i zp[2]:2 11.0 -signed word main::lasti -signed word main::lasti#1 lasti zp[2]:4 11.0 -signed word main::lasti#2 lasti zp[2]:4 3.6666666666666665 -constant byte* main::screen = (byte*) 1024 +char *main::$1 // zp[2]:6 22.0 +int main::i +int main::i#1 // i zp[2]:2 22.0 +int main::i#2 // i zp[2]:2 11.0 +int main::lasti +int main::lasti#1 // lasti zp[2]:4 11.0 +int main::lasti#2 // lasti zp[2]:4 3.6666666666666665 +__constant char *main::screen = (char *) 1024 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::lasti#2 main::lasti#1 ] @@ -322,7 +322,7 @@ main: { lda #>screen adc.z i+1 sta.z __1+1 - // [5] *main::$1 = (byte)main::lasti#2 -- _deref_pbuz1=_byte_vwsz2 + // [5] *main::$1 = (char)main::lasti#2 -- _deref_pbuz1=_byte_vwsz2 lda.z lasti ldy #0 sta (__1),y diff --git a/src/test/ref/static-register-optimization-problem.sym b/src/test/ref/static-register-optimization-problem.sym index b8943cac1..59ea371c7 100644 --- a/src/test/ref/static-register-optimization-problem.sym +++ b/src/test/ref/static-register-optimization-problem.sym @@ -1,12 +1,12 @@ void main() -byte*~ main::$1 zp[2]:6 22.0 -signed word main::i -signed word main::i#1 i zp[2]:2 22.0 -signed word main::i#2 i zp[2]:2 11.0 -signed word main::lasti -signed word main::lasti#1 lasti zp[2]:4 11.0 -signed word main::lasti#2 lasti zp[2]:4 3.6666666666666665 -constant byte* main::screen = (byte*) 1024 +char *main::$1 // zp[2]:6 22.0 +int main::i +int main::i#1 // i zp[2]:2 22.0 +int main::i#2 // i zp[2]:2 11.0 +int main::lasti +int main::lasti#1 // lasti zp[2]:4 11.0 +int main::lasti#2 // lasti zp[2]:4 3.6666666666666665 +__constant char *main::screen = (char *) 1024 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::lasti#2 main::lasti#1 ] diff --git a/src/test/ref/stmt-empty-1.log b/src/test/ref/stmt-empty-1.log index 12f10dd63..ff0c38fee 100644 --- a/src/test/ref/stmt-empty-1.log +++ b/src/test/ref/stmt-empty-1.log @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,28 +34,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -bool~ main::$1 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::b#4 -constant byte* str[] = "Hello!" +char main::$0 +bool main::$1 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::b#4 +__constant char str[] = "Hello!" Adding number conversion cast (unumber) 0 in main::$1 = str[main::b#2] != 0 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::b#2 = main::b#3 main::b#4 Successful SSA optimization Pass2AliasElimination @@ -105,10 +105,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte main::b -byte main::b#1 22.0 -byte main::b#2 17.5 +char main::$0 // 4.0 +char main::b +char main::b#1 // 22.0 +char main::b#2 // 17.5 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -202,13 +202,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte x 4.0 -byte main::b -byte main::b#1 reg byte x 22.0 -byte main::b#2 reg byte x 17.5 -constant byte* str[] = "Hello!" +char main::$0 // reg byte x 4.0 +char main::b +char main::b#1 // reg byte x 22.0 +char main::b#2 // reg byte x 17.5 +__constant char str[] = "Hello!" reg byte x [ main::b#2 main::b#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/stmt-empty-1.sym b/src/test/ref/stmt-empty-1.sym index fca333cb3..ac5336699 100644 --- a/src/test/ref/stmt-empty-1.sym +++ b/src/test/ref/stmt-empty-1.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte x 4.0 -byte main::b -byte main::b#1 reg byte x 22.0 -byte main::b#2 reg byte x 17.5 -constant byte* str[] = "Hello!" +char main::$0 // reg byte x 4.0 +char main::b +char main::b#1 // reg byte x 22.0 +char main::b#2 // reg byte x 17.5 +__constant char str[] = "Hello!" reg byte x [ main::b#2 main::b#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/stmt-empty.cfg b/src/test/ref/stmt-empty.cfg index 3a10b97e7..d4f8fc727 100644 --- a/src/test/ref/stmt-empty.cfg +++ b/src/test/ref/stmt-empty.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::screen#2 = phi( main/(byte*) 1024, main::@2/main::screen#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@2/main::screen#1 ) [2] if(main::screen#2<$400+$3e8) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 diff --git a/src/test/ref/stmt-empty.log b/src/test/ref/stmt-empty.log index 565d54647..4af33e682 100644 --- a/src/test/ref/stmt-empty.log +++ b/src/test/ref/stmt-empty.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 to:main::@1 main::@1: scope:[main] from main main::@2 main::screen#2 = phi( main/main::screen#0, main::@2/main::screen#1 ) @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,22 +32,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 +bool main::$0 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 Adding number conversion cast (unumber) $400+$3e8 in main::$0 = main::screen#2 < $400+$3e8 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::screen#2 = main::screen#3 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$0 [3] if(main::screen#2<(word)$400+$3e8) goto main::@2 +Simple Condition main::$0 [3] if(main::screen#2<(unsigned int)$400+$3e8) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -55,10 +55,10 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::screen#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $400+$3e8 Successful SSA optimization PassNCastSimplification @@ -77,7 +77,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::screen#2 = phi( main/(byte*) 1024, main::@2/main::screen#1 ) + [1] main::screen#2 = phi( main/(char *) 1024, main::@2/main::screen#1 ) [2] if(main::screen#2<$400+$3e8) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 @@ -91,9 +91,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte* main::screen -byte* main::screen#1 22.0 -byte* main::screen#2 14.666666666666666 +char *main::screen +char *main::screen#1 // 22.0 +char *main::screen#2 // 14.666666666666666 Initial phi equivalence classes [ main::screen#2 main::screen#1 ] @@ -131,7 +131,7 @@ main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -183,9 +183,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte* main::screen -byte* main::screen#1 screen zp[2]:2 22.0 -byte* main::screen#2 screen zp[2]:2 14.666666666666666 +char *main::screen +char *main::screen#1 // screen zp[2]:2 22.0 +char *main::screen#2 // screen zp[2]:2 14.666666666666666 zp[2]:2 [ main::screen#2 main::screen#1 ] @@ -210,7 +210,7 @@ Score: 536 main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/stmt-empty.sym b/src/test/ref/stmt-empty.sym index d813544c0..0657dd036 100644 --- a/src/test/ref/stmt-empty.sym +++ b/src/test/ref/stmt-empty.sym @@ -1,6 +1,6 @@ void main() -byte* main::screen -byte* main::screen#1 screen zp[2]:2 22.0 -byte* main::screen#2 screen zp[2]:2 14.666666666666666 +char *main::screen +char *main::screen#1 // screen zp[2]:2 22.0 +char *main::screen#2 // screen zp[2]:2 14.666666666666666 zp[2]:2 [ main::screen#2 main::screen#1 ] diff --git a/src/test/ref/strcmp-0.asm b/src/test/ref/strcmp-0.asm index a5a2abedd..f9502be68 100644 --- a/src/test/ref/strcmp-0.asm +++ b/src/test/ref/strcmp-0.asm @@ -548,7 +548,7 @@ main: { } .segment Code // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $17 @@ -628,6 +628,7 @@ gotoxy: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. +// __zp($1a) int strcmp(const char *str1, const char *str2) strcmp: { .label s1 = 4 .label s2 = 6 @@ -674,7 +675,7 @@ strcmp: { !: jmp __b1 } -// assert_cmp(signed byte zp(2) expect, signed byte zp(3) actual, byte* zp(4) message) +// void assert_cmp(__zp(2) signed char expect, __zp(3) signed char actual, __zp(4) char *message) assert_cmp: { .label actual = 3 .label expect = 2 @@ -818,7 +819,7 @@ assert_cmp: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -// strncmp(word zp(4) n) +// __zp($a) int strncmp(const char *str1, const char *str2, __zp(4) unsigned int n) strncmp: { .label s1 = 6 .label s2 = $1a @@ -882,7 +883,7 @@ strncmp: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -// memcmp(const void* zp(4) str1, const void* zp($a) str2, word zp(6) n) +// __zp($1a) int memcmp(__zp(4) const void *str1, __zp($a) const void *str2, __zp(6) unsigned int n) memcmp: { .label n = 6 .label s1 = 4 @@ -936,7 +937,7 @@ memcmp: { jmp __b1 } // Set the color for text output. The old color setting is returned. -// textcolor(byte register(A) color) +// char textcolor(__register(A) char color) textcolor: { // conio_textcolor = color sta.z conio_textcolor @@ -944,7 +945,7 @@ textcolor: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(6) s) +// void cputs(__zp(6) const char *s) cputs: { .label s = 6 __b1: @@ -965,7 +966,7 @@ cputs: { jmp __b1 } // Print a signed char using a specific format -// printf_schar(signed byte register(X) value) +// void printf_schar(__register(X) signed char value, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_schar: { // printf_buffer.sign = 0 // Handle any sign @@ -997,7 +998,7 @@ printf_schar: { } // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(4) str) +// void printf_string(__zp(4) char *str, char format_min_length, char format_justify_left) printf_string: { .label str = 4 // cputs(str) @@ -1011,7 +1012,7 @@ printf_string: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -1042,7 +1043,7 @@ cputc: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp($1a) buffer) +// void uctoa(__register(X) char value, __zp($1a) char *buffer, char radix) uctoa: { .label digit_value = $19 .label buffer = $1a @@ -1105,7 +1106,7 @@ uctoa: { } // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // if(buffer.sign) @@ -1159,7 +1160,7 @@ cputln: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp($1a) buffer, byte register(X) value, byte zp($19) sub) +// __register(X) char uctoa_append(__zp($1a) char *buffer, __register(X) char value, __zp($19) char sub) uctoa_append: { .label buffer = $1a .label sub = $19 @@ -1248,7 +1249,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($1c) destination, void* zp($a) source) +// void * memcpy(__zp($1c) void *destination, __zp($a) void *source, unsigned int num) memcpy: { .label src_end = $1a .label dst = $1c @@ -1290,7 +1291,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c) +// void * memset(__zp($a) void *str, __register(X) char c, unsigned int num) memset: { .label end = $1c .label dst = $a diff --git a/src/test/ref/strcmp-0.cfg b/src/test/ref/strcmp-0.cfg index 0696e9e81..e2a9e1642 100644 --- a/src/test/ref/strcmp-0.cfg +++ b/src/test/ref/strcmp-0.cfg @@ -194,7 +194,7 @@ main::@1: scope:[main] from main::@1 main::@34 [102] phi() to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [103] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -207,7 +207,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [106] conio_cursor_x = gotoxy::x#2 [107] conio_cursor_y = gotoxy::y#4 - [108] gotoxy::$7 = (word)gotoxy::y#4 + [108] gotoxy::$7 = (unsigned int)gotoxy::y#4 [109] gotoxy::$8 = gotoxy::$7 << 2 [110] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [111] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -220,7 +220,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [116] return to:@return -signed word strcmp(const byte* strcmp::str1 , const byte* strcmp::str2) +int strcmp(const char *str1 , const char *str2) strcmp: scope:[strcmp] from main main::@11 main::@13 main::@15 main::@3 main::@5 main::@7 main::@9 [117] strcmp::s2#0 = phi( main/main::str2, main::@11/main::str25, main::@13/main::str26, main::@15/main::str27, main::@3/main::str21, main::@5/main::str11, main::@7/main::str13, main::@9/main::str14 ) [117] strcmp::s1#0 = phi( main/main::str1, main::@11/main::str15, main::@13/main::str16, main::@15/main::str16, main::@3/main::str11, main::@5/main::str12, main::@7/main::str13, main::@9/main::str14 ) @@ -232,7 +232,7 @@ strcmp::@1: scope:[strcmp] from strcmp strcmp::@4 to:strcmp::@3 strcmp::@3: scope:[strcmp] from strcmp::@1 [120] strcmp::$0 = *strcmp::s1#2 - *strcmp::s2#2 - [121] strcmp::return#0 = (signed word)(signed byte)strcmp::$0 + [121] strcmp::return#0 = (int)(signed char)strcmp::$0 to:strcmp::@return strcmp::@return: scope:[strcmp] from strcmp::@2 strcmp::@3 [122] strcmp::return#11 = phi( strcmp::@3/strcmp::return#0, strcmp::@2/0 ) @@ -246,7 +246,7 @@ strcmp::@4: scope:[strcmp] from strcmp::@2 [126] strcmp::s2#1 = ++ strcmp::s2#2 to:strcmp::@1 -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) +void assert_cmp(signed char expect , signed char actual , char *message) assert_cmp: scope:[assert_cmp] from main::@10 main::@12 main::@14 main::@16 main::@18 main::@2 main::@20 main::@22 main::@24 main::@26 main::@28 main::@30 main::@32 main::@34 main::@4 main::@6 main::@8 [127] assert_cmp::message#17 = phi( main::@10/main::message4, main::@12/main::message5, main::@14/main::message6, main::@16/main::message7, main::@18/main::message8, main::@2/main::message, main::@20/main::message9, main::@22/main::message10, main::@24/main::message11, main::@26/main::message12, main::@28/main::message13, main::@30/main::message14, main::@32/main::message15, main::@34/main::message16, main::@4/main::message1, main::@6/main::message2, main::@8/main::message3 ) [127] assert_cmp::actual#17 = phi( main::@10/assert_cmp::actual#4, main::@12/assert_cmp::actual#5, main::@14/assert_cmp::actual#6, main::@16/assert_cmp::actual#7, main::@18/assert_cmp::actual#8, main::@2/assert_cmp::actual#0, main::@20/assert_cmp::actual#9, main::@22/assert_cmp::actual#10, main::@24/assert_cmp::actual#11, main::@26/assert_cmp::actual#12, main::@28/assert_cmp::actual#13, main::@30/assert_cmp::actual#14, main::@32/assert_cmp::actual#15, main::@34/assert_cmp::actual#16, main::@4/assert_cmp::actual#1, main::@6/assert_cmp::actual#2, main::@8/assert_cmp::actual#3 ) @@ -261,7 +261,7 @@ assert_cmp::@3: scope:[assert_cmp] from assert_cmp::@2 to:assert_cmp::@6 assert_cmp::@6: scope:[assert_cmp] from assert_cmp::@3 [131] assert_cmp::$2 = assert_cmp::actual#17 > 0 - [132] assert_cmp::ok#3 = (byte)assert_cmp::$2 + [132] assert_cmp::ok#3 = (char)assert_cmp::$2 to:assert_cmp::@7 assert_cmp::@7: scope:[assert_cmp] from assert_cmp::@3 assert_cmp::@4 assert_cmp::@5 assert_cmp::@6 [133] assert_cmp::ok#4 = phi( assert_cmp::@3/0, assert_cmp::@4/assert_cmp::ok#1, assert_cmp::@5/assert_cmp::ok#2, assert_cmp::@6/assert_cmp::ok#3 ) @@ -320,14 +320,14 @@ assert_cmp::@11: scope:[assert_cmp] from assert_cmp::@10 to:assert_cmp::@return assert_cmp::@5: scope:[assert_cmp] from assert_cmp::@2 [160] assert_cmp::$1 = assert_cmp::actual#17 == 0 - [161] assert_cmp::ok#2 = (byte)assert_cmp::$1 + [161] assert_cmp::ok#2 = (char)assert_cmp::$1 to:assert_cmp::@7 assert_cmp::@4: scope:[assert_cmp] from assert_cmp [162] assert_cmp::$0 = assert_cmp::actual#17 < 0 - [163] assert_cmp::ok#1 = (byte)assert_cmp::$0 + [163] assert_cmp::ok#1 = (char)assert_cmp::$0 to:assert_cmp::@7 -signed word strncmp(const byte* strncmp::str1 , const byte* strncmp::str2 , word strncmp::n) +int strncmp(const char *str1 , const char *str2 , unsigned int n) strncmp: scope:[strncmp] from main::@17 main::@19 main::@21 main::@23 main::@25 [164] strncmp::n#8 = phi( main::@17/3, main::@19/3, main::@21/2, main::@23/3, main::@25/3 ) [164] strncmp::s2#0 = phi( main::@17/main::str28, main::@19/main::str29, main::@21/main::str210, main::@23/main::str211, main::@25/main::str212 ) @@ -341,7 +341,7 @@ strncmp::@1: scope:[strncmp] from strncmp strncmp::@4 to:strncmp::@3 strncmp::@3: scope:[strncmp] from strncmp::@1 [167] strncmp::$0 = *strncmp::s1#2 - *strncmp::s2#2 - [168] strncmp::return#0 = (signed word)(signed byte)strncmp::$0 + [168] strncmp::return#0 = (int)(signed char)strncmp::$0 to:strncmp::@return strncmp::@return: scope:[strncmp] from strncmp::@2 strncmp::@3 strncmp::@5 [169] strncmp::return#2 = phi( strncmp::@3/strncmp::return#0, strncmp::@2/0, strncmp::@5/0 ) @@ -359,13 +359,13 @@ strncmp::@4: scope:[strncmp] from strncmp::@5 [175] strncmp::s2#1 = ++ strncmp::s2#2 to:strncmp::@1 -signed word memcmp(const void* memcmp::str1 , const void* memcmp::str2 , word memcmp::n) +int memcmp(const void *str1 , const void *str2 , unsigned int n) memcmp: scope:[memcmp] from main::@27 main::@29 main::@31 main::@33 [176] memcmp::n#7 = phi( main::@27/2, main::@29/2, main::@31/1, main::@33/4 ) - [176] memcmp::str2#4 = phi( main::@27/(const void*)main::$35, main::@29/(const void*)main::str13, main::@31/(const void*)main::$39, main::@33/(const void*)main::str111 ) - [176] memcmp::str1#4 = phi( main::@27/(const void*)main::str12, main::@29/(const void*)main::str13, main::@31/(const void*)main::$38, main::@33/(const void*)main::str14 ) - [177] memcmp::s1#6 = (byte*)memcmp::str1#4 - [178] memcmp::s2#6 = (byte*)memcmp::str2#4 + [176] memcmp::str2#4 = phi( main::@27/(const void *)main::$35, main::@29/(const void *)main::str13, main::@31/(const void *)main::$39, main::@33/(const void *)main::str111 ) + [176] memcmp::str1#4 = phi( main::@27/(const void *)main::str12, main::@29/(const void *)main::str13, main::@31/(const void *)main::$38, main::@33/(const void *)main::str14 ) + [177] memcmp::s1#6 = (char *)memcmp::str1#4 + [178] memcmp::s2#6 = (char *)memcmp::str2#4 to:memcmp::@1 memcmp::@1: scope:[memcmp] from memcmp memcmp::@3 [179] memcmp::s2#2 = phi( memcmp/memcmp::s2#6, memcmp::@3/memcmp::s2#1 ) @@ -382,7 +382,7 @@ memcmp::@2: scope:[memcmp] from memcmp::@1 to:memcmp::@4 memcmp::@4: scope:[memcmp] from memcmp::@2 [184] memcmp::$3 = *memcmp::s1#2 - *memcmp::s2#2 - [185] memcmp::return#1 = (signed word)(signed byte)memcmp::$3 + [185] memcmp::return#1 = (int)(signed char)memcmp::$3 to:memcmp::@return memcmp::@3: scope:[memcmp] from memcmp::@2 [186] memcmp::n#0 = -- memcmp::n#5 @@ -390,7 +390,7 @@ memcmp::@3: scope:[memcmp] from memcmp::@2 [188] memcmp::s2#1 = ++ memcmp::s2#2 to:memcmp::@1 -byte textcolor(byte textcolor::color) +char textcolor(char color) textcolor: scope:[textcolor] from assert_cmp::@1 assert_cmp::@8 [189] textcolor::color#2 = phi( assert_cmp::@1/GREEN, assert_cmp::@8/RED ) [190] conio_textcolor = textcolor::color#2 @@ -399,7 +399,7 @@ textcolor::@return: scope:[textcolor] from textcolor [191] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from assert_cmp::@11 assert_cmp::@12 assert_cmp::@14 assert_cmp::@16 assert_cmp::@18 assert_cmp::@9 printf_number_buffer::@2 printf_string::@1 [192] cputs::s#10 = phi( assert_cmp::@11/assert_cmp::s1, assert_cmp::@12/assert_cmp::s2, assert_cmp::@14/assert_cmp::s3, assert_cmp::@16/assert_cmp::s4, assert_cmp::@18/assert_cmp::s1, assert_cmp::@9/assert_cmp::s, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0, printf_string::@1/cputs::s#2 ) to:cputs::@1 @@ -417,30 +417,30 @@ cputs::@2: scope:[cputs] from cputs::@1 [199] call cputc to:cputs::@1 -void printf_schar(signed byte printf_schar::value , byte printf_schar::format_min_length , byte printf_schar::format_justify_left , byte printf_schar::format_sign_always , byte printf_schar::format_zero_padding , byte printf_schar::format_upper_case , byte printf_schar::format_radix) +void printf_schar(signed char value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_schar: scope:[printf_schar] from assert_cmp::@13 assert_cmp::@15 [200] printf_schar::value#3 = phi( assert_cmp::@13/printf_schar::value#1, assert_cmp::@15/printf_schar::value#2 ) - [201] *((byte*)&printf_buffer) = 0 + [201] *((char *)&printf_buffer) = 0 [202] if(printf_schar::value#3<0) goto printf_schar::@1 to:printf_schar::@2 printf_schar::@1: scope:[printf_schar] from printf_schar [203] printf_schar::value#0 = - printf_schar::value#3 - [204] *((byte*)&printf_buffer) = '-' + [204] *((char *)&printf_buffer) = '-' to:printf_schar::@2 printf_schar::@2: scope:[printf_schar] from printf_schar printf_schar::@1 [205] printf_schar::value#5 = phi( printf_schar::@1/printf_schar::value#0, printf_schar/printf_schar::value#3 ) - [206] uctoa::value#1 = (byte)printf_schar::value#5 + [206] uctoa::value#1 = (char)printf_schar::value#5 [207] call uctoa to:printf_schar::@3 printf_schar::@3: scope:[printf_schar] from printf_schar::@2 - [208] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) + [208] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [209] call printf_number_buffer to:printf_schar::@return printf_schar::@return: scope:[printf_schar] from printf_schar::@3 [210] return to:@return -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from assert_cmp::@10 assert_cmp::@17 [211] printf_string::str#2 = phi( assert_cmp::@10/printf_string::str#0, assert_cmp::@17/printf_string::str#1 ) to:printf_string::@1 @@ -452,7 +452,7 @@ printf_string::@return: scope:[printf_string] from printf_string::@1 [214] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@3 [215] cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@3/cputc::c#2 ) [216] if(cputc::c#3==' @@ -476,12 +476,12 @@ cputc::@1: scope:[cputc] from cputc [225] call cputln to:cputc::@return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_schar::@2 [226] phi() to:uctoa::@1 uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [227] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [227] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [227] uctoa::started#2 = phi( uctoa::@4/uctoa::started#4, uctoa/0 ) [227] uctoa::value#2 = phi( uctoa::@4/uctoa::value#6, uctoa/uctoa::value#1 ) [227] uctoa::digit#2 = phi( uctoa::@4/uctoa::digit#1, uctoa/0 ) @@ -520,7 +520,7 @@ uctoa::@6: scope:[uctoa] from uctoa::@5 [244] uctoa::buffer#4 = ++ uctoa::buffer#11 to:uctoa::@4 -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_schar::@3 [245] phi() to:printf_number_buffer::@1 @@ -551,7 +551,7 @@ cputln::@return: scope:[cputln] from cputln [257] return to:@return -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@5 [258] phi() to:uctoa_append::@1 @@ -600,13 +600,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [277] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [278] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [278] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [279] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [280] memcpy::src#4 = (byte*)memcpy::source#2 - [281] memcpy::dst#4 = (byte*)memcpy::destination#2 + [278] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [278] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [279] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [280] memcpy::src#4 = (char *)memcpy::source#2 + [281] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [282] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -622,14 +622,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [287] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [288] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/memset::c#1 ) - [288] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [288] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [289] memset::end#0 = (byte*)memset::str#3 + $28 - [290] memset::dst#4 = (byte*)memset::str#3 + [289] memset::end#0 = (char *)memset::str#3 + $28 + [290] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [291] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/strcmp-0.log b/src/test/ref/strcmp-0.log index a4a5fe317..242f21982 100644 --- a/src/test/ref/strcmp-0.log +++ b/src/test/ref/strcmp-0.log @@ -17,14 +17,14 @@ Eliminating unused variable with no statement assert_cmp::$6 CONTROL FLOW GRAPH SSA -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -54,7 +54,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -71,9 +71,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -97,13 +97,13 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -signed word memcmp(const void* memcmp::str1 , const void* memcmp::str2 , word memcmp::n) +int memcmp(const void *str1 , const void *str2 , unsigned int n) memcmp: scope:[memcmp] from main::@27 main::@29 main::@31 main::@33 memcmp::n#7 = phi( main::@27/memcmp::n#1, main::@29/memcmp::n#2, main::@31/memcmp::n#3, main::@33/memcmp::n#4 ) memcmp::str2#4 = phi( main::@27/memcmp::str2#0, main::@29/memcmp::str2#1, main::@31/memcmp::str2#2, main::@33/memcmp::str2#3 ) memcmp::str1#4 = phi( main::@27/memcmp::str1#0, main::@29/memcmp::str1#1, main::@31/memcmp::str1#2, main::@33/memcmp::str1#3 ) - memcmp::s1#0 = ((byte*)) memcmp::str1#4 - memcmp::s2#0 = ((byte*)) memcmp::str2#4 + memcmp::s1#0 = ((char *)) memcmp::str1#4 + memcmp::s2#0 = ((char *)) memcmp::str2#4 to:memcmp::@1 memcmp::@1: scope:[memcmp] from memcmp memcmp::@4 memcmp::s2#5 = phi( memcmp/memcmp::s2#0, memcmp::@4/memcmp::s2#1 ) @@ -135,7 +135,7 @@ memcmp::@5: scope:[memcmp] from memcmp::@2 memcmp::s2#4 = phi( memcmp::@2/memcmp::s2#2 ) memcmp::s1#4 = phi( memcmp::@2/memcmp::s1#2 ) memcmp::$3 = *memcmp::s1#4 - *memcmp::s2#4 - memcmp::return#1 = (signed word)(signed byte)memcmp::$3 + memcmp::return#1 = (int)(signed char)memcmp::$3 to:memcmp::@return memcmp::@return: scope:[memcmp] from memcmp::@3 memcmp::@5 memcmp::return#7 = phi( memcmp::@3/memcmp::return#0, memcmp::@5/memcmp::return#1 ) @@ -143,7 +143,7 @@ memcmp::@return: scope:[memcmp] from memcmp::@3 memcmp::@5 return to:@return -word strlen(byte* strlen::str) +unsigned int strlen(char *str) strlen: scope:[strlen] from printf_number_buffer::@6 printf_string::@3 strlen::str#5 = phi( printf_number_buffer::@6/strlen::str#1, printf_string::@3/strlen::str#2 ) strlen::len#0 = 0 @@ -170,7 +170,7 @@ strlen::@return: scope:[strlen] from strlen::@3 return to:@return -signed word strcmp(const byte* strcmp::str1 , const byte* strcmp::str2) +int strcmp(const char *str1 , const char *str2) strcmp: scope:[strcmp] from main main::@11 main::@13 main::@15 main::@3 main::@5 main::@7 main::@9 strcmp::str2#8 = phi( main/strcmp::str2#0, main::@11/strcmp::str2#5, main::@13/strcmp::str2#6, main::@15/strcmp::str2#7, main::@3/strcmp::str2#1, main::@5/strcmp::str2#2, main::@7/strcmp::str2#3, main::@9/strcmp::str2#4 ) strcmp::str1#8 = phi( main/strcmp::str1#0, main::@11/strcmp::str1#5, main::@13/strcmp::str1#6, main::@15/strcmp::str1#7, main::@3/strcmp::str1#1, main::@5/strcmp::str1#2, main::@7/strcmp::str1#3, main::@9/strcmp::str1#4 ) @@ -194,7 +194,7 @@ strcmp::@3: scope:[strcmp] from strcmp::@1 strcmp::s2#3 = phi( strcmp::@1/strcmp::s2#2 ) strcmp::s1#4 = phi( strcmp::@1/strcmp::s1#2 ) strcmp::$0 = *strcmp::s1#4 - *strcmp::s2#3 - strcmp::return#0 = (signed word)(signed byte)strcmp::$0 + strcmp::return#0 = (int)(signed char)strcmp::$0 to:strcmp::@return strcmp::@4: scope:[strcmp] from strcmp::@2 strcmp::s2#4 = phi( strcmp::@2/strcmp::s2#5 ) @@ -211,7 +211,7 @@ strcmp::@return: scope:[strcmp] from strcmp::@3 strcmp::@5 return to:@return -signed word strncmp(const byte* strncmp::str1 , const byte* strncmp::str2 , word strncmp::n) +int strncmp(const char *str1 , const char *str2 , unsigned int n) strncmp: scope:[strncmp] from main::@17 main::@19 main::@21 main::@23 main::@25 strncmp::n#8 = phi( main::@17/strncmp::n#1, main::@19/strncmp::n#2, main::@21/strncmp::n#3, main::@23/strncmp::n#4, main::@25/strncmp::n#5 ) strncmp::str2#5 = phi( main::@17/strncmp::str2#0, main::@19/strncmp::str2#1, main::@21/strncmp::str2#2, main::@23/strncmp::str2#3, main::@25/strncmp::str2#4 ) @@ -241,7 +241,7 @@ strncmp::@3: scope:[strncmp] from strncmp::@1 strncmp::s2#3 = phi( strncmp::@1/strncmp::s2#2 ) strncmp::s1#4 = phi( strncmp::@1/strncmp::s1#2 ) strncmp::$0 = *strncmp::s1#4 - *strncmp::s2#3 - strncmp::return#0 = (signed word)(signed byte)strncmp::$0 + strncmp::return#0 = (int)(signed char)strncmp::$0 to:strncmp::@return strncmp::@4: scope:[strncmp] from strncmp::@2 strncmp::n#9 = phi( strncmp::@2/strncmp::n#0 ) @@ -259,7 +259,7 @@ strncmp::@return: scope:[strncmp] from strncmp::@3 strncmp::@5 return to:@return -byte toupper(byte toupper::ch) +char toupper(char ch) toupper: scope:[toupper] from strupr::@2 toupper::ch#1 = phi( strupr::@2/toupper::ch#0 ) toupper::$0 = toupper::ch#1 >= 'a' @@ -282,7 +282,7 @@ toupper::@return: scope:[toupper] from toupper::@1 toupper::@2 return to:@return -byte* strupr(byte* strupr::str) +char * strupr(char *str) strupr: scope:[strupr] from printf_number_buffer::@11 strupr::str#1 = phi( printf_number_buffer::@11/strupr::str#0 ) strupr::src#0 = strupr::str#1 @@ -318,13 +318,13 @@ strupr::@return: scope:[strupr] from strupr::@3 return to:@return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_schar::@2 uctoa::buffer#21 = phi( printf_schar::@2/uctoa::buffer#5 ) uctoa::value#12 = phi( printf_schar::@2/uctoa::value#1 ) uctoa::radix#1 = phi( printf_schar::@2/uctoa::radix#0 ) uctoa::max_digits#0 = 0 - uctoa::digit_values#0 = (byte*) 0 + uctoa::digit_values#0 = (char *) 0 uctoa::$0 = uctoa::radix#1 == DECIMAL if(uctoa::$0) goto uctoa::@1 to:uctoa::@6 @@ -421,7 +421,7 @@ uctoa::@11: scope:[uctoa] from uctoa::@10 uctoa::@12: scope:[uctoa] from uctoa::@10 uctoa::buffer#7 = phi( uctoa::@10/uctoa::buffer#11 ) uctoa::value#3 = phi( uctoa::@10/uctoa::value#5 ) - uctoa::$10 = (byte)uctoa::value#3 + uctoa::$10 = (char)uctoa::value#3 *uctoa::buffer#7 = DIGITS[uctoa::$10] uctoa::buffer#3 = ++ uctoa::buffer#7 *uctoa::buffer#3 = 0 @@ -460,7 +460,7 @@ uctoa::@15: scope:[uctoa] from uctoa::@14 uctoa::started#1 = 1 to:uctoa::@13 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@14 uctoa_append::buffer#3 = phi( uctoa::@14/uctoa_append::buffer#0 ) uctoa_append::sub#3 = phi( uctoa::@14/uctoa_append::sub#0 ) @@ -496,7 +496,7 @@ uctoa_append::@return: scope:[uctoa_append] from uctoa_append::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -520,7 +520,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -535,7 +535,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@9/cputc::c#2, printf_padding::@2/cputc::c#1 ) cputc::$0 = cputc::c#3 == ' @@ -579,7 +579,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from assert_cmp::@11 assert_cmp::@13 assert_cmp::@15 assert_cmp::@17 assert_cmp::@19 assert_cmp::@9 printf_number_buffer::@5 printf_string::@2 cputs::s#10 = phi( assert_cmp::@11/cputs::s#4, assert_cmp::@13/cputs::s#5, assert_cmp::@15/cputs::s#6, assert_cmp::@17/cputs::s#7, assert_cmp::@19/cputs::s#8, assert_cmp::@9/cputs::s#3, printf_number_buffer::@5/cputs::s#1, printf_string::@2/cputs::s#2 ) cputs::c#0 = 0 @@ -605,7 +605,7 @@ cputs::@return: scope:[cputs] from cputs::@1 return to:@return -byte textcolor(byte textcolor::color) +char textcolor(char color) textcolor: scope:[textcolor] from assert_cmp::@1 assert_cmp::@8 textcolor::color#2 = phi( assert_cmp::@1/textcolor::color#0, assert_cmp::@8/textcolor::color#1 ) textcolor::old#0 = conio_textcolor @@ -629,28 +629,28 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 call memset @@ -694,7 +694,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_string::@5 printf_string::@6 printf_padding::pad#7 = phi( printf_number_buffer::@10/printf_padding::pad#1, printf_number_buffer::@12/printf_padding::pad#2, printf_number_buffer::@8/printf_padding::pad#0, printf_string::@5/printf_padding::pad#3, printf_string::@6/printf_padding::pad#4 ) printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0, printf_string::@5/printf_padding::length#3, printf_string::@6/printf_padding::length#4 ) @@ -724,7 +724,7 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 return to:@return -void printf_schar(signed byte printf_schar::value , byte printf_schar::format_min_length , byte printf_schar::format_justify_left , byte printf_schar::format_sign_always , byte printf_schar::format_zero_padding , byte printf_schar::format_upper_case , byte printf_schar::format_radix) +void printf_schar(signed char value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_schar: scope:[printf_schar] from assert_cmp::@14 assert_cmp::@16 printf_schar::format_upper_case#7 = phi( assert_cmp::@14/printf_schar::format_upper_case#0, assert_cmp::@16/printf_schar::format_upper_case#1 ) printf_schar::format_zero_padding#7 = phi( assert_cmp::@14/printf_schar::format_zero_padding#0, assert_cmp::@16/printf_schar::format_zero_padding#1 ) @@ -733,7 +733,7 @@ printf_schar: scope:[printf_schar] from assert_cmp::@14 assert_cmp::@16 printf_schar::format_radix#7 = phi( assert_cmp::@14/printf_schar::format_radix#0, assert_cmp::@16/printf_schar::format_radix#1 ) printf_schar::format_sign_always#4 = phi( assert_cmp::@14/printf_schar::format_sign_always#0, assert_cmp::@16/printf_schar::format_sign_always#1 ) printf_schar::value#3 = phi( assert_cmp::@14/printf_schar::value#1, assert_cmp::@16/printf_schar::value#2 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 printf_schar::$0 = printf_schar::value#3 < 0 if(printf_schar::$0) goto printf_schar::@1 to:printf_schar::@3 @@ -747,7 +747,7 @@ printf_schar::@1: scope:[printf_schar] from printf_schar printf_schar::value#4 = phi( printf_schar/printf_schar::value#3 ) printf_schar::$4 = - printf_schar::value#4 printf_schar::value#0 = printf_schar::$4 - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' to:printf_schar::@2 printf_schar::@3: scope:[printf_schar] from printf_schar printf_schar::format_upper_case#5 = phi( printf_schar/printf_schar::format_upper_case#7 ) @@ -769,7 +769,7 @@ printf_schar::@4: scope:[printf_schar] from printf_schar::@3 printf_schar::format_min_length#6 = phi( printf_schar::@3/printf_schar::format_min_length#5 ) printf_schar::format_radix#6 = phi( printf_schar::@3/printf_schar::format_radix#5 ) printf_schar::value#7 = phi( printf_schar::@3/printf_schar::value#6 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' to:printf_schar::@2 printf_schar::@2: scope:[printf_schar] from printf_schar::@1 printf_schar::@3 printf_schar::@4 printf_schar::format_upper_case#3 = phi( printf_schar::@1/printf_schar::format_upper_case#4, printf_schar::@3/printf_schar::format_upper_case#5, printf_schar::@4/printf_schar::format_upper_case#6 ) @@ -779,9 +779,9 @@ printf_schar::@2: scope:[printf_schar] from printf_schar::@1 printf_schar::@3 p printf_schar::format_min_length#3 = phi( printf_schar::@1/printf_schar::format_min_length#4, printf_schar::@3/printf_schar::format_min_length#5, printf_schar::@4/printf_schar::format_min_length#6 ) printf_schar::format_radix#2 = phi( printf_schar::@1/printf_schar::format_radix#4, printf_schar::@3/printf_schar::format_radix#5, printf_schar::@4/printf_schar::format_radix#6 ) printf_schar::value#5 = phi( printf_schar::@1/printf_schar::value#0, printf_schar::@3/printf_schar::value#6, printf_schar::@4/printf_schar::value#7 ) - printf_schar::uvalue#0 = (byte)printf_schar::value#5 + printf_schar::uvalue#0 = (char)printf_schar::value#5 uctoa::value#1 = printf_schar::uvalue#0 - uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS uctoa::radix#0 = printf_schar::format_radix#2 call uctoa to:printf_schar::@5 @@ -792,8 +792,8 @@ printf_schar::@5: scope:[printf_schar] from printf_schar::@2 printf_schar::format_sign_always#3 = phi( printf_schar::@2/printf_schar::format_sign_always#5 ) printf_schar::format_justify_left#2 = phi( printf_schar::@2/printf_schar::format_justify_left#3 ) printf_schar::format_min_length#2 = phi( printf_schar::@2/printf_schar::format_min_length#3 ) - printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) + printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_number_buffer::format_min_length#0 = printf_schar::format_min_length#2 printf_number_buffer::format_justify_left#0 = printf_schar::format_justify_left#2 printf_number_buffer::format_sign_always#0 = printf_schar::format_sign_always#3 @@ -808,7 +808,7 @@ printf_schar::@return: scope:[printf_schar] from printf_schar::@6 return to:@return -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_schar::@5 printf_number_buffer::format_upper_case#10 = phi( printf_schar::@5/printf_number_buffer::format_upper_case#0 ) printf_number_buffer::buffer_sign#7 = phi( printf_schar::@5/printf_number_buffer::buffer_sign#0 ) @@ -857,7 +857,7 @@ printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::buffer_sign#1 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_sign#4 ) strlen::return#5 = phi( printf_number_buffer::@6/strlen::return#2 ) printf_number_buffer::$19 = strlen::return#5 - printf_number_buffer::len#0 = (signed byte)printf_number_buffer::$19 + printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#1 printf_number_buffer::$20 = ! printf_number_buffer::$29 if(printf_number_buffer::$20) goto printf_number_buffer::@13 @@ -870,7 +870,7 @@ printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_justify_left#4 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#7, printf_number_buffer::@7/printf_number_buffer::format_justify_left#8 ) printf_number_buffer::len#2 = phi( printf_number_buffer::@15/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) printf_number_buffer::format_min_length#2 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#3, printf_number_buffer::@7/printf_number_buffer::format_min_length#4 ) - printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#2 + printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 printf_number_buffer::$21 = printf_number_buffer::$25 - printf_number_buffer::len#2 printf_number_buffer::padding#1 = printf_number_buffer::$21 printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0 @@ -914,7 +914,7 @@ printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#10 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#5 ) printf_number_buffer::padding#4 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3 ) printf_padding::pad#0 = ' ' - printf_padding::length#0 = (byte)printf_number_buffer::padding#4 + printf_padding::length#0 = (char)printf_number_buffer::padding#4 call printf_padding to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@8 @@ -969,7 +969,7 @@ printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_upper_case#6 = phi( printf_number_buffer::@3/printf_number_buffer::format_upper_case#3 ) printf_number_buffer::padding#6 = phi( printf_number_buffer::@3/printf_number_buffer::padding#5 ) printf_padding::pad#1 = '0' - printf_padding::length#1 = (byte)printf_number_buffer::padding#6 + printf_padding::length#1 = (char)printf_number_buffer::padding#6 call printf_padding to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@10 @@ -1016,7 +1016,7 @@ printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::padding#8 = phi( printf_number_buffer::@19/printf_number_buffer::padding#7 ) printf_padding::pad#2 = ' ' - printf_padding::length#2 = (byte)printf_number_buffer::padding#8 + printf_padding::length#2 = (char)printf_number_buffer::padding#8 call printf_padding to:printf_number_buffer::@21 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@12 @@ -1025,7 +1025,7 @@ printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_ return to:@return -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from assert_cmp::@10 assert_cmp::@18 printf_string::str#4 = phi( assert_cmp::@10/printf_string::str#0, assert_cmp::@18/printf_string::str#1 ) printf_string::format_justify_left#4 = phi( assert_cmp::@10/printf_string::format_justify_left#0, assert_cmp::@18/printf_string::format_justify_left#1 ) @@ -1059,8 +1059,8 @@ printf_string::@7: scope:[printf_string] from printf_string::@3 printf_string::format_min_length#3 = phi( printf_string::@3/printf_string::format_min_length#4 ) strlen::return#6 = phi( printf_string::@3/strlen::return#3 ) printf_string::$9 = strlen::return#6 - printf_string::len#0 = (signed byte)printf_string::$9 - printf_string::$13 = (signed byte)printf_string::format_min_length#3 + printf_string::len#0 = (signed char)printf_string::$9 + printf_string::$13 = (signed char)printf_string::format_min_length#3 printf_string::$10 = printf_string::$13 - printf_string::len#0 printf_string::padding#1 = printf_string::$10 printf_string::$11 = printf_string::padding#1 < 0 @@ -1091,7 +1091,7 @@ printf_string::@5: scope:[printf_string] from printf_string::@1 printf_string::str#9 = phi( printf_string::@1/printf_string::str#5 ) printf_string::padding#5 = phi( printf_string::@1/printf_string::padding#3 ) printf_padding::pad#3 = ' ' - printf_padding::length#3 = (byte)printf_string::padding#5 + printf_padding::length#3 = (char)printf_string::padding#5 call printf_padding to:printf_string::@9 printf_string::@9: scope:[printf_string] from printf_string::@5 @@ -1102,7 +1102,7 @@ printf_string::@9: scope:[printf_string] from printf_string::@5 printf_string::@6: scope:[printf_string] from printf_string::@8 printf_string::padding#6 = phi( printf_string::@8/printf_string::padding#4 ) printf_padding::pad#4 = ' ' - printf_padding::length#4 = (byte)printf_string::padding#6 + printf_padding::length#4 = (char)printf_string::padding#6 call printf_padding to:printf_string::@10 printf_string::@10: scope:[printf_string] from printf_string::@6 @@ -1111,7 +1111,7 @@ printf_string::@return: scope:[printf_string] from printf_string::@10 printf_st return to:@return -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) +void assert_cmp(signed char expect , signed char actual , char *message) assert_cmp: scope:[assert_cmp] from main::@10 main::@12 main::@14 main::@16 main::@18 main::@2 main::@20 main::@22 main::@24 main::@26 main::@28 main::@30 main::@32 main::@34 main::@4 main::@6 main::@8 assert_cmp::message#30 = phi( main::@10/assert_cmp::message#4, main::@12/assert_cmp::message#5, main::@14/assert_cmp::message#6, main::@16/assert_cmp::message#7, main::@18/assert_cmp::message#8, main::@2/assert_cmp::message#0, main::@20/assert_cmp::message#9, main::@22/assert_cmp::message#10, main::@24/assert_cmp::message#11, main::@26/assert_cmp::message#12, main::@28/assert_cmp::message#13, main::@30/assert_cmp::message#14, main::@32/assert_cmp::message#15, main::@34/assert_cmp::message#16, main::@4/assert_cmp::message#1, main::@6/assert_cmp::message#2, main::@8/assert_cmp::message#3 ) assert_cmp::actual#21 = phi( main::@10/assert_cmp::actual#4, main::@12/assert_cmp::actual#5, main::@14/assert_cmp::actual#6, main::@16/assert_cmp::actual#7, main::@18/assert_cmp::actual#8, main::@2/assert_cmp::actual#0, main::@20/assert_cmp::actual#9, main::@22/assert_cmp::actual#10, main::@24/assert_cmp::actual#11, main::@26/assert_cmp::actual#12, main::@28/assert_cmp::actual#13, main::@30/assert_cmp::actual#14, main::@32/assert_cmp::actual#15, main::@34/assert_cmp::actual#16, main::@4/assert_cmp::actual#1, main::@6/assert_cmp::actual#2, main::@8/assert_cmp::actual#3 ) @@ -1124,7 +1124,7 @@ assert_cmp::@4: scope:[assert_cmp] from assert_cmp assert_cmp::message#26 = phi( assert_cmp/assert_cmp::message#30 ) assert_cmp::actual#17 = phi( assert_cmp/assert_cmp::actual#21 ) assert_cmp::$0 = assert_cmp::actual#17 < 0 - assert_cmp::ok#1 = (byte)assert_cmp::$0 + assert_cmp::ok#1 = (char)assert_cmp::$0 to:assert_cmp::@7 assert_cmp::@2: scope:[assert_cmp] from assert_cmp assert_cmp::message#31 = phi( assert_cmp/assert_cmp::message#30 ) @@ -1138,7 +1138,7 @@ assert_cmp::@5: scope:[assert_cmp] from assert_cmp::@2 assert_cmp::message#27 = phi( assert_cmp::@2/assert_cmp::message#31 ) assert_cmp::actual#18 = phi( assert_cmp::@2/assert_cmp::actual#22 ) assert_cmp::$1 = assert_cmp::actual#18 == 0 - assert_cmp::ok#2 = (byte)assert_cmp::$1 + assert_cmp::ok#2 = (char)assert_cmp::$1 to:assert_cmp::@7 assert_cmp::@3: scope:[assert_cmp] from assert_cmp::@2 assert_cmp::message#25 = phi( assert_cmp::@2/assert_cmp::message#31 ) @@ -1152,7 +1152,7 @@ assert_cmp::@6: scope:[assert_cmp] from assert_cmp::@3 assert_cmp::message#28 = phi( assert_cmp::@3/assert_cmp::message#25 ) assert_cmp::actual#19 = phi( assert_cmp::@3/assert_cmp::actual#23 ) assert_cmp::$2 = assert_cmp::actual#19 > 0 - assert_cmp::ok#3 = (byte)assert_cmp::$2 + assert_cmp::ok#3 = (char)assert_cmp::$2 to:assert_cmp::@7 assert_cmp::@7: scope:[assert_cmp] from assert_cmp::@3 assert_cmp::@4 assert_cmp::@5 assert_cmp::@6 assert_cmp::actual#28 = phi( assert_cmp::@3/assert_cmp::actual#23, assert_cmp::@4/assert_cmp::actual#17, assert_cmp::@5/assert_cmp::actual#18, assert_cmp::@6/assert_cmp::actual#19 ) @@ -1443,8 +1443,8 @@ main::@26: scope:[main] from main::@25 call assert_cmp to:main::@27 main::@27: scope:[main] from main::@26 - memcmp::str1#0 = (const void*)main::$34 - memcmp::str2#0 = (const void*)main::$35 + memcmp::str1#0 = (const void *)main::$34 + memcmp::str2#0 = (const void *)main::$35 memcmp::n#1 = 2 call memcmp memcmp::return#3 = memcmp::return#2 @@ -1458,8 +1458,8 @@ main::@28: scope:[main] from main::@27 call assert_cmp to:main::@29 main::@29: scope:[main] from main::@28 - memcmp::str1#1 = (const void*)main::$36 - memcmp::str2#1 = (const void*)main::$37 + memcmp::str1#1 = (const void *)main::$36 + memcmp::str2#1 = (const void *)main::$37 memcmp::n#2 = 2 call memcmp memcmp::return#4 = memcmp::return#2 @@ -1473,8 +1473,8 @@ main::@30: scope:[main] from main::@29 call assert_cmp to:main::@31 main::@31: scope:[main] from main::@30 - memcmp::str1#2 = (const void*)main::$38 - memcmp::str2#2 = (const void*)main::$39 + memcmp::str1#2 = (const void *)main::$38 + memcmp::str2#2 = (const void *)main::$39 memcmp::n#3 = 1 call memcmp memcmp::return#5 = memcmp::return#2 @@ -1488,8 +1488,8 @@ main::@32: scope:[main] from main::@31 call assert_cmp to:main::@33 main::@33: scope:[main] from main::@32 - memcmp::str1#3 = (const void*)main::$40 - memcmp::str2#3 = (const void*)main::$41 + memcmp::str1#3 = (const void *)main::$40 + memcmp::str2#3 = (const void *)main::$41 memcmp::n#4 = 4 call memcmp memcmp::return#6 = memcmp::return#2 @@ -1534,1064 +1534,1064 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte DECIMAL = $a -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte GREEN = 5 -constant byte HEXADECIMAL = $10 -constant const byte LIGHT_BLUE = $e -constant byte OCTAL = 8 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 } -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant byte* RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 } -constant byte* RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 } -constant const byte RED = 2 +__constant char BINARY = 2 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char DECIMAL = $a +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char GREEN = 5 +__constant char HEXADECIMAL = $10 +__constant const char LIGHT_BLUE = $e +__constant char OCTAL = 8 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_BINARY_VALUES_CHAR[] = { $80, $40, $20, $10, 8, 4, 2 } +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant char RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 } +__constant char RADIX_OCTAL_VALUES_CHAR[] = { $40, 8 } +__constant const char RED = 2 void __start() -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) -bool~ assert_cmp::$0 -bool~ assert_cmp::$1 -bool~ assert_cmp::$2 -bool~ assert_cmp::$7 -signed byte assert_cmp::actual -signed byte assert_cmp::actual#0 -signed byte assert_cmp::actual#1 -signed byte assert_cmp::actual#10 -signed byte assert_cmp::actual#11 -signed byte assert_cmp::actual#12 -signed byte assert_cmp::actual#13 -signed byte assert_cmp::actual#14 -signed byte assert_cmp::actual#15 -signed byte assert_cmp::actual#16 -signed byte assert_cmp::actual#17 -signed byte assert_cmp::actual#18 -signed byte assert_cmp::actual#19 -signed byte assert_cmp::actual#2 -signed byte assert_cmp::actual#20 -signed byte assert_cmp::actual#21 -signed byte assert_cmp::actual#22 -signed byte assert_cmp::actual#23 -signed byte assert_cmp::actual#24 -signed byte assert_cmp::actual#25 -signed byte assert_cmp::actual#26 -signed byte assert_cmp::actual#27 -signed byte assert_cmp::actual#28 -signed byte assert_cmp::actual#3 -signed byte assert_cmp::actual#4 -signed byte assert_cmp::actual#5 -signed byte assert_cmp::actual#6 -signed byte assert_cmp::actual#7 -signed byte assert_cmp::actual#8 -signed byte assert_cmp::actual#9 -signed byte assert_cmp::expect -signed byte assert_cmp::expect#0 -signed byte assert_cmp::expect#1 -signed byte assert_cmp::expect#10 -signed byte assert_cmp::expect#11 -signed byte assert_cmp::expect#12 -signed byte assert_cmp::expect#13 -signed byte assert_cmp::expect#14 -signed byte assert_cmp::expect#15 -signed byte assert_cmp::expect#16 -signed byte assert_cmp::expect#17 -signed byte assert_cmp::expect#18 -signed byte assert_cmp::expect#19 -signed byte assert_cmp::expect#2 -signed byte assert_cmp::expect#20 -signed byte assert_cmp::expect#21 -signed byte assert_cmp::expect#22 -signed byte assert_cmp::expect#23 -signed byte assert_cmp::expect#24 -signed byte assert_cmp::expect#25 -signed byte assert_cmp::expect#26 -signed byte assert_cmp::expect#3 -signed byte assert_cmp::expect#4 -signed byte assert_cmp::expect#5 -signed byte assert_cmp::expect#6 -signed byte assert_cmp::expect#7 -signed byte assert_cmp::expect#8 -signed byte assert_cmp::expect#9 -byte* assert_cmp::message -byte* assert_cmp::message#0 -byte* assert_cmp::message#1 -byte* assert_cmp::message#10 -byte* assert_cmp::message#11 -byte* assert_cmp::message#12 -byte* assert_cmp::message#13 -byte* assert_cmp::message#14 -byte* assert_cmp::message#15 -byte* assert_cmp::message#16 -byte* assert_cmp::message#17 -byte* assert_cmp::message#18 -byte* assert_cmp::message#19 -byte* assert_cmp::message#2 -byte* assert_cmp::message#20 -byte* assert_cmp::message#21 -byte* assert_cmp::message#22 -byte* assert_cmp::message#23 -byte* assert_cmp::message#24 -byte* assert_cmp::message#25 -byte* assert_cmp::message#26 -byte* assert_cmp::message#27 -byte* assert_cmp::message#28 -byte* assert_cmp::message#29 -byte* assert_cmp::message#3 -byte* assert_cmp::message#30 -byte* assert_cmp::message#31 -byte* assert_cmp::message#32 -byte* assert_cmp::message#33 -byte* assert_cmp::message#4 -byte* assert_cmp::message#5 -byte* assert_cmp::message#6 -byte* assert_cmp::message#7 -byte* assert_cmp::message#8 -byte* assert_cmp::message#9 -byte assert_cmp::ok -byte assert_cmp::ok#0 -byte assert_cmp::ok#1 -byte assert_cmp::ok#2 -byte assert_cmp::ok#3 -byte assert_cmp::ok#4 -byte assert_cmp::ok#5 -byte assert_cmp::ok#6 -constant byte* assert_cmp::s[5] = "ok! " -constant byte* assert_cmp::s1[2] = " +void assert_cmp(signed char expect , signed char actual , char *message) +bool assert_cmp::$0 +bool assert_cmp::$1 +bool assert_cmp::$2 +bool assert_cmp::$7 +signed char assert_cmp::actual +signed char assert_cmp::actual#0 +signed char assert_cmp::actual#1 +signed char assert_cmp::actual#10 +signed char assert_cmp::actual#11 +signed char assert_cmp::actual#12 +signed char assert_cmp::actual#13 +signed char assert_cmp::actual#14 +signed char assert_cmp::actual#15 +signed char assert_cmp::actual#16 +signed char assert_cmp::actual#17 +signed char assert_cmp::actual#18 +signed char assert_cmp::actual#19 +signed char assert_cmp::actual#2 +signed char assert_cmp::actual#20 +signed char assert_cmp::actual#21 +signed char assert_cmp::actual#22 +signed char assert_cmp::actual#23 +signed char assert_cmp::actual#24 +signed char assert_cmp::actual#25 +signed char assert_cmp::actual#26 +signed char assert_cmp::actual#27 +signed char assert_cmp::actual#28 +signed char assert_cmp::actual#3 +signed char assert_cmp::actual#4 +signed char assert_cmp::actual#5 +signed char assert_cmp::actual#6 +signed char assert_cmp::actual#7 +signed char assert_cmp::actual#8 +signed char assert_cmp::actual#9 +signed char assert_cmp::expect +signed char assert_cmp::expect#0 +signed char assert_cmp::expect#1 +signed char assert_cmp::expect#10 +signed char assert_cmp::expect#11 +signed char assert_cmp::expect#12 +signed char assert_cmp::expect#13 +signed char assert_cmp::expect#14 +signed char assert_cmp::expect#15 +signed char assert_cmp::expect#16 +signed char assert_cmp::expect#17 +signed char assert_cmp::expect#18 +signed char assert_cmp::expect#19 +signed char assert_cmp::expect#2 +signed char assert_cmp::expect#20 +signed char assert_cmp::expect#21 +signed char assert_cmp::expect#22 +signed char assert_cmp::expect#23 +signed char assert_cmp::expect#24 +signed char assert_cmp::expect#25 +signed char assert_cmp::expect#26 +signed char assert_cmp::expect#3 +signed char assert_cmp::expect#4 +signed char assert_cmp::expect#5 +signed char assert_cmp::expect#6 +signed char assert_cmp::expect#7 +signed char assert_cmp::expect#8 +signed char assert_cmp::expect#9 +char *assert_cmp::message +char *assert_cmp::message#0 +char *assert_cmp::message#1 +char *assert_cmp::message#10 +char *assert_cmp::message#11 +char *assert_cmp::message#12 +char *assert_cmp::message#13 +char *assert_cmp::message#14 +char *assert_cmp::message#15 +char *assert_cmp::message#16 +char *assert_cmp::message#17 +char *assert_cmp::message#18 +char *assert_cmp::message#19 +char *assert_cmp::message#2 +char *assert_cmp::message#20 +char *assert_cmp::message#21 +char *assert_cmp::message#22 +char *assert_cmp::message#23 +char *assert_cmp::message#24 +char *assert_cmp::message#25 +char *assert_cmp::message#26 +char *assert_cmp::message#27 +char *assert_cmp::message#28 +char *assert_cmp::message#29 +char *assert_cmp::message#3 +char *assert_cmp::message#30 +char *assert_cmp::message#31 +char *assert_cmp::message#32 +char *assert_cmp::message#33 +char *assert_cmp::message#4 +char *assert_cmp::message#5 +char *assert_cmp::message#6 +char *assert_cmp::message#7 +char *assert_cmp::message#8 +char *assert_cmp::message#9 +char assert_cmp::ok +char assert_cmp::ok#0 +char assert_cmp::ok#1 +char assert_cmp::ok#2 +char assert_cmp::ok#3 +char assert_cmp::ok#4 +char assert_cmp::ok#5 +char assert_cmp::ok#6 +__constant char assert_cmp::s[5] = "ok! " +__constant char assert_cmp::s1[2] = " " -constant byte* assert_cmp::s2[$19] = "Assert failed. expected:" -constant byte* assert_cmp::s3[9] = " actual:" -constant byte* assert_cmp::s4[3] = ". " -constant byte* assert_cmp::s5[2] = " +__constant char assert_cmp::s2[$19] = "Assert failed. expected:" +__constant char assert_cmp::s3[9] = " actual:" +__constant char assert_cmp::s4[3] = ". " +__constant char assert_cmp::s5[2] = " " void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 -byte cputc::c#4 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 +char cputc::c#4 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#10 -const byte* cputs::s#11 -const byte* cputs::s#12 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 -const byte* cputs::s#6 -const byte* cputs::s#7 -const byte* cputs::s#8 -const byte* cputs::s#9 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#10 +const char *cputs::s#11 +const char *cputs::s#12 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 +const char *cputs::s#6 +const char *cputs::s#7 +const char *cputs::s#8 +const char *cputs::s#9 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -signed word~ main::$0 -signed word~ main::$10 -signed word~ main::$12 -signed word~ main::$14 -signed word~ main::$16 -signed word~ main::$18 -signed word~ main::$2 -signed word~ main::$20 -signed word~ main::$22 -signed word~ main::$24 -signed word~ main::$26 -signed word~ main::$28 -signed word~ main::$30 -signed word~ main::$32 -constant byte* main::$34[3] = "aa" -constant byte* main::$35[4] = "aba" -constant byte* main::$36[2] = "x" -constant byte* main::$37[2] = "x" -constant byte* main::$38[3] = "xy" -constant byte* main::$39[3] = "xz" -signed word~ main::$4 -constant byte* main::$40[5] = "qwez" -constant byte* main::$41[5] = "qwex" -signed word~ main::$6 -signed word~ main::$8 -constant byte* main::message[$d] = "a 0 Adding number conversion cast (unumber) 0 in memcmp::$0 = memcmp::n#5 != 0 @@ -2624,15 +2624,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -2641,7 +2641,7 @@ Adding number conversion cast (unumber) 0 in gotoxy::y#1 = 0 Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_init::line#0 >= $19 Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 -Adding number conversion cast (unumber) 0 in *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 +Adding number conversion cast (unumber) 0 in *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 Adding number conversion cast (snumber) 0 in printf_schar::$0 = printf_schar::value#3 < 0 Adding number conversion cast (unumber) 0 in printf_schar::$5 = 0 != printf_schar::format_sign_always#2 Adding number conversion cast (unumber) 0 in printf_number_buffer::$26 = 0 != printf_number_buffer::format_min_length#1 @@ -2691,11 +2691,11 @@ Adding number conversion cast (snumber) 0 in assert_cmp::expect#15 = 0 Adding number conversion cast (unumber) 4 in memcmp::n#4 = 4 Adding number conversion cast (snumber) 1 in assert_cmp::expect#16 = 1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 -Inlining cast memcmp::s1#0 = (byte*)memcmp::str1#4 -Inlining cast memcmp::s2#0 = (byte*)memcmp::str2#4 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 +Inlining cast memcmp::s1#0 = (char *)memcmp::str1#4 +Inlining cast memcmp::s2#0 = (char *)memcmp::str2#4 Inlining cast memcmp::return#0 = (snumber)0 Inlining cast strcmp::return#1 = (snumber)0 Inlining cast strncmp::return#1 = (snumber)0 @@ -2717,7 +2717,7 @@ Inlining cast gotoxy::x#1 = (unumber)0 Inlining cast gotoxy::y#1 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_c64_init::line#1 = (unumber)$19-1 -Inlining cast *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = (unumber)0 +Inlining cast *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = (unumber)0 Inlining cast printf_number_buffer::padding#2 = (snumber)0 Inlining cast printf_string::padding#2 = (snumber)0 Inlining cast assert_cmp::expect#0 = (snumber)-1 @@ -2747,9 +2747,9 @@ Inlining cast assert_cmp::expect#15 = (snumber)0 Inlining cast memcmp::n#4 = (unumber)4 Inlining cast assert_cmp::expect#16 = (snumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -2843,99 +2843,99 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) -1 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) -1 -Finalized signed number type (signed byte) -1 -Finalized signed number type (signed byte) -1 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 1 -Finalized unsigned number type (byte) 3 -Finalized signed number type (signed byte) -1 -Finalized unsigned number type (byte) 3 -Finalized signed number type (signed byte) 1 -Finalized unsigned number type (byte) 2 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 3 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 3 -Finalized signed number type (signed byte) -1 -Finalized unsigned number type (byte) 2 -Finalized signed number type (signed byte) -1 -Finalized unsigned number type (byte) 2 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 1 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized signed number type (signed byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) -1 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) -1 +Finalized signed number type (signed char) -1 +Finalized signed number type (signed char) -1 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 1 +Finalized unsigned number type (char) 3 +Finalized signed number type (signed char) -1 +Finalized unsigned number type (char) 3 +Finalized signed number type (signed char) 1 +Finalized unsigned number type (char) 2 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 3 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 3 +Finalized signed number type (signed char) -1 +Finalized unsigned number type (char) 2 +Finalized signed number type (signed char) -1 +Finalized unsigned number type (char) 2 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 1 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized signed number type (signed char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in uctoa::$4 = uctoa::max_digits#5 - 1 +Inferred type updated to char in uctoa::$4 = uctoa::max_digits#5 - 1 Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [44] memcmp::$2 = *memcmp::s1#2 == *memcmp::s2#2 from [43] memcmp::$1 = *memcmp::s1#2 != *memcmp::s2#2 Inversing boolean not [78] strcmp::$3 = *strcmp::s1#3 != 0 from [77] strcmp::$2 = *strcmp::s1#3 == 0 @@ -3272,7 +3272,7 @@ Constant strlen::len#0 = 0 Constant strcmp::return#1 = 0 Constant strncmp::return#1 = 0 Constant uctoa::max_digits#0 = 0 -Constant uctoa::digit_values#0 = (byte*) 0 +Constant uctoa::digit_values#0 = (char *) 0 Constant uctoa::max_digits#1 = 3 Constant uctoa::digit_values#1 = RADIX_DECIMAL_VALUES_CHAR Constant uctoa::max_digits#2 = 2 @@ -3288,24 +3288,24 @@ Constant uctoa_append::digit#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 Constant gotoxy::x#2 = 0 Constant conio_c64_init::line#1 = (unumber)$19-1 Constant printf_padding::i#0 = 0 -Constant uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant printf_number_buffer::padding#0 = 0 Constant printf_number_buffer::padding#2 = 0 Constant printf_padding::pad#0 = ' ' @@ -3397,23 +3397,23 @@ Constant strncmp::str2#4 = main::str212 Constant strncmp::n#5 = 3 Constant assert_cmp::expect#12 = -1 Constant assert_cmp::message#12 = main::message12 -Constant memcmp::str1#0 = (const void*)main::$34 -Constant memcmp::str2#0 = (const void*)main::$35 +Constant memcmp::str1#0 = (const void *)main::$34 +Constant memcmp::str2#0 = (const void *)main::$35 Constant memcmp::n#1 = 2 Constant assert_cmp::expect#13 = -1 Constant assert_cmp::message#13 = main::message13 -Constant memcmp::str1#1 = (const void*)main::$36 -Constant memcmp::str2#1 = (const void*)main::$37 +Constant memcmp::str1#1 = (const void *)main::$36 +Constant memcmp::str2#1 = (const void *)main::$37 Constant memcmp::n#2 = 2 Constant assert_cmp::expect#14 = 0 Constant assert_cmp::message#14 = main::message14 -Constant memcmp::str1#2 = (const void*)main::$38 -Constant memcmp::str2#2 = (const void*)main::$39 +Constant memcmp::str1#2 = (const void *)main::$38 +Constant memcmp::str2#2 = (const void *)main::$39 Constant memcmp::n#3 = 1 Constant assert_cmp::expect#15 = 0 Constant assert_cmp::message#15 = main::message15 -Constant memcmp::str1#3 = (const void*)main::$40 -Constant memcmp::str2#3 = (const void*)main::$41 +Constant memcmp::str1#3 = (const void *)main::$40 +Constant memcmp::str2#3 = (const void *)main::$41 Constant memcmp::n#4 = 4 Constant assert_cmp::expect#16 = 1 Constant assert_cmp::message#16 = main::message16 @@ -3437,10 +3437,10 @@ Consolidated constant strings into main::str16 Consolidated constant strings into main::str111 Successful SSA optimization Pass2ConstantStringConsolidation Rewriting conditional comparison [161] if(gotoxy::y#3<=$19) goto gotoxy::@1 -Simplifying expression containing zero (byte*)&printf_buffer in [258] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 -Simplifying expression containing zero (byte*)&printf_buffer in [262] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' -Simplifying expression containing zero (byte*)&printf_buffer in [265] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' -Simplifying expression containing zero (byte*)&printf_buffer in [272] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (char *)&printf_buffer in [258] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = 0 +Simplifying expression containing zero (char *)&printf_buffer in [262] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '-' +Simplifying expression containing zero (char *)&printf_buffer in [265] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = '+' +Simplifying expression containing zero (char *)&printf_buffer in [272] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) Successful SSA optimization PassNSimplifyExpressionWithZero Removing PHI-reference to removed block (cscroll::@2) in block gotoxy Removing PHI-reference to removed block (cscroll::@2) in block gotoxy @@ -3491,16 +3491,16 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -3562,16 +3562,16 @@ Constant uctoa::buffer#2 = ++uctoa::buffer#1 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [22] memcmp::s1#0 = (byte*)memcmp::str1#4 keeping memcmp::str1#4 -Inlining Noop Cast [23] memcmp::s2#0 = (byte*)memcmp::str2#4 keeping memcmp::str2#4 -Inlining Noop Cast [175] printf_schar::uvalue#0 = (byte)printf_schar::value#5 keeping printf_schar::value#5 -Inlining Noop Cast [195] printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0 -Inlining Noop Cast [223] printf_string::$13 = (signed byte)printf_string::format_min_length#2 keeping printf_string::format_min_length#2 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [22] memcmp::s1#0 = (char *)memcmp::str1#4 keeping memcmp::str1#4 +Inlining Noop Cast [23] memcmp::s2#0 = (char *)memcmp::str2#4 keeping memcmp::str2#4 +Inlining Noop Cast [175] printf_schar::uvalue#0 = (char)printf_schar::value#5 keeping printf_schar::value#5 +Inlining Noop Cast [195] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0 +Inlining Noop Cast [223] printf_string::$13 = (signed char)printf_string::format_min_length#2 keeping printf_string::format_min_length#2 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[112] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings memcpy::destination#0 @@ -3708,7 +3708,7 @@ Constant inlined printf_schar::format_sign_always#1 = 0 Constant inlined printf_schar::format_sign_always#0 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined uctoa::digit#0 = 0 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined assert_cmp::s5 = assert_cmp::s1 Constant inlined strncmp::str2#0 = main::str28 Constant inlined printf_string::padding#0 = 0 @@ -3726,10 +3726,10 @@ Constant inlined uctoa::digit_values#1 = RADIX_DECIMAL_VALUES_CHAR Constant inlined uctoa::digit_values#4 = RADIX_BINARY_VALUES_CHAR Constant inlined uctoa::digit_values#3 = RADIX_OCTAL_VALUES_CHAR Constant inlined main::str17 = main::str16 -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN -Constant inlined memcpy::destination#1 = (void*)COLORRAM -Constant inlined memcmp::str1#2 = (const void*)main::$38 -Constant inlined memcmp::str1#3 = (const void*)main::str14 +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN +Constant inlined memcpy::destination#1 = (void *)COLORRAM +Constant inlined memcmp::str1#2 = (const void *)main::$38 +Constant inlined memcmp::str1#3 = (const void *)main::str14 Constant inlined uctoa::max_digits#1 = 3 Constant inlined textcolor::color#1 = RED Constant inlined textcolor::color#0 = GREEN @@ -3747,15 +3747,15 @@ Constant inlined strupr::str#0 = printf_number_buffer::buffer_digits#0 Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE Constant inlined assert_cmp::message#8 = main::message8 Constant inlined uctoa::max_digits#4 = 8 -Constant inlined uctoa::buffer#1 = ++++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined uctoa::buffer#1 = ++++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined assert_cmp::expect#6 = 1 -Constant inlined uctoa::buffer#2 = ++++++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined uctoa::buffer#2 = ++++++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#0 = ' ' Constant inlined assert_cmp::expect#5 = 1 Constant inlined printf_padding::i#0 = 0 Constant inlined printf_padding::pad#1 = '0' Constant inlined assert_cmp::expect#8 = -1 -Constant inlined uctoa::buffer#0 = ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined uctoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#2 = ' ' Constant inlined assert_cmp::expect#7 = 1 Constant inlined assert_cmp::expect#9 = 1 @@ -3763,7 +3763,7 @@ Constant inlined memcmp::n#2 = 2 Constant inlined memcmp::n#3 = 1 Constant inlined memcmp::n#4 = 4 Constant inlined assert_cmp::expect#0 = -1 -Constant inlined uctoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined uctoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined printf_padding::pad#3 = ' ' Constant inlined assert_cmp::expect#2 = -1 Constant inlined printf_padding::pad#4 = ' ' @@ -3771,8 +3771,8 @@ Constant inlined assert_cmp::expect#1 = -1 Constant inlined assert_cmp::expect#4 = 0 Constant inlined memcmp::n#1 = 2 Constant inlined assert_cmp::expect#3 = 0 -Constant inlined memcmp::str1#0 = (const void*)main::str12 -Constant inlined memcmp::str1#1 = (const void*)main::str13 +Constant inlined memcmp::str1#0 = (const void *)main::str12 +Constant inlined memcmp::str1#1 = (const void *)main::str13 Constant inlined gotoxy::y#0 = 0 Constant inlined printf_string::format_justify_left#1 = 0 Constant inlined printf_string::format_justify_left#0 = 0 @@ -3788,11 +3788,11 @@ Constant inlined memset::num#1 = $28 Constant inlined printf_schar::format_min_length#1 = 0 Constant inlined memset::num#0 = $28 Constant inlined strcmp::str1#7 = main::str16 -Constant inlined memcmp::str2#1 = (const void*)main::str13 +Constant inlined memcmp::str2#1 = (const void *)main::str13 Constant inlined assert_cmp::expect#16 = 1 Constant inlined strcmp::str1#6 = main::str16 -Constant inlined memcmp::str2#2 = (const void*)main::$39 -Constant inlined memcmp::str2#3 = (const void*)main::str111 +Constant inlined memcmp::str2#2 = (const void *)main::$39 +Constant inlined memcmp::str2#3 = (const void *)main::str111 Constant inlined assert_cmp::expect#14 = 0 Constant inlined printf_schar::format_upper_case#1 = 0 Constant inlined assert_cmp::expect#15 = 0 @@ -3808,7 +3808,7 @@ Constant inlined printf_schar::format_upper_case#0 = 0 Constant inlined assert_cmp::expect#12 = -1 Constant inlined assert_cmp::expect#13 = -1 Constant inlined assert_cmp::expect#10 = 0 -Constant inlined memcmp::str2#0 = (const void*)main::$35 +Constant inlined memcmp::str2#0 = (const void *)main::$35 Constant inlined assert_cmp::expect#11 = 0 Constant inlined memcmp::return#0 = 0 Constant inlined printf_number_buffer::padding#0 = 0 @@ -3830,11 +3830,11 @@ Constant inlined printf_schar::format_zero_padding#0 = 0 Constant inlined strcmp::str2#6 = main::str26 Constant inlined strcmp::str2#5 = main::str25 Constant inlined strcmp::str2#7 = main::str27 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 Constant inlined strncmp::n#1 = 3 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined strncmp::n#4 = 3 Constant inlined strncmp::n#5 = 3 @@ -3850,33 +3850,33 @@ Constant inlined assert_cmp::message#14 = main::message14 Constant inlined main::str112 = main::str12 Constant inlined assert_cmp::message#15 = main::message15 Constant inlined strncmp::str1#1 = main::str19 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 Constant inlined strncmp::str1#0 = main::str18 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined strncmp::return#1 = 0 Constant inlined strncmp::str1#4 = main::str12 Constant inlined strncmp::str1#3 = main::str111 Constant inlined strncmp::str1#2 = main::str21 Constant inlined strcmp::return#1 = 0 Successful SSA optimization Pass2ConstantInlining -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 Successful SSA optimization Pass2ConstantSimplification -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 -Simplifying constant integer increment ++(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 +Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 Successful SSA optimization Pass2ConstantSimplification -Adding number conversion cast (unumber) 1 in [79] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' -Adding number conversion cast (unumber) 2 in [80] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' -Adding number conversion cast (unumber) 3 in [81] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 +Adding number conversion cast (unumber) 1 in [79] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r' +Adding number conversion cast (unumber) 2 in [80] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r' +Adding number conversion cast (unumber) 3 in [81] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -3884,7 +3884,7 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Identical Phi Values printf_schar::format_sign_always#2 0 Identical Phi Values printf_schar::format_radix#2 DECIMAL @@ -3901,8 +3901,8 @@ Constant printf_number_buffer::format_justify_left#0 = 0 Constant printf_number_buffer::format_zero_padding#0 = 0 Constant printf_number_buffer::format_upper_case#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant value identified (signed byte)printf_number_buffer::format_min_length#0 in [189] printf_number_buffer::padding#1 = (signed byte)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 -Constant value identified (signed byte)0 in [216] printf_string::padding#1 = (signed byte)0 - printf_string::len#0 +Constant value identified (signed char)printf_number_buffer::format_min_length#0 in [189] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 +Constant value identified (signed char)0 in [216] printf_string::padding#1 = (signed char)0 - printf_string::len#0 Successful SSA optimization Pass2ConstantValues if() condition always false - eliminating [9] if($28<=0) goto memset::@1 if() condition always true - replacing block destination [67] if(uctoa::radix#0==DECIMAL) goto uctoa::@1 @@ -3921,8 +3921,8 @@ if() condition always true - replacing block destination [220] if(0==0) goto pri if() condition always false - eliminating [335] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2 if() condition always false - eliminating [338] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (signed byte)printf_number_buffer::format_min_length#0 in [189] printf_number_buffer::padding#1 = (signed byte)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 -Simplifying constant evaluating to zero (signed byte)0 in [216] printf_string::padding#1 = (signed byte)0 - printf_string::len#0 +Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in [189] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2 +Simplifying constant evaluating to zero (signed char)0 in [216] printf_string::padding#1 = (signed char)0 - printf_string::len#0 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero printf_number_buffer::len#2 in [189] printf_number_buffer::padding#1 = 0 - printf_number_buffer::len#2 Simplifying expression containing zero printf_string::len#0 in [216] printf_string::padding#1 = 0 - printf_string::len#0 @@ -4046,18 +4046,18 @@ Identical Phi Values printf_number_buffer::padding#10 0 Identical Phi Values printf_string::padding#3 0 Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [50] uctoa::$4 = 3 - 1 -Constant right-side identified [147] printf_padding::length#0 = (byte)0 -Constant right-side identified [157] printf_padding::length#3 = (byte)0 +Constant right-side identified [147] printf_padding::length#0 = (char)0 +Constant right-side identified [157] printf_padding::length#3 = (char)0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant uctoa::$4 = 3-1 -Constant printf_padding::length#0 = (byte)0 -Constant printf_padding::length#3 = (byte)0 +Constant printf_padding::length#0 = (char)0 +Constant printf_padding::length#3 = (char)0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [267] if(0!=0) goto printf_number_buffer::@8 if() condition always false - eliminating [268] if(0!=0) goto printf_string::@5 Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (byte)0 in -Simplifying constant evaluating to zero (byte)0 in +Simplifying constant evaluating to zero (char)0 in +Simplifying constant evaluating to zero (char)0 in Successful SSA optimization PassNSimplifyConstantZero Eliminating variable printf_padding::length#6 from unused block printf_padding Eliminating variable printf_padding::pad#7 from unused block printf_padding @@ -4083,21 +4083,21 @@ Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -4558,7 +4558,7 @@ main::@1: scope:[main] from main::@1 main::@34 [102] phi() to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [103] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -4571,7 +4571,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [106] conio_cursor_x = gotoxy::x#2 [107] conio_cursor_y = gotoxy::y#4 - [108] gotoxy::$7 = (word)gotoxy::y#4 + [108] gotoxy::$7 = (unsigned int)gotoxy::y#4 [109] gotoxy::$8 = gotoxy::$7 << 2 [110] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [111] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -4584,7 +4584,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [116] return to:@return -signed word strcmp(const byte* strcmp::str1 , const byte* strcmp::str2) +int strcmp(const char *str1 , const char *str2) strcmp: scope:[strcmp] from main main::@11 main::@13 main::@15 main::@3 main::@5 main::@7 main::@9 [117] strcmp::s2#0 = phi( main/main::str2, main::@11/main::str25, main::@13/main::str26, main::@15/main::str27, main::@3/main::str21, main::@5/main::str11, main::@7/main::str13, main::@9/main::str14 ) [117] strcmp::s1#0 = phi( main/main::str1, main::@11/main::str15, main::@13/main::str16, main::@15/main::str16, main::@3/main::str11, main::@5/main::str12, main::@7/main::str13, main::@9/main::str14 ) @@ -4596,7 +4596,7 @@ strcmp::@1: scope:[strcmp] from strcmp strcmp::@4 to:strcmp::@3 strcmp::@3: scope:[strcmp] from strcmp::@1 [120] strcmp::$0 = *strcmp::s1#2 - *strcmp::s2#2 - [121] strcmp::return#0 = (signed word)(signed byte)strcmp::$0 + [121] strcmp::return#0 = (int)(signed char)strcmp::$0 to:strcmp::@return strcmp::@return: scope:[strcmp] from strcmp::@2 strcmp::@3 [122] strcmp::return#11 = phi( strcmp::@3/strcmp::return#0, strcmp::@2/0 ) @@ -4610,7 +4610,7 @@ strcmp::@4: scope:[strcmp] from strcmp::@2 [126] strcmp::s2#1 = ++ strcmp::s2#2 to:strcmp::@1 -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) +void assert_cmp(signed char expect , signed char actual , char *message) assert_cmp: scope:[assert_cmp] from main::@10 main::@12 main::@14 main::@16 main::@18 main::@2 main::@20 main::@22 main::@24 main::@26 main::@28 main::@30 main::@32 main::@34 main::@4 main::@6 main::@8 [127] assert_cmp::message#17 = phi( main::@10/main::message4, main::@12/main::message5, main::@14/main::message6, main::@16/main::message7, main::@18/main::message8, main::@2/main::message, main::@20/main::message9, main::@22/main::message10, main::@24/main::message11, main::@26/main::message12, main::@28/main::message13, main::@30/main::message14, main::@32/main::message15, main::@34/main::message16, main::@4/main::message1, main::@6/main::message2, main::@8/main::message3 ) [127] assert_cmp::actual#17 = phi( main::@10/assert_cmp::actual#4, main::@12/assert_cmp::actual#5, main::@14/assert_cmp::actual#6, main::@16/assert_cmp::actual#7, main::@18/assert_cmp::actual#8, main::@2/assert_cmp::actual#0, main::@20/assert_cmp::actual#9, main::@22/assert_cmp::actual#10, main::@24/assert_cmp::actual#11, main::@26/assert_cmp::actual#12, main::@28/assert_cmp::actual#13, main::@30/assert_cmp::actual#14, main::@32/assert_cmp::actual#15, main::@34/assert_cmp::actual#16, main::@4/assert_cmp::actual#1, main::@6/assert_cmp::actual#2, main::@8/assert_cmp::actual#3 ) @@ -4625,7 +4625,7 @@ assert_cmp::@3: scope:[assert_cmp] from assert_cmp::@2 to:assert_cmp::@6 assert_cmp::@6: scope:[assert_cmp] from assert_cmp::@3 [131] assert_cmp::$2 = assert_cmp::actual#17 > 0 - [132] assert_cmp::ok#3 = (byte)assert_cmp::$2 + [132] assert_cmp::ok#3 = (char)assert_cmp::$2 to:assert_cmp::@7 assert_cmp::@7: scope:[assert_cmp] from assert_cmp::@3 assert_cmp::@4 assert_cmp::@5 assert_cmp::@6 [133] assert_cmp::ok#4 = phi( assert_cmp::@3/0, assert_cmp::@4/assert_cmp::ok#1, assert_cmp::@5/assert_cmp::ok#2, assert_cmp::@6/assert_cmp::ok#3 ) @@ -4684,14 +4684,14 @@ assert_cmp::@11: scope:[assert_cmp] from assert_cmp::@10 to:assert_cmp::@return assert_cmp::@5: scope:[assert_cmp] from assert_cmp::@2 [160] assert_cmp::$1 = assert_cmp::actual#17 == 0 - [161] assert_cmp::ok#2 = (byte)assert_cmp::$1 + [161] assert_cmp::ok#2 = (char)assert_cmp::$1 to:assert_cmp::@7 assert_cmp::@4: scope:[assert_cmp] from assert_cmp [162] assert_cmp::$0 = assert_cmp::actual#17 < 0 - [163] assert_cmp::ok#1 = (byte)assert_cmp::$0 + [163] assert_cmp::ok#1 = (char)assert_cmp::$0 to:assert_cmp::@7 -signed word strncmp(const byte* strncmp::str1 , const byte* strncmp::str2 , word strncmp::n) +int strncmp(const char *str1 , const char *str2 , unsigned int n) strncmp: scope:[strncmp] from main::@17 main::@19 main::@21 main::@23 main::@25 [164] strncmp::n#8 = phi( main::@17/3, main::@19/3, main::@21/2, main::@23/3, main::@25/3 ) [164] strncmp::s2#0 = phi( main::@17/main::str28, main::@19/main::str29, main::@21/main::str210, main::@23/main::str211, main::@25/main::str212 ) @@ -4705,7 +4705,7 @@ strncmp::@1: scope:[strncmp] from strncmp strncmp::@4 to:strncmp::@3 strncmp::@3: scope:[strncmp] from strncmp::@1 [167] strncmp::$0 = *strncmp::s1#2 - *strncmp::s2#2 - [168] strncmp::return#0 = (signed word)(signed byte)strncmp::$0 + [168] strncmp::return#0 = (int)(signed char)strncmp::$0 to:strncmp::@return strncmp::@return: scope:[strncmp] from strncmp::@2 strncmp::@3 strncmp::@5 [169] strncmp::return#2 = phi( strncmp::@3/strncmp::return#0, strncmp::@2/0, strncmp::@5/0 ) @@ -4723,13 +4723,13 @@ strncmp::@4: scope:[strncmp] from strncmp::@5 [175] strncmp::s2#1 = ++ strncmp::s2#2 to:strncmp::@1 -signed word memcmp(const void* memcmp::str1 , const void* memcmp::str2 , word memcmp::n) +int memcmp(const void *str1 , const void *str2 , unsigned int n) memcmp: scope:[memcmp] from main::@27 main::@29 main::@31 main::@33 [176] memcmp::n#7 = phi( main::@27/2, main::@29/2, main::@31/1, main::@33/4 ) - [176] memcmp::str2#4 = phi( main::@27/(const void*)main::$35, main::@29/(const void*)main::str13, main::@31/(const void*)main::$39, main::@33/(const void*)main::str111 ) - [176] memcmp::str1#4 = phi( main::@27/(const void*)main::str12, main::@29/(const void*)main::str13, main::@31/(const void*)main::$38, main::@33/(const void*)main::str14 ) - [177] memcmp::s1#6 = (byte*)memcmp::str1#4 - [178] memcmp::s2#6 = (byte*)memcmp::str2#4 + [176] memcmp::str2#4 = phi( main::@27/(const void *)main::$35, main::@29/(const void *)main::str13, main::@31/(const void *)main::$39, main::@33/(const void *)main::str111 ) + [176] memcmp::str1#4 = phi( main::@27/(const void *)main::str12, main::@29/(const void *)main::str13, main::@31/(const void *)main::$38, main::@33/(const void *)main::str14 ) + [177] memcmp::s1#6 = (char *)memcmp::str1#4 + [178] memcmp::s2#6 = (char *)memcmp::str2#4 to:memcmp::@1 memcmp::@1: scope:[memcmp] from memcmp memcmp::@3 [179] memcmp::s2#2 = phi( memcmp/memcmp::s2#6, memcmp::@3/memcmp::s2#1 ) @@ -4746,7 +4746,7 @@ memcmp::@2: scope:[memcmp] from memcmp::@1 to:memcmp::@4 memcmp::@4: scope:[memcmp] from memcmp::@2 [184] memcmp::$3 = *memcmp::s1#2 - *memcmp::s2#2 - [185] memcmp::return#1 = (signed word)(signed byte)memcmp::$3 + [185] memcmp::return#1 = (int)(signed char)memcmp::$3 to:memcmp::@return memcmp::@3: scope:[memcmp] from memcmp::@2 [186] memcmp::n#0 = -- memcmp::n#5 @@ -4754,7 +4754,7 @@ memcmp::@3: scope:[memcmp] from memcmp::@2 [188] memcmp::s2#1 = ++ memcmp::s2#2 to:memcmp::@1 -byte textcolor(byte textcolor::color) +char textcolor(char color) textcolor: scope:[textcolor] from assert_cmp::@1 assert_cmp::@8 [189] textcolor::color#2 = phi( assert_cmp::@1/GREEN, assert_cmp::@8/RED ) [190] conio_textcolor = textcolor::color#2 @@ -4763,7 +4763,7 @@ textcolor::@return: scope:[textcolor] from textcolor [191] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from assert_cmp::@11 assert_cmp::@12 assert_cmp::@14 assert_cmp::@16 assert_cmp::@18 assert_cmp::@9 printf_number_buffer::@2 printf_string::@1 [192] cputs::s#10 = phi( assert_cmp::@11/assert_cmp::s1, assert_cmp::@12/assert_cmp::s2, assert_cmp::@14/assert_cmp::s3, assert_cmp::@16/assert_cmp::s4, assert_cmp::@18/assert_cmp::s1, assert_cmp::@9/assert_cmp::s, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0, printf_string::@1/cputs::s#2 ) to:cputs::@1 @@ -4781,30 +4781,30 @@ cputs::@2: scope:[cputs] from cputs::@1 [199] call cputc to:cputs::@1 -void printf_schar(signed byte printf_schar::value , byte printf_schar::format_min_length , byte printf_schar::format_justify_left , byte printf_schar::format_sign_always , byte printf_schar::format_zero_padding , byte printf_schar::format_upper_case , byte printf_schar::format_radix) +void printf_schar(signed char value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_schar: scope:[printf_schar] from assert_cmp::@13 assert_cmp::@15 [200] printf_schar::value#3 = phi( assert_cmp::@13/printf_schar::value#1, assert_cmp::@15/printf_schar::value#2 ) - [201] *((byte*)&printf_buffer) = 0 + [201] *((char *)&printf_buffer) = 0 [202] if(printf_schar::value#3<0) goto printf_schar::@1 to:printf_schar::@2 printf_schar::@1: scope:[printf_schar] from printf_schar [203] printf_schar::value#0 = - printf_schar::value#3 - [204] *((byte*)&printf_buffer) = '-' + [204] *((char *)&printf_buffer) = '-' to:printf_schar::@2 printf_schar::@2: scope:[printf_schar] from printf_schar printf_schar::@1 [205] printf_schar::value#5 = phi( printf_schar::@1/printf_schar::value#0, printf_schar/printf_schar::value#3 ) - [206] uctoa::value#1 = (byte)printf_schar::value#5 + [206] uctoa::value#1 = (char)printf_schar::value#5 [207] call uctoa to:printf_schar::@3 printf_schar::@3: scope:[printf_schar] from printf_schar::@2 - [208] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) + [208] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) [209] call printf_number_buffer to:printf_schar::@return printf_schar::@return: scope:[printf_schar] from printf_schar::@3 [210] return to:@return -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from assert_cmp::@10 assert_cmp::@17 [211] printf_string::str#2 = phi( assert_cmp::@10/printf_string::str#0, assert_cmp::@17/printf_string::str#1 ) to:printf_string::@1 @@ -4816,7 +4816,7 @@ printf_string::@return: scope:[printf_string] from printf_string::@1 [214] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@3 [215] cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@3/cputc::c#2 ) [216] if(cputc::c#3==' @@ -4840,12 +4840,12 @@ cputc::@1: scope:[cputc] from cputc [225] call cputln to:cputc::@return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) +void uctoa(char value , char *buffer , char radix) uctoa: scope:[uctoa] from printf_schar::@2 [226] phi() to:uctoa::@1 uctoa::@1: scope:[uctoa] from uctoa uctoa::@4 - [227] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [227] uctoa::buffer#11 = phi( uctoa::@4/uctoa::buffer#14, uctoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [227] uctoa::started#2 = phi( uctoa::@4/uctoa::started#4, uctoa/0 ) [227] uctoa::value#2 = phi( uctoa::@4/uctoa::value#6, uctoa/uctoa::value#1 ) [227] uctoa::digit#2 = phi( uctoa::@4/uctoa::digit#1, uctoa/0 ) @@ -4884,7 +4884,7 @@ uctoa::@6: scope:[uctoa] from uctoa::@5 [244] uctoa::buffer#4 = ++ uctoa::buffer#11 to:uctoa::@4 -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_schar::@3 [245] phi() to:printf_number_buffer::@1 @@ -4915,7 +4915,7 @@ cputln::@return: scope:[cputln] from cputln [257] return to:@return -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) +char uctoa_append(char *buffer , char value , char sub) uctoa_append: scope:[uctoa_append] from uctoa::@5 [258] phi() to:uctoa_append::@1 @@ -4964,13 +4964,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [277] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [278] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [278] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [279] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [280] memcpy::src#4 = (byte*)memcpy::source#2 - [281] memcpy::dst#4 = (byte*)memcpy::destination#2 + [278] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [278] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [279] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [280] memcpy::src#4 = (char *)memcpy::source#2 + [281] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [282] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -4986,14 +4986,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [287] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [288] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/memset::c#1 ) - [288] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [288] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [289] memset::end#0 = (byte*)memset::str#3 + $28 - [290] memset::dst#4 = (byte*)memset::str#3 + [289] memset::end#0 = (char *)memset::str#3 + $28 + [290] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [291] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -5010,259 +5010,259 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) -bool~ assert_cmp::$0 101.0 -bool~ assert_cmp::$1 101.0 -bool~ assert_cmp::$2 101.0 -signed byte assert_cmp::actual -signed byte assert_cmp::actual#0 22.0 -signed byte assert_cmp::actual#1 22.0 -signed byte assert_cmp::actual#10 22.0 -signed byte assert_cmp::actual#11 22.0 -signed byte assert_cmp::actual#12 22.0 -signed byte assert_cmp::actual#13 22.0 -signed byte assert_cmp::actual#14 22.0 -signed byte assert_cmp::actual#15 22.0 -signed byte assert_cmp::actual#16 22.0 -signed byte assert_cmp::actual#17 29.55 -signed byte assert_cmp::actual#2 22.0 -signed byte assert_cmp::actual#3 22.0 -signed byte assert_cmp::actual#4 22.0 -signed byte assert_cmp::actual#5 22.0 -signed byte assert_cmp::actual#6 22.0 -signed byte assert_cmp::actual#7 22.0 -signed byte assert_cmp::actual#8 22.0 -signed byte assert_cmp::actual#9 22.0 -signed byte assert_cmp::expect -signed byte assert_cmp::expect#17 25.25 -byte* assert_cmp::message -byte* assert_cmp::message#17 7.214285714285714 -byte assert_cmp::ok -byte assert_cmp::ok#1 202.0 -byte assert_cmp::ok#2 202.0 -byte assert_cmp::ok#3 202.0 -byte assert_cmp::ok#4 404.0 +void assert_cmp(signed char expect , signed char actual , char *message) +bool assert_cmp::$0 // 101.0 +bool assert_cmp::$1 // 101.0 +bool assert_cmp::$2 // 101.0 +signed char assert_cmp::actual +signed char assert_cmp::actual#0 // 22.0 +signed char assert_cmp::actual#1 // 22.0 +signed char assert_cmp::actual#10 // 22.0 +signed char assert_cmp::actual#11 // 22.0 +signed char assert_cmp::actual#12 // 22.0 +signed char assert_cmp::actual#13 // 22.0 +signed char assert_cmp::actual#14 // 22.0 +signed char assert_cmp::actual#15 // 22.0 +signed char assert_cmp::actual#16 // 22.0 +signed char assert_cmp::actual#17 // 29.55 +signed char assert_cmp::actual#2 // 22.0 +signed char assert_cmp::actual#3 // 22.0 +signed char assert_cmp::actual#4 // 22.0 +signed char assert_cmp::actual#5 // 22.0 +signed char assert_cmp::actual#6 // 22.0 +signed char assert_cmp::actual#7 // 22.0 +signed char assert_cmp::actual#8 // 22.0 +signed char assert_cmp::actual#9 // 22.0 +signed char assert_cmp::expect +signed char assert_cmp::expect#17 // 25.25 +char *assert_cmp::message +char *assert_cmp::message#17 // 7.214285714285714 +char assert_cmp::ok +char assert_cmp::ok#1 // 202.0 +char assert_cmp::ok#2 // 202.0 +char assert_cmp::ok#3 // 202.0 +char assert_cmp::ok#4 // 404.0 void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 837989.43575419 -byte conio_cursor_y loadstore 1.6410256964102566E7 -byte* conio_line_color loadstore 1.1818182395721925E7 -byte* conio_line_text loadstore 1.1693122264550265E7 -byte conio_textcolor loadstore 1.2317085426829267E7 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 2000002.0 -byte cputc::c#2 20002.0 -byte cputc::c#3 1.0505002E7 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 837989.43575419 +__loadstore char conio_cursor_y // 1.6410256964102566E7 +__loadstore char *conio_line_color // 1.1818182395721925E7 +__loadstore char *conio_line_text // 1.1693122264550265E7 +__loadstore char conio_textcolor // 1.2317085426829267E7 +void cputc(char c) +char cputc::c +char cputc::c#0 // 2000002.0 +char cputc::c#2 // 20002.0 +char cputc::c#3 // 1.0505002E7 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 1000001.0 -const byte* cputs::s -const byte* cputs::s#0 500000.5 -const byte* cputs::s#10 101002.0 -const byte* cputs::s#2 2002.0 -const byte* cputs::s#9 1550002.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 1000001.0 +const char *cputs::s +const char *cputs::s#0 // 500000.5 +const char *cputs::s#10 // 101002.0 +const char *cputs::s#2 // 2002.0 +const char *cputs::s#9 // 1550002.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 71.0 -byte gotoxy::y#4 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 71.0 +char gotoxy::y#4 // 67.33333333333333 void main() -signed word memcmp(const void* memcmp::str1 , const void* memcmp::str2 , word memcmp::n) -byte~ memcmp::$3 101.0 -word memcmp::n -word memcmp::n#0 667.3333333333334 -word memcmp::n#5 1034.6666666666667 -word memcmp::n#7 33.666666666666664 -signed word memcmp::return -signed word memcmp::return#1 202.0 -signed word memcmp::return#10 22.0 -signed word memcmp::return#11 22.0 -signed word memcmp::return#2 24.166666666666664 -signed word memcmp::return#3 22.0 -signed word memcmp::return#4 22.0 -byte* memcmp::s1 -byte* memcmp::s1#1 1001.0 -byte* memcmp::s1#2 801.25 -byte* memcmp::s1#6 101.0 -byte* memcmp::s2 -byte* memcmp::s2#1 2002.0 -byte* memcmp::s2#2 641.0 -byte* memcmp::s2#6 202.0 -const void* memcmp::str1 -const void* memcmp::str1#4 -const void* memcmp::str2 -const void* memcmp::str2#4 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.000000000001E12 -byte* memcpy::dst#2 1.0033333333346667E12 -byte* memcpy::dst#4 2.0000000002E10 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.000000000002E12 -byte* memcpy::src#2 1.00250000000125E12 -byte* memcpy::src#4 1.0000000001E10 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.2625000000025E11 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#1 2.000000002E9 -byte memset::c#4 1.430000000002857E11 -byte* memset::dst -byte* memset::dst#1 2.000000000002E12 -byte* memset::dst#2 1.3366666666683335E12 -byte* memset::dst#4 2.0000000002E10 -byte* memset::end -byte* memset::end#0 1.683333333336667E11 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 -struct printf_buffer_number printf_buffer loadstore = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +int memcmp(const void *str1 , const void *str2 , unsigned int n) +char memcmp::$3 // 101.0 +unsigned int memcmp::n +unsigned int memcmp::n#0 // 667.3333333333334 +unsigned int memcmp::n#5 // 1034.6666666666667 +unsigned int memcmp::n#7 // 33.666666666666664 +int memcmp::return +int memcmp::return#1 // 202.0 +int memcmp::return#10 // 22.0 +int memcmp::return#11 // 22.0 +int memcmp::return#2 // 24.166666666666664 +int memcmp::return#3 // 22.0 +int memcmp::return#4 // 22.0 +char *memcmp::s1 +char *memcmp::s1#1 // 1001.0 +char *memcmp::s1#2 // 801.25 +char *memcmp::s1#6 // 101.0 +char *memcmp::s2 +char *memcmp::s2#1 // 2002.0 +char *memcmp::s2#2 // 641.0 +char *memcmp::s2#6 // 202.0 +const void *memcmp::str1 +const void *memcmp::str1#4 +const void *memcmp::str2 +const void *memcmp::str2#4 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.000000000001E12 +char *memcpy::dst#2 // 1.0033333333346667E12 +char *memcpy::dst#4 // 2.0000000002E10 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.000000000002E12 +char *memcpy::src#2 // 1.00250000000125E12 +char *memcpy::src#4 // 1.0000000001E10 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.2625000000025E11 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#1 // 2.000000002E9 +char memset::c#4 // 1.430000000002857E11 +char *memset::dst +char *memset::dst#1 // 2.000000000002E12 +char *memset::dst#2 // 1.3366666666683335E12 +char *memset::dst#4 // 2.0000000002E10 +char *memset::end +char *memset::end#0 // 1.683333333336667E11 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 +__loadstore struct printf_buffer_number printf_buffer = {} +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 7001.0 +char *printf_number_buffer::buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // 7001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_schar(signed byte printf_schar::value , byte printf_schar::format_min_length , byte printf_schar::format_justify_left , byte printf_schar::format_sign_always , byte printf_schar::format_zero_padding , byte printf_schar::format_upper_case , byte printf_schar::format_radix) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_schar(signed char value , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_schar::format -byte printf_schar::format_justify_left -byte printf_schar::format_min_length -byte printf_schar::format_radix -byte printf_schar::format_sign_always -byte printf_schar::format_upper_case -byte printf_schar::format_zero_padding -byte printf_schar::uvalue -signed byte printf_schar::value -signed byte printf_schar::value#0 1001.0 -signed byte printf_schar::value#1 202.0 -signed byte printf_schar::value#2 202.0 -signed byte printf_schar::value#3 1068.3333333333335 -signed byte printf_schar::value#5 2002.0 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +char printf_schar::format_justify_left +char printf_schar::format_min_length +char printf_schar::format_radix +char printf_schar::format_sign_always +char printf_schar::format_upper_case +char printf_schar::format_zero_padding +char printf_schar::uvalue +signed char printf_schar::value +signed char printf_schar::value#0 // 1001.0 +signed char printf_schar::value#1 // 202.0 +signed char printf_schar::value#2 // 202.0 +signed char printf_schar::value#3 // 1068.3333333333335 +signed char printf_schar::value#5 // 2002.0 +void printf_string(char *str , char format_min_length , char format_justify_left) struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_min_length -signed byte printf_string::len -signed byte printf_string::padding -byte* printf_string::str -byte* printf_string::str#0 202.0 -byte* printf_string::str#1 202.0 -byte* printf_string::str#2 1203.0 -signed word strcmp(const byte* strcmp::str1 , const byte* strcmp::str2) -byte~ strcmp::$0 101.0 -signed word strcmp::return -signed word strcmp::return#0 202.0 -signed word strcmp::return#10 22.0 -signed word strcmp::return#11 18.9 -signed word strcmp::return#12 22.0 -signed word strcmp::return#13 22.0 -signed word strcmp::return#14 22.0 -signed word strcmp::return#15 22.0 -signed word strcmp::return#16 22.0 -signed word strcmp::return#17 22.0 -signed word strcmp::return#18 22.0 -byte* strcmp::s1 -byte* strcmp::s1#0 101.0 -byte* strcmp::s1#1 1001.0 -byte* strcmp::s1#2 1402.0 -byte* strcmp::s2 -byte* strcmp::s2#0 101.0 -byte* strcmp::s2#1 2002.0 -byte* strcmp::s2#2 801.25 -const byte* strcmp::str1 -const byte* strcmp::str2 -signed word strncmp(const byte* strncmp::str1 , const byte* strncmp::str2 , word strncmp::n) -byte~ strncmp::$0 101.0 -word strncmp::n -word strncmp::n#0 600.5999999999999 -word strncmp::n#6 1051.5 -word strncmp::n#8 101.0 -signed word strncmp::return -signed word strncmp::return#0 202.0 -signed word strncmp::return#10 22.0 -signed word strncmp::return#11 22.0 -signed word strncmp::return#12 22.0 -signed word strncmp::return#13 22.0 -signed word strncmp::return#2 22.285714285714285 -signed word strncmp::return#3 22.0 -byte* strncmp::s1 -byte* strncmp::s1#0 101.0 -byte* strncmp::s1#1 1001.0 -byte* strncmp::s1#2 841.2 -byte* strncmp::s2 -byte* strncmp::s2#0 101.0 -byte* strncmp::s2#1 2002.0 -byte* strncmp::s2#2 534.1666666666666 -const byte* strncmp::str1 -const byte* strncmp::str2 -byte textcolor(byte textcolor::color) -byte textcolor::color -byte textcolor::color#2 1001.0 -byte textcolor::old -byte textcolor::return -void uctoa(byte uctoa::value , byte* uctoa::buffer , byte uctoa::radix) -byte* uctoa::buffer -byte* uctoa::buffer#11 35000.49999999999 -byte* uctoa::buffer#14 150001.5 -byte* uctoa::buffer#3 20002.0 -byte* uctoa::buffer#4 200002.0 -byte uctoa::digit -byte uctoa::digit#1 200002.0 -byte uctoa::digit#2 30769.53846153846 -byte uctoa::digit_value -byte uctoa::digit_value#0 60000.600000000006 -byte* uctoa::digit_values -byte uctoa::max_digits -byte uctoa::radix -byte uctoa::started -byte uctoa::started#2 60000.600000000006 -byte uctoa::started#4 100001.0 -byte uctoa::value -byte uctoa::value#0 100001.0 -byte uctoa::value#1 5501.0 -byte uctoa::value#2 70000.99999999999 -byte uctoa::value#6 150001.5 -byte uctoa_append(byte* uctoa_append::buffer , byte uctoa_append::value , byte uctoa_append::sub) -byte* uctoa_append::buffer -byte* uctoa_append::buffer#0 137500.25 -byte uctoa_append::digit -byte uctoa_append::digit#1 1.00000001E8 -byte uctoa_append::digit#2 1.005000015E8 -byte uctoa_append::return -byte uctoa_append::return#0 200002.0 -byte uctoa_append::sub -byte uctoa_append::sub#0 3.33500005E7 -byte uctoa_append::value -byte uctoa_append::value#0 366667.3333333334 -byte uctoa_append::value#1 2.00000002E8 -byte uctoa_append::value#2 5.018333416666667E7 +char printf_string::format_justify_left +char printf_string::format_min_length +signed char printf_string::len +signed char printf_string::padding +char *printf_string::str +char *printf_string::str#0 // 202.0 +char *printf_string::str#1 // 202.0 +char *printf_string::str#2 // 1203.0 +int strcmp(const char *str1 , const char *str2) +char strcmp::$0 // 101.0 +int strcmp::return +int strcmp::return#0 // 202.0 +int strcmp::return#10 // 22.0 +int strcmp::return#11 // 18.9 +int strcmp::return#12 // 22.0 +int strcmp::return#13 // 22.0 +int strcmp::return#14 // 22.0 +int strcmp::return#15 // 22.0 +int strcmp::return#16 // 22.0 +int strcmp::return#17 // 22.0 +int strcmp::return#18 // 22.0 +char *strcmp::s1 +char *strcmp::s1#0 // 101.0 +char *strcmp::s1#1 // 1001.0 +char *strcmp::s1#2 // 1402.0 +char *strcmp::s2 +char *strcmp::s2#0 // 101.0 +char *strcmp::s2#1 // 2002.0 +char *strcmp::s2#2 // 801.25 +const char *strcmp::str1 +const char *strcmp::str2 +int strncmp(const char *str1 , const char *str2 , unsigned int n) +char strncmp::$0 // 101.0 +unsigned int strncmp::n +unsigned int strncmp::n#0 // 600.5999999999999 +unsigned int strncmp::n#6 // 1051.5 +unsigned int strncmp::n#8 // 101.0 +int strncmp::return +int strncmp::return#0 // 202.0 +int strncmp::return#10 // 22.0 +int strncmp::return#11 // 22.0 +int strncmp::return#12 // 22.0 +int strncmp::return#13 // 22.0 +int strncmp::return#2 // 22.285714285714285 +int strncmp::return#3 // 22.0 +char *strncmp::s1 +char *strncmp::s1#0 // 101.0 +char *strncmp::s1#1 // 1001.0 +char *strncmp::s1#2 // 841.2 +char *strncmp::s2 +char *strncmp::s2#0 // 101.0 +char *strncmp::s2#1 // 2002.0 +char *strncmp::s2#2 // 534.1666666666666 +const char *strncmp::str1 +const char *strncmp::str2 +char textcolor(char color) +char textcolor::color +char textcolor::color#2 // 1001.0 +char textcolor::old +char textcolor::return +void uctoa(char value , char *buffer , char radix) +char *uctoa::buffer +char *uctoa::buffer#11 // 35000.49999999999 +char *uctoa::buffer#14 // 150001.5 +char *uctoa::buffer#3 // 20002.0 +char *uctoa::buffer#4 // 200002.0 +char uctoa::digit +char uctoa::digit#1 // 200002.0 +char uctoa::digit#2 // 30769.53846153846 +char uctoa::digit_value +char uctoa::digit_value#0 // 60000.600000000006 +char *uctoa::digit_values +char uctoa::max_digits +char uctoa::radix +char uctoa::started +char uctoa::started#2 // 60000.600000000006 +char uctoa::started#4 // 100001.0 +char uctoa::value +char uctoa::value#0 // 100001.0 +char uctoa::value#1 // 5501.0 +char uctoa::value#2 // 70000.99999999999 +char uctoa::value#6 // 150001.5 +char uctoa_append(char *buffer , char value , char sub) +char *uctoa_append::buffer +char *uctoa_append::buffer#0 // 137500.25 +char uctoa_append::digit +char uctoa_append::digit#1 // 1.00000001E8 +char uctoa_append::digit#2 // 1.005000015E8 +char uctoa_append::return +char uctoa_append::return#0 // 200002.0 +char uctoa_append::sub +char uctoa_append::sub#0 // 3.33500005E7 +char uctoa_append::value +char uctoa_append::value#0 // 366667.3333333334 +char uctoa_append::value#1 // 2.00000002E8 +char uctoa_append::value#2 // 5.018333416666667E7 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -5551,7 +5551,7 @@ Statement [99] memcmp::return#11 = memcmp::return#2 [ conio_cursor_x conio_curso Statement [100] assert_cmp::actual#16 = memcmp::return#11 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::actual#16 printf_buffer ] ( main:8 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::actual#16 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } ) always clobbers reg byte a Statement [106] conio_cursor_x = gotoxy::x#2 [ conio_cursor_x gotoxy::y#4 ] ( gotoxy:15 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#4 gotoxy::y#2 ] -Statement [108] gotoxy::$7 = (word)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [108] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [109] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [110] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [111] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -5561,7 +5561,7 @@ Statement [114] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [ conio_cursor_x c Statement [115] conio_line_color = gotoxy::$6 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [119] if(*strcmp::s1#2==*strcmp::s2#2) goto strcmp::@2 [ strcmp::s1#2 strcmp::s2#2 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a reg byte y Statement [120] strcmp::$0 = *strcmp::s1#2 - *strcmp::s2#2 [ strcmp::$0 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a reg byte y -Statement [121] strcmp::return#0 = (signed word)(signed byte)strcmp::$0 [ strcmp::return#0 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a +Statement [121] strcmp::return#0 = (int)(signed char)strcmp::$0 [ strcmp::return#0 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a Statement [124] if(*strcmp::s1#2!=0) goto strcmp::@4 [ strcmp::s1#2 strcmp::s2#2 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a reg byte y Statement [131] assert_cmp::$2 = assert_cmp::actual#17 > 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] ( main:8::assert_cmp:21 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ assert_cmp::expect#17 ] @@ -5572,24 +5572,24 @@ Statement [160] assert_cmp::$1 = assert_cmp::actual#17 == 0 [ conio_cursor_x con Statement [162] assert_cmp::$0 = assert_cmp::actual#17 < 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] ( main:8::assert_cmp:21 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } ) always clobbers reg byte a Statement [166] if(*strncmp::s1#2==*strncmp::s2#2) goto strncmp::@2 [ strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a reg byte y Statement [167] strncmp::$0 = *strncmp::s1#2 - *strncmp::s2#2 [ strncmp::$0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a reg byte y -Statement [168] strncmp::return#0 = (signed word)(signed byte)strncmp::$0 [ strncmp::return#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a +Statement [168] strncmp::return#0 = (int)(signed char)strncmp::$0 [ strncmp::return#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a Statement [171] strncmp::n#0 = -- strncmp::n#6 [ strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a Statement [172] if(*strncmp::s1#2==0) goto strncmp::@return [ strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a reg byte y Statement [173] if(strncmp::n#0==0) goto strncmp::@return [ strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a -Statement [177] memcmp::s1#6 = (byte*)memcmp::str1#4 [ memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a -Statement [178] memcmp::s2#6 = (byte*)memcmp::str2#4 [ memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a +Statement [177] memcmp::s1#6 = (char *)memcmp::str1#4 [ memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a +Statement [178] memcmp::s2#6 = (char *)memcmp::str2#4 [ memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [180] if(memcmp::n#5!=0) goto memcmp::@2 [ memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [183] if(*memcmp::s1#2==*memcmp::s2#2) goto memcmp::@3 [ memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a reg byte y Statement [184] memcmp::$3 = *memcmp::s1#2 - *memcmp::s2#2 [ memcmp::$3 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a reg byte y -Statement [185] memcmp::return#1 = (signed word)(signed byte)memcmp::$3 [ memcmp::return#1 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a +Statement [185] memcmp::return#1 = (int)(signed char)memcmp::$3 [ memcmp::return#1 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [186] memcmp::n#0 = -- memcmp::n#5 [ memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [194] cputs::c#1 = *cputs::s#9 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] ( main:8::assert_cmp:21::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:21::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:10 [ assert_cmp::expect#17 ] Removing always clobbered register reg byte y as potential for zp[1]:11 [ assert_cmp::actual#17 assert_cmp::actual#4 assert_cmp::actual#5 assert_cmp::actual#6 assert_cmp::actual#7 assert_cmp::actual#8 assert_cmp::actual#0 assert_cmp::actual#9 assert_cmp::actual#10 assert_cmp::actual#11 assert_cmp::actual#12 assert_cmp::actual#13 assert_cmp::actual#14 assert_cmp::actual#15 assert_cmp::actual#16 assert_cmp::actual#1 assert_cmp::actual#2 assert_cmp::actual#3 ] -Statement [201] *((byte*)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a +Statement [201] *((char *)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:38 [ printf_schar::value#5 printf_schar::value#0 printf_schar::value#3 printf_schar::value#1 printf_schar::value#2 ] Statement [203] printf_schar::value#0 = - printf_schar::value#3 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a -Statement [204] *((byte*)&printf_buffer) = '-' [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a +Statement [204] *((char *)&printf_buffer) = '-' [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a Statement [212] cputs::s#2 = printf_string::str#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] ( main:8::assert_cmp:21::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:21::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } ) always clobbers reg byte a Statement [217] conio_line_text[conio_cursor_x] = cputc::c#3 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte y Statement [218] conio_line_color[conio_cursor_x] = conio_textcolor [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a reg byte y @@ -5614,14 +5614,14 @@ Removing always clobbered register reg byte a as potential for zp[1]:48 [ uctoa_ Statement [265] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [274] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [275] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a -Statement [279] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a -Statement [280] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a -Statement [281] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a +Statement [279] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a +Statement [280] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a +Statement [281] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [283] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [285] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a reg byte y -Statement [289] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a +Statement [289] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:59 [ memset::c#4 memset::c#1 ] -Statement [290] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a +Statement [290] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a Statement [292] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a Statement [294] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:59 [ memset::c#4 memset::c#1 ] @@ -5665,7 +5665,7 @@ Statement [95] assert_cmp::actual#15 = memcmp::return#10 [ conio_cursor_x conio_ Statement [99] memcmp::return#11 = memcmp::return#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcmp::return#11 printf_buffer ] ( main:8 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcmp::return#11 printf_buffer ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [100] assert_cmp::actual#16 = memcmp::return#11 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::actual#16 printf_buffer ] ( main:8 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::actual#16 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } ) always clobbers reg byte a Statement [106] conio_cursor_x = gotoxy::x#2 [ conio_cursor_x gotoxy::y#4 ] ( gotoxy:15 [ conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x gotoxy::y#4 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a -Statement [108] gotoxy::$7 = (word)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a +Statement [108] gotoxy::$7 = (unsigned int)gotoxy::y#4 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [109] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [110] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [111] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a @@ -5675,7 +5675,7 @@ Statement [114] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [ conio_cursor_x c Statement [115] conio_line_color = gotoxy::$6 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( gotoxy:15 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = conio_c64_init::line#2 } } conio_c64_init:6::gotoxy:15 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = conio_c64_init::line#2 } } ) always clobbers reg byte a Statement [119] if(*strcmp::s1#2==*strcmp::s2#2) goto strcmp::@2 [ strcmp::s1#2 strcmp::s2#2 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a reg byte y Statement [120] strcmp::$0 = *strcmp::s1#2 - *strcmp::s2#2 [ strcmp::$0 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::$0 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a reg byte y -Statement [121] strcmp::return#0 = (signed word)(signed byte)strcmp::$0 [ strcmp::return#0 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a +Statement [121] strcmp::return#0 = (int)(signed char)strcmp::$0 [ strcmp::return#0 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::return#0 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a Statement [124] if(*strcmp::s1#2!=0) goto strcmp::@4 [ strcmp::s1#2 strcmp::s2#2 ] ( main:8::strcmp:18 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#12 } } main:8::strcmp:23 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#13 } } main:8::strcmp:28 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#14 } } main:8::strcmp:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#15 } } main:8::strcmp:38 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#16 } } main:8::strcmp:43 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#17 } } main:8::strcmp:48 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#11 = strcmp::return#18 } } main:8::strcmp:53 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strcmp::s1#2 strcmp::s2#2 ] { { strcmp::return#10 = strcmp::return#11 } } ) always clobbers reg byte a reg byte y Statement [131] assert_cmp::$2 = assert_cmp::actual#17 > 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] ( main:8::assert_cmp:21 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$2 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } ) always clobbers reg byte a Statement [147] printf_string::str#1 = assert_cmp::message#17 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] ( main:8::assert_cmp:21 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:26 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:31 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:36 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:41 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:46 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:51 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:56 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:66 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:71 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:81 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:86 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:91 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:96 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } main:8::assert_cmp:101 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_string::str#1 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_string::str#1 = printf_string::str#2 assert_cmp::message#17 } } ) always clobbers reg byte a @@ -5684,21 +5684,21 @@ Statement [160] assert_cmp::$1 = assert_cmp::actual#17 == 0 [ conio_cursor_x con Statement [162] assert_cmp::$0 = assert_cmp::actual#17 < 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] ( main:8::assert_cmp:21 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 assert_cmp::$0 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } ) always clobbers reg byte a Statement [166] if(*strncmp::s1#2==*strncmp::s2#2) goto strncmp::@2 [ strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#6 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a reg byte y Statement [167] strncmp::$0 = *strncmp::s1#2 - *strncmp::s2#2 [ strncmp::$0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::$0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a reg byte y -Statement [168] strncmp::return#0 = (signed word)(signed byte)strncmp::$0 [ strncmp::return#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a +Statement [168] strncmp::return#0 = (int)(signed char)strncmp::$0 [ strncmp::return#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::return#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a Statement [171] strncmp::n#0 = -- strncmp::n#6 [ strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a Statement [172] if(*strncmp::s1#2==0) goto strncmp::@return [ strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a reg byte y Statement [173] if(strncmp::n#0==0) goto strncmp::@return [ strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] ( main:8::strncmp:58 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#2 = strncmp::return#3 } } main:8::strncmp:63 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#10 = strncmp::return#2 } } main:8::strncmp:68 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#11 = strncmp::return#2 } } main:8::strncmp:73 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#12 = strncmp::return#2 } } main:8::strncmp:78 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer strncmp::s1#2 strncmp::s2#2 strncmp::n#0 ] { { strncmp::return#13 = strncmp::return#2 } } ) always clobbers reg byte a -Statement [177] memcmp::s1#6 = (byte*)memcmp::str1#4 [ memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a -Statement [178] memcmp::s2#6 = (byte*)memcmp::str2#4 [ memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a +Statement [177] memcmp::s1#6 = (char *)memcmp::str1#4 [ memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::str2#4 memcmp::n#7 memcmp::s1#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a +Statement [178] memcmp::s2#6 = (char *)memcmp::str2#4 [ memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#7 memcmp::s1#6 memcmp::s2#6 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [180] if(memcmp::n#5!=0) goto memcmp::@2 [ memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [183] if(*memcmp::s1#2==*memcmp::s2#2) goto memcmp::@3 [ memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::n#5 memcmp::s1#2 memcmp::s2#2 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a reg byte y Statement [184] memcmp::$3 = *memcmp::s1#2 - *memcmp::s2#2 [ memcmp::$3 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::$3 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a reg byte y -Statement [185] memcmp::return#1 = (signed word)(signed byte)memcmp::$3 [ memcmp::return#1 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a +Statement [185] memcmp::return#1 = (int)(signed char)memcmp::$3 [ memcmp::return#1 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::return#1 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [186] memcmp::n#0 = -- memcmp::n#5 [ memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] ( main:8::memcmp:83 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#2 = memcmp::return#3 } } main:8::memcmp:88 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#2 = memcmp::return#4 } } main:8::memcmp:93 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#10 = memcmp::return#2 } } main:8::memcmp:98 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color printf_buffer memcmp::s1#2 memcmp::s2#2 memcmp::n#0 ] { { memcmp::return#11 = memcmp::return#2 } } ) always clobbers reg byte a Statement [194] cputs::c#1 = *cputs::s#9 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] ( main:8::assert_cmp:21::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:138 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:142 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:146 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:150 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:155 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } } main:8::assert_cmp:26::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } } main:8::assert_cmp:31::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } } main:8::assert_cmp:76::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } } main:8::assert_cmp:81::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } } main:8::assert_cmp:86::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } } main:8::assert_cmp:91::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } } main:8::assert_cmp:96::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } } main:8::assert_cmp:101::cputs:159 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } } main:8::assert_cmp:21::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:148::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:21::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:157::cputs:213 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#9 cputs::c#1 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a reg byte y -Statement [201] *((byte*)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a +Statement [201] *((char *)&printf_buffer) = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_schar::value#3 printf_buffer ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a Statement [203] printf_schar::value#0 = - printf_schar::value#3 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a -Statement [204] *((byte*)&printf_buffer) = '-' [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a +Statement [204] *((char *)&printf_buffer) = '-' [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] ( main:8::assert_cmp:21::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:26::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:31::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:36::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:41::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:46::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:51::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:56::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:61::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:66::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:71::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:76::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:81::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:86::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:91::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:96::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:101::printf_schar:140 [ assert_cmp::actual#17 assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } } main:8::assert_cmp:21::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } } main:8::assert_cmp:26::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } } main:8::assert_cmp:31::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } } main:8::assert_cmp:36::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } } main:8::assert_cmp:41::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } } main:8::assert_cmp:46::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } } main:8::assert_cmp:51::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } } main:8::assert_cmp:56::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } } main:8::assert_cmp:61::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } } main:8::assert_cmp:66::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } } main:8::assert_cmp:71::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } } main:8::assert_cmp:76::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } } main:8::assert_cmp:81::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } } main:8::assert_cmp:86::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } } main:8::assert_cmp:91::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } } main:8::assert_cmp:96::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } } main:8::assert_cmp:101::printf_schar:144 [ assert_cmp::message#17 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor printf_buffer printf_schar::value#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } } ) always clobbers reg byte a Statement [212] cputs::s#2 = printf_string::str#2 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] ( main:8::assert_cmp:21::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:148 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } } main:8::assert_cmp:21::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:26::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:31::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:36::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:41::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:46::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:51::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:56::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:61::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:66::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:71::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:76::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:81::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:86::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:91::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:96::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } main:8::assert_cmp:101::printf_string:157 [ printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } } ) always clobbers reg byte a Statement [217] conio_line_text[conio_cursor_x] = cputc::c#3 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte y Statement [218] conio_line_color[conio_cursor_x] = conio_textcolor [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a reg byte y @@ -5715,13 +5715,13 @@ Statement [264] uctoa_append::value#1 = uctoa_append::value#2 - uctoa_append::su Statement [265] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [274] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [275] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a -Statement [279] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a -Statement [280] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a -Statement [281] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a +Statement [279] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a +Statement [280] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a +Statement [281] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [283] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a Statement [285] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:267 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:267 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memcpy:269 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memcpy:269 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } ) always clobbers reg byte a reg byte y -Statement [289] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a -Statement [290] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a +Statement [289] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::str#3 memset::c#4 memset::end#0 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a +Statement [290] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a Statement [292] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a Statement [294] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:271 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:271 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:222::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:222::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:138::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::expect#17 assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:142::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:146::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:150::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:155::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::cputs:159::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:148::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#1 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_string:157::cputs:213::cputc:199::cputln:225::cscroll:256::memset:273 [ printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { cputs::s#10 = cputs::s#2 printf_string::str#2 printf_string::str#0 assert_cmp::message#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputs:250::cputc:199::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#0 = cputc::c#3 cputs::c#1 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#0 = assert_cmp::actual#17 strcmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#1 = assert_cmp::actual#17 strcmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#2 strcmp::return#14 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#3 strcmp::return#15 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#4 strcmp::return#16 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#5 strcmp::return#17 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#6 strcmp::return#18 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#7 strcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#8 strncmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#17 = assert_cmp::actual#9 strncmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#10 = assert_cmp::actual#17 strncmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#11 = assert_cmp::actual#17 strncmp::return#12 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#12 = assert_cmp::actual#17 strncmp::return#13 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#13 = assert_cmp::actual#17 memcmp::return#3 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#14 = assert_cmp::actual#17 memcmp::return#4 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#15 = assert_cmp::actual#17 memcmp::return#10 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:140::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::actual#17 assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { assert_cmp::actual#16 = assert_cmp::actual#17 memcmp::return#11 } { printf_schar::value#1 = printf_schar::value#3 assert_cmp::expect#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:21::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#0 strcmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:26::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#1 strcmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:31::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#2 strcmp::return#14 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:36::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#3 strcmp::return#15 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:41::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#4 strcmp::return#16 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:46::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#5 strcmp::return#17 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:51::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#6 strcmp::return#18 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:56::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#7 strcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:61::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#8 strncmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:66::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#9 strncmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:71::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#10 strncmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:76::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#11 strncmp::return#12 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:81::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#12 strncmp::return#13 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:86::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#13 memcmp::return#3 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:91::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#14 memcmp::return#4 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:96::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#15 memcmp::return#10 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } main:8::assert_cmp:101::printf_schar:144::printf_number_buffer:209::cputc:248::cputln:225::cscroll:256::memset:273 [ assert_cmp::message#17 printf_buffer conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_schar::value#2 = printf_schar::value#3 assert_cmp::actual#17 assert_cmp::actual#16 memcmp::return#11 } { cputc::c#2 = cputc::c#3 printf_number_buffer::buffer_sign#0 } { memset::c#1 = memset::c#4 conio_textcolor } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -6599,12 +6599,12 @@ main: { sta.z memcmp.n lda #>2 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::$35 [phi:main::@27->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::$35 [phi:main::@27->memcmp#1] -- pvoz1=pvoc1 lda #<__35 sta.z memcmp.str2 lda #>__35 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::str12 [phi:main::@27->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::str12 [phi:main::@27->memcmp#2] -- pvoz1=pvoc1 lda #str12 @@ -6643,12 +6643,12 @@ main: { sta.z memcmp.n lda #>2 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::str13 [phi:main::@29->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::str13 [phi:main::@29->memcmp#1] -- pvoz1=pvoc1 lda #str13 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::str13 [phi:main::@29->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::str13 [phi:main::@29->memcmp#2] -- pvoz1=pvoc1 lda #str13 @@ -6687,12 +6687,12 @@ main: { sta.z memcmp.n lda #>1 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::$39 [phi:main::@31->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::$39 [phi:main::@31->memcmp#1] -- pvoz1=pvoc1 lda #<__39 sta.z memcmp.str2 lda #>__39 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::$38 [phi:main::@31->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::$38 [phi:main::@31->memcmp#2] -- pvoz1=pvoc1 lda #<__38 sta.z memcmp.str1 lda #>__38 @@ -6731,12 +6731,12 @@ main: { sta.z memcmp.n lda #>4 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::str111 [phi:main::@33->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::str111 [phi:main::@33->memcmp#1] -- pvoz1=pvoc1 lda #str111 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::str14 [phi:main::@33->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::str14 [phi:main::@33->memcmp#2] -- pvoz1=pvoc1 lda #str14 @@ -6854,7 +6854,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $17 @@ -6890,7 +6890,7 @@ gotoxy: { sta.z conio_cursor_x // [107] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [108] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [108] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -6958,6 +6958,7 @@ gotoxy: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. +// __zp($1a) int strcmp(const char *str1, const char *str2) strcmp: { .label s1 = 4 .label s2 = 6 @@ -6985,7 +6986,7 @@ strcmp: { sec ldy #0 sbc (s2),y - // [121] strcmp::return#0 = (signed word)(signed byte)strcmp::$0 -- vwsz1=_sword_vbsaa + // [121] strcmp::return#0 = (int)(signed char)strcmp::$0 -- vwsz1=_sword_vbsaa sta.z return ora #$7f bmi !+ @@ -7030,7 +7031,7 @@ strcmp: { jmp __b1_from___b4 } // assert_cmp -// assert_cmp(signed byte zp(2) expect, signed byte zp(3) actual, byte* zp(4) message) +// void assert_cmp(__zp(2) signed char expect, __zp(3) signed char actual, __zp(4) char *message) assert_cmp: { .label actual = 3 .label expect = 2 @@ -7068,7 +7069,7 @@ assert_cmp: { lda #0 rol !a: - // [132] assert_cmp::ok#3 = (byte)assert_cmp::$2 + // [132] assert_cmp::ok#3 = (char)assert_cmp::$2 // [133] phi from assert_cmp::@4 assert_cmp::@5 assert_cmp::@6 to assert_cmp::@7 [phi:assert_cmp::@4/assert_cmp::@5/assert_cmp::@6->assert_cmp::@7] __b7_from___b4: __b7_from___b5: @@ -7244,7 +7245,7 @@ assert_cmp: { lda #1 !: eor #1 - // [161] assert_cmp::ok#2 = (byte)assert_cmp::$1 + // [161] assert_cmp::ok#2 = (char)assert_cmp::$1 jmp __b7_from___b5 // assert_cmp::@4 __b4: @@ -7258,7 +7259,7 @@ assert_cmp: { asl lda #0 rol - // [163] assert_cmp::ok#1 = (byte)assert_cmp::$0 + // [163] assert_cmp::ok#1 = (char)assert_cmp::$0 jmp __b7_from___b4 .segment Data s: .text "ok! " @@ -7281,7 +7282,7 @@ assert_cmp: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -// strncmp(word zp(4) n) +// __zp($a) int strncmp(const char *str1, const char *str2, __zp(4) unsigned int n) strncmp: { .label s1 = 6 .label s2 = $1a @@ -7311,7 +7312,7 @@ strncmp: { sec ldy #0 sbc (s2),y - // [168] strncmp::return#0 = (signed word)(signed byte)strncmp::$0 -- vwsz1=_sword_vbsaa + // [168] strncmp::return#0 = (int)(signed char)strncmp::$0 -- vwsz1=_sword_vbsaa sta.z return ora #$7f bmi !+ @@ -7378,7 +7379,7 @@ strncmp: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -// memcmp(const void* zp(4) str1, const void* zp($a) str2, word zp(6) n) +// __zp($1a) int memcmp(__zp(4) const void *str1, __zp($a) const void *str2, __zp(6) unsigned int n) memcmp: { .label n = 6 .label s1 = 4 @@ -7386,8 +7387,8 @@ memcmp: { .label return = $1a .label str1 = 4 .label str2 = $a - // [177] memcmp::s1#6 = (byte*)memcmp::str1#4 - // [178] memcmp::s2#6 = (byte*)memcmp::str2#4 + // [177] memcmp::s1#6 = (char *)memcmp::str1#4 + // [178] memcmp::s2#6 = (char *)memcmp::str2#4 // [179] phi from memcmp memcmp::@3 to memcmp::@1 [phi:memcmp/memcmp::@3->memcmp::@1] __b1_from_memcmp: __b1_from___b3: @@ -7430,7 +7431,7 @@ memcmp: { sec ldy #0 sbc (s2),y - // [185] memcmp::return#1 = (signed word)(signed byte)memcmp::$3 -- vwsz1=_sword_vbsaa + // [185] memcmp::return#1 = (int)(signed char)memcmp::$3 -- vwsz1=_sword_vbsaa sta.z return ora #$7f bmi !+ @@ -7463,7 +7464,7 @@ memcmp: { } // textcolor // Set the color for text output. The old color setting is returned. -// textcolor(byte register(A) color) +// char textcolor(__register(A) char color) textcolor: { // [190] conio_textcolor = textcolor::color#2 -- vbuz1=vbuaa sta.z conio_textcolor @@ -7475,7 +7476,7 @@ textcolor: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(6) s) +// void cputs(__zp(6) const char *s) cputs: { .label s = 6 // [193] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -7513,9 +7514,9 @@ cputs: { } // printf_schar // Print a signed char using a specific format -// printf_schar(signed byte register(X) value) +// void printf_schar(__register(X) signed char value, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_schar: { - // [201] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [201] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer @@ -7535,13 +7536,13 @@ printf_schar: { clc adc #1 tax - // [204] *((byte*)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 + // [204] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer jmp __b2_from___b1 // printf_schar::@2 __b2: - // [206] uctoa::value#1 = (byte)printf_schar::value#5 + // [206] uctoa::value#1 = (char)printf_schar::value#5 // [207] call uctoa // [226] phi from printf_schar::@2 to uctoa [phi:printf_schar::@2->uctoa] uctoa_from___b2: @@ -7549,7 +7550,7 @@ printf_schar: { jmp __b3 // printf_schar::@3 __b3: - // [208] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [208] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer // [209] call printf_number_buffer // Print using format @@ -7565,7 +7566,7 @@ printf_schar: { // printf_string // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(4) str) +// void printf_string(__zp(4) char *str, char format_min_length, char format_justify_left) printf_string: { .label str = 4 jmp __b1 @@ -7590,7 +7591,7 @@ printf_string: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [216] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -7638,7 +7639,7 @@ cputc: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp($1a) buffer) +// void uctoa(__register(X) char value, __zp($1a) char *buffer, char radix) uctoa: { .label digit_value = $19 .label buffer = $1a @@ -7646,7 +7647,7 @@ uctoa: { .label started = 9 // [227] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] __b1_from_uctoa: - // [227] phi uctoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [227] phi uctoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -7749,7 +7750,7 @@ uctoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS jmp __b1 @@ -7829,7 +7830,7 @@ cputln: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp($1a) buffer, byte register(X) value, byte zp($19) sub) +// __register(X) char uctoa_append(__zp($1a) char *buffer, __register(X) char value, __zp($19) char sub) uctoa_append: { .label buffer = $1a .label sub = $19 @@ -7886,12 +7887,12 @@ cscroll: { // [267] call memcpy // [278] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [278] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [278] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [278] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [278] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -7905,12 +7906,12 @@ cscroll: { // [269] call memcpy // [278] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [278] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [278] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [278] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [278] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -7926,7 +7927,7 @@ cscroll: { memset_from___b3: // [288] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [288] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [288] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -7941,7 +7942,7 @@ cscroll: { // [288] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [288] phi memset::c#4 = memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy - // [288] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [288] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -7977,14 +7978,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($1c) destination, void* zp($a) source) +// void * memcpy(__zp($1c) void *destination, __zp($a) void *source, unsigned int num) memcpy: { .label src_end = $1a .label dst = $1c .label src = $a .label source = $a .label destination = $1c - // [279] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [279] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -7992,8 +7993,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [280] memcpy::src#4 = (byte*)memcpy::source#2 - // [281] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [280] memcpy::src#4 = (char *)memcpy::source#2 + // [281] memcpy::dst#4 = (char *)memcpy::destination#2 // [282] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -8035,7 +8036,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c) +// void * memset(__zp($a) void *str, __register(X) char c, unsigned int num) memset: { .label end = $1c .label dst = $a @@ -8043,7 +8044,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [289] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [289] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -8051,7 +8052,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [290] memset::dst#4 = (byte*)memset::str#3 + // [290] memset::dst#4 = (char *)memset::str#3 // [291] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -8480,325 +8481,325 @@ Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [606] beq __b4 to bne +Fixing long branch [607] beq __b4 to bne FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte GREEN = 5 -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant const byte RED = 2 -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char GREEN = 5 +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant const char RED = 2 +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) -bool~ assert_cmp::$0 reg byte a 101.0 -bool~ assert_cmp::$1 reg byte a 101.0 -bool~ assert_cmp::$2 reg byte a 101.0 -signed byte assert_cmp::actual -signed byte assert_cmp::actual#0 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#1 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#10 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#11 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#12 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#13 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#14 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#15 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#16 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#17 actual zp[1]:3 29.55 -signed byte assert_cmp::actual#2 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#3 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#4 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#5 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#6 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#7 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#8 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#9 actual zp[1]:3 22.0 -signed byte assert_cmp::expect -signed byte assert_cmp::expect#17 expect zp[1]:2 25.25 -byte* assert_cmp::message -byte* assert_cmp::message#17 message zp[2]:4 7.214285714285714 -byte assert_cmp::ok -byte assert_cmp::ok#1 reg byte a 202.0 -byte assert_cmp::ok#2 reg byte a 202.0 -byte assert_cmp::ok#3 reg byte a 202.0 -byte assert_cmp::ok#4 reg byte a 404.0 -constant byte* assert_cmp::s[5] = "ok! " -constant byte* assert_cmp::s1[2] = " +void assert_cmp(signed char expect , signed char actual , char *message) +bool assert_cmp::$0 // reg byte a 101.0 +bool assert_cmp::$1 // reg byte a 101.0 +bool assert_cmp::$2 // reg byte a 101.0 +signed char assert_cmp::actual +signed char assert_cmp::actual#0 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#1 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#10 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#11 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#12 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#13 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#14 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#15 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#16 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#17 // actual zp[1]:3 29.55 +signed char assert_cmp::actual#2 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#3 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#4 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#5 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#6 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#7 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#8 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#9 // actual zp[1]:3 22.0 +signed char assert_cmp::expect +signed char assert_cmp::expect#17 // expect zp[1]:2 25.25 +char *assert_cmp::message +char *assert_cmp::message#17 // message zp[2]:4 7.214285714285714 +char assert_cmp::ok +char assert_cmp::ok#1 // reg byte a 202.0 +char assert_cmp::ok#2 // reg byte a 202.0 +char assert_cmp::ok#3 // reg byte a 202.0 +char assert_cmp::ok#4 // reg byte a 404.0 +__constant char assert_cmp::s[5] = "ok! " +__constant char assert_cmp::s1[2] = " " -constant byte* assert_cmp::s2[$19] = "Assert failed. expected:" -constant byte* assert_cmp::s3[9] = " actual:" -constant byte* assert_cmp::s4[3] = ". " +__constant char assert_cmp::s2[$19] = "Assert failed. expected:" +__constant char assert_cmp::s3[9] = " actual:" +__constant char assert_cmp::s4[3] = ". " void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:12 837989.43575419 -byte conio_cursor_y loadstore zp[1]:13 1.6410256964102566E7 -byte* conio_line_color loadstore zp[2]:16 1.1818182395721925E7 -byte* conio_line_text loadstore zp[2]:14 1.1693122264550265E7 -byte conio_textcolor loadstore zp[1]:18 1.2317085426829267E7 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2000002.0 -byte cputc::c#2 reg byte a 20002.0 -byte cputc::c#3 reg byte a 1.0505002E7 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:12 837989.43575419 +__loadstore char conio_cursor_y // zp[1]:13 1.6410256964102566E7 +__loadstore char *conio_line_color // zp[2]:16 1.1818182395721925E7 +__loadstore char *conio_line_text // zp[2]:14 1.1693122264550265E7 +__loadstore char conio_textcolor // zp[1]:18 1.2317085426829267E7 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2000002.0 +char cputc::c#2 // reg byte a 20002.0 +char cputc::c#3 // reg byte a 1.0505002E7 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1000001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:6 500000.5 -const byte* cputs::s#10 s zp[2]:6 101002.0 -const byte* cputs::s#2 s zp[2]:6 2002.0 -const byte* cputs::s#9 s zp[2]:6 1550002.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1000001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:6 500000.5 +const char *cputs::s#10 // s zp[2]:6 101002.0 +const char *cputs::s#2 // s zp[2]:6 2002.0 +const char *cputs::s#9 // s zp[2]:6 1550002.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:23 202.0 -byte*~ gotoxy::$6 zp[2]:19 202.0 -word~ gotoxy::$7 zp[2]:19 151.5 -word~ gotoxy::$8 zp[2]:21 202.0 -word~ gotoxy::$9 zp[2]:19 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:19 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:23 202.0 +char *gotoxy::$6 // zp[2]:19 202.0 +unsigned int gotoxy::$7 // zp[2]:19 151.5 +unsigned int gotoxy::$8 // zp[2]:21 202.0 +unsigned int gotoxy::$9 // zp[2]:19 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:19 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::$35[4] = "aba" -constant byte* main::$38[3] = "xy" -constant byte* main::$39[3] = "xz" -constant byte* main::message[$d] = "a2 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::$35 [phi:main::@27->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::$35 [phi:main::@27->memcmp#1] -- pvoz1=pvoc1 lda #<__35 sta.z memcmp.str2 lda #>__35 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::str12 [phi:main::@27->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::str12 [phi:main::@27->memcmp#2] -- pvoz1=pvoc1 lda #str12 @@ -9474,12 +9475,12 @@ main: { sta.z memcmp.n lda #>2 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::str13 [phi:main::@29->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::str13 [phi:main::@29->memcmp#1] -- pvoz1=pvoc1 lda #str13 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::str13 [phi:main::@29->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::str13 [phi:main::@29->memcmp#2] -- pvoz1=pvoc1 lda #str13 @@ -9514,12 +9515,12 @@ main: { sta.z memcmp.n lda #>1 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::$39 [phi:main::@31->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::$39 [phi:main::@31->memcmp#1] -- pvoz1=pvoc1 lda #<__39 sta.z memcmp.str2 lda #>__39 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::$38 [phi:main::@31->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::$38 [phi:main::@31->memcmp#2] -- pvoz1=pvoc1 lda #<__38 sta.z memcmp.str1 lda #>__38 @@ -9554,12 +9555,12 @@ main: { sta.z memcmp.n lda #>4 sta.z memcmp.n+1 - // [176] phi memcmp::str2#4 = (const void*)main::str111 [phi:main::@33->memcmp#1] -- pvoz1=pvoc1 + // [176] phi memcmp::str2#4 = (const void *)main::str111 [phi:main::@33->memcmp#1] -- pvoz1=pvoc1 lda #str111 sta.z memcmp.str2+1 - // [176] phi memcmp::str1#4 = (const void*)main::str14 [phi:main::@33->memcmp#2] -- pvoz1=pvoc1 + // [176] phi memcmp::str1#4 = (const void *)main::str14 [phi:main::@33->memcmp#2] -- pvoz1=pvoc1 lda #str14 @@ -9673,7 +9674,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $17 @@ -9704,7 +9705,7 @@ gotoxy: { // [107] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [108] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [108] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -9775,6 +9776,7 @@ gotoxy: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. +// __zp($1a) int strcmp(const char *str1, const char *str2) strcmp: { .label s1 = 4 .label s2 = 6 @@ -9797,7 +9799,7 @@ strcmp: { sec sbc (s2),y // return (int)(signed char)(*s1-*s2); - // [121] strcmp::return#0 = (signed word)(signed byte)strcmp::$0 -- vwsz1=_sword_vbsaa + // [121] strcmp::return#0 = (int)(signed char)strcmp::$0 -- vwsz1=_sword_vbsaa sta.z return ora #$7f bmi !+ @@ -9841,7 +9843,7 @@ strcmp: { jmp __b1 } // assert_cmp -// assert_cmp(signed byte zp(2) expect, signed byte zp(3) actual, byte* zp(4) message) +// void assert_cmp(__zp(2) signed char expect, __zp(3) signed char actual, __zp(4) char *message) assert_cmp: { .label actual = 3 .label expect = 2 @@ -9886,7 +9888,7 @@ assert_cmp: { rol !a: // ok = (char)(actual>0) - // [132] assert_cmp::ok#3 = (byte)assert_cmp::$2 + // [132] assert_cmp::ok#3 = (char)assert_cmp::$2 // [133] phi from assert_cmp::@4 assert_cmp::@5 assert_cmp::@6 to assert_cmp::@7 [phi:assert_cmp::@4/assert_cmp::@5/assert_cmp::@6->assert_cmp::@7] // [133] phi assert_cmp::ok#4 = assert_cmp::ok#1 [phi:assert_cmp::@4/assert_cmp::@5/assert_cmp::@6->assert_cmp::@7#0] -- register_copy jmp __b7 @@ -10029,7 +10031,7 @@ assert_cmp: { !: eor #1 // ok = (char)(actual==0) - // [161] assert_cmp::ok#2 = (byte)assert_cmp::$1 + // [161] assert_cmp::ok#2 = (char)assert_cmp::$1 jmp __b7 // assert_cmp::@4 __b4: @@ -10045,7 +10047,7 @@ assert_cmp: { lda #0 rol // ok = (char)(actual<0) - // [163] assert_cmp::ok#1 = (byte)assert_cmp::$0 + // [163] assert_cmp::ok#1 = (char)assert_cmp::$0 jmp __b7 .segment Data s: .text "ok! " @@ -10068,7 +10070,7 @@ assert_cmp: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -// strncmp(word zp(4) n) +// __zp($a) int strncmp(const char *str1, const char *str2, __zp(4) unsigned int n) strncmp: { .label s1 = 6 .label s2 = $1a @@ -10093,7 +10095,7 @@ strncmp: { sec sbc (s2),y // return (int)(signed char)(*s1-*s2); - // [168] strncmp::return#0 = (signed word)(signed byte)strncmp::$0 -- vwsz1=_sword_vbsaa + // [168] strncmp::return#0 = (int)(signed char)strncmp::$0 -- vwsz1=_sword_vbsaa sta.z return ora #$7f bmi !+ @@ -10156,7 +10158,7 @@ strncmp: { /// @return if Return value < 0 then it indicates str1 is less than str2. /// if Return value > 0 then it indicates str2 is less than str1. /// if Return value = 0 then it indicates str1 is equal to str2. -// memcmp(const void* zp(4) str1, const void* zp($a) str2, word zp(6) n) +// __zp($1a) int memcmp(__zp(4) const void *str1, __zp($a) const void *str2, __zp(6) unsigned int n) memcmp: { .label n = 6 .label s1 = 4 @@ -10164,8 +10166,8 @@ memcmp: { .label return = $1a .label str1 = 4 .label str2 = $a - // [177] memcmp::s1#6 = (byte*)memcmp::str1#4 - // [178] memcmp::s2#6 = (byte*)memcmp::str2#4 + // [177] memcmp::s1#6 = (char *)memcmp::str1#4 + // [178] memcmp::s2#6 = (char *)memcmp::str2#4 // [179] phi from memcmp memcmp::@3 to memcmp::@1 [phi:memcmp/memcmp::@3->memcmp::@1] // [179] phi memcmp::s2#2 = memcmp::s2#6 [phi:memcmp/memcmp::@3->memcmp::@1#0] -- register_copy // [179] phi memcmp::s1#2 = memcmp::s1#6 [phi:memcmp/memcmp::@3->memcmp::@1#1] -- register_copy @@ -10201,7 +10203,7 @@ memcmp: { sec sbc (s2),y // return (int)(signed char)(*s1-*s2); - // [185] memcmp::return#1 = (signed word)(signed byte)memcmp::$3 -- vwsz1=_sword_vbsaa + // [185] memcmp::return#1 = (int)(signed char)memcmp::$3 -- vwsz1=_sword_vbsaa sta.z return ora #$7f bmi !+ @@ -10234,7 +10236,7 @@ memcmp: { } // textcolor // Set the color for text output. The old color setting is returned. -// textcolor(byte register(A) color) +// char textcolor(__register(A) char color) textcolor: { // conio_textcolor = color // [190] conio_textcolor = textcolor::color#2 -- vbuz1=vbuaa @@ -10246,7 +10248,7 @@ textcolor: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(6) s) +// void cputs(__zp(6) const char *s) cputs: { .label s = 6 // [193] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -10281,10 +10283,10 @@ cputs: { } // printf_schar // Print a signed char using a specific format -// printf_schar(signed byte register(X) value) +// void printf_schar(__register(X) signed char value, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_schar: { // printf_buffer.sign = 0 - // [201] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [201] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer @@ -10305,19 +10307,19 @@ printf_schar: { adc #1 tax // printf_buffer.sign = '-' - // [204] *((byte*)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 + // [204] *((char *)&printf_buffer) = '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer // printf_schar::@2 __b2: // uctoa(uvalue, printf_buffer.digits, format.radix) - // [206] uctoa::value#1 = (byte)printf_schar::value#5 + // [206] uctoa::value#1 = (char)printf_schar::value#5 // [207] call uctoa // [226] phi from printf_schar::@2 to uctoa [phi:printf_schar::@2->uctoa] jsr uctoa // printf_schar::@3 // printf_number_buffer(printf_buffer, format) - // [208] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [208] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer // [209] call printf_number_buffer // Print using format @@ -10331,7 +10333,7 @@ printf_schar: { // printf_string // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(4) str) +// void printf_string(__zp(4) char *str, char format_min_length, char format_justify_left) printf_string: { .label str = 4 // printf_string::@1 @@ -10353,7 +10355,7 @@ printf_string: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [216] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -10399,14 +10401,14 @@ cputc: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte register(X) value, byte* zp($1a) buffer) +// void uctoa(__register(X) char value, __zp($1a) char *buffer, char radix) uctoa: { .label digit_value = $19 .label buffer = $1a .label digit = 8 .label started = 9 // [227] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] - // [227] phi uctoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [227] phi uctoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -10506,7 +10508,7 @@ uctoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // printf_number_buffer::@1 @@ -10583,7 +10585,7 @@ cputln: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp($1a) buffer, byte register(X) value, byte zp($19) sub) +// __register(X) char uctoa_append(__zp($1a) char *buffer, __register(X) char value, __zp($19) char sub) uctoa_append: { .label buffer = $1a .label sub = $19 @@ -10636,12 +10638,12 @@ cscroll: { // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) // [267] call memcpy // [278] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [278] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [278] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [278] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [278] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -10652,12 +10654,12 @@ cscroll: { // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) // [269] call memcpy // [278] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [278] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [278] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [278] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [278] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -10670,7 +10672,7 @@ cscroll: { // [288] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [288] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [288] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [288] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -10683,7 +10685,7 @@ cscroll: { // [273] call memset // [288] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [288] phi memset::c#4 = memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy - // [288] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [288] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -10720,7 +10722,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($1c) destination, void* zp($a) source) +// void * memcpy(__zp($1c) void *destination, __zp($a) void *source, unsigned int num) memcpy: { .label src_end = $1a .label dst = $1c @@ -10728,7 +10730,7 @@ memcpy: { .label source = $a .label destination = $1c // char* src_end = (char*)source+num - // [279] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [279] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -10736,8 +10738,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [280] memcpy::src#4 = (byte*)memcpy::source#2 - // [281] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [280] memcpy::src#4 = (char *)memcpy::source#2 + // [281] memcpy::dst#4 = (char *)memcpy::destination#2 // [282] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [282] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [282] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -10777,14 +10779,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($a) str, byte register(X) c) +// void * memset(__zp($a) void *str, __register(X) char c, unsigned int num) memset: { .label end = $1c .label dst = $a .label str = $a // memset::@1 // char* end = (char*)str + num - // [289] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [289] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -10792,7 +10794,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [290] memset::dst#4 = (byte*)memset::str#3 + // [290] memset::dst#4 = (char *)memset::str#3 // [291] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [291] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/strcmp-0.sym b/src/test/ref/strcmp-0.sym index 3eaafc4ca..1b2c47ab0 100644 --- a/src/test/ref/strcmp-0.sym +++ b/src/test/ref/strcmp-0.sym @@ -1,319 +1,319 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte GREEN = 5 -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte* RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } -constant const byte RED = 2 -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char GREEN = 5 +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char RADIX_DECIMAL_VALUES_CHAR[] = { $64, $a } +__constant const char RED = 2 +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c void __start() -void assert_cmp(signed byte assert_cmp::expect , signed byte assert_cmp::actual , byte* assert_cmp::message) -bool~ assert_cmp::$0 reg byte a 101.0 -bool~ assert_cmp::$1 reg byte a 101.0 -bool~ assert_cmp::$2 reg byte a 101.0 -signed byte assert_cmp::actual -signed byte assert_cmp::actual#0 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#1 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#10 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#11 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#12 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#13 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#14 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#15 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#16 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#17 actual zp[1]:3 29.55 -signed byte assert_cmp::actual#2 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#3 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#4 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#5 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#6 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#7 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#8 actual zp[1]:3 22.0 -signed byte assert_cmp::actual#9 actual zp[1]:3 22.0 -signed byte assert_cmp::expect -signed byte assert_cmp::expect#17 expect zp[1]:2 25.25 -byte* assert_cmp::message -byte* assert_cmp::message#17 message zp[2]:4 7.214285714285714 -byte assert_cmp::ok -byte assert_cmp::ok#1 reg byte a 202.0 -byte assert_cmp::ok#2 reg byte a 202.0 -byte assert_cmp::ok#3 reg byte a 202.0 -byte assert_cmp::ok#4 reg byte a 404.0 -constant byte* assert_cmp::s[5] = "ok! " -constant byte* assert_cmp::s1[2] = " +void assert_cmp(signed char expect , signed char actual , char *message) +bool assert_cmp::$0 // reg byte a 101.0 +bool assert_cmp::$1 // reg byte a 101.0 +bool assert_cmp::$2 // reg byte a 101.0 +signed char assert_cmp::actual +signed char assert_cmp::actual#0 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#1 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#10 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#11 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#12 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#13 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#14 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#15 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#16 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#17 // actual zp[1]:3 29.55 +signed char assert_cmp::actual#2 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#3 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#4 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#5 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#6 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#7 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#8 // actual zp[1]:3 22.0 +signed char assert_cmp::actual#9 // actual zp[1]:3 22.0 +signed char assert_cmp::expect +signed char assert_cmp::expect#17 // expect zp[1]:2 25.25 +char *assert_cmp::message +char *assert_cmp::message#17 // message zp[2]:4 7.214285714285714 +char assert_cmp::ok +char assert_cmp::ok#1 // reg byte a 202.0 +char assert_cmp::ok#2 // reg byte a 202.0 +char assert_cmp::ok#3 // reg byte a 202.0 +char assert_cmp::ok#4 // reg byte a 404.0 +__constant char assert_cmp::s[5] = "ok! " +__constant char assert_cmp::s1[2] = " " -constant byte* assert_cmp::s2[$19] = "Assert failed. expected:" -constant byte* assert_cmp::s3[9] = " actual:" -constant byte* assert_cmp::s4[3] = ". " +__constant char assert_cmp::s2[$19] = "Assert failed. expected:" +__constant char assert_cmp::s3[9] = " actual:" +__constant char assert_cmp::s4[3] = ". " void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:12 837989.43575419 -byte conio_cursor_y loadstore zp[1]:13 1.6410256964102566E7 -byte* conio_line_color loadstore zp[2]:16 1.1818182395721925E7 -byte* conio_line_text loadstore zp[2]:14 1.1693122264550265E7 -byte conio_textcolor loadstore zp[1]:18 1.2317085426829267E7 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2000002.0 -byte cputc::c#2 reg byte a 20002.0 -byte cputc::c#3 reg byte a 1.0505002E7 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:12 837989.43575419 +__loadstore char conio_cursor_y // zp[1]:13 1.6410256964102566E7 +__loadstore char *conio_line_color // zp[2]:16 1.1818182395721925E7 +__loadstore char *conio_line_text // zp[2]:14 1.1693122264550265E7 +__loadstore char conio_textcolor // zp[1]:18 1.2317085426829267E7 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2000002.0 +char cputc::c#2 // reg byte a 20002.0 +char cputc::c#3 // reg byte a 1.0505002E7 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1000001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:6 500000.5 -const byte* cputs::s#10 s zp[2]:6 101002.0 -const byte* cputs::s#2 s zp[2]:6 2002.0 -const byte* cputs::s#9 s zp[2]:6 1550002.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1000001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:6 500000.5 +const char *cputs::s#10 // s zp[2]:6 101002.0 +const char *cputs::s#2 // s zp[2]:6 2002.0 +const char *cputs::s#9 // s zp[2]:6 1550002.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:23 202.0 -byte*~ gotoxy::$6 zp[2]:19 202.0 -word~ gotoxy::$7 zp[2]:19 151.5 -word~ gotoxy::$8 zp[2]:21 202.0 -word~ gotoxy::$9 zp[2]:19 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:19 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:23 202.0 +char *gotoxy::$6 // zp[2]:19 202.0 +unsigned int gotoxy::$7 // zp[2]:19 151.5 +unsigned int gotoxy::$8 // zp[2]:21 202.0 +unsigned int gotoxy::$9 // zp[2]:19 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:19 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -constant byte* main::$35[4] = "aba" -constant byte* main::$38[3] = "xy" -constant byte* main::$39[3] = "xz" -constant byte* main::message[$d] = "astr_cpy] str_cpy_from_main: // [5] phi str_cpy::dst#4 = dst1 [phi:main->str_cpy#0] -- pbuz1=pbuc1 @@ -234,7 +234,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call str_cpy + // [3] call str_cpy // [5] phi from main::@1 to str_cpy [phi:main::@1->str_cpy] str_cpy_from___b1: // [5] phi str_cpy::dst#4 = dst2 [phi:main::@1->str_cpy#0] -- pbuz1=pbuc1 @@ -261,7 +261,7 @@ main: { } .segment Code // str_cpy -// str_cpy(byte* zp(4) dst, const byte* zp(2) src) +// void str_cpy(__zp(4) char *dst, __zp(2) const char *src) str_cpy: { .label dst = 4 .label src = 2 @@ -324,21 +324,21 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* dst1 = (byte*) 1024 -constant byte* dst2 = (byte*) 1064 +__constant char *dst1 = (char *) 1024 +__constant char *dst2 = (char *) 1064 void main() -constant byte* main::src[6] = "hello" -constant byte* main::src1[6] = "world" -void str_cpy(byte* str_cpy::dst , const byte* str_cpy::src) -byte~ str_cpy::$0 reg byte a 67.33333333333333 -byte* str_cpy::dst -byte* str_cpy::dst#0 dst zp[2]:4 67.33333333333333 -byte* str_cpy::dst#3 dst zp[2]:4 138.33333333333331 -byte* str_cpy::dst#4 dst zp[2]:4 11.0 -const byte* str_cpy::src -const byte* str_cpy::src#0 src zp[2]:2 101.0 -const byte* str_cpy::src#3 src zp[2]:2 78.5 -const byte* str_cpy::src#4 src zp[2]:2 11.0 +__constant char main::src[6] = "hello" +__constant char main::src1[6] = "world" +void str_cpy(char *dst , const char *src) +char str_cpy::$0 // reg byte a 67.33333333333333 +char *str_cpy::dst +char *str_cpy::dst#0 // dst zp[2]:4 67.33333333333333 +char *str_cpy::dst#3 // dst zp[2]:4 138.33333333333331 +char *str_cpy::dst#4 // dst zp[2]:4 11.0 +const char *str_cpy::src +const char *str_cpy::src#0 // src zp[2]:2 101.0 +const char *str_cpy::src#3 // src zp[2]:2 78.5 +const char *str_cpy::src#4 // src zp[2]:2 11.0 zp[2]:2 [ str_cpy::src#3 str_cpy::src#4 str_cpy::src#0 ] zp[2]:4 [ str_cpy::dst#3 str_cpy::dst#4 str_cpy::dst#0 ] @@ -365,7 +365,7 @@ Score: 549 // main main: { // str_cpy(dst1, "hello") - // [1] call str_cpy + // [1] call str_cpy // [5] phi from main to str_cpy [phi:main->str_cpy] // [5] phi str_cpy::dst#4 = dst1 [phi:main->str_cpy#0] -- pbuz1=pbuc1 lda #main::@1] // main::@1 // str_cpy(dst2, "world") - // [3] call str_cpy + // [3] call str_cpy // [5] phi from main::@1 to str_cpy [phi:main::@1->str_cpy] // [5] phi str_cpy::dst#4 = dst2 [phi:main::@1->str_cpy#0] -- pbuz1=pbuc1 lda #print] print_from_main: - // [7] phi screen#20 = (byte*) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + // [7] phi screen#20 = (char *) 1024 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -283,7 +283,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [7] phi screen#20 = screen#13 [phi:main::@1->print#0] -- register_copy @@ -293,7 +293,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] print_from___b2: // [7] phi screen#20 = screen#13 [phi:main::@2->print#0] -- register_copy @@ -309,7 +309,7 @@ main: { } .segment Code // print -// print(byte* zp(4) string) +// void print(__zp(4) char *string) print: { .label string = 4 // [8] phi from print to print::@1 [phi:print->print::@1] @@ -383,15 +383,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::rex1[] = "rex" -void print(byte* print::string) -byte* print::string -byte* print::string#3 string zp[2]:4 202.0 -byte* print::string#4 string zp[2]:4 101.0 -byte* screen -byte* screen#13 screen zp[2]:2 39.75 -byte* screen#20 screen zp[2]:2 15.0 -byte* screen#4 screen zp[2]:2 101.0 +__constant char main::rex1[] = "rex" +void print(char *string) +char *print::string +char *print::string#3 // string zp[2]:4 202.0 +char *print::string#4 // string zp[2]:4 101.0 +char *screen +char *screen#13 // screen zp[2]:2 39.75 +char *screen#20 // screen zp[2]:2 15.0 +char *screen#4 // screen zp[2]:2 101.0 zp[2]:2 [ screen#20 screen#13 screen#4 ] zp[2]:4 [ print::string#4 print::string#3 ] @@ -417,9 +417,9 @@ Score: 675 // main main: { // print(rex1) - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] - // [7] phi screen#20 = (byte*) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + // [7] phi screen#20 = (char *) 1024 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -428,14 +428,14 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(rex2) - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] // [7] phi screen#20 = screen#13 [phi:main::@1->print#0] -- register_copy jsr print // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print("rex") - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] // [7] phi screen#20 = screen#13 [phi:main::@2->print#0] -- register_copy jsr print @@ -449,7 +449,7 @@ main: { } .segment Code // print -// print(byte* zp(4) string) +// void print(__zp(4) char *string) print: { .label string = 4 // [8] phi from print to print::@1 [phi:print->print::@1] diff --git a/src/test/ref/string-const-consolidation-noroot.sym b/src/test/ref/string-const-consolidation-noroot.sym index 4f165cdb5..a87c6c61e 100644 --- a/src/test/ref/string-const-consolidation-noroot.sym +++ b/src/test/ref/string-const-consolidation-noroot.sym @@ -1,13 +1,13 @@ void main() -constant byte* main::rex1[] = "rex" -void print(byte* print::string) -byte* print::string -byte* print::string#3 string zp[2]:4 202.0 -byte* print::string#4 string zp[2]:4 101.0 -byte* screen -byte* screen#13 screen zp[2]:2 39.75 -byte* screen#20 screen zp[2]:2 15.0 -byte* screen#4 screen zp[2]:2 101.0 +__constant char main::rex1[] = "rex" +void print(char *string) +char *print::string +char *print::string#3 // string zp[2]:4 202.0 +char *print::string#4 // string zp[2]:4 101.0 +char *screen +char *screen#13 // screen zp[2]:2 39.75 +char *screen#20 // screen zp[2]:2 15.0 +char *screen#4 // screen zp[2]:2 101.0 zp[2]:2 [ screen#20 screen#13 screen#4 ] zp[2]:4 [ print::string#4 print::string#3 ] diff --git a/src/test/ref/string-const-consolidation-root.asm b/src/test/ref/string-const-consolidation-root.asm index e64559d85..cb6f61876 100644 --- a/src/test/ref/string-const-consolidation-root.asm +++ b/src/test/ref/string-const-consolidation-root.asm @@ -65,7 +65,7 @@ print2: { // } rts } -// print(byte* zp(4) s) +// void print(__zp(4) char *s) print: { .label s = 4 __b1: diff --git a/src/test/ref/string-const-consolidation-root.cfg b/src/test/ref/string-const-consolidation-root.cfg index f90ae9900..9e374434e 100644 --- a/src/test/ref/string-const-consolidation-root.cfg +++ b/src/test/ref/string-const-consolidation-root.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] phi() - [1] call print1 + [1] call print1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print2 + [3] call print2 to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -15,15 +15,15 @@ main::@return: scope:[main] from main::@1 void print1() print1: scope:[print1] from main [5] phi() - [6] call print + [6] call print to:print1::@1 print1::@1: scope:[print1] from print1 [7] phi() - [8] call print + [8] call print to:print1::@2 print1::@2: scope:[print1] from print1::@1 [9] phi() - [10] call print + [10] call print to:print1::@return print1::@return: scope:[print1] from print1::@2 [11] return @@ -32,23 +32,23 @@ print1::@return: scope:[print1] from print1::@2 void print2() print2: scope:[print2] from main::@1 [12] phi() - [13] call print + [13] call print to:print2::@1 print2::@1: scope:[print2] from print2 [14] phi() - [15] call print + [15] call print to:print2::@2 print2::@2: scope:[print2] from print2::@1 [16] phi() - [17] call print + [17] call print to:print2::@return print2::@return: scope:[print2] from print2::@2 [18] return to:@return -void print(byte* print::s) +void print(char *s) print: scope:[print] from print1 print1::@1 print1::@2 print2 print2::@1 print2::@2 - [19] screen#36 = phi( print1/(byte*) 1024, print1::@1/screen#12, print1::@2/screen#12, print2/screen#12, print2::@1/screen#12, print2::@2/screen#12 ) + [19] screen#36 = phi( print1/(char *) 1024, print1::@1/screen#12, print1::@2/screen#12, print2/screen#12, print2::@1/screen#12, print2::@2/screen#12 ) [19] print::s#9 = phi( print1/string_0, print1::@1/string_1, print1::@2/s, print2/string_0, print2::@1/string_1, print2::@2/s1 ) to:print::@1 print::@1: scope:[print] from print print::@2 diff --git a/src/test/ref/string-const-consolidation-root.log b/src/test/ref/string-const-consolidation-root.log index 4dc6bd13b..9629a845a 100644 --- a/src/test/ref/string-const-consolidation-root.log +++ b/src/test/ref/string-const-consolidation-root.log @@ -1,16 +1,16 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 screen#31 = phi( __start::@1/screen#35 ) - call print1 + call print1 to:main::@1 main::@1: scope:[main] from main screen#16 = phi( main/screen#6 ) screen#0 = screen#16 - call print2 + call print2 to:main::@2 main::@2: scope:[main] from main::@1 screen#17 = phi( main::@1/screen#10 ) @@ -26,19 +26,19 @@ void print1() print1: scope:[print1] from main screen#32 = phi( main/screen#31 ) print::s#0 = print1::s - call print + call print to:print1::@1 print1::@1: scope:[print1] from print1 screen#19 = phi( print1/screen#12 ) screen#3 = screen#19 print::s#1 = print1::s1 - call print + call print to:print1::@2 print1::@2: scope:[print1] from print1::@1 screen#20 = phi( print1::@1/screen#12 ) screen#4 = screen#20 print::s#2 = s - call print + call print to:print1::@3 print1::@3: scope:[print1] from print1::@2 screen#21 = phi( print1::@2/screen#12 ) @@ -54,19 +54,19 @@ void print2() print2: scope:[print2] from main::@1 screen#33 = phi( main::@1/screen#0 ) print::s#3 = print2::s - call print + call print to:print2::@1 print2::@1: scope:[print2] from print2 screen#23 = phi( print2/screen#12 ) screen#7 = screen#23 print::s#4 = print2::s1 - call print + call print to:print2::@2 print2::@2: scope:[print2] from print2::@1 screen#24 = phi( print2::@1/screen#12 ) screen#8 = screen#24 print::s#5 = s1 - call print + call print to:print2::@3 print2::@3: scope:[print2] from print2::@2 screen#25 = phi( print2::@2/screen#12 ) @@ -78,7 +78,7 @@ print2::@return: scope:[print2] from print2::@3 return to:@return -void print(byte* print::s) +void print(char *s) print: scope:[print] from print1 print1::@1 print1::@2 print2 print2::@1 print2::@2 screen#36 = phi( print1/screen#32, print1::@1/screen#3, print1::@2/screen#4, print2/screen#33, print2::@1/screen#7, print2::@2/screen#8 ) print::s#9 = phi( print1/print::s#0, print1::@1/print::s#1, print1::@2/print::s#2, print2/print::s#3, print2::@1/print::s#4, print2::@2/print::s#5 ) @@ -106,11 +106,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#13 = (byte*)$400 + screen#13 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#35 = phi( __start::__init1/screen#13 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#29 = phi( __start::@1/screen#2 ) @@ -125,72 +125,72 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -void print(byte* print::s) -bool~ print::$0 -byte* print::s -byte* print::s#0 -byte* print::s#1 -byte* print::s#2 -byte* print::s#3 -byte* print::s#4 -byte* print::s#5 -byte* print::s#6 -byte* print::s#7 -byte* print::s#8 -byte* print::s#9 +void print(char *s) +bool print::$0 +char *print::s +char *print::s#0 +char *print::s#1 +char *print::s#2 +char *print::s#3 +char *print::s#4 +char *print::s#5 +char *print::s#6 +char *print::s#7 +char *print::s#8 +char *print::s#9 void print1() -constant byte* print1::s[8] = "string1" -constant byte* print1::s1[8] = "string2" +__constant char print1::s[8] = "string1" +__constant char print1::s1[8] = "string2" void print2() -constant byte* print2::s[8] = "string1" -constant byte* print2::s1[8] = "string2" -constant byte* s = "string3" -constant byte* s1 = "string4" -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#11 -byte* screen#12 -byte* screen#13 -byte* screen#14 -byte* screen#15 -byte* screen#16 -byte* screen#17 -byte* screen#18 -byte* screen#19 -byte* screen#2 -byte* screen#20 -byte* screen#21 -byte* screen#22 -byte* screen#23 -byte* screen#24 -byte* screen#25 -byte* screen#26 -byte* screen#27 -byte* screen#28 -byte* screen#29 -byte* screen#3 -byte* screen#30 -byte* screen#31 -byte* screen#32 -byte* screen#33 -byte* screen#34 -byte* screen#35 -byte* screen#36 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 +__constant char print2::s[8] = "string1" +__constant char print2::s1[8] = "string2" +__constant char *s = "string3" +__constant char *s1 = "string4" +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#11 +char *screen#12 +char *screen#13 +char *screen#14 +char *screen#15 +char *screen#16 +char *screen#17 +char *screen#18 +char *screen#19 +char *screen#2 +char *screen#20 +char *screen#21 +char *screen#22 +char *screen#23 +char *screen#24 +char *screen#25 +char *screen#26 +char *screen#27 +char *screen#28 +char *screen#29 +char *screen#3 +char *screen#30 +char *screen#31 +char *screen#32 +char *screen#33 +char *screen#34 +char *screen#35 +char *screen#36 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 Adding number conversion cast (unumber) 0 in print::$0 = 0 != *print::s#7 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias screen#0 = screen#16 Alias screen#1 = screen#17 screen#18 screen#2 @@ -226,7 +226,7 @@ Constant print::s#2 = s Constant print::s#3 = print2::s Constant print::s#4 = print2::s1 Constant print::s#5 = s1 -Constant screen#13 = (byte*) 1024 +Constant screen#13 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Consolidated constant strings into string_0 Consolidated constant strings into string_1 @@ -253,7 +253,7 @@ Constant inlined print::s#3 = string_0 Constant inlined print::s#2 = s Constant inlined print::s#1 = string_1 Constant inlined print2::s = string_0 -Constant inlined screen#13 = (byte*) 1024 +Constant inlined screen#13 = (char *) 1024 Constant inlined print::s#5 = s1 Constant inlined print1::s = string_0 Successful SSA optimization Pass2ConstantInlining @@ -296,11 +296,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print1 + [1] call print1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print2 + [3] call print2 to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -309,15 +309,15 @@ main::@return: scope:[main] from main::@1 void print1() print1: scope:[print1] from main [5] phi() - [6] call print + [6] call print to:print1::@1 print1::@1: scope:[print1] from print1 [7] phi() - [8] call print + [8] call print to:print1::@2 print1::@2: scope:[print1] from print1::@1 [9] phi() - [10] call print + [10] call print to:print1::@return print1::@return: scope:[print1] from print1::@2 [11] return @@ -326,23 +326,23 @@ print1::@return: scope:[print1] from print1::@2 void print2() print2: scope:[print2] from main::@1 [12] phi() - [13] call print + [13] call print to:print2::@1 print2::@1: scope:[print2] from print2 [14] phi() - [15] call print + [15] call print to:print2::@2 print2::@2: scope:[print2] from print2::@1 [16] phi() - [17] call print + [17] call print to:print2::@return print2::@return: scope:[print2] from print2::@2 [18] return to:@return -void print(byte* print::s) +void print(char *s) print: scope:[print] from print1 print1::@1 print1::@2 print2 print2::@1 print2::@2 - [19] screen#36 = phi( print1/(byte*) 1024, print1::@1/screen#12, print1::@2/screen#12, print2/screen#12, print2::@1/screen#12, print2::@2/screen#12 ) + [19] screen#36 = phi( print1/(char *) 1024, print1::@1/screen#12, print1::@2/screen#12, print2/screen#12, print2::@1/screen#12, print2::@2/screen#12 ) [19] print::s#9 = phi( print1/string_0, print1::@1/string_1, print1::@2/s, print2/string_0, print2::@1/string_1, print2::@2/s1 ) to:print::@1 print::@1: scope:[print] from print print::@2 @@ -362,17 +362,17 @@ print::@2: scope:[print] from print::@1 VARIABLE REGISTER WEIGHTS void main() -void print(byte* print::s) -byte* print::s -byte* print::s#6 2002.0 -byte* print::s#7 1026.25 -byte* print::s#9 101.0 +void print(char *s) +char *print::s +char *print::s#6 // 2002.0 +char *print::s#7 // 1026.25 +char *print::s#9 // 101.0 void print1() void print2() -byte* screen -byte* screen#11 1001.0 -byte* screen#12 185.8235294117647 -byte* screen#36 156.0 +char *screen +char *screen#11 // 1001.0 +char *screen#12 // 185.8235294117647 +char *screen#36 // 156.0 Initial phi equivalence classes [ screen#36 screen#12 screen#11 ] @@ -418,7 +418,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print1 + // [1] call print1 // [5] phi from main to print1 [phi:main->print1] print1_from_main: jsr print1 @@ -427,7 +427,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print2 + // [3] call print2 // [12] phi from main::@1 to print2 [phi:main::@1->print2] print2_from___b1: jsr print2 @@ -439,10 +439,10 @@ main: { } // print1 print1: { - // [6] call print + // [6] call print // [19] phi from print1 to print [phi:print1->print] print_from_print1: - // [19] phi screen#36 = (byte*) 1024 [phi:print1->print#0] -- pbuz1=pbuc1 + // [19] phi screen#36 = (char *) 1024 [phi:print1->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -458,7 +458,7 @@ print1: { jmp __b1 // print1::@1 __b1: - // [8] call print + // [8] call print // [19] phi from print1::@1 to print [phi:print1::@1->print] print_from___b1: // [19] phi screen#36 = screen#12 [phi:print1::@1->print#0] -- register_copy @@ -473,7 +473,7 @@ print1: { jmp __b2 // print1::@2 __b2: - // [10] call print + // [10] call print // [19] phi from print1::@2 to print [phi:print1::@2->print] print_from___b2: // [19] phi screen#36 = screen#12 [phi:print1::@2->print#0] -- register_copy @@ -491,7 +491,7 @@ print1: { } // print2 print2: { - // [13] call print + // [13] call print // [19] phi from print2 to print [phi:print2->print] print_from_print2: // [19] phi screen#36 = screen#12 [phi:print2->print#0] -- register_copy @@ -506,7 +506,7 @@ print2: { jmp __b1 // print2::@1 __b1: - // [15] call print + // [15] call print // [19] phi from print2::@1 to print [phi:print2::@1->print] print_from___b1: // [19] phi screen#36 = screen#12 [phi:print2::@1->print#0] -- register_copy @@ -521,7 +521,7 @@ print2: { jmp __b2 // print2::@2 __b2: - // [17] call print + // [17] call print // [19] phi from print2::@2 to print [phi:print2::@2->print] print_from___b2: // [19] phi screen#36 = screen#12 [phi:print2::@2->print#0] -- register_copy @@ -538,7 +538,7 @@ print2: { rts } // print -// print(byte* zp(4) s) +// void print(__zp(4) char *s) print: { .label s = 4 // [20] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] @@ -633,21 +633,21 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -void print(byte* print::s) -byte* print::s -byte* print::s#6 s zp[2]:4 2002.0 -byte* print::s#7 s zp[2]:4 1026.25 -byte* print::s#9 s zp[2]:4 101.0 +void print(char *s) +char *print::s +char *print::s#6 // s zp[2]:4 2002.0 +char *print::s#7 // s zp[2]:4 1026.25 +char *print::s#9 // s zp[2]:4 101.0 void print1() void print2() -constant byte* s = "string3" -constant byte* s1 = "string4" -byte* screen -byte* screen#11 screen zp[2]:2 1001.0 -byte* screen#12 screen zp[2]:2 185.8235294117647 -byte* screen#36 screen zp[2]:2 156.0 -constant byte* string_0[8] = "string1" -constant byte* string_1[8] = "string2" +__constant char *s = "string3" +__constant char *s1 = "string4" +char *screen +char *screen#11 // screen zp[2]:2 1001.0 +char *screen#12 // screen zp[2]:2 185.8235294117647 +char *screen#36 // screen zp[2]:2 156.0 +__constant char string_0[8] = "string1" +__constant char string_1[8] = "string2" zp[2]:2 [ screen#36 screen#12 screen#11 ] zp[2]:4 [ print::s#7 print::s#9 print::s#6 ] @@ -673,13 +673,13 @@ Score: 677 // main main: { // print1() - // [1] call print1 + // [1] call print1 // [5] phi from main to print1 [phi:main->print1] jsr print1 // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print2() - // [3] call print2 + // [3] call print2 // [12] phi from main::@1 to print2 [phi:main::@1->print2] jsr print2 // main::@return @@ -690,9 +690,9 @@ main: { // print1 print1: { // print("string1") - // [6] call print + // [6] call print // [19] phi from print1 to print [phi:print1->print] - // [19] phi screen#36 = (byte*) 1024 [phi:print1->print#0] -- pbuz1=pbuc1 + // [19] phi screen#36 = (char *) 1024 [phi:print1->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -706,7 +706,7 @@ print1: { // [7] phi from print1 to print1::@1 [phi:print1->print1::@1] // print1::@1 // print("string2") - // [8] call print + // [8] call print // [19] phi from print1::@1 to print [phi:print1::@1->print] // [19] phi screen#36 = screen#12 [phi:print1::@1->print#0] -- register_copy // [19] phi print::s#9 = string_1 [phi:print1::@1->print#1] -- pbuz1=pbuc1 @@ -718,7 +718,7 @@ print1: { // [9] phi from print1::@1 to print1::@2 [phi:print1::@1->print1::@2] // print1::@2 // print(s) - // [10] call print + // [10] call print // [19] phi from print1::@2 to print [phi:print1::@2->print] // [19] phi screen#36 = screen#12 [phi:print1::@2->print#0] -- register_copy // [19] phi print::s#9 = s [phi:print1::@2->print#1] -- pbuz1=pbuc1 @@ -735,7 +735,7 @@ print1: { // print2 print2: { // print("string1") - // [13] call print + // [13] call print // [19] phi from print2 to print [phi:print2->print] // [19] phi screen#36 = screen#12 [phi:print2->print#0] -- register_copy // [19] phi print::s#9 = string_0 [phi:print2->print#1] -- pbuz1=pbuc1 @@ -747,7 +747,7 @@ print2: { // [14] phi from print2 to print2::@1 [phi:print2->print2::@1] // print2::@1 // print("string2") - // [15] call print + // [15] call print // [19] phi from print2::@1 to print [phi:print2::@1->print] // [19] phi screen#36 = screen#12 [phi:print2::@1->print#0] -- register_copy // [19] phi print::s#9 = string_1 [phi:print2::@1->print#1] -- pbuz1=pbuc1 @@ -759,7 +759,7 @@ print2: { // [16] phi from print2::@1 to print2::@2 [phi:print2::@1->print2::@2] // print2::@2 // print(s1) - // [17] call print + // [17] call print // [19] phi from print2::@2 to print [phi:print2::@2->print] // [19] phi screen#36 = screen#12 [phi:print2::@2->print#0] -- register_copy // [19] phi print::s#9 = s1 [phi:print2::@2->print#1] -- pbuz1=pbuc1 @@ -774,7 +774,7 @@ print2: { rts } // print -// print(byte* zp(4) s) +// void print(__zp(4) char *s) print: { .label s = 4 // [20] phi from print print::@2 to print::@1 [phi:print/print::@2->print::@1] diff --git a/src/test/ref/string-const-consolidation-root.sym b/src/test/ref/string-const-consolidation-root.sym index 61b57d445..1e730bb77 100644 --- a/src/test/ref/string-const-consolidation-root.sym +++ b/src/test/ref/string-const-consolidation-root.sym @@ -1,19 +1,19 @@ void main() -void print(byte* print::s) -byte* print::s -byte* print::s#6 s zp[2]:4 2002.0 -byte* print::s#7 s zp[2]:4 1026.25 -byte* print::s#9 s zp[2]:4 101.0 +void print(char *s) +char *print::s +char *print::s#6 // s zp[2]:4 2002.0 +char *print::s#7 // s zp[2]:4 1026.25 +char *print::s#9 // s zp[2]:4 101.0 void print1() void print2() -constant byte* s = "string3" -constant byte* s1 = "string4" -byte* screen -byte* screen#11 screen zp[2]:2 1001.0 -byte* screen#12 screen zp[2]:2 185.8235294117647 -byte* screen#36 screen zp[2]:2 156.0 -constant byte* string_0[8] = "string1" -constant byte* string_1[8] = "string2" +__constant char *s = "string3" +__constant char *s1 = "string4" +char *screen +char *screen#11 // screen zp[2]:2 1001.0 +char *screen#12 // screen zp[2]:2 185.8235294117647 +char *screen#36 // screen zp[2]:2 156.0 +__constant char string_0[8] = "string1" +__constant char string_1[8] = "string2" zp[2]:2 [ screen#36 screen#12 screen#11 ] zp[2]:4 [ print::s#7 print::s#9 print::s#6 ] diff --git a/src/test/ref/string-const-consolidation.asm b/src/test/ref/string-const-consolidation.asm index b11da993c..d326c012a 100644 --- a/src/test/ref/string-const-consolidation.asm +++ b/src/test/ref/string-const-consolidation.asm @@ -23,7 +23,7 @@ main: { // } rts } -// print(byte* zp(4) string) +// void print(__zp(4) char *string) print: { .label string = 4 lda #print] print_from_main: - // [7] phi screen#20 = (byte*) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + // [7] phi screen#20 = (char *) 1024 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -283,7 +283,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [7] phi screen#20 = screen#13 [phi:main::@1->print#0] -- register_copy @@ -293,7 +293,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] print_from___b2: // [7] phi screen#20 = screen#13 [phi:main::@2->print#0] -- register_copy @@ -305,7 +305,7 @@ main: { rts } // print -// print(byte* zp(4) string) +// void print(__zp(4) char *string) print: { .label string = 4 // [8] phi from print to print::@1 [phi:print->print::@1] @@ -382,15 +382,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -void print(byte* print::string) -byte* print::string -byte* print::string#3 string zp[2]:4 202.0 -byte* print::string#4 string zp[2]:4 101.0 -constant byte* rex1[] = "rex" -byte* screen -byte* screen#13 screen zp[2]:2 39.75 -byte* screen#20 screen zp[2]:2 15.0 -byte* screen#4 screen zp[2]:2 101.0 +void print(char *string) +char *print::string +char *print::string#3 // string zp[2]:4 202.0 +char *print::string#4 // string zp[2]:4 101.0 +__constant char rex1[] = "rex" +char *screen +char *screen#13 // screen zp[2]:2 39.75 +char *screen#20 // screen zp[2]:2 15.0 +char *screen#4 // screen zp[2]:2 101.0 zp[2]:2 [ screen#20 screen#13 screen#4 ] zp[2]:4 [ print::string#4 print::string#3 ] @@ -416,9 +416,9 @@ Score: 675 // main main: { // print(rex1) - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] - // [7] phi screen#20 = (byte*) 1024 [phi:main->print#0] -- pbuz1=pbuc1 + // [7] phi screen#20 = (char *) 1024 [phi:main->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -427,14 +427,14 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(rex2) - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] // [7] phi screen#20 = screen#13 [phi:main::@1->print#0] -- register_copy jsr print // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print("rex") - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] // [7] phi screen#20 = screen#13 [phi:main::@2->print#0] -- register_copy jsr print @@ -444,7 +444,7 @@ main: { rts } // print -// print(byte* zp(4) string) +// void print(__zp(4) char *string) print: { .label string = 4 // [8] phi from print to print::@1 [phi:print->print::@1] diff --git a/src/test/ref/string-const-consolidation.sym b/src/test/ref/string-const-consolidation.sym index 4ca895972..ba36ba090 100644 --- a/src/test/ref/string-const-consolidation.sym +++ b/src/test/ref/string-const-consolidation.sym @@ -1,13 +1,13 @@ void main() -void print(byte* print::string) -byte* print::string -byte* print::string#3 string zp[2]:4 202.0 -byte* print::string#4 string zp[2]:4 101.0 -constant byte* rex1[] = "rex" -byte* screen -byte* screen#13 screen zp[2]:2 39.75 -byte* screen#20 screen zp[2]:2 15.0 -byte* screen#4 screen zp[2]:2 101.0 +void print(char *string) +char *print::string +char *print::string#3 // string zp[2]:4 202.0 +char *print::string#4 // string zp[2]:4 101.0 +__constant char rex1[] = "rex" +char *screen +char *screen#13 // screen zp[2]:2 39.75 +char *screen#20 // screen zp[2]:2 15.0 +char *screen#4 // screen zp[2]:2 101.0 zp[2]:2 [ screen#20 screen#13 screen#4 ] zp[2]:4 [ print::string#4 print::string#3 ] diff --git a/src/test/ref/string-encoding-literals.cfg b/src/test/ref/string-encoding-literals.cfg index f0dc3569f..a59241ad0 100644 --- a/src/test/ref/string-encoding-literals.cfg +++ b/src/test/ref/string-encoding-literals.cfg @@ -12,10 +12,10 @@ main::@1: scope:[main] from main main::@1 [6] (main::SCREEN+$28*4)[main::i#2] = screencode_upper[main::i#2] [7] (main::SCREEN+$28*5)[main::i#2] = screencode_standard[main::i#2] [8] (main::SCREEN+$28*6)[main::i#2] = ascii[main::i#2] - [9] (main::SCREEN+(word)$28*7)[main::i#2] = atascii[main::i#2] - [10] (main::SCREEN+(word)$28*8)[main::i#2] = screencode_atari[main::i#2] - [11] (main::SCREEN+(word)$28*9)[main::i#2] = standard[main::i#2] - [12] (main::SCREEN+(word)$28*$a)[main::i#2] = no_null[main::i#2] + [9] (main::SCREEN+(unsigned int)$28*7)[main::i#2] = atascii[main::i#2] + [10] (main::SCREEN+(unsigned int)$28*8)[main::i#2] = screencode_atari[main::i#2] + [11] (main::SCREEN+(unsigned int)$28*9)[main::i#2] = standard[main::i#2] + [12] (main::SCREEN+(unsigned int)$28*$a)[main::i#2] = no_null[main::i#2] [13] main::i#1 = ++ main::i#2 [14] if(main::i#1!=8) goto main::@1 to:main::@return diff --git a/src/test/ref/string-encoding-literals.log b/src/test/ref/string-encoding-literals.log index 979c7c09b..079fd73c6 100644 --- a/src/test/ref/string-encoding-literals.log +++ b/src/test/ref/string-encoding-literals.log @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -39,25 +39,25 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant byte* ascii[] = "abcABC7"as -constant byte* atascii[] = "abcABC8"at +__constant char ascii[] = "abcABC7"as +__constant char atascii[] = "abcABC8"at void main() -bool~ main::$0 -constant byte* const main::D018 = (byte*)$d018 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* no_null[] = "abcABC1"z -constant byte* petscii_mixed[] = "abcABC1"pm -constant byte* petscii_standard[] = "abcABC3"pm -constant byte* petscii_upper[] = "abcABC2"pu -constant byte* screencode_atari[] = "abcABC9"sa -constant byte* screencode_mixed[] = "abcABC4" -constant byte* screencode_standard[] = "abcABC6" -constant byte* screencode_upper[] = "abcABC5"su -constant byte* standard[] = "abcABC0" +bool main::$0 +__constant char * const main::D018 = (char *)$d018 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char no_null[] = "abcABC1"z +__constant char petscii_mixed[] = "abcABC1"pm +__constant char petscii_standard[] = "abcABC3"pm +__constant char petscii_upper[] = "abcABC2"pu +__constant char screencode_atari[] = "abcABC9"sa +__constant char screencode_mixed[] = "abcABC4" +__constant char screencode_standard[] = "abcABC6" +__constant char screencode_upper[] = "abcABC5"su +__constant char standard[] = "abcABC0" Adding number conversion cast (unumber) $16 in *main::D018 = $16 Adding number conversion cast (unumber) $28*0 in (main::SCREEN+$28*0)[main::i#2] = petscii_mixed[main::i#2] @@ -74,11 +74,11 @@ Adding number conversion cast (unumber) $28*$a in (main::SCREEN+$28*$a)[main::i# Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::D018 = (unumber)$16 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 53272 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 53272 Simplifying constant integer cast $16 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $16 +Finalized unsigned number type (char) $16 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [16] if(main::i#1!=rangelast(0,7)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -86,7 +86,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [14] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [16] if(main::i#1!=rangelast(0,7)) goto main::@1 to 8 -Simplifying constant evaluating to zero (byte)$28*0 in [3] (main::SCREEN+(byte)$28*0)[main::i#2] = petscii_mixed[main::i#2] +Simplifying constant evaluating to zero (char)$28*0 in [3] (main::SCREEN+(char)$28*0)[main::i#2] = petscii_mixed[main::i#2] Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [3] (main::SCREEN+0)[main::i#2] = petscii_mixed[main::i#2] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -99,31 +99,31 @@ Adding number conversion cast (unumber) 8 in [14] if(main::i#1!=8) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*1 Simplifying constant integer cast $28*2 @@ -155,10 +155,10 @@ main::@1: scope:[main] from main main::@1 [6] (main::SCREEN+$28*4)[main::i#2] = screencode_upper[main::i#2] [7] (main::SCREEN+$28*5)[main::i#2] = screencode_standard[main::i#2] [8] (main::SCREEN+$28*6)[main::i#2] = ascii[main::i#2] - [9] (main::SCREEN+(word)$28*7)[main::i#2] = atascii[main::i#2] - [10] (main::SCREEN+(word)$28*8)[main::i#2] = screencode_atari[main::i#2] - [11] (main::SCREEN+(word)$28*9)[main::i#2] = standard[main::i#2] - [12] (main::SCREEN+(word)$28*$a)[main::i#2] = no_null[main::i#2] + [9] (main::SCREEN+(unsigned int)$28*7)[main::i#2] = atascii[main::i#2] + [10] (main::SCREEN+(unsigned int)$28*8)[main::i#2] = screencode_atari[main::i#2] + [11] (main::SCREEN+(unsigned int)$28*9)[main::i#2] = standard[main::i#2] + [12] (main::SCREEN+(unsigned int)$28*$a)[main::i#2] = no_null[main::i#2] [13] main::i#1 = ++ main::i#2 [14] if(main::i#1!=8) goto main::@1 to:main::@return @@ -169,9 +169,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.000000000000004 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.000000000000004 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -188,10 +188,10 @@ Statement [5] (main::SCREEN+$28*3)[main::i#2] = screencode_mixed[main::i#2] [ ma Statement [6] (main::SCREEN+$28*4)[main::i#2] = screencode_upper[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [7] (main::SCREEN+$28*5)[main::i#2] = screencode_standard[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [8] (main::SCREEN+$28*6)[main::i#2] = ascii[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [9] (main::SCREEN+(word)$28*7)[main::i#2] = atascii[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [10] (main::SCREEN+(word)$28*8)[main::i#2] = screencode_atari[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [11] (main::SCREEN+(word)$28*9)[main::i#2] = standard[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [12] (main::SCREEN+(word)$28*$a)[main::i#2] = no_null[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [9] (main::SCREEN+(unsigned int)$28*7)[main::i#2] = atascii[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [10] (main::SCREEN+(unsigned int)$28*8)[main::i#2] = screencode_atari[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [11] (main::SCREEN+(unsigned int)$28*9)[main::i#2] = standard[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [12] (main::SCREEN+(unsigned int)$28*$a)[main::i#2] = no_null[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [0] *main::D018 = $16 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::SCREEN[main::i#2] = petscii_mixed[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [3] (main::SCREEN+$28*1)[main::i#2] = petscii_upper[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a @@ -200,10 +200,10 @@ Statement [5] (main::SCREEN+$28*3)[main::i#2] = screencode_mixed[main::i#2] [ ma Statement [6] (main::SCREEN+$28*4)[main::i#2] = screencode_upper[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [7] (main::SCREEN+$28*5)[main::i#2] = screencode_standard[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [8] (main::SCREEN+$28*6)[main::i#2] = ascii[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [9] (main::SCREEN+(word)$28*7)[main::i#2] = atascii[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [10] (main::SCREEN+(word)$28*8)[main::i#2] = screencode_atari[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [11] (main::SCREEN+(word)$28*9)[main::i#2] = standard[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [12] (main::SCREEN+(word)$28*$a)[main::i#2] = no_null[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [9] (main::SCREEN+(unsigned int)$28*7)[main::i#2] = atascii[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [10] (main::SCREEN+(unsigned int)$28*8)[main::i#2] = screencode_atari[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [11] (main::SCREEN+(unsigned int)$28*9)[main::i#2] = standard[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [12] (main::SCREEN+(unsigned int)$28*$a)[main::i#2] = no_null[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , REGISTER UPLIFT SCOPES @@ -266,16 +266,16 @@ main: { // [8] (main::SCREEN+$28*6)[main::i#2] = ascii[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda ascii,x sta SCREEN+$28*6,x - // [9] (main::SCREEN+(word)$28*7)[main::i#2] = atascii[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [9] (main::SCREEN+(unsigned int)$28*7)[main::i#2] = atascii[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda atascii,x sta SCREEN+$28*7,x - // [10] (main::SCREEN+(word)$28*8)[main::i#2] = screencode_atari[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [10] (main::SCREEN+(unsigned int)$28*8)[main::i#2] = screencode_atari[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda screencode_atari,x sta SCREEN+$28*8,x - // [11] (main::SCREEN+(word)$28*9)[main::i#2] = standard[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [11] (main::SCREEN+(unsigned int)$28*9)[main::i#2] = standard[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda standard,x sta SCREEN+$28*9,x - // [12] (main::SCREEN+(word)$28*$a)[main::i#2] = no_null[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [12] (main::SCREEN+(unsigned int)$28*$a)[main::i#2] = no_null[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda no_null,x sta SCREEN+$28*$a,x // [13] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx @@ -337,23 +337,23 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* ascii[] = "abcABC7"as -constant byte* atascii[] = "abcABC8"at +__constant char ascii[] = "abcABC7"as +__constant char atascii[] = "abcABC8"at void main() -constant byte* const main::D018 = (byte*) 53272 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.000000000000004 -constant byte* no_null[] = "abcABC1"z -constant byte* petscii_mixed[] = "abcABC1"pm -constant byte* petscii_standard[] = "abcABC3"pm -constant byte* petscii_upper[] = "abcABC2"pu -constant byte* screencode_atari[] = "abcABC9"sa -constant byte* screencode_mixed[] = "abcABC4" -constant byte* screencode_standard[] = "abcABC6" -constant byte* screencode_upper[] = "abcABC5"su -constant byte* standard[] = "abcABC0" +__constant char * const main::D018 = (char *) 53272 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.000000000000004 +__constant char no_null[] = "abcABC1"z +__constant char petscii_mixed[] = "abcABC1"pm +__constant char petscii_standard[] = "abcABC3"pm +__constant char petscii_upper[] = "abcABC2"pu +__constant char screencode_atari[] = "abcABC9"sa +__constant char screencode_mixed[] = "abcABC4" +__constant char screencode_standard[] = "abcABC6" +__constant char screencode_upper[] = "abcABC5"su +__constant char standard[] = "abcABC0" reg byte x [ main::i#2 main::i#1 ] @@ -418,19 +418,19 @@ main: { lda ascii,x sta SCREEN+$28*6,x // (SCREEN+40*7)[i] = atascii[i] - // [9] (main::SCREEN+(word)$28*7)[main::i#2] = atascii[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [9] (main::SCREEN+(unsigned int)$28*7)[main::i#2] = atascii[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda atascii,x sta SCREEN+$28*7,x // (SCREEN+40*8)[i] = screencode_atari[i] - // [10] (main::SCREEN+(word)$28*8)[main::i#2] = screencode_atari[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [10] (main::SCREEN+(unsigned int)$28*8)[main::i#2] = screencode_atari[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda screencode_atari,x sta SCREEN+$28*8,x // (SCREEN+40*9)[i] = standard[i] - // [11] (main::SCREEN+(word)$28*9)[main::i#2] = standard[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [11] (main::SCREEN+(unsigned int)$28*9)[main::i#2] = standard[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda standard,x sta SCREEN+$28*9,x // (SCREEN+40*10)[i] = no_null[i] - // [12] (main::SCREEN+(word)$28*$a)[main::i#2] = no_null[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx + // [12] (main::SCREEN+(unsigned int)$28*$a)[main::i#2] = no_null[main::i#2] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx lda no_null,x sta SCREEN+$28*$a,x // for( char i: 0..7 ) diff --git a/src/test/ref/string-encoding-literals.sym b/src/test/ref/string-encoding-literals.sym index 520b36676..fe739f02a 100644 --- a/src/test/ref/string-encoding-literals.sym +++ b/src/test/ref/string-encoding-literals.sym @@ -1,19 +1,19 @@ -constant byte* ascii[] = "abcABC7"as -constant byte* atascii[] = "abcABC8"at +__constant char ascii[] = "abcABC7"as +__constant char atascii[] = "abcABC8"at void main() -constant byte* const main::D018 = (byte*) 53272 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.000000000000004 -constant byte* no_null[] = "abcABC1"z -constant byte* petscii_mixed[] = "abcABC1"pm -constant byte* petscii_standard[] = "abcABC3"pm -constant byte* petscii_upper[] = "abcABC2"pu -constant byte* screencode_atari[] = "abcABC9"sa -constant byte* screencode_mixed[] = "abcABC4" -constant byte* screencode_standard[] = "abcABC6" -constant byte* screencode_upper[] = "abcABC5"su -constant byte* standard[] = "abcABC0" +__constant char * const main::D018 = (char *) 53272 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.000000000000004 +__constant char no_null[] = "abcABC1"z +__constant char petscii_mixed[] = "abcABC1"pm +__constant char petscii_standard[] = "abcABC3"pm +__constant char petscii_upper[] = "abcABC2"pu +__constant char screencode_atari[] = "abcABC9"sa +__constant char screencode_mixed[] = "abcABC4" +__constant char screencode_standard[] = "abcABC6" +__constant char screencode_upper[] = "abcABC5"su +__constant char standard[] = "abcABC0" reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-encoding-pragma.log b/src/test/ref/string-encoding-pragma.log index ea940e9d5..3a2202652 100644 --- a/src/test/ref/string-encoding-pragma.log +++ b/src/test/ref/string-encoding-pragma.log @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -40,24 +40,24 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -bool~ main::$6 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* petscii_mixed1[] = "abcABC2"pm -constant byte* petscii_mixed2[] = "abcABC3"pm -constant byte* screencode_mixed1[] = "abcABC1" -constant byte* screencode_mixed2[] = "abcABC4" -constant byte* screencode_mixed3[] = "abcABC6" -constant byte* screencode_upper[] = "abcABC5"su +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +bool main::$6 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char petscii_mixed1[] = "abcABC2"pm +__constant char petscii_mixed2[] = "abcABC3"pm +__constant char screencode_mixed1[] = "abcABC1" +__constant char screencode_mixed2[] = "abcABC4" +__constant char screencode_mixed3[] = "abcABC6" +__constant char screencode_upper[] = "abcABC5"su Adding number conversion cast (unumber) $28*2 in main::$0 = main::SCREEN + $28*2 Adding number conversion cast (unumber) $28*0 in main::$1 = main::SCREEN + $28*0 @@ -66,28 +66,28 @@ Adding number conversion cast (unumber) $28*2 in main::$3 = main::SCREEN + $28*2 Adding number conversion cast (unumber) $28*4 in main::$4 = main::SCREEN + $28*4 Adding number conversion cast (unumber) $28*3 in main::$5 = main::SCREEN + $28*3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$6 [16] if(main::i#1!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [2] main::$0 = main::SCREEN + (byte)$28*2 -Constant right-side identified [4] main::$1 = main::SCREEN + (byte)$28*0 -Constant right-side identified [6] main::$2 = main::SCREEN + (byte)$28*1 -Constant right-side identified [8] main::$3 = main::SCREEN + (byte)$28*2 -Constant right-side identified [10] main::$4 = main::SCREEN + (byte)$28*4 -Constant right-side identified [12] main::$5 = main::SCREEN + (byte)$28*3 +Constant right-side identified [2] main::$0 = main::SCREEN + (char)$28*2 +Constant right-side identified [4] main::$1 = main::SCREEN + (char)$28*0 +Constant right-side identified [6] main::$2 = main::SCREEN + (char)$28*1 +Constant right-side identified [8] main::$3 = main::SCREEN + (char)$28*2 +Constant right-side identified [10] main::$4 = main::SCREEN + (char)$28*4 +Constant right-side identified [12] main::$5 = main::SCREEN + (char)$28*3 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$0 = main::SCREEN+(byte)$28*2 -Constant main::$1 = main::SCREEN+(byte)$28*0 -Constant main::$2 = main::SCREEN+(byte)$28*1 -Constant main::$3 = main::SCREEN+(byte)$28*2 -Constant main::$4 = main::SCREEN+(byte)$28*4 -Constant main::$5 = main::SCREEN+(byte)$28*3 +Constant main::$0 = main::SCREEN+(char)$28*2 +Constant main::$1 = main::SCREEN+(char)$28*0 +Constant main::$2 = main::SCREEN+(char)$28*1 +Constant main::$3 = main::SCREEN+(char)$28*2 +Constant main::$4 = main::SCREEN+(char)$28*4 +Constant main::$5 = main::SCREEN+(char)$28*3 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [14] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [16] if(main::i#1!=rangelast(0,5)) goto main::@1 to 6 -Simplifying constant evaluating to zero (byte)$28*0 in +Simplifying constant evaluating to zero (char)$28*0 in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in Successful SSA optimization PassNSimplifyExpressionWithZero @@ -100,27 +100,27 @@ Adding number conversion cast (unumber) 6 in [8] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::$1 = main::SCREEN -Constant inlined main::$2 = main::SCREEN+(byte)$28*1 -Constant inlined main::$0 = main::SCREEN+(byte)$28*2 -Constant inlined main::$5 = main::SCREEN+(byte)$28*3 +Constant inlined main::$2 = main::SCREEN+(char)$28*1 +Constant inlined main::$0 = main::SCREEN+(char)$28*2 +Constant inlined main::$5 = main::SCREEN+(char)$28*3 Constant inlined main::i#0 = 0 -Constant inlined main::$3 = main::SCREEN+(byte)$28*2 -Constant inlined main::$4 = main::SCREEN+(byte)$28*4 +Constant inlined main::$3 = main::SCREEN+(char)$28*2 +Constant inlined main::$4 = main::SCREEN+(char)$28*4 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*2 Simplifying constant integer cast $28*1 @@ -162,9 +162,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 22.000000000000004 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 22.000000000000004 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -287,16 +287,16 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.000000000000004 -constant byte* petscii_mixed1[] = "abcABC2"pm -constant byte* petscii_mixed2[] = "abcABC3"pm -constant byte* screencode_mixed1[] = "abcABC1" -constant byte* screencode_mixed2[] = "abcABC4" -constant byte* screencode_mixed3[] = "abcABC6" -constant byte* screencode_upper[] = "abcABC5"su +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.000000000000004 +__constant char petscii_mixed1[] = "abcABC2"pm +__constant char petscii_mixed2[] = "abcABC3"pm +__constant char screencode_mixed1[] = "abcABC1" +__constant char screencode_mixed2[] = "abcABC4" +__constant char screencode_mixed3[] = "abcABC6" +__constant char screencode_upper[] = "abcABC5"su reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-encoding-pragma.sym b/src/test/ref/string-encoding-pragma.sym index d719817c1..fcc316060 100644 --- a/src/test/ref/string-encoding-pragma.sym +++ b/src/test/ref/string-encoding-pragma.sym @@ -1,13 +1,13 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 22.000000000000004 -constant byte* petscii_mixed1[] = "abcABC2"pm -constant byte* petscii_mixed2[] = "abcABC3"pm -constant byte* screencode_mixed1[] = "abcABC1" -constant byte* screencode_mixed2[] = "abcABC4" -constant byte* screencode_mixed3[] = "abcABC6" -constant byte* screencode_upper[] = "abcABC5"su +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 22.000000000000004 +__constant char petscii_mixed1[] = "abcABC2"pm +__constant char petscii_mixed2[] = "abcABC3"pm +__constant char screencode_mixed1[] = "abcABC1" +__constant char screencode_mixed2[] = "abcABC4" +__constant char screencode_mixed3[] = "abcABC6" +__constant char screencode_upper[] = "abcABC5"su reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-escapes-0.log b/src/test/ref/string-escapes-0.log index 9c3dc19ec..985b950e1 100644 --- a/src/test/ref/string-escapes-0.log +++ b/src/test/ref/string-escapes-0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -26,7 +26,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -35,24 +35,24 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* MESSAGE[] = " +__constant char MESSAGE[] = " "'\" -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 0 in main::$0 = 0 != MESSAGE[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -99,9 +99,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -183,13 +183,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* MESSAGE[] = " +__constant char MESSAGE[] = " "'\" -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-escapes-0.sym b/src/test/ref/string-escapes-0.sym index 6f78b5289..640fa51e3 100644 --- a/src/test/ref/string-escapes-0.sym +++ b/src/test/ref/string-escapes-0.sym @@ -1,9 +1,9 @@ -constant byte* MESSAGE[] = " +__constant char MESSAGE[] = " "'\" -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-escapes-1.cfg b/src/test/ref/string-escapes-1.cfg index c76ef78ab..8ecd9cf73 100644 --- a/src/test/ref/string-escapes-1.cfg +++ b/src/test/ref/string-escapes-1.cfg @@ -4,8 +4,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@5 - [1] main::cursor#3 = phi( main/(byte*) 1024, main::@5/main::cursor#6 ) - [1] main::line#2 = phi( main/(byte*) 1024, main::@5/main::line#5 ) + [1] main::cursor#3 = phi( main/(char *) 1024, main::@5/main::cursor#6 ) + [1] main::line#2 = phi( main/(char *) 1024, main::@5/main::line#5 ) [1] main::msg#2 = phi( main/MESSAGE, main::@5/main::msg#1 ) [2] if(0!=*main::msg#2) goto main::@2 to:main::@return diff --git a/src/test/ref/string-escapes-1.log b/src/test/ref/string-escapes-1.log index cc46620f5..5efef89de 100644 --- a/src/test/ref/string-escapes-1.log +++ b/src/test/ref/string-escapes-1.log @@ -1,10 +1,10 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - main::line#0 = (byte*)$400 + main::line#0 = (char *)$400 main::cursor#0 = main::line#0 main::msg#0 = MESSAGE to:main::@1 @@ -51,7 +51,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -60,45 +60,45 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world" void __start() void main() -bool~ main::$0 -byte* main::cursor -byte* main::cursor#0 -byte* main::cursor#1 -byte* main::cursor#2 -byte* main::cursor#3 -byte* main::cursor#4 -byte* main::cursor#5 -byte* main::cursor#6 -byte* main::line -byte* main::line#0 -byte* main::line#1 -byte* main::line#2 -byte* main::line#3 -byte* main::line#4 -byte* main::line#5 -byte* main::line#6 -byte* main::msg -byte* main::msg#0 -byte* main::msg#1 -byte* main::msg#2 -byte* main::msg#3 -byte* main::msg#4 -byte* main::msg#5 -byte* main::msg#6 +bool main::$0 +char *main::cursor +char *main::cursor#0 +char *main::cursor#1 +char *main::cursor#2 +char *main::cursor#3 +char *main::cursor#4 +char *main::cursor#5 +char *main::cursor#6 +char *main::line +char *main::line#0 +char *main::line#1 +char *main::line#2 +char *main::line#3 +char *main::line#4 +char *main::line#5 +char *main::line#6 +char *main::msg +char *main::msg#0 +char *main::msg#1 +char *main::msg#2 +char *main::msg#3 +char *main::msg#4 +char *main::msg#5 +char *main::msg#6 Adding number conversion cast (unumber) 0 in main::$0 = 0 != *main::msg#2 Adding number conversion cast (unumber) $28 in main::line#1 = main::line#2 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::cursor#0 = main::line#0 Alias main::msg#2 = main::msg#3 main::msg#6 main::msg#4 @@ -110,7 +110,7 @@ Alias main::msg#2 = main::msg#5 Successful SSA optimization Pass2AliasElimination Simple Condition main::$0 [4] if(0!=*main::msg#2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::cursor#0 = (byte*) 1024 +Constant main::cursor#0 = (char *) 1024 Constant main::msg#0 = MESSAGE Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start @@ -122,7 +122,7 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::cursor#0 Inlining constant with var siblings main::msg#0 -Constant inlined main::cursor#0 = (byte*) 1024 +Constant inlined main::cursor#0 = (char *) 1024 Constant inlined main::msg#0 = MESSAGE Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main @@ -146,8 +146,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@5 - [1] main::cursor#3 = phi( main/(byte*) 1024, main::@5/main::cursor#6 ) - [1] main::line#2 = phi( main/(byte*) 1024, main::@5/main::line#5 ) + [1] main::cursor#3 = phi( main/(char *) 1024, main::@5/main::cursor#6 ) + [1] main::line#2 = phi( main/(char *) 1024, main::@5/main::line#5 ) [1] main::msg#2 = phi( main/MESSAGE, main::@5/main::msg#1 ) [2] if(0!=*main::msg#2) goto main::@2 to:main::@return @@ -175,18 +175,18 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte* main::cursor -byte* main::cursor#1 16.5 -byte* main::cursor#2 22.0 -byte* main::cursor#3 8.25 -byte* main::cursor#6 16.5 -byte* main::line -byte* main::line#2 6.6000000000000005 -byte* main::line#5 16.5 -byte* main::line#8 22.0 -byte* main::msg -byte* main::msg#1 22.0 -byte* main::msg#2 6.875 +char *main::cursor +char *main::cursor#1 // 16.5 +char *main::cursor#2 // 22.0 +char *main::cursor#3 // 8.25 +char *main::cursor#6 // 16.5 +char *main::line +char *main::line#2 // 6.6000000000000005 +char *main::line#5 // 16.5 +char *main::line#8 // 22.0 +char *main::msg +char *main::msg#1 // 22.0 +char *main::msg#2 // 6.875 Initial phi equivalence classes [ main::msg#2 main::msg#1 ] @@ -238,12 +238,12 @@ main: { .label line = 4 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::cursor#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cursor#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cursor lda #>$400 sta.z cursor+1 - // [1] phi main::line#2 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::line#2 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -348,21 +348,21 @@ Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world" void main() -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:6 16.5 -byte* main::cursor#2 cursor zp[2]:6 22.0 -byte* main::cursor#3 cursor zp[2]:6 8.25 -byte* main::cursor#6 cursor zp[2]:6 16.5 -byte* main::line -byte* main::line#2 line zp[2]:4 6.6000000000000005 -byte* main::line#5 line zp[2]:4 16.5 -byte* main::line#8 line zp[2]:4 22.0 -byte* main::msg -byte* main::msg#1 msg zp[2]:2 22.0 -byte* main::msg#2 msg zp[2]:2 6.875 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:6 16.5 +char *main::cursor#2 // cursor zp[2]:6 22.0 +char *main::cursor#3 // cursor zp[2]:6 8.25 +char *main::cursor#6 // cursor zp[2]:6 16.5 +char *main::line +char *main::line#2 // line zp[2]:4 6.6000000000000005 +char *main::line#5 // line zp[2]:4 16.5 +char *main::line#8 // line zp[2]:4 22.0 +char *main::msg +char *main::msg#1 // msg zp[2]:2 22.0 +char *main::msg#2 // msg zp[2]:2 6.875 zp[2]:2 [ main::msg#2 main::msg#1 ] zp[2]:4 [ main::line#2 main::line#5 main::line#8 ] @@ -391,12 +391,12 @@ main: { .label msg = 2 .label line = 4 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::cursor#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cursor#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cursor lda #>$400 sta.z cursor+1 - // [1] phi main::line#2 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::line#2 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 diff --git a/src/test/ref/string-escapes-1.sym b/src/test/ref/string-escapes-1.sym index 5bb5637f5..a13a4d287 100644 --- a/src/test/ref/string-escapes-1.sym +++ b/src/test/ref/string-escapes-1.sym @@ -1,18 +1,18 @@ -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world" void main() -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:6 16.5 -byte* main::cursor#2 cursor zp[2]:6 22.0 -byte* main::cursor#3 cursor zp[2]:6 8.25 -byte* main::cursor#6 cursor zp[2]:6 16.5 -byte* main::line -byte* main::line#2 line zp[2]:4 6.6000000000000005 -byte* main::line#5 line zp[2]:4 16.5 -byte* main::line#8 line zp[2]:4 22.0 -byte* main::msg -byte* main::msg#1 msg zp[2]:2 22.0 -byte* main::msg#2 msg zp[2]:2 6.875 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:6 16.5 +char *main::cursor#2 // cursor zp[2]:6 22.0 +char *main::cursor#3 // cursor zp[2]:6 8.25 +char *main::cursor#6 // cursor zp[2]:6 16.5 +char *main::line +char *main::line#2 // line zp[2]:4 6.6000000000000005 +char *main::line#5 // line zp[2]:4 16.5 +char *main::line#8 // line zp[2]:4 22.0 +char *main::msg +char *main::msg#1 // msg zp[2]:2 22.0 +char *main::msg#2 // msg zp[2]:2 6.875 zp[2]:2 [ main::msg#2 main::msg#1 ] zp[2]:4 [ main::line#2 main::line#5 main::line#8 ] diff --git a/src/test/ref/string-escapes-2.asm b/src/test/ref/string-escapes-2.asm index 9e45bce98..d66bdbdf7 100644 --- a/src/test/ref/string-escapes-2.asm +++ b/src/test/ref/string-escapes-2.asm @@ -30,7 +30,7 @@ main: { inc.z i jmp __b1 } -// chrout(byte register(A) c) +// void chrout(__register(A) char c) chrout: { // *memA = c sta memA diff --git a/src/test/ref/string-escapes-2.cfg b/src/test/ref/string-escapes-2.cfg index 0c680f8d2..878ab777a 100644 --- a/src/test/ref/string-escapes-2.cfg +++ b/src/test/ref/string-escapes-2.cfg @@ -12,13 +12,13 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] chrout::c#0 = MESSAGE[main::i#2] - [5] call chrout + [5] call chrout to:main::@3 main::@3: scope:[main] from main::@2 [6] main::i#1 = ++ main::i#2 to:main::@1 -void chrout(byte chrout::c) +void chrout(char c) chrout: scope:[chrout] from main::@2 [7] *memA = chrout::c#0 asm { ldamemA jsr$ffd2 } diff --git a/src/test/ref/string-escapes-2.log b/src/test/ref/string-escapes-2.log index dcd6bd035..bfc240d19 100644 --- a/src/test/ref/string-escapes-2.log +++ b/src/test/ref/string-escapes-2.log @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) chrout::c#0 = MESSAGE[main::i#3] - call chrout + call chrout to:main::@3 main::@3: scope:[main] from main::@2 main::i#4 = phi( main::@2/main::i#3 ) @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void chrout(byte chrout::c) +void chrout(char c) chrout: scope:[chrout] from main::@2 chrout::c#1 = phi( main::@2/chrout::c#0 ) *memA = chrout::c#1 @@ -35,7 +35,7 @@ chrout::@return: scope:[chrout] from chrout void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,29 +44,29 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world\"pm void __start() -void chrout(byte chrout::c) -byte chrout::c -byte chrout::c#0 -byte chrout::c#1 +void chrout(char c) +char chrout::c +char chrout::c#0 +char chrout::c#1 void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -constant byte* const memA = (byte*)$ff +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +__constant char * const memA = (char *)$ff Adding number conversion cast (unumber) 0 in main::$1 = 0 != MESSAGE[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 255 +Simplifying constant pointer cast (char *) 255 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 main::i#4 Successful SSA optimization Pass2AliasElimination @@ -108,13 +108,13 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] chrout::c#0 = MESSAGE[main::i#2] - [5] call chrout + [5] call chrout to:main::@3 main::@3: scope:[main] from main::@2 [6] main::i#1 = ++ main::i#2 to:main::@1 -void chrout(byte chrout::c) +void chrout(char c) chrout: scope:[chrout] from main::@2 [7] *memA = chrout::c#0 asm { ldamemA jsr$ffd2 } @@ -125,13 +125,13 @@ chrout::@return: scope:[chrout] from chrout VARIABLE REGISTER WEIGHTS -void chrout(byte chrout::c) -byte chrout::c -byte chrout::c#0 112.0 +void chrout(char c) +char chrout::c +char chrout::c#0 // 112.0 void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -205,7 +205,7 @@ main: { // [4] chrout::c#0 = MESSAGE[main::i#2] -- vbuaa=pbuc1_derefidx_vbuz1 ldy.z i lda MESSAGE,y - // [5] call chrout + // [5] call chrout jsr chrout jmp __b3 // main::@3 @@ -218,7 +218,7 @@ main: { jmp __b1 } // chrout -// chrout(byte register(A) c) +// void chrout(__register(A) char c) chrout: { // [7] *memA = chrout::c#0 -- _deref_pbuc1=vbuaa sta memA @@ -253,16 +253,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world\"pm -void chrout(byte chrout::c) -byte chrout::c -byte chrout::c#0 reg byte a 112.0 +void chrout(char c) +char chrout::c +char chrout::c#0 // reg byte a 112.0 void main() -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 11.0 -constant byte* const memA = (byte*) 255 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 11.0 +__constant char * const memA = (char *) 255 zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ chrout::c#0 ] @@ -310,7 +310,7 @@ main: { // [4] chrout::c#0 = MESSAGE[main::i#2] -- vbuaa=pbuc1_derefidx_vbuz1 ldy.z i lda MESSAGE,y - // [5] call chrout + // [5] call chrout jsr chrout // main::@3 // chrout(MESSAGE[i++]); @@ -321,7 +321,7 @@ main: { jmp __b1 } // chrout -// chrout(byte register(A) c) +// void chrout(__register(A) char c) chrout: { // *memA = c // [7] *memA = chrout::c#0 -- _deref_pbuc1=vbuaa diff --git a/src/test/ref/string-escapes-2.sym b/src/test/ref/string-escapes-2.sym index 3a877ee80..8a88a1dee 100644 --- a/src/test/ref/string-escapes-2.sym +++ b/src/test/ref/string-escapes-2.sym @@ -1,13 +1,13 @@ -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world\"pm -void chrout(byte chrout::c) -byte chrout::c -byte chrout::c#0 reg byte a 112.0 +void chrout(char c) +char chrout::c +char chrout::c#0 // reg byte a 112.0 void main() -byte main::i -byte main::i#1 i zp[1]:2 22.0 -byte main::i#2 i zp[1]:2 11.0 -constant byte* const memA = (byte*) 255 +char main::i +char main::i#1 // i zp[1]:2 22.0 +char main::i#2 // i zp[1]:2 11.0 +__constant char * const memA = (char *) 255 zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ chrout::c#0 ] diff --git a/src/test/ref/string-escapes-3.cfg b/src/test/ref/string-escapes-3.cfg index 95d1a6727..d8e2a8443 100644 --- a/src/test/ref/string-escapes-3.cfg +++ b/src/test/ref/string-escapes-3.cfg @@ -4,8 +4,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@7 - [1] main::cursor#4 = phi( main/(byte*) 1024, main::@7/main::cursor#8 ) - [1] main::line#3 = phi( main/(byte*) 1024, main::@7/main::line#8 ) + [1] main::cursor#4 = phi( main/(char *) 1024, main::@7/main::cursor#8 ) + [1] main::line#3 = phi( main/(char *) 1024, main::@7/main::line#8 ) [1] main::msg#2 = phi( main/MESSAGE, main::@7/main::msg#1 ) [2] if(0!=*main::msg#2) goto main::@2 to:main::@3 diff --git a/src/test/ref/string-escapes-3.log b/src/test/ref/string-escapes-3.log index fc0a1b676..3919d67a4 100644 --- a/src/test/ref/string-escapes-3.log +++ b/src/test/ref/string-escapes-3.log @@ -1,10 +1,10 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - main::line#0 = (byte*)$400 + main::line#0 = (char *)$400 main::cursor#0 = main::line#0 main::msg#0 = MESSAGE to:main::@1 @@ -67,7 +67,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -76,46 +76,46 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte CH = ' +__constant char CH = ' 'pm -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world\again"pm -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() -number~ main::$0 -bool~ main::$1 -byte* main::cursor -byte* main::cursor#0 -byte* main::cursor#1 -byte* main::cursor#2 -byte* main::cursor#3 -byte* main::cursor#4 -byte* main::cursor#5 -byte* main::cursor#6 -byte* main::cursor#7 -byte* main::cursor#8 -byte* main::line -byte* main::line#0 -byte* main::line#1 -byte* main::line#2 -byte* main::line#3 -byte* main::line#4 -byte* main::line#5 -byte* main::line#6 -byte* main::line#7 -byte* main::line#8 -byte* main::line#9 -byte* main::msg -byte* main::msg#0 -byte* main::msg#1 -byte* main::msg#2 -byte* main::msg#3 -byte* main::msg#4 -byte* main::msg#5 -byte* main::msg#6 -byte* main::msg#7 -byte* main::msg#8 +number main::$0 +bool main::$1 +char *main::cursor +char *main::cursor#0 +char *main::cursor#1 +char *main::cursor#2 +char *main::cursor#3 +char *main::cursor#4 +char *main::cursor#5 +char *main::cursor#6 +char *main::cursor#7 +char *main::cursor#8 +char *main::line +char *main::line#0 +char *main::line#1 +char *main::line#2 +char *main::line#3 +char *main::line#4 +char *main::line#5 +char *main::line#6 +char *main::line#7 +char *main::line#8 +char *main::line#9 +char *main::msg +char *main::msg#0 +char *main::msg#1 +char *main::msg#2 +char *main::msg#3 +char *main::msg#4 +char *main::msg#5 +char *main::msg#6 +char *main::msg#7 +char *main::msg#8 Adding number conversion cast (unumber) 0 in main::$1 = 0 != *main::msg#2 Adding number conversion cast (unumber) $a0 in SCREEN[$a0] = CH @@ -124,21 +124,21 @@ Adding number conversion cast (unumber) $50 in main::line#2 = main::line#4 + $50 Adding number conversion cast (unumber) $3f in main::$0 = *main::msg#4 & $3f Adding number conversion cast (unumber) main::$0 in main::$0 = *main::msg#4 & (unumber)$3f Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $a0 Simplifying constant integer cast $28 Simplifying constant integer cast $50 Simplifying constant integer cast $3f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $a0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $3f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $a0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $3f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = *main::msg#4 & $3f +Inferred type updated to char in main::$0 = *main::msg#4 & $3f Alias main::cursor#0 = main::line#0 Alias main::msg#2 = main::msg#3 main::msg#7 main::msg#6 main::msg#8 main::msg#4 Alias main::line#3 = main::line#5 main::line#7 main::line#6 main::line#4 main::line#9 @@ -150,7 +150,7 @@ Alias main::msg#2 = main::msg#5 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [4] if(0!=*main::msg#2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::cursor#0 = (byte*) 1024 +Constant main::cursor#0 = (char *) 1024 Constant main::msg#0 = MESSAGE Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start @@ -162,7 +162,7 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::cursor#0 Inlining constant with var siblings main::msg#0 -Constant inlined main::cursor#0 = (byte*) 1024 +Constant inlined main::cursor#0 = (char *) 1024 Constant inlined main::msg#0 = MESSAGE Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+$a0) @@ -190,8 +190,8 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@7 - [1] main::cursor#4 = phi( main/(byte*) 1024, main::@7/main::cursor#8 ) - [1] main::line#3 = phi( main/(byte*) 1024, main::@7/main::line#8 ) + [1] main::cursor#4 = phi( main/(char *) 1024, main::@7/main::cursor#8 ) + [1] main::line#3 = phi( main/(char *) 1024, main::@7/main::line#8 ) [1] main::msg#2 = phi( main/MESSAGE, main::@7/main::msg#1 ) [2] if(0!=*main::msg#2) goto main::@2 to:main::@3 @@ -230,21 +230,21 @@ main::@4: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte* main::cursor -byte* main::cursor#1 16.5 -byte* main::cursor#2 16.5 -byte* main::cursor#3 22.0 -byte* main::cursor#4 5.5 -byte* main::cursor#8 22.0 -byte* main::line -byte* main::line#11 22.0 -byte* main::line#12 22.0 -byte* main::line#3 6.285714285714286 -byte* main::line#8 22.0 -byte* main::msg -byte* main::msg#1 22.0 -byte* main::msg#2 5.5 +char main::$0 // 22.0 +char *main::cursor +char *main::cursor#1 // 16.5 +char *main::cursor#2 // 16.5 +char *main::cursor#3 // 22.0 +char *main::cursor#4 // 5.5 +char *main::cursor#8 // 22.0 +char *main::line +char *main::line#11 // 22.0 +char *main::line#12 // 22.0 +char *main::line#3 // 6.285714285714286 +char *main::line#8 // 22.0 +char *main::msg +char *main::msg#1 // 22.0 +char *main::msg#2 // 5.5 Initial phi equivalence classes [ main::msg#2 main::msg#1 ] @@ -309,12 +309,12 @@ main: { .label line = 4 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::cursor#4 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cursor#4 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cursor lda #>$400 sta.z cursor+1 - // [1] phi main::line#3 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::line#3 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 @@ -459,27 +459,27 @@ Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte CH = ' +__constant char CH = ' 'pm -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world\again"pm -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 22.0 -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:6 16.5 -byte* main::cursor#2 cursor zp[2]:6 16.5 -byte* main::cursor#3 cursor zp[2]:6 22.0 -byte* main::cursor#4 cursor zp[2]:6 5.5 -byte* main::cursor#8 cursor zp[2]:6 22.0 -byte* main::line -byte* main::line#11 line zp[2]:4 22.0 -byte* main::line#12 line zp[2]:4 22.0 -byte* main::line#3 line zp[2]:4 6.285714285714286 -byte* main::line#8 line zp[2]:4 22.0 -byte* main::msg -byte* main::msg#1 msg zp[2]:2 22.0 -byte* main::msg#2 msg zp[2]:2 5.5 +char main::$0 // reg byte a 22.0 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:6 16.5 +char *main::cursor#2 // cursor zp[2]:6 16.5 +char *main::cursor#3 // cursor zp[2]:6 22.0 +char *main::cursor#4 // cursor zp[2]:6 5.5 +char *main::cursor#8 // cursor zp[2]:6 22.0 +char *main::line +char *main::line#11 // line zp[2]:4 22.0 +char *main::line#12 // line zp[2]:4 22.0 +char *main::line#3 // line zp[2]:4 6.285714285714286 +char *main::line#8 // line zp[2]:4 22.0 +char *main::msg +char *main::msg#1 // msg zp[2]:2 22.0 +char *main::msg#2 // msg zp[2]:2 5.5 zp[2]:2 [ main::msg#2 main::msg#1 ] zp[2]:4 [ main::line#3 main::line#8 main::line#11 main::line#12 ] @@ -513,12 +513,12 @@ main: { .label msg = 2 .label line = 4 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::cursor#4 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::cursor#4 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z cursor lda #>$400 sta.z cursor+1 - // [1] phi main::line#3 = (byte*) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 + // [1] phi main::line#3 = (char *) 1024 [phi:main->main::@1#1] -- pbuz1=pbuc1 lda #<$400 sta.z line lda #>$400 diff --git a/src/test/ref/string-escapes-3.sym b/src/test/ref/string-escapes-3.sym index 3232b7272..9372b7e50 100644 --- a/src/test/ref/string-escapes-3.sym +++ b/src/test/ref/string-escapes-3.sym @@ -1,24 +1,24 @@ -constant byte CH = ' +__constant char CH = ' 'pm -constant byte* MESSAGE[] = "hello +__constant char MESSAGE[] = "hello world\again"pm -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() -byte~ main::$0 reg byte a 22.0 -byte* main::cursor -byte* main::cursor#1 cursor zp[2]:6 16.5 -byte* main::cursor#2 cursor zp[2]:6 16.5 -byte* main::cursor#3 cursor zp[2]:6 22.0 -byte* main::cursor#4 cursor zp[2]:6 5.5 -byte* main::cursor#8 cursor zp[2]:6 22.0 -byte* main::line -byte* main::line#11 line zp[2]:4 22.0 -byte* main::line#12 line zp[2]:4 22.0 -byte* main::line#3 line zp[2]:4 6.285714285714286 -byte* main::line#8 line zp[2]:4 22.0 -byte* main::msg -byte* main::msg#1 msg zp[2]:2 22.0 -byte* main::msg#2 msg zp[2]:2 5.5 +char main::$0 // reg byte a 22.0 +char *main::cursor +char *main::cursor#1 // cursor zp[2]:6 16.5 +char *main::cursor#2 // cursor zp[2]:6 16.5 +char *main::cursor#3 // cursor zp[2]:6 22.0 +char *main::cursor#4 // cursor zp[2]:6 5.5 +char *main::cursor#8 // cursor zp[2]:6 22.0 +char *main::line +char *main::line#11 // line zp[2]:4 22.0 +char *main::line#12 // line zp[2]:4 22.0 +char *main::line#3 // line zp[2]:4 6.285714285714286 +char *main::line#8 // line zp[2]:4 22.0 +char *main::msg +char *main::msg#1 // msg zp[2]:2 22.0 +char *main::msg#2 // msg zp[2]:2 5.5 zp[2]:2 [ main::msg#2 main::msg#1 ] zp[2]:4 [ main::line#3 main::line#8 main::line#11 main::line#12 ] diff --git a/src/test/ref/string-escapes-4.asm b/src/test/ref/string-escapes-4.asm index 7bcfecdbb..d0b4f2cd7 100644 --- a/src/test/ref/string-escapes-4.asm +++ b/src/test/ref/string-escapes-4.asm @@ -41,7 +41,7 @@ main: { inx jmp __b1 } -// chrout(byte zp(2) petscii) +// void chrout(__zp(2) volatile char petscii) chrout: { .label petscii = 2 // kickasm diff --git a/src/test/ref/string-escapes-4.cfg b/src/test/ref/string-escapes-4.cfg index b85875b00..f91cc110e 100644 --- a/src/test/ref/string-escapes-4.cfg +++ b/src/test/ref/string-escapes-4.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *((byte*) 53272) = $17 + [0] *((char *) 53272) = $17 to:main::@1 main::@1: scope:[main] from main main::@4 [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) @@ -15,14 +15,14 @@ main::@return: scope:[main] from main::@3 to:@return main::@2: scope:[main] from main::@1 [5] chrout::petscii = MSG1[main::i#2] - [6] call chrout + [6] call chrout to:main::@4 main::@4: scope:[main] from main::@2 [7] SCREEN1[main::i#2] = MSG2[main::i#2] [8] main::i#1 = ++ main::i#2 to:main::@1 -void chrout(volatile byte chrout::petscii) +void chrout(volatile char petscii) chrout: scope:[chrout] from main::@2 kickasm( uses chrout::petscii) {{ jsr $ffd2 }} diff --git a/src/test/ref/string-escapes-4.log b/src/test/ref/string-escapes-4.log index 1fbcafba1..d3c3418c1 100644 --- a/src/test/ref/string-escapes-4.log +++ b/src/test/ref/string-escapes-4.log @@ -1,12 +1,12 @@ Setting inferred volatile on symbol affected by address-of: chrout::petscii in kickasm( uses chrout::petscii) {{ jsr $ffd2 }} -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - *((byte*)$d018) = $17 + *((char *)$d018) = $17 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@4 @@ -17,7 +17,7 @@ main::@1: scope:[main] from main main::@4 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) chrout::petscii = MSG1[main::i#3] - call chrout + call chrout to:main::@4 main::@4: scope:[main] from main::@2 main::i#4 = phi( main::@2/main::i#3 ) @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void chrout(volatile byte chrout::petscii) +void chrout(volatile char petscii) chrout: scope:[chrout] from main::@2 kickasm( uses chrout::petscii) {{ jsr $ffd2 }} @@ -46,7 +46,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -55,39 +55,39 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte CH = ''su -constant byte* MSG1[] = "cAmElot"pm -constant byte* MSG2[] = "CAMELOT"su -constant byte* SCREEN1 = (byte*)$400 -constant byte* SCREEN2 = (byte*)$428 +__constant char CH = ''su +__constant char MSG1[] = "cAmElot"pm +__constant char MSG2[] = "CAMELOT"su +__constant char *SCREEN1 = (char *)$400 +__constant char *SCREEN2 = (char *)$428 void __start() -void chrout(volatile byte chrout::petscii) -volatile byte chrout::petscii loadstore +void chrout(volatile char petscii) +__loadstore volatile char chrout::petscii void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 -Adding number conversion cast (unumber) $17 in *((byte*)$d018) = $17 +Adding number conversion cast (unumber) $17 in *((char *)$d018) = $17 Adding number conversion cast (unumber) 0 in main::$1 = 0 != MSG1[main::i#2] Adding number conversion cast (unumber) 0 in SCREEN2[0] = CH Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)$d018) = (unumber)$17 +Inlining cast *((char *)$d018) = (unumber)$17 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1064 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1064 Simplifying constant integer cast $17 -Simplifying constant pointer cast (byte*) 53272 +Simplifying constant pointer cast (char *) 53272 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 main::i#4 Successful SSA optimization Pass2AliasElimination @@ -118,7 +118,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*) 53272) = $17 + [0] *((char *) 53272) = $17 to:main::@1 main::@1: scope:[main] from main main::@4 [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) @@ -132,14 +132,14 @@ main::@return: scope:[main] from main::@3 to:@return main::@2: scope:[main] from main::@1 [5] chrout::petscii = MSG1[main::i#2] - [6] call chrout + [6] call chrout to:main::@4 main::@4: scope:[main] from main::@2 [7] SCREEN1[main::i#2] = MSG2[main::i#2] [8] main::i#1 = ++ main::i#2 to:main::@1 -void chrout(volatile byte chrout::petscii) +void chrout(volatile char petscii) chrout: scope:[chrout] from main::@2 kickasm( uses chrout::petscii) {{ jsr $ffd2 }} @@ -150,12 +150,12 @@ chrout::@return: scope:[chrout] from chrout VARIABLE REGISTER WEIGHTS -void chrout(volatile byte chrout::petscii) -volatile byte chrout::petscii loadstore 11.0 +void chrout(volatile char petscii) +__loadstore volatile char chrout::petscii // 11.0 void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 13.2 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 13.2 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -166,13 +166,13 @@ Complete equivalence classes Allocated zp[1]:2 [ main::i#2 main::i#1 ] Allocated zp[1]:3 [ chrout::petscii ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*) 53272) = $17 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *) 53272) = $17 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] if(0!=MSG1[main::i#2]) goto main::@2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [3] *SCREEN2 = CH [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] chrout::petscii = MSG1[main::i#2] [ main::i#2 chrout::petscii ] ( [ main::i#2 chrout::petscii ] { } ) always clobbers reg byte a Statement [7] SCREEN1[main::i#2] = MSG2[main::i#2] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [0] *((byte*) 53272) = $17 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *) 53272) = $17 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] if(0!=MSG1[main::i#2]) goto main::@2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [3] *SCREEN2 = CH [ ] ( [ ] { } ) always clobbers reg byte a Statement [5] chrout::petscii = MSG1[main::i#2] [ main::i#2 chrout::petscii ] ( [ main::i#2 chrout::petscii ] { } ) always clobbers reg byte a @@ -213,7 +213,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*) 53272) = $17 -- _deref_pbuc1=vbuc2 + // [0] *((char *) 53272) = $17 -- _deref_pbuc1=vbuc2 // Show mixed chars on screen lda #$17 sta $d018 @@ -244,7 +244,7 @@ main: { // [5] chrout::petscii = MSG1[main::i#2] -- vbuz1=pbuc1_derefidx_vbuxx lda MSG1,x sta.z chrout.petscii - // [6] call chrout + // [6] call chrout jsr chrout jmp __b4 // main::@4 @@ -260,7 +260,7 @@ main: { jmp __b1 } // chrout -// chrout(byte zp(2) petscii) +// void chrout(__zp(2) volatile char petscii) chrout: { .label petscii = 2 // kickasm( uses chrout::petscii) {{ jsr $ffd2 }} @@ -297,17 +297,17 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte CH = ''su -constant byte* MSG1[] = "cAmElot"pm -constant byte* MSG2[] = "CAMELOT"su -constant byte* SCREEN1 = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1064 -void chrout(volatile byte chrout::petscii) -volatile byte chrout::petscii loadstore zp[1]:2 11.0 +__constant char CH = ''su +__constant char MSG1[] = "cAmElot"pm +__constant char MSG2[] = "CAMELOT"su +__constant char *SCREEN1 = (char *) 1024 +__constant char *SCREEN2 = (char *) 1064 +void chrout(volatile char petscii) +__loadstore volatile char chrout::petscii // zp[1]:2 11.0 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 13.2 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 13.2 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ chrout::petscii ] @@ -337,7 +337,7 @@ Score: 670 // main main: { // *((char*)0xd018) = 0x17 - // [0] *((byte*) 53272) = $17 -- _deref_pbuc1=vbuc2 + // [0] *((char *) 53272) = $17 -- _deref_pbuc1=vbuc2 // Show mixed chars on screen lda #$17 sta $d018 @@ -366,7 +366,7 @@ main: { // [5] chrout::petscii = MSG1[main::i#2] -- vbuz1=pbuc1_derefidx_vbuxx lda MSG1,x sta.z chrout.petscii - // [6] call chrout + // [6] call chrout jsr chrout // main::@4 // SCREEN1[i] = MSG2[i] @@ -381,7 +381,7 @@ main: { jmp __b1 } // chrout -// chrout(byte zp(2) petscii) +// void chrout(__zp(2) volatile char petscii) chrout: { .label petscii = 2 // kickasm diff --git a/src/test/ref/string-escapes-4.sym b/src/test/ref/string-escapes-4.sym index 8fd95626e..d12746253 100644 --- a/src/test/ref/string-escapes-4.sym +++ b/src/test/ref/string-escapes-4.sym @@ -1,14 +1,14 @@ -constant byte CH = ''su -constant byte* MSG1[] = "cAmElot"pm -constant byte* MSG2[] = "CAMELOT"su -constant byte* SCREEN1 = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1064 -void chrout(volatile byte chrout::petscii) -volatile byte chrout::petscii loadstore zp[1]:2 11.0 +__constant char CH = ''su +__constant char MSG1[] = "cAmElot"pm +__constant char MSG2[] = "CAMELOT"su +__constant char *SCREEN1 = (char *) 1024 +__constant char *SCREEN2 = (char *) 1064 +void chrout(volatile char petscii) +__loadstore volatile char chrout::petscii // zp[1]:2 11.0 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 13.2 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 13.2 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ chrout::petscii ] diff --git a/src/test/ref/string-escapes-5.log b/src/test/ref/string-escapes-5.log index ac78ac35c..83d3dec41 100644 --- a/src/test/ref/string-escapes-5.log +++ b/src/test/ref/string-escapes-5.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -29,7 +29,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -38,27 +38,27 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte CH = '刺' -constant byte* MESSAGE[] = "q刺w er" -constant byte* const SCREEN = (byte*)$400 +__constant char CH = '刺' +__constant char MESSAGE[] = "q刺w er" +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 0 in main::$0 = 0 != MESSAGE[main::i#2] Adding number conversion cast (unumber) $28 in SCREEN[$28] = CH Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -110,9 +110,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -206,13 +206,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte CH = '刺' -constant byte* MESSAGE[] = "q刺w er" -constant byte* const SCREEN = (byte*) 1024 +__constant char CH = '刺' +__constant char MESSAGE[] = "q刺w er" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-escapes-5.sym b/src/test/ref/string-escapes-5.sym index ea5fcbb4a..676d0ae9c 100644 --- a/src/test/ref/string-escapes-5.sym +++ b/src/test/ref/string-escapes-5.sym @@ -1,9 +1,9 @@ -constant byte CH = '刺' -constant byte* MESSAGE[] = "q刺w er" -constant byte* const SCREEN = (byte*) 1024 +__constant char CH = '刺' +__constant char MESSAGE[] = "q刺w er" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-escapes-6.log b/src/test/ref/string-escapes-6.log index 58438c98a9b1a2d9ebbdadc009e8da5a760fa97e..bf5d0feacbdc6e7d35a84fd522e6181fab2aaf57 100644 GIT binary patch delta 678 zcmZ1$cqDK`3-jbw<_-Sw@yYpl#U+V(B?`$IiA4&&uED{M?yk|X3bqPLi3~|e49UsK z3`$(+>a-NV`V@klgIrzxfQmK1+9x-#sMRavCT8YYS*aLsCFSSmz<7pSU=7lvS2rP~vYzz`MG}ALhb)N}X*w_Rp z&gGexS(2HUqfn5MsgPP&npu{Zvsr+DlR!OsXj2#~&=BA%%g;;!M~8+cilb0C%7zN{ oK$jP#rYj^>mZU0F;Pf-H671ebQh_5RkX1ke1t_w4gTgm<0Gdk6%>V!Z delta 601 zcmX>SxGZo(3p1m_+%4IVJ^Ed0Tax$`j9c9I~gdN1tR4|ylmrW7QHsny;tjAu+ zo``HWs$qr-Mg~TDXs$C-Fv1WsRxmWvgV+r7p|XjBp|J^2kjr!Od@lLT+Wboe>d^v` zlEBu|R4_C!GT|!A&rAW^siBGDcodGZp+Zq=xWJpS4NKQ^>P~wV5Q>Uc>)~68c z9OUZi2UM&9)~=zm3i|pAMXBiuNtGq3 z3Ka@Q21a@Ys7j2`m0+kaMpI#Ere}(3h6%a~V-uhfE+mVi!EOb*PuT>{GKRB^;4DLh GSS|nwGg=}5 literal 290 zcmYe!&nqrT%qvkysw_#>Qt)*R4t8{RjgD1NuvJh>WJpS4NKQ^>P~u8PRR`uO1Um=0 zy7~cCYJhcXDi|6VnQ)cmXQn9RCT8YoXmWwX!E7t5Ocai?p+Zq=I@nf)3I!trBRvCD uc_S2g3~6IzX+twTQ&in1DAL9zKzS}C`=ViPQZ|9JjNvRJILlBWmJ0x6=T~R| diff --git a/src/test/ref/string-escapes-7.log b/src/test/ref/string-escapes-7.log index c62ca135c..dafdf132f 100644 --- a/src/test/ref/string-escapes-7.log +++ b/src/test/ref/string-escapes-7.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -28,7 +28,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -37,31 +37,31 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte Q1 = '"' -constant byte Q2 = ''' -constant byte* S[] = ""'" -constant byte* const SCREEN = (byte*)$400 +__constant char Q1 = '"' +__constant char Q2 = ''' +__constant char S[] = ""'" +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $28 in SCREEN[$28] = Q1 Adding number conversion cast (unumber) $29 in SCREEN[$29] = Q2 Adding number conversion cast (unumber) 0 in main::$0 = 0 != S[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $29 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $29 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $29 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -110,9 +110,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -207,14 +207,14 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte Q1 = '"' -constant byte Q2 = ''' -constant byte* S[] = ""'" -constant byte* const SCREEN = (byte*) 1024 +__constant char Q1 = '"' +__constant char Q2 = ''' +__constant char S[] = ""'" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-escapes-7.sym b/src/test/ref/string-escapes-7.sym index da84d27da..6d26c6a7e 100644 --- a/src/test/ref/string-escapes-7.sym +++ b/src/test/ref/string-escapes-7.sym @@ -1,10 +1,10 @@ -constant byte Q1 = '"' -constant byte Q2 = ''' -constant byte* S[] = ""'" -constant byte* const SCREEN = (byte*) 1024 +__constant char Q1 = '"' +__constant char Q2 = ''' +__constant char S[] = ""'" +__constant char * const SCREEN = (char *) 1024 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/string-pointer-problem.asm b/src/test/ref/string-pointer-problem.asm index 64e96fd14..17fc8d2b5 100644 --- a/src/test/ref/string-pointer-problem.asm +++ b/src/test/ref/string-pointer-problem.asm @@ -20,6 +20,7 @@ main: { .byte 0 } .segment Code +// void set_process_name(char *name) set_process_name: { .label j = 2 .label __1 = 4 diff --git a/src/test/ref/string-pointer-problem.cfg b/src/test/ref/string-pointer-problem.cfg index d324de1d0..cf2a404fb 100644 --- a/src/test/ref/string-pointer-problem.cfg +++ b/src/test/ref/string-pointer-problem.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] phi() - [1] call set_process_name + [1] call set_process_name to:main::@return main::@return: scope:[main] from main [2] return to:@return -void set_process_name(byte* set_process_name::name) +void set_process_name(char *name) set_process_name: scope:[set_process_name] from main [3] phi() to:set_process_name::@1 diff --git a/src/test/ref/string-pointer-problem.log b/src/test/ref/string-pointer-problem.log index 23a1afdbc..b8f19cd1d 100644 --- a/src/test/ref/string-pointer-problem.log +++ b/src/test/ref/string-pointer-problem.log @@ -1,11 +1,11 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 set_process_name::name#0 = main::name - call set_process_name + call set_process_name to:main::@1 main::@1: scope:[main] from main to:main::@return @@ -13,7 +13,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void set_process_name(byte* set_process_name::name) +void set_process_name(char *name) set_process_name: scope:[set_process_name] from main set_process_name::name#3 = phi( main/set_process_name::name#0 ) set_process_name::j#0 = 0 @@ -40,7 +40,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -51,27 +51,27 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -constant byte* main::name[9] = "keyboard" -constant byte* process_name = (byte*)$400 -void set_process_name(byte* set_process_name::name) -bool~ set_process_name::$0 -signed word set_process_name::j -signed word set_process_name::j#0 -signed word set_process_name::j#1 -signed word set_process_name::j#2 -signed word set_process_name::j#3 -byte* set_process_name::name -byte* set_process_name::name#0 -byte* set_process_name::name#1 -byte* set_process_name::name#2 -byte* set_process_name::name#3 +__constant char main::name[9] = "keyboard" +__constant char *process_name = (char *)$400 +void set_process_name(char *name) +bool set_process_name::$0 +int set_process_name::j +int set_process_name::j#0 +int set_process_name::j#1 +int set_process_name::j#2 +int set_process_name::j#3 +char *set_process_name::name +char *set_process_name::name#0 +char *set_process_name::name#1 +char *set_process_name::name#2 +char *set_process_name::name#3 Adding number conversion cast (snumber) $11 in set_process_name::$0 = set_process_name::j#2 < $11 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $11 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $11 +Finalized signed number type (signed char) $11 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias set_process_name::name#1 = set_process_name::name#2 Alias set_process_name::j#2 = set_process_name::j#3 @@ -116,13 +116,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call set_process_name + [1] call set_process_name to:main::@return main::@return: scope:[main] from main [2] return to:@return -void set_process_name(byte* set_process_name::name) +void set_process_name(char *name) set_process_name: scope:[set_process_name] from main [3] phi() to:set_process_name::@1 @@ -143,13 +143,13 @@ set_process_name::@2: scope:[set_process_name] from set_process_name::@1 VARIABLE REGISTER WEIGHTS void main() -void set_process_name(byte* set_process_name::name) -byte*~ set_process_name::$1 101.0 -byte*~ set_process_name::$2 202.0 -signed word set_process_name::j -signed word set_process_name::j#1 202.0 -signed word set_process_name::j#2 101.0 -byte* set_process_name::name +void set_process_name(char *name) +char *set_process_name::$1 // 101.0 +char *set_process_name::$2 // 202.0 +int set_process_name::j +int set_process_name::j#1 // 202.0 +int set_process_name::j#2 // 101.0 +char *set_process_name::name Initial phi equivalence classes [ set_process_name::j#2 set_process_name::j#1 ] @@ -198,7 +198,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call set_process_name + // [1] call set_process_name // [3] phi from main to set_process_name [phi:main->set_process_name] set_process_name_from_main: jsr set_process_name @@ -213,6 +213,7 @@ main: { } .segment Code // set_process_name +// void set_process_name(char *name) set_process_name: { .label j = 2 .label __1 = 4 @@ -294,15 +295,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::name[9] = "keyboard" -constant byte* process_name = (byte*) 1024 -void set_process_name(byte* set_process_name::name) -byte*~ set_process_name::$1 zp[2]:4 101.0 -byte*~ set_process_name::$2 zp[2]:6 202.0 -signed word set_process_name::j -signed word set_process_name::j#1 j zp[2]:2 202.0 -signed word set_process_name::j#2 j zp[2]:2 101.0 -byte* set_process_name::name +__constant char main::name[9] = "keyboard" +__constant char *process_name = (char *) 1024 +void set_process_name(char *name) +char *set_process_name::$1 // zp[2]:4 101.0 +char *set_process_name::$2 // zp[2]:6 202.0 +int set_process_name::j +int set_process_name::j#1 // j zp[2]:2 202.0 +int set_process_name::j#2 // j zp[2]:2 101.0 +char *set_process_name::name zp[2]:2 [ set_process_name::j#2 set_process_name::j#1 ] zp[2]:4 [ set_process_name::$1 ] @@ -330,7 +331,7 @@ Score: 948 // main main: { // set_process_name("keyboard") - // [1] call set_process_name + // [1] call set_process_name // [3] phi from main to set_process_name [phi:main->set_process_name] jsr set_process_name // main::@return @@ -343,6 +344,7 @@ main: { } .segment Code // set_process_name +// void set_process_name(char *name) set_process_name: { .label j = 2 .label __1 = 4 diff --git a/src/test/ref/string-pointer-problem.sym b/src/test/ref/string-pointer-problem.sym index 59ce60124..225d1aa9f 100644 --- a/src/test/ref/string-pointer-problem.sym +++ b/src/test/ref/string-pointer-problem.sym @@ -1,13 +1,13 @@ void main() -constant byte* main::name[9] = "keyboard" -constant byte* process_name = (byte*) 1024 -void set_process_name(byte* set_process_name::name) -byte*~ set_process_name::$1 zp[2]:4 101.0 -byte*~ set_process_name::$2 zp[2]:6 202.0 -signed word set_process_name::j -signed word set_process_name::j#1 j zp[2]:2 202.0 -signed word set_process_name::j#2 j zp[2]:2 101.0 -byte* set_process_name::name +__constant char main::name[9] = "keyboard" +__constant char *process_name = (char *) 1024 +void set_process_name(char *name) +char *set_process_name::$1 // zp[2]:4 101.0 +char *set_process_name::$2 // zp[2]:6 202.0 +int set_process_name::j +int set_process_name::j#1 // j zp[2]:2 202.0 +int set_process_name::j#2 // j zp[2]:2 101.0 +char *set_process_name::name zp[2]:2 [ set_process_name::j#2 set_process_name::j#1 ] zp[2]:4 [ set_process_name::$1 ] diff --git a/src/test/ref/strip.asm b/src/test/ref/strip.asm index ac69a0532..f2e2cd162 100644 --- a/src/test/ref/strip.asm +++ b/src/test/ref/strip.asm @@ -43,7 +43,7 @@ main: { // } rts } -// strip(byte* zp(8) p, byte register(X) c) +// void strip(__zp(8) char *p, __register(X) char c) strip: { .label dest = 2 .label p = 8 @@ -88,7 +88,7 @@ strip: { sta.z p_1+1 jmp __b1 } -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 __b1: diff --git a/src/test/ref/strip.cfg b/src/test/ref/strip.cfg index 3c48a6aab..1176361b3 100644 --- a/src/test/ref/strip.cfg +++ b/src/test/ref/strip.cfg @@ -2,25 +2,25 @@ void main() main: scope:[main] from [0] phi() - [1] call strip + [1] call strip to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call strip + [5] call strip to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call print + [7] call print to:main::@return main::@return: scope:[main] from main::@3 [8] return to:@return -void strip(byte* strip::p , byte strip::c) +void strip(char *p , char c) strip: scope:[strip] from main main::@2 [9] strip::c#3 = phi( main/' ', main::@2/'y' ) [9] strip::dest#0 = phi( main/msg1, main::@2/msg2 ) @@ -47,9 +47,9 @@ strip::@4: scope:[strip] from strip::@2 [19] strip::p#8 = strip::p#2 to:strip::@1 -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from main::@1 main::@3 - [20] screen#17 = phi( main::@1/(byte*) 1024, main::@3/screen#12 ) + [20] screen#17 = phi( main::@1/(char *) 1024, main::@3/screen#12 ) [20] print::msg#4 = phi( main::@1/msg1, main::@3/msg2 ) to:print::@1 print::@1: scope:[print] from print print::@1 diff --git a/src/test/ref/strip.log b/src/test/ref/strip.log index 18156486e..0f459015d 100644 --- a/src/test/ref/strip.log +++ b/src/test/ref/strip.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,24 +7,24 @@ main: scope:[main] from __start::@1 screen#19 = phi( __start::@1/screen#18 ) strip::p#0 = msg1 strip::c#0 = ' ' - call strip + call strip to:main::@1 main::@1: scope:[main] from main screen#15 = phi( main/screen#19 ) print::msg#0 = msg1 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 screen#8 = phi( main::@1/screen#4 ) screen#0 = screen#8 strip::p#1 = msg2 strip::c#1 = 'y' - call strip + call strip to:main::@3 main::@3: scope:[main] from main::@2 screen#16 = phi( main::@2/screen#0 ) print::msg#1 = msg2 - call print + call print to:main::@4 main::@4: scope:[main] from main::@3 screen#9 = phi( main::@3/screen#4 ) @@ -36,7 +36,7 @@ main::@return: scope:[main] from main::@4 return to:@return -void strip(byte* strip::p , byte strip::c) +void strip(char *p , char c) strip: scope:[strip] from main main::@2 strip::c#3 = phi( main/strip::c#0, main::@2/strip::c#1 ) strip::p#3 = phi( main/strip::p#0, main::@2/strip::p#1 ) @@ -69,7 +69,7 @@ strip::@return: scope:[strip] from strip::@2 return to:@return -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from main::@1 main::@3 screen#17 = phi( main::@1/screen#15, main::@3/screen#16 ) print::msg#4 = phi( main::@1/print::msg#0, main::@3/print::msg#1 ) @@ -93,11 +93,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#5 = (byte*)$400 + screen#5 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#18 = phi( __start::__init1/screen#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#13 = phi( __start::@1/screen#2 ) @@ -112,72 +112,72 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -constant byte* msg1[] = "hello world!" -constant byte* msg2[] = "goodbye blue sky!" -void print(byte* print::msg) -bool~ print::$0 -byte* print::msg -byte* print::msg#0 -byte* print::msg#1 -byte* print::msg#2 -byte* print::msg#3 -byte* print::msg#4 -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#11 -byte* screen#12 -byte* screen#13 -byte* screen#14 -byte* screen#15 -byte* screen#16 -byte* screen#17 -byte* screen#18 -byte* screen#19 -byte* screen#2 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 -void strip(byte* strip::p , byte strip::c) -bool~ strip::$0 -bool~ strip::$1 -bool~ strip::$2 -byte strip::c -byte strip::c#0 -byte strip::c#1 -byte strip::c#2 -byte strip::c#3 -byte strip::c#4 -byte strip::c#5 -byte* strip::dest -byte* strip::dest#0 -byte* strip::dest#1 -byte* strip::dest#2 -byte* strip::dest#3 -byte* strip::dest#4 -byte* strip::p -byte* strip::p#0 -byte* strip::p#1 -byte* strip::p#2 -byte* strip::p#3 -byte* strip::p#4 -byte* strip::p#5 -byte* strip::p#6 +__constant char msg1[] = "hello world!" +__constant char msg2[] = "goodbye blue sky!" +void print(char *msg) +bool print::$0 +char *print::msg +char *print::msg#0 +char *print::msg#1 +char *print::msg#2 +char *print::msg#3 +char *print::msg#4 +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#11 +char *screen#12 +char *screen#13 +char *screen#14 +char *screen#15 +char *screen#16 +char *screen#17 +char *screen#18 +char *screen#19 +char *screen#2 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 +void strip(char *p , char c) +bool strip::$0 +bool strip::$1 +bool strip::$2 +char strip::c +char strip::c#0 +char strip::c#1 +char strip::c#2 +char strip::c#3 +char strip::c#4 +char strip::c#5 +char *strip::dest +char *strip::dest#0 +char *strip::dest#1 +char *strip::dest#2 +char *strip::dest#3 +char *strip::dest#4 +char *strip::p +char *strip::p#0 +char *strip::p#1 +char *strip::p#2 +char *strip::p#3 +char *strip::p#4 +char *strip::p#5 +char *strip::p#6 Adding number conversion cast (unumber) 0 in strip::$2 = *strip::p#5 != 0 Adding number conversion cast (unumber) 0 in print::$0 = *print::msg#2 != 0 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [24] strip::$1 = *strip::p#4 == strip::c#2 from [23] strip::$0 = *strip::p#4 != strip::c#2 Successful SSA optimization Pass2UnaryNotSimplification @@ -211,7 +211,7 @@ Constant print::msg#0 = msg1 Constant strip::p#1 = msg2 Constant strip::c#1 = 'y' Constant print::msg#1 = msg2 -Constant screen#18 = (byte*) 1024 +Constant screen#18 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -233,7 +233,7 @@ Constant inlined strip::p#1 = msg2 Constant inlined print::msg#0 = msg1 Constant inlined strip::c#0 = ' ' Constant inlined strip::c#1 = 'y' -Constant inlined screen#18 = (byte*) 1024 +Constant inlined screen#18 = (char *) 1024 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting strip::@4(between strip::@2 and strip::@1) Added new block during phi lifting strip::@5(between strip::@1 and strip::@2) @@ -271,25 +271,25 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call strip + [1] call strip to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call strip + [5] call strip to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call print + [7] call print to:main::@return main::@return: scope:[main] from main::@3 [8] return to:@return -void strip(byte* strip::p , byte strip::c) +void strip(char *p , char c) strip: scope:[strip] from main main::@2 [9] strip::c#3 = phi( main/' ', main::@2/'y' ) [9] strip::dest#0 = phi( main/msg1, main::@2/msg2 ) @@ -316,9 +316,9 @@ strip::@4: scope:[strip] from strip::@2 [19] strip::p#8 = strip::p#2 to:strip::@1 -void print(byte* print::msg) +void print(char *msg) print: scope:[print] from main::@1 main::@3 - [20] screen#17 = phi( main::@1/(byte*) 1024, main::@3/screen#12 ) + [20] screen#17 = phi( main::@1/(char *) 1024, main::@3/screen#12 ) [20] print::msg#4 = phi( main::@1/msg1, main::@3/msg2 ) to:print::@1 print::@1: scope:[print] from print print::@1 @@ -336,28 +336,28 @@ print::@return: scope:[print] from print::@1 VARIABLE REGISTER WEIGHTS void main() -void print(byte* print::msg) -byte* print::msg -byte* print::msg#2 151.5 -byte* print::msg#3 104.66666666666666 -byte* print::msg#4 11.0 -byte* screen -byte* screen#11 157.0 -byte* screen#12 25.5 -byte* screen#17 13.0 -void strip(byte* strip::p , byte strip::c) -byte strip::c -byte strip::c#3 10.1 -byte* strip::dest -byte* strip::dest#0 11.0 -byte* strip::dest#1 202.0 -byte* strip::dest#2 138.33333333333331 -byte* strip::dest#4 75.75 -byte* strip::p -byte* strip::p#2 101.0 -byte* strip::p#4 85.99999999999999 -byte* strip::p#7 22.0 -byte* strip::p#8 202.0 +void print(char *msg) +char *print::msg +char *print::msg#2 // 151.5 +char *print::msg#3 // 104.66666666666666 +char *print::msg#4 // 11.0 +char *screen +char *screen#11 // 157.0 +char *screen#12 // 25.5 +char *screen#17 // 13.0 +void strip(char *p , char c) +char strip::c +char strip::c#3 // 10.1 +char *strip::dest +char *strip::dest#0 // 11.0 +char *strip::dest#1 // 202.0 +char *strip::dest#2 // 138.33333333333331 +char *strip::dest#4 // 75.75 +char *strip::p +char *strip::p#2 // 101.0 +char *strip::p#4 // 85.99999999999999 +char *strip::p#7 // 22.0 +char *strip::p#8 // 202.0 Initial phi equivalence classes [ strip::c#3 ] @@ -438,7 +438,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call strip + // [1] call strip // [9] phi from main to strip [phi:main->strip] strip_from_main: // [9] phi strip::c#3 = ' ' [phi:main->strip#0] -- vbuxx=vbuc1 @@ -454,10 +454,10 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [20] phi from main::@1 to print [phi:main::@1->print] print_from___b1: - // [20] phi screen#17 = (byte*) 1024 [phi:main::@1->print#0] -- pbuz1=pbuc1 + // [20] phi screen#17 = (char *) 1024 [phi:main::@1->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -473,7 +473,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call strip + // [5] call strip // [9] phi from main::@2 to strip [phi:main::@2->strip] strip_from___b2: // [9] phi strip::c#3 = 'y' [phi:main::@2->strip#0] -- vbuxx=vbuc1 @@ -489,7 +489,7 @@ main: { jmp __b3 // main::@3 __b3: - // [7] call print + // [7] call print // [20] phi from main::@3 to print [phi:main::@3->print] print_from___b3: // [20] phi screen#17 = screen#12 [phi:main::@3->print#0] -- register_copy @@ -506,7 +506,7 @@ main: { rts } // strip -// strip(byte* zp(8) p, byte register(X) c) +// void strip(__zp(8) char *p, __register(X) char c) strip: { .label dest = 2 .label p = 8 @@ -577,7 +577,7 @@ strip: { jmp __b1_from___b4 } // print -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 // [21] phi from print print::@1 to print::@1 [phi:print/print::@1->print::@1] @@ -666,30 +666,30 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -constant byte* msg1[] = "hello world!" -constant byte* msg2[] = "goodbye blue sky!" -void print(byte* print::msg) -byte* print::msg -byte* print::msg#2 msg zp[2]:4 151.5 -byte* print::msg#3 msg zp[2]:4 104.66666666666666 -byte* print::msg#4 msg zp[2]:4 11.0 -byte* screen -byte* screen#11 screen zp[2]:6 157.0 -byte* screen#12 screen zp[2]:6 25.5 -byte* screen#17 screen zp[2]:6 13.0 -void strip(byte* strip::p , byte strip::c) -byte strip::c -byte strip::c#3 reg byte x 10.1 -byte* strip::dest -byte* strip::dest#0 dest zp[2]:2 11.0 -byte* strip::dest#1 dest zp[2]:2 202.0 -byte* strip::dest#2 dest zp[2]:2 138.33333333333331 -byte* strip::dest#4 dest zp[2]:2 75.75 -byte* strip::p -byte* strip::p#2 p zp[2]:8 101.0 -byte* strip::p#4 p_1 zp[2]:4 85.99999999999999 -byte* strip::p#7 p_1 zp[2]:4 22.0 -byte* strip::p#8 p_1 zp[2]:4 202.0 +__constant char msg1[] = "hello world!" +__constant char msg2[] = "goodbye blue sky!" +void print(char *msg) +char *print::msg +char *print::msg#2 // msg zp[2]:4 151.5 +char *print::msg#3 // msg zp[2]:4 104.66666666666666 +char *print::msg#4 // msg zp[2]:4 11.0 +char *screen +char *screen#11 // screen zp[2]:6 157.0 +char *screen#12 // screen zp[2]:6 25.5 +char *screen#17 // screen zp[2]:6 13.0 +void strip(char *p , char c) +char strip::c +char strip::c#3 // reg byte x 10.1 +char *strip::dest +char *strip::dest#0 // dest zp[2]:2 11.0 +char *strip::dest#1 // dest zp[2]:2 202.0 +char *strip::dest#2 // dest zp[2]:2 138.33333333333331 +char *strip::dest#4 // dest zp[2]:2 75.75 +char *strip::p +char *strip::p#2 // p zp[2]:8 101.0 +char *strip::p#4 // p_1 zp[2]:4 85.99999999999999 +char *strip::p#7 // p_1 zp[2]:4 22.0 +char *strip::p#8 // p_1 zp[2]:4 202.0 reg byte x [ strip::c#3 ] zp[2]:2 [ strip::dest#2 strip::dest#0 strip::dest#4 strip::dest#1 ] @@ -718,7 +718,7 @@ Score: 1423 // main main: { // strip(msg1, ' ') - // [1] call strip + // [1] call strip // [9] phi from main to strip [phi:main->strip] // [9] phi strip::c#3 = ' ' [phi:main->strip#0] -- vbuxx=vbuc1 ldx #' ' @@ -731,9 +731,9 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(msg1) - // [3] call print + // [3] call print // [20] phi from main::@1 to print [phi:main::@1->print] - // [20] phi screen#17 = (byte*) 1024 [phi:main::@1->print#0] -- pbuz1=pbuc1 + // [20] phi screen#17 = (char *) 1024 [phi:main::@1->print#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -747,7 +747,7 @@ main: { // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // strip(msg2, 'y') - // [5] call strip + // [5] call strip // [9] phi from main::@2 to strip [phi:main::@2->strip] // [9] phi strip::c#3 = 'y' [phi:main::@2->strip#0] -- vbuxx=vbuc1 ldx #'y' @@ -760,7 +760,7 @@ main: { // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // print(msg2) - // [7] call print + // [7] call print // [20] phi from main::@3 to print [phi:main::@3->print] // [20] phi screen#17 = screen#12 [phi:main::@3->print#0] -- register_copy // [20] phi print::msg#4 = msg2 [phi:main::@3->print#1] -- pbuz1=pbuc1 @@ -775,7 +775,7 @@ main: { rts } // strip -// strip(byte* zp(8) p, byte register(X) c) +// void strip(__zp(8) char *p, __register(X) char c) strip: { .label dest = 2 .label p = 8 @@ -839,7 +839,7 @@ strip: { jmp __b1 } // print -// print(byte* zp(4) msg) +// void print(__zp(4) char *msg) print: { .label msg = 4 // [21] phi from print print::@1 to print::@1 [phi:print/print::@1->print::@1] diff --git a/src/test/ref/strip.sym b/src/test/ref/strip.sym index a461bdc3a..6e303fde3 100644 --- a/src/test/ref/strip.sym +++ b/src/test/ref/strip.sym @@ -1,28 +1,28 @@ void main() -constant byte* msg1[] = "hello world!" -constant byte* msg2[] = "goodbye blue sky!" -void print(byte* print::msg) -byte* print::msg -byte* print::msg#2 msg zp[2]:4 151.5 -byte* print::msg#3 msg zp[2]:4 104.66666666666666 -byte* print::msg#4 msg zp[2]:4 11.0 -byte* screen -byte* screen#11 screen zp[2]:6 157.0 -byte* screen#12 screen zp[2]:6 25.5 -byte* screen#17 screen zp[2]:6 13.0 -void strip(byte* strip::p , byte strip::c) -byte strip::c -byte strip::c#3 reg byte x 10.1 -byte* strip::dest -byte* strip::dest#0 dest zp[2]:2 11.0 -byte* strip::dest#1 dest zp[2]:2 202.0 -byte* strip::dest#2 dest zp[2]:2 138.33333333333331 -byte* strip::dest#4 dest zp[2]:2 75.75 -byte* strip::p -byte* strip::p#2 p zp[2]:8 101.0 -byte* strip::p#4 p_1 zp[2]:4 85.99999999999999 -byte* strip::p#7 p_1 zp[2]:4 22.0 -byte* strip::p#8 p_1 zp[2]:4 202.0 +__constant char msg1[] = "hello world!" +__constant char msg2[] = "goodbye blue sky!" +void print(char *msg) +char *print::msg +char *print::msg#2 // msg zp[2]:4 151.5 +char *print::msg#3 // msg zp[2]:4 104.66666666666666 +char *print::msg#4 // msg zp[2]:4 11.0 +char *screen +char *screen#11 // screen zp[2]:6 157.0 +char *screen#12 // screen zp[2]:6 25.5 +char *screen#17 // screen zp[2]:6 13.0 +void strip(char *p , char c) +char strip::c +char strip::c#3 // reg byte x 10.1 +char *strip::dest +char *strip::dest#0 // dest zp[2]:2 11.0 +char *strip::dest#1 // dest zp[2]:2 202.0 +char *strip::dest#2 // dest zp[2]:2 138.33333333333331 +char *strip::dest#4 // dest zp[2]:2 75.75 +char *strip::p +char *strip::p#2 // p zp[2]:8 101.0 +char *strip::p#4 // p_1 zp[2]:4 85.99999999999999 +char *strip::p#7 // p_1 zp[2]:4 22.0 +char *strip::p#8 // p_1 zp[2]:4 202.0 reg byte x [ strip::c#3 ] zp[2]:2 [ strip::dest#2 strip::dest#0 strip::dest#4 strip::dest#1 ] diff --git a/src/test/ref/strncat-0.asm b/src/test/ref/strncat-0.asm index 62835886e..3e0830b3d 100644 --- a/src/test/ref/strncat-0.asm +++ b/src/test/ref/strncat-0.asm @@ -46,7 +46,7 @@ main: { } // Appends the first num characters of source to destination, plus a terminating null-character. // If the length of the C string in source is less than num, only the content up to the terminating null-character is copied. -// strncat(const byte* zp(2) source, word zp(6) num) +// char * strncat(char *destination, __zp(2) const char *source, __zp(6) unsigned int num) strncat: { .label dst = 4 .label source = 2 diff --git a/src/test/ref/strncat-0.cfg b/src/test/ref/strncat-0.cfg index 722af512f..3ab81d011 100644 --- a/src/test/ref/strncat-0.cfg +++ b/src/test/ref/strncat-0.cfg @@ -2,15 +2,15 @@ void main() main: scope:[main] from [0] phi() - [1] call strncat + [1] call strncat to:main::@3 main::@3: scope:[main] from main [2] phi() - [3] call strncat + [3] call strncat to:main::@4 main::@4: scope:[main] from main::@3 [4] phi() - [5] call strncat + [5] call strncat to:main::@1 main::@1: scope:[main] from main::@2 main::@4 [6] main::i#2 = phi( main::@2/main::i#1, main::@4/0 ) @@ -24,7 +24,7 @@ main::@2: scope:[main] from main::@1 [10] main::i#1 = ++ main::i#2 to:main::@1 -byte* strncat(byte* strncat::destination , const byte* strncat::source , word strncat::num) +char * strncat(char *destination , const char *source , unsigned int num) strncat: scope:[strncat] from main main::@3 main::@4 [11] strncat::source#7 = phi( main/hello, main::@3/space, main::@4/world ) to:strncat::@1 diff --git a/src/test/ref/strncat-0.log b/src/test/ref/strncat-0.log index c83b593f9..dba612f47 100644 --- a/src/test/ref/strncat-0.log +++ b/src/test/ref/strncat-0.log @@ -6,21 +6,21 @@ main: scope:[main] from __start strncat::destination#0 = build strncat::source#0 = hello strncat::num#0 = 5 - call strncat + call strncat strncat::return#0 = strncat::return#4 to:main::@3 main::@3: scope:[main] from main strncat::destination#1 = build strncat::source#1 = space strncat::num#1 = 5 - call strncat + call strncat strncat::return#1 = strncat::return#4 to:main::@4 main::@4: scope:[main] from main::@3 strncat::destination#2 = build strncat::source#2 = world strncat::num#2 = 5 - call strncat + call strncat strncat::return#2 = strncat::return#4 to:main::@5 main::@5: scope:[main] from main::@4 @@ -40,7 +40,7 @@ main::@return: scope:[main] from main::@1 return to:@return -byte* strncat(byte* strncat::destination , const byte* strncat::source , word strncat::num) +char * strncat(char *destination , const char *source , unsigned int num) strncat: scope:[strncat] from main main::@3 main::@4 strncat::num#7 = phi( main/strncat::num#0, main::@3/strncat::num#1, main::@4/strncat::num#2 ) strncat::source#7 = phi( main/strncat::source#0, main::@3/strncat::source#1, main::@4/strncat::source#2 ) @@ -94,7 +94,7 @@ strncat::@return: scope:[strncat] from strncat::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -103,68 +103,68 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte* build[$28] = { fill( $28, 0) } -constant byte* hello[] = "hello" +__constant char build[$28] = { fill( $28, 0) } +__constant char hello[] = "hello" void main() -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant byte* space[] = " " -byte* strncat(byte* strncat::destination , const byte* strncat::source , word strncat::num) -bool~ strncat::$0 -bool~ strncat::$1 -byte* strncat::destination -byte* strncat::destination#0 -byte* strncat::destination#1 -byte* strncat::destination#2 -byte* strncat::destination#3 -byte* strncat::destination#4 -byte* strncat::destination#5 -byte* strncat::destination#6 -byte* strncat::destination#7 -byte* strncat::destination#8 -byte* strncat::dst -byte* strncat::dst#0 -byte* strncat::dst#1 -byte* strncat::dst#2 -byte* strncat::dst#3 -byte* strncat::dst#4 -byte* strncat::dst#5 -byte* strncat::dst#6 -byte* strncat::dst#7 -word strncat::num -word strncat::num#0 -word strncat::num#1 -word strncat::num#2 -word strncat::num#3 -word strncat::num#4 -word strncat::num#5 -word strncat::num#6 -word strncat::num#7 -word strncat::num#8 -byte* strncat::return -byte* strncat::return#0 -byte* strncat::return#1 -byte* strncat::return#2 -byte* strncat::return#3 -byte* strncat::return#4 -byte* strncat::return#5 -const byte* strncat::source -const byte* strncat::source#0 -const byte* strncat::source#1 -const byte* strncat::source#2 -const byte* strncat::source#3 -const byte* strncat::source#4 -const byte* strncat::source#5 -const byte* strncat::source#6 -const byte* strncat::source#7 -const byte* strncat::source#8 -constant byte* world[] = "world war 3" +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant char space[] = " " +char * strncat(char *destination , const char *source , unsigned int num) +bool strncat::$0 +bool strncat::$1 +char *strncat::destination +char *strncat::destination#0 +char *strncat::destination#1 +char *strncat::destination#2 +char *strncat::destination#3 +char *strncat::destination#4 +char *strncat::destination#5 +char *strncat::destination#6 +char *strncat::destination#7 +char *strncat::destination#8 +char *strncat::dst +char *strncat::dst#0 +char *strncat::dst#1 +char *strncat::dst#2 +char *strncat::dst#3 +char *strncat::dst#4 +char *strncat::dst#5 +char *strncat::dst#6 +char *strncat::dst#7 +unsigned int strncat::num +unsigned int strncat::num#0 +unsigned int strncat::num#1 +unsigned int strncat::num#2 +unsigned int strncat::num#3 +unsigned int strncat::num#4 +unsigned int strncat::num#5 +unsigned int strncat::num#6 +unsigned int strncat::num#7 +unsigned int strncat::num#8 +char *strncat::return +char *strncat::return#0 +char *strncat::return#1 +char *strncat::return#2 +char *strncat::return#3 +char *strncat::return#4 +char *strncat::return#5 +const char *strncat::source +const char *strncat::source#0 +const char *strncat::source#1 +const char *strncat::source#2 +const char *strncat::source#3 +const char *strncat::source#4 +const char *strncat::source#5 +const char *strncat::source#6 +const char *strncat::source#7 +const char *strncat::source#8 +__constant char world[] = "world war 3" Adding number conversion cast (unumber) 5 in strncat::num#0 = 5 Adding number conversion cast (unumber) 5 in strncat::num#1 = 5 @@ -178,7 +178,7 @@ Inlining cast strncat::num#1 = (unumber)5 Inlining cast strncat::num#2 = (unumber)5 Inlining cast *strncat::dst#7 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 5 Simplifying constant integer cast 5 @@ -186,12 +186,12 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias strncat::dst#0 = strncat::destination#3 @@ -242,8 +242,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition strncat::$2 [16] if(0!=strncat::num#4) goto strncat::@6 Simple Condition strncat::$3 [22] if(0!=*strncat::dst#5) goto strncat::@4 @@ -271,8 +271,8 @@ Successful SSA optimization Pass2ConstantInlining Identical Phi Values strncat::dst#0 build Identical Phi Values strncat::num#7 5 Successful SSA optimization Pass2IdenticalPhiElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting strncat::@7(between strncat::@1 and strncat::@3) Fixing phi predecessor for strncat::num#4 to new block ( strncat::@1 -> strncat::@7 ) during phi lifting. @@ -303,15 +303,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call strncat + [1] call strncat to:main::@3 main::@3: scope:[main] from main [2] phi() - [3] call strncat + [3] call strncat to:main::@4 main::@4: scope:[main] from main::@3 [4] phi() - [5] call strncat + [5] call strncat to:main::@1 main::@1: scope:[main] from main::@2 main::@4 [6] main::i#2 = phi( main::@2/main::i#1, main::@4/0 ) @@ -325,7 +325,7 @@ main::@2: scope:[main] from main::@1 [10] main::i#1 = ++ main::i#2 to:main::@1 -byte* strncat(byte* strncat::destination , const byte* strncat::source , word strncat::num) +char * strncat(char *destination , const char *source , unsigned int num) strncat: scope:[strncat] from main main::@3 main::@4 [11] strncat::source#7 = phi( main/hello, main::@3/space, main::@4/world ) to:strncat::@1 @@ -361,24 +361,24 @@ strncat::@2: scope:[strncat] from strncat::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 18.333333333333332 -byte* strncat(byte* strncat::destination , const byte* strncat::source , word strncat::num) -byte* strncat::destination -byte* strncat::dst -byte* strncat::dst#1 202.0 -byte* strncat::dst#2 202.0 -byte* strncat::dst#3 202.0 -byte* strncat::dst#5 85.99999999999999 -word strncat::num -word strncat::num#3 101.0 -word strncat::num#4 60.599999999999994 -byte* strncat::return -const byte* strncat::source -const byte* strncat::source#3 40.4 -const byte* strncat::source#4 202.0 -const byte* strncat::source#7 25.25 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 18.333333333333332 +char * strncat(char *destination , const char *source , unsigned int num) +char *strncat::destination +char *strncat::dst +char *strncat::dst#1 // 202.0 +char *strncat::dst#2 // 202.0 +char *strncat::dst#3 // 202.0 +char *strncat::dst#5 // 85.99999999999999 +unsigned int strncat::num +unsigned int strncat::num#3 // 101.0 +unsigned int strncat::num#4 // 60.599999999999994 +char *strncat::return +const char *strncat::source +const char *strncat::source#3 // 40.4 +const char *strncat::source#4 // 202.0 +const char *strncat::source#7 // 25.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -446,7 +446,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call strncat + // [1] call strncat // [11] phi from main to strncat [phi:main->strncat] strncat_from_main: // [11] phi strncat::source#7 = hello [phi:main->strncat#0] -- pbuz1=pbuc1 @@ -460,7 +460,7 @@ main: { jmp __b3 // main::@3 __b3: - // [3] call strncat + // [3] call strncat // [11] phi from main::@3 to strncat [phi:main::@3->strncat] strncat_from___b3: // [11] phi strncat::source#7 = space [phi:main::@3->strncat#0] -- pbuz1=pbuc1 @@ -474,7 +474,7 @@ main: { jmp __b4 // main::@4 __b4: - // [5] call strncat + // [5] call strncat // [11] phi from main::@4 to strncat [phi:main::@4->strncat] strncat_from___b4: // [11] phi strncat::source#7 = world [phi:main::@4->strncat#0] -- pbuz1=pbuc1 @@ -514,7 +514,7 @@ main: { // strncat // Appends the first num characters of source to destination, plus a terminating null-character. // If the length of the C string in source is less than num, only the content up to the terminating null-character is copied. -// strncat(const byte* zp(2) source, word zp(6) num) +// char * strncat(char *destination, __zp(2) const char *source, __zp(6) unsigned int num) strncat: { .label dst = 4 .label source = 2 @@ -659,30 +659,30 @@ Succesful ASM optimization Pass5UnusedLabelElimination Replacing instruction lda #>5 with TYA FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* build[$28] = { fill( $28, 0) } -constant byte* hello[] = "hello" +__constant char * const SCREEN = (char *) 1024 +__constant char build[$28] = { fill( $28, 0) } +__constant char hello[] = "hello" void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 18.333333333333332 -constant byte* space[] = " " -byte* strncat(byte* strncat::destination , const byte* strncat::source , word strncat::num) -byte* strncat::destination -byte* strncat::dst -byte* strncat::dst#1 dst zp[2]:4 202.0 -byte* strncat::dst#2 dst zp[2]:4 202.0 -byte* strncat::dst#3 dst zp[2]:4 202.0 -byte* strncat::dst#5 dst zp[2]:4 85.99999999999999 -word strncat::num -word strncat::num#3 num zp[2]:6 101.0 -word strncat::num#4 num zp[2]:6 60.599999999999994 -byte* strncat::return -const byte* strncat::source -const byte* strncat::source#3 source zp[2]:2 40.4 -const byte* strncat::source#4 source zp[2]:2 202.0 -const byte* strncat::source#7 source zp[2]:2 25.25 -constant byte* world[] = "world war 3" +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 18.333333333333332 +__constant char space[] = " " +char * strncat(char *destination , const char *source , unsigned int num) +char *strncat::destination +char *strncat::dst +char *strncat::dst#1 // dst zp[2]:4 202.0 +char *strncat::dst#2 // dst zp[2]:4 202.0 +char *strncat::dst#3 // dst zp[2]:4 202.0 +char *strncat::dst#5 // dst zp[2]:4 85.99999999999999 +unsigned int strncat::num +unsigned int strncat::num#3 // num zp[2]:6 101.0 +unsigned int strncat::num#4 // num zp[2]:6 60.599999999999994 +char *strncat::return +const char *strncat::source +const char *strncat::source#3 // source zp[2]:2 40.4 +const char *strncat::source#4 // source zp[2]:2 202.0 +const char *strncat::source#7 // source zp[2]:2 25.25 +__constant char world[] = "world war 3" reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ strncat::source#4 strncat::source#7 strncat::source#3 ] @@ -710,7 +710,7 @@ Score: 1575 // main main: { // strncat(build, hello, 5) - // [1] call strncat + // [1] call strncat // [11] phi from main to strncat [phi:main->strncat] // [11] phi strncat::source#7 = hello [phi:main->strncat#0] -- pbuz1=pbuc1 lda #main::@3] // main::@3 // strncat(build, space, 5) - // [3] call strncat + // [3] call strncat // [11] phi from main::@3 to strncat [phi:main::@3->strncat] // [11] phi strncat::source#7 = space [phi:main::@3->strncat#0] -- pbuz1=pbuc1 lda #main::@4] // main::@4 // strncat(build, world, 5) - // [5] call strncat + // [5] call strncat // [11] phi from main::@4 to strncat [phi:main::@4->strncat] // [11] phi strncat::source#7 = world [phi:main::@4->strncat#0] -- pbuz1=pbuc1 lda #print_person] print_person_from_main: - // [5] phi print_person::person_name#4 = (byte*)&jesper+OFFSET_STRUCT_PERSON_NAME [phi:main->print_person#0] -- pbuz1=pbuc1 + // [5] phi print_person::person_name#4 = (char *)&jesper+OFFSET_STRUCT_PERSON_NAME [phi:main->print_person#0] -- pbuz1=pbuc1 lda #jesper+OFFSET_STRUCT_PERSON_NAME @@ -373,12 +373,12 @@ main: { jmp __b1 // main::@1 __b1: - // [2] print_person::person_id#1 = *((byte*)&henriette) -- vbuxx=_deref_pbuc1 + // [2] print_person::person_id#1 = *((char *)&henriette) -- vbuxx=_deref_pbuc1 ldx henriette - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: - // [5] phi print_person::person_name#4 = (byte*)&henriette+OFFSET_STRUCT_PERSON_NAME [phi:main::@1->print_person#0] -- pbuz1=pbuc1 + // [5] phi print_person::person_name#4 = (char *)&henriette+OFFSET_STRUCT_PERSON_NAME [phi:main::@1->print_person#0] -- pbuz1=pbuc1 lda #henriette+OFFSET_STRUCT_PERSON_NAME @@ -393,7 +393,7 @@ main: { rts } // print_person -// print_person(byte register(X) person_id, byte* zp(2) person_name) +// void print_person(__register(X) char person_id, __zp(2) char *person_name) print_person: { .label person_name = 2 // [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx @@ -481,30 +481,30 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -struct Person henriette loadstore mem[65] = { id: 7, name: "henriette" } -byte idx -byte idx#14 reg byte y 12.0 -byte idx#15 reg byte x 84.0 -byte idx#17 reg byte y 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 -struct Person jesper loadstore mem[65] = { id: 4, name: "jesper" } +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__loadstore struct Person henriette = { id: 7, name: "henriette" } // mem[65] +char idx +char idx#14 // reg byte y 12.0 +char idx#15 // reg byte x 84.0 +char idx#17 // reg byte y 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 +__loadstore struct Person jesper = { id: 4, name: "jesper" } // mem[65] void main() -void print_person(byte print_person::person_id , byte* print_person::person_name) -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 101.0 +void print_person(char person_id , char *person_name) +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 101.0 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#0 reg byte x 4.0 -byte print_person::person_id#1 reg byte x 4.0 -byte print_person::person_id#2 reg byte x 15.0 -byte* print_person::person_name -byte* print_person::person_name#4 person_name zp[2]:2 20.2 +char print_person::person_id +char print_person::person_id#0 // reg byte x 4.0 +char print_person::person_id#1 // reg byte x 4.0 +char print_person::person_id#2 // reg byte x 15.0 +char *print_person::person_name +char *print_person::person_name#4 // person_name zp[2]:2 20.2 reg byte x [ print_person::person_id#2 print_person::person_id#0 print_person::person_id#1 ] reg byte y [ idx#14 idx#17 ] @@ -537,11 +537,11 @@ Score: 386 // main main: { // print_person(jesper) - // [0] print_person::person_id#0 = *((byte*)&jesper) -- vbuxx=_deref_pbuc1 + // [0] print_person::person_id#0 = *((char *)&jesper) -- vbuxx=_deref_pbuc1 ldx jesper - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] - // [5] phi print_person::person_name#4 = (byte*)&jesper+OFFSET_STRUCT_PERSON_NAME [phi:main->print_person#0] -- pbuz1=pbuc1 + // [5] phi print_person::person_name#4 = (char *)&jesper+OFFSET_STRUCT_PERSON_NAME [phi:main->print_person#0] -- pbuz1=pbuc1 lda #jesper+OFFSET_STRUCT_PERSON_NAME @@ -552,11 +552,11 @@ main: { jsr print_person // main::@1 // print_person(henriette) - // [2] print_person::person_id#1 = *((byte*)&henriette) -- vbuxx=_deref_pbuc1 + // [2] print_person::person_id#1 = *((char *)&henriette) -- vbuxx=_deref_pbuc1 ldx henriette - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] - // [5] phi print_person::person_name#4 = (byte*)&henriette+OFFSET_STRUCT_PERSON_NAME [phi:main::@1->print_person#0] -- pbuz1=pbuc1 + // [5] phi print_person::person_name#4 = (char *)&henriette+OFFSET_STRUCT_PERSON_NAME [phi:main::@1->print_person#0] -- pbuz1=pbuc1 lda #henriette+OFFSET_STRUCT_PERSON_NAME @@ -570,7 +570,7 @@ main: { rts } // print_person -// print_person(byte register(X) person_id, byte* zp(2) person_name) +// void print_person(__register(X) char person_id, __zp(2) char *person_name) print_person: { .label person_name = 2 // SCREEN[idx++] = DIGIT[person.id] diff --git a/src/test/ref/struct-11.sym b/src/test/ref/struct-11.sym index 0e98d3a97..e81e35915 100644 --- a/src/test/ref/struct-11.sym +++ b/src/test/ref/struct-11.sym @@ -1,27 +1,27 @@ -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -struct Person henriette loadstore mem[65] = { id: 7, name: "henriette" } -byte idx -byte idx#14 reg byte y 12.0 -byte idx#15 reg byte x 84.0 -byte idx#17 reg byte y 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 -struct Person jesper loadstore mem[65] = { id: 4, name: "jesper" } +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__loadstore struct Person henriette = { id: 7, name: "henriette" } // mem[65] +char idx +char idx#14 // reg byte y 12.0 +char idx#15 // reg byte x 84.0 +char idx#17 // reg byte y 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 +__loadstore struct Person jesper = { id: 4, name: "jesper" } // mem[65] void main() -void print_person(byte print_person::person_id , byte* print_person::person_name) -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 101.0 +void print_person(char person_id , char *person_name) +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 101.0 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#0 reg byte x 4.0 -byte print_person::person_id#1 reg byte x 4.0 -byte print_person::person_id#2 reg byte x 15.0 -byte* print_person::person_name -byte* print_person::person_name#4 person_name zp[2]:2 20.2 +char print_person::person_id +char print_person::person_id#0 // reg byte x 4.0 +char print_person::person_id#1 // reg byte x 4.0 +char print_person::person_id#2 // reg byte x 15.0 +char *print_person::person_name +char *print_person::person_name#4 // person_name zp[2]:2 20.2 reg byte x [ print_person::person_id#2 print_person::person_id#0 print_person::person_id#1 ] reg byte y [ idx#14 idx#17 ] diff --git a/src/test/ref/struct-11b.asm b/src/test/ref/struct-11b.asm index 2f98565e0..49781a0c0 100644 --- a/src/test/ref/struct-11b.asm +++ b/src/test/ref/struct-11b.asm @@ -26,7 +26,7 @@ main: { // } rts } -// print_person(byte* zp(2) person_initials) +// void print_person(unsigned long person_id, __zp(2) char *person_initials) print_person: { .label person_initials = 2 ldy #0 diff --git a/src/test/ref/struct-11b.cfg b/src/test/ref/struct-11b.cfg index 28caabcd2..dcdc8b0cf 100644 --- a/src/test/ref/struct-11b.cfg +++ b/src/test/ref/struct-11b.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(dword print_person::person_id , byte* print_person::person_initials) +void print_person(unsigned long person_id , char *person_initials) print_person: scope:[print_person] from main main::@1 [5] idx#20 = phi( main/0, main::@1/idx#14 ) [5] print_person::person_initials#4 = phi( main/jesper_initials, main::@1/henry_initials ) diff --git a/src/test/ref/struct-11b.log b/src/test/ref/struct-11b.log index 84387cd02..2df868283 100644 --- a/src/test/ref/struct-11b.log +++ b/src/test/ref/struct-11b.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -7,14 +7,14 @@ main: scope:[main] from __start::@1 idx#17 = phi( __start::@1/idx#19 ) print_person::person_id#0 = jesper_id print_person::person_initials#0 = jesper_initials - call print_person + call print_person to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) idx#0 = idx#9 print_person::person_id#1 = henry_id print_person::person_initials#1 = henry_initials - call print_person + call print_person to:main::@2 main::@2: scope:[main] from main::@1 idx#10 = phi( main::@1/idx#5 ) @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_person(dword print_person::person_id , byte* print_person::person_initials) +void print_person(unsigned long person_id , char *person_initials) print_person: scope:[print_person] from main main::@1 idx#20 = phi( main/idx#17, main::@1/idx#0 ) print_person::person_initials#4 = phi( main/print_person::person_initials#0, main::@1/print_person::person_initials#1 ) @@ -66,7 +66,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#19 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#2 ) @@ -79,58 +79,58 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant dword henry_id = $4466d -constant byte* henry_initials[$40] = "hg" -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 -constant dword jesper_id = $1b244 -constant byte* jesper_initials[$40] = "jg" +__constant unsigned long henry_id = $4466d +__constant char henry_initials[$40] = "hg" +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 +__constant unsigned long jesper_id = $1b244 +__constant char jesper_initials[$40] = "jg" void main() -void print_person(dword print_person::person_id , byte* print_person::person_initials) -bool~ print_person::$0 -byte print_person::i -byte print_person::i#0 -byte print_person::i#1 -byte print_person::i#2 -byte print_person::i#3 -dword print_person::person_id -dword print_person::person_id#0 -dword print_person::person_id#1 -byte* print_person::person_initials -byte* print_person::person_initials#0 -byte* print_person::person_initials#1 -byte* print_person::person_initials#2 -byte* print_person::person_initials#3 -byte* print_person::person_initials#4 +void print_person(unsigned long person_id , char *person_initials) +bool print_person::$0 +char print_person::i +char print_person::i#0 +char print_person::i#1 +char print_person::i#2 +char print_person::i#3 +unsigned long print_person::person_id +unsigned long print_person::person_id#0 +unsigned long print_person::person_id#1 +char *print_person::person_initials +char *print_person::person_initials#0 +char *print_person::person_initials#1 +char *print_person::person_initials#2 +char *print_person::person_initials#3 +char *print_person::person_initials#4 Adding number conversion cast (unumber) 0 in print_person::$0 = 0 != print_person::person_initials#2[print_person::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#9 Alias idx#1 = idx#10 idx#11 idx#2 @@ -178,8 +178,8 @@ Constant inlined idx#19 = 0 Constant inlined print_person::person_initials#0 = jesper_initials Constant inlined print_person::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -201,17 +201,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(dword print_person::person_id , byte* print_person::person_initials) +void print_person(unsigned long person_id , char *person_initials) print_person: scope:[print_person] from main main::@1 [5] idx#20 = phi( main/0, main::@1/idx#14 ) [5] print_person::person_initials#4 = phi( main/jesper_initials, main::@1/henry_initials ) @@ -236,19 +236,19 @@ print_person::@2: scope:[print_person] from print_person::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#12 84.0 -byte idx#14 3.25 -byte idx#20 13.0 -byte idx#3 101.0 +char idx +char idx#12 // 84.0 +char idx#14 // 3.25 +char idx#20 // 13.0 +char idx#3 // 101.0 void main() -void print_person(dword print_person::person_id , byte* print_person::person_initials) -byte print_person::i -byte print_person::i#1 202.0 -byte print_person::i#2 101.0 -dword print_person::person_id -byte* print_person::person_initials -byte* print_person::person_initials#4 33.666666666666664 +void print_person(unsigned long person_id , char *person_initials) +char print_person::i +char print_person::i#1 // 202.0 +char print_person::i#2 // 101.0 +unsigned long print_person::person_id +char *print_person::person_initials +char *print_person::person_initials#4 // 33.666666666666664 Initial phi equivalence classes [ print_person::person_initials#4 ] @@ -300,7 +300,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] print_person_from_main: // [5] phi idx#20 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 @@ -316,7 +316,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi idx#20 = idx#14 [phi:main::@1->print_person#0] -- register_copy @@ -333,7 +333,7 @@ main: { rts } // print_person -// print_person(byte* zp(2) person_initials) +// void print_person(unsigned long person_id, __zp(2) char *person_initials) print_person: { .label person_initials = 2 // [6] phi from print_person to print_person::@1 [phi:print_person->print_person::@1] @@ -405,22 +405,22 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte* henry_initials[$40] = "hg" -byte idx -byte idx#12 reg byte x 84.0 -byte idx#14 reg byte x 3.25 -byte idx#20 reg byte x 13.0 -byte idx#3 reg byte x 101.0 -constant byte* jesper_initials[$40] = "jg" +__constant char * const SCREEN = (char *) 1024 +__constant char henry_initials[$40] = "hg" +char idx +char idx#12 // reg byte x 84.0 +char idx#14 // reg byte x 3.25 +char idx#20 // reg byte x 13.0 +char idx#3 // reg byte x 101.0 +__constant char jesper_initials[$40] = "jg" void main() -void print_person(dword print_person::person_id , byte* print_person::person_initials) -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 101.0 -dword print_person::person_id -byte* print_person::person_initials -byte* print_person::person_initials#4 person_initials zp[2]:2 33.666666666666664 +void print_person(unsigned long person_id , char *person_initials) +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 101.0 +unsigned long print_person::person_id +char *print_person::person_initials +char *print_person::person_initials#4 // person_initials zp[2]:2 33.666666666666664 zp[2]:2 [ print_person::person_initials#4 ] reg byte y [ print_person::i#2 print_person::i#1 ] @@ -447,7 +447,7 @@ Score: 350 // main main: { // print_person(jesper_id, jesper_initials) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi idx#20 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 ldx #0 @@ -460,7 +460,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_person(henry_id, henry_initials) - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] // [5] phi idx#20 = idx#14 [phi:main::@1->print_person#0] -- register_copy // [5] phi print_person::person_initials#4 = henry_initials [phi:main::@1->print_person#1] -- pbuz1=pbuc1 @@ -475,7 +475,7 @@ main: { rts } // print_person -// print_person(byte* zp(2) person_initials) +// void print_person(unsigned long person_id, __zp(2) char *person_initials) print_person: { .label person_initials = 2 // [6] phi from print_person to print_person::@1 [phi:print_person->print_person::@1] diff --git a/src/test/ref/struct-11b.sym b/src/test/ref/struct-11b.sym index 4465fc6fb..3344d889d 100644 --- a/src/test/ref/struct-11b.sym +++ b/src/test/ref/struct-11b.sym @@ -1,19 +1,19 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte* henry_initials[$40] = "hg" -byte idx -byte idx#12 reg byte x 84.0 -byte idx#14 reg byte x 3.25 -byte idx#20 reg byte x 13.0 -byte idx#3 reg byte x 101.0 -constant byte* jesper_initials[$40] = "jg" +__constant char * const SCREEN = (char *) 1024 +__constant char henry_initials[$40] = "hg" +char idx +char idx#12 // reg byte x 84.0 +char idx#14 // reg byte x 3.25 +char idx#20 // reg byte x 13.0 +char idx#3 // reg byte x 101.0 +__constant char jesper_initials[$40] = "jg" void main() -void print_person(dword print_person::person_id , byte* print_person::person_initials) -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 101.0 -dword print_person::person_id -byte* print_person::person_initials -byte* print_person::person_initials#4 person_initials zp[2]:2 33.666666666666664 +void print_person(unsigned long person_id , char *person_initials) +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 101.0 +unsigned long print_person::person_id +char *print_person::person_initials +char *print_person::person_initials#4 // person_initials zp[2]:2 33.666666666666664 zp[2]:2 [ print_person::person_initials#4 ] reg byte y [ print_person::i#2 print_person::i#1 ] diff --git a/src/test/ref/struct-12.asm b/src/test/ref/struct-12.asm index b99886a5d..545e2fe7e 100644 --- a/src/test/ref/struct-12.asm +++ b/src/test/ref/struct-12.asm @@ -51,7 +51,7 @@ main: { henriette_name: .fill $40, 0 } .segment Code -// print_person(byte register(X) person_id, byte* zp(3) person_name) +// void print_person(__register(X) char person_id, __zp(3) char *person_name) print_person: { .label person_name = 3 // SCREEN[idx++] = DIGIT[person.id] diff --git a/src/test/ref/struct-12.cfg b/src/test/ref/struct-12.cfg index 1adf40846..1f65b3cce 100644 --- a/src/test/ref/struct-12.cfg +++ b/src/test/ref/struct-12.cfg @@ -1,18 +1,18 @@ void main() main: scope:[main] from - [0] *main::jesper_name = memcpy(*(&$0), byte, $40) - [1] call print_person + [0] *main::jesper_name = memcpy(*(&$0), char, $40) + [1] call print_person to:main::@1 main::@1: scope:[main] from main - [2] *main::henriette_name = memcpy(*(&$1), byte, $40) - [3] call print_person + [2] *main::henriette_name = memcpy(*(&$1), char, $40) + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(byte print_person::person_id , byte* print_person::person_name) +void print_person(char person_id , char *person_name) print_person: scope:[print_person] from main main::@1 [5] print_person::person_name#4 = phi( main/main::jesper_name, main::@1/main::henriette_name ) [5] idx#14 = phi( main/0, main::@1/idx#17 ) diff --git a/src/test/ref/struct-12.log b/src/test/ref/struct-12.log index add7745a4..d1c832b61 100644 --- a/src/test/ref/struct-12.log +++ b/src/test/ref/struct-12.log @@ -5,25 +5,25 @@ Fixing struct type size struct Person to 65 Fixing struct type size struct Person to 65 Fixing struct type SIZE_OF struct Person to 65 Fixing struct type SIZE_OF struct Person to 65 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 idx#20 = phi( __start::@1/idx#22 ) - *main::jesper_name = memcpy(*(&$0), byte, $40) + *main::jesper_name = memcpy(*(&$0), char, $40) print_person::person_id#0 = main::jesper_id print_person::person_name#0 = main::jesper_name - call print_person + call print_person to:main::@1 main::@1: scope:[main] from main idx#11 = phi( main/idx#7 ) idx#0 = idx#11 - *main::henriette_name = memcpy(*(&$1), byte, $40) + *main::henriette_name = memcpy(*(&$1), char, $40) print_person::person_id#1 = main::henriette_id print_person::person_name#1 = main::henriette_name - call print_person + call print_person to:main::@2 main::@2: scope:[main] from main::@1 idx#12 = phi( main::@1/idx#7 ) @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_person(byte print_person::person_id , byte* print_person::person_name) +void print_person(char person_id , char *person_name) print_person: scope:[print_person] from main main::@1 print_person::person_name#4 = phi( main/print_person::person_name#0, main::@1/print_person::person_name#1 ) idx#14 = phi( main/idx#20, main::@1/idx#0 ) @@ -80,7 +80,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#22 = phi( __start::__init1/idx#8 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#18 = phi( __start::@1/idx#2 ) @@ -93,65 +93,65 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* $0[$40] = "jesper" -constant byte* $1[$40] = "henriette" -constant byte* DIGIT[] = "0123456789" -constant byte* const SCREEN = (byte*)$400 +__constant char $0[$40] = "jesper" +__constant char $1[$40] = "henriette" +__constant char DIGIT[] = "0123456789" +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant byte main::henriette_id = 7 -constant byte* main::henriette_name[$40] = { fill( $40, 0) } -constant byte main::jesper_id = 4 -constant byte* main::jesper_name[$40] = { fill( $40, 0) } -void print_person(byte print_person::person_id , byte* print_person::person_name) -bool~ print_person::$0 -byte print_person::i -byte print_person::i#0 -byte print_person::i#1 -byte print_person::i#2 -byte print_person::i#3 +__constant char main::henriette_id = 7 +__constant char main::henriette_name[$40] = { fill( $40, 0) } +__constant char main::jesper_id = 4 +__constant char main::jesper_name[$40] = { fill( $40, 0) } +void print_person(char person_id , char *person_name) +bool print_person::$0 +char print_person::i +char print_person::i#0 +char print_person::i#1 +char print_person::i#2 +char print_person::i#3 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#0 -byte print_person::person_id#1 -byte print_person::person_id#2 -byte* print_person::person_name -byte* print_person::person_name#0 -byte* print_person::person_name#1 -byte* print_person::person_name#2 -byte* print_person::person_name#3 -byte* print_person::person_name#4 +char print_person::person_id +char print_person::person_id#0 +char print_person::person_id#1 +char print_person::person_id#2 +char *print_person::person_name +char *print_person::person_name#0 +char *print_person::person_name#1 +char *print_person::person_name#2 +char *print_person::person_name#3 +char *print_person::person_name#4 Adding number conversion cast (unumber) 0 in print_person::$0 = 0 != print_person::person_name#2[print_person::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#11 Alias idx#1 = idx#12 idx#13 idx#2 @@ -197,10 +197,10 @@ Constant inlined print_person::person_id#0 = main::jesper_id Constant inlined print_person::i#0 = 0 Constant inlined print_person::person_name#0 = main::jesper_name Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@2 CALL GRAPH @@ -218,18 +218,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::jesper_name = memcpy(*(&$0), byte, $40) - [1] call print_person + [0] *main::jesper_name = memcpy(*(&$0), char, $40) + [1] call print_person to:main::@1 main::@1: scope:[main] from main - [2] *main::henriette_name = memcpy(*(&$1), byte, $40) - [3] call print_person + [2] *main::henriette_name = memcpy(*(&$1), char, $40) + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(byte print_person::person_id , byte* print_person::person_name) +void print_person(char person_id , char *person_name) print_person: scope:[print_person] from main main::@1 [5] print_person::person_name#4 = phi( main/main::jesper_name, main::@1/main::henriette_name ) [5] idx#14 = phi( main/0, main::@1/idx#17 ) @@ -259,23 +259,23 @@ print_person::@2: scope:[print_person] from print_person::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#14 12.0 -byte idx#15 84.0 -byte idx#17 3.25 -byte idx#3 16.5 -byte idx#4 22.0 -byte idx#5 101.0 +char idx +char idx#14 // 12.0 +char idx#15 // 84.0 +char idx#17 // 3.25 +char idx#3 // 16.5 +char idx#4 // 22.0 +char idx#5 // 101.0 void main() -void print_person(byte print_person::person_id , byte* print_person::person_name) -byte print_person::i -byte print_person::i#1 202.0 -byte print_person::i#2 101.0 +void print_person(char person_id , char *person_name) +char print_person::i +char print_person::i#1 // 202.0 +char print_person::i#2 // 101.0 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#2 11.0 -byte* print_person::person_name -byte* print_person::person_name#4 20.2 +char print_person::person_id +char print_person::person_id#2 // 11.0 +char *print_person::person_name +char *print_person::person_name#4 // 20.2 Initial phi equivalence classes [ print_person::person_id#2 ] @@ -298,8 +298,8 @@ Allocated zp[1]:6 [ print_person::i#2 print_person::i#1 ] Allocated zp[1]:7 [ idx#15 idx#4 idx#5 ] Allocated zp[1]:8 [ idx#3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::jesper_name = memcpy(*(&$0), byte, $40) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [2] *main::henriette_name = memcpy(*(&$1), byte, $40) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [0] *main::jesper_name = memcpy(*(&$0), char, $40) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y +Statement [2] *main::henriette_name = memcpy(*(&$1), char, $40) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:3 [ idx#14 idx#17 ] Removing always clobbered register reg byte y as potential for zp[1]:3 [ idx#14 idx#17 ] Statement [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] [ idx#14 print_person::person_name#4 ] ( print_person:1 [ idx#14 print_person::person_name#4 ] { } print_person:3 [ idx#14 print_person::person_name#4 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a @@ -310,8 +310,8 @@ Removing always clobbered register reg byte a as potential for zp[1]:6 [ print_p Removing always clobbered register reg byte a as potential for zp[1]:7 [ idx#15 idx#4 idx#5 ] Statement [12] SCREEN[idx#15] = ' ' [ idx#15 ] ( print_person:1 [ idx#15 ] { } print_person:3 [ idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [15] SCREEN[idx#15] = print_person::person_name#4[print_person::i#2] [ print_person::person_name#4 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person_name#4 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person_name#4 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [0] *main::jesper_name = memcpy(*(&$0), byte, $40) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [2] *main::henriette_name = memcpy(*(&$1), byte, $40) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [0] *main::jesper_name = memcpy(*(&$0), char, $40) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y +Statement [2] *main::henriette_name = memcpy(*(&$1), char, $40) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] [ idx#14 print_person::person_name#4 ] ( print_person:1 [ idx#14 print_person::person_name#4 ] { } print_person:3 [ idx#14 print_person::person_name#4 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [8] SCREEN[idx#3] = ' ' [ print_person::person_name#4 idx#3 ] ( print_person:1 [ print_person::person_name#4 idx#3 ] { } print_person:3 [ print_person::person_name#4 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [11] if(0!=print_person::person_name#4[print_person::i#2]) goto print_person::@2 [ print_person::person_name#4 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person_name#4 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person_name#4 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a @@ -360,14 +360,14 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .const jesper_id = 4 .const henriette_id = 7 - // [0] *main::jesper_name = memcpy(*(&$0), byte, $40) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [0] *main::jesper_name = memcpy(*(&$0), char, $40) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #$40 !: lda __0-1,y sta jesper_name-1,y dey bne !- - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] print_person_from_main: // [5] phi print_person::person_name#4 = main::jesper_name [phi:main->print_person#0] -- pbuz1=pbuc1 @@ -384,14 +384,14 @@ main: { jmp __b1 // main::@1 __b1: - // [2] *main::henriette_name = memcpy(*(&$1), byte, $40) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [2] *main::henriette_name = memcpy(*(&$1), char, $40) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #$40 !: lda __1-1,y sta henriette_name-1,y dey bne !- - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi print_person::person_name#4 = main::henriette_name [phi:main::@1->print_person#0] -- pbuz1=pbuc1 @@ -414,7 +414,7 @@ main: { } .segment Code // print_person -// print_person(byte register(X) person_id, byte* zp(3) person_name) +// void print_person(__register(X) char person_id, __zp(3) char *person_name) print_person: { .label person_name = 3 // [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx @@ -499,31 +499,31 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* $0[$40] = "jesper" -constant byte* $1[$40] = "henriette" -constant byte* DIGIT[] = "0123456789" -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#14 idx zp[1]:2 12.0 -byte idx#15 reg byte x 84.0 -byte idx#17 idx zp[1]:2 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant char $0[$40] = "jesper" +__constant char $1[$40] = "henriette" +__constant char DIGIT[] = "0123456789" +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#14 // idx zp[1]:2 12.0 +char idx#15 // reg byte x 84.0 +char idx#17 // idx zp[1]:2 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -constant byte main::henriette_id = 7 -constant byte* main::henriette_name[$40] = { fill( $40, 0) } -constant byte main::jesper_id = 4 -constant byte* main::jesper_name[$40] = { fill( $40, 0) } -void print_person(byte print_person::person_id , byte* print_person::person_name) -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 101.0 +__constant char main::henriette_id = 7 +__constant char main::henriette_name[$40] = { fill( $40, 0) } +__constant char main::jesper_id = 4 +__constant char main::jesper_name[$40] = { fill( $40, 0) } +void print_person(char person_id , char *person_name) +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 101.0 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#2 reg byte x 11.0 -byte* print_person::person_name -byte* print_person::person_name#4 person_name zp[2]:3 20.2 +char print_person::person_id +char print_person::person_id#2 // reg byte x 11.0 +char *print_person::person_name +char *print_person::person_name#4 // person_name zp[2]:3 20.2 reg byte x [ print_person::person_id#2 ] zp[1]:2 [ idx#14 idx#17 ] @@ -557,7 +557,7 @@ main: { .const jesper_id = 4 .const henriette_id = 7 // struct Person jesper = { 4, "jesper" } - // [0] *main::jesper_name = memcpy(*(&$0), byte, $40) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [0] *main::jesper_name = memcpy(*(&$0), char, $40) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #$40 !: lda __0-1,y @@ -565,7 +565,7 @@ main: { dey bne !- // print_person(jesper) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi print_person::person_name#4 = main::jesper_name [phi:main->print_person#0] -- pbuz1=pbuc1 lda #print_person] // [5] phi print_person::person_name#4 = main::henriette_name [phi:main::@1->print_person#0] -- pbuz1=pbuc1 lda #x - // [1] *SCREEN = *((byte*)main::ptr) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)main::ptr) -- _deref_pbuc1=_deref_pbuc2 lda.z ptr sta SCREEN // SCREEN[1] = ptr->y - // [2] *(SCREEN+1) = *((byte*)main::ptr+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)main::ptr+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda ptr+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-21.sym b/src/test/ref/struct-21.sym index ed875ca30..12afbcf5d 100644 --- a/src/test/ref/struct-21.sym +++ b/src/test/ref/struct-21.sym @@ -1,9 +1,9 @@ -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -volatile struct Point main::point1 loadstore zp[2]:2 -constant struct Point* main::ptr = &main::point1 +__loadstore volatile struct Point main::point1 // zp[2]:2 +__constant struct Point *main::ptr = &main::point1 zp[2]:2 [ main::point1 ] diff --git a/src/test/ref/struct-22.asm b/src/test/ref/struct-22.asm index 902c4e712..f789bcef6 100644 --- a/src/test/ref/struct-22.asm +++ b/src/test/ref/struct-22.asm @@ -39,7 +39,7 @@ main: { // } rts } -// print(byte register(X) p_x, byte register(A) p_y) +// void print(__register(X) char p_x, __register(A) char p_y) print: { // SCREEN[0] = p.x stx SCREEN diff --git a/src/test/ref/struct-22.cfg b/src/test/ref/struct-22.cfg index d37581c3f..7707b8625 100644 --- a/src/test/ref/struct-22.cfg +++ b/src/test/ref/struct-22.cfg @@ -3,20 +3,20 @@ void main() main: scope:[main] from [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [1] *(&main::point2) = memcpy(*(&$1), struct Point, SIZEOF_STRUCT_POINT) - [2] print::p_x#0 = *((byte*)&main::point1) - [3] print::p_y#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) - [4] call print + [2] print::p_x#0 = *((char *)&main::point1) + [3] print::p_y#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) + [4] call print to:main::@1 main::@1: scope:[main] from main - [5] print::p_x#1 = *((byte*)&main::point2) - [6] print::p_y#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) - [7] call print + [5] print::p_x#1 = *((char *)&main::point2) + [6] print::p_y#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) + [7] call print to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 [9] print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) [9] print::p_x#2 = phi( main/print::p_x#0, main::@1/print::p_x#1 ) diff --git a/src/test/ref/struct-22.log b/src/test/ref/struct-22.log index 2f2f9934b..26f704002 100644 --- a/src/test/ref/struct-22.log +++ b/src/test/ref/struct-22.log @@ -7,14 +7,14 @@ void main() main: scope:[main] from __start *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) *(&main::point2) = memcpy(*(&$1), struct Point, SIZEOF_STRUCT_POINT) - print::p_x#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) - print::p_y#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) - call print + print::p_x#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) + print::p_y#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) + call print to:main::@1 main::@1: scope:[main] from main - print::p_x#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) - print::p_y#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) - call print + print::p_x#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) + print::p_y#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) + call print to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) print::p_x#2 = phi( main/print::p_x#0, main::@1/print::p_x#1 ) @@ -35,7 +35,7 @@ print::@return: scope:[print] from print void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,39 +44,39 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 2, y: 3 } -constant struct Point $1 = { x: 4, y: 5 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant struct Point $1 = { x: 4, y: 5 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore -void print(byte print::p_x , byte print::p_y) +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 -byte print::p_x#1 -byte print::p_x#2 -byte print::p_y -byte print::p_y#0 -byte print::p_y#1 -byte print::p_y#2 +char print::p_x +char print::p_x#0 +char print::p_x#1 +char print::p_x#2 +char print::p_y +char print::p_y#0 +char print::p_y#1 +char print::p_y#2 Adding number conversion cast (unumber) 0 in SCREEN[0] = print::p_x#2 Adding number conversion cast (unumber) 1 in SCREEN[1] = print::p_y#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&main::point1 in [2] print::p_x#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (byte*)&main::point2 in [5] print::p_x#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&main::point1 in [2] print::p_x#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&main::point2 in [5] print::p_x#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) Simplifying expression containing zero SCREEN in [10] SCREEN[0] = print::p_x#2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X @@ -106,20 +106,20 @@ void main() main: scope:[main] from [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [1] *(&main::point2) = memcpy(*(&$1), struct Point, SIZEOF_STRUCT_POINT) - [2] print::p_x#0 = *((byte*)&main::point1) - [3] print::p_y#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) - [4] call print + [2] print::p_x#0 = *((char *)&main::point1) + [3] print::p_y#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) + [4] call print to:main::@1 main::@1: scope:[main] from main - [5] print::p_x#1 = *((byte*)&main::point2) - [6] print::p_y#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) - [7] call print + [5] print::p_x#1 = *((char *)&main::point2) + [6] print::p_y#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) + [7] call print to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 [9] print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) [9] print::p_x#2 = phi( main/print::p_x#0, main::@1/print::p_x#1 ) @@ -133,18 +133,18 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore -void print(byte print::p_x , byte print::p_y) +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 2.0 -byte print::p_x#1 2.0 -byte print::p_x#2 15.0 -byte print::p_y -byte print::p_y#0 4.0 -byte print::p_y#1 4.0 -byte print::p_y#2 7.5 +char print::p_x +char print::p_x#0 // 2.0 +char print::p_x#1 // 2.0 +char print::p_x#2 // 15.0 +char print::p_y +char print::p_y#0 // 4.0 +char print::p_y#1 // 4.0 +char print::p_y#2 // 7.5 Initial phi equivalence classes [ print::p_x#2 print::p_x#0 print::p_x#1 ] @@ -216,11 +216,11 @@ main: { sta point2-1,y dey bne !- - // [2] print::p_x#0 = *((byte*)&main::point1) -- vbuxx=_deref_pbuc1 + // [2] print::p_x#0 = *((char *)&main::point1) -- vbuxx=_deref_pbuc1 ldx.z point1 - // [3] print::p_y#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 + // [3] print::p_y#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 lda point1+OFFSET_STRUCT_POINT_Y - // [4] call print + // [4] call print // [9] phi from main to print [phi:main->print] print_from_main: // [9] phi print::p_y#2 = print::p_y#0 [phi:main->print#0] -- register_copy @@ -229,11 +229,11 @@ main: { jmp __b1 // main::@1 __b1: - // [5] print::p_x#1 = *((byte*)&main::point2) -- vbuxx=_deref_pbuc1 + // [5] print::p_x#1 = *((char *)&main::point2) -- vbuxx=_deref_pbuc1 ldx.z point2 - // [6] print::p_y#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 + // [6] print::p_y#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 lda point2+OFFSET_STRUCT_POINT_Y - // [7] call print + // [7] call print // [9] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [9] phi print::p_y#2 = print::p_y#1 [phi:main::@1->print#0] -- register_copy @@ -246,7 +246,7 @@ main: { rts } // print -// print(byte register(X) p_x, byte register(A) p_y) +// void print(__register(X) char p_x, __register(A) char p_y) print: { // [10] *SCREEN = print::p_x#2 -- _deref_pbuc1=vbuxx stx SCREEN @@ -276,24 +276,24 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 2, y: 3 } -constant struct Point $1 = { x: 4, y: 5 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant struct Point $1 = { x: 4, y: 5 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::point1 loadstore zp[2]:2 -struct Point main::point2 loadstore zp[2]:4 -void print(byte print::p_x , byte print::p_y) +__loadstore struct Point main::point1 // zp[2]:2 +__loadstore struct Point main::point2 // zp[2]:4 +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 reg byte x 2.0 -byte print::p_x#1 reg byte x 2.0 -byte print::p_x#2 reg byte x 15.0 -byte print::p_y -byte print::p_y#0 reg byte a 4.0 -byte print::p_y#1 reg byte a 4.0 -byte print::p_y#2 reg byte a 7.5 +char print::p_x +char print::p_x#0 // reg byte x 2.0 +char print::p_x#1 // reg byte x 2.0 +char print::p_x#2 // reg byte x 15.0 +char print::p_y +char print::p_y#0 // reg byte a 4.0 +char print::p_y#1 // reg byte a 4.0 +char print::p_y#2 // reg byte a 7.5 reg byte x [ print::p_x#2 print::p_x#0 print::p_x#1 ] reg byte a [ print::p_y#2 print::p_y#0 print::p_y#1 ] @@ -341,22 +341,22 @@ main: { dey bne !- // print(point1) - // [2] print::p_x#0 = *((byte*)&main::point1) -- vbuxx=_deref_pbuc1 + // [2] print::p_x#0 = *((char *)&main::point1) -- vbuxx=_deref_pbuc1 ldx.z point1 - // [3] print::p_y#0 = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 + // [3] print::p_y#0 = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 lda point1+OFFSET_STRUCT_POINT_Y - // [4] call print + // [4] call print // [9] phi from main to print [phi:main->print] // [9] phi print::p_y#2 = print::p_y#0 [phi:main->print#0] -- register_copy // [9] phi print::p_x#2 = print::p_x#0 [phi:main->print#1] -- register_copy jsr print // main::@1 // print(point2) - // [5] print::p_x#1 = *((byte*)&main::point2) -- vbuxx=_deref_pbuc1 + // [5] print::p_x#1 = *((char *)&main::point2) -- vbuxx=_deref_pbuc1 ldx.z point2 - // [6] print::p_y#1 = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 + // [6] print::p_y#1 = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) -- vbuaa=_deref_pbuc1 lda point2+OFFSET_STRUCT_POINT_Y - // [7] call print + // [7] call print // [9] phi from main::@1 to print [phi:main::@1->print] // [9] phi print::p_y#2 = print::p_y#1 [phi:main::@1->print#0] -- register_copy // [9] phi print::p_x#2 = print::p_x#1 [phi:main::@1->print#1] -- register_copy @@ -367,7 +367,7 @@ main: { rts } // print -// print(byte register(X) p_x, byte register(A) p_y) +// void print(__register(X) char p_x, __register(A) char p_y) print: { // SCREEN[0] = p.x // [10] *SCREEN = print::p_x#2 -- _deref_pbuc1=vbuxx diff --git a/src/test/ref/struct-22.sym b/src/test/ref/struct-22.sym index df774e040..8fa8ef5d5 100644 --- a/src/test/ref/struct-22.sym +++ b/src/test/ref/struct-22.sym @@ -1,21 +1,21 @@ -constant struct Point $0 = { x: 2, y: 3 } -constant struct Point $1 = { x: 4, y: 5 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant struct Point $1 = { x: 4, y: 5 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::point1 loadstore zp[2]:2 -struct Point main::point2 loadstore zp[2]:4 -void print(byte print::p_x , byte print::p_y) +__loadstore struct Point main::point1 // zp[2]:2 +__loadstore struct Point main::point2 // zp[2]:4 +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 reg byte x 2.0 -byte print::p_x#1 reg byte x 2.0 -byte print::p_x#2 reg byte x 15.0 -byte print::p_y -byte print::p_y#0 reg byte a 4.0 -byte print::p_y#1 reg byte a 4.0 -byte print::p_y#2 reg byte a 7.5 +char print::p_x +char print::p_x#0 // reg byte x 2.0 +char print::p_x#1 // reg byte x 2.0 +char print::p_x#2 // reg byte x 15.0 +char print::p_y +char print::p_y#0 // reg byte a 4.0 +char print::p_y#1 // reg byte a 4.0 +char print::p_y#2 // reg byte a 7.5 reg byte x [ print::p_x#2 print::p_x#0 print::p_x#1 ] reg byte a [ print::p_y#2 print::p_y#0 print::p_y#1 ] diff --git a/src/test/ref/struct-23.asm b/src/test/ref/struct-23.asm index b591d25ad..7de455ea6 100644 --- a/src/test/ref/struct-23.asm +++ b/src/test/ref/struct-23.asm @@ -42,6 +42,7 @@ main: { // } rts } +// struct Point getPoint(char x, char y) getPoint: { rts } diff --git a/src/test/ref/struct-23.cfg b/src/test/ref/struct-23.cfg index d810277f9..e03c8e5f2 100644 --- a/src/test/ref/struct-23.cfg +++ b/src/test/ref/struct-23.cfg @@ -2,30 +2,30 @@ void main() main: scope:[main] from [0] phi() - [1] call getPoint + [1] call getPoint [2] getPoint::return_x#0 = getPoint::return_x#2 [3] getPoint::return_y#0 = getPoint::return_y#2 to:main::@1 main::@1: scope:[main] from main - [4] *((byte*)&main::point1) = getPoint::return_x#0 - [5] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 - [6] *SCREEN = *((byte*)&main::point1) - [7] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) - [8] call getPoint + [4] *((char *)&main::point1) = getPoint::return_x#0 + [5] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 + [6] *SCREEN = *((char *)&main::point1) + [7] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) + [8] call getPoint [9] getPoint::return_x#1 = getPoint::return_x#2 [10] getPoint::return_y#1 = getPoint::return_y#2 to:main::@2 main::@2: scope:[main] from main::@1 - [11] *((byte*)&main::point2) = getPoint::return_x#1 - [12] *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 - [13] *(SCREEN+2) = *((byte*)&main::point2) - [14] *(SCREEN+3) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) + [11] *((char *)&main::point2) = getPoint::return_x#1 + [12] *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 + [13] *(SCREEN+2) = *((char *)&main::point2) + [14] *(SCREEN+3) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@2 [15] return to:@return -struct Point getPoint(byte getPoint::x , byte getPoint::y) +struct Point getPoint(char x , char y) getPoint: scope:[getPoint] from main main::@1 [16] getPoint::return_y#2 = phi( main/3, main::@1/5 ) [16] getPoint::return_x#2 = phi( main/2, main::@1/4 ) diff --git a/src/test/ref/struct-23.log b/src/test/ref/struct-23.log index e2e2fe63b..f9ccd805e 100644 --- a/src/test/ref/struct-23.log +++ b/src/test/ref/struct-23.log @@ -1,7 +1,7 @@ Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 -Unwinding list assignment { *((byte*)&main::point1+OFFSET_STRUCT_POINT_X), *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) } = { getPoint::return_x, getPoint::return_y } -Unwinding list assignment { *((byte*)&main::point2+OFFSET_STRUCT_POINT_X), *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) } = { getPoint::return_x, getPoint::return_y } +Unwinding list assignment { *((char *)&main::point1+OFFSET_STRUCT_POINT_X), *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) } = { getPoint::return_x, getPoint::return_y } +Unwinding list assignment { *((char *)&main::point2+OFFSET_STRUCT_POINT_X), *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) } = { getPoint::return_x, getPoint::return_y } Unwinding list assignment { getPoint::return_x#0, getPoint::return_y#0 } = { getPoint::return_x#5, getPoint::return_y#5 } Unwinding list assignment { getPoint::return_x#1, getPoint::return_y#1 } = { getPoint::return_x#5, getPoint::return_y#5 } @@ -11,36 +11,36 @@ void main() main: scope:[main] from __start getPoint::x#0 = 2 getPoint::y#0 = 3 - call getPoint + call getPoint getPoint::return_x#0 = getPoint::return_x#5 getPoint::return_y#0 = getPoint::return_y#5 to:main::@1 main::@1: scope:[main] from main getPoint::return_y#3 = phi( main/getPoint::return_y#0 ) getPoint::return_x#3 = phi( main/getPoint::return_x#0 ) - *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = getPoint::return_x#3 - *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#3 - SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) - SCREEN[1] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) + *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = getPoint::return_x#3 + *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#3 + SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) + SCREEN[1] = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) getPoint::x#1 = 4 getPoint::y#1 = 5 - call getPoint + call getPoint getPoint::return_x#1 = getPoint::return_x#5 getPoint::return_y#1 = getPoint::return_y#5 to:main::@2 main::@2: scope:[main] from main::@1 getPoint::return_y#4 = phi( main::@1/getPoint::return_y#1 ) getPoint::return_x#4 = phi( main::@1/getPoint::return_x#1 ) - *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) = getPoint::return_x#4 - *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#4 - SCREEN[2] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) - SCREEN[3] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) + *((char *)&main::point2+OFFSET_STRUCT_POINT_X) = getPoint::return_x#4 + *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#4 + SCREEN[2] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) + SCREEN[3] = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@2 return to:@return -struct Point getPoint(byte getPoint::x , byte getPoint::y) +struct Point getPoint(char x , char y) getPoint: scope:[getPoint] from main main::@1 getPoint::y#2 = phi( main/getPoint::y#0, main::@1/getPoint::y#1 ) getPoint::x#2 = phi( main/getPoint::x#0, main::@1/getPoint::x#1 ) @@ -59,7 +59,7 @@ getPoint::@return: scope:[getPoint] from getPoint void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -68,59 +68,59 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 void __start() -struct Point getPoint(byte getPoint::x , byte getPoint::y) -byte getPoint::p_x -byte getPoint::p_x#0 -byte getPoint::p_y -byte getPoint::p_y#0 +struct Point getPoint(char x , char y) +char getPoint::p_x +char getPoint::p_x#0 +char getPoint::p_y +char getPoint::p_y#0 struct Point getPoint::return struct Point getPoint::return#0 struct Point getPoint::return#1 -byte getPoint::return_x -byte getPoint::return_x#0 -byte getPoint::return_x#1 -byte getPoint::return_x#2 -byte getPoint::return_x#3 -byte getPoint::return_x#4 -byte getPoint::return_x#5 -byte getPoint::return_y -byte getPoint::return_y#0 -byte getPoint::return_y#1 -byte getPoint::return_y#2 -byte getPoint::return_y#3 -byte getPoint::return_y#4 -byte getPoint::return_y#5 -byte getPoint::x -byte getPoint::x#0 -byte getPoint::x#1 -byte getPoint::x#2 -byte getPoint::y -byte getPoint::y#0 -byte getPoint::y#1 -byte getPoint::y#2 +char getPoint::return_x +char getPoint::return_x#0 +char getPoint::return_x#1 +char getPoint::return_x#2 +char getPoint::return_x#3 +char getPoint::return_x#4 +char getPoint::return_x#5 +char getPoint::return_y +char getPoint::return_y#0 +char getPoint::return_y#1 +char getPoint::return_y#2 +char getPoint::return_y#3 +char getPoint::return_y#4 +char getPoint::return_y#5 +char getPoint::x +char getPoint::x#0 +char getPoint::x#1 +char getPoint::x#2 +char getPoint::y +char getPoint::y#0 +char getPoint::y#1 +char getPoint::y#2 void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 Adding number conversion cast (unumber) 2 in getPoint::x#0 = 2 Adding number conversion cast (unumber) 3 in getPoint::y#0 = 3 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 1 in SCREEN[1] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 1 in SCREEN[1] = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) Adding number conversion cast (unumber) 4 in getPoint::x#1 = 4 Adding number conversion cast (unumber) 5 in getPoint::y#1 = 5 -Adding number conversion cast (unumber) 2 in SCREEN[2] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 3 in SCREEN[3] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) +Adding number conversion cast (unumber) 2 in SCREEN[2] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 3 in SCREEN[3] = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) Successful SSA optimization PassNAddNumberTypeConversions Inlining cast getPoint::x#0 = (unumber)2 Inlining cast getPoint::y#0 = (unumber)3 Inlining cast getPoint::x#1 = (unumber)4 Inlining cast getPoint::y#1 = (unumber)5 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 0 @@ -130,14 +130,14 @@ Simplifying constant integer cast 5 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias getPoint::return_x#0 = getPoint::return_x#3 Alias getPoint::return_y#0 = getPoint::return_y#3 @@ -151,11 +151,11 @@ Constant getPoint::y#0 = 3 Constant getPoint::x#1 = 4 Constant getPoint::y#1 = 5 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)&main::point1 in [5] *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = getPoint::return_x#0 -Simplifying expression containing zero (byte*)&main::point1 in [7] SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [7] SCREEN[0] = *((byte*)&main::point1) -Simplifying expression containing zero (byte*)&main::point2 in [14] *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) = getPoint::return_x#1 -Simplifying expression containing zero (byte*)&main::point2 in [16] SCREEN[2] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&main::point1 in [5] *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = getPoint::return_x#0 +Simplifying expression containing zero (char *)&main::point1 in [7] SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [7] SCREEN[0] = *((char *)&main::point1) +Simplifying expression containing zero (char *)&main::point2 in [14] *((char *)&main::point2+OFFSET_STRUCT_POINT_X) = getPoint::return_x#1 +Simplifying expression containing zero (char *)&main::point2 in [16] SCREEN[2] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable getPoint::return#0 and assignment [16] getPoint::return#0 = struct-unwound {getPoint::return_x#2, getPoint::return_y#2} Eliminating unused variable getPoint::return#1 and assignment [17] getPoint::return#1 = struct-unwound {} @@ -192,30 +192,30 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call getPoint + [1] call getPoint [2] getPoint::return_x#0 = getPoint::return_x#2 [3] getPoint::return_y#0 = getPoint::return_y#2 to:main::@1 main::@1: scope:[main] from main - [4] *((byte*)&main::point1) = getPoint::return_x#0 - [5] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 - [6] *SCREEN = *((byte*)&main::point1) - [7] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) - [8] call getPoint + [4] *((char *)&main::point1) = getPoint::return_x#0 + [5] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 + [6] *SCREEN = *((char *)&main::point1) + [7] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) + [8] call getPoint [9] getPoint::return_x#1 = getPoint::return_x#2 [10] getPoint::return_y#1 = getPoint::return_y#2 to:main::@2 main::@2: scope:[main] from main::@1 - [11] *((byte*)&main::point2) = getPoint::return_x#1 - [12] *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 - [13] *(SCREEN+2) = *((byte*)&main::point2) - [14] *(SCREEN+3) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) + [11] *((char *)&main::point2) = getPoint::return_x#1 + [12] *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 + [13] *(SCREEN+2) = *((char *)&main::point2) + [14] *(SCREEN+3) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@2 [15] return to:@return -struct Point getPoint(byte getPoint::x , byte getPoint::y) +struct Point getPoint(char x , char y) getPoint: scope:[getPoint] from main main::@1 [16] getPoint::return_y#2 = phi( main/3, main::@1/5 ) [16] getPoint::return_x#2 = phi( main/2, main::@1/4 ) @@ -226,23 +226,23 @@ getPoint::@return: scope:[getPoint] from getPoint VARIABLE REGISTER WEIGHTS -struct Point getPoint(byte getPoint::x , byte getPoint::y) -byte getPoint::p_x -byte getPoint::p_y +struct Point getPoint(char x , char y) +char getPoint::p_x +char getPoint::p_y struct Point getPoint::return -byte getPoint::return_x -byte getPoint::return_x#0 2.0 -byte getPoint::return_x#1 2.0 -byte getPoint::return_x#2 1.0 -byte getPoint::return_y -byte getPoint::return_y#0 2.0 -byte getPoint::return_y#1 2.0 -byte getPoint::return_y#2 0.6666666666666666 -byte getPoint::x -byte getPoint::y +char getPoint::return_x +char getPoint::return_x#0 // 2.0 +char getPoint::return_x#1 // 2.0 +char getPoint::return_x#2 // 1.0 +char getPoint::return_y +char getPoint::return_y#0 // 2.0 +char getPoint::return_y#1 // 2.0 +char getPoint::return_y#2 // 0.6666666666666666 +char getPoint::x +char getPoint::y void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 Initial phi equivalence classes [ getPoint::return_x#2 ] @@ -271,10 +271,10 @@ Allocated zp[1]:7 [ getPoint::return_y#1 ] Allocated zp[2]:8 [ main::point1 ] Allocated zp[2]:10 [ main::point2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] *SCREEN = *((byte*)&main::point1) [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { { getPoint::return_x#1 = getPoint::return_x#2 } { getPoint::return_y#1 = getPoint::return_y#2 } } ) always clobbers reg byte a -Statement [7] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) [ main::point2 ] ( [ main::point2 ] { { getPoint::return_x#1 = getPoint::return_x#2 } { getPoint::return_y#1 = getPoint::return_y#2 } } ) always clobbers reg byte a -Statement [13] *(SCREEN+2) = *((byte*)&main::point2) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a -Statement [14] *(SCREEN+3) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *SCREEN = *((char *)&main::point1) [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { { getPoint::return_x#1 = getPoint::return_x#2 } { getPoint::return_y#1 = getPoint::return_y#2 } } ) always clobbers reg byte a +Statement [7] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) [ main::point2 ] ( [ main::point2 ] { { getPoint::return_x#1 = getPoint::return_x#2 } { getPoint::return_y#1 = getPoint::return_y#2 } } ) always clobbers reg byte a +Statement [13] *(SCREEN+2) = *((char *)&main::point2) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a +Statement [14] *(SCREEN+3) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ getPoint::return_x#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ getPoint::return_y#2 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ getPoint::return_x#0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -324,7 +324,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label point1 = 2 .label point2 = 4 - // [1] call getPoint + // [1] call getPoint // [16] phi from main to getPoint [phi:main->getPoint] getPoint_from_main: // [16] phi getPoint::return_y#2 = 3 [phi:main->getPoint#0] -- vbuaa=vbuc1 @@ -337,17 +337,17 @@ main: { jmp __b1 // main::@1 __b1: - // [4] *((byte*)&main::point1) = getPoint::return_x#0 -- _deref_pbuc1=vbuxx + // [4] *((char *)&main::point1) = getPoint::return_x#0 -- _deref_pbuc1=vbuxx stx.z point1 - // [5] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 -- _deref_pbuc1=vbuaa + // [5] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 -- _deref_pbuc1=vbuaa sta point1+OFFSET_STRUCT_POINT_Y - // [6] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [6] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN - // [7] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_Y sta SCREEN+1 - // [8] call getPoint + // [8] call getPoint // [16] phi from main::@1 to getPoint [phi:main::@1->getPoint] getPoint_from___b1: // [16] phi getPoint::return_y#2 = 5 [phi:main::@1->getPoint#0] -- vbuaa=vbuc1 @@ -360,14 +360,14 @@ main: { jmp __b2 // main::@2 __b2: - // [11] *((byte*)&main::point2) = getPoint::return_x#1 -- _deref_pbuc1=vbuxx + // [11] *((char *)&main::point2) = getPoint::return_x#1 -- _deref_pbuc1=vbuxx stx.z point2 - // [12] *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 -- _deref_pbuc1=vbuaa + // [12] *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 -- _deref_pbuc1=vbuaa sta point2+OFFSET_STRUCT_POINT_Y - // [13] *(SCREEN+2) = *((byte*)&main::point2) -- _deref_pbuc1=_deref_pbuc2 + // [13] *(SCREEN+2) = *((char *)&main::point2) -- _deref_pbuc1=_deref_pbuc2 lda.z point2 sta SCREEN+2 - // [14] *(SCREEN+3) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [14] *(SCREEN+3) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_Y sta SCREEN+3 jmp __breturn @@ -377,6 +377,7 @@ main: { rts } // getPoint +// struct Point getPoint(char x, char y) getPoint: { jmp __breturn // getPoint::@return @@ -403,25 +404,25 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -struct Point getPoint(byte getPoint::x , byte getPoint::y) -byte getPoint::p_x -byte getPoint::p_y +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +struct Point getPoint(char x , char y) +char getPoint::p_x +char getPoint::p_y struct Point getPoint::return -byte getPoint::return_x -byte getPoint::return_x#0 reg byte x 2.0 -byte getPoint::return_x#1 reg byte x 2.0 -byte getPoint::return_x#2 reg byte x 1.0 -byte getPoint::return_y -byte getPoint::return_y#0 reg byte a 2.0 -byte getPoint::return_y#1 reg byte a 2.0 -byte getPoint::return_y#2 reg byte a 0.6666666666666666 -byte getPoint::x -byte getPoint::y +char getPoint::return_x +char getPoint::return_x#0 // reg byte x 2.0 +char getPoint::return_x#1 // reg byte x 2.0 +char getPoint::return_x#2 // reg byte x 1.0 +char getPoint::return_y +char getPoint::return_y#0 // reg byte a 2.0 +char getPoint::return_y#1 // reg byte a 2.0 +char getPoint::return_y#2 // reg byte a 0.6666666666666666 +char getPoint::x +char getPoint::y void main() -struct Point main::point1 loadstore zp[2]:2 -struct Point main::point2 loadstore zp[2]:4 +__loadstore struct Point main::point1 // zp[2]:2 +__loadstore struct Point main::point2 // zp[2]:4 reg byte x [ getPoint::return_x#2 ] reg byte a [ getPoint::return_y#2 ] @@ -456,7 +457,7 @@ main: { .label point1 = 2 .label point2 = 4 // __ma struct Point point1 = getPoint(2, 3) - // [1] call getPoint + // [1] call getPoint // [16] phi from main to getPoint [phi:main->getPoint] // [16] phi getPoint::return_y#2 = 3 [phi:main->getPoint#0] -- vbuaa=vbuc1 lda #3 @@ -467,20 +468,20 @@ main: { // [2] getPoint::return_x#0 = getPoint::return_x#2 // [3] getPoint::return_y#0 = getPoint::return_y#2 // main::@1 - // [4] *((byte*)&main::point1) = getPoint::return_x#0 -- _deref_pbuc1=vbuxx + // [4] *((char *)&main::point1) = getPoint::return_x#0 -- _deref_pbuc1=vbuxx stx.z point1 - // [5] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 -- _deref_pbuc1=vbuaa + // [5] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#0 -- _deref_pbuc1=vbuaa sta point1+OFFSET_STRUCT_POINT_Y // SCREEN[0] = point1.x - // [6] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [6] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 txa sta SCREEN // SCREEN[1] = point1.y - // [7] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // __ma struct Point point2 = getPoint(4, 5) - // [8] call getPoint + // [8] call getPoint // [16] phi from main::@1 to getPoint [phi:main::@1->getPoint] // [16] phi getPoint::return_y#2 = 5 [phi:main::@1->getPoint#0] -- vbuaa=vbuc1 lda #5 @@ -491,16 +492,16 @@ main: { // [9] getPoint::return_x#1 = getPoint::return_x#2 // [10] getPoint::return_y#1 = getPoint::return_y#2 // main::@2 - // [11] *((byte*)&main::point2) = getPoint::return_x#1 -- _deref_pbuc1=vbuxx + // [11] *((char *)&main::point2) = getPoint::return_x#1 -- _deref_pbuc1=vbuxx stx.z point2 - // [12] *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 -- _deref_pbuc1=vbuaa + // [12] *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) = getPoint::return_y#1 -- _deref_pbuc1=vbuaa sta point2+OFFSET_STRUCT_POINT_Y // SCREEN[2] = point2.x - // [13] *(SCREEN+2) = *((byte*)&main::point2) -- _deref_pbuc1=_deref_pbuc2 + // [13] *(SCREEN+2) = *((char *)&main::point2) -- _deref_pbuc1=_deref_pbuc2 txa sta SCREEN+2 // SCREEN[3] = point2.y - // [14] *(SCREEN+3) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [14] *(SCREEN+3) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_Y sta SCREEN+3 // main::@return @@ -509,6 +510,7 @@ main: { rts } // getPoint +// struct Point getPoint(char x, char y) getPoint: { // getPoint::@return // [17] return diff --git a/src/test/ref/struct-23.sym b/src/test/ref/struct-23.sym index 2c74c68f4..2072d7e4d 100644 --- a/src/test/ref/struct-23.sym +++ b/src/test/ref/struct-23.sym @@ -1,22 +1,22 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -struct Point getPoint(byte getPoint::x , byte getPoint::y) -byte getPoint::p_x -byte getPoint::p_y +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +struct Point getPoint(char x , char y) +char getPoint::p_x +char getPoint::p_y struct Point getPoint::return -byte getPoint::return_x -byte getPoint::return_x#0 reg byte x 2.0 -byte getPoint::return_x#1 reg byte x 2.0 -byte getPoint::return_x#2 reg byte x 1.0 -byte getPoint::return_y -byte getPoint::return_y#0 reg byte a 2.0 -byte getPoint::return_y#1 reg byte a 2.0 -byte getPoint::return_y#2 reg byte a 0.6666666666666666 -byte getPoint::x -byte getPoint::y +char getPoint::return_x +char getPoint::return_x#0 // reg byte x 2.0 +char getPoint::return_x#1 // reg byte x 2.0 +char getPoint::return_x#2 // reg byte x 1.0 +char getPoint::return_y +char getPoint::return_y#0 // reg byte a 2.0 +char getPoint::return_y#1 // reg byte a 2.0 +char getPoint::return_y#2 // reg byte a 0.6666666666666666 +char getPoint::x +char getPoint::y void main() -struct Point main::point1 loadstore zp[2]:2 -struct Point main::point2 loadstore zp[2]:4 +__loadstore struct Point main::point1 // zp[2]:2 +__loadstore struct Point main::point2 // zp[2]:4 reg byte x [ getPoint::return_x#2 ] reg byte a [ getPoint::return_y#2 ] diff --git a/src/test/ref/struct-24.cfg b/src/test/ref/struct-24.cfg index 5c94255bb..ad74c3f23 100644 --- a/src/test/ref/struct-24.cfg +++ b/src/test/ref/struct-24.cfg @@ -2,12 +2,12 @@ void main() main: scope:[main] from [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - [1] *((byte*)&main::point1) = 2 - [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' - [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' - [4] *SCREEN = *((byte*)&main::point1) - [5] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) - [6] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) + [1] *((char *)&main::point1) = 2 + [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' + [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' + [4] *SCREEN = *((char *)&main::point1) + [5] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) + [6] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [7] return diff --git a/src/test/ref/struct-24.log b/src/test/ref/struct-24.log index 337a7c3de..7f7b73a90 100644 --- a/src/test/ref/struct-24.log +++ b/src/test/ref/struct-24.log @@ -9,12 +9,12 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 - ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' - ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' - SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) - SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] - SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] + *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 + ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' + ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' + SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) + SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] + SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] to:main::@return main::@return: scope:[main] from main return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,26 +31,26 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 3 void __start() void main() -struct Point main::point1 loadstore +__loadstore struct Point main::point1 -Adding number conversion cast (unumber) 2 in *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 -Adding number conversion cast (unumber) 0 in ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' -Adding number conversion cast (unumber) 1 in ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 0 in SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] +Adding number conversion cast (unumber) 2 in *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 +Adding number conversion cast (unumber) 0 in ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' +Adding number conversion cast (unumber) 1 in ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 0 in SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = (unumber)2 +Inlining cast *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -60,20 +60,20 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&main::point1 in [1] *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 -Simplifying expression containing zero (byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' -Simplifying expression containing zero (byte*)&main::point1 in [4] SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [4] SCREEN[0] = *((byte*)&main::point1) -Simplifying expression containing zero (byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [5] SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Simplifying expression containing zero (char *)&main::point1 in [1] *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 +Simplifying expression containing zero (char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' +Simplifying expression containing zero (char *)&main::point1 in [4] SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [4] SCREEN[0] = *((char *)&main::point1) +Simplifying expression containing zero (char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [5] SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -82,13 +82,13 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Consolidated array index constant in *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -100,12 +100,12 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - [1] *((byte*)&main::point1) = 2 - [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' - [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' - [4] *SCREEN = *((byte*)&main::point1) - [5] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) - [6] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) + [1] *((char *)&main::point1) = 2 + [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' + [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' + [4] *SCREEN = *((char *)&main::point1) + [5] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) + [6] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [7] return @@ -114,7 +114,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point main::point1 loadstore +__loadstore struct Point main::point1 Initial phi equivalence classes Added variable main::point1 to live range equivalence class [ main::point1 ] @@ -123,12 +123,12 @@ Complete equivalence classes Allocated zp[3]:2 [ main::point1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *((byte*)&main::point1) = 2 [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [4] *SCREEN = *((byte*)&main::point1) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [5] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [6] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)&main::point1) = 2 [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [4] *SCREEN = *((char *)&main::point1) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [5] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[3]:2 [ main::point1 ] : zp[3]:2 , REGISTER UPLIFT SCOPES @@ -167,22 +167,22 @@ main: { dey sta point1,y bne !- - // [1] *((byte*)&main::point1) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&main::point1) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta.z point1 - // [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 + // [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 lda #'j' sta point1+OFFSET_STRUCT_POINT_INITIALS - // [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 + // [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 lda #'g' sta point1+OFFSET_STRUCT_POINT_INITIALS+1 - // [4] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [4] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN - // [5] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [5] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 - // [6] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 jmp __breturn @@ -200,11 +200,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 void main() -struct Point main::point1 loadstore zp[3]:2 +__loadstore struct Point main::point1 // zp[3]:2 zp[3]:2 [ main::point1 ] @@ -240,27 +240,27 @@ main: { sta point1,y bne !- // point1.x = 2 - // [1] *((byte*)&main::point1) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&main::point1) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta.z point1 // point1.initials[0] = 'j' - // [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 + // [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 lda #'j' sta point1+OFFSET_STRUCT_POINT_INITIALS // point1.initials[1] = 'g' - // [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 + // [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 lda #'g' sta point1+OFFSET_STRUCT_POINT_INITIALS+1 // SCREEN[0] = point1.x - // [4] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [4] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN // SCREEN[1] = point1.initials[0] - // [5] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [5] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 // SCREEN[2] = point1.initials[1] - // [6] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 // main::@return diff --git a/src/test/ref/struct-24.sym b/src/test/ref/struct-24.sym index 1244fabc5..8bcce0a0e 100644 --- a/src/test/ref/struct-24.sym +++ b/src/test/ref/struct-24.sym @@ -1,7 +1,7 @@ -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 void main() -struct Point main::point1 loadstore zp[3]:2 +__loadstore struct Point main::point1 // zp[3]:2 zp[3]:2 [ main::point1 ] diff --git a/src/test/ref/struct-25.log b/src/test/ref/struct-25.log index dd235b314..5c638080e 100644 --- a/src/test/ref/struct-25.log +++ b/src/test/ref/struct-25.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,17 +21,17 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 4 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 4 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = SIZEOF_STRUCT_POINT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = SIZEOF_STRUCT_POINT Successful SSA optimization PassNSimplifyExpressionWithZero @@ -40,8 +40,8 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -112,8 +112,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 4 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 4 void main() diff --git a/src/test/ref/struct-25.sym b/src/test/ref/struct-25.sym index cdbd205bb..ca1ee53b3 100644 --- a/src/test/ref/struct-25.sym +++ b/src/test/ref/struct-25.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 4 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 4 void main() diff --git a/src/test/ref/struct-26.cfg b/src/test/ref/struct-26.cfg index 2adb4b4fa..83ab886da 100644 --- a/src/test/ref/struct-26.cfg +++ b/src/test/ref/struct-26.cfg @@ -2,13 +2,13 @@ void main() main: scope:[main] from [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - [1] *((byte*)&main::point1) = 2 - [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' - [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' + [1] *((char *)&main::point1) = 2 + [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' + [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' [4] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) - [5] *SCREEN = *((byte*)&main::point2) - [6] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS) - [7] *(SCREEN+2) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) + [5] *SCREEN = *((char *)&main::point2) + [6] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS) + [7] *(SCREEN+2) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [8] return diff --git a/src/test/ref/struct-26.log b/src/test/ref/struct-26.log index 9bcc7b7d4..56c932c2a 100644 --- a/src/test/ref/struct-26.log +++ b/src/test/ref/struct-26.log @@ -11,13 +11,13 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 - ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' - ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' + *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 + ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' + ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) - SCREEN[0] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) - SCREEN[1] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[0] - SCREEN[2] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[1] + SCREEN[0] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) + SCREEN[1] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[0] + SCREEN[2] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[1] to:main::@return main::@return: scope:[main] from main return @@ -25,7 +25,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,27 +34,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 3 void __start() void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 -Adding number conversion cast (unumber) 2 in *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 -Adding number conversion cast (unumber) 0 in ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' -Adding number conversion cast (unumber) 1 in ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 0 in SCREEN[1] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[0] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] +Adding number conversion cast (unumber) 2 in *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 +Adding number conversion cast (unumber) 0 in ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' +Adding number conversion cast (unumber) 1 in ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] = 'g' +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 0 in SCREEN[1] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[0] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = (unumber)2 +Inlining cast *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -64,20 +64,20 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&main::point1 in [1] *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 -Simplifying expression containing zero (byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' -Simplifying expression containing zero (byte*)&main::point2 in [5] SCREEN[0] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [5] SCREEN[0] = *((byte*)&main::point2) -Simplifying expression containing zero (byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS in [6] SCREEN[1] = ((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[0] +Simplifying expression containing zero (char *)&main::point1 in [1] *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 +Simplifying expression containing zero (char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] = 'j' +Simplifying expression containing zero (char *)&main::point2 in [5] SCREEN[0] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [5] SCREEN[0] = *((char *)&main::point2) +Simplifying expression containing zero (char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS in [6] SCREEN[1] = ((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -86,13 +86,13 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Consolidated array index constant in *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -104,13 +104,13 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - [1] *((byte*)&main::point1) = 2 - [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' - [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' + [1] *((char *)&main::point1) = 2 + [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' + [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' [4] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) - [5] *SCREEN = *((byte*)&main::point2) - [6] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS) - [7] *(SCREEN+2) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) + [5] *SCREEN = *((char *)&main::point2) + [6] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS) + [7] *(SCREEN+2) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [8] return @@ -119,8 +119,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 Initial phi equivalence classes Added variable main::point1 to live range equivalence class [ main::point1 ] @@ -132,13 +132,13 @@ Allocated zp[3]:2 [ main::point1 ] Allocated zp[3]:5 [ main::point2 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *((byte*)&main::point1) = 2 [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a -Statement [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a -Statement [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a +Statement [1] *((char *)&main::point1) = 2 [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a +Statement [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a +Statement [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a Statement [4] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a reg byte y -Statement [5] *SCREEN = *((byte*)&main::point2) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a -Statement [6] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a -Statement [7] *(SCREEN+2) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *SCREEN = *((char *)&main::point2) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a +Statement [7] *(SCREEN+2) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[3]:2 [ main::point1 ] : zp[3]:2 , Potential registers zp[3]:5 [ main::point2 ] : zp[3]:5 , @@ -179,13 +179,13 @@ main: { dey sta point1,y bne !- - // [1] *((byte*)&main::point1) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&main::point1) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta.z point1 - // [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 + // [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 lda #'j' sta point1+OFFSET_STRUCT_POINT_INITIALS - // [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 + // [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 lda #'g' sta point1+OFFSET_STRUCT_POINT_INITIALS+1 // [4] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 @@ -195,13 +195,13 @@ main: { sta point2-1,y dey bne !- - // [5] *SCREEN = *((byte*)&main::point2) -- _deref_pbuc1=_deref_pbuc2 + // [5] *SCREEN = *((char *)&main::point2) -- _deref_pbuc1=_deref_pbuc2 lda.z point2 sta SCREEN - // [6] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 - // [7] *(SCREEN+2) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(SCREEN+2) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 jmp __breturn @@ -219,12 +219,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 void main() -struct Point main::point1 loadstore zp[3]:2 -struct Point main::point2 loadstore zp[3]:5 +__loadstore struct Point main::point1 // zp[3]:2 +__loadstore struct Point main::point2 // zp[3]:5 zp[3]:2 [ main::point1 ] zp[3]:5 [ main::point2 ] @@ -262,15 +262,15 @@ main: { sta point1,y bne !- // point1.x = 2 - // [1] *((byte*)&main::point1) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&main::point1) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta.z point1 // point1.initials[0] = 'j' - // [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 + // [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) = 'j' -- _deref_pbuc1=vbuc2 lda #'j' sta point1+OFFSET_STRUCT_POINT_INITIALS // point1.initials[1] = 'g' - // [3] *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 + // [3] *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) = 'g' -- _deref_pbuc1=vbuc2 lda #'g' sta point1+OFFSET_STRUCT_POINT_INITIALS+1 // __ma struct Point point2 = point1 @@ -282,15 +282,15 @@ main: { dey bne !- // SCREEN[0] = point2.x - // [5] *SCREEN = *((byte*)&main::point2) -- _deref_pbuc1=_deref_pbuc2 + // [5] *SCREEN = *((char *)&main::point2) -- _deref_pbuc1=_deref_pbuc2 lda.z point2 sta SCREEN // SCREEN[1] = point2.initials[0] - // [6] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 // SCREEN[2] = point2.initials[1] - // [7] *(SCREEN+2) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(SCREEN+2) = *((char *)&main::point2+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 // main::@return diff --git a/src/test/ref/struct-26.sym b/src/test/ref/struct-26.sym index fba1cc764..efa1e0f5f 100644 --- a/src/test/ref/struct-26.sym +++ b/src/test/ref/struct-26.sym @@ -1,9 +1,9 @@ -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 void main() -struct Point main::point1 loadstore zp[3]:2 -struct Point main::point2 loadstore zp[3]:5 +__loadstore struct Point main::point1 // zp[3]:2 +__loadstore struct Point main::point2 // zp[3]:5 zp[3]:2 [ main::point1 ] zp[3]:5 [ main::point2 ] diff --git a/src/test/ref/struct-27.cfg b/src/test/ref/struct-27.cfg index 66e081023..75f1c2565 100644 --- a/src/test/ref/struct-27.cfg +++ b/src/test/ref/struct-27.cfg @@ -2,9 +2,9 @@ void main() main: scope:[main] from [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] *SCREEN = *((byte*)&main::point1) - [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) - [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) + [1] *SCREEN = *((char *)&main::point1) + [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) + [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/struct-27.log b/src/test/ref/struct-27.log index 618284473..a25df415d 100644 --- a/src/test/ref/struct-27.log +++ b/src/test/ref/struct-27.log @@ -9,9 +9,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) - SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] - SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] + SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) + SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] + SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] to:main::@return main::@return: scope:[main] from main return @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,37 +28,37 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 2, initials: "jg" } -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 4 +__constant struct Point $0 = { x: 2, initials: "jg" } +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 4 void __start() void main() -struct Point main::point1 loadstore +__loadstore struct Point main::point1 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 0 in SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 0 in SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&main::point1 in [1] SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((byte*)&main::point1) -Simplifying expression containing zero (byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Simplifying expression containing zero (char *)&main::point1 in [1] SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((char *)&main::point1) +Simplifying expression containing zero (char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -68,11 +68,11 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -84,9 +84,9 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] *SCREEN = *((byte*)&main::point1) - [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) - [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) + [1] *SCREEN = *((char *)&main::point1) + [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) + [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [4] return @@ -95,7 +95,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point main::point1 loadstore +__loadstore struct Point main::point1 Initial phi equivalence classes Added variable main::point1 to live range equivalence class [ main::point1 ] @@ -104,9 +104,9 @@ Complete equivalence classes Allocated zp[4]:2 [ main::point1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *SCREEN = *((byte*)&main::point1) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *((char *)&main::point1) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[4]:2 [ main::point1 ] : zp[4]:2 , REGISTER UPLIFT SCOPES @@ -145,13 +145,13 @@ main: { sta point1-1,y dey bne !- - // [1] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN - // [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 - // [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 jmp __breturn @@ -173,12 +173,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 2, initials: "jg" } -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 4 +__constant struct Point $0 = { x: 2, initials: "jg" } +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 4 void main() -struct Point main::point1 loadstore zp[4]:2 +__loadstore struct Point main::point1 // zp[4]:2 zp[4]:2 [ main::point1 ] @@ -214,15 +214,15 @@ main: { dey bne !- // SCREEN[0] = point1.x - // [1] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN // SCREEN[1] = point1.initials[0] - // [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 // SCREEN[2] = point1.initials[1] - // [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 // main::@return diff --git a/src/test/ref/struct-27.sym b/src/test/ref/struct-27.sym index 837875260..0357285df 100644 --- a/src/test/ref/struct-27.sym +++ b/src/test/ref/struct-27.sym @@ -1,8 +1,8 @@ -constant struct Point $0 = { x: 2, initials: "jg" } -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 4 +__constant struct Point $0 = { x: 2, initials: "jg" } +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 4 void main() -struct Point main::point1 loadstore zp[4]:2 +__loadstore struct Point main::point1 // zp[4]:2 zp[4]:2 [ main::point1 ] diff --git a/src/test/ref/struct-28.cfg b/src/test/ref/struct-28.cfg index 66e081023..75f1c2565 100644 --- a/src/test/ref/struct-28.cfg +++ b/src/test/ref/struct-28.cfg @@ -2,9 +2,9 @@ void main() main: scope:[main] from [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] *SCREEN = *((byte*)&main::point1) - [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) - [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) + [1] *SCREEN = *((char *)&main::point1) + [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) + [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/struct-28.log b/src/test/ref/struct-28.log index 9f2a01cd2..64cfd8bd4 100644 --- a/src/test/ref/struct-28.log +++ b/src/test/ref/struct-28.log @@ -9,9 +9,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) - SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] - SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] + SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) + SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] + SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] to:main::@return main::@return: scope:[main] from main return @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,37 +28,37 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 2, initials: { 'j', 'g' } } -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant struct Point $0 = { x: 2, initials: { 'j', 'g' } } +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 3 void __start() void main() -struct Point main::point1 loadstore +__loadstore struct Point main::point1 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 0 in SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 0 in SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&main::point1 in [1] SCREEN[0] = *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((byte*)&main::point1) -Simplifying expression containing zero (byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] SCREEN[1] = ((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Simplifying expression containing zero (char *)&main::point1 in [1] SCREEN[0] = *((char *)&main::point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((char *)&main::point1) +Simplifying expression containing zero (char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS in [2] SCREEN[1] = ((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -68,11 +68,11 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -84,9 +84,9 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] *SCREEN = *((byte*)&main::point1) - [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) - [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) + [1] *SCREEN = *((char *)&main::point1) + [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) + [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [4] return @@ -95,7 +95,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point main::point1 loadstore +__loadstore struct Point main::point1 Initial phi equivalence classes Added variable main::point1 to live range equivalence class [ main::point1 ] @@ -104,9 +104,9 @@ Complete equivalence classes Allocated zp[3]:2 [ main::point1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::point1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *SCREEN = *((byte*)&main::point1) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *((char *)&main::point1) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) [ main::point1 ] ( [ main::point1 ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[3]:2 [ main::point1 ] : zp[3]:2 , REGISTER UPLIFT SCOPES @@ -145,13 +145,13 @@ main: { sta point1-1,y dey bne !- - // [1] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN - // [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 - // [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 jmp __breturn @@ -171,12 +171,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 2, initials: { 'j', 'g' } } -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant struct Point $0 = { x: 2, initials: { 'j', 'g' } } +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 void main() -struct Point main::point1 loadstore zp[3]:2 +__loadstore struct Point main::point1 // zp[3]:2 zp[3]:2 [ main::point1 ] @@ -212,15 +212,15 @@ main: { dey bne !- // SCREEN[0] = point1.x - // [1] *SCREEN = *((byte*)&main::point1) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&main::point1) -- _deref_pbuc1=_deref_pbuc2 lda.z point1 sta SCREEN // SCREEN[1] = point1.initials[0] - // [2] *(SCREEN+1) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 // SCREEN[2] = point1.initials[1] - // [3] *(SCREEN+2) = *((byte*)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+2) = *((char *)&main::point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 // main::@return diff --git a/src/test/ref/struct-28.sym b/src/test/ref/struct-28.sym index 380c01ba0..03952a889 100644 --- a/src/test/ref/struct-28.sym +++ b/src/test/ref/struct-28.sym @@ -1,8 +1,8 @@ -constant struct Point $0 = { x: 2, initials: { 'j', 'g' } } -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant struct Point $0 = { x: 2, initials: { 'j', 'g' } } +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 void main() -struct Point main::point1 loadstore zp[3]:2 +__loadstore struct Point main::point1 // zp[3]:2 zp[3]:2 [ main::point1 ] diff --git a/src/test/ref/struct-29.cfg b/src/test/ref/struct-29.cfg index 10cadadca..7f5e31063 100644 --- a/src/test/ref/struct-29.cfg +++ b/src/test/ref/struct-29.cfg @@ -1,9 +1,9 @@ void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&point1) - [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) - [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) + [0] *SCREEN = *((char *)&point1) + [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) + [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [3] return diff --git a/src/test/ref/struct-29.log b/src/test/ref/struct-29.log index d94453705..dd1c22aa2 100644 --- a/src/test/ref/struct-29.log +++ b/src/test/ref/struct-29.log @@ -7,9 +7,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - SCREEN[0] = *((byte*)&point1+OFFSET_STRUCT_POINT_X) - SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] - SCREEN[2] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] + SCREEN[0] = *((char *)&point1+OFFSET_STRUCT_POINT_X) + SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] + SCREEN[2] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] to:main::@return main::@return: scope:[main] from main return @@ -17,7 +17,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,35 +26,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char * const SCREEN = (char *)$400 void __start() void main() -struct Point point1 loadstore = { x: 2, initials: { 'j', 'g' } } +__loadstore struct Point point1 = { x: 2, initials: { 'j', 'g' } } -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&point1+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 0 in SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&point1+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 0 in SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&point1 in [0] SCREEN[0] = *((byte*)&point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *((byte*)&point1) -Simplifying expression containing zero (byte*)&point1+OFFSET_STRUCT_POINT_INITIALS in [1] SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Simplifying expression containing zero (char *)&point1 in [0] SCREEN[0] = *((char *)&point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *((char *)&point1) +Simplifying expression containing zero (char *)&point1+OFFSET_STRUCT_POINT_INITIALS in [1] SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -64,11 +64,11 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -79,9 +79,9 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&point1) - [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) - [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) + [0] *SCREEN = *((char *)&point1) + [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) + [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [3] return @@ -90,7 +90,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point point1 loadstore = { x: 2, initials: { 'j', 'g' } } +__loadstore struct Point point1 = { x: 2, initials: { 'j', 'g' } } Initial phi equivalence classes Added variable point1 to live range equivalence class [ point1 ] @@ -98,9 +98,9 @@ Complete equivalence classes [ point1 ] Allocated mem[3] [ point1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = *((byte*)&point1) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = *((char *)&point1) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[3] [ point1 ] : mem[3] , REGISTER UPLIFT SCOPES @@ -130,13 +130,13 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *SCREEN = *((byte*)&point1) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&point1) -- _deref_pbuc1=_deref_pbuc2 lda point1 sta SCREEN - // [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 - // [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 jmp __breturn @@ -156,10 +156,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 void main() -struct Point point1 loadstore mem[3] = { x: 2, initials: { 'j', 'g' } } +__loadstore struct Point point1 = { x: 2, initials: { 'j', 'g' } } // mem[3] mem[3] [ point1 ] @@ -185,15 +185,15 @@ Score: 30 // main main: { // SCREEN[0] = point1.x - // [0] *SCREEN = *((byte*)&point1) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&point1) -- _deref_pbuc1=_deref_pbuc2 lda point1 sta SCREEN // SCREEN[1] = point1.initials[0] - // [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 // SCREEN[2] = point1.initials[1] - // [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 // main::@return diff --git a/src/test/ref/struct-29.sym b/src/test/ref/struct-29.sym index 1d2dcaf6a..66ecb9bf9 100644 --- a/src/test/ref/struct-29.sym +++ b/src/test/ref/struct-29.sym @@ -1,6 +1,6 @@ -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 void main() -struct Point point1 loadstore mem[3] = { x: 2, initials: { 'j', 'g' } } +__loadstore struct Point point1 = { x: 2, initials: { 'j', 'g' } } // mem[3] mem[3] [ point1 ] diff --git a/src/test/ref/struct-3.asm b/src/test/ref/struct-3.asm index c5fb11ddd..cdf5597ea 100644 --- a/src/test/ref/struct-3.asm +++ b/src/test/ref/struct-3.asm @@ -21,7 +21,7 @@ main: { // } rts } -// print(byte register(A) p_x) +// void print(__register(A) char p_x, char p_y) print: { // SCREEN[idx++] = p.x sta SCREEN,x diff --git a/src/test/ref/struct-3.cfg b/src/test/ref/struct-3.cfg index eb0a6b0d9..a0c063bb9 100644 --- a/src/test/ref/struct-3.cfg +++ b/src/test/ref/struct-3.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 [5] idx#12 = phi( main/0, main::@1/idx#13 ) [5] print::p_x#2 = phi( main/1, main::@1/2 ) diff --git a/src/test/ref/struct-3.log b/src/test/ref/struct-3.log index c3e84cf91..94e73e115 100644 --- a/src/test/ref/struct-3.log +++ b/src/test/ref/struct-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,7 +11,7 @@ main: scope:[main] from __start::@1 main::p1_y#1 = 4 print::p_x#0 = main::p1_x#1 print::p_y#0 = main::p1_y#1 - call print + call print to:main::@1 main::@1: scope:[main] from main main::p1_y#2 = phi( main/main::p1_y#1 ) @@ -20,7 +20,7 @@ main::@1: scope:[main] from main main::p1_x#2 = 2 print::p_x#1 = main::p1_x#2 print::p_y#1 = main::p1_y#2 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#10 = phi( main::@1/idx#5 ) @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) idx#12 = phi( main/idx#16, main::@1/idx#0 ) @@ -56,7 +56,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#17 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#14 = phi( __start::@1/idx#2 ) @@ -69,46 +69,46 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -byte main::p1_x -byte main::p1_x#0 -byte main::p1_x#1 -byte main::p1_x#2 -byte main::p1_y -byte main::p1_y#0 -byte main::p1_y#1 -byte main::p1_y#2 -void print(byte print::p_x , byte print::p_y) +char main::p1_x +char main::p1_x#0 +char main::p1_x#1 +char main::p1_x#2 +char main::p1_y +char main::p1_y#0 +char main::p1_y#1 +char main::p1_y#2 +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 -byte print::p_x#1 -byte print::p_x#2 -byte print::p_y -byte print::p_y#0 -byte print::p_y#1 -byte print::p_y#2 +char print::p_x +char print::p_x#0 +char print::p_x#1 +char print::p_x#2 +char print::p_y +char print::p_y#0 +char print::p_y#1 +char print::p_y#2 Adding number conversion cast (unumber) 1 in main::p1_x#1 = 1 Adding number conversion cast (unumber) 4 in main::p1_y#1 = 4 @@ -118,14 +118,14 @@ Inlining cast main::p1_x#1 = (unumber)1 Inlining cast main::p1_y#1 = (unumber)4 Inlining cast main::p1_x#2 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::p1_y#1 = main::p1_y#2 Alias idx#0 = idx#9 @@ -195,17 +195,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 [5] idx#12 = phi( main/0, main::@1/idx#13 ) [5] print::p_x#2 = phi( main/1, main::@1/2 ) @@ -220,18 +220,18 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#12 12.0 -byte idx#13 3.25 -byte idx#3 16.5 +char idx +char idx#12 // 12.0 +char idx#13 // 3.25 +char idx#3 // 16.5 void main() -byte main::p1_x -byte main::p1_y -void print(byte print::p_x , byte print::p_y) +char main::p1_x +char main::p1_y +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#2 11.0 -byte print::p_y +char print::p_x +char print::p_x#2 // 11.0 +char print::p_y Initial phi equivalence classes [ print::p_x#2 ] @@ -281,7 +281,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label p1_y = 4 - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] print_from_main: // [5] phi idx#12 = 0 [phi:main->print#0] -- vbuxx=vbuc1 @@ -294,7 +294,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [5] phi idx#12 = idx#13 [phi:main::@1->print#0] -- register_copy @@ -308,7 +308,7 @@ main: { rts } // print -// print(byte register(A) p_x) +// void print(__register(A) char p_x, char p_y) print: { // [6] SCREEN[idx#12] = print::p_x#2 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x @@ -342,20 +342,20 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#12 reg byte x 12.0 -byte idx#13 reg byte x 3.25 -byte idx#3 reg byte x 16.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#12 // reg byte x 12.0 +char idx#13 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 void main() -byte main::p1_x -byte main::p1_y -constant byte main::p1_y#1 p1_y = 4 -void print(byte print::p_x , byte print::p_y) +char main::p1_x +char main::p1_y +__constant char main::p1_y#1 = 4 // p1_y +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#2 reg byte a 11.0 -byte print::p_y +char print::p_x +char print::p_x#2 // reg byte a 11.0 +char print::p_y reg byte a [ print::p_x#2 ] reg byte x [ idx#12 idx#13 ] @@ -383,7 +383,7 @@ Score: 46 main: { .label p1_y = 4 // print(p1) - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] // [5] phi idx#12 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 @@ -393,7 +393,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print(p1) - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] // [5] phi idx#12 = idx#13 [phi:main::@1->print#0] -- register_copy // [5] phi print::p_x#2 = 2 [phi:main::@1->print#1] -- vbuaa=vbuc1 @@ -405,7 +405,7 @@ main: { rts } // print -// print(byte register(A) p_x) +// void print(__register(A) char p_x, char p_y) print: { // SCREEN[idx++] = p.x // [6] SCREEN[idx#12] = print::p_x#2 -- pbuc1_derefidx_vbuxx=vbuaa diff --git a/src/test/ref/struct-3.sym b/src/test/ref/struct-3.sym index abee68286..42a167b30 100644 --- a/src/test/ref/struct-3.sym +++ b/src/test/ref/struct-3.sym @@ -1,17 +1,17 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#12 reg byte x 12.0 -byte idx#13 reg byte x 3.25 -byte idx#3 reg byte x 16.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#12 // reg byte x 12.0 +char idx#13 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 void main() -byte main::p1_x -byte main::p1_y -constant byte main::p1_y#1 p1_y = 4 -void print(byte print::p_x , byte print::p_y) +char main::p1_x +char main::p1_y +__constant char main::p1_y#1 = 4 // p1_y +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#2 reg byte a 11.0 -byte print::p_y +char print::p_x +char print::p_x#2 // reg byte a 11.0 +char print::p_y reg byte a [ print::p_x#2 ] reg byte x [ idx#12 idx#13 ] diff --git a/src/test/ref/struct-30.cfg b/src/test/ref/struct-30.cfg index 50dfd410f..2a0e11de2 100644 --- a/src/test/ref/struct-30.cfg +++ b/src/test/ref/struct-30.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] *main::point1_initials = memcpy(*(&$0), byte, 3) + [0] *main::point1_initials = memcpy(*(&$0), char, 3) [1] *SCREEN = main::point1_x [2] *(SCREEN+1) = *main::point1_initials [3] *(SCREEN+2) = *(main::point1_initials+1) diff --git a/src/test/ref/struct-30.log b/src/test/ref/struct-30.log index 6157b33bb..81029bae1 100644 --- a/src/test/ref/struct-30.log +++ b/src/test/ref/struct-30.log @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *main::point1_initials = memcpy(*(&$0), byte, 3) + *main::point1_initials = memcpy(*(&$0), char, 3) SCREEN[0] = main::point1_x SCREEN[1] = main::point1_initials[0] SCREEN[2] = main::point1_initials[1] @@ -18,7 +18,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,12 +27,12 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* $0[3] = "jg" -constant byte* const SCREEN = (byte*)$400 +__constant char $0[3] = "jg" +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte* main::point1_initials[3] = { fill( 3, 0) } -constant byte main::point1_x = 2 +__constant char main::point1_initials[3] = { fill( 3, 0) } +__constant char main::point1_x = 2 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::point1_x Adding number conversion cast (unumber) 0 in SCREEN[1] = main::point1_initials[0] @@ -40,18 +40,18 @@ Adding number conversion cast (unumber) 1 in SCREEN[1] = main::point1_initials[( Adding number conversion cast (unumber) 1 in SCREEN[2] = main::point1_initials[1] Adding number conversion cast (unumber) 2 in SCREEN[2] = main::point1_initials[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [1] SCREEN[0] = main::point1_x Simplifying expression containing zero main::point1_initials in [2] SCREEN[1] = main::point1_initials[0] @@ -65,9 +65,9 @@ Consolidated array index constant in *(SCREEN+1) Consolidated array index constant in *(main::point1_initials+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -78,7 +78,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::point1_initials = memcpy(*(&$0), byte, 3) + [0] *main::point1_initials = memcpy(*(&$0), char, 3) [1] *SCREEN = main::point1_x [2] *(SCREEN+1) = *main::point1_initials [3] *(SCREEN+2) = *(main::point1_initials+1) @@ -94,7 +94,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::point1_initials = memcpy(*(&$0), byte, 3) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y +Statement [0] *main::point1_initials = memcpy(*(&$0), char, 3) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Statement [1] *SCREEN = main::point1_x [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *(SCREEN+1) = *main::point1_initials [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *(SCREEN+2) = *(main::point1_initials+1) [ ] ( [ ] { } ) always clobbers reg byte a @@ -126,7 +126,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .const point1_x = 2 - // [0] *main::point1_initials = memcpy(*(&$0), byte, 3) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [0] *main::point1_initials = memcpy(*(&$0), char, 3) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #3 !: lda __0-1,y @@ -161,11 +161,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* $0[3] = "jg" -constant byte* const SCREEN = (byte*) 1024 +__constant char $0[3] = "jg" +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* main::point1_initials[3] = { fill( 3, 0) } -constant byte main::point1_x = 2 +__constant char main::point1_initials[3] = { fill( 3, 0) } +__constant char main::point1_x = 2 @@ -190,7 +190,7 @@ Score: 44 main: { .const point1_x = 2 // struct Point point1 = { 2, "jg" } - // [0] *main::point1_initials = memcpy(*(&$0), byte, 3) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [0] *main::point1_initials = memcpy(*(&$0), char, 3) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #3 !: lda __0-1,y diff --git a/src/test/ref/struct-30.sym b/src/test/ref/struct-30.sym index 5a1afe96a..336152cef 100644 --- a/src/test/ref/struct-30.sym +++ b/src/test/ref/struct-30.sym @@ -1,6 +1,6 @@ -constant byte* $0[3] = "jg" -constant byte* const SCREEN = (byte*) 1024 +__constant char $0[3] = "jg" +__constant char * const SCREEN = (char *) 1024 void main() -constant byte* main::point1_initials[3] = { fill( 3, 0) } -constant byte main::point1_x = 2 +__constant char main::point1_initials[3] = { fill( 3, 0) } +__constant char main::point1_x = 2 diff --git a/src/test/ref/struct-31.log b/src/test/ref/struct-31.log index b3510b935..014db9c4b 100644 --- a/src/test/ref/struct-31.log +++ b/src/test/ref/struct-31.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,21 +21,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte main::point1_x = 2 -constant byte main::point1_y = 3 +__constant char main::point1_x = 2 +__constant char main::point1_y = 3 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::point1_x Adding number conversion cast (unumber) 1 in SCREEN[1] = main::point1_y Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = main::point1_x Successful SSA optimization PassNSimplifyExpressionWithZero @@ -121,10 +121,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte main::point1_x = 2 -constant byte main::point1_y = 3 +__constant char main::point1_x = 2 +__constant char main::point1_y = 3 diff --git a/src/test/ref/struct-31.sym b/src/test/ref/struct-31.sym index dcb5d60b8..e1f21491b 100644 --- a/src/test/ref/struct-31.sym +++ b/src/test/ref/struct-31.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte main::point1_x = 2 -constant byte main::point1_y = 3 +__constant char main::point1_x = 2 +__constant char main::point1_y = 3 diff --git a/src/test/ref/struct-32.cfg b/src/test/ref/struct-32.cfg index a27611c17..14fd64dd4 100644 --- a/src/test/ref/struct-32.cfg +++ b/src/test/ref/struct-32.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - [1] *((byte*)&main::point1) = 2 - [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 + [1] *((char *)&main::point1) = 2 + [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 [3] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) - [4] *SCREEN = *((byte*)&main::point2) - [5] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) + [4] *SCREEN = *((char *)&main::point2) + [5] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [6] return diff --git a/src/test/ref/struct-32.log b/src/test/ref/struct-32.log index 171c5c989..f7af1b3a2 100644 --- a/src/test/ref/struct-32.log +++ b/src/test/ref/struct-32.log @@ -6,11 +6,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 - *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 + *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 + *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) - SCREEN[0] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) - SCREEN[1] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) + SCREEN[0] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) + SCREEN[1] = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main return @@ -18,7 +18,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,37 +27,37 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 -Adding number conversion cast (unumber) 2 in *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 -Adding number conversion cast (unumber) 3 in *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 1 in SCREEN[1] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) +Adding number conversion cast (unumber) 2 in *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 +Adding number conversion cast (unumber) 3 in *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 1 in SCREEN[1] = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = (unumber)2 -Inlining cast *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = (unumber)3 +Inlining cast *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = (unumber)2 +Inlining cast *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&main::point1 in [1] *((byte*)&main::point1+OFFSET_STRUCT_POINT_X) = 2 -Simplifying expression containing zero (byte*)&main::point2 in [4] SCREEN[0] = *((byte*)&main::point2+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [4] SCREEN[0] = *((byte*)&main::point2) +Simplifying expression containing zero (char *)&main::point1 in [1] *((char *)&main::point1+OFFSET_STRUCT_POINT_X) = 2 +Simplifying expression containing zero (char *)&main::point2 in [4] SCREEN[0] = *((char *)&main::point2+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [4] SCREEN[0] = *((char *)&main::point2) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -78,11 +78,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) - [1] *((byte*)&main::point1) = 2 - [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 + [1] *((char *)&main::point1) = 2 + [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 [3] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) - [4] *SCREEN = *((byte*)&main::point2) - [5] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) + [4] *SCREEN = *((char *)&main::point2) + [5] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [6] return @@ -91,8 +91,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point main::point1 loadstore -struct Point main::point2 loadstore +__loadstore struct Point main::point1 +__loadstore struct Point main::point2 Initial phi equivalence classes Added variable main::point1 to live range equivalence class [ main::point1 ] @@ -104,11 +104,11 @@ Allocated zp[2]:2 [ main::point1 ] Allocated zp[2]:4 [ main::point2 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::point1) = memset(struct Point, SIZEOF_STRUCT_POINT) [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *((byte*)&main::point1) = 2 [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a -Statement [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a +Statement [1] *((char *)&main::point1) = 2 [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a +Statement [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 [ main::point1 main::point2 ] ( [ main::point1 main::point2 ] { } ) always clobbers reg byte a Statement [3] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a reg byte y -Statement [4] *SCREEN = *((byte*)&main::point2) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a -Statement [5] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *SCREEN = *((char *)&main::point2) [ main::point2 ] ( [ main::point2 ] { } ) always clobbers reg byte a +Statement [5] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::point1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::point2 ] : zp[2]:4 , @@ -149,10 +149,10 @@ main: { dey sta point1,y bne !- - // [1] *((byte*)&main::point1) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&main::point1) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta.z point1 - // [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 + // [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta point1+OFFSET_STRUCT_POINT_Y // [3] *(&main::point2) = memcpy(*(&main::point1), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 @@ -162,10 +162,10 @@ main: { sta point2-1,y dey bne !- - // [4] *SCREEN = *((byte*)&main::point2) -- _deref_pbuc1=_deref_pbuc2 + // [4] *SCREEN = *((char *)&main::point2) -- _deref_pbuc1=_deref_pbuc2 lda.z point2 sta SCREEN - // [5] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [5] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_Y sta SCREEN+1 jmp __breturn @@ -183,12 +183,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::point1 loadstore zp[2]:2 -struct Point main::point2 loadstore zp[2]:4 +__loadstore struct Point main::point1 // zp[2]:2 +__loadstore struct Point main::point2 // zp[2]:4 zp[2]:2 [ main::point1 ] zp[2]:4 [ main::point2 ] @@ -226,11 +226,11 @@ main: { sta point1,y bne !- // point1.x = 2 - // [1] *((byte*)&main::point1) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&main::point1) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta.z point1 // point1.y = 3 - // [2] *((byte*)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 + // [2] *((char *)&main::point1+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta point1+OFFSET_STRUCT_POINT_Y // __ma struct Point point2 = point1 @@ -242,11 +242,11 @@ main: { dey bne !- // SCREEN[0] = point2.x - // [4] *SCREEN = *((byte*)&main::point2) -- _deref_pbuc1=_deref_pbuc2 + // [4] *SCREEN = *((char *)&main::point2) -- _deref_pbuc1=_deref_pbuc2 lda.z point2 sta SCREEN // SCREEN[1] = point2.y - // [5] *(SCREEN+1) = *((byte*)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [5] *(SCREEN+1) = *((char *)&main::point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-32.sym b/src/test/ref/struct-32.sym index 6df384d8f..fe8cf9394 100644 --- a/src/test/ref/struct-32.sym +++ b/src/test/ref/struct-32.sym @@ -1,9 +1,9 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::point1 loadstore zp[2]:2 -struct Point main::point2 loadstore zp[2]:4 +__loadstore struct Point main::point1 // zp[2]:2 +__loadstore struct Point main::point2 // zp[2]:4 zp[2]:2 [ main::point1 ] zp[2]:4 [ main::point2 ] diff --git a/src/test/ref/struct-33.cfg b/src/test/ref/struct-33.cfg index 88235d1a7..45690890b 100644 --- a/src/test/ref/struct-33.cfg +++ b/src/test/ref/struct-33.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *((byte*)&point) = 2 - [1] *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 - [2] *SCREEN = *((byte*)&point) - [3] *(SCREEN+1) = *((byte*)&point+OFFSET_STRUCT_POINT_Y) + [0] *((char *)&point) = 2 + [1] *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 + [2] *SCREEN = *((char *)&point) + [3] *(SCREEN+1) = *((char *)&point+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/struct-33.log b/src/test/ref/struct-33.log index d3d74fbdf..d4d9e26ab 100644 --- a/src/test/ref/struct-33.log +++ b/src/test/ref/struct-33.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)&point+OFFSET_STRUCT_POINT_X) = 2 - *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 - SCREEN[0] = *((byte*)&point+OFFSET_STRUCT_POINT_X) - SCREEN[1] = *((byte*)&point+OFFSET_STRUCT_POINT_Y) + *((char *)&point+OFFSET_STRUCT_POINT_X) = 2 + *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 + SCREEN[0] = *((char *)&point+OFFSET_STRUCT_POINT_X) + SCREEN[1] = *((char *)&point+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main return @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,35 +23,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 void __start() void main() -struct Point point loadstore = {} +__loadstore struct Point point = {} -Adding number conversion cast (unumber) 2 in *((byte*)&point+OFFSET_STRUCT_POINT_X) = 2 -Adding number conversion cast (unumber) 3 in *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&point+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 1 in SCREEN[1] = *((byte*)&point+OFFSET_STRUCT_POINT_Y) +Adding number conversion cast (unumber) 2 in *((char *)&point+OFFSET_STRUCT_POINT_X) = 2 +Adding number conversion cast (unumber) 3 in *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&point+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 1 in SCREEN[1] = *((char *)&point+OFFSET_STRUCT_POINT_Y) Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)&point+OFFSET_STRUCT_POINT_X) = (unumber)2 -Inlining cast *((byte*)&point+OFFSET_STRUCT_POINT_Y) = (unumber)3 +Inlining cast *((char *)&point+OFFSET_STRUCT_POINT_X) = (unumber)2 +Inlining cast *((char *)&point+OFFSET_STRUCT_POINT_Y) = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&point in [0] *((byte*)&point+OFFSET_STRUCT_POINT_X) = 2 -Simplifying expression containing zero (byte*)&point in [2] SCREEN[0] = *((byte*)&point+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [2] SCREEN[0] = *((byte*)&point) +Simplifying expression containing zero (char *)&point in [0] *((char *)&point+OFFSET_STRUCT_POINT_X) = 2 +Simplifying expression containing zero (char *)&point in [2] SCREEN[0] = *((char *)&point+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [2] SCREEN[0] = *((char *)&point) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -71,10 +71,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)&point) = 2 - [1] *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 - [2] *SCREEN = *((byte*)&point) - [3] *(SCREEN+1) = *((byte*)&point+OFFSET_STRUCT_POINT_Y) + [0] *((char *)&point) = 2 + [1] *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 + [2] *SCREEN = *((char *)&point) + [3] *(SCREEN+1) = *((char *)&point+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return @@ -83,7 +83,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point point loadstore = {} +__loadstore struct Point point = {} Initial phi equivalence classes Added variable point to live range equivalence class [ point ] @@ -91,10 +91,10 @@ Complete equivalence classes [ point ] Allocated mem[2] [ point ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)&point) = 2 [ point ] ( [ point ] { } ) always clobbers reg byte a -Statement [1] *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 [ point ] ( [ point ] { } ) always clobbers reg byte a -Statement [2] *SCREEN = *((byte*)&point) [ point ] ( [ point ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+1) = *((byte*)&point+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)&point) = 2 [ point ] ( [ point ] { } ) always clobbers reg byte a +Statement [1] *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 [ point ] ( [ point ] { } ) always clobbers reg byte a +Statement [2] *SCREEN = *((char *)&point) [ point ] ( [ point ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+1) = *((char *)&point+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[2] [ point ] : mem[2] , REGISTER UPLIFT SCOPES @@ -125,16 +125,16 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)&point) = 2 -- _deref_pbuc1=vbuc2 + // [0] *((char *)&point) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta point - // [1] *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta point+OFFSET_STRUCT_POINT_Y - // [2] *SCREEN = *((byte*)&point) -- _deref_pbuc1=_deref_pbuc2 + // [2] *SCREEN = *((char *)&point) -- _deref_pbuc1=_deref_pbuc2 lda point sta SCREEN - // [3] *(SCREEN+1) = *((byte*)&point+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+1) = *((char *)&point+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point+OFFSET_STRUCT_POINT_Y sta SCREEN+1 jmp __breturn @@ -154,11 +154,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point point loadstore mem[2] = {} +__loadstore struct Point point = {} // mem[2] mem[2] [ point ] @@ -185,19 +185,19 @@ Score: 34 // main main: { // point.x = 2 - // [0] *((byte*)&point) = 2 -- _deref_pbuc1=vbuc2 + // [0] *((char *)&point) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta point // point.y = 3 - // [1] *((byte*)&point+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)&point+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta point+OFFSET_STRUCT_POINT_Y // SCREEN[0] = point.x - // [2] *SCREEN = *((byte*)&point) -- _deref_pbuc1=_deref_pbuc2 + // [2] *SCREEN = *((char *)&point) -- _deref_pbuc1=_deref_pbuc2 lda point sta SCREEN // SCREEN[1] = point.y - // [3] *(SCREEN+1) = *((byte*)&point+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+1) = *((char *)&point+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-33.sym b/src/test/ref/struct-33.sym index 3a1b99ea9..b4815ba33 100644 --- a/src/test/ref/struct-33.sym +++ b/src/test/ref/struct-33.sym @@ -1,7 +1,7 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point point loadstore mem[2] = {} +__loadstore struct Point point = {} // mem[2] mem[2] [ point ] diff --git a/src/test/ref/struct-34.log b/src/test/ref/struct-34.log index 47d22a508..2f9e72bca 100644 --- a/src/test/ref/struct-34.log +++ b/src/test/ref/struct-34.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -27,7 +27,7 @@ __start::__init1: scope:[__start] from __start __start::@1: scope:[__start] from __start::__init1 point_y#8 = phi( __start::__init1/point_y#2 ) point_x#8 = phi( __start::__init1/point_x#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 point_y#6 = phi( __start::@1/point_y#1 ) @@ -44,29 +44,29 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte point_x -byte point_x#0 -byte point_x#1 -byte point_x#2 -byte point_x#3 -byte point_x#4 -byte point_x#5 -byte point_x#6 -byte point_x#7 -byte point_x#8 -byte point_y -byte point_y#0 -byte point_y#1 -byte point_y#2 -byte point_y#3 -byte point_y#4 -byte point_y#5 -byte point_y#6 -byte point_y#7 -byte point_y#8 +char point_x +char point_x#0 +char point_x#1 +char point_x#2 +char point_x#3 +char point_x#4 +char point_x#5 +char point_x#6 +char point_x#7 +char point_x#8 +char point_y +char point_y#0 +char point_y#1 +char point_y#2 +char point_y#3 +char point_y#4 +char point_y#5 +char point_y#6 +char point_y#7 +char point_y#8 Adding number conversion cast (unumber) 2 in point_x#0 = 2 Adding number conversion cast (unumber) 3 in point_y#0 = 3 @@ -76,16 +76,16 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast point_x#0 = (unumber)2 Inlining cast point_y#0 = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias point_x#0 = point_x#5 point_x#1 Alias point_y#0 = point_y#5 point_y#1 @@ -135,8 +135,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte point_x -byte point_y +char point_x +char point_y Initial phi equivalence classes Complete equivalence classes @@ -193,12 +193,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte point_x -constant byte point_x#0 point_x = 2 -byte point_y -constant byte point_y#0 point_y = 3 +char point_x +__constant char point_x#0 = 2 // point_x +char point_y +__constant char point_y#0 = 3 // point_y diff --git a/src/test/ref/struct-34.sym b/src/test/ref/struct-34.sym index 911b8e1ae..c2efa708e 100644 --- a/src/test/ref/struct-34.sym +++ b/src/test/ref/struct-34.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte point_x -constant byte point_x#0 point_x = 2 -byte point_y -constant byte point_y#0 point_y = 3 +char point_x +__constant char point_x#0 = 2 // point_x +char point_y +__constant char point_y#0 = 3 // point_y diff --git a/src/test/ref/struct-35.cfg b/src/test/ref/struct-35.cfg index 4be67940c..c4abde1dd 100644 --- a/src/test/ref/struct-35.cfg +++ b/src/test/ref/struct-35.cfg @@ -2,8 +2,8 @@ void main() main: scope:[main] from [0] *main::p2 = memcpy(*(&point1), struct Point, SIZEOF_STRUCT_POINT) - [1] *SCREEN = *((byte*)&point2) - [2] *(SCREEN+1) = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) + [1] *SCREEN = *((char *)&point2) + [2] *(SCREEN+1) = *((char *)&point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [3] return diff --git a/src/test/ref/struct-35.log b/src/test/ref/struct-35.log index 765592faf..322e1d131 100644 --- a/src/test/ref/struct-35.log +++ b/src/test/ref/struct-35.log @@ -5,8 +5,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *main::p2 = memcpy(*(&point1), struct Point, SIZEOF_STRUCT_POINT) - SCREEN[0] = *((byte*)&point2+OFFSET_STRUCT_POINT_X) - SCREEN[1] = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) + SCREEN[0] = *((char *)&point2+OFFSET_STRUCT_POINT_X) + SCREEN[1] = *((char *)&point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main return @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,28 +23,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -constant struct Point* main::p2 = &point2 -struct Point point1 loadstore = { x: 2, y: 3 } -volatile struct Point point2 loadstore = {} +__constant struct Point *main::p2 = &point2 +__loadstore struct Point point1 = { x: 2, y: 3 } +__loadstore volatile struct Point point2 = {} -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&point2+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 1 in SCREEN[1] = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&point2+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 1 in SCREEN[1] = *((char *)&point2+OFFSET_STRUCT_POINT_Y) Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&point2 in [1] SCREEN[0] = *((byte*)&point2+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((byte*)&point2) +Simplifying expression containing zero (char *)&point2 in [1] SCREEN[0] = *((char *)&point2+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((char *)&point2) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -65,8 +65,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *main::p2 = memcpy(*(&point1), struct Point, SIZEOF_STRUCT_POINT) - [1] *SCREEN = *((byte*)&point2) - [2] *(SCREEN+1) = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) + [1] *SCREEN = *((char *)&point2) + [2] *(SCREEN+1) = *((char *)&point2+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [3] return @@ -75,8 +75,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point point1 loadstore = { x: 2, y: 3 } -volatile struct Point point2 loadstore = {} +__loadstore struct Point point1 = { x: 2, y: 3 } +__loadstore volatile struct Point point2 = {} Initial phi equivalence classes Added variable point1 to live range equivalence class [ point1 ] @@ -88,8 +88,8 @@ Allocated mem[2] [ point1 ] Allocated mem[2] [ point2 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *main::p2 = memcpy(*(&point1), struct Point, SIZEOF_STRUCT_POINT) [ point2 ] ( [ point2 ] { } ) always clobbers reg byte a reg byte y -Statement [1] *SCREEN = *((byte*)&point2) [ point2 ] ( [ point2 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+1) = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *((char *)&point2) [ point2 ] ( [ point2 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+1) = *((char *)&point2+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[2] [ point1 ] : mem[2] , Potential registers mem[2] [ point2 ] : mem[2] , @@ -129,10 +129,10 @@ main: { sta p2-1,y dey bne !- - // [1] *SCREEN = *((byte*)&point2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&point2) -- _deref_pbuc1=_deref_pbuc2 lda point2 sta SCREEN - // [2] *(SCREEN+1) = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_Y sta SCREEN+1 jmp __breturn @@ -153,13 +153,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant struct Point* main::p2 = &point2 -struct Point point1 loadstore mem[2] = { x: 2, y: 3 } -volatile struct Point point2 loadstore mem[2] = {} +__constant struct Point *main::p2 = &point2 +__loadstore struct Point point1 = { x: 2, y: 3 } // mem[2] +__loadstore volatile struct Point point2 = {} // mem[2] mem[2] [ point1 ] mem[2] [ point2 ] @@ -196,11 +196,11 @@ main: { dey bne !- // SCREEN[0] = point2.x - // [1] *SCREEN = *((byte*)&point2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&point2) -- _deref_pbuc1=_deref_pbuc2 lda point2 sta SCREEN // SCREEN[1] = point2.y - // [2] *(SCREEN+1) = *((byte*)&point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&point2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda point2+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-35.sym b/src/test/ref/struct-35.sym index 1ae94c13a..45b932234 100644 --- a/src/test/ref/struct-35.sym +++ b/src/test/ref/struct-35.sym @@ -1,10 +1,10 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant struct Point* main::p2 = &point2 -struct Point point1 loadstore mem[2] = { x: 2, y: 3 } -volatile struct Point point2 loadstore mem[2] = {} +__constant struct Point *main::p2 = &point2 +__loadstore struct Point point1 = { x: 2, y: 3 } // mem[2] +__loadstore volatile struct Point point2 = {} // mem[2] mem[2] [ point1 ] mem[2] [ point2 ] diff --git a/src/test/ref/struct-36.cfg b/src/test/ref/struct-36.cfg index 10cadadca..7f5e31063 100644 --- a/src/test/ref/struct-36.cfg +++ b/src/test/ref/struct-36.cfg @@ -1,9 +1,9 @@ void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&point1) - [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) - [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) + [0] *SCREEN = *((char *)&point1) + [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) + [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [3] return diff --git a/src/test/ref/struct-36.log b/src/test/ref/struct-36.log index 9156959ec..8b21dde95 100644 --- a/src/test/ref/struct-36.log +++ b/src/test/ref/struct-36.log @@ -7,9 +7,9 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - SCREEN[0] = *((byte*)&point1+OFFSET_STRUCT_POINT_X) - SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] - SCREEN[2] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] + SCREEN[0] = *((char *)&point1+OFFSET_STRUCT_POINT_X) + SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] + SCREEN[2] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] to:main::@return main::@return: scope:[main] from main return @@ -17,7 +17,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,35 +26,35 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char * const SCREEN = (char *)$400 void __start() void main() -struct Point point1 loadstore = { x: 2, initials: "jg" } +__loadstore struct Point point1 = { x: 2, initials: "jg" } -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&point1+OFFSET_STRUCT_POINT_X) -Adding number conversion cast (unumber) 0 in SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&point1+OFFSET_STRUCT_POINT_X) +Adding number conversion cast (unumber) 0 in SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)0] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[(unumber)1] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&point1 in [0] SCREEN[0] = *((byte*)&point1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *((byte*)&point1) -Simplifying expression containing zero (byte*)&point1+OFFSET_STRUCT_POINT_INITIALS in [1] SCREEN[1] = ((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] +Simplifying expression containing zero (char *)&point1 in [0] SCREEN[0] = *((char *)&point1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *((char *)&point1) +Simplifying expression containing zero (char *)&point1+OFFSET_STRUCT_POINT_INITIALS in [1] SCREEN[1] = ((char *)&point1+OFFSET_STRUCT_POINT_INITIALS)[0] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -64,11 +64,11 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) +Consolidated array index constant in *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) Consolidated array index constant in *(SCREEN+2) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -79,9 +79,9 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&point1) - [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) - [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) + [0] *SCREEN = *((char *)&point1) + [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) + [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) to:main::@return main::@return: scope:[main] from main [3] return @@ -90,7 +90,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point point1 loadstore = { x: 2, initials: "jg" } +__loadstore struct Point point1 = { x: 2, initials: "jg" } Initial phi equivalence classes Added variable point1 to live range equivalence class [ point1 ] @@ -98,9 +98,9 @@ Complete equivalence classes [ point1 ] Allocated mem[3] [ point1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = *((byte*)&point1) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = *((char *)&point1) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[3] [ point1 ] : mem[3] , REGISTER UPLIFT SCOPES @@ -130,13 +130,13 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *SCREEN = *((byte*)&point1) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&point1) -- _deref_pbuc1=_deref_pbuc2 lda point1 sta SCREEN - // [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 - // [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 jmp __breturn @@ -158,10 +158,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 void main() -struct Point point1 loadstore mem[3] = { x: 2, initials: "jg" } +__loadstore struct Point point1 = { x: 2, initials: "jg" } // mem[3] mem[3] [ point1 ] @@ -187,15 +187,15 @@ Score: 30 // main main: { // SCREEN[0] = point1.x - // [0] *SCREEN = *((byte*)&point1) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&point1) -- _deref_pbuc1=_deref_pbuc2 lda point1 sta SCREEN // SCREEN[1] = point1.initials[0] - // [1] *(SCREEN+1) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS sta SCREEN+1 // SCREEN[2] = point1.initials[1] - // [2] *(SCREEN+2) = *((byte*)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+2) = *((char *)&point1+OFFSET_STRUCT_POINT_INITIALS+1) -- _deref_pbuc1=_deref_pbuc2 lda point1+OFFSET_STRUCT_POINT_INITIALS+1 sta SCREEN+2 // main::@return diff --git a/src/test/ref/struct-36.sym b/src/test/ref/struct-36.sym index 2e4b396d2..7d9c4916f 100644 --- a/src/test/ref/struct-36.sym +++ b/src/test/ref/struct-36.sym @@ -1,6 +1,6 @@ -constant byte OFFSET_STRUCT_POINT_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant char OFFSET_STRUCT_POINT_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 void main() -struct Point point1 loadstore mem[3] = { x: 2, initials: "jg" } +__loadstore struct Point point1 = { x: 2, initials: "jg" } // mem[3] mem[3] [ point1 ] diff --git a/src/test/ref/struct-37.cfg b/src/test/ref/struct-37.cfg index 5eaa7b29c..4d441ad65 100644 --- a/src/test/ref/struct-37.cfg +++ b/src/test/ref/struct-37.cfg @@ -8,8 +8,8 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 2 [3] main::$1 = main::$2 + main::i#2 - [4] main::to_x#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] - [5] main::to_y#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] + [4] main::to_x#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] + [5] main::to_y#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [6] SCREEN[main::j#3] = main::to_x#0 [7] main::j#1 = ++ main::j#3 [8] SCREEN[main::j#1] = main::to_y#0 diff --git a/src/test/ref/struct-37.log b/src/test/ref/struct-37.log index 9fe64c7ae..1c3aa76cc 100644 --- a/src/test/ref/struct-37.log +++ b/src/test/ref/struct-37.log @@ -10,8 +10,8 @@ main::@1: scope:[main] from main main::@1 main::j#3 = phi( main/main::j#0, main::@1/main::j#2 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$1 = main::i#2 * SIZEOF_STRUCT_SEGMENT - main::to_x#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] - main::to_y#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] + main::to_x#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] + main::to_y#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] SCREEN[main::j#3] = main::to_x#0 main::j#1 = ++ main::j#3 SCREEN[main::j#1] = main::to_y#0 @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -35,33 +35,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_X = 0 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_SEGMENT = 5 -constant byte SPLINE_TO = 1 +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_X = 0 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_SEGMENT = 5 +__constant char SPLINE_TO = 1 void __start() -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: 'a', y: 'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: 'c', y: 'd' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: 'e', y: 'f' }, via: { x: $4b, y: $c3 } } } +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: 'a', y: 'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: 'c', y: 'd' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: 'e', y: 'f' }, via: { x: $4b, y: $c3 } } } void main() -bool~ main::$0 -byte~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::to_x -byte main::to_x#0 -byte main::to_y -byte main::to_y#0 +bool main::$0 +char main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::to_x +char main::to_x#0 +char main::to_y +char main::to_y#0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [12] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -70,7 +70,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [10] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [12] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying expression containing zero (byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO in [4] main::to_x#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] +Simplifying expression containing zero (char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO in [4] main::to_x#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_SPLINEVECTOR16_X Successful SSA optimization PassNEliminateUnusedVars @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 3 in [9] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[1] main::$1 = main::i#2 * SIZEOF_STRUCT_SEGMENT Inlining constant with var siblings main::j#0 @@ -117,8 +117,8 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 2 [3] main::$1 = main::$2 + main::i#2 - [4] main::to_x#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] - [5] main::to_y#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] + [4] main::to_x#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] + [5] main::to_y#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [6] SCREEN[main::j#3] = main::to_x#0 [7] main::j#1 = ++ main::j#3 [8] SCREEN[main::j#1] = main::to_y#0 @@ -133,19 +133,19 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 16.5 -byte~ main::$2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.888888888888889 -byte main::j -byte main::j#1 16.5 -byte main::j#2 7.333333333333333 -byte main::j#3 5.5 -byte main::to_x -byte main::to_x#0 11.0 -byte main::to_y -byte main::to_y#0 7.333333333333333 +char main::$1 // 16.5 +char main::$2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.888888888888889 +char main::j +char main::j#1 // 16.5 +char main::j#2 // 7.333333333333333 +char main::j#3 // 5.5 +char main::to_x +char main::to_x#0 // 11.0 +char main::to_y +char main::to_y#0 // 7.333333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -258,10 +258,10 @@ main: { clc adc.z $ff tay - // [4] main::to_x#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy + // [4] main::to_x#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO,y sta.z to_x - // [5] main::to_y#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy + // [5] main::to_y#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y,y sta.z to_y // [6] SCREEN[main::j#3] = main::to_x#0 -- pbuc1_derefidx_vbuz1=vbuz2 @@ -310,26 +310,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SPLINE_TO = 1 -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: 'a', y: 'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: 'c', y: 'd' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: 'e', y: 'f' }, via: { x: $4b, y: $c3 } } } +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SPLINE_TO = 1 +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: 'a', y: 'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: 'c', y: 'd' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: 'e', y: 'f' }, via: { x: $4b, y: $c3 } } } void main() -byte~ main::$1 reg byte y 16.5 -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.888888888888889 -byte main::j -byte main::j#1 reg byte y 16.5 -byte main::j#2 j zp[1]:2 7.333333333333333 -byte main::j#3 j zp[1]:2 5.5 -byte main::to_x -byte main::to_x#0 to_x zp[1]:3 11.0 -byte main::to_y -byte main::to_y#0 to_y zp[1]:4 7.333333333333333 +char main::$1 // reg byte y 16.5 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.888888888888889 +char main::j +char main::j#1 // reg byte y 16.5 +char main::j#2 // j zp[1]:2 7.333333333333333 +char main::j#3 // j zp[1]:2 5.5 +char main::to_x +char main::to_x#0 // to_x zp[1]:3 11.0 +char main::to_y +char main::to_y#0 // to_y zp[1]:4 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::j#3 main::j#2 ] @@ -387,10 +387,10 @@ main: { clc adc.z $ff tay - // [4] main::to_x#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy + // [4] main::to_x#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO,y sta.z to_x - // [5] main::to_y#0 = ((byte*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy + // [5] main::to_y#0 = ((char *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vbuz1=pbuc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y,y sta.z to_y // SCREEN[j++] = to.x diff --git a/src/test/ref/struct-37.sym b/src/test/ref/struct-37.sym index cd5735446..ed48d1d03 100644 --- a/src/test/ref/struct-37.sym +++ b/src/test/ref/struct-37.sym @@ -1,23 +1,23 @@ -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SPLINE_TO = 1 -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: 'a', y: 'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: 'c', y: 'd' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: 'e', y: 'f' }, via: { x: $4b, y: $c3 } } } +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SPLINE_TO = 1 +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: 'a', y: 'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: 'c', y: 'd' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: 'e', y: 'f' }, via: { x: $4b, y: $c3 } } } void main() -byte~ main::$1 reg byte y 16.5 -byte~ main::$2 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.888888888888889 -byte main::j -byte main::j#1 reg byte y 16.5 -byte main::j#2 j zp[1]:2 7.333333333333333 -byte main::j#3 j zp[1]:2 5.5 -byte main::to_x -byte main::to_x#0 to_x zp[1]:3 11.0 -byte main::to_y -byte main::to_y#0 to_y zp[1]:4 7.333333333333333 +char main::$1 // reg byte y 16.5 +char main::$2 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.888888888888889 +char main::j +char main::j#1 // reg byte y 16.5 +char main::j#2 // j zp[1]:2 7.333333333333333 +char main::j#3 // j zp[1]:2 5.5 +char main::to_x +char main::to_x#0 // to_x zp[1]:3 11.0 +char main::to_y +char main::to_y#0 // to_y zp[1]:4 7.333333333333333 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::j#3 main::j#2 ] diff --git a/src/test/ref/struct-38.cfg b/src/test/ref/struct-38.cfg index e6b50d3bb..bf1949760 100644 --- a/src/test/ref/struct-38.cfg +++ b/src/test/ref/struct-38.cfg @@ -8,8 +8,8 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$4 = main::i#2 << 3 [3] main::$1 = main::$4 + main::i#2 - [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] - [5] main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] + [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] + [5] main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [6] main::$2 = main::j#3 << 1 [7] SCREEN[main::$2] = main::to_x#0 [8] main::j#1 = ++ main::j#3 diff --git a/src/test/ref/struct-38.log b/src/test/ref/struct-38.log index 8829ee311..ad477d291 100644 --- a/src/test/ref/struct-38.log +++ b/src/test/ref/struct-38.log @@ -10,12 +10,12 @@ main::@1: scope:[main] from main main::@1 main::j#3 = phi( main/main::j#0, main::@1/main::j#2 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$1 = main::i#2 * SIZEOF_STRUCT_SEGMENT - main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] - main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] - main::$2 = main::j#3 * SIZEOF_SIGNED_WORD + main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] + main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] + main::$2 = main::j#3 * SIZEOF_INT SCREEN[main::$2] = main::to_x#0 main::j#1 = ++ main::j#3 - main::$3 = main::j#1 * SIZEOF_SIGNED_WORD + main::$3 = main::j#1 * SIZEOF_INT SCREEN[main::$3] = main::to_y#0 main::j#2 = ++ main::j#1 main::i#1 = main::i#2 + rangenext(0,2) @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,36 +37,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_X = 0 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_Y = 2 -constant signed word* const SCREEN = (signed word*)$400 -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_STRUCT_SEGMENT = 9 -constant byte SPLINE_TO = 1 +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_X = 0 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_Y = 2 +__constant int * const SCREEN = (int *)$400 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_STRUCT_SEGMENT = 9 +__constant char SPLINE_TO = 1 void __start() -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: (signed word)'a', y: (signed word)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (signed word)'c', y: (signed word)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (signed word)'e', y: (signed word)'f' }, via: { x: $4b, y: $c3 } } } +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: (int)'a', y: (int)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (int)'c', y: (int)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (int)'e', y: (int)'f' }, via: { x: $4b, y: $c3 } } } void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -signed word main::to_x -signed word main::to_x#0 -signed word main::to_y -signed word main::to_y#0 +bool main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +int main::to_x +int main::to_x#0 +int main::to_y +int main::to_y#0 -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [14] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -75,7 +75,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [12] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [14] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying expression containing zero (signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO in [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] +Simplifying expression containing zero (int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO in [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_X)[main::$1] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_SPLINEVECTOR16_X Successful SSA optimization PassNEliminateUnusedVars @@ -88,11 +88,11 @@ Adding number conversion cast (unumber) 3 in [11] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[1] main::$1 = main::i#2 * SIZEOF_STRUCT_SEGMENT -Rewriting multiplication to use shift [4] main::$2 = main::j#3 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [7] main::$3 = main::j#1 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [4] main::$2 = main::j#3 * SIZEOF_INT +Rewriting multiplication to use shift [7] main::$3 = main::j#1 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::j#0 Inlining constant with var siblings main::i#0 @@ -102,7 +102,7 @@ Successful SSA optimization Pass2ConstantInlining Alias main::$1 = main::$5 Successful SSA optimization Pass2AliasElimination Eliminating unused constant SIZEOF_STRUCT_SEGMENT -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -126,8 +126,8 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$4 = main::i#2 << 3 [3] main::$1 = main::$4 + main::i#2 - [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] - [5] main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] + [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] + [5] main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [6] main::$2 = main::j#3 << 1 [7] SCREEN[main::$2] = main::to_x#0 [8] main::j#1 = ++ main::j#3 @@ -144,21 +144,21 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 16.5 -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte~ main::$4 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.0 -byte main::j -byte main::j#1 11.0 -byte main::j#2 7.333333333333333 -byte main::j#3 4.714285714285714 -signed word main::to_x -signed word main::to_x#0 7.333333333333333 -signed word main::to_y -signed word main::to_y#0 4.4 +char main::$1 // 16.5 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::$4 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.0 +char main::j +char main::j#1 // 11.0 +char main::j#2 // 7.333333333333333 +char main::j#3 // 4.714285714285714 +int main::to_x +int main::to_x#0 // 7.333333333333333 +int main::to_y +int main::to_y#0 // 4.4 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -194,9 +194,9 @@ Statement [2] main::$4 = main::i#2 << 3 [ main::i#2 main::j#3 main::$4 ] ( [ ma Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::j#3 main::j#2 ] Statement [3] main::$1 = main::$4 + main::i#2 [ main::i#2 main::j#3 main::$1 ] ( [ main::i#2 main::j#3 main::$1 ] { } ) always clobbers reg byte a -Statement [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] [ main::i#2 main::j#3 main::$1 main::to_x#0 ] ( [ main::i#2 main::j#3 main::$1 main::to_x#0 ] { } ) always clobbers reg byte a +Statement [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] [ main::i#2 main::j#3 main::$1 main::to_x#0 ] ( [ main::i#2 main::j#3 main::$1 main::to_x#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::$1 ] -Statement [5] main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] ( [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] { } ) always clobbers reg byte a +Statement [5] main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] ( [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] { } ) always clobbers reg byte a Statement [6] main::$2 = main::j#3 << 1 [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 main::$2 ] ( [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 main::$2 ] { } ) always clobbers reg byte a Statement [7] SCREEN[main::$2] = main::to_x#0 [ main::i#2 main::j#3 main::to_y#0 ] ( [ main::i#2 main::j#3 main::to_y#0 ] { } ) always clobbers reg byte a Statement [9] main::$3 = main::j#1 << 1 [ main::i#2 main::to_y#0 main::j#1 main::$3 ] ( [ main::i#2 main::to_y#0 main::j#1 main::$3 ] { } ) always clobbers reg byte a @@ -204,8 +204,8 @@ Removing always clobbered register reg byte a as potential for zp[1]:11 [ main:: Statement [10] SCREEN[main::$3] = main::to_y#0 [ main::i#2 main::j#1 ] ( [ main::i#2 main::j#1 ] { } ) always clobbers reg byte a Statement [2] main::$4 = main::i#2 << 3 [ main::i#2 main::j#3 main::$4 ] ( [ main::i#2 main::j#3 main::$4 ] { } ) always clobbers reg byte a Statement [3] main::$1 = main::$4 + main::i#2 [ main::i#2 main::j#3 main::$1 ] ( [ main::i#2 main::j#3 main::$1 ] { } ) always clobbers reg byte a -Statement [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] [ main::i#2 main::j#3 main::$1 main::to_x#0 ] ( [ main::i#2 main::j#3 main::$1 main::to_x#0 ] { } ) always clobbers reg byte a -Statement [5] main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] ( [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] { } ) always clobbers reg byte a +Statement [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] [ main::i#2 main::j#3 main::$1 main::to_x#0 ] ( [ main::i#2 main::j#3 main::$1 main::to_x#0 ] { } ) always clobbers reg byte a +Statement [5] main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] ( [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 ] { } ) always clobbers reg byte a Statement [6] main::$2 = main::j#3 << 1 [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 main::$2 ] ( [ main::i#2 main::j#3 main::to_x#0 main::to_y#0 main::$2 ] { } ) always clobbers reg byte a Statement [7] SCREEN[main::$2] = main::to_x#0 [ main::i#2 main::j#3 main::to_y#0 ] ( [ main::i#2 main::j#3 main::to_y#0 ] { } ) always clobbers reg byte a Statement [9] main::$3 = main::j#1 << 1 [ main::i#2 main::to_y#0 main::j#1 main::$3 ] ( [ main::i#2 main::to_y#0 main::j#1 main::$3 ] { } ) always clobbers reg byte a @@ -293,12 +293,12 @@ main: { clc adc.z $ff tay - // [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy + // [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO,y sta.z to_x lda letter_c+OFFSET_STRUCT_SEGMENT_TO+1,y sta.z to_x+1 - // [5] main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy + // [5] main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y,y sta.z to_y lda letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y+1,y @@ -361,28 +361,28 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_Y = 2 -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SPLINE_TO = 1 -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: (signed word)'a', y: (signed word)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (signed word)'c', y: (signed word)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (signed word)'e', y: (signed word)'f' }, via: { x: $4b, y: $c3 } } } +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_Y = 2 +__constant int * const SCREEN = (int *) 1024 +__constant char SPLINE_TO = 1 +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: (int)'a', y: (int)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (int)'c', y: (int)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (int)'e', y: (int)'f' }, via: { x: $4b, y: $c3 } } } void main() -byte~ main::$1 reg byte y 16.5 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.0 -byte main::j -byte main::j#1 j zp[1]:2 11.0 -byte main::j#2 j zp[1]:2 7.333333333333333 -byte main::j#3 j zp[1]:2 4.714285714285714 -signed word main::to_x -signed word main::to_x#0 to_x zp[2]:3 7.333333333333333 -signed word main::to_y -signed word main::to_y#0 to_y zp[2]:5 4.4 +char main::$1 // reg byte y 16.5 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.0 +char main::j +char main::j#1 // j zp[1]:2 11.0 +char main::j#2 // j zp[1]:2 7.333333333333333 +char main::j#3 // j zp[1]:2 4.714285714285714 +int main::to_x +int main::to_x#0 // to_x zp[2]:3 7.333333333333333 +int main::to_y +int main::to_y#0 // to_y zp[2]:5 4.4 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::j#3 main::j#2 main::j#1 ] @@ -442,12 +442,12 @@ main: { clc adc.z $ff tay - // [4] main::to_x#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy + // [4] main::to_x#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO,y sta.z to_x lda letter_c+OFFSET_STRUCT_SEGMENT_TO+1,y sta.z to_x+1 - // [5] main::to_y#0 = ((signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy + // [5] main::to_y#0 = ((int *)(struct SplineVector16 *)letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y)[main::$1] -- vwsz1=pwsc1_derefidx_vbuyy lda letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y,y sta.z to_y lda letter_c+OFFSET_STRUCT_SEGMENT_TO+OFFSET_STRUCT_SPLINEVECTOR16_Y+1,y diff --git a/src/test/ref/struct-38.sym b/src/test/ref/struct-38.sym index eedfe78de..5d9cf4569 100644 --- a/src/test/ref/struct-38.sym +++ b/src/test/ref/struct-38.sym @@ -1,25 +1,25 @@ -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_SPLINEVECTOR16_Y = 2 -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SPLINE_TO = 1 -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: (signed word)'a', y: (signed word)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (signed word)'c', y: (signed word)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (signed word)'e', y: (signed word)'f' }, via: { x: $4b, y: $c3 } } } +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_SPLINEVECTOR16_Y = 2 +__constant int * const SCREEN = (int *) 1024 +__constant char SPLINE_TO = 1 +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: (int)'a', y: (int)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (int)'c', y: (int)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (int)'e', y: (int)'f' }, via: { x: $4b, y: $c3 } } } void main() -byte~ main::$1 reg byte y 16.5 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.0 -byte main::j -byte main::j#1 j zp[1]:2 11.0 -byte main::j#2 j zp[1]:2 7.333333333333333 -byte main::j#3 j zp[1]:2 4.714285714285714 -signed word main::to_x -signed word main::to_x#0 to_x zp[2]:3 7.333333333333333 -signed word main::to_y -signed word main::to_y#0 to_y zp[2]:5 4.4 +char main::$1 // reg byte y 16.5 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.0 +char main::j +char main::j#1 // j zp[1]:2 11.0 +char main::j#2 // j zp[1]:2 7.333333333333333 +char main::j#3 // j zp[1]:2 4.714285714285714 +int main::to_x +int main::to_x#0 // to_x zp[2]:3 7.333333333333333 +int main::to_y +int main::to_y#0 // to_y zp[2]:5 4.4 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::j#3 main::j#2 main::j#1 ] diff --git a/src/test/ref/struct-39.cfg b/src/test/ref/struct-39.cfg index 84470641e..cf4261e0f 100644 --- a/src/test/ref/struct-39.cfg +++ b/src/test/ref/struct-39.cfg @@ -8,12 +8,12 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$4 = main::i#2 << 3 [3] main::$1 = main::$4 + main::i#2 - [4] *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) + [4] *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) [5] main::$2 = main::j#3 << 1 - [6] SCREEN[main::$2] = *((signed word*)&main::to) + [6] SCREEN[main::$2] = *((int *)&main::to) [7] main::j#1 = ++ main::j#3 [8] main::$3 = main::j#1 << 1 - [9] SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) + [9] SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) [10] main::j#2 = ++ main::j#1 [11] main::i#1 = ++ main::i#2 [12] if(main::i#1!=3) goto main::@1 diff --git a/src/test/ref/struct-39.log b/src/test/ref/struct-39.log index a0f9ef413..dd744779b 100644 --- a/src/test/ref/struct-39.log +++ b/src/test/ref/struct-39.log @@ -11,12 +11,12 @@ main::@1: scope:[main] from main main::@1 main::j#3 = phi( main/main::j#0, main::@1/main::j#2 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$1 = main::i#2 * SIZEOF_STRUCT_SEGMENT - *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) - main::$2 = main::j#3 * SIZEOF_SIGNED_WORD - SCREEN[main::$2] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_X) + *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) + main::$2 = main::j#3 * SIZEOF_INT + SCREEN[main::$2] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_X) main::j#1 = ++ main::j#3 - main::$3 = main::j#1 * SIZEOF_SIGNED_WORD - SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) + main::$3 = main::j#1 * SIZEOF_INT + SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) main::j#2 = ++ main::j#1 main::i#1 = main::i#2 + rangenext(0,2) main::$0 = main::i#1 != rangelast(0,2) @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,34 +37,34 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_VECTOR_X = 0 -constant byte OFFSET_STRUCT_VECTOR_Y = 2 -constant signed word* const SCREEN = (signed word*)$400 -constant byte SIZEOF_SIGNED_WORD = 2 -constant byte SIZEOF_STRUCT_SEGMENT = 9 -constant byte SIZEOF_STRUCT_VECTOR = 4 -constant byte SPLINE_TO = 1 +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_VECTOR_X = 0 +__constant char OFFSET_STRUCT_VECTOR_Y = 2 +__constant int * const SCREEN = (int *)$400 +__constant char SIZEOF_INT = 2 +__constant char SIZEOF_STRUCT_SEGMENT = 9 +__constant char SIZEOF_STRUCT_VECTOR = 4 +__constant char SPLINE_TO = 1 void __start() -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: (signed word)'a', y: (signed word)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (signed word)'c', y: (signed word)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (signed word)'e', y: (signed word)'f' }, via: { x: $4b, y: $c3 } } } +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: (int)'a', y: (int)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (int)'c', y: (int)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (int)'e', y: (int)'f' }, via: { x: $4b, y: $c3 } } } void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -struct Vector main::to loadstore +bool main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +__loadstore struct Vector main::to -Simplifying constant pointer cast (signed word*) 1024 +Simplifying constant pointer cast (int *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [13] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [11] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [13] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying expression containing zero (signed word*)&main::to in [6] SCREEN[main::$2] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_X) +Simplifying expression containing zero (int *)&main::to in [6] SCREEN[main::$2] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_X) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_VECTOR_X Successful SSA optimization PassNEliminateUnusedVars @@ -86,11 +86,11 @@ Adding number conversion cast (unumber) 3 in [10] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[1] main::$1 = main::i#2 * SIZEOF_STRUCT_SEGMENT -Rewriting multiplication to use shift [3] main::$2 = main::j#3 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [6] main::$3 = main::j#1 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [3] main::$2 = main::j#3 * SIZEOF_INT +Rewriting multiplication to use shift [6] main::$3 = main::j#1 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::j#0 Inlining constant with var siblings main::i#0 @@ -100,7 +100,7 @@ Successful SSA optimization Pass2ConstantInlining Alias main::$1 = main::$5 Successful SSA optimization Pass2AliasElimination Eliminating unused constant SIZEOF_STRUCT_SEGMENT -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -124,12 +124,12 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$4 = main::i#2 << 3 [3] main::$1 = main::$4 + main::i#2 - [4] *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) + [4] *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) [5] main::$2 = main::j#3 << 1 - [6] SCREEN[main::$2] = *((signed word*)&main::to) + [6] SCREEN[main::$2] = *((int *)&main::to) [7] main::j#1 = ++ main::j#3 [8] main::$3 = main::j#1 << 1 - [9] SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) + [9] SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) [10] main::j#2 = ++ main::j#1 [11] main::i#1 = ++ main::i#2 [12] if(main::i#1!=3) goto main::@1 @@ -141,18 +141,18 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 11.0 -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte~ main::$4 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.4 -byte main::j -byte main::j#1 11.0 -byte main::j#2 7.333333333333333 -byte main::j#3 5.5 -struct Vector main::to loadstore +char main::$1 // 11.0 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::$4 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.4 +char main::j +char main::j#1 // 11.0 +char main::j#2 // 7.333333333333333 +char main::j#3 // 5.5 +__loadstore struct Vector main::to Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -185,24 +185,24 @@ Statement [2] main::$4 = main::i#2 << 3 [ main::i#2 main::j#3 main::$4 main::to Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::j#3 main::j#2 ] Statement [3] main::$1 = main::$4 + main::i#2 [ main::i#2 main::j#3 main::$1 main::to ] ( [ main::i#2 main::j#3 main::$1 main::to ] { } ) always clobbers reg byte a -Statement [4] *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [4] *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte x as potential for zp[1]:3 [ main::j#3 main::j#2 ] Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::j#3 main::j#2 ] Statement [5] main::$2 = main::j#3 << 1 [ main::i#2 main::j#3 main::to main::$2 ] ( [ main::i#2 main::j#3 main::to main::$2 ] { } ) always clobbers reg byte a -Statement [6] SCREEN[main::$2] = *((signed word*)&main::to) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a +Statement [6] SCREEN[main::$2] = *((int *)&main::to) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a Statement [8] main::$3 = main::j#1 << 1 [ main::i#2 main::to main::j#1 main::$3 ] ( [ main::i#2 main::to main::j#1 main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::j#1 ] -Statement [9] SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) [ main::i#2 main::to main::j#1 ] ( [ main::i#2 main::to main::j#1 ] { } ) always clobbers reg byte a +Statement [9] SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) [ main::i#2 main::to main::j#1 ] ( [ main::i#2 main::to main::j#1 ] { } ) always clobbers reg byte a Statement [12] if(main::i#1!=3) goto main::@1 [ main::i#1 main::j#2 main::to ] ( [ main::i#1 main::j#2 main::to ] { } ) always clobbers reg byte a Statement [2] main::$4 = main::i#2 << 3 [ main::i#2 main::j#3 main::$4 main::to ] ( [ main::i#2 main::j#3 main::$4 main::to ] { } ) always clobbers reg byte a Statement [3] main::$1 = main::$4 + main::i#2 [ main::i#2 main::j#3 main::$1 main::to ] ( [ main::i#2 main::j#3 main::$1 main::to ] { } ) always clobbers reg byte a -Statement [4] *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [4] *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [5] main::$2 = main::j#3 << 1 [ main::i#2 main::j#3 main::to main::$2 ] ( [ main::i#2 main::j#3 main::to main::$2 ] { } ) always clobbers reg byte a -Statement [6] SCREEN[main::$2] = *((signed word*)&main::to) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a +Statement [6] SCREEN[main::$2] = *((int *)&main::to) [ main::i#2 main::j#3 main::to ] ( [ main::i#2 main::j#3 main::to ] { } ) always clobbers reg byte a Statement [8] main::$3 = main::j#1 << 1 [ main::i#2 main::to main::j#1 main::$3 ] ( [ main::i#2 main::to main::j#1 main::$3 ] { } ) always clobbers reg byte a -Statement [9] SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) [ main::i#2 main::to main::j#1 ] ( [ main::i#2 main::to main::j#1 ] { } ) always clobbers reg byte a +Statement [9] SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) [ main::i#2 main::to main::j#1 ] ( [ main::i#2 main::to main::j#1 ] { } ) always clobbers reg byte a Statement [12] if(main::i#1!=3) goto main::@1 [ main::i#1 main::j#2 main::to ] ( [ main::i#1 main::j#2 main::to ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , Potential registers zp[1]:3 [ main::j#3 main::j#2 ] : zp[1]:3 , @@ -283,7 +283,7 @@ main: { // [3] main::$1 = main::$4 + main::i#2 -- vbuaa=vbuaa_plus_vbuz1 clc adc.z i - // [4] *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 + // [4] *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 tax ldy #0 !: @@ -296,7 +296,7 @@ main: { // [5] main::$2 = main::j#3 << 1 -- vbuaa=vbuz1_rol_1 lda.z j asl - // [6] SCREEN[main::$2] = *((signed word*)&main::to) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 + // [6] SCREEN[main::$2] = *((int *)&main::to) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 tay lda.z to sta SCREEN,y @@ -308,7 +308,7 @@ main: { // [8] main::$3 = main::j#1 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [9] SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 + // [9] SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 tay lda to+OFFSET_STRUCT_VECTOR_Y sta SCREEN,y @@ -355,26 +355,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_VECTOR_Y = 2 -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SIZEOF_STRUCT_VECTOR = 4 -constant byte SPLINE_TO = 1 -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: (signed word)'a', y: (signed word)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (signed word)'c', y: (signed word)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (signed word)'e', y: (signed word)'f' }, via: { x: $4b, y: $c3 } } } +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_VECTOR_Y = 2 +__constant int * const SCREEN = (int *) 1024 +__constant char SIZEOF_STRUCT_VECTOR = 4 +__constant char SPLINE_TO = 1 +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: (int)'a', y: (int)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (int)'c', y: (int)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (int)'e', y: (int)'f' }, via: { x: $4b, y: $c3 } } } void main() -byte~ main::$1 reg byte a 11.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 4.4 -byte main::j -byte main::j#1 reg byte x 11.0 -byte main::j#2 j zp[1]:3 7.333333333333333 -byte main::j#3 j zp[1]:3 5.5 -struct Vector main::to loadstore zp[4]:4 +char main::$1 // reg byte a 11.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 4.4 +char main::j +char main::j#1 // reg byte x 11.0 +char main::j#2 // j zp[1]:3 7.333333333333333 +char main::j#3 // j zp[1]:3 5.5 +__loadstore struct Vector main::to // zp[4]:4 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#3 main::j#2 ] @@ -433,7 +433,7 @@ main: { // [3] main::$1 = main::$4 + main::i#2 -- vbuaa=vbuaa_plus_vbuz1 clc adc.z i - // [4] *(&main::to) = memcpy(((struct Vector*)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 + // [4] *(&main::to) = memcpy(((struct Vector *)letter_c+OFFSET_STRUCT_SEGMENT_TO)[main::$1], struct Vector, SIZEOF_STRUCT_VECTOR) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 tax ldy #0 !: @@ -447,7 +447,7 @@ main: { // [5] main::$2 = main::j#3 << 1 -- vbuaa=vbuz1_rol_1 lda.z j asl - // [6] SCREEN[main::$2] = *((signed word*)&main::to) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 + // [6] SCREEN[main::$2] = *((int *)&main::to) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 tay lda.z to sta SCREEN,y @@ -461,7 +461,7 @@ main: { // [8] main::$3 = main::j#1 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [9] SCREEN[main::$3] = *((signed word*)&main::to+OFFSET_STRUCT_VECTOR_Y) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 + // [9] SCREEN[main::$3] = *((int *)&main::to+OFFSET_STRUCT_VECTOR_Y) -- pwsc1_derefidx_vbuaa=_deref_pwsc2 tay lda to+OFFSET_STRUCT_VECTOR_Y sta SCREEN,y diff --git a/src/test/ref/struct-39.sym b/src/test/ref/struct-39.sym index bf769b1e4..014e01e9e 100644 --- a/src/test/ref/struct-39.sym +++ b/src/test/ref/struct-39.sym @@ -1,23 +1,23 @@ -constant byte MOVE_TO = 0 -constant byte OFFSET_STRUCT_SEGMENT_TO = 1 -constant byte OFFSET_STRUCT_VECTOR_Y = 2 -constant signed word* const SCREEN = (signed word*) 1024 -constant byte SIZEOF_STRUCT_VECTOR = 4 -constant byte SPLINE_TO = 1 -constant struct Segment* letter_c[] = { { type: MOVE_TO, to: { x: (signed word)'a', y: (signed word)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (signed word)'c', y: (signed word)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (signed word)'e', y: (signed word)'f' }, via: { x: $4b, y: $c3 } } } +__constant char MOVE_TO = 0 +__constant char OFFSET_STRUCT_SEGMENT_TO = 1 +__constant char OFFSET_STRUCT_VECTOR_Y = 2 +__constant int * const SCREEN = (int *) 1024 +__constant char SIZEOF_STRUCT_VECTOR = 4 +__constant char SPLINE_TO = 1 +__constant struct Segment letter_c[] = { { type: MOVE_TO, to: { x: (int)'a', y: (int)'b' }, via: { x: 0, y: 0 } }, { type: SPLINE_TO, to: { x: (int)'c', y: (int)'d' }, via: { x: $67, y: $a9 } }, { type: SPLINE_TO, to: { x: (int)'e', y: (int)'f' }, via: { x: $4b, y: $c3 } } } void main() -byte~ main::$1 reg byte a 11.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 4.4 -byte main::j -byte main::j#1 reg byte x 11.0 -byte main::j#2 j zp[1]:3 7.333333333333333 -byte main::j#3 j zp[1]:3 5.5 -struct Vector main::to loadstore zp[4]:4 +char main::$1 // reg byte a 11.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 4.4 +char main::j +char main::j#1 // reg byte x 11.0 +char main::j#2 // j zp[1]:3 7.333333333333333 +char main::j#3 // j zp[1]:3 5.5 +__loadstore struct Vector main::to // zp[4]:4 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#3 main::j#2 ] diff --git a/src/test/ref/struct-4.log b/src/test/ref/struct-4.log index a2ad977ec..f96c9f8a6 100644 --- a/src/test/ref/struct-4.log +++ b/src/test/ref/struct-4.log @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,30 +26,30 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::p_x -byte main::p_x#0 -byte main::p_y -byte main::p_y#0 -constant byte main::x = 2 -constant byte main::y = 3 +number main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::p_x +char main::p_x#0 +char main::p_y +char main::p_y#0 +__constant char main::x = 2 +__constant char main::y = 3 Adding number conversion cast (unumber) 1 in main::$0 = main::y + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::y + (unumber)1 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::p_x#0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::p_y#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::y + 1 +Inferred type updated to char in main::$0 = main::y + 1 Alias main::p_y#0 = main::$0 Successful SSA optimization Pass2AliasElimination Constant right-side identified [0] main::p_y#0 = main::y + 1 @@ -87,8 +87,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::p_x -byte main::p_y +char main::p_x +char main::p_y Initial phi equivalence classes Complete equivalence classes @@ -147,12 +147,12 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::p_x -byte main::p_y -constant byte main::p_y#0 p_y = main::y+1 -constant byte main::x = 2 -constant byte main::y = 3 +__constant char * const main::SCREEN = (char *) 1024 +char main::p_x +char main::p_y +__constant char main::p_y#0 = main::y+1 // p_y +__constant char main::x = 2 +__constant char main::y = 3 diff --git a/src/test/ref/struct-4.sym b/src/test/ref/struct-4.sym index b3be96325..808ebdc59 100644 --- a/src/test/ref/struct-4.sym +++ b/src/test/ref/struct-4.sym @@ -1,8 +1,8 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::p_x -byte main::p_y -constant byte main::p_y#0 p_y = main::y+1 -constant byte main::x = 2 -constant byte main::y = 3 +__constant char * const main::SCREEN = (char *) 1024 +char main::p_x +char main::p_y +__constant char main::p_y#0 = main::y+1 // p_y +__constant char main::x = 2 +__constant char main::y = 3 diff --git a/src/test/ref/struct-40.log b/src/test/ref/struct-40.log index 83340800c..25eeb237b 100644 --- a/src/test/ref/struct-40.log +++ b/src/test/ref/struct-40.log @@ -51,7 +51,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -60,61 +60,61 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#11 -byte main::idx#12 -byte main::idx#13 -byte main::idx#14 -byte main::idx#15 -byte main::idx#16 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#11 +char main::idx#12 +char main::idx#13 +char main::idx#14 +char main::idx#15 +char main::idx#16 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 struct Point main::v1_p -constant byte main::v1_p_x = 2 -constant byte main::v1_p_y = 3 +__constant char main::v1_p_x = 2 +__constant char main::v1_p_y = 3 struct Point main::v1_q -constant byte main::v1_q_x = 4 -constant byte main::v1_q_y = 5 +__constant char main::v1_q_x = 4 +__constant char main::v1_q_y = 5 struct Point main::v2_p -byte main::v2_p_x -byte main::v2_p_x#0 -byte main::v2_p_y -byte main::v2_p_y#0 +char main::v2_p_x +char main::v2_p_x#0 +char main::v2_p_y +char main::v2_p_y#0 struct Point main::v2_q -byte main::v2_q_x -byte main::v2_q_x#0 -byte main::v2_q_y -byte main::v2_q_y#0 +char main::v2_q_x +char main::v2_q_x#0 +char main::v2_q_y +char main::v2_q_y#0 struct Point main::v3_p -byte main::v3_p_x -byte main::v3_p_x#0 -byte main::v3_p_y -byte main::v3_p_y#0 +char main::v3_p_x +char main::v3_p_x#0 +char main::v3_p_y +char main::v3_p_y#0 struct Point main::v3_q -constant byte main::v3_q_x = 6 -constant byte main::v3_q_y = 7 +__constant char main::v3_q_x = 6 +__constant char main::v3_q_y = 7 struct Point main::v4_p -byte main::v4_p_x -byte main::v4_p_x#0 -byte main::v4_p_y -byte main::v4_p_y#0 +char main::v4_p_x +char main::v4_p_x#0 +char main::v4_p_y +char main::v4_p_y#0 struct Point main::v4_q -constant byte main::v4_q_x = 8 -constant byte main::v4_q_y = 9 +__constant char main::v4_q_x = 8 +__constant char main::v4_q_y = 9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::idx#0 = 0 Constant main::v2_p_x#0 = main::v1_p_x @@ -316,22 +316,22 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx struct Point main::v1_p struct Point main::v1_q struct Point main::v2_p -byte main::v2_p_x -byte main::v2_p_y +char main::v2_p_x +char main::v2_p_y struct Point main::v2_q -byte main::v2_q_x -byte main::v2_q_y +char main::v2_q_x +char main::v2_q_y struct Point main::v3_p -byte main::v3_p_x -byte main::v3_p_y +char main::v3_p_x +char main::v3_p_y struct Point main::v3_q struct Point main::v4_p -byte main::v4_p_x -byte main::v4_p_y +char main::v4_p_x +char main::v4_p_y struct Point main::v4_q Initial phi equivalence classes @@ -453,33 +453,33 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::idx +char main::idx struct Point main::v1_p -constant byte main::v1_p_x = 2 -constant byte main::v1_p_y = 3 +__constant char main::v1_p_x = 2 +__constant char main::v1_p_y = 3 struct Point main::v1_q -constant byte main::v1_q_x = 4 -constant byte main::v1_q_y = 5 +__constant char main::v1_q_x = 4 +__constant char main::v1_q_y = 5 struct Point main::v2_p -byte main::v2_p_x -byte main::v2_p_y +char main::v2_p_x +char main::v2_p_y struct Point main::v2_q -byte main::v2_q_x -byte main::v2_q_y +char main::v2_q_x +char main::v2_q_y struct Point main::v3_p -byte main::v3_p_x -byte main::v3_p_y +char main::v3_p_x +char main::v3_p_y struct Point main::v3_q -constant byte main::v3_q_x = 6 -constant byte main::v3_q_y = 7 +__constant char main::v3_q_x = 6 +__constant char main::v3_q_y = 7 struct Point main::v4_p -byte main::v4_p_x -byte main::v4_p_y +char main::v4_p_x +char main::v4_p_y struct Point main::v4_q -constant byte main::v4_q_x = 8 -constant byte main::v4_q_y = 9 +__constant char main::v4_q_x = 8 +__constant char main::v4_q_y = 9 diff --git a/src/test/ref/struct-40.sym b/src/test/ref/struct-40.sym index 414727c8a..21eb50e7e 100644 --- a/src/test/ref/struct-40.sym +++ b/src/test/ref/struct-40.sym @@ -1,28 +1,28 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte main::idx +char main::idx struct Point main::v1_p -constant byte main::v1_p_x = 2 -constant byte main::v1_p_y = 3 +__constant char main::v1_p_x = 2 +__constant char main::v1_p_y = 3 struct Point main::v1_q -constant byte main::v1_q_x = 4 -constant byte main::v1_q_y = 5 +__constant char main::v1_q_x = 4 +__constant char main::v1_q_y = 5 struct Point main::v2_p -byte main::v2_p_x -byte main::v2_p_y +char main::v2_p_x +char main::v2_p_y struct Point main::v2_q -byte main::v2_q_x -byte main::v2_q_y +char main::v2_q_x +char main::v2_q_y struct Point main::v3_p -byte main::v3_p_x -byte main::v3_p_y +char main::v3_p_x +char main::v3_p_y struct Point main::v3_q -constant byte main::v3_q_x = 6 -constant byte main::v3_q_y = 7 +__constant char main::v3_q_x = 6 +__constant char main::v3_q_y = 7 struct Point main::v4_p -byte main::v4_p_x -byte main::v4_p_y +char main::v4_p_x +char main::v4_p_y struct Point main::v4_q -constant byte main::v4_q_x = 8 -constant byte main::v4_q_y = 9 +__constant char main::v4_q_x = 8 +__constant char main::v4_q_y = 9 diff --git a/src/test/ref/struct-41.cfg b/src/test/ref/struct-41.cfg index 0a549e893..312a6f2dd 100644 --- a/src/test/ref/struct-41.cfg +++ b/src/test/ref/struct-41.cfg @@ -1,31 +1,31 @@ void main() main: scope:[main] from - [0] *((byte*)(struct Point*)&main::v2) = main::v1_p_x - [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y - [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x - [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y - [4] *((struct Point*)&main::v3) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) - [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) + [0] *((char *)(struct Point *)&main::v2) = main::v1_p_x + [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y + [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x + [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y + [4] *((struct Point *)&main::v3) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) + [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [6] *(&main::v4) = memcpy(*(&main::v3), struct Vector, SIZEOF_STRUCT_VECTOR) - [7] main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4) - [8] main::v5_p_y#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) + [7] main::v5_p_x#0 = *((char *)(struct Point *)&main::v4) + [8] main::v5_p_y#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) [9] *SCREEN = main::v1_p_x [10] *(SCREEN+1) = main::v1_p_y [11] *(SCREEN+2) = main::v1_q_x [12] *(SCREEN+3) = main::v1_q_y - [13] *(SCREEN+4) = *((byte*)(struct Point*)&main::v2) - [14] *(SCREEN+5) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) - [15] *(SCREEN+6) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) - [16] *(SCREEN+7) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) - [17] *(SCREEN+8) = *((byte*)(struct Point*)&main::v3) - [18] *(SCREEN+9) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_POINT_Y) - [19] *(SCREEN+$a) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) - [20] *(SCREEN+$b) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) - [21] *(SCREEN+$c) = *((byte*)(struct Point*)&main::v4) - [22] *(SCREEN+$d) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) - [23] *(SCREEN+$e) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q) - [24] *(SCREEN+$f) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + [13] *(SCREEN+4) = *((char *)(struct Point *)&main::v2) + [14] *(SCREEN+5) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) + [15] *(SCREEN+6) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) + [16] *(SCREEN+7) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + [17] *(SCREEN+8) = *((char *)(struct Point *)&main::v3) + [18] *(SCREEN+9) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_POINT_Y) + [19] *(SCREEN+$a) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) + [20] *(SCREEN+$b) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + [21] *(SCREEN+$c) = *((char *)(struct Point *)&main::v4) + [22] *(SCREEN+$d) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) + [23] *(SCREEN+$e) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q) + [24] *(SCREEN+$f) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [25] *(SCREEN+$10) = main::v5_p_x#0 [26] *(SCREEN+$11) = main::v5_p_y#0 [27] *(SCREEN+$12) = main::v5_q_x diff --git a/src/test/ref/struct-41.log b/src/test/ref/struct-41.log index e6d0d675b..7f920f0c9 100644 --- a/src/test/ref/struct-41.log +++ b/src/test/ref/struct-41.log @@ -1,5 +1,5 @@ -Removing C-classic struct-unwound assignment main::v2 = struct-unwound {*((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X), *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y), *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X), *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y)} -Removing C-classic struct-unwound assignment main::v3 = struct-unwound {*((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P), *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q)} +Removing C-classic struct-unwound assignment main::v2 = struct-unwound {*((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X), *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y), *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X), *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y)} +Removing C-classic struct-unwound assignment main::v3 = struct-unwound {*((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P), *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q)} Removing C-classic struct-unwound assignment main::v4 = struct-unwound {*(&main::v4)} CONTROL FLOW GRAPH SSA @@ -7,15 +7,15 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::idx#0 = 0 - *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) = main::v1_p_x - *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) = main::v1_p_y - *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) = main::v1_q_x - *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y - *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P) = memcpy(*((struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P), struct Point, SIZEOF_STRUCT_POINT) - *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) + *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) = main::v1_p_x + *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) = main::v1_p_y + *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) = main::v1_q_x + *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y + *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P) = memcpy(*((struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P), struct Point, SIZEOF_STRUCT_POINT) + *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) *(&main::v4) = memcpy(*(&main::v3), struct Vector, SIZEOF_STRUCT_VECTOR) - main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) - main::v5_p_y#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) + main::v5_p_x#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) + main::v5_p_y#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) SCREEN[main::idx#0] = main::v1_p_x main::idx#1 = ++ main::idx#0 SCREEN[main::idx#1] = main::v1_p_y @@ -24,29 +24,29 @@ main: scope:[main] from __start main::idx#3 = ++ main::idx#2 SCREEN[main::idx#3] = main::v1_q_y main::idx#4 = ++ main::idx#3 - SCREEN[main::idx#4] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) + SCREEN[main::idx#4] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) main::idx#5 = ++ main::idx#4 - SCREEN[main::idx#5] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) + SCREEN[main::idx#5] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) main::idx#6 = ++ main::idx#5 - SCREEN[main::idx#6] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) + SCREEN[main::idx#6] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) main::idx#7 = ++ main::idx#6 - SCREEN[main::idx#7] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + SCREEN[main::idx#7] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) main::idx#8 = ++ main::idx#7 - SCREEN[main::idx#8] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) + SCREEN[main::idx#8] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) main::idx#9 = ++ main::idx#8 - SCREEN[main::idx#9] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) + SCREEN[main::idx#9] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) main::idx#10 = ++ main::idx#9 - SCREEN[main::idx#10] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) + SCREEN[main::idx#10] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) main::idx#11 = ++ main::idx#10 - SCREEN[main::idx#11] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + SCREEN[main::idx#11] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) main::idx#12 = ++ main::idx#11 - SCREEN[main::idx#12] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) + SCREEN[main::idx#12] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) main::idx#13 = ++ main::idx#12 - SCREEN[main::idx#13] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) + SCREEN[main::idx#13] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) main::idx#14 = ++ main::idx#13 - SCREEN[main::idx#14] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) + SCREEN[main::idx#14] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) main::idx#15 = ++ main::idx#14 - SCREEN[main::idx#15] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + SCREEN[main::idx#15] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) main::idx#16 = ++ main::idx#15 SCREEN[main::idx#16] = main::v5_p_x#0 main::idx#17 = ++ main::idx#16 @@ -63,7 +63,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -72,82 +72,82 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 6, y: 7 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte OFFSET_STRUCT_VECTOR_P = 0 -constant byte OFFSET_STRUCT_VECTOR_Q = 2 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 -constant byte SIZEOF_STRUCT_VECTOR = 4 +__constant struct Point $0 = { x: 6, y: 7 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_VECTOR_P = 0 +__constant char OFFSET_STRUCT_VECTOR_Q = 2 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 +__constant char SIZEOF_STRUCT_VECTOR = 4 void __start() void main() -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#11 -byte main::idx#12 -byte main::idx#13 -byte main::idx#14 -byte main::idx#15 -byte main::idx#16 -byte main::idx#17 -byte main::idx#18 -byte main::idx#19 -byte main::idx#2 -byte main::idx#20 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#11 +char main::idx#12 +char main::idx#13 +char main::idx#14 +char main::idx#15 +char main::idx#16 +char main::idx#17 +char main::idx#18 +char main::idx#19 +char main::idx#2 +char main::idx#20 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 struct Point main::v1_p -constant byte main::v1_p_x = 2 -constant byte main::v1_p_y = 3 +__constant char main::v1_p_x = 2 +__constant char main::v1_p_y = 3 struct Point main::v1_q -constant byte main::v1_q_x = 4 -constant byte main::v1_q_y = 5 -struct Vector main::v2 loadstore -struct Vector main::v3 loadstore -struct Vector main::v4 loadstore +__constant char main::v1_q_x = 4 +__constant char main::v1_q_y = 5 +__loadstore struct Vector main::v2 +__loadstore struct Vector main::v3 +__loadstore struct Vector main::v4 struct Point main::v5_p -byte main::v5_p_x -byte main::v5_p_x#0 -byte main::v5_p_y -byte main::v5_p_y#0 +char main::v5_p_x +char main::v5_p_x#0 +char main::v5_p_y +char main::v5_p_y#0 struct Point main::v5_q -constant byte main::v5_q_x = 8 -constant byte main::v5_q_y = 9 +__constant char main::v5_q_x = 8 +__constant char main::v5_q_y = 9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Constant main::idx#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P in [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) = main::v1_p_x -Simplifying expression containing zero (struct Point*)&main::v2 in [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P) = main::v1_p_x -Simplifying expression containing zero (struct Point*)&main::v2 in [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) = main::v1_p_y -Simplifying expression containing zero (byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q in [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) = main::v1_q_x -Simplifying expression containing zero (struct Point*)&main::v2 in [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P) = memcpy(*((struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P), struct Point, SIZEOF_STRUCT_POINT) -Simplifying expression containing zero (struct Point*)&main::v3 in [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) -Simplifying expression containing zero (byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P in [8] main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (struct Point*)&main::v4 in [8] main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P) -Simplifying expression containing zero (struct Point*)&main::v4 in [9] main::v5_p_y#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) +Simplifying expression containing zero (char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P in [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) = main::v1_p_x +Simplifying expression containing zero (struct Point *)&main::v2 in [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P) = main::v1_p_x +Simplifying expression containing zero (struct Point *)&main::v2 in [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) = main::v1_p_y +Simplifying expression containing zero (char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q in [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) = main::v1_q_x +Simplifying expression containing zero (struct Point *)&main::v2 in [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P) = memcpy(*((struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P), struct Point, SIZEOF_STRUCT_POINT) +Simplifying expression containing zero (struct Point *)&main::v3 in [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) +Simplifying expression containing zero (char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P in [8] main::v5_p_x#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (struct Point *)&main::v4 in [8] main::v5_p_x#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P) +Simplifying expression containing zero (struct Point *)&main::v4 in [9] main::v5_p_y#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) Simplifying expression containing zero SCREEN in [10] SCREEN[main::idx#0] = main::v1_p_x -Simplifying expression containing zero (byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P in [18] SCREEN[main::idx#4] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (struct Point*)&main::v2 in [18] SCREEN[main::idx#4] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P) -Simplifying expression containing zero (struct Point*)&main::v2 in [20] SCREEN[main::idx#5] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) -Simplifying expression containing zero (byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q in [22] SCREEN[main::idx#6] = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P in [26] SCREEN[main::idx#8] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (struct Point*)&main::v3 in [26] SCREEN[main::idx#8] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P) -Simplifying expression containing zero (struct Point*)&main::v3 in [28] SCREEN[main::idx#9] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) -Simplifying expression containing zero (byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q in [30] SCREEN[main::idx#10] = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P in [34] SCREEN[main::idx#12] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (struct Point*)&main::v4 in [34] SCREEN[main::idx#12] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P) -Simplifying expression containing zero (struct Point*)&main::v4 in [36] SCREEN[main::idx#13] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) -Simplifying expression containing zero (byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q in [38] SCREEN[main::idx#14] = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P in [18] SCREEN[main::idx#4] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (struct Point *)&main::v2 in [18] SCREEN[main::idx#4] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P) +Simplifying expression containing zero (struct Point *)&main::v2 in [20] SCREEN[main::idx#5] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) +Simplifying expression containing zero (char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q in [22] SCREEN[main::idx#6] = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P in [26] SCREEN[main::idx#8] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (struct Point *)&main::v3 in [26] SCREEN[main::idx#8] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P) +Simplifying expression containing zero (struct Point *)&main::v3 in [28] SCREEN[main::idx#9] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) +Simplifying expression containing zero (char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q in [30] SCREEN[main::idx#10] = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P in [34] SCREEN[main::idx#12] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (struct Point *)&main::v4 in [34] SCREEN[main::idx#12] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P) +Simplifying expression containing zero (struct Point *)&main::v4 in [36] SCREEN[main::idx#13] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_P+OFFSET_STRUCT_POINT_Y) +Simplifying expression containing zero (char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q in [38] SCREEN[main::idx#14] = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_X) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable main::idx#20 and assignment [48] main::idx#20 = ++ main::idx#19 Eliminating unused constant OFFSET_STRUCT_VECTOR_P @@ -343,31 +343,31 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)(struct Point*)&main::v2) = main::v1_p_x - [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y - [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x - [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y - [4] *((struct Point*)&main::v3) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) - [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) + [0] *((char *)(struct Point *)&main::v2) = main::v1_p_x + [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y + [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x + [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y + [4] *((struct Point *)&main::v3) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) + [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [6] *(&main::v4) = memcpy(*(&main::v3), struct Vector, SIZEOF_STRUCT_VECTOR) - [7] main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4) - [8] main::v5_p_y#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) + [7] main::v5_p_x#0 = *((char *)(struct Point *)&main::v4) + [8] main::v5_p_y#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) [9] *SCREEN = main::v1_p_x [10] *(SCREEN+1) = main::v1_p_y [11] *(SCREEN+2) = main::v1_q_x [12] *(SCREEN+3) = main::v1_q_y - [13] *(SCREEN+4) = *((byte*)(struct Point*)&main::v2) - [14] *(SCREEN+5) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) - [15] *(SCREEN+6) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) - [16] *(SCREEN+7) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) - [17] *(SCREEN+8) = *((byte*)(struct Point*)&main::v3) - [18] *(SCREEN+9) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_POINT_Y) - [19] *(SCREEN+$a) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) - [20] *(SCREEN+$b) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) - [21] *(SCREEN+$c) = *((byte*)(struct Point*)&main::v4) - [22] *(SCREEN+$d) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) - [23] *(SCREEN+$e) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q) - [24] *(SCREEN+$f) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + [13] *(SCREEN+4) = *((char *)(struct Point *)&main::v2) + [14] *(SCREEN+5) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) + [15] *(SCREEN+6) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) + [16] *(SCREEN+7) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + [17] *(SCREEN+8) = *((char *)(struct Point *)&main::v3) + [18] *(SCREEN+9) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_POINT_Y) + [19] *(SCREEN+$a) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) + [20] *(SCREEN+$b) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) + [21] *(SCREEN+$c) = *((char *)(struct Point *)&main::v4) + [22] *(SCREEN+$d) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) + [23] *(SCREEN+$e) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q) + [24] *(SCREEN+$f) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [25] *(SCREEN+$10) = main::v5_p_x#0 [26] *(SCREEN+$11) = main::v5_p_y#0 [27] *(SCREEN+$12) = main::v5_q_x @@ -380,17 +380,17 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx struct Point main::v1_p struct Point main::v1_q -struct Vector main::v2 loadstore -struct Vector main::v3 loadstore -struct Vector main::v4 loadstore +__loadstore struct Vector main::v2 +__loadstore struct Vector main::v3 +__loadstore struct Vector main::v4 struct Point main::v5_p -byte main::v5_p_x -byte main::v5_p_x#0 0.2222222222222222 -byte main::v5_p_y -byte main::v5_p_y#0 0.2222222222222222 +char main::v5_p_x +char main::v5_p_x#0 // 0.2222222222222222 +char main::v5_p_y +char main::v5_p_y#0 // 0.2222222222222222 struct Point main::v5_q Initial phi equivalence classes @@ -411,12 +411,12 @@ Allocated zp[4]:4 [ main::v2 ] Allocated zp[4]:8 [ main::v3 ] Allocated zp[4]:12 [ main::v4 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)(struct Point*)&main::v2) = main::v1_p_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [4] *((struct Point*)&main::v3) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y -Statement [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y +Statement [0] *((char *)(struct Point *)&main::v2) = main::v1_p_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [4] *((struct Point *)&main::v3) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y +Statement [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y Statement [6] *(&main::v4) = memcpy(*(&main::v3), struct Vector, SIZEOF_STRUCT_VECTOR) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y Statement [9] *SCREEN = main::v1_p_x [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::v5_p_x#0 ] @@ -424,43 +424,43 @@ Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::v Statement [10] *(SCREEN+1) = main::v1_p_y [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [11] *(SCREEN+2) = main::v1_q_x [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [12] *(SCREEN+3) = main::v1_q_y [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [13] *(SCREEN+4) = *((byte*)(struct Point*)&main::v2) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [14] *(SCREEN+5) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [15] *(SCREEN+6) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [16] *(SCREEN+7) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [17] *(SCREEN+8) = *((byte*)(struct Point*)&main::v3) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [18] *(SCREEN+9) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [19] *(SCREEN+$a) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [20] *(SCREEN+$b) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [21] *(SCREEN+$c) = *((byte*)(struct Point*)&main::v4) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [22] *(SCREEN+$d) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [23] *(SCREEN+$e) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [24] *(SCREEN+$f) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [13] *(SCREEN+4) = *((char *)(struct Point *)&main::v2) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [14] *(SCREEN+5) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [15] *(SCREEN+6) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [16] *(SCREEN+7) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [17] *(SCREEN+8) = *((char *)(struct Point *)&main::v3) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [18] *(SCREEN+9) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [19] *(SCREEN+$a) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [20] *(SCREEN+$b) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [21] *(SCREEN+$c) = *((char *)(struct Point *)&main::v4) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [22] *(SCREEN+$d) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [23] *(SCREEN+$e) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [24] *(SCREEN+$f) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [27] *(SCREEN+$12) = main::v5_q_x [ ] ( [ ] { } ) always clobbers reg byte a Statement [28] *(SCREEN+$13) = main::v5_q_y [ ] ( [ ] { } ) always clobbers reg byte a -Statement [0] *((byte*)(struct Point*)&main::v2) = main::v1_p_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a -Statement [4] *((struct Point*)&main::v3) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y -Statement [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y +Statement [0] *((char *)(struct Point *)&main::v2) = main::v1_p_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a +Statement [4] *((struct Point *)&main::v3) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y +Statement [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y Statement [6] *(&main::v4) = memcpy(*(&main::v3), struct Vector, SIZEOF_STRUCT_VECTOR) [ main::v2 main::v3 main::v4 ] ( [ main::v2 main::v3 main::v4 ] { } ) always clobbers reg byte a reg byte y Statement [9] *SCREEN = main::v1_p_x [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [10] *(SCREEN+1) = main::v1_p_y [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [11] *(SCREEN+2) = main::v1_q_x [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [12] *(SCREEN+3) = main::v1_q_y [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [13] *(SCREEN+4) = *((byte*)(struct Point*)&main::v2) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [14] *(SCREEN+5) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [15] *(SCREEN+6) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [16] *(SCREEN+7) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [17] *(SCREEN+8) = *((byte*)(struct Point*)&main::v3) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [18] *(SCREEN+9) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [19] *(SCREEN+$a) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [20] *(SCREEN+$b) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [21] *(SCREEN+$c) = *((byte*)(struct Point*)&main::v4) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [22] *(SCREEN+$d) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [23] *(SCREEN+$e) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a -Statement [24] *(SCREEN+$f) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [13] *(SCREEN+4) = *((char *)(struct Point *)&main::v2) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [14] *(SCREEN+5) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [15] *(SCREEN+6) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v2 main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [16] *(SCREEN+7) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [17] *(SCREEN+8) = *((char *)(struct Point *)&main::v3) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [18] *(SCREEN+9) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_POINT_Y) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [19] *(SCREEN+$a) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v3 main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [20] *(SCREEN+$b) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [21] *(SCREEN+$c) = *((char *)(struct Point *)&main::v4) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [22] *(SCREEN+$d) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [23] *(SCREEN+$e) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q) [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v4 main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a +Statement [24] *(SCREEN+$f) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) [ main::v5_p_x#0 main::v5_p_y#0 ] ( [ main::v5_p_x#0 main::v5_p_y#0 ] { } ) always clobbers reg byte a Statement [27] *(SCREEN+$12) = main::v5_q_x [ ] ( [ ] { } ) always clobbers reg byte a Statement [28] *(SCREEN+$13) = main::v5_q_y [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::v5_p_x#0 ] : zp[1]:2 , reg byte x , reg byte y , @@ -513,26 +513,26 @@ main: { .label v2 = 2 .label v3 = 6 .label v4 = $a - // [0] *((byte*)(struct Point*)&main::v2) = main::v1_p_x -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct Point *)&main::v2) = main::v1_p_x -- _deref_pbuc1=vbuc2 lda #v1_p_x sta.z v2 - // [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y -- _deref_pbuc1=vbuc2 + // [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y -- _deref_pbuc1=vbuc2 lda #v1_p_y sta v2+OFFSET_STRUCT_POINT_Y - // [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x -- _deref_pbuc1=vbuc2 + // [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x -- _deref_pbuc1=vbuc2 lda #v1_q_x sta v2+OFFSET_STRUCT_VECTOR_Q - // [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y -- _deref_pbuc1=vbuc2 + // [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y -- _deref_pbuc1=vbuc2 lda #v1_q_y sta v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y - // [4] *((struct Point*)&main::v3) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [4] *((struct Point *)&main::v3) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_POINT !: lda v2-1,y sta v3-1,y dey bne !- - // [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_POINT !: lda __0-1,y @@ -546,9 +546,9 @@ main: { sta v4-1,y dey bne !- - // [7] main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4) -- vbuyy=_deref_pbuc1 + // [7] main::v5_p_x#0 = *((char *)(struct Point *)&main::v4) -- vbuyy=_deref_pbuc1 ldy.z v4 - // [8] main::v5_p_y#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [8] main::v5_p_y#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx v4+OFFSET_STRUCT_POINT_Y // [9] *SCREEN = main::v1_p_x -- _deref_pbuc1=vbuc2 lda #v1_p_x @@ -562,40 +562,40 @@ main: { // [12] *(SCREEN+3) = main::v1_q_y -- _deref_pbuc1=vbuc2 lda #v1_q_y sta SCREEN+3 - // [13] *(SCREEN+4) = *((byte*)(struct Point*)&main::v2) -- _deref_pbuc1=_deref_pbuc2 + // [13] *(SCREEN+4) = *((char *)(struct Point *)&main::v2) -- _deref_pbuc1=_deref_pbuc2 lda.z v2 sta SCREEN+4 - // [14] *(SCREEN+5) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [14] *(SCREEN+5) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v2+OFFSET_STRUCT_POINT_Y sta SCREEN+5 - // [15] *(SCREEN+6) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 + // [15] *(SCREEN+6) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 lda v2+OFFSET_STRUCT_VECTOR_Q sta SCREEN+6 - // [16] *(SCREEN+7) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [16] *(SCREEN+7) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y sta SCREEN+7 - // [17] *(SCREEN+8) = *((byte*)(struct Point*)&main::v3) -- _deref_pbuc1=_deref_pbuc2 + // [17] *(SCREEN+8) = *((char *)(struct Point *)&main::v3) -- _deref_pbuc1=_deref_pbuc2 lda.z v3 sta SCREEN+8 - // [18] *(SCREEN+9) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [18] *(SCREEN+9) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v3+OFFSET_STRUCT_POINT_Y sta SCREEN+9 - // [19] *(SCREEN+$a) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 + // [19] *(SCREEN+$a) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 lda v3+OFFSET_STRUCT_VECTOR_Q sta SCREEN+$a - // [20] *(SCREEN+$b) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [20] *(SCREEN+$b) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y sta SCREEN+$b - // [21] *(SCREEN+$c) = *((byte*)(struct Point*)&main::v4) -- _deref_pbuc1=_deref_pbuc2 + // [21] *(SCREEN+$c) = *((char *)(struct Point *)&main::v4) -- _deref_pbuc1=_deref_pbuc2 lda.z v4 sta SCREEN+$c - // [22] *(SCREEN+$d) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [22] *(SCREEN+$d) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v4+OFFSET_STRUCT_POINT_Y sta SCREEN+$d - // [23] *(SCREEN+$e) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 + // [23] *(SCREEN+$e) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 lda v4+OFFSET_STRUCT_VECTOR_Q sta SCREEN+$e - // [24] *(SCREEN+$f) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [24] *(SCREEN+$f) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y sta SCREEN+$f // [25] *(SCREEN+$10) = main::v5_p_x#0 -- _deref_pbuc1=vbuyy @@ -627,31 +627,31 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 6, y: 7 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte OFFSET_STRUCT_VECTOR_Q = 2 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -constant byte SIZEOF_STRUCT_VECTOR = 4 +__constant struct Point $0 = { x: 6, y: 7 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_VECTOR_Q = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +__constant char SIZEOF_STRUCT_VECTOR = 4 void main() -byte main::idx +char main::idx struct Point main::v1_p -constant byte main::v1_p_x = 2 -constant byte main::v1_p_y = 3 +__constant char main::v1_p_x = 2 +__constant char main::v1_p_y = 3 struct Point main::v1_q -constant byte main::v1_q_x = 4 -constant byte main::v1_q_y = 5 -struct Vector main::v2 loadstore zp[4]:2 -struct Vector main::v3 loadstore zp[4]:6 -struct Vector main::v4 loadstore zp[4]:10 +__constant char main::v1_q_x = 4 +__constant char main::v1_q_y = 5 +__loadstore struct Vector main::v2 // zp[4]:2 +__loadstore struct Vector main::v3 // zp[4]:6 +__loadstore struct Vector main::v4 // zp[4]:10 struct Point main::v5_p -byte main::v5_p_x -byte main::v5_p_x#0 reg byte y 0.2222222222222222 -byte main::v5_p_y -byte main::v5_p_y#0 reg byte x 0.2222222222222222 +char main::v5_p_x +char main::v5_p_x#0 // reg byte y 0.2222222222222222 +char main::v5_p_y +char main::v5_p_y#0 // reg byte x 0.2222222222222222 struct Point main::v5_q -constant byte main::v5_q_x = 8 -constant byte main::v5_q_y = 9 +__constant char main::v5_q_x = 8 +__constant char main::v5_q_y = 9 reg byte y [ main::v5_p_x#0 ] reg byte x [ main::v5_p_y#0 ] @@ -693,27 +693,27 @@ main: { .label v3 = 6 .label v4 = $a // __ma struct Vector v2 = v1 - // [0] *((byte*)(struct Point*)&main::v2) = main::v1_p_x -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct Point *)&main::v2) = main::v1_p_x -- _deref_pbuc1=vbuc2 lda #v1_p_x sta.z v2 - // [1] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y -- _deref_pbuc1=vbuc2 + // [1] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) = main::v1_p_y -- _deref_pbuc1=vbuc2 lda #v1_p_y sta v2+OFFSET_STRUCT_POINT_Y - // [2] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x -- _deref_pbuc1=vbuc2 + // [2] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) = main::v1_q_x -- _deref_pbuc1=vbuc2 lda #v1_q_x sta v2+OFFSET_STRUCT_VECTOR_Q - // [3] *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y -- _deref_pbuc1=vbuc2 + // [3] *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) = main::v1_q_y -- _deref_pbuc1=vbuc2 lda #v1_q_y sta v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y // __ma struct Vector v3 = { v2.p, {6, 7} } - // [4] *((struct Point*)&main::v3) = memcpy(*((struct Point*)&main::v2), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [4] *((struct Point *)&main::v3) = memcpy(*((struct Point *)&main::v2), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_POINT !: lda v2-1,y sta v3-1,y dey bne !- - // [5] *((struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [5] *((struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_POINT !: lda __0-1,y @@ -729,9 +729,9 @@ main: { dey bne !- // __ssa struct Vector v5 = { {v4.p.x, v4.p.y }, {8, 9} } - // [7] main::v5_p_x#0 = *((byte*)(struct Point*)&main::v4) -- vbuyy=_deref_pbuc1 + // [7] main::v5_p_x#0 = *((char *)(struct Point *)&main::v4) -- vbuyy=_deref_pbuc1 ldy.z v4 - // [8] main::v5_p_y#0 = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [8] main::v5_p_y#0 = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx v4+OFFSET_STRUCT_POINT_Y // SCREEN[idx++] = v1.p.x // [9] *SCREEN = main::v1_p_x -- _deref_pbuc1=vbuc2 @@ -750,51 +750,51 @@ main: { lda #v1_q_y sta SCREEN+3 // SCREEN[idx++] = v2.p.x - // [13] *(SCREEN+4) = *((byte*)(struct Point*)&main::v2) -- _deref_pbuc1=_deref_pbuc2 + // [13] *(SCREEN+4) = *((char *)(struct Point *)&main::v2) -- _deref_pbuc1=_deref_pbuc2 lda.z v2 sta SCREEN+4 // SCREEN[idx++] = v2.p.y - // [14] *(SCREEN+5) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [14] *(SCREEN+5) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v2+OFFSET_STRUCT_POINT_Y sta SCREEN+5 // SCREEN[idx++] = v2.q.x - // [15] *(SCREEN+6) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 + // [15] *(SCREEN+6) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 lda v2+OFFSET_STRUCT_VECTOR_Q sta SCREEN+6 // SCREEN[idx++] = v2.q.y - // [16] *(SCREEN+7) = *((byte*)(struct Point*)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [16] *(SCREEN+7) = *((char *)(struct Point *)&main::v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v2+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y sta SCREEN+7 // SCREEN[idx++] = v3.p.x - // [17] *(SCREEN+8) = *((byte*)(struct Point*)&main::v3) -- _deref_pbuc1=_deref_pbuc2 + // [17] *(SCREEN+8) = *((char *)(struct Point *)&main::v3) -- _deref_pbuc1=_deref_pbuc2 lda.z v3 sta SCREEN+8 // SCREEN[idx++] = v3.p.y - // [18] *(SCREEN+9) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [18] *(SCREEN+9) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v3+OFFSET_STRUCT_POINT_Y sta SCREEN+9 // SCREEN[idx++] = v3.q.x - // [19] *(SCREEN+$a) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 + // [19] *(SCREEN+$a) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 lda v3+OFFSET_STRUCT_VECTOR_Q sta SCREEN+$a // SCREEN[idx++] = v3.q.y - // [20] *(SCREEN+$b) = *((byte*)(struct Point*)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [20] *(SCREEN+$b) = *((char *)(struct Point *)&main::v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v3+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y sta SCREEN+$b // SCREEN[idx++] = v4.p.x - // [21] *(SCREEN+$c) = *((byte*)(struct Point*)&main::v4) -- _deref_pbuc1=_deref_pbuc2 + // [21] *(SCREEN+$c) = *((char *)(struct Point *)&main::v4) -- _deref_pbuc1=_deref_pbuc2 tya sta SCREEN+$c // SCREEN[idx++] = v4.p.y - // [22] *(SCREEN+$d) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [22] *(SCREEN+$d) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 txa sta SCREEN+$d // SCREEN[idx++] = v4.q.x - // [23] *(SCREEN+$e) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 + // [23] *(SCREEN+$e) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q) -- _deref_pbuc1=_deref_pbuc2 lda v4+OFFSET_STRUCT_VECTOR_Q sta SCREEN+$e // SCREEN[idx++] = v4.q.y - // [24] *(SCREEN+$f) = *((byte*)(struct Point*)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [24] *(SCREEN+$f) = *((char *)(struct Point *)&main::v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda v4+OFFSET_STRUCT_VECTOR_Q+OFFSET_STRUCT_POINT_Y sta SCREEN+$f // SCREEN[idx++] = v5.p.x diff --git a/src/test/ref/struct-41.sym b/src/test/ref/struct-41.sym index f29e0bdd8..0cbb1e5ca 100644 --- a/src/test/ref/struct-41.sym +++ b/src/test/ref/struct-41.sym @@ -1,28 +1,28 @@ -constant struct Point $0 = { x: 6, y: 7 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte OFFSET_STRUCT_VECTOR_Q = 2 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -constant byte SIZEOF_STRUCT_VECTOR = 4 +__constant struct Point $0 = { x: 6, y: 7 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_VECTOR_Q = 2 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +__constant char SIZEOF_STRUCT_VECTOR = 4 void main() -byte main::idx +char main::idx struct Point main::v1_p -constant byte main::v1_p_x = 2 -constant byte main::v1_p_y = 3 +__constant char main::v1_p_x = 2 +__constant char main::v1_p_y = 3 struct Point main::v1_q -constant byte main::v1_q_x = 4 -constant byte main::v1_q_y = 5 -struct Vector main::v2 loadstore zp[4]:2 -struct Vector main::v3 loadstore zp[4]:6 -struct Vector main::v4 loadstore zp[4]:10 +__constant char main::v1_q_x = 4 +__constant char main::v1_q_y = 5 +__loadstore struct Vector main::v2 // zp[4]:2 +__loadstore struct Vector main::v3 // zp[4]:6 +__loadstore struct Vector main::v4 // zp[4]:10 struct Point main::v5_p -byte main::v5_p_x -byte main::v5_p_x#0 reg byte y 0.2222222222222222 -byte main::v5_p_y -byte main::v5_p_y#0 reg byte x 0.2222222222222222 +char main::v5_p_x +char main::v5_p_x#0 // reg byte y 0.2222222222222222 +char main::v5_p_y +char main::v5_p_y#0 // reg byte x 0.2222222222222222 struct Point main::v5_q -constant byte main::v5_q_x = 8 -constant byte main::v5_q_y = 9 +__constant char main::v5_q_x = 8 +__constant char main::v5_q_y = 9 reg byte y [ main::v5_p_x#0 ] reg byte x [ main::v5_p_y#0 ] diff --git a/src/test/ref/struct-42.cfg b/src/test/ref/struct-42.cfg index 535d62e16..957d20eb3 100644 --- a/src/test/ref/struct-42.cfg +++ b/src/test/ref/struct-42.cfg @@ -11,8 +11,8 @@ main::@1: scope:[main] from main main::@1 [5] if(main::i#1!=3) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - [6] *SCREEN = *((byte*)points+2*SIZEOF_STRUCT_POINT) - [7] *(SCREEN+1) = *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [6] *SCREEN = *((char *)points+2*SIZEOF_STRUCT_POINT) + [7] *(SCREEN+1) = *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@2 [8] return diff --git a/src/test/ref/struct-42.log b/src/test/ref/struct-42.log index cb415a2fa..ba2db81d0 100644 --- a/src/test/ref/struct-42.log +++ b/src/test/ref/struct-42.log @@ -16,10 +16,10 @@ main::@1: scope:[main] from main main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::$2 = 2 * SIZEOF_STRUCT_POINT - main::$4 = (byte*)points + main::$2 + main::$4 = (char *)points + main::$2 SCREEN[0] = main::$4[OFFSET_STRUCT_POINT_X] main::$3 = 2 * SIZEOF_STRUCT_POINT - main::$5 = (byte*)points + main::$3 + main::$5 = (char *)points + main::$3 SCREEN[1] = main::$5[OFFSET_STRUCT_POINT_Y] to:main::@return main::@return: scope:[main] from main::@2 @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,24 +37,24 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -number~ main::$2 -number~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant struct Point* points[3] = { fill( 3, 0) } +bool main::$0 +char main::$1 +number main::$2 +number main::$3 +char *main::$4 +char *main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant struct Point points[3] = { fill( 3, 0) } Adding number conversion cast (unumber) 2 in main::$2 = 2 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)2 * SIZEOF_STRUCT_POINT @@ -63,19 +63,19 @@ Adding number conversion cast (unumber) 2 in main::$3 = 2 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)2 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) 1 in SCREEN[1] = main::$5[OFFSET_STRUCT_POINT_Y] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 2 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$3 = 2 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$2 = 2 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$3 = 2 * SIZEOF_STRUCT_POINT Simple Condition main::$0 [6] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [7] main::$2 = 2 * SIZEOF_STRUCT_POINT @@ -101,28 +101,28 @@ Adding number conversion cast (unumber) 3 in [4] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant right-side identified [5] main::$4 = (byte*)points + main::$2 -Constant right-side identified [7] main::$5 = (byte*)points + main::$3 +Constant right-side identified [5] main::$4 = (char *)points + main::$2 +Constant right-side identified [7] main::$5 = (char *)points + main::$3 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$4 = (byte*)points+main::$2 -Constant main::$5 = (byte*)points+main::$3 +Constant main::$4 = (char *)points+main::$2 +Constant main::$5 = (char *)points+main::$3 Successful SSA optimization Pass2ConstantIdentification Rewriting multiplication to use shift [1] main::$1 = main::i#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 -Constant inlined main::$5 = (byte*)points+2*SIZEOF_STRUCT_POINT +Constant inlined main::$5 = (char *)points+2*SIZEOF_STRUCT_POINT Constant inlined main::i#0 = 0 Constant inlined main::$3 = 2*SIZEOF_STRUCT_POINT -Constant inlined main::$4 = (byte*)points+2*SIZEOF_STRUCT_POINT +Constant inlined main::$4 = (char *)points+2*SIZEOF_STRUCT_POINT Constant inlined main::$2 = 2*SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -148,8 +148,8 @@ main::@1: scope:[main] from main main::@1 [5] if(main::i#1!=3) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - [6] *SCREEN = *((byte*)points+2*SIZEOF_STRUCT_POINT) - [7] *(SCREEN+1) = *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [6] *SCREEN = *((char *)points+2*SIZEOF_STRUCT_POINT) + [7] *(SCREEN+1) = *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@2 [8] return @@ -158,10 +158,10 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -178,13 +178,13 @@ Statement [3] points[main::$1] = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POIN Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [5] if(main::i#1!=3) goto main::@1 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a -Statement [6] *SCREEN = *((byte*)points+2*SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *(SCREEN+1) = *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *SCREEN = *((char *)points+2*SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *(SCREEN+1) = *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Statement [3] points[main::$1] = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [5] if(main::i#1!=3) goto main::@1 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a -Statement [6] *SCREEN = *((byte*)points+2*SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *(SCREEN+1) = *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *SCREEN = *((char *)points+2*SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *(SCREEN+1) = *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -253,10 +253,10 @@ main: { jmp __b2 // main::@2 __b2: - // [6] *SCREEN = *((byte*)points+2*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [6] *SCREEN = *((char *)points+2*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda points+2*SIZEOF_STRUCT_POINT sta SCREEN - // [7] *(SCREEN+1) = *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(SCREEN+1) = *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+1 jmp __breturn @@ -286,16 +286,16 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 11.0 -constant struct Point* points[3] = { fill( 3, 0) } +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 11.0 +__constant struct Point points[3] = { fill( 3, 0) } zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] @@ -354,11 +354,11 @@ main: { bne __b1 // main::@2 // SCREEN[0] = points[2].x - // [6] *SCREEN = *((byte*)points+2*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [6] *SCREEN = *((char *)points+2*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda points+2*SIZEOF_STRUCT_POINT sta SCREEN // SCREEN[1] = points[2].y - // [7] *(SCREEN+1) = *((byte*)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(SCREEN+1) = *((char *)points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-42.sym b/src/test/ref/struct-42.sym index 518db1858..9d3d45212 100644 --- a/src/test/ref/struct-42.sym +++ b/src/test/ref/struct-42.sym @@ -1,13 +1,13 @@ -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 11.0 -constant struct Point* points[3] = { fill( 3, 0) } +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 11.0 +__constant struct Point points[3] = { fill( 3, 0) } zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/struct-43.asm b/src/test/ref/struct-43.asm index 347bcf3c5..af20b156d 100644 --- a/src/test/ref/struct-43.asm +++ b/src/test/ref/struct-43.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const OFFSET_STRUCT_POINT_ID = 5 .const OFFSET_STRUCT_POINT_POS = 1 .label SCREEN = $400 @@ -20,14 +20,14 @@ main: { sta SCREEN+1 // SCREEN[1] = point1.pos[0] lda point1+OFFSET_STRUCT_POINT_POS - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda point1+OFFSET_STRUCT_POINT_POS+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // SCREEN[2] = point1.pos[1] - lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD - sta SCREEN+2*SIZEOF_WORD - lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD+1 - sta SCREEN+2*SIZEOF_WORD+1 + lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT + sta SCREEN+2*SIZEOF_UNSIGNED_INT + lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // } rts } diff --git a/src/test/ref/struct-43.cfg b/src/test/ref/struct-43.cfg index 83d2b282f..54235ffbe 100644 --- a/src/test/ref/struct-43.cfg +++ b/src/test/ref/struct-43.cfg @@ -1,9 +1,9 @@ void main() main: scope:[main] from - [0] *SCREEN = *((word*)&point1+OFFSET_STRUCT_POINT_ID) - [1] *(SCREEN+1*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS) - [2] *(SCREEN+2*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD) + [0] *SCREEN = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) + [1] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS) + [2] *(SCREEN+2*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT) to:main::@return main::@return: scope:[main] from main [3] return diff --git a/src/test/ref/struct-43.log b/src/test/ref/struct-43.log index 240bb2435..eaa4f921f 100644 --- a/src/test/ref/struct-43.log +++ b/src/test/ref/struct-43.log @@ -7,14 +7,14 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$0 = 0 * SIZEOF_WORD - SCREEN[main::$0] = *((word*)&point1+OFFSET_STRUCT_POINT_ID) - main::$1 = 0 * SIZEOF_WORD - main::$2 = 1 * SIZEOF_WORD - SCREEN[main::$2] = ((word*)&point1+OFFSET_STRUCT_POINT_POS)[main::$1] - main::$3 = 1 * SIZEOF_WORD - main::$4 = 2 * SIZEOF_WORD - SCREEN[main::$4] = ((word*)&point1+OFFSET_STRUCT_POINT_POS)[main::$3] + main::$0 = 0 * SIZEOF_UNSIGNED_INT + SCREEN[main::$0] = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) + main::$1 = 0 * SIZEOF_UNSIGNED_INT + main::$2 = 1 * SIZEOF_UNSIGNED_INT + SCREEN[main::$2] = ((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS)[main::$1] + main::$3 = 1 * SIZEOF_UNSIGNED_INT + main::$4 = 2 * SIZEOF_UNSIGNED_INT + SCREEN[main::$4] = ((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS)[main::$3] to:main::@return main::@return: scope:[main] from main return @@ -22,7 +22,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,65 +31,65 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_ID = 5 -constant byte OFFSET_STRUCT_POINT_POS = 1 -constant word* const SCREEN = (byte*)$400 -constant byte SIZEOF_WORD = 2 +__constant char OFFSET_STRUCT_POINT_ID = 5 +__constant char OFFSET_STRUCT_POINT_POS = 1 +__constant unsigned int * const SCREEN = (char *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$4 -struct Point point1 loadstore = { x: 4, pos: { 1, 2 }, id: 3 } +number main::$0 +number main::$1 +number main::$2 +number main::$3 +number main::$4 +__loadstore struct Point point1 = { x: 4, pos: { 1, 2 }, id: 3 } -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_WORD -Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_WORD -Adding number conversion cast (unumber) 1 in main::$2 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)1 * SIZEOF_WORD -Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_WORD -Adding number conversion cast (unumber) 2 in main::$4 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 1 in main::$2 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) 2 in main::$4 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)2 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$1 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$2 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$3 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$4 = 2 * SIZEOF_WORD -Constant right-side identified [0] main::$0 = 0 * SIZEOF_WORD -Constant right-side identified [2] main::$1 = 0 * SIZEOF_WORD -Constant right-side identified [3] main::$2 = 1 * SIZEOF_WORD -Constant right-side identified [5] main::$3 = 1 * SIZEOF_WORD -Constant right-side identified [6] main::$4 = 2 * SIZEOF_WORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$1 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$2 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$3 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$4 = 2 * SIZEOF_UNSIGNED_INT +Constant right-side identified [0] main::$0 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [2] main::$1 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [3] main::$2 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [5] main::$3 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [6] main::$4 = 2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_WORD -Constant main::$1 = 0*SIZEOF_WORD -Constant main::$2 = 1*SIZEOF_WORD -Constant main::$3 = 1*SIZEOF_WORD -Constant main::$4 = 2*SIZEOF_WORD +Constant main::$0 = 0*SIZEOF_UNSIGNED_INT +Constant main::$1 = 0*SIZEOF_UNSIGNED_INT +Constant main::$2 = 1*SIZEOF_UNSIGNED_INT +Constant main::$3 = 1*SIZEOF_UNSIGNED_INT +Constant main::$4 = 2*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero SCREEN in [1] SCREEN[main::$0] = *((word*)&point1+OFFSET_STRUCT_POINT_ID) -Simplifying expression containing zero (word*)&point1+OFFSET_STRUCT_POINT_POS in [4] SCREEN[main::$2] = ((word*)&point1+OFFSET_STRUCT_POINT_POS)[main::$1] +Simplifying expression containing zero SCREEN in [1] SCREEN[main::$0] = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) +Simplifying expression containing zero (unsigned int *)&point1+OFFSET_STRUCT_POINT_POS in [4] SCREEN[main::$2] = ((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS)[main::$1] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 Eliminating unused constant main::$1 @@ -99,16 +99,16 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$3 = 1*SIZEOF_WORD -Constant inlined main::$4 = 2*SIZEOF_WORD -Constant inlined main::$2 = 1*SIZEOF_WORD +Constant inlined main::$3 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$4 = 2*SIZEOF_UNSIGNED_INT +Constant inlined main::$2 = 1*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(SCREEN+1*SIZEOF_WORD) -Consolidated array index constant in *((word*)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD) -Consolidated array index constant in *(SCREEN+2*SIZEOF_WORD) +Consolidated array index constant in *(SCREEN+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(SCREEN+2*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -119,9 +119,9 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = *((word*)&point1+OFFSET_STRUCT_POINT_ID) - [1] *(SCREEN+1*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS) - [2] *(SCREEN+2*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD) + [0] *SCREEN = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) + [1] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS) + [2] *(SCREEN+2*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT) to:main::@return main::@return: scope:[main] from main [3] return @@ -130,7 +130,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point point1 loadstore = { x: 4, pos: { 1, 2 }, id: 3 } +__loadstore struct Point point1 = { x: 4, pos: { 1, 2 }, id: 3 } Initial phi equivalence classes Added variable point1 to live range equivalence class [ point1 ] @@ -138,9 +138,9 @@ Complete equivalence classes [ point1 ] Allocated mem[7] [ point1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = *((word*)&point1+OFFSET_STRUCT_POINT_ID) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS) [ point1 ] ( [ point1 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[7] [ point1 ] : mem[7] , REGISTER UPLIFT SCOPES @@ -165,28 +165,28 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const OFFSET_STRUCT_POINT_ID = 5 .const OFFSET_STRUCT_POINT_POS = 1 .label SCREEN = $400 .segment Code // main main: { - // [0] *SCREEN = *((word*)&point1+OFFSET_STRUCT_POINT_ID) -- _deref_pwuc1=_deref_pwuc2 + // [0] *SCREEN = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) -- _deref_pwuc1=_deref_pwuc2 lda point1+OFFSET_STRUCT_POINT_ID sta SCREEN lda point1+OFFSET_STRUCT_POINT_ID+1 sta SCREEN+1 - // [1] *(SCREEN+1*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS) -- _deref_pwuc1=_deref_pwuc2 + // [1] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS) -- _deref_pwuc1=_deref_pwuc2 lda point1+OFFSET_STRUCT_POINT_POS - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda point1+OFFSET_STRUCT_POINT_POS+1 - sta SCREEN+1*SIZEOF_WORD+1 - // [2] *(SCREEN+2*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD) -- _deref_pwuc1=_deref_pwuc2 - lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD - sta SCREEN+2*SIZEOF_WORD - lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD+1 - sta SCREEN+2*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 + // [2] *(SCREEN+2*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT) -- _deref_pwuc1=_deref_pwuc2 + lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT + sta SCREEN+2*SIZEOF_UNSIGNED_INT + lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 jmp __breturn // main::@return __breturn: @@ -205,12 +205,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_ID = 5 -constant byte OFFSET_STRUCT_POINT_POS = 1 -constant word* const SCREEN = (byte*) 1024 -constant byte SIZEOF_WORD = 2 +__constant char OFFSET_STRUCT_POINT_ID = 5 +__constant char OFFSET_STRUCT_POINT_POS = 1 +__constant unsigned int * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -struct Point point1 loadstore mem[7] = { x: 4, pos: { 1, 2 }, id: 3 } +__loadstore struct Point point1 = { x: 4, pos: { 1, 2 }, id: 3 } // mem[7] mem[7] [ point1 ] @@ -230,7 +230,7 @@ Score: 54 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const OFFSET_STRUCT_POINT_ID = 5 .const OFFSET_STRUCT_POINT_POS = 1 .label SCREEN = $400 @@ -238,23 +238,23 @@ Score: 54 // main main: { // SCREEN[0] = point1.id - // [0] *SCREEN = *((word*)&point1+OFFSET_STRUCT_POINT_ID) -- _deref_pwuc1=_deref_pwuc2 + // [0] *SCREEN = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_ID) -- _deref_pwuc1=_deref_pwuc2 lda point1+OFFSET_STRUCT_POINT_ID sta SCREEN lda point1+OFFSET_STRUCT_POINT_ID+1 sta SCREEN+1 // SCREEN[1] = point1.pos[0] - // [1] *(SCREEN+1*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS) -- _deref_pwuc1=_deref_pwuc2 + // [1] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS) -- _deref_pwuc1=_deref_pwuc2 lda point1+OFFSET_STRUCT_POINT_POS - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda point1+OFFSET_STRUCT_POINT_POS+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // SCREEN[2] = point1.pos[1] - // [2] *(SCREEN+2*SIZEOF_WORD) = *((word*)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD) -- _deref_pwuc1=_deref_pwuc2 - lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD - sta SCREEN+2*SIZEOF_WORD - lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_WORD+1 - sta SCREEN+2*SIZEOF_WORD+1 + // [2] *(SCREEN+2*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT) -- _deref_pwuc1=_deref_pwuc2 + lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT + sta SCREEN+2*SIZEOF_UNSIGNED_INT + lda point1+OFFSET_STRUCT_POINT_POS+1*SIZEOF_UNSIGNED_INT+1 + sta SCREEN+2*SIZEOF_UNSIGNED_INT+1 // main::@return // } // [3] return diff --git a/src/test/ref/struct-43.sym b/src/test/ref/struct-43.sym index 72e589677..a8f62134d 100644 --- a/src/test/ref/struct-43.sym +++ b/src/test/ref/struct-43.sym @@ -1,8 +1,8 @@ -constant byte OFFSET_STRUCT_POINT_ID = 5 -constant byte OFFSET_STRUCT_POINT_POS = 1 -constant word* const SCREEN = (byte*) 1024 -constant byte SIZEOF_WORD = 2 +__constant char OFFSET_STRUCT_POINT_ID = 5 +__constant char OFFSET_STRUCT_POINT_POS = 1 +__constant unsigned int * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -struct Point point1 loadstore mem[7] = { x: 4, pos: { 1, 2 }, id: 3 } +__loadstore struct Point point1 = { x: 4, pos: { 1, 2 }, id: 3 } // mem[7] mem[7] [ point1 ] diff --git a/src/test/ref/struct-44.asm b/src/test/ref/struct-44.asm index 00e214b15..fadd37e13 100644 --- a/src/test/ref/struct-44.asm +++ b/src/test/ref/struct-44.asm @@ -56,7 +56,7 @@ main: { // } rts } -// print_circle(word zp(2) c_radius, word zp(4) c_center_x, word zp(6) c_center_y, byte zp(8) c_color) +// void print_circle(__zp(2) unsigned int c_radius, __zp(4) unsigned int c_center_x, __zp(6) unsigned int c_center_y, __zp(8) char c_color) print_circle: { .label c_radius = 2 .label c_center_x = 4 @@ -128,7 +128,7 @@ print_ln: { // } rts } -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 __b1: @@ -151,7 +151,7 @@ print_str: { !: jmp __b1 } -// print_uint(word zp(2) i) +// void print_uint(__zp(2) unsigned int i) print_uint: { .label i = 2 // BYTE1(i) @@ -195,7 +195,7 @@ print_uint: { // } rts } -// print_uchar(byte zp(8) c) +// void print_uchar(__zp(8) char c) print_uchar: { .label c = 8 // c>>4 @@ -218,7 +218,7 @@ print_uchar: { // } rts } -// print_char(byte register(A) c) +// void print_char(__register(A) char c) print_char: { // screen_line[screen_idx++] = c stx.z $ff diff --git a/src/test/ref/struct-44.cfg b/src/test/ref/struct-44.cfg index 4604396ba..f12c987a6 100644 --- a/src/test/ref/struct-44.cfg +++ b/src/test/ref/struct-44.cfg @@ -1,63 +1,63 @@ void main() main: scope:[main] from - [0] print_circle::c_radius#0 = *((word*)&circle) - [1] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER) - [2] print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) - [3] print_circle::c_color#0 = *((byte*)&circle+OFFSET_STRUCT_CIRCLE_COLOR) - [4] call print_circle + [0] print_circle::c_radius#0 = *((unsigned int *)&circle) + [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER) + [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) + [3] print_circle::c_color#0 = *((char *)&circle+OFFSET_STRUCT_CIRCLE_COLOR) + [4] call print_circle to:main::@1 main::@1: scope:[main] from main [5] phi() - [6] call print_ln + [6] call print_ln to:main::@2 main::@2: scope:[main] from main::@1 - [7] print_circle::c_radius#1 = *((word*)&c2) - [8] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER) - [9] print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) - [10] print_circle::c_color#1 = *((byte*)&c2+OFFSET_STRUCT_CIRCLE_COLOR) - [11] call print_circle + [7] print_circle::c_radius#1 = *((unsigned int *)&c2) + [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER) + [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) + [10] print_circle::c_color#1 = *((char *)&c2+OFFSET_STRUCT_CIRCLE_COLOR) + [11] call print_circle to:main::@return main::@return: scope:[main] from main::@2 [12] return to:@return -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) print_circle: scope:[print_circle] from main main::@2 [13] print_circle::c_color#2 = phi( main/print_circle::c_color#0, main::@2/print_circle::c_color#1 ) [13] print_circle::c_center_y#2 = phi( main/print_circle::c_center_y#0, main::@2/print_circle::c_center_y#1 ) [13] print_circle::c_center_x#2 = phi( main/print_circle::c_center_x#0, main::@2/print_circle::c_center_x#1 ) [13] print_circle::c_radius#2 = phi( main/print_circle::c_radius#0, main::@2/print_circle::c_radius#1 ) - [13] screen_line#61 = phi( main/(byte*) 1024+(word)$28*$a, main::@2/screen_line#25 ) - [14] call print_str + [13] screen_line#61 = phi( main/(char *) 1024+(unsigned int)$28*$a, main::@2/screen_line#25 ) + [14] call print_str to:print_circle::@1 print_circle::@1: scope:[print_circle] from print_circle [15] print_uint::i#0 = print_circle::c_radius#2 - [16] call print_uint + [16] call print_uint to:print_circle::@2 print_circle::@2: scope:[print_circle] from print_circle::@1 [17] phi() - [18] call print_str + [18] call print_str to:print_circle::@3 print_circle::@3: scope:[print_circle] from print_circle::@2 [19] print_uint::i#1 = print_circle::c_center_x#2 - [20] call print_uint + [20] call print_uint to:print_circle::@4 print_circle::@4: scope:[print_circle] from print_circle::@3 [21] phi() - [22] call print_str + [22] call print_str to:print_circle::@5 print_circle::@5: scope:[print_circle] from print_circle::@4 [23] print_uint::i#2 = print_circle::c_center_y#2 - [24] call print_uint + [24] call print_uint to:print_circle::@6 print_circle::@6: scope:[print_circle] from print_circle::@5 [25] phi() - [26] call print_str + [26] call print_str to:print_circle::@7 print_circle::@7: scope:[print_circle] from print_circle::@6 [27] print_uchar::c#0 = print_circle::c_color#2 - [28] call print_uchar + [28] call print_uchar to:print_circle::@return print_circle::@return: scope:[print_circle] from print_circle::@7 [29] return @@ -72,7 +72,7 @@ print_ln::@return: scope:[print_ln] from print_ln [32] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_circle print_circle::@2 print_circle::@4 print_circle::@6 [33] screen_line#68 = phi( print_circle/screen_line#61, print_circle::@2/screen_line#24, print_circle::@4/screen_line#24, print_circle::@6/screen_line#24 ) [33] screen_idx#68 = phi( print_circle/0, print_circle::@2/screen_idx#25, print_circle::@4/screen_idx#25, print_circle::@6/screen_idx#25 ) @@ -89,58 +89,58 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [37] print_char::c#6 = *print_str::str#5 - [38] call print_char + [38] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [39] print_str::str#4 = ++ print_str::str#5 to:print_str::@1 -void print_uint(word print_uint::i) +void print_uint(unsigned int i) print_uint: scope:[print_uint] from print_circle::@1 print_circle::@3 print_circle::@5 [40] print_uint::i#3 = phi( print_circle::@1/print_uint::i#0, print_circle::@3/print_uint::i#1, print_circle::@5/print_uint::i#2 ) [41] print_uint::$0 = byte1 print_uint::i#3 [42] print_uint::$1 = print_uint::$0 >> 4 [43] print_char::c#0 = HEX[print_uint::$1] - [44] call print_char + [44] call print_char to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [45] print_uint::$3 = byte1 print_uint::i#3 [46] print_uint::$4 = print_uint::$3 & $f [47] print_char::c#1 = HEX[print_uint::$4] - [48] call print_char + [48] call print_char to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 [49] print_uint::$6 = byte0 print_uint::i#3 [50] print_uint::$7 = print_uint::$6 >> 4 [51] print_char::c#2 = HEX[print_uint::$7] - [52] call print_char + [52] call print_char to:print_uint::@3 print_uint::@3: scope:[print_uint] from print_uint::@2 [53] print_uint::$9 = byte0 print_uint::i#3 [54] print_uint::$10 = print_uint::$9 & $f [55] print_char::c#3 = HEX[print_uint::$10] - [56] call print_char + [56] call print_char to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@3 [57] return to:@return -void print_uchar(byte print_uchar::c) +void print_uchar(char c) print_uchar: scope:[print_uchar] from print_circle::@7 [58] print_uchar::$0 = print_uchar::c#0 >> 4 [59] print_char::c#4 = HEX[print_uchar::$0] - [60] call print_char + [60] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [61] print_uchar::$2 = print_uchar::c#0 & $f [62] print_char::c#5 = HEX[print_uchar::$2] - [63] call print_char + [63] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [64] return to:@return -void print_char(byte print_char::c) +void print_char(char c) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_uint print_uint::@1 print_uint::@2 print_uint::@3 [65] screen_idx#54 = phi( print_str::@2/screen_idx#22, print_uchar/screen_idx#22, print_uchar::@1/screen_idx#25, print_uint/screen_idx#22, print_uint::@1/screen_idx#25, print_uint::@2/screen_idx#25, print_uint::@3/screen_idx#25 ) [65] screen_line#53 = phi( print_str::@2/screen_line#22, print_uchar/screen_line#22, print_uchar::@1/screen_line#24, print_uint/screen_line#22, print_uint::@1/screen_line#24, print_uint::@2/screen_line#24, print_uint::@3/screen_line#24 ) @@ -151,7 +151,7 @@ print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 p to:print_char::@1 print_char::@1: scope:[print_char] from print_char [69] phi() - [70] call print_ln + [70] call print_ln to:print_char::@return print_char::@return: scope:[print_char] from print_char print_char::@1 [71] screen_line#24 = phi( print_char/screen_line#53, print_char::@1/screen_line#25 ) diff --git a/src/test/ref/struct-44.log b/src/test/ref/struct-44.log index ac63e3248..63b04a879 100644 --- a/src/test/ref/struct-44.log +++ b/src/test/ref/struct-44.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,29 +6,29 @@ void main() main: scope:[main] from __start::@1 screen_line#60 = phi( __start::@1/screen_line#67 ) screen_idx#60 = phi( __start::@1/screen_idx#67 ) - print_circle::c_radius#0 = *((word*)&circle+OFFSET_STRUCT_CIRCLE_RADIUS) - print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) - print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) - print_circle::c_color#0 = *((byte*)&circle+OFFSET_STRUCT_CIRCLE_COLOR) - call print_circle + print_circle::c_radius#0 = *((unsigned int *)&circle+OFFSET_STRUCT_CIRCLE_RADIUS) + print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) + print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) + print_circle::c_color#0 = *((char *)&circle+OFFSET_STRUCT_CIRCLE_COLOR) + call print_circle to:main::@1 main::@1: scope:[main] from main screen_line#30 = phi( main/screen_line#12 ) screen_idx#31 = phi( main/screen_idx#12 ) screen_idx#0 = screen_idx#31 screen_line#0 = screen_line#30 - call print_ln + call print_ln to:main::@2 main::@2: scope:[main] from main::@1 screen_idx#32 = phi( main::@1/screen_idx#27 ) screen_line#31 = phi( main::@1/screen_line#26 ) screen_line#1 = screen_line#31 screen_idx#1 = screen_idx#32 - print_circle::c_radius#1 = *((word*)&c2+OFFSET_STRUCT_CIRCLE_RADIUS) - print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) - print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) - print_circle::c_color#1 = *((byte*)&c2+OFFSET_STRUCT_CIRCLE_COLOR) - call print_circle + print_circle::c_radius#1 = *((unsigned int *)&c2+OFFSET_STRUCT_CIRCLE_RADIUS) + print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) + print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) + print_circle::c_color#1 = *((char *)&c2+OFFSET_STRUCT_CIRCLE_COLOR) + call print_circle to:main::@3 main::@3: scope:[main] from main::@2 screen_line#32 = phi( main::@2/screen_line#12 ) @@ -44,7 +44,7 @@ main::@return: scope:[main] from main::@3 return to:@return -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) print_circle: scope:[print_circle] from main main::@2 print_circle::c_color#9 = phi( main/print_circle::c_color#0, main::@2/print_circle::c_color#1 ) print_circle::c_center_y#7 = phi( main/print_circle::c_center_y#0, main::@2/print_circle::c_center_y#1 ) @@ -53,7 +53,7 @@ print_circle: scope:[print_circle] from main main::@2 screen_line#61 = phi( main/screen_line#60, main::@2/screen_line#1 ) screen_idx#61 = phi( main/screen_idx#60, main::@2/screen_idx#1 ) print_str::str#0 = print_circle::str - call print_str + call print_str to:print_circle::@1 print_circle::@1: scope:[print_circle] from print_circle print_circle::c_color#8 = phi( print_circle/print_circle::c_color#9 ) @@ -65,7 +65,7 @@ print_circle::@1: scope:[print_circle] from print_circle screen_idx#4 = screen_idx#35 screen_line#4 = screen_line#34 print_uint::i#0 = print_circle::c_radius#2 - call print_uint + call print_uint to:print_circle::@2 print_circle::@2: scope:[print_circle] from print_circle::@1 print_circle::c_color#7 = phi( print_circle::@1/print_circle::c_color#8 ) @@ -76,7 +76,7 @@ print_circle::@2: scope:[print_circle] from print_circle::@1 screen_idx#5 = screen_idx#36 screen_line#5 = screen_line#35 print_str::str#1 = print_circle::str1 - call print_str + call print_str to:print_circle::@3 print_circle::@3: scope:[print_circle] from print_circle::@2 print_circle::c_color#6 = phi( print_circle::@2/print_circle::c_color#7 ) @@ -87,7 +87,7 @@ print_circle::@3: scope:[print_circle] from print_circle::@2 screen_idx#6 = screen_idx#37 screen_line#6 = screen_line#36 print_uint::i#1 = print_circle::c_center_x#2 - call print_uint + call print_uint to:print_circle::@4 print_circle::@4: scope:[print_circle] from print_circle::@3 print_circle::c_color#5 = phi( print_circle::@3/print_circle::c_color#6 ) @@ -97,7 +97,7 @@ print_circle::@4: scope:[print_circle] from print_circle::@3 screen_idx#7 = screen_idx#38 screen_line#7 = screen_line#37 print_str::str#2 = print_circle::str2 - call print_str + call print_str to:print_circle::@5 print_circle::@5: scope:[print_circle] from print_circle::@4 print_circle::c_color#4 = phi( print_circle::@4/print_circle::c_color#5 ) @@ -107,7 +107,7 @@ print_circle::@5: scope:[print_circle] from print_circle::@4 screen_idx#8 = screen_idx#39 screen_line#8 = screen_line#38 print_uint::i#2 = print_circle::c_center_y#2 - call print_uint + call print_uint to:print_circle::@6 print_circle::@6: scope:[print_circle] from print_circle::@5 print_circle::c_color#3 = phi( print_circle::@5/print_circle::c_color#4 ) @@ -116,7 +116,7 @@ print_circle::@6: scope:[print_circle] from print_circle::@5 screen_idx#9 = screen_idx#40 screen_line#9 = screen_line#39 print_str::str#3 = print_circle::str3 - call print_str + call print_str to:print_circle::@7 print_circle::@7: scope:[print_circle] from print_circle::@6 print_circle::c_color#2 = phi( print_circle::@6/print_circle::c_color#3 ) @@ -125,7 +125,7 @@ print_circle::@7: scope:[print_circle] from print_circle::@6 screen_idx#10 = screen_idx#41 screen_line#10 = screen_line#40 print_uchar::c#0 = print_circle::c_color#2 - call print_uchar + call print_uchar to:print_circle::@8 print_circle::@8: scope:[print_circle] from print_circle::@7 screen_line#41 = phi( print_circle::@7/screen_line#20 ) @@ -141,7 +141,7 @@ print_circle::@return: scope:[print_circle] from print_circle::@8 return to:@return -void print_uint(word print_uint::i) +void print_uint(unsigned int i) print_uint: scope:[print_uint] from print_circle::@1 print_circle::@3 print_circle::@5 screen_line#62 = phi( print_circle::@1/screen_line#4, print_circle::@3/screen_line#6, print_circle::@5/screen_line#8 ) screen_idx#62 = phi( print_circle::@1/screen_idx#4, print_circle::@3/screen_idx#6, print_circle::@5/screen_idx#8 ) @@ -149,7 +149,7 @@ print_uint: scope:[print_uint] from print_circle::@1 print_circle::@3 print_cir print_uint::$0 = byte1 print_uint::i#3 print_uint::$1 = print_uint::$0 >> 4 print_char::c#0 = HEX[print_uint::$1] - call print_char + call print_char to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::i#4 = phi( print_uint/print_uint::i#3 ) @@ -160,7 +160,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_uint::$3 = byte1 print_uint::i#4 print_uint::$4 = print_uint::$3 & $f print_char::c#1 = HEX[print_uint::$4] - call print_char + call print_char to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_uint::i#5 = phi( print_uint::@1/print_uint::i#4 ) @@ -171,7 +171,7 @@ print_uint::@2: scope:[print_uint] from print_uint::@1 print_uint::$6 = byte0 print_uint::i#5 print_uint::$7 = print_uint::$6 >> 4 print_char::c#2 = HEX[print_uint::$7] - call print_char + call print_char to:print_uint::@3 print_uint::@3: scope:[print_uint] from print_uint::@2 print_uint::i#6 = phi( print_uint::@2/print_uint::i#5 ) @@ -182,7 +182,7 @@ print_uint::@3: scope:[print_uint] from print_uint::@2 print_uint::$9 = byte0 print_uint::i#6 print_uint::$10 = print_uint::$9 & $f print_char::c#3 = HEX[print_uint::$10] - call print_char + call print_char to:print_uint::@4 print_uint::@4: scope:[print_uint] from print_uint::@3 screen_line#46 = phi( print_uint::@3/screen_line#24 ) @@ -198,14 +198,14 @@ print_uint::@return: scope:[print_uint] from print_uint::@4 return to:@return -void print_uchar(byte print_uchar::c) +void print_uchar(char c) print_uchar: scope:[print_uchar] from print_circle::@7 screen_line#63 = phi( print_circle::@7/screen_line#10 ) screen_idx#63 = phi( print_circle::@7/screen_idx#10 ) print_uchar::c#1 = phi( print_circle::@7/print_uchar::c#0 ) print_uchar::$0 = print_uchar::c#1 >> 4 print_char::c#4 = HEX[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::c#2 = phi( print_uchar/print_uchar::c#1 ) @@ -215,7 +215,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar screen_line#18 = screen_line#48 print_uchar::$2 = print_uchar::c#2 & $f print_char::c#5 = HEX[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 screen_line#49 = phi( print_uchar::@1/screen_line#24 ) @@ -231,7 +231,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_circle print_circle::@2 print_circle::@4 print_circle::@6 screen_line#68 = phi( print_circle/screen_line#61, print_circle::@2/screen_line#5, print_circle::@4/screen_line#7, print_circle::@6/screen_line#9 ) screen_idx#68 = phi( print_circle/screen_idx#61, print_circle::@2/screen_idx#5, print_circle::@4/screen_idx#7, print_circle::@6/screen_idx#9 ) @@ -249,7 +249,7 @@ print_str::@2: scope:[print_str] from print_str::@1 screen_idx#64 = phi( print_str::@1/screen_idx#65 ) print_str::str#6 = phi( print_str::@1/print_str::str#5 ) print_char::c#6 = *print_str::str#6 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#7 = phi( print_str::@2/print_str::str#6 ) @@ -267,7 +267,7 @@ print_str::@return: scope:[print_str] from print_str::@1 return to:@return -void print_char(byte print_char::c) +void print_char(char c) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_uint print_uint::@1 print_uint::@2 print_uint::@3 screen_idx#54 = phi( print_str::@2/screen_idx#64, print_uchar/screen_idx#63, print_uchar::@1/screen_idx#18, print_uint/screen_idx#62, print_uint::@1/screen_idx#13, print_uint::@2/screen_idx#14, print_uint::@3/screen_idx#15 ) screen_line#53 = phi( print_str::@2/screen_line#64, print_uchar/screen_line#63, print_uchar::@1/screen_line#18, print_uint/screen_line#62, print_uint::@1/screen_line#13, print_uint::@2/screen_line#14, print_uint::@3/screen_line#15 ) @@ -281,7 +281,7 @@ print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 p print_char::@1: scope:[print_char] from print_char screen_idx#66 = phi( print_char/screen_idx#23 ) screen_line#66 = phi( print_char/screen_line#53 ) - call print_ln + call print_ln to:print_char::@2 print_char::@2: scope:[print_char] from print_char::@1 screen_idx#55 = phi( print_char::@1/screen_idx#27 ) @@ -315,13 +315,13 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen_line#27 = (byte*)$400+$28*$a + screen_line#27 = (char *)$400+$28*$a screen_idx#28 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen_line#67 = phi( __start::__init1/screen_line#27 ) screen_idx#67 = phi( __start::__init1/screen_idx#28 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen_line#58 = phi( __start::@1/screen_line#3 ) @@ -338,246 +338,246 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte COL_RED = 2 -constant byte COL_WHITE = 1 -constant byte* HEX[] = "0123456789abcdef" -constant byte OFFSET_STRUCT_CIRCLE_CENTER = 2 -constant byte OFFSET_STRUCT_CIRCLE_COLOR = 6 -constant byte OFFSET_STRUCT_CIRCLE_RADIUS = 0 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 2 +__constant char COL_RED = 2 +__constant char COL_WHITE = 1 +__constant char HEX[] = "0123456789abcdef" +__constant char OFFSET_STRUCT_CIRCLE_CENTER = 2 +__constant char OFFSET_STRUCT_CIRCLE_COLOR = 6 +__constant char OFFSET_STRUCT_CIRCLE_RADIUS = 0 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 2 void __start() -struct Circle c2 loadstore = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } -struct Circle circle loadstore = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } +__loadstore struct Circle c2 = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } +__loadstore struct Circle circle = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } void main() -void print_char(byte print_char::c) -bool~ print_char::$0 -bool~ print_char::$1 -byte print_char::c -byte print_char::c#0 -byte print_char::c#1 -byte print_char::c#2 -byte print_char::c#3 -byte print_char::c#4 -byte print_char::c#5 -byte print_char::c#6 -byte print_char::c#7 -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_char(char c) +bool print_char::$0 +bool print_char::$1 +char print_char::c +char print_char::c#0 +char print_char::c#1 +char print_char::c#2 +char print_char::c#3 +char print_char::c#4 +char print_char::c#5 +char print_char::c#6 +char print_char::c#7 +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) struct Circle print_circle::c struct Point print_circle::c_center -word print_circle::c_center_x -word print_circle::c_center_x#0 -word print_circle::c_center_x#1 -word print_circle::c_center_x#2 -word print_circle::c_center_x#3 -word print_circle::c_center_x#4 -word print_circle::c_center_x#5 -word print_circle::c_center_y -word print_circle::c_center_y#0 -word print_circle::c_center_y#1 -word print_circle::c_center_y#2 -word print_circle::c_center_y#3 -word print_circle::c_center_y#4 -word print_circle::c_center_y#5 -word print_circle::c_center_y#6 -word print_circle::c_center_y#7 -byte print_circle::c_color -byte print_circle::c_color#0 -byte print_circle::c_color#1 -byte print_circle::c_color#2 -byte print_circle::c_color#3 -byte print_circle::c_color#4 -byte print_circle::c_color#5 -byte print_circle::c_color#6 -byte print_circle::c_color#7 -byte print_circle::c_color#8 -byte print_circle::c_color#9 -word print_circle::c_radius -word print_circle::c_radius#0 -word print_circle::c_radius#1 -word print_circle::c_radius#2 -word print_circle::c_radius#3 -constant byte* print_circle::str[3] = "r:" -constant byte* print_circle::str1[5] = " c:(" -constant byte* print_circle::str2[2] = "," -constant byte* print_circle::str3[3] = ") " +unsigned int print_circle::c_center_x +unsigned int print_circle::c_center_x#0 +unsigned int print_circle::c_center_x#1 +unsigned int print_circle::c_center_x#2 +unsigned int print_circle::c_center_x#3 +unsigned int print_circle::c_center_x#4 +unsigned int print_circle::c_center_x#5 +unsigned int print_circle::c_center_y +unsigned int print_circle::c_center_y#0 +unsigned int print_circle::c_center_y#1 +unsigned int print_circle::c_center_y#2 +unsigned int print_circle::c_center_y#3 +unsigned int print_circle::c_center_y#4 +unsigned int print_circle::c_center_y#5 +unsigned int print_circle::c_center_y#6 +unsigned int print_circle::c_center_y#7 +char print_circle::c_color +char print_circle::c_color#0 +char print_circle::c_color#1 +char print_circle::c_color#2 +char print_circle::c_color#3 +char print_circle::c_color#4 +char print_circle::c_color#5 +char print_circle::c_color#6 +char print_circle::c_color#7 +char print_circle::c_color#8 +char print_circle::c_color#9 +unsigned int print_circle::c_radius +unsigned int print_circle::c_radius#0 +unsigned int print_circle::c_radius#1 +unsigned int print_circle::c_radius#2 +unsigned int print_circle::c_radius#3 +__constant char print_circle::str[3] = "r:" +__constant char print_circle::str1[5] = " c:(" +__constant char print_circle::str2[2] = "," +__constant char print_circle::str3[3] = ") " void print_ln() -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -byte* print_str::str#7 -byte* print_str::str#8 -void print_uchar(byte print_uchar::c) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::c -byte print_uchar::c#0 -byte print_uchar::c#1 -byte print_uchar::c#2 -void print_uint(word print_uint::i) -byte~ print_uint::$0 -byte~ print_uint::$1 -number~ print_uint::$10 -byte~ print_uint::$3 -number~ print_uint::$4 -byte~ print_uint::$6 -byte~ print_uint::$7 -byte~ print_uint::$9 -word print_uint::i -word print_uint::i#0 -word print_uint::i#1 -word print_uint::i#2 -word print_uint::i#3 -word print_uint::i#4 -word print_uint::i#5 -word print_uint::i#6 -byte screen_idx -byte screen_idx#0 -byte screen_idx#1 -byte screen_idx#10 -byte screen_idx#11 -byte screen_idx#12 -byte screen_idx#13 -byte screen_idx#14 -byte screen_idx#15 -byte screen_idx#16 -byte screen_idx#17 -byte screen_idx#18 -byte screen_idx#19 -byte screen_idx#2 -byte screen_idx#20 -byte screen_idx#21 -byte screen_idx#22 -byte screen_idx#23 -byte screen_idx#24 -byte screen_idx#25 -byte screen_idx#26 -byte screen_idx#27 -byte screen_idx#28 -byte screen_idx#29 -byte screen_idx#3 -byte screen_idx#30 -byte screen_idx#31 -byte screen_idx#32 -byte screen_idx#33 -byte screen_idx#34 -byte screen_idx#35 -byte screen_idx#36 -byte screen_idx#37 -byte screen_idx#38 -byte screen_idx#39 -byte screen_idx#4 -byte screen_idx#40 -byte screen_idx#41 -byte screen_idx#42 -byte screen_idx#43 -byte screen_idx#44 -byte screen_idx#45 -byte screen_idx#46 -byte screen_idx#47 -byte screen_idx#48 -byte screen_idx#49 -byte screen_idx#5 -byte screen_idx#50 -byte screen_idx#51 -byte screen_idx#52 -byte screen_idx#53 -byte screen_idx#54 -byte screen_idx#55 -byte screen_idx#56 -byte screen_idx#57 -byte screen_idx#58 -byte screen_idx#59 -byte screen_idx#6 -byte screen_idx#60 -byte screen_idx#61 -byte screen_idx#62 -byte screen_idx#63 -byte screen_idx#64 -byte screen_idx#65 -byte screen_idx#66 -byte screen_idx#67 -byte screen_idx#68 -byte screen_idx#7 -byte screen_idx#8 -byte screen_idx#9 -byte* screen_line -byte* screen_line#0 -byte* screen_line#1 -byte* screen_line#10 -byte* screen_line#11 -byte* screen_line#12 -byte* screen_line#13 -byte* screen_line#14 -byte* screen_line#15 -byte* screen_line#16 -byte* screen_line#17 -byte* screen_line#18 -byte* screen_line#19 -byte* screen_line#2 -byte* screen_line#20 -byte* screen_line#21 -byte* screen_line#22 -byte* screen_line#23 -byte* screen_line#24 -byte* screen_line#25 -byte* screen_line#26 -byte* screen_line#27 -byte* screen_line#28 -byte* screen_line#29 -byte* screen_line#3 -byte* screen_line#30 -byte* screen_line#31 -byte* screen_line#32 -byte* screen_line#33 -byte* screen_line#34 -byte* screen_line#35 -byte* screen_line#36 -byte* screen_line#37 -byte* screen_line#38 -byte* screen_line#39 -byte* screen_line#4 -byte* screen_line#40 -byte* screen_line#41 -byte* screen_line#42 -byte* screen_line#43 -byte* screen_line#44 -byte* screen_line#45 -byte* screen_line#46 -byte* screen_line#47 -byte* screen_line#48 -byte* screen_line#49 -byte* screen_line#5 -byte* screen_line#50 -byte* screen_line#51 -byte* screen_line#52 -byte* screen_line#53 -byte* screen_line#54 -byte* screen_line#55 -byte* screen_line#56 -byte* screen_line#57 -byte* screen_line#58 -byte* screen_line#59 -byte* screen_line#6 -byte* screen_line#60 -byte* screen_line#61 -byte* screen_line#62 -byte* screen_line#63 -byte* screen_line#64 -byte* screen_line#65 -byte* screen_line#66 -byte* screen_line#67 -byte* screen_line#68 -byte* screen_line#7 -byte* screen_line#8 -byte* screen_line#9 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +char *print_str::str#7 +char *print_str::str#8 +void print_uchar(char c) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::c +char print_uchar::c#0 +char print_uchar::c#1 +char print_uchar::c#2 +void print_uint(unsigned int i) +char print_uint::$0 +char print_uint::$1 +number print_uint::$10 +char print_uint::$3 +number print_uint::$4 +char print_uint::$6 +char print_uint::$7 +char print_uint::$9 +unsigned int print_uint::i +unsigned int print_uint::i#0 +unsigned int print_uint::i#1 +unsigned int print_uint::i#2 +unsigned int print_uint::i#3 +unsigned int print_uint::i#4 +unsigned int print_uint::i#5 +unsigned int print_uint::i#6 +char screen_idx +char screen_idx#0 +char screen_idx#1 +char screen_idx#10 +char screen_idx#11 +char screen_idx#12 +char screen_idx#13 +char screen_idx#14 +char screen_idx#15 +char screen_idx#16 +char screen_idx#17 +char screen_idx#18 +char screen_idx#19 +char screen_idx#2 +char screen_idx#20 +char screen_idx#21 +char screen_idx#22 +char screen_idx#23 +char screen_idx#24 +char screen_idx#25 +char screen_idx#26 +char screen_idx#27 +char screen_idx#28 +char screen_idx#29 +char screen_idx#3 +char screen_idx#30 +char screen_idx#31 +char screen_idx#32 +char screen_idx#33 +char screen_idx#34 +char screen_idx#35 +char screen_idx#36 +char screen_idx#37 +char screen_idx#38 +char screen_idx#39 +char screen_idx#4 +char screen_idx#40 +char screen_idx#41 +char screen_idx#42 +char screen_idx#43 +char screen_idx#44 +char screen_idx#45 +char screen_idx#46 +char screen_idx#47 +char screen_idx#48 +char screen_idx#49 +char screen_idx#5 +char screen_idx#50 +char screen_idx#51 +char screen_idx#52 +char screen_idx#53 +char screen_idx#54 +char screen_idx#55 +char screen_idx#56 +char screen_idx#57 +char screen_idx#58 +char screen_idx#59 +char screen_idx#6 +char screen_idx#60 +char screen_idx#61 +char screen_idx#62 +char screen_idx#63 +char screen_idx#64 +char screen_idx#65 +char screen_idx#66 +char screen_idx#67 +char screen_idx#68 +char screen_idx#7 +char screen_idx#8 +char screen_idx#9 +char *screen_line +char *screen_line#0 +char *screen_line#1 +char *screen_line#10 +char *screen_line#11 +char *screen_line#12 +char *screen_line#13 +char *screen_line#14 +char *screen_line#15 +char *screen_line#16 +char *screen_line#17 +char *screen_line#18 +char *screen_line#19 +char *screen_line#2 +char *screen_line#20 +char *screen_line#21 +char *screen_line#22 +char *screen_line#23 +char *screen_line#24 +char *screen_line#25 +char *screen_line#26 +char *screen_line#27 +char *screen_line#28 +char *screen_line#29 +char *screen_line#3 +char *screen_line#30 +char *screen_line#31 +char *screen_line#32 +char *screen_line#33 +char *screen_line#34 +char *screen_line#35 +char *screen_line#36 +char *screen_line#37 +char *screen_line#38 +char *screen_line#39 +char *screen_line#4 +char *screen_line#40 +char *screen_line#41 +char *screen_line#42 +char *screen_line#43 +char *screen_line#44 +char *screen_line#45 +char *screen_line#46 +char *screen_line#47 +char *screen_line#48 +char *screen_line#49 +char *screen_line#5 +char *screen_line#50 +char *screen_line#51 +char *screen_line#52 +char *screen_line#53 +char *screen_line#54 +char *screen_line#55 +char *screen_line#56 +char *screen_line#57 +char *screen_line#58 +char *screen_line#59 +char *screen_line#6 +char *screen_line#60 +char *screen_line#61 +char *screen_line#62 +char *screen_line#63 +char *screen_line#64 +char *screen_line#65 +char *screen_line#66 +char *screen_line#67 +char *screen_line#68 +char *screen_line#7 +char *screen_line#8 +char *screen_line#9 Adding number conversion cast (unumber) 4 in print_uint::$1 = print_uint::$0 >> 4 Adding number conversion cast (unumber) $f in print_uint::$4 = print_uint::$3 & $f @@ -592,7 +592,7 @@ Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::st Adding number conversion cast (unumber) $28 in print_char::$0 = screen_idx#23 == $28 Adding number conversion cast (unumber) $28 in screen_line#25 = screen_line#56 + $28 Adding number conversion cast (unumber) 0 in screen_idx#26 = 0 -Adding number conversion cast (unumber) $28*$a in screen_line#27 = (byte*)$400+$28*$a +Adding number conversion cast (unumber) $28*$a in screen_line#27 = (char *)$400+$28*$a Successful SSA optimization PassNAddNumberTypeConversions Inlining cast screen_idx#26 = (unumber)0 Successful SSA optimization Pass2InlineCast @@ -606,22 +606,22 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uint::$4 = print_uint::$3 & $f -Inferred type updated to byte in print_uint::$10 = print_uint::$9 & $f -Inferred type updated to byte in print_uchar::$2 = print_uchar::c#2 & $f +Inferred type updated to char in print_uint::$4 = print_uint::$3 & $f +Inferred type updated to char in print_uint::$10 = print_uint::$9 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::c#2 & $f Inversing boolean not [139] print_char::$1 = screen_idx#23 != $28 from [138] print_char::$0 = screen_idx#23 == $28 Successful SSA optimization Pass2UnaryNotSimplification Alias screen_idx#0 = screen_idx#31 @@ -739,13 +739,13 @@ Constant print_str::str#1 = print_circle::str1 Constant print_str::str#2 = print_circle::str2 Constant print_str::str#3 = print_circle::str3 Constant screen_idx#26 = 0 -Constant screen_line#27 = (byte*) 1024+(word)$28*$a +Constant screen_line#27 = (char *) 1024+(unsigned int)$28*$a Constant screen_idx#28 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (word*)&circle in [1] print_circle::c_radius#0 = *((word*)&circle+OFFSET_STRUCT_CIRCLE_RADIUS) -Simplifying expression containing zero (word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER in [2] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (word*)&c2 in [9] print_circle::c_radius#1 = *((word*)&c2+OFFSET_STRUCT_CIRCLE_RADIUS) -Simplifying expression containing zero (word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER in [10] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (unsigned int *)&circle in [1] print_circle::c_radius#0 = *((unsigned int *)&circle+OFFSET_STRUCT_CIRCLE_RADIUS) +Simplifying expression containing zero (unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER in [2] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (unsigned int *)&c2 in [9] print_circle::c_radius#1 = *((unsigned int *)&c2+OFFSET_STRUCT_CIRCLE_RADIUS) +Simplifying expression containing zero (unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER in [10] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_X) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_CIRCLE_RADIUS Eliminating unused constant OFFSET_STRUCT_POINT_X @@ -770,12 +770,12 @@ Constant inlined screen_idx#28 = 0 Constant inlined print_str::str#2 = print_circle::str2 Constant inlined print_str::str#1 = print_circle::str1 Constant inlined screen_idx#26 = 0 -Constant inlined screen_line#27 = (byte*) 1024+(word)$28*$a +Constant inlined screen_line#27 = (char *) 1024+(unsigned int)$28*$a Successful SSA optimization Pass2ConstantInlining Identical Phi Values screen_idx#61 0 Successful SSA optimization Pass2IdenticalPhiElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_char::@3(between print_char and print_char::@return) Adding NOP phi() at start of main::@3 @@ -859,63 +859,63 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] print_circle::c_radius#0 = *((word*)&circle) - [1] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER) - [2] print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) - [3] print_circle::c_color#0 = *((byte*)&circle+OFFSET_STRUCT_CIRCLE_COLOR) - [4] call print_circle + [0] print_circle::c_radius#0 = *((unsigned int *)&circle) + [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER) + [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) + [3] print_circle::c_color#0 = *((char *)&circle+OFFSET_STRUCT_CIRCLE_COLOR) + [4] call print_circle to:main::@1 main::@1: scope:[main] from main [5] phi() - [6] call print_ln + [6] call print_ln to:main::@2 main::@2: scope:[main] from main::@1 - [7] print_circle::c_radius#1 = *((word*)&c2) - [8] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER) - [9] print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) - [10] print_circle::c_color#1 = *((byte*)&c2+OFFSET_STRUCT_CIRCLE_COLOR) - [11] call print_circle + [7] print_circle::c_radius#1 = *((unsigned int *)&c2) + [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER) + [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) + [10] print_circle::c_color#1 = *((char *)&c2+OFFSET_STRUCT_CIRCLE_COLOR) + [11] call print_circle to:main::@return main::@return: scope:[main] from main::@2 [12] return to:@return -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) print_circle: scope:[print_circle] from main main::@2 [13] print_circle::c_color#2 = phi( main/print_circle::c_color#0, main::@2/print_circle::c_color#1 ) [13] print_circle::c_center_y#2 = phi( main/print_circle::c_center_y#0, main::@2/print_circle::c_center_y#1 ) [13] print_circle::c_center_x#2 = phi( main/print_circle::c_center_x#0, main::@2/print_circle::c_center_x#1 ) [13] print_circle::c_radius#2 = phi( main/print_circle::c_radius#0, main::@2/print_circle::c_radius#1 ) - [13] screen_line#61 = phi( main/(byte*) 1024+(word)$28*$a, main::@2/screen_line#25 ) - [14] call print_str + [13] screen_line#61 = phi( main/(char *) 1024+(unsigned int)$28*$a, main::@2/screen_line#25 ) + [14] call print_str to:print_circle::@1 print_circle::@1: scope:[print_circle] from print_circle [15] print_uint::i#0 = print_circle::c_radius#2 - [16] call print_uint + [16] call print_uint to:print_circle::@2 print_circle::@2: scope:[print_circle] from print_circle::@1 [17] phi() - [18] call print_str + [18] call print_str to:print_circle::@3 print_circle::@3: scope:[print_circle] from print_circle::@2 [19] print_uint::i#1 = print_circle::c_center_x#2 - [20] call print_uint + [20] call print_uint to:print_circle::@4 print_circle::@4: scope:[print_circle] from print_circle::@3 [21] phi() - [22] call print_str + [22] call print_str to:print_circle::@5 print_circle::@5: scope:[print_circle] from print_circle::@4 [23] print_uint::i#2 = print_circle::c_center_y#2 - [24] call print_uint + [24] call print_uint to:print_circle::@6 print_circle::@6: scope:[print_circle] from print_circle::@5 [25] phi() - [26] call print_str + [26] call print_str to:print_circle::@7 print_circle::@7: scope:[print_circle] from print_circle::@6 [27] print_uchar::c#0 = print_circle::c_color#2 - [28] call print_uchar + [28] call print_uchar to:print_circle::@return print_circle::@return: scope:[print_circle] from print_circle::@7 [29] return @@ -930,7 +930,7 @@ print_ln::@return: scope:[print_ln] from print_ln [32] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_circle print_circle::@2 print_circle::@4 print_circle::@6 [33] screen_line#68 = phi( print_circle/screen_line#61, print_circle::@2/screen_line#24, print_circle::@4/screen_line#24, print_circle::@6/screen_line#24 ) [33] screen_idx#68 = phi( print_circle/0, print_circle::@2/screen_idx#25, print_circle::@4/screen_idx#25, print_circle::@6/screen_idx#25 ) @@ -947,58 +947,58 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [37] print_char::c#6 = *print_str::str#5 - [38] call print_char + [38] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [39] print_str::str#4 = ++ print_str::str#5 to:print_str::@1 -void print_uint(word print_uint::i) +void print_uint(unsigned int i) print_uint: scope:[print_uint] from print_circle::@1 print_circle::@3 print_circle::@5 [40] print_uint::i#3 = phi( print_circle::@1/print_uint::i#0, print_circle::@3/print_uint::i#1, print_circle::@5/print_uint::i#2 ) [41] print_uint::$0 = byte1 print_uint::i#3 [42] print_uint::$1 = print_uint::$0 >> 4 [43] print_char::c#0 = HEX[print_uint::$1] - [44] call print_char + [44] call print_char to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [45] print_uint::$3 = byte1 print_uint::i#3 [46] print_uint::$4 = print_uint::$3 & $f [47] print_char::c#1 = HEX[print_uint::$4] - [48] call print_char + [48] call print_char to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 [49] print_uint::$6 = byte0 print_uint::i#3 [50] print_uint::$7 = print_uint::$6 >> 4 [51] print_char::c#2 = HEX[print_uint::$7] - [52] call print_char + [52] call print_char to:print_uint::@3 print_uint::@3: scope:[print_uint] from print_uint::@2 [53] print_uint::$9 = byte0 print_uint::i#3 [54] print_uint::$10 = print_uint::$9 & $f [55] print_char::c#3 = HEX[print_uint::$10] - [56] call print_char + [56] call print_char to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@3 [57] return to:@return -void print_uchar(byte print_uchar::c) +void print_uchar(char c) print_uchar: scope:[print_uchar] from print_circle::@7 [58] print_uchar::$0 = print_uchar::c#0 >> 4 [59] print_char::c#4 = HEX[print_uchar::$0] - [60] call print_char + [60] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [61] print_uchar::$2 = print_uchar::c#0 & $f [62] print_char::c#5 = HEX[print_uchar::$2] - [63] call print_char + [63] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [64] return to:@return -void print_char(byte print_char::c) +void print_char(char c) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_uint print_uint::@1 print_uint::@2 print_uint::@3 [65] screen_idx#54 = phi( print_str::@2/screen_idx#22, print_uchar/screen_idx#22, print_uchar::@1/screen_idx#25, print_uint/screen_idx#22, print_uint::@1/screen_idx#25, print_uint::@2/screen_idx#25, print_uint::@3/screen_idx#25 ) [65] screen_line#53 = phi( print_str::@2/screen_line#22, print_uchar/screen_line#22, print_uchar::@1/screen_line#24, print_uint/screen_line#22, print_uint::@1/screen_line#24, print_uint::@2/screen_line#24, print_uint::@3/screen_line#24 ) @@ -1009,7 +1009,7 @@ print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 p to:print_char::@1 print_char::@1: scope:[print_char] from print_char [69] phi() - [70] call print_ln + [70] call print_ln to:print_char::@return print_char::@return: scope:[print_char] from print_char print_char::@1 [71] screen_line#24 = phi( print_char/screen_line#53, print_char::@1/screen_line#25 ) @@ -1020,77 +1020,77 @@ print_char::@return: scope:[print_char] from print_char print_char::@1 null depth in calling loop Loop head: print_str::@1 tails: print_str::@3 blocks: print_str::@3 print_str::@2 print_str::@1 in scope print_char VARIABLE REGISTER WEIGHTS -struct Circle c2 loadstore = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } -struct Circle circle loadstore = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } +__loadstore struct Circle c2 = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } +__loadstore struct Circle circle = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } void main() -void print_char(byte print_char::c) -byte print_char::c -byte print_char::c#0 202.0 -byte print_char::c#1 202.0 -byte print_char::c#2 202.0 -byte print_char::c#3 202.0 -byte print_char::c#4 202.0 -byte print_char::c#5 202.0 -byte print_char::c#6 2002.0 -byte print_char::c#7 11608.0 -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_char(char c) +char print_char::c +char print_char::c#0 // 202.0 +char print_char::c#1 // 202.0 +char print_char::c#2 // 202.0 +char print_char::c#3 // 202.0 +char print_char::c#4 // 202.0 +char print_char::c#5 // 202.0 +char print_char::c#6 // 2002.0 +char print_char::c#7 // 11608.0 +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) struct Circle print_circle::c struct Point print_circle::c_center -word print_circle::c_center_x -word print_circle::c_center_x#0 1.3333333333333333 -word print_circle::c_center_x#1 1.3333333333333333 -word print_circle::c_center_x#2 2.5 -word print_circle::c_center_y -word print_circle::c_center_y#0 2.0 -word print_circle::c_center_y#1 2.0 -word print_circle::c_center_y#2 1.5 -byte print_circle::c_color -byte print_circle::c_color#0 4.0 -byte print_circle::c_color#1 4.0 -byte print_circle::c_color#2 1.0714285714285714 -word print_circle::c_radius -word print_circle::c_radius#0 1.0 -word print_circle::c_radius#1 1.0 -word print_circle::c_radius#2 7.5 +unsigned int print_circle::c_center_x +unsigned int print_circle::c_center_x#0 // 1.3333333333333333 +unsigned int print_circle::c_center_x#1 // 1.3333333333333333 +unsigned int print_circle::c_center_x#2 // 2.5 +unsigned int print_circle::c_center_y +unsigned int print_circle::c_center_y#0 // 2.0 +unsigned int print_circle::c_center_y#1 // 2.0 +unsigned int print_circle::c_center_y#2 // 1.5 +char print_circle::c_color +char print_circle::c_color#0 // 4.0 +char print_circle::c_color#1 // 4.0 +char print_circle::c_color#2 // 1.0714285714285714 +unsigned int print_circle::c_radius +unsigned int print_circle::c_radius#0 // 1.0 +unsigned int print_circle::c_radius#1 // 1.0 +unsigned int print_circle::c_radius#2 // 7.5 void print_ln() -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#4 2002.0 -byte* print_str::str#5 1026.25 -byte* print_str::str#8 101.0 -void print_uchar(byte print_uchar::c) -byte~ print_uchar::$0 202.0 -byte~ print_uchar::$2 202.0 -byte print_uchar::c -byte print_uchar::c#0 53.25 -void print_uint(word print_uint::i) -byte~ print_uint::$0 202.0 -byte~ print_uint::$1 202.0 -byte~ print_uint::$10 202.0 -byte~ print_uint::$3 202.0 -byte~ print_uint::$4 202.0 -byte~ print_uint::$6 202.0 -byte~ print_uint::$7 202.0 -byte~ print_uint::$9 202.0 -word print_uint::i -word print_uint::i#0 22.0 -word print_uint::i#1 22.0 -word print_uint::i#2 22.0 -word print_uint::i#3 33.61538461538461 -byte screen_idx -byte screen_idx#22 128.05555555555557 -byte screen_idx#23 15001.5 -byte screen_idx#25 423.66666666666663 -byte screen_idx#54 10804.5 -byte screen_idx#68 134.0 -byte* screen_line -byte* screen_line#22 128.05555555555557 -byte* screen_line#24 649.7575757575758 -byte* screen_line#25 13750.5 -byte* screen_line#53 6321.999999999999 -byte* screen_line#56 110004.0 -byte* screen_line#61 13.0 -byte* screen_line#68 145.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#4 // 2002.0 +char *print_str::str#5 // 1026.25 +char *print_str::str#8 // 101.0 +void print_uchar(char c) +char print_uchar::$0 // 202.0 +char print_uchar::$2 // 202.0 +char print_uchar::c +char print_uchar::c#0 // 53.25 +void print_uint(unsigned int i) +char print_uint::$0 // 202.0 +char print_uint::$1 // 202.0 +char print_uint::$10 // 202.0 +char print_uint::$3 // 202.0 +char print_uint::$4 // 202.0 +char print_uint::$6 // 202.0 +char print_uint::$7 // 202.0 +char print_uint::$9 // 202.0 +unsigned int print_uint::i +unsigned int print_uint::i#0 // 22.0 +unsigned int print_uint::i#1 // 22.0 +unsigned int print_uint::i#2 // 22.0 +unsigned int print_uint::i#3 // 33.61538461538461 +char screen_idx +char screen_idx#22 // 128.05555555555557 +char screen_idx#23 // 15001.5 +char screen_idx#25 // 423.66666666666663 +char screen_idx#54 // 10804.5 +char screen_idx#68 // 134.0 +char *screen_line +char *screen_line#22 // 128.05555555555557 +char *screen_line#24 // 649.7575757575758 +char *screen_line#25 // 13750.5 +char *screen_line#53 // 6321.999999999999 +char *screen_line#56 // 110004.0 +char *screen_line#61 // 13.0 +char *screen_line#68 // 145.0 Initial phi equivalence classes [ print_circle::c_radius#2 print_circle::c_radius#0 print_circle::c_radius#1 ] @@ -1161,12 +1161,12 @@ Allocated zp[1]:27 [ print_uchar::$2 ] Allocated mem[7] [ circle ] Allocated mem[7] [ c2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] print_circle::c_radius#0 = *((word*)&circle) [ print_circle::c_radius#0 circle c2 ] ( [ print_circle::c_radius#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [1] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [2] print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [7] print_circle::c_radius#1 = *((word*)&c2) [ print_circle::c_radius#1 c2 screen_line#25 ] ( [ print_circle::c_radius#1 c2 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [8] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [9] print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [0] print_circle::c_radius#0 = *((unsigned int *)&circle) [ print_circle::c_radius#0 circle c2 ] ( [ print_circle::c_radius#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [7] print_circle::c_radius#1 = *((unsigned int *)&c2) [ print_circle::c_radius#1 c2 screen_line#25 ] ( [ print_circle::c_radius#1 c2 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a Statement [15] print_uint::i#0 = print_circle::c_radius#2 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#0 screen_idx#22 screen_line#22 ] ( print_circle:4 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#0 screen_idx#22 screen_line#22 ] { { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#0 } } print_circle:11 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#0 screen_idx#22 screen_line#22 ] { { screen_line#25 = screen_line#61 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ print_circle::c_color#2 print_circle::c_color#0 print_circle::c_color#1 ] Removing always clobbered register reg byte a as potential for zp[1]:16 [ screen_idx#54 screen_idx#22 screen_idx#68 screen_idx#25 screen_idx#23 ] @@ -1184,12 +1184,12 @@ Statement [58] print_uchar::$0 = print_uchar::c#0 >> 4 [ print_uchar::c#0 screen Statement [61] print_uchar::$2 = print_uchar::c#0 & $f [ screen_line#24 screen_idx#25 print_uchar::$2 ] ( print_circle:4::print_uchar:28 [ c2 screen_line#24 screen_idx#25 print_uchar::$2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 print_uchar::c#0 } { print_char::c#5 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uchar:28 [ screen_line#24 screen_idx#25 print_uchar::$2 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 print_uchar::c#0 } { print_char::c#5 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } ) always clobbers reg byte a Statement [66] screen_line#53[screen_idx#54] = print_char::c#7 [ screen_line#53 screen_idx#54 ] ( print_circle:4::print_str:14::print_char:38 [ c2 print_circle::c_radius#2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { screen_line#61 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_str:14::print_char:38 [ print_circle::c_radius#2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 screen_line#68 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_str:18::print_char:38 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { screen_idx#25 = screen_idx#68 } { screen_line#24 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_str:18::print_char:38 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { screen_idx#25 = screen_idx#68 } { screen_line#24 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_str:22::print_char:38 [ c2 print_circle::c_center_y#2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { screen_idx#25 = screen_idx#68 } { screen_line#24 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_str:22::print_char:38 [ print_circle::c_center_y#2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { screen_idx#25 = screen_idx#68 } { screen_line#24 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_str:26::print_char:38 [ c2 print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { screen_idx#25 = screen_idx#68 } { screen_line#24 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_str:26::print_char:38 [ print_circle::c_color#2 print_str::str#5 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { screen_idx#25 = screen_idx#68 } { screen_line#24 = screen_line#68 } { print_char::c#6 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_uint:16::print_char:44 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#0 } { print_char::c#0 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_uint:16::print_char:44 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#1 } { print_char::c#0 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_uint:20::print_char:44 [ c2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#0 } { print_char::c#0 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_uint:20::print_char:44 [ print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#1 } { print_char::c#0 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_uint:24::print_char:44 [ c2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#0 } { print_char::c#0 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_uint:24::print_char:44 [ print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#1 } { print_char::c#0 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_uint:16::print_char:48 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#0 } { print_char::c#1 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:16::print_char:48 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#1 } { print_char::c#1 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:20::print_char:48 [ c2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#0 } { print_char::c#1 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:20::print_char:48 [ print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#1 } { print_char::c#1 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:24::print_char:48 [ c2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#0 } { print_char::c#1 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:24::print_char:48 [ print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#1 } { print_char::c#1 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:16::print_char:52 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#0 } { print_char::c#2 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:16::print_char:52 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#1 } { print_char::c#2 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:20::print_char:52 [ c2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#0 } { print_char::c#2 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:20::print_char:52 [ print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#1 } { print_char::c#2 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:24::print_char:52 [ c2 print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#0 } { print_char::c#2 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:24::print_char:52 [ print_circle::c_color#2 print_uint::i#3 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#1 } { print_char::c#2 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:16::print_char:56 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 screen_line#53 screen_idx#54 ] { { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#0 } { print_char::c#3 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:16::print_char:56 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#1 } { print_char::c#3 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:20::print_char:56 [ c2 print_circle::c_center_y#2 print_circle::c_color#2 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#0 } { print_char::c#3 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:20::print_char:56 [ print_circle::c_center_y#2 print_circle::c_color#2 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#1 } { print_char::c#3 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uint:24::print_char:56 [ c2 print_circle::c_color#2 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#0 } { print_char::c#3 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uint:24::print_char:56 [ print_circle::c_color#2 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#1 } { print_char::c#3 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:4::print_uchar:28::print_char:60 [ c2 print_uchar::c#0 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 print_uchar::c#0 } { print_char::c#4 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:11::print_uchar:28::print_char:60 [ print_uchar::c#0 screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 print_uchar::c#0 } { print_char::c#4 = print_char::c#7 } { screen_line#22 = screen_line#53 } { screen_idx#22 = screen_idx#54 } } print_circle:4::print_uchar:28::print_char:63 [ c2 screen_line#53 screen_idx#54 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 print_uchar::c#0 } { print_char::c#5 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } print_circle:11::print_uchar:28::print_char:63 [ screen_line#53 screen_idx#54 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 print_uchar::c#0 } { print_char::c#5 = print_char::c#7 } { screen_line#24 = screen_line#53 } { screen_idx#25 = screen_idx#54 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:17 [ print_uchar::c#0 ] -Statement [0] print_circle::c_radius#0 = *((word*)&circle) [ print_circle::c_radius#0 circle c2 ] ( [ print_circle::c_radius#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [1] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [2] print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [7] print_circle::c_radius#1 = *((word*)&c2) [ print_circle::c_radius#1 c2 screen_line#25 ] ( [ print_circle::c_radius#1 c2 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [8] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a -Statement [9] print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [0] print_circle::c_radius#0 = *((unsigned int *)&circle) [ print_circle::c_radius#0 circle c2 ] ( [ print_circle::c_radius#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] ( [ print_circle::c_radius#0 print_circle::c_center_x#0 circle print_circle::c_center_y#0 c2 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [7] print_circle::c_radius#1 = *((unsigned int *)&c2) [ print_circle::c_radius#1 c2 screen_line#25 ] ( [ print_circle::c_radius#1 c2 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a +Statement [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] ( [ print_circle::c_radius#1 c2 print_circle::c_center_x#1 print_circle::c_center_y#1 screen_line#25 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } } ) always clobbers reg byte a Statement [15] print_uint::i#0 = print_circle::c_radius#2 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#0 screen_idx#22 screen_line#22 ] ( print_circle:4 [ c2 print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#0 screen_idx#22 screen_line#22 ] { { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#0 } } print_circle:11 [ print_circle::c_center_x#2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#0 screen_idx#22 screen_line#22 ] { { screen_line#25 = screen_line#61 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#0 = print_uint::i#3 print_circle::c_radius#2 print_circle::c_radius#1 } } ) always clobbers reg byte a Statement [19] print_uint::i#1 = print_circle::c_center_x#2 [ print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#1 screen_idx#22 screen_line#22 ] ( print_circle:4 [ c2 print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#1 screen_idx#22 screen_line#22 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_y#0 = print_circle::c_center_y#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#0 } } print_circle:11 [ print_circle::c_center_y#2 print_circle::c_color#2 print_uint::i#1 screen_idx#22 screen_line#22 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_y#1 = print_circle::c_center_y#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#1 = print_uint::i#3 print_circle::c_center_x#2 print_circle::c_center_x#1 } } ) always clobbers reg byte a Statement [23] print_uint::i#2 = print_circle::c_center_y#2 [ print_circle::c_color#2 print_uint::i#2 screen_idx#22 screen_line#22 ] ( print_circle:4 [ c2 print_circle::c_color#2 print_uint::i#2 screen_idx#22 screen_line#22 ] { { print_circle::c_radius#0 = print_circle::c_radius#2 } { print_circle::c_center_x#0 = print_circle::c_center_x#2 } { print_circle::c_color#0 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#0 } } print_circle:11 [ print_circle::c_color#2 print_uint::i#2 screen_idx#22 screen_line#22 ] { { screen_line#25 = screen_line#61 } { print_circle::c_radius#1 = print_circle::c_radius#2 } { print_circle::c_center_x#1 = print_circle::c_center_x#2 } { print_circle::c_color#1 = print_circle::c_color#2 } { print_uint::i#2 = print_uint::i#3 print_circle::c_center_y#2 print_circle::c_center_y#1 } } ) always clobbers reg byte a @@ -1286,32 +1286,32 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] print_circle::c_radius#0 = *((word*)&circle) -- vwuz1=_deref_pwuc1 + // [0] print_circle::c_radius#0 = *((unsigned int *)&circle) -- vwuz1=_deref_pwuc1 lda circle sta.z print_circle.c_radius lda circle+1 sta.z print_circle.c_radius+1 - // [1] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 + // [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 lda circle+OFFSET_STRUCT_CIRCLE_CENTER sta.z print_circle.c_center_x lda circle+OFFSET_STRUCT_CIRCLE_CENTER+1 sta.z print_circle.c_center_x+1 - // [2] print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 + // [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 lda circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y sta.z print_circle.c_center_y lda circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y+1 sta.z print_circle.c_center_y+1 - // [3] print_circle::c_color#0 = *((byte*)&circle+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 + // [3] print_circle::c_color#0 = *((char *)&circle+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 lda circle+OFFSET_STRUCT_CIRCLE_COLOR sta.z print_circle.c_color - // [4] call print_circle + // [4] call print_circle // [13] phi from main to print_circle [phi:main->print_circle] print_circle_from_main: // [13] phi print_circle::c_color#2 = print_circle::c_color#0 [phi:main->print_circle#0] -- register_copy // [13] phi print_circle::c_center_y#2 = print_circle::c_center_y#0 [phi:main->print_circle#1] -- register_copy // [13] phi print_circle::c_center_x#2 = print_circle::c_center_x#0 [phi:main->print_circle#2] -- register_copy // [13] phi print_circle::c_radius#2 = print_circle::c_radius#0 [phi:main->print_circle#3] -- register_copy - // [13] phi screen_line#61 = (byte*) 1024+(word)$28*$a [phi:main->print_circle#4] -- pbuz1=pbuc1 + // [13] phi screen_line#61 = (char *) 1024+(unsigned int)$28*$a [phi:main->print_circle#4] -- pbuz1=pbuc1 lda #<$400+$28*$a sta.z screen_line lda #>$400+$28*$a @@ -1322,7 +1322,7 @@ main: { jmp __b1 // main::@1 __b1: - // [6] call print_ln + // [6] call print_ln // [30] phi from main::@1 to print_ln [phi:main::@1->print_ln] print_ln_from___b1: // [30] phi screen_line#56 = screen_line#24 [phi:main::@1->print_ln#0] -- register_copy @@ -1330,25 +1330,25 @@ main: { jmp __b2 // main::@2 __b2: - // [7] print_circle::c_radius#1 = *((word*)&c2) -- vwuz1=_deref_pwuc1 + // [7] print_circle::c_radius#1 = *((unsigned int *)&c2) -- vwuz1=_deref_pwuc1 lda c2 sta.z print_circle.c_radius lda c2+1 sta.z print_circle.c_radius+1 - // [8] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 + // [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 lda c2+OFFSET_STRUCT_CIRCLE_CENTER sta.z print_circle.c_center_x lda c2+OFFSET_STRUCT_CIRCLE_CENTER+1 sta.z print_circle.c_center_x+1 - // [9] print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 + // [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 lda c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y sta.z print_circle.c_center_y lda c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y+1 sta.z print_circle.c_center_y+1 - // [10] print_circle::c_color#1 = *((byte*)&c2+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 + // [10] print_circle::c_color#1 = *((char *)&c2+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 lda c2+OFFSET_STRUCT_CIRCLE_COLOR sta.z print_circle.c_color - // [11] call print_circle + // [11] call print_circle // [13] phi from main::@2 to print_circle [phi:main::@2->print_circle] print_circle_from___b2: // [13] phi print_circle::c_color#2 = print_circle::c_color#1 [phi:main::@2->print_circle#0] -- register_copy @@ -1364,13 +1364,13 @@ main: { rts } // print_circle -// print_circle(word zp(2) c_radius, word zp(4) c_center_x, word zp(6) c_center_y, byte zp(8) c_color) +// void print_circle(__zp(2) unsigned int c_radius, __zp(4) unsigned int c_center_x, __zp(6) unsigned int c_center_y, __zp(8) char c_color) print_circle: { .label c_radius = 2 .label c_center_x = 4 .label c_center_y = 6 .label c_color = 8 - // [14] call print_str + // [14] call print_str // [33] phi from print_circle to print_str [phi:print_circle->print_str] print_str_from_print_circle: // [33] phi screen_line#68 = screen_line#61 [phi:print_circle->print_str#0] -- register_copy @@ -1386,7 +1386,7 @@ print_circle: { // print_circle::@1 __b1: // [15] print_uint::i#0 = print_circle::c_radius#2 - // [16] call print_uint + // [16] call print_uint // [40] phi from print_circle::@1 to print_uint [phi:print_circle::@1->print_uint] print_uint_from___b1: // [40] phi print_uint::i#3 = print_uint::i#0 [phi:print_circle::@1->print_uint#0] -- register_copy @@ -1396,7 +1396,7 @@ print_circle: { jmp __b2 // print_circle::@2 __b2: - // [18] call print_str + // [18] call print_str // [33] phi from print_circle::@2 to print_str [phi:print_circle::@2->print_str] print_str_from___b2: // [33] phi screen_line#68 = screen_line#24 [phi:print_circle::@2->print_str#0] -- register_copy @@ -1415,7 +1415,7 @@ print_circle: { sta.z print_uint.i lda.z c_center_x+1 sta.z print_uint.i+1 - // [20] call print_uint + // [20] call print_uint // [40] phi from print_circle::@3 to print_uint [phi:print_circle::@3->print_uint] print_uint_from___b3: // [40] phi print_uint::i#3 = print_uint::i#1 [phi:print_circle::@3->print_uint#0] -- register_copy @@ -1425,7 +1425,7 @@ print_circle: { jmp __b4 // print_circle::@4 __b4: - // [22] call print_str + // [22] call print_str // [33] phi from print_circle::@4 to print_str [phi:print_circle::@4->print_str] print_str_from___b4: // [33] phi screen_line#68 = screen_line#24 [phi:print_circle::@4->print_str#0] -- register_copy @@ -1444,7 +1444,7 @@ print_circle: { sta.z print_uint.i lda.z c_center_y+1 sta.z print_uint.i+1 - // [24] call print_uint + // [24] call print_uint // [40] phi from print_circle::@5 to print_uint [phi:print_circle::@5->print_uint] print_uint_from___b5: // [40] phi print_uint::i#3 = print_uint::i#2 [phi:print_circle::@5->print_uint#0] -- register_copy @@ -1454,7 +1454,7 @@ print_circle: { jmp __b6 // print_circle::@6 __b6: - // [26] call print_str + // [26] call print_str // [33] phi from print_circle::@6 to print_str [phi:print_circle::@6->print_str] print_str_from___b6: // [33] phi screen_line#68 = screen_line#24 [phi:print_circle::@6->print_str#0] -- register_copy @@ -1469,7 +1469,7 @@ print_circle: { // print_circle::@7 __b7: // [27] print_uchar::c#0 = print_circle::c_color#2 - // [28] call print_uchar + // [28] call print_uchar jsr print_uchar jmp __breturn // print_circle::@return @@ -1504,7 +1504,7 @@ print_ln: { rts } // print_str -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 // [34] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -1531,7 +1531,7 @@ print_str: { // [37] print_char::c#6 = *print_str::str#5 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [38] call print_char + // [38] call print_char // [65] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [65] phi screen_idx#54 = screen_idx#22 [phi:print_str::@2->print_char#0] -- register_copy @@ -1549,7 +1549,7 @@ print_str: { jmp __b1_from___b3 } // print_uint -// print_uint(word zp(2) i) +// void print_uint(__zp(2) unsigned int i) print_uint: { .label i = 2 // [41] print_uint::$0 = byte1 print_uint::i#3 -- vbuaa=_byte1_vwuz1 @@ -1562,7 +1562,7 @@ print_uint: { // [43] print_char::c#0 = HEX[print_uint::$1] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [44] call print_char + // [44] call print_char // [65] phi from print_uint to print_char [phi:print_uint->print_char] print_char_from_print_uint: // [65] phi screen_idx#54 = screen_idx#22 [phi:print_uint->print_char#0] -- register_copy @@ -1579,7 +1579,7 @@ print_uint: { // [47] print_char::c#1 = HEX[print_uint::$4] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [48] call print_char + // [48] call print_char // [65] phi from print_uint::@1 to print_char [phi:print_uint::@1->print_char] print_char_from___b1: // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uint::@1->print_char#0] -- register_copy @@ -1599,7 +1599,7 @@ print_uint: { // [51] print_char::c#2 = HEX[print_uint::$7] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [52] call print_char + // [52] call print_char // [65] phi from print_uint::@2 to print_char [phi:print_uint::@2->print_char] print_char_from___b2: // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uint::@2->print_char#0] -- register_copy @@ -1616,7 +1616,7 @@ print_uint: { // [55] print_char::c#3 = HEX[print_uint::$10] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [56] call print_char + // [56] call print_char // [65] phi from print_uint::@3 to print_char [phi:print_uint::@3->print_char] print_char_from___b3: // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uint::@3->print_char#0] -- register_copy @@ -1630,7 +1630,7 @@ print_uint: { rts } // print_uchar -// print_uchar(byte zp(8) c) +// void print_uchar(__zp(8) char c) print_uchar: { .label c = 8 // [58] print_uchar::$0 = print_uchar::c#0 >> 4 -- vbuaa=vbuz1_ror_4 @@ -1642,7 +1642,7 @@ print_uchar: { // [59] print_char::c#4 = HEX[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [60] call print_char + // [60] call print_char // [65] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: // [65] phi screen_idx#54 = screen_idx#22 [phi:print_uchar->print_char#0] -- register_copy @@ -1658,7 +1658,7 @@ print_uchar: { // [62] print_char::c#5 = HEX[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [63] call print_char + // [63] call print_char // [65] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1672,7 +1672,7 @@ print_uchar: { rts } // print_char -// print_char(byte register(A) c) +// void print_char(__register(A) char c) print_char: { // [66] screen_line#53[screen_idx#54] = print_char::c#7 -- pbuz1_derefidx_vbuxx=vbuaa stx.z $ff @@ -1688,7 +1688,7 @@ print_char: { jmp __b1 // print_char::@1 __b1: - // [70] call print_ln + // [70] call print_ln // [30] phi from print_char::@1 to print_ln [phi:print_char::@1->print_ln] print_ln_from___b1: // [30] phi screen_line#56 = screen_line#53 [phi:print_char::@1->print_ln#0] -- register_copy @@ -1799,87 +1799,87 @@ Replacing jump to rts with rts in jmp __breturn Succesful ASM optimization Pass5DoubleJumpElimination FINAL SYMBOL TABLE -constant byte COL_RED = 2 -constant byte COL_WHITE = 1 -constant byte* HEX[] = "0123456789abcdef" -constant byte OFFSET_STRUCT_CIRCLE_CENTER = 2 -constant byte OFFSET_STRUCT_CIRCLE_COLOR = 6 -constant byte OFFSET_STRUCT_POINT_Y = 2 -struct Circle c2 loadstore mem[7] = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } -struct Circle circle loadstore mem[7] = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } +__constant char COL_RED = 2 +__constant char COL_WHITE = 1 +__constant char HEX[] = "0123456789abcdef" +__constant char OFFSET_STRUCT_CIRCLE_CENTER = 2 +__constant char OFFSET_STRUCT_CIRCLE_COLOR = 6 +__constant char OFFSET_STRUCT_POINT_Y = 2 +__loadstore struct Circle c2 = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } // mem[7] +__loadstore struct Circle circle = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } // mem[7] void main() -void print_char(byte print_char::c) -byte print_char::c -byte print_char::c#0 reg byte a 202.0 -byte print_char::c#1 reg byte a 202.0 -byte print_char::c#2 reg byte a 202.0 -byte print_char::c#3 reg byte a 202.0 -byte print_char::c#4 reg byte a 202.0 -byte print_char::c#5 reg byte a 202.0 -byte print_char::c#6 reg byte a 2002.0 -byte print_char::c#7 reg byte a 11608.0 -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_char(char c) +char print_char::c +char print_char::c#0 // reg byte a 202.0 +char print_char::c#1 // reg byte a 202.0 +char print_char::c#2 // reg byte a 202.0 +char print_char::c#3 // reg byte a 202.0 +char print_char::c#4 // reg byte a 202.0 +char print_char::c#5 // reg byte a 202.0 +char print_char::c#6 // reg byte a 2002.0 +char print_char::c#7 // reg byte a 11608.0 +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) struct Circle print_circle::c struct Point print_circle::c_center -word print_circle::c_center_x -word print_circle::c_center_x#0 c_center_x zp[2]:4 1.3333333333333333 -word print_circle::c_center_x#1 c_center_x zp[2]:4 1.3333333333333333 -word print_circle::c_center_x#2 c_center_x zp[2]:4 2.5 -word print_circle::c_center_y -word print_circle::c_center_y#0 c_center_y zp[2]:6 2.0 -word print_circle::c_center_y#1 c_center_y zp[2]:6 2.0 -word print_circle::c_center_y#2 c_center_y zp[2]:6 1.5 -byte print_circle::c_color -byte print_circle::c_color#0 c_color zp[1]:8 4.0 -byte print_circle::c_color#1 c_color zp[1]:8 4.0 -byte print_circle::c_color#2 c_color zp[1]:8 1.0714285714285714 -word print_circle::c_radius -word print_circle::c_radius#0 c_radius zp[2]:2 1.0 -word print_circle::c_radius#1 c_radius zp[2]:2 1.0 -word print_circle::c_radius#2 c_radius zp[2]:2 7.5 -constant byte* print_circle::str[3] = "r:" -constant byte* print_circle::str1[5] = " c:(" -constant byte* print_circle::str2[2] = "," -constant byte* print_circle::str3[3] = ") " +unsigned int print_circle::c_center_x +unsigned int print_circle::c_center_x#0 // c_center_x zp[2]:4 1.3333333333333333 +unsigned int print_circle::c_center_x#1 // c_center_x zp[2]:4 1.3333333333333333 +unsigned int print_circle::c_center_x#2 // c_center_x zp[2]:4 2.5 +unsigned int print_circle::c_center_y +unsigned int print_circle::c_center_y#0 // c_center_y zp[2]:6 2.0 +unsigned int print_circle::c_center_y#1 // c_center_y zp[2]:6 2.0 +unsigned int print_circle::c_center_y#2 // c_center_y zp[2]:6 1.5 +char print_circle::c_color +char print_circle::c_color#0 // c_color zp[1]:8 4.0 +char print_circle::c_color#1 // c_color zp[1]:8 4.0 +char print_circle::c_color#2 // c_color zp[1]:8 1.0714285714285714 +unsigned int print_circle::c_radius +unsigned int print_circle::c_radius#0 // c_radius zp[2]:2 1.0 +unsigned int print_circle::c_radius#1 // c_radius zp[2]:2 1.0 +unsigned int print_circle::c_radius#2 // c_radius zp[2]:2 7.5 +__constant char print_circle::str[3] = "r:" +__constant char print_circle::str1[5] = " c:(" +__constant char print_circle::str2[2] = "," +__constant char print_circle::str3[3] = ") " void print_ln() -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#4 str zp[2]:9 2002.0 -byte* print_str::str#5 str zp[2]:9 1026.25 -byte* print_str::str#8 str zp[2]:9 101.0 -void print_uchar(byte print_uchar::c) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte a 202.0 -byte print_uchar::c -byte print_uchar::c#0 c zp[1]:8 53.25 -void print_uint(word print_uint::i) -byte~ print_uint::$0 reg byte a 202.0 -byte~ print_uint::$1 reg byte a 202.0 -byte~ print_uint::$10 reg byte a 202.0 -byte~ print_uint::$3 reg byte a 202.0 -byte~ print_uint::$4 reg byte a 202.0 -byte~ print_uint::$6 reg byte a 202.0 -byte~ print_uint::$7 reg byte a 202.0 -byte~ print_uint::$9 reg byte a 202.0 -word print_uint::i -word print_uint::i#0 i zp[2]:2 22.0 -word print_uint::i#1 i zp[2]:2 22.0 -word print_uint::i#2 i zp[2]:2 22.0 -word print_uint::i#3 i zp[2]:2 33.61538461538461 -byte screen_idx -byte screen_idx#22 reg byte x 128.05555555555557 -byte screen_idx#23 reg byte x 15001.5 -byte screen_idx#25 reg byte x 423.66666666666663 -byte screen_idx#54 reg byte x 10804.5 -byte screen_idx#68 reg byte x 134.0 -byte* screen_line -byte* screen_line#22 screen_line zp[2]:11 128.05555555555557 -byte* screen_line#24 screen_line zp[2]:11 649.7575757575758 -byte* screen_line#25 screen_line zp[2]:11 13750.5 -byte* screen_line#53 screen_line zp[2]:11 6321.999999999999 -byte* screen_line#56 screen_line zp[2]:11 110004.0 -byte* screen_line#61 screen_line zp[2]:11 13.0 -byte* screen_line#68 screen_line zp[2]:11 145.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#4 // str zp[2]:9 2002.0 +char *print_str::str#5 // str zp[2]:9 1026.25 +char *print_str::str#8 // str zp[2]:9 101.0 +void print_uchar(char c) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte a 202.0 +char print_uchar::c +char print_uchar::c#0 // c zp[1]:8 53.25 +void print_uint(unsigned int i) +char print_uint::$0 // reg byte a 202.0 +char print_uint::$1 // reg byte a 202.0 +char print_uint::$10 // reg byte a 202.0 +char print_uint::$3 // reg byte a 202.0 +char print_uint::$4 // reg byte a 202.0 +char print_uint::$6 // reg byte a 202.0 +char print_uint::$7 // reg byte a 202.0 +char print_uint::$9 // reg byte a 202.0 +unsigned int print_uint::i +unsigned int print_uint::i#0 // i zp[2]:2 22.0 +unsigned int print_uint::i#1 // i zp[2]:2 22.0 +unsigned int print_uint::i#2 // i zp[2]:2 22.0 +unsigned int print_uint::i#3 // i zp[2]:2 33.61538461538461 +char screen_idx +char screen_idx#22 // reg byte x 128.05555555555557 +char screen_idx#23 // reg byte x 15001.5 +char screen_idx#25 // reg byte x 423.66666666666663 +char screen_idx#54 // reg byte x 10804.5 +char screen_idx#68 // reg byte x 134.0 +char *screen_line +char *screen_line#22 // screen_line zp[2]:11 128.05555555555557 +char *screen_line#24 // screen_line zp[2]:11 649.7575757575758 +char *screen_line#25 // screen_line zp[2]:11 13750.5 +char *screen_line#53 // screen_line zp[2]:11 6321.999999999999 +char *screen_line#56 // screen_line zp[2]:11 110004.0 +char *screen_line#61 // screen_line zp[2]:11 13.0 +char *screen_line#68 // screen_line zp[2]:11 145.0 zp[2]:2 [ print_circle::c_radius#2 print_circle::c_radius#0 print_circle::c_radius#1 print_uint::i#3 print_uint::i#0 print_uint::i#1 print_uint::i#2 ] zp[2]:4 [ print_circle::c_center_x#2 print_circle::c_center_x#0 print_circle::c_center_x#1 ] @@ -1928,31 +1928,31 @@ Score: 807 // main main: { // print_circle(circle) - // [0] print_circle::c_radius#0 = *((word*)&circle) -- vwuz1=_deref_pwuc1 + // [0] print_circle::c_radius#0 = *((unsigned int *)&circle) -- vwuz1=_deref_pwuc1 lda circle sta.z print_circle.c_radius lda circle+1 sta.z print_circle.c_radius+1 - // [1] print_circle::c_center_x#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 + // [1] print_circle::c_center_x#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 lda circle+OFFSET_STRUCT_CIRCLE_CENTER sta.z print_circle.c_center_x lda circle+OFFSET_STRUCT_CIRCLE_CENTER+1 sta.z print_circle.c_center_x+1 - // [2] print_circle::c_center_y#0 = *((word*)(struct Point*)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 + // [2] print_circle::c_center_y#0 = *((unsigned int *)(struct Point *)&circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 lda circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y sta.z print_circle.c_center_y lda circle+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y+1 sta.z print_circle.c_center_y+1 - // [3] print_circle::c_color#0 = *((byte*)&circle+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 + // [3] print_circle::c_color#0 = *((char *)&circle+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 lda circle+OFFSET_STRUCT_CIRCLE_COLOR sta.z print_circle.c_color - // [4] call print_circle + // [4] call print_circle // [13] phi from main to print_circle [phi:main->print_circle] // [13] phi print_circle::c_color#2 = print_circle::c_color#0 [phi:main->print_circle#0] -- register_copy // [13] phi print_circle::c_center_y#2 = print_circle::c_center_y#0 [phi:main->print_circle#1] -- register_copy // [13] phi print_circle::c_center_x#2 = print_circle::c_center_x#0 [phi:main->print_circle#2] -- register_copy // [13] phi print_circle::c_radius#2 = print_circle::c_radius#0 [phi:main->print_circle#3] -- register_copy - // [13] phi screen_line#61 = (byte*) 1024+(word)$28*$a [phi:main->print_circle#4] -- pbuz1=pbuc1 + // [13] phi screen_line#61 = (char *) 1024+(unsigned int)$28*$a [phi:main->print_circle#4] -- pbuz1=pbuc1 lda #<$400+$28*$a sta.z screen_line lda #>$400+$28*$a @@ -1961,31 +1961,31 @@ main: { // [5] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_ln() - // [6] call print_ln + // [6] call print_ln // [30] phi from main::@1 to print_ln [phi:main::@1->print_ln] // [30] phi screen_line#56 = screen_line#24 [phi:main::@1->print_ln#0] -- register_copy jsr print_ln // main::@2 // print_circle(c2) - // [7] print_circle::c_radius#1 = *((word*)&c2) -- vwuz1=_deref_pwuc1 + // [7] print_circle::c_radius#1 = *((unsigned int *)&c2) -- vwuz1=_deref_pwuc1 lda c2 sta.z print_circle.c_radius lda c2+1 sta.z print_circle.c_radius+1 - // [8] print_circle::c_center_x#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 + // [8] print_circle::c_center_x#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER) -- vwuz1=_deref_pwuc1 lda c2+OFFSET_STRUCT_CIRCLE_CENTER sta.z print_circle.c_center_x lda c2+OFFSET_STRUCT_CIRCLE_CENTER+1 sta.z print_circle.c_center_x+1 - // [9] print_circle::c_center_y#1 = *((word*)(struct Point*)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 + // [9] print_circle::c_center_y#1 = *((unsigned int *)(struct Point *)&c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y) -- vwuz1=_deref_pwuc1 lda c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y sta.z print_circle.c_center_y lda c2+OFFSET_STRUCT_CIRCLE_CENTER+OFFSET_STRUCT_POINT_Y+1 sta.z print_circle.c_center_y+1 - // [10] print_circle::c_color#1 = *((byte*)&c2+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 + // [10] print_circle::c_color#1 = *((char *)&c2+OFFSET_STRUCT_CIRCLE_COLOR) -- vbuz1=_deref_pbuc1 lda c2+OFFSET_STRUCT_CIRCLE_COLOR sta.z print_circle.c_color - // [11] call print_circle + // [11] call print_circle // [13] phi from main::@2 to print_circle [phi:main::@2->print_circle] // [13] phi print_circle::c_color#2 = print_circle::c_color#1 [phi:main::@2->print_circle#0] -- register_copy // [13] phi print_circle::c_center_y#2 = print_circle::c_center_y#1 [phi:main::@2->print_circle#1] -- register_copy @@ -1999,14 +1999,14 @@ main: { rts } // print_circle -// print_circle(word zp(2) c_radius, word zp(4) c_center_x, word zp(6) c_center_y, byte zp(8) c_color) +// void print_circle(__zp(2) unsigned int c_radius, __zp(4) unsigned int c_center_x, __zp(6) unsigned int c_center_y, __zp(8) char c_color) print_circle: { .label c_radius = 2 .label c_center_x = 4 .label c_center_y = 6 .label c_color = 8 // print_str("r:") - // [14] call print_str + // [14] call print_str // [33] phi from print_circle to print_str [phi:print_circle->print_str] // [33] phi screen_line#68 = screen_line#61 [phi:print_circle->print_str#0] -- register_copy // [33] phi screen_idx#68 = 0 [phi:print_circle->print_str#1] -- vbuxx=vbuc1 @@ -2020,14 +2020,14 @@ print_circle: { // print_circle::@1 // print_uint(c.radius) // [15] print_uint::i#0 = print_circle::c_radius#2 - // [16] call print_uint + // [16] call print_uint // [40] phi from print_circle::@1 to print_uint [phi:print_circle::@1->print_uint] // [40] phi print_uint::i#3 = print_uint::i#0 [phi:print_circle::@1->print_uint#0] -- register_copy jsr print_uint // [17] phi from print_circle::@1 to print_circle::@2 [phi:print_circle::@1->print_circle::@2] // print_circle::@2 // print_str(" c:(") - // [18] call print_str + // [18] call print_str // [33] phi from print_circle::@2 to print_str [phi:print_circle::@2->print_str] // [33] phi screen_line#68 = screen_line#24 [phi:print_circle::@2->print_str#0] -- register_copy // [33] phi screen_idx#68 = screen_idx#25 [phi:print_circle::@2->print_str#1] -- register_copy @@ -2044,14 +2044,14 @@ print_circle: { sta.z print_uint.i lda.z c_center_x+1 sta.z print_uint.i+1 - // [20] call print_uint + // [20] call print_uint // [40] phi from print_circle::@3 to print_uint [phi:print_circle::@3->print_uint] // [40] phi print_uint::i#3 = print_uint::i#1 [phi:print_circle::@3->print_uint#0] -- register_copy jsr print_uint // [21] phi from print_circle::@3 to print_circle::@4 [phi:print_circle::@3->print_circle::@4] // print_circle::@4 // print_str(",") - // [22] call print_str + // [22] call print_str // [33] phi from print_circle::@4 to print_str [phi:print_circle::@4->print_str] // [33] phi screen_line#68 = screen_line#24 [phi:print_circle::@4->print_str#0] -- register_copy // [33] phi screen_idx#68 = screen_idx#25 [phi:print_circle::@4->print_str#1] -- register_copy @@ -2068,14 +2068,14 @@ print_circle: { sta.z print_uint.i lda.z c_center_y+1 sta.z print_uint.i+1 - // [24] call print_uint + // [24] call print_uint // [40] phi from print_circle::@5 to print_uint [phi:print_circle::@5->print_uint] // [40] phi print_uint::i#3 = print_uint::i#2 [phi:print_circle::@5->print_uint#0] -- register_copy jsr print_uint // [25] phi from print_circle::@5 to print_circle::@6 [phi:print_circle::@5->print_circle::@6] // print_circle::@6 // print_str(") ") - // [26] call print_str + // [26] call print_str // [33] phi from print_circle::@6 to print_str [phi:print_circle::@6->print_str] // [33] phi screen_line#68 = screen_line#24 [phi:print_circle::@6->print_str#0] -- register_copy // [33] phi screen_idx#68 = screen_idx#25 [phi:print_circle::@6->print_str#1] -- register_copy @@ -2088,7 +2088,7 @@ print_circle: { // print_circle::@7 // print_uchar(c.color) // [27] print_uchar::c#0 = print_circle::c_color#2 - // [28] call print_uchar + // [28] call print_uchar jsr print_uchar // print_circle::@return // } @@ -2122,7 +2122,7 @@ print_ln: { rts } // print_str -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 // [34] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2147,7 +2147,7 @@ print_str: { // [37] print_char::c#6 = *print_str::str#5 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [38] call print_char + // [38] call print_char // [65] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [65] phi screen_idx#54 = screen_idx#22 [phi:print_str::@2->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#22 [phi:print_str::@2->print_char#1] -- register_copy @@ -2163,7 +2163,7 @@ print_str: { jmp __b1 } // print_uint -// print_uint(word zp(2) i) +// void print_uint(__zp(2) unsigned int i) print_uint: { .label i = 2 // BYTE1(i) @@ -2179,7 +2179,7 @@ print_uint: { // [43] print_char::c#0 = HEX[print_uint::$1] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [44] call print_char + // [44] call print_char // [65] phi from print_uint to print_char [phi:print_uint->print_char] // [65] phi screen_idx#54 = screen_idx#22 [phi:print_uint->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#22 [phi:print_uint->print_char#1] -- register_copy @@ -2196,7 +2196,7 @@ print_uint: { // [47] print_char::c#1 = HEX[print_uint::$4] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [48] call print_char + // [48] call print_char // [65] phi from print_uint::@1 to print_char [phi:print_uint::@1->print_char] // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uint::@1->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#24 [phi:print_uint::@1->print_char#1] -- register_copy @@ -2216,7 +2216,7 @@ print_uint: { // [51] print_char::c#2 = HEX[print_uint::$7] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [52] call print_char + // [52] call print_char // [65] phi from print_uint::@2 to print_char [phi:print_uint::@2->print_char] // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uint::@2->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#24 [phi:print_uint::@2->print_char#1] -- register_copy @@ -2233,7 +2233,7 @@ print_uint: { // [55] print_char::c#3 = HEX[print_uint::$10] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [56] call print_char + // [56] call print_char // [65] phi from print_uint::@3 to print_char [phi:print_uint::@3->print_char] // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uint::@3->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#24 [phi:print_uint::@3->print_char#1] -- register_copy @@ -2245,7 +2245,7 @@ print_uint: { rts } // print_uchar -// print_uchar(byte zp(8) c) +// void print_uchar(__zp(8) char c) print_uchar: { .label c = 8 // c>>4 @@ -2259,7 +2259,7 @@ print_uchar: { // [59] print_char::c#4 = HEX[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [60] call print_char + // [60] call print_char // [65] phi from print_uchar to print_char [phi:print_uchar->print_char] // [65] phi screen_idx#54 = screen_idx#22 [phi:print_uchar->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#22 [phi:print_uchar->print_char#1] -- register_copy @@ -2274,7 +2274,7 @@ print_uchar: { // [62] print_char::c#5 = HEX[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuaa tay lda HEX,y - // [63] call print_char + // [63] call print_char // [65] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [65] phi screen_idx#54 = screen_idx#25 [phi:print_uchar::@1->print_char#0] -- register_copy // [65] phi screen_line#53 = screen_line#24 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2286,7 +2286,7 @@ print_uchar: { rts } // print_char -// print_char(byte register(A) c) +// void print_char(__register(A) char c) print_char: { // screen_line[screen_idx++] = c // [66] screen_line#53[screen_idx#54] = print_char::c#7 -- pbuz1_derefidx_vbuxx=vbuaa @@ -2303,7 +2303,7 @@ print_char: { // [69] phi from print_char to print_char::@1 [phi:print_char->print_char::@1] // print_char::@1 // print_ln() - // [70] call print_ln + // [70] call print_ln // [30] phi from print_char::@1 to print_ln [phi:print_char::@1->print_ln] // [30] phi screen_line#56 = screen_line#53 [phi:print_char::@1->print_ln#0] -- register_copy jsr print_ln diff --git a/src/test/ref/struct-44.sym b/src/test/ref/struct-44.sym index 8471b15de..6093913d9 100644 --- a/src/test/ref/struct-44.sym +++ b/src/test/ref/struct-44.sym @@ -1,84 +1,84 @@ -constant byte COL_RED = 2 -constant byte COL_WHITE = 1 -constant byte* HEX[] = "0123456789abcdef" -constant byte OFFSET_STRUCT_CIRCLE_CENTER = 2 -constant byte OFFSET_STRUCT_CIRCLE_COLOR = 6 -constant byte OFFSET_STRUCT_POINT_Y = 2 -struct Circle c2 loadstore mem[7] = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } -struct Circle circle loadstore mem[7] = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } +__constant char COL_RED = 2 +__constant char COL_WHITE = 1 +__constant char HEX[] = "0123456789abcdef" +__constant char OFFSET_STRUCT_CIRCLE_CENTER = 2 +__constant char OFFSET_STRUCT_CIRCLE_COLOR = 6 +__constant char OFFSET_STRUCT_POINT_Y = 2 +__loadstore struct Circle c2 = { radius: $32, center: { x: $96, y: $15e }, color: COL_WHITE } // mem[7] +__loadstore struct Circle circle = { radius: $64, center: { x: $c8, y: $12c }, color: COL_RED } // mem[7] void main() -void print_char(byte print_char::c) -byte print_char::c -byte print_char::c#0 reg byte a 202.0 -byte print_char::c#1 reg byte a 202.0 -byte print_char::c#2 reg byte a 202.0 -byte print_char::c#3 reg byte a 202.0 -byte print_char::c#4 reg byte a 202.0 -byte print_char::c#5 reg byte a 202.0 -byte print_char::c#6 reg byte a 2002.0 -byte print_char::c#7 reg byte a 11608.0 -void print_circle(word print_circle::c_radius , word print_circle::c_center_x , word print_circle::c_center_y , byte print_circle::c_color) +void print_char(char c) +char print_char::c +char print_char::c#0 // reg byte a 202.0 +char print_char::c#1 // reg byte a 202.0 +char print_char::c#2 // reg byte a 202.0 +char print_char::c#3 // reg byte a 202.0 +char print_char::c#4 // reg byte a 202.0 +char print_char::c#5 // reg byte a 202.0 +char print_char::c#6 // reg byte a 2002.0 +char print_char::c#7 // reg byte a 11608.0 +void print_circle(unsigned int c_radius , unsigned int c_center_x , unsigned int c_center_y , char c_color) struct Circle print_circle::c struct Point print_circle::c_center -word print_circle::c_center_x -word print_circle::c_center_x#0 c_center_x zp[2]:4 1.3333333333333333 -word print_circle::c_center_x#1 c_center_x zp[2]:4 1.3333333333333333 -word print_circle::c_center_x#2 c_center_x zp[2]:4 2.5 -word print_circle::c_center_y -word print_circle::c_center_y#0 c_center_y zp[2]:6 2.0 -word print_circle::c_center_y#1 c_center_y zp[2]:6 2.0 -word print_circle::c_center_y#2 c_center_y zp[2]:6 1.5 -byte print_circle::c_color -byte print_circle::c_color#0 c_color zp[1]:8 4.0 -byte print_circle::c_color#1 c_color zp[1]:8 4.0 -byte print_circle::c_color#2 c_color zp[1]:8 1.0714285714285714 -word print_circle::c_radius -word print_circle::c_radius#0 c_radius zp[2]:2 1.0 -word print_circle::c_radius#1 c_radius zp[2]:2 1.0 -word print_circle::c_radius#2 c_radius zp[2]:2 7.5 -constant byte* print_circle::str[3] = "r:" -constant byte* print_circle::str1[5] = " c:(" -constant byte* print_circle::str2[2] = "," -constant byte* print_circle::str3[3] = ") " +unsigned int print_circle::c_center_x +unsigned int print_circle::c_center_x#0 // c_center_x zp[2]:4 1.3333333333333333 +unsigned int print_circle::c_center_x#1 // c_center_x zp[2]:4 1.3333333333333333 +unsigned int print_circle::c_center_x#2 // c_center_x zp[2]:4 2.5 +unsigned int print_circle::c_center_y +unsigned int print_circle::c_center_y#0 // c_center_y zp[2]:6 2.0 +unsigned int print_circle::c_center_y#1 // c_center_y zp[2]:6 2.0 +unsigned int print_circle::c_center_y#2 // c_center_y zp[2]:6 1.5 +char print_circle::c_color +char print_circle::c_color#0 // c_color zp[1]:8 4.0 +char print_circle::c_color#1 // c_color zp[1]:8 4.0 +char print_circle::c_color#2 // c_color zp[1]:8 1.0714285714285714 +unsigned int print_circle::c_radius +unsigned int print_circle::c_radius#0 // c_radius zp[2]:2 1.0 +unsigned int print_circle::c_radius#1 // c_radius zp[2]:2 1.0 +unsigned int print_circle::c_radius#2 // c_radius zp[2]:2 7.5 +__constant char print_circle::str[3] = "r:" +__constant char print_circle::str1[5] = " c:(" +__constant char print_circle::str2[2] = "," +__constant char print_circle::str3[3] = ") " void print_ln() -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#4 str zp[2]:9 2002.0 -byte* print_str::str#5 str zp[2]:9 1026.25 -byte* print_str::str#8 str zp[2]:9 101.0 -void print_uchar(byte print_uchar::c) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte a 202.0 -byte print_uchar::c -byte print_uchar::c#0 c zp[1]:8 53.25 -void print_uint(word print_uint::i) -byte~ print_uint::$0 reg byte a 202.0 -byte~ print_uint::$1 reg byte a 202.0 -byte~ print_uint::$10 reg byte a 202.0 -byte~ print_uint::$3 reg byte a 202.0 -byte~ print_uint::$4 reg byte a 202.0 -byte~ print_uint::$6 reg byte a 202.0 -byte~ print_uint::$7 reg byte a 202.0 -byte~ print_uint::$9 reg byte a 202.0 -word print_uint::i -word print_uint::i#0 i zp[2]:2 22.0 -word print_uint::i#1 i zp[2]:2 22.0 -word print_uint::i#2 i zp[2]:2 22.0 -word print_uint::i#3 i zp[2]:2 33.61538461538461 -byte screen_idx -byte screen_idx#22 reg byte x 128.05555555555557 -byte screen_idx#23 reg byte x 15001.5 -byte screen_idx#25 reg byte x 423.66666666666663 -byte screen_idx#54 reg byte x 10804.5 -byte screen_idx#68 reg byte x 134.0 -byte* screen_line -byte* screen_line#22 screen_line zp[2]:11 128.05555555555557 -byte* screen_line#24 screen_line zp[2]:11 649.7575757575758 -byte* screen_line#25 screen_line zp[2]:11 13750.5 -byte* screen_line#53 screen_line zp[2]:11 6321.999999999999 -byte* screen_line#56 screen_line zp[2]:11 110004.0 -byte* screen_line#61 screen_line zp[2]:11 13.0 -byte* screen_line#68 screen_line zp[2]:11 145.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#4 // str zp[2]:9 2002.0 +char *print_str::str#5 // str zp[2]:9 1026.25 +char *print_str::str#8 // str zp[2]:9 101.0 +void print_uchar(char c) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte a 202.0 +char print_uchar::c +char print_uchar::c#0 // c zp[1]:8 53.25 +void print_uint(unsigned int i) +char print_uint::$0 // reg byte a 202.0 +char print_uint::$1 // reg byte a 202.0 +char print_uint::$10 // reg byte a 202.0 +char print_uint::$3 // reg byte a 202.0 +char print_uint::$4 // reg byte a 202.0 +char print_uint::$6 // reg byte a 202.0 +char print_uint::$7 // reg byte a 202.0 +char print_uint::$9 // reg byte a 202.0 +unsigned int print_uint::i +unsigned int print_uint::i#0 // i zp[2]:2 22.0 +unsigned int print_uint::i#1 // i zp[2]:2 22.0 +unsigned int print_uint::i#2 // i zp[2]:2 22.0 +unsigned int print_uint::i#3 // i zp[2]:2 33.61538461538461 +char screen_idx +char screen_idx#22 // reg byte x 128.05555555555557 +char screen_idx#23 // reg byte x 15001.5 +char screen_idx#25 // reg byte x 423.66666666666663 +char screen_idx#54 // reg byte x 10804.5 +char screen_idx#68 // reg byte x 134.0 +char *screen_line +char *screen_line#22 // screen_line zp[2]:11 128.05555555555557 +char *screen_line#24 // screen_line zp[2]:11 649.7575757575758 +char *screen_line#25 // screen_line zp[2]:11 13750.5 +char *screen_line#53 // screen_line zp[2]:11 6321.999999999999 +char *screen_line#56 // screen_line zp[2]:11 110004.0 +char *screen_line#61 // screen_line zp[2]:11 13.0 +char *screen_line#68 // screen_line zp[2]:11 145.0 zp[2]:2 [ print_circle::c_radius#2 print_circle::c_radius#0 print_circle::c_radius#1 print_uint::i#3 print_uint::i#0 print_uint::i#1 print_uint::i#2 ] zp[2]:4 [ print_circle::c_center_x#2 print_circle::c_center_x#0 print_circle::c_center_x#1 ] diff --git a/src/test/ref/struct-45.cfg b/src/test/ref/struct-45.cfg index 0fe9a0ab8..19ae9326f 100644 --- a/src/test/ref/struct-45.cfg +++ b/src/test/ref/struct-45.cfg @@ -4,16 +4,16 @@ main: scope:[main] from [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) - [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) - [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) to:main::@1 main::@1: scope:[main] from main main::@1 [5] main::i#2 = phi( main/0, main::@1/main::i#1 ) [6] main::$11 = main::i#2 << 5 [7] main::$12 = main::$11 + main::i#2 [8] main::$4 = main::$12 << 1 - [9] *(&main::ds) = memcpy(((struct deviceslot*)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) - [10] OUT[main::i#2] = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) + [9] *(&main::ds) = memcpy(((struct deviceslot *)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [10] OUT[main::i#2] = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [11] main::i#1 = ++ main::i#2 [12] if(main::i#1!=2) goto main::@1 to:main::@return diff --git a/src/test/ref/struct-45.log b/src/test/ref/struct-45.log index 474cb515e..ddbb73337 100644 --- a/src/test/ref/struct-45.log +++ b/src/test/ref/struct-45.log @@ -21,11 +21,11 @@ main: scope:[main] from __start *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT - main::$8 = (struct deviceslot*)main::slotsA + main::$8 = (struct deviceslot *)main::slotsA main::$5 = main::$8 + OFFSET_STRUCT_DEVICESLOTSA_SLOT main::$5[main::$2] = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT - main::$9 = (struct deviceslot*)main::slotsA + main::$9 = (struct deviceslot *)main::slotsA main::$6 = main::$9 + OFFSET_STRUCT_DEVICESLOTSA_SLOT main::$6[main::$3] = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) main::i#0 = 0 @@ -33,11 +33,11 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$4 = main::i#2 * SIZEOF_STRUCT_DEVICESLOT - main::$10 = (struct deviceslot*)main::slotsA + main::$10 = (struct deviceslot *)main::slotsA main::$7 = main::$10 + OFFSET_STRUCT_DEVICESLOTSA_SLOT *(&main::ds) = memcpy(main::$7[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) main::$0 = OUT + main::i#2 - *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) + *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) main::i#1 = main::i#2 + rangenext(0,1) main::$1 = main::i#1 != rangelast(0,1) if(main::$1) goto main::@1 @@ -48,7 +48,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -57,68 +57,68 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } -constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } -constant byte OFFSET_STRUCT_DEVICESLOTSA_SLOT = 0 -constant byte OFFSET_STRUCT_DEVICESLOT_MODE = 1 -constant byte* const OUT = (byte*)$8000 -constant byte SIZEOF_STRUCT_DEVICESLOT = $42 -constant byte SIZEOF_STRUCT_DEVICESLOTSA = $84 +__constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } +__constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } +__constant char OFFSET_STRUCT_DEVICESLOTSA_SLOT = 0 +__constant char OFFSET_STRUCT_DEVICESLOT_MODE = 1 +__constant char * const OUT = (char *)$8000 +__constant char SIZEOF_STRUCT_DEVICESLOT = $42 +__constant char SIZEOF_STRUCT_DEVICESLOTSA = $84 void __start() void main() -byte*~ main::$0 -bool~ main::$1 -struct deviceslot*~ main::$10 -number~ main::$2 -number~ main::$3 -byte~ main::$4 -struct deviceslot*~ main::$5 -struct deviceslot*~ main::$6 -struct deviceslot*~ main::$7 -struct deviceslot*~ main::$8 -struct deviceslot*~ main::$9 -struct deviceslot main::ds loadstore -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -struct deviceslot main::s1 loadstore -struct deviceslot main::s2 loadstore -constant struct deviceslotsA* main::slotsA = &main::ssA -volatile struct deviceslotsA main::ssA loadstore +char *main::$0 +bool main::$1 +struct deviceslot *main::$10 +number main::$2 +number main::$3 +char main::$4 +struct deviceslot *main::$5 +struct deviceslot *main::$6 +struct deviceslot *main::$7 +struct deviceslot *main::$8 +struct deviceslot *main::$9 +__loadstore struct deviceslot main::ds +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__loadstore struct deviceslot main::s1 +__loadstore struct deviceslot main::s2 +__constant struct deviceslotsA *main::slotsA = &main::ssA +__loadstore volatile struct deviceslotsA main::ssA Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_STRUCT_DEVICESLOT Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_STRUCT_DEVICESLOT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT -Inferred type updated to byte in main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT +Inferred type updated to char in main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT +Inferred type updated to char in main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT Simple Condition main::$1 [21] if(main::i#1!=rangelast(0,1)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [3] main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT -Constant right-side identified [4] main::$8 = (struct deviceslot*)main::slotsA +Constant right-side identified [4] main::$8 = (struct deviceslot *)main::slotsA Constant right-side identified [7] main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT -Constant right-side identified [8] main::$9 = (struct deviceslot*)main::slotsA -Constant right-side identified [14] main::$10 = (struct deviceslot*)main::slotsA +Constant right-side identified [8] main::$9 = (struct deviceslot *)main::slotsA +Constant right-side identified [14] main::$10 = (struct deviceslot *)main::slotsA Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$2 = 0*SIZEOF_STRUCT_DEVICESLOT -Constant main::$8 = (struct deviceslot*)main::slotsA +Constant main::$8 = (struct deviceslot *)main::slotsA Constant main::$3 = 1*SIZEOF_STRUCT_DEVICESLOT -Constant main::$9 = (struct deviceslot*)main::slotsA +Constant main::$9 = (struct deviceslot *)main::slotsA Constant main::i#0 = 0 -Constant main::$10 = (struct deviceslot*)main::slotsA +Constant main::$10 = (struct deviceslot *)main::slotsA Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [19] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [21] if(main::i#1!=rangelast(0,1)) goto main::@1 to 2 -Converting *(pointer+n) to pointer[n] [18] *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- OUT[main::i#2] +Converting *(pointer+n) to pointer[n] [18] *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- OUT[main::i#2] Successful SSA optimization Pass2InlineDerefIdx Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_DEVICESLOT in Successful SSA optimization PassNSimplifyConstantZero @@ -140,7 +140,7 @@ Adding number conversion cast (unumber) 2 in [13] if(main::i#1!=2) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::$5 = main::$8 Constant main::$6 = main::$9 @@ -148,23 +148,23 @@ Constant main::$7 = main::$10 Successful SSA optimization Pass2ConstantIdentification Rewriting multiplication to use shift and addition[6] main::$4 = main::i#2 * SIZEOF_STRUCT_DEVICESLOT Inlining constant with var siblings main::i#0 -Constant inlined main::$5 = (struct deviceslot*)main::slotsA +Constant inlined main::$5 = (struct deviceslot *)main::slotsA Constant inlined main::i#0 = 0 -Constant inlined main::$6 = (struct deviceslot*)main::slotsA +Constant inlined main::$6 = (struct deviceslot *)main::slotsA Constant inlined main::$3 = 1*SIZEOF_STRUCT_DEVICESLOT -Constant inlined main::$9 = (struct deviceslot*)main::slotsA -Constant inlined main::$10 = (struct deviceslot*)main::slotsA -Constant inlined main::$7 = (struct deviceslot*)main::slotsA -Constant inlined main::$8 = (struct deviceslot*)main::slotsA +Constant inlined main::$9 = (struct deviceslot *)main::slotsA +Constant inlined main::$10 = (struct deviceslot *)main::slotsA +Constant inlined main::$7 = (struct deviceslot *)main::slotsA +Constant inlined main::$8 = (struct deviceslot *)main::slotsA Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) +Consolidated array index constant in *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) Successful SSA optimization Pass2ConstantAdditionElimination Alias main::$4 = main::$13 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) CALL GRAPH @@ -181,16 +181,16 @@ main: scope:[main] from [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) - [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) - [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) to:main::@1 main::@1: scope:[main] from main main::@1 [5] main::i#2 = phi( main/0, main::@1/main::i#1 ) [6] main::$11 = main::i#2 << 5 [7] main::$12 = main::$11 + main::i#2 [8] main::$4 = main::$12 << 1 - [9] *(&main::ds) = memcpy(((struct deviceslot*)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) - [10] OUT[main::i#2] = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) + [9] *(&main::ds) = memcpy(((struct deviceslot *)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [10] OUT[main::i#2] = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [11] main::i#1 = ++ main::i#2 [12] if(main::i#1!=2) goto main::@1 to:main::@return @@ -201,16 +201,16 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$11 22.0 -byte~ main::$12 22.0 -byte~ main::$4 11.0 -struct deviceslot main::ds loadstore -byte main::i -byte main::i#1 16.5 -byte main::i#2 9.166666666666666 -struct deviceslot main::s1 loadstore -struct deviceslot main::s2 loadstore -volatile struct deviceslotsA main::ssA loadstore +char main::$11 // 22.0 +char main::$12 // 22.0 +char main::$4 // 11.0 +__loadstore struct deviceslot main::ds +char main::i +char main::i#1 // 16.5 +char main::i#2 // 9.166666666666666 +__loadstore struct deviceslot main::s1 +__loadstore struct deviceslot main::s2 +__loadstore volatile struct deviceslotsA main::ssA Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -242,27 +242,27 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ssA main::s1 main::ds ] ( [ main::s2 main::ssA main::s1 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ssA main::s1 main::ds ] ( [ main::s2 main::ssA main::s1 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) [ main::s2 main::s1 main::ds ] ( [ main::s2 main::s1 main::ds ] { } ) always clobbers reg byte a reg byte y -Statement [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ds ] ( [ main::s2 main::ds ] { } ) always clobbers reg byte a reg byte y -Statement [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ds ] ( [ main::s2 main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a reg byte y Statement [6] main::$11 = main::i#2 << 5 [ main::i#2 main::$11 main::ds ] ( [ main::i#2 main::$11 main::ds ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [7] main::$12 = main::$11 + main::i#2 [ main::i#2 main::$12 main::ds ] ( [ main::i#2 main::$12 main::ds ] { } ) always clobbers reg byte a Statement [8] main::$4 = main::$12 << 1 [ main::i#2 main::$4 main::ds ] ( [ main::i#2 main::$4 main::ds ] { } ) always clobbers reg byte a -Statement [9] *(&main::ds) = memcpy(((struct deviceslot*)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [9] *(&main::ds) = memcpy(((struct deviceslot *)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [10] OUT[main::i#2] = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [10] OUT[main::i#2] = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [12] if(main::i#1!=2) goto main::@1 [ main::i#1 main::ds ] ( [ main::i#1 main::ds ] { } ) always clobbers reg byte a Statement [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ssA main::s1 main::ds ] ( [ main::s2 main::ssA main::s1 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ssA main::s1 main::ds ] ( [ main::s2 main::ssA main::s1 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) [ main::s2 main::s1 main::ds ] ( [ main::s2 main::s1 main::ds ] { } ) always clobbers reg byte a reg byte y -Statement [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ds ] ( [ main::s2 main::ds ] { } ) always clobbers reg byte a reg byte y -Statement [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ds ] ( [ main::s2 main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a reg byte y Statement [6] main::$11 = main::i#2 << 5 [ main::i#2 main::$11 main::ds ] ( [ main::i#2 main::$11 main::ds ] { } ) always clobbers reg byte a Statement [7] main::$12 = main::$11 + main::i#2 [ main::i#2 main::$12 main::ds ] ( [ main::i#2 main::$12 main::ds ] { } ) always clobbers reg byte a Statement [8] main::$4 = main::$12 << 1 [ main::i#2 main::$4 main::ds ] ( [ main::i#2 main::$4 main::ds ] { } ) always clobbers reg byte a -Statement [9] *(&main::ds) = memcpy(((struct deviceslot*)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [10] OUT[main::i#2] = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [9] *(&main::ds) = memcpy(((struct deviceslot *)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [10] OUT[main::i#2] = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [12] if(main::i#1!=2) goto main::@1 [ main::i#1 main::ds ] ( [ main::i#1 main::ds ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , Potential registers zp[1]:3 [ main::$11 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -329,14 +329,14 @@ main: { dey sta ssA,y bne !- - // [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_DEVICESLOT !: lda s1-1,y sta slotsA-1,y dey bne !- - // [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_DEVICESLOT !: lda s2-1,y @@ -367,7 +367,7 @@ main: { adc.z i // [8] main::$4 = main::$12 << 1 -- vbuaa=vbuaa_rol_1 asl - // [9] *(&main::ds) = memcpy(((struct deviceslot*)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 + // [9] *(&main::ds) = memcpy(((struct deviceslot *)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 tax ldy #0 !: @@ -377,7 +377,7 @@ main: { iny cpy #SIZEOF_STRUCT_DEVICESLOT bne !- - // [10] OUT[main::i#2] = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [10] OUT[main::i#2] = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda ds+OFFSET_STRUCT_DEVICESLOT_MODE ldy.z i sta OUT,y @@ -422,24 +422,24 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } -constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } -constant byte OFFSET_STRUCT_DEVICESLOT_MODE = 1 -constant byte* const OUT = (byte*) 32768 -constant byte SIZEOF_STRUCT_DEVICESLOT = $42 -constant byte SIZEOF_STRUCT_DEVICESLOTSA = $84 +__constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } +__constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } +__constant char OFFSET_STRUCT_DEVICESLOT_MODE = 1 +__constant char * const OUT = (char *) 32768 +__constant char SIZEOF_STRUCT_DEVICESLOT = $42 +__constant char SIZEOF_STRUCT_DEVICESLOTSA = $84 void main() -byte~ main::$11 reg byte a 22.0 -byte~ main::$12 reg byte a 22.0 -byte~ main::$4 reg byte a 11.0 -struct deviceslot main::ds loadstore mem[66] -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 9.166666666666666 -struct deviceslot main::s1 loadstore mem[66] -struct deviceslot main::s2 loadstore mem[66] -constant struct deviceslotsA* main::slotsA = &main::ssA -volatile struct deviceslotsA main::ssA loadstore mem[132] +char main::$11 // reg byte a 22.0 +char main::$12 // reg byte a 22.0 +char main::$4 // reg byte a 11.0 +__loadstore struct deviceslot main::ds // mem[66] +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 9.166666666666666 +__loadstore struct deviceslot main::s1 // mem[66] +__loadstore struct deviceslot main::s2 // mem[66] +__constant struct deviceslotsA *main::slotsA = &main::ssA +__loadstore volatile struct deviceslotsA main::ssA // mem[132] zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$11 ] @@ -500,7 +500,7 @@ main: { sta ssA,y bne !- // slotsA->slot[0] = s1 - // [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_DEVICESLOT !: lda s1-1,y @@ -508,7 +508,7 @@ main: { dey bne !- // slotsA->slot[1] = s2 - // [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 + // [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_DEVICESLOT !: lda s2-1,y @@ -536,7 +536,7 @@ main: { adc.z i // [8] main::$4 = main::$12 << 1 -- vbuaa=vbuaa_rol_1 asl - // [9] *(&main::ds) = memcpy(((struct deviceslot*)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 + // [9] *(&main::ds) = memcpy(((struct deviceslot *)main::slotsA)[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=pssc2_derefidx_vbuaa_memcpy_vbuc3 tax ldy #0 !: @@ -547,7 +547,7 @@ main: { cpy #SIZEOF_STRUCT_DEVICESLOT bne !- // *(OUT + i) = ds.mode - // [10] OUT[main::i#2] = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 + // [10] OUT[main::i#2] = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- pbuc1_derefidx_vbuz1=_deref_pbuc2 lda ds+OFFSET_STRUCT_DEVICESLOT_MODE ldy.z i sta OUT,y diff --git a/src/test/ref/struct-45.sym b/src/test/ref/struct-45.sym index 75b88700e..9d4254f02 100644 --- a/src/test/ref/struct-45.sym +++ b/src/test/ref/struct-45.sym @@ -1,21 +1,21 @@ -constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } -constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } -constant byte OFFSET_STRUCT_DEVICESLOT_MODE = 1 -constant byte* const OUT = (byte*) 32768 -constant byte SIZEOF_STRUCT_DEVICESLOT = $42 -constant byte SIZEOF_STRUCT_DEVICESLOTSA = $84 +__constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } +__constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } +__constant char OFFSET_STRUCT_DEVICESLOT_MODE = 1 +__constant char * const OUT = (char *) 32768 +__constant char SIZEOF_STRUCT_DEVICESLOT = $42 +__constant char SIZEOF_STRUCT_DEVICESLOTSA = $84 void main() -byte~ main::$11 reg byte a 22.0 -byte~ main::$12 reg byte a 22.0 -byte~ main::$4 reg byte a 11.0 -struct deviceslot main::ds loadstore mem[66] -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 9.166666666666666 -struct deviceslot main::s1 loadstore mem[66] -struct deviceslot main::s2 loadstore mem[66] -constant struct deviceslotsA* main::slotsA = &main::ssA -volatile struct deviceslotsA main::ssA loadstore mem[132] +char main::$11 // reg byte a 22.0 +char main::$12 // reg byte a 22.0 +char main::$4 // reg byte a 11.0 +__loadstore struct deviceslot main::ds // mem[66] +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 9.166666666666666 +__loadstore struct deviceslot main::s1 // mem[66] +__loadstore struct deviceslot main::s2 // mem[66] +__constant struct deviceslotsA *main::slotsA = &main::ssA +__loadstore volatile struct deviceslotsA main::ssA // mem[132] zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ main::$11 ] diff --git a/src/test/ref/struct-46.cfg b/src/test/ref/struct-46.cfg index d3dd628d8..9688fbe38 100644 --- a/src/test/ref/struct-46.cfg +++ b/src/test/ref/struct-46.cfg @@ -3,7 +3,7 @@ void main() main: scope:[main] from [0] *(&main::x) = memset(struct other, SIZEOF_STRUCT_OTHER) [1] *(&main::a) = memcpy(*(&$0), struct netconfig, SIZEOF_STRUCT_NETCONFIG) - [2] *OUT = *((byte*)&main::a) + [2] *OUT = *((char *)&main::a) [3] *(&main::b) = memset(struct netconfig, SIZEOF_STRUCT_NETCONFIG) to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/struct-46.log b/src/test/ref/struct-46.log index 398af408f..b39490ce7 100644 --- a/src/test/ref/struct-46.log +++ b/src/test/ref/struct-46.log @@ -3,7 +3,7 @@ Fixing struct type size struct netconfig to 96 Fixing struct type size struct netconfig to 96 Fixing struct type SIZE_OF struct netconfig to 96 Fixing struct type SIZE_OF struct netconfig to 96 -Inlined call call __init +Inlined call call __init Removing C-classic struct-unwound assignment main::x = struct-unwound {*(&main::x)} Removing C-classic struct-unwound assignment main::a = struct-unwound {*(&main::a)} Removing C-classic struct-unwound assignment main::b = struct-unwound {*(&main::b)} @@ -15,7 +15,7 @@ main: scope:[main] from __start::@1 *(&main::x) = memset(struct other, SIZEOF_STRUCT_OTHER) *(&main::a) = memcpy(*(&$0), struct netconfig, SIZEOF_STRUCT_NETCONFIG) main::$0 = OUT + 0 - *main::$0 = ((byte*)&main::a+OFFSET_STRUCT_NETCONFIG_SSID)[0] + *main::$0 = ((char *)&main::a+OFFSET_STRUCT_NETCONFIG_SSID)[0] *(&main::b) = memset(struct netconfig, SIZEOF_STRUCT_NETCONFIG) to:main::@return main::@return: scope:[main] from main @@ -28,7 +28,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -37,35 +37,35 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct netconfig $0 = { ssid: "123", password: "abc" } -constant byte OFFSET_STRUCT_NETCONFIG_SSID = 0 -constant const byte* OUT = (byte*)$8000 -constant byte SIZEOF_STRUCT_NETCONFIG = $60 -constant byte SIZEOF_STRUCT_OTHER = 2 +__constant struct netconfig $0 = { ssid: "123", password: "abc" } +__constant char OFFSET_STRUCT_NETCONFIG_SSID = 0 +__constant const char *OUT = (char *)$8000 +__constant char SIZEOF_STRUCT_NETCONFIG = $60 +__constant char SIZEOF_STRUCT_OTHER = 2 void __start() void main() -const byte*~ main::$0 -struct netconfig main::a loadstore -struct netconfig main::b loadstore -struct other main::x loadstore +const char *main::$0 +__loadstore struct netconfig main::a +__loadstore struct netconfig main::b +__loadstore struct other main::x Adding number conversion cast (unumber) 0 in main::$0 = OUT + 0 -Adding number conversion cast (unumber) 0 in *main::$0 = ((byte*)&main::a+OFFSET_STRUCT_NETCONFIG_SSID)[0] +Adding number conversion cast (unumber) 0 in *main::$0 = ((char *)&main::a+OFFSET_STRUCT_NETCONFIG_SSID)[0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [2] main::$0 = OUT + 0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$0 = OUT+0 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero OUT in -Simplifying expression containing zero (byte*)&main::a+OFFSET_STRUCT_NETCONFIG_SSID in [3] *main::$0 = ((byte*)&main::a+OFFSET_STRUCT_NETCONFIG_SSID)[0] -Simplifying expression containing zero (byte*)&main::a in [3] *main::$0 = *((byte*)&main::a+OFFSET_STRUCT_NETCONFIG_SSID) +Simplifying expression containing zero (char *)&main::a+OFFSET_STRUCT_NETCONFIG_SSID in [3] *main::$0 = ((char *)&main::a+OFFSET_STRUCT_NETCONFIG_SSID)[0] +Simplifying expression containing zero (char *)&main::a in [3] *main::$0 = *((char *)&main::a+OFFSET_STRUCT_NETCONFIG_SSID) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_NETCONFIG_SSID Successful SSA optimization PassNEliminateUnusedVars @@ -78,10 +78,10 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::$0 = OUT Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $20 -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $20 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -94,7 +94,7 @@ void main() main: scope:[main] from [0] *(&main::x) = memset(struct other, SIZEOF_STRUCT_OTHER) [1] *(&main::a) = memcpy(*(&$0), struct netconfig, SIZEOF_STRUCT_NETCONFIG) - [2] *OUT = *((byte*)&main::a) + [2] *OUT = *((char *)&main::a) [3] *(&main::b) = memset(struct netconfig, SIZEOF_STRUCT_NETCONFIG) to:main::@return main::@return: scope:[main] from main @@ -104,9 +104,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct netconfig main::a loadstore -struct netconfig main::b loadstore -struct other main::x loadstore +__loadstore struct netconfig main::a +__loadstore struct netconfig main::b +__loadstore struct other main::x Initial phi equivalence classes Added variable main::x to live range equivalence class [ main::x ] @@ -122,7 +122,7 @@ Allocated mem[96] [ main::b ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::x) = memset(struct other, SIZEOF_STRUCT_OTHER) [ main::a main::b ] ( [ main::a main::b ] { } ) always clobbers reg byte a reg byte y Statement [1] *(&main::a) = memcpy(*(&$0), struct netconfig, SIZEOF_STRUCT_NETCONFIG) [ main::a main::b ] ( [ main::a main::b ] { } ) always clobbers reg byte a reg byte y -Statement [2] *OUT = *((byte*)&main::a) [ main::b ] ( [ main::b ] { } ) always clobbers reg byte a +Statement [2] *OUT = *((char *)&main::a) [ main::b ] ( [ main::b ] { } ) always clobbers reg byte a Statement [3] *(&main::b) = memset(struct netconfig, SIZEOF_STRUCT_NETCONFIG) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Potential registers mem[2] [ main::x ] : mem[2] , Potential registers mem[96] [ main::a ] : mem[96] , @@ -173,7 +173,7 @@ main: { sta a-1,y dey bne !- - // [2] *OUT = *((byte*)&main::a) -- _deref_pbuc1=_deref_pbuc2 + // [2] *OUT = *((char *)&main::a) -- _deref_pbuc1=_deref_pbuc2 lda a sta OUT // [3] *(&main::b) = memset(struct netconfig, SIZEOF_STRUCT_NETCONFIG) -- _deref_pssc1=_memset_vbuc2 @@ -208,14 +208,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct netconfig $0 = { ssid: "123", password: "abc" } -constant const byte* OUT = (byte*) 32768 -constant byte SIZEOF_STRUCT_NETCONFIG = $60 -constant byte SIZEOF_STRUCT_OTHER = 2 +__constant struct netconfig $0 = { ssid: "123", password: "abc" } +__constant const char *OUT = (char *) 32768 +__constant char SIZEOF_STRUCT_NETCONFIG = $60 +__constant char SIZEOF_STRUCT_OTHER = 2 void main() -struct netconfig main::a loadstore mem[96] -struct netconfig main::b loadstore mem[96] -struct other main::x loadstore mem[2] +__loadstore struct netconfig main::a // mem[96] +__loadstore struct netconfig main::b // mem[96] +__loadstore struct other main::x // mem[2] mem[2] [ main::x ] mem[96] [ main::a ] @@ -261,7 +261,7 @@ main: { dey bne !- // *(OUT + 0) = a.ssid[0] - // [2] *OUT = *((byte*)&main::a) -- _deref_pbuc1=_deref_pbuc2 + // [2] *OUT = *((char *)&main::a) -- _deref_pbuc1=_deref_pbuc2 lda a sta OUT // NetConfig b diff --git a/src/test/ref/struct-46.sym b/src/test/ref/struct-46.sym index f06e1e372..2fb9bfc74 100644 --- a/src/test/ref/struct-46.sym +++ b/src/test/ref/struct-46.sym @@ -1,11 +1,11 @@ -constant struct netconfig $0 = { ssid: "123", password: "abc" } -constant const byte* OUT = (byte*) 32768 -constant byte SIZEOF_STRUCT_NETCONFIG = $60 -constant byte SIZEOF_STRUCT_OTHER = 2 +__constant struct netconfig $0 = { ssid: "123", password: "abc" } +__constant const char *OUT = (char *) 32768 +__constant char SIZEOF_STRUCT_NETCONFIG = $60 +__constant char SIZEOF_STRUCT_OTHER = 2 void main() -struct netconfig main::a loadstore mem[96] -struct netconfig main::b loadstore mem[96] -struct other main::x loadstore mem[2] +__loadstore struct netconfig main::a // mem[96] +__loadstore struct netconfig main::b // mem[96] +__loadstore struct other main::x // mem[2] mem[2] [ main::x ] mem[96] [ main::a ] diff --git a/src/test/ref/struct-47.cfg b/src/test/ref/struct-47.cfg index 8ceea8c6f..1f51d1ac0 100644 --- a/src/test/ref/struct-47.cfg +++ b/src/test/ref/struct-47.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB) = 1 - [1] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 + [0] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB) = 1 + [1] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/struct-47.log b/src/test/ref/struct-47.log index ed3c2bfcb..fa07da2c2 100644 --- a/src/test/ref/struct-47.log +++ b/src/test/ref/struct-47.log @@ -4,8 +4,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)(struct __dcb*)(struct __os*)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = 1 - *((byte*)(struct __dcb*)(struct __os*)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 + *((char *)(struct __dcb *)(struct __os *)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = 1 + *((char *)(struct __dcb *)(struct __os *)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 to:main::@return main::@return: scope:[main] from main return @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,27 +22,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT___DCB_DDEVIC = 0 -constant byte OFFSET_STRUCT___DCB_DUNIT = 1 -constant word OFFSET_STRUCT___OS_DCB = $100 +__constant char OFFSET_STRUCT___DCB_DDEVIC = 0 +__constant char OFFSET_STRUCT___DCB_DUNIT = 1 +__constant unsigned int OFFSET_STRUCT___OS_DCB = $100 void __start() void main() -Adding number conversion cast (unumber) 1 in *((byte*)(struct __dcb*)(struct __os*)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = 1 -Adding number conversion cast (unumber) 2 in *((byte*)(struct __dcb*)(struct __os*)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 +Adding number conversion cast (unumber) 1 in *((char *)(struct __dcb *)(struct __os *)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = 1 +Adding number conversion cast (unumber) 2 in *((char *)(struct __dcb *)(struct __os *)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)(struct __dcb*)(struct __os*)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = (unumber)1 -Inlining cast *((byte*)(struct __dcb*)(struct __os*)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = (unumber)2 +Inlining cast *((char *)(struct __dcb *)(struct __os *)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = (unumber)1 +Inlining cast *((char *)(struct __dcb *)(struct __os *)0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = (unumber)2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 1 -Simplifying constant pointer cast (struct __os*) 0 +Simplifying constant pointer cast (struct __os *) 0 Simplifying constant integer cast 2 -Simplifying constant pointer cast (struct __os*) 0 +Simplifying constant pointer cast (struct __os *) 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB in [0] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = 1 +Simplifying expression containing zero (char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB in [0] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DDEVIC) = 1 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT___DCB_DDEVIC Successful SSA optimization PassNEliminateUnusedVars @@ -51,8 +51,8 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -63,8 +63,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB) = 1 - [1] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 + [0] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB) = 1 + [1] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 to:main::@return main::@return: scope:[main] from main [2] return @@ -77,8 +77,8 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB) = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [__dcb] @@ -110,10 +110,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB) = 1 -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta 0+OFFSET_STRUCT___OS_DCB - // [1] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT jmp __breturn @@ -131,8 +131,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT___DCB_DUNIT = 1 -constant word OFFSET_STRUCT___OS_DCB = $100 +__constant char OFFSET_STRUCT___DCB_DUNIT = 1 +__constant unsigned int OFFSET_STRUCT___OS_DCB = $100 void main() @@ -159,11 +159,11 @@ Score: 18 // main main: { // OS.dcb.ddevic = 1 - // [0] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB) = 1 -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta 0+OFFSET_STRUCT___OS_DCB // OS.dcb.dunit = 2 - // [1] *((byte*)(struct __dcb*)(struct __os*) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 -- _deref_pbuc1=vbuc2 + // [1] *((char *)(struct __dcb *)(struct __os *) 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta 0+OFFSET_STRUCT___OS_DCB+OFFSET_STRUCT___DCB_DUNIT // main::@return diff --git a/src/test/ref/struct-47.sym b/src/test/ref/struct-47.sym index d608feaf9..f27e69d32 100644 --- a/src/test/ref/struct-47.sym +++ b/src/test/ref/struct-47.sym @@ -1,4 +1,4 @@ -constant byte OFFSET_STRUCT___DCB_DUNIT = 1 -constant word OFFSET_STRUCT___OS_DCB = $100 +__constant char OFFSET_STRUCT___DCB_DUNIT = 1 +__constant unsigned int OFFSET_STRUCT___OS_DCB = $100 void main() diff --git a/src/test/ref/struct-48.cfg b/src/test/ref/struct-48.cfg index 3f3dcaa8c..0698376f3 100644 --- a/src/test/ref/struct-48.cfg +++ b/src/test/ref/struct-48.cfg @@ -4,18 +4,18 @@ main: scope:[main] from [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) - [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) - [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) to:main::@1 main::@1: scope:[main] from main main::@1 [5] main::i#2 = phi( main/0, main::@1/main::i#1 ) [6] main::$14 = main::i#2 << 7 [7] main::$15 = main::$14 + main::i#2 [8] main::$4 = main::$15 << 1 - [9] main::$13 = (struct deviceslot*)main::slotsA + main::$4 + [9] main::$13 = (struct deviceslot *)main::slotsA + main::$4 [10] *(&main::ds) = memcpy(*main::$13, struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [11] main::$0 = OUT + main::i#2 - [12] *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) + [12] *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [13] main::i#1 = ++ main::i#2 [14] if(main::i#1!=2) goto main::@1 to:main::@return diff --git a/src/test/ref/struct-48.log b/src/test/ref/struct-48.log index f818829ed..31f9036ce 100644 --- a/src/test/ref/struct-48.log +++ b/src/test/ref/struct-48.log @@ -21,11 +21,11 @@ main: scope:[main] from __start *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT - main::$8 = (struct deviceslot*)main::slotsA + main::$8 = (struct deviceslot *)main::slotsA main::$5 = main::$8 + OFFSET_STRUCT_DEVICESLOTSA_SLOT main::$5[main::$2] = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT - main::$9 = (struct deviceslot*)main::slotsA + main::$9 = (struct deviceslot *)main::slotsA main::$6 = main::$9 + OFFSET_STRUCT_DEVICESLOTSA_SLOT main::$6[main::$3] = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) main::i#0 = 0 @@ -33,11 +33,11 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$4 = main::i#2 * SIZEOF_STRUCT_DEVICESLOT - main::$10 = (struct deviceslot*)main::slotsA + main::$10 = (struct deviceslot *)main::slotsA main::$7 = main::$10 + OFFSET_STRUCT_DEVICESLOTSA_SLOT *(&main::ds) = memcpy(main::$7[main::$4], struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) main::$0 = OUT + main::i#2 - *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) + *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) main::i#1 = main::i#2 + rangenext(0,1) main::$1 = main::i#1 != rangelast(0,1) if(main::$1) goto main::@1 @@ -48,7 +48,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -57,64 +57,64 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } -constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } -constant byte OFFSET_STRUCT_DEVICESLOTSA_SLOT = 0 -constant byte OFFSET_STRUCT_DEVICESLOT_MODE = 1 -constant byte* const OUT = (byte*)$8000 -constant word SIZEOF_STRUCT_DEVICESLOT = $102 -constant word SIZEOF_STRUCT_DEVICESLOTSA = $204 +__constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } +__constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } +__constant char OFFSET_STRUCT_DEVICESLOTSA_SLOT = 0 +__constant char OFFSET_STRUCT_DEVICESLOT_MODE = 1 +__constant char * const OUT = (char *)$8000 +__constant unsigned int SIZEOF_STRUCT_DEVICESLOT = $102 +__constant unsigned int SIZEOF_STRUCT_DEVICESLOTSA = $204 void __start() void main() -byte*~ main::$0 -bool~ main::$1 -struct deviceslot*~ main::$10 -number~ main::$2 -number~ main::$3 -word~ main::$4 -struct deviceslot*~ main::$5 -struct deviceslot*~ main::$6 -struct deviceslot*~ main::$7 -struct deviceslot*~ main::$8 -struct deviceslot*~ main::$9 -struct deviceslot main::ds loadstore -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -struct deviceslot main::s1 loadstore -struct deviceslot main::s2 loadstore -constant struct deviceslotsA* main::slotsA = &main::ssA -volatile struct deviceslotsA main::ssA loadstore +char *main::$0 +bool main::$1 +struct deviceslot *main::$10 +number main::$2 +number main::$3 +unsigned int main::$4 +struct deviceslot *main::$5 +struct deviceslot *main::$6 +struct deviceslot *main::$7 +struct deviceslot *main::$8 +struct deviceslot *main::$9 +__loadstore struct deviceslot main::ds +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +__loadstore struct deviceslot main::s1 +__loadstore struct deviceslot main::s2 +__constant struct deviceslotsA *main::slotsA = &main::ssA +__loadstore volatile struct deviceslotsA main::ssA Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_STRUCT_DEVICESLOT Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_STRUCT_DEVICESLOT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 32768 +Simplifying constant pointer cast (char *) 32768 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT -Inferred type updated to word in main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT +Inferred type updated to unsigned int in main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT +Inferred type updated to unsigned int in main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT Simple Condition main::$1 [21] if(main::i#1!=rangelast(0,1)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [3] main::$2 = 0 * SIZEOF_STRUCT_DEVICESLOT -Constant right-side identified [4] main::$8 = (struct deviceslot*)main::slotsA +Constant right-side identified [4] main::$8 = (struct deviceslot *)main::slotsA Constant right-side identified [7] main::$3 = 1 * SIZEOF_STRUCT_DEVICESLOT -Constant right-side identified [8] main::$9 = (struct deviceslot*)main::slotsA -Constant right-side identified [14] main::$10 = (struct deviceslot*)main::slotsA +Constant right-side identified [8] main::$9 = (struct deviceslot *)main::slotsA +Constant right-side identified [14] main::$10 = (struct deviceslot *)main::slotsA Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$2 = 0*SIZEOF_STRUCT_DEVICESLOT -Constant main::$8 = (struct deviceslot*)main::slotsA +Constant main::$8 = (struct deviceslot *)main::slotsA Constant main::$3 = 1*SIZEOF_STRUCT_DEVICESLOT -Constant main::$9 = (struct deviceslot*)main::slotsA +Constant main::$9 = (struct deviceslot *)main::slotsA Constant main::i#0 = 0 -Constant main::$10 = (struct deviceslot*)main::slotsA +Constant main::$10 = (struct deviceslot *)main::slotsA Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [19] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [21] if(main::i#1!=rangelast(0,1)) goto main::@1 to 2 @@ -141,7 +141,7 @@ Adding number conversion cast (unumber) 2 in [17] if(main::i#1!=2) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$11 = main::$5 Successful SSA optimization Pass2AliasElimination @@ -155,22 +155,22 @@ Constant main::$12 = main::$6+main::$3 Successful SSA optimization Pass2ConstantIdentification Rewriting multiplication to use shift and addition[6] main::$4 = main::i#2 * SIZEOF_STRUCT_DEVICESLOT Inlining constant with var siblings main::i#0 -Constant inlined main::$12 = (struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT +Constant inlined main::$12 = (struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT Constant inlined main::i#0 = 0 -Constant inlined main::$6 = (struct deviceslot*)main::slotsA +Constant inlined main::$6 = (struct deviceslot *)main::slotsA Constant inlined main::$3 = 1*SIZEOF_STRUCT_DEVICESLOT -Constant inlined main::$9 = (struct deviceslot*)main::slotsA -Constant inlined main::$10 = (struct deviceslot*)main::slotsA -Constant inlined main::$7 = (struct deviceslot*)main::slotsA -Constant inlined main::$8 = (struct deviceslot*)main::slotsA -Constant inlined main::$11 = (struct deviceslot*)main::slotsA +Constant inlined main::$9 = (struct deviceslot *)main::slotsA +Constant inlined main::$10 = (struct deviceslot *)main::slotsA +Constant inlined main::$7 = (struct deviceslot *)main::slotsA +Constant inlined main::$8 = (struct deviceslot *)main::slotsA +Constant inlined main::$11 = (struct deviceslot *)main::slotsA Successful SSA optimization Pass2ConstantInlining Alias main::$4 = main::$16 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) CALL GRAPH @@ -187,18 +187,18 @@ main: scope:[main] from [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) - [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) - [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) + [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) to:main::@1 main::@1: scope:[main] from main main::@1 [5] main::i#2 = phi( main/0, main::@1/main::i#1 ) [6] main::$14 = main::i#2 << 7 [7] main::$15 = main::$14 + main::i#2 [8] main::$4 = main::$15 << 1 - [9] main::$13 = (struct deviceslot*)main::slotsA + main::$4 + [9] main::$13 = (struct deviceslot *)main::slotsA + main::$4 [10] *(&main::ds) = memcpy(*main::$13, struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [11] main::$0 = OUT + main::i#2 - [12] *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) + [12] *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [13] main::i#1 = ++ main::i#2 [14] if(main::i#1!=2) goto main::@1 to:main::@return @@ -209,18 +209,18 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte*~ main::$0 22.0 -struct deviceslot*~ main::$13 11.0 -word~ main::$14 22.0 -word~ main::$15 22.0 -word~ main::$4 22.0 -struct deviceslot main::ds loadstore -word main::i -word main::i#1 16.5 -word main::i#2 6.875 -struct deviceslot main::s1 loadstore -struct deviceslot main::s2 loadstore -volatile struct deviceslotsA main::ssA loadstore +char *main::$0 // 22.0 +struct deviceslot *main::$13 // 11.0 +unsigned int main::$14 // 22.0 +unsigned int main::$15 // 22.0 +unsigned int main::$4 // 22.0 +__loadstore struct deviceslot main::ds +unsigned int main::i +unsigned int main::i#1 // 16.5 +unsigned int main::i#2 // 6.875 +__loadstore struct deviceslot main::s1 +__loadstore struct deviceslot main::s2 +__loadstore volatile struct deviceslotsA main::ssA Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -258,15 +258,15 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::s1) = memcpy(*(&$0), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ssA main::s1 main::ds ] ( [ main::s2 main::ssA main::s1 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [1] *(&main::s2) = memcpy(*(&$1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ssA main::s1 main::ds ] ( [ main::s2 main::ssA main::s1 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [2] *(&main::ssA) = memset(struct deviceslotsA, SIZEOF_STRUCT_DEVICESLOTSA) [ main::s2 main::s1 main::ds ] ( [ main::s2 main::s1 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ds ] ( [ main::s2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::s2 main::ds ] ( [ main::s2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::ds ] ( [ main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [6] main::$14 = main::i#2 << 7 [ main::i#2 main::$14 main::ds ] ( [ main::i#2 main::$14 main::ds ] { } ) always clobbers reg byte a Statement [7] main::$15 = main::$14 + main::i#2 [ main::i#2 main::$15 main::ds ] ( [ main::i#2 main::$15 main::ds ] { } ) always clobbers reg byte a Statement [8] main::$4 = main::$15 << 1 [ main::i#2 main::$4 main::ds ] ( [ main::i#2 main::$4 main::ds ] { } ) always clobbers reg byte a -Statement [9] main::$13 = (struct deviceslot*)main::slotsA + main::$4 [ main::i#2 main::$13 main::ds ] ( [ main::i#2 main::$13 main::ds ] { } ) always clobbers reg byte a +Statement [9] main::$13 = (struct deviceslot *)main::slotsA + main::$4 [ main::i#2 main::$13 main::ds ] ( [ main::i#2 main::$13 main::ds ] { } ) always clobbers reg byte a Statement [10] *(&main::ds) = memcpy(*main::$13, struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [11] main::$0 = OUT + main::i#2 [ main::i#2 main::ds main::$0 ] ( [ main::i#2 main::ds main::$0 ] { } ) always clobbers reg byte a -Statement [12] *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte y +Statement [12] *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) [ main::i#2 main::ds ] ( [ main::i#2 main::ds ] { } ) always clobbers reg byte a reg byte y Statement [14] if(main::i#1!=2) goto main::@1 [ main::i#1 main::ds ] ( [ main::i#1 main::ds ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::i#2 main::i#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::$14 ] : zp[2]:4 , @@ -392,7 +392,7 @@ main: { bne !n- cpx #>SIZEOF_STRUCT_DEVICESLOTSA bne !n- - // [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 + // [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 lda #s1 @@ -417,7 +417,7 @@ main: { bne !n- cpx #>SIZEOF_STRUCT_DEVICESLOT bne !n- - // [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 + // [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 lda #s2 @@ -476,7 +476,7 @@ main: { // [8] main::$4 = main::$15 << 1 -- vwuz1=vwuz1_rol_1 asl.z __4 rol.z __4+1 - // [9] main::$13 = (struct deviceslot*)main::slotsA + main::$4 -- pssz1=pssc1_plus_vwuz1 + // [9] main::$13 = (struct deviceslot *)main::slotsA + main::$4 -- pssz1=pssc1_plus_vwuz1 lda.z __13 clc adc #OUT sta.z __0+1 - // [12] *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- _deref_pbuz1=_deref_pbuc1 + // [12] *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- _deref_pbuz1=_deref_pbuc1 lda ds+OFFSET_STRUCT_DEVICESLOT_MODE ldy #0 sta (__0),y @@ -570,26 +570,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } -constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } -constant byte OFFSET_STRUCT_DEVICESLOT_MODE = 1 -constant byte* const OUT = (byte*) 32768 -constant word SIZEOF_STRUCT_DEVICESLOT = $102 -constant word SIZEOF_STRUCT_DEVICESLOTSA = $204 +__constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } +__constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } +__constant char OFFSET_STRUCT_DEVICESLOT_MODE = 1 +__constant char * const OUT = (char *) 32768 +__constant unsigned int SIZEOF_STRUCT_DEVICESLOT = $102 +__constant unsigned int SIZEOF_STRUCT_DEVICESLOTSA = $204 void main() -byte*~ main::$0 zp[2]:6 22.0 -struct deviceslot*~ main::$13 zp[2]:4 11.0 -word~ main::$14 zp[2]:4 22.0 -word~ main::$15 zp[2]:4 22.0 -word~ main::$4 zp[2]:4 22.0 -struct deviceslot main::ds loadstore mem[258] -word main::i -word main::i#1 i zp[2]:2 16.5 -word main::i#2 i zp[2]:2 6.875 -struct deviceslot main::s1 loadstore mem[258] -struct deviceslot main::s2 loadstore mem[258] -constant struct deviceslotsA* main::slotsA = &main::ssA -volatile struct deviceslotsA main::ssA loadstore mem[516] +char *main::$0 // zp[2]:6 22.0 +struct deviceslot *main::$13 // zp[2]:4 11.0 +unsigned int main::$14 // zp[2]:4 22.0 +unsigned int main::$15 // zp[2]:4 22.0 +unsigned int main::$4 // zp[2]:4 22.0 +__loadstore struct deviceslot main::ds // mem[258] +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 16.5 +unsigned int main::i#2 // i zp[2]:2 6.875 +__loadstore struct deviceslot main::s1 // mem[258] +__loadstore struct deviceslot main::s2 // mem[258] +__constant struct deviceslotsA *main::slotsA = &main::ssA +__loadstore volatile struct deviceslotsA main::ssA // mem[516] zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$14 main::$15 main::$4 main::$13 ] @@ -704,7 +704,7 @@ main: { cpx #>SIZEOF_STRUCT_DEVICESLOTSA bne !n- // slotsA->slot[0] = s1 - // [3] *((struct deviceslot*)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 + // [3] *((struct deviceslot *)main::slotsA) = memcpy(*(&main::s1), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 lda #s1 @@ -730,7 +730,7 @@ main: { cpx #>SIZEOF_STRUCT_DEVICESLOT bne !n- // slotsA->slot[1] = s2 - // [4] *((struct deviceslot*)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 + // [4] *((struct deviceslot *)main::slotsA+1*SIZEOF_STRUCT_DEVICESLOT) = memcpy(*(&main::s2), struct deviceslot, SIZEOF_STRUCT_DEVICESLOT) -- _deref_pssc1=_deref_pssc2_memcpy_vwuc3 lda #s2 @@ -785,7 +785,7 @@ main: { // [8] main::$4 = main::$15 << 1 -- vwuz1=vwuz1_rol_1 asl.z __4 rol.z __4+1 - // [9] main::$13 = (struct deviceslot*)main::slotsA + main::$4 -- pssz1=pssc1_plus_vwuz1 + // [9] main::$13 = (struct deviceslot *)main::slotsA + main::$4 -- pssz1=pssc1_plus_vwuz1 lda.z __13 clc adc #OUT sta.z __0+1 // *(OUT + i) = ds.mode - // [12] *main::$0 = *((byte*)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- _deref_pbuz1=_deref_pbuc1 + // [12] *main::$0 = *((char *)&main::ds+OFFSET_STRUCT_DEVICESLOT_MODE) -- _deref_pbuz1=_deref_pbuc1 lda ds+OFFSET_STRUCT_DEVICESLOT_MODE ldy #0 sta (__0),y diff --git a/src/test/ref/struct-48.sym b/src/test/ref/struct-48.sym index be95e28f2..4f060134c 100644 --- a/src/test/ref/struct-48.sym +++ b/src/test/ref/struct-48.sym @@ -1,23 +1,23 @@ -constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } -constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } -constant byte OFFSET_STRUCT_DEVICESLOT_MODE = 1 -constant byte* const OUT = (byte*) 32768 -constant word SIZEOF_STRUCT_DEVICESLOT = $102 -constant word SIZEOF_STRUCT_DEVICESLOTSA = $204 +__constant struct deviceslot $0 = { hostSlot: 'A', mode: 'R', file: "f1" } +__constant struct deviceslot $1 = { hostSlot: 'B', mode: 'W', file: "f2" } +__constant char OFFSET_STRUCT_DEVICESLOT_MODE = 1 +__constant char * const OUT = (char *) 32768 +__constant unsigned int SIZEOF_STRUCT_DEVICESLOT = $102 +__constant unsigned int SIZEOF_STRUCT_DEVICESLOTSA = $204 void main() -byte*~ main::$0 zp[2]:6 22.0 -struct deviceslot*~ main::$13 zp[2]:4 11.0 -word~ main::$14 zp[2]:4 22.0 -word~ main::$15 zp[2]:4 22.0 -word~ main::$4 zp[2]:4 22.0 -struct deviceslot main::ds loadstore mem[258] -word main::i -word main::i#1 i zp[2]:2 16.5 -word main::i#2 i zp[2]:2 6.875 -struct deviceslot main::s1 loadstore mem[258] -struct deviceslot main::s2 loadstore mem[258] -constant struct deviceslotsA* main::slotsA = &main::ssA -volatile struct deviceslotsA main::ssA loadstore mem[516] +char *main::$0 // zp[2]:6 22.0 +struct deviceslot *main::$13 // zp[2]:4 11.0 +unsigned int main::$14 // zp[2]:4 22.0 +unsigned int main::$15 // zp[2]:4 22.0 +unsigned int main::$4 // zp[2]:4 22.0 +__loadstore struct deviceslot main::ds // mem[258] +unsigned int main::i +unsigned int main::i#1 // i zp[2]:2 16.5 +unsigned int main::i#2 // i zp[2]:2 6.875 +__loadstore struct deviceslot main::s1 // mem[258] +__loadstore struct deviceslot main::s2 // mem[258] +__constant struct deviceslotsA *main::slotsA = &main::ssA +__loadstore volatile struct deviceslotsA main::ssA // mem[516] zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$14 main::$15 main::$4 main::$13 ] diff --git a/src/test/ref/struct-49.cfg b/src/test/ref/struct-49.cfg index 7bd81d9a7..6ee629f00 100644 --- a/src/test/ref/struct-49.cfg +++ b/src/test/ref/struct-49.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@5 - [1] main::screen#6 = phi( main/(byte*) 1024, main::@5/main::screen#2 ) + [1] main::screen#6 = phi( main/(char *) 1024, main::@5/main::screen#2 ) [1] main::txt#2 = phi( main/Text, main::@5/main::txt#1 ) [1] main::i#2 = phi( main/0, main::@5/main::i#1 ) [2] if(main::i#2<$c*3/3) goto main::@2 @@ -13,7 +13,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] main::msg#0 = ((byte**)main::txt#2)[1] + [4] main::msg#0 = ((char **)main::txt#2)[1] to:main::@3 main::@3: scope:[main] from main::@2 main::@4 [5] main::screen#3 = phi( main::@2/main::screen#6, main::@4/main::screen#1 ) diff --git a/src/test/ref/struct-49.log b/src/test/ref/struct-49.log index 0febc6543..7ba698e6b 100644 --- a/src/test/ref/struct-49.log +++ b/src/test/ref/struct-49.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::txt#0 = Text main::i#0 = 0 to:main::@1 @@ -20,7 +20,7 @@ main::@2: scope:[main] from main::@1 main::i#5 = phi( main::@1/main::i#2 ) main::screen#6 = phi( main::@1/main::screen#7 ) main::txt#2 = phi( main::@1/main::txt#4 ) - main::$4 = (byte**)main::txt#2 + main::$4 = (char **)main::txt#2 main::$3 = main::$4 + OFFSET_STRUCT_$0_MSG main::msg#0 = *main::$3 to:main::@3 @@ -56,7 +56,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -65,66 +65,66 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* $0_msg[$18] = "Wolfgang Amadeus Mozart" -constant byte* $0_msg1[$19] = ""Eine kleine Nachtmusik"" -constant byte* $0_msg10[$16] = "Ullrich von Bassewitz" -constant byte* $0_msg11[$19] = "Press any key to quit..." -constant byte* $0_msg2[9] = "(KV 525)" -constant byte* $0_msg3[$1d] = "Ported to the SID in 1987 by" -constant byte* $0_msg4[$16] = "Joachim von Bassewitz" -constant byte* $0_msg5[$1b] = "(joachim@von-bassewitz.de)" -constant byte* $0_msg6[4] = "and" -constant byte* $0_msg7[$16] = "Ullrich von Bassewitz" -constant byte* $0_msg8[$1b] = "(ullrich@von-bassewitz.de)" -constant byte* $0_msg9[$14] = "C Implementation by" -constant byte OFFSET_STRUCT_$0_MSG = 1 -constant byte SIZEOF_STRUCT_$0 = 3 -constant struct $0* Text[] = { { Y: 2, Msg: $0_msg }, { Y: 4, Msg: $0_msg1 }, { Y: 5, Msg: $0_msg2 }, { Y: 9, Msg: $0_msg3 }, { Y: $b, Msg: $0_msg4 }, { Y: $c, Msg: $0_msg5 }, { Y: $d, Msg: $0_msg6 }, { Y: $e, Msg: $0_msg7 }, { Y: $f, Msg: $0_msg8 }, { Y: $12, Msg: $0_msg9 }, { Y: $13, Msg: $0_msg10 }, { Y: $17, Msg: $0_msg11 } } +__constant char $0_msg[$18] = "Wolfgang Amadeus Mozart" +__constant char $0_msg1[$19] = ""Eine kleine Nachtmusik"" +__constant char $0_msg10[$16] = "Ullrich von Bassewitz" +__constant char $0_msg11[$19] = "Press any key to quit..." +__constant char $0_msg2[9] = "(KV 525)" +__constant char $0_msg3[$1d] = "Ported to the SID in 1987 by" +__constant char $0_msg4[$16] = "Joachim von Bassewitz" +__constant char $0_msg5[$1b] = "(joachim@von-bassewitz.de)" +__constant char $0_msg6[4] = "and" +__constant char $0_msg7[$16] = "Ullrich von Bassewitz" +__constant char $0_msg8[$1b] = "(ullrich@von-bassewitz.de)" +__constant char $0_msg9[$14] = "C Implementation by" +__constant char OFFSET_STRUCT_$0_MSG = 1 +__constant char SIZEOF_STRUCT_$0 = 3 +__constant struct $0 Text[] = { { Y: 2, Msg: $0_msg }, { Y: 4, Msg: $0_msg1 }, { Y: 5, Msg: $0_msg2 }, { Y: 9, Msg: $0_msg3 }, { Y: $b, Msg: $0_msg4 }, { Y: $c, Msg: $0_msg5 }, { Y: $d, Msg: $0_msg6 }, { Y: $e, Msg: $0_msg7 }, { Y: $f, Msg: $0_msg8 }, { Y: $12, Msg: $0_msg9 }, { Y: $13, Msg: $0_msg10 }, { Y: $17, Msg: $0_msg11 } } void __start() void main() -word~ main::$0 -word~ main::$1 -bool~ main::$2 -byte**~ main::$3 -byte**~ main::$4 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte* main::msg -byte* main::msg#0 -byte* main::msg#1 -byte* main::msg#2 -byte* main::msg#3 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* main::screen#7 -struct $0* main::txt -struct $0* main::txt#0 -struct $0* main::txt#1 -struct $0* main::txt#2 -struct $0* main::txt#3 -struct $0* main::txt#4 -struct $0* main::txt#5 -struct $0* main::txt#6 +unsigned int main::$0 +unsigned int main::$1 +bool main::$2 +char **main::$3 +char **main::$4 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char *main::msg +char *main::msg#0 +char *main::msg#1 +char *main::msg#2 +char *main::msg#3 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +char *main::screen#7 +struct $0 *main::txt +struct $0 *main::txt#0 +struct $0 *main::txt#1 +struct $0 *main::txt#2 +struct $0 *main::txt#3 +struct $0 *main::txt#4 +struct $0 *main::txt#5 +struct $0 *main::txt#6 Adding number conversion cast (unumber) 0 in main::$5 = 0 != *main::msg#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::txt#2 = main::txt#4 Alias main::screen#6 = main::screen#7 @@ -142,7 +142,7 @@ Simple Condition main::$5 [13] if(0!=*main::msg#2) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [4] main::$0 = sizeof Text Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::txt#0 = Text Constant main::i#0 = 0 Constant main::$0 = sizeof Text @@ -168,15 +168,15 @@ Adding number conversion cast (unumber) $c in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c +Finalized unsigned number type (char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [2] main::$4 = (byte**)main::txt#2 keeping main::txt#2 +Inlining Noop Cast [2] main::$4 = (char **)main::txt#2 keeping main::txt#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::txt#0 Inlining constant with var siblings main::i#0 Constant inlined main::txt#0 = Text -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::$1 = $c*3/3 Constant inlined main::$0 = $c*3 Constant inlined SIZEOF_STRUCT_$0 = 3 @@ -205,7 +205,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@5 - [1] main::screen#6 = phi( main/(byte*) 1024, main::@5/main::screen#2 ) + [1] main::screen#6 = phi( main/(char *) 1024, main::@5/main::screen#2 ) [1] main::txt#2 = phi( main/Text, main::@5/main::txt#1 ) [1] main::i#2 = phi( main/0, main::@5/main::i#1 ) [2] if(main::i#2<$c*3/3) goto main::@2 @@ -214,7 +214,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] main::msg#0 = ((byte**)main::txt#2)[1] + [4] main::msg#0 = ((char **)main::txt#2)[1] to:main::@3 main::@3: scope:[main] from main::@2 main::@4 [5] main::screen#3 = phi( main::@2/main::screen#6, main::@4/main::screen#1 ) @@ -236,21 +236,21 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 3.3000000000000003 -byte* main::msg -byte* main::msg#0 22.0 -byte* main::msg#1 202.0 -byte* main::msg#2 103.75 -byte* main::screen -byte* main::screen#1 101.0 -byte* main::screen#2 7.333333333333333 -byte* main::screen#3 84.0 -byte* main::screen#6 7.333333333333333 -struct $0* main::txt -struct $0* main::txt#1 22.0 -struct $0* main::txt#2 2.0 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 3.3000000000000003 +char *main::msg +char *main::msg#0 // 22.0 +char *main::msg#1 // 202.0 +char *main::msg#2 // 103.75 +char *main::screen +char *main::screen#1 // 101.0 +char *main::screen#2 // 7.333333333333333 +char *main::screen#3 // 84.0 +char *main::screen#6 // 7.333333333333333 +struct $0 *main::txt +struct $0 *main::txt#1 // 22.0 +struct $0 *main::txt#2 // 2.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -267,14 +267,14 @@ Allocated zp[2]:3 [ main::txt#2 main::txt#1 ] Allocated zp[2]:5 [ main::msg#2 main::msg#0 main::msg#1 ] Allocated zp[2]:7 [ main::screen#3 main::screen#6 main::screen#2 main::screen#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] main::msg#0 = ((byte**)main::txt#2)[1] [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] ( [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] { } ) always clobbers reg byte a reg byte y +Statement [4] main::msg#0 = ((char **)main::txt#2)[1] [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] ( [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [6] if(0!=*main::msg#2) goto main::@4 [ main::i#2 main::txt#2 main::msg#2 main::screen#3 ] ( [ main::i#2 main::txt#2 main::msg#2 main::screen#3 ] { } ) always clobbers reg byte a reg byte y Statement [7] *main::screen#3 = ' ' [ main::i#2 main::txt#2 main::screen#3 ] ( [ main::i#2 main::txt#2 main::screen#3 ] { } ) always clobbers reg byte a reg byte y Statement [10] main::txt#1 = main::txt#2 + 3 [ main::i#1 main::txt#1 main::screen#2 ] ( [ main::i#1 main::txt#1 main::screen#2 ] { } ) always clobbers reg byte a Statement [11] *main::screen#3 = *main::msg#2 [ main::i#2 main::txt#2 main::msg#2 main::screen#3 ] ( [ main::i#2 main::txt#2 main::msg#2 main::screen#3 ] { } ) always clobbers reg byte a reg byte y -Statement [4] main::msg#0 = ((byte**)main::txt#2)[1] [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] ( [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] { } ) always clobbers reg byte a reg byte y +Statement [4] main::msg#0 = ((char **)main::txt#2)[1] [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] ( [ main::i#2 main::txt#2 main::screen#6 main::msg#0 ] { } ) always clobbers reg byte a reg byte y Statement [6] if(0!=*main::msg#2) goto main::@4 [ main::i#2 main::txt#2 main::msg#2 main::screen#3 ] ( [ main::i#2 main::txt#2 main::msg#2 main::screen#3 ] { } ) always clobbers reg byte a reg byte y Statement [7] *main::screen#3 = ' ' [ main::i#2 main::txt#2 main::screen#3 ] ( [ main::i#2 main::txt#2 main::screen#3 ] { } ) always clobbers reg byte a reg byte y Statement [10] main::txt#1 = main::txt#2 + 3 [ main::i#1 main::txt#1 main::screen#2 ] ( [ main::i#1 main::txt#1 main::screen#2 ] { } ) always clobbers reg byte a @@ -318,7 +318,7 @@ main: { .label txt = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#6 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#6 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -343,7 +343,7 @@ main: { rts // main::@2 __b2: - // [4] main::msg#0 = ((byte**)main::txt#2)[1] -- pbuz1=qbuz2_derefidx_vbuc1 + // [4] main::msg#0 = ((char **)main::txt#2)[1] -- pbuz1=qbuz2_derefidx_vbuc1 ldy #1 lda (txt),y sta.z msg @@ -480,34 +480,34 @@ Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* $0_msg[$18] = "Wolfgang Amadeus Mozart" -constant byte* $0_msg1[$19] = ""Eine kleine Nachtmusik"" -constant byte* $0_msg10[$16] = "Ullrich von Bassewitz" -constant byte* $0_msg11[$19] = "Press any key to quit..." -constant byte* $0_msg2[9] = "(KV 525)" -constant byte* $0_msg3[$1d] = "Ported to the SID in 1987 by" -constant byte* $0_msg4[$16] = "Joachim von Bassewitz" -constant byte* $0_msg5[$1b] = "(joachim@von-bassewitz.de)" -constant byte* $0_msg6[4] = "and" -constant byte* $0_msg8[$1b] = "(ullrich@von-bassewitz.de)" -constant byte* $0_msg9[$14] = "C Implementation by" -constant struct $0* Text[] = { { Y: 2, Msg: $0_msg }, { Y: 4, Msg: $0_msg1 }, { Y: 5, Msg: $0_msg2 }, { Y: 9, Msg: $0_msg3 }, { Y: $b, Msg: $0_msg4 }, { Y: $c, Msg: $0_msg5 }, { Y: $d, Msg: $0_msg6 }, { Y: $e, Msg: $0_msg10 }, { Y: $f, Msg: $0_msg8 }, { Y: $12, Msg: $0_msg9 }, { Y: $13, Msg: $0_msg10 }, { Y: $17, Msg: $0_msg11 } } +__constant char $0_msg[$18] = "Wolfgang Amadeus Mozart" +__constant char $0_msg1[$19] = ""Eine kleine Nachtmusik"" +__constant char $0_msg10[$16] = "Ullrich von Bassewitz" +__constant char $0_msg11[$19] = "Press any key to quit..." +__constant char $0_msg2[9] = "(KV 525)" +__constant char $0_msg3[$1d] = "Ported to the SID in 1987 by" +__constant char $0_msg4[$16] = "Joachim von Bassewitz" +__constant char $0_msg5[$1b] = "(joachim@von-bassewitz.de)" +__constant char $0_msg6[4] = "and" +__constant char $0_msg8[$1b] = "(ullrich@von-bassewitz.de)" +__constant char $0_msg9[$14] = "C Implementation by" +__constant struct $0 Text[] = { { Y: 2, Msg: $0_msg }, { Y: 4, Msg: $0_msg1 }, { Y: 5, Msg: $0_msg2 }, { Y: 9, Msg: $0_msg3 }, { Y: $b, Msg: $0_msg4 }, { Y: $c, Msg: $0_msg5 }, { Y: $d, Msg: $0_msg6 }, { Y: $e, Msg: $0_msg10 }, { Y: $f, Msg: $0_msg8 }, { Y: $12, Msg: $0_msg9 }, { Y: $13, Msg: $0_msg10 }, { Y: $17, Msg: $0_msg11 } } void main() -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 3.3000000000000003 -byte* main::msg -byte* main::msg#0 msg zp[2]:4 22.0 -byte* main::msg#1 msg zp[2]:4 202.0 -byte* main::msg#2 msg zp[2]:4 103.75 -byte* main::screen -byte* main::screen#1 screen zp[2]:6 101.0 -byte* main::screen#2 screen zp[2]:6 7.333333333333333 -byte* main::screen#3 screen zp[2]:6 84.0 -byte* main::screen#6 screen zp[2]:6 7.333333333333333 -struct $0* main::txt -struct $0* main::txt#1 txt zp[2]:2 22.0 -struct $0* main::txt#2 txt zp[2]:2 2.0 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 3.3000000000000003 +char *main::msg +char *main::msg#0 // msg zp[2]:4 22.0 +char *main::msg#1 // msg zp[2]:4 202.0 +char *main::msg#2 // msg zp[2]:4 103.75 +char *main::screen +char *main::screen#1 // screen zp[2]:6 101.0 +char *main::screen#2 // screen zp[2]:6 7.333333333333333 +char *main::screen#3 // screen zp[2]:6 84.0 +char *main::screen#6 // screen zp[2]:6 7.333333333333333 +struct $0 *main::txt +struct $0 *main::txt#1 // txt zp[2]:2 22.0 +struct $0 *main::txt#2 // txt zp[2]:2 2.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::txt#2 main::txt#1 ] @@ -538,7 +538,7 @@ main: { .label screen = 6 .label txt = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#6 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#6 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -563,7 +563,7 @@ main: { // main::@2 __b2: // char* msg = txt->Msg - // [4] main::msg#0 = ((byte**)main::txt#2)[1] -- pbuz1=qbuz2_derefidx_vbuc1 + // [4] main::msg#0 = ((char **)main::txt#2)[1] -- pbuz1=qbuz2_derefidx_vbuc1 ldy #1 lda (txt),y sta.z msg diff --git a/src/test/ref/struct-49.sym b/src/test/ref/struct-49.sym index 8a79348d6..66cadf410 100644 --- a/src/test/ref/struct-49.sym +++ b/src/test/ref/struct-49.sym @@ -1,31 +1,31 @@ -constant byte* $0_msg[$18] = "Wolfgang Amadeus Mozart" -constant byte* $0_msg1[$19] = ""Eine kleine Nachtmusik"" -constant byte* $0_msg10[$16] = "Ullrich von Bassewitz" -constant byte* $0_msg11[$19] = "Press any key to quit..." -constant byte* $0_msg2[9] = "(KV 525)" -constant byte* $0_msg3[$1d] = "Ported to the SID in 1987 by" -constant byte* $0_msg4[$16] = "Joachim von Bassewitz" -constant byte* $0_msg5[$1b] = "(joachim@von-bassewitz.de)" -constant byte* $0_msg6[4] = "and" -constant byte* $0_msg8[$1b] = "(ullrich@von-bassewitz.de)" -constant byte* $0_msg9[$14] = "C Implementation by" -constant struct $0* Text[] = { { Y: 2, Msg: $0_msg }, { Y: 4, Msg: $0_msg1 }, { Y: 5, Msg: $0_msg2 }, { Y: 9, Msg: $0_msg3 }, { Y: $b, Msg: $0_msg4 }, { Y: $c, Msg: $0_msg5 }, { Y: $d, Msg: $0_msg6 }, { Y: $e, Msg: $0_msg10 }, { Y: $f, Msg: $0_msg8 }, { Y: $12, Msg: $0_msg9 }, { Y: $13, Msg: $0_msg10 }, { Y: $17, Msg: $0_msg11 } } +__constant char $0_msg[$18] = "Wolfgang Amadeus Mozart" +__constant char $0_msg1[$19] = ""Eine kleine Nachtmusik"" +__constant char $0_msg10[$16] = "Ullrich von Bassewitz" +__constant char $0_msg11[$19] = "Press any key to quit..." +__constant char $0_msg2[9] = "(KV 525)" +__constant char $0_msg3[$1d] = "Ported to the SID in 1987 by" +__constant char $0_msg4[$16] = "Joachim von Bassewitz" +__constant char $0_msg5[$1b] = "(joachim@von-bassewitz.de)" +__constant char $0_msg6[4] = "and" +__constant char $0_msg8[$1b] = "(ullrich@von-bassewitz.de)" +__constant char $0_msg9[$14] = "C Implementation by" +__constant struct $0 Text[] = { { Y: 2, Msg: $0_msg }, { Y: 4, Msg: $0_msg1 }, { Y: 5, Msg: $0_msg2 }, { Y: 9, Msg: $0_msg3 }, { Y: $b, Msg: $0_msg4 }, { Y: $c, Msg: $0_msg5 }, { Y: $d, Msg: $0_msg6 }, { Y: $e, Msg: $0_msg10 }, { Y: $f, Msg: $0_msg8 }, { Y: $12, Msg: $0_msg9 }, { Y: $13, Msg: $0_msg10 }, { Y: $17, Msg: $0_msg11 } } void main() -byte main::i -byte main::i#1 reg byte x 11.0 -byte main::i#2 reg byte x 3.3000000000000003 -byte* main::msg -byte* main::msg#0 msg zp[2]:4 22.0 -byte* main::msg#1 msg zp[2]:4 202.0 -byte* main::msg#2 msg zp[2]:4 103.75 -byte* main::screen -byte* main::screen#1 screen zp[2]:6 101.0 -byte* main::screen#2 screen zp[2]:6 7.333333333333333 -byte* main::screen#3 screen zp[2]:6 84.0 -byte* main::screen#6 screen zp[2]:6 7.333333333333333 -struct $0* main::txt -struct $0* main::txt#1 txt zp[2]:2 22.0 -struct $0* main::txt#2 txt zp[2]:2 2.0 +char main::i +char main::i#1 // reg byte x 11.0 +char main::i#2 // reg byte x 3.3000000000000003 +char *main::msg +char *main::msg#0 // msg zp[2]:4 22.0 +char *main::msg#1 // msg zp[2]:4 202.0 +char *main::msg#2 // msg zp[2]:4 103.75 +char *main::screen +char *main::screen#1 // screen zp[2]:6 101.0 +char *main::screen#2 // screen zp[2]:6 7.333333333333333 +char *main::screen#3 // screen zp[2]:6 84.0 +char *main::screen#6 // screen zp[2]:6 7.333333333333333 +struct $0 *main::txt +struct $0 *main::txt#1 // txt zp[2]:2 22.0 +struct $0 *main::txt#2 // txt zp[2]:2 2.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::txt#2 main::txt#1 ] diff --git a/src/test/ref/struct-5.log b/src/test/ref/struct-5.log index 9608ce486..562daa3bc 100644 --- a/src/test/ref/struct-5.log +++ b/src/test/ref/struct-5.log @@ -8,7 +8,7 @@ void main() main: scope:[main] from __start main::q_x#0 = 0 main::q_y#0 = 0 - call point + call point point::return_x#0 = point::return_x#3 point::return_y#0 = point::return_y#3 to:main::@1 @@ -41,7 +41,7 @@ point::@return: scope:[point] from point void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -52,41 +52,41 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0_x -byte~ main::$0_y -constant byte* const main::SCREEN = (byte*)$400 -byte main::q_x -byte main::q_x#0 -byte main::q_x#1 -byte main::q_y -byte main::q_y#0 -byte main::q_y#1 +char main::$0_x +char main::$0_y +__constant char * const main::SCREEN = (char *)$400 +char main::q_x +char main::q_x#0 +char main::q_x#1 +char main::q_y +char main::q_y#0 +char main::q_y#1 struct Point point() -constant byte point::p_x = 2 -constant byte point::p_y = 3 +__constant char point::p_x = 2 +__constant char point::p_y = 3 struct Point point::return struct Point point::return#0 struct Point point::return#1 -byte point::return_x -byte point::return_x#0 -byte point::return_x#1 -byte point::return_x#2 -byte point::return_x#3 -byte point::return_y -byte point::return_y#0 -byte point::return_y#1 -byte point::return_y#2 -byte point::return_y#3 +char point::return_x +char point::return_x#0 +char point::return_x#1 +char point::return_x#2 +char point::return_x#3 +char point::return_y +char point::return_y#0 +char point::return_y#1 +char point::return_y#2 +char point::return_y#3 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::q_x#1 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::q_y#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias point::return_x#0 = point::return_x#2 Alias point::return_y#0 = point::return_y#2 @@ -142,7 +142,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call point + [1] call point to:main::@1 main::@1: scope:[main] from main [2] *main::SCREEN = point::p_x @@ -163,12 +163,12 @@ point::@return: scope:[point] from point VARIABLE REGISTER WEIGHTS void main() -byte main::q_x -byte main::q_y +char main::q_x +char main::q_y struct Point point() struct Point point::return -byte point::return_x -byte point::return_y +char point::return_x +char point::return_y Initial phi equivalence classes Complete equivalence classes @@ -204,7 +204,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [1] call point + // [1] call point // [5] phi from main to point [phi:main->point] point_from_main: jsr point @@ -248,15 +248,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::q_x -byte main::q_y +__constant char * const main::SCREEN = (char *) 1024 +char main::q_x +char main::q_y struct Point point() -constant byte point::p_x = 2 -constant byte point::p_y = 3 +__constant char point::p_x = 2 +__constant char point::p_y = 3 struct Point point::return -byte point::return_x -byte point::return_y +char point::return_x +char point::return_y @@ -280,7 +280,7 @@ Score: 30 main: { .label SCREEN = $400 // point() - // [1] call point + // [1] call point // [5] phi from main to point [phi:main->point] jsr point // main::@1 diff --git a/src/test/ref/struct-5.sym b/src/test/ref/struct-5.sym index 751b5aecd..0d7a67eb0 100644 --- a/src/test/ref/struct-5.sym +++ b/src/test/ref/struct-5.sym @@ -1,11 +1,11 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::q_x -byte main::q_y +__constant char * const main::SCREEN = (char *) 1024 +char main::q_x +char main::q_y struct Point point() -constant byte point::p_x = 2 -constant byte point::p_y = 3 +__constant char point::p_x = 2 +__constant char point::p_y = 3 struct Point point::return -byte point::return_x -byte point::return_y +char point::return_x +char point::return_y diff --git a/src/test/ref/struct-6.log b/src/test/ref/struct-6.log index 2f0438691..d9e675e84 100644 --- a/src/test/ref/struct-6.log +++ b/src/test/ref/struct-6.log @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,28 +26,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 struct Point main::c_center -byte main::c_center_x -byte main::c_center_x#0 -byte main::c_center_y -byte main::c_center_y#0 -constant byte main::c_radius = 5 -constant byte main::p_x = $a -constant byte main::p_y = $a +char main::c_center_x +char main::c_center_x#0 +char main::c_center_y +char main::c_center_y#0 +__constant char main::c_radius = 5 +__constant char main::p_x = $a +__constant char main::p_y = $a Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::c_center_x#0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::c_center_y#0 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::c_radius Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::c_center_x#0 = main::p_x Constant main::c_center_y#0 = main::p_y @@ -86,8 +86,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() struct Point main::c_center -byte main::c_center_x -byte main::c_center_y +char main::c_center_x +char main::c_center_y Initial phi equivalence classes Complete equivalence classes @@ -152,13 +152,13 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -constant byte main::c_radius = 5 -constant byte main::p_x = $a -constant byte main::p_y = $a +char main::c_center_x +char main::c_center_y +__constant char main::c_radius = 5 +__constant char main::p_x = $a +__constant char main::p_y = $a diff --git a/src/test/ref/struct-6.sym b/src/test/ref/struct-6.sym index 75765b5bb..b782bfa7c 100644 --- a/src/test/ref/struct-6.sym +++ b/src/test/ref/struct-6.sym @@ -1,9 +1,9 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -constant byte main::c_radius = 5 -constant byte main::p_x = $a -constant byte main::p_y = $a +char main::c_center_x +char main::c_center_y +__constant char main::c_radius = 5 +__constant char main::p_x = $a +__constant char main::p_y = $a diff --git a/src/test/ref/struct-7.log b/src/test/ref/struct-7.log index d5cb522e5..36bec63fb 100644 --- a/src/test/ref/struct-7.log +++ b/src/test/ref/struct-7.log @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,17 +27,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 struct Circle main::t_c1 struct Point main::t_c1_center -constant byte main::t_c1_center_x = 1 -constant byte main::t_c1_center_y = 2 -constant byte main::t_c1_radius = 3 +__constant char main::t_c1_center_x = 1 +__constant char main::t_c1_center_y = 2 +__constant char main::t_c1_radius = 3 struct Circle main::t_c2 struct Point main::t_c2_center -constant byte main::t_c2_center_x = 4 -constant byte main::t_c2_center_y = 5 -constant byte main::t_c2_radius = 6 +__constant char main::t_c2_center_x = 4 +__constant char main::t_c2_center_y = 5 +__constant char main::t_c2_radius = 6 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::t_c1_center_x Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::t_c1_center_y @@ -46,7 +46,7 @@ Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::t_c2_center Adding number conversion cast (unumber) 4 in main::SCREEN[4] = main::t_c2_center_y Adding number conversion cast (unumber) 5 in main::SCREEN[5] = main::t_c2_radius Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 @@ -54,12 +54,12 @@ Simplifying constant integer cast 3 Simplifying constant integer cast 4 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = main::t_c1_center_x Successful SSA optimization PassNSimplifyExpressionWithZero @@ -182,17 +182,17 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Circle main::t_c1 struct Point main::t_c1_center -constant byte main::t_c1_center_x = 1 -constant byte main::t_c1_center_y = 2 -constant byte main::t_c1_radius = 3 +__constant char main::t_c1_center_x = 1 +__constant char main::t_c1_center_y = 2 +__constant char main::t_c1_radius = 3 struct Circle main::t_c2 struct Point main::t_c2_center -constant byte main::t_c2_center_x = 4 -constant byte main::t_c2_center_y = 5 -constant byte main::t_c2_radius = 6 +__constant char main::t_c2_center_x = 4 +__constant char main::t_c2_center_y = 5 +__constant char main::t_c2_radius = 6 diff --git a/src/test/ref/struct-7.sym b/src/test/ref/struct-7.sym index 7492224b4..5516d4b5a 100644 --- a/src/test/ref/struct-7.sym +++ b/src/test/ref/struct-7.sym @@ -1,13 +1,13 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Circle main::t_c1 struct Point main::t_c1_center -constant byte main::t_c1_center_x = 1 -constant byte main::t_c1_center_y = 2 -constant byte main::t_c1_radius = 3 +__constant char main::t_c1_center_x = 1 +__constant char main::t_c1_center_y = 2 +__constant char main::t_c1_radius = 3 struct Circle main::t_c2 struct Point main::t_c2_center -constant byte main::t_c2_center_x = 4 -constant byte main::t_c2_center_y = 5 -constant byte main::t_c2_radius = 6 +__constant char main::t_c2_center_x = 4 +__constant char main::t_c2_center_y = 5 +__constant char main::t_c2_radius = 6 diff --git a/src/test/ref/struct-8.log b/src/test/ref/struct-8.log index 3f021c55f..4a5b035f7 100644 --- a/src/test/ref/struct-8.log +++ b/src/test/ref/struct-8.log @@ -17,7 +17,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,32 +28,32 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 struct Point main::c_center -byte main::c_center_x -byte main::c_center_x#0 -byte main::c_center_y -byte main::c_center_y#0 -constant byte main::c_radius = 5 -constant byte main::p_x = $a -constant byte main::p_y = $a -byte main::point_x -byte main::point_x#0 -byte main::point_y -byte main::point_y#0 +char main::c_center_x +char main::c_center_x#0 +char main::c_center_y +char main::c_center_y#0 +__constant char main::c_radius = 5 +__constant char main::p_x = $a +__constant char main::p_y = $a +char main::point_x +char main::point_x#0 +char main::point_y +char main::point_y#0 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::point_x#0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::point_y#0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::c_radius Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::point_x#0 = main::c_center_x#0 Alias main::point_y#0 = main::c_center_y#0 @@ -95,10 +95,10 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -byte main::point_x -byte main::point_y +char main::c_center_x +char main::c_center_y +char main::point_x +char main::point_y Initial phi equivalence classes Complete equivalence classes @@ -163,15 +163,15 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -constant byte main::c_radius = 5 -constant byte main::p_x = $a -constant byte main::p_y = $a -byte main::point_x -byte main::point_y +char main::c_center_x +char main::c_center_y +__constant char main::c_radius = 5 +__constant char main::p_x = $a +__constant char main::p_y = $a +char main::point_x +char main::point_y diff --git a/src/test/ref/struct-8.sym b/src/test/ref/struct-8.sym index 83c8ead9d..aff46c9bd 100644 --- a/src/test/ref/struct-8.sym +++ b/src/test/ref/struct-8.sym @@ -1,11 +1,11 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -constant byte main::c_radius = 5 -constant byte main::p_x = $a -constant byte main::p_y = $a -byte main::point_x -byte main::point_y +char main::c_center_x +char main::c_center_y +__constant char main::c_radius = 5 +__constant char main::p_x = $a +__constant char main::p_y = $a +char main::point_x +char main::point_y diff --git a/src/test/ref/struct-9.log b/src/test/ref/struct-9.log index f32fb3700..07e32c9b2 100644 --- a/src/test/ref/struct-9.log +++ b/src/test/ref/struct-9.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,19 +30,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 +__constant char * const main::SCREEN = (char *)$400 struct Point main::c_center -byte main::c_center_x -byte main::c_center_x#0 -byte main::c_center_x#1 -byte main::c_center_y -byte main::c_center_y#0 -byte main::c_center_y#1 -byte main::c_radius -byte main::c_radius#0 -byte main::c_radius#1 -constant byte main::p_x = $a -constant byte main::p_y = $a +char main::c_center_x +char main::c_center_x#0 +char main::c_center_x#1 +char main::c_center_y +char main::c_center_y#0 +char main::c_center_y#1 +char main::c_radius +char main::c_radius#0 +char main::c_radius#1 +__constant char main::p_x = $a +__constant char main::p_y = $a Adding number conversion cast (unumber) $c in main::c_radius#1 = $c Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::c_center_x#1 @@ -51,16 +51,16 @@ Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::c_radius#1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::c_radius#1 = (unumber)$c Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $c Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::c_center_x#0 = 0 Constant main::c_center_y#0 = 0 @@ -107,9 +107,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -byte main::c_radius +char main::c_center_x +char main::c_center_y +char main::c_radius Initial phi equivalence classes Complete equivalence classes @@ -174,14 +174,14 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -byte main::c_radius -constant byte main::c_radius#1 c_radius = $c -constant byte main::p_x = $a -constant byte main::p_y = $a +char main::c_center_x +char main::c_center_y +char main::c_radius +__constant char main::c_radius#1 = $c // c_radius +__constant char main::p_x = $a +__constant char main::p_y = $a diff --git a/src/test/ref/struct-9.sym b/src/test/ref/struct-9.sym index 590eaadb0..55d7f287d 100644 --- a/src/test/ref/struct-9.sym +++ b/src/test/ref/struct-9.sym @@ -1,10 +1,10 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 struct Point main::c_center -byte main::c_center_x -byte main::c_center_y -byte main::c_radius -constant byte main::c_radius#1 c_radius = $c -constant byte main::p_x = $a -constant byte main::p_y = $a +char main::c_center_x +char main::c_center_y +char main::c_radius +__constant char main::c_radius#1 = $c // c_radius +__constant char main::p_x = $a +__constant char main::p_y = $a diff --git a/src/test/ref/struct-directives.cfg b/src/test/ref/struct-directives.cfg index f6d824e4e..8d6bee0a6 100644 --- a/src/test/ref/struct-directives.cfg +++ b/src/test/ref/struct-directives.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *SCREEN = *((const byte*)&y) - [1] *SCREEN = *((byte*)&y+1) + [0] *SCREEN = *((const char *)&y) + [1] *SCREEN = *((char *)&y+1) to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/struct-directives.log b/src/test/ref/struct-directives.log index e4ad1e55c..a354abc37 100644 --- a/src/test/ref/struct-directives.log +++ b/src/test/ref/struct-directives.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - SCREEN[0] = *((const byte*)&y+OFFSET_STRUCT_$0_X) - SCREEN[0] = *((byte*)&y+OFFSET_STRUCT_$0_Z) + SCREEN[0] = *((const char *)&y+OFFSET_STRUCT_$0_X) + SCREEN[0] = *((char *)&y+OFFSET_STRUCT_$0_Z) to:main::@return main::@return: scope:[main] from main return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,26 +21,26 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_$0_X = 0 -constant byte OFFSET_STRUCT_$0_Z = 1 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_STRUCT_$0_X = 0 +__constant char OFFSET_STRUCT_$0_Z = 1 +__constant char * const SCREEN = (char *)$400 void __start() void main() -volatile struct $0 y loadstore = { x: 1, z: 2 } +__loadstore volatile struct $0 y = { x: 1, z: 2 } -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((const byte*)&y+OFFSET_STRUCT_$0_X) -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&y+OFFSET_STRUCT_$0_Z) +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((const char *)&y+OFFSET_STRUCT_$0_X) +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&y+OFFSET_STRUCT_$0_Z) Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (const byte*)&y in [0] SCREEN[0] = *((const byte*)&y+OFFSET_STRUCT_$0_X) -Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *((const byte*)&y) -Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((byte*)&y+OFFSET_STRUCT_$0_Z) +Simplifying expression containing zero (const char *)&y in [0] SCREEN[0] = *((const char *)&y+OFFSET_STRUCT_$0_X) +Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *((const char *)&y) +Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((char *)&y+OFFSET_STRUCT_$0_Z) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_$0_X Successful SSA optimization PassNEliminateUnusedVars @@ -60,8 +60,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = *((const byte*)&y) - [1] *SCREEN = *((byte*)&y+1) + [0] *SCREEN = *((const char *)&y) + [1] *SCREEN = *((char *)&y+1) to:main::@return main::@return: scope:[main] from main [2] return @@ -70,7 +70,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -volatile struct $0 y loadstore = { x: 1, z: 2 } +__loadstore volatile struct $0 y = { x: 1, z: 2 } Initial phi equivalence classes Added variable y to live range equivalence class [ y ] @@ -78,8 +78,8 @@ Complete equivalence classes [ y ] Allocated mem[2] [ y ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = *((const byte*)&y) [ y ] ( [ y ] { } ) always clobbers reg byte a -Statement [1] *SCREEN = *((byte*)&y+1) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = *((const char *)&y) [ y ] ( [ y ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *((char *)&y+1) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[2] [ y ] : mem[2] , REGISTER UPLIFT SCOPES @@ -108,10 +108,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *SCREEN = *((const byte*)&y) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((const char *)&y) -- _deref_pbuc1=_deref_pbuc2 lda y sta SCREEN - // [1] *SCREEN = *((byte*)&y+1) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&y+1) -- _deref_pbuc1=_deref_pbuc2 lda y+1 sta SCREEN jmp __breturn @@ -131,9 +131,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -volatile struct $0 y loadstore mem[2] = { x: 1, z: 2 } +__loadstore volatile struct $0 y = { x: 1, z: 2 } // mem[2] mem[2] [ y ] @@ -158,11 +158,11 @@ Score: 22 // main main: { // SCREEN[0] = y.x - // [0] *SCREEN = *((const byte*)&y) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((const char *)&y) -- _deref_pbuc1=_deref_pbuc2 lda y sta SCREEN // SCREEN[0] = y.z - // [1] *SCREEN = *((byte*)&y+1) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&y+1) -- _deref_pbuc1=_deref_pbuc2 lda y+1 sta SCREEN // main::@return diff --git a/src/test/ref/struct-directives.sym b/src/test/ref/struct-directives.sym index d2adc7fae..e14a7d50f 100644 --- a/src/test/ref/struct-directives.sym +++ b/src/test/ref/struct-directives.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -volatile struct $0 y loadstore mem[2] = { x: 1, z: 2 } +__loadstore volatile struct $0 y = { x: 1, z: 2 } // mem[2] mem[2] [ y ] diff --git a/src/test/ref/struct-pointer-ints.asm b/src/test/ref/struct-pointer-ints.asm index 680911933..c25842e8e 100644 --- a/src/test/ref/struct-pointer-ints.asm +++ b/src/test/ref/struct-pointer-ints.asm @@ -24,6 +24,7 @@ main: { // } rts } +// void update(struct myStruct *s, unsigned int size) update: { .const size = $3e8 .label s = main.s diff --git a/src/test/ref/struct-pointer-ints.cfg b/src/test/ref/struct-pointer-ints.cfg index e66df5eeb..6d2830f84 100644 --- a/src/test/ref/struct-pointer-ints.cfg +++ b/src/test/ref/struct-pointer-ints.cfg @@ -1,16 +1,16 @@ -signed word main() +int main() main: scope:[main] from [0] *(&main::s) = memset(struct myStruct, SIZEOF_STRUCT_MYSTRUCT) - [1] call update + [1] call update to:main::@return main::@return: scope:[main] from main [2] return to:@return -void update(struct myStruct* update::s , word update::size) +void update(struct myStruct *s , unsigned int size) update: scope:[update] from main - [3] *((word*)update::s#0) = *((word*)update::s#0) + update::size#0 + [3] *((unsigned int *)update::s#0) = *((unsigned int *)update::s#0) + update::size#0 to:update::@return update::@return: scope:[update] from update [4] return diff --git a/src/test/ref/struct-pointer-ints.log b/src/test/ref/struct-pointer-ints.log index ee245ce86..439c9747a 100644 --- a/src/test/ref/struct-pointer-ints.log +++ b/src/test/ref/struct-pointer-ints.log @@ -3,13 +3,13 @@ Removing C-classic struct-unwound assignment main::s = struct-unwound {*(&main:: CONTROL FLOW GRAPH SSA -void update(struct myStruct* update::s , word update::size) +void update(struct myStruct *s , unsigned int size) update: scope:[update] from main update::size#1 = phi( main/update::size#0 ) update::s#1 = phi( main/update::s#0 ) - update::$2 = (word*)update::s#1 + update::$2 = (unsigned int *)update::s#1 update::$0 = update::$2 + OFFSET_STRUCT_MYSTRUCT_A - update::$3 = (word*)update::s#1 + update::$3 = (unsigned int *)update::s#1 update::$1 = update::$3 + OFFSET_STRUCT_MYSTRUCT_A *update::$1 = *update::$0 + update::size#1 to:update::@return @@ -17,12 +17,12 @@ update::@return: scope:[update] from update return to:@return -signed word main() +int main() main: scope:[main] from __start *(&main::s) = memset(struct myStruct, SIZEOF_STRUCT_MYSTRUCT) update::s#0 = &main::s update::size#0 = $3e8 - call update + call update to:main::@1 main::@1: scope:[main] from main main::return#0 = 0 @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main main::return#2 = main::return#1 to:__start::@1 __start::@1: scope:[__start] from __start @@ -45,27 +45,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_MYSTRUCT_A = 0 -constant byte SIZEOF_STRUCT_MYSTRUCT = 4 +__constant char OFFSET_STRUCT_MYSTRUCT_A = 0 +__constant char SIZEOF_STRUCT_MYSTRUCT = 4 void __start() -signed word main() -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 -volatile struct myStruct main::s loadstore -void update(struct myStruct* update::s , word update::size) -word*~ update::$0 -word*~ update::$1 -word*~ update::$2 -word*~ update::$3 -struct myStruct* update::s -struct myStruct* update::s#0 -struct myStruct* update::s#1 -word update::size -word update::size#0 -word update::size#1 +int main() +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 +__loadstore volatile struct myStruct main::s +void update(struct myStruct *s , unsigned int size) +unsigned int *update::$0 +unsigned int *update::$1 +unsigned int *update::$2 +unsigned int *update::$3 +struct myStruct *update::s +struct myStruct *update::s#0 +struct myStruct *update::s#1 +unsigned int update::size +unsigned int update::size#0 +unsigned int update::size#1 Adding number conversion cast (unumber) $3e8 in update::size#0 = $3e8 Adding number conversion cast (snumber) 0 in main::return#0 = 0 @@ -76,8 +76,8 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3e8 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (unsigned int) $3e8 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::return#0 = main::return#3 main::return#1 Successful SSA optimization Pass2AliasElimination @@ -88,8 +88,8 @@ Constant update::s#0 = &main::s Constant update::size#0 = $3e8 Constant main::return#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Constant update::$2 = (word*)update::s#0 -Constant update::$3 = (word*)update::s#0 +Constant update::$2 = (unsigned int *)update::s#0 +Constant update::$3 = (unsigned int *)update::s#0 Constant main::return#2 = main::return#0 Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [5] *update::$1 = *update::$0 + update::size#0 -- update::$2[OFFSET_STRUCT_MYSTRUCT_A] @@ -112,8 +112,8 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined update::$2 = (word*)update::s#0 -Constant inlined update::$3 = (word*)update::s#0 +Constant inlined update::$2 = (unsigned int *)update::s#0 +Constant inlined update::$3 = (unsigned int *)update::s#0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main::@1 CALL GRAPH @@ -125,18 +125,18 @@ Culled Empty Block label main::@1 FINAL CONTROL FLOW GRAPH -signed word main() +int main() main: scope:[main] from [0] *(&main::s) = memset(struct myStruct, SIZEOF_STRUCT_MYSTRUCT) - [1] call update + [1] call update to:main::@return main::@return: scope:[main] from main [2] return to:@return -void update(struct myStruct* update::s , word update::size) +void update(struct myStruct *s , unsigned int size) update: scope:[update] from main - [3] *((word*)update::s#0) = *((word*)update::s#0) + update::size#0 + [3] *((unsigned int *)update::s#0) = *((unsigned int *)update::s#0) + update::size#0 to:update::@return update::@return: scope:[update] from update [4] return @@ -144,12 +144,12 @@ update::@return: scope:[update] from update VARIABLE REGISTER WEIGHTS -signed word main() -signed word main::return -volatile struct myStruct main::s loadstore -void update(struct myStruct* update::s , word update::size) -struct myStruct* update::s -word update::size +int main() +int main::return +__loadstore volatile struct myStruct main::s +void update(struct myStruct *s , unsigned int size) +struct myStruct *update::s +unsigned int update::size Initial phi equivalence classes Added variable main::s to live range equivalence class [ main::s ] @@ -158,7 +158,7 @@ Complete equivalence classes Allocated zp[4]:2 [ main::s ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::s) = memset(struct myStruct, SIZEOF_STRUCT_MYSTRUCT) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [3] *((word*)update::s#0) = *((word*)update::s#0) + update::size#0 [ ] ( update:1 [ ] { } ) always clobbers reg byte a +Statement [3] *((unsigned int *)update::s#0) = *((unsigned int *)update::s#0) + update::size#0 [ ] ( update:1 [ ] { } ) always clobbers reg byte a Potential registers zp[4]:2 [ main::s ] : zp[4]:2 , REGISTER UPLIFT SCOPES @@ -198,7 +198,7 @@ main: { dey sta s,y bne !- - // [1] call update + // [1] call update jsr update jmp __breturn // main::@return @@ -207,10 +207,11 @@ main: { rts } // update +// void update(struct myStruct *s, unsigned int size) update: { .const size = $3e8 .label s = main.s - // [3] *((word*)update::s#0) = *((word*)update::s#0) + update::size#0 -- _deref_pwuc1=_deref_pwuc1_plus_vwuc2 + // [3] *((unsigned int *)update::s#0) = *((unsigned int *)update::s#0) + update::size#0 -- _deref_pwuc1=_deref_pwuc1_plus_vwuc2 lda.z s clc adc #a += size - // [3] *((word*)update::s#0) = *((word*)update::s#0) + update::size#0 -- _deref_pwuc1=_deref_pwuc1_plus_vwuc2 + // [3] *((unsigned int *)update::s#0) = *((unsigned int *)update::s#0) + update::size#0 -- _deref_pwuc1=_deref_pwuc1_plus_vwuc2 lda.z s clc adc #BORDER = 0 - // [0] *((byte*)COLORS) = 0 -- _deref_pbuc1=vbuc2 + // [0] *((char *)COLORS) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta COLORS // *BG_COLOR = 6 diff --git a/src/test/ref/struct-pointer-to-member.sym b/src/test/ref/struct-pointer-to-member.sym index a6e92c8e4..b5f858cc9 100644 --- a/src/test/ref/struct-pointer-to-member.sym +++ b/src/test/ref/struct-pointer-to-member.sym @@ -1,5 +1,5 @@ -constant byte* const BG_COLOR = (byte*)COLORS+OFFSET_STRUCT_SCREEN_COLORS_BG0 -constant struct SCREEN_COLORS* const COLORS = (struct SCREEN_COLORS*) 53280 -constant byte OFFSET_STRUCT_SCREEN_COLORS_BG0 = 1 +__constant char * const BG_COLOR = (char *)COLORS+OFFSET_STRUCT_SCREEN_COLORS_BG0 +__constant struct SCREEN_COLORS * const COLORS = (struct SCREEN_COLORS *) 53280 +__constant char OFFSET_STRUCT_SCREEN_COLORS_BG0 = 1 void main() diff --git a/src/test/ref/struct-pointer-typing.cfg b/src/test/ref/struct-pointer-typing.cfg index de039cc90..054b6a05b 100644 --- a/src/test/ref/struct-pointer-typing.cfg +++ b/src/test/ref/struct-pointer-typing.cfg @@ -12,7 +12,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] ((word*)(struct Block*)((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] + [4] ((unsigned int *)(struct Block *)((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] [5] main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_BLOCK [6] main::i#1 = ++ main::i#2 to:main::@1 diff --git a/src/test/ref/struct-pointer-typing.log b/src/test/ref/struct-pointer-typing.log index 3fda80cff..6caf4f1b6 100644 --- a/src/test/ref/struct-pointer-typing.log +++ b/src/test/ref/struct-pointer-typing.log @@ -15,13 +15,13 @@ main::@1: scope:[main] from main main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::ptr#2 = phi( main::@1/main::ptr#3 ) - main::ptr2#0 = (struct Block*) 0 - main::$4 = (word*)main::ptr#2 + main::ptr2#0 = (struct Block *) 0 + main::$4 = (unsigned int *)main::ptr#2 main::$1 = main::$4 + OFFSET_STRUCT_BLOCK_PREV - main::ptr2#1 = (struct Block*)*main::$1 - main::$5 = (word*)main::ptr#2 + main::ptr2#1 = (struct Block *)*main::$1 + main::$5 = (unsigned int *)main::ptr#2 main::$2 = main::$5 + OFFSET_STRUCT_BLOCK_NEXT - main::$6 = (word*)main::ptr2#1 + main::$6 = (unsigned int *)main::ptr2#1 main::$3 = main::$6 + OFFSET_STRUCT_BLOCK_NEXT *main::$3 = *main::$2 main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_BLOCK @@ -33,7 +33,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,38 +42,38 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_BLOCK_NEXT = 2 -constant byte OFFSET_STRUCT_BLOCK_PREV = 4 -constant byte SIZEOF_STRUCT_BLOCK = 6 +__constant char OFFSET_STRUCT_BLOCK_NEXT = 2 +__constant char OFFSET_STRUCT_BLOCK_PREV = 4 +__constant char SIZEOF_STRUCT_BLOCK = 6 void __start() -constant struct Block* blocks[$a] = { fill( $a, 0) } +__constant struct Block blocks[$a] = { fill( $a, 0) } void main() -bool~ main::$0 -word*~ main::$1 -word*~ main::$2 -word*~ main::$3 -word*~ main::$4 -word*~ main::$5 -word*~ main::$6 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -struct Block* main::ptr -struct Block* main::ptr#0 -struct Block* main::ptr#1 -struct Block* main::ptr#2 -struct Block* main::ptr#3 -struct Block* main::ptr2 -struct Block* main::ptr2#0 -struct Block* main::ptr2#1 +bool main::$0 +unsigned int *main::$1 +unsigned int *main::$2 +unsigned int *main::$3 +unsigned int *main::$4 +unsigned int *main::$5 +unsigned int *main::$6 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +struct Block *main::ptr +struct Block *main::ptr#0 +struct Block *main::ptr#1 +struct Block *main::ptr#2 +struct Block *main::ptr#3 +struct Block *main::ptr2 +struct Block *main::ptr2#0 +struct Block *main::ptr2#1 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::ptr#2 = main::ptr#3 Alias main::i#2 = main::i#3 @@ -82,9 +82,9 @@ Simple Condition main::$0 [4] if(main::i#2<$a) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::ptr#0 = blocks Constant main::i#0 = 0 -Constant main::ptr2#0 = (struct Block*) 0 +Constant main::ptr2#0 = (struct Block *) 0 Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [8] main::ptr2#1 = (struct Block*)*main::$1 -- main::$4[OFFSET_STRUCT_BLOCK_PREV] +Converting *(pointer+n) to pointer[n] [8] main::ptr2#1 = (struct Block *)*main::$1 -- main::$4[OFFSET_STRUCT_BLOCK_PREV] Converting *(pointer+n) to pointer[n] [13] *main::$3 = *main::$2 -- main::$5[OFFSET_STRUCT_BLOCK_NEXT] Converting *(pointer+n) to pointer[n] [13] *main::$3 = main::$5[OFFSET_STRUCT_BLOCK_NEXT] -- main::$6[OFFSET_STRUCT_BLOCK_NEXT] Successful SSA optimization Pass2InlineDerefIdx @@ -98,18 +98,18 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining Noop Cast [2] main::$4 = (word*)main::ptr#2 keeping main::ptr#2 -Inlining Noop Cast [3] main::ptr2#1 = (struct Block*)main::$4[OFFSET_STRUCT_BLOCK_PREV] keeping main::$4[OFFSET_STRUCT_BLOCK_PREV] -Inlining Noop Cast [4] main::$5 = (word*)main::ptr#2 keeping main::ptr#2 -Inlining Noop Cast [5] main::$6 = (word*)main::ptr2#1 keeping main::ptr2#1 +Inlining Noop Cast [2] main::$4 = (unsigned int *)main::ptr#2 keeping main::ptr#2 +Inlining Noop Cast [3] main::ptr2#1 = (struct Block *)main::$4[OFFSET_STRUCT_BLOCK_PREV] keeping main::$4[OFFSET_STRUCT_BLOCK_PREV] +Inlining Noop Cast [4] main::$5 = (unsigned int *)main::ptr#2 keeping main::ptr#2 +Inlining Noop Cast [5] main::$6 = (unsigned int *)main::ptr2#1 keeping main::ptr2#1 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::ptr#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::ptr#0 = blocks Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -135,7 +135,7 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] ((word*)(struct Block*)((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] + [4] ((unsigned int *)(struct Block *)((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] [5] main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_BLOCK [6] main::i#1 = ++ main::i#2 to:main::@1 @@ -143,13 +143,13 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 8.25 -struct Block* main::ptr -struct Block* main::ptr#1 11.0 -struct Block* main::ptr#2 7.333333333333333 -struct Block* main::ptr2 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 8.25 +struct Block *main::ptr +struct Block *main::ptr#1 // 11.0 +struct Block *main::ptr#2 // 7.333333333333333 +struct Block *main::ptr2 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -160,11 +160,11 @@ Complete equivalence classes Allocated zp[1]:2 [ main::i#2 main::i#1 ] Allocated zp[2]:3 [ main::ptr#2 main::ptr#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [4] ((word*)(struct Block*)((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] [ main::i#2 main::ptr#2 ] ( [ main::i#2 main::ptr#2 ] { } ) always clobbers reg byte a reg byte y +Statement [4] ((unsigned int *)(struct Block *)((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] [ main::i#2 main::ptr#2 ] ( [ main::i#2 main::ptr#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [5] main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_BLOCK [ main::i#2 main::ptr#1 ] ( [ main::i#2 main::ptr#1 ] { } ) always clobbers reg byte a -Statement [4] ((word*)(struct Block*)((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] [ main::i#2 main::ptr#2 ] ( [ main::i#2 main::ptr#2 ] { } ) always clobbers reg byte a reg byte y +Statement [4] ((unsigned int *)(struct Block *)((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] [ main::i#2 main::ptr#2 ] ( [ main::i#2 main::ptr#2 ] { } ) always clobbers reg byte a reg byte y Statement [5] main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_BLOCK [ main::i#2 main::ptr#1 ] ( [ main::i#2 main::ptr#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , Potential registers zp[2]:3 [ main::ptr#2 main::ptr#1 ] : zp[2]:3 , @@ -220,7 +220,7 @@ main: { rts // main::@2 __b2: - // [4] ((word*)(struct Block*)((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] -- (qwuz1_derefidx_vbuc1)_derefidx_vbuc2=pwuz1_derefidx_vbuc2 + // [4] ((unsigned int *)(struct Block *)((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] -- (qwuz1_derefidx_vbuc1)_derefidx_vbuc2=pwuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_BLOCK_PREV lda (ptr),y sta.z $fe @@ -263,18 +263,18 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_BLOCK_NEXT = 2 -constant byte OFFSET_STRUCT_BLOCK_PREV = 4 -constant byte SIZEOF_STRUCT_BLOCK = 6 -constant struct Block* blocks[$a] = { fill( $a, 0) } +__constant char OFFSET_STRUCT_BLOCK_NEXT = 2 +__constant char OFFSET_STRUCT_BLOCK_PREV = 4 +__constant char SIZEOF_STRUCT_BLOCK = 6 +__constant struct Block blocks[$a] = { fill( $a, 0) } void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 8.25 -struct Block* main::ptr -struct Block* main::ptr#1 ptr zp[2]:2 11.0 -struct Block* main::ptr#2 ptr zp[2]:2 7.333333333333333 -struct Block* main::ptr2 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 8.25 +struct Block *main::ptr +struct Block *main::ptr#1 // ptr zp[2]:2 11.0 +struct Block *main::ptr#2 // ptr zp[2]:2 7.333333333333333 +struct Block *main::ptr2 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::ptr#2 main::ptr#1 ] @@ -322,7 +322,7 @@ main: { // main::@2 __b2: // ptr2->next = ptr->next - // [4] ((word*)(struct Block*)((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((word*)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] -- (qwuz1_derefidx_vbuc1)_derefidx_vbuc2=pwuz1_derefidx_vbuc2 + // [4] ((unsigned int *)(struct Block *)((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_PREV])[OFFSET_STRUCT_BLOCK_NEXT] = ((unsigned int *)main::ptr#2)[OFFSET_STRUCT_BLOCK_NEXT] -- (qwuz1_derefidx_vbuc1)_derefidx_vbuc2=pwuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_BLOCK_PREV lda (ptr),y sta.z $fe diff --git a/src/test/ref/struct-pointer-typing.sym b/src/test/ref/struct-pointer-typing.sym index 6ab70e5dc..fc72f66bb 100644 --- a/src/test/ref/struct-pointer-typing.sym +++ b/src/test/ref/struct-pointer-typing.sym @@ -1,15 +1,15 @@ -constant byte OFFSET_STRUCT_BLOCK_NEXT = 2 -constant byte OFFSET_STRUCT_BLOCK_PREV = 4 -constant byte SIZEOF_STRUCT_BLOCK = 6 -constant struct Block* blocks[$a] = { fill( $a, 0) } +__constant char OFFSET_STRUCT_BLOCK_NEXT = 2 +__constant char OFFSET_STRUCT_BLOCK_PREV = 4 +__constant char SIZEOF_STRUCT_BLOCK = 6 +__constant struct Block blocks[$a] = { fill( $a, 0) } void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 8.25 -struct Block* main::ptr -struct Block* main::ptr#1 ptr zp[2]:2 11.0 -struct Block* main::ptr#2 ptr zp[2]:2 7.333333333333333 -struct Block* main::ptr2 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 8.25 +struct Block *main::ptr +struct Block *main::ptr#1 // ptr zp[2]:2 11.0 +struct Block *main::ptr#2 // ptr zp[2]:2 7.333333333333333 +struct Block *main::ptr2 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::ptr#2 main::ptr#1 ] diff --git a/src/test/ref/struct-pos-fill.cfg b/src/test/ref/struct-pos-fill.cfg index d6f9001f4..c5f754a13 100644 --- a/src/test/ref/struct-pos-fill.cfg +++ b/src/test/ref/struct-pos-fill.cfg @@ -28,8 +28,8 @@ main::@5: scope:[main] from main::@3 to:main::@1 main::@4: scope:[main] from main::@3 [9] main::$3 = idx#13 << 1 - [10] ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 - [11] ((byte*)p)[main::$3] = x#12 + [10] ((char *)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 + [11] ((char *)p)[main::$3] = x#12 [12] idx#0 = ++ idx#13 [13] x#1 = x#12 + XSPACE [14] row#1 = ++ row#14 diff --git a/src/test/ref/struct-pos-fill.log b/src/test/ref/struct-pos-fill.log index f3238e356..4b4684dc6 100644 --- a/src/test/ref/struct-pos-fill.log +++ b/src/test/ref/struct-pos-fill.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -43,9 +43,9 @@ main::@4: scope:[main] from main::@3 y#5 = phi( main::@3/y#10 ) idx#5 = phi( main::@3/idx#9 ) main::$2 = idx#5 * SIZEOF_STRUCT_POS - ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$2] = y#5 + ((char *)p+OFFSET_STRUCT_POS_Y)[main::$2] = y#5 main::$3 = idx#5 * SIZEOF_STRUCT_POS - ((byte*)p+OFFSET_STRUCT_POS_X)[main::$3] = x#7 + ((char *)p+OFFSET_STRUCT_POS_X)[main::$3] = x#7 idx#0 = ++ idx#5 x#1 = x#7 + XSPACE row#1 = ++ row#7 @@ -89,7 +89,7 @@ __start::@1: scope:[__start] from __start::__init1 row#12 = phi( __start::__init1/row#3 ) x#13 = phi( __start::__init1/x#3 ) line#12 = phi( __start::__init1/line#3 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 y#8 = phi( __start::@1/y#1 ) @@ -118,99 +118,99 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POS_X = 0 -constant byte OFFSET_STRUCT_POS_Y = 1 -constant byte SIZEOF_STRUCT_POS = 2 -constant byte XSPACE = $14 -constant byte YSPACE = $14 +__constant char OFFSET_STRUCT_POS_X = 0 +__constant char OFFSET_STRUCT_POS_Y = 1 +__constant char SIZEOF_STRUCT_POS = 2 +__constant char XSPACE = $14 +__constant char YSPACE = $14 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 -byte line -byte line#0 -byte line#1 -byte line#10 -byte line#11 -byte line#12 -byte line#13 -byte line#14 -byte line#2 -byte line#3 -byte line#4 -byte line#5 -byte line#6 -byte line#7 -byte line#8 -byte line#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 +char line +char line#0 +char line#1 +char line#10 +char line#11 +char line#12 +char line#13 +char line#14 +char line#2 +char line#3 +char line#4 +char line#5 +char line#6 +char line#7 +char line#8 +char line#9 void main() -bool~ main::$0 -bool~ main::$1 -byte~ main::$2 -byte~ main::$3 -constant struct pos* p[$40] = { fill( $40, 0) } -byte row -byte row#0 -byte row#1 -byte row#10 -byte row#11 -byte row#12 -byte row#13 -byte row#14 -byte row#2 -byte row#3 -byte row#4 -byte row#5 -byte row#6 -byte row#7 -byte row#8 -byte row#9 -byte x -byte x#0 -byte x#1 -byte x#10 -byte x#11 -byte x#12 -byte x#13 -byte x#14 -byte x#15 -byte x#2 -byte x#3 -byte x#4 -byte x#5 -byte x#6 -byte x#7 -byte x#8 -byte x#9 -byte y -byte y#0 -byte y#1 -byte y#10 -byte y#11 -byte y#12 -byte y#13 -byte y#14 -byte y#2 -byte y#3 -byte y#4 -byte y#5 -byte y#6 -byte y#7 -byte y#8 -byte y#9 +bool main::$0 +bool main::$1 +char main::$2 +char main::$3 +__constant struct pos p[$40] = { fill( $40, 0) } +char row +char row#0 +char row#1 +char row#10 +char row#11 +char row#12 +char row#13 +char row#14 +char row#2 +char row#3 +char row#4 +char row#5 +char row#6 +char row#7 +char row#8 +char row#9 +char x +char x#0 +char x#1 +char x#10 +char x#11 +char x#12 +char x#13 +char x#14 +char x#15 +char x#2 +char x#3 +char x#4 +char x#5 +char x#6 +char x#7 +char x#8 +char x#9 +char y +char y#0 +char y#1 +char y#10 +char y#11 +char y#12 +char y#13 +char y#14 +char y#2 +char y#3 +char y#4 +char y#5 +char y#6 +char y#7 +char y#8 +char y#9 Adding number conversion cast (unumber) 0 in line#0 = 0 Adding number conversion cast (unumber) 8 in main::$0 = line#6 < 8 @@ -225,10 +225,10 @@ Simplifying constant integer cast 8 Simplifying constant integer cast 0 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias x#11 = x#6 x#8 x#2 Alias idx#1 = idx#14 idx#10 idx#6 @@ -276,7 +276,7 @@ Constant row#12 = 0 Constant x#13 = 0 Constant y#12 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)p in [13] ((byte*)p+OFFSET_STRUCT_POS_X)[main::$3] = x#12 +Simplifying expression containing zero (char *)p in [13] ((char *)p+OFFSET_STRUCT_POS_X)[main::$3] = x#12 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable - keeping the phi block row#11 Eliminating unused constant OFFSET_STRUCT_POS_X @@ -308,8 +308,8 @@ Constant inlined line#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_STRUCT_POS Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $40 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) $40 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -358,8 +358,8 @@ main::@5: scope:[main] from main::@3 to:main::@1 main::@4: scope:[main] from main::@3 [9] main::$3 = idx#13 << 1 - [10] ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 - [11] ((byte*)p)[main::$3] = x#12 + [10] ((char *)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 + [11] ((char *)p)[main::$3] = x#12 [12] idx#0 = ++ idx#13 [13] x#1 = x#12 + XSPACE [14] row#1 = ++ row#14 @@ -367,26 +367,26 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#0 67.33333333333333 -byte idx#1 7.333333333333333 -byte idx#13 46.42857142857143 -byte line -byte line#1 22.0 -byte line#13 2.75 +char idx +char idx#0 // 67.33333333333333 +char idx#1 // 7.333333333333333 +char idx#13 // 46.42857142857143 +char line +char line#1 // 22.0 +char line#13 // 2.75 void main() -byte~ main::$3 151.5 -byte row -byte row#1 202.0 -byte row#14 43.285714285714285 -byte x -byte x#0 22.0 -byte x#1 101.0 -byte x#11 11.0 -byte x#12 40.625 -byte y -byte y#0 11.0 -byte y#1 11.181818181818182 +char main::$3 // 151.5 +char row +char row#1 // 202.0 +char row#14 // 43.285714285714285 +char x +char x#0 // 22.0 +char x#1 // 101.0 +char x#11 // 11.0 +char x#12 // 40.625 +char y +char y#0 // 11.0 +char y#1 // 11.181818181818182 Initial phi equivalence classes [ line#13 line#1 ] @@ -416,14 +416,14 @@ Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#1 i Statement [9] main::$3 = idx#13 << 1 [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] ( [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ y#1 y#0 ] Removing always clobbered register reg byte a as potential for zp[1]:6 [ row#14 row#1 ] -Statement [10] ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] ( [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] { } ) always clobbers reg byte a +Statement [10] ((char *)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] ( [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::$3 ] -Statement [11] ((byte*)p)[main::$3] = x#12 [ line#13 y#1 x#12 idx#13 row#14 ] ( [ line#13 y#1 x#12 idx#13 row#14 ] { } ) always clobbers reg byte a +Statement [11] ((char *)p)[main::$3] = x#12 [ line#13 y#1 x#12 idx#13 row#14 ] ( [ line#13 y#1 x#12 idx#13 row#14 ] { } ) always clobbers reg byte a Statement [13] x#1 = x#12 + XSPACE [ line#13 y#1 row#14 idx#0 x#1 ] ( [ line#13 y#1 row#14 idx#0 x#1 ] { } ) always clobbers reg byte a Statement [7] y#0 = y#1 + YSPACE [ line#13 x#12 idx#13 y#0 ] ( [ line#13 x#12 idx#13 y#0 ] { } ) always clobbers reg byte a Statement [9] main::$3 = idx#13 << 1 [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] ( [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] { } ) always clobbers reg byte a -Statement [10] ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] ( [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] { } ) always clobbers reg byte a -Statement [11] ((byte*)p)[main::$3] = x#12 [ line#13 y#1 x#12 idx#13 row#14 ] ( [ line#13 y#1 x#12 idx#13 row#14 ] { } ) always clobbers reg byte a +Statement [10] ((char *)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] ( [ line#13 y#1 x#12 idx#13 row#14 main::$3 ] { } ) always clobbers reg byte a +Statement [11] ((char *)p)[main::$3] = x#12 [ line#13 y#1 x#12 idx#13 row#14 ] ( [ line#13 y#1 x#12 idx#13 row#14 ] { } ) always clobbers reg byte a Statement [13] x#1 = x#12 + XSPACE [ line#13 y#1 row#14 idx#0 x#1 ] ( [ line#13 y#1 row#14 idx#0 x#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ line#13 line#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ x#11 x#12 x#0 x#1 ] : zp[1]:3 , reg byte x , reg byte y , @@ -540,10 +540,10 @@ main: { lda.z idx asl tax - // [10] ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 -- pbuc1_derefidx_vbuxx=vbuz1 + // [10] ((char *)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z y sta p+OFFSET_STRUCT_POS_Y,x - // [11] ((byte*)p)[main::$3] = x#12 -- pbuc1_derefidx_vbuxx=vbuz1 + // [11] ((char *)p)[main::$3] = x#12 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z x sta p,x // [12] idx#0 = ++ idx#13 -- vbuz1=_inc_vbuz1 @@ -584,30 +584,30 @@ Removing instruction __b3_from___b4: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POS_Y = 1 -constant byte XSPACE = $14 -constant byte YSPACE = $14 -byte idx -byte idx#0 idx zp[1]:4 67.33333333333333 -byte idx#1 idx zp[1]:4 7.333333333333333 -byte idx#13 idx zp[1]:4 46.42857142857143 -byte line -byte line#1 line zp[1]:2 22.0 -byte line#13 line zp[1]:2 2.75 +__constant char OFFSET_STRUCT_POS_Y = 1 +__constant char XSPACE = $14 +__constant char YSPACE = $14 +char idx +char idx#0 // idx zp[1]:4 67.33333333333333 +char idx#1 // idx zp[1]:4 7.333333333333333 +char idx#13 // idx zp[1]:4 46.42857142857143 +char line +char line#1 // line zp[1]:2 22.0 +char line#13 // line zp[1]:2 2.75 void main() -byte~ main::$3 reg byte x 151.5 -constant struct pos* p[$40] = { fill( $40, 0) } -byte row -byte row#1 reg byte y 202.0 -byte row#14 reg byte y 43.285714285714285 -byte x -byte x#0 x zp[1]:3 22.0 -byte x#1 x zp[1]:3 101.0 -byte x#11 x zp[1]:3 11.0 -byte x#12 x zp[1]:3 40.625 -byte y -byte y#0 y zp[1]:5 11.0 -byte y#1 y zp[1]:5 11.181818181818182 +char main::$3 // reg byte x 151.5 +__constant struct pos p[$40] = { fill( $40, 0) } +char row +char row#1 // reg byte y 202.0 +char row#14 // reg byte y 43.285714285714285 +char x +char x#0 // x zp[1]:3 22.0 +char x#1 // x zp[1]:3 101.0 +char x#11 // x zp[1]:3 11.0 +char x#12 // x zp[1]:3 40.625 +char y +char y#0 // y zp[1]:5 11.0 +char y#1 // y zp[1]:5 11.181818181818182 zp[1]:2 [ line#13 line#1 ] zp[1]:3 [ x#11 x#12 x#0 x#1 ] @@ -702,11 +702,11 @@ main: { lda.z idx asl tax - // [10] ((byte*)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 -- pbuc1_derefidx_vbuxx=vbuz1 + // [10] ((char *)p+OFFSET_STRUCT_POS_Y)[main::$3] = y#1 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z y sta p+OFFSET_STRUCT_POS_Y,x // p[idx].x=x - // [11] ((byte*)p)[main::$3] = x#12 -- pbuc1_derefidx_vbuxx=vbuz1 + // [11] ((char *)p)[main::$3] = x#12 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z x sta p,x // ++idx; diff --git a/src/test/ref/struct-pos-fill.sym b/src/test/ref/struct-pos-fill.sym index 47bc6995e..566c37a28 100644 --- a/src/test/ref/struct-pos-fill.sym +++ b/src/test/ref/struct-pos-fill.sym @@ -1,27 +1,27 @@ -constant byte OFFSET_STRUCT_POS_Y = 1 -constant byte XSPACE = $14 -constant byte YSPACE = $14 -byte idx -byte idx#0 idx zp[1]:4 67.33333333333333 -byte idx#1 idx zp[1]:4 7.333333333333333 -byte idx#13 idx zp[1]:4 46.42857142857143 -byte line -byte line#1 line zp[1]:2 22.0 -byte line#13 line zp[1]:2 2.75 +__constant char OFFSET_STRUCT_POS_Y = 1 +__constant char XSPACE = $14 +__constant char YSPACE = $14 +char idx +char idx#0 // idx zp[1]:4 67.33333333333333 +char idx#1 // idx zp[1]:4 7.333333333333333 +char idx#13 // idx zp[1]:4 46.42857142857143 +char line +char line#1 // line zp[1]:2 22.0 +char line#13 // line zp[1]:2 2.75 void main() -byte~ main::$3 reg byte x 151.5 -constant struct pos* p[$40] = { fill( $40, 0) } -byte row -byte row#1 reg byte y 202.0 -byte row#14 reg byte y 43.285714285714285 -byte x -byte x#0 x zp[1]:3 22.0 -byte x#1 x zp[1]:3 101.0 -byte x#11 x zp[1]:3 11.0 -byte x#12 x zp[1]:3 40.625 -byte y -byte y#0 y zp[1]:5 11.0 -byte y#1 y zp[1]:5 11.181818181818182 +char main::$3 // reg byte x 151.5 +__constant struct pos p[$40] = { fill( $40, 0) } +char row +char row#1 // reg byte y 202.0 +char row#14 // reg byte y 43.285714285714285 +char x +char x#0 // x zp[1]:3 22.0 +char x#1 // x zp[1]:3 101.0 +char x#11 // x zp[1]:3 11.0 +char x#12 // x zp[1]:3 40.625 +char y +char y#0 // y zp[1]:5 11.0 +char y#1 // y zp[1]:5 11.181818181818182 zp[1]:2 [ line#13 line#1 ] zp[1]:3 [ x#11 x#12 x#0 x#1 ] diff --git a/src/test/ref/struct-ptr-0.cfg b/src/test/ref/struct-ptr-0.cfg index 67c08c58f..bba023c3b 100644 --- a/src/test/ref/struct-ptr-0.cfg +++ b/src/test/ref/struct-ptr-0.cfg @@ -6,17 +6,17 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$4 = main::i#2 << 1 - [3] ((byte*)points)[main::$4] = main::i#2 + [3] ((char *)points)[main::$4] = main::i#2 [4] main::$0 = main::i#2 + 1 - [5] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 + [5] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=5) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [8] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [9] main::$6 = main::i1#2 << 1 - [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$6] - [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] + [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$6] + [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] [12] main::i1#1 = ++ main::i1#2 [13] if(main::i1#1!=5) goto main::@2 to:main::@return diff --git a/src/test/ref/struct-ptr-0.log b/src/test/ref/struct-ptr-0.log index 2c2afe5f9..7e4575b44 100644 --- a/src/test/ref/struct-ptr-0.log +++ b/src/test/ref/struct-ptr-0.log @@ -8,10 +8,10 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$3 = main::i#2 * SIZEOF_STRUCT_POINT - ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$3] = main::i#2 + ((char *)points+OFFSET_STRUCT_POINT_X)[main::$3] = main::i#2 main::$0 = main::i#2 + 1 main::$4 = main::i#2 * SIZEOF_STRUCT_POINT - ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 + ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 main::i#1 = main::i#2 + rangenext(0,4) main::$1 = main::i#1 != rangelast(0,4) if(main::$1) goto main::@1 @@ -22,9 +22,9 @@ main::@2: scope:[main] from main::@1 main::@3: scope:[main] from main::@2 main::@3 main::i1#2 = phi( main::@2/main::i1#0, main::@3/main::i1#1 ) main::$5 = main::i1#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$5] + main::SCREEN[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$5] main::$6 = main::i1#2 * SIZEOF_STRUCT_POINT - (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] + (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] main::i1#1 = main::i1#2 + rangenext(0,4) main::$2 = main::i1#1 != rangelast(0,4) if(main::$2) goto main::@3 @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,41 +44,41 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -number~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -constant struct Point* points[4] = { fill( 4, 0) } +number main::$0 +bool main::$1 +bool main::$2 +char main::$3 +char main::$4 +char main::$5 +char main::$6 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +__constant struct Point points[4] = { fill( 4, 0) } Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 + (unumber)1 -Adding number conversion cast (unumber) $28 in (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] +Adding number conversion cast (unumber) $28 in (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 + 1 +Inferred type updated to char in main::$0 = main::i#2 + 1 Identified duplicate assignment right side [5] main::$4 = main::i#2 * SIZEOF_STRUCT_POINT Identified duplicate assignment right side [14] main::$6 = main::i1#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2DuplicateRValueIdentification @@ -92,8 +92,8 @@ Resolved ranged next value [7] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [9] if(main::i#1!=rangelast(0,4)) goto main::@1 to 5 Resolved ranged next value [16] main::i1#1 = ++ main::i1#2 to ++ Resolved ranged comparison value [18] if(main::i1#1!=rangelast(0,4)) goto main::@3 to 5 -Simplifying expression containing zero (byte*)points in [3] ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$3] = main::i#2 -Simplifying expression containing zero (byte*)points in [13] main::SCREEN[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$5] +Simplifying expression containing zero (char *)points in [3] ((char *)points+OFFSET_STRUCT_POINT_X)[main::$3] = main::i#2 +Simplifying expression containing zero (char *)points in [13] main::SCREEN[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$5] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -108,8 +108,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 5 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$4 = main::$3 Alias main::$6 = main::$5 @@ -124,8 +124,8 @@ Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_STRUCT_POINT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -152,17 +152,17 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$4 = main::i#2 << 1 - [3] ((byte*)points)[main::$4] = main::i#2 + [3] ((char *)points)[main::$4] = main::i#2 [4] main::$0 = main::i#2 + 1 - [5] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 + [5] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=5) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [8] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [9] main::$6 = main::i1#2 << 1 - [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$6] - [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] + [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$6] + [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] [12] main::i1#1 = ++ main::i1#2 [13] if(main::i1#1!=5) goto main::@2 to:main::@return @@ -173,15 +173,15 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$4 11.0 -byte~ main::$6 16.5 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 13.75 +char main::$0 // 22.0 +char main::$4 // 11.0 +char main::$6 // 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 13.75 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -203,18 +203,18 @@ Allocated zp[1]:6 [ main::$6 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::$4 = main::i#2 << 1 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [3] ((byte*)points)[main::$4] = main::i#2 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a +Statement [3] ((char *)points)[main::$4] = main::i#2 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$4 ] Statement [9] main::$6 = main::i1#2 << 1 [ main::i1#2 main::$6 ] ( [ main::i1#2 main::$6 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] -Statement [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$6] [ main::i1#2 main::$6 ] ( [ main::i1#2 main::$6 ] { } ) always clobbers reg byte a +Statement [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$6] [ main::i1#2 main::$6 ] ( [ main::i1#2 main::$6 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::$6 ] -Statement [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a +Statement [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a Statement [2] main::$4 = main::i#2 << 1 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a -Statement [3] ((byte*)points)[main::$4] = main::i#2 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a +Statement [3] ((char *)points)[main::$4] = main::i#2 [ main::i#2 main::$4 ] ( [ main::i#2 main::$4 ] { } ) always clobbers reg byte a Statement [9] main::$6 = main::i1#2 << 1 [ main::i1#2 main::$6 ] ( [ main::i1#2 main::$6 ] { } ) always clobbers reg byte a -Statement [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$6] [ main::i1#2 main::$6 ] ( [ main::i1#2 main::$6 ] { } ) always clobbers reg byte a -Statement [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a +Statement [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$6] [ main::i1#2 main::$6 ] ( [ main::i1#2 main::$6 ] { } ) always clobbers reg byte a +Statement [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::i1#2 main::i1#1 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$4 ] : zp[1]:4 , reg byte x , reg byte y , @@ -268,7 +268,7 @@ main: { txa asl sta.z __4 - // [3] ((byte*)points)[main::$4] = main::i#2 -- pbuc1_derefidx_vbuz1=vbuxx + // [3] ((char *)points)[main::$4] = main::i#2 -- pbuc1_derefidx_vbuz1=vbuxx ldy.z __4 txa sta points,y @@ -276,7 +276,7 @@ main: { txa tay iny - // [5] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 -- pbuc1_derefidx_vbuz1=vbuyy + // [5] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 -- pbuc1_derefidx_vbuz1=vbuyy tya ldy.z __4 sta points+OFFSET_STRUCT_POINT_Y,y @@ -300,10 +300,10 @@ main: { tya asl tax - // [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points,x sta SCREEN,y - // [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points+OFFSET_STRUCT_POINT_Y,x sta SCREEN+$28,y // [12] main::i1#1 = ++ main::i1#2 -- vbuyy=_inc_vbuyy @@ -341,19 +341,19 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte y 22.0 -byte~ main::$4 zp[1]:2 11.0 -byte~ main::$6 reg byte x 16.5 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::i1 -byte main::i1#1 reg byte y 16.5 -byte main::i1#2 reg byte y 13.75 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$0 // reg byte y 22.0 +char main::$4 // zp[1]:2 11.0 +char main::$6 // reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::i1 +char main::i1#1 // reg byte y 16.5 +char main::i1#2 // reg byte y 13.75 +__constant struct Point points[4] = { fill( 4, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::i1#2 main::i1#1 ] @@ -395,7 +395,7 @@ main: { txa asl sta.z __4 - // [3] ((byte*)points)[main::$4] = main::i#2 -- pbuc1_derefidx_vbuz1=vbuxx + // [3] ((char *)points)[main::$4] = main::i#2 -- pbuc1_derefidx_vbuz1=vbuxx tay txa sta points,y @@ -405,7 +405,7 @@ main: { tay iny // points[i].y = i+1 - // [5] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 -- pbuc1_derefidx_vbuz1=vbuyy + // [5] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] = main::$0 -- pbuc1_derefidx_vbuz1=vbuyy tya ldy.z __4 sta points+OFFSET_STRUCT_POINT_Y,y @@ -427,11 +427,11 @@ main: { tya asl tax - // [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points,x sta SCREEN,y // (SCREEN+40)[i] = points[i].y - // [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$6] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points+OFFSET_STRUCT_POINT_Y,x sta SCREEN+$28,y // for( byte i: 0..4) diff --git a/src/test/ref/struct-ptr-0.sym b/src/test/ref/struct-ptr-0.sym index f545dc98f..600d3a244 100644 --- a/src/test/ref/struct-ptr-0.sym +++ b/src/test/ref/struct-ptr-0.sym @@ -1,16 +1,16 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte y 22.0 -byte~ main::$4 zp[1]:2 11.0 -byte~ main::$6 reg byte x 16.5 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::i1 -byte main::i1#1 reg byte y 16.5 -byte main::i1#2 reg byte y 13.75 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$0 // reg byte y 22.0 +char main::$4 // zp[1]:2 11.0 +char main::$6 // reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::i1 +char main::i1#1 // reg byte y 16.5 +char main::i1#2 // reg byte y 13.75 +__constant struct Point points[4] = { fill( 4, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/struct-ptr-1.cfg b/src/test/ref/struct-ptr-1.cfg index eefb8bab3..e6cb131f1 100644 --- a/src/test/ref/struct-ptr-1.cfg +++ b/src/test/ref/struct-ptr-1.cfg @@ -6,17 +6,17 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] ((byte*)points)[main::$2] = main::i#2 + [3] ((char *)points)[main::$2] = main::i#2 [4] main::$4 = main::i#2 + 4 - [5] ((byte*)points+OFFS_Y)[main::$2] = main::$4 + [5] ((char *)points+OFFS_Y)[main::$2] = main::$4 [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=4) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [8] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [9] main::$8 = main::i1#2 << 1 - [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$8] - [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFS_Y)[main::$8] + [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$8] + [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFS_Y)[main::$8] [12] main::i1#1 = ++ main::i1#2 [13] if(main::i1#1!=4) goto main::@2 to:main::@return diff --git a/src/test/ref/struct-ptr-1.log b/src/test/ref/struct-ptr-1.log index 09dbfac41..6182fb097 100644 --- a/src/test/ref/struct-ptr-1.log +++ b/src/test/ref/struct-ptr-1.log @@ -8,10 +8,10 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$0 = main::i#2 * SIZEOF_POINT - main::$1 = (byte*)points+OFFS_X + main::$0 + main::$1 = (char *)points+OFFS_X + main::$0 *main::$1 = main::i#2 main::$2 = main::i#2 * SIZEOF_POINT - main::$3 = (byte*)points+OFFS_Y + main::$2 + main::$3 = (char *)points+OFFS_Y + main::$2 main::$4 = main::i#2 + 4 *main::$3 = main::$4 main::i#1 = main::i#2 + rangenext(0,3) @@ -24,10 +24,10 @@ main::@2: scope:[main] from main::@1 main::@3: scope:[main] from main::@2 main::@3 main::i1#2 = phi( main::@2/main::i1#0, main::@3/main::i1#1 ) main::$6 = main::i1#2 * SIZEOF_POINT - main::$7 = (byte*)points+OFFS_X + main::$6 + main::$7 = (char *)points+OFFS_X + main::$6 main::SCREEN[main::i1#2] = *main::$7 main::$8 = main::i1#2 * SIZEOF_POINT - main::$9 = (byte*)points+OFFS_Y + main::$8 + main::$9 = (char *)points+OFFS_Y + main::$8 (main::SCREEN+$28)[main::i1#2] = *main::$9 main::i1#1 = main::i1#2 + rangenext(0,3) main::$10 = main::i1#1 != rangelast(0,3) @@ -39,7 +39,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -48,45 +48,45 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte OFFS_X = 0 -constant const byte OFFS_Y = 1 -constant const byte SIZEOF_POINT = 2 +__constant const char OFFS_X = 0 +__constant const char OFFS_Y = 1 +__constant const char SIZEOF_POINT = 2 void __start() void main() -byte~ main::$0 -byte*~ main::$1 -bool~ main::$10 -byte~ main::$2 -byte*~ main::$3 -number~ main::$4 -bool~ main::$5 -byte~ main::$6 -byte*~ main::$7 -byte~ main::$8 -byte*~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$0 +char *main::$1 +bool main::$10 +char main::$2 +char *main::$3 +number main::$4 +bool main::$5 +char main::$6 +char *main::$7 +char main::$8 +char *main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +__constant struct Point points[4] = { fill( 4, 0) } Adding number conversion cast (unumber) 4 in main::$4 = main::i#2 + 4 Adding number conversion cast (unumber) main::$4 in main::$4 = main::i#2 + (unumber)4 Adding number conversion cast (unumber) $28 in (main::SCREEN+$28)[main::i1#2] = *main::$9 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = main::i#2 + 4 +Inferred type updated to char in main::$4 = main::i#2 + 4 Identified duplicate assignment right side [5] main::$2 = main::i#2 * SIZEOF_POINT Identified duplicate assignment right side [17] main::$8 = main::i1#2 * SIZEOF_POINT Successful SSA optimization Pass2DuplicateRValueIdentification @@ -100,20 +100,20 @@ Resolved ranged next value [9] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [11] if(main::i#1!=rangelast(0,3)) goto main::@1 to 4 Resolved ranged next value [20] main::i1#1 = ++ main::i1#2 to ++ Resolved ranged comparison value [22] if(main::i1#1!=rangelast(0,3)) goto main::@3 to 4 -Converting *(pointer+n) to pointer[n] [4] *main::$1 = main::i#2 -- ((byte*)points+OFFS_X)[main::$0] -Converting *(pointer+n) to pointer[n] [8] *main::$3 = main::$4 -- ((byte*)points+OFFS_Y)[main::$2] -Converting *(pointer+n) to pointer[n] [16] main::SCREEN[main::i1#2] = *main::$7 -- ((byte*)points+OFFS_X)[main::$6] -Converting *(pointer+n) to pointer[n] [19] (main::SCREEN+$28)[main::i1#2] = *main::$9 -- ((byte*)points+OFFS_Y)[main::$8] +Converting *(pointer+n) to pointer[n] [4] *main::$1 = main::i#2 -- ((char *)points+OFFS_X)[main::$0] +Converting *(pointer+n) to pointer[n] [8] *main::$3 = main::$4 -- ((char *)points+OFFS_Y)[main::$2] +Converting *(pointer+n) to pointer[n] [16] main::SCREEN[main::i1#2] = *main::$7 -- ((char *)points+OFFS_X)[main::$6] +Converting *(pointer+n) to pointer[n] [19] (main::SCREEN+$28)[main::i1#2] = *main::$9 -- ((char *)points+OFFS_Y)[main::$8] Successful SSA optimization Pass2InlineDerefIdx -Simplifying expression containing zero (byte*)points in [3] main::$1 = (byte*)points+OFFS_X + main::$0 -Simplifying expression containing zero (byte*)points in [4] ((byte*)points+OFFS_X)[main::$0] = main::i#2 -Simplifying expression containing zero (byte*)points in [15] main::$7 = (byte*)points+OFFS_X + main::$6 -Simplifying expression containing zero (byte*)points in [16] main::SCREEN[main::i1#2] = ((byte*)points+OFFS_X)[main::$6] +Simplifying expression containing zero (char *)points in [3] main::$1 = (char *)points+OFFS_X + main::$0 +Simplifying expression containing zero (char *)points in [4] ((char *)points+OFFS_X)[main::$0] = main::i#2 +Simplifying expression containing zero (char *)points in [15] main::$7 = (char *)points+OFFS_X + main::$6 +Simplifying expression containing zero (char *)points in [16] main::SCREEN[main::i1#2] = ((char *)points+OFFS_X)[main::$6] Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable main::$1 and assignment [2] main::$1 = (byte*)points + main::$0 -Eliminating unused variable main::$3 and assignment [5] main::$3 = (byte*)points+OFFS_Y + main::$2 -Eliminating unused variable main::$7 and assignment [12] main::$7 = (byte*)points + main::$6 -Eliminating unused variable main::$9 and assignment [15] main::$9 = (byte*)points+OFFS_Y + main::$8 +Eliminating unused variable main::$1 and assignment [2] main::$1 = (char *)points + main::$0 +Eliminating unused variable main::$3 and assignment [5] main::$3 = (char *)points+OFFS_Y + main::$2 +Eliminating unused variable main::$7 and assignment [12] main::$7 = (char *)points + main::$6 +Eliminating unused variable main::$9 and assignment [15] main::$9 = (char *)points+OFFS_Y + main::$8 Eliminating unused constant OFFS_X Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start @@ -127,8 +127,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$2 = main::$0 Alias main::$8 = main::$6 @@ -143,8 +143,8 @@ Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_POINT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -171,17 +171,17 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] ((byte*)points)[main::$2] = main::i#2 + [3] ((char *)points)[main::$2] = main::i#2 [4] main::$4 = main::i#2 + 4 - [5] ((byte*)points+OFFS_Y)[main::$2] = main::$4 + [5] ((char *)points+OFFS_Y)[main::$2] = main::$4 [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=4) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 [8] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [9] main::$8 = main::i1#2 << 1 - [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$8] - [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFS_Y)[main::$8] + [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$8] + [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFS_Y)[main::$8] [12] main::i1#1 = ++ main::i1#2 [13] if(main::i1#1!=4) goto main::@2 to:main::@return @@ -192,15 +192,15 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 11.0 -byte~ main::$4 22.0 -byte~ main::$8 16.5 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 13.75 +char main::$2 // 11.0 +char main::$4 // 22.0 +char main::$8 // 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 13.75 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -222,20 +222,20 @@ Allocated zp[1]:6 [ main::$8 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [3] ((byte*)points)[main::$2] = main::i#2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [3] ((char *)points)[main::$2] = main::i#2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$2 ] Statement [4] main::$4 = main::i#2 + 4 [ main::i#2 main::$2 main::$4 ] ( [ main::i#2 main::$2 main::$4 ] { } ) always clobbers reg byte a Statement [9] main::$8 = main::i1#2 << 1 [ main::i1#2 main::$8 ] ( [ main::i1#2 main::$8 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] -Statement [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$8] [ main::i1#2 main::$8 ] ( [ main::i1#2 main::$8 ] { } ) always clobbers reg byte a +Statement [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$8] [ main::i1#2 main::$8 ] ( [ main::i1#2 main::$8 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::$8 ] -Statement [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFS_Y)[main::$8] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a +Statement [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFS_Y)[main::$8] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [3] ((byte*)points)[main::$2] = main::i#2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [3] ((char *)points)[main::$2] = main::i#2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Statement [4] main::$4 = main::i#2 + 4 [ main::i#2 main::$2 main::$4 ] ( [ main::i#2 main::$2 main::$4 ] { } ) always clobbers reg byte a Statement [9] main::$8 = main::i1#2 << 1 [ main::i1#2 main::$8 ] ( [ main::i1#2 main::$8 ] { } ) always clobbers reg byte a -Statement [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$8] [ main::i1#2 main::$8 ] ( [ main::i1#2 main::$8 ] { } ) always clobbers reg byte a -Statement [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFS_Y)[main::$8] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a +Statement [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$8] [ main::i1#2 main::$8 ] ( [ main::i1#2 main::$8 ] { } ) always clobbers reg byte a +Statement [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFS_Y)[main::$8] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::i1#2 main::i1#1 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$2 ] : zp[1]:4 , reg byte x , reg byte y , @@ -287,14 +287,14 @@ main: { txa asl tay - // [3] ((byte*)points)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [3] ((char *)points)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta points,y // [4] main::$4 = main::i#2 + 4 -- vbuaa=vbuxx_plus_vbuc1 txa clc adc #4 - // [5] ((byte*)points+OFFS_Y)[main::$2] = main::$4 -- pbuc1_derefidx_vbuyy=vbuaa + // [5] ((char *)points+OFFS_Y)[main::$2] = main::$4 -- pbuc1_derefidx_vbuyy=vbuaa // points[i].x = i; sta points+OFFS_Y,y // [6] main::i#1 = ++ main::i#2 -- vbuxx=_inc_vbuxx @@ -317,10 +317,10 @@ main: { tya asl tax - // [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points,x sta SCREEN,y - // [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFS_Y)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFS_Y)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx // SCREEN[i] = points[i].x; lda points+OFFS_Y,x sta SCREEN+$28,y @@ -358,19 +358,19 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte OFFS_Y = 1 +__constant const char OFFS_Y = 1 void main() -byte~ main::$2 reg byte y 11.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$8 reg byte x 16.5 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::i1 -byte main::i1#1 reg byte y 16.5 -byte main::i1#2 reg byte y 13.75 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$2 // reg byte y 11.0 +char main::$4 // reg byte a 22.0 +char main::$8 // reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::i1 +char main::i1#1 // reg byte y 16.5 +char main::i1#2 // reg byte y 13.75 +__constant struct Point points[4] = { fill( 4, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::i1#2 main::i1#1 ] @@ -412,7 +412,7 @@ main: { asl tay // *((byte*)points+OFFS_X+i*SIZEOF_POINT) = i - // [3] ((byte*)points)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [3] ((char *)points)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta points,y // i+4 @@ -421,7 +421,7 @@ main: { clc adc #4 // *((byte*)points+OFFS_Y+i*SIZEOF_POINT) = i+4 - // [5] ((byte*)points+OFFS_Y)[main::$2] = main::$4 -- pbuc1_derefidx_vbuyy=vbuaa + // [5] ((char *)points+OFFS_Y)[main::$2] = main::$4 -- pbuc1_derefidx_vbuyy=vbuaa // points[i].x = i; sta points+OFFS_Y,y // for( byte i: 0..3) @@ -443,11 +443,11 @@ main: { asl tax // SCREEN[i] = *((byte*)points+OFFS_X+i*SIZEOF_POINT) - // [10] main::SCREEN[main::i1#2] = ((byte*)points)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [10] main::SCREEN[main::i1#2] = ((char *)points)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx lda points,x sta SCREEN,y // (SCREEN+40)[i] = *((byte*)points+OFFS_Y+i*SIZEOF_POINT) - // [11] (main::SCREEN+$28)[main::i1#2] = ((byte*)points+OFFS_Y)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx + // [11] (main::SCREEN+$28)[main::i1#2] = ((char *)points+OFFS_Y)[main::$8] -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuxx // SCREEN[i] = points[i].x; lda points+OFFS_Y,x sta SCREEN+$28,y diff --git a/src/test/ref/struct-ptr-1.sym b/src/test/ref/struct-ptr-1.sym index 3550fddc8..28142fcd1 100644 --- a/src/test/ref/struct-ptr-1.sym +++ b/src/test/ref/struct-ptr-1.sym @@ -1,16 +1,16 @@ -constant const byte OFFS_Y = 1 +__constant const char OFFS_Y = 1 void main() -byte~ main::$2 reg byte y 11.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$8 reg byte x 16.5 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -byte main::i1 -byte main::i1#1 reg byte y 16.5 -byte main::i1#2 reg byte y 13.75 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$2 // reg byte y 11.0 +char main::$4 // reg byte a 22.0 +char main::$8 // reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +char main::i1 +char main::i1#1 // reg byte y 16.5 +char main::i1#2 // reg byte y 13.75 +__constant struct Point points[4] = { fill( 4, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte y [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/struct-ptr-10.cfg b/src/test/ref/struct-ptr-10.cfg index 7dc7fe103..bef80c1de 100644 --- a/src/test/ref/struct-ptr-10.cfg +++ b/src/test/ref/struct-ptr-10.cfg @@ -6,9 +6,9 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] main::$5 = (byte*)points + main::$2 + [3] main::$5 = (char *)points + main::$2 [4] *main::$5 = 2 - [5] main::$5[OFFSET_STRUCT_POINT_Y] = (byte)main::i#2 + [5] main::$5[OFFSET_STRUCT_POINT_Y] = (char)main::i#2 [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=$1f4) goto main::@1 to:main::@2 diff --git a/src/test/ref/struct-ptr-10.log b/src/test/ref/struct-ptr-10.log index cebd5e802..4311b136d 100644 --- a/src/test/ref/struct-ptr-10.log +++ b/src/test/ref/struct-ptr-10.log @@ -1,4 +1,4 @@ -Constantified RValue points[main::$2] = (struct Point){ 2, (byte)main::i } +Constantified RValue points[main::$2] = (struct Point){ 2, (char)main::i } CONTROL FLOW GRAPH SSA @@ -9,10 +9,10 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$2 = main::i#2 * SIZEOF_STRUCT_POINT - main::$4 = (byte*)points + main::$2 + main::$4 = (char *)points + main::$2 main::$4[OFFSET_STRUCT_POINT_X] = 2 - main::$5 = (byte*)points + main::$2 - main::$5[OFFSET_STRUCT_POINT_Y] = (byte)main::i#2 + main::$5 = (char *)points + main::$2 + main::$5[OFFSET_STRUCT_POINT_Y] = (char)main::i#2 main::i#1 = main::i#2 + rangenext(0,$1f3) main::$0 = main::i#1 != rangelast(0,$1f3) if(main::$0) goto main::@1 @@ -34,7 +34,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,31 +43,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -bool~ main::$0 -bool~ main::$1 -word~ main::$2 -word~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -constant struct Point* const main::SCREEN = (struct Point*)$400 -word main::i -word main::i#0 -word main::i#1 -word main::i#2 -word main::i1 -word main::i1#0 -word main::i1#1 -word main::i1#2 -constant struct Point* points[$1f4] = { fill( $1f4, 0) } +bool main::$0 +bool main::$1 +unsigned int main::$2 +unsigned int main::$3 +char *main::$4 +char *main::$5 +__constant struct Point * const main::SCREEN = (struct Point *)$400 +unsigned int main::i +unsigned int main::i#0 +unsigned int main::i#1 +unsigned int main::i#2 +unsigned int main::i1 +unsigned int main::i1#0 +unsigned int main::i1#1 +unsigned int main::i1#2 +__constant struct Point points[$1f4] = { fill( $1f4, 0) } -Simplifying constant pointer cast (struct Point*) 1024 +Simplifying constant pointer cast (struct Point *) 1024 Successful SSA optimization PassNCastSimplification -Identified duplicate assignment right side [5] main::$5 = (byte*)points + main::$2 +Identified duplicate assignment right side [5] main::$5 = (char *)points + main::$2 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$0 [9] if(main::i#1!=rangelast(0,$1f3)) goto main::@1 Simple Condition main::$1 [16] if(main::i1#1!=rangelast(0,$1f3)) goto main::@3 @@ -97,8 +97,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $1f4 Simplifying constant integer cast $1f4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $1f4 -Finalized unsigned number type (word) $1f4 +Finalized unsigned number type (unsigned int) $1f4 +Finalized unsigned number type (unsigned int) $1f4 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$5 = main::$4 Successful SSA optimization Pass2AliasElimination @@ -110,8 +110,8 @@ Inlining constant with var siblings main::i1#0 Constant inlined main::i#0 = 0 Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $1f4 -Finalized unsigned number type (word) $1f4 +Finalized unsigned number type (unsigned int) $1f4 +Finalized unsigned number type (unsigned int) $1f4 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -138,9 +138,9 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] main::$5 = (byte*)points + main::$2 + [3] main::$5 = (char *)points + main::$2 [4] *main::$5 = 2 - [5] main::$5[OFFSET_STRUCT_POINT_Y] = (byte)main::i#2 + [5] main::$5[OFFSET_STRUCT_POINT_Y] = (char)main::i#2 [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=$1f4) goto main::@1 to:main::@2 @@ -160,17 +160,17 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -word~ main::$2 22.0 -word~ main::$3 16.5 -byte*~ main::$5 16.5 -struct Point*~ main::$6 5.5 -struct Point*~ main::$7 22.0 -word main::i -word main::i#1 16.5 -word main::i#2 6.6000000000000005 -word main::i1 -word main::i1#1 16.5 -word main::i1#2 6.6000000000000005 +unsigned int main::$2 // 22.0 +unsigned int main::$3 // 16.5 +char *main::$5 // 16.5 +struct Point *main::$6 // 5.5 +struct Point *main::$7 // 22.0 +unsigned int main::i +unsigned int main::i#1 // 16.5 +unsigned int main::i#2 // 6.6000000000000005 +unsigned int main::i1 +unsigned int main::i1#1 // 16.5 +unsigned int main::i1#2 // 6.6000000000000005 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -197,9 +197,9 @@ Allocated zp[2]:12 [ main::$6 ] Allocated zp[2]:14 [ main::$7 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [3] main::$5 = (byte*)points + main::$2 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a +Statement [3] main::$5 = (char *)points + main::$2 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Statement [4] *main::$5 = 2 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a reg byte y -Statement [5] main::$5[OFFSET_STRUCT_POINT_Y] = (byte)main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y +Statement [5] main::$5[OFFSET_STRUCT_POINT_Y] = (char)main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y Statement [7] if(main::i#1!=$1f4) goto main::@1 [ main::i#1 ] ( [ main::i#1 ] { } ) always clobbers reg byte a Statement [9] main::$3 = main::i1#2 << 1 [ main::i1#2 main::$3 ] ( [ main::i1#2 main::$3 ] { } ) always clobbers reg byte a Statement [10] main::$6 = points + main::$3 [ main::i1#2 main::$3 main::$6 ] ( [ main::i1#2 main::$3 main::$6 ] { } ) always clobbers reg byte a @@ -274,7 +274,7 @@ main: { lda.z i+1 rol sta.z __2+1 - // [3] main::$5 = (byte*)points + main::$2 -- pbuz1=pbuc1_plus_vwuz1 + // [3] main::$5 = (char *)points + main::$2 -- pbuz1=pbuc1_plus_vwuz1 lda.z __5 clc adc #x - // [1] *main::SCREEN = *((byte*)main::q) -- _deref_pbuc1=_deref_pbuc2 + // [1] *main::SCREEN = *((char *)main::q) -- _deref_pbuc1=_deref_pbuc2 lda.z q sta SCREEN // SCREEN[1] = q->y - // [2] *(main::SCREEN+1) = *((byte*)main::q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(main::SCREEN+1) = *((char *)main::q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda q+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-ptr-12.sym b/src/test/ref/struct-ptr-12.sym index 21692e8a3..efccf5a71 100644 --- a/src/test/ref/struct-ptr-12.sym +++ b/src/test/ref/struct-ptr-12.sym @@ -1,9 +1,9 @@ -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -volatile struct Point main::p loadstore zp[2]:2 -constant struct Point* main::q = &main::p +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile struct Point main::p // zp[2]:2 +__constant struct Point *main::q = &main::p zp[2]:2 [ main::p ] diff --git a/src/test/ref/struct-ptr-13.cfg b/src/test/ref/struct-ptr-13.cfg index 3c61c4f0d..98d1a0c43 100644 --- a/src/test/ref/struct-ptr-13.cfg +++ b/src/test/ref/struct-ptr-13.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *((byte*)points) = *((byte*)points) + 5 - [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + 5 - [2] *main::SCREEN = *((byte*)points) - [3] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + [0] *((char *)points) = *((char *)points) + 5 + [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = *((char *)points+OFFSET_STRUCT_POINT_Y) + 5 + [2] *main::SCREEN = *((char *)points) + [3] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/struct-ptr-13.log b/src/test/ref/struct-ptr-13.log index 3dc9000e0..2a6af7e5e 100644 --- a/src/test/ref/struct-ptr-13.log +++ b/src/test/ref/struct-ptr-13.log @@ -1,23 +1,23 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - main::$6 = (byte*)points + main::$6 = (char *)points main::$0 = main::$6 + OFFSET_STRUCT_POINT_X - main::$7 = (byte*)points + main::$7 = (char *)points main::$1 = main::$7 + OFFSET_STRUCT_POINT_X *main::$1 = *main::$0 + 5 - main::$8 = (byte*)points + main::$8 = (char *)points main::$2 = main::$8 + OFFSET_STRUCT_POINT_Y - main::$9 = (byte*)points + main::$9 = (char *)points main::$3 = main::$9 + OFFSET_STRUCT_POINT_Y *main::$3 = *main::$2 + 5 - main::$10 = (byte*)points + main::$10 = (char *)points main::$4 = main::$10 + OFFSET_STRUCT_POINT_X main::SCREEN[0] = *main::$4 - main::$11 = (byte*)points + main::$11 = (char *)points main::$5 = main::$11 + OFFSET_STRUCT_POINT_Y main::SCREEN[1] = *main::$5 to:main::@return @@ -31,7 +31,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -40,55 +40,55 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$10 -byte*~ main::$11 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -byte*~ main::$6 -byte*~ main::$7 -byte*~ main::$8 -byte*~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -constant struct Point* points = (struct Point*)$1000 +char *main::$0 +char *main::$1 +char *main::$10 +char *main::$11 +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +char *main::$6 +char *main::$7 +char *main::$8 +char *main::$9 +__constant char * const main::SCREEN = (char *)$400 +__constant struct Point *points = (struct Point *)$1000 Adding number conversion cast (unumber) 5 in *main::$1 = *main::$0 + 5 Adding number conversion cast (unumber) 5 in *main::$3 = *main::$2 + 5 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = *main::$4 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = *main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (struct Point*) 4096 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (struct Point *) 4096 Simplifying constant integer cast 5 Simplifying constant integer cast 5 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant right-side identified [0] main::$6 = (byte*)points -Constant right-side identified [2] main::$7 = (byte*)points -Constant right-side identified [5] main::$8 = (byte*)points -Constant right-side identified [7] main::$9 = (byte*)points -Constant right-side identified [10] main::$10 = (byte*)points -Constant right-side identified [13] main::$11 = (byte*)points +Constant right-side identified [0] main::$6 = (char *)points +Constant right-side identified [2] main::$7 = (char *)points +Constant right-side identified [5] main::$8 = (char *)points +Constant right-side identified [7] main::$9 = (char *)points +Constant right-side identified [10] main::$10 = (char *)points +Constant right-side identified [13] main::$11 = (char *)points Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$6 = (byte*)points -Constant main::$7 = (byte*)points -Constant main::$8 = (byte*)points -Constant main::$9 = (byte*)points -Constant main::$10 = (byte*)points -Constant main::$11 = (byte*)points +Constant main::$6 = (char *)points +Constant main::$7 = (char *)points +Constant main::$8 = (char *)points +Constant main::$9 = (char *)points +Constant main::$10 = (char *)points +Constant main::$11 = (char *)points Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [4] *main::$1 = *main::$0 + 5 -- main::$6[OFFSET_STRUCT_POINT_X] Converting *(pointer+n) to pointer[n] [4] *main::$1 = main::$6[OFFSET_STRUCT_POINT_X] + 5 -- main::$7[OFFSET_STRUCT_POINT_X] @@ -120,16 +120,16 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$6 = (byte*)points -Constant inlined main::$9 = (byte*)points -Constant inlined main::$7 = (byte*)points -Constant inlined main::$10 = (byte*)points -Constant inlined main::$8 = (byte*)points -Constant inlined main::$11 = (byte*)points +Constant inlined main::$6 = (char *)points +Constant inlined main::$9 = (char *)points +Constant inlined main::$7 = (char *)points +Constant inlined main::$10 = (char *)points +Constant inlined main::$8 = (char *)points +Constant inlined main::$11 = (char *)points Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)points+OFFSET_STRUCT_POINT_Y) -Consolidated array index constant in *((byte*)points+OFFSET_STRUCT_POINT_Y) -Consolidated array index constant in *((byte*)points+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -141,10 +141,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)points) = *((byte*)points) + 5 - [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + 5 - [2] *main::SCREEN = *((byte*)points) - [3] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + [0] *((char *)points) = *((char *)points) + 5 + [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = *((char *)points+OFFSET_STRUCT_POINT_Y) + 5 + [2] *main::SCREEN = *((char *)points) + [3] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return @@ -157,10 +157,10 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)points) = *((byte*)points) + 5 [ ] ( [ ] { } ) always clobbers reg byte a reg byte x -Statement [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + 5 [ ] ( [ ] { } ) always clobbers reg byte a reg byte x -Statement [2] *main::SCREEN = *((byte*)points) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)points) = *((char *)points) + 5 [ ] ( [ ] { } ) always clobbers reg byte a reg byte x +Statement [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = *((char *)points+OFFSET_STRUCT_POINT_Y) + 5 [ ] ( [ ] { } ) always clobbers reg byte a reg byte x +Statement [2] *main::SCREEN = *((char *)points) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [Point] @@ -190,18 +190,18 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [0] *((byte*)points) = *((byte*)points) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 + // [0] *((char *)points) = *((char *)points) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 lax points axs #-[5] stx points - // [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 + // [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = *((char *)points+OFFSET_STRUCT_POINT_Y) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 lax points+OFFSET_STRUCT_POINT_Y axs #-[5] stx points+OFFSET_STRUCT_POINT_Y - // [2] *main::SCREEN = *((byte*)points) -- _deref_pbuc1=_deref_pbuc2 + // [2] *main::SCREEN = *((char *)points) -- _deref_pbuc1=_deref_pbuc2 lda points sta SCREEN - // [3] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+OFFSET_STRUCT_POINT_Y sta SCREEN+1 jmp __breturn @@ -220,10 +220,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct Point* points = (struct Point*) 4096 +__constant char * const main::SCREEN = (char *) 1024 +__constant struct Point *points = (struct Point *) 4096 @@ -249,21 +249,21 @@ Score: 40 main: { .label SCREEN = $400 // points->x += 5 - // [0] *((byte*)points) = *((byte*)points) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 + // [0] *((char *)points) = *((char *)points) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 lax points axs #-[5] stx points // points->y += 5 - // [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = *((byte*)points+OFFSET_STRUCT_POINT_Y) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 + // [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = *((char *)points+OFFSET_STRUCT_POINT_Y) + 5 -- _deref_pbuc1=_deref_pbuc1_plus_vbuc2 lax points+OFFSET_STRUCT_POINT_Y axs #-[5] stx points+OFFSET_STRUCT_POINT_Y // SCREEN[0] = points->x - // [2] *main::SCREEN = *((byte*)points) -- _deref_pbuc1=_deref_pbuc2 + // [2] *main::SCREEN = *((char *)points) -- _deref_pbuc1=_deref_pbuc2 lda points sta SCREEN // SCREEN[1] = points->y - // [3] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 txa sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-ptr-13.sym b/src/test/ref/struct-ptr-13.sym index da9dcc6b1..6fd8cd578 100644 --- a/src/test/ref/struct-ptr-13.sym +++ b/src/test/ref/struct-ptr-13.sym @@ -1,5 +1,5 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct Point* points = (struct Point*) 4096 +__constant char * const main::SCREEN = (char *) 1024 +__constant struct Point *points = (struct Point *) 4096 diff --git a/src/test/ref/struct-ptr-14.asm b/src/test/ref/struct-ptr-14.asm index 330ff062a..376ba1007 100644 --- a/src/test/ref/struct-ptr-14.asm +++ b/src/test/ref/struct-ptr-14.asm @@ -32,6 +32,7 @@ main: { // } rts } +// void set(struct Point *ptr) set: { // ptr->x = 4 lda #4 diff --git a/src/test/ref/struct-ptr-14.cfg b/src/test/ref/struct-ptr-14.cfg index e1fbc1d48..f68e85ece 100644 --- a/src/test/ref/struct-ptr-14.cfg +++ b/src/test/ref/struct-ptr-14.cfg @@ -2,20 +2,20 @@ void main() main: scope:[main] from [0] *(&main::p) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] call set + [1] call set to:main::@1 main::@1: scope:[main] from main - [2] *main::SCREEN = *((byte*)main::q) - [3] *(main::SCREEN+1) = *((byte*)main::q+OFFSET_STRUCT_POINT_Y) + [2] *main::SCREEN = *((char *)main::q) + [3] *(main::SCREEN+1) = *((char *)main::q+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void set(struct Point* set::ptr) +void set(struct Point *ptr) set: scope:[set] from main - [5] *((byte*)main::q) = 4 - [6] *((byte*)main::q+OFFSET_STRUCT_POINT_Y) = 5 + [5] *((char *)main::q) = 4 + [6] *((char *)main::q+OFFSET_STRUCT_POINT_Y) = 5 to:set::@return set::@return: scope:[set] from set [7] return diff --git a/src/test/ref/struct-ptr-14.log b/src/test/ref/struct-ptr-14.log index 486f9c8e7..afd688389 100644 --- a/src/test/ref/struct-ptr-14.log +++ b/src/test/ref/struct-ptr-14.log @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start *(&main::p) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) set::ptr#0 = main::q - call set + call set to:main::@1 main::@1: scope:[main] from main - main::$3 = (byte*)main::q + main::$3 = (char *)main::q main::$1 = main::$3 + OFFSET_STRUCT_POINT_X main::SCREEN[0] = *main::$1 - main::$4 = (byte*)main::q + main::$4 = (char *)main::q main::$2 = main::$4 + OFFSET_STRUCT_POINT_Y main::SCREEN[1] = *main::$2 to:main::@return @@ -20,13 +20,13 @@ main::@return: scope:[main] from main::@1 return to:@return -void set(struct Point* set::ptr) +void set(struct Point *ptr) set: scope:[set] from main set::ptr#1 = phi( main/set::ptr#0 ) - set::$2 = (byte*)set::ptr#1 + set::$2 = (char *)set::ptr#1 set::$0 = set::$2 + OFFSET_STRUCT_POINT_X *set::$0 = 4 - set::$3 = (byte*)set::ptr#1 + set::$3 = (char *)set::ptr#1 set::$1 = set::$3 + OFFSET_STRUCT_POINT_Y *set::$1 = 5 to:set::@return @@ -36,7 +36,7 @@ set::@return: scope:[set] from set void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -45,27 +45,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -volatile struct Point main::p loadstore -constant struct Point* main::q = &main::p -void set(struct Point* set::ptr) -byte*~ set::$0 -byte*~ set::$1 -byte*~ set::$2 -byte*~ set::$3 -struct Point* set::ptr -struct Point* set::ptr#0 -struct Point* set::ptr#1 +char *main::$1 +char *main::$2 +char *main::$3 +char *main::$4 +__constant char * const main::SCREEN = (char *)$400 +__loadstore volatile struct Point main::p +__constant struct Point *main::q = &main::p +void set(struct Point *ptr) +char *set::$0 +char *set::$1 +char *set::$2 +char *set::$3 +struct Point *set::ptr +struct Point *set::ptr#0 +struct Point *set::ptr#1 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = *main::$1 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = *main::$2 @@ -75,28 +75,28 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *set::$0 = (unumber)4 Inlining cast *set::$1 = (unumber)5 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Identical Phi Values set::ptr#1 set::ptr#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [3] main::$3 = (byte*)main::q -Constant right-side identified [6] main::$4 = (byte*)main::q +Constant right-side identified [3] main::$3 = (char *)main::q +Constant right-side identified [6] main::$4 = (char *)main::q Successful SSA optimization Pass2ConstantRValueConsolidation Constant set::ptr#0 = main::q -Constant main::$3 = (byte*)main::q -Constant main::$4 = (byte*)main::q +Constant main::$3 = (char *)main::q +Constant main::$4 = (char *)main::q Successful SSA optimization Pass2ConstantIdentification -Constant set::$2 = (byte*)set::ptr#0 -Constant set::$3 = (byte*)set::ptr#0 +Constant set::$2 = (char *)set::ptr#0 +Constant set::$3 = (char *)set::ptr#0 Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [5] main::SCREEN[0] = *main::$1 -- main::$3[OFFSET_STRUCT_POINT_X] Converting *(pointer+n) to pointer[n] [8] main::SCREEN[1] = *main::$2 -- main::$4[OFFSET_STRUCT_POINT_Y] @@ -121,14 +121,14 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined set::ptr#0 = main::q -Constant inlined set::$3 = (byte*)main::q -Constant inlined main::$3 = (byte*)main::q -Constant inlined set::$2 = (byte*)main::q -Constant inlined main::$4 = (byte*)main::q +Constant inlined set::$3 = (char *)main::q +Constant inlined main::$3 = (char *)main::q +Constant inlined set::$2 = (char *)main::q +Constant inlined main::$4 = (char *)main::q Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)main::q+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)main::q+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+1) -Consolidated array index constant in *((byte*)main::q+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)main::q+OFFSET_STRUCT_POINT_Y) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH Calls in [main] to set:1 @@ -141,20 +141,20 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::p) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] call set + [1] call set to:main::@1 main::@1: scope:[main] from main - [2] *main::SCREEN = *((byte*)main::q) - [3] *(main::SCREEN+1) = *((byte*)main::q+OFFSET_STRUCT_POINT_Y) + [2] *main::SCREEN = *((char *)main::q) + [3] *(main::SCREEN+1) = *((char *)main::q+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void set(struct Point* set::ptr) +void set(struct Point *ptr) set: scope:[set] from main - [5] *((byte*)main::q) = 4 - [6] *((byte*)main::q+OFFSET_STRUCT_POINT_Y) = 5 + [5] *((char *)main::q) = 4 + [6] *((char *)main::q+OFFSET_STRUCT_POINT_Y) = 5 to:set::@return set::@return: scope:[set] from set [7] return @@ -163,9 +163,9 @@ set::@return: scope:[set] from set VARIABLE REGISTER WEIGHTS void main() -volatile struct Point main::p loadstore -void set(struct Point* set::ptr) -struct Point* set::ptr +__loadstore volatile struct Point main::p +void set(struct Point *ptr) +struct Point *set::ptr Initial phi equivalence classes Added variable main::p to live range equivalence class [ main::p ] @@ -174,10 +174,10 @@ Complete equivalence classes Allocated zp[2]:2 [ main::p ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::p) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [2] *main::SCREEN = *((byte*)main::q) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN+1) = *((byte*)main::q+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)main::q) = 4 [ ] ( set:1 [ ] { } ) always clobbers reg byte a -Statement [6] *((byte*)main::q+OFFSET_STRUCT_POINT_Y) = 5 [ ] ( set:1 [ ] { } ) always clobbers reg byte a +Statement [2] *main::SCREEN = *((char *)main::q) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN+1) = *((char *)main::q+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)main::q) = 4 [ ] ( set:1 [ ] { } ) always clobbers reg byte a +Statement [6] *((char *)main::q+OFFSET_STRUCT_POINT_Y) = 5 [ ] ( set:1 [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::p ] : zp[2]:2 , REGISTER UPLIFT SCOPES @@ -219,15 +219,15 @@ main: { sta p-1,y dey bne !- - // [1] call set + // [1] call set jsr set jmp __b1 // main::@1 __b1: - // [2] *main::SCREEN = *((byte*)main::q) -- _deref_pbuc1=_deref_pbuc2 + // [2] *main::SCREEN = *((char *)main::q) -- _deref_pbuc1=_deref_pbuc2 lda.z q sta SCREEN - // [3] *(main::SCREEN+1) = *((byte*)main::q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+1) = *((char *)main::q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda q+OFFSET_STRUCT_POINT_Y sta SCREEN+1 jmp __breturn @@ -237,11 +237,12 @@ main: { rts } // set +// void set(struct Point *ptr) set: { - // [5] *((byte*)main::q) = 4 -- _deref_pbuc1=vbuc2 + // [5] *((char *)main::q) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta.z main.q - // [6] *((byte*)main::q+OFFSET_STRUCT_POINT_Y) = 5 -- _deref_pbuc1=vbuc2 + // [6] *((char *)main::q+OFFSET_STRUCT_POINT_Y) = 5 -- _deref_pbuc1=vbuc2 lda #5 sta main.q+OFFSET_STRUCT_POINT_Y jmp __breturn @@ -265,15 +266,15 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -volatile struct Point main::p loadstore zp[2]:2 -constant struct Point* main::q = &main::p -void set(struct Point* set::ptr) -struct Point* set::ptr +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile struct Point main::p // zp[2]:2 +__constant struct Point *main::q = &main::p +void set(struct Point *ptr) +struct Point *set::ptr zp[2]:2 [ main::p ] @@ -310,15 +311,15 @@ main: { dey bne !- // set(q) - // [1] call set + // [1] call set jsr set // main::@1 // SCREEN[0] = q->x - // [2] *main::SCREEN = *((byte*)main::q) -- _deref_pbuc1=_deref_pbuc2 + // [2] *main::SCREEN = *((char *)main::q) -- _deref_pbuc1=_deref_pbuc2 lda.z q sta SCREEN // SCREEN[1] = q->y - // [3] *(main::SCREEN+1) = *((byte*)main::q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+1) = *((char *)main::q+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda q+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // main::@return @@ -327,13 +328,14 @@ main: { rts } // set +// void set(struct Point *ptr) set: { // ptr->x = 4 - // [5] *((byte*)main::q) = 4 -- _deref_pbuc1=vbuc2 + // [5] *((char *)main::q) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta.z main.q // ptr->y = 5 - // [6] *((byte*)main::q+OFFSET_STRUCT_POINT_Y) = 5 -- _deref_pbuc1=vbuc2 + // [6] *((char *)main::q+OFFSET_STRUCT_POINT_Y) = 5 -- _deref_pbuc1=vbuc2 lda #5 sta main.q+OFFSET_STRUCT_POINT_Y // set::@return diff --git a/src/test/ref/struct-ptr-14.sym b/src/test/ref/struct-ptr-14.sym index 6d201e26d..b12b6609f 100644 --- a/src/test/ref/struct-ptr-14.sym +++ b/src/test/ref/struct-ptr-14.sym @@ -1,11 +1,11 @@ -constant struct Point $0 = { x: 2, y: 3 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 2, y: 3 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -volatile struct Point main::p loadstore zp[2]:2 -constant struct Point* main::q = &main::p -void set(struct Point* set::ptr) -struct Point* set::ptr +__constant char * const main::SCREEN = (char *) 1024 +__loadstore volatile struct Point main::p // zp[2]:2 +__constant struct Point *main::q = &main::p +void set(struct Point *ptr) +struct Point *set::ptr zp[2]:2 [ main::p ] diff --git a/src/test/ref/struct-ptr-15.cfg b/src/test/ref/struct-ptr-15.cfg index 2f8123c07..9f8718c6d 100644 --- a/src/test/ref/struct-ptr-15.cfg +++ b/src/test/ref/struct-ptr-15.cfg @@ -1,20 +1,20 @@ void main() main: scope:[main] from - [0] *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 - [1] *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 - [2] *((byte*)circles) = 5 - [3] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 - [4] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 - [5] *((byte*)circles+1*SIZEOF_STRUCT_CIRCLE) = $f + [0] *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 + [1] *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 + [2] *((char *)circles) = 5 + [3] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 + [4] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 + [5] *((char *)circles+1*SIZEOF_STRUCT_CIRCLE) = $f to:main::@1 main::@1: scope:[main] from main main::@1 [6] main::i#2 = phi( main/0, main::@1/main::i#1 ) [6] main::idx#3 = phi( main/0, main::@1/main::idx#2 ) [6] main::ptr#2 = phi( main/circles, main::@1/main::ptr#1 ) - [7] main::x#0 = ((byte*)(struct Point*)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] - [8] main::$28 = (struct Point*)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER - [9] main::y#0 = ((byte*)main::$28)[OFFSET_STRUCT_POINT_Y] + [7] main::x#0 = ((char *)(struct Point *)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] + [8] main::$28 = (struct Point *)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER + [9] main::y#0 = ((char *)main::$28)[OFFSET_STRUCT_POINT_Y] [10] main::SCREEN[main::idx#3] = main::x#0 [11] main::idx#1 = ++ main::idx#3 [12] main::SCREEN[main::idx#1] = main::y#0 diff --git a/src/test/ref/struct-ptr-15.log b/src/test/ref/struct-ptr-15.log index 1b93b17f0..2f894aacf 100644 --- a/src/test/ref/struct-ptr-15.log +++ b/src/test/ref/struct-ptr-15.log @@ -4,30 +4,30 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::$1 = 0 * SIZEOF_STRUCT_CIRCLE - main::$7 = (struct Point*)circles + main::$1 - main::$21 = (byte*)main::$7 + main::$7 = (struct Point *)circles + main::$1 + main::$21 = (char *)main::$7 main::$8 = main::$21 + OFFSET_STRUCT_POINT_X main::$8[OFFSET_STRUCT_CIRCLE_CENTER] = 2 main::$2 = 0 * SIZEOF_STRUCT_CIRCLE - main::$9 = (struct Point*)circles + main::$2 - main::$22 = (byte*)main::$9 + main::$9 = (struct Point *)circles + main::$2 + main::$22 = (char *)main::$9 main::$10 = main::$22 + OFFSET_STRUCT_POINT_Y main::$10[OFFSET_STRUCT_CIRCLE_CENTER] = 3 main::$3 = 0 * SIZEOF_STRUCT_CIRCLE - main::$11 = (byte*)circles + main::$3 + main::$11 = (char *)circles + main::$3 main::$11[OFFSET_STRUCT_CIRCLE_RADIUS] = 5 main::$4 = 1 * SIZEOF_STRUCT_CIRCLE - main::$12 = (struct Point*)circles + main::$4 - main::$23 = (byte*)main::$12 + main::$12 = (struct Point *)circles + main::$4 + main::$23 = (char *)main::$12 main::$13 = main::$23 + OFFSET_STRUCT_POINT_X main::$13[OFFSET_STRUCT_CIRCLE_CENTER] = 8 main::$5 = 1 * SIZEOF_STRUCT_CIRCLE - main::$14 = (struct Point*)circles + main::$5 - main::$24 = (byte*)main::$14 + main::$14 = (struct Point *)circles + main::$5 + main::$24 = (char *)main::$14 main::$15 = main::$24 + OFFSET_STRUCT_POINT_Y main::$15[OFFSET_STRUCT_CIRCLE_CENTER] = 9 main::$6 = 1 * SIZEOF_STRUCT_CIRCLE - main::$16 = (byte*)circles + main::$6 + main::$16 = (char *)circles + main::$6 main::$16[OFFSET_STRUCT_CIRCLE_RADIUS] = $f main::idx#0 = 0 main::ptr#0 = circles @@ -37,14 +37,14 @@ main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::idx#3 = phi( main/main::idx#0, main::@1/main::idx#2 ) main::ptr#2 = phi( main/main::ptr#0, main::@1/main::ptr#1 ) - main::$25 = (struct Point*)main::ptr#2 + main::$25 = (struct Point *)main::ptr#2 main::$17 = main::$25 + OFFSET_STRUCT_CIRCLE_CENTER - main::$26 = (byte*)main::$17 + main::$26 = (char *)main::$17 main::$18 = main::$26 + OFFSET_STRUCT_POINT_X main::x#0 = *main::$18 - main::$27 = (struct Point*)main::ptr#2 + main::$27 = (struct Point *)main::ptr#2 main::$19 = main::$27 + OFFSET_STRUCT_CIRCLE_CENTER - main::$28 = (byte*)main::$19 + main::$28 = (char *)main::$19 main::$20 = main::$28 + OFFSET_STRUCT_POINT_Y main::y#0 = *main::$20 main::SCREEN[main::idx#3] = main::x#0 @@ -62,7 +62,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -71,61 +71,61 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_CIRCLE_CENTER = 1 -constant byte OFFSET_STRUCT_CIRCLE_RADIUS = 0 -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_CIRCLE = 3 +__constant char OFFSET_STRUCT_CIRCLE_CENTER = 1 +__constant char OFFSET_STRUCT_CIRCLE_RADIUS = 0 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_CIRCLE = 3 void __start() -constant struct Circle* circles[2] = { fill( 2, 0) } +__constant struct Circle circles[2] = { fill( 2, 0) } void main() -bool~ main::$0 -number~ main::$1 -byte*~ main::$10 -byte*~ main::$11 -struct Point*~ main::$12 -byte*~ main::$13 -struct Point*~ main::$14 -byte*~ main::$15 -byte*~ main::$16 -struct Point*~ main::$17 -byte*~ main::$18 -struct Point*~ main::$19 -number~ main::$2 -byte*~ main::$20 -byte*~ main::$21 -byte*~ main::$22 -byte*~ main::$23 -byte*~ main::$24 -struct Point*~ main::$25 -byte*~ main::$26 -struct Point*~ main::$27 -byte*~ main::$28 -number~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -struct Point*~ main::$7 -byte*~ main::$8 -struct Point*~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -struct Circle* main::ptr -struct Circle* main::ptr#0 -struct Circle* main::ptr#1 -struct Circle* main::ptr#2 -byte main::x -byte main::x#0 -byte main::y -byte main::y#0 +bool main::$0 +number main::$1 +char *main::$10 +char *main::$11 +struct Point *main::$12 +char *main::$13 +struct Point *main::$14 +char *main::$15 +char *main::$16 +struct Point *main::$17 +char *main::$18 +struct Point *main::$19 +number main::$2 +char *main::$20 +char *main::$21 +char *main::$22 +char *main::$23 +char *main::$24 +struct Point *main::$25 +char *main::$26 +struct Point *main::$27 +char *main::$28 +number main::$3 +number main::$4 +number main::$5 +number main::$6 +struct Point *main::$7 +char *main::$8 +struct Point *main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +struct Circle *main::ptr +struct Circle *main::ptr#0 +struct Circle *main::ptr#1 +struct Circle *main::ptr#2 +char main::x +char main::x#0 +char main::y +char main::y#0 Adding number conversion cast (unumber) 0 in main::$1 = 0 * SIZEOF_STRUCT_CIRCLE Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)0 * SIZEOF_STRUCT_CIRCLE @@ -153,7 +153,7 @@ Inlining cast main::$13[OFFSET_STRUCT_CIRCLE_CENTER] = (unumber)8 Inlining cast main::$15[OFFSET_STRUCT_CIRCLE_CENTER] = (unumber)9 Inlining cast main::$16[OFFSET_STRUCT_CIRCLE_RADIUS] = (unumber)$f Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 0 @@ -167,25 +167,25 @@ Simplifying constant integer cast 9 Simplifying constant integer cast 1 Simplifying constant integer cast $f Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $f Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = 0 * SIZEOF_STRUCT_CIRCLE -Inferred type updated to byte in main::$2 = 0 * SIZEOF_STRUCT_CIRCLE -Inferred type updated to byte in main::$3 = 0 * SIZEOF_STRUCT_CIRCLE -Inferred type updated to byte in main::$4 = 1 * SIZEOF_STRUCT_CIRCLE -Inferred type updated to byte in main::$5 = 1 * SIZEOF_STRUCT_CIRCLE -Inferred type updated to byte in main::$6 = 1 * SIZEOF_STRUCT_CIRCLE +Inferred type updated to char in main::$1 = 0 * SIZEOF_STRUCT_CIRCLE +Inferred type updated to char in main::$2 = 0 * SIZEOF_STRUCT_CIRCLE +Inferred type updated to char in main::$3 = 0 * SIZEOF_STRUCT_CIRCLE +Inferred type updated to char in main::$4 = 1 * SIZEOF_STRUCT_CIRCLE +Inferred type updated to char in main::$5 = 1 * SIZEOF_STRUCT_CIRCLE +Inferred type updated to char in main::$6 = 1 * SIZEOF_STRUCT_CIRCLE Simple Condition main::$0 [47] if(main::i#1!=rangelast(0,1)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [0] main::$1 = 0 * SIZEOF_STRUCT_CIRCLE @@ -214,10 +214,10 @@ Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_CIRCLE in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_CIRCLE in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_CIRCLE in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (struct Point*)circles in [1] main::$7 = (struct Point*)circles + main::$1 +Simplifying expression containing zero (struct Point *)circles in [1] main::$7 = (struct Point *)circles + main::$1 Simplifying expression containing zero main::$21 in [3] main::$8 = main::$21 + OFFSET_STRUCT_POINT_X -Simplifying expression containing zero (struct Point*)circles in [6] main::$9 = (struct Point*)circles + main::$2 -Simplifying expression containing zero (byte*)circles in [11] main::$11 = (byte*)circles + main::$3 +Simplifying expression containing zero (struct Point *)circles in [6] main::$9 = (struct Point *)circles + main::$2 +Simplifying expression containing zero (char *)circles in [11] main::$11 = (char *)circles + main::$3 Simplifying expression containing zero main::$11 in [12] main::$11[OFFSET_STRUCT_CIRCLE_RADIUS] = 5 Simplifying expression containing zero main::$23 in [16] main::$13 = main::$23 + OFFSET_STRUCT_POINT_X Simplifying expression containing zero main::$16 in [25] main::$16[OFFSET_STRUCT_CIRCLE_RADIUS] = $f @@ -241,30 +241,30 @@ Adding number conversion cast (unumber) 2 in [35] if(main::i#1!=2) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$8 = main::$21 Alias main::$13 = main::$23 Successful SSA optimization Pass2AliasElimination -Constant right-side identified [9] main::$12 = (struct Point*)circles + main::$4 -Constant right-side identified [12] main::$14 = (struct Point*)circles + main::$5 -Constant right-side identified [16] main::$16 = (byte*)circles + main::$6 +Constant right-side identified [9] main::$12 = (struct Point *)circles + main::$4 +Constant right-side identified [12] main::$14 = (struct Point *)circles + main::$5 +Constant right-side identified [16] main::$16 = (char *)circles + main::$6 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$7 = (struct Point*)circles -Constant main::$9 = (struct Point*)circles -Constant main::$11 = (byte*)circles -Constant main::$12 = (struct Point*)circles+main::$4 -Constant main::$14 = (struct Point*)circles+main::$5 -Constant main::$16 = (byte*)circles+main::$6 +Constant main::$7 = (struct Point *)circles +Constant main::$9 = (struct Point *)circles +Constant main::$11 = (char *)circles +Constant main::$12 = (struct Point *)circles+main::$4 +Constant main::$14 = (struct Point *)circles+main::$5 +Constant main::$16 = (char *)circles+main::$6 Successful SSA optimization Pass2ConstantIdentification -Constant main::$8 = (byte*)main::$7 -Constant main::$22 = (byte*)main::$9 -Constant main::$13 = (byte*)main::$12 -Constant main::$24 = (byte*)main::$14 +Constant main::$8 = (char *)main::$7 +Constant main::$22 = (char *)main::$9 +Constant main::$13 = (char *)main::$12 +Constant main::$24 = (char *)main::$14 Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [22] main::x#0 = *main::$26 -- ((byte*)main::$25)[OFFSET_STRUCT_CIRCLE_CENTER] +Converting *(pointer+n) to pointer[n] [22] main::x#0 = *main::$26 -- ((char *)main::$25)[OFFSET_STRUCT_CIRCLE_CENTER] Successful SSA optimization Pass2InlineDerefIdx -Eliminating unused variable main::$26 and assignment [11] main::$26 = (byte*)main::$17 +Eliminating unused variable main::$26 and assignment [11] main::$26 = (char *)main::$17 Successful SSA optimization PassNEliminateUnusedVars Eliminating unused variable main::$17 and assignment [10] main::$17 = main::$25 + OFFSET_STRUCT_CIRCLE_CENTER Successful SSA optimization PassNEliminateUnusedVars @@ -274,40 +274,40 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$10 = main::$22+OFFSET_STRUCT_POINT_Y Constant main::$15 = main::$24+OFFSET_STRUCT_POINT_Y Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [7] main::$25 = (struct Point*)main::ptr#2 keeping main::ptr#2 -Inlining Noop Cast [9] main::$27 = (struct Point*)main::ptr#2 keeping main::ptr#2 +Inlining Noop Cast [7] main::$25 = (struct Point *)main::ptr#2 keeping main::ptr#2 +Inlining Noop Cast [9] main::$27 = (struct Point *)main::ptr#2 keeping main::ptr#2 Successful SSA optimization Pass2NopCastInlining -Inlining Noop Cast [11] main::$28 = (byte*)main::$19 keeping main::$28 +Inlining Noop Cast [11] main::$28 = (char *)main::$19 keeping main::$28 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::ptr#0 Inlining constant with var siblings main::i#0 -Constant inlined main::$12 = (struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE -Constant inlined main::$13 = (byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE -Constant inlined main::$24 = (byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE -Constant inlined main::$14 = (struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$12 = (struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$13 = (char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$24 = (char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$14 = (struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE Constant inlined main::ptr#0 = circles -Constant inlined main::$15 = (byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y -Constant inlined main::$10 = (byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y -Constant inlined main::$11 = (byte*)circles -Constant inlined main::$22 = (byte*)(struct Point*)circles +Constant inlined main::$15 = (char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y +Constant inlined main::$10 = (char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y +Constant inlined main::$11 = (char *)circles +Constant inlined main::$22 = (char *)(struct Point *)circles Constant inlined main::idx#0 = 0 -Constant inlined main::$16 = (byte*)circles+1*SIZEOF_STRUCT_CIRCLE +Constant inlined main::$16 = (char *)circles+1*SIZEOF_STRUCT_CIRCLE Constant inlined main::$5 = 1*SIZEOF_STRUCT_CIRCLE Constant inlined main::i#0 = 0 Constant inlined main::$6 = 1*SIZEOF_STRUCT_CIRCLE Constant inlined main::$4 = 1*SIZEOF_STRUCT_CIRCLE -Constant inlined main::$9 = (struct Point*)circles -Constant inlined main::$7 = (struct Point*)circles -Constant inlined main::$8 = (byte*)(struct Point*)circles +Constant inlined main::$9 = (struct Point *)circles +Constant inlined main::$7 = (struct Point *)circles +Constant inlined main::$8 = (char *)(struct Point *)circles Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) -Consolidated array index constant in *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) -Consolidated array index constant in *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) -Consolidated array index constant in *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) +Consolidated array index constant in *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) +Consolidated array index constant in *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) +Consolidated array index constant in *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) +Consolidated array index constant in *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) CALL GRAPH @@ -323,20 +323,20 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 - [1] *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 - [2] *((byte*)circles) = 5 - [3] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 - [4] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 - [5] *((byte*)circles+1*SIZEOF_STRUCT_CIRCLE) = $f + [0] *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 + [1] *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 + [2] *((char *)circles) = 5 + [3] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 + [4] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 + [5] *((char *)circles+1*SIZEOF_STRUCT_CIRCLE) = $f to:main::@1 main::@1: scope:[main] from main main::@1 [6] main::i#2 = phi( main/0, main::@1/main::i#1 ) [6] main::idx#3 = phi( main/0, main::@1/main::idx#2 ) [6] main::ptr#2 = phi( main/circles, main::@1/main::ptr#1 ) - [7] main::x#0 = ((byte*)(struct Point*)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] - [8] main::$28 = (struct Point*)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER - [9] main::y#0 = ((byte*)main::$28)[OFFSET_STRUCT_POINT_Y] + [7] main::x#0 = ((char *)(struct Point *)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] + [8] main::$28 = (struct Point *)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER + [9] main::y#0 = ((char *)main::$28)[OFFSET_STRUCT_POINT_Y] [10] main::SCREEN[main::idx#3] = main::x#0 [11] main::idx#1 = ++ main::idx#3 [12] main::SCREEN[main::idx#1] = main::y#0 @@ -352,21 +352,21 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -struct Point*~ main::$28 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 2.4444444444444446 -byte main::idx -byte main::idx#1 16.5 -byte main::idx#2 5.5 -byte main::idx#3 6.6000000000000005 -struct Circle* main::ptr -struct Circle* main::ptr#1 7.333333333333333 -struct Circle* main::ptr#2 2.75 -byte main::x -byte main::x#0 7.333333333333333 -byte main::y -byte main::y#0 7.333333333333333 +struct Point *main::$28 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 2.4444444444444446 +char main::idx +char main::idx#1 // 16.5 +char main::idx#2 // 5.5 +char main::idx#3 // 6.6000000000000005 +struct Circle *main::ptr +struct Circle *main::ptr#1 // 7.333333333333333 +struct Circle *main::ptr#2 // 2.75 +char main::x +char main::x#0 // 7.333333333333333 +char main::y +char main::y#0 // 7.333333333333333 Initial phi equivalence classes [ main::ptr#2 main::ptr#1 ] @@ -392,35 +392,35 @@ Allocated zp[2]:7 [ main::$28 ] Allocated zp[1]:9 [ main::y#0 ] Allocated zp[1]:10 [ main::idx#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)circles) = 5 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)circles+1*SIZEOF_STRUCT_CIRCLE) = $f [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] main::x#0 = ((byte*)(struct Point*)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] { } ) always clobbers reg byte a reg byte y +Statement [0] *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)circles) = 5 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)circles+1*SIZEOF_STRUCT_CIRCLE) = $f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] main::x#0 = ((char *)(struct Point *)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::idx#3 main::idx#2 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::idx#3 main::idx#2 ] Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:5 [ main::i#2 main::i#1 ] -Statement [8] main::$28 = (struct Point*)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] { } ) always clobbers reg byte a +Statement [8] main::$28 = (struct Point *)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::x#0 ] -Statement [9] main::y#0 = ((byte*)main::$28)[OFFSET_STRUCT_POINT_Y] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] { } ) always clobbers reg byte a reg byte y +Statement [9] main::y#0 = ((char *)main::$28)[OFFSET_STRUCT_POINT_Y] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:6 [ main::x#0 ] Statement [10] main::SCREEN[main::idx#3] = main::x#0 [ main::ptr#2 main::idx#3 main::i#2 main::y#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::y#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ main::y#0 ] Statement [12] main::SCREEN[main::idx#1] = main::y#0 [ main::ptr#2 main::i#2 main::idx#1 ] ( [ main::ptr#2 main::i#2 main::idx#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::idx#1 ] Statement [14] main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_CIRCLE [ main::i#2 main::ptr#1 main::idx#2 ] ( [ main::i#2 main::ptr#1 main::idx#2 ] { } ) always clobbers reg byte a -Statement [0] *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)circles) = 5 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)circles+1*SIZEOF_STRUCT_CIRCLE) = $f [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] main::x#0 = ((byte*)(struct Point*)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] { } ) always clobbers reg byte a reg byte y -Statement [8] main::$28 = (struct Point*)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] { } ) always clobbers reg byte a -Statement [9] main::y#0 = ((byte*)main::$28)[OFFSET_STRUCT_POINT_Y] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] { } ) always clobbers reg byte a reg byte y +Statement [0] *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)circles) = 5 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)circles+1*SIZEOF_STRUCT_CIRCLE) = $f [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] main::x#0 = ((char *)(struct Point *)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 ] { } ) always clobbers reg byte a reg byte y +Statement [8] main::$28 = (struct Point *)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::$28 ] { } ) always clobbers reg byte a +Statement [9] main::y#0 = ((char *)main::$28)[OFFSET_STRUCT_POINT_Y] [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::x#0 main::y#0 ] { } ) always clobbers reg byte a reg byte y Statement [10] main::SCREEN[main::idx#3] = main::x#0 [ main::ptr#2 main::idx#3 main::i#2 main::y#0 ] ( [ main::ptr#2 main::idx#3 main::i#2 main::y#0 ] { } ) always clobbers reg byte a Statement [12] main::SCREEN[main::idx#1] = main::y#0 [ main::ptr#2 main::i#2 main::idx#1 ] ( [ main::ptr#2 main::i#2 main::idx#1 ] { } ) always clobbers reg byte a Statement [14] main::ptr#1 = main::ptr#2 + SIZEOF_STRUCT_CIRCLE [ main::i#2 main::ptr#1 main::idx#2 ] ( [ main::i#2 main::ptr#1 main::idx#2 ] { } ) always clobbers reg byte a @@ -474,22 +474,22 @@ main: { .label x = 5 .label ptr = 2 .label i = 4 - // [0] *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta circles+OFFSET_STRUCT_CIRCLE_CENTER - // [1] *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER - // [2] *((byte*)circles) = 5 -- _deref_pbuc1=vbuc2 + // [2] *((char *)circles) = 5 -- _deref_pbuc1=vbuc2 lda #5 sta circles - // [3] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 -- _deref_pbuc1=vbuc2 + // [3] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 -- _deref_pbuc1=vbuc2 lda #8 sta circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER - // [4] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 -- _deref_pbuc1=vbuc2 + // [4] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 -- _deref_pbuc1=vbuc2 lda #9 sta circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER - // [5] *((byte*)circles+1*SIZEOF_STRUCT_CIRCLE) = $f -- _deref_pbuc1=vbuc2 + // [5] *((char *)circles+1*SIZEOF_STRUCT_CIRCLE) = $f -- _deref_pbuc1=vbuc2 lda #$f sta circles+1*SIZEOF_STRUCT_CIRCLE // [6] phi from main to main::@1 [phi:main->main::@1] @@ -513,11 +513,11 @@ main: { jmp __b1 // main::@1 __b1: - // [7] main::x#0 = ((byte*)(struct Point*)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] -- vbuz1=pbuz2_derefidx_vbuc1 + // [7] main::x#0 = ((char *)(struct Point *)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] -- vbuz1=pbuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_CIRCLE_CENTER lda (ptr),y sta.z x - // [8] main::$28 = (struct Point*)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER -- pssz1=pssz2_plus_vbuc1 + // [8] main::$28 = (struct Point *)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER -- pssz1=pssz2_plus_vbuc1 lda #OFFSET_STRUCT_CIRCLE_CENTER clc adc.z ptr @@ -525,7 +525,7 @@ main: { lda #0 adc.z ptr+1 sta.z __28+1 - // [9] main::y#0 = ((byte*)main::$28)[OFFSET_STRUCT_POINT_Y] -- vbuyy=pbuz1_derefidx_vbuc1 + // [9] main::y#0 = ((char *)main::$28)[OFFSET_STRUCT_POINT_Y] -- vbuyy=pbuz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_POINT_Y lda (__28),y tay @@ -579,27 +579,27 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_CIRCLE_CENTER = 1 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_CIRCLE = 3 -constant struct Circle* circles[2] = { fill( 2, 0) } +__constant char OFFSET_STRUCT_CIRCLE_CENTER = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_CIRCLE = 3 +__constant struct Circle circles[2] = { fill( 2, 0) } void main() -struct Point*~ main::$28 zp[2]:6 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:4 16.5 -byte main::i#2 i zp[1]:4 2.4444444444444446 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 5.5 -byte main::idx#3 reg byte x 6.6000000000000005 -struct Circle* main::ptr -struct Circle* main::ptr#1 ptr zp[2]:2 7.333333333333333 -struct Circle* main::ptr#2 ptr zp[2]:2 2.75 -byte main::x -byte main::x#0 x zp[1]:5 7.333333333333333 -byte main::y -byte main::y#0 reg byte y 7.333333333333333 +struct Point *main::$28 // zp[2]:6 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:4 16.5 +char main::i#2 // i zp[1]:4 2.4444444444444446 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 5.5 +char main::idx#3 // reg byte x 6.6000000000000005 +struct Circle *main::ptr +struct Circle *main::ptr#1 // ptr zp[2]:2 7.333333333333333 +struct Circle *main::ptr#2 // ptr zp[2]:2 2.75 +char main::x +char main::x#0 // x zp[1]:5 7.333333333333333 +char main::y +char main::y#0 // reg byte y 7.333333333333333 zp[2]:2 [ main::ptr#2 main::ptr#1 ] reg byte x [ main::idx#3 main::idx#2 ] @@ -637,27 +637,27 @@ main: { .label ptr = 2 .label i = 4 // circles[0].center.x = 2 - // [0] *((byte*)(struct Point*)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct Point *)circles+OFFSET_STRUCT_CIRCLE_CENTER) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta circles+OFFSET_STRUCT_CIRCLE_CENTER // circles[0].center.y = 3 - // [1] *((byte*)(struct Point*)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)(struct Point *)circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta circles+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER // circles[0].radius = 5 - // [2] *((byte*)circles) = 5 -- _deref_pbuc1=vbuc2 + // [2] *((char *)circles) = 5 -- _deref_pbuc1=vbuc2 lda #5 sta circles // circles[1].center.x = 8 - // [3] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 -- _deref_pbuc1=vbuc2 + // [3] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER) = 8 -- _deref_pbuc1=vbuc2 lda #8 sta circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_CIRCLE_CENTER // circles[1].center.y = 9 - // [4] *((byte*)(struct Point*)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 -- _deref_pbuc1=vbuc2 + // [4] *((char *)(struct Point *)circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER) = 9 -- _deref_pbuc1=vbuc2 lda #9 sta circles+1*SIZEOF_STRUCT_CIRCLE+OFFSET_STRUCT_POINT_Y+OFFSET_STRUCT_CIRCLE_CENTER // circles[1].radius = 15 - // [5] *((byte*)circles+1*SIZEOF_STRUCT_CIRCLE) = $f -- _deref_pbuc1=vbuc2 + // [5] *((char *)circles+1*SIZEOF_STRUCT_CIRCLE) = $f -- _deref_pbuc1=vbuc2 lda #$f sta circles+1*SIZEOF_STRUCT_CIRCLE // [6] phi from main to main::@1 [phi:main->main::@1] @@ -678,12 +678,12 @@ main: { // main::@1 __b1: // byte x = ptr->center.x - // [7] main::x#0 = ((byte*)(struct Point*)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] -- vbuz1=pbuz2_derefidx_vbuc1 + // [7] main::x#0 = ((char *)(struct Point *)main::ptr#2)[OFFSET_STRUCT_CIRCLE_CENTER] -- vbuz1=pbuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_CIRCLE_CENTER lda (ptr),y sta.z x // byte y = ptr->center.y - // [8] main::$28 = (struct Point*)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER -- pssz1=pssz2_plus_vbuc1 + // [8] main::$28 = (struct Point *)main::ptr#2 + OFFSET_STRUCT_CIRCLE_CENTER -- pssz1=pssz2_plus_vbuc1 tya clc adc.z ptr @@ -691,7 +691,7 @@ main: { lda #0 adc.z ptr+1 sta.z __28+1 - // [9] main::y#0 = ((byte*)main::$28)[OFFSET_STRUCT_POINT_Y] -- vbuyy=pbuz1_derefidx_vbuc1 + // [9] main::y#0 = ((char *)main::$28)[OFFSET_STRUCT_POINT_Y] -- vbuyy=pbuz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_POINT_Y lda (__28),y tay diff --git a/src/test/ref/struct-ptr-15.sym b/src/test/ref/struct-ptr-15.sym index c1f7c38a3..36ba140c4 100644 --- a/src/test/ref/struct-ptr-15.sym +++ b/src/test/ref/struct-ptr-15.sym @@ -1,24 +1,24 @@ -constant byte OFFSET_STRUCT_CIRCLE_CENTER = 1 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_CIRCLE = 3 -constant struct Circle* circles[2] = { fill( 2, 0) } +__constant char OFFSET_STRUCT_CIRCLE_CENTER = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_CIRCLE = 3 +__constant struct Circle circles[2] = { fill( 2, 0) } void main() -struct Point*~ main::$28 zp[2]:6 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:4 16.5 -byte main::i#2 i zp[1]:4 2.4444444444444446 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 5.5 -byte main::idx#3 reg byte x 6.6000000000000005 -struct Circle* main::ptr -struct Circle* main::ptr#1 ptr zp[2]:2 7.333333333333333 -struct Circle* main::ptr#2 ptr zp[2]:2 2.75 -byte main::x -byte main::x#0 x zp[1]:5 7.333333333333333 -byte main::y -byte main::y#0 reg byte y 7.333333333333333 +struct Point *main::$28 // zp[2]:6 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:4 16.5 +char main::i#2 // i zp[1]:4 2.4444444444444446 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 5.5 +char main::idx#3 // reg byte x 6.6000000000000005 +struct Circle *main::ptr +struct Circle *main::ptr#1 // ptr zp[2]:2 7.333333333333333 +struct Circle *main::ptr#2 // ptr zp[2]:2 2.75 +char main::x +char main::x#0 // x zp[1]:5 7.333333333333333 +char main::y +char main::y#0 // reg byte y 7.333333333333333 zp[2]:2 [ main::ptr#2 main::ptr#1 ] reg byte x [ main::idx#3 main::idx#2 ] diff --git a/src/test/ref/struct-ptr-16.asm b/src/test/ref/struct-ptr-16.asm index b2688bcf9..21b5b4b05 100644 --- a/src/test/ref/struct-ptr-16.asm +++ b/src/test/ref/struct-ptr-16.asm @@ -46,7 +46,7 @@ main: { // } rts } -// get(byte register(A) i) +// struct Point get(__register(A) char i) get: { // if(i==0) cmp #0 diff --git a/src/test/ref/struct-ptr-16.cfg b/src/test/ref/struct-ptr-16.cfg index 5864fb33b..76bea9019 100644 --- a/src/test/ref/struct-ptr-16.cfg +++ b/src/test/ref/struct-ptr-16.cfg @@ -2,20 +2,20 @@ void main() main: scope:[main] from [0] phi() - [1] call get + [1] call get [2] get::return_x#0 = get::return_x#7 [3] get::return_y#0 = get::return_y#7 to:main::@2 main::@2: scope:[main] from main [4] main::$0_x = get::return_x#0 [5] main::$0_y = get::return_y#0 - [6] *((byte*)SCREEN) = main::$0_x - [7] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y + [6] *((char *)SCREEN) = main::$0_x + [7] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [8] main::i#2 = phi( main::@2/1, main::@3/main::i#1 ) [9] get::i#1 = main::i#2 - [10] call get + [10] call get [11] get::return_x#1 = get::return_x#7 [12] get::return_y#1 = get::return_y#7 to:main::@3 @@ -23,8 +23,8 @@ main::@3: scope:[main] from main::@1 [13] main::$1_x = get::return_x#1 [14] main::$1_y = get::return_y#1 [15] main::$3 = main::i#2 << 1 - [16] ((byte*)SCREEN)[main::$3] = main::$1_x - [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y + [16] ((char *)SCREEN)[main::$3] = main::$1_x + [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y [18] main::i#1 = ++ main::i#2 [19] if(main::i#1!=3) goto main::@1 to:main::@return @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@3 [20] return to:@return -struct Point get(byte get::i) +struct Point get(char i) get: scope:[get] from main main::@1 [21] get::i#2 = phi( main/0, main::@1/get::i#1 ) [22] if(get::i#2==0) goto get::@1 @@ -41,8 +41,8 @@ get::@3: scope:[get] from get [23] if(get::i#2==1) goto get::@2 to:get::@4 get::@4: scope:[get] from get::@3 - [24] get::return_x#4 = *((byte*)p2) - [25] get::return_y#4 = *((byte*)p2+OFFSET_STRUCT_POINT_Y) + [24] get::return_x#4 = *((char *)p2) + [25] get::return_y#4 = *((char *)p2+OFFSET_STRUCT_POINT_Y) to:get::@return get::@return: scope:[get] from get::@1 get::@2 get::@4 [26] get::return_y#7 = phi( get::@1/get::return_y#2, get::@2/get::return_y#3, get::@4/get::return_y#4 ) @@ -50,10 +50,10 @@ get::@return: scope:[get] from get::@1 get::@2 get::@4 [27] return to:@return get::@2: scope:[get] from get::@3 - [28] get::return_x#3 = *((byte*)p1) - [29] get::return_y#3 = *((byte*)p1+OFFSET_STRUCT_POINT_Y) + [28] get::return_x#3 = *((char *)p1) + [29] get::return_y#3 = *((char *)p1+OFFSET_STRUCT_POINT_Y) to:get::@return get::@1: scope:[get] from get - [30] get::return_x#2 = *((byte*)p0) - [31] get::return_y#2 = *((byte*)p0+OFFSET_STRUCT_POINT_Y) + [30] get::return_x#2 = *((char *)p0) + [31] get::return_y#2 = *((char *)p0+OFFSET_STRUCT_POINT_Y) to:get::@return diff --git a/src/test/ref/struct-ptr-16.log b/src/test/ref/struct-ptr-16.log index 883b42363..b73e7730b 100644 --- a/src/test/ref/struct-ptr-16.log +++ b/src/test/ref/struct-ptr-16.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 Unwinding list assignment { main::$0_x, main::$0_y } = { get::return_x, get::return_y } @@ -11,7 +11,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 get::i#0 = 0 - call get + call get get::return_x#0 = get::return_x#7 get::return_y#0 = get::return_y#7 to:main::@2 @@ -20,14 +20,14 @@ main::@2: scope:[main] from main get::return_x#5 = phi( main/get::return_x#0 ) main::$0_x = get::return_x#5 main::$0_y = get::return_y#5 - *((byte*)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x - *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y + *((char *)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x + *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y main::i#0 = 1 to:main::@1 main::@1: scope:[main] from main::@2 main::@3 main::i#2 = phi( main::@2/main::i#0, main::@3/main::i#1 ) get::i#1 = main::i#2 - call get + call get get::return_x#1 = get::return_x#7 get::return_y#1 = get::return_y#7 to:main::@3 @@ -38,8 +38,8 @@ main::@3: scope:[main] from main::@1 main::$1_x = get::return_x#6 main::$1_y = get::return_y#6 main::$3 = main::i#3 * SIZEOF_STRUCT_POINT - ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x - ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y + ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x + ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y main::i#1 = main::i#3 + rangenext(1,2) main::$2 = main::i#1 != rangelast(1,2) if(main::$2) goto main::@1 @@ -48,17 +48,17 @@ main::@return: scope:[main] from main::@3 return to:@return -struct Point get(byte get::i) +struct Point get(char i) get: scope:[get] from main main::@1 get::i#2 = phi( main/get::i#0, main::@1/get::i#1 ) get::$0 = get::i#2 == 0 if(get::$0) goto get::@1 to:get::@3 get::@1: scope:[get] from get - get::$8 = (byte*)p0 + get::$8 = (char *)p0 get::$2 = get::$8 + OFFSET_STRUCT_POINT_X get::return_x#2 = *get::$2 - get::$9 = (byte*)p0 + get::$9 = (char *)p0 get::$3 = get::$9 + OFFSET_STRUCT_POINT_Y get::return_y#2 = *get::$3 get::return#0 = struct-unwound {get::return_x#2, get::return_y#2} @@ -69,19 +69,19 @@ get::@3: scope:[get] from get if(get::$1) goto get::@2 to:get::@4 get::@2: scope:[get] from get::@3 - get::$10 = (byte*)p1 + get::$10 = (char *)p1 get::$4 = get::$10 + OFFSET_STRUCT_POINT_X get::return_x#3 = *get::$4 - get::$11 = (byte*)p1 + get::$11 = (char *)p1 get::$5 = get::$11 + OFFSET_STRUCT_POINT_Y get::return_y#3 = *get::$5 get::return#1 = struct-unwound {get::return_x#3, get::return_y#3} to:get::@return get::@4: scope:[get] from get::@3 - get::$12 = (byte*)p2 + get::$12 = (char *)p2 get::$6 = get::$12 + OFFSET_STRUCT_POINT_X get::return_x#4 = *get::$6 - get::$13 = (byte*)p2 + get::$13 = (char *)p2 get::$7 = get::$13 + OFFSET_STRUCT_POINT_Y get::return_y#4 = *get::$7 get::return#2 = struct-unwound {get::return_x#4, get::return_y#4} @@ -99,7 +99,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -108,69 +108,69 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() -struct Point get(byte get::i) -bool~ get::$0 -bool~ get::$1 -byte*~ get::$10 -byte*~ get::$11 -byte*~ get::$12 -byte*~ get::$13 -byte*~ get::$2 -byte*~ get::$3 -byte*~ get::$4 -byte*~ get::$5 -byte*~ get::$6 -byte*~ get::$7 -byte*~ get::$8 -byte*~ get::$9 -byte get::i -byte get::i#0 -byte get::i#1 -byte get::i#2 -byte get::i#3 +struct Point get(char i) +bool get::$0 +bool get::$1 +char *get::$10 +char *get::$11 +char *get::$12 +char *get::$13 +char *get::$2 +char *get::$3 +char *get::$4 +char *get::$5 +char *get::$6 +char *get::$7 +char *get::$8 +char *get::$9 +char get::i +char get::i#0 +char get::i#1 +char get::i#2 +char get::i#3 struct Point get::return struct Point get::return#0 struct Point get::return#1 struct Point get::return#2 struct Point get::return#3 -byte get::return_x -byte get::return_x#0 -byte get::return_x#1 -byte get::return_x#2 -byte get::return_x#3 -byte get::return_x#4 -byte get::return_x#5 -byte get::return_x#6 -byte get::return_x#7 -byte get::return_y -byte get::return_y#0 -byte get::return_y#1 -byte get::return_y#2 -byte get::return_y#3 -byte get::return_y#4 -byte get::return_y#5 -byte get::return_y#6 -byte get::return_y#7 +char get::return_x +char get::return_x#0 +char get::return_x#1 +char get::return_x#2 +char get::return_x#3 +char get::return_x#4 +char get::return_x#5 +char get::return_x#6 +char get::return_x#7 +char get::return_y +char get::return_y#0 +char get::return_y#1 +char get::return_y#2 +char get::return_y#3 +char get::return_y#4 +char get::return_y#5 +char get::return_y#6 +char get::return_y#7 void main() -byte~ main::$0_x -byte~ main::$0_y -byte~ main::$1_x -byte~ main::$1_y -bool~ main::$2 -byte~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant struct Point* p0 = (struct Point*)$a000 -constant struct Point* p1 = (struct Point*)$b000 -constant struct Point* p2 = (struct Point*)$e000 +char main::$0_x +char main::$0_y +char main::$1_x +char main::$1_y +bool main::$2 +char main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant struct Point *p0 = (struct Point *)$a000 +__constant struct Point *p1 = (struct Point *)$b000 +__constant struct Point *p2 = (struct Point *)$e000 Adding number conversion cast (unumber) 0 in get::i#0 = 0 Adding number conversion cast (unumber) 0 in get::$0 = get::i#2 == 0 @@ -178,17 +178,17 @@ Adding number conversion cast (unumber) 1 in get::$1 = get::i#3 == 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast get::i#0 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct Point*) 1024 -Simplifying constant pointer cast (struct Point*) 40960 -Simplifying constant pointer cast (struct Point*) 45056 -Simplifying constant pointer cast (struct Point*) 57344 +Simplifying constant pointer cast (struct Point *) 1024 +Simplifying constant pointer cast (struct Point *) 40960 +Simplifying constant pointer cast (struct Point *) 45056 +Simplifying constant pointer cast (struct Point *) 57344 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias get::return_x#0 = get::return_x#5 Alias get::return_y#0 = get::return_y#5 @@ -201,21 +201,21 @@ Simple Condition main::$2 [21] if(main::i#1!=rangelast(1,2)) goto main::@1 Simple Condition get::$0 [25] if(get::i#2==0) goto get::@1 Simple Condition get::$1 [34] if(get::i#2==1) goto get::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [26] get::$8 = (byte*)p0 -Constant right-side identified [29] get::$9 = (byte*)p0 -Constant right-side identified [35] get::$10 = (byte*)p1 -Constant right-side identified [38] get::$11 = (byte*)p1 -Constant right-side identified [42] get::$12 = (byte*)p2 -Constant right-side identified [45] get::$13 = (byte*)p2 +Constant right-side identified [26] get::$8 = (char *)p0 +Constant right-side identified [29] get::$9 = (char *)p0 +Constant right-side identified [35] get::$10 = (char *)p1 +Constant right-side identified [38] get::$11 = (char *)p1 +Constant right-side identified [42] get::$12 = (char *)p2 +Constant right-side identified [45] get::$13 = (char *)p2 Successful SSA optimization Pass2ConstantRValueConsolidation Constant get::i#0 = 0 Constant main::i#0 = 1 -Constant get::$8 = (byte*)p0 -Constant get::$9 = (byte*)p0 -Constant get::$10 = (byte*)p1 -Constant get::$11 = (byte*)p1 -Constant get::$12 = (byte*)p2 -Constant get::$13 = (byte*)p2 +Constant get::$8 = (char *)p0 +Constant get::$9 = (char *)p0 +Constant get::$10 = (char *)p1 +Constant get::$11 = (char *)p1 +Constant get::$12 = (char *)p2 +Constant get::$13 = (char *)p2 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [19] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [21] if(main::i#1!=rangelast(1,2)) goto main::@1 to 3 @@ -226,8 +226,8 @@ Converting *(pointer+n) to pointer[n] [40] get::return_y#3 = *get::$5 -- get::$ Converting *(pointer+n) to pointer[n] [44] get::return_x#4 = *get::$6 -- get::$12[OFFSET_STRUCT_POINT_X] Converting *(pointer+n) to pointer[n] [47] get::return_y#4 = *get::$7 -- get::$13[OFFSET_STRUCT_POINT_Y] Successful SSA optimization Pass2InlineDerefIdx -Simplifying expression containing zero (byte*)SCREEN in [6] *((byte*)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x -Simplifying expression containing zero (byte*)SCREEN in [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x +Simplifying expression containing zero (char *)SCREEN in [6] *((char *)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x +Simplifying expression containing zero (char *)SCREEN in [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x Simplifying expression containing zero get::$8 in [27] get::$2 = get::$8 + OFFSET_STRUCT_POINT_X Simplifying expression containing zero get::$8 in [28] get::return_x#2 = get::$8[OFFSET_STRUCT_POINT_X] Simplifying expression containing zero get::$10 in [36] get::$4 = get::$10 + OFFSET_STRUCT_POINT_X @@ -258,24 +258,24 @@ Adding number conversion cast (unumber) 3 in [18] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [14] main::$3 = main::i#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Inlining constant with var siblings get::i#0 -Constant inlined get::$10 = (byte*)p1 -Constant inlined get::$9 = (byte*)p0 -Constant inlined get::$11 = (byte*)p1 -Constant inlined get::$8 = (byte*)p0 -Constant inlined get::$12 = (byte*)p2 +Constant inlined get::$10 = (char *)p1 +Constant inlined get::$9 = (char *)p0 +Constant inlined get::$11 = (char *)p1 +Constant inlined get::$8 = (char *)p0 +Constant inlined get::$12 = (char *)p2 Constant inlined main::i#0 = 1 -Constant inlined get::$13 = (byte*)p2 +Constant inlined get::$13 = (char *)p2 Constant inlined get::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)p0+OFFSET_STRUCT_POINT_Y) -Consolidated array index constant in *((byte*)p1+OFFSET_STRUCT_POINT_Y) -Consolidated array index constant in *((byte*)p2+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)p0+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)p1+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)p2+OFFSET_STRUCT_POINT_Y) Successful SSA optimization Pass2ConstantAdditionElimination Eliminating unused constant SIZEOF_STRUCT_POINT Successful SSA optimization PassNEliminateUnusedVars @@ -302,20 +302,20 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call get + [1] call get [2] get::return_x#0 = get::return_x#7 [3] get::return_y#0 = get::return_y#7 to:main::@2 main::@2: scope:[main] from main [4] main::$0_x = get::return_x#0 [5] main::$0_y = get::return_y#0 - [6] *((byte*)SCREEN) = main::$0_x - [7] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y + [6] *((char *)SCREEN) = main::$0_x + [7] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [8] main::i#2 = phi( main::@2/1, main::@3/main::i#1 ) [9] get::i#1 = main::i#2 - [10] call get + [10] call get [11] get::return_x#1 = get::return_x#7 [12] get::return_y#1 = get::return_y#7 to:main::@3 @@ -323,8 +323,8 @@ main::@3: scope:[main] from main::@1 [13] main::$1_x = get::return_x#1 [14] main::$1_y = get::return_y#1 [15] main::$3 = main::i#2 << 1 - [16] ((byte*)SCREEN)[main::$3] = main::$1_x - [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y + [16] ((char *)SCREEN)[main::$3] = main::$1_x + [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y [18] main::i#1 = ++ main::i#2 [19] if(main::i#1!=3) goto main::@1 to:main::@return @@ -332,7 +332,7 @@ main::@return: scope:[main] from main::@3 [20] return to:@return -struct Point get(byte get::i) +struct Point get(char i) get: scope:[get] from main main::@1 [21] get::i#2 = phi( main/0, main::@1/get::i#1 ) [22] if(get::i#2==0) goto get::@1 @@ -341,8 +341,8 @@ get::@3: scope:[get] from get [23] if(get::i#2==1) goto get::@2 to:get::@4 get::@4: scope:[get] from get::@3 - [24] get::return_x#4 = *((byte*)p2) - [25] get::return_y#4 = *((byte*)p2+OFFSET_STRUCT_POINT_Y) + [24] get::return_x#4 = *((char *)p2) + [25] get::return_y#4 = *((char *)p2+OFFSET_STRUCT_POINT_Y) to:get::@return get::@return: scope:[get] from get::@1 get::@2 get::@4 [26] get::return_y#7 = phi( get::@1/get::return_y#2, get::@2/get::return_y#3, get::@4/get::return_y#4 ) @@ -350,44 +350,44 @@ get::@return: scope:[get] from get::@1 get::@2 get::@4 [27] return to:@return get::@2: scope:[get] from get::@3 - [28] get::return_x#3 = *((byte*)p1) - [29] get::return_y#3 = *((byte*)p1+OFFSET_STRUCT_POINT_Y) + [28] get::return_x#3 = *((char *)p1) + [29] get::return_y#3 = *((char *)p1+OFFSET_STRUCT_POINT_Y) to:get::@return get::@1: scope:[get] from get - [30] get::return_x#2 = *((byte*)p0) - [31] get::return_y#2 = *((byte*)p0+OFFSET_STRUCT_POINT_Y) + [30] get::return_x#2 = *((char *)p0) + [31] get::return_y#2 = *((char *)p0+OFFSET_STRUCT_POINT_Y) to:get::@return VARIABLE REGISTER WEIGHTS -struct Point get(byte get::i) -byte get::i -byte get::i#1 22.0 -byte get::i#2 106.5 +struct Point get(char i) +char get::i +char get::i#1 // 22.0 +char get::i#2 // 106.5 struct Point get::return -byte get::return_x -byte get::return_x#0 2.0 -byte get::return_x#1 11.0 -byte get::return_x#2 101.0 -byte get::return_x#3 101.0 -byte get::return_x#4 101.0 -byte get::return_x#7 79.0 -byte get::return_y -byte get::return_y#0 2.0 -byte get::return_y#1 11.0 -byte get::return_y#2 202.0 -byte get::return_y#3 202.0 -byte get::return_y#4 202.0 -byte get::return_y#7 52.66666666666666 +char get::return_x +char get::return_x#0 // 2.0 +char get::return_x#1 // 11.0 +char get::return_x#2 // 101.0 +char get::return_x#3 // 101.0 +char get::return_x#4 // 101.0 +char get::return_x#7 // 79.0 +char get::return_y +char get::return_y#0 // 2.0 +char get::return_y#1 // 11.0 +char get::return_y#2 // 202.0 +char get::return_y#3 // 202.0 +char get::return_y#4 // 202.0 +char get::return_y#7 // 52.66666666666666 void main() -byte~ main::$0_x 2.0 -byte~ main::$0_y 2.0 -byte~ main::$1_x 7.333333333333333 -byte~ main::$1_y 7.333333333333333 -byte~ main::$3 16.5 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.4 +char main::$0_x // 2.0 +char main::$0_y // 2.0 +char main::$1_x // 7.333333333333333 +char main::$1_y // 7.333333333333333 +char main::$3 // 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.4 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -435,12 +435,12 @@ Statement [15] main::$3 = main::i#2 << 1 [ main::i#2 main::$1_x main::$1_y main: Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:12 [ main::$1_x ] Removing always clobbered register reg byte a as potential for zp[1]:13 [ main::$1_y ] -Statement [16] ((byte*)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$1_y main::$3 ] ( [ main::i#2 main::$1_y main::$3 ] { } ) always clobbers reg byte a +Statement [16] ((char *)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$1_y main::$3 ] ( [ main::i#2 main::$1_y main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:14 [ main::$3 ] -Statement [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [15] main::$3 = main::i#2 << 1 [ main::i#2 main::$1_x main::$1_y main::$3 ] ( [ main::i#2 main::$1_x main::$1_y main::$3 ] { } ) always clobbers reg byte a -Statement [16] ((byte*)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$1_y main::$3 ] ( [ main::i#2 main::$1_y main::$3 ] { } ) always clobbers reg byte a -Statement [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [16] ((char *)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$1_y main::$3 ] ( [ main::i#2 main::$1_y main::$3 ] { } ) always clobbers reg byte a +Statement [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ get::i#2 get::i#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ get::return_x#7 get::return_x#2 get::return_x#3 get::return_x#4 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -507,7 +507,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label __1_x = 2 .label __1_y = 3 - // [1] call get + // [1] call get // [21] phi from main to get [phi:main->get] get_from_main: // [21] phi get::i#2 = 0 [phi:main->get#0] -- vbuaa=vbuc1 @@ -520,9 +520,9 @@ main: { __b2: // [4] main::$0_x = get::return_x#0 // [5] main::$0_y = get::return_y#0 - // [6] *((byte*)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa + // [6] *((char *)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa sta SCREEN - // [7] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y -- _deref_pbuc1=vbuxx + // [7] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y -- _deref_pbuc1=vbuxx stx SCREEN+OFFSET_STRUCT_POINT_Y // [8] phi from main::@2 to main::@1 [phi:main::@2->main::@1] __b1_from___b2: @@ -537,7 +537,7 @@ main: { __b1: // [9] get::i#1 = main::i#2 -- vbuaa=vbuyy tya - // [10] call get + // [10] call get // [21] phi from main::@1 to get [phi:main::@1->get] get_from___b1: // [21] phi get::i#2 = get::i#1 [phi:main::@1->get#0] -- register_copy @@ -555,10 +555,10 @@ main: { tya asl tax - // [16] ((byte*)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 + // [16] ((char *)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 lda.z __1_x sta SCREEN,x - // [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y -- pbuc1_derefidx_vbuxx=vbuz1 + // [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y -- pbuc1_derefidx_vbuxx=vbuz1 lda.z __1_y sta SCREEN+OFFSET_STRUCT_POINT_Y,x // [18] main::i#1 = ++ main::i#2 -- vbuyy=_inc_vbuyy @@ -573,7 +573,7 @@ main: { rts } // get -// get(byte register(A) i) +// struct Point get(__register(A) char i) get: { // [22] if(get::i#2==0) goto get::@1 -- vbuaa_eq_0_then_la1 cmp #0 @@ -587,9 +587,9 @@ get: { jmp __b4 // get::@4 __b4: - // [24] get::return_x#4 = *((byte*)p2) -- vbuaa=_deref_pbuc1 + // [24] get::return_x#4 = *((char *)p2) -- vbuaa=_deref_pbuc1 lda p2 - // [25] get::return_y#4 = *((byte*)p2+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [25] get::return_y#4 = *((char *)p2+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p2+OFFSET_STRUCT_POINT_Y // [26] phi from get::@1 get::@2 get::@4 to get::@return [phi:get::@1/get::@2/get::@4->get::@return] __breturn_from___b1: @@ -604,16 +604,16 @@ get: { rts // get::@2 __b2: - // [28] get::return_x#3 = *((byte*)p1) -- vbuaa=_deref_pbuc1 + // [28] get::return_x#3 = *((char *)p1) -- vbuaa=_deref_pbuc1 lda p1 - // [29] get::return_y#3 = *((byte*)p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [29] get::return_y#3 = *((char *)p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y jmp __breturn_from___b2 // get::@1 __b1: - // [30] get::return_x#2 = *((byte*)p0) -- vbuaa=_deref_pbuc1 + // [30] get::return_x#2 = *((char *)p0) -- vbuaa=_deref_pbuc1 lda p0 - // [31] get::return_y#2 = *((byte*)p0+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [31] get::return_y#2 = *((char *)p0+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p0+OFFSET_STRUCT_POINT_Y jmp __breturn_from___b1 } @@ -654,39 +654,39 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -struct Point get(byte get::i) -byte get::i -byte get::i#1 reg byte a 22.0 -byte get::i#2 reg byte a 106.5 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +struct Point get(char i) +char get::i +char get::i#1 // reg byte a 22.0 +char get::i#2 // reg byte a 106.5 struct Point get::return -byte get::return_x -byte get::return_x#0 reg byte a 2.0 -byte get::return_x#1 reg byte a 11.0 -byte get::return_x#2 reg byte a 101.0 -byte get::return_x#3 reg byte a 101.0 -byte get::return_x#4 reg byte a 101.0 -byte get::return_x#7 reg byte a 79.0 -byte get::return_y -byte get::return_y#0 reg byte x 2.0 -byte get::return_y#1 reg byte x 11.0 -byte get::return_y#2 reg byte x 202.0 -byte get::return_y#3 reg byte x 202.0 -byte get::return_y#4 reg byte x 202.0 -byte get::return_y#7 reg byte x 52.66666666666666 +char get::return_x +char get::return_x#0 // reg byte a 2.0 +char get::return_x#1 // reg byte a 11.0 +char get::return_x#2 // reg byte a 101.0 +char get::return_x#3 // reg byte a 101.0 +char get::return_x#4 // reg byte a 101.0 +char get::return_x#7 // reg byte a 79.0 +char get::return_y +char get::return_y#0 // reg byte x 2.0 +char get::return_y#1 // reg byte x 11.0 +char get::return_y#2 // reg byte x 202.0 +char get::return_y#3 // reg byte x 202.0 +char get::return_y#4 // reg byte x 202.0 +char get::return_y#7 // reg byte x 52.66666666666666 void main() -byte~ main::$0_x reg byte a 2.0 -byte~ main::$0_y reg byte x 2.0 -byte~ main::$1_x zp[1]:2 7.333333333333333 -byte~ main::$1_y zp[1]:3 7.333333333333333 -byte~ main::$3 reg byte x 16.5 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 4.4 -constant struct Point* p0 = (struct Point*) 40960 -constant struct Point* p1 = (struct Point*) 45056 -constant struct Point* p2 = (struct Point*) 57344 +char main::$0_x // reg byte a 2.0 +char main::$0_y // reg byte x 2.0 +char main::$1_x // zp[1]:2 7.333333333333333 +char main::$1_y // zp[1]:3 7.333333333333333 +char main::$3 // reg byte x 16.5 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 4.4 +__constant struct Point *p0 = (struct Point *) 40960 +__constant struct Point *p1 = (struct Point *) 45056 +__constant struct Point *p2 = (struct Point *) 57344 reg byte y [ main::i#2 main::i#1 ] reg byte a [ get::i#2 get::i#1 ] @@ -729,7 +729,7 @@ main: { .label __1_x = 2 .label __1_y = 3 // get(0) - // [1] call get + // [1] call get // [21] phi from main to get [phi:main->get] // [21] phi get::i#2 = 0 [phi:main->get#0] -- vbuaa=vbuc1 lda #0 @@ -741,9 +741,9 @@ main: { // [4] main::$0_x = get::return_x#0 // [5] main::$0_y = get::return_y#0 // *SCREEN = get(0) - // [6] *((byte*)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa + // [6] *((char *)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa sta SCREEN - // [7] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y -- _deref_pbuc1=vbuxx + // [7] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y -- _deref_pbuc1=vbuxx stx SCREEN+OFFSET_STRUCT_POINT_Y // [8] phi from main::@2 to main::@1 [phi:main::@2->main::@1] // [8] phi main::i#2 = 1 [phi:main::@2->main::@1#0] -- vbuyy=vbuc1 @@ -755,7 +755,7 @@ main: { // get(i) // [9] get::i#1 = main::i#2 -- vbuaa=vbuyy tya - // [10] call get + // [10] call get // [21] phi from main::@1 to get [phi:main::@1->get] // [21] phi get::i#2 = get::i#1 [phi:main::@1->get#0] -- register_copy jsr get @@ -772,10 +772,10 @@ main: { tya asl tax - // [16] ((byte*)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 + // [16] ((char *)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 lda.z __1_x sta SCREEN,x - // [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y -- pbuc1_derefidx_vbuxx=vbuz1 + // [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y -- pbuc1_derefidx_vbuxx=vbuz1 lda.z __1_y sta SCREEN+OFFSET_STRUCT_POINT_Y,x // for ( char i: 1..2) @@ -790,7 +790,7 @@ main: { rts } // get -// get(byte register(A) i) +// struct Point get(__register(A) char i) get: { // if(i==0) // [22] if(get::i#2==0) goto get::@1 -- vbuaa_eq_0_then_la1 @@ -803,9 +803,9 @@ get: { beq __b2 // get::@4 // return *p2; - // [24] get::return_x#4 = *((byte*)p2) -- vbuaa=_deref_pbuc1 + // [24] get::return_x#4 = *((char *)p2) -- vbuaa=_deref_pbuc1 lda p2 - // [25] get::return_y#4 = *((byte*)p2+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [25] get::return_y#4 = *((char *)p2+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p2+OFFSET_STRUCT_POINT_Y // [26] phi from get::@1 get::@2 get::@4 to get::@return [phi:get::@1/get::@2/get::@4->get::@return] // [26] phi get::return_y#7 = get::return_y#2 [phi:get::@1/get::@2/get::@4->get::@return#0] -- register_copy @@ -817,17 +817,17 @@ get: { // get::@2 __b2: // return *p1; - // [28] get::return_x#3 = *((byte*)p1) -- vbuaa=_deref_pbuc1 + // [28] get::return_x#3 = *((char *)p1) -- vbuaa=_deref_pbuc1 lda p1 - // [29] get::return_y#3 = *((byte*)p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [29] get::return_y#3 = *((char *)p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y rts // get::@1 __b1: // return *p0; - // [30] get::return_x#2 = *((byte*)p0) -- vbuaa=_deref_pbuc1 + // [30] get::return_x#2 = *((char *)p0) -- vbuaa=_deref_pbuc1 lda p0 - // [31] get::return_y#2 = *((byte*)p0+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [31] get::return_y#2 = *((char *)p0+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p0+OFFSET_STRUCT_POINT_Y rts } diff --git a/src/test/ref/struct-ptr-16.sym b/src/test/ref/struct-ptr-16.sym index e6a2d629e..145ca08ed 100644 --- a/src/test/ref/struct-ptr-16.sym +++ b/src/test/ref/struct-ptr-16.sym @@ -1,36 +1,36 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -struct Point get(byte get::i) -byte get::i -byte get::i#1 reg byte a 22.0 -byte get::i#2 reg byte a 106.5 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +struct Point get(char i) +char get::i +char get::i#1 // reg byte a 22.0 +char get::i#2 // reg byte a 106.5 struct Point get::return -byte get::return_x -byte get::return_x#0 reg byte a 2.0 -byte get::return_x#1 reg byte a 11.0 -byte get::return_x#2 reg byte a 101.0 -byte get::return_x#3 reg byte a 101.0 -byte get::return_x#4 reg byte a 101.0 -byte get::return_x#7 reg byte a 79.0 -byte get::return_y -byte get::return_y#0 reg byte x 2.0 -byte get::return_y#1 reg byte x 11.0 -byte get::return_y#2 reg byte x 202.0 -byte get::return_y#3 reg byte x 202.0 -byte get::return_y#4 reg byte x 202.0 -byte get::return_y#7 reg byte x 52.66666666666666 +char get::return_x +char get::return_x#0 // reg byte a 2.0 +char get::return_x#1 // reg byte a 11.0 +char get::return_x#2 // reg byte a 101.0 +char get::return_x#3 // reg byte a 101.0 +char get::return_x#4 // reg byte a 101.0 +char get::return_x#7 // reg byte a 79.0 +char get::return_y +char get::return_y#0 // reg byte x 2.0 +char get::return_y#1 // reg byte x 11.0 +char get::return_y#2 // reg byte x 202.0 +char get::return_y#3 // reg byte x 202.0 +char get::return_y#4 // reg byte x 202.0 +char get::return_y#7 // reg byte x 52.66666666666666 void main() -byte~ main::$0_x reg byte a 2.0 -byte~ main::$0_y reg byte x 2.0 -byte~ main::$1_x zp[1]:2 7.333333333333333 -byte~ main::$1_y zp[1]:3 7.333333333333333 -byte~ main::$3 reg byte x 16.5 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 4.4 -constant struct Point* p0 = (struct Point*) 40960 -constant struct Point* p1 = (struct Point*) 45056 -constant struct Point* p2 = (struct Point*) 57344 +char main::$0_x // reg byte a 2.0 +char main::$0_y // reg byte x 2.0 +char main::$1_x // zp[1]:2 7.333333333333333 +char main::$1_y // zp[1]:3 7.333333333333333 +char main::$3 // reg byte x 16.5 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 4.4 +__constant struct Point *p0 = (struct Point *) 40960 +__constant struct Point *p1 = (struct Point *) 45056 +__constant struct Point *p2 = (struct Point *) 57344 reg byte y [ main::i#2 main::i#1 ] reg byte a [ get::i#2 get::i#1 ] diff --git a/src/test/ref/struct-ptr-17.asm b/src/test/ref/struct-ptr-17.asm index b2d6e26a2..ee65efb29 100644 --- a/src/test/ref/struct-ptr-17.asm +++ b/src/test/ref/struct-ptr-17.asm @@ -42,7 +42,7 @@ main: { // } rts } -// get(byte register(A) i) +// struct Point get(__register(A) char i) get: { .label p_y = 7 rts diff --git a/src/test/ref/struct-ptr-17.cfg b/src/test/ref/struct-ptr-17.cfg index fe04b891b..cf2ebe1ee 100644 --- a/src/test/ref/struct-ptr-17.cfg +++ b/src/test/ref/struct-ptr-17.cfg @@ -2,25 +2,25 @@ void main() main: scope:[main] from [0] phi() - [1] call get + [1] call get [2] get::return_x#0 = get::return_x#2 to:main::@2 main::@2: scope:[main] from main [3] main::$0_x = get::return_x#0 - [4] *((byte*)SCREEN) = main::$0_x - [5] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y + [4] *((char *)SCREEN) = main::$0_x + [5] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [6] main::i#2 = phi( main::@2/1, main::@3/main::i#1 ) [7] get::i#1 = main::i#2 - [8] call get + [8] call get [9] get::return_x#1 = get::return_x#2 to:main::@3 main::@3: scope:[main] from main::@1 [10] main::$1_x = get::return_x#1 [11] main::$3 = main::i#2 << 1 - [12] ((byte*)SCREEN)[main::$3] = main::$1_x - [13] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y + [12] ((char *)SCREEN)[main::$3] = main::$1_x + [13] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y [14] main::i#1 = ++ main::i#2 [15] if(main::i#1!=3) goto main::@1 to:main::@return @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@3 [16] return to:@return -struct Point get(byte get::i) +struct Point get(char i) get: scope:[get] from main main::@1 [17] get::return_x#2 = phi( main/0, main::@1/get::i#1 ) to:get::@return diff --git a/src/test/ref/struct-ptr-17.log b/src/test/ref/struct-ptr-17.log index 9dae1bb3b..840ec95b6 100644 --- a/src/test/ref/struct-ptr-17.log +++ b/src/test/ref/struct-ptr-17.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 Unwinding list assignment { main::$0_x, main::$0_y } = { get::return_x, get::return_y } @@ -11,7 +11,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 get::i#0 = 0 - call get + call get get::return_x#0 = get::return_x#5 get::return_y#0 = get::return_y#5 to:main::@2 @@ -20,14 +20,14 @@ main::@2: scope:[main] from main get::return_x#3 = phi( main/get::return_x#0 ) main::$0_x = get::return_x#3 main::$0_y = get::return_y#3 - *((byte*)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x - *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y + *((char *)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x + *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = main::$0_y main::i#0 = 1 to:main::@1 main::@1: scope:[main] from main::@2 main::@3 main::i#2 = phi( main::@2/main::i#0, main::@3/main::i#1 ) get::i#1 = main::i#2 - call get + call get get::return_x#1 = get::return_x#5 get::return_y#1 = get::return_y#5 to:main::@3 @@ -38,8 +38,8 @@ main::@3: scope:[main] from main::@1 main::$1_x = get::return_x#4 main::$1_y = get::return_y#4 main::$3 = main::i#3 * SIZEOF_STRUCT_POINT - ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x - ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y + ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x + ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = main::$1_y main::i#1 = main::i#3 + rangenext(1,2) main::$2 = main::i#1 != rangelast(1,2) if(main::$2) goto main::@1 @@ -48,7 +48,7 @@ main::@return: scope:[main] from main::@3 return to:@return -struct Point get(byte get::i) +struct Point get(char i) get: scope:[get] from main main::@1 get::i#2 = phi( main/get::i#0, main::@1/get::i#1 ) get::p_x#0 = get::i#2 @@ -69,7 +69,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -78,57 +78,57 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() -struct Point get(byte get::i) -byte get::i -byte get::i#0 -byte get::i#1 -byte get::i#2 -byte get::p_x -byte get::p_x#0 -constant byte get::p_y = 7 +struct Point get(char i) +char get::i +char get::i#0 +char get::i#1 +char get::i#2 +char get::p_x +char get::p_x#0 +__constant char get::p_y = 7 struct Point get::return struct Point get::return#0 struct Point get::return#1 -byte get::return_x -byte get::return_x#0 -byte get::return_x#1 -byte get::return_x#2 -byte get::return_x#3 -byte get::return_x#4 -byte get::return_x#5 -byte get::return_y -byte get::return_y#0 -byte get::return_y#1 -byte get::return_y#2 -byte get::return_y#3 -byte get::return_y#4 -byte get::return_y#5 +char get::return_x +char get::return_x#0 +char get::return_x#1 +char get::return_x#2 +char get::return_x#3 +char get::return_x#4 +char get::return_x#5 +char get::return_y +char get::return_y#0 +char get::return_y#1 +char get::return_y#2 +char get::return_y#3 +char get::return_y#4 +char get::return_y#5 void main() -byte~ main::$0_x -byte~ main::$0_y -byte~ main::$1_x -byte~ main::$1_y -bool~ main::$2 -byte~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +char main::$0_x +char main::$0_y +char main::$1_x +char main::$1_y +bool main::$2 +char main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 0 in get::i#0 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast get::i#0 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct Point*) 1024 +Simplifying constant pointer cast (struct Point *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias get::return_x#0 = get::return_x#3 Alias get::return_y#0 = get::return_y#3 @@ -152,8 +152,8 @@ Constant main::$1_y = get::return_y#1 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [19] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [21] if(main::i#1!=rangelast(1,2)) goto main::@1 to 3 -Simplifying expression containing zero (byte*)SCREEN in [6] *((byte*)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x -Simplifying expression containing zero (byte*)SCREEN in [17] ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x +Simplifying expression containing zero (char *)SCREEN in [6] *((char *)SCREEN+OFFSET_STRUCT_POINT_X) = main::$0_x +Simplifying expression containing zero (char *)SCREEN in [17] ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[main::$3] = main::$1_x Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable get::return#0 and assignment [17] get::return#0 = struct-unwound {get::return_x#2, get::return_y#2} Eliminating unused variable get::return#1 and assignment [18] get::return#1 = struct-unwound {} @@ -170,7 +170,7 @@ Adding number conversion cast (unumber) 3 in [14] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [10] main::$3 = main::i#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -203,25 +203,25 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call get + [1] call get [2] get::return_x#0 = get::return_x#2 to:main::@2 main::@2: scope:[main] from main [3] main::$0_x = get::return_x#0 - [4] *((byte*)SCREEN) = main::$0_x - [5] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y + [4] *((char *)SCREEN) = main::$0_x + [5] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y to:main::@1 main::@1: scope:[main] from main::@2 main::@3 [6] main::i#2 = phi( main::@2/1, main::@3/main::i#1 ) [7] get::i#1 = main::i#2 - [8] call get + [8] call get [9] get::return_x#1 = get::return_x#2 to:main::@3 main::@3: scope:[main] from main::@1 [10] main::$1_x = get::return_x#1 [11] main::$3 = main::i#2 << 1 - [12] ((byte*)SCREEN)[main::$3] = main::$1_x - [13] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y + [12] ((char *)SCREEN)[main::$3] = main::$1_x + [13] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y [14] main::i#1 = ++ main::i#2 [15] if(main::i#1!=3) goto main::@1 to:main::@return @@ -229,7 +229,7 @@ main::@return: scope:[main] from main::@3 [16] return to:@return -struct Point get(byte get::i) +struct Point get(char i) get: scope:[get] from main main::@1 [17] get::return_x#2 = phi( main/0, main::@1/get::i#1 ) to:get::@return @@ -239,23 +239,23 @@ get::@return: scope:[get] from get VARIABLE REGISTER WEIGHTS -struct Point get(byte get::i) -byte get::i -byte get::i#1 22.0 -byte get::p_x +struct Point get(char i) +char get::i +char get::i#1 // 22.0 +char get::p_x struct Point get::return -byte get::return_x -byte get::return_x#0 4.0 -byte get::return_x#1 22.0 -byte get::return_x#2 6.0 -byte get::return_y +char get::return_x +char get::return_x#0 // 4.0 +char get::return_x#1 // 22.0 +char get::return_x#2 // 6.0 +char get::return_y void main() -byte~ main::$0_x 4.0 -byte~ main::$1_x 11.0 -byte~ main::$3 16.5 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 +char main::$0_x // 4.0 +char main::$1_x // 11.0 +char main::$3 // 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -281,17 +281,17 @@ Allocated zp[1]:6 [ get::return_x#1 ] Allocated zp[1]:7 [ main::$1_x ] Allocated zp[1]:8 [ main::$3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [5] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] main::$3 = main::i#2 << 1 [ main::i#2 main::$1_x main::$3 ] ( [ main::i#2 main::$1_x main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::$1_x ] -Statement [12] ((byte*)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a +Statement [12] ((char *)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::$3 ] -Statement [13] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a -Statement [5] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y [ ] ( [ ] { } ) always clobbers reg byte a +Statement [13] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [5] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y [ ] ( [ ] { } ) always clobbers reg byte a Statement [11] main::$3 = main::i#2 << 1 [ main::i#2 main::$1_x main::$3 ] ( [ main::i#2 main::$1_x main::$3 ] { } ) always clobbers reg byte a -Statement [12] ((byte*)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a -Statement [13] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [12] ((char *)SCREEN)[main::$3] = main::$1_x [ main::i#2 main::$3 ] ( [ main::i#2 main::$3 ] { } ) always clobbers reg byte a +Statement [13] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ get::return_x#2 get::i#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ get::return_x#0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -334,7 +334,7 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label __1_x = 2 - // [1] call get + // [1] call get // [17] phi from main to get [phi:main->get] get_from_main: // [17] phi get::return_x#2 = 0 [phi:main->get#0] -- vbuaa=vbuc1 @@ -345,9 +345,9 @@ main: { // main::@2 __b2: // [3] main::$0_x = get::return_x#0 - // [4] *((byte*)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa + // [4] *((char *)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa sta SCREEN - // [5] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y -- _deref_pbuc1=vbuc2 + // [5] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y -- _deref_pbuc1=vbuc2 lda #get.p_y sta SCREEN+OFFSET_STRUCT_POINT_Y // [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] @@ -363,7 +363,7 @@ main: { __b1: // [7] get::i#1 = main::i#2 -- vbuaa=vbuyy tya - // [8] call get + // [8] call get // [17] phi from main::@1 to get [phi:main::@1->get] get_from___b1: // [17] phi get::return_x#2 = get::i#1 [phi:main::@1->get#0] -- register_copy @@ -378,10 +378,10 @@ main: { tya asl tax - // [12] ((byte*)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 + // [12] ((char *)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 lda.z __1_x sta SCREEN,x - // [13] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y -- pbuc1_derefidx_vbuxx=vbuc2 + // [13] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y -- pbuc1_derefidx_vbuxx=vbuc2 lda #get.p_y sta SCREEN+OFFSET_STRUCT_POINT_Y,x // [14] main::i#1 = ++ main::i#2 -- vbuyy=_inc_vbuyy @@ -396,7 +396,7 @@ main: { rts } // get -// get(byte register(A) i) +// struct Point get(__register(A) char i) get: { .label p_y = 7 jmp __breturn @@ -429,26 +429,26 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -struct Point get(byte get::i) -byte get::i -byte get::i#1 reg byte a 22.0 -byte get::p_x -constant byte get::p_y = 7 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +struct Point get(char i) +char get::i +char get::i#1 // reg byte a 22.0 +char get::p_x +__constant char get::p_y = 7 struct Point get::return -byte get::return_x -byte get::return_x#0 reg byte a 4.0 -byte get::return_x#1 reg byte a 22.0 -byte get::return_x#2 reg byte a 6.0 -byte get::return_y +char get::return_x +char get::return_x#0 // reg byte a 4.0 +char get::return_x#1 // reg byte a 22.0 +char get::return_x#2 // reg byte a 6.0 +char get::return_y void main() -byte~ main::$0_x reg byte a 4.0 -byte~ main::$1_x zp[1]:2 11.0 -byte~ main::$3 reg byte x 16.5 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 5.5 +char main::$0_x // reg byte a 4.0 +char main::$1_x // zp[1]:2 11.0 +char main::$3 // reg byte x 16.5 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 5.5 reg byte y [ main::i#2 main::i#1 ] reg byte a [ get::return_x#2 get::i#1 ] @@ -481,7 +481,7 @@ Score: 381 main: { .label __1_x = 2 // get(0) - // [1] call get + // [1] call get // [17] phi from main to get [phi:main->get] // [17] phi get::return_x#2 = 0 [phi:main->get#0] -- vbuaa=vbuc1 lda #0 @@ -491,9 +491,9 @@ main: { // main::@2 // [3] main::$0_x = get::return_x#0 // *SCREEN = get(0) - // [4] *((byte*)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa + // [4] *((char *)SCREEN) = main::$0_x -- _deref_pbuc1=vbuaa sta SCREEN - // [5] *((byte*)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y -- _deref_pbuc1=vbuc2 + // [5] *((char *)SCREEN+OFFSET_STRUCT_POINT_Y) = get::p_y -- _deref_pbuc1=vbuc2 lda #get.p_y sta SCREEN+OFFSET_STRUCT_POINT_Y // [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] @@ -506,7 +506,7 @@ main: { // get(i) // [7] get::i#1 = main::i#2 -- vbuaa=vbuyy tya - // [8] call get + // [8] call get // [17] phi from main::@1 to get [phi:main::@1->get] // [17] phi get::return_x#2 = get::i#1 [phi:main::@1->get#0] -- register_copy jsr get @@ -520,10 +520,10 @@ main: { tya asl tax - // [12] ((byte*)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 + // [12] ((char *)SCREEN)[main::$3] = main::$1_x -- pbuc1_derefidx_vbuxx=vbuz1 lda.z __1_x sta SCREEN,x - // [13] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y -- pbuc1_derefidx_vbuxx=vbuc2 + // [13] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[main::$3] = get::p_y -- pbuc1_derefidx_vbuxx=vbuc2 lda #get.p_y sta SCREEN+OFFSET_STRUCT_POINT_Y,x // for ( char i: 1..2) @@ -538,7 +538,7 @@ main: { rts } // get -// get(byte register(A) i) +// struct Point get(__register(A) char i) get: { .label p_y = 7 // get::@return diff --git a/src/test/ref/struct-ptr-17.sym b/src/test/ref/struct-ptr-17.sym index 5e443c4d4..743e743cb 100644 --- a/src/test/ref/struct-ptr-17.sym +++ b/src/test/ref/struct-ptr-17.sym @@ -1,23 +1,23 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -struct Point get(byte get::i) -byte get::i -byte get::i#1 reg byte a 22.0 -byte get::p_x -constant byte get::p_y = 7 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +struct Point get(char i) +char get::i +char get::i#1 // reg byte a 22.0 +char get::p_x +__constant char get::p_y = 7 struct Point get::return -byte get::return_x -byte get::return_x#0 reg byte a 4.0 -byte get::return_x#1 reg byte a 22.0 -byte get::return_x#2 reg byte a 6.0 -byte get::return_y +char get::return_x +char get::return_x#0 // reg byte a 4.0 +char get::return_x#1 // reg byte a 22.0 +char get::return_x#2 // reg byte a 6.0 +char get::return_y void main() -byte~ main::$0_x reg byte a 4.0 -byte~ main::$1_x zp[1]:2 11.0 -byte~ main::$3 reg byte x 16.5 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 5.5 +char main::$0_x // reg byte a 4.0 +char main::$1_x // zp[1]:2 11.0 +char main::$3 // reg byte x 16.5 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 5.5 reg byte y [ main::i#2 main::i#1 ] reg byte a [ get::return_x#2 get::i#1 ] diff --git a/src/test/ref/struct-ptr-18.asm b/src/test/ref/struct-ptr-18.asm index efe791f20..b74b9bea1 100644 --- a/src/test/ref/struct-ptr-18.asm +++ b/src/test/ref/struct-ptr-18.asm @@ -48,7 +48,7 @@ main: { // } rts } -// print(byte zp(3) p_x, byte register(Y) p_y) +// void print(__zp(3) char p_x, __register(Y) char p_y) print: { .label p_x = 3 // SCREEN[idx++] = p.x diff --git a/src/test/ref/struct-ptr-18.cfg b/src/test/ref/struct-ptr-18.cfg index 746fd3eb9..8d4452538 100644 --- a/src/test/ref/struct-ptr-18.cfg +++ b/src/test/ref/struct-ptr-18.cfg @@ -8,9 +8,9 @@ main::@1: scope:[main] from main main::@2 [2] idx#14 = phi( main/0, main::@2/idx#11 ) [2] main::i#2 = phi( main/0, main::@2/main::i#1 ) [3] main::$4 = main::i#2 << 1 - [4] print::p_x#0 = ((byte*)points)[main::$4] - [5] print::p_y#0 = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] - [6] call print + [4] print::p_x#0 = ((char *)points)[main::$4] + [5] print::p_y#0 = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [6] call print to:main::@2 main::@2: scope:[main] from main::@1 [7] main::i#1 = ++ main::i#2 @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main::@1 [10] SCREEN[idx#14] = print::p_x#0 [11] idx#2 = ++ idx#14 diff --git a/src/test/ref/struct-ptr-18.log b/src/test/ref/struct-ptr-18.log index decd88183..e3fa794d3 100644 --- a/src/test/ref/struct-ptr-18.log +++ b/src/test/ref/struct-ptr-18.log @@ -1,6 +1,6 @@ Constantified RValue points[main::$2] = { x: 1, y: 2 } Constantified RValue points[main::$3] = { x: 3, y: 4 } -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -17,9 +17,9 @@ main::@1: scope:[main] from main main::@2 idx#14 = phi( main/idx#16, main::@2/idx#0 ) main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) main::$4 = main::i#2 * SIZEOF_STRUCT_POINT - print::p_x#0 = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$4] - print::p_y#0 = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] - call print + print::p_x#0 = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$4] + print::p_y#0 = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] + call print to:main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main::@1 print::p_y#1 = phi( main::@1/print::p_y#0 ) idx#10 = phi( main::@1/idx#14 ) @@ -59,7 +59,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#15 = phi( __start::__init1/idx#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#12 = phi( __start::@1/idx#1 ) @@ -72,65 +72,65 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 1, y: 2 } -constant struct Point $1 = { x: 3, y: 4 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant struct Point $1 = { x: 3, y: 4 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -number~ main::$2 -number~ main::$3 -byte~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant struct Point* points[2] = { fill( 2, 0) } -void print(byte print::p_x , byte print::p_y) +bool main::$1 +number main::$2 +number main::$3 +char main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant struct Point points[2] = { fill( 2, 0) } +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 -byte print::p_x#1 -byte print::p_y -byte print::p_y#0 -byte print::p_y#1 +char print::p_x +char print::p_x#0 +char print::p_x#1 +char print::p_y +char print::p_y#0 +char print::p_y#1 Adding number conversion cast (unumber) 0 in main::$2 = 0 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)0 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) 1 in main::$3 = 1 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)1 * SIZEOF_STRUCT_POINT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = 0 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$3 = 1 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$2 = 0 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$3 = 1 * SIZEOF_STRUCT_POINT Alias main::i#2 = main::i#3 Alias idx#0 = idx#8 idx#9 idx#1 Alias idx#11 = idx#3 idx#4 @@ -159,7 +159,7 @@ Resolved ranged comparison value [14] if(main::i#1!=rangelast(0,1)) goto main::@ Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_POINT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero points in [2] points[main::$2] = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) -Simplifying expression containing zero (byte*)points in [8] print::p_x#0 = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$4] +Simplifying expression containing zero (char *)points in [8] print::p_x#0 = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$4] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$2 Eliminating unused constant OFFSET_STRUCT_POINT_X @@ -175,7 +175,7 @@ Adding number conversion cast (unumber) 2 in [8] if(main::i#1!=2) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [3] main::$4 = main::i#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -187,8 +187,8 @@ Constant inlined idx#15 = 0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(points+1*SIZEOF_STRUCT_POINT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@2 and main::@1) CALL GRAPH @@ -211,9 +211,9 @@ main::@1: scope:[main] from main main::@2 [2] idx#14 = phi( main/0, main::@2/idx#11 ) [2] main::i#2 = phi( main/0, main::@2/main::i#1 ) [3] main::$4 = main::i#2 << 1 - [4] print::p_x#0 = ((byte*)points)[main::$4] - [5] print::p_y#0 = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] - [6] call print + [4] print::p_x#0 = ((char *)points)[main::$4] + [5] print::p_y#0 = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] + [6] call print to:main::@2 main::@2: scope:[main] from main::@1 [7] main::i#1 = ++ main::i#2 @@ -223,7 +223,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main::@1 [10] SCREEN[idx#14] = print::p_x#0 [11] idx#2 = ++ idx#14 @@ -236,21 +236,21 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#11 22.4 -byte idx#14 42.599999999999994 -byte idx#2 151.5 +char idx +char idx#11 // 22.4 +char idx#14 // 42.599999999999994 +char idx#2 // 151.5 void main() -byte~ main::$4 16.5 -byte main::i -byte main::i#1 16.5 -byte main::i#2 6.6000000000000005 -void print(byte print::p_x , byte print::p_y) +char main::$4 // 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 6.6000000000000005 +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 56.0 -byte print::p_y -byte print::p_y#0 37.33333333333333 +char print::p_x +char print::p_x#0 // 56.0 +char print::p_y +char print::p_y#0 // 37.33333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -359,13 +359,13 @@ main: { lda.z i asl tay - // [4] print::p_x#0 = ((byte*)points)[main::$4] -- vbuz1=pbuc1_derefidx_vbuyy + // [4] print::p_x#0 = ((char *)points)[main::$4] -- vbuz1=pbuc1_derefidx_vbuyy lda points,y sta.z print.p_x - // [5] print::p_y#0 = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuyy=pbuc1_derefidx_vbuyy + // [5] print::p_y#0 = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuyy=pbuc1_derefidx_vbuyy lda points+OFFSET_STRUCT_POINT_Y,y tay - // [6] call print + // [6] call print jsr print jmp __b2 // main::@2 @@ -383,7 +383,7 @@ main: { rts } // print -// print(byte zp(3) p_x, byte register(Y) p_y) +// void print(__zp(3) char p_x, __register(Y) char p_y) print: { .label p_x = 3 // [10] SCREEN[idx#14] = print::p_x#0 -- pbuc1_derefidx_vbuxx=vbuz1 @@ -427,27 +427,27 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 1, y: 2 } -constant struct Point $1 = { x: 3, y: 4 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -byte idx -byte idx#11 reg byte x 22.4 -byte idx#14 reg byte x 42.599999999999994 -byte idx#2 reg byte x 151.5 +__constant struct Point $0 = { x: 1, y: 2 } +__constant struct Point $1 = { x: 3, y: 4 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +char idx +char idx#11 // reg byte x 22.4 +char idx#14 // reg byte x 42.599999999999994 +char idx#2 // reg byte x 151.5 void main() -byte~ main::$4 reg byte y 16.5 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 6.6000000000000005 -constant struct Point* points[2] = { fill( 2, 0) } -void print(byte print::p_x , byte print::p_y) +char main::$4 // reg byte y 16.5 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 6.6000000000000005 +__constant struct Point points[2] = { fill( 2, 0) } +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 p_x zp[1]:3 56.0 -byte print::p_y -byte print::p_y#0 reg byte y 37.33333333333333 +char print::p_x +char print::p_x#0 // p_x zp[1]:3 56.0 +char print::p_y +char print::p_y#0 // reg byte y 37.33333333333333 zp[1]:2 [ main::i#2 main::i#1 ] reg byte x [ idx#14 idx#11 ] @@ -511,13 +511,13 @@ main: { lda.z i asl tay - // [4] print::p_x#0 = ((byte*)points)[main::$4] -- vbuz1=pbuc1_derefidx_vbuyy + // [4] print::p_x#0 = ((char *)points)[main::$4] -- vbuz1=pbuc1_derefidx_vbuyy lda points,y sta.z print.p_x - // [5] print::p_y#0 = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuyy=pbuc1_derefidx_vbuyy + // [5] print::p_y#0 = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$4] -- vbuyy=pbuc1_derefidx_vbuyy lda points+OFFSET_STRUCT_POINT_Y,y tay - // [6] call print + // [6] call print jsr print // main::@2 // for ( char i: 0..1) @@ -533,7 +533,7 @@ main: { rts } // print -// print(byte zp(3) p_x, byte register(Y) p_y) +// void print(__zp(3) char p_x, __register(Y) char p_y) print: { .label p_x = 3 // SCREEN[idx++] = p.x diff --git a/src/test/ref/struct-ptr-18.sym b/src/test/ref/struct-ptr-18.sym index c4ac0b4eb..d8c1dfed4 100644 --- a/src/test/ref/struct-ptr-18.sym +++ b/src/test/ref/struct-ptr-18.sym @@ -1,24 +1,24 @@ -constant struct Point $0 = { x: 1, y: 2 } -constant struct Point $1 = { x: 3, y: 4 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -byte idx -byte idx#11 reg byte x 22.4 -byte idx#14 reg byte x 42.599999999999994 -byte idx#2 reg byte x 151.5 +__constant struct Point $0 = { x: 1, y: 2 } +__constant struct Point $1 = { x: 3, y: 4 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +char idx +char idx#11 // reg byte x 22.4 +char idx#14 // reg byte x 42.599999999999994 +char idx#2 // reg byte x 151.5 void main() -byte~ main::$4 reg byte y 16.5 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 6.6000000000000005 -constant struct Point* points[2] = { fill( 2, 0) } -void print(byte print::p_x , byte print::p_y) +char main::$4 // reg byte y 16.5 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 6.6000000000000005 +__constant struct Point points[2] = { fill( 2, 0) } +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 p_x zp[1]:3 56.0 -byte print::p_y -byte print::p_y#0 reg byte y 37.33333333333333 +char print::p_x +char print::p_x#0 // p_x zp[1]:3 56.0 +char print::p_y +char print::p_y#0 // reg byte y 37.33333333333333 zp[1]:2 [ main::i#2 main::i#1 ] reg byte x [ idx#14 idx#11 ] diff --git a/src/test/ref/struct-ptr-19.asm b/src/test/ref/struct-ptr-19.asm index ef236d703..7f2601ea5 100644 --- a/src/test/ref/struct-ptr-19.asm +++ b/src/test/ref/struct-ptr-19.asm @@ -35,7 +35,7 @@ main: { // } rts } -// print(byte register(Y) p_x, byte register(X) p_y) +// void print(__register(Y) char p_x, __register(X) char p_y) print: { // SCREEN[idx++] = p.x tya diff --git a/src/test/ref/struct-ptr-19.cfg b/src/test/ref/struct-ptr-19.cfg index e97f66912..28d808412 100644 --- a/src/test/ref/struct-ptr-19.cfg +++ b/src/test/ref/struct-ptr-19.cfg @@ -2,20 +2,20 @@ void main() main: scope:[main] from [0] *(&main::point) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] print::p_x#0 = *((byte*)&main::point) - [2] print::p_y#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_Y) - [3] call print + [1] print::p_x#0 = *((char *)&main::point) + [2] print::p_y#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_Y) + [3] call print to:main::@1 main::@1: scope:[main] from main - [4] print::p_x#1 = *((byte*)main::ptr) - [5] print::p_y#1 = *((byte*)main::ptr+OFFSET_STRUCT_POINT_Y) - [6] call print + [4] print::p_x#1 = *((char *)main::ptr) + [5] print::p_y#1 = *((char *)main::ptr+OFFSET_STRUCT_POINT_Y) + [6] call print to:main::@return main::@return: scope:[main] from main::@1 [7] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 [8] print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) [8] idx#12 = phi( main/0, main::@1/idx#13 ) diff --git a/src/test/ref/struct-ptr-19.log b/src/test/ref/struct-ptr-19.log index a35f5684a..41485c15c 100644 --- a/src/test/ref/struct-ptr-19.log +++ b/src/test/ref/struct-ptr-19.log @@ -1,5 +1,5 @@ Setting struct to load/store in variable affected by address-of main::ptr = &main::point -Inlined call call __init +Inlined call call __init Removing C-classic struct-unwound assignment main::point = struct-unwound {*(&main::point)} CONTROL FLOW GRAPH SSA @@ -8,20 +8,20 @@ void main() main: scope:[main] from __start::@1 idx#16 = phi( __start::@1/idx#17 ) *(&main::point) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - print::p_x#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_X) - print::p_y#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_Y) - call print + print::p_x#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_X) + print::p_y#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_Y) + call print to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) idx#0 = idx#9 - main::$4 = (byte*)main::ptr + main::$4 = (char *)main::ptr main::$2 = main::$4 + OFFSET_STRUCT_POINT_X - main::$5 = (byte*)main::ptr + main::$5 = (char *)main::ptr main::$3 = main::$5 + OFFSET_STRUCT_POINT_Y print::p_x#1 = *main::$2 print::p_y#1 = *main::$3 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#10 = phi( main::@1/idx#5 ) @@ -33,7 +33,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) idx#12 = phi( main/idx#16, main::@1/idx#0 ) @@ -57,7 +57,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#17 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#14 = phi( __start::@1/idx#2 ) @@ -70,50 +70,50 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -volatile struct Point main::point loadstore -constant struct Point* main::ptr = &main::point -void print(byte print::p_x , byte print::p_y) +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +__loadstore volatile struct Point main::point +__constant struct Point *main::ptr = &main::point +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 -byte print::p_x#1 -byte print::p_x#2 -byte print::p_y -byte print::p_y#0 -byte print::p_y#1 -byte print::p_y#2 +char print::p_x +char print::p_x#0 +char print::p_x#1 +char print::p_x#2 +char print::p_y +char print::p_y#0 +char print::p_y#1 +char print::p_y#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#9 Alias idx#1 = idx#10 idx#11 idx#2 @@ -126,17 +126,17 @@ Identical Phi Values idx#0 idx#13 Identical Phi Values idx#1 idx#13 Identical Phi Values idx#14 idx#1 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [6] main::$4 = (byte*)main::ptr -Constant right-side identified [8] main::$5 = (byte*)main::ptr +Constant right-side identified [6] main::$4 = (char *)main::ptr +Constant right-side identified [8] main::$5 = (char *)main::ptr Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$4 = (byte*)main::ptr -Constant main::$5 = (byte*)main::ptr +Constant main::$4 = (char *)main::ptr +Constant main::$5 = (char *)main::ptr Constant idx#17 = 0 Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [10] print::p_x#1 = *main::$2 -- main::$4[OFFSET_STRUCT_POINT_X] Converting *(pointer+n) to pointer[n] [11] print::p_y#1 = *main::$3 -- main::$5[OFFSET_STRUCT_POINT_Y] Successful SSA optimization Pass2InlineDerefIdx -Simplifying expression containing zero (byte*)&main::point in [2] print::p_x#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&main::point in [2] print::p_x#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_X) Simplifying expression containing zero main::$4 in [7] main::$2 = main::$4 + OFFSET_STRUCT_POINT_X Simplifying expression containing zero main::$4 in [10] print::p_x#1 = main::$4[OFFSET_STRUCT_POINT_X] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -152,11 +152,11 @@ Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings idx#17 -Constant inlined main::$5 = (byte*)main::ptr +Constant inlined main::$5 = (char *)main::ptr Constant inlined idx#17 = 0 -Constant inlined main::$4 = (byte*)main::ptr +Constant inlined main::$4 = (char *)main::ptr Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)main::ptr+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)main::ptr+OFFSET_STRUCT_POINT_Y) Successful SSA optimization Pass2ConstantAdditionElimination Adding NOP phi() at start of main::@2 CALL GRAPH @@ -176,20 +176,20 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::point) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] print::p_x#0 = *((byte*)&main::point) - [2] print::p_y#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_Y) - [3] call print + [1] print::p_x#0 = *((char *)&main::point) + [2] print::p_y#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_Y) + [3] call print to:main::@1 main::@1: scope:[main] from main - [4] print::p_x#1 = *((byte*)main::ptr) - [5] print::p_y#1 = *((byte*)main::ptr+OFFSET_STRUCT_POINT_Y) - [6] call print + [4] print::p_x#1 = *((char *)main::ptr) + [5] print::p_y#1 = *((char *)main::ptr+OFFSET_STRUCT_POINT_Y) + [6] call print to:main::@return main::@return: scope:[main] from main::@1 [7] return to:@return -void print(byte print::p_x , byte print::p_y) +void print(char p_x , char p_y) print: scope:[print] from main main::@1 [8] print::p_y#2 = phi( main/print::p_y#0, main::@1/print::p_y#1 ) [8] idx#12 = phi( main/0, main::@1/idx#13 ) @@ -205,22 +205,22 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#12 12.0 -byte idx#13 2.6 -byte idx#3 16.5 +char idx +char idx#12 // 12.0 +char idx#13 // 2.6 +char idx#3 // 16.5 void main() -volatile struct Point main::point loadstore -void print(byte print::p_x , byte print::p_y) +__loadstore volatile struct Point main::point +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 2.0 -byte print::p_x#1 2.0 -byte print::p_x#2 15.0 -byte print::p_y -byte print::p_y#0 4.0 -byte print::p_y#1 4.0 -byte print::p_y#2 5.0 +char print::p_x +char print::p_x#0 // 2.0 +char print::p_x#1 // 2.0 +char print::p_x#2 // 15.0 +char print::p_y +char print::p_y#0 // 4.0 +char print::p_y#1 // 4.0 +char print::p_y#2 // 5.0 Initial phi equivalence classes [ print::p_x#2 print::p_x#0 print::p_x#1 ] @@ -291,11 +291,11 @@ main: { sta point-1,y dey bne !- - // [1] print::p_x#0 = *((byte*)&main::point) -- vbuyy=_deref_pbuc1 + // [1] print::p_x#0 = *((char *)&main::point) -- vbuyy=_deref_pbuc1 ldy.z point - // [2] print::p_y#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [2] print::p_y#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx point+OFFSET_STRUCT_POINT_Y - // [3] call print + // [3] call print // [8] phi from main to print [phi:main->print] print_from_main: // [8] phi print::p_y#2 = print::p_y#0 [phi:main->print#0] -- register_copy @@ -307,11 +307,11 @@ main: { jmp __b1 // main::@1 __b1: - // [4] print::p_x#1 = *((byte*)main::ptr) -- vbuyy=_deref_pbuc1 + // [4] print::p_x#1 = *((char *)main::ptr) -- vbuyy=_deref_pbuc1 ldy.z ptr - // [5] print::p_y#1 = *((byte*)main::ptr+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [5] print::p_y#1 = *((char *)main::ptr+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx ptr+OFFSET_STRUCT_POINT_Y - // [6] call print + // [6] call print // [8] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [8] phi print::p_y#2 = print::p_y#1 [phi:main::@1->print#0] -- register_copy @@ -325,7 +325,7 @@ main: { rts } // print -// print(byte register(Y) p_x, byte register(X) p_y) +// void print(__register(Y) char p_x, __register(X) char p_y) print: { // [9] SCREEN[idx#12] = print::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy tya @@ -365,27 +365,27 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -byte idx -byte idx#12 idx zp[1]:2 12.0 -byte idx#13 idx zp[1]:2 2.6 -byte idx#3 reg byte y 16.5 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +char idx +char idx#12 // idx zp[1]:2 12.0 +char idx#13 // idx zp[1]:2 2.6 +char idx#3 // reg byte y 16.5 void main() -volatile struct Point main::point loadstore zp[2]:3 -constant struct Point* main::ptr = &main::point -void print(byte print::p_x , byte print::p_y) +__loadstore volatile struct Point main::point // zp[2]:3 +__constant struct Point *main::ptr = &main::point +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 reg byte y 2.0 -byte print::p_x#1 reg byte y 2.0 -byte print::p_x#2 reg byte y 15.0 -byte print::p_y -byte print::p_y#0 reg byte x 4.0 -byte print::p_y#1 reg byte x 4.0 -byte print::p_y#2 reg byte x 5.0 +char print::p_x +char print::p_x#0 // reg byte y 2.0 +char print::p_x#1 // reg byte y 2.0 +char print::p_x#2 // reg byte y 15.0 +char print::p_y +char print::p_y#0 // reg byte x 4.0 +char print::p_y#1 // reg byte x 4.0 +char print::p_y#2 // reg byte x 5.0 reg byte y [ print::p_x#2 print::p_x#0 print::p_x#1 ] zp[1]:2 [ idx#12 idx#13 ] @@ -427,11 +427,11 @@ main: { dey bne !- // print(point) - // [1] print::p_x#0 = *((byte*)&main::point) -- vbuyy=_deref_pbuc1 + // [1] print::p_x#0 = *((char *)&main::point) -- vbuyy=_deref_pbuc1 ldy.z point - // [2] print::p_y#0 = *((byte*)&main::point+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [2] print::p_y#0 = *((char *)&main::point+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx point+OFFSET_STRUCT_POINT_Y - // [3] call print + // [3] call print // [8] phi from main to print [phi:main->print] // [8] phi print::p_y#2 = print::p_y#0 [phi:main->print#0] -- register_copy // [8] phi idx#12 = 0 [phi:main->print#1] -- vbuz1=vbuc1 @@ -441,11 +441,11 @@ main: { jsr print // main::@1 // print(*ptr) - // [4] print::p_x#1 = *((byte*)main::ptr) -- vbuyy=_deref_pbuc1 + // [4] print::p_x#1 = *((char *)main::ptr) -- vbuyy=_deref_pbuc1 ldy.z ptr - // [5] print::p_y#1 = *((byte*)main::ptr+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [5] print::p_y#1 = *((char *)main::ptr+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx ptr+OFFSET_STRUCT_POINT_Y - // [6] call print + // [6] call print // [8] phi from main::@1 to print [phi:main::@1->print] // [8] phi print::p_y#2 = print::p_y#1 [phi:main::@1->print#0] -- register_copy // [8] phi idx#12 = idx#13 [phi:main::@1->print#1] -- register_copy @@ -457,7 +457,7 @@ main: { rts } // print -// print(byte register(Y) p_x, byte register(X) p_y) +// void print(__register(Y) char p_x, __register(X) char p_y) print: { // SCREEN[idx++] = p.x // [9] SCREEN[idx#12] = print::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy diff --git a/src/test/ref/struct-ptr-19.sym b/src/test/ref/struct-ptr-19.sym index f352b4b01..bbfa4cdd9 100644 --- a/src/test/ref/struct-ptr-19.sym +++ b/src/test/ref/struct-ptr-19.sym @@ -1,24 +1,24 @@ -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 -byte idx -byte idx#12 idx zp[1]:2 12.0 -byte idx#13 idx zp[1]:2 2.6 -byte idx#3 reg byte y 16.5 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 +char idx +char idx#12 // idx zp[1]:2 12.0 +char idx#13 // idx zp[1]:2 2.6 +char idx#3 // reg byte y 16.5 void main() -volatile struct Point main::point loadstore zp[2]:3 -constant struct Point* main::ptr = &main::point -void print(byte print::p_x , byte print::p_y) +__loadstore volatile struct Point main::point // zp[2]:3 +__constant struct Point *main::ptr = &main::point +void print(char p_x , char p_y) struct Point print::p -byte print::p_x -byte print::p_x#0 reg byte y 2.0 -byte print::p_x#1 reg byte y 2.0 -byte print::p_x#2 reg byte y 15.0 -byte print::p_y -byte print::p_y#0 reg byte x 4.0 -byte print::p_y#1 reg byte x 4.0 -byte print::p_y#2 reg byte x 5.0 +char print::p_x +char print::p_x#0 // reg byte y 2.0 +char print::p_x#1 // reg byte y 2.0 +char print::p_x#2 // reg byte y 15.0 +char print::p_y +char print::p_y#0 // reg byte x 4.0 +char print::p_y#1 // reg byte x 4.0 +char print::p_y#2 // reg byte x 5.0 reg byte y [ print::p_x#2 print::p_x#0 print::p_x#1 ] zp[1]:2 [ idx#12 idx#13 ] diff --git a/src/test/ref/struct-ptr-2.cfg b/src/test/ref/struct-ptr-2.cfg index 77148f6bd..b0dfdd3fd 100644 --- a/src/test/ref/struct-ptr-2.cfg +++ b/src/test/ref/struct-ptr-2.cfg @@ -7,9 +7,9 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$9 = main::i#2 << 1 [3] main::point_i#0 = points + main::$9 - [4] ((byte*)points)[main::$9] = main::i#2 + [4] ((char *)points)[main::$9] = main::i#2 [5] main::$3 = main::i#2 + 4 - [6] ((byte*)main::point_i#0)[OFFS_Y] = main::$3 + [6] ((char *)main::point_i#0)[OFFS_Y] = main::$3 [7] main::i#1 = ++ main::i#2 [8] if(main::i#1!=4) goto main::@1 to:main::@2 @@ -17,8 +17,8 @@ main::@2: scope:[main] from main::@1 main::@2 [9] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [10] main::$10 = main::i1#2 << 1 [11] main::point_i1#0 = points + main::$10 - [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] - [13] (main::SCREEN+$28)[main::i1#2] = ((byte*)main::point_i1#0)[OFFS_Y] + [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] + [13] (main::SCREEN+$28)[main::i1#2] = ((char *)main::point_i1#0)[OFFS_Y] [14] main::i1#1 = ++ main::i1#2 [15] if(main::i1#1!=4) goto main::@2 to:main::@return diff --git a/src/test/ref/struct-ptr-2.log b/src/test/ref/struct-ptr-2.log index d79bf44cf..3d62e975d 100644 --- a/src/test/ref/struct-ptr-2.log +++ b/src/test/ref/struct-ptr-2.log @@ -11,10 +11,10 @@ main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$9 = main::i#2 * SIZEOF_STRUCT_POINT main::point_i#0 = points + main::$9 - main::$11 = (byte*)main::point_i#0 + main::$11 = (char *)main::point_i#0 main::$1 = main::$11 + OFFS_X *main::$1 = main::i#2 - main::$12 = (byte*)main::point_i#0 + main::$12 = (char *)main::point_i#0 main::$2 = main::$12 + OFFS_Y main::$3 = main::i#2 + 4 *main::$2 = main::$3 @@ -29,10 +29,10 @@ main::@3: scope:[main] from main::@2 main::@3 main::i1#2 = phi( main::@2/main::i1#0, main::@3/main::i1#1 ) main::$10 = main::i1#2 * SIZEOF_STRUCT_POINT main::point_i1#0 = points + main::$10 - main::$13 = (byte*)main::point_i1#0 + main::$13 = (char *)main::point_i1#0 main::$6 = main::$13 + OFFS_X main::SCREEN[main::i1#2] = *main::$6 - main::$14 = (byte*)main::point_i1#0 + main::$14 = (char *)main::point_i1#0 main::$7 = main::$14 + OFFS_Y (main::SCREEN+$28)[main::i1#2] = *main::$7 main::i1#1 = main::i1#2 + rangenext(0,3) @@ -45,7 +45,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -54,51 +54,51 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const byte OFFS_X = 0 -constant const byte OFFS_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant const char OFFS_X = 0 +__constant const char OFFS_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -byte*~ main::$1 -byte~ main::$10 -byte*~ main::$11 -byte*~ main::$12 -byte*~ main::$13 -byte*~ main::$14 -byte*~ main::$2 -number~ main::$3 -bool~ main::$4 -byte*~ main::$6 -byte*~ main::$7 -bool~ main::$8 -byte~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -struct Point* main::point_i -struct Point* main::point_i#0 -struct Point* main::point_i1 -struct Point* main::point_i1#0 -constant struct Point* points[4] = { fill( 4, 0) } +char *main::$1 +char main::$10 +char *main::$11 +char *main::$12 +char *main::$13 +char *main::$14 +char *main::$2 +number main::$3 +bool main::$4 +char *main::$6 +char *main::$7 +bool main::$8 +char main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +struct Point *main::point_i +struct Point *main::point_i#0 +struct Point *main::point_i1 +struct Point *main::point_i1#0 +__constant struct Point points[4] = { fill( 4, 0) } Adding number conversion cast (unumber) 4 in main::$3 = main::i#2 + 4 Adding number conversion cast (unumber) main::$3 in main::$3 = main::i#2 + (unumber)4 Adding number conversion cast (unumber) $28 in (main::SCREEN+$28)[main::i1#2] = *main::$7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$3 = main::i#2 + 4 +Inferred type updated to char in main::$3 = main::i#2 + 4 Simple Condition main::$4 [13] if(main::i#1!=rangelast(0,3)) goto main::@1 Simple Condition main::$8 [26] if(main::i1#1!=rangelast(0,3)) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -136,20 +136,20 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Converting *(pointer+n) to pointer[n] [4] *main::$11 = main::i#2 -- ((byte*)points)[main::$9] -Converting *(pointer+n) to pointer[n] [14] main::SCREEN[main::i1#2] = *main::$13 -- ((byte*)points)[main::$10] +Converting *(pointer+n) to pointer[n] [4] *main::$11 = main::i#2 -- ((char *)points)[main::$9] +Converting *(pointer+n) to pointer[n] [14] main::SCREEN[main::i1#2] = *main::$13 -- ((char *)points)[main::$10] Successful SSA optimization Pass2InlineDerefIdx -Eliminating unused variable main::$11 and assignment [3] main::$11 = (byte*)main::point_i#0 -Eliminating unused variable main::$13 and assignment [13] main::$13 = (byte*)main::point_i1#0 +Eliminating unused variable main::$11 and assignment [3] main::$11 = (char *)main::point_i#0 +Eliminating unused variable main::$13 and assignment [13] main::$13 = (char *)main::point_i1#0 Successful SSA optimization PassNEliminateUnusedVars -Constant value identified (byte*)points in [3] ((byte*)points)[main::$9] = main::i#2 -Constant value identified (byte*)points in [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] +Constant value identified (char *)points in [3] ((char *)points)[main::$9] = main::i#2 +Constant value identified (char *)points in [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] Successful SSA optimization Pass2ConstantValues -Inlining Noop Cast [4] main::$12 = (byte*)main::point_i#0 keeping main::point_i#0 -Inlining Noop Cast [13] main::$14 = (byte*)main::point_i1#0 keeping main::point_i1#0 +Inlining Noop Cast [4] main::$12 = (char *)main::point_i#0 keeping main::point_i#0 +Inlining Noop Cast [13] main::$14 = (char *)main::point_i1#0 keeping main::point_i1#0 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [1] main::$9 = main::i#2 * SIZEOF_STRUCT_POINT Rewriting multiplication to use shift [10] main::$10 = main::i1#2 * SIZEOF_STRUCT_POINT @@ -161,8 +161,8 @@ Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_STRUCT_POINT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -190,9 +190,9 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$9 = main::i#2 << 1 [3] main::point_i#0 = points + main::$9 - [4] ((byte*)points)[main::$9] = main::i#2 + [4] ((char *)points)[main::$9] = main::i#2 [5] main::$3 = main::i#2 + 4 - [6] ((byte*)main::point_i#0)[OFFS_Y] = main::$3 + [6] ((char *)main::point_i#0)[OFFS_Y] = main::$3 [7] main::i#1 = ++ main::i#2 [8] if(main::i#1!=4) goto main::@1 to:main::@2 @@ -200,8 +200,8 @@ main::@2: scope:[main] from main::@1 main::@2 [9] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [10] main::$10 = main::i1#2 << 1 [11] main::point_i1#0 = points + main::$10 - [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] - [13] (main::SCREEN+$28)[main::i1#2] = ((byte*)main::point_i1#0)[OFFS_Y] + [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] + [13] (main::SCREEN+$28)[main::i1#2] = ((char *)main::point_i1#0)[OFFS_Y] [14] main::i1#1 = ++ main::i1#2 [15] if(main::i1#1!=4) goto main::@2 to:main::@return @@ -212,19 +212,19 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$10 16.5 -byte~ main::$3 22.0 -byte~ main::$9 16.5 -byte main::i -byte main::i#1 16.5 -byte main::i#2 9.166666666666666 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 11.0 -struct Point* main::point_i -struct Point* main::point_i#0 3.6666666666666665 -struct Point* main::point_i1 -struct Point* main::point_i1#0 5.5 +char main::$10 // 16.5 +char main::$3 // 22.0 +char main::$9 // 16.5 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 9.166666666666666 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 11.0 +struct Point *main::point_i +struct Point *main::point_i#0 // 3.6666666666666665 +struct Point *main::point_i1 +struct Point *main::point_i1#0 // 5.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -254,26 +254,26 @@ Statement [2] main::$9 = main::i#2 << 1 [ main::i#2 main::$9 ] ( [ main::i#2 ma Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [3] main::point_i#0 = points + main::$9 [ main::i#2 main::$9 main::point_i#0 ] ( [ main::i#2 main::$9 main::point_i#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$9 ] -Statement [4] ((byte*)points)[main::$9] = main::i#2 [ main::i#2 main::point_i#0 ] ( [ main::i#2 main::point_i#0 ] { } ) always clobbers reg byte a +Statement [4] ((char *)points)[main::$9] = main::i#2 [ main::i#2 main::point_i#0 ] ( [ main::i#2 main::point_i#0 ] { } ) always clobbers reg byte a Statement [5] main::$3 = main::i#2 + 4 [ main::i#2 main::point_i#0 main::$3 ] ( [ main::i#2 main::point_i#0 main::$3 ] { } ) always clobbers reg byte a -Statement [6] ((byte*)main::point_i#0)[OFFS_Y] = main::$3 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte y +Statement [6] ((char *)main::point_i#0)[OFFS_Y] = main::$3 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [10] main::$10 = main::i1#2 << 1 [ main::i1#2 main::$10 ] ( [ main::i1#2 main::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] Statement [11] main::point_i1#0 = points + main::$10 [ main::i1#2 main::$10 main::point_i1#0 ] ( [ main::i1#2 main::$10 main::point_i1#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::$10 ] -Statement [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] [ main::i1#2 main::point_i1#0 ] ( [ main::i1#2 main::point_i1#0 ] { } ) always clobbers reg byte a -Statement [13] (main::SCREEN+$28)[main::i1#2] = ((byte*)main::point_i1#0)[OFFS_Y] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a reg byte y +Statement [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] [ main::i1#2 main::point_i1#0 ] ( [ main::i1#2 main::point_i1#0 ] { } ) always clobbers reg byte a +Statement [13] (main::SCREEN+$28)[main::i1#2] = ((char *)main::point_i1#0)[OFFS_Y] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] Statement [2] main::$9 = main::i#2 << 1 [ main::i#2 main::$9 ] ( [ main::i#2 main::$9 ] { } ) always clobbers reg byte a Statement [3] main::point_i#0 = points + main::$9 [ main::i#2 main::$9 main::point_i#0 ] ( [ main::i#2 main::$9 main::point_i#0 ] { } ) always clobbers reg byte a -Statement [4] ((byte*)points)[main::$9] = main::i#2 [ main::i#2 main::point_i#0 ] ( [ main::i#2 main::point_i#0 ] { } ) always clobbers reg byte a +Statement [4] ((char *)points)[main::$9] = main::i#2 [ main::i#2 main::point_i#0 ] ( [ main::i#2 main::point_i#0 ] { } ) always clobbers reg byte a Statement [5] main::$3 = main::i#2 + 4 [ main::i#2 main::point_i#0 main::$3 ] ( [ main::i#2 main::point_i#0 main::$3 ] { } ) always clobbers reg byte a -Statement [6] ((byte*)main::point_i#0)[OFFS_Y] = main::$3 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte y +Statement [6] ((char *)main::point_i#0)[OFFS_Y] = main::$3 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte y Statement [10] main::$10 = main::i1#2 << 1 [ main::i1#2 main::$10 ] ( [ main::i1#2 main::$10 ] { } ) always clobbers reg byte a Statement [11] main::point_i1#0 = points + main::$10 [ main::i1#2 main::$10 main::point_i1#0 ] ( [ main::i1#2 main::$10 main::point_i1#0 ] { } ) always clobbers reg byte a -Statement [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] [ main::i1#2 main::point_i1#0 ] ( [ main::i1#2 main::point_i1#0 ] { } ) always clobbers reg byte a -Statement [13] (main::SCREEN+$28)[main::i1#2] = ((byte*)main::point_i1#0)[OFFS_Y] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a reg byte y +Statement [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] [ main::i1#2 main::point_i1#0 ] ( [ main::i1#2 main::point_i1#0 ] { } ) always clobbers reg byte a +Statement [13] (main::SCREEN+$28)[main::i1#2] = ((char *)main::point_i1#0)[OFFS_Y] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , Potential registers zp[1]:3 [ main::i1#2 main::i1#1 ] : zp[1]:3 , reg byte x , Potential registers zp[1]:4 [ main::$9 ] : zp[1]:4 , reg byte x , reg byte y , @@ -339,14 +339,14 @@ main: { lda #>points adc #0 sta.z point_i+1 - // [4] ((byte*)points)[main::$9] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [4] ((char *)points)[main::$9] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta points,y // [5] main::$3 = main::i#2 + 4 -- vbuaa=vbuxx_plus_vbuc1 txa clc adc #4 - // [6] ((byte*)main::point_i#0)[OFFS_Y] = main::$3 -- pbuz1_derefidx_vbuc1=vbuaa + // [6] ((char *)main::point_i#0)[OFFS_Y] = main::$3 -- pbuz1_derefidx_vbuc1=vbuaa // points[i].x = i; ldy #OFFS_Y sta (point_i),y @@ -378,10 +378,10 @@ main: { lda #>points adc #0 sta.z point_i1+1 - // [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda points,y sta SCREEN,x - // [13] (main::SCREEN+$28)[main::i1#2] = ((byte*)main::point_i1#0)[OFFS_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [13] (main::SCREEN+$28)[main::i1#2] = ((char *)main::point_i1#0)[OFFS_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 // SCREEN[i] = points[i].x; ldy #OFFS_Y lda (point_i1),y @@ -420,23 +420,23 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte OFFS_Y = 1 +__constant const char OFFS_Y = 1 void main() -byte~ main::$10 reg byte y 16.5 -byte~ main::$3 reg byte a 22.0 -byte~ main::$9 reg byte y 16.5 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 9.166666666666666 -byte main::i1 -byte main::i1#1 reg byte x 16.5 -byte main::i1#2 reg byte x 11.0 -struct Point* main::point_i -struct Point* main::point_i#0 point_i zp[2]:2 3.6666666666666665 -struct Point* main::point_i1 -struct Point* main::point_i1#0 point_i1 zp[2]:4 5.5 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$10 // reg byte y 16.5 +char main::$3 // reg byte a 22.0 +char main::$9 // reg byte y 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 9.166666666666666 +char main::i1 +char main::i1#1 // reg byte x 16.5 +char main::i1#2 // reg byte x 11.0 +struct Point *main::point_i +struct Point *main::point_i#0 // point_i zp[2]:2 3.6666666666666665 +struct Point *main::point_i1 +struct Point *main::point_i1#0 // point_i1 zp[2]:4 5.5 +__constant struct Point points[4] = { fill( 4, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] @@ -490,7 +490,7 @@ main: { adc #0 sta.z point_i+1 // *((byte*)point_i+OFFS_X) = i - // [4] ((byte*)points)[main::$9] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx + // [4] ((char *)points)[main::$9] = main::i#2 -- pbuc1_derefidx_vbuyy=vbuxx txa sta points,y // i+4 @@ -499,7 +499,7 @@ main: { clc adc #4 // *((byte*)point_i+OFFS_Y) = i+4 - // [6] ((byte*)main::point_i#0)[OFFS_Y] = main::$3 -- pbuz1_derefidx_vbuc1=vbuaa + // [6] ((char *)main::point_i#0)[OFFS_Y] = main::$3 -- pbuz1_derefidx_vbuc1=vbuaa // points[i].x = i; ldy #OFFS_Y sta (point_i),y @@ -530,11 +530,11 @@ main: { adc #0 sta.z point_i1+1 // SCREEN[i] = *((byte*)point_i+OFFS_X) - // [12] main::SCREEN[main::i1#2] = ((byte*)points)[main::$10] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [12] main::SCREEN[main::i1#2] = ((char *)points)[main::$10] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda points,y sta SCREEN,x // (SCREEN+40)[i] = *((byte*)point_i+OFFS_Y) - // [13] (main::SCREEN+$28)[main::i1#2] = ((byte*)main::point_i1#0)[OFFS_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [13] (main::SCREEN+$28)[main::i1#2] = ((char *)main::point_i1#0)[OFFS_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 // SCREEN[i] = points[i].x; ldy #OFFS_Y lda (point_i1),y diff --git a/src/test/ref/struct-ptr-2.sym b/src/test/ref/struct-ptr-2.sym index 100e69d7d..321a3413f 100644 --- a/src/test/ref/struct-ptr-2.sym +++ b/src/test/ref/struct-ptr-2.sym @@ -1,20 +1,20 @@ -constant const byte OFFS_Y = 1 +__constant const char OFFS_Y = 1 void main() -byte~ main::$10 reg byte y 16.5 -byte~ main::$3 reg byte a 22.0 -byte~ main::$9 reg byte y 16.5 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 9.166666666666666 -byte main::i1 -byte main::i1#1 reg byte x 16.5 -byte main::i1#2 reg byte x 11.0 -struct Point* main::point_i -struct Point* main::point_i#0 point_i zp[2]:2 3.6666666666666665 -struct Point* main::point_i1 -struct Point* main::point_i1#0 point_i1 zp[2]:4 5.5 -constant struct Point* points[4] = { fill( 4, 0) } +char main::$10 // reg byte y 16.5 +char main::$3 // reg byte a 22.0 +char main::$9 // reg byte y 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 9.166666666666666 +char main::i1 +char main::i1#1 // reg byte x 16.5 +char main::i1#2 // reg byte x 11.0 +struct Point *main::point_i +struct Point *main::point_i#0 // point_i zp[2]:2 3.6666666666666665 +struct Point *main::point_i1 +struct Point *main::point_i1#0 // point_i1 zp[2]:4 5.5 +__constant struct Point points[4] = { fill( 4, 0) } reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/struct-ptr-20.cfg b/src/test/ref/struct-ptr-20.cfg index 1303ff4cc..7003ff78a 100644 --- a/src/test/ref/struct-ptr-20.cfg +++ b/src/test/ref/struct-ptr-20.cfg @@ -12,10 +12,10 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] if(0!=*((byte*)main::setting#2)) goto main::@3 + [4] if(0!=*((char *)main::setting#2)) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@2 - [5] SCREEN[main::idx#2] = ((byte*)main::setting#2)[OFFSET_STRUCT_SETTING_ID] + [5] SCREEN[main::idx#2] = ((char *)main::setting#2)[OFFSET_STRUCT_SETTING_ID] [6] main::idx#1 = ++ main::idx#2 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 diff --git a/src/test/ref/struct-ptr-20.log b/src/test/ref/struct-ptr-20.log index 5d606120d..cc0356c55 100644 --- a/src/test/ref/struct-ptr-20.log +++ b/src/test/ref/struct-ptr-20.log @@ -6,7 +6,7 @@ main: scope:[main] from __start main::idx#0 = 0 main::$0 = sizeof settings main::$1 = main::$0 / SIZEOF_STRUCT_SETTING - main::len#0 = (byte)main::$1 + main::len#0 = (char)main::$1 main::setting#0 = settings to:main::@1 main::@1: scope:[main] from main main::@3 @@ -22,7 +22,7 @@ main::@2: scope:[main] from main::@1 main::len#3 = phi( main::@1/main::len#1 ) main::idx#3 = phi( main::@1/main::idx#4 ) main::setting#3 = phi( main::@1/main::setting#2 ) - main::$9 = (byte*)main::setting#3 + main::$9 = (char *)main::setting#3 main::$7 = main::$9 + OFFSET_STRUCT_SETTING_OFF main::$11 = 0 != *main::$7 main::$4 = ! main::$11 @@ -39,7 +39,7 @@ main::@4: scope:[main] from main::@2 main::len#4 = phi( main::@2/main::len#3 ) main::idx#2 = phi( main::@2/main::idx#3 ) main::setting#5 = phi( main::@2/main::setting#3 ) - main::$10 = (byte*)main::setting#5 + main::$10 = (char *)main::setting#5 main::$8 = main::$10 + OFFSET_STRUCT_SETTING_ID SCREEN[main::idx#2] = *main::$8 main::idx#1 = ++ main::idx#2 @@ -50,7 +50,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -59,52 +59,52 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_SETTING_ID = 1 -constant byte OFFSET_STRUCT_SETTING_OFF = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_SETTING = 2 +__constant char OFFSET_STRUCT_SETTING_ID = 1 +__constant char OFFSET_STRUCT_SETTING_OFF = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_SETTING = 2 void __start() void main() -word~ main::$0 -word~ main::$1 -byte*~ main::$10 -bool~ main::$11 -const struct Setting*~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 -byte~ main::$6 -byte*~ main::$7 -byte*~ main::$8 -byte*~ main::$9 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::len -byte main::len#0 -byte main::len#1 -byte main::len#2 -byte main::len#3 -byte main::len#4 -struct Setting* main::setting -struct Setting* main::setting#0 -struct Setting* main::setting#1 -struct Setting* main::setting#2 -struct Setting* main::setting#3 -struct Setting* main::setting#4 -struct Setting* main::setting#5 -constant const struct Setting* settings[] = { { off: 0, id: 'a' }, { off: 1, id: 'b' }, { off: 0, id: 'c' } } +unsigned int main::$0 +unsigned int main::$1 +char *main::$10 +bool main::$11 +const struct Setting *main::$2 +bool main::$3 +bool main::$4 +bool main::$5 +char main::$6 +char *main::$7 +char *main::$8 +char *main::$9 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::len +char main::len#0 +char main::len#1 +char main::len#2 +char main::len#3 +char main::len#4 +struct Setting *main::setting +struct Setting *main::setting#0 +struct Setting *main::setting#1 +struct Setting *main::setting#2 +struct Setting *main::setting#3 +struct Setting *main::setting#4 +struct Setting *main::setting#5 +__constant const struct Setting settings[] = { { off: 0, id: 'a' }, { off: 1, id: 'b' }, { off: 0, id: 'c' } } Adding number conversion cast (unumber) 0 in main::$11 = 0 != *main::$7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [14] main::$4 = 0 == *main::$7 from [13] main::$11 = 0 != *main::$7 Inversing boolean not [15] main::$5 = 0 != *main::$7 from [14] main::$4 = 0 == *main::$7 @@ -148,13 +148,13 @@ Constant right-side identified [0] main::$1 = main::$0 / SIZEOF_STRUCT_SETTING Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$1 = main::$0/SIZEOF_STRUCT_SETTING Successful SSA optimization Pass2ConstantIdentification -Constant main::len#0 = (byte)main::$1 +Constant main::len#0 = (char)main::$1 Successful SSA optimization Pass2ConstantIdentification Adding number conversion cast (unumber) 3 in Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [1] main::$6 = main::len#0 * SIZEOF_STRUCT_SETTING Successful SSA optimization Pass2ConstantRValueConsolidation @@ -164,8 +164,8 @@ Constant right-side identified [1] main::$2 = settings + main::$6 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$2 = settings+main::$6 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [2] main::$9 = (byte*)main::setting#2 keeping main::setting#2 -Inlining Noop Cast [6] main::$10 = (byte*)main::setting#2 keeping main::setting#2 +Inlining Noop Cast [2] main::$9 = (char *)main::setting#2 keeping main::setting#2 +Inlining Noop Cast [6] main::$10 = (char *)main::setting#2 keeping main::setting#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::setting#0 @@ -206,10 +206,10 @@ main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 - [4] if(0!=*((byte*)main::setting#2)) goto main::@3 + [4] if(0!=*((char *)main::setting#2)) goto main::@3 to:main::@4 main::@4: scope:[main] from main::@2 - [5] SCREEN[main::idx#2] = ((byte*)main::setting#2)[OFFSET_STRUCT_SETTING_ID] + [5] SCREEN[main::idx#2] = ((char *)main::setting#2)[OFFSET_STRUCT_SETTING_ID] [6] main::idx#1 = ++ main::idx#2 to:main::@3 main::@3: scope:[main] from main::@2 main::@4 @@ -220,14 +220,14 @@ main::@3: scope:[main] from main::@2 main::@4 VARIABLE REGISTER WEIGHTS void main() -byte main::idx -byte main::idx#1 22.0 -byte main::idx#2 11.0 -byte main::idx#5 16.5 -byte main::len -struct Setting* main::setting -struct Setting* main::setting#1 22.0 -struct Setting* main::setting#2 5.5 +char main::idx +char main::idx#1 // 22.0 +char main::idx#2 // 11.0 +char main::idx#5 // 16.5 +char main::len +struct Setting *main::setting +struct Setting *main::setting#1 // 22.0 +struct Setting *main::setting#2 // 5.5 Initial phi equivalence classes [ main::setting#2 main::setting#1 ] @@ -240,13 +240,13 @@ Allocated zp[1]:4 [ main::idx#2 main::idx#5 main::idx#1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] if(main::setting#2off) - // [4] if(0!=*((byte*)main::setting#2)) goto main::@3 -- 0_neq__deref_pbuz1_then_la1 + // [4] if(0!=*((char *)main::setting#2)) goto main::@3 -- 0_neq__deref_pbuz1_then_la1 ldy #0 lda (setting),y cmp #0 bne __b3 // main::@4 // SCREEN[idx++] = setting->id - // [5] SCREEN[main::idx#2] = ((byte*)main::setting#2)[OFFSET_STRUCT_SETTING_ID] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [5] SCREEN[main::idx#2] = ((char *)main::setting#2)[OFFSET_STRUCT_SETTING_ID] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_SETTING_ID lda (setting),y sta SCREEN,x diff --git a/src/test/ref/struct-ptr-20.sym b/src/test/ref/struct-ptr-20.sym index dfa1373b0..5b3e1a591 100644 --- a/src/test/ref/struct-ptr-20.sym +++ b/src/test/ref/struct-ptr-20.sym @@ -1,17 +1,17 @@ -constant byte OFFSET_STRUCT_SETTING_ID = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_SETTING = 2 +__constant char OFFSET_STRUCT_SETTING_ID = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_SETTING = 2 void main() -byte main::idx -byte main::idx#1 reg byte x 22.0 -byte main::idx#2 reg byte x 11.0 -byte main::idx#5 reg byte x 16.5 -byte main::len -constant byte main::len#0 len = 3*SIZEOF_STRUCT_SETTING/SIZEOF_STRUCT_SETTING -struct Setting* main::setting -struct Setting* main::setting#1 setting zp[2]:2 22.0 -struct Setting* main::setting#2 setting zp[2]:2 5.5 -constant const struct Setting* settings[] = { { off: 0, id: 'a' }, { off: 1, id: 'b' }, { off: 0, id: 'c' } } +char main::idx +char main::idx#1 // reg byte x 22.0 +char main::idx#2 // reg byte x 11.0 +char main::idx#5 // reg byte x 16.5 +char main::len +__constant char main::len#0 = 3*SIZEOF_STRUCT_SETTING/SIZEOF_STRUCT_SETTING // len +struct Setting *main::setting +struct Setting *main::setting#1 // setting zp[2]:2 22.0 +struct Setting *main::setting#2 // setting zp[2]:2 5.5 +__constant const struct Setting settings[] = { { off: 0, id: 'a' }, { off: 1, id: 'b' }, { off: 0, id: 'c' } } zp[2]:2 [ main::setting#2 main::setting#1 ] reg byte x [ main::idx#2 main::idx#5 main::idx#1 ] diff --git a/src/test/ref/struct-ptr-21.cfg b/src/test/ref/struct-ptr-21.cfg index 63c14bf17..d0cab8c60 100644 --- a/src/test/ref/struct-ptr-21.cfg +++ b/src/test/ref/struct-ptr-21.cfg @@ -5,13 +5,13 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) - [2] if(main::i#2<*((byte*)settings)) goto main::@2 + [2] if(main::i#2<*((char *)settings)) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 [4] main::$1 = main::i#2 << 1 - [5] SCREEN[main::$1] = (*((word**)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] + [5] SCREEN[main::$1] = (*((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] [6] main::i#1 = ++ main::i#2 to:main::@1 diff --git a/src/test/ref/struct-ptr-21.log b/src/test/ref/struct-ptr-21.log index 12869a1e0..f95064f4d 100644 --- a/src/test/ref/struct-ptr-21.log +++ b/src/test/ref/struct-ptr-21.log @@ -9,15 +9,15 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@2 main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) - main::$4 = (byte*)main::setting + main::$4 = (char *)main::setting main::$2 = main::$4 + OFFSET_STRUCT_SETTING_LEN main::$0 = main::i#2 < *main::$2 if(main::$0) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) - main::$1 = main::i#3 * SIZEOF_WORD - main::$5 = (word**)main::setting + main::$1 = main::i#3 * SIZEOF_UNSIGNED_INT + main::$5 = (unsigned int **)main::setting main::$3 = main::$5 + OFFSET_STRUCT_SETTING_BUF SCREEN[main::$1] = (*main::$3)[main::$1] main::i#1 = ++ main::i#3 @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,57 +37,57 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_SETTING_BUF = 1 -constant byte OFFSET_STRUCT_SETTING_LEN = 0 -constant word* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_SETTING = 3 -constant byte SIZEOF_WORD = 2 +__constant char OFFSET_STRUCT_SETTING_BUF = 1 +__constant char OFFSET_STRUCT_SETTING_LEN = 0 +__constant unsigned int * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_SETTING = 3 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$0 -byte~ main::$1 -byte*~ main::$2 -word**~ main::$3 -byte*~ main::$4 -word**~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant struct Setting* main::setting = settings+0*SIZEOF_STRUCT_SETTING -constant word* seq[] = { 1, 2, 3 } -constant struct Setting* settings[] = { { len: 3, buf: seq+0*SIZEOF_WORD } } +bool main::$0 +char main::$1 +char *main::$2 +unsigned int **main::$3 +char *main::$4 +unsigned int **main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant struct Setting *main::setting = settings+0*SIZEOF_STRUCT_SETTING +__constant unsigned int seq[] = { 1, 2, 3 } +__constant struct Setting settings[] = { { len: 3, buf: seq+0*SIZEOF_UNSIGNED_INT } } -Adding number conversion cast (unumber) 0*SIZEOF_WORD in +Adding number conversion cast (unumber) 0*SIZEOF_UNSIGNED_INT in Adding number conversion cast (unumber) 0 in Adding number conversion cast (unumber) 0*SIZEOF_STRUCT_SETTING in Adding number conversion cast (unumber) 0 in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant integer cast (unumber)0*SIZEOF_WORD +Simplifying constant pointer cast (char *) 1024 +Simplifying constant integer cast (unumber)0*SIZEOF_UNSIGNED_INT Simplifying constant integer cast 0 Simplifying constant integer cast (unumber)0*SIZEOF_STRUCT_SETTING Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination Simple Condition main::$0 [5] if(main::i#2<*main::$2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [2] main::$4 = (byte*)main::setting -Constant right-side identified [7] main::$5 = (word**)main::setting +Constant right-side identified [2] main::$4 = (char *)main::setting +Constant right-side identified [7] main::$5 = (unsigned int **)main::setting Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$4 = (byte*)main::setting -Constant main::$5 = (word**)main::setting +Constant main::$4 = (char *)main::setting +Constant main::$5 = (unsigned int **)main::setting Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [5] if(main::i#2<*main::$2) goto main::@2 -- main::$4[OFFSET_STRUCT_SETTING_LEN] Converting *(pointer+n) to pointer[n] [9] SCREEN[main::$1] = (*main::$3)[main::$1] -- main::$5[OFFSET_STRUCT_SETTING_BUF] Successful SSA optimization Pass2InlineDerefIdx -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_SETTING in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero seq in @@ -105,17 +105,17 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Rewriting multiplication to use shift [2] main::$1 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$1 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 -Constant inlined main::$5 = (word**)settings +Constant inlined main::$5 = (unsigned int **)settings Constant inlined main::i#0 = 0 -Constant inlined main::$4 = (byte*)settings +Constant inlined main::$4 = (char *)settings Constant inlined main::setting = settings Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((word**)settings+OFFSET_STRUCT_SETTING_BUF) +Consolidated array index constant in *((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF) Successful SSA optimization Pass2ConstantAdditionElimination -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Adding NOP phi() at start of main CALL GRAPH @@ -133,24 +133,24 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) - [2] if(main::i#2<*((byte*)settings)) goto main::@2 + [2] if(main::i#2<*((char *)settings)) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [3] return to:@return main::@2: scope:[main] from main::@1 [4] main::$1 = main::i#2 << 1 - [5] SCREEN[main::$1] = (*((word**)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] + [5] SCREEN[main::$1] = (*((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] [6] main::i#1 = ++ main::i#2 to:main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 33.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 +char main::$1 // 33.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -163,10 +163,10 @@ Allocated zp[1]:3 [ main::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [4] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [5] SCREEN[main::$1] = (*((word**)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y +Statement [5] SCREEN[main::$1] = (*((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [4] main::$1 = main::i#2 << 1 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a -Statement [5] SCREEN[main::$1] = (*((word**)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y +Statement [5] SCREEN[main::$1] = (*((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -204,7 +204,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] if(main::i#2<*((byte*)settings)) goto main::@2 -- vbuxx_lt__deref_pbuc1_then_la1 + // [2] if(main::i#2<*((char *)settings)) goto main::@2 -- vbuxx_lt__deref_pbuc1_then_la1 cpx settings bcc __b2 jmp __breturn @@ -217,7 +217,7 @@ main: { // [4] main::$1 = main::i#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [5] SCREEN[main::$1] = (*((word**)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] -- pwuc1_derefidx_vbuaa=(_deref_qwuc2)_derefidx_vbuaa + // [5] SCREEN[main::$1] = (*((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] -- pwuc1_derefidx_vbuaa=(_deref_qwuc2)_derefidx_vbuaa tay lda settings+OFFSET_STRUCT_SETTING_BUF sta.z $fe @@ -251,15 +251,15 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_SETTING_BUF = 1 -constant word* const SCREEN = (byte*) 1024 +__constant char OFFSET_STRUCT_SETTING_BUF = 1 +__constant unsigned int * const SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 33.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 -constant word* seq[] = { 1, 2, 3 } -constant struct Setting* settings[] = { { len: 3, buf: seq } } +char main::$1 // reg byte a 33.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 +__constant unsigned int seq[] = { 1, 2, 3 } +__constant struct Setting settings[] = { { len: 3, buf: seq } } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] @@ -291,7 +291,7 @@ main: { // main::@1 __b1: // for( char i=0;ilen;i++) - // [2] if(main::i#2<*((byte*)settings)) goto main::@2 -- vbuxx_lt__deref_pbuc1_then_la1 + // [2] if(main::i#2<*((char *)settings)) goto main::@2 -- vbuxx_lt__deref_pbuc1_then_la1 cpx settings bcc __b2 // main::@return @@ -304,7 +304,7 @@ main: { // [4] main::$1 = main::i#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [5] SCREEN[main::$1] = (*((word**)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] -- pwuc1_derefidx_vbuaa=(_deref_qwuc2)_derefidx_vbuaa + // [5] SCREEN[main::$1] = (*((unsigned int **)settings+OFFSET_STRUCT_SETTING_BUF))[main::$1] -- pwuc1_derefidx_vbuaa=(_deref_qwuc2)_derefidx_vbuaa tay lda settings+OFFSET_STRUCT_SETTING_BUF sta.z $fe diff --git a/src/test/ref/struct-ptr-21.sym b/src/test/ref/struct-ptr-21.sym index cd9cd3393..e90abee14 100644 --- a/src/test/ref/struct-ptr-21.sym +++ b/src/test/ref/struct-ptr-21.sym @@ -1,12 +1,12 @@ -constant byte OFFSET_STRUCT_SETTING_BUF = 1 -constant word* const SCREEN = (byte*) 1024 +__constant char OFFSET_STRUCT_SETTING_BUF = 1 +__constant unsigned int * const SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 33.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 -constant word* seq[] = { 1, 2, 3 } -constant struct Setting* settings[] = { { len: 3, buf: seq } } +char main::$1 // reg byte a 33.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 +__constant unsigned int seq[] = { 1, 2, 3 } +__constant struct Setting settings[] = { { len: 3, buf: seq } } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/struct-ptr-22.asm b/src/test/ref/struct-ptr-22.asm index ff9a35457..b17f21c96 100644 --- a/src/test/ref/struct-ptr-22.asm +++ b/src/test/ref/struct-ptr-22.asm @@ -90,7 +90,7 @@ print_cls: { rts } // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 __b1: @@ -114,7 +114,7 @@ print_str: { jmp __b1 } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -160,6 +160,7 @@ print_ln: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -193,7 +194,7 @@ memset: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/struct-ptr-22.cfg b/src/test/ref/struct-ptr-22.cfg index 36ac2d97f..6341a3929 100644 --- a/src/test/ref/struct-ptr-22.cfg +++ b/src/test/ref/struct-ptr-22.cfg @@ -1,35 +1,35 @@ -signed word main() +int main() main: scope:[main] from - [0] *((byte**)files) = (byte*) 16384 - [1] (*((byte**)files))[3] = $aa - [2] main::$13 = *((byte**)files) + [0] *((char **)files) = (char *) 16384 + [1] (*((char **)files))[3] = $aa + [2] main::$13 = *((char **)files) [3] main::$13[4] = $cc - [4] call print_cls + [4] call print_cls to:main::@1 main::@1: scope:[main] from main [5] phi() - [6] call print_str + [6] call print_str to:main::@2 main::@2: scope:[main] from main::@1 - [7] print_uchar::b#0 = *((byte*) 0) - [8] call print_uchar + [7] print_uchar::b#0 = *((char *) 0) + [8] call print_uchar to:main::@3 main::@3: scope:[main] from main::@2 [9] phi() - [10] call print_ln + [10] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [11] print_char_cursor#49 = print_line_cursor#0 - [12] call print_str + [12] call print_str to:main::@5 main::@5: scope:[main] from main::@4 - [13] print_uchar::b#1 = *((byte*) 16388) - [14] call print_uchar + [13] print_uchar::b#1 = *((char *) 16388) + [14] call print_uchar to:main::@6 main::@6: scope:[main] from main::@5 [15] phi() - [16] call print_ln + [16] call print_ln to:main::@return main::@return: scope:[main] from main::@6 [17] return @@ -38,13 +38,13 @@ main::@return: scope:[main] from main::@6 void print_cls() print_cls: scope:[print_cls] from main [18] phi() - [19] call memset + [19] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [20] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@1 main::@4 [21] print_char_cursor#48 = phi( main::@1/print_screen#0, main::@4/print_char_cursor#49 ) [21] print_str::str#6 = phi( main::@1/main::str, main::@4/main::str1 ) @@ -59,23 +59,23 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [25] print_char::ch#0 = *print_str::str#3 - [26] call print_char + [26] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [27] print_str::str#0 = ++ print_str::str#3 to:print_str::@1 -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@2 main::@5 [28] print_uchar::b#2 = phi( main::@2/print_uchar::b#0, main::@5/print_uchar::b#1 ) [29] print_uchar::$0 = print_uchar::b#2 >> 4 [30] print_char::ch#1 = print_hextab[print_uchar::$0] - [31] call print_char + [31] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [32] print_uchar::$2 = print_uchar::b#2 & $f [33] print_char::ch#2 = print_hextab[print_uchar::$2] - [34] call print_char + [34] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [35] return @@ -94,12 +94,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [40] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [41] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [42] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [42] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [43] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -110,7 +110,7 @@ memset::@2: scope:[memset] from memset::@1 [46] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [47] print_char_cursor#29 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#1, print_uchar::@1/print_char_cursor#30 ) [47] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) diff --git a/src/test/ref/struct-ptr-22.log b/src/test/ref/struct-ptr-22.log index 10f38c68b..e885fa504 100644 --- a/src/test/ref/struct-ptr-22.log +++ b/src/test/ref/struct-ptr-22.log @@ -1,9 +1,9 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@1 main::@4 print_char_cursor#48 = phi( main::@1/print_char_cursor#11, main::@4/print_char_cursor#14 ) print_str::str#6 = phi( main::@1/print_str::str#1, main::@4/print_str::str#2 ) @@ -18,7 +18,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#42 = phi( print_str::@1/print_char_cursor#43 ) print_str::str#4 = phi( print_str::@1/print_str::str#3 ) print_char::ch#0 = *print_str::str#4 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#5 = phi( print_str::@2/print_str::str#4 ) @@ -57,13 +57,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@2 main::@5 print_char_cursor#45 = phi( main::@2/print_char_cursor#12, main::@5/print_char_cursor#15 ) print_uchar::b#2 = phi( main::@2/print_uchar::b#0, main::@5/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#1 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -71,7 +71,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#4 = print_char_cursor#26 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#2 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#27 = phi( print_uchar::@1/print_char_cursor#8 ) @@ -83,7 +83,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 print_char_cursor#29 = phi( print_str::@2/print_char_cursor#42, print_uchar/print_char_cursor#45, print_uchar::@1/print_char_cursor#4 ) print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -99,10 +99,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -118,7 +118,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -135,9 +135,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -161,23 +161,23 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -signed word main() +int main() main: scope:[main] from __start::@1 print_char_cursor#46 = phi( __start::@1/print_char_cursor#47 ) print_line_cursor#22 = phi( __start::@1/print_line_cursor#25 ) print_screen#5 = phi( __start::@1/print_screen#7 ) file#0 = files - main::$10 = (byte**)file#0 + main::$10 = (char **)file#0 main::$7 = main::$10 + OFFSET_STRUCT_FILEENTRY_BUFEDIT - *main::$7 = (byte*)$4000 - main::$11 = (byte**)file#0 + *main::$7 = (char *)$4000 + main::$11 = (char **)file#0 main::$8 = main::$11 + OFFSET_STRUCT_FILEENTRY_BUFEDIT (*main::$8)[3] = $aa - main::$12 = (byte**)file#0 + main::$12 = (char **)file#0 main::$9 = main::$12 + OFFSET_STRUCT_FILEENTRY_BUFEDIT - main::$13 = (byte*)*main::$9 + main::$13 = (char *)*main::$9 main::$13[4] = $cc - call print_cls + call print_cls to:main::@1 main::@1: scope:[main] from main file#15 = phi( main/file#0 ) @@ -186,22 +186,22 @@ main::@1: scope:[main] from main print_line_cursor#4 = print_line_cursor#15 print_char_cursor#11 = print_char_cursor#32 print_str::str#1 = main::str - call print_str + call print_str to:main::@2 main::@2: scope:[main] from main::@1 file#14 = phi( main::@1/file#15 ) print_line_cursor#26 = phi( main::@1/print_line_cursor#4 ) print_char_cursor#33 = phi( main::@1/print_char_cursor#1 ) print_char_cursor#12 = print_char_cursor#33 - print_uchar::b#0 = *((byte*)0) - call print_uchar + print_uchar::b#0 = *((char *)0) + call print_uchar to:main::@3 main::@3: scope:[main] from main::@2 file#13 = phi( main::@2/file#14 ) print_line_cursor#23 = phi( main::@2/print_line_cursor#26 ) print_char_cursor#34 = phi( main::@2/print_char_cursor#6 ) print_char_cursor#13 = print_char_cursor#34 - call print_ln + call print_ln to:main::@4 main::@4: scope:[main] from main::@3 file#12 = phi( main::@3/file#13 ) @@ -210,22 +210,22 @@ main::@4: scope:[main] from main::@3 print_line_cursor#5 = print_line_cursor#16 print_char_cursor#14 = print_char_cursor#35 print_str::str#2 = main::str1 - call print_str + call print_str to:main::@5 main::@5: scope:[main] from main::@4 file#11 = phi( main::@4/file#12 ) print_line_cursor#27 = phi( main::@4/print_line_cursor#5 ) print_char_cursor#36 = phi( main::@4/print_char_cursor#1 ) print_char_cursor#15 = print_char_cursor#36 - print_uchar::b#1 = *((byte*)$4004) - call print_uchar + print_uchar::b#1 = *((char *)$4004) + call print_uchar to:main::@6 main::@6: scope:[main] from main::@5 file#10 = phi( main::@5/file#11 ) print_line_cursor#24 = phi( main::@5/print_line_cursor#27 ) print_char_cursor#37 = phi( main::@5/print_char_cursor#6 ) print_char_cursor#16 = print_char_cursor#37 - call print_ln + call print_ln to:main::@7 main::@7: scope:[main] from main::@6 file#8 = phi( main::@6/file#10 ) @@ -251,17 +251,17 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#8 = print_screen#0 print_char_cursor#19 = print_line_cursor#8 - file#2 = (struct fileentry*) 0 + file#2 = (struct fileentry *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#47 = phi( __start::__init1/print_char_cursor#19 ) print_line_cursor#25 = phi( __start::__init1/print_line_cursor#8 ) file#9 = phi( __start::__init1/file#2 ) - call main + call main main::return#2 = main::return#1 to:__start::@2 __start::@2: scope:[__start] from __start::@1 @@ -286,198 +286,198 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_FILEENTRY_BUFEDIT = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char OFFSET_STRUCT_FILEENTRY_BUFEDIT = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() -struct fileentry* file -struct fileentry* file#0 -struct fileentry* file#1 -struct fileentry* file#10 -struct fileentry* file#11 -struct fileentry* file#12 -struct fileentry* file#13 -struct fileentry* file#14 -struct fileentry* file#15 -struct fileentry* file#2 -struct fileentry* file#3 -struct fileentry* file#4 -struct fileentry* file#5 -struct fileentry* file#6 -struct fileentry* file#7 -struct fileentry* file#8 -struct fileentry* file#9 -constant struct fileentry* files[$a] = { fill( $a, 0) } -signed word main() -byte**~ main::$10 -byte**~ main::$11 -byte**~ main::$12 -byte*~ main::$13 -byte**~ main::$7 -byte**~ main::$8 -byte**~ main::$9 -signed word main::return -signed word main::return#0 -signed word main::return#1 -signed word main::return#2 -signed word main::return#3 -constant byte* main::str[7] = "$0000=" -constant byte* main::str1[7] = "$4004=" -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +struct fileentry *file +struct fileentry *file#0 +struct fileentry *file#1 +struct fileentry *file#10 +struct fileentry *file#11 +struct fileentry *file#12 +struct fileentry *file#13 +struct fileentry *file#14 +struct fileentry *file#15 +struct fileentry *file#2 +struct fileentry *file#3 +struct fileentry *file#4 +struct fileentry *file#5 +struct fileentry *file#6 +struct fileentry *file#7 +struct fileentry *file#8 +struct fileentry *file#9 +__constant struct fileentry files[$a] = { fill( $a, 0) } +int main() +char **main::$10 +char **main::$11 +char **main::$12 +char *main::$13 +char **main::$7 +char **main::$8 +char **main::$9 +int main::return +int main::return#0 +int main::return#1 +int main::return#2 +int main::return#3 +__constant char main::str[7] = "$0000=" +__constant char main::str1[7] = "$4004=" +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -byte* print_str::str#6 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +char *print_str::str#6 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#3 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#11 + $28 @@ -493,7 +493,7 @@ Adding number conversion cast (unumber) 4 in main::$13[4] = ((unumber)) $cc Adding number conversion cast (snumber) 0 in main::return#0 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast (*main::$8)[(unumber)3] = (unumber)$aa Inlining cast main::$13[(unumber)4] = (unumber)$cc Inlining cast main::return#0 = (snumber)0 @@ -504,30 +504,30 @@ Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 16384 +Simplifying constant pointer cast (char *) 16384 Simplifying constant integer cast $aa Simplifying constant integer cast 3 Simplifying constant integer cast *main::$9 Simplifying constant integer cast $cc Simplifying constant integer cast 4 -Simplifying constant pointer cast (byte*) 0 -Simplifying constant pointer cast (byte*) 16388 +Simplifying constant pointer cast (char *) 0 +Simplifying constant pointer cast (char *) 16388 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $aa -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $cc -Finalized unsigned number type (byte) 4 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $aa +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $cc +Finalized unsigned number type (char) 4 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [60] memset::$1 = memset::num#1 <= 0 from [59] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_str::str#3 = print_str::str#4 print_str::str#5 @@ -608,27 +608,27 @@ Constant file#0 = files Constant print_str::str#1 = main::str Constant print_str::str#2 = main::str1 Constant main::return#0 = 0 -Constant print_screen#0 = (byte*) 1024 -Constant file#2 = (struct fileentry*) 0 +Constant print_screen#0 = (char *) 1024 +Constant file#2 = (struct fileentry *) 0 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 -Constant main::$10 = (byte**)file#0 -Constant main::$11 = (byte**)file#0 -Constant main::$12 = (byte**)file#0 +Constant memset::str#0 = (void *)print_screen#0 +Constant main::$10 = (char **)file#0 +Constant main::$11 = (char **)file#0 +Constant main::$12 = (char **)file#0 Constant main::return#2 = main::return#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [38] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs -Converting *(pointer+n) to pointer[n] [53] *main::$7 = (byte*) 16384 -- main::$10[OFFSET_STRUCT_FILEENTRY_BUFEDIT] +Converting *(pointer+n) to pointer[n] [53] *main::$7 = (char *) 16384 -- main::$10[OFFSET_STRUCT_FILEENTRY_BUFEDIT] Converting *(pointer+n) to pointer[n] [56] (*main::$8)[3] = $aa -- main::$11[OFFSET_STRUCT_FILEENTRY_BUFEDIT] Converting *(pointer+n) to pointer[n] [59] main::$13 = *main::$9 -- main::$12[OFFSET_STRUCT_FILEENTRY_BUFEDIT] Successful SSA optimization Pass2InlineDerefIdx Simplifying expression containing zero main::$10 in [52] main::$7 = main::$10 + OFFSET_STRUCT_FILEENTRY_BUFEDIT -Simplifying expression containing zero main::$10 in [53] main::$10[OFFSET_STRUCT_FILEENTRY_BUFEDIT] = (byte*) 16384 +Simplifying expression containing zero main::$10 in [53] main::$10[OFFSET_STRUCT_FILEENTRY_BUFEDIT] = (char *) 16384 Simplifying expression containing zero main::$11 in [55] main::$8 = main::$11 + OFFSET_STRUCT_FILEENTRY_BUFEDIT Simplifying expression containing zero main::$11 in [56] (main::$11[OFFSET_STRUCT_FILEENTRY_BUFEDIT])[3] = $aa Simplifying expression containing zero main::$12 in [58] main::$9 = main::$12 + OFFSET_STRUCT_FILEENTRY_BUFEDIT @@ -659,20 +659,20 @@ Inlining constant with var siblings print_str::str#1 Inlining constant with var siblings print_str::str#2 Inlining constant with var siblings memset::dst#0 Constant inlined file#0 = files -Constant inlined memset::$4 = (byte*)memset::str#0 -Constant inlined main::$12 = (byte**)files +Constant inlined memset::$4 = (char *)memset::str#0 +Constant inlined main::$12 = (char **)files Constant inlined print_str::str#2 = main::str1 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_str::str#1 = main::str -Constant inlined main::$10 = (byte**)files -Constant inlined main::$11 = (byte**)files +Constant inlined main::$10 = (char **)files +Constant inlined main::$11 = (char **)files Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main::@1 @@ -727,37 +727,37 @@ Adding NOP phi() at start of memset FINAL CONTROL FLOW GRAPH -signed word main() +int main() main: scope:[main] from - [0] *((byte**)files) = (byte*) 16384 - [1] (*((byte**)files))[3] = $aa - [2] main::$13 = *((byte**)files) + [0] *((char **)files) = (char *) 16384 + [1] (*((char **)files))[3] = $aa + [2] main::$13 = *((char **)files) [3] main::$13[4] = $cc - [4] call print_cls + [4] call print_cls to:main::@1 main::@1: scope:[main] from main [5] phi() - [6] call print_str + [6] call print_str to:main::@2 main::@2: scope:[main] from main::@1 - [7] print_uchar::b#0 = *((byte*) 0) - [8] call print_uchar + [7] print_uchar::b#0 = *((char *) 0) + [8] call print_uchar to:main::@3 main::@3: scope:[main] from main::@2 [9] phi() - [10] call print_ln + [10] call print_ln to:main::@4 main::@4: scope:[main] from main::@3 [11] print_char_cursor#49 = print_line_cursor#0 - [12] call print_str + [12] call print_str to:main::@5 main::@5: scope:[main] from main::@4 - [13] print_uchar::b#1 = *((byte*) 16388) - [14] call print_uchar + [13] print_uchar::b#1 = *((char *) 16388) + [14] call print_uchar to:main::@6 main::@6: scope:[main] from main::@5 [15] phi() - [16] call print_ln + [16] call print_ln to:main::@return main::@return: scope:[main] from main::@6 [17] return @@ -766,13 +766,13 @@ main::@return: scope:[main] from main::@6 void print_cls() print_cls: scope:[print_cls] from main [18] phi() - [19] call memset + [19] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [20] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from main::@1 main::@4 [21] print_char_cursor#48 = phi( main::@1/print_screen#0, main::@4/print_char_cursor#49 ) [21] print_str::str#6 = phi( main::@1/main::str, main::@4/main::str1 ) @@ -787,23 +787,23 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [25] print_char::ch#0 = *print_str::str#3 - [26] call print_char + [26] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [27] print_str::str#0 = ++ print_str::str#3 to:print_str::@1 -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@2 main::@5 [28] print_uchar::b#2 = phi( main::@2/print_uchar::b#0, main::@5/print_uchar::b#1 ) [29] print_uchar::$0 = print_uchar::b#2 >> 4 [30] print_char::ch#1 = print_hextab[print_uchar::$0] - [31] call print_char + [31] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [32] print_uchar::$2 = print_uchar::b#2 & $f [33] print_char::ch#2 = print_hextab[print_uchar::$2] - [34] call print_char + [34] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [35] return @@ -822,12 +822,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [40] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [41] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [42] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [42] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [43] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -838,7 +838,7 @@ memset::@2: scope:[memset] from memset::@1 [46] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1 [47] print_char_cursor#29 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#1, print_uchar::@1/print_char_cursor#30 ) [47] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -851,50 +851,50 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -struct fileentry* file -signed word main() -byte*~ main::$13 4.0 -signed word main::return -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 202.0 -byte print_char::ch#1 22.0 -byte print_char::ch#2 22.0 -byte print_char::ch#3 1124.0 -byte* print_char_cursor -byte* print_char_cursor#1 20.363636363636363 -byte* print_char_cursor#29 1062.5 -byte* print_char_cursor#30 71.41176470588235 -byte* print_char_cursor#48 13.0 -byte* print_char_cursor#49 4.0 +struct fileentry *file +int main() +char *main::$13 // 4.0 +int main::return +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 202.0 +char print_char::ch#1 // 22.0 +char print_char::ch#2 // 22.0 +char print_char::ch#3 // 1124.0 +char *print_char_cursor +char *print_char_cursor#1 // 20.363636363636363 +char *print_char_cursor#29 // 1062.5 +char *print_char_cursor#30 // 71.41176470588235 +char *print_char_cursor#48 // 13.0 +char *print_char_cursor#49 // 4.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 34.11111111111111 -byte* print_line_cursor#11 213.0 -byte* print_line_cursor#21 13.0 +char *print_line_cursor +char *print_line_cursor#0 // 34.11111111111111 +char *print_line_cursor#11 // 213.0 +char *print_line_cursor#21 // 13.0 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 202.0 -byte* print_str::str#3 103.75 -byte* print_str::str#6 11.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 22.0 -byte~ print_uchar::$2 22.0 -byte print_uchar::b -byte print_uchar::b#0 4.0 -byte print_uchar::b#1 4.0 -byte print_uchar::b#2 6.5 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 202.0 +char *print_str::str#3 // 103.75 +char *print_str::str#6 // 11.0 +void print_uchar(char b) +char print_uchar::$0 // 22.0 +char print_uchar::$2 // 22.0 +char print_uchar::b +char print_uchar::b#0 // 4.0 +char print_uchar::b#1 // 4.0 +char print_uchar::b#2 // 6.5 Initial phi equivalence classes [ print_str::str#3 print_str::str#6 print_str::str#0 ] @@ -926,9 +926,9 @@ Allocated zp[2]:12 [ main::$13 ] Allocated zp[1]:14 [ print_uchar::$0 ] Allocated zp[1]:15 [ print_uchar::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte**)files) = (byte*) 16384 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] (*((byte**)files))[3] = $aa [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [2] main::$13 = *((byte**)files) [ main::$13 ] ( [ main::$13 ] { } ) always clobbers reg byte a +Statement [0] *((char **)files) = (char *) 16384 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] (*((char **)files))[3] = $aa [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [2] main::$13 = *((char **)files) [ main::$13 ] ( [ main::$13 ] { } ) always clobbers reg byte a Statement [3] main::$13[4] = $cc [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Statement [11] print_char_cursor#49 = print_line_cursor#0 [ print_char_cursor#49 print_line_cursor#0 ] ( [ print_char_cursor#49 print_line_cursor#0 ] { { print_char_cursor#48 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [23] if(0!=*print_str::str#3) goto print_str::@2 [ print_str::str#3 print_char_cursor#1 ] ( print_str:6 [ print_str::str#3 print_char_cursor#1 ] { } print_str:12 [ print_line_cursor#0 print_str::str#3 print_char_cursor#1 ] { { print_char_cursor#48 = print_char_cursor#49 } } ) always clobbers reg byte a reg byte y @@ -942,9 +942,9 @@ Statement [43] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 Statement [45] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:4::memset:19 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Statement [48] *print_char_cursor#29 = print_char::ch#3 [ print_char_cursor#29 ] ( print_str:6::print_char:26 [ print_str::str#3 print_char_cursor#29 ] { { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#29 } } print_str:12::print_char:26 [ print_line_cursor#0 print_str::str#3 print_char_cursor#29 ] { { print_char_cursor#48 = print_char_cursor#49 } { print_char::ch#0 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#29 } } print_uchar:8::print_char:31 [ print_uchar::b#2 print_char_cursor#29 ] { { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#29 } } print_uchar:14::print_char:31 [ print_line_cursor#0 print_uchar::b#2 print_char_cursor#29 ] { { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#3 } { print_char_cursor#1 = print_char_cursor#29 } } print_uchar:8::print_char:34 [ print_char_cursor#29 ] { { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#29 = print_char_cursor#30 } } print_uchar:14::print_char:34 [ print_line_cursor#0 print_char_cursor#29 ] { { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#3 } { print_char_cursor#29 = print_char_cursor#30 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Statement [0] *((byte**)files) = (byte*) 16384 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] (*((byte**)files))[3] = $aa [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y -Statement [2] main::$13 = *((byte**)files) [ main::$13 ] ( [ main::$13 ] { } ) always clobbers reg byte a +Statement [0] *((char **)files) = (char *) 16384 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] (*((char **)files))[3] = $aa [ ] ( [ ] { } ) always clobbers reg byte a reg byte x reg byte y +Statement [2] main::$13 = *((char **)files) [ main::$13 ] ( [ main::$13 ] { } ) always clobbers reg byte a Statement [3] main::$13[4] = $cc [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Statement [11] print_char_cursor#49 = print_line_cursor#0 [ print_char_cursor#49 print_line_cursor#0 ] ( [ print_char_cursor#49 print_line_cursor#0 ] { { print_char_cursor#48 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [23] if(0!=*print_str::str#3) goto print_str::@2 [ print_str::str#3 print_char_cursor#1 ] ( print_str:6 [ print_str::str#3 print_char_cursor#1 ] { } print_str:12 [ print_line_cursor#0 print_str::str#3 print_char_cursor#1 ] { { print_char_cursor#48 = print_char_cursor#49 } } ) always clobbers reg byte a reg byte y @@ -1015,12 +1015,12 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label __13 = 6 - // [0] *((byte**)files) = (byte*) 16384 -- _deref_qbuc1=pbuc2 + // [0] *((char **)files) = (char *) 16384 -- _deref_qbuc1=pbuc2 lda #<$4000 sta files lda #>$4000 sta files+1 - // [1] (*((byte**)files))[3] = $aa -- (_deref_qbuc1)_derefidx_vbuc2=vbuc3 + // [1] (*((char **)files))[3] = $aa -- (_deref_qbuc1)_derefidx_vbuc2=vbuc3 lda #$aa ldy #3 ldx files @@ -1028,7 +1028,7 @@ main: { ldx files+1 stx.z $ff sta ($fe),y - // [2] main::$13 = *((byte**)files) -- pbuz1=_deref_qbuc1 + // [2] main::$13 = *((char **)files) -- pbuz1=_deref_qbuc1 lda files sta.z __13 lda files+1 @@ -1038,7 +1038,7 @@ main: { lda #$cc ldy #4 sta (__13),y - // [4] call print_cls + // [4] call print_cls // writes address 0x4004 (right!) // [18] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: @@ -1048,7 +1048,7 @@ main: { jmp __b1 // main::@1 __b1: - // [6] call print_str + // [6] call print_str // [21] phi from main::@1 to print_str [phi:main::@1->print_str] print_str_from___b1: // [21] phi print_char_cursor#48 = print_screen#0 [phi:main::@1->print_str#0] -- pbuz1=pbuc1 @@ -1065,9 +1065,9 @@ main: { jmp __b2 // main::@2 __b2: - // [7] print_uchar::b#0 = *((byte*) 0) -- vbuxx=_deref_pbuc1 + // [7] print_uchar::b#0 = *((char *) 0) -- vbuxx=_deref_pbuc1 ldx 0 - // [8] call print_uchar + // [8] call print_uchar // [28] phi from main::@2 to print_uchar [phi:main::@2->print_uchar] print_uchar_from___b2: // [28] phi print_uchar::b#2 = print_uchar::b#0 [phi:main::@2->print_uchar#0] -- register_copy @@ -1077,7 +1077,7 @@ main: { jmp __b3 // main::@3 __b3: - // [10] call print_ln + // [10] call print_ln // [36] phi from main::@3 to print_ln [phi:main::@3->print_ln] print_ln_from___b3: // [36] phi print_line_cursor#21 = print_screen#0 [phi:main::@3->print_ln#0] -- pbuz1=pbuc1 @@ -1094,7 +1094,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [12] call print_str + // [12] call print_str // [21] phi from main::@4 to print_str [phi:main::@4->print_str] print_str_from___b4: // [21] phi print_char_cursor#48 = print_char_cursor#49 [phi:main::@4->print_str#0] -- register_copy @@ -1107,9 +1107,9 @@ main: { jmp __b5 // main::@5 __b5: - // [13] print_uchar::b#1 = *((byte*) 16388) -- vbuxx=_deref_pbuc1 + // [13] print_uchar::b#1 = *((char *) 16388) -- vbuxx=_deref_pbuc1 ldx $4004 - // [14] call print_uchar + // [14] call print_uchar // [28] phi from main::@5 to print_uchar [phi:main::@5->print_uchar] print_uchar_from___b5: // [28] phi print_uchar::b#2 = print_uchar::b#1 [phi:main::@5->print_uchar#0] -- register_copy @@ -1119,7 +1119,7 @@ main: { jmp __b6 // main::@6 __b6: - // [16] call print_ln + // [16] call print_ln // [36] phi from main::@6 to print_ln [phi:main::@6->print_ln] print_ln_from___b6: // [36] phi print_line_cursor#21 = print_line_cursor#0 [phi:main::@6->print_ln#0] -- register_copy @@ -1139,7 +1139,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [19] call memset + // [19] call memset // [41] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1151,7 +1151,7 @@ print_cls: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(2) str) +// void print_str(__zp(2) char *str) print_str: { .label str = 2 // [22] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -1177,7 +1177,7 @@ print_str: { // [25] print_char::ch#0 = *print_str::str#3 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [26] call print_char + // [26] call print_char // [47] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [47] phi print_char_cursor#29 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy @@ -1195,7 +1195,7 @@ print_str: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [29] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1206,7 +1206,7 @@ print_uchar: { // [30] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [31] call print_char + // [31] call print_char // Table of hexadecimal digits // [47] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1221,7 +1221,7 @@ print_uchar: { axs #0 // [33] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [34] call print_char + // [34] call print_char // [47] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [47] phi print_char_cursor#29 = print_char_cursor#30 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1268,6 +1268,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1276,7 +1277,7 @@ memset: { .label dst = 2 // [42] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [42] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [42] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1314,7 +1315,7 @@ memset: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [48] *print_char_cursor#29 = print_char::ch#3 -- _deref_pbuz1=vbuaa ldy #0 @@ -1397,63 +1398,63 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -struct fileentry* file -constant struct fileentry* files[$a] = { fill( $a, 0) } -signed word main() -byte*~ main::$13 zp[2]:6 4.0 -signed word main::return -constant byte* main::str[7] = "$0000=" -constant byte* main::str1[7] = "$4004=" -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:2 2002.0 -byte* memset::dst#2 dst zp[2]:2 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 202.0 -byte print_char::ch#1 reg byte a 22.0 -byte print_char::ch#2 reg byte a 22.0 -byte print_char::ch#3 reg byte a 1124.0 -byte* print_char_cursor -byte* print_char_cursor#1 print_char_cursor zp[2]:4 20.363636363636363 -byte* print_char_cursor#29 print_char_cursor zp[2]:4 1062.5 -byte* print_char_cursor#30 print_char_cursor zp[2]:4 71.41176470588235 -byte* print_char_cursor#48 print_char_cursor zp[2]:4 13.0 -byte* print_char_cursor#49 print_char_cursor zp[2]:4 4.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +struct fileentry *file +__constant struct fileentry files[$a] = { fill( $a, 0) } +int main() +char *main::$13 // zp[2]:6 4.0 +int main::return +__constant char main::str[7] = "$0000=" +__constant char main::str1[7] = "$4004=" +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:2 2002.0 +char *memset::dst#2 // dst zp[2]:2 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 202.0 +char print_char::ch#1 // reg byte a 22.0 +char print_char::ch#2 // reg byte a 22.0 +char print_char::ch#3 // reg byte a 1124.0 +char *print_char_cursor +char *print_char_cursor#1 // print_char_cursor zp[2]:4 20.363636363636363 +char *print_char_cursor#29 // print_char_cursor zp[2]:4 1062.5 +char *print_char_cursor#30 // print_char_cursor zp[2]:4 71.41176470588235 +char *print_char_cursor#48 // print_char_cursor zp[2]:4 13.0 +char *print_char_cursor#49 // print_char_cursor zp[2]:4 4.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:6 34.11111111111111 -byte* print_line_cursor#11 print_line_cursor zp[2]:6 213.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:6 13.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:6 34.11111111111111 +char *print_line_cursor#11 // print_line_cursor zp[2]:6 213.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:6 13.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:2 202.0 -byte* print_str::str#3 str zp[2]:2 103.75 -byte* print_str::str#6 str zp[2]:2 11.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 22.0 -byte~ print_uchar::$2 reg byte x 22.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 4.0 -byte print_uchar::b#1 reg byte x 4.0 -byte print_uchar::b#2 reg byte x 6.5 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:2 202.0 +char *print_str::str#3 // str zp[2]:2 103.75 +char *print_str::str#6 // str zp[2]:2 11.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 22.0 +char print_uchar::$2 // reg byte x 22.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 4.0 +char print_uchar::b#1 // reg byte x 4.0 +char print_uchar::b#2 // reg byte x 6.5 reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] zp[2]:2 [ memset::dst#2 memset::dst#1 print_str::str#3 print_str::str#6 print_str::str#0 ] @@ -1488,13 +1489,13 @@ Score: 1497 main: { .label __13 = 6 // file->bufEdit = (char*)0x4000 - // [0] *((byte**)files) = (byte*) 16384 -- _deref_qbuc1=pbuc2 + // [0] *((char **)files) = (char *) 16384 -- _deref_qbuc1=pbuc2 lda #<$4000 sta files lda #>$4000 sta files+1 // file->bufEdit[3] = 0xAA - // [1] (*((byte**)files))[3] = $aa -- (_deref_qbuc1)_derefidx_vbuc2=vbuc3 + // [1] (*((char **)files))[3] = $aa -- (_deref_qbuc1)_derefidx_vbuc2=vbuc3 lda #$aa ldy #3 ldx files @@ -1503,7 +1504,7 @@ main: { stx.z $ff sta ($fe),y // ((char *)file->bufEdit)[4] = 0xCC - // [2] main::$13 = *((byte**)files) -- pbuz1=_deref_qbuc1 + // [2] main::$13 = *((char **)files) -- pbuz1=_deref_qbuc1 lda files sta.z __13 lda files+1 @@ -1514,14 +1515,14 @@ main: { ldy #4 sta (__13),y // print_cls() - // [4] call print_cls + // [4] call print_cls // writes address 0x4004 (right!) // [18] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [5] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_str("$0000=") - // [6] call print_str + // [6] call print_str // [21] phi from main::@1 to print_str [phi:main::@1->print_str] // [21] phi print_char_cursor#48 = print_screen#0 [phi:main::@1->print_str#0] -- pbuz1=pbuc1 lda #print_uchar] // [28] phi print_uchar::b#2 = print_uchar::b#0 [phi:main::@2->print_uchar#0] -- register_copy jsr print_uchar // [9] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // print_ln() - // [10] call print_ln + // [10] call print_ln // [36] phi from main::@3 to print_ln [phi:main::@3->print_ln] // [36] phi print_line_cursor#21 = print_screen#0 [phi:main::@3->print_ln#0] -- pbuz1=pbuc1 lda #print_person] print_person_from_main: // [5] phi idx#16 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 @@ -401,7 +401,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi idx#16 = idx#17 [phi:main::@1->print_person#0] -- register_copy @@ -418,12 +418,12 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __3 = 4 .label __4 = 2 .label person = 2 - // [6] print_person::$0 = '0' + *((byte*)print_person::person#2) -- vbuaa=vbuc1_plus__deref_pbuz1 + // [6] print_person::$0 = '0' + *((char *)print_person::person#2) -- vbuaa=vbuc1_plus__deref_pbuz1 lda #'0' clc ldy #0 @@ -437,13 +437,13 @@ print_person: { sta SCREEN,x // [10] idx#4 = ++ idx#3 -- vbuxx=_inc_vbuxx inx - // [11] SCREEN[idx#4] = ((byte*)print_person::person#2)[OFFSET_STRUCT_PERSON_INITIALS] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [11] SCREEN[idx#4] = ((char *)print_person::person#2)[OFFSET_STRUCT_PERSON_INITIALS] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_PERSON_INITIALS lda (person),y sta SCREEN,x // [12] idx#5 = ++ idx#4 -- vbuxx=_inc_vbuxx inx - // [13] print_person::$3 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz2_plus_vbuc1 + // [13] print_person::$3 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_INITIALS clc adc.z person @@ -457,7 +457,7 @@ print_person: { sta SCREEN,x // [15] idx#6 = ++ idx#5 -- vbuxx=_inc_vbuxx inx - // [16] print_person::$4 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz1_plus_vbuc1 + // [16] print_person::$4 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz1_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_INITIALS clc adc.z __4 @@ -506,27 +506,27 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_PERSON_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = 5 -byte idx -byte idx#16 reg byte x 8.0 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 16.5 -byte idx#5 reg byte x 11.0 -byte idx#6 reg byte x 11.0 -byte idx#7 reg byte x 16.5 +__constant char OFFSET_STRUCT_PERSON_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = 5 +char idx +char idx#16 // reg byte x 8.0 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 16.5 +char idx#5 // reg byte x 11.0 +char idx#6 // reg byte x 11.0 +char idx#7 // reg byte x 16.5 void main() -struct Person* main::person -constant struct Person* main::person#1 person = persons+SIZEOF_STRUCT_PERSON -constant struct Person* persons[] = { { id: 1, initials: "jgr" }, { id: 8, initials: "hbg" } } -void print_person(struct Person* print_person::person) -byte~ print_person::$0 reg byte a 22.0 -byte*~ print_person::$3 zp[2]:4 22.0 -byte*~ print_person::$4 zp[2]:2 22.0 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +struct Person *main::person +__constant struct Person *main::person#1 = persons+SIZEOF_STRUCT_PERSON // person +__constant struct Person persons[] = { { id: 1, initials: "jgr" }, { id: 8, initials: "hbg" } } +void print_person(struct Person *person) +char print_person::$0 // reg byte a 22.0 +char *print_person::$3 // zp[2]:4 22.0 +char *print_person::$4 // zp[2]:2 22.0 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 print_person::$4 ] reg byte x [ idx#16 idx#17 ] @@ -562,7 +562,7 @@ Score: 159 main: { .label person = persons+SIZEOF_STRUCT_PERSON // print_person(person) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi idx#16 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 ldx #0 @@ -575,7 +575,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_person(person) - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] // [5] phi idx#16 = idx#17 [phi:main::@1->print_person#0] -- register_copy // [5] phi print_person::person#2 = main::person#1 [phi:main::@1->print_person#1] -- pssz1=pssc1 @@ -590,13 +590,13 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __3 = 4 .label __4 = 2 .label person = 2 // '0'+person->id - // [6] print_person::$0 = '0' + *((byte*)print_person::person#2) -- vbuaa=vbuc1_plus__deref_pbuz1 + // [6] print_person::$0 = '0' + *((char *)print_person::person#2) -- vbuaa=vbuc1_plus__deref_pbuz1 lda #'0' clc ldy #0 @@ -615,7 +615,7 @@ print_person: { // [10] idx#4 = ++ idx#3 -- vbuxx=_inc_vbuxx inx // SCREEN[idx++] = person->initials[0] - // [11] SCREEN[idx#4] = ((byte*)print_person::person#2)[OFFSET_STRUCT_PERSON_INITIALS] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [11] SCREEN[idx#4] = ((char *)print_person::person#2)[OFFSET_STRUCT_PERSON_INITIALS] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_PERSON_INITIALS lda (person),y sta SCREEN,x @@ -623,7 +623,7 @@ print_person: { // [12] idx#5 = ++ idx#4 -- vbuxx=_inc_vbuxx inx // SCREEN[idx++] = person->initials[1] - // [13] print_person::$3 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz2_plus_vbuc1 + // [13] print_person::$3 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz2_plus_vbuc1 tya clc adc.z person @@ -639,7 +639,7 @@ print_person: { // [15] idx#6 = ++ idx#5 -- vbuxx=_inc_vbuxx inx // SCREEN[idx++] = person->initials[2] - // [16] print_person::$4 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz1_plus_vbuc1 + // [16] print_person::$4 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_INITIALS -- pbuz1=pbuz1_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_INITIALS clc adc.z __4 diff --git a/src/test/ref/struct-ptr-23.sym b/src/test/ref/struct-ptr-23.sym index e96a14706..e7ae658dc 100644 --- a/src/test/ref/struct-ptr-23.sym +++ b/src/test/ref/struct-ptr-23.sym @@ -1,24 +1,24 @@ -constant byte OFFSET_STRUCT_PERSON_INITIALS = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = 5 -byte idx -byte idx#16 reg byte x 8.0 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 16.5 -byte idx#5 reg byte x 11.0 -byte idx#6 reg byte x 11.0 -byte idx#7 reg byte x 16.5 +__constant char OFFSET_STRUCT_PERSON_INITIALS = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = 5 +char idx +char idx#16 // reg byte x 8.0 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 16.5 +char idx#5 // reg byte x 11.0 +char idx#6 // reg byte x 11.0 +char idx#7 // reg byte x 16.5 void main() -struct Person* main::person -constant struct Person* main::person#1 person = persons+SIZEOF_STRUCT_PERSON -constant struct Person* persons[] = { { id: 1, initials: "jgr" }, { id: 8, initials: "hbg" } } -void print_person(struct Person* print_person::person) -byte~ print_person::$0 reg byte a 22.0 -byte*~ print_person::$3 zp[2]:4 22.0 -byte*~ print_person::$4 zp[2]:2 22.0 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +struct Person *main::person +__constant struct Person *main::person#1 = persons+SIZEOF_STRUCT_PERSON // person +__constant struct Person persons[] = { { id: 1, initials: "jgr" }, { id: 8, initials: "hbg" } } +void print_person(struct Person *person) +char print_person::$0 // reg byte a 22.0 +char *print_person::$3 // zp[2]:4 22.0 +char *print_person::$4 // zp[2]:2 22.0 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 print_person::$4 ] reg byte x [ idx#16 idx#17 ] diff --git a/src/test/ref/struct-ptr-24.asm b/src/test/ref/struct-ptr-24.asm index c44cf9279..e75354748 100644 --- a/src/test/ref/struct-ptr-24.asm +++ b/src/test/ref/struct-ptr-24.asm @@ -38,7 +38,7 @@ main: { !: jmp __b1 } -// PrintName(struct fileentry* zp(2) file) +// void PrintName(__zp(2) struct fileentry *file) PrintName: { .label file = 2 // if (file == dir) diff --git a/src/test/ref/struct-ptr-24.cfg b/src/test/ref/struct-ptr-24.cfg index 40b39e936..5ef88e1bc 100644 --- a/src/test/ref/struct-ptr-24.cfg +++ b/src/test/ref/struct-ptr-24.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::file#2 = phi( main/(struct fileentry*) 0, main::@3/main::file#1 ) + [1] main::file#2 = phi( main/(struct fileentry *) 0, main::@3/main::file#1 ) [2] if(main::file#2!=filesEnd) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 @@ -12,18 +12,18 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] PrintName::file#0 = main::file#2 - [5] call PrintName + [5] call PrintName to:main::@3 main::@3: scope:[main] from main::@2 [6] main::file#1 = main::file#2 + SIZEOF_STRUCT_FILEENTRY to:main::@1 -void PrintName(struct fileentry* PrintName::file) +void PrintName(struct fileentry *file) PrintName: scope:[PrintName] from main::@2 [7] if(PrintName::file#0!=dir) goto PrintName::@return to:PrintName::@1 PrintName::@1: scope:[PrintName] from PrintName - [8] *((byte*) 199) = 1 + [8] *((char *) 199) = 1 to:PrintName::@return PrintName::@return: scope:[PrintName] from PrintName PrintName::@1 [9] return diff --git a/src/test/ref/struct-ptr-24.log b/src/test/ref/struct-ptr-24.log index 81f0ba5e1..0ae67111a 100644 --- a/src/test/ref/struct-ptr-24.log +++ b/src/test/ref/struct-ptr-24.log @@ -1,10 +1,10 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - main::file#0 = (struct fileentry*) 0 + main::file#0 = (struct fileentry *) 0 to:main::@1 main::@1: scope:[main] from main main::@3 main::file#2 = phi( main/main::file#0, main::@3/main::file#1 ) @@ -14,7 +14,7 @@ main::@1: scope:[main] from main main::@3 main::@2: scope:[main] from main::@1 main::file#3 = phi( main::@1/main::file#2 ) PrintName::file#0 = main::file#3 - call PrintName + call PrintName to:main::@3 main::@3: scope:[main] from main::@2 main::file#4 = phi( main::@2/main::file#3 ) @@ -24,7 +24,7 @@ main::@return: scope:[main] from main::@1 return to:@return -void PrintName(struct fileentry* PrintName::file) +void PrintName(struct fileentry *file) PrintName: scope:[PrintName] from main::@2 PrintName::file#1 = phi( main::@2/PrintName::file#0 ) PrintName::$0 = PrintName::file#1 == dir @@ -32,7 +32,7 @@ PrintName: scope:[PrintName] from main::@2 if(PrintName::$1) goto PrintName::@return to:PrintName::@1 PrintName::@1: scope:[PrintName] from PrintName - *((byte*)$c7) = 1 + *((char *)$c7) = 1 to:PrintName::@return PrintName::@return: scope:[PrintName] from PrintName PrintName::@1 return @@ -44,7 +44,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -53,33 +53,33 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -void PrintName(struct fileentry* PrintName::file) -bool~ PrintName::$0 -bool~ PrintName::$1 -struct fileentry* PrintName::file -struct fileentry* PrintName::file#0 -struct fileentry* PrintName::file#1 -constant byte SIZEOF_STRUCT_FILEENTRY = 2 +void PrintName(struct fileentry *file) +bool PrintName::$0 +bool PrintName::$1 +struct fileentry *PrintName::file +struct fileentry *PrintName::file#0 +struct fileentry *PrintName::file#1 +__constant char SIZEOF_STRUCT_FILEENTRY = 2 void __start() -constant struct fileentry* dir = (struct fileentry*) 0 -constant struct fileentry* filesEnd = (struct fileentry*) 0 +__constant struct fileentry *dir = (struct fileentry *) 0 +__constant struct fileentry *filesEnd = (struct fileentry *) 0 void main() -bool~ main::$0 -struct fileentry* main::file -struct fileentry* main::file#0 -struct fileentry* main::file#1 -struct fileentry* main::file#2 -struct fileentry* main::file#3 -struct fileentry* main::file#4 +bool main::$0 +struct fileentry *main::file +struct fileentry *main::file#0 +struct fileentry *main::file#1 +struct fileentry *main::file#2 +struct fileentry *main::file#3 +struct fileentry *main::file#4 -Adding number conversion cast (unumber) 1 in *((byte*)$c7) = 1 +Adding number conversion cast (unumber) 1 in *((char *)$c7) = 1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)$c7) = (unumber)1 +Inlining cast *((char *)$c7) = (unumber)1 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 1 -Simplifying constant pointer cast (byte*) 199 +Simplifying constant pointer cast (char *) 199 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [12] PrintName::$1 = PrintName::file#1 != dir from [11] PrintName::$0 = PrintName::file#1 == dir Successful SSA optimization Pass2UnaryNotSimplification @@ -90,7 +90,7 @@ Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$0 [3] if(main::file#2!=filesEnd) goto main::@2 Simple Condition PrintName::$1 [10] if(PrintName::file#0!=dir) goto PrintName::@return Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::file#0 = (struct fileentry*) 0 +Constant main::file#0 = (struct fileentry *) 0 Successful SSA optimization Pass2ConstantIdentification Removing unused procedure __start Removing unused procedure block __start @@ -100,7 +100,7 @@ Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::file#0 -Constant inlined main::file#0 = (struct fileentry*) 0 +Constant inlined main::file#0 = (struct fileentry *) 0 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main CALL GRAPH @@ -118,7 +118,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@3 - [1] main::file#2 = phi( main/(struct fileentry*) 0, main::@3/main::file#1 ) + [1] main::file#2 = phi( main/(struct fileentry *) 0, main::@3/main::file#1 ) [2] if(main::file#2!=filesEnd) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 @@ -126,18 +126,18 @@ main::@return: scope:[main] from main::@1 to:@return main::@2: scope:[main] from main::@1 [4] PrintName::file#0 = main::file#2 - [5] call PrintName + [5] call PrintName to:main::@3 main::@3: scope:[main] from main::@2 [6] main::file#1 = main::file#2 + SIZEOF_STRUCT_FILEENTRY to:main::@1 -void PrintName(struct fileentry* PrintName::file) +void PrintName(struct fileentry *file) PrintName: scope:[PrintName] from main::@2 [7] if(PrintName::file#0!=dir) goto PrintName::@return to:PrintName::@1 PrintName::@1: scope:[PrintName] from PrintName - [8] *((byte*) 199) = 1 + [8] *((char *) 199) = 1 to:PrintName::@return PrintName::@return: scope:[PrintName] from PrintName PrintName::@1 [9] return @@ -145,13 +145,13 @@ PrintName::@return: scope:[PrintName] from PrintName PrintName::@1 VARIABLE REGISTER WEIGHTS -void PrintName(struct fileentry* PrintName::file) -struct fileentry* PrintName::file -struct fileentry* PrintName::file#0 112.0 +void PrintName(struct fileentry *file) +struct fileentry *PrintName::file +struct fileentry *PrintName::file#0 // 112.0 void main() -struct fileentry* main::file -struct fileentry* main::file#1 22.0 -struct fileentry* main::file#2 11.0 +struct fileentry *main::file +struct fileentry *main::file#1 // 22.0 +struct fileentry *main::file#2 // 11.0 Initial phi equivalence classes [ main::file#2 main::file#1 ] @@ -166,7 +166,7 @@ Statement [2] if(main::file#2!=filesEnd) goto main::@2 [ main::file#2 ] ( [ mai Statement [4] PrintName::file#0 = main::file#2 [ main::file#2 PrintName::file#0 ] ( [ main::file#2 PrintName::file#0 ] { { PrintName::file#0 = main::file#2 } } ) always clobbers reg byte a Statement [6] main::file#1 = main::file#2 + SIZEOF_STRUCT_FILEENTRY [ main::file#1 ] ( [ main::file#1 ] { } ) always clobbers reg byte a Statement [7] if(PrintName::file#0!=dir) goto PrintName::@return [ ] ( PrintName:5 [ main::file#2 ] { { PrintName::file#0 = main::file#2 } } ) always clobbers reg byte a -Statement [8] *((byte*) 199) = 1 [ ] ( PrintName:5 [ main::file#2 ] { { PrintName::file#0 = main::file#2 } } ) always clobbers reg byte a +Statement [8] *((char *) 199) = 1 [ ] ( PrintName:5 [ main::file#2 ] { { PrintName::file#0 = main::file#2 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::file#2 main::file#1 ] : zp[2]:2 , Potential registers zp[2]:4 [ PrintName::file#0 ] : zp[2]:4 , @@ -203,7 +203,7 @@ main: { .label file = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::file#2 = (struct fileentry*) 0 [phi:main->main::@1#0] -- pssz1=pssc1 + // [1] phi main::file#2 = (struct fileentry *) 0 [phi:main->main::@1#0] -- pssz1=pssc1 lda #<0 sta.z file lda #>0 @@ -226,7 +226,7 @@ main: { // main::@2 __b2: // [4] PrintName::file#0 = main::file#2 - // [5] call PrintName + // [5] call PrintName jsr PrintName jmp __b3 // main::@3 @@ -245,7 +245,7 @@ main: { jmp __b1 } // PrintName -// PrintName(struct fileentry* zp(2) file) +// void PrintName(__zp(2) struct fileentry *file) PrintName: { .label file = 2 // [7] if(PrintName::file#0!=dir) goto PrintName::@return -- pssz1_neq_pssc1_then_la1 @@ -258,7 +258,7 @@ PrintName: { jmp __b1 // PrintName::@1 __b1: - // [8] *((byte*) 199) = 1 -- _deref_pbuc1=vbuc2 + // [8] *((char *) 199) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta $c7 jmp __breturn @@ -286,16 +286,16 @@ Removing instruction __b1: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -void PrintName(struct fileentry* PrintName::file) -struct fileentry* PrintName::file -struct fileentry* PrintName::file#0 file zp[2]:2 112.0 -constant byte SIZEOF_STRUCT_FILEENTRY = 2 -constant struct fileentry* dir = (struct fileentry*) 0 -constant struct fileentry* filesEnd = (struct fileentry*) 0 +void PrintName(struct fileentry *file) +struct fileentry *PrintName::file +struct fileentry *PrintName::file#0 // file zp[2]:2 112.0 +__constant char SIZEOF_STRUCT_FILEENTRY = 2 +__constant struct fileentry *dir = (struct fileentry *) 0 +__constant struct fileentry *filesEnd = (struct fileentry *) 0 void main() -struct fileentry* main::file -struct fileentry* main::file#1 file zp[2]:2 22.0 -struct fileentry* main::file#2 file zp[2]:2 11.0 +struct fileentry *main::file +struct fileentry *main::file#1 // file zp[2]:2 22.0 +struct fileentry *main::file#2 // file zp[2]:2 11.0 zp[2]:2 [ main::file#2 main::file#1 PrintName::file#0 ] @@ -322,7 +322,7 @@ Score: 528 main: { .label file = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::file#2 = (struct fileentry*) 0 [phi:main->main::@1#0] -- pssz1=pssc1 + // [1] phi main::file#2 = (struct fileentry *) 0 [phi:main->main::@1#0] -- pssz1=pssc1 lda #<0 sta.z file sta.z file+1 @@ -344,7 +344,7 @@ main: { __b2: // PrintName(file) // [4] PrintName::file#0 = main::file#2 - // [5] call PrintName + // [5] call PrintName jsr PrintName // main::@3 // ++file; @@ -361,7 +361,7 @@ main: { jmp __b1 } // PrintName -// PrintName(struct fileentry* zp(2) file) +// void PrintName(__zp(2) struct fileentry *file) PrintName: { .label file = 2 // if (file == dir) @@ -374,7 +374,7 @@ PrintName: { bne __breturn // PrintName::@1 // *(BYTE *)0xC7 = 1 - // [8] *((byte*) 199) = 1 -- _deref_pbuc1=vbuc2 + // [8] *((char *) 199) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta $c7 // PrintName::@return diff --git a/src/test/ref/struct-ptr-24.sym b/src/test/ref/struct-ptr-24.sym index 6e7d782f2..3cff4fea0 100644 --- a/src/test/ref/struct-ptr-24.sym +++ b/src/test/ref/struct-ptr-24.sym @@ -1,12 +1,12 @@ -void PrintName(struct fileentry* PrintName::file) -struct fileentry* PrintName::file -struct fileentry* PrintName::file#0 file zp[2]:2 112.0 -constant byte SIZEOF_STRUCT_FILEENTRY = 2 -constant struct fileentry* dir = (struct fileentry*) 0 -constant struct fileentry* filesEnd = (struct fileentry*) 0 +void PrintName(struct fileentry *file) +struct fileentry *PrintName::file +struct fileentry *PrintName::file#0 // file zp[2]:2 112.0 +__constant char SIZEOF_STRUCT_FILEENTRY = 2 +__constant struct fileentry *dir = (struct fileentry *) 0 +__constant struct fileentry *filesEnd = (struct fileentry *) 0 void main() -struct fileentry* main::file -struct fileentry* main::file#1 file zp[2]:2 22.0 -struct fileentry* main::file#2 file zp[2]:2 11.0 +struct fileentry *main::file +struct fileentry *main::file#1 // file zp[2]:2 22.0 +struct fileentry *main::file#2 // file zp[2]:2 11.0 zp[2]:2 [ main::file#2 main::file#1 PrintName::file#0 ] diff --git a/src/test/ref/struct-ptr-25.cfg b/src/test/ref/struct-ptr-25.cfg index c6ae6e90d..a85c13229 100644 --- a/src/test/ref/struct-ptr-25.cfg +++ b/src/test/ref/struct-ptr-25.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main - [1] *SCREEN = *(--(byte*) 4112) + [1] *SCREEN = *(--(char *) 4112) to:main::@return main::@return: scope:[main] from main::@1 [2] return diff --git a/src/test/ref/struct-ptr-25.log b/src/test/ref/struct-ptr-25.log index 7dab44b0d..dce3d9ec4 100644 --- a/src/test/ref/struct-ptr-25.log +++ b/src/test/ref/struct-ptr-25.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -55,13 +55,13 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - fileCur#3 = (byte*)$1005 - fileTop#2 = (byte*)$1010 + fileCur#3 = (char *)$1005 + fileTop#2 = (char *)$1010 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 fileCur#15 = phi( __start::__init1/fileCur#3 ) fileTop#12 = phi( __start::__init1/fileTop#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 fileCur#11 = phi( __start::@1/fileCur#2 ) @@ -78,62 +78,62 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte* file = (byte*)$1000 -byte* fileCur -byte* fileCur#0 -byte* fileCur#1 -byte* fileCur#10 -byte* fileCur#11 -byte* fileCur#12 -byte* fileCur#13 -byte* fileCur#14 -byte* fileCur#15 -byte* fileCur#2 -byte* fileCur#3 -byte* fileCur#4 -byte* fileCur#5 -byte* fileCur#6 -byte* fileCur#7 -byte* fileCur#8 -byte* fileCur#9 -byte* fileTop -byte* fileTop#0 -byte* fileTop#1 -byte* fileTop#10 -byte* fileTop#11 -byte* fileTop#12 -byte* fileTop#13 -byte* fileTop#14 -byte* fileTop#15 -byte* fileTop#2 -byte* fileTop#3 -byte* fileTop#4 -byte* fileTop#5 -byte* fileTop#6 -byte* fileTop#7 -byte* fileTop#8 -byte* fileTop#9 -constant byte* filesEnd = (byte*)$1010 +__constant char *file = (char *)$1000 +char *fileCur +char *fileCur#0 +char *fileCur#1 +char *fileCur#10 +char *fileCur#11 +char *fileCur#12 +char *fileCur#13 +char *fileCur#14 +char *fileCur#15 +char *fileCur#2 +char *fileCur#3 +char *fileCur#4 +char *fileCur#5 +char *fileCur#6 +char *fileCur#7 +char *fileCur#8 +char *fileCur#9 +char *fileTop +char *fileTop#0 +char *fileTop#1 +char *fileTop#10 +char *fileTop#11 +char *fileTop#12 +char *fileTop#13 +char *fileTop#14 +char *fileTop#15 +char *fileTop#2 +char *fileTop#3 +char *fileTop#4 +char *fileTop#5 +char *fileTop#6 +char *fileTop#7 +char *fileTop#8 +char *fileTop#9 +__constant char *filesEnd = (char *)$1010 void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -bool~ main::$5 +bool main::$0 +bool main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +bool main::$5 Adding number conversion cast (unumber) 0 in SCREEN[0] = *fileCur#9 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 4112 -Simplifying constant pointer cast (byte*) 4096 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 4112 +Simplifying constant pointer cast (char *) 4096 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 4101 -Simplifying constant pointer cast (byte*) 4112 +Simplifying constant pointer cast (char *) 4101 +Simplifying constant pointer cast (char *) 4112 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [2] main::$1 = fileTop#5 != filesEnd from [1] main::$0 = fileTop#5 == filesEnd Inversing boolean not [6] main::$3 = file > fileCur#6 from [5] main::$2 = file <= fileCur#6 @@ -163,8 +163,8 @@ Simple Condition main::$1 [2] if(fileTop#12!=filesEnd) goto main::@1 Simple Condition main::$3 [5] if(file>fileCur#15) goto main::@2 Simple Condition main::$5 [9] if(fileCur#7>=fileTop#1) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant fileCur#15 = (byte*) 4101 -Constant fileTop#12 = (byte*) 4112 +Constant fileCur#15 = (char *) 4101 +Constant fileTop#12 = (char *) 4112 Successful SSA optimization Pass2ConstantIdentification Removing PHI-reference to removed block (main) in block main::@1 if() condition always false - eliminating [2] if(fileTop#12!=filesEnd) goto main::@1 @@ -203,8 +203,8 @@ Identical Phi Values fileCur#10 fileTop#0 Successful SSA optimization Pass2IdenticalPhiElimination Inlining constant with different constant siblings fileTop#12 Inlining constant with different constant siblings fileTop#0 -Constant inlined fileTop#12 = (byte*) 4112 -Constant inlined fileTop#0 = --(byte*) 4112 +Constant inlined fileTop#12 = (char *) 4112 +Constant inlined fileTop#0 = --(char *) 4112 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of main Adding NOP phi() at start of main::@4 @@ -231,7 +231,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main - [1] *SCREEN = *(--(byte*) 4112) + [1] *SCREEN = *(--(char *) 4112) to:main::@return main::@return: scope:[main] from main::@1 [2] return @@ -239,14 +239,14 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte* fileCur -byte* fileTop +char *fileCur +char *fileTop void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] *SCREEN = *(--(byte*) 4112) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *(--(char *) 4112) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -274,7 +274,7 @@ main: { jmp __b1 // main::@1 __b1: - // [1] *SCREEN = *(--(byte*) 4112) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *(--(char *) 4112) -- _deref_pbuc1=_deref_pbuc2 lda $1010-1 sta SCREEN jmp __breturn @@ -294,9 +294,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte* fileCur -byte* fileTop +__constant char * const SCREEN = (char *) 1024 +char *fileCur +char *fileTop void main() @@ -321,7 +321,7 @@ Score: 14 main: { // main::@1 // SCREEN[0] = *fileCur - // [1] *SCREEN = *(--(byte*) 4112) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *(--(char *) 4112) -- _deref_pbuc1=_deref_pbuc2 lda $1010-1 sta SCREEN // main::@return diff --git a/src/test/ref/struct-ptr-25.sym b/src/test/ref/struct-ptr-25.sym index 994b1dc16..bcafb00c0 100644 --- a/src/test/ref/struct-ptr-25.sym +++ b/src/test/ref/struct-ptr-25.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -byte* fileCur -byte* fileTop +__constant char * const SCREEN = (char *) 1024 +char *fileCur +char *fileTop void main() diff --git a/src/test/ref/struct-ptr-26.asm b/src/test/ref/struct-ptr-26.asm index b8cd0c721..c16f9c49a 100644 --- a/src/test/ref/struct-ptr-26.asm +++ b/src/test/ref/struct-ptr-26.asm @@ -38,7 +38,7 @@ main: { rts } // Print a unsigned int as HEX -// print_uint(word zp(4) w) +// void print_uint(__zp(4) unsigned int w) print_uint: { .label w = 4 // print_uchar(BYTE1(w)) @@ -55,7 +55,7 @@ print_uint: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -78,7 +78,7 @@ print_uchar: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/struct-ptr-26.cfg b/src/test/ref/struct-ptr-26.cfg index cda5620bb..fd27b74f5 100644 --- a/src/test/ref/struct-ptr-26.cfg +++ b/src/test/ref/struct-ptr-26.cfg @@ -1,46 +1,46 @@ void main() main: scope:[main] from - [0] *((byte**)main::file#1) = (byte*) 4 - [1] main::uSize#1 = ((word*)*((byte**)main::file#1))[$1e] + [0] *((char **)main::file#1) = (char *) 4 + [1] main::uSize#1 = ((unsigned int *)*((char **)main::file#1))[$1e] [2] print_uint::w#0 = main::uSize#1 - [3] call print_uint + [3] call print_uint to:main::@return main::@return: scope:[main] from main [4] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main [5] print_uchar::b#0 = byte1 print_uint::w#0 - [6] call print_uchar + [6] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [7] print_uchar::b#1 = byte0 print_uint::w#0 - [8] call print_uchar + [8] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [9] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [10] print_char_cursor#26 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#20 ) [10] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [11] print_uchar::$0 = print_uchar::b#2 >> 4 [12] print_char::ch#0 = print_hextab[print_uchar::$0] - [13] call print_char + [13] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [14] print_uchar::$2 = print_uchar::b#2 & $f [15] print_char::ch#1 = print_hextab[print_uchar::$2] - [16] call print_char + [16] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [17] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [18] print_char_cursor#19 = phi( print_uchar/print_char_cursor#26, print_uchar::@1/print_char_cursor#20 ) [18] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) diff --git a/src/test/ref/struct-ptr-26.log b/src/test/ref/struct-ptr-26.log index 03594367a..7603856c1 100644 --- a/src/test/ref/struct-ptr-26.log +++ b/src/test/ref/struct-ptr-26.log @@ -1,14 +1,14 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main print_char_cursor#25 = phi( main/print_char_cursor#27 ) print_uint::w#1 = phi( main/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -16,7 +16,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#0 = print_char_cursor#13 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#14 = phi( print_uint::@1/print_char_cursor#5 ) @@ -28,13 +28,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#26 = phi( print_uint/print_char_cursor#25, print_uint::@1/print_char_cursor#0 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -42,7 +42,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#3 = print_char_cursor#16 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#17 = phi( print_uchar::@1/print_char_cursor#7 ) @@ -54,7 +54,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 print_char_cursor#19 = phi( print_uchar/print_char_cursor#26, print_uchar::@1/print_char_cursor#3 ) print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -70,19 +70,19 @@ print_char::@return: scope:[print_char] from print_char void main() main: scope:[main] from __start::@1 print_char_cursor#27 = phi( __start::@1/print_char_cursor#28 ) - main::file#0 = (struct fileentry*) 0 + main::file#0 = (struct fileentry *) 0 main::uSize#0 = 0 - main::file#1 = (struct fileentry*)$4000 - main::$4 = (byte**)main::file#1 + main::file#1 = (struct fileentry *)$4000 + main::$4 = (char **)main::file#1 main::$2 = main::$4 + OFFSET_STRUCT_FILEENTRY_BUFEDIT - *main::$2 = (byte*)4 - main::$5 = (byte**)main::file#1 + *main::$2 = (char *)4 + main::$5 = (char **)main::file#1 main::$3 = main::$5 + OFFSET_STRUCT_FILEENTRY_BUFEDIT main::$0 = *main::$3 + $1e - main::ptrw#0 = (word*)main::$0 + main::ptrw#0 = (unsigned int *)main::$0 main::uSize#1 = *main::ptrw#0 print_uint::w#0 = main::uSize#1 - call print_uint + call print_uint to:main::@1 main::@1: scope:[main] from main print_char_cursor#21 = phi( main/print_char_cursor#2 ) @@ -98,7 +98,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#0 = print_screen#0 print_char_cursor#10 = print_line_cursor#0 to:__start::@1 @@ -106,7 +106,7 @@ __start::@1: scope:[__start] from __start::__init1 print_line_cursor#4 = phi( __start::__init1/print_line_cursor#0 ) print_screen#4 = phi( __start::__init1/print_screen#0 ) print_char_cursor#28 = phi( __start::__init1/print_char_cursor#10 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_line_cursor#3 = phi( __start::@1/print_line_cursor#4 ) @@ -125,89 +125,89 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_FILEENTRY_BUFEDIT = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char OFFSET_STRUCT_FILEENTRY_BUFEDIT = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void main() -byte*~ main::$0 -byte**~ main::$2 -byte**~ main::$3 -byte**~ main::$4 -byte**~ main::$5 -struct fileentry* main::file -struct fileentry* main::file#0 -struct fileentry* main::file#1 -word* main::ptrw -word* main::ptrw#0 -word main::uSize -word main::uSize#0 -word main::uSize#1 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#3 -byte* print_char_cursor#4 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#2 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 +char *main::$0 +char **main::$2 +char **main::$3 +char **main::$4 +char **main::$5 +struct fileentry *main::file +struct fileentry *main::file#0 +struct fileentry *main::file#1 +unsigned int *main::ptrw +unsigned int *main::ptrw#0 +unsigned int main::uSize +unsigned int main::uSize#0 +unsigned int main::uSize#1 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#3 +char *print_char_cursor#4 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#2 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#2 >> 4 Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#3 & $f @@ -216,16 +216,16 @@ Adding number conversion cast (unumber) $1e in main::$0 = *main::$3 + $1e Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Simplifying constant integer cast $f -Simplifying constant pointer cast (struct fileentry*) 16384 -Simplifying constant pointer cast (byte*) 4 +Simplifying constant pointer cast (struct fileentry *) 16384 +Simplifying constant pointer cast (char *) 4 Simplifying constant integer cast $1e -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $1e +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $1e Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Alias print_uchar::b#0 = print_uint::$0 Alias print_uint::w#1 = print_uint::w#2 Alias print_char_cursor#0 = print_char_cursor#13 @@ -249,27 +249,27 @@ Identical Phi Values print_char_cursor#27 print_screen#0 Identical Phi Values print_char_cursor#21 print_char_cursor#1 Identical Phi Values print_char_cursor#11 print_char_cursor#21 Successful SSA optimization Pass2IdenticalPhiElimination -Constant main::file#0 = (struct fileentry*) 0 +Constant main::file#0 = (struct fileentry *) 0 Constant main::uSize#0 = 0 -Constant main::file#1 = (struct fileentry*) 16384 -Constant print_screen#0 = (byte*) 1024 +Constant main::file#1 = (struct fileentry *) 16384 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant main::$4 = (byte**)main::file#1 -Constant main::$5 = (byte**)main::file#1 +Constant main::$4 = (char **)main::file#1 +Constant main::$5 = (char **)main::file#1 Successful SSA optimization Pass2ConstantIdentification -Converting *(pointer+n) to pointer[n] [28] *main::$2 = (byte*) 4 -- main::$4[OFFSET_STRUCT_FILEENTRY_BUFEDIT] +Converting *(pointer+n) to pointer[n] [28] *main::$2 = (char *) 4 -- main::$4[OFFSET_STRUCT_FILEENTRY_BUFEDIT] Converting *(pointer+n) to pointer[n] [31] main::$0 = *main::$3 + $1e -- main::$5[OFFSET_STRUCT_FILEENTRY_BUFEDIT] -Converting *(pointer+n) to pointer[n] [33] main::uSize#1 = *main::ptrw#0 -- ((word*)main::$5[OFFSET_STRUCT_FILEENTRY_BUFEDIT])[$1e] +Converting *(pointer+n) to pointer[n] [33] main::uSize#1 = *main::ptrw#0 -- ((unsigned int *)main::$5[OFFSET_STRUCT_FILEENTRY_BUFEDIT])[$1e] Successful SSA optimization Pass2InlineDerefIdx Simplifying expression containing zero main::$4 in [27] main::$2 = main::$4 + OFFSET_STRUCT_FILEENTRY_BUFEDIT -Simplifying expression containing zero main::$4 in [28] main::$4[OFFSET_STRUCT_FILEENTRY_BUFEDIT] = (byte*) 4 +Simplifying expression containing zero main::$4 in [28] main::$4[OFFSET_STRUCT_FILEENTRY_BUFEDIT] = (char *) 4 Simplifying expression containing zero main::$5 in [30] main::$3 = main::$5 + OFFSET_STRUCT_FILEENTRY_BUFEDIT Simplifying expression containing zero main::$5 in [31] main::$0 = main::$5[OFFSET_STRUCT_FILEENTRY_BUFEDIT] + $1e -Simplifying expression containing zero main::$5 in [33] main::uSize#1 = ((word*)main::$5[OFFSET_STRUCT_FILEENTRY_BUFEDIT])[$1e] +Simplifying expression containing zero main::$5 in [33] main::uSize#1 = ((unsigned int *)main::$5[OFFSET_STRUCT_FILEENTRY_BUFEDIT])[$1e] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable main::$2 and assignment [17] main::$2 = main::$4 Eliminating unused variable main::$3 and assignment [19] main::$3 = main::$5 -Eliminating unused variable main::ptrw#0 and assignment [21] main::ptrw#0 = (word*)main::$0 +Eliminating unused variable main::ptrw#0 and assignment [21] main::ptrw#0 = (unsigned int *)main::$0 Eliminating unused constant main::file#0 Eliminating unused constant main::uSize#0 Eliminating unused constant OFFSET_STRUCT_FILEENTRY_BUFEDIT @@ -283,13 +283,13 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$5 = (byte**)main::file#1 -Constant inlined main::$4 = (byte**)main::file#1 +Constant inlined main::$5 = (char **)main::file#1 +Constant inlined main::$4 = (char **)main::file#1 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@1 Adding NOP phi() at start of print_uint::@2 @@ -316,46 +316,46 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte**)main::file#1) = (byte*) 4 - [1] main::uSize#1 = ((word*)*((byte**)main::file#1))[$1e] + [0] *((char **)main::file#1) = (char *) 4 + [1] main::uSize#1 = ((unsigned int *)*((char **)main::file#1))[$1e] [2] print_uint::w#0 = main::uSize#1 - [3] call print_uint + [3] call print_uint to:main::@return main::@return: scope:[main] from main [4] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main [5] print_uchar::b#0 = byte1 print_uint::w#0 - [6] call print_uchar + [6] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [7] print_uchar::b#1 = byte0 print_uint::w#0 - [8] call print_uchar + [8] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [9] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [10] print_char_cursor#26 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#20 ) [10] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [11] print_uchar::$0 = print_uchar::b#2 >> 4 [12] print_char::ch#0 = print_hextab[print_uchar::$0] - [13] call print_char + [13] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [14] print_uchar::$2 = print_uchar::b#2 & $f [15] print_char::ch#1 = print_hextab[print_uchar::$2] - [16] call print_char + [16] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [17] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_uchar print_uchar::@1 [18] print_char_cursor#19 = phi( print_uchar/print_char_cursor#26, print_uchar::@1/print_char_cursor#20 ) [18] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -369,31 +369,31 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void main() -struct fileentry* main::file -word* main::ptrw -word main::uSize -word main::uSize#1 4.0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 202.0 -byte print_char::ch#1 202.0 -byte print_char::ch#2 1203.0 -byte* print_char_cursor -byte* print_char_cursor#19 1102.0 -byte* print_char_cursor#20 123.66666666666667 -byte* print_char_cursor#26 37.33333333333333 -byte* print_line_cursor -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 202.0 -byte~ print_uchar::$2 202.0 -byte print_uchar::b -byte print_uchar::b#0 22.0 -byte print_uchar::b#1 22.0 -byte print_uchar::b#2 56.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 8.0 +struct fileentry *main::file +unsigned int *main::ptrw +unsigned int main::uSize +unsigned int main::uSize#1 // 4.0 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 202.0 +char print_char::ch#1 // 202.0 +char print_char::ch#2 // 1203.0 +char *print_char_cursor +char *print_char_cursor#19 // 1102.0 +char *print_char_cursor#20 // 123.66666666666667 +char *print_char_cursor#26 // 37.33333333333333 +char *print_line_cursor +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 202.0 +char print_uchar::$2 // 202.0 +char print_uchar::b +char print_uchar::b#0 // 22.0 +char print_uchar::b#1 // 22.0 +char print_uchar::b#2 // 56.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 8.0 Initial phi equivalence classes [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] @@ -419,16 +419,16 @@ Allocated zp[2]:8 [ print_uint::w#0 ] Allocated zp[1]:10 [ print_uchar::$0 ] Allocated zp[1]:11 [ print_uchar::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte**)main::file#1) = (byte*) 4 [ ] ( [ ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a -Statement [1] main::uSize#1 = ((word*)*((byte**)main::file#1))[$1e] [ main::uSize#1 ] ( [ main::uSize#1 ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a reg byte y +Statement [0] *((char **)main::file#1) = (char *) 4 [ ] ( [ ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a +Statement [1] main::uSize#1 = ((unsigned int *)*((char **)main::file#1))[$1e] [ main::uSize#1 ] ( [ main::uSize#1 ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a reg byte y Statement [2] print_uint::w#0 = main::uSize#1 [ print_uint::w#0 ] ( [ print_uint::w#0 ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a Statement [11] print_uchar::$0 = print_uchar::b#2 >> 4 [ print_uchar::b#2 print_char_cursor#26 print_uchar::$0 ] ( print_uint:3::print_uchar:6 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#26 print_uchar::$0 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#19 = print_char_cursor#26 } } print_uint:3::print_uchar:8 [ print_uchar::b#2 print_char_cursor#26 print_uchar::$0 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#19 = print_char_cursor#26 print_char_cursor#20 } { print_char::ch#0 = print_char::ch#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] Statement [14] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#20 print_uchar::$2 ] ( print_uint:3::print_uchar:6 [ print_uint::w#0 print_char_cursor#20 print_uchar::$2 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#19 = print_char_cursor#20 } } print_uint:3::print_uchar:8 [ print_char_cursor#20 print_uchar::$2 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#19 = print_char_cursor#26 print_char_cursor#20 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a Statement [19] *print_char_cursor#19 = print_char::ch#2 [ print_char_cursor#19 ] ( print_uint:3::print_uchar:6::print_char:13 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#19 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#19 = print_char_cursor#26 } } print_uint:3::print_uchar:8::print_char:13 [ print_uchar::b#2 print_char_cursor#19 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#19 = print_char_cursor#26 print_char_cursor#20 } { print_char::ch#0 = print_char::ch#2 } } print_uint:3::print_uchar:6::print_char:16 [ print_uint::w#0 print_char_cursor#19 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#19 = print_char_cursor#20 } } print_uint:3::print_uchar:8::print_char:16 [ print_char_cursor#19 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#19 = print_char_cursor#26 print_char_cursor#20 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] -Statement [0] *((byte**)main::file#1) = (byte*) 4 [ ] ( [ ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a -Statement [1] main::uSize#1 = ((word*)*((byte**)main::file#1))[$1e] [ main::uSize#1 ] ( [ main::uSize#1 ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a reg byte y +Statement [0] *((char **)main::file#1) = (char *) 4 [ ] ( [ ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a +Statement [1] main::uSize#1 = ((unsigned int *)*((char **)main::file#1))[$1e] [ main::uSize#1 ] ( [ main::uSize#1 ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a reg byte y Statement [2] print_uint::w#0 = main::uSize#1 [ print_uint::w#0 ] ( [ print_uint::w#0 ] { { print_uint::w#0 = main::uSize#1 } } ) always clobbers reg byte a Statement [11] print_uchar::$0 = print_uchar::b#2 >> 4 [ print_uchar::b#2 print_char_cursor#26 print_uchar::$0 ] ( print_uint:3::print_uchar:6 [ print_uint::w#0 print_uchar::b#2 print_char_cursor#26 print_uchar::$0 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#0 = print_char::ch#2 } { print_char_cursor#19 = print_char_cursor#26 } } print_uint:3::print_uchar:8 [ print_uchar::b#2 print_char_cursor#26 print_uchar::$0 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#19 = print_char_cursor#26 print_char_cursor#20 } { print_char::ch#0 = print_char::ch#2 } } ) always clobbers reg byte a Statement [14] print_uchar::$2 = print_uchar::b#2 & $f [ print_char_cursor#20 print_uchar::$2 ] ( print_uint:3::print_uchar:6 [ print_uint::w#0 print_char_cursor#20 print_uchar::$2 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#1 = print_char::ch#2 } { print_char_cursor#19 = print_char_cursor#20 } } print_uint:3::print_uchar:8 [ print_char_cursor#20 print_uchar::$2 ] { { print_uint::w#0 = main::uSize#1 } { print_uchar::b#1 = print_uchar::b#2 } { print_char_cursor#19 = print_char_cursor#26 print_char_cursor#20 } { print_char::ch#1 = print_char::ch#2 } } ) always clobbers reg byte a @@ -484,12 +484,12 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label file = $4000 .label uSize = 4 - // [0] *((byte**)main::file#1) = (byte*) 4 -- _deref_qbuc1=pbuc2 + // [0] *((char **)main::file#1) = (char *) 4 -- _deref_qbuc1=pbuc2 lda #<4 sta file lda #>4 sta file+1 - // [1] main::uSize#1 = ((word*)*((byte**)main::file#1))[$1e] -- vwuz1=(_deref_qwuc1)_derefidx_vbuc2 + // [1] main::uSize#1 = ((unsigned int *)*((char **)main::file#1))[$1e] -- vwuz1=(_deref_qwuc1)_derefidx_vbuc2 ldy #$1e lda file sta.z $fe @@ -501,7 +501,7 @@ main: { lda ($fe),y sta.z uSize+1 // [2] print_uint::w#0 = main::uSize#1 - // [3] call print_uint + // [3] call print_uint jsr print_uint jmp __breturn // main::@return @@ -511,12 +511,12 @@ main: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(4) w) +// void print_uint(__zp(4) unsigned int w) print_uint: { .label w = 4 // [5] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [6] call print_uchar + // [6] call print_uchar // [10] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [10] phi print_char_cursor#26 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 @@ -531,7 +531,7 @@ print_uint: { __b1: // [7] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [8] call print_uchar + // [8] call print_uchar // [10] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [10] phi print_char_cursor#26 = print_char_cursor#20 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -545,7 +545,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [11] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -556,7 +556,7 @@ print_uchar: { // [12] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [13] call print_char + // [13] call print_char // Table of hexadecimal digits // [18] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -571,7 +571,7 @@ print_uchar: { axs #0 // [15] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [16] call print_char + // [16] call print_char // [18] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [18] phi print_char_cursor#19 = print_char_cursor#20 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -585,7 +585,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [19] *print_char_cursor#19 = print_char::ch#2 -- _deref_pbuz1=vbuaa ldy #0 @@ -626,39 +626,39 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -struct fileentry* main::file -constant struct fileentry* main::file#1 file = (struct fileentry*) 16384 -word* main::ptrw -word main::uSize -word main::uSize#1 uSize zp[2]:4 4.0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 202.0 -byte print_char::ch#1 reg byte a 202.0 -byte print_char::ch#2 reg byte a 1203.0 -byte* print_char_cursor -byte* print_char_cursor#19 print_char_cursor zp[2]:2 1102.0 -byte* print_char_cursor#20 print_char_cursor zp[2]:2 123.66666666666667 -byte* print_char_cursor#26 print_char_cursor zp[2]:2 37.33333333333333 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte x 202.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 22.0 -byte print_uchar::b#1 reg byte x 22.0 -byte print_uchar::b#2 reg byte x 56.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:4 8.0 +struct fileentry *main::file +__constant struct fileentry *main::file#1 = (struct fileentry *) 16384 // file +unsigned int *main::ptrw +unsigned int main::uSize +unsigned int main::uSize#1 // uSize zp[2]:4 4.0 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 202.0 +char print_char::ch#1 // reg byte a 202.0 +char print_char::ch#2 // reg byte a 1203.0 +char *print_char_cursor +char *print_char_cursor#19 // print_char_cursor zp[2]:2 1102.0 +char *print_char_cursor#20 // print_char_cursor zp[2]:2 123.66666666666667 +char *print_char_cursor#26 // print_char_cursor zp[2]:2 37.33333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte x 202.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 22.0 +char print_uchar::b#1 // reg byte x 22.0 +char print_uchar::b#2 // reg byte x 56.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:4 8.0 reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] @@ -694,13 +694,13 @@ main: { .label file = $4000 .label uSize = 4 // file->bufEdit = (BYTE*)4 - // [0] *((byte**)main::file#1) = (byte*) 4 -- _deref_qbuc1=pbuc2 + // [0] *((char **)main::file#1) = (char *) 4 -- _deref_qbuc1=pbuc2 lda #<4 sta file lda #>4 sta file+1 // uSize = *ptrw - // [1] main::uSize#1 = ((word*)*((byte**)main::file#1))[$1e] -- vwuz1=(_deref_qwuc1)_derefidx_vbuc2 + // [1] main::uSize#1 = ((unsigned int *)*((char **)main::file#1))[$1e] -- vwuz1=(_deref_qwuc1)_derefidx_vbuc2 ldy #$1e lda file sta.z $fe @@ -713,7 +713,7 @@ main: { sta.z uSize+1 // print_uint(uSize) // [2] print_uint::w#0 = main::uSize#1 - // [3] call print_uint + // [3] call print_uint jsr print_uint // main::@return // } @@ -722,13 +722,13 @@ main: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(4) w) +// void print_uint(__zp(4) unsigned int w) print_uint: { .label w = 4 // print_uchar(BYTE1(w)) // [5] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [6] call print_uchar + // [6] call print_uchar // [10] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [10] phi print_char_cursor#26 = print_screen#0 [phi:print_uint->print_uchar#0] -- pbuz1=pbuc1 lda #print_uchar] // [10] phi print_char_cursor#26 = print_char_cursor#20 [phi:print_uint::@1->print_uchar#0] -- register_copy // [10] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -753,7 +753,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [11] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -766,7 +766,7 @@ print_uchar: { // [12] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [13] call print_char + // [13] call print_char // Table of hexadecimal digits // [18] phi from print_uchar to print_char [phi:print_uchar->print_char] // [18] phi print_char_cursor#19 = print_char_cursor#26 [phi:print_uchar->print_char#0] -- register_copy @@ -780,7 +780,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [15] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [16] call print_char + // [16] call print_char // [18] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [18] phi print_char_cursor#19 = print_char_cursor#20 [phi:print_uchar::@1->print_char#0] -- register_copy // [18] phi print_char::ch#2 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -792,7 +792,7 @@ print_uchar: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [19] *print_char_cursor#19 = print_char::ch#2 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/struct-ptr-26.sym b/src/test/ref/struct-ptr-26.sym index 18add9355..ab937da98 100644 --- a/src/test/ref/struct-ptr-26.sym +++ b/src/test/ref/struct-ptr-26.sym @@ -1,36 +1,36 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -struct fileentry* main::file -constant struct fileentry* main::file#1 file = (struct fileentry*) 16384 -word* main::ptrw -word main::uSize -word main::uSize#1 uSize zp[2]:4 4.0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 202.0 -byte print_char::ch#1 reg byte a 202.0 -byte print_char::ch#2 reg byte a 1203.0 -byte* print_char_cursor -byte* print_char_cursor#19 print_char_cursor zp[2]:2 1102.0 -byte* print_char_cursor#20 print_char_cursor zp[2]:2 123.66666666666667 -byte* print_char_cursor#26 print_char_cursor zp[2]:2 37.33333333333333 -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 202.0 -byte~ print_uchar::$2 reg byte x 202.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 22.0 -byte print_uchar::b#1 reg byte x 22.0 -byte print_uchar::b#2 reg byte x 56.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:4 8.0 +struct fileentry *main::file +__constant struct fileentry *main::file#1 = (struct fileentry *) 16384 // file +unsigned int *main::ptrw +unsigned int main::uSize +unsigned int main::uSize#1 // uSize zp[2]:4 4.0 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 202.0 +char print_char::ch#1 // reg byte a 202.0 +char print_char::ch#2 // reg byte a 1203.0 +char *print_char_cursor +char *print_char_cursor#19 // print_char_cursor zp[2]:2 1102.0 +char *print_char_cursor#20 // print_char_cursor zp[2]:2 123.66666666666667 +char *print_char_cursor#26 // print_char_cursor zp[2]:2 37.33333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 202.0 +char print_uchar::$2 // reg byte x 202.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 22.0 +char print_uchar::b#1 // reg byte x 22.0 +char print_uchar::b#2 // reg byte x 56.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:4 8.0 reg byte x [ print_uchar::b#2 print_uchar::b#0 print_uchar::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] diff --git a/src/test/ref/struct-ptr-28.asm b/src/test/ref/struct-ptr-28.asm index df37ef8b6..e66c6c369 100644 --- a/src/test/ref/struct-ptr-28.asm +++ b/src/test/ref/struct-ptr-28.asm @@ -46,7 +46,7 @@ main: { // } rts } -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __1 = 4 .label __2 = 6 diff --git a/src/test/ref/struct-ptr-28.cfg b/src/test/ref/struct-ptr-28.cfg index e199bab26..b9c2a1e53 100644 --- a/src/test/ref/struct-ptr-28.cfg +++ b/src/test/ref/struct-ptr-28.cfg @@ -2,21 +2,21 @@ void main() main: scope:[main] from [0] *(&main::jesper) = memcpy(*(&$0), struct Person, SIZEOF_STRUCT_PERSON) - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] *(&main::henriette) = memcpy(*(&$1), struct Person, SIZEOF_STRUCT_PERSON) - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 [5] idx#14 = phi( main/0, main::@1/idx#17 ) [5] print_person::person#2 = phi( main/&main::jesper, main::@1/&main::henriette ) - [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] + [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [7] idx#3 = ++ idx#14 [8] SCREEN[idx#3] = ' ' [9] idx#4 = ++ idx#3 @@ -24,7 +24,7 @@ print_person: scope:[print_person] from main main::@1 print_person::@1: scope:[print_person] from print_person print_person::@2 [10] idx#15 = phi( print_person/idx#4, print_person::@2/idx#5 ) [10] print_person::i#2 = phi( print_person/0, print_person::@2/print_person::i#1 ) - [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 to:print_person::@3 print_person::@3: scope:[print_person] from print_person::@1 @@ -35,7 +35,7 @@ print_person::@return: scope:[print_person] from print_person::@3 [15] return to:@return print_person::@2: scope:[print_person] from print_person::@1 - [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [18] idx#5 = ++ idx#15 [19] print_person::i#1 = ++ print_person::i#2 diff --git a/src/test/ref/struct-ptr-28.log b/src/test/ref/struct-ptr-28.log index 2d0f94912..f661e020b 100644 --- a/src/test/ref/struct-ptr-28.log +++ b/src/test/ref/struct-ptr-28.log @@ -7,7 +7,7 @@ Fixing struct type SIZE_OF struct Person to 17 Fixing struct type SIZE_OF struct Person to 17 Setting struct to load/store in variable affected by address-of main::$0 = call print_person(&main::jesper) Setting struct to load/store in variable affected by address-of main::$1 = call print_person(&main::henriette) -Inlined call call __init +Inlined call call __init Removing C-classic struct-unwound assignment main::jesper = struct-unwound {*(&main::jesper)} Removing C-classic struct-unwound assignment main::henriette = struct-unwound {*(&main::henriette)} @@ -18,14 +18,14 @@ main: scope:[main] from __start::@1 idx#20 = phi( __start::@1/idx#22 ) *(&main::jesper) = memcpy(*(&$0), struct Person, SIZEOF_STRUCT_PERSON) print_person::person#0 = &main::jesper - call print_person + call print_person to:main::@1 main::@1: scope:[main] from main idx#11 = phi( main/idx#7 ) idx#0 = idx#11 *(&main::henriette) = memcpy(*(&$1), struct Person, SIZEOF_STRUCT_PERSON) print_person::person#1 = &main::henriette - call print_person + call print_person to:main::@2 main::@2: scope:[main] from main::@1 idx#12 = phi( main::@1/idx#7 ) @@ -37,11 +37,11 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 idx#14 = phi( main/idx#20, main::@1/idx#0 ) print_person::person#2 = phi( main/print_person::person#0, main::@1/print_person::person#1 ) - print_person::$3 = (byte*)print_person::person#2 + print_person::$3 = (char *)print_person::person#2 print_person::$0 = print_person::$3 + OFFSET_STRUCT_PERSON_ID SCREEN[idx#14] = DIGIT[*print_person::$0] idx#3 = ++ idx#14 @@ -53,7 +53,7 @@ print_person::@1: scope:[print_person] from print_person print_person::@2 idx#21 = phi( print_person/idx#4, print_person::@2/idx#5 ) print_person::i#2 = phi( print_person/print_person::i#0, print_person::@2/print_person::i#1 ) print_person::person#3 = phi( print_person/print_person::person#2, print_person::@2/print_person::person#4 ) - print_person::$4 = (byte*)print_person::person#3 + print_person::$4 = (char *)print_person::person#3 print_person::$1 = print_person::$4 + OFFSET_STRUCT_PERSON_NAME print_person::$6 = 0 != print_person::$1[print_person::i#2] if(print_person::$6) goto print_person::@2 @@ -62,7 +62,7 @@ print_person::@2: scope:[print_person] from print_person::@1 idx#15 = phi( print_person::@1/idx#21 ) print_person::i#3 = phi( print_person::@1/print_person::i#2 ) print_person::person#4 = phi( print_person::@1/print_person::person#3 ) - print_person::$5 = (byte*)print_person::person#4 + print_person::$5 = (char *)print_person::person#4 print_person::$2 = print_person::$5 + OFFSET_STRUCT_PERSON_NAME SCREEN[idx#15] = print_person::$2[print_person::i#3] idx#5 = ++ idx#15 @@ -87,7 +87,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#22 = phi( __start::__init1/idx#8 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#18 = phi( __start::@1/idx#2 ) @@ -100,67 +100,67 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct Person $0 = { id: 4, name: "jesper" } -constant struct Person $1 = { id: 7, name: "henriette" } -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_ID = 0 -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_PERSON = $11 +__constant struct Person $0 = { id: 4, name: "jesper" } +__constant struct Person $1 = { id: 7, name: "henriette" } +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_ID = 0 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_PERSON = $11 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -volatile struct Person main::henriette loadstore -volatile struct Person main::jesper loadstore -void print_person(struct Person* print_person::person) -byte*~ print_person::$0 -byte*~ print_person::$1 -byte*~ print_person::$2 -byte*~ print_person::$3 -byte*~ print_person::$4 -byte*~ print_person::$5 -bool~ print_person::$6 -byte print_person::i -byte print_person::i#0 -byte print_person::i#1 -byte print_person::i#2 -byte print_person::i#3 -struct Person* print_person::person -struct Person* print_person::person#0 -struct Person* print_person::person#1 -struct Person* print_person::person#2 -struct Person* print_person::person#3 -struct Person* print_person::person#4 +__loadstore volatile struct Person main::henriette +__loadstore volatile struct Person main::jesper +void print_person(struct Person *person) +char *print_person::$0 +char *print_person::$1 +char *print_person::$2 +char *print_person::$3 +char *print_person::$4 +char *print_person::$5 +bool print_person::$6 +char print_person::i +char print_person::i#0 +char print_person::i#1 +char print_person::i#2 +char print_person::i#3 +struct Person *print_person::person +struct Person *print_person::person#0 +struct Person *print_person::person#1 +struct Person *print_person::person#2 +struct Person *print_person::person#3 +struct Person *print_person::person#4 Adding number conversion cast (unumber) 0 in print_person::$6 = 0 != print_person::$1[print_person::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#11 Alias idx#1 = idx#12 idx#13 idx#2 @@ -199,9 +199,9 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining Noop Cast [6] print_person::$3 = (byte*)print_person::person#2 keeping print_person::person#2 -Inlining Noop Cast [12] print_person::$4 = (byte*)print_person::person#2 keeping print_person::person#2 -Inlining Noop Cast [15] print_person::$5 = (byte*)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [6] print_person::$3 = (char *)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [12] print_person::$4 = (char *)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [15] print_person::$5 = (char *)print_person::person#2 keeping print_person::person#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings print_person::person#0 Inlining constant with var siblings print_person::person#1 @@ -212,8 +212,8 @@ Constant inlined print_person::person#0 = &main::jesper Constant inlined print_person::i#0 = 0 Constant inlined print_person::person#1 = &main::henriette Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@2 CALL GRAPH @@ -232,21 +232,21 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::jesper) = memcpy(*(&$0), struct Person, SIZEOF_STRUCT_PERSON) - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] *(&main::henriette) = memcpy(*(&$1), struct Person, SIZEOF_STRUCT_PERSON) - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 [5] idx#14 = phi( main/0, main::@1/idx#17 ) [5] print_person::person#2 = phi( main/&main::jesper, main::@1/&main::henriette ) - [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] + [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [7] idx#3 = ++ idx#14 [8] SCREEN[idx#3] = ' ' [9] idx#4 = ++ idx#3 @@ -254,7 +254,7 @@ print_person: scope:[print_person] from main main::@1 print_person::@1: scope:[print_person] from print_person print_person::@2 [10] idx#15 = phi( print_person/idx#4, print_person::@2/idx#5 ) [10] print_person::i#2 = phi( print_person/0, print_person::@2/print_person::i#1 ) - [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 to:print_person::@3 print_person::@3: scope:[print_person] from print_person::@1 @@ -265,7 +265,7 @@ print_person::@return: scope:[print_person] from print_person::@3 [15] return to:@return print_person::@2: scope:[print_person] from print_person::@1 - [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [18] idx#5 = ++ idx#15 [19] print_person::i#1 = ++ print_person::i#2 @@ -273,24 +273,24 @@ print_person::@2: scope:[print_person] from print_person::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#14 12.0 -byte idx#15 55.999999999999986 -byte idx#17 3.25 -byte idx#3 16.5 -byte idx#4 22.0 -byte idx#5 101.0 +char idx +char idx#14 // 12.0 +char idx#15 // 55.999999999999986 +char idx#17 // 3.25 +char idx#3 // 16.5 +char idx#4 // 22.0 +char idx#5 // 101.0 void main() -volatile struct Person main::henriette loadstore -volatile struct Person main::jesper loadstore -void print_person(struct Person* print_person::person) -byte*~ print_person::$1 202.0 -byte*~ print_person::$2 202.0 -byte print_person::i -byte print_person::i#1 202.0 -byte print_person::i#2 67.33333333333333 -struct Person* print_person::person -struct Person* print_person::person#2 +__loadstore volatile struct Person main::henriette +__loadstore volatile struct Person main::jesper +void print_person(struct Person *person) +char *print_person::$1 // 202.0 +char *print_person::$2 // 202.0 +char print_person::i +char print_person::i#1 // 202.0 +char print_person::i#2 // 67.33333333333333 +struct Person *print_person::person +struct Person *print_person::person#2 Initial phi equivalence classes [ print_person::person#2 ] @@ -326,24 +326,24 @@ Statement [0] *(&main::jesper) = memcpy(*(&$0), struct Person, SIZEOF_STRUCT_PER Statement [2] *(&main::henriette) = memcpy(*(&$1), struct Person, SIZEOF_STRUCT_PERSON) [ main::henriette idx#17 ] ( [ main::henriette idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#14 idx#17 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ idx#14 idx#17 ] -Statement [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] [ main::henriette print_person::person#2 idx#14 ] ( print_person:1 [ main::henriette print_person::person#2 idx#14 ] { } print_person:3 [ main::henriette print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [ main::henriette print_person::person#2 idx#14 ] ( print_person:1 [ main::henriette print_person::person#2 idx#14 ] { } print_person:3 [ main::henriette print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [8] SCREEN[idx#3] = ' ' [ main::henriette print_person::person#2 idx#3 ] ( print_person:1 [ main::henriette print_person::person#2 idx#3 ] { } print_person:3 [ main::henriette print_person::person#2 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ idx#3 ] -Statement [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ print_person::i#2 print_person::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:6 [ idx#15 idx#4 idx#5 ] Statement [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [13] SCREEN[idx#15] = ' ' [ main::henriette idx#15 ] ( print_person:1 [ main::henriette idx#15 ] { } print_person:3 [ main::henriette idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [0] *(&main::jesper) = memcpy(*(&$0), struct Person, SIZEOF_STRUCT_PERSON) [ main::henriette ] ( [ main::henriette ] { } ) always clobbers reg byte a reg byte y Statement [2] *(&main::henriette) = memcpy(*(&$1), struct Person, SIZEOF_STRUCT_PERSON) [ main::henriette idx#17 ] ( [ main::henriette idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y -Statement [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] [ main::henriette print_person::person#2 idx#14 ] ( print_person:1 [ main::henriette print_person::person#2 idx#14 ] { } print_person:3 [ main::henriette print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [ main::henriette print_person::person#2 idx#14 ] ( print_person:1 [ main::henriette print_person::person#2 idx#14 ] { } print_person:3 [ main::henriette print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [8] SCREEN[idx#3] = ' ' [ main::henriette print_person::person#2 idx#3 ] ( print_person:1 [ main::henriette print_person::person#2 idx#3 ] { } print_person:3 [ main::henriette print_person::person#2 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [13] SCREEN[idx#15] = ' ' [ main::henriette idx#15 ] ( print_person:1 [ main::henriette idx#15 ] { } print_person:3 [ main::henriette idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ main::henriette print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ print_person::person#2 ] : zp[2]:2 , Potential registers zp[1]:4 [ idx#14 idx#17 ] : zp[1]:4 , reg byte x , @@ -400,7 +400,7 @@ main: { sta jesper-1,y dey bne !- - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] print_person_from_main: // [5] phi idx#14 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 @@ -421,7 +421,7 @@ main: { sta henriette-1,y dey bne !- - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi idx#14 = idx#17 [phi:main::@1->print_person#0] -- register_copy @@ -438,12 +438,12 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __1 = 4 .label __2 = 6 .label person = 2 - // [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) + // [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda (person),y tay @@ -464,7 +464,7 @@ print_person: { jmp __b1 // print_person::@1 __b1: - // [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person @@ -491,7 +491,7 @@ print_person: { rts // print_person::@2 __b2: - // [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person @@ -543,30 +543,30 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Person $0 = { id: 4, name: "jesper" } -constant struct Person $1 = { id: 7, name: "henriette" } -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = $11 -byte idx -byte idx#14 reg byte x 12.0 -byte idx#15 reg byte x 55.999999999999986 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant struct Person $0 = { id: 4, name: "jesper" } +__constant struct Person $1 = { id: 7, name: "henriette" } +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = $11 +char idx +char idx#14 // reg byte x 12.0 +char idx#15 // reg byte x 55.999999999999986 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -volatile struct Person main::henriette loadstore zp[17]:25 -volatile struct Person main::jesper loadstore zp[17]:8 -void print_person(struct Person* print_person::person) -byte*~ print_person::$1 zp[2]:4 202.0 -byte*~ print_person::$2 zp[2]:6 202.0 -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 67.33333333333333 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +__loadstore volatile struct Person main::henriette // zp[17]:25 +__loadstore volatile struct Person main::jesper // zp[17]:8 +void print_person(struct Person *person) +char *print_person::$1 // zp[2]:4 202.0 +char *print_person::$2 // zp[2]:6 202.0 +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 67.33333333333333 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 ] reg byte x [ idx#14 idx#17 ] @@ -613,7 +613,7 @@ main: { dey bne !- // print_person(&jesper) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi idx#14 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 ldx #0 @@ -633,7 +633,7 @@ main: { dey bne !- // print_person(&henriette) - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] // [5] phi idx#14 = idx#17 [phi:main::@1->print_person#0] -- register_copy // [5] phi print_person::person#2 = &main::henriette [phi:main::@1->print_person#1] -- pssz1=pssc1 @@ -648,13 +648,13 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __1 = 4 .label __2 = 6 .label person = 2 // SCREEN[idx++] = DIGIT[person->id] - // [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) + // [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda (person),y tay @@ -677,7 +677,7 @@ print_person: { // print_person::@1 __b1: // for(byte i=0; person->name[i]; i++) - // [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person @@ -704,7 +704,7 @@ print_person: { // print_person::@2 __b2: // SCREEN[idx++] = person->name[i] - // [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person diff --git a/src/test/ref/struct-ptr-28.sym b/src/test/ref/struct-ptr-28.sym index f864d2127..fb557c22e 100644 --- a/src/test/ref/struct-ptr-28.sym +++ b/src/test/ref/struct-ptr-28.sym @@ -1,27 +1,27 @@ -constant struct Person $0 = { id: 4, name: "jesper" } -constant struct Person $1 = { id: 7, name: "henriette" } -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = $11 -byte idx -byte idx#14 reg byte x 12.0 -byte idx#15 reg byte x 55.999999999999986 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant struct Person $0 = { id: 4, name: "jesper" } +__constant struct Person $1 = { id: 7, name: "henriette" } +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = $11 +char idx +char idx#14 // reg byte x 12.0 +char idx#15 // reg byte x 55.999999999999986 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -volatile struct Person main::henriette loadstore zp[17]:25 -volatile struct Person main::jesper loadstore zp[17]:8 -void print_person(struct Person* print_person::person) -byte*~ print_person::$1 zp[2]:4 202.0 -byte*~ print_person::$2 zp[2]:6 202.0 -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 67.33333333333333 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +__loadstore volatile struct Person main::henriette // zp[17]:25 +__loadstore volatile struct Person main::jesper // zp[17]:8 +void print_person(struct Person *person) +char *print_person::$1 // zp[2]:4 202.0 +char *print_person::$2 // zp[2]:6 202.0 +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 67.33333333333333 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 ] reg byte x [ idx#14 idx#17 ] diff --git a/src/test/ref/struct-ptr-29.asm b/src/test/ref/struct-ptr-29.asm index a3255ec0f..de79e01b2 100644 --- a/src/test/ref/struct-ptr-29.asm +++ b/src/test/ref/struct-ptr-29.asm @@ -28,7 +28,7 @@ main: { // } rts } -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label i = 4 .label person = 2 diff --git a/src/test/ref/struct-ptr-29.cfg b/src/test/ref/struct-ptr-29.cfg index 633a7f5c3..836b4d6e6 100644 --- a/src/test/ref/struct-ptr-29.cfg +++ b/src/test/ref/struct-ptr-29.cfg @@ -2,21 +2,21 @@ void main() main: scope:[main] from [0] phi() - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 [5] idx#14 = phi( main/0, main::@1/idx#17 ) [5] print_person::person#2 = phi( main/persons, main::@1/persons+1*SIZEOF_STRUCT_PERSON ) - [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] + [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [7] idx#3 = ++ idx#14 [8] SCREEN[idx#3] = ' ' [9] idx#4 = ++ idx#3 @@ -24,7 +24,7 @@ print_person: scope:[print_person] from main main::@1 print_person::@1: scope:[print_person] from print_person print_person::@2 [10] idx#15 = phi( print_person/idx#4, print_person::@2/idx#5 ) [10] print_person::i#2 = phi( print_person/0, print_person::@2/print_person::i#1 ) - [11] if(0!=(((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 + [11] if(0!=(((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 to:print_person::@3 print_person::@3: scope:[print_person] from print_person::@1 [12] SCREEN[idx#15] = ' ' @@ -34,7 +34,7 @@ print_person::@return: scope:[print_person] from print_person::@3 [14] return to:@return print_person::@2: scope:[print_person] from print_person::@1 - [15] SCREEN[idx#15] = (((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] + [15] SCREEN[idx#15] = (((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] [16] idx#5 = ++ idx#15 [17] print_person::i#1 = ++ print_person::i#2 to:print_person::@1 diff --git a/src/test/ref/struct-ptr-29.log b/src/test/ref/struct-ptr-29.log index 118088391..a94b28147 100644 --- a/src/test/ref/struct-ptr-29.log +++ b/src/test/ref/struct-ptr-29.log @@ -1,6 +1,6 @@ Fixing constant pointer addition persons+0 Fixing constant pointer addition persons+1 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -8,13 +8,13 @@ void main() main: scope:[main] from __start::@1 idx#20 = phi( __start::@1/idx#22 ) print_person::person#0 = persons+0*SIZEOF_STRUCT_PERSON - call print_person + call print_person to:main::@1 main::@1: scope:[main] from main idx#11 = phi( main/idx#7 ) idx#0 = idx#11 print_person::person#1 = persons+1*SIZEOF_STRUCT_PERSON - call print_person + call print_person to:main::@2 main::@2: scope:[main] from main::@1 idx#12 = phi( main::@1/idx#7 ) @@ -26,11 +26,11 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 idx#14 = phi( main/idx#20, main::@1/idx#0 ) print_person::person#2 = phi( main/print_person::person#0, main::@1/print_person::person#1 ) - print_person::$3 = (byte*)print_person::person#2 + print_person::$3 = (char *)print_person::person#2 print_person::$0 = print_person::$3 + OFFSET_STRUCT_PERSON_ID SCREEN[idx#14] = DIGIT[*print_person::$0] idx#3 = ++ idx#14 @@ -42,7 +42,7 @@ print_person::@1: scope:[print_person] from print_person print_person::@2 idx#21 = phi( print_person/idx#4, print_person::@2/idx#5 ) print_person::i#2 = phi( print_person/print_person::i#0, print_person::@2/print_person::i#1 ) print_person::person#3 = phi( print_person/print_person::person#2, print_person::@2/print_person::person#4 ) - print_person::$4 = (byte**)print_person::person#3 + print_person::$4 = (char **)print_person::person#3 print_person::$1 = print_person::$4 + OFFSET_STRUCT_PERSON_NAME print_person::$6 = 0 != (*print_person::$1)[print_person::i#2] if(print_person::$6) goto print_person::@2 @@ -51,7 +51,7 @@ print_person::@2: scope:[print_person] from print_person::@1 idx#15 = phi( print_person::@1/idx#21 ) print_person::i#3 = phi( print_person::@1/print_person::i#2 ) print_person::person#4 = phi( print_person::@1/print_person::person#3 ) - print_person::$5 = (byte**)print_person::person#4 + print_person::$5 = (char **)print_person::person#4 print_person::$2 = print_person::$5 + OFFSET_STRUCT_PERSON_NAME SCREEN[idx#15] = (*print_person::$2)[print_person::i#3] idx#5 = ++ idx#15 @@ -76,7 +76,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#22 = phi( __start::__init1/idx#8 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#18 = phi( __start::@1/idx#2 ) @@ -89,59 +89,59 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_ID = 0 -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_PERSON = 3 +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_ID = 0 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_PERSON = 3 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant byte* person_name[7] = "jesper" -constant byte* person_name1[7] = "repsej" -constant struct Person* persons[2] = { { id: 4, name: person_name }, { id: 7, name: person_name1 } } -void print_person(struct Person* print_person::person) -byte*~ print_person::$0 -byte**~ print_person::$1 -byte**~ print_person::$2 -byte*~ print_person::$3 -byte**~ print_person::$4 -byte**~ print_person::$5 -bool~ print_person::$6 -byte print_person::i -byte print_person::i#0 -byte print_person::i#1 -byte print_person::i#2 -byte print_person::i#3 -struct Person* print_person::person -struct Person* print_person::person#0 -struct Person* print_person::person#1 -struct Person* print_person::person#2 -struct Person* print_person::person#3 -struct Person* print_person::person#4 +__constant char person_name[7] = "jesper" +__constant char person_name1[7] = "repsej" +__constant struct Person persons[2] = { { id: 4, name: person_name }, { id: 7, name: person_name1 } } +void print_person(struct Person *person) +char *print_person::$0 +char **print_person::$1 +char **print_person::$2 +char *print_person::$3 +char **print_person::$4 +char **print_person::$5 +bool print_person::$6 +char print_person::i +char print_person::i#0 +char print_person::i#1 +char print_person::i#2 +char print_person::i#3 +struct Person *print_person::person +struct Person *print_person::person#0 +struct Person *print_person::person#1 +struct Person *print_person::person#2 +struct Person *print_person::person#3 +struct Person *print_person::person#4 Adding number conversion cast (unumber) 0*SIZEOF_STRUCT_PERSON in print_person::person#0 = persons+0*SIZEOF_STRUCT_PERSON Adding number conversion cast (unumber) 0 in print_person::person#0 = persons+(unumber)0*SIZEOF_STRUCT_PERSON @@ -149,16 +149,16 @@ Adding number conversion cast (unumber) 1*SIZEOF_STRUCT_PERSON in print_person:: Adding number conversion cast (unumber) 1 in print_person::person#1 = persons+(unumber)1*SIZEOF_STRUCT_PERSON Adding number conversion cast (unumber) 0 in print_person::$6 = 0 != (*print_person::$1)[print_person::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast (unumber)0*SIZEOF_STRUCT_PERSON Simplifying constant integer cast 0 Simplifying constant integer cast (unumber)1*SIZEOF_STRUCT_PERSON Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#11 Alias idx#1 = idx#12 idx#13 idx#2 @@ -204,9 +204,9 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining Noop Cast [4] print_person::$3 = (byte*)print_person::person#2 keeping print_person::person#2 -Inlining Noop Cast [10] print_person::$4 = (byte**)print_person::person#2 keeping print_person::person#2 -Inlining Noop Cast [12] print_person::$5 = (byte**)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [4] print_person::$3 = (char *)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [10] print_person::$4 = (char **)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [12] print_person::$5 = (char **)print_person::person#2 keeping print_person::person#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings print_person::person#0 Inlining constant with var siblings print_person::person#1 @@ -217,7 +217,7 @@ Constant inlined print_person::person#0 = persons Constant inlined print_person::i#0 = 0 Constant inlined print_person::person#1 = persons+1*SIZEOF_STRUCT_PERSON Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -239,21 +239,21 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 [5] idx#14 = phi( main/0, main::@1/idx#17 ) [5] print_person::person#2 = phi( main/persons, main::@1/persons+1*SIZEOF_STRUCT_PERSON ) - [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] + [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [7] idx#3 = ++ idx#14 [8] SCREEN[idx#3] = ' ' [9] idx#4 = ++ idx#3 @@ -261,7 +261,7 @@ print_person: scope:[print_person] from main main::@1 print_person::@1: scope:[print_person] from print_person print_person::@2 [10] idx#15 = phi( print_person/idx#4, print_person::@2/idx#5 ) [10] print_person::i#2 = phi( print_person/0, print_person::@2/print_person::i#1 ) - [11] if(0!=(((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 + [11] if(0!=(((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 to:print_person::@3 print_person::@3: scope:[print_person] from print_person::@1 [12] SCREEN[idx#15] = ' ' @@ -271,27 +271,27 @@ print_person::@return: scope:[print_person] from print_person::@3 [14] return to:@return print_person::@2: scope:[print_person] from print_person::@1 - [15] SCREEN[idx#15] = (((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] + [15] SCREEN[idx#15] = (((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] [16] idx#5 = ++ idx#15 [17] print_person::i#1 = ++ print_person::i#2 to:print_person::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#14 12.0 -byte idx#15 84.0 -byte idx#17 3.25 -byte idx#3 16.5 -byte idx#4 22.0 -byte idx#5 101.0 +char idx +char idx#14 // 12.0 +char idx#15 // 84.0 +char idx#17 // 3.25 +char idx#3 // 16.5 +char idx#4 // 22.0 +char idx#5 // 101.0 void main() -void print_person(struct Person* print_person::person) -byte print_person::i -byte print_person::i#1 202.0 -byte print_person::i#2 101.0 -struct Person* print_person::person -struct Person* print_person::person#2 +void print_person(struct Person *person) +char print_person::i +char print_person::i#1 // 202.0 +char print_person::i#2 // 101.0 +struct Person *print_person::person +struct Person *print_person::person#2 Initial phi equivalence classes [ print_person::person#2 ] @@ -311,23 +311,23 @@ Allocated zp[1]:5 [ print_person::i#2 print_person::i#1 ] Allocated zp[1]:6 [ idx#15 idx#4 idx#5 ] Allocated zp[1]:7 [ idx#3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#14 idx#17 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ idx#14 idx#17 ] Statement [8] SCREEN[idx#3] = ' ' [ print_person::person#2 idx#3 ] ( print_person:1 [ print_person::person#2 idx#3 ] { } print_person:3 [ print_person::person#2 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ idx#3 ] -Statement [11] if(0!=(((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [11] if(0!=(((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:5 [ print_person::i#2 print_person::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:5 [ print_person::i#2 print_person::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:6 [ idx#15 idx#4 idx#5 ] Removing always clobbered register reg byte y as potential for zp[1]:6 [ idx#15 idx#4 idx#5 ] Statement [12] SCREEN[idx#15] = ' ' [ idx#15 ] ( print_person:1 [ idx#15 ] { } print_person:3 [ idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [15] SCREEN[idx#15] = (((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y -Statement [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [15] SCREEN[idx#15] = (((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [8] SCREEN[idx#3] = ' ' [ print_person::person#2 idx#3 ] ( print_person:1 [ print_person::person#2 idx#3 ] { } print_person:3 [ print_person::person#2 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [11] if(0!=(((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [11] if(0!=(((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [12] SCREEN[idx#15] = ' ' [ idx#15 ] ( print_person:1 [ idx#15 ] { } print_person:3 [ idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [15] SCREEN[idx#15] = (((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [15] SCREEN[idx#15] = (((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ print_person::person#2 ] : zp[2]:2 , Potential registers zp[1]:4 [ idx#14 idx#17 ] : zp[1]:4 , reg byte x , Potential registers zp[1]:5 [ print_person::i#2 print_person::i#1 ] : zp[1]:5 , reg byte x , @@ -367,7 +367,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] print_person_from_main: // [5] phi idx#14 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 @@ -383,7 +383,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi idx#14 = idx#17 [phi:main::@1->print_person#0] -- register_copy @@ -400,11 +400,11 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label i = 4 .label person = 2 - // [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) + // [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda (person),y tay @@ -426,7 +426,7 @@ print_person: { jmp __b1 // print_person::@1 __b1: - // [11] if(0!=(((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 -- 0_neq_(qbuz1_derefidx_vbuc1)_derefidx_vbuz2_then_la1 + // [11] if(0!=(((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 -- 0_neq_(qbuz1_derefidx_vbuc1)_derefidx_vbuz2_then_la1 ldy #OFFSET_STRUCT_PERSON_NAME lda (person),y sta.z $fe @@ -451,7 +451,7 @@ print_person: { rts // print_person::@2 __b2: - // [15] SCREEN[idx#15] = (((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] -- pbuc1_derefidx_vbuxx=(qbuz1_derefidx_vbuc2)_derefidx_vbuz2 + // [15] SCREEN[idx#15] = (((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] -- pbuc1_derefidx_vbuxx=(qbuz1_derefidx_vbuc2)_derefidx_vbuz2 ldy #OFFSET_STRUCT_PERSON_NAME lda (person),y sta.z $fe @@ -504,27 +504,27 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = 3 -byte idx -byte idx#14 reg byte x 12.0 -byte idx#15 reg byte x 84.0 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = 3 +char idx +char idx#14 // reg byte x 12.0 +char idx#15 // reg byte x 84.0 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -constant byte* person_name[7] = "jesper" -constant byte* person_name1[7] = "repsej" -constant struct Person* persons[2] = { { id: 4, name: person_name }, { id: 7, name: person_name1 } } -void print_person(struct Person* print_person::person) -byte print_person::i -byte print_person::i#1 i zp[1]:4 202.0 -byte print_person::i#2 i zp[1]:4 101.0 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +__constant char person_name[7] = "jesper" +__constant char person_name1[7] = "repsej" +__constant struct Person persons[2] = { { id: 4, name: person_name }, { id: 7, name: person_name1 } } +void print_person(struct Person *person) +char print_person::i +char print_person::i#1 // i zp[1]:4 202.0 +char print_person::i#2 // i zp[1]:4 101.0 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 ] reg byte x [ idx#14 idx#17 ] @@ -555,7 +555,7 @@ Score: 900 // main main: { // print_person(&persons[0]) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi idx#14 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 ldx #0 @@ -568,7 +568,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_person(&persons[1]) - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] // [5] phi idx#14 = idx#17 [phi:main::@1->print_person#0] -- register_copy // [5] phi print_person::person#2 = persons+1*SIZEOF_STRUCT_PERSON [phi:main::@1->print_person#1] -- pssz1=pssc1 @@ -583,12 +583,12 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label i = 4 .label person = 2 // SCREEN[idx++] = DIGIT[person->id] - // [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) + // [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda (person),y tay @@ -612,7 +612,7 @@ print_person: { // print_person::@1 __b1: // for(byte i=0; person->name[i]; i++) - // [11] if(0!=(((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 -- 0_neq_(qbuz1_derefidx_vbuc1)_derefidx_vbuz2_then_la1 + // [11] if(0!=(((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2]) goto print_person::@2 -- 0_neq_(qbuz1_derefidx_vbuc1)_derefidx_vbuz2_then_la1 ldy #OFFSET_STRUCT_PERSON_NAME lda (person),y sta.z $fe @@ -637,7 +637,7 @@ print_person: { // print_person::@2 __b2: // SCREEN[idx++] = person->name[i] - // [15] SCREEN[idx#15] = (((byte**)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] -- pbuc1_derefidx_vbuxx=(qbuz1_derefidx_vbuc2)_derefidx_vbuz2 + // [15] SCREEN[idx#15] = (((char **)print_person::person#2)[OFFSET_STRUCT_PERSON_NAME])[print_person::i#2] -- pbuc1_derefidx_vbuxx=(qbuz1_derefidx_vbuc2)_derefidx_vbuz2 ldy #OFFSET_STRUCT_PERSON_NAME lda (person),y sta.z $fe diff --git a/src/test/ref/struct-ptr-29.sym b/src/test/ref/struct-ptr-29.sym index 664a40bd7..7c6ccb026 100644 --- a/src/test/ref/struct-ptr-29.sym +++ b/src/test/ref/struct-ptr-29.sym @@ -1,24 +1,24 @@ -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = 3 -byte idx -byte idx#14 reg byte x 12.0 -byte idx#15 reg byte x 84.0 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = 3 +char idx +char idx#14 // reg byte x 12.0 +char idx#15 // reg byte x 84.0 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -constant byte* person_name[7] = "jesper" -constant byte* person_name1[7] = "repsej" -constant struct Person* persons[2] = { { id: 4, name: person_name }, { id: 7, name: person_name1 } } -void print_person(struct Person* print_person::person) -byte print_person::i -byte print_person::i#1 i zp[1]:4 202.0 -byte print_person::i#2 i zp[1]:4 101.0 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +__constant char person_name[7] = "jesper" +__constant char person_name1[7] = "repsej" +__constant struct Person persons[2] = { { id: 4, name: person_name }, { id: 7, name: person_name1 } } +void print_person(struct Person *person) +char print_person::i +char print_person::i#1 // i zp[1]:4 202.0 +char print_person::i#2 // i zp[1]:4 101.0 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 ] reg byte x [ idx#14 idx#17 ] diff --git a/src/test/ref/struct-ptr-3.cfg b/src/test/ref/struct-ptr-3.cfg index 9469dfac2..714a77049 100644 --- a/src/test/ref/struct-ptr-3.cfg +++ b/src/test/ref/struct-ptr-3.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)(struct Point*) 4096) - [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) - [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) - [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [0] *main::SCREEN = *((char *)(struct Point *) 4096) + [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) + [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) + [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/struct-ptr-3.log b/src/test/ref/struct-ptr-3.log index 3d64b4608..47cedbbe1 100644 --- a/src/test/ref/struct-ptr-3.log +++ b/src/test/ref/struct-ptr-3.log @@ -1,21 +1,21 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 points#5 = phi( __start::@1/points#9 ) - main::$4 = (byte*)points#5 + main::$4 = (char *)points#5 main::$0 = main::$4 + OFFSET_STRUCT_POINT_X main::SCREEN[0] = *main::$0 - main::$5 = (byte*)points#5 + main::$5 = (char *)points#5 main::$1 = main::$5 + OFFSET_STRUCT_POINT_Y main::SCREEN[1] = *main::$1 points#0 = points#5 + SIZEOF_STRUCT_POINT - main::$6 = (byte*)points#0 + main::$6 = (char *)points#0 main::$2 = main::$6 + OFFSET_STRUCT_POINT_X main::SCREEN[2] = *main::$2 - main::$7 = (byte*)points#0 + main::$7 = (char *)points#0 main::$3 = main::$7 + OFFSET_STRUCT_POINT_Y main::SCREEN[3] = *main::$3 to:main::@return @@ -29,11 +29,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - points#2 = (struct Point*)$1000 + points#2 = (struct Point *)$1000 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 points#9 = phi( __start::__init1/points#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 points#7 = phi( __start::@1/points#1 ) @@ -46,48 +46,48 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -byte*~ main::$6 -byte*~ main::$7 -constant byte* const main::SCREEN = (byte*)$400 -struct Point* points -struct Point* points#0 -struct Point* points#1 -struct Point* points#2 -struct Point* points#3 -struct Point* points#4 -struct Point* points#5 -struct Point* points#6 -struct Point* points#7 -struct Point* points#8 -struct Point* points#9 +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +char *main::$6 +char *main::$7 +__constant char * const main::SCREEN = (char *)$400 +struct Point *points +struct Point *points#0 +struct Point *points#1 +struct Point *points#2 +struct Point *points#3 +struct Point *points#4 +struct Point *points#5 +struct Point *points#6 +struct Point *points#7 +struct Point *points#8 +struct Point *points#9 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = *main::$0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = *main::$1 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = *main::$2 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = *main::$3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 -Simplifying constant pointer cast (struct Point*) 4096 +Simplifying constant pointer cast (struct Point *) 4096 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias points#0 = points#6 points#1 Alias points#2 = points#9 @@ -96,10 +96,10 @@ Successful SSA optimization Pass2AliasElimination Identical Phi Values points#5 points#2 Identical Phi Values points#3 points#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant points#2 = (struct Point*) 4096 +Constant points#2 = (struct Point *) 4096 Successful SSA optimization Pass2ConstantIdentification -Constant main::$4 = (byte*)points#2 -Constant main::$5 = (byte*)points#2 +Constant main::$4 = (char *)points#2 +Constant main::$5 = (char *)points#2 Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [3] main::SCREEN[0] = *main::$0 -- main::$4[OFFSET_STRUCT_POINT_X] Converting *(pointer+n) to pointer[n] [6] main::SCREEN[1] = *main::$1 -- main::$5[OFFSET_STRUCT_POINT_Y] @@ -129,22 +129,22 @@ Constant right-side identified [2] points#0 = points#2 + SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantRValueConsolidation Constant points#0 = points#2+SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantIdentification -Constant main::$6 = (byte*)points#0 -Constant main::$7 = (byte*)points#0 +Constant main::$6 = (char *)points#0 +Constant main::$7 = (char *)points#0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings points#2 Inlining constant with different constant siblings points#0 -Constant inlined main::$5 = (byte*)(struct Point*) 4096 -Constant inlined points#0 = (struct Point*) 4096+SIZEOF_STRUCT_POINT -Constant inlined main::$6 = (byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT -Constant inlined points#2 = (struct Point*) 4096 -Constant inlined main::$4 = (byte*)(struct Point*) 4096 -Constant inlined main::$7 = (byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT +Constant inlined main::$5 = (char *)(struct Point *) 4096 +Constant inlined points#0 = (struct Point *) 4096+SIZEOF_STRUCT_POINT +Constant inlined main::$6 = (char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT +Constant inlined points#2 = (struct Point *) 4096 +Constant inlined main::$4 = (char *)(struct Point *) 4096 +Constant inlined main::$7 = (char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+2) -Consolidated array index constant in *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -156,10 +156,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)(struct Point*) 4096) - [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) - [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) - [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [0] *main::SCREEN = *((char *)(struct Point *) 4096) + [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) + [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) + [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return @@ -168,15 +168,15 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point* points +struct Point *points Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::SCREEN = *((byte*)(struct Point*) 4096) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)(struct Point *) 4096) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [Point] @@ -206,16 +206,16 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [0] *main::SCREEN = *((byte*)(struct Point*) 4096) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)(struct Point *) 4096) -- _deref_pbuc1=_deref_pbuc2 lda $1000 sta SCREEN - // [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+OFFSET_STRUCT_POINT_Y sta SCREEN+1 - // [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT sta SCREEN+2 - // [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+3 jmp __breturn @@ -233,11 +233,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Point* points +__constant char * const main::SCREEN = (char *) 1024 +struct Point *points @@ -263,19 +263,19 @@ Score: 38 main: { .label SCREEN = $400 // SCREEN[0] = (*points).x - // [0] *main::SCREEN = *((byte*)(struct Point*) 4096) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)(struct Point *) 4096) -- _deref_pbuc1=_deref_pbuc2 lda $1000 sta SCREEN // SCREEN[1] = (*points).y - // [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // SCREEN[2] = (*points).x - // [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT sta SCREEN+2 // SCREEN[3] = (*points).y - // [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+3 // main::@return diff --git a/src/test/ref/struct-ptr-3.sym b/src/test/ref/struct-ptr-3.sym index b860d06bb..2cf83dd5c 100644 --- a/src/test/ref/struct-ptr-3.sym +++ b/src/test/ref/struct-ptr-3.sym @@ -1,6 +1,6 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Point* points +__constant char * const main::SCREEN = (char *) 1024 +struct Point *points diff --git a/src/test/ref/struct-ptr-30.asm b/src/test/ref/struct-ptr-30.asm index 554db8edc..56e5a2c15 100644 --- a/src/test/ref/struct-ptr-30.asm +++ b/src/test/ref/struct-ptr-30.asm @@ -38,7 +38,7 @@ main: { // } rts } -// print(byte register(X) p_x, signed word zp(4) p_y) +// void print(__register(X) char p_x, __zp(4) int p_y) print: { .label p_y = 4 // SCREEN[idx++] = p.x diff --git a/src/test/ref/struct-ptr-30.cfg b/src/test/ref/struct-ptr-30.cfg index bfbce7f02..79689ed5c 100644 --- a/src/test/ref/struct-ptr-30.cfg +++ b/src/test/ref/struct-ptr-30.cfg @@ -8,9 +8,9 @@ main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] main::$3 = main::i#2 << 1 [3] main::$2 = main::$3 + main::i#2 - [4] print::p_x#0 = ((byte*)points)[main::$2] - [5] print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] - [6] call print + [4] print::p_x#0 = ((char *)points)[main::$2] + [5] print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] + [6] call print to:main::@2 main::@2: scope:[main] from main::@1 [7] main::i#1 = ++ main::i#2 @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -void print(byte print::p_x , signed word print::p_y) +void print(char p_x , int p_y) print: scope:[print] from main::@1 [10] SCREEN[idx#16] = print::p_x#0 [11] idx#2 = ++ idx#16 diff --git a/src/test/ref/struct-ptr-30.log b/src/test/ref/struct-ptr-30.log index 0534e08e3..d14f0d208 100644 --- a/src/test/ref/struct-ptr-30.log +++ b/src/test/ref/struct-ptr-30.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -11,9 +11,9 @@ main::@1: scope:[main] from main main::@2 idx#16 = phi( main/idx#18, main::@2/idx#0 ) main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) main::$2 = main::i#2 * SIZEOF_STRUCT_POINT - print::p_x#0 = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$2] - print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] - call print + print::p_x#0 = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$2] + print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] + call print to:main::@2 main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(byte print::p_x , signed word print::p_y) +void print(char p_x , int p_y) print: scope:[print] from main::@1 print::p_y#1 = phi( main::@1/print::p_y#0 ) idx#12 = phi( main::@1/idx#16 ) @@ -59,7 +59,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#17 = phi( __start::__init1/idx#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#14 = phi( __start::@1/idx#1 ) @@ -72,52 +72,52 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_POINT = 3 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_POINT = 3 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -bool~ main::$1 -byte~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -constant struct Point* points[4] = { { x: 1, y: $83f }, { x: 3, y: $107e } } -void print(byte print::p_x , signed word print::p_y) -byte~ print::$0 -byte~ print::$1 +bool main::$1 +char main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +__constant struct Point points[4] = { { x: 1, y: $83f }, { x: 3, y: $107e } } +void print(char p_x , int p_y) +char print::$0 +char print::$1 struct Point print::p -byte print::p_x -byte print::p_x#0 -byte print::p_x#1 -signed word print::p_y -signed word print::p_y#0 -signed word print::p_y#1 +char print::p_x +char print::p_x#0 +char print::p_x#1 +int print::p_y +int print::p_y#0 +int print::p_y#1 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Alias idx#0 = idx#10 idx#11 idx#1 @@ -139,7 +139,7 @@ Constant idx#17 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [8] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [10] if(main::i#1!=rangelast(0,3)) goto main::@1 to 4 -Simplifying expression containing zero (byte*)points in [4] print::p_x#0 = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$2] +Simplifying expression containing zero (char *)points in [4] print::p_x#0 = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$2] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -154,7 +154,7 @@ Adding number conversion cast (unumber) 4 in [6] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift and addition[1] main::$2 = main::i#2 * SIZEOF_STRUCT_POINT Inlining constant with var siblings main::i#0 @@ -166,7 +166,7 @@ Alias main::$2 = main::$4 Successful SSA optimization Pass2AliasElimination Eliminating unused constant SIZEOF_STRUCT_POINT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@2 and main::@1) Adding NOP phi() at start of main @@ -191,9 +191,9 @@ main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] main::$3 = main::i#2 << 1 [3] main::$2 = main::$3 + main::i#2 - [4] print::p_x#0 = ((byte*)points)[main::$2] - [5] print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] - [6] call print + [4] print::p_x#0 = ((char *)points)[main::$2] + [5] print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] + [6] call print to:main::@2 main::@2: scope:[main] from main::@1 [7] main::i#1 = ++ main::i#2 @@ -203,7 +203,7 @@ main::@return: scope:[main] from main::@2 [9] return to:@return -void print(byte print::p_x , signed word print::p_y) +void print(char p_x , int p_y) print: scope:[print] from main::@1 [10] SCREEN[idx#16] = print::p_x#0 [11] idx#2 = ++ idx#16 @@ -222,26 +222,26 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#13 22.4 -byte idx#16 35.5 -byte idx#2 101.0 -byte idx#3 101.0 -byte idx#4 151.5 +char idx +char idx#13 // 22.4 +char idx#16 // 35.5 +char idx#2 // 101.0 +char idx#3 // 101.0 +char idx#4 // 151.5 void main() -byte~ main::$2 16.5 -byte~ main::$3 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.333333333333333 -void print(byte print::p_x , signed word print::p_y) -byte~ print::$0 202.0 -byte~ print::$1 202.0 +char main::$2 // 16.5 +char main::$3 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.333333333333333 +void print(char p_x , int p_y) +char print::$0 // 202.0 +char print::$1 // 202.0 struct Point print::p -byte print::p_x -byte print::p_x#0 56.0 -signed word print::p_y -signed word print::p_y#0 35.5 +char print::p_x +char print::p_x#0 // 56.0 +int print::p_y +int print::p_y#0 // 35.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -283,14 +283,14 @@ Statement [2] main::$3 = main::i#2 << 1 [ main::i#2 idx#16 main::$3 ] ( [ main: Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ idx#16 idx#13 ] Statement [3] main::$2 = main::$3 + main::i#2 [ main::i#2 idx#16 main::$2 ] ( [ main::i#2 idx#16 main::$2 ] { } ) always clobbers reg byte a -Statement [5] print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] ( [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] { } ) always clobbers reg byte a +Statement [5] print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] ( [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ print::p_x#0 ] Statement [10] SCREEN[idx#16] = print::p_x#0 [ idx#16 print::p_y#0 ] ( print:6 [ main::i#2 idx#16 print::p_y#0 ] { } ) always clobbers reg byte a Statement [18] SCREEN[idx#4] = ' ' [ idx#4 ] ( print:6 [ main::i#2 idx#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:13 [ idx#4 ] Statement [2] main::$3 = main::i#2 << 1 [ main::i#2 idx#16 main::$3 ] ( [ main::i#2 idx#16 main::$3 ] { } ) always clobbers reg byte a Statement [3] main::$2 = main::$3 + main::i#2 [ main::i#2 idx#16 main::$2 ] ( [ main::i#2 idx#16 main::$2 ] { } ) always clobbers reg byte a -Statement [5] print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] ( [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] { } ) always clobbers reg byte a +Statement [5] print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] ( [ main::i#2 idx#16 print::p_x#0 print::p_y#0 ] { } ) always clobbers reg byte a Statement [10] SCREEN[idx#16] = print::p_x#0 [ idx#16 print::p_y#0 ] ( print:6 [ main::i#2 idx#16 print::p_y#0 ] { } ) always clobbers reg byte a Statement [18] SCREEN[idx#4] = ' ' [ idx#4 ] ( print:6 [ main::i#2 idx#4 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , @@ -366,14 +366,14 @@ main: { clc adc.z i tay - // [4] print::p_x#0 = ((byte*)points)[main::$2] -- vbuxx=pbuc1_derefidx_vbuyy + // [4] print::p_x#0 = ((char *)points)[main::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx points,y - // [5] print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- vwsz1=pwsc1_derefidx_vbuyy + // [5] print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- vwsz1=pwsc1_derefidx_vbuyy lda points+OFFSET_STRUCT_POINT_Y,y sta.z print.p_y lda points+OFFSET_STRUCT_POINT_Y+1,y sta.z print.p_y+1 - // [6] call print + // [6] call print jsr print jmp __b2 // main::@2 @@ -391,7 +391,7 @@ main: { rts } // print -// print(byte register(X) p_x, signed word zp(4) p_y) +// void print(__register(X) char p_x, __zp(4) int p_y) print: { .label p_y = 4 // [10] SCREEN[idx#16] = print::p_x#0 -- pbuc1_derefidx_vbuz1=vbuxx @@ -454,30 +454,30 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 -byte idx -byte idx#13 idx zp[1]:3 22.4 -byte idx#16 idx zp[1]:3 35.5 -byte idx#2 reg byte x 101.0 -byte idx#3 reg byte x 101.0 -byte idx#4 reg byte x 151.5 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 +char idx +char idx#13 // idx zp[1]:3 22.4 +char idx#16 // idx zp[1]:3 35.5 +char idx#2 // reg byte x 101.0 +char idx#3 // reg byte x 101.0 +char idx#4 // reg byte x 151.5 void main() -byte~ main::$2 reg byte y 16.5 -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 7.333333333333333 -constant struct Point* points[4] = { { x: 1, y: $83f }, { x: 3, y: $107e } } -void print(byte print::p_x , signed word print::p_y) -byte~ print::$0 reg byte a 202.0 -byte~ print::$1 reg byte a 202.0 +char main::$2 // reg byte y 16.5 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 7.333333333333333 +__constant struct Point points[4] = { { x: 1, y: $83f }, { x: 3, y: $107e } } +void print(char p_x , int p_y) +char print::$0 // reg byte a 202.0 +char print::$1 // reg byte a 202.0 struct Point print::p -byte print::p_x -byte print::p_x#0 reg byte x 56.0 -signed word print::p_y -signed word print::p_y#0 p_y zp[2]:4 35.5 +char print::p_x +char print::p_x#0 // reg byte x 56.0 +int print::p_y +int print::p_y#0 // p_y zp[2]:4 35.5 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx#16 idx#13 ] @@ -534,14 +534,14 @@ main: { clc adc.z i tay - // [4] print::p_x#0 = ((byte*)points)[main::$2] -- vbuxx=pbuc1_derefidx_vbuyy + // [4] print::p_x#0 = ((char *)points)[main::$2] -- vbuxx=pbuc1_derefidx_vbuyy ldx points,y - // [5] print::p_y#0 = ((signed word*)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- vwsz1=pwsc1_derefidx_vbuyy + // [5] print::p_y#0 = ((int *)points+OFFSET_STRUCT_POINT_Y)[main::$2] -- vwsz1=pwsc1_derefidx_vbuyy lda points+OFFSET_STRUCT_POINT_Y,y sta.z print.p_y lda points+OFFSET_STRUCT_POINT_Y+1,y sta.z print.p_y+1 - // [6] call print + // [6] call print jsr print // main::@2 // for ( char i: 0..3) @@ -557,7 +557,7 @@ main: { rts } // print -// print(byte register(X) p_x, signed word zp(4) p_y) +// void print(__register(X) char p_x, __zp(4) int p_y) print: { .label p_y = 4 // SCREEN[idx++] = p.x diff --git a/src/test/ref/struct-ptr-30.sym b/src/test/ref/struct-ptr-30.sym index 44527da44..47f8b6c18 100644 --- a/src/test/ref/struct-ptr-30.sym +++ b/src/test/ref/struct-ptr-30.sym @@ -1,27 +1,27 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_POINT = 3 -byte idx -byte idx#13 idx zp[1]:3 22.4 -byte idx#16 idx zp[1]:3 35.5 -byte idx#2 reg byte x 101.0 -byte idx#3 reg byte x 101.0 -byte idx#4 reg byte x 151.5 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_POINT = 3 +char idx +char idx#13 // idx zp[1]:3 22.4 +char idx#16 // idx zp[1]:3 35.5 +char idx#2 // reg byte x 101.0 +char idx#3 // reg byte x 101.0 +char idx#4 // reg byte x 151.5 void main() -byte~ main::$2 reg byte y 16.5 -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 7.333333333333333 -constant struct Point* points[4] = { { x: 1, y: $83f }, { x: 3, y: $107e } } -void print(byte print::p_x , signed word print::p_y) -byte~ print::$0 reg byte a 202.0 -byte~ print::$1 reg byte a 202.0 +char main::$2 // reg byte y 16.5 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 7.333333333333333 +__constant struct Point points[4] = { { x: 1, y: $83f }, { x: 3, y: $107e } } +void print(char p_x , int p_y) +char print::$0 // reg byte a 202.0 +char print::$1 // reg byte a 202.0 struct Point print::p -byte print::p_x -byte print::p_x#0 reg byte x 56.0 -signed word print::p_y -signed word print::p_y#0 p_y zp[2]:4 35.5 +char print::p_x +char print::p_x#0 // reg byte x 56.0 +int print::p_y +int print::p_y#0 // p_y zp[2]:4 35.5 zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ idx#16 idx#13 ] diff --git a/src/test/ref/struct-ptr-31.asm b/src/test/ref/struct-ptr-31.asm index 6fc424bf9..e6880996a 100644 --- a/src/test/ref/struct-ptr-31.asm +++ b/src/test/ref/struct-ptr-31.asm @@ -28,7 +28,7 @@ main: { // } rts } -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __1 = 4 .label __2 = 6 diff --git a/src/test/ref/struct-ptr-31.cfg b/src/test/ref/struct-ptr-31.cfg index 74b9ed4d1..657ad2ddb 100644 --- a/src/test/ref/struct-ptr-31.cfg +++ b/src/test/ref/struct-ptr-31.cfg @@ -2,21 +2,21 @@ void main() main: scope:[main] from [0] phi() - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 [5] idx#14 = phi( main/0, main::@1/idx#17 ) [5] print_person::person#2 = phi( main/persons, main::@1/persons+1*SIZEOF_STRUCT_PERSON ) - [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] + [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [7] idx#3 = ++ idx#14 [8] SCREEN[idx#3] = ' ' [9] idx#4 = ++ idx#3 @@ -24,7 +24,7 @@ print_person: scope:[print_person] from main main::@1 print_person::@1: scope:[print_person] from print_person print_person::@2 [10] idx#15 = phi( print_person/idx#4, print_person::@2/idx#5 ) [10] print_person::i#2 = phi( print_person/0, print_person::@2/print_person::i#1 ) - [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 to:print_person::@3 print_person::@3: scope:[print_person] from print_person::@1 @@ -35,7 +35,7 @@ print_person::@return: scope:[print_person] from print_person::@3 [15] return to:@return print_person::@2: scope:[print_person] from print_person::@1 - [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [18] idx#5 = ++ idx#15 [19] print_person::i#1 = ++ print_person::i#2 diff --git a/src/test/ref/struct-ptr-31.log b/src/test/ref/struct-ptr-31.log index e07c4fb13..a1c4d78a6 100644 --- a/src/test/ref/struct-ptr-31.log +++ b/src/test/ref/struct-ptr-31.log @@ -5,7 +5,7 @@ Fixing struct type size struct Person to 17 Fixing struct type SIZE_OF struct Person to 17 Fixing struct type SIZE_OF struct Person to 17 Fixing constant pointer addition persons+1 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -13,13 +13,13 @@ void main() main: scope:[main] from __start::@1 idx#20 = phi( __start::@1/idx#22 ) print_person::person#0 = persons - call print_person + call print_person to:main::@1 main::@1: scope:[main] from main idx#11 = phi( main/idx#7 ) idx#0 = idx#11 print_person::person#1 = persons+1*SIZEOF_STRUCT_PERSON - call print_person + call print_person to:main::@2 main::@2: scope:[main] from main::@1 idx#12 = phi( main::@1/idx#7 ) @@ -31,11 +31,11 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 idx#14 = phi( main/idx#20, main::@1/idx#0 ) print_person::person#2 = phi( main/print_person::person#0, main::@1/print_person::person#1 ) - print_person::$3 = (byte*)print_person::person#2 + print_person::$3 = (char *)print_person::person#2 print_person::$0 = print_person::$3 + OFFSET_STRUCT_PERSON_ID SCREEN[idx#14] = DIGIT[*print_person::$0] idx#3 = ++ idx#14 @@ -47,7 +47,7 @@ print_person::@1: scope:[print_person] from print_person print_person::@2 idx#21 = phi( print_person/idx#4, print_person::@2/idx#5 ) print_person::i#2 = phi( print_person/print_person::i#0, print_person::@2/print_person::i#1 ) print_person::person#3 = phi( print_person/print_person::person#2, print_person::@2/print_person::person#4 ) - print_person::$4 = (byte*)print_person::person#3 + print_person::$4 = (char *)print_person::person#3 print_person::$1 = print_person::$4 + OFFSET_STRUCT_PERSON_NAME print_person::$6 = 0 != print_person::$1[print_person::i#2] if(print_person::$6) goto print_person::@2 @@ -56,7 +56,7 @@ print_person::@2: scope:[print_person] from print_person::@1 idx#15 = phi( print_person::@1/idx#21 ) print_person::i#3 = phi( print_person::@1/print_person::i#2 ) print_person::person#4 = phi( print_person::@1/print_person::person#3 ) - print_person::$5 = (byte*)print_person::person#4 + print_person::$5 = (char *)print_person::person#4 print_person::$2 = print_person::$5 + OFFSET_STRUCT_PERSON_NAME SCREEN[idx#15] = print_person::$2[print_person::i#3] idx#5 = ++ idx#15 @@ -81,7 +81,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#22 = phi( __start::__init1/idx#8 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#18 = phi( __start::@1/idx#2 ) @@ -94,69 +94,69 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_ID = 0 -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_STRUCT_PERSON = $11 +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_ID = 0 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_STRUCT_PERSON = $11 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant struct Person* persons[] = { { id: 4, name: "jesper" }, { id: 7, name: "henriette" } } -void print_person(struct Person* print_person::person) -byte*~ print_person::$0 -byte*~ print_person::$1 -byte*~ print_person::$2 -byte*~ print_person::$3 -byte*~ print_person::$4 -byte*~ print_person::$5 -bool~ print_person::$6 -byte print_person::i -byte print_person::i#0 -byte print_person::i#1 -byte print_person::i#2 -byte print_person::i#3 -struct Person* print_person::person -struct Person* print_person::person#0 -struct Person* print_person::person#1 -struct Person* print_person::person#2 -struct Person* print_person::person#3 -struct Person* print_person::person#4 +__constant struct Person persons[] = { { id: 4, name: "jesper" }, { id: 7, name: "henriette" } } +void print_person(struct Person *person) +char *print_person::$0 +char *print_person::$1 +char *print_person::$2 +char *print_person::$3 +char *print_person::$4 +char *print_person::$5 +bool print_person::$6 +char print_person::i +char print_person::i#0 +char print_person::i#1 +char print_person::i#2 +char print_person::i#3 +struct Person *print_person::person +struct Person *print_person::person#0 +struct Person *print_person::person#1 +struct Person *print_person::person#2 +struct Person *print_person::person#3 +struct Person *print_person::person#4 Adding number conversion cast (unumber) 1*SIZEOF_STRUCT_PERSON in print_person::person#1 = persons+1*SIZEOF_STRUCT_PERSON Adding number conversion cast (unumber) 1 in print_person::person#1 = persons+(unumber)1*SIZEOF_STRUCT_PERSON Adding number conversion cast (unumber) 0 in print_person::$6 = 0 != print_person::$1[print_person::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast (unumber)1*SIZEOF_STRUCT_PERSON Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#11 Alias idx#1 = idx#12 idx#13 idx#2 @@ -195,9 +195,9 @@ Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Inlining Noop Cast [4] print_person::$3 = (byte*)print_person::person#2 keeping print_person::person#2 -Inlining Noop Cast [10] print_person::$4 = (byte*)print_person::person#2 keeping print_person::person#2 -Inlining Noop Cast [13] print_person::$5 = (byte*)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [4] print_person::$3 = (char *)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [10] print_person::$4 = (char *)print_person::person#2 keeping print_person::person#2 +Inlining Noop Cast [13] print_person::$5 = (char *)print_person::person#2 keeping print_person::person#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings print_person::person#0 Inlining constant with var siblings print_person::person#1 @@ -208,8 +208,8 @@ Constant inlined print_person::person#0 = persons Constant inlined print_person::i#0 = 0 Constant inlined print_person::person#1 = persons+1*SIZEOF_STRUCT_PERSON Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 @@ -231,21 +231,21 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_person + [1] call print_person to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print_person + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(struct Person* print_person::person) +void print_person(struct Person *person) print_person: scope:[print_person] from main main::@1 [5] idx#14 = phi( main/0, main::@1/idx#17 ) [5] print_person::person#2 = phi( main/persons, main::@1/persons+1*SIZEOF_STRUCT_PERSON ) - [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] + [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [7] idx#3 = ++ idx#14 [8] SCREEN[idx#3] = ' ' [9] idx#4 = ++ idx#3 @@ -253,7 +253,7 @@ print_person: scope:[print_person] from main main::@1 print_person::@1: scope:[print_person] from print_person print_person::@2 [10] idx#15 = phi( print_person/idx#4, print_person::@2/idx#5 ) [10] print_person::i#2 = phi( print_person/0, print_person::@2/print_person::i#1 ) - [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 to:print_person::@3 print_person::@3: scope:[print_person] from print_person::@1 @@ -264,7 +264,7 @@ print_person::@return: scope:[print_person] from print_person::@3 [15] return to:@return print_person::@2: scope:[print_person] from print_person::@1 - [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME + [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [18] idx#5 = ++ idx#15 [19] print_person::i#1 = ++ print_person::i#2 @@ -272,22 +272,22 @@ print_person::@2: scope:[print_person] from print_person::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#14 12.0 -byte idx#15 55.999999999999986 -byte idx#17 3.25 -byte idx#3 16.5 -byte idx#4 22.0 -byte idx#5 101.0 +char idx +char idx#14 // 12.0 +char idx#15 // 55.999999999999986 +char idx#17 // 3.25 +char idx#3 // 16.5 +char idx#4 // 22.0 +char idx#5 // 101.0 void main() -void print_person(struct Person* print_person::person) -byte*~ print_person::$1 202.0 -byte*~ print_person::$2 202.0 -byte print_person::i -byte print_person::i#1 202.0 -byte print_person::i#2 67.33333333333333 -struct Person* print_person::person -struct Person* print_person::person#2 +void print_person(struct Person *person) +char *print_person::$1 // 202.0 +char *print_person::$2 // 202.0 +char print_person::i +char print_person::i#1 // 202.0 +char print_person::i#2 // 67.33333333333333 +struct Person *print_person::person +struct Person *print_person::person#2 Initial phi equivalence classes [ print_person::person#2 ] @@ -313,24 +313,24 @@ Allocated zp[1]:7 [ idx#3 ] Allocated zp[2]:8 [ print_person::$1 ] Allocated zp[2]:10 [ print_person::$2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#14 idx#17 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ idx#14 idx#17 ] Statement [8] SCREEN[idx#3] = ' ' [ print_person::person#2 idx#3 ] ( print_person:1 [ print_person::person#2 idx#3 ] { } print_person:3 [ print_person::person#2 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ idx#3 ] -Statement [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ print_person::i#2 print_person::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:6 [ idx#15 idx#4 idx#5 ] Statement [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [13] SCREEN[idx#15] = ' ' [ idx#15 ] ( print_person:1 [ idx#15 ] { } print_person:3 [ idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] [ print_person::person#2 idx#14 ] ( print_person:1 [ print_person::person#2 idx#14 ] { } print_person:3 [ print_person::person#2 idx#14 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [8] SCREEN[idx#3] = ' ' [ print_person::person#2 idx#3 ] ( print_person:1 [ print_person::person#2 idx#3 ] { } print_person:3 [ print_person::person#2 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$1 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [12] if(0!=print_person::$1[print_person::i#2]) goto print_person::@2 [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [13] SCREEN[idx#15] = ' ' [ idx#15 ] ( print_person:1 [ idx#15 ] { } print_person:3 [ idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a +Statement [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 print_person::$2 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [17] SCREEN[idx#15] = print_person::$2[print_person::i#2] [ print_person::person#2 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person#2 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person#2 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ print_person::person#2 ] : zp[2]:2 , Potential registers zp[1]:4 [ idx#14 idx#17 ] : zp[1]:4 , reg byte x , @@ -372,7 +372,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] print_person_from_main: // [5] phi idx#14 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 @@ -388,7 +388,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi idx#14 = idx#17 [phi:main::@1->print_person#0] -- register_copy @@ -405,12 +405,12 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __1 = 4 .label __2 = 6 .label person = 2 - // [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) + // [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda (person),y tay @@ -431,7 +431,7 @@ print_person: { jmp __b1 // print_person::@1 __b1: - // [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person @@ -458,7 +458,7 @@ print_person: { rts // print_person::@2 __b2: - // [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person @@ -512,27 +512,27 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = $11 -byte idx -byte idx#14 reg byte x 12.0 -byte idx#15 reg byte x 55.999999999999986 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = $11 +char idx +char idx#14 // reg byte x 12.0 +char idx#15 // reg byte x 55.999999999999986 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -constant struct Person* persons[] = { { id: 4, name: "jesper" }, { id: 7, name: "henriette" } } -void print_person(struct Person* print_person::person) -byte*~ print_person::$1 zp[2]:4 202.0 -byte*~ print_person::$2 zp[2]:6 202.0 -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 67.33333333333333 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +__constant struct Person persons[] = { { id: 4, name: "jesper" }, { id: 7, name: "henriette" } } +void print_person(struct Person *person) +char *print_person::$1 // zp[2]:4 202.0 +char *print_person::$2 // zp[2]:6 202.0 +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 67.33333333333333 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 ] reg byte x [ idx#14 idx#17 ] @@ -565,7 +565,7 @@ Score: 740 // main main: { // print_person(persons) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi idx#14 = 0 [phi:main->print_person#0] -- vbuxx=vbuc1 ldx #0 @@ -578,7 +578,7 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_person(persons+1) - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] // [5] phi idx#14 = idx#17 [phi:main::@1->print_person#0] -- register_copy // [5] phi print_person::person#2 = persons+1*SIZEOF_STRUCT_PERSON [phi:main::@1->print_person#1] -- pssz1=pssc1 @@ -593,13 +593,13 @@ main: { rts } // print_person -// print_person(struct Person* zp(2) person) +// void print_person(__zp(2) struct Person *person) print_person: { .label __1 = 4 .label __2 = 6 .label person = 2 // SCREEN[idx++] = DIGIT[person->id] - // [6] SCREEN[idx#14] = DIGIT[*((byte*)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) + // [6] SCREEN[idx#14] = DIGIT[*((char *)print_person::person#2)] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_(_deref_pbuz1) ldy #0 lda (person),y tay @@ -622,7 +622,7 @@ print_person: { // print_person::@1 __b1: // for(byte i=0; person->name[i]; i++) - // [11] print_person::$1 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [11] print_person::$1 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person @@ -649,7 +649,7 @@ print_person: { // print_person::@2 __b2: // SCREEN[idx++] = person->name[i] - // [16] print_person::$2 = (byte*)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 + // [16] print_person::$2 = (char *)print_person::person#2 + OFFSET_STRUCT_PERSON_NAME -- pbuz1=pbuz2_plus_vbuc1 lda #OFFSET_STRUCT_PERSON_NAME clc adc.z person diff --git a/src/test/ref/struct-ptr-31.sym b/src/test/ref/struct-ptr-31.sym index f6502adef..19424b88c 100644 --- a/src/test/ref/struct-ptr-31.sym +++ b/src/test/ref/struct-ptr-31.sym @@ -1,24 +1,24 @@ -constant byte* DIGIT[] = "0123456789" -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_PERSON = $11 -byte idx -byte idx#14 reg byte x 12.0 -byte idx#15 reg byte x 55.999999999999986 -byte idx#17 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant char DIGIT[] = "0123456789" +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_PERSON = $11 +char idx +char idx#14 // reg byte x 12.0 +char idx#15 // reg byte x 55.999999999999986 +char idx#17 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -constant struct Person* persons[] = { { id: 4, name: "jesper" }, { id: 7, name: "henriette" } } -void print_person(struct Person* print_person::person) -byte*~ print_person::$1 zp[2]:4 202.0 -byte*~ print_person::$2 zp[2]:6 202.0 -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 67.33333333333333 -struct Person* print_person::person -struct Person* print_person::person#2 person zp[2]:2 +__constant struct Person persons[] = { { id: 4, name: "jesper" }, { id: 7, name: "henriette" } } +void print_person(struct Person *person) +char *print_person::$1 // zp[2]:4 202.0 +char *print_person::$2 // zp[2]:6 202.0 +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 67.33333333333333 +struct Person *print_person::person +struct Person *print_person::person#2 // person zp[2]:2 zp[2]:2 [ print_person::person#2 ] reg byte x [ idx#14 idx#17 ] diff --git a/src/test/ref/struct-ptr-32.cfg b/src/test/ref/struct-ptr-32.cfg index 6d65299f8..edecf217d 100644 --- a/src/test/ref/struct-ptr-32.cfg +++ b/src/test/ref/struct-ptr-32.cfg @@ -1,14 +1,14 @@ void main() main: scope:[main] from - [0] *((byte*)persons) = 7 - [1] *((byte*)persons+1*SIZEOF_STRUCT_PERSON) = 9 - [2] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' - [3] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' - [4] *((word*)persons+OFFSET_STRUCT_PERSON_AGE) = $141 - [5] *((word*)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b - [6] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) - [7] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) + [0] *((char *)persons) = 7 + [1] *((char *)persons+1*SIZEOF_STRUCT_PERSON) = 9 + [2] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' + [3] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' + [4] *((unsigned int *)persons+OFFSET_STRUCT_PERSON_AGE) = $141 + [5] *((unsigned int *)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b + [6] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) + [7] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) to:main::@return main::@return: scope:[main] from main [8] return diff --git a/src/test/ref/struct-ptr-32.log b/src/test/ref/struct-ptr-32.log index 01fde5e51..91fda1fb7 100644 --- a/src/test/ref/struct-ptr-32.log +++ b/src/test/ref/struct-ptr-32.log @@ -8,29 +8,29 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::$0 = 0 * SIZEOF_STRUCT_PERSON - main::$6 = (byte*)persons + main::$0 + main::$6 = (char *)persons + main::$0 main::$6[OFFSET_STRUCT_PERSON_ID] = 7 main::$1 = 1 * SIZEOF_STRUCT_PERSON - main::$7 = (byte*)persons + main::$1 + main::$7 = (char *)persons + main::$1 main::$7[OFFSET_STRUCT_PERSON_ID] = 9 main::$2 = 0 * SIZEOF_STRUCT_PERSON - main::$8 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME + main::$2 + main::$8 = (char *)persons+OFFSET_STRUCT_PERSON_NAME + main::$2 main::$8[8] = 'a' main::$3 = 1 * SIZEOF_STRUCT_PERSON - main::$9 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME + main::$3 + main::$9 = (char *)persons+OFFSET_STRUCT_PERSON_NAME + main::$3 main::$9[8] = 'b' main::$4 = 0 * SIZEOF_STRUCT_PERSON - main::$10 = (word*)persons + main::$4 + main::$10 = (unsigned int *)persons + main::$4 main::$10[OFFSET_STRUCT_PERSON_AGE] = $141 main::$5 = 1 * SIZEOF_STRUCT_PERSON - main::$11 = (word*)persons + main::$5 + main::$11 = (unsigned int *)persons + main::$5 main::$11[OFFSET_STRUCT_PERSON_AGE] = $7b main::person#0 = persons - main::$14 = (byte*)main::person#0 + main::$14 = (char *)main::person#0 main::$12 = main::$14 + OFFSET_STRUCT_PERSON_NAME main::SCREEN[0] = main::$12[8] main::person#1 = main::person#0 + SIZEOF_STRUCT_PERSON - main::$15 = (byte*)main::person#1 + main::$15 = (char *)main::person#1 main::$13 = main::$15 + OFFSET_STRUCT_PERSON_NAME main::SCREEN[1] = main::$13[8] to:main::@return @@ -40,7 +40,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -49,33 +49,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_PERSON_AGE = $e -constant byte OFFSET_STRUCT_PERSON_ID = 0 -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte SIZEOF_STRUCT_PERSON = $10 +__constant char OFFSET_STRUCT_PERSON_AGE = $e +__constant char OFFSET_STRUCT_PERSON_ID = 0 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char SIZEOF_STRUCT_PERSON = $10 void __start() void main() -number~ main::$0 -number~ main::$1 -word*~ main::$10 -word*~ main::$11 -byte*~ main::$12 -byte*~ main::$13 -byte*~ main::$14 -byte*~ main::$15 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -byte*~ main::$6 -byte*~ main::$7 -byte*~ main::$8 -byte*~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -struct Person* main::person -struct Person* main::person#0 -struct Person* main::person#1 -constant struct Person* persons[2] = { fill( 2, 0) } +number main::$0 +number main::$1 +unsigned int *main::$10 +unsigned int *main::$11 +char *main::$12 +char *main::$13 +char *main::$14 +char *main::$15 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +char *main::$6 +char *main::$7 +char *main::$8 +char *main::$9 +__constant char * const main::SCREEN = (char *)$400 +struct Person *main::person +struct Person *main::person#0 +struct Person *main::person#1 +__constant struct Person persons[2] = { fill( 2, 0) } Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_STRUCT_PERSON Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_STRUCT_PERSON @@ -105,7 +105,7 @@ Inlining cast main::$7[OFFSET_STRUCT_PERSON_ID] = (unumber)9 Inlining cast main::$10[OFFSET_STRUCT_PERSON_AGE] = (unumber)$141 Inlining cast main::$11[OFFSET_STRUCT_PERSON_AGE] = (unumber)$7b Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 7 Simplifying constant integer cast 1 @@ -123,29 +123,29 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $141 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $7b -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $141 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $7b +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_STRUCT_PERSON -Inferred type updated to byte in main::$1 = 1 * SIZEOF_STRUCT_PERSON -Inferred type updated to byte in main::$2 = 0 * SIZEOF_STRUCT_PERSON -Inferred type updated to byte in main::$3 = 1 * SIZEOF_STRUCT_PERSON -Inferred type updated to byte in main::$4 = 0 * SIZEOF_STRUCT_PERSON -Inferred type updated to byte in main::$5 = 1 * SIZEOF_STRUCT_PERSON +Inferred type updated to char in main::$0 = 0 * SIZEOF_STRUCT_PERSON +Inferred type updated to char in main::$1 = 1 * SIZEOF_STRUCT_PERSON +Inferred type updated to char in main::$2 = 0 * SIZEOF_STRUCT_PERSON +Inferred type updated to char in main::$3 = 1 * SIZEOF_STRUCT_PERSON +Inferred type updated to char in main::$4 = 0 * SIZEOF_STRUCT_PERSON +Inferred type updated to char in main::$5 = 1 * SIZEOF_STRUCT_PERSON Constant right-side identified [0] main::$0 = 0 * SIZEOF_STRUCT_PERSON Constant right-side identified [3] main::$1 = 1 * SIZEOF_STRUCT_PERSON Constant right-side identified [6] main::$2 = 0 * SIZEOF_STRUCT_PERSON @@ -161,17 +161,17 @@ Constant main::$4 = 0*SIZEOF_STRUCT_PERSON Constant main::$5 = 1*SIZEOF_STRUCT_PERSON Constant main::person#0 = persons Successful SSA optimization Pass2ConstantIdentification -Constant main::$14 = (byte*)main::person#0 +Constant main::$14 = (char *)main::person#0 Successful SSA optimization Pass2ConstantIdentification Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_PERSON in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_PERSON in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_PERSON in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)persons in [1] main::$6 = (byte*)persons + main::$0 +Simplifying expression containing zero (char *)persons in [1] main::$6 = (char *)persons + main::$0 Simplifying expression containing zero main::$6 in [2] main::$6[OFFSET_STRUCT_PERSON_ID] = 7 Simplifying expression containing zero main::$7 in [5] main::$7[OFFSET_STRUCT_PERSON_ID] = 9 -Simplifying expression containing zero (byte*)persons+OFFSET_STRUCT_PERSON_NAME in [7] main::$8 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME + main::$2 -Simplifying expression containing zero (word*)persons in [13] main::$10 = (word*)persons + main::$4 +Simplifying expression containing zero (char *)persons+OFFSET_STRUCT_PERSON_NAME in [7] main::$8 = (char *)persons+OFFSET_STRUCT_PERSON_NAME + main::$2 +Simplifying expression containing zero (unsigned int *)persons in [13] main::$10 = (unsigned int *)persons + main::$4 Simplifying expression containing zero main::SCREEN in [21] main::SCREEN[0] = main::$12[8] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 @@ -184,55 +184,55 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [2] main::$7 = (byte*)persons + main::$1 -Constant right-side identified [6] main::$9 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME + main::$3 -Constant right-side identified [10] main::$11 = (word*)persons + main::$5 +Constant right-side identified [2] main::$7 = (char *)persons + main::$1 +Constant right-side identified [6] main::$9 = (char *)persons+OFFSET_STRUCT_PERSON_NAME + main::$3 +Constant right-side identified [10] main::$11 = (unsigned int *)persons + main::$5 Constant right-side identified [12] main::$12 = main::$14 + OFFSET_STRUCT_PERSON_NAME Constant right-side identified [14] main::person#1 = main::person#0 + SIZEOF_STRUCT_PERSON Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$6 = (byte*)persons -Constant main::$7 = (byte*)persons+main::$1 -Constant main::$8 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME -Constant main::$9 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME+main::$3 -Constant main::$10 = (word*)persons -Constant main::$11 = (word*)persons+main::$5 +Constant main::$6 = (char *)persons +Constant main::$7 = (char *)persons+main::$1 +Constant main::$8 = (char *)persons+OFFSET_STRUCT_PERSON_NAME +Constant main::$9 = (char *)persons+OFFSET_STRUCT_PERSON_NAME+main::$3 +Constant main::$10 = (unsigned int *)persons +Constant main::$11 = (unsigned int *)persons+main::$5 Constant main::$12 = main::$14+OFFSET_STRUCT_PERSON_NAME Constant main::person#1 = main::person#0+SIZEOF_STRUCT_PERSON Successful SSA optimization Pass2ConstantIdentification -Constant main::$15 = (byte*)main::person#1 +Constant main::$15 = (char *)main::person#1 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [7] main::$13 = main::$15 + OFFSET_STRUCT_PERSON_NAME Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$13 = main::$15+OFFSET_STRUCT_PERSON_NAME Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::person#0 -Constant inlined main::$12 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME -Constant inlined main::$13 = (byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME -Constant inlined main::$14 = (byte*)persons -Constant inlined main::$15 = (byte*)main::person#1 -Constant inlined main::$10 = (word*)persons -Constant inlined main::$11 = (word*)persons+1*SIZEOF_STRUCT_PERSON +Constant inlined main::$12 = (char *)persons+OFFSET_STRUCT_PERSON_NAME +Constant inlined main::$13 = (char *)main::person#1+OFFSET_STRUCT_PERSON_NAME +Constant inlined main::$14 = (char *)persons +Constant inlined main::$15 = (char *)main::person#1 +Constant inlined main::$10 = (unsigned int *)persons +Constant inlined main::$11 = (unsigned int *)persons+1*SIZEOF_STRUCT_PERSON Constant inlined main::$1 = 1*SIZEOF_STRUCT_PERSON Constant inlined main::$5 = 1*SIZEOF_STRUCT_PERSON -Constant inlined main::$6 = (byte*)persons +Constant inlined main::$6 = (char *)persons Constant inlined main::$3 = 1*SIZEOF_STRUCT_PERSON -Constant inlined main::$9 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON -Constant inlined main::$7 = (byte*)persons+1*SIZEOF_STRUCT_PERSON +Constant inlined main::$9 = (char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON +Constant inlined main::$7 = (char *)persons+1*SIZEOF_STRUCT_PERSON Constant inlined main::person#0 = persons -Constant inlined main::$8 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME +Constant inlined main::$8 = (char *)persons+OFFSET_STRUCT_PERSON_NAME Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) -Consolidated array index constant in *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) -Consolidated array index constant in *((word*)persons+OFFSET_STRUCT_PERSON_AGE) -Consolidated array index constant in *((word*)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) -Consolidated array index constant in *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) -Consolidated array index constant in *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) +Consolidated array index constant in *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) +Consolidated array index constant in *((char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) +Consolidated array index constant in *((unsigned int *)persons+OFFSET_STRUCT_PERSON_AGE) +Consolidated array index constant in *((unsigned int *)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) +Consolidated array index constant in *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) +Consolidated array index constant in *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) Consolidated array index constant in *(main::SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -243,14 +243,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)persons) = 7 - [1] *((byte*)persons+1*SIZEOF_STRUCT_PERSON) = 9 - [2] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' - [3] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' - [4] *((word*)persons+OFFSET_STRUCT_PERSON_AGE) = $141 - [5] *((word*)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b - [6] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) - [7] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) + [0] *((char *)persons) = 7 + [1] *((char *)persons+1*SIZEOF_STRUCT_PERSON) = 9 + [2] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' + [3] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' + [4] *((unsigned int *)persons+OFFSET_STRUCT_PERSON_AGE) = $141 + [5] *((unsigned int *)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b + [6] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) + [7] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) to:main::@return main::@return: scope:[main] from main [8] return @@ -259,19 +259,19 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Person* main::person +struct Person *main::person Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)persons) = 7 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)persons+1*SIZEOF_STRUCT_PERSON) = 9 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((word*)persons+OFFSET_STRUCT_PERSON_AGE) = $141 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((word*)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)persons) = 7 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)persons+1*SIZEOF_STRUCT_PERSON) = 9 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((unsigned int *)persons+OFFSET_STRUCT_PERSON_AGE) = $141 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((unsigned int *)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [Person] @@ -303,32 +303,32 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label SCREEN = $400 .label person = persons+SIZEOF_STRUCT_PERSON - // [0] *((byte*)persons) = 7 -- _deref_pbuc1=vbuc2 + // [0] *((char *)persons) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta persons - // [1] *((byte*)persons+1*SIZEOF_STRUCT_PERSON) = 9 -- _deref_pbuc1=vbuc2 + // [1] *((char *)persons+1*SIZEOF_STRUCT_PERSON) = 9 -- _deref_pbuc1=vbuc2 lda #9 sta persons+1*SIZEOF_STRUCT_PERSON - // [2] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' -- _deref_pbuc1=vbuc2 + // [2] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' -- _deref_pbuc1=vbuc2 lda #'a' sta persons+OFFSET_STRUCT_PERSON_NAME+8 - // [3] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' -- _deref_pbuc1=vbuc2 + // [3] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' -- _deref_pbuc1=vbuc2 lda #'b' sta persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8 - // [4] *((word*)persons+OFFSET_STRUCT_PERSON_AGE) = $141 -- _deref_pwuc1=vwuc2 + // [4] *((unsigned int *)persons+OFFSET_STRUCT_PERSON_AGE) = $141 -- _deref_pwuc1=vwuc2 lda #<$141 sta persons+OFFSET_STRUCT_PERSON_AGE lda #>$141 sta persons+OFFSET_STRUCT_PERSON_AGE+1 - // [5] *((word*)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b -- _deref_pwuc1=vbuc2 + // [5] *((unsigned int *)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b -- _deref_pwuc1=vbuc2 lda #<$7b sta persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE lda #>$7b sta persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE+1 - // [6] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 + // [6] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 lda persons+OFFSET_STRUCT_PERSON_NAME+8 sta SCREEN - // [7] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 lda person+OFFSET_STRUCT_PERSON_NAME+8 sta SCREEN+1 jmp __breturn @@ -348,14 +348,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_PERSON_AGE = $e -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte SIZEOF_STRUCT_PERSON = $10 +__constant char OFFSET_STRUCT_PERSON_AGE = $e +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char SIZEOF_STRUCT_PERSON = $10 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Person* main::person -constant struct Person* main::person#1 person = persons+SIZEOF_STRUCT_PERSON -constant struct Person* persons[2] = { fill( 2, 0) } +__constant char * const main::SCREEN = (char *) 1024 +struct Person *main::person +__constant struct Person *main::person#1 = persons+SIZEOF_STRUCT_PERSON // person +__constant struct Person persons[2] = { fill( 2, 0) } @@ -383,39 +383,39 @@ main: { .label SCREEN = $400 .label person = persons+SIZEOF_STRUCT_PERSON // persons[0].id = 7 - // [0] *((byte*)persons) = 7 -- _deref_pbuc1=vbuc2 + // [0] *((char *)persons) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta persons // persons[1].id = 9 - // [1] *((byte*)persons+1*SIZEOF_STRUCT_PERSON) = 9 -- _deref_pbuc1=vbuc2 + // [1] *((char *)persons+1*SIZEOF_STRUCT_PERSON) = 9 -- _deref_pbuc1=vbuc2 lda #9 sta persons+1*SIZEOF_STRUCT_PERSON // persons[0].name[8] = 'a' - // [2] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' -- _deref_pbuc1=vbuc2 + // [2] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) = 'a' -- _deref_pbuc1=vbuc2 lda #'a' sta persons+OFFSET_STRUCT_PERSON_NAME+8 // persons[1].name[8] = 'b' - // [3] *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' -- _deref_pbuc1=vbuc2 + // [3] *((char *)persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8) = 'b' -- _deref_pbuc1=vbuc2 lda #'b' sta persons+OFFSET_STRUCT_PERSON_NAME+1*SIZEOF_STRUCT_PERSON+8 // persons[0].age = 321 - // [4] *((word*)persons+OFFSET_STRUCT_PERSON_AGE) = $141 -- _deref_pwuc1=vwuc2 + // [4] *((unsigned int *)persons+OFFSET_STRUCT_PERSON_AGE) = $141 -- _deref_pwuc1=vwuc2 lda #<$141 sta persons+OFFSET_STRUCT_PERSON_AGE lda #>$141 sta persons+OFFSET_STRUCT_PERSON_AGE+1 // persons[1].age = 123 - // [5] *((word*)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b -- _deref_pwuc1=vbuc2 + // [5] *((unsigned int *)persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE) = $7b -- _deref_pwuc1=vbuc2 lda #<$7b sta persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE lda #>$7b sta persons+1*SIZEOF_STRUCT_PERSON+OFFSET_STRUCT_PERSON_AGE+1 // SCREEN[0] = person->name[8] - // [6] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 + // [6] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 lda persons+OFFSET_STRUCT_PERSON_NAME+8 sta SCREEN // SCREEN[1] = person->name[8] - // [7] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+8) -- _deref_pbuc1=_deref_pbuc2 lda person+OFFSET_STRUCT_PERSON_NAME+8 sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-ptr-32.sym b/src/test/ref/struct-ptr-32.sym index 2f89b950d..b78d0701e 100644 --- a/src/test/ref/struct-ptr-32.sym +++ b/src/test/ref/struct-ptr-32.sym @@ -1,9 +1,9 @@ -constant byte OFFSET_STRUCT_PERSON_AGE = $e -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte SIZEOF_STRUCT_PERSON = $10 +__constant char OFFSET_STRUCT_PERSON_AGE = $e +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char SIZEOF_STRUCT_PERSON = $10 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Person* main::person -constant struct Person* main::person#1 person = persons+SIZEOF_STRUCT_PERSON -constant struct Person* persons[2] = { fill( 2, 0) } +__constant char * const main::SCREEN = (char *) 1024 +struct Person *main::person +__constant struct Person *main::person#1 = persons+SIZEOF_STRUCT_PERSON // person +__constant struct Person persons[2] = { fill( 2, 0) } diff --git a/src/test/ref/struct-ptr-33.cfg b/src/test/ref/struct-ptr-33.cfg index 211a9a028..0d89443df 100644 --- a/src/test/ref/struct-ptr-33.cfg +++ b/src/test/ref/struct-ptr-33.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+2) - [1] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) + [0] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+2) + [1] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/struct-ptr-33.log b/src/test/ref/struct-ptr-33.log index 8e44626ff..9334a69f9 100644 --- a/src/test/ref/struct-ptr-33.log +++ b/src/test/ref/struct-ptr-33.log @@ -10,11 +10,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::person#0 = persons - main::$2 = (byte*)main::person#0 + main::$2 = (char *)main::person#0 main::$0 = main::$2 + OFFSET_STRUCT_PERSON_NAME main::SCREEN[0] = main::$0[2] main::person#1 = main::person#0 + SIZEOF_STRUCT_PERSON - main::$3 = (byte*)main::person#1 + main::$3 = (char *)main::person#1 main::$1 = main::$3 + OFFSET_STRUCT_PERSON_NAME main::SCREEN[1] = main::$1[2] to:main::@return @@ -24,7 +24,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,39 +33,39 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte SIZEOF_STRUCT_PERSON = $10 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char SIZEOF_STRUCT_PERSON = $10 void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -constant byte* const main::SCREEN = (byte*)$400 -struct Person* main::person -struct Person* main::person#0 -struct Person* main::person#1 -constant struct Person* persons[2] = { { id: 7, name: "jesper", age: $141 }, { id: 9, name: "henry", age: $7b } } +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +__constant char * const main::SCREEN = (char *)$400 +struct Person *main::person +struct Person *main::person#0 +struct Person *main::person#1 +__constant struct Person persons[2] = { { id: 7, name: "jesper", age: $141 }, { id: 9, name: "henry", age: $7b } } Adding number conversion cast (unumber) 2 in main::SCREEN[0] = main::$0[2] Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0[(unumber)2] Adding number conversion cast (unumber) 2 in main::SCREEN[1] = main::$1[2] Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$1[(unumber)2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::person#0 = persons Successful SSA optimization Pass2ConstantIdentification -Constant main::$2 = (byte*)main::person#0 +Constant main::$2 = (char *)main::person#0 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero main::SCREEN in [3] main::SCREEN[0] = main::$0[2] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -80,26 +80,26 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$0 = main::$2+OFFSET_STRUCT_PERSON_NAME Constant main::person#1 = main::person#0+SIZEOF_STRUCT_PERSON Successful SSA optimization Pass2ConstantIdentification -Constant main::$3 = (byte*)main::person#1 +Constant main::$3 = (char *)main::person#1 Successful SSA optimization Pass2ConstantIdentification Constant right-side identified [1] main::$1 = main::$3 + OFFSET_STRUCT_PERSON_NAME Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$1 = main::$3+OFFSET_STRUCT_PERSON_NAME Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::person#0 -Constant inlined main::$3 = (byte*)main::person#1 -Constant inlined main::$1 = (byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME -Constant inlined main::$2 = (byte*)persons +Constant inlined main::$3 = (char *)main::person#1 +Constant inlined main::$1 = (char *)main::person#1+OFFSET_STRUCT_PERSON_NAME +Constant inlined main::$2 = (char *)persons Constant inlined main::person#0 = persons -Constant inlined main::$0 = (byte*)persons+OFFSET_STRUCT_PERSON_NAME +Constant inlined main::$0 = (char *)persons+OFFSET_STRUCT_PERSON_NAME Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+2) -Consolidated array index constant in *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) +Consolidated array index constant in *((char *)persons+OFFSET_STRUCT_PERSON_NAME+2) +Consolidated array index constant in *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) Consolidated array index constant in *(main::SCREEN+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -110,8 +110,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+2) - [1] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) + [0] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+2) + [1] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) to:main::@return main::@return: scope:[main] from main [2] return @@ -120,13 +120,13 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Person* main::person +struct Person *main::person Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+2) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [Person] @@ -157,10 +157,10 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label SCREEN = $400 .label person = persons+SIZEOF_STRUCT_PERSON - // [0] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 lda persons+OFFSET_STRUCT_PERSON_NAME+2 sta SCREEN - // [1] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 lda person+OFFSET_STRUCT_PERSON_NAME+2 sta SCREEN+1 jmp __breturn @@ -189,13 +189,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte SIZEOF_STRUCT_PERSON = $10 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char SIZEOF_STRUCT_PERSON = $10 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Person* main::person -constant struct Person* main::person#1 person = persons+SIZEOF_STRUCT_PERSON -constant struct Person* persons[2] = { { id: 7, name: "jesper", age: $141 }, { id: 9, name: "henry", age: $7b } } +__constant char * const main::SCREEN = (char *) 1024 +struct Person *main::person +__constant struct Person *main::person#1 = persons+SIZEOF_STRUCT_PERSON // person +__constant struct Person persons[2] = { { id: 7, name: "jesper", age: $141 }, { id: 9, name: "henry", age: $7b } } @@ -222,11 +222,11 @@ main: { .label SCREEN = $400 .label person = persons+SIZEOF_STRUCT_PERSON // SCREEN[0] = person->name[2] - // [0] *main::SCREEN = *((byte*)persons+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)persons+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 lda persons+OFFSET_STRUCT_PERSON_NAME+2 sta SCREEN // SCREEN[1] = person->name[2] - // [1] *(main::SCREEN+1) = *((byte*)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)main::person#1+OFFSET_STRUCT_PERSON_NAME+2) -- _deref_pbuc1=_deref_pbuc2 lda person+OFFSET_STRUCT_PERSON_NAME+2 sta SCREEN+1 // main::@return diff --git a/src/test/ref/struct-ptr-33.sym b/src/test/ref/struct-ptr-33.sym index 5037d4223..24e7c6085 100644 --- a/src/test/ref/struct-ptr-33.sym +++ b/src/test/ref/struct-ptr-33.sym @@ -1,8 +1,8 @@ -constant byte OFFSET_STRUCT_PERSON_NAME = 1 -constant byte SIZEOF_STRUCT_PERSON = $10 +__constant char OFFSET_STRUCT_PERSON_NAME = 1 +__constant char SIZEOF_STRUCT_PERSON = $10 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Person* main::person -constant struct Person* main::person#1 person = persons+SIZEOF_STRUCT_PERSON -constant struct Person* persons[2] = { { id: 7, name: "jesper", age: $141 }, { id: 9, name: "henry", age: $7b } } +__constant char * const main::SCREEN = (char *) 1024 +struct Person *main::person +__constant struct Person *main::person#1 = persons+SIZEOF_STRUCT_PERSON // person +__constant struct Person persons[2] = { { id: 7, name: "jesper", age: $141 }, { id: 9, name: "henry", age: $7b } } diff --git a/src/test/ref/struct-ptr-34.asm b/src/test/ref/struct-ptr-34.asm index fdf6e07bf..43d82badb 100644 --- a/src/test/ref/struct-ptr-34.asm +++ b/src/test/ref/struct-ptr-34.asm @@ -50,7 +50,7 @@ main: { henriette_name: .fill $10, 0 } .segment Code -// print_person(byte register(X) person_id, byte* zp(3) person_name) +// void print_person(__register(X) char person_id, __zp(3) char *person_name) print_person: { .label person_name = 3 // SCREEN[idx++] = DIGIT[person.id] diff --git a/src/test/ref/struct-ptr-34.cfg b/src/test/ref/struct-ptr-34.cfg index 4a9a3a4e8..a6031dd27 100644 --- a/src/test/ref/struct-ptr-34.cfg +++ b/src/test/ref/struct-ptr-34.cfg @@ -1,18 +1,18 @@ void main() main: scope:[main] from - [0] *main::jesper_name = memcpy(*(&$0), byte, $10) - [1] call print_person + [0] *main::jesper_name = memcpy(*(&$0), char, $10) + [1] call print_person to:main::@1 main::@1: scope:[main] from main - [2] *main::henriette_name = memcpy(*(&$1), byte, $10) - [3] call print_person + [2] *main::henriette_name = memcpy(*(&$1), char, $10) + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(byte print_person::person_id , byte* print_person::person_name) +void print_person(char person_id , char *person_name) print_person: scope:[print_person] from main main::@1 [5] print_person::person_name#4 = phi( main/main::jesper_name, main::@1/main::henriette_name ) [5] idx#14 = phi( main/0, main::@1/idx#17 ) diff --git a/src/test/ref/struct-ptr-34.log b/src/test/ref/struct-ptr-34.log index 5d8c7e337..af222541a 100644 --- a/src/test/ref/struct-ptr-34.log +++ b/src/test/ref/struct-ptr-34.log @@ -5,25 +5,25 @@ Fixing struct type size struct Person to 17 Fixing struct type size struct Person to 17 Fixing struct type SIZE_OF struct Person to 17 Fixing struct type SIZE_OF struct Person to 17 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 idx#20 = phi( __start::@1/idx#22 ) - *main::jesper_name = memcpy(*(&$0), byte, $10) + *main::jesper_name = memcpy(*(&$0), char, $10) print_person::person_id#0 = main::jesper_id print_person::person_name#0 = main::jesper_name - call print_person + call print_person to:main::@1 main::@1: scope:[main] from main idx#11 = phi( main/idx#7 ) idx#0 = idx#11 - *main::henriette_name = memcpy(*(&$1), byte, $10) + *main::henriette_name = memcpy(*(&$1), char, $10) print_person::person_id#1 = main::henriette_id print_person::person_name#1 = main::henriette_name - call print_person + call print_person to:main::@2 main::@2: scope:[main] from main::@1 idx#12 = phi( main::@1/idx#7 ) @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print_person(byte print_person::person_id , byte* print_person::person_name) +void print_person(char person_id , char *person_name) print_person: scope:[print_person] from main main::@1 print_person::person_name#4 = phi( main/print_person::person_name#0, main::@1/print_person::person_name#1 ) idx#14 = phi( main/idx#20, main::@1/idx#0 ) @@ -80,7 +80,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#22 = phi( __start::__init1/idx#8 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#18 = phi( __start::@1/idx#2 ) @@ -93,65 +93,65 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* $0[$10] = "jesper" -constant byte* $1[$10] = "henriette" -constant byte* DIGIT[] = "0123456789" -constant byte* const SCREEN = (byte*)$400 +__constant char $0[$10] = "jesper" +__constant char $1[$10] = "henriette" +__constant char DIGIT[] = "0123456789" +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -constant byte main::henriette_id = 7 -constant byte* main::henriette_name[$10] = { fill( $10, 0) } -constant byte main::jesper_id = 4 -constant byte* main::jesper_name[$10] = { fill( $10, 0) } -void print_person(byte print_person::person_id , byte* print_person::person_name) -bool~ print_person::$0 -byte print_person::i -byte print_person::i#0 -byte print_person::i#1 -byte print_person::i#2 -byte print_person::i#3 +__constant char main::henriette_id = 7 +__constant char main::henriette_name[$10] = { fill( $10, 0) } +__constant char main::jesper_id = 4 +__constant char main::jesper_name[$10] = { fill( $10, 0) } +void print_person(char person_id , char *person_name) +bool print_person::$0 +char print_person::i +char print_person::i#0 +char print_person::i#1 +char print_person::i#2 +char print_person::i#3 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#0 -byte print_person::person_id#1 -byte print_person::person_id#2 -byte* print_person::person_name -byte* print_person::person_name#0 -byte* print_person::person_name#1 -byte* print_person::person_name#2 -byte* print_person::person_name#3 -byte* print_person::person_name#4 +char print_person::person_id +char print_person::person_id#0 +char print_person::person_id#1 +char print_person::person_id#2 +char *print_person::person_name +char *print_person::person_name#0 +char *print_person::person_name#1 +char *print_person::person_name#2 +char *print_person::person_name#3 +char *print_person::person_name#4 Adding number conversion cast (unumber) 0 in print_person::$0 = 0 != print_person::person_name#2[print_person::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#0 = idx#11 Alias idx#1 = idx#12 idx#13 idx#2 @@ -197,10 +197,10 @@ Constant inlined print_person::person_id#0 = main::jesper_id Constant inlined print_person::i#0 = 0 Constant inlined print_person::person_name#0 = main::jesper_name Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@2 CALL GRAPH @@ -218,18 +218,18 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::jesper_name = memcpy(*(&$0), byte, $10) - [1] call print_person + [0] *main::jesper_name = memcpy(*(&$0), char, $10) + [1] call print_person to:main::@1 main::@1: scope:[main] from main - [2] *main::henriette_name = memcpy(*(&$1), byte, $10) - [3] call print_person + [2] *main::henriette_name = memcpy(*(&$1), char, $10) + [3] call print_person to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print_person(byte print_person::person_id , byte* print_person::person_name) +void print_person(char person_id , char *person_name) print_person: scope:[print_person] from main main::@1 [5] print_person::person_name#4 = phi( main/main::jesper_name, main::@1/main::henriette_name ) [5] idx#14 = phi( main/0, main::@1/idx#17 ) @@ -259,23 +259,23 @@ print_person::@2: scope:[print_person] from print_person::@1 VARIABLE REGISTER WEIGHTS -byte idx -byte idx#14 12.0 -byte idx#15 84.0 -byte idx#17 3.25 -byte idx#3 16.5 -byte idx#4 22.0 -byte idx#5 101.0 +char idx +char idx#14 // 12.0 +char idx#15 // 84.0 +char idx#17 // 3.25 +char idx#3 // 16.5 +char idx#4 // 22.0 +char idx#5 // 101.0 void main() -void print_person(byte print_person::person_id , byte* print_person::person_name) -byte print_person::i -byte print_person::i#1 202.0 -byte print_person::i#2 101.0 +void print_person(char person_id , char *person_name) +char print_person::i +char print_person::i#1 // 202.0 +char print_person::i#2 // 101.0 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#2 11.0 -byte* print_person::person_name -byte* print_person::person_name#4 20.2 +char print_person::person_id +char print_person::person_id#2 // 11.0 +char *print_person::person_name +char *print_person::person_name#4 // 20.2 Initial phi equivalence classes [ print_person::person_id#2 ] @@ -298,8 +298,8 @@ Allocated zp[1]:6 [ print_person::i#2 print_person::i#1 ] Allocated zp[1]:7 [ idx#15 idx#4 idx#5 ] Allocated zp[1]:8 [ idx#3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::jesper_name = memcpy(*(&$0), byte, $10) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [2] *main::henriette_name = memcpy(*(&$1), byte, $10) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [0] *main::jesper_name = memcpy(*(&$0), char, $10) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y +Statement [2] *main::henriette_name = memcpy(*(&$1), char, $10) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:3 [ idx#14 idx#17 ] Removing always clobbered register reg byte y as potential for zp[1]:3 [ idx#14 idx#17 ] Statement [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] [ idx#14 print_person::person_name#4 ] ( print_person:1 [ idx#14 print_person::person_name#4 ] { } print_person:3 [ idx#14 print_person::person_name#4 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a @@ -310,8 +310,8 @@ Removing always clobbered register reg byte a as potential for zp[1]:6 [ print_p Removing always clobbered register reg byte a as potential for zp[1]:7 [ idx#15 idx#4 idx#5 ] Statement [12] SCREEN[idx#15] = ' ' [ idx#15 ] ( print_person:1 [ idx#15 ] { } print_person:3 [ idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [15] SCREEN[idx#15] = print_person::person_name#4[print_person::i#2] [ print_person::person_name#4 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person_name#4 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person_name#4 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a -Statement [0] *main::jesper_name = memcpy(*(&$0), byte, $10) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y -Statement [2] *main::henriette_name = memcpy(*(&$1), byte, $10) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y +Statement [0] *main::jesper_name = memcpy(*(&$0), char, $10) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y +Statement [2] *main::henriette_name = memcpy(*(&$1), char, $10) [ idx#17 ] ( [ idx#17 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a reg byte y Statement [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] [ idx#14 print_person::person_name#4 ] ( print_person:1 [ idx#14 print_person::person_name#4 ] { } print_person:3 [ idx#14 print_person::person_name#4 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [8] SCREEN[idx#3] = ' ' [ print_person::person_name#4 idx#3 ] ( print_person:1 [ print_person::person_name#4 idx#3 ] { } print_person:3 [ print_person::person_name#4 idx#3 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a Statement [11] if(0!=print_person::person_name#4[print_person::i#2]) goto print_person::@2 [ print_person::person_name#4 print_person::i#2 idx#15 ] ( print_person:1 [ print_person::person_name#4 print_person::i#2 idx#15 ] { } print_person:3 [ print_person::person_name#4 print_person::i#2 idx#15 ] { { idx#14 = idx#17 } } ) always clobbers reg byte a @@ -359,14 +359,14 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .const jesper_id = 4 .const henriette_id = 7 - // [0] *main::jesper_name = memcpy(*(&$0), byte, $10) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [0] *main::jesper_name = memcpy(*(&$0), char, $10) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #$10 !: lda __0-1,y sta jesper_name-1,y dey bne !- - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] print_person_from_main: // [5] phi print_person::person_name#4 = main::jesper_name [phi:main->print_person#0] -- pbuz1=pbuc1 @@ -383,14 +383,14 @@ main: { jmp __b1 // main::@1 __b1: - // [2] *main::henriette_name = memcpy(*(&$1), byte, $10) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [2] *main::henriette_name = memcpy(*(&$1), char, $10) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #$10 !: lda __1-1,y sta henriette_name-1,y dey bne !- - // [3] call print_person + // [3] call print_person // [5] phi from main::@1 to print_person [phi:main::@1->print_person] print_person_from___b1: // [5] phi print_person::person_name#4 = main::henriette_name [phi:main::@1->print_person#0] -- pbuz1=pbuc1 @@ -413,7 +413,7 @@ main: { } .segment Code // print_person -// print_person(byte register(X) person_id, byte* zp(3) person_name) +// void print_person(__register(X) char person_id, __zp(3) char *person_name) print_person: { .label person_name = 3 // [6] SCREEN[idx#14] = DIGIT[print_person::person_id#2] -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuxx @@ -498,31 +498,31 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* $0[$10] = "jesper" -constant byte* $1[$10] = "henriette" -constant byte* DIGIT[] = "0123456789" -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#14 idx zp[1]:2 12.0 -byte idx#15 reg byte x 84.0 -byte idx#17 idx zp[1]:2 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 22.0 -byte idx#5 reg byte x 101.0 +__constant char $0[$10] = "jesper" +__constant char $1[$10] = "henriette" +__constant char DIGIT[] = "0123456789" +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#14 // idx zp[1]:2 12.0 +char idx#15 // reg byte x 84.0 +char idx#17 // idx zp[1]:2 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 22.0 +char idx#5 // reg byte x 101.0 void main() -constant byte main::henriette_id = 7 -constant byte* main::henriette_name[$10] = { fill( $10, 0) } -constant byte main::jesper_id = 4 -constant byte* main::jesper_name[$10] = { fill( $10, 0) } -void print_person(byte print_person::person_id , byte* print_person::person_name) -byte print_person::i -byte print_person::i#1 reg byte y 202.0 -byte print_person::i#2 reg byte y 101.0 +__constant char main::henriette_id = 7 +__constant char main::henriette_name[$10] = { fill( $10, 0) } +__constant char main::jesper_id = 4 +__constant char main::jesper_name[$10] = { fill( $10, 0) } +void print_person(char person_id , char *person_name) +char print_person::i +char print_person::i#1 // reg byte y 202.0 +char print_person::i#2 // reg byte y 101.0 struct Person print_person::person -byte print_person::person_id -byte print_person::person_id#2 reg byte x 11.0 -byte* print_person::person_name -byte* print_person::person_name#4 person_name zp[2]:3 20.2 +char print_person::person_id +char print_person::person_id#2 // reg byte x 11.0 +char *print_person::person_name +char *print_person::person_name#4 // person_name zp[2]:3 20.2 reg byte x [ print_person::person_id#2 ] zp[1]:2 [ idx#14 idx#17 ] @@ -555,7 +555,7 @@ main: { .const jesper_id = 4 .const henriette_id = 7 // struct Person jesper = { 4, "jesper" } - // [0] *main::jesper_name = memcpy(*(&$0), byte, $10) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 + // [0] *main::jesper_name = memcpy(*(&$0), char, $10) -- _deref_pbuc1=_deref_qbuc2_memcpy_vbuc3 ldy #$10 !: lda __0-1,y @@ -563,7 +563,7 @@ main: { dey bne !- // print_person(jesper) - // [1] call print_person + // [1] call print_person // [5] phi from main to print_person [phi:main->print_person] // [5] phi print_person::person_name#4 = main::jesper_name [phi:main->print_person#0] -- pbuz1=pbuc1 lda #print_person] // [5] phi print_person::person_name#4 = main::henriette_name [phi:main::@1->print_person#0] -- pbuz1=pbuc1 lda #SCREEN adc.z i+1 sta.z __5+1 - // [6] *main::$5 = ((byte*)main::tile#0)[OFFSET_STRUCT_TILE_COUNT] -- _deref_pbuz1=pbuz2_derefidx_vbuc1 + // [6] *main::$5 = ((char *)main::tile#0)[OFFSET_STRUCT_TILE_COUNT] -- _deref_pbuz1=pbuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_TILE_COUNT lda (tile),y ldy #0 @@ -323,22 +323,22 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant dword* Enemy2Sprites[$c] = { fill( $c, 0) } -constant byte OFFSET_STRUCT_TILE_COUNT = 4 -constant dword* PlayerSprites[$c] = { fill( $c, 0) } -volatile struct Tile S1 loadstore mem[25] = { Tiles: PlayerSprites, Offset: $14, Count: $40, Name: "Sven" } -volatile struct Tile S2 loadstore mem[25] = { Tiles: Enemy2Sprites, Offset: $32, Count: $80, Name: "Jesper" } -constant struct Tile** TileDB[2] = { &S1, &S2 } +__constant unsigned long Enemy2Sprites[$c] = { fill( $c, 0) } +__constant char OFFSET_STRUCT_TILE_COUNT = 4 +__constant unsigned long PlayerSprites[$c] = { fill( $c, 0) } +__loadstore volatile struct Tile S1 = { Tiles: PlayerSprites, Offset: $14, Count: $40, Name: "Sven" } // mem[25] +__loadstore volatile struct Tile S2 = { Tiles: Enemy2Sprites, Offset: $32, Count: $80, Name: "Jesper" } // mem[25] +__constant struct Tile *TileDB[2] = { &S1, &S2 } void main() -signed word~ main::$1 zp[2]:4 22.0 -struct Tile**~ main::$4 zp[2]:4 22.0 -byte*~ main::$5 zp[2]:6 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -signed word main::i -signed word main::i#1 i zp[2]:2 16.5 -signed word main::i#2 i zp[2]:2 7.333333333333333 -struct Tile* main::tile -struct Tile* main::tile#0 tile zp[2]:4 5.5 +int main::$1 // zp[2]:4 22.0 +struct Tile **main::$4 // zp[2]:4 22.0 +char *main::$5 // zp[2]:6 22.0 +__constant char * const main::SCREEN = (char *) 1024 +int main::i +int main::i#1 // i zp[2]:2 16.5 +int main::i#2 // i zp[2]:2 7.333333333333333 +struct Tile *main::tile +struct Tile *main::tile#0 // tile zp[2]:4 5.5 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 main::$4 main::tile#0 ] @@ -414,7 +414,7 @@ main: { lda #>SCREEN adc.z i+1 sta.z __5+1 - // [6] *main::$5 = ((byte*)main::tile#0)[OFFSET_STRUCT_TILE_COUNT] -- _deref_pbuz1=pbuz2_derefidx_vbuc1 + // [6] *main::$5 = ((char *)main::tile#0)[OFFSET_STRUCT_TILE_COUNT] -- _deref_pbuz1=pbuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_TILE_COUNT lda (tile),y ldy #0 diff --git a/src/test/ref/struct-ptr-35.sym b/src/test/ref/struct-ptr-35.sym index 4452c0b68..1cde9ec15 100644 --- a/src/test/ref/struct-ptr-35.sym +++ b/src/test/ref/struct-ptr-35.sym @@ -1,19 +1,19 @@ -constant dword* Enemy2Sprites[$c] = { fill( $c, 0) } -constant byte OFFSET_STRUCT_TILE_COUNT = 4 -constant dword* PlayerSprites[$c] = { fill( $c, 0) } -volatile struct Tile S1 loadstore mem[25] = { Tiles: PlayerSprites, Offset: $14, Count: $40, Name: "Sven" } -volatile struct Tile S2 loadstore mem[25] = { Tiles: Enemy2Sprites, Offset: $32, Count: $80, Name: "Jesper" } -constant struct Tile** TileDB[2] = { &S1, &S2 } +__constant unsigned long Enemy2Sprites[$c] = { fill( $c, 0) } +__constant char OFFSET_STRUCT_TILE_COUNT = 4 +__constant unsigned long PlayerSprites[$c] = { fill( $c, 0) } +__loadstore volatile struct Tile S1 = { Tiles: PlayerSprites, Offset: $14, Count: $40, Name: "Sven" } // mem[25] +__loadstore volatile struct Tile S2 = { Tiles: Enemy2Sprites, Offset: $32, Count: $80, Name: "Jesper" } // mem[25] +__constant struct Tile *TileDB[2] = { &S1, &S2 } void main() -signed word~ main::$1 zp[2]:4 22.0 -struct Tile**~ main::$4 zp[2]:4 22.0 -byte*~ main::$5 zp[2]:6 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -signed word main::i -signed word main::i#1 i zp[2]:2 16.5 -signed word main::i#2 i zp[2]:2 7.333333333333333 -struct Tile* main::tile -struct Tile* main::tile#0 tile zp[2]:4 5.5 +int main::$1 // zp[2]:4 22.0 +struct Tile **main::$4 // zp[2]:4 22.0 +char *main::$5 // zp[2]:6 22.0 +__constant char * const main::SCREEN = (char *) 1024 +int main::i +int main::i#1 // i zp[2]:2 16.5 +int main::i#2 // i zp[2]:2 7.333333333333333 +struct Tile *main::tile +struct Tile *main::tile#0 // tile zp[2]:4 5.5 zp[2]:2 [ main::i#2 main::i#1 ] zp[2]:4 [ main::$1 main::$4 main::tile#0 ] diff --git a/src/test/ref/struct-ptr-4.cfg b/src/test/ref/struct-ptr-4.cfg index 4da375390..fd3fb12bd 100644 --- a/src/test/ref/struct-ptr-4.cfg +++ b/src/test/ref/struct-ptr-4.cfg @@ -6,9 +6,9 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [1] main::points#4 = phi( main/POINTS, main::@1/main::points#1 ) - [2] *((byte*)main::points#4) = main::i#2 + [2] *((char *)main::points#4) = main::i#2 [3] main::$0 = main::i#2 + 5 - [4] ((byte*)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 + [4] ((char *)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 [5] main::points#1 = main::points#4 + SIZEOF_STRUCT_POINT [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=4) goto main::@1 @@ -17,9 +17,9 @@ main::@2: scope:[main] from main::@1 main::@2 [8] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [8] main::idx#4 = phi( main::@1/0, main::@2/main::idx#3 ) [8] main::points#5 = phi( main::@1/POINTS, main::@2/main::points#3 ) - [9] main::SCREEN[main::idx#4] = *((byte*)main::points#5) + [9] main::SCREEN[main::idx#4] = *((char *)main::points#5) [10] main::idx#1 = ++ main::idx#4 - [11] main::SCREEN[main::idx#1] = ((byte*)main::points#5)[OFFSET_STRUCT_POINT_Y] + [11] main::SCREEN[main::idx#1] = ((char *)main::points#5)[OFFSET_STRUCT_POINT_Y] [12] main::idx#2 = ++ main::idx#1 [13] main::SCREEN[main::idx#2] = ' ' [14] main::idx#3 = ++ main::idx#2 diff --git a/src/test/ref/struct-ptr-4.log b/src/test/ref/struct-ptr-4.log index 7223de23d..761df9903 100644 --- a/src/test/ref/struct-ptr-4.log +++ b/src/test/ref/struct-ptr-4.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -10,11 +10,11 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::points#4 = phi( main/main::points#0, main::@1/main::points#1 ) - main::$7 = (byte*)main::points#4 + main::$7 = (char *)main::points#4 main::$3 = main::$7 + OFFSET_STRUCT_POINT_X *main::$3 = main::i#2 main::$0 = main::i#2 + 5 - main::$8 = (byte*)main::points#4 + main::$8 = (char *)main::points#4 main::$4 = main::$8 + OFFSET_STRUCT_POINT_Y *main::$4 = main::$0 main::points#1 = main::points#4 + SIZEOF_STRUCT_POINT @@ -31,11 +31,11 @@ main::@3: scope:[main] from main::@2 main::@3 main::i1#2 = phi( main::@2/main::i1#0, main::@3/main::i1#1 ) main::idx#4 = phi( main::@2/main::idx#0, main::@3/main::idx#3 ) main::points#5 = phi( main::@2/main::points#2, main::@3/main::points#3 ) - main::$9 = (byte*)main::points#5 + main::$9 = (char *)main::points#5 main::$5 = main::$9 + OFFSET_STRUCT_POINT_X main::SCREEN[main::idx#4] = *main::$5 main::idx#1 = ++ main::idx#4 - main::$10 = (byte*)main::points#5 + main::$10 = (char *)main::points#5 main::$6 = main::$10 + OFFSET_STRUCT_POINT_Y main::SCREEN[main::idx#1] = *main::$6 main::idx#2 = ++ main::idx#1 @@ -56,7 +56,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -65,56 +65,56 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* POINTS = (struct Point*)$1000 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point *POINTS = (struct Point *)$1000 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -number~ main::$0 -bool~ main::$1 -byte*~ main::$10 -bool~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -byte*~ main::$6 -byte*~ main::$7 -byte*~ main::$8 -byte*~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -struct Point* main::points -struct Point* main::points#0 -struct Point* main::points#1 -struct Point* main::points#2 -struct Point* main::points#3 -struct Point* main::points#4 -struct Point* main::points#5 +number main::$0 +bool main::$1 +char *main::$10 +bool main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +char *main::$6 +char *main::$7 +char *main::$8 +char *main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +struct Point *main::points +struct Point *main::points#0 +struct Point *main::points#1 +struct Point *main::points#2 +struct Point *main::points#3 +struct Point *main::points#4 +struct Point *main::points#5 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 + 5 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 + (unumber)5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (struct Point*) 4096 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (struct Point *) 4096 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 + 5 +Inferred type updated to char in main::$0 = main::i#2 + 5 Simple Condition main::$1 [13] if(main::i#1!=rangelast(0,3)) goto main::@1 Simple Condition main::$2 [31] if(main::i1#1!=rangelast(0,3)) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -157,13 +157,13 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [1] main::$7 = (byte*)main::points#4 keeping main::points#4 -Inlining Noop Cast [4] main::$8 = (byte*)main::points#4 keeping main::points#4 -Inlining Noop Cast [10] main::$9 = (byte*)main::points#5 keeping main::points#5 -Inlining Noop Cast [13] main::$10 = (byte*)main::points#5 keeping main::points#5 +Inlining Noop Cast [1] main::$7 = (char *)main::points#4 keeping main::points#4 +Inlining Noop Cast [4] main::$8 = (char *)main::points#4 keeping main::points#4 +Inlining Noop Cast [10] main::$9 = (char *)main::points#5 keeping main::points#5 +Inlining Noop Cast [13] main::$10 = (char *)main::points#5 keeping main::points#5 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::points#0 Inlining constant with var siblings main::i#0 @@ -204,9 +204,9 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [1] main::points#4 = phi( main/POINTS, main::@1/main::points#1 ) - [2] *((byte*)main::points#4) = main::i#2 + [2] *((char *)main::points#4) = main::i#2 [3] main::$0 = main::i#2 + 5 - [4] ((byte*)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 + [4] ((char *)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 [5] main::points#1 = main::points#4 + SIZEOF_STRUCT_POINT [6] main::i#1 = ++ main::i#2 [7] if(main::i#1!=4) goto main::@1 @@ -215,9 +215,9 @@ main::@2: scope:[main] from main::@1 main::@2 [8] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [8] main::idx#4 = phi( main::@1/0, main::@2/main::idx#3 ) [8] main::points#5 = phi( main::@1/POINTS, main::@2/main::points#3 ) - [9] main::SCREEN[main::idx#4] = *((byte*)main::points#5) + [9] main::SCREEN[main::idx#4] = *((char *)main::points#5) [10] main::idx#1 = ++ main::idx#4 - [11] main::SCREEN[main::idx#1] = ((byte*)main::points#5)[OFFSET_STRUCT_POINT_Y] + [11] main::SCREEN[main::idx#1] = ((char *)main::points#5)[OFFSET_STRUCT_POINT_Y] [12] main::idx#2 = ++ main::idx#1 [13] main::SCREEN[main::idx#2] = ' ' [14] main::idx#3 = ++ main::idx#2 @@ -232,23 +232,23 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.8 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 2.75 -byte main::idx -byte main::idx#1 16.5 -byte main::idx#2 16.5 -byte main::idx#3 5.5 -byte main::idx#4 16.5 -struct Point* main::points -struct Point* main::points#1 7.333333333333333 -struct Point* main::points#3 7.333333333333333 -struct Point* main::points#4 5.5 -struct Point* main::points#5 3.142857142857143 +char main::$0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.8 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 2.75 +char main::idx +char main::idx#1 // 16.5 +char main::idx#2 // 16.5 +char main::idx#3 // 5.5 +char main::idx#4 // 16.5 +struct Point *main::points +struct Point *main::points#1 // 7.333333333333333 +struct Point *main::points#3 // 7.333333333333333 +struct Point *main::points#4 // 5.5 +struct Point *main::points#5 // 3.142857142857143 Initial phi equivalence classes [ main::points#4 main::points#1 ] @@ -277,28 +277,28 @@ Allocated zp[1]:9 [ main::$0 ] Allocated zp[1]:10 [ main::idx#1 ] Allocated zp[1]:11 [ main::idx#2 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] *((byte*)main::points#4) = main::i#2 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte y +Statement [2] *((char *)main::points#4) = main::i#2 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::i#2 main::i#1 ] -Statement [4] ((byte*)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte y +Statement [4] ((char *)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte y Statement [5] main::points#1 = main::points#4 + SIZEOF_STRUCT_POINT [ main::i#2 main::points#1 ] ( [ main::i#2 main::points#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i#2 main::i#1 ] -Statement [9] main::SCREEN[main::idx#4] = *((byte*)main::points#5) [ main::points#5 main::idx#4 main::i1#2 ] ( [ main::points#5 main::idx#4 main::i1#2 ] { } ) always clobbers reg byte a reg byte y +Statement [9] main::SCREEN[main::idx#4] = *((char *)main::points#5) [ main::points#5 main::idx#4 main::i1#2 ] ( [ main::points#5 main::idx#4 main::i1#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:7 [ main::idx#4 main::idx#3 ] Removing always clobbered register reg byte y as potential for zp[1]:7 [ main::idx#4 main::idx#3 ] Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::i1#2 main::i1#1 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ main::i1#2 main::i1#1 ] -Statement [11] main::SCREEN[main::idx#1] = ((byte*)main::points#5)[OFFSET_STRUCT_POINT_Y] [ main::points#5 main::i1#2 main::idx#1 ] ( [ main::points#5 main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a reg byte y +Statement [11] main::SCREEN[main::idx#1] = ((char *)main::points#5)[OFFSET_STRUCT_POINT_Y] [ main::points#5 main::i1#2 main::idx#1 ] ( [ main::points#5 main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::idx#1 ] Removing always clobbered register reg byte y as potential for zp[1]:10 [ main::idx#1 ] Statement [13] main::SCREEN[main::idx#2] = ' ' [ main::points#5 main::i1#2 main::idx#2 ] ( [ main::points#5 main::i1#2 main::idx#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ main::idx#2 ] Statement [15] main::points#3 = main::points#5 + SIZEOF_STRUCT_POINT [ main::i1#2 main::points#3 main::idx#3 ] ( [ main::i1#2 main::points#3 main::idx#3 ] { } ) always clobbers reg byte a -Statement [2] *((byte*)main::points#4) = main::i#2 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte a reg byte y +Statement [2] *((char *)main::points#4) = main::i#2 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte a reg byte y Statement [3] main::$0 = main::i#2 + 5 [ main::points#4 main::i#2 main::$0 ] ( [ main::points#4 main::i#2 main::$0 ] { } ) always clobbers reg byte a -Statement [4] ((byte*)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte y +Statement [4] ((char *)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 [ main::points#4 main::i#2 ] ( [ main::points#4 main::i#2 ] { } ) always clobbers reg byte y Statement [5] main::points#1 = main::points#4 + SIZEOF_STRUCT_POINT [ main::i#2 main::points#1 ] ( [ main::i#2 main::points#1 ] { } ) always clobbers reg byte a -Statement [9] main::SCREEN[main::idx#4] = *((byte*)main::points#5) [ main::points#5 main::idx#4 main::i1#2 ] ( [ main::points#5 main::idx#4 main::i1#2 ] { } ) always clobbers reg byte a reg byte y -Statement [11] main::SCREEN[main::idx#1] = ((byte*)main::points#5)[OFFSET_STRUCT_POINT_Y] [ main::points#5 main::i1#2 main::idx#1 ] ( [ main::points#5 main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a reg byte y +Statement [9] main::SCREEN[main::idx#4] = *((char *)main::points#5) [ main::points#5 main::idx#4 main::i1#2 ] ( [ main::points#5 main::idx#4 main::i1#2 ] { } ) always clobbers reg byte a reg byte y +Statement [11] main::SCREEN[main::idx#1] = ((char *)main::points#5)[OFFSET_STRUCT_POINT_Y] [ main::points#5 main::i1#2 main::idx#1 ] ( [ main::points#5 main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a reg byte y Statement [13] main::SCREEN[main::idx#2] = ' ' [ main::points#5 main::i1#2 main::idx#2 ] ( [ main::points#5 main::i1#2 main::idx#2 ] { } ) always clobbers reg byte a Statement [15] main::points#3 = main::points#5 + SIZEOF_STRUCT_POINT [ main::i1#2 main::points#3 main::idx#3 ] ( [ main::i1#2 main::points#3 main::idx#3 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::points#4 main::points#1 ] : zp[2]:2 , @@ -369,7 +369,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] *((byte*)main::points#4) = main::i#2 -- _deref_pbuz1=vbuxx + // [2] *((char *)main::points#4) = main::i#2 -- _deref_pbuz1=vbuxx txa ldy #0 sta (points),y @@ -377,7 +377,7 @@ main: { txa clc adc #5 - // [4] ((byte*)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 -- pbuz1_derefidx_vbuc1=vbuaa + // [4] ((char *)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 -- pbuz1_derefidx_vbuc1=vbuaa ldy #OFFSET_STRUCT_POINT_Y sta (points),y // [5] main::points#1 = main::points#4 + SIZEOF_STRUCT_POINT -- pssz1=pssz1_plus_vbuc1 @@ -414,13 +414,13 @@ main: { jmp __b2 // main::@2 __b2: - // [9] main::SCREEN[main::idx#4] = *((byte*)main::points#5) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 + // [9] main::SCREEN[main::idx#4] = *((char *)main::points#5) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 ldy #0 lda (points_1),y sta SCREEN,x // [10] main::idx#1 = ++ main::idx#4 -- vbuxx=_inc_vbuxx inx - // [11] main::SCREEN[main::idx#1] = ((byte*)main::points#5)[OFFSET_STRUCT_POINT_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [11] main::SCREEN[main::idx#1] = ((char *)main::points#5)[OFFSET_STRUCT_POINT_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_POINT_Y lda (points_1),y sta SCREEN,x @@ -473,28 +473,28 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* POINTS = (struct Point*) 4096 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point *POINTS = (struct Point *) 4096 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.8 -byte main::i1 -byte main::i1#1 i1 zp[1]:6 16.5 -byte main::i1#2 i1 zp[1]:6 2.75 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 16.5 -byte main::idx#3 reg byte x 5.5 -byte main::idx#4 reg byte x 16.5 -struct Point* main::points -struct Point* main::points#1 points zp[2]:2 7.333333333333333 -struct Point* main::points#3 points_1 zp[2]:4 7.333333333333333 -struct Point* main::points#4 points zp[2]:2 5.5 -struct Point* main::points#5 points_1 zp[2]:4 3.142857142857143 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.8 +char main::i1 +char main::i1#1 // i1 zp[1]:6 16.5 +char main::i1#2 // i1 zp[1]:6 2.75 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 16.5 +char main::idx#3 // reg byte x 5.5 +char main::idx#4 // reg byte x 16.5 +struct Point *main::points +struct Point *main::points#1 // points zp[2]:2 7.333333333333333 +struct Point *main::points#3 // points_1 zp[2]:4 7.333333333333333 +struct Point *main::points#4 // points zp[2]:2 5.5 +struct Point *main::points#5 // points_1 zp[2]:4 3.142857142857143 zp[2]:2 [ main::points#4 main::points#1 ] reg byte x [ main::i#2 main::i#1 ] @@ -548,7 +548,7 @@ main: { // main::@1 __b1: // (*points).x = i - // [2] *((byte*)main::points#4) = main::i#2 -- _deref_pbuz1=vbuxx + // [2] *((char *)main::points#4) = main::i#2 -- _deref_pbuz1=vbuxx txa ldy #0 sta (points),y @@ -558,7 +558,7 @@ main: { clc adc #5 // (*points).y = i+5 - // [4] ((byte*)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 -- pbuz1_derefidx_vbuc1=vbuaa + // [4] ((char *)main::points#4)[OFFSET_STRUCT_POINT_Y] = main::$0 -- pbuz1_derefidx_vbuc1=vbuaa ldy #OFFSET_STRUCT_POINT_Y sta (points),y // points++; @@ -594,7 +594,7 @@ main: { // main::@2 __b2: // SCREEN[idx++] = (*points).x - // [9] main::SCREEN[main::idx#4] = *((byte*)main::points#5) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 + // [9] main::SCREEN[main::idx#4] = *((char *)main::points#5) -- pbuc1_derefidx_vbuxx=_deref_pbuz1 ldy #0 lda (points_1),y sta SCREEN,x @@ -602,7 +602,7 @@ main: { // [10] main::idx#1 = ++ main::idx#4 -- vbuxx=_inc_vbuxx inx // SCREEN[idx++] = (*points).y - // [11] main::SCREEN[main::idx#1] = ((byte*)main::points#5)[OFFSET_STRUCT_POINT_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 + // [11] main::SCREEN[main::idx#1] = ((char *)main::points#5)[OFFSET_STRUCT_POINT_Y] -- pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuc2 ldy #OFFSET_STRUCT_POINT_Y lda (points_1),y sta SCREEN,x diff --git a/src/test/ref/struct-ptr-4.sym b/src/test/ref/struct-ptr-4.sym index 5a4b71044..554366bdc 100644 --- a/src/test/ref/struct-ptr-4.sym +++ b/src/test/ref/struct-ptr-4.sym @@ -1,25 +1,25 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* POINTS = (struct Point*) 4096 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point *POINTS = (struct Point *) 4096 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.8 -byte main::i1 -byte main::i1#1 i1 zp[1]:6 16.5 -byte main::i1#2 i1 zp[1]:6 2.75 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 16.5 -byte main::idx#3 reg byte x 5.5 -byte main::idx#4 reg byte x 16.5 -struct Point* main::points -struct Point* main::points#1 points zp[2]:2 7.333333333333333 -struct Point* main::points#3 points_1 zp[2]:4 7.333333333333333 -struct Point* main::points#4 points zp[2]:2 5.5 -struct Point* main::points#5 points_1 zp[2]:4 3.142857142857143 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.8 +char main::i1 +char main::i1#1 // i1 zp[1]:6 16.5 +char main::i1#2 // i1 zp[1]:6 2.75 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 16.5 +char main::idx#3 // reg byte x 5.5 +char main::idx#4 // reg byte x 16.5 +struct Point *main::points +struct Point *main::points#1 // points zp[2]:2 7.333333333333333 +struct Point *main::points#3 // points_1 zp[2]:4 7.333333333333333 +struct Point *main::points#4 // points zp[2]:2 5.5 +struct Point *main::points#5 // points_1 zp[2]:4 3.142857142857143 zp[2]:2 [ main::points#4 main::points#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/struct-ptr-5.cfg b/src/test/ref/struct-ptr-5.cfg index 96b5c2e0f..5f37a0dfb 100644 --- a/src/test/ref/struct-ptr-5.cfg +++ b/src/test/ref/struct-ptr-5.cfg @@ -1,32 +1,32 @@ void main() main: scope:[main] from - [0] *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 - [1] *((byte*)ENTRIES) = 1 - [2] *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 - [3] *((byte*)main::entry2#0) = 2 - [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 - [5] *((byte*)main::entry1#0) = 3 + [0] *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 + [1] *((char *)ENTRIES) = 1 + [2] *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 + [3] *((char *)main::entry2#0) = 2 + [4] *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry *) 0 + [5] *((char *)main::entry1#0) = 3 to:main::@1 main::@1: scope:[main] from main main::@2 [6] main::idx#5 = phi( main/0, main::@2/main::idx#4 ) [6] main::entry#2 = phi( main/ENTRIES, main::@2/main::entry#1 ) - [7] if((struct Entry*)0!=main::entry#2) goto main::@2 + [7] if((struct Entry *)0!=main::entry#2) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return main::@2: scope:[main] from main::@1 - [9] main::$2 = '0' + *((byte*)main::entry#2) + [9] main::$2 = '0' + *((char *)main::entry#2) [10] main::SCREEN[main::idx#5] = main::$2 [11] main::idx#1 = ++ main::idx#5 - [12] main::$3 = byte0 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] + [12] main::$3 = byte0 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [13] main::SCREEN[main::idx#1] = main::$3 [14] main::idx#2 = ++ main::idx#1 - [15] main::$4 = byte1 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] + [15] main::$4 = byte1 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [16] main::SCREEN[main::idx#2] = main::$4 [17] main::idx#3 = ++ main::idx#2 [18] main::SCREEN[main::idx#3] = ' ' [19] main::idx#4 = ++ main::idx#3 - [20] main::entry#1 = ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] + [20] main::entry#1 = ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] to:main::@1 diff --git a/src/test/ref/struct-ptr-5.log b/src/test/ref/struct-ptr-5.log index b73eae256..607095fe4 100644 --- a/src/test/ref/struct-ptr-5.log +++ b/src/test/ref/struct-ptr-5.log @@ -1,5 +1,5 @@ Fixing struct type size struct Entry to 3 -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 @@ -12,22 +12,22 @@ main: scope:[main] from __start::@1 main::entry1#0 = ENTRIES + main::$5 main::$6 = 2 * SIZEOF_STRUCT_ENTRY main::entry2#0 = ENTRIES + main::$6 - main::$17 = (struct Entry**)main::entry0#0 + main::$17 = (struct Entry **)main::entry0#0 main::$7 = main::$17 + OFFSET_STRUCT_ENTRY_NEXT *main::$7 = main::entry2#0 - main::$18 = (byte*)main::entry0#0 + main::$18 = (char *)main::entry0#0 main::$8 = main::$18 + OFFSET_STRUCT_ENTRY_VALUE *main::$8 = 1 - main::$19 = (struct Entry**)main::entry2#0 + main::$19 = (struct Entry **)main::entry2#0 main::$9 = main::$19 + OFFSET_STRUCT_ENTRY_NEXT *main::$9 = main::entry1#0 - main::$20 = (byte*)main::entry2#0 + main::$20 = (char *)main::entry2#0 main::$10 = main::$20 + OFFSET_STRUCT_ENTRY_VALUE *main::$10 = 2 - main::$21 = (struct Entry**)main::entry1#0 + main::$21 = (struct Entry **)main::entry1#0 main::$11 = main::$21 + OFFSET_STRUCT_ENTRY_NEXT - *main::$11 = (struct Entry*)0 - main::$22 = (byte*)main::entry1#0 + *main::$11 = (struct Entry *)0 + main::$22 = (char *)main::entry1#0 main::$12 = main::$22 + OFFSET_STRUCT_ENTRY_VALUE *main::$12 = 3 main::idx#0 = 0 @@ -36,30 +36,30 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@2 main::idx#6 = phi( main/main::idx#0, main::@2/main::idx#4 ) main::entry#2 = phi( main/main::entry#0, main::@2/main::entry#1 ) - main::$27 = (struct Entry*)0 != main::entry#2 + main::$27 = (struct Entry *)0 != main::entry#2 if(main::$27) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::idx#5 = phi( main::@1/main::idx#6 ) main::entry#3 = phi( main::@1/main::entry#2 ) - main::$23 = (byte*)main::entry#3 + main::$23 = (char *)main::entry#3 main::$13 = main::$23 + OFFSET_STRUCT_ENTRY_VALUE main::$2 = '0' + *main::$13 main::SCREEN[main::idx#5] = main::$2 main::idx#1 = ++ main::idx#5 - main::$24 = (struct Entry**)main::entry#3 + main::$24 = (struct Entry **)main::entry#3 main::$14 = main::$24 + OFFSET_STRUCT_ENTRY_NEXT main::$3 = byte0 *main::$14 main::SCREEN[main::idx#1] = main::$3 main::idx#2 = ++ main::idx#1 - main::$25 = (struct Entry**)main::entry#3 + main::$25 = (struct Entry **)main::entry#3 main::$15 = main::$25 + OFFSET_STRUCT_ENTRY_NEXT main::$4 = byte1 *main::$15 main::SCREEN[main::idx#2] = main::$4 main::idx#3 = ++ main::idx#2 main::SCREEN[main::idx#3] = ' ' main::idx#4 = ++ main::idx#3 - main::$26 = (struct Entry**)main::entry#3 + main::$26 = (struct Entry **)main::entry#3 main::$16 = main::$26 + OFFSET_STRUCT_ENTRY_NEXT main::entry#1 = *main::$16 to:main::@1 @@ -73,7 +73,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -82,58 +82,58 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct Entry* ENTRIES = (struct Entry*)$1000 -constant byte OFFSET_STRUCT_ENTRY_NEXT = 1 -constant byte OFFSET_STRUCT_ENTRY_VALUE = 0 -constant byte SIZEOF_STRUCT_ENTRY = 3 +__constant struct Entry *ENTRIES = (struct Entry *)$1000 +__constant char OFFSET_STRUCT_ENTRY_NEXT = 1 +__constant char OFFSET_STRUCT_ENTRY_VALUE = 0 +__constant char SIZEOF_STRUCT_ENTRY = 3 void __start() void main() -byte*~ main::$10 -struct Entry**~ main::$11 -byte*~ main::$12 -byte*~ main::$13 -struct Entry**~ main::$14 -struct Entry**~ main::$15 -struct Entry**~ main::$16 -struct Entry**~ main::$17 -byte*~ main::$18 -struct Entry**~ main::$19 -byte~ main::$2 -byte*~ main::$20 -struct Entry**~ main::$21 -byte*~ main::$22 -byte*~ main::$23 -struct Entry**~ main::$24 -struct Entry**~ main::$25 -struct Entry**~ main::$26 -bool~ main::$27 -byte~ main::$3 -byte~ main::$4 -number~ main::$5 -number~ main::$6 -struct Entry**~ main::$7 -byte*~ main::$8 -struct Entry**~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -struct Entry* main::entry -struct Entry* main::entry#0 -struct Entry* main::entry#1 -struct Entry* main::entry#2 -struct Entry* main::entry#3 -struct Entry* main::entry0 -struct Entry* main::entry0#0 -struct Entry* main::entry1 -struct Entry* main::entry1#0 -struct Entry* main::entry2 -struct Entry* main::entry2#0 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 +char *main::$10 +struct Entry **main::$11 +char *main::$12 +char *main::$13 +struct Entry **main::$14 +struct Entry **main::$15 +struct Entry **main::$16 +struct Entry **main::$17 +char *main::$18 +struct Entry **main::$19 +char main::$2 +char *main::$20 +struct Entry **main::$21 +char *main::$22 +char *main::$23 +struct Entry **main::$24 +struct Entry **main::$25 +struct Entry **main::$26 +bool main::$27 +char main::$3 +char main::$4 +number main::$5 +number main::$6 +struct Entry **main::$7 +char *main::$8 +struct Entry **main::$9 +__constant char * const main::SCREEN = (char *)$400 +struct Entry *main::entry +struct Entry *main::entry#0 +struct Entry *main::entry#1 +struct Entry *main::entry#2 +struct Entry *main::entry#3 +struct Entry *main::entry0 +struct Entry *main::entry0#0 +struct Entry *main::entry1 +struct Entry *main::entry1#0 +struct Entry *main::entry2 +struct Entry *main::entry2#0 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +char main::idx#5 +char main::idx#6 Adding number conversion cast (unumber) 1 in main::$5 = 1 * SIZEOF_STRUCT_ENTRY Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)1 * SIZEOF_STRUCT_ENTRY @@ -147,27 +147,27 @@ Inlining cast *main::$8 = (unumber)1 Inlining cast *main::$10 = (unumber)2 Inlining cast *main::$12 = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (struct Entry*) 4096 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (struct Entry *) 4096 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 2 -Simplifying constant pointer cast (struct Entry*) 0 +Simplifying constant pointer cast (struct Entry *) 0 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$5 = 1 * SIZEOF_STRUCT_ENTRY -Inferred type updated to byte in main::$6 = 2 * SIZEOF_STRUCT_ENTRY +Inferred type updated to char in main::$5 = 1 * SIZEOF_STRUCT_ENTRY +Inferred type updated to char in main::$6 = 2 * SIZEOF_STRUCT_ENTRY Alias main::entry#2 = main::entry#3 Alias main::idx#5 = main::idx#6 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$27 [27] if((struct Entry*)0!=main::entry#2) goto main::@2 +Simple Condition main::$27 [27] if((struct Entry *)0!=main::entry#2) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [1] main::$5 = 1 * SIZEOF_STRUCT_ENTRY Constant right-side identified [3] main::$6 = 2 * SIZEOF_STRUCT_ENTRY @@ -178,14 +178,14 @@ Constant main::$6 = 2*SIZEOF_STRUCT_ENTRY Constant main::idx#0 = 0 Constant main::entry#0 = ENTRIES Successful SSA optimization Pass2ConstantIdentification -Constant main::$17 = (struct Entry**)main::entry0#0 -Constant main::$18 = (byte*)main::entry0#0 +Constant main::$17 = (struct Entry **)main::entry0#0 +Constant main::$18 = (char *)main::entry0#0 Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [7] *main::$7 = main::entry2#0 -- main::$17[OFFSET_STRUCT_ENTRY_NEXT] Converting *(pointer+n) to pointer[n] [10] *main::$8 = 1 -- main::$18[OFFSET_STRUCT_ENTRY_VALUE] Converting *(pointer+n) to pointer[n] [13] *main::$9 = main::entry1#0 -- main::$19[OFFSET_STRUCT_ENTRY_NEXT] Converting *(pointer+n) to pointer[n] [16] *main::$10 = 2 -- main::$20[OFFSET_STRUCT_ENTRY_VALUE] -Converting *(pointer+n) to pointer[n] [19] *main::$11 = (struct Entry*) 0 -- main::$21[OFFSET_STRUCT_ENTRY_NEXT] +Converting *(pointer+n) to pointer[n] [19] *main::$11 = (struct Entry *) 0 -- main::$21[OFFSET_STRUCT_ENTRY_NEXT] Converting *(pointer+n) to pointer[n] [22] *main::$12 = 3 -- main::$22[OFFSET_STRUCT_ENTRY_VALUE] Converting *(pointer+n) to pointer[n] [30] main::$2 = '0' + *main::$13 -- main::$23[OFFSET_STRUCT_ENTRY_VALUE] Converting *(pointer+n) to pointer[n] [35] main::$3 = byte0 *main::$14 -- main::$24[OFFSET_STRUCT_ENTRY_NEXT] @@ -226,33 +226,33 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::entry1#0 = ENTRIES+main::$5 Constant main::entry2#0 = ENTRIES+main::$6 Successful SSA optimization Pass2ConstantIdentification -Constant main::$19 = (struct Entry**)main::entry2#0 -Constant main::$20 = (byte*)main::entry2#0 -Constant main::$21 = (struct Entry**)main::entry1#0 -Constant main::$22 = (byte*)main::entry1#0 +Constant main::$19 = (struct Entry **)main::entry2#0 +Constant main::$20 = (char *)main::entry2#0 +Constant main::$21 = (struct Entry **)main::entry1#0 +Constant main::$22 = (char *)main::entry1#0 Successful SSA optimization Pass2ConstantIdentification -Inlining Noop Cast [8] main::$23 = (byte*)main::entry#2 keeping main::entry#2 -Inlining Noop Cast [12] main::$24 = (struct Entry**)main::entry#2 keeping main::entry#2 -Inlining Noop Cast [16] main::$25 = (struct Entry**)main::entry#2 keeping main::entry#2 -Inlining Noop Cast [22] main::$26 = (struct Entry**)main::entry#2 keeping main::entry#2 +Inlining Noop Cast [8] main::$23 = (char *)main::entry#2 keeping main::entry#2 +Inlining Noop Cast [12] main::$24 = (struct Entry **)main::entry#2 keeping main::entry#2 +Inlining Noop Cast [16] main::$25 = (struct Entry **)main::entry#2 keeping main::entry#2 +Inlining Noop Cast [22] main::$26 = (struct Entry **)main::entry#2 keeping main::entry#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::entry#0 Constant inlined main::idx#0 = 0 -Constant inlined main::$17 = (struct Entry**)ENTRIES -Constant inlined main::$18 = (byte*)ENTRIES -Constant inlined main::$19 = (struct Entry**)main::entry2#0 +Constant inlined main::$17 = (struct Entry **)ENTRIES +Constant inlined main::$18 = (char *)ENTRIES +Constant inlined main::$19 = (struct Entry **)main::entry2#0 Constant inlined main::$5 = 1*SIZEOF_STRUCT_ENTRY Constant inlined main::$6 = 2*SIZEOF_STRUCT_ENTRY Constant inlined main::entry0#0 = ENTRIES Constant inlined main::entry#0 = ENTRIES -Constant inlined main::$20 = (byte*)main::entry2#0 -Constant inlined main::$21 = (struct Entry**)main::entry1#0 -Constant inlined main::$22 = (byte*)main::entry1#0 +Constant inlined main::$20 = (char *)main::entry2#0 +Constant inlined main::$21 = (struct Entry **)main::entry1#0 +Constant inlined main::$22 = (char *)main::entry1#0 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) -Consolidated array index constant in *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) -Consolidated array index constant in *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) +Consolidated array index constant in *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) +Consolidated array index constant in *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) +Consolidated array index constant in *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -265,54 +265,54 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 - [1] *((byte*)ENTRIES) = 1 - [2] *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 - [3] *((byte*)main::entry2#0) = 2 - [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 - [5] *((byte*)main::entry1#0) = 3 + [0] *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 + [1] *((char *)ENTRIES) = 1 + [2] *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 + [3] *((char *)main::entry2#0) = 2 + [4] *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry *) 0 + [5] *((char *)main::entry1#0) = 3 to:main::@1 main::@1: scope:[main] from main main::@2 [6] main::idx#5 = phi( main/0, main::@2/main::idx#4 ) [6] main::entry#2 = phi( main/ENTRIES, main::@2/main::entry#1 ) - [7] if((struct Entry*)0!=main::entry#2) goto main::@2 + [7] if((struct Entry *)0!=main::entry#2) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [8] return to:@return main::@2: scope:[main] from main::@1 - [9] main::$2 = '0' + *((byte*)main::entry#2) + [9] main::$2 = '0' + *((char *)main::entry#2) [10] main::SCREEN[main::idx#5] = main::$2 [11] main::idx#1 = ++ main::idx#5 - [12] main::$3 = byte0 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] + [12] main::$3 = byte0 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [13] main::SCREEN[main::idx#1] = main::$3 [14] main::idx#2 = ++ main::idx#1 - [15] main::$4 = byte1 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] + [15] main::$4 = byte1 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [16] main::SCREEN[main::idx#2] = main::$4 [17] main::idx#3 = ++ main::idx#2 [18] main::SCREEN[main::idx#3] = ' ' [19] main::idx#4 = ++ main::idx#3 - [20] main::entry#1 = ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] + [20] main::entry#1 = ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] to:main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte~ main::$4 22.0 -struct Entry* main::entry -struct Entry* main::entry#1 22.0 -struct Entry* main::entry#2 1.6923076923076923 -struct Entry* main::entry0 -struct Entry* main::entry1 -struct Entry* main::entry2 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 11.0 -byte main::idx#3 16.5 -byte main::idx#4 11.0 -byte main::idx#5 8.25 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::$4 // 22.0 +struct Entry *main::entry +struct Entry *main::entry#1 // 22.0 +struct Entry *main::entry#2 // 1.6923076923076923 +struct Entry *main::entry0 +struct Entry *main::entry1 +struct Entry *main::entry2 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 11.0 +char main::idx#3 // 16.5 +char main::idx#4 // 11.0 +char main::idx#5 // 8.25 Initial phi equivalence classes [ main::entry#2 main::entry#1 ] @@ -341,37 +341,37 @@ Allocated zp[1]:8 [ main::idx#2 ] Allocated zp[1]:9 [ main::$4 ] Allocated zp[1]:10 [ main::idx#3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)ENTRIES) = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)main::entry2#0) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)main::entry1#0) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] if((struct Entry*)0!=main::entry#2) goto main::@2 [ main::entry#2 main::idx#5 ] ( [ main::entry#2 main::idx#5 ] { } ) always clobbers reg byte a +Statement [0] *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)ENTRIES) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)main::entry2#0) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry *) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)main::entry1#0) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] if((struct Entry *)0!=main::entry#2) goto main::@2 [ main::entry#2 main::idx#5 ] ( [ main::entry#2 main::idx#5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::idx#5 main::idx#4 ] -Statement [9] main::$2 = '0' + *((byte*)main::entry#2) [ main::entry#2 main::idx#5 main::$2 ] ( [ main::entry#2 main::idx#5 main::$2 ] { } ) always clobbers reg byte a reg byte y +Statement [9] main::$2 = '0' + *((char *)main::entry#2) [ main::entry#2 main::idx#5 main::$2 ] ( [ main::entry#2 main::idx#5 main::$2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::idx#5 main::idx#4 ] -Statement [12] main::$3 = byte0 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#1 main::$3 ] ( [ main::entry#2 main::idx#1 main::$3 ] { } ) always clobbers reg byte a reg byte y +Statement [12] main::$3 = byte0 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#1 main::$3 ] ( [ main::entry#2 main::idx#1 main::$3 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::idx#1 ] Removing always clobbered register reg byte y as potential for zp[1]:6 [ main::idx#1 ] -Statement [15] main::$4 = byte1 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#2 main::$4 ] ( [ main::entry#2 main::idx#2 main::$4 ] { } ) always clobbers reg byte a reg byte y +Statement [15] main::$4 = byte1 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#2 main::$4 ] ( [ main::entry#2 main::idx#2 main::$4 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::idx#2 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ main::idx#2 ] Statement [18] main::SCREEN[main::idx#3] = ' ' [ main::entry#2 main::idx#3 ] ( [ main::entry#2 main::idx#3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::idx#3 ] -Statement [20] main::entry#1 = ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#1 main::idx#4 ] ( [ main::entry#1 main::idx#4 ] { } ) always clobbers reg byte a reg byte y -Statement [0] *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)ENTRIES) = 1 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)main::entry2#0) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *((byte*)main::entry1#0) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] if((struct Entry*)0!=main::entry#2) goto main::@2 [ main::entry#2 main::idx#5 ] ( [ main::entry#2 main::idx#5 ] { } ) always clobbers reg byte a -Statement [9] main::$2 = '0' + *((byte*)main::entry#2) [ main::entry#2 main::idx#5 main::$2 ] ( [ main::entry#2 main::idx#5 main::$2 ] { } ) always clobbers reg byte a reg byte y -Statement [12] main::$3 = byte0 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#1 main::$3 ] ( [ main::entry#2 main::idx#1 main::$3 ] { } ) always clobbers reg byte a reg byte y -Statement [15] main::$4 = byte1 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#2 main::$4 ] ( [ main::entry#2 main::idx#2 main::$4 ] { } ) always clobbers reg byte a reg byte y +Statement [20] main::entry#1 = ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#1 main::idx#4 ] ( [ main::entry#1 main::idx#4 ] { } ) always clobbers reg byte a reg byte y +Statement [0] *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)ENTRIES) = 1 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)main::entry2#0) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry *) 0 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *((char *)main::entry1#0) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] if((struct Entry *)0!=main::entry#2) goto main::@2 [ main::entry#2 main::idx#5 ] ( [ main::entry#2 main::idx#5 ] { } ) always clobbers reg byte a +Statement [9] main::$2 = '0' + *((char *)main::entry#2) [ main::entry#2 main::idx#5 main::$2 ] ( [ main::entry#2 main::idx#5 main::$2 ] { } ) always clobbers reg byte a reg byte y +Statement [12] main::$3 = byte0 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#1 main::$3 ] ( [ main::entry#2 main::idx#1 main::$3 ] { } ) always clobbers reg byte a reg byte y +Statement [15] main::$4 = byte1 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#2 main::idx#2 main::$4 ] ( [ main::entry#2 main::idx#2 main::$4 ] { } ) always clobbers reg byte a reg byte y Statement [18] main::SCREEN[main::idx#3] = ' ' [ main::entry#2 main::idx#3 ] ( [ main::entry#2 main::idx#3 ] { } ) always clobbers reg byte a -Statement [20] main::entry#1 = ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#1 main::idx#4 ] ( [ main::entry#1 main::idx#4 ] { } ) always clobbers reg byte a reg byte y +Statement [20] main::entry#1 = ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] [ main::entry#1 main::idx#4 ] ( [ main::entry#1 main::idx#4 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ main::entry#2 main::entry#1 ] : zp[2]:2 , Potential registers zp[1]:4 [ main::idx#5 main::idx#4 ] : zp[1]:4 , reg byte x , Potential registers zp[1]:5 [ main::$2 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -421,28 +421,28 @@ main: { .label entry1 = ENTRIES+1*SIZEOF_STRUCT_ENTRY .label entry2 = ENTRIES+2*SIZEOF_STRUCT_ENTRY .label entry = 2 - // [0] *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 -- _deref_qssc1=pssc2 + // [0] *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 -- _deref_qssc1=pssc2 lda #entry2 sta ENTRIES+OFFSET_STRUCT_ENTRY_NEXT+1 - // [1] *((byte*)ENTRIES) = 1 -- _deref_pbuc1=vbuc2 + // [1] *((char *)ENTRIES) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta ENTRIES - // [2] *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 -- _deref_qssc1=pssc2 + // [2] *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 -- _deref_qssc1=pssc2 lda #entry1 sta entry2+OFFSET_STRUCT_ENTRY_NEXT+1 - // [3] *((byte*)main::entry2#0) = 2 -- _deref_pbuc1=vbuc2 + // [3] *((char *)main::entry2#0) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta entry2 - // [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 -- _deref_qssc1=pssc2 + // [4] *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry *) 0 -- _deref_qssc1=pssc2 lda #<0 sta entry1+OFFSET_STRUCT_ENTRY_NEXT lda #>0 sta entry1+OFFSET_STRUCT_ENTRY_NEXT+1 - // [5] *((byte*)main::entry1#0) = 3 -- _deref_pbuc1=vbuc2 + // [5] *((char *)main::entry1#0) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta entry1 // [6] phi from main to main::@1 [phi:main->main::@1] @@ -457,7 +457,7 @@ main: { jmp __b1 // main::@1 __b1: - // [7] if((struct Entry*)0!=main::entry#2) goto main::@2 -- pssc1_neq_pssz1_then_la1 + // [7] if((struct Entry *)0!=main::entry#2) goto main::@2 -- pssc1_neq_pssz1_then_la1 lda.z entry+1 cmp #>0 bne __b2 @@ -471,7 +471,7 @@ main: { rts // main::@2 __b2: - // [9] main::$2 = '0' + *((byte*)main::entry#2) -- vbuaa=vbuc1_plus__deref_pbuz1 + // [9] main::$2 = '0' + *((char *)main::entry#2) -- vbuaa=vbuc1_plus__deref_pbuz1 lda #'0' clc ldy #0 @@ -480,14 +480,14 @@ main: { sta SCREEN,x // [11] main::idx#1 = ++ main::idx#5 -- vbuxx=_inc_vbuxx inx - // [12] main::$3 = byte0 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte0_qssz1_derefidx_vbuc1 + // [12] main::$3 = byte0 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte0_qssz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_ENTRY_NEXT lda (entry),y // [13] main::SCREEN[main::idx#1] = main::$3 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x // [14] main::idx#2 = ++ main::idx#1 -- vbuxx=_inc_vbuxx inx - // [15] main::$4 = byte1 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte1_qssz1_derefidx_vbuc1 + // [15] main::$4 = byte1 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte1_qssz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_ENTRY_NEXT+1 lda (entry),y // [16] main::SCREEN[main::idx#2] = main::$4 -- pbuc1_derefidx_vbuxx=vbuaa @@ -499,7 +499,7 @@ main: { sta SCREEN,x // [19] main::idx#4 = ++ main::idx#3 -- vbuxx=_inc_vbuxx inx - // [20] main::entry#1 = ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- pssz1=qssz1_derefidx_vbuc1 + // [20] main::entry#1 = ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- pssz1=qssz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_ENTRY_NEXT lda (entry),y pha @@ -528,28 +528,28 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Entry* ENTRIES = (struct Entry*) 4096 -constant byte OFFSET_STRUCT_ENTRY_NEXT = 1 -constant byte SIZEOF_STRUCT_ENTRY = 3 +__constant struct Entry *ENTRIES = (struct Entry *) 4096 +__constant char OFFSET_STRUCT_ENTRY_NEXT = 1 +__constant char SIZEOF_STRUCT_ENTRY = 3 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -struct Entry* main::entry -struct Entry* main::entry#1 entry zp[2]:2 22.0 -struct Entry* main::entry#2 entry zp[2]:2 1.6923076923076923 -struct Entry* main::entry0 -struct Entry* main::entry1 -constant struct Entry* main::entry1#0 entry1 = ENTRIES+1*SIZEOF_STRUCT_ENTRY -struct Entry* main::entry2 -constant struct Entry* main::entry2#0 entry2 = ENTRIES+2*SIZEOF_STRUCT_ENTRY -byte main::idx -byte main::idx#1 reg byte x 11.0 -byte main::idx#2 reg byte x 11.0 -byte main::idx#3 reg byte x 16.5 -byte main::idx#4 reg byte x 11.0 -byte main::idx#5 reg byte x 8.25 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +struct Entry *main::entry +struct Entry *main::entry#1 // entry zp[2]:2 22.0 +struct Entry *main::entry#2 // entry zp[2]:2 1.6923076923076923 +struct Entry *main::entry0 +struct Entry *main::entry1 +__constant struct Entry *main::entry1#0 = ENTRIES+1*SIZEOF_STRUCT_ENTRY // entry1 +struct Entry *main::entry2 +__constant struct Entry *main::entry2#0 = ENTRIES+2*SIZEOF_STRUCT_ENTRY // entry2 +char main::idx +char main::idx#1 // reg byte x 11.0 +char main::idx#2 // reg byte x 11.0 +char main::idx#3 // reg byte x 16.5 +char main::idx#4 // reg byte x 11.0 +char main::idx#5 // reg byte x 8.25 zp[2]:2 [ main::entry#2 main::entry#1 ] reg byte x [ main::idx#5 main::idx#4 ] @@ -588,32 +588,32 @@ main: { .label entry2 = ENTRIES+2*SIZEOF_STRUCT_ENTRY .label entry = 2 // entry0->next = entry2 - // [0] *((struct Entry**)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 -- _deref_qssc1=pssc2 + // [0] *((struct Entry **)ENTRIES+OFFSET_STRUCT_ENTRY_NEXT) = main::entry2#0 -- _deref_qssc1=pssc2 lda #entry2 sta ENTRIES+OFFSET_STRUCT_ENTRY_NEXT+1 // entry0->value = 1 - // [1] *((byte*)ENTRIES) = 1 -- _deref_pbuc1=vbuc2 + // [1] *((char *)ENTRIES) = 1 -- _deref_pbuc1=vbuc2 lda #1 sta ENTRIES // entry2->next = entry1 - // [2] *((struct Entry**)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 -- _deref_qssc1=pssc2 + // [2] *((struct Entry **)main::entry2#0+OFFSET_STRUCT_ENTRY_NEXT) = main::entry1#0 -- _deref_qssc1=pssc2 lda #entry1 sta entry2+OFFSET_STRUCT_ENTRY_NEXT+1 // entry2->value = 2 - // [3] *((byte*)main::entry2#0) = 2 -- _deref_pbuc1=vbuc2 + // [3] *((char *)main::entry2#0) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta entry2 // entry1->next = (struct Entry*)0 - // [4] *((struct Entry**)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry*) 0 -- _deref_qssc1=pssc2 + // [4] *((struct Entry **)main::entry1#0+OFFSET_STRUCT_ENTRY_NEXT) = (struct Entry *) 0 -- _deref_qssc1=pssc2 lda #<0 sta entry1+OFFSET_STRUCT_ENTRY_NEXT sta entry1+OFFSET_STRUCT_ENTRY_NEXT+1 // entry1->value = 3 - // [5] *((byte*)main::entry1#0) = 3 -- _deref_pbuc1=vbuc2 + // [5] *((char *)main::entry1#0) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta entry1 // [6] phi from main to main::@1 [phi:main->main::@1] @@ -627,7 +627,7 @@ main: { // main::@1 __b1: // while(entry) - // [7] if((struct Entry*)0!=main::entry#2) goto main::@2 -- pssc1_neq_pssz1_then_la1 + // [7] if((struct Entry *)0!=main::entry#2) goto main::@2 -- pssc1_neq_pssz1_then_la1 lda.z entry+1 cmp #>0 bne __b2 @@ -641,7 +641,7 @@ main: { // main::@2 __b2: // '0'+entry->value - // [9] main::$2 = '0' + *((byte*)main::entry#2) -- vbuaa=vbuc1_plus__deref_pbuz1 + // [9] main::$2 = '0' + *((char *)main::entry#2) -- vbuaa=vbuc1_plus__deref_pbuz1 lda #'0' clc ldy #0 @@ -653,7 +653,7 @@ main: { // [11] main::idx#1 = ++ main::idx#5 -- vbuxx=_inc_vbuxx inx // BYTE0(entry->next) - // [12] main::$3 = byte0 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte0_qssz1_derefidx_vbuc1 + // [12] main::$3 = byte0 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte0_qssz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_ENTRY_NEXT lda (entry),y // SCREEN[idx++] = BYTE0(entry->next) @@ -663,7 +663,7 @@ main: { // [14] main::idx#2 = ++ main::idx#1 -- vbuxx=_inc_vbuxx inx // BYTE1(entry->next) - // [15] main::$4 = byte1 ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte1_qssz1_derefidx_vbuc1 + // [15] main::$4 = byte1 ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- vbuaa=_byte1_qssz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_ENTRY_NEXT+1 lda (entry),y // SCREEN[idx++] = BYTE1(entry->next) @@ -680,7 +680,7 @@ main: { // [19] main::idx#4 = ++ main::idx#3 -- vbuxx=_inc_vbuxx inx // entry = entry->next - // [20] main::entry#1 = ((struct Entry**)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- pssz1=qssz1_derefidx_vbuc1 + // [20] main::entry#1 = ((struct Entry **)main::entry#2)[OFFSET_STRUCT_ENTRY_NEXT] -- pssz1=qssz1_derefidx_vbuc1 ldy #OFFSET_STRUCT_ENTRY_NEXT lda (entry),y pha diff --git a/src/test/ref/struct-ptr-5.sym b/src/test/ref/struct-ptr-5.sym index 706961f27..cb257968b 100644 --- a/src/test/ref/struct-ptr-5.sym +++ b/src/test/ref/struct-ptr-5.sym @@ -1,25 +1,25 @@ -constant struct Entry* ENTRIES = (struct Entry*) 4096 -constant byte OFFSET_STRUCT_ENTRY_NEXT = 1 -constant byte SIZEOF_STRUCT_ENTRY = 3 +__constant struct Entry *ENTRIES = (struct Entry *) 4096 +__constant char OFFSET_STRUCT_ENTRY_NEXT = 1 +__constant char SIZEOF_STRUCT_ENTRY = 3 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -struct Entry* main::entry -struct Entry* main::entry#1 entry zp[2]:2 22.0 -struct Entry* main::entry#2 entry zp[2]:2 1.6923076923076923 -struct Entry* main::entry0 -struct Entry* main::entry1 -constant struct Entry* main::entry1#0 entry1 = ENTRIES+1*SIZEOF_STRUCT_ENTRY -struct Entry* main::entry2 -constant struct Entry* main::entry2#0 entry2 = ENTRIES+2*SIZEOF_STRUCT_ENTRY -byte main::idx -byte main::idx#1 reg byte x 11.0 -byte main::idx#2 reg byte x 11.0 -byte main::idx#3 reg byte x 16.5 -byte main::idx#4 reg byte x 11.0 -byte main::idx#5 reg byte x 8.25 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +struct Entry *main::entry +struct Entry *main::entry#1 // entry zp[2]:2 22.0 +struct Entry *main::entry#2 // entry zp[2]:2 1.6923076923076923 +struct Entry *main::entry0 +struct Entry *main::entry1 +__constant struct Entry *main::entry1#0 = ENTRIES+1*SIZEOF_STRUCT_ENTRY // entry1 +struct Entry *main::entry2 +__constant struct Entry *main::entry2#0 = ENTRIES+2*SIZEOF_STRUCT_ENTRY // entry2 +char main::idx +char main::idx#1 // reg byte x 11.0 +char main::idx#2 // reg byte x 11.0 +char main::idx#3 // reg byte x 16.5 +char main::idx#4 // reg byte x 11.0 +char main::idx#5 // reg byte x 8.25 zp[2]:2 [ main::entry#2 main::entry#1 ] reg byte x [ main::idx#5 main::idx#4 ] diff --git a/src/test/ref/struct-ptr-6.cfg b/src/test/ref/struct-ptr-6.cfg index 9469dfac2..714a77049 100644 --- a/src/test/ref/struct-ptr-6.cfg +++ b/src/test/ref/struct-ptr-6.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)(struct Point*) 4096) - [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) - [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) - [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [0] *main::SCREEN = *((char *)(struct Point *) 4096) + [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) + [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) + [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/struct-ptr-6.log b/src/test/ref/struct-ptr-6.log index f3894c908..96aa30e99 100644 --- a/src/test/ref/struct-ptr-6.log +++ b/src/test/ref/struct-ptr-6.log @@ -1,21 +1,21 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 points#5 = phi( __start::@1/points#9 ) - main::$4 = (byte*)points#5 + main::$4 = (char *)points#5 main::$0 = main::$4 + OFFSET_STRUCT_POINT_X main::SCREEN[0] = *main::$0 - main::$5 = (byte*)points#5 + main::$5 = (char *)points#5 main::$1 = main::$5 + OFFSET_STRUCT_POINT_Y main::SCREEN[1] = *main::$1 points#0 = points#5 + SIZEOF_STRUCT_POINT - main::$6 = (byte*)points#0 + main::$6 = (char *)points#0 main::$2 = main::$6 + OFFSET_STRUCT_POINT_X main::SCREEN[2] = *main::$2 - main::$7 = (byte*)points#0 + main::$7 = (char *)points#0 main::$3 = main::$7 + OFFSET_STRUCT_POINT_Y main::SCREEN[3] = *main::$3 to:main::@return @@ -29,11 +29,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - points#2 = (struct Point*)$1000 + points#2 = (struct Point *)$1000 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 points#9 = phi( __start::__init1/points#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 points#7 = phi( __start::@1/points#1 ) @@ -46,48 +46,48 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -byte*~ main::$6 -byte*~ main::$7 -constant byte* const main::SCREEN = (byte*)$400 -struct Point* points -struct Point* points#0 -struct Point* points#1 -struct Point* points#2 -struct Point* points#3 -struct Point* points#4 -struct Point* points#5 -struct Point* points#6 -struct Point* points#7 -struct Point* points#8 -struct Point* points#9 +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +char *main::$4 +char *main::$5 +char *main::$6 +char *main::$7 +__constant char * const main::SCREEN = (char *)$400 +struct Point *points +struct Point *points#0 +struct Point *points#1 +struct Point *points#2 +struct Point *points#3 +struct Point *points#4 +struct Point *points#5 +struct Point *points#6 +struct Point *points#7 +struct Point *points#8 +struct Point *points#9 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = *main::$0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = *main::$1 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = *main::$2 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = *main::$3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 -Simplifying constant pointer cast (struct Point*) 4096 +Simplifying constant pointer cast (struct Point *) 4096 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias points#0 = points#6 points#1 Alias points#2 = points#9 @@ -96,10 +96,10 @@ Successful SSA optimization Pass2AliasElimination Identical Phi Values points#5 points#2 Identical Phi Values points#3 points#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant points#2 = (struct Point*) 4096 +Constant points#2 = (struct Point *) 4096 Successful SSA optimization Pass2ConstantIdentification -Constant main::$4 = (byte*)points#2 -Constant main::$5 = (byte*)points#2 +Constant main::$4 = (char *)points#2 +Constant main::$5 = (char *)points#2 Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [3] main::SCREEN[0] = *main::$0 -- main::$4[OFFSET_STRUCT_POINT_X] Converting *(pointer+n) to pointer[n] [6] main::SCREEN[1] = *main::$1 -- main::$5[OFFSET_STRUCT_POINT_Y] @@ -129,22 +129,22 @@ Constant right-side identified [2] points#0 = points#2 + SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantRValueConsolidation Constant points#0 = points#2+SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantIdentification -Constant main::$6 = (byte*)points#0 -Constant main::$7 = (byte*)points#0 +Constant main::$6 = (char *)points#0 +Constant main::$7 = (char *)points#0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings points#2 Inlining constant with different constant siblings points#0 -Constant inlined main::$5 = (byte*)(struct Point*) 4096 -Constant inlined points#0 = (struct Point*) 4096+SIZEOF_STRUCT_POINT -Constant inlined main::$6 = (byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT -Constant inlined points#2 = (struct Point*) 4096 -Constant inlined main::$4 = (byte*)(struct Point*) 4096 -Constant inlined main::$7 = (byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT +Constant inlined main::$5 = (char *)(struct Point *) 4096 +Constant inlined points#0 = (struct Point *) 4096+SIZEOF_STRUCT_POINT +Constant inlined main::$6 = (char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT +Constant inlined points#2 = (struct Point *) 4096 +Constant inlined main::$4 = (char *)(struct Point *) 4096 +Constant inlined main::$7 = (char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+2) -Consolidated array index constant in *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -156,10 +156,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *main::SCREEN = *((byte*)(struct Point*) 4096) - [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) - [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) - [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [0] *main::SCREEN = *((char *)(struct Point *) 4096) + [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) + [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) + [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [4] return @@ -168,15 +168,15 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point* points +struct Point *points Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *main::SCREEN = *((byte*)(struct Point*) 4096) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *main::SCREEN = *((char *)(struct Point *) 4096) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [Point] @@ -206,16 +206,16 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [0] *main::SCREEN = *((byte*)(struct Point*) 4096) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)(struct Point *) 4096) -- _deref_pbuc1=_deref_pbuc2 lda $1000 sta SCREEN - // [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+OFFSET_STRUCT_POINT_Y sta SCREEN+1 - // [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT sta SCREEN+2 - // [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+3 jmp __breturn @@ -233,11 +233,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Point* points +__constant char * const main::SCREEN = (char *) 1024 +struct Point *points @@ -263,19 +263,19 @@ Score: 38 main: { .label SCREEN = $400 // SCREEN[0] = points->x - // [0] *main::SCREEN = *((byte*)(struct Point*) 4096) -- _deref_pbuc1=_deref_pbuc2 + // [0] *main::SCREEN = *((char *)(struct Point *) 4096) -- _deref_pbuc1=_deref_pbuc2 lda $1000 sta SCREEN // SCREEN[1] = points->y - // [1] *(main::SCREEN+1) = *((byte*)(struct Point*) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(main::SCREEN+1) = *((char *)(struct Point *) 4096+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // SCREEN[2] = points->x - // [2] *(main::SCREEN+2) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(main::SCREEN+2) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT sta SCREEN+2 // SCREEN[3] = points->y - // [3] *(main::SCREEN+3) = *((byte*)(struct Point*) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(main::SCREEN+3) = *((char *)(struct Point *) 4096+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda $1000+SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+3 // main::@return diff --git a/src/test/ref/struct-ptr-6.sym b/src/test/ref/struct-ptr-6.sym index b860d06bb..2cf83dd5c 100644 --- a/src/test/ref/struct-ptr-6.sym +++ b/src/test/ref/struct-ptr-6.sym @@ -1,6 +1,6 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -struct Point* points +__constant char * const main::SCREEN = (char *) 1024 +struct Point *points diff --git a/src/test/ref/struct-ptr-7.cfg b/src/test/ref/struct-ptr-7.cfg index 75c08cd8f..4c76570f7 100644 --- a/src/test/ref/struct-ptr-7.cfg +++ b/src/test/ref/struct-ptr-7.cfg @@ -1,14 +1,14 @@ void main() main: scope:[main] from - [0] *((byte*)points) = 2 - [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = 3 - [2] *((byte*)points+1*SIZEOF_STRUCT_POINT) = 5 - [3] *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 - [4] *main::SCREEN = *((byte*)points) - [5] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) - [6] *(main::SCREEN+3) = *((byte*)points+1*SIZEOF_STRUCT_POINT) - [7] *(main::SCREEN+4) = *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [0] *((char *)points) = 2 + [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = 3 + [2] *((char *)points+1*SIZEOF_STRUCT_POINT) = 5 + [3] *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 + [4] *main::SCREEN = *((char *)points) + [5] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) + [6] *(main::SCREEN+3) = *((char *)points+1*SIZEOF_STRUCT_POINT) + [7] *(main::SCREEN+4) = *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [8] return diff --git a/src/test/ref/struct-ptr-7.log b/src/test/ref/struct-ptr-7.log index 44a675d32..b7ddbdf03 100644 --- a/src/test/ref/struct-ptr-7.log +++ b/src/test/ref/struct-ptr-7.log @@ -4,28 +4,28 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::$0 = 0 * SIZEOF_STRUCT_POINT - main::$8 = (byte*)points + main::$0 + main::$8 = (char *)points + main::$0 main::$8[OFFSET_STRUCT_POINT_X] = 2 main::$1 = 0 * SIZEOF_STRUCT_POINT - main::$9 = (byte*)points + main::$1 + main::$9 = (char *)points + main::$1 main::$9[OFFSET_STRUCT_POINT_Y] = 3 main::$2 = 1 * SIZEOF_STRUCT_POINT - main::$10 = (byte*)points + main::$2 + main::$10 = (char *)points + main::$2 main::$10[OFFSET_STRUCT_POINT_X] = 5 main::$3 = 1 * SIZEOF_STRUCT_POINT - main::$11 = (byte*)points + main::$3 + main::$11 = (char *)points + main::$3 main::$11[OFFSET_STRUCT_POINT_Y] = 6 main::$4 = 0 * SIZEOF_STRUCT_POINT - main::$12 = (byte*)points + main::$4 + main::$12 = (char *)points + main::$4 main::SCREEN[0] = main::$12[OFFSET_STRUCT_POINT_X] main::$5 = 0 * SIZEOF_STRUCT_POINT - main::$13 = (byte*)points + main::$5 + main::$13 = (char *)points + main::$5 main::SCREEN[1] = main::$13[OFFSET_STRUCT_POINT_Y] main::$6 = 1 * SIZEOF_STRUCT_POINT - main::$14 = (byte*)points + main::$6 + main::$14 = (char *)points + main::$6 main::SCREEN[3] = main::$14[OFFSET_STRUCT_POINT_X] main::$7 = 1 * SIZEOF_STRUCT_POINT - main::$15 = (byte*)points + main::$7 + main::$15 = (char *)points + main::$7 main::SCREEN[4] = main::$15[OFFSET_STRUCT_POINT_Y] to:main::@return main::@return: scope:[main] from main @@ -34,7 +34,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,29 +43,29 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -number~ main::$0 -number~ main::$1 -byte*~ main::$10 -byte*~ main::$11 -byte*~ main::$12 -byte*~ main::$13 -byte*~ main::$14 -byte*~ main::$15 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -number~ main::$7 -byte*~ main::$8 -byte*~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -constant struct Point* points[2] = { fill( 2, 0) } +number main::$0 +number main::$1 +char *main::$10 +char *main::$11 +char *main::$12 +char *main::$13 +char *main::$14 +char *main::$15 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +number main::$6 +number main::$7 +char *main::$8 +char *main::$9 +__constant char * const main::SCREEN = (char *)$400 +__constant struct Point points[2] = { fill( 2, 0) } Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_STRUCT_POINT @@ -97,7 +97,7 @@ Inlining cast main::$9[OFFSET_STRUCT_POINT_Y] = (unumber)3 Inlining cast main::$10[OFFSET_STRUCT_POINT_X] = (unumber)5 Inlining cast main::$11[OFFSET_STRUCT_POINT_Y] = (unumber)6 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 0 @@ -115,31 +115,31 @@ Simplifying constant integer cast 3 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$1 = 0 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$2 = 1 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$3 = 1 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$4 = 0 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$5 = 0 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$6 = 1 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$7 = 1 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$0 = 0 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$1 = 0 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$2 = 1 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$3 = 1 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$4 = 0 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$5 = 0 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$6 = 1 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$7 = 1 * SIZEOF_STRUCT_POINT Constant right-side identified [0] main::$0 = 0 * SIZEOF_STRUCT_POINT Constant right-side identified [3] main::$1 = 0 * SIZEOF_STRUCT_POINT Constant right-side identified [6] main::$2 = 1 * SIZEOF_STRUCT_POINT @@ -163,14 +163,14 @@ Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_POINT in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_POINT in Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_POINT in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)points in [1] main::$8 = (byte*)points + main::$0 +Simplifying expression containing zero (char *)points in [1] main::$8 = (char *)points + main::$0 Simplifying expression containing zero main::$8 in [2] main::$8[OFFSET_STRUCT_POINT_X] = 2 -Simplifying expression containing zero (byte*)points in [4] main::$9 = (byte*)points + main::$1 +Simplifying expression containing zero (char *)points in [4] main::$9 = (char *)points + main::$1 Simplifying expression containing zero main::$10 in [8] main::$10[OFFSET_STRUCT_POINT_X] = 5 -Simplifying expression containing zero (byte*)points in [13] main::$12 = (byte*)points + main::$4 +Simplifying expression containing zero (char *)points in [13] main::$12 = (char *)points + main::$4 Simplifying expression containing zero main::$12 in [14] main::SCREEN[0] = main::$12[OFFSET_STRUCT_POINT_X] Simplifying expression containing zero main::SCREEN in [14] main::SCREEN[0] = *main::$12 -Simplifying expression containing zero (byte*)points in [16] main::$13 = (byte*)points + main::$5 +Simplifying expression containing zero (char *)points in [16] main::$13 = (char *)points + main::$5 Simplifying expression containing zero main::$14 in [20] main::SCREEN[3] = main::$14[OFFSET_STRUCT_POINT_X] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 @@ -184,43 +184,43 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [4] main::$10 = (byte*)points + main::$2 -Constant right-side identified [6] main::$11 = (byte*)points + main::$3 -Constant right-side identified [12] main::$14 = (byte*)points + main::$6 -Constant right-side identified [14] main::$15 = (byte*)points + main::$7 +Constant right-side identified [4] main::$10 = (char *)points + main::$2 +Constant right-side identified [6] main::$11 = (char *)points + main::$3 +Constant right-side identified [12] main::$14 = (char *)points + main::$6 +Constant right-side identified [14] main::$15 = (char *)points + main::$7 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$8 = (byte*)points -Constant main::$9 = (byte*)points -Constant main::$10 = (byte*)points+main::$2 -Constant main::$11 = (byte*)points+main::$3 -Constant main::$12 = (byte*)points -Constant main::$13 = (byte*)points -Constant main::$14 = (byte*)points+main::$6 -Constant main::$15 = (byte*)points+main::$7 +Constant main::$8 = (char *)points +Constant main::$9 = (char *)points +Constant main::$10 = (char *)points+main::$2 +Constant main::$11 = (char *)points+main::$3 +Constant main::$12 = (char *)points +Constant main::$13 = (char *)points +Constant main::$14 = (char *)points+main::$6 +Constant main::$15 = (char *)points+main::$7 Successful SSA optimization Pass2ConstantIdentification -Constant inlined main::$12 = (byte*)points -Constant inlined main::$13 = (byte*)points -Constant inlined main::$14 = (byte*)points+1*SIZEOF_STRUCT_POINT -Constant inlined main::$15 = (byte*)points+1*SIZEOF_STRUCT_POINT -Constant inlined main::$10 = (byte*)points+1*SIZEOF_STRUCT_POINT -Constant inlined main::$11 = (byte*)points+1*SIZEOF_STRUCT_POINT +Constant inlined main::$12 = (char *)points +Constant inlined main::$13 = (char *)points +Constant inlined main::$14 = (char *)points+1*SIZEOF_STRUCT_POINT +Constant inlined main::$15 = (char *)points+1*SIZEOF_STRUCT_POINT +Constant inlined main::$10 = (char *)points+1*SIZEOF_STRUCT_POINT +Constant inlined main::$11 = (char *)points+1*SIZEOF_STRUCT_POINT Constant inlined main::$2 = 1*SIZEOF_STRUCT_POINT Constant inlined main::$6 = 1*SIZEOF_STRUCT_POINT Constant inlined main::$3 = 1*SIZEOF_STRUCT_POINT -Constant inlined main::$9 = (byte*)points +Constant inlined main::$9 = (char *)points Constant inlined main::$7 = 1*SIZEOF_STRUCT_POINT -Constant inlined main::$8 = (byte*)points +Constant inlined main::$8 = (char *)points Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)points+OFFSET_STRUCT_POINT_Y) -Consolidated array index constant in *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -Consolidated array index constant in *((byte*)points+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+3) -Consolidated array index constant in *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(main::SCREEN+4) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -231,14 +231,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)points) = 2 - [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = 3 - [2] *((byte*)points+1*SIZEOF_STRUCT_POINT) = 5 - [3] *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 - [4] *main::SCREEN = *((byte*)points) - [5] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) - [6] *(main::SCREEN+3) = *((byte*)points+1*SIZEOF_STRUCT_POINT) - [7] *(main::SCREEN+4) = *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) + [0] *((char *)points) = 2 + [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = 3 + [2] *((char *)points+1*SIZEOF_STRUCT_POINT) = 5 + [3] *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 + [4] *main::SCREEN = *((char *)points) + [5] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) + [6] *(main::SCREEN+3) = *((char *)points+1*SIZEOF_STRUCT_POINT) + [7] *(main::SCREEN+4) = *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) to:main::@return main::@return: scope:[main] from main [8] return @@ -251,14 +251,14 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)points) = 2 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = 3 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *((byte*)points+1*SIZEOF_STRUCT_POINT) = 5 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *main::SCREEN = *((byte*)points) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *(main::SCREEN+3) = *((byte*)points+1*SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [7] *(main::SCREEN+4) = *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)points) = 2 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = 3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *((char *)points+1*SIZEOF_STRUCT_POINT) = 5 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *main::SCREEN = *((char *)points) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *(main::SCREEN+3) = *((char *)points+1*SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [7] *(main::SCREEN+4) = *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [Point] @@ -288,28 +288,28 @@ ASSEMBLER BEFORE OPTIMIZATION // main main: { .label SCREEN = $400 - // [0] *((byte*)points) = 2 -- _deref_pbuc1=vbuc2 + // [0] *((char *)points) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta points - // [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta points+OFFSET_STRUCT_POINT_Y - // [2] *((byte*)points+1*SIZEOF_STRUCT_POINT) = 5 -- _deref_pbuc1=vbuc2 + // [2] *((char *)points+1*SIZEOF_STRUCT_POINT) = 5 -- _deref_pbuc1=vbuc2 lda #5 sta points+1*SIZEOF_STRUCT_POINT - // [3] *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 -- _deref_pbuc1=vbuc2 + // [3] *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 -- _deref_pbuc1=vbuc2 lda #6 sta points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y - // [4] *main::SCREEN = *((byte*)points) -- _deref_pbuc1=_deref_pbuc2 + // [4] *main::SCREEN = *((char *)points) -- _deref_pbuc1=_deref_pbuc2 lda points sta SCREEN - // [5] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [5] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+OFFSET_STRUCT_POINT_Y sta SCREEN+1 - // [6] *(main::SCREEN+3) = *((byte*)points+1*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(main::SCREEN+3) = *((char *)points+1*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda points+1*SIZEOF_STRUCT_POINT sta SCREEN+3 - // [7] *(main::SCREEN+4) = *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(main::SCREEN+4) = *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+4 jmp __breturn @@ -329,11 +329,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct Point* points[2] = { fill( 2, 0) } +__constant char * const main::SCREEN = (char *) 1024 +__constant struct Point points[2] = { fill( 2, 0) } @@ -359,35 +359,35 @@ Score: 62 main: { .label SCREEN = $400 // points[0].x = 2 - // [0] *((byte*)points) = 2 -- _deref_pbuc1=vbuc2 + // [0] *((char *)points) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta points // points[0].y = 3 - // [1] *((byte*)points+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 + // [1] *((char *)points+OFFSET_STRUCT_POINT_Y) = 3 -- _deref_pbuc1=vbuc2 lda #3 sta points+OFFSET_STRUCT_POINT_Y // points[1].x = 5 - // [2] *((byte*)points+1*SIZEOF_STRUCT_POINT) = 5 -- _deref_pbuc1=vbuc2 + // [2] *((char *)points+1*SIZEOF_STRUCT_POINT) = 5 -- _deref_pbuc1=vbuc2 lda #5 sta points+1*SIZEOF_STRUCT_POINT // points[1].y = 6 - // [3] *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 -- _deref_pbuc1=vbuc2 + // [3] *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = 6 -- _deref_pbuc1=vbuc2 lda #6 sta points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y // SCREEN[0] = points[0].x - // [4] *main::SCREEN = *((byte*)points) -- _deref_pbuc1=_deref_pbuc2 + // [4] *main::SCREEN = *((char *)points) -- _deref_pbuc1=_deref_pbuc2 lda points sta SCREEN // SCREEN[1] = points[0].y - // [5] *(main::SCREEN+1) = *((byte*)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [5] *(main::SCREEN+1) = *((char *)points+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+OFFSET_STRUCT_POINT_Y sta SCREEN+1 // SCREEN[3] = points[1].x - // [6] *(main::SCREEN+3) = *((byte*)points+1*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(main::SCREEN+3) = *((char *)points+1*SIZEOF_STRUCT_POINT) -- _deref_pbuc1=_deref_pbuc2 lda points+1*SIZEOF_STRUCT_POINT sta SCREEN+3 // SCREEN[4] = points[1].y - // [7] *(main::SCREEN+4) = *((byte*)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 + // [7] *(main::SCREEN+4) = *((char *)points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) -- _deref_pbuc1=_deref_pbuc2 lda points+1*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y sta SCREEN+4 // main::@return diff --git a/src/test/ref/struct-ptr-7.sym b/src/test/ref/struct-ptr-7.sym index 3e0c0a56b..ae66317db 100644 --- a/src/test/ref/struct-ptr-7.sym +++ b/src/test/ref/struct-ptr-7.sym @@ -1,6 +1,6 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -constant byte* const main::SCREEN = (byte*) 1024 -constant struct Point* points[2] = { fill( 2, 0) } +__constant char * const main::SCREEN = (char *) 1024 +__constant struct Point points[2] = { fill( 2, 0) } diff --git a/src/test/ref/struct-ptr-8.cfg b/src/test/ref/struct-ptr-8.cfg index 9a2fd53ed..5caa28ced 100644 --- a/src/test/ref/struct-ptr-8.cfg +++ b/src/test/ref/struct-ptr-8.cfg @@ -7,9 +7,9 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$0 = 2 + main::i#2 [3] main::$5 = main::i#2 << 1 - [4] ((byte*)points)[main::$5] = main::$0 + [4] ((char *)points)[main::$5] = main::$0 [5] main::$1 = 3 + main::i#2 - [6] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 + [6] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 [7] main::i#1 = ++ main::i#2 [8] if(main::i#1!=2) goto main::@1 to:main::@2 @@ -17,9 +17,9 @@ main::@2: scope:[main] from main::@1 main::@2 [9] main::idx#4 = phi( main::@1/0, main::@2/main::idx#3 ) [9] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [10] main::$7 = main::i1#2 << 1 - [11] main::SCREEN[main::idx#4] = ((byte*)points)[main::$7] + [11] main::SCREEN[main::idx#4] = ((char *)points)[main::$7] [12] main::idx#1 = ++ main::idx#4 - [13] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] + [13] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] [14] main::idx#2 = ++ main::idx#1 [15] main::SCREEN[main::idx#2] = ' ' [16] main::idx#3 = ++ main::idx#2 diff --git a/src/test/ref/struct-ptr-8.log b/src/test/ref/struct-ptr-8.log index a6825ada6..8b46fb398 100644 --- a/src/test/ref/struct-ptr-8.log +++ b/src/test/ref/struct-ptr-8.log @@ -9,10 +9,10 @@ main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$0 = 2 + main::i#2 main::$4 = main::i#2 * SIZEOF_STRUCT_POINT - ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$4] = main::$0 + ((char *)points+OFFSET_STRUCT_POINT_X)[main::$4] = main::$0 main::$1 = 3 + main::i#2 main::$5 = main::i#2 * SIZEOF_STRUCT_POINT - ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 + ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 main::i#1 = main::i#2 + rangenext(0,1) main::$2 = main::i#1 != rangelast(0,1) if(main::$2) goto main::@1 @@ -25,10 +25,10 @@ main::@3: scope:[main] from main::@2 main::@3 main::idx#4 = phi( main::@2/main::idx#0, main::@3/main::idx#3 ) main::i1#2 = phi( main::@2/main::i1#0, main::@3/main::i1#1 ) main::$6 = main::i1#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::idx#4] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$6] + main::SCREEN[main::idx#4] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$6] main::idx#1 = ++ main::idx#4 main::$7 = main::i1#2 * SIZEOF_STRUCT_POINT - main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] + main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] main::idx#2 = ++ main::idx#1 main::SCREEN[main::idx#2] = ' ' main::idx#3 = ++ main::idx#2 @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -51,50 +51,50 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -number~ main::$0 -number~ main::$1 -bool~ main::$2 -bool~ main::$3 -byte~ main::$4 -byte~ main::$5 -byte~ main::$6 -byte~ main::$7 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -constant struct Point* points[2] = { fill( 2, 0) } +number main::$0 +number main::$1 +bool main::$2 +bool main::$3 +char main::$4 +char main::$5 +char main::$6 +char main::$7 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +__constant struct Point points[2] = { fill( 2, 0) } Adding number conversion cast (unumber) 2 in main::$0 = 2 + main::i#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)2 + main::i#2 Adding number conversion cast (unumber) 3 in main::$1 = 3 + main::i#2 Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)3 + main::i#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 2 + main::i#2 -Inferred type updated to byte in main::$1 = 3 + main::i#2 +Inferred type updated to char in main::$0 = 2 + main::i#2 +Inferred type updated to char in main::$1 = 3 + main::i#2 Identified duplicate assignment right side [6] main::$5 = main::i#2 * SIZEOF_STRUCT_POINT Identified duplicate assignment right side [17] main::$7 = main::i1#2 * SIZEOF_STRUCT_POINT Successful SSA optimization Pass2DuplicateRValueIdentification @@ -109,8 +109,8 @@ Resolved ranged next value [8] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [10] if(main::i#1!=rangelast(0,1)) goto main::@1 to 2 Resolved ranged next value [22] main::i1#1 = ++ main::i1#2 to ++ Resolved ranged comparison value [24] if(main::i1#1!=rangelast(0,1)) goto main::@3 to 2 -Simplifying expression containing zero (byte*)points in [4] ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$4] = main::$0 -Simplifying expression containing zero (byte*)points in [15] main::SCREEN[main::idx#4] = ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$6] +Simplifying expression containing zero (char *)points in [4] ((char *)points+OFFSET_STRUCT_POINT_X)[main::$4] = main::$0 +Simplifying expression containing zero (char *)points in [15] main::SCREEN[main::idx#4] = ((char *)points+OFFSET_STRUCT_POINT_X)[main::$6] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -125,8 +125,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$5 = main::$4 Alias main::$7 = main::$6 @@ -143,8 +143,8 @@ Constant inlined main::idx#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_STRUCT_POINT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -173,9 +173,9 @@ main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$0 = 2 + main::i#2 [3] main::$5 = main::i#2 << 1 - [4] ((byte*)points)[main::$5] = main::$0 + [4] ((char *)points)[main::$5] = main::$0 [5] main::$1 = 3 + main::i#2 - [6] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 + [6] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 [7] main::i#1 = ++ main::i#2 [8] if(main::i#1!=2) goto main::@1 to:main::@2 @@ -183,9 +183,9 @@ main::@2: scope:[main] from main::@1 main::@2 [9] main::idx#4 = phi( main::@1/0, main::@2/main::idx#3 ) [9] main::i1#2 = phi( main::@1/0, main::@2/main::i1#1 ) [10] main::$7 = main::i1#2 << 1 - [11] main::SCREEN[main::idx#4] = ((byte*)points)[main::$7] + [11] main::SCREEN[main::idx#4] = ((char *)points)[main::$7] [12] main::idx#1 = ++ main::idx#4 - [13] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] + [13] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] [14] main::idx#2 = ++ main::idx#1 [15] main::SCREEN[main::idx#2] = ' ' [16] main::idx#3 = ++ main::idx#2 @@ -199,21 +199,21 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 11.0 -byte~ main::$1 22.0 -byte~ main::$5 11.0 -byte~ main::$7 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 9.166666666666666 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 4.125 -byte main::idx -byte main::idx#1 16.5 -byte main::idx#2 16.5 -byte main::idx#3 7.333333333333333 -byte main::idx#4 11.0 +char main::$0 // 11.0 +char main::$1 // 22.0 +char main::$5 // 11.0 +char main::$7 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 9.166666666666666 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 4.125 +char main::idx +char main::idx#1 // 16.5 +char main::idx#2 // 16.5 +char main::idx#3 // 7.333333333333333 +char main::idx#4 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -248,25 +248,25 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [3] main::$5 = main::i#2 << 1 [ main::i#2 main::$0 main::$5 ] ( [ main::i#2 main::$0 main::$5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::$0 ] -Statement [4] ((byte*)points)[main::$5] = main::$0 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a +Statement [4] ((char *)points)[main::$5] = main::$0 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ main::$5 ] Statement [5] main::$1 = 3 + main::i#2 [ main::i#2 main::$5 main::$1 ] ( [ main::i#2 main::$5 main::$1 ] { } ) always clobbers reg byte a Statement [10] main::$7 = main::i1#2 << 1 [ main::i1#2 main::idx#4 main::$7 ] ( [ main::i1#2 main::idx#4 main::$7 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::idx#4 main::idx#3 ] -Statement [11] main::SCREEN[main::idx#4] = ((byte*)points)[main::$7] [ main::i1#2 main::idx#4 main::$7 ] ( [ main::i1#2 main::idx#4 main::$7 ] { } ) always clobbers reg byte a +Statement [11] main::SCREEN[main::idx#4] = ((char *)points)[main::$7] [ main::i1#2 main::idx#4 main::$7 ] ( [ main::i1#2 main::idx#4 main::$7 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ main::$7 ] -Statement [13] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] [ main::i1#2 main::idx#1 ] ( [ main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a +Statement [13] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] [ main::i1#2 main::idx#1 ] ( [ main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ main::idx#1 ] Statement [15] main::SCREEN[main::idx#2] = ' ' [ main::i1#2 main::idx#2 ] ( [ main::i1#2 main::idx#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::idx#2 ] Statement [2] main::$0 = 2 + main::i#2 [ main::i#2 main::$0 ] ( [ main::i#2 main::$0 ] { } ) always clobbers reg byte a Statement [3] main::$5 = main::i#2 << 1 [ main::i#2 main::$0 main::$5 ] ( [ main::i#2 main::$0 main::$5 ] { } ) always clobbers reg byte a -Statement [4] ((byte*)points)[main::$5] = main::$0 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a +Statement [4] ((char *)points)[main::$5] = main::$0 [ main::i#2 main::$5 ] ( [ main::i#2 main::$5 ] { } ) always clobbers reg byte a Statement [5] main::$1 = 3 + main::i#2 [ main::i#2 main::$5 main::$1 ] ( [ main::i#2 main::$5 main::$1 ] { } ) always clobbers reg byte a Statement [10] main::$7 = main::i1#2 << 1 [ main::i1#2 main::idx#4 main::$7 ] ( [ main::i1#2 main::idx#4 main::$7 ] { } ) always clobbers reg byte a -Statement [11] main::SCREEN[main::idx#4] = ((byte*)points)[main::$7] [ main::i1#2 main::idx#4 main::$7 ] ( [ main::i1#2 main::idx#4 main::$7 ] { } ) always clobbers reg byte a -Statement [13] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] [ main::i1#2 main::idx#1 ] ( [ main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a +Statement [11] main::SCREEN[main::idx#4] = ((char *)points)[main::$7] [ main::i1#2 main::idx#4 main::$7 ] ( [ main::i1#2 main::idx#4 main::$7 ] { } ) always clobbers reg byte a +Statement [13] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] [ main::i1#2 main::idx#1 ] ( [ main::i1#2 main::idx#1 ] { } ) always clobbers reg byte a Statement [15] main::SCREEN[main::idx#2] = ' ' [ main::i1#2 main::idx#2 ] ( [ main::i1#2 main::idx#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::i1#2 main::i1#1 ] : zp[1]:3 , reg byte x , reg byte y , @@ -341,14 +341,14 @@ main: { lda.z i asl tay - // [4] ((byte*)points)[main::$5] = main::$0 -- pbuc1_derefidx_vbuyy=vbuxx + // [4] ((char *)points)[main::$5] = main::$0 -- pbuc1_derefidx_vbuyy=vbuxx txa sta points,y // [5] main::$1 = 3 + main::i#2 -- vbuaa=vbuc1_plus_vbuz1 lda #3 clc adc.z i - // [6] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 -- pbuc1_derefidx_vbuyy=vbuaa + // [6] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 -- pbuc1_derefidx_vbuyy=vbuaa sta points+OFFSET_STRUCT_POINT_Y,y // [7] main::i#1 = ++ main::i#2 -- vbuz1=_inc_vbuz1 inc.z i @@ -375,12 +375,12 @@ main: { lda.z i1 asl tay - // [11] main::SCREEN[main::idx#4] = ((byte*)points)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [11] main::SCREEN[main::idx#4] = ((char *)points)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda points,y sta SCREEN,x // [12] main::idx#1 = ++ main::idx#4 -- vbuxx=_inc_vbuxx inx - // [13] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [13] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda points+OFFSET_STRUCT_POINT_Y,y sta SCREEN,x // [14] main::idx#2 = ++ main::idx#1 -- vbuxx=_inc_vbuxx @@ -426,25 +426,25 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte x 11.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$5 reg byte y 11.0 -byte~ main::$7 reg byte y 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 9.166666666666666 -byte main::i1 -byte main::i1#1 i1 zp[1]:3 16.5 -byte main::i1#2 i1 zp[1]:3 4.125 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 16.5 -byte main::idx#3 reg byte x 7.333333333333333 -byte main::idx#4 reg byte x 11.0 -constant struct Point* points[2] = { fill( 2, 0) } +char main::$0 // reg byte x 11.0 +char main::$1 // reg byte a 22.0 +char main::$5 // reg byte y 11.0 +char main::$7 // reg byte y 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 9.166666666666666 +char main::i1 +char main::i1#1 // i1 zp[1]:3 16.5 +char main::i1#2 // i1 zp[1]:3 4.125 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 16.5 +char main::idx#3 // reg byte x 7.333333333333333 +char main::idx#4 // reg byte x 11.0 +__constant struct Point points[2] = { fill( 2, 0) } zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::i1#2 main::i1#1 ] @@ -496,7 +496,7 @@ main: { lda.z i asl tay - // [4] ((byte*)points)[main::$5] = main::$0 -- pbuc1_derefidx_vbuyy=vbuxx + // [4] ((char *)points)[main::$5] = main::$0 -- pbuc1_derefidx_vbuyy=vbuxx txa sta points,y // 3+i @@ -505,7 +505,7 @@ main: { clc adc.z i // points[i].y = 3+i - // [6] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 -- pbuc1_derefidx_vbuyy=vbuaa + // [6] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$5] = main::$1 -- pbuc1_derefidx_vbuyy=vbuaa sta points+OFFSET_STRUCT_POINT_Y,y // for( byte i: 0..1) // [7] main::i#1 = ++ main::i#2 -- vbuz1=_inc_vbuz1 @@ -530,14 +530,14 @@ main: { lda.z i1 asl tay - // [11] main::SCREEN[main::idx#4] = ((byte*)points)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [11] main::SCREEN[main::idx#4] = ((char *)points)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda points,y sta SCREEN,x // SCREEN[idx++] = points[i].x; // [12] main::idx#1 = ++ main::idx#4 -- vbuxx=_inc_vbuxx inx // SCREEN[idx++] = points[i].y - // [13] main::SCREEN[main::idx#1] = ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy + // [13] main::SCREEN[main::idx#1] = ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$7] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy lda points+OFFSET_STRUCT_POINT_Y,y sta SCREEN,x // SCREEN[idx++] = points[i].y; diff --git a/src/test/ref/struct-ptr-8.sym b/src/test/ref/struct-ptr-8.sym index e47b8133a..f2130e040 100644 --- a/src/test/ref/struct-ptr-8.sym +++ b/src/test/ref/struct-ptr-8.sym @@ -1,22 +1,22 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 +__constant char OFFSET_STRUCT_POINT_Y = 1 void main() -byte~ main::$0 reg byte x 11.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$5 reg byte y 11.0 -byte~ main::$7 reg byte y 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 9.166666666666666 -byte main::i1 -byte main::i1#1 i1 zp[1]:3 16.5 -byte main::i1#2 i1 zp[1]:3 4.125 -byte main::idx -byte main::idx#1 reg byte x 16.5 -byte main::idx#2 reg byte x 16.5 -byte main::idx#3 reg byte x 7.333333333333333 -byte main::idx#4 reg byte x 11.0 -constant struct Point* points[2] = { fill( 2, 0) } +char main::$0 // reg byte x 11.0 +char main::$1 // reg byte a 22.0 +char main::$5 // reg byte y 11.0 +char main::$7 // reg byte y 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 9.166666666666666 +char main::i1 +char main::i1#1 // i1 zp[1]:3 16.5 +char main::i1#2 // i1 zp[1]:3 4.125 +char main::idx +char main::idx#1 // reg byte x 16.5 +char main::idx#2 // reg byte x 16.5 +char main::idx#3 // reg byte x 7.333333333333333 +char main::idx#4 // reg byte x 11.0 +__constant struct Point points[2] = { fill( 2, 0) } zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/struct-ptr-9.cfg b/src/test/ref/struct-ptr-9.cfg index 7e0509188..b55a1e62b 100644 --- a/src/test/ref/struct-ptr-9.cfg +++ b/src/test/ref/struct-ptr-9.cfg @@ -6,8 +6,8 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] ((byte*)points)[main::$2] = 2 - [4] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 + [3] ((char *)points)[main::$2] = 2 + [4] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 [5] main::i#1 = ++ main::i#2 [6] if(main::i#1!=2) goto main::@1 to:main::@2 diff --git a/src/test/ref/struct-ptr-9.log b/src/test/ref/struct-ptr-9.log index 5dab0583e..49bcf4fb9 100644 --- a/src/test/ref/struct-ptr-9.log +++ b/src/test/ref/struct-ptr-9.log @@ -9,8 +9,8 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) main::$2 = main::i#2 * SIZEOF_STRUCT_POINT - ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$2] = 2 - ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 + ((char *)points+OFFSET_STRUCT_POINT_X)[main::$2] = 2 + ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 main::i#1 = main::i#2 + rangenext(0,1) main::$0 = main::i#1 != rangelast(0,1) if(main::$0) goto main::@1 @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -41,27 +41,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -bool~ main::$0 -bool~ main::$1 -byte~ main::$2 -byte~ main::$3 -constant struct Point* const main::SCREEN = (struct Point*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -constant struct Point* points[2] = { fill( 2, 0) } +bool main::$0 +bool main::$1 +char main::$2 +char main::$3 +__constant struct Point * const main::SCREEN = (struct Point *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +__constant struct Point points[2] = { fill( 2, 0) } -Simplifying constant pointer cast (struct Point*) 1024 +Simplifying constant pointer cast (struct Point *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [7] if(main::i#1!=rangelast(0,1)) goto main::@1 Simple Condition main::$1 [14] if(main::i1#1!=rangelast(0,1)) goto main::@3 @@ -73,7 +73,7 @@ Resolved ranged next value [5] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [7] if(main::i#1!=rangelast(0,1)) goto main::@1 to 2 Resolved ranged next value [12] main::i1#1 = ++ main::i1#2 to ++ Resolved ranged comparison value [14] if(main::i1#1!=rangelast(0,1)) goto main::@3 to 2 -Simplifying expression containing zero (byte*)points in [3] ((byte*)points+OFFSET_STRUCT_POINT_X)[main::$2] = 2 +Simplifying expression containing zero (char *)points in [3] ((char *)points+OFFSET_STRUCT_POINT_X)[main::$2] = 2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -88,8 +88,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [1] main::$2 = main::i#2 * SIZEOF_STRUCT_POINT Rewriting multiplication to use shift [7] main::$3 = main::i1#2 * SIZEOF_STRUCT_POINT @@ -99,8 +99,8 @@ Inlining constant with var siblings main::i1#0 Constant inlined main::i#0 = 0 Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@4(between main::@1 and main::@1) Added new block during phi lifting main::@5(between main::@3 and main::@3) @@ -127,8 +127,8 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$2 = main::i#2 << 1 - [3] ((byte*)points)[main::$2] = 2 - [4] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 + [3] ((char *)points)[main::$2] = 2 + [4] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 [5] main::i#1 = ++ main::i#2 [6] if(main::i#1!=2) goto main::@1 to:main::@2 @@ -146,14 +146,14 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 16.5 -byte~ main::$3 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -byte main::i1 -byte main::i1#1 16.5 -byte main::i1#2 11.0 +char main::$2 // 16.5 +char main::$3 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +char main::i1 +char main::i1#1 // 16.5 +char main::i1#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -172,9 +172,9 @@ Allocated zp[1]:5 [ main::$3 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [3] ((byte*)points)[main::$2] = 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [3] ((char *)points)[main::$2] = 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::$2 ] -Statement [4] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [4] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [8] main::$3 = main::i1#2 << 1 [ main::i1#2 main::$3 ] ( [ main::i1#2 main::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] Statement [9] main::SCREEN[main::$3] = memcpy(points[main::$3], struct Point, SIZEOF_STRUCT_POINT) [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a reg byte x reg byte y @@ -182,8 +182,8 @@ Removing always clobbered register reg byte x as potential for zp[1]:3 [ main::i Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] Statement [11] if(main::i1#1!=2) goto main::@2 [ main::i1#1 ] ( [ main::i1#1 ] { } ) always clobbers reg byte a Statement [2] main::$2 = main::i#2 << 1 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [3] ((byte*)points)[main::$2] = 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a -Statement [4] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [3] ((char *)points)[main::$2] = 2 [ main::i#2 main::$2 ] ( [ main::i#2 main::$2 ] { } ) always clobbers reg byte a +Statement [4] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [8] main::$3 = main::i1#2 << 1 [ main::i1#2 main::$3 ] ( [ main::i1#2 main::$3 ] { } ) always clobbers reg byte a Statement [9] main::SCREEN[main::$3] = memcpy(points[main::$3], struct Point, SIZEOF_STRUCT_POINT) [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a reg byte x reg byte y Statement [11] if(main::i1#1!=2) goto main::@2 [ main::i1#1 ] ( [ main::i1#1 ] { } ) always clobbers reg byte a @@ -239,10 +239,10 @@ main: { tya asl tax - // [3] ((byte*)points)[main::$2] = 2 -- pbuc1_derefidx_vbuxx=vbuc2 + // [3] ((char *)points)[main::$2] = 2 -- pbuc1_derefidx_vbuxx=vbuc2 lda #2 sta points,x - // [4] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuxx=vbuyy + // [4] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuxx=vbuyy tya sta points+OFFSET_STRUCT_POINT_Y,x // [5] main::i#1 = ++ main::i#2 -- vbuyy=_inc_vbuyy @@ -309,19 +309,19 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -byte~ main::$2 reg byte x 16.5 -byte~ main::$3 reg byte a 22.0 -constant struct Point* const main::SCREEN = (struct Point*) 1024 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::i1 -byte main::i1#1 i1 zp[1]:2 16.5 -byte main::i1#2 i1 zp[1]:2 11.0 -constant struct Point* points[2] = { fill( 2, 0) } +char main::$2 // reg byte x 16.5 +char main::$3 // reg byte a 22.0 +__constant struct Point * const main::SCREEN = (struct Point *) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::i1 +char main::i1#1 // i1 zp[1]:2 16.5 +char main::i1#2 // i1 zp[1]:2 11.0 +__constant struct Point points[2] = { fill( 2, 0) } reg byte y [ main::i#2 main::i#1 ] zp[1]:2 [ main::i1#2 main::i1#1 ] @@ -363,10 +363,10 @@ main: { tya asl tax - // [3] ((byte*)points)[main::$2] = 2 -- pbuc1_derefidx_vbuxx=vbuc2 + // [3] ((char *)points)[main::$2] = 2 -- pbuc1_derefidx_vbuxx=vbuc2 lda #2 sta points,x - // [4] ((byte*)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuxx=vbuyy + // [4] ((char *)points+OFFSET_STRUCT_POINT_Y)[main::$2] = main::i#2 -- pbuc1_derefidx_vbuxx=vbuyy tya sta points+OFFSET_STRUCT_POINT_Y,x // for( byte i: 0..1) diff --git a/src/test/ref/struct-ptr-9.sym b/src/test/ref/struct-ptr-9.sym index c4e7a394f..ba121aa55 100644 --- a/src/test/ref/struct-ptr-9.sym +++ b/src/test/ref/struct-ptr-9.sym @@ -1,16 +1,16 @@ -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -byte~ main::$2 reg byte x 16.5 -byte~ main::$3 reg byte a 22.0 -constant struct Point* const main::SCREEN = (struct Point*) 1024 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -byte main::i1 -byte main::i1#1 i1 zp[1]:2 16.5 -byte main::i1#2 i1 zp[1]:2 11.0 -constant struct Point* points[2] = { fill( 2, 0) } +char main::$2 // reg byte x 16.5 +char main::$3 // reg byte a 22.0 +__constant struct Point * const main::SCREEN = (struct Point *) 1024 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +char main::i1 +char main::i1#1 // i1 zp[1]:2 16.5 +char main::i1#2 // i1 zp[1]:2 11.0 +__constant struct Point points[2] = { fill( 2, 0) } reg byte y [ main::i#2 main::i#1 ] zp[1]:2 [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/struct-unwinding-1.cfg b/src/test/ref/struct-unwinding-1.cfg index 5a5f395c2..43fe231f7 100644 --- a/src/test/ref/struct-unwinding-1.cfg +++ b/src/test/ref/struct-unwinding-1.cfg @@ -3,16 +3,16 @@ void main() main: scope:[main] from [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [1] *SCREEN = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) - [2] main::p2_x#0 = *((byte*)&main::p1) - [3] main::p2_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) - [4] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 - [5] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 - [6] *((byte*)&main::p1) = 3 + [2] main::p2_x#0 = *((char *)&main::p1) + [3] main::p2_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) + [4] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 + [5] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + [6] *((char *)&main::p1) = 3 [7] *(SCREEN+4*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) - [8] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 - [9] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 - [10] *((byte*)&main::p1) = 4 - [11] *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + [8] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 + [9] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + [10] *((char *)&main::p1) = 4 + [11] *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 [12] *(SCREEN+8*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/struct-unwinding-1.log b/src/test/ref/struct-unwinding-1.log index 862f844fe..f174068f8 100644 --- a/src/test/ref/struct-unwinding-1.log +++ b/src/test/ref/struct-unwinding-1.log @@ -1,5 +1,5 @@ Removing C-classic struct-unwound assignment main::p1 = struct-unwound {*(&main::p1)} -Removing C-classic struct-unwound assignment main::p1 = struct-unwound {*((byte*)&main::p1+OFFSET_STRUCT_POINT_X), *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y)} +Removing C-classic struct-unwound assignment main::p1 = struct-unwound {*((char *)&main::p1+OFFSET_STRUCT_POINT_X), *((char *)&main::p1+OFFSET_STRUCT_POINT_Y)} CONTROL FLOW GRAPH SSA @@ -8,24 +8,24 @@ main: scope:[main] from __start *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) main::$0 = 0 * SIZEOF_STRUCT_POINT SCREEN[main::$0] = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) - main::p2_x#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) - main::p2_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) + main::p2_x#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_X) + main::p2_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) main::$1 = 2 * SIZEOF_STRUCT_POINT - main::$5 = (byte*)SCREEN + main::$1 + main::$5 = (char *)SCREEN + main::$1 main::$5[OFFSET_STRUCT_POINT_X] = main::p2_x#0 - main::$6 = (byte*)SCREEN + main::$1 + main::$6 = (char *)SCREEN + main::$1 main::$6[OFFSET_STRUCT_POINT_Y] = main::p2_y#0 - *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) = 3 + *((char *)&main::p1+OFFSET_STRUCT_POINT_X) = 3 main::$2 = 4 * SIZEOF_STRUCT_POINT SCREEN[main::$2] = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) main::p2_x#1 = 4 main::$3 = 6 * SIZEOF_STRUCT_POINT - main::$7 = (byte*)SCREEN + main::$3 + main::$7 = (char *)SCREEN + main::$3 main::$7[OFFSET_STRUCT_POINT_X] = main::p2_x#1 - main::$8 = (byte*)SCREEN + main::$3 + main::$8 = (char *)SCREEN + main::$3 main::$8[OFFSET_STRUCT_POINT_Y] = main::p2_y#0 - *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) = main::p2_x#1 - *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + *((char *)&main::p1+OFFSET_STRUCT_POINT_X) = main::p2_x#1 + *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 main::$4 = 8 * SIZEOF_STRUCT_POINT SCREEN[main::$4] = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) to:main::@return @@ -35,7 +35,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,34 +44,34 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$4 -byte*~ main::$5 -byte*~ main::$6 -byte*~ main::$7 -byte*~ main::$8 -struct Point main::p1 loadstore -byte main::p2_x -byte main::p2_x#0 -byte main::p2_x#1 -byte main::p2_y -byte main::p2_y#0 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +number main::$4 +char *main::$5 +char *main::$6 +char *main::$7 +char *main::$8 +__loadstore struct Point main::p1 +char main::p2_x +char main::p2_x#0 +char main::p2_x#1 +char main::p2_y +char main::p2_y#0 Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) 2 in main::$1 = 2 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)2 * SIZEOF_STRUCT_POINT -Adding number conversion cast (unumber) 3 in *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) = 3 +Adding number conversion cast (unumber) 3 in *((char *)&main::p1+OFFSET_STRUCT_POINT_X) = 3 Adding number conversion cast (unumber) 4 in main::$2 = 4 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$2 in main::$2 = (unumber)4 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) 4 in main::p2_x#1 = 4 @@ -80,10 +80,10 @@ Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)6 * SIZE Adding number conversion cast (unumber) 8 in main::$4 = 8 * SIZEOF_STRUCT_POINT Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)8 * SIZEOF_STRUCT_POINT Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) = (unumber)3 +Inlining cast *((char *)&main::p1+OFFSET_STRUCT_POINT_X) = (unumber)3 Inlining cast main::p2_x#1 = (unumber)4 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct Point*) 1024 +Simplifying constant pointer cast (struct Point *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 3 @@ -92,19 +92,19 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 6 Simplifying constant integer cast 8 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$1 = 2 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$2 = 4 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$3 = 6 * SIZEOF_STRUCT_POINT -Inferred type updated to byte in main::$4 = 8 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$0 = 0 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$1 = 2 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$2 = 4 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$3 = 6 * SIZEOF_STRUCT_POINT +Inferred type updated to char in main::$4 = 8 * SIZEOF_STRUCT_POINT Constant right-side identified [1] main::$0 = 0 * SIZEOF_STRUCT_POINT Constant right-side identified [5] main::$1 = 2 * SIZEOF_STRUCT_POINT Constant right-side identified [11] main::$2 = 4 * SIZEOF_STRUCT_POINT @@ -121,11 +121,11 @@ Successful SSA optimization Pass2ConstantIdentification Simplifying constant evaluating to zero 0*SIZEOF_STRUCT_POINT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero SCREEN in [2] SCREEN[main::$0] = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) -Simplifying expression containing zero (byte*)&main::p1 in [3] main::p2_x#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&main::p1 in [3] main::p2_x#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_X) Simplifying expression containing zero main::$5 in [7] main::$5[OFFSET_STRUCT_POINT_X] = main::p2_x#0 -Simplifying expression containing zero (byte*)&main::p1 in [10] *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) = 3 +Simplifying expression containing zero (char *)&main::p1 in [10] *((char *)&main::p1+OFFSET_STRUCT_POINT_X) = 3 Simplifying expression containing zero main::$7 in [16] main::$7[OFFSET_STRUCT_POINT_X] = main::p2_x#1 -Simplifying expression containing zero (byte*)&main::p1 in [19] *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) = main::p2_x#1 +Simplifying expression containing zero (char *)&main::p1 in [19] *((char *)&main::p1+OFFSET_STRUCT_POINT_X) = main::p2_x#1 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 Eliminating unused constant OFFSET_STRUCT_POINT_X @@ -135,30 +135,30 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [4] main::$5 = (byte*)SCREEN + main::$1 -Constant right-side identified [6] main::$6 = (byte*)SCREEN + main::$1 -Constant right-side identified [10] main::$7 = (byte*)SCREEN + main::$3 -Constant right-side identified [12] main::$8 = (byte*)SCREEN + main::$3 +Constant right-side identified [4] main::$5 = (char *)SCREEN + main::$1 +Constant right-side identified [6] main::$6 = (char *)SCREEN + main::$1 +Constant right-side identified [10] main::$7 = (char *)SCREEN + main::$3 +Constant right-side identified [12] main::$8 = (char *)SCREEN + main::$3 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$5 = (byte*)SCREEN+main::$1 -Constant main::$6 = (byte*)SCREEN+main::$1 -Constant main::$7 = (byte*)SCREEN+main::$3 -Constant main::$8 = (byte*)SCREEN+main::$3 +Constant main::$5 = (char *)SCREEN+main::$1 +Constant main::$6 = (char *)SCREEN+main::$1 +Constant main::$7 = (char *)SCREEN+main::$3 +Constant main::$8 = (char *)SCREEN+main::$3 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings main::p2_x#1 Constant inlined main::$1 = 2*SIZEOF_STRUCT_POINT Constant inlined main::$2 = 4*SIZEOF_STRUCT_POINT -Constant inlined main::$5 = (byte*)SCREEN+2*SIZEOF_STRUCT_POINT -Constant inlined main::$6 = (byte*)SCREEN+2*SIZEOF_STRUCT_POINT +Constant inlined main::$5 = (char *)SCREEN+2*SIZEOF_STRUCT_POINT +Constant inlined main::$6 = (char *)SCREEN+2*SIZEOF_STRUCT_POINT Constant inlined main::$3 = 6*SIZEOF_STRUCT_POINT Constant inlined main::$4 = 8*SIZEOF_STRUCT_POINT -Constant inlined main::$7 = (byte*)SCREEN+6*SIZEOF_STRUCT_POINT +Constant inlined main::$7 = (char *)SCREEN+6*SIZEOF_STRUCT_POINT Constant inlined main::p2_x#1 = 4 -Constant inlined main::$8 = (byte*)SCREEN+6*SIZEOF_STRUCT_POINT +Constant inlined main::$8 = (char *)SCREEN+6*SIZEOF_STRUCT_POINT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(SCREEN+4*SIZEOF_STRUCT_POINT) -Consolidated array index constant in *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) +Consolidated array index constant in *((char *)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) Consolidated array index constant in *(SCREEN+8*SIZEOF_STRUCT_POINT) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -172,16 +172,16 @@ void main() main: scope:[main] from [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [1] *SCREEN = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) - [2] main::p2_x#0 = *((byte*)&main::p1) - [3] main::p2_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) - [4] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 - [5] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 - [6] *((byte*)&main::p1) = 3 + [2] main::p2_x#0 = *((char *)&main::p1) + [3] main::p2_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) + [4] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 + [5] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + [6] *((char *)&main::p1) = 3 [7] *(SCREEN+4*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) - [8] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 - [9] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 - [10] *((byte*)&main::p1) = 4 - [11] *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + [8] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 + [9] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 + [10] *((char *)&main::p1) = 4 + [11] *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 [12] *(SCREEN+8*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) to:main::@return main::@return: scope:[main] from main @@ -191,11 +191,11 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -struct Point main::p1 loadstore -byte main::p2_x -byte main::p2_x#0 2.0 -byte main::p2_y -byte main::p2_y#0 1.0 +__loadstore struct Point main::p1 +char main::p2_x +char main::p2_x#0 // 2.0 +char main::p2_y +char main::p2_y#0 // 1.0 Initial phi equivalence classes Added variable main::p2_x#0 to live range equivalence class [ main::p2_x#0 ] @@ -211,19 +211,19 @@ Allocated zp[2]:4 [ main::p1 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 ] ( [ main::p1 ] { } ) always clobbers reg byte a reg byte y Statement [1] *SCREEN = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 ] ( [ main::p1 ] { } ) always clobbers reg byte a reg byte y -Statement [6] *((byte*)&main::p1) = 3 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a +Statement [6] *((char *)&main::p1) = 3 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::p2_y#0 ] Statement [7] *(SCREEN+4*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::p2_y#0 ] -Statement [8] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a -Statement [10] *((byte*)&main::p1) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a +Statement [8] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a +Statement [10] *((char *)&main::p1) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a Statement [12] *(SCREEN+8*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Statement [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 ] ( [ main::p1 ] { } ) always clobbers reg byte a reg byte y Statement [1] *SCREEN = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 ] ( [ main::p1 ] { } ) always clobbers reg byte a reg byte y -Statement [6] *((byte*)&main::p1) = 3 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a +Statement [6] *((char *)&main::p1) = 3 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a Statement [7] *(SCREEN+4*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a reg byte y -Statement [8] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a -Statement [10] *((byte*)&main::p1) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a +Statement [8] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a +Statement [10] *((char *)&main::p1) = 4 [ main::p1 main::p2_y#0 ] ( [ main::p1 main::p2_y#0 ] { } ) always clobbers reg byte a Statement [12] *(SCREEN+8*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::p2_x#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::p2_y#0 ] : zp[1]:3 , reg byte x , @@ -273,15 +273,15 @@ main: { sta SCREEN-1,y dey bne !- - // [2] main::p2_x#0 = *((byte*)&main::p1) -- vbuaa=_deref_pbuc1 + // [2] main::p2_x#0 = *((char *)&main::p1) -- vbuaa=_deref_pbuc1 lda.z p1 - // [3] main::p2_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [3] main::p2_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y - // [4] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 -- _deref_pbuc1=vbuaa + // [4] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 -- _deref_pbuc1=vbuaa sta SCREEN+2*SIZEOF_STRUCT_POINT - // [5] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx + // [5] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx stx SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y - // [6] *((byte*)&main::p1) = 3 -- _deref_pbuc1=vbuc2 + // [6] *((char *)&main::p1) = 3 -- _deref_pbuc1=vbuc2 // Set in classic struct lda #3 sta.z p1 @@ -292,15 +292,15 @@ main: { sta SCREEN+4*SIZEOF_STRUCT_POINT-1,y dey bne !- - // [8] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 -- _deref_pbuc1=vbuc2 + // [8] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+6*SIZEOF_STRUCT_POINT - // [9] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx + // [9] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx stx SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y - // [10] *((byte*)&main::p1) = 4 -- _deref_pbuc1=vbuc2 + // [10] *((char *)&main::p1) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta.z p1 - // [11] *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx + // [11] *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx stx p1+OFFSET_STRUCT_POINT_Y // [12] *(SCREEN+8*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 ldy #SIZEOF_STRUCT_POINT @@ -328,16 +328,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::p1 loadstore zp[2]:2 -byte main::p2_x -byte main::p2_x#0 reg byte a 2.0 -byte main::p2_y -byte main::p2_y#0 reg byte x 1.0 +__loadstore struct Point main::p1 // zp[2]:2 +char main::p2_x +char main::p2_x#0 // reg byte a 2.0 +char main::p2_y +char main::p2_y#0 // reg byte x 1.0 reg byte a [ main::p2_x#0 ] reg byte x [ main::p2_y#0 ] @@ -383,17 +383,17 @@ main: { dey bne !- // struct Point p2 = p1 - // [2] main::p2_x#0 = *((byte*)&main::p1) -- vbuaa=_deref_pbuc1 + // [2] main::p2_x#0 = *((char *)&main::p1) -- vbuaa=_deref_pbuc1 lda.z p1 - // [3] main::p2_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [3] main::p2_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y // SCREEN[2] = p2 - // [4] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 -- _deref_pbuc1=vbuaa + // [4] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT) = main::p2_x#0 -- _deref_pbuc1=vbuaa sta SCREEN+2*SIZEOF_STRUCT_POINT - // [5] *((byte*)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx + // [5] *((char *)SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx stx SCREEN+2*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y // p1.x = 3 - // [6] *((byte*)&main::p1) = 3 -- _deref_pbuc1=vbuc2 + // [6] *((char *)&main::p1) = 3 -- _deref_pbuc1=vbuc2 // Set in classic struct lda #3 sta.z p1 @@ -406,15 +406,15 @@ main: { dey bne !- // SCREEN[6] = p2 - // [8] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 -- _deref_pbuc1=vbuc2 + // [8] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta SCREEN+6*SIZEOF_STRUCT_POINT - // [9] *((byte*)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx + // [9] *((char *)SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx stx SCREEN+6*SIZEOF_STRUCT_POINT+OFFSET_STRUCT_POINT_Y // p1 = p2 - // [10] *((byte*)&main::p1) = 4 -- _deref_pbuc1=vbuc2 + // [10] *((char *)&main::p1) = 4 -- _deref_pbuc1=vbuc2 sta.z p1 - // [11] *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx + // [11] *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) = main::p2_y#0 -- _deref_pbuc1=vbuxx stx p1+OFFSET_STRUCT_POINT_Y // SCREEN[8] = p1 // [12] *(SCREEN+8*SIZEOF_STRUCT_POINT) = memcpy(*(&main::p1), struct Point, SIZEOF_STRUCT_POINT) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 diff --git a/src/test/ref/struct-unwinding-1.sym b/src/test/ref/struct-unwinding-1.sym index 0ec61bbe4..f35f1776f 100644 --- a/src/test/ref/struct-unwinding-1.sym +++ b/src/test/ref/struct-unwinding-1.sym @@ -1,13 +1,13 @@ -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::p1 loadstore zp[2]:2 -byte main::p2_x -byte main::p2_x#0 reg byte a 2.0 -byte main::p2_y -byte main::p2_y#0 reg byte x 1.0 +__loadstore struct Point main::p1 // zp[2]:2 +char main::p2_x +char main::p2_x#0 // reg byte a 2.0 +char main::p2_y +char main::p2_y#0 // reg byte x 1.0 reg byte a [ main::p2_x#0 ] reg byte x [ main::p2_y#0 ] diff --git a/src/test/ref/struct-unwinding-2.asm b/src/test/ref/struct-unwinding-2.asm index e563e3205..e54e003ba 100644 --- a/src/test/ref/struct-unwinding-2.asm +++ b/src/test/ref/struct-unwinding-2.asm @@ -51,7 +51,7 @@ main: { rts } // Function taking unwound struct as parameter -// print1(byte register(Y) p_x, byte register(X) p_y, byte register(A) idx) +// void print1(__register(Y) char p_x, __register(X) char p_y, __register(A) char idx) print1: { .label __0 = 2 // SCREEN[idx] = p @@ -66,7 +66,7 @@ print1: { rts } // Function taking classic struct as parameter -// print2(byte register(Y) p_x, byte register(X) p_y, byte register(A) idx) +// void print2(__register(Y) char p_x, __register(X) char p_y, __register(A) char idx) print2: { .label __0 = 2 // SCREEN[idx] = p diff --git a/src/test/ref/struct-unwinding-2.cfg b/src/test/ref/struct-unwinding-2.cfg index 39cf6ee62..ffd22e7b4 100644 --- a/src/test/ref/struct-unwinding-2.cfg +++ b/src/test/ref/struct-unwinding-2.cfg @@ -2,48 +2,48 @@ void main() main: scope:[main] from [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] print1::p_x#0 = *((byte*)&main::p1) - [2] print1::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) - [3] call print1 + [1] print1::p_x#0 = *((char *)&main::p1) + [2] print1::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) + [3] call print1 to:main::@1 main::@1: scope:[main] from main - [4] print2::p_x#0 = *((byte*)&main::p1) - [5] print2::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) - [6] call print2 + [4] print2::p_x#0 = *((char *)&main::p1) + [5] print2::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) + [6] call print2 to:main::@2 main::@2: scope:[main] from main::@1 [7] phi() - [8] call print1 + [8] call print1 to:main::@3 main::@3: scope:[main] from main::@2 [9] phi() - [10] call print2 + [10] call print2 to:main::@return main::@return: scope:[main] from main::@3 [11] return to:@return -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) +void print1(char p_x , char p_y , char idx) print1: scope:[print1] from main main::@2 [12] print1::p_y#2 = phi( main/print1::p_y#0, main::@2/main::p2_y ) [12] print1::p_x#2 = phi( main/print1::p_x#0, main::@2/main::p2_x ) [12] print1::idx#2 = phi( main/0, main::@2/4 ) [13] print1::$0 = print1::idx#2 << 1 - [14] ((byte*)SCREEN)[print1::$0] = print1::p_x#2 - [15] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 + [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2 + [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 to:print1::@return print1::@return: scope:[print1] from print1 [16] return to:@return -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) +void print2(char p_x , char p_y , char idx) print2: scope:[print2] from main::@1 main::@3 [17] print2::p_y#2 = phi( main::@1/print2::p_y#0, main::@3/main::p2_y ) [17] print2::p_x#2 = phi( main::@1/print2::p_x#0, main::@3/main::p2_x ) [17] print2::idx#2 = phi( main::@1/2, main::@3/6 ) [18] print2::$0 = print2::idx#2 << 1 - [19] ((byte*)SCREEN)[print2::$0] = print2::p_x#2 - [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 + [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2 + [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 to:print2::@return print2::@return: scope:[print2] from print2 [21] return diff --git a/src/test/ref/struct-unwinding-2.log b/src/test/ref/struct-unwinding-2.log index ba9cd7a6d..e8757c711 100644 --- a/src/test/ref/struct-unwinding-2.log +++ b/src/test/ref/struct-unwinding-2.log @@ -5,28 +5,28 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - print1::p_x#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) - print1::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) + print1::p_x#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_X) + print1::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) print1::idx#0 = 0 - call print1 + call print1 to:main::@1 main::@1: scope:[main] from main - print2::p_x#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) - print2::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) + print2::p_x#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_X) + print2::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) print2::idx#0 = 2 - call print2 + call print2 to:main::@2 main::@2: scope:[main] from main::@1 print1::p_x#1 = main::p2_x print1::p_y#1 = main::p2_y print1::idx#1 = 4 - call print1 + call print1 to:main::@3 main::@3: scope:[main] from main::@2 print2::p_x#1 = main::p2_x print2::p_y#1 = main::p2_y print2::idx#1 = 6 - call print2 + call print2 to:main::@4 main::@4: scope:[main] from main::@3 to:main::@return @@ -34,27 +34,27 @@ main::@return: scope:[main] from main::@4 return to:@return -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) +void print1(char p_x , char p_y , char idx) print1: scope:[print1] from main main::@2 print1::p_y#2 = phi( main/print1::p_y#0, main::@2/print1::p_y#1 ) print1::p_x#2 = phi( main/print1::p_x#0, main::@2/print1::p_x#1 ) print1::idx#2 = phi( main/print1::idx#0, main::@2/print1::idx#1 ) print1::$0 = print1::idx#2 * SIZEOF_STRUCT_POINT - ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[print1::$0] = print1::p_x#2 - ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 + ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[print1::$0] = print1::p_x#2 + ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 to:print1::@return print1::@return: scope:[print1] from print1 return to:@return -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) +void print2(char p_x , char p_y , char idx) print2: scope:[print2] from main::@1 main::@3 print2::p_y#2 = phi( main::@1/print2::p_y#0, main::@3/print2::p_y#1 ) print2::p_x#2 = phi( main::@1/print2::p_x#0, main::@3/print2::p_x#1 ) print2::idx#2 = phi( main::@1/print2::idx#0, main::@3/print2::idx#1 ) print2::$0 = print2::idx#2 * SIZEOF_STRUCT_POINT - ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[print2::$0] = print2::p_x#2 - ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 + ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[print2::$0] = print2::p_x#2 + ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 to:print2::@return print2::@return: scope:[print2] from print2 return @@ -62,7 +62,7 @@ print2::@return: scope:[print2] from print2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -71,46 +71,46 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_X = 0 -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*)$400 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_X = 0 +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *)$400 +__constant char SIZEOF_STRUCT_POINT = 2 void __start() void main() -struct Point main::p1 loadstore -constant byte main::p2_x = 3 -constant byte main::p2_y = 4 -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) -byte~ print1::$0 -byte print1::idx -byte print1::idx#0 -byte print1::idx#1 -byte print1::idx#2 +__loadstore struct Point main::p1 +__constant char main::p2_x = 3 +__constant char main::p2_y = 4 +void print1(char p_x , char p_y , char idx) +char print1::$0 +char print1::idx +char print1::idx#0 +char print1::idx#1 +char print1::idx#2 struct Point print1::p -byte print1::p_x -byte print1::p_x#0 -byte print1::p_x#1 -byte print1::p_x#2 -byte print1::p_y -byte print1::p_y#0 -byte print1::p_y#1 -byte print1::p_y#2 -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) -byte~ print2::$0 -byte print2::idx -byte print2::idx#0 -byte print2::idx#1 -byte print2::idx#2 +char print1::p_x +char print1::p_x#0 +char print1::p_x#1 +char print1::p_x#2 +char print1::p_y +char print1::p_y#0 +char print1::p_y#1 +char print1::p_y#2 +void print2(char p_x , char p_y , char idx) +char print2::$0 +char print2::idx +char print2::idx#0 +char print2::idx#1 +char print2::idx#2 struct Point print2::p -byte print2::p_x -byte print2::p_x#0 -byte print2::p_x#1 -byte print2::p_x#2 -byte print2::p_y -byte print2::p_y#0 -byte print2::p_y#1 -byte print2::p_y#2 +char print2::p_x +char print2::p_x#0 +char print2::p_x#1 +char print2::p_x#2 +char print2::p_y +char print2::p_y#0 +char print2::p_y#1 +char print2::p_y#2 Adding number conversion cast (unumber) 0 in print1::idx#0 = 0 Adding number conversion cast (unumber) 2 in print2::idx#0 = 2 @@ -122,16 +122,16 @@ Inlining cast print2::idx#0 = (unumber)2 Inlining cast print1::idx#1 = (unumber)4 Inlining cast print2::idx#1 = (unumber)6 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct Point*) 1024 +Simplifying constant pointer cast (struct Point *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 4 Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant print1::idx#0 = 0 Constant print2::idx#0 = 2 @@ -142,10 +142,10 @@ Constant print2::p_x#1 = main::p2_x Constant print2::p_y#1 = main::p2_y Constant print2::idx#1 = 6 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)&main::p1 in [1] print1::p_x#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (byte*)&main::p1 in [5] print2::p_x#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_X) -Simplifying expression containing zero (byte*)SCREEN in [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[print1::$0] = print1::p_x#2 -Simplifying expression containing zero (byte*)SCREEN in [25] ((byte*)SCREEN+OFFSET_STRUCT_POINT_X)[print2::$0] = print2::p_x#2 +Simplifying expression containing zero (char *)&main::p1 in [1] print1::p_x#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)&main::p1 in [5] print2::p_x#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_X) +Simplifying expression containing zero (char *)SCREEN in [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[print1::$0] = print1::p_x#2 +Simplifying expression containing zero (char *)SCREEN in [25] ((char *)SCREEN+OFFSET_STRUCT_POINT_X)[print2::$0] = print2::p_x#2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_POINT_X Successful SSA optimization PassNEliminateUnusedVars @@ -195,48 +195,48 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) - [1] print1::p_x#0 = *((byte*)&main::p1) - [2] print1::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) - [3] call print1 + [1] print1::p_x#0 = *((char *)&main::p1) + [2] print1::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) + [3] call print1 to:main::@1 main::@1: scope:[main] from main - [4] print2::p_x#0 = *((byte*)&main::p1) - [5] print2::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) - [6] call print2 + [4] print2::p_x#0 = *((char *)&main::p1) + [5] print2::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) + [6] call print2 to:main::@2 main::@2: scope:[main] from main::@1 [7] phi() - [8] call print1 + [8] call print1 to:main::@3 main::@3: scope:[main] from main::@2 [9] phi() - [10] call print2 + [10] call print2 to:main::@return main::@return: scope:[main] from main::@3 [11] return to:@return -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) +void print1(char p_x , char p_y , char idx) print1: scope:[print1] from main main::@2 [12] print1::p_y#2 = phi( main/print1::p_y#0, main::@2/main::p2_y ) [12] print1::p_x#2 = phi( main/print1::p_x#0, main::@2/main::p2_x ) [12] print1::idx#2 = phi( main/0, main::@2/4 ) [13] print1::$0 = print1::idx#2 << 1 - [14] ((byte*)SCREEN)[print1::$0] = print1::p_x#2 - [15] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 + [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2 + [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 to:print1::@return print1::@return: scope:[print1] from print1 [16] return to:@return -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) +void print2(char p_x , char p_y , char idx) print2: scope:[print2] from main::@1 main::@3 [17] print2::p_y#2 = phi( main::@1/print2::p_y#0, main::@3/main::p2_y ) [17] print2::p_x#2 = phi( main::@1/print2::p_x#0, main::@3/main::p2_x ) [17] print2::idx#2 = phi( main::@1/2, main::@3/6 ) [18] print2::$0 = print2::idx#2 << 1 - [19] ((byte*)SCREEN)[print2::$0] = print2::p_x#2 - [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 + [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2 + [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 to:print2::@return print2::@return: scope:[print2] from print2 [21] return @@ -245,29 +245,29 @@ print2::@return: scope:[print2] from print2 VARIABLE REGISTER WEIGHTS void main() -struct Point main::p1 loadstore -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) -byte~ print1::$0 16.5 -byte print1::idx -byte print1::idx#2 11.0 +__loadstore struct Point main::p1 +void print1(char p_x , char p_y , char idx) +char print1::$0 // 16.5 +char print1::idx +char print1::idx#2 // 11.0 struct Point print1::p -byte print1::p_x -byte print1::p_x#0 2.0 -byte print1::p_x#2 6.5 -byte print1::p_y -byte print1::p_y#0 4.0 -byte print1::p_y#2 4.333333333333333 -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) -byte~ print2::$0 16.5 -byte print2::idx -byte print2::idx#2 11.0 +char print1::p_x +char print1::p_x#0 // 2.0 +char print1::p_x#2 // 6.5 +char print1::p_y +char print1::p_y#0 // 4.0 +char print1::p_y#2 // 4.333333333333333 +void print2(char p_x , char p_y , char idx) +char print2::$0 // 16.5 +char print2::idx +char print2::idx#2 // 11.0 struct Point print2::p -byte print2::p_x -byte print2::p_x#0 2.0 -byte print2::p_x#2 6.5 -byte print2::p_y -byte print2::p_y#0 4.0 -byte print2::p_y#2 4.333333333333333 +char print2::p_x +char print2::p_x#0 // 2.0 +char print2::p_x#2 // 6.5 +char print2::p_y +char print2::p_y#0 // 4.0 +char print2::p_y#2 // 4.333333333333333 Initial phi equivalence classes [ print1::idx#2 ] @@ -303,22 +303,22 @@ Statement [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ Statement [13] print1::$0 = print1::idx#2 << 1 [ print1::p_x#2 print1::p_y#2 print1::$0 ] ( print1:3 [ main::p1 print1::p_x#2 print1::p_y#2 print1::$0 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ print1::p_x#2 print1::p_y#2 print1::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ print1::p_x#2 print1::p_x#0 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ print1::p_y#2 print1::p_y#0 ] -Statement [14] ((byte*)SCREEN)[print1::$0] = print1::p_x#2 [ print1::p_y#2 print1::$0 ] ( print1:3 [ main::p1 print1::p_y#2 print1::$0 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ print1::p_y#2 print1::$0 ] { } ) always clobbers reg byte a +Statement [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2 [ print1::p_y#2 print1::$0 ] ( print1:3 [ main::p1 print1::p_y#2 print1::$0 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ print1::p_y#2 print1::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ print1::$0 ] -Statement [15] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 [ ] ( print1:3 [ main::p1 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ ] { } ) always clobbers reg byte a +Statement [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 [ ] ( print1:3 [ main::p1 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ ] { } ) always clobbers reg byte a Statement [18] print2::$0 = print2::idx#2 << 1 [ print2::p_x#2 print2::p_y#2 print2::$0 ] ( print2:6 [ print2::p_x#2 print2::p_y#2 print2::$0 ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ print2::p_x#2 print2::p_y#2 print2::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ print2::p_x#2 print2::p_x#0 ] Removing always clobbered register reg byte a as potential for zp[1]:7 [ print2::p_y#2 print2::p_y#0 ] -Statement [19] ((byte*)SCREEN)[print2::$0] = print2::p_x#2 [ print2::p_y#2 print2::$0 ] ( print2:6 [ print2::p_y#2 print2::$0 ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ print2::p_y#2 print2::$0 ] { } ) always clobbers reg byte a +Statement [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2 [ print2::p_y#2 print2::$0 ] ( print2:6 [ print2::p_y#2 print2::$0 ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ print2::p_y#2 print2::$0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ print2::$0 ] -Statement [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 [ ] ( print2:6 [ ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ ] { } ) always clobbers reg byte a +Statement [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 [ ] ( print2:6 [ ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ ] { } ) always clobbers reg byte a Statement [0] *(&main::p1) = memcpy(*(&$0), struct Point, SIZEOF_STRUCT_POINT) [ main::p1 ] ( [ main::p1 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } ) always clobbers reg byte a reg byte y Statement [13] print1::$0 = print1::idx#2 << 1 [ print1::p_x#2 print1::p_y#2 print1::$0 ] ( print1:3 [ main::p1 print1::p_x#2 print1::p_y#2 print1::$0 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ print1::p_x#2 print1::p_y#2 print1::$0 ] { } ) always clobbers reg byte a -Statement [14] ((byte*)SCREEN)[print1::$0] = print1::p_x#2 [ print1::p_y#2 print1::$0 ] ( print1:3 [ main::p1 print1::p_y#2 print1::$0 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ print1::p_y#2 print1::$0 ] { } ) always clobbers reg byte a -Statement [15] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 [ ] ( print1:3 [ main::p1 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ ] { } ) always clobbers reg byte a +Statement [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2 [ print1::p_y#2 print1::$0 ] ( print1:3 [ main::p1 print1::p_y#2 print1::$0 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ print1::p_y#2 print1::$0 ] { } ) always clobbers reg byte a +Statement [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 [ ] ( print1:3 [ main::p1 ] { { print1::p_x#0 = print1::p_x#2 } { print1::p_y#0 = print1::p_y#2 } } print1:8 [ ] { } ) always clobbers reg byte a Statement [18] print2::$0 = print2::idx#2 << 1 [ print2::p_x#2 print2::p_y#2 print2::$0 ] ( print2:6 [ print2::p_x#2 print2::p_y#2 print2::$0 ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ print2::p_x#2 print2::p_y#2 print2::$0 ] { } ) always clobbers reg byte a -Statement [19] ((byte*)SCREEN)[print2::$0] = print2::p_x#2 [ print2::p_y#2 print2::$0 ] ( print2:6 [ print2::p_y#2 print2::$0 ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ print2::p_y#2 print2::$0 ] { } ) always clobbers reg byte a -Statement [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 [ ] ( print2:6 [ ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ ] { } ) always clobbers reg byte a +Statement [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2 [ print2::p_y#2 print2::$0 ] ( print2:6 [ print2::p_y#2 print2::$0 ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ print2::p_y#2 print2::$0 ] { } ) always clobbers reg byte a +Statement [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 [ ] ( print2:6 [ ] { { print2::p_x#0 = print2::p_x#2 } { print2::p_y#0 = print2::p_y#2 } } print2:10 [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ print1::idx#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ print1::p_x#2 print1::p_x#0 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ print1::p_y#2 print1::p_y#0 ] : zp[1]:4 , reg byte x , reg byte y , @@ -381,11 +381,11 @@ main: { sta p1-1,y dey bne !- - // [1] print1::p_x#0 = *((byte*)&main::p1) -- vbuyy=_deref_pbuc1 + // [1] print1::p_x#0 = *((char *)&main::p1) -- vbuyy=_deref_pbuc1 ldy.z p1 - // [2] print1::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [2] print1::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y - // [3] call print1 + // [3] call print1 // Pass classic struct to function taking unwound struct // [12] phi from main to print1 [phi:main->print1] print1_from_main: @@ -397,11 +397,11 @@ main: { jmp __b1 // main::@1 __b1: - // [4] print2::p_x#0 = *((byte*)&main::p1) -- vbuyy=_deref_pbuc1 + // [4] print2::p_x#0 = *((char *)&main::p1) -- vbuyy=_deref_pbuc1 ldy.z p1 - // [5] print2::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [5] print2::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y - // [6] call print2 + // [6] call print2 // Pass classic struct to function taking classic struct // [17] phi from main::@1 to print2 [phi:main::@1->print2] print2_from___b1: @@ -415,7 +415,7 @@ main: { jmp __b2 // main::@2 __b2: - // [8] call print1 + // [8] call print1 // Pass unwound struct to function taking unwound struct // [12] phi from main::@2 to print1 [phi:main::@2->print1] print1_from___b2: @@ -431,7 +431,7 @@ main: { jmp __b3 // main::@3 __b3: - // [10] call print2 + // [10] call print2 // Pass unwound struct to function taking classic struct // [17] phi from main::@3 to print2 [phi:main::@3->print2] print2_from___b3: @@ -450,17 +450,17 @@ main: { } // print1 // Function taking unwound struct as parameter -// print1(byte register(Y) p_x, byte register(X) p_y, byte register(A) idx) +// void print1(__register(Y) char p_x, __register(X) char p_y, __register(A) char idx) print1: { .label __0 = 2 // [13] print1::$0 = print1::idx#2 << 1 -- vbuz1=vbuaa_rol_1 asl sta.z __0 - // [14] ((byte*)SCREEN)[print1::$0] = print1::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy + // [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy tya ldy.z __0 sta SCREEN,y - // [15] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx + // [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx ldy.z __0 txa sta SCREEN+OFFSET_STRUCT_POINT_Y,y @@ -472,17 +472,17 @@ print1: { } // print2 // Function taking classic struct as parameter -// print2(byte register(Y) p_x, byte register(X) p_y, byte register(A) idx) +// void print2(__register(Y) char p_x, __register(X) char p_y, __register(A) char idx) print2: { .label __0 = 2 // [18] print2::$0 = print2::idx#2 << 1 -- vbuz1=vbuaa_rol_1 asl sta.z __0 - // [19] ((byte*)SCREEN)[print2::$0] = print2::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy + // [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy tya ldy.z __0 sta SCREEN,y - // [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx + // [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx ldy.z __0 txa sta SCREEN+OFFSET_STRUCT_POINT_Y,y @@ -523,36 +523,36 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::p1 loadstore zp[2]:3 -constant byte main::p2_x = 3 -constant byte main::p2_y = 4 -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) -byte~ print1::$0 zp[1]:2 16.5 -byte print1::idx -byte print1::idx#2 reg byte a 11.0 +__loadstore struct Point main::p1 // zp[2]:3 +__constant char main::p2_x = 3 +__constant char main::p2_y = 4 +void print1(char p_x , char p_y , char idx) +char print1::$0 // zp[1]:2 16.5 +char print1::idx +char print1::idx#2 // reg byte a 11.0 struct Point print1::p -byte print1::p_x -byte print1::p_x#0 reg byte y 2.0 -byte print1::p_x#2 reg byte y 6.5 -byte print1::p_y -byte print1::p_y#0 reg byte x 4.0 -byte print1::p_y#2 reg byte x 4.333333333333333 -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) -byte~ print2::$0 zp[1]:2 16.5 -byte print2::idx -byte print2::idx#2 reg byte a 11.0 +char print1::p_x +char print1::p_x#0 // reg byte y 2.0 +char print1::p_x#2 // reg byte y 6.5 +char print1::p_y +char print1::p_y#0 // reg byte x 4.0 +char print1::p_y#2 // reg byte x 4.333333333333333 +void print2(char p_x , char p_y , char idx) +char print2::$0 // zp[1]:2 16.5 +char print2::idx +char print2::idx#2 // reg byte a 11.0 struct Point print2::p -byte print2::p_x -byte print2::p_x#0 reg byte y 2.0 -byte print2::p_x#2 reg byte y 6.5 -byte print2::p_y -byte print2::p_y#0 reg byte x 4.0 -byte print2::p_y#2 reg byte x 4.333333333333333 +char print2::p_x +char print2::p_x#0 // reg byte y 2.0 +char print2::p_x#2 // reg byte y 6.5 +char print2::p_y +char print2::p_y#0 // reg byte x 4.0 +char print2::p_y#2 // reg byte x 4.333333333333333 reg byte a [ print1::idx#2 ] reg byte y [ print1::p_x#2 print1::p_x#0 ] @@ -598,11 +598,11 @@ main: { dey bne !- // print1(p1, 0) - // [1] print1::p_x#0 = *((byte*)&main::p1) -- vbuyy=_deref_pbuc1 + // [1] print1::p_x#0 = *((char *)&main::p1) -- vbuyy=_deref_pbuc1 ldy.z p1 - // [2] print1::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [2] print1::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y - // [3] call print1 + // [3] call print1 // Pass classic struct to function taking unwound struct // [12] phi from main to print1 [phi:main->print1] // [12] phi print1::p_y#2 = print1::p_y#0 [phi:main->print1#0] -- register_copy @@ -612,11 +612,11 @@ main: { jsr print1 // main::@1 // print2(p1, 2) - // [4] print2::p_x#0 = *((byte*)&main::p1) -- vbuyy=_deref_pbuc1 + // [4] print2::p_x#0 = *((char *)&main::p1) -- vbuyy=_deref_pbuc1 ldy.z p1 - // [5] print2::p_y#0 = *((byte*)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 + // [5] print2::p_y#0 = *((char *)&main::p1+OFFSET_STRUCT_POINT_Y) -- vbuxx=_deref_pbuc1 ldx p1+OFFSET_STRUCT_POINT_Y - // [6] call print2 + // [6] call print2 // Pass classic struct to function taking classic struct // [17] phi from main::@1 to print2 [phi:main::@1->print2] // [17] phi print2::p_y#2 = print2::p_y#0 [phi:main::@1->print2#0] -- register_copy @@ -627,7 +627,7 @@ main: { // [7] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print1(p2, 4) - // [8] call print1 + // [8] call print1 // Pass unwound struct to function taking unwound struct // [12] phi from main::@2 to print1 [phi:main::@2->print1] // [12] phi print1::p_y#2 = main::p2_y [phi:main::@2->print1#0] -- vbuxx=vbuc1 @@ -640,7 +640,7 @@ main: { // [9] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // print2(p2, 6) - // [10] call print2 + // [10] call print2 // Pass unwound struct to function taking classic struct // [17] phi from main::@3 to print2 [phi:main::@3->print2] // [17] phi print2::p_y#2 = main::p2_y [phi:main::@3->print2#0] -- vbuxx=vbuc1 @@ -657,18 +657,18 @@ main: { } // print1 // Function taking unwound struct as parameter -// print1(byte register(Y) p_x, byte register(X) p_y, byte register(A) idx) +// void print1(__register(Y) char p_x, __register(X) char p_y, __register(A) char idx) print1: { .label __0 = 2 // SCREEN[idx] = p // [13] print1::$0 = print1::idx#2 << 1 -- vbuz1=vbuaa_rol_1 asl sta.z __0 - // [14] ((byte*)SCREEN)[print1::$0] = print1::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy + // [14] ((char *)SCREEN)[print1::$0] = print1::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy tya ldy.z __0 sta SCREEN,y - // [15] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx + // [15] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print1::$0] = print1::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx txa sta SCREEN+OFFSET_STRUCT_POINT_Y,y // print1::@return @@ -678,18 +678,18 @@ print1: { } // print2 // Function taking classic struct as parameter -// print2(byte register(Y) p_x, byte register(X) p_y, byte register(A) idx) +// void print2(__register(Y) char p_x, __register(X) char p_y, __register(A) char idx) print2: { .label __0 = 2 // SCREEN[idx] = p // [18] print2::$0 = print2::idx#2 << 1 -- vbuz1=vbuaa_rol_1 asl sta.z __0 - // [19] ((byte*)SCREEN)[print2::$0] = print2::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy + // [19] ((char *)SCREEN)[print2::$0] = print2::p_x#2 -- pbuc1_derefidx_vbuz1=vbuyy tya ldy.z __0 sta SCREEN,y - // [20] ((byte*)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx + // [20] ((char *)SCREEN+OFFSET_STRUCT_POINT_Y)[print2::$0] = print2::p_y#2 -- pbuc1_derefidx_vbuz1=vbuxx txa sta SCREEN+OFFSET_STRUCT_POINT_Y,y // print2::@return diff --git a/src/test/ref/struct-unwinding-2.sym b/src/test/ref/struct-unwinding-2.sym index 0212640aa..39b13aba1 100644 --- a/src/test/ref/struct-unwinding-2.sym +++ b/src/test/ref/struct-unwinding-2.sym @@ -1,33 +1,33 @@ -constant struct Point $0 = { x: 1, y: 2 } -constant byte OFFSET_STRUCT_POINT_Y = 1 -constant struct Point* const SCREEN = (struct Point*) 1024 -constant byte SIZEOF_STRUCT_POINT = 2 +__constant struct Point $0 = { x: 1, y: 2 } +__constant char OFFSET_STRUCT_POINT_Y = 1 +__constant struct Point * const SCREEN = (struct Point *) 1024 +__constant char SIZEOF_STRUCT_POINT = 2 void main() -struct Point main::p1 loadstore zp[2]:3 -constant byte main::p2_x = 3 -constant byte main::p2_y = 4 -void print1(byte print1::p_x , byte print1::p_y , byte print1::idx) -byte~ print1::$0 zp[1]:2 16.5 -byte print1::idx -byte print1::idx#2 reg byte a 11.0 +__loadstore struct Point main::p1 // zp[2]:3 +__constant char main::p2_x = 3 +__constant char main::p2_y = 4 +void print1(char p_x , char p_y , char idx) +char print1::$0 // zp[1]:2 16.5 +char print1::idx +char print1::idx#2 // reg byte a 11.0 struct Point print1::p -byte print1::p_x -byte print1::p_x#0 reg byte y 2.0 -byte print1::p_x#2 reg byte y 6.5 -byte print1::p_y -byte print1::p_y#0 reg byte x 4.0 -byte print1::p_y#2 reg byte x 4.333333333333333 -void print2(byte print2::p_x , byte print2::p_y , byte print2::idx) -byte~ print2::$0 zp[1]:2 16.5 -byte print2::idx -byte print2::idx#2 reg byte a 11.0 +char print1::p_x +char print1::p_x#0 // reg byte y 2.0 +char print1::p_x#2 // reg byte y 6.5 +char print1::p_y +char print1::p_y#0 // reg byte x 4.0 +char print1::p_y#2 // reg byte x 4.333333333333333 +void print2(char p_x , char p_y , char idx) +char print2::$0 // zp[1]:2 16.5 +char print2::idx +char print2::idx#2 // reg byte a 11.0 struct Point print2::p -byte print2::p_x -byte print2::p_x#0 reg byte y 2.0 -byte print2::p_x#2 reg byte y 6.5 -byte print2::p_y -byte print2::p_y#0 reg byte x 4.0 -byte print2::p_y#2 reg byte x 4.333333333333333 +char print2::p_x +char print2::p_x#0 // reg byte y 2.0 +char print2::p_x#2 // reg byte y 6.5 +char print2::p_y +char print2::p_y#0 // reg byte x 4.0 +char print2::p_y#2 // reg byte x 4.333333333333333 reg byte a [ print1::idx#2 ] reg byte y [ print1::p_x#2 print1::p_x#0 ] diff --git a/src/test/ref/subexpr-optimize-0.cfg b/src/test/ref/subexpr-optimize-0.cfg index 86bdfc466..edb9d09ad 100644 --- a/src/test/ref/subexpr-optimize-0.cfg +++ b/src/test/ref/subexpr-optimize-0.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@1/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@1/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$1 = main::i#2 << 1 [3] *main::screen#3 = main::$1 diff --git a/src/test/ref/subexpr-optimize-0.log b/src/test/ref/subexpr-optimize-0.log index a5a765248..0b4b92b86 100644 --- a/src/test/ref/subexpr-optimize-0.log +++ b/src/test/ref/subexpr-optimize-0.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,38 +36,38 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -bool~ main::$2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 +number main::$0 +number main::$1 +bool main::$2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 Adding number conversion cast (unumber) 2 in main::$0 = main::i#2 * 2 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 * (unumber)2 Adding number conversion cast (unumber) 2 in main::$1 = main::i#2 * 2 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#2 * (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 * 2 -Inferred type updated to byte in main::$1 = main::i#2 * 2 +Inferred type updated to char in main::$0 = main::i#2 * 2 +Inferred type updated to char in main::$1 = main::i#2 * 2 Identified duplicate assignment right side [6] main::$1 = main::i#2 * 2 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$2 [11] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [9] main::i#1 = ++ main::i#2 to ++ @@ -81,7 +81,7 @@ Adding number conversion cast (unumber) 3 in [8] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$1 = main::$0 Successful SSA optimization Pass2AliasElimination @@ -89,7 +89,7 @@ Rewriting multiplication to use shift [1] main::$1 = main::i#2 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@2(between main::@1 and main::@1) @@ -110,7 +110,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@1/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@1/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$1 = main::i#2 << 1 [3] *main::screen#3 = main::$1 @@ -127,14 +127,14 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -byte* main::screen -byte* main::screen#1 16.5 -byte* main::screen#2 7.333333333333333 -byte* main::screen#3 11.0 +char main::$1 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +char *main::screen +char *main::screen#1 // 16.5 +char *main::screen#2 // 7.333333333333333 +char *main::screen#3 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -203,7 +203,7 @@ main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -270,14 +270,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 zp[1]:4 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 16.5 -byte* main::screen#2 screen zp[2]:2 7.333333333333333 -byte* main::screen#3 screen zp[2]:2 11.0 +char main::$1 // zp[1]:4 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 16.5 +char *main::screen#2 // screen zp[2]:2 7.333333333333333 +char *main::screen#3 // screen zp[2]:2 11.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#3 main::screen#2 main::screen#1 ] @@ -306,7 +306,7 @@ main: { .label __1 = 4 .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/subexpr-optimize-0.sym b/src/test/ref/subexpr-optimize-0.sym index 569e8db48..84deedf30 100644 --- a/src/test/ref/subexpr-optimize-0.sym +++ b/src/test/ref/subexpr-optimize-0.sym @@ -1,12 +1,12 @@ void main() -byte~ main::$1 zp[1]:4 11.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 16.5 -byte* main::screen#2 screen zp[2]:2 7.333333333333333 -byte* main::screen#3 screen zp[2]:2 11.0 +char main::$1 // zp[1]:4 11.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 16.5 +char *main::screen#2 // screen zp[2]:2 7.333333333333333 +char *main::screen#3 // screen zp[2]:2 11.0 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#3 main::screen#2 main::screen#1 ] diff --git a/src/test/ref/subexpr-optimize-1.log b/src/test/ref/subexpr-optimize-1.log index bae6b452a..55edb8b59 100644 --- a/src/test/ref/subexpr-optimize-1.log +++ b/src/test/ref/subexpr-optimize-1.log @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,22 +42,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -byte*~ main::$1 -bool~ main::$10 -byte*~ main::$2 -number~ main::$3 -byte*~ main::$4 -byte*~ main::$5 -number~ main::$6 -byte*~ main::$7 -byte*~ main::$8 -number~ main::$9 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +number main::$0 +char *main::$1 +bool main::$10 +char *main::$2 +number main::$3 +char *main::$4 +char *main::$5 +number main::$6 +char *main::$7 +char *main::$8 +number main::$9 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 + (unumber)1 @@ -74,7 +74,7 @@ Adding number conversion cast (unumber) $78 in main::$8 = main::SCREEN + $78 Adding number conversion cast (unumber) 1 in main::$9 = main::i#2 + 1 Adding number conversion cast (unumber) main::$9 in main::$9 = main::i#2 + (unumber)1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast $28 Simplifying constant integer cast $28 @@ -86,21 +86,21 @@ Simplifying constant integer cast $78 Simplifying constant integer cast $78 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $78 -Finalized unsigned number type (byte) $78 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $78 +Finalized unsigned number type (char) $78 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 + 1 -Inferred type updated to byte in main::$3 = main::i#2 + 1 -Inferred type updated to byte in main::$6 = main::i#2 + 1 -Inferred type updated to byte in main::$9 = main::i#2 + 1 +Inferred type updated to char in main::$0 = main::i#2 + 1 +Inferred type updated to char in main::$3 = main::i#2 + 1 +Inferred type updated to char in main::$6 = main::i#2 + 1 +Inferred type updated to char in main::$9 = main::i#2 + 1 Simple Condition main::$10 [18] if(main::i#1!=rangelast(0,$26)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant right-side identified [4] main::$1 = main::SCREEN + $28 @@ -129,7 +129,7 @@ Adding number conversion cast (unumber) $27 in [10] if(main::i#1!=$27) goto main Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $27 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $27 +Finalized unsigned number type (char) $27 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::$1 = main::SCREEN+$28 @@ -179,9 +179,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 21.999999999999996 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 21.999999999999996 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -275,10 +275,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 21.999999999999996 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 21.999999999999996 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/subexpr-optimize-1.sym b/src/test/ref/subexpr-optimize-1.sym index a410125ca..fdc25849f 100644 --- a/src/test/ref/subexpr-optimize-1.sym +++ b/src/test/ref/subexpr-optimize-1.sym @@ -1,7 +1,7 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 21.999999999999996 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 21.999999999999996 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/subexpr-optimize-2.cfg b/src/test/ref/subexpr-optimize-2.cfg index 1f885a459..1e87ceba6 100644 --- a/src/test/ref/subexpr-optimize-2.cfg +++ b/src/test/ref/subexpr-optimize-2.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@1/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@1/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$0 = main::i#2 + 1 [3] main::$1 = main::$0 << 1 diff --git a/src/test/ref/subexpr-optimize-2.log b/src/test/ref/subexpr-optimize-2.log index d3debc013..943e88036 100644 --- a/src/test/ref/subexpr-optimize-2.log +++ b/src/test/ref/subexpr-optimize-2.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -27,7 +27,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -38,20 +38,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 + (unumber)1 @@ -62,24 +62,24 @@ Adding number conversion cast (unumber) main::$2 in main::$2 = main::i#2 + (unum Adding number conversion cast (unumber) 2 in main::$3 = main::$2 * 2 Adding number conversion cast (unumber) main::$3 in main::$3 = main::$2 * (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 + 1 -Inferred type updated to byte in main::$1 = main::$0 * 2 -Inferred type updated to byte in main::$2 = main::i#2 + 1 -Inferred type updated to byte in main::$3 = main::$2 * 2 +Inferred type updated to char in main::$0 = main::i#2 + 1 +Inferred type updated to char in main::$1 = main::$0 * 2 +Inferred type updated to char in main::$2 = main::i#2 + 1 +Inferred type updated to char in main::$3 = main::$2 * 2 Simple Condition main::$4 [13] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [11] main::i#1 = ++ main::i#2 to ++ @@ -93,14 +93,14 @@ Adding number conversion cast (unumber) 3 in [10] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [2] main::$1 = main::$0 * 2 Rewriting multiplication to use shift [6] main::$3 = main::$2 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@2(between main::@1 and main::@1) @@ -121,7 +121,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@1/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@1/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$0 = main::i#2 + 1 [3] main::$1 = main::$0 << 1 @@ -141,17 +141,17 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.888888888888889 -byte* main::screen -byte* main::screen#1 8.25 -byte* main::screen#2 7.333333333333333 -byte* main::screen#3 8.25 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.888888888888889 +char *main::screen +char *main::screen#1 // 8.25 +char *main::screen#2 // 7.333333333333333 +char *main::screen#3 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -230,7 +230,7 @@ main: { .label i = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -303,17 +303,17 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 4.888888888888889 -byte* main::screen -byte* main::screen#1 screen zp[2]:3 8.25 -byte* main::screen#2 screen zp[2]:3 7.333333333333333 -byte* main::screen#3 screen zp[2]:3 8.25 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 4.888888888888889 +char *main::screen +char *main::screen#1 // screen zp[2]:3 8.25 +char *main::screen#2 // screen zp[2]:3 7.333333333333333 +char *main::screen#3 // screen zp[2]:3 8.25 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::screen#3 main::screen#2 main::screen#1 ] @@ -344,7 +344,7 @@ main: { .label screen = 3 .label i = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/subexpr-optimize-2.sym b/src/test/ref/subexpr-optimize-2.sym index cd10dd282..3241c3216 100644 --- a/src/test/ref/subexpr-optimize-2.sym +++ b/src/test/ref/subexpr-optimize-2.sym @@ -1,15 +1,15 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 4.888888888888889 -byte* main::screen -byte* main::screen#1 screen zp[2]:3 8.25 -byte* main::screen#2 screen zp[2]:3 7.333333333333333 -byte* main::screen#3 screen zp[2]:3 8.25 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 4.888888888888889 +char *main::screen +char *main::screen#1 // screen zp[2]:3 8.25 +char *main::screen#2 // screen zp[2]:3 7.333333333333333 +char *main::screen#3 // screen zp[2]:3 8.25 zp[1]:2 [ main::i#2 main::i#1 ] zp[2]:3 [ main::screen#3 main::screen#2 main::screen#1 ] diff --git a/src/test/ref/subexpr-optimize-3.cfg b/src/test/ref/subexpr-optimize-3.cfg index cda25c848..e6550d16f 100644 --- a/src/test/ref/subexpr-optimize-3.cfg +++ b/src/test/ref/subexpr-optimize-3.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@1/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@1/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$3 = main::i#2 << 1 [3] main::$4 = main::$3 + main::i#2 diff --git a/src/test/ref/subexpr-optimize-3.log b/src/test/ref/subexpr-optimize-3.log index e432db37f..2f0b3d801 100644 --- a/src/test/ref/subexpr-optimize-3.log +++ b/src/test/ref/subexpr-optimize-3.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -40,22 +40,22 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -bool~ main::$6 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 +number main::$0 +number main::$1 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +bool main::$6 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 Adding number conversion cast (unumber) 2 in main::$0 = main::i#2 * 2 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 * (unumber)2 @@ -68,28 +68,28 @@ Adding number conversion cast (unumber) main::$4 in main::$4 = main::$3 + main:: Adding number conversion cast (unumber) 3 in main::$5 = main::$4 + 3 Adding number conversion cast (unumber) main::$5 in main::$5 = main::$4 + (unumber)3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 * 2 -Inferred type updated to byte in main::$1 = main::$0 + main::i#2 -Inferred type updated to byte in main::$2 = main::$1 + 3 -Inferred type updated to byte in main::$3 = main::i#2 * 2 -Inferred type updated to byte in main::$4 = main::$3 + main::i#2 -Inferred type updated to byte in main::$5 = main::$4 + 3 +Inferred type updated to char in main::$0 = main::i#2 * 2 +Inferred type updated to char in main::$1 = main::$0 + main::i#2 +Inferred type updated to char in main::$2 = main::$1 + 3 +Inferred type updated to char in main::$3 = main::i#2 * 2 +Inferred type updated to char in main::$4 = main::$3 + main::i#2 +Inferred type updated to char in main::$5 = main::$4 + 3 Identified duplicate assignment right side [8] main::$3 = main::i#2 * 2 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition main::$6 [15] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [13] main::i#1 = ++ main::i#2 to ++ @@ -103,7 +103,7 @@ Adding number conversion cast (unumber) 3 in [12] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$3 = main::$0 Successful SSA optimization Pass2AliasElimination @@ -115,7 +115,7 @@ Rewriting multiplication to use shift [1] main::$3 = main::i#2 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@2(between main::@1 and main::@1) @@ -136,7 +136,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@1 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@1/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@1/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [2] main::$3 = main::i#2 << 1 [3] main::$4 = main::$3 + main::i#2 @@ -156,17 +156,17 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte~ main::$4 8.25 -byte~ main::$5 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.888888888888889 -byte* main::screen -byte* main::screen#1 11.0 -byte* main::screen#2 7.333333333333333 -byte* main::screen#3 6.6000000000000005 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::$4 // 8.25 +char main::$5 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.888888888888889 +char *main::screen +char *main::screen#1 // 11.0 +char *main::screen#2 // 7.333333333333333 +char *main::screen#3 // 6.6000000000000005 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -252,7 +252,7 @@ main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -327,17 +327,17 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 zp[1]:4 8.25 -byte~ main::$5 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.888888888888889 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 11.0 -byte* main::screen#2 screen zp[2]:2 7.333333333333333 -byte* main::screen#3 screen zp[2]:2 6.6000000000000005 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // zp[1]:4 8.25 +char main::$5 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.888888888888889 +char *main::screen +char *main::screen#1 // screen zp[2]:2 11.0 +char *main::screen#2 // screen zp[2]:2 7.333333333333333 +char *main::screen#3 // screen zp[2]:2 6.6000000000000005 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#3 main::screen#2 main::screen#1 ] @@ -368,7 +368,7 @@ main: { .label __4 = 4 .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/subexpr-optimize-3.sym b/src/test/ref/subexpr-optimize-3.sym index 80152b917..05ce09901 100644 --- a/src/test/ref/subexpr-optimize-3.sym +++ b/src/test/ref/subexpr-optimize-3.sym @@ -1,15 +1,15 @@ void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 zp[1]:4 8.25 -byte~ main::$5 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.888888888888889 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 11.0 -byte* main::screen#2 screen zp[2]:2 7.333333333333333 -byte* main::screen#3 screen zp[2]:2 6.6000000000000005 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +char main::$4 // zp[1]:4 8.25 +char main::$5 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.888888888888889 +char *main::screen +char *main::screen#1 // screen zp[2]:2 11.0 +char *main::screen#2 // screen zp[2]:2 7.333333333333333 +char *main::screen#3 // screen zp[2]:2 6.6000000000000005 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#3 main::screen#2 main::screen#1 ] diff --git a/src/test/ref/subexpr-optimize-4.cfg b/src/test/ref/subexpr-optimize-4.cfg index ba6589221..aa77ef34c 100644 --- a/src/test/ref/subexpr-optimize-4.cfg +++ b/src/test/ref/subexpr-optimize-4.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@7 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@7/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@7/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@7/main::i#1 ) [2] main::$6 = main::i#2 & 1 [3] if(0!=main::$6) goto main::@2 diff --git a/src/test/ref/subexpr-optimize-4.log b/src/test/ref/subexpr-optimize-4.log index d62e7255e..a122d1264 100644 --- a/src/test/ref/subexpr-optimize-4.log +++ b/src/test/ref/subexpr-optimize-4.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::i#0 = 0 to:main::@1 main::@1: scope:[main] from main main::@7 @@ -63,7 +63,7 @@ main::@return: scope:[main] from main::@7 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -74,42 +74,42 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -number~ main::$10 -number~ main::$11 -bool~ main::$12 -bool~ main::$13 -bool~ main::$14 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -number~ main::$7 -number~ main::$8 -number~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* main::screen#7 -byte* main::screen#8 -byte* main::screen#9 +number main::$0 +number main::$1 +number main::$10 +number main::$11 +bool main::$12 +bool main::$13 +bool main::$14 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +number main::$6 +number main::$7 +number main::$8 +number main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +char *main::screen#7 +char *main::screen#8 +char *main::screen#9 Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 & 1 Adding number conversion cast (unumber) main::$0 in main::$0 = main::i#2 & (unumber)1 @@ -136,7 +136,7 @@ Adding number conversion cast (unumber) main::$11 in main::i#8 = phi( main::@5/m main::screen#4 = phi( main::@5/main::screen#7, main::@6/main::screen#8 ) main::$11 = phi( main::@5/main::$10, main::@6/main::$8 ) Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 3 @@ -146,27 +146,27 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 & 1 -Inferred type updated to byte in main::$3 = main::i#3 + 3 -Inferred type updated to byte in main::$4 = main::$3 -Inferred type updated to byte in main::$1 = main::i#4 * 4 -Inferred type updated to byte in main::$2 = main::$1 -Inferred type updated to byte for main::$5 -Inferred type updated to byte in main::$6 = main::i#5 & 1 -Inferred type updated to byte in main::$9 = main::i#6 + 3 -Inferred type updated to byte in main::$10 = main::$9 -Inferred type updated to byte in main::$7 = main::i#7 * 4 -Inferred type updated to byte in main::$8 = main::$7 -Inferred type updated to byte for main::$11 +Inferred type updated to char in main::$0 = main::i#2 & 1 +Inferred type updated to char in main::$3 = main::i#3 + 3 +Inferred type updated to char in main::$4 = main::$3 +Inferred type updated to char in main::$1 = main::i#4 * 4 +Inferred type updated to char in main::$2 = main::$1 +Inferred type updated to char for main::$5 +Inferred type updated to char in main::$6 = main::i#5 & 1 +Inferred type updated to char in main::$9 = main::i#6 + 3 +Inferred type updated to char in main::$10 = main::$9 +Inferred type updated to char in main::$7 = main::i#7 * 4 +Inferred type updated to char in main::$8 = main::$7 +Inferred type updated to char for main::$11 Alias main::i#2 = main::i#3 main::i#4 Alias main::screen#5 = main::screen#9 main::screen#6 Alias main::$4 = main::$3 @@ -186,7 +186,7 @@ Simple Condition main::$13 [5] if(0!=main::$0) goto main::@2 Simple Condition main::$14 [13] if(0!=main::$6) goto main::@5 Simple Condition main::$12 [21] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::screen#0 = (byte*) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [19] main::i#1 = ++ main::i#2 to ++ @@ -200,7 +200,7 @@ Adding number conversion cast (unumber) 3 in [16] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::$6 = main::$0 Successful SSA optimization Pass2AliasElimination @@ -209,7 +209,7 @@ Rewriting multiplication to use shift [10] main::$8 = main::i#2 * 4 Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::screen#0 Inlining constant with var siblings main::i#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@8(between main::@7 and main::@1) @@ -234,7 +234,7 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@7 - [1] main::screen#3 = phi( main/(byte*) 1024, main::@7/main::screen#2 ) + [1] main::screen#3 = phi( main/(char *) 1024, main::@7/main::screen#2 ) [1] main::i#2 = phi( main/0, main::@7/main::i#1 ) [2] main::$6 = main::i#2 & 1 [3] if(0!=main::$6) goto main::@2 @@ -271,20 +271,20 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$10 22.0 -byte~ main::$11 33.0 -byte~ main::$2 22.0 -byte~ main::$4 22.0 -byte~ main::$5 33.0 -byte~ main::$6 4.714285714285714 -byte~ main::$8 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.5 -byte* main::screen -byte* main::screen#1 5.5 -byte* main::screen#2 7.333333333333333 -byte* main::screen#3 4.714285714285714 +char main::$10 // 22.0 +char main::$11 // 33.0 +char main::$2 // 22.0 +char main::$4 // 22.0 +char main::$5 // 33.0 +char main::$6 // 4.714285714285714 +char main::$8 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.5 +char *main::screen +char *main::screen#1 // 5.5 +char *main::screen#2 // 7.333333333333333 +char *main::screen#3 // 4.714285714285714 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -367,7 +367,7 @@ main: { .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -489,20 +489,20 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$10 reg byte a 22.0 -byte~ main::$11 reg byte a 33.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$5 reg byte a 33.0 -byte~ main::$6 zp[1]:4 4.714285714285714 -byte~ main::$8 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 5.5 -byte* main::screen#2 screen zp[2]:2 7.333333333333333 -byte* main::screen#3 screen zp[2]:2 4.714285714285714 +char main::$10 // reg byte a 22.0 +char main::$11 // reg byte a 33.0 +char main::$2 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::$5 // reg byte a 33.0 +char main::$6 // zp[1]:4 4.714285714285714 +char main::$8 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 5.5 +char *main::screen#2 // screen zp[2]:2 7.333333333333333 +char *main::screen#3 // screen zp[2]:2 4.714285714285714 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#3 main::screen#2 main::screen#1 ] @@ -532,7 +532,7 @@ main: { .label __6 = 4 .label screen = 2 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::screen#3 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::screen#3 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/subexpr-optimize-4.sym b/src/test/ref/subexpr-optimize-4.sym index 632afb8f1..553a25f4c 100644 --- a/src/test/ref/subexpr-optimize-4.sym +++ b/src/test/ref/subexpr-optimize-4.sym @@ -1,18 +1,18 @@ void main() -byte~ main::$10 reg byte a 22.0 -byte~ main::$11 reg byte a 33.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$5 reg byte a 33.0 -byte~ main::$6 zp[1]:4 4.714285714285714 -byte~ main::$8 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.5 -byte* main::screen -byte* main::screen#1 screen zp[2]:2 5.5 -byte* main::screen#2 screen zp[2]:2 7.333333333333333 -byte* main::screen#3 screen zp[2]:2 4.714285714285714 +char main::$10 // reg byte a 22.0 +char main::$11 // reg byte a 33.0 +char main::$2 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::$5 // reg byte a 33.0 +char main::$6 // zp[1]:4 4.714285714285714 +char main::$8 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.5 +char *main::screen +char *main::screen#1 // screen zp[2]:2 5.5 +char *main::screen#2 // screen zp[2]:2 7.333333333333333 +char *main::screen#3 // screen zp[2]:2 4.714285714285714 reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::screen#3 main::screen#2 main::screen#1 ] diff --git a/src/test/ref/summin.asm b/src/test/ref/summin.asm index 06dfe8093..c419c0c47 100644 --- a/src/test/ref/summin.asm +++ b/src/test/ref/summin.asm @@ -41,7 +41,7 @@ main: { // } rts } -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b stx.z $ff diff --git a/src/test/ref/summin.cfg b/src/test/ref/summin.cfg index d35df19fb..39f7f9ca4 100644 --- a/src/test/ref/summin.cfg +++ b/src/test/ref/summin.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#0 = sum::return#3 to:main::@1 main::@1: scope:[main] from main [3] main::s1#0 = sum::return#0 - [4] call sum + [4] call sum [5] sum::return#1 = sum::return#3 to:main::@2 main::@2: scope:[main] from main::@1 [6] main::s2#0 = sum::return#1 - [7] call sum + [7] call sum [8] sum::return#2 = sum::return#3 to:main::@3 main::@3: scope:[main] from main::@2 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@3 [13] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 main::@2 [14] sum::b#3 = phi( main/2, main::@1/4, main::@2/$d ) [14] sum::a#3 = phi( main/1, main::@1/3, main::@2/9 ) diff --git a/src/test/ref/summin.log b/src/test/ref/summin.log index 4c851a74d..e2b206791 100644 --- a/src/test/ref/summin.log +++ b/src/test/ref/summin.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement main::$2 @@ -10,7 +10,7 @@ void main() main: scope:[main] from __start::@1 sum::a#0 = 1 sum::b#0 = 2 - call sum + call sum sum::return#0 = sum::return#4 to:main::@1 main::@1: scope:[main] from main @@ -18,7 +18,7 @@ main::@1: scope:[main] from main main::s1#0 = sum::return#5 sum::a#1 = 3 sum::b#1 = 4 - call sum + call sum sum::return#1 = sum::return#4 to:main::@2 main::@2: scope:[main] from main::@1 @@ -27,7 +27,7 @@ main::@2: scope:[main] from main::@1 main::s2#0 = sum::return#6 sum::a#2 = 9 sum::b#2 = $d - call sum + call sum sum::return#2 = sum::return#4 to:main::@3 main::@3: scope:[main] from main::@2 @@ -43,7 +43,7 @@ main::@return: scope:[main] from main::@3 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 main::@2 sum::b#3 = phi( main/sum::b#0, main::@1/sum::b#1, main::@2/sum::b#2 ) sum::a#3 = phi( main/sum::a#0, main::@1/sum::a#1, main::@2/sum::a#2 ) @@ -62,7 +62,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -73,41 +73,41 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte~ main::$3 -byte main::s1 -byte main::s1#0 -byte main::s1#1 -byte main::s1#2 -byte main::s2 -byte main::s2#0 -byte main::s2#1 -byte main::s3 -byte main::s3#0 -byte main::s4 -byte main::s4#0 -constant byte* screen = (byte*)$400 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::a#3 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -byte sum::b#3 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 -byte sum::return#7 -byte sum::return#8 +char main::$3 +char main::s1 +char main::s1#0 +char main::s1#1 +char main::s1#2 +char main::s2 +char main::s2#0 +char main::s2#1 +char main::s3 +char main::s3#0 +char main::s4 +char main::s4#0 +__constant char *screen = (char *)$400 +char sum(char a , char b) +char sum::$0 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::a#3 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +char sum::b#3 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 +char sum::return#7 +char sum::return#8 Adding number conversion cast (unumber) 1 in sum::a#0 = 1 Adding number conversion cast (unumber) 2 in sum::b#0 = 2 @@ -123,7 +123,7 @@ Inlining cast sum::b#1 = (unumber)4 Inlining cast sum::a#2 = (unumber)9 Inlining cast sum::b#2 = (unumber)$d Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 @@ -131,12 +131,12 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 9 Simplifying constant integer cast $d Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $d +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Alias sum::return#0 = sum::return#5 Alias sum::return#1 = sum::return#6 @@ -185,17 +185,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call sum + [1] call sum [2] sum::return#0 = sum::return#3 to:main::@1 main::@1: scope:[main] from main [3] main::s1#0 = sum::return#0 - [4] call sum + [4] call sum [5] sum::return#1 = sum::return#3 to:main::@2 main::@2: scope:[main] from main::@1 [6] main::s2#0 = sum::return#1 - [7] call sum + [7] call sum [8] sum::return#2 = sum::return#3 to:main::@3 main::@3: scope:[main] from main::@2 @@ -208,7 +208,7 @@ main::@return: scope:[main] from main::@3 [13] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main main::@1 main::@2 [14] sum::b#3 = phi( main/2, main::@1/4, main::@2/$d ) [14] sum::a#3 = phi( main/1, main::@1/3, main::@2/9 ) @@ -221,25 +221,25 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 4.0 -byte main::s1 -byte main::s1#0 0.5714285714285714 -byte main::s2 -byte main::s2#0 1.0 -byte main::s3 -byte main::s3#0 2.0 -byte main::s4 -byte main::s4#0 4.0 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#3 11.0 -byte sum::b -byte sum::b#3 11.0 -byte sum::return -byte sum::return#0 4.0 -byte sum::return#1 4.0 -byte sum::return#2 4.0 -byte sum::return#3 3.4000000000000004 +char main::$3 // 4.0 +char main::s1 +char main::s1#0 // 0.5714285714285714 +char main::s2 +char main::s2#0 // 1.0 +char main::s3 +char main::s3#0 // 2.0 +char main::s4 +char main::s4#0 // 4.0 +char sum(char a , char b) +char sum::a +char sum::a#3 // 11.0 +char sum::b +char sum::b#3 // 11.0 +char sum::return +char sum::return#0 // 4.0 +char sum::return#1 // 4.0 +char sum::return#2 // 4.0 +char sum::return#3 // 3.4000000000000004 Initial phi equivalence classes [ sum::a#3 ] @@ -339,7 +339,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label s1 = 2 .label s3 = 3 - // [1] call sum + // [1] call sum // [14] phi from main to sum [phi:main->sum] sum_from_main: // [14] phi sum::b#3 = 2 [phi:main->sum#0] -- vbuaa=vbuc1 @@ -353,7 +353,7 @@ main: { __b1: // [3] main::s1#0 = sum::return#0 -- vbuz1=vbuaa sta.z s1 - // [4] call sum + // [4] call sum // [14] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [14] phi sum::b#3 = 4 [phi:main::@1->sum#0] -- vbuaa=vbuc1 @@ -367,7 +367,7 @@ main: { __b2: // [6] main::s2#0 = sum::return#1 -- vbuyy=vbuaa tay - // [7] call sum + // [7] call sum // [14] phi from main::@2 to sum [phi:main::@2->sum] sum_from___b2: // [14] phi sum::b#3 = $d [phi:main::@2->sum#0] -- vbuaa=vbuc1 @@ -397,7 +397,7 @@ main: { rts } // sum -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // [15] sum::return#3 = sum::a#3 + sum::b#3 -- vbuaa=vbuxx_plus_vbuaa stx.z $ff @@ -430,26 +430,26 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte~ main::$3 reg byte a 4.0 -byte main::s1 -byte main::s1#0 s1 zp[1]:2 0.5714285714285714 -byte main::s2 -byte main::s2#0 reg byte y 1.0 -byte main::s3 -byte main::s3#0 s3 zp[1]:3 2.0 -byte main::s4 -byte main::s4#0 reg byte a 4.0 -constant byte* screen = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#3 reg byte x 11.0 -byte sum::b -byte sum::b#3 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -byte sum::return#1 reg byte a 4.0 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 3.4000000000000004 +char main::$3 // reg byte a 4.0 +char main::s1 +char main::s1#0 // s1 zp[1]:2 0.5714285714285714 +char main::s2 +char main::s2#0 // reg byte y 1.0 +char main::s3 +char main::s3#0 // s3 zp[1]:3 2.0 +char main::s4 +char main::s4#0 // reg byte a 4.0 +__constant char *screen = (char *) 1024 +char sum(char a , char b) +char sum::a +char sum::a#3 // reg byte x 11.0 +char sum::b +char sum::b#3 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +char sum::return#1 // reg byte a 4.0 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 3.4000000000000004 reg byte x [ sum::a#3 ] reg byte a [ sum::b#3 ] @@ -485,7 +485,7 @@ main: { .label s1 = 2 .label s3 = 3 // byte s1=sum(1,2) - // [1] call sum + // [1] call sum // [14] phi from main to sum [phi:main->sum] // [14] phi sum::b#3 = 2 [phi:main->sum#0] -- vbuaa=vbuc1 lda #2 @@ -498,7 +498,7 @@ main: { // [3] main::s1#0 = sum::return#0 -- vbuz1=vbuaa sta.z s1 // byte s2=sum(3,4) - // [4] call sum + // [4] call sum // [14] phi from main::@1 to sum [phi:main::@1->sum] // [14] phi sum::b#3 = 4 [phi:main::@1->sum#0] -- vbuaa=vbuc1 lda #4 @@ -511,7 +511,7 @@ main: { // [6] main::s2#0 = sum::return#1 -- vbuyy=vbuaa tay // byte s3=sum(9,13) - // [7] call sum + // [7] call sum // [14] phi from main::@2 to sum [phi:main::@2->sum] // [14] phi sum::b#3 = $d [phi:main::@2->sum#0] -- vbuaa=vbuc1 lda #$d @@ -541,7 +541,7 @@ main: { rts } // sum -// sum(byte register(X) a, byte register(A) b) +// __register(A) char sum(__register(X) char a, __register(A) char b) sum: { // a+b // [15] sum::return#3 = sum::a#3 + sum::b#3 -- vbuaa=vbuxx_plus_vbuaa diff --git a/src/test/ref/summin.sym b/src/test/ref/summin.sym index 01f10f267..f0dd2697f 100644 --- a/src/test/ref/summin.sym +++ b/src/test/ref/summin.sym @@ -1,24 +1,24 @@ void main() -byte~ main::$3 reg byte a 4.0 -byte main::s1 -byte main::s1#0 s1 zp[1]:2 0.5714285714285714 -byte main::s2 -byte main::s2#0 reg byte y 1.0 -byte main::s3 -byte main::s3#0 s3 zp[1]:3 2.0 -byte main::s4 -byte main::s4#0 reg byte a 4.0 -constant byte* screen = (byte*) 1024 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#3 reg byte x 11.0 -byte sum::b -byte sum::b#3 reg byte a 11.0 -byte sum::return -byte sum::return#0 reg byte a 4.0 -byte sum::return#1 reg byte a 4.0 -byte sum::return#2 reg byte a 4.0 -byte sum::return#3 reg byte a 3.4000000000000004 +char main::$3 // reg byte a 4.0 +char main::s1 +char main::s1#0 // s1 zp[1]:2 0.5714285714285714 +char main::s2 +char main::s2#0 // reg byte y 1.0 +char main::s3 +char main::s3#0 // s3 zp[1]:3 2.0 +char main::s4 +char main::s4#0 // reg byte a 4.0 +__constant char *screen = (char *) 1024 +char sum(char a , char b) +char sum::a +char sum::a#3 // reg byte x 11.0 +char sum::b +char sum::b#3 // reg byte a 11.0 +char sum::return +char sum::return#0 // reg byte a 4.0 +char sum::return#1 // reg byte a 4.0 +char sum::return#2 // reg byte a 4.0 +char sum::return#3 // reg byte a 3.4000000000000004 reg byte x [ sum::a#3 ] reg byte a [ sum::b#3 ] diff --git a/src/test/ref/switch-0.log b/src/test/ref/switch-0.log index a88970b4e..c63a36afd 100644 --- a/src/test/ref/switch-0.log +++ b/src/test/ref/switch-0.log @@ -49,7 +49,7 @@ main::@return: scope:[main] from main::@6 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -60,36 +60,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 Adding number conversion cast (unumber) 1 in if(main::i#2==1) goto main::@2 Adding number conversion cast (unumber) 2 in if(main::i#4==2) goto main::@3 Adding number conversion cast (unumber) 3 in if(main::i#5==3) goto main::@3 Adding number conversion cast (unumber) 4 in if(main::i#7==4) goto main::@4 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 main::i#4 main::i#5 main::i#7 main::i#9 Successful SSA optimization Pass2AliasElimination @@ -114,7 +114,7 @@ Adding number conversion cast (unumber) 6 in [10] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -171,9 +171,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#10 12.222222222222221 +char main::i +char main::i#1 // 16.5 +char main::i#10 // 12.222222222222221 Initial phi equivalence classes [ main::i#10 main::i#1 ] @@ -317,10 +317,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#10 reg byte x 12.222222222222221 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#10 // reg byte x 12.222222222222221 reg byte x [ main::i#10 main::i#1 ] diff --git a/src/test/ref/switch-0.sym b/src/test/ref/switch-0.sym index c5efc330b..26095cd39 100644 --- a/src/test/ref/switch-0.sym +++ b/src/test/ref/switch-0.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#10 reg byte x 12.222222222222221 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#10 // reg byte x 12.222222222222221 reg byte x [ main::i#10 main::i#1 ] diff --git a/src/test/ref/switch-1.log b/src/test/ref/switch-1.log index d623f0e3b..6fa7e70f6 100644 --- a/src/test/ref/switch-1.log +++ b/src/test/ref/switch-1.log @@ -37,7 +37,7 @@ main::@return: scope:[main] from main::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -48,30 +48,30 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 Adding number conversion cast (unumber) 1 in if(main::i#2==1) goto main::@2 Adding number conversion cast (unumber) 4 in if(main::i#3==4) goto main::@2 Adding number conversion cast (unumber) $80 in main::SCREEN[main::i#6] = main::SCREEN[main::i#6] | $80 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Simplifying constant integer cast $80 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $80 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $80 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 main::i#5 Alias main::i#4 = main::i#6 @@ -95,7 +95,7 @@ Adding number conversion cast (unumber) 6 in [7] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -143,9 +143,9 @@ main::@4: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666668 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666668 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -266,10 +266,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666668 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666668 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/switch-1.sym b/src/test/ref/switch-1.sym index 8dcec6378..1e1522eba 100644 --- a/src/test/ref/switch-1.sym +++ b/src/test/ref/switch-1.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666668 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666668 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/switch-2.log b/src/test/ref/switch-2.log index 80f282bb5..f3cd86f42 100644 --- a/src/test/ref/switch-2.log +++ b/src/test/ref/switch-2.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,12 +30,12 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::SCREEN = (byte*)$400 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -constant byte main::v64 = 0 +__constant char *main::SCREEN = (char *)$400 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +__constant char main::v64 = 0 Adding number conversion cast (unumber) 0 in if(main::v64==0) goto main::@1 Adding number conversion cast (unumber) 1 in main::b#1 = 1 @@ -43,14 +43,14 @@ Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::b#2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::b#1 = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Negating conditional jump and destination [1] if(main::v64!=0) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSequenceImprovement @@ -98,7 +98,7 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::b +char main::b Initial phi equivalence classes Complete equivalence classes @@ -154,9 +154,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::b -constant byte main::b#1 b = 1 +__constant char *main::SCREEN = (char *) 1024 +char main::b +__constant char main::b#1 = 1 // b diff --git a/src/test/ref/switch-2.sym b/src/test/ref/switch-2.sym index 438dcd729..384851d09 100644 --- a/src/test/ref/switch-2.sym +++ b/src/test/ref/switch-2.sym @@ -1,5 +1,5 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::b -constant byte main::b#1 b = 1 +__constant char *main::SCREEN = (char *) 1024 +char main::b +__constant char main::b#1 = 1 // b diff --git a/src/test/ref/switch-4.log b/src/test/ref/switch-4.log index 9ee234500..428315b30 100644 --- a/src/test/ref/switch-4.log +++ b/src/test/ref/switch-4.log @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -41,26 +41,26 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -bool~ main::$1 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 +char main::$0 +bool main::$1 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 Adding number conversion cast (unumber) 1 in if(main::i#2==1) goto main::@2 Adding number conversion cast (unumber) 4 in if(main::i#3==4) goto main::@2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -85,7 +85,7 @@ Adding number conversion cast (unumber) 6 in [6] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -128,10 +128,10 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 13.2 +char main::$0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 13.2 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -234,11 +234,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 13.2 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 13.2 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/switch-4.sym b/src/test/ref/switch-4.sym index 88de8239c..b35fa2576 100644 --- a/src/test/ref/switch-4.sym +++ b/src/test/ref/switch-4.sym @@ -1,9 +1,9 @@ void main() -byte~ main::$0 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 13.2 +char main::$0 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 13.2 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/ternary-1.log b/src/test/ref/ternary-1.log index 94a87ed44..161c3ec15 100644 --- a/src/test/ref/ternary-1.log +++ b/src/test/ref/ternary-1.log @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,26 +43,26 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -bool~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 +bool main::$0 +char main::$1 +char main::$2 +char main::$3 +bool main::$4 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 < 5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#4 main::i#5 Successful SSA optimization Pass2AliasElimination @@ -86,7 +86,7 @@ Adding number conversion cast (unumber) $a in [5] if(main::i#1!=$a) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::$1 = 'b' @@ -134,10 +134,10 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 11.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.8 +char main::$3 // 11.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.8 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -242,11 +242,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$3 reg byte a 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.8 +char main::$3 // reg byte a 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.8 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/ternary-1.sym b/src/test/ref/ternary-1.sym index 0629c7d70..ae962e9ba 100644 --- a/src/test/ref/ternary-1.sym +++ b/src/test/ref/ternary-1.sym @@ -1,9 +1,9 @@ void main() -byte~ main::$3 reg byte a 11.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.8 +char main::$3 // reg byte a 11.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.8 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/ternary-2.log b/src/test/ref/ternary-2.log index d7ecb7d16..f577f7f80 100644 --- a/src/test/ref/ternary-2.log +++ b/src/test/ref/ternary-2.log @@ -32,7 +32,7 @@ main::@return: scope:[main] from main::@6 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -43,23 +43,23 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -constant byte* const main::SCREEN = (byte*)$400 +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +__constant char * const main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$2 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::$1 = 'a' Constant main::$0 = 'b' @@ -187,7 +187,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/ternary-2.sym b/src/test/ref/ternary-2.sym index 0590bd536..a2a8aef7f 100644 --- a/src/test/ref/ternary-2.sym +++ b/src/test/ref/ternary-2.sym @@ -1,3 +1,3 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 +__constant char * const main::SCREEN = (char *) 1024 diff --git a/src/test/ref/ternary-3.asm b/src/test/ref/ternary-3.asm index 898e5491d..2b8b76627 100644 --- a/src/test/ref/ternary-3.asm +++ b/src/test/ref/ternary-3.asm @@ -38,7 +38,7 @@ main: { // cond(i)?m1(i):m2(i) jmp __b4 } -// cond(byte register(A) b) +// __register(A) bool cond(__register(A) char b) cond: { // b<5 cmp #5 @@ -48,7 +48,7 @@ cond: { // } rts } -// m2(byte register(A) i) +// __register(A) char m2(__register(A) char i) m2: { // 10+i clc @@ -56,7 +56,7 @@ m2: { // } rts } -// m1(byte register(A) i) +// __register(A) char m1(__register(A) char i) m1: { // 5+i clc diff --git a/src/test/ref/ternary-3.cfg b/src/test/ref/ternary-3.cfg index 040623433..931478718 100644 --- a/src/test/ref/ternary-3.cfg +++ b/src/test/ref/ternary-3.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@4 [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] cond::b#0 = main::i#2 - [3] call cond + [3] call cond [4] cond::return#0 = cond::return#1 to:main::@5 main::@5: scope:[main] from main::@1 @@ -15,7 +15,7 @@ main::@5: scope:[main] from main::@1 to:main::@3 main::@3: scope:[main] from main::@5 [7] m2::i#0 = main::i#2 - [8] call m2 + [8] call m2 [9] m2::return#0 = m2::return#1 to:main::@7 main::@7: scope:[main] from main::@3 @@ -32,14 +32,14 @@ main::@return: scope:[main] from main::@4 to:@return main::@2: scope:[main] from main::@5 [16] m1::i#0 = main::i#2 - [17] call m1 + [17] call m1 [18] m1::return#0 = m1::return#1 to:main::@6 main::@6: scope:[main] from main::@2 [19] main::$4 = m1::return#0 to:main::@4 -bool cond(byte cond::b) +bool cond(char b) cond: scope:[cond] from main::@1 [20] cond::return#1 = cond::b#0 < 5 to:cond::@return @@ -47,7 +47,7 @@ cond::@return: scope:[cond] from cond [21] return to:@return -byte m2(byte m2::i) +char m2(char i) m2: scope:[m2] from main::@3 [22] m2::return#1 = $a + m2::i#0 to:m2::@return @@ -55,7 +55,7 @@ m2::@return: scope:[m2] from m2 [23] return to:@return -byte m1(byte m1::i) +char m1(char i) m1: scope:[m1] from main::@2 [24] m1::return#1 = 5 + m1::i#0 to:m1::@return diff --git a/src/test/ref/ternary-3.log b/src/test/ref/ternary-3.log index ed7faaf60..1660a87cd 100644 --- a/src/test/ref/ternary-3.log +++ b/src/test/ref/ternary-3.log @@ -8,7 +8,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@4 main::i#2 = phi( main/main::i#0, main::@4/main::i#1 ) cond::b#0 = main::i#2 - call cond + call cond cond::return#0 = cond::return#2 to:main::@5 main::@5: scope:[main] from main::@1 @@ -20,7 +20,7 @@ main::@5: scope:[main] from main::@1 main::@2: scope:[main] from main::@5 main::i#3 = phi( main::@5/main::i#6 ) m1::i#0 = main::i#3 - call m1 + call m1 m1::return#0 = m1::return#2 to:main::@6 main::@6: scope:[main] from main::@2 @@ -32,7 +32,7 @@ main::@6: scope:[main] from main::@2 main::@3: scope:[main] from main::@5 main::i#4 = phi( main::@5/main::i#6 ) m2::i#0 = main::i#4 - call m2 + call m2 m2::return#0 = m2::return#2 to:main::@7 main::@7: scope:[main] from main::@3 @@ -53,7 +53,7 @@ main::@return: scope:[main] from main::@4 return to:@return -bool cond(byte cond::b) +bool cond(char b) cond: scope:[cond] from main::@1 cond::b#1 = phi( main::@1/cond::b#0 ) cond::$0 = cond::b#1 < 5 @@ -65,7 +65,7 @@ cond::@return: scope:[cond] from cond return to:@return -byte m1(byte m1::i) +char m1(char i) m1: scope:[m1] from main::@2 m1::i#1 = phi( main::@2/m1::i#0 ) m1::$0 = 5 + m1::i#1 @@ -77,7 +77,7 @@ m1::@return: scope:[m1] from m1 return to:@return -byte m2(byte m2::i) +char m2(char i) m2: scope:[m2] from main::@3 m2::i#1 = phi( main::@3/m2::i#0 ) m2::$0 = $a + m2::i#1 @@ -91,7 +91,7 @@ m2::@return: scope:[m2] from m2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -101,58 +101,58 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -bool cond(byte cond::b) -bool~ cond::$0 -byte cond::b -byte cond::b#0 -byte cond::b#1 +bool cond(char b) +bool cond::$0 +char cond::b +char cond::b#0 +char cond::b#1 bool cond::return bool cond::return#0 bool cond::return#1 bool cond::return#2 bool cond::return#3 bool cond::return#4 -byte m1(byte m1::i) -number~ m1::$0 -byte m1::i -byte m1::i#0 -byte m1::i#1 -byte m1::return -byte m1::return#0 -byte m1::return#1 -byte m1::return#2 -byte m1::return#3 -byte m1::return#4 -byte m2(byte m2::i) -number~ m2::$0 -byte m2::i -byte m2::i#0 -byte m2::i#1 -byte m2::return -byte m2::return#0 -byte m2::return#1 -byte m2::return#2 -byte m2::return#3 -byte m2::return#4 +char m1(char i) +number m1::$0 +char m1::i +char m1::i#0 +char m1::i#1 +char m1::return +char m1::return#0 +char m1::return#1 +char m1::return#2 +char m1::return#3 +char m1::return#4 +char m2(char i) +number m2::$0 +char m2::i +char m2::i#0 +char m2::i#1 +char m2::return +char m2::return#0 +char m2::return#1 +char m2::return#2 +char m2::return#3 +char m2::return#4 void main() -bool~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -bool~ main::$6 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 +bool main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +bool main::$6 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 Adding number conversion cast (unumber) 5 in cond::$0 = cond::b#1 < 5 Adding number conversion cast (unumber) 5 in m1::$0 = 5 + m1::i#1 @@ -160,17 +160,17 @@ Adding number conversion cast (unumber) m1::$0 in m1::$0 = (unumber)5 + m1::i#1 Adding number conversion cast (unumber) $a in m2::$0 = $a + m2::i#1 Adding number conversion cast (unumber) m2::$0 in m2::$0 = (unumber)$a + m2::i#1 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast 5 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in m1::$0 = 5 + m1::i#1 -Inferred type updated to byte in m2::$0 = $a + m2::i#1 +Inferred type updated to char in m1::$0 = 5 + m1::i#1 +Inferred type updated to char in m2::$0 = $a + m2::i#1 Alias cond::return#0 = cond::return#3 Alias main::i#2 = main::i#6 main::i#3 main::i#7 main::i#4 main::i#8 Alias m1::return#0 = m1::return#3 @@ -202,7 +202,7 @@ Adding number conversion cast (unumber) $a in [17] if(main::i#1!=$a) goto main:: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -229,7 +229,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@4 [1] main::i#2 = phi( main/0, main::@4/main::i#1 ) [2] cond::b#0 = main::i#2 - [3] call cond + [3] call cond [4] cond::return#0 = cond::return#1 to:main::@5 main::@5: scope:[main] from main::@1 @@ -238,7 +238,7 @@ main::@5: scope:[main] from main::@1 to:main::@3 main::@3: scope:[main] from main::@5 [7] m2::i#0 = main::i#2 - [8] call m2 + [8] call m2 [9] m2::return#0 = m2::return#1 to:main::@7 main::@7: scope:[main] from main::@3 @@ -255,14 +255,14 @@ main::@return: scope:[main] from main::@4 to:@return main::@2: scope:[main] from main::@5 [16] m1::i#0 = main::i#2 - [17] call m1 + [17] call m1 [18] m1::return#0 = m1::return#1 to:main::@6 main::@6: scope:[main] from main::@2 [19] main::$4 = m1::return#0 to:main::@4 -bool cond(byte cond::b) +bool cond(char b) cond: scope:[cond] from main::@1 [20] cond::return#1 = cond::b#0 < 5 to:cond::@return @@ -270,7 +270,7 @@ cond::@return: scope:[cond] from cond [21] return to:@return -byte m2(byte m2::i) +char m2(char i) m2: scope:[m2] from main::@3 [22] m2::return#1 = $a + m2::i#0 to:m2::@return @@ -278,7 +278,7 @@ m2::@return: scope:[m2] from m2 [23] return to:@return -byte m1(byte m1::i) +char m1(char i) m1: scope:[m1] from main::@2 [24] m1::return#1 = 5 + m1::i#0 to:m1::@return @@ -288,32 +288,32 @@ m1::@return: scope:[m1] from m1 VARIABLE REGISTER WEIGHTS -bool cond(byte cond::b) -byte cond::b -byte cond::b#0 112.0 +bool cond(char b) +char cond::b +char cond::b#0 // 112.0 bool cond::return -bool cond::return#0 22.0 -bool cond::return#1 37.33333333333333 -byte m1(byte m1::i) -byte m1::i -byte m1::i#0 112.0 -byte m1::return -byte m1::return#0 22.0 -byte m1::return#1 37.33333333333333 -byte m2(byte m2::i) -byte m2::i -byte m2::i#0 112.0 -byte m2::return -byte m2::return#0 22.0 -byte m2::return#1 37.33333333333333 +bool cond::return#0 // 22.0 +bool cond::return#1 // 37.33333333333333 +char m1(char i) +char m1::i +char m1::i#0 // 112.0 +char m1::return +char m1::return#0 // 22.0 +char m1::return#1 // 37.33333333333333 +char m2(char i) +char m2::i +char m2::i#0 // 112.0 +char m2::return +char m2::return#0 // 22.0 +char m2::return#1 // 37.33333333333333 void main() -bool~ main::$0 22.0 -byte~ main::$2 22.0 -byte~ main::$4 22.0 -byte~ main::$5 33.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.125 +bool main::$0 // 22.0 +char main::$2 // 22.0 +char main::$4 // 22.0 +char main::$5 // 33.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.125 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -413,7 +413,7 @@ main: { __b1: // [2] cond::b#0 = main::i#2 -- vbuaa=vbuxx txa - // [3] call cond + // [3] call cond jsr cond // [4] cond::return#0 = cond::return#1 jmp __b5 @@ -428,7 +428,7 @@ main: { __b3: // [7] m2::i#0 = main::i#2 -- vbuaa=vbuxx txa - // [8] call m2 + // [8] call m2 jsr m2 // [9] m2::return#0 = m2::return#1 jmp __b7 @@ -458,7 +458,7 @@ main: { __b2: // [16] m1::i#0 = main::i#2 -- vbuaa=vbuxx txa - // [17] call m1 + // [17] call m1 jsr m1 // [18] m1::return#0 = m1::return#1 jmp __b6 @@ -468,7 +468,7 @@ main: { jmp __b4_from___b6 } // cond -// cond(byte register(A) b) +// __register(A) bool cond(__register(A) char b) cond: { // [20] cond::return#1 = cond::b#0 < 5 -- vboaa=vbuaa_lt_vbuc1 cmp #5 @@ -482,7 +482,7 @@ cond: { rts } // m2 -// m2(byte register(A) i) +// __register(A) char m2(__register(A) char i) m2: { // [22] m2::return#1 = $a + m2::i#0 -- vbuaa=vbuc1_plus_vbuaa clc @@ -494,7 +494,7 @@ m2: { rts } // m1 -// m1(byte register(A) i) +// __register(A) char m1(__register(A) char i) m1: { // [24] m1::return#1 = 5 + m1::i#0 -- vbuaa=vbuc1_plus_vbuaa clc @@ -539,33 +539,33 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -bool cond(byte cond::b) -byte cond::b -byte cond::b#0 reg byte a 112.0 +bool cond(char b) +char cond::b +char cond::b#0 // reg byte a 112.0 bool cond::return -bool cond::return#0 reg byte a 22.0 -bool cond::return#1 reg byte a 37.33333333333333 -byte m1(byte m1::i) -byte m1::i -byte m1::i#0 reg byte a 112.0 -byte m1::return -byte m1::return#0 reg byte a 22.0 -byte m1::return#1 reg byte a 37.33333333333333 -byte m2(byte m2::i) -byte m2::i -byte m2::i#0 reg byte a 112.0 -byte m2::return -byte m2::return#0 reg byte a 22.0 -byte m2::return#1 reg byte a 37.33333333333333 +bool cond::return#0 // reg byte a 22.0 +bool cond::return#1 // reg byte a 37.33333333333333 +char m1(char i) +char m1::i +char m1::i#0 // reg byte a 112.0 +char m1::return +char m1::return#0 // reg byte a 22.0 +char m1::return#1 // reg byte a 37.33333333333333 +char m2(char i) +char m2::i +char m2::i#0 // reg byte a 112.0 +char m2::return +char m2::return#0 // reg byte a 22.0 +char m2::return#1 // reg byte a 37.33333333333333 void main() -bool~ main::$0 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$5 reg byte a 33.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.125 +bool main::$0 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::$5 // reg byte a 33.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.125 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$5 main::$4 main::$2 ] @@ -610,7 +610,7 @@ main: { // cond(i) // [2] cond::b#0 = main::i#2 -- vbuaa=vbuxx txa - // [3] call cond + // [3] call cond jsr cond // [4] cond::return#0 = cond::return#1 // main::@5 @@ -623,7 +623,7 @@ main: { // m2(i) // [7] m2::i#0 = main::i#2 -- vbuaa=vbuxx txa - // [8] call m2 + // [8] call m2 jsr m2 // [9] m2::return#0 = m2::return#1 // main::@7 @@ -651,7 +651,7 @@ main: { // m1(i) // [16] m1::i#0 = main::i#2 -- vbuaa=vbuxx txa - // [17] call m1 + // [17] call m1 jsr m1 // [18] m1::return#0 = m1::return#1 // main::@6 @@ -660,7 +660,7 @@ main: { jmp __b4 } // cond -// cond(byte register(A) b) +// __register(A) bool cond(__register(A) char b) cond: { // b<5 // [20] cond::return#1 = cond::b#0 < 5 -- vboaa=vbuaa_lt_vbuc1 @@ -674,7 +674,7 @@ cond: { rts } // m2 -// m2(byte register(A) i) +// __register(A) char m2(__register(A) char i) m2: { // 10+i // [22] m2::return#1 = $a + m2::i#0 -- vbuaa=vbuc1_plus_vbuaa @@ -686,7 +686,7 @@ m2: { rts } // m1 -// m1(byte register(A) i) +// __register(A) char m1(__register(A) char i) m1: { // 5+i // [24] m1::return#1 = 5 + m1::i#0 -- vbuaa=vbuc1_plus_vbuaa diff --git a/src/test/ref/ternary-3.sym b/src/test/ref/ternary-3.sym index 1cdec032f..94914e762 100644 --- a/src/test/ref/ternary-3.sym +++ b/src/test/ref/ternary-3.sym @@ -1,30 +1,30 @@ -bool cond(byte cond::b) -byte cond::b -byte cond::b#0 reg byte a 112.0 +bool cond(char b) +char cond::b +char cond::b#0 // reg byte a 112.0 bool cond::return -bool cond::return#0 reg byte a 22.0 -bool cond::return#1 reg byte a 37.33333333333333 -byte m1(byte m1::i) -byte m1::i -byte m1::i#0 reg byte a 112.0 -byte m1::return -byte m1::return#0 reg byte a 22.0 -byte m1::return#1 reg byte a 37.33333333333333 -byte m2(byte m2::i) -byte m2::i -byte m2::i#0 reg byte a 112.0 -byte m2::return -byte m2::return#0 reg byte a 22.0 -byte m2::return#1 reg byte a 37.33333333333333 +bool cond::return#0 // reg byte a 22.0 +bool cond::return#1 // reg byte a 37.33333333333333 +char m1(char i) +char m1::i +char m1::i#0 // reg byte a 112.0 +char m1::return +char m1::return#0 // reg byte a 22.0 +char m1::return#1 // reg byte a 37.33333333333333 +char m2(char i) +char m2::i +char m2::i#0 // reg byte a 112.0 +char m2::return +char m2::return#0 // reg byte a 22.0 +char m2::return#1 // reg byte a 37.33333333333333 void main() -bool~ main::$0 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte~ main::$5 reg byte a 33.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.125 +bool main::$0 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::$5 // reg byte a 33.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.125 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$5 main::$4 main::$2 ] diff --git a/src/test/ref/ternary-4.log b/src/test/ref/ternary-4.log index 50208fe30..522eedd31 100644 --- a/src/test/ref/ternary-4.log +++ b/src/test/ref/ternary-4.log @@ -78,7 +78,7 @@ main::@return: scope:[main] from main::@9 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -89,56 +89,56 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -number~ main::$1 -bool~ main::$10 -bool~ main::$11 -bool~ main::$12 -number~ main::$2 -number~ main::$3 -number~ main::$4 -number~ main::$5 -number~ main::$6 -number~ main::$7 -number~ main::$8 -bool~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#10 -byte main::b#2 -byte main::b#3 -byte main::b#4 -byte main::b#5 -byte main::b#6 -byte main::b#7 -byte main::b#8 -byte main::b#9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte main::v -byte main::v#0 -byte main::v#1 -byte main::v#2 -byte main::v#3 -byte main::v#4 -byte main::v#5 -byte main::v#6 -byte main::v#7 -byte main::v#8 -byte main::x -byte main::x#0 +number main::$0 +number main::$1 +bool main::$10 +bool main::$11 +bool main::$12 +number main::$2 +number main::$3 +number main::$4 +number main::$5 +number main::$6 +number main::$7 +number main::$8 +bool main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::b +char main::b#0 +char main::b#1 +char main::b#10 +char main::b#2 +char main::b#3 +char main::b#4 +char main::b#5 +char main::b#6 +char main::b#7 +char main::b#8 +char main::b#9 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +char main::v +char main::v#0 +char main::v#1 +char main::v#2 +char main::v#3 +char main::v#4 +char main::v#5 +char main::v#6 +char main::v#7 +char main::v#8 +char main::x +char main::x#0 Adding number conversion cast (unumber) 0 in main::$11 = 0 != main::b#2 Adding number conversion cast (unumber) 2 in main::$1 = main::v#2 & 2 @@ -148,16 +148,16 @@ Adding number conversion cast (unumber) main::$8 in main::x#0 = main::$8 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::x#0 = (unumber)main::$8 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::v#2 & 2 +Inferred type updated to char in main::$1 = main::v#2 & 2 Alias main::v#2 = main::v#4 main::v#5 main::v#7 main::v#8 Alias main::i#3 = main::i#9 main::i#5 main::i#6 main::i#7 Alias main::b#10 = main::b#2 main::b#6 main::b#8 main::b#9 @@ -202,8 +202,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [12] main::$5 = main::$4 * 8 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -231,22 +231,22 @@ Simplifying constant integer cast 0 Simplifying constant integer cast main::$8 Simplifying constant integer cast $18 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $18 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $18 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::x#0 = main::$8 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $d +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $d Successful SSA optimization PassNFinalizeNumberTypeConversions Adding number conversion cast (unumber) main::$4 in main::$4 = phi( main::@6/8, main::@7/$d ) Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast main::$4 Successful SSA optimization PassNCastSimplification -Inferred type updated to byte for main::$4 -Inferred type updated to byte in main::$13 = main::$4 -Inferred type updated to byte in main::$5 = main::$13 << 3 -Inferred type updated to byte in main::$7 = $18 + main::$5 +Inferred type updated to char for main::$4 +Inferred type updated to char in main::$13 = main::$4 +Inferred type updated to char in main::$5 = main::$13 << 3 +Inferred type updated to char in main::$7 = $18 + main::$5 Alias main::$13 = main::$4 Successful SSA optimization Pass2AliasElimination Added new block during phi lifting main::@10(between main::@9 and main::@1) @@ -321,22 +321,22 @@ main::@6: scope:[main] from main::@3 main::@5 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 202.0 -byte~ main::$13 101.0 -byte~ main::$5 202.0 -byte~ main::$7 202.0 -byte main::b -byte main::b#1 16.5 -byte main::b#4 8.785714285714286 -byte main::i -byte main::i#1 42.599999999999994 -byte main::i#2 31.4 -byte main::i#8 22.0 -byte main::v -byte main::v#1 151.5 -byte main::v#2 27.545454545454547 -byte main::x -byte main::x#0 202.0 +char main::$1 // 202.0 +char main::$13 // 101.0 +char main::$5 // 202.0 +char main::$7 // 202.0 +char main::b +char main::b#1 // 16.5 +char main::b#4 // 8.785714285714286 +char main::i +char main::i#1 // 42.599999999999994 +char main::i#2 // 31.4 +char main::i#8 // 22.0 +char main::v +char main::v#1 // 151.5 +char main::v#2 // 27.545454545454547 +char main::x +char main::x#0 // 202.0 Initial phi equivalence classes [ main::b#4 main::b#1 ] @@ -540,23 +540,23 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 202.0 -byte~ main::$13 reg byte a 101.0 -byte~ main::$5 reg byte a 202.0 -byte~ main::$7 reg byte a 202.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::b -byte main::b#1 b zp[1]:2 16.5 -byte main::b#4 b zp[1]:2 8.785714285714286 -byte main::i -byte main::i#1 reg byte y 42.599999999999994 -byte main::i#2 reg byte y 31.4 -byte main::i#8 reg byte y 22.0 -byte main::v -byte main::v#1 reg byte x 151.5 -byte main::v#2 reg byte x 27.545454545454547 -byte main::x -byte main::x#0 reg byte a 202.0 +char main::$1 // reg byte a 202.0 +char main::$13 // reg byte a 101.0 +char main::$5 // reg byte a 202.0 +char main::$7 // reg byte a 202.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::b +char main::b#1 // b zp[1]:2 16.5 +char main::b#4 // b zp[1]:2 8.785714285714286 +char main::i +char main::i#1 // reg byte y 42.599999999999994 +char main::i#2 // reg byte y 31.4 +char main::i#8 // reg byte y 22.0 +char main::v +char main::v#1 // reg byte x 151.5 +char main::v#2 // reg byte x 27.545454545454547 +char main::x +char main::x#0 // reg byte a 202.0 zp[1]:2 [ main::b#4 main::b#1 ] reg byte x [ main::v#2 main::v#1 ] diff --git a/src/test/ref/ternary-4.sym b/src/test/ref/ternary-4.sym index 0e15fea58..380b104f0 100644 --- a/src/test/ref/ternary-4.sym +++ b/src/test/ref/ternary-4.sym @@ -1,21 +1,21 @@ void main() -byte~ main::$1 reg byte a 202.0 -byte~ main::$13 reg byte a 101.0 -byte~ main::$5 reg byte a 202.0 -byte~ main::$7 reg byte a 202.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::b -byte main::b#1 b zp[1]:2 16.5 -byte main::b#4 b zp[1]:2 8.785714285714286 -byte main::i -byte main::i#1 reg byte y 42.599999999999994 -byte main::i#2 reg byte y 31.4 -byte main::i#8 reg byte y 22.0 -byte main::v -byte main::v#1 reg byte x 151.5 -byte main::v#2 reg byte x 27.545454545454547 -byte main::x -byte main::x#0 reg byte a 202.0 +char main::$1 // reg byte a 202.0 +char main::$13 // reg byte a 101.0 +char main::$5 // reg byte a 202.0 +char main::$7 // reg byte a 202.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::b +char main::b#1 // b zp[1]:2 16.5 +char main::b#4 // b zp[1]:2 8.785714285714286 +char main::i +char main::i#1 // reg byte y 42.599999999999994 +char main::i#2 // reg byte y 31.4 +char main::i#8 // reg byte y 22.0 +char main::v +char main::v#1 // reg byte x 151.5 +char main::v#2 // reg byte x 27.545454545454547 +char main::x +char main::x#0 // reg byte a 202.0 zp[1]:2 [ main::b#4 main::b#1 ] reg byte x [ main::v#2 main::v#1 ] diff --git a/src/test/ref/ternary-inference.log b/src/test/ref/ternary-inference.log index d47e18931..fffc816d5 100644 --- a/src/test/ref/ternary-inference.log +++ b/src/test/ref/ternary-inference.log @@ -33,7 +33,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -44,20 +44,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte~ main::$1 -number~ main::$2 -number~ main::$3 -number~ main::$4 -bool~ main::$5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -constant byte* const main::screen = (byte*)$400 +bool main::$0 +char main::$1 +number main::$2 +number main::$3 +number main::$4 +bool main::$5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) 5 in main::$0 = main::i#2 < 5 Adding number conversion cast (unumber) main::$3 in main::i#3 = phi( main::@2/main::i#4, main::@3/main::i#5 ) @@ -71,16 +71,16 @@ Adding number conversion cast (unumber) $57 in main::$2 = $57 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::$2 = (unumber)$57 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 5 Simplifying constant integer cast $57 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $57 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $57 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = $57 -Inferred type updated to byte for main::$3 -Inferred type updated to byte in main::$4 = main::$3 + main::i#3 +Inferred type updated to char in main::$2 = $57 +Inferred type updated to char for main::$3 +Inferred type updated to char in main::$4 = main::$3 + main::i#3 Alias main::i#2 = main::i#4 main::i#5 Successful SSA optimization Pass2AliasElimination Alias main::i#2 = main::i#3 @@ -103,7 +103,7 @@ Adding number conversion cast (unumber) $b in [6] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::$1 = '0' @@ -152,11 +152,11 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$3 11.0 -byte~ main::$4 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 9.166666666666666 +char main::$3 // 11.0 +char main::$4 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 9.166666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -272,12 +272,12 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$3 reg byte a 11.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 9.166666666666666 -constant byte* const main::screen = (byte*) 1024 +char main::$3 // reg byte a 11.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 9.166666666666666 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/ternary-inference.sym b/src/test/ref/ternary-inference.sym index e90464e88..20dd34a36 100644 --- a/src/test/ref/ternary-inference.sym +++ b/src/test/ref/ternary-inference.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$3 reg byte a 11.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 9.166666666666666 -constant byte* const main::screen = (byte*) 1024 +char main::$3 // reg byte a 11.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 9.166666666666666 +__constant char * const main::screen = (char *) 1024 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$3 ] diff --git a/src/test/ref/test-comments-block.asm b/src/test/ref/test-comments-block.asm index 3015937f4..1b1128f2e 100644 --- a/src/test/ref/test-comments-block.asm +++ b/src/test/ref/test-comments-block.asm @@ -40,7 +40,7 @@ main: { * b - the second byte * Returns the sum pf the two bytes */ -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // byte r = a+b // calculate the sum diff --git a/src/test/ref/test-comments-block.cfg b/src/test/ref/test-comments-block.cfg index 8d553e4c6..395eb52b5 100644 --- a/src/test/ref/test-comments-block.cfg +++ b/src/test/ref/test-comments-block.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [1] main::b#2 = phi( main/0, main::@2/main::b#1 ) [2] sum::b#0 = main::b#2 - [3] call sum + [3] call sum [4] sum::return#0 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 [11] sum::return#1 = a + sum::b#0 to:sum::@return diff --git a/src/test/ref/test-comments-block.log b/src/test/ref/test-comments-block.log index af66ecbf2..7ebca6b2d 100644 --- a/src/test/ref/test-comments-block.log +++ b/src/test/ref/test-comments-block.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement sum::$0 CONTROL FLOW GRAPH SSA @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@2 main::b#2 = phi( main/main::b#0, main::@2/main::b#1 ) sum::a#0 = a sum::b#0 = main::b#2 - call sum + call sum sum::return#0 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 sum::b#1 = phi( main::@1/sum::b#0 ) sum::a#1 = phi( main::@1/sum::a#0 ) @@ -50,7 +50,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -59,39 +59,39 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte a = 'a' +__constant char a = 'a' void main() -byte~ main::$0 -bool~ main::$1 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::r -byte sum::r#0 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 +char main::$0 +bool main::$1 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char sum(char a , char b) +char sum::a +char sum::a#0 +char sum::a#1 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::r +char sum::r#0 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sum::return#0 = sum::return#3 Alias main::i#2 = main::i#3 @@ -120,7 +120,7 @@ Adding number conversion cast (unumber) $b in [8] if(main::b#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::b#0 @@ -150,7 +150,7 @@ main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [1] main::b#2 = phi( main/0, main::@2/main::b#1 ) [2] sum::b#0 = main::b#2 - [3] call sum + [3] call sum [4] sum::return#0 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -164,7 +164,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 [11] sum::return#1 = a + sum::b#0 to:sum::@return @@ -175,21 +175,21 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::b -byte main::b#1 16.5 -byte main::b#2 4.714285714285714 -byte main::i -byte main::i#1 7.333333333333333 -byte main::i#2 5.5 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#0 112.0 -byte sum::r -byte sum::return -byte sum::return#0 22.0 -byte sum::return#1 37.33333333333333 +char main::$0 // 22.0 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 4.714285714285714 +char main::i +char main::i#1 // 7.333333333333333 +char main::i#2 // 5.5 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#0 // 112.0 +char sum::r +char sum::return +char sum::return#0 // 22.0 +char sum::return#1 // 37.33333333333333 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -268,7 +268,7 @@ main: { __b1: // [2] sum::b#0 = main::b#2 -- vbuaa=vbuyy tya - // [3] call sum + // [3] call sum jsr sum // [4] sum::return#0 = sum::return#1 jmp __b2 @@ -297,7 +297,7 @@ main: { * b - the second byte * Returns the sum pf the two bytes */ -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // [11] sum::return#1 = a + sum::b#0 -- vbuaa=vbuc1_plus_vbuaa // calculate the sum @@ -329,24 +329,24 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte a = 'a' +__constant char * const SCREEN = (char *) 1024 +__constant char a = 'a' void main() -byte~ main::$0 reg byte a 22.0 -byte main::b -byte main::b#1 reg byte y 16.5 -byte main::b#2 reg byte y 4.714285714285714 -byte main::i -byte main::i#1 reg byte x 7.333333333333333 -byte main::i#2 reg byte x 5.5 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#0 reg byte a 112.0 -byte sum::r -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +char main::b +char main::b#1 // reg byte y 16.5 +char main::b#2 // reg byte y 4.714285714285714 +char main::i +char main::i#1 // reg byte x 7.333333333333333 +char main::i#2 // reg byte x 5.5 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#0 // reg byte a 112.0 +char sum::r +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 37.33333333333333 reg byte y [ main::b#2 main::b#1 ] reg byte x [ main::i#2 main::i#1 ] @@ -395,7 +395,7 @@ main: { // sum(a, b) // [2] sum::b#0 = main::b#2 -- vbuaa=vbuyy tya - // [3] call sum + // [3] call sum jsr sum // [4] sum::return#0 = sum::return#1 // main::@2 @@ -424,7 +424,7 @@ main: { * b - the second byte * Returns the sum pf the two bytes */ -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // byte r = a+b // [11] sum::return#1 = a + sum::b#0 -- vbuaa=vbuc1_plus_vbuaa diff --git a/src/test/ref/test-comments-block.sym b/src/test/ref/test-comments-block.sym index 45a864bff..8ce16ad75 100644 --- a/src/test/ref/test-comments-block.sym +++ b/src/test/ref/test-comments-block.sym @@ -1,21 +1,21 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte a = 'a' +__constant char * const SCREEN = (char *) 1024 +__constant char a = 'a' void main() -byte~ main::$0 reg byte a 22.0 -byte main::b -byte main::b#1 reg byte y 16.5 -byte main::b#2 reg byte y 4.714285714285714 -byte main::i -byte main::i#1 reg byte x 7.333333333333333 -byte main::i#2 reg byte x 5.5 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#0 reg byte a 112.0 -byte sum::r -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +char main::b +char main::b#1 // reg byte y 16.5 +char main::b#2 // reg byte y 4.714285714285714 +char main::i +char main::i#1 // reg byte x 7.333333333333333 +char main::i#2 // reg byte x 5.5 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#0 // reg byte a 112.0 +char sum::r +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 37.33333333333333 reg byte y [ main::b#2 main::b#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/test-comments-global.cfg b/src/test/ref/test-comments-global.cfg index c42471188..8084eedd8 100644 --- a/src/test/ref/test-comments-global.cfg +++ b/src/test/ref/test-comments-global.cfg @@ -4,11 +4,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] screen = (byte*) 1024 + [1] screen = (char *) 1024 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return diff --git a/src/test/ref/test-comments-global.log b/src/test/ref/test-comments-global.log index 35a7a4745..dd2286dbf 100644 --- a/src/test/ref/test-comments-global.log +++ b/src/test/ref/test-comments-global.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,10 +16,10 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen = (byte*)$400 + screen = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -30,9 +30,9 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte* screen loadstore +__loadstore char *screen -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -53,11 +53,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] screen = (byte*) 1024 + [1] screen = (char *) 1024 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -77,7 +77,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() void main() -byte* screen loadstore 11.5 +__loadstore char *screen // 11.5 Initial phi equivalence classes Added variable screen to live range equivalence class [ screen ] @@ -85,7 +85,7 @@ Complete equivalence classes [ screen ] Allocated zp[2]:2 [ screen ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] screen = (byte*) 1024 [ screen ] ( [ screen ] { } ) always clobbers reg byte a +Statement [1] screen = (char *) 1024 [ screen ] ( [ screen ] { } ) always clobbers reg byte a Statement [5] *screen = 'a' [ screen ] ( main:3 [ screen ] { } ) always clobbers reg byte a reg byte y Statement [7] *screen = 'a' [ ] ( main:3 [ ] { } ) always clobbers reg byte a reg byte y Potential registers zp[2]:2 [ screen ] : zp[2]:2 , @@ -120,7 +120,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] screen = (byte*) 1024 -- pbuz1=pbuc1 + // [1] screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -130,7 +130,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -181,7 +181,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void __start() void main() -byte* screen loadstore zp[2]:2 11.5 +__loadstore char *screen // zp[2]:2 11.5 zp[2]:2 [ screen ] @@ -208,14 +208,14 @@ Score: 60 __start: { // __start::__init1 // __ma char * screen = (char*)0x0400 - // [1] screen = (byte*) 1024 -- pbuz1=pbuc1 + // [1] screen = (char *) 1024 -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 sta.z screen+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/test-comments-global.sym b/src/test/ref/test-comments-global.sym index 290698688..fdd9a4d74 100644 --- a/src/test/ref/test-comments-global.sym +++ b/src/test/ref/test-comments-global.sym @@ -1,5 +1,5 @@ void __start() void main() -byte* screen loadstore zp[2]:2 11.5 +__loadstore char *screen // zp[2]:2 11.5 zp[2]:2 [ screen ] diff --git a/src/test/ref/test-comments-loop.log b/src/test/ref/test-comments-loop.log index 001d28128..bf3e87b6d 100644 --- a/src/test/ref/test-comments-loop.log +++ b/src/test/ref/test-comments-loop.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,14 +29,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* const main::SCREEN = (byte*)$400 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 +bool main::$0 +__constant char * const main::SCREEN = (char *)$400 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] if(main::b#1!=rangelast(0,$a)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -53,7 +53,7 @@ Adding number conversion cast (unumber) $b in [3] if(main::b#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::b#0 Constant inlined main::b#0 = 0 @@ -87,9 +87,9 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::b -byte main::b#1 16.5 -byte main::b#2 16.5 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 16.5 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -168,10 +168,10 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::b -byte main::b#1 reg byte x 16.5 -byte main::b#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::b +char main::b#1 // reg byte x 16.5 +char main::b#2 // reg byte x 16.5 reg byte x [ main::b#2 main::b#1 ] diff --git a/src/test/ref/test-comments-loop.sym b/src/test/ref/test-comments-loop.sym index 9d593d28c..16b1f6ba2 100644 --- a/src/test/ref/test-comments-loop.sym +++ b/src/test/ref/test-comments-loop.sym @@ -1,7 +1,7 @@ void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::b -byte main::b#1 reg byte x 16.5 -byte main::b#2 reg byte x 16.5 +__constant char * const main::SCREEN = (char *) 1024 +char main::b +char main::b#1 // reg byte x 16.5 +char main::b#2 // reg byte x 16.5 reg byte x [ main::b#2 main::b#1 ] diff --git a/src/test/ref/test-comments-single.asm b/src/test/ref/test-comments-single.asm index 58a66b5d1..4cb1f1b0b 100644 --- a/src/test/ref/test-comments-single.asm +++ b/src/test/ref/test-comments-single.asm @@ -38,7 +38,7 @@ main: { // a - the first byte // b - the second byte // Returns the sum pf the two bytes -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // byte r = a+b // calculate the sum diff --git a/src/test/ref/test-comments-single.cfg b/src/test/ref/test-comments-single.cfg index 8d553e4c6..395eb52b5 100644 --- a/src/test/ref/test-comments-single.cfg +++ b/src/test/ref/test-comments-single.cfg @@ -7,7 +7,7 @@ main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [1] main::b#2 = phi( main/0, main::@2/main::b#1 ) [2] sum::b#0 = main::b#2 - [3] call sum + [3] call sum [4] sum::return#0 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 [11] sum::return#1 = a + sum::b#0 to:sum::@return diff --git a/src/test/ref/test-comments-single.log b/src/test/ref/test-comments-single.log index dfcc39047..4730aa77c 100644 --- a/src/test/ref/test-comments-single.log +++ b/src/test/ref/test-comments-single.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement sum::$0 CONTROL FLOW GRAPH SSA @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@2 main::b#2 = phi( main/main::b#0, main::@2/main::b#1 ) sum::a#0 = a sum::b#0 = main::b#2 - call sum + call sum sum::return#0 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@2 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 sum::b#1 = phi( main::@1/sum::b#0 ) sum::a#1 = phi( main::@1/sum::a#0 ) @@ -50,7 +50,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -59,39 +59,39 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte a = 'a' +__constant char a = 'a' void main() -byte~ main::$0 -bool~ main::$1 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -byte main::b#3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::r -byte sum::r#0 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 +char main::$0 +bool main::$1 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +char main::b#3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char sum(char a , char b) +char sum::a +char sum::a#0 +char sum::a#1 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::r +char sum::r#0 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sum::return#0 = sum::return#3 Alias main::i#2 = main::i#3 @@ -120,7 +120,7 @@ Adding number conversion cast (unumber) $b in [8] if(main::b#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::b#0 @@ -150,7 +150,7 @@ main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [1] main::b#2 = phi( main/0, main::@2/main::b#1 ) [2] sum::b#0 = main::b#2 - [3] call sum + [3] call sum [4] sum::return#0 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -164,7 +164,7 @@ main::@return: scope:[main] from main::@2 [10] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 [11] sum::return#1 = a + sum::b#0 to:sum::@return @@ -175,21 +175,21 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::b -byte main::b#1 16.5 -byte main::b#2 4.714285714285714 -byte main::i -byte main::i#1 7.333333333333333 -byte main::i#2 5.5 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#0 112.0 -byte sum::r -byte sum::return -byte sum::return#0 22.0 -byte sum::return#1 37.33333333333333 +char main::$0 // 22.0 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 4.714285714285714 +char main::i +char main::i#1 // 7.333333333333333 +char main::i#2 // 5.5 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#0 // 112.0 +char sum::r +char sum::return +char sum::return#0 // 22.0 +char sum::return#1 // 37.33333333333333 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -267,7 +267,7 @@ main: { __b1: // [2] sum::b#0 = main::b#2 -- vbuaa=vbuyy tya - // [3] call sum + // [3] call sum jsr sum // [4] sum::return#0 = sum::return#1 jmp __b2 @@ -295,7 +295,7 @@ main: { // a - the first byte // b - the second byte // Returns the sum pf the two bytes -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // [11] sum::return#1 = a + sum::b#0 -- vbuaa=vbuc1_plus_vbuaa // calculate the sum @@ -327,24 +327,24 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte a = 'a' +__constant char * const SCREEN = (char *) 1024 +__constant char a = 'a' void main() -byte~ main::$0 reg byte a 22.0 -byte main::b -byte main::b#1 reg byte y 16.5 -byte main::b#2 reg byte y 4.714285714285714 -byte main::i -byte main::i#1 reg byte x 7.333333333333333 -byte main::i#2 reg byte x 5.5 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#0 reg byte a 112.0 -byte sum::r -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +char main::b +char main::b#1 // reg byte y 16.5 +char main::b#2 // reg byte y 4.714285714285714 +char main::i +char main::i#1 // reg byte x 7.333333333333333 +char main::i#2 // reg byte x 5.5 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#0 // reg byte a 112.0 +char sum::r +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 37.33333333333333 reg byte y [ main::b#2 main::b#1 ] reg byte x [ main::i#2 main::i#1 ] @@ -392,7 +392,7 @@ main: { // sum(a, b) // [2] sum::b#0 = main::b#2 -- vbuaa=vbuyy tya - // [3] call sum + // [3] call sum jsr sum // [4] sum::return#0 = sum::return#1 // main::@2 @@ -420,7 +420,7 @@ main: { // a - the first byte // b - the second byte // Returns the sum pf the two bytes -// sum(byte register(A) b) +// __register(A) char sum(char a, __register(A) char b) sum: { // byte r = a+b // [11] sum::return#1 = a + sum::b#0 -- vbuaa=vbuc1_plus_vbuaa diff --git a/src/test/ref/test-comments-single.sym b/src/test/ref/test-comments-single.sym index 45a864bff..8ce16ad75 100644 --- a/src/test/ref/test-comments-single.sym +++ b/src/test/ref/test-comments-single.sym @@ -1,21 +1,21 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte a = 'a' +__constant char * const SCREEN = (char *) 1024 +__constant char a = 'a' void main() -byte~ main::$0 reg byte a 22.0 -byte main::b -byte main::b#1 reg byte y 16.5 -byte main::b#2 reg byte y 4.714285714285714 -byte main::i -byte main::i#1 reg byte x 7.333333333333333 -byte main::i#2 reg byte x 5.5 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::b -byte sum::b#0 reg byte a 112.0 -byte sum::r -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 37.33333333333333 +char main::$0 // reg byte a 22.0 +char main::b +char main::b#1 // reg byte y 16.5 +char main::b#2 // reg byte y 4.714285714285714 +char main::i +char main::i#1 // reg byte x 7.333333333333333 +char main::i#2 // reg byte x 5.5 +char sum(char a , char b) +char sum::a +char sum::b +char sum::b#0 // reg byte a 112.0 +char sum::r +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 37.33333333333333 reg byte y [ main::b#2 main::b#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/test-comments-usage.log b/src/test/ref/test-comments-usage.log index 2e285ec36..7d6ce186d 100644 --- a/src/test/ref/test-comments-usage.log +++ b/src/test/ref/test-comments-usage.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -20,11 +20,11 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -98,7 +98,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/test-comments-usage.sym b/src/test/ref/test-comments-usage.sym index 08e00f5d0..4db9d9979 100644 --- a/src/test/ref/test-comments-usage.sym +++ b/src/test/ref/test-comments-usage.sym @@ -1,3 +1,3 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/test-comparisons-sword.asm b/src/test/ref/test-comparisons-sword.asm index 6497945a8..e86eb43d1 100644 --- a/src/test/ref/test-comparisons-sword.asm +++ b/src/test/ref/test-comparisons-sword.asm @@ -112,7 +112,7 @@ print_cls: { rts } // Compare two words using an operator -// compare(signed word zp($b) w1, signed word zp($11) w2, byte register(A) op) +// void compare(__zp($b) int w1, __zp($11) int w2, __register(A) char op) compare: { .label w1 = $b .label w2 = $11 @@ -331,6 +331,7 @@ print_ln: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -364,7 +365,7 @@ memset: { jmp __b1 } // Print a signed int as HEX -// print_sint(signed word zp($b) w) +// void print_sint(__zp($b) int w) print_sint: { .label w = $b // if(w<0) @@ -393,7 +394,7 @@ print_sint: { jmp __b2 } // Print a zero-terminated string -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 __b1: @@ -417,7 +418,7 @@ print_str: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -431,7 +432,7 @@ print_char: { rts } // Print a unsigned int as HEX -// print_uint(word zp($b) w) +// void print_uint(__zp($b) unsigned int w) print_uint: { .label w = $b // print_uchar(BYTE1(w)) @@ -444,7 +445,7 @@ print_uint: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/test-comparisons-sword.cfg b/src/test/ref/test-comparisons-sword.cfg index df62f685a..e87099a2e 100644 --- a/src/test/ref/test-comparisons-sword.cfg +++ b/src/test/ref/test-comparisons-sword.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@7 [2] print_line_cursor#30 = phi( main::@7/print_line_cursor#25, main/print_screen#0 ) @@ -28,7 +28,7 @@ main::@3: scope:[main] from main::@2 main::@4 [9] compare::w1#0 = main::w1#0 [10] compare::w2#0 = main::w2#0 [11] compare::op#0 = main::op#2 - [12] call compare + [12] call compare to:main::@9 main::@9: scope:[main] from main::@3 [13] main::s#1 = ++ main::s#3 @@ -36,7 +36,7 @@ main::@9: scope:[main] from main::@3 to:main::@5 main::@5: scope:[main] from main::@9 [15] phi() - [16] call print_ln + [16] call print_ln to:main::@10 main::@10: scope:[main] from main::@5 [17] print_char_cursor#117 = print_line_cursor#0 @@ -63,13 +63,13 @@ main::@8: scope:[main] from main::@7 main::@8 void print_cls() print_cls: scope:[print_cls] from main [26] phi() - [27] call memset + [27] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [28] return to:@return -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) +void compare(int w1 , int w2 , char op) compare: scope:[compare] from main::@3 [29] if(compare::op#0==LT) goto compare::@1 to:compare::@7 @@ -99,21 +99,21 @@ compare::@19: scope:[compare] from compare::@12 compare::@13 to:compare::@6 compare::@6: scope:[compare] from compare::@11 compare::@19 compare::@20 compare::@21 compare::@22 compare::@23 compare::@24 [38] compare::r#10 = phi( compare::@11/FF, compare::@19/compare::r#12, compare::@20/compare::r#13, compare::@21/compare::r#14, compare::@22/compare::r#15, compare::@23/compare::r#16, compare::@24/compare::r#17 ) - [38] compare::ops#7 = phi( compare::@11/(byte*) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) + [38] compare::ops#7 = phi( compare::@11/(char *) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) [39] print_sint::w#1 = compare::w1#0 - [40] call print_sint + [40] call print_sint to:compare::@25 compare::@25: scope:[compare] from compare::@6 [41] print_str::str#1 = compare::ops#7 - [42] call print_str + [42] call print_str to:compare::@26 compare::@26: scope:[compare] from compare::@25 [43] print_sint::w#2 = compare::w2#0 - [44] call print_sint + [44] call print_sint to:compare::@27 compare::@27: scope:[compare] from compare::@26 [45] print_char::ch#5 = compare::r#10 - [46] call print_char + [46] call print_char to:compare::@return compare::@return: scope:[compare] from compare::@27 [47] return @@ -177,12 +177,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [67] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [68] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [69] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [69] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [70] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -193,7 +193,7 @@ memset::@2: scope:[memset] from memset::@1 [73] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from compare::@26 compare::@6 [74] print_char_cursor#61 = phi( compare::@26/print_char_cursor#14, compare::@6/print_char_cursor#67 ) [74] print_sint::w#3 = phi( compare::@26/print_sint::w#2, compare::@6/print_sint::w#1 ) @@ -201,25 +201,25 @@ print_sint: scope:[print_sint] from compare::@26 compare::@6 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [76] phi() - [77] call print_char + [77] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [78] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 ) - [79] print_uint::w#0 = (word)print_sint::w#5 - [80] call print_uint + [79] print_uint::w#0 = (unsigned int)print_sint::w#5 + [80] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [81] return to:@return print_sint::@1: scope:[print_sint] from print_sint [82] phi() - [83] call print_char + [83] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [84] print_sint::w#0 = - print_sint::w#3 to:print_sint::@2 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from compare::@25 [85] phi() to:print_str::@1 @@ -232,13 +232,13 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [89] print_char::ch#0 = *print_str::str#2 - [90] call print_char + [90] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [91] print_str::str#0 = ++ print_str::str#2 to:print_str::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from compare::@27 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1 [92] print_char_cursor#44 = phi( compare::@27/print_char_cursor#14, print_sint::@1/print_char_cursor#61, print_sint::@3/print_char_cursor#61, print_str::@2/print_char_cursor#14, print_uchar/print_char_cursor#14, print_uchar::@1/print_char_cursor#14 ) [92] print_char::ch#6 = phi( compare::@27/print_char::ch#5, print_sint::@1/'-', print_sint::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) @@ -249,30 +249,30 @@ print_char::@return: scope:[print_char] from print_char [95] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 [96] print_uchar::b#0 = byte1 print_uint::w#0 - [97] call print_uchar + [97] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [98] print_uchar::b#1 = byte0 print_uint::w#0 - [99] call print_uchar + [99] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [100] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [101] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [102] print_uchar::$0 = print_uchar::b#2 >> 4 [103] print_char::ch#3 = print_hextab[print_uchar::$0] - [104] call print_char + [104] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [105] print_uchar::$2 = print_uchar::b#2 & $f [106] print_char::ch#4 = print_hextab[print_uchar::$2] - [107] call print_char + [107] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [108] return diff --git a/src/test/ref/test-comparisons-sword.log b/src/test/ref/test-comparisons-sword.log index 075bd4737..b4ded8df3 100644 --- a/src/test/ref/test-comparisons-sword.log +++ b/src/test/ref/test-comparisons-sword.log @@ -1,10 +1,10 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from compare::@25 print_char_cursor#72 = phi( compare::@25/print_char_cursor#22 ) print_str::str#5 = phi( compare::@25/print_str::str#1 ) @@ -19,7 +19,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#58 = phi( print_str::@1/print_char_cursor#59 ) print_str::str#3 = phi( print_str::@1/print_str::str#2 ) print_char::ch#0 = *print_str::str#3 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#4 = phi( print_str::@2/print_str::str#3 ) @@ -58,7 +58,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from compare::@26 compare::@6 print_char_cursor#73 = phi( compare::@26/print_char_cursor#23, compare::@6/print_char_cursor#70 ) print_sint::w#3 = phi( compare::@26/print_sint::w#2, compare::@6/print_sint::w#1 ) @@ -69,7 +69,7 @@ print_sint::@1: scope:[print_sint] from print_sint print_sint::w#6 = phi( print_sint/print_sint::w#3 ) print_char_cursor#61 = phi( print_sint/print_char_cursor#73 ) print_char::ch#1 = '-' - call print_char + call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 print_sint::w#4 = phi( print_sint::@1/print_sint::w#6 ) @@ -82,7 +82,7 @@ print_sint::@3: scope:[print_sint] from print_sint print_sint::w#8 = phi( print_sint/print_sint::w#3 ) print_char_cursor#62 = phi( print_sint/print_char_cursor#73 ) print_char::ch#2 = ' ' - call print_char + call print_char to:print_sint::@5 print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::w#7 = phi( print_sint::@3/print_sint::w#8 ) @@ -92,8 +92,8 @@ print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::@2: scope:[print_sint] from print_sint::@4 print_sint::@5 print_char_cursor#63 = phi( print_sint::@4/print_char_cursor#4, print_sint::@5/print_char_cursor#5 ) print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#7 ) - print_uint::w#0 = (word)print_sint::w#5 - call print_uint + print_uint::w#0 = (unsigned int)print_sint::w#5 + call print_uint to:print_sint::@6 print_sint::@6: scope:[print_sint] from print_sint::@2 print_char_cursor#36 = phi( print_sint::@2/print_char_cursor#10 ) @@ -105,13 +105,13 @@ print_sint::@return: scope:[print_sint] from print_sint::@6 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_char_cursor#64 = phi( print_sint::@2/print_char_cursor#63 ) print_uint::w#1 = phi( print_sint::@2/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -119,7 +119,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#8 = print_char_cursor#38 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#39 = phi( print_uint::@1/print_char_cursor#13 ) @@ -131,13 +131,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#65 = phi( print_uint/print_char_cursor#64, print_uint::@1/print_char_cursor#8 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#3 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -145,7 +145,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#11 = print_char_cursor#41 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#4 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#42 = phi( print_uchar::@1/print_char_cursor#15 ) @@ -157,7 +157,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from compare::@27 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1 print_char_cursor#44 = phi( compare::@27/print_char_cursor#24, print_sint::@1/print_char_cursor#61, print_sint::@3/print_char_cursor#62, print_str::@2/print_char_cursor#58, print_uchar/print_char_cursor#65, print_uchar::@1/print_char_cursor#11 ) print_char::ch#6 = phi( compare::@27/print_char::ch#5, print_sint::@1/print_char::ch#1, print_sint::@3/print_char::ch#2, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) @@ -173,10 +173,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -192,7 +192,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -209,9 +209,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -240,7 +240,7 @@ main: scope:[main] from __start::@1 print_char_cursor#66 = phi( __start::@1/print_char_cursor#71 ) print_line_cursor#20 = phi( __start::@1/print_line_cursor#23 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@9 main::@9: scope:[main] from main print_char_cursor#47 = phi( main/print_char_cursor#17 ) @@ -255,7 +255,7 @@ main::@1: scope:[main] from main::@7 main::@9 main::s#7 = phi( main::@7/main::s#10, main::@9/main::s#0 ) print_char_cursor#84 = phi( main::@7/print_char_cursor#76, main::@9/print_char_cursor#18 ) main::i#2 = phi( main::@7/main::i#1, main::@9/main::i#0 ) - main::$8 = main::i#2 * SIZEOF_SIGNED_WORD + main::$8 = main::i#2 * SIZEOF_INT main::w1#0 = swords[main::$8] main::j#0 = 0 to:main::@2 @@ -266,7 +266,7 @@ main::@2: scope:[main] from main::@1 main::@6 print_char_cursor#74 = phi( main::@1/print_char_cursor#84, main::@6/print_char_cursor#85 ) main::w1#2 = phi( main::@1/main::w1#0, main::@6/main::w1#4 ) main::j#2 = phi( main::@1/main::j#0, main::@6/main::j#1 ) - main::$9 = main::j#2 * SIZEOF_SIGNED_WORD + main::$9 = main::j#2 * SIZEOF_INT main::w2#0 = swords[main::$9] main::op#0 = 0 to:main::@3 @@ -282,7 +282,7 @@ main::@3: scope:[main] from main::@2 main::@4 compare::w1#0 = main::w1#1 compare::w2#0 = main::w2#1 compare::op#0 = main::op#2 - call compare + call compare to:main::@10 main::@10: scope:[main] from main::@3 main::i#6 = phi( main::@3/main::i#8 ) @@ -321,7 +321,7 @@ main::@5: scope:[main] from main::@10 print_char_cursor#68 = phi( main::@10/print_char_cursor#19 ) print_line_cursor#21 = phi( main::@10/print_line_cursor#24 ) main::s#2 = 0 - call print_ln + call print_ln to:main::@11 main::@11: scope:[main] from main::@5 main::i#7 = phi( main::@5/main::i#9 ) @@ -368,14 +368,14 @@ main::@return: scope:[main] from main::@8 return to:@return -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) +void compare(int w1 , int w2 , char op) compare: scope:[compare] from main::@3 print_char_cursor#99 = phi( main::@3/print_char_cursor#67 ) compare::w2#8 = phi( main::@3/compare::w2#0 ) compare::w1#8 = phi( main::@3/compare::w1#0 ) compare::op#1 = phi( main::@3/compare::op#0 ) compare::r#0 = FF - compare::ops#0 = (byte*) 0 + compare::ops#0 = (char *) 0 compare::$0 = compare::op#1 == LT if(compare::$0) goto compare::@1 to:compare::@7 @@ -556,7 +556,7 @@ compare::@6: scope:[compare] from compare::@11 compare::@19 compare::@20 compar print_char_cursor#70 = phi( compare::@11/print_char_cursor#77, compare::@19/print_char_cursor#78, compare::@20/print_char_cursor#79, compare::@21/print_char_cursor#80, compare::@22/print_char_cursor#81, compare::@23/print_char_cursor#82, compare::@24/print_char_cursor#83 ) compare::w1#7 = phi( compare::@11/compare::w1#13, compare::@19/compare::w1#14, compare::@20/compare::w1#15, compare::@21/compare::w1#16, compare::@22/compare::w1#17, compare::@23/compare::w1#18, compare::@24/compare::w1#19 ) print_sint::w#1 = compare::w1#7 - call print_sint + call print_sint to:compare::@25 compare::@25: scope:[compare] from compare::@6 compare::r#9 = phi( compare::@6/compare::r#10 ) @@ -565,7 +565,7 @@ compare::@25: scope:[compare] from compare::@6 print_char_cursor#51 = phi( compare::@6/print_char_cursor#7 ) print_char_cursor#22 = print_char_cursor#51 print_str::str#1 = compare::ops#7 - call print_str + call print_str to:compare::@26 compare::@26: scope:[compare] from compare::@25 compare::r#8 = phi( compare::@25/compare::r#9 ) @@ -573,14 +573,14 @@ compare::@26: scope:[compare] from compare::@25 print_char_cursor#52 = phi( compare::@25/print_char_cursor#1 ) print_char_cursor#23 = print_char_cursor#52 print_sint::w#2 = compare::w2#7 - call print_sint + call print_sint to:compare::@27 compare::@27: scope:[compare] from compare::@26 compare::r#7 = phi( compare::@26/compare::r#8 ) print_char_cursor#53 = phi( compare::@26/print_char_cursor#7 ) print_char_cursor#24 = print_char_cursor#53 print_char::ch#5 = compare::r#7 - call print_char + call print_char to:compare::@28 compare::@28: scope:[compare] from compare::@27 print_char_cursor#54 = phi( compare::@27/print_char_cursor#15 ) @@ -609,7 +609,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#27 = print_line_cursor#7 to:__start::@1 @@ -617,7 +617,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#71 = phi( __start::__init1/print_char_cursor#27 ) print_line_cursor#23 = phi( __start::__init1/print_line_cursor#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -637,453 +637,453 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte EQ = 4 -constant const byte FF = $57 -constant const byte GE = 3 -constant const byte GT = 2 -constant const byte LE = 1 -constant const byte LT = 0 -constant const byte NE = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_SIGNED_WORD = 2 -constant const byte TT = $51 +__constant const char EQ = 4 +__constant const char FF = $57 +__constant const char GE = 3 +__constant const char GT = 2 +__constant const char LE = 1 +__constant const char LT = 0 +__constant const char NE = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_INT = 2 +__constant const char TT = $51 void __start() -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) -bool~ compare::$0 -bool~ compare::$1 -bool~ compare::$11 -bool~ compare::$12 -bool~ compare::$13 -bool~ compare::$14 -bool~ compare::$15 -bool~ compare::$16 -bool~ compare::$17 -bool~ compare::$18 -bool~ compare::$19 -bool~ compare::$2 -bool~ compare::$20 -bool~ compare::$21 -bool~ compare::$22 -constant byte* compare::$23[3] = "!=" -constant byte* compare::$24[3] = "==" -constant byte* compare::$25[3] = ">=" -constant byte* compare::$26[3] = "> " -constant byte* compare::$27[3] = "<=" -constant byte* compare::$28[3] = "< " -bool~ compare::$3 -bool~ compare::$4 -bool~ compare::$5 -bool~ compare::$6 -byte compare::op -byte compare::op#0 -byte compare::op#1 -byte compare::op#2 -byte compare::op#3 -byte compare::op#4 -byte compare::op#5 -byte compare::op#6 -byte* compare::ops -byte* compare::ops#0 -byte* compare::ops#1 -byte* compare::ops#10 -byte* compare::ops#11 -byte* compare::ops#12 -byte* compare::ops#13 -byte* compare::ops#2 -byte* compare::ops#3 -byte* compare::ops#4 -byte* compare::ops#5 -byte* compare::ops#6 -byte* compare::ops#7 -byte* compare::ops#8 -byte* compare::ops#9 -byte compare::r -byte compare::r#0 -byte compare::r#1 -byte compare::r#10 -byte compare::r#11 -byte compare::r#12 -byte compare::r#13 -byte compare::r#14 -byte compare::r#15 -byte compare::r#16 -byte compare::r#17 -byte compare::r#18 -byte compare::r#19 -byte compare::r#2 -byte compare::r#20 -byte compare::r#21 -byte compare::r#22 -byte compare::r#23 -byte compare::r#24 -byte compare::r#25 -byte compare::r#26 -byte compare::r#27 -byte compare::r#3 -byte compare::r#4 -byte compare::r#5 -byte compare::r#6 -byte compare::r#7 -byte compare::r#8 -byte compare::r#9 -signed word compare::w1 -signed word compare::w1#0 -signed word compare::w1#1 -signed word compare::w1#10 -signed word compare::w1#11 -signed word compare::w1#12 -signed word compare::w1#13 -signed word compare::w1#14 -signed word compare::w1#15 -signed word compare::w1#16 -signed word compare::w1#17 -signed word compare::w1#18 -signed word compare::w1#19 -signed word compare::w1#2 -signed word compare::w1#20 -signed word compare::w1#21 -signed word compare::w1#22 -signed word compare::w1#23 -signed word compare::w1#24 -signed word compare::w1#25 -signed word compare::w1#3 -signed word compare::w1#4 -signed word compare::w1#5 -signed word compare::w1#6 -signed word compare::w1#7 -signed word compare::w1#8 -signed word compare::w1#9 -signed word compare::w2 -signed word compare::w2#0 -signed word compare::w2#1 -signed word compare::w2#10 -signed word compare::w2#11 -signed word compare::w2#12 -signed word compare::w2#13 -signed word compare::w2#14 -signed word compare::w2#15 -signed word compare::w2#16 -signed word compare::w2#17 -signed word compare::w2#18 -signed word compare::w2#19 -signed word compare::w2#2 -signed word compare::w2#20 -signed word compare::w2#21 -signed word compare::w2#22 -signed word compare::w2#23 -signed word compare::w2#24 -signed word compare::w2#25 -signed word compare::w2#26 -signed word compare::w2#27 -signed word compare::w2#3 -signed word compare::w2#4 -signed word compare::w2#5 -signed word compare::w2#6 -signed word compare::w2#7 -signed word compare::w2#8 -signed word compare::w2#9 +void compare(int w1 , int w2 , char op) +bool compare::$0 +bool compare::$1 +bool compare::$11 +bool compare::$12 +bool compare::$13 +bool compare::$14 +bool compare::$15 +bool compare::$16 +bool compare::$17 +bool compare::$18 +bool compare::$19 +bool compare::$2 +bool compare::$20 +bool compare::$21 +bool compare::$22 +__constant char compare::$23[3] = "!=" +__constant char compare::$24[3] = "==" +__constant char compare::$25[3] = ">=" +__constant char compare::$26[3] = "> " +__constant char compare::$27[3] = "<=" +__constant char compare::$28[3] = "< " +bool compare::$3 +bool compare::$4 +bool compare::$5 +bool compare::$6 +char compare::op +char compare::op#0 +char compare::op#1 +char compare::op#2 +char compare::op#3 +char compare::op#4 +char compare::op#5 +char compare::op#6 +char *compare::ops +char *compare::ops#0 +char *compare::ops#1 +char *compare::ops#10 +char *compare::ops#11 +char *compare::ops#12 +char *compare::ops#13 +char *compare::ops#2 +char *compare::ops#3 +char *compare::ops#4 +char *compare::ops#5 +char *compare::ops#6 +char *compare::ops#7 +char *compare::ops#8 +char *compare::ops#9 +char compare::r +char compare::r#0 +char compare::r#1 +char compare::r#10 +char compare::r#11 +char compare::r#12 +char compare::r#13 +char compare::r#14 +char compare::r#15 +char compare::r#16 +char compare::r#17 +char compare::r#18 +char compare::r#19 +char compare::r#2 +char compare::r#20 +char compare::r#21 +char compare::r#22 +char compare::r#23 +char compare::r#24 +char compare::r#25 +char compare::r#26 +char compare::r#27 +char compare::r#3 +char compare::r#4 +char compare::r#5 +char compare::r#6 +char compare::r#7 +char compare::r#8 +char compare::r#9 +int compare::w1 +int compare::w1#0 +int compare::w1#1 +int compare::w1#10 +int compare::w1#11 +int compare::w1#12 +int compare::w1#13 +int compare::w1#14 +int compare::w1#15 +int compare::w1#16 +int compare::w1#17 +int compare::w1#18 +int compare::w1#19 +int compare::w1#2 +int compare::w1#20 +int compare::w1#21 +int compare::w1#22 +int compare::w1#23 +int compare::w1#24 +int compare::w1#25 +int compare::w1#3 +int compare::w1#4 +int compare::w1#5 +int compare::w1#6 +int compare::w1#7 +int compare::w1#8 +int compare::w1#9 +int compare::w2 +int compare::w2#0 +int compare::w2#1 +int compare::w2#10 +int compare::w2#11 +int compare::w2#12 +int compare::w2#13 +int compare::w2#14 +int compare::w2#15 +int compare::w2#16 +int compare::w2#17 +int compare::w2#18 +int compare::w2#19 +int compare::w2#2 +int compare::w2#20 +int compare::w2#21 +int compare::w2#22 +int compare::w2#23 +int compare::w2#24 +int compare::w2#25 +int compare::w2#26 +int compare::w2#27 +int compare::w2#3 +int compare::w2#4 +int compare::w2#5 +int compare::w2#6 +int compare::w2#7 +int compare::w2#8 +int compare::w2#9 void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -byte~ main::$8 -byte~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::j#5 -byte main::j#6 -byte main::j#7 -byte main::j#8 -byte main::op -byte main::op#0 -byte main::op#1 -byte main::op#2 -byte main::op#3 -byte main::op#4 -byte main::op#5 -byte main::op#6 -byte main::s -byte main::s#0 -byte main::s#1 -byte main::s#10 -byte main::s#2 -byte main::s#3 -byte main::s#4 -byte main::s#5 -byte main::s#6 -byte main::s#7 -byte main::s#8 -byte main::s#9 -signed word main::w1 -signed word main::w1#0 -signed word main::w1#1 -signed word main::w1#2 -signed word main::w1#3 -signed word main::w1#4 -signed word main::w1#5 -signed word main::w1#6 -signed word main::w1#7 -signed word main::w2 -signed word main::w2#0 -signed word main::w2#1 -signed word main::w2#2 -signed word main::w2#3 -signed word main::w2#4 -signed word main::w2#5 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte print_char::ch#6 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#100 -byte* print_char_cursor#101 -byte* print_char_cursor#102 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#80 -byte* print_char_cursor#81 -byte* print_char_cursor#82 -byte* print_char_cursor#83 -byte* print_char_cursor#84 -byte* print_char_cursor#85 -byte* print_char_cursor#86 -byte* print_char_cursor#87 -byte* print_char_cursor#88 -byte* print_char_cursor#89 -byte* print_char_cursor#9 -byte* print_char_cursor#90 -byte* print_char_cursor#91 -byte* print_char_cursor#92 -byte* print_char_cursor#93 -byte* print_char_cursor#94 -byte* print_char_cursor#95 -byte* print_char_cursor#96 -byte* print_char_cursor#97 -byte* print_char_cursor#98 -byte* print_char_cursor#99 +bool main::$2 +bool main::$3 +bool main::$5 +bool main::$6 +bool main::$7 +char main::$8 +char main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::j#5 +char main::j#6 +char main::j#7 +char main::j#8 +char main::op +char main::op#0 +char main::op#1 +char main::op#2 +char main::op#3 +char main::op#4 +char main::op#5 +char main::op#6 +char main::s +char main::s#0 +char main::s#1 +char main::s#10 +char main::s#2 +char main::s#3 +char main::s#4 +char main::s#5 +char main::s#6 +char main::s#7 +char main::s#8 +char main::s#9 +int main::w1 +int main::w1#0 +int main::w1#1 +int main::w1#2 +int main::w1#3 +int main::w1#4 +int main::w1#5 +int main::w1#6 +int main::w1#7 +int main::w2 +int main::w2#0 +int main::w2#1 +int main::w2#2 +int main::w2#3 +int main::w2#4 +int main::w2#5 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char print_char::ch#6 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#100 +char *print_char_cursor#101 +char *print_char_cursor#102 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#80 +char *print_char_cursor#81 +char *print_char_cursor#82 +char *print_char_cursor#83 +char *print_char_cursor#84 +char *print_char_cursor#85 +char *print_char_cursor#86 +char *print_char_cursor#87 +char *print_char_cursor#88 +char *print_char_cursor#89 +char *print_char_cursor#9 +char *print_char_cursor#90 +char *print_char_cursor#91 +char *print_char_cursor#92 +char *print_char_cursor#93 +char *print_char_cursor#94 +char *print_char_cursor#95 +char *print_char_cursor#96 +char *print_char_cursor#97 +char *print_char_cursor#98 +char *print_char_cursor#99 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_sint(signed word print_sint::w) -bool~ print_sint::$0 -signed word~ print_sint::$4 -signed word print_sint::w -signed word print_sint::w#0 -signed word print_sint::w#1 -signed word print_sint::w#2 -signed word print_sint::w#3 -signed word print_sint::w#4 -signed word print_sint::w#5 -signed word print_sint::w#6 -signed word print_sint::w#7 -signed word print_sint::w#8 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -constant signed word* swords[] = { -$6fed, $12, $7fed } +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_sint(int w) +bool print_sint::$0 +int print_sint::$4 +int print_sint::w +int print_sint::w#0 +int print_sint::w#1 +int print_sint::w#2 +int print_sint::w#3 +int print_sint::w#4 +int print_sint::w#5 +int print_sint::w#6 +int print_sint::w#7 +int print_sint::w#8 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +__constant int swords[] = { -$6fed, $12, $7fed } Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 @@ -1097,7 +1097,7 @@ Adding number conversion cast (unumber) 3 in main::$2 = main::s#1 == 3 Adding number conversion cast (unumber) 0 in main::s#2 = 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast main::s#2 = (unumber)0 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 @@ -1109,19 +1109,19 @@ Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Simplifying constant integer cast 3 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [97] memset::$1 = memset::num#1 <= 0 from [96] memset::$0 = memset::num#1 > 0 Inversing boolean not [138] main::$3 = main::s#1 != 3 from [137] main::$2 = main::s#1 == 3 Inversing boolean not [171] compare::$22 = compare::w1#1 >= compare::w2#1 from [170] compare::$21 = compare::w1#1 < compare::w2#1 @@ -1298,7 +1298,7 @@ Constant main::j#0 = 0 Constant main::op#0 = 0 Constant main::s#2 = 0 Constant compare::r#0 = FF -Constant compare::ops#0 = (byte*) 0 +Constant compare::ops#0 = (char *) 0 Constant compare::ops#1 = compare::$23 Constant compare::r#1 = TT Constant compare::ops#2 = compare::$24 @@ -1311,13 +1311,13 @@ Constant compare::ops#5 = compare::$27 Constant compare::r#5 = TT Constant compare::ops#6 = compare::$28 Constant compare::r#6 = TT -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [61] if(memset::num#0<=0) goto memset::@1 if() condition always true - replacing block destination [108] if(true) goto main::@8 @@ -1347,16 +1347,16 @@ Simplifying constant integer cast 6 Simplifying constant integer cast 3 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [38] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [45] main::$8 = main::i#2 * SIZEOF_SIGNED_WORD -Rewriting multiplication to use shift [48] main::$9 = main::j#2 * SIZEOF_SIGNED_WORD +Rewriting multiplication to use shift [45] main::$8 = main::i#2 * SIZEOF_INT +Rewriting multiplication to use shift [48] main::$9 = main::j#2 * SIZEOF_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print_char::ch#1 Inlining constant with var siblings print_char::ch#2 @@ -1380,14 +1380,14 @@ Inlining constant with var siblings compare::ops#5 Inlining constant with var siblings compare::r#5 Inlining constant with var siblings compare::ops#6 Inlining constant with var siblings compare::r#6 -Constant inlined compare::ops#0 = (byte*) 0 +Constant inlined compare::ops#0 = (char *) 0 Constant inlined compare::r#1 = TT Constant inlined compare::r#0 = FF Constant inlined compare::r#3 = TT Constant inlined compare::r#2 = TT Constant inlined compare::r#5 = TT Constant inlined compare::r#4 = TT -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined main::i#0 = 0 Constant inlined main::j#0 = 0 Constant inlined main::op#0 = 0 @@ -1402,7 +1402,7 @@ Constant inlined compare::$26 = compare::ops#4 Constant inlined compare::$27 = compare::ops#5 Constant inlined compare::$28 = compare::ops#6 Constant inlined print_char::ch#1 = '-' -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining Inlining constant with var siblings compare::ops#1 Inlining constant with var siblings compare::ops#2 @@ -1410,7 +1410,7 @@ Inlining constant with var siblings compare::ops#3 Inlining constant with var siblings compare::ops#4 Inlining constant with var siblings compare::ops#5 Inlining constant with var siblings compare::ops#6 -Eliminating unused constant SIZEOF_SIGNED_WORD +Eliminating unused constant SIZEOF_INT Successful SSA optimization PassNEliminateUnusedVars Inlining constant with var siblings compare::ops#1 Inlining constant with var siblings compare::ops#2 @@ -1418,10 +1418,10 @@ Inlining constant with var siblings compare::ops#3 Inlining constant with var siblings compare::ops#4 Inlining constant with var siblings compare::ops#5 Inlining constant with var siblings compare::ops#6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@12(between main::@7 and main::@1) @@ -1551,7 +1551,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@7 [2] print_line_cursor#30 = phi( main::@7/print_line_cursor#25, main/print_screen#0 ) @@ -1577,7 +1577,7 @@ main::@3: scope:[main] from main::@2 main::@4 [9] compare::w1#0 = main::w1#0 [10] compare::w2#0 = main::w2#0 [11] compare::op#0 = main::op#2 - [12] call compare + [12] call compare to:main::@9 main::@9: scope:[main] from main::@3 [13] main::s#1 = ++ main::s#3 @@ -1585,7 +1585,7 @@ main::@9: scope:[main] from main::@3 to:main::@5 main::@5: scope:[main] from main::@9 [15] phi() - [16] call print_ln + [16] call print_ln to:main::@10 main::@10: scope:[main] from main::@5 [17] print_char_cursor#117 = print_line_cursor#0 @@ -1612,13 +1612,13 @@ main::@8: scope:[main] from main::@7 main::@8 void print_cls() print_cls: scope:[print_cls] from main [26] phi() - [27] call memset + [27] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [28] return to:@return -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) +void compare(int w1 , int w2 , char op) compare: scope:[compare] from main::@3 [29] if(compare::op#0==LT) goto compare::@1 to:compare::@7 @@ -1648,21 +1648,21 @@ compare::@19: scope:[compare] from compare::@12 compare::@13 to:compare::@6 compare::@6: scope:[compare] from compare::@11 compare::@19 compare::@20 compare::@21 compare::@22 compare::@23 compare::@24 [38] compare::r#10 = phi( compare::@11/FF, compare::@19/compare::r#12, compare::@20/compare::r#13, compare::@21/compare::r#14, compare::@22/compare::r#15, compare::@23/compare::r#16, compare::@24/compare::r#17 ) - [38] compare::ops#7 = phi( compare::@11/(byte*) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) + [38] compare::ops#7 = phi( compare::@11/(char *) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) [39] print_sint::w#1 = compare::w1#0 - [40] call print_sint + [40] call print_sint to:compare::@25 compare::@25: scope:[compare] from compare::@6 [41] print_str::str#1 = compare::ops#7 - [42] call print_str + [42] call print_str to:compare::@26 compare::@26: scope:[compare] from compare::@25 [43] print_sint::w#2 = compare::w2#0 - [44] call print_sint + [44] call print_sint to:compare::@27 compare::@27: scope:[compare] from compare::@26 [45] print_char::ch#5 = compare::r#10 - [46] call print_char + [46] call print_char to:compare::@return compare::@return: scope:[compare] from compare::@27 [47] return @@ -1726,12 +1726,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [67] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [68] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [69] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [69] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [70] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1742,7 +1742,7 @@ memset::@2: scope:[memset] from memset::@1 [73] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from compare::@26 compare::@6 [74] print_char_cursor#61 = phi( compare::@26/print_char_cursor#14, compare::@6/print_char_cursor#67 ) [74] print_sint::w#3 = phi( compare::@26/print_sint::w#2, compare::@6/print_sint::w#1 ) @@ -1750,25 +1750,25 @@ print_sint: scope:[print_sint] from compare::@26 compare::@6 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [76] phi() - [77] call print_char + [77] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [78] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 ) - [79] print_uint::w#0 = (word)print_sint::w#5 - [80] call print_uint + [79] print_uint::w#0 = (unsigned int)print_sint::w#5 + [80] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [81] return to:@return print_sint::@1: scope:[print_sint] from print_sint [82] phi() - [83] call print_char + [83] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [84] print_sint::w#0 = - print_sint::w#3 to:print_sint::@2 -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from compare::@25 [85] phi() to:print_str::@1 @@ -1781,13 +1781,13 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [89] print_char::ch#0 = *print_str::str#2 - [90] call print_char + [90] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [91] print_str::str#0 = ++ print_str::str#2 to:print_str::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from compare::@27 print_sint::@1 print_sint::@3 print_str::@2 print_uchar print_uchar::@1 [92] print_char_cursor#44 = phi( compare::@27/print_char_cursor#14, print_sint::@1/print_char_cursor#61, print_sint::@3/print_char_cursor#61, print_str::@2/print_char_cursor#14, print_uchar/print_char_cursor#14, print_uchar::@1/print_char_cursor#14 ) [92] print_char::ch#6 = phi( compare::@27/print_char::ch#5, print_sint::@1/'-', print_sint::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#3, print_uchar::@1/print_char::ch#4 ) @@ -1798,30 +1798,30 @@ print_char::@return: scope:[print_char] from print_char [95] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 [96] print_uchar::b#0 = byte1 print_uint::w#0 - [97] call print_uchar + [97] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [98] print_uchar::b#1 = byte0 print_uint::w#0 - [99] call print_uchar + [99] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [100] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [101] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [102] print_uchar::$0 = print_uchar::b#2 >> 4 [103] print_char::ch#3 = print_hextab[print_uchar::$0] - [104] call print_char + [104] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [105] print_uchar::$2 = print_uchar::b#2 & $f [106] print_char::ch#4 = print_hextab[print_uchar::$2] - [107] call print_char + [107] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [108] return @@ -1829,102 +1829,102 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) -byte compare::op -byte compare::op#0 10167.833333333334 -byte* compare::ops -byte* compare::ops#7 3333.6666666666665 -byte compare::r -byte compare::r#10 10001.000000000002 -byte compare::r#12 10001.0 -byte compare::r#13 10001.0 -byte compare::r#14 10001.0 -byte compare::r#15 10001.0 -byte compare::r#16 10001.0 -byte compare::r#17 10001.0 -signed word compare::w1 -signed word compare::w1#0 2536.0000000000005 -signed word compare::w2 -signed word compare::w2#0 2290.5806451612902 +void compare(int w1 , int w2 , char op) +char compare::op +char compare::op#0 // 10167.833333333334 +char *compare::ops +char *compare::ops#7 // 3333.6666666666665 +char compare::r +char compare::r#10 // 10001.000000000002 +char compare::r#12 // 10001.0 +char compare::r#13 // 10001.0 +char compare::r#14 // 10001.0 +char compare::r#15 // 10001.0 +char compare::r#16 // 10001.0 +char compare::r#17 // 10001.0 +int compare::w1 +int compare::w1#0 // 2536.0000000000005 +int compare::w2 +int compare::w2#0 // 2290.5806451612902 void main() -byte~ main::$8 22.0 -byte~ main::$9 202.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 1.5714285714285716 -byte main::j -byte main::j#1 151.5 -byte main::j#2 18.9375 -byte main::op -byte main::op#1 1501.5 -byte main::op#2 273.0 -byte main::s -byte main::s#1 1501.5 -byte main::s#10 302.0 -byte main::s#3 420.59999999999997 -byte main::s#5 71.0 -byte main::s#7 7.333333333333333 -signed word main::w1 -signed word main::w1#0 53.26315789473684 -signed word main::w2 -signed word main::w2#0 78.71428571428571 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2.000000002E9 -byte print_char::ch#3 2.0000002E7 -byte print_char::ch#4 2.0000002E7 -byte print_char::ch#5 20002.0 -byte print_char::ch#6 1.1020010005E10 -byte* print_char_cursor -byte* print_char_cursor#117 2002.0 -byte* print_char_cursor#14 2.4711157795555556E8 -byte* print_char_cursor#44 1.0510105004E10 -byte* print_char_cursor#61 55001.0 -byte* print_char_cursor#67 370.1 -byte* print_char_cursor#74 71.0 -byte* print_char_cursor#75 445.0 -byte* print_char_cursor#84 7.333333333333333 +char main::$8 // 22.0 +char main::$9 // 202.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 1.5714285714285716 +char main::j +char main::j#1 // 151.5 +char main::j#2 // 18.9375 +char main::op +char main::op#1 // 1501.5 +char main::op#2 // 273.0 +char main::s +char main::s#1 // 1501.5 +char main::s#10 // 302.0 +char main::s#3 // 420.59999999999997 +char main::s#5 // 71.0 +char main::s#7 // 7.333333333333333 +int main::w1 +int main::w1#0 // 53.26315789473684 +int main::w2 +int main::w2#0 // 78.71428571428571 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2.000000002E9 +char print_char::ch#3 // 2.0000002E7 +char print_char::ch#4 // 2.0000002E7 +char print_char::ch#5 // 20002.0 +char print_char::ch#6 // 1.1020010005E10 +char *print_char_cursor +char *print_char_cursor#117 // 2002.0 +char *print_char_cursor#14 // 2.4711157795555556E8 +char *print_char_cursor#44 // 1.0510105004E10 +char *print_char_cursor#61 // 55001.0 +char *print_char_cursor#67 // 370.1 +char *print_char_cursor#74 // 71.0 +char *print_char_cursor#75 // 445.0 +char *print_char_cursor#84 // 7.333333333333333 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 6.0000401E7 -byte* print_line_cursor#10 2.00010003E8 -byte* print_line_cursor#21 1344.888888888889 -byte* print_line_cursor#25 445.0 -byte* print_line_cursor#28 71.0 -byte* print_line_cursor#30 7.333333333333333 +char *print_line_cursor +char *print_line_cursor#0 // 6.0000401E7 +char *print_line_cursor#10 // 2.00010003E8 +char *print_line_cursor#21 // 1344.888888888889 +char *print_line_cursor#25 // 445.0 +char *print_line_cursor#28 // 71.0 +char *print_line_cursor#30 // 7.333333333333333 void print_ln() -byte* print_screen -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 200002.0 -signed word print_sint::w#1 20002.0 -signed word print_sint::w#2 20002.0 -signed word print_sint::w#3 53334.16666666666 -signed word print_sint::w#5 200002.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 2.000000002E9 -byte* print_str::str#1 55001.0 -byte* print_str::str#2 1.00002500125E9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 2.0000002E7 -byte~ print_uchar::$2 2.0000002E7 -byte print_uchar::b -byte print_uchar::b#0 2000002.0 -byte print_uchar::b#1 2000002.0 -byte print_uchar::b#2 5500001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 700001.0 +char *print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // 200002.0 +int print_sint::w#1 // 20002.0 +int print_sint::w#2 // 20002.0 +int print_sint::w#3 // 53334.16666666666 +int print_sint::w#5 // 200002.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 2.000000002E9 +char *print_str::str#1 // 55001.0 +char *print_str::str#2 // 1.00002500125E9 +void print_uchar(char b) +char print_uchar::$0 // 2.0000002E7 +char print_uchar::$2 // 2.0000002E7 +char print_uchar::b +char print_uchar::b#0 // 2000002.0 +char print_uchar::b#1 // 2000002.0 +char print_uchar::b#2 // 5500001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 700001.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -2024,7 +2024,7 @@ Statement [66] if(print_line_cursor#0print_cls] print_cls_from_main: jsr print_cls @@ -2275,7 +2275,7 @@ main: { // [10] compare::w2#0 = main::w2#0 // [11] compare::op#0 = main::op#2 -- vbuaa=vbuz1 lda.z op - // [12] call compare + // [12] call compare jsr compare jmp __b9 // main::@9 @@ -2291,7 +2291,7 @@ main: { jmp __b5 // main::@5 __b5: - // [16] call print_ln + // [16] call print_ln // [63] phi from main::@5 to print_ln [phi:main::@5->print_ln] print_ln_from___b5: jsr print_ln @@ -2355,7 +2355,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [27] call memset + // [27] call memset // [68] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -2367,7 +2367,7 @@ print_cls: { } // compare // Compare two words using an operator -// compare(signed word zp($b) w1, signed word zp($11) w2, byte register(A) op) +// void compare(__zp($b) int w1, __zp($11) int w2, __register(A) char op) compare: { .label w1 = $b .label w2 = $11 @@ -2450,7 +2450,7 @@ compare: { // [38] phi compare::r#10 = FF [phi:compare::@11->compare::@6#0] -- vbuz1=vbuc1 lda #FF sta.z r - // [38] phi compare::ops#7 = (byte*) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 + // [38] phi compare::ops#7 = (char *) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 lda #<0 sta.z ops lda #>0 @@ -2459,7 +2459,7 @@ compare: { // compare::@6 __b6: // [39] print_sint::w#1 = compare::w1#0 - // [40] call print_sint + // [40] call print_sint // [74] phi from compare::@6 to print_sint [phi:compare::@6->print_sint] print_sint_from___b6: // [74] phi print_char_cursor#61 = print_char_cursor#67 [phi:compare::@6->print_sint#0] -- register_copy @@ -2469,7 +2469,7 @@ compare: { // compare::@25 __b25: // [41] print_str::str#1 = compare::ops#7 - // [42] call print_str + // [42] call print_str // [85] phi from compare::@25 to print_str [phi:compare::@25->print_str] print_str_from___b25: jsr print_str @@ -2481,7 +2481,7 @@ compare: { sta.z print_sint.w lda.z w2+1 sta.z print_sint.w+1 - // [44] call print_sint + // [44] call print_sint // [74] phi from compare::@26 to print_sint [phi:compare::@26->print_sint] print_sint_from___b26: // [74] phi print_char_cursor#61 = print_char_cursor#14 [phi:compare::@26->print_sint#0] -- register_copy @@ -2492,7 +2492,7 @@ compare: { __b27: // [45] print_char::ch#5 = compare::r#10 -- vbuaa=vbuz1 lda.z r - // [46] call print_char + // [46] call print_char // [92] phi from compare::@27 to print_char [phi:compare::@27->print_char] print_char_from___b27: // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:compare::@27->print_char#0] -- register_copy @@ -2746,6 +2746,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2754,7 +2755,7 @@ memset: { .label dst = 9 // [69] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [69] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [69] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2792,7 +2793,7 @@ memset: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp($b) w) +// void print_sint(__zp($b) int w) print_sint: { .label w = $b // [75] if(print_sint::w#3<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 @@ -2803,7 +2804,7 @@ print_sint: { jmp __b3 // print_sint::@3 __b3: - // [77] call print_char + // [77] call print_char // [92] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] print_char_from___b3: // [92] phi print_char_cursor#44 = print_char_cursor#61 [phi:print_sint::@3->print_char#0] -- register_copy @@ -2817,8 +2818,8 @@ print_sint: { jmp __b2 // print_sint::@2 __b2: - // [79] print_uint::w#0 = (word)print_sint::w#5 - // [80] call print_uint + // [79] print_uint::w#0 = (unsigned int)print_sint::w#5 + // [80] call print_uint jsr print_uint jmp __breturn // print_sint::@return @@ -2830,7 +2831,7 @@ print_sint: { jmp __b1 // print_sint::@1 __b1: - // [83] call print_char + // [83] call print_char // [92] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] print_char_from___b1: // [92] phi print_char_cursor#44 = print_char_cursor#61 [phi:print_sint::@1->print_char#0] -- register_copy @@ -2852,7 +2853,7 @@ print_sint: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 // [86] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2877,7 +2878,7 @@ print_str: { // [89] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [90] call print_char + // [90] call print_char // [92] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:print_str::@2->print_char#0] -- register_copy @@ -2895,7 +2896,7 @@ print_str: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [93] *print_char_cursor#44 = print_char::ch#6 -- _deref_pbuz1=vbuaa ldy #0 @@ -2913,12 +2914,12 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($b) w) +// void print_uint(__zp($b) unsigned int w) print_uint: { .label w = $b // [96] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [97] call print_uchar + // [97] call print_uchar // [101] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [101] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy @@ -2928,7 +2929,7 @@ print_uint: { __b1: // [98] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [99] call print_uchar + // [99] call print_uchar // [101] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [101] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -2941,7 +2942,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [102] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -2952,7 +2953,7 @@ print_uchar: { // [103] print_char::ch#3 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [104] call print_char + // [104] call print_char // Table of hexadecimal digits // [92] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -2967,7 +2968,7 @@ print_uchar: { axs #0 // [106] print_char::ch#4 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [107] call print_char + // [107] call print_char // [92] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -3158,127 +3159,127 @@ Fixing long branch [114] beq __b2 to bne Fixing long branch [118] beq __b3 to bne FINAL SYMBOL TABLE -constant const byte EQ = 4 -constant const byte FF = $57 -constant const byte GE = 3 -constant const byte GT = 2 -constant const byte LE = 1 -constant const byte LT = 0 -constant const byte NE = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte TT = $51 -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) -byte compare::op -byte compare::op#0 reg byte a 10167.833333333334 -byte* compare::ops -constant byte* compare::ops#1 ops_1 = "!=" -constant byte* compare::ops#2 ops_2 = "==" -constant byte* compare::ops#3 ops_3 = ">=" -constant byte* compare::ops#4 ops_4 = "> " -constant byte* compare::ops#5 ops_5 = "<=" -constant byte* compare::ops#6 ops_6 = "< " -byte* compare::ops#7 ops zp[2]:9 3333.6666666666665 -byte compare::r -byte compare::r#10 r zp[1]:6 10001.000000000002 -byte compare::r#12 r zp[1]:6 10001.0 -byte compare::r#13 r zp[1]:6 10001.0 -byte compare::r#14 r zp[1]:6 10001.0 -byte compare::r#15 r zp[1]:6 10001.0 -byte compare::r#16 r zp[1]:6 10001.0 -byte compare::r#17 r zp[1]:6 10001.0 -signed word compare::w1 -signed word compare::w1#0 w1 zp[2]:11 2536.0000000000005 -signed word compare::w2 -signed word compare::w2#0 w2 zp[2]:17 2290.5806451612902 +__constant const char EQ = 4 +__constant const char FF = $57 +__constant const char GE = 3 +__constant const char GT = 2 +__constant const char LE = 1 +__constant const char LT = 0 +__constant const char NE = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char TT = $51 +void compare(int w1 , int w2 , char op) +char compare::op +char compare::op#0 // reg byte a 10167.833333333334 +char *compare::ops +__constant char *compare::ops#1 = "!=" // ops_1 +__constant char *compare::ops#2 = "==" // ops_2 +__constant char *compare::ops#3 = ">=" // ops_3 +__constant char *compare::ops#4 = "> " // ops_4 +__constant char *compare::ops#5 = "<=" // ops_5 +__constant char *compare::ops#6 = "< " // ops_6 +char *compare::ops#7 // ops zp[2]:9 3333.6666666666665 +char compare::r +char compare::r#10 // r zp[1]:6 10001.000000000002 +char compare::r#12 // r zp[1]:6 10001.0 +char compare::r#13 // r zp[1]:6 10001.0 +char compare::r#14 // r zp[1]:6 10001.0 +char compare::r#15 // r zp[1]:6 10001.0 +char compare::r#16 // r zp[1]:6 10001.0 +char compare::r#17 // r zp[1]:6 10001.0 +int compare::w1 +int compare::w1#0 // w1 zp[2]:11 2536.0000000000005 +int compare::w2 +int compare::w2#0 // w2 zp[2]:17 2290.5806451612902 void main() -byte~ main::$8 reg byte a 22.0 -byte~ main::$9 reg byte a 202.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 1.5714285714285716 -byte main::j -byte main::j#1 j zp[1]:3 151.5 -byte main::j#2 j zp[1]:3 18.9375 -byte main::op -byte main::op#1 op zp[1]:4 1501.5 -byte main::op#2 op zp[1]:4 273.0 -byte main::s -byte main::s#1 s zp[1]:5 1501.5 -byte main::s#10 s zp[1]:5 302.0 -byte main::s#3 s zp[1]:5 420.59999999999997 -byte main::s#5 s zp[1]:5 71.0 -byte main::s#7 s zp[1]:5 7.333333333333333 -signed word main::w1 -signed word main::w1#0 w1 zp[2]:15 53.26315789473684 -signed word main::w2 -signed word main::w2#0 w2 zp[2]:17 78.71428571428571 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 2002.0 -byte* memset::dst#2 dst zp[2]:9 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2.000000002E9 -byte print_char::ch#3 reg byte a 2.0000002E7 -byte print_char::ch#4 reg byte a 2.0000002E7 -byte print_char::ch#5 reg byte a 20002.0 -byte print_char::ch#6 reg byte a 1.1020010005E10 -byte* print_char_cursor -byte* print_char_cursor#117 print_char_cursor zp[2]:13 2002.0 -byte* print_char_cursor#14 print_char_cursor zp[2]:13 2.4711157795555556E8 -byte* print_char_cursor#44 print_char_cursor zp[2]:13 1.0510105004E10 -byte* print_char_cursor#61 print_char_cursor zp[2]:13 55001.0 -byte* print_char_cursor#67 print_char_cursor zp[2]:13 370.1 -byte* print_char_cursor#74 print_char_cursor zp[2]:13 71.0 -byte* print_char_cursor#75 print_char_cursor zp[2]:13 445.0 -byte* print_char_cursor#84 print_char_cursor zp[2]:13 7.333333333333333 +char main::$8 // reg byte a 22.0 +char main::$9 // reg byte a 202.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 1.5714285714285716 +char main::j +char main::j#1 // j zp[1]:3 151.5 +char main::j#2 // j zp[1]:3 18.9375 +char main::op +char main::op#1 // op zp[1]:4 1501.5 +char main::op#2 // op zp[1]:4 273.0 +char main::s +char main::s#1 // s zp[1]:5 1501.5 +char main::s#10 // s zp[1]:5 302.0 +char main::s#3 // s zp[1]:5 420.59999999999997 +char main::s#5 // s zp[1]:5 71.0 +char main::s#7 // s zp[1]:5 7.333333333333333 +int main::w1 +int main::w1#0 // w1 zp[2]:15 53.26315789473684 +int main::w2 +int main::w2#0 // w2 zp[2]:17 78.71428571428571 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 2002.0 +char *memset::dst#2 // dst zp[2]:9 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2.000000002E9 +char print_char::ch#3 // reg byte a 2.0000002E7 +char print_char::ch#4 // reg byte a 2.0000002E7 +char print_char::ch#5 // reg byte a 20002.0 +char print_char::ch#6 // reg byte a 1.1020010005E10 +char *print_char_cursor +char *print_char_cursor#117 // print_char_cursor zp[2]:13 2002.0 +char *print_char_cursor#14 // print_char_cursor zp[2]:13 2.4711157795555556E8 +char *print_char_cursor#44 // print_char_cursor zp[2]:13 1.0510105004E10 +char *print_char_cursor#61 // print_char_cursor zp[2]:13 55001.0 +char *print_char_cursor#67 // print_char_cursor zp[2]:13 370.1 +char *print_char_cursor#74 // print_char_cursor zp[2]:13 71.0 +char *print_char_cursor#75 // print_char_cursor zp[2]:13 445.0 +char *print_char_cursor#84 // print_char_cursor zp[2]:13 7.333333333333333 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 6.0000401E7 -byte* print_line_cursor#10 print_line_cursor zp[2]:7 2.00010003E8 -byte* print_line_cursor#21 print_line_cursor zp[2]:7 1344.888888888889 -byte* print_line_cursor#25 print_line_cursor zp[2]:7 445.0 -byte* print_line_cursor#28 print_line_cursor zp[2]:7 71.0 -byte* print_line_cursor#30 print_line_cursor zp[2]:7 7.333333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 6.0000401E7 +char *print_line_cursor#10 // print_line_cursor zp[2]:7 2.00010003E8 +char *print_line_cursor#21 // print_line_cursor zp[2]:7 1344.888888888889 +char *print_line_cursor#25 // print_line_cursor zp[2]:7 445.0 +char *print_line_cursor#28 // print_line_cursor zp[2]:7 71.0 +char *print_line_cursor#30 // print_line_cursor zp[2]:7 7.333333333333333 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:11 200002.0 -signed word print_sint::w#1 w zp[2]:11 20002.0 -signed word print_sint::w#2 w zp[2]:11 20002.0 -signed word print_sint::w#3 w zp[2]:11 53334.16666666666 -signed word print_sint::w#5 w zp[2]:11 200002.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:9 2.000000002E9 -byte* print_str::str#1 str zp[2]:9 55001.0 -byte* print_str::str#2 str zp[2]:9 1.00002500125E9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2.0000002E7 -byte~ print_uchar::$2 reg byte x 2.0000002E7 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2000002.0 -byte print_uchar::b#1 reg byte x 2000002.0 -byte print_uchar::b#2 reg byte x 5500001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:11 700001.0 -constant signed word* swords[] = { -$6fed, $12, $7fed } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:11 200002.0 +int print_sint::w#1 // w zp[2]:11 20002.0 +int print_sint::w#2 // w zp[2]:11 20002.0 +int print_sint::w#3 // w zp[2]:11 53334.16666666666 +int print_sint::w#5 // w zp[2]:11 200002.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:9 2.000000002E9 +char *print_str::str#1 // str zp[2]:9 55001.0 +char *print_str::str#2 // str zp[2]:9 1.00002500125E9 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2.0000002E7 +char print_uchar::$2 // reg byte x 2.0000002E7 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2000002.0 +char print_uchar::b#1 // reg byte x 2000002.0 +char print_uchar::b#2 // reg byte x 5500001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:11 700001.0 +__constant int swords[] = { -$6fed, $12, $7fed } zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] @@ -3338,7 +3339,7 @@ main: { .label j = 3 .label i = 2 // print_cls() - // [1] call print_cls + // [1] call print_cls // [26] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] @@ -3422,7 +3423,7 @@ main: { // [10] compare::w2#0 = main::w2#0 // [11] compare::op#0 = main::op#2 -- vbuaa=vbuz1 lda.z op - // [12] call compare + // [12] call compare jsr compare // main::@9 // if(++s==3) @@ -3435,7 +3436,7 @@ main: { // [15] phi from main::@9 to main::@5 [phi:main::@9->main::@5] // main::@5 // print_ln() - // [16] call print_ln + // [16] call print_ln // [63] phi from main::@5 to print_ln [phi:main::@5->print_ln] jsr print_ln // main::@10 @@ -3488,7 +3489,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [27] call memset + // [27] call memset // [68] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -3498,7 +3499,7 @@ print_cls: { } // compare // Compare two words using an operator -// compare(signed word zp($b) w1, signed word zp($11) w2, byte register(A) op) +// void compare(__zp($b) int w1, __zp($11) int w2, __register(A) char op) compare: { .label w1 = $b .label w2 = $11 @@ -3576,7 +3577,7 @@ compare: { // [38] phi compare::r#10 = FF [phi:compare::@11->compare::@6#0] -- vbuz1=vbuc1 lda #FF sta.z r - // [38] phi compare::ops#7 = (byte*) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 + // [38] phi compare::ops#7 = (char *) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 lda #<0 sta.z ops sta.z ops+1 @@ -3584,7 +3585,7 @@ compare: { __b6: // print_sint(w1) // [39] print_sint::w#1 = compare::w1#0 - // [40] call print_sint + // [40] call print_sint // [74] phi from compare::@6 to print_sint [phi:compare::@6->print_sint] // [74] phi print_char_cursor#61 = print_char_cursor#67 [phi:compare::@6->print_sint#0] -- register_copy // [74] phi print_sint::w#3 = print_sint::w#1 [phi:compare::@6->print_sint#1] -- register_copy @@ -3592,7 +3593,7 @@ compare: { // compare::@25 // print_str(ops) // [41] print_str::str#1 = compare::ops#7 - // [42] call print_str + // [42] call print_str // [85] phi from compare::@25 to print_str [phi:compare::@25->print_str] jsr print_str // compare::@26 @@ -3602,7 +3603,7 @@ compare: { sta.z print_sint.w lda.z w2+1 sta.z print_sint.w+1 - // [44] call print_sint + // [44] call print_sint // [74] phi from compare::@26 to print_sint [phi:compare::@26->print_sint] // [74] phi print_char_cursor#61 = print_char_cursor#14 [phi:compare::@26->print_sint#0] -- register_copy // [74] phi print_sint::w#3 = print_sint::w#2 [phi:compare::@26->print_sint#1] -- register_copy @@ -3611,7 +3612,7 @@ compare: { // print_char(r) // [45] print_char::ch#5 = compare::r#10 -- vbuaa=vbuz1 lda.z r - // [46] call print_char + // [46] call print_char // [92] phi from compare::@27 to print_char [phi:compare::@27->print_char] // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:compare::@27->print_char#0] -- register_copy // [92] phi print_char::ch#6 = print_char::ch#5 [phi:compare::@27->print_char#1] -- register_copy @@ -3836,6 +3837,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3843,7 +3845,7 @@ memset: { .label end = str+num .label dst = 9 // [69] phi from memset to memset::@1 [phi:memset->memset::@1] - // [69] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [69] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3881,7 +3883,7 @@ memset: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp($b) w) +// void print_sint(__zp($b) int w) print_sint: { .label w = $b // if(w<0) @@ -3891,7 +3893,7 @@ print_sint: { // [76] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3] // print_sint::@3 // print_char(' ') - // [77] call print_char + // [77] call print_char // [92] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] // [92] phi print_char_cursor#44 = print_char_cursor#61 [phi:print_sint::@3->print_char#0] -- register_copy // [92] phi print_char::ch#6 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 @@ -3902,8 +3904,8 @@ print_sint: { // print_sint::@2 __b2: // print_uint((unsigned int)w) - // [79] print_uint::w#0 = (word)print_sint::w#5 - // [80] call print_uint + // [79] print_uint::w#0 = (unsigned int)print_sint::w#5 + // [80] call print_uint jsr print_uint // print_sint::@return // } @@ -3913,7 +3915,7 @@ print_sint: { // print_sint::@1 __b1: // print_char('-') - // [83] call print_char + // [83] call print_char // [92] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] // [92] phi print_char_cursor#44 = print_char_cursor#61 [phi:print_sint::@1->print_char#0] -- register_copy // [92] phi print_char::ch#6 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 @@ -3933,7 +3935,7 @@ print_sint: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 // [86] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3956,7 +3958,7 @@ print_str: { // [89] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [90] call print_char + // [90] call print_char // [92] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:print_str::@2->print_char#0] -- register_copy // [92] phi print_char::ch#6 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -3972,7 +3974,7 @@ print_str: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [93] *print_char_cursor#44 = print_char::ch#6 -- _deref_pbuz1=vbuaa @@ -3991,13 +3993,13 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($b) w) +// void print_uint(__zp($b) unsigned int w) print_uint: { .label w = $b // print_uchar(BYTE1(w)) // [96] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [97] call print_uchar + // [97] call print_uchar // [101] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [101] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy jsr print_uchar @@ -4005,7 +4007,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [98] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [99] call print_uchar + // [99] call print_uchar // [101] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [101] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy jsr print_uchar @@ -4016,7 +4018,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [102] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -4029,7 +4031,7 @@ print_uchar: { // [103] print_char::ch#3 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [104] call print_char + // [104] call print_char // Table of hexadecimal digits // [92] phi from print_uchar to print_char [phi:print_uchar->print_char] // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:print_uchar->print_char#0] -- register_copy @@ -4043,7 +4045,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [106] print_char::ch#4 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [107] call print_char + // [107] call print_char // [92] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [92] phi print_char_cursor#44 = print_char_cursor#14 [phi:print_uchar::@1->print_char#0] -- register_copy // [92] phi print_char::ch#6 = print_char::ch#4 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/test-comparisons-sword.sym b/src/test/ref/test-comparisons-sword.sym index 4482b01eb..af52c36a6 100644 --- a/src/test/ref/test-comparisons-sword.sym +++ b/src/test/ref/test-comparisons-sword.sym @@ -1,124 +1,124 @@ -constant const byte EQ = 4 -constant const byte FF = $57 -constant const byte GE = 3 -constant const byte GT = 2 -constant const byte LE = 1 -constant const byte LT = 0 -constant const byte NE = 5 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte TT = $51 -void compare(signed word compare::w1 , signed word compare::w2 , byte compare::op) -byte compare::op -byte compare::op#0 reg byte a 10167.833333333334 -byte* compare::ops -constant byte* compare::ops#1 ops_1 = "!=" -constant byte* compare::ops#2 ops_2 = "==" -constant byte* compare::ops#3 ops_3 = ">=" -constant byte* compare::ops#4 ops_4 = "> " -constant byte* compare::ops#5 ops_5 = "<=" -constant byte* compare::ops#6 ops_6 = "< " -byte* compare::ops#7 ops zp[2]:9 3333.6666666666665 -byte compare::r -byte compare::r#10 r zp[1]:6 10001.000000000002 -byte compare::r#12 r zp[1]:6 10001.0 -byte compare::r#13 r zp[1]:6 10001.0 -byte compare::r#14 r zp[1]:6 10001.0 -byte compare::r#15 r zp[1]:6 10001.0 -byte compare::r#16 r zp[1]:6 10001.0 -byte compare::r#17 r zp[1]:6 10001.0 -signed word compare::w1 -signed word compare::w1#0 w1 zp[2]:11 2536.0000000000005 -signed word compare::w2 -signed word compare::w2#0 w2 zp[2]:17 2290.5806451612902 +__constant const char EQ = 4 +__constant const char FF = $57 +__constant const char GE = 3 +__constant const char GT = 2 +__constant const char LE = 1 +__constant const char LT = 0 +__constant const char NE = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char TT = $51 +void compare(int w1 , int w2 , char op) +char compare::op +char compare::op#0 // reg byte a 10167.833333333334 +char *compare::ops +__constant char *compare::ops#1 = "!=" // ops_1 +__constant char *compare::ops#2 = "==" // ops_2 +__constant char *compare::ops#3 = ">=" // ops_3 +__constant char *compare::ops#4 = "> " // ops_4 +__constant char *compare::ops#5 = "<=" // ops_5 +__constant char *compare::ops#6 = "< " // ops_6 +char *compare::ops#7 // ops zp[2]:9 3333.6666666666665 +char compare::r +char compare::r#10 // r zp[1]:6 10001.000000000002 +char compare::r#12 // r zp[1]:6 10001.0 +char compare::r#13 // r zp[1]:6 10001.0 +char compare::r#14 // r zp[1]:6 10001.0 +char compare::r#15 // r zp[1]:6 10001.0 +char compare::r#16 // r zp[1]:6 10001.0 +char compare::r#17 // r zp[1]:6 10001.0 +int compare::w1 +int compare::w1#0 // w1 zp[2]:11 2536.0000000000005 +int compare::w2 +int compare::w2#0 // w2 zp[2]:17 2290.5806451612902 void main() -byte~ main::$8 reg byte a 22.0 -byte~ main::$9 reg byte a 202.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 1.5714285714285716 -byte main::j -byte main::j#1 j zp[1]:3 151.5 -byte main::j#2 j zp[1]:3 18.9375 -byte main::op -byte main::op#1 op zp[1]:4 1501.5 -byte main::op#2 op zp[1]:4 273.0 -byte main::s -byte main::s#1 s zp[1]:5 1501.5 -byte main::s#10 s zp[1]:5 302.0 -byte main::s#3 s zp[1]:5 420.59999999999997 -byte main::s#5 s zp[1]:5 71.0 -byte main::s#7 s zp[1]:5 7.333333333333333 -signed word main::w1 -signed word main::w1#0 w1 zp[2]:15 53.26315789473684 -signed word main::w2 -signed word main::w2#0 w2 zp[2]:17 78.71428571428571 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 2002.0 -byte* memset::dst#2 dst zp[2]:9 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2.000000002E9 -byte print_char::ch#3 reg byte a 2.0000002E7 -byte print_char::ch#4 reg byte a 2.0000002E7 -byte print_char::ch#5 reg byte a 20002.0 -byte print_char::ch#6 reg byte a 1.1020010005E10 -byte* print_char_cursor -byte* print_char_cursor#117 print_char_cursor zp[2]:13 2002.0 -byte* print_char_cursor#14 print_char_cursor zp[2]:13 2.4711157795555556E8 -byte* print_char_cursor#44 print_char_cursor zp[2]:13 1.0510105004E10 -byte* print_char_cursor#61 print_char_cursor zp[2]:13 55001.0 -byte* print_char_cursor#67 print_char_cursor zp[2]:13 370.1 -byte* print_char_cursor#74 print_char_cursor zp[2]:13 71.0 -byte* print_char_cursor#75 print_char_cursor zp[2]:13 445.0 -byte* print_char_cursor#84 print_char_cursor zp[2]:13 7.333333333333333 +char main::$8 // reg byte a 22.0 +char main::$9 // reg byte a 202.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 1.5714285714285716 +char main::j +char main::j#1 // j zp[1]:3 151.5 +char main::j#2 // j zp[1]:3 18.9375 +char main::op +char main::op#1 // op zp[1]:4 1501.5 +char main::op#2 // op zp[1]:4 273.0 +char main::s +char main::s#1 // s zp[1]:5 1501.5 +char main::s#10 // s zp[1]:5 302.0 +char main::s#3 // s zp[1]:5 420.59999999999997 +char main::s#5 // s zp[1]:5 71.0 +char main::s#7 // s zp[1]:5 7.333333333333333 +int main::w1 +int main::w1#0 // w1 zp[2]:15 53.26315789473684 +int main::w2 +int main::w2#0 // w2 zp[2]:17 78.71428571428571 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 2002.0 +char *memset::dst#2 // dst zp[2]:9 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2.000000002E9 +char print_char::ch#3 // reg byte a 2.0000002E7 +char print_char::ch#4 // reg byte a 2.0000002E7 +char print_char::ch#5 // reg byte a 20002.0 +char print_char::ch#6 // reg byte a 1.1020010005E10 +char *print_char_cursor +char *print_char_cursor#117 // print_char_cursor zp[2]:13 2002.0 +char *print_char_cursor#14 // print_char_cursor zp[2]:13 2.4711157795555556E8 +char *print_char_cursor#44 // print_char_cursor zp[2]:13 1.0510105004E10 +char *print_char_cursor#61 // print_char_cursor zp[2]:13 55001.0 +char *print_char_cursor#67 // print_char_cursor zp[2]:13 370.1 +char *print_char_cursor#74 // print_char_cursor zp[2]:13 71.0 +char *print_char_cursor#75 // print_char_cursor zp[2]:13 445.0 +char *print_char_cursor#84 // print_char_cursor zp[2]:13 7.333333333333333 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 6.0000401E7 -byte* print_line_cursor#10 print_line_cursor zp[2]:7 2.00010003E8 -byte* print_line_cursor#21 print_line_cursor zp[2]:7 1344.888888888889 -byte* print_line_cursor#25 print_line_cursor zp[2]:7 445.0 -byte* print_line_cursor#28 print_line_cursor zp[2]:7 71.0 -byte* print_line_cursor#30 print_line_cursor zp[2]:7 7.333333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 6.0000401E7 +char *print_line_cursor#10 // print_line_cursor zp[2]:7 2.00010003E8 +char *print_line_cursor#21 // print_line_cursor zp[2]:7 1344.888888888889 +char *print_line_cursor#25 // print_line_cursor zp[2]:7 445.0 +char *print_line_cursor#28 // print_line_cursor zp[2]:7 71.0 +char *print_line_cursor#30 // print_line_cursor zp[2]:7 7.333333333333333 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:11 200002.0 -signed word print_sint::w#1 w zp[2]:11 20002.0 -signed word print_sint::w#2 w zp[2]:11 20002.0 -signed word print_sint::w#3 w zp[2]:11 53334.16666666666 -signed word print_sint::w#5 w zp[2]:11 200002.0 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:9 2.000000002E9 -byte* print_str::str#1 str zp[2]:9 55001.0 -byte* print_str::str#2 str zp[2]:9 1.00002500125E9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2.0000002E7 -byte~ print_uchar::$2 reg byte x 2.0000002E7 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2000002.0 -byte print_uchar::b#1 reg byte x 2000002.0 -byte print_uchar::b#2 reg byte x 5500001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:11 700001.0 -constant signed word* swords[] = { -$6fed, $12, $7fed } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:11 200002.0 +int print_sint::w#1 // w zp[2]:11 20002.0 +int print_sint::w#2 // w zp[2]:11 20002.0 +int print_sint::w#3 // w zp[2]:11 53334.16666666666 +int print_sint::w#5 // w zp[2]:11 200002.0 +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:9 2.000000002E9 +char *print_str::str#1 // str zp[2]:9 55001.0 +char *print_str::str#2 // str zp[2]:9 1.00002500125E9 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2.0000002E7 +char print_uchar::$2 // reg byte x 2.0000002E7 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2000002.0 +char print_uchar::b#1 // reg byte x 2000002.0 +char print_uchar::b#2 // reg byte x 5500001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:11 700001.0 +__constant int swords[] = { -$6fed, $12, $7fed } zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] diff --git a/src/test/ref/test-comparisons-word.asm b/src/test/ref/test-comparisons-word.asm index b878a48cb..ec4bc5066 100644 --- a/src/test/ref/test-comparisons-word.asm +++ b/src/test/ref/test-comparisons-word.asm @@ -111,7 +111,7 @@ print_cls: { rts } // Compare two words using an operator -// compare(word zp($b) w1, word zp($11) w2, byte register(A) op) +// void compare(__zp($b) unsigned int w1, __zp($11) unsigned int w2, __register(A) char op) compare: { .label w1 = $b .label w2 = $11 @@ -333,6 +333,7 @@ print_ln: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -366,7 +367,7 @@ memset: { jmp __b1 } // Print a unsigned int as HEX -// print_uint(word zp($b) w) +// void print_uint(__zp($b) unsigned int w) print_uint: { .label w = $b // print_uchar(BYTE1(w)) @@ -379,7 +380,7 @@ print_uint: { rts } // Print a zero-terminated string -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 __b1: @@ -403,7 +404,7 @@ print_str: { jmp __b1 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -417,7 +418,7 @@ print_char: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/test-comparisons-word.cfg b/src/test/ref/test-comparisons-word.cfg index 58430032c..b89672d31 100644 --- a/src/test/ref/test-comparisons-word.cfg +++ b/src/test/ref/test-comparisons-word.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@7 [2] print_line_cursor#30 = phi( main::@7/print_line_cursor#25, main/print_screen#0 ) @@ -28,7 +28,7 @@ main::@3: scope:[main] from main::@2 main::@4 [9] compare::w1#0 = main::w1#0 [10] compare::w2#0 = main::w2#0 [11] compare::op#0 = main::op#2 - [12] call compare + [12] call compare to:main::@9 main::@9: scope:[main] from main::@3 [13] main::s#1 = ++ main::s#3 @@ -36,7 +36,7 @@ main::@9: scope:[main] from main::@3 to:main::@5 main::@5: scope:[main] from main::@9 [15] phi() - [16] call print_ln + [16] call print_ln to:main::@10 main::@10: scope:[main] from main::@5 [17] print_char_cursor#108 = print_line_cursor#0 @@ -63,13 +63,13 @@ main::@8: scope:[main] from main::@7 main::@8 void print_cls() print_cls: scope:[print_cls] from main [26] phi() - [27] call memset + [27] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [28] return to:@return -void compare(word compare::w1 , word compare::w2 , byte compare::op) +void compare(unsigned int w1 , unsigned int w2 , char op) compare: scope:[compare] from main::@3 [29] if(compare::op#0==0) goto compare::@1 to:compare::@7 @@ -99,25 +99,25 @@ compare::@19: scope:[compare] from compare::@12 compare::@13 to:compare::@6 compare::@6: scope:[compare] from compare::@11 compare::@19 compare::@20 compare::@21 compare::@22 compare::@23 compare::@24 [38] compare::r#10 = phi( compare::@11/FF, compare::@19/compare::r#12, compare::@20/compare::r#13, compare::@21/compare::r#14, compare::@22/compare::r#15, compare::@23/compare::r#16, compare::@24/compare::r#17 ) - [38] compare::ops#7 = phi( compare::@11/(byte*) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) + [38] compare::ops#7 = phi( compare::@11/(char *) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) [39] print_uint::w#0 = compare::w1#0 - [40] call print_uint + [40] call print_uint to:compare::@25 compare::@25: scope:[compare] from compare::@6 [41] print_str::str#1 = compare::ops#7 - [42] call print_str + [42] call print_str to:compare::@26 compare::@26: scope:[compare] from compare::@25 [43] print_uint::w#1 = compare::w2#0 - [44] call print_uint + [44] call print_uint to:compare::@27 compare::@27: scope:[compare] from compare::@26 [45] print_char::ch#3 = compare::r#10 - [46] call print_char + [46] call print_char to:compare::@28 compare::@28: scope:[compare] from compare::@27 [47] phi() - [48] call print_char + [48] call print_char to:compare::@return compare::@return: scope:[compare] from compare::@28 [49] return @@ -181,12 +181,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [69] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [70] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [71] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [71] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [72] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -197,22 +197,22 @@ memset::@2: scope:[memset] from memset::@1 [75] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from compare::@26 compare::@6 [76] print_char_cursor#55 = phi( compare::@26/print_char_cursor#10, compare::@6/print_char_cursor#58 ) [76] print_uint::w#2 = phi( compare::@26/print_uint::w#1, compare::@6/print_uint::w#0 ) [77] print_uchar::b#0 = byte1 print_uint::w#2 - [78] call print_uchar + [78] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [79] print_uchar::b#1 = byte0 print_uint::w#2 - [80] call print_uchar + [80] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [81] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from compare::@25 [82] phi() to:print_str::@1 @@ -225,13 +225,13 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [86] print_char::ch#0 = *print_str::str#2 - [87] call print_char + [87] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [88] print_str::str#0 = ++ print_str::str#2 to:print_str::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from compare::@27 compare::@28 print_str::@2 print_uchar print_uchar::@1 [89] print_char_cursor#37 = phi( compare::@27/print_char_cursor#10, compare::@28/print_char_cursor#10, print_str::@2/print_char_cursor#10, print_uchar/print_char_cursor#56, print_uchar::@1/print_char_cursor#10 ) [89] print_char::ch#5 = phi( compare::@27/print_char::ch#3, compare::@28/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -242,18 +242,18 @@ print_char::@return: scope:[print_char] from print_char [92] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [93] print_char_cursor#56 = phi( print_uint/print_char_cursor#55, print_uint::@1/print_char_cursor#10 ) [93] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [94] print_uchar::$0 = print_uchar::b#2 >> 4 [95] print_char::ch#1 = print_hextab[print_uchar::$0] - [96] call print_char + [96] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [97] print_uchar::$2 = print_uchar::b#2 & $f [98] print_char::ch#2 = print_hextab[print_uchar::$2] - [99] call print_char + [99] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [100] return diff --git a/src/test/ref/test-comparisons-word.log b/src/test/ref/test-comparisons-word.log index b6f9d851d..d3840e080 100644 --- a/src/test/ref/test-comparisons-word.log +++ b/src/test/ref/test-comparisons-word.log @@ -1,10 +1,10 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from compare::@25 print_char_cursor#63 = phi( compare::@25/print_char_cursor#18 ) print_str::str#5 = phi( compare::@25/print_str::str#1 ) @@ -19,7 +19,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#52 = phi( print_str::@1/print_char_cursor#53 ) print_str::str#3 = phi( print_str::@1/print_str::str#2 ) print_char::ch#0 = *print_str::str#3 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#4 = phi( print_str::@2/print_str::str#3 ) @@ -58,13 +58,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from compare::@26 compare::@6 print_char_cursor#55 = phi( compare::@26/print_char_cursor#19, compare::@6/print_char_cursor#61 ) print_uint::w#2 = phi( compare::@26/print_uint::w#1, compare::@6/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#2 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#3 = phi( print_uint/print_uint::w#2 ) @@ -72,7 +72,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#4 = print_char_cursor#31 print_uint::$2 = byte0 print_uint::w#3 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#32 = phi( print_uint::@1/print_char_cursor#9 ) @@ -84,13 +84,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#56 = phi( print_uint/print_char_cursor#55, print_uint::@1/print_char_cursor#4 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#1 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -98,7 +98,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#7 = print_char_cursor#34 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#2 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#35 = phi( print_uchar::@1/print_char_cursor#11 ) @@ -110,7 +110,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from compare::@27 compare::@28 print_str::@2 print_uchar print_uchar::@1 print_char_cursor#37 = phi( compare::@27/print_char_cursor#20, compare::@28/print_char_cursor#21, print_str::@2/print_char_cursor#52, print_uchar/print_char_cursor#56, print_uchar::@1/print_char_cursor#7 ) print_char::ch#5 = phi( compare::@27/print_char::ch#3, compare::@28/print_char::ch#4, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -126,10 +126,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -145,7 +145,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -162,9 +162,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -193,7 +193,7 @@ main: scope:[main] from __start::@1 print_char_cursor#57 = phi( __start::@1/print_char_cursor#62 ) print_line_cursor#20 = phi( __start::@1/print_line_cursor#23 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@9 main::@9: scope:[main] from main print_char_cursor#40 = phi( main/print_char_cursor#13 ) @@ -208,7 +208,7 @@ main::@1: scope:[main] from main::@7 main::@9 main::s#7 = phi( main::@7/main::s#10, main::@9/main::s#0 ) print_char_cursor#74 = phi( main::@7/print_char_cursor#66, main::@9/print_char_cursor#14 ) main::i#2 = phi( main::@7/main::i#1, main::@9/main::i#0 ) - main::$8 = main::i#2 * SIZEOF_WORD + main::$8 = main::i#2 * SIZEOF_UNSIGNED_INT main::w1#0 = words[main::$8] main::j#0 = 0 to:main::@2 @@ -219,7 +219,7 @@ main::@2: scope:[main] from main::@1 main::@6 print_char_cursor#64 = phi( main::@1/print_char_cursor#74, main::@6/print_char_cursor#75 ) main::w1#2 = phi( main::@1/main::w1#0, main::@6/main::w1#4 ) main::j#2 = phi( main::@1/main::j#0, main::@6/main::j#1 ) - main::$9 = main::j#2 * SIZEOF_WORD + main::$9 = main::j#2 * SIZEOF_UNSIGNED_INT main::w2#0 = words[main::$9] main::op#0 = 0 to:main::@3 @@ -235,7 +235,7 @@ main::@3: scope:[main] from main::@2 main::@4 compare::w1#0 = main::w1#1 compare::w2#0 = main::w2#1 compare::op#0 = main::op#2 - call compare + call compare to:main::@10 main::@10: scope:[main] from main::@3 main::i#6 = phi( main::@3/main::i#8 ) @@ -274,7 +274,7 @@ main::@5: scope:[main] from main::@10 print_char_cursor#59 = phi( main::@10/print_char_cursor#15 ) print_line_cursor#21 = phi( main::@10/print_line_cursor#24 ) main::s#2 = 0 - call print_ln + call print_ln to:main::@11 main::@11: scope:[main] from main::@5 main::i#7 = phi( main::@5/main::i#9 ) @@ -321,14 +321,14 @@ main::@return: scope:[main] from main::@8 return to:@return -void compare(word compare::w1 , word compare::w2 , byte compare::op) +void compare(unsigned int w1 , unsigned int w2 , char op) compare: scope:[compare] from main::@3 print_char_cursor#89 = phi( main::@3/print_char_cursor#58 ) compare::w2#8 = phi( main::@3/compare::w2#0 ) compare::w1#8 = phi( main::@3/compare::w1#0 ) compare::op#1 = phi( main::@3/compare::op#0 ) compare::r#0 = FF - compare::ops#0 = (byte*) 0 + compare::ops#0 = (char *) 0 compare::$0 = compare::op#1 == 0 if(compare::$0) goto compare::@1 to:compare::@7 @@ -509,7 +509,7 @@ compare::@6: scope:[compare] from compare::@11 compare::@19 compare::@20 compar print_char_cursor#61 = phi( compare::@11/print_char_cursor#67, compare::@19/print_char_cursor#68, compare::@20/print_char_cursor#69, compare::@21/print_char_cursor#70, compare::@22/print_char_cursor#71, compare::@23/print_char_cursor#72, compare::@24/print_char_cursor#73 ) compare::w1#7 = phi( compare::@11/compare::w1#13, compare::@19/compare::w1#14, compare::@20/compare::w1#15, compare::@21/compare::w1#16, compare::@22/compare::w1#17, compare::@23/compare::w1#18, compare::@24/compare::w1#19 ) print_uint::w#0 = compare::w1#7 - call print_uint + call print_uint to:compare::@25 compare::@25: scope:[compare] from compare::@6 compare::r#9 = phi( compare::@6/compare::r#10 ) @@ -518,7 +518,7 @@ compare::@25: scope:[compare] from compare::@6 print_char_cursor#44 = phi( compare::@6/print_char_cursor#6 ) print_char_cursor#18 = print_char_cursor#44 print_str::str#1 = compare::ops#7 - call print_str + call print_str to:compare::@26 compare::@26: scope:[compare] from compare::@25 compare::r#8 = phi( compare::@25/compare::r#9 ) @@ -526,20 +526,20 @@ compare::@26: scope:[compare] from compare::@25 print_char_cursor#45 = phi( compare::@25/print_char_cursor#1 ) print_char_cursor#19 = print_char_cursor#45 print_uint::w#1 = compare::w2#7 - call print_uint + call print_uint to:compare::@27 compare::@27: scope:[compare] from compare::@26 compare::r#7 = phi( compare::@26/compare::r#8 ) print_char_cursor#46 = phi( compare::@26/print_char_cursor#6 ) print_char_cursor#20 = print_char_cursor#46 print_char::ch#3 = compare::r#7 - call print_char + call print_char to:compare::@28 compare::@28: scope:[compare] from compare::@27 print_char_cursor#47 = phi( compare::@27/print_char_cursor#11 ) print_char_cursor#21 = print_char_cursor#47 print_char::ch#4 = ' ' - call print_char + call print_char to:compare::@29 compare::@29: scope:[compare] from compare::@28 print_char_cursor#48 = phi( compare::@28/print_char_cursor#11 ) @@ -568,7 +568,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#24 = print_line_cursor#7 to:__start::@1 @@ -576,7 +576,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#62 = phi( __start::__init1/print_char_cursor#24 ) print_line_cursor#23 = phi( __start::__init1/print_line_cursor#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -596,424 +596,424 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte FF = $57 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 -constant const byte TT = $51 +__constant const char FF = $57 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant const char TT = $51 void __start() -void compare(word compare::w1 , word compare::w2 , byte compare::op) -bool~ compare::$0 -bool~ compare::$1 -bool~ compare::$12 -bool~ compare::$13 -bool~ compare::$14 -bool~ compare::$15 -bool~ compare::$16 -bool~ compare::$17 -bool~ compare::$18 -bool~ compare::$19 -bool~ compare::$2 -bool~ compare::$20 -bool~ compare::$21 -bool~ compare::$22 -bool~ compare::$23 -constant byte* compare::$24[3] = "!=" -constant byte* compare::$25[3] = "==" -constant byte* compare::$26[3] = ">=" -constant byte* compare::$27[3] = "> " -constant byte* compare::$28[3] = "<=" -constant byte* compare::$29[3] = "< " -bool~ compare::$3 -bool~ compare::$4 -bool~ compare::$5 -bool~ compare::$6 -byte compare::op -byte compare::op#0 -byte compare::op#1 -byte compare::op#2 -byte compare::op#3 -byte compare::op#4 -byte compare::op#5 -byte compare::op#6 -byte* compare::ops -byte* compare::ops#0 -byte* compare::ops#1 -byte* compare::ops#10 -byte* compare::ops#11 -byte* compare::ops#12 -byte* compare::ops#13 -byte* compare::ops#2 -byte* compare::ops#3 -byte* compare::ops#4 -byte* compare::ops#5 -byte* compare::ops#6 -byte* compare::ops#7 -byte* compare::ops#8 -byte* compare::ops#9 -byte compare::r -byte compare::r#0 -byte compare::r#1 -byte compare::r#10 -byte compare::r#11 -byte compare::r#12 -byte compare::r#13 -byte compare::r#14 -byte compare::r#15 -byte compare::r#16 -byte compare::r#17 -byte compare::r#18 -byte compare::r#19 -byte compare::r#2 -byte compare::r#20 -byte compare::r#21 -byte compare::r#22 -byte compare::r#23 -byte compare::r#24 -byte compare::r#25 -byte compare::r#26 -byte compare::r#27 -byte compare::r#3 -byte compare::r#4 -byte compare::r#5 -byte compare::r#6 -byte compare::r#7 -byte compare::r#8 -byte compare::r#9 -word compare::w1 -word compare::w1#0 -word compare::w1#1 -word compare::w1#10 -word compare::w1#11 -word compare::w1#12 -word compare::w1#13 -word compare::w1#14 -word compare::w1#15 -word compare::w1#16 -word compare::w1#17 -word compare::w1#18 -word compare::w1#19 -word compare::w1#2 -word compare::w1#20 -word compare::w1#21 -word compare::w1#22 -word compare::w1#23 -word compare::w1#24 -word compare::w1#25 -word compare::w1#3 -word compare::w1#4 -word compare::w1#5 -word compare::w1#6 -word compare::w1#7 -word compare::w1#8 -word compare::w1#9 -word compare::w2 -word compare::w2#0 -word compare::w2#1 -word compare::w2#10 -word compare::w2#11 -word compare::w2#12 -word compare::w2#13 -word compare::w2#14 -word compare::w2#15 -word compare::w2#16 -word compare::w2#17 -word compare::w2#18 -word compare::w2#19 -word compare::w2#2 -word compare::w2#20 -word compare::w2#21 -word compare::w2#22 -word compare::w2#23 -word compare::w2#24 -word compare::w2#25 -word compare::w2#26 -word compare::w2#27 -word compare::w2#3 -word compare::w2#4 -word compare::w2#5 -word compare::w2#6 -word compare::w2#7 -word compare::w2#8 -word compare::w2#9 +void compare(unsigned int w1 , unsigned int w2 , char op) +bool compare::$0 +bool compare::$1 +bool compare::$12 +bool compare::$13 +bool compare::$14 +bool compare::$15 +bool compare::$16 +bool compare::$17 +bool compare::$18 +bool compare::$19 +bool compare::$2 +bool compare::$20 +bool compare::$21 +bool compare::$22 +bool compare::$23 +__constant char compare::$24[3] = "!=" +__constant char compare::$25[3] = "==" +__constant char compare::$26[3] = ">=" +__constant char compare::$27[3] = "> " +__constant char compare::$28[3] = "<=" +__constant char compare::$29[3] = "< " +bool compare::$3 +bool compare::$4 +bool compare::$5 +bool compare::$6 +char compare::op +char compare::op#0 +char compare::op#1 +char compare::op#2 +char compare::op#3 +char compare::op#4 +char compare::op#5 +char compare::op#6 +char *compare::ops +char *compare::ops#0 +char *compare::ops#1 +char *compare::ops#10 +char *compare::ops#11 +char *compare::ops#12 +char *compare::ops#13 +char *compare::ops#2 +char *compare::ops#3 +char *compare::ops#4 +char *compare::ops#5 +char *compare::ops#6 +char *compare::ops#7 +char *compare::ops#8 +char *compare::ops#9 +char compare::r +char compare::r#0 +char compare::r#1 +char compare::r#10 +char compare::r#11 +char compare::r#12 +char compare::r#13 +char compare::r#14 +char compare::r#15 +char compare::r#16 +char compare::r#17 +char compare::r#18 +char compare::r#19 +char compare::r#2 +char compare::r#20 +char compare::r#21 +char compare::r#22 +char compare::r#23 +char compare::r#24 +char compare::r#25 +char compare::r#26 +char compare::r#27 +char compare::r#3 +char compare::r#4 +char compare::r#5 +char compare::r#6 +char compare::r#7 +char compare::r#8 +char compare::r#9 +unsigned int compare::w1 +unsigned int compare::w1#0 +unsigned int compare::w1#1 +unsigned int compare::w1#10 +unsigned int compare::w1#11 +unsigned int compare::w1#12 +unsigned int compare::w1#13 +unsigned int compare::w1#14 +unsigned int compare::w1#15 +unsigned int compare::w1#16 +unsigned int compare::w1#17 +unsigned int compare::w1#18 +unsigned int compare::w1#19 +unsigned int compare::w1#2 +unsigned int compare::w1#20 +unsigned int compare::w1#21 +unsigned int compare::w1#22 +unsigned int compare::w1#23 +unsigned int compare::w1#24 +unsigned int compare::w1#25 +unsigned int compare::w1#3 +unsigned int compare::w1#4 +unsigned int compare::w1#5 +unsigned int compare::w1#6 +unsigned int compare::w1#7 +unsigned int compare::w1#8 +unsigned int compare::w1#9 +unsigned int compare::w2 +unsigned int compare::w2#0 +unsigned int compare::w2#1 +unsigned int compare::w2#10 +unsigned int compare::w2#11 +unsigned int compare::w2#12 +unsigned int compare::w2#13 +unsigned int compare::w2#14 +unsigned int compare::w2#15 +unsigned int compare::w2#16 +unsigned int compare::w2#17 +unsigned int compare::w2#18 +unsigned int compare::w2#19 +unsigned int compare::w2#2 +unsigned int compare::w2#20 +unsigned int compare::w2#21 +unsigned int compare::w2#22 +unsigned int compare::w2#23 +unsigned int compare::w2#24 +unsigned int compare::w2#25 +unsigned int compare::w2#26 +unsigned int compare::w2#27 +unsigned int compare::w2#3 +unsigned int compare::w2#4 +unsigned int compare::w2#5 +unsigned int compare::w2#6 +unsigned int compare::w2#7 +unsigned int compare::w2#8 +unsigned int compare::w2#9 void main() -bool~ main::$2 -bool~ main::$3 -bool~ main::$5 -bool~ main::$6 -bool~ main::$7 -byte~ main::$8 -byte~ main::$9 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#10 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::j#5 -byte main::j#6 -byte main::j#7 -byte main::j#8 -byte main::op -byte main::op#0 -byte main::op#1 -byte main::op#2 -byte main::op#3 -byte main::op#4 -byte main::op#5 -byte main::op#6 -byte main::s -byte main::s#0 -byte main::s#1 -byte main::s#10 -byte main::s#2 -byte main::s#3 -byte main::s#4 -byte main::s#5 -byte main::s#6 -byte main::s#7 -byte main::s#8 -byte main::s#9 -word main::w1 -word main::w1#0 -word main::w1#1 -word main::w1#2 -word main::w1#3 -word main::w1#4 -word main::w1#5 -word main::w1#6 -word main::w1#7 -word main::w2 -word main::w2#0 -word main::w2#1 -word main::w2#2 -word main::w2#3 -word main::w2#4 -word main::w2#5 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#74 -byte* print_char_cursor#75 -byte* print_char_cursor#76 -byte* print_char_cursor#77 -byte* print_char_cursor#78 -byte* print_char_cursor#79 -byte* print_char_cursor#8 -byte* print_char_cursor#80 -byte* print_char_cursor#81 -byte* print_char_cursor#82 -byte* print_char_cursor#83 -byte* print_char_cursor#84 -byte* print_char_cursor#85 -byte* print_char_cursor#86 -byte* print_char_cursor#87 -byte* print_char_cursor#88 -byte* print_char_cursor#89 -byte* print_char_cursor#9 -byte* print_char_cursor#90 -byte* print_char_cursor#91 -byte* print_char_cursor#92 +bool main::$2 +bool main::$3 +bool main::$5 +bool main::$6 +bool main::$7 +char main::$8 +char main::$9 +char main::i +char main::i#0 +char main::i#1 +char main::i#10 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::j#5 +char main::j#6 +char main::j#7 +char main::j#8 +char main::op +char main::op#0 +char main::op#1 +char main::op#2 +char main::op#3 +char main::op#4 +char main::op#5 +char main::op#6 +char main::s +char main::s#0 +char main::s#1 +char main::s#10 +char main::s#2 +char main::s#3 +char main::s#4 +char main::s#5 +char main::s#6 +char main::s#7 +char main::s#8 +char main::s#9 +unsigned int main::w1 +unsigned int main::w1#0 +unsigned int main::w1#1 +unsigned int main::w1#2 +unsigned int main::w1#3 +unsigned int main::w1#4 +unsigned int main::w1#5 +unsigned int main::w1#6 +unsigned int main::w1#7 +unsigned int main::w2 +unsigned int main::w2#0 +unsigned int main::w2#1 +unsigned int main::w2#2 +unsigned int main::w2#3 +unsigned int main::w2#4 +unsigned int main::w2#5 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#74 +char *print_char_cursor#75 +char *print_char_cursor#76 +char *print_char_cursor#77 +char *print_char_cursor#78 +char *print_char_cursor#79 +char *print_char_cursor#8 +char *print_char_cursor#80 +char *print_char_cursor#81 +char *print_char_cursor#82 +char *print_char_cursor#83 +char *print_char_cursor#84 +char *print_char_cursor#85 +char *print_char_cursor#86 +char *print_char_cursor#87 +char *print_char_cursor#88 +char *print_char_cursor#89 +char *print_char_cursor#9 +char *print_char_cursor#90 +char *print_char_cursor#91 +char *print_char_cursor#92 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -word print_uint::w#3 -constant word* words[] = { $12, $3f34, $cfed } +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +unsigned int print_uint::w#3 +__constant unsigned int words[] = { $12, $3f34, $cfed } Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 @@ -1032,7 +1032,7 @@ Adding number conversion cast (unumber) 4 in compare::$4 = compare::op#5 == 4 Adding number conversion cast (unumber) 5 in compare::$5 = compare::op#6 == 5 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast main::s#2 = (unumber)0 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 @@ -1049,24 +1049,24 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Simplifying constant integer cast 5 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f Inversing boolean not [74] memset::$1 = memset::num#1 <= 0 from [73] memset::$0 = memset::num#1 > 0 Inversing boolean not [115] main::$3 = main::s#1 != 3 from [114] main::$2 = main::s#1 == 3 Inversing boolean not [148] compare::$23 = compare::w1#1 >= compare::w2#1 from [147] compare::$22 = compare::w1#1 < compare::w2#1 @@ -1228,7 +1228,7 @@ Constant main::j#0 = 0 Constant main::op#0 = 0 Constant main::s#2 = 0 Constant compare::r#0 = FF -Constant compare::ops#0 = (byte*) 0 +Constant compare::ops#0 = (char *) 0 Constant compare::ops#1 = compare::$24 Constant compare::r#1 = TT Constant compare::ops#2 = compare::$25 @@ -1242,13 +1242,13 @@ Constant compare::r#5 = TT Constant print_char::ch#4 = ' ' Constant compare::ops#6 = compare::$29 Constant compare::r#6 = TT -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [46] if(memset::num#0<=0) goto memset::@1 if() condition always true - replacing block destination [93] if(true) goto main::@8 @@ -1278,16 +1278,16 @@ Simplifying constant integer cast 6 Simplifying constant integer cast 3 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [30] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification -Rewriting multiplication to use shift [37] main::$8 = main::i#2 * SIZEOF_WORD -Rewriting multiplication to use shift [40] main::$9 = main::j#2 * SIZEOF_WORD +Rewriting multiplication to use shift [37] main::$8 = main::i#2 * SIZEOF_UNSIGNED_INT +Rewriting multiplication to use shift [40] main::$9 = main::j#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings print_char::ch#4 Inlining constant with var siblings memset::dst#0 @@ -1310,14 +1310,14 @@ Inlining constant with var siblings compare::ops#5 Inlining constant with var siblings compare::r#5 Inlining constant with var siblings compare::ops#6 Inlining constant with var siblings compare::r#6 -Constant inlined compare::ops#0 = (byte*) 0 +Constant inlined compare::ops#0 = (char *) 0 Constant inlined compare::r#1 = TT Constant inlined compare::r#0 = FF Constant inlined compare::r#3 = TT Constant inlined compare::r#2 = TT Constant inlined compare::r#5 = TT Constant inlined compare::r#4 = TT -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined main::i#0 = 0 Constant inlined main::j#0 = 0 Constant inlined main::op#0 = 0 @@ -1331,7 +1331,7 @@ Constant inlined print_char::ch#4 = ' ' Constant inlined compare::$27 = compare::ops#4 Constant inlined compare::$28 = compare::ops#5 Constant inlined compare::$29 = compare::ops#6 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining Inlining constant with var siblings compare::ops#1 Inlining constant with var siblings compare::ops#2 @@ -1339,7 +1339,7 @@ Inlining constant with var siblings compare::ops#3 Inlining constant with var siblings compare::ops#4 Inlining constant with var siblings compare::ops#5 Inlining constant with var siblings compare::ops#6 -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Inlining constant with var siblings compare::ops#1 Inlining constant with var siblings compare::ops#2 @@ -1347,10 +1347,10 @@ Inlining constant with var siblings compare::ops#3 Inlining constant with var siblings compare::ops#4 Inlining constant with var siblings compare::ops#5 Inlining constant with var siblings compare::ops#6 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@12(between main::@7 and main::@1) @@ -1474,7 +1474,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@7 [2] print_line_cursor#30 = phi( main::@7/print_line_cursor#25, main/print_screen#0 ) @@ -1500,7 +1500,7 @@ main::@3: scope:[main] from main::@2 main::@4 [9] compare::w1#0 = main::w1#0 [10] compare::w2#0 = main::w2#0 [11] compare::op#0 = main::op#2 - [12] call compare + [12] call compare to:main::@9 main::@9: scope:[main] from main::@3 [13] main::s#1 = ++ main::s#3 @@ -1508,7 +1508,7 @@ main::@9: scope:[main] from main::@3 to:main::@5 main::@5: scope:[main] from main::@9 [15] phi() - [16] call print_ln + [16] call print_ln to:main::@10 main::@10: scope:[main] from main::@5 [17] print_char_cursor#108 = print_line_cursor#0 @@ -1535,13 +1535,13 @@ main::@8: scope:[main] from main::@7 main::@8 void print_cls() print_cls: scope:[print_cls] from main [26] phi() - [27] call memset + [27] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [28] return to:@return -void compare(word compare::w1 , word compare::w2 , byte compare::op) +void compare(unsigned int w1 , unsigned int w2 , char op) compare: scope:[compare] from main::@3 [29] if(compare::op#0==0) goto compare::@1 to:compare::@7 @@ -1571,25 +1571,25 @@ compare::@19: scope:[compare] from compare::@12 compare::@13 to:compare::@6 compare::@6: scope:[compare] from compare::@11 compare::@19 compare::@20 compare::@21 compare::@22 compare::@23 compare::@24 [38] compare::r#10 = phi( compare::@11/FF, compare::@19/compare::r#12, compare::@20/compare::r#13, compare::@21/compare::r#14, compare::@22/compare::r#15, compare::@23/compare::r#16, compare::@24/compare::r#17 ) - [38] compare::ops#7 = phi( compare::@11/(byte*) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) + [38] compare::ops#7 = phi( compare::@11/(char *) 0, compare::@19/compare::ops#1, compare::@20/compare::ops#2, compare::@21/compare::ops#3, compare::@22/compare::ops#4, compare::@23/compare::ops#5, compare::@24/compare::ops#6 ) [39] print_uint::w#0 = compare::w1#0 - [40] call print_uint + [40] call print_uint to:compare::@25 compare::@25: scope:[compare] from compare::@6 [41] print_str::str#1 = compare::ops#7 - [42] call print_str + [42] call print_str to:compare::@26 compare::@26: scope:[compare] from compare::@25 [43] print_uint::w#1 = compare::w2#0 - [44] call print_uint + [44] call print_uint to:compare::@27 compare::@27: scope:[compare] from compare::@26 [45] print_char::ch#3 = compare::r#10 - [46] call print_char + [46] call print_char to:compare::@28 compare::@28: scope:[compare] from compare::@27 [47] phi() - [48] call print_char + [48] call print_char to:compare::@return compare::@return: scope:[compare] from compare::@28 [49] return @@ -1653,12 +1653,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [69] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [70] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [71] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [71] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [72] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1669,22 +1669,22 @@ memset::@2: scope:[memset] from memset::@1 [75] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from compare::@26 compare::@6 [76] print_char_cursor#55 = phi( compare::@26/print_char_cursor#10, compare::@6/print_char_cursor#58 ) [76] print_uint::w#2 = phi( compare::@26/print_uint::w#1, compare::@6/print_uint::w#0 ) [77] print_uchar::b#0 = byte1 print_uint::w#2 - [78] call print_uchar + [78] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [79] print_uchar::b#1 = byte0 print_uint::w#2 - [80] call print_uchar + [80] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [81] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from compare::@25 [82] phi() to:print_str::@1 @@ -1697,13 +1697,13 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [86] print_char::ch#0 = *print_str::str#2 - [87] call print_char + [87] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [88] print_str::str#0 = ++ print_str::str#2 to:print_str::@1 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from compare::@27 compare::@28 print_str::@2 print_uchar print_uchar::@1 [89] print_char_cursor#37 = phi( compare::@27/print_char_cursor#10, compare::@28/print_char_cursor#10, print_str::@2/print_char_cursor#10, print_uchar/print_char_cursor#56, print_uchar::@1/print_char_cursor#10 ) [89] print_char::ch#5 = phi( compare::@27/print_char::ch#3, compare::@28/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 ) @@ -1714,18 +1714,18 @@ print_char::@return: scope:[print_char] from print_char [92] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [93] print_char_cursor#56 = phi( print_uint/print_char_cursor#55, print_uint::@1/print_char_cursor#10 ) [93] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [94] print_uchar::$0 = print_uchar::b#2 >> 4 [95] print_char::ch#1 = print_hextab[print_uchar::$0] - [96] call print_char + [96] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [97] print_uchar::$2 = print_uchar::b#2 & $f [98] print_char::ch#2 = print_hextab[print_uchar::$2] - [99] call print_char + [99] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [100] return @@ -1733,98 +1733,98 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS -void compare(word compare::w1 , word compare::w2 , byte compare::op) -byte compare::op -byte compare::op#0 10167.833333333334 -byte* compare::ops -byte* compare::ops#7 3333.6666666666665 -byte compare::r -byte compare::r#10 10001.000000000002 -byte compare::r#12 10001.0 -byte compare::r#13 10001.0 -byte compare::r#14 10001.0 -byte compare::r#15 10001.0 -byte compare::r#16 10001.0 -byte compare::r#17 10001.0 -word compare::w1 -word compare::w1#0 2536.0000000000005 -word compare::w2 -word compare::w2#0 2290.5806451612902 +void compare(unsigned int w1 , unsigned int w2 , char op) +char compare::op +char compare::op#0 // 10167.833333333334 +char *compare::ops +char *compare::ops#7 // 3333.6666666666665 +char compare::r +char compare::r#10 // 10001.000000000002 +char compare::r#12 // 10001.0 +char compare::r#13 // 10001.0 +char compare::r#14 // 10001.0 +char compare::r#15 // 10001.0 +char compare::r#16 // 10001.0 +char compare::r#17 // 10001.0 +unsigned int compare::w1 +unsigned int compare::w1#0 // 2536.0000000000005 +unsigned int compare::w2 +unsigned int compare::w2#0 // 2290.5806451612902 void main() -byte~ main::$8 22.0 -byte~ main::$9 202.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 1.5714285714285716 -byte main::j -byte main::j#1 151.5 -byte main::j#2 18.9375 -byte main::op -byte main::op#1 1501.5 -byte main::op#2 273.0 -byte main::s -byte main::s#1 1501.5 -byte main::s#10 302.0 -byte main::s#3 420.59999999999997 -byte main::s#5 71.0 -byte main::s#7 7.333333333333333 -word main::w1 -word main::w1#0 53.26315789473684 -word main::w2 -word main::w2#0 78.71428571428571 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 2.000000002E9 -byte print_char::ch#1 2000002.0 -byte print_char::ch#2 2000002.0 -byte print_char::ch#3 20002.0 -byte print_char::ch#5 1.1002010005E10 -byte* print_char_cursor -byte* print_char_cursor#10 3.0836475025000006E8 -byte* print_char_cursor#108 2002.0 -byte* print_char_cursor#37 1.05010100035E10 -byte* print_char_cursor#55 60001.5 -byte* print_char_cursor#56 400001.00000000006 -byte* print_char_cursor#58 370.1 -byte* print_char_cursor#64 71.0 -byte* print_char_cursor#65 445.0 -byte* print_char_cursor#74 7.333333333333333 +char main::$8 // 22.0 +char main::$9 // 202.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 1.5714285714285716 +char main::j +char main::j#1 // 151.5 +char main::j#2 // 18.9375 +char main::op +char main::op#1 // 1501.5 +char main::op#2 // 273.0 +char main::s +char main::s#1 // 1501.5 +char main::s#10 // 302.0 +char main::s#3 // 420.59999999999997 +char main::s#5 // 71.0 +char main::s#7 // 7.333333333333333 +unsigned int main::w1 +unsigned int main::w1#0 // 53.26315789473684 +unsigned int main::w2 +unsigned int main::w2#0 // 78.71428571428571 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 2.000000002E9 +char print_char::ch#1 // 2000002.0 +char print_char::ch#2 // 2000002.0 +char print_char::ch#3 // 20002.0 +char print_char::ch#5 // 1.1002010005E10 +char *print_char_cursor +char *print_char_cursor#10 // 3.0836475025000006E8 +char *print_char_cursor#108 // 2002.0 +char *print_char_cursor#37 // 1.05010100035E10 +char *print_char_cursor#55 // 60001.5 +char *print_char_cursor#56 // 400001.00000000006 +char *print_char_cursor#58 // 370.1 +char *print_char_cursor#64 // 71.0 +char *print_char_cursor#65 // 445.0 +char *print_char_cursor#74 // 7.333333333333333 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 6.0000401E7 -byte* print_line_cursor#10 2.00010003E8 -byte* print_line_cursor#21 1344.888888888889 -byte* print_line_cursor#25 445.0 -byte* print_line_cursor#28 71.0 -byte* print_line_cursor#30 7.333333333333333 +char *print_line_cursor +char *print_line_cursor#0 // 6.0000401E7 +char *print_line_cursor#10 // 2.00010003E8 +char *print_line_cursor#21 // 1344.888888888889 +char *print_line_cursor#25 // 445.0 +char *print_line_cursor#28 // 71.0 +char *print_line_cursor#30 // 7.333333333333333 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 2.000000002E9 -byte* print_str::str#1 55001.0 -byte* print_str::str#2 1.00002500125E9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 2000002.0 -byte~ print_uchar::$2 2000002.0 -byte print_uchar::b -byte print_uchar::b#0 200002.0 -byte print_uchar::b#1 200002.0 -byte print_uchar::b#2 550001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 20002.0 -word print_uint::w#1 20002.0 -word print_uint::w#2 73334.66666666666 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 2.000000002E9 +char *print_str::str#1 // 55001.0 +char *print_str::str#2 // 1.00002500125E9 +void print_uchar(char b) +char print_uchar::$0 // 2000002.0 +char print_uchar::$2 // 2000002.0 +char print_uchar::b +char print_uchar::b#0 // 200002.0 +char print_uchar::b#1 // 200002.0 +char print_uchar::b#2 // 550001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 20002.0 +unsigned int print_uint::w#1 // 20002.0 +unsigned int print_uint::w#2 // 73334.66666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -2067,7 +2067,7 @@ main: { .label op = 4 .label j = 3 .label i = 2 - // [1] call print_cls + // [1] call print_cls // [26] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -2161,7 +2161,7 @@ main: { // [10] compare::w2#0 = main::w2#0 // [11] compare::op#0 = main::op#2 -- vbuaa=vbuz1 lda.z op - // [12] call compare + // [12] call compare jsr compare jmp __b9 // main::@9 @@ -2177,7 +2177,7 @@ main: { jmp __b5 // main::@5 __b5: - // [16] call print_ln + // [16] call print_ln // [65] phi from main::@5 to print_ln [phi:main::@5->print_ln] print_ln_from___b5: jsr print_ln @@ -2241,7 +2241,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [27] call memset + // [27] call memset // [70] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -2253,7 +2253,7 @@ print_cls: { } // compare // Compare two words using an operator -// compare(word zp($b) w1, word zp($11) w2, byte register(A) op) +// void compare(__zp($b) unsigned int w1, __zp($11) unsigned int w2, __register(A) char op) compare: { .label w1 = $b .label w2 = $11 @@ -2336,7 +2336,7 @@ compare: { // [38] phi compare::r#10 = FF [phi:compare::@11->compare::@6#0] -- vbuz1=vbuc1 lda #FF sta.z r - // [38] phi compare::ops#7 = (byte*) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 + // [38] phi compare::ops#7 = (char *) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 lda #<0 sta.z ops lda #>0 @@ -2345,7 +2345,7 @@ compare: { // compare::@6 __b6: // [39] print_uint::w#0 = compare::w1#0 - // [40] call print_uint + // [40] call print_uint // [76] phi from compare::@6 to print_uint [phi:compare::@6->print_uint] print_uint_from___b6: // [76] phi print_char_cursor#55 = print_char_cursor#58 [phi:compare::@6->print_uint#0] -- register_copy @@ -2355,7 +2355,7 @@ compare: { // compare::@25 __b25: // [41] print_str::str#1 = compare::ops#7 - // [42] call print_str + // [42] call print_str // [82] phi from compare::@25 to print_str [phi:compare::@25->print_str] print_str_from___b25: jsr print_str @@ -2367,7 +2367,7 @@ compare: { sta.z print_uint.w lda.z w2+1 sta.z print_uint.w+1 - // [44] call print_uint + // [44] call print_uint // [76] phi from compare::@26 to print_uint [phi:compare::@26->print_uint] print_uint_from___b26: // [76] phi print_char_cursor#55 = print_char_cursor#10 [phi:compare::@26->print_uint#0] -- register_copy @@ -2378,7 +2378,7 @@ compare: { __b27: // [45] print_char::ch#3 = compare::r#10 -- vbuaa=vbuz1 lda.z r - // [46] call print_char + // [46] call print_char // [89] phi from compare::@27 to print_char [phi:compare::@27->print_char] print_char_from___b27: // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:compare::@27->print_char#0] -- register_copy @@ -2389,7 +2389,7 @@ compare: { jmp __b28 // compare::@28 __b28: - // [48] call print_char + // [48] call print_char // [89] phi from compare::@28 to print_char [phi:compare::@28->print_char] print_char_from___b28: // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:compare::@28->print_char#0] -- register_copy @@ -2644,6 +2644,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2652,7 +2653,7 @@ memset: { .label dst = 9 // [71] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [71] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [71] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -2690,12 +2691,12 @@ memset: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($b) w) +// void print_uint(__zp($b) unsigned int w) print_uint: { .label w = $b // [77] print_uchar::b#0 = byte1 print_uint::w#2 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [78] call print_uchar + // [78] call print_uchar // [93] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [93] phi print_char_cursor#56 = print_char_cursor#55 [phi:print_uint->print_uchar#0] -- register_copy @@ -2706,7 +2707,7 @@ print_uint: { __b1: // [79] print_uchar::b#1 = byte0 print_uint::w#2 -- vbuxx=_byte0_vwuz1 ldx.z w - // [80] call print_uchar + // [80] call print_uchar // [93] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [93] phi print_char_cursor#56 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -2720,7 +2721,7 @@ print_uint: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 // [83] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -2745,7 +2746,7 @@ print_str: { // [86] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [87] call print_char + // [87] call print_char // [89] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] print_char_from___b2: // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:print_str::@2->print_char#0] -- register_copy @@ -2763,7 +2764,7 @@ print_str: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [90] *print_char_cursor#37 = print_char::ch#5 -- _deref_pbuz1=vbuaa ldy #0 @@ -2781,7 +2782,7 @@ print_char: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [94] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -2792,7 +2793,7 @@ print_uchar: { // [95] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [96] call print_char + // [96] call print_char // Table of hexadecimal digits // [89] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -2807,7 +2808,7 @@ print_uchar: { axs #0 // [98] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [99] call print_char + // [99] call print_char // [89] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -2986,117 +2987,117 @@ Fixing long branch [113] beq __b2 to bne Fixing long branch [117] beq __b3 to bne FINAL SYMBOL TABLE -constant const byte FF = $57 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte TT = $51 -void compare(word compare::w1 , word compare::w2 , byte compare::op) -byte compare::op -byte compare::op#0 reg byte a 10167.833333333334 -byte* compare::ops -constant byte* compare::ops#1 ops_1 = "!=" -constant byte* compare::ops#2 ops_2 = "==" -constant byte* compare::ops#3 ops_3 = ">=" -constant byte* compare::ops#4 ops_4 = "> " -constant byte* compare::ops#5 ops_5 = "<=" -constant byte* compare::ops#6 ops_6 = "< " -byte* compare::ops#7 ops zp[2]:9 3333.6666666666665 -byte compare::r -byte compare::r#10 r zp[1]:6 10001.000000000002 -byte compare::r#12 r zp[1]:6 10001.0 -byte compare::r#13 r zp[1]:6 10001.0 -byte compare::r#14 r zp[1]:6 10001.0 -byte compare::r#15 r zp[1]:6 10001.0 -byte compare::r#16 r zp[1]:6 10001.0 -byte compare::r#17 r zp[1]:6 10001.0 -word compare::w1 -word compare::w1#0 w1 zp[2]:11 2536.0000000000005 -word compare::w2 -word compare::w2#0 w2 zp[2]:17 2290.5806451612902 +__constant const char FF = $57 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char TT = $51 +void compare(unsigned int w1 , unsigned int w2 , char op) +char compare::op +char compare::op#0 // reg byte a 10167.833333333334 +char *compare::ops +__constant char *compare::ops#1 = "!=" // ops_1 +__constant char *compare::ops#2 = "==" // ops_2 +__constant char *compare::ops#3 = ">=" // ops_3 +__constant char *compare::ops#4 = "> " // ops_4 +__constant char *compare::ops#5 = "<=" // ops_5 +__constant char *compare::ops#6 = "< " // ops_6 +char *compare::ops#7 // ops zp[2]:9 3333.6666666666665 +char compare::r +char compare::r#10 // r zp[1]:6 10001.000000000002 +char compare::r#12 // r zp[1]:6 10001.0 +char compare::r#13 // r zp[1]:6 10001.0 +char compare::r#14 // r zp[1]:6 10001.0 +char compare::r#15 // r zp[1]:6 10001.0 +char compare::r#16 // r zp[1]:6 10001.0 +char compare::r#17 // r zp[1]:6 10001.0 +unsigned int compare::w1 +unsigned int compare::w1#0 // w1 zp[2]:11 2536.0000000000005 +unsigned int compare::w2 +unsigned int compare::w2#0 // w2 zp[2]:17 2290.5806451612902 void main() -byte~ main::$8 reg byte a 22.0 -byte~ main::$9 reg byte a 202.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 1.5714285714285716 -byte main::j -byte main::j#1 j zp[1]:3 151.5 -byte main::j#2 j zp[1]:3 18.9375 -byte main::op -byte main::op#1 op zp[1]:4 1501.5 -byte main::op#2 op zp[1]:4 273.0 -byte main::s -byte main::s#1 s zp[1]:5 1501.5 -byte main::s#10 s zp[1]:5 302.0 -byte main::s#3 s zp[1]:5 420.59999999999997 -byte main::s#5 s zp[1]:5 71.0 -byte main::s#7 s zp[1]:5 7.333333333333333 -word main::w1 -word main::w1#0 w1 zp[2]:15 53.26315789473684 -word main::w2 -word main::w2#0 w2 zp[2]:17 78.71428571428571 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 2002.0 -byte* memset::dst#2 dst zp[2]:9 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2.000000002E9 -byte print_char::ch#1 reg byte a 2000002.0 -byte print_char::ch#2 reg byte a 2000002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 1.1002010005E10 -byte* print_char_cursor -byte* print_char_cursor#10 print_char_cursor zp[2]:13 3.0836475025000006E8 -byte* print_char_cursor#108 print_char_cursor zp[2]:13 2002.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:13 1.05010100035E10 -byte* print_char_cursor#55 print_char_cursor zp[2]:13 60001.5 -byte* print_char_cursor#56 print_char_cursor zp[2]:13 400001.00000000006 -byte* print_char_cursor#58 print_char_cursor zp[2]:13 370.1 -byte* print_char_cursor#64 print_char_cursor zp[2]:13 71.0 -byte* print_char_cursor#65 print_char_cursor zp[2]:13 445.0 -byte* print_char_cursor#74 print_char_cursor zp[2]:13 7.333333333333333 +char main::$8 // reg byte a 22.0 +char main::$9 // reg byte a 202.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 1.5714285714285716 +char main::j +char main::j#1 // j zp[1]:3 151.5 +char main::j#2 // j zp[1]:3 18.9375 +char main::op +char main::op#1 // op zp[1]:4 1501.5 +char main::op#2 // op zp[1]:4 273.0 +char main::s +char main::s#1 // s zp[1]:5 1501.5 +char main::s#10 // s zp[1]:5 302.0 +char main::s#3 // s zp[1]:5 420.59999999999997 +char main::s#5 // s zp[1]:5 71.0 +char main::s#7 // s zp[1]:5 7.333333333333333 +unsigned int main::w1 +unsigned int main::w1#0 // w1 zp[2]:15 53.26315789473684 +unsigned int main::w2 +unsigned int main::w2#0 // w2 zp[2]:17 78.71428571428571 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 2002.0 +char *memset::dst#2 // dst zp[2]:9 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2.000000002E9 +char print_char::ch#1 // reg byte a 2000002.0 +char print_char::ch#2 // reg byte a 2000002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 1.1002010005E10 +char *print_char_cursor +char *print_char_cursor#10 // print_char_cursor zp[2]:13 3.0836475025000006E8 +char *print_char_cursor#108 // print_char_cursor zp[2]:13 2002.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:13 1.05010100035E10 +char *print_char_cursor#55 // print_char_cursor zp[2]:13 60001.5 +char *print_char_cursor#56 // print_char_cursor zp[2]:13 400001.00000000006 +char *print_char_cursor#58 // print_char_cursor zp[2]:13 370.1 +char *print_char_cursor#64 // print_char_cursor zp[2]:13 71.0 +char *print_char_cursor#65 // print_char_cursor zp[2]:13 445.0 +char *print_char_cursor#74 // print_char_cursor zp[2]:13 7.333333333333333 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 6.0000401E7 -byte* print_line_cursor#10 print_line_cursor zp[2]:7 2.00010003E8 -byte* print_line_cursor#21 print_line_cursor zp[2]:7 1344.888888888889 -byte* print_line_cursor#25 print_line_cursor zp[2]:7 445.0 -byte* print_line_cursor#28 print_line_cursor zp[2]:7 71.0 -byte* print_line_cursor#30 print_line_cursor zp[2]:7 7.333333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 6.0000401E7 +char *print_line_cursor#10 // print_line_cursor zp[2]:7 2.00010003E8 +char *print_line_cursor#21 // print_line_cursor zp[2]:7 1344.888888888889 +char *print_line_cursor#25 // print_line_cursor zp[2]:7 445.0 +char *print_line_cursor#28 // print_line_cursor zp[2]:7 71.0 +char *print_line_cursor#30 // print_line_cursor zp[2]:7 7.333333333333333 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:9 2.000000002E9 -byte* print_str::str#1 str zp[2]:9 55001.0 -byte* print_str::str#2 str zp[2]:9 1.00002500125E9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2000002.0 -byte~ print_uchar::$2 reg byte x 2000002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 200002.0 -byte print_uchar::b#1 reg byte x 200002.0 -byte print_uchar::b#2 reg byte x 550001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:11 20002.0 -word print_uint::w#1 w zp[2]:11 20002.0 -word print_uint::w#2 w zp[2]:11 73334.66666666666 -constant word* words[] = { $12, $3f34, $cfed } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:9 2.000000002E9 +char *print_str::str#1 // str zp[2]:9 55001.0 +char *print_str::str#2 // str zp[2]:9 1.00002500125E9 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2000002.0 +char print_uchar::$2 // reg byte x 2000002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 200002.0 +char print_uchar::b#1 // reg byte x 200002.0 +char print_uchar::b#2 // reg byte x 550001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:11 20002.0 +unsigned int print_uint::w#1 // w zp[2]:11 20002.0 +unsigned int print_uint::w#2 // w zp[2]:11 73334.66666666666 +__constant unsigned int words[] = { $12, $3f34, $cfed } zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] @@ -3155,7 +3156,7 @@ main: { .label j = 3 .label i = 2 // print_cls() - // [1] call print_cls + // [1] call print_cls // [26] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] @@ -3239,7 +3240,7 @@ main: { // [10] compare::w2#0 = main::w2#0 // [11] compare::op#0 = main::op#2 -- vbuaa=vbuz1 lda.z op - // [12] call compare + // [12] call compare jsr compare // main::@9 // if(++s==3) @@ -3252,7 +3253,7 @@ main: { // [15] phi from main::@9 to main::@5 [phi:main::@9->main::@5] // main::@5 // print_ln() - // [16] call print_ln + // [16] call print_ln // [65] phi from main::@5 to print_ln [phi:main::@5->print_ln] jsr print_ln // main::@10 @@ -3305,7 +3306,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [27] call memset + // [27] call memset // [70] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -3315,7 +3316,7 @@ print_cls: { } // compare // Compare two words using an operator -// compare(word zp($b) w1, word zp($11) w2, byte register(A) op) +// void compare(__zp($b) unsigned int w1, __zp($11) unsigned int w2, __register(A) char op) compare: { .label w1 = $b .label w2 = $11 @@ -3393,7 +3394,7 @@ compare: { // [38] phi compare::r#10 = FF [phi:compare::@11->compare::@6#0] -- vbuz1=vbuc1 lda #FF sta.z r - // [38] phi compare::ops#7 = (byte*) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 + // [38] phi compare::ops#7 = (char *) 0 [phi:compare::@11->compare::@6#1] -- pbuz1=pbuc1 lda #<0 sta.z ops sta.z ops+1 @@ -3401,7 +3402,7 @@ compare: { __b6: // print_uint(w1) // [39] print_uint::w#0 = compare::w1#0 - // [40] call print_uint + // [40] call print_uint // [76] phi from compare::@6 to print_uint [phi:compare::@6->print_uint] // [76] phi print_char_cursor#55 = print_char_cursor#58 [phi:compare::@6->print_uint#0] -- register_copy // [76] phi print_uint::w#2 = print_uint::w#0 [phi:compare::@6->print_uint#1] -- register_copy @@ -3409,7 +3410,7 @@ compare: { // compare::@25 // print_str(ops) // [41] print_str::str#1 = compare::ops#7 - // [42] call print_str + // [42] call print_str // [82] phi from compare::@25 to print_str [phi:compare::@25->print_str] jsr print_str // compare::@26 @@ -3419,7 +3420,7 @@ compare: { sta.z print_uint.w lda.z w2+1 sta.z print_uint.w+1 - // [44] call print_uint + // [44] call print_uint // [76] phi from compare::@26 to print_uint [phi:compare::@26->print_uint] // [76] phi print_char_cursor#55 = print_char_cursor#10 [phi:compare::@26->print_uint#0] -- register_copy // [76] phi print_uint::w#2 = print_uint::w#1 [phi:compare::@26->print_uint#1] -- register_copy @@ -3428,7 +3429,7 @@ compare: { // print_char(r) // [45] print_char::ch#3 = compare::r#10 -- vbuaa=vbuz1 lda.z r - // [46] call print_char + // [46] call print_char // [89] phi from compare::@27 to print_char [phi:compare::@27->print_char] // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:compare::@27->print_char#0] -- register_copy // [89] phi print_char::ch#5 = print_char::ch#3 [phi:compare::@27->print_char#1] -- register_copy @@ -3436,7 +3437,7 @@ compare: { // [47] phi from compare::@27 to compare::@28 [phi:compare::@27->compare::@28] // compare::@28 // print_char(' ') - // [48] call print_char + // [48] call print_char // [89] phi from compare::@28 to print_char [phi:compare::@28->print_char] // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:compare::@28->print_char#0] -- register_copy // [89] phi print_char::ch#5 = ' ' [phi:compare::@28->print_char#1] -- vbuaa=vbuc1 @@ -3662,6 +3663,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -3669,7 +3671,7 @@ memset: { .label end = str+num .label dst = 9 // [71] phi from memset to memset::@1 [phi:memset->memset::@1] - // [71] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [71] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -3707,13 +3709,13 @@ memset: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($b) w) +// void print_uint(__zp($b) unsigned int w) print_uint: { .label w = $b // print_uchar(BYTE1(w)) // [77] print_uchar::b#0 = byte1 print_uint::w#2 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [78] call print_uchar + // [78] call print_uchar // [93] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [93] phi print_char_cursor#56 = print_char_cursor#55 [phi:print_uint->print_uchar#0] -- register_copy // [93] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -3722,7 +3724,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [79] print_uchar::b#1 = byte0 print_uint::w#2 -- vbuxx=_byte0_vwuz1 ldx.z w - // [80] call print_uchar + // [80] call print_uchar // [93] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [93] phi print_char_cursor#56 = print_char_cursor#10 [phi:print_uint::@1->print_uchar#0] -- register_copy // [93] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -3734,7 +3736,7 @@ print_uint: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(9) str) +// void print_str(__zp(9) char *str) print_str: { .label str = 9 // [83] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -3757,7 +3759,7 @@ print_str: { // [86] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [87] call print_char + // [87] call print_char // [89] phi from print_str::@2 to print_char [phi:print_str::@2->print_char] // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:print_str::@2->print_char#0] -- register_copy // [89] phi print_char::ch#5 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy @@ -3773,7 +3775,7 @@ print_str: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [90] *print_char_cursor#37 = print_char::ch#5 -- _deref_pbuz1=vbuaa @@ -3792,7 +3794,7 @@ print_char: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [94] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -3805,7 +3807,7 @@ print_uchar: { // [95] print_char::ch#1 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [96] call print_char + // [96] call print_char // Table of hexadecimal digits // [89] phi from print_uchar to print_char [phi:print_uchar->print_char] // [89] phi print_char_cursor#37 = print_char_cursor#56 [phi:print_uchar->print_char#0] -- register_copy @@ -3819,7 +3821,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [98] print_char::ch#2 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [99] call print_char + // [99] call print_char // [89] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [89] phi print_char_cursor#37 = print_char_cursor#10 [phi:print_uchar::@1->print_char#0] -- register_copy // [89] phi print_char::ch#5 = print_char::ch#2 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/test-comparisons-word.sym b/src/test/ref/test-comparisons-word.sym index 2a4b15895..67186ac34 100644 --- a/src/test/ref/test-comparisons-word.sym +++ b/src/test/ref/test-comparisons-word.sym @@ -1,114 +1,114 @@ -constant const byte FF = $57 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte TT = $51 -void compare(word compare::w1 , word compare::w2 , byte compare::op) -byte compare::op -byte compare::op#0 reg byte a 10167.833333333334 -byte* compare::ops -constant byte* compare::ops#1 ops_1 = "!=" -constant byte* compare::ops#2 ops_2 = "==" -constant byte* compare::ops#3 ops_3 = ">=" -constant byte* compare::ops#4 ops_4 = "> " -constant byte* compare::ops#5 ops_5 = "<=" -constant byte* compare::ops#6 ops_6 = "< " -byte* compare::ops#7 ops zp[2]:9 3333.6666666666665 -byte compare::r -byte compare::r#10 r zp[1]:6 10001.000000000002 -byte compare::r#12 r zp[1]:6 10001.0 -byte compare::r#13 r zp[1]:6 10001.0 -byte compare::r#14 r zp[1]:6 10001.0 -byte compare::r#15 r zp[1]:6 10001.0 -byte compare::r#16 r zp[1]:6 10001.0 -byte compare::r#17 r zp[1]:6 10001.0 -word compare::w1 -word compare::w1#0 w1 zp[2]:11 2536.0000000000005 -word compare::w2 -word compare::w2#0 w2 zp[2]:17 2290.5806451612902 +__constant const char FF = $57 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char TT = $51 +void compare(unsigned int w1 , unsigned int w2 , char op) +char compare::op +char compare::op#0 // reg byte a 10167.833333333334 +char *compare::ops +__constant char *compare::ops#1 = "!=" // ops_1 +__constant char *compare::ops#2 = "==" // ops_2 +__constant char *compare::ops#3 = ">=" // ops_3 +__constant char *compare::ops#4 = "> " // ops_4 +__constant char *compare::ops#5 = "<=" // ops_5 +__constant char *compare::ops#6 = "< " // ops_6 +char *compare::ops#7 // ops zp[2]:9 3333.6666666666665 +char compare::r +char compare::r#10 // r zp[1]:6 10001.000000000002 +char compare::r#12 // r zp[1]:6 10001.0 +char compare::r#13 // r zp[1]:6 10001.0 +char compare::r#14 // r zp[1]:6 10001.0 +char compare::r#15 // r zp[1]:6 10001.0 +char compare::r#16 // r zp[1]:6 10001.0 +char compare::r#17 // r zp[1]:6 10001.0 +unsigned int compare::w1 +unsigned int compare::w1#0 // w1 zp[2]:11 2536.0000000000005 +unsigned int compare::w2 +unsigned int compare::w2#0 // w2 zp[2]:17 2290.5806451612902 void main() -byte~ main::$8 reg byte a 22.0 -byte~ main::$9 reg byte a 202.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 1.5714285714285716 -byte main::j -byte main::j#1 j zp[1]:3 151.5 -byte main::j#2 j zp[1]:3 18.9375 -byte main::op -byte main::op#1 op zp[1]:4 1501.5 -byte main::op#2 op zp[1]:4 273.0 -byte main::s -byte main::s#1 s zp[1]:5 1501.5 -byte main::s#10 s zp[1]:5 302.0 -byte main::s#3 s zp[1]:5 420.59999999999997 -byte main::s#5 s zp[1]:5 71.0 -byte main::s#7 s zp[1]:5 7.333333333333333 -word main::w1 -word main::w1#0 w1 zp[2]:15 53.26315789473684 -word main::w2 -word main::w2#0 w2 zp[2]:17 78.71428571428571 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 2002.0 -byte* memset::dst#2 dst zp[2]:9 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 2.000000002E9 -byte print_char::ch#1 reg byte a 2000002.0 -byte print_char::ch#2 reg byte a 2000002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 1.1002010005E10 -byte* print_char_cursor -byte* print_char_cursor#10 print_char_cursor zp[2]:13 3.0836475025000006E8 -byte* print_char_cursor#108 print_char_cursor zp[2]:13 2002.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:13 1.05010100035E10 -byte* print_char_cursor#55 print_char_cursor zp[2]:13 60001.5 -byte* print_char_cursor#56 print_char_cursor zp[2]:13 400001.00000000006 -byte* print_char_cursor#58 print_char_cursor zp[2]:13 370.1 -byte* print_char_cursor#64 print_char_cursor zp[2]:13 71.0 -byte* print_char_cursor#65 print_char_cursor zp[2]:13 445.0 -byte* print_char_cursor#74 print_char_cursor zp[2]:13 7.333333333333333 +char main::$8 // reg byte a 22.0 +char main::$9 // reg byte a 202.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 1.5714285714285716 +char main::j +char main::j#1 // j zp[1]:3 151.5 +char main::j#2 // j zp[1]:3 18.9375 +char main::op +char main::op#1 // op zp[1]:4 1501.5 +char main::op#2 // op zp[1]:4 273.0 +char main::s +char main::s#1 // s zp[1]:5 1501.5 +char main::s#10 // s zp[1]:5 302.0 +char main::s#3 // s zp[1]:5 420.59999999999997 +char main::s#5 // s zp[1]:5 71.0 +char main::s#7 // s zp[1]:5 7.333333333333333 +unsigned int main::w1 +unsigned int main::w1#0 // w1 zp[2]:15 53.26315789473684 +unsigned int main::w2 +unsigned int main::w2#0 // w2 zp[2]:17 78.71428571428571 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 2002.0 +char *memset::dst#2 // dst zp[2]:9 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 2.000000002E9 +char print_char::ch#1 // reg byte a 2000002.0 +char print_char::ch#2 // reg byte a 2000002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 1.1002010005E10 +char *print_char_cursor +char *print_char_cursor#10 // print_char_cursor zp[2]:13 3.0836475025000006E8 +char *print_char_cursor#108 // print_char_cursor zp[2]:13 2002.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:13 1.05010100035E10 +char *print_char_cursor#55 // print_char_cursor zp[2]:13 60001.5 +char *print_char_cursor#56 // print_char_cursor zp[2]:13 400001.00000000006 +char *print_char_cursor#58 // print_char_cursor zp[2]:13 370.1 +char *print_char_cursor#64 // print_char_cursor zp[2]:13 71.0 +char *print_char_cursor#65 // print_char_cursor zp[2]:13 445.0 +char *print_char_cursor#74 // print_char_cursor zp[2]:13 7.333333333333333 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 6.0000401E7 -byte* print_line_cursor#10 print_line_cursor zp[2]:7 2.00010003E8 -byte* print_line_cursor#21 print_line_cursor zp[2]:7 1344.888888888889 -byte* print_line_cursor#25 print_line_cursor zp[2]:7 445.0 -byte* print_line_cursor#28 print_line_cursor zp[2]:7 71.0 -byte* print_line_cursor#30 print_line_cursor zp[2]:7 7.333333333333333 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 6.0000401E7 +char *print_line_cursor#10 // print_line_cursor zp[2]:7 2.00010003E8 +char *print_line_cursor#21 // print_line_cursor zp[2]:7 1344.888888888889 +char *print_line_cursor#25 // print_line_cursor zp[2]:7 445.0 +char *print_line_cursor#28 // print_line_cursor zp[2]:7 71.0 +char *print_line_cursor#30 // print_line_cursor zp[2]:7 7.333333333333333 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:9 2.000000002E9 -byte* print_str::str#1 str zp[2]:9 55001.0 -byte* print_str::str#2 str zp[2]:9 1.00002500125E9 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 2000002.0 -byte~ print_uchar::$2 reg byte x 2000002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 200002.0 -byte print_uchar::b#1 reg byte x 200002.0 -byte print_uchar::b#2 reg byte x 550001.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:11 20002.0 -word print_uint::w#1 w zp[2]:11 20002.0 -word print_uint::w#2 w zp[2]:11 73334.66666666666 -constant word* words[] = { $12, $3f34, $cfed } +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:9 2.000000002E9 +char *print_str::str#1 // str zp[2]:9 55001.0 +char *print_str::str#2 // str zp[2]:9 1.00002500125E9 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 2000002.0 +char print_uchar::$2 // reg byte x 2000002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 200002.0 +char print_uchar::b#1 // reg byte x 200002.0 +char print_uchar::b#2 // reg byte x 550001.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:11 20002.0 +unsigned int print_uint::w#1 // w zp[2]:11 20002.0 +unsigned int print_uint::w#2 // w zp[2]:11 73334.66666666666 +__constant unsigned int words[] = { $12, $3f34, $cfed } zp[1]:2 [ main::i#2 main::i#1 ] zp[1]:3 [ main::j#2 main::j#1 ] diff --git a/src/test/ref/test-interrupt-notype.log b/src/test/ref/test-interrupt-notype.log index 847b38097..4bd0896c4 100644 --- a/src/test/ref/test-interrupt-notype.log +++ b/src/test/ref/test-interrupt-notype.log @@ -27,7 +27,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,16 +36,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant byte* const FGCOL = (byte*)$d021 -constant void()** const KERNEL_IRQ = (void()**)$314 +__constant char * const BG_COLOR = (char *)$d020 +__constant char * const FGCOL = (char *)$d021 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 void __start() __interrupt(rom_min_c64) void irq() void main() -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification if() condition always true - replacing block destination [1] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -157,9 +157,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const FGCOL = (byte*) 53281 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const FGCOL = (char *) 53281 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/test-interrupt-notype.sym b/src/test/ref/test-interrupt-notype.sym index 0ca50913f..f4c2c7f1c 100644 --- a/src/test/ref/test-interrupt-notype.sym +++ b/src/test/ref/test-interrupt-notype.sym @@ -1,6 +1,6 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const FGCOL = (byte*) 53281 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const FGCOL = (char *) 53281 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/test-interrupt-volatile-write.log b/src/test/ref/test-interrupt-volatile-write.log index e0921627c..630c0dbb0 100644 --- a/src/test/ref/test-interrupt-volatile-write.log +++ b/src/test/ref/test-interrupt-volatile-write.log @@ -1,5 +1,5 @@ Resolved forward reference irq to __interrupt(rom_min_c64) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -46,7 +46,7 @@ __start::__init1: scope:[__start] from __start col = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -55,15 +55,15 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant void()** const KERNEL_IRQ = (void()**)$314 +__constant char * const BG_COLOR = (char *)$d020 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 void __start() -volatile byte col loadstore +__loadstore volatile char col __interrupt(rom_min_c64) void irq() -bool~ irq::$0 +bool irq::$0 void main() -bool~ main::$0 -bool~ main::$1 +bool main::$0 +bool main::$1 Adding number conversion cast (unumber) $a in main::$0 = col > $a Adding number conversion cast (unumber) 0 in col = 0 @@ -72,17 +72,17 @@ Adding number conversion cast (unumber) 2 in col = col + 2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast col = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53280 Simplifying constant integer cast $a Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [3] main::$1 = col <= $a from [2] main::$0 = col > $a Successful SSA optimization Pass2UnaryNotSimplification @@ -100,7 +100,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $a+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -129,7 +129,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -165,7 +165,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -volatile byte col loadstore 139.5 +__loadstore volatile char col // 139.5 __interrupt(rom_min_c64) void irq() void main() @@ -229,7 +229,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -317,10 +317,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 void __start() -volatile byte col loadstore zp[1]:2 139.5 +__loadstore volatile char col // zp[1]:2 139.5 __interrupt(rom_min_c64) void irq() void main() @@ -356,7 +356,7 @@ __start: { sta.z col // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/test-interrupt-volatile-write.sym b/src/test/ref/test-interrupt-volatile-write.sym index f41326789..2e0da4e8c 100644 --- a/src/test/ref/test-interrupt-volatile-write.sym +++ b/src/test/ref/test-interrupt-volatile-write.sym @@ -1,7 +1,7 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 void __start() -volatile byte col loadstore zp[1]:2 139.5 +__loadstore volatile char col // zp[1]:2 139.5 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/test-interrupt-volatile.log b/src/test/ref/test-interrupt-volatile.log index 312eae52e..20611a737 100644 --- a/src/test/ref/test-interrupt-volatile.log +++ b/src/test/ref/test-interrupt-volatile.log @@ -1,5 +1,5 @@ Resolved forward reference irq to __interrupt(rom_min_c64) void irq() -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -33,7 +33,7 @@ __start::__init1: scope:[__start] from __start col = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -42,15 +42,15 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant void()** const KERNEL_IRQ = (void()**)$314 +__constant char * const BG_COLOR = (char *)$d020 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 void __start() -volatile byte col loadstore +__loadstore volatile char col __interrupt(rom_min_c64) void irq() void main() -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53280 Successful SSA optimization PassNCastSimplification if() condition always true - replacing block destination [1] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -82,7 +82,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -108,7 +108,7 @@ main::@1: scope:[main] from main main::@1 VARIABLE REGISTER WEIGHTS void __start() -volatile byte col loadstore 41.2 +__loadstore volatile char col // 41.2 __interrupt(rom_min_c64) void irq() void main() @@ -166,7 +166,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -221,10 +221,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 void __start() -volatile byte col loadstore zp[1]:2 41.2 +__loadstore volatile char col // zp[1]:2 41.2 __interrupt(rom_min_c64) void irq() void main() @@ -258,7 +258,7 @@ __start: { sta.z col // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/test-interrupt-volatile.sym b/src/test/ref/test-interrupt-volatile.sym index e5d1b8013..85d6a93d0 100644 --- a/src/test/ref/test-interrupt-volatile.sym +++ b/src/test/ref/test-interrupt-volatile.sym @@ -1,7 +1,7 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 void __start() -volatile byte col loadstore zp[1]:2 41.2 +__loadstore volatile char col // zp[1]:2 41.2 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/test-interrupt.log b/src/test/ref/test-interrupt.log index e85605882..d7f8404aa 100644 --- a/src/test/ref/test-interrupt.log +++ b/src/test/ref/test-interrupt.log @@ -27,7 +27,7 @@ irq::@return: scope:[irq] from irq void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,16 +36,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d020 -constant byte* const FGCOL = (byte*)$d021 -constant void()** const KERNEL_IRQ = (void()**)$314 +__constant char * const BG_COLOR = (char *)$d020 +__constant char * const FGCOL = (char *)$d021 +__constant void (** const KERNEL_IRQ)() = (void (**)())$314 void __start() __interrupt(rom_min_c64) void irq() void main() -Simplifying constant pointer cast (void()**) 788 -Simplifying constant pointer cast (byte*) 53280 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (void (**)()) 788 +Simplifying constant pointer cast (char *) 53280 +Simplifying constant pointer cast (char *) 53281 Successful SSA optimization PassNCastSimplification if() condition always true - replacing block destination [1] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -157,9 +157,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const FGCOL = (byte*) 53281 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const FGCOL = (char *) 53281 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/test-interrupt.sym b/src/test/ref/test-interrupt.sym index 0ca50913f..f4c2c7f1c 100644 --- a/src/test/ref/test-interrupt.sym +++ b/src/test/ref/test-interrupt.sym @@ -1,6 +1,6 @@ -constant byte* const BG_COLOR = (byte*) 53280 -constant byte* const FGCOL = (byte*) 53281 -constant void()** const KERNEL_IRQ = (void()**) 788 +__constant char * const BG_COLOR = (char *) 53280 +__constant char * const FGCOL = (char *) 53281 +__constant void (** const KERNEL_IRQ)() = (void (**)()) 788 __interrupt(rom_min_c64) void irq() void main() diff --git a/src/test/ref/test-kasm-pc.log b/src/test/ref/test-kasm-pc.log index 4565eab5e..03d2a622f 100644 --- a/src/test/ref/test-kasm-pc.log +++ b/src/test/ref/test-kasm-pc.log @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,18 +29,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* TABLE[] = kickasm {{ .byte 1, 2, 3 +__constant char TABLE[] = kickasm {{ .byte 1, 2, 3 }} void __start() void main() -constant byte* main::BORDER_COLOR = (byte*)$d020 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +__constant char *main::BORDER_COLOR = (char *)$d020 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 -Simplifying constant pointer cast (byte*) 53280 +Simplifying constant pointer cast (char *) 53280 Successful SSA optimization PassNCastSimplification Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -58,7 +58,7 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $2000 +Finalized unsigned number type (unsigned int) $2000 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main CALL GRAPH @@ -85,9 +85,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 16.5 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -163,13 +163,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* TABLE[] = kickasm {{ .byte 1, 2, 3 +__constant char TABLE[] = kickasm {{ .byte 1, 2, 3 }} void main() -constant byte* main::BORDER_COLOR = (byte*) 53280 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +__constant char *main::BORDER_COLOR = (char *) 53280 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/test-kasm-pc.sym b/src/test/ref/test-kasm-pc.sym index db630286f..debc87bd8 100644 --- a/src/test/ref/test-kasm-pc.sym +++ b/src/test/ref/test-kasm-pc.sym @@ -1,9 +1,9 @@ -constant byte* TABLE[] = kickasm {{ .byte 1, 2, 3 +__constant char TABLE[] = kickasm {{ .byte 1, 2, 3 }} void main() -constant byte* main::BORDER_COLOR = (byte*) 53280 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +__constant char *main::BORDER_COLOR = (char *) 53280 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/test-kasm.log b/src/test/ref/test-kasm.log index 8c6ea4f34..5ecd427fb 100644 --- a/src/test/ref/test-kasm.log +++ b/src/test/ref/test-kasm.log @@ -17,7 +17,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -26,7 +26,7 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* A[] = kickasm {{ .byte 1, 2, 3 +__constant char A[] = kickasm {{ .byte 1, 2, 3 }} void __start() void main() @@ -113,7 +113,7 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* A[] = kickasm {{ .byte 1, 2, 3 +__constant char A[] = kickasm {{ .byte 1, 2, 3 }} void main() diff --git a/src/test/ref/test-kasm.sym b/src/test/ref/test-kasm.sym index a82edbfa2..14872db47 100644 --- a/src/test/ref/test-kasm.sym +++ b/src/test/ref/test-kasm.sym @@ -1,4 +1,4 @@ -constant byte* A[] = kickasm {{ .byte 1, 2, 3 +__constant char A[] = kickasm {{ .byte 1, 2, 3 }} void main() diff --git a/src/test/ref/test-keyboard-space.asm b/src/test/ref/test-keyboard-space.asm index 7eaa90692..d6152c9e4 100644 --- a/src/test/ref/test-keyboard-space.asm +++ b/src/test/ref/test-keyboard-space.asm @@ -80,6 +80,7 @@ keyboard_init: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed +// __register(A) char keyboard_key_pressed(char key) keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 @@ -95,6 +96,7 @@ keyboard_key_pressed: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. +// __register(A) char keyboard_matrix_read(char rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx diff --git a/src/test/ref/test-keyboard-space.cfg b/src/test/ref/test-keyboard-space.cfg index 14f913255..a857a5d94 100644 --- a/src/test/ref/test-keyboard-space.cfg +++ b/src/test/ref/test-keyboard-space.cfg @@ -2,14 +2,14 @@ void main() main: scope:[main] from [0] phi() - [1] call keyboard_init + [1] call keyboard_init to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 main::@4 [2] if(*RASTER!=$ff) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [3] phi() - [4] call keyboard_key_pressed + [4] call keyboard_key_pressed [5] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 to:main::@5 main::@5: scope:[main] from main::@2 @@ -25,17 +25,17 @@ main::@4: scope:[main] from main::@5 void keyboard_init() keyboard_init: scope:[keyboard_init] from main - [10] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff - [11] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 + [10] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff + [11] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 to:keyboard_init::@return keyboard_init::@return: scope:[keyboard_init] from keyboard_init [12] return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@2 [13] phi() - [14] call keyboard_matrix_read + [14] call keyboard_matrix_read [15] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -46,10 +46,10 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p [18] return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [19] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) - [20] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [19] *((char *)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) + [20] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [21] return diff --git a/src/test/ref/test-keyboard-space.log b/src/test/ref/test-keyboard-space.log index 048eabad3..c4531fe10 100644 --- a/src/test/ref/test-keyboard-space.log +++ b/src/test/ref/test-keyboard-space.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement keyboard_matrix_read::$0 Eliminating unused variable with no statement keyboard_key_pressed::$0 Eliminating unused variable with no statement keyboard_key_pressed::$1 @@ -8,18 +8,18 @@ CONTROL FLOW GRAPH SSA void keyboard_init() keyboard_init: scope:[keyboard_init] from main - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 to:keyboard_init::@return keyboard_init::@return: scope:[keyboard_init] from keyboard_init return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed keyboard_matrix_read::rowid#1 = phi( keyboard_key_pressed/keyboard_matrix_read::rowid#0 ) - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#1] - keyboard_matrix_read::row_pressed_bits#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#1] + keyboard_matrix_read::row_pressed_bits#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) keyboard_matrix_read::return#0 = keyboard_matrix_read::row_pressed_bits#0 to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read @@ -28,13 +28,13 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@3 keyboard_key_pressed::key#1 = phi( main::@3/keyboard_key_pressed::key#0 ) keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#1 & 7 keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#1 >> 3 keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - call keyboard_matrix_read + call keyboard_matrix_read keyboard_matrix_read::return#2 = keyboard_matrix_read::return#1 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -52,7 +52,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p void main() main: scope:[main] from __start::@1 - call keyboard_init + call keyboard_init to:main::@6 main::@6: scope:[main] from main to:main::@1 @@ -65,7 +65,7 @@ main::@2: scope:[main] from main::@1 main::@2 to:main::@3 main::@3: scope:[main] from main::@2 keyboard_key_pressed::key#0 = KEY_SPACE - call keyboard_key_pressed + call keyboard_key_pressed keyboard_key_pressed::return#2 = keyboard_key_pressed::return#1 to:main::@7 main::@7: scope:[main] from main::@3 @@ -90,7 +90,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -99,67 +99,67 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const BG_COLOR = (byte*)$d021 -constant const byte BLUE = 6 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte GREEN = 5 -constant const byte KEY_SPACE = $3c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 -constant byte* const RASTER = (byte*)$d012 +__constant char * const BG_COLOR = (char *)$d021 +__constant const char BLUE = 6 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char GREEN = 5 +__constant const char KEY_SPACE = $3c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 +__constant char * const RASTER = (char *)$d012 void __start() void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 -byte~ keyboard_key_pressed::$3 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 -byte keyboard_key_pressed::colidx#1 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#0 -byte keyboard_key_pressed::key#1 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 -byte keyboard_key_pressed::return#1 -byte keyboard_key_pressed::return#2 -byte keyboard_key_pressed::return#3 -byte keyboard_key_pressed::return#4 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 -byte keyboard_matrix_read::return#1 -byte keyboard_matrix_read::return#2 -byte keyboard_matrix_read::return#3 -byte keyboard_matrix_read::return#4 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::row_pressed_bits#0 -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 -byte keyboard_matrix_read::rowid#1 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 +char keyboard_key_pressed::$3 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 +char keyboard_key_pressed::colidx#1 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#0 +char keyboard_key_pressed::key#1 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 +char keyboard_key_pressed::return#1 +char keyboard_key_pressed::return#2 +char keyboard_key_pressed::return#3 +char keyboard_key_pressed::return#4 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 +char keyboard_matrix_read::return#1 +char keyboard_matrix_read::return#2 +char keyboard_matrix_read::return#3 +char keyboard_matrix_read::return#4 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::row_pressed_bits#0 +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 +char keyboard_matrix_read::rowid#1 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() -bool~ main::$1 -byte~ main::$2 -bool~ main::$3 +bool main::$1 +char main::$2 +bool main::$3 -Adding number conversion cast (unumber) $ff in *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -Adding number conversion cast (unumber) 0 in *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 +Adding number conversion cast (unumber) $ff in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff +Adding number conversion cast (unumber) 0 in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 Adding number conversion cast (unumber) 7 in keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#1 & 7 Adding number conversion cast (unumber) 3 in keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#1 >> 3 Adding number conversion cast (unumber) $ff in main::$1 = *RASTER != $ff Adding number conversion cast (unumber) 0 in main::$3 = main::$2 != 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)$ff -Inlining cast *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = (unumber)0 +Inlining cast *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)$ff +Inlining cast *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 53281 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 53281 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Simplifying constant integer cast 7 @@ -167,12 +167,12 @@ Simplifying constant integer cast 3 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias keyboard_matrix_read::return#0 = keyboard_matrix_read::row_pressed_bits#0 keyboard_matrix_read::return#3 keyboard_matrix_read::return#1 Alias keyboard_matrix_read::return#2 = keyboard_matrix_read::return#4 @@ -190,7 +190,7 @@ Constant keyboard_key_pressed::key#0 = KEY_SPACE Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [17] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero (byte*)CIA1 in [4] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] +Simplifying expression containing zero (char *)CIA1 in [4] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#0] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -217,8 +217,8 @@ Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) Consolidated array index constant in *(keyboard_matrix_col_bitmask+keyboard_key_pressed::colidx#0) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@6 @@ -247,14 +247,14 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call keyboard_init + [1] call keyboard_init to:main::@1 main::@1: scope:[main] from main main::@1 main::@3 main::@4 [2] if(*RASTER!=$ff) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 [3] phi() - [4] call keyboard_key_pressed + [4] call keyboard_key_pressed [5] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 to:main::@5 main::@5: scope:[main] from main::@2 @@ -270,17 +270,17 @@ main::@4: scope:[main] from main::@5 void keyboard_init() keyboard_init: scope:[keyboard_init] from main - [10] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff - [11] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 + [10] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff + [11] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 to:keyboard_init::@return keyboard_init::@return: scope:[keyboard_init] from keyboard_init [12] return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@2 [13] phi() - [14] call keyboard_matrix_read + [14] call keyboard_matrix_read [15] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -291,10 +291,10 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p [18] return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [19] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) - [20] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [19] *((char *)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) + [20] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [21] return @@ -303,22 +303,22 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri VARIABLE REGISTER WEIGHTS void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 202.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::key -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 37.33333333333333 -byte keyboard_key_pressed::return#2 22.0 -byte keyboard_key_pressed::rowidx -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 367.33333333333337 -byte keyboard_matrix_read::return#2 202.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // 202.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::key +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // 37.33333333333333 +char keyboard_key_pressed::return#2 // 22.0 +char keyboard_key_pressed::rowidx +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // 367.33333333333337 +char keyboard_matrix_read::return#2 // 202.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid void main() -byte~ main::$2 22.0 +char main::$2 // 22.0 Initial phi equivalence classes Added variable keyboard_key_pressed::return#2 to live range equivalence class [ keyboard_key_pressed::return#2 ] @@ -344,10 +344,10 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] if(*RASTER!=$ff) goto main::@1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [8] *BG_COLOR = BLUE [ ] ( [ ] { } ) always clobbers reg byte a Statement [9] *BG_COLOR = GREEN [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a -Statement [11] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a -Statement [19] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:4::keyboard_matrix_read:14 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [20] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:4::keyboard_matrix_read:14 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [10] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a +Statement [11] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:1 [ ] { } ) always clobbers reg byte a +Statement [19] *((char *)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) [ ] ( keyboard_key_pressed:4::keyboard_matrix_read:14 [ ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [20] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_key_pressed:4::keyboard_matrix_read:14 [ keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ keyboard_key_pressed::return#2 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$2 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:4 [ keyboard_matrix_read::return#2 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -421,7 +421,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call keyboard_init + // [1] call keyboard_init jsr keyboard_init jmp __b1 // main::@1 @@ -435,7 +435,7 @@ main: { jmp __b2 // main::@2 __b2: - // [4] call keyboard_key_pressed + // [4] call keyboard_key_pressed // [13] phi from main::@2 to keyboard_key_pressed [phi:main::@2->keyboard_key_pressed] keyboard_key_pressed_from___b2: jsr keyboard_key_pressed @@ -464,11 +464,11 @@ main: { // keyboard_init // Initialize keyboard reading by setting CIA#1 Data Direction Registers keyboard_init: { - // [10] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 + // [10] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR - // [11] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Read Mode lda #0 sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR @@ -483,10 +483,11 @@ keyboard_init: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed +// __register(A) char keyboard_key_pressed(char key) keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 - // [14] call keyboard_matrix_read + // [14] call keyboard_matrix_read jsr keyboard_matrix_read // [15] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 jmp __b1 @@ -507,11 +508,12 @@ keyboard_key_pressed: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. +// __register(A) char keyboard_matrix_read(char rowid) keyboard_matrix_read: { - // [19] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 + // [19] *((char *)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx sta CIA1 - // [20] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [20] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff jmp __breturn @@ -550,36 +552,36 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLUE = 6 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte GREEN = 5 -constant const byte KEY_SPACE = $3c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLUE = 6 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char GREEN = 5 +__constant const char KEY_SPACE = $3c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 +__constant char * const RASTER = (char *) 53266 void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 reg byte a 202.0 -byte keyboard_key_pressed::colidx -constant byte keyboard_key_pressed::colidx#0 colidx = KEY_SPACE&7 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 reg byte a 37.33333333333333 -byte keyboard_key_pressed::return#2 reg byte a 22.0 -byte keyboard_key_pressed::rowidx -constant byte keyboard_key_pressed::rowidx#0 rowidx = KEY_SPACE>>3 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 reg byte a 367.33333333333337 -byte keyboard_matrix_read::return#2 reg byte a 202.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // reg byte a 202.0 +char keyboard_key_pressed::colidx +__constant char keyboard_key_pressed::colidx#0 = KEY_SPACE&7 // colidx +char keyboard_key_pressed::key +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // reg byte a 37.33333333333333 +char keyboard_key_pressed::return#2 // reg byte a 22.0 +char keyboard_key_pressed::rowidx +__constant char keyboard_key_pressed::rowidx#0 = KEY_SPACE>>3 // rowidx +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // reg byte a 367.33333333333337 +char keyboard_matrix_read::return#2 // reg byte a 202.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() -byte~ main::$2 reg byte a 22.0 +char main::$2 // reg byte a 22.0 reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ main::$2 ] @@ -639,7 +641,7 @@ Score: 1141 // main main: { // keyboard_init() - // [1] call keyboard_init + // [1] call keyboard_init jsr keyboard_init // main::@1 __b1: @@ -651,7 +653,7 @@ main: { // [3] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // keyboard_key_pressed(KEY_SPACE) - // [4] call keyboard_key_pressed + // [4] call keyboard_key_pressed // [13] phi from main::@2 to keyboard_key_pressed [phi:main::@2->keyboard_key_pressed] jsr keyboard_key_pressed // keyboard_key_pressed(KEY_SPACE) @@ -680,12 +682,12 @@ main: { // Initialize keyboard reading by setting CIA#1 Data Direction Registers keyboard_init: { // CIA1->PORT_A_DDR = $ff - // [10] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 + // [10] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR // CIA1->PORT_B_DDR = $00 - // [11] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 + // [11] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Read Mode lda #0 sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR @@ -699,11 +701,12 @@ keyboard_init: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed +// __register(A) char keyboard_key_pressed(char key) keyboard_key_pressed: { .const colidx = KEY_SPACE&7 .label rowidx = KEY_SPACE>>3 // keyboard_matrix_read(rowidx) - // [14] call keyboard_matrix_read + // [14] call keyboard_matrix_read jsr keyboard_matrix_read // [15] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 // keyboard_key_pressed::@1 @@ -722,13 +725,14 @@ keyboard_key_pressed: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. +// __register(A) char keyboard_matrix_read(char rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] - // [19] *((byte*)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 + // [19] *((char *)CIA1) = *(keyboard_matrix_row_bitmask+keyboard_key_pressed::rowidx#0) -- _deref_pbuc1=_deref_pbuc2 lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx sta CIA1 // char row_pressed_bits = ~CIA1->PORT_B - // [20] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [20] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff // keyboard_matrix_read::@return diff --git a/src/test/ref/test-keyboard-space.sym b/src/test/ref/test-keyboard-space.sym index edd6fc32c..4e457d261 100644 --- a/src/test/ref/test-keyboard-space.sym +++ b/src/test/ref/test-keyboard-space.sym @@ -1,33 +1,33 @@ -constant byte* const BG_COLOR = (byte*) 53281 -constant const byte BLUE = 6 -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte GREEN = 5 -constant const byte KEY_SPACE = $3c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 -constant byte* const RASTER = (byte*) 53266 +__constant char * const BG_COLOR = (char *) 53281 +__constant const char BLUE = 6 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char GREEN = 5 +__constant const char KEY_SPACE = $3c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 +__constant char * const RASTER = (char *) 53266 void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 reg byte a 202.0 -byte keyboard_key_pressed::colidx -constant byte keyboard_key_pressed::colidx#0 colidx = KEY_SPACE&7 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 reg byte a 37.33333333333333 -byte keyboard_key_pressed::return#2 reg byte a 22.0 -byte keyboard_key_pressed::rowidx -constant byte keyboard_key_pressed::rowidx#0 rowidx = KEY_SPACE>>3 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 reg byte a 367.33333333333337 -byte keyboard_matrix_read::return#2 reg byte a 202.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // reg byte a 202.0 +char keyboard_key_pressed::colidx +__constant char keyboard_key_pressed::colidx#0 = KEY_SPACE&7 // colidx +char keyboard_key_pressed::key +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // reg byte a 37.33333333333333 +char keyboard_key_pressed::return#2 // reg byte a 22.0 +char keyboard_key_pressed::rowidx +__constant char keyboard_key_pressed::rowidx#0 = KEY_SPACE>>3 // rowidx +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // reg byte a 367.33333333333337 +char keyboard_matrix_read::return#2 // reg byte a 202.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() -byte~ main::$2 reg byte a 22.0 +char main::$2 // reg byte a 22.0 reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ main::$2 ] diff --git a/src/test/ref/test-keyboard.asm b/src/test/ref/test-keyboard.asm index 8c2c3fd3e..0fb1fe6e6 100644 --- a/src/test/ref/test-keyboard.asm +++ b/src/test/ref/test-keyboard.asm @@ -229,7 +229,7 @@ keyboard_init: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. -// keyboard_matrix_read(byte register(X) rowid) +// __register(A) char keyboard_matrix_read(__register(X) char rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] lda keyboard_matrix_row_bitmask,x @@ -244,7 +244,7 @@ keyboard_matrix_read: { // ch is the character to get the key code for ($00-$3f) // Returns the key code corresponding to the passed character. Only characters with a non-shifted key are handled. // If there is no non-shifted key representing the char $3f is returned (representing RUN/STOP) . -// keyboard_get_keycode(byte register(X) ch) +// __register(A) char keyboard_get_keycode(__register(X) char ch) keyboard_get_keycode: { // return keyboard_char_keycodes[ch]; lda keyboard_char_keycodes,x @@ -255,7 +255,7 @@ keyboard_get_keycode: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed -// keyboard_key_pressed(byte register(X) key) +// __register(A) char keyboard_key_pressed(__register(X) char key) keyboard_key_pressed: { // char colidx = key&7 txa diff --git a/src/test/ref/test-keyboard.cfg b/src/test/ref/test-keyboard.cfg index 179e82546..7017a3c01 100644 --- a/src/test/ref/test-keyboard.cfg +++ b/src/test/ref/test-keyboard.cfg @@ -4,21 +4,21 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::sc#2 = phi( main/(byte*) 1024, main::@2/main::sc#1 ) + [1] main::sc#2 = phi( main/(char *) 1024, main::@2/main::sc#1 ) [2] if(main::sc#2<$400+$3e8) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [3] phi() - [4] call keyboard_init + [4] call keyboard_init to:main::@4 main::@4: scope:[main] from main::@16 main::@3 main::@4 [5] if(*RASTER!=$ff) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@10 main::@4 - [6] main::screen#13 = phi( main::@10/main::screen#1, main::@4/(byte*) 1024 ) + [6] main::screen#13 = phi( main::@10/main::screen#1, main::@4/(char *) 1024 ) [6] main::row#2 = phi( main::@10/main::row#1, main::@4/0 ) [7] keyboard_matrix_read::rowid#1 = main::row#2 - [8] call keyboard_matrix_read + [8] call keyboard_matrix_read [9] keyboard_matrix_read::return#3 = keyboard_matrix_read::return#0 to:main::@17 main::@17: scope:[main] from main::@5 @@ -50,7 +50,7 @@ main::@12: scope:[main] from main::@11 main::@13 [22] main::i#3 = phi( main::@11/0, main::@13/main::i#6 ) [22] main::ch#2 = phi( main::@11/0, main::@13/main::ch#1 ) [23] keyboard_get_keycode::ch#0 = main::ch#2 - [24] call keyboard_get_keycode + [24] call keyboard_get_keycode [25] keyboard_get_keycode::return#2 = keyboard_get_keycode::return#0 to:main::@18 main::@18: scope:[main] from main::@12 @@ -59,7 +59,7 @@ main::@18: scope:[main] from main::@12 to:main::@14 main::@14: scope:[main] from main::@18 [28] keyboard_key_pressed::key#0 = main::key#0 - [29] call keyboard_key_pressed + [29] call keyboard_key_pressed [30] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 to:main::@19 main::@19: scope:[main] from main::@14 @@ -91,24 +91,24 @@ main::@2: scope:[main] from main::@1 void keyboard_init() keyboard_init: scope:[keyboard_init] from main::@3 - [45] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff - [46] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 + [45] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff + [46] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 to:keyboard_init::@return keyboard_init::@return: scope:[keyboard_init] from keyboard_init [47] return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed main::@5 [48] keyboard_matrix_read::rowid#2 = phi( keyboard_key_pressed/keyboard_matrix_read::rowid#0, main::@5/keyboard_matrix_read::rowid#1 ) - [49] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] - [50] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [49] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] + [50] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [51] return to:@return -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) +char keyboard_get_keycode(char ch) keyboard_get_keycode: scope:[keyboard_get_keycode] from main::@12 [52] keyboard_get_keycode::return#0 = keyboard_char_keycodes[keyboard_get_keycode::ch#0] to:keyboard_get_keycode::@return @@ -116,12 +116,12 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k [53] return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@14 [54] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#0 & 7 [55] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#0 >> 3 [56] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - [57] call keyboard_matrix_read + [57] call keyboard_matrix_read [58] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed diff --git a/src/test/ref/test-keyboard.log b/src/test/ref/test-keyboard.log index 9b36c7d99..89c54dc1b 100644 --- a/src/test/ref/test-keyboard.log +++ b/src/test/ref/test-keyboard.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement keyboard_matrix_read::$0 Eliminating unused variable with no statement keyboard_key_pressed::$0 Eliminating unused variable with no statement keyboard_key_pressed::$1 @@ -10,18 +10,18 @@ CONTROL FLOW GRAPH SSA void keyboard_init() keyboard_init: scope:[keyboard_init] from main::@3 - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 to:keyboard_init::@return keyboard_init::@return: scope:[keyboard_init] from keyboard_init return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed main::@7 keyboard_matrix_read::rowid#2 = phi( keyboard_key_pressed/keyboard_matrix_read::rowid#0, main::@7/keyboard_matrix_read::rowid#1 ) - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] - keyboard_matrix_read::row_pressed_bits#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] + keyboard_matrix_read::row_pressed_bits#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) keyboard_matrix_read::return#0 = keyboard_matrix_read::row_pressed_bits#0 to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read @@ -30,13 +30,13 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@16 keyboard_key_pressed::key#1 = phi( main::@16/keyboard_key_pressed::key#0 ) keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#1 & 7 keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#1 >> 3 keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - call keyboard_matrix_read + call keyboard_matrix_read keyboard_matrix_read::return#2 = keyboard_matrix_read::return#1 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -52,7 +52,7 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p return to:@return -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) +char keyboard_get_keycode(char ch) keyboard_get_keycode: scope:[keyboard_get_keycode] from main::@14 keyboard_get_keycode::ch#1 = phi( main::@14/keyboard_get_keycode::ch#0 ) keyboard_get_keycode::return#0 = keyboard_char_keycodes[keyboard_get_keycode::ch#1] @@ -65,7 +65,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k void main() main: scope:[main] from __start::@1 - main::sc#0 = (byte*)$400 + main::sc#0 = (char *)$400 to:main::@1 main::@1: scope:[main] from main main::@2 main::sc#2 = phi( main/main::sc#0, main::@2/main::sc#1 ) @@ -78,7 +78,7 @@ main::@2: scope:[main] from main::@1 main::sc#1 = ++ main::sc#3 to:main::@1 main::@3: scope:[main] from main::@1 - call keyboard_init + call keyboard_init to:main::@19 main::@19: scope:[main] from main::@3 to:main::@4 @@ -90,14 +90,14 @@ main::@5: scope:[main] from main::@4 main::@5 if(main::$2) goto main::@5 to:main::@6 main::@6: scope:[main] from main::@5 - main::screen#0 = (byte*)$400 + main::screen#0 = (char *)$400 main::row#0 = 0 to:main::@7 main::@7: scope:[main] from main::@12 main::@6 main::screen#16 = phi( main::@12/main::screen#1, main::@6/main::screen#0 ) main::row#2 = phi( main::@12/main::row#1, main::@6/main::row#0 ) keyboard_matrix_read::rowid#1 = main::row#2 - call keyboard_matrix_read + call keyboard_matrix_read keyboard_matrix_read::return#3 = keyboard_matrix_read::return#1 to:main::@20 main::@20: scope:[main] from main::@7 @@ -162,7 +162,7 @@ main::@14: scope:[main] from main::@13 main::@15 main::screen#17 = phi( main::@13/main::screen#2, main::@15/main::screen#12 ) main::ch#2 = phi( main::@13/main::ch#0, main::@15/main::ch#1 ) keyboard_get_keycode::ch#0 = main::ch#2 - call keyboard_get_keycode + call keyboard_get_keycode keyboard_get_keycode::return#2 = keyboard_get_keycode::return#1 to:main::@21 main::@21: scope:[main] from main::@14 @@ -189,7 +189,7 @@ main::@16: scope:[main] from main::@21 main::ch#7 = phi( main::@21/main::ch#5 ) main::key#1 = phi( main::@21/main::key#0 ) keyboard_key_pressed::key#0 = main::key#1 - call keyboard_key_pressed + call keyboard_key_pressed keyboard_key_pressed::return#2 = keyboard_key_pressed::return#1 to:main::@22 main::@22: scope:[main] from main::@16 @@ -227,7 +227,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -236,200 +236,200 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant const byte KEY_0 = $23 -constant const byte KEY_1 = $38 -constant const byte KEY_2 = $3b -constant const byte KEY_3 = 8 -constant const byte KEY_4 = $b -constant const byte KEY_5 = $10 -constant const byte KEY_6 = $13 -constant const byte KEY_7 = $18 -constant const byte KEY_8 = $1b -constant const byte KEY_9 = $20 -constant const byte KEY_A = $a -constant const byte KEY_ARROW_LEFT = $39 -constant const byte KEY_ARROW_UP = $36 -constant const byte KEY_ASTERISK = $31 -constant const byte KEY_AT = $2e -constant const byte KEY_B = $1c -constant const byte KEY_C = $14 -constant const byte KEY_COLON = $2d -constant const byte KEY_COMMA = $2f -constant const byte KEY_D = $12 -constant const byte KEY_DOT = $2c -constant const byte KEY_E = $e -constant const byte KEY_EQUALS = $35 -constant const byte KEY_F = $15 -constant const byte KEY_G = $1a -constant const byte KEY_H = $1d -constant const byte KEY_I = $21 -constant const byte KEY_J = $22 -constant const byte KEY_K = $25 -constant const byte KEY_L = $2a -constant const byte KEY_M = $24 -constant const byte KEY_MINUS = $2b -constant const byte KEY_N = $27 -constant const byte KEY_O = $26 -constant const byte KEY_P = $29 -constant const byte KEY_PLUS = $28 -constant const byte KEY_POUND = $30 -constant const byte KEY_Q = $3e -constant const byte KEY_R = $11 -constant const byte KEY_S = $d -constant const byte KEY_SEMICOLON = $32 -constant const byte KEY_SLASH = $37 -constant const byte KEY_SPACE = $3c -constant const byte KEY_T = $16 -constant const byte KEY_U = $1e -constant const byte KEY_V = $1f -constant const byte KEY_W = 9 -constant const byte KEY_X = $17 -constant const byte KEY_Y = $19 -constant const byte KEY_Z = $c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 -constant byte* const RASTER = (byte*)$d012 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant const char KEY_0 = $23 +__constant const char KEY_1 = $38 +__constant const char KEY_2 = $3b +__constant const char KEY_3 = 8 +__constant const char KEY_4 = $b +__constant const char KEY_5 = $10 +__constant const char KEY_6 = $13 +__constant const char KEY_7 = $18 +__constant const char KEY_8 = $1b +__constant const char KEY_9 = $20 +__constant const char KEY_A = $a +__constant const char KEY_ARROW_LEFT = $39 +__constant const char KEY_ARROW_UP = $36 +__constant const char KEY_ASTERISK = $31 +__constant const char KEY_AT = $2e +__constant const char KEY_B = $1c +__constant const char KEY_C = $14 +__constant const char KEY_COLON = $2d +__constant const char KEY_COMMA = $2f +__constant const char KEY_D = $12 +__constant const char KEY_DOT = $2c +__constant const char KEY_E = $e +__constant const char KEY_EQUALS = $35 +__constant const char KEY_F = $15 +__constant const char KEY_G = $1a +__constant const char KEY_H = $1d +__constant const char KEY_I = $21 +__constant const char KEY_J = $22 +__constant const char KEY_K = $25 +__constant const char KEY_L = $2a +__constant const char KEY_M = $24 +__constant const char KEY_MINUS = $2b +__constant const char KEY_N = $27 +__constant const char KEY_O = $26 +__constant const char KEY_P = $29 +__constant const char KEY_PLUS = $28 +__constant const char KEY_POUND = $30 +__constant const char KEY_Q = $3e +__constant const char KEY_R = $11 +__constant const char KEY_S = $d +__constant const char KEY_SEMICOLON = $32 +__constant const char KEY_SLASH = $37 +__constant const char KEY_SPACE = $3c +__constant const char KEY_T = $16 +__constant const char KEY_U = $1e +__constant const char KEY_V = $1f +__constant const char KEY_W = 9 +__constant const char KEY_X = $17 +__constant const char KEY_Y = $19 +__constant const char KEY_Z = $c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A = 0 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 +__constant char * const RASTER = (char *)$d012 void __start() -constant const byte* keyboard_char_keycodes[] = { KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f } -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) -byte keyboard_get_keycode::ch -byte keyboard_get_keycode::ch#0 -byte keyboard_get_keycode::ch#1 -byte keyboard_get_keycode::return -byte keyboard_get_keycode::return#0 -byte keyboard_get_keycode::return#1 -byte keyboard_get_keycode::return#2 -byte keyboard_get_keycode::return#3 -byte keyboard_get_keycode::return#4 +__constant const char keyboard_char_keycodes[] = { KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f } +char keyboard_get_keycode(char ch) +char keyboard_get_keycode::ch +char keyboard_get_keycode::ch#0 +char keyboard_get_keycode::ch#1 +char keyboard_get_keycode::return +char keyboard_get_keycode::return#0 +char keyboard_get_keycode::return#1 +char keyboard_get_keycode::return#2 +char keyboard_get_keycode::return#3 +char keyboard_get_keycode::return#4 void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 -byte~ keyboard_key_pressed::$3 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 -byte keyboard_key_pressed::colidx#1 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#0 -byte keyboard_key_pressed::key#1 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 -byte keyboard_key_pressed::return#1 -byte keyboard_key_pressed::return#2 -byte keyboard_key_pressed::return#3 -byte keyboard_key_pressed::return#4 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 -byte keyboard_matrix_read::return#1 -byte keyboard_matrix_read::return#2 -byte keyboard_matrix_read::return#3 -byte keyboard_matrix_read::return#4 -byte keyboard_matrix_read::return#5 -byte keyboard_matrix_read::return#6 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::row_pressed_bits#0 -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 -byte keyboard_matrix_read::rowid#1 -byte keyboard_matrix_read::rowid#2 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 +char keyboard_key_pressed::$3 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 +char keyboard_key_pressed::colidx#1 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#0 +char keyboard_key_pressed::key#1 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 +char keyboard_key_pressed::return#1 +char keyboard_key_pressed::return#2 +char keyboard_key_pressed::return#3 +char keyboard_key_pressed::return#4 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 +char keyboard_matrix_read::return#1 +char keyboard_matrix_read::return#2 +char keyboard_matrix_read::return#3 +char keyboard_matrix_read::return#4 +char keyboard_matrix_read::return#5 +char keyboard_matrix_read::return#6 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::row_pressed_bits#0 +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 +char keyboard_matrix_read::rowid#1 +char keyboard_matrix_read::rowid#2 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() -bool~ main::$1 -byte*~ main::$10 -bool~ main::$12 -bool~ main::$13 -byte~ main::$14 -bool~ main::$15 -bool~ main::$16 -bool~ main::$17 -bool~ main::$18 -bool~ main::$2 -number~ main::$4 -bool~ main::$5 -number~ main::$6 -bool~ main::$7 -byte*~ main::$8 -bool~ main::$9 -byte main::ch -byte main::ch#0 -byte main::ch#1 -byte main::ch#2 -byte main::ch#3 -byte main::ch#4 -byte main::ch#5 -byte main::ch#6 -byte main::ch#7 -byte main::col -byte main::col#0 -byte main::col#1 -byte main::col#2 -byte main::col#3 -byte main::col#4 -byte main::col#5 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -byte main::i#7 -byte main::i#8 -byte main::i#9 -byte main::key -byte main::key#0 -byte main::key#1 -byte main::row -byte main::row#0 -byte main::row#1 -byte main::row#2 -byte main::row#3 -byte main::row#4 -byte main::row#5 -byte main::row#6 -byte main::row#7 -byte main::row#8 -byte main::row_pressed_bits -byte main::row_pressed_bits#0 -byte main::row_pressed_bits#1 -byte main::row_pressed_bits#2 -byte main::row_pressed_bits#3 -byte main::row_pressed_bits#4 -byte main::row_pressed_bits#5 -byte* main::sc -byte* main::sc#0 -byte* main::sc#1 -byte* main::sc#2 -byte* main::sc#3 -byte* main::screen -byte* main::screen#0 -byte* main::screen#1 -byte* main::screen#10 -byte* main::screen#11 -byte* main::screen#12 -byte* main::screen#13 -byte* main::screen#14 -byte* main::screen#15 -byte* main::screen#16 -byte* main::screen#17 -byte* main::screen#2 -byte* main::screen#3 -byte* main::screen#4 -byte* main::screen#5 -byte* main::screen#6 -byte* main::screen#7 -byte* main::screen#8 -byte* main::screen#9 +bool main::$1 +char *main::$10 +bool main::$12 +bool main::$13 +char main::$14 +bool main::$15 +bool main::$16 +bool main::$17 +bool main::$18 +bool main::$2 +number main::$4 +bool main::$5 +number main::$6 +bool main::$7 +char *main::$8 +bool main::$9 +char main::ch +char main::ch#0 +char main::ch#1 +char main::ch#2 +char main::ch#3 +char main::ch#4 +char main::ch#5 +char main::ch#6 +char main::ch#7 +char main::col +char main::col#0 +char main::col#1 +char main::col#2 +char main::col#3 +char main::col#4 +char main::col#5 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +char main::i#7 +char main::i#8 +char main::i#9 +char main::key +char main::key#0 +char main::key#1 +char main::row +char main::row#0 +char main::row#1 +char main::row#2 +char main::row#3 +char main::row#4 +char main::row#5 +char main::row#6 +char main::row#7 +char main::row#8 +char main::row_pressed_bits +char main::row_pressed_bits#0 +char main::row_pressed_bits#1 +char main::row_pressed_bits#2 +char main::row_pressed_bits#3 +char main::row_pressed_bits#4 +char main::row_pressed_bits#5 +char *main::sc +char *main::sc#0 +char *main::sc#1 +char *main::sc#2 +char *main::sc#3 +char *main::screen +char *main::screen#0 +char *main::screen#1 +char *main::screen#10 +char *main::screen#11 +char *main::screen#12 +char *main::screen#13 +char *main::screen#14 +char *main::screen#15 +char *main::screen#16 +char *main::screen#17 +char *main::screen#2 +char *main::screen#3 +char *main::screen#4 +char *main::screen#5 +char *main::screen#6 +char *main::screen#7 +char *main::screen#8 +char *main::screen#9 -Adding number conversion cast (unumber) $ff in *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -Adding number conversion cast (unumber) 0 in *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 +Adding number conversion cast (unumber) $ff in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff +Adding number conversion cast (unumber) 0 in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 Adding number conversion cast (unumber) 7 in keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#1 & 7 Adding number conversion cast (unumber) 3 in keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#1 >> 3 Adding number conversion cast (unumber) $400+$3e8 in main::$1 = main::sc#2 < $400+$3e8 @@ -445,18 +445,18 @@ Adding number conversion cast (unumber) $3f in main::$12 = main::key#0 != $3f Adding number conversion cast (unumber) 0 in main::$15 = main::$14 != 0 Adding number conversion cast (unumber) 5 in main::$18 = main::i#2 < 5 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)$ff -Inlining cast *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = (unumber)0 +Inlining cast *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = (unumber)$ff +Inlining cast *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Simplifying constant integer cast 7 Simplifying constant integer cast 3 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $ff -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Simplifying constant integer cast 2 @@ -466,22 +466,22 @@ Simplifying constant integer cast $3f Simplifying constant integer cast 0 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $3f -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $3f +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = main::row_pressed_bits#2 & $80 -Inferred type updated to byte in main::$6 = main::row_pressed_bits#3 * 2 +Inferred type updated to char in main::$4 = main::row_pressed_bits#2 & $80 +Inferred type updated to char in main::$6 = main::row_pressed_bits#3 * 2 Inversing boolean not [80] main::$13 = main::key#0 == $3f from [79] main::$12 = main::key#0 != $3f Inversing boolean not [93] main::$16 = main::$14 == 0 from [92] main::$15 = main::$14 != 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -524,7 +524,7 @@ Identical Phi Values main::row#3 main::row#2 Identical Phi Values main::screen#11 main::screen#2 Identical Phi Values main::screen#8 main::screen#11 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition main::$1 [22] if(main::sc#2<(word)$400+$3e8) goto main::@2 +Simple Condition main::$1 [22] if(main::sc#2<(unsigned int)$400+$3e8) goto main::@2 Simple Condition main::$2 [28] if(*RASTER!=$ff) goto main::@5 Simple Condition main::$5 [40] if(main::$4!=0) goto main::@9 Simple Condition main::$7 [46] if(main::col#1!=rangelast(0,7)) goto main::@8 @@ -534,8 +534,8 @@ Simple Condition main::$17 [64] if(main::ch#1!=rangelast(0,$3f)) goto main::@14 Simple Condition main::$16 [70] if(main::$14==0) goto main::@15 Simple Condition main::$18 [77] if(main::i#2<5) goto main::@18 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant main::sc#0 = (byte*) 1024 -Constant main::screen#0 = (byte*) 1024 +Constant main::sc#0 = (char *) 1024 +Constant main::screen#0 = (char *) 1024 Constant main::row#0 = 0 Constant main::col#0 = 0 Constant main::i#0 = 0 @@ -549,7 +549,7 @@ Resolved ranged next value [48] main::row#1 = ++ main::row#2 to ++ Resolved ranged comparison value [50] if(main::row#1!=rangelast(0,7)) goto main::@7 to 8 Resolved ranged next value [62] main::ch#1 = ++ main::ch#2 to ++ Resolved ranged comparison value [64] if(main::ch#1!=rangelast(0,$3f)) goto main::@14 to $40 -Simplifying expression containing zero (byte*)CIA1 in [4] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] +Simplifying expression containing zero (char *)CIA1 in [4] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -570,9 +570,9 @@ Simplifying constant integer cast 8 Simplifying constant integer cast 8 Simplifying constant integer cast $40 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Rewriting multiplication to use shift [33] main::row_pressed_bits#1 = main::row_pressed_bits#2 * 2 Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -582,17 +582,17 @@ Inlining constant with var siblings main::row#0 Inlining constant with var siblings main::col#0 Inlining constant with var siblings main::i#0 Inlining constant with var siblings main::ch#0 -Constant inlined main::screen#0 = (byte*) 1024 +Constant inlined main::screen#0 = (char *) 1024 Constant inlined main::col#0 = 0 Constant inlined main::i#0 = 0 -Constant inlined main::sc#0 = (byte*) 1024 +Constant inlined main::sc#0 = (char *) 1024 Constant inlined main::row#0 = 0 Constant inlined main::ch#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (word) $400 -Finalized unsigned number type (word) $3e8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (unsigned int) $400 +Finalized unsigned number type (unsigned int) $3e8 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $400+$3e8 Successful SSA optimization PassNCastSimplification @@ -665,21 +665,21 @@ main: scope:[main] from [0] phi() to:main::@1 main::@1: scope:[main] from main main::@2 - [1] main::sc#2 = phi( main/(byte*) 1024, main::@2/main::sc#1 ) + [1] main::sc#2 = phi( main/(char *) 1024, main::@2/main::sc#1 ) [2] if(main::sc#2<$400+$3e8) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 [3] phi() - [4] call keyboard_init + [4] call keyboard_init to:main::@4 main::@4: scope:[main] from main::@16 main::@3 main::@4 [5] if(*RASTER!=$ff) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@10 main::@4 - [6] main::screen#13 = phi( main::@10/main::screen#1, main::@4/(byte*) 1024 ) + [6] main::screen#13 = phi( main::@10/main::screen#1, main::@4/(char *) 1024 ) [6] main::row#2 = phi( main::@10/main::row#1, main::@4/0 ) [7] keyboard_matrix_read::rowid#1 = main::row#2 - [8] call keyboard_matrix_read + [8] call keyboard_matrix_read [9] keyboard_matrix_read::return#3 = keyboard_matrix_read::return#0 to:main::@17 main::@17: scope:[main] from main::@5 @@ -711,7 +711,7 @@ main::@12: scope:[main] from main::@11 main::@13 [22] main::i#3 = phi( main::@11/0, main::@13/main::i#6 ) [22] main::ch#2 = phi( main::@11/0, main::@13/main::ch#1 ) [23] keyboard_get_keycode::ch#0 = main::ch#2 - [24] call keyboard_get_keycode + [24] call keyboard_get_keycode [25] keyboard_get_keycode::return#2 = keyboard_get_keycode::return#0 to:main::@18 main::@18: scope:[main] from main::@12 @@ -720,7 +720,7 @@ main::@18: scope:[main] from main::@12 to:main::@14 main::@14: scope:[main] from main::@18 [28] keyboard_key_pressed::key#0 = main::key#0 - [29] call keyboard_key_pressed + [29] call keyboard_key_pressed [30] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 to:main::@19 main::@19: scope:[main] from main::@14 @@ -752,24 +752,24 @@ main::@2: scope:[main] from main::@1 void keyboard_init() keyboard_init: scope:[keyboard_init] from main::@3 - [45] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff - [46] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 + [45] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff + [46] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 to:keyboard_init::@return keyboard_init::@return: scope:[keyboard_init] from keyboard_init [47] return to:@return -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) +char keyboard_matrix_read(char rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed main::@5 [48] keyboard_matrix_read::rowid#2 = phi( keyboard_key_pressed/keyboard_matrix_read::rowid#0, main::@5/keyboard_matrix_read::rowid#1 ) - [49] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] - [50] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) + [49] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] + [50] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [51] return to:@return -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) +char keyboard_get_keycode(char ch) keyboard_get_keycode: scope:[keyboard_get_keycode] from main::@12 [52] keyboard_get_keycode::return#0 = keyboard_char_keycodes[keyboard_get_keycode::ch#0] to:keyboard_get_keycode::@return @@ -777,12 +777,12 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k [53] return to:@return -byte keyboard_key_pressed(byte keyboard_key_pressed::key) +char keyboard_key_pressed(char key) keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@14 [54] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#0 & 7 [55] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#0 >> 3 [56] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 - [57] call keyboard_matrix_read + [57] call keyboard_matrix_read [58] keyboard_matrix_read::return#2 = keyboard_matrix_read::return#0 to:keyboard_key_pressed::@1 keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_pressed @@ -795,65 +795,65 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p VARIABLE REGISTER WEIGHTS -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) -byte keyboard_get_keycode::ch -byte keyboard_get_keycode::ch#0 1102.0 -byte keyboard_get_keycode::return -byte keyboard_get_keycode::return#0 367.33333333333337 -byte keyboard_get_keycode::return#2 202.0 +char keyboard_get_keycode(char ch) +char keyboard_get_keycode::ch +char keyboard_get_keycode::ch#0 // 1102.0 +char keyboard_get_keycode::return +char keyboard_get_keycode::return#0 // 367.33333333333337 +char keyboard_get_keycode::return#2 // 202.0 void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 2002.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 333.6666666666667 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#0 1051.5 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 367.33333333333337 -byte keyboard_key_pressed::return#2 202.0 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 2002.0 -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 2775.75 -byte keyboard_matrix_read::return#2 2002.0 -byte keyboard_matrix_read::return#3 202.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 2002.0 -byte keyboard_matrix_read::rowid#1 202.0 -byte keyboard_matrix_read::rowid#2 11103.0 +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // 2002.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 // 333.6666666666667 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#0 // 1051.5 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // 367.33333333333337 +char keyboard_key_pressed::return#2 // 202.0 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 // 2002.0 +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // 2775.75 +char keyboard_matrix_read::return#2 // 2002.0 +char keyboard_matrix_read::return#3 // 202.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 // 2002.0 +char keyboard_matrix_read::rowid#1 // 202.0 +char keyboard_matrix_read::rowid#2 // 11103.0 void main() -byte~ main::$14 202.0 -byte~ main::$4 2002.0 -byte main::ch -byte main::ch#1 151.5 -byte main::ch#2 28.857142857142858 -byte main::col -byte main::col#1 1501.5 -byte main::col#2 667.3333333333334 -byte main::i -byte main::i#1 202.0 -byte main::i#2 151.5 -byte main::i#3 42.08333333333333 -byte main::i#4 202.0 -byte main::i#6 168.33333333333331 -byte main::key -byte main::key#0 151.5 -byte main::row -byte main::row#1 151.5 -byte main::row#2 21.642857142857142 -byte main::row_pressed_bits -byte main::row_pressed_bits#0 202.0 -byte main::row_pressed_bits#1 667.3333333333334 -byte main::row_pressed_bits#2 620.8 -byte* main::sc -byte* main::sc#1 22.0 -byte* main::sc#2 14.666666666666666 -byte* main::screen -byte* main::screen#1 71.0 -byte* main::screen#13 169.53846153846155 -byte* main::screen#2 10.142857142857142 +char main::$14 // 202.0 +char main::$4 // 2002.0 +char main::ch +char main::ch#1 // 151.5 +char main::ch#2 // 28.857142857142858 +char main::col +char main::col#1 // 1501.5 +char main::col#2 // 667.3333333333334 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 151.5 +char main::i#3 // 42.08333333333333 +char main::i#4 // 202.0 +char main::i#6 // 168.33333333333331 +char main::key +char main::key#0 // 151.5 +char main::row +char main::row#1 // 151.5 +char main::row#2 // 21.642857142857142 +char main::row_pressed_bits +char main::row_pressed_bits#0 // 202.0 +char main::row_pressed_bits#1 // 667.3333333333334 +char main::row_pressed_bits#2 // 620.8 +char *main::sc +char *main::sc#1 // 22.0 +char *main::sc#2 // 14.666666666666666 +char *main::screen +char *main::screen#1 // 71.0 +char *main::screen#13 // 169.53846153846155 +char *main::screen#2 // 10.142857142857142 Initial phi equivalence classes [ main::sc#2 main::sc#1 ] @@ -942,12 +942,12 @@ Statement [39] main::screen#2[main::i#4] = ' ' [ main::screen#2 main::i#4 ] ( [ Removing always clobbered register reg byte a as potential for zp[1]:10 [ main::i#4 main::i#3 main::i#6 main::i#1 main::i#2 ] Statement [42] main::screen#13[main::col#2] = '1' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] { } ) always clobbers reg byte a Statement [43] *main::sc#2 = ' ' [ main::sc#2 ] ( [ main::sc#2 ] { } ) always clobbers reg byte a reg byte y -Statement [45] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a -Statement [46] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a -Statement [49] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] [ ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [45] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a +Statement [46] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a +Statement [49] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] [ ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ main::ch#2 main::ch#1 ] Removing always clobbered register reg byte a as potential for zp[1]:24 [ keyboard_key_pressed::colidx#0 ] -Statement [50] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [50] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Statement [55] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#0 >> 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( keyboard_key_pressed:29 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Statement [2] if(main::sc#2<$400+$3e8) goto main::@2 [ main::sc#2 ] ( [ main::sc#2 ] { } ) always clobbers reg byte a Statement [5] if(*RASTER!=$ff) goto main::@4 [ ] ( [ ] { } ) always clobbers reg byte a @@ -959,10 +959,10 @@ Statement [33] main::screen#2[main::i#3] = main::ch#2 [ main::screen#2 main::ch# Statement [39] main::screen#2[main::i#4] = ' ' [ main::screen#2 main::i#4 ] ( [ main::screen#2 main::i#4 ] { } ) always clobbers reg byte a Statement [42] main::screen#13[main::col#2] = '1' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] { } ) always clobbers reg byte a Statement [43] *main::sc#2 = ' ' [ main::sc#2 ] ( [ main::sc#2 ] { } ) always clobbers reg byte a reg byte y -Statement [45] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a -Statement [46] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a -Statement [49] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] [ ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a -Statement [50] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [45] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a +Statement [46] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 [ ] ( keyboard_init:4 [ ] { } ) always clobbers reg byte a +Statement [49] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] [ ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a +Statement [50] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) [ keyboard_matrix_read::return#0 ] ( keyboard_matrix_read:8 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] { { keyboard_matrix_read::rowid#1 = keyboard_matrix_read::rowid#2 main::row#2 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#3 } } keyboard_key_pressed:29::keyboard_matrix_read:57 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Statement [55] keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#0 >> 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( keyboard_key_pressed:29 [ main::screen#2 main::ch#2 main::i#3 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] { { keyboard_key_pressed::key#0 = main::key#0 } { keyboard_key_pressed::return#0 = keyboard_key_pressed::return#2 } { keyboard_matrix_read::rowid#0 = keyboard_matrix_read::rowid#2 keyboard_key_pressed::rowidx#0 } { keyboard_matrix_read::return#0 = keyboard_matrix_read::return#2 } } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::sc#2 main::sc#1 ] : zp[2]:2 , Potential registers zp[1]:4 [ main::row#2 main::row#1 ] : zp[1]:4 , reg byte x , reg byte y , @@ -1113,7 +1113,7 @@ main: { .label i = 8 // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi main::sc#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::sc#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z sc lda #>$400 @@ -1136,7 +1136,7 @@ main: { jmp __b3 // main::@3 __b3: - // [4] call keyboard_init + // [4] call keyboard_init // Init keyboard jsr keyboard_init jmp __b4 @@ -1148,7 +1148,7 @@ main: { bne __b4 // [6] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: - // [6] phi main::screen#13 = (byte*) 1024 [phi:main::@4->main::@5#0] -- pbuz1=pbuc1 + // [6] phi main::screen#13 = (char *) 1024 [phi:main::@4->main::@5#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -1167,7 +1167,7 @@ main: { __b5: // [7] keyboard_matrix_read::rowid#1 = main::row#2 -- vbuxx=vbuz1 ldx.z row - // [8] call keyboard_matrix_read + // [8] call keyboard_matrix_read // [48] phi from main::@5 to keyboard_matrix_read [phi:main::@5->keyboard_matrix_read] keyboard_matrix_read_from___b5: // [48] phi keyboard_matrix_read::rowid#2 = keyboard_matrix_read::rowid#1 [phi:main::@5->keyboard_matrix_read#0] -- register_copy @@ -1261,7 +1261,7 @@ main: { __b12: // [23] keyboard_get_keycode::ch#0 = main::ch#2 -- vbuxx=vbuz1 ldx.z ch - // [24] call keyboard_get_keycode + // [24] call keyboard_get_keycode jsr keyboard_get_keycode // [25] keyboard_get_keycode::return#2 = keyboard_get_keycode::return#0 jmp __b18 @@ -1276,7 +1276,7 @@ main: { __b14: // [28] keyboard_key_pressed::key#0 = main::key#0 -- vbuxx=vbuaa tax - // [29] call keyboard_key_pressed + // [29] call keyboard_key_pressed jsr keyboard_key_pressed // [30] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 jmp __b19 @@ -1353,11 +1353,11 @@ main: { // keyboard_init // Initialize keyboard reading by setting CIA#1 Data Direction Registers keyboard_init: { - // [45] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 + // [45] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR - // [46] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 + // [46] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Read Mode lda #0 sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR @@ -1373,12 +1373,12 @@ keyboard_init: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. -// keyboard_matrix_read(byte register(X) rowid) +// __register(A) char keyboard_matrix_read(__register(X) char rowid) keyboard_matrix_read: { - // [49] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [49] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1 - // [50] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [50] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff jmp __breturn @@ -1392,7 +1392,7 @@ keyboard_matrix_read: { // ch is the character to get the key code for ($00-$3f) // Returns the key code corresponding to the passed character. Only characters with a non-shifted key are handled. // If there is no non-shifted key representing the char $3f is returned (representing RUN/STOP) . -// keyboard_get_keycode(byte register(X) ch) +// __register(A) char keyboard_get_keycode(__register(X) char ch) keyboard_get_keycode: { // [52] keyboard_get_keycode::return#0 = keyboard_char_keycodes[keyboard_get_keycode::ch#0] -- vbuaa=pbuc1_derefidx_vbuxx lda keyboard_char_keycodes,x @@ -1407,7 +1407,7 @@ keyboard_get_keycode: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed -// keyboard_key_pressed(byte register(X) key) +// __register(A) char keyboard_key_pressed(__register(X) char key) keyboard_key_pressed: { // [54] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#0 & 7 -- vbuyy=vbuxx_band_vbuc1 txa @@ -1420,7 +1420,7 @@ keyboard_key_pressed: { lsr // [56] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 -- vbuxx=vbuaa tax - // [57] call keyboard_matrix_read + // [57] call keyboard_matrix_read // [48] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read] keyboard_matrix_read_from_keyboard_key_pressed: // [48] phi keyboard_matrix_read::rowid#2 = keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy @@ -1521,123 +1521,123 @@ Fixing long branch [82] bcc __b2 to bcs Fixing long branch [88] bcc __b2 to bcs FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte KEY_0 = $23 -constant const byte KEY_1 = $38 -constant const byte KEY_2 = $3b -constant const byte KEY_3 = 8 -constant const byte KEY_4 = $b -constant const byte KEY_5 = $10 -constant const byte KEY_6 = $13 -constant const byte KEY_7 = $18 -constant const byte KEY_8 = $1b -constant const byte KEY_9 = $20 -constant const byte KEY_A = $a -constant const byte KEY_ARROW_LEFT = $39 -constant const byte KEY_ARROW_UP = $36 -constant const byte KEY_ASTERISK = $31 -constant const byte KEY_AT = $2e -constant const byte KEY_B = $1c -constant const byte KEY_C = $14 -constant const byte KEY_COLON = $2d -constant const byte KEY_COMMA = $2f -constant const byte KEY_D = $12 -constant const byte KEY_DOT = $2c -constant const byte KEY_E = $e -constant const byte KEY_EQUALS = $35 -constant const byte KEY_F = $15 -constant const byte KEY_G = $1a -constant const byte KEY_H = $1d -constant const byte KEY_I = $21 -constant const byte KEY_J = $22 -constant const byte KEY_K = $25 -constant const byte KEY_L = $2a -constant const byte KEY_M = $24 -constant const byte KEY_MINUS = $2b -constant const byte KEY_N = $27 -constant const byte KEY_O = $26 -constant const byte KEY_P = $29 -constant const byte KEY_PLUS = $28 -constant const byte KEY_POUND = $30 -constant const byte KEY_Q = $3e -constant const byte KEY_R = $11 -constant const byte KEY_S = $d -constant const byte KEY_SEMICOLON = $32 -constant const byte KEY_SLASH = $37 -constant const byte KEY_SPACE = $3c -constant const byte KEY_T = $16 -constant const byte KEY_U = $1e -constant const byte KEY_V = $1f -constant const byte KEY_W = 9 -constant const byte KEY_X = $17 -constant const byte KEY_Y = $19 -constant const byte KEY_Z = $c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 -constant byte* const RASTER = (byte*) 53266 -constant const byte* keyboard_char_keycodes[] = { KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f } -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) -byte keyboard_get_keycode::ch -byte keyboard_get_keycode::ch#0 reg byte x 1102.0 -byte keyboard_get_keycode::return -byte keyboard_get_keycode::return#0 reg byte a 367.33333333333337 -byte keyboard_get_keycode::return#2 reg byte a 202.0 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char KEY_0 = $23 +__constant const char KEY_1 = $38 +__constant const char KEY_2 = $3b +__constant const char KEY_3 = 8 +__constant const char KEY_4 = $b +__constant const char KEY_5 = $10 +__constant const char KEY_6 = $13 +__constant const char KEY_7 = $18 +__constant const char KEY_8 = $1b +__constant const char KEY_9 = $20 +__constant const char KEY_A = $a +__constant const char KEY_ARROW_LEFT = $39 +__constant const char KEY_ARROW_UP = $36 +__constant const char KEY_ASTERISK = $31 +__constant const char KEY_AT = $2e +__constant const char KEY_B = $1c +__constant const char KEY_C = $14 +__constant const char KEY_COLON = $2d +__constant const char KEY_COMMA = $2f +__constant const char KEY_D = $12 +__constant const char KEY_DOT = $2c +__constant const char KEY_E = $e +__constant const char KEY_EQUALS = $35 +__constant const char KEY_F = $15 +__constant const char KEY_G = $1a +__constant const char KEY_H = $1d +__constant const char KEY_I = $21 +__constant const char KEY_J = $22 +__constant const char KEY_K = $25 +__constant const char KEY_L = $2a +__constant const char KEY_M = $24 +__constant const char KEY_MINUS = $2b +__constant const char KEY_N = $27 +__constant const char KEY_O = $26 +__constant const char KEY_P = $29 +__constant const char KEY_PLUS = $28 +__constant const char KEY_POUND = $30 +__constant const char KEY_Q = $3e +__constant const char KEY_R = $11 +__constant const char KEY_S = $d +__constant const char KEY_SEMICOLON = $32 +__constant const char KEY_SLASH = $37 +__constant const char KEY_SPACE = $3c +__constant const char KEY_T = $16 +__constant const char KEY_U = $1e +__constant const char KEY_V = $1f +__constant const char KEY_W = 9 +__constant const char KEY_X = $17 +__constant const char KEY_Y = $19 +__constant const char KEY_Z = $c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 +__constant char * const RASTER = (char *) 53266 +__constant const char keyboard_char_keycodes[] = { KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f } +char keyboard_get_keycode(char ch) +char keyboard_get_keycode::ch +char keyboard_get_keycode::ch#0 // reg byte x 1102.0 +char keyboard_get_keycode::return +char keyboard_get_keycode::return#0 // reg byte a 367.33333333333337 +char keyboard_get_keycode::return#2 // reg byte a 202.0 void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 reg byte a 2002.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 reg byte y 333.6666666666667 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#0 reg byte x 1051.5 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 reg byte a 367.33333333333337 -byte keyboard_key_pressed::return#2 reg byte a 202.0 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 reg byte a 2002.0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 reg byte a 2775.75 -byte keyboard_matrix_read::return#2 reg byte a 2002.0 -byte keyboard_matrix_read::return#3 reg byte a 202.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 reg byte x 2002.0 -byte keyboard_matrix_read::rowid#1 reg byte x 202.0 -byte keyboard_matrix_read::rowid#2 reg byte x 11103.0 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // reg byte a 2002.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 // reg byte y 333.6666666666667 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#0 // reg byte x 1051.5 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // reg byte a 367.33333333333337 +char keyboard_key_pressed::return#2 // reg byte a 202.0 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 // reg byte a 2002.0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // reg byte a 2775.75 +char keyboard_matrix_read::return#2 // reg byte a 2002.0 +char keyboard_matrix_read::return#3 // reg byte a 202.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 // reg byte x 2002.0 +char keyboard_matrix_read::rowid#1 // reg byte x 202.0 +char keyboard_matrix_read::rowid#2 // reg byte x 11103.0 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() -byte~ main::$14 reg byte a 202.0 -byte~ main::$4 reg byte a 2002.0 -byte main::ch -byte main::ch#1 ch zp[1]:7 151.5 -byte main::ch#2 ch zp[1]:7 28.857142857142858 -byte main::col -byte main::col#1 reg byte y 1501.5 -byte main::col#2 reg byte y 667.3333333333334 -byte main::i -byte main::i#1 i zp[1]:8 202.0 -byte main::i#2 i zp[1]:8 151.5 -byte main::i#3 i zp[1]:8 42.08333333333333 -byte main::i#4 i zp[1]:8 202.0 -byte main::i#6 i zp[1]:8 168.33333333333331 -byte main::key -byte main::key#0 reg byte a 151.5 -byte main::row -byte main::row#1 row zp[1]:4 151.5 -byte main::row#2 row zp[1]:4 21.642857142857142 -byte main::row_pressed_bits -byte main::row_pressed_bits#0 reg byte x 202.0 -byte main::row_pressed_bits#1 reg byte x 667.3333333333334 -byte main::row_pressed_bits#2 reg byte x 620.8 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 -byte* main::screen -byte* main::screen#1 screen zp[2]:5 71.0 -byte* main::screen#13 screen zp[2]:5 169.53846153846155 -byte* main::screen#2 screen zp[2]:5 10.142857142857142 +char main::$14 // reg byte a 202.0 +char main::$4 // reg byte a 2002.0 +char main::ch +char main::ch#1 // ch zp[1]:7 151.5 +char main::ch#2 // ch zp[1]:7 28.857142857142858 +char main::col +char main::col#1 // reg byte y 1501.5 +char main::col#2 // reg byte y 667.3333333333334 +char main::i +char main::i#1 // i zp[1]:8 202.0 +char main::i#2 // i zp[1]:8 151.5 +char main::i#3 // i zp[1]:8 42.08333333333333 +char main::i#4 // i zp[1]:8 202.0 +char main::i#6 // i zp[1]:8 168.33333333333331 +char main::key +char main::key#0 // reg byte a 151.5 +char main::row +char main::row#1 // row zp[1]:4 151.5 +char main::row#2 // row zp[1]:4 21.642857142857142 +char main::row_pressed_bits +char main::row_pressed_bits#0 // reg byte x 202.0 +char main::row_pressed_bits#1 // reg byte x 667.3333333333334 +char main::row_pressed_bits#2 // reg byte x 620.8 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 +char *main::screen +char *main::screen#1 // screen zp[2]:5 71.0 +char *main::screen#13 // screen zp[2]:5 169.53846153846155 +char *main::screen#2 // screen zp[2]:5 10.142857142857142 zp[2]:2 [ main::sc#2 main::sc#1 ] zp[1]:4 [ main::row#2 main::row#1 ] @@ -1746,7 +1746,7 @@ main: { // Checks all specific chars $00-$3f .label i = 8 // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi main::sc#2 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi main::sc#2 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z sc lda #>$400 @@ -1771,7 +1771,7 @@ main: { // [3] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // main::@3 // keyboard_init() - // [4] call keyboard_init + // [4] call keyboard_init // Init keyboard jsr keyboard_init // main::@4 @@ -1782,7 +1782,7 @@ main: { cmp RASTER bne __b4 // [6] phi from main::@4 to main::@5 [phi:main::@4->main::@5] - // [6] phi main::screen#13 = (byte*) 1024 [phi:main::@4->main::@5#0] -- pbuz1=pbuc1 + // [6] phi main::screen#13 = (char *) 1024 [phi:main::@4->main::@5#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -1799,7 +1799,7 @@ main: { // byte row_pressed_bits = keyboard_matrix_read(row) // [7] keyboard_matrix_read::rowid#1 = main::row#2 -- vbuxx=vbuz1 ldx.z row - // [8] call keyboard_matrix_read + // [8] call keyboard_matrix_read // [48] phi from main::@5 to keyboard_matrix_read [phi:main::@5->keyboard_matrix_read] // [48] phi keyboard_matrix_read::rowid#2 = keyboard_matrix_read::rowid#1 [phi:main::@5->keyboard_matrix_read#0] -- register_copy jsr keyboard_matrix_read @@ -1884,7 +1884,7 @@ main: { // byte key = keyboard_get_keycode(ch) // [23] keyboard_get_keycode::ch#0 = main::ch#2 -- vbuxx=vbuz1 ldx.z ch - // [24] call keyboard_get_keycode + // [24] call keyboard_get_keycode jsr keyboard_get_keycode // [25] keyboard_get_keycode::return#2 = keyboard_get_keycode::return#0 // main::@18 @@ -1897,7 +1897,7 @@ main: { // keyboard_key_pressed(key) // [28] keyboard_key_pressed::key#0 = main::key#0 -- vbuxx=vbuaa tax - // [29] call keyboard_key_pressed + // [29] call keyboard_key_pressed jsr keyboard_key_pressed // [30] keyboard_key_pressed::return#2 = keyboard_key_pressed::return#0 // main::@19 @@ -1973,12 +1973,12 @@ main: { // Initialize keyboard reading by setting CIA#1 Data Direction Registers keyboard_init: { // CIA1->PORT_A_DDR = $ff - // [45] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 + // [45] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR) = $ff -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Write Mode lda #$ff sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR // CIA1->PORT_B_DDR = $00 - // [46] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 + // [46] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR) = 0 -- _deref_pbuc1=vbuc2 // Keyboard Matrix Columns Read Mode lda #0 sta CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR @@ -1993,14 +1993,14 @@ keyboard_init: { // Returns the keys pressed on the row as bits according to the C64 key matrix. // Notice: If the C64 normal interrupt is still running it will occasionally interrupt right between the read & write // leading to erroneous readings. You must disable the normal interrupt or sei/cli around calls to the keyboard matrix reader. -// keyboard_matrix_read(byte register(X) rowid) +// __register(A) char keyboard_matrix_read(__register(X) char rowid) keyboard_matrix_read: { // CIA1->PORT_A = keyboard_matrix_row_bitmask[rowid] - // [49] *((byte*)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [49] *((char *)CIA1) = keyboard_matrix_row_bitmask[keyboard_matrix_read::rowid#2] -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1 // char row_pressed_bits = ~CIA1->PORT_B - // [50] keyboard_matrix_read::return#0 = ~ *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [50] keyboard_matrix_read::return#0 = ~ *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_PORT_B eor #$ff // keyboard_matrix_read::@return @@ -2013,7 +2013,7 @@ keyboard_matrix_read: { // ch is the character to get the key code for ($00-$3f) // Returns the key code corresponding to the passed character. Only characters with a non-shifted key are handled. // If there is no non-shifted key representing the char $3f is returned (representing RUN/STOP) . -// keyboard_get_keycode(byte register(X) ch) +// __register(A) char keyboard_get_keycode(__register(X) char ch) keyboard_get_keycode: { // return keyboard_char_keycodes[ch]; // [52] keyboard_get_keycode::return#0 = keyboard_char_keycodes[keyboard_get_keycode::ch#0] -- vbuaa=pbuc1_derefidx_vbuxx @@ -2028,7 +2028,7 @@ keyboard_get_keycode: { // The key is a keyboard code defined from the keyboard matrix by %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) // All keys exist as as KEY_XXX constants. // Returns zero if the key is not pressed and a non-zero value if the key is currently pressed -// keyboard_key_pressed(byte register(X) key) +// __register(A) char keyboard_key_pressed(__register(X) char key) keyboard_key_pressed: { // char colidx = key&7 // [54] keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#0 & 7 -- vbuyy=vbuxx_band_vbuc1 @@ -2044,7 +2044,7 @@ keyboard_key_pressed: { // keyboard_matrix_read(rowidx) // [56] keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 -- vbuxx=vbuaa tax - // [57] call keyboard_matrix_read + // [57] call keyboard_matrix_read // [48] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read] // [48] phi keyboard_matrix_read::rowid#2 = keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy jsr keyboard_matrix_read diff --git a/src/test/ref/test-keyboard.sym b/src/test/ref/test-keyboard.sym index 5bf66f212..407c296dd 100644 --- a/src/test/ref/test-keyboard.sym +++ b/src/test/ref/test-keyboard.sym @@ -1,120 +1,120 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant const byte KEY_0 = $23 -constant const byte KEY_1 = $38 -constant const byte KEY_2 = $3b -constant const byte KEY_3 = 8 -constant const byte KEY_4 = $b -constant const byte KEY_5 = $10 -constant const byte KEY_6 = $13 -constant const byte KEY_7 = $18 -constant const byte KEY_8 = $1b -constant const byte KEY_9 = $20 -constant const byte KEY_A = $a -constant const byte KEY_ARROW_LEFT = $39 -constant const byte KEY_ARROW_UP = $36 -constant const byte KEY_ASTERISK = $31 -constant const byte KEY_AT = $2e -constant const byte KEY_B = $1c -constant const byte KEY_C = $14 -constant const byte KEY_COLON = $2d -constant const byte KEY_COMMA = $2f -constant const byte KEY_D = $12 -constant const byte KEY_DOT = $2c -constant const byte KEY_E = $e -constant const byte KEY_EQUALS = $35 -constant const byte KEY_F = $15 -constant const byte KEY_G = $1a -constant const byte KEY_H = $1d -constant const byte KEY_I = $21 -constant const byte KEY_J = $22 -constant const byte KEY_K = $25 -constant const byte KEY_L = $2a -constant const byte KEY_M = $24 -constant const byte KEY_MINUS = $2b -constant const byte KEY_N = $27 -constant const byte KEY_O = $26 -constant const byte KEY_P = $29 -constant const byte KEY_PLUS = $28 -constant const byte KEY_POUND = $30 -constant const byte KEY_Q = $3e -constant const byte KEY_R = $11 -constant const byte KEY_S = $d -constant const byte KEY_SEMICOLON = $32 -constant const byte KEY_SLASH = $37 -constant const byte KEY_SPACE = $3c -constant const byte KEY_T = $16 -constant const byte KEY_U = $1e -constant const byte KEY_V = $1f -constant const byte KEY_W = 9 -constant const byte KEY_X = $17 -constant const byte KEY_Y = $19 -constant const byte KEY_Z = $c -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 -constant byte OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 -constant byte* const RASTER = (byte*) 53266 -constant const byte* keyboard_char_keycodes[] = { KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f } -byte keyboard_get_keycode(byte keyboard_get_keycode::ch) -byte keyboard_get_keycode::ch -byte keyboard_get_keycode::ch#0 reg byte x 1102.0 -byte keyboard_get_keycode::return -byte keyboard_get_keycode::return#0 reg byte a 367.33333333333337 -byte keyboard_get_keycode::return#2 reg byte a 202.0 +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant const char KEY_0 = $23 +__constant const char KEY_1 = $38 +__constant const char KEY_2 = $3b +__constant const char KEY_3 = 8 +__constant const char KEY_4 = $b +__constant const char KEY_5 = $10 +__constant const char KEY_6 = $13 +__constant const char KEY_7 = $18 +__constant const char KEY_8 = $1b +__constant const char KEY_9 = $20 +__constant const char KEY_A = $a +__constant const char KEY_ARROW_LEFT = $39 +__constant const char KEY_ARROW_UP = $36 +__constant const char KEY_ASTERISK = $31 +__constant const char KEY_AT = $2e +__constant const char KEY_B = $1c +__constant const char KEY_C = $14 +__constant const char KEY_COLON = $2d +__constant const char KEY_COMMA = $2f +__constant const char KEY_D = $12 +__constant const char KEY_DOT = $2c +__constant const char KEY_E = $e +__constant const char KEY_EQUALS = $35 +__constant const char KEY_F = $15 +__constant const char KEY_G = $1a +__constant const char KEY_H = $1d +__constant const char KEY_I = $21 +__constant const char KEY_J = $22 +__constant const char KEY_K = $25 +__constant const char KEY_L = $2a +__constant const char KEY_M = $24 +__constant const char KEY_MINUS = $2b +__constant const char KEY_N = $27 +__constant const char KEY_O = $26 +__constant const char KEY_P = $29 +__constant const char KEY_PLUS = $28 +__constant const char KEY_POUND = $30 +__constant const char KEY_Q = $3e +__constant const char KEY_R = $11 +__constant const char KEY_S = $d +__constant const char KEY_SEMICOLON = $32 +__constant const char KEY_SLASH = $37 +__constant const char KEY_SPACE = $3c +__constant const char KEY_T = $16 +__constant const char KEY_U = $1e +__constant const char KEY_V = $1f +__constant const char KEY_W = 9 +__constant const char KEY_X = $17 +__constant const char KEY_Y = $19 +__constant const char KEY_Z = $c +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1 +__constant char OFFSET_STRUCT_MOS6526_CIA_PORT_B_DDR = 3 +__constant char * const RASTER = (char *) 53266 +__constant const char keyboard_char_keycodes[] = { KEY_AT, KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N, KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, $3f, KEY_POUND, $3f, KEY_ARROW_UP, KEY_ARROW_LEFT, KEY_SPACE, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f, KEY_ASTERISK, KEY_PLUS, KEY_COMMA, KEY_MINUS, KEY_DOT, KEY_SLASH, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_COLON, KEY_SEMICOLON, $3f, KEY_EQUALS, $3f, $3f } +char keyboard_get_keycode(char ch) +char keyboard_get_keycode::ch +char keyboard_get_keycode::ch#0 // reg byte x 1102.0 +char keyboard_get_keycode::return +char keyboard_get_keycode::return#0 // reg byte a 367.33333333333337 +char keyboard_get_keycode::return#2 // reg byte a 202.0 void keyboard_init() -byte keyboard_key_pressed(byte keyboard_key_pressed::key) -byte~ keyboard_key_pressed::$2 reg byte a 2002.0 -byte keyboard_key_pressed::colidx -byte keyboard_key_pressed::colidx#0 reg byte y 333.6666666666667 -byte keyboard_key_pressed::key -byte keyboard_key_pressed::key#0 reg byte x 1051.5 -byte keyboard_key_pressed::return -byte keyboard_key_pressed::return#0 reg byte a 367.33333333333337 -byte keyboard_key_pressed::return#2 reg byte a 202.0 -byte keyboard_key_pressed::rowidx -byte keyboard_key_pressed::rowidx#0 reg byte a 2002.0 -constant byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } -byte keyboard_matrix_read(byte keyboard_matrix_read::rowid) -byte keyboard_matrix_read::return -byte keyboard_matrix_read::return#0 reg byte a 2775.75 -byte keyboard_matrix_read::return#2 reg byte a 2002.0 -byte keyboard_matrix_read::return#3 reg byte a 202.0 -byte keyboard_matrix_read::row_pressed_bits -byte keyboard_matrix_read::rowid -byte keyboard_matrix_read::rowid#0 reg byte x 2002.0 -byte keyboard_matrix_read::rowid#1 reg byte x 202.0 -byte keyboard_matrix_read::rowid#2 reg byte x 11103.0 -constant byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } +char keyboard_key_pressed(char key) +char keyboard_key_pressed::$2 // reg byte a 2002.0 +char keyboard_key_pressed::colidx +char keyboard_key_pressed::colidx#0 // reg byte y 333.6666666666667 +char keyboard_key_pressed::key +char keyboard_key_pressed::key#0 // reg byte x 1051.5 +char keyboard_key_pressed::return +char keyboard_key_pressed::return#0 // reg byte a 367.33333333333337 +char keyboard_key_pressed::return#2 // reg byte a 202.0 +char keyboard_key_pressed::rowidx +char keyboard_key_pressed::rowidx#0 // reg byte a 2002.0 +__constant char keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 } +char keyboard_matrix_read(char rowid) +char keyboard_matrix_read::return +char keyboard_matrix_read::return#0 // reg byte a 2775.75 +char keyboard_matrix_read::return#2 // reg byte a 2002.0 +char keyboard_matrix_read::return#3 // reg byte a 202.0 +char keyboard_matrix_read::row_pressed_bits +char keyboard_matrix_read::rowid +char keyboard_matrix_read::rowid#0 // reg byte x 2002.0 +char keyboard_matrix_read::rowid#1 // reg byte x 202.0 +char keyboard_matrix_read::rowid#2 // reg byte x 11103.0 +__constant char keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f } void main() -byte~ main::$14 reg byte a 202.0 -byte~ main::$4 reg byte a 2002.0 -byte main::ch -byte main::ch#1 ch zp[1]:7 151.5 -byte main::ch#2 ch zp[1]:7 28.857142857142858 -byte main::col -byte main::col#1 reg byte y 1501.5 -byte main::col#2 reg byte y 667.3333333333334 -byte main::i -byte main::i#1 i zp[1]:8 202.0 -byte main::i#2 i zp[1]:8 151.5 -byte main::i#3 i zp[1]:8 42.08333333333333 -byte main::i#4 i zp[1]:8 202.0 -byte main::i#6 i zp[1]:8 168.33333333333331 -byte main::key -byte main::key#0 reg byte a 151.5 -byte main::row -byte main::row#1 row zp[1]:4 151.5 -byte main::row#2 row zp[1]:4 21.642857142857142 -byte main::row_pressed_bits -byte main::row_pressed_bits#0 reg byte x 202.0 -byte main::row_pressed_bits#1 reg byte x 667.3333333333334 -byte main::row_pressed_bits#2 reg byte x 620.8 -byte* main::sc -byte* main::sc#1 sc zp[2]:2 22.0 -byte* main::sc#2 sc zp[2]:2 14.666666666666666 -byte* main::screen -byte* main::screen#1 screen zp[2]:5 71.0 -byte* main::screen#13 screen zp[2]:5 169.53846153846155 -byte* main::screen#2 screen zp[2]:5 10.142857142857142 +char main::$14 // reg byte a 202.0 +char main::$4 // reg byte a 2002.0 +char main::ch +char main::ch#1 // ch zp[1]:7 151.5 +char main::ch#2 // ch zp[1]:7 28.857142857142858 +char main::col +char main::col#1 // reg byte y 1501.5 +char main::col#2 // reg byte y 667.3333333333334 +char main::i +char main::i#1 // i zp[1]:8 202.0 +char main::i#2 // i zp[1]:8 151.5 +char main::i#3 // i zp[1]:8 42.08333333333333 +char main::i#4 // i zp[1]:8 202.0 +char main::i#6 // i zp[1]:8 168.33333333333331 +char main::key +char main::key#0 // reg byte a 151.5 +char main::row +char main::row#1 // row zp[1]:4 151.5 +char main::row#2 // row zp[1]:4 21.642857142857142 +char main::row_pressed_bits +char main::row_pressed_bits#0 // reg byte x 202.0 +char main::row_pressed_bits#1 // reg byte x 667.3333333333334 +char main::row_pressed_bits#2 // reg byte x 620.8 +char *main::sc +char *main::sc#1 // sc zp[2]:2 22.0 +char *main::sc#2 // sc zp[2]:2 14.666666666666666 +char *main::screen +char *main::screen#1 // screen zp[2]:5 71.0 +char *main::screen#13 // screen zp[2]:5 169.53846153846155 +char *main::screen#2 // screen zp[2]:5 10.142857142857142 zp[2]:2 [ main::sc#2 main::sc#1 ] zp[1]:4 [ main::row#2 main::row#1 ] diff --git a/src/test/ref/test-lohiconst.log b/src/test/ref/test-lohiconst.log index dcce9b266..6e63bfa9e 100644 --- a/src/test/ref/test-lohiconst.log +++ b/src/test/ref/test-lohiconst.log @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,26 +23,26 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const dword PI_u4f28 = $3243f6a9 +__constant const unsigned long PI_u4f28 = $3243f6a9 void __start() void main() -constant byte* main::SCREEN = (byte*)$400 +__constant char *main::SCREEN = (char *)$400 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = byte3 PI_u4f28 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = byte2 PI_u4f28 Adding number conversion cast (unumber) 2 in main::SCREEN[2] = byte1 PI_u4f28 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = byte0 PI_u4f28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = byte3 PI_u4f28 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -137,9 +137,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const dword PI_u4f28 = $3243f6a9 +__constant const unsigned long PI_u4f28 = $3243f6a9 void main() -constant byte* main::SCREEN = (byte*) 1024 +__constant char *main::SCREEN = (char *) 1024 diff --git a/src/test/ref/test-lohiconst.sym b/src/test/ref/test-lohiconst.sym index 22bb14f04..caa228731 100644 --- a/src/test/ref/test-lohiconst.sym +++ b/src/test/ref/test-lohiconst.sym @@ -1,4 +1,4 @@ -constant const dword PI_u4f28 = $3243f6a9 +__constant const unsigned long PI_u4f28 = $3243f6a9 void main() -constant byte* main::SCREEN = (byte*) 1024 +__constant char *main::SCREEN = (char *) 1024 diff --git a/src/test/ref/test-lowhigh.asm b/src/test/ref/test-lowhigh.asm index cc954731e..29c88f631 100644 --- a/src/test/ref/test-lowhigh.asm +++ b/src/test/ref/test-lowhigh.asm @@ -172,7 +172,7 @@ print_cls: { rts } // Print a unsigned long as HEX -// print_ulong(dword zp($c) dw) +// void print_ulong(__zp($c) unsigned long dw) print_ulong: { .label dw = $c // print_uint(WORD1(dw)) @@ -196,7 +196,7 @@ print_ulong: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -210,7 +210,7 @@ print_char: { rts } // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) @@ -223,7 +223,7 @@ print_uint: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa @@ -274,6 +274,7 @@ print_ln: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 diff --git a/src/test/ref/test-lowhigh.cfg b/src/test/ref/test-lowhigh.cfg index c01ca983f..5a982caa4 100644 --- a/src/test/ref/test-lowhigh.cfg +++ b/src/test/ref/test-lowhigh.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@16 [2] print_char_cursor#30 = phi( main::@16/print_line_cursor#0, main/print_screen#0 ) @@ -21,59 +21,59 @@ main::@2: scope:[main] from main::@1 [9] main::$29 = main::$6 + $1111 [10] main::dw2#10 = main::dw2#1 word0= main::$29 [11] print_ulong::dw#0 = main::dw2#10 - [12] call print_ulong + [12] call print_ulong to:main::@3 main::@3: scope:[main] from main::@2 [13] phi() - [14] call print_char + [14] call print_char to:main::@4 main::@4: scope:[main] from main::@3 [15] print_uint::w#2 = word1 main::dw2#10 - [16] call print_uint + [16] call print_uint to:main::@5 main::@5: scope:[main] from main::@4 [17] phi() - [18] call print_char + [18] call print_char to:main::@6 main::@6: scope:[main] from main::@5 [19] print_uint::w#3 = word0 main::dw2#10 - [20] call print_uint + [20] call print_uint to:main::@7 main::@7: scope:[main] from main::@6 [21] phi() - [22] call print_char + [22] call print_char to:main::@8 main::@8: scope:[main] from main::@7 [23] print_uchar::b#2 = byte3 main::dw2#10 - [24] call print_uchar + [24] call print_uchar to:main::@9 main::@9: scope:[main] from main::@8 [25] phi() - [26] call print_char + [26] call print_char to:main::@10 main::@10: scope:[main] from main::@9 [27] print_uchar::b#3 = byte2 main::dw2#10 - [28] call print_uchar + [28] call print_uchar to:main::@11 main::@11: scope:[main] from main::@10 [29] phi() - [30] call print_char + [30] call print_char to:main::@12 main::@12: scope:[main] from main::@11 [31] print_uchar::b#4 = byte1 main::dw2#10 - [32] call print_uchar + [32] call print_uchar to:main::@13 main::@13: scope:[main] from main::@12 [33] phi() - [34] call print_char + [34] call print_char to:main::@14 main::@14: scope:[main] from main::@13 [35] print_uchar::b#5 = byte0 main::dw2#10 - [36] call print_uchar + [36] call print_uchar to:main::@15 main::@15: scope:[main] from main::@14 [37] phi() - [38] call print_ln + [38] call print_ln to:main::@16 main::@16: scope:[main] from main::@15 [39] main::dw#1 = ++ main::dw#10 @@ -83,27 +83,27 @@ main::@16: scope:[main] from main::@15 void print_cls() print_cls: scope:[print_cls] from main [41] phi() - [42] call memset + [42] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [43] return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from main::@2 [44] print_uint::w#0 = word1 print_ulong::dw#0 [45] print_char_cursor#76 = print_char_cursor#30 - [46] call print_uint + [46] call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong [47] print_uint::w#1 = word0 print_ulong::dw#0 - [48] call print_uint + [48] call print_uint to:print_ulong::@return print_ulong::@return: scope:[print_ulong] from print_ulong::@1 [49] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@11 main::@13 main::@3 main::@5 main::@7 main::@9 print_uchar print_uchar::@1 [50] print_char_cursor#45 = phi( main::@9/print_char_cursor#11, main::@11/print_char_cursor#11, main::@13/print_char_cursor#11, main::@3/print_char_cursor#11, main::@5/print_char_cursor#11, main::@7/print_char_cursor#11, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#11 ) [50] print_char::ch#8 = phi( main::@9/' ', main::@11/' ', main::@13/' ', main::@3/' ', main::@5/' ', main::@7/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -114,33 +114,33 @@ print_char::@return: scope:[print_char] from print_char [53] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@4 main::@6 print_ulong print_ulong::@1 [54] print_char_cursor#67 = phi( main::@4/print_char_cursor#11, main::@6/print_char_cursor#11, print_ulong/print_char_cursor#76, print_ulong::@1/print_char_cursor#11 ) [54] print_uint::w#4 = phi( main::@4/print_uint::w#2, main::@6/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 ) [55] print_uchar::b#0 = byte1 print_uint::w#4 - [56] call print_uchar + [56] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [57] print_uchar::b#1 = byte0 print_uint::w#4 - [58] call print_uchar + [58] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [59] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@10 main::@12 main::@14 main::@8 print_uint print_uint::@1 [60] print_char_cursor#69 = phi( main::@10/print_char_cursor#11, main::@12/print_char_cursor#11, main::@14/print_char_cursor#11, main::@8/print_char_cursor#11, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#11 ) [60] print_uchar::b#6 = phi( main::@10/print_uchar::b#3, main::@12/print_uchar::b#4, main::@14/print_uchar::b#5, main::@8/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [61] print_uchar::$0 = print_uchar::b#6 >> 4 [62] print_char::ch#0 = print_hextab[print_uchar::$0] - [63] call print_char + [63] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [64] print_uchar::$2 = print_uchar::b#6 & $f [65] print_char::ch#1 = print_hextab[print_uchar::$2] - [66] call print_char + [66] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [67] return @@ -162,12 +162,12 @@ print_ln::@2: scope:[print_ln] from print_ln::@1 [73] print_line_cursor#38 = print_line_cursor#0 to:print_ln::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [74] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [75] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [75] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [76] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log index db187b962..cb020e079 100644 --- a/src/test/ref/test-lowhigh.log +++ b/src/test/ref/test-lowhigh.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA @@ -28,13 +28,13 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@5 main::@7 print_ulong print_ulong::@1 print_char_cursor#67 = phi( main::@5/print_char_cursor#17, main::@7/print_char_cursor#19, print_ulong/print_char_cursor#68, print_ulong::@1/print_char_cursor#5 ) print_uint::w#4 = phi( main::@5/print_uint::w#2, main::@7/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 ) print_uint::$0 = byte1 print_uint::w#4 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#5 = phi( print_uint/print_uint::w#4 ) @@ -42,7 +42,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#2 = print_char_cursor#36 print_uint::$2 = byte0 print_uint::w#5 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#37 = phi( print_uint::@1/print_char_cursor#10 ) @@ -54,13 +54,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from main::@2 print_char_cursor#68 = phi( main::@2/print_char_cursor#71 ) print_ulong::dw#1 = phi( main::@2/print_ulong::dw#0 ) print_ulong::$0 = word1 print_ulong::dw#1 print_uint::w#0 = print_ulong::$0 - call print_uint + call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong print_ulong::dw#2 = phi( print_ulong/print_ulong::dw#1 ) @@ -68,7 +68,7 @@ print_ulong::@1: scope:[print_ulong] from print_ulong print_char_cursor#5 = print_char_cursor#39 print_ulong::$2 = word0 print_ulong::dw#2 print_uint::w#1 = print_ulong::$2 - call print_uint + call print_uint to:print_ulong::@2 print_ulong::@2: scope:[print_ulong] from print_ulong::@1 print_char_cursor#40 = phi( print_ulong::@1/print_char_cursor#4 ) @@ -80,13 +80,13 @@ print_ulong::@return: scope:[print_ulong] from print_ulong::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@11 main::@13 main::@15 main::@9 print_uint print_uint::@1 print_char_cursor#69 = phi( main::@11/print_char_cursor#23, main::@13/print_char_cursor#25, main::@15/print_char_cursor#27, main::@9/print_char_cursor#21, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#2 ) print_uchar::b#6 = phi( main::@11/print_uchar::b#3, main::@13/print_uchar::b#4, main::@15/print_uchar::b#5, main::@9/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#6 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#7 = phi( print_uchar/print_uchar::b#6 ) @@ -94,7 +94,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#8 = print_char_cursor#42 print_uchar::$2 = print_uchar::b#7 & $f print_char::ch#1 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#43 = phi( print_uchar::@1/print_char_cursor#12 ) @@ -106,7 +106,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@10 main::@12 main::@14 main::@4 main::@6 main::@8 print_uchar print_uchar::@1 print_char_cursor#45 = phi( main::@10/print_char_cursor#22, main::@12/print_char_cursor#24, main::@14/print_char_cursor#26, main::@4/print_char_cursor#16, main::@6/print_char_cursor#18, main::@8/print_char_cursor#20, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#8 ) print_char::ch#8 = phi( main::@10/print_char::ch#5, main::@12/print_char::ch#6, main::@14/print_char::ch#7, main::@4/print_char::ch#2, main::@6/print_char::ch#3, main::@8/print_char::ch#4, print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -122,10 +122,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -141,7 +141,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -158,9 +158,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -189,7 +189,7 @@ main: scope:[main] from __start::@1 print_char_cursor#70 = phi( __start::@1/print_char_cursor#73 ) print_line_cursor#20 = phi( __start::@1/print_line_cursor#23 ) print_screen#5 = phi( __start::@1/print_screen#7 ) - call print_cls + call print_cls to:main::@3 main::@3: scope:[main] from main print_char_cursor#48 = phi( main/print_char_cursor#14 ) @@ -219,7 +219,7 @@ main::@2: scope:[main] from main::@1 main::$29 = main::$7 main::dw2#2 = main::dw2#1 word0= main::$29 print_ulong::dw#0 = main::dw2#2 - call print_ulong + call print_ulong to:main::@4 main::@4: scope:[main] from main::@2 main::dw#17 = phi( main::@2/main::dw#3 ) @@ -228,7 +228,7 @@ main::@4: scope:[main] from main::@2 print_char_cursor#49 = phi( main::@2/print_char_cursor#7 ) print_char_cursor#16 = print_char_cursor#49 print_char::ch#2 = ' ' - call print_char + call print_char to:main::@5 main::@5: scope:[main] from main::@4 main::dw#16 = phi( main::@4/main::dw#17 ) @@ -238,7 +238,7 @@ main::@5: scope:[main] from main::@4 print_char_cursor#17 = print_char_cursor#50 main::$10 = word1 main::dw2#3 print_uint::w#2 = main::$10 - call print_uint + call print_uint to:main::@6 main::@6: scope:[main] from main::@5 main::dw#15 = phi( main::@5/main::dw#16 ) @@ -247,7 +247,7 @@ main::@6: scope:[main] from main::@5 print_char_cursor#51 = phi( main::@5/print_char_cursor#4 ) print_char_cursor#18 = print_char_cursor#51 print_char::ch#3 = ' ' - call print_char + call print_char to:main::@7 main::@7: scope:[main] from main::@6 main::dw#14 = phi( main::@6/main::dw#15 ) @@ -257,7 +257,7 @@ main::@7: scope:[main] from main::@6 print_char_cursor#19 = print_char_cursor#52 main::$13 = word0 main::dw2#4 print_uint::w#3 = main::$13 - call print_uint + call print_uint to:main::@8 main::@8: scope:[main] from main::@7 main::dw#13 = phi( main::@7/main::dw#14 ) @@ -266,7 +266,7 @@ main::@8: scope:[main] from main::@7 print_char_cursor#53 = phi( main::@7/print_char_cursor#4 ) print_char_cursor#20 = print_char_cursor#53 print_char::ch#4 = ' ' - call print_char + call print_char to:main::@9 main::@9: scope:[main] from main::@8 main::dw#12 = phi( main::@8/main::dw#13 ) @@ -276,7 +276,7 @@ main::@9: scope:[main] from main::@8 print_char_cursor#21 = print_char_cursor#54 main::$16 = byte3 main::dw2#5 print_uchar::b#2 = main::$16 - call print_uchar + call print_uchar to:main::@10 main::@10: scope:[main] from main::@9 main::dw#11 = phi( main::@9/main::dw#12 ) @@ -285,7 +285,7 @@ main::@10: scope:[main] from main::@9 print_char_cursor#55 = phi( main::@9/print_char_cursor#10 ) print_char_cursor#22 = print_char_cursor#55 print_char::ch#5 = ' ' - call print_char + call print_char to:main::@11 main::@11: scope:[main] from main::@10 main::dw#10 = phi( main::@10/main::dw#11 ) @@ -295,7 +295,7 @@ main::@11: scope:[main] from main::@10 print_char_cursor#23 = print_char_cursor#56 main::$19 = byte2 main::dw2#6 print_uchar::b#3 = main::$19 - call print_uchar + call print_uchar to:main::@12 main::@12: scope:[main] from main::@11 main::dw#9 = phi( main::@11/main::dw#10 ) @@ -304,7 +304,7 @@ main::@12: scope:[main] from main::@11 print_char_cursor#57 = phi( main::@11/print_char_cursor#10 ) print_char_cursor#24 = print_char_cursor#57 print_char::ch#6 = ' ' - call print_char + call print_char to:main::@13 main::@13: scope:[main] from main::@12 main::dw#8 = phi( main::@12/main::dw#9 ) @@ -314,7 +314,7 @@ main::@13: scope:[main] from main::@12 print_char_cursor#25 = print_char_cursor#58 main::$22 = byte1 main::dw2#7 print_uchar::b#4 = main::$22 - call print_uchar + call print_uchar to:main::@14 main::@14: scope:[main] from main::@13 main::dw#7 = phi( main::@13/main::dw#8 ) @@ -323,7 +323,7 @@ main::@14: scope:[main] from main::@13 print_char_cursor#59 = phi( main::@13/print_char_cursor#10 ) print_char_cursor#26 = print_char_cursor#59 print_char::ch#7 = ' ' - call print_char + call print_char to:main::@15 main::@15: scope:[main] from main::@14 main::dw#6 = phi( main::@14/main::dw#7 ) @@ -333,14 +333,14 @@ main::@15: scope:[main] from main::@14 print_char_cursor#27 = print_char_cursor#60 main::$25 = byte0 main::dw2#8 print_uchar::b#5 = main::$25 - call print_uchar + call print_uchar to:main::@16 main::@16: scope:[main] from main::@15 main::dw#5 = phi( main::@15/main::dw#6 ) print_line_cursor#21 = phi( main::@15/print_line_cursor#24 ) print_char_cursor#61 = phi( main::@15/print_char_cursor#10 ) print_char_cursor#28 = print_char_cursor#61 - call print_ln + call print_ln to:main::@17 main::@17: scope:[main] from main::@16 main::dw#4 = phi( main::@16/main::dw#5 ) @@ -362,7 +362,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#31 = print_line_cursor#7 to:__start::@1 @@ -370,7 +370,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#73 = phi( __start::__init1/print_char_cursor#31 ) print_line_cursor#23 = phi( __start::__init1/print_line_cursor#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -390,263 +390,263 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void main() -bool~ main::$1 -word~ main::$10 -word~ main::$13 -byte~ main::$16 -byte~ main::$19 -byte~ main::$22 -byte~ main::$25 -word~ main::$28 -word~ main::$29 -word~ main::$3 -number~ main::$4 -word~ main::$6 -number~ main::$7 -dword main::dw -dword main::dw#0 -dword main::dw#1 -dword main::dw#10 -dword main::dw#11 -dword main::dw#12 -dword main::dw#13 -dword main::dw#14 -dword main::dw#15 -dword main::dw#16 -dword main::dw#17 -dword main::dw#2 -dword main::dw#3 -dword main::dw#4 -dword main::dw#5 -dword main::dw#6 -dword main::dw#7 -dword main::dw#8 -dword main::dw#9 -dword main::dw2 -dword main::dw2#0 -dword main::dw2#1 -dword main::dw2#10 -dword main::dw2#11 -dword main::dw2#12 -dword main::dw2#13 -dword main::dw2#14 -dword main::dw2#2 -dword main::dw2#3 -dword main::dw2#4 -dword main::dw2#5 -dword main::dw2#6 -dword main::dw2#7 -dword main::dw2#8 -dword main::dw2#9 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte print_char::ch#6 -byte print_char::ch#7 -byte print_char::ch#8 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#58 -byte* print_char_cursor#59 -byte* print_char_cursor#6 -byte* print_char_cursor#60 -byte* print_char_cursor#61 -byte* print_char_cursor#62 -byte* print_char_cursor#63 -byte* print_char_cursor#64 -byte* print_char_cursor#65 -byte* print_char_cursor#66 -byte* print_char_cursor#67 -byte* print_char_cursor#68 -byte* print_char_cursor#69 -byte* print_char_cursor#7 -byte* print_char_cursor#70 -byte* print_char_cursor#71 -byte* print_char_cursor#72 -byte* print_char_cursor#73 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +bool main::$1 +unsigned int main::$10 +unsigned int main::$13 +char main::$16 +char main::$19 +char main::$22 +char main::$25 +unsigned int main::$28 +unsigned int main::$29 +unsigned int main::$3 +number main::$4 +unsigned int main::$6 +number main::$7 +unsigned long main::dw +unsigned long main::dw#0 +unsigned long main::dw#1 +unsigned long main::dw#10 +unsigned long main::dw#11 +unsigned long main::dw#12 +unsigned long main::dw#13 +unsigned long main::dw#14 +unsigned long main::dw#15 +unsigned long main::dw#16 +unsigned long main::dw#17 +unsigned long main::dw#2 +unsigned long main::dw#3 +unsigned long main::dw#4 +unsigned long main::dw#5 +unsigned long main::dw#6 +unsigned long main::dw#7 +unsigned long main::dw#8 +unsigned long main::dw#9 +unsigned long main::dw2 +unsigned long main::dw2#0 +unsigned long main::dw2#1 +unsigned long main::dw2#10 +unsigned long main::dw2#11 +unsigned long main::dw2#12 +unsigned long main::dw2#13 +unsigned long main::dw2#14 +unsigned long main::dw2#2 +unsigned long main::dw2#3 +unsigned long main::dw2#4 +unsigned long main::dw2#5 +unsigned long main::dw2#6 +unsigned long main::dw2#7 +unsigned long main::dw2#8 +unsigned long main::dw2#9 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char print_char::ch#6 +char print_char::ch#7 +char print_char::ch#8 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#58 +char *print_char_cursor#59 +char *print_char_cursor#6 +char *print_char_cursor#60 +char *print_char_cursor#61 +char *print_char_cursor#62 +char *print_char_cursor#63 +char *print_char_cursor#64 +char *print_char_cursor#65 +char *print_char_cursor#66 +char *print_char_cursor#67 +char *print_char_cursor#68 +char *print_char_cursor#69 +char *print_char_cursor#7 +char *print_char_cursor#70 +char *print_char_cursor#71 +char *print_char_cursor#72 +char *print_char_cursor#73 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#35 -byte* print_line_cursor#36 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#35 +char *print_line_cursor#36 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -byte print_uchar::b#4 -byte print_uchar::b#5 -byte print_uchar::b#6 -byte print_uchar::b#7 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 -word print_uint::w#3 -word print_uint::w#4 -word print_uint::w#5 -void print_ulong(dword print_ulong::dw) -word~ print_ulong::$0 -word~ print_ulong::$2 -dword print_ulong::dw -dword print_ulong::dw#0 -dword print_ulong::dw#1 -dword print_ulong::dw#2 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +char print_uchar::b#4 +char print_uchar::b#5 +char print_uchar::b#6 +char print_uchar::b#7 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 +unsigned int print_uint::w#3 +unsigned int print_uint::w#4 +unsigned int print_uint::w#5 +void print_ulong(unsigned long dw) +unsigned int print_ulong::$0 +unsigned int print_ulong::$2 +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 +unsigned long print_ulong::dw#1 +unsigned long print_ulong::dw#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#6 >> 4 @@ -661,7 +661,7 @@ Adding number conversion cast (unumber) $1111 in main::$7 = main::$6 + $1111 Adding number conversion cast (unumber) main::$7 in main::$7 = main::$6 + (unumber)$1111 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $28 Simplifying constant integer cast 4 @@ -671,20 +671,20 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $12345690 Simplifying constant integer cast $1111 Simplifying constant integer cast $1111 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (dword) $12345690 -Finalized unsigned number type (word) $1111 -Finalized unsigned number type (word) $1111 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned long) $12345690 +Finalized unsigned number type (unsigned int) $1111 +Finalized unsigned number type (unsigned int) $1111 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#7 & $f -Inferred type updated to word in main::$4 = main::$3 + $1111 -Inferred type updated to word in main::$7 = main::$6 + $1111 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#7 & $f +Inferred type updated to unsigned int in main::$4 = main::$3 + $1111 +Inferred type updated to unsigned int in main::$7 = main::$6 + $1111 Inversing boolean not [75] memset::$1 = memset::num#1 <= 0 from [74] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#11 print_char_cursor#0 print_line_cursor#12 print_char_cursor#35 print_line_cursor#1 print_char_cursor#1 @@ -801,13 +801,13 @@ Constant print_char::ch#4 = ' ' Constant print_char::ch#5 = ' ' Constant print_char::ch#6 = ' ' Constant print_char::ch#7 = ' ' -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [45] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -836,16 +836,16 @@ Constant inlined print_char::ch#3 = ' ' Constant inlined print_char::ch#2 = ' ' Constant inlined print_char::ch#5 = ' ' Constant inlined print_char::ch#4 = ' ' -Constant inlined memset::$4 = (byte*)memset::str#0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined print_char::ch#7 = ' ' Constant inlined main::dw#0 = $12345678 Constant inlined print_char::ch#6 = ' ' Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main @@ -947,7 +947,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@16 [2] print_char_cursor#30 = phi( main::@16/print_line_cursor#0, main/print_screen#0 ) @@ -966,59 +966,59 @@ main::@2: scope:[main] from main::@1 [9] main::$29 = main::$6 + $1111 [10] main::dw2#10 = main::dw2#1 word0= main::$29 [11] print_ulong::dw#0 = main::dw2#10 - [12] call print_ulong + [12] call print_ulong to:main::@3 main::@3: scope:[main] from main::@2 [13] phi() - [14] call print_char + [14] call print_char to:main::@4 main::@4: scope:[main] from main::@3 [15] print_uint::w#2 = word1 main::dw2#10 - [16] call print_uint + [16] call print_uint to:main::@5 main::@5: scope:[main] from main::@4 [17] phi() - [18] call print_char + [18] call print_char to:main::@6 main::@6: scope:[main] from main::@5 [19] print_uint::w#3 = word0 main::dw2#10 - [20] call print_uint + [20] call print_uint to:main::@7 main::@7: scope:[main] from main::@6 [21] phi() - [22] call print_char + [22] call print_char to:main::@8 main::@8: scope:[main] from main::@7 [23] print_uchar::b#2 = byte3 main::dw2#10 - [24] call print_uchar + [24] call print_uchar to:main::@9 main::@9: scope:[main] from main::@8 [25] phi() - [26] call print_char + [26] call print_char to:main::@10 main::@10: scope:[main] from main::@9 [27] print_uchar::b#3 = byte2 main::dw2#10 - [28] call print_uchar + [28] call print_uchar to:main::@11 main::@11: scope:[main] from main::@10 [29] phi() - [30] call print_char + [30] call print_char to:main::@12 main::@12: scope:[main] from main::@11 [31] print_uchar::b#4 = byte1 main::dw2#10 - [32] call print_uchar + [32] call print_uchar to:main::@13 main::@13: scope:[main] from main::@12 [33] phi() - [34] call print_char + [34] call print_char to:main::@14 main::@14: scope:[main] from main::@13 [35] print_uchar::b#5 = byte0 main::dw2#10 - [36] call print_uchar + [36] call print_uchar to:main::@15 main::@15: scope:[main] from main::@14 [37] phi() - [38] call print_ln + [38] call print_ln to:main::@16 main::@16: scope:[main] from main::@15 [39] main::dw#1 = ++ main::dw#10 @@ -1028,27 +1028,27 @@ main::@16: scope:[main] from main::@15 void print_cls() print_cls: scope:[print_cls] from main [41] phi() - [42] call memset + [42] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [43] return to:@return -void print_ulong(dword print_ulong::dw) +void print_ulong(unsigned long dw) print_ulong: scope:[print_ulong] from main::@2 [44] print_uint::w#0 = word1 print_ulong::dw#0 [45] print_char_cursor#76 = print_char_cursor#30 - [46] call print_uint + [46] call print_uint to:print_ulong::@1 print_ulong::@1: scope:[print_ulong] from print_ulong [47] print_uint::w#1 = word0 print_ulong::dw#0 - [48] call print_uint + [48] call print_uint to:print_ulong::@return print_ulong::@return: scope:[print_ulong] from print_ulong::@1 [49] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@11 main::@13 main::@3 main::@5 main::@7 main::@9 print_uchar print_uchar::@1 [50] print_char_cursor#45 = phi( main::@9/print_char_cursor#11, main::@11/print_char_cursor#11, main::@13/print_char_cursor#11, main::@3/print_char_cursor#11, main::@5/print_char_cursor#11, main::@7/print_char_cursor#11, print_uchar/print_char_cursor#69, print_uchar::@1/print_char_cursor#11 ) [50] print_char::ch#8 = phi( main::@9/' ', main::@11/' ', main::@13/' ', main::@3/' ', main::@5/' ', main::@7/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) @@ -1059,33 +1059,33 @@ print_char::@return: scope:[print_char] from print_char [53] return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from main::@4 main::@6 print_ulong print_ulong::@1 [54] print_char_cursor#67 = phi( main::@4/print_char_cursor#11, main::@6/print_char_cursor#11, print_ulong/print_char_cursor#76, print_ulong::@1/print_char_cursor#11 ) [54] print_uint::w#4 = phi( main::@4/print_uint::w#2, main::@6/print_uint::w#3, print_ulong/print_uint::w#0, print_ulong::@1/print_uint::w#1 ) [55] print_uchar::b#0 = byte1 print_uint::w#4 - [56] call print_uchar + [56] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [57] print_uchar::b#1 = byte0 print_uint::w#4 - [58] call print_uchar + [58] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [59] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from main::@10 main::@12 main::@14 main::@8 print_uint print_uint::@1 [60] print_char_cursor#69 = phi( main::@10/print_char_cursor#11, main::@12/print_char_cursor#11, main::@14/print_char_cursor#11, main::@8/print_char_cursor#11, print_uint/print_char_cursor#67, print_uint::@1/print_char_cursor#11 ) [60] print_uchar::b#6 = phi( main::@10/print_uchar::b#3, main::@12/print_uchar::b#4, main::@14/print_uchar::b#5, main::@8/print_uchar::b#2, print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [61] print_uchar::$0 = print_uchar::b#6 >> 4 [62] print_char::ch#0 = print_hextab[print_uchar::$0] - [63] call print_char + [63] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [64] print_uchar::$2 = print_uchar::b#6 & $f [65] print_char::ch#1 = print_hextab[print_uchar::$2] - [66] call print_char + [66] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [67] return @@ -1107,12 +1107,12 @@ print_ln::@2: scope:[print_ln] from print_ln::@1 [73] print_line_cursor#38 = print_line_cursor#0 to:print_ln::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [74] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [75] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [75] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [76] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -1126,67 +1126,67 @@ memset::@2: scope:[memset] from memset::@1 VARIABLE REGISTER WEIGHTS void main() -word~ main::$28 22.0 -word~ main::$29 22.0 -word~ main::$3 22.0 -word~ main::$6 22.0 -dword main::dw -dword main::dw#1 11.0 -dword main::dw#10 1.8333333333333335 -dword main::dw2 -dword main::dw2#1 7.333333333333333 -dword main::dw2#10 3.52 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 20002.0 -byte print_char::ch#1 20002.0 -byte print_char::ch#8 120003.0 -byte* print_char_cursor -byte* print_char_cursor#11 2635.5869565217386 -byte* print_char_cursor#30 11.2 -byte* print_char_cursor#45 110035.0 -byte* print_char_cursor#67 612.5 -byte* print_char_cursor#69 4015.6666666666656 -byte* print_char_cursor#76 202.0 +unsigned int main::$28 // 22.0 +unsigned int main::$29 // 22.0 +unsigned int main::$3 // 22.0 +unsigned int main::$6 // 22.0 +unsigned long main::dw +unsigned long main::dw#1 // 11.0 +unsigned long main::dw#10 // 1.8333333333333335 +unsigned long main::dw2 +unsigned long main::dw2#1 // 7.333333333333333 +unsigned long main::dw2#10 // 3.52 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 20002.0 +char print_char::ch#1 // 20002.0 +char print_char::ch#8 // 120003.0 +char *print_char_cursor +char *print_char_cursor#11 // 2635.5869565217386 +char *print_char_cursor#30 // 11.2 +char *print_char_cursor#45 // 110035.0 +char *print_char_cursor#67 // 612.5 +char *print_char_cursor#69 // 4015.6666666666656 +char *print_char_cursor#76 // 202.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 5004.166666666666 -byte* print_line_cursor#10 20103.0 -byte* print_line_cursor#16 3.1111111111111107 -byte* print_line_cursor#38 20002.0 -byte* print_line_cursor#39 22.0 +char *print_line_cursor +char *print_line_cursor#0 // 5004.166666666666 +char *print_line_cursor#10 // 20103.0 +char *print_line_cursor#16 // 3.1111111111111107 +char *print_line_cursor#38 // 20002.0 +char *print_line_cursor#39 // 22.0 void print_ln() -byte* print_screen -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 22.0 -byte print_uchar::b#3 22.0 -byte print_uchar::b#4 22.0 -byte print_uchar::b#5 22.0 -byte print_uchar::b#6 5512.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 101.0 -word print_uint::w#1 202.0 -word print_uint::w#2 22.0 -word print_uint::w#3 22.0 -word print_uint::w#4 742.0 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 53.25 +char *print_screen +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 22.0 +char print_uchar::b#3 // 22.0 +char print_uchar::b#4 // 22.0 +char print_uchar::b#5 // 22.0 +char print_uchar::b#6 // 5512.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 101.0 +unsigned int print_uint::w#1 // 202.0 +unsigned int print_uint::w#2 // 22.0 +unsigned int print_uint::w#3 // 22.0 +unsigned int print_uint::w#4 // 742.0 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // 53.25 Initial phi equivalence classes [ main::dw#10 main::dw#1 ] @@ -1369,7 +1369,7 @@ main: { .label __29 = $10 .label dw2 = $c .label dw = 2 - // [1] call print_cls + // [1] call print_cls // [41] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -1458,7 +1458,7 @@ main: { lda.z __29+1 sta.z dw2+1 // [11] print_ulong::dw#0 = main::dw2#10 - // [12] call print_ulong + // [12] call print_ulong // Test set/get low word of dword jsr print_ulong // [13] phi from main::@2 to main::@3 [phi:main::@2->main::@3] @@ -1466,7 +1466,7 @@ main: { jmp __b3 // main::@3 __b3: - // [14] call print_char + // [14] call print_char // [50] phi from main::@3 to print_char [phi:main::@3->print_char] print_char_from___b3: // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@3->print_char#0] -- register_copy @@ -1481,7 +1481,7 @@ main: { sta.z print_uint.w lda.z dw2+3 sta.z print_uint.w+1 - // [16] call print_uint + // [16] call print_uint // [54] phi from main::@4 to print_uint [phi:main::@4->print_uint] print_uint_from___b4: // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@4->print_uint#0] -- register_copy @@ -1492,7 +1492,7 @@ main: { jmp __b5 // main::@5 __b5: - // [18] call print_char + // [18] call print_char // Test get high word of dword // [50] phi from main::@5 to print_char [phi:main::@5->print_char] print_char_from___b5: @@ -1508,7 +1508,7 @@ main: { sta.z print_uint.w lda.z dw2+1 sta.z print_uint.w+1 - // [20] call print_uint + // [20] call print_uint // [54] phi from main::@6 to print_uint [phi:main::@6->print_uint] print_uint_from___b6: // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@6->print_uint#0] -- register_copy @@ -1519,7 +1519,7 @@ main: { jmp __b7 // main::@7 __b7: - // [22] call print_char + // [22] call print_char // Test get low word of dword // [50] phi from main::@7 to print_char [phi:main::@7->print_char] print_char_from___b7: @@ -1532,7 +1532,7 @@ main: { __b8: // [23] print_uchar::b#2 = byte3 main::dw2#10 -- vbuxx=_byte3_vduz1 ldx.z dw2+3 - // [24] call print_uchar + // [24] call print_uchar // [60] phi from main::@8 to print_uchar [phi:main::@8->print_uchar] print_uchar_from___b8: // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@8->print_uchar#0] -- register_copy @@ -1543,7 +1543,7 @@ main: { jmp __b9 // main::@9 __b9: - // [26] call print_char + // [26] call print_char // Test get high high byte of dword // [50] phi from main::@9 to print_char [phi:main::@9->print_char] print_char_from___b9: @@ -1556,7 +1556,7 @@ main: { __b10: // [27] print_uchar::b#3 = byte2 main::dw2#10 -- vbuxx=_byte2_vduz1 ldx.z dw2+2 - // [28] call print_uchar + // [28] call print_uchar // [60] phi from main::@10 to print_uchar [phi:main::@10->print_uchar] print_uchar_from___b10: // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@10->print_uchar#0] -- register_copy @@ -1567,7 +1567,7 @@ main: { jmp __b11 // main::@11 __b11: - // [30] call print_char + // [30] call print_char // Test get low high byte of dword // [50] phi from main::@11 to print_char [phi:main::@11->print_char] print_char_from___b11: @@ -1580,7 +1580,7 @@ main: { __b12: // [31] print_uchar::b#4 = byte1 main::dw2#10 -- vbuxx=_byte1_vduz1 ldx.z dw2+1 - // [32] call print_uchar + // [32] call print_uchar // [60] phi from main::@12 to print_uchar [phi:main::@12->print_uchar] print_uchar_from___b12: // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@12->print_uchar#0] -- register_copy @@ -1591,7 +1591,7 @@ main: { jmp __b13 // main::@13 __b13: - // [34] call print_char + // [34] call print_char // Test get high low byte of dword // [50] phi from main::@13 to print_char [phi:main::@13->print_char] print_char_from___b13: @@ -1604,7 +1604,7 @@ main: { __b14: // [35] print_uchar::b#5 = byte0 main::dw2#10 -- vbuxx=_byte0_vduz1 ldx.z dw2 - // [36] call print_uchar + // [36] call print_uchar // [60] phi from main::@14 to print_uchar [phi:main::@14->print_uchar] print_uchar_from___b14: // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@14->print_uchar#0] -- register_copy @@ -1615,7 +1615,7 @@ main: { jmp __b15 // main::@15 __b15: - // [38] call print_ln + // [38] call print_ln // Test get low low byte of dword // [68] phi from main::@15 to print_ln [phi:main::@15->print_ln] print_ln_from___b15: @@ -1647,7 +1647,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [42] call memset + // [42] call memset // [74] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1659,7 +1659,7 @@ print_cls: { } // print_ulong // Print a unsigned long as HEX -// print_ulong(dword zp($c) dw) +// void print_ulong(__zp($c) unsigned long dw) print_ulong: { .label dw = $c // [44] print_uint::w#0 = word1 print_ulong::dw#0 -- vwuz1=_word1_vduz2 @@ -1672,7 +1672,7 @@ print_ulong: { sta.z print_char_cursor lda.z print_char_cursor_1+1 sta.z print_char_cursor+1 - // [46] call print_uint + // [46] call print_uint // [54] phi from print_ulong to print_uint [phi:print_ulong->print_uint] print_uint_from_print_ulong: // [54] phi print_char_cursor#67 = print_char_cursor#76 [phi:print_ulong->print_uint#0] -- register_copy @@ -1686,7 +1686,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+1 sta.z print_uint.w+1 - // [48] call print_uint + // [48] call print_uint // [54] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint] print_uint_from___b1: // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:print_ulong::@1->print_uint#0] -- register_copy @@ -1700,7 +1700,7 @@ print_ulong: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [51] *print_char_cursor#45 = print_char::ch#8 -- _deref_pbuz1=vbuaa ldy #0 @@ -1718,12 +1718,12 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // [55] print_uchar::b#0 = byte1 print_uint::w#4 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [56] call print_uchar + // [56] call print_uchar // [60] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [60] phi print_char_cursor#69 = print_char_cursor#67 [phi:print_uint->print_uchar#0] -- register_copy @@ -1734,7 +1734,7 @@ print_uint: { __b1: // [57] print_uchar::b#1 = byte0 print_uint::w#4 -- vbuxx=_byte0_vwuz1 ldx.z w - // [58] call print_uchar + // [58] call print_uchar // [60] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1748,7 +1748,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [61] print_uchar::$0 = print_uchar::b#6 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1759,7 +1759,7 @@ print_uchar: { // [62] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [63] call print_char + // [63] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1774,7 +1774,7 @@ print_uchar: { axs #0 // [65] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [66] call print_char + // [66] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1829,6 +1829,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1837,7 +1838,7 @@ memset: { .label dst = 8 // [75] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [75] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [75] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1973,78 +1974,78 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -word~ main::$28 zp[2]:10 22.0 -word~ main::$29 zp[2]:16 22.0 -word~ main::$3 zp[2]:10 22.0 -word~ main::$6 zp[2]:16 22.0 -dword main::dw -dword main::dw#1 dw zp[4]:2 11.0 -dword main::dw#10 dw zp[4]:2 1.8333333333333335 -dword main::dw2 -dword main::dw2#1 dw2 zp[4]:12 7.333333333333333 -dword main::dw2#10 dw2 zp[4]:12 3.52 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2002.0 -byte* memset::dst#2 dst zp[2]:8 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#8 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#11 print_char_cursor zp[2]:16 2635.5869565217386 -byte* print_char_cursor#30 print_char_cursor_1 zp[2]:8 11.2 -byte* print_char_cursor#45 print_char_cursor zp[2]:16 110035.0 -byte* print_char_cursor#67 print_char_cursor zp[2]:16 612.5 -byte* print_char_cursor#69 print_char_cursor zp[2]:16 4015.6666666666656 -byte* print_char_cursor#76 print_char_cursor zp[2]:16 202.0 +unsigned int main::$28 // zp[2]:10 22.0 +unsigned int main::$29 // zp[2]:16 22.0 +unsigned int main::$3 // zp[2]:10 22.0 +unsigned int main::$6 // zp[2]:16 22.0 +unsigned long main::dw +unsigned long main::dw#1 // dw zp[4]:2 11.0 +unsigned long main::dw#10 // dw zp[4]:2 1.8333333333333335 +unsigned long main::dw2 +unsigned long main::dw2#1 // dw2 zp[4]:12 7.333333333333333 +unsigned long main::dw2#10 // dw2 zp[4]:12 3.52 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2002.0 +char *memset::dst#2 // dst zp[2]:8 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#8 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#11 // print_char_cursor zp[2]:16 2635.5869565217386 +char *print_char_cursor#30 // print_char_cursor_1 zp[2]:8 11.2 +char *print_char_cursor#45 // print_char_cursor zp[2]:16 110035.0 +char *print_char_cursor#67 // print_char_cursor zp[2]:16 612.5 +char *print_char_cursor#69 // print_char_cursor zp[2]:16 4015.6666666666656 +char *print_char_cursor#76 // print_char_cursor zp[2]:16 202.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:8 5004.166666666666 -byte* print_line_cursor#10 print_line_cursor_1 zp[2]:6 20103.0 -byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 3.1111111111111107 -byte* print_line_cursor#38 print_line_cursor_1 zp[2]:6 20002.0 -byte* print_line_cursor#39 print_line_cursor_1 zp[2]:6 22.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:8 5004.166666666666 +char *print_line_cursor#10 // print_line_cursor_1 zp[2]:6 20103.0 +char *print_line_cursor#16 // print_line_cursor_1 zp[2]:6 3.1111111111111107 +char *print_line_cursor#38 // print_line_cursor_1 zp[2]:6 20002.0 +char *print_line_cursor#39 // print_line_cursor_1 zp[2]:6 22.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 22.0 -byte print_uchar::b#3 reg byte x 22.0 -byte print_uchar::b#4 reg byte x 22.0 -byte print_uchar::b#5 reg byte x 22.0 -byte print_uchar::b#6 reg byte x 5512.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 101.0 -word print_uint::w#1 w zp[2]:10 202.0 -word print_uint::w#2 w zp[2]:10 22.0 -word print_uint::w#3 w zp[2]:10 22.0 -word print_uint::w#4 w zp[2]:10 742.0 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 dw zp[4]:12 53.25 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 22.0 +char print_uchar::b#3 // reg byte x 22.0 +char print_uchar::b#4 // reg byte x 22.0 +char print_uchar::b#5 // reg byte x 22.0 +char print_uchar::b#6 // reg byte x 5512.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 101.0 +unsigned int print_uint::w#1 // w zp[2]:10 202.0 +unsigned int print_uint::w#2 // w zp[2]:10 22.0 +unsigned int print_uint::w#3 // w zp[2]:10 22.0 +unsigned int print_uint::w#4 // w zp[2]:10 742.0 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // dw zp[4]:12 53.25 zp[4]:2 [ main::dw#10 main::dw#1 ] reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] @@ -2091,7 +2092,7 @@ main: { .label dw2 = $c .label dw = 2 // print_cls() - // [1] call print_cls + // [1] call print_cls // [41] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] @@ -2182,13 +2183,13 @@ main: { sta.z dw2+1 // print_ulong(dw2) // [11] print_ulong::dw#0 = main::dw2#10 - // [12] call print_ulong + // [12] call print_ulong // Test set/get low word of dword jsr print_ulong // [13] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // print_char(' ') - // [14] call print_char + // [14] call print_char // [50] phi from main::@3 to print_char [phi:main::@3->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@3->print_char#0] -- register_copy // [50] phi print_char::ch#8 = ' ' [phi:main::@3->print_char#1] -- vbuaa=vbuc1 @@ -2201,7 +2202,7 @@ main: { sta.z print_uint.w lda.z dw2+3 sta.z print_uint.w+1 - // [16] call print_uint + // [16] call print_uint // [54] phi from main::@4 to print_uint [phi:main::@4->print_uint] // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@4->print_uint#0] -- register_copy // [54] phi print_uint::w#4 = print_uint::w#2 [phi:main::@4->print_uint#1] -- register_copy @@ -2209,7 +2210,7 @@ main: { // [17] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // print_char(' ') - // [18] call print_char + // [18] call print_char // Test get high word of dword // [50] phi from main::@5 to print_char [phi:main::@5->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@5->print_char#0] -- register_copy @@ -2223,7 +2224,7 @@ main: { sta.z print_uint.w lda.z dw2+1 sta.z print_uint.w+1 - // [20] call print_uint + // [20] call print_uint // [54] phi from main::@6 to print_uint [phi:main::@6->print_uint] // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:main::@6->print_uint#0] -- register_copy // [54] phi print_uint::w#4 = print_uint::w#3 [phi:main::@6->print_uint#1] -- register_copy @@ -2231,7 +2232,7 @@ main: { // [21] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // print_char(' ') - // [22] call print_char + // [22] call print_char // Test get low word of dword // [50] phi from main::@7 to print_char [phi:main::@7->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@7->print_char#0] -- register_copy @@ -2242,7 +2243,7 @@ main: { // print_uchar(BYTE3(dw2)) // [23] print_uchar::b#2 = byte3 main::dw2#10 -- vbuxx=_byte3_vduz1 ldx.z dw2+3 - // [24] call print_uchar + // [24] call print_uchar // [60] phi from main::@8 to print_uchar [phi:main::@8->print_uchar] // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@8->print_uchar#0] -- register_copy // [60] phi print_uchar::b#6 = print_uchar::b#2 [phi:main::@8->print_uchar#1] -- register_copy @@ -2250,7 +2251,7 @@ main: { // [25] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // print_char(' ') - // [26] call print_char + // [26] call print_char // Test get high high byte of dword // [50] phi from main::@9 to print_char [phi:main::@9->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@9->print_char#0] -- register_copy @@ -2261,7 +2262,7 @@ main: { // print_uchar(BYTE2(dw2)) // [27] print_uchar::b#3 = byte2 main::dw2#10 -- vbuxx=_byte2_vduz1 ldx.z dw2+2 - // [28] call print_uchar + // [28] call print_uchar // [60] phi from main::@10 to print_uchar [phi:main::@10->print_uchar] // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@10->print_uchar#0] -- register_copy // [60] phi print_uchar::b#6 = print_uchar::b#3 [phi:main::@10->print_uchar#1] -- register_copy @@ -2269,7 +2270,7 @@ main: { // [29] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // print_char(' ') - // [30] call print_char + // [30] call print_char // Test get low high byte of dword // [50] phi from main::@11 to print_char [phi:main::@11->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@11->print_char#0] -- register_copy @@ -2280,7 +2281,7 @@ main: { // print_uchar(BYTE1(dw2)) // [31] print_uchar::b#4 = byte1 main::dw2#10 -- vbuxx=_byte1_vduz1 ldx.z dw2+1 - // [32] call print_uchar + // [32] call print_uchar // [60] phi from main::@12 to print_uchar [phi:main::@12->print_uchar] // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@12->print_uchar#0] -- register_copy // [60] phi print_uchar::b#6 = print_uchar::b#4 [phi:main::@12->print_uchar#1] -- register_copy @@ -2288,7 +2289,7 @@ main: { // [33] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // print_char(' ') - // [34] call print_char + // [34] call print_char // Test get high low byte of dword // [50] phi from main::@13 to print_char [phi:main::@13->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:main::@13->print_char#0] -- register_copy @@ -2299,7 +2300,7 @@ main: { // print_uchar(BYTE0(dw2)) // [35] print_uchar::b#5 = byte0 main::dw2#10 -- vbuxx=_byte0_vduz1 ldx.z dw2 - // [36] call print_uchar + // [36] call print_uchar // [60] phi from main::@14 to print_uchar [phi:main::@14->print_uchar] // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:main::@14->print_uchar#0] -- register_copy // [60] phi print_uchar::b#6 = print_uchar::b#5 [phi:main::@14->print_uchar#1] -- register_copy @@ -2307,7 +2308,7 @@ main: { // [37] phi from main::@14 to main::@15 [phi:main::@14->main::@15] // main::@15 // print_ln() - // [38] call print_ln + // [38] call print_ln // Test get low low byte of dword // [68] phi from main::@15 to print_ln [phi:main::@15->print_ln] jsr print_ln @@ -2337,7 +2338,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [42] call memset + // [42] call memset // [74] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -2347,7 +2348,7 @@ print_cls: { } // print_ulong // Print a unsigned long as HEX -// print_ulong(dword zp($c) dw) +// void print_ulong(__zp($c) unsigned long dw) print_ulong: { .label dw = $c // print_uint(WORD1(dw)) @@ -2362,7 +2363,7 @@ print_ulong: { lda.z print_char_cursor_1+1 sta.z print_char_cursor+1 // print_uint(WORD1(dw)) - // [46] call print_uint + // [46] call print_uint // [54] phi from print_ulong to print_uint [phi:print_ulong->print_uint] // [54] phi print_char_cursor#67 = print_char_cursor#76 [phi:print_ulong->print_uint#0] -- register_copy // [54] phi print_uint::w#4 = print_uint::w#0 [phi:print_ulong->print_uint#1] -- register_copy @@ -2374,7 +2375,7 @@ print_ulong: { sta.z print_uint.w lda.z dw+1 sta.z print_uint.w+1 - // [48] call print_uint + // [48] call print_uint // [54] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint] // [54] phi print_char_cursor#67 = print_char_cursor#11 [phi:print_ulong::@1->print_uint#0] -- register_copy // [54] phi print_uint::w#4 = print_uint::w#1 [phi:print_ulong::@1->print_uint#1] -- register_copy @@ -2386,7 +2387,7 @@ print_ulong: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [51] *print_char_cursor#45 = print_char::ch#8 -- _deref_pbuz1=vbuaa @@ -2405,13 +2406,13 @@ print_char: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp($a) w) +// void print_uint(__zp($a) unsigned int w) print_uint: { .label w = $a // print_uchar(BYTE1(w)) // [55] print_uchar::b#0 = byte1 print_uint::w#4 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [56] call print_uchar + // [56] call print_uchar // [60] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [60] phi print_char_cursor#69 = print_char_cursor#67 [phi:print_uint->print_uchar#0] -- register_copy // [60] phi print_uchar::b#6 = print_uchar::b#0 [phi:print_uint->print_uchar#1] -- register_copy @@ -2420,7 +2421,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [57] print_uchar::b#1 = byte0 print_uint::w#4 -- vbuxx=_byte0_vwuz1 ldx.z w - // [58] call print_uchar + // [58] call print_uchar // [60] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [60] phi print_char_cursor#69 = print_char_cursor#11 [phi:print_uint::@1->print_uchar#0] -- register_copy // [60] phi print_uchar::b#6 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#1] -- register_copy @@ -2432,7 +2433,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [61] print_uchar::$0 = print_uchar::b#6 >> 4 -- vbuaa=vbuxx_ror_4 @@ -2445,7 +2446,7 @@ print_uchar: { // [62] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [63] call print_char + // [63] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#69 [phi:print_uchar->print_char#0] -- register_copy @@ -2459,7 +2460,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [65] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [66] call print_char + // [66] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [50] phi print_char_cursor#45 = print_char_cursor#11 [phi:print_uchar::@1->print_char#0] -- register_copy // [50] phi print_char::ch#8 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy @@ -2509,6 +2510,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -2516,7 +2518,7 @@ memset: { .label end = str+num .label dst = 8 // [75] phi from memset to memset::@1 [phi:memset->memset::@1] - // [75] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [75] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str diff --git a/src/test/ref/test-lowhigh.sym b/src/test/ref/test-lowhigh.sym index 06af7c820..9a1646c9e 100644 --- a/src/test/ref/test-lowhigh.sym +++ b/src/test/ref/test-lowhigh.sym @@ -1,75 +1,75 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -word~ main::$28 zp[2]:10 22.0 -word~ main::$29 zp[2]:16 22.0 -word~ main::$3 zp[2]:10 22.0 -word~ main::$6 zp[2]:16 22.0 -dword main::dw -dword main::dw#1 dw zp[4]:2 11.0 -dword main::dw#10 dw zp[4]:2 1.8333333333333335 -dword main::dw2 -dword main::dw2#1 dw2 zp[4]:12 7.333333333333333 -dword main::dw2#10 dw2 zp[4]:12 3.52 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:8 2002.0 -byte* memset::dst#2 dst zp[2]:8 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 20002.0 -byte print_char::ch#1 reg byte a 20002.0 -byte print_char::ch#8 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#11 print_char_cursor zp[2]:16 2635.5869565217386 -byte* print_char_cursor#30 print_char_cursor_1 zp[2]:8 11.2 -byte* print_char_cursor#45 print_char_cursor zp[2]:16 110035.0 -byte* print_char_cursor#67 print_char_cursor zp[2]:16 612.5 -byte* print_char_cursor#69 print_char_cursor zp[2]:16 4015.6666666666656 -byte* print_char_cursor#76 print_char_cursor zp[2]:16 202.0 +unsigned int main::$28 // zp[2]:10 22.0 +unsigned int main::$29 // zp[2]:16 22.0 +unsigned int main::$3 // zp[2]:10 22.0 +unsigned int main::$6 // zp[2]:16 22.0 +unsigned long main::dw +unsigned long main::dw#1 // dw zp[4]:2 11.0 +unsigned long main::dw#10 // dw zp[4]:2 1.8333333333333335 +unsigned long main::dw2 +unsigned long main::dw2#1 // dw2 zp[4]:12 7.333333333333333 +unsigned long main::dw2#10 // dw2 zp[4]:12 3.52 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:8 2002.0 +char *memset::dst#2 // dst zp[2]:8 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 20002.0 +char print_char::ch#1 // reg byte a 20002.0 +char print_char::ch#8 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#11 // print_char_cursor zp[2]:16 2635.5869565217386 +char *print_char_cursor#30 // print_char_cursor_1 zp[2]:8 11.2 +char *print_char_cursor#45 // print_char_cursor zp[2]:16 110035.0 +char *print_char_cursor#67 // print_char_cursor zp[2]:16 612.5 +char *print_char_cursor#69 // print_char_cursor zp[2]:16 4015.6666666666656 +char *print_char_cursor#76 // print_char_cursor zp[2]:16 202.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:8 5004.166666666666 -byte* print_line_cursor#10 print_line_cursor_1 zp[2]:6 20103.0 -byte* print_line_cursor#16 print_line_cursor_1 zp[2]:6 3.1111111111111107 -byte* print_line_cursor#38 print_line_cursor_1 zp[2]:6 20002.0 -byte* print_line_cursor#39 print_line_cursor_1 zp[2]:6 22.0 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:8 5004.166666666666 +char *print_line_cursor#10 // print_line_cursor_1 zp[2]:6 20103.0 +char *print_line_cursor#16 // print_line_cursor_1 zp[2]:6 3.1111111111111107 +char *print_line_cursor#38 // print_line_cursor_1 zp[2]:6 20002.0 +char *print_line_cursor#39 // print_line_cursor_1 zp[2]:6 22.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 22.0 -byte print_uchar::b#3 reg byte x 22.0 -byte print_uchar::b#4 reg byte x 22.0 -byte print_uchar::b#5 reg byte x 22.0 -byte print_uchar::b#6 reg byte x 5512.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:10 101.0 -word print_uint::w#1 w zp[2]:10 202.0 -word print_uint::w#2 w zp[2]:10 22.0 -word print_uint::w#3 w zp[2]:10 22.0 -word print_uint::w#4 w zp[2]:10 742.0 -void print_ulong(dword print_ulong::dw) -dword print_ulong::dw -dword print_ulong::dw#0 dw zp[4]:12 53.25 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 22.0 +char print_uchar::b#3 // reg byte x 22.0 +char print_uchar::b#4 // reg byte x 22.0 +char print_uchar::b#5 // reg byte x 22.0 +char print_uchar::b#6 // reg byte x 5512.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:10 101.0 +unsigned int print_uint::w#1 // w zp[2]:10 202.0 +unsigned int print_uint::w#2 // w zp[2]:10 22.0 +unsigned int print_uint::w#3 // w zp[2]:10 22.0 +unsigned int print_uint::w#4 // w zp[2]:10 742.0 +void print_ulong(unsigned long dw) +unsigned long print_ulong::dw +unsigned long print_ulong::dw#0 // dw zp[4]:12 53.25 zp[4]:2 [ main::dw#10 main::dw#1 ] reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] diff --git a/src/test/ref/test-scroll-up.cfg b/src/test/ref/test-scroll-up.cfg index e7a9d498d..122f4b42e 100644 --- a/src/test/ref/test-scroll-up.cfg +++ b/src/test/ref/test-scroll-up.cfg @@ -2,15 +2,15 @@ void main() main: scope:[main] from [0] phi() - [1] call scrollup1 + [1] call scrollup1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call scrollup2 + [3] call scrollup2 to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call scrollup3 + [5] call scrollup3 to:main::@return main::@return: scope:[main] from main::@2 [6] return @@ -22,7 +22,7 @@ scrollup1: scope:[scrollup1] from main to:scrollup1::@1 scrollup1::@1: scope:[scrollup1] from scrollup1 scrollup1::@4 [8] scrollup1::line#2 = phi( scrollup1/0, scrollup1::@4/scrollup1::line#1 ) - [9] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 + [9] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 to:scrollup1::@return scrollup1::@return: scope:[scrollup1] from scrollup1::@1 [10] return @@ -75,7 +75,7 @@ scrollup3: scope:[scrollup3] from main::@2 to:scrollup3::@1 scrollup3::@1: scope:[scrollup3] from scrollup3 scrollup3::@5 [31] scrollup3::line#2 = phi( scrollup3/0, scrollup3::@5/scrollup3::line#1 ) - [32] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 + [32] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 to:scrollup3::@return scrollup3::@return: scope:[scrollup3] from scrollup3::@1 [33] return diff --git a/src/test/ref/test-scroll-up.log b/src/test/ref/test-scroll-up.log index f70e920cb..23344742e 100644 --- a/src/test/ref/test-scroll-up.log +++ b/src/test/ref/test-scroll-up.log @@ -3,13 +3,13 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call scrollup1 + call scrollup1 to:main::@1 main::@1: scope:[main] from main - call scrollup2 + call scrollup2 to:main::@2 main::@2: scope:[main] from main::@1 - call scrollup3 + call scrollup3 to:main::@3 main::@3: scope:[main] from main::@2 to:main::@return @@ -129,7 +129,7 @@ scrollup3::@return: scope:[scrollup3] from scrollup3::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -140,73 +140,73 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const screen = (byte*)$400 +__constant char * const screen = (char *)$400 void scrollup1() -bool~ scrollup1::$0 -bool~ scrollup1::$1 -word~ scrollup1::$2 -word~ scrollup1::$3 -number~ scrollup1::$4 -byte scrollup1::c -byte scrollup1::c#0 -byte scrollup1::c#1 -byte scrollup1::c#2 -byte scrollup1::c#3 -word scrollup1::line -word scrollup1::line#0 -word scrollup1::line#1 -word scrollup1::line#2 -word scrollup1::line#3 -word scrollup1::line#4 -word scrollup1::line#5 -word scrollup1::line#6 +bool scrollup1::$0 +bool scrollup1::$1 +unsigned int scrollup1::$2 +unsigned int scrollup1::$3 +number scrollup1::$4 +char scrollup1::c +char scrollup1::c#0 +char scrollup1::c#1 +char scrollup1::c#2 +char scrollup1::c#3 +unsigned int scrollup1::line +unsigned int scrollup1::line#0 +unsigned int scrollup1::line#1 +unsigned int scrollup1::line#2 +unsigned int scrollup1::line#3 +unsigned int scrollup1::line#4 +unsigned int scrollup1::line#5 +unsigned int scrollup1::line#6 void scrollup2() -bool~ scrollup2::$0 -bool~ scrollup2::$1 -byte scrollup2::c -byte scrollup2::c#0 -byte scrollup2::c#1 -byte scrollup2::c#2 -byte scrollup2::l -byte scrollup2::l#0 -byte scrollup2::l#1 -byte scrollup2::l#2 -byte scrollup2::l#3 -byte scrollup2::l#4 -byte* scrollup2::line1 -byte* scrollup2::line1#0 -byte* scrollup2::line1#1 -byte* scrollup2::line1#2 -byte* scrollup2::line1#3 -byte* scrollup2::line1#4 -byte* scrollup2::line2 -byte* scrollup2::line2#0 -byte* scrollup2::line2#1 -byte* scrollup2::line2#2 -byte* scrollup2::line2#3 -byte* scrollup2::line2#4 +bool scrollup2::$0 +bool scrollup2::$1 +char scrollup2::c +char scrollup2::c#0 +char scrollup2::c#1 +char scrollup2::c#2 +char scrollup2::l +char scrollup2::l#0 +char scrollup2::l#1 +char scrollup2::l#2 +char scrollup2::l#3 +char scrollup2::l#4 +char *scrollup2::line1 +char *scrollup2::line1#0 +char *scrollup2::line1#1 +char *scrollup2::line1#2 +char *scrollup2::line1#3 +char *scrollup2::line1#4 +char *scrollup2::line2 +char *scrollup2::line2#0 +char *scrollup2::line2#1 +char *scrollup2::line2#2 +char *scrollup2::line2#3 +char *scrollup2::line2#4 void scrollup3() -bool~ scrollup3::$0 -bool~ scrollup3::$1 -number~ scrollup3::$2 -byte scrollup3::c -byte scrollup3::c#0 -byte scrollup3::c#1 -byte scrollup3::c#2 -byte scrollup3::c#3 -word scrollup3::l2 -word scrollup3::l2#0 -word scrollup3::l2#1 -word scrollup3::l2#2 -word scrollup3::l2#3 -word scrollup3::line -word scrollup3::line#0 -word scrollup3::line#1 -word scrollup3::line#2 -word scrollup3::line#3 -word scrollup3::line#4 -word scrollup3::line#5 -word scrollup3::line#6 +bool scrollup3::$0 +bool scrollup3::$1 +number scrollup3::$2 +char scrollup3::c +char scrollup3::c#0 +char scrollup3::c#1 +char scrollup3::c#2 +char scrollup3::c#3 +unsigned int scrollup3::l2 +unsigned int scrollup3::l2#0 +unsigned int scrollup3::l2#1 +unsigned int scrollup3::l2#2 +unsigned int scrollup3::l2#3 +unsigned int scrollup3::line +unsigned int scrollup3::line#0 +unsigned int scrollup3::line#1 +unsigned int scrollup3::line#2 +unsigned int scrollup3::line#3 +unsigned int scrollup3::line#4 +unsigned int scrollup3::line#5 +unsigned int scrollup3::line#6 Adding number conversion cast (unumber) $28*$18 in scrollup1::$0 = scrollup1::line#2 < $28*$18 Adding number conversion cast (unumber) $28 in scrollup1::$1 = scrollup1::c#2 < $28 @@ -220,7 +220,7 @@ Adding number conversion cast (unumber) $28 in scrollup3::$2 = scrollup3::l2#2 + Adding number conversion cast (unumber) scrollup3::$2 in scrollup3::$2 = scrollup3::l2#2 + (unumber)$28 Adding number conversion cast (unumber) $28 in scrollup3::line#1 = scrollup3::line#4 + $28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 @@ -229,16 +229,16 @@ Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in scrollup1::$4 = scrollup1::$3 + $28 -Inferred type updated to word in scrollup3::$2 = scrollup3::l2#2 + $28 +Inferred type updated to unsigned int in scrollup1::$4 = scrollup1::$3 + $28 +Inferred type updated to unsigned int in scrollup3::$2 = scrollup3::l2#2 + $28 Alias scrollup1::line#2 = scrollup1::line#6 Alias scrollup1::line#3 = scrollup1::line#5 scrollup1::line#4 Alias scrollup1::c#2 = scrollup1::c#3 @@ -256,11 +256,11 @@ Identical Phi Values scrollup3::line#4 scrollup3::line#2 Successful SSA optimization Pass2IdenticalPhiElimination Identified duplicate assignment right side [15] scrollup1::$3 = scrollup1::line#2 + scrollup1::c#2 Successful SSA optimization Pass2DuplicateRValueIdentification -Simple Condition scrollup1::$0 [7] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 +Simple Condition scrollup1::$0 [7] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 Simple Condition scrollup1::$1 [11] if(scrollup1::c#2<$28) goto scrollup1::@4 Simple Condition scrollup2::$0 [30] if(scrollup2::c#1!=rangelast(0,$27)) goto scrollup2::@2 Simple Condition scrollup2::$1 [33] if(scrollup2::l#1!=rangelast(0,$17)) goto scrollup2::@1 -Simple Condition scrollup3::$0 [38] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 +Simple Condition scrollup3::$0 [38] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 Simple Condition scrollup3::$1 [42] if(scrollup3::c#2<$28) goto scrollup3::@4 Successful SSA optimization Pass2ConditionalJumpSimplification Constant scrollup1::line#0 = 0 @@ -292,8 +292,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Simplifying constant integer cast $18 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $18 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias scrollup1::$3 = scrollup1::$2 Successful SSA optimization Pass2AliasElimination @@ -320,10 +320,10 @@ Successful SSA optimization Pass2ConstantAdditionElimination Alias scrollup1::$4 = scrollup1::$3 Alias scrollup3::l2#2 = scrollup3::$2 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $18 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $18 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting scrollup2::@4(between scrollup2::@3 and scrollup2::@1) Added new block during phi lifting scrollup2::@5(between scrollup2::@2 and scrollup2::@2) @@ -373,15 +373,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call scrollup1 + [1] call scrollup1 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call scrollup2 + [3] call scrollup2 to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call scrollup3 + [5] call scrollup3 to:main::@return main::@return: scope:[main] from main::@2 [6] return @@ -393,7 +393,7 @@ scrollup1: scope:[scrollup1] from main to:scrollup1::@1 scrollup1::@1: scope:[scrollup1] from scrollup1 scrollup1::@4 [8] scrollup1::line#2 = phi( scrollup1/0, scrollup1::@4/scrollup1::line#1 ) - [9] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 + [9] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 to:scrollup1::@return scrollup1::@return: scope:[scrollup1] from scrollup1::@1 [10] return @@ -446,7 +446,7 @@ scrollup3: scope:[scrollup3] from main::@2 to:scrollup3::@1 scrollup3::@1: scope:[scrollup3] from scrollup3 scrollup3::@5 [31] scrollup3::line#2 = phi( scrollup3/0, scrollup3::@5/scrollup3::line#1 ) - [32] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 + [32] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 to:scrollup3::@return scrollup3::@return: scope:[scrollup3] from scrollup3::@1 [33] return @@ -474,43 +474,43 @@ scrollup3::@4: scope:[scrollup3] from scrollup3::@3 VARIABLE REGISTER WEIGHTS void main() void scrollup1() -word~ scrollup1::$4 1501.5 -byte*~ scrollup1::$5 1001.0 -byte*~ scrollup1::$6 2002.0 -byte scrollup1::c -byte scrollup1::c#1 2002.0 -byte scrollup1::c#2 667.3333333333334 -word scrollup1::line -word scrollup1::line#1 202.0 -word scrollup1::line#2 144.88888888888889 +unsigned int scrollup1::$4 // 1501.5 +char *scrollup1::$5 // 1001.0 +char *scrollup1::$6 // 2002.0 +char scrollup1::c +char scrollup1::c#1 // 2002.0 +char scrollup1::c#2 // 667.3333333333334 +unsigned int scrollup1::line +unsigned int scrollup1::line#1 // 202.0 +unsigned int scrollup1::line#2 // 144.88888888888889 void scrollup2() -byte scrollup2::c -byte scrollup2::c#1 1501.5 -byte scrollup2::c#2 500.5 -byte scrollup2::l -byte scrollup2::l#1 151.5 -byte scrollup2::l#4 28.857142857142858 -byte* scrollup2::line1 -byte* scrollup2::line1#1 350.5 -byte* scrollup2::line1#2 1552.0 -byte* scrollup2::line1#3 202.0 -byte* scrollup2::line2 -byte* scrollup2::line2#1 420.59999999999997 -byte* scrollup2::line2#2 1034.6666666666667 -byte* scrollup2::line2#3 202.0 +char scrollup2::c +char scrollup2::c#1 // 1501.5 +char scrollup2::c#2 // 500.5 +char scrollup2::l +char scrollup2::l#1 // 151.5 +char scrollup2::l#4 // 28.857142857142858 +char *scrollup2::line1 +char *scrollup2::line1#1 // 350.5 +char *scrollup2::line1#2 // 1552.0 +char *scrollup2::line1#3 // 202.0 +char *scrollup2::line2 +char *scrollup2::line2#1 // 420.59999999999997 +char *scrollup2::line2#2 // 1034.6666666666667 +char *scrollup2::line2#3 // 202.0 void scrollup3() -byte*~ scrollup3::$3 1001.0 -byte*~ scrollup3::$4 2002.0 -byte scrollup3::c -byte scrollup3::c#1 2002.0 -byte scrollup3::c#2 500.5 -word scrollup3::l2 -word scrollup3::l2#1 1001.0 -word scrollup3::l2#2 821.0 -word scrollup3::l2#4 202.0 -word scrollup3::line -word scrollup3::line#1 202.0 -word scrollup3::line#2 40.4 +char *scrollup3::$3 // 1001.0 +char *scrollup3::$4 // 2002.0 +char scrollup3::c +char scrollup3::c#1 // 2002.0 +char scrollup3::c#2 // 500.5 +unsigned int scrollup3::l2 +unsigned int scrollup3::l2#1 // 1001.0 +unsigned int scrollup3::l2#2 // 821.0 +unsigned int scrollup3::l2#4 // 202.0 +unsigned int scrollup3::line +unsigned int scrollup3::line#1 // 202.0 +unsigned int scrollup3::line#2 // 40.4 Initial phi equivalence classes [ scrollup1::line#2 scrollup1::line#1 ] @@ -557,7 +557,7 @@ Allocated zp[2]:20 [ scrollup1::$6 ] Allocated zp[2]:22 [ scrollup3::$3 ] Allocated zp[2]:24 [ scrollup3::$4 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [9] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 [ scrollup1::line#2 ] ( scrollup1:1 [ scrollup1::line#2 ] { } ) always clobbers reg byte a +Statement [9] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 [ scrollup1::line#2 ] ( scrollup1:1 [ scrollup1::line#2 ] { } ) always clobbers reg byte a Statement [13] scrollup1::line#1 = scrollup1::line#2 + $28 [ scrollup1::line#1 ] ( scrollup1:1 [ scrollup1::line#1 ] { } ) always clobbers reg byte a Statement [14] scrollup1::$4 = scrollup1::line#2 + scrollup1::c#2 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$4 ] ( scrollup1:1 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ scrollup1::c#2 scrollup1::c#1 ] @@ -570,7 +570,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:5 [ scrollu Removing always clobbered register reg byte y as potential for zp[1]:5 [ scrollup2::l#4 scrollup2::l#1 ] Removing always clobbered register reg byte a as potential for zp[1]:10 [ scrollup2::c#2 scrollup2::c#1 ] Removing always clobbered register reg byte y as potential for zp[1]:10 [ scrollup2::c#2 scrollup2::c#1 ] -Statement [32] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 [ scrollup3::line#2 ] ( scrollup3:5 [ scrollup3::line#2 ] { } ) always clobbers reg byte a +Statement [32] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 [ scrollup3::line#2 ] ( scrollup3:5 [ scrollup3::line#2 ] { } ) always clobbers reg byte a Statement [34] scrollup3::l2#4 = scrollup3::line#2 [ scrollup3::line#2 scrollup3::l2#4 ] ( scrollup3:5 [ scrollup3::line#2 scrollup3::l2#4 ] { } ) always clobbers reg byte a Statement [37] scrollup3::line#1 = scrollup3::line#2 + $28 [ scrollup3::line#1 ] ( scrollup3:5 [ scrollup3::line#1 ] { } ) always clobbers reg byte a Statement [38] scrollup3::$3 = screen+$28 + scrollup3::l2#2 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 scrollup3::$3 ] ( scrollup3:5 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 scrollup3::$3 ] { } ) always clobbers reg byte a @@ -578,14 +578,14 @@ Removing always clobbered register reg byte a as potential for zp[1]:13 [ scroll Statement [39] scrollup3::$4 = screen + scrollup3::l2#2 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 scrollup3::$3 scrollup3::$4 ] ( scrollup3:5 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 scrollup3::$3 scrollup3::$4 ] { } ) always clobbers reg byte a Statement [40] *scrollup3::$4 = *scrollup3::$3 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 ] ( scrollup3:5 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:13 [ scrollup3::c#2 scrollup3::c#1 ] -Statement [9] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 [ scrollup1::line#2 ] ( scrollup1:1 [ scrollup1::line#2 ] { } ) always clobbers reg byte a +Statement [9] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 [ scrollup1::line#2 ] ( scrollup1:1 [ scrollup1::line#2 ] { } ) always clobbers reg byte a Statement [13] scrollup1::line#1 = scrollup1::line#2 + $28 [ scrollup1::line#1 ] ( scrollup1:1 [ scrollup1::line#1 ] { } ) always clobbers reg byte a Statement [14] scrollup1::$4 = scrollup1::line#2 + scrollup1::c#2 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$4 ] ( scrollup1:1 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$4 ] { } ) always clobbers reg byte a Statement [15] scrollup1::$5 = screen+$28 + scrollup1::$4 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$4 scrollup1::$5 ] ( scrollup1:1 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$4 scrollup1::$5 ] { } ) always clobbers reg byte a Statement [16] scrollup1::$6 = screen + scrollup1::$4 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$5 scrollup1::$6 ] ( scrollup1:1 [ scrollup1::line#2 scrollup1::c#2 scrollup1::$5 scrollup1::$6 ] { } ) always clobbers reg byte a Statement [17] *scrollup1::$6 = *scrollup1::$5 [ scrollup1::line#2 scrollup1::c#2 ] ( scrollup1:1 [ scrollup1::line#2 scrollup1::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [22] *scrollup2::line1#2 = *scrollup2::line2#2 [ scrollup2::l#4 scrollup2::line2#2 scrollup2::line1#2 scrollup2::c#2 ] ( scrollup2:3 [ scrollup2::l#4 scrollup2::line2#2 scrollup2::line1#2 scrollup2::c#2 ] { } ) always clobbers reg byte a reg byte y -Statement [32] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 [ scrollup3::line#2 ] ( scrollup3:5 [ scrollup3::line#2 ] { } ) always clobbers reg byte a +Statement [32] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 [ scrollup3::line#2 ] ( scrollup3:5 [ scrollup3::line#2 ] { } ) always clobbers reg byte a Statement [34] scrollup3::l2#4 = scrollup3::line#2 [ scrollup3::line#2 scrollup3::l2#4 ] ( scrollup3:5 [ scrollup3::line#2 scrollup3::l2#4 ] { } ) always clobbers reg byte a Statement [37] scrollup3::line#1 = scrollup3::line#2 + $28 [ scrollup3::line#1 ] ( scrollup3:5 [ scrollup3::line#1 ] { } ) always clobbers reg byte a Statement [38] scrollup3::$3 = screen+$28 + scrollup3::l2#2 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 scrollup3::$3 ] ( scrollup3:5 [ scrollup3::line#2 scrollup3::c#2 scrollup3::l2#2 scrollup3::$3 ] { } ) always clobbers reg byte a @@ -649,7 +649,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call scrollup1 + // [1] call scrollup1 // [7] phi from main to scrollup1 [phi:main->scrollup1] scrollup1_from_main: jsr scrollup1 @@ -658,7 +658,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call scrollup2 + // [3] call scrollup2 // [19] phi from main::@1 to scrollup2 [phi:main::@1->scrollup2] scrollup2_from___b1: jsr scrollup2 @@ -667,7 +667,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call scrollup3 + // [5] call scrollup3 // [30] phi from main::@2 to scrollup3 [phi:main::@2->scrollup3] scrollup3_from___b2: jsr scrollup3 @@ -693,7 +693,7 @@ scrollup1: { jmp __b1 // scrollup1::@1 __b1: - // [9] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 -- vwuz1_lt_vwuc1_then_la1 + // [9] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z line+1 cmp #>$28*$18 bcc __b2_from___b1 @@ -865,7 +865,7 @@ scrollup3: { jmp __b1 // scrollup3::@1 __b1: - // [32] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 -- vwuz1_lt_vwuc1_then_la1 + // [32] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z line+1 cmp #>$28*$18 bcc __b2 @@ -1010,45 +1010,45 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* const screen = (byte*) 1024 +__constant char * const screen = (char *) 1024 void scrollup1() -word~ scrollup1::$4 zp[2]:5 1501.5 -byte*~ scrollup1::$5 zp[2]:7 1001.0 -byte*~ scrollup1::$6 zp[2]:5 2002.0 -byte scrollup1::c -byte scrollup1::c#1 reg byte x 2002.0 -byte scrollup1::c#2 reg byte x 667.3333333333334 -word scrollup1::line -word scrollup1::line#1 line zp[2]:9 202.0 -word scrollup1::line#2 line zp[2]:9 144.88888888888889 +unsigned int scrollup1::$4 // zp[2]:5 1501.5 +char *scrollup1::$5 // zp[2]:7 1001.0 +char *scrollup1::$6 // zp[2]:5 2002.0 +char scrollup1::c +char scrollup1::c#1 // reg byte x 2002.0 +char scrollup1::c#2 // reg byte x 667.3333333333334 +unsigned int scrollup1::line +unsigned int scrollup1::line#1 // line zp[2]:9 202.0 +unsigned int scrollup1::line#2 // line zp[2]:9 144.88888888888889 void scrollup2() -byte scrollup2::c -byte scrollup2::c#1 reg byte x 1501.5 -byte scrollup2::c#2 reg byte x 500.5 -byte scrollup2::l -byte scrollup2::l#1 l zp[1]:2 151.5 -byte scrollup2::l#4 l zp[1]:2 28.857142857142858 -byte* scrollup2::line1 -byte* scrollup2::line1#1 line1 zp[2]:3 350.5 -byte* scrollup2::line1#2 line1 zp[2]:3 1552.0 -byte* scrollup2::line1#3 line1 zp[2]:3 202.0 -byte* scrollup2::line2 -byte* scrollup2::line2#1 line2 zp[2]:9 420.59999999999997 -byte* scrollup2::line2#2 line2 zp[2]:9 1034.6666666666667 -byte* scrollup2::line2#3 line2 zp[2]:9 202.0 +char scrollup2::c +char scrollup2::c#1 // reg byte x 1501.5 +char scrollup2::c#2 // reg byte x 500.5 +char scrollup2::l +char scrollup2::l#1 // l zp[1]:2 151.5 +char scrollup2::l#4 // l zp[1]:2 28.857142857142858 +char *scrollup2::line1 +char *scrollup2::line1#1 // line1 zp[2]:3 350.5 +char *scrollup2::line1#2 // line1 zp[2]:3 1552.0 +char *scrollup2::line1#3 // line1 zp[2]:3 202.0 +char *scrollup2::line2 +char *scrollup2::line2#1 // line2 zp[2]:9 420.59999999999997 +char *scrollup2::line2#2 // line2 zp[2]:9 1034.6666666666667 +char *scrollup2::line2#3 // line2 zp[2]:9 202.0 void scrollup3() -byte*~ scrollup3::$3 zp[2]:7 1001.0 -byte*~ scrollup3::$4 zp[2]:9 2002.0 -byte scrollup3::c -byte scrollup3::c#1 reg byte x 2002.0 -byte scrollup3::c#2 reg byte x 500.5 -word scrollup3::l2 -word scrollup3::l2#1 l2 zp[2]:5 1001.0 -word scrollup3::l2#2 l2 zp[2]:5 821.0 -word scrollup3::l2#4 l2 zp[2]:5 202.0 -word scrollup3::line -word scrollup3::line#1 line zp[2]:3 202.0 -word scrollup3::line#2 line zp[2]:3 40.4 +char *scrollup3::$3 // zp[2]:7 1001.0 +char *scrollup3::$4 // zp[2]:9 2002.0 +char scrollup3::c +char scrollup3::c#1 // reg byte x 2002.0 +char scrollup3::c#2 // reg byte x 500.5 +unsigned int scrollup3::l2 +unsigned int scrollup3::l2#1 // l2 zp[2]:5 1001.0 +unsigned int scrollup3::l2#2 // l2 zp[2]:5 821.0 +unsigned int scrollup3::l2#4 // l2 zp[2]:5 202.0 +unsigned int scrollup3::line +unsigned int scrollup3::line#1 // line zp[2]:3 202.0 +unsigned int scrollup3::line#2 // line zp[2]:3 40.4 reg byte x [ scrollup1::c#2 scrollup1::c#1 ] zp[1]:2 [ scrollup2::l#4 scrollup2::l#1 ] @@ -1080,19 +1080,19 @@ Score: 21407 // main main: { // scrollup1() - // [1] call scrollup1 + // [1] call scrollup1 // [7] phi from main to scrollup1 [phi:main->scrollup1] jsr scrollup1 // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // scrollup2() - // [3] call scrollup2 + // [3] call scrollup2 // [19] phi from main::@1 to scrollup2 [phi:main::@1->scrollup2] jsr scrollup2 // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // scrollup3() - // [5] call scrollup3 + // [5] call scrollup3 // [30] phi from main::@2 to scrollup3 [phi:main::@2->scrollup3] jsr scrollup3 // main::@return @@ -1114,7 +1114,7 @@ scrollup1: { // scrollup1::@1 __b1: // for (word line = 0; line < 40*24; line += 40) - // [9] if(scrollup1::line#2<(word)$28*$18) goto scrollup1::@2 -- vwuz1_lt_vwuc1_then_la1 + // [9] if(scrollup1::line#2<(unsigned int)$28*$18) goto scrollup1::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z line+1 cmp #>$28*$18 bcc __b4 @@ -1274,7 +1274,7 @@ scrollup3: { // scrollup3::@1 __b1: // for (word line = 0; line < 40*24; line += 40) - // [32] if(scrollup3::line#2<(word)$28*$18) goto scrollup3::@2 -- vwuz1_lt_vwuc1_then_la1 + // [32] if(scrollup3::line#2<(unsigned int)$28*$18) goto scrollup3::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z line+1 cmp #>$28*$18 bcc __b2 diff --git a/src/test/ref/test-scroll-up.sym b/src/test/ref/test-scroll-up.sym index 5dd179757..419148bf0 100644 --- a/src/test/ref/test-scroll-up.sym +++ b/src/test/ref/test-scroll-up.sym @@ -1,43 +1,43 @@ void main() -constant byte* const screen = (byte*) 1024 +__constant char * const screen = (char *) 1024 void scrollup1() -word~ scrollup1::$4 zp[2]:5 1501.5 -byte*~ scrollup1::$5 zp[2]:7 1001.0 -byte*~ scrollup1::$6 zp[2]:5 2002.0 -byte scrollup1::c -byte scrollup1::c#1 reg byte x 2002.0 -byte scrollup1::c#2 reg byte x 667.3333333333334 -word scrollup1::line -word scrollup1::line#1 line zp[2]:9 202.0 -word scrollup1::line#2 line zp[2]:9 144.88888888888889 +unsigned int scrollup1::$4 // zp[2]:5 1501.5 +char *scrollup1::$5 // zp[2]:7 1001.0 +char *scrollup1::$6 // zp[2]:5 2002.0 +char scrollup1::c +char scrollup1::c#1 // reg byte x 2002.0 +char scrollup1::c#2 // reg byte x 667.3333333333334 +unsigned int scrollup1::line +unsigned int scrollup1::line#1 // line zp[2]:9 202.0 +unsigned int scrollup1::line#2 // line zp[2]:9 144.88888888888889 void scrollup2() -byte scrollup2::c -byte scrollup2::c#1 reg byte x 1501.5 -byte scrollup2::c#2 reg byte x 500.5 -byte scrollup2::l -byte scrollup2::l#1 l zp[1]:2 151.5 -byte scrollup2::l#4 l zp[1]:2 28.857142857142858 -byte* scrollup2::line1 -byte* scrollup2::line1#1 line1 zp[2]:3 350.5 -byte* scrollup2::line1#2 line1 zp[2]:3 1552.0 -byte* scrollup2::line1#3 line1 zp[2]:3 202.0 -byte* scrollup2::line2 -byte* scrollup2::line2#1 line2 zp[2]:9 420.59999999999997 -byte* scrollup2::line2#2 line2 zp[2]:9 1034.6666666666667 -byte* scrollup2::line2#3 line2 zp[2]:9 202.0 +char scrollup2::c +char scrollup2::c#1 // reg byte x 1501.5 +char scrollup2::c#2 // reg byte x 500.5 +char scrollup2::l +char scrollup2::l#1 // l zp[1]:2 151.5 +char scrollup2::l#4 // l zp[1]:2 28.857142857142858 +char *scrollup2::line1 +char *scrollup2::line1#1 // line1 zp[2]:3 350.5 +char *scrollup2::line1#2 // line1 zp[2]:3 1552.0 +char *scrollup2::line1#3 // line1 zp[2]:3 202.0 +char *scrollup2::line2 +char *scrollup2::line2#1 // line2 zp[2]:9 420.59999999999997 +char *scrollup2::line2#2 // line2 zp[2]:9 1034.6666666666667 +char *scrollup2::line2#3 // line2 zp[2]:9 202.0 void scrollup3() -byte*~ scrollup3::$3 zp[2]:7 1001.0 -byte*~ scrollup3::$4 zp[2]:9 2002.0 -byte scrollup3::c -byte scrollup3::c#1 reg byte x 2002.0 -byte scrollup3::c#2 reg byte x 500.5 -word scrollup3::l2 -word scrollup3::l2#1 l2 zp[2]:5 1001.0 -word scrollup3::l2#2 l2 zp[2]:5 821.0 -word scrollup3::l2#4 l2 zp[2]:5 202.0 -word scrollup3::line -word scrollup3::line#1 line zp[2]:3 202.0 -word scrollup3::line#2 line zp[2]:3 40.4 +char *scrollup3::$3 // zp[2]:7 1001.0 +char *scrollup3::$4 // zp[2]:9 2002.0 +char scrollup3::c +char scrollup3::c#1 // reg byte x 2002.0 +char scrollup3::c#2 // reg byte x 500.5 +unsigned int scrollup3::l2 +unsigned int scrollup3::l2#1 // l2 zp[2]:5 1001.0 +unsigned int scrollup3::l2#2 // l2 zp[2]:5 821.0 +unsigned int scrollup3::l2#4 // l2 zp[2]:5 202.0 +unsigned int scrollup3::line +unsigned int scrollup3::line#1 // line zp[2]:3 202.0 +unsigned int scrollup3::line#2 // line zp[2]:3 40.4 reg byte x [ scrollup1::c#2 scrollup1::c#1 ] zp[1]:2 [ scrollup2::l#4 scrollup2::l#1 ] diff --git a/src/test/ref/test-signed-word-minus-byte.asm b/src/test/ref/test-signed-word-minus-byte.asm index 40dfd6fad..803a9ab42 100644 --- a/src/test/ref/test-signed-word-minus-byte.asm +++ b/src/test/ref/test-signed-word-minus-byte.asm @@ -87,7 +87,7 @@ print_cls: { rts } // Print a signed int as HEX -// print_sint(signed word zp(9) w) +// void print_sint(__zp(9) int w) print_sint: { .label w = 9 // if(w<0) @@ -116,7 +116,7 @@ print_sint: { jmp __b2 } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 @@ -153,6 +153,7 @@ print_ln: { rts } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -186,7 +187,7 @@ memset: { jmp __b1 } // Print a unsigned int as HEX -// print_uint(word zp(9) w) +// void print_uint(__zp(9) unsigned int w) print_uint: { .label w = 9 // print_uchar(BYTE1(w)) @@ -199,7 +200,7 @@ print_uint: { rts } // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 txa diff --git a/src/test/ref/test-signed-word-minus-byte.cfg b/src/test/ref/test-signed-word-minus-byte.cfg index 7428cae10..b1743f5f7 100644 --- a/src/test/ref/test-signed-word-minus-byte.cfg +++ b/src/test/ref/test-signed-word-minus-byte.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@6 [2] main::i#2 = phi( main/0, main::@6/main::i#1 ) @@ -12,19 +12,19 @@ main::@1: scope:[main] from main main::@6 [3] main::w2#0 = main::w1#2 - $5b [4] main::w1#1 = main::w2#0 - $29 [5] print_sint::w#1 = main::w1#1 - [6] call print_sint + [6] call print_sint to:main::@2 main::@2: scope:[main] from main::@1 [7] phi() - [8] call print_char + [8] call print_char to:main::@3 main::@3: scope:[main] from main::@2 [9] print_sint::w#2 = main::w2#0 - [10] call print_sint + [10] call print_sint to:main::@4 main::@4: scope:[main] from main::@3 [11] phi() - [12] call print_ln + [12] call print_ln to:main::@5 main::@5: scope:[main] from main::@4 [13] main::i#1 = ++ main::i#2 @@ -40,13 +40,13 @@ main::@6: scope:[main] from main::@5 void print_cls() print_cls: scope:[print_cls] from main [17] phi() - [18] call memset + [18] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [19] return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@1 main::@3 [20] print_char_cursor#49 = phi( main::@1/print_char_cursor#55, main::@3/print_char_cursor#12 ) [20] print_sint::w#3 = phi( main::@1/print_sint::w#1, main::@3/print_sint::w#2 ) @@ -54,25 +54,25 @@ print_sint: scope:[print_sint] from main::@1 main::@3 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [22] phi() - [23] call print_char + [23] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [24] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 ) - [25] print_uint::w#0 = (word)print_sint::w#5 - [26] call print_uint + [25] print_uint::w#0 = (unsigned int)print_sint::w#5 + [26] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [27] return to:@return print_sint::@1: scope:[print_sint] from print_sint [28] phi() - [29] call print_char + [29] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [30] print_sint::w#0 = - print_sint::w#3 to:print_sint::@2 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@2 print_sint::@1 print_sint::@3 print_uchar print_uchar::@1 [31] print_char_cursor#37 = phi( main::@2/print_char_cursor#12, print_sint::@1/print_char_cursor#49, print_sint::@3/print_char_cursor#49, print_uchar/print_char_cursor#12, print_uchar::@1/print_char_cursor#12 ) [31] print_char::ch#5 = phi( main::@2/' ', print_sint::@1/'-', print_sint::@3/' ', print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 ) @@ -96,12 +96,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [39] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [40] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [41] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [41] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [42] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -112,30 +112,30 @@ memset::@2: scope:[memset] from memset::@1 [45] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 [46] print_uchar::b#0 = byte1 print_uint::w#0 - [47] call print_uchar + [47] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [48] print_uchar::b#1 = byte0 print_uint::w#0 - [49] call print_uchar + [49] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [50] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [51] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [52] print_uchar::$0 = print_uchar::b#2 >> 4 [53] print_char::ch#2 = print_hextab[print_uchar::$0] - [54] call print_char + [54] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [55] print_uchar::$2 = print_uchar::b#2 & $f [56] print_char::ch#3 = print_hextab[print_uchar::$2] - [57] call print_char + [57] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [58] return diff --git a/src/test/ref/test-signed-word-minus-byte.log b/src/test/ref/test-signed-word-minus-byte.log index 84b4f0fb7..0a3a9bbcb 100644 --- a/src/test/ref/test-signed-word-minus-byte.log +++ b/src/test/ref/test-signed-word-minus-byte.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement main::$1 @@ -29,7 +29,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@1 main::@4 print_char_cursor#57 = phi( main::@1/print_char_cursor#55, main::@4/print_char_cursor#18 ) print_sint::w#3 = phi( main::@1/print_sint::w#1, main::@4/print_sint::w#2 ) @@ -40,7 +40,7 @@ print_sint::@1: scope:[print_sint] from print_sint print_sint::w#6 = phi( print_sint/print_sint::w#3 ) print_char_cursor#49 = phi( print_sint/print_char_cursor#57 ) print_char::ch#0 = '-' - call print_char + call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 print_sint::w#4 = phi( print_sint::@1/print_sint::w#6 ) @@ -53,7 +53,7 @@ print_sint::@3: scope:[print_sint] from print_sint print_sint::w#8 = phi( print_sint/print_sint::w#3 ) print_char_cursor#50 = phi( print_sint/print_char_cursor#57 ) print_char::ch#1 = ' ' - call print_char + call print_char to:print_sint::@5 print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::w#7 = phi( print_sint::@3/print_sint::w#8 ) @@ -63,8 +63,8 @@ print_sint::@5: scope:[print_sint] from print_sint::@3 print_sint::@2: scope:[print_sint] from print_sint::@4 print_sint::@5 print_char_cursor#51 = phi( print_sint::@4/print_char_cursor#2, print_sint::@5/print_char_cursor#3 ) print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#7 ) - print_uint::w#0 = (word)print_sint::w#5 - call print_uint + print_uint::w#0 = (unsigned int)print_sint::w#5 + call print_uint to:print_sint::@6 print_sint::@6: scope:[print_sint] from print_sint::@2 print_char_cursor#29 = phi( print_sint::@2/print_char_cursor#8 ) @@ -76,13 +76,13 @@ print_sint::@return: scope:[print_sint] from print_sint::@6 return to:@return -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 print_char_cursor#52 = phi( print_sint::@2/print_char_cursor#51 ) print_uint::w#1 = phi( print_sint::@2/print_uint::w#0 ) print_uint::$0 = byte1 print_uint::w#1 print_uchar::b#0 = print_uint::$0 - call print_uchar + call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint print_uint::w#2 = phi( print_uint/print_uint::w#1 ) @@ -90,7 +90,7 @@ print_uint::@1: scope:[print_uint] from print_uint print_char_cursor#6 = print_char_cursor#31 print_uint::$2 = byte0 print_uint::w#2 print_uchar::b#1 = print_uint::$2 - call print_uchar + call print_uchar to:print_uint::@2 print_uint::@2: scope:[print_uint] from print_uint::@1 print_char_cursor#32 = phi( print_uint::@1/print_char_cursor#11 ) @@ -102,13 +102,13 @@ print_uint::@return: scope:[print_uint] from print_uint::@2 return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 print_char_cursor#53 = phi( print_uint/print_char_cursor#52, print_uint::@1/print_char_cursor#6 ) print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) print_uchar::$0 = print_uchar::b#2 >> 4 print_char::ch#2 = print_hextab[print_uchar::$0] - call print_char + call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#3 = phi( print_uchar/print_uchar::b#2 ) @@ -116,7 +116,7 @@ print_uchar::@1: scope:[print_uchar] from print_uchar print_char_cursor#9 = print_char_cursor#34 print_uchar::$2 = print_uchar::b#3 & $f print_char::ch#3 = print_hextab[print_uchar::$2] - call print_char + call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#35 = phi( print_uchar::@1/print_char_cursor#13 ) @@ -128,7 +128,7 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@3 print_sint::@1 print_sint::@3 print_uchar print_uchar::@1 print_char_cursor#37 = phi( main::@3/print_char_cursor#17, print_sint::@1/print_char_cursor#49, print_sint::@3/print_char_cursor#50, print_uchar/print_char_cursor#53, print_uchar::@1/print_char_cursor#9 ) print_char::ch#5 = phi( main::@3/print_char::ch#4, print_sint::@1/print_char::ch#0, print_sint::@3/print_char::ch#1, print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 ) @@ -144,10 +144,10 @@ print_char::@return: scope:[print_char] from print_char void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) - memset::str#0 = (void*)print_screen#2 + memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 - call memset + call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls @@ -163,7 +163,7 @@ print_cls::@return: scope:[print_cls] from print_cls::@1 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) @@ -180,9 +180,9 @@ memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) - memset::$4 = (byte*)memset::str#2 + memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 - memset::dst#0 = ((byte*)) memset::str#2 + memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) @@ -212,7 +212,7 @@ main: scope:[main] from __start::@1 print_line_cursor#20 = phi( __start::@1/print_line_cursor#22 ) print_screen#5 = phi( __start::@1/print_screen#7 ) main::w1#0 = $4d2 - call print_cls + call print_cls to:main::@2 main::@2: scope:[main] from main main::w1#3 = phi( main/main::w1#0 ) @@ -231,7 +231,7 @@ main::@1: scope:[main] from main::@2 main::@6 main::$2 = main::w2#0 - $29 main::w1#1 = main::$2 print_sint::w#1 = main::w1#1 - call print_sint + call print_sint to:main::@3 main::@3: scope:[main] from main::@1 main::w1#7 = phi( main::@1/main::w1#1 ) @@ -241,7 +241,7 @@ main::@3: scope:[main] from main::@1 print_char_cursor#41 = phi( main::@1/print_char_cursor#5 ) print_char_cursor#17 = print_char_cursor#41 print_char::ch#4 = ' ' - call print_char + call print_char to:main::@4 main::@4: scope:[main] from main::@3 main::w1#6 = phi( main::@3/main::w1#7 ) @@ -251,7 +251,7 @@ main::@4: scope:[main] from main::@3 print_char_cursor#42 = phi( main::@3/print_char_cursor#13 ) print_char_cursor#18 = print_char_cursor#42 print_sint::w#2 = main::w2#1 - call print_sint + call print_sint to:main::@5 main::@5: scope:[main] from main::@4 main::w1#5 = phi( main::@4/main::w1#6 ) @@ -259,7 +259,7 @@ main::@5: scope:[main] from main::@4 print_line_cursor#21 = phi( main::@4/print_line_cursor#23 ) print_char_cursor#43 = phi( main::@4/print_char_cursor#5 ) print_char_cursor#19 = print_char_cursor#43 - call print_ln + call print_ln to:main::@6 main::@6: scope:[main] from main::@5 main::w1#4 = phi( main::@5/main::w1#5 ) @@ -284,7 +284,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#7 = print_screen#0 print_char_cursor#22 = print_line_cursor#7 to:__start::@1 @@ -292,7 +292,7 @@ __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#56 = phi( __start::__init1/print_char_cursor#22 ) print_line_cursor#22 = phi( __start::__init1/print_line_cursor#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) @@ -312,207 +312,207 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void __start() void main() -number~ main::$2 -bool~ main::$7 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -signed word main::w1 -signed word main::w1#0 -signed word main::w1#1 -signed word main::w1#2 -signed word main::w1#3 -signed word main::w1#4 -signed word main::w1#5 -signed word main::w1#6 -signed word main::w1#7 -signed word main::w2 -signed word main::w2#0 -signed word main::w2#1 -signed word main::w2#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::ch#2 -byte print_char::ch#3 -byte print_char::ch#4 -byte print_char::ch#5 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#46 -byte* print_char_cursor#47 -byte* print_char_cursor#48 -byte* print_char_cursor#49 -byte* print_char_cursor#5 -byte* print_char_cursor#50 -byte* print_char_cursor#51 -byte* print_char_cursor#52 -byte* print_char_cursor#53 -byte* print_char_cursor#54 -byte* print_char_cursor#55 -byte* print_char_cursor#56 -byte* print_char_cursor#57 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 +number main::$2 +bool main::$7 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +int main::w1 +int main::w1#0 +int main::w1#1 +int main::w1#2 +int main::w1#3 +int main::w1#4 +int main::w1#5 +int main::w1#6 +int main::w1#7 +int main::w2 +int main::w2#0 +int main::w2#1 +int main::w2#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::ch#2 +char print_char::ch#3 +char print_char::ch#4 +char print_char::ch#5 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#46 +char *print_char_cursor#47 +char *print_char_cursor#48 +char *print_char_cursor#49 +char *print_char_cursor#5 +char *print_char_cursor#50 +char *print_char_cursor#51 +char *print_char_cursor#52 +char *print_char_cursor#53 +char *print_char_cursor#54 +char *print_char_cursor#55 +char *print_char_cursor#56 +char *print_char_cursor#57 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#3 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#3 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -byte* print_screen#5 -byte* print_screen#6 -byte* print_screen#7 -void print_sint(signed word print_sint::w) -bool~ print_sint::$0 -signed word~ print_sint::$4 -signed word print_sint::w -signed word print_sint::w#0 -signed word print_sint::w#1 -signed word print_sint::w#2 -signed word print_sint::w#3 -signed word print_sint::w#4 -signed word print_sint::w#5 -signed word print_sint::w#6 -signed word print_sint::w#7 -signed word print_sint::w#8 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 -number~ print_uchar::$2 -byte print_uchar::b -byte print_uchar::b#0 -byte print_uchar::b#1 -byte print_uchar::b#2 -byte print_uchar::b#3 -void print_uint(word print_uint::w) -byte~ print_uint::$0 -byte~ print_uint::$2 -word print_uint::w -word print_uint::w#0 -word print_uint::w#1 -word print_uint::w#2 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +char *print_screen#5 +char *print_screen#6 +char *print_screen#7 +void print_sint(int w) +bool print_sint::$0 +int print_sint::$4 +int print_sint::w +int print_sint::w#0 +int print_sint::w#1 +int print_sint::w#2 +int print_sint::w#3 +int print_sint::w#4 +int print_sint::w#5 +int print_sint::w#6 +int print_sint::w#7 +int print_sint::w#8 +void print_uchar(char b) +char print_uchar::$0 +number print_uchar::$2 +char print_uchar::b +char print_uchar::b#0 +char print_uchar::b#1 +char print_uchar::b#2 +char print_uchar::b#3 +void print_uint(unsigned int w) +char print_uint::$0 +char print_uint::$2 +unsigned int print_uint::w +unsigned int print_uint::w#0 +unsigned int print_uint::w#1 +unsigned int print_uint::w#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#10 + $28 Adding number conversion cast (snumber) 0 in print_sint::$0 = print_sint::w#3 < 0 @@ -526,7 +526,7 @@ Adding number conversion cast (snumber) $29 in main::$2 = main::w2#0 - $29 Adding number conversion cast (snumber) main::$2 in main::$2 = main::w2#0 - (snumber)$29 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 -Inlining cast memset::dst#0 = (byte*)memset::str#2 +Inlining cast memset::dst#0 = (char *)memset::str#2 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $28 Simplifying constant integer cast 0 @@ -536,19 +536,19 @@ Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Simplifying constant integer cast $5b Simplifying constant integer cast $29 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) $5b -Finalized signed number type (signed byte) $29 +Finalized unsigned number type (char) $28 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $f +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) $5b +Finalized signed number type (signed char) $29 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in print_uchar::$2 = print_uchar::b#3 & $f -Inferred type updated to signed word in main::$2 = main::w2#0 - $29 +Inferred type updated to char in print_uchar::$2 = print_uchar::b#3 & $f +Inferred type updated to int in main::$2 = main::w2#0 - $29 Inversing boolean not [84] memset::$1 = memset::num#1 <= 0 from [83] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#11 print_char_cursor#0 print_line_cursor#12 print_char_cursor#26 print_line_cursor#1 print_char_cursor#1 @@ -642,13 +642,13 @@ Constant memset::num#0 = $3e8 Constant main::w1#0 = $4d2 Constant main::i#0 = 0 Constant print_char::ch#4 = ' ' -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification -Constant memset::str#0 = (void*)print_screen#0 +Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 -Constant memset::$4 = (byte*)memset::str#0 -Constant memset::dst#0 = (byte*)memset::str#0 +Constant memset::$4 = (char *)memset::str#0 +Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [52] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs @@ -667,7 +667,7 @@ Adding number conversion cast (unumber) $b in [49] if(main::i#1!=$b) goto main:: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [32] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -680,17 +680,17 @@ Inlining constant with var siblings memset::dst#0 Inlining constant with var siblings main::w1#0 Inlining constant with var siblings main::i#0 Constant inlined print_char::ch#4 = ' ' -Constant inlined memset::$4 = (byte*)memset::str#0 +Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined print_char::ch#1 = ' ' Constant inlined print_char::ch#0 = '-' Constant inlined main::i#0 = 0 -Constant inlined memset::dst#0 = (byte*)memset::str#0 +Constant inlined memset::dst#0 = (char *)memset::str#0 Constant inlined main::w1#0 = $4d2 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@7(between main::@6 and main::@1) @@ -768,7 +768,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print_cls + [1] call print_cls to:main::@1 main::@1: scope:[main] from main main::@6 [2] main::i#2 = phi( main/0, main::@6/main::i#1 ) @@ -778,19 +778,19 @@ main::@1: scope:[main] from main main::@6 [3] main::w2#0 = main::w1#2 - $5b [4] main::w1#1 = main::w2#0 - $29 [5] print_sint::w#1 = main::w1#1 - [6] call print_sint + [6] call print_sint to:main::@2 main::@2: scope:[main] from main::@1 [7] phi() - [8] call print_char + [8] call print_char to:main::@3 main::@3: scope:[main] from main::@2 [9] print_sint::w#2 = main::w2#0 - [10] call print_sint + [10] call print_sint to:main::@4 main::@4: scope:[main] from main::@3 [11] phi() - [12] call print_ln + [12] call print_ln to:main::@5 main::@5: scope:[main] from main::@4 [13] main::i#1 = ++ main::i#2 @@ -806,13 +806,13 @@ main::@6: scope:[main] from main::@5 void print_cls() print_cls: scope:[print_cls] from main [17] phi() - [18] call memset + [18] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [19] return to:@return -void print_sint(signed word print_sint::w) +void print_sint(int w) print_sint: scope:[print_sint] from main::@1 main::@3 [20] print_char_cursor#49 = phi( main::@1/print_char_cursor#55, main::@3/print_char_cursor#12 ) [20] print_sint::w#3 = phi( main::@1/print_sint::w#1, main::@3/print_sint::w#2 ) @@ -820,25 +820,25 @@ print_sint: scope:[print_sint] from main::@1 main::@3 to:print_sint::@3 print_sint::@3: scope:[print_sint] from print_sint [22] phi() - [23] call print_char + [23] call print_char to:print_sint::@2 print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4 [24] print_sint::w#5 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#3 ) - [25] print_uint::w#0 = (word)print_sint::w#5 - [26] call print_uint + [25] print_uint::w#0 = (unsigned int)print_sint::w#5 + [26] call print_uint to:print_sint::@return print_sint::@return: scope:[print_sint] from print_sint::@2 [27] return to:@return print_sint::@1: scope:[print_sint] from print_sint [28] phi() - [29] call print_char + [29] call print_char to:print_sint::@4 print_sint::@4: scope:[print_sint] from print_sint::@1 [30] print_sint::w#0 = - print_sint::w#3 to:print_sint::@2 -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from main::@2 print_sint::@1 print_sint::@3 print_uchar print_uchar::@1 [31] print_char_cursor#37 = phi( main::@2/print_char_cursor#12, print_sint::@1/print_char_cursor#49, print_sint::@3/print_char_cursor#49, print_uchar/print_char_cursor#12, print_uchar::@1/print_char_cursor#12 ) [31] print_char::ch#5 = phi( main::@2/' ', print_sint::@1/'-', print_sint::@3/' ', print_uchar/print_char::ch#2, print_uchar::@1/print_char::ch#3 ) @@ -862,12 +862,12 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [39] return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [40] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 - [41] memset::dst#2 = phi( memset/(byte*)memset::str#0, memset::@2/memset::dst#1 ) + [41] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [42] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 @@ -878,30 +878,30 @@ memset::@2: scope:[memset] from memset::@1 [45] memset::dst#1 = ++ memset::dst#2 to:memset::@1 -void print_uint(word print_uint::w) +void print_uint(unsigned int w) print_uint: scope:[print_uint] from print_sint::@2 [46] print_uchar::b#0 = byte1 print_uint::w#0 - [47] call print_uchar + [47] call print_uchar to:print_uint::@1 print_uint::@1: scope:[print_uint] from print_uint [48] print_uchar::b#1 = byte0 print_uint::w#0 - [49] call print_uchar + [49] call print_uchar to:print_uint::@return print_uint::@return: scope:[print_uint] from print_uint::@1 [50] return to:@return -void print_uchar(byte print_uchar::b) +void print_uchar(char b) print_uchar: scope:[print_uchar] from print_uint print_uint::@1 [51] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 ) [52] print_uchar::$0 = print_uchar::b#2 >> 4 [53] print_char::ch#2 = print_hextab[print_uchar::$0] - [54] call print_char + [54] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [55] print_uchar::$2 = print_uchar::b#2 & $f [56] print_char::ch#3 = print_hextab[print_uchar::$2] - [57] call print_char + [57] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [58] return @@ -910,58 +910,58 @@ print_uchar::@return: scope:[print_uchar] from print_uchar::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 11.0 -byte main::i#2 2.0 -signed word main::w1 -signed word main::w1#1 2.75 -signed word main::w1#2 22.0 -signed word main::w2 -signed word main::w2#0 5.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte* memset::dst -byte* memset::dst#1 2002.0 -byte* memset::dst#2 1334.6666666666667 -byte* memset::end -word memset::num -void* memset::return -void* memset::str -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#2 20002.0 -byte print_char::ch#3 20002.0 -byte print_char::ch#5 120003.0 -byte* print_char_cursor -byte* print_char_cursor#12 4063.3125 -byte* print_char_cursor#37 110108.5 -byte* print_char_cursor#49 56.0 -byte* print_char_cursor#55 5.5 -byte* print_char_cursor#65 22.0 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 2.0 +int main::w1 +int main::w1#1 // 2.75 +int main::w1#2 // 22.0 +int main::w2 +int main::w2#0 // 5.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +char *memset::dst +char *memset::dst#1 // 2002.0 +char *memset::dst#2 // 1334.6666666666667 +char *memset::end +unsigned int memset::num +void *memset::return +void *memset::str +void print_char(char ch) +char print_char::ch +char print_char::ch#2 // 20002.0 +char print_char::ch#3 // 20002.0 +char print_char::ch#5 // 120003.0 +char *print_char_cursor +char *print_char_cursor#12 // 4063.3125 +char *print_char_cursor#37 // 110108.5 +char *print_char_cursor#49 // 56.0 +char *print_char_cursor#55 // 5.5 +char *print_char_cursor#65 // 22.0 void print_cls() -byte* print_line_cursor -byte* print_line_cursor#0 4289.285714285714 -byte* print_line_cursor#10 20103.0 -byte* print_line_cursor#21 10.181818181818182 +char *print_line_cursor +char *print_line_cursor#0 // 4289.285714285714 +char *print_line_cursor#10 // 20103.0 +char *print_line_cursor#21 // 10.181818181818182 void print_ln() -byte* print_screen -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 202.0 -signed word print_sint::w#1 22.0 -signed word print_sint::w#2 22.0 -signed word print_sint::w#3 54.16666666666666 -signed word print_sint::w#5 202.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 20002.0 -byte~ print_uchar::$2 20002.0 -byte print_uchar::b -byte print_uchar::b#0 2002.0 -byte print_uchar::b#1 2002.0 -byte print_uchar::b#2 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 701.0 +char *print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // 202.0 +int print_sint::w#1 // 22.0 +int print_sint::w#2 // 22.0 +int print_sint::w#3 // 54.16666666666666 +int print_sint::w#5 // 202.0 +void print_uchar(char b) +char print_uchar::$0 // 20002.0 +char print_uchar::$2 // 20002.0 +char print_uchar::b +char print_uchar::b#0 // 2002.0 +char print_uchar::b#1 // 2002.0 +char print_uchar::b#2 // 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // 701.0 Initial phi equivalence classes [ main::w1#2 main::w1#1 ] @@ -1009,7 +1009,7 @@ Statement [5] print_sint::w#1 = main::w1#1 [ print_char_cursor#55 print_line_cur Statement [9] print_sint::w#2 = main::w2#0 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#2 print_char_cursor#12 ] ( [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#2 print_char_cursor#12 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [16] print_char_cursor#65 = print_line_cursor#0 [ main::w1#1 print_char_cursor#65 print_line_cursor#0 main::i#1 ] ( [ main::w1#1 print_char_cursor#65 print_line_cursor#0 main::i#1 ] { } ) always clobbers reg byte a Statement [21] if(print_sint::w#3<0) goto print_sint::@1 [ print_sint::w#3 print_char_cursor#49 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_sint::w#3 print_char_cursor#49 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#3 print_char_cursor#49 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a -Statement [25] print_uint::w#0 = (word)print_sint::w#5 [ print_char_cursor#12 print_uint::w#0 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a +Statement [25] print_uint::w#0 = (unsigned int)print_sint::w#5 [ print_char_cursor#12 print_uint::w#0 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [30] print_sint::w#0 = - print_sint::w#3 [ print_char_cursor#12 print_sint::w#0 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#12 print_sint::w#0 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#12 print_sint::w#0 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [32] *print_char_cursor#37 = print_char::ch#5 [ print_char_cursor#37 ] ( print_char:8 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#37 ] { { print_char_cursor#12 = print_char_cursor#37 } } print_sint:6::print_char:23 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#37 = print_char_cursor#49 print_char_cursor#55 } } print_sint:10::print_char:23 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } } print_sint:6::print_char:29 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#37 = print_char_cursor#49 print_char_cursor#55 } } print_sint:10::print_char:29 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } } print_sint:6::print_uint:26::print_uchar:47::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_uint::w#0 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:47::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 print_uint::w#0 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } } print_sint:6::print_uint:26::print_uchar:49::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:49::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } } print_sint:6::print_uint:26::print_uchar:47::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_uint::w#0 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:47::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 print_uint::w#0 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } } print_sint:6::print_uint:26::print_uchar:49::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:49::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::i#2 main::i#1 ] @@ -1027,7 +1027,7 @@ Statement [5] print_sint::w#1 = main::w1#1 [ print_char_cursor#55 print_line_cur Statement [9] print_sint::w#2 = main::w2#0 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#2 print_char_cursor#12 ] ( [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#2 print_char_cursor#12 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [16] print_char_cursor#65 = print_line_cursor#0 [ main::w1#1 print_char_cursor#65 print_line_cursor#0 main::i#1 ] ( [ main::w1#1 print_char_cursor#65 print_line_cursor#0 main::i#1 ] { } ) always clobbers reg byte a Statement [21] if(print_sint::w#3<0) goto print_sint::@1 [ print_sint::w#3 print_char_cursor#49 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_sint::w#3 print_char_cursor#49 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#3 print_char_cursor#49 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a -Statement [25] print_uint::w#0 = (word)print_sint::w#5 [ print_char_cursor#12 print_uint::w#0 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a +Statement [25] print_uint::w#0 = (unsigned int)print_sint::w#5 [ print_char_cursor#12 print_uint::w#0 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#12 print_uint::w#0 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [30] print_sint::w#0 = - print_sint::w#3 [ print_char_cursor#12 print_sint::w#0 ] ( print_sint:6 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#12 print_sint::w#0 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } } print_sint:10 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#12 print_sint::w#0 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 } } ) always clobbers reg byte a Statement [32] *print_char_cursor#37 = print_char::ch#5 [ print_char_cursor#37 ] ( print_char:8 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#37 ] { { print_char_cursor#12 = print_char_cursor#37 } } print_sint:6::print_char:23 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#37 = print_char_cursor#49 print_char_cursor#55 } } print_sint:10::print_char:23 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } } print_sint:6::print_char:29 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#37 = print_char_cursor#49 print_char_cursor#55 } } print_sint:10::print_char:29 [ print_line_cursor#21 main::i#2 main::w1#1 print_sint::w#3 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } } print_sint:6::print_uint:26::print_uchar:47::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_uint::w#0 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:47::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 print_uint::w#0 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } } print_sint:6::print_uint:26::print_uchar:49::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:49::print_char:54 [ print_line_cursor#21 main::i#2 main::w1#1 print_uchar::b#2 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#2 = print_char::ch#5 } } print_sint:6::print_uint:26::print_uchar:47::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_uint::w#0 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:47::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 print_uint::w#0 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#0 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } } print_sint:6::print_uint:26::print_uchar:49::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 main::w2#0 print_char_cursor#37 ] { { print_sint::w#1 = print_sint::w#3 main::w1#1 } { print_char_cursor#49 = print_char_cursor#55 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } { print_char_cursor#12 = print_char_cursor#37 } } print_sint:10::print_uint:26::print_uchar:49::print_char:57 [ print_line_cursor#21 main::i#2 main::w1#1 print_char_cursor#37 ] { { print_sint::w#2 = print_sint::w#3 main::w2#0 } { print_char_cursor#12 = print_char_cursor#49 print_char_cursor#37 } { print_uchar::b#1 = print_uchar::b#2 } { print_char::ch#3 = print_char::ch#5 } } ) always clobbers reg byte y Statement [37] print_line_cursor#0 = print_line_cursor#10 + $28 [ print_line_cursor#0 print_char_cursor#12 ] ( print_ln:12 [ main::i#2 main::w1#1 print_line_cursor#0 print_char_cursor#12 ] { } ) always clobbers reg byte a @@ -1102,7 +1102,7 @@ main: { .label w2 = $b .label w1 = 2 .label i = 4 - // [1] call print_cls + // [1] call print_cls // [17] phi from main to print_cls [phi:main->print_cls] print_cls_from_main: jsr print_cls @@ -1150,7 +1150,7 @@ main: { sta.z print_sint.w lda.z w1+1 sta.z print_sint.w+1 - // [6] call print_sint + // [6] call print_sint // [20] phi from main::@1 to print_sint [phi:main::@1->print_sint] print_sint_from___b1: // [20] phi print_char_cursor#49 = print_char_cursor#55 [phi:main::@1->print_sint#0] -- register_copy @@ -1161,7 +1161,7 @@ main: { jmp __b2 // main::@2 __b2: - // [8] call print_char + // [8] call print_char // [31] phi from main::@2 to print_char [phi:main::@2->print_char] print_char_from___b2: // [31] phi print_char_cursor#37 = print_char_cursor#12 [phi:main::@2->print_char#0] -- register_copy @@ -1176,7 +1176,7 @@ main: { sta.z print_sint.w lda.z w2+1 sta.z print_sint.w+1 - // [10] call print_sint + // [10] call print_sint // [20] phi from main::@3 to print_sint [phi:main::@3->print_sint] print_sint_from___b3: // [20] phi print_char_cursor#49 = print_char_cursor#12 [phi:main::@3->print_sint#0] -- register_copy @@ -1187,7 +1187,7 @@ main: { jmp __b4 // main::@4 __b4: - // [12] call print_ln + // [12] call print_ln // [35] phi from main::@4 to print_ln [phi:main::@4->print_ln] print_ln_from___b4: jsr print_ln @@ -1223,7 +1223,7 @@ main: { // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { - // [18] call memset + // [18] call memset // [40] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset @@ -1235,7 +1235,7 @@ print_cls: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp(9) w) +// void print_sint(__zp(9) int w) print_sint: { .label w = 9 // [21] if(print_sint::w#3<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1 @@ -1246,7 +1246,7 @@ print_sint: { jmp __b3 // print_sint::@3 __b3: - // [23] call print_char + // [23] call print_char // [31] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] print_char_from___b3: // [31] phi print_char_cursor#37 = print_char_cursor#49 [phi:print_sint::@3->print_char#0] -- register_copy @@ -1260,8 +1260,8 @@ print_sint: { jmp __b2 // print_sint::@2 __b2: - // [25] print_uint::w#0 = (word)print_sint::w#5 - // [26] call print_uint + // [25] print_uint::w#0 = (unsigned int)print_sint::w#5 + // [26] call print_uint jsr print_uint jmp __breturn // print_sint::@return @@ -1273,7 +1273,7 @@ print_sint: { jmp __b1 // print_sint::@1 __b1: - // [29] call print_char + // [29] call print_char // [31] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] print_char_from___b1: // [31] phi print_char_cursor#37 = print_char_cursor#49 [phi:print_sint::@1->print_char#0] -- register_copy @@ -1295,7 +1295,7 @@ print_sint: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [32] *print_char_cursor#37 = print_char::ch#5 -- _deref_pbuz1=vbuaa ldy #0 @@ -1346,6 +1346,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1354,7 +1355,7 @@ memset: { .label dst = 9 // [41] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: - // [41] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [41] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1392,12 +1393,12 @@ memset: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(9) w) +// void print_uint(__zp(9) unsigned int w) print_uint: { .label w = 9 // [46] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [47] call print_uchar + // [47] call print_uchar // [51] phi from print_uint to print_uchar [phi:print_uint->print_uchar] print_uchar_from_print_uint: // [51] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy @@ -1407,7 +1408,7 @@ print_uint: { __b1: // [48] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [49] call print_uchar + // [49] call print_uchar // [51] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] print_uchar_from___b1: // [51] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy @@ -1420,7 +1421,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // [52] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 txa @@ -1431,7 +1432,7 @@ print_uchar: { // [53] print_char::ch#2 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [54] call print_char + // [54] call print_char // Table of hexadecimal digits // [31] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: @@ -1446,7 +1447,7 @@ print_uchar: { axs #0 // [56] print_char::ch#3 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [57] call print_char + // [57] call print_char // [31] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [31] phi print_char_cursor#37 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy @@ -1533,69 +1534,69 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte main::i -byte main::i#1 i zp[1]:4 11.0 -byte main::i#2 i zp[1]:4 2.0 -signed word main::w1 -signed word main::w1#1 w1 zp[2]:2 2.75 -signed word main::w1#2 w1 zp[2]:2 22.0 -signed word main::w2 -signed word main::w2#0 w2 zp[2]:11 5.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 2002.0 -byte* memset::dst#2 dst zp[2]:9 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#2 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#12 print_char_cursor zp[2]:5 4063.3125 -byte* print_char_cursor#37 print_char_cursor zp[2]:5 110108.5 -byte* print_char_cursor#49 print_char_cursor zp[2]:5 56.0 -byte* print_char_cursor#55 print_char_cursor zp[2]:5 5.5 -byte* print_char_cursor#65 print_char_cursor zp[2]:5 22.0 +char main::i +char main::i#1 // i zp[1]:4 11.0 +char main::i#2 // i zp[1]:4 2.0 +int main::w1 +int main::w1#1 // w1 zp[2]:2 2.75 +int main::w1#2 // w1 zp[2]:2 22.0 +int main::w2 +int main::w2#0 // w2 zp[2]:11 5.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 2002.0 +char *memset::dst#2 // dst zp[2]:9 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#2 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#12 // print_char_cursor zp[2]:5 4063.3125 +char *print_char_cursor#37 // print_char_cursor zp[2]:5 110108.5 +char *print_char_cursor#49 // print_char_cursor zp[2]:5 56.0 +char *print_char_cursor#55 // print_char_cursor zp[2]:5 5.5 +char *print_char_cursor#65 // print_char_cursor zp[2]:5 22.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 4289.285714285714 -byte* print_line_cursor#10 print_line_cursor zp[2]:7 20103.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:7 10.181818181818182 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 4289.285714285714 +char *print_line_cursor#10 // print_line_cursor zp[2]:7 20103.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:7 10.181818181818182 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:9 202.0 -signed word print_sint::w#1 w zp[2]:9 22.0 -signed word print_sint::w#2 w zp[2]:9 22.0 -signed word print_sint::w#3 w zp[2]:9 54.16666666666666 -signed word print_sint::w#5 w zp[2]:9 202.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:9 701.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:9 202.0 +int print_sint::w#1 // w zp[2]:9 22.0 +int print_sint::w#2 // w zp[2]:9 22.0 +int print_sint::w#3 // w zp[2]:9 54.16666666666666 +int print_sint::w#5 // w zp[2]:9 202.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:9 701.0 zp[2]:2 [ main::w1#2 main::w1#1 ] zp[1]:4 [ main::i#2 main::i#1 ] @@ -1634,7 +1635,7 @@ main: { .label w1 = 2 .label i = 4 // print_cls() - // [1] call print_cls + // [1] call print_cls // [17] phi from main to print_cls [phi:main->print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] @@ -1682,7 +1683,7 @@ main: { sta.z print_sint.w lda.z w1+1 sta.z print_sint.w+1 - // [6] call print_sint + // [6] call print_sint // [20] phi from main::@1 to print_sint [phi:main::@1->print_sint] // [20] phi print_char_cursor#49 = print_char_cursor#55 [phi:main::@1->print_sint#0] -- register_copy // [20] phi print_sint::w#3 = print_sint::w#1 [phi:main::@1->print_sint#1] -- register_copy @@ -1690,7 +1691,7 @@ main: { // [7] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print_char(' ') - // [8] call print_char + // [8] call print_char // [31] phi from main::@2 to print_char [phi:main::@2->print_char] // [31] phi print_char_cursor#37 = print_char_cursor#12 [phi:main::@2->print_char#0] -- register_copy // [31] phi print_char::ch#5 = ' ' [phi:main::@2->print_char#1] -- vbuaa=vbuc1 @@ -1703,7 +1704,7 @@ main: { sta.z print_sint.w lda.z w2+1 sta.z print_sint.w+1 - // [10] call print_sint + // [10] call print_sint // [20] phi from main::@3 to print_sint [phi:main::@3->print_sint] // [20] phi print_char_cursor#49 = print_char_cursor#12 [phi:main::@3->print_sint#0] -- register_copy // [20] phi print_sint::w#3 = print_sint::w#2 [phi:main::@3->print_sint#1] -- register_copy @@ -1711,7 +1712,7 @@ main: { // [11] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // print_ln() - // [12] call print_ln + // [12] call print_ln // [35] phi from main::@4 to print_ln [phi:main::@4->print_ln] jsr print_ln // main::@5 @@ -1744,7 +1745,7 @@ main: { // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) - // [18] call memset + // [18] call memset // [40] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return @@ -1754,7 +1755,7 @@ print_cls: { } // print_sint // Print a signed int as HEX -// print_sint(signed word zp(9) w) +// void print_sint(__zp(9) int w) print_sint: { .label w = 9 // if(w<0) @@ -1764,7 +1765,7 @@ print_sint: { // [22] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3] // print_sint::@3 // print_char(' ') - // [23] call print_char + // [23] call print_char // [31] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char] // [31] phi print_char_cursor#37 = print_char_cursor#49 [phi:print_sint::@3->print_char#0] -- register_copy // [31] phi print_char::ch#5 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1 @@ -1775,8 +1776,8 @@ print_sint: { // print_sint::@2 __b2: // print_uint((unsigned int)w) - // [25] print_uint::w#0 = (word)print_sint::w#5 - // [26] call print_uint + // [25] print_uint::w#0 = (unsigned int)print_sint::w#5 + // [26] call print_uint jsr print_uint // print_sint::@return // } @@ -1786,7 +1787,7 @@ print_sint: { // print_sint::@1 __b1: // print_char('-') - // [29] call print_char + // [29] call print_char // [31] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char] // [31] phi print_char_cursor#37 = print_char_cursor#49 [phi:print_sint::@1->print_char#0] -- register_copy // [31] phi print_char::ch#5 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1 @@ -1806,7 +1807,7 @@ print_sint: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [32] *print_char_cursor#37 = print_char::ch#5 -- _deref_pbuz1=vbuaa @@ -1856,6 +1857,7 @@ print_ln: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. +// void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 @@ -1863,7 +1865,7 @@ memset: { .label end = str+num .label dst = 9 // [41] phi from memset to memset::@1 [phi:memset->memset::@1] - // [41] phi memset::dst#2 = (byte*)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 + // [41] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str @@ -1901,13 +1903,13 @@ memset: { } // print_uint // Print a unsigned int as HEX -// print_uint(word zp(9) w) +// void print_uint(__zp(9) unsigned int w) print_uint: { .label w = 9 // print_uchar(BYTE1(w)) // [46] print_uchar::b#0 = byte1 print_uint::w#0 -- vbuxx=_byte1_vwuz1 ldx.z w+1 - // [47] call print_uchar + // [47] call print_uchar // [51] phi from print_uint to print_uchar [phi:print_uint->print_uchar] // [51] phi print_uchar::b#2 = print_uchar::b#0 [phi:print_uint->print_uchar#0] -- register_copy jsr print_uchar @@ -1915,7 +1917,7 @@ print_uint: { // print_uchar(BYTE0(w)) // [48] print_uchar::b#1 = byte0 print_uint::w#0 -- vbuxx=_byte0_vwuz1 ldx.z w - // [49] call print_uchar + // [49] call print_uchar // [51] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar] // [51] phi print_uchar::b#2 = print_uchar::b#1 [phi:print_uint::@1->print_uchar#0] -- register_copy jsr print_uchar @@ -1926,7 +1928,7 @@ print_uint: { } // print_uchar // Print a char as HEX -// print_uchar(byte register(X) b) +// void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [52] print_uchar::$0 = print_uchar::b#2 >> 4 -- vbuaa=vbuxx_ror_4 @@ -1939,7 +1941,7 @@ print_uchar: { // [53] print_char::ch#2 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y - // [54] call print_char + // [54] call print_char // Table of hexadecimal digits // [31] phi from print_uchar to print_char [phi:print_uchar->print_char] // [31] phi print_char_cursor#37 = print_char_cursor#12 [phi:print_uchar->print_char#0] -- register_copy @@ -1953,7 +1955,7 @@ print_uchar: { // print_char(print_hextab[b&$f]) // [56] print_char::ch#3 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x - // [57] call print_char + // [57] call print_char // [31] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [31] phi print_char_cursor#37 = print_char_cursor#12 [phi:print_uchar::@1->print_char#0] -- register_copy // [31] phi print_char::ch#5 = print_char::ch#3 [phi:print_uchar::@1->print_char#1] -- register_copy diff --git a/src/test/ref/test-signed-word-minus-byte.sym b/src/test/ref/test-signed-word-minus-byte.sym index 23470ec1c..e6f9e2544 100644 --- a/src/test/ref/test-signed-word-minus-byte.sym +++ b/src/test/ref/test-signed-word-minus-byte.sym @@ -1,66 +1,66 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte main::i -byte main::i#1 i zp[1]:4 11.0 -byte main::i#2 i zp[1]:4 2.0 -signed word main::w1 -signed word main::w1#1 w1 zp[2]:2 2.75 -signed word main::w1#2 w1 zp[2]:2 22.0 -signed word main::w2 -signed word main::w2#0 w2 zp[2]:11 5.5 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -constant byte memset::c#0 c = ' ' -byte* memset::dst -byte* memset::dst#1 dst zp[2]:9 2002.0 -byte* memset::dst#2 dst zp[2]:9 1334.6666666666667 -byte* memset::end -constant byte* memset::end#0 end = (byte*)memset::str#0+memset::num#0 -word memset::num -constant word memset::num#0 num = $3e8 -void* memset::return -void* memset::str -constant void* memset::str#0 str = (void*)print_screen#0 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#2 reg byte a 20002.0 -byte print_char::ch#3 reg byte a 20002.0 -byte print_char::ch#5 reg byte a 120003.0 -byte* print_char_cursor -byte* print_char_cursor#12 print_char_cursor zp[2]:5 4063.3125 -byte* print_char_cursor#37 print_char_cursor zp[2]:5 110108.5 -byte* print_char_cursor#49 print_char_cursor zp[2]:5 56.0 -byte* print_char_cursor#55 print_char_cursor zp[2]:5 5.5 -byte* print_char_cursor#65 print_char_cursor zp[2]:5 22.0 +char main::i +char main::i#1 // i zp[1]:4 11.0 +char main::i#2 // i zp[1]:4 2.0 +int main::w1 +int main::w1#1 // w1 zp[2]:2 2.75 +int main::w1#2 // w1 zp[2]:2 22.0 +int main::w2 +int main::w2#0 // w2 zp[2]:11 5.5 +void * memset(void *str , char c , unsigned int num) +char memset::c +__constant char memset::c#0 = ' ' // c +char *memset::dst +char *memset::dst#1 // dst zp[2]:9 2002.0 +char *memset::dst#2 // dst zp[2]:9 1334.6666666666667 +char *memset::end +__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end +unsigned int memset::num +__constant unsigned int memset::num#0 = $3e8 // num +void *memset::return +void *memset::str +__constant void *memset::str#0 = (void *)print_screen#0 // str +void print_char(char ch) +char print_char::ch +char print_char::ch#2 // reg byte a 20002.0 +char print_char::ch#3 // reg byte a 20002.0 +char print_char::ch#5 // reg byte a 120003.0 +char *print_char_cursor +char *print_char_cursor#12 // print_char_cursor zp[2]:5 4063.3125 +char *print_char_cursor#37 // print_char_cursor zp[2]:5 110108.5 +char *print_char_cursor#49 // print_char_cursor zp[2]:5 56.0 +char *print_char_cursor#55 // print_char_cursor zp[2]:5 5.5 +char *print_char_cursor#65 // print_char_cursor zp[2]:5 22.0 void print_cls() -constant const byte* print_hextab[] = "0123456789abcdef"z -byte* print_line_cursor -byte* print_line_cursor#0 print_line_cursor zp[2]:7 4289.285714285714 -byte* print_line_cursor#10 print_line_cursor zp[2]:7 20103.0 -byte* print_line_cursor#21 print_line_cursor zp[2]:7 10.181818181818182 +__constant const char print_hextab[] = "0123456789abcdef"z +char *print_line_cursor +char *print_line_cursor#0 // print_line_cursor zp[2]:7 4289.285714285714 +char *print_line_cursor#10 // print_line_cursor zp[2]:7 20103.0 +char *print_line_cursor#21 // print_line_cursor zp[2]:7 10.181818181818182 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_sint(signed word print_sint::w) -signed word print_sint::w -signed word print_sint::w#0 w zp[2]:9 202.0 -signed word print_sint::w#1 w zp[2]:9 22.0 -signed word print_sint::w#2 w zp[2]:9 22.0 -signed word print_sint::w#3 w zp[2]:9 54.16666666666666 -signed word print_sint::w#5 w zp[2]:9 202.0 -void print_uchar(byte print_uchar::b) -byte~ print_uchar::$0 reg byte a 20002.0 -byte~ print_uchar::$2 reg byte x 20002.0 -byte print_uchar::b -byte print_uchar::b#0 reg byte x 2002.0 -byte print_uchar::b#1 reg byte x 2002.0 -byte print_uchar::b#2 reg byte x 5501.0 -void print_uint(word print_uint::w) -word print_uint::w -word print_uint::w#0 w zp[2]:9 701.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_sint(int w) +int print_sint::w +int print_sint::w#0 // w zp[2]:9 202.0 +int print_sint::w#1 // w zp[2]:9 22.0 +int print_sint::w#2 // w zp[2]:9 22.0 +int print_sint::w#3 // w zp[2]:9 54.16666666666666 +int print_sint::w#5 // w zp[2]:9 202.0 +void print_uchar(char b) +char print_uchar::$0 // reg byte a 20002.0 +char print_uchar::$2 // reg byte x 20002.0 +char print_uchar::b +char print_uchar::b#0 // reg byte x 2002.0 +char print_uchar::b#1 // reg byte x 2002.0 +char print_uchar::b#2 // reg byte x 5501.0 +void print_uint(unsigned int w) +unsigned int print_uint::w +unsigned int print_uint::w#0 // w zp[2]:9 701.0 zp[2]:2 [ main::w1#2 main::w1#1 ] zp[1]:4 [ main::i#2 main::i#1 ] diff --git a/src/test/ref/test-word-size-arrays.cfg b/src/test/ref/test-word-size-arrays.cfg index f674231ca..010ca756e 100644 --- a/src/test/ref/test-word-size-arrays.cfg +++ b/src/test/ref/test-word-size-arrays.cfg @@ -5,7 +5,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@4 [1] main::line#10 = phi( main/0, main::@4/main::line#2 ) - [2] if(main::line#10<(word)$28*$18) goto main::@2 + [2] if(main::line#10<(unsigned int)$28*$18) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@1 main::@6 [3] main::c1#2 = phi( main::@1/0, main::@6/main::c1#1 ) diff --git a/src/test/ref/test-word-size-arrays.log b/src/test/ref/test-word-size-arrays.log index 4e41c9115..43010a173 100644 --- a/src/test/ref/test-word-size-arrays.log +++ b/src/test/ref/test-word-size-arrays.log @@ -57,7 +57,7 @@ main::@return: scope:[main] from main::@7 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -68,36 +68,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -bool~ main::$1 -word~ main::$2 -word~ main::$3 -number~ main::$4 -bool~ main::$5 -word~ main::$6 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c1 -byte main::c1#0 -byte main::c1#1 -byte main::c1#2 -byte main::c1#3 -word main::line -word main::line#0 -word main::line#1 -word main::line#10 -word main::line#2 -word main::line#3 -word main::line#4 -word main::line#5 -word main::line#6 -word main::line#7 -word main::line#8 -word main::line#9 -constant byte* main::screen = (byte*)$400 +bool main::$0 +bool main::$1 +unsigned int main::$2 +unsigned int main::$3 +number main::$4 +bool main::$5 +unsigned int main::$6 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c1 +char main::c1#0 +char main::c1#1 +char main::c1#2 +char main::c1#3 +unsigned int main::line +unsigned int main::line#0 +unsigned int main::line#1 +unsigned int main::line#10 +unsigned int main::line#2 +unsigned int main::line#3 +unsigned int main::line#4 +unsigned int main::line#5 +unsigned int main::line#6 +unsigned int main::line#7 +unsigned int main::line#8 +unsigned int main::line#9 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 0 in main::line#1 = 0 Adding number conversion cast (unumber) $28*$18 in main::$0 = main::line#3 < $28*$18 @@ -109,20 +109,20 @@ Adding number conversion cast (unumber) $28 in main::$5 = main::c1#2 < $28 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::line#1 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$4 = main::$3 + $28 +Inferred type updated to unsigned int in main::$4 = main::$3 + $28 Alias main::line#10 = main::line#9 main::line#3 Alias main::line#4 = main::line#7 main::line#5 Alias main::c#2 = main::c#3 @@ -134,7 +134,7 @@ Identical Phi Values main::line#6 main::line#10 Successful SSA optimization Pass2IdenticalPhiElimination Identified duplicate assignment right side [14] main::$3 = main::line#10 + main::c#2 Successful SSA optimization Pass2DuplicateRValueIdentification -Simple Condition main::$0 [4] if(main::line#10<(word)$28*$18) goto main::@2 +Simple Condition main::$0 [4] if(main::line#10<(unsigned int)$28*$18) goto main::@2 Simple Condition main::$1 [9] if(main::c#2<$28) goto main::@5 Simple Condition main::$5 [18] if(main::c1#2<$28) goto main::@8 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -167,8 +167,8 @@ Consolidated constant in assignment main::$7 Successful SSA optimization Pass2ConstantAdditionElimination Alias main::$4 = main::$3 Successful SSA optimization Pass2AliasElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $18 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $18 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -197,7 +197,7 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@4 [1] main::line#10 = phi( main/0, main::@4/main::line#2 ) - [2] if(main::line#10<(word)$28*$18) goto main::@2 + [2] if(main::line#10<(unsigned int)$28*$18) goto main::@2 to:main::@5 main::@5: scope:[main] from main::@1 main::@6 [3] main::c1#2 = phi( main::@1/0, main::@6/main::c1#1 ) @@ -230,20 +230,20 @@ main::@3: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -word~ main::$4 151.5 -word~ main::$6 22.0 -byte*~ main::$7 101.0 -byte*~ main::$8 202.0 -byte*~ main::$9 22.0 -byte main::c -byte main::c#1 202.0 -byte main::c#2 67.33333333333333 -byte main::c1 -byte main::c1#1 22.0 -byte main::c1#2 8.8 -word main::line -word main::line#10 9.666666666666666 -word main::line#2 22.0 +unsigned int main::$4 // 151.5 +unsigned int main::$6 // 22.0 +char *main::$7 // 101.0 +char *main::$8 // 202.0 +char *main::$9 // 22.0 +char main::c +char main::c#1 // 202.0 +char main::c#2 // 67.33333333333333 +char main::c1 +char main::c1#1 // 22.0 +char main::c1#2 // 8.8 +unsigned int main::line +unsigned int main::line#10 // 9.666666666666666 +unsigned int main::line#2 // 22.0 Initial phi equivalence classes [ main::line#10 main::line#2 ] @@ -272,7 +272,7 @@ Allocated zp[2]:10 [ main::$4 ] Allocated zp[2]:12 [ main::$7 ] Allocated zp[2]:14 [ main::$8 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] if(main::line#10<(word)$28*$18) goto main::@2 [ main::line#10 ] ( [ main::line#10 ] { } ) always clobbers reg byte a +Statement [2] if(main::line#10<(unsigned int)$28*$18) goto main::@2 [ main::line#10 ] ( [ main::line#10 ] { } ) always clobbers reg byte a Statement [6] main::$6 = main::line#10 + main::c1#2 [ main::line#10 main::c1#2 main::$6 ] ( [ main::line#10 main::c1#2 main::$6 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::c1#2 main::c1#1 ] Statement [7] main::$9 = main::screen + main::$6 [ main::line#10 main::c1#2 main::$9 ] ( [ main::line#10 main::c1#2 main::$9 ] { } ) always clobbers reg byte a @@ -285,7 +285,7 @@ Statement [14] main::$7 = main::screen+$28 + main::$4 [ main::line#10 main::c#2 Statement [15] main::$8 = main::screen + main::$4 [ main::line#10 main::c#2 main::$7 main::$8 ] ( [ main::line#10 main::c#2 main::$7 main::$8 ] { } ) always clobbers reg byte a Statement [16] *main::$8 = *main::$7 [ main::line#10 main::c#2 ] ( [ main::line#10 main::c#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:5 [ main::c#2 main::c#1 ] -Statement [2] if(main::line#10<(word)$28*$18) goto main::@2 [ main::line#10 ] ( [ main::line#10 ] { } ) always clobbers reg byte a +Statement [2] if(main::line#10<(unsigned int)$28*$18) goto main::@2 [ main::line#10 ] ( [ main::line#10 ] { } ) always clobbers reg byte a Statement [6] main::$6 = main::line#10 + main::c1#2 [ main::line#10 main::c1#2 main::$6 ] ( [ main::line#10 main::c1#2 main::$6 ] { } ) always clobbers reg byte a Statement [7] main::$9 = main::screen + main::$6 [ main::line#10 main::c1#2 main::$9 ] ( [ main::line#10 main::c1#2 main::$9 ] { } ) always clobbers reg byte a Statement [8] *main::$9 = ' ' [ main::line#10 main::c1#2 ] ( [ main::line#10 main::c1#2 ] { } ) always clobbers reg byte a reg byte y @@ -347,7 +347,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] if(main::line#10<(word)$28*$18) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 + // [2] if(main::line#10<(unsigned int)$28*$18) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z line+1 cmp #>$28*$18 bcc __b2_from___b1 @@ -488,21 +488,21 @@ Succesful ASM optimization Pass5RelabelLongLabels FINAL SYMBOL TABLE void main() -word~ main::$4 zp[2]:6 151.5 -word~ main::$6 zp[2]:4 22.0 -byte*~ main::$7 zp[2]:8 101.0 -byte*~ main::$8 zp[2]:6 202.0 -byte*~ main::$9 zp[2]:4 22.0 -byte main::c -byte main::c#1 reg byte x 202.0 -byte main::c#2 reg byte x 67.33333333333333 -byte main::c1 -byte main::c1#1 reg byte x 22.0 -byte main::c1#2 reg byte x 8.8 -word main::line -word main::line#10 line zp[2]:2 9.666666666666666 -word main::line#2 line zp[2]:2 22.0 -constant byte* main::screen = (byte*) 1024 +unsigned int main::$4 // zp[2]:6 151.5 +unsigned int main::$6 // zp[2]:4 22.0 +char *main::$7 // zp[2]:8 101.0 +char *main::$8 // zp[2]:6 202.0 +char *main::$9 // zp[2]:4 22.0 +char main::c +char main::c#1 // reg byte x 202.0 +char main::c#2 // reg byte x 67.33333333333333 +char main::c1 +char main::c1#1 // reg byte x 22.0 +char main::c1#2 // reg byte x 8.8 +unsigned int main::line +unsigned int main::line#10 // line zp[2]:2 9.666666666666666 +unsigned int main::line#2 // line zp[2]:2 22.0 +__constant char *main::screen = (char *) 1024 zp[2]:2 [ main::line#10 main::line#2 ] reg byte x [ main::c1#2 main::c1#1 ] @@ -544,7 +544,7 @@ main: { // main::@1 __b1: // for (line = 0; line < 40*24; line += 40) - // [2] if(main::line#10<(word)$28*$18) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 + // [2] if(main::line#10<(unsigned int)$28*$18) goto main::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z line+1 cmp #>$28*$18 bcc __b4 diff --git a/src/test/ref/test-word-size-arrays.sym b/src/test/ref/test-word-size-arrays.sym index c97029272..5996ecad5 100644 --- a/src/test/ref/test-word-size-arrays.sym +++ b/src/test/ref/test-word-size-arrays.sym @@ -1,19 +1,19 @@ void main() -word~ main::$4 zp[2]:6 151.5 -word~ main::$6 zp[2]:4 22.0 -byte*~ main::$7 zp[2]:8 101.0 -byte*~ main::$8 zp[2]:6 202.0 -byte*~ main::$9 zp[2]:4 22.0 -byte main::c -byte main::c#1 reg byte x 202.0 -byte main::c#2 reg byte x 67.33333333333333 -byte main::c1 -byte main::c1#1 reg byte x 22.0 -byte main::c1#2 reg byte x 8.8 -word main::line -word main::line#10 line zp[2]:2 9.666666666666666 -word main::line#2 line zp[2]:2 22.0 -constant byte* main::screen = (byte*) 1024 +unsigned int main::$4 // zp[2]:6 151.5 +unsigned int main::$6 // zp[2]:4 22.0 +char *main::$7 // zp[2]:8 101.0 +char *main::$8 // zp[2]:6 202.0 +char *main::$9 // zp[2]:4 22.0 +char main::c +char main::c#1 // reg byte x 202.0 +char main::c#2 // reg byte x 67.33333333333333 +char main::c1 +char main::c1#1 // reg byte x 22.0 +char main::c1#2 // reg byte x 8.8 +unsigned int main::line +unsigned int main::line#10 // line zp[2]:2 9.666666666666666 +unsigned int main::line#2 // line zp[2]:2 22.0 +__constant char *main::screen = (char *) 1024 zp[2]:2 [ main::line#10 main::line#2 ] reg byte x [ main::c1#2 main::c1#1 ] diff --git a/src/test/ref/tetris-npe.log b/src/test/ref/tetris-npe.log index 37e5bd1e7..c17c311e0 100644 --- a/src/test/ref/tetris-npe.log +++ b/src/test/ref/tetris-npe.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -50,7 +50,7 @@ __start::__init1: scope:[__start] from __start __start::@1: scope:[__start] from __start::__init1 ypos#11 = phi( __start::__init1/ypos#2 ) counter#12 = phi( __start::__init1/counter#3 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 ypos#7 = phi( __start::@1/ypos#1 ) @@ -67,55 +67,55 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* RASTER = (byte*)$d012 -constant byte RATE = $32 -constant byte* SCREEN = (byte*)$400 +__constant char *RASTER = (char *)$d012 +__constant char RATE = $32 +__constant char *SCREEN = (char *)$400 void __start() -byte counter -byte counter#0 -byte counter#1 -byte counter#10 -byte counter#11 -byte counter#12 -byte counter#13 -byte counter#2 -byte counter#3 -byte counter#4 -byte counter#5 -byte counter#6 -byte counter#7 -byte counter#8 -byte counter#9 +char counter +char counter#0 +char counter#1 +char counter#10 +char counter#11 +char counter#12 +char counter#13 +char counter#2 +char counter#3 +char counter#4 +char counter#5 +char counter#6 +char counter#7 +char counter#8 +char counter#9 void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$2 -byte ypos -byte ypos#0 -byte ypos#1 -byte ypos#10 -byte ypos#11 -byte ypos#12 -byte ypos#13 -byte ypos#2 -byte ypos#3 -byte ypos#4 -byte ypos#5 -byte ypos#6 -byte ypos#7 -byte ypos#8 -byte ypos#9 +bool main::$0 +bool main::$1 +bool main::$2 +char ypos +char ypos#0 +char ypos#1 +char ypos#10 +char ypos#11 +char ypos#12 +char ypos#13 +char ypos#2 +char ypos#3 +char ypos#4 +char ypos#5 +char ypos#6 +char ypos#7 +char ypos#8 +char ypos#9 Adding number conversion cast (unumber) $ff in main::$0 = *RASTER != $ff Adding number conversion cast (unumber) 0 in main::$1 = counter#0 == 0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53266 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53266 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [9] main::$2 = counter#0 != 0 from [8] main::$1 = counter#0 == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -196,13 +196,13 @@ main::@4: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS -byte counter -byte counter#0 151.5 -byte counter#11 101.0 +char counter +char counter#0 // 151.5 +char counter#11 // 101.0 void main() -byte ypos -byte ypos#0 16.5 -byte ypos#1 56.0 +char ypos +char ypos#0 // 16.5 +char ypos#1 // 56.0 Initial phi equivalence classes [ counter#11 counter#0 ] @@ -312,16 +312,16 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* RASTER = (byte*) 53266 -constant byte RATE = $32 -constant byte* SCREEN = (byte*) 1024 -byte counter -byte counter#0 reg byte y 151.5 -byte counter#11 reg byte y 101.0 +__constant char *RASTER = (char *) 53266 +__constant char RATE = $32 +__constant char *SCREEN = (char *) 1024 +char counter +char counter#0 // reg byte y 151.5 +char counter#11 // reg byte y 101.0 void main() -byte ypos -byte ypos#0 reg byte x 16.5 -byte ypos#1 reg byte x 56.0 +char ypos +char ypos#0 // reg byte x 16.5 +char ypos#1 // reg byte x 56.0 reg byte y [ counter#11 counter#0 ] reg byte x [ ypos#1 ypos#0 ] diff --git a/src/test/ref/tetris-npe.sym b/src/test/ref/tetris-npe.sym index bb3e5dd40..28bafc298 100644 --- a/src/test/ref/tetris-npe.sym +++ b/src/test/ref/tetris-npe.sym @@ -1,13 +1,13 @@ -constant byte* RASTER = (byte*) 53266 -constant byte RATE = $32 -constant byte* SCREEN = (byte*) 1024 -byte counter -byte counter#0 reg byte y 151.5 -byte counter#11 reg byte y 101.0 +__constant char *RASTER = (char *) 53266 +__constant char RATE = $32 +__constant char *SCREEN = (char *) 1024 +char counter +char counter#0 // reg byte y 151.5 +char counter#11 // reg byte y 101.0 void main() -byte ypos -byte ypos#0 reg byte x 16.5 -byte ypos#1 reg byte x 56.0 +char ypos +char ypos#0 // reg byte x 16.5 +char ypos#1 // reg byte x 56.0 reg byte y [ counter#11 counter#0 ] reg byte x [ ypos#1 ypos#0 ] diff --git a/src/test/ref/tod-1.asm b/src/test/ref/tod-1.asm index d3e7ccc25..d52a9957e 100644 --- a/src/test/ref/tod-1.asm +++ b/src/test/ref/tod-1.asm @@ -105,7 +105,7 @@ main: { jmp __b1 } // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .label __5 = $12 .label __6 = $e @@ -180,7 +180,7 @@ gotoxy: { } // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($c) tod_TENTHS, byte zp($d) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) +// void tod_init(__zp($c) char tod_TENTHS, __zp($d) char tod_SEC, __register(X) char tod_MIN, __register(Y) char tod_HOURS) tod_init: { .label tod_TENTHS = $c .label tod_SEC = $d @@ -227,7 +227,7 @@ tod_read: { rts } // Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($d) tod_TENTHS, byte zp($14) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) +// char * tod_str(__zp($d) char tod_TENTHS, __zp($14) char tod_SEC, __register(Y) char tod_MIN, __register(X) char tod_HOURS) tod_str: { .label tod_TENTHS = $d .label tod_SEC = $14 @@ -311,7 +311,7 @@ tod_str: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 lda #> 4 [64] tod_str::$1 = '0' + tod_str::$0 @@ -149,7 +149,7 @@ tod_str::@return: scope:[tod_str] from tod_str [87] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@4 [88] phi() to:cputs::@1 @@ -164,10 +164,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [94] cputc::c#0 = cputs::c#1 - [95] call cputc + [95] call cputc to:cputs::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [96] if(cputc::c#0==' ') goto cputc::@1 @@ -180,14 +180,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [101] phi() - [102] call cputln + [102] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [103] return to:@return cputc::@1: scope:[cputc] from cputc [104] phi() - [105] call cputln + [105] call cputln to:cputc::@return void cputln() @@ -196,7 +196,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [107] conio_line_color = conio_line_color + $28 [108] conio_cursor_x = 0 [109] conio_cursor_y = ++ conio_cursor_y - [110] call cscroll + [110] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [111] return @@ -208,19 +208,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [113] phi() - [114] call memcpy + [114] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [115] phi() - [116] call memcpy + [116] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [117] phi() - [118] call memset + [118] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [119] phi() - [120] call memset + [120] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [121] conio_line_text = conio_line_text - $28 @@ -231,13 +231,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [124] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [125] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [125] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [126] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [127] memcpy::src#4 = (byte*)memcpy::source#2 - [128] memcpy::dst#4 = (byte*)memcpy::destination#2 + [125] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [125] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [127] memcpy::src#4 = (char *)memcpy::source#2 + [128] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [129] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -253,14 +253,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [134] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [135] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [135] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [135] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [136] memset::end#0 = (byte*)memset::str#3 + $28 - [137] memset::dst#4 = (byte*)memset::str#3 + [136] memset::end#0 = (char *)memset::str#3 + $28 + [137] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [138] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/tod-1.log b/src/test/ref/tod-1.log index afaf5f544..b68b569aa 100644 --- a/src/test/ref/tod-1.log +++ b/src/test/ref/tod-1.log @@ -1,5 +1,5 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 @@ -9,7 +9,7 @@ Unwinding list assignment { tod_read::return_TENTHS#1, tod_read::return_SEC#1, t CONTROL FLOW GRAPH SSA -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 main::@2 gotoxy::x#6 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1, main::@2/gotoxy::x#3 ) gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1, main::@2/gotoxy::y#3 ) @@ -33,7 +33,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#5 = phi( gotoxy::@1/gotoxy::x#4, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#5 conio_cursor_y = gotoxy::y#5 - gotoxy::$7 = (word)gotoxy::y#5 + gotoxy::$7 = (unsigned int)gotoxy::y#5 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -48,7 +48,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 cputc::c#1 = phi( cputs::@2/cputc::c#0 ) cputc::$0 = cputc::c#1 == ' @@ -56,7 +56,7 @@ cputc: scope:[cputc] from cputs::@2 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -70,7 +70,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -84,7 +84,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -92,7 +92,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@6 cputs::s#3 = phi( main::@6/cputs::s#1 ) cputs::c#0 = 0 @@ -109,7 +109,7 @@ cputs::@2: scope:[cputs] from cputs::@1 cputs::s#5 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 - call cputc + call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#4 = phi( cputs::@2/cputs::s#5 ) @@ -118,14 +118,14 @@ cputs::@return: scope:[cputs] from cputs::@1 return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -155,7 +155,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -172,9 +172,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -209,31 +209,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -244,7 +244,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -263,7 +263,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -274,18 +274,18 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void tod_init(byte tod_init::tod_TENTHS , byte tod_init::tod_SEC , byte tod_init::tod_MIN , byte tod_init::tod_HOURS) +void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) tod_init: scope:[tod_init] from main tod_init::tod_TENTHS#1 = phi( main/tod_init::tod_TENTHS#0 ) tod_init::tod_SEC#1 = phi( main/tod_init::tod_SEC#0 ) tod_init::tod_MIN#1 = phi( main/tod_init::tod_MIN#0 ) tod_init::tod_HOURS#1 = phi( main/tod_init::tod_HOURS#0 ) - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#1 - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#1 - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#1 - *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#1 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#1 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#1 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#1 + *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#1 to:tod_init::@return tod_init::@return: scope:[tod_init] from tod_init return @@ -293,10 +293,10 @@ tod_init::@return: scope:[tod_init] from tod_init struct TIME_OF_DAY tod_read() tod_read: scope:[tod_read] from main::@4 - tod_read::hours#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) - tod_read::mins#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) - tod_read::secs#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) - tod_read::tenths#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + tod_read::hours#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + tod_read::mins#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + tod_read::secs#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + tod_read::tenths#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) tod_read::tod_TENTHS#0 = tod_read::tenths#0 tod_read::tod_SEC#0 = tod_read::secs#0 tod_read::tod_MIN#0 = tod_read::mins#0 @@ -316,7 +316,7 @@ tod_read::@return: scope:[tod_read] from tod_read return to:@return -byte* tod_str(byte tod_str::tod_TENTHS , byte tod_str::tod_SEC , byte tod_str::tod_MIN , byte tod_str::tod_HOURS) +char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) tod_str: scope:[tod_str] from main::@5 tod_str::tod_TENTHS#1 = phi( main::@5/tod_str::tod_TENTHS#0 ) tod_str::tod_SEC#1 = phi( main::@5/tod_str::tod_SEC#0 ) @@ -356,11 +356,11 @@ tod_str::@return: scope:[tod_str] from tod_str void main() main: scope:[main] from __start::@1 - tod_init::tod_TENTHS#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_TENTHS) - tod_init::tod_SEC#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) - tod_init::tod_MIN#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) - tod_init::tod_HOURS#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) - call tod_init + tod_init::tod_TENTHS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_TENTHS) + tod_init::tod_SEC#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) + tod_init::tod_MIN#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) + tod_init::tod_HOURS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) + call tod_init to:main::@3 main::@3: scope:[main] from main to:main::@1 @@ -371,10 +371,10 @@ main::@1: scope:[main] from main::@3 main::@7 main::@2: scope:[main] from main::@1 gotoxy::x#3 = 0 gotoxy::y#3 = 0 - call gotoxy + call gotoxy to:main::@4 main::@4: scope:[main] from main::@2 - call tod_read + call tod_read tod_read::return_TENTHS#1 = tod_read::return_TENTHS#2 tod_read::return_SEC#1 = tod_read::return_SEC#2 tod_read::return_MIN#1 = tod_read::return_MIN#2 @@ -393,14 +393,14 @@ main::@5: scope:[main] from main::@4 tod_str::tod_SEC#0 = main::$2_SEC tod_str::tod_MIN#0 = main::$2_MIN tod_str::tod_HOURS#0 = main::$2_HOURS - call tod_str + call tod_str tod_str::return#2 = tod_str::return#1 to:main::@6 main::@6: scope:[main] from main::@5 tod_str::return#4 = phi( main::@5/tod_str::return#2 ) main::$3 = tod_str::return#4 cputs::s#1 = main::$3 - call cputs + call cputs to:main::@7 main::@7: scope:[main] from main::@6 to:main::@1 @@ -418,12 +418,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -432,270 +432,270 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*)$dc00 -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 -constant byte OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 -constant byte OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 -constant byte OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 -constant byte OFFSET_STRUCT_TIME_OF_DAY_TENTHS = 0 -struct TIME_OF_DAY TOD_ZERO loadstore = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *)$dc00 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 +__constant char OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 +__constant char OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 +__constant char OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 +__constant char OFFSET_STRUCT_TIME_OF_DAY_TENTHS = 0 +__loadstore struct TIME_OF_DAY TOD_ZERO = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } void __start() void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::x#7 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 -byte gotoxy::y#7 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::x#7 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 +char gotoxy::y#7 void main() -byte~ main::$2_HOURS -byte~ main::$2_MIN -byte~ main::$2_SEC -byte~ main::$2_TENTHS -byte*~ main::$3 -bool~ main::$5 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -constant byte* tod_buffer[] = "00:00:00:00" -void tod_init(byte tod_init::tod_TENTHS , byte tod_init::tod_SEC , byte tod_init::tod_MIN , byte tod_init::tod_HOURS) +char main::$2_HOURS +char main::$2_MIN +char main::$2_SEC +char main::$2_TENTHS +char *main::$3 +bool main::$5 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +__constant char tod_buffer[] = "00:00:00:00" +void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) struct TIME_OF_DAY tod_init::tod -byte tod_init::tod_HOURS -byte tod_init::tod_HOURS#0 -byte tod_init::tod_HOURS#1 -byte tod_init::tod_MIN -byte tod_init::tod_MIN#0 -byte tod_init::tod_MIN#1 -byte tod_init::tod_SEC -byte tod_init::tod_SEC#0 -byte tod_init::tod_SEC#1 -byte tod_init::tod_TENTHS -byte tod_init::tod_TENTHS#0 -byte tod_init::tod_TENTHS#1 +char tod_init::tod_HOURS +char tod_init::tod_HOURS#0 +char tod_init::tod_HOURS#1 +char tod_init::tod_MIN +char tod_init::tod_MIN#0 +char tod_init::tod_MIN#1 +char tod_init::tod_SEC +char tod_init::tod_SEC#0 +char tod_init::tod_SEC#1 +char tod_init::tod_TENTHS +char tod_init::tod_TENTHS#0 +char tod_init::tod_TENTHS#1 struct TIME_OF_DAY tod_read() -byte tod_read::hours -byte tod_read::hours#0 -byte tod_read::mins -byte tod_read::mins#0 +char tod_read::hours +char tod_read::hours#0 +char tod_read::mins +char tod_read::mins#0 struct TIME_OF_DAY tod_read::return struct TIME_OF_DAY tod_read::return#0 struct TIME_OF_DAY tod_read::return#1 -byte tod_read::return_HOURS -byte tod_read::return_HOURS#0 -byte tod_read::return_HOURS#1 -byte tod_read::return_HOURS#2 -byte tod_read::return_HOURS#3 -byte tod_read::return_MIN -byte tod_read::return_MIN#0 -byte tod_read::return_MIN#1 -byte tod_read::return_MIN#2 -byte tod_read::return_MIN#3 -byte tod_read::return_SEC -byte tod_read::return_SEC#0 -byte tod_read::return_SEC#1 -byte tod_read::return_SEC#2 -byte tod_read::return_SEC#3 -byte tod_read::return_TENTHS -byte tod_read::return_TENTHS#0 -byte tod_read::return_TENTHS#1 -byte tod_read::return_TENTHS#2 -byte tod_read::return_TENTHS#3 -byte tod_read::secs -byte tod_read::secs#0 -byte tod_read::tenths -byte tod_read::tenths#0 -byte tod_read::tod_HOURS -byte tod_read::tod_HOURS#0 -byte tod_read::tod_MIN -byte tod_read::tod_MIN#0 -byte tod_read::tod_SEC -byte tod_read::tod_SEC#0 -byte tod_read::tod_TENTHS -byte tod_read::tod_TENTHS#0 -byte* tod_str(byte tod_str::tod_TENTHS , byte tod_str::tod_SEC , byte tod_str::tod_MIN , byte tod_str::tod_HOURS) -byte~ tod_str::$0 -byte~ tod_str::$1 -number~ tod_str::$10 -number~ tod_str::$11 -byte~ tod_str::$12 -byte~ tod_str::$13 -number~ tod_str::$14 -number~ tod_str::$15 -number~ tod_str::$2 -number~ tod_str::$3 -byte~ tod_str::$4 -byte~ tod_str::$5 -number~ tod_str::$6 -number~ tod_str::$7 -byte~ tod_str::$8 -byte~ tod_str::$9 -byte* tod_str::return -byte* tod_str::return#0 -byte* tod_str::return#1 -byte* tod_str::return#2 -byte* tod_str::return#3 -byte* tod_str::return#4 +char tod_read::return_HOURS +char tod_read::return_HOURS#0 +char tod_read::return_HOURS#1 +char tod_read::return_HOURS#2 +char tod_read::return_HOURS#3 +char tod_read::return_MIN +char tod_read::return_MIN#0 +char tod_read::return_MIN#1 +char tod_read::return_MIN#2 +char tod_read::return_MIN#3 +char tod_read::return_SEC +char tod_read::return_SEC#0 +char tod_read::return_SEC#1 +char tod_read::return_SEC#2 +char tod_read::return_SEC#3 +char tod_read::return_TENTHS +char tod_read::return_TENTHS#0 +char tod_read::return_TENTHS#1 +char tod_read::return_TENTHS#2 +char tod_read::return_TENTHS#3 +char tod_read::secs +char tod_read::secs#0 +char tod_read::tenths +char tod_read::tenths#0 +char tod_read::tod_HOURS +char tod_read::tod_HOURS#0 +char tod_read::tod_MIN +char tod_read::tod_MIN#0 +char tod_read::tod_SEC +char tod_read::tod_SEC#0 +char tod_read::tod_TENTHS +char tod_read::tod_TENTHS#0 +char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) +char tod_str::$0 +char tod_str::$1 +number tod_str::$10 +number tod_str::$11 +char tod_str::$12 +char tod_str::$13 +number tod_str::$14 +number tod_str::$15 +number tod_str::$2 +number tod_str::$3 +char tod_str::$4 +char tod_str::$5 +number tod_str::$6 +number tod_str::$7 +char tod_str::$8 +char tod_str::$9 +char *tod_str::return +char *tod_str::return#0 +char *tod_str::return#1 +char *tod_str::return#2 +char *tod_str::return#3 +char *tod_str::return#4 struct TIME_OF_DAY tod_str::tod -byte tod_str::tod_HOURS -byte tod_str::tod_HOURS#0 -byte tod_str::tod_HOURS#1 -byte tod_str::tod_MIN -byte tod_str::tod_MIN#0 -byte tod_str::tod_MIN#1 -byte tod_str::tod_SEC -byte tod_str::tod_SEC#0 -byte tod_str::tod_SEC#1 -byte tod_str::tod_TENTHS -byte tod_str::tod_TENTHS#0 -byte tod_str::tod_TENTHS#1 +char tod_str::tod_HOURS +char tod_str::tod_HOURS#0 +char tod_str::tod_HOURS#1 +char tod_str::tod_MIN +char tod_str::tod_MIN#0 +char tod_str::tod_MIN#1 +char tod_str::tod_SEC +char tod_str::tod_SEC#0 +char tod_str::tod_SEC#1 +char tod_str::tod_TENTHS +char tod_str::tod_TENTHS#0 +char tod_str::tod_TENTHS#1 Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#4 > $19 Adding number conversion cast (unumber) $28 in gotoxy::$2 = gotoxy::x#4 >= $28 @@ -710,15 +710,15 @@ Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -727,8 +727,8 @@ Adding number conversion cast (unumber) 0 in gotoxy::y#1 = 0 Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_init::line#0 >= $19 Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 -Adding number conversion cast (unumber) $80 in *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 -Adding number conversion cast (unumber) $7f in *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f +Adding number conversion cast (unumber) $80 in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 +Adding number conversion cast (unumber) $7f in *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f Adding number conversion cast (unumber) 4 in tod_str::$0 = tod_str::tod_HOURS#1 >> 4 Adding number conversion cast (unumber) 0 in tod_buffer[0] = tod_str::$1 Adding number conversion cast (unumber) $f in tod_str::$2 = tod_str::tod_HOURS#1 & $f @@ -759,9 +759,9 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast memcpy::num#0 = (unumber)$19*$28-$28 Inlining cast memcpy::num#1 = (unumber)$19*$28-$28 Inlining cast memset::num#0 = (unumber)$28 @@ -773,10 +773,10 @@ Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Inlining cast gotoxy::x#3 = (unumber)0 Inlining cast gotoxy::y#3 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (struct MOS6526_CIA*) 56320 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (struct MOS6526_CIA *) 56320 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast $19 Simplifying constant integer cast $28 Simplifying constant integer cast 0 @@ -823,60 +823,60 @@ Simplifying constant integer cast $a Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $80 -Finalized unsigned number type (byte) $7f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $80 +Finalized unsigned number type (char) $7f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 9 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in tod_str::$2 = tod_str::tod_HOURS#1 & $f -Inferred type updated to byte in tod_str::$3 = '0' + tod_str::$2 -Inferred type updated to byte in tod_str::$6 = tod_str::tod_MIN#1 & $f -Inferred type updated to byte in tod_str::$7 = '0' + tod_str::$6 -Inferred type updated to byte in tod_str::$10 = tod_str::tod_SEC#1 & $f -Inferred type updated to byte in tod_str::$11 = '0' + tod_str::$10 -Inferred type updated to byte in tod_str::$14 = tod_str::tod_TENTHS#1 & $f -Inferred type updated to byte in tod_str::$15 = '0' + tod_str::$14 +Inferred type updated to char in tod_str::$2 = tod_str::tod_HOURS#1 & $f +Inferred type updated to char in tod_str::$3 = '0' + tod_str::$2 +Inferred type updated to char in tod_str::$6 = tod_str::tod_MIN#1 & $f +Inferred type updated to char in tod_str::$7 = '0' + tod_str::$6 +Inferred type updated to char in tod_str::$10 = tod_str::tod_SEC#1 & $f +Inferred type updated to char in tod_str::$11 = '0' + tod_str::$10 +Inferred type updated to char in tod_str::$14 = tod_str::tod_TENTHS#1 & $f +Inferred type updated to char in tod_str::$15 = '0' + tod_str::$14 Inversing boolean not [2] gotoxy::$1 = gotoxy::y#4 <= $19 from [1] gotoxy::$0 = gotoxy::y#4 > $19 Inversing boolean not [6] gotoxy::$3 = gotoxy::x#4 < $28 from [5] gotoxy::$2 = gotoxy::x#4 >= $28 Inversing boolean not [31] cputc::$2 = conio_cursor_x != $28 from [30] cputc::$1 = conio_cursor_x == $28 @@ -965,16 +965,16 @@ Successful SSA optimization Pass2ConstantRValueConsolidation Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -996,7 +996,7 @@ if() condition always true - replacing block destination [158] if(0!=1) goto mai Successful SSA optimization Pass2ConstantIfs Rewriting conditional comparison [2] if(gotoxy::y#4<=$19) goto gotoxy::@1 Simplifying expression containing zero tod_buffer in [128] tod_buffer[0] = tod_str::$1 -Simplifying expression containing zero (byte*)&TOD_ZERO in [152] tod_init::tod_TENTHS#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_TENTHS) +Simplifying expression containing zero (char *)&TOD_ZERO in [152] tod_init::tod_TENTHS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_TENTHS) Successful SSA optimization PassNSimplifyExpressionWithZero Removing PHI-reference to removed block (cscroll::@2) in block gotoxy Removing PHI-reference to removed block (cscroll::@2) in block gotoxy @@ -1022,17 +1022,17 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [36] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [37] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [38] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [48] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [50] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [36] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [37] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [38] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [48] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [50] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[8] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings gotoxy::y#0 @@ -1056,24 +1056,24 @@ Inlining constant with var siblings memset::c#1 Inlining constant with var siblings conio_c64_init::line#1 Constant inlined cputs::s#1 = tod_buffer Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined tod_str::return#2 = tod_buffer Constant inlined tod_str::return#0 = tod_buffer Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined gotoxy::x#3 = 0 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 Constant inlined gotoxy::y#3 = 0 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined gotoxy::x#0 = 0 Constant inlined gotoxy::y#0 = 0 Constant inlined gotoxy::x#2 = 0 @@ -1095,7 +1095,7 @@ Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Identical Phi Values gotoxy::x#4 0 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values gotoxy::x#5 0 @@ -1107,15 +1107,15 @@ Removing unused block gotoxy::@4 Successful SSA optimization Pass2EliminateUnusedBlocks Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -1224,11 +1224,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -1245,7 +1245,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -1253,19 +1253,19 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 - [16] tod_init::tod_TENTHS#0 = *((byte*)&TOD_ZERO) - [17] tod_init::tod_SEC#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) - [18] tod_init::tod_MIN#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) - [19] tod_init::tod_HOURS#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) - [20] call tod_init + [16] tod_init::tod_TENTHS#0 = *((char *)&TOD_ZERO) + [17] tod_init::tod_SEC#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) + [18] tod_init::tod_MIN#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) + [19] tod_init::tod_HOURS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) + [20] call tod_init to:main::@1 main::@1: scope:[main] from main main::@4 [21] phi() - [22] call gotoxy + [22] call gotoxy to:main::@2 main::@2: scope:[main] from main::@1 [23] phi() - [24] call tod_read + [24] call tod_read [25] tod_read::return_TENTHS#1 = tod_read::return_TENTHS#0 [26] tod_read::return_SEC#1 = tod_read::return_SEC#0 [27] tod_read::return_MIN#1 = tod_read::return_MIN#0 @@ -1276,14 +1276,14 @@ main::@3: scope:[main] from main::@2 [30] tod_str::tod_SEC#0 = tod_read::return_SEC#1 [31] tod_str::tod_MIN#0 = tod_read::return_MIN#1 [32] tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 - [33] call tod_str + [33] call tod_str to:main::@4 main::@4: scope:[main] from main::@3 [34] phi() - [35] call cputs + [35] call cputs to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 main::@1 [36] gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, main::@1/0 ) [37] if(gotoxy::y#4<$19+1) goto gotoxy::@3 @@ -1297,7 +1297,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [40] conio_cursor_x = 0 [41] conio_cursor_y = gotoxy::y#5 - [42] gotoxy::$7 = (word)gotoxy::y#5 + [42] gotoxy::$7 = (unsigned int)gotoxy::y#5 [43] gotoxy::$8 = gotoxy::$7 << 2 [44] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [45] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -1310,14 +1310,14 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [50] return to:@return -void tod_init(byte tod_init::tod_TENTHS , byte tod_init::tod_SEC , byte tod_init::tod_MIN , byte tod_init::tod_HOURS) +void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) tod_init: scope:[tod_init] from main - [51] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 - [52] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f - [53] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0 - [54] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0 - [55] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0 - [56] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0 + [51] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 + [52] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f + [53] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0 + [54] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0 + [55] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0 + [56] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0 to:tod_init::@return tod_init::@return: scope:[tod_init] from tod_init [57] return @@ -1325,16 +1325,16 @@ tod_init::@return: scope:[tod_init] from tod_init struct TIME_OF_DAY tod_read() tod_read: scope:[tod_read] from main::@2 - [58] tod_read::return_HOURS#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) - [59] tod_read::return_MIN#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) - [60] tod_read::return_SEC#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) - [61] tod_read::return_TENTHS#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) + [58] tod_read::return_HOURS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) + [59] tod_read::return_MIN#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) + [60] tod_read::return_SEC#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) + [61] tod_read::return_TENTHS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) to:tod_read::@return tod_read::@return: scope:[tod_read] from tod_read [62] return to:@return -byte* tod_str(byte tod_str::tod_TENTHS , byte tod_str::tod_SEC , byte tod_str::tod_MIN , byte tod_str::tod_HOURS) +char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) tod_str: scope:[tod_str] from main::@3 [63] tod_str::$0 = tod_str::tod_HOURS#0 >> 4 [64] tod_str::$1 = '0' + tod_str::$0 @@ -1365,7 +1365,7 @@ tod_str::@return: scope:[tod_str] from tod_str [87] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@4 [88] phi() to:cputs::@1 @@ -1380,10 +1380,10 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [94] cputc::c#0 = cputs::c#1 - [95] call cputc + [95] call cputc to:cputs::@1 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 [96] if(cputc::c#0==' ') goto cputc::@1 @@ -1396,14 +1396,14 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [101] phi() - [102] call cputln + [102] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [103] return to:@return cputc::@1: scope:[cputc] from cputc [104] phi() - [105] call cputln + [105] call cputln to:cputc::@return void cputln() @@ -1412,7 +1412,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [107] conio_line_color = conio_line_color + $28 [108] conio_cursor_x = 0 [109] conio_cursor_y = ++ conio_cursor_y - [110] call cscroll + [110] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [111] return @@ -1424,19 +1424,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [113] phi() - [114] call memcpy + [114] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [115] phi() - [116] call memcpy + [116] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [117] phi() - [118] call memset + [118] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [119] phi() - [120] call memset + [120] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [121] conio_line_text = conio_line_text - $28 @@ -1447,13 +1447,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [124] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [125] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [125] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [126] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [127] memcpy::src#4 = (byte*)memcpy::source#2 - [128] memcpy::dst#4 = (byte*)memcpy::destination#2 + [125] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [125] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [127] memcpy::src#4 = (char *)memcpy::source#2 + [128] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [129] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1469,14 +1469,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [134] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [135] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [135] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [135] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [136] memset::end#0 = (byte*)memset::str#3 + $28 - [137] memset::dst#4 = (byte*)memset::str#3 + [136] memset::end#0 = (char *)memset::str#3 + $28 + [137] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [138] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1492,130 +1492,130 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS -struct TIME_OF_DAY TOD_ZERO loadstore = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } +__loadstore struct TIME_OF_DAY TOD_ZERO = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } void __start() void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 348860.67441860464 -byte conio_cursor_y loadstore 5423745.898305085 -byte* conio_line_color loadstore 4333353.098039215 -byte* conio_line_text loadstore 4169830.3396226414 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 1050001.5 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 348860.67441860464 +__loadstore char conio_cursor_y // 5423745.898305085 +__loadstore char *conio_line_color // 4333353.098039215 +__loadstore char *conio_line_text // 4169830.3396226414 +void cputc(char c) +char cputc::c +char cputc::c#0 // 1050001.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 100001.0 -const byte* cputs::s -const byte* cputs::s#0 50000.5 -const byte* cputs::s#2 150001.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // 100001.0 +const char *cputs::s +const char *cputs::s#0 // 50000.5 +const char *cputs::s#2 // 150001.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 2002.0 -byte*~ gotoxy::$6 2002.0 -word~ gotoxy::$7 1501.5 -word~ gotoxy::$8 2002.0 -word~ gotoxy::$9 2002.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 1001.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 22.0 -byte gotoxy::y#4 671.0 -byte gotoxy::y#5 667.3333333333334 +void gotoxy(char x , char y) +char *gotoxy::$5 // 2002.0 +char *gotoxy::$6 // 2002.0 +unsigned int gotoxy::$7 // 1501.5 +unsigned int gotoxy::$8 // 2002.0 +unsigned int gotoxy::$9 // 2002.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 1001.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 22.0 +char gotoxy::y#4 // 671.0 +char gotoxy::y#5 // 667.3333333333334 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.000000000001E12 -byte* memcpy::dst#2 1.0003333333346667E12 -byte* memcpy::dst#4 2.000000002E9 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.000000000002E12 -byte* memcpy::src#2 1.00025000000125E12 -byte* memcpy::src#4 1.000000001E9 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.2512500000025E11 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.428571428572857E11 -byte* memset::dst -byte* memset::dst#1 2.000000000002E12 -byte* memset::dst#2 1.3336666666683335E12 -byte* memset::dst#4 2.000000002E9 -byte* memset::end -byte* memset::end#0 1.668333333336667E11 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 -void tod_init(byte tod_init::tod_TENTHS , byte tod_init::tod_SEC , byte tod_init::tod_MIN , byte tod_init::tod_HOURS) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.000000000001E12 +char *memcpy::dst#2 // 1.0003333333346667E12 +char *memcpy::dst#4 // 2.000000002E9 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.000000000002E12 +char *memcpy::src#2 // 1.00025000000125E12 +char *memcpy::src#4 // 1.000000001E9 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.2512500000025E11 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.428571428572857E11 +char *memset::dst +char *memset::dst#1 // 2.000000000002E12 +char *memset::dst#2 // 1.3336666666683335E12 +char *memset::dst#4 // 2.000000002E9 +char *memset::end +char *memset::end#0 // 1.668333333336667E11 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 +void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) struct TIME_OF_DAY tod_init::tod -byte tod_init::tod_HOURS -byte tod_init::tod_HOURS#0 37.33333333333333 -byte tod_init::tod_MIN -byte tod_init::tod_MIN#0 22.4 -byte tod_init::tod_SEC -byte tod_init::tod_SEC#0 16.0 -byte tod_init::tod_TENTHS -byte tod_init::tod_TENTHS#0 12.444444444444443 +char tod_init::tod_HOURS +char tod_init::tod_HOURS#0 // 37.33333333333333 +char tod_init::tod_MIN +char tod_init::tod_MIN#0 // 22.4 +char tod_init::tod_SEC +char tod_init::tod_SEC#0 // 16.0 +char tod_init::tod_TENTHS +char tod_init::tod_TENTHS#0 // 12.444444444444443 struct TIME_OF_DAY tod_read() -byte tod_read::hours -byte tod_read::mins +char tod_read::hours +char tod_read::mins struct TIME_OF_DAY tod_read::return -byte tod_read::return_HOURS -byte tod_read::return_HOURS#0 122.44444444444446 -byte tod_read::return_HOURS#1 50.5 -byte tod_read::return_MIN -byte tod_read::return_MIN#0 157.42857142857142 -byte tod_read::return_MIN#1 50.5 -byte tod_read::return_SEC -byte tod_read::return_SEC#0 220.39999999999998 -byte tod_read::return_SEC#1 50.5 -byte tod_read::return_TENTHS -byte tod_read::return_TENTHS#0 367.33333333333337 -byte tod_read::return_TENTHS#1 50.5 -byte tod_read::secs -byte tod_read::tenths -byte tod_read::tod_HOURS -byte tod_read::tod_MIN -byte tod_read::tod_SEC -byte tod_read::tod_TENTHS -byte* tod_str(byte tod_str::tod_TENTHS , byte tod_str::tod_SEC , byte tod_str::tod_MIN , byte tod_str::tod_HOURS) -byte~ tod_str::$0 2002.0 -byte~ tod_str::$1 2002.0 -byte~ tod_str::$10 2002.0 -byte~ tod_str::$11 2002.0 -byte~ tod_str::$12 2002.0 -byte~ tod_str::$13 2002.0 -byte~ tod_str::$14 2002.0 -byte~ tod_str::$15 2002.0 -byte~ tod_str::$2 2002.0 -byte~ tod_str::$3 2002.0 -byte~ tod_str::$4 2002.0 -byte~ tod_str::$5 2002.0 -byte~ tod_str::$6 2002.0 -byte~ tod_str::$7 2002.0 -byte~ tod_str::$8 2002.0 -byte~ tod_str::$9 2002.0 -byte* tod_str::return +char tod_read::return_HOURS +char tod_read::return_HOURS#0 // 122.44444444444446 +char tod_read::return_HOURS#1 // 50.5 +char tod_read::return_MIN +char tod_read::return_MIN#0 // 157.42857142857142 +char tod_read::return_MIN#1 // 50.5 +char tod_read::return_SEC +char tod_read::return_SEC#0 // 220.39999999999998 +char tod_read::return_SEC#1 // 50.5 +char tod_read::return_TENTHS +char tod_read::return_TENTHS#0 // 367.33333333333337 +char tod_read::return_TENTHS#1 // 50.5 +char tod_read::secs +char tod_read::tenths +char tod_read::tod_HOURS +char tod_read::tod_MIN +char tod_read::tod_SEC +char tod_read::tod_TENTHS +char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) +char tod_str::$0 // 2002.0 +char tod_str::$1 // 2002.0 +char tod_str::$10 // 2002.0 +char tod_str::$11 // 2002.0 +char tod_str::$12 // 2002.0 +char tod_str::$13 // 2002.0 +char tod_str::$14 // 2002.0 +char tod_str::$15 // 2002.0 +char tod_str::$2 // 2002.0 +char tod_str::$3 // 2002.0 +char tod_str::$4 // 2002.0 +char tod_str::$5 // 2002.0 +char tod_str::$6 // 2002.0 +char tod_str::$7 // 2002.0 +char tod_str::$8 // 2002.0 +char tod_str::$9 // 2002.0 +char *tod_str::return struct TIME_OF_DAY tod_str::tod -byte tod_str::tod_HOURS -byte tod_str::tod_HOURS#0 525.75 -byte tod_str::tod_MIN -byte tod_str::tod_MIN#0 191.1818181818182 -byte tod_str::tod_SEC -byte tod_str::tod_SEC#0 116.83333333333334 -byte tod_str::tod_TENTHS -byte tod_str::tod_TENTHS#0 84.12 +char tod_str::tod_HOURS +char tod_str::tod_HOURS#0 // 525.75 +char tod_str::tod_MIN +char tod_str::tod_MIN#0 // 191.1818181818182 +char tod_str::tod_SEC +char tod_str::tod_SEC#0 // 116.83333333333334 +char tod_str::tod_TENTHS +char tod_str::tod_TENTHS#0 // 84.12 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -1797,7 +1797,7 @@ Statement [3] conio_line_text = DEFAULT_SCREEN [ TOD_ZERO ] ( [ TOD_ZERO ] { } Statement [4] conio_line_color = COLORRAM [ TOD_ZERO ] ( [ TOD_ZERO ] { } ) always clobbers reg byte a Statement [40] conio_cursor_x = 0 [ conio_cursor_x gotoxy::y#5 ] ( gotoxy:14 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x gotoxy::y#5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] -Statement [42] gotoxy::$7 = (word)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { } ) always clobbers reg byte a +Statement [42] gotoxy::$7 = (unsigned int)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { } ) always clobbers reg byte a Statement [43] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } ) always clobbers reg byte a Statement [44] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { } ) always clobbers reg byte a Statement [45] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } ) always clobbers reg byte a @@ -1805,12 +1805,12 @@ Statement [46] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 [ conio_curso Statement [47] conio_line_text = gotoxy::$5 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } ) always clobbers reg byte a Statement [48] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } ) always clobbers reg byte a Statement [49] conio_line_color = gotoxy::$6 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } ) always clobbers reg byte a -Statement [51] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [51] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:25 [ tod_init::tod_TENTHS#0 ] Removing always clobbered register reg byte a as potential for zp[1]:26 [ tod_init::tod_SEC#0 ] Removing always clobbered register reg byte a as potential for zp[1]:27 [ tod_init::tod_MIN#0 ] Removing always clobbered register reg byte a as potential for zp[1]:28 [ tod_init::tod_HOURS#0 ] -Statement [52] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [52] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a Statement [63] tod_str::$0 = tod_str::tod_HOURS#0 >> 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:7::tod_str:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#1 } { tod_str::tod_SEC#0 = tod_read::return_SEC#1 } { tod_str::tod_MIN#0 = tod_read::return_MIN#1 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:33 [ tod_str::tod_TENTHS#0 ] Removing always clobbered register reg byte a as potential for zp[1]:34 [ tod_str::tod_SEC#0 ] @@ -1833,14 +1833,14 @@ Statement [108] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_te Statement [112] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [121] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [122] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [126] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [127] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [128] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [127] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [128] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [130] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [132] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [136] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [136] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ memset::c#4 ] -Statement [137] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [137] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [139] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [141] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:16 [ memset::c#4 ] @@ -1849,7 +1849,7 @@ Statement [2] conio_cursor_y = 0 [ TOD_ZERO ] ( [ TOD_ZERO ] { } ) always clob Statement [3] conio_line_text = DEFAULT_SCREEN [ TOD_ZERO ] ( [ TOD_ZERO ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ TOD_ZERO ] ( [ TOD_ZERO ] { } ) always clobbers reg byte a Statement [40] conio_cursor_x = 0 [ conio_cursor_x gotoxy::y#5 ] ( gotoxy:14 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x gotoxy::y#5 ] { } ) always clobbers reg byte a -Statement [42] gotoxy::$7 = (word)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { } ) always clobbers reg byte a +Statement [42] gotoxy::$7 = (unsigned int)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { } ) always clobbers reg byte a Statement [43] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } ) always clobbers reg byte a Statement [44] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { } ) always clobbers reg byte a Statement [45] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } ) always clobbers reg byte a @@ -1857,8 +1857,8 @@ Statement [46] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 [ conio_curso Statement [47] conio_line_text = gotoxy::$5 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } ) always clobbers reg byte a Statement [48] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } ) always clobbers reg byte a Statement [49] conio_line_color = gotoxy::$6 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ TOD_ZERO conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:22 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } ) always clobbers reg byte a -Statement [51] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a -Statement [52] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [51] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a +Statement [52] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] ( main:7::tod_init:20 [ tod_init::tod_TENTHS#0 tod_init::tod_SEC#0 tod_init::tod_MIN#0 tod_init::tod_HOURS#0 ] { } ) always clobbers reg byte a Statement [63] tod_str::$0 = tod_str::tod_HOURS#0 >> 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] ( main:7::tod_str:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::tod_HOURS#0 tod_str::$0 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#1 } { tod_str::tod_SEC#0 = tod_read::return_SEC#1 } { tod_str::tod_MIN#0 = tod_read::return_MIN#1 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 } } ) always clobbers reg byte a Statement [66] tod_str::$2 = tod_str::tod_HOURS#0 & $f [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] ( main:7::tod_str:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$2 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#1 } { tod_str::tod_SEC#0 = tod_read::return_SEC#1 } { tod_str::tod_MIN#0 = tod_read::return_MIN#1 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 } } ) always clobbers reg byte a Statement [69] tod_str::$4 = tod_str::tod_MIN#0 >> 4 [ tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] ( main:7::tod_str:33 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color tod_str::tod_TENTHS#0 tod_str::tod_SEC#0 tod_str::tod_MIN#0 tod_str::$4 ] { { tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#1 } { tod_str::tod_SEC#0 = tod_read::return_SEC#1 } { tod_str::tod_MIN#0 = tod_read::return_MIN#1 } { tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 } } ) always clobbers reg byte a @@ -1877,13 +1877,13 @@ Statement [108] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_te Statement [112] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [121] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [122] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [126] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [127] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [128] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [127] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [128] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [130] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [132] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:114 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memcpy:116 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y -Statement [136] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a -Statement [137] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [136] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a +Statement [137] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [139] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [141] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:118 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:102::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } main:7::cputs:35::cputc:95::cputln:105::cscroll:110::memset:120 [ cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -2133,14 +2133,14 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main jsr main jmp __breturn // __start::@return @@ -2175,7 +2175,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy // [36] phi from conio_c64_init::@1 to gotoxy [phi:conio_c64_init::@1->gotoxy] gotoxy_from___b1: // [36] phi gotoxy::y#4 = gotoxy::y#2 [phi:conio_c64_init::@1->gotoxy#0] -- register_copy @@ -2188,17 +2188,17 @@ conio_c64_init: { } // main main: { - // [16] tod_init::tod_TENTHS#0 = *((byte*)&TOD_ZERO) -- vbuz1=_deref_pbuc1 + // [16] tod_init::tod_TENTHS#0 = *((char *)&TOD_ZERO) -- vbuz1=_deref_pbuc1 lda TOD_ZERO sta.z tod_init.tod_TENTHS - // [17] tod_init::tod_SEC#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 + // [17] tod_init::tod_SEC#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC sta.z tod_init.tod_SEC - // [18] tod_init::tod_MIN#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuxx=_deref_pbuc1 + // [18] tod_init::tod_MIN#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuxx=_deref_pbuc1 ldx TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN - // [19] tod_init::tod_HOURS#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuyy=_deref_pbuc1 + // [19] tod_init::tod_HOURS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuyy=_deref_pbuc1 ldy TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS - // [20] call tod_init + // [20] call tod_init jsr tod_init // [21] phi from main main::@4 to main::@1 [phi:main/main::@4->main::@1] __b1_from_main: @@ -2206,7 +2206,7 @@ main: { jmp __b1 // main::@1 __b1: - // [22] call gotoxy + // [22] call gotoxy // [36] phi from main::@1 to gotoxy [phi:main::@1->gotoxy] gotoxy_from___b1: // [36] phi gotoxy::y#4 = 0 [phi:main::@1->gotoxy#0] -- vbuxx=vbuc1 @@ -2217,7 +2217,7 @@ main: { jmp __b2 // main::@2 __b2: - // [24] call tod_read + // [24] call tod_read jsr tod_read // [25] tod_read::return_TENTHS#1 = tod_read::return_TENTHS#0 // [26] tod_read::return_SEC#1 = tod_read::return_SEC#0 @@ -2236,14 +2236,14 @@ main: { ldy.z tod_read.return_MIN // [32] tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 -- vbuxx=vbuaa tax - // [33] call tod_str + // [33] call tod_str jsr tod_str // [34] phi from main::@3 to main::@4 [phi:main::@3->main::@4] __b4_from___b3: jmp __b4 // main::@4 __b4: - // [35] call cputs + // [35] call cputs // [88] phi from main::@4 to cputs [phi:main::@4->cputs] cputs_from___b4: jsr cputs @@ -2251,7 +2251,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .label __5 = $12 .label __6 = $e @@ -2286,7 +2286,7 @@ gotoxy: { sta.z conio_cursor_x // [41] conio_cursor_y = gotoxy::y#5 -- vbuz1=vbuxx stx.z conio_cursor_y - // [42] gotoxy::$7 = (word)gotoxy::y#5 -- vwuz1=_word_vbuxx + // [42] gotoxy::$7 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -2350,30 +2350,30 @@ gotoxy: { // tod_init // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($c) tod_TENTHS, byte zp($d) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) +// void tod_init(__zp($c) char tod_TENTHS, __zp($d) char tod_SEC, __register(X) char tod_MIN, __register(Y) char tod_HOURS) tod_init: { .label tod_TENTHS = $c .label tod_SEC = $d - // [51] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [51] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL - // [52] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [52] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL - // [53] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy + // [53] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. sty CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS - // [54] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx + // [54] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx stx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [55] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [55] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [56] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [56] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn @@ -2387,15 +2387,15 @@ tod_init: { tod_read: { .label return_HOURS = $14 .label return_MIN = $c - // [58] tod_read::return_HOURS#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // [58] tod_read::return_HOURS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 // Reading sequence is important. TOD latches on reading hours until 10ths is read. lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS sta.z return_HOURS - // [59] tod_read::return_MIN#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 + // [59] tod_read::return_MIN#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN - // [60] tod_read::return_SEC#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 + // [60] tod_read::return_SEC#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC - // [61] tod_read::return_TENTHS#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 + // [61] tod_read::return_TENTHS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS jmp __breturn // tod_read::@return @@ -2405,7 +2405,7 @@ tod_read: { } // tod_str // Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($d) tod_TENTHS, byte zp($14) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) +// char * tod_str(__zp($d) char tod_TENTHS, __zp($14) char tod_SEC, __register(Y) char tod_MIN, __register(X) char tod_HOURS) tod_str: { .label tod_TENTHS = $d .label tod_SEC = $14 @@ -2493,7 +2493,7 @@ tod_str: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [89] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -2525,7 +2525,7 @@ cputs: { // cputs::@2 __b2: // [94] cputc::c#0 = cputs::c#1 - // [95] call cputc + // [95] call cputc jsr cputc // [89] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] __b1_from___b2: @@ -2535,7 +2535,7 @@ cputs: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [96] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -2561,7 +2561,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [102] call cputln + // [102] call cputln jsr cputln jmp __breturn // cputc::@return @@ -2573,7 +2573,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [105] call cputln + // [105] call cputln jsr cputln jmp __breturn } @@ -2601,7 +2601,7 @@ cputln: { sta.z conio_cursor_x // [109] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [110] call cscroll + // [110] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -2621,15 +2621,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [114] call memcpy + // [114] call memcpy // [125] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [125] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [125] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [125] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [125] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -2640,15 +2640,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [116] call memcpy + // [116] call memcpy // [125] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [125] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [125] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [125] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [125] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -2659,12 +2659,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [118] call memset + // [118] call memset // [135] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [135] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [135] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [135] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -2675,12 +2675,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [120] call memset + // [120] call memset // [135] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [135] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [135] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [135] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -2716,14 +2716,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($17) destination, void* zp(4) source) +// void * memcpy(__zp($17) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = $17 .label src = 4 .label source = 4 .label destination = $17 - // [126] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -2731,8 +2731,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [127] memcpy::src#4 = (byte*)memcpy::source#2 - // [128] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [127] memcpy::src#4 = (char *)memcpy::source#2 + // [128] memcpy::dst#4 = (char *)memcpy::destination#2 // [129] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -2774,7 +2774,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 4 @@ -2782,7 +2782,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [136] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [136] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -2790,7 +2790,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [137] memset::dst#4 = (byte*)memset::str#3 + // [137] memset::dst#4 = (char *)memset::str#3 // [138] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2944,145 +2944,145 @@ Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 -constant byte OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 -constant byte OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 -constant byte OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 -struct TIME_OF_DAY TOD_ZERO loadstore mem[4] = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 +__constant char OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 +__constant char OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 +__constant char OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 +__loadstore struct TIME_OF_DAY TOD_ZERO = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } // mem[4] void __start() void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:6 348860.67441860464 -byte conio_cursor_y loadstore zp[1]:7 5423745.898305085 -byte* conio_line_color loadstore zp[2]:10 4333353.098039215 -byte* conio_line_text loadstore zp[2]:8 4169830.3396226414 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 1050001.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:6 348860.67441860464 +__loadstore char conio_cursor_y // zp[1]:7 5423745.898305085 +__loadstore char *conio_line_color // zp[2]:10 4333353.098039215 +__loadstore char *conio_line_text // zp[2]:8 4169830.3396226414 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 1050001.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 100001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 50000.5 -const byte* cputs::s#2 s zp[2]:2 150001.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 100001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 50000.5 +const char *cputs::s#2 // s zp[2]:2 150001.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 2002.0 -byte*~ gotoxy::$6 zp[2]:14 2002.0 -word~ gotoxy::$7 zp[2]:14 1501.5 -word~ gotoxy::$8 zp[2]:16 2002.0 -word~ gotoxy::$9 zp[2]:14 2002.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 1001.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 reg byte x 22.0 -byte gotoxy::y#4 reg byte x 671.0 -byte gotoxy::y#5 reg byte x 667.3333333333334 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 2002.0 +char *gotoxy::$6 // zp[2]:14 2002.0 +unsigned int gotoxy::$7 // zp[2]:14 1501.5 +unsigned int gotoxy::$8 // zp[2]:16 2002.0 +unsigned int gotoxy::$9 // zp[2]:14 2002.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 1001.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // reg byte x 22.0 +char gotoxy::y#4 // reg byte x 671.0 +char gotoxy::y#5 // reg byte x 667.3333333333334 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:23 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:23 1.000000000001E12 -byte* memcpy::dst#2 dst zp[2]:23 1.0003333333346667E12 -byte* memcpy::dst#4 dst zp[2]:23 2.000000002E9 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000000002E12 -byte* memcpy::src#2 src zp[2]:4 1.00025000000125E12 -byte* memcpy::src#4 src zp[2]:4 1.000000001E9 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:21 1.2512500000025E11 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.428571428572857E11 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2.000000000002E12 -byte* memset::dst#2 dst zp[2]:4 1.3336666666683335E12 -byte* memset::dst#4 dst zp[2]:4 2.000000002E9 -byte* memset::end -byte* memset::end#0 end zp[2]:23 1.668333333336667E11 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 -constant byte* tod_buffer[] = "00:00:00:00" -void tod_init(byte tod_init::tod_TENTHS , byte tod_init::tod_SEC , byte tod_init::tod_MIN , byte tod_init::tod_HOURS) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:23 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:23 1.000000000001E12 +char *memcpy::dst#2 // dst zp[2]:23 1.0003333333346667E12 +char *memcpy::dst#4 // dst zp[2]:23 2.000000002E9 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000000002E12 +char *memcpy::src#2 // src zp[2]:4 1.00025000000125E12 +char *memcpy::src#4 // src zp[2]:4 1.000000001E9 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:21 1.2512500000025E11 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.428571428572857E11 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2.000000000002E12 +char *memset::dst#2 // dst zp[2]:4 1.3336666666683335E12 +char *memset::dst#4 // dst zp[2]:4 2.000000002E9 +char *memset::end +char *memset::end#0 // end zp[2]:23 1.668333333336667E11 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 +__constant char tod_buffer[] = "00:00:00:00" +void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) struct TIME_OF_DAY tod_init::tod -byte tod_init::tod_HOURS -byte tod_init::tod_HOURS#0 reg byte y 37.33333333333333 -byte tod_init::tod_MIN -byte tod_init::tod_MIN#0 reg byte x 22.4 -byte tod_init::tod_SEC -byte tod_init::tod_SEC#0 tod_SEC zp[1]:13 16.0 -byte tod_init::tod_TENTHS -byte tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:12 12.444444444444443 +char tod_init::tod_HOURS +char tod_init::tod_HOURS#0 // reg byte y 37.33333333333333 +char tod_init::tod_MIN +char tod_init::tod_MIN#0 // reg byte x 22.4 +char tod_init::tod_SEC +char tod_init::tod_SEC#0 // tod_SEC zp[1]:13 16.0 +char tod_init::tod_TENTHS +char tod_init::tod_TENTHS#0 // tod_TENTHS zp[1]:12 12.444444444444443 struct TIME_OF_DAY tod_read() -byte tod_read::hours -byte tod_read::mins +char tod_read::hours +char tod_read::mins struct TIME_OF_DAY tod_read::return -byte tod_read::return_HOURS -byte tod_read::return_HOURS#0 return_HOURS zp[1]:20 122.44444444444446 -byte tod_read::return_HOURS#1 reg byte a 50.5 -byte tod_read::return_MIN -byte tod_read::return_MIN#0 reg byte a 157.42857142857142 -byte tod_read::return_MIN#1 return_MIN zp[1]:12 50.5 -byte tod_read::return_SEC -byte tod_read::return_SEC#0 reg byte x 220.39999999999998 -byte tod_read::return_SEC#1 reg byte x 50.5 -byte tod_read::return_TENTHS -byte tod_read::return_TENTHS#0 reg byte y 367.33333333333337 -byte tod_read::return_TENTHS#1 reg byte y 50.5 -byte tod_read::secs -byte tod_read::tenths -byte tod_read::tod_HOURS -byte tod_read::tod_MIN -byte tod_read::tod_SEC -byte tod_read::tod_TENTHS -byte* tod_str(byte tod_str::tod_TENTHS , byte tod_str::tod_SEC , byte tod_str::tod_MIN , byte tod_str::tod_HOURS) -byte~ tod_str::$0 reg byte a 2002.0 -byte~ tod_str::$1 reg byte a 2002.0 -byte~ tod_str::$10 reg byte a 2002.0 -byte~ tod_str::$11 reg byte a 2002.0 -byte~ tod_str::$12 reg byte a 2002.0 -byte~ tod_str::$13 reg byte a 2002.0 -byte~ tod_str::$14 reg byte a 2002.0 -byte~ tod_str::$15 reg byte a 2002.0 -byte~ tod_str::$2 reg byte a 2002.0 -byte~ tod_str::$3 reg byte a 2002.0 -byte~ tod_str::$4 reg byte a 2002.0 -byte~ tod_str::$5 reg byte a 2002.0 -byte~ tod_str::$6 reg byte a 2002.0 -byte~ tod_str::$7 reg byte a 2002.0 -byte~ tod_str::$8 reg byte a 2002.0 -byte~ tod_str::$9 reg byte a 2002.0 -byte* tod_str::return +char tod_read::return_HOURS +char tod_read::return_HOURS#0 // return_HOURS zp[1]:20 122.44444444444446 +char tod_read::return_HOURS#1 // reg byte a 50.5 +char tod_read::return_MIN +char tod_read::return_MIN#0 // reg byte a 157.42857142857142 +char tod_read::return_MIN#1 // return_MIN zp[1]:12 50.5 +char tod_read::return_SEC +char tod_read::return_SEC#0 // reg byte x 220.39999999999998 +char tod_read::return_SEC#1 // reg byte x 50.5 +char tod_read::return_TENTHS +char tod_read::return_TENTHS#0 // reg byte y 367.33333333333337 +char tod_read::return_TENTHS#1 // reg byte y 50.5 +char tod_read::secs +char tod_read::tenths +char tod_read::tod_HOURS +char tod_read::tod_MIN +char tod_read::tod_SEC +char tod_read::tod_TENTHS +char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) +char tod_str::$0 // reg byte a 2002.0 +char tod_str::$1 // reg byte a 2002.0 +char tod_str::$10 // reg byte a 2002.0 +char tod_str::$11 // reg byte a 2002.0 +char tod_str::$12 // reg byte a 2002.0 +char tod_str::$13 // reg byte a 2002.0 +char tod_str::$14 // reg byte a 2002.0 +char tod_str::$15 // reg byte a 2002.0 +char tod_str::$2 // reg byte a 2002.0 +char tod_str::$3 // reg byte a 2002.0 +char tod_str::$4 // reg byte a 2002.0 +char tod_str::$5 // reg byte a 2002.0 +char tod_str::$6 // reg byte a 2002.0 +char tod_str::$7 // reg byte a 2002.0 +char tod_str::$8 // reg byte a 2002.0 +char tod_str::$9 // reg byte a 2002.0 +char *tod_str::return struct TIME_OF_DAY tod_str::tod -byte tod_str::tod_HOURS -byte tod_str::tod_HOURS#0 reg byte x 525.75 -byte tod_str::tod_MIN -byte tod_str::tod_MIN#0 reg byte y 191.1818181818182 -byte tod_str::tod_SEC -byte tod_str::tod_SEC#0 tod_SEC zp[1]:20 116.83333333333334 -byte tod_str::tod_TENTHS -byte tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:13 84.12 +char tod_str::tod_HOURS +char tod_str::tod_HOURS#0 // reg byte x 525.75 +char tod_str::tod_MIN +char tod_str::tod_MIN#0 // reg byte y 191.1818181818182 +char tod_str::tod_SEC +char tod_str::tod_SEC#0 // tod_SEC zp[1]:20 116.83333333333334 +char tod_str::tod_TENTHS +char tod_str::tod_TENTHS#0 // tod_TENTHS zp[1]:13 84.12 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] @@ -3203,11 +3203,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main jsr main // __start::@return // [8] return @@ -3236,7 +3236,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy // [36] phi from conio_c64_init::@1 to gotoxy [phi:conio_c64_init::@1->gotoxy] // [36] phi gotoxy::y#4 = gotoxy::y#2 [phi:conio_c64_init::@1->gotoxy#0] -- register_copy jsr gotoxy @@ -3248,23 +3248,23 @@ conio_c64_init: { // main main: { // tod_init(TOD_ZERO) - // [16] tod_init::tod_TENTHS#0 = *((byte*)&TOD_ZERO) -- vbuz1=_deref_pbuc1 + // [16] tod_init::tod_TENTHS#0 = *((char *)&TOD_ZERO) -- vbuz1=_deref_pbuc1 lda TOD_ZERO sta.z tod_init.tod_TENTHS - // [17] tod_init::tod_SEC#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 + // [17] tod_init::tod_SEC#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC) -- vbuz1=_deref_pbuc1 lda TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC sta.z tod_init.tod_SEC - // [18] tod_init::tod_MIN#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuxx=_deref_pbuc1 + // [18] tod_init::tod_MIN#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN) -- vbuxx=_deref_pbuc1 ldx TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN - // [19] tod_init::tod_HOURS#0 = *((byte*)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuyy=_deref_pbuc1 + // [19] tod_init::tod_HOURS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS) -- vbuyy=_deref_pbuc1 ldy TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS - // [20] call tod_init + // [20] call tod_init jsr tod_init // [21] phi from main main::@4 to main::@1 [phi:main/main::@4->main::@1] // main::@1 __b1: // gotoxy(0,0) - // [22] call gotoxy + // [22] call gotoxy // [36] phi from main::@1 to gotoxy [phi:main::@1->gotoxy] // [36] phi gotoxy::y#4 = 0 [phi:main::@1->gotoxy#0] -- vbuxx=vbuc1 ldx #0 @@ -3272,7 +3272,7 @@ main: { // [23] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // tod_read() - // [24] call tod_read + // [24] call tod_read jsr tod_read // [25] tod_read::return_TENTHS#1 = tod_read::return_TENTHS#0 // [26] tod_read::return_SEC#1 = tod_read::return_SEC#0 @@ -3290,19 +3290,19 @@ main: { ldy.z tod_read.return_MIN // [32] tod_str::tod_HOURS#0 = tod_read::return_HOURS#1 -- vbuxx=vbuaa tax - // [33] call tod_str + // [33] call tod_str jsr tod_str // [34] phi from main::@3 to main::@4 [phi:main::@3->main::@4] // main::@4 // cputs(tod_str(tod_read())) - // [35] call cputs + // [35] call cputs // [88] phi from main::@4 to cputs [phi:main::@4->cputs] jsr cputs jmp __b1 } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .label __5 = $12 .label __6 = $e @@ -3332,7 +3332,7 @@ gotoxy: { // [41] conio_cursor_y = gotoxy::y#5 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [42] gotoxy::$7 = (word)gotoxy::y#5 -- vwuz1=_word_vbuxx + // [42] gotoxy::$7 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -3399,36 +3399,36 @@ gotoxy: { // tod_init // Initialize time-of-day clock // This uses the MOS6526 CIA#1 -// tod_init(byte zp($c) tod_TENTHS, byte zp($d) tod_SEC, byte register(X) tod_MIN, byte register(Y) tod_HOURS) +// void tod_init(__zp($c) char tod_TENTHS, __zp($d) char tod_SEC, __register(X) char tod_MIN, __register(Y) char tod_HOURS) tod_init: { .label tod_TENTHS = $c .label tod_SEC = $d // CIA1->TIMER_A_CONTROL |= 0x80 - // [51] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 + // [51] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80 -- _deref_pbuc1=_deref_pbuc1_bor_vbuc2 // Set 50hz (this assumes PAL!) (bit7=1) lda #$80 ora CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL // CIA1->TIMER_B_CONTROL &= 0x7f - // [52] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [52] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Writing TOD clock (bit7=0) lda #$7f and CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL // CIA1->TOD_HOURS = tod.HOURS - // [53] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy + // [53] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0 -- _deref_pbuc1=vbuyy // Reset TOD clock // Writing sequence is important. TOD stops when hours is written and starts when 10ths is written. sty CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS // CIA1->TOD_MIN = tod.MIN - // [54] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx + // [54] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0 -- _deref_pbuc1=vbuxx stx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN // CIA1->TOD_SEC = tod.SEC - // [55] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 + // [55] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0 -- _deref_pbuc1=vbuz1 lda.z tod_SEC sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC // CIA1->TOD_10THS = tod.TENTHS - // [56] *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 + // [56] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0 -- _deref_pbuc1=vbuz1 lda.z tod_TENTHS sta CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS // tod_init::@return @@ -3442,18 +3442,18 @@ tod_read: { .label return_HOURS = $14 .label return_MIN = $c // char hours = CIA1->TOD_HOURS - // [58] tod_read::return_HOURS#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 + // [58] tod_read::return_HOURS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) -- vbuz1=_deref_pbuc1 // Reading sequence is important. TOD latches on reading hours until 10ths is read. lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS sta.z return_HOURS // char mins = CIA1->TOD_MIN - // [59] tod_read::return_MIN#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 + // [59] tod_read::return_MIN#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) -- vbuaa=_deref_pbuc1 lda CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN // char secs = CIA1->TOD_SEC - // [60] tod_read::return_SEC#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 + // [60] tod_read::return_SEC#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) -- vbuxx=_deref_pbuc1 ldx CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC // char tenths = CIA1->TOD_10THS - // [61] tod_read::return_TENTHS#0 = *((byte*)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 + // [61] tod_read::return_TENTHS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) -- vbuyy=_deref_pbuc1 ldy CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS // tod_read::@return // } @@ -3462,7 +3462,7 @@ tod_read: { } // tod_str // Convert time of day to a human-readable string "hh:mm:ss:10" -// tod_str(byte zp($d) tod_TENTHS, byte zp($14) tod_SEC, byte register(Y) tod_MIN, byte register(X) tod_HOURS) +// char * tod_str(__zp($d) char tod_TENTHS, __zp($14) char tod_SEC, __register(Y) char tod_MIN, __register(X) char tod_HOURS) tod_str: { .label tod_TENTHS = $d .label tod_SEC = $14 @@ -3573,7 +3573,7 @@ tod_str: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(2) s) +// void cputs(__zp(2) const char *s) cputs: { .label s = 2 // [89] phi from cputs to cputs::@1 [phi:cputs->cputs::@1] @@ -3604,7 +3604,7 @@ cputs: { __b2: // cputc(c) // [94] cputc::c#0 = cputs::c#1 - // [95] call cputc + // [95] call cputc jsr cputc // [89] phi from cputs::@2 to cputs::@1 [phi:cputs::@2->cputs::@1] // [89] phi cputs::s#2 = cputs::s#0 [phi:cputs::@2->cputs::@1#0] -- register_copy @@ -3613,7 +3613,7 @@ cputs: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [96] if(cputc::c#0==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -3638,7 +3638,7 @@ cputc: { // [101] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [102] call cputln + // [102] call cputln jsr cputln // cputc::@return __breturn: @@ -3649,7 +3649,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [105] call cputln + // [105] call cputln jsr cputln rts } @@ -3682,7 +3682,7 @@ cputln: { // [109] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [110] call cscroll + // [110] call cscroll jsr cscroll // cputln::@return // } @@ -3700,14 +3700,14 @@ cscroll: { // [113] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [114] call memcpy + // [114] call memcpy // [125] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [125] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [125] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [125] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [125] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -3716,14 +3716,14 @@ cscroll: { // [115] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [116] call memcpy + // [116] call memcpy // [125] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [125] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [125] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [125] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [125] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -3732,11 +3732,11 @@ cscroll: { // [117] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [118] call memset + // [118] call memset // [135] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [135] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [135] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [135] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -3745,11 +3745,11 @@ cscroll: { // [119] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [120] call memset + // [120] call memset // [135] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [135] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [135] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [135] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -3786,7 +3786,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp($17) destination, void* zp(4) source) +// void * memcpy(__zp($17) void *destination, __zp(4) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = $17 @@ -3794,7 +3794,7 @@ memcpy: { .label source = 4 .label destination = $17 // char* src_end = (char*)source+num - // [126] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -3802,8 +3802,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [127] memcpy::src#4 = (byte*)memcpy::source#2 - // [128] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [127] memcpy::src#4 = (char *)memcpy::source#2 + // [128] memcpy::dst#4 = (char *)memcpy::destination#2 // [129] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [129] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [129] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -3843,14 +3843,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(4) str, byte register(X) c) +// void * memset(__zp(4) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 4 .label str = 4 // memset::@1 // char* end = (char*)str + num - // [136] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [136] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -3858,7 +3858,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [137] memset::dst#4 = (byte*)memset::str#3 + // [137] memset::dst#4 = (char *)memset::str#3 // [138] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [138] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/tod-1.sym b/src/test/ref/tod-1.sym index 27a3a3ff7..29dd49a6f 100644 --- a/src/test/ref/tod-1.sym +++ b/src/test/ref/tod-1.sym @@ -1,142 +1,142 @@ -constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e -constant byte OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a -constant byte OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 -constant byte OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 -constant byte OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 -constant byte OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 -struct TIME_OF_DAY TOD_ZERO loadstore mem[4] = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } +__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL = $e +__constant char OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL = $f +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_10THS = 8 +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS = $b +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_MIN = $a +__constant char OFFSET_STRUCT_MOS6526_CIA_TOD_SEC = 9 +__constant char OFFSET_STRUCT_TIME_OF_DAY_HOURS = 3 +__constant char OFFSET_STRUCT_TIME_OF_DAY_MIN = 2 +__constant char OFFSET_STRUCT_TIME_OF_DAY_SEC = 1 +__loadstore struct TIME_OF_DAY TOD_ZERO = { TENTHS: 0, SEC: 0, MIN: 0, HOURS: 0 } // mem[4] void __start() void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:6 348860.67441860464 -byte conio_cursor_y loadstore zp[1]:7 5423745.898305085 -byte* conio_line_color loadstore zp[2]:10 4333353.098039215 -byte* conio_line_text loadstore zp[2]:8 4169830.3396226414 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 1050001.5 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:6 348860.67441860464 +__loadstore char conio_cursor_y // zp[1]:7 5423745.898305085 +__loadstore char *conio_line_color // zp[2]:10 4333353.098039215 +__loadstore char *conio_line_text // zp[2]:8 4169830.3396226414 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 1050001.5 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 100001.0 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:2 50000.5 -const byte* cputs::s#2 s zp[2]:2 150001.5 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 100001.0 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:2 50000.5 +const char *cputs::s#2 // s zp[2]:2 150001.5 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:18 2002.0 -byte*~ gotoxy::$6 zp[2]:14 2002.0 -word~ gotoxy::$7 zp[2]:14 1501.5 -word~ gotoxy::$8 zp[2]:16 2002.0 -word~ gotoxy::$9 zp[2]:14 2002.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:14 1001.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 reg byte x 22.0 -byte gotoxy::y#4 reg byte x 671.0 -byte gotoxy::y#5 reg byte x 667.3333333333334 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:18 2002.0 +char *gotoxy::$6 // zp[2]:14 2002.0 +unsigned int gotoxy::$7 // zp[2]:14 1501.5 +unsigned int gotoxy::$8 // zp[2]:16 2002.0 +unsigned int gotoxy::$9 // zp[2]:14 2002.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:14 1001.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // reg byte x 22.0 +char gotoxy::y#4 // reg byte x 671.0 +char gotoxy::y#5 // reg byte x 667.3333333333334 void main() -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:23 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:23 1.000000000001E12 -byte* memcpy::dst#2 dst zp[2]:23 1.0003333333346667E12 -byte* memcpy::dst#4 dst zp[2]:23 2.000000002E9 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:4 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:4 2.000000000002E12 -byte* memcpy::src#2 src zp[2]:4 1.00025000000125E12 -byte* memcpy::src#4 src zp[2]:4 1.000000001E9 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:21 1.2512500000025E11 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.428571428572857E11 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:4 2.000000000002E12 -byte* memset::dst#2 dst zp[2]:4 1.3336666666683335E12 -byte* memset::dst#4 dst zp[2]:4 2.000000002E9 -byte* memset::end -byte* memset::end#0 end zp[2]:23 1.668333333336667E11 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:4 -constant byte* tod_buffer[] = "00:00:00:00" -void tod_init(byte tod_init::tod_TENTHS , byte tod_init::tod_SEC , byte tod_init::tod_MIN , byte tod_init::tod_HOURS) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:23 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:23 1.000000000001E12 +char *memcpy::dst#2 // dst zp[2]:23 1.0003333333346667E12 +char *memcpy::dst#4 // dst zp[2]:23 2.000000002E9 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:4 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:4 2.000000000002E12 +char *memcpy::src#2 // src zp[2]:4 1.00025000000125E12 +char *memcpy::src#4 // src zp[2]:4 1.000000001E9 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:21 1.2512500000025E11 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.428571428572857E11 +char *memset::dst +char *memset::dst#1 // dst zp[2]:4 2.000000000002E12 +char *memset::dst#2 // dst zp[2]:4 1.3336666666683335E12 +char *memset::dst#4 // dst zp[2]:4 2.000000002E9 +char *memset::end +char *memset::end#0 // end zp[2]:23 1.668333333336667E11 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:4 +__constant char tod_buffer[] = "00:00:00:00" +void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) struct TIME_OF_DAY tod_init::tod -byte tod_init::tod_HOURS -byte tod_init::tod_HOURS#0 reg byte y 37.33333333333333 -byte tod_init::tod_MIN -byte tod_init::tod_MIN#0 reg byte x 22.4 -byte tod_init::tod_SEC -byte tod_init::tod_SEC#0 tod_SEC zp[1]:13 16.0 -byte tod_init::tod_TENTHS -byte tod_init::tod_TENTHS#0 tod_TENTHS zp[1]:12 12.444444444444443 +char tod_init::tod_HOURS +char tod_init::tod_HOURS#0 // reg byte y 37.33333333333333 +char tod_init::tod_MIN +char tod_init::tod_MIN#0 // reg byte x 22.4 +char tod_init::tod_SEC +char tod_init::tod_SEC#0 // tod_SEC zp[1]:13 16.0 +char tod_init::tod_TENTHS +char tod_init::tod_TENTHS#0 // tod_TENTHS zp[1]:12 12.444444444444443 struct TIME_OF_DAY tod_read() -byte tod_read::hours -byte tod_read::mins +char tod_read::hours +char tod_read::mins struct TIME_OF_DAY tod_read::return -byte tod_read::return_HOURS -byte tod_read::return_HOURS#0 return_HOURS zp[1]:20 122.44444444444446 -byte tod_read::return_HOURS#1 reg byte a 50.5 -byte tod_read::return_MIN -byte tod_read::return_MIN#0 reg byte a 157.42857142857142 -byte tod_read::return_MIN#1 return_MIN zp[1]:12 50.5 -byte tod_read::return_SEC -byte tod_read::return_SEC#0 reg byte x 220.39999999999998 -byte tod_read::return_SEC#1 reg byte x 50.5 -byte tod_read::return_TENTHS -byte tod_read::return_TENTHS#0 reg byte y 367.33333333333337 -byte tod_read::return_TENTHS#1 reg byte y 50.5 -byte tod_read::secs -byte tod_read::tenths -byte tod_read::tod_HOURS -byte tod_read::tod_MIN -byte tod_read::tod_SEC -byte tod_read::tod_TENTHS -byte* tod_str(byte tod_str::tod_TENTHS , byte tod_str::tod_SEC , byte tod_str::tod_MIN , byte tod_str::tod_HOURS) -byte~ tod_str::$0 reg byte a 2002.0 -byte~ tod_str::$1 reg byte a 2002.0 -byte~ tod_str::$10 reg byte a 2002.0 -byte~ tod_str::$11 reg byte a 2002.0 -byte~ tod_str::$12 reg byte a 2002.0 -byte~ tod_str::$13 reg byte a 2002.0 -byte~ tod_str::$14 reg byte a 2002.0 -byte~ tod_str::$15 reg byte a 2002.0 -byte~ tod_str::$2 reg byte a 2002.0 -byte~ tod_str::$3 reg byte a 2002.0 -byte~ tod_str::$4 reg byte a 2002.0 -byte~ tod_str::$5 reg byte a 2002.0 -byte~ tod_str::$6 reg byte a 2002.0 -byte~ tod_str::$7 reg byte a 2002.0 -byte~ tod_str::$8 reg byte a 2002.0 -byte~ tod_str::$9 reg byte a 2002.0 -byte* tod_str::return +char tod_read::return_HOURS +char tod_read::return_HOURS#0 // return_HOURS zp[1]:20 122.44444444444446 +char tod_read::return_HOURS#1 // reg byte a 50.5 +char tod_read::return_MIN +char tod_read::return_MIN#0 // reg byte a 157.42857142857142 +char tod_read::return_MIN#1 // return_MIN zp[1]:12 50.5 +char tod_read::return_SEC +char tod_read::return_SEC#0 // reg byte x 220.39999999999998 +char tod_read::return_SEC#1 // reg byte x 50.5 +char tod_read::return_TENTHS +char tod_read::return_TENTHS#0 // reg byte y 367.33333333333337 +char tod_read::return_TENTHS#1 // reg byte y 50.5 +char tod_read::secs +char tod_read::tenths +char tod_read::tod_HOURS +char tod_read::tod_MIN +char tod_read::tod_SEC +char tod_read::tod_TENTHS +char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS) +char tod_str::$0 // reg byte a 2002.0 +char tod_str::$1 // reg byte a 2002.0 +char tod_str::$10 // reg byte a 2002.0 +char tod_str::$11 // reg byte a 2002.0 +char tod_str::$12 // reg byte a 2002.0 +char tod_str::$13 // reg byte a 2002.0 +char tod_str::$14 // reg byte a 2002.0 +char tod_str::$15 // reg byte a 2002.0 +char tod_str::$2 // reg byte a 2002.0 +char tod_str::$3 // reg byte a 2002.0 +char tod_str::$4 // reg byte a 2002.0 +char tod_str::$5 // reg byte a 2002.0 +char tod_str::$6 // reg byte a 2002.0 +char tod_str::$7 // reg byte a 2002.0 +char tod_str::$8 // reg byte a 2002.0 +char tod_str::$9 // reg byte a 2002.0 +char *tod_str::return struct TIME_OF_DAY tod_str::tod -byte tod_str::tod_HOURS -byte tod_str::tod_HOURS#0 reg byte x 525.75 -byte tod_str::tod_MIN -byte tod_str::tod_MIN#0 reg byte y 191.1818181818182 -byte tod_str::tod_SEC -byte tod_str::tod_SEC#0 tod_SEC zp[1]:20 116.83333333333334 -byte tod_str::tod_TENTHS -byte tod_str::tod_TENTHS#0 tod_TENTHS zp[1]:13 84.12 +char tod_str::tod_HOURS +char tod_str::tod_HOURS#0 // reg byte x 525.75 +char tod_str::tod_MIN +char tod_str::tod_MIN#0 // reg byte y 191.1818181818182 +char tod_str::tod_SEC +char tod_str::tod_SEC#0 // tod_SEC zp[1]:20 116.83333333333334 +char tod_str::tod_TENTHS +char tod_str::tod_TENTHS#0 // tod_TENTHS zp[1]:13 84.12 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] reg byte x [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] diff --git a/src/test/ref/tod018-problem.log b/src/test/ref/tod018-problem.log index 390346725..d65cf429a 100644 --- a/src/test/ref/tod018-problem.log +++ b/src/test/ref/tod018-problem.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,17 +22,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* const main::D018 = (byte*)$d018 -constant byte main::d018val = byte1 main::screen&$3fff -constant byte* const main::screen = (byte*)$400 +__constant char * const main::D018 = (char *)$d018 +__constant char main::d018val = byte1 main::screen&$3fff +__constant char * const main::screen = (char *)$400 Adding number conversion cast (unumber) $3fff in Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 53272 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53272 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $3fff Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $3fff +Finalized unsigned number type (unsigned int) $3fff Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -108,9 +108,9 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* const main::D018 = (byte*) 53272 -constant byte main::d018val = byte1 main::screen&$3fff -constant byte* const main::screen = (byte*) 1024 +__constant char * const main::D018 = (char *) 53272 +__constant char main::d018val = byte1 main::screen&$3fff +__constant char * const main::screen = (char *) 1024 diff --git a/src/test/ref/tod018-problem.sym b/src/test/ref/tod018-problem.sym index a01fba779..deb95475b 100644 --- a/src/test/ref/tod018-problem.sym +++ b/src/test/ref/tod018-problem.sym @@ -1,5 +1,5 @@ void main() -constant byte* const main::D018 = (byte*) 53272 -constant byte main::d018val = byte1 main::screen&$3fff -constant byte* const main::screen = (byte*) 1024 +__constant char * const main::D018 = (char *) 53272 +__constant char main::d018val = byte1 main::screen&$3fff +__constant char * const main::screen = (char *) 1024 diff --git a/src/test/ref/toupper-1.asm b/src/test/ref/toupper-1.asm index 2f12683e0..e4d6a80a2 100644 --- a/src/test/ref/toupper-1.asm +++ b/src/test/ref/toupper-1.asm @@ -103,7 +103,7 @@ main: { rts } // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .label __5 = $10 .label __6 = $c @@ -248,7 +248,7 @@ clrscr: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -276,7 +276,7 @@ cputc: { } // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte register(A) ch) +// __register(A) char toupper(__register(A) char ch) toupper: { // if(ch>='a' && ch<='z') cmp #'a' @@ -385,7 +385,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(4) destination, void* zp($14) source) +// void * memcpy(__zp(4) void *destination, __zp($14) void *source, unsigned int num) memcpy: { .label src_end = $12 .label dst = 4 @@ -427,7 +427,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($12) str, byte register(X) c) +// void * memset(__zp($12) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = $12 diff --git a/src/test/ref/toupper-1.cfg b/src/test/ref/toupper-1.cfg index 0de1dc8af..2f47cb5f2 100644 --- a/src/test/ref/toupper-1.cfg +++ b/src/test/ref/toupper-1.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -29,7 +29,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -37,13 +37,13 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 - [16] *((byte*) 53272) = $17 - [17] call clrscr + [16] *((char *) 53272) = $17 + [17] call clrscr to:main::@1 main::@1: scope:[main] from main main::@4 [18] main::c#2 = phi( main/0, main::@4/main::c#1 ) [19] cputc::c#0 = main::c#2 - [20] call cputc + [20] call cputc to:main::@4 main::@4: scope:[main] from main::@1 [21] main::c#1 = ++ main::c#2 @@ -54,17 +54,17 @@ main::wherey1: scope:[main] from main::@4 to:main::@3 main::@3: scope:[main] from main::wherey1 [24] gotoxy::y#3 = main::wherey1_return#0 + 2 - [25] call gotoxy + [25] call gotoxy to:main::@2 main::@2: scope:[main] from main::@3 main::@6 [26] main::c1#2 = phi( main::@3/0, main::@6/main::c1#1 ) [27] toupper::ch#0 = main::c1#2 - [28] call toupper + [28] call toupper [29] toupper::return#3 = toupper::return#2 to:main::@5 main::@5: scope:[main] from main::@2 [30] cputc::c#1 = toupper::return#3 - [31] call cputc + [31] call cputc to:main::@6 main::@6: scope:[main] from main::@5 [32] main::c1#1 = ++ main::c1#2 @@ -74,7 +74,7 @@ main::@return: scope:[main] from main::@6 [34] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 main::@3 [35] gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, main::@3/gotoxy::y#3 ) [36] if(gotoxy::y#4<$19+1) goto gotoxy::@3 @@ -88,7 +88,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [39] conio_cursor_x = 0 [40] conio_cursor_y = gotoxy::y#5 - [41] gotoxy::$7 = (word)gotoxy::y#5 + [41] gotoxy::$7 = (unsigned int)gotoxy::y#5 [42] gotoxy::$8 = gotoxy::$7 << 2 [43] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [44] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -135,7 +135,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [65] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from main::@1 main::@5 [66] cputc::c#2 = phi( main::@1/cputc::c#0, main::@5/cputc::c#1 ) [67] if(cputc::c#2==' @@ -149,17 +149,17 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [72] phi() - [73] call cputln + [73] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [74] return to:@return cputc::@1: scope:[cputc] from cputc [75] phi() - [76] call cputln + [76] call cputln to:cputc::@return -byte toupper(byte toupper::ch) +char toupper(char ch) toupper: scope:[toupper] from main::@2 [77] if(toupper::ch#0<'a') goto toupper::@return to:toupper::@2 @@ -180,7 +180,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [83] conio_line_color = conio_line_color + $28 [84] conio_cursor_x = 0 [85] conio_cursor_y = ++ conio_cursor_y - [86] call cscroll + [86] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [87] return @@ -192,19 +192,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [89] phi() - [90] call memcpy + [90] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [91] phi() - [92] call memcpy + [92] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [93] phi() - [94] call memset + [94] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [95] phi() - [96] call memset + [96] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [97] conio_line_text = conio_line_text - $28 @@ -215,13 +215,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [100] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [101] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [101] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [102] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [103] memcpy::src#4 = (byte*)memcpy::source#2 - [104] memcpy::dst#4 = (byte*)memcpy::destination#2 + [101] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [101] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [102] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [103] memcpy::src#4 = (char *)memcpy::source#2 + [104] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [105] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -237,14 +237,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [110] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [111] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [111] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [111] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [112] memset::end#0 = (byte*)memset::str#3 + $28 - [113] memset::dst#4 = (byte*)memset::str#3 + [112] memset::end#0 = (char *)memset::str#3 + $28 + [113] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [114] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) diff --git a/src/test/ref/toupper-1.log b/src/test/ref/toupper-1.log index c4ec9fc18..498505ed0 100644 --- a/src/test/ref/toupper-1.log +++ b/src/test/ref/toupper-1.log @@ -1,6 +1,6 @@ Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) -Inlined call main::$1 = call wherey -Inlined call call __init +Inlined call main::$1 = call wherey +Inlined call call __init Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 @@ -61,7 +61,7 @@ clrscr::@return: scope:[clrscr] from clrscr::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 main::@3 gotoxy::x#6 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1, main::@3/gotoxy::x#3 ) gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1, main::@3/gotoxy::y#3 ) @@ -85,7 +85,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#5 = phi( gotoxy::@1/gotoxy::x#4, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#5 conio_cursor_y = gotoxy::y#5 - gotoxy::$7 = (word)gotoxy::y#5 + gotoxy::$7 = (unsigned int)gotoxy::y#5 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -100,7 +100,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from main::@1 main::@7 cputc::c#2 = phi( main::@1/cputc::c#0, main::@7/cputc::c#1 ) cputc::$0 = cputc::c#2 == ' @@ -108,7 +108,7 @@ cputc: scope:[cputc] from main::@1 main::@7 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -122,7 +122,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -136,7 +136,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -144,14 +144,14 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) - memcpy::src#0 = ((byte*)) memcpy::source#2 - memcpy::dst#0 = ((byte*)) memcpy::destination#2 - memcpy::$2 = (byte*)memcpy::source#2 + memcpy::src#0 = ((char *)) memcpy::source#2 + memcpy::dst#0 = ((char *)) memcpy::destination#2 + memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 @@ -181,7 +181,7 @@ memcpy::@return: scope:[memcpy] from memcpy::@3 return to:@return -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) @@ -198,9 +198,9 @@ memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) - memset::$4 = (byte*)memset::str#3 + memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 - memset::dst#0 = ((byte*)) memset::str#3 + memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) @@ -224,7 +224,7 @@ memset::@return: scope:[memset] from memset::@1 return to:@return -byte toupper(byte toupper::ch) +char toupper(char ch) toupper: scope:[toupper] from main::@2 toupper::ch#1 = phi( main::@2/toupper::ch#0 ) toupper::$0 = toupper::ch#1 >= 'a' @@ -258,31 +258,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -293,7 +293,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -312,7 +312,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -325,8 +325,8 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 void main() main: scope:[main] from __start::@1 - *((byte*)$d018) = $17 - call clrscr + *((char *)$d018) = $17 + call clrscr to:main::@4 main::@4: scope:[main] from main main::c#0 = 0 @@ -334,7 +334,7 @@ main::@4: scope:[main] from main main::@1: scope:[main] from main::@4 main::@5 main::c#2 = phi( main::@4/main::c#0, main::@5/main::c#1 ) cputc::c#0 = main::c#2 - call cputc + call cputc to:main::@5 main::@5: scope:[main] from main::@1 main::c#3 = phi( main::@1/main::c#2 ) @@ -355,7 +355,7 @@ main::@3: scope:[main] from main::wherey1_@return main::$2 = main::$1 + 2 gotoxy::x#3 = 0 gotoxy::y#3 = main::$2 - call gotoxy + call gotoxy to:main::@6 main::@6: scope:[main] from main::@3 main::c1#0 = 0 @@ -363,7 +363,7 @@ main::@6: scope:[main] from main::@3 main::@2: scope:[main] from main::@6 main::@8 main::c1#2 = phi( main::@6/main::c1#0, main::@8/main::c1#1 ) toupper::ch#0 = main::c1#2 - call toupper + call toupper toupper::return#3 = toupper::return#2 to:main::@7 main::@7: scope:[main] from main::@2 @@ -371,7 +371,7 @@ main::@7: scope:[main] from main::@2 toupper::return#5 = phi( main::@2/toupper::return#3 ) main::$6 = toupper::return#5 cputc::c#1 = main::$6 - call cputc + call cputc to:main::@8 main::@8: scope:[main] from main::@7 main::c1#3 = phi( main::@7/main::c1#4 ) @@ -393,12 +393,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -407,218 +407,218 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant const byte LIGHT_BLUE = $e +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant const char LIGHT_BLUE = $e void __start() void clrscr() -bool~ clrscr::$0 -bool~ clrscr::$1 -byte clrscr::c -byte clrscr::c#0 -byte clrscr::c#1 -byte clrscr::c#2 -byte clrscr::c#3 -byte clrscr::l -byte clrscr::l#0 -byte clrscr::l#1 -byte clrscr::l#2 -byte clrscr::l#3 -byte clrscr::l#4 -byte clrscr::l#5 -byte clrscr::l#6 -byte* clrscr::line_cols -byte* clrscr::line_cols#0 -byte* clrscr::line_cols#1 -byte* clrscr::line_cols#2 -byte* clrscr::line_cols#3 -byte* clrscr::line_cols#4 -byte* clrscr::line_cols#5 -byte* clrscr::line_cols#6 -byte* clrscr::line_text -byte* clrscr::line_text#0 -byte* clrscr::line_text#1 -byte* clrscr::line_text#2 -byte* clrscr::line_text#3 -byte* clrscr::line_text#4 -byte* clrscr::line_text#5 -byte* clrscr::line_text#6 +bool clrscr::$0 +bool clrscr::$1 +char clrscr::c +char clrscr::c#0 +char clrscr::c#1 +char clrscr::c#2 +char clrscr::c#3 +char clrscr::l +char clrscr::l#0 +char clrscr::l#1 +char clrscr::l#2 +char clrscr::l#3 +char clrscr::l#4 +char clrscr::l#5 +char clrscr::l#6 +char *clrscr::line_cols +char *clrscr::line_cols#0 +char *clrscr::line_cols#1 +char *clrscr::line_cols#2 +char *clrscr::line_cols#3 +char *clrscr::line_cols#4 +char *clrscr::line_cols#5 +char *clrscr::line_cols#6 +char *clrscr::line_text +char *clrscr::line_text#0 +char *clrscr::line_text#1 +char *clrscr::line_text#2 +char *clrscr::line_text#3 +char *clrscr::line_text#4 +char *clrscr::line_text#5 +char *clrscr::line_text#6 void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 void cputln() void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::x#7 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 -byte gotoxy::y#7 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::x#7 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 +char gotoxy::y#7 void main() -byte~ main::$1 -number~ main::$2 -bool~ main::$5 -byte~ main::$6 -bool~ main::$8 -byte main::c -byte main::c#0 -byte main::c#1 -byte main::c#2 -byte main::c#3 -byte main::c1 -byte main::c1#0 -byte main::c1#1 -byte main::c1#2 -byte main::c1#3 -byte main::c1#4 -byte main::wherey1_return -byte main::wherey1_return#0 -byte main::wherey1_return#1 -byte main::wherey1_return#2 -byte main::wherey1_return#3 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -byte toupper(byte toupper::ch) -bool~ toupper::$0 -bool~ toupper::$1 -bool~ toupper::$2 -byte~ toupper::$3 -byte toupper::ch -byte toupper::ch#0 -byte toupper::ch#1 -byte toupper::ch#2 -byte toupper::ch#3 -byte toupper::return -byte toupper::return#0 -byte toupper::return#1 -byte toupper::return#2 -byte toupper::return#3 -byte toupper::return#4 -byte toupper::return#5 +char main::$1 +number main::$2 +bool main::$5 +char main::$6 +bool main::$8 +char main::c +char main::c#0 +char main::c#1 +char main::c#2 +char main::c#3 +char main::c1 +char main::c1#0 +char main::c1#1 +char main::c1#2 +char main::c1#3 +char main::c1#4 +char main::wherey1_return +char main::wherey1_return#0 +char main::wherey1_return#1 +char main::wherey1_return#2 +char main::wherey1_return#3 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +char toupper(char ch) +bool toupper::$0 +bool toupper::$1 +bool toupper::$2 +char toupper::$3 +char toupper::ch +char toupper::ch#0 +char toupper::ch#1 +char toupper::ch#2 +char toupper::ch#3 +char toupper::return +char toupper::return#0 +char toupper::return#1 +char toupper::return#2 +char toupper::return#3 +char toupper::return#4 +char toupper::return#5 Adding number conversion cast (unumber) $19 in clrscr::$0 = clrscr::l#2 < $19 Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 @@ -638,15 +638,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -655,7 +655,7 @@ Adding number conversion cast (unumber) 0 in gotoxy::y#1 = 0 Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_init::line#0 >= $19 Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 -Adding number conversion cast (unumber) $17 in *((byte*)$d018) = $17 +Adding number conversion cast (unumber) $17 in *((char *)$d018) = $17 Adding number conversion cast (unumber) 2 in main::$2 = main::$1 + 2 Adding number conversion cast (unumber) main::$2 in main::$2 = main::$1 + (unumber)2 Adding number conversion cast (unumber) 0 in gotoxy::x#3 = 0 @@ -665,9 +665,9 @@ Inlining cast conio_cursor_y = (unumber)0 Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast memcpy::num#0 = (unumber)$19*$28-$28 Inlining cast memcpy::num#1 = (unumber)$19*$28-$28 Inlining cast memset::num#0 = (unumber)$28 @@ -676,12 +676,12 @@ Inlining cast gotoxy::x#1 = (unumber)0 Inlining cast gotoxy::y#1 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_c64_init::line#1 = (unumber)$19-1 -Inlining cast *((byte*)$d018) = (unumber)$17 +Inlining cast *((char *)$d018) = (unumber)$17 Inlining cast gotoxy::x#3 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -713,45 +713,45 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Simplifying constant integer cast $17 -Simplifying constant pointer cast (byte*) 53272 +Simplifying constant pointer cast (char *) 53272 Simplifying constant integer cast 2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$2 = main::$1 + 2 +Inferred type updated to char in main::$2 = main::$1 + 2 Inversing boolean not [26] gotoxy::$1 = gotoxy::y#4 <= $19 from [25] gotoxy::$0 = gotoxy::y#4 > $19 Inversing boolean not [30] gotoxy::$3 = gotoxy::x#4 < $28 from [29] gotoxy::$2 = gotoxy::x#4 >= $28 Inversing boolean not [55] cputc::$2 = conio_cursor_x != $28 from [54] cputc::$1 = conio_cursor_x == $28 @@ -840,16 +840,16 @@ Constant clrscr::l#0 = 0 Constant clrscr::c#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -893,9 +893,9 @@ Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -906,11 +906,11 @@ Negating conditional jump and destination [67] if(toupper::ch#0<'a') goto touppe Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [45] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [46] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [47] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [57] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [59] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [45] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [46] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [47] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [57] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [59] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift and addition[23] gotoxy::line_offset#0 = gotoxy::$7 * $28 Inlining constant with var siblings clrscr::line_text#0 @@ -938,24 +938,24 @@ Inlining constant with var siblings main::c#0 Inlining constant with var siblings main::c1#0 Constant inlined main::c1#0 = 0 Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 Constant inlined clrscr::l#0 = 0 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 +Constant inlined conio_c64_init::line#1 = (char)$19-1 Constant inlined main::c#0 = 0 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined clrscr::line_text#0 = DEFAULT_SCREEN -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined gotoxy::x#3 = 0 -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined gotoxy::x#0 = 0 Constant inlined gotoxy::y#0 = 0 Constant inlined gotoxy::x#2 = 0 @@ -971,7 +971,7 @@ Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Identical Phi Values gotoxy::x#4 0 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values gotoxy::x#5 0 @@ -983,15 +983,15 @@ Removing unused block gotoxy::@4 Successful SSA optimization Pass2EliminateUnusedBlocks Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification @@ -1113,11 +1113,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -1134,7 +1134,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -1142,13 +1142,13 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 - [16] *((byte*) 53272) = $17 - [17] call clrscr + [16] *((char *) 53272) = $17 + [17] call clrscr to:main::@1 main::@1: scope:[main] from main main::@4 [18] main::c#2 = phi( main/0, main::@4/main::c#1 ) [19] cputc::c#0 = main::c#2 - [20] call cputc + [20] call cputc to:main::@4 main::@4: scope:[main] from main::@1 [21] main::c#1 = ++ main::c#2 @@ -1159,17 +1159,17 @@ main::wherey1: scope:[main] from main::@4 to:main::@3 main::@3: scope:[main] from main::wherey1 [24] gotoxy::y#3 = main::wherey1_return#0 + 2 - [25] call gotoxy + [25] call gotoxy to:main::@2 main::@2: scope:[main] from main::@3 main::@6 [26] main::c1#2 = phi( main::@3/0, main::@6/main::c1#1 ) [27] toupper::ch#0 = main::c1#2 - [28] call toupper + [28] call toupper [29] toupper::return#3 = toupper::return#2 to:main::@5 main::@5: scope:[main] from main::@2 [30] cputc::c#1 = toupper::return#3 - [31] call cputc + [31] call cputc to:main::@6 main::@6: scope:[main] from main::@5 [32] main::c1#1 = ++ main::c1#2 @@ -1179,7 +1179,7 @@ main::@return: scope:[main] from main::@6 [34] return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 main::@3 [35] gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, main::@3/gotoxy::y#3 ) [36] if(gotoxy::y#4<$19+1) goto gotoxy::@3 @@ -1193,7 +1193,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [39] conio_cursor_x = 0 [40] conio_cursor_y = gotoxy::y#5 - [41] gotoxy::$7 = (word)gotoxy::y#5 + [41] gotoxy::$7 = (unsigned int)gotoxy::y#5 [42] gotoxy::$8 = gotoxy::$7 << 2 [43] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [44] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -1240,7 +1240,7 @@ clrscr::@4: scope:[clrscr] from clrscr::@3 [65] clrscr::c#1 = ++ clrscr::c#2 to:clrscr::@3 -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from main::@1 main::@5 [66] cputc::c#2 = phi( main::@1/cputc::c#0, main::@5/cputc::c#1 ) [67] if(cputc::c#2==' @@ -1254,17 +1254,17 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [72] phi() - [73] call cputln + [73] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [74] return to:@return cputc::@1: scope:[cputc] from cputc [75] phi() - [76] call cputln + [76] call cputln to:cputc::@return -byte toupper(byte toupper::ch) +char toupper(char ch) toupper: scope:[toupper] from main::@2 [77] if(toupper::ch#0<'a') goto toupper::@return to:toupper::@2 @@ -1285,7 +1285,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 [83] conio_line_color = conio_line_color + $28 [84] conio_cursor_x = 0 [85] conio_cursor_y = ++ conio_cursor_y - [86] call cscroll + [86] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [87] return @@ -1297,19 +1297,19 @@ cscroll: scope:[cscroll] from cputln to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll [89] phi() - [90] call memcpy + [90] call memcpy to:cscroll::@2 cscroll::@2: scope:[cscroll] from cscroll::@1 [91] phi() - [92] call memcpy + [92] call memcpy to:cscroll::@3 cscroll::@3: scope:[cscroll] from cscroll::@2 [93] phi() - [94] call memset + [94] call memset to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 [95] phi() - [96] call memset + [96] call memset to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 [97] conio_line_text = conio_line_text - $28 @@ -1320,13 +1320,13 @@ cscroll::@return: scope:[cscroll] from cscroll cscroll::@5 [100] return to:@return -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) +void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@1 cscroll::@2 - [101] memcpy::destination#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN, cscroll::@2/(void*)COLORRAM ) - [101] memcpy::source#2 = phi( cscroll::@1/(void*)DEFAULT_SCREEN+$28, cscroll::@2/(void*)COLORRAM+$28 ) - [102] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 - [103] memcpy::src#4 = (byte*)memcpy::source#2 - [104] memcpy::dst#4 = (byte*)memcpy::destination#2 + [101] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM ) + [101] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 ) + [102] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 + [103] memcpy::src#4 = (char *)memcpy::source#2 + [104] memcpy::dst#4 = (char *)memcpy::destination#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 [105] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 ) @@ -1342,14 +1342,14 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 [110] memcpy::src#1 = ++ memcpy::src#2 to:memcpy::@1 -void* memset(void* memset::str , byte memset::c , word memset::num) +void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@3 cscroll::@4 [111] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE ) - [111] memset::str#3 = phi( cscroll::@3/(void*)DEFAULT_SCREEN+(word)$19*$28-$28, cscroll::@4/(void*)COLORRAM+(word)$19*$28-$28 ) + [111] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 ) to:memset::@1 memset::@1: scope:[memset] from memset - [112] memset::end#0 = (byte*)memset::str#3 + $28 - [113] memset::dst#4 = (byte*)memset::str#3 + [112] memset::end#0 = (char *)memset::str#3 + $28 + [113] memset::dst#4 = (char *)memset::str#3 to:memset::@2 memset::@2: scope:[memset] from memset::@1 memset::@3 [114] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 ) @@ -1367,93 +1367,93 @@ memset::@3: scope:[memset] from memset::@2 VARIABLE REGISTER WEIGHTS void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 20002.0 -byte clrscr::c#2 12501.25 -byte clrscr::l -byte clrscr::l#1 2002.0 -byte clrscr::l#2 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 1001.0 -byte* clrscr::line_cols#5 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 667.3333333333334 -byte* clrscr::line_text#5 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // 20002.0 +char clrscr::c#2 // 12501.25 +char clrscr::l +char clrscr::l#1 // 2002.0 +char clrscr::l#2 // 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // 1001.0 +char *clrscr::line_cols#5 // 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // 667.3333333333334 +char *clrscr::line_text#5 // 1714.7142857142858 void conio_c64_init() -byte conio_c64_init::line -byte conio_c64_init::line#0 11.0 -byte conio_c64_init::line#2 22.0 -byte conio_cursor_x loadstore 345.6818181818182 -byte conio_cursor_y loadstore 5427.457627118644 -byte* conio_line_color loadstore 4514.469387755102 -byte* conio_line_text loadstore 4254.0192307692305 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 202.0 -byte cputc::c#1 202.0 -byte cputc::c#2 1102.0 +char conio_c64_init::line +char conio_c64_init::line#0 // 11.0 +char conio_c64_init::line#2 // 22.0 +__loadstore char conio_cursor_x // 345.6818181818182 +__loadstore char conio_cursor_y // 5427.457627118644 +__loadstore char *conio_line_color // 4514.469387755102 +__loadstore char *conio_line_text // 4254.0192307692305 +void cputc(char c) +char cputc::c +char cputc::c#0 // 202.0 +char cputc::c#1 // 202.0 +char cputc::c#2 // 1102.0 void cputln() void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 202.0 -byte*~ gotoxy::$6 202.0 -word~ gotoxy::$7 151.5 -word~ gotoxy::$8 202.0 -word~ gotoxy::$9 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 22.0 -byte gotoxy::y#3 22.0 -byte gotoxy::y#4 74.66666666666666 -byte gotoxy::y#5 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // 202.0 +char *gotoxy::$6 // 202.0 +unsigned int gotoxy::$7 // 151.5 +unsigned int gotoxy::$8 // 202.0 +unsigned int gotoxy::$9 // 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // 22.0 +char gotoxy::y#3 // 22.0 +char gotoxy::y#4 // 74.66666666666666 +char gotoxy::y#5 // 67.33333333333333 void main() -byte main::c -byte main::c#1 151.5 -byte main::c#2 101.0 -byte main::c1 -byte main::c1#1 151.5 -byte main::c1#2 50.5 -byte main::wherey1_return -byte main::wherey1_return#0 22.0 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 -byte* memcpy::dst -byte* memcpy::dst#1 1.00000001E8 -byte* memcpy::dst#2 1.0033333466666667E8 -byte* memcpy::dst#4 2000002.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#1 2.00000002E8 -byte* memcpy::src#2 1.0025000125E8 -byte* memcpy::src#4 1000001.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 1.262500025E7 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 1.428571442857143E7 -byte* memset::dst -byte* memset::dst#1 2.00000002E8 -byte* memset::dst#2 1.3366666833333334E8 -byte* memset::dst#4 2000002.0 -byte* memset::end -byte* memset::end#0 1.6833333666666668E7 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 -byte toupper(byte toupper::ch) -byte toupper::ch -byte toupper::ch#0 1702.0000000000002 -byte toupper::return -byte toupper::return#0 2002.0 -byte toupper::return#2 1034.6666666666667 -byte toupper::return#3 202.0 +char main::c +char main::c#1 // 151.5 +char main::c#2 // 101.0 +char main::c1 +char main::c1#1 // 151.5 +char main::c1#2 // 50.5 +char main::wherey1_return +char main::wherey1_return#0 // 22.0 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 +char *memcpy::dst +char *memcpy::dst#1 // 1.00000001E8 +char *memcpy::dst#2 // 1.0033333466666667E8 +char *memcpy::dst#4 // 2000002.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#1 // 2.00000002E8 +char *memcpy::src#2 // 1.0025000125E8 +char *memcpy::src#4 // 1000001.0 +char *memcpy::src_end +char *memcpy::src_end#0 // 1.262500025E7 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // 1.428571442857143E7 +char *memset::dst +char *memset::dst#1 // 2.00000002E8 +char *memset::dst#2 // 1.3366666833333334E8 +char *memset::dst#4 // 2000002.0 +char *memset::end +char *memset::end#0 // 1.6833333666666668E7 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 +char toupper(char ch) +char toupper::ch +char toupper::ch#0 // 1702.0000000000002 +char toupper::return +char toupper::return#0 // 2002.0 +char toupper::return#2 // 1034.6666666666667 +char toupper::return#3 // 202.0 Initial phi equivalence classes [ conio_c64_init::line#2 conio_c64_init::line#0 ] @@ -1555,10 +1555,10 @@ Statement [1] conio_cursor_x = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] conio_cursor_y = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a -Statement [16] *((byte*) 53272) = $17 [ ] ( main:7 [ ] { } ) always clobbers reg byte a +Statement [16] *((char *) 53272) = $17 [ ] ( main:7 [ ] { } ) always clobbers reg byte a Statement [39] conio_cursor_x = 0 [ conio_cursor_x gotoxy::y#5 ] ( gotoxy:14 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 gotoxy::y#3 ] -Statement [41] gotoxy::$7 = (word)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [41] gotoxy::$7 = (unsigned int)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Statement [42] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Statement [43] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Statement [44] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a @@ -1590,14 +1590,14 @@ Statement [84] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [88] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputc:20::cputln:73::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [97] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputc:20::cputln:73::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [98] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputc:20::cputln:73::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [102] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [103] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [104] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [102] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [103] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [104] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [106] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [108] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [112] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [112] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:24 [ memset::c#4 ] -Statement [113] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [113] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [115] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [117] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:24 [ memset::c#4 ] @@ -1605,9 +1605,9 @@ Statement [1] conio_cursor_x = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] conio_cursor_y = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] conio_line_text = DEFAULT_SCREEN [ ] ( [ ] { } ) always clobbers reg byte a Statement [4] conio_line_color = COLORRAM [ ] ( [ ] { } ) always clobbers reg byte a -Statement [16] *((byte*) 53272) = $17 [ ] ( main:7 [ ] { } ) always clobbers reg byte a +Statement [16] *((char *) 53272) = $17 [ ] ( main:7 [ ] { } ) always clobbers reg byte a Statement [39] conio_cursor_x = 0 [ conio_cursor_x gotoxy::y#5 ] ( gotoxy:14 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a -Statement [41] gotoxy::$7 = (word)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a +Statement [41] gotoxy::$7 = (unsigned int)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Statement [42] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Statement [43] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a Statement [44] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:5::gotoxy:14 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:7::gotoxy:25 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#3 = gotoxy::y#4 } } ) always clobbers reg byte a @@ -1633,13 +1633,13 @@ Statement [84] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_tex Statement [88] if(conio_cursor_y!=$19) goto cscroll::@return [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputc:20::cputln:73::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [97] conio_line_text = conio_line_text - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputc:20::cputln:73::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [98] conio_line_color = conio_line_color - $28 [ conio_cursor_y conio_line_text conio_line_color ] ( main:7::cputc:20::cputln:73::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [102] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [103] memcpy::src#4 = (byte*)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [104] memcpy::dst#4 = (byte*)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [102] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 [ memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::source#2 memcpy::destination#2 memcpy::src_end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [103] memcpy::src#4 = (char *)memcpy::source#2 [ memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::destination#2 memcpy::src_end#0 memcpy::src#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [104] memcpy::dst#4 = (char *)memcpy::destination#2 [ memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#4 memcpy::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [106] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [108] *memcpy::dst#2 = *memcpy::src#2 [ memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:90 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:90 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memcpy:92 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memcpy:92 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memcpy::src_end#0 memcpy::src#2 memcpy::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a reg byte y -Statement [112] memset::end#0 = (byte*)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a -Statement [113] memset::dst#4 = (byte*)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [112] memset::end#0 = (char *)memset::str#3 + $28 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::str#3 memset::c#4 memset::end#0 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a +Statement [113] memset::dst#4 = (char *)memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#4 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [115] if(memset::dst#2!=memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a Statement [117] *memset::dst#2 = memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:7::cputc:20::cputln:73::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:94 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:94 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:73::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:73::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } main:7::cputc:20::cputln:76::cscroll:86::memset:96 [ main::c#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#0 = cputc::c#2 main::c#2 } } main:7::cputc:31::cputln:76::cscroll:86::memset:96 [ main::c1#2 conio_cursor_x conio_cursor_y conio_line_text conio_line_color memset::c#4 memset::end#0 memset::dst#2 ] { { cputc::c#1 = cputc::c#2 toupper::return#3 } } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ conio_c64_init::line#2 conio_c64_init::line#0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , @@ -1786,14 +1786,14 @@ __start: { sta.z conio_line_color lda #>COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main jsr main jmp __breturn // __start::@return @@ -1828,7 +1828,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy // [35] phi from conio_c64_init::@1 to gotoxy [phi:conio_c64_init::@1->gotoxy] gotoxy_from___b1: // [35] phi gotoxy::y#4 = gotoxy::y#2 [phi:conio_c64_init::@1->gotoxy#0] -- register_copy @@ -1843,11 +1843,11 @@ conio_c64_init: { main: { .label c = 2 .label c1 = 3 - // [16] *((byte*) 53272) = $17 -- _deref_pbuc1=vbuc2 + // [16] *((char *) 53272) = $17 -- _deref_pbuc1=vbuc2 // Show mixed chars on screen lda #$17 sta $d018 - // [17] call clrscr + // [17] call clrscr // Clear screen // [50] phi from main to clrscr [phi:main->clrscr] clrscr_from_main: @@ -1867,7 +1867,7 @@ main: { __b1: // [19] cputc::c#0 = main::c#2 -- vbuaa=vbuz1 lda.z c - // [20] call cputc + // [20] call cputc // [66] phi from main::@1 to cputc [phi:main::@1->cputc] cputc_from___b1: // [66] phi cputc::c#2 = cputc::c#0 [phi:main::@1->cputc#0] -- register_copy @@ -1891,7 +1891,7 @@ main: { // [24] gotoxy::y#3 = main::wherey1_return#0 + 2 -- vbuxx=vbuxx_plus_2 inx inx - // [25] call gotoxy + // [25] call gotoxy // [35] phi from main::@3 to gotoxy [phi:main::@3->gotoxy] gotoxy_from___b3: // [35] phi gotoxy::y#4 = gotoxy::y#3 [phi:main::@3->gotoxy#0] -- register_copy @@ -1911,14 +1911,14 @@ main: { __b2: // [27] toupper::ch#0 = main::c1#2 -- vbuaa=vbuz1 lda.z c1 - // [28] call toupper + // [28] call toupper jsr toupper // [29] toupper::return#3 = toupper::return#2 jmp __b5 // main::@5 __b5: // [30] cputc::c#1 = toupper::return#3 - // [31] call cputc + // [31] call cputc // [66] phi from main::@5 to cputc [phi:main::@5->cputc] cputc_from___b5: // [66] phi cputc::c#2 = cputc::c#1 [phi:main::@5->cputc#0] -- register_copy @@ -1939,7 +1939,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .label __5 = $10 .label __6 = $c @@ -1974,7 +1974,7 @@ gotoxy: { sta.z conio_cursor_x // [40] conio_cursor_y = gotoxy::y#5 -- vbuz1=vbuxx stx.z conio_cursor_y - // [41] gotoxy::$7 = (word)gotoxy::y#5 -- vwuz1=_word_vbuxx + // [41] gotoxy::$7 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -2139,7 +2139,7 @@ clrscr: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [67] if(cputc::c#2==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -2165,7 +2165,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [73] call cputln + // [73] call cputln jsr cputln jmp __breturn // cputc::@return @@ -2177,14 +2177,14 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [76] call cputln + // [76] call cputln jsr cputln jmp __breturn } // toupper // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte register(A) ch) +// __register(A) char toupper(__register(A) char ch) toupper: { // [77] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 cmp #'a' @@ -2237,7 +2237,7 @@ cputln: { sta.z conio_cursor_x // [85] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [86] call cscroll + // [86] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -2257,15 +2257,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [90] call memcpy + // [90] call memcpy // [101] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [101] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [101] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [101] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [101] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -2276,15 +2276,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [92] call memcpy + // [92] call memcpy // [101] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [101] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [101] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [101] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [101] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -2295,12 +2295,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [94] call memset + // [94] call memset // [111] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [111] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [111] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [111] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -2311,12 +2311,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [96] call memset + // [96] call memset // [111] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [111] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [111] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [111] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -2352,14 +2352,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(4) destination, void* zp($14) source) +// void * memcpy(__zp(4) void *destination, __zp($14) void *source, unsigned int num) memcpy: { .label src_end = $12 .label dst = 4 .label src = $14 .label source = $14 .label destination = 4 - // [102] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [102] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -2367,8 +2367,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [103] memcpy::src#4 = (byte*)memcpy::source#2 - // [104] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [103] memcpy::src#4 = (char *)memcpy::source#2 + // [104] memcpy::dst#4 = (char *)memcpy::destination#2 // [105] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -2410,7 +2410,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($12) str, byte register(X) c) +// void * memset(__zp($12) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = $12 @@ -2418,7 +2418,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [112] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [112] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -2426,7 +2426,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [113] memset::dst#4 = (byte*)memset::str#3 + // [113] memset::dst#4 = (char *)memset::str#3 // [114] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -2602,99 +2602,99 @@ Removing instruction __b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:4 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:4 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:20 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:20 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:4 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:4 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:20 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:20 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:6 345.6818181818182 -byte conio_cursor_y loadstore zp[1]:7 5427.457627118644 -byte* conio_line_color loadstore zp[2]:10 4514.469387755102 -byte* conio_line_text loadstore zp[2]:8 4254.0192307692305 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 202.0 -byte cputc::c#1 reg byte a 202.0 -byte cputc::c#2 reg byte a 1102.0 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:6 345.6818181818182 +__loadstore char conio_cursor_y // zp[1]:7 5427.457627118644 +__loadstore char *conio_line_color // zp[2]:10 4514.469387755102 +__loadstore char *conio_line_text // zp[2]:8 4254.0192307692305 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 202.0 +char cputc::c#1 // reg byte a 202.0 +char cputc::c#2 // reg byte a 1102.0 void cputln() void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:16 202.0 -byte*~ gotoxy::$6 zp[2]:12 202.0 -word~ gotoxy::$7 zp[2]:12 151.5 -word~ gotoxy::$8 zp[2]:14 202.0 -word~ gotoxy::$9 zp[2]:12 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:12 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 reg byte x 22.0 -byte gotoxy::y#3 reg byte x 22.0 -byte gotoxy::y#4 reg byte x 74.66666666666666 -byte gotoxy::y#5 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:16 202.0 +char *gotoxy::$6 // zp[2]:12 202.0 +unsigned int gotoxy::$7 // zp[2]:12 151.5 +unsigned int gotoxy::$8 // zp[2]:14 202.0 +unsigned int gotoxy::$9 // zp[2]:12 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:12 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // reg byte x 22.0 +char gotoxy::y#3 // reg byte x 22.0 +char gotoxy::y#4 // reg byte x 74.66666666666666 +char gotoxy::y#5 // reg byte x 67.33333333333333 void main() -byte main::c -byte main::c#1 c zp[1]:2 151.5 -byte main::c#2 c zp[1]:2 101.0 -byte main::c1 -byte main::c1#1 c1 zp[1]:3 151.5 -byte main::c1#2 c1 zp[1]:3 50.5 -byte main::wherey1_return -byte main::wherey1_return#0 reg byte x 22.0 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:4 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:4 1.00000001E8 -byte* memcpy::dst#2 dst zp[2]:4 1.0033333466666667E8 -byte* memcpy::dst#4 dst zp[2]:4 2000002.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:20 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:20 2.00000002E8 -byte* memcpy::src#2 src zp[2]:20 1.0025000125E8 -byte* memcpy::src#4 src zp[2]:20 1000001.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:18 1.262500025E7 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.428571442857143E7 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:18 2.00000002E8 -byte* memset::dst#2 dst zp[2]:18 1.3366666833333334E8 -byte* memset::dst#4 dst zp[2]:18 2000002.0 -byte* memset::end -byte* memset::end#0 end zp[2]:20 1.6833333666666668E7 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:18 -byte toupper(byte toupper::ch) -byte toupper::ch -byte toupper::ch#0 reg byte a 1702.0000000000002 -byte toupper::return -byte toupper::return#0 reg byte a 2002.0 -byte toupper::return#2 reg byte a 1034.6666666666667 -byte toupper::return#3 reg byte a 202.0 +char main::c +char main::c#1 // c zp[1]:2 151.5 +char main::c#2 // c zp[1]:2 101.0 +char main::c1 +char main::c1#1 // c1 zp[1]:3 151.5 +char main::c1#2 // c1 zp[1]:3 50.5 +char main::wherey1_return +char main::wherey1_return#0 // reg byte x 22.0 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:4 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:4 1.00000001E8 +char *memcpy::dst#2 // dst zp[2]:4 1.0033333466666667E8 +char *memcpy::dst#4 // dst zp[2]:4 2000002.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:20 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:20 2.00000002E8 +char *memcpy::src#2 // src zp[2]:20 1.0025000125E8 +char *memcpy::src#4 // src zp[2]:20 1000001.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:18 1.262500025E7 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.428571442857143E7 +char *memset::dst +char *memset::dst#1 // dst zp[2]:18 2.00000002E8 +char *memset::dst#2 // dst zp[2]:18 1.3366666833333334E8 +char *memset::dst#4 // dst zp[2]:18 2000002.0 +char *memset::end +char *memset::end#0 // end zp[2]:20 1.6833333666666668E7 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:18 +char toupper(char ch) +char toupper::ch +char toupper::ch#0 // reg byte a 1702.0000000000002 +char toupper::return +char toupper::return#0 // reg byte a 2002.0 +char toupper::return#2 // reg byte a 1034.6666666666667 +char toupper::return#3 // reg byte a 202.0 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[1]:2 [ main::c#2 main::c#1 ] @@ -2772,11 +2772,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main jsr main // __start::@return // [8] return @@ -2805,7 +2805,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy // [35] phi from conio_c64_init::@1 to gotoxy [phi:conio_c64_init::@1->gotoxy] // [35] phi gotoxy::y#4 = gotoxy::y#2 [phi:conio_c64_init::@1->gotoxy#0] -- register_copy jsr gotoxy @@ -2819,12 +2819,12 @@ main: { .label c = 2 .label c1 = 3 // *((char*)0xd018) = 0x17 - // [16] *((byte*) 53272) = $17 -- _deref_pbuc1=vbuc2 + // [16] *((char *) 53272) = $17 -- _deref_pbuc1=vbuc2 // Show mixed chars on screen lda #$17 sta $d018 // clrscr() - // [17] call clrscr + // [17] call clrscr // Clear screen // [50] phi from main to clrscr [phi:main->clrscr] jsr clrscr @@ -2840,7 +2840,7 @@ main: { // cputc(c) // [19] cputc::c#0 = main::c#2 -- vbuaa=vbuz1 lda.z c - // [20] call cputc + // [20] call cputc // [66] phi from main::@1 to cputc [phi:main::@1->cputc] // [66] phi cputc::c#2 = cputc::c#0 [phi:main::@1->cputc#0] -- register_copy jsr cputc @@ -2860,7 +2860,7 @@ main: { // [24] gotoxy::y#3 = main::wherey1_return#0 + 2 -- vbuxx=vbuxx_plus_2 inx inx - // [25] call gotoxy + // [25] call gotoxy // [35] phi from main::@3 to gotoxy [phi:main::@3->gotoxy] // [35] phi gotoxy::y#4 = gotoxy::y#3 [phi:main::@3->gotoxy#0] -- register_copy jsr gotoxy @@ -2876,13 +2876,13 @@ main: { // toupper(c) // [27] toupper::ch#0 = main::c1#2 -- vbuaa=vbuz1 lda.z c1 - // [28] call toupper + // [28] call toupper jsr toupper // [29] toupper::return#3 = toupper::return#2 // main::@5 // cputc(toupper(c)) // [30] cputc::c#1 = toupper::return#3 - // [31] call cputc + // [31] call cputc // [66] phi from main::@5 to cputc [phi:main::@5->cputc] // [66] phi cputc::c#2 = cputc::c#1 [phi:main::@5->cputc#0] -- register_copy jsr cputc @@ -2900,7 +2900,7 @@ main: { } // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .label __5 = $10 .label __6 = $c @@ -2930,7 +2930,7 @@ gotoxy: { // [40] conio_cursor_y = gotoxy::y#5 -- vbuz1=vbuxx stx.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH - // [41] gotoxy::$7 = (word)gotoxy::y#5 -- vwuz1=_word_vbuxx + // [41] gotoxy::$7 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -3099,7 +3099,7 @@ clrscr: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [67] if(cputc::c#2==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -3124,7 +3124,7 @@ cputc: { // [72] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [73] call cputln + // [73] call cputln jsr cputln // cputc::@return __breturn: @@ -3135,14 +3135,14 @@ cputc: { // cputc::@1 __b1: // cputln() - // [76] call cputln + // [76] call cputln jsr cputln rts } // toupper // Convert lowercase alphabet to uppercase // Returns uppercase equivalent to c, if such value exists, else c remains unchanged -// toupper(byte register(A) ch) +// __register(A) char toupper(__register(A) char ch) toupper: { // if(ch>='a' && ch<='z') // [77] if(toupper::ch#0<'a') goto toupper::@return -- vbuaa_lt_vbuc1_then_la1 @@ -3197,7 +3197,7 @@ cputln: { // [85] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() - // [86] call cscroll + // [86] call cscroll jsr cscroll // cputln::@return // } @@ -3215,14 +3215,14 @@ cscroll: { // [89] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [90] call memcpy + // [90] call memcpy // [101] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [101] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [101] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [101] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [101] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -3231,14 +3231,14 @@ cscroll: { // [91] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [92] call memcpy + // [92] call memcpy // [101] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [101] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [101] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [101] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [101] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -3247,11 +3247,11 @@ cscroll: { // [93] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [94] call memset + // [94] call memset // [111] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [111] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [111] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [111] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -3260,11 +3260,11 @@ cscroll: { // [95] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [96] call memset + // [96] call memset // [111] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [111] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [111] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [111] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -3301,7 +3301,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(4) destination, void* zp($14) source) +// void * memcpy(__zp(4) void *destination, __zp($14) void *source, unsigned int num) memcpy: { .label src_end = $12 .label dst = 4 @@ -3309,7 +3309,7 @@ memcpy: { .label source = $14 .label destination = 4 // char* src_end = (char*)source+num - // [102] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [102] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -3317,8 +3317,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [103] memcpy::src#4 = (byte*)memcpy::source#2 - // [104] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [103] memcpy::src#4 = (char *)memcpy::source#2 + // [104] memcpy::dst#4 = (char *)memcpy::destination#2 // [105] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [105] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [105] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -3358,14 +3358,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp($12) str, byte register(X) c) +// void * memset(__zp($12) void *str, __register(X) char c, unsigned int num) memset: { .label end = $14 .label dst = $12 .label str = $12 // memset::@1 // char* end = (char*)str + num - // [112] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [112] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -3373,7 +3373,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [113] memset::dst#4 = (byte*)memset::str#3 + // [113] memset::dst#4 = (char *)memset::str#3 // [114] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [114] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/toupper-1.sym b/src/test/ref/toupper-1.sym index 53ee019ca..054aadfb8 100644 --- a/src/test/ref/toupper-1.sym +++ b/src/test/ref/toupper-1.sym @@ -1,96 +1,96 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant const byte LIGHT_BLUE = $e +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant const char LIGHT_BLUE = $e void __start() void clrscr() -byte clrscr::c -byte clrscr::c#1 reg byte y 20002.0 -byte clrscr::c#2 reg byte y 12501.25 -byte clrscr::l -byte clrscr::l#1 reg byte x 2002.0 -byte clrscr::l#2 reg byte x 333.6666666666667 -byte* clrscr::line_cols -byte* clrscr::line_cols#1 line_cols zp[2]:4 1001.0 -byte* clrscr::line_cols#5 line_cols zp[2]:4 1500.375 -byte* clrscr::line_text -byte* clrscr::line_text#1 line_text zp[2]:20 667.3333333333334 -byte* clrscr::line_text#5 line_text zp[2]:20 1714.7142857142858 +char clrscr::c +char clrscr::c#1 // reg byte y 20002.0 +char clrscr::c#2 // reg byte y 12501.25 +char clrscr::l +char clrscr::l#1 // reg byte x 2002.0 +char clrscr::l#2 // reg byte x 333.6666666666667 +char *clrscr::line_cols +char *clrscr::line_cols#1 // line_cols zp[2]:4 1001.0 +char *clrscr::line_cols#5 // line_cols zp[2]:4 1500.375 +char *clrscr::line_text +char *clrscr::line_text#1 // line_text zp[2]:20 667.3333333333334 +char *clrscr::line_text#5 // line_text zp[2]:20 1714.7142857142858 void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:6 345.6818181818182 -byte conio_cursor_y loadstore zp[1]:7 5427.457627118644 -byte* conio_line_color loadstore zp[2]:10 4514.469387755102 -byte* conio_line_text loadstore zp[2]:8 4254.0192307692305 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 202.0 -byte cputc::c#1 reg byte a 202.0 -byte cputc::c#2 reg byte a 1102.0 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:6 345.6818181818182 +__loadstore char conio_cursor_y // zp[1]:7 5427.457627118644 +__loadstore char *conio_line_color // zp[2]:10 4514.469387755102 +__loadstore char *conio_line_text // zp[2]:8 4254.0192307692305 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 202.0 +char cputc::c#1 // reg byte a 202.0 +char cputc::c#2 // reg byte a 1102.0 void cputln() void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:16 202.0 -byte*~ gotoxy::$6 zp[2]:12 202.0 -word~ gotoxy::$7 zp[2]:12 151.5 -word~ gotoxy::$8 zp[2]:14 202.0 -word~ gotoxy::$9 zp[2]:12 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:12 101.0 -byte gotoxy::x -byte gotoxy::y -byte gotoxy::y#2 reg byte x 22.0 -byte gotoxy::y#3 reg byte x 22.0 -byte gotoxy::y#4 reg byte x 74.66666666666666 -byte gotoxy::y#5 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:16 202.0 +char *gotoxy::$6 // zp[2]:12 202.0 +unsigned int gotoxy::$7 // zp[2]:12 151.5 +unsigned int gotoxy::$8 // zp[2]:14 202.0 +unsigned int gotoxy::$9 // zp[2]:12 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:12 101.0 +char gotoxy::x +char gotoxy::y +char gotoxy::y#2 // reg byte x 22.0 +char gotoxy::y#3 // reg byte x 22.0 +char gotoxy::y#4 // reg byte x 74.66666666666666 +char gotoxy::y#5 // reg byte x 67.33333333333333 void main() -byte main::c -byte main::c#1 c zp[1]:2 151.5 -byte main::c#2 c zp[1]:2 101.0 -byte main::c1 -byte main::c1#1 c1 zp[1]:3 151.5 -byte main::c1#2 c1 zp[1]:3 50.5 -byte main::wherey1_return -byte main::wherey1_return#0 reg byte x 22.0 -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:4 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:4 1.00000001E8 -byte* memcpy::dst#2 dst zp[2]:4 1.0033333466666667E8 -byte* memcpy::dst#4 dst zp[2]:4 2000002.0 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:20 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:20 2.00000002E8 -byte* memcpy::src#2 src zp[2]:20 1.0025000125E8 -byte* memcpy::src#4 src zp[2]:20 1000001.0 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:18 1.262500025E7 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.428571442857143E7 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:18 2.00000002E8 -byte* memset::dst#2 dst zp[2]:18 1.3366666833333334E8 -byte* memset::dst#4 dst zp[2]:18 2000002.0 -byte* memset::end -byte* memset::end#0 end zp[2]:20 1.6833333666666668E7 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:18 -byte toupper(byte toupper::ch) -byte toupper::ch -byte toupper::ch#0 reg byte a 1702.0000000000002 -byte toupper::return -byte toupper::return#0 reg byte a 2002.0 -byte toupper::return#2 reg byte a 1034.6666666666667 -byte toupper::return#3 reg byte a 202.0 +char main::c +char main::c#1 // c zp[1]:2 151.5 +char main::c#2 // c zp[1]:2 101.0 +char main::c1 +char main::c1#1 // c1 zp[1]:3 151.5 +char main::c1#2 // c1 zp[1]:3 50.5 +char main::wherey1_return +char main::wherey1_return#0 // reg byte x 22.0 +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:4 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:4 1.00000001E8 +char *memcpy::dst#2 // dst zp[2]:4 1.0033333466666667E8 +char *memcpy::dst#4 // dst zp[2]:4 2000002.0 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:20 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:20 2.00000002E8 +char *memcpy::src#2 // src zp[2]:20 1.0025000125E8 +char *memcpy::src#4 // src zp[2]:20 1000001.0 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:18 1.262500025E7 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.428571442857143E7 +char *memset::dst +char *memset::dst#1 // dst zp[2]:18 2.00000002E8 +char *memset::dst#2 // dst zp[2]:18 1.3366666833333334E8 +char *memset::dst#4 // dst zp[2]:18 2000002.0 +char *memset::end +char *memset::end#0 // end zp[2]:20 1.6833333666666668E7 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:18 +char toupper(char ch) +char toupper::ch +char toupper::ch#0 // reg byte a 1702.0000000000002 +char toupper::return +char toupper::return#0 // reg byte a 2002.0 +char toupper::return#2 // reg byte a 1034.6666666666667 +char toupper::return#3 // reg byte a 202.0 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[1]:2 [ main::c#2 main::c#1 ] diff --git a/src/test/ref/travis1.asm b/src/test/ref/travis1.asm index 3fbf1f436..80c0bd8e8 100644 --- a/src/test/ref/travis1.asm +++ b/src/test/ref/travis1.asm @@ -90,7 +90,7 @@ game_ready: { } .segment Code // Print a zero-terminated string followed by a newline -// print_str_ln(byte* zp(3) str) +// void print_str_ln(__zp(3) char *str) print_str_ln: { .label str = 3 // print_str(str) @@ -101,7 +101,7 @@ print_str_ln: { rts } // Print a zero-terminated string -// print_str(byte* zp(3) str) +// void print_str(__zp(3) char *str) print_str: { .label str = 3 __b1: @@ -148,7 +148,7 @@ print_ln: { rts } // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch ldy #0 diff --git a/src/test/ref/travis1.cfg b/src/test/ref/travis1.cfg index 7e8620c98..48acb7ea6 100644 --- a/src/test/ref/travis1.cfg +++ b/src/test/ref/travis1.cfg @@ -8,7 +8,7 @@ main::@1: scope:[main] from main main::@5 [1] action_count#15 = phi( main/0, main::@5/action_count#12 ) [1] print_line_cursor#26 = phi( main/print_screen#0, main::@5/print_line_cursor#15 ) [1] print_char_cursor#37 = phi( main/print_screen#0, main::@5/print_char_cursor#50 ) - [2] call game_ready + [2] call game_ready [3] game_ready::return#0 = game_ready::return#1 to:main::@4 main::@4: scope:[main] from main::@1 @@ -17,7 +17,7 @@ main::@4: scope:[main] from main::@1 to:main::@2 main::@3: scope:[main] from main::@4 [6] print_char_cursor#47 = print_line_cursor#15 - [7] call print_str_ln + [7] call print_str_ln to:main::@2 main::@2: scope:[main] from main::@3 main::@4 [8] main::i#1 = ++ main::i#2 @@ -39,7 +39,7 @@ game_ready::@3: scope:[game_ready] from game_ready to:game_ready::@1 game_ready::@1: scope:[game_ready] from game_ready game_ready::@3 [14] action_count#11 = phi( game_ready::@3/action_count#15, game_ready/READY_FRAMES ) - [15] call print_str_ln + [15] call print_str_ln to:game_ready::@2 game_ready::@2: scope:[game_ready] from game_ready::@1 [16] action_count#12 = -- action_count#11 @@ -49,23 +49,23 @@ game_ready::@return: scope:[game_ready] from game_ready::@2 [18] return to:@return -void print_str_ln(byte* print_str_ln::str) +void print_str_ln(char *str) print_str_ln: scope:[print_str_ln] from game_ready::@1 main::@3 [19] print_line_cursor#24 = phi( game_ready::@1/print_line_cursor#26, main::@3/print_line_cursor#15 ) [19] print_char_cursor#33 = phi( game_ready::@1/print_char_cursor#37, main::@3/print_char_cursor#47 ) [19] print_str_ln::str#2 = phi( game_ready::@1/game_ready::str, main::@3/main::str ) [20] print_str::str#0 = print_str_ln::str#2 - [21] call print_str + [21] call print_str to:print_str_ln::@1 print_str_ln::@1: scope:[print_str_ln] from print_str_ln [22] phi() - [23] call print_ln + [23] call print_ln to:print_str_ln::@return print_str_ln::@return: scope:[print_str_ln] from print_str_ln::@1 [24] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_str_ln [25] phi() to:print_str::@1 @@ -79,7 +79,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [29] print_char::ch#0 = *print_str::str#2 - [30] call print_char + [30] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [31] print_str::str#1 = ++ print_str::str#2 @@ -98,7 +98,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [36] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [37] *print_char_cursor#21 = print_char::ch#0 [38] print_char_cursor#25 = ++ print_char_cursor#21 diff --git a/src/test/ref/travis1.log b/src/test/ref/travis1.log index 83507b512..7cdfdf999 100644 --- a/src/test/ref/travis1.log +++ b/src/test/ref/travis1.log @@ -1,20 +1,20 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void print_str_ln(byte* print_str_ln::str) +void print_str_ln(char *str) print_str_ln: scope:[print_str_ln] from game_ready::@1 main::@3 print_line_cursor#31 = phi( game_ready::@1/print_line_cursor#29, main::@3/print_line_cursor#27 ) print_char_cursor#33 = phi( game_ready::@1/print_char_cursor#40, main::@3/print_char_cursor#38 ) print_str_ln::str#2 = phi( game_ready::@1/print_str_ln::str#1, main::@3/print_str_ln::str#0 ) print_str::str#0 = print_str_ln::str#2 - call print_str + call print_str to:print_str_ln::@1 print_str_ln::@1: scope:[print_str_ln] from print_str_ln print_line_cursor#24 = phi( print_str_ln/print_line_cursor#31 ) print_char_cursor#17 = phi( print_str_ln/print_char_cursor#4 ) print_char_cursor#0 = print_char_cursor#17 - call print_ln + call print_ln to:print_str_ln::@2 print_str_ln::@2: scope:[print_str_ln] from print_str_ln::@1 print_char_cursor#18 = phi( print_str_ln::@1/print_char_cursor#6 ) @@ -30,7 +30,7 @@ print_str_ln::@return: scope:[print_str_ln] from print_str_ln::@2 return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_str_ln print_char_cursor#42 = phi( print_str_ln/print_char_cursor#33 ) print_str::str#5 = phi( print_str_ln/print_str::str#0 ) @@ -45,7 +45,7 @@ print_str::@2: scope:[print_str] from print_str::@1 print_char_cursor#34 = phi( print_str::@1/print_char_cursor#35 ) print_str::str#3 = phi( print_str::@1/print_str::str#2 ) print_char::ch#0 = *print_str::str#3 - call print_char + call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 print_str::str#4 = phi( print_str::@2/print_str::str#3 ) @@ -84,7 +84,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 print_char_cursor#24 = phi( print_str::@2/print_char_cursor#34 ) print_char::ch#1 = phi( print_str::@2/print_char::ch#0 ) @@ -109,7 +109,7 @@ main::@1: scope:[main] from main main::@2 action_count#15 = phi( main/action_count#19, main::@2/action_count#16 ) print_line_cursor#26 = phi( main/print_line_cursor#32, main::@2/print_line_cursor#28 ) print_char_cursor#37 = phi( main/print_char_cursor#43, main::@2/print_char_cursor#39 ) - call game_ready + call game_ready game_ready::return#0 = game_ready::return#2 to:main::@4 main::@4: scope:[main] from main::@1 @@ -140,7 +140,7 @@ main::@3: scope:[main] from main::@4 print_line_cursor#27 = phi( main::@4/print_line_cursor#4 ) print_char_cursor#38 = phi( main::@4/print_char_cursor#9 ) print_str_ln::str#0 = main::str - call print_str_ln + call print_str_ln to:main::@5 main::@5: scope:[main] from main::@3 action_count#20 = phi( main::@3/action_count#21 ) @@ -174,7 +174,7 @@ game_ready::@1: scope:[game_ready] from game_ready game_ready::@2 print_line_cursor#29 = phi( game_ready/print_line_cursor#33, game_ready::@2/print_line_cursor#34 ) print_char_cursor#40 = phi( game_ready/print_char_cursor#44, game_ready::@2/print_char_cursor#45 ) print_str_ln::str#1 = game_ready::str - call print_str_ln + call print_str_ln to:game_ready::@3 game_ready::@3: scope:[game_ready] from game_ready::@1 action_count#11 = phi( game_ready::@1/action_count#17 ) @@ -207,7 +207,7 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - print_screen#0 = (byte*)$400 + print_screen#0 = (char *)$400 print_line_cursor#9 = print_screen#0 print_char_cursor#14 = print_line_cursor#9 action_count#5 = 0 @@ -217,7 +217,7 @@ __start::@1: scope:[__start] from __start::__init1 action_count#18 = phi( __start::__init1/action_count#5 ) print_line_cursor#30 = phi( __start::__init1/print_line_cursor#9 ) print_char_cursor#41 = phi( __start::__init1/print_char_cursor#14 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#3 = phi( __start::@1/print_screen#4 ) @@ -241,169 +241,169 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte READY_FRAMES = 5 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char READY_FRAMES = 5 void __start() -byte action_count -byte action_count#0 -byte action_count#1 -byte action_count#10 -byte action_count#11 -byte action_count#12 -byte action_count#13 -byte action_count#14 -byte action_count#15 -byte action_count#16 -byte action_count#17 -byte action_count#18 -byte action_count#19 -byte action_count#2 -byte action_count#20 -byte action_count#21 -byte action_count#3 -byte action_count#4 -byte action_count#5 -byte action_count#6 -byte action_count#7 -byte action_count#8 -byte action_count#9 +char action_count +char action_count#0 +char action_count#1 +char action_count#10 +char action_count#11 +char action_count#12 +char action_count#13 +char action_count#14 +char action_count#15 +char action_count#16 +char action_count#17 +char action_count#18 +char action_count#19 +char action_count#2 +char action_count#20 +char action_count#21 +char action_count#3 +char action_count#4 +char action_count#5 +char action_count#6 +char action_count#7 +char action_count#8 +char action_count#9 bool game_ready() -bool~ game_ready::$0 -bool~ game_ready::$1 -bool~ game_ready::$3 +bool game_ready::$0 +bool game_ready::$1 +bool game_ready::$3 bool game_ready::return bool game_ready::return#0 bool game_ready::return#1 bool game_ready::return#2 bool game_ready::return#3 bool game_ready::return#4 -constant byte* game_ready::str[6] = "ready" +__constant char game_ready::str[6] = "ready" void main() -bool~ main::$0 -bool~ main::$1 -bool~ main::$3 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::i#5 -byte main::i#6 -constant byte* main::str[7] = "ready!" -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte* print_char_cursor -byte* print_char_cursor#0 -byte* print_char_cursor#1 -byte* print_char_cursor#10 -byte* print_char_cursor#11 -byte* print_char_cursor#12 -byte* print_char_cursor#13 -byte* print_char_cursor#14 -byte* print_char_cursor#15 -byte* print_char_cursor#16 -byte* print_char_cursor#17 -byte* print_char_cursor#18 -byte* print_char_cursor#19 -byte* print_char_cursor#2 -byte* print_char_cursor#20 -byte* print_char_cursor#21 -byte* print_char_cursor#22 -byte* print_char_cursor#23 -byte* print_char_cursor#24 -byte* print_char_cursor#25 -byte* print_char_cursor#26 -byte* print_char_cursor#27 -byte* print_char_cursor#28 -byte* print_char_cursor#29 -byte* print_char_cursor#3 -byte* print_char_cursor#30 -byte* print_char_cursor#31 -byte* print_char_cursor#32 -byte* print_char_cursor#33 -byte* print_char_cursor#34 -byte* print_char_cursor#35 -byte* print_char_cursor#36 -byte* print_char_cursor#37 -byte* print_char_cursor#38 -byte* print_char_cursor#39 -byte* print_char_cursor#4 -byte* print_char_cursor#40 -byte* print_char_cursor#41 -byte* print_char_cursor#42 -byte* print_char_cursor#43 -byte* print_char_cursor#44 -byte* print_char_cursor#45 -byte* print_char_cursor#5 -byte* print_char_cursor#6 -byte* print_char_cursor#7 -byte* print_char_cursor#8 -byte* print_char_cursor#9 -byte* print_line_cursor -byte* print_line_cursor#0 -byte* print_line_cursor#1 -byte* print_line_cursor#10 -byte* print_line_cursor#11 -byte* print_line_cursor#12 -byte* print_line_cursor#13 -byte* print_line_cursor#14 -byte* print_line_cursor#15 -byte* print_line_cursor#16 -byte* print_line_cursor#17 -byte* print_line_cursor#18 -byte* print_line_cursor#19 -byte* print_line_cursor#2 -byte* print_line_cursor#20 -byte* print_line_cursor#21 -byte* print_line_cursor#22 -byte* print_line_cursor#23 -byte* print_line_cursor#24 -byte* print_line_cursor#25 -byte* print_line_cursor#26 -byte* print_line_cursor#27 -byte* print_line_cursor#28 -byte* print_line_cursor#29 -byte* print_line_cursor#3 -byte* print_line_cursor#30 -byte* print_line_cursor#31 -byte* print_line_cursor#32 -byte* print_line_cursor#33 -byte* print_line_cursor#34 -byte* print_line_cursor#4 -byte* print_line_cursor#5 -byte* print_line_cursor#6 -byte* print_line_cursor#7 -byte* print_line_cursor#8 -byte* print_line_cursor#9 +bool main::$0 +bool main::$1 +bool main::$3 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::i#5 +char main::i#6 +__constant char main::str[7] = "ready!" +void print_char(char ch) +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char *print_char_cursor +char *print_char_cursor#0 +char *print_char_cursor#1 +char *print_char_cursor#10 +char *print_char_cursor#11 +char *print_char_cursor#12 +char *print_char_cursor#13 +char *print_char_cursor#14 +char *print_char_cursor#15 +char *print_char_cursor#16 +char *print_char_cursor#17 +char *print_char_cursor#18 +char *print_char_cursor#19 +char *print_char_cursor#2 +char *print_char_cursor#20 +char *print_char_cursor#21 +char *print_char_cursor#22 +char *print_char_cursor#23 +char *print_char_cursor#24 +char *print_char_cursor#25 +char *print_char_cursor#26 +char *print_char_cursor#27 +char *print_char_cursor#28 +char *print_char_cursor#29 +char *print_char_cursor#3 +char *print_char_cursor#30 +char *print_char_cursor#31 +char *print_char_cursor#32 +char *print_char_cursor#33 +char *print_char_cursor#34 +char *print_char_cursor#35 +char *print_char_cursor#36 +char *print_char_cursor#37 +char *print_char_cursor#38 +char *print_char_cursor#39 +char *print_char_cursor#4 +char *print_char_cursor#40 +char *print_char_cursor#41 +char *print_char_cursor#42 +char *print_char_cursor#43 +char *print_char_cursor#44 +char *print_char_cursor#45 +char *print_char_cursor#5 +char *print_char_cursor#6 +char *print_char_cursor#7 +char *print_char_cursor#8 +char *print_char_cursor#9 +char *print_line_cursor +char *print_line_cursor#0 +char *print_line_cursor#1 +char *print_line_cursor#10 +char *print_line_cursor#11 +char *print_line_cursor#12 +char *print_line_cursor#13 +char *print_line_cursor#14 +char *print_line_cursor#15 +char *print_line_cursor#16 +char *print_line_cursor#17 +char *print_line_cursor#18 +char *print_line_cursor#19 +char *print_line_cursor#2 +char *print_line_cursor#20 +char *print_line_cursor#21 +char *print_line_cursor#22 +char *print_line_cursor#23 +char *print_line_cursor#24 +char *print_line_cursor#25 +char *print_line_cursor#26 +char *print_line_cursor#27 +char *print_line_cursor#28 +char *print_line_cursor#29 +char *print_line_cursor#3 +char *print_line_cursor#30 +char *print_line_cursor#31 +char *print_line_cursor#32 +char *print_line_cursor#33 +char *print_line_cursor#34 +char *print_line_cursor#4 +char *print_line_cursor#5 +char *print_line_cursor#6 +char *print_line_cursor#7 +char *print_line_cursor#8 +char *print_line_cursor#9 void print_ln() -byte*~ print_ln::$0 -bool~ print_ln::$1 -byte* print_screen -byte* print_screen#0 -byte* print_screen#1 -byte* print_screen#2 -byte* print_screen#3 -byte* print_screen#4 -void print_str(byte* print_str::str) -bool~ print_str::$1 -byte* print_str::str -byte* print_str::str#0 -byte* print_str::str#1 -byte* print_str::str#2 -byte* print_str::str#3 -byte* print_str::str#4 -byte* print_str::str#5 -void print_str_ln(byte* print_str_ln::str) -byte* print_str_ln::str -byte* print_str_ln::str#0 -byte* print_str_ln::str#1 -byte* print_str_ln::str#2 +char *print_ln::$0 +bool print_ln::$1 +char *print_screen +char *print_screen#0 +char *print_screen#1 +char *print_screen#2 +char *print_screen#3 +char *print_screen#4 +void print_str(char *str) +bool print_str::$1 +char *print_str::str +char *print_str::str#0 +char *print_str::str#1 +char *print_str::str#2 +char *print_str::str#3 +char *print_str::str#4 +char *print_str::str#5 +void print_str_ln(char *str) +char *print_str_ln::str +char *print_str_ln::str#0 +char *print_str_ln::str#1 +char *print_str_ln::str#2 Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#2 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#14 + $28 @@ -414,12 +414,12 @@ Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [73] game_ready::$1 = action_count#10 != 0 from [72] game_ready::$0 = action_count#10 == 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -502,7 +502,7 @@ Constant main::i#0 = 0 Constant print_str_ln::str#0 = main::str Constant print_str_ln::str#1 = game_ready::str Constant action_count#3 = READY_FRAMES -Constant print_screen#0 = (byte*) 1024 +Constant print_screen#0 = (char *) 1024 Constant action_count#18 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [36] main::i#1 = ++ main::i#2 to ++ @@ -518,7 +518,7 @@ Adding number conversion cast (unumber) 6 in [24] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings print_str_ln::str#0 Inlining constant with var siblings print_str_ln::str#1 @@ -531,10 +531,10 @@ Constant inlined action_count#3 = READY_FRAMES Constant inlined print_str_ln::str#0 = main::str Constant inlined action_count#18 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Added new block during phi lifting main::@6(between main::@2 and main::@1) @@ -593,7 +593,7 @@ main::@1: scope:[main] from main main::@5 [1] action_count#15 = phi( main/0, main::@5/action_count#12 ) [1] print_line_cursor#26 = phi( main/print_screen#0, main::@5/print_line_cursor#15 ) [1] print_char_cursor#37 = phi( main/print_screen#0, main::@5/print_char_cursor#50 ) - [2] call game_ready + [2] call game_ready [3] game_ready::return#0 = game_ready::return#1 to:main::@4 main::@4: scope:[main] from main::@1 @@ -602,7 +602,7 @@ main::@4: scope:[main] from main::@1 to:main::@2 main::@3: scope:[main] from main::@4 [6] print_char_cursor#47 = print_line_cursor#15 - [7] call print_str_ln + [7] call print_str_ln to:main::@2 main::@2: scope:[main] from main::@3 main::@4 [8] main::i#1 = ++ main::i#2 @@ -624,7 +624,7 @@ game_ready::@3: scope:[game_ready] from game_ready to:game_ready::@1 game_ready::@1: scope:[game_ready] from game_ready game_ready::@3 [14] action_count#11 = phi( game_ready::@3/action_count#15, game_ready/READY_FRAMES ) - [15] call print_str_ln + [15] call print_str_ln to:game_ready::@2 game_ready::@2: scope:[game_ready] from game_ready::@1 [16] action_count#12 = -- action_count#11 @@ -634,23 +634,23 @@ game_ready::@return: scope:[game_ready] from game_ready::@2 [18] return to:@return -void print_str_ln(byte* print_str_ln::str) +void print_str_ln(char *str) print_str_ln: scope:[print_str_ln] from game_ready::@1 main::@3 [19] print_line_cursor#24 = phi( game_ready::@1/print_line_cursor#26, main::@3/print_line_cursor#15 ) [19] print_char_cursor#33 = phi( game_ready::@1/print_char_cursor#37, main::@3/print_char_cursor#47 ) [19] print_str_ln::str#2 = phi( game_ready::@1/game_ready::str, main::@3/main::str ) [20] print_str::str#0 = print_str_ln::str#2 - [21] call print_str + [21] call print_str to:print_str_ln::@1 print_str_ln::@1: scope:[print_str_ln] from print_str_ln [22] phi() - [23] call print_ln + [23] call print_ln to:print_str_ln::@return print_str_ln::@return: scope:[print_str_ln] from print_str_ln::@1 [24] return to:@return -void print_str(byte* print_str::str) +void print_str(char *str) print_str: scope:[print_str] from print_str_ln [25] phi() to:print_str::@1 @@ -664,7 +664,7 @@ print_str::@return: scope:[print_str] from print_str::@1 to:@return print_str::@2: scope:[print_str] from print_str::@1 [29] print_char::ch#0 = *print_str::str#2 - [30] call print_char + [30] call print_char to:print_str::@3 print_str::@3: scope:[print_str] from print_str::@2 [31] print_str::str#1 = ++ print_str::str#2 @@ -683,7 +683,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [36] return to:@return -void print_char(byte print_char::ch) +void print_char(char ch) print_char: scope:[print_char] from print_str::@2 [37] *print_char_cursor#21 = print_char::ch#0 [38] print_char_cursor#25 = ++ print_char_cursor#21 @@ -694,44 +694,44 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS -byte action_count -byte action_count#11 101.0 -byte action_count#12 17.75 -byte action_count#15 71.0 +char action_count +char action_count#11 // 101.0 +char action_count#12 // 17.75 +char action_count#15 // 71.0 bool game_ready() bool game_ready::return -bool game_ready::return#0 22.0 -bool game_ready::return#1 37.33333333333333 +bool game_ready::return#0 // 22.0 +bool game_ready::return#1 // 37.33333333333333 void main() -bool~ main::$0 22.0 -byte main::i -byte main::i#1 11.0 -byte main::i#2 3.142857142857143 -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 1.1000002E7 -byte* print_char_cursor -byte* print_char_cursor#21 2000909.5454545454 -byte* print_char_cursor#25 2750000.5 -byte* print_char_cursor#33 3371.0 -byte* print_char_cursor#37 28.0 -byte* print_char_cursor#47 22.0 -byte* print_char_cursor#50 22.0 -byte* print_line_cursor -byte* print_line_cursor#14 2010003.0 -byte* print_line_cursor#15 166669.27777777775 -byte* print_line_cursor#24 2022.6000000000001 -byte* print_line_cursor#26 28.0 +bool main::$0 // 22.0 +char main::i +char main::i#1 // 11.0 +char main::i#2 // 3.142857142857143 +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // 1.1000002E7 +char *print_char_cursor +char *print_char_cursor#21 // 2000909.5454545454 +char *print_char_cursor#25 // 2750000.5 +char *print_char_cursor#33 // 3371.0 +char *print_char_cursor#37 // 28.0 +char *print_char_cursor#47 // 22.0 +char *print_char_cursor#50 // 22.0 +char *print_line_cursor +char *print_line_cursor#14 // 2010003.0 +char *print_line_cursor#15 // 166669.27777777775 +char *print_line_cursor#24 // 2022.6000000000001 +char *print_line_cursor#26 // 28.0 void print_ln() -byte* print_screen -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 5501.0 -byte* print_str::str#1 2000002.0 -byte* print_str::str#2 1002501.25 -void print_str_ln(byte* print_str_ln::str) -byte* print_str_ln::str -byte* print_str_ln::str#2 1001.0 +char *print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // 5501.0 +char *print_str::str#1 // 2000002.0 +char *print_str::str#2 // 1002501.25 +void print_str_ln(char *str) +char *print_str_ln::str +char *print_str_ln::str#2 // 1001.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -865,7 +865,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] call game_ready + // [2] call game_ready jsr game_ready // [3] game_ready::return#0 = game_ready::return#1 jmp __b4 @@ -883,7 +883,7 @@ main: { sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 - // [7] call print_str_ln + // [7] call print_str_ln // [19] phi from main::@3 to print_str_ln [phi:main::@3->print_str_ln] print_str_ln_from___b3: // [19] phi print_line_cursor#24 = print_line_cursor#15 [phi:main::@3->print_str_ln#0] -- register_copy @@ -948,7 +948,7 @@ game_ready: { jmp __b1 // game_ready::@1 __b1: - // [15] call print_str_ln + // [15] call print_str_ln // [19] phi from game_ready::@1 to print_str_ln [phi:game_ready::@1->print_str_ln] print_str_ln_from___b1: // [19] phi print_line_cursor#24 = print_line_cursor#26 [phi:game_ready::@1->print_str_ln#0] -- register_copy @@ -982,11 +982,11 @@ game_ready: { .segment Code // print_str_ln // Print a zero-terminated string followed by a newline -// print_str_ln(byte* zp(3) str) +// void print_str_ln(__zp(3) char *str) print_str_ln: { .label str = 3 // [20] print_str::str#0 = print_str_ln::str#2 - // [21] call print_str + // [21] call print_str // [25] phi from print_str_ln to print_str [phi:print_str_ln->print_str] print_str_from_print_str_ln: jsr print_str @@ -995,7 +995,7 @@ print_str_ln: { jmp __b1 // print_str_ln::@1 __b1: - // [23] call print_ln + // [23] call print_ln // [32] phi from print_str_ln::@1 to print_ln [phi:print_str_ln::@1->print_ln] print_ln_from___b1: jsr print_ln @@ -1007,7 +1007,7 @@ print_str_ln: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(3) str) +// void print_str(__zp(3) char *str) print_str: { .label str = 3 // [26] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -1033,7 +1033,7 @@ print_str: { // [29] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [30] call print_char + // [30] call print_char jsr print_char jmp __b3 // print_str::@3 @@ -1080,7 +1080,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // [37] *print_char_cursor#21 = print_char::ch#0 -- _deref_pbuz1=vbuaa ldy #0 @@ -1152,52 +1152,52 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte READY_FRAMES = 5 -byte action_count -byte action_count#11 reg byte x 101.0 -byte action_count#12 reg byte x 17.75 -byte action_count#15 reg byte x 71.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char READY_FRAMES = 5 +char action_count +char action_count#11 // reg byte x 101.0 +char action_count#12 // reg byte x 17.75 +char action_count#15 // reg byte x 71.0 bool game_ready() bool game_ready::return -bool game_ready::return#0 reg byte a 22.0 -bool game_ready::return#1 reg byte a 37.33333333333333 -constant byte* game_ready::str[6] = "ready" +bool game_ready::return#0 // reg byte a 22.0 +bool game_ready::return#1 // reg byte a 37.33333333333333 +__constant char game_ready::str[6] = "ready" void main() -bool~ main::$0 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 11.0 -byte main::i#2 i zp[1]:2 3.142857142857143 -constant byte* main::str[7] = "ready!" -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 1.1000002E7 -byte* print_char_cursor -byte* print_char_cursor#21 print_char_cursor zp[2]:5 2000909.5454545454 -byte* print_char_cursor#25 print_char_cursor zp[2]:5 2750000.5 -byte* print_char_cursor#33 print_char_cursor zp[2]:5 3371.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:5 28.0 -byte* print_char_cursor#47 print_char_cursor zp[2]:5 22.0 -byte* print_char_cursor#50 print_char_cursor zp[2]:5 22.0 -byte* print_line_cursor -byte* print_line_cursor#14 print_line_cursor zp[2]:7 2010003.0 -byte* print_line_cursor#15 print_line_cursor zp[2]:7 166669.27777777775 -byte* print_line_cursor#24 print_line_cursor zp[2]:7 2022.6000000000001 -byte* print_line_cursor#26 print_line_cursor zp[2]:7 28.0 +bool main::$0 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 11.0 +char main::i#2 // i zp[1]:2 3.142857142857143 +__constant char main::str[7] = "ready!" +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 1.1000002E7 +char *print_char_cursor +char *print_char_cursor#21 // print_char_cursor zp[2]:5 2000909.5454545454 +char *print_char_cursor#25 // print_char_cursor zp[2]:5 2750000.5 +char *print_char_cursor#33 // print_char_cursor zp[2]:5 3371.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:5 28.0 +char *print_char_cursor#47 // print_char_cursor zp[2]:5 22.0 +char *print_char_cursor#50 // print_char_cursor zp[2]:5 22.0 +char *print_line_cursor +char *print_line_cursor#14 // print_line_cursor zp[2]:7 2010003.0 +char *print_line_cursor#15 // print_line_cursor zp[2]:7 166669.27777777775 +char *print_line_cursor#24 // print_line_cursor zp[2]:7 2022.6000000000001 +char *print_line_cursor#26 // print_line_cursor zp[2]:7 28.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:3 5501.0 -byte* print_str::str#1 str zp[2]:3 2000002.0 -byte* print_str::str#2 str zp[2]:3 1002501.25 -void print_str_ln(byte* print_str_ln::str) -byte* print_str_ln::str -byte* print_str_ln::str#2 str zp[2]:3 1001.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:3 5501.0 +char *print_str::str#1 // str zp[2]:3 2000002.0 +char *print_str::str#2 // str zp[2]:3 1002501.25 +void print_str_ln(char *str) +char *print_str_ln::str +char *print_str_ln::str#2 // str zp[2]:3 1001.0 zp[1]:2 [ main::i#2 main::i#1 ] reg byte x [ action_count#11 action_count#15 action_count#12 ] @@ -1252,7 +1252,7 @@ main: { // main::@1 __b1: // game_ready() - // [2] call game_ready + // [2] call game_ready jsr game_ready // [3] game_ready::return#0 = game_ready::return#1 // main::@4 @@ -1270,7 +1270,7 @@ main: { lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_str_ln("ready!") - // [7] call print_str_ln + // [7] call print_str_ln // [19] phi from main::@3 to print_str_ln [phi:main::@3->print_str_ln] // [19] phi print_line_cursor#24 = print_line_cursor#15 [phi:main::@3->print_str_ln#0] -- register_copy // [19] phi print_char_cursor#33 = print_char_cursor#47 [phi:main::@3->print_str_ln#1] -- register_copy @@ -1327,7 +1327,7 @@ game_ready: { // game_ready::@1 __b1: // print_str_ln("ready") - // [15] call print_str_ln + // [15] call print_str_ln // [19] phi from game_ready::@1 to print_str_ln [phi:game_ready::@1->print_str_ln] // [19] phi print_line_cursor#24 = print_line_cursor#26 [phi:game_ready::@1->print_str_ln#0] -- register_copy // [19] phi print_char_cursor#33 = print_char_cursor#37 [phi:game_ready::@1->print_str_ln#1] -- register_copy @@ -1359,18 +1359,18 @@ game_ready: { .segment Code // print_str_ln // Print a zero-terminated string followed by a newline -// print_str_ln(byte* zp(3) str) +// void print_str_ln(__zp(3) char *str) print_str_ln: { .label str = 3 // print_str(str) // [20] print_str::str#0 = print_str_ln::str#2 - // [21] call print_str + // [21] call print_str // [25] phi from print_str_ln to print_str [phi:print_str_ln->print_str] jsr print_str // [22] phi from print_str_ln to print_str_ln::@1 [phi:print_str_ln->print_str_ln::@1] // print_str_ln::@1 // print_ln() - // [23] call print_ln + // [23] call print_ln // [32] phi from print_str_ln::@1 to print_ln [phi:print_str_ln::@1->print_ln] jsr print_ln // print_str_ln::@return @@ -1380,7 +1380,7 @@ print_str_ln: { } // print_str // Print a zero-terminated string -// print_str(byte* zp(3) str) +// void print_str(__zp(3) char *str) print_str: { .label str = 3 // [26] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1] @@ -1404,7 +1404,7 @@ print_str: { // [29] print_char::ch#0 = *print_str::str#2 -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [30] call print_char + // [30] call print_char jsr print_char // print_str::@3 // print_char(*(str++)); @@ -1448,7 +1448,7 @@ print_ln: { } // print_char // Print a single char -// print_char(byte register(A) ch) +// void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [37] *print_char_cursor#21 = print_char::ch#0 -- _deref_pbuz1=vbuaa diff --git a/src/test/ref/travis1.sym b/src/test/ref/travis1.sym index 3137c91fd..4321a5fb4 100644 --- a/src/test/ref/travis1.sym +++ b/src/test/ref/travis1.sym @@ -1,49 +1,49 @@ -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant const byte READY_FRAMES = 5 -byte action_count -byte action_count#11 reg byte x 101.0 -byte action_count#12 reg byte x 17.75 -byte action_count#15 reg byte x 71.0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant const char READY_FRAMES = 5 +char action_count +char action_count#11 // reg byte x 101.0 +char action_count#12 // reg byte x 17.75 +char action_count#15 // reg byte x 71.0 bool game_ready() bool game_ready::return -bool game_ready::return#0 reg byte a 22.0 -bool game_ready::return#1 reg byte a 37.33333333333333 -constant byte* game_ready::str[6] = "ready" +bool game_ready::return#0 // reg byte a 22.0 +bool game_ready::return#1 // reg byte a 37.33333333333333 +__constant char game_ready::str[6] = "ready" void main() -bool~ main::$0 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 11.0 -byte main::i#2 i zp[1]:2 3.142857142857143 -constant byte* main::str[7] = "ready!" -void print_char(byte print_char::ch) -byte print_char::ch -byte print_char::ch#0 reg byte a 1.1000002E7 -byte* print_char_cursor -byte* print_char_cursor#21 print_char_cursor zp[2]:5 2000909.5454545454 -byte* print_char_cursor#25 print_char_cursor zp[2]:5 2750000.5 -byte* print_char_cursor#33 print_char_cursor zp[2]:5 3371.0 -byte* print_char_cursor#37 print_char_cursor zp[2]:5 28.0 -byte* print_char_cursor#47 print_char_cursor zp[2]:5 22.0 -byte* print_char_cursor#50 print_char_cursor zp[2]:5 22.0 -byte* print_line_cursor -byte* print_line_cursor#14 print_line_cursor zp[2]:7 2010003.0 -byte* print_line_cursor#15 print_line_cursor zp[2]:7 166669.27777777775 -byte* print_line_cursor#24 print_line_cursor zp[2]:7 2022.6000000000001 -byte* print_line_cursor#26 print_line_cursor zp[2]:7 28.0 +bool main::$0 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 11.0 +char main::i#2 // i zp[1]:2 3.142857142857143 +__constant char main::str[7] = "ready!" +void print_char(char ch) +char print_char::ch +char print_char::ch#0 // reg byte a 1.1000002E7 +char *print_char_cursor +char *print_char_cursor#21 // print_char_cursor zp[2]:5 2000909.5454545454 +char *print_char_cursor#25 // print_char_cursor zp[2]:5 2750000.5 +char *print_char_cursor#33 // print_char_cursor zp[2]:5 3371.0 +char *print_char_cursor#37 // print_char_cursor zp[2]:5 28.0 +char *print_char_cursor#47 // print_char_cursor zp[2]:5 22.0 +char *print_char_cursor#50 // print_char_cursor zp[2]:5 22.0 +char *print_line_cursor +char *print_line_cursor#14 // print_line_cursor zp[2]:7 2010003.0 +char *print_line_cursor#15 // print_line_cursor zp[2]:7 166669.27777777775 +char *print_line_cursor#24 // print_line_cursor zp[2]:7 2022.6000000000001 +char *print_line_cursor#26 // print_line_cursor zp[2]:7 28.0 void print_ln() -byte* print_screen -constant byte* print_screen#0 print_screen = (byte*) 1024 -void print_str(byte* print_str::str) -byte* print_str::str -byte* print_str::str#0 str zp[2]:3 5501.0 -byte* print_str::str#1 str zp[2]:3 2000002.0 -byte* print_str::str#2 str zp[2]:3 1002501.25 -void print_str_ln(byte* print_str_ln::str) -byte* print_str_ln::str -byte* print_str_ln::str#2 str zp[2]:3 1001.0 +char *print_screen +__constant char *print_screen#0 = (char *) 1024 // print_screen +void print_str(char *str) +char *print_str::str +char *print_str::str#0 // str zp[2]:3 5501.0 +char *print_str::str#1 // str zp[2]:3 2000002.0 +char *print_str::str#2 // str zp[2]:3 1002501.25 +void print_str_ln(char *str) +char *print_str_ln::str +char *print_str_ln::str#2 // str zp[2]:3 1001.0 zp[1]:2 [ main::i#2 main::i#1 ] reg byte x [ action_count#11 action_count#15 action_count#12 ] diff --git a/src/test/ref/true-inline-words.log b/src/test/ref/true-inline-words.log index 598ac6bc2..978bdab2b 100644 --- a/src/test/ref/true-inline-words.log +++ b/src/test/ref/true-inline-words.log @@ -8,7 +8,7 @@ main: scope:[main] from __start main::w#0 = main::b w= 0 main::$1 = 1w=1 + main::w#0 main::w2#0 = main::$1 + 0w=0 - main::sc#0 = (byte*)main::w2#0 + main::sc#0 = (char *)main::w2#0 *main::sc#0 = main::bs[1] main::$3 = *main::pos == 'm' if(main::$3) goto main::@1 @@ -25,7 +25,7 @@ main::@return: scope:[main] from main::@1 main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -36,18 +36,18 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -word~ main::$1 -bool~ main::$3 -constant byte* main::BG_COLOR = (byte*)$d021 -constant byte main::b = 4 -constant byte* main::bs[] = { 'c', 'm' } -constant byte* main::pos = (byte*)$501 -byte* main::sc -byte* main::sc#0 -word main::w -word main::w#0 -word main::w2 -word main::w2#0 +unsigned int main::$1 +bool main::$3 +__constant char *main::BG_COLOR = (char *)$d021 +__constant char main::b = 4 +__constant char main::bs[] = { 'c', 'm' } +__constant char *main::pos = (char *)$501 +char *main::sc +char *main::sc#0 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w2 +unsigned int main::w2#0 Adding number conversion cast (unumber) 0 in main::w#0 = main::b w= 0 Adding number conversion cast (unumber) 1 in *main::sc#0 = main::bs[1] @@ -57,17 +57,17 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *main::BG_COLOR = (unumber)5 Inlining cast *main::BG_COLOR = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1281 -Simplifying constant pointer cast (byte*) 53281 +Simplifying constant pointer cast (char *) 1281 +Simplifying constant pointer cast (char *) 53281 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 5 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$3 [6] if(*main::pos=='m') goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -91,7 +91,7 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast main::b*(unumber)$100 Simplifying constant integer cast $100 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::w2#0 = main::$1 Successful SSA optimization Pass2AliasElimination @@ -101,12 +101,12 @@ Constant right-side identified [0] main::w2#0 = 1w=1 + main::w#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::w2#0 = 1w=1+main::w#0 Successful SSA optimization Pass2ConstantIdentification -Constant main::sc#0 = (byte*)main::w2#0 +Constant main::sc#0 = (char *)main::w2#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::bs+1) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -133,9 +133,9 @@ main::@1: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* main::sc -word main::w -word main::w2 +char *main::sc +unsigned int main::w +unsigned int main::w2 Initial phi equivalence classes Complete equivalence classes @@ -220,16 +220,16 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::BG_COLOR = (byte*) 53281 -constant byte main::b = 4 -constant byte* main::bs[] = { 'c', 'm' } -constant byte* main::pos = (byte*) 1281 -byte* main::sc -constant byte* main::sc#0 sc = (byte*)main::w2#0 -word main::w -constant word main::w#0 w = main::b*$100 -word main::w2 -constant word main::w2#0 w2 = 1w=1+main::w#0 +__constant char *main::BG_COLOR = (char *) 53281 +__constant char main::b = 4 +__constant char main::bs[] = { 'c', 'm' } +__constant char *main::pos = (char *) 1281 +char *main::sc +__constant char *main::sc#0 = (char *)main::w2#0 // sc +unsigned int main::w +__constant unsigned int main::w#0 = main::b*$100 // w +unsigned int main::w2 +__constant unsigned int main::w2#0 = 1w=1+main::w#0 // w2 diff --git a/src/test/ref/true-inline-words.sym b/src/test/ref/true-inline-words.sym index cdc0626ca..2cd256763 100644 --- a/src/test/ref/true-inline-words.sym +++ b/src/test/ref/true-inline-words.sym @@ -1,12 +1,12 @@ void main() -constant byte* main::BG_COLOR = (byte*) 53281 -constant byte main::b = 4 -constant byte* main::bs[] = { 'c', 'm' } -constant byte* main::pos = (byte*) 1281 -byte* main::sc -constant byte* main::sc#0 sc = (byte*)main::w2#0 -word main::w -constant word main::w#0 w = main::b*$100 -word main::w2 -constant word main::w2#0 w2 = 1w=1+main::w#0 +__constant char *main::BG_COLOR = (char *) 53281 +__constant char main::b = 4 +__constant char main::bs[] = { 'c', 'm' } +__constant char *main::pos = (char *) 1281 +char *main::sc +__constant char *main::sc#0 = (char *)main::w2#0 // sc +unsigned int main::w +__constant unsigned int main::w#0 = main::b*$100 // w +unsigned int main::w2 +__constant unsigned int main::w2#0 = 1w=1+main::w#0 // w2 diff --git a/src/test/ref/type-inference.log b/src/test/ref/type-inference.log index 5bc16f849..56e36c1cc 100644 --- a/src/test/ref/type-inference.log +++ b/src/test/ref/type-inference.log @@ -8,7 +8,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::b#2 = phi( main/main::b#0, main::@1/main::b#1 ) main::$0 = -$30 + main::b#2 - main::$2 = main::b#2 * SIZEOF_WORD + main::$2 = main::b#2 * SIZEOF_UNSIGNED_INT main::screen[main::$2] = main::$0 main::b#1 = main::b#2 + rangenext(0,$14) main::$1 = main::b#1 != rangelast(0,$14) @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,27 +29,27 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -bool~ main::$1 -byte~ main::$2 -byte main::b -byte main::b#0 -byte main::b#1 -byte main::b#2 -constant word* const main::screen = (byte*)$400 +number main::$0 +bool main::$1 +char main::$2 +char main::b +char main::b#0 +char main::b#1 +char main::b#2 +__constant unsigned int * const main::screen = (char *)$400 Adding number conversion cast (unumber) -$30 in main::$0 = -$30 + main::b#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)-$30 + main::b#2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast -$30 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) -$30 +Finalized unsigned number type (char) -$30 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = -$30 + main::b#2 +Inferred type updated to char in main::$0 = -$30 + main::b#2 Simple Condition main::$1 [7] if(main::b#1!=rangelast(0,$14)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::b#0 = 0 @@ -65,14 +65,14 @@ Adding number conversion cast (unumber) $15 in [5] if(main::b#1!=$15) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $15 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $15 +Finalized unsigned number type (char) $15 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [2] main::$2 = main::b#2 * SIZEOF_WORD +Rewriting multiplication to use shift [2] main::$2 = main::b#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::b#0 Constant inlined main::b#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -105,11 +105,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 11.0 -byte~ main::$2 22.0 -byte main::b -byte main::b#1 16.5 -byte main::b#2 11.0 +char main::$0 // 11.0 +char main::$2 // 22.0 +char main::b +char main::b#1 // 16.5 +char main::b#2 // 11.0 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -215,12 +215,12 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 zp[1]:2 11.0 -byte~ main::$2 reg byte x 22.0 -byte main::b -byte main::b#1 reg byte y 16.5 -byte main::b#2 reg byte y 11.0 -constant word* const main::screen = (byte*) 1024 +char main::$0 // zp[1]:2 11.0 +char main::$2 // reg byte x 22.0 +char main::b +char main::b#1 // reg byte y 16.5 +char main::b#2 // reg byte y 11.0 +__constant unsigned int * const main::screen = (char *) 1024 reg byte y [ main::b#2 main::b#1 ] zp[1]:2 [ main::$0 ] diff --git a/src/test/ref/type-inference.sym b/src/test/ref/type-inference.sym index 41cf8d4d2..6890db74d 100644 --- a/src/test/ref/type-inference.sym +++ b/src/test/ref/type-inference.sym @@ -1,10 +1,10 @@ void main() -byte~ main::$0 zp[1]:2 11.0 -byte~ main::$2 reg byte x 22.0 -byte main::b -byte main::b#1 reg byte y 16.5 -byte main::b#2 reg byte y 11.0 -constant word* const main::screen = (byte*) 1024 +char main::$0 // zp[1]:2 11.0 +char main::$2 // reg byte x 22.0 +char main::b +char main::b#1 // reg byte y 16.5 +char main::b#2 // reg byte y 11.0 +__constant unsigned int * const main::screen = (char *) 1024 reg byte y [ main::b#2 main::b#1 ] zp[1]:2 [ main::$0 ] diff --git a/src/test/ref/type-mix.log b/src/test/ref/type-mix.log index c4ed1f91b..fda32fee5 100644 --- a/src/test/ref/type-mix.log +++ b/src/test/ref/type-mix.log @@ -23,7 +23,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -34,28 +34,28 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -byte~ main::$1 -bool~ main::$2 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -signed word main::w -signed word main::w#0 -signed word main::w#1 -signed word main::w#2 +number main::$0 +char main::$1 +bool main::$2 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +int main::w +int main::w#0 +int main::w#1 +int main::w#2 Adding number conversion cast (snumber) $c in main::$0 = main::w#2 - $c Adding number conversion cast (snumber) main::$0 in main::$0 = main::w#2 - (snumber)$c Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $c Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) $c +Finalized signed number type (signed char) $c Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to signed word in main::$0 = main::w#2 - $c +Inferred type updated to int in main::$0 = main::w#2 - $c Alias main::w#1 = main::$0 Successful SSA optimization Pass2AliasElimination Simple Condition main::$2 [8] if(main::i#1!=rangelast(0,$a)) goto main::@1 @@ -74,7 +74,7 @@ Adding number conversion cast (unumber) $b in [5] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::w#0 Inlining constant with var siblings main::i#0 @@ -114,13 +114,13 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 8.25 -signed word main::w -signed word main::w#1 6.6000000000000005 -signed word main::w#2 22.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 8.25 +int main::w +int main::w#1 // 6.6000000000000005 +int main::w#2 // 22.0 Initial phi equivalence classes [ main::w#2 main::w#1 ] @@ -226,14 +226,14 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 -signed word main::w -signed word main::w#1 w zp[2]:2 6.6000000000000005 -signed word main::w#2 w zp[2]:2 22.0 +char main::$1 // reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 +int main::w +int main::w#1 // w zp[2]:2 6.6000000000000005 +int main::w#2 // w zp[2]:2 22.0 zp[2]:2 [ main::w#2 main::w#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/type-mix.sym b/src/test/ref/type-mix.sym index ab699fec6..59878f79e 100644 --- a/src/test/ref/type-mix.sym +++ b/src/test/ref/type-mix.sym @@ -1,12 +1,12 @@ void main() -byte~ main::$1 reg byte a 22.0 -constant byte* main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 8.25 -signed word main::w -signed word main::w#1 w zp[2]:2 6.6000000000000005 -signed word main::w#2 w zp[2]:2 22.0 +char main::$1 // reg byte a 22.0 +__constant char *main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 8.25 +int main::w +int main::w#1 // w zp[2]:2 6.6000000000000005 +int main::w#2 // w zp[2]:2 22.0 zp[2]:2 [ main::w#2 main::w#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/type-truncate.log b/src/test/ref/type-truncate.log index 850ada113..881a05533 100644 --- a/src/test/ref/type-truncate.log +++ b/src/test/ref/type-truncate.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::b#0 = (byte)main::w + main::b#0 = (char)main::w main::screen[0] = main::b#0 to:main::@return main::@return: scope:[main] from main @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,21 +23,21 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte main::b -byte main::b#0 -constant byte* const main::screen = (byte*)$400 -constant word main::w = $1388 +char main::b +char main::b#0 +__constant char * const main::screen = (char *)$400 +__constant unsigned int main::w = $1388 Adding number conversion cast (unumber) 0 in main::screen[0] = main::b#0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant right-side identified [0] main::b#0 = (byte)main::w +Constant right-side identified [0] main::b#0 = (char)main::w Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::b#0 = (byte)main::w +Constant main::b#0 = (char)main::w Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero main::screen in [1] main::screen[0] = main::b#0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -64,7 +64,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::b +char main::b Initial phi equivalence classes Complete equivalence classes @@ -116,10 +116,10 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::b -constant byte main::b#0 b = (byte)main::w -constant byte* const main::screen = (byte*) 1024 -constant word main::w = $1388 +char main::b +__constant char main::b#0 = (char)main::w // b +__constant char * const main::screen = (char *) 1024 +__constant unsigned int main::w = $1388 diff --git a/src/test/ref/type-truncate.sym b/src/test/ref/type-truncate.sym index 633a077ce..e5ef5be4b 100644 --- a/src/test/ref/type-truncate.sym +++ b/src/test/ref/type-truncate.sym @@ -1,6 +1,6 @@ void main() -byte main::b -constant byte main::b#0 b = (byte)main::w -constant byte* const main::screen = (byte*) 1024 -constant word main::w = $1388 +char main::b +__constant char main::b#0 = (char)main::w // b +__constant char * const main::screen = (char *) 1024 +__constant unsigned int main::w = $1388 diff --git a/src/test/ref/typedef-0.log b/src/test/ref/typedef-0.log index cc2bc165f..5f5d7eb02 100644 --- a/src/test/ref/typedef-0.log +++ b/src/test/ref/typedef-0.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,10 +22,10 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::SCREEN = (byte*)$400 -constant byte main::b = 'a' +__constant char *main::SCREEN = (char *)$400 +__constant char main::b = 'a' -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -99,8 +99,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -constant byte main::b = 'a' +__constant char *main::SCREEN = (char *) 1024 +__constant char main::b = 'a' diff --git a/src/test/ref/typedef-0.sym b/src/test/ref/typedef-0.sym index a028f9da8..b6b922ef6 100644 --- a/src/test/ref/typedef-0.sym +++ b/src/test/ref/typedef-0.sym @@ -1,4 +1,4 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -constant byte main::b = 'a' +__constant char *main::SCREEN = (char *) 1024 +__constant char main::b = 'a' diff --git a/src/test/ref/typedef-1.cfg b/src/test/ref/typedef-1.cfg index 9d0527b77..2a3c705d6 100644 --- a/src/test/ref/typedef-1.cfg +++ b/src/test/ref/typedef-1.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *((byte*)main::SCREEN) = main::p_x - [1] *((byte*)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y + [0] *((char *)main::SCREEN) = main::p_x + [1] *((char *)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/typedef-1.log b/src/test/ref/typedef-1.log index 0c51442b8..eed17935d 100644 --- a/src/test/ref/typedef-1.log +++ b/src/test/ref/typedef-1.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$2 = (byte*)main::SCREEN + main::$2 = (char *)main::SCREEN main::$0 = main::$2 + OFFSET_STRUCT_POINTDEF_X *main::$0 = main::p_x - main::$3 = (byte*)main::SCREEN + main::$3 = (char *)main::SCREEN main::$1 = main::$3 + OFFSET_STRUCT_POINTDEF_Y *main::$1 = main::p_y to:main::@return @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,25 +25,25 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_POINTDEF_X = 0 -constant byte OFFSET_STRUCT_POINTDEF_Y = 1 +__constant char OFFSET_STRUCT_POINTDEF_X = 0 +__constant char OFFSET_STRUCT_POINTDEF_Y = 1 void __start() void main() -byte*~ main::$0 -byte*~ main::$1 -byte*~ main::$2 -byte*~ main::$3 -constant struct PointDef* main::SCREEN = (struct PointDef*)$400 -constant byte main::p_x = 4 -constant byte main::p_y = 7 +char *main::$0 +char *main::$1 +char *main::$2 +char *main::$3 +__constant struct PointDef *main::SCREEN = (struct PointDef *)$400 +__constant char main::p_x = 4 +__constant char main::p_y = 7 -Simplifying constant pointer cast (struct PointDef*) 1024 +Simplifying constant pointer cast (struct PointDef *) 1024 Successful SSA optimization PassNCastSimplification -Constant right-side identified [0] main::$2 = (byte*)main::SCREEN -Constant right-side identified [3] main::$3 = (byte*)main::SCREEN +Constant right-side identified [0] main::$2 = (char *)main::SCREEN +Constant right-side identified [3] main::$3 = (char *)main::SCREEN Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$2 = (byte*)main::SCREEN -Constant main::$3 = (byte*)main::SCREEN +Constant main::$2 = (char *)main::SCREEN +Constant main::$3 = (char *)main::SCREEN Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [2] *main::$0 = main::p_x -- main::$2[OFFSET_STRUCT_POINTDEF_X] Converting *(pointer+n) to pointer[n] [5] *main::$1 = main::p_y -- main::$3[OFFSET_STRUCT_POINTDEF_Y] @@ -60,10 +60,10 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$2 = (byte*)main::SCREEN -Constant inlined main::$3 = (byte*)main::SCREEN +Constant inlined main::$2 = (char *)main::SCREEN +Constant inlined main::$3 = (char *)main::SCREEN Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) +Consolidated array index constant in *((char *)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) Successful SSA optimization Pass2ConstantAdditionElimination CALL GRAPH @@ -74,8 +74,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)main::SCREEN) = main::p_x - [1] *((byte*)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y + [0] *((char *)main::SCREEN) = main::p_x + [1] *((char *)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y to:main::@return main::@return: scope:[main] from main [2] return @@ -88,8 +88,8 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)main::SCREEN) = main::p_x [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)main::SCREEN) = main::p_x [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [PointDef] @@ -119,10 +119,10 @@ main: { .const p_x = 4 .const p_y = 7 .label SCREEN = $400 - // [0] *((byte*)main::SCREEN) = main::p_x -- _deref_pbuc1=vbuc2 + // [0] *((char *)main::SCREEN) = main::p_x -- _deref_pbuc1=vbuc2 lda #p_x sta SCREEN - // [1] *((byte*)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y -- _deref_pbuc1=vbuc2 + // [1] *((char *)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y -- _deref_pbuc1=vbuc2 lda #p_y sta SCREEN+OFFSET_STRUCT_POINTDEF_Y jmp __breturn @@ -140,11 +140,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_POINTDEF_Y = 1 +__constant char OFFSET_STRUCT_POINTDEF_Y = 1 void main() -constant struct PointDef* main::SCREEN = (struct PointDef*) 1024 -constant byte main::p_x = 4 -constant byte main::p_y = 7 +__constant struct PointDef *main::SCREEN = (struct PointDef *) 1024 +__constant char main::p_x = 4 +__constant char main::p_y = 7 @@ -170,10 +170,10 @@ main: { .const p_y = 7 .label SCREEN = $400 // *SCREEN = p - // [0] *((byte*)main::SCREEN) = main::p_x -- _deref_pbuc1=vbuc2 + // [0] *((char *)main::SCREEN) = main::p_x -- _deref_pbuc1=vbuc2 lda #p_x sta SCREEN - // [1] *((byte*)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y -- _deref_pbuc1=vbuc2 + // [1] *((char *)main::SCREEN+OFFSET_STRUCT_POINTDEF_Y) = main::p_y -- _deref_pbuc1=vbuc2 lda #p_y sta SCREEN+OFFSET_STRUCT_POINTDEF_Y // main::@return diff --git a/src/test/ref/typedef-1.sym b/src/test/ref/typedef-1.sym index 88f4ad648..72556890d 100644 --- a/src/test/ref/typedef-1.sym +++ b/src/test/ref/typedef-1.sym @@ -1,6 +1,6 @@ -constant byte OFFSET_STRUCT_POINTDEF_Y = 1 +__constant char OFFSET_STRUCT_POINTDEF_Y = 1 void main() -constant struct PointDef* main::SCREEN = (struct PointDef*) 1024 -constant byte main::p_x = 4 -constant byte main::p_y = 7 +__constant struct PointDef *main::SCREEN = (struct PointDef *) 1024 +__constant char main::p_x = 4 +__constant char main::p_y = 7 diff --git a/src/test/ref/typedef-2.cfg b/src/test/ref/typedef-2.cfg index 4090a1686..1f86899b8 100644 --- a/src/test/ref/typedef-2.cfg +++ b/src/test/ref/typedef-2.cfg @@ -4,11 +4,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] ptr = (byte*) 4096 + [1] ptr = (char *) 4096 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -16,7 +16,7 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 - [5] *SCREEN = byte0 (word)&ptr+$32 + [5] *SCREEN = byte0 (unsigned int)&ptr+$32 to:main::@return main::@return: scope:[main] from main [6] return diff --git a/src/test/ref/typedef-2.log b/src/test/ref/typedef-2.log index 912226365..b0794ff9f 100644 --- a/src/test/ref/typedef-2.log +++ b/src/test/ref/typedef-2.log @@ -1,11 +1,11 @@ -Setting inferred volatile on symbol affected by address-of main::w = (word)&ptr -Inlined call call __init +Setting inferred volatile on symbol affected by address-of main::w = (unsigned int)&ptr +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - main::w#0 = (word)&ptr + main::w#0 = (unsigned int)&ptr main::w#1 = main::w#0 + $32 main::$0 = byte0 main::w#1 SCREEN[0] = main::$0 @@ -18,10 +18,10 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - ptr = (byte*)$1000 + ptr = (char *)$1000 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -30,27 +30,27 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -word main::w -word main::w#0 -word main::w#1 -byte* volatile ptr loadstore +char main::$0 +unsigned int main::w +unsigned int main::w#0 +unsigned int main::w#1 +__loadstore char * volatile ptr Adding number conversion cast (unumber) $32 in main::w#1 = main::w#0 + $32 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $32 Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 4096 +Simplifying constant pointer cast (char *) 4096 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $32 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $32 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant main::w#0 = (word)&ptr +Constant main::w#0 = (unsigned int)&ptr Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero SCREEN in [3] SCREEN[0] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -64,9 +64,9 @@ Constant main::$0 = byte0 main::w#1 Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::w#0 Inlining constant with different constant siblings main::w#1 -Constant inlined main::w#0 = (word)&ptr -Constant inlined main::w#1 = (word)&ptr+$32 -Constant inlined main::$0 = byte0 (word)&ptr+$32 +Constant inlined main::w#0 = (unsigned int)&ptr +Constant inlined main::w#1 = (unsigned int)&ptr+$32 +Constant inlined main::$0 = byte0 (unsigned int)&ptr+$32 Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 @@ -87,11 +87,11 @@ __start: scope:[__start] from [0] phi() to:__start::__init1 __start::__init1: scope:[__start] from __start - [1] ptr = (byte*) 4096 + [1] ptr = (char *) 4096 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -99,7 +99,7 @@ __start::@return: scope:[__start] from __start::@1 void main() main: scope:[main] from __start::@1 - [5] *SCREEN = byte0 (word)&ptr+$32 + [5] *SCREEN = byte0 (unsigned int)&ptr+$32 to:main::@return main::@return: scope:[main] from main [6] return @@ -109,8 +109,8 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void __start() void main() -word main::w -byte* volatile ptr loadstore 1.0 +unsigned int main::w +__loadstore char * volatile ptr // 1.0 Initial phi equivalence classes Added variable ptr to live range equivalence class [ ptr ] @@ -118,8 +118,8 @@ Complete equivalence classes [ ptr ] Allocated zp[2]:2 [ ptr ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] ptr = (byte*) 4096 [ ptr ] ( [ ptr ] { } ) always clobbers reg byte a -Statement [5] *SCREEN = byte0 (word)&ptr+$32 [ ] ( main:3 [ ] { } ) always clobbers reg byte a +Statement [1] ptr = (char *) 4096 [ ptr ] ( [ ptr ] { } ) always clobbers reg byte a +Statement [5] *SCREEN = byte0 (unsigned int)&ptr+$32 [ ] ( main:3 [ ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ ptr ] : zp[2]:2 , REGISTER UPLIFT SCOPES @@ -151,7 +151,7 @@ __start: { jmp __init1 // __start::__init1 __init1: - // [1] ptr = (byte*) 4096 -- pbuz1=pbuc1 + // [1] ptr = (char *) 4096 -- pbuz1=pbuc1 lda #<$1000 sta.z ptr lda #>$1000 @@ -161,7 +161,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main jsr main jmp __breturn // __start::@return @@ -171,7 +171,7 @@ __start: { } // main main: { - // [5] *SCREEN = byte0 (word)&ptr+$32 -- _deref_pbuc1=vbuc2 + // [5] *SCREEN = byte0 (unsigned int)&ptr+$32 -- _deref_pbuc1=vbuc2 lda #$1000 sta.z ptr+1 // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return @@ -243,7 +243,7 @@ __start: { // main main: { // SCREEN[0] = BYTE0(w) - // [5] *SCREEN = byte0 (word)&ptr+$32 -- _deref_pbuc1=vbuc2 + // [5] *SCREEN = byte0 (unsigned int)&ptr+$32 -- _deref_pbuc1=vbuc2 lda #__start::@1] // __start::@1 - // [3] call main + // [3] call main jsr main // __start::@return // [4] return diff --git a/src/test/ref/typedef-4.sym b/src/test/ref/typedef-4.sym index 4c82cf8e7..d3084a3e1 100644 --- a/src/test/ref/typedef-4.sym +++ b/src/test/ref/typedef-4.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -constant const byte c = 'c' +__constant const char c = 'c' void main() -volatile byte v loadstore zp[1]:2 4.333333333333333 +__loadstore volatile char v // zp[1]:2 4.333333333333333 zp[1]:2 [ v ] diff --git a/src/test/ref/typedef-5.log b/src/test/ref/typedef-5.log index 8b7356cc3..e2b8dd839 100644 --- a/src/test/ref/typedef-5.log +++ b/src/test/ref/typedef-5.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -17,7 +17,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -26,23 +26,23 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant const byte* cp = (const byte*)$a003 +__constant const char *cp = (const char *)$a003 void main() -constant volatile byte* vp = (volatile byte*)$a004 +__constant volatile char *vp = (volatile char *)$a004 Adding number conversion cast (unumber) 0 in SCREEN[0] = *cp Adding number conversion cast (unumber) 1 in SCREEN[1] = *vp Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (const byte*) 40963 -Simplifying constant pointer cast (volatile byte*) 40964 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (const char *) 40963 +Simplifying constant pointer cast (volatile char *) 40964 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *cp Successful SSA optimization PassNSimplifyExpressionWithZero @@ -128,10 +128,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant const byte* cp = (const byte*) 40963 +__constant char * const SCREEN = (char *) 1024 +__constant const char *cp = (const char *) 40963 void main() -constant volatile byte* vp = (volatile byte*) 40964 +__constant volatile char *vp = (volatile char *) 40964 diff --git a/src/test/ref/typedef-5.sym b/src/test/ref/typedef-5.sym index e1fbd83c2..be0720c28 100644 --- a/src/test/ref/typedef-5.sym +++ b/src/test/ref/typedef-5.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -constant const byte* cp = (const byte*) 40963 +__constant char * const SCREEN = (char *) 1024 +__constant const char *cp = (const char *) 40963 void main() -constant volatile byte* vp = (volatile byte*) 40964 +__constant volatile char *vp = (volatile char *) 40964 diff --git a/src/test/ref/typedef-6.log b/src/test/ref/typedef-6.log index abbe5c466..b9b77dd9b 100644 --- a/src/test/ref/typedef-6.log +++ b/src/test/ref/typedef-6.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -17,7 +17,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -26,23 +26,23 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant const byte* cp = (const byte*)$a003 +__constant const char *cp = (const char *)$a003 void main() -constant volatile byte* vp = (volatile byte*)$a004 +__constant volatile char *vp = (volatile char *)$a004 Adding number conversion cast (unumber) 0 in SCREEN[0] = *cp Adding number conversion cast (unumber) 1 in SCREEN[1] = *vp Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (const byte*) 40963 -Simplifying constant pointer cast (volatile byte*) 40964 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (const char *) 40963 +Simplifying constant pointer cast (volatile char *) 40964 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *cp Successful SSA optimization PassNSimplifyExpressionWithZero @@ -128,10 +128,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant const byte* cp = (const byte*) 40963 +__constant char * const SCREEN = (char *) 1024 +__constant const char *cp = (const char *) 40963 void main() -constant volatile byte* vp = (volatile byte*) 40964 +__constant volatile char *vp = (volatile char *) 40964 diff --git a/src/test/ref/typedef-6.sym b/src/test/ref/typedef-6.sym index e1fbd83c2..be0720c28 100644 --- a/src/test/ref/typedef-6.sym +++ b/src/test/ref/typedef-6.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -constant const byte* cp = (const byte*) 40963 +__constant char * const SCREEN = (char *) 1024 +__constant const char *cp = (const char *) 40963 void main() -constant volatile byte* vp = (volatile byte*) 40964 +__constant volatile char *vp = (volatile char *) 40964 diff --git a/src/test/ref/typedef-7.log b/src/test/ref/typedef-7.log index 211bf6153..7a2e05085 100644 --- a/src/test/ref/typedef-7.log +++ b/src/test/ref/typedef-7.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,23 +21,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant const byte* const cp = (const byte*)$a003 +__constant const char * const cp = (const char *)$a003 void main() -constant volatile byte* const vp = (volatile byte*)$a004 +__constant volatile char * const vp = (volatile char *)$a004 Adding number conversion cast (unumber) 0 in SCREEN[0] = *cp Adding number conversion cast (unumber) 1 in SCREEN[1] = *vp Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (const byte*) 40963 -Simplifying constant pointer cast (volatile byte*) 40964 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (const char *) 40963 +Simplifying constant pointer cast (volatile char *) 40964 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = *cp Successful SSA optimization PassNSimplifyExpressionWithZero @@ -121,10 +121,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant const byte* const cp = (const byte*) 40963 +__constant char * const SCREEN = (char *) 1024 +__constant const char * const cp = (const char *) 40963 void main() -constant volatile byte* const vp = (volatile byte*) 40964 +__constant volatile char * const vp = (volatile char *) 40964 diff --git a/src/test/ref/typedef-7.sym b/src/test/ref/typedef-7.sym index b4b22340a..de7520cd5 100644 --- a/src/test/ref/typedef-7.sym +++ b/src/test/ref/typedef-7.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -constant const byte* const cp = (const byte*) 40963 +__constant char * const SCREEN = (char *) 1024 +__constant const char * const cp = (const char *) 40963 void main() -constant volatile byte* const vp = (volatile byte*) 40964 +__constant volatile char * const vp = (volatile char *) 40964 diff --git a/src/test/ref/typedef-8.log b/src/test/ref/typedef-8.log index cb0f2372d..a6af94b7a 100644 --- a/src/test/ref/typedef-8.log +++ b/src/test/ref/typedef-8.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,13 +25,13 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte FALSE = 0 -constant byte* SCREEN = (byte*)$400 +__constant char FALSE = 0 +__constant char *SCREEN = (char *)$400 void __start() void main() -constant byte main::exe = FALSE +__constant char main::exe = FALSE -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -42,7 +42,7 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::exe = FALSE Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -111,8 +111,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte FALSE = 0 -constant byte* SCREEN = (byte*) 1024 +__constant char FALSE = 0 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/typedef-8.sym b/src/test/ref/typedef-8.sym index dcef58be7..b4916e7b9 100644 --- a/src/test/ref/typedef-8.sym +++ b/src/test/ref/typedef-8.sym @@ -1,4 +1,4 @@ -constant byte FALSE = 0 -constant byte* SCREEN = (byte*) 1024 +__constant char FALSE = 0 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/typedef-9.log b/src/test/ref/typedef-9.log index d7e17d258..d789806dd 100644 --- a/src/test/ref/typedef-9.log +++ b/src/test/ref/typedef-9.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,31 +22,31 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte A = 0 -constant byte I = 0 -constant byte J = 1 -constant byte* const SCREEN = (byte*)$400 +__constant char A = 0 +__constant char I = 0 +__constant char J = 1 +__constant char * const SCREEN = (char *)$400 void __start() void main() -constant byte main::a = I -constant byte main::b = J -constant byte main::c = A -constant byte y::I = 0 -constant byte y::J = 1 -constant byte y::K = 2 +__constant char main::a = I +__constant char main::b = J +__constant char main::c = A +__constant char y::I = 0 +__constant char y::J = 1 +__constant char y::K = 2 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::a Adding number conversion cast (unumber) 1 in SCREEN[1] = main::b Adding number conversion cast (unumber) 2 in SCREEN[2] = main::c Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = main::a Successful SSA optimization PassNSimplifyExpressionWithZero @@ -145,14 +145,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte A = 0 -constant byte I = 0 -constant byte J = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant char A = 0 +__constant char I = 0 +__constant char J = 1 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte y::I = 0 -constant byte y::J = 1 -constant byte y::K = 2 +__constant char y::I = 0 +__constant char y::J = 1 +__constant char y::K = 2 diff --git a/src/test/ref/typedef-9.sym b/src/test/ref/typedef-9.sym index cd400aec8..dca284b46 100644 --- a/src/test/ref/typedef-9.sym +++ b/src/test/ref/typedef-9.sym @@ -1,9 +1,9 @@ -constant byte A = 0 -constant byte I = 0 -constant byte J = 1 -constant byte* const SCREEN = (byte*) 1024 +__constant char A = 0 +__constant char I = 0 +__constant char J = 1 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte y::I = 0 -constant byte y::J = 1 -constant byte y::K = 2 +__constant char y::I = 0 +__constant char y::J = 1 +__constant char y::K = 2 diff --git a/src/test/ref/typeid-plus-byte-problem.log b/src/test/ref/typeid-plus-byte-problem.log index 156db5b4a..57d92ca8f 100644 --- a/src/test/ref/typeid-plus-byte-problem.log +++ b/src/test/ref/typeid-plus-byte-problem.log @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,19 +21,19 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -byte~ main::$0 -constant byte main::ubc1 = (byte)$c+$d+$e -constant byte main::ubc2 = $fa +char main::$0 +__constant char main::ubc1 = (char)$c+$d+$e +__constant char main::ubc2 = $fa Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [0] main::$0 = main::ubc1 + main::ubc2 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -48,9 +48,9 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::$0 = main::ubc1+main::ubc2 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $c -Finalized unsigned number type (byte) $d -Finalized unsigned number type (byte) $e +Finalized unsigned number type (char) $c +Finalized unsigned number type (char) $d +Finalized unsigned number type (char) $e Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $c+$d+$e Successful SSA optimization PassNCastSimplification @@ -122,10 +122,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte main::ubc1 = $c+$d+$e -constant byte main::ubc2 = $fa +__constant char main::ubc1 = $c+$d+$e +__constant char main::ubc2 = $fa diff --git a/src/test/ref/typeid-plus-byte-problem.sym b/src/test/ref/typeid-plus-byte-problem.sym index 675ade502..140f2b1d5 100644 --- a/src/test/ref/typeid-plus-byte-problem.sym +++ b/src/test/ref/typeid-plus-byte-problem.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -constant byte main::ubc1 = $c+$d+$e -constant byte main::ubc2 = $fa +__constant char main::ubc1 = $c+$d+$e +__constant char main::ubc2 = $fa diff --git a/src/test/ref/typeid-plus-bytes.asm b/src/test/ref/typeid-plus-bytes.asm index 6ddfb42fd..0e9ecd247 100644 --- a/src/test/ref/typeid-plus-bytes.asm +++ b/src/test/ref/typeid-plus-bytes.asm @@ -7,8 +7,8 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 .label SCREEN = $400 .label SSCREEN = $400 .segment Code @@ -29,7 +29,7 @@ testUnsigned: { lda #0 sta SCREEN // SCREEN[idx++] = typeid(ubc1) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+1 // SCREEN[idx++] = typeid(ubv1) sta SCREEN+2 @@ -37,7 +37,7 @@ testUnsigned: { lda #0 sta SCREEN+3 // SCREEN[idx++] = typeid(ubc1+250) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+4 // SCREEN[idx++] = typeid(250+ubc1) sta SCREEN+5 @@ -112,7 +112,7 @@ testSigned: { lda #0 sta SCREEN+$28*2 // SCREEN[idx++] = typeid(sbc1) - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1 // SCREEN[idx++] = typeid(sbv1) sta SCREEN+$28*2+1+1 @@ -120,7 +120,7 @@ testSigned: { lda #0 sta SCREEN+$28*2+1+1+1 // SCREEN[idx++] = typeid(sbc1+-120) - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1 // SCREEN[idx++] = typeid(-120+sbc1) sta SCREEN+$28*2+1+1+1+1+1 diff --git a/src/test/ref/typeid-plus-bytes.cfg b/src/test/ref/typeid-plus-bytes.cfg index dfc3537f5..4dffdaaf2 100644 --- a/src/test/ref/typeid-plus-bytes.cfg +++ b/src/test/ref/typeid-plus-bytes.cfg @@ -2,19 +2,19 @@ void main() main: scope:[main] from [0] phi() - [1] call testUnsigned + [1] call testUnsigned to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call testUnsignedVals + [3] call testUnsignedVals to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call testSigned + [5] call testSigned to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call testSignedVals + [7] call testSignedVals to:main::@return main::@return: scope:[main] from main::@3 [8] return @@ -23,16 +23,16 @@ main::@return: scope:[main] from main::@3 void testUnsigned() testUnsigned: scope:[testUnsigned] from main [9] *SCREEN = 0 - [10] *(SCREEN+1) = TYPEID_BYTE - [11] *(SCREEN+2) = TYPEID_BYTE + [10] *(SCREEN+1) = TYPEID_CHAR + [11] *(SCREEN+2) = TYPEID_CHAR [12] *(SCREEN+3) = 0 - [13] *(SCREEN+4) = TYPEID_BYTE - [14] *(SCREEN+5) = TYPEID_BYTE - [15] *(SCREEN+6) = TYPEID_BYTE - [16] *(SCREEN+7) = TYPEID_BYTE - [17] *(SCREEN+8) = TYPEID_BYTE - [18] *(SCREEN+9) = TYPEID_BYTE - [19] *(SCREEN+$a) = TYPEID_BYTE + [13] *(SCREEN+4) = TYPEID_CHAR + [14] *(SCREEN+5) = TYPEID_CHAR + [15] *(SCREEN+6) = TYPEID_CHAR + [16] *(SCREEN+7) = TYPEID_CHAR + [17] *(SCREEN+8) = TYPEID_CHAR + [18] *(SCREEN+9) = TYPEID_CHAR + [19] *(SCREEN+$a) = TYPEID_CHAR to:testUnsigned::@return testUnsigned::@return: scope:[testUnsigned] from testUnsigned [20] return @@ -65,16 +65,16 @@ testUnsignedVals::@return: scope:[testUnsignedVals] from testUnsignedVals void testSigned() testSigned: scope:[testSigned] from main::@2 [39] *(SCREEN+$28*2) = 0 - [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_BYTE - [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_BYTE + [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_CHAR + [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_CHAR [42] *(SCREEN+++++++$28*2) = 0 - [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_BYTE - [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_BYTE - [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE + [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_CHAR + [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_CHAR + [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR to:testSigned::@return testSigned::@return: scope:[testSigned] from testSigned [50] return diff --git a/src/test/ref/typeid-plus-bytes.log b/src/test/ref/typeid-plus-bytes.log index 383ffbfbe..0b0281bde 100644 --- a/src/test/ref/typeid-plus-bytes.log +++ b/src/test/ref/typeid-plus-bytes.log @@ -8,32 +8,32 @@ Resolving typeid() testSigned::$2 = typeid testSigned::sbv1 Resolving typeid() testSigned::$13 = typeid testSigned::$12 Resolving typeid() testSigned::$15 = typeid testSigned::$14 Resolving typeid() testSigned::$17 = typeid testSigned::$16 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 idx#0 = 0 - call testUnsigned + call testUnsigned to:main::@1 main::@1: scope:[main] from main idx#60 = phi( main/idx#20 ) idx#1 = idx#60 idx#2 = $28 - call testUnsignedVals + call testUnsignedVals to:main::@2 main::@2: scope:[main] from main::@1 idx#61 = phi( main::@1/idx#32 ) idx#3 = idx#61 idx#4 = $28*2 - call testSigned + call testSigned to:main::@3 main::@3: scope:[main] from main::@2 idx#62 = phi( main::@2/idx#44 ) idx#5 = idx#62 idx#6 = $28*3 - call testSignedVals + call testSignedVals to:main::@4 main::@4: scope:[main] from main::@3 idx#63 = phi( main::@3/idx#56 ) @@ -52,10 +52,10 @@ testUnsigned: scope:[testUnsigned] from main testUnsigned::$0 = typeid $fa SCREEN[idx#65] = testUnsigned::$0 idx#9 = ++ idx#65 - testUnsigned::$1 = TYPEID_BYTE + testUnsigned::$1 = TYPEID_CHAR SCREEN[idx#9] = testUnsigned::$1 idx#10 = ++ idx#9 - testUnsigned::$2 = TYPEID_BYTE + testUnsigned::$2 = TYPEID_CHAR SCREEN[idx#10] = testUnsigned::$2 idx#11 = ++ idx#10 testUnsigned::$3 = typeid $78+$82 @@ -77,13 +77,13 @@ testUnsigned: scope:[testUnsigned] from main testUnsigned::$11 = typeid testUnsigned::$10 SCREEN[idx#15] = testUnsigned::$11 idx#16 = ++ idx#15 - testUnsigned::$13 = TYPEID_BYTE + testUnsigned::$13 = TYPEID_CHAR SCREEN[idx#16] = testUnsigned::$13 idx#17 = ++ idx#16 - testUnsigned::$15 = TYPEID_BYTE + testUnsigned::$15 = TYPEID_CHAR SCREEN[idx#17] = testUnsigned::$15 idx#18 = ++ idx#17 - testUnsigned::$17 = TYPEID_BYTE + testUnsigned::$17 = TYPEID_CHAR SCREEN[idx#18] = testUnsigned::$17 idx#19 = ++ idx#18 to:testUnsigned::@return @@ -140,10 +140,10 @@ testSigned: scope:[testSigned] from main::@2 testSigned::$0 = typeid -$78 SCREEN[idx#69] = testSigned::$0 idx#33 = ++ idx#69 - testSigned::$1 = TYPEID_SIGNED_BYTE + testSigned::$1 = TYPEID_SIGNED_CHAR SCREEN[idx#33] = testSigned::$1 idx#34 = ++ idx#33 - testSigned::$2 = TYPEID_SIGNED_BYTE + testSigned::$2 = TYPEID_SIGNED_CHAR SCREEN[idx#34] = testSigned::$2 idx#35 = ++ idx#34 testSigned::$3 = typeid -$78+-$82 @@ -165,13 +165,13 @@ testSigned: scope:[testSigned] from main::@2 testSigned::$11 = typeid testSigned::$10 SCREEN[idx#39] = testSigned::$11 idx#40 = ++ idx#39 - testSigned::$13 = TYPEID_SIGNED_BYTE + testSigned::$13 = TYPEID_SIGNED_CHAR SCREEN[idx#40] = testSigned::$13 idx#41 = ++ idx#40 - testSigned::$15 = TYPEID_SIGNED_BYTE + testSigned::$15 = TYPEID_SIGNED_CHAR SCREEN[idx#41] = testSigned::$15 idx#42 = ++ idx#41 - testSigned::$17 = TYPEID_SIGNED_BYTE + testSigned::$17 = TYPEID_SIGNED_CHAR SCREEN[idx#42] = testSigned::$17 idx#43 = ++ idx#42 to:testSigned::@return @@ -229,7 +229,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#75 = phi( __start::__init1/idx#57 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#73 = phi( __start::@1/idx#8 ) @@ -242,145 +242,145 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 -constant signed byte* const SSCREEN = (signed byte*)$400 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_SIGNED_BYTE = 2 +__constant char * const SCREEN = (char *)$400 +__constant signed char * const SSCREEN = (signed char *)$400 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_SIGNED_CHAR = 2 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#19 -byte idx#2 -byte idx#20 -byte idx#21 -byte idx#22 -byte idx#23 -byte idx#24 -byte idx#25 -byte idx#26 -byte idx#27 -byte idx#28 -byte idx#29 -byte idx#3 -byte idx#30 -byte idx#31 -byte idx#32 -byte idx#33 -byte idx#34 -byte idx#35 -byte idx#36 -byte idx#37 -byte idx#38 -byte idx#39 -byte idx#4 -byte idx#40 -byte idx#41 -byte idx#42 -byte idx#43 -byte idx#44 -byte idx#45 -byte idx#46 -byte idx#47 -byte idx#48 -byte idx#49 -byte idx#5 -byte idx#50 -byte idx#51 -byte idx#52 -byte idx#53 -byte idx#54 -byte idx#55 -byte idx#56 -byte idx#57 -byte idx#58 -byte idx#59 -byte idx#6 -byte idx#60 -byte idx#61 -byte idx#62 -byte idx#63 -byte idx#64 -byte idx#65 -byte idx#66 -byte idx#67 -byte idx#68 -byte idx#69 -byte idx#7 -byte idx#70 -byte idx#71 -byte idx#72 -byte idx#73 -byte idx#74 -byte idx#75 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#19 +char idx#2 +char idx#20 +char idx#21 +char idx#22 +char idx#23 +char idx#24 +char idx#25 +char idx#26 +char idx#27 +char idx#28 +char idx#29 +char idx#3 +char idx#30 +char idx#31 +char idx#32 +char idx#33 +char idx#34 +char idx#35 +char idx#36 +char idx#37 +char idx#38 +char idx#39 +char idx#4 +char idx#40 +char idx#41 +char idx#42 +char idx#43 +char idx#44 +char idx#45 +char idx#46 +char idx#47 +char idx#48 +char idx#49 +char idx#5 +char idx#50 +char idx#51 +char idx#52 +char idx#53 +char idx#54 +char idx#55 +char idx#56 +char idx#57 +char idx#58 +char idx#59 +char idx#6 +char idx#60 +char idx#61 +char idx#62 +char idx#63 +char idx#64 +char idx#65 +char idx#66 +char idx#67 +char idx#68 +char idx#69 +char idx#7 +char idx#70 +char idx#71 +char idx#72 +char idx#73 +char idx#74 +char idx#75 +char idx#8 +char idx#9 void main() void testSigned() -byte~ testSigned::$0 -byte~ testSigned::$1 -number~ testSigned::$10 -byte~ testSigned::$11 -byte~ testSigned::$13 -byte~ testSigned::$15 -byte~ testSigned::$17 -byte~ testSigned::$2 -byte~ testSigned::$3 -number~ testSigned::$4 -byte~ testSigned::$5 -number~ testSigned::$6 -byte~ testSigned::$7 -number~ testSigned::$8 -byte~ testSigned::$9 -constant signed byte testSigned::sbc1 = -$78 -volatile signed byte testSigned::sbv1 loadstore +char testSigned::$0 +char testSigned::$1 +number testSigned::$10 +char testSigned::$11 +char testSigned::$13 +char testSigned::$15 +char testSigned::$17 +char testSigned::$2 +char testSigned::$3 +number testSigned::$4 +char testSigned::$5 +number testSigned::$6 +char testSigned::$7 +number testSigned::$8 +char testSigned::$9 +__constant signed char testSigned::sbc1 = -$78 +__loadstore volatile signed char testSigned::sbv1 void testSignedVals() -number~ testSignedVals::$0 -number~ testSignedVals::$1 -number~ testSignedVals::$2 -number~ testSignedVals::$3 -signed byte~ testSignedVals::$4 -signed byte~ testSignedVals::$5 -signed byte~ testSignedVals::$6 -constant signed byte testSignedVals::sbc1 = -$78 -volatile signed byte testSignedVals::sbv1 loadstore +number testSignedVals::$0 +number testSignedVals::$1 +number testSignedVals::$2 +number testSignedVals::$3 +signed char testSignedVals::$4 +signed char testSignedVals::$5 +signed char testSignedVals::$6 +__constant signed char testSignedVals::sbc1 = -$78 +__loadstore volatile signed char testSignedVals::sbv1 void testUnsigned() -byte~ testUnsigned::$0 -byte~ testUnsigned::$1 -number~ testUnsigned::$10 -byte~ testUnsigned::$11 -byte~ testUnsigned::$13 -byte~ testUnsigned::$15 -byte~ testUnsigned::$17 -byte~ testUnsigned::$2 -byte~ testUnsigned::$3 -number~ testUnsigned::$4 -byte~ testUnsigned::$5 -number~ testUnsigned::$6 -byte~ testUnsigned::$7 -number~ testUnsigned::$8 -byte~ testUnsigned::$9 -constant byte testUnsigned::ubc1 = $fa -volatile byte testUnsigned::ubv1 loadstore +char testUnsigned::$0 +char testUnsigned::$1 +number testUnsigned::$10 +char testUnsigned::$11 +char testUnsigned::$13 +char testUnsigned::$15 +char testUnsigned::$17 +char testUnsigned::$2 +char testUnsigned::$3 +number testUnsigned::$4 +char testUnsigned::$5 +number testUnsigned::$6 +char testUnsigned::$7 +number testUnsigned::$8 +char testUnsigned::$9 +__constant char testUnsigned::ubc1 = $fa +__loadstore volatile char testUnsigned::ubv1 void testUnsignedVals() -number~ testUnsignedVals::$0 -number~ testUnsignedVals::$1 -number~ testUnsignedVals::$2 -number~ testUnsignedVals::$3 -byte~ testUnsignedVals::$4 -byte~ testUnsignedVals::$5 -byte~ testUnsignedVals::$6 -constant byte testUnsignedVals::ubc1 = $fa -volatile byte testUnsignedVals::ubv1 loadstore +number testUnsignedVals::$0 +number testUnsignedVals::$1 +number testUnsignedVals::$2 +number testUnsignedVals::$3 +char testUnsignedVals::$4 +char testUnsignedVals::$5 +char testUnsignedVals::$6 +__constant char testUnsignedVals::ubc1 = $fa +__loadstore volatile char testUnsignedVals::ubv1 Adding number conversion cast (unumber) 0 in idx#0 = 0 Adding number conversion cast (unumber) $28 in idx#2 = $28 @@ -432,8 +432,8 @@ Inlining cast SCREEN[idx#23] = (unumber)$78+$82 Inlining cast SSCREEN[idx#71] = (snumber)-$78 Inlining cast SSCREEN[idx#47] = (snumber)-$46+-$32 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (signed byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (signed char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $fa @@ -455,43 +455,43 @@ Simplifying constant integer cast -$78 Simplifying constant integer cast -$78 Simplifying constant integer cast -$78 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized unsigned number type (byte) $fa -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 -Finalized signed number type (signed byte) -$78 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized unsigned number type (char) $fa +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 +Finalized signed number type (signed char) -$78 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in testUnsigned::$4 = testUnsigned::ubc1 + $fa -Inferred type updated to byte in testUnsigned::$6 = $fa + testUnsigned::ubc1 -Inferred type updated to byte in testUnsigned::$8 = testUnsigned::ubv1 + $fa -Inferred type updated to byte in testUnsigned::$10 = $fa + testUnsigned::ubv1 -Inferred type updated to byte in testUnsignedVals::$0 = testUnsignedVals::ubc1 + $fa -Inferred type updated to byte in testUnsignedVals::$1 = $fa + testUnsignedVals::ubc1 -Inferred type updated to byte in testUnsignedVals::$2 = testUnsignedVals::ubv1 + $fa -Inferred type updated to byte in testUnsignedVals::$3 = $fa + testUnsignedVals::ubv1 -Inferred type updated to signed byte in testSigned::$4 = testSigned::sbc1 + -$78 -Inferred type updated to signed byte in testSigned::$6 = -$78 + testSigned::sbc1 -Inferred type updated to signed byte in testSigned::$8 = testSigned::sbv1 + -$78 -Inferred type updated to signed byte in testSigned::$10 = -$78 + testSigned::sbv1 -Inferred type updated to signed byte in testSignedVals::$0 = testSignedVals::sbc1 + -$78 -Inferred type updated to signed byte in testSignedVals::$1 = -$78 + testSignedVals::sbc1 -Inferred type updated to signed byte in testSignedVals::$2 = testSignedVals::sbv1 + -$78 -Inferred type updated to signed byte in testSignedVals::$3 = -$78 + testSignedVals::sbv1 +Inferred type updated to char in testUnsigned::$4 = testUnsigned::ubc1 + $fa +Inferred type updated to char in testUnsigned::$6 = $fa + testUnsigned::ubc1 +Inferred type updated to char in testUnsigned::$8 = testUnsigned::ubv1 + $fa +Inferred type updated to char in testUnsigned::$10 = $fa + testUnsigned::ubv1 +Inferred type updated to char in testUnsignedVals::$0 = testUnsignedVals::ubc1 + $fa +Inferred type updated to char in testUnsignedVals::$1 = $fa + testUnsignedVals::ubc1 +Inferred type updated to char in testUnsignedVals::$2 = testUnsignedVals::ubv1 + $fa +Inferred type updated to char in testUnsignedVals::$3 = $fa + testUnsignedVals::ubv1 +Inferred type updated to signed char in testSigned::$4 = testSigned::sbc1 + -$78 +Inferred type updated to signed char in testSigned::$6 = -$78 + testSigned::sbc1 +Inferred type updated to signed char in testSigned::$8 = testSigned::sbv1 + -$78 +Inferred type updated to signed char in testSigned::$10 = -$78 + testSigned::sbv1 +Inferred type updated to signed char in testSignedVals::$0 = testSignedVals::sbc1 + -$78 +Inferred type updated to signed char in testSignedVals::$1 = -$78 + testSignedVals::sbc1 +Inferred type updated to signed char in testSignedVals::$2 = testSignedVals::sbv1 + -$78 +Inferred type updated to signed char in testSignedVals::$3 = -$78 + testSignedVals::sbv1 Resolving typeid() testUnsigned::$5 = typeid testUnsigned::$4 Resolving typeid() testUnsigned::$7 = typeid testUnsigned::$6 Resolving typeid() testUnsigned::$9 = typeid testUnsigned::$8 @@ -544,33 +544,33 @@ Constant idx#2 = $28 Constant idx#4 = (unumber)$28*2 Constant idx#6 = (unumber)$28*3 Constant testUnsigned::$0 = typeid $fa -Constant testUnsigned::$1 = TYPEID_BYTE -Constant testUnsigned::$2 = TYPEID_BYTE +Constant testUnsigned::$1 = TYPEID_CHAR +Constant testUnsigned::$2 = TYPEID_CHAR Constant testUnsigned::$3 = typeid $78+$82 Constant testUnsigned::$4 = testUnsigned::ubc1+$fa -Constant testUnsigned::$5 = TYPEID_BYTE +Constant testUnsigned::$5 = TYPEID_CHAR Constant testUnsigned::$6 = $fa+testUnsigned::ubc1 -Constant testUnsigned::$7 = TYPEID_BYTE -Constant testUnsigned::$9 = TYPEID_BYTE -Constant testUnsigned::$11 = TYPEID_BYTE -Constant testUnsigned::$13 = TYPEID_BYTE -Constant testUnsigned::$15 = TYPEID_BYTE -Constant testUnsigned::$17 = TYPEID_BYTE +Constant testUnsigned::$7 = TYPEID_CHAR +Constant testUnsigned::$9 = TYPEID_CHAR +Constant testUnsigned::$11 = TYPEID_CHAR +Constant testUnsigned::$13 = TYPEID_CHAR +Constant testUnsigned::$15 = TYPEID_CHAR +Constant testUnsigned::$17 = TYPEID_CHAR Constant testUnsignedVals::$0 = testUnsignedVals::ubc1+$fa Constant testUnsignedVals::$1 = $fa+testUnsignedVals::ubc1 Constant testSigned::$0 = typeid -$78 -Constant testSigned::$1 = TYPEID_SIGNED_BYTE -Constant testSigned::$2 = TYPEID_SIGNED_BYTE +Constant testSigned::$1 = TYPEID_SIGNED_CHAR +Constant testSigned::$2 = TYPEID_SIGNED_CHAR Constant testSigned::$3 = typeid -$78+-$82 Constant testSigned::$4 = testSigned::sbc1+-$78 -Constant testSigned::$5 = TYPEID_SIGNED_BYTE +Constant testSigned::$5 = TYPEID_SIGNED_CHAR Constant testSigned::$6 = -$78+testSigned::sbc1 -Constant testSigned::$7 = TYPEID_SIGNED_BYTE -Constant testSigned::$9 = TYPEID_SIGNED_BYTE -Constant testSigned::$11 = TYPEID_SIGNED_BYTE -Constant testSigned::$13 = TYPEID_SIGNED_BYTE -Constant testSigned::$15 = TYPEID_SIGNED_BYTE -Constant testSigned::$17 = TYPEID_SIGNED_BYTE +Constant testSigned::$7 = TYPEID_SIGNED_CHAR +Constant testSigned::$9 = TYPEID_SIGNED_CHAR +Constant testSigned::$11 = TYPEID_SIGNED_CHAR +Constant testSigned::$13 = TYPEID_SIGNED_CHAR +Constant testSigned::$15 = TYPEID_SIGNED_CHAR +Constant testSigned::$17 = TYPEID_SIGNED_CHAR Constant testSignedVals::$0 = testSignedVals::sbc1+-$78 Constant testSignedVals::$1 = -$78+testSignedVals::sbc1 Constant idx#57 = 0 @@ -753,25 +753,25 @@ Inlining constant with different constant siblings idx#30 Inlining constant with different constant siblings idx#42 Inlining constant with different constant siblings idx#54 Constant inlined testUnsigned::$3 = 0 -Constant inlined testUnsigned::$1 = TYPEID_BYTE -Constant inlined idx#34 = ++++(byte)$28*2 -Constant inlined testUnsigned::$2 = TYPEID_BYTE -Constant inlined idx#33 = ++(byte)$28*2 +Constant inlined testUnsigned::$1 = TYPEID_CHAR +Constant inlined idx#34 = ++++(char)$28*2 +Constant inlined testUnsigned::$2 = TYPEID_CHAR +Constant inlined idx#33 = ++(char)$28*2 Constant inlined testUnsigned::$0 = 0 Constant inlined idx#9 = ++0 -Constant inlined idx#6 = (byte)$28*3 +Constant inlined idx#6 = (char)$28*3 Constant inlined idx#30 = ++++++++++++++++++++$28 -Constant inlined idx#39 = ++++++++++++++(byte)$28*2 -Constant inlined testUnsigned::$9 = TYPEID_BYTE -Constant inlined testUnsigned::$7 = TYPEID_BYTE -Constant inlined idx#36 = ++++++++(byte)$28*2 -Constant inlined idx#35 = ++++++(byte)$28*2 -Constant inlined testUnsigned::$5 = TYPEID_BYTE -Constant inlined idx#38 = ++++++++++++(byte)$28*2 -Constant inlined idx#37 = ++++++++++(byte)$28*2 -Constant inlined testUnsigned::$17 = TYPEID_BYTE -Constant inlined testUnsigned::$15 = TYPEID_BYTE -Constant inlined idx#4 = (byte)$28*2 +Constant inlined idx#39 = ++++++++++++++(char)$28*2 +Constant inlined testUnsigned::$9 = TYPEID_CHAR +Constant inlined testUnsigned::$7 = TYPEID_CHAR +Constant inlined idx#36 = ++++++++(char)$28*2 +Constant inlined idx#35 = ++++++(char)$28*2 +Constant inlined testUnsigned::$5 = TYPEID_CHAR +Constant inlined idx#38 = ++++++++++++(char)$28*2 +Constant inlined idx#37 = ++++++++++(char)$28*2 +Constant inlined testUnsigned::$17 = TYPEID_CHAR +Constant inlined testUnsigned::$15 = TYPEID_CHAR +Constant inlined idx#4 = (char)$28*2 Constant inlined idx#2 = $28 Constant inlined idx#0 = 0 Constant inlined idx#21 = ++$28 @@ -786,42 +786,42 @@ Constant inlined idx#26 = ++++++++++++$28 Constant inlined testUnsignedVals::$0 = testUnsignedVals::ubc1+$fa Constant inlined testUnsignedVals::$1 = $fa+testUnsignedVals::ubc1 Constant inlined idx#10 = ++++0 -Constant inlined idx#54 = ++++++++++++++++++++(byte)$28*3 -Constant inlined idx#53 = ++++++++++++++++++(byte)$28*3 +Constant inlined idx#54 = ++++++++++++++++++++(char)$28*3 +Constant inlined idx#53 = ++++++++++++++++++(char)$28*3 Constant inlined idx#12 = ++++++++0 Constant inlined idx#11 = ++++++0 -Constant inlined idx#50 = ++++++++++++(byte)$28*3 -Constant inlined idx#52 = ++++++++++++++++(byte)$28*3 -Constant inlined idx#51 = ++++++++++++++(byte)$28*3 +Constant inlined idx#50 = ++++++++++++(char)$28*3 +Constant inlined idx#52 = ++++++++++++++++(char)$28*3 +Constant inlined idx#51 = ++++++++++++++(char)$28*3 Constant inlined idx#18 = ++++++++++++++++++++0 Constant inlined idx#17 = ++++++++++++++++++0 Constant inlined idx#14 = ++++++++++++0 Constant inlined idx#13 = ++++++++++0 Constant inlined idx#16 = ++++++++++++++++0 Constant inlined idx#15 = ++++++++++++++0 -Constant inlined testSigned::$7 = TYPEID_SIGNED_BYTE -Constant inlined testSigned::$9 = TYPEID_SIGNED_BYTE -Constant inlined testSigned::$2 = TYPEID_SIGNED_BYTE -Constant inlined testSigned::$17 = TYPEID_SIGNED_BYTE +Constant inlined testSigned::$7 = TYPEID_SIGNED_CHAR +Constant inlined testSigned::$9 = TYPEID_SIGNED_CHAR +Constant inlined testSigned::$2 = TYPEID_SIGNED_CHAR +Constant inlined testSigned::$17 = TYPEID_SIGNED_CHAR Constant inlined testSigned::$3 = 0 -Constant inlined idx#42 = ++++++++++++++++++++(byte)$28*2 -Constant inlined idx#45 = ++(byte)$28*3 -Constant inlined testSigned::$5 = TYPEID_SIGNED_BYTE -Constant inlined testSigned::$13 = TYPEID_SIGNED_BYTE +Constant inlined idx#42 = ++++++++++++++++++++(char)$28*2 +Constant inlined idx#45 = ++(char)$28*3 +Constant inlined testSigned::$5 = TYPEID_SIGNED_CHAR +Constant inlined testSigned::$13 = TYPEID_SIGNED_CHAR Constant inlined testSigned::$0 = 0 -Constant inlined idx#41 = ++++++++++++++++++(byte)$28*2 -Constant inlined testSigned::$1 = TYPEID_SIGNED_BYTE -Constant inlined testSigned::$15 = TYPEID_SIGNED_BYTE -Constant inlined idx#40 = ++++++++++++++++(byte)$28*2 -Constant inlined testUnsigned::$13 = TYPEID_BYTE -Constant inlined testUnsigned::$11 = TYPEID_BYTE +Constant inlined idx#41 = ++++++++++++++++++(char)$28*2 +Constant inlined testSigned::$1 = TYPEID_SIGNED_CHAR +Constant inlined testSigned::$15 = TYPEID_SIGNED_CHAR +Constant inlined idx#40 = ++++++++++++++++(char)$28*2 +Constant inlined testUnsigned::$13 = TYPEID_CHAR +Constant inlined testUnsigned::$11 = TYPEID_CHAR Constant inlined testSignedVals::$1 = -$78+testSignedVals::sbc1 -Constant inlined testSigned::$11 = TYPEID_SIGNED_BYTE +Constant inlined testSigned::$11 = TYPEID_SIGNED_CHAR Constant inlined testSignedVals::$0 = testSignedVals::sbc1+-$78 -Constant inlined idx#47 = ++++++(byte)$28*3 -Constant inlined idx#46 = ++++(byte)$28*3 -Constant inlined idx#49 = ++++++++++(byte)$28*3 -Constant inlined idx#48 = ++++++++(byte)$28*3 +Constant inlined idx#47 = ++++++(char)$28*3 +Constant inlined idx#46 = ++++(char)$28*3 +Constant inlined idx#49 = ++++++++++(char)$28*3 +Constant inlined idx#48 = ++++++++(char)$28*3 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(SCREEN+++0) Consolidated array index constant in *(SCREEN+++++0) @@ -844,28 +844,28 @@ Consolidated array index constant in *(SCREEN+++++++++++++++$28) Consolidated array index constant in *(SCREEN+++++++++++++++++$28) Consolidated array index constant in *(SCREEN+++++++++++++++++++$28) Consolidated array index constant in *(SCREEN+++++++++++++++++++++$28) -Consolidated array index constant in *(SCREEN+(byte)$28*2) -Consolidated array index constant in *(SCREEN+++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++++++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++++++++++++(byte)$28*2) -Consolidated array index constant in *(SCREEN+++++++++++++++++++++(byte)$28*2) -Consolidated array index constant in *(SSCREEN+(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++++++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++++++++++++(byte)$28*3) -Consolidated array index constant in *(SSCREEN+++++++++++++++++++++(byte)$28*3) +Consolidated array index constant in *(SCREEN+(char)$28*2) +Consolidated array index constant in *(SCREEN+++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++++++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++++++++++++(char)$28*2) +Consolidated array index constant in *(SCREEN+++++++++++++++++++++(char)$28*2) +Consolidated array index constant in *(SSCREEN+(char)$28*3) +Consolidated array index constant in *(SSCREEN+++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++++++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++++++++++++(char)$28*3) +Consolidated array index constant in *(SSCREEN+++++++++++++++++++++(char)$28*3) Successful SSA optimization Pass2ConstantAdditionElimination Simplifying constant integer increment ++0 Simplifying constant integer increment ++0 @@ -907,16 +907,16 @@ Simplifying constant integer increment ++$2f Simplifying constant integer increment ++$30 Simplifying constant integer increment ++$31 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $78 -Finalized unsigned number type (byte) $82 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized signed number type (signed byte) -$46 -Finalized signed number type (signed byte) -$32 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $78 +Finalized unsigned number type (char) $82 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized signed number type (signed char) -$46 +Finalized signed number type (signed char) -$32 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $78+$82 Simplifying constant integer cast $28*2 @@ -946,19 +946,19 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call testUnsigned + [1] call testUnsigned to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call testUnsignedVals + [3] call testUnsignedVals to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call testSigned + [5] call testSigned to:main::@3 main::@3: scope:[main] from main::@2 [6] phi() - [7] call testSignedVals + [7] call testSignedVals to:main::@return main::@return: scope:[main] from main::@3 [8] return @@ -967,16 +967,16 @@ main::@return: scope:[main] from main::@3 void testUnsigned() testUnsigned: scope:[testUnsigned] from main [9] *SCREEN = 0 - [10] *(SCREEN+1) = TYPEID_BYTE - [11] *(SCREEN+2) = TYPEID_BYTE + [10] *(SCREEN+1) = TYPEID_CHAR + [11] *(SCREEN+2) = TYPEID_CHAR [12] *(SCREEN+3) = 0 - [13] *(SCREEN+4) = TYPEID_BYTE - [14] *(SCREEN+5) = TYPEID_BYTE - [15] *(SCREEN+6) = TYPEID_BYTE - [16] *(SCREEN+7) = TYPEID_BYTE - [17] *(SCREEN+8) = TYPEID_BYTE - [18] *(SCREEN+9) = TYPEID_BYTE - [19] *(SCREEN+$a) = TYPEID_BYTE + [13] *(SCREEN+4) = TYPEID_CHAR + [14] *(SCREEN+5) = TYPEID_CHAR + [15] *(SCREEN+6) = TYPEID_CHAR + [16] *(SCREEN+7) = TYPEID_CHAR + [17] *(SCREEN+8) = TYPEID_CHAR + [18] *(SCREEN+9) = TYPEID_CHAR + [19] *(SCREEN+$a) = TYPEID_CHAR to:testUnsigned::@return testUnsigned::@return: scope:[testUnsigned] from testUnsigned [20] return @@ -1009,16 +1009,16 @@ testUnsignedVals::@return: scope:[testUnsignedVals] from testUnsignedVals void testSigned() testSigned: scope:[testSigned] from main::@2 [39] *(SCREEN+$28*2) = 0 - [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_BYTE - [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_BYTE + [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_CHAR + [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_CHAR [42] *(SCREEN+++++++$28*2) = 0 - [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_BYTE - [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_BYTE - [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE - [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE + [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_CHAR + [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_CHAR + [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR + [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR to:testSigned::@return testSigned::@return: scope:[testSigned] from testSigned [50] return @@ -1050,24 +1050,24 @@ testSignedVals::@return: scope:[testSignedVals] from testSignedVals VARIABLE REGISTER WEIGHTS -byte idx +char idx void main() void testSigned() void testSignedVals() -signed byte~ testSignedVals::$2 22.0 -signed byte~ testSignedVals::$3 22.0 -signed byte~ testSignedVals::$4 22.0 -signed byte~ testSignedVals::$5 22.0 -signed byte~ testSignedVals::$6 22.0 -volatile signed byte testSignedVals::sbv1 loadstore 5.866666666666666 +signed char testSignedVals::$2 // 22.0 +signed char testSignedVals::$3 // 22.0 +signed char testSignedVals::$4 // 22.0 +signed char testSignedVals::$5 // 22.0 +signed char testSignedVals::$6 // 22.0 +__loadstore volatile signed char testSignedVals::sbv1 // 5.866666666666666 void testUnsigned() void testUnsignedVals() -byte~ testUnsignedVals::$2 22.0 -byte~ testUnsignedVals::$3 22.0 -byte~ testUnsignedVals::$4 22.0 -byte~ testUnsignedVals::$5 22.0 -byte~ testUnsignedVals::$6 22.0 -volatile byte testUnsignedVals::ubv1 loadstore 5.866666666666666 +char testUnsignedVals::$2 // 22.0 +char testUnsignedVals::$3 // 22.0 +char testUnsignedVals::$4 // 22.0 +char testUnsignedVals::$5 // 22.0 +char testUnsignedVals::$6 // 22.0 +__loadstore volatile char testUnsignedVals::ubv1 // 5.866666666666666 Initial phi equivalence classes Added variable testUnsignedVals::ubv1 to live range equivalence class [ testUnsignedVals::ubv1 ] @@ -1109,16 +1109,16 @@ Allocated zp[1]:12 [ testSignedVals::$5 ] Allocated zp[1]:13 [ testSignedVals::$6 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [9] *SCREEN = 0 [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [10] *(SCREEN+1) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [11] *(SCREEN+2) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [10] *(SCREEN+1) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [11] *(SCREEN+2) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a Statement [12] *(SCREEN+3) = 0 [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [13] *(SCREEN+4) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [14] *(SCREEN+5) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [15] *(SCREEN+6) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [16] *(SCREEN+7) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [17] *(SCREEN+8) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [18] *(SCREEN+9) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a -Statement [19] *(SCREEN+$a) = TYPEID_BYTE [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [13] *(SCREEN+4) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [14] *(SCREEN+5) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [15] *(SCREEN+6) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [16] *(SCREEN+7) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [17] *(SCREEN+8) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [18] *(SCREEN+9) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a +Statement [19] *(SCREEN+$a) = TYPEID_CHAR [ ] ( testUnsigned:1 [ ] { } ) always clobbers reg byte a Statement [21] testUnsignedVals::ubv1 = $fa [ testUnsignedVals::ubv1 ] ( testUnsignedVals:3 [ testUnsignedVals::ubv1 ] { } ) always clobbers reg byte a Statement [22] *(SCREEN+$28) = $fa [ testUnsignedVals::ubv1 ] ( testUnsignedVals:3 [ testUnsignedVals::ubv1 ] { } ) always clobbers reg byte a Statement [23] *(SCREEN+$29) = testUnsignedVals::ubc1 [ testUnsignedVals::ubv1 ] ( testUnsignedVals:3 [ testUnsignedVals::ubv1 ] { } ) always clobbers reg byte a @@ -1132,16 +1132,16 @@ Statement [32] testUnsignedVals::$4 = testUnsignedVals::ubv1 + testUnsignedVals: Statement [34] testUnsignedVals::$5 = testUnsignedVals::ubc1 + testUnsignedVals::ubv1 [ testUnsignedVals::ubv1 testUnsignedVals::$5 ] ( testUnsignedVals:3 [ testUnsignedVals::ubv1 testUnsignedVals::$5 ] { } ) always clobbers reg byte a Statement [36] testUnsignedVals::$6 = testUnsignedVals::ubv1 + testUnsignedVals::ubv1 [ testUnsignedVals::$6 ] ( testUnsignedVals:3 [ testUnsignedVals::$6 ] { } ) always clobbers reg byte a Statement [39] *(SCREEN+$28*2) = 0 [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a Statement [42] *(SCREEN+++++++$28*2) = 0 [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a -Statement [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a +Statement [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR [ ] ( testSigned:5 [ ] { } ) always clobbers reg byte a Statement [51] testSignedVals::sbv1 = -$78 [ testSignedVals::sbv1 ] ( testSignedVals:7 [ testSignedVals::sbv1 ] { } ) always clobbers reg byte a Statement [52] *(SSCREEN+$28*3) = -$78 [ testSignedVals::sbv1 ] ( testSignedVals:7 [ testSignedVals::sbv1 ] { } ) always clobbers reg byte a Statement [53] *(SSCREEN+++$28*3) = testSignedVals::sbc1 [ testSignedVals::sbv1 ] ( testSignedVals:7 [ testSignedVals::sbv1 ] { } ) always clobbers reg byte a @@ -1206,35 +1206,35 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 .label SCREEN = $400 .label SSCREEN = $400 .segment Code // main main: { - // [1] call testUnsigned + // [1] call testUnsigned jsr testUnsigned // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call testUnsignedVals + // [3] call testUnsignedVals jsr testUnsignedVals // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: jmp __b2 // main::@2 __b2: - // [5] call testSigned + // [5] call testSigned jsr testSigned // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [7] call testSignedVals + // [7] call testSignedVals jsr testSignedVals jmp __breturn // main::@return @@ -1247,35 +1247,35 @@ testUnsigned: { // [9] *SCREEN = 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN - // [10] *(SCREEN+1) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [10] *(SCREEN+1) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+1 - // [11] *(SCREEN+2) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [11] *(SCREEN+2) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+2 // [12] *(SCREEN+3) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+3 - // [13] *(SCREEN+4) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [13] *(SCREEN+4) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+4 - // [14] *(SCREEN+5) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [14] *(SCREEN+5) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+5 - // [15] *(SCREEN+6) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [15] *(SCREEN+6) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+6 - // [16] *(SCREEN+7) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [16] *(SCREEN+7) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+7 - // [17] *(SCREEN+8) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [17] *(SCREEN+8) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+8 - // [18] *(SCREEN+9) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [18] *(SCREEN+9) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+9 - // [19] *(SCREEN+$a) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [19] *(SCREEN+$a) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+$a jmp __breturn // testUnsigned::@return @@ -1346,35 +1346,35 @@ testSigned: { // [39] *(SCREEN+$28*2) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+$28*2 - // [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1 - // [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1 // [42] *(SCREEN+++++++$28*2) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+$28*2+1+1+1 - // [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1 - // [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1+1 - // [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1+1+1 - // [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1+1+1+1 - // [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1+1+1+1+1 - // [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1+1+1+1+1+1 - // [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1+1+1+1+1+1+1 jmp __breturn // testSigned::@return @@ -1452,21 +1452,21 @@ Removing instruction jmp __breturn Removing instruction jmp __breturn Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #TYPEID_BYTE -Removing instruction lda #TYPEID_BYTE -Removing instruction lda #TYPEID_BYTE -Removing instruction lda #TYPEID_BYTE -Removing instruction lda #TYPEID_BYTE -Removing instruction lda #TYPEID_BYTE -Removing instruction lda #TYPEID_BYTE +Removing instruction lda #TYPEID_CHAR +Removing instruction lda #TYPEID_CHAR +Removing instruction lda #TYPEID_CHAR +Removing instruction lda #TYPEID_CHAR +Removing instruction lda #TYPEID_CHAR +Removing instruction lda #TYPEID_CHAR +Removing instruction lda #TYPEID_CHAR Removing instruction lda #$fa -Removing instruction lda #TYPEID_SIGNED_BYTE -Removing instruction lda #TYPEID_SIGNED_BYTE -Removing instruction lda #TYPEID_SIGNED_BYTE -Removing instruction lda #TYPEID_SIGNED_BYTE -Removing instruction lda #TYPEID_SIGNED_BYTE -Removing instruction lda #TYPEID_SIGNED_BYTE -Removing instruction lda #TYPEID_SIGNED_BYTE +Removing instruction lda #TYPEID_SIGNED_CHAR +Removing instruction lda #TYPEID_SIGNED_CHAR +Removing instruction lda #TYPEID_SIGNED_CHAR +Removing instruction lda #TYPEID_SIGNED_CHAR +Removing instruction lda #TYPEID_SIGNED_CHAR +Removing instruction lda #TYPEID_SIGNED_CHAR +Removing instruction lda #TYPEID_SIGNED_CHAR Removing instruction lda #-$78 Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction __b1_from_main: @@ -1484,30 +1484,30 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant signed byte* const SSCREEN = (signed byte*) 1024 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_SIGNED_BYTE = 2 -byte idx +__constant char * const SCREEN = (char *) 1024 +__constant signed char * const SSCREEN = (signed char *) 1024 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_SIGNED_CHAR = 2 +char idx void main() void testSigned() void testSignedVals() -signed byte~ testSignedVals::$2 reg byte x 22.0 -signed byte~ testSignedVals::$3 reg byte x 22.0 -signed byte~ testSignedVals::$4 reg byte a 22.0 -signed byte~ testSignedVals::$5 reg byte a 22.0 -signed byte~ testSignedVals::$6 reg byte a 22.0 -constant signed byte testSignedVals::sbc1 = -$78 -volatile signed byte testSignedVals::sbv1 loadstore zp[1]:3 5.866666666666666 +signed char testSignedVals::$2 // reg byte x 22.0 +signed char testSignedVals::$3 // reg byte x 22.0 +signed char testSignedVals::$4 // reg byte a 22.0 +signed char testSignedVals::$5 // reg byte a 22.0 +signed char testSignedVals::$6 // reg byte a 22.0 +__constant signed char testSignedVals::sbc1 = -$78 +__loadstore volatile signed char testSignedVals::sbv1 // zp[1]:3 5.866666666666666 void testUnsigned() void testUnsignedVals() -byte~ testUnsignedVals::$2 reg byte x 22.0 -byte~ testUnsignedVals::$3 reg byte x 22.0 -byte~ testUnsignedVals::$4 reg byte a 22.0 -byte~ testUnsignedVals::$5 reg byte a 22.0 -byte~ testUnsignedVals::$6 reg byte a 22.0 -constant byte testUnsignedVals::ubc1 = $fa -volatile byte testUnsignedVals::ubv1 loadstore zp[1]:2 5.866666666666666 +char testUnsignedVals::$2 // reg byte x 22.0 +char testUnsignedVals::$3 // reg byte x 22.0 +char testUnsignedVals::$4 // reg byte a 22.0 +char testUnsignedVals::$5 // reg byte a 22.0 +char testUnsignedVals::$6 // reg byte a 22.0 +__constant char testUnsignedVals::ubc1 = $fa +__loadstore volatile char testUnsignedVals::ubv1 // zp[1]:2 5.866666666666666 zp[1]:2 [ testUnsignedVals::ubv1 ] reg byte x [ testUnsignedVals::$2 ] @@ -1538,30 +1538,30 @@ Score: 336 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 .label SCREEN = $400 .label SSCREEN = $400 .segment Code // main main: { // testUnsigned() - // [1] call testUnsigned + // [1] call testUnsigned jsr testUnsigned // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // testUnsignedVals() - // [3] call testUnsignedVals + // [3] call testUnsignedVals jsr testUnsignedVals // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // testSigned() - // [5] call testSigned + // [5] call testSigned jsr testSigned // [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // testSignedVals() - // [7] call testSignedVals + // [7] call testSignedVals jsr testSignedVals // main::@return // } @@ -1575,37 +1575,37 @@ testUnsigned: { lda #0 sta SCREEN // SCREEN[idx++] = typeid(ubc1) - // [10] *(SCREEN+1) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [10] *(SCREEN+1) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+1 // SCREEN[idx++] = typeid(ubv1) - // [11] *(SCREEN+2) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [11] *(SCREEN+2) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+2 // SCREEN[idx++] = typeid(120+130) // [12] *(SCREEN+3) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+3 // SCREEN[idx++] = typeid(ubc1+250) - // [13] *(SCREEN+4) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [13] *(SCREEN+4) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+4 // SCREEN[idx++] = typeid(250+ubc1) - // [14] *(SCREEN+5) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [14] *(SCREEN+5) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+5 // SCREEN[idx++] = typeid(ubv1+250) - // [15] *(SCREEN+6) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [15] *(SCREEN+6) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+6 // SCREEN[idx++] = typeid(250+ubv1) - // [16] *(SCREEN+7) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [16] *(SCREEN+7) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+7 // SCREEN[idx++] = typeid(ubv1+ubc1) - // [17] *(SCREEN+8) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [17] *(SCREEN+8) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+8 // SCREEN[idx++] = typeid(ubc1+ubv1) - // [18] *(SCREEN+9) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [18] *(SCREEN+9) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+9 // SCREEN[idx++] = typeid(ubv1+ubv1) - // [19] *(SCREEN+$a) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [19] *(SCREEN+$a) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$a // testUnsigned::@return // } @@ -1692,37 +1692,37 @@ testSigned: { lda #0 sta SCREEN+$28*2 // SCREEN[idx++] = typeid(sbc1) - // [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [40] *(SCREEN+++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1 // SCREEN[idx++] = typeid(sbv1) - // [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [41] *(SCREEN+++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1 // SCREEN[idx++] = typeid(-120+-130) // [42] *(SCREEN+++++++$28*2) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta SCREEN+$28*2+1+1+1 // SCREEN[idx++] = typeid(sbc1+-120) - // [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [43] *(SCREEN+++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$28*2+1+1+1+1 // SCREEN[idx++] = typeid(-120+sbc1) - // [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [44] *(SCREEN+++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1+1+1+1 // SCREEN[idx++] = typeid(sbv1+-120) - // [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [45] *(SCREEN+++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1+1+1+1+1 // SCREEN[idx++] = typeid(-120+sbv1) - // [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [46] *(SCREEN+++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1+1+1+1+1+1 // SCREEN[idx++] = typeid(sbv1+sbc1) - // [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [47] *(SCREEN+++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1+1+1+1+1+1+1 // SCREEN[idx++] = typeid(sbc1+sbv1) - // [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [48] *(SCREEN+++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1+1+1+1+1+1+1+1 // SCREEN[idx++] = typeid(sbv1+sbv1) - // [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 + // [49] *(SCREEN+++++++++++++++++++++$28*2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 sta SCREEN+$28*2+1+1+1+1+1+1+1+1+1+1 // testSigned::@return // } diff --git a/src/test/ref/typeid-plus-bytes.sym b/src/test/ref/typeid-plus-bytes.sym index 104a297f4..826bfa8d5 100644 --- a/src/test/ref/typeid-plus-bytes.sym +++ b/src/test/ref/typeid-plus-bytes.sym @@ -1,27 +1,27 @@ -constant byte* const SCREEN = (byte*) 1024 -constant signed byte* const SSCREEN = (signed byte*) 1024 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_SIGNED_BYTE = 2 -byte idx +__constant char * const SCREEN = (char *) 1024 +__constant signed char * const SSCREEN = (signed char *) 1024 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_SIGNED_CHAR = 2 +char idx void main() void testSigned() void testSignedVals() -signed byte~ testSignedVals::$2 reg byte x 22.0 -signed byte~ testSignedVals::$3 reg byte x 22.0 -signed byte~ testSignedVals::$4 reg byte a 22.0 -signed byte~ testSignedVals::$5 reg byte a 22.0 -signed byte~ testSignedVals::$6 reg byte a 22.0 -constant signed byte testSignedVals::sbc1 = -$78 -volatile signed byte testSignedVals::sbv1 loadstore zp[1]:3 5.866666666666666 +signed char testSignedVals::$2 // reg byte x 22.0 +signed char testSignedVals::$3 // reg byte x 22.0 +signed char testSignedVals::$4 // reg byte a 22.0 +signed char testSignedVals::$5 // reg byte a 22.0 +signed char testSignedVals::$6 // reg byte a 22.0 +__constant signed char testSignedVals::sbc1 = -$78 +__loadstore volatile signed char testSignedVals::sbv1 // zp[1]:3 5.866666666666666 void testUnsigned() void testUnsignedVals() -byte~ testUnsignedVals::$2 reg byte x 22.0 -byte~ testUnsignedVals::$3 reg byte x 22.0 -byte~ testUnsignedVals::$4 reg byte a 22.0 -byte~ testUnsignedVals::$5 reg byte a 22.0 -byte~ testUnsignedVals::$6 reg byte a 22.0 -constant byte testUnsignedVals::ubc1 = $fa -volatile byte testUnsignedVals::ubv1 loadstore zp[1]:2 5.866666666666666 +char testUnsignedVals::$2 // reg byte x 22.0 +char testUnsignedVals::$3 // reg byte x 22.0 +char testUnsignedVals::$4 // reg byte a 22.0 +char testUnsignedVals::$5 // reg byte a 22.0 +char testUnsignedVals::$6 // reg byte a 22.0 +__constant char testUnsignedVals::ubc1 = $fa +__loadstore volatile char testUnsignedVals::ubv1 // zp[1]:2 5.866666666666666 zp[1]:2 [ testUnsignedVals::ubv1 ] reg byte x [ testUnsignedVals::$2 ] diff --git a/src/test/ref/typeid-simple.asm b/src/test/ref/typeid-simple.asm index a332cc39a..25fd89df0 100644 --- a/src/test/ref/typeid-simple.asm +++ b/src/test/ref/typeid-simple.asm @@ -8,22 +8,22 @@ .segment Basic :BasicUpstart(main) .const TYPEID_VOID = 0 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .const TYPEID_BOOL = 7 - .const TYPEID_POINTER_BYTE = $11 - .const TYPEID_POINTER_SIGNED_BYTE = $12 - .const TYPEID_POINTER_WORD = $13 - .const TYPEID_POINTER_SIGNED_WORD = $14 - .const TYPEID_POINTER_DWORD = $15 - .const TYPEID_POINTER_SIGNED_DWORD = $16 + .const TYPEID_POINTER_CHAR = $11 + .const TYPEID_POINTER_SIGNED_CHAR = $12 + .const TYPEID_POINTER_UNSIGNED_INT = $13 + .const TYPEID_POINTER_INT = $14 + .const TYPEID_POINTER_UNSIGNED_LONG = $15 + .const TYPEID_POINTER_LONG = $16 .const TYPEID_POINTER_BOOL = $17 .const TYPEID_POINTER_PROCEDURE = $1f - .const TYPEID_POINTER_POINTER_BYTE = $21 + .const TYPEID_POINTER_POINTER_CHAR = $21 .segment Code main: { .label SCREEN = $400 @@ -32,44 +32,44 @@ main: { lda #TYPEID_VOID sta SCREEN // SCREEN[idx++] = typeid(byte) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+1 // SCREEN[idx++] = typeid(signed byte) - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta SCREEN+2 // SCREEN[idx++] = typeid(word) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta SCREEN+3 // SCREEN[idx++] = typeid(signed word) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta SCREEN+4 // SCREEN[idx++] = typeid(dword) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta SCREEN+5 // SCREEN[idx++] = typeid(signed dword) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta SCREEN+6 // SCREEN[idx++] = typeid(bool) lda #TYPEID_BOOL sta SCREEN+7 // SCREEN[idx++] = typeid(byte*) // Pointer types - lda #TYPEID_POINTER_BYTE + lda #TYPEID_POINTER_CHAR sta SCREEN+8 // SCREEN[idx++] = typeid(signed byte*) - lda #TYPEID_POINTER_SIGNED_BYTE + lda #TYPEID_POINTER_SIGNED_CHAR sta SCREEN+9 // SCREEN[idx++] = typeid(word*) - lda #TYPEID_POINTER_WORD + lda #TYPEID_POINTER_UNSIGNED_INT sta SCREEN+$a // SCREEN[idx++] = typeid(signed word*) - lda #TYPEID_POINTER_SIGNED_WORD + lda #TYPEID_POINTER_INT sta SCREEN+$b // SCREEN[idx++] = typeid(dword*) - lda #TYPEID_POINTER_DWORD + lda #TYPEID_POINTER_UNSIGNED_LONG sta SCREEN+$c // SCREEN[idx++] = typeid(signed dword*) - lda #TYPEID_POINTER_SIGNED_DWORD + lda #TYPEID_POINTER_LONG sta SCREEN+$d // SCREEN[idx++] = typeid(bool*) lda #TYPEID_POINTER_BOOL @@ -80,20 +80,20 @@ main: { sta SCREEN+$f // SCREEN[idx++] = typeid(byte**) // Pointer to pointer - lda #TYPEID_POINTER_POINTER_BYTE + lda #TYPEID_POINTER_POINTER_CHAR sta SCREEN+$10 // SCREEN[idx++] = typeid(char) // Test C types - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+$28 // SCREEN[idx++] = typeid(signed char) - lda #TYPEID_SIGNED_BYTE + lda #TYPEID_SIGNED_CHAR sta SCREEN+$29 // SCREEN[idx++] = typeid(unsigned char) - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+$2a // SCREEN[idx++] = typeid(short) - lda #TYPEID_SIGNED_WORD + lda #TYPEID_INT sta SCREEN+$2b // SCREEN[idx++] = typeid(short int) sta SCREEN+$2c @@ -108,21 +108,21 @@ main: { // SCREEN[idx++] = typeid(signed int) sta SCREEN+$31 // SCREEN[idx++] = typeid(unsigned short) - lda #TYPEID_WORD + lda #TYPEID_UNSIGNED_INT sta SCREEN+$32 // SCREEN[idx++] = typeid(unsigned short int) sta SCREEN+$33 // SCREEN[idx++] = typeid(unsigned int) sta SCREEN+$34 // SCREEN[idx++] = typeid(long) - lda #TYPEID_SIGNED_DWORD + lda #TYPEID_LONG sta SCREEN+$35 // SCREEN[idx++] = typeid(signed long) sta SCREEN+$36 // SCREEN[idx++] = typeid(signed long int) sta SCREEN+$37 // SCREEN[idx++] = typeid(unsigned long) - lda #TYPEID_DWORD + lda #TYPEID_UNSIGNED_LONG sta SCREEN+$38 // SCREEN[idx++] = typeid(unsigned long int) sta SCREEN+$39 diff --git a/src/test/ref/typeid-simple.cfg b/src/test/ref/typeid-simple.cfg index 7d56f62d9..aa9db9e8a 100644 --- a/src/test/ref/typeid-simple.cfg +++ b/src/test/ref/typeid-simple.cfg @@ -2,40 +2,40 @@ void main() main: scope:[main] from [0] *main::SCREEN = TYPEID_VOID - [1] *(main::SCREEN+1) = TYPEID_BYTE - [2] *(main::SCREEN+2) = TYPEID_SIGNED_BYTE - [3] *(main::SCREEN+3) = TYPEID_WORD - [4] *(main::SCREEN+4) = TYPEID_SIGNED_WORD - [5] *(main::SCREEN+5) = TYPEID_DWORD - [6] *(main::SCREEN+6) = TYPEID_SIGNED_DWORD + [1] *(main::SCREEN+1) = TYPEID_CHAR + [2] *(main::SCREEN+2) = TYPEID_SIGNED_CHAR + [3] *(main::SCREEN+3) = TYPEID_UNSIGNED_INT + [4] *(main::SCREEN+4) = TYPEID_INT + [5] *(main::SCREEN+5) = TYPEID_UNSIGNED_LONG + [6] *(main::SCREEN+6) = TYPEID_LONG [7] *(main::SCREEN+7) = TYPEID_BOOL - [8] *(main::SCREEN+8) = TYPEID_POINTER_BYTE - [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_BYTE - [10] *(main::SCREEN+$a) = TYPEID_POINTER_WORD - [11] *(main::SCREEN+$b) = TYPEID_POINTER_SIGNED_WORD - [12] *(main::SCREEN+$c) = TYPEID_POINTER_DWORD - [13] *(main::SCREEN+$d) = TYPEID_POINTER_SIGNED_DWORD + [8] *(main::SCREEN+8) = TYPEID_POINTER_CHAR + [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_CHAR + [10] *(main::SCREEN+$a) = TYPEID_POINTER_UNSIGNED_INT + [11] *(main::SCREEN+$b) = TYPEID_POINTER_INT + [12] *(main::SCREEN+$c) = TYPEID_POINTER_UNSIGNED_LONG + [13] *(main::SCREEN+$d) = TYPEID_POINTER_LONG [14] *(main::SCREEN+$e) = TYPEID_POINTER_BOOL [15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE - [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE - [17] *(main::SCREEN+$28) = TYPEID_BYTE - [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE - [19] *(main::SCREEN+$2a) = TYPEID_BYTE - [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD - [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD - [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD - [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD - [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD - [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD - [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD - [27] *(main::SCREEN+$32) = TYPEID_WORD - [28] *(main::SCREEN+$33) = TYPEID_WORD - [29] *(main::SCREEN+$34) = TYPEID_WORD - [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD - [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD - [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD - [33] *(main::SCREEN+$38) = TYPEID_DWORD - [34] *(main::SCREEN+$39) = TYPEID_DWORD + [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR + [17] *(main::SCREEN+$28) = TYPEID_CHAR + [18] *(main::SCREEN+$29) = TYPEID_SIGNED_CHAR + [19] *(main::SCREEN+$2a) = TYPEID_CHAR + [20] *(main::SCREEN+$2b) = TYPEID_INT + [21] *(main::SCREEN+$2c) = TYPEID_INT + [22] *(main::SCREEN+$2d) = TYPEID_INT + [23] *(main::SCREEN+$2e) = TYPEID_INT + [24] *(main::SCREEN+$2f) = TYPEID_INT + [25] *(main::SCREEN+$30) = TYPEID_INT + [26] *(main::SCREEN+$31) = TYPEID_INT + [27] *(main::SCREEN+$32) = TYPEID_UNSIGNED_INT + [28] *(main::SCREEN+$33) = TYPEID_UNSIGNED_INT + [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT + [30] *(main::SCREEN+$35) = TYPEID_LONG + [31] *(main::SCREEN+$36) = TYPEID_LONG + [32] *(main::SCREEN+$37) = TYPEID_LONG + [33] *(main::SCREEN+$38) = TYPEID_UNSIGNED_LONG + [34] *(main::SCREEN+$39) = TYPEID_UNSIGNED_LONG to:main::@return main::@return: scope:[main] from main [35] return diff --git a/src/test/ref/typeid-simple.log b/src/test/ref/typeid-simple.log index b04b21b50..16abe94f8 100644 --- a/src/test/ref/typeid-simple.log +++ b/src/test/ref/typeid-simple.log @@ -6,74 +6,74 @@ main: scope:[main] from __start main::idx#0 = 0 main::SCREEN[main::idx#0] = TYPEID_VOID main::idx#1 = ++ main::idx#0 - main::SCREEN[main::idx#1] = TYPEID_BYTE + main::SCREEN[main::idx#1] = TYPEID_CHAR main::idx#2 = ++ main::idx#1 - main::SCREEN[main::idx#2] = TYPEID_SIGNED_BYTE + main::SCREEN[main::idx#2] = TYPEID_SIGNED_CHAR main::idx#3 = ++ main::idx#2 - main::SCREEN[main::idx#3] = TYPEID_WORD + main::SCREEN[main::idx#3] = TYPEID_UNSIGNED_INT main::idx#4 = ++ main::idx#3 - main::SCREEN[main::idx#4] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#4] = TYPEID_INT main::idx#5 = ++ main::idx#4 - main::SCREEN[main::idx#5] = TYPEID_DWORD + main::SCREEN[main::idx#5] = TYPEID_UNSIGNED_LONG main::idx#6 = ++ main::idx#5 - main::SCREEN[main::idx#6] = TYPEID_SIGNED_DWORD + main::SCREEN[main::idx#6] = TYPEID_LONG main::idx#7 = ++ main::idx#6 main::SCREEN[main::idx#7] = TYPEID_BOOL main::idx#8 = ++ main::idx#7 - main::SCREEN[main::idx#8] = TYPEID_POINTER_BYTE + main::SCREEN[main::idx#8] = TYPEID_POINTER_CHAR main::idx#9 = ++ main::idx#8 - main::SCREEN[main::idx#9] = TYPEID_POINTER_SIGNED_BYTE + main::SCREEN[main::idx#9] = TYPEID_POINTER_SIGNED_CHAR main::idx#10 = ++ main::idx#9 - main::SCREEN[main::idx#10] = TYPEID_POINTER_WORD + main::SCREEN[main::idx#10] = TYPEID_POINTER_UNSIGNED_INT main::idx#11 = ++ main::idx#10 - main::SCREEN[main::idx#11] = TYPEID_POINTER_SIGNED_WORD + main::SCREEN[main::idx#11] = TYPEID_POINTER_INT main::idx#12 = ++ main::idx#11 - main::SCREEN[main::idx#12] = TYPEID_POINTER_DWORD + main::SCREEN[main::idx#12] = TYPEID_POINTER_UNSIGNED_LONG main::idx#13 = ++ main::idx#12 - main::SCREEN[main::idx#13] = TYPEID_POINTER_SIGNED_DWORD + main::SCREEN[main::idx#13] = TYPEID_POINTER_LONG main::idx#14 = ++ main::idx#13 main::SCREEN[main::idx#14] = TYPEID_POINTER_BOOL main::idx#15 = ++ main::idx#14 main::SCREEN[main::idx#15] = TYPEID_POINTER_PROCEDURE main::idx#16 = ++ main::idx#15 - main::SCREEN[main::idx#16] = TYPEID_POINTER_POINTER_BYTE + main::SCREEN[main::idx#16] = TYPEID_POINTER_POINTER_CHAR main::idx#17 = ++ main::idx#16 main::idx#18 = $28 - main::SCREEN[main::idx#18] = TYPEID_BYTE + main::SCREEN[main::idx#18] = TYPEID_CHAR main::idx#19 = ++ main::idx#18 - main::SCREEN[main::idx#19] = TYPEID_SIGNED_BYTE + main::SCREEN[main::idx#19] = TYPEID_SIGNED_CHAR main::idx#20 = ++ main::idx#19 - main::SCREEN[main::idx#20] = TYPEID_BYTE + main::SCREEN[main::idx#20] = TYPEID_CHAR main::idx#21 = ++ main::idx#20 - main::SCREEN[main::idx#21] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#21] = TYPEID_INT main::idx#22 = ++ main::idx#21 - main::SCREEN[main::idx#22] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#22] = TYPEID_INT main::idx#23 = ++ main::idx#22 - main::SCREEN[main::idx#23] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#23] = TYPEID_INT main::idx#24 = ++ main::idx#23 - main::SCREEN[main::idx#24] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#24] = TYPEID_INT main::idx#25 = ++ main::idx#24 - main::SCREEN[main::idx#25] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#25] = TYPEID_INT main::idx#26 = ++ main::idx#25 - main::SCREEN[main::idx#26] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#26] = TYPEID_INT main::idx#27 = ++ main::idx#26 - main::SCREEN[main::idx#27] = TYPEID_SIGNED_WORD + main::SCREEN[main::idx#27] = TYPEID_INT main::idx#28 = ++ main::idx#27 - main::SCREEN[main::idx#28] = TYPEID_WORD + main::SCREEN[main::idx#28] = TYPEID_UNSIGNED_INT main::idx#29 = ++ main::idx#28 - main::SCREEN[main::idx#29] = TYPEID_WORD + main::SCREEN[main::idx#29] = TYPEID_UNSIGNED_INT main::idx#30 = ++ main::idx#29 - main::SCREEN[main::idx#30] = TYPEID_WORD + main::SCREEN[main::idx#30] = TYPEID_UNSIGNED_INT main::idx#31 = ++ main::idx#30 - main::SCREEN[main::idx#31] = TYPEID_SIGNED_DWORD + main::SCREEN[main::idx#31] = TYPEID_LONG main::idx#32 = ++ main::idx#31 - main::SCREEN[main::idx#32] = TYPEID_SIGNED_DWORD + main::SCREEN[main::idx#32] = TYPEID_LONG main::idx#33 = ++ main::idx#32 - main::SCREEN[main::idx#33] = TYPEID_SIGNED_DWORD + main::SCREEN[main::idx#33] = TYPEID_LONG main::idx#34 = ++ main::idx#33 - main::SCREEN[main::idx#34] = TYPEID_DWORD + main::SCREEN[main::idx#34] = TYPEID_UNSIGNED_LONG main::idx#35 = ++ main::idx#34 - main::SCREEN[main::idx#35] = TYPEID_DWORD + main::SCREEN[main::idx#35] = TYPEID_UNSIGNED_LONG main::idx#36 = ++ main::idx#35 to:main::@return main::@return: scope:[main] from main @@ -82,7 +82,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -91,73 +91,73 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte TYPEID_BOOL = 7 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_POINTER_BOOL = $17 -constant byte TYPEID_POINTER_BYTE = $11 -constant byte TYPEID_POINTER_DWORD = $15 -constant byte TYPEID_POINTER_POINTER_BYTE = $21 -constant byte TYPEID_POINTER_PROCEDURE = $1f -constant byte TYPEID_POINTER_SIGNED_BYTE = $12 -constant byte TYPEID_POINTER_SIGNED_DWORD = $16 -constant byte TYPEID_POINTER_SIGNED_WORD = $14 -constant byte TYPEID_POINTER_WORD = $13 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_VOID = 0 -constant byte TYPEID_WORD = 3 +__constant char TYPEID_BOOL = 7 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_POINTER_BOOL = $17 +__constant char TYPEID_POINTER_CHAR = $11 +__constant char TYPEID_POINTER_INT = $14 +__constant char TYPEID_POINTER_LONG = $16 +__constant char TYPEID_POINTER_POINTER_CHAR = $21 +__constant char TYPEID_POINTER_PROCEDURE = $1f +__constant char TYPEID_POINTER_SIGNED_CHAR = $12 +__constant char TYPEID_POINTER_UNSIGNED_INT = $13 +__constant char TYPEID_POINTER_UNSIGNED_LONG = $15 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +__constant char TYPEID_VOID = 0 void __start() void main() -constant byte* const main::SCREEN = (byte*)$400 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#10 -byte main::idx#11 -byte main::idx#12 -byte main::idx#13 -byte main::idx#14 -byte main::idx#15 -byte main::idx#16 -byte main::idx#17 -byte main::idx#18 -byte main::idx#19 -byte main::idx#2 -byte main::idx#20 -byte main::idx#21 -byte main::idx#22 -byte main::idx#23 -byte main::idx#24 -byte main::idx#25 -byte main::idx#26 -byte main::idx#27 -byte main::idx#28 -byte main::idx#29 -byte main::idx#3 -byte main::idx#30 -byte main::idx#31 -byte main::idx#32 -byte main::idx#33 -byte main::idx#34 -byte main::idx#35 -byte main::idx#36 -byte main::idx#4 -byte main::idx#5 -byte main::idx#6 -byte main::idx#7 -byte main::idx#8 -byte main::idx#9 +__constant char * const main::SCREEN = (char *)$400 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#10 +char main::idx#11 +char main::idx#12 +char main::idx#13 +char main::idx#14 +char main::idx#15 +char main::idx#16 +char main::idx#17 +char main::idx#18 +char main::idx#19 +char main::idx#2 +char main::idx#20 +char main::idx#21 +char main::idx#22 +char main::idx#23 +char main::idx#24 +char main::idx#25 +char main::idx#26 +char main::idx#27 +char main::idx#28 +char main::idx#29 +char main::idx#3 +char main::idx#30 +char main::idx#31 +char main::idx#32 +char main::idx#33 +char main::idx#34 +char main::idx#35 +char main::idx#36 +char main::idx#4 +char main::idx#5 +char main::idx#6 +char main::idx#7 +char main::idx#8 +char main::idx#9 Adding number conversion cast (unumber) $28 in main::idx#18 = $28 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::idx#18 = (unumber)$28 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant main::idx#0 = 0 Constant main::idx#18 = $28 @@ -444,23 +444,23 @@ Simplifying constant integer increment ++$36 Simplifying constant integer increment ++$37 Simplifying constant integer increment ++$38 Successful SSA optimization Pass2ConstantSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) $11 -Finalized unsigned number type (byte) $12 -Finalized unsigned number type (byte) $13 -Finalized unsigned number type (byte) $14 -Finalized unsigned number type (byte) $15 -Finalized unsigned number type (byte) $16 -Finalized unsigned number type (byte) $17 -Finalized unsigned number type (byte) $1f -Finalized unsigned number type (byte) $21 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) $11 +Finalized unsigned number type (char) $12 +Finalized unsigned number type (char) $13 +Finalized unsigned number type (char) $14 +Finalized unsigned number type (char) $15 +Finalized unsigned number type (char) $16 +Finalized unsigned number type (char) $17 +Finalized unsigned number type (char) $1f +Finalized unsigned number type (char) $21 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -472,40 +472,40 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *main::SCREEN = TYPEID_VOID - [1] *(main::SCREEN+1) = TYPEID_BYTE - [2] *(main::SCREEN+2) = TYPEID_SIGNED_BYTE - [3] *(main::SCREEN+3) = TYPEID_WORD - [4] *(main::SCREEN+4) = TYPEID_SIGNED_WORD - [5] *(main::SCREEN+5) = TYPEID_DWORD - [6] *(main::SCREEN+6) = TYPEID_SIGNED_DWORD + [1] *(main::SCREEN+1) = TYPEID_CHAR + [2] *(main::SCREEN+2) = TYPEID_SIGNED_CHAR + [3] *(main::SCREEN+3) = TYPEID_UNSIGNED_INT + [4] *(main::SCREEN+4) = TYPEID_INT + [5] *(main::SCREEN+5) = TYPEID_UNSIGNED_LONG + [6] *(main::SCREEN+6) = TYPEID_LONG [7] *(main::SCREEN+7) = TYPEID_BOOL - [8] *(main::SCREEN+8) = TYPEID_POINTER_BYTE - [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_BYTE - [10] *(main::SCREEN+$a) = TYPEID_POINTER_WORD - [11] *(main::SCREEN+$b) = TYPEID_POINTER_SIGNED_WORD - [12] *(main::SCREEN+$c) = TYPEID_POINTER_DWORD - [13] *(main::SCREEN+$d) = TYPEID_POINTER_SIGNED_DWORD + [8] *(main::SCREEN+8) = TYPEID_POINTER_CHAR + [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_CHAR + [10] *(main::SCREEN+$a) = TYPEID_POINTER_UNSIGNED_INT + [11] *(main::SCREEN+$b) = TYPEID_POINTER_INT + [12] *(main::SCREEN+$c) = TYPEID_POINTER_UNSIGNED_LONG + [13] *(main::SCREEN+$d) = TYPEID_POINTER_LONG [14] *(main::SCREEN+$e) = TYPEID_POINTER_BOOL [15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE - [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE - [17] *(main::SCREEN+$28) = TYPEID_BYTE - [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE - [19] *(main::SCREEN+$2a) = TYPEID_BYTE - [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD - [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD - [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD - [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD - [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD - [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD - [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD - [27] *(main::SCREEN+$32) = TYPEID_WORD - [28] *(main::SCREEN+$33) = TYPEID_WORD - [29] *(main::SCREEN+$34) = TYPEID_WORD - [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD - [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD - [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD - [33] *(main::SCREEN+$38) = TYPEID_DWORD - [34] *(main::SCREEN+$39) = TYPEID_DWORD + [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR + [17] *(main::SCREEN+$28) = TYPEID_CHAR + [18] *(main::SCREEN+$29) = TYPEID_SIGNED_CHAR + [19] *(main::SCREEN+$2a) = TYPEID_CHAR + [20] *(main::SCREEN+$2b) = TYPEID_INT + [21] *(main::SCREEN+$2c) = TYPEID_INT + [22] *(main::SCREEN+$2d) = TYPEID_INT + [23] *(main::SCREEN+$2e) = TYPEID_INT + [24] *(main::SCREEN+$2f) = TYPEID_INT + [25] *(main::SCREEN+$30) = TYPEID_INT + [26] *(main::SCREEN+$31) = TYPEID_INT + [27] *(main::SCREEN+$32) = TYPEID_UNSIGNED_INT + [28] *(main::SCREEN+$33) = TYPEID_UNSIGNED_INT + [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT + [30] *(main::SCREEN+$35) = TYPEID_LONG + [31] *(main::SCREEN+$36) = TYPEID_LONG + [32] *(main::SCREEN+$37) = TYPEID_LONG + [33] *(main::SCREEN+$38) = TYPEID_UNSIGNED_LONG + [34] *(main::SCREEN+$39) = TYPEID_UNSIGNED_LONG to:main::@return main::@return: scope:[main] from main [35] return @@ -514,46 +514,46 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte main::idx +char main::idx Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *main::SCREEN = TYPEID_VOID [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *(main::SCREEN+1) = TYPEID_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] *(main::SCREEN+2) = TYPEID_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN+3) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *(main::SCREEN+4) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [5] *(main::SCREEN+5) = TYPEID_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [6] *(main::SCREEN+6) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *(main::SCREEN+1) = TYPEID_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] *(main::SCREEN+2) = TYPEID_SIGNED_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN+3) = TYPEID_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *(main::SCREEN+4) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [5] *(main::SCREEN+5) = TYPEID_UNSIGNED_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [6] *(main::SCREEN+6) = TYPEID_LONG [ ] ( [ ] { } ) always clobbers reg byte a Statement [7] *(main::SCREEN+7) = TYPEID_BOOL [ ] ( [ ] { } ) always clobbers reg byte a -Statement [8] *(main::SCREEN+8) = TYPEID_POINTER_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [10] *(main::SCREEN+$a) = TYPEID_POINTER_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] *(main::SCREEN+$b) = TYPEID_POINTER_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [12] *(main::SCREEN+$c) = TYPEID_POINTER_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [13] *(main::SCREEN+$d) = TYPEID_POINTER_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [8] *(main::SCREEN+8) = TYPEID_POINTER_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [10] *(main::SCREEN+$a) = TYPEID_POINTER_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *(main::SCREEN+$b) = TYPEID_POINTER_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [12] *(main::SCREEN+$c) = TYPEID_POINTER_UNSIGNED_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [13] *(main::SCREEN+$d) = TYPEID_POINTER_LONG [ ] ( [ ] { } ) always clobbers reg byte a Statement [14] *(main::SCREEN+$e) = TYPEID_POINTER_BOOL [ ] ( [ ] { } ) always clobbers reg byte a Statement [15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [17] *(main::SCREEN+$28) = TYPEID_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [19] *(main::SCREEN+$2a) = TYPEID_BYTE [ ] ( [ ] { } ) always clobbers reg byte a -Statement [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [27] *(main::SCREEN+$32) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [28] *(main::SCREEN+$33) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [29] *(main::SCREEN+$34) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [33] *(main::SCREEN+$38) = TYPEID_DWORD [ ] ( [ ] { } ) always clobbers reg byte a -Statement [34] *(main::SCREEN+$39) = TYPEID_DWORD [ ] ( [ ] { } ) always clobbers reg byte a +Statement [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [17] *(main::SCREEN+$28) = TYPEID_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [18] *(main::SCREEN+$29) = TYPEID_SIGNED_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [19] *(main::SCREEN+$2a) = TYPEID_CHAR [ ] ( [ ] { } ) always clobbers reg byte a +Statement [20] *(main::SCREEN+$2b) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [21] *(main::SCREEN+$2c) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [22] *(main::SCREEN+$2d) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [23] *(main::SCREEN+$2e) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [24] *(main::SCREEN+$2f) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [25] *(main::SCREEN+$30) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [26] *(main::SCREEN+$31) = TYPEID_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [27] *(main::SCREEN+$32) = TYPEID_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [28] *(main::SCREEN+$33) = TYPEID_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT [ ] ( [ ] { } ) always clobbers reg byte a +Statement [30] *(main::SCREEN+$35) = TYPEID_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [31] *(main::SCREEN+$36) = TYPEID_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [32] *(main::SCREEN+$37) = TYPEID_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [33] *(main::SCREEN+$38) = TYPEID_UNSIGNED_LONG [ ] ( [ ] { } ) always clobbers reg byte a +Statement [34] *(main::SCREEN+$39) = TYPEID_UNSIGNED_LONG [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -576,22 +576,22 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) // Global Constants & labels .const TYPEID_VOID = 0 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .const TYPEID_BOOL = 7 - .const TYPEID_POINTER_BYTE = $11 - .const TYPEID_POINTER_SIGNED_BYTE = $12 - .const TYPEID_POINTER_WORD = $13 - .const TYPEID_POINTER_SIGNED_WORD = $14 - .const TYPEID_POINTER_DWORD = $15 - .const TYPEID_POINTER_SIGNED_DWORD = $16 + .const TYPEID_POINTER_CHAR = $11 + .const TYPEID_POINTER_SIGNED_CHAR = $12 + .const TYPEID_POINTER_UNSIGNED_INT = $13 + .const TYPEID_POINTER_INT = $14 + .const TYPEID_POINTER_UNSIGNED_LONG = $15 + .const TYPEID_POINTER_LONG = $16 .const TYPEID_POINTER_BOOL = $17 .const TYPEID_POINTER_PROCEDURE = $1f - .const TYPEID_POINTER_POINTER_BYTE = $21 + .const TYPEID_POINTER_POINTER_CHAR = $21 .segment Code // main main: { @@ -600,45 +600,45 @@ main: { // Simple types lda #TYPEID_VOID sta SCREEN - // [1] *(main::SCREEN+1) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [1] *(main::SCREEN+1) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+1 - // [2] *(main::SCREEN+2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [2] *(main::SCREEN+2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+2 - // [3] *(main::SCREEN+3) = TYPEID_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_WORD + // [3] *(main::SCREEN+3) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_INT sta SCREEN+3 - // [4] *(main::SCREEN+4) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [4] *(main::SCREEN+4) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+4 - // [5] *(main::SCREEN+5) = TYPEID_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_DWORD + // [5] *(main::SCREEN+5) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_LONG sta SCREEN+5 - // [6] *(main::SCREEN+6) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_DWORD + // [6] *(main::SCREEN+6) = TYPEID_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_LONG sta SCREEN+6 // [7] *(main::SCREEN+7) = TYPEID_BOOL -- _deref_pbuc1=vbuc2 lda #TYPEID_BOOL sta SCREEN+7 - // [8] *(main::SCREEN+8) = TYPEID_POINTER_BYTE -- _deref_pbuc1=vbuc2 + // [8] *(main::SCREEN+8) = TYPEID_POINTER_CHAR -- _deref_pbuc1=vbuc2 // Pointer types - lda #TYPEID_POINTER_BYTE + lda #TYPEID_POINTER_CHAR sta SCREEN+8 - // [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_SIGNED_BYTE + // [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_SIGNED_CHAR sta SCREEN+9 - // [10] *(main::SCREEN+$a) = TYPEID_POINTER_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_WORD + // [10] *(main::SCREEN+$a) = TYPEID_POINTER_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_UNSIGNED_INT sta SCREEN+$a - // [11] *(main::SCREEN+$b) = TYPEID_POINTER_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_SIGNED_WORD + // [11] *(main::SCREEN+$b) = TYPEID_POINTER_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_INT sta SCREEN+$b - // [12] *(main::SCREEN+$c) = TYPEID_POINTER_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_DWORD + // [12] *(main::SCREEN+$c) = TYPEID_POINTER_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_UNSIGNED_LONG sta SCREEN+$c - // [13] *(main::SCREEN+$d) = TYPEID_POINTER_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_SIGNED_DWORD + // [13] *(main::SCREEN+$d) = TYPEID_POINTER_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_LONG sta SCREEN+$d // [14] *(main::SCREEN+$e) = TYPEID_POINTER_BOOL -- _deref_pbuc1=vbuc2 lda #TYPEID_POINTER_BOOL @@ -647,64 +647,64 @@ main: { // Pointer to procedure lda #TYPEID_POINTER_PROCEDURE sta SCREEN+$f - // [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE -- _deref_pbuc1=vbuc2 + // [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR -- _deref_pbuc1=vbuc2 // Pointer to pointer - lda #TYPEID_POINTER_POINTER_BYTE + lda #TYPEID_POINTER_POINTER_CHAR sta SCREEN+$10 - // [17] *(main::SCREEN+$28) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [17] *(main::SCREEN+$28) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 // Test C types - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+$28 - // [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [18] *(main::SCREEN+$29) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$29 - // [19] *(main::SCREEN+$2a) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [19] *(main::SCREEN+$2a) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+$2a - // [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [20] *(main::SCREEN+$2b) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$2b - // [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [21] *(main::SCREEN+$2c) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$2c - // [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [22] *(main::SCREEN+$2d) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$2d - // [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [23] *(main::SCREEN+$2e) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$2e - // [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [24] *(main::SCREEN+$2f) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$2f - // [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [25] *(main::SCREEN+$30) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$30 - // [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [26] *(main::SCREEN+$31) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$31 - // [27] *(main::SCREEN+$32) = TYPEID_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_WORD + // [27] *(main::SCREEN+$32) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_INT sta SCREEN+$32 - // [28] *(main::SCREEN+$33) = TYPEID_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_WORD + // [28] *(main::SCREEN+$33) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_INT sta SCREEN+$33 - // [29] *(main::SCREEN+$34) = TYPEID_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_WORD + // [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_INT sta SCREEN+$34 - // [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_DWORD + // [30] *(main::SCREEN+$35) = TYPEID_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_LONG sta SCREEN+$35 - // [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_DWORD + // [31] *(main::SCREEN+$36) = TYPEID_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_LONG sta SCREEN+$36 - // [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_DWORD + // [32] *(main::SCREEN+$37) = TYPEID_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_LONG sta SCREEN+$37 - // [33] *(main::SCREEN+$38) = TYPEID_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_DWORD + // [33] *(main::SCREEN+$38) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_LONG sta SCREEN+$38 - // [34] *(main::SCREEN+$39) = TYPEID_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_DWORD + // [34] *(main::SCREEN+$39) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_LONG sta SCREEN+$39 jmp __breturn // main::@return @@ -717,42 +717,42 @@ main: { ASSEMBLER OPTIMIZATIONS Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #TYPEID_SIGNED_WORD -Removing instruction lda #TYPEID_SIGNED_WORD -Removing instruction lda #TYPEID_SIGNED_WORD -Removing instruction lda #TYPEID_SIGNED_WORD -Removing instruction lda #TYPEID_SIGNED_WORD -Removing instruction lda #TYPEID_SIGNED_WORD -Removing instruction lda #TYPEID_WORD -Removing instruction lda #TYPEID_WORD -Removing instruction lda #TYPEID_SIGNED_DWORD -Removing instruction lda #TYPEID_SIGNED_DWORD -Removing instruction lda #TYPEID_DWORD +Removing instruction lda #TYPEID_INT +Removing instruction lda #TYPEID_INT +Removing instruction lda #TYPEID_INT +Removing instruction lda #TYPEID_INT +Removing instruction lda #TYPEID_INT +Removing instruction lda #TYPEID_INT +Removing instruction lda #TYPEID_UNSIGNED_INT +Removing instruction lda #TYPEID_UNSIGNED_INT +Removing instruction lda #TYPEID_LONG +Removing instruction lda #TYPEID_LONG +Removing instruction lda #TYPEID_UNSIGNED_LONG Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte TYPEID_BOOL = 7 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_POINTER_BOOL = $17 -constant byte TYPEID_POINTER_BYTE = $11 -constant byte TYPEID_POINTER_DWORD = $15 -constant byte TYPEID_POINTER_POINTER_BYTE = $21 -constant byte TYPEID_POINTER_PROCEDURE = $1f -constant byte TYPEID_POINTER_SIGNED_BYTE = $12 -constant byte TYPEID_POINTER_SIGNED_DWORD = $16 -constant byte TYPEID_POINTER_SIGNED_WORD = $14 -constant byte TYPEID_POINTER_WORD = $13 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_VOID = 0 -constant byte TYPEID_WORD = 3 +__constant char TYPEID_BOOL = 7 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_POINTER_BOOL = $17 +__constant char TYPEID_POINTER_CHAR = $11 +__constant char TYPEID_POINTER_INT = $14 +__constant char TYPEID_POINTER_LONG = $16 +__constant char TYPEID_POINTER_POINTER_CHAR = $21 +__constant char TYPEID_POINTER_PROCEDURE = $1f +__constant char TYPEID_POINTER_SIGNED_CHAR = $12 +__constant char TYPEID_POINTER_UNSIGNED_INT = $13 +__constant char TYPEID_POINTER_UNSIGNED_LONG = $15 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +__constant char TYPEID_VOID = 0 void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::idx +__constant char * const main::SCREEN = (char *) 1024 +char main::idx @@ -772,22 +772,22 @@ Score: 194 :BasicUpstart(main) // Global Constants & labels .const TYPEID_VOID = 0 - .const TYPEID_BYTE = 1 - .const TYPEID_SIGNED_BYTE = 2 - .const TYPEID_WORD = 3 - .const TYPEID_SIGNED_WORD = 4 - .const TYPEID_DWORD = 5 - .const TYPEID_SIGNED_DWORD = 6 + .const TYPEID_CHAR = 1 + .const TYPEID_SIGNED_CHAR = 2 + .const TYPEID_UNSIGNED_INT = 3 + .const TYPEID_INT = 4 + .const TYPEID_UNSIGNED_LONG = 5 + .const TYPEID_LONG = 6 .const TYPEID_BOOL = 7 - .const TYPEID_POINTER_BYTE = $11 - .const TYPEID_POINTER_SIGNED_BYTE = $12 - .const TYPEID_POINTER_WORD = $13 - .const TYPEID_POINTER_SIGNED_WORD = $14 - .const TYPEID_POINTER_DWORD = $15 - .const TYPEID_POINTER_SIGNED_DWORD = $16 + .const TYPEID_POINTER_CHAR = $11 + .const TYPEID_POINTER_SIGNED_CHAR = $12 + .const TYPEID_POINTER_UNSIGNED_INT = $13 + .const TYPEID_POINTER_INT = $14 + .const TYPEID_POINTER_UNSIGNED_LONG = $15 + .const TYPEID_POINTER_LONG = $16 .const TYPEID_POINTER_BOOL = $17 .const TYPEID_POINTER_PROCEDURE = $1f - .const TYPEID_POINTER_POINTER_BYTE = $21 + .const TYPEID_POINTER_POINTER_CHAR = $21 .segment Code // main main: { @@ -798,57 +798,57 @@ main: { lda #TYPEID_VOID sta SCREEN // SCREEN[idx++] = typeid(byte) - // [1] *(main::SCREEN+1) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [1] *(main::SCREEN+1) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+1 // SCREEN[idx++] = typeid(signed byte) - // [2] *(main::SCREEN+2) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [2] *(main::SCREEN+2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+2 // SCREEN[idx++] = typeid(word) - // [3] *(main::SCREEN+3) = TYPEID_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_WORD + // [3] *(main::SCREEN+3) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_INT sta SCREEN+3 // SCREEN[idx++] = typeid(signed word) - // [4] *(main::SCREEN+4) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [4] *(main::SCREEN+4) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+4 // SCREEN[idx++] = typeid(dword) - // [5] *(main::SCREEN+5) = TYPEID_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_DWORD + // [5] *(main::SCREEN+5) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_LONG sta SCREEN+5 // SCREEN[idx++] = typeid(signed dword) - // [6] *(main::SCREEN+6) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_DWORD + // [6] *(main::SCREEN+6) = TYPEID_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_LONG sta SCREEN+6 // SCREEN[idx++] = typeid(bool) // [7] *(main::SCREEN+7) = TYPEID_BOOL -- _deref_pbuc1=vbuc2 lda #TYPEID_BOOL sta SCREEN+7 // SCREEN[idx++] = typeid(byte*) - // [8] *(main::SCREEN+8) = TYPEID_POINTER_BYTE -- _deref_pbuc1=vbuc2 + // [8] *(main::SCREEN+8) = TYPEID_POINTER_CHAR -- _deref_pbuc1=vbuc2 // Pointer types - lda #TYPEID_POINTER_BYTE + lda #TYPEID_POINTER_CHAR sta SCREEN+8 // SCREEN[idx++] = typeid(signed byte*) - // [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_SIGNED_BYTE + // [9] *(main::SCREEN+9) = TYPEID_POINTER_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_SIGNED_CHAR sta SCREEN+9 // SCREEN[idx++] = typeid(word*) - // [10] *(main::SCREEN+$a) = TYPEID_POINTER_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_WORD + // [10] *(main::SCREEN+$a) = TYPEID_POINTER_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_UNSIGNED_INT sta SCREEN+$a // SCREEN[idx++] = typeid(signed word*) - // [11] *(main::SCREEN+$b) = TYPEID_POINTER_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_SIGNED_WORD + // [11] *(main::SCREEN+$b) = TYPEID_POINTER_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_INT sta SCREEN+$b // SCREEN[idx++] = typeid(dword*) - // [12] *(main::SCREEN+$c) = TYPEID_POINTER_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_DWORD + // [12] *(main::SCREEN+$c) = TYPEID_POINTER_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_UNSIGNED_LONG sta SCREEN+$c // SCREEN[idx++] = typeid(signed dword*) - // [13] *(main::SCREEN+$d) = TYPEID_POINTER_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_POINTER_SIGNED_DWORD + // [13] *(main::SCREEN+$d) = TYPEID_POINTER_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_POINTER_LONG sta SCREEN+$d // SCREEN[idx++] = typeid(bool*) // [14] *(main::SCREEN+$e) = TYPEID_POINTER_BOOL -- _deref_pbuc1=vbuc2 @@ -860,71 +860,71 @@ main: { lda #TYPEID_POINTER_PROCEDURE sta SCREEN+$f // SCREEN[idx++] = typeid(byte**) - // [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE -- _deref_pbuc1=vbuc2 + // [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR -- _deref_pbuc1=vbuc2 // Pointer to pointer - lda #TYPEID_POINTER_POINTER_BYTE + lda #TYPEID_POINTER_POINTER_CHAR sta SCREEN+$10 // SCREEN[idx++] = typeid(char) - // [17] *(main::SCREEN+$28) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 + // [17] *(main::SCREEN+$28) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 // Test C types - lda #TYPEID_BYTE + lda #TYPEID_CHAR sta SCREEN+$28 // SCREEN[idx++] = typeid(signed char) - // [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_BYTE + // [18] *(main::SCREEN+$29) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_SIGNED_CHAR sta SCREEN+$29 // SCREEN[idx++] = typeid(unsigned char) - // [19] *(main::SCREEN+$2a) = TYPEID_BYTE -- _deref_pbuc1=vbuc2 - lda #TYPEID_BYTE + // [19] *(main::SCREEN+$2a) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 + lda #TYPEID_CHAR sta SCREEN+$2a // SCREEN[idx++] = typeid(short) - // [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_WORD + // [20] *(main::SCREEN+$2b) = TYPEID_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_INT sta SCREEN+$2b // SCREEN[idx++] = typeid(short int) - // [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 + // [21] *(main::SCREEN+$2c) = TYPEID_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$2c // SCREEN[idx++] = typeid(signed) - // [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 + // [22] *(main::SCREEN+$2d) = TYPEID_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$2d // SCREEN[idx++] = typeid(int) - // [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 + // [23] *(main::SCREEN+$2e) = TYPEID_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$2e // SCREEN[idx++] = typeid(signed short) - // [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 + // [24] *(main::SCREEN+$2f) = TYPEID_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$2f // SCREEN[idx++] = typeid(signed short int) - // [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 + // [25] *(main::SCREEN+$30) = TYPEID_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$30 // SCREEN[idx++] = typeid(signed int) - // [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2 + // [26] *(main::SCREEN+$31) = TYPEID_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$31 // SCREEN[idx++] = typeid(unsigned short) - // [27] *(main::SCREEN+$32) = TYPEID_WORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_WORD + // [27] *(main::SCREEN+$32) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_INT sta SCREEN+$32 // SCREEN[idx++] = typeid(unsigned short int) - // [28] *(main::SCREEN+$33) = TYPEID_WORD -- _deref_pbuc1=vbuc2 + // [28] *(main::SCREEN+$33) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$33 // SCREEN[idx++] = typeid(unsigned int) - // [29] *(main::SCREEN+$34) = TYPEID_WORD -- _deref_pbuc1=vbuc2 + // [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 sta SCREEN+$34 // SCREEN[idx++] = typeid(long) - // [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_SIGNED_DWORD + // [30] *(main::SCREEN+$35) = TYPEID_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_LONG sta SCREEN+$35 // SCREEN[idx++] = typeid(signed long) - // [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 + // [31] *(main::SCREEN+$36) = TYPEID_LONG -- _deref_pbuc1=vbuc2 sta SCREEN+$36 // SCREEN[idx++] = typeid(signed long int) - // [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2 + // [32] *(main::SCREEN+$37) = TYPEID_LONG -- _deref_pbuc1=vbuc2 sta SCREEN+$37 // SCREEN[idx++] = typeid(unsigned long) - // [33] *(main::SCREEN+$38) = TYPEID_DWORD -- _deref_pbuc1=vbuc2 - lda #TYPEID_DWORD + // [33] *(main::SCREEN+$38) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 + lda #TYPEID_UNSIGNED_LONG sta SCREEN+$38 // SCREEN[idx++] = typeid(unsigned long int) - // [34] *(main::SCREEN+$39) = TYPEID_DWORD -- _deref_pbuc1=vbuc2 + // [34] *(main::SCREEN+$39) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 sta SCREEN+$39 // main::@return // } diff --git a/src/test/ref/typeid-simple.sym b/src/test/ref/typeid-simple.sym index 0a649e8ea..278dcf3af 100644 --- a/src/test/ref/typeid-simple.sym +++ b/src/test/ref/typeid-simple.sym @@ -1,21 +1,21 @@ -constant byte TYPEID_BOOL = 7 -constant byte TYPEID_BYTE = 1 -constant byte TYPEID_DWORD = 5 -constant byte TYPEID_POINTER_BOOL = $17 -constant byte TYPEID_POINTER_BYTE = $11 -constant byte TYPEID_POINTER_DWORD = $15 -constant byte TYPEID_POINTER_POINTER_BYTE = $21 -constant byte TYPEID_POINTER_PROCEDURE = $1f -constant byte TYPEID_POINTER_SIGNED_BYTE = $12 -constant byte TYPEID_POINTER_SIGNED_DWORD = $16 -constant byte TYPEID_POINTER_SIGNED_WORD = $14 -constant byte TYPEID_POINTER_WORD = $13 -constant byte TYPEID_SIGNED_BYTE = 2 -constant byte TYPEID_SIGNED_DWORD = 6 -constant byte TYPEID_SIGNED_WORD = 4 -constant byte TYPEID_VOID = 0 -constant byte TYPEID_WORD = 3 +__constant char TYPEID_BOOL = 7 +__constant char TYPEID_CHAR = 1 +__constant char TYPEID_INT = 4 +__constant char TYPEID_LONG = 6 +__constant char TYPEID_POINTER_BOOL = $17 +__constant char TYPEID_POINTER_CHAR = $11 +__constant char TYPEID_POINTER_INT = $14 +__constant char TYPEID_POINTER_LONG = $16 +__constant char TYPEID_POINTER_POINTER_CHAR = $21 +__constant char TYPEID_POINTER_PROCEDURE = $1f +__constant char TYPEID_POINTER_SIGNED_CHAR = $12 +__constant char TYPEID_POINTER_UNSIGNED_INT = $13 +__constant char TYPEID_POINTER_UNSIGNED_LONG = $15 +__constant char TYPEID_SIGNED_CHAR = 2 +__constant char TYPEID_UNSIGNED_INT = 3 +__constant char TYPEID_UNSIGNED_LONG = 5 +__constant char TYPEID_VOID = 0 void main() -constant byte* const main::SCREEN = (byte*) 1024 -byte main::idx +__constant char * const main::SCREEN = (char *) 1024 +char main::idx diff --git a/src/test/ref/typeinference-problem.log b/src/test/ref/typeinference-problem.log index 75c9030e8..c5aa60447 100644 --- a/src/test/ref/typeinference-problem.log +++ b/src/test/ref/typeinference-problem.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,13 +30,13 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant byte* table[$100] = { fill( $100, 0) } +number main::$0 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant char table[$100] = { fill( $100, 0) } Adding number conversion cast (unumber) $ff in main::$0 = $ff - main::i#2 Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)$ff - main::i#2 @@ -47,10 +47,10 @@ Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $ff Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = $ff - main::i#2 +Inferred type updated to char in main::$0 = $ff - main::i#2 Simple Condition main::$1 [6] if(main::i#1!=rangelast(0,$80)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 @@ -66,13 +66,13 @@ Adding number conversion cast (unumber) $81 in [4] if(main::i#1!=$81) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $81 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $81 +Finalized unsigned number type (char) $81 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -104,10 +104,10 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::$0 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -199,11 +199,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte x 22.0 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -constant byte* table[$100] = { fill( $100, 0) } +char main::$0 // reg byte x 22.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +__constant char table[$100] = { fill( $100, 0) } reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/typeinference-problem.sym b/src/test/ref/typeinference-problem.sym index 794223f1b..e1e45aada 100644 --- a/src/test/ref/typeinference-problem.sym +++ b/src/test/ref/typeinference-problem.sym @@ -1,9 +1,9 @@ void main() -byte~ main::$0 reg byte x 22.0 -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -constant byte* table[$100] = { fill( $100, 0) } +char main::$0 // reg byte x 22.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +__constant char table[$100] = { fill( $100, 0) } reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::$0 ] diff --git a/src/test/ref/unary-plus.asm b/src/test/ref/unary-plus.asm index b4279d51e..e6b1bebca 100644 --- a/src/test/ref/unary-plus.asm +++ b/src/test/ref/unary-plus.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code main: { .const i = 3 @@ -27,9 +27,9 @@ main: { sta SCREEN2+1 // SCREEN2[1] = +3 lda #<3 - sta SCREEN2+1*SIZEOF_SIGNED_WORD + sta SCREEN2+1*SIZEOF_INT lda #>3 - sta SCREEN2+1*SIZEOF_SIGNED_WORD+1 + sta SCREEN2+1*SIZEOF_INT+1 // } rts } diff --git a/src/test/ref/unary-plus.cfg b/src/test/ref/unary-plus.cfg index 9a6875bcc..60caf62a2 100644 --- a/src/test/ref/unary-plus.cfg +++ b/src/test/ref/unary-plus.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] *main::SCREEN = main::i [1] *(main::SCREEN+1) = +3 [2] *main::SCREEN2 = main::j - [3] *(main::SCREEN2+1*SIZEOF_SIGNED_WORD) = (signed byte)+3 + [3] *(main::SCREEN2+1*SIZEOF_INT) = (signed char)+3 to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/unary-plus.log b/src/test/ref/unary-plus.log index 76ff415cc..9b1fd21c2 100644 --- a/src/test/ref/unary-plus.log +++ b/src/test/ref/unary-plus.log @@ -5,9 +5,9 @@ void main() main: scope:[main] from __start main::SCREEN[0] = main::i main::SCREEN[1] = +3 - main::$0 = 0 * SIZEOF_SIGNED_WORD + main::$0 = 0 * SIZEOF_INT main::SCREEN2[main::$0] = main::j - main::$1 = 1 * SIZEOF_SIGNED_WORD + main::$1 = 1 * SIZEOF_INT main::SCREEN2[main::$1] = +3 to:main::@return main::@return: scope:[main] from main @@ -16,7 +16,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -25,51 +25,51 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void __start() void main() -number~ main::$0 -number~ main::$1 -constant byte* main::SCREEN = (byte*)$400 -constant signed word* main::SCREEN2 = (signed word*)$428 -constant byte main::i = (byte)+3 -constant signed word main::j = (signed word)+3 +number main::$0 +number main::$1 +__constant char *main::SCREEN = (char *)$400 +__constant int *main::SCREEN2 = (int *)$428 +__constant char main::i = (char)+3 +__constant int main::j = (int)+3 Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::i Adding number conversion cast (unumber) +3 in main::SCREEN[1] = +3 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = ((unumber)) +3 -Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) 1 in main::$1 = 1 * SIZEOF_SIGNED_WORD -Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)1 * SIZEOF_SIGNED_WORD +Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_INT +Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_INT +Adding number conversion cast (unumber) 1 in main::$1 = 1 * SIZEOF_INT +Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)1 * SIZEOF_INT Adding number conversion cast (snumber) +3 in main::SCREEN2[main::$1] = +3 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::SCREEN[(unumber)1] = (unumber)+3 Inlining cast main::SCREEN2[main::$1] = (snumber)+3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (signed word*) 1064 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (int *) 1064 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_SIGNED_WORD -Inferred type updated to byte in main::$1 = 1 * SIZEOF_SIGNED_WORD +Inferred type updated to char in main::$0 = 0 * SIZEOF_INT +Inferred type updated to char in main::$1 = 1 * SIZEOF_INT Constant right-side identified [1] main::SCREEN[1] = (unumber)+3 -Constant right-side identified [2] main::$0 = 0 * SIZEOF_SIGNED_WORD -Constant right-side identified [4] main::$1 = 1 * SIZEOF_SIGNED_WORD +Constant right-side identified [2] main::$0 = 0 * SIZEOF_INT +Constant right-side identified [4] main::$1 = 1 * SIZEOF_INT Constant right-side identified [5] main::SCREEN2[main::$1] = (snumber)+3 Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$0 = 0*SIZEOF_SIGNED_WORD -Constant main::$1 = 1*SIZEOF_SIGNED_WORD +Constant main::$0 = 0*SIZEOF_INT +Constant main::$1 = 1*SIZEOF_INT Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_SIGNED_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [0] main::SCREEN[0] = main::i Simplifying expression containing zero main::SCREEN2 in [3] main::SCREEN2[main::$0] = main::j @@ -81,15 +81,15 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$1 = 1*SIZEOF_SIGNED_WORD +Constant inlined main::$1 = 1*SIZEOF_INT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) -Consolidated array index constant in *(main::SCREEN2+1*SIZEOF_SIGNED_WORD) +Consolidated array index constant in *(main::SCREEN2+1*SIZEOF_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast +3 Simplifying constant integer cast +3 @@ -106,7 +106,7 @@ main: scope:[main] from [0] *main::SCREEN = main::i [1] *(main::SCREEN+1) = +3 [2] *main::SCREEN2 = main::j - [3] *(main::SCREEN2+1*SIZEOF_SIGNED_WORD) = (signed byte)+3 + [3] *(main::SCREEN2+1*SIZEOF_INT) = (signed char)+3 to:main::@return main::@return: scope:[main] from main [4] return @@ -122,7 +122,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] *main::SCREEN = main::i [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *(main::SCREEN+1) = +3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *main::SCREEN2 = main::j [ ] ( [ ] { } ) always clobbers reg byte a -Statement [3] *(main::SCREEN2+1*SIZEOF_SIGNED_WORD) = (signed byte)+3 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [3] *(main::SCREEN2+1*SIZEOF_INT) = (signed char)+3 [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [main] @@ -144,7 +144,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code // main main: { @@ -163,11 +163,11 @@ main: { sta SCREEN2 lda #>j sta SCREEN2+1 - // [3] *(main::SCREEN2+1*SIZEOF_SIGNED_WORD) = (signed byte)+3 -- _deref_pwsc1=vbsc2 + // [3] *(main::SCREEN2+1*SIZEOF_INT) = (signed char)+3 -- _deref_pwsc1=vbsc2 lda #<3 - sta SCREEN2+1*SIZEOF_SIGNED_WORD + sta SCREEN2+1*SIZEOF_INT lda #>3 - sta SCREEN2+1*SIZEOF_SIGNED_WORD+1 + sta SCREEN2+1*SIZEOF_INT+1 jmp __breturn // main::@return __breturn: @@ -183,12 +183,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void main() -constant byte* main::SCREEN = (byte*) 1024 -constant signed word* main::SCREEN2 = (signed word*) 1064 -constant byte main::i = +3 -constant signed word main::j = (signed word)+3 +__constant char *main::SCREEN = (char *) 1024 +__constant int *main::SCREEN2 = (int *) 1064 +__constant char main::i = +3 +__constant int main::j = (int)+3 @@ -207,7 +207,7 @@ Score: 42 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_SIGNED_WORD = 2 + .const SIZEOF_INT = 2 .segment Code // main main: { @@ -230,11 +230,11 @@ main: { lda #>j sta SCREEN2+1 // SCREEN2[1] = +3 - // [3] *(main::SCREEN2+1*SIZEOF_SIGNED_WORD) = (signed byte)+3 -- _deref_pwsc1=vbsc2 + // [3] *(main::SCREEN2+1*SIZEOF_INT) = (signed char)+3 -- _deref_pwsc1=vbsc2 lda #<3 - sta SCREEN2+1*SIZEOF_SIGNED_WORD + sta SCREEN2+1*SIZEOF_INT lda #>3 - sta SCREEN2+1*SIZEOF_SIGNED_WORD+1 + sta SCREEN2+1*SIZEOF_INT+1 // main::@return // } // [4] return diff --git a/src/test/ref/unary-plus.sym b/src/test/ref/unary-plus.sym index 7298a2c9f..4799b7b7b 100644 --- a/src/test/ref/unary-plus.sym +++ b/src/test/ref/unary-plus.sym @@ -1,7 +1,7 @@ -constant byte SIZEOF_SIGNED_WORD = 2 +__constant char SIZEOF_INT = 2 void main() -constant byte* main::SCREEN = (byte*) 1024 -constant signed word* main::SCREEN2 = (signed word*) 1064 -constant byte main::i = +3 -constant signed word main::j = (signed word)+3 +__constant char *main::SCREEN = (char *) 1024 +__constant int *main::SCREEN2 = (int *) 1064 +__constant char main::i = +3 +__constant int main::j = (int)+3 diff --git a/src/test/ref/uninitialized.log b/src/test/ref/uninitialized.log index 957439a83..99dbc1ecf 100644 --- a/src/test/ref/uninitialized.log +++ b/src/test/ref/uninitialized.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -33,16 +33,16 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -constant byte b = 0 +__constant char b = 0 void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -constant byte* ptr = (byte*) 0 -constant word w = 0 +char main::$0 +char main::$1 +char main::$2 +char main::$3 +__constant char *ptr = (char *) 0 +__constant unsigned int w = 0 Adding number conversion cast (unumber) 0 in SCREEN[0] = b Adding number conversion cast (unumber) 2 in SCREEN[2] = main::$0 @@ -50,18 +50,18 @@ Adding number conversion cast (unumber) 3 in SCREEN[3] = main::$1 Adding number conversion cast (unumber) 5 in SCREEN[5] = main::$2 Adding number conversion cast (unumber) 5 in SCREEN[5] = main::$3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 5 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [1] main::$0 = byte0 w Constant right-side identified [3] main::$1 = byte1 w @@ -191,8 +191,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte b = 0 +__constant char * const SCREEN = (char *) 1024 +__constant char b = 0 void main() diff --git a/src/test/ref/uninitialized.sym b/src/test/ref/uninitialized.sym index 1e35e7c29..17cc46eec 100644 --- a/src/test/ref/uninitialized.sym +++ b/src/test/ref/uninitialized.sym @@ -1,4 +1,4 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte b = 0 +__constant char * const SCREEN = (char *) 1024 +__constant char b = 0 void main() diff --git a/src/test/ref/union-0.cfg b/src/test/ref/union-0.cfg index 7b80a0ca8..d0567e7cb 100644 --- a/src/test/ref/union-0.cfg +++ b/src/test/ref/union-0.cfg @@ -1,8 +1,8 @@ void main() main: scope:[main] from - [0] *((word*)&data) = $4d2 - [1] *SCREEN = *((byte*)&data) + [0] *((unsigned int *)&data) = $4d2 + [1] *SCREEN = *((char *)&data) to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/union-0.log b/src/test/ref/union-0.log index 2fa0326e3..e05758a59 100644 --- a/src/test/ref/union-0.log +++ b/src/test/ref/union-0.log @@ -3,8 +3,8 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((word*)&data+OFFSET_UNION_DATA_W) = $4d2 - SCREEN[0] = *((byte*)&data+OFFSET_UNION_DATA_B) + *((unsigned int *)&data+OFFSET_UNION_DATA_W) = $4d2 + SCREEN[0] = *((char *)&data+OFFSET_UNION_DATA_B) to:main::@return main::@return: scope:[main] from main return @@ -12,7 +12,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -21,28 +21,28 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_DATA_B = 0 -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_UNION_DATA_B = 0 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 void __start() -union Data data loadstore = {} +__loadstore union Data data = {} void main() -Adding number conversion cast (unumber) $4d2 in *((word*)&data+OFFSET_UNION_DATA_W) = $4d2 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&data+OFFSET_UNION_DATA_B) +Adding number conversion cast (unumber) $4d2 in *((unsigned int *)&data+OFFSET_UNION_DATA_W) = $4d2 +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&data+OFFSET_UNION_DATA_B) Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((word*)&data+OFFSET_UNION_DATA_W) = (unumber)$4d2 +Inlining cast *((unsigned int *)&data+OFFSET_UNION_DATA_W) = (unumber)$4d2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $4d2 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $4d2 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (unsigned int) $4d2 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (word*)&data in [0] *((word*)&data+OFFSET_UNION_DATA_W) = $4d2 -Simplifying expression containing zero (byte*)&data in [1] SCREEN[0] = *((byte*)&data+OFFSET_UNION_DATA_B) -Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((byte*)&data) +Simplifying expression containing zero (unsigned int *)&data in [0] *((unsigned int *)&data+OFFSET_UNION_DATA_W) = $4d2 +Simplifying expression containing zero (char *)&data in [1] SCREEN[0] = *((char *)&data+OFFSET_UNION_DATA_B) +Simplifying expression containing zero SCREEN in [1] SCREEN[0] = *((char *)&data) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_UNION_DATA_W Eliminating unused constant OFFSET_UNION_DATA_B @@ -61,8 +61,8 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((word*)&data) = $4d2 - [1] *SCREEN = *((byte*)&data) + [0] *((unsigned int *)&data) = $4d2 + [1] *SCREEN = *((char *)&data) to:main::@return main::@return: scope:[main] from main [2] return @@ -70,7 +70,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -union Data data loadstore = {} +__loadstore union Data data = {} void main() Initial phi equivalence classes @@ -79,8 +79,8 @@ Complete equivalence classes [ data ] Allocated mem[2] [ data ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((word*)&data) = $4d2 [ data ] ( [ data ] { } ) always clobbers reg byte a -Statement [1] *SCREEN = *((byte*)&data) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((unsigned int *)&data) = $4d2 [ data ] ( [ data ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *((char *)&data) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[2] [ data ] : mem[2] , REGISTER UPLIFT SCOPES @@ -110,12 +110,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((word*)&data) = $4d2 -- _deref_pwuc1=vwuc2 + // [0] *((unsigned int *)&data) = $4d2 -- _deref_pwuc1=vwuc2 lda #<$4d2 sta data lda #>$4d2 sta data+1 - // [1] *SCREEN = *((byte*)&data) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&data) -- _deref_pbuc1=_deref_pbuc2 lda data sta SCREEN jmp __breturn @@ -135,9 +135,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_DATA = 2 -union Data data loadstore mem[2] = {} +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_DATA = 2 +__loadstore union Data data = {} // mem[2] void main() mem[2] [ data ] @@ -164,13 +164,13 @@ Score: 26 // main main: { // data.w = 1234 - // [0] *((word*)&data) = $4d2 -- _deref_pwuc1=vwuc2 + // [0] *((unsigned int *)&data) = $4d2 -- _deref_pwuc1=vwuc2 lda #<$4d2 sta data lda #>$4d2 sta data+1 // SCREEN[0] = data.b - // [1] *SCREEN = *((byte*)&data) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&data) -- _deref_pbuc1=_deref_pbuc2 lda data sta SCREEN // main::@return diff --git a/src/test/ref/union-0.sym b/src/test/ref/union-0.sym index 64a6b0f4b..019ac0de1 100644 --- a/src/test/ref/union-0.sym +++ b/src/test/ref/union-0.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_DATA = 2 -union Data data loadstore mem[2] = {} +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_DATA = 2 +__loadstore union Data data = {} // mem[2] void main() mem[2] [ data ] diff --git a/src/test/ref/union-1.cfg b/src/test/ref/union-1.cfg index 66d69e2b1..ac886f5e0 100644 --- a/src/test/ref/union-1.cfg +++ b/src/test/ref/union-1.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *((byte*)&jig) = WORD - [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 - [2] *SCREEN = *((byte*)&jig) - [3] *SCREEN = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) + [0] *((char *)&jig) = WORD + [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 + [2] *SCREEN = *((char *)&jig) + [3] *SCREEN = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/union-1.log b/src/test/ref/union-1.log index 5c80a959c..ae704b708 100644 --- a/src/test/ref/union-1.log +++ b/src/test/ref/union-1.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD - *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $4d2 - SCREEN[0] = *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) - SCREEN[0] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) + *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD + *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $4d2 + SCREEN[0] = *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) + SCREEN[0] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) to:main::@return main::@return: scope:[main] from main return @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,37 +23,37 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_JIG_DATA = 1 -constant byte OFFSET_STRUCT_JIG_TYPE = 0 -constant byte OFFSET_UNION_DATA_B = 0 -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte WORD = 1 +__constant char OFFSET_STRUCT_JIG_DATA = 1 +__constant char OFFSET_STRUCT_JIG_TYPE = 0 +__constant char OFFSET_UNION_DATA_B = 0 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 +__constant char WORD = 1 void __start() -struct Jig jig loadstore = {} +__loadstore struct Jig jig = {} void main() -Adding number conversion cast (unumber) $4d2 in *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $4d2 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) +Adding number conversion cast (unumber) $4d2 in *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $4d2 +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = (unumber)$4d2 +Inlining cast *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = (unumber)$4d2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $4d2 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $4d2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (unsigned int) $4d2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&jig in [0] *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD -Simplifying expression containing zero (word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA in [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $4d2 -Simplifying expression containing zero (byte*)&jig in [2] SCREEN[0] = *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) -Simplifying expression containing zero SCREEN in [2] SCREEN[0] = *((byte*)&jig) -Simplifying expression containing zero (byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA in [3] SCREEN[0] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) -Simplifying expression containing zero SCREEN in [3] SCREEN[0] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) +Simplifying expression containing zero (char *)&jig in [0] *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD +Simplifying expression containing zero (unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA in [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $4d2 +Simplifying expression containing zero (char *)&jig in [2] SCREEN[0] = *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) +Simplifying expression containing zero SCREEN in [2] SCREEN[0] = *((char *)&jig) +Simplifying expression containing zero (char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA in [3] SCREEN[0] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) +Simplifying expression containing zero SCREEN in [3] SCREEN[0] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_JIG_TYPE Eliminating unused constant OFFSET_UNION_DATA_W @@ -73,10 +73,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)&jig) = WORD - [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 - [2] *SCREEN = *((byte*)&jig) - [3] *SCREEN = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) + [0] *((char *)&jig) = WORD + [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 + [2] *SCREEN = *((char *)&jig) + [3] *SCREEN = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) to:main::@return main::@return: scope:[main] from main [4] return @@ -84,7 +84,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -struct Jig jig loadstore = {} +__loadstore struct Jig jig = {} void main() Initial phi equivalence classes @@ -93,10 +93,10 @@ Complete equivalence classes [ jig ] Allocated mem[3] [ jig ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)&jig) = WORD [ jig ] ( [ jig ] { } ) always clobbers reg byte a -Statement [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 [ jig ] ( [ jig ] { } ) always clobbers reg byte a -Statement [2] *SCREEN = *((byte*)&jig) [ jig ] ( [ jig ] { } ) always clobbers reg byte a -Statement [3] *SCREEN = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)&jig) = WORD [ jig ] ( [ jig ] { } ) always clobbers reg byte a +Statement [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 [ jig ] ( [ jig ] { } ) always clobbers reg byte a +Statement [2] *SCREEN = *((char *)&jig) [ jig ] ( [ jig ] { } ) always clobbers reg byte a +Statement [3] *SCREEN = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[3] [ jig ] : mem[3] , REGISTER UPLIFT SCOPES @@ -132,18 +132,18 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)&jig) = WORD -- _deref_pbuc1=vbuc2 + // [0] *((char *)&jig) = WORD -- _deref_pbuc1=vbuc2 lda #WORD sta jig - // [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 -- _deref_pwuc1=vwuc2 + // [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 -- _deref_pwuc1=vwuc2 lda #<$4d2 sta jig+OFFSET_STRUCT_JIG_DATA lda #>$4d2 sta jig+OFFSET_STRUCT_JIG_DATA+1 - // [2] *SCREEN = *((byte*)&jig) -- _deref_pbuc1=_deref_pbuc2 + // [2] *SCREEN = *((char *)&jig) -- _deref_pbuc1=_deref_pbuc2 lda jig sta SCREEN - // [3] *SCREEN = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 + // [3] *SCREEN = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 lda jig+OFFSET_STRUCT_JIG_DATA sta SCREEN jmp __breturn @@ -163,11 +163,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_JIG_DATA = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_JIG = 3 -constant byte WORD = 1 -struct Jig jig loadstore mem[3] = {} +__constant char OFFSET_STRUCT_JIG_DATA = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_JIG = 3 +__constant char WORD = 1 +__loadstore struct Jig jig = {} // mem[3] void main() mem[3] [ jig ] @@ -196,21 +196,21 @@ Score: 40 // main main: { // jig.type = WORD - // [0] *((byte*)&jig) = WORD -- _deref_pbuc1=vbuc2 + // [0] *((char *)&jig) = WORD -- _deref_pbuc1=vbuc2 lda #WORD sta jig // jig.data.w = 1234 - // [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 -- _deref_pwuc1=vwuc2 + // [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $4d2 -- _deref_pwuc1=vwuc2 lda #<$4d2 sta jig+OFFSET_STRUCT_JIG_DATA lda #>$4d2 sta jig+OFFSET_STRUCT_JIG_DATA+1 // SCREEN[0] = jig.type - // [2] *SCREEN = *((byte*)&jig) -- _deref_pbuc1=_deref_pbuc2 + // [2] *SCREEN = *((char *)&jig) -- _deref_pbuc1=_deref_pbuc2 lda jig sta SCREEN // SCREEN[0] = jig.data.b - // [3] *SCREEN = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 + // [3] *SCREEN = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 lda jig+OFFSET_STRUCT_JIG_DATA sta SCREEN // main::@return diff --git a/src/test/ref/union-1.sym b/src/test/ref/union-1.sym index b3e8dc14f..28255984e 100644 --- a/src/test/ref/union-1.sym +++ b/src/test/ref/union-1.sym @@ -1,8 +1,8 @@ -constant byte OFFSET_STRUCT_JIG_DATA = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_JIG = 3 -constant byte WORD = 1 -struct Jig jig loadstore mem[3] = {} +__constant char OFFSET_STRUCT_JIG_DATA = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_JIG = 3 +__constant char WORD = 1 +__loadstore struct Jig jig = {} // mem[3] void main() mem[3] [ jig ] diff --git a/src/test/ref/union-2.cfg b/src/test/ref/union-2.cfg index 604b6b6cf..d3d1bb88f 100644 --- a/src/test/ref/union-2.cfg +++ b/src/test/ref/union-2.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *((byte*)&jig) = WORD - [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 - [2] *SCREEN = *((byte*)&jig) - [3] *(SCREEN+1) = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) + [0] *((char *)&jig) = WORD + [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 + [2] *SCREEN = *((char *)&jig) + [3] *(SCREEN+1) = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/union-2.log b/src/test/ref/union-2.log index 66cf2eacd..c242843af 100644 --- a/src/test/ref/union-2.log +++ b/src/test/ref/union-2.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD - *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $1234 - SCREEN[0] = *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) - SCREEN[1] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) + *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD + *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $1234 + SCREEN[0] = *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) + SCREEN[1] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) to:main::@return main::@return: scope:[main] from main return @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,36 +23,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_JIG_DATA = 1 -constant byte OFFSET_STRUCT_JIG_TYPE = 0 -constant byte OFFSET_UNION_DATA_B = 0 -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte WORD = 1 +__constant char OFFSET_STRUCT_JIG_DATA = 1 +__constant char OFFSET_STRUCT_JIG_TYPE = 0 +__constant char OFFSET_UNION_DATA_B = 0 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 +__constant char WORD = 1 void __start() -struct Jig jig loadstore = {} +__loadstore struct Jig jig = {} void main() -Adding number conversion cast (unumber) $1234 in *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $1234 -Adding number conversion cast (unumber) 0 in SCREEN[0] = *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) -Adding number conversion cast (unumber) 1 in SCREEN[1] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) +Adding number conversion cast (unumber) $1234 in *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $1234 +Adding number conversion cast (unumber) 0 in SCREEN[0] = *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) +Adding number conversion cast (unumber) 1 in SCREEN[1] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = (unumber)$1234 +Inlining cast *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = (unumber)$1234 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $1234 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $1234 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (unsigned int) $1234 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&jig in [0] *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD -Simplifying expression containing zero (word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA in [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $1234 -Simplifying expression containing zero (byte*)&jig in [2] SCREEN[0] = *((byte*)&jig+OFFSET_STRUCT_JIG_TYPE) -Simplifying expression containing zero SCREEN in [2] SCREEN[0] = *((byte*)&jig) -Simplifying expression containing zero (byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA in [3] SCREEN[1] = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) +Simplifying expression containing zero (char *)&jig in [0] *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) = WORD +Simplifying expression containing zero (unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA in [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_W) = $1234 +Simplifying expression containing zero (char *)&jig in [2] SCREEN[0] = *((char *)&jig+OFFSET_STRUCT_JIG_TYPE) +Simplifying expression containing zero SCREEN in [2] SCREEN[0] = *((char *)&jig) +Simplifying expression containing zero (char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA in [3] SCREEN[1] = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA+OFFSET_UNION_DATA_B) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_STRUCT_JIG_TYPE Eliminating unused constant OFFSET_UNION_DATA_W @@ -74,10 +74,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)&jig) = WORD - [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 - [2] *SCREEN = *((byte*)&jig) - [3] *(SCREEN+1) = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) + [0] *((char *)&jig) = WORD + [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 + [2] *SCREEN = *((char *)&jig) + [3] *(SCREEN+1) = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) to:main::@return main::@return: scope:[main] from main [4] return @@ -85,7 +85,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -struct Jig jig loadstore = {} +__loadstore struct Jig jig = {} void main() Initial phi equivalence classes @@ -94,10 +94,10 @@ Complete equivalence classes [ jig ] Allocated mem[3] [ jig ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)&jig) = WORD [ jig ] ( [ jig ] { } ) always clobbers reg byte a -Statement [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 [ jig ] ( [ jig ] { } ) always clobbers reg byte a -Statement [2] *SCREEN = *((byte*)&jig) [ jig ] ( [ jig ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+1) = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((char *)&jig) = WORD [ jig ] ( [ jig ] { } ) always clobbers reg byte a +Statement [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 [ jig ] ( [ jig ] { } ) always clobbers reg byte a +Statement [2] *SCREEN = *((char *)&jig) [ jig ] ( [ jig ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+1) = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[3] [ jig ] : mem[3] , REGISTER UPLIFT SCOPES @@ -133,18 +133,18 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)&jig) = WORD -- _deref_pbuc1=vbuc2 + // [0] *((char *)&jig) = WORD -- _deref_pbuc1=vbuc2 lda #WORD sta jig - // [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 -- _deref_pwuc1=vwuc2 + // [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 -- _deref_pwuc1=vwuc2 lda #<$1234 sta jig+OFFSET_STRUCT_JIG_DATA lda #>$1234 sta jig+OFFSET_STRUCT_JIG_DATA+1 - // [2] *SCREEN = *((byte*)&jig) -- _deref_pbuc1=_deref_pbuc2 + // [2] *SCREEN = *((char *)&jig) -- _deref_pbuc1=_deref_pbuc2 lda jig sta SCREEN - // [3] *(SCREEN+1) = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+1) = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 lda jig+OFFSET_STRUCT_JIG_DATA sta SCREEN+1 jmp __breturn @@ -164,11 +164,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_JIG_DATA = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_JIG = 3 -constant byte WORD = 1 -struct Jig jig loadstore mem[3] = {} +__constant char OFFSET_STRUCT_JIG_DATA = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_JIG = 3 +__constant char WORD = 1 +__loadstore struct Jig jig = {} // mem[3] void main() mem[3] [ jig ] @@ -197,21 +197,21 @@ Score: 40 // main main: { // jig.type = WORD - // [0] *((byte*)&jig) = WORD -- _deref_pbuc1=vbuc2 + // [0] *((char *)&jig) = WORD -- _deref_pbuc1=vbuc2 lda #WORD sta jig // jig.data.w = 0x1234 - // [1] *((word*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 -- _deref_pwuc1=vwuc2 + // [1] *((unsigned int *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) = $1234 -- _deref_pwuc1=vwuc2 lda #<$1234 sta jig+OFFSET_STRUCT_JIG_DATA lda #>$1234 sta jig+OFFSET_STRUCT_JIG_DATA+1 // SCREEN[0] = jig.type - // [2] *SCREEN = *((byte*)&jig) -- _deref_pbuc1=_deref_pbuc2 + // [2] *SCREEN = *((char *)&jig) -- _deref_pbuc1=_deref_pbuc2 lda jig sta SCREEN // SCREEN[1] = jig.data.b - // [3] *(SCREEN+1) = *((byte*)(union Data*)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+1) = *((char *)(union Data *)&jig+OFFSET_STRUCT_JIG_DATA) -- _deref_pbuc1=_deref_pbuc2 lda jig+OFFSET_STRUCT_JIG_DATA sta SCREEN+1 // main::@return diff --git a/src/test/ref/union-2.sym b/src/test/ref/union-2.sym index b3e8dc14f..28255984e 100644 --- a/src/test/ref/union-2.sym +++ b/src/test/ref/union-2.sym @@ -1,8 +1,8 @@ -constant byte OFFSET_STRUCT_JIG_DATA = 1 -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_STRUCT_JIG = 3 -constant byte WORD = 1 -struct Jig jig loadstore mem[3] = {} +__constant char OFFSET_STRUCT_JIG_DATA = 1 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_STRUCT_JIG = 3 +__constant char WORD = 1 +__loadstore struct Jig jig = {} // mem[3] void main() mem[3] [ jig ] diff --git a/src/test/ref/union-3.cfg b/src/test/ref/union-3.cfg index 0983b62b7..e654ca41e 100644 --- a/src/test/ref/union-3.cfg +++ b/src/test/ref/union-3.cfg @@ -16,12 +16,12 @@ main::@return: scope:[main] from main::@3 to:@return main::@4: scope:[main] from main::@3 [6] main::$4 = main::i1#2 << 1 - [7] SCREEN[main::i1#2] = ((byte*)datas)[main::$4] + [7] SCREEN[main::i1#2] = ((char *)datas)[main::$4] [8] main::i1#1 = ++ main::i1#2 to:main::@3 main::@2: scope:[main] from main::@1 [9] main::$1 = $1230 + main::i#2 [10] main::$3 = main::i#2 << 1 - [11] ((word*)datas)[main::$3] = main::$1 + [11] ((unsigned int *)datas)[main::$3] = main::$1 [12] main::i#1 = ++ main::i#2 to:main::@1 diff --git a/src/test/ref/union-3.log b/src/test/ref/union-3.log index 022a2d9cf..1827be877 100644 --- a/src/test/ref/union-3.log +++ b/src/test/ref/union-3.log @@ -14,7 +14,7 @@ main::@2: scope:[main] from main::@1 main::i#3 = phi( main::@1/main::i#2 ) main::$1 = $1230 + main::i#3 main::$3 = main::i#3 * SIZEOF_UNION_DATA - ((word*)datas+OFFSET_UNION_DATA_W)[main::$3] = main::$1 + ((unsigned int *)datas+OFFSET_UNION_DATA_W)[main::$3] = main::$1 main::i#1 = ++ main::i#3 to:main::@1 main::@3: scope:[main] from main::@1 @@ -28,7 +28,7 @@ main::@4: scope:[main] from main::@3 main::@5 main::@5: scope:[main] from main::@4 main::i1#3 = phi( main::@4/main::i1#2 ) main::$4 = main::i1#3 * SIZEOF_UNION_DATA - SCREEN[main::i1#3] = ((byte*)datas+OFFSET_UNION_DATA_B)[main::$4] + SCREEN[main::i1#3] = ((char *)datas+OFFSET_UNION_DATA_B)[main::$4] main::i1#1 = ++ main::i1#3 to:main::@4 main::@return: scope:[main] from main::@4 @@ -37,7 +37,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -46,44 +46,44 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_DATA_B = 0 -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_UNION_DATA = 2 +__constant char OFFSET_UNION_DATA_B = 0 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_UNION_DATA = 2 void __start() -constant union Data* datas[$a] = { fill( $a, 0) } +__constant union Data datas[$a] = { fill( $a, 0) } void main() -bool~ main::$0 -number~ main::$1 -bool~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i1 -byte main::i1#0 -byte main::i1#1 -byte main::i1#2 -byte main::i1#3 +bool main::$0 +number main::$1 +bool main::$2 +char main::$3 +char main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i1 +char main::i1#0 +char main::i1#1 +char main::i1#2 +char main::i1#3 Adding number conversion cast (unumber) $a in main::$0 = main::i#2 < $a Adding number conversion cast (unumber) $1230 in main::$1 = $1230 + main::i#3 Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)$1230 + main::i#3 Adding number conversion cast (unumber) $a in main::$2 = main::i1#2 < $a Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $a Simplifying constant integer cast $1230 Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $a -Finalized unsigned number type (word) $1230 -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (unsigned int) $1230 +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$1 = $1230 + main::i#3 +Inferred type updated to unsigned int in main::$1 = $1230 + main::i#3 Alias main::i#2 = main::i#3 Alias main::i1#2 = main::i1#3 Successful SSA optimization Pass2AliasElimination @@ -93,8 +93,8 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Constant main::i1#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (word*)datas in [6] ((word*)datas+OFFSET_UNION_DATA_W)[main::$3] = main::$1 -Simplifying expression containing zero (byte*)datas in [13] SCREEN[main::i1#2] = ((byte*)datas+OFFSET_UNION_DATA_B)[main::$4] +Simplifying expression containing zero (unsigned int *)datas in [6] ((unsigned int *)datas+OFFSET_UNION_DATA_W)[main::$3] = main::$1 +Simplifying expression containing zero (char *)datas in [13] SCREEN[main::i1#2] = ((char *)datas+OFFSET_UNION_DATA_B)[main::$4] Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_UNION_DATA_W Eliminating unused constant OFFSET_UNION_DATA_B @@ -114,8 +114,8 @@ Constant inlined main::i1#0 = 0 Successful SSA optimization Pass2ConstantInlining Eliminating unused constant SIZEOF_UNION_DATA Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main Adding NOP phi() at start of main::@3 @@ -149,28 +149,28 @@ main::@return: scope:[main] from main::@3 to:@return main::@4: scope:[main] from main::@3 [6] main::$4 = main::i1#2 << 1 - [7] SCREEN[main::i1#2] = ((byte*)datas)[main::$4] + [7] SCREEN[main::i1#2] = ((char *)datas)[main::$4] [8] main::i1#1 = ++ main::i1#2 to:main::@3 main::@2: scope:[main] from main::@1 [9] main::$1 = $1230 + main::i#2 [10] main::$3 = main::i#2 << 1 - [11] ((word*)datas)[main::$3] = main::$1 + [11] ((unsigned int *)datas)[main::$3] = main::$1 [12] main::i#1 = ++ main::i#2 to:main::@1 VARIABLE REGISTER WEIGHTS void main() -word~ main::$1 11.0 -byte~ main::$3 22.0 -byte~ main::$4 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 11.0 -byte main::i1 -byte main::i1#1 22.0 -byte main::i1#2 13.75 +unsigned int main::$1 // 11.0 +char main::$3 // 22.0 +char main::$4 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 11.0 +char main::i1 +char main::i1#1 // 22.0 +char main::i1#2 // 13.75 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -192,16 +192,16 @@ Allocated zp[1]:7 [ main::$3 ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [6] main::$4 = main::i1#2 << 1 [ main::i1#2 main::$4 ] ( [ main::i1#2 main::$4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i1#2 main::i1#1 ] -Statement [7] SCREEN[main::i1#2] = ((byte*)datas)[main::$4] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a +Statement [7] SCREEN[main::i1#2] = ((char *)datas)[main::$4] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a Statement [9] main::$1 = $1230 + main::i#2 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [10] main::$3 = main::i#2 << 1 [ main::i#2 main::$1 main::$3 ] ( [ main::i#2 main::$1 main::$3 ] { } ) always clobbers reg byte a -Statement [11] ((word*)datas)[main::$3] = main::$1 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [11] ((unsigned int *)datas)[main::$3] = main::$1 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Statement [6] main::$4 = main::i1#2 << 1 [ main::i1#2 main::$4 ] ( [ main::i1#2 main::$4 ] { } ) always clobbers reg byte a -Statement [7] SCREEN[main::i1#2] = ((byte*)datas)[main::$4] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a +Statement [7] SCREEN[main::i1#2] = ((char *)datas)[main::$4] [ main::i1#2 ] ( [ main::i1#2 ] { } ) always clobbers reg byte a Statement [9] main::$1 = $1230 + main::i#2 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a Statement [10] main::$3 = main::i#2 << 1 [ main::i#2 main::$1 main::$3 ] ( [ main::i#2 main::$1 main::$3 ] { } ) always clobbers reg byte a -Statement [11] ((word*)datas)[main::$3] = main::$1 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a +Statement [11] ((unsigned int *)datas)[main::$3] = main::$1 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::i1#2 main::i1#1 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ main::$4 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , @@ -267,7 +267,7 @@ main: { // [6] main::$4 = main::i1#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [7] SCREEN[main::i1#2] = ((byte*)datas)[main::$4] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa + // [7] SCREEN[main::i1#2] = ((char *)datas)[main::$4] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa tay lda datas,y sta SCREEN,x @@ -290,7 +290,7 @@ main: { // [10] main::$3 = main::i#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [11] ((word*)datas)[main::$3] = main::$1 -- pwuc1_derefidx_vbuaa=vwuz1 + // [11] ((unsigned int *)datas)[main::$3] = main::$1 -- pwuc1_derefidx_vbuaa=vwuz1 tay lda.z __1 sta datas,y @@ -320,18 +320,18 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant union Data* datas[$a] = { fill( $a, 0) } +__constant char * const SCREEN = (char *) 1024 +__constant union Data datas[$a] = { fill( $a, 0) } void main() -word~ main::$1 zp[2]:2 11.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#2 reg byte x 13.75 +unsigned int main::$1 // zp[2]:2 11.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#2 // reg byte x 13.75 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] @@ -388,7 +388,7 @@ main: { // [6] main::$4 = main::i1#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [7] SCREEN[main::i1#2] = ((byte*)datas)[main::$4] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa + // [7] SCREEN[main::i1#2] = ((char *)datas)[main::$4] -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuaa tay lda datas,y sta SCREEN,x @@ -413,7 +413,7 @@ main: { // [10] main::$3 = main::i#2 << 1 -- vbuaa=vbuxx_rol_1 txa asl - // [11] ((word*)datas)[main::$3] = main::$1 -- pwuc1_derefidx_vbuaa=vwuz1 + // [11] ((unsigned int *)datas)[main::$3] = main::$1 -- pwuc1_derefidx_vbuaa=vwuz1 tay lda.z __1 sta datas,y diff --git a/src/test/ref/union-3.sym b/src/test/ref/union-3.sym index e14e2c746..2fbe1f1fc 100644 --- a/src/test/ref/union-3.sym +++ b/src/test/ref/union-3.sym @@ -1,15 +1,15 @@ -constant byte* const SCREEN = (byte*) 1024 -constant union Data* datas[$a] = { fill( $a, 0) } +__constant char * const SCREEN = (char *) 1024 +__constant union Data datas[$a] = { fill( $a, 0) } void main() -word~ main::$1 zp[2]:2 11.0 -byte~ main::$3 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 11.0 -byte main::i1 -byte main::i1#1 reg byte x 22.0 -byte main::i1#2 reg byte x 13.75 +unsigned int main::$1 // zp[2]:2 11.0 +char main::$3 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 11.0 +char main::i1 +char main::i1#1 // reg byte x 22.0 +char main::i1#2 // reg byte x 13.75 reg byte x [ main::i#2 main::i#1 ] reg byte x [ main::i1#2 main::i1#1 ] diff --git a/src/test/ref/union-4.cfg b/src/test/ref/union-4.cfg index e48326cbd..bc5f22fc6 100644 --- a/src/test/ref/union-4.cfg +++ b/src/test/ref/union-4.cfg @@ -1,11 +1,11 @@ void main() main: scope:[main] from - [0] *((dword*)&ipv4) = $12345678 - [1] *SCREEN = *((byte*)&ipv4+3) - [2] *(SCREEN+1) = *((byte*)&ipv4+2) - [3] *(SCREEN+2) = *((byte*)&ipv4+1) - [4] *(SCREEN+3) = *((byte*)&ipv4) + [0] *((unsigned long *)&ipv4) = $12345678 + [1] *SCREEN = *((char *)&ipv4+3) + [2] *(SCREEN+1) = *((char *)&ipv4+2) + [3] *(SCREEN+2) = *((char *)&ipv4+1) + [4] *(SCREEN+3) = *((char *)&ipv4) to:main::@return main::@return: scope:[main] from main [5] return diff --git a/src/test/ref/union-4.log b/src/test/ref/union-4.log index 7a7cc7eec..d2c39ec42 100644 --- a/src/test/ref/union-4.log +++ b/src/test/ref/union-4.log @@ -7,11 +7,11 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((dword*)&ipv4+OFFSET_UNION_IPV4_D) = $12345678 - SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[3] - SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[2] - SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[1] - SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[0] + *((unsigned long *)&ipv4+OFFSET_UNION_IPV4_D) = $12345678 + SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[3] + SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[2] + SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[1] + SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[0] to:main::@return main::@return: scope:[main] from main return @@ -19,7 +19,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,23 +28,23 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_IPV4_B = 0 -constant byte OFFSET_UNION_IPV4_D = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_UNION_IPV4_B = 0 +__constant char OFFSET_UNION_IPV4_D = 0 +__constant char * const SCREEN = (char *)$400 void __start() -union IPV4 ipv4 loadstore = {} +__loadstore union IPV4 ipv4 = {} void main() -Adding number conversion cast (unumber) 3 in SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[3] -Adding number conversion cast (unumber) 0 in SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)3] -Adding number conversion cast (unumber) 2 in SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[2] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)2] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)1] -Adding number conversion cast (unumber) 0 in SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[0] -Adding number conversion cast (unumber) 3 in SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)0] +Adding number conversion cast (unumber) 3 in SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[3] +Adding number conversion cast (unumber) 0 in SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)3] +Adding number conversion cast (unumber) 2 in SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[2] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)2] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)1] +Adding number conversion cast (unumber) 0 in SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[0] +Adding number conversion cast (unumber) 3 in SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Simplifying constant integer cast 2 @@ -54,22 +54,22 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (dword*)&ipv4 in [0] *((dword*)&ipv4+OFFSET_UNION_IPV4_D) = $12345678 -Simplifying expression containing zero (byte*)&ipv4 in [1] SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[3] -Simplifying expression containing zero SCREEN in [1] SCREEN[0] = ((byte*)&ipv4)[3] -Simplifying expression containing zero (byte*)&ipv4 in [2] SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[2] -Simplifying expression containing zero (byte*)&ipv4 in [3] SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[1] -Simplifying expression containing zero (byte*)&ipv4+OFFSET_UNION_IPV4_B in [4] SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[0] -Simplifying expression containing zero (byte*)&ipv4 in [4] SCREEN[3] = *((byte*)&ipv4+OFFSET_UNION_IPV4_B) +Simplifying expression containing zero (unsigned long *)&ipv4 in [0] *((unsigned long *)&ipv4+OFFSET_UNION_IPV4_D) = $12345678 +Simplifying expression containing zero (char *)&ipv4 in [1] SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[3] +Simplifying expression containing zero SCREEN in [1] SCREEN[0] = ((char *)&ipv4)[3] +Simplifying expression containing zero (char *)&ipv4 in [2] SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[2] +Simplifying expression containing zero (char *)&ipv4 in [3] SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[1] +Simplifying expression containing zero (char *)&ipv4+OFFSET_UNION_IPV4_B in [4] SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[0] +Simplifying expression containing zero (char *)&ipv4 in [4] SCREEN[3] = *((char *)&ipv4+OFFSET_UNION_IPV4_B) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_UNION_IPV4_D Eliminating unused constant OFFSET_UNION_IPV4_B @@ -79,15 +79,15 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Consolidated array index constant in *((byte*)&ipv4+3) -Consolidated array index constant in *((byte*)&ipv4+2) +Consolidated array index constant in *((char *)&ipv4+3) +Consolidated array index constant in *((char *)&ipv4+2) Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&ipv4+1) +Consolidated array index constant in *((char *)&ipv4+1) Consolidated array index constant in *(SCREEN+2) Consolidated array index constant in *(SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -98,11 +98,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((dword*)&ipv4) = $12345678 - [1] *SCREEN = *((byte*)&ipv4+3) - [2] *(SCREEN+1) = *((byte*)&ipv4+2) - [3] *(SCREEN+2) = *((byte*)&ipv4+1) - [4] *(SCREEN+3) = *((byte*)&ipv4) + [0] *((unsigned long *)&ipv4) = $12345678 + [1] *SCREEN = *((char *)&ipv4+3) + [2] *(SCREEN+1) = *((char *)&ipv4+2) + [3] *(SCREEN+2) = *((char *)&ipv4+1) + [4] *(SCREEN+3) = *((char *)&ipv4) to:main::@return main::@return: scope:[main] from main [5] return @@ -110,7 +110,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -union IPV4 ipv4 loadstore = {} +__loadstore union IPV4 ipv4 = {} void main() Initial phi equivalence classes @@ -119,11 +119,11 @@ Complete equivalence classes [ ipv4 ] Allocated mem[4] [ ipv4 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((dword*)&ipv4) = $12345678 [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [1] *SCREEN = *((byte*)&ipv4+3) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+1) = *((byte*)&ipv4+2) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+2) = *((byte*)&ipv4+1) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+3) = *((byte*)&ipv4) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *((unsigned long *)&ipv4) = $12345678 [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [1] *SCREEN = *((char *)&ipv4+3) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+1) = *((char *)&ipv4+2) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+2) = *((char *)&ipv4+1) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+3) = *((char *)&ipv4) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[4] [ ipv4 ] : mem[4] , REGISTER UPLIFT SCOPES @@ -153,7 +153,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((dword*)&ipv4) = $12345678 -- _deref_pduc1=vduc2 + // [0] *((unsigned long *)&ipv4) = $12345678 -- _deref_pduc1=vduc2 lda #<$12345678 sta ipv4 lda #>$12345678 @@ -162,16 +162,16 @@ main: { sta ipv4+2 lda #>$12345678>>$10 sta ipv4+3 - // [1] *SCREEN = *((byte*)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+3 sta SCREEN - // [2] *(SCREEN+1) = *((byte*)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+2 sta SCREEN+1 - // [3] *(SCREEN+2) = *((byte*)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+2) = *((char *)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+1 sta SCREEN+2 - // [4] *(SCREEN+3) = *((byte*)&ipv4) -- _deref_pbuc1=_deref_pbuc2 + // [4] *(SCREEN+3) = *((char *)&ipv4) -- _deref_pbuc1=_deref_pbuc2 lda ipv4 sta SCREEN+3 jmp __breturn @@ -193,9 +193,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_IPV4 = 4 -union IPV4 ipv4 loadstore mem[4] = {} +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_IPV4 = 4 +__loadstore union IPV4 ipv4 = {} // mem[4] void main() mem[4] [ ipv4 ] @@ -222,7 +222,7 @@ Score: 58 // main main: { // ipv4.d = 0x12345678ul - // [0] *((dword*)&ipv4) = $12345678 -- _deref_pduc1=vduc2 + // [0] *((unsigned long *)&ipv4) = $12345678 -- _deref_pduc1=vduc2 lda #<$12345678 sta ipv4 lda #>$12345678 @@ -232,18 +232,18 @@ main: { lda #>$12345678>>$10 sta ipv4+3 // SCREEN[0] = ipv4.b[3] - // [1] *SCREEN = *((byte*)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 + // [1] *SCREEN = *((char *)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 sta SCREEN // SCREEN[1] = ipv4.b[2] - // [2] *(SCREEN+1) = *((byte*)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+1) = *((char *)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+2 sta SCREEN+1 // SCREEN[2] = ipv4.b[1] - // [3] *(SCREEN+2) = *((byte*)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+2) = *((char *)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+1 sta SCREEN+2 // SCREEN[3] = ipv4.b[0] - // [4] *(SCREEN+3) = *((byte*)&ipv4) -- _deref_pbuc1=_deref_pbuc2 + // [4] *(SCREEN+3) = *((char *)&ipv4) -- _deref_pbuc1=_deref_pbuc2 lda ipv4 sta SCREEN+3 // main::@return diff --git a/src/test/ref/union-4.sym b/src/test/ref/union-4.sym index 10cfef106..f1dbc94a3 100644 --- a/src/test/ref/union-4.sym +++ b/src/test/ref/union-4.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_IPV4 = 4 -union IPV4 ipv4 loadstore mem[4] = {} +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_IPV4 = 4 +__loadstore union IPV4 ipv4 = {} // mem[4] void main() mem[4] [ ipv4 ] diff --git a/src/test/ref/union-5.cfg b/src/test/ref/union-5.cfg index f4a844848..4bc305d37 100644 --- a/src/test/ref/union-5.cfg +++ b/src/test/ref/union-5.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&ipv4+3) - [1] *(SCREEN+1) = *((byte*)&ipv4+2) - [2] *(SCREEN+2) = *((byte*)&ipv4+1) - [3] *(SCREEN+3) = *((byte*)&ipv4) + [0] *SCREEN = *((char *)&ipv4+3) + [1] *(SCREEN+1) = *((char *)&ipv4+2) + [2] *(SCREEN+2) = *((char *)&ipv4+1) + [3] *(SCREEN+3) = *((char *)&ipv4) to:main::@return main::@return: scope:[main] from main [4] return diff --git a/src/test/ref/union-5.log b/src/test/ref/union-5.log index 55ee93083..30108e4dd 100644 --- a/src/test/ref/union-5.log +++ b/src/test/ref/union-5.log @@ -7,10 +7,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[3] - SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[2] - SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[1] - SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[0] + SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[3] + SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[2] + SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[1] + SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[0] to:main::@return main::@return: scope:[main] from main return @@ -18,7 +18,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,22 +27,22 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_IPV4_B = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_UNION_IPV4_B = 0 +__constant char * const SCREEN = (char *)$400 void __start() -union IPV4 ipv4 loadstore = { d: $12345678 } +__loadstore union IPV4 ipv4 = { d: $12345678 } void main() -Adding number conversion cast (unumber) 3 in SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[3] -Adding number conversion cast (unumber) 0 in SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)3] -Adding number conversion cast (unumber) 2 in SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[2] -Adding number conversion cast (unumber) 1 in SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)2] -Adding number conversion cast (unumber) 1 in SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[1] -Adding number conversion cast (unumber) 2 in SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)1] -Adding number conversion cast (unumber) 0 in SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[0] -Adding number conversion cast (unumber) 3 in SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)0] +Adding number conversion cast (unumber) 3 in SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[3] +Adding number conversion cast (unumber) 0 in SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)3] +Adding number conversion cast (unumber) 2 in SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[2] +Adding number conversion cast (unumber) 1 in SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)2] +Adding number conversion cast (unumber) 1 in SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[1] +Adding number conversion cast (unumber) 2 in SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)1] +Adding number conversion cast (unumber) 0 in SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[0] +Adding number conversion cast (unumber) 3 in SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[(unumber)0] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 3 Simplifying constant integer cast 0 Simplifying constant integer cast 2 @@ -52,21 +52,21 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 0 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (byte*)&ipv4 in [0] SCREEN[0] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[3] -Simplifying expression containing zero SCREEN in [0] SCREEN[0] = ((byte*)&ipv4)[3] -Simplifying expression containing zero (byte*)&ipv4 in [1] SCREEN[1] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[2] -Simplifying expression containing zero (byte*)&ipv4 in [2] SCREEN[2] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[1] -Simplifying expression containing zero (byte*)&ipv4+OFFSET_UNION_IPV4_B in [3] SCREEN[3] = ((byte*)&ipv4+OFFSET_UNION_IPV4_B)[0] -Simplifying expression containing zero (byte*)&ipv4 in [3] SCREEN[3] = *((byte*)&ipv4+OFFSET_UNION_IPV4_B) +Simplifying expression containing zero (char *)&ipv4 in [0] SCREEN[0] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[3] +Simplifying expression containing zero SCREEN in [0] SCREEN[0] = ((char *)&ipv4)[3] +Simplifying expression containing zero (char *)&ipv4 in [1] SCREEN[1] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[2] +Simplifying expression containing zero (char *)&ipv4 in [2] SCREEN[2] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[1] +Simplifying expression containing zero (char *)&ipv4+OFFSET_UNION_IPV4_B in [3] SCREEN[3] = ((char *)&ipv4+OFFSET_UNION_IPV4_B)[0] +Simplifying expression containing zero (char *)&ipv4 in [3] SCREEN[3] = *((char *)&ipv4+OFFSET_UNION_IPV4_B) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_UNION_IPV4_B Successful SSA optimization PassNEliminateUnusedVars @@ -75,15 +75,15 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Consolidated array index constant in *((byte*)&ipv4+3) -Consolidated array index constant in *((byte*)&ipv4+2) +Consolidated array index constant in *((char *)&ipv4+3) +Consolidated array index constant in *((char *)&ipv4+2) Consolidated array index constant in *(SCREEN+1) -Consolidated array index constant in *((byte*)&ipv4+1) +Consolidated array index constant in *((char *)&ipv4+1) Consolidated array index constant in *(SCREEN+2) Consolidated array index constant in *(SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -94,10 +94,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *SCREEN = *((byte*)&ipv4+3) - [1] *(SCREEN+1) = *((byte*)&ipv4+2) - [2] *(SCREEN+2) = *((byte*)&ipv4+1) - [3] *(SCREEN+3) = *((byte*)&ipv4) + [0] *SCREEN = *((char *)&ipv4+3) + [1] *(SCREEN+1) = *((char *)&ipv4+2) + [2] *(SCREEN+2) = *((char *)&ipv4+1) + [3] *(SCREEN+3) = *((char *)&ipv4) to:main::@return main::@return: scope:[main] from main [4] return @@ -105,7 +105,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -union IPV4 ipv4 loadstore = { d: $12345678 } +__loadstore union IPV4 ipv4 = { d: $12345678 } void main() Initial phi equivalence classes @@ -114,10 +114,10 @@ Complete equivalence classes [ ipv4 ] Allocated mem[4] [ ipv4 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *SCREEN = *((byte*)&ipv4+3) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [1] *(SCREEN+1) = *((byte*)&ipv4+2) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [2] *(SCREEN+2) = *((byte*)&ipv4+1) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a -Statement [3] *(SCREEN+3) = *((byte*)&ipv4) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [0] *SCREEN = *((char *)&ipv4+3) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [1] *(SCREEN+1) = *((char *)&ipv4+2) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [2] *(SCREEN+2) = *((char *)&ipv4+1) [ ipv4 ] ( [ ipv4 ] { } ) always clobbers reg byte a +Statement [3] *(SCREEN+3) = *((char *)&ipv4) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers mem[4] [ ipv4 ] : mem[4] , REGISTER UPLIFT SCOPES @@ -146,16 +146,16 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *SCREEN = *((byte*)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+3 sta SCREEN - // [1] *(SCREEN+1) = *((byte*)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *((char *)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+2 sta SCREEN+1 - // [2] *(SCREEN+2) = *((byte*)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+2) = *((char *)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+1 sta SCREEN+2 - // [3] *(SCREEN+3) = *((byte*)&ipv4) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+3) = *((char *)&ipv4) -- _deref_pbuc1=_deref_pbuc2 lda ipv4 sta SCREEN+3 jmp __breturn @@ -175,8 +175,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -union IPV4 ipv4 loadstore mem[4] = { d: $12345678 } +__constant char * const SCREEN = (char *) 1024 +__loadstore union IPV4 ipv4 = { d: $12345678 } // mem[4] void main() mem[4] [ ipv4 ] @@ -202,19 +202,19 @@ Score: 38 // main main: { // SCREEN[0] = ipv4.b[3] - // [0] *SCREEN = *((byte*)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 + // [0] *SCREEN = *((char *)&ipv4+3) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+3 sta SCREEN // SCREEN[1] = ipv4.b[2] - // [1] *(SCREEN+1) = *((byte*)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 + // [1] *(SCREEN+1) = *((char *)&ipv4+2) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+2 sta SCREEN+1 // SCREEN[2] = ipv4.b[1] - // [2] *(SCREEN+2) = *((byte*)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 + // [2] *(SCREEN+2) = *((char *)&ipv4+1) -- _deref_pbuc1=_deref_pbuc2 lda ipv4+1 sta SCREEN+2 // SCREEN[3] = ipv4.b[0] - // [3] *(SCREEN+3) = *((byte*)&ipv4) -- _deref_pbuc1=_deref_pbuc2 + // [3] *(SCREEN+3) = *((char *)&ipv4) -- _deref_pbuc1=_deref_pbuc2 lda ipv4 sta SCREEN+3 // main::@return diff --git a/src/test/ref/union-5.sym b/src/test/ref/union-5.sym index 31ea575d1..6334a0273 100644 --- a/src/test/ref/union-5.sym +++ b/src/test/ref/union-5.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 -union IPV4 ipv4 loadstore mem[4] = { d: $12345678 } +__constant char * const SCREEN = (char *) 1024 +__loadstore union IPV4 ipv4 = { d: $12345678 } // mem[4] void main() mem[4] [ ipv4 ] diff --git a/src/test/ref/union-6.cfg b/src/test/ref/union-6.cfg index c701abb6a..4fe1e896d 100644 --- a/src/test/ref/union-6.cfg +++ b/src/test/ref/union-6.cfg @@ -1,10 +1,10 @@ void main() main: scope:[main] from - [0] *((word*)&data) = $1234 - [1] main::$0 = byte1 *((word*)&data) + [0] *((unsigned int *)&data) = $1234 + [1] main::$0 = byte1 *((unsigned int *)&data) [2] *SCREEN = main::$0 - [3] main::$1 = byte0 *((word*)&data) + [3] main::$1 = byte0 *((unsigned int *)&data) [4] *(SCREEN+1) = main::$1 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/union-6.log b/src/test/ref/union-6.log index 6ccd284bf..422257aa9 100644 --- a/src/test/ref/union-6.log +++ b/src/test/ref/union-6.log @@ -3,10 +3,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - *((word*)&data+OFFSET_UNION_DATA_W) = $1234 - main::$0 = byte1 *((word*)&data+OFFSET_UNION_DATA_W) + *((unsigned int *)&data+OFFSET_UNION_DATA_W) = $1234 + main::$0 = byte1 *((unsigned int *)&data+OFFSET_UNION_DATA_W) SCREEN[0] = main::$0 - main::$1 = byte0 *((word*)&data+OFFSET_UNION_DATA_W) + main::$1 = byte0 *((unsigned int *)&data+OFFSET_UNION_DATA_W) SCREEN[1] = main::$1 to:main::@return main::@return: scope:[main] from main @@ -15,7 +15,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,33 +24,33 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 void __start() -union Data data loadstore = { b: $c } +__loadstore union Data data = { b: $c } void main() -byte~ main::$0 -byte~ main::$1 +char main::$0 +char main::$1 -Adding number conversion cast (unumber) $1234 in *((word*)&data+OFFSET_UNION_DATA_W) = $1234 +Adding number conversion cast (unumber) $1234 in *((unsigned int *)&data+OFFSET_UNION_DATA_W) = $1234 Adding number conversion cast (unumber) 0 in SCREEN[0] = main::$0 Adding number conversion cast (unumber) 1 in SCREEN[1] = main::$1 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((word*)&data+OFFSET_UNION_DATA_W) = (unumber)$1234 +Inlining cast *((unsigned int *)&data+OFFSET_UNION_DATA_W) = (unumber)$1234 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $1234 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $1234 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (unsigned int) $1234 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero (word*)&data in [0] *((word*)&data+OFFSET_UNION_DATA_W) = $1234 -Simplifying expression containing zero (word*)&data in [1] main::$0 = byte1 *((word*)&data+OFFSET_UNION_DATA_W) +Simplifying expression containing zero (unsigned int *)&data in [0] *((unsigned int *)&data+OFFSET_UNION_DATA_W) = $1234 +Simplifying expression containing zero (unsigned int *)&data in [1] main::$0 = byte1 *((unsigned int *)&data+OFFSET_UNION_DATA_W) Simplifying expression containing zero SCREEN in [2] SCREEN[0] = main::$0 -Simplifying expression containing zero (word*)&data in [3] main::$1 = byte0 *((word*)&data+OFFSET_UNION_DATA_W) +Simplifying expression containing zero (unsigned int *)&data in [3] main::$1 = byte0 *((unsigned int *)&data+OFFSET_UNION_DATA_W) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_UNION_DATA_W Successful SSA optimization PassNEliminateUnusedVars @@ -70,10 +70,10 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((word*)&data) = $1234 - [1] main::$0 = byte1 *((word*)&data) + [0] *((unsigned int *)&data) = $1234 + [1] main::$0 = byte1 *((unsigned int *)&data) [2] *SCREEN = main::$0 - [3] main::$1 = byte0 *((word*)&data) + [3] main::$1 = byte0 *((unsigned int *)&data) [4] *(SCREEN+1) = main::$1 to:main::@return main::@return: scope:[main] from main @@ -82,10 +82,10 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -union Data data loadstore = { b: $c } +__loadstore union Data data = { b: $c } void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 +char main::$0 // 4.0 +char main::$1 // 4.0 Initial phi equivalence classes Added variable main::$0 to live range equivalence class [ main::$0 ] @@ -99,7 +99,7 @@ Allocated zp[1]:2 [ main::$0 ] Allocated zp[1]:3 [ main::$1 ] Allocated mem[2] [ data ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((word*)&data) = $1234 [ data ] ( [ data ] { } ) always clobbers reg byte a +Statement [0] *((unsigned int *)&data) = $1234 [ data ] ( [ data ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::$0 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , Potential registers mem[2] [ data ] : mem[2] , @@ -130,16 +130,16 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((word*)&data) = $1234 -- _deref_pwuc1=vwuc2 + // [0] *((unsigned int *)&data) = $1234 -- _deref_pwuc1=vwuc2 lda #<$1234 sta data lda #>$1234 sta data+1 - // [1] main::$0 = byte1 *((word*)&data) -- vbuaa=_byte1__deref_pwuc1 + // [1] main::$0 = byte1 *((unsigned int *)&data) -- vbuaa=_byte1__deref_pwuc1 lda data+1 // [2] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [3] main::$1 = byte0 *((word*)&data) -- vbuaa=_byte0__deref_pwuc1 + // [3] main::$1 = byte0 *((unsigned int *)&data) -- vbuaa=_byte0__deref_pwuc1 lda data // [4] *(SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 @@ -163,11 +163,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -union Data data loadstore mem[2] = { b: $c } +__constant char * const SCREEN = (char *) 1024 +__loadstore union Data data = { b: $c } // mem[2] void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 reg byte a [ main::$0 ] reg byte a [ main::$1 ] @@ -194,18 +194,18 @@ Score: 30 // main main: { // data.w = 0x1234 - // [0] *((word*)&data) = $1234 -- _deref_pwuc1=vwuc2 + // [0] *((unsigned int *)&data) = $1234 -- _deref_pwuc1=vwuc2 lda #<$1234 sta data lda #>$1234 sta data+1 // BYTE1(data.w) - // [1] main::$0 = byte1 *((word*)&data) -- vbuaa=_byte1__deref_pwuc1 + // [1] main::$0 = byte1 *((unsigned int *)&data) -- vbuaa=_byte1__deref_pwuc1 // SCREEN[0] = BYTE1(data.w) // [2] *SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // BYTE0(data.w) - // [3] main::$1 = byte0 *((word*)&data) -- vbuaa=_byte0__deref_pwuc1 + // [3] main::$1 = byte0 *((unsigned int *)&data) -- vbuaa=_byte0__deref_pwuc1 lda data // SCREEN[1] = BYTE0(data.w) // [4] *(SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa diff --git a/src/test/ref/union-6.sym b/src/test/ref/union-6.sym index 2b9b5a258..0159b00f0 100644 --- a/src/test/ref/union-6.sym +++ b/src/test/ref/union-6.sym @@ -1,8 +1,8 @@ -constant byte* const SCREEN = (byte*) 1024 -union Data data loadstore mem[2] = { b: $c } +__constant char * const SCREEN = (char *) 1024 +__loadstore union Data data = { b: $c } // mem[2] void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 reg byte a [ main::$0 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/union-7.asm b/src/test/ref/union-7.asm index 4371886be..e0470ce25 100644 --- a/src/test/ref/union-7.asm +++ b/src/test/ref/union-7.asm @@ -31,7 +31,7 @@ main: { // } rts } -// print(union Data zp(2) data) +// void print(__zp(2) union Data data) print: { .label data = 2 // BYTE1(data.w) diff --git a/src/test/ref/union-7.cfg b/src/test/ref/union-7.cfg index 74ed0097a..fac60b4ef 100644 --- a/src/test/ref/union-7.cfg +++ b/src/test/ref/union-7.cfg @@ -2,23 +2,23 @@ void main() main: scope:[main] from [0] *(&print::data) = memcpy(*(&data1), union Data, SIZEOF_UNION_DATA) - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] *(&print::data) = memcpy(*(&data2), union Data, SIZEOF_UNION_DATA) - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(union Data print::data) +void print(union Data data) print: scope:[print] from main main::@1 [5] idx#13 = phi( main/0, main::@1/idx#14 ) - [6] print::$0 = byte1 *((word*)&print::data) + [6] print::$0 = byte1 *((unsigned int *)&print::data) [7] SCREEN[idx#13] = print::$0 [8] idx#3 = ++ idx#13 - [9] SCREEN[idx#3] = *((byte*)&print::data) + [9] SCREEN[idx#3] = *((char *)&print::data) [10] idx#4 = ++ idx#3 [11] SCREEN[idx#4] = ' ' [12] idx#14 = ++ idx#4 diff --git a/src/test/ref/union-7.log b/src/test/ref/union-7.log index fbe168680..81fdaeff4 100644 --- a/src/test/ref/union-7.log +++ b/src/test/ref/union-7.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Removing C-classic struct-unwound assignment print::data = struct-unwound {*(&print::data)} Removing C-classic struct-unwound assignment print::data = struct-unwound {*(&print::data)} @@ -8,13 +8,13 @@ void main() main: scope:[main] from __start::@1 idx#17 = phi( __start::@1/idx#18 ) *(&print::data) = memcpy(*(&data1), union Data, SIZEOF_UNION_DATA) - call print + call print to:main::@1 main::@1: scope:[main] from main idx#10 = phi( main/idx#6 ) idx#0 = idx#10 *(&print::data) = memcpy(*(&data2), union Data, SIZEOF_UNION_DATA) - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#11 = phi( main::@1/idx#6 ) @@ -26,13 +26,13 @@ main::@return: scope:[main] from main::@2 return to:@return -void print(union Data print::data) +void print(union Data data) print: scope:[print] from main main::@1 idx#13 = phi( main/idx#17, main::@1/idx#0 ) - print::$0 = byte1 *((word*)&print::data+OFFSET_UNION_DATA_W) + print::$0 = byte1 *((unsigned int *)&print::data+OFFSET_UNION_DATA_W) SCREEN[idx#13] = print::$0 idx#3 = ++ idx#13 - SCREEN[idx#3] = *((byte*)&print::data+OFFSET_UNION_DATA_B) + SCREEN[idx#3] = *((char *)&print::data+OFFSET_UNION_DATA_B) idx#4 = ++ idx#3 SCREEN[idx#4] = ' ' idx#5 = ++ idx#4 @@ -51,7 +51,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#18 = phi( __start::__init1/idx#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#2 ) @@ -64,39 +64,39 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_DATA_B = 0 -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 -constant byte SIZEOF_UNION_DATA = 2 +__constant char OFFSET_UNION_DATA_B = 0 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 +__constant char SIZEOF_UNION_DATA = 2 void __start() -union Data data1 loadstore = { b: $12 } -union Data data2 loadstore = { b: $34 } -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +__loadstore union Data data1 = { b: $12 } +__loadstore union Data data2 = { b: $34 } +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -void print(union Data print::data) -byte~ print::$0 -union Data print::data loadstore +void print(union Data data) +char print::$0 +__loadstore union Data print::data -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#10 Alias idx#1 = idx#11 idx#12 idx#2 @@ -111,8 +111,8 @@ Identical Phi Values idx#15 idx#1 Successful SSA optimization Pass2IdenticalPhiElimination Constant idx#18 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (word*)&print::data in [9] print::$0 = byte1 *((word*)&print::data+OFFSET_UNION_DATA_W) -Simplifying expression containing zero (byte*)&print::data in [12] SCREEN[idx#3] = *((byte*)&print::data+OFFSET_UNION_DATA_B) +Simplifying expression containing zero (unsigned int *)&print::data in [9] print::$0 = byte1 *((unsigned int *)&print::data+OFFSET_UNION_DATA_W) +Simplifying expression containing zero (char *)&print::data in [12] SCREEN[idx#3] = *((char *)&print::data+OFFSET_UNION_DATA_B) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant OFFSET_UNION_DATA_W Eliminating unused constant OFFSET_UNION_DATA_B @@ -141,23 +141,23 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *(&print::data) = memcpy(*(&data1), union Data, SIZEOF_UNION_DATA) - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] *(&print::data) = memcpy(*(&data2), union Data, SIZEOF_UNION_DATA) - [3] call print + [3] call print to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print(union Data print::data) +void print(union Data data) print: scope:[print] from main main::@1 [5] idx#13 = phi( main/0, main::@1/idx#14 ) - [6] print::$0 = byte1 *((word*)&print::data) + [6] print::$0 = byte1 *((unsigned int *)&print::data) [7] SCREEN[idx#13] = print::$0 [8] idx#3 = ++ idx#13 - [9] SCREEN[idx#3] = *((byte*)&print::data) + [9] SCREEN[idx#3] = *((char *)&print::data) [10] idx#4 = ++ idx#3 [11] SCREEN[idx#4] = ' ' [12] idx#14 = ++ idx#4 @@ -168,17 +168,17 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -union Data data1 loadstore = { b: $12 } -union Data data2 loadstore = { b: $34 } -byte idx -byte idx#13 8.0 -byte idx#14 3.25 -byte idx#3 16.5 -byte idx#4 16.5 +__loadstore union Data data1 = { b: $12 } +__loadstore union Data data2 = { b: $34 } +char idx +char idx#13 // 8.0 +char idx#14 // 3.25 +char idx#3 // 16.5 +char idx#4 // 16.5 void main() -void print(union Data print::data) -byte~ print::$0 22.0 -union Data print::data loadstore +void print(union Data data) +char print::$0 // 22.0 +__loadstore union Data print::data Initial phi equivalence classes [ idx#13 idx#14 ] @@ -208,13 +208,13 @@ Statement [0] *(&print::data) = memcpy(*(&data1), union Data, SIZEOF_UNION_DATA) Statement [2] *(&print::data) = memcpy(*(&data2), union Data, SIZEOF_UNION_DATA) [ print::data idx#14 ] ( [ print::data idx#14 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:2 [ idx#13 idx#14 ] Removing always clobbered register reg byte y as potential for zp[1]:2 [ idx#13 idx#14 ] -Statement [9] SCREEN[idx#3] = *((byte*)&print::data) [ print::data idx#3 ] ( print:1 [ data2 print::data idx#3 ] { } print:3 [ print::data idx#3 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a +Statement [9] SCREEN[idx#3] = *((char *)&print::data) [ print::data idx#3 ] ( print:1 [ data2 print::data idx#3 ] { } print:3 [ print::data idx#3 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ idx#3 ] Statement [11] SCREEN[idx#4] = ' ' [ print::data idx#4 ] ( print:1 [ data2 print::data idx#4 ] { } print:3 [ print::data idx#4 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ idx#4 ] Statement [0] *(&print::data) = memcpy(*(&data1), union Data, SIZEOF_UNION_DATA) [ print::data data2 ] ( [ print::data data2 ] { } ) always clobbers reg byte a reg byte y Statement [2] *(&print::data) = memcpy(*(&data2), union Data, SIZEOF_UNION_DATA) [ print::data idx#14 ] ( [ print::data idx#14 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a reg byte y -Statement [9] SCREEN[idx#3] = *((byte*)&print::data) [ print::data idx#3 ] ( print:1 [ data2 print::data idx#3 ] { } print:3 [ print::data idx#3 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a +Statement [9] SCREEN[idx#3] = *((char *)&print::data) [ print::data idx#3 ] ( print:1 [ data2 print::data idx#3 ] { } print:3 [ print::data idx#3 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a Statement [11] SCREEN[idx#4] = ' ' [ print::data idx#4 ] ( print:1 [ data2 print::data idx#4 ] { } print:3 [ print::data idx#4 ] { { idx#13 = idx#14 } } ) always clobbers reg byte a Potential registers zp[1]:2 [ idx#13 idx#14 ] : zp[1]:2 , reg byte x , Potential registers zp[1]:3 [ print::$0 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , @@ -261,7 +261,7 @@ main: { sta print.data-1,y dey bne !- - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] print_from_main: // [5] phi idx#13 = 0 [phi:main->print#0] -- vbuxx=vbuc1 @@ -277,7 +277,7 @@ main: { sta print.data-1,y dey bne !- - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [5] phi idx#13 = idx#14 [phi:main::@1->print#0] -- register_copy @@ -289,16 +289,16 @@ main: { rts } // print -// print(union Data zp(2) data) +// void print(__zp(2) union Data data) print: { .label data = 2 - // [6] print::$0 = byte1 *((word*)&print::data) -- vbuaa=_byte1__deref_pwuc1 + // [6] print::$0 = byte1 *((unsigned int *)&print::data) -- vbuaa=_byte1__deref_pwuc1 lda.z data+1 // [7] SCREEN[idx#13] = print::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta SCREEN,x // [8] idx#3 = ++ idx#13 -- vbuxx=_inc_vbuxx inx - // [9] SCREEN[idx#3] = *((byte*)&print::data) -- pbuc1_derefidx_vbuxx=_deref_pbuc2 + // [9] SCREEN[idx#3] = *((char *)&print::data) -- pbuc1_derefidx_vbuxx=_deref_pbuc2 lda.z data sta SCREEN,x // [10] idx#4 = ++ idx#3 -- vbuxx=_inc_vbuxx @@ -334,19 +334,19 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_DATA = 2 -union Data data1 loadstore mem[2] = { b: $12 } -union Data data2 loadstore mem[2] = { b: $34 } -byte idx -byte idx#13 reg byte x 8.0 -byte idx#14 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 16.5 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_DATA = 2 +__loadstore union Data data1 = { b: $12 } // mem[2] +__loadstore union Data data2 = { b: $34 } // mem[2] +char idx +char idx#13 // reg byte x 8.0 +char idx#14 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 16.5 void main() -void print(union Data print::data) -byte~ print::$0 reg byte a 22.0 -union Data print::data loadstore zp[2]:2 +void print(union Data data) +char print::$0 // reg byte a 22.0 +__loadstore union Data print::data // zp[2]:2 reg byte x [ idx#13 idx#14 ] reg byte a [ print::$0 ] @@ -385,7 +385,7 @@ main: { sta print.data-1,y dey bne !- - // [1] call print + // [1] call print // [5] phi from main to print [phi:main->print] // [5] phi idx#13 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 @@ -399,7 +399,7 @@ main: { sta print.data-1,y dey bne !- - // [3] call print + // [3] call print // [5] phi from main::@1 to print [phi:main::@1->print] // [5] phi idx#13 = idx#14 [phi:main::@1->print#0] -- register_copy jsr print @@ -409,11 +409,11 @@ main: { rts } // print -// print(union Data zp(2) data) +// void print(__zp(2) union Data data) print: { .label data = 2 // BYTE1(data.w) - // [6] print::$0 = byte1 *((word*)&print::data) -- vbuaa=_byte1__deref_pwuc1 + // [6] print::$0 = byte1 *((unsigned int *)&print::data) -- vbuaa=_byte1__deref_pwuc1 lda.z data+1 // SCREEN[idx++] = BYTE1(data.w) // [7] SCREEN[idx#13] = print::$0 -- pbuc1_derefidx_vbuxx=vbuaa @@ -422,7 +422,7 @@ print: { // [8] idx#3 = ++ idx#13 -- vbuxx=_inc_vbuxx inx // SCREEN[idx++] = data.b - // [9] SCREEN[idx#3] = *((byte*)&print::data) -- pbuc1_derefidx_vbuxx=_deref_pbuc2 + // [9] SCREEN[idx#3] = *((char *)&print::data) -- pbuc1_derefidx_vbuxx=_deref_pbuc2 lda.z data sta SCREEN,x // SCREEN[idx++] = data.b; diff --git a/src/test/ref/union-7.sym b/src/test/ref/union-7.sym index 4e96533a2..7815747f7 100644 --- a/src/test/ref/union-7.sym +++ b/src/test/ref/union-7.sym @@ -1,16 +1,16 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_DATA = 2 -union Data data1 loadstore mem[2] = { b: $12 } -union Data data2 loadstore mem[2] = { b: $34 } -byte idx -byte idx#13 reg byte x 8.0 -byte idx#14 reg byte x 3.25 -byte idx#3 reg byte x 16.5 -byte idx#4 reg byte x 16.5 +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_DATA = 2 +__loadstore union Data data1 = { b: $12 } // mem[2] +__loadstore union Data data2 = { b: $34 } // mem[2] +char idx +char idx#13 // reg byte x 8.0 +char idx#14 // reg byte x 3.25 +char idx#3 // reg byte x 16.5 +char idx#4 // reg byte x 16.5 void main() -void print(union Data print::data) -byte~ print::$0 reg byte a 22.0 -union Data print::data loadstore zp[2]:2 +void print(union Data data) +char print::$0 // reg byte a 22.0 +__loadstore union Data print::data // zp[2]:2 reg byte x [ idx#13 idx#14 ] reg byte a [ print::$0 ] diff --git a/src/test/ref/union-8.asm b/src/test/ref/union-8.asm index 9f6ed6123..0f69ab5b4 100644 --- a/src/test/ref/union-8.asm +++ b/src/test/ref/union-8.asm @@ -48,7 +48,7 @@ main: { // } rts } -// data(word zp(2) i) +// __zp(8) union Data data(__zp(2) unsigned int i) data: { .label return = 8 .label i = 2 diff --git a/src/test/ref/union-8.cfg b/src/test/ref/union-8.cfg index 2f2f4cfc9..68f901bf7 100644 --- a/src/test/ref/union-8.cfg +++ b/src/test/ref/union-8.cfg @@ -2,25 +2,25 @@ void main() main: scope:[main] from [0] phi() - [1] call data + [1] call data to:main::@1 main::@1: scope:[main] from main [2] *(&main::d1) = memcpy(*(&data::return), union Data, SIZEOF_UNION_DATA) - [3] *SCREEN = *((byte*)&main::d1) - [4] call data + [3] *SCREEN = *((char *)&main::d1) + [4] call data to:main::@2 main::@2: scope:[main] from main::@1 [5] *(&main::d2) = memcpy(*(&data::return), union Data, SIZEOF_UNION_DATA) - [6] *(SCREEN+1) = *((byte*)&main::d2) + [6] *(SCREEN+1) = *((char *)&main::d2) to:main::@return main::@return: scope:[main] from main::@2 [7] return to:@return -union Data data(word data::i) +union Data data(unsigned int i) data: scope:[data] from main main::@1 [8] data::i#2 = phi( main/$1234, main::@1/$5678 ) - [9] *((word*)&data::return) = data::i#2 + [9] *((unsigned int *)&data::return) = data::i#2 to:data::@return data::@return: scope:[data] from data [10] return diff --git a/src/test/ref/union-8.log b/src/test/ref/union-8.log index d283c4604..2293bd594 100644 --- a/src/test/ref/union-8.log +++ b/src/test/ref/union-8.log @@ -1,8 +1,8 @@ Constantified RValue data::return = (union Data){ data::i } -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$0 Eliminating unused variable with no statement main::$1 -Removing C-classic struct-unwound assignment data::return = struct-unwound {*((word*)&data::return+OFFSET_UNION_DATA_W)} +Removing C-classic struct-unwound assignment data::return = struct-unwound {*((unsigned int *)&data::return+OFFSET_UNION_DATA_W)} CONTROL FLOW GRAPH SSA @@ -10,22 +10,22 @@ void main() main: scope:[main] from __start::@1 idx#11 = phi( __start::@1/idx#12 ) data::i#0 = $1234 - call data + call data data::return = data::return to:main::@1 main::@1: scope:[main] from main idx#6 = phi( main/idx#11 ) main::d1 = data::return - SCREEN[idx#6] = *((byte*)&main::d1+OFFSET_UNION_DATA_B) + SCREEN[idx#6] = *((char *)&main::d1+OFFSET_UNION_DATA_B) idx#0 = ++ idx#6 data::i#1 = $5678 - call data + call data data::return = data::return to:main::@2 main::@2: scope:[main] from main::@1 idx#7 = phi( main::@1/idx#0 ) main::d2 = data::return - SCREEN[idx#7] = *((byte*)&main::d2+OFFSET_UNION_DATA_B) + SCREEN[idx#7] = *((char *)&main::d2+OFFSET_UNION_DATA_B) idx#1 = ++ idx#7 to:main::@return main::@return: scope:[main] from main::@2 @@ -34,10 +34,10 @@ main::@return: scope:[main] from main::@2 return to:@return -union Data data(word data::i) +union Data data(unsigned int i) data: scope:[data] from main main::@1 data::i#2 = phi( main/data::i#0, main::@1/data::i#1 ) - *((word*)&data::return+OFFSET_UNION_DATA_W) = data::i#2 + *((unsigned int *)&data::return+OFFSET_UNION_DATA_W) = data::i#2 to:data::@return data::@return: scope:[data] from data return @@ -51,7 +51,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#12 = phi( __start::__init1/idx#3 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#9 = phi( __start::@1/idx#2 ) @@ -64,33 +64,33 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_DATA_B = 0 -constant byte OFFSET_UNION_DATA_W = 0 -constant byte* const SCREEN = (byte*)$400 +__constant char OFFSET_UNION_DATA_B = 0 +__constant char OFFSET_UNION_DATA_W = 0 +__constant char * const SCREEN = (char *)$400 void __start() -union Data data(word data::i) -word data::i -word data::i#0 -word data::i#1 -word data::i#2 -union Data data::return loadstore -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +union Data data(unsigned int i) +unsigned int data::i +unsigned int data::i#0 +unsigned int data::i#1 +unsigned int data::i#2 +__loadstore union Data data::return +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() -union Data main::d1 loadstore -union Data main::d2 loadstore +__loadstore union Data main::d1 +__loadstore union Data main::d2 Adding number conversion cast (unumber) $1234 in data::i#0 = $1234 Adding number conversion cast (unumber) $5678 in data::i#1 = $5678 @@ -98,12 +98,12 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast data::i#0 = (unumber)$1234 Inlining cast data::i#1 = (unumber)$5678 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $1234 Simplifying constant integer cast $5678 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $1234 -Finalized unsigned number type (word) $5678 +Finalized unsigned number type (unsigned int) $1234 +Finalized unsigned number type (unsigned int) $5678 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias idx#11 = idx#6 Alias idx#0 = idx#7 @@ -118,10 +118,10 @@ Constant data::i#0 = $1234 Constant data::i#1 = $5678 Constant idx#12 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying expression containing zero (byte*)&main::d1 in [5] SCREEN[idx#12] = *((byte*)&main::d1+OFFSET_UNION_DATA_B) -Simplifying expression containing zero SCREEN in [5] SCREEN[idx#12] = *((byte*)&main::d1) -Simplifying expression containing zero (byte*)&main::d2 in [11] SCREEN[idx#0] = *((byte*)&main::d2+OFFSET_UNION_DATA_B) -Simplifying expression containing zero (word*)&data::return in [15] *((word*)&data::return+OFFSET_UNION_DATA_W) = data::i#2 +Simplifying expression containing zero (char *)&main::d1 in [5] SCREEN[idx#12] = *((char *)&main::d1+OFFSET_UNION_DATA_B) +Simplifying expression containing zero SCREEN in [5] SCREEN[idx#12] = *((char *)&main::d1) +Simplifying expression containing zero (char *)&main::d2 in [11] SCREEN[idx#0] = *((char *)&main::d2+OFFSET_UNION_DATA_B) +Simplifying expression containing zero (unsigned int *)&data::return in [15] *((unsigned int *)&data::return+OFFSET_UNION_DATA_W) = data::i#2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable idx#1 and assignment [9] idx#1 = ++ idx#0 Eliminating unused constant OFFSET_UNION_DATA_W @@ -168,25 +168,25 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call data + [1] call data to:main::@1 main::@1: scope:[main] from main [2] *(&main::d1) = memcpy(*(&data::return), union Data, SIZEOF_UNION_DATA) - [3] *SCREEN = *((byte*)&main::d1) - [4] call data + [3] *SCREEN = *((char *)&main::d1) + [4] call data to:main::@2 main::@2: scope:[main] from main::@1 [5] *(&main::d2) = memcpy(*(&data::return), union Data, SIZEOF_UNION_DATA) - [6] *(SCREEN+1) = *((byte*)&main::d2) + [6] *(SCREEN+1) = *((char *)&main::d2) to:main::@return main::@return: scope:[main] from main::@2 [7] return to:@return -union Data data(word data::i) +union Data data(unsigned int i) data: scope:[data] from main main::@1 [8] data::i#2 = phi( main/$1234, main::@1/$5678 ) - [9] *((word*)&data::return) = data::i#2 + [9] *((unsigned int *)&data::return) = data::i#2 to:data::@return data::@return: scope:[data] from data [10] return @@ -194,14 +194,14 @@ data::@return: scope:[data] from data VARIABLE REGISTER WEIGHTS -union Data data(word data::i) -word data::i -word data::i#2 11.0 -union Data data::return loadstore -byte idx +union Data data(unsigned int i) +unsigned int data::i +unsigned int data::i#2 // 11.0 +__loadstore union Data data::return +char idx void main() -union Data main::d1 loadstore -union Data main::d2 loadstore +__loadstore union Data main::d1 +__loadstore union Data main::d2 Initial phi equivalence classes [ data::i#2 ] @@ -219,10 +219,10 @@ Allocated zp[2]:6 [ main::d2 ] Allocated zp[2]:8 [ data::return ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [2] *(&main::d1) = memcpy(*(&data::return), union Data, SIZEOF_UNION_DATA) [ main::d1 data::return main::d2 ] ( [ main::d1 data::return main::d2 ] { } ) always clobbers reg byte a reg byte y -Statement [3] *SCREEN = *((byte*)&main::d1) [ data::return main::d2 ] ( [ data::return main::d2 ] { } ) always clobbers reg byte a +Statement [3] *SCREEN = *((char *)&main::d1) [ data::return main::d2 ] ( [ data::return main::d2 ] { } ) always clobbers reg byte a Statement [5] *(&main::d2) = memcpy(*(&data::return), union Data, SIZEOF_UNION_DATA) [ main::d2 ] ( [ main::d2 ] { } ) always clobbers reg byte a reg byte y -Statement [6] *(SCREEN+1) = *((byte*)&main::d2) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [9] *((word*)&data::return) = data::i#2 [ data::return ] ( data:1 [ main::d1 main::d2 data::return ] { } data:4 [ main::d2 data::return ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+1) = *((char *)&main::d2) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [9] *((unsigned int *)&data::return) = data::i#2 [ data::return ] ( data:1 [ main::d1 main::d2 data::return ] { } data:4 [ main::d2 data::return ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ data::i#2 ] : zp[2]:2 , Potential registers zp[2]:4 [ main::d1 ] : zp[2]:4 , Potential registers zp[2]:6 [ main::d2 ] : zp[2]:6 , @@ -259,7 +259,7 @@ ASSEMBLER BEFORE OPTIMIZATION main: { .label d1 = 4 .label d2 = 6 - // [1] call data + // [1] call data // [8] phi from main to data [phi:main->data] data_from_main: // [8] phi data::i#2 = $1234 [phi:main->data#0] -- vwuz1=vwuc1 @@ -278,10 +278,10 @@ main: { sta d1-1,y dey bne !- - // [3] *SCREEN = *((byte*)&main::d1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *SCREEN = *((char *)&main::d1) -- _deref_pbuc1=_deref_pbuc2 lda.z d1 sta SCREEN - // [4] call data + // [4] call data // [8] phi from main::@1 to data [phi:main::@1->data] data_from___b1: // [8] phi data::i#2 = $5678 [phi:main::@1->data#0] -- vwuz1=vwuc1 @@ -300,7 +300,7 @@ main: { sta d2-1,y dey bne !- - // [6] *(SCREEN+1) = *((byte*)&main::d2) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+1) = *((char *)&main::d2) -- _deref_pbuc1=_deref_pbuc2 lda.z d2 sta SCREEN+1 jmp __breturn @@ -310,11 +310,11 @@ main: { rts } // data -// data(word zp(2) i) +// __zp(8) union Data data(__zp(2) unsigned int i) data: { .label return = 8 .label i = 2 - // [9] *((word*)&data::return) = data::i#2 -- _deref_pwuc1=vwuz1 + // [9] *((unsigned int *)&data::return) = data::i#2 -- _deref_pwuc1=vwuz1 lda.z i sta.z return lda.z i+1 @@ -342,16 +342,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_DATA = 2 -union Data data(word data::i) -word data::i -word data::i#2 i zp[2]:2 11.0 -union Data data::return loadstore zp[2]:8 -byte idx +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_DATA = 2 +union Data data(unsigned int i) +unsigned int data::i +unsigned int data::i#2 // i zp[2]:2 11.0 +__loadstore union Data data::return // zp[2]:8 +char idx void main() -union Data main::d1 loadstore zp[2]:4 -union Data main::d2 loadstore zp[2]:6 +__loadstore union Data main::d1 // zp[2]:4 +__loadstore union Data main::d2 // zp[2]:6 zp[2]:2 [ data::i#2 ] zp[2]:4 [ main::d1 ] @@ -382,7 +382,7 @@ main: { .label d1 = 4 .label d2 = 6 // union Data d1 = data(0x1234) - // [1] call data + // [1] call data // [8] phi from main to data [phi:main->data] // [8] phi data::i#2 = $1234 [phi:main->data#0] -- vwuz1=vwuc1 lda #<$1234 @@ -400,11 +400,11 @@ main: { dey bne !- // SCREEN[idx++] = d1.b - // [3] *SCREEN = *((byte*)&main::d1) -- _deref_pbuc1=_deref_pbuc2 + // [3] *SCREEN = *((char *)&main::d1) -- _deref_pbuc1=_deref_pbuc2 lda.z d1 sta SCREEN // union Data d2 = data(0x5678) - // [4] call data + // [4] call data // [8] phi from main::@1 to data [phi:main::@1->data] // [8] phi data::i#2 = $5678 [phi:main::@1->data#0] -- vwuz1=vwuc1 lda #<$5678 @@ -422,7 +422,7 @@ main: { dey bne !- // SCREEN[idx++] = d2.b - // [6] *(SCREEN+1) = *((byte*)&main::d2) -- _deref_pbuc1=_deref_pbuc2 + // [6] *(SCREEN+1) = *((char *)&main::d2) -- _deref_pbuc1=_deref_pbuc2 lda.z d2 sta SCREEN+1 // main::@return @@ -431,12 +431,12 @@ main: { rts } // data -// data(word zp(2) i) +// __zp(8) union Data data(__zp(2) unsigned int i) data: { .label return = 8 .label i = 2 // return { i }; - // [9] *((word*)&data::return) = data::i#2 -- _deref_pwuc1=vwuz1 + // [9] *((unsigned int *)&data::return) = data::i#2 -- _deref_pwuc1=vwuz1 lda.z i sta.z return lda.z i+1 diff --git a/src/test/ref/union-8.sym b/src/test/ref/union-8.sym index 4f00b36c9..18c15b1fd 100644 --- a/src/test/ref/union-8.sym +++ b/src/test/ref/union-8.sym @@ -1,13 +1,13 @@ -constant byte* const SCREEN = (byte*) 1024 -constant byte SIZEOF_UNION_DATA = 2 -union Data data(word data::i) -word data::i -word data::i#2 i zp[2]:2 11.0 -union Data data::return loadstore zp[2]:8 -byte idx +__constant char * const SCREEN = (char *) 1024 +__constant char SIZEOF_UNION_DATA = 2 +union Data data(unsigned int i) +unsigned int data::i +unsigned int data::i#2 // i zp[2]:2 11.0 +__loadstore union Data data::return // zp[2]:8 +char idx void main() -union Data main::d1 loadstore zp[2]:4 -union Data main::d2 loadstore zp[2]:6 +__loadstore union Data main::d1 // zp[2]:4 +__loadstore union Data main::d2 // zp[2]:6 zp[2]:2 [ data::i#2 ] zp[2]:4 [ main::d1 ] diff --git a/src/test/ref/unroll-for-min.log b/src/test/ref/unroll-for-min.log index 063fee972..84c32a0d5 100644 --- a/src/test/ref/unroll-for-min.log +++ b/src/test/ref/unroll-for-min.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -29,14 +29,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [5] unroll if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -53,7 +53,7 @@ Adding number conversion cast (unumber) 3 in [3] unroll if(main::i#1!=3) goto ma Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Unrolling loop Loop head: main::@1 tails: main::@1 blocks: main::@1 Successful SSA optimization Pass2LoopUnroll @@ -144,7 +144,7 @@ main::@return: scope:[main] from main::@1_2 VARIABLE REGISTER WEIGHTS void main() -byte main::i +char main::i Initial phi equivalence classes Complete equivalence classes @@ -220,8 +220,8 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i +__constant char *main::SCREEN = (char *) 1024 +char main::i diff --git a/src/test/ref/unroll-for-min.sym b/src/test/ref/unroll-for-min.sym index 552144c5b..9fa6c3aeb 100644 --- a/src/test/ref/unroll-for-min.sym +++ b/src/test/ref/unroll-for-min.sym @@ -1,4 +1,4 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i +__constant char *main::SCREEN = (char *) 1024 +char main::i diff --git a/src/test/ref/unroll-loop-modifyvar.log b/src/test/ref/unroll-loop-modifyvar.log index 2442a9d1a..43d342b4d 100644 --- a/src/test/ref/unroll-loop-modifyvar.log +++ b/src/test/ref/unroll-loop-modifyvar.log @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,20 +33,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::a -byte main::a#0 -byte main::a#1 -byte main::a#2 -byte main::a#3 +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::a +char main::a#0 +char main::a#1 +char main::a#2 +char main::a#3 Adding number conversion cast (unumber) $e in main::$0 = main::a#1 < $e Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $e Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $e +Finalized unsigned number type (char) $e Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::a#1 = main::a#3 Successful SSA optimization Pass2AliasElimination @@ -357,7 +357,7 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte main::a +char main::a Initial phi equivalence classes Complete equivalence classes @@ -511,8 +511,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::a +__constant char *main::SCREEN = (char *) 1024 +char main::a diff --git a/src/test/ref/unroll-loop-modifyvar.sym b/src/test/ref/unroll-loop-modifyvar.sym index 895b0830e..8a1da68ab 100644 --- a/src/test/ref/unroll-loop-modifyvar.sym +++ b/src/test/ref/unroll-loop-modifyvar.sym @@ -1,4 +1,4 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::a +__constant char *main::SCREEN = (char *) 1024 +char main::a diff --git a/src/test/ref/unroll-screenfill-for-double.log b/src/test/ref/unroll-screenfill-for-double.log index 3d1575c7c..138445ddf 100644 --- a/src/test/ref/unroll-screenfill-for-double.log +++ b/src/test/ref/unroll-screenfill-for-double.log @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,31 +42,31 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -byte*~ main::$1 -bool~ main::$2 -bool~ main::$3 -constant byte* main::SCREEN = (byte*)$400 -byte main::line -byte main::line#0 -byte main::line#1 -byte main::line#2 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 +number main::$0 +char *main::$1 +bool main::$2 +bool main::$3 +__constant char *main::SCREEN = (char *)$400 +char main::line +char main::line#0 +char main::line#1 +char main::line#2 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 Adding number conversion cast (unumber) $28 in main::$0 = main::line#2 * $28 Adding number conversion cast (unumber) main::$0 in main::$0 = main::line#2 * (unumber)$28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::line#2 * $28 +Inferred type updated to char in main::$0 = main::line#2 * $28 Alias main::x#2 = main::x#3 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::x#2 main::x#4 @@ -92,8 +92,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll @@ -1302,8 +1302,8 @@ main::@return: scope:[main] from main::@2_120 VARIABLE REGISTER WEIGHTS void main() -byte main::line -byte main::x +char main::line +char main::x Initial phi equivalence classes Complete equivalence classes @@ -2549,9 +2549,9 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line -byte main::x +__constant char *main::SCREEN = (char *) 1024 +char main::line +char main::x diff --git a/src/test/ref/unroll-screenfill-for-double.sym b/src/test/ref/unroll-screenfill-for-double.sym index 05be49448..13cb56d1c 100644 --- a/src/test/ref/unroll-screenfill-for-double.sym +++ b/src/test/ref/unroll-screenfill-for-double.sym @@ -1,5 +1,5 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line -byte main::x +__constant char *main::SCREEN = (char *) 1024 +char main::line +char main::x diff --git a/src/test/ref/unroll-screenfill-for.log b/src/test/ref/unroll-screenfill-for.log index c64e29531..a9d6d7f6d 100644 --- a/src/test/ref/unroll-screenfill-for.log +++ b/src/test/ref/unroll-screenfill-for.log @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@3 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -42,31 +42,31 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -byte*~ main::$1 -bool~ main::$2 -bool~ main::$3 -constant byte* main::SCREEN = (byte*)$400 -byte main::line -byte main::line#0 -byte main::line#1 -byte main::line#2 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 +number main::$0 +char *main::$1 +bool main::$2 +bool main::$3 +__constant char *main::SCREEN = (char *)$400 +char main::line +char main::line#0 +char main::line#1 +char main::line#2 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 Adding number conversion cast (unumber) $28 in main::$0 = main::line#2 * $28 Adding number conversion cast (unumber) main::$0 in main::$0 = main::line#2 * (unumber)$28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::line#2 * $28 +Inferred type updated to char in main::$0 = main::line#2 * $28 Alias main::x#2 = main::x#3 Successful SSA optimization Pass2AliasElimination Identical Phi Values main::x#2 main::x#4 @@ -92,8 +92,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $19 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll @@ -814,10 +814,10 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::line -byte main::x -byte main::x#1 16.5 -byte main::x#4 22.00000000000001 +char main::line +char main::x +char main::x#1 // 16.5 +char main::x#4 // 22.00000000000001 Initial phi equivalence classes [ main::x#4 main::x#1 ] @@ -1096,11 +1096,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line -byte main::x -byte main::x#1 reg byte x 16.5 -byte main::x#4 reg byte x 22.00000000000001 +__constant char *main::SCREEN = (char *) 1024 +char main::line +char main::x +char main::x#1 // reg byte x 16.5 +char main::x#4 // reg byte x 22.00000000000001 reg byte x [ main::x#4 main::x#1 ] diff --git a/src/test/ref/unroll-screenfill-for.sym b/src/test/ref/unroll-screenfill-for.sym index 232b14141..57cd81efe 100644 --- a/src/test/ref/unroll-screenfill-for.sym +++ b/src/test/ref/unroll-screenfill-for.sym @@ -1,8 +1,8 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line -byte main::x -byte main::x#1 reg byte x 16.5 -byte main::x#4 reg byte x 22.00000000000001 +__constant char *main::SCREEN = (char *) 1024 +char main::line +char main::x +char main::x#1 // reg byte x 16.5 +char main::x#4 // reg byte x 22.00000000000001 reg byte x [ main::x#4 main::x#1 ] diff --git a/src/test/ref/unroll-screenfill-while.log b/src/test/ref/unroll-screenfill-while.log index b9e710881..ff5629edd 100644 --- a/src/test/ref/unroll-screenfill-while.log +++ b/src/test/ref/unroll-screenfill-while.log @@ -35,7 +35,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -46,36 +46,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -number~ main::$1 -byte*~ main::$2 -bool~ main::$3 -constant byte* main::SCREEN = (byte*)$400 -byte main::line -byte main::line#0 -byte main::line#1 -byte main::line#2 -byte main::line#3 -byte main::x -byte main::x#0 -byte main::x#1 -byte main::x#2 -byte main::x#3 -byte main::x#4 -byte main::x#5 +bool main::$0 +number main::$1 +char *main::$2 +bool main::$3 +__constant char *main::SCREEN = (char *)$400 +char main::line +char main::line#0 +char main::line#1 +char main::line#2 +char main::line#3 +char main::x +char main::x#0 +char main::x#1 +char main::x#2 +char main::x#3 +char main::x#4 +char main::x#5 Adding number conversion cast (unumber) $19 in main::$0 = main::line#2 != $19 Adding number conversion cast (unumber) $28 in main::$1 = main::line#3 * $28 Adding number conversion cast (unumber) main::$1 in main::$1 = main::line#3 * (unumber)$28 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $19 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::line#3 * $28 +Inferred type updated to char in main::$1 = main::line#3 * $28 Alias main::line#2 = main::line#3 Alias main::x#2 = main::x#4 main::x#3 Successful SSA optimization Pass2AliasElimination @@ -98,7 +98,7 @@ Adding number conversion cast (unumber) $28 in [8] if(main::x#1!=$28) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Unrolling loop Loop head: main::@2 tails: main::@3 blocks: main::@3 main::@2 Successful SSA optimization Pass2LoopUnroll @@ -841,10 +841,10 @@ main::@return: scope:[main] from main::@3 VARIABLE REGISTER WEIGHTS void main() -byte main::line -byte main::x -byte main::x#1 16.5 -byte main::x#5 22.00000000000001 +char main::line +char main::x +char main::x#1 // 16.5 +char main::x#5 // 22.00000000000001 Initial phi equivalence classes [ main::x#5 main::x#1 ] @@ -1123,11 +1123,11 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line -byte main::x -byte main::x#1 reg byte x 16.5 -byte main::x#5 reg byte x 22.00000000000001 +__constant char *main::SCREEN = (char *) 1024 +char main::line +char main::x +char main::x#1 // reg byte x 16.5 +char main::x#5 // reg byte x 22.00000000000001 reg byte x [ main::x#5 main::x#1 ] diff --git a/src/test/ref/unroll-screenfill-while.sym b/src/test/ref/unroll-screenfill-while.sym index 6658bf335..188c15ce7 100644 --- a/src/test/ref/unroll-screenfill-while.sym +++ b/src/test/ref/unroll-screenfill-while.sym @@ -1,8 +1,8 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line -byte main::x -byte main::x#1 reg byte x 16.5 -byte main::x#5 reg byte x 22.00000000000001 +__constant char *main::SCREEN = (char *) 1024 +char main::line +char main::x +char main::x#1 // reg byte x 16.5 +char main::x#5 // reg byte x 22.00000000000001 reg byte x [ main::x#5 main::x#1 ] diff --git a/src/test/ref/unroll-while-min.log b/src/test/ref/unroll-while-min.log index 05d58ea36..7ae1eb17c 100644 --- a/src/test/ref/unroll-while-min.log +++ b/src/test/ref/unroll-while-min.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,20 +32,20 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -constant byte* main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +__constant char *main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 2 in main::$0 = main::i#2 < 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -143,7 +143,7 @@ main::@return: scope:[main] from main::@2_1 VARIABLE REGISTER WEIGHTS void main() -byte main::i +char main::i Initial phi equivalence classes Complete equivalence classes @@ -209,8 +209,8 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i +__constant char *main::SCREEN = (char *) 1024 +char main::i diff --git a/src/test/ref/unroll-while-min.sym b/src/test/ref/unroll-while-min.sym index 552144c5b..9fa6c3aeb 100644 --- a/src/test/ref/unroll-while-min.sym +++ b/src/test/ref/unroll-while-min.sym @@ -1,4 +1,4 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::i +__constant char *main::SCREEN = (char *) 1024 +char main::i diff --git a/src/test/ref/unused-irq.log b/src/test/ref/unused-irq.log index e91b97658..e80c1857c 100644 --- a/src/test/ref/unused-irq.log +++ b/src/test/ref/unused-irq.log @@ -28,7 +28,7 @@ irq2::@return: scope:[irq2] from irq2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,15 +37,15 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant void()** const HARDWARE_IRQ = (void()**)$fffe -constant byte* const SCREEN = (byte*)$400 +__constant void (** const HARDWARE_IRQ)() = (void (**)())$fffe +__constant char * const SCREEN = (char *)$400 void __start() __interrupt(rom_min_c64) void irq1() __interrupt(rom_min_c64) void irq2() void main() -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (void()**) 65534 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (void (**)()) 65534 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -179,8 +179,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const SCREEN = (char *) 1024 __interrupt(rom_min_c64) void irq1() __interrupt(rom_min_c64) void irq2() void main() diff --git a/src/test/ref/unused-irq.sym b/src/test/ref/unused-irq.sym index de6d53b68..1230f426a 100644 --- a/src/test/ref/unused-irq.sym +++ b/src/test/ref/unused-irq.sym @@ -1,5 +1,5 @@ -constant void()** const HARDWARE_IRQ = (void()**) 65534 -constant byte* const SCREEN = (byte*) 1024 +__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534 +__constant char * const SCREEN = (char *) 1024 __interrupt(rom_min_c64) void irq1() __interrupt(rom_min_c64) void irq2() void main() diff --git a/src/test/ref/unused-method.log b/src/test/ref/unused-method.log index c66d6dee7..40955a4a0 100644 --- a/src/test/ref/unused-method.log +++ b/src/test/ref/unused-method.log @@ -11,7 +11,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -22,19 +22,19 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::screen = (byte*)$400 +__constant char *main::screen = (char *)$400 Adding number conversion cast (unumber) 1 in main::screen[0] = 1 Adding number conversion cast (unumber) 0 in main::screen[0] = ((unumber)) 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast main::screen[(unumber)0] = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero main::screen in [0] main::screen[0] = 1 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -109,7 +109,7 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/unused-method.sym b/src/test/ref/unused-method.sym index 7d06ab02f..2545d45d0 100644 --- a/src/test/ref/unused-method.sym +++ b/src/test/ref/unused-method.sym @@ -1,3 +1,3 @@ void main() -constant byte* main::screen = (byte*) 1024 +__constant char *main::screen = (char *) 1024 diff --git a/src/test/ref/unused-vars.log b/src/test/ref/unused-vars.log index f369d9104..39e533a70 100644 --- a/src/test/ref/unused-vars.log +++ b/src/test/ref/unused-vars.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement main::$1 Eliminating unused variable with no statement main::$3 @@ -7,7 +7,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 b#15 = phi( __start::@1/b#16 ) - call s + call s s::return#0 = s::return#2 to:main::@2 main::@2: scope:[main] from main @@ -31,7 +31,7 @@ main::@return: scope:[main] from main::@1 return to:@return -byte s() +char s() s: scope:[s] from main b#11 = phi( main/b#15 ) b#3 = ++ b#11 @@ -49,11 +49,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - b#5 = (byte)2/2 + b#5 = (char)2/2 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 b#16 = phi( __start::__init1/b#5 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 b#13 = phi( __start::@1/b#2 ) @@ -66,50 +66,50 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte b -byte b#0 -byte b#1 -byte b#10 -byte b#11 -byte b#12 -byte b#13 -byte b#14 -byte b#15 -byte b#16 -byte b#2 -byte b#3 -byte b#4 -byte b#5 -byte b#6 -byte b#7 -byte b#8 -byte b#9 +char b +char b#0 +char b#1 +char b#10 +char b#11 +char b#12 +char b#13 +char b#14 +char b#15 +char b#16 +char b#2 +char b#3 +char b#4 +char b#5 +char b#6 +char b#7 +char b#8 +char b#9 void main() -bool~ main::$4 -constant byte* main::COLS = (byte*)$d800 -constant byte main::col = 2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte s() -byte s::return -byte s::return#0 -byte s::return#1 -byte s::return#2 -byte s::return#3 +bool main::$4 +__constant char *main::COLS = (char *)$d800 +__constant char main::col = 2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char s() +char s::return +char s::return#0 +char s::return#1 +char s::return#2 +char s::return#3 Adding number conversion cast (unumber) 2 in s::return#1 = 2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast s::return#1 = (unumber)2 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias b#0 = b#8 Alias b#10 = b#9 b#2 @@ -128,7 +128,7 @@ Simple Condition main::$4 [11] if(main::i#1!=rangelast(0,$64)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Constant s::return#1 = 2 -Constant b#16 = (byte)2/2 +Constant b#16 = (char)2/2 Successful SSA optimization Pass2ConstantIdentification Constant s::return#0 = s::return#1 Successful SSA optimization Pass2ConstantIdentification @@ -149,13 +149,13 @@ Adding number conversion cast (unumber) $65 in [6] if(main::i#1!=$65) goto main: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $65 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $65 +Finalized unsigned number type (char) $65 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [8] b#12 = ++ b#16 Successful SSA optimization Pass2ConstantRValueConsolidation Constant b#12 = ++b#16 Successful SSA optimization Pass2ConstantIdentification -Removing call to empty/unused procedure [0] call s +Removing call to empty/unused procedure [0] call s Removing unused procedure s Removing unused procedure block s Removing unused procedure block s::@return @@ -169,12 +169,12 @@ Inlining constant with different constant siblings b#16 Inlining constant with different constant siblings b#12 Inlining constant with different constant siblings b#1 Constant inlined main::i#0 = 0 -Constant inlined b#1 = ++++(byte)2/2 -Constant inlined b#16 = (byte)2/2 -Constant inlined b#12 = ++(byte)2/2 +Constant inlined b#1 = ++++(char)2/2 +Constant inlined b#16 = (char)2/2 +Constant inlined b#12 = ++(char)2/2 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 2/2 Successful SSA optimization PassNCastSimplification @@ -209,11 +209,11 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS -byte b +char b void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 14.666666666666666 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 14.666666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -299,14 +299,14 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte b +__constant char * const SCREEN = (char *) 1024 +char b void main() -constant byte* main::COLS = (byte*) 55296 -constant byte main::col = 2 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +__constant char *main::COLS = (char *) 55296 +__constant char main::col = 2 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/unused-vars.sym b/src/test/ref/unused-vars.sym index 76f1100f8..71dc5f45c 100644 --- a/src/test/ref/unused-vars.sym +++ b/src/test/ref/unused-vars.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 -byte b +__constant char * const SCREEN = (char *) 1024 +char b void main() -constant byte* main::COLS = (byte*) 55296 -constant byte main::col = 2 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 14.666666666666666 +__constant char *main::COLS = (char *) 55296 +__constant char main::col = 2 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 14.666666666666666 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/unusedblockproblem.log b/src/test/ref/unusedblockproblem.log index 22acaa52e..8bf62b06e 100644 --- a/src/test/ref/unusedblockproblem.log +++ b/src/test/ref/unusedblockproblem.log @@ -26,7 +26,7 @@ main::@return: scope:[main] from main::@4 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,14 +37,14 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$1 -constant byte* main::SCREEN = (byte*)$400 -byte main::line -byte main::line#0 -byte main::line#1 -byte main::line#2 +bool main::$1 +__constant char *main::SCREEN = (char *)$400 +char main::line +char main::line#0 +char main::line#1 +char main::line#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$1 [7] if(main::line#1!=rangelast(0,$18)) goto main::@4 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -91,7 +91,7 @@ main::@1: scope:[main] from main main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::line +char main::line Initial phi equivalence classes Complete equivalence classes @@ -136,8 +136,8 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line +__constant char *main::SCREEN = (char *) 1024 +char main::line diff --git a/src/test/ref/unusedblockproblem.sym b/src/test/ref/unusedblockproblem.sym index 69ef4a210..0eb71cd36 100644 --- a/src/test/ref/unusedblockproblem.sym +++ b/src/test/ref/unusedblockproblem.sym @@ -1,4 +1,4 @@ void main() -constant byte* main::SCREEN = (byte*) 1024 -byte main::line +__constant char *main::SCREEN = (char *) 1024 +char main::line diff --git a/src/test/ref/useglobal.log b/src/test/ref/useglobal.log index 85d0e7f98..653c805ef 100644 --- a/src/test/ref/useglobal.log +++ b/src/test/ref/useglobal.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,7 +25,7 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 +__constant char *SCREEN = (char *)$400 void __start() void main() @@ -33,10 +33,10 @@ Adding number conversion cast (unumber) 1 in *SCREEN = 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *SCREEN = (unumber)1 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Removing unused procedure __start Removing unused procedure block __start @@ -111,7 +111,7 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/useglobal.sym b/src/test/ref/useglobal.sym index 2527e14d5..94fb47daa 100644 --- a/src/test/ref/useglobal.sym +++ b/src/test/ref/useglobal.sym @@ -1,3 +1,3 @@ -constant byte* SCREEN = (byte*) 1024 +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/useuninitialized.log b/src/test/ref/useuninitialized.log index 73839a4be..6a0650193 100644 --- a/src/test/ref/useuninitialized.log +++ b/src/test/ref/useuninitialized.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -30,7 +30,7 @@ __start::__init1: scope:[__start] from __start __start::@1: scope:[__start] from __start::__init1 s#8 = phi( __start::__init1/s#2 ) b#9 = phi( __start::__init1/b#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 b#7 = phi( __start::@1/b#1 ) @@ -48,31 +48,31 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -byte b -byte b#0 -byte b#1 -byte b#2 -byte b#3 -byte b#4 -byte b#5 -byte b#6 -byte b#7 -byte b#8 -byte b#9 +char b +char b#0 +char b#1 +char b#2 +char b#3 +char b#4 +char b#5 +char b#6 +char b#7 +char b#8 +char b#9 void main() -number~ main::$0 -byte*~ main::$1 -constant byte* main::screen = (byte*)$400 -byte s -byte s#0 -byte s#1 -byte s#2 -byte s#3 -byte s#4 -byte s#5 -byte s#6 -byte s#7 -byte s#8 +number main::$0 +char *main::$1 +__constant char *main::screen = (char *)$400 +char s +char s#0 +char s#1 +char s#2 +char s#3 +char s#4 +char s#5 +char s#6 +char s#7 +char s#8 Adding number conversion cast (unumber) 1 in main::$0 = b#5 + 1 Adding number conversion cast (unumber) main::$0 in main::$0 = b#5 + (unumber)1 @@ -81,16 +81,16 @@ Adding number conversion cast (unumber) 1 in main::$1 = main::screen + 1 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast b#0 = (unumber)3 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 3 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = b#5 + 1 +Inferred type updated to char in main::$0 = b#5 + 1 Alias s#0 = main::$0 s#5 s#1 Alias b#0 = b#6 b#1 Alias b#2 = b#9 @@ -143,9 +143,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte b +char b void main() -byte s +char s Initial phi equivalence classes Complete equivalence classes @@ -200,12 +200,12 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte b -constant byte b#0 b = 3 +char b +__constant char b#0 = 3 // b void main() -constant byte* main::screen = (byte*) 1024 -byte s -constant byte s#0 s = 1 +__constant char *main::screen = (char *) 1024 +char s +__constant char s#0 = 1 // s diff --git a/src/test/ref/useuninitialized.sym b/src/test/ref/useuninitialized.sym index e1e7d18fc..ee30ca37c 100644 --- a/src/test/ref/useuninitialized.sym +++ b/src/test/ref/useuninitialized.sym @@ -1,7 +1,7 @@ -byte b -constant byte b#0 b = 3 +char b +__constant char b#0 = 3 // b void main() -constant byte* main::screen = (byte*) 1024 -byte s -constant byte s#0 s = 1 +__constant char *main::screen = (char *) 1024 +char s +__constant char s#0 = 1 // s diff --git a/src/test/ref/var-export.log b/src/test/ref/var-export.log index 6c091a515..c4c84283b 100644 --- a/src/test/ref/var-export.log +++ b/src/test/ref/var-export.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -16,7 +16,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -25,17 +25,17 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* MESSAGE[] = "camelot!" -constant byte* SCREEN = (byte*)$400 +__constant char MESSAGE[] = "camelot!" +__constant char *SCREEN = (char *)$400 void __start() void main() Adding number conversion cast (unumber) 0 in SCREEN[0] = 'x' Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SCREEN in [0] SCREEN[0] = 'x' Successful SSA optimization PassNSimplifyExpressionWithZero @@ -115,8 +115,8 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* MESSAGE[] = "camelot!" -constant byte* SCREEN = (byte*) 1024 +__constant char MESSAGE[] = "camelot!" +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/var-export.sym b/src/test/ref/var-export.sym index e4de291d8..093d29643 100644 --- a/src/test/ref/var-export.sym +++ b/src/test/ref/var-export.sym @@ -1,4 +1,4 @@ -constant byte* MESSAGE[] = "camelot!" -constant byte* SCREEN = (byte*) 1024 +__constant char MESSAGE[] = "camelot!" +__constant char *SCREEN = (char *) 1024 void main() diff --git a/src/test/ref/var-forward-problem.log b/src/test/ref/var-forward-problem.log index a0c4bdd8c..c55c60b76 100644 --- a/src/test/ref/var-forward-problem.log +++ b/src/test/ref/var-forward-problem.log @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,11 +23,11 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() -constant const byte b = 'a' +__constant const char b = 'a' void main() -constant byte* const screen = (byte*)$400 +__constant char * const screen = (char *)$400 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Removing unused procedure __start Removing unused procedure block __start @@ -101,9 +101,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const byte b = 'a' +__constant const char b = 'a' void main() -constant byte* const screen = (byte*) 1024 +__constant char * const screen = (char *) 1024 diff --git a/src/test/ref/var-forward-problem.sym b/src/test/ref/var-forward-problem.sym index f7a1a5e65..44ae64e7d 100644 --- a/src/test/ref/var-forward-problem.sym +++ b/src/test/ref/var-forward-problem.sym @@ -1,4 +1,4 @@ -constant const byte b = 'a' +__constant const char b = 'a' void main() -constant byte* const screen = (byte*) 1024 +__constant char * const screen = (char *) 1024 diff --git a/src/test/ref/var-forward-problem2.log b/src/test/ref/var-forward-problem2.log index 58171a8a8..322a83eb0 100644 --- a/src/test/ref/var-forward-problem2.log +++ b/src/test/ref/var-forward-problem2.log @@ -2,13 +2,13 @@ Resolved forward reference screen to screen Resolved forward reference b to b Resolved forward reference b to b Resolved forward reference screen to screen -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - screen#0 = (byte*)$400 + screen#0 = (char *)$400 b#0 = 'a' *screen#0 = b#0 to:main::@return @@ -24,13 +24,13 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#2 = (byte*) 0 + screen#2 = (char *) 0 b#2 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 b#8 = phi( __start::__init1/b#2 ) screen#8 = phi( __start::__init1/screen#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 b#6 = phi( __start::@1/b#1 ) @@ -48,29 +48,29 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -byte b -byte b#0 -byte b#1 -byte b#2 -byte b#3 -byte b#4 -byte b#5 -byte b#6 -byte b#7 -byte b#8 +char b +char b#0 +char b#1 +char b#2 +char b#3 +char b#4 +char b#5 +char b#6 +char b#7 +char b#8 void main() -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#2 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 +char *screen +char *screen#0 +char *screen#1 +char *screen#2 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias screen#0 = screen#5 screen#1 Alias b#0 = b#5 b#1 @@ -82,9 +82,9 @@ Successful SSA optimization Pass2AliasElimination Identical Phi Values screen#3 screen#0 Identical Phi Values b#3 b#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant screen#0 = (byte*) 1024 +Constant screen#0 = (char *) 1024 Constant b#0 = 'a' -Constant screen#2 = (byte*) 0 +Constant screen#2 = (char *) 0 Constant b#2 = 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant screen#2 @@ -114,9 +114,9 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -byte b +char b void main() -byte* screen +char *screen Initial phi equivalence classes Complete equivalence classes @@ -166,11 +166,11 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -byte b -constant byte b#0 b = 'a' +char b +__constant char b#0 = 'a' // b void main() -byte* screen -constant byte* screen#0 screen = (byte*) 1024 +char *screen +__constant char *screen#0 = (char *) 1024 // screen diff --git a/src/test/ref/var-forward-problem2.sym b/src/test/ref/var-forward-problem2.sym index ba695e352..288c51e90 100644 --- a/src/test/ref/var-forward-problem2.sym +++ b/src/test/ref/var-forward-problem2.sym @@ -1,6 +1,6 @@ -byte b -constant byte b#0 b = 'a' +char b +__constant char b#0 = 'a' // b void main() -byte* screen -constant byte* screen#0 screen = (byte*) 1024 +char *screen +__constant char *screen#0 = (char *) 1024 // screen diff --git a/src/test/ref/var-init-problem.log b/src/test/ref/var-init-problem.log index f96fd0357..b09a60a00 100644 --- a/src/test/ref/var-init-problem.log +++ b/src/test/ref/var-init-problem.log @@ -1,10 +1,10 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - screen#0 = (byte*)$400 + screen#0 = (char *)$400 *screen#0 = 'a' to:main::@return main::@return: scope:[main] from main @@ -17,11 +17,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#2 = (byte*) 0 + screen#2 = (char *) 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#8 = phi( __start::__init1/screen#2 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#6 = phi( __start::@1/screen#1 ) @@ -36,18 +36,18 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#2 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 +char *screen +char *screen#0 +char *screen#1 +char *screen#2 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias screen#0 = screen#5 screen#1 Alias screen#2 = screen#8 @@ -55,8 +55,8 @@ Alias screen#3 = screen#6 screen#7 screen#4 Successful SSA optimization Pass2AliasElimination Identical Phi Values screen#3 screen#0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant screen#0 = (byte*) 1024 -Constant screen#2 = (byte*) 0 +Constant screen#0 = (char *) 1024 +Constant screen#2 = (char *) 0 Successful SSA optimization Pass2ConstantIdentification Eliminating unused constant screen#2 Successful SSA optimization PassNEliminateUnusedVars @@ -85,7 +85,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte* screen +char *screen Initial phi equivalence classes Complete equivalence classes @@ -135,8 +135,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte* screen -constant byte* screen#0 screen = (byte*) 1024 +char *screen +__constant char *screen#0 = (char *) 1024 // screen diff --git a/src/test/ref/var-init-problem.sym b/src/test/ref/var-init-problem.sym index f39eebb40..65f34f992 100644 --- a/src/test/ref/var-init-problem.sym +++ b/src/test/ref/var-init-problem.sym @@ -1,4 +1,4 @@ void main() -byte* screen -constant byte* screen#0 screen = (byte*) 1024 +char *screen +__constant char *screen#0 = (char *) 1024 // screen diff --git a/src/test/ref/var-register-noarg.log b/src/test/ref/var-register-noarg.log index 09204dba3..4302d90ee 100644 --- a/src/test/ref/var-register-noarg.log +++ b/src/test/ref/var-register-noarg.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -27,7 +27,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -36,31 +36,31 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* MSG[] = "CAMELOT!"su -constant byte* SCREEN = (byte*)$400 +__constant char MSG[] = "CAMELOT!"su +__constant char *SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -number~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +number main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) $28*4 in main::$0 = main::i#2 < $28*4 Adding number conversion cast (unumber) 7 in main::$1 = main::i#3 & 7 Adding number conversion cast (unumber) main::$1 in main::$1 = main::i#3 & (unumber)7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$1 = main::i#3 & 7 +Inferred type updated to char in main::$1 = main::i#3 & 7 Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination -Simple Condition main::$0 [3] if(main::i#2<(byte)$28*4) goto main::@2 +Simple Condition main::$0 [3] if(main::i#2<(char)$28*4) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification @@ -74,8 +74,8 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*4 Successful SSA optimization PassNCastSimplification @@ -109,10 +109,10 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte main::i -byte main::i#1 22.0 -byte main::i#2 13.75 +char main::$1 // 22.0 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 13.75 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -201,13 +201,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* MSG[] = "CAMELOT!"su -constant byte* SCREEN = (byte*) 1024 +__constant char MSG[] = "CAMELOT!"su +__constant char *SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 13.75 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 13.75 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/var-register-noarg.sym b/src/test/ref/var-register-noarg.sym index 016494b9e..73da1be20 100644 --- a/src/test/ref/var-register-noarg.sym +++ b/src/test/ref/var-register-noarg.sym @@ -1,10 +1,10 @@ -constant byte* MSG[] = "CAMELOT!"su -constant byte* SCREEN = (byte*) 1024 +__constant char MSG[] = "CAMELOT!"su +__constant char *SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 22.0 -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 13.75 +char main::$1 // reg byte a 22.0 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 13.75 reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/var-register-zp-3.asm b/src/test/ref/var-register-zp-3.asm index 9a40ab65e..86412d2eb 100644 --- a/src/test/ref/var-register-zp-3.asm +++ b/src/test/ref/var-register-zp-3.asm @@ -39,7 +39,7 @@ main: { .byte 0 } .segment Code -// print2(byte* zp(4) at, byte* zp(2) msg) +// void print2(__zp(4) char *at, __zp(2) char *msg) print2: { .label i = 6 .label msg = 2 @@ -67,7 +67,7 @@ print2: { inc.z i jmp __b1 } -// print_char(byte* zp(4) at, byte register(X) idx, byte register(A) ch) +// void print_char(__zp(4) char *at, __register(X) char idx, __register(A) char ch) print_char: { .label at = 4 // at[idx] = ch diff --git a/src/test/ref/var-register-zp-3.cfg b/src/test/ref/var-register-zp-3.cfg index efe612bdb..2472904a6 100644 --- a/src/test/ref/var-register-zp-3.cfg +++ b/src/test/ref/var-register-zp-3.cfg @@ -2,17 +2,17 @@ void main() main: scope:[main] from [0] phi() - [1] call print2 + [1] call print2 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print2 + [3] call print2 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print2(byte* print2::at , byte* print2::msg) +void print2(char *at , char *msg) print2: scope:[print2] from main main::@1 [5] print2::at#4 = phi( main/screen, main::@1/screen+$50 ) [5] print2::msg#4 = phi( main/main::msg, main::@1/main::msg1 ) @@ -29,14 +29,14 @@ print2::@2: scope:[print2] from print2::@1 [9] print_char::at#0 = print2::at#4 [10] print_char::idx#0 = print2::j#2 [11] print_char::ch#0 = print2::msg#4[print2::i#2] - [12] call print_char + [12] call print_char to:print2::@3 print2::@3: scope:[print2] from print2::@2 [13] print2::j#1 = print2::j#2 + 2 [14] print2::i#1 = ++ print2::i#2 to:print2::@1 -void print_char(byte* print_char::at , byte print_char::idx , byte print_char::ch) +void print_char(char *at , char idx , char ch) print_char: scope:[print_char] from print2::@2 [15] print_char::at#0[print_char::idx#0] = print_char::ch#0 to:print_char::@return diff --git a/src/test/ref/var-register-zp-3.log b/src/test/ref/var-register-zp-3.log index fb03f52d5..182b27646 100644 --- a/src/test/ref/var-register-zp-3.log +++ b/src/test/ref/var-register-zp-3.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -6,13 +6,13 @@ void main() main: scope:[main] from __start::@1 print2::at#0 = screen print2::msg#0 = main::msg - call print2 + call print2 to:main::@1 main::@1: scope:[main] from main main::$1 = screen + $50 print2::at#1 = main::$1 print2::msg#1 = main::msg1 - call print2 + call print2 to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -20,7 +20,7 @@ main::@return: scope:[main] from main::@2 return to:@return -void print2(byte* print2::at , byte* print2::msg) +void print2(char *at , char *msg) print2: scope:[print2] from main main::@1 print2::at#4 = phi( main/print2::at#0, main::@1/print2::at#1 ) print2::msg#4 = phi( main/print2::msg#0, main::@1/print2::msg#1 ) @@ -43,7 +43,7 @@ print2::@2: scope:[print2] from print2::@1 print_char::at#0 = print2::at#2 print_char::idx#0 = print2::j#2 print_char::ch#0 = print2::msg#3[print2::i#3] - call print_char + call print_char to:print2::@3 print2::@3: scope:[print2] from print2::@2 print2::at#5 = phi( print2::@2/print2::at#2 ) @@ -57,7 +57,7 @@ print2::@return: scope:[print2] from print2::@1 return to:@return -void print_char(byte* print_char::at , byte print_char::idx , byte print_char::ch) +void print_char(char *at , char idx , char ch) print_char: scope:[print_char] from print2::@2 print_char::idx#1 = phi( print2::@2/print_char::idx#0 ) print_char::at#1 = phi( print2::@2/print_char::at#0 ) @@ -74,7 +74,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -85,61 +85,61 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$1 -constant byte* main::msg[6] = "hello" -constant byte* main::msg1[6] = "world" -void print2(byte* print2::at , byte* print2::msg) -bool~ print2::$1 -byte* print2::at -byte* print2::at#0 -byte* print2::at#1 -byte* print2::at#2 -byte* print2::at#3 -byte* print2::at#4 -byte* print2::at#5 -byte print2::i -byte print2::i#0 -byte print2::i#1 -byte print2::i#2 -byte print2::i#3 -byte print2::i#4 -byte print2::j -byte print2::j#0 -byte print2::j#1 -byte print2::j#2 -byte print2::j#3 -byte print2::j#4 -byte* print2::msg -byte* print2::msg#0 -byte* print2::msg#1 -byte* print2::msg#2 -byte* print2::msg#3 -byte* print2::msg#4 -byte* print2::msg#5 -void print_char(byte* print_char::at , byte print_char::idx , byte print_char::ch) -byte* print_char::at -byte* print_char::at#0 -byte* print_char::at#1 -byte print_char::ch -byte print_char::ch#0 -byte print_char::ch#1 -byte print_char::idx -byte print_char::idx#0 -byte print_char::idx#1 -constant byte* screen = (byte*)$400 +char *main::$1 +__constant char main::msg[6] = "hello" +__constant char main::msg1[6] = "world" +void print2(char *at , char *msg) +bool print2::$1 +char *print2::at +char *print2::at#0 +char *print2::at#1 +char *print2::at#2 +char *print2::at#3 +char *print2::at#4 +char *print2::at#5 +char print2::i +char print2::i#0 +char print2::i#1 +char print2::i#2 +char print2::i#3 +char print2::i#4 +char print2::j +char print2::j#0 +char print2::j#1 +char print2::j#2 +char print2::j#3 +char print2::j#4 +char *print2::msg +char *print2::msg#0 +char *print2::msg#1 +char *print2::msg#2 +char *print2::msg#3 +char *print2::msg#4 +char *print2::msg#5 +void print_char(char *at , char idx , char ch) +char *print_char::at +char *print_char::at#0 +char *print_char::at#1 +char print_char::ch +char print_char::ch#0 +char print_char::ch#1 +char print_char::idx +char print_char::idx#0 +char print_char::idx#1 +__constant char *screen = (char *)$400 Adding number conversion cast (unumber) $50 in main::$1 = screen + $50 Adding number conversion cast (unumber) 0 in print2::$1 = 0 != print2::msg#2[print2::i#2] Adding number conversion cast (unumber) 2 in print2::j#1 = print2::j#3 + 2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $50 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $50 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $50 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias print2::at#1 = main::$1 Alias print2::at#2 = print2::at#3 print2::at#5 @@ -204,17 +204,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print2 + [1] call print2 to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print2 + [3] call print2 to:main::@return main::@return: scope:[main] from main::@1 [4] return to:@return -void print2(byte* print2::at , byte* print2::msg) +void print2(char *at , char *msg) print2: scope:[print2] from main main::@1 [5] print2::at#4 = phi( main/screen, main::@1/screen+$50 ) [5] print2::msg#4 = phi( main/main::msg, main::@1/main::msg1 ) @@ -231,14 +231,14 @@ print2::@2: scope:[print2] from print2::@1 [9] print_char::at#0 = print2::at#4 [10] print_char::idx#0 = print2::j#2 [11] print_char::ch#0 = print2::msg#4[print2::i#2] - [12] call print_char + [12] call print_char to:print2::@3 print2::@3: scope:[print2] from print2::@2 [13] print2::j#1 = print2::j#2 + 2 [14] print2::i#1 = ++ print2::i#2 to:print2::@1 -void print_char(byte* print_char::at , byte print_char::idx , byte print_char::ch) +void print_char(char *at , char idx , char ch) print_char: scope:[print_char] from print2::@2 [15] print_char::at#0[print_char::idx#0] = print_char::ch#0 to:print_char::@return @@ -249,24 +249,24 @@ print_char::@return: scope:[print_char] from print_char VARIABLE REGISTER WEIGHTS void main() -void print2(byte* print2::at , byte* print2::msg) -byte* print2::at -byte* print2::at#4 11.222222222222221 -byte print2::i -byte print2::i#1 202.0 -byte print2::i#2 57.714285714285715 -byte print2::j -byte print2::j#1 101.0 -byte print2::j#2 50.5 -byte* print2::msg -byte* print2::msg#4 22.444444444444443 -void print_char(byte* print_char::at , byte print_char::idx , byte print_char::ch) -byte* print_char::at -byte* print_char::at#0 367.33333333333337 -byte print_char::ch -byte print_char::ch#0 1102.0 -byte print_char::idx -byte print_char::idx#0 551.0 +void print2(char *at , char *msg) +char *print2::at +char *print2::at#4 // 11.222222222222221 +char print2::i +char print2::i#1 // 202.0 +char print2::i#2 // 57.714285714285715 +char print2::j +char print2::j#1 // 101.0 +char print2::j#2 // 50.5 +char *print2::msg +char *print2::msg#4 // 22.444444444444443 +void print_char(char *at , char idx , char ch) +char *print_char::at +char *print_char::at#0 // 367.33333333333337 +char print_char::ch +char print_char::ch#0 // 1102.0 +char print_char::idx +char print_char::idx#0 // 551.0 Initial phi equivalence classes [ print2::msg#4 ] @@ -340,7 +340,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print2 + // [1] call print2 // [5] phi from main to print2 [phi:main->print2] print2_from_main: // [5] phi print2::at#4 = screen [phi:main->print2#0] -- pbuz1=pbuc1 @@ -359,7 +359,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print2 + // [3] call print2 // [5] phi from main::@1 to print2 [phi:main::@1->print2] print2_from___b1: // [5] phi print2::at#4 = screen+$50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 @@ -386,7 +386,7 @@ main: { } .segment Code // print2 -// print2(byte* zp(4) at, byte* zp(2) msg) +// void print2(__zp(4) char *at, __zp(2) char *msg) print2: { .label i = 6 .label msg = 2 @@ -418,7 +418,7 @@ print2: { // [11] print_char::ch#0 = print2::msg#4[print2::i#2] -- vbuaa=pbuz1_derefidx_vbuz2 ldy.z i lda (msg),y - // [12] call print_char + // [12] call print_char jsr print_char jmp __b3 // print2::@3 @@ -435,7 +435,7 @@ print2: { jmp __b1 } // print_char -// print_char(byte* zp(4) at, byte register(X) idx, byte register(A) ch) +// void print_char(__zp(4) char *at, __register(X) char idx, __register(A) char ch) print_char: { .label at = 4 // [15] print_char::at#0[print_char::idx#0] = print_char::ch#0 -- pbuz1_derefidx_vbuxx=vbuaa @@ -474,27 +474,27 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::msg[6] = "hello" -constant byte* main::msg1[6] = "world" -void print2(byte* print2::at , byte* print2::msg) -byte* print2::at -byte* print2::at#4 at zp[2]:4 11.222222222222221 -byte print2::i -byte print2::i#1 i zp[1]:6 202.0 -byte print2::i#2 i zp[1]:6 57.714285714285715 -byte print2::j -byte print2::j#1 reg byte x 101.0 -byte print2::j#2 reg byte x 50.5 -byte* print2::msg -byte* print2::msg#4 msg zp[2]:2 22.444444444444443 -void print_char(byte* print_char::at , byte print_char::idx , byte print_char::ch) -byte* print_char::at -byte* print_char::at#0 at zp[2]:4 367.33333333333337 -byte print_char::ch -byte print_char::ch#0 reg byte a 1102.0 -byte print_char::idx -byte print_char::idx#0 reg byte x 551.0 -constant byte* screen = (byte*) 1024 +__constant char main::msg[6] = "hello" +__constant char main::msg1[6] = "world" +void print2(char *at , char *msg) +char *print2::at +char *print2::at#4 // at zp[2]:4 11.222222222222221 +char print2::i +char print2::i#1 // i zp[1]:6 202.0 +char print2::i#2 // i zp[1]:6 57.714285714285715 +char print2::j +char print2::j#1 // reg byte x 101.0 +char print2::j#2 // reg byte x 50.5 +char *print2::msg +char *print2::msg#4 // msg zp[2]:2 22.444444444444443 +void print_char(char *at , char idx , char ch) +char *print_char::at +char *print_char::at#0 // at zp[2]:4 367.33333333333337 +char print_char::ch +char print_char::ch#0 // reg byte a 1102.0 +char print_char::idx +char print_char::idx#0 // reg byte x 551.0 +__constant char *screen = (char *) 1024 zp[2]:2 [ print2::msg#4 ] zp[2]:4 [ print2::at#4 print_char::at#0 ] @@ -524,7 +524,7 @@ Score: 547 // main main: { // print2(screen, "hello") - // [1] call print2 + // [1] call print2 // [5] phi from main to print2 [phi:main->print2] // [5] phi print2::at#4 = screen [phi:main->print2#0] -- pbuz1=pbuc1 lda #main::@1] // main::@1 // print2(screen+80, "world") - // [3] call print2 + // [3] call print2 // [5] phi from main::@1 to print2 [phi:main::@1->print2] // [5] phi print2::at#4 = screen+$50 [phi:main::@1->print2#0] -- pbuz1=pbuc1 lda #main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call model_ssa_zp + // [3] call model_ssa_zp // [12] phi from main::@1 to model_ssa_zp [phi:main::@1->model_ssa_zp] model_ssa_zp_from___b1: jsr model_ssa_zp @@ -267,7 +267,7 @@ main: { } // model_ma_mem model_ma_mem: { - // [5] model_ma_mem::screen = (byte*) 1024 -- pbum1=pbuc1 + // [5] model_ma_mem::screen = (char *) 1024 -- pbum1=pbuc1 // A local pointer lda #<$400 sta screen @@ -317,7 +317,7 @@ model_ssa_zp: { __b1_from_model_ssa_zp: // [13] phi model_ssa_zp::i#2 = 0 [phi:model_ssa_zp->model_ssa_zp::@1#0] -- vbuxx=vbuc1 ldx #0 - // [13] phi model_ssa_zp::screen#2 = (byte*) 1064 [phi:model_ssa_zp->model_ssa_zp::@1#1] -- pbuz1=pbuc1 + // [13] phi model_ssa_zp::screen#2 = (char *) 1064 [phi:model_ssa_zp->model_ssa_zp::@1#1] -- pbuz1=pbuc1 lda #<$428 sta.z screen lda #>$428 @@ -378,15 +378,15 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() void model_ma_mem() -byte model_ma_mem::i loadstore mem[1] 62.8 -byte* model_ma_mem::screen loadstore mem[2] 52.33333333333333 +__loadstore char model_ma_mem::i // mem[1] 62.8 +__loadstore char *model_ma_mem::screen // mem[2] 52.33333333333333 void model_ssa_zp() -byte model_ssa_zp::i -byte model_ssa_zp::i#1 reg byte x 151.5 -byte model_ssa_zp::i#2 reg byte x 67.33333333333333 -byte* model_ssa_zp::screen -byte* model_ssa_zp::screen#1 screen zp[2]:2 67.33333333333333 -byte* model_ssa_zp::screen#2 screen zp[2]:2 151.5 +char model_ssa_zp::i +char model_ssa_zp::i#1 // reg byte x 151.5 +char model_ssa_zp::i#2 // reg byte x 67.33333333333333 +char *model_ssa_zp::screen +char *model_ssa_zp::screen#1 // screen zp[2]:2 67.33333333333333 +char *model_ssa_zp::screen#2 // screen zp[2]:2 151.5 zp[2]:2 [ model_ssa_zp::screen#2 model_ssa_zp::screen#1 ] reg byte x [ model_ssa_zp::i#2 model_ssa_zp::i#1 ] @@ -413,12 +413,12 @@ Score: 988 // main main: { // model_ma_mem() - // [1] call model_ma_mem + // [1] call model_ma_mem jsr model_ma_mem // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // model_ssa_zp() - // [3] call model_ssa_zp + // [3] call model_ssa_zp // [12] phi from main::@1 to model_ssa_zp [phi:main::@1->model_ssa_zp] jsr model_ssa_zp // main::@return @@ -429,7 +429,7 @@ main: { // model_ma_mem model_ma_mem: { // char* screen = (char*)0x0400 - // [5] model_ma_mem::screen = (byte*) 1024 -- pbum1=pbuc1 + // [5] model_ma_mem::screen = (char *) 1024 -- pbum1=pbuc1 // A local pointer lda #<$400 sta screen @@ -480,7 +480,7 @@ model_ssa_zp: { // [13] phi from model_ssa_zp to model_ssa_zp::@1 [phi:model_ssa_zp->model_ssa_zp::@1] // [13] phi model_ssa_zp::i#2 = 0 [phi:model_ssa_zp->model_ssa_zp::@1#0] -- vbuxx=vbuc1 ldx #0 - // [13] phi model_ssa_zp::screen#2 = (byte*) 1064 [phi:model_ssa_zp->model_ssa_zp::@1#1] -- pbuz1=pbuc1 + // [13] phi model_ssa_zp::screen#2 = (char *) 1064 [phi:model_ssa_zp->model_ssa_zp::@1#1] -- pbuz1=pbuc1 lda #<$428 sta.z screen lda #>$428 diff --git a/src/test/ref/varmodel-ma_mem-3.sym b/src/test/ref/varmodel-ma_mem-3.sym index 864b8680e..47ceafd90 100644 --- a/src/test/ref/varmodel-ma_mem-3.sym +++ b/src/test/ref/varmodel-ma_mem-3.sym @@ -1,14 +1,14 @@ void main() void model_ma_mem() -byte model_ma_mem::i loadstore mem[1] 62.8 -byte* model_ma_mem::screen loadstore mem[2] 52.33333333333333 +__loadstore char model_ma_mem::i // mem[1] 62.8 +__loadstore char *model_ma_mem::screen // mem[2] 52.33333333333333 void model_ssa_zp() -byte model_ssa_zp::i -byte model_ssa_zp::i#1 reg byte x 151.5 -byte model_ssa_zp::i#2 reg byte x 67.33333333333333 -byte* model_ssa_zp::screen -byte* model_ssa_zp::screen#1 screen zp[2]:2 67.33333333333333 -byte* model_ssa_zp::screen#2 screen zp[2]:2 151.5 +char model_ssa_zp::i +char model_ssa_zp::i#1 // reg byte x 151.5 +char model_ssa_zp::i#2 // reg byte x 67.33333333333333 +char *model_ssa_zp::screen +char *model_ssa_zp::screen#1 // screen zp[2]:2 67.33333333333333 +char *model_ssa_zp::screen#2 // screen zp[2]:2 151.5 zp[2]:2 [ model_ssa_zp::screen#2 model_ssa_zp::screen#1 ] reg byte x [ model_ssa_zp::i#2 model_ssa_zp::i#1 ] diff --git a/src/test/ref/varmodel-ma_mem-4.cfg b/src/test/ref/varmodel-ma_mem-4.cfg index 22d4be21b..a5ea25ea2 100644 --- a/src/test/ref/varmodel-ma_mem-4.cfg +++ b/src/test/ref/varmodel-ma_mem-4.cfg @@ -4,7 +4,7 @@ main: scope:[main] from [0] main::i = 0 to:main::@1 main::@1: scope:[main] from main main::@1 - [1] screen#7 = phi( main/(byte*) 1024, main::@1/screen#2 ) + [1] screen#7 = phi( main/(char *) 1024, main::@1/screen#2 ) [2] *screen#7 = a [3] screen#0 = ++ screen#7 [4] *screen#0 = main::b diff --git a/src/test/ref/varmodel-ma_mem-4.log b/src/test/ref/varmodel-ma_mem-4.log index 74191c469..756e3f4ce 100644 --- a/src/test/ref/varmodel-ma_mem-4.log +++ b/src/test/ref/varmodel-ma_mem-4.log @@ -1,5 +1,5 @@ Updating intermediate variable memory area to MAIN_MEMORY main::$0 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -30,11 +30,11 @@ void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start - screen#4 = (byte*)$400 + screen#4 = (char *)$400 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 screen#12 = phi( __start::__init1/screen#4 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 screen#9 = phi( __start::@1/screen#3 ) @@ -48,27 +48,27 @@ __start::@return: scope:[__start] from __start::@2 SYMBOL TABLE SSA void __start() -constant byte a = 'a' +__constant char a = 'a' void main() -bool~ main::$0 -constant byte main::b = 'b' -byte main::i loadstore -byte* screen -byte* screen#0 -byte* screen#1 -byte* screen#10 -byte* screen#11 -byte* screen#12 -byte* screen#2 -byte* screen#3 -byte* screen#4 -byte* screen#5 -byte* screen#6 -byte* screen#7 -byte* screen#8 -byte* screen#9 +bool main::$0 +__constant char main::b = 'b' +__loadstore char main::i +char *screen +char *screen#0 +char *screen#1 +char *screen#10 +char *screen#11 +char *screen#12 +char *screen#2 +char *screen#3 +char *screen#4 +char *screen#5 +char *screen#6 +char *screen#7 +char *screen#8 +char *screen#9 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias screen#2 = screen#8 screen#3 Alias screen#12 = screen#4 @@ -79,7 +79,7 @@ Identical Phi Values screen#10 screen#2 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition main::$0 [11] if(main::i!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant screen#12 = (byte*) 1024 +Constant screen#12 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [9] main::i = ++ main::i to ++ Resolved ranged comparison value [11] if(main::i!=rangelast(0,5)) goto main::@1 to 6 @@ -94,10 +94,10 @@ Adding number conversion cast (unumber) 6 in [9] if(main::i!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings screen#12 -Constant inlined screen#12 = (byte*) 1024 +Constant inlined screen#12 = (char *) 1024 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@2(between main::@1 and main::@1) CALL GRAPH @@ -114,7 +114,7 @@ main: scope:[main] from [0] main::i = 0 to:main::@1 main::@1: scope:[main] from main main::@1 - [1] screen#7 = phi( main/(byte*) 1024, main::@1/screen#2 ) + [1] screen#7 = phi( main/(char *) 1024, main::@1/screen#2 ) [2] *screen#7 = a [3] screen#0 = ++ screen#7 [4] *screen#0 = main::b @@ -131,12 +131,12 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i loadstore 4.6000000000000005 -byte* screen -byte* screen#0 16.5 -byte* screen#1 16.5 -byte* screen#2 7.333333333333333 -byte* screen#7 16.5 +__loadstore char main::i // 4.6000000000000005 +char *screen +char *screen#0 // 16.5 +char *screen#1 // 16.5 +char *screen#2 // 7.333333333333333 +char *screen#7 // 16.5 Initial phi equivalence classes [ screen#7 screen#2 ] @@ -202,7 +202,7 @@ main: { sta i // [1] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [1] phi screen#7 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi screen#7 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 @@ -271,15 +271,15 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte a = 'a' +__constant char a = 'a' void main() -constant byte main::b = 'b' -byte main::i loadstore mem[1] 4.6000000000000005 -byte* screen -byte* screen#0 screen zp[2]:2 16.5 -byte* screen#1 screen zp[2]:2 16.5 -byte* screen#2 screen zp[2]:2 7.333333333333333 -byte* screen#7 screen zp[2]:2 16.5 +__constant char main::b = 'b' +__loadstore char main::i // mem[1] 4.6000000000000005 +char *screen +char *screen#0 // screen zp[2]:2 16.5 +char *screen#1 // screen zp[2]:2 16.5 +char *screen#2 // screen zp[2]:2 7.333333333333333 +char *screen#7 // screen zp[2]:2 16.5 zp[2]:2 [ screen#7 screen#2 screen#0 screen#1 ] mem[1] [ main::i ] @@ -312,7 +312,7 @@ main: { lda #0 sta i // [1] phi from main to main::@1 [phi:main->main::@1] - // [1] phi screen#7 = (byte*) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 + // [1] phi screen#7 = (char *) 1024 [phi:main->main::@1#0] -- pbuz1=pbuc1 lda #<$400 sta.z screen lda #>$400 diff --git a/src/test/ref/varmodel-ma_mem-4.sym b/src/test/ref/varmodel-ma_mem-4.sym index 6e2d5d8ca..761d6f72a 100644 --- a/src/test/ref/varmodel-ma_mem-4.sym +++ b/src/test/ref/varmodel-ma_mem-4.sym @@ -1,12 +1,12 @@ -constant byte a = 'a' +__constant char a = 'a' void main() -constant byte main::b = 'b' -byte main::i loadstore mem[1] 4.6000000000000005 -byte* screen -byte* screen#0 screen zp[2]:2 16.5 -byte* screen#1 screen zp[2]:2 16.5 -byte* screen#2 screen zp[2]:2 7.333333333333333 -byte* screen#7 screen zp[2]:2 16.5 +__constant char main::b = 'b' +__loadstore char main::i // mem[1] 4.6000000000000005 +char *screen +char *screen#0 // screen zp[2]:2 16.5 +char *screen#1 // screen zp[2]:2 16.5 +char *screen#2 // screen zp[2]:2 7.333333333333333 +char *screen#7 // screen zp[2]:2 16.5 zp[2]:2 [ screen#7 screen#2 screen#0 screen#1 ] mem[1] [ main::i ] diff --git a/src/test/ref/varmodel-ma_mem-5.log b/src/test/ref/varmodel-ma_mem-5.log index 74c80a1d1..4fbfc98c4 100644 --- a/src/test/ref/varmodel-ma_mem-5.log +++ b/src/test/ref/varmodel-ma_mem-5.log @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,18 +27,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -byte main::i loadstore +bool main::$0 +__loadstore char main::i Adding number conversion cast (unumber) 4 in main::$0 = main::i < 4 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Condition not simple main::$0 [4] if(main::$0) goto main::@1 Introduced intermediate condition variable main::$1 = main::i @@ -73,8 +73,8 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 11.0 -byte main::i loadstore 9.200000000000001 +char main::$1 // 11.0 +__loadstore char main::i // 9.200000000000001 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -153,10 +153,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 11.0 -byte main::i loadstore mem[1] 9.200000000000001 +char main::$1 // reg byte a 11.0 +__loadstore char main::i // mem[1] 9.200000000000001 mem[1] [ main::i ] reg byte a [ main::$1 ] diff --git a/src/test/ref/varmodel-ma_mem-5.sym b/src/test/ref/varmodel-ma_mem-5.sym index 57dbb3748..5892cafd7 100644 --- a/src/test/ref/varmodel-ma_mem-5.sym +++ b/src/test/ref/varmodel-ma_mem-5.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -byte~ main::$1 reg byte a 11.0 -byte main::i loadstore mem[1] 9.200000000000001 +char main::$1 // reg byte a 11.0 +__loadstore char main::i // mem[1] 9.200000000000001 mem[1] [ main::i ] reg byte a [ main::$1 ] diff --git a/src/test/ref/varmodel-ma_mem.cfg b/src/test/ref/varmodel-ma_mem.cfg index d953ca0e3..e517791ed 100644 --- a/src/test/ref/varmodel-ma_mem.cfg +++ b/src/test/ref/varmodel-ma_mem.cfg @@ -1,7 +1,7 @@ void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 + [0] main::screen = (char *) 1024 [1] main::i = 0 to:main::@1 main::@1: scope:[main] from main main::@1 diff --git a/src/test/ref/varmodel-ma_mem.log b/src/test/ref/varmodel-ma_mem.log index 9d48fa4c6..86c57c041 100644 --- a/src/test/ref/varmodel-ma_mem.log +++ b/src/test/ref/varmodel-ma_mem.log @@ -3,7 +3,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::screen = (byte*)$400 + main::screen = (char *)$400 main::i = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -30,11 +30,11 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -bool~ main::$0 -byte main::i loadstore -byte* main::screen loadstore +bool main::$0 +__loadstore char main::i +__loadstore char *main::screen -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [6] if(main::i!=rangelast(0,5)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -49,7 +49,7 @@ Adding number conversion cast (unumber) 6 in [5] if(main::i!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -60,7 +60,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::screen = (byte*) 1024 + [0] main::screen = (char *) 1024 [1] main::i = 0 to:main::@1 main::@1: scope:[main] from main main::@1 @@ -76,8 +76,8 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i loadstore 7.000000000000001 -byte* main::screen loadstore 5.833333333333333 +__loadstore char main::i // 7.000000000000001 +__loadstore char *main::screen // 5.833333333333333 Initial phi equivalence classes Added variable main::screen to live range equivalence class [ main::screen ] @@ -88,7 +88,7 @@ Complete equivalence classes Allocated mem[2] [ main::screen ] Allocated mem[1] [ main::i ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::screen = (byte*) 1024 [ main::screen ] ( [ main::screen ] { } ) always clobbers reg byte a +Statement [0] main::screen = (char *) 1024 [ main::screen ] ( [ main::screen ] { } ) always clobbers reg byte a Statement [1] main::i = 0 [ main::screen main::i ] ( [ main::screen main::i ] { } ) always clobbers reg byte a Statement [2] *main::screen = 'a' [ main::screen main::i ] ( [ main::screen main::i ] { } ) always clobbers reg byte a reg byte y Statement [5] if(main::i!=6) goto main::@1 [ main::screen main::i ] ( [ main::screen main::i ] { } ) always clobbers reg byte a @@ -120,7 +120,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] main::screen = (byte*) 1024 -- pbum1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbum1=pbuc1 // A local pointer lda #<$400 sta screen @@ -172,8 +172,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -byte main::i loadstore mem[1] 7.000000000000001 -byte* main::screen loadstore mem[2] 5.833333333333333 +__loadstore char main::i // mem[1] 7.000000000000001 +__loadstore char *main::screen // mem[2] 5.833333333333333 mem[2] [ main::screen ] mem[1] [ main::i ] @@ -198,7 +198,7 @@ Score: 554 // main main: { // char* screen = (char*)0x0400 - // [0] main::screen = (byte*) 1024 -- pbum1=pbuc1 + // [0] main::screen = (char *) 1024 -- pbum1=pbuc1 // A local pointer lda #<$400 sta screen diff --git a/src/test/ref/varmodel-ma_mem.sym b/src/test/ref/varmodel-ma_mem.sym index b2296a2f4..79ebcbfe4 100644 --- a/src/test/ref/varmodel-ma_mem.sym +++ b/src/test/ref/varmodel-ma_mem.sym @@ -1,6 +1,6 @@ void main() -byte main::i loadstore mem[1] 7.000000000000001 -byte* main::screen loadstore mem[2] 5.833333333333333 +__loadstore char main::i // mem[1] 7.000000000000001 +__loadstore char *main::screen // mem[2] 5.833333333333333 mem[2] [ main::screen ] mem[1] [ main::i ] diff --git a/src/test/ref/varmodel-mem-1.asm b/src/test/ref/varmodel-mem-1.asm index f951fe6a1..7d482253c 100644 --- a/src/test/ref/varmodel-mem-1.asm +++ b/src/test/ref/varmodel-mem-1.asm @@ -38,7 +38,7 @@ main: { __1: .byte 0 } .segment Code -// sum(byte register(A) a, byte register(X) b) +// __register(A) char sum(__register(A) char a, __register(X) char b) sum: { // a+b stx.z $ff diff --git a/src/test/ref/varmodel-mem-1.cfg b/src/test/ref/varmodel-mem-1.cfg index 835990beb..088a68990 100644 --- a/src/test/ref/varmodel-mem-1.cfg +++ b/src/test/ref/varmodel-mem-1.cfg @@ -7,14 +7,14 @@ main::@1: scope:[main] from main main::@3 [1] main::i#2 = phi( main/0, main::@3/main::i#1 ) [2] sum::a#0 = main::i#2 [3] sum::b#0 = main::i#2 - [4] call sum + [4] call sum [5] sum::return#0 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 [6] main::$1 = sum::return#0 [7] sum::a#1 = main::i#2 [8] sum::b#1 = main::i#2 - [9] call sum + [9] call sum [10] sum::return#1 = sum::return#2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@3 [16] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 main::@2 [17] sum::b#2 = phi( main::@1/sum::b#0, main::@2/sum::b#1 ) [17] sum::a#2 = phi( main::@1/sum::a#0, main::@2/sum::a#1 ) diff --git a/src/test/ref/varmodel-mem-1.log b/src/test/ref/varmodel-mem-1.log index a0e0d2128..94fb2d62c 100644 --- a/src/test/ref/varmodel-mem-1.log +++ b/src/test/ref/varmodel-mem-1.log @@ -15,7 +15,7 @@ main::@1: scope:[main] from main main::@3 main::$0 = main::SCREEN + main::i#2 sum::a#0 = main::i#2 sum::b#0 = main::i#2 - call sum + call sum sum::return#0 = sum::return#3 to:main::@2 main::@2: scope:[main] from main::@1 @@ -24,7 +24,7 @@ main::@2: scope:[main] from main::@1 main::$1 = sum::return#4 sum::a#1 = main::i#3 sum::b#1 = main::i#3 - call sum + call sum sum::return#1 = sum::return#3 to:main::@3 main::@3: scope:[main] from main::@2 @@ -41,7 +41,7 @@ main::@return: scope:[main] from main::@3 return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 main::@2 sum::b#2 = phi( main::@1/sum::b#0, main::@2/sum::b#1 ) sum::a#2 = phi( main::@1/sum::a#0, main::@2/sum::a#1 ) @@ -56,7 +56,7 @@ sum::@return: scope:[sum] from sum void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -67,38 +67,38 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -bool~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte sum(byte sum::a , byte sum::b) -byte~ sum::$0 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::a#2 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::b#2 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum::return#5 -byte sum::return#6 +char *main::$0 +char main::$1 +char main::$2 +char main::$3 +bool main::$4 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char sum(char a , char b) +char sum::$0 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::a#2 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::b#2 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum::return#5 +char sum::return#6 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias sum::return#0 = sum::return#4 Alias main::i#2 = main::i#3 main::i#4 @@ -124,7 +124,7 @@ Adding number conversion cast (unumber) 6 in [14] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -154,14 +154,14 @@ main::@1: scope:[main] from main main::@3 [1] main::i#2 = phi( main/0, main::@3/main::i#1 ) [2] sum::a#0 = main::i#2 [3] sum::b#0 = main::i#2 - [4] call sum + [4] call sum [5] sum::return#0 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 [6] main::$1 = sum::return#0 [7] sum::a#1 = main::i#2 [8] sum::b#1 = main::i#2 - [9] call sum + [9] call sum [10] sum::return#1 = sum::return#2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -175,7 +175,7 @@ main::@return: scope:[main] from main::@3 [16] return to:@return -byte sum(byte sum::a , byte sum::b) +char sum(char a , char b) sum: scope:[sum] from main::@1 main::@2 [17] sum::b#2 = phi( main::@1/sum::b#0, main::@2/sum::b#1 ) [17] sum::a#2 = phi( main::@1/sum::a#0, main::@2/sum::a#1 ) @@ -188,25 +188,25 @@ sum::@return: scope:[sum] from sum VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 3.6666666666666665 -byte~ main::$2 22.0 -byte~ main::$3 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 5.9230769230769225 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 11.0 -byte sum::a#1 11.0 -byte sum::a#2 123.0 -byte sum::b -byte sum::b#0 22.0 -byte sum::b#1 22.0 -byte sum::b#2 123.0 -byte sum::return -byte sum::return#0 22.0 -byte sum::return#1 22.0 -byte sum::return#2 30.75 +char main::$1 // 3.6666666666666665 +char main::$2 // 22.0 +char main::$3 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 5.9230769230769225 +char sum(char a , char b) +char sum::a +char sum::a#0 // 11.0 +char sum::a#1 // 11.0 +char sum::a#2 // 123.0 +char sum::b +char sum::b#0 // 22.0 +char sum::b#1 // 22.0 +char sum::b#2 // 123.0 +char sum::return +char sum::return#0 // 22.0 +char sum::return#1 // 22.0 +char sum::return#2 // 30.75 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -302,7 +302,7 @@ main: { // [2] sum::a#0 = main::i#2 -- vbuaa=vbuxx txa // [3] sum::b#0 = main::i#2 - // [4] call sum + // [4] call sum // [17] phi from main::@1 to sum [phi:main::@1->sum] sum_from___b1: // [17] phi sum::b#2 = sum::b#0 [phi:main::@1->sum#0] -- register_copy @@ -317,7 +317,7 @@ main: { // [7] sum::a#1 = main::i#2 -- vbuaa=vbuxx txa // [8] sum::b#1 = main::i#2 - // [9] call sum + // [9] call sum // [17] phi from main::@2 to sum [phi:main::@2->sum] sum_from___b2: // [17] phi sum::b#2 = sum::b#1 [phi:main::@2->sum#0] -- register_copy @@ -349,7 +349,7 @@ main: { } .segment Code // sum -// sum(byte register(A) a, byte register(X) b) +// __register(A) char sum(__register(A) char a, __register(X) char b) sum: { // [18] sum::return#2 = sum::a#2 + sum::b#2 -- vbuaa=vbuaa_plus_vbuxx stx.z $ff @@ -386,26 +386,26 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 mem[1] 3.6666666666666665 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.9230769230769225 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 reg byte a 11.0 -byte sum::a#1 reg byte a 11.0 -byte sum::a#2 reg byte a 123.0 -byte sum::b -byte sum::b#0 reg byte x 22.0 -byte sum::b#1 reg byte x 22.0 -byte sum::b#2 reg byte x 123.0 -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 22.0 -byte sum::return#2 reg byte a 30.75 +char main::$1 // mem[1] 3.6666666666666665 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.9230769230769225 +char sum(char a , char b) +char sum::a +char sum::a#0 // reg byte a 11.0 +char sum::a#1 // reg byte a 11.0 +char sum::a#2 // reg byte a 123.0 +char sum::b +char sum::b#0 // reg byte x 22.0 +char sum::b#1 // reg byte x 22.0 +char sum::b#2 // reg byte x 123.0 +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 22.0 +char sum::return#2 // reg byte a 30.75 reg byte x [ main::i#2 main::i#1 ] reg byte a [ sum::a#2 sum::a#0 sum::a#1 ] @@ -450,7 +450,7 @@ main: { // [2] sum::a#0 = main::i#2 -- vbuaa=vbuxx txa // [3] sum::b#0 = main::i#2 - // [4] call sum + // [4] call sum // [17] phi from main::@1 to sum [phi:main::@1->sum] // [17] phi sum::b#2 = sum::b#0 [phi:main::@1->sum#0] -- register_copy // [17] phi sum::a#2 = sum::a#0 [phi:main::@1->sum#1] -- register_copy @@ -463,7 +463,7 @@ main: { // [7] sum::a#1 = main::i#2 -- vbuaa=vbuxx txa // [8] sum::b#1 = main::i#2 - // [9] call sum + // [9] call sum // [17] phi from main::@2 to sum [phi:main::@2->sum] // [17] phi sum::b#2 = sum::b#1 [phi:main::@2->sum#0] -- register_copy // [17] phi sum::a#2 = sum::a#1 [phi:main::@2->sum#1] -- register_copy @@ -495,7 +495,7 @@ main: { } .segment Code // sum -// sum(byte register(A) a, byte register(X) b) +// __register(A) char sum(__register(A) char a, __register(X) char b) sum: { // a+b // [18] sum::return#2 = sum::a#2 + sum::b#2 -- vbuaa=vbuaa_plus_vbuxx diff --git a/src/test/ref/varmodel-mem-1.sym b/src/test/ref/varmodel-mem-1.sym index ef6843975..6b441e44a 100644 --- a/src/test/ref/varmodel-mem-1.sym +++ b/src/test/ref/varmodel-mem-1.sym @@ -1,24 +1,24 @@ void main() -byte~ main::$1 mem[1] 3.6666666666666665 -byte~ main::$2 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 5.9230769230769225 -byte sum(byte sum::a , byte sum::b) -byte sum::a -byte sum::a#0 reg byte a 11.0 -byte sum::a#1 reg byte a 11.0 -byte sum::a#2 reg byte a 123.0 -byte sum::b -byte sum::b#0 reg byte x 22.0 -byte sum::b#1 reg byte x 22.0 -byte sum::b#2 reg byte x 123.0 -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 22.0 -byte sum::return#2 reg byte a 30.75 +char main::$1 // mem[1] 3.6666666666666665 +char main::$2 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 5.9230769230769225 +char sum(char a , char b) +char sum::a +char sum::a#0 // reg byte a 11.0 +char sum::a#1 // reg byte a 11.0 +char sum::a#2 // reg byte a 123.0 +char sum::b +char sum::b#0 // reg byte x 22.0 +char sum::b#1 // reg byte x 22.0 +char sum::b#2 // reg byte x 123.0 +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 22.0 +char sum::return#2 // reg byte a 30.75 reg byte x [ main::i#2 main::i#1 ] reg byte a [ sum::a#2 sum::a#0 sum::a#1 ] diff --git a/src/test/ref/vic20-raster.cfg b/src/test/ref/vic20-raster.cfg index 32bcf94df..d6d5c5169 100644 --- a/src/test/ref/vic20-raster.cfg +++ b/src/test/ref/vic20-raster.cfg @@ -4,5 +4,5 @@ main: scope:[main] from asm { sei } to:main::@1 main::@1: scope:[main] from main main::@1 - [1] *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) + [1] *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) to:main::@1 diff --git a/src/test/ref/vic20-raster.log b/src/test/ref/vic20-raster.log index dfa4114e1..b9492a14e 100644 --- a/src/test/ref/vic20-raster.log +++ b/src/test/ref/vic20-raster.log @@ -10,7 +10,7 @@ main::@1: scope:[main] from main main::@2 if(main::$0) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) + *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) to:main::@1 main::@return: scope:[main] from main::@1 return @@ -18,7 +18,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -27,14 +27,14 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR = $f -constant byte OFFSET_STRUCT_MOS6561_VIC_RASTER = 4 -constant struct MOS6561_VIC* const VIC = (struct MOS6561_VIC*)$9000 +__constant char OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR = $f +__constant char OFFSET_STRUCT_MOS6561_VIC_RASTER = 4 +__constant struct MOS6561_VIC * const VIC = (struct MOS6561_VIC *)$9000 void __start() void main() -bool~ main::$0 +bool main::$0 -Simplifying constant pointer cast (struct MOS6561_VIC*) 36864 +Simplifying constant pointer cast (struct MOS6561_VIC *) 36864 Successful SSA optimization PassNCastSimplification Simple Condition main::$0 [2] if(0!=1) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -62,7 +62,7 @@ main: scope:[main] from asm { sei } to:main::@1 main::@1: scope:[main] from main main::@1 - [1] *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) + [1] *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) to:main::@1 @@ -72,7 +72,7 @@ void main() Initial phi equivalence classes Complete equivalence classes REGISTER UPLIFT POTENTIAL REGISTERS -Statement [1] *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) [ ] ( [ ] { } ) always clobbers reg byte a REGISTER UPLIFT SCOPES Uplift Scope [MOS6561_VIC] @@ -120,7 +120,7 @@ main: { jmp __b1 // main::@1 __b1: - // [1] *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) -- _deref_pbuc1=_deref_pbuc2 + // [1] *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) -- _deref_pbuc1=_deref_pbuc2 lda VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER sta VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR jmp __b1 @@ -132,9 +132,9 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR = $f -constant byte OFFSET_STRUCT_MOS6561_VIC_RASTER = 4 -constant struct MOS6561_VIC* const VIC = (struct MOS6561_VIC*) 36864 +__constant char OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR = $f +__constant char OFFSET_STRUCT_MOS6561_VIC_RASTER = 4 +__constant struct MOS6561_VIC * const VIC = (struct MOS6561_VIC *) 36864 void main() @@ -177,7 +177,7 @@ main: { // main::@1 __b1: // VIC->BORDER_BACKGROUND_COLOR = VIC->RASTER - // [1] *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((byte*)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) -- _deref_pbuc1=_deref_pbuc2 + // [1] *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR) = *((char *)VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER) -- _deref_pbuc1=_deref_pbuc2 lda VIC+OFFSET_STRUCT_MOS6561_VIC_RASTER sta VIC+OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR jmp __b1 diff --git a/src/test/ref/vic20-raster.sym b/src/test/ref/vic20-raster.sym index 063bb7e87..c6a234bce 100644 --- a/src/test/ref/vic20-raster.sym +++ b/src/test/ref/vic20-raster.sym @@ -1,5 +1,5 @@ -constant byte OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR = $f -constant byte OFFSET_STRUCT_MOS6561_VIC_RASTER = 4 -constant struct MOS6561_VIC* const VIC = (struct MOS6561_VIC*) 36864 +__constant char OFFSET_STRUCT_MOS6561_VIC_BORDER_BACKGROUND_COLOR = $f +__constant char OFFSET_STRUCT_MOS6561_VIC_RASTER = 4 +__constant struct MOS6561_VIC * const VIC = (struct MOS6561_VIC *) 36864 void main() diff --git a/src/test/ref/vic20-simple.log b/src/test/ref/vic20-simple.log index 114a5d74b..2e1c3225a 100644 --- a/src/test/ref/vic20-simple.log +++ b/src/test/ref/vic20-simple.log @@ -22,7 +22,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,26 +31,26 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const DEFAULT_COLORRAM = (byte*)$9600 -constant byte* const DEFAULT_SCREEN = (byte*)$1e00 -constant byte* MESSAGE[] = "hello world!" -constant const byte RED = 2 +__constant char * const DEFAULT_COLORRAM = (char *)$9600 +__constant char * const DEFAULT_SCREEN = (char *)$1e00 +__constant char MESSAGE[] = "hello world!" +__constant const char RED = 2 void __start() void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 0 in main::$0 = 0 != MESSAGE[main::i#2] Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 38400 -Simplifying constant pointer cast (byte*) 7680 +Simplifying constant pointer cast (char *) 38400 +Simplifying constant pointer cast (char *) 7680 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -96,9 +96,9 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 22.0 -byte main::i#2 16.5 +char main::i +char main::i#1 // 22.0 +char main::i#2 // 16.5 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -203,14 +203,14 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const DEFAULT_COLORRAM = (byte*) 38400 -constant byte* const DEFAULT_SCREEN = (byte*) 7680 -constant byte* MESSAGE[] = "hello world!" -constant const byte RED = 2 +__constant char * const DEFAULT_COLORRAM = (char *) 38400 +__constant char * const DEFAULT_SCREEN = (char *) 7680 +__constant char MESSAGE[] = "hello world!" +__constant const char RED = 2 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/vic20-simple.sym b/src/test/ref/vic20-simple.sym index 2c0ba4a31..d140bd2b4 100644 --- a/src/test/ref/vic20-simple.sym +++ b/src/test/ref/vic20-simple.sym @@ -1,10 +1,10 @@ -constant byte* const DEFAULT_COLORRAM = (byte*) 38400 -constant byte* const DEFAULT_SCREEN = (byte*) 7680 -constant byte* MESSAGE[] = "hello world!" -constant const byte RED = 2 +__constant char * const DEFAULT_COLORRAM = (char *) 38400 +__constant char * const DEFAULT_SCREEN = (char *) 7680 +__constant char MESSAGE[] = "hello world!" +__constant const char RED = 2 void main() -byte main::i -byte main::i#1 reg byte x 22.0 -byte main::i#2 reg byte x 16.5 +char main::i +char main::i#1 // reg byte x 22.0 +char main::i#2 // reg byte x 16.5 reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/void-parameter.log b/src/test/ref/void-parameter.log index ae1f39193..874323b60 100644 --- a/src/test/ref/void-parameter.log +++ b/src/test/ref/void-parameter.log @@ -1,21 +1,21 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 idx#17 = phi( __start::@1/idx#18 ) - call print + call print to:main::@1 main::@1: scope:[main] from main idx#9 = phi( main/idx#5 ) idx#0 = idx#9 - call print + call print to:main::@2 main::@2: scope:[main] from main::@1 idx#10 = phi( main::@1/idx#5 ) idx#1 = idx#10 - call print + call print to:main::@3 main::@3: scope:[main] from main::@2 idx#11 = phi( main::@2/idx#5 ) @@ -47,7 +47,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 idx#18 = phi( __start::__init1/idx#6 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 idx#15 = phi( __start::@1/idx#3 ) @@ -60,32 +60,32 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -byte idx -byte idx#0 -byte idx#1 -byte idx#10 -byte idx#11 -byte idx#12 -byte idx#13 -byte idx#14 -byte idx#15 -byte idx#16 -byte idx#17 -byte idx#18 -byte idx#2 -byte idx#3 -byte idx#4 -byte idx#5 -byte idx#6 -byte idx#7 -byte idx#8 -byte idx#9 +char idx +char idx#0 +char idx#1 +char idx#10 +char idx#11 +char idx#12 +char idx#13 +char idx#14 +char idx#15 +char idx#16 +char idx#17 +char idx#18 +char idx#2 +char idx#3 +char idx#4 +char idx#5 +char idx#6 +char idx#7 +char idx#8 +char idx#9 void main() void print() -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Alias idx#0 = idx#9 Alias idx#1 = idx#10 @@ -131,15 +131,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call print + [1] call print to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call print + [3] call print to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call print + [5] call print to:main::@return main::@return: scope:[main] from main::@2 [6] return @@ -157,9 +157,9 @@ print::@return: scope:[print] from print VARIABLE REGISTER WEIGHTS -byte idx -byte idx#13 13.0 -byte idx#14 2.5 +char idx +char idx#13 // 13.0 +char idx#14 // 2.5 void main() void print() @@ -201,7 +201,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] print_from_main: // [7] phi idx#13 = 0 [phi:main->print#0] -- vbuxx=vbuc1 @@ -212,7 +212,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] print_from___b1: // [7] phi idx#13 = idx#14 [phi:main::@1->print#0] -- register_copy @@ -222,7 +222,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] print_from___b2: // [7] phi idx#13 = idx#14 [phi:main::@2->print#0] -- register_copy @@ -267,10 +267,10 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#13 reg byte x 13.0 -byte idx#14 reg byte x 2.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#13 // reg byte x 13.0 +char idx#14 // reg byte x 2.5 void main() void print() @@ -298,7 +298,7 @@ Score: 41 // main main: { // print() - // [1] call print + // [1] call print // [7] phi from main to print [phi:main->print] // [7] phi idx#13 = 0 [phi:main->print#0] -- vbuxx=vbuc1 ldx #0 @@ -306,14 +306,14 @@ main: { // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print() - // [3] call print + // [3] call print // [7] phi from main::@1 to print [phi:main::@1->print] // [7] phi idx#13 = idx#14 [phi:main::@1->print#0] -- register_copy jsr print // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // print() - // [5] call print + // [5] call print // [7] phi from main::@2 to print [phi:main::@2->print] // [7] phi idx#13 = idx#14 [phi:main::@2->print#0] -- register_copy jsr print diff --git a/src/test/ref/void-parameter.sym b/src/test/ref/void-parameter.sym index ce5ef4fbd..81550adf9 100644 --- a/src/test/ref/void-parameter.sym +++ b/src/test/ref/void-parameter.sym @@ -1,7 +1,7 @@ -constant byte* const SCREEN = (byte*) 1024 -byte idx -byte idx#13 reg byte x 13.0 -byte idx#14 reg byte x 2.5 +__constant char * const SCREEN = (char *) 1024 +char idx +char idx#13 // reg byte x 13.0 +char idx#14 // reg byte x 2.5 void main() void print() diff --git a/src/test/ref/volatile-0.log b/src/test/ref/volatile-0.log index 508b898c3..d95bbac39 100644 --- a/src/test/ref/volatile-0.log +++ b/src/test/ref/volatile-0.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -24,7 +24,7 @@ __start::__init1: scope:[__start] from __start i = 3 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -33,18 +33,18 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile byte i loadstore +__loadstore volatile char i void main() -bool~ main::$0 +bool main::$0 Adding number conversion cast (unumber) 7 in main::$0 = i < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [1] if(i<7) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -97,7 +97,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -volatile byte i loadstore 84.49999999999999 +__loadstore volatile char i // 84.49999999999999 void main() Initial phi equivalence classes @@ -151,7 +151,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -204,9 +204,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte i loadstore zp[1]:2 84.49999999999999 +__loadstore volatile char i // zp[1]:2 84.49999999999999 void main() zp[1]:2 [ i ] @@ -239,7 +239,7 @@ __start: { sta.z i // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/volatile-0.sym b/src/test/ref/volatile-0.sym index c7e4aecb0..9e086e31f 100644 --- a/src/test/ref/volatile-0.sym +++ b/src/test/ref/volatile-0.sym @@ -1,6 +1,6 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile byte i loadstore zp[1]:2 84.49999999999999 +__loadstore volatile char i // zp[1]:2 84.49999999999999 void main() zp[1]:2 [ i ] diff --git a/src/test/ref/volatile-1.log b/src/test/ref/volatile-1.log index 26b116052..8f8952a42 100644 --- a/src/test/ref/volatile-1.log +++ b/src/test/ref/volatile-1.log @@ -19,7 +19,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -28,18 +28,18 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() void main() -bool~ main::$0 -volatile byte main::i loadstore +bool main::$0 +__loadstore volatile char main::i Adding number conversion cast (unumber) 7 in main::$0 = main::i < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Simple Condition main::$0 [2] if(main::i<7) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -73,7 +73,7 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -volatile byte main::i loadstore 14.25 +__loadstore volatile char main::i // 14.25 Initial phi equivalence classes Added variable main::i to live range equivalence class [ main::i ] @@ -148,9 +148,9 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -volatile byte main::i loadstore zp[1]:2 14.25 +__loadstore volatile char main::i // zp[1]:2 14.25 zp[1]:2 [ main::i ] diff --git a/src/test/ref/volatile-1.sym b/src/test/ref/volatile-1.sym index 67a1b49ed..a652fdd18 100644 --- a/src/test/ref/volatile-1.sym +++ b/src/test/ref/volatile-1.sym @@ -1,5 +1,5 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void main() -volatile byte main::i loadstore zp[1]:2 14.25 +__loadstore volatile char main::i // zp[1]:2 14.25 zp[1]:2 [ main::i ] diff --git a/src/test/ref/volatile-2.log b/src/test/ref/volatile-2.log index 597fccaed..49b880883 100644 --- a/src/test/ref/volatile-2.log +++ b/src/test/ref/volatile-2.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -27,7 +27,7 @@ __start::__init1: scope:[__start] from __start ch = 3 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -36,23 +36,23 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* const SCREEN = (byte*)$400 +__constant char * const SCREEN = (char *)$400 void __start() -volatile const byte ch loadstore +__loadstore volatile const char ch void main() -bool~ main::$0 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 +bool main::$0 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 Adding number conversion cast (unumber) 7 in main::$0 = main::i#2 < 7 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 7 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 7 +Finalized unsigned number type (char) 7 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Successful SSA optimization Pass2AliasElimination @@ -89,7 +89,7 @@ __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [2] phi() - [3] call main + [3] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [4] return @@ -114,11 +114,11 @@ main::@2: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void __start() -volatile const byte ch loadstore 14.714285714285715 +__loadstore volatile const char ch // 14.714285714285715 void main() -byte main::i -byte main::i#1 202.0 -byte main::i#2 134.66666666666666 +char main::i +char main::i#1 // 202.0 +char main::i#2 // 134.66666666666666 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -178,7 +178,7 @@ __start: { jmp __b1 // __start::@1 __b1: - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] main_from___b1: jsr main @@ -238,13 +238,13 @@ Removing instruction __b1_from___b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile const byte ch loadstore zp[1]:2 14.714285714285715 +__loadstore volatile const char ch // zp[1]:2 14.714285714285715 void main() -byte main::i -byte main::i#1 reg byte x 202.0 -byte main::i#2 reg byte x 134.66666666666666 +char main::i +char main::i#1 // reg byte x 202.0 +char main::i#2 // reg byte x 134.66666666666666 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ ch ] @@ -277,7 +277,7 @@ __start: { sta.z ch // [2] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [3] call main + // [3] call main // [5] phi from __start::@1 to main [phi:__start::@1->main] jsr main // __start::@return diff --git a/src/test/ref/volatile-2.sym b/src/test/ref/volatile-2.sym index 520dcd7a9..9c04281ae 100644 --- a/src/test/ref/volatile-2.sym +++ b/src/test/ref/volatile-2.sym @@ -1,10 +1,10 @@ -constant byte* const SCREEN = (byte*) 1024 +__constant char * const SCREEN = (char *) 1024 void __start() -volatile const byte ch loadstore zp[1]:2 14.714285714285715 +__loadstore volatile const char ch // zp[1]:2 14.714285714285715 void main() -byte main::i -byte main::i#1 reg byte x 202.0 -byte main::i#2 reg byte x 134.66666666666666 +char main::i +char main::i#1 // reg byte x 202.0 +char main::i#2 // reg byte x 134.66666666666666 reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ ch ] diff --git a/src/test/ref/voronoi.asm b/src/test/ref/voronoi.asm index cb73207cc..c65cf6862 100644 --- a/src/test/ref/voronoi.asm +++ b/src/test/ref/voronoi.asm @@ -179,7 +179,7 @@ animate: { // } rts } -// findcol(byte zp(5) x, byte zp(2) y) +// __register(X) char findcol(__zp(5) char x, __zp(2) char y) findcol: { .label x = 5 .label y = 2 diff --git a/src/test/ref/voronoi.cfg b/src/test/ref/voronoi.cfg index 365178dd9..cf2c3169e 100644 --- a/src/test/ref/voronoi.cfg +++ b/src/test/ref/voronoi.cfg @@ -2,15 +2,15 @@ void main() main: scope:[main] from [0] phi() - [1] call initscreen + [1] call initscreen to:main::@1 main::@1: scope:[main] from main main::@2 [2] phi() - [3] call render + [3] call render to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call animate + [5] call animate to:main::@1 void initscreen() @@ -41,7 +41,7 @@ render::@2: scope:[render] from render::@1 render::@4 [14] render::x#2 = phi( render::@1/0, render::@4/render::x#1 ) [15] findcol::x#0 = render::x#2 [16] findcol::y#0 = render::y#4 - [17] call findcol + [17] call findcol [18] findcol::return#0 = findcol::return#3 to:render::@4 render::@4: scope:[render] from render::@2 @@ -111,7 +111,7 @@ animate::@return: scope:[animate] from animate::@10 animate::@4 animate::@9 [52] return to:@return -byte findcol(byte findcol::x , byte findcol::y) +char findcol(char x , char y) findcol: scope:[findcol] from render::@2 [53] phi() to:findcol::@1 diff --git a/src/test/ref/voronoi.log b/src/test/ref/voronoi.log index 3184fe3fe..b3d32801c 100644 --- a/src/test/ref/voronoi.log +++ b/src/test/ref/voronoi.log @@ -1,19 +1,19 @@ -Inlined call call __init +Inlined call call __init Eliminating unused variable with no statement render::$0 CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start::@1 - call initscreen + call initscreen to:main::@2 main::@2: scope:[main] from main to:main::@1 main::@1: scope:[main] from main::@2 main::@4 - call render + call render to:main::@3 main::@3: scope:[main] from main::@1 - call animate + call animate to:main::@4 main::@4: scope:[main] from main::@3 if(true) goto main::@1 @@ -121,7 +121,7 @@ render::@2: scope:[render] from render::@1 render::@4 render::x#2 = phi( render::@1/render::x#0, render::@4/render::x#1 ) findcol::x#0 = render::x#2 findcol::y#0 = render::y#2 - call findcol + call findcol findcol::return#0 = findcol::return#3 to:render::@4 render::@4: scope:[render] from render::@2 @@ -148,7 +148,7 @@ render::@return: scope:[render] from render::@3 return to:@return -byte findcol(byte findcol::x , byte findcol::y) +char findcol(char x , char y) findcol: scope:[findcol] from render::@2 findcol::y#10 = phi( render::@2/findcol::y#0 ) findcol::x#7 = phi( render::@2/findcol::x#0 ) @@ -304,7 +304,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -313,191 +313,191 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* COLORS = (byte*)$d800 -constant byte* COLS[] = { 1, 2, 3, 4, 5, 7 } -constant byte FILL = $e6 -constant byte* SCREEN = (byte*)$400 -constant byte* XPOS[] = { 5, $f, 6, $22, $15, $1f } -constant byte* YPOS[] = { 5, 8, $e, 2, $11, $16 } +__constant char *COLORS = (char *)$d800 +__constant char COLS[] = { 1, 2, 3, 4, 5, 7 } +__constant char FILL = $e6 +__constant char *SCREEN = (char *)$400 +__constant char XPOS[] = { 5, $f, 6, $22, $15, $1f } +__constant char YPOS[] = { 5, 8, $e, 2, $11, $16 } void __start() void animate() -number~ animate::$0 -bool~ animate::$1 -bool~ animate::$10 -bool~ animate::$11 -number~ animate::$12 -bool~ animate::$13 -bool~ animate::$14 -number~ animate::$15 -bool~ animate::$16 -bool~ animate::$17 -number~ animate::$18 -bool~ animate::$2 -number~ animate::$3 -bool~ animate::$4 -bool~ animate::$5 -number~ animate::$6 -bool~ animate::$7 -bool~ animate::$8 -number~ animate::$9 -byte findcol(byte findcol::x , byte findcol::y) -bool~ findcol::$0 -bool~ findcol::$1 -byte~ findcol::$10 -byte~ findcol::$11 -byte~ findcol::$12 -bool~ findcol::$13 -bool~ findcol::$14 -bool~ findcol::$2 -bool~ findcol::$3 -bool~ findcol::$4 -bool~ findcol::$5 -byte~ findcol::$6 -byte~ findcol::$7 -bool~ findcol::$8 -byte~ findcol::$9 -byte findcol::diff -byte findcol::diff#0 -byte findcol::diff#1 -byte findcol::diff#2 -byte findcol::diff#3 -byte findcol::diff#4 -byte findcol::diff#5 -byte findcol::diff#6 -byte findcol::diff#7 -byte findcol::diff#8 -byte findcol::diff#9 -byte findcol::i -byte findcol::i#0 -byte findcol::i#1 -byte findcol::i#10 -byte findcol::i#11 -byte findcol::i#12 -byte findcol::i#13 -byte findcol::i#2 -byte findcol::i#3 -byte findcol::i#4 -byte findcol::i#5 -byte findcol::i#6 -byte findcol::i#7 -byte findcol::i#8 -byte findcol::i#9 -byte findcol::mincol -byte findcol::mincol#0 -byte findcol::mincol#1 -byte findcol::mincol#10 -byte findcol::mincol#11 -byte findcol::mincol#12 -byte findcol::mincol#13 -byte findcol::mincol#2 -byte findcol::mincol#3 -byte findcol::mincol#4 -byte findcol::mincol#5 -byte findcol::mincol#6 -byte findcol::mincol#7 -byte findcol::mincol#8 -byte findcol::mincol#9 -byte findcol::mindiff -byte findcol::mindiff#0 -byte findcol::mindiff#1 -byte findcol::mindiff#10 -byte findcol::mindiff#11 -byte findcol::mindiff#12 -byte findcol::mindiff#2 -byte findcol::mindiff#3 -byte findcol::mindiff#4 -byte findcol::mindiff#5 -byte findcol::mindiff#6 -byte findcol::mindiff#7 -byte findcol::mindiff#8 -byte findcol::mindiff#9 -byte findcol::return -byte findcol::return#0 -byte findcol::return#1 -byte findcol::return#2 -byte findcol::return#3 -byte findcol::return#4 -byte findcol::return#5 -byte findcol::x -byte findcol::x#0 -byte findcol::x#1 -byte findcol::x#10 -byte findcol::x#11 -byte findcol::x#12 -byte findcol::x#13 -byte findcol::x#2 -byte findcol::x#3 -byte findcol::x#4 -byte findcol::x#5 -byte findcol::x#6 -byte findcol::x#7 -byte findcol::x#8 -byte findcol::x#9 -byte findcol::xp -byte findcol::xp#0 -byte findcol::xp#1 -byte findcol::xp#2 -byte findcol::xp#3 -byte findcol::xp#4 -byte findcol::y -byte findcol::y#0 -byte findcol::y#1 -byte findcol::y#10 -byte findcol::y#11 -byte findcol::y#12 -byte findcol::y#13 -byte findcol::y#2 -byte findcol::y#3 -byte findcol::y#4 -byte findcol::y#5 -byte findcol::y#6 -byte findcol::y#7 -byte findcol::y#8 -byte findcol::y#9 -byte findcol::yp -byte findcol::yp#0 -byte findcol::yp#1 -byte findcol::yp#2 -byte findcol::yp#3 -byte findcol::yp#4 -byte findcol::yp#5 -byte findcol::yp#6 -byte findcol::yp#7 +number animate::$0 +bool animate::$1 +bool animate::$10 +bool animate::$11 +number animate::$12 +bool animate::$13 +bool animate::$14 +number animate::$15 +bool animate::$16 +bool animate::$17 +number animate::$18 +bool animate::$2 +number animate::$3 +bool animate::$4 +bool animate::$5 +number animate::$6 +bool animate::$7 +bool animate::$8 +number animate::$9 +char findcol(char x , char y) +bool findcol::$0 +bool findcol::$1 +char findcol::$10 +char findcol::$11 +char findcol::$12 +bool findcol::$13 +bool findcol::$14 +bool findcol::$2 +bool findcol::$3 +bool findcol::$4 +bool findcol::$5 +char findcol::$6 +char findcol::$7 +bool findcol::$8 +char findcol::$9 +char findcol::diff +char findcol::diff#0 +char findcol::diff#1 +char findcol::diff#2 +char findcol::diff#3 +char findcol::diff#4 +char findcol::diff#5 +char findcol::diff#6 +char findcol::diff#7 +char findcol::diff#8 +char findcol::diff#9 +char findcol::i +char findcol::i#0 +char findcol::i#1 +char findcol::i#10 +char findcol::i#11 +char findcol::i#12 +char findcol::i#13 +char findcol::i#2 +char findcol::i#3 +char findcol::i#4 +char findcol::i#5 +char findcol::i#6 +char findcol::i#7 +char findcol::i#8 +char findcol::i#9 +char findcol::mincol +char findcol::mincol#0 +char findcol::mincol#1 +char findcol::mincol#10 +char findcol::mincol#11 +char findcol::mincol#12 +char findcol::mincol#13 +char findcol::mincol#2 +char findcol::mincol#3 +char findcol::mincol#4 +char findcol::mincol#5 +char findcol::mincol#6 +char findcol::mincol#7 +char findcol::mincol#8 +char findcol::mincol#9 +char findcol::mindiff +char findcol::mindiff#0 +char findcol::mindiff#1 +char findcol::mindiff#10 +char findcol::mindiff#11 +char findcol::mindiff#12 +char findcol::mindiff#2 +char findcol::mindiff#3 +char findcol::mindiff#4 +char findcol::mindiff#5 +char findcol::mindiff#6 +char findcol::mindiff#7 +char findcol::mindiff#8 +char findcol::mindiff#9 +char findcol::return +char findcol::return#0 +char findcol::return#1 +char findcol::return#2 +char findcol::return#3 +char findcol::return#4 +char findcol::return#5 +char findcol::x +char findcol::x#0 +char findcol::x#1 +char findcol::x#10 +char findcol::x#11 +char findcol::x#12 +char findcol::x#13 +char findcol::x#2 +char findcol::x#3 +char findcol::x#4 +char findcol::x#5 +char findcol::x#6 +char findcol::x#7 +char findcol::x#8 +char findcol::x#9 +char findcol::xp +char findcol::xp#0 +char findcol::xp#1 +char findcol::xp#2 +char findcol::xp#3 +char findcol::xp#4 +char findcol::y +char findcol::y#0 +char findcol::y#1 +char findcol::y#10 +char findcol::y#11 +char findcol::y#12 +char findcol::y#13 +char findcol::y#2 +char findcol::y#3 +char findcol::y#4 +char findcol::y#5 +char findcol::y#6 +char findcol::y#7 +char findcol::y#8 +char findcol::y#9 +char findcol::yp +char findcol::yp#0 +char findcol::yp#1 +char findcol::yp#2 +char findcol::yp#3 +char findcol::yp#4 +char findcol::yp#5 +char findcol::yp#6 +char findcol::yp#7 void initscreen() -byte*~ initscreen::$0 -bool~ initscreen::$1 -byte* initscreen::screen -byte* initscreen::screen#0 -byte* initscreen::screen#1 -byte* initscreen::screen#2 -byte* initscreen::screen#3 +char *initscreen::$0 +bool initscreen::$1 +char *initscreen::screen +char *initscreen::screen#0 +char *initscreen::screen#1 +char *initscreen::screen#2 +char *initscreen::screen#3 void main() -constant byte numpoints = 6 +__constant char numpoints = 6 void render() -bool~ render::$1 -byte*~ render::$2 -bool~ render::$3 -byte render::col -byte render::col#0 -byte* render::colline -byte* render::colline#0 -byte* render::colline#1 -byte* render::colline#2 -byte* render::colline#3 -byte* render::colline#4 -byte* render::colline#5 -byte render::x -byte render::x#0 -byte render::x#1 -byte render::x#2 -byte render::x#3 -byte render::y -byte render::y#0 -byte render::y#1 -byte render::y#2 -byte render::y#3 -byte render::y#4 -byte render::y#5 +bool render::$1 +char *render::$2 +bool render::$3 +char render::col +char render::col#0 +char *render::colline +char *render::colline#0 +char *render::colline#1 +char *render::colline#2 +char *render::colline#3 +char *render::colline#4 +char *render::colline#5 +char render::x +char render::x#0 +char render::x#1 +char render::x#2 +char render::x#3 +char render::y +char render::y#0 +char render::y#1 +char render::y#2 +char render::y#3 +char render::y#4 +char render::y#5 Adding number conversion cast (unumber) 1 in animate::$0 = XPOS[0] + 1 Adding number conversion cast (unumber) animate::$0 in animate::$0 = XPOS[0] + (unumber)1 @@ -560,8 +560,8 @@ Inlining cast YPOS[(unumber)2] = (unumber)0 Inlining cast YPOS[(unumber)3] = (unumber)$19 Inlining cast findcol::return#2 = (unumber)0 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 55296 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 @@ -609,60 +609,60 @@ Simplifying constant integer cast $3e8 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 7 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (word) $3e8 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 7 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (unsigned int) $3e8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in animate::$0 = XPOS[0] + 1 -Inferred type updated to byte in animate::$3 = YPOS[0] + 1 -Inferred type updated to byte in animate::$6 = XPOS[1] - 1 -Inferred type updated to byte in animate::$9 = YPOS[2] + 1 -Inferred type updated to byte in animate::$12 = YPOS[3] - 1 -Inferred type updated to byte in animate::$15 = XPOS[3] + 7 -Inferred type updated to byte in animate::$18 = XPOS[3] - $28 +Inferred type updated to char in animate::$0 = XPOS[0] + 1 +Inferred type updated to char in animate::$3 = YPOS[0] + 1 +Inferred type updated to char in animate::$6 = XPOS[1] - 1 +Inferred type updated to char in animate::$9 = YPOS[2] + 1 +Inferred type updated to char in animate::$12 = YPOS[3] - 1 +Inferred type updated to char in animate::$15 = XPOS[3] + 7 +Inferred type updated to char in animate::$18 = XPOS[3] - $28 Inversing boolean not [8] animate::$2 = XPOS[0] != $28 from [7] animate::$1 = XPOS[0] == $28 Inversing boolean not [13] animate::$5 = YPOS[0] != $19 from [12] animate::$4 = YPOS[0] == $19 Inversing boolean not [19] animate::$8 = XPOS[1] != $ff from [18] animate::$7 = XPOS[1] == $ff @@ -786,8 +786,8 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $28 Simplifying constant integer cast $19 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $19 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings initscreen::screen#0 Inlining constant with var siblings render::colline#0 @@ -889,15 +889,15 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call initscreen + [1] call initscreen to:main::@1 main::@1: scope:[main] from main main::@2 [2] phi() - [3] call render + [3] call render to:main::@2 main::@2: scope:[main] from main::@1 [4] phi() - [5] call animate + [5] call animate to:main::@1 void initscreen() @@ -928,7 +928,7 @@ render::@2: scope:[render] from render::@1 render::@4 [14] render::x#2 = phi( render::@1/0, render::@4/render::x#1 ) [15] findcol::x#0 = render::x#2 [16] findcol::y#0 = render::y#4 - [17] call findcol + [17] call findcol [18] findcol::return#0 = findcol::return#3 to:render::@4 render::@4: scope:[render] from render::@2 @@ -998,7 +998,7 @@ animate::@return: scope:[animate] from animate::@10 animate::@4 animate::@9 [52] return to:@return -byte findcol(byte findcol::x , byte findcol::y) +char findcol(char x , char y) findcol: scope:[findcol] from render::@2 [53] phi() to:findcol::@1 @@ -1061,63 +1061,63 @@ findcol::@4: scope:[findcol] from findcol::@3 VARIABLE REGISTER WEIGHTS void animate() -byte~ animate::$0 202.0 -byte~ animate::$12 202.0 -byte~ animate::$15 202.0 -byte~ animate::$18 202.0 -byte~ animate::$3 202.0 -byte~ animate::$6 202.0 -byte~ animate::$9 202.0 -byte findcol(byte findcol::x , byte findcol::y) -byte~ findcol::$11 2.0000000002E10 -byte~ findcol::$9 2.0000000002E10 -byte findcol::diff -byte findcol::diff#1 2.0000000002E10 -byte findcol::diff#2 2.0000000002E10 -byte findcol::diff#3 2.0000000002E10 -byte findcol::diff#4 2.0000000002E10 -byte findcol::diff#5 1.0000000001E10 -byte findcol::diff#7 1.3333333334666666E10 -byte findcol::i -byte findcol::i#1 1.0000000001E10 -byte findcol::i#10 3.0000000003E9 -byte findcol::mincol -byte findcol::mincol#1 2.0000000002E10 -byte findcol::mincol#10 1.6666666668333335E9 -byte findcol::mincol#4 1.0000000001E10 -byte findcol::mindiff -byte findcol::mindiff#10 1.7647058825294118E9 -byte findcol::mindiff#12 1.50000000015E10 -byte findcol::mindiff#13 2.0000000002E10 -byte findcol::mindiff#15 2.0000000002E10 -byte findcol::return -byte findcol::return#0 200002.0 -byte findcol::return#3 3.333366667333333E9 -byte findcol::x -byte findcol::x#0 1.6000040002E9 -byte findcol::xp -byte findcol::xp#0 1.0000000001E10 -byte findcol::y -byte findcol::y#0 1.6666708335416665E9 -byte findcol::yp -byte findcol::yp#0 6.250000000625E9 +char animate::$0 // 202.0 +char animate::$12 // 202.0 +char animate::$15 // 202.0 +char animate::$18 // 202.0 +char animate::$3 // 202.0 +char animate::$6 // 202.0 +char animate::$9 // 202.0 +char findcol(char x , char y) +char findcol::$11 // 2.0000000002E10 +char findcol::$9 // 2.0000000002E10 +char findcol::diff +char findcol::diff#1 // 2.0000000002E10 +char findcol::diff#2 // 2.0000000002E10 +char findcol::diff#3 // 2.0000000002E10 +char findcol::diff#4 // 2.0000000002E10 +char findcol::diff#5 // 1.0000000001E10 +char findcol::diff#7 // 1.3333333334666666E10 +char findcol::i +char findcol::i#1 // 1.0000000001E10 +char findcol::i#10 // 3.0000000003E9 +char findcol::mincol +char findcol::mincol#1 // 2.0000000002E10 +char findcol::mincol#10 // 1.6666666668333335E9 +char findcol::mincol#4 // 1.0000000001E10 +char findcol::mindiff +char findcol::mindiff#10 // 1.7647058825294118E9 +char findcol::mindiff#12 // 1.50000000015E10 +char findcol::mindiff#13 // 2.0000000002E10 +char findcol::mindiff#15 // 2.0000000002E10 +char findcol::return +char findcol::return#0 // 200002.0 +char findcol::return#3 // 3.333366667333333E9 +char findcol::x +char findcol::x#0 // 1.6000040002E9 +char findcol::xp +char findcol::xp#0 // 1.0000000001E10 +char findcol::y +char findcol::y#0 // 1.6666708335416665E9 +char findcol::yp +char findcol::yp#0 // 6.250000000625E9 void initscreen() -byte* initscreen::screen -byte* initscreen::screen#1 202.0 -byte* initscreen::screen#2 134.66666666666666 +char *initscreen::screen +char *initscreen::screen#1 // 202.0 +char *initscreen::screen#2 // 134.66666666666666 void main() void render() -byte render::col -byte render::col#0 200002.0 -byte* render::colline -byte* render::colline#1 6667.333333333333 -byte* render::colline#5 12000.300000000001 -byte render::x -byte render::x#1 150001.5 -byte render::x#2 57143.42857142857 -byte render::y -byte render::y#1 15001.5 -byte render::y#4 10909.363636363636 +char render::col +char render::col#0 // 200002.0 +char *render::colline +char *render::colline#1 // 6667.333333333333 +char *render::colline#5 // 12000.300000000001 +char render::x +char render::x#1 // 150001.5 +char render::x#2 // 57143.42857142857 +char render::y +char render::y#1 // 15001.5 +char render::y#4 // 10909.363636363636 Initial phi equivalence classes [ initscreen::screen#2 initscreen::screen#1 ] @@ -1348,7 +1348,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call initscreen + // [1] call initscreen // [6] phi from main to initscreen [phi:main->initscreen] initscreen_from_main: jsr initscreen @@ -1358,7 +1358,7 @@ main: { jmp __b1 // main::@1 __b1: - // [3] call render + // [3] call render // [12] phi from main::@1 to render [phi:main::@1->render] render_from___b1: jsr render @@ -1367,7 +1367,7 @@ main: { jmp __b2 // main::@2 __b2: - // [5] call animate + // [5] call animate jsr animate jmp __b1_from___b2 } @@ -1451,7 +1451,7 @@ render: { __b2: // [15] findcol::x#0 = render::x#2 // [16] findcol::y#0 = render::y#4 - // [17] call findcol + // [17] call findcol // [53] phi from render::@2 to findcol [phi:render::@2->findcol] findcol_from___b2: jsr findcol @@ -1608,7 +1608,7 @@ animate: { rts } // findcol -// findcol(byte zp(5) x, byte zp(2) y) +// __register(X) char findcol(__zp(5) char x, __zp(2) char y) findcol: { .label x = 5 .label y = 2 @@ -1862,71 +1862,71 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte* COLORS = (byte*) 55296 -constant byte* COLS[] = { 1, 2, 3, 4, 5, 7 } -constant byte FILL = $e6 -constant byte* SCREEN = (byte*) 1024 -constant byte* XPOS[] = { 5, $f, 6, $22, $15, $1f } -constant byte* YPOS[] = { 5, 8, $e, 2, $11, $16 } +__constant char *COLORS = (char *) 55296 +__constant char COLS[] = { 1, 2, 3, 4, 5, 7 } +__constant char FILL = $e6 +__constant char *SCREEN = (char *) 1024 +__constant char XPOS[] = { 5, $f, 6, $22, $15, $1f } +__constant char YPOS[] = { 5, 8, $e, 2, $11, $16 } void animate() -byte~ animate::$0 reg byte x 202.0 -byte~ animate::$12 reg byte x 202.0 -byte~ animate::$15 reg byte x 202.0 -byte~ animate::$18 reg byte x 202.0 -byte~ animate::$3 reg byte x 202.0 -byte~ animate::$6 reg byte a 202.0 -byte~ animate::$9 reg byte a 202.0 -byte findcol(byte findcol::x , byte findcol::y) -byte~ findcol::$11 reg byte a 2.0000000002E10 -byte~ findcol::$9 reg byte a 2.0000000002E10 -byte findcol::diff -byte findcol::diff#1 reg byte y 2.0000000002E10 -byte findcol::diff#2 reg byte y 2.0000000002E10 -byte findcol::diff#3 reg byte a 2.0000000002E10 -byte findcol::diff#4 reg byte a 2.0000000002E10 -byte findcol::diff#5 reg byte y 1.0000000001E10 -byte findcol::diff#7 reg byte a 1.3333333334666666E10 -byte findcol::i -byte findcol::i#1 i zp[1]:6 1.0000000001E10 -byte findcol::i#10 i zp[1]:6 3.0000000003E9 -byte findcol::mincol -byte findcol::mincol#1 reg byte x 2.0000000002E10 -byte findcol::mincol#10 reg byte x 1.6666666668333335E9 -byte findcol::mincol#4 reg byte x 1.0000000001E10 -byte findcol::mindiff -byte findcol::mindiff#10 mindiff zp[1]:7 1.7647058825294118E9 -byte findcol::mindiff#12 reg byte a 1.50000000015E10 -byte findcol::mindiff#13 mindiff zp[1]:7 2.0000000002E10 -byte findcol::mindiff#15 reg byte a 2.0000000002E10 -byte findcol::return -byte findcol::return#0 reg byte a 200002.0 -byte findcol::return#3 reg byte x 3.333366667333333E9 -byte findcol::x -byte findcol::x#0 x zp[1]:5 1.6000040002E9 -byte findcol::xp -byte findcol::xp#0 xp zp[1]:8 1.0000000001E10 -byte findcol::y -byte findcol::y#0 y zp[1]:2 1.6666708335416665E9 -byte findcol::yp -byte findcol::yp#0 yp zp[1]:9 6.250000000625E9 +char animate::$0 // reg byte x 202.0 +char animate::$12 // reg byte x 202.0 +char animate::$15 // reg byte x 202.0 +char animate::$18 // reg byte x 202.0 +char animate::$3 // reg byte x 202.0 +char animate::$6 // reg byte a 202.0 +char animate::$9 // reg byte a 202.0 +char findcol(char x , char y) +char findcol::$11 // reg byte a 2.0000000002E10 +char findcol::$9 // reg byte a 2.0000000002E10 +char findcol::diff +char findcol::diff#1 // reg byte y 2.0000000002E10 +char findcol::diff#2 // reg byte y 2.0000000002E10 +char findcol::diff#3 // reg byte a 2.0000000002E10 +char findcol::diff#4 // reg byte a 2.0000000002E10 +char findcol::diff#5 // reg byte y 1.0000000001E10 +char findcol::diff#7 // reg byte a 1.3333333334666666E10 +char findcol::i +char findcol::i#1 // i zp[1]:6 1.0000000001E10 +char findcol::i#10 // i zp[1]:6 3.0000000003E9 +char findcol::mincol +char findcol::mincol#1 // reg byte x 2.0000000002E10 +char findcol::mincol#10 // reg byte x 1.6666666668333335E9 +char findcol::mincol#4 // reg byte x 1.0000000001E10 +char findcol::mindiff +char findcol::mindiff#10 // mindiff zp[1]:7 1.7647058825294118E9 +char findcol::mindiff#12 // reg byte a 1.50000000015E10 +char findcol::mindiff#13 // mindiff zp[1]:7 2.0000000002E10 +char findcol::mindiff#15 // reg byte a 2.0000000002E10 +char findcol::return +char findcol::return#0 // reg byte a 200002.0 +char findcol::return#3 // reg byte x 3.333366667333333E9 +char findcol::x +char findcol::x#0 // x zp[1]:5 1.6000040002E9 +char findcol::xp +char findcol::xp#0 // xp zp[1]:8 1.0000000001E10 +char findcol::y +char findcol::y#0 // y zp[1]:2 1.6666708335416665E9 +char findcol::yp +char findcol::yp#0 // yp zp[1]:9 6.250000000625E9 void initscreen() -byte* initscreen::screen -byte* initscreen::screen#1 screen zp[2]:3 202.0 -byte* initscreen::screen#2 screen zp[2]:3 134.66666666666666 +char *initscreen::screen +char *initscreen::screen#1 // screen zp[2]:3 202.0 +char *initscreen::screen#2 // screen zp[2]:3 134.66666666666666 void main() -constant byte numpoints = 6 +__constant char numpoints = 6 void render() -byte render::col -byte render::col#0 reg byte a 200002.0 -byte* render::colline -byte* render::colline#1 colline zp[2]:3 6667.333333333333 -byte* render::colline#5 colline zp[2]:3 12000.300000000001 -byte render::x -byte render::x#1 x zp[1]:5 150001.5 -byte render::x#2 x zp[1]:5 57143.42857142857 -byte render::y -byte render::y#1 y zp[1]:2 15001.5 -byte render::y#4 y zp[1]:2 10909.363636363636 +char render::col +char render::col#0 // reg byte a 200002.0 +char *render::colline +char *render::colline#1 // colline zp[2]:3 6667.333333333333 +char *render::colline#5 // colline zp[2]:3 12000.300000000001 +char render::x +char render::x#1 // x zp[1]:5 150001.5 +char render::x#2 // x zp[1]:5 57143.42857142857 +char render::y +char render::y#1 // y zp[1]:2 15001.5 +char render::y#4 // y zp[1]:2 10909.363636363636 zp[1]:2 [ render::y#4 render::y#1 findcol::y#0 ] zp[2]:3 [ render::colline#5 render::colline#1 initscreen::screen#2 initscreen::screen#1 ] @@ -1975,20 +1975,20 @@ Score: 1568620 // main main: { // initscreen() - // [1] call initscreen + // [1] call initscreen // [6] phi from main to initscreen [phi:main->initscreen] jsr initscreen // [2] phi from main main::@2 to main::@1 [phi:main/main::@2->main::@1] // main::@1 __b1: // render() - // [3] call render + // [3] call render // [12] phi from main::@1 to render [phi:main::@1->render] jsr render // [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // animate() - // [5] call animate + // [5] call animate jsr animate jmp __b1 } @@ -2064,7 +2064,7 @@ render: { // byte col = findcol(x, y) // [15] findcol::x#0 = render::x#2 // [16] findcol::y#0 = render::y#4 - // [17] call findcol + // [17] call findcol // [53] phi from render::@2 to findcol [phi:render::@2->findcol] jsr findcol // byte col = findcol(x, y) @@ -2228,7 +2228,7 @@ animate: { rts } // findcol -// findcol(byte zp(5) x, byte zp(2) y) +// __register(X) char findcol(__zp(5) char x, __zp(2) char y) findcol: { .label x = 5 .label y = 2 diff --git a/src/test/ref/voronoi.sym b/src/test/ref/voronoi.sym index 376b7901c..3156e5d29 100644 --- a/src/test/ref/voronoi.sym +++ b/src/test/ref/voronoi.sym @@ -1,68 +1,68 @@ -constant byte* COLORS = (byte*) 55296 -constant byte* COLS[] = { 1, 2, 3, 4, 5, 7 } -constant byte FILL = $e6 -constant byte* SCREEN = (byte*) 1024 -constant byte* XPOS[] = { 5, $f, 6, $22, $15, $1f } -constant byte* YPOS[] = { 5, 8, $e, 2, $11, $16 } +__constant char *COLORS = (char *) 55296 +__constant char COLS[] = { 1, 2, 3, 4, 5, 7 } +__constant char FILL = $e6 +__constant char *SCREEN = (char *) 1024 +__constant char XPOS[] = { 5, $f, 6, $22, $15, $1f } +__constant char YPOS[] = { 5, 8, $e, 2, $11, $16 } void animate() -byte~ animate::$0 reg byte x 202.0 -byte~ animate::$12 reg byte x 202.0 -byte~ animate::$15 reg byte x 202.0 -byte~ animate::$18 reg byte x 202.0 -byte~ animate::$3 reg byte x 202.0 -byte~ animate::$6 reg byte a 202.0 -byte~ animate::$9 reg byte a 202.0 -byte findcol(byte findcol::x , byte findcol::y) -byte~ findcol::$11 reg byte a 2.0000000002E10 -byte~ findcol::$9 reg byte a 2.0000000002E10 -byte findcol::diff -byte findcol::diff#1 reg byte y 2.0000000002E10 -byte findcol::diff#2 reg byte y 2.0000000002E10 -byte findcol::diff#3 reg byte a 2.0000000002E10 -byte findcol::diff#4 reg byte a 2.0000000002E10 -byte findcol::diff#5 reg byte y 1.0000000001E10 -byte findcol::diff#7 reg byte a 1.3333333334666666E10 -byte findcol::i -byte findcol::i#1 i zp[1]:6 1.0000000001E10 -byte findcol::i#10 i zp[1]:6 3.0000000003E9 -byte findcol::mincol -byte findcol::mincol#1 reg byte x 2.0000000002E10 -byte findcol::mincol#10 reg byte x 1.6666666668333335E9 -byte findcol::mincol#4 reg byte x 1.0000000001E10 -byte findcol::mindiff -byte findcol::mindiff#10 mindiff zp[1]:7 1.7647058825294118E9 -byte findcol::mindiff#12 reg byte a 1.50000000015E10 -byte findcol::mindiff#13 mindiff zp[1]:7 2.0000000002E10 -byte findcol::mindiff#15 reg byte a 2.0000000002E10 -byte findcol::return -byte findcol::return#0 reg byte a 200002.0 -byte findcol::return#3 reg byte x 3.333366667333333E9 -byte findcol::x -byte findcol::x#0 x zp[1]:5 1.6000040002E9 -byte findcol::xp -byte findcol::xp#0 xp zp[1]:8 1.0000000001E10 -byte findcol::y -byte findcol::y#0 y zp[1]:2 1.6666708335416665E9 -byte findcol::yp -byte findcol::yp#0 yp zp[1]:9 6.250000000625E9 +char animate::$0 // reg byte x 202.0 +char animate::$12 // reg byte x 202.0 +char animate::$15 // reg byte x 202.0 +char animate::$18 // reg byte x 202.0 +char animate::$3 // reg byte x 202.0 +char animate::$6 // reg byte a 202.0 +char animate::$9 // reg byte a 202.0 +char findcol(char x , char y) +char findcol::$11 // reg byte a 2.0000000002E10 +char findcol::$9 // reg byte a 2.0000000002E10 +char findcol::diff +char findcol::diff#1 // reg byte y 2.0000000002E10 +char findcol::diff#2 // reg byte y 2.0000000002E10 +char findcol::diff#3 // reg byte a 2.0000000002E10 +char findcol::diff#4 // reg byte a 2.0000000002E10 +char findcol::diff#5 // reg byte y 1.0000000001E10 +char findcol::diff#7 // reg byte a 1.3333333334666666E10 +char findcol::i +char findcol::i#1 // i zp[1]:6 1.0000000001E10 +char findcol::i#10 // i zp[1]:6 3.0000000003E9 +char findcol::mincol +char findcol::mincol#1 // reg byte x 2.0000000002E10 +char findcol::mincol#10 // reg byte x 1.6666666668333335E9 +char findcol::mincol#4 // reg byte x 1.0000000001E10 +char findcol::mindiff +char findcol::mindiff#10 // mindiff zp[1]:7 1.7647058825294118E9 +char findcol::mindiff#12 // reg byte a 1.50000000015E10 +char findcol::mindiff#13 // mindiff zp[1]:7 2.0000000002E10 +char findcol::mindiff#15 // reg byte a 2.0000000002E10 +char findcol::return +char findcol::return#0 // reg byte a 200002.0 +char findcol::return#3 // reg byte x 3.333366667333333E9 +char findcol::x +char findcol::x#0 // x zp[1]:5 1.6000040002E9 +char findcol::xp +char findcol::xp#0 // xp zp[1]:8 1.0000000001E10 +char findcol::y +char findcol::y#0 // y zp[1]:2 1.6666708335416665E9 +char findcol::yp +char findcol::yp#0 // yp zp[1]:9 6.250000000625E9 void initscreen() -byte* initscreen::screen -byte* initscreen::screen#1 screen zp[2]:3 202.0 -byte* initscreen::screen#2 screen zp[2]:3 134.66666666666666 +char *initscreen::screen +char *initscreen::screen#1 // screen zp[2]:3 202.0 +char *initscreen::screen#2 // screen zp[2]:3 134.66666666666666 void main() -constant byte numpoints = 6 +__constant char numpoints = 6 void render() -byte render::col -byte render::col#0 reg byte a 200002.0 -byte* render::colline -byte* render::colline#1 colline zp[2]:3 6667.333333333333 -byte* render::colline#5 colline zp[2]:3 12000.300000000001 -byte render::x -byte render::x#1 x zp[1]:5 150001.5 -byte render::x#2 x zp[1]:5 57143.42857142857 -byte render::y -byte render::y#1 y zp[1]:2 15001.5 -byte render::y#4 y zp[1]:2 10909.363636363636 +char render::col +char render::col#0 // reg byte a 200002.0 +char *render::colline +char *render::colline#1 // colline zp[2]:3 6667.333333333333 +char *render::colline#5 // colline zp[2]:3 12000.300000000001 +char render::x +char render::x#1 // x zp[1]:5 150001.5 +char render::x#2 // x zp[1]:5 57143.42857142857 +char render::y +char render::y#1 // y zp[1]:2 15001.5 +char render::y#4 // y zp[1]:2 10909.363636363636 zp[1]:2 [ render::y#4 render::y#1 findcol::y#0 ] zp[2]:3 [ render::colline#5 render::colline#1 initscreen::screen#2 initscreen::screen#1 ] diff --git a/src/test/ref/weeip-bbslist.asm b/src/test/ref/weeip-bbslist.asm index 2d990724b..9f954d156 100644 --- a/src/test/ref/weeip-bbslist.asm +++ b/src/test/ref/weeip-bbslist.asm @@ -147,7 +147,7 @@ main: { } .segment Code // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $13 @@ -223,7 +223,7 @@ gotoxy: { } // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(5) str) +// void printf_string(__zp(5) char *str, char format_min_length, char format_justify_left) printf_string: { .label str = 5 // cputs(str) @@ -232,7 +232,7 @@ printf_string: { rts } // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(5) s) +// void cputs(__zp(5) const char *s) cputs: { .label s = 5 __b1: @@ -253,7 +253,7 @@ cputs: { jmp __b1 } // Print an unsigned int using a specific format -// printf_uint(word zp(5) uvalue) +// void printf_uint(__zp(5) unsigned int uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uint: { .label uvalue = 5 // printf_buffer.sign = format.sign_always?'+':0 @@ -272,7 +272,7 @@ printf_uint: { } // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') cmp #'\n' @@ -303,7 +303,7 @@ cputc: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp(5) value, byte* zp($17) buffer) +// void utoa(__zp(5) unsigned int value, __zp($17) char *buffer, char radix) utoa: { .const max_digits = 5 .label digit_value = $15 @@ -376,7 +376,7 @@ utoa: { } // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // if(buffer.sign) @@ -430,7 +430,7 @@ cputln: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($17) buffer, word zp(5) value, word zp($15) sub) +// __zp(5) unsigned int utoa_append(__zp($17) char *buffer, __zp(5) unsigned int value, __zp($15) unsigned int sub) utoa_append: { .label buffer = $17 .label value = 5 @@ -530,7 +530,7 @@ cscroll: { } // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(7) destination, void* zp($17) source) +// void * memcpy(__zp(7) void *destination, __zp($17) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = 7 @@ -572,7 +572,7 @@ memcpy: { jmp __b1 } // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(7) str, byte register(X) c) +// void * memset(__zp(7) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 7 diff --git a/src/test/ref/weeip-bbslist.cfg b/src/test/ref/weeip-bbslist.cfg index 47e29924b..f27dced37 100644 --- a/src/test/ref/weeip-bbslist.cfg +++ b/src/test/ref/weeip-bbslist.cfg @@ -8,11 +8,11 @@ __start::__init1: scope:[__start] from __start [2] conio_cursor_y = 0 [3] conio_line_text = DEFAULT_SCREEN [4] conio_line_color = COLORRAM - [5] call conio_c64_init + [5] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [6] phi() - [7] call main + [7] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [8] return @@ -29,7 +29,7 @@ conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [13] gotoxy::y#2 = conio_c64_init::line#2 - [14] call gotoxy + [14] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [15] return @@ -37,44 +37,44 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 void main() main: scope:[main] from __start::@1 - [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 + [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 to:main::@1 main::@1: scope:[main] from main main::@8 [17] main::bbs#2 = phi( main/bbs_list, main::@8/main::bbs#1 ) - [18] if((byte*)0!=*((byte**)main::bbs#2)) goto main::@2 + [18] if((char *)0!=*((char **)main::bbs#2)) goto main::@2 to:main::@return main::@return: scope:[main] from main::@1 [19] return to:@return main::@2: scope:[main] from main::@1 - [20] printf_string::str#0 = *((byte**)main::bbs#2) - [21] call printf_string + [20] printf_string::str#0 = *((char **)main::bbs#2) + [21] call printf_string to:main::@3 main::@3: scope:[main] from main::@2 [22] phi() - [23] call cputs + [23] call cputs to:main::@4 main::@4: scope:[main] from main::@3 - [24] printf_string::str#1 = ((byte**)main::bbs#2)[OFFSET_STRUCT_BBS_HOST_NAME] - [25] call printf_string + [24] printf_string::str#1 = ((char **)main::bbs#2)[OFFSET_STRUCT_BBS_HOST_NAME] + [25] call printf_string to:main::@5 main::@5: scope:[main] from main::@4 [26] phi() - [27] call cputs + [27] call cputs to:main::@6 main::@6: scope:[main] from main::@5 - [28] printf_uint::uvalue#0 = ((word*)main::bbs#2)[OFFSET_STRUCT_BBS_PORT_NUMBER] - [29] call printf_uint + [28] printf_uint::uvalue#0 = ((unsigned int *)main::bbs#2)[OFFSET_STRUCT_BBS_PORT_NUMBER] + [29] call printf_uint to:main::@7 main::@7: scope:[main] from main::@6 [30] phi() - [31] call cputs + [31] call cputs to:main::@8 main::@8: scope:[main] from main::@7 [32] main::bbs#1 = main::bbs#2 + SIZEOF_STRUCT_BBS to:main::@1 -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 [33] if(gotoxy::y#2<$19+1) goto gotoxy::@3 to:gotoxy::@1 @@ -87,7 +87,7 @@ gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [36] conio_cursor_x = gotoxy::x#2 [37] conio_cursor_y = gotoxy::y#4 - [38] gotoxy::$7 = (word)gotoxy::y#4 + [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 [39] gotoxy::$8 = gotoxy::$7 << 2 [40] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [41] gotoxy::line_offset#0 = gotoxy::$9 << 3 @@ -100,19 +100,19 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [46] return to:@return -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@2 main::@4 [47] printf_string::str#2 = phi( main::@2/printf_string::str#0, main::@4/printf_string::str#1 ) to:printf_string::@1 printf_string::@1: scope:[printf_string] from printf_string [48] cputs::s#2 = printf_string::str#2 - [49] call cputs + [49] call cputs to:printf_string::@return printf_string::@return: scope:[printf_string] from printf_string::@1 [50] return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@3 main::@5 main::@7 printf_number_buffer::@2 printf_string::@1 [51] cputs::s#7 = phi( main::@3/main::s, main::@5/main::s, main::@7/main::s2, printf_number_buffer::@2/printf_number_buffer::buffer_digits#0, printf_string::@1/cputs::s#2 ) to:cputs::@1 @@ -127,27 +127,27 @@ cputs::@return: scope:[cputs] from cputs::@1 to:@return cputs::@2: scope:[cputs] from cputs::@1 [57] cputc::c#0 = cputs::c#1 - [58] call cputc + [58] call cputc to:cputs::@1 -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@6 [59] phi() to:printf_uint::@1 printf_uint::@1: scope:[printf_uint] from printf_uint - [60] *((byte*)&printf_buffer) = 0 + [60] *((char *)&printf_buffer) = 0 [61] utoa::value#1 = printf_uint::uvalue#0 - [62] call utoa + [62] call utoa to:printf_uint::@2 printf_uint::@2: scope:[printf_uint] from printf_uint::@1 - [63] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) - [64] call printf_number_buffer + [63] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) + [64] call printf_number_buffer to:printf_uint::@return printf_uint::@return: scope:[printf_uint] from printf_uint::@2 [65] return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@3 [66] cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@3/cputc::c#2 ) [67] if(cputc::c#3==' @@ -161,29 +161,29 @@ cputc::@2: scope:[cputc] from cputc to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [72] phi() - [73] call cputln + [73] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [74] return to:@return cputc::@1: scope:[cputc] from cputc [75] phi() - [76] call cputln + [76] call cputln to:cputc::@return -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_uint::@1 [77] phi() to:utoa::@1 utoa::@1: scope:[utoa] from utoa utoa::@4 - [78] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [78] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) [78] utoa::started#2 = phi( utoa::@4/utoa::started#4, utoa/0 ) [78] utoa::value#2 = phi( utoa::@4/utoa::value#6, utoa/utoa::value#1 ) [78] utoa::digit#2 = phi( utoa::@4/utoa::digit#1, utoa/0 ) [79] if(utoa::digit#2= 'a' @@ -145,7 +145,7 @@ toupper::@return: scope:[toupper] from toupper::@1 toupper::@2 return to:@return -byte* strupr(byte* strupr::str) +char * strupr(char *str) strupr: scope:[strupr] from printf_number_buffer::@11 strupr::str#1 = phi( printf_number_buffer::@11/strupr::str#0 ) strupr::src#0 = strupr::str#1 @@ -160,7 +160,7 @@ strupr::@2: scope:[strupr] from strupr::@1 strupr::str#5 = phi( strupr::@1/strupr::str#3 ) strupr::src#3 = phi( strupr::@1/strupr::src#2 ) toupper::ch#0 = *strupr::src#3 - call toupper + call toupper toupper::return#3 = toupper::return#2 to:strupr::@4 strupr::@4: scope:[strupr] from strupr::@2 @@ -181,13 +181,13 @@ strupr::@return: scope:[strupr] from strupr::@3 return to:@return -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) +void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from printf_uint::@3 utoa::buffer#21 = phi( printf_uint::@3/utoa::buffer#5 ) utoa::value#12 = phi( printf_uint::@3/utoa::value#1 ) utoa::radix#1 = phi( printf_uint::@3/utoa::radix#0 ) utoa::max_digits#0 = 0 - utoa::digit_values#0 = (word*) 0 + utoa::digit_values#0 = (unsigned int *) 0 utoa::$0 = utoa::radix#1 == DECIMAL if(utoa::$0) goto utoa::@1 to:utoa::@6 @@ -275,7 +275,7 @@ utoa::@11: scope:[utoa] from utoa::@10 utoa::value#2 = phi( utoa::@10/utoa::value#5 ) utoa::digit_values#5 = phi( utoa::@10/utoa::digit_values#6 ) utoa::digit#3 = phi( utoa::@10/utoa::digit#2 ) - utoa::$10 = utoa::digit#3 * SIZEOF_WORD + utoa::$10 = utoa::digit#3 * SIZEOF_UNSIGNED_INT utoa::digit_value#0 = utoa::digit_values#5[utoa::$10] utoa::$6 = utoa::value#2 >= utoa::digit_value#0 utoa::$7 = utoa::started#2 || utoa::$6 @@ -285,7 +285,7 @@ utoa::@11: scope:[utoa] from utoa::@10 utoa::@12: scope:[utoa] from utoa::@10 utoa::buffer#7 = phi( utoa::@10/utoa::buffer#11 ) utoa::value#3 = phi( utoa::@10/utoa::value#5 ) - utoa::$11 = (byte)utoa::value#3 + utoa::$11 = (char)utoa::value#3 *utoa::buffer#7 = DIGITS[utoa::$11] utoa::buffer#3 = ++ utoa::buffer#7 *utoa::buffer#3 = 0 @@ -309,7 +309,7 @@ utoa::@14: scope:[utoa] from utoa::@11 utoa_append::buffer#0 = utoa::buffer#8 utoa_append::value#0 = utoa::value#4 utoa_append::sub#0 = utoa::digit_value#1 - call utoa_append + call utoa_append utoa_append::return#0 = utoa_append::return#2 to:utoa::@15 utoa::@15: scope:[utoa] from utoa::@14 @@ -324,7 +324,7 @@ utoa::@15: scope:[utoa] from utoa::@14 utoa::started#1 = 1 to:utoa::@13 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@14 utoa_append::buffer#3 = phi( utoa::@14/utoa_append::buffer#0 ) utoa_append::sub#3 = phi( utoa::@14/utoa_append::sub#0 ) @@ -360,7 +360,7 @@ utoa_append::@return: scope:[utoa_append] from utoa_append::@3 return to:@return -void gotoxy(byte gotoxy::x , byte gotoxy::y) +void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from conio_c64_init::@1 cscroll::@2 gotoxy::x#5 = phi( conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#3 = phi( conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) @@ -384,7 +384,7 @@ gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::x#4 = phi( gotoxy::@1/gotoxy::x#3, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#4 conio_cursor_y = gotoxy::y#4 - gotoxy::$7 = (word)gotoxy::y#4 + gotoxy::$7 = (unsigned int)gotoxy::y#4 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = CONIO_SCREEN_TEXT + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 @@ -399,7 +399,7 @@ gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return -void cputc(byte cputc::c) +void cputc(char c) cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 cputc::c#3 = phi( cputs::@2/cputc::c#0, printf_number_buffer::@9/cputc::c#2, printf_padding::@2/cputc::c#1 ) cputc::$0 = cputc::c#3 == ' @@ -407,7 +407,7 @@ cputc: scope:[cputc] from cputs::@2 printf_number_buffer::@9 printf_padding::@2 if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc - call cputln + call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return @@ -421,7 +421,7 @@ cputc::@2: scope:[cputc] from cputc if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 - call cputln + call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return @@ -435,7 +435,7 @@ cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y - call cscroll + call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return @@ -443,7 +443,7 @@ cputln::@return: scope:[cputln] from cputln::@1 return to:@return -void cputs(const byte* cputs::s) +void cputs(const char *s) cputs: scope:[cputs] from main::@3 main::@5 main::@7 printf_number_buffer::@5 printf_string::@2 cputs::s#7 = phi( main::@3/cputs::s#3, main::@5/cputs::s#4, main::@7/cputs::s#5, printf_number_buffer::@5/cputs::s#1, printf_string::@2/cputs::s#2 ) cputs::c#0 = 0 @@ -460,7 +460,7 @@ cputs::@2: scope:[cputs] from cputs::@1 cputs::s#9 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 - call cputc + call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#8 = phi( cputs::@2/cputs::s#9 ) @@ -480,31 +480,31 @@ cscroll::@1: scope:[cscroll] from cscroll if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 - memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT - memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 + memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT + memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 memcpy::num#0 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 - memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS - memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 + memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS + memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 memcpy::num#1 = $19*$28-$28 - call memcpy + call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 - memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 + memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 - call memset + call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 - memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 + memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 - call memset + call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 @@ -515,7 +515,7 @@ cscroll::@7: scope:[cscroll] from cscroll::@6 cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 - call gotoxy + call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return @@ -534,7 +534,7 @@ conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init:: conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 - call gotoxy + call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return @@ -545,7 +545,7 @@ conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return -void printf_padding(byte printf_padding::pad , byte printf_padding::length) +void printf_padding(char pad , char length) printf_padding: scope:[printf_padding] from printf_number_buffer::@10 printf_number_buffer::@12 printf_number_buffer::@8 printf_string::@5 printf_string::@6 printf_padding::pad#7 = phi( printf_number_buffer::@10/printf_padding::pad#1, printf_number_buffer::@12/printf_padding::pad#2, printf_number_buffer::@8/printf_padding::pad#0, printf_string::@5/printf_padding::pad#3, printf_string::@6/printf_padding::pad#4 ) printf_padding::length#6 = phi( printf_number_buffer::@10/printf_padding::length#1, printf_number_buffer::@12/printf_padding::length#2, printf_number_buffer::@8/printf_padding::length#0, printf_string::@5/printf_padding::length#3, printf_string::@6/printf_padding::length#4 ) @@ -563,7 +563,7 @@ printf_padding::@2: scope:[printf_padding] from printf_padding::@1 printf_padding::i#4 = phi( printf_padding::@1/printf_padding::i#2 ) printf_padding::pad#5 = phi( printf_padding::@1/printf_padding::pad#6 ) cputc::c#1 = printf_padding::pad#5 - call cputc + call cputc to:printf_padding::@3 printf_padding::@3: scope:[printf_padding] from printf_padding::@2 printf_padding::pad#8 = phi( printf_padding::@2/printf_padding::pad#5 ) @@ -575,7 +575,7 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 return to:@return -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_uint: scope:[printf_uint] from main::@6 printf_uint::format_upper_case#5 = phi( main::@6/printf_uint::format_upper_case#0 ) printf_uint::format_zero_padding#5 = phi( main::@6/printf_uint::format_zero_padding#0 ) @@ -616,11 +616,11 @@ printf_uint::@3: scope:[printf_uint] from printf_uint::@1 printf_uint::@2 printf_uint::format_radix#1 = phi( printf_uint::@1/printf_uint::format_radix#3, printf_uint::@2/printf_uint::format_radix#4 ) printf_uint::uvalue#1 = phi( printf_uint::@1/printf_uint::uvalue#2, printf_uint::@2/printf_uint::uvalue#3 ) printf_uint::$2 = phi( printf_uint::@1/printf_uint::$1, printf_uint::@2/printf_uint::$0 ) - *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uint::$2 + *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uint::$2 utoa::value#1 = printf_uint::uvalue#1 - utoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS utoa::radix#0 = printf_uint::format_radix#1 - call utoa + call utoa to:printf_uint::@4 printf_uint::@4: scope:[printf_uint] from printf_uint::@3 printf_uint::format_radix#2 = phi( printf_uint::@3/printf_uint::format_radix#1 ) @@ -629,15 +629,15 @@ printf_uint::@4: scope:[printf_uint] from printf_uint::@3 printf_uint::format_sign_always#2 = phi( printf_uint::@3/printf_uint::format_sign_always#3 ) printf_uint::format_justify_left#1 = phi( printf_uint::@3/printf_uint::format_justify_left#2 ) printf_uint::format_min_length#1 = phi( printf_uint::@3/printf_uint::format_min_length#2 ) - printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) - printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS + printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) + printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS printf_number_buffer::format_min_length#0 = printf_uint::format_min_length#1 printf_number_buffer::format_justify_left#0 = printf_uint::format_justify_left#1 printf_number_buffer::format_sign_always#0 = printf_uint::format_sign_always#2 printf_number_buffer::format_zero_padding#0 = printf_uint::format_zero_padding#1 printf_number_buffer::format_upper_case#0 = printf_uint::format_upper_case#1 printf_number_buffer::format_radix#0 = printf_uint::format_radix#2 - call printf_number_buffer + call printf_number_buffer to:printf_uint::@5 printf_uint::@5: scope:[printf_uint] from printf_uint::@4 to:printf_uint::@return @@ -645,7 +645,7 @@ printf_uint::@return: scope:[printf_uint] from printf_uint::@5 return to:@return -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) printf_number_buffer: scope:[printf_number_buffer] from printf_uint::@4 printf_number_buffer::format_upper_case#10 = phi( printf_uint::@4/printf_number_buffer::format_upper_case#0 ) printf_number_buffer::buffer_sign#7 = phi( printf_uint::@4/printf_number_buffer::buffer_sign#0 ) @@ -682,7 +682,7 @@ printf_number_buffer::@6: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#4 = phi( printf_number_buffer/printf_number_buffer::buffer_sign#7 ) printf_number_buffer::buffer_digits#1 = phi( printf_number_buffer/printf_number_buffer::buffer_digits#4 ) strlen::str#1 = printf_number_buffer::buffer_digits#1 - call strlen + call strlen strlen::return#2 = strlen::return#1 to:printf_number_buffer::@15 printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buffer::@6 @@ -694,7 +694,7 @@ printf_number_buffer::@15: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::buffer_sign#1 = phi( printf_number_buffer::@6/printf_number_buffer::buffer_sign#4 ) strlen::return#5 = phi( printf_number_buffer::@6/strlen::return#2 ) printf_number_buffer::$19 = strlen::return#5 - printf_number_buffer::len#0 = (signed byte)printf_number_buffer::$19 + printf_number_buffer::len#0 = (signed char)printf_number_buffer::$19 printf_number_buffer::$29 = 0 != printf_number_buffer::buffer_sign#1 printf_number_buffer::$20 = ! printf_number_buffer::$29 if(printf_number_buffer::$20) goto printf_number_buffer::@13 @@ -707,7 +707,7 @@ printf_number_buffer::@13: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_justify_left#4 = phi( printf_number_buffer::@15/printf_number_buffer::format_justify_left#7, printf_number_buffer::@7/printf_number_buffer::format_justify_left#8 ) printf_number_buffer::len#2 = phi( printf_number_buffer::@15/printf_number_buffer::len#0, printf_number_buffer::@7/printf_number_buffer::len#1 ) printf_number_buffer::format_min_length#2 = phi( printf_number_buffer::@15/printf_number_buffer::format_min_length#3, printf_number_buffer::@7/printf_number_buffer::format_min_length#4 ) - printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#2 + printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 printf_number_buffer::$21 = printf_number_buffer::$25 - printf_number_buffer::len#2 printf_number_buffer::padding#1 = printf_number_buffer::$21 printf_number_buffer::$22 = printf_number_buffer::padding#1 < 0 @@ -751,8 +751,8 @@ printf_number_buffer::@8: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::buffer_sign#10 = phi( printf_number_buffer::@1/printf_number_buffer::buffer_sign#5 ) printf_number_buffer::padding#4 = phi( printf_number_buffer::@1/printf_number_buffer::padding#3 ) printf_padding::pad#0 = ' ' - printf_padding::length#0 = (byte)printf_number_buffer::padding#4 - call printf_padding + printf_padding::length#0 = (char)printf_number_buffer::padding#4 + call printf_padding to:printf_number_buffer::@16 printf_number_buffer::@16: scope:[printf_number_buffer] from printf_number_buffer::@8 printf_number_buffer::format_justify_left#18 = phi( printf_number_buffer::@8/printf_number_buffer::format_justify_left#20 ) @@ -780,7 +780,7 @@ printf_number_buffer::@9: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#13 = phi( printf_number_buffer::@2/printf_number_buffer::format_zero_padding#8 ) printf_number_buffer::buffer_sign#3 = phi( printf_number_buffer::@2/printf_number_buffer::buffer_sign#2 ) cputc::c#2 = printf_number_buffer::buffer_sign#3 - call cputc + call cputc to:printf_number_buffer::@17 printf_number_buffer::@17: scope:[printf_number_buffer] from printf_number_buffer::@9 printf_number_buffer::format_justify_left#15 = phi( printf_number_buffer::@9/printf_number_buffer::format_justify_left#19 ) @@ -806,8 +806,8 @@ printf_number_buffer::@10: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_upper_case#6 = phi( printf_number_buffer::@3/printf_number_buffer::format_upper_case#3 ) printf_number_buffer::padding#6 = phi( printf_number_buffer::@3/printf_number_buffer::padding#5 ) printf_padding::pad#1 = '0' - printf_padding::length#1 = (byte)printf_number_buffer::padding#6 - call printf_padding + printf_padding::length#1 = (char)printf_number_buffer::padding#6 + call printf_padding to:printf_number_buffer::@18 printf_number_buffer::@18: scope:[printf_number_buffer] from printf_number_buffer::@10 printf_number_buffer::padding#16 = phi( printf_number_buffer::@10/printf_number_buffer::padding#6 ) @@ -822,7 +822,7 @@ printf_number_buffer::@5: scope:[printf_number_buffer] from printf_number_buffe printf_number_buffer::format_zero_padding#9 = phi( printf_number_buffer::@20/printf_number_buffer::format_zero_padding#14, printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#2 = phi( printf_number_buffer::@20/printf_number_buffer::buffer_digits#5, printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) cputs::s#1 = printf_number_buffer::buffer_digits#2 - call cputs + call cputs to:printf_number_buffer::@19 printf_number_buffer::@19: scope:[printf_number_buffer] from printf_number_buffer::@5 printf_number_buffer::padding#7 = phi( printf_number_buffer::@5/printf_number_buffer::padding#11 ) @@ -841,7 +841,7 @@ printf_number_buffer::@11: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::format_zero_padding#19 = phi( printf_number_buffer::@4/printf_number_buffer::format_zero_padding#15 ) printf_number_buffer::buffer_digits#3 = phi( printf_number_buffer::@4/printf_number_buffer::buffer_digits#6 ) strupr::str#0 = printf_number_buffer::buffer_digits#3 - call strupr + call strupr strupr::return#2 = strupr::return#1 to:printf_number_buffer::@20 printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buffer::@11 @@ -853,8 +853,8 @@ printf_number_buffer::@20: scope:[printf_number_buffer] from printf_number_buff printf_number_buffer::@12: scope:[printf_number_buffer] from printf_number_buffer::@19 printf_number_buffer::padding#8 = phi( printf_number_buffer::@19/printf_number_buffer::padding#7 ) printf_padding::pad#2 = ' ' - printf_padding::length#2 = (byte)printf_number_buffer::padding#8 - call printf_padding + printf_padding::length#2 = (char)printf_number_buffer::padding#8 + call printf_padding to:printf_number_buffer::@21 printf_number_buffer::@21: scope:[printf_number_buffer] from printf_number_buffer::@12 to:printf_number_buffer::@return @@ -862,7 +862,7 @@ printf_number_buffer::@return: scope:[printf_number_buffer] from printf_number_ return to:@return -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +void printf_string(char *str , char format_min_length , char format_justify_left) printf_string: scope:[printf_string] from main::@2 main::@4 printf_string::str#4 = phi( main::@2/printf_string::str#0, main::@4/printf_string::str#1 ) printf_string::format_justify_left#4 = phi( main::@2/printf_string::format_justify_left#0, main::@4/printf_string::format_justify_left#1 ) @@ -887,7 +887,7 @@ printf_string::@3: scope:[printf_string] from printf_string printf_string::format_min_length#4 = phi( printf_string/printf_string::format_min_length#2 ) printf_string::str#2 = phi( printf_string/printf_string::str#4 ) strlen::str#2 = printf_string::str#2 - call strlen + call strlen strlen::return#3 = strlen::return#1 to:printf_string::@7 printf_string::@7: scope:[printf_string] from printf_string::@3 @@ -896,8 +896,8 @@ printf_string::@7: scope:[printf_string] from printf_string::@3 printf_string::format_min_length#3 = phi( printf_string::@3/printf_string::format_min_length#4 ) strlen::return#6 = phi( printf_string::@3/strlen::return#3 ) printf_string::$9 = strlen::return#6 - printf_string::len#0 = (signed byte)printf_string::$9 - printf_string::$13 = (signed byte)printf_string::format_min_length#3 + printf_string::len#0 = (signed char)printf_string::$9 + printf_string::$13 = (signed char)printf_string::format_min_length#3 printf_string::$10 = printf_string::$13 - printf_string::len#0 printf_string::padding#1 = printf_string::$10 printf_string::$11 = printf_string::padding#1 < 0 @@ -914,7 +914,7 @@ printf_string::@2: scope:[printf_string] from printf_string::@1 printf_string:: printf_string::format_justify_left#7 = phi( printf_string::@1/printf_string::format_justify_left#2, printf_string::@9/printf_string::format_justify_left#9 ) printf_string::str#3 = phi( printf_string::@1/printf_string::str#5, printf_string::@9/printf_string::str#6 ) cputs::s#2 = printf_string::str#3 - call cputs + call cputs to:printf_string::@8 printf_string::@8: scope:[printf_string] from printf_string::@2 printf_string::padding#4 = phi( printf_string::@2/printf_string::padding#7 ) @@ -928,8 +928,8 @@ printf_string::@5: scope:[printf_string] from printf_string::@1 printf_string::str#9 = phi( printf_string::@1/printf_string::str#5 ) printf_string::padding#5 = phi( printf_string::@1/printf_string::padding#3 ) printf_padding::pad#3 = ' ' - printf_padding::length#3 = (byte)printf_string::padding#5 - call printf_padding + printf_padding::length#3 = (char)printf_string::padding#5 + call printf_padding to:printf_string::@9 printf_string::@9: scope:[printf_string] from printf_string::@5 printf_string::padding#8 = phi( printf_string::@5/printf_string::padding#5 ) @@ -939,8 +939,8 @@ printf_string::@9: scope:[printf_string] from printf_string::@5 printf_string::@6: scope:[printf_string] from printf_string::@8 printf_string::padding#6 = phi( printf_string::@8/printf_string::padding#4 ) printf_padding::pad#4 = ' ' - printf_padding::length#4 = (byte)printf_string::padding#6 - call printf_padding + printf_padding::length#4 = (char)printf_string::padding#6 + call printf_padding to:printf_string::@10 printf_string::@10: scope:[printf_string] from printf_string::@6 to:printf_string::@return @@ -950,47 +950,47 @@ printf_string::@return: scope:[printf_string] from printf_string::@10 printf_st void main() main: scope:[main] from __start::@1 - *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 + *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 main::bbs#0 = bbs_list to:main::@1 main::@1: scope:[main] from main main::@8 main::bbs#2 = phi( main/main::bbs#0, main::@8/main::bbs#1 ) - main::$5 = (byte**)main::bbs#2 + main::$5 = (char **)main::bbs#2 main::$1 = main::$5 + OFFSET_STRUCT_BBS_NAME - main::$9 = (byte*)0 != *main::$1 + main::$9 = (char *)0 != *main::$1 if(main::$9) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 main::bbs#3 = phi( main::@1/main::bbs#2 ) - main::$6 = (byte**)main::bbs#3 + main::$6 = (char **)main::bbs#3 main::$2 = main::$6 + OFFSET_STRUCT_BBS_NAME printf_string::str#0 = *main::$2 printf_string::format_min_length#0 = 0 printf_string::format_justify_left#0 = 0 - call printf_string + call printf_string to:main::@3 main::@3: scope:[main] from main::@2 main::bbs#7 = phi( main::@2/main::bbs#3 ) cputs::s#3 = main::s - call cputs + call cputs to:main::@4 main::@4: scope:[main] from main::@3 main::bbs#4 = phi( main::@3/main::bbs#7 ) - main::$7 = (byte**)main::bbs#4 + main::$7 = (char **)main::bbs#4 main::$3 = main::$7 + OFFSET_STRUCT_BBS_HOST_NAME printf_string::str#1 = *main::$3 printf_string::format_min_length#1 = 0 printf_string::format_justify_left#1 = 0 - call printf_string + call printf_string to:main::@5 main::@5: scope:[main] from main::@4 main::bbs#8 = phi( main::@4/main::bbs#4 ) cputs::s#4 = main::s1 - call cputs + call cputs to:main::@6 main::@6: scope:[main] from main::@5 main::bbs#5 = phi( main::@5/main::bbs#8 ) - main::$8 = (word*)main::bbs#5 + main::$8 = (unsigned int *)main::bbs#5 main::$4 = main::$8 + OFFSET_STRUCT_BBS_PORT_NUMBER printf_uint::uvalue#0 = *main::$4 printf_uint::format_min_length#0 = 0 @@ -999,12 +999,12 @@ main::@6: scope:[main] from main::@5 printf_uint::format_zero_padding#0 = 0 printf_uint::format_upper_case#0 = 0 printf_uint::format_radix#0 = DECIMAL - call printf_uint + call printf_uint to:main::@7 main::@7: scope:[main] from main::@6 main::bbs#9 = phi( main::@6/main::bbs#5 ) cputs::s#5 = main::s2 - call cputs + call cputs to:main::@8 main::@8: scope:[main] from main::@7 main::bbs#6 = phi( main::@7/main::bbs#9 ) @@ -1024,12 +1024,12 @@ __start::__init1: scope:[__start] from __start conio_line_color = CONIO_SCREEN_COLORS conio_textcolor = CONIO_TEXTCOLOR_DEFAULT conio_scroll_enable = 1 - call conio_c64_init + call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 to:__start::@1 __start::@1: scope:[__start] from __start::@2 - call main + call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 to:__start::@return @@ -1038,757 +1038,757 @@ __start::@return: scope:[__start] from __start::@3 to:@return SYMBOL TABLE SSA -constant byte BINARY = 2 -constant byte* const COLORRAM = (byte*)$d800 -constant byte* const CONIO_SCREEN_COLORS = COLORRAM -constant byte* const CONIO_SCREEN_TEXT = DEFAULT_SCREEN -constant const byte CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -constant byte DECIMAL = $a -constant byte* const DEFAULT_SCREEN = (byte*)$400 -constant byte* DIGITS[] = "0123456789abcdef"z -constant byte HEXADECIMAL = $10 -constant const byte LIGHT_BLUE = $e -constant byte OCTAL = 8 -constant byte OFFSET_STRUCT_BBS_HOST_NAME = 2 -constant byte OFFSET_STRUCT_BBS_NAME = 0 -constant byte OFFSET_STRUCT_BBS_PORT_NUMBER = 4 -constant byte OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant word* RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } -constant word* RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } -constant byte SIZEOF_STRUCT_BBS = 6 -constant byte SIZEOF_WORD = 2 -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*)$d000 +__constant char BINARY = 2 +__constant char * const COLORRAM = (char *)$d800 +__constant char * const CONIO_SCREEN_COLORS = COLORRAM +__constant char * const CONIO_SCREEN_TEXT = DEFAULT_SCREEN +__constant const char CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE +__constant char DECIMAL = $a +__constant char * const DEFAULT_SCREEN = (char *)$400 +__constant char DIGITS[] = "0123456789abcdef"z +__constant char HEXADECIMAL = $10 +__constant const char LIGHT_BLUE = $e +__constant char OCTAL = 8 +__constant char OFFSET_STRUCT_BBS_HOST_NAME = 2 +__constant char OFFSET_STRUCT_BBS_NAME = 0 +__constant char OFFSET_STRUCT_BBS_PORT_NUMBER = 4 +__constant char OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN = 0 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } +__constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } +__constant char SIZEOF_STRUCT_BBS = 6 +__constant char SIZEOF_UNSIGNED_INT = 2 +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *)$d000 void __start() -constant byte* bbs_host_name[$f] = "byob.hopto.org" -constant byte* bbs_host_name1[$14] = "rapidfire.hopto.org" -constant byte* bbs_host_name10[$16] = "bbs.jammingsignal.com" -constant byte* bbs_host_name11[$19] = "centronian.servebeer.com" -constant byte* bbs_host_name12[$11] = "aubbs.dyndns.org" -constant byte* bbs_host_name13[$13] = "oasisbbs.hopto.org" -constant byte* bbs_host_name14[$13] = "bbs.thediskbox.com" -constant byte* bbs_host_name15[$19] = "cottonwoodbbs.dyndns.org" -constant byte* bbs_host_name16[$f] = "cib.dyndns.org" -constant byte* bbs_host_name17[$14] = "rapidfire.hopto.org" -constant byte* bbs_host_name18[$16] = "madworld.bounceme.net" -constant byte* bbs_host_name19[$10] = "bbs.thejlab.com" -constant byte* bbs_host_name2[$13] = "antidote.hopto.org" -constant byte* bbs_host_name20[$15] = "hotwirebbs.zapto.org" -constant byte* bbs_host_name21[$18] = "endlesschaos.dyndns.org" -constant byte* bbs_host_name22[$19] = "borderlinebbs.dyndns.org" -constant byte* bbs_host_name23[$16] = "raveolution.hopto.org" -constant byte* bbs_host_name24[$16] = "theedgebbs.dyndns.org" -constant byte* bbs_host_name25[$14] = "F96NG92-L.fritz.box" -constant byte* bbs_host_name3[$18] = "wizardsrealm.c64bbs.org" -constant byte* bbs_host_name4[$15] = "the-hidden.hopto.org" -constant byte* bbs_host_name5[$13] = "eagelbird.ddns.net" -constant byte* bbs_host_name6[$c] = "scorp.us.to" -constant byte* bbs_host_name7[$14] = "maraud.dynalias.com" -constant byte* bbs_host_name8[$f] = "cib.dyndns.org" -constant byte* bbs_host_name9[$1d] = "64vintageremixbbs.dyndns.org" -constant const struct bbs* bbs_list[$1b] = { { name: bbs_name, host_name: bbs_host_name, port_number: $fa80 }, { name: bbs_name1, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name2, host_name: bbs_host_name2, port_number: $fa80 }, { name: bbs_name3, host_name: bbs_host_name3, port_number: $17 }, { name: bbs_name4, host_name: bbs_host_name4, port_number: $fa80 }, { name: bbs_name5, host_name: bbs_host_name5, port_number: $1900 }, { name: bbs_name6, host_name: bbs_host_name6, port_number: $17 }, { name: bbs_name7, host_name: bbs_host_name7, port_number: $1900 }, { name: bbs_name8, host_name: bbs_host_name8, port_number: $1900 }, { name: bbs_name9, host_name: bbs_host_name9, port_number: $1900 }, { name: bbs_name10, host_name: bbs_host_name10, port_number: $17 }, { name: bbs_name11, host_name: bbs_host_name11, port_number: $1900 }, { name: bbs_name12, host_name: bbs_host_name12, port_number: $8fc }, { name: bbs_name13, host_name: bbs_host_name13, port_number: $1900 }, { name: bbs_name14, host_name: bbs_host_name14, port_number: $1900 }, { name: bbs_name15, host_name: bbs_host_name15, port_number: $1966 }, { name: bbs_name16, host_name: bbs_host_name16, port_number: $1904 }, { name: bbs_name17, host_name: bbs_host_name17, port_number: $fa80 }, { name: bbs_name18, host_name: bbs_host_name18, port_number: $1900 }, { name: bbs_name19, host_name: bbs_host_name19, port_number: $1900 }, { name: bbs_name20, host_name: bbs_host_name20, port_number: $1966 }, { name: bbs_name21, host_name: bbs_host_name21, port_number: $1900 }, { name: bbs_name22, host_name: bbs_host_name22, port_number: $1900 }, { name: bbs_name23, host_name: bbs_host_name23, port_number: $fa80 }, { name: bbs_name24, host_name: bbs_host_name24, port_number: $605 }, { name: bbs_name25, host_name: bbs_host_name25, port_number: $fa80 }, { name: 0, host_name: 0, port_number: 0 } } -constant byte* bbs_name[$c] = "Boar's Head" -constant byte* bbs_name1[$a] = "RapidFire" -constant byte* bbs_name10[$f] = "Jamming Signal" -constant byte* bbs_name11[$f] = "Centronian BBS" -constant byte* bbs_name12[$11] = "Anrchy Undergrnd" -constant byte* bbs_name13[$e] = "The Oasis BBS" -constant byte* bbs_name14[$d] = "The Disk Box" -constant byte* bbs_name15[$b] = "Cottonwood" -constant byte* bbs_name16[$10] = "Wrong Number ][" -constant byte* bbs_name17[$a] = "RabidFire" -constant byte* bbs_name18[$a] = "Mad World" -constant byte* bbs_name19[$b] = "Citadel 64" -constant byte* bbs_name2[$12] = "Antidote by Triad" -constant byte* bbs_name20[$c] = "Hotwire BBS" -constant byte* bbs_name21[$e] = "Endless Chaos" -constant byte* bbs_name22[$b] = "Borderline" -constant byte* bbs_name23[$c] = "RAVELOUTION" -constant byte* bbs_name24[$d] = "The Edge BBS" -constant byte* bbs_name25[9] = "PGS Test" -constant byte* bbs_name3[$10] = "Wizards's Realm" -constant byte* bbs_name4[$b] = "The Hidden" -constant byte* bbs_name5[$e] = "Eaglewing BBS" -constant byte* bbs_name6[$e] = "Scorps Portal" -constant byte* bbs_name7[$d] = "My C=ult BBS" -constant byte* bbs_name8[$10] = "Commodore Image" -constant byte* bbs_name9[$10] = "64 Vintag Remic" +__constant char bbs_host_name[$f] = "byob.hopto.org" +__constant char bbs_host_name1[$14] = "rapidfire.hopto.org" +__constant char bbs_host_name10[$16] = "bbs.jammingsignal.com" +__constant char bbs_host_name11[$19] = "centronian.servebeer.com" +__constant char bbs_host_name12[$11] = "aubbs.dyndns.org" +__constant char bbs_host_name13[$13] = "oasisbbs.hopto.org" +__constant char bbs_host_name14[$13] = "bbs.thediskbox.com" +__constant char bbs_host_name15[$19] = "cottonwoodbbs.dyndns.org" +__constant char bbs_host_name16[$f] = "cib.dyndns.org" +__constant char bbs_host_name17[$14] = "rapidfire.hopto.org" +__constant char bbs_host_name18[$16] = "madworld.bounceme.net" +__constant char bbs_host_name19[$10] = "bbs.thejlab.com" +__constant char bbs_host_name2[$13] = "antidote.hopto.org" +__constant char bbs_host_name20[$15] = "hotwirebbs.zapto.org" +__constant char bbs_host_name21[$18] = "endlesschaos.dyndns.org" +__constant char bbs_host_name22[$19] = "borderlinebbs.dyndns.org" +__constant char bbs_host_name23[$16] = "raveolution.hopto.org" +__constant char bbs_host_name24[$16] = "theedgebbs.dyndns.org" +__constant char bbs_host_name25[$14] = "F96NG92-L.fritz.box" +__constant char bbs_host_name3[$18] = "wizardsrealm.c64bbs.org" +__constant char bbs_host_name4[$15] = "the-hidden.hopto.org" +__constant char bbs_host_name5[$13] = "eagelbird.ddns.net" +__constant char bbs_host_name6[$c] = "scorp.us.to" +__constant char bbs_host_name7[$14] = "maraud.dynalias.com" +__constant char bbs_host_name8[$f] = "cib.dyndns.org" +__constant char bbs_host_name9[$1d] = "64vintageremixbbs.dyndns.org" +__constant const struct bbs bbs_list[$1b] = { { name: bbs_name, host_name: bbs_host_name, port_number: $fa80 }, { name: bbs_name1, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name2, host_name: bbs_host_name2, port_number: $fa80 }, { name: bbs_name3, host_name: bbs_host_name3, port_number: $17 }, { name: bbs_name4, host_name: bbs_host_name4, port_number: $fa80 }, { name: bbs_name5, host_name: bbs_host_name5, port_number: $1900 }, { name: bbs_name6, host_name: bbs_host_name6, port_number: $17 }, { name: bbs_name7, host_name: bbs_host_name7, port_number: $1900 }, { name: bbs_name8, host_name: bbs_host_name8, port_number: $1900 }, { name: bbs_name9, host_name: bbs_host_name9, port_number: $1900 }, { name: bbs_name10, host_name: bbs_host_name10, port_number: $17 }, { name: bbs_name11, host_name: bbs_host_name11, port_number: $1900 }, { name: bbs_name12, host_name: bbs_host_name12, port_number: $8fc }, { name: bbs_name13, host_name: bbs_host_name13, port_number: $1900 }, { name: bbs_name14, host_name: bbs_host_name14, port_number: $1900 }, { name: bbs_name15, host_name: bbs_host_name15, port_number: $1966 }, { name: bbs_name16, host_name: bbs_host_name16, port_number: $1904 }, { name: bbs_name17, host_name: bbs_host_name17, port_number: $fa80 }, { name: bbs_name18, host_name: bbs_host_name18, port_number: $1900 }, { name: bbs_name19, host_name: bbs_host_name19, port_number: $1900 }, { name: bbs_name20, host_name: bbs_host_name20, port_number: $1966 }, { name: bbs_name21, host_name: bbs_host_name21, port_number: $1900 }, { name: bbs_name22, host_name: bbs_host_name22, port_number: $1900 }, { name: bbs_name23, host_name: bbs_host_name23, port_number: $fa80 }, { name: bbs_name24, host_name: bbs_host_name24, port_number: $605 }, { name: bbs_name25, host_name: bbs_host_name25, port_number: $fa80 }, { name: 0, host_name: 0, port_number: 0 } } +__constant char bbs_name[$c] = "Boar's Head" +__constant char bbs_name1[$a] = "RapidFire" +__constant char bbs_name10[$f] = "Jamming Signal" +__constant char bbs_name11[$f] = "Centronian BBS" +__constant char bbs_name12[$11] = "Anrchy Undergrnd" +__constant char bbs_name13[$e] = "The Oasis BBS" +__constant char bbs_name14[$d] = "The Disk Box" +__constant char bbs_name15[$b] = "Cottonwood" +__constant char bbs_name16[$10] = "Wrong Number ][" +__constant char bbs_name17[$a] = "RabidFire" +__constant char bbs_name18[$a] = "Mad World" +__constant char bbs_name19[$b] = "Citadel 64" +__constant char bbs_name2[$12] = "Antidote by Triad" +__constant char bbs_name20[$c] = "Hotwire BBS" +__constant char bbs_name21[$e] = "Endless Chaos" +__constant char bbs_name22[$b] = "Borderline" +__constant char bbs_name23[$c] = "RAVELOUTION" +__constant char bbs_name24[$d] = "The Edge BBS" +__constant char bbs_name25[9] = "PGS Test" +__constant char bbs_name3[$10] = "Wizards's Realm" +__constant char bbs_name4[$b] = "The Hidden" +__constant char bbs_name5[$e] = "Eaglewing BBS" +__constant char bbs_name6[$e] = "Scorps Portal" +__constant char bbs_name7[$d] = "My C=ult BBS" +__constant char bbs_name8[$10] = "Commodore Image" +__constant char bbs_name9[$10] = "64 Vintag Remic" void conio_c64_init() -bool~ conio_c64_init::$0 -bool~ conio_c64_init::$1 -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*)$d6 -byte conio_c64_init::line -byte conio_c64_init::line#0 -byte conio_c64_init::line#1 -byte conio_c64_init::line#2 -byte conio_cursor_x loadstore -byte conio_cursor_y loadstore -byte* conio_line_color loadstore -byte* conio_line_text loadstore -byte conio_scroll_enable loadstore -byte conio_textcolor loadstore -void cputc(byte cputc::c) -bool~ cputc::$0 -bool~ cputc::$1 -bool~ cputc::$2 -byte cputc::c -byte cputc::c#0 -byte cputc::c#1 -byte cputc::c#2 -byte cputc::c#3 -byte cputc::c#4 +bool conio_c64_init::$0 +bool conio_c64_init::$1 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 +char conio_c64_init::line +char conio_c64_init::line#0 +char conio_c64_init::line#1 +char conio_c64_init::line#2 +__loadstore char conio_cursor_x +__loadstore char conio_cursor_y +__loadstore char *conio_line_color +__loadstore char *conio_line_text +__loadstore char conio_scroll_enable +__loadstore char conio_textcolor +void cputc(char c) +bool cputc::$0 +bool cputc::$1 +bool cputc::$2 +char cputc::c +char cputc::c#0 +char cputc::c#1 +char cputc::c#2 +char cputc::c#3 +char cputc::c#4 void cputln() -void cputs(const byte* cputs::s) -byte~ cputs::$0 -bool~ cputs::$2 -byte cputs::c -byte cputs::c#0 -byte cputs::c#1 -byte cputs::c#2 -const byte* cputs::s -const byte* cputs::s#0 -const byte* cputs::s#1 -const byte* cputs::s#2 -const byte* cputs::s#3 -const byte* cputs::s#4 -const byte* cputs::s#5 -const byte* cputs::s#6 -const byte* cputs::s#7 -const byte* cputs::s#8 -const byte* cputs::s#9 +void cputs(const char *s) +char cputs::$0 +bool cputs::$2 +char cputs::c +char cputs::c#0 +char cputs::c#1 +char cputs::c#2 +const char *cputs::s +const char *cputs::s#0 +const char *cputs::s#1 +const char *cputs::s#2 +const char *cputs::s#3 +const char *cputs::s#4 +const char *cputs::s#5 +const char *cputs::s#6 +const char *cputs::s#7 +const char *cputs::s#8 +const char *cputs::s#9 void cscroll() -bool~ cscroll::$0 -bool~ cscroll::$1 -bool~ cscroll::$7 -void gotoxy(byte gotoxy::x , byte gotoxy::y) -bool~ gotoxy::$0 -bool~ gotoxy::$1 -bool~ gotoxy::$2 -bool~ gotoxy::$3 -byte*~ gotoxy::$5 -byte*~ gotoxy::$6 -word~ gotoxy::$7 -word gotoxy::line_offset -word gotoxy::line_offset#0 -byte gotoxy::x -byte gotoxy::x#0 -byte gotoxy::x#1 -byte gotoxy::x#2 -byte gotoxy::x#3 -byte gotoxy::x#4 -byte gotoxy::x#5 -byte gotoxy::x#6 -byte gotoxy::y -byte gotoxy::y#0 -byte gotoxy::y#1 -byte gotoxy::y#2 -byte gotoxy::y#3 -byte gotoxy::y#4 -byte gotoxy::y#5 -byte gotoxy::y#6 +bool cscroll::$0 +bool cscroll::$1 +bool cscroll::$7 +void gotoxy(char x , char y) +bool gotoxy::$0 +bool gotoxy::$1 +bool gotoxy::$2 +bool gotoxy::$3 +char *gotoxy::$5 +char *gotoxy::$6 +unsigned int gotoxy::$7 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 +char gotoxy::x +char gotoxy::x#0 +char gotoxy::x#1 +char gotoxy::x#2 +char gotoxy::x#3 +char gotoxy::x#4 +char gotoxy::x#5 +char gotoxy::x#6 +char gotoxy::y +char gotoxy::y#0 +char gotoxy::y#1 +char gotoxy::y#2 +char gotoxy::y#3 +char gotoxy::y#4 +char gotoxy::y#5 +char gotoxy::y#6 void main() -byte**~ main::$1 -byte**~ main::$2 -byte**~ main::$3 -word*~ main::$4 -byte**~ main::$5 -byte**~ main::$6 -byte**~ main::$7 -word*~ main::$8 -bool~ main::$9 -struct bbs* main::bbs -struct bbs* main::bbs#0 -struct bbs* main::bbs#1 -struct bbs* main::bbs#2 -struct bbs* main::bbs#3 -struct bbs* main::bbs#4 -struct bbs* main::bbs#5 -struct bbs* main::bbs#6 -struct bbs* main::bbs#7 -struct bbs* main::bbs#8 -struct bbs* main::bbs#9 -constant byte* main::s[2] = " " -constant byte* main::s1[2] = " " -constant byte* main::s2[2] = " +char **main::$1 +char **main::$2 +char **main::$3 +unsigned int *main::$4 +char **main::$5 +char **main::$6 +char **main::$7 +unsigned int *main::$8 +bool main::$9 +struct bbs *main::bbs +struct bbs *main::bbs#0 +struct bbs *main::bbs#1 +struct bbs *main::bbs#2 +struct bbs *main::bbs#3 +struct bbs *main::bbs#4 +struct bbs *main::bbs#5 +struct bbs *main::bbs#6 +struct bbs *main::bbs#7 +struct bbs *main::bbs#8 +struct bbs *main::bbs#9 +__constant char main::s[2] = " " +__constant char main::s1[2] = " " +__constant char main::s2[2] = " " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -bool~ memcpy::$1 -byte*~ memcpy::$2 -void* memcpy::destination -void* memcpy::destination#0 -void* memcpy::destination#1 -void* memcpy::destination#2 -void* memcpy::destination#3 -void* memcpy::destination#4 -void* memcpy::destination#5 -byte* memcpy::dst -byte* memcpy::dst#0 -byte* memcpy::dst#1 -byte* memcpy::dst#2 -byte* memcpy::dst#3 -word memcpy::num -word memcpy::num#0 -word memcpy::num#1 -word memcpy::num#2 -void* memcpy::return -void* memcpy::return#0 -void* memcpy::return#1 -void* memcpy::return#2 -void* memcpy::return#3 -void* memcpy::return#4 -void* memcpy::source -void* memcpy::source#0 -void* memcpy::source#1 -void* memcpy::source#2 -byte* memcpy::src -byte* memcpy::src#0 -byte* memcpy::src#1 -byte* memcpy::src#2 -byte* memcpy::src#3 -byte* memcpy::src_end -byte* memcpy::src_end#0 -byte* memcpy::src_end#1 -byte* memcpy::src_end#2 -void* memset(void* memset::str , byte memset::c , word memset::num) -bool~ memset::$0 -bool~ memset::$1 -bool~ memset::$3 -byte*~ memset::$4 -byte memset::c -byte memset::c#0 -byte memset::c#1 -byte memset::c#2 -byte memset::c#3 -byte memset::c#4 -byte memset::c#5 -byte* memset::dst -byte* memset::dst#0 -byte* memset::dst#1 -byte* memset::dst#2 -byte* memset::dst#3 -byte* memset::end -byte* memset::end#0 -byte* memset::end#1 -byte* memset::end#2 -word memset::num -word memset::num#0 -word memset::num#1 -word memset::num#2 -word memset::num#3 -void* memset::return -void* memset::return#0 -void* memset::return#1 -void* memset::return#2 -void* memset::return#3 -void* memset::return#4 -void* memset::str -void* memset::str#0 -void* memset::str#1 -void* memset::str#2 -void* memset::str#3 -void* memset::str#4 -void* memset::str#5 -void* memset::str#6 -struct printf_buffer_number printf_buffer loadstore = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) -bool~ printf_number_buffer::$0 -bool~ printf_number_buffer::$1 -bool~ printf_number_buffer::$10 -bool~ printf_number_buffer::$12 -bool~ printf_number_buffer::$14 -bool~ printf_number_buffer::$15 -bool~ printf_number_buffer::$16 -bool~ printf_number_buffer::$17 -word~ printf_number_buffer::$19 -bool~ printf_number_buffer::$2 -bool~ printf_number_buffer::$20 -signed byte~ printf_number_buffer::$21 -bool~ printf_number_buffer::$22 -bool~ printf_number_buffer::$23 -signed byte~ printf_number_buffer::$25 -bool~ printf_number_buffer::$26 -bool~ printf_number_buffer::$27 -bool~ printf_number_buffer::$28 -bool~ printf_number_buffer::$29 -bool~ printf_number_buffer::$3 -bool~ printf_number_buffer::$30 -bool~ printf_number_buffer::$31 -bool~ printf_number_buffer::$32 -bool~ printf_number_buffer::$4 -bool~ printf_number_buffer::$5 -bool~ printf_number_buffer::$7 -bool~ printf_number_buffer::$9 +void * memcpy(void *destination , void *source , unsigned int num) +bool memcpy::$1 +char *memcpy::$2 +void *memcpy::destination +void *memcpy::destination#0 +void *memcpy::destination#1 +void *memcpy::destination#2 +void *memcpy::destination#3 +void *memcpy::destination#4 +void *memcpy::destination#5 +char *memcpy::dst +char *memcpy::dst#0 +char *memcpy::dst#1 +char *memcpy::dst#2 +char *memcpy::dst#3 +unsigned int memcpy::num +unsigned int memcpy::num#0 +unsigned int memcpy::num#1 +unsigned int memcpy::num#2 +void *memcpy::return +void *memcpy::return#0 +void *memcpy::return#1 +void *memcpy::return#2 +void *memcpy::return#3 +void *memcpy::return#4 +void *memcpy::source +void *memcpy::source#0 +void *memcpy::source#1 +void *memcpy::source#2 +char *memcpy::src +char *memcpy::src#0 +char *memcpy::src#1 +char *memcpy::src#2 +char *memcpy::src#3 +char *memcpy::src_end +char *memcpy::src_end#0 +char *memcpy::src_end#1 +char *memcpy::src_end#2 +void * memset(void *str , char c , unsigned int num) +bool memset::$0 +bool memset::$1 +bool memset::$3 +char *memset::$4 +char memset::c +char memset::c#0 +char memset::c#1 +char memset::c#2 +char memset::c#3 +char memset::c#4 +char memset::c#5 +char *memset::dst +char *memset::dst#0 +char *memset::dst#1 +char *memset::dst#2 +char *memset::dst#3 +char *memset::end +char *memset::end#0 +char *memset::end#1 +char *memset::end#2 +unsigned int memset::num +unsigned int memset::num#0 +unsigned int memset::num#1 +unsigned int memset::num#2 +unsigned int memset::num#3 +void *memset::return +void *memset::return#0 +void *memset::return#1 +void *memset::return#2 +void *memset::return#3 +void *memset::return#4 +void *memset::str +void *memset::str#0 +void *memset::str#1 +void *memset::str#2 +void *memset::str#3 +void *memset::str#4 +void *memset::str#5 +void *memset::str#6 +__loadstore struct printf_buffer_number printf_buffer = {} +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +bool printf_number_buffer::$0 +bool printf_number_buffer::$1 +bool printf_number_buffer::$10 +bool printf_number_buffer::$12 +bool printf_number_buffer::$14 +bool printf_number_buffer::$15 +bool printf_number_buffer::$16 +bool printf_number_buffer::$17 +unsigned int printf_number_buffer::$19 +bool printf_number_buffer::$2 +bool printf_number_buffer::$20 +signed char printf_number_buffer::$21 +bool printf_number_buffer::$22 +bool printf_number_buffer::$23 +signed char printf_number_buffer::$25 +bool printf_number_buffer::$26 +bool printf_number_buffer::$27 +bool printf_number_buffer::$28 +bool printf_number_buffer::$29 +bool printf_number_buffer::$3 +bool printf_number_buffer::$30 +bool printf_number_buffer::$31 +bool printf_number_buffer::$32 +bool printf_number_buffer::$4 +bool printf_number_buffer::$5 +bool printf_number_buffer::$7 +bool printf_number_buffer::$9 struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -byte* printf_number_buffer::buffer_digits#0 -byte* printf_number_buffer::buffer_digits#1 -byte* printf_number_buffer::buffer_digits#10 -byte* printf_number_buffer::buffer_digits#11 -byte* printf_number_buffer::buffer_digits#12 -byte* printf_number_buffer::buffer_digits#13 -byte* printf_number_buffer::buffer_digits#14 -byte* printf_number_buffer::buffer_digits#15 -byte* printf_number_buffer::buffer_digits#16 -byte* printf_number_buffer::buffer_digits#17 -byte* printf_number_buffer::buffer_digits#18 -byte* printf_number_buffer::buffer_digits#19 -byte* printf_number_buffer::buffer_digits#2 -byte* printf_number_buffer::buffer_digits#3 -byte* printf_number_buffer::buffer_digits#4 -byte* printf_number_buffer::buffer_digits#5 -byte* printf_number_buffer::buffer_digits#6 -byte* printf_number_buffer::buffer_digits#7 -byte* printf_number_buffer::buffer_digits#8 -byte* printf_number_buffer::buffer_digits#9 -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 -byte printf_number_buffer::buffer_sign#1 -byte printf_number_buffer::buffer_sign#10 -byte printf_number_buffer::buffer_sign#11 -byte printf_number_buffer::buffer_sign#2 -byte printf_number_buffer::buffer_sign#3 -byte printf_number_buffer::buffer_sign#4 -byte printf_number_buffer::buffer_sign#5 -byte printf_number_buffer::buffer_sign#6 -byte printf_number_buffer::buffer_sign#7 -byte printf_number_buffer::buffer_sign#8 -byte printf_number_buffer::buffer_sign#9 +char *printf_number_buffer::buffer_digits +char *printf_number_buffer::buffer_digits#0 +char *printf_number_buffer::buffer_digits#1 +char *printf_number_buffer::buffer_digits#10 +char *printf_number_buffer::buffer_digits#11 +char *printf_number_buffer::buffer_digits#12 +char *printf_number_buffer::buffer_digits#13 +char *printf_number_buffer::buffer_digits#14 +char *printf_number_buffer::buffer_digits#15 +char *printf_number_buffer::buffer_digits#16 +char *printf_number_buffer::buffer_digits#17 +char *printf_number_buffer::buffer_digits#18 +char *printf_number_buffer::buffer_digits#19 +char *printf_number_buffer::buffer_digits#2 +char *printf_number_buffer::buffer_digits#3 +char *printf_number_buffer::buffer_digits#4 +char *printf_number_buffer::buffer_digits#5 +char *printf_number_buffer::buffer_digits#6 +char *printf_number_buffer::buffer_digits#7 +char *printf_number_buffer::buffer_digits#8 +char *printf_number_buffer::buffer_digits#9 +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 +char printf_number_buffer::buffer_sign#1 +char printf_number_buffer::buffer_sign#10 +char printf_number_buffer::buffer_sign#11 +char printf_number_buffer::buffer_sign#2 +char printf_number_buffer::buffer_sign#3 +char printf_number_buffer::buffer_sign#4 +char printf_number_buffer::buffer_sign#5 +char printf_number_buffer::buffer_sign#6 +char printf_number_buffer::buffer_sign#7 +char printf_number_buffer::buffer_sign#8 +char printf_number_buffer::buffer_sign#9 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_justify_left#0 -byte printf_number_buffer::format_justify_left#1 -byte printf_number_buffer::format_justify_left#10 -byte printf_number_buffer::format_justify_left#11 -byte printf_number_buffer::format_justify_left#12 -byte printf_number_buffer::format_justify_left#13 -byte printf_number_buffer::format_justify_left#14 -byte printf_number_buffer::format_justify_left#15 -byte printf_number_buffer::format_justify_left#16 -byte printf_number_buffer::format_justify_left#17 -byte printf_number_buffer::format_justify_left#18 -byte printf_number_buffer::format_justify_left#19 -byte printf_number_buffer::format_justify_left#2 -byte printf_number_buffer::format_justify_left#20 -byte printf_number_buffer::format_justify_left#3 -byte printf_number_buffer::format_justify_left#4 -byte printf_number_buffer::format_justify_left#5 -byte printf_number_buffer::format_justify_left#6 -byte printf_number_buffer::format_justify_left#7 -byte printf_number_buffer::format_justify_left#8 -byte printf_number_buffer::format_justify_left#9 -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_min_length#0 -byte printf_number_buffer::format_min_length#1 -byte printf_number_buffer::format_min_length#2 -byte printf_number_buffer::format_min_length#3 -byte printf_number_buffer::format_min_length#4 -byte printf_number_buffer::format_min_length#5 -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_radix#0 -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_sign_always#0 -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_upper_case#0 -byte printf_number_buffer::format_upper_case#1 -byte printf_number_buffer::format_upper_case#10 -byte printf_number_buffer::format_upper_case#11 -byte printf_number_buffer::format_upper_case#12 -byte printf_number_buffer::format_upper_case#13 -byte printf_number_buffer::format_upper_case#14 -byte printf_number_buffer::format_upper_case#15 -byte printf_number_buffer::format_upper_case#16 -byte printf_number_buffer::format_upper_case#2 -byte printf_number_buffer::format_upper_case#3 -byte printf_number_buffer::format_upper_case#4 -byte printf_number_buffer::format_upper_case#5 -byte printf_number_buffer::format_upper_case#6 -byte printf_number_buffer::format_upper_case#7 -byte printf_number_buffer::format_upper_case#8 -byte printf_number_buffer::format_upper_case#9 -byte printf_number_buffer::format_zero_padding -byte printf_number_buffer::format_zero_padding#0 -byte printf_number_buffer::format_zero_padding#1 -byte printf_number_buffer::format_zero_padding#10 -byte printf_number_buffer::format_zero_padding#11 -byte printf_number_buffer::format_zero_padding#12 -byte printf_number_buffer::format_zero_padding#13 -byte printf_number_buffer::format_zero_padding#14 -byte printf_number_buffer::format_zero_padding#15 -byte printf_number_buffer::format_zero_padding#16 -byte printf_number_buffer::format_zero_padding#17 -byte printf_number_buffer::format_zero_padding#18 -byte printf_number_buffer::format_zero_padding#19 -byte printf_number_buffer::format_zero_padding#2 -byte printf_number_buffer::format_zero_padding#20 -byte printf_number_buffer::format_zero_padding#3 -byte printf_number_buffer::format_zero_padding#4 -byte printf_number_buffer::format_zero_padding#5 -byte printf_number_buffer::format_zero_padding#6 -byte printf_number_buffer::format_zero_padding#7 -byte printf_number_buffer::format_zero_padding#8 -byte printf_number_buffer::format_zero_padding#9 -signed byte printf_number_buffer::len -signed byte printf_number_buffer::len#0 -signed byte printf_number_buffer::len#1 -signed byte printf_number_buffer::len#2 -signed byte printf_number_buffer::len#3 -signed byte printf_number_buffer::padding -signed byte printf_number_buffer::padding#0 -signed byte printf_number_buffer::padding#1 -signed byte printf_number_buffer::padding#10 -signed byte printf_number_buffer::padding#11 -signed byte printf_number_buffer::padding#12 -signed byte printf_number_buffer::padding#13 -signed byte printf_number_buffer::padding#14 -signed byte printf_number_buffer::padding#15 -signed byte printf_number_buffer::padding#16 -signed byte printf_number_buffer::padding#17 -signed byte printf_number_buffer::padding#2 -signed byte printf_number_buffer::padding#3 -signed byte printf_number_buffer::padding#4 -signed byte printf_number_buffer::padding#5 -signed byte printf_number_buffer::padding#6 -signed byte printf_number_buffer::padding#7 -signed byte printf_number_buffer::padding#8 -signed byte printf_number_buffer::padding#9 -void printf_padding(byte printf_padding::pad , byte printf_padding::length) -bool~ printf_padding::$0 -byte printf_padding::i -byte printf_padding::i#0 -byte printf_padding::i#1 -byte printf_padding::i#2 -byte printf_padding::i#3 -byte printf_padding::i#4 -byte printf_padding::length -byte printf_padding::length#0 -byte printf_padding::length#1 -byte printf_padding::length#2 -byte printf_padding::length#3 -byte printf_padding::length#4 -byte printf_padding::length#5 -byte printf_padding::length#6 -byte printf_padding::length#7 -byte printf_padding::length#8 -byte printf_padding::pad -byte printf_padding::pad#0 -byte printf_padding::pad#1 -byte printf_padding::pad#2 -byte printf_padding::pad#3 -byte printf_padding::pad#4 -byte printf_padding::pad#5 -byte printf_padding::pad#6 -byte printf_padding::pad#7 -byte printf_padding::pad#8 -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) -bool~ printf_string::$0 -bool~ printf_string::$1 -signed byte~ printf_string::$10 -bool~ printf_string::$11 -bool~ printf_string::$12 -signed byte~ printf_string::$13 -bool~ printf_string::$14 -bool~ printf_string::$15 -bool~ printf_string::$2 -bool~ printf_string::$3 -bool~ printf_string::$6 -bool~ printf_string::$7 -word~ printf_string::$9 +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_justify_left#0 +char printf_number_buffer::format_justify_left#1 +char printf_number_buffer::format_justify_left#10 +char printf_number_buffer::format_justify_left#11 +char printf_number_buffer::format_justify_left#12 +char printf_number_buffer::format_justify_left#13 +char printf_number_buffer::format_justify_left#14 +char printf_number_buffer::format_justify_left#15 +char printf_number_buffer::format_justify_left#16 +char printf_number_buffer::format_justify_left#17 +char printf_number_buffer::format_justify_left#18 +char printf_number_buffer::format_justify_left#19 +char printf_number_buffer::format_justify_left#2 +char printf_number_buffer::format_justify_left#20 +char printf_number_buffer::format_justify_left#3 +char printf_number_buffer::format_justify_left#4 +char printf_number_buffer::format_justify_left#5 +char printf_number_buffer::format_justify_left#6 +char printf_number_buffer::format_justify_left#7 +char printf_number_buffer::format_justify_left#8 +char printf_number_buffer::format_justify_left#9 +char printf_number_buffer::format_min_length +char printf_number_buffer::format_min_length#0 +char printf_number_buffer::format_min_length#1 +char printf_number_buffer::format_min_length#2 +char printf_number_buffer::format_min_length#3 +char printf_number_buffer::format_min_length#4 +char printf_number_buffer::format_min_length#5 +char printf_number_buffer::format_radix +char printf_number_buffer::format_radix#0 +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_sign_always#0 +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_upper_case#0 +char printf_number_buffer::format_upper_case#1 +char printf_number_buffer::format_upper_case#10 +char printf_number_buffer::format_upper_case#11 +char printf_number_buffer::format_upper_case#12 +char printf_number_buffer::format_upper_case#13 +char printf_number_buffer::format_upper_case#14 +char printf_number_buffer::format_upper_case#15 +char printf_number_buffer::format_upper_case#16 +char printf_number_buffer::format_upper_case#2 +char printf_number_buffer::format_upper_case#3 +char printf_number_buffer::format_upper_case#4 +char printf_number_buffer::format_upper_case#5 +char printf_number_buffer::format_upper_case#6 +char printf_number_buffer::format_upper_case#7 +char printf_number_buffer::format_upper_case#8 +char printf_number_buffer::format_upper_case#9 +char printf_number_buffer::format_zero_padding +char printf_number_buffer::format_zero_padding#0 +char printf_number_buffer::format_zero_padding#1 +char printf_number_buffer::format_zero_padding#10 +char printf_number_buffer::format_zero_padding#11 +char printf_number_buffer::format_zero_padding#12 +char printf_number_buffer::format_zero_padding#13 +char printf_number_buffer::format_zero_padding#14 +char printf_number_buffer::format_zero_padding#15 +char printf_number_buffer::format_zero_padding#16 +char printf_number_buffer::format_zero_padding#17 +char printf_number_buffer::format_zero_padding#18 +char printf_number_buffer::format_zero_padding#19 +char printf_number_buffer::format_zero_padding#2 +char printf_number_buffer::format_zero_padding#20 +char printf_number_buffer::format_zero_padding#3 +char printf_number_buffer::format_zero_padding#4 +char printf_number_buffer::format_zero_padding#5 +char printf_number_buffer::format_zero_padding#6 +char printf_number_buffer::format_zero_padding#7 +char printf_number_buffer::format_zero_padding#8 +char printf_number_buffer::format_zero_padding#9 +signed char printf_number_buffer::len +signed char printf_number_buffer::len#0 +signed char printf_number_buffer::len#1 +signed char printf_number_buffer::len#2 +signed char printf_number_buffer::len#3 +signed char printf_number_buffer::padding +signed char printf_number_buffer::padding#0 +signed char printf_number_buffer::padding#1 +signed char printf_number_buffer::padding#10 +signed char printf_number_buffer::padding#11 +signed char printf_number_buffer::padding#12 +signed char printf_number_buffer::padding#13 +signed char printf_number_buffer::padding#14 +signed char printf_number_buffer::padding#15 +signed char printf_number_buffer::padding#16 +signed char printf_number_buffer::padding#17 +signed char printf_number_buffer::padding#2 +signed char printf_number_buffer::padding#3 +signed char printf_number_buffer::padding#4 +signed char printf_number_buffer::padding#5 +signed char printf_number_buffer::padding#6 +signed char printf_number_buffer::padding#7 +signed char printf_number_buffer::padding#8 +signed char printf_number_buffer::padding#9 +void printf_padding(char pad , char length) +bool printf_padding::$0 +char printf_padding::i +char printf_padding::i#0 +char printf_padding::i#1 +char printf_padding::i#2 +char printf_padding::i#3 +char printf_padding::i#4 +char printf_padding::length +char printf_padding::length#0 +char printf_padding::length#1 +char printf_padding::length#2 +char printf_padding::length#3 +char printf_padding::length#4 +char printf_padding::length#5 +char printf_padding::length#6 +char printf_padding::length#7 +char printf_padding::length#8 +char printf_padding::pad +char printf_padding::pad#0 +char printf_padding::pad#1 +char printf_padding::pad#2 +char printf_padding::pad#3 +char printf_padding::pad#4 +char printf_padding::pad#5 +char printf_padding::pad#6 +char printf_padding::pad#7 +char printf_padding::pad#8 +void printf_string(char *str , char format_min_length , char format_justify_left) +bool printf_string::$0 +bool printf_string::$1 +signed char printf_string::$10 +bool printf_string::$11 +bool printf_string::$12 +signed char printf_string::$13 +bool printf_string::$14 +bool printf_string::$15 +bool printf_string::$2 +bool printf_string::$3 +bool printf_string::$6 +bool printf_string::$7 +unsigned int printf_string::$9 struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_justify_left#0 -byte printf_string::format_justify_left#1 -byte printf_string::format_justify_left#10 -byte printf_string::format_justify_left#2 -byte printf_string::format_justify_left#3 -byte printf_string::format_justify_left#4 -byte printf_string::format_justify_left#5 -byte printf_string::format_justify_left#6 -byte printf_string::format_justify_left#7 -byte printf_string::format_justify_left#8 -byte printf_string::format_justify_left#9 -byte printf_string::format_min_length -byte printf_string::format_min_length#0 -byte printf_string::format_min_length#1 -byte printf_string::format_min_length#2 -byte printf_string::format_min_length#3 -byte printf_string::format_min_length#4 -signed byte printf_string::len -signed byte printf_string::len#0 -signed byte printf_string::padding -signed byte printf_string::padding#0 -signed byte printf_string::padding#1 -signed byte printf_string::padding#2 -signed byte printf_string::padding#3 -signed byte printf_string::padding#4 -signed byte printf_string::padding#5 -signed byte printf_string::padding#6 -signed byte printf_string::padding#7 -signed byte printf_string::padding#8 -byte* printf_string::str -byte* printf_string::str#0 -byte* printf_string::str#1 -byte* printf_string::str#2 -byte* printf_string::str#3 -byte* printf_string::str#4 -byte* printf_string::str#5 -byte* printf_string::str#6 -byte* printf_string::str#7 -byte* printf_string::str#8 -byte* printf_string::str#9 -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) -number~ printf_uint::$0 -byte~ printf_uint::$1 -number~ printf_uint::$2 -bool~ printf_uint::$5 +char printf_string::format_justify_left +char printf_string::format_justify_left#0 +char printf_string::format_justify_left#1 +char printf_string::format_justify_left#10 +char printf_string::format_justify_left#2 +char printf_string::format_justify_left#3 +char printf_string::format_justify_left#4 +char printf_string::format_justify_left#5 +char printf_string::format_justify_left#6 +char printf_string::format_justify_left#7 +char printf_string::format_justify_left#8 +char printf_string::format_justify_left#9 +char printf_string::format_min_length +char printf_string::format_min_length#0 +char printf_string::format_min_length#1 +char printf_string::format_min_length#2 +char printf_string::format_min_length#3 +char printf_string::format_min_length#4 +signed char printf_string::len +signed char printf_string::len#0 +signed char printf_string::padding +signed char printf_string::padding#0 +signed char printf_string::padding#1 +signed char printf_string::padding#2 +signed char printf_string::padding#3 +signed char printf_string::padding#4 +signed char printf_string::padding#5 +signed char printf_string::padding#6 +signed char printf_string::padding#7 +signed char printf_string::padding#8 +char *printf_string::str +char *printf_string::str#0 +char *printf_string::str#1 +char *printf_string::str#2 +char *printf_string::str#3 +char *printf_string::str#4 +char *printf_string::str#5 +char *printf_string::str#6 +char *printf_string::str#7 +char *printf_string::str#8 +char *printf_string::str#9 +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) +number printf_uint::$0 +char printf_uint::$1 +number printf_uint::$2 +bool printf_uint::$5 struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_justify_left#0 -byte printf_uint::format_justify_left#1 -byte printf_uint::format_justify_left#2 -byte printf_uint::format_justify_left#3 -byte printf_uint::format_justify_left#4 -byte printf_uint::format_justify_left#5 -byte printf_uint::format_min_length -byte printf_uint::format_min_length#0 -byte printf_uint::format_min_length#1 -byte printf_uint::format_min_length#2 -byte printf_uint::format_min_length#3 -byte printf_uint::format_min_length#4 -byte printf_uint::format_min_length#5 -byte printf_uint::format_radix -byte printf_uint::format_radix#0 -byte printf_uint::format_radix#1 -byte printf_uint::format_radix#2 -byte printf_uint::format_radix#3 -byte printf_uint::format_radix#4 -byte printf_uint::format_radix#5 -byte printf_uint::format_sign_always -byte printf_uint::format_sign_always#0 -byte printf_uint::format_sign_always#1 -byte printf_uint::format_sign_always#2 -byte printf_uint::format_sign_always#3 -byte printf_uint::format_sign_always#4 -byte printf_uint::format_sign_always#5 -byte printf_uint::format_upper_case -byte printf_uint::format_upper_case#0 -byte printf_uint::format_upper_case#1 -byte printf_uint::format_upper_case#2 -byte printf_uint::format_upper_case#3 -byte printf_uint::format_upper_case#4 -byte printf_uint::format_upper_case#5 -byte printf_uint::format_zero_padding -byte printf_uint::format_zero_padding#0 -byte printf_uint::format_zero_padding#1 -byte printf_uint::format_zero_padding#2 -byte printf_uint::format_zero_padding#3 -byte printf_uint::format_zero_padding#4 -byte printf_uint::format_zero_padding#5 -word printf_uint::uvalue -word printf_uint::uvalue#0 -word printf_uint::uvalue#1 -word printf_uint::uvalue#2 -word printf_uint::uvalue#3 -word printf_uint::uvalue#4 -word strlen(byte* strlen::str) -bool~ strlen::$0 -word strlen::len -word strlen::len#0 -word strlen::len#1 -word strlen::len#2 -word strlen::len#3 -word strlen::len#4 -word strlen::return -word strlen::return#0 -word strlen::return#1 -word strlen::return#2 -word strlen::return#3 -word strlen::return#4 -word strlen::return#5 -word strlen::return#6 -byte* strlen::str -byte* strlen::str#0 -byte* strlen::str#1 -byte* strlen::str#2 -byte* strlen::str#3 -byte* strlen::str#4 -byte* strlen::str#5 -byte* strupr(byte* strupr::str) -byte~ strupr::$0 -bool~ strupr::$1 -byte* strupr::return -byte* strupr::return#0 -byte* strupr::return#1 -byte* strupr::return#2 -byte* strupr::return#3 -byte* strupr::src -byte* strupr::src#0 -byte* strupr::src#1 -byte* strupr::src#2 -byte* strupr::src#3 -byte* strupr::src#4 -byte* strupr::str -byte* strupr::str#0 -byte* strupr::str#1 -byte* strupr::str#2 -byte* strupr::str#3 -byte* strupr::str#4 -byte* strupr::str#5 -byte toupper(byte toupper::ch) -bool~ toupper::$0 -bool~ toupper::$1 -bool~ toupper::$2 -byte~ toupper::$3 -byte toupper::ch -byte toupper::ch#0 -byte toupper::ch#1 -byte toupper::ch#2 -byte toupper::ch#3 -byte toupper::return -byte toupper::return#0 -byte toupper::return#1 -byte toupper::return#2 -byte toupper::return#3 -byte toupper::return#4 -byte toupper::return#5 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -bool~ utoa::$0 -bool~ utoa::$1 -byte~ utoa::$10 -byte~ utoa::$11 -bool~ utoa::$2 -bool~ utoa::$3 -number~ utoa::$4 -bool~ utoa::$5 -bool~ utoa::$6 -bool~ utoa::$7 -bool~ utoa::$8 -word~ utoa::$9 -byte* utoa::buffer -byte* utoa::buffer#0 -byte* utoa::buffer#1 -byte* utoa::buffer#10 -byte* utoa::buffer#11 -byte* utoa::buffer#12 -byte* utoa::buffer#13 -byte* utoa::buffer#14 -byte* utoa::buffer#15 -byte* utoa::buffer#16 -byte* utoa::buffer#17 -byte* utoa::buffer#18 -byte* utoa::buffer#19 -byte* utoa::buffer#2 -byte* utoa::buffer#20 -byte* utoa::buffer#21 -byte* utoa::buffer#3 -byte* utoa::buffer#4 -byte* utoa::buffer#5 -byte* utoa::buffer#6 -byte* utoa::buffer#7 -byte* utoa::buffer#8 -byte* utoa::buffer#9 -byte utoa::digit -byte utoa::digit#0 -byte utoa::digit#1 -byte utoa::digit#2 -byte utoa::digit#3 -byte utoa::digit#4 -byte utoa::digit#5 -byte utoa::digit#6 -word utoa::digit_value -word utoa::digit_value#0 -word utoa::digit_value#1 -word* utoa::digit_values -word* utoa::digit_values#0 -word* utoa::digit_values#1 -word* utoa::digit_values#10 -word* utoa::digit_values#2 -word* utoa::digit_values#3 -word* utoa::digit_values#4 -word* utoa::digit_values#5 -word* utoa::digit_values#6 -word* utoa::digit_values#7 -word* utoa::digit_values#8 -word* utoa::digit_values#9 -byte utoa::max_digits -byte utoa::max_digits#0 -byte utoa::max_digits#1 -byte utoa::max_digits#10 -byte utoa::max_digits#2 -byte utoa::max_digits#3 -byte utoa::max_digits#4 -byte utoa::max_digits#5 -byte utoa::max_digits#6 -byte utoa::max_digits#7 -byte utoa::max_digits#8 -byte utoa::max_digits#9 -byte utoa::radix -byte utoa::radix#0 -byte utoa::radix#1 -byte utoa::radix#2 -byte utoa::radix#3 -byte utoa::radix#4 -byte utoa::started -byte utoa::started#0 -byte utoa::started#1 -byte utoa::started#2 -byte utoa::started#3 -byte utoa::started#4 -word utoa::value -word utoa::value#0 -word utoa::value#1 -word utoa::value#10 -word utoa::value#11 -word utoa::value#12 -word utoa::value#13 -word utoa::value#14 -word utoa::value#15 -word utoa::value#2 -word utoa::value#3 -word utoa::value#4 -word utoa::value#5 -word utoa::value#6 -word utoa::value#7 -word utoa::value#8 -word utoa::value#9 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -bool~ utoa_append::$0 -byte* utoa_append::buffer -byte* utoa_append::buffer#0 -byte* utoa_append::buffer#1 -byte* utoa_append::buffer#2 -byte* utoa_append::buffer#3 -byte* utoa_append::buffer#4 -byte utoa_append::digit -byte utoa_append::digit#0 -byte utoa_append::digit#1 -byte utoa_append::digit#2 -byte utoa_append::digit#3 -byte utoa_append::digit#4 -word utoa_append::return -word utoa_append::return#0 -word utoa_append::return#1 -word utoa_append::return#2 -word utoa_append::return#3 -word utoa_append::return#4 -word utoa_append::sub -word utoa_append::sub#0 -word utoa_append::sub#1 -word utoa_append::sub#2 -word utoa_append::sub#3 -word utoa_append::value -word utoa_append::value#0 -word utoa_append::value#1 -word utoa_append::value#2 -word utoa_append::value#3 -word utoa_append::value#4 -word utoa_append::value#5 +char printf_uint::format_justify_left +char printf_uint::format_justify_left#0 +char printf_uint::format_justify_left#1 +char printf_uint::format_justify_left#2 +char printf_uint::format_justify_left#3 +char printf_uint::format_justify_left#4 +char printf_uint::format_justify_left#5 +char printf_uint::format_min_length +char printf_uint::format_min_length#0 +char printf_uint::format_min_length#1 +char printf_uint::format_min_length#2 +char printf_uint::format_min_length#3 +char printf_uint::format_min_length#4 +char printf_uint::format_min_length#5 +char printf_uint::format_radix +char printf_uint::format_radix#0 +char printf_uint::format_radix#1 +char printf_uint::format_radix#2 +char printf_uint::format_radix#3 +char printf_uint::format_radix#4 +char printf_uint::format_radix#5 +char printf_uint::format_sign_always +char printf_uint::format_sign_always#0 +char printf_uint::format_sign_always#1 +char printf_uint::format_sign_always#2 +char printf_uint::format_sign_always#3 +char printf_uint::format_sign_always#4 +char printf_uint::format_sign_always#5 +char printf_uint::format_upper_case +char printf_uint::format_upper_case#0 +char printf_uint::format_upper_case#1 +char printf_uint::format_upper_case#2 +char printf_uint::format_upper_case#3 +char printf_uint::format_upper_case#4 +char printf_uint::format_upper_case#5 +char printf_uint::format_zero_padding +char printf_uint::format_zero_padding#0 +char printf_uint::format_zero_padding#1 +char printf_uint::format_zero_padding#2 +char printf_uint::format_zero_padding#3 +char printf_uint::format_zero_padding#4 +char printf_uint::format_zero_padding#5 +unsigned int printf_uint::uvalue +unsigned int printf_uint::uvalue#0 +unsigned int printf_uint::uvalue#1 +unsigned int printf_uint::uvalue#2 +unsigned int printf_uint::uvalue#3 +unsigned int printf_uint::uvalue#4 +unsigned int strlen(char *str) +bool strlen::$0 +unsigned int strlen::len +unsigned int strlen::len#0 +unsigned int strlen::len#1 +unsigned int strlen::len#2 +unsigned int strlen::len#3 +unsigned int strlen::len#4 +unsigned int strlen::return +unsigned int strlen::return#0 +unsigned int strlen::return#1 +unsigned int strlen::return#2 +unsigned int strlen::return#3 +unsigned int strlen::return#4 +unsigned int strlen::return#5 +unsigned int strlen::return#6 +char *strlen::str +char *strlen::str#0 +char *strlen::str#1 +char *strlen::str#2 +char *strlen::str#3 +char *strlen::str#4 +char *strlen::str#5 +char * strupr(char *str) +char strupr::$0 +bool strupr::$1 +char *strupr::return +char *strupr::return#0 +char *strupr::return#1 +char *strupr::return#2 +char *strupr::return#3 +char *strupr::src +char *strupr::src#0 +char *strupr::src#1 +char *strupr::src#2 +char *strupr::src#3 +char *strupr::src#4 +char *strupr::str +char *strupr::str#0 +char *strupr::str#1 +char *strupr::str#2 +char *strupr::str#3 +char *strupr::str#4 +char *strupr::str#5 +char toupper(char ch) +bool toupper::$0 +bool toupper::$1 +bool toupper::$2 +char toupper::$3 +char toupper::ch +char toupper::ch#0 +char toupper::ch#1 +char toupper::ch#2 +char toupper::ch#3 +char toupper::return +char toupper::return#0 +char toupper::return#1 +char toupper::return#2 +char toupper::return#3 +char toupper::return#4 +char toupper::return#5 +void utoa(unsigned int value , char *buffer , char radix) +bool utoa::$0 +bool utoa::$1 +char utoa::$10 +char utoa::$11 +bool utoa::$2 +bool utoa::$3 +number utoa::$4 +bool utoa::$5 +bool utoa::$6 +bool utoa::$7 +bool utoa::$8 +unsigned int utoa::$9 +char *utoa::buffer +char *utoa::buffer#0 +char *utoa::buffer#1 +char *utoa::buffer#10 +char *utoa::buffer#11 +char *utoa::buffer#12 +char *utoa::buffer#13 +char *utoa::buffer#14 +char *utoa::buffer#15 +char *utoa::buffer#16 +char *utoa::buffer#17 +char *utoa::buffer#18 +char *utoa::buffer#19 +char *utoa::buffer#2 +char *utoa::buffer#20 +char *utoa::buffer#21 +char *utoa::buffer#3 +char *utoa::buffer#4 +char *utoa::buffer#5 +char *utoa::buffer#6 +char *utoa::buffer#7 +char *utoa::buffer#8 +char *utoa::buffer#9 +char utoa::digit +char utoa::digit#0 +char utoa::digit#1 +char utoa::digit#2 +char utoa::digit#3 +char utoa::digit#4 +char utoa::digit#5 +char utoa::digit#6 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 +unsigned int utoa::digit_value#1 +unsigned int *utoa::digit_values +unsigned int *utoa::digit_values#0 +unsigned int *utoa::digit_values#1 +unsigned int *utoa::digit_values#10 +unsigned int *utoa::digit_values#2 +unsigned int *utoa::digit_values#3 +unsigned int *utoa::digit_values#4 +unsigned int *utoa::digit_values#5 +unsigned int *utoa::digit_values#6 +unsigned int *utoa::digit_values#7 +unsigned int *utoa::digit_values#8 +unsigned int *utoa::digit_values#9 +char utoa::max_digits +char utoa::max_digits#0 +char utoa::max_digits#1 +char utoa::max_digits#10 +char utoa::max_digits#2 +char utoa::max_digits#3 +char utoa::max_digits#4 +char utoa::max_digits#5 +char utoa::max_digits#6 +char utoa::max_digits#7 +char utoa::max_digits#8 +char utoa::max_digits#9 +char utoa::radix +char utoa::radix#0 +char utoa::radix#1 +char utoa::radix#2 +char utoa::radix#3 +char utoa::radix#4 +char utoa::started +char utoa::started#0 +char utoa::started#1 +char utoa::started#2 +char utoa::started#3 +char utoa::started#4 +unsigned int utoa::value +unsigned int utoa::value#0 +unsigned int utoa::value#1 +unsigned int utoa::value#10 +unsigned int utoa::value#11 +unsigned int utoa::value#12 +unsigned int utoa::value#13 +unsigned int utoa::value#14 +unsigned int utoa::value#15 +unsigned int utoa::value#2 +unsigned int utoa::value#3 +unsigned int utoa::value#4 +unsigned int utoa::value#5 +unsigned int utoa::value#6 +unsigned int utoa::value#7 +unsigned int utoa::value#8 +unsigned int utoa::value#9 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +bool utoa_append::$0 +char *utoa_append::buffer +char *utoa_append::buffer#0 +char *utoa_append::buffer#1 +char *utoa_append::buffer#2 +char *utoa_append::buffer#3 +char *utoa_append::buffer#4 +char utoa_append::digit +char utoa_append::digit#0 +char utoa_append::digit#1 +char utoa_append::digit#2 +char utoa_append::digit#3 +char utoa_append::digit#4 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 +unsigned int utoa_append::return#1 +unsigned int utoa_append::return#2 +unsigned int utoa_append::return#3 +unsigned int utoa_append::return#4 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 +unsigned int utoa_append::sub#1 +unsigned int utoa_append::sub#2 +unsigned int utoa_append::sub#3 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 +unsigned int utoa_append::value#1 +unsigned int utoa_append::value#2 +unsigned int utoa_append::value#3 +unsigned int utoa_append::value#4 +unsigned int utoa_append::value#5 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) 0 in strlen::$0 = 0 != *strlen::str#3 @@ -1814,15 +1814,15 @@ Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable -Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 -Adding number conversion cast (unumber) $28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void*)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)CONIO_SCREEN_TEXT+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 -Adding number conversion cast (unumber) $28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-$28 -Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void*)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 +Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-$28 +Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)CONIO_SCREEN_COLORS+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 @@ -1861,13 +1861,13 @@ Adding number conversion cast (unumber) 0 in printf_string::$14 = 0 != printf_st Adding number conversion cast (unumber) 0 in printf_string::$15 = 0 != printf_string::format_justify_left#2 Adding number conversion cast (snumber) 0 in printf_string::$11 = printf_string::padding#1 < 0 Adding number conversion cast (snumber) 0 in printf_string::padding#2 = 0 -Adding number conversion cast (unumber) $17 in *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 +Adding number conversion cast (unumber) $17 in *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 Successful SSA optimization PassNAddNumberTypeConversions Adding number conversion cast (unumber) 0 in printf_uint::$0 = 0 Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast memcpy::src#0 = (byte*)memcpy::source#2 -Inlining cast memcpy::dst#0 = (byte*)memcpy::destination#2 -Inlining cast memset::dst#0 = (byte*)memset::str#3 +Inlining cast memcpy::src#0 = (char *)memcpy::source#2 +Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 +Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast utoa::max_digits#1 = (unumber)5 Inlining cast utoa::max_digits#2 = (unumber)4 Inlining cast utoa::max_digits#3 = (unumber)6 @@ -1889,12 +1889,12 @@ Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Inlining cast printf_uint::$0 = (unumber)0 Inlining cast printf_number_buffer::padding#2 = (snumber)0 Inlining cast printf_string::padding#2 = (snumber)0 -Inlining cast *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = (unumber)$17 +Inlining cast *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = (unumber)$17 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (struct MOS6569_VICII*) 53248 -Simplifying constant pointer cast (byte*) 55296 -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 214 +Simplifying constant pointer cast (struct MOS6569_VICII *) 53248 +Simplifying constant pointer cast (char *) 55296 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -1947,61 +1947,61 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $17 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $10 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $19 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) $17 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $10 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $19 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) $17 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in utoa::$4 = utoa::max_digits#5 - 1 -Inferred type updated to byte in printf_uint::$0 = 0 -Inferred type updated to byte for printf_uint::$2 +Inferred type updated to char in utoa::$4 = utoa::max_digits#5 - 1 +Inferred type updated to char in printf_uint::$0 = 0 +Inferred type updated to char for printf_uint::$2 Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [163] gotoxy::$1 = gotoxy::y#3 <= $19 from [162] gotoxy::$0 = gotoxy::y#3 > $19 Inversing boolean not [167] gotoxy::$3 = gotoxy::x#3 < $28 from [166] gotoxy::$2 = gotoxy::x#3 >= $28 @@ -2237,7 +2237,7 @@ Simple Condition printf_number_buffer::$7 [256] if(0==printf_number_buffer::buff Simple Condition printf_number_buffer::$12 [266] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5 Simple Condition printf_string::$0 [287] if(0==printf_string::format_min_length#2) goto printf_string::@1 Simple Condition printf_string::$12 [301] if(printf_string::padding#1>=0) goto printf_string::@1 -Simple Condition main::$9 [321] if((byte*)0!=*main::$1) goto main::@2 +Simple Condition main::$9 [321] if((char *)0!=*main::$1) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting && if()-condition to two if()s [36] toupper::$2 = toupper::$0 && toupper::$1 Rewriting ! if()-condition to reversed if() [90] utoa::$8 = ! utoa::$7 @@ -2270,7 +2270,7 @@ Constant right-side identified [198] conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant strlen::len#0 = 0 Constant utoa::max_digits#0 = 0 -Constant utoa::digit_values#0 = (word*) 0 +Constant utoa::digit_values#0 = (unsigned int *) 0 Constant utoa::max_digits#1 = 5 Constant utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant utoa::max_digits#2 = 4 @@ -2286,16 +2286,16 @@ Constant utoa_append::digit#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 -Constant memcpy::destination#0 = (void*)CONIO_SCREEN_TEXT -Constant memcpy::source#0 = (void*)CONIO_SCREEN_TEXT+$28 +Constant memcpy::destination#0 = (void *)CONIO_SCREEN_TEXT +Constant memcpy::source#0 = (void *)CONIO_SCREEN_TEXT+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 -Constant memcpy::destination#1 = (void*)CONIO_SCREEN_COLORS -Constant memcpy::source#1 = (void*)CONIO_SCREEN_COLORS+$28 +Constant memcpy::destination#1 = (void *)CONIO_SCREEN_COLORS +Constant memcpy::source#1 = (void *)CONIO_SCREEN_COLORS+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 -Constant memset::str#0 = (void*)CONIO_SCREEN_TEXT+(word)$19*$28-$28 +Constant memset::str#0 = (void *)CONIO_SCREEN_TEXT+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 -Constant memset::str#1 = (void*)CONIO_SCREEN_COLORS+(word)$19*$28-$28 +Constant memset::str#1 = (void *)CONIO_SCREEN_COLORS+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 @@ -2304,8 +2304,8 @@ Constant conio_c64_init::line#1 = (unumber)$19-1 Constant printf_padding::i#0 = 0 Constant printf_uint::$1 = '+' Constant printf_uint::$0 = 0 -Constant utoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -Constant printf_number_buffer::buffer_digits#0 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant printf_number_buffer::padding#0 = 0 Constant printf_number_buffer::padding#2 = 0 Constant printf_padding::pad#0 = ' ' @@ -2344,7 +2344,7 @@ Constant strlen::str#1 = printf_number_buffer::buffer_digits#0 Constant cputs::s#1 = printf_number_buffer::buffer_digits#0 Constant strupr::str#0 = printf_number_buffer::buffer_digits#0 Successful SSA optimization Pass2ConstantIdentification -Constant printf_number_buffer::$25 = (signed byte)printf_number_buffer::format_min_length#0 +Constant printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 Constant strupr::return#2 = strupr::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [56] if(utoa::radix#0==DECIMAL) goto utoa::@1 @@ -2361,18 +2361,18 @@ Consolidated constant strings into bbs_host_name1 Consolidated constant strings into bbs_host_name8 Successful SSA optimization Pass2ConstantStringConsolidation Rewriting conditional comparison [117] if(gotoxy::y#3<=$19) goto gotoxy::@1 -Converting *(pointer+n) to pointer[n] [321] if((byte*)0!=*main::$1) goto main::@2 -- main::$5[OFFSET_STRUCT_BBS_NAME] +Converting *(pointer+n) to pointer[n] [321] if((char *)0!=*main::$1) goto main::@2 -- main::$5[OFFSET_STRUCT_BBS_NAME] Converting *(pointer+n) to pointer[n] [324] printf_string::str#0 = *main::$2 -- main::$6[OFFSET_STRUCT_BBS_NAME] Converting *(pointer+n) to pointer[n] [332] printf_string::str#1 = *main::$3 -- main::$7[OFFSET_STRUCT_BBS_HOST_NAME] Converting *(pointer+n) to pointer[n] [340] printf_uint::uvalue#0 = *main::$4 -- main::$8[OFFSET_STRUCT_BBS_PORT_NUMBER] Successful SSA optimization Pass2InlineDerefIdx -Simplifying constant evaluating to zero (signed byte)printf_number_buffer::format_min_length#0 in +Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)&printf_buffer in [215] *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uint::$2 -Simplifying expression containing zero (byte*)&printf_buffer in [220] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (char *)&printf_buffer in [215] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) = printf_uint::$2 +Simplifying expression containing zero (char *)&printf_buffer in [220] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) Simplifying expression containing zero printf_number_buffer::len#2 in [250] printf_number_buffer::padding#1 = printf_number_buffer::$25 - printf_number_buffer::len#2 Simplifying expression containing zero main::$5 in [319] main::$1 = main::$5 + OFFSET_STRUCT_BBS_NAME -Simplifying expression containing zero main::$5 in [321] if((byte*)0!=main::$5[OFFSET_STRUCT_BBS_NAME]) goto main::@2 +Simplifying expression containing zero main::$5 in [321] if((char *)0!=main::$5[OFFSET_STRUCT_BBS_NAME]) goto main::@2 Simplifying expression containing zero main::$6 in [323] main::$2 = main::$6 + OFFSET_STRUCT_BBS_NAME Simplifying expression containing zero main::$6 in [324] printf_string::str#0 = main::$6[OFFSET_STRUCT_BBS_NAME] Successful SSA optimization PassNSimplifyExpressionWithZero @@ -2510,16 +2510,16 @@ Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -2555,14 +2555,14 @@ Negating conditional jump and destination [192] if(0!=printf_number_buffer::form Negating conditional jump and destination [197] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [30] utoa::$4 = utoa::max_digits#1 - 1 -Constant right-side identified [127] printf_padding::length#0 = (byte)printf_number_buffer::padding#0 -Constant right-side identified [133] printf_padding::length#1 = (byte)printf_number_buffer::padding#0 -Constant right-side identified [139] printf_padding::length#2 = (byte)printf_number_buffer::padding#0 +Constant right-side identified [127] printf_padding::length#0 = (char)printf_number_buffer::padding#0 +Constant right-side identified [133] printf_padding::length#1 = (char)printf_number_buffer::padding#0 +Constant right-side identified [139] printf_padding::length#2 = (char)printf_number_buffer::padding#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::$4 = utoa::max_digits#1-1 -Constant printf_padding::length#0 = (byte)printf_number_buffer::padding#0 -Constant printf_padding::length#1 = (byte)printf_number_buffer::padding#0 -Constant printf_padding::length#2 = (byte)printf_number_buffer::padding#0 +Constant printf_padding::length#0 = (char)printf_number_buffer::padding#0 +Constant printf_padding::length#1 = (char)printf_number_buffer::padding#0 +Constant printf_padding::length#2 = (char)printf_number_buffer::padding#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [59] if(gotoxy::x#2<$28) goto gotoxy::@2 if() condition always false - eliminating [125] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2 @@ -2574,9 +2574,9 @@ if() condition always false - eliminating [194] if(0!=printf_number_buffer::padd if() condition always false - eliminating [196] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12 if() condition always false - eliminating [197] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in -Simplifying constant evaluating to zero (byte)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in +Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in Successful SSA optimization PassNSimplifyConstantZero Removing PHI-reference to removed block (gotoxy::@4) in block gotoxy::@2 Removing unused block gotoxy::@4 @@ -2616,18 +2616,18 @@ Identical Phi Values gotoxy::x#4 gotoxy::x#2 Successful SSA optimization Pass2IdenticalPhiElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Inlining Noop Cast [1] memcpy::src#0 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [2] memcpy::dst#0 = (byte*)memcpy::destination#2 keeping memcpy::destination#2 -Inlining Noop Cast [3] memcpy::$2 = (byte*)memcpy::source#2 keeping memcpy::source#2 -Inlining Noop Cast [13] memset::$4 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [15] memset::dst#0 = (byte*)memset::str#3 keeping memset::str#3 -Inlining Noop Cast [127] printf_string::$13 = (signed byte)printf_string::format_min_length#2 keeping printf_string::format_min_length#2 -Inlining Noop Cast [140] main::$5 = (byte**)main::bbs#2 keeping main::bbs#2 -Inlining Noop Cast [142] main::$6 = (byte**)main::bbs#2 keeping main::bbs#2 -Inlining Noop Cast [146] main::$7 = (byte**)main::bbs#2 keeping main::bbs#2 -Inlining Noop Cast [150] main::$8 = (word*)main::bbs#2 keeping main::bbs#2 +Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 +Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 +Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 +Inlining Noop Cast [127] printf_string::$13 = (signed char)printf_string::format_min_length#2 keeping printf_string::format_min_length#2 +Inlining Noop Cast [140] main::$5 = (char **)main::bbs#2 keeping main::bbs#2 +Inlining Noop Cast [142] main::$6 = (char **)main::bbs#2 keeping main::bbs#2 +Inlining Noop Cast [146] main::$7 = (char **)main::bbs#2 keeping main::bbs#2 +Inlining Noop Cast [150] main::$8 = (unsigned int *)main::bbs#2 keeping main::bbs#2 Successful SSA optimization Pass2NopCastInlining -Rewriting multiplication to use shift [29] utoa::$10 = utoa::digit#2 * SIZEOF_WORD +Rewriting multiplication to use shift [29] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT Rewriting multiplication to use shift and addition[56] gotoxy::line_offset#0 = gotoxy::$7 * $28 Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings memcpy::destination#0 @@ -2671,34 +2671,34 @@ Constant inlined cputs::s#3 = main::s Constant inlined cputs::s#4 = main::s Constant inlined cputs::s#1 = printf_number_buffer::buffer_digits#0 Constant inlined conio_textcolor = LIGHT_BLUE -Constant inlined memcpy::destination#0 = (void*)DEFAULT_SCREEN +Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memset::num#1 = $28 -Constant inlined memcpy::destination#1 = (void*)COLORRAM +Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined memset::num#0 = $28 Constant inlined strlen::len#0 = 0 Constant inlined printf_string::format_min_length#0 = 0 Constant inlined printf_string::format_min_length#1 = 0 -Constant inlined conio_c64_init::line#1 = (byte)$19-1 -Constant inlined memcpy::source#1 = (void*)COLORRAM+$28 +Constant inlined conio_c64_init::line#1 = (char)$19-1 +Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined utoa::digit#0 = 0 Constant inlined CONIO_SCREEN_TEXT = DEFAULT_SCREEN Constant inlined utoa::$4 = utoa::max_digits#1-1 Constant inlined CONIO_TEXTCOLOR_DEFAULT = LIGHT_BLUE -Constant inlined memset::str#1 = (void*)COLORRAM+(word)$19*$28-$28 -Constant inlined memset::str#0 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 +Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 +Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined printf_padding::i#0 = 0 Constant inlined CONIO_SCREEN_COLORS = COLORRAM Constant inlined main::s1 = main::s Constant inlined printf_uint::$0 = 0 Constant inlined utoa::started#1 = 1 Constant inlined utoa::started#0 = 0 -Constant inlined memcpy::source#0 = (void*)DEFAULT_SCREEN+$28 +Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined printf_padding::pad#3 = ' ' Constant inlined printf_padding::pad#4 = ' ' -Constant inlined memcpy::num#1 = (word)$19*$28-$28 -Constant inlined memcpy::num#0 = (word)$19*$28-$28 +Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 +Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined printf_string::padding#0 = 0 -Constant inlined utoa::buffer#5 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS +Constant inlined utoa::buffer#5 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS Constant inlined gotoxy::y#0 = 0 Constant inlined bbs_host_name17 = bbs_host_name1 Constant inlined printf_string::padding#2 = 0 @@ -2715,19 +2715,19 @@ Alias gotoxy::line_offset#0 = gotoxy::$10 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 -Identical Phi Values memcpy::num#2 (word)$19*$28-$28 +Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Identical Phi Values printf_string::format_min_length#2 0 Identical Phi Values printf_string::format_justify_left#10 0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant value identified (signed byte)0 in [124] printf_string::padding#1 = (signed byte)0 - printf_string::len#0 +Constant value identified (signed char)0 in [124] printf_string::padding#1 = (signed char)0 - printf_string::len#0 Successful SSA optimization Pass2ConstantValues if() condition always false - eliminating [9] if($28<=0) goto memset::@1 if() condition always true - replacing block destination [116] if(0==0) goto printf_string::@1 if() condition always false - eliminating [118] if(0!=0) goto printf_string::@2 if() condition always true - replacing block destination [128] if(0==0) goto printf_string::@return Successful SSA optimization Pass2ConstantIfs -Simplifying constant evaluating to zero (signed byte)0 in [124] printf_string::padding#1 = (signed byte)0 - printf_string::len#0 +Simplifying constant evaluating to zero (signed char)0 in [124] printf_string::padding#1 = (signed char)0 - printf_string::len#0 Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero printf_string::len#0 in [124] printf_string::padding#1 = 0 - printf_string::len#0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -2760,7 +2760,7 @@ Removing unused block printf_string::@6 Removing unused block printf_string::@10 Removing unused block printf_string::@12 Successful SSA optimization Pass2EliminateUnusedBlocks -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 @@ -2768,15 +2768,15 @@ Identical Phi Values printf_padding::length#6 printf_padding::length#3 Identical Phi Values printf_padding::pad#7 ' ' Identical Phi Values printf_string::padding#3 0 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [113] printf_padding::length#3 = (byte)0 +Constant right-side identified [113] printf_padding::length#3 = (char)0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant cputc::c#1 = ' ' -Constant printf_padding::length#3 = (byte)0 +Constant printf_padding::length#3 = (char)0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [93] if(printf_padding::i#2COLORRAM sta.z conio_line_color+1 - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: - // [7] call main + // [7] call main jsr main jmp __breturn // __start::@return @@ -3937,7 +3937,7 @@ conio_c64_init: { // conio_c64_init::@1 __b1: // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy jmp __breturn // conio_c64_init::@return @@ -3948,7 +3948,7 @@ conio_c64_init: { // main main: { .label bbs = 2 - // [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 -- _deref_pbuc1=vbuc2 + // [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 -- _deref_pbuc1=vbuc2 lda #$17 sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY // [17] phi from main to main::@1 [phi:main->main::@1] @@ -3961,7 +3961,7 @@ main: { jmp __b1 // main::@1 __b1: - // [18] if((byte*)0!=*((byte**)main::bbs#2)) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 + // [18] if((char *)0!=*((char **)main::bbs#2)) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 ldy #0 lda #<0 cmp (bbs),y @@ -3977,14 +3977,14 @@ main: { rts // main::@2 __b2: - // [20] printf_string::str#0 = *((byte**)main::bbs#2) -- pbuz1=_deref_qbuz2 + // [20] printf_string::str#0 = *((char **)main::bbs#2) -- pbuz1=_deref_qbuz2 ldy #0 lda (bbs),y sta.z printf_string.str iny lda (bbs),y sta.z printf_string.str+1 - // [21] call printf_string + // [21] call printf_string // [47] phi from main::@2 to printf_string [phi:main::@2->printf_string] printf_string_from___b2: // [47] phi printf_string::str#2 = printf_string::str#0 [phi:main::@2->printf_string#0] -- register_copy @@ -3994,7 +3994,7 @@ main: { jmp __b3 // main::@3 __b3: - // [23] call cputs + // [23] call cputs // [51] phi from main::@3 to cputs [phi:main::@3->cputs] cputs_from___b3: // [51] phi cputs::s#7 = main::s [phi:main::@3->cputs#0] -- pbuz1=pbuc1 @@ -4006,14 +4006,14 @@ main: { jmp __b4 // main::@4 __b4: - // [24] printf_string::str#1 = ((byte**)main::bbs#2)[OFFSET_STRUCT_BBS_HOST_NAME] -- pbuz1=qbuz2_derefidx_vbuc1 + // [24] printf_string::str#1 = ((char **)main::bbs#2)[OFFSET_STRUCT_BBS_HOST_NAME] -- pbuz1=qbuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_BBS_HOST_NAME lda (bbs),y sta.z printf_string.str iny lda (bbs),y sta.z printf_string.str+1 - // [25] call printf_string + // [25] call printf_string // [47] phi from main::@4 to printf_string [phi:main::@4->printf_string] printf_string_from___b4: // [47] phi printf_string::str#2 = printf_string::str#1 [phi:main::@4->printf_string#0] -- register_copy @@ -4023,7 +4023,7 @@ main: { jmp __b5 // main::@5 __b5: - // [27] call cputs + // [27] call cputs // [51] phi from main::@5 to cputs [phi:main::@5->cputs] cputs_from___b5: // [51] phi cputs::s#7 = main::s [phi:main::@5->cputs#0] -- pbuz1=pbuc1 @@ -4035,14 +4035,14 @@ main: { jmp __b6 // main::@6 __b6: - // [28] printf_uint::uvalue#0 = ((word*)main::bbs#2)[OFFSET_STRUCT_BBS_PORT_NUMBER] -- vwuz1=pwuz2_derefidx_vbuc1 + // [28] printf_uint::uvalue#0 = ((unsigned int *)main::bbs#2)[OFFSET_STRUCT_BBS_PORT_NUMBER] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_BBS_PORT_NUMBER lda (bbs),y sta.z printf_uint.uvalue iny lda (bbs),y sta.z printf_uint.uvalue+1 - // [29] call printf_uint + // [29] call printf_uint // [59] phi from main::@6 to printf_uint [phi:main::@6->printf_uint] printf_uint_from___b6: jsr printf_uint @@ -4051,7 +4051,7 @@ main: { jmp __b7 // main::@7 __b7: - // [31] call cputs + // [31] call cputs // [51] phi from main::@7 to cputs [phi:main::@7->cputs] cputs_from___b7: // [51] phi cputs::s#7 = main::s2 [phi:main::@7->cputs#0] -- pbuz1=pbuc1 @@ -4084,7 +4084,7 @@ main: { .segment Code // gotoxy // Set the cursor to the specified position -// gotoxy(byte register(X) y) +// void gotoxy(char x, __register(X) char y) gotoxy: { .const x = 0 .label __5 = $13 @@ -4120,7 +4120,7 @@ gotoxy: { sta.z conio_cursor_x // [37] conio_cursor_y = gotoxy::y#4 -- vbuz1=vbuxx stx.z conio_cursor_y - // [38] gotoxy::$7 = (word)gotoxy::y#4 -- vwuz1=_word_vbuxx + // [38] gotoxy::$7 = (unsigned int)gotoxy::y#4 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -4184,14 +4184,14 @@ gotoxy: { // printf_string // Print a string value using a specific format // Handles justification and min length -// printf_string(byte* zp(5) str) +// void printf_string(__zp(5) char *str, char format_min_length, char format_justify_left) printf_string: { .label str = 5 jmp __b1 // printf_string::@1 __b1: // [48] cputs::s#2 = printf_string::str#2 - // [49] call cputs + // [49] call cputs // [51] phi from printf_string::@1 to cputs [phi:printf_string::@1->cputs] cputs_from___b1: // [51] phi cputs::s#7 = cputs::s#2 [phi:printf_string::@1->cputs#0] -- register_copy @@ -4204,7 +4204,7 @@ printf_string: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(5) s) +// void cputs(__zp(5) const char *s) cputs: { .label s = 5 // [52] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -4233,7 +4233,7 @@ cputs: { // cputs::@2 __b2: // [57] cputc::c#0 = cputs::c#1 - // [58] call cputc + // [58] call cputc // [66] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] cputc_from___b2: // [66] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy @@ -4242,18 +4242,18 @@ cputs: { } // printf_uint // Print an unsigned int using a specific format -// printf_uint(word zp(5) uvalue) +// void printf_uint(__zp(5) unsigned int uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uint: { .label uvalue = 5 jmp __b1 // printf_uint::@1 __b1: - // [60] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [60] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // [61] utoa::value#1 = printf_uint::uvalue#0 - // [62] call utoa + // [62] call utoa // Format number into buffer // [77] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: @@ -4261,9 +4261,9 @@ printf_uint: { jmp __b2 // printf_uint::@2 __b2: - // [63] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [63] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [64] call printf_number_buffer + // [64] call printf_number_buffer // Print using format // [98] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] printf_number_buffer_from___b2: @@ -4277,7 +4277,7 @@ printf_uint: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // [67] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #'\n' @@ -4303,7 +4303,7 @@ cputc: { jmp __b3 // cputc::@3 __b3: - // [73] call cputln + // [73] call cputln jsr cputln jmp __breturn // cputc::@return @@ -4315,7 +4315,7 @@ cputc: { jmp __b1 // cputc::@1 __b1: - // [76] call cputln + // [76] call cputln jsr cputln jmp __breturn } @@ -4325,7 +4325,7 @@ cputc: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp(5) value, byte* zp($17) buffer) +// void utoa(__zp(5) unsigned int value, __zp($17) char *buffer, char radix) utoa: { .const max_digits = 5 .label digit_value = $15 @@ -4334,7 +4334,7 @@ utoa: { .label value = 5 // [78] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [78] phi utoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [78] phi utoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -4355,7 +4355,7 @@ utoa: { jmp __b3 // utoa::@3 __b3: - // [80] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [80] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [81] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -4423,7 +4423,7 @@ utoa: { // [91] utoa_append::buffer#0 = utoa::buffer#11 // [92] utoa_append::value#0 = utoa::value#2 // [93] utoa_append::sub#0 = utoa::digit_value#0 - // [94] call utoa_append + // [94] call utoa_append // [111] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append @@ -4448,7 +4448,7 @@ utoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS jmp __b1 @@ -4461,7 +4461,7 @@ printf_number_buffer: { // printf_number_buffer::@3 __b3: // [100] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [101] call cputc + // [101] call cputc // [66] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] cputc_from___b3: // [66] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy @@ -4472,7 +4472,7 @@ printf_number_buffer: { jmp __b2 // printf_number_buffer::@2 __b2: - // [103] call cputs + // [103] call cputs // [51] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] cputs_from___b2: // [51] phi cputs::s#7 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->cputs#0] -- pbuz1=pbuc1 @@ -4511,7 +4511,7 @@ cputln: { sta.z conio_cursor_x // [108] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y - // [109] call cscroll + // [109] call cscroll jsr cscroll jmp __breturn // cputln::@return @@ -4528,7 +4528,7 @@ cputln: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($17) buffer, word zp(5) value, word zp($15) sub) +// __zp(5) unsigned int utoa_append(__zp($17) char *buffer, __zp(5) unsigned int value, __zp($15) unsigned int sub) utoa_append: { .label buffer = $17 .label value = 5 @@ -4593,15 +4593,15 @@ cscroll: { jmp __b1 // cscroll::@1 __b1: - // [120] call memcpy + // [120] call memcpy // [131] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: - // [131] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [131] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [131] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [131] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -4612,15 +4612,15 @@ cscroll: { jmp __b2 // cscroll::@2 __b2: - // [122] call memcpy + // [122] call memcpy // [131] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: - // [131] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [131] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [131] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [131] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -4631,12 +4631,12 @@ cscroll: { jmp __b3 // cscroll::@3 __b3: - // [124] call memset + // [124] call memset // [141] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [141] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [141] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [141] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -4647,12 +4647,12 @@ cscroll: { jmp __b4 // cscroll::@4 __b4: - // [126] call memset + // [126] call memset // [141] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [141] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [141] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [141] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -4688,14 +4688,14 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(7) destination, void* zp($17) source) +// void * memcpy(__zp(7) void *destination, __zp($17) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = 7 .label src = $17 .label source = $17 .label destination = 7 - // [132] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [132] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -4703,8 +4703,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [133] memcpy::src#4 = (byte*)memcpy::source#2 - // [134] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [133] memcpy::src#4 = (char *)memcpy::source#2 + // [134] memcpy::dst#4 = (char *)memcpy::destination#2 // [135] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: @@ -4746,7 +4746,7 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(7) str, byte register(X) c) +// void * memset(__zp(7) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 7 @@ -4754,7 +4754,7 @@ memset: { jmp __b1 // memset::@1 __b1: - // [142] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [142] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -4762,7 +4762,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [143] memset::dst#4 = (byte*)memset::str#3 + // [143] memset::dst#4 = (char *)memset::str#3 // [144] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: @@ -5078,223 +5078,223 @@ Removing instruction lda.z digit_value+1 Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_BBS_HOST_NAME = 2 -constant byte OFFSET_STRUCT_BBS_PORT_NUMBER = 4 -constant byte OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant byte SIZEOF_STRUCT_BBS = 6 -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_BBS_HOST_NAME = 2 +__constant char OFFSET_STRUCT_BBS_PORT_NUMBER = 4 +__constant char OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant char SIZEOF_STRUCT_BBS = 6 +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void __start() -constant byte* bbs_host_name[$f] = "byob.hopto.org" -constant byte* bbs_host_name1[$14] = "rapidfire.hopto.org" -constant byte* bbs_host_name10[$16] = "bbs.jammingsignal.com" -constant byte* bbs_host_name11[$19] = "centronian.servebeer.com" -constant byte* bbs_host_name12[$11] = "aubbs.dyndns.org" -constant byte* bbs_host_name13[$13] = "oasisbbs.hopto.org" -constant byte* bbs_host_name14[$13] = "bbs.thediskbox.com" -constant byte* bbs_host_name15[$19] = "cottonwoodbbs.dyndns.org" -constant byte* bbs_host_name18[$16] = "madworld.bounceme.net" -constant byte* bbs_host_name19[$10] = "bbs.thejlab.com" -constant byte* bbs_host_name2[$13] = "antidote.hopto.org" -constant byte* bbs_host_name20[$15] = "hotwirebbs.zapto.org" -constant byte* bbs_host_name21[$18] = "endlesschaos.dyndns.org" -constant byte* bbs_host_name22[$19] = "borderlinebbs.dyndns.org" -constant byte* bbs_host_name23[$16] = "raveolution.hopto.org" -constant byte* bbs_host_name24[$16] = "theedgebbs.dyndns.org" -constant byte* bbs_host_name25[$14] = "F96NG92-L.fritz.box" -constant byte* bbs_host_name3[$18] = "wizardsrealm.c64bbs.org" -constant byte* bbs_host_name4[$15] = "the-hidden.hopto.org" -constant byte* bbs_host_name5[$13] = "eagelbird.ddns.net" -constant byte* bbs_host_name6[$c] = "scorp.us.to" -constant byte* bbs_host_name7[$14] = "maraud.dynalias.com" -constant byte* bbs_host_name8[$f] = "cib.dyndns.org" -constant byte* bbs_host_name9[$1d] = "64vintageremixbbs.dyndns.org" -constant const struct bbs* bbs_list[$1b] = { { name: bbs_name, host_name: bbs_host_name, port_number: $fa80 }, { name: bbs_name1, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name2, host_name: bbs_host_name2, port_number: $fa80 }, { name: bbs_name3, host_name: bbs_host_name3, port_number: $17 }, { name: bbs_name4, host_name: bbs_host_name4, port_number: $fa80 }, { name: bbs_name5, host_name: bbs_host_name5, port_number: $1900 }, { name: bbs_name6, host_name: bbs_host_name6, port_number: $17 }, { name: bbs_name7, host_name: bbs_host_name7, port_number: $1900 }, { name: bbs_name8, host_name: bbs_host_name8, port_number: $1900 }, { name: bbs_name9, host_name: bbs_host_name9, port_number: $1900 }, { name: bbs_name10, host_name: bbs_host_name10, port_number: $17 }, { name: bbs_name11, host_name: bbs_host_name11, port_number: $1900 }, { name: bbs_name12, host_name: bbs_host_name12, port_number: $8fc }, { name: bbs_name13, host_name: bbs_host_name13, port_number: $1900 }, { name: bbs_name14, host_name: bbs_host_name14, port_number: $1900 }, { name: bbs_name15, host_name: bbs_host_name15, port_number: $1966 }, { name: bbs_name16, host_name: bbs_host_name8, port_number: $1904 }, { name: bbs_name17, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name18, host_name: bbs_host_name18, port_number: $1900 }, { name: bbs_name19, host_name: bbs_host_name19, port_number: $1900 }, { name: bbs_name20, host_name: bbs_host_name20, port_number: $1966 }, { name: bbs_name21, host_name: bbs_host_name21, port_number: $1900 }, { name: bbs_name22, host_name: bbs_host_name22, port_number: $1900 }, { name: bbs_name23, host_name: bbs_host_name23, port_number: $fa80 }, { name: bbs_name24, host_name: bbs_host_name24, port_number: $605 }, { name: bbs_name25, host_name: bbs_host_name25, port_number: $fa80 }, { name: 0, host_name: 0, port_number: 0 } } -constant byte* bbs_name[$c] = "Boar's Head" -constant byte* bbs_name1[$a] = "RapidFire" -constant byte* bbs_name10[$f] = "Jamming Signal" -constant byte* bbs_name11[$f] = "Centronian BBS" -constant byte* bbs_name12[$11] = "Anrchy Undergrnd" -constant byte* bbs_name13[$e] = "The Oasis BBS" -constant byte* bbs_name14[$d] = "The Disk Box" -constant byte* bbs_name15[$b] = "Cottonwood" -constant byte* bbs_name16[$10] = "Wrong Number ][" -constant byte* bbs_name17[$a] = "RabidFire" -constant byte* bbs_name18[$a] = "Mad World" -constant byte* bbs_name19[$b] = "Citadel 64" -constant byte* bbs_name2[$12] = "Antidote by Triad" -constant byte* bbs_name20[$c] = "Hotwire BBS" -constant byte* bbs_name21[$e] = "Endless Chaos" -constant byte* bbs_name22[$b] = "Borderline" -constant byte* bbs_name23[$c] = "RAVELOUTION" -constant byte* bbs_name24[$d] = "The Edge BBS" -constant byte* bbs_name25[9] = "PGS Test" -constant byte* bbs_name3[$10] = "Wizards's Realm" -constant byte* bbs_name4[$b] = "The Hidden" -constant byte* bbs_name5[$e] = "Eaglewing BBS" -constant byte* bbs_name6[$e] = "Scorps Portal" -constant byte* bbs_name7[$d] = "My C=ult BBS" -constant byte* bbs_name8[$10] = "Commodore Image" -constant byte* bbs_name9[$10] = "64 Vintag Remic" +__constant char bbs_host_name[$f] = "byob.hopto.org" +__constant char bbs_host_name1[$14] = "rapidfire.hopto.org" +__constant char bbs_host_name10[$16] = "bbs.jammingsignal.com" +__constant char bbs_host_name11[$19] = "centronian.servebeer.com" +__constant char bbs_host_name12[$11] = "aubbs.dyndns.org" +__constant char bbs_host_name13[$13] = "oasisbbs.hopto.org" +__constant char bbs_host_name14[$13] = "bbs.thediskbox.com" +__constant char bbs_host_name15[$19] = "cottonwoodbbs.dyndns.org" +__constant char bbs_host_name18[$16] = "madworld.bounceme.net" +__constant char bbs_host_name19[$10] = "bbs.thejlab.com" +__constant char bbs_host_name2[$13] = "antidote.hopto.org" +__constant char bbs_host_name20[$15] = "hotwirebbs.zapto.org" +__constant char bbs_host_name21[$18] = "endlesschaos.dyndns.org" +__constant char bbs_host_name22[$19] = "borderlinebbs.dyndns.org" +__constant char bbs_host_name23[$16] = "raveolution.hopto.org" +__constant char bbs_host_name24[$16] = "theedgebbs.dyndns.org" +__constant char bbs_host_name25[$14] = "F96NG92-L.fritz.box" +__constant char bbs_host_name3[$18] = "wizardsrealm.c64bbs.org" +__constant char bbs_host_name4[$15] = "the-hidden.hopto.org" +__constant char bbs_host_name5[$13] = "eagelbird.ddns.net" +__constant char bbs_host_name6[$c] = "scorp.us.to" +__constant char bbs_host_name7[$14] = "maraud.dynalias.com" +__constant char bbs_host_name8[$f] = "cib.dyndns.org" +__constant char bbs_host_name9[$1d] = "64vintageremixbbs.dyndns.org" +__constant const struct bbs bbs_list[$1b] = { { name: bbs_name, host_name: bbs_host_name, port_number: $fa80 }, { name: bbs_name1, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name2, host_name: bbs_host_name2, port_number: $fa80 }, { name: bbs_name3, host_name: bbs_host_name3, port_number: $17 }, { name: bbs_name4, host_name: bbs_host_name4, port_number: $fa80 }, { name: bbs_name5, host_name: bbs_host_name5, port_number: $1900 }, { name: bbs_name6, host_name: bbs_host_name6, port_number: $17 }, { name: bbs_name7, host_name: bbs_host_name7, port_number: $1900 }, { name: bbs_name8, host_name: bbs_host_name8, port_number: $1900 }, { name: bbs_name9, host_name: bbs_host_name9, port_number: $1900 }, { name: bbs_name10, host_name: bbs_host_name10, port_number: $17 }, { name: bbs_name11, host_name: bbs_host_name11, port_number: $1900 }, { name: bbs_name12, host_name: bbs_host_name12, port_number: $8fc }, { name: bbs_name13, host_name: bbs_host_name13, port_number: $1900 }, { name: bbs_name14, host_name: bbs_host_name14, port_number: $1900 }, { name: bbs_name15, host_name: bbs_host_name15, port_number: $1966 }, { name: bbs_name16, host_name: bbs_host_name8, port_number: $1904 }, { name: bbs_name17, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name18, host_name: bbs_host_name18, port_number: $1900 }, { name: bbs_name19, host_name: bbs_host_name19, port_number: $1900 }, { name: bbs_name20, host_name: bbs_host_name20, port_number: $1966 }, { name: bbs_name21, host_name: bbs_host_name21, port_number: $1900 }, { name: bbs_name22, host_name: bbs_host_name22, port_number: $1900 }, { name: bbs_name23, host_name: bbs_host_name23, port_number: $fa80 }, { name: bbs_name24, host_name: bbs_host_name24, port_number: $605 }, { name: bbs_name25, host_name: bbs_host_name25, port_number: $fa80 }, { name: 0, host_name: 0, port_number: 0 } } +__constant char bbs_name[$c] = "Boar's Head" +__constant char bbs_name1[$a] = "RapidFire" +__constant char bbs_name10[$f] = "Jamming Signal" +__constant char bbs_name11[$f] = "Centronian BBS" +__constant char bbs_name12[$11] = "Anrchy Undergrnd" +__constant char bbs_name13[$e] = "The Oasis BBS" +__constant char bbs_name14[$d] = "The Disk Box" +__constant char bbs_name15[$b] = "Cottonwood" +__constant char bbs_name16[$10] = "Wrong Number ][" +__constant char bbs_name17[$a] = "RabidFire" +__constant char bbs_name18[$a] = "Mad World" +__constant char bbs_name19[$b] = "Citadel 64" +__constant char bbs_name2[$12] = "Antidote by Triad" +__constant char bbs_name20[$c] = "Hotwire BBS" +__constant char bbs_name21[$e] = "Endless Chaos" +__constant char bbs_name22[$b] = "Borderline" +__constant char bbs_name23[$c] = "RAVELOUTION" +__constant char bbs_name24[$d] = "The Edge BBS" +__constant char bbs_name25[9] = "PGS Test" +__constant char bbs_name3[$10] = "Wizards's Realm" +__constant char bbs_name4[$b] = "The Hidden" +__constant char bbs_name5[$e] = "Eaglewing BBS" +__constant char bbs_name6[$e] = "Scorps Portal" +__constant char bbs_name7[$d] = "My C=ult BBS" +__constant char bbs_name8[$10] = "Commodore Image" +__constant char bbs_name9[$10] = "64 Vintag Remic" void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:9 2.1428572985714287E7 -byte conio_cursor_y loadstore zp[1]:10 3.720930245116279E8 -byte* conio_line_color loadstore zp[2]:13 2.8333333471794873E8 -byte* conio_line_text loadstore zp[2]:11 2.7625000135E8 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2.0000002E7 -byte cputc::c#2 reg byte a 20002.0 -byte cputc::c#3 reg byte a 1.05005002E8 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:9 2.1428572985714287E7 +__loadstore char conio_cursor_y // zp[1]:10 3.720930245116279E8 +__loadstore char *conio_line_color // zp[2]:13 2.8333333471794873E8 +__loadstore char *conio_line_text // zp[2]:11 2.7625000135E8 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2.0000002E7 +char cputc::c#2 // reg byte a 20002.0 +char cputc::c#3 // reg byte a 1.05005002E8 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1.0000001E7 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:5 5000000.5 -const byte* cputs::s#2 s zp[2]:5 2002.0 -const byte* cputs::s#6 s zp[2]:5 1.5050002E7 -const byte* cputs::s#7 s zp[2]:5 101002.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1.0000001E7 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:5 5000000.5 +const char *cputs::s#2 // s zp[2]:5 2002.0 +const char *cputs::s#6 // s zp[2]:5 1.5050002E7 +const char *cputs::s#7 // s zp[2]:5 101002.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:19 202.0 -byte*~ gotoxy::$6 zp[2]:15 202.0 -word~ gotoxy::$7 zp[2]:15 151.5 -word~ gotoxy::$8 zp[2]:17 202.0 -word~ gotoxy::$9 zp[2]:15 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:15 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:19 202.0 +char *gotoxy::$6 // zp[2]:15 202.0 +unsigned int gotoxy::$7 // zp[2]:15 151.5 +unsigned int gotoxy::$8 // zp[2]:17 202.0 +unsigned int gotoxy::$9 // zp[2]:15 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:15 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -struct bbs* main::bbs -struct bbs* main::bbs#1 bbs zp[2]:2 202.0 -struct bbs* main::bbs#2 bbs zp[2]:2 14.428571428571429 -constant byte* main::s[2] = " " -constant byte* main::s2[2] = " +struct bbs *main::bbs +struct bbs *main::bbs#1 // bbs zp[2]:2 202.0 +struct bbs *main::bbs#2 // bbs zp[2]:2 14.428571428571429 +__constant char main::s[2] = " " +__constant char main::s2[2] = " " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:7 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:7 1.00000000000001E14 -byte* memcpy::dst#2 dst zp[2]:7 1.0003333333333467E14 -byte* memcpy::dst#4 dst zp[2]:7 2.00000000002E11 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:23 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:23 2.00000000000002E14 -byte* memcpy::src#2 src zp[2]:23 1.0002500000000125E14 -byte* memcpy::src#4 src zp[2]:23 1.00000000001E11 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:21 1.251250000000025E13 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714285714428E13 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:7 2.00000000000002E14 -byte* memset::dst#2 dst zp[2]:7 1.3336666666666834E14 -byte* memset::dst#4 dst zp[2]:7 2.00000000002E11 -byte* memset::end -byte* memset::end#0 end zp[2]:23 1.6683333333333668E13 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:7 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:7 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:7 1.00000000000001E14 +char *memcpy::dst#2 // dst zp[2]:7 1.0003333333333467E14 +char *memcpy::dst#4 // dst zp[2]:7 2.00000000002E11 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:23 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:23 2.00000000000002E14 +char *memcpy::src#2 // src zp[2]:23 1.0002500000000125E14 +char *memcpy::src#4 // src zp[2]:23 1.00000000001E11 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:21 1.251250000000025E13 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714285714428E13 +char *memset::dst +char *memset::dst#1 // dst zp[2]:7 2.00000000000002E14 +char *memset::dst#2 // dst zp[2]:7 1.3336666666666834E14 +char *memset::dst#4 // dst zp[2]:7 2.00000000002E11 +char *memset::end +char *memset::end#0 // end zp[2]:23 1.6683333333333668E13 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:7 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 7001.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 7001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_string(char *str , char format_min_length , char format_justify_left) struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_min_length -signed byte printf_string::len -signed byte printf_string::padding -byte* printf_string::str -byte* printf_string::str#0 str zp[2]:5 202.0 -byte* printf_string::str#1 str zp[2]:5 202.0 -byte* printf_string::str#2 str zp[2]:5 1203.0 -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +char printf_string::format_justify_left +char printf_string::format_min_length +signed char printf_string::len +signed char printf_string::padding +char *printf_string::str +char *printf_string::str#0 // str zp[2]:5 202.0 +char *printf_string::str#1 // str zp[2]:5 202.0 +char *printf_string::str#2 // str zp[2]:5 1203.0 +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_min_length -byte printf_uint::format_radix -byte printf_uint::format_sign_always -byte printf_uint::format_upper_case -byte printf_uint::format_zero_padding -word printf_uint::uvalue -word printf_uint::uvalue#0 uvalue zp[2]:5 367.33333333333337 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 2000002.0 -byte~ utoa::$11 reg byte x 20002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:23 287143.2857142857 -byte* utoa::buffer#14 buffer zp[2]:23 1500001.5 -byte* utoa::buffer#3 buffer zp[2]:23 20002.0 -byte* utoa::buffer#4 buffer zp[2]:23 2000002.0 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:4 2000002.0 -byte utoa::digit#2 digit zp[1]:4 285714.5714285714 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:21 600000.6000000001 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 500000.5 -byte utoa::started#4 reg byte x 1000001.0 -word utoa::value -word utoa::value#0 value zp[2]:5 1000001.0 -word utoa::value#1 value zp[2]:5 5501.0 -word utoa::value#2 value zp[2]:5 572857.857142857 -word utoa::value#6 value zp[2]:5 1500001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:23 1375000.25 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.0000000001E10 -byte utoa_append::digit#2 reg byte x 1.00050000015E10 -word utoa_append::return -word utoa_append::return#0 return zp[2]:5 2000002.0 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:21 3.3335000005E9 -word utoa_append::value -word utoa_append::value#0 value zp[2]:5 3666667.333333333 -word utoa_append::value#1 value zp[2]:5 2.0000000002E10 -word utoa_append::value#2 value zp[2]:5 5.001833334166666E9 +char printf_uint::format_justify_left +char printf_uint::format_min_length +char printf_uint::format_radix +char printf_uint::format_sign_always +char printf_uint::format_upper_case +char printf_uint::format_zero_padding +unsigned int printf_uint::uvalue +unsigned int printf_uint::uvalue#0 // uvalue zp[2]:5 367.33333333333337 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 2000002.0 +char utoa::$11 // reg byte x 20002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:23 287143.2857142857 +char *utoa::buffer#14 // buffer zp[2]:23 1500001.5 +char *utoa::buffer#3 // buffer zp[2]:23 20002.0 +char *utoa::buffer#4 // buffer zp[2]:23 2000002.0 +char utoa::digit +char utoa::digit#1 // digit zp[1]:4 2000002.0 +char utoa::digit#2 // digit zp[1]:4 285714.5714285714 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:21 600000.6000000001 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 500000.5 +char utoa::started#4 // reg byte x 1000001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:5 1000001.0 +unsigned int utoa::value#1 // value zp[2]:5 5501.0 +unsigned int utoa::value#2 // value zp[2]:5 572857.857142857 +unsigned int utoa::value#6 // value zp[2]:5 1500001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:23 1375000.25 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.0000000001E10 +char utoa_append::digit#2 // reg byte x 1.00050000015E10 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:5 2000002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:21 3.3335000005E9 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:5 3666667.333333333 +unsigned int utoa_append::value#1 // value zp[2]:5 2.0000000002E10 +unsigned int utoa_append::value#2 // value zp[2]:5 5.001833334166666E9 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[2]:2 [ main::bbs#2 main::bbs#1 ] @@ -5383,11 +5383,11 @@ __start: { lda #>COLORRAM sta.z conio_line_color+1 // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) - // [5] call conio_c64_init + // [5] call conio_c64_init jsr conio_c64_init // [6] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 - // [7] call main + // [7] call main jsr main // __start::@return // [8] return @@ -5416,7 +5416,7 @@ conio_c64_init: { __b1: // gotoxy(0, line) // [13] gotoxy::y#2 = conio_c64_init::line#2 - // [14] call gotoxy + // [14] call gotoxy jsr gotoxy // conio_c64_init::@return // } @@ -5427,7 +5427,7 @@ conio_c64_init: { main: { .label bbs = 2 // VICII->MEMORY = 0x17 - // [16] *((byte*)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 -- _deref_pbuc1=vbuc2 + // [16] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY) = $17 -- _deref_pbuc1=vbuc2 lda #$17 sta VICII+OFFSET_STRUCT_MOS6569_VICII_MEMORY // [17] phi from main to main::@1 [phi:main->main::@1] @@ -5439,7 +5439,7 @@ main: { // main::@1 __b1: // for(struct bbs * bbs = bbs_list; bbs->name; bbs++) - // [18] if((byte*)0!=*((byte**)main::bbs#2)) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 + // [18] if((char *)0!=*((char **)main::bbs#2)) goto main::@2 -- pbuc1_neq__deref_qbuz1_then_la1 ldy #0 tya cmp (bbs),y @@ -5454,21 +5454,21 @@ main: { // main::@2 __b2: // printf("%s %s %u\n", bbs->name, bbs->host_name, bbs->port_number) - // [20] printf_string::str#0 = *((byte**)main::bbs#2) -- pbuz1=_deref_qbuz2 + // [20] printf_string::str#0 = *((char **)main::bbs#2) -- pbuz1=_deref_qbuz2 ldy #0 lda (bbs),y sta.z printf_string.str iny lda (bbs),y sta.z printf_string.str+1 - // [21] call printf_string + // [21] call printf_string // [47] phi from main::@2 to printf_string [phi:main::@2->printf_string] // [47] phi printf_string::str#2 = printf_string::str#0 [phi:main::@2->printf_string#0] -- register_copy jsr printf_string // [22] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // printf("%s %s %u\n", bbs->name, bbs->host_name, bbs->port_number) - // [23] call cputs + // [23] call cputs // [51] phi from main::@3 to cputs [phi:main::@3->cputs] // [51] phi cputs::s#7 = main::s [phi:main::@3->cputs#0] -- pbuz1=pbuc1 lda #name, bbs->host_name, bbs->port_number) - // [24] printf_string::str#1 = ((byte**)main::bbs#2)[OFFSET_STRUCT_BBS_HOST_NAME] -- pbuz1=qbuz2_derefidx_vbuc1 + // [24] printf_string::str#1 = ((char **)main::bbs#2)[OFFSET_STRUCT_BBS_HOST_NAME] -- pbuz1=qbuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_BBS_HOST_NAME lda (bbs),y sta.z printf_string.str iny lda (bbs),y sta.z printf_string.str+1 - // [25] call printf_string + // [25] call printf_string // [47] phi from main::@4 to printf_string [phi:main::@4->printf_string] // [47] phi printf_string::str#2 = printf_string::str#1 [phi:main::@4->printf_string#0] -- register_copy jsr printf_string // [26] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // printf("%s %s %u\n", bbs->name, bbs->host_name, bbs->port_number) - // [27] call cputs + // [27] call cputs // [51] phi from main::@5 to cputs [phi:main::@5->cputs] // [51] phi cputs::s#7 = main::s [phi:main::@5->cputs#0] -- pbuz1=pbuc1 lda #name, bbs->host_name, bbs->port_number) - // [28] printf_uint::uvalue#0 = ((word*)main::bbs#2)[OFFSET_STRUCT_BBS_PORT_NUMBER] -- vwuz1=pwuz2_derefidx_vbuc1 + // [28] printf_uint::uvalue#0 = ((unsigned int *)main::bbs#2)[OFFSET_STRUCT_BBS_PORT_NUMBER] -- vwuz1=pwuz2_derefidx_vbuc1 ldy #OFFSET_STRUCT_BBS_PORT_NUMBER lda (bbs),y sta.z printf_uint.uvalue iny lda (bbs),y sta.z printf_uint.uvalue+1 - // [29] call printf_uint + // [29] call printf_uint // [59] phi from main::@6 to printf_uint [phi:main::@6->printf_uint] jsr printf_uint // [30] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 // printf("%s %s %u\n", bbs->name, bbs->host_name, bbs->port_number) - // [31] call cputs + // [31] call cputs // [51] phi from main::@7 to cputs [phi:main::@7->cputs] // [51] phi cputs::s#7 = main::s2 [phi:main::@7->cputs#0] -- pbuz1=pbuc1 lda #cputs] // [51] phi cputs::s#7 = cputs::s#2 [phi:printf_string::@1->cputs#0] -- register_copy jsr cputs @@ -5660,7 +5660,7 @@ printf_string: { } // cputs // Output a NUL-terminated string at the current cursor position -// cputs(const byte* zp(5) s) +// void cputs(__zp(5) const char *s) cputs: { .label s = 5 // [52] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] @@ -5687,7 +5687,7 @@ cputs: { __b2: // cputc(c) // [57] cputc::c#0 = cputs::c#1 - // [58] call cputc + // [58] call cputc // [66] phi from cputs::@2 to cputc [phi:cputs::@2->cputc] // [66] phi cputc::c#3 = cputc::c#0 [phi:cputs::@2->cputc#0] -- register_copy jsr cputc @@ -5695,26 +5695,26 @@ cputs: { } // printf_uint // Print an unsigned int using a specific format -// printf_uint(word zp(5) uvalue) +// void printf_uint(__zp(5) unsigned int uvalue, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_uint: { .label uvalue = 5 // printf_uint::@1 // printf_buffer.sign = format.sign_always?'+':0 - // [60] *((byte*)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 + // [60] *((char *)&printf_buffer) = 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // utoa(uvalue, printf_buffer.digits, format.radix) // [61] utoa::value#1 = printf_uint::uvalue#0 - // [62] call utoa + // [62] call utoa // Format number into buffer // [77] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] jsr utoa // printf_uint::@2 // printf_number_buffer(printf_buffer, format) - // [63] printf_number_buffer::buffer_sign#0 = *((byte*)&printf_buffer) -- vbuaa=_deref_pbuc1 + // [63] printf_number_buffer::buffer_sign#0 = *((char *)&printf_buffer) -- vbuaa=_deref_pbuc1 lda printf_buffer - // [64] call printf_number_buffer + // [64] call printf_number_buffer // Print using format // [98] phi from printf_uint::@2 to printf_number_buffer [phi:printf_uint::@2->printf_number_buffer] jsr printf_number_buffer @@ -5726,7 +5726,7 @@ printf_uint: { // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed -// cputc(byte register(A) c) +// void cputc(__register(A) char c) cputc: { // if(c=='\n') // [67] if(cputc::c#3==' ') goto cputc::@1 -- vbuaa_eq_vbuc1_then_la1 @@ -5751,7 +5751,7 @@ cputc: { // [72] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() - // [73] call cputln + // [73] call cputln jsr cputln // cputc::@return __breturn: @@ -5762,7 +5762,7 @@ cputc: { // cputc::@1 __b1: // cputln() - // [76] call cputln + // [76] call cputln jsr cputln rts } @@ -5772,7 +5772,7 @@ cputc: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp(5) value, byte* zp($17) buffer) +// void utoa(__zp(5) unsigned int value, __zp($17) char *buffer, char radix) utoa: { .const max_digits = 5 .label digit_value = $15 @@ -5780,7 +5780,7 @@ utoa: { .label digit = 4 .label value = 5 // [78] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - // [78] phi utoa::buffer#11 = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [78] phi utoa::buffer#11 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS @@ -5800,7 +5800,7 @@ utoa: { bcc __b2 // utoa::@3 // *buffer++ = DIGITS[(char)value] - // [80] utoa::$11 = (byte)utoa::value#2 -- vbuxx=_byte_vwuz1 + // [80] utoa::$11 = (char)utoa::value#2 -- vbuxx=_byte_vwuz1 ldx.z value // [81] *utoa::buffer#11 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x @@ -5867,7 +5867,7 @@ utoa: { // [91] utoa_append::buffer#0 = utoa::buffer#11 // [92] utoa_append::value#0 = utoa::value#2 // [93] utoa_append::sub#0 = utoa::digit_value#0 - // [94] call utoa_append + // [94] call utoa_append // [111] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) @@ -5891,7 +5891,7 @@ utoa: { // printf_number_buffer // Print the contents of the number buffer using a specific format. // This handles minimum length, zero-filling, and left/right justification from the format -// printf_number_buffer(byte register(A) buffer_sign) +// void printf_number_buffer(__register(A) char buffer_sign, char *buffer_digits, char format_min_length, char format_justify_left, char format_sign_always, char format_zero_padding, char format_upper_case, char format_radix) printf_number_buffer: { .label buffer_digits = printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // printf_number_buffer::@1 @@ -5902,7 +5902,7 @@ printf_number_buffer: { // printf_number_buffer::@3 // cputc(buffer.sign) // [100] cputc::c#2 = printf_number_buffer::buffer_sign#0 - // [101] call cputc + // [101] call cputc // [66] phi from printf_number_buffer::@3 to cputc [phi:printf_number_buffer::@3->cputc] // [66] phi cputc::c#3 = cputc::c#2 [phi:printf_number_buffer::@3->cputc#0] -- register_copy jsr cputc @@ -5910,7 +5910,7 @@ printf_number_buffer: { // printf_number_buffer::@2 __b2: // cputs(buffer.digits) - // [103] call cputs + // [103] call cputs // [51] phi from printf_number_buffer::@2 to cputs [phi:printf_number_buffer::@2->cputs] // [51] phi cputs::s#7 = printf_number_buffer::buffer_digits#0 [phi:printf_number_buffer::@2->cputs#0] -- pbuz1=pbuc1 lda #cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [120] call memcpy + // [120] call memcpy // [131] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] - // [131] phi memcpy::destination#2 = (void*)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 + // [131] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 - // [131] phi memcpy::source#2 = (void*)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 + // [131] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 @@ -6046,14 +6046,14 @@ cscroll: { // [121] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) - // [122] call memcpy + // [122] call memcpy // [131] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] - // [131] phi memcpy::destination#2 = (void*)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 + // [131] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 - // [131] phi memcpy::source#2 = (void*)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 + // [131] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 @@ -6062,11 +6062,11 @@ cscroll: { // [123] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) - // [124] call memset + // [124] call memset // [141] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [141] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuxx=vbuc1 ldx #' ' - // [141] phi memset::str#3 = (void*)DEFAULT_SCREEN+(word)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 + // [141] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 @@ -6075,11 +6075,11 @@ cscroll: { // [125] phi from cscroll::@3 to cscroll::@4 [phi:cscroll::@3->cscroll::@4] // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) - // [126] call memset + // [126] call memset // [141] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [141] phi memset::c#4 = LIGHT_BLUE [phi:cscroll::@4->memset#0] -- vbuxx=vbuc1 ldx #LIGHT_BLUE - // [141] phi memset::str#3 = (void*)COLORRAM+(word)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 + // [141] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 @@ -6116,7 +6116,7 @@ cscroll: { // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -// memcpy(void* zp(7) destination, void* zp($17) source) +// void * memcpy(__zp(7) void *destination, __zp($17) void *source, unsigned int num) memcpy: { .label src_end = $15 .label dst = 7 @@ -6124,7 +6124,7 @@ memcpy: { .label source = $17 .label destination = 7 // char* src_end = (char*)source+num - // [132] memcpy::src_end#0 = (byte*)memcpy::source#2 + (word)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 + // [132] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 @@ -6132,8 +6132,8 @@ memcpy: { lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 - // [133] memcpy::src#4 = (byte*)memcpy::source#2 - // [134] memcpy::dst#4 = (byte*)memcpy::destination#2 + // [133] memcpy::src#4 = (char *)memcpy::source#2 + // [134] memcpy::dst#4 = (char *)memcpy::destination#2 // [135] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [135] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [135] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy @@ -6173,14 +6173,14 @@ memcpy: { } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. -// memset(void* zp(7) str, byte register(X) c) +// void * memset(__zp(7) void *str, __register(X) char c, unsigned int num) memset: { .label end = $17 .label dst = 7 .label str = 7 // memset::@1 // char* end = (char*)str + num - // [142] memset::end#0 = (byte*)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 + // [142] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str @@ -6188,7 +6188,7 @@ memset: { lda #0 adc.z str+1 sta.z end+1 - // [143] memset::dst#4 = (byte*)memset::str#3 + // [143] memset::dst#4 = (char *)memset::str#3 // [144] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [144] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 diff --git a/src/test/ref/weeip-bbslist.sym b/src/test/ref/weeip-bbslist.sym index 215c6735e..855be2a37 100644 --- a/src/test/ref/weeip-bbslist.sym +++ b/src/test/ref/weeip-bbslist.sym @@ -1,220 +1,220 @@ -constant byte* const COLORRAM = (byte*) 55296 -constant byte* const DEFAULT_SCREEN = (byte*) 1024 -constant byte* DIGITS[] = "0123456789abcdef"z -constant const byte LIGHT_BLUE = $e -constant byte OFFSET_STRUCT_BBS_HOST_NAME = 2 -constant byte OFFSET_STRUCT_BBS_PORT_NUMBER = 4 -constant byte OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 -constant byte OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant word* RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } -constant byte SIZEOF_STRUCT_BBS = 6 -constant byte SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c -constant struct MOS6569_VICII* const VICII = (struct MOS6569_VICII*) 53248 +__constant char * const COLORRAM = (char *) 55296 +__constant char * const DEFAULT_SCREEN = (char *) 1024 +__constant char DIGITS[] = "0123456789abcdef"z +__constant const char LIGHT_BLUE = $e +__constant char OFFSET_STRUCT_BBS_HOST_NAME = 2 +__constant char OFFSET_STRUCT_BBS_PORT_NUMBER = 4 +__constant char OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18 +__constant char OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS = 1 +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } +__constant char SIZEOF_STRUCT_BBS = 6 +__constant char SIZEOF_STRUCT_PRINTF_BUFFER_NUMBER = $c +__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248 void __start() -constant byte* bbs_host_name[$f] = "byob.hopto.org" -constant byte* bbs_host_name1[$14] = "rapidfire.hopto.org" -constant byte* bbs_host_name10[$16] = "bbs.jammingsignal.com" -constant byte* bbs_host_name11[$19] = "centronian.servebeer.com" -constant byte* bbs_host_name12[$11] = "aubbs.dyndns.org" -constant byte* bbs_host_name13[$13] = "oasisbbs.hopto.org" -constant byte* bbs_host_name14[$13] = "bbs.thediskbox.com" -constant byte* bbs_host_name15[$19] = "cottonwoodbbs.dyndns.org" -constant byte* bbs_host_name18[$16] = "madworld.bounceme.net" -constant byte* bbs_host_name19[$10] = "bbs.thejlab.com" -constant byte* bbs_host_name2[$13] = "antidote.hopto.org" -constant byte* bbs_host_name20[$15] = "hotwirebbs.zapto.org" -constant byte* bbs_host_name21[$18] = "endlesschaos.dyndns.org" -constant byte* bbs_host_name22[$19] = "borderlinebbs.dyndns.org" -constant byte* bbs_host_name23[$16] = "raveolution.hopto.org" -constant byte* bbs_host_name24[$16] = "theedgebbs.dyndns.org" -constant byte* bbs_host_name25[$14] = "F96NG92-L.fritz.box" -constant byte* bbs_host_name3[$18] = "wizardsrealm.c64bbs.org" -constant byte* bbs_host_name4[$15] = "the-hidden.hopto.org" -constant byte* bbs_host_name5[$13] = "eagelbird.ddns.net" -constant byte* bbs_host_name6[$c] = "scorp.us.to" -constant byte* bbs_host_name7[$14] = "maraud.dynalias.com" -constant byte* bbs_host_name8[$f] = "cib.dyndns.org" -constant byte* bbs_host_name9[$1d] = "64vintageremixbbs.dyndns.org" -constant const struct bbs* bbs_list[$1b] = { { name: bbs_name, host_name: bbs_host_name, port_number: $fa80 }, { name: bbs_name1, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name2, host_name: bbs_host_name2, port_number: $fa80 }, { name: bbs_name3, host_name: bbs_host_name3, port_number: $17 }, { name: bbs_name4, host_name: bbs_host_name4, port_number: $fa80 }, { name: bbs_name5, host_name: bbs_host_name5, port_number: $1900 }, { name: bbs_name6, host_name: bbs_host_name6, port_number: $17 }, { name: bbs_name7, host_name: bbs_host_name7, port_number: $1900 }, { name: bbs_name8, host_name: bbs_host_name8, port_number: $1900 }, { name: bbs_name9, host_name: bbs_host_name9, port_number: $1900 }, { name: bbs_name10, host_name: bbs_host_name10, port_number: $17 }, { name: bbs_name11, host_name: bbs_host_name11, port_number: $1900 }, { name: bbs_name12, host_name: bbs_host_name12, port_number: $8fc }, { name: bbs_name13, host_name: bbs_host_name13, port_number: $1900 }, { name: bbs_name14, host_name: bbs_host_name14, port_number: $1900 }, { name: bbs_name15, host_name: bbs_host_name15, port_number: $1966 }, { name: bbs_name16, host_name: bbs_host_name8, port_number: $1904 }, { name: bbs_name17, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name18, host_name: bbs_host_name18, port_number: $1900 }, { name: bbs_name19, host_name: bbs_host_name19, port_number: $1900 }, { name: bbs_name20, host_name: bbs_host_name20, port_number: $1966 }, { name: bbs_name21, host_name: bbs_host_name21, port_number: $1900 }, { name: bbs_name22, host_name: bbs_host_name22, port_number: $1900 }, { name: bbs_name23, host_name: bbs_host_name23, port_number: $fa80 }, { name: bbs_name24, host_name: bbs_host_name24, port_number: $605 }, { name: bbs_name25, host_name: bbs_host_name25, port_number: $fa80 }, { name: 0, host_name: 0, port_number: 0 } } -constant byte* bbs_name[$c] = "Boar's Head" -constant byte* bbs_name1[$a] = "RapidFire" -constant byte* bbs_name10[$f] = "Jamming Signal" -constant byte* bbs_name11[$f] = "Centronian BBS" -constant byte* bbs_name12[$11] = "Anrchy Undergrnd" -constant byte* bbs_name13[$e] = "The Oasis BBS" -constant byte* bbs_name14[$d] = "The Disk Box" -constant byte* bbs_name15[$b] = "Cottonwood" -constant byte* bbs_name16[$10] = "Wrong Number ][" -constant byte* bbs_name17[$a] = "RabidFire" -constant byte* bbs_name18[$a] = "Mad World" -constant byte* bbs_name19[$b] = "Citadel 64" -constant byte* bbs_name2[$12] = "Antidote by Triad" -constant byte* bbs_name20[$c] = "Hotwire BBS" -constant byte* bbs_name21[$e] = "Endless Chaos" -constant byte* bbs_name22[$b] = "Borderline" -constant byte* bbs_name23[$c] = "RAVELOUTION" -constant byte* bbs_name24[$d] = "The Edge BBS" -constant byte* bbs_name25[9] = "PGS Test" -constant byte* bbs_name3[$10] = "Wizards's Realm" -constant byte* bbs_name4[$b] = "The Hidden" -constant byte* bbs_name5[$e] = "Eaglewing BBS" -constant byte* bbs_name6[$e] = "Scorps Portal" -constant byte* bbs_name7[$d] = "My C=ult BBS" -constant byte* bbs_name8[$10] = "Commodore Image" -constant byte* bbs_name9[$10] = "64 Vintag Remic" +__constant char bbs_host_name[$f] = "byob.hopto.org" +__constant char bbs_host_name1[$14] = "rapidfire.hopto.org" +__constant char bbs_host_name10[$16] = "bbs.jammingsignal.com" +__constant char bbs_host_name11[$19] = "centronian.servebeer.com" +__constant char bbs_host_name12[$11] = "aubbs.dyndns.org" +__constant char bbs_host_name13[$13] = "oasisbbs.hopto.org" +__constant char bbs_host_name14[$13] = "bbs.thediskbox.com" +__constant char bbs_host_name15[$19] = "cottonwoodbbs.dyndns.org" +__constant char bbs_host_name18[$16] = "madworld.bounceme.net" +__constant char bbs_host_name19[$10] = "bbs.thejlab.com" +__constant char bbs_host_name2[$13] = "antidote.hopto.org" +__constant char bbs_host_name20[$15] = "hotwirebbs.zapto.org" +__constant char bbs_host_name21[$18] = "endlesschaos.dyndns.org" +__constant char bbs_host_name22[$19] = "borderlinebbs.dyndns.org" +__constant char bbs_host_name23[$16] = "raveolution.hopto.org" +__constant char bbs_host_name24[$16] = "theedgebbs.dyndns.org" +__constant char bbs_host_name25[$14] = "F96NG92-L.fritz.box" +__constant char bbs_host_name3[$18] = "wizardsrealm.c64bbs.org" +__constant char bbs_host_name4[$15] = "the-hidden.hopto.org" +__constant char bbs_host_name5[$13] = "eagelbird.ddns.net" +__constant char bbs_host_name6[$c] = "scorp.us.to" +__constant char bbs_host_name7[$14] = "maraud.dynalias.com" +__constant char bbs_host_name8[$f] = "cib.dyndns.org" +__constant char bbs_host_name9[$1d] = "64vintageremixbbs.dyndns.org" +__constant const struct bbs bbs_list[$1b] = { { name: bbs_name, host_name: bbs_host_name, port_number: $fa80 }, { name: bbs_name1, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name2, host_name: bbs_host_name2, port_number: $fa80 }, { name: bbs_name3, host_name: bbs_host_name3, port_number: $17 }, { name: bbs_name4, host_name: bbs_host_name4, port_number: $fa80 }, { name: bbs_name5, host_name: bbs_host_name5, port_number: $1900 }, { name: bbs_name6, host_name: bbs_host_name6, port_number: $17 }, { name: bbs_name7, host_name: bbs_host_name7, port_number: $1900 }, { name: bbs_name8, host_name: bbs_host_name8, port_number: $1900 }, { name: bbs_name9, host_name: bbs_host_name9, port_number: $1900 }, { name: bbs_name10, host_name: bbs_host_name10, port_number: $17 }, { name: bbs_name11, host_name: bbs_host_name11, port_number: $1900 }, { name: bbs_name12, host_name: bbs_host_name12, port_number: $8fc }, { name: bbs_name13, host_name: bbs_host_name13, port_number: $1900 }, { name: bbs_name14, host_name: bbs_host_name14, port_number: $1900 }, { name: bbs_name15, host_name: bbs_host_name15, port_number: $1966 }, { name: bbs_name16, host_name: bbs_host_name8, port_number: $1904 }, { name: bbs_name17, host_name: bbs_host_name1, port_number: $fa80 }, { name: bbs_name18, host_name: bbs_host_name18, port_number: $1900 }, { name: bbs_name19, host_name: bbs_host_name19, port_number: $1900 }, { name: bbs_name20, host_name: bbs_host_name20, port_number: $1966 }, { name: bbs_name21, host_name: bbs_host_name21, port_number: $1900 }, { name: bbs_name22, host_name: bbs_host_name22, port_number: $1900 }, { name: bbs_name23, host_name: bbs_host_name23, port_number: $fa80 }, { name: bbs_name24, host_name: bbs_host_name24, port_number: $605 }, { name: bbs_name25, host_name: bbs_host_name25, port_number: $fa80 }, { name: 0, host_name: 0, port_number: 0 } } +__constant char bbs_name[$c] = "Boar's Head" +__constant char bbs_name1[$a] = "RapidFire" +__constant char bbs_name10[$f] = "Jamming Signal" +__constant char bbs_name11[$f] = "Centronian BBS" +__constant char bbs_name12[$11] = "Anrchy Undergrnd" +__constant char bbs_name13[$e] = "The Oasis BBS" +__constant char bbs_name14[$d] = "The Disk Box" +__constant char bbs_name15[$b] = "Cottonwood" +__constant char bbs_name16[$10] = "Wrong Number ][" +__constant char bbs_name17[$a] = "RabidFire" +__constant char bbs_name18[$a] = "Mad World" +__constant char bbs_name19[$b] = "Citadel 64" +__constant char bbs_name2[$12] = "Antidote by Triad" +__constant char bbs_name20[$c] = "Hotwire BBS" +__constant char bbs_name21[$e] = "Endless Chaos" +__constant char bbs_name22[$b] = "Borderline" +__constant char bbs_name23[$c] = "RAVELOUTION" +__constant char bbs_name24[$d] = "The Edge BBS" +__constant char bbs_name25[9] = "PGS Test" +__constant char bbs_name3[$10] = "Wizards's Realm" +__constant char bbs_name4[$b] = "The Hidden" +__constant char bbs_name5[$e] = "Eaglewing BBS" +__constant char bbs_name6[$e] = "Scorps Portal" +__constant char bbs_name7[$d] = "My C=ult BBS" +__constant char bbs_name8[$10] = "Commodore Image" +__constant char bbs_name9[$10] = "64 Vintag Remic" void conio_c64_init() -constant byte* const conio_c64_init::BASIC_CURSOR_LINE = (byte*) 214 -byte conio_c64_init::line -byte conio_c64_init::line#0 reg byte x 11.0 -byte conio_c64_init::line#2 reg byte x 22.0 -byte conio_cursor_x loadstore zp[1]:9 2.1428572985714287E7 -byte conio_cursor_y loadstore zp[1]:10 3.720930245116279E8 -byte* conio_line_color loadstore zp[2]:13 2.8333333471794873E8 -byte* conio_line_text loadstore zp[2]:11 2.7625000135E8 -void cputc(byte cputc::c) -byte cputc::c -byte cputc::c#0 reg byte a 2.0000002E7 -byte cputc::c#2 reg byte a 20002.0 -byte cputc::c#3 reg byte a 1.05005002E8 +__constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 +char conio_c64_init::line +char conio_c64_init::line#0 // reg byte x 11.0 +char conio_c64_init::line#2 // reg byte x 22.0 +__loadstore char conio_cursor_x // zp[1]:9 2.1428572985714287E7 +__loadstore char conio_cursor_y // zp[1]:10 3.720930245116279E8 +__loadstore char *conio_line_color // zp[2]:13 2.8333333471794873E8 +__loadstore char *conio_line_text // zp[2]:11 2.7625000135E8 +void cputc(char c) +char cputc::c +char cputc::c#0 // reg byte a 2.0000002E7 +char cputc::c#2 // reg byte a 20002.0 +char cputc::c#3 // reg byte a 1.05005002E8 void cputln() -void cputs(const byte* cputs::s) -byte cputs::c -byte cputs::c#1 reg byte a 1.0000001E7 -const byte* cputs::s -const byte* cputs::s#0 s zp[2]:5 5000000.5 -const byte* cputs::s#2 s zp[2]:5 2002.0 -const byte* cputs::s#6 s zp[2]:5 1.5050002E7 -const byte* cputs::s#7 s zp[2]:5 101002.0 +void cputs(const char *s) +char cputs::c +char cputs::c#1 // reg byte a 1.0000001E7 +const char *cputs::s +const char *cputs::s#0 // s zp[2]:5 5000000.5 +const char *cputs::s#2 // s zp[2]:5 2002.0 +const char *cputs::s#6 // s zp[2]:5 1.5050002E7 +const char *cputs::s#7 // s zp[2]:5 101002.0 void cscroll() -void gotoxy(byte gotoxy::x , byte gotoxy::y) -byte*~ gotoxy::$5 zp[2]:19 202.0 -byte*~ gotoxy::$6 zp[2]:15 202.0 -word~ gotoxy::$7 zp[2]:15 151.5 -word~ gotoxy::$8 zp[2]:17 202.0 -word~ gotoxy::$9 zp[2]:15 202.0 -word gotoxy::line_offset -word gotoxy::line_offset#0 line_offset zp[2]:15 101.0 -byte gotoxy::x -constant byte gotoxy::x#2 x = 0 -byte gotoxy::y -byte gotoxy::y#2 reg byte x 71.0 -byte gotoxy::y#4 reg byte x 67.33333333333333 +void gotoxy(char x , char y) +char *gotoxy::$5 // zp[2]:19 202.0 +char *gotoxy::$6 // zp[2]:15 202.0 +unsigned int gotoxy::$7 // zp[2]:15 151.5 +unsigned int gotoxy::$8 // zp[2]:17 202.0 +unsigned int gotoxy::$9 // zp[2]:15 202.0 +unsigned int gotoxy::line_offset +unsigned int gotoxy::line_offset#0 // line_offset zp[2]:15 101.0 +char gotoxy::x +__constant char gotoxy::x#2 = 0 // x +char gotoxy::y +char gotoxy::y#2 // reg byte x 71.0 +char gotoxy::y#4 // reg byte x 67.33333333333333 void main() -struct bbs* main::bbs -struct bbs* main::bbs#1 bbs zp[2]:2 202.0 -struct bbs* main::bbs#2 bbs zp[2]:2 14.428571428571429 -constant byte* main::s[2] = " " -constant byte* main::s2[2] = " +struct bbs *main::bbs +struct bbs *main::bbs#1 // bbs zp[2]:2 202.0 +struct bbs *main::bbs#2 // bbs zp[2]:2 14.428571428571429 +__constant char main::s[2] = " " +__constant char main::s2[2] = " " -void* memcpy(void* memcpy::destination , void* memcpy::source , word memcpy::num) -void* memcpy::destination -void* memcpy::destination#2 destination zp[2]:7 -byte* memcpy::dst -byte* memcpy::dst#1 dst zp[2]:7 1.00000000000001E14 -byte* memcpy::dst#2 dst zp[2]:7 1.0003333333333467E14 -byte* memcpy::dst#4 dst zp[2]:7 2.00000000002E11 -word memcpy::num -void* memcpy::return -void* memcpy::source -void* memcpy::source#2 source zp[2]:23 -byte* memcpy::src -byte* memcpy::src#1 src zp[2]:23 2.00000000000002E14 -byte* memcpy::src#2 src zp[2]:23 1.0002500000000125E14 -byte* memcpy::src#4 src zp[2]:23 1.00000000001E11 -byte* memcpy::src_end -byte* memcpy::src_end#0 src_end zp[2]:21 1.251250000000025E13 -void* memset(void* memset::str , byte memset::c , word memset::num) -byte memset::c -byte memset::c#4 reg byte x 1.4285714285714428E13 -byte* memset::dst -byte* memset::dst#1 dst zp[2]:7 2.00000000000002E14 -byte* memset::dst#2 dst zp[2]:7 1.3336666666666834E14 -byte* memset::dst#4 dst zp[2]:7 2.00000000002E11 -byte* memset::end -byte* memset::end#0 end zp[2]:23 1.6683333333333668E13 -word memset::num -void* memset::return -void* memset::str -void* memset::str#3 str zp[2]:7 -struct printf_buffer_number printf_buffer loadstore mem[12] = {} -void printf_number_buffer(byte printf_number_buffer::buffer_sign , byte* printf_number_buffer::buffer_digits , byte printf_number_buffer::format_min_length , byte printf_number_buffer::format_justify_left , byte printf_number_buffer::format_sign_always , byte printf_number_buffer::format_zero_padding , byte printf_number_buffer::format_upper_case , byte printf_number_buffer::format_radix) +void * memcpy(void *destination , void *source , unsigned int num) +void *memcpy::destination +void *memcpy::destination#2 // destination zp[2]:7 +char *memcpy::dst +char *memcpy::dst#1 // dst zp[2]:7 1.00000000000001E14 +char *memcpy::dst#2 // dst zp[2]:7 1.0003333333333467E14 +char *memcpy::dst#4 // dst zp[2]:7 2.00000000002E11 +unsigned int memcpy::num +void *memcpy::return +void *memcpy::source +void *memcpy::source#2 // source zp[2]:23 +char *memcpy::src +char *memcpy::src#1 // src zp[2]:23 2.00000000000002E14 +char *memcpy::src#2 // src zp[2]:23 1.0002500000000125E14 +char *memcpy::src#4 // src zp[2]:23 1.00000000001E11 +char *memcpy::src_end +char *memcpy::src_end#0 // src_end zp[2]:21 1.251250000000025E13 +void * memset(void *str , char c , unsigned int num) +char memset::c +char memset::c#4 // reg byte x 1.4285714285714428E13 +char *memset::dst +char *memset::dst#1 // dst zp[2]:7 2.00000000000002E14 +char *memset::dst#2 // dst zp[2]:7 1.3336666666666834E14 +char *memset::dst#4 // dst zp[2]:7 2.00000000002E11 +char *memset::end +char *memset::end#0 // end zp[2]:23 1.6683333333333668E13 +unsigned int memset::num +void *memset::return +void *memset::str +void *memset::str#3 // str zp[2]:7 +__loadstore struct printf_buffer_number printf_buffer = {} // mem[12] +void printf_number_buffer(char buffer_sign , char *buffer_digits , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_buffer_number printf_number_buffer::buffer -byte* printf_number_buffer::buffer_digits -constant byte* printf_number_buffer::buffer_digits#0 buffer_digits = (byte*)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS -byte printf_number_buffer::buffer_sign -byte printf_number_buffer::buffer_sign#0 reg byte a 7001.0 +char *printf_number_buffer::buffer_digits +__constant char *printf_number_buffer::buffer_digits#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // buffer_digits +char printf_number_buffer::buffer_sign +char printf_number_buffer::buffer_sign#0 // reg byte a 7001.0 struct printf_format_number printf_number_buffer::format -byte printf_number_buffer::format_justify_left -byte printf_number_buffer::format_min_length -byte printf_number_buffer::format_radix -byte printf_number_buffer::format_sign_always -byte printf_number_buffer::format_upper_case -byte printf_number_buffer::format_zero_padding -signed byte printf_number_buffer::len -signed byte printf_number_buffer::padding -void printf_string(byte* printf_string::str , byte printf_string::format_min_length , byte printf_string::format_justify_left) +char printf_number_buffer::format_justify_left +char printf_number_buffer::format_min_length +char printf_number_buffer::format_radix +char printf_number_buffer::format_sign_always +char printf_number_buffer::format_upper_case +char printf_number_buffer::format_zero_padding +signed char printf_number_buffer::len +signed char printf_number_buffer::padding +void printf_string(char *str , char format_min_length , char format_justify_left) struct printf_format_string printf_string::format -byte printf_string::format_justify_left -byte printf_string::format_min_length -signed byte printf_string::len -signed byte printf_string::padding -byte* printf_string::str -byte* printf_string::str#0 str zp[2]:5 202.0 -byte* printf_string::str#1 str zp[2]:5 202.0 -byte* printf_string::str#2 str zp[2]:5 1203.0 -void printf_uint(word printf_uint::uvalue , byte printf_uint::format_min_length , byte printf_uint::format_justify_left , byte printf_uint::format_sign_always , byte printf_uint::format_zero_padding , byte printf_uint::format_upper_case , byte printf_uint::format_radix) +char printf_string::format_justify_left +char printf_string::format_min_length +signed char printf_string::len +signed char printf_string::padding +char *printf_string::str +char *printf_string::str#0 // str zp[2]:5 202.0 +char *printf_string::str#1 // str zp[2]:5 202.0 +char *printf_string::str#2 // str zp[2]:5 1203.0 +void printf_uint(unsigned int uvalue , char format_min_length , char format_justify_left , char format_sign_always , char format_zero_padding , char format_upper_case , char format_radix) struct printf_format_number printf_uint::format -byte printf_uint::format_justify_left -byte printf_uint::format_min_length -byte printf_uint::format_radix -byte printf_uint::format_sign_always -byte printf_uint::format_upper_case -byte printf_uint::format_zero_padding -word printf_uint::uvalue -word printf_uint::uvalue#0 uvalue zp[2]:5 367.33333333333337 -void utoa(word utoa::value , byte* utoa::buffer , byte utoa::radix) -byte~ utoa::$10 reg byte a 2000002.0 -byte~ utoa::$11 reg byte x 20002.0 -byte* utoa::buffer -byte* utoa::buffer#11 buffer zp[2]:23 287143.2857142857 -byte* utoa::buffer#14 buffer zp[2]:23 1500001.5 -byte* utoa::buffer#3 buffer zp[2]:23 20002.0 -byte* utoa::buffer#4 buffer zp[2]:23 2000002.0 -byte utoa::digit -byte utoa::digit#1 digit zp[1]:4 2000002.0 -byte utoa::digit#2 digit zp[1]:4 285714.5714285714 -word utoa::digit_value -word utoa::digit_value#0 digit_value zp[2]:21 600000.6000000001 -word* utoa::digit_values -byte utoa::max_digits -constant byte utoa::max_digits#1 max_digits = 5 -byte utoa::radix -byte utoa::started -byte utoa::started#2 reg byte x 500000.5 -byte utoa::started#4 reg byte x 1000001.0 -word utoa::value -word utoa::value#0 value zp[2]:5 1000001.0 -word utoa::value#1 value zp[2]:5 5501.0 -word utoa::value#2 value zp[2]:5 572857.857142857 -word utoa::value#6 value zp[2]:5 1500001.5 -word utoa_append(byte* utoa_append::buffer , word utoa_append::value , word utoa_append::sub) -byte* utoa_append::buffer -byte* utoa_append::buffer#0 buffer zp[2]:23 1375000.25 -byte utoa_append::digit -byte utoa_append::digit#1 reg byte x 1.0000000001E10 -byte utoa_append::digit#2 reg byte x 1.00050000015E10 -word utoa_append::return -word utoa_append::return#0 return zp[2]:5 2000002.0 -word utoa_append::sub -word utoa_append::sub#0 sub zp[2]:21 3.3335000005E9 -word utoa_append::value -word utoa_append::value#0 value zp[2]:5 3666667.333333333 -word utoa_append::value#1 value zp[2]:5 2.0000000002E10 -word utoa_append::value#2 value zp[2]:5 5.001833334166666E9 +char printf_uint::format_justify_left +char printf_uint::format_min_length +char printf_uint::format_radix +char printf_uint::format_sign_always +char printf_uint::format_upper_case +char printf_uint::format_zero_padding +unsigned int printf_uint::uvalue +unsigned int printf_uint::uvalue#0 // uvalue zp[2]:5 367.33333333333337 +void utoa(unsigned int value , char *buffer , char radix) +char utoa::$10 // reg byte a 2000002.0 +char utoa::$11 // reg byte x 20002.0 +char *utoa::buffer +char *utoa::buffer#11 // buffer zp[2]:23 287143.2857142857 +char *utoa::buffer#14 // buffer zp[2]:23 1500001.5 +char *utoa::buffer#3 // buffer zp[2]:23 20002.0 +char *utoa::buffer#4 // buffer zp[2]:23 2000002.0 +char utoa::digit +char utoa::digit#1 // digit zp[1]:4 2000002.0 +char utoa::digit#2 // digit zp[1]:4 285714.5714285714 +unsigned int utoa::digit_value +unsigned int utoa::digit_value#0 // digit_value zp[2]:21 600000.6000000001 +unsigned int *utoa::digit_values +char utoa::max_digits +__constant char utoa::max_digits#1 = 5 // max_digits +char utoa::radix +char utoa::started +char utoa::started#2 // reg byte x 500000.5 +char utoa::started#4 // reg byte x 1000001.0 +unsigned int utoa::value +unsigned int utoa::value#0 // value zp[2]:5 1000001.0 +unsigned int utoa::value#1 // value zp[2]:5 5501.0 +unsigned int utoa::value#2 // value zp[2]:5 572857.857142857 +unsigned int utoa::value#6 // value zp[2]:5 1500001.5 +unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) +char *utoa_append::buffer +char *utoa_append::buffer#0 // buffer zp[2]:23 1375000.25 +char utoa_append::digit +char utoa_append::digit#1 // reg byte x 1.0000000001E10 +char utoa_append::digit#2 // reg byte x 1.00050000015E10 +unsigned int utoa_append::return +unsigned int utoa_append::return#0 // return zp[2]:5 2000002.0 +unsigned int utoa_append::sub +unsigned int utoa_append::sub#0 // sub zp[2]:21 3.3335000005E9 +unsigned int utoa_append::value +unsigned int utoa_append::value#0 // value zp[2]:5 3666667.333333333 +unsigned int utoa_append::value#1 // value zp[2]:5 2.0000000002E10 +unsigned int utoa_append::value#2 // value zp[2]:5 5.001833334166666E9 reg byte x [ conio_c64_init::line#2 conio_c64_init::line#0 ] zp[2]:2 [ main::bbs#2 main::bbs#1 ] diff --git a/src/test/ref/weeip-checksum.asm b/src/test/ref/weeip-checksum.asm index 087f55469..24776b09e 100644 --- a/src/test/ref/weeip-checksum.asm +++ b/src/test/ref/weeip-checksum.asm @@ -12,7 +12,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const SIZEOF_UNION___0 = 2 .label SCREEN = $400 .label _b16 = 4 @@ -42,9 +42,9 @@ main: { jsr add_checksum // SCREEN[1] = chks.u lda chks - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda chks+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // add_checksum(0x3456) lda #<$3456 sta.z add_checksum.v @@ -53,9 +53,9 @@ main: { jsr add_checksum // SCREEN[1] = chks.u lda chks - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda chks+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // } rts } @@ -65,7 +65,7 @@ main: { * The result is found in chks. * @param v Value to sum. */ -// add_checksum(word zp(2) v) +// void add_checksum(__zp(2) unsigned int v) add_checksum: { .label __3 = 4 .label __6 = 6 diff --git a/src/test/ref/weeip-checksum.cfg b/src/test/ref/weeip-checksum.cfg index eb6c234d0..ca18aff10 100644 --- a/src/test/ref/weeip-checksum.cfg +++ b/src/test/ref/weeip-checksum.cfg @@ -1,51 +1,51 @@ void main() main: scope:[main] from - [0] *((word*)&chks) = 0 - [1] call add_checksum + [0] *((unsigned int *)&chks) = 0 + [1] call add_checksum to:main::@1 main::@1: scope:[main] from main - [2] *SCREEN = *((word*)&chks) - [3] call add_checksum + [2] *SCREEN = *((unsigned int *)&chks) + [3] call add_checksum to:main::@2 main::@2: scope:[main] from main::@1 - [4] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) - [5] call add_checksum + [4] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) + [5] call add_checksum to:main::@3 main::@3: scope:[main] from main::@2 - [6] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) + [6] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) to:main::@return main::@return: scope:[main] from main::@3 [7] return to:@return -void add_checksum(word add_checksum::v) +void add_checksum(unsigned int v) add_checksum: scope:[add_checksum] from main main::@1 main::@2 [8] add_checksum::v#3 = phi( main/$1234, main::@1/$2345, main::@2/$3456 ) - [9] _a#0 = *((byte*)&chks) + [9] _a#0 = *((char *)&chks) [10] add_checksum::$0 = byte1 add_checksum::v#3 - [11] add_checksum::$14 = (word)_a#0 + [11] add_checksum::$14 = (unsigned int)_a#0 [12] _b16#0 = add_checksum::$14 + add_checksum::$0 [13] _b#0 = byte0 _b16#0 [14] add_checksum::$3 = _b16#0 >> 8 [15] _c#0 = byte1 add_checksum::$3 - [16] *((byte*)&chks) = _b#0 - [17] _a#1 = *((byte*)&chks+1) + [16] *((char *)&chks) = _b#0 + [17] _a#1 = *((char *)&chks+1) [18] add_checksum::$5 = byte0 add_checksum::v#3 - [19] add_checksum::$15 = (word)_a#1 + [19] add_checksum::$15 = (unsigned int)_a#1 [20] add_checksum::$6 = add_checksum::$15 + add_checksum::$5 [21] _b16#1 = add_checksum::$6 + _c#0 [22] _b#1 = byte0 _b16#1 [23] _c#1 = byte1 _b16#1 - [24] *((byte*)&chks+1) = _b#1 + [24] *((char *)&chks+1) = _b#1 [25] if(0==_c#1) goto add_checksum::@return to:add_checksum::@1 add_checksum::@1: scope:[add_checksum] from add_checksum - [26] *((byte*)&chks) = ++ *((byte*)&chks) - [27] if(*((byte*)&chks)!=0) goto add_checksum::@return + [26] *((char *)&chks) = ++ *((char *)&chks) + [27] if(*((char *)&chks)!=0) goto add_checksum::@return to:add_checksum::@2 add_checksum::@2: scope:[add_checksum] from add_checksum::@1 - [28] *((byte*)&chks+1) = ++ *((byte*)&chks+1) + [28] *((char *)&chks+1) = ++ *((char *)&chks+1) to:add_checksum::@return add_checksum::@return: scope:[add_checksum] from add_checksum add_checksum::@1 add_checksum::@2 [29] return diff --git a/src/test/ref/weeip-checksum.log b/src/test/ref/weeip-checksum.log index 2e44f3d32..8cba3e1b2 100644 --- a/src/test/ref/weeip-checksum.log +++ b/src/test/ref/weeip-checksum.log @@ -2,16 +2,16 @@ Fixing struct type size union $0 to 2 Fixing struct type size union $0 to 2 Fixing struct type SIZE_OF union $0 to 2 Fixing struct type SIZE_OF union $0 to 2 -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA -void add_checksum(word add_checksum::v) +void add_checksum(unsigned int v) add_checksum: scope:[add_checksum] from main main::@1 main::@2 add_checksum::v#3 = phi( main/add_checksum::v#0, main::@1/add_checksum::v#1, main::@2/add_checksum::v#2 ) - _a#0 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] + _a#0 = ((char *)&chks+OFFSET_UNION_$0_B)[0] add_checksum::$0 = byte1 add_checksum::v#3 - add_checksum::$14 = (word)_a#0 + add_checksum::$14 = (unsigned int)_a#0 add_checksum::$1 = add_checksum::$14 + add_checksum::$0 _b16#0 = add_checksum::$1 add_checksum::$2 = byte0 _b16#0 @@ -19,10 +19,10 @@ add_checksum: scope:[add_checksum] from main main::@1 main::@2 add_checksum::$3 = _b16#0 >> 8 add_checksum::$4 = byte1 add_checksum::$3 _c#0 = add_checksum::$4 - ((byte*)&chks+OFFSET_UNION_$0_B)[0] = _b#0 - _a#1 = ((byte*)&chks+OFFSET_UNION_$0_B)[1] + ((char *)&chks+OFFSET_UNION_$0_B)[0] = _b#0 + _a#1 = ((char *)&chks+OFFSET_UNION_$0_B)[1] add_checksum::$5 = byte0 add_checksum::v#3 - add_checksum::$15 = (word)_a#1 + add_checksum::$15 = (unsigned int)_a#1 add_checksum::$6 = add_checksum::$15 + add_checksum::$5 add_checksum::$7 = add_checksum::$6 + _c#0 _b16#1 = add_checksum::$7 @@ -30,7 +30,7 @@ add_checksum: scope:[add_checksum] from main main::@1 main::@2 _b#1 = add_checksum::$8 add_checksum::$9 = byte1 _b16#1 _c#1 = add_checksum::$9 - ((byte*)&chks+OFFSET_UNION_$0_B)[1] = _b#1 + ((char *)&chks+OFFSET_UNION_$0_B)[1] = _b#1 add_checksum::$16 = 0 != _c#1 add_checksum::$10 = ! add_checksum::$16 if(add_checksum::$10) goto add_checksum::@return @@ -40,8 +40,8 @@ add_checksum::@1: scope:[add_checksum] from add_checksum _b#17 = phi( add_checksum/_b#1 ) _b16#17 = phi( add_checksum/_b16#1 ) _a#17 = phi( add_checksum/_a#1 ) - ((byte*)&chks+OFFSET_UNION_$0_B)[0] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[0] - add_checksum::$11 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] == 0 + ((char *)&chks+OFFSET_UNION_$0_B)[0] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[0] + add_checksum::$11 = ((char *)&chks+OFFSET_UNION_$0_B)[0] == 0 add_checksum::$12 = ! add_checksum::$11 if(add_checksum::$12) goto add_checksum::@return to:add_checksum::@2 @@ -50,7 +50,7 @@ add_checksum::@2: scope:[add_checksum] from add_checksum::@1 _b#18 = phi( add_checksum::@1/_b#17 ) _b16#18 = phi( add_checksum::@1/_b16#17 ) _a#18 = phi( add_checksum::@1/_a#17 ) - ((byte*)&chks+OFFSET_UNION_$0_B)[1] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[1] + ((char *)&chks+OFFSET_UNION_$0_B)[1] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[1] to:add_checksum::@return add_checksum::@return: scope:[add_checksum] from add_checksum add_checksum::@1 add_checksum::@2 _c#10 = phi( add_checksum/_c#1, add_checksum::@1/_c#17, add_checksum::@2/_c#18 ) @@ -70,9 +70,9 @@ main: scope:[main] from __start::@1 _b#19 = phi( __start::@1/_b#20 ) _b16#19 = phi( __start::@1/_b16#20 ) _a#19 = phi( __start::@1/_a#20 ) - *((word*)&chks+OFFSET_UNION_$0_U) = 0 + *((unsigned int *)&chks+OFFSET_UNION_$0_U) = 0 add_checksum::v#0 = $1234 - call add_checksum + call add_checksum to:main::@1 main::@1: scope:[main] from main _c#11 = phi( main/_c#2 ) @@ -83,10 +83,10 @@ main::@1: scope:[main] from main _b16#3 = _b16#11 _b#3 = _b#11 _c#3 = _c#11 - main::$3 = 0 * SIZEOF_WORD - SCREEN[main::$3] = *((word*)&chks+OFFSET_UNION_$0_U) + main::$3 = 0 * SIZEOF_UNSIGNED_INT + SCREEN[main::$3] = *((unsigned int *)&chks+OFFSET_UNION_$0_U) add_checksum::v#1 = $2345 - call add_checksum + call add_checksum to:main::@2 main::@2: scope:[main] from main::@1 _c#12 = phi( main::@1/_c#2 ) @@ -97,10 +97,10 @@ main::@2: scope:[main] from main::@1 _b16#4 = _b16#12 _b#4 = _b#12 _c#4 = _c#12 - main::$4 = 1 * SIZEOF_WORD - SCREEN[main::$4] = *((word*)&chks+OFFSET_UNION_$0_U) + main::$4 = 1 * SIZEOF_UNSIGNED_INT + SCREEN[main::$4] = *((unsigned int *)&chks+OFFSET_UNION_$0_U) add_checksum::v#2 = $3456 - call add_checksum + call add_checksum to:main::@3 main::@3: scope:[main] from main::@2 _c#13 = phi( main::@2/_c#2 ) @@ -111,8 +111,8 @@ main::@3: scope:[main] from main::@2 _b16#5 = _b16#13 _b#5 = _b#13 _c#5 = _c#13 - main::$5 = 1 * SIZEOF_WORD - SCREEN[main::$5] = *((word*)&chks+OFFSET_UNION_$0_U) + main::$5 = 1 * SIZEOF_UNSIGNED_INT + SCREEN[main::$5] = *((unsigned int *)&chks+OFFSET_UNION_$0_U) to:main::@return main::@return: scope:[main] from main::@3 _c#14 = phi( main::@3/_c#5 ) @@ -140,7 +140,7 @@ __start::@1: scope:[__start] from __start::__init1 _b#20 = phi( __start::__init1/_b#7 ) _b16#20 = phi( __start::__init1/_b16#7 ) _a#20 = phi( __start::__init1/_a#7 ) - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 _c#15 = phi( __start::@1/_c#6 ) @@ -165,156 +165,156 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte OFFSET_UNION_$0_B = 0 -constant byte OFFSET_UNION_$0_U = 0 -constant word* const SCREEN = (word*)$400 -constant byte SIZEOF_WORD = 2 +__constant char OFFSET_UNION_$0_B = 0 +__constant char OFFSET_UNION_$0_U = 0 +__constant unsigned int * const SCREEN = (unsigned int *)$400 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() -byte _a -byte _a#0 -byte _a#1 -byte _a#10 -byte _a#11 -byte _a#12 -byte _a#13 -byte _a#14 -byte _a#15 -byte _a#16 -byte _a#17 -byte _a#18 -byte _a#19 -byte _a#2 -byte _a#20 -byte _a#3 -byte _a#4 -byte _a#5 -byte _a#6 -byte _a#7 -byte _a#8 -byte _a#9 -byte _b -byte _b#0 -byte _b#1 -byte _b#10 -byte _b#11 -byte _b#12 -byte _b#13 -byte _b#14 -byte _b#15 -byte _b#16 -byte _b#17 -byte _b#18 -byte _b#19 -byte _b#2 -byte _b#20 -byte _b#3 -byte _b#4 -byte _b#5 -byte _b#6 -byte _b#7 -byte _b#8 -byte _b#9 -word _b16 -word _b16#0 -word _b16#1 -word _b16#10 -word _b16#11 -word _b16#12 -word _b16#13 -word _b16#14 -word _b16#15 -word _b16#16 -word _b16#17 -word _b16#18 -word _b16#19 -word _b16#2 -word _b16#20 -word _b16#3 -word _b16#4 -word _b16#5 -word _b16#6 -word _b16#7 -word _b16#8 -word _b16#9 -byte _c -byte _c#0 -byte _c#1 -byte _c#10 -byte _c#11 -byte _c#12 -byte _c#13 -byte _c#14 -byte _c#15 -byte _c#16 -byte _c#17 -byte _c#18 -byte _c#19 -byte _c#2 -byte _c#20 -byte _c#3 -byte _c#4 -byte _c#5 -byte _c#6 -byte _c#7 -byte _c#8 -byte _c#9 -void add_checksum(word add_checksum::v) -byte~ add_checksum::$0 -word~ add_checksum::$1 -bool~ add_checksum::$10 -bool~ add_checksum::$11 -bool~ add_checksum::$12 -word~ add_checksum::$14 -word~ add_checksum::$15 -bool~ add_checksum::$16 -byte~ add_checksum::$2 -word~ add_checksum::$3 -byte~ add_checksum::$4 -byte~ add_checksum::$5 -word~ add_checksum::$6 -word~ add_checksum::$7 -byte~ add_checksum::$8 -byte~ add_checksum::$9 -word add_checksum::v -word add_checksum::v#0 -word add_checksum::v#1 -word add_checksum::v#2 -word add_checksum::v#3 -union $0 chks loadstore = {} +char _a +char _a#0 +char _a#1 +char _a#10 +char _a#11 +char _a#12 +char _a#13 +char _a#14 +char _a#15 +char _a#16 +char _a#17 +char _a#18 +char _a#19 +char _a#2 +char _a#20 +char _a#3 +char _a#4 +char _a#5 +char _a#6 +char _a#7 +char _a#8 +char _a#9 +char _b +char _b#0 +char _b#1 +char _b#10 +char _b#11 +char _b#12 +char _b#13 +char _b#14 +char _b#15 +char _b#16 +char _b#17 +char _b#18 +char _b#19 +char _b#2 +char _b#20 +char _b#3 +char _b#4 +char _b#5 +char _b#6 +char _b#7 +char _b#8 +char _b#9 +unsigned int _b16 +unsigned int _b16#0 +unsigned int _b16#1 +unsigned int _b16#10 +unsigned int _b16#11 +unsigned int _b16#12 +unsigned int _b16#13 +unsigned int _b16#14 +unsigned int _b16#15 +unsigned int _b16#16 +unsigned int _b16#17 +unsigned int _b16#18 +unsigned int _b16#19 +unsigned int _b16#2 +unsigned int _b16#20 +unsigned int _b16#3 +unsigned int _b16#4 +unsigned int _b16#5 +unsigned int _b16#6 +unsigned int _b16#7 +unsigned int _b16#8 +unsigned int _b16#9 +char _c +char _c#0 +char _c#1 +char _c#10 +char _c#11 +char _c#12 +char _c#13 +char _c#14 +char _c#15 +char _c#16 +char _c#17 +char _c#18 +char _c#19 +char _c#2 +char _c#20 +char _c#3 +char _c#4 +char _c#5 +char _c#6 +char _c#7 +char _c#8 +char _c#9 +void add_checksum(unsigned int v) +char add_checksum::$0 +unsigned int add_checksum::$1 +bool add_checksum::$10 +bool add_checksum::$11 +bool add_checksum::$12 +unsigned int add_checksum::$14 +unsigned int add_checksum::$15 +bool add_checksum::$16 +char add_checksum::$2 +unsigned int add_checksum::$3 +char add_checksum::$4 +char add_checksum::$5 +unsigned int add_checksum::$6 +unsigned int add_checksum::$7 +char add_checksum::$8 +char add_checksum::$9 +unsigned int add_checksum::v +unsigned int add_checksum::v#0 +unsigned int add_checksum::v#1 +unsigned int add_checksum::v#2 +unsigned int add_checksum::v#3 +__loadstore union $0 chks = {} void main() -number~ main::$3 -number~ main::$4 -number~ main::$5 +number main::$3 +number main::$4 +number main::$5 -Adding number conversion cast (unumber) 0 in _a#0 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] +Adding number conversion cast (unumber) 0 in _a#0 = ((char *)&chks+OFFSET_UNION_$0_B)[0] Adding number conversion cast (unumber) 8 in add_checksum::$3 = _b16#0 >> 8 -Adding number conversion cast (unumber) 0 in ((byte*)&chks+OFFSET_UNION_$0_B)[0] = _b#0 -Adding number conversion cast (unumber) 1 in _a#1 = ((byte*)&chks+OFFSET_UNION_$0_B)[1] -Adding number conversion cast (unumber) 1 in ((byte*)&chks+OFFSET_UNION_$0_B)[1] = _b#1 +Adding number conversion cast (unumber) 0 in ((char *)&chks+OFFSET_UNION_$0_B)[0] = _b#0 +Adding number conversion cast (unumber) 1 in _a#1 = ((char *)&chks+OFFSET_UNION_$0_B)[1] +Adding number conversion cast (unumber) 1 in ((char *)&chks+OFFSET_UNION_$0_B)[1] = _b#1 Adding number conversion cast (unumber) 0 in add_checksum::$16 = 0 != _c#1 -Adding number conversion cast (unumber) 0 in ((byte*)&chks+OFFSET_UNION_$0_B)[0] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[0] -Adding number conversion cast (unumber) 0 in ((byte*)&chks+OFFSET_UNION_$0_B)[0] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[(unumber)0] -Adding number conversion cast (unumber) 0 in add_checksum::$11 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] == 0 -Adding number conversion cast (unumber) 0 in add_checksum::$11 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] == (unumber)0 -Adding number conversion cast (unumber) 1 in ((byte*)&chks+OFFSET_UNION_$0_B)[1] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[1] -Adding number conversion cast (unumber) 1 in ((byte*)&chks+OFFSET_UNION_$0_B)[1] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[(unumber)1] -Adding number conversion cast (unumber) 0 in *((word*)&chks+OFFSET_UNION_$0_U) = 0 +Adding number conversion cast (unumber) 0 in ((char *)&chks+OFFSET_UNION_$0_B)[0] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[0] +Adding number conversion cast (unumber) 0 in ((char *)&chks+OFFSET_UNION_$0_B)[0] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[(unumber)0] +Adding number conversion cast (unumber) 0 in add_checksum::$11 = ((char *)&chks+OFFSET_UNION_$0_B)[0] == 0 +Adding number conversion cast (unumber) 0 in add_checksum::$11 = ((char *)&chks+OFFSET_UNION_$0_B)[0] == (unumber)0 +Adding number conversion cast (unumber) 1 in ((char *)&chks+OFFSET_UNION_$0_B)[1] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[1] +Adding number conversion cast (unumber) 1 in ((char *)&chks+OFFSET_UNION_$0_B)[1] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[(unumber)1] +Adding number conversion cast (unumber) 0 in *((unsigned int *)&chks+OFFSET_UNION_$0_U) = 0 Adding number conversion cast (unumber) $1234 in add_checksum::v#0 = $1234 -Adding number conversion cast (unumber) 0 in main::$3 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$3 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)0 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) $2345 in add_checksum::v#1 = $2345 -Adding number conversion cast (unumber) 1 in main::$4 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$4 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) $3456 in add_checksum::v#2 = $3456 -Adding number conversion cast (unumber) 1 in main::$5 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$5 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)1 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast *((word*)&chks+OFFSET_UNION_$0_U) = (unumber)0 +Inlining cast *((unsigned int *)&chks+OFFSET_UNION_$0_U) = (unumber)0 Inlining cast add_checksum::v#0 = (unumber)$1234 Inlining cast add_checksum::v#1 = (unumber)$2345 Inlining cast add_checksum::v#2 = (unumber)$3456 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast 0 @@ -335,31 +335,31 @@ Simplifying constant integer cast 1 Simplifying constant integer cast $3456 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $1234 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (word) $2345 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (word) $3456 -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $1234 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned int) $2345 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (unsigned int) $3456 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$3 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$4 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$5 = 1 * SIZEOF_WORD +Inferred type updated to char in main::$3 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$4 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$5 = 1 * SIZEOF_UNSIGNED_INT Inversing boolean not [24] add_checksum::$10 = 0 == _c#1 from [23] add_checksum::$16 = 0 != _c#1 -Inversing boolean not [29] add_checksum::$12 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] != 0 from [28] add_checksum::$11 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] == 0 +Inversing boolean not [29] add_checksum::$12 = ((char *)&chks+OFFSET_UNION_$0_B)[0] != 0 from [28] add_checksum::$11 = ((char *)&chks+OFFSET_UNION_$0_B)[0] == 0 Successful SSA optimization Pass2UnaryNotSimplification Alias _b16#0 = add_checksum::$1 Alias _b#0 = add_checksum::$2 @@ -420,44 +420,44 @@ Identical Phi Values _b#15 _b#13 Identical Phi Values _c#15 _c#13 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition add_checksum::$10 [18] if(0==_c#1) goto add_checksum::@return -Simple Condition add_checksum::$12 [21] if(((byte*)&chks+OFFSET_UNION_$0_B)[0]!=0) goto add_checksum::@return +Simple Condition add_checksum::$12 [21] if(((char *)&chks+OFFSET_UNION_$0_B)[0]!=0) goto add_checksum::@return Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [29] main::$3 = 0 * SIZEOF_WORD -Constant right-side identified [34] main::$4 = 1 * SIZEOF_WORD -Constant right-side identified [39] main::$5 = 1 * SIZEOF_WORD +Constant right-side identified [29] main::$3 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [34] main::$4 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [39] main::$5 = 1 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant add_checksum::v#0 = $1234 -Constant main::$3 = 0*SIZEOF_WORD +Constant main::$3 = 0*SIZEOF_UNSIGNED_INT Constant add_checksum::v#1 = $2345 -Constant main::$4 = 1*SIZEOF_WORD +Constant main::$4 = 1*SIZEOF_UNSIGNED_INT Constant add_checksum::v#2 = $3456 -Constant main::$5 = 1*SIZEOF_WORD +Constant main::$5 = 1*SIZEOF_UNSIGNED_INT Constant _a#20 = 0 Constant _b#20 = 0 Constant _c#20 = 0 Constant _b16#20 = 0 Successful SSA optimization Pass2ConstantIdentification -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)&chks+OFFSET_UNION_$0_B in [1] _a#0 = ((byte*)&chks+OFFSET_UNION_$0_B)[0] -Simplifying expression containing zero (byte*)&chks in [1] _a#0 = *((byte*)&chks+OFFSET_UNION_$0_B) -Simplifying expression containing zero (byte*)&chks+OFFSET_UNION_$0_B in [8] ((byte*)&chks+OFFSET_UNION_$0_B)[0] = _b#0 -Simplifying expression containing zero (byte*)&chks in [8] *((byte*)&chks+OFFSET_UNION_$0_B) = _b#0 -Simplifying expression containing zero (byte*)&chks in [9] _a#1 = ((byte*)&chks+OFFSET_UNION_$0_B)[1] -Simplifying expression containing zero (byte*)&chks in [16] ((byte*)&chks+OFFSET_UNION_$0_B)[1] = _b#1 -Simplifying expression containing zero (byte*)&chks+OFFSET_UNION_$0_B in [19] ((byte*)&chks+OFFSET_UNION_$0_B)[0] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[0] -Simplifying expression containing zero (byte*)&chks in [19] ((byte*)&chks+OFFSET_UNION_$0_B)[0] = ++ *((byte*)&chks+OFFSET_UNION_$0_B) -Simplifying expression containing zero (byte*)&chks+OFFSET_UNION_$0_B in [19] ((byte*)&chks+OFFSET_UNION_$0_B)[0] = ++ *((byte*)&chks) -Simplifying expression containing zero (byte*)&chks in [19] *((byte*)&chks+OFFSET_UNION_$0_B) = ++ *((byte*)&chks) -Simplifying expression containing zero (byte*)&chks+OFFSET_UNION_$0_B in [21] if(((byte*)&chks+OFFSET_UNION_$0_B)[0]!=0) goto add_checksum::@return -Simplifying expression containing zero (byte*)&chks in [21] if(*((byte*)&chks+OFFSET_UNION_$0_B)!=0) goto add_checksum::@return -Simplifying expression containing zero (byte*)&chks in [22] ((byte*)&chks+OFFSET_UNION_$0_B)[1] = ++ ((byte*)&chks+OFFSET_UNION_$0_B)[1] -Simplifying expression containing zero (byte*)&chks in [22] ((byte*)&chks+OFFSET_UNION_$0_B)[1] = ++ ((byte*)&chks)[1] -Simplifying expression containing zero (word*)&chks in [25] *((word*)&chks+OFFSET_UNION_$0_U) = 0 -Simplifying expression containing zero (word*)&chks in [30] SCREEN[main::$3] = *((word*)&chks+OFFSET_UNION_$0_U) -Simplifying expression containing zero SCREEN in [30] SCREEN[main::$3] = *((word*)&chks) -Simplifying expression containing zero (word*)&chks in [35] SCREEN[main::$4] = *((word*)&chks+OFFSET_UNION_$0_U) -Simplifying expression containing zero (word*)&chks in [40] SCREEN[main::$5] = *((word*)&chks+OFFSET_UNION_$0_U) +Simplifying expression containing zero (char *)&chks+OFFSET_UNION_$0_B in [1] _a#0 = ((char *)&chks+OFFSET_UNION_$0_B)[0] +Simplifying expression containing zero (char *)&chks in [1] _a#0 = *((char *)&chks+OFFSET_UNION_$0_B) +Simplifying expression containing zero (char *)&chks+OFFSET_UNION_$0_B in [8] ((char *)&chks+OFFSET_UNION_$0_B)[0] = _b#0 +Simplifying expression containing zero (char *)&chks in [8] *((char *)&chks+OFFSET_UNION_$0_B) = _b#0 +Simplifying expression containing zero (char *)&chks in [9] _a#1 = ((char *)&chks+OFFSET_UNION_$0_B)[1] +Simplifying expression containing zero (char *)&chks in [16] ((char *)&chks+OFFSET_UNION_$0_B)[1] = _b#1 +Simplifying expression containing zero (char *)&chks+OFFSET_UNION_$0_B in [19] ((char *)&chks+OFFSET_UNION_$0_B)[0] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[0] +Simplifying expression containing zero (char *)&chks in [19] ((char *)&chks+OFFSET_UNION_$0_B)[0] = ++ *((char *)&chks+OFFSET_UNION_$0_B) +Simplifying expression containing zero (char *)&chks+OFFSET_UNION_$0_B in [19] ((char *)&chks+OFFSET_UNION_$0_B)[0] = ++ *((char *)&chks) +Simplifying expression containing zero (char *)&chks in [19] *((char *)&chks+OFFSET_UNION_$0_B) = ++ *((char *)&chks) +Simplifying expression containing zero (char *)&chks+OFFSET_UNION_$0_B in [21] if(((char *)&chks+OFFSET_UNION_$0_B)[0]!=0) goto add_checksum::@return +Simplifying expression containing zero (char *)&chks in [21] if(*((char *)&chks+OFFSET_UNION_$0_B)!=0) goto add_checksum::@return +Simplifying expression containing zero (char *)&chks in [22] ((char *)&chks+OFFSET_UNION_$0_B)[1] = ++ ((char *)&chks+OFFSET_UNION_$0_B)[1] +Simplifying expression containing zero (char *)&chks in [22] ((char *)&chks+OFFSET_UNION_$0_B)[1] = ++ ((char *)&chks)[1] +Simplifying expression containing zero (unsigned int *)&chks in [25] *((unsigned int *)&chks+OFFSET_UNION_$0_U) = 0 +Simplifying expression containing zero (unsigned int *)&chks in [30] SCREEN[main::$3] = *((unsigned int *)&chks+OFFSET_UNION_$0_U) +Simplifying expression containing zero SCREEN in [30] SCREEN[main::$3] = *((unsigned int *)&chks) +Simplifying expression containing zero (unsigned int *)&chks in [35] SCREEN[main::$4] = *((unsigned int *)&chks+OFFSET_UNION_$0_U) +Simplifying expression containing zero (unsigned int *)&chks in [40] SCREEN[main::$5] = *((unsigned int *)&chks+OFFSET_UNION_$0_U) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$3 Eliminating unused constant OFFSET_UNION_$0_B @@ -477,21 +477,21 @@ Successful SSA optimization PassNEliminateEmptyStart Inlining constant with var siblings add_checksum::v#0 Inlining constant with var siblings add_checksum::v#1 Inlining constant with var siblings add_checksum::v#2 -Constant inlined main::$5 = 1*SIZEOF_WORD +Constant inlined main::$5 = 1*SIZEOF_UNSIGNED_INT Constant inlined add_checksum::v#1 = $2345 Constant inlined add_checksum::v#0 = $1234 -Constant inlined main::$4 = 1*SIZEOF_WORD +Constant inlined main::$4 = 1*SIZEOF_UNSIGNED_INT Constant inlined add_checksum::v#2 = $3456 Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)&chks+1) -Consolidated array index constant in *((byte*)&chks+1) -Consolidated array index constant in *((byte*)&chks+1) -Consolidated array index constant in *((byte*)&chks+1) -Consolidated array index constant in *(SCREEN+1*SIZEOF_WORD) -Consolidated array index constant in *(SCREEN+1*SIZEOF_WORD) +Consolidated array index constant in *((char *)&chks+1) +Consolidated array index constant in *((char *)&chks+1) +Consolidated array index constant in *((char *)&chks+1) +Consolidated array index constant in *((char *)&chks+1) +Consolidated array index constant in *(SCREEN+1*SIZEOF_UNSIGNED_INT) +Consolidated array index constant in *(SCREEN+1*SIZEOF_UNSIGNED_INT) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH Calls in [main] to add_checksum:1 add_checksum:3 add_checksum:5 @@ -503,51 +503,51 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((word*)&chks) = 0 - [1] call add_checksum + [0] *((unsigned int *)&chks) = 0 + [1] call add_checksum to:main::@1 main::@1: scope:[main] from main - [2] *SCREEN = *((word*)&chks) - [3] call add_checksum + [2] *SCREEN = *((unsigned int *)&chks) + [3] call add_checksum to:main::@2 main::@2: scope:[main] from main::@1 - [4] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) - [5] call add_checksum + [4] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) + [5] call add_checksum to:main::@3 main::@3: scope:[main] from main::@2 - [6] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) + [6] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) to:main::@return main::@return: scope:[main] from main::@3 [7] return to:@return -void add_checksum(word add_checksum::v) +void add_checksum(unsigned int v) add_checksum: scope:[add_checksum] from main main::@1 main::@2 [8] add_checksum::v#3 = phi( main/$1234, main::@1/$2345, main::@2/$3456 ) - [9] _a#0 = *((byte*)&chks) + [9] _a#0 = *((char *)&chks) [10] add_checksum::$0 = byte1 add_checksum::v#3 - [11] add_checksum::$14 = (word)_a#0 + [11] add_checksum::$14 = (unsigned int)_a#0 [12] _b16#0 = add_checksum::$14 + add_checksum::$0 [13] _b#0 = byte0 _b16#0 [14] add_checksum::$3 = _b16#0 >> 8 [15] _c#0 = byte1 add_checksum::$3 - [16] *((byte*)&chks) = _b#0 - [17] _a#1 = *((byte*)&chks+1) + [16] *((char *)&chks) = _b#0 + [17] _a#1 = *((char *)&chks+1) [18] add_checksum::$5 = byte0 add_checksum::v#3 - [19] add_checksum::$15 = (word)_a#1 + [19] add_checksum::$15 = (unsigned int)_a#1 [20] add_checksum::$6 = add_checksum::$15 + add_checksum::$5 [21] _b16#1 = add_checksum::$6 + _c#0 [22] _b#1 = byte0 _b16#1 [23] _c#1 = byte1 _b16#1 - [24] *((byte*)&chks+1) = _b#1 + [24] *((char *)&chks+1) = _b#1 [25] if(0==_c#1) goto add_checksum::@return to:add_checksum::@1 add_checksum::@1: scope:[add_checksum] from add_checksum - [26] *((byte*)&chks) = ++ *((byte*)&chks) - [27] if(*((byte*)&chks)!=0) goto add_checksum::@return + [26] *((char *)&chks) = ++ *((char *)&chks) + [27] if(*((char *)&chks)!=0) goto add_checksum::@return to:add_checksum::@2 add_checksum::@2: scope:[add_checksum] from add_checksum::@1 - [28] *((byte*)&chks+1) = ++ *((byte*)&chks+1) + [28] *((char *)&chks+1) = ++ *((char *)&chks+1) to:add_checksum::@return add_checksum::@return: scope:[add_checksum] from add_checksum add_checksum::@1 add_checksum::@2 [29] return @@ -555,28 +555,28 @@ add_checksum::@return: scope:[add_checksum] from add_checksum add_checksum::@1 VARIABLE REGISTER WEIGHTS -byte _a -byte _a#0 5.5 -byte _a#1 5.5 -byte _b -byte _b#0 7.333333333333333 -byte _b#1 11.0 -word _b16 -word _b16#0 16.5 -word _b16#1 16.5 -byte _c -byte _c#0 3.6666666666666665 -byte _c#1 11.0 -void add_checksum(word add_checksum::v) -byte~ add_checksum::$0 11.0 -word~ add_checksum::$14 22.0 -word~ add_checksum::$15 22.0 -word~ add_checksum::$3 22.0 -byte~ add_checksum::$5 11.0 -word~ add_checksum::$6 22.0 -word add_checksum::v -word add_checksum::v#3 2.2 -union $0 chks loadstore = {} +char _a +char _a#0 // 5.5 +char _a#1 // 5.5 +char _b +char _b#0 // 7.333333333333333 +char _b#1 // 11.0 +unsigned int _b16 +unsigned int _b16#0 // 16.5 +unsigned int _b16#1 // 16.5 +char _c +char _c#0 // 3.6666666666666665 +char _c#1 // 11.0 +void add_checksum(unsigned int v) +char add_checksum::$0 // 11.0 +unsigned int add_checksum::$14 // 22.0 +unsigned int add_checksum::$15 // 22.0 +unsigned int add_checksum::$3 // 22.0 +char add_checksum::$5 // 11.0 +unsigned int add_checksum::$6 // 22.0 +unsigned int add_checksum::v +unsigned int add_checksum::v#3 // 2.2 +__loadstore union $0 chks = {} void main() Initial phi equivalence classes @@ -630,32 +630,32 @@ Allocated zp[1]:22 [ _b#1 ] Allocated zp[1]:23 [ _c#1 ] Allocated mem[2] [ chks ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((word*)&chks) = 0 [ chks ] ( [ chks ] { } ) always clobbers reg byte a -Statement [2] *SCREEN = *((word*)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a -Statement [6] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] add_checksum::$14 = (word)_a#0 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] ( add_checksum:1 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:3 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:5 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } ) always clobbers reg byte a +Statement [0] *((unsigned int *)&chks) = 0 [ chks ] ( [ chks ] { } ) always clobbers reg byte a +Statement [2] *SCREEN = *((unsigned int *)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] add_checksum::$14 = (unsigned int)_a#0 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] ( add_checksum:1 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:3 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:5 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ add_checksum::$0 ] Statement [12] _b16#0 = add_checksum::$14 + add_checksum::$0 [ chks add_checksum::v#3 _b16#0 ] ( add_checksum:1 [ chks add_checksum::v#3 _b16#0 ] { } add_checksum:3 [ chks add_checksum::v#3 _b16#0 ] { } add_checksum:5 [ chks add_checksum::v#3 _b16#0 ] { } ) always clobbers reg byte a Statement [14] add_checksum::$3 = _b16#0 >> 8 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] ( add_checksum:1 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] { } add_checksum:3 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] { } add_checksum:5 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ _b#0 ] -Statement [19] add_checksum::$15 = (word)_a#1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] ( add_checksum:1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:3 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:5 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } ) always clobbers reg byte a +Statement [19] add_checksum::$15 = (unsigned int)_a#1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] ( add_checksum:1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:3 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:5 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:13 [ _c#0 ] Removing always clobbered register reg byte a as potential for zp[1]:15 [ add_checksum::$5 ] Statement [20] add_checksum::$6 = add_checksum::$15 + add_checksum::$5 [ chks _c#0 add_checksum::$6 ] ( add_checksum:1 [ chks _c#0 add_checksum::$6 ] { } add_checksum:3 [ chks _c#0 add_checksum::$6 ] { } add_checksum:5 [ chks _c#0 add_checksum::$6 ] { } ) always clobbers reg byte a Statement [21] _b16#1 = add_checksum::$6 + _c#0 [ chks _b16#1 ] ( add_checksum:1 [ chks _b16#1 ] { } add_checksum:3 [ chks _b16#1 ] { } add_checksum:5 [ chks _b16#1 ] { } ) always clobbers reg byte a -Statement [27] if(*((byte*)&chks)!=0) goto add_checksum::@return [ chks ] ( add_checksum:1 [ chks ] { } add_checksum:3 [ chks ] { } add_checksum:5 [ chks ] { } ) always clobbers reg byte a -Statement [0] *((word*)&chks) = 0 [ chks ] ( [ chks ] { } ) always clobbers reg byte a -Statement [2] *SCREEN = *((word*)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a -Statement [6] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [11] add_checksum::$14 = (word)_a#0 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] ( add_checksum:1 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:3 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:5 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } ) always clobbers reg byte a +Statement [27] if(*((char *)&chks)!=0) goto add_checksum::@return [ chks ] ( add_checksum:1 [ chks ] { } add_checksum:3 [ chks ] { } add_checksum:5 [ chks ] { } ) always clobbers reg byte a +Statement [0] *((unsigned int *)&chks) = 0 [ chks ] ( [ chks ] { } ) always clobbers reg byte a +Statement [2] *SCREEN = *((unsigned int *)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) [ chks ] ( [ chks ] { } ) always clobbers reg byte a +Statement [6] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] add_checksum::$14 = (unsigned int)_a#0 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] ( add_checksum:1 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:3 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } add_checksum:5 [ chks add_checksum::v#3 add_checksum::$0 add_checksum::$14 ] { } ) always clobbers reg byte a Statement [12] _b16#0 = add_checksum::$14 + add_checksum::$0 [ chks add_checksum::v#3 _b16#0 ] ( add_checksum:1 [ chks add_checksum::v#3 _b16#0 ] { } add_checksum:3 [ chks add_checksum::v#3 _b16#0 ] { } add_checksum:5 [ chks add_checksum::v#3 _b16#0 ] { } ) always clobbers reg byte a Statement [14] add_checksum::$3 = _b16#0 >> 8 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] ( add_checksum:1 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] { } add_checksum:3 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] { } add_checksum:5 [ chks add_checksum::v#3 _b#0 add_checksum::$3 ] { } ) always clobbers reg byte a -Statement [19] add_checksum::$15 = (word)_a#1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] ( add_checksum:1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:3 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:5 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } ) always clobbers reg byte a +Statement [19] add_checksum::$15 = (unsigned int)_a#1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] ( add_checksum:1 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:3 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } add_checksum:5 [ chks _c#0 add_checksum::$5 add_checksum::$15 ] { } ) always clobbers reg byte a Statement [20] add_checksum::$6 = add_checksum::$15 + add_checksum::$5 [ chks _c#0 add_checksum::$6 ] ( add_checksum:1 [ chks _c#0 add_checksum::$6 ] { } add_checksum:3 [ chks _c#0 add_checksum::$6 ] { } add_checksum:5 [ chks _c#0 add_checksum::$6 ] { } ) always clobbers reg byte a Statement [21] _b16#1 = add_checksum::$6 + _c#0 [ chks _b16#1 ] ( add_checksum:1 [ chks _b16#1 ] { } add_checksum:3 [ chks _b16#1 ] { } add_checksum:5 [ chks _b16#1 ] { } ) always clobbers reg byte a -Statement [27] if(*((byte*)&chks)!=0) goto add_checksum::@return [ chks ] ( add_checksum:1 [ chks ] { } add_checksum:3 [ chks ] { } add_checksum:5 [ chks ] { } ) always clobbers reg byte a +Statement [27] if(*((char *)&chks)!=0) goto add_checksum::@return [ chks ] ( add_checksum:1 [ chks ] { } add_checksum:3 [ chks ] { } add_checksum:5 [ chks ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ add_checksum::v#3 ] : zp[2]:2 , Potential registers zp[1]:4 [ _a#0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:5 [ add_checksum::$0 ] : zp[1]:5 , reg byte x , reg byte y , @@ -713,7 +713,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const SIZEOF_UNION___0 = 2 .label SCREEN = $400 .label _b16 = 4 @@ -721,12 +721,12 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((word*)&chks) = 0 -- _deref_pwuc1=vbuc2 + // [0] *((unsigned int *)&chks) = 0 -- _deref_pwuc1=vbuc2 lda #<0 sta chks lda #>0 sta chks+1 - // [1] call add_checksum + // [1] call add_checksum // [8] phi from main to add_checksum [phi:main->add_checksum] add_checksum_from_main: // [8] phi add_checksum::v#3 = $1234 [phi:main->add_checksum#0] -- vwuz1=vwuc1 @@ -738,12 +738,12 @@ main: { jmp __b1 // main::@1 __b1: - // [2] *SCREEN = *((word*)&chks) -- _deref_pwuc1=_deref_pwuc2 + // [2] *SCREEN = *((unsigned int *)&chks) -- _deref_pwuc1=_deref_pwuc2 lda chks sta SCREEN lda chks+1 sta SCREEN+1 - // [3] call add_checksum + // [3] call add_checksum // [8] phi from main::@1 to add_checksum [phi:main::@1->add_checksum] add_checksum_from___b1: // [8] phi add_checksum::v#3 = $2345 [phi:main::@1->add_checksum#0] -- vwuz1=vwuc1 @@ -755,12 +755,12 @@ main: { jmp __b2 // main::@2 __b2: - // [4] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) -- _deref_pwuc1=_deref_pwuc2 + // [4] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) -- _deref_pwuc1=_deref_pwuc2 lda chks - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda chks+1 - sta SCREEN+1*SIZEOF_WORD+1 - // [5] call add_checksum + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 + // [5] call add_checksum // [8] phi from main::@2 to add_checksum [phi:main::@2->add_checksum] add_checksum_from___b2: // [8] phi add_checksum::v#3 = $3456 [phi:main::@2->add_checksum#0] -- vwuz1=vwuc1 @@ -772,11 +772,11 @@ main: { jmp __b3 // main::@3 __b3: - // [6] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) -- _deref_pwuc1=_deref_pwuc2 + // [6] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) -- _deref_pwuc1=_deref_pwuc2 lda chks - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda chks+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 jmp __breturn // main::@return __breturn: @@ -790,21 +790,21 @@ main: { * The result is found in chks. * @param v Value to sum. */ -// add_checksum(word zp(2) v) +// void add_checksum(__zp(2) unsigned int v) add_checksum: { .label __3 = 4 .label __6 = 6 .label __14 = 4 .label __15 = 6 .label v = 2 - // [9] _a#0 = *((byte*)&chks) -- vbuaa=_deref_pbuc1 + // [9] _a#0 = *((char *)&chks) -- vbuaa=_deref_pbuc1 /* * First byte (MSB). */ lda chks // [10] add_checksum::$0 = byte1 add_checksum::v#3 -- vbuxx=_byte1_vwuz1 ldx.z v+1 - // [11] add_checksum::$14 = (word)_a#0 -- vwuz1=_word_vbuaa + // [11] add_checksum::$14 = (unsigned int)_a#0 -- vwuz1=_word_vbuaa sta.z __14 lda #0 sta.z __14+1 @@ -825,16 +825,16 @@ add_checksum: { sta.z __3+1 // [15] _c#0 = byte1 add_checksum::$3 -- vbuyy=_byte1_vwuz1 ldy.z __3+1 - // [16] *((byte*)&chks) = _b#0 -- _deref_pbuc1=vbuxx + // [16] *((char *)&chks) = _b#0 -- _deref_pbuc1=vbuxx stx chks - // [17] _a#1 = *((byte*)&chks+1) -- vbuaa=_deref_pbuc1 + // [17] _a#1 = *((char *)&chks+1) -- vbuaa=_deref_pbuc1 /* * Second byte (LSB). */ lda chks+1 // [18] add_checksum::$5 = byte0 add_checksum::v#3 -- vbuxx=_byte0_vwuz1 ldx.z v - // [19] add_checksum::$15 = (word)_a#1 -- vwuz1=_word_vbuaa + // [19] add_checksum::$15 = (unsigned int)_a#1 -- vwuz1=_word_vbuaa sta.z __15 lda #0 sta.z __15+1 @@ -858,7 +858,7 @@ add_checksum: { ldx.z _b16_1 // [23] _c#1 = byte1 _b16#1 -- vbuaa=_byte1_vwuz1 lda.z _b16_1+1 - // [24] *((byte*)&chks+1) = _b#1 -- _deref_pbuc1=vbuxx + // [24] *((char *)&chks+1) = _b#1 -- _deref_pbuc1=vbuxx stx chks+1 // [25] if(0==_c#1) goto add_checksum::@return -- 0_eq_vbuaa_then_la1 cmp #0 @@ -866,15 +866,15 @@ add_checksum: { jmp __b1 // add_checksum::@1 __b1: - // [26] *((byte*)&chks) = ++ *((byte*)&chks) -- _deref_pbuc1=_inc__deref_pbuc1 + // [26] *((char *)&chks) = ++ *((char *)&chks) -- _deref_pbuc1=_inc__deref_pbuc1 inc chks - // [27] if(*((byte*)&chks)!=0) goto add_checksum::@return -- _deref_pbuc1_neq_0_then_la1 + // [27] if(*((char *)&chks)!=0) goto add_checksum::@return -- _deref_pbuc1_neq_0_then_la1 lda chks bne __breturn jmp __b2 // add_checksum::@2 __b2: - // [28] *((byte*)&chks+1) = ++ *((byte*)&chks+1) -- _deref_pbuc1=_inc__deref_pbuc1 + // [28] *((char *)&chks+1) = ++ *((char *)&chks+1) -- _deref_pbuc1=_inc__deref_pbuc1 inc chks+1 jmp __breturn // add_checksum::@return @@ -914,31 +914,31 @@ Succesful ASM optimization Pass5UnusedLabelElimination Replacing instruction lda #0 with TYA FINAL SYMBOL TABLE -constant word* const SCREEN = (word*) 1024 -constant byte SIZEOF_UNION_$0 = 2 -constant byte SIZEOF_WORD = 2 -byte _a -byte _a#0 reg byte a 5.5 -byte _a#1 reg byte a 5.5 -byte _b -byte _b#0 reg byte x 7.333333333333333 -byte _b#1 reg byte x 11.0 -word _b16 -word _b16#0 _b16 zp[2]:4 16.5 -word _b16#1 _b16_1 zp[2]:6 16.5 -byte _c -byte _c#0 reg byte y 3.6666666666666665 -byte _c#1 reg byte a 11.0 -void add_checksum(word add_checksum::v) -byte~ add_checksum::$0 reg byte x 11.0 -word~ add_checksum::$14 zp[2]:4 22.0 -word~ add_checksum::$15 zp[2]:6 22.0 -word~ add_checksum::$3 zp[2]:4 22.0 -byte~ add_checksum::$5 reg byte x 11.0 -word~ add_checksum::$6 zp[2]:6 22.0 -word add_checksum::v -word add_checksum::v#3 v zp[2]:2 2.2 -union $0 chks loadstore mem[2] = {} +__constant unsigned int * const SCREEN = (unsigned int *) 1024 +__constant char SIZEOF_UNION_$0 = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 +char _a +char _a#0 // reg byte a 5.5 +char _a#1 // reg byte a 5.5 +char _b +char _b#0 // reg byte x 7.333333333333333 +char _b#1 // reg byte x 11.0 +unsigned int _b16 +unsigned int _b16#0 // _b16 zp[2]:4 16.5 +unsigned int _b16#1 // _b16_1 zp[2]:6 16.5 +char _c +char _c#0 // reg byte y 3.6666666666666665 +char _c#1 // reg byte a 11.0 +void add_checksum(unsigned int v) +char add_checksum::$0 // reg byte x 11.0 +unsigned int add_checksum::$14 // zp[2]:4 22.0 +unsigned int add_checksum::$15 // zp[2]:6 22.0 +unsigned int add_checksum::$3 // zp[2]:4 22.0 +char add_checksum::$5 // reg byte x 11.0 +unsigned int add_checksum::$6 // zp[2]:6 22.0 +unsigned int add_checksum::v +unsigned int add_checksum::v#3 // v zp[2]:2 2.2 +__loadstore union $0 chks = {} // mem[2] void main() zp[2]:2 [ add_checksum::v#3 ] @@ -975,7 +975,7 @@ Score: 251 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .const SIZEOF_UNION___0 = 2 .label SCREEN = $400 .label _b16 = 4 @@ -984,12 +984,12 @@ Score: 251 // main main: { // checksum_init - // [0] *((word*)&chks) = 0 -- _deref_pwuc1=vbuc2 + // [0] *((unsigned int *)&chks) = 0 -- _deref_pwuc1=vbuc2 lda #<0 sta chks sta chks+1 // add_checksum(0x1234) - // [1] call add_checksum + // [1] call add_checksum // [8] phi from main to add_checksum [phi:main->add_checksum] // [8] phi add_checksum::v#3 = $1234 [phi:main->add_checksum#0] -- vwuz1=vwuc1 lda #<$1234 @@ -999,13 +999,13 @@ main: { jsr add_checksum // main::@1 // SCREEN[0] = chks.u - // [2] *SCREEN = *((word*)&chks) -- _deref_pwuc1=_deref_pwuc2 + // [2] *SCREEN = *((unsigned int *)&chks) -- _deref_pwuc1=_deref_pwuc2 lda chks sta SCREEN lda chks+1 sta SCREEN+1 // add_checksum(0x2345) - // [3] call add_checksum + // [3] call add_checksum // [8] phi from main::@1 to add_checksum [phi:main::@1->add_checksum] // [8] phi add_checksum::v#3 = $2345 [phi:main::@1->add_checksum#0] -- vwuz1=vwuc1 lda #<$2345 @@ -1015,13 +1015,13 @@ main: { jsr add_checksum // main::@2 // SCREEN[1] = chks.u - // [4] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) -- _deref_pwuc1=_deref_pwuc2 + // [4] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) -- _deref_pwuc1=_deref_pwuc2 lda chks - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda chks+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // add_checksum(0x3456) - // [5] call add_checksum + // [5] call add_checksum // [8] phi from main::@2 to add_checksum [phi:main::@2->add_checksum] // [8] phi add_checksum::v#3 = $3456 [phi:main::@2->add_checksum#0] -- vwuz1=vwuc1 lda #<$3456 @@ -1031,11 +1031,11 @@ main: { jsr add_checksum // main::@3 // SCREEN[1] = chks.u - // [6] *(SCREEN+1*SIZEOF_WORD) = *((word*)&chks) -- _deref_pwuc1=_deref_pwuc2 + // [6] *(SCREEN+1*SIZEOF_UNSIGNED_INT) = *((unsigned int *)&chks) -- _deref_pwuc1=_deref_pwuc2 lda chks - sta SCREEN+1*SIZEOF_WORD + sta SCREEN+1*SIZEOF_UNSIGNED_INT lda chks+1 - sta SCREEN+1*SIZEOF_WORD+1 + sta SCREEN+1*SIZEOF_UNSIGNED_INT+1 // main::@return // } // [7] return @@ -1048,7 +1048,7 @@ main: { * The result is found in chks. * @param v Value to sum. */ -// add_checksum(word zp(2) v) +// void add_checksum(__zp(2) unsigned int v) add_checksum: { .label __3 = 4 .label __6 = 6 @@ -1056,7 +1056,7 @@ add_checksum: { .label __15 = 6 .label v = 2 // _a = chks.b[0] - // [9] _a#0 = *((byte*)&chks) -- vbuaa=_deref_pbuc1 + // [9] _a#0 = *((char *)&chks) -- vbuaa=_deref_pbuc1 /* * First byte (MSB). */ @@ -1065,7 +1065,7 @@ add_checksum: { // [10] add_checksum::$0 = byte1 add_checksum::v#3 -- vbuxx=_byte1_vwuz1 ldx.z v+1 // (uint16_t)_a + HIGH - // [11] add_checksum::$14 = (word)_a#0 -- vwuz1=_word_vbuaa + // [11] add_checksum::$14 = (unsigned int)_a#0 -- vwuz1=_word_vbuaa sta.z __14 lda #0 sta.z __14+1 @@ -1091,10 +1091,10 @@ add_checksum: { // [15] _c#0 = byte1 add_checksum::$3 -- vbuyy=_byte1_vwuz1 tay // chks.b[0] = _b - // [16] *((byte*)&chks) = _b#0 -- _deref_pbuc1=vbuxx + // [16] *((char *)&chks) = _b#0 -- _deref_pbuc1=vbuxx stx chks // _a = chks.b[1] - // [17] _a#1 = *((byte*)&chks+1) -- vbuaa=_deref_pbuc1 + // [17] _a#1 = *((char *)&chks+1) -- vbuaa=_deref_pbuc1 /* * Second byte (LSB). */ @@ -1103,7 +1103,7 @@ add_checksum: { // [18] add_checksum::$5 = byte0 add_checksum::v#3 -- vbuxx=_byte0_vwuz1 ldx.z v // (uint16_t)_a + (LOW(v)) - // [19] add_checksum::$15 = (word)_a#1 -- vwuz1=_word_vbuaa + // [19] add_checksum::$15 = (unsigned int)_a#1 -- vwuz1=_word_vbuaa sta.z __15 tya sta.z __15+1 @@ -1131,7 +1131,7 @@ add_checksum: { // [23] _c#1 = byte1 _b16#1 -- vbuaa=_byte1_vwuz1 lda.z _b16_1+1 // chks.b[1] = _b - // [24] *((byte*)&chks+1) = _b#1 -- _deref_pbuc1=vbuxx + // [24] *((char *)&chks+1) = _b#1 -- _deref_pbuc1=vbuxx stx chks+1 // if(_c) // [25] if(0==_c#1) goto add_checksum::@return -- 0_eq_vbuaa_then_la1 @@ -1139,14 +1139,14 @@ add_checksum: { beq __breturn // add_checksum::@1 // if(++chks.b[0] == 0) - // [26] *((byte*)&chks) = ++ *((byte*)&chks) -- _deref_pbuc1=_inc__deref_pbuc1 + // [26] *((char *)&chks) = ++ *((char *)&chks) -- _deref_pbuc1=_inc__deref_pbuc1 inc chks - // [27] if(*((byte*)&chks)!=0) goto add_checksum::@return -- _deref_pbuc1_neq_0_then_la1 + // [27] if(*((char *)&chks)!=0) goto add_checksum::@return -- _deref_pbuc1_neq_0_then_la1 lda chks bne __breturn // add_checksum::@2 // chks.b[1]++; - // [28] *((byte*)&chks+1) = ++ *((byte*)&chks+1) -- _deref_pbuc1=_inc__deref_pbuc1 + // [28] *((char *)&chks+1) = ++ *((char *)&chks+1) -- _deref_pbuc1=_inc__deref_pbuc1 inc chks+1 // add_checksum::@return __breturn: diff --git a/src/test/ref/weeip-checksum.sym b/src/test/ref/weeip-checksum.sym index fc4dd6b01..a395f882b 100644 --- a/src/test/ref/weeip-checksum.sym +++ b/src/test/ref/weeip-checksum.sym @@ -1,28 +1,28 @@ -constant word* const SCREEN = (word*) 1024 -constant byte SIZEOF_UNION_$0 = 2 -constant byte SIZEOF_WORD = 2 -byte _a -byte _a#0 reg byte a 5.5 -byte _a#1 reg byte a 5.5 -byte _b -byte _b#0 reg byte x 7.333333333333333 -byte _b#1 reg byte x 11.0 -word _b16 -word _b16#0 _b16 zp[2]:4 16.5 -word _b16#1 _b16_1 zp[2]:6 16.5 -byte _c -byte _c#0 reg byte y 3.6666666666666665 -byte _c#1 reg byte a 11.0 -void add_checksum(word add_checksum::v) -byte~ add_checksum::$0 reg byte x 11.0 -word~ add_checksum::$14 zp[2]:4 22.0 -word~ add_checksum::$15 zp[2]:6 22.0 -word~ add_checksum::$3 zp[2]:4 22.0 -byte~ add_checksum::$5 reg byte x 11.0 -word~ add_checksum::$6 zp[2]:6 22.0 -word add_checksum::v -word add_checksum::v#3 v zp[2]:2 2.2 -union $0 chks loadstore mem[2] = {} +__constant unsigned int * const SCREEN = (unsigned int *) 1024 +__constant char SIZEOF_UNION_$0 = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 +char _a +char _a#0 // reg byte a 5.5 +char _a#1 // reg byte a 5.5 +char _b +char _b#0 // reg byte x 7.333333333333333 +char _b#1 // reg byte x 11.0 +unsigned int _b16 +unsigned int _b16#0 // _b16 zp[2]:4 16.5 +unsigned int _b16#1 // _b16_1 zp[2]:6 16.5 +char _c +char _c#0 // reg byte y 3.6666666666666665 +char _c#1 // reg byte a 11.0 +void add_checksum(unsigned int v) +char add_checksum::$0 // reg byte x 11.0 +unsigned int add_checksum::$14 // zp[2]:4 22.0 +unsigned int add_checksum::$15 // zp[2]:6 22.0 +unsigned int add_checksum::$3 // zp[2]:4 22.0 +char add_checksum::$5 // reg byte x 11.0 +unsigned int add_checksum::$6 // zp[2]:6 22.0 +unsigned int add_checksum::v +unsigned int add_checksum::v#3 // v zp[2]:2 2.2 +__loadstore union $0 chks = {} // mem[2] void main() zp[2]:2 [ add_checksum::v#3 ] diff --git a/src/test/ref/weeip-ipv4.cfg b/src/test/ref/weeip-ipv4.cfg index 6ae5b73e7..46864d9bc 100644 --- a/src/test/ref/weeip-ipv4.cfg +++ b/src/test/ref/weeip-ipv4.cfg @@ -1,11 +1,11 @@ void main() main: scope:[main] from - [0] *((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff - [1] *((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff + [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff + [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) - [3] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd - [4] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee + [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd + [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/weeip-ipv4.log b/src/test/ref/weeip-ipv4.log index 1186fd881..e7c3f9c00 100644 --- a/src/test/ref/weeip-ipv4.log +++ b/src/test/ref/weeip-ipv4.log @@ -27,12 +27,12 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - ((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff - ((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff + ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff + ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff main::$0 = 0 * SIZEOF_UNION_HEADER SCREEN[main::$0] = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) - *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd - *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee + *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd + *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee main::$1 = 1 * SIZEOF_UNION_HEADER SCREEN[main::$1] = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) to:main::@return @@ -42,7 +42,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -51,43 +51,43 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte OFFSET_STRUCT_ARP_HDR_DEST_IP = $18 -constant byte OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8 -constant byte OFFSET_STRUCT_EUI48_B = 0 -constant byte OFFSET_STRUCT_IP_HDR_SOURCE = $c -constant byte OFFSET_STRUCT_IP_IP = 0 -constant byte OFFSET_STRUCT_IP_T = $14 -constant byte OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10 -constant byte OFFSET_UNION_HEADER_ARP = 0 -constant byte OFFSET_UNION_HEADER_IP = 0 -constant byte OFFSET_UNION_IPV4_B = 0 -constant byte OFFSET_UNION_IPV4_D = 0 -constant byte OFFSET_UNION_T_TCP = 0 -constant union HEADER* const SCREEN = (union HEADER*)$400 -constant byte SIZEOF_UNION_HEADER = $28 +__constant char OFFSET_STRUCT_ARP_HDR_DEST_IP = $18 +__constant char OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8 +__constant char OFFSET_STRUCT_EUI48_B = 0 +__constant char OFFSET_STRUCT_IP_HDR_SOURCE = $c +__constant char OFFSET_STRUCT_IP_IP = 0 +__constant char OFFSET_STRUCT_IP_T = $14 +__constant char OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10 +__constant char OFFSET_UNION_HEADER_ARP = 0 +__constant char OFFSET_UNION_HEADER_IP = 0 +__constant char OFFSET_UNION_IPV4_B = 0 +__constant char OFFSET_UNION_IPV4_D = 0 +__constant char OFFSET_UNION_T_TCP = 0 +__constant union HEADER * const SCREEN = (union HEADER *)$400 +__constant char SIZEOF_UNION_HEADER = $28 void __start() -union HEADER header loadstore = {} +__loadstore union HEADER header = {} void main() -number~ main::$0 -number~ main::$1 +number main::$0 +number main::$1 -Adding number conversion cast (unumber) $ff in ((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff -Adding number conversion cast (unumber) 5 in ((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = ((unumber)) $ff -Adding number conversion cast (unumber) $ff in ((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff -Adding number conversion cast (unumber) 3 in ((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = ((unumber)) $ff +Adding number conversion cast (unumber) $ff in ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff +Adding number conversion cast (unumber) 5 in ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = ((unumber)) $ff +Adding number conversion cast (unumber) $ff in ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff +Adding number conversion cast (unumber) 3 in ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = ((unumber)) $ff Adding number conversion cast (unumber) 0 in main::$0 = 0 * SIZEOF_UNION_HEADER Adding number conversion cast (unumber) main::$0 in main::$0 = (unumber)0 * SIZEOF_UNION_HEADER -Adding number conversion cast (unumber) $dddddddd in *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd -Adding number conversion cast (unumber) $eeee in *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee +Adding number conversion cast (unumber) $dddddddd in *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd +Adding number conversion cast (unumber) $eeee in *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee Adding number conversion cast (unumber) 1 in main::$1 = 1 * SIZEOF_UNION_HEADER Adding number conversion cast (unumber) main::$1 in main::$1 = (unumber)1 * SIZEOF_UNION_HEADER Successful SSA optimization PassNAddNumberTypeConversions -Inlining cast ((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[(unumber)5] = (unumber)$ff -Inlining cast ((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[(unumber)3] = (unumber)$ff -Inlining cast *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = (unumber)$dddddddd -Inlining cast *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = (unumber)$eeee +Inlining cast ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[(unumber)5] = (unumber)$ff +Inlining cast ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[(unumber)3] = (unumber)$ff +Inlining cast *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = (unumber)$dddddddd +Inlining cast *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = (unumber)$eeee Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (union HEADER*) 1024 +Simplifying constant pointer cast (union HEADER *) 1024 Simplifying constant integer cast $ff Simplifying constant integer cast 5 Simplifying constant integer cast $ff @@ -97,17 +97,17 @@ Simplifying constant integer cast $dddddddd Simplifying constant integer cast $eeee Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 5 -Finalized unsigned number type (byte) $ff -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (dword) $dddddddd -Finalized unsigned number type (word) $eeee -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 5 +Finalized unsigned number type (char) $ff +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (unsigned long) $dddddddd +Finalized unsigned number type (unsigned int) $eeee +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = 0 * SIZEOF_UNION_HEADER -Inferred type updated to byte in main::$1 = 1 * SIZEOF_UNION_HEADER +Inferred type updated to char in main::$0 = 0 * SIZEOF_UNION_HEADER +Inferred type updated to char in main::$1 = 1 * SIZEOF_UNION_HEADER Constant right-side identified [2] main::$0 = 0 * SIZEOF_UNION_HEADER Constant right-side identified [6] main::$1 = 1 * SIZEOF_UNION_HEADER Successful SSA optimization Pass2ConstantRValueConsolidation @@ -116,16 +116,16 @@ Constant main::$1 = 1*SIZEOF_UNION_HEADER Successful SSA optimization Pass2ConstantIdentification Simplifying constant evaluating to zero 0*SIZEOF_UNION_HEADER in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero (byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW in [0] ((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff -Simplifying expression containing zero (struct ARP_HDR*)&header in [0] ((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW)[5] = $ff -Simplifying expression containing zero (byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP in [1] ((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff -Simplifying expression containing zero (struct ARP_HDR*)&header in [1] ((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP)[3] = $ff +Simplifying expression containing zero (char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW in [0] ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW+OFFSET_STRUCT_EUI48_B)[5] = $ff +Simplifying expression containing zero (struct ARP_HDR *)&header in [0] ((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_ORIG_HW)[5] = $ff +Simplifying expression containing zero (char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP in [1] ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP+OFFSET_UNION_IPV4_B)[3] = $ff +Simplifying expression containing zero (struct ARP_HDR *)&header in [1] ((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_UNION_HEADER_ARP+OFFSET_STRUCT_ARP_HDR_DEST_IP)[3] = $ff Simplifying expression containing zero SCREEN in [3] SCREEN[main::$0] = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -Simplifying expression containing zero (dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE in [4] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd -Simplifying expression containing zero (struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP in [4] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -Simplifying expression containing zero (struct IP*)&header in [4] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -Simplifying expression containing zero (struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T in [5] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -Simplifying expression containing zero (struct IP*)&header in [5] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee +Simplifying expression containing zero (unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE in [4] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE+OFFSET_UNION_IPV4_D) = $dddddddd +Simplifying expression containing zero (struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP in [4] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_IP+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd +Simplifying expression containing zero (struct IP *)&header in [4] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd +Simplifying expression containing zero (struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T in [5] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_UNION_T_TCP+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee +Simplifying expression containing zero (struct IP *)&header in [5] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_UNION_HEADER_IP+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant main::$0 Eliminating unused constant OFFSET_UNION_HEADER_ARP @@ -143,20 +143,20 @@ Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant inlined main::$1 = 1*SIZEOF_UNION_HEADER Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) -Consolidated array index constant in *((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) +Consolidated array index constant in *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) +Consolidated array index constant in *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) Consolidated array index constant in *(SCREEN+1*SIZEOF_UNION_HEADER) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions CALL GRAPH @@ -167,11 +167,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] *((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff - [1] *((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff + [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff + [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) - [3] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd - [4] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee + [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd + [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) to:main::@return main::@return: scope:[main] from main @@ -180,7 +180,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS -union HEADER header loadstore = {} +__loadstore union HEADER header = {} void main() Initial phi equivalence classes @@ -189,11 +189,11 @@ Complete equivalence classes [ header ] Allocated mem[40] [ header ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] *((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff [ header ] ( [ header ] { } ) always clobbers reg byte a -Statement [1] *((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff [ header ] ( [ header ] { } ) always clobbers reg byte a +Statement [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff [ header ] ( [ header ] { } ) always clobbers reg byte a +Statement [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff [ header ] ( [ header ] { } ) always clobbers reg byte a Statement [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) [ header ] ( [ header ] { } ) always clobbers reg byte a reg byte y -Statement [3] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd [ header ] ( [ header ] { } ) always clobbers reg byte a -Statement [4] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee [ header ] ( [ header ] { } ) always clobbers reg byte a +Statement [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd [ header ] ( [ header ] { } ) always clobbers reg byte a +Statement [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee [ header ] ( [ header ] { } ) always clobbers reg byte a Statement [5] *(SCREEN+1*SIZEOF_UNION_HEADER) = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) [ ] ( [ ] { } ) always clobbers reg byte a reg byte y Potential registers mem[40] [ header ] : mem[40] , @@ -248,10 +248,10 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [0] *((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5 - // [1] *((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff -- _deref_pbuc1=vbuc2 + // [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3 // [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 @@ -261,7 +261,7 @@ main: { sta SCREEN-1,y dey bne !- - // [3] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -- _deref_pduc1=vduc2 + // [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -- _deref_pduc1=vduc2 lda #<$dddddddd sta header+OFFSET_STRUCT_IP_HDR_SOURCE lda #>$dddddddd @@ -270,7 +270,7 @@ main: { sta header+OFFSET_STRUCT_IP_HDR_SOURCE+2 lda #>$dddddddd>>$10 sta header+OFFSET_STRUCT_IP_HDR_SOURCE+3 - // [4] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -- _deref_pwuc1=vwuc2 + // [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -- _deref_pwuc1=vwuc2 lda #<$eeee sta header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM lda #>$eeee @@ -301,14 +301,14 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte OFFSET_STRUCT_ARP_HDR_DEST_IP = $18 -constant byte OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8 -constant byte OFFSET_STRUCT_IP_HDR_SOURCE = $c -constant byte OFFSET_STRUCT_IP_T = $14 -constant byte OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10 -constant union HEADER* const SCREEN = (union HEADER*) 1024 -constant byte SIZEOF_UNION_HEADER = $28 -union HEADER header loadstore mem[40] = {} +__constant char OFFSET_STRUCT_ARP_HDR_DEST_IP = $18 +__constant char OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8 +__constant char OFFSET_STRUCT_IP_HDR_SOURCE = $c +__constant char OFFSET_STRUCT_IP_T = $14 +__constant char OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10 +__constant union HEADER * const SCREEN = (union HEADER *) 1024 +__constant char SIZEOF_UNION_HEADER = $28 +__loadstore union HEADER header = {} // mem[40] void main() mem[40] [ header ] @@ -339,11 +339,11 @@ Score: 84 // main main: { // header.arp.orig_hw.b[5] = 0xff - // [0] *((byte*)(struct EUI48*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff -- _deref_pbuc1=vbuc2 + // [0] *((char *)(struct EUI48 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta header+OFFSET_STRUCT_ARP_HDR_ORIG_HW+5 // header.arp.dest_ip.b[3] = 0xff - // [1] *((byte*)(union IPV4*)(struct ARP_HDR*)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff -- _deref_pbuc1=vbuc2 + // [1] *((char *)(union IPV4 *)(struct ARP_HDR *)&header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3) = $ff -- _deref_pbuc1=vbuc2 sta header+OFFSET_STRUCT_ARP_HDR_DEST_IP+3 // SCREEN[0] = header // [2] *SCREEN = memcpy(*(&header), union HEADER, SIZEOF_UNION_HEADER) -- _deref_pssc1=_deref_pssc2_memcpy_vbuc3 @@ -354,7 +354,7 @@ main: { dey bne !- // header.ip.ip.source.d = 0xdddddddd - // [3] *((dword*)(union IPV4*)(struct IP_HDR*)(struct IP*)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -- _deref_pduc1=vduc2 + // [3] *((unsigned long *)(union IPV4 *)(struct IP_HDR *)(struct IP *)&header+OFFSET_STRUCT_IP_HDR_SOURCE) = $dddddddd -- _deref_pduc1=vduc2 lda #<$dddddddd sta header+OFFSET_STRUCT_IP_HDR_SOURCE lda #>$dddddddd @@ -364,7 +364,7 @@ main: { lda #>$dddddddd>>$10 sta header+OFFSET_STRUCT_IP_HDR_SOURCE+3 // header.ip.t.tcp.checksum = 0xeeee - // [4] *((word*)(struct TCP_HDR*)(union T*)(struct IP*)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -- _deref_pwuc1=vwuc2 + // [4] *((unsigned int *)(struct TCP_HDR *)(union T *)(struct IP *)&header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM) = $eeee -- _deref_pwuc1=vwuc2 lda #<$eeee sta header+OFFSET_STRUCT_IP_T+OFFSET_STRUCT_TCP_HDR_CHECKSUM lda #>$eeee diff --git a/src/test/ref/weeip-ipv4.sym b/src/test/ref/weeip-ipv4.sym index 6f661f008..002dfd059 100644 --- a/src/test/ref/weeip-ipv4.sym +++ b/src/test/ref/weeip-ipv4.sym @@ -1,11 +1,11 @@ -constant byte OFFSET_STRUCT_ARP_HDR_DEST_IP = $18 -constant byte OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8 -constant byte OFFSET_STRUCT_IP_HDR_SOURCE = $c -constant byte OFFSET_STRUCT_IP_T = $14 -constant byte OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10 -constant union HEADER* const SCREEN = (union HEADER*) 1024 -constant byte SIZEOF_UNION_HEADER = $28 -union HEADER header loadstore mem[40] = {} +__constant char OFFSET_STRUCT_ARP_HDR_DEST_IP = $18 +__constant char OFFSET_STRUCT_ARP_HDR_ORIG_HW = 8 +__constant char OFFSET_STRUCT_IP_HDR_SOURCE = $c +__constant char OFFSET_STRUCT_IP_T = $14 +__constant char OFFSET_STRUCT_TCP_HDR_CHECKSUM = $10 +__constant union HEADER * const SCREEN = (union HEADER *) 1024 +__constant char SIZEOF_UNION_HEADER = $28 +__loadstore union HEADER header = {} // mem[40] void main() mem[40] [ header ] diff --git a/src/test/ref/wfragment1.asm b/src/test/ref/wfragment1.asm index 4a7b97589..2862d3191 100644 --- a/src/test/ref/wfragment1.asm +++ b/src/test/ref/wfragment1.asm @@ -22,7 +22,7 @@ main: { // } rts } -// move_enemy(byte register(A) obj_slot) +// bool move_enemy(__register(A) char obj_slot) move_enemy: { // OBJ_WORLD_X[obj_slot] -= 1 asl diff --git a/src/test/ref/wfragment1.cfg b/src/test/ref/wfragment1.cfg index b444db880..6d9510260 100644 --- a/src/test/ref/wfragment1.cfg +++ b/src/test/ref/wfragment1.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] move_enemy::obj_slot#0 = main::i#2 - [3] call move_enemy + [3] call move_enemy to:main::@2 main::@2: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -16,7 +16,7 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -bool move_enemy(byte move_enemy::obj_slot) +bool move_enemy(char obj_slot) move_enemy: scope:[move_enemy] from main::@1 [7] move_enemy::$0 = move_enemy::obj_slot#0 << 1 [8] OBJ_WORLD_X[move_enemy::$0] = OBJ_WORLD_X[move_enemy::$0] - 1 diff --git a/src/test/ref/wfragment1.log b/src/test/ref/wfragment1.log index 946649574..78be94cc5 100644 --- a/src/test/ref/wfragment1.log +++ b/src/test/ref/wfragment1.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -9,7 +9,7 @@ main: scope:[main] from __start::@1 main::@1: scope:[main] from main main::@2 main::i#2 = phi( main/main::i#0, main::@2/main::i#1 ) move_enemy::obj_slot#0 = main::i#2 - call move_enemy + call move_enemy move_enemy::return#0 = move_enemy::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -22,10 +22,10 @@ main::@return: scope:[main] from main::@2 return to:@return -bool move_enemy(byte move_enemy::obj_slot) +bool move_enemy(char obj_slot) move_enemy: scope:[move_enemy] from main::@1 move_enemy::obj_slot#1 = phi( main::@1/move_enemy::obj_slot#0 ) - move_enemy::$0 = move_enemy::obj_slot#1 * SIZEOF_WORD + move_enemy::$0 = move_enemy::obj_slot#1 * SIZEOF_UNSIGNED_INT OBJ_WORLD_X[move_enemy::$0] = OBJ_WORLD_X[move_enemy::$0] - 1 move_enemy::return#1 = true to:move_enemy::@return @@ -41,7 +41,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -50,26 +50,26 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant const byte MAX_OBJECTS = $10 -constant word* OBJ_WORLD_X[MAX_OBJECTS] = { fill( MAX_OBJECTS, 0) } -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 -constant byte SIZEOF_WORD = 2 +__constant const char MAX_OBJECTS = $10 +__constant unsigned int OBJ_WORLD_X[MAX_OBJECTS] = { fill( MAX_OBJECTS, 0) } +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -bool~ main::$1 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -bool move_enemy(byte move_enemy::obj_slot) -byte~ move_enemy::$0 -byte move_enemy::obj_slot -byte move_enemy::obj_slot#0 -byte move_enemy::obj_slot#1 +bool main::$1 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +bool move_enemy(char obj_slot) +char move_enemy::$0 +char move_enemy::obj_slot +char move_enemy::obj_slot#0 +char move_enemy::obj_slot#1 bool move_enemy::return bool move_enemy::return#0 bool move_enemy::return#1 @@ -80,7 +80,7 @@ Adding number conversion cast (unumber) 1 in OBJ_WORLD_X[move_enemy::$0] = OBJ_W Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 +Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias main::i#2 = main::i#3 Alias move_enemy::return#1 = move_enemy::return#3 move_enemy::return#2 @@ -111,19 +111,19 @@ Adding number conversion cast (unumber) 6 in [4] if(main::i#1!=6) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 6 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [6] move_enemy::$0 = move_enemy::obj_slot#0 * SIZEOF_WORD +Rewriting multiplication to use shift [6] move_enemy::$0 = move_enemy::obj_slot#0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 8 -Finalized unsigned number type (byte) $a -Finalized unsigned number type (byte) $10 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 8 +Finalized unsigned number type (char) $a +Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@2 and main::@1) Adding NOP phi() at start of main @@ -145,7 +145,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@2 [1] main::i#2 = phi( main/0, main::@2/main::i#1 ) [2] move_enemy::obj_slot#0 = main::i#2 - [3] call move_enemy + [3] call move_enemy to:main::@2 main::@2: scope:[main] from main::@1 [4] main::i#1 = ++ main::i#2 @@ -155,7 +155,7 @@ main::@return: scope:[main] from main::@2 [6] return to:@return -bool move_enemy(byte move_enemy::obj_slot) +bool move_enemy(char obj_slot) move_enemy: scope:[move_enemy] from main::@1 [7] move_enemy::$0 = move_enemy::obj_slot#0 << 1 [8] OBJ_WORLD_X[move_enemy::$0] = OBJ_WORLD_X[move_enemy::$0] - 1 @@ -167,13 +167,13 @@ move_enemy::@return: scope:[move_enemy] from move_enemy VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 -bool move_enemy(byte move_enemy::obj_slot) -byte~ move_enemy::$0 303.0 -byte move_enemy::obj_slot -byte move_enemy::obj_slot#0 112.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 +bool move_enemy(char obj_slot) +char move_enemy::$0 // 303.0 +char move_enemy::obj_slot +char move_enemy::obj_slot#0 // 112.0 bool move_enemy::return Initial phi equivalence classes @@ -238,7 +238,7 @@ main: { __b1: // [2] move_enemy::obj_slot#0 = main::i#2 -- vbuaa=vbuyy tya - // [3] call move_enemy + // [3] call move_enemy jsr move_enemy jmp __b2 // main::@2 @@ -255,7 +255,7 @@ main: { rts } // move_enemy -// move_enemy(byte register(A) obj_slot) +// bool move_enemy(__register(A) char obj_slot) move_enemy: { // [7] move_enemy::$0 = move_enemy::obj_slot#0 << 1 -- vbuaa=vbuaa_rol_1 asl @@ -294,20 +294,20 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant const byte MAX_OBJECTS = $10 -constant word* OBJ_WORLD_X[MAX_OBJECTS] = { fill( MAX_OBJECTS, 0) } -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant const char MAX_OBJECTS = $10 +__constant unsigned int OBJ_WORLD_X[MAX_OBJECTS] = { fill( MAX_OBJECTS, 0) } +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -bool move_enemy(byte move_enemy::obj_slot) -byte~ move_enemy::$0 reg byte a 303.0 -byte move_enemy::obj_slot -byte move_enemy::obj_slot#0 reg byte a 112.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +bool move_enemy(char obj_slot) +char move_enemy::$0 // reg byte a 303.0 +char move_enemy::obj_slot +char move_enemy::obj_slot#0 // reg byte a 112.0 bool move_enemy::return reg byte y [ main::i#2 main::i#1 ] @@ -344,7 +344,7 @@ main: { // move_enemy(i) // [2] move_enemy::obj_slot#0 = main::i#2 -- vbuaa=vbuyy tya - // [3] call move_enemy + // [3] call move_enemy jsr move_enemy // main::@2 // for(byte i:0..5) @@ -359,7 +359,7 @@ main: { rts } // move_enemy -// move_enemy(byte register(A) obj_slot) +// bool move_enemy(__register(A) char obj_slot) move_enemy: { // OBJ_WORLD_X[obj_slot] -= 1 // [7] move_enemy::$0 = move_enemy::obj_slot#0 << 1 -- vbuaa=vbuaa_rol_1 diff --git a/src/test/ref/wfragment1.sym b/src/test/ref/wfragment1.sym index 71012d563..cd120518b 100644 --- a/src/test/ref/wfragment1.sym +++ b/src/test/ref/wfragment1.sym @@ -1,17 +1,17 @@ -constant const byte MAX_OBJECTS = $10 -constant word* OBJ_WORLD_X[MAX_OBJECTS] = { fill( MAX_OBJECTS, 0) } -constant byte RADIX::BINARY = 2 -constant byte RADIX::DECIMAL = $a -constant byte RADIX::HEXADECIMAL = $10 -constant byte RADIX::OCTAL = 8 +__constant const char MAX_OBJECTS = $10 +__constant unsigned int OBJ_WORLD_X[MAX_OBJECTS] = { fill( MAX_OBJECTS, 0) } +__constant char RADIX::BINARY = 2 +__constant char RADIX::DECIMAL = $a +__constant char RADIX::HEXADECIMAL = $10 +__constant char RADIX::OCTAL = 8 void main() -byte main::i -byte main::i#1 reg byte y 16.5 -byte main::i#2 reg byte y 11.0 -bool move_enemy(byte move_enemy::obj_slot) -byte~ move_enemy::$0 reg byte a 303.0 -byte move_enemy::obj_slot -byte move_enemy::obj_slot#0 reg byte a 112.0 +char main::i +char main::i#1 // reg byte y 16.5 +char main::i#2 // reg byte y 11.0 +bool move_enemy(char obj_slot) +char move_enemy::$0 // reg byte a 303.0 +char move_enemy::obj_slot +char move_enemy::obj_slot#0 // reg byte a 112.0 bool move_enemy::return reg byte y [ main::i#2 main::i#1 ] diff --git a/src/test/ref/word-array-0.asm b/src/test/ref/word-array-0.asm index d5748547e..523f68f9c 100644 --- a/src/test/ref/word-array-0.asm +++ b/src/test/ref/word-array-0.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400+6*$28 @@ -15,9 +15,9 @@ main: { .label w1 = 2 .label w2 = 4 // word w1 = words[1] - lda words+1*SIZEOF_WORD + lda words+1*SIZEOF_UNSIGNED_INT sta.z w1 - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 sta.z w1+1 // BYTE0(w1) lda.z w1 @@ -28,9 +28,9 @@ main: { // SCREEN[1] = BYTE1(w1) sta SCREEN+1 // word w2 = words[2] - lda words+2*SIZEOF_WORD + lda words+2*SIZEOF_UNSIGNED_INT sta.z w2 - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 sta.z w2+1 // BYTE0(w2) lda.z w2 diff --git a/src/test/ref/word-array-0.cfg b/src/test/ref/word-array-0.cfg index 5be14b019..b3a4964b6 100644 --- a/src/test/ref/word-array-0.cfg +++ b/src/test/ref/word-array-0.cfg @@ -1,12 +1,12 @@ void main() main: scope:[main] from - [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) + [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) [1] main::$0 = byte0 main::w1#0 [2] *main::SCREEN = main::$0 [3] main::$1 = byte1 main::w1#0 [4] *(main::SCREEN+1) = main::$1 - [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) + [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) [6] main::$2 = byte0 main::w2#0 [7] *(main::SCREEN+2) = main::$2 [8] main::$3 = byte1 main::w2#0 diff --git a/src/test/ref/word-array-0.log b/src/test/ref/word-array-0.log index 9f5510b8b..453af9876 100644 --- a/src/test/ref/word-array-0.log +++ b/src/test/ref/word-array-0.log @@ -3,13 +3,13 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$4 = 1 * SIZEOF_WORD + main::$4 = 1 * SIZEOF_UNSIGNED_INT main::w1#0 = main::words[main::$4] main::$0 = byte0 main::w1#0 main::SCREEN[0] = main::$0 main::$1 = byte1 main::w1#0 main::SCREEN[1] = main::$1 - main::$5 = 2 * SIZEOF_WORD + main::$5 = 2 * SIZEOF_UNSIGNED_INT main::w2#0 = main::words[main::$5] main::$2 = byte0 main::w2#0 main::SCREEN[2] = main::$2 @@ -22,7 +22,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -31,34 +31,34 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -number~ main::$4 -number~ main::$5 -constant byte* const main::SCREEN = (byte*)$400+6*$28 -word main::w1 -word main::w1#0 -word main::w2 -word main::w2#0 -constant word* main::words[3] = (word*)$400 +char main::$0 +char main::$1 +char main::$2 +char main::$3 +number main::$4 +number main::$5 +__constant char * const main::SCREEN = (char *)$400+6*$28 +unsigned int main::w1 +unsigned int main::w1#0 +unsigned int main::w2 +unsigned int main::w2#0 +__constant unsigned int main::words[3] = (unsigned int *)$400 Adding number conversion cast (unumber) 6*$28 in -Adding number conversion cast (unumber) 1 in main::$4 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$4 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$4 in main::$4 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$1 -Adding number conversion cast (unumber) 2 in main::$5 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 2 in main::$5 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)2 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$2 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -66,20 +66,20 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$4 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$5 = 2 * SIZEOF_WORD -Constant right-side identified [0] main::$4 = 1 * SIZEOF_WORD -Constant right-side identified [6] main::$5 = 2 * SIZEOF_WORD +Inferred type updated to char in main::$4 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$5 = 2 * SIZEOF_UNSIGNED_INT +Constant right-side identified [0] main::$4 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [6] main::$5 = 2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$4 = 1*SIZEOF_WORD -Constant main::$5 = 2*SIZEOF_WORD +Constant main::$4 = 1*SIZEOF_UNSIGNED_INT +Constant main::$5 = 2*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero main::SCREEN in [3] main::SCREEN[0] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -88,18 +88,18 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$5 = 2*SIZEOF_WORD -Constant inlined main::$4 = 1*SIZEOF_WORD +Constant inlined main::$5 = 2*SIZEOF_UNSIGNED_INT +Constant inlined main::$4 = 1*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::words+1*SIZEOF_WORD) +Consolidated array index constant in *(main::words+1*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+1) -Consolidated array index constant in *(main::words+2*SIZEOF_WORD) +Consolidated array index constant in *(main::words+2*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+2) Consolidated array index constant in *(main::SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 6*$28 Successful SSA optimization PassNCastSimplification @@ -112,12 +112,12 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) + [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) [1] main::$0 = byte0 main::w1#0 [2] *main::SCREEN = main::$0 [3] main::$1 = byte1 main::w1#0 [4] *(main::SCREEN+1) = main::$1 - [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) + [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) [6] main::$2 = byte0 main::w2#0 [7] *(main::SCREEN+2) = main::$2 [8] main::$3 = byte1 main::w2#0 @@ -130,14 +130,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 -word main::w1 -word main::w1#0 2.0 -word main::w2 -word main::w2#0 2.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +unsigned int main::w1 +unsigned int main::w1#0 // 2.0 +unsigned int main::w2 +unsigned int main::w2#0 // 2.0 Initial phi equivalence classes Added variable main::w1#0 to live range equivalence class [ main::w1#0 ] @@ -160,8 +160,8 @@ Allocated zp[2]:6 [ main::w2#0 ] Allocated zp[1]:8 [ main::$2 ] Allocated zp[1]:9 [ main::$3 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) [ main::w1#0 ] ( [ main::w1#0 ] { } ) always clobbers reg byte a -Statement [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) [ main::w2#0 ] ( [ main::w2#0 ] { } ) always clobbers reg byte a +Statement [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) [ main::w1#0 ] ( [ main::w1#0 ] { } ) always clobbers reg byte a +Statement [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) [ main::w2#0 ] ( [ main::w2#0 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::w1#0 ] : zp[2]:2 , Potential registers zp[1]:4 [ main::$0 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:5 [ main::$1 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -191,7 +191,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -199,10 +199,10 @@ main: { .label words = $400 .label w1 = 2 .label w2 = 4 - // [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+1*SIZEOF_WORD + // [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT sta.z w1 - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 sta.z w1+1 // [1] main::$0 = byte0 main::w1#0 -- vbuaa=_byte0_vwuz1 lda.z w1 @@ -212,10 +212,10 @@ main: { lda.z w1+1 // [4] *(main::SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 - // [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+2*SIZEOF_WORD + // [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT sta.z w2 - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 sta.z w2+1 // [6] main::$2 = byte0 main::w2#0 -- vbuaa=_byte0_vwuz1 lda.z w2 @@ -240,18 +240,18 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024+6*$28 -word main::w1 -word main::w1#0 w1 zp[2]:2 2.0 -word main::w2 -word main::w2#0 w2 zp[2]:4 2.0 -constant word* main::words[3] = (word*) 1024 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024+6*$28 +unsigned int main::w1 +unsigned int main::w1#0 // w1 zp[2]:2 2.0 +unsigned int main::w2 +unsigned int main::w2#0 // w2 zp[2]:4 2.0 +__constant unsigned int main::words[3] = (unsigned int *) 1024 zp[2]:2 [ main::w1#0 ] reg byte a [ main::$0 ] @@ -276,7 +276,7 @@ Score: 62 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -285,10 +285,10 @@ main: { .label w1 = 2 .label w2 = 4 // word w1 = words[1] - // [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+1*SIZEOF_WORD + // [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT sta.z w1 - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 sta.z w1+1 // BYTE0(w1) // [1] main::$0 = byte0 main::w1#0 -- vbuaa=_byte0_vwuz1 @@ -303,10 +303,10 @@ main: { // [4] *(main::SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 // word w2 = words[2] - // [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+2*SIZEOF_WORD + // [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT sta.z w2 - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 sta.z w2+1 // BYTE0(w2) // [6] main::$2 = byte0 main::w2#0 -- vbuaa=_byte0_vwuz1 diff --git a/src/test/ref/word-array-0.sym b/src/test/ref/word-array-0.sym index d1acad885..32854f3bb 100644 --- a/src/test/ref/word-array-0.sym +++ b/src/test/ref/word-array-0.sym @@ -1,15 +1,15 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024+6*$28 -word main::w1 -word main::w1#0 w1 zp[2]:2 2.0 -word main::w2 -word main::w2#0 w2 zp[2]:4 2.0 -constant word* main::words[3] = (word*) 1024 +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024+6*$28 +unsigned int main::w1 +unsigned int main::w1#0 // w1 zp[2]:2 2.0 +unsigned int main::w2 +unsigned int main::w2#0 // w2 zp[2]:4 2.0 +__constant unsigned int main::words[3] = (unsigned int *) 1024 zp[2]:2 [ main::w1#0 ] reg byte a [ main::$0 ] diff --git a/src/test/ref/word-array-1.log b/src/test/ref/word-array-1.log index dab5912d6..863c5e7be 100644 --- a/src/test/ref/word-array-1.log +++ b/src/test/ref/word-array-1.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::idx#4 = phi( main/main::idx#0, main::@1/main::idx#3 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$3 = main::i#2 * SIZEOF_WORD + main::$3 = main::i#2 * SIZEOF_UNSIGNED_INT main::w#0 = main::words[main::$3] main::$0 = byte1 main::w#0 main::SCREEN[main::idx#4] = main::$0 @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,29 +37,29 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -byte~ main::$3 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -word main::w -word main::w#0 -constant word* main::words[] = { $3031, $3233, $3435, $3637 } +char main::$0 +char main::$1 +bool main::$2 +char main::$3 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +unsigned int main::w +unsigned int main::w#0 +__constant unsigned int main::words[] = { $3031, $3233, $3435, $3637 } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$2 [14] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -77,16 +77,16 @@ Adding number conversion cast (unumber) 4 in [11] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [1] main::$3 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [1] main::$3 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::idx#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -127,19 +127,19 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte~ main::$3 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 3.3000000000000003 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 22.0 -byte main::idx#3 7.333333333333333 -byte main::idx#4 6.6000000000000005 -word main::w -word main::w#0 8.25 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::$3 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 3.3000000000000003 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 22.0 +char main::idx#3 // 7.333333333333333 +char main::idx#4 // 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -296,21 +296,21 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 3.3000000000000003 -byte main::idx -byte main::idx#1 reg byte y 11.0 -byte main::idx#2 reg byte a 22.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 6.6000000000000005 -word main::w -word main::w#0 w zp[2]:3 8.25 -constant word* main::words[] = { $3031, $3233, $3435, $3637 } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 3.3000000000000003 +char main::idx +char main::idx#1 // reg byte y 11.0 +char main::idx#2 // reg byte a 22.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:3 8.25 +__constant unsigned int main::words[] = { $3031, $3233, $3435, $3637 } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 ] diff --git a/src/test/ref/word-array-1.sym b/src/test/ref/word-array-1.sym index 72cd8fbb7..e85bfee5b 100644 --- a/src/test/ref/word-array-1.sym +++ b/src/test/ref/word-array-1.sym @@ -1,19 +1,19 @@ void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -byte~ main::$3 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 3.3000000000000003 -byte main::idx -byte main::idx#1 reg byte y 11.0 -byte main::idx#2 reg byte a 22.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 6.6000000000000005 -word main::w -word main::w#0 w zp[2]:3 8.25 -constant word* main::words[] = { $3031, $3233, $3435, $3637 } +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +char main::$3 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 3.3000000000000003 +char main::idx +char main::idx#1 // reg byte y 11.0 +char main::idx#2 // reg byte a 22.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:3 8.25 +__constant unsigned int main::words[] = { $3031, $3233, $3435, $3637 } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 ] diff --git a/src/test/ref/word-array-2.asm b/src/test/ref/word-array-2.asm index 7621a444d..4a2df9d82 100644 --- a/src/test/ref/word-array-2.asm +++ b/src/test/ref/word-array-2.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400 @@ -61,9 +61,9 @@ main: { cpx #0 bne __b1 // SCREEN[0] = words[(word)255] - lda words+$ff*SIZEOF_WORD + lda words+$ff*SIZEOF_UNSIGNED_INT sta SCREEN - lda words+$ff*SIZEOF_WORD+1 + lda words+$ff*SIZEOF_UNSIGNED_INT+1 sta SCREEN+1 // } rts diff --git a/src/test/ref/word-array-2.cfg b/src/test/ref/word-array-2.cfg index 225352c8c..377aa6880 100644 --- a/src/test/ref/word-array-2.cfg +++ b/src/test/ref/word-array-2.cfg @@ -5,10 +5,10 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] main::$6 = (word)main::i#2 + [2] main::$6 = (unsigned int)main::i#2 [3] main::$0 = main::$6 << 8 [4] main::$1 = main::$0 + main::i#2 - [5] main::$7 = (word)main::i#2 + [5] main::$7 = (unsigned int)main::i#2 [6] main::$3 = main::$7 << 1 [7] main::$8 = words + main::$3 [8] *main::$8 = main::$1 @@ -16,7 +16,7 @@ main::@1: scope:[main] from main main::@1 [10] if(main::i#1!=0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - [11] *main::SCREEN = *(words+$ff*SIZEOF_WORD) + [11] *main::SCREEN = *(words+$ff*SIZEOF_UNSIGNED_INT) to:main::@return main::@return: scope:[main] from main::@2 [12] return diff --git a/src/test/ref/word-array-2.log b/src/test/ref/word-array-2.log index 77b20765a..5647b58bb 100644 --- a/src/test/ref/word-array-2.log +++ b/src/test/ref/word-array-2.log @@ -7,19 +7,19 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$6 = (word)main::i#2 + main::$6 = (unsigned int)main::i#2 main::$0 = main::$6 * $100 main::$1 = main::$0 + main::i#2 - main::$7 = (word)main::i#2 - main::$3 = main::$7 * SIZEOF_WORD + main::$7 = (unsigned int)main::i#2 + main::$3 = main::$7 * SIZEOF_UNSIGNED_INT words[main::$3] = main::$1 main::i#1 = main::i#2 + rangenext(0,$ff) main::$2 = main::i#1 != rangelast(0,$ff) if(main::$2) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - main::$4 = (word)$ff * SIZEOF_WORD - main::$5 = 0 * SIZEOF_WORD + main::$4 = (unsigned int)$ff * SIZEOF_UNSIGNED_INT + main::$5 = 0 * SIZEOF_UNSIGNED_INT main::SCREEN[main::$5] = words[main::$4] to:main::@return main::@return: scope:[main] from main::@2 @@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -37,56 +37,56 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -number~ main::$0 -number~ main::$1 -bool~ main::$2 -word~ main::$3 -word~ main::$4 -number~ main::$5 -word~ main::$6 -word~ main::$7 -constant word* const main::SCREEN = (word*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant word* words[$100] = { fill( $100, 0) } +number main::$0 +number main::$1 +bool main::$2 +unsigned int main::$3 +unsigned int main::$4 +number main::$5 +unsigned int main::$6 +unsigned int main::$7 +__constant unsigned int * const main::SCREEN = (unsigned int *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant unsigned int words[$100] = { fill( $100, 0) } Adding number conversion cast (unumber) $100 in main::$0 = main::$6 * $100 Adding number conversion cast (unumber) main::$0 in main::$0 = main::$6 * (unumber)$100 Adding number conversion cast (unumber) main::$1 in main::$1 = main::$0 + main::i#2 -Adding number conversion cast (unumber) 0 in main::$5 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$5 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$5 in main::$5 = (unumber)0 * SIZEOF_UNSIGNED_INT Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast $100 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to word in main::$0 = main::$6 * $100 -Inferred type updated to word in main::$1 = main::$0 + main::i#2 -Inferred type updated to byte in main::$5 = 0 * SIZEOF_WORD +Inferred type updated to unsigned int in main::$0 = main::$6 * $100 +Inferred type updated to unsigned int in main::$1 = main::$0 + main::i#2 +Inferred type updated to char in main::$5 = 0 * SIZEOF_UNSIGNED_INT Simple Condition main::$2 [10] if(main::i#1!=rangelast(0,$ff)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [11] main::$4 = $ff * SIZEOF_WORD -Constant right-side identified [12] main::$5 = 0 * SIZEOF_WORD +Constant right-side identified [11] main::$4 = $ff * SIZEOF_UNSIGNED_INT +Constant right-side identified [12] main::$5 = 0 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$4 = $ff*SIZEOF_WORD -Constant main::$5 = 0*SIZEOF_WORD +Constant main::$4 = $ff*SIZEOF_UNSIGNED_INT +Constant main::$5 = 0*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [8] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [10] if(main::i#1!=rangelast(0,$ff)) goto main::@1 to 0 De-inlining pointer[w] to *(pointer+w) [7] words[main::$3] = main::$1 De-inlining pointer[w] to *(pointer+w) [13] main::SCREEN[main::$5] = words[main::$4] Successful SSA optimization Pass2DeInlineWordDerefIdx -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::SCREEN in [13] main::SCREEN[main::$5] = *main::$9 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -101,22 +101,22 @@ Adding number conversion cast (unumber) 0 in [9] if(main::i#1!=0) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Constant right-side identified [10] main::$9 = words + main::$4 Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::$9 = words+main::$4 Successful SSA optimization Pass2ConstantIdentification Rewriting multiplication to use shift [2] main::$0 = main::$6 * $100 -Rewriting multiplication to use shift [5] main::$3 = main::$7 * SIZEOF_WORD +Rewriting multiplication to use shift [5] main::$3 = main::$7 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 -Constant inlined main::$9 = words+$ff*SIZEOF_WORD +Constant inlined main::$9 = words+$ff*SIZEOF_UNSIGNED_INT Constant inlined main::i#0 = 0 -Constant inlined main::$4 = $ff*SIZEOF_WORD +Constant inlined main::$4 = $ff*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@3(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -136,10 +136,10 @@ main: scope:[main] from to:main::@1 main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) - [2] main::$6 = (word)main::i#2 + [2] main::$6 = (unsigned int)main::i#2 [3] main::$0 = main::$6 << 8 [4] main::$1 = main::$0 + main::i#2 - [5] main::$7 = (word)main::i#2 + [5] main::$7 = (unsigned int)main::i#2 [6] main::$3 = main::$7 << 1 [7] main::$8 = words + main::$3 [8] *main::$8 = main::$1 @@ -147,7 +147,7 @@ main::@1: scope:[main] from main main::@1 [10] if(main::i#1!=0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - [11] *main::SCREEN = *(words+$ff*SIZEOF_WORD) + [11] *main::SCREEN = *(words+$ff*SIZEOF_UNSIGNED_INT) to:main::@return main::@return: scope:[main] from main::@2 [12] return @@ -156,15 +156,15 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -word~ main::$0 22.0 -word~ main::$1 5.5 -word~ main::$3 22.0 -word~ main::$6 22.0 -word~ main::$7 22.0 -word*~ main::$8 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 4.125 +unsigned int main::$0 // 22.0 +unsigned int main::$1 // 5.5 +unsigned int main::$3 // 22.0 +unsigned int main::$6 // 22.0 +unsigned int main::$7 // 22.0 +unsigned int *main::$8 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 4.125 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -190,24 +190,24 @@ Allocated zp[2]:9 [ main::$7 ] Allocated zp[2]:11 [ main::$3 ] Allocated zp[2]:13 [ main::$8 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::$6 = (word)main::i#2 [ main::i#2 main::$6 ] ( [ main::i#2 main::$6 ] { } ) always clobbers reg byte a +Statement [2] main::$6 = (unsigned int)main::i#2 [ main::i#2 main::$6 ] ( [ main::i#2 main::$6 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement [3] main::$0 = main::$6 << 8 [ main::i#2 main::$0 ] ( [ main::i#2 main::$0 ] { } ) always clobbers reg byte a Statement [4] main::$1 = main::$0 + main::i#2 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a -Statement [5] main::$7 = (word)main::i#2 [ main::i#2 main::$1 main::$7 ] ( [ main::i#2 main::$1 main::$7 ] { } ) always clobbers reg byte a +Statement [5] main::$7 = (unsigned int)main::i#2 [ main::i#2 main::$1 main::$7 ] ( [ main::i#2 main::$1 main::$7 ] { } ) always clobbers reg byte a Statement [6] main::$3 = main::$7 << 1 [ main::i#2 main::$1 main::$3 ] ( [ main::i#2 main::$1 main::$3 ] { } ) always clobbers reg byte a Statement [7] main::$8 = words + main::$3 [ main::i#2 main::$1 main::$8 ] ( [ main::i#2 main::$1 main::$8 ] { } ) always clobbers reg byte a Statement [8] *main::$8 = main::$1 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::i#2 main::i#1 ] -Statement [11] *main::SCREEN = *(words+$ff*SIZEOF_WORD) [ ] ( [ ] { } ) always clobbers reg byte a -Statement [2] main::$6 = (word)main::i#2 [ main::i#2 main::$6 ] ( [ main::i#2 main::$6 ] { } ) always clobbers reg byte a +Statement [11] *main::SCREEN = *(words+$ff*SIZEOF_UNSIGNED_INT) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [2] main::$6 = (unsigned int)main::i#2 [ main::i#2 main::$6 ] ( [ main::i#2 main::$6 ] { } ) always clobbers reg byte a Statement [3] main::$0 = main::$6 << 8 [ main::i#2 main::$0 ] ( [ main::i#2 main::$0 ] { } ) always clobbers reg byte a Statement [4] main::$1 = main::$0 + main::i#2 [ main::i#2 main::$1 ] ( [ main::i#2 main::$1 ] { } ) always clobbers reg byte a -Statement [5] main::$7 = (word)main::i#2 [ main::i#2 main::$1 main::$7 ] ( [ main::i#2 main::$1 main::$7 ] { } ) always clobbers reg byte a +Statement [5] main::$7 = (unsigned int)main::i#2 [ main::i#2 main::$1 main::$7 ] ( [ main::i#2 main::$1 main::$7 ] { } ) always clobbers reg byte a Statement [6] main::$3 = main::$7 << 1 [ main::i#2 main::$1 main::$3 ] ( [ main::i#2 main::$1 main::$3 ] { } ) always clobbers reg byte a Statement [7] main::$8 = words + main::$3 [ main::i#2 main::$1 main::$8 ] ( [ main::i#2 main::$1 main::$8 ] { } ) always clobbers reg byte a Statement [8] *main::$8 = main::$1 [ main::i#2 ] ( [ main::i#2 ] { } ) always clobbers reg byte a reg byte y -Statement [11] *main::SCREEN = *(words+$ff*SIZEOF_WORD) [ ] ( [ ] { } ) always clobbers reg byte a +Statement [11] *main::SCREEN = *(words+$ff*SIZEOF_UNSIGNED_INT) [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , Potential registers zp[2]:3 [ main::$6 ] : zp[2]:3 , Potential registers zp[2]:5 [ main::$0 ] : zp[2]:5 , @@ -242,7 +242,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -264,7 +264,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] main::$6 = (word)main::i#2 -- vwuz1=_word_vbuxx + // [2] main::$6 = (unsigned int)main::i#2 -- vwuz1=_word_vbuxx txa sta.z __6 lda #0 @@ -282,7 +282,7 @@ main: { bcc !+ inc.z __1+1 !: - // [5] main::$7 = (word)main::i#2 -- vwuz1=_word_vbuxx + // [5] main::$7 = (unsigned int)main::i#2 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -313,10 +313,10 @@ main: { jmp __b2 // main::@2 __b2: - // [11] *main::SCREEN = *(words+$ff*SIZEOF_WORD) -- _deref_pwuc1=_deref_pwuc2 - lda words+$ff*SIZEOF_WORD + // [11] *main::SCREEN = *(words+$ff*SIZEOF_UNSIGNED_INT) -- _deref_pwuc1=_deref_pwuc2 + lda words+$ff*SIZEOF_UNSIGNED_INT sta SCREEN - lda words+$ff*SIZEOF_WORD+1 + lda words+$ff*SIZEOF_UNSIGNED_INT+1 sta SCREEN+1 jmp __breturn // main::@return @@ -344,19 +344,19 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word~ main::$0 zp[2]:2 22.0 -word~ main::$1 zp[2]:2 5.5 -word~ main::$3 zp[2]:4 22.0 -word~ main::$6 zp[2]:2 22.0 -word~ main::$7 zp[2]:4 22.0 -word*~ main::$8 zp[2]:4 22.0 -constant word* const main::SCREEN = (word*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.125 -constant word* words[$100] = { fill( $100, 0) } +unsigned int main::$0 // zp[2]:2 22.0 +unsigned int main::$1 // zp[2]:2 5.5 +unsigned int main::$3 // zp[2]:4 22.0 +unsigned int main::$6 // zp[2]:2 22.0 +unsigned int main::$7 // zp[2]:4 22.0 +unsigned int *main::$8 // zp[2]:4 22.0 +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.125 +__constant unsigned int words[$100] = { fill( $100, 0) } reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::$6 main::$0 main::$1 ] @@ -378,7 +378,7 @@ Score: 1092 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -397,7 +397,7 @@ main: { // main::@1 __b1: // ((word)i)*0x100 - // [2] main::$6 = (word)main::i#2 -- vwuz1=_word_vbuxx + // [2] main::$6 = (unsigned int)main::i#2 -- vwuz1=_word_vbuxx txa sta.z __6 lda #0 @@ -417,7 +417,7 @@ main: { inc.z __1+1 !: // words[(word)i] = ((word)i)*0x100+i - // [5] main::$7 = (word)main::i#2 -- vwuz1=_word_vbuxx + // [5] main::$7 = (unsigned int)main::i#2 -- vwuz1=_word_vbuxx txa sta.z __7 lda #0 @@ -448,10 +448,10 @@ main: { bne __b1 // main::@2 // SCREEN[0] = words[(word)255] - // [11] *main::SCREEN = *(words+$ff*SIZEOF_WORD) -- _deref_pwuc1=_deref_pwuc2 - lda words+$ff*SIZEOF_WORD + // [11] *main::SCREEN = *(words+$ff*SIZEOF_UNSIGNED_INT) -- _deref_pwuc1=_deref_pwuc2 + lda words+$ff*SIZEOF_UNSIGNED_INT sta SCREEN - lda words+$ff*SIZEOF_WORD+1 + lda words+$ff*SIZEOF_UNSIGNED_INT+1 sta SCREEN+1 // main::@return // } diff --git a/src/test/ref/word-array-2.sym b/src/test/ref/word-array-2.sym index f7fd79da4..b21147c45 100644 --- a/src/test/ref/word-array-2.sym +++ b/src/test/ref/word-array-2.sym @@ -1,16 +1,16 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -word~ main::$0 zp[2]:2 22.0 -word~ main::$1 zp[2]:2 5.5 -word~ main::$3 zp[2]:4 22.0 -word~ main::$6 zp[2]:2 22.0 -word~ main::$7 zp[2]:4 22.0 -word*~ main::$8 zp[2]:4 22.0 -constant word* const main::SCREEN = (word*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 4.125 -constant word* words[$100] = { fill( $100, 0) } +unsigned int main::$0 // zp[2]:2 22.0 +unsigned int main::$1 // zp[2]:2 5.5 +unsigned int main::$3 // zp[2]:4 22.0 +unsigned int main::$6 // zp[2]:2 22.0 +unsigned int main::$7 // zp[2]:4 22.0 +unsigned int *main::$8 // zp[2]:4 22.0 +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 4.125 +__constant unsigned int words[$100] = { fill( $100, 0) } reg byte x [ main::i#2 main::i#1 ] zp[2]:2 [ main::$6 main::$0 main::$1 ] diff --git a/src/test/ref/word-pointer-compound.asm b/src/test/ref/word-pointer-compound.asm index 3df90355e..8ace0e6c6 100644 --- a/src/test/ref/word-pointer-compound.asm +++ b/src/test/ref/word-pointer-compound.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400 @@ -37,19 +37,19 @@ main: { // SCREEN[1] = BYTE0(words[0]) sta SCREEN+1 // BYTE1(words[1]) - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 // SCREEN[2] = BYTE1(words[1]) sta SCREEN+2 // BYTE0(words[1]) - lda words+1*SIZEOF_WORD + lda words+1*SIZEOF_UNSIGNED_INT // SCREEN[3] = BYTE0(words[1]) sta SCREEN+3 // BYTE1(words[2]) - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 // SCREEN[4] = BYTE1(words[2]) sta SCREEN+4 // BYTE0(words[2]) - lda words+2*SIZEOF_WORD + lda words+2*SIZEOF_UNSIGNED_INT // SCREEN[5] = BYTE0(words[2]) sta SCREEN+5 // } diff --git a/src/test/ref/word-pointer-compound.cfg b/src/test/ref/word-pointer-compound.cfg index ed5edbfd3..a26c71038 100644 --- a/src/test/ref/word-pointer-compound.cfg +++ b/src/test/ref/word-pointer-compound.cfg @@ -15,13 +15,13 @@ main::@2: scope:[main] from main::@1 [7] *main::SCREEN = main::$0 [8] main::$1 = byte0 *main::words [9] *(main::SCREEN+1) = main::$1 - [10] main::$2 = byte1 *(main::words+1*SIZEOF_WORD) + [10] main::$2 = byte1 *(main::words+1*SIZEOF_UNSIGNED_INT) [11] *(main::SCREEN+2) = main::$2 - [12] main::$3 = byte0 *(main::words+1*SIZEOF_WORD) + [12] main::$3 = byte0 *(main::words+1*SIZEOF_UNSIGNED_INT) [13] *(main::SCREEN+3) = main::$3 - [14] main::$4 = byte1 *(main::words+2*SIZEOF_WORD) + [14] main::$4 = byte1 *(main::words+2*SIZEOF_UNSIGNED_INT) [15] *(main::SCREEN+4) = main::$4 - [16] main::$5 = byte0 *(main::words+2*SIZEOF_WORD) + [16] main::$5 = byte0 *(main::words+2*SIZEOF_UNSIGNED_INT) [17] *(main::SCREEN+5) = main::$5 to:main::@return main::@return: scope:[main] from main::@2 diff --git a/src/test/ref/word-pointer-compound.log b/src/test/ref/word-pointer-compound.log index a888ba6de..086be2c73 100644 --- a/src/test/ref/word-pointer-compound.log +++ b/src/test/ref/word-pointer-compound.log @@ -7,29 +7,29 @@ main: scope:[main] from __start to:main::@1 main::@1: scope:[main] from main main::@1 main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$7 = main::i#2 * SIZEOF_WORD + main::$7 = main::i#2 * SIZEOF_UNSIGNED_INT main::words[main::$7] = main::words[main::$7] + $101 main::i#1 = main::i#2 + rangenext(0,2) main::$6 = main::i#1 != rangelast(0,2) if(main::$6) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 - main::$8 = 0 * SIZEOF_WORD + main::$8 = 0 * SIZEOF_UNSIGNED_INT main::$0 = byte1 main::words[main::$8] main::SCREEN[0] = main::$0 - main::$9 = 0 * SIZEOF_WORD + main::$9 = 0 * SIZEOF_UNSIGNED_INT main::$1 = byte0 main::words[main::$9] main::SCREEN[1] = main::$1 - main::$10 = 1 * SIZEOF_WORD + main::$10 = 1 * SIZEOF_UNSIGNED_INT main::$2 = byte1 main::words[main::$10] main::SCREEN[2] = main::$2 - main::$11 = 1 * SIZEOF_WORD + main::$11 = 1 * SIZEOF_UNSIGNED_INT main::$3 = byte0 main::words[main::$11] main::SCREEN[3] = main::$3 - main::$12 = 2 * SIZEOF_WORD + main::$12 = 2 * SIZEOF_UNSIGNED_INT main::$4 = byte1 main::words[main::$12] main::SCREEN[4] = main::$4 - main::$13 = 2 * SIZEOF_WORD + main::$13 = 2 * SIZEOF_UNSIGNED_INT main::$5 = byte0 main::words[main::$13] main::SCREEN[5] = main::$5 to:main::@return @@ -39,7 +39,7 @@ main::@return: scope:[main] from main::@2 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -48,51 +48,51 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -number~ main::$10 -number~ main::$11 -number~ main::$12 -number~ main::$13 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -bool~ main::$6 -byte~ main::$7 -number~ main::$8 -number~ main::$9 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -constant word* main::words[] = { $3031, $3233, $3435 } +char main::$0 +char main::$1 +number main::$10 +number main::$11 +number main::$12 +number main::$13 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +bool main::$6 +char main::$7 +number main::$8 +number main::$9 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +__constant unsigned int main::words[] = { $3031, $3233, $3435 } Adding number conversion cast (unumber) $101 in main::words[main::$7] = main::words[main::$7] + $101 -Adding number conversion cast (unumber) 0 in main::$8 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$8 in main::$8 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$8 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$8 in main::$8 = (unumber)0 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 -Adding number conversion cast (unumber) 0 in main::$9 = 0 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$9 in main::$9 = (unumber)0 * SIZEOF_WORD +Adding number conversion cast (unumber) 0 in main::$9 = 0 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$9 in main::$9 = (unumber)0 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$1 -Adding number conversion cast (unumber) 1 in main::$10 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$10 in main::$10 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$10 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$10 in main::$10 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$2 -Adding number conversion cast (unumber) 1 in main::$11 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$11 in main::$11 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$11 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$11 in main::$11 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 -Adding number conversion cast (unumber) 2 in main::$12 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$12 in main::$12 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 2 in main::$12 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$12 in main::$12 = (unumber)2 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 4 in main::SCREEN[4] = main::$4 -Adding number conversion cast (unumber) 2 in main::$13 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$13 in main::$13 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 2 in main::$13 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$13 in main::$13 = (unumber)2 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 5 in main::SCREEN[5] = main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $101 Simplifying constant integer cast 0 Simplifying constant integer cast 0 @@ -107,47 +107,47 @@ Simplifying constant integer cast 4 Simplifying constant integer cast 2 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (word) $101 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (unsigned int) $101 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$8 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$9 = 0 * SIZEOF_WORD -Inferred type updated to byte in main::$10 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$11 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$12 = 2 * SIZEOF_WORD -Inferred type updated to byte in main::$13 = 2 * SIZEOF_WORD +Inferred type updated to char in main::$8 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$9 = 0 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$10 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$11 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$12 = 2 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$13 = 2 * SIZEOF_UNSIGNED_INT Simple Condition main::$6 [6] if(main::i#1!=rangelast(0,2)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [7] main::$8 = 0 * SIZEOF_WORD -Constant right-side identified [10] main::$9 = 0 * SIZEOF_WORD -Constant right-side identified [13] main::$10 = 1 * SIZEOF_WORD -Constant right-side identified [16] main::$11 = 1 * SIZEOF_WORD -Constant right-side identified [19] main::$12 = 2 * SIZEOF_WORD -Constant right-side identified [22] main::$13 = 2 * SIZEOF_WORD +Constant right-side identified [7] main::$8 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [10] main::$9 = 0 * SIZEOF_UNSIGNED_INT +Constant right-side identified [13] main::$10 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [16] main::$11 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [19] main::$12 = 2 * SIZEOF_UNSIGNED_INT +Constant right-side identified [22] main::$13 = 2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation Constant main::i#0 = 0 -Constant main::$8 = 0*SIZEOF_WORD -Constant main::$9 = 0*SIZEOF_WORD -Constant main::$10 = 1*SIZEOF_WORD -Constant main::$11 = 1*SIZEOF_WORD -Constant main::$12 = 2*SIZEOF_WORD -Constant main::$13 = 2*SIZEOF_WORD +Constant main::$8 = 0*SIZEOF_UNSIGNED_INT +Constant main::$9 = 0*SIZEOF_UNSIGNED_INT +Constant main::$10 = 1*SIZEOF_UNSIGNED_INT +Constant main::$11 = 1*SIZEOF_UNSIGNED_INT +Constant main::$12 = 2*SIZEOF_UNSIGNED_INT +Constant main::$13 = 2*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value [4] main::i#1 = ++ main::i#2 to ++ Resolved ranged comparison value [6] if(main::i#1!=rangelast(0,2)) goto main::@1 to 3 -Simplifying constant evaluating to zero 0*SIZEOF_WORD in -Simplifying constant evaluating to zero 0*SIZEOF_WORD in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in +Simplifying constant evaluating to zero 0*SIZEOF_UNSIGNED_INT in Successful SSA optimization PassNSimplifyConstantZero Simplifying expression containing zero main::words in [8] main::$0 = byte1 main::words[main::$8] Simplifying expression containing zero main::SCREEN in [9] main::SCREEN[0] = main::$0 @@ -165,25 +165,25 @@ Adding number conversion cast (unumber) 3 in [4] if(main::i#1!=3) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [1] main::$7 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [1] main::$7 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::i#0 -Constant inlined main::$12 = 2*SIZEOF_WORD +Constant inlined main::$12 = 2*SIZEOF_UNSIGNED_INT Constant inlined main::i#0 = 0 -Constant inlined main::$13 = 2*SIZEOF_WORD -Constant inlined main::$10 = 1*SIZEOF_WORD -Constant inlined main::$11 = 1*SIZEOF_WORD +Constant inlined main::$13 = 2*SIZEOF_UNSIGNED_INT +Constant inlined main::$10 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$11 = 1*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) -Consolidated array index constant in *(main::words+1*SIZEOF_WORD) +Consolidated array index constant in *(main::words+1*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+2) -Consolidated array index constant in *(main::words+1*SIZEOF_WORD) +Consolidated array index constant in *(main::words+1*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+3) -Consolidated array index constant in *(main::words+2*SIZEOF_WORD) +Consolidated array index constant in *(main::words+2*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+4) -Consolidated array index constant in *(main::words+2*SIZEOF_WORD) +Consolidated array index constant in *(main::words+2*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+5) Successful SSA optimization Pass2ConstantAdditionElimination Added new block during phi lifting main::@3(between main::@1 and main::@1) @@ -214,13 +214,13 @@ main::@2: scope:[main] from main::@1 [7] *main::SCREEN = main::$0 [8] main::$1 = byte0 *main::words [9] *(main::SCREEN+1) = main::$1 - [10] main::$2 = byte1 *(main::words+1*SIZEOF_WORD) + [10] main::$2 = byte1 *(main::words+1*SIZEOF_UNSIGNED_INT) [11] *(main::SCREEN+2) = main::$2 - [12] main::$3 = byte0 *(main::words+1*SIZEOF_WORD) + [12] main::$3 = byte0 *(main::words+1*SIZEOF_UNSIGNED_INT) [13] *(main::SCREEN+3) = main::$3 - [14] main::$4 = byte1 *(main::words+2*SIZEOF_WORD) + [14] main::$4 = byte1 *(main::words+2*SIZEOF_UNSIGNED_INT) [15] *(main::SCREEN+4) = main::$4 - [16] main::$5 = byte0 *(main::words+2*SIZEOF_WORD) + [16] main::$5 = byte0 *(main::words+2*SIZEOF_UNSIGNED_INT) [17] *(main::SCREEN+5) = main::$5 to:main::@return main::@return: scope:[main] from main::@2 @@ -230,16 +230,16 @@ main::@return: scope:[main] from main::@2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 -byte~ main::$4 4.0 -byte~ main::$5 4.0 -byte~ main::$7 33.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +char main::$4 // 4.0 +char main::$5 // 4.0 +char main::$7 // 33.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -311,7 +311,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -355,20 +355,20 @@ main: { lda words // [9] *(main::SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 - // [10] main::$2 = byte1 *(main::words+1*SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda words+1*SIZEOF_WORD+1 + // [10] main::$2 = byte1 *(main::words+1*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT+1 // [11] *(main::SCREEN+2) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+2 - // [12] main::$3 = byte0 *(main::words+1*SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda words+1*SIZEOF_WORD + // [12] main::$3 = byte0 *(main::words+1*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT // [13] *(main::SCREEN+3) = main::$3 -- _deref_pbuc1=vbuaa sta SCREEN+3 - // [14] main::$4 = byte1 *(main::words+2*SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda words+2*SIZEOF_WORD+1 + // [14] main::$4 = byte1 *(main::words+2*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT+1 // [15] *(main::SCREEN+4) = main::$4 -- _deref_pbuc1=vbuaa sta SCREEN+4 - // [16] main::$5 = byte0 *(main::words+2*SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda words+2*SIZEOF_WORD + // [16] main::$5 = byte0 *(main::words+2*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT // [17] *(main::SCREEN+5) = main::$5 -- _deref_pbuc1=vbuaa sta SCREEN+5 jmp __breturn @@ -397,20 +397,20 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -byte~ main::$7 reg byte a 33.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -constant word* main::words[] = { $3031, $3233, $3435 } +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +char main::$7 // reg byte a 33.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +__constant unsigned int main::words[] = { $3031, $3233, $3435 } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$7 ] @@ -437,7 +437,7 @@ Score: 449 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -482,26 +482,26 @@ main: { // [9] *(main::SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 // BYTE1(words[1]) - // [10] main::$2 = byte1 *(main::words+1*SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda words+1*SIZEOF_WORD+1 + // [10] main::$2 = byte1 *(main::words+1*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT+1 // SCREEN[2] = BYTE1(words[1]) // [11] *(main::SCREEN+2) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+2 // BYTE0(words[1]) - // [12] main::$3 = byte0 *(main::words+1*SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda words+1*SIZEOF_WORD + // [12] main::$3 = byte0 *(main::words+1*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT // SCREEN[3] = BYTE0(words[1]) // [13] *(main::SCREEN+3) = main::$3 -- _deref_pbuc1=vbuaa sta SCREEN+3 // BYTE1(words[2]) - // [14] main::$4 = byte1 *(main::words+2*SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda words+2*SIZEOF_WORD+1 + // [14] main::$4 = byte1 *(main::words+2*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT+1 // SCREEN[4] = BYTE1(words[2]) // [15] *(main::SCREEN+4) = main::$4 -- _deref_pbuc1=vbuaa sta SCREEN+4 // BYTE0(words[2]) - // [16] main::$5 = byte0 *(main::words+2*SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda words+2*SIZEOF_WORD + // [16] main::$5 = byte0 *(main::words+2*SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT // SCREEN[5] = BYTE0(words[2]) // [17] *(main::SCREEN+5) = main::$5 -- _deref_pbuc1=vbuaa sta SCREEN+5 diff --git a/src/test/ref/word-pointer-compound.sym b/src/test/ref/word-pointer-compound.sym index 05ae416e4..9a82eda36 100644 --- a/src/test/ref/word-pointer-compound.sym +++ b/src/test/ref/word-pointer-compound.sym @@ -1,17 +1,17 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -byte~ main::$7 reg byte a 33.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 -constant word* main::words[] = { $3031, $3233, $3435 } +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +char main::$7 // reg byte a 33.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 +__constant unsigned int main::words[] = { $3031, $3233, $3435 } reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$7 ] diff --git a/src/test/ref/word-pointer-iteration-0.asm b/src/test/ref/word-pointer-iteration-0.asm index 15bde954e..a2b8830e0 100644 --- a/src/test/ref/word-pointer-iteration-0.asm +++ b/src/test/ref/word-pointer-iteration-0.asm @@ -7,32 +7,32 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400+$28*6 // BYTE0(*wp) - lda $400+SIZEOF_WORD + lda $400+SIZEOF_UNSIGNED_INT // SCREEN[0] = BYTE0(*wp) sta SCREEN // BYTE1(*wp) - lda $400+SIZEOF_WORD+1 + lda $400+SIZEOF_UNSIGNED_INT+1 // SCREEN[1] = BYTE1(*wp) sta SCREEN+1 // BYTE0(*wp) - lda $400+SIZEOF_WORD+SIZEOF_WORD + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT // SCREEN[2] = BYTE0(*wp) sta SCREEN+2 // BYTE1(*wp) - lda $400+SIZEOF_WORD+SIZEOF_WORD+1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT+1 // SCREEN[3] = BYTE1(*wp) sta SCREEN+3 // BYTE0(*wp) - lda $400+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT // SCREEN[4] = BYTE0(*wp) sta SCREEN+4 // BYTE1(*wp) - lda $400+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD+1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT+1 // SCREEN[5] = BYTE1(*wp) sta SCREEN+5 // } diff --git a/src/test/ref/word-pointer-iteration-0.cfg b/src/test/ref/word-pointer-iteration-0.cfg index 46f425a32..713467451 100644 --- a/src/test/ref/word-pointer-iteration-0.cfg +++ b/src/test/ref/word-pointer-iteration-0.cfg @@ -1,17 +1,17 @@ void main() main: scope:[main] from - [0] main::$0 = byte0 *((word*) 1024+SIZEOF_WORD) + [0] main::$0 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) [1] *main::SCREEN = main::$0 - [2] main::$1 = byte1 *((word*) 1024+SIZEOF_WORD) + [2] main::$1 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) [3] *(main::SCREEN+1) = main::$1 - [4] main::$2 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) + [4] main::$2 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) [5] *(main::SCREEN+2) = main::$2 - [6] main::$3 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) + [6] main::$3 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) [7] *(main::SCREEN+3) = main::$3 - [8] main::$4 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) + [8] main::$4 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) [9] *(main::SCREEN+4) = main::$4 - [10] main::$5 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) + [10] main::$5 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) [11] *(main::SCREEN+5) = main::$5 to:main::@return main::@return: scope:[main] from main diff --git a/src/test/ref/word-pointer-iteration-0.log b/src/test/ref/word-pointer-iteration-0.log index ca046ed9a..10b79c50f 100644 --- a/src/test/ref/word-pointer-iteration-0.log +++ b/src/test/ref/word-pointer-iteration-0.log @@ -3,18 +3,18 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::wp#0 = (word*)$400 - main::wp#1 = main::wp#0 + SIZEOF_WORD + main::wp#0 = (unsigned int *)$400 + main::wp#1 = main::wp#0 + SIZEOF_UNSIGNED_INT main::$0 = byte0 *main::wp#1 main::SCREEN[0] = main::$0 main::$1 = byte1 *main::wp#1 main::SCREEN[1] = main::$1 - main::wp#2 = main::wp#1 + SIZEOF_WORD + main::wp#2 = main::wp#1 + SIZEOF_UNSIGNED_INT main::$2 = byte0 *main::wp#2 main::SCREEN[2] = main::$2 main::$3 = byte1 *main::wp#2 main::SCREEN[3] = main::$3 - main::wp#3 = main::wp#2 - SIZEOF_WORD + main::wp#3 = main::wp#2 - SIZEOF_UNSIGNED_INT main::$4 = byte0 *main::wp#3 main::SCREEN[4] = main::$4 main::$5 = byte1 *main::wp#3 @@ -26,7 +26,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -35,21 +35,21 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -byte~ main::$2 -byte~ main::$3 -byte~ main::$4 -byte~ main::$5 -constant byte* const main::SCREEN = (byte*)$400+$28*6 -word* main::wp -word* main::wp#0 -word* main::wp#1 -word* main::wp#2 -word* main::wp#3 +char main::$0 +char main::$1 +char main::$2 +char main::$3 +char main::$4 +char main::$5 +__constant char * const main::SCREEN = (char *)$400+$28*6 +unsigned int *main::wp +unsigned int *main::wp#0 +unsigned int *main::wp#1 +unsigned int *main::wp#2 +unsigned int *main::wp#3 Adding number conversion cast (unumber) $28*6 in Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$0 @@ -59,8 +59,8 @@ Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$3 Adding number conversion cast (unumber) 4 in main::SCREEN[4] = main::$4 Adding number conversion cast (unumber) 5 in main::SCREEN[5] = main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 2 @@ -68,14 +68,14 @@ Simplifying constant integer cast 3 Simplifying constant integer cast 4 Simplifying constant integer cast 5 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) 5 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) 5 Successful SSA optimization PassNFinalizeNumberTypeConversions -Constant main::wp#0 = (word*) 1024 +Constant main::wp#0 = (unsigned int *) 1024 Successful SSA optimization Pass2ConstantIdentification Simplifying expression containing zero main::SCREEN in [3] main::SCREEN[0] = main::$0 Successful SSA optimization PassNSimplifyExpressionWithZero @@ -84,26 +84,26 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [0] main::wp#1 = main::wp#0 + SIZEOF_WORD +Constant right-side identified [0] main::wp#1 = main::wp#0 + SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::wp#1 = main::wp#0+SIZEOF_WORD +Constant main::wp#1 = main::wp#0+SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [4] main::wp#2 = main::wp#1 + SIZEOF_WORD +Constant right-side identified [4] main::wp#2 = main::wp#1 + SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::wp#2 = main::wp#1+SIZEOF_WORD +Constant main::wp#2 = main::wp#1+SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification -Constant right-side identified [8] main::wp#3 = main::wp#2 - SIZEOF_WORD +Constant right-side identified [8] main::wp#3 = main::wp#2 - SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::wp#3 = main::wp#2-SIZEOF_WORD +Constant main::wp#3 = main::wp#2-SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Inlining constant with different constant siblings main::wp#0 Inlining constant with different constant siblings main::wp#1 Inlining constant with different constant siblings main::wp#2 Inlining constant with different constant siblings main::wp#3 -Constant inlined main::wp#0 = (word*) 1024 -Constant inlined main::wp#3 = (word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD -Constant inlined main::wp#1 = (word*) 1024+SIZEOF_WORD -Constant inlined main::wp#2 = (word*) 1024+SIZEOF_WORD+SIZEOF_WORD +Constant inlined main::wp#0 = (unsigned int *) 1024 +Constant inlined main::wp#3 = (unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT +Constant inlined main::wp#1 = (unsigned int *) 1024+SIZEOF_UNSIGNED_INT +Constant inlined main::wp#2 = (unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(main::SCREEN+1) Consolidated array index constant in *(main::SCREEN+2) @@ -111,8 +111,8 @@ Consolidated array index constant in *(main::SCREEN+3) Consolidated array index constant in *(main::SCREEN+4) Consolidated array index constant in *(main::SCREEN+5) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 6 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 6 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $28*6 Successful SSA optimization PassNCastSimplification @@ -125,17 +125,17 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::$0 = byte0 *((word*) 1024+SIZEOF_WORD) + [0] main::$0 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) [1] *main::SCREEN = main::$0 - [2] main::$1 = byte1 *((word*) 1024+SIZEOF_WORD) + [2] main::$1 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) [3] *(main::SCREEN+1) = main::$1 - [4] main::$2 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) + [4] main::$2 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) [5] *(main::SCREEN+2) = main::$2 - [6] main::$3 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) + [6] main::$3 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) [7] *(main::SCREEN+3) = main::$3 - [8] main::$4 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) + [8] main::$4 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) [9] *(main::SCREEN+4) = main::$4 - [10] main::$5 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) + [10] main::$5 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) [11] *(main::SCREEN+5) = main::$5 to:main::@return main::@return: scope:[main] from main @@ -145,13 +145,13 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 4.0 -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$3 4.0 -byte~ main::$4 4.0 -byte~ main::$5 4.0 -word* main::wp +char main::$0 // 4.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$3 // 4.0 +char main::$4 // 4.0 +char main::$5 // 4.0 +unsigned int *main::wp Initial phi equivalence classes Added variable main::$0 to live range equivalence class [ main::$0 ] @@ -206,33 +206,33 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { .label SCREEN = $400+$28*6 - // [0] main::$0 = byte0 *((word*) 1024+SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda $400+SIZEOF_WORD + // [0] main::$0 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT // [1] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN - // [2] main::$1 = byte1 *((word*) 1024+SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda $400+SIZEOF_WORD+1 + // [2] main::$1 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+1 // [3] *(main::SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 - // [4] main::$2 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD + // [4] main::$2 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT // [5] *(main::SCREEN+2) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+2 - // [6] main::$3 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD+1 + // [6] main::$3 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT+1 // [7] *(main::SCREEN+3) = main::$3 -- _deref_pbuc1=vbuaa sta SCREEN+3 - // [8] main::$4 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD + // [8] main::$4 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT // [9] *(main::SCREEN+4) = main::$4 -- _deref_pbuc1=vbuaa sta SCREEN+4 - // [10] main::$5 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD+1 + // [10] main::$5 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT+1 // [11] *(main::SCREEN+5) = main::$5 -- _deref_pbuc1=vbuaa sta SCREEN+5 jmp __breturn @@ -250,16 +250,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024+$28*6 -word* main::wp +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024+$28*6 +unsigned int *main::wp reg byte a [ main::$0 ] reg byte a [ main::$1 ] @@ -284,44 +284,44 @@ Score: 54 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { .label SCREEN = $400+$28*6 // BYTE0(*wp) - // [0] main::$0 = byte0 *((word*) 1024+SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda $400+SIZEOF_WORD + // [0] main::$0 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT // SCREEN[0] = BYTE0(*wp) // [1] *main::SCREEN = main::$0 -- _deref_pbuc1=vbuaa sta SCREEN // BYTE1(*wp) - // [2] main::$1 = byte1 *((word*) 1024+SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda $400+SIZEOF_WORD+1 + // [2] main::$1 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+1 // SCREEN[1] = BYTE1(*wp) // [3] *(main::SCREEN+1) = main::$1 -- _deref_pbuc1=vbuaa sta SCREEN+1 // BYTE0(*wp) - // [4] main::$2 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD + // [4] main::$2 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT // SCREEN[2] = BYTE0(*wp) // [5] *(main::SCREEN+2) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+2 // BYTE1(*wp) - // [6] main::$3 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD+1 + // [6] main::$3 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT+1 // SCREEN[3] = BYTE1(*wp) // [7] *(main::SCREEN+3) = main::$3 -- _deref_pbuc1=vbuaa sta SCREEN+3 // BYTE0(*wp) - // [8] main::$4 = byte0 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) -- vbuaa=_byte0__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD + // [8] main::$4 = byte0 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) -- vbuaa=_byte0__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT // SCREEN[4] = BYTE0(*wp) // [9] *(main::SCREEN+4) = main::$4 -- _deref_pbuc1=vbuaa sta SCREEN+4 // BYTE1(*wp) - // [10] main::$5 = byte1 *((word*) 1024+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD) -- vbuaa=_byte1__deref_pwuc1 - lda $400+SIZEOF_WORD+SIZEOF_WORD-SIZEOF_WORD+1 + // [10] main::$5 = byte1 *((unsigned int *) 1024+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT) -- vbuaa=_byte1__deref_pwuc1 + lda $400+SIZEOF_UNSIGNED_INT+SIZEOF_UNSIGNED_INT-SIZEOF_UNSIGNED_INT+1 // SCREEN[5] = BYTE1(*wp) // [11] *(main::SCREEN+5) = main::$5 -- _deref_pbuc1=vbuaa sta SCREEN+5 diff --git a/src/test/ref/word-pointer-iteration-0.sym b/src/test/ref/word-pointer-iteration-0.sym index dfdbe65bb..eb7888c7e 100644 --- a/src/test/ref/word-pointer-iteration-0.sym +++ b/src/test/ref/word-pointer-iteration-0.sym @@ -1,13 +1,13 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 4.0 -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$3 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024+$28*6 -word* main::wp +char main::$0 // reg byte a 4.0 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$3 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024+$28*6 +unsigned int *main::wp reg byte a [ main::$0 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/word-pointer-iteration.asm b/src/test/ref/word-pointer-iteration.asm index 7ef51859b..fb830911e 100644 --- a/src/test/ref/word-pointer-iteration.asm +++ b/src/test/ref/word-pointer-iteration.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400 @@ -29,7 +29,7 @@ main: { iny lda (wp),y sta.z w+1 - lda #SIZEOF_WORD + lda #SIZEOF_UNSIGNED_INT clc adc.z wp sta.z wp diff --git a/src/test/ref/word-pointer-iteration.cfg b/src/test/ref/word-pointer-iteration.cfg index 54d9c1749..5fffa6b16 100644 --- a/src/test/ref/word-pointer-iteration.cfg +++ b/src/test/ref/word-pointer-iteration.cfg @@ -8,7 +8,7 @@ main::@1: scope:[main] from main main::@1 [1] main::idx#4 = phi( main/0, main::@1/main::idx#3 ) [1] main::wp#2 = phi( main/main::words, main::@1/main::wp#1 ) [2] main::w#0 = *main::wp#2 - [3] main::wp#1 = main::wp#2 + SIZEOF_WORD + [3] main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT [4] main::$0 = byte0 main::w#0 [5] main::SCREEN[main::idx#4] = main::$0 [6] main::idx#1 = ++ main::idx#4 diff --git a/src/test/ref/word-pointer-iteration.log b/src/test/ref/word-pointer-iteration.log index 9f749ed27..48db3418a 100644 --- a/src/test/ref/word-pointer-iteration.log +++ b/src/test/ref/word-pointer-iteration.log @@ -12,7 +12,7 @@ main::@1: scope:[main] from main main::@1 main::idx#4 = phi( main/main::idx#0, main::@1/main::idx#3 ) main::wp#2 = phi( main/main::wp#0, main::@1/main::wp#1 ) main::w#0 = *main::wp#2 - main::wp#1 = main::wp#2 + SIZEOF_WORD + main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT main::$0 = byte0 main::w#0 main::SCREEN[main::idx#4] = main::$0 main::idx#1 = ++ main::idx#4 @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -39,32 +39,32 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -byte~ main::$0 -byte~ main::$1 -bool~ main::$2 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -word main::w -word main::w#0 -constant word* main::words[] = { $3130, $3332, $3534, $3736 } -word* main::wp -word* main::wp#0 -word* main::wp#1 -word* main::wp#2 +char main::$0 +char main::$1 +bool main::$2 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +unsigned int main::w +unsigned int main::w#0 +__constant unsigned int main::words[] = { $3130, $3332, $3534, $3736 } +unsigned int *main::wp +unsigned int *main::wp#0 +unsigned int *main::wp#1 +unsigned int *main::wp#2 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$2 [15] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -83,7 +83,7 @@ Adding number conversion cast (unumber) 4 in [11] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::wp#0 @@ -115,7 +115,7 @@ main::@1: scope:[main] from main main::@1 [1] main::idx#4 = phi( main/0, main::@1/main::idx#3 ) [1] main::wp#2 = phi( main/main::words, main::@1/main::wp#1 ) [2] main::w#0 = *main::wp#2 - [3] main::wp#1 = main::wp#2 + SIZEOF_WORD + [3] main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT [4] main::$0 = byte0 main::w#0 [5] main::SCREEN[main::idx#4] = main::$0 [6] main::idx#1 = ++ main::idx#4 @@ -133,21 +133,21 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$0 22.0 -byte~ main::$1 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 2.2 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 22.0 -byte main::idx#3 7.333333333333333 -byte main::idx#4 6.6000000000000005 -word main::w -word main::w#0 6.6000000000000005 -word* main::wp -word* main::wp#1 2.2 -word* main::wp#2 16.5 +char main::$0 // 22.0 +char main::$1 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 2.2 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 22.0 +char main::idx#3 // 7.333333333333333 +char main::idx#4 // 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // 6.6000000000000005 +unsigned int *main::wp +unsigned int *main::wp#1 // 2.2 +unsigned int *main::wp#2 // 16.5 Initial phi equivalence classes [ main::wp#2 main::wp#1 ] @@ -181,9 +181,9 @@ Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::idx#4 main::idx#3 ] Removing always clobbered register reg byte a as potential for zp[1]:5 [ main::i#2 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:5 [ main::i#2 main::i#1 ] -Statement [3] main::wp#1 = main::wp#2 + SIZEOF_WORD [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] ( [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] { } ) always clobbers reg byte a +Statement [3] main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] ( [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] { } ) always clobbers reg byte a Statement [2] main::w#0 = *main::wp#2 [ main::wp#2 main::idx#4 main::i#2 main::w#0 ] ( [ main::wp#2 main::idx#4 main::i#2 main::w#0 ] { } ) always clobbers reg byte a reg byte y -Statement [3] main::wp#1 = main::wp#2 + SIZEOF_WORD [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] ( [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] { } ) always clobbers reg byte a +Statement [3] main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] ( [ main::idx#4 main::i#2 main::wp#1 main::w#0 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::wp#2 main::wp#1 ] : zp[2]:2 , Potential registers zp[1]:4 [ main::idx#4 main::idx#3 ] : zp[1]:4 , reg byte x , Potential registers zp[1]:5 [ main::i#2 main::i#1 ] : zp[1]:5 , reg byte x , @@ -219,7 +219,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -255,8 +255,8 @@ main: { iny lda (wp),y sta.z w+1 - // [3] main::wp#1 = main::wp#2 + SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD + // [3] main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT clc adc.z wp sta.z wp @@ -315,25 +315,25 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 2.2 -byte main::idx -byte main::idx#1 reg byte y 11.0 -byte main::idx#2 reg byte a 22.0 -byte main::idx#3 idx zp[1]:4 7.333333333333333 -byte main::idx#4 idx zp[1]:4 6.6000000000000005 -word main::w -word main::w#0 w zp[2]:5 6.6000000000000005 -constant word* main::words[] = { $3130, $3332, $3534, $3736 } -word* main::wp -word* main::wp#1 wp zp[2]:2 2.2 -word* main::wp#2 wp zp[2]:2 16.5 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 2.2 +char main::idx +char main::idx#1 // reg byte y 11.0 +char main::idx#2 // reg byte a 22.0 +char main::idx#3 // idx zp[1]:4 7.333333333333333 +char main::idx#4 // idx zp[1]:4 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:5 6.6000000000000005 +__constant unsigned int main::words[] = { $3130, $3332, $3534, $3736 } +unsigned int *main::wp +unsigned int *main::wp#1 // wp zp[2]:2 2.2 +unsigned int *main::wp#2 // wp zp[2]:2 16.5 zp[2]:2 [ main::wp#2 main::wp#1 ] zp[1]:4 [ main::idx#4 main::idx#3 ] @@ -360,7 +360,7 @@ Score: 946 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -393,8 +393,8 @@ main: { iny lda (wp),y sta.z w+1 - // [3] main::wp#1 = main::wp#2 + SIZEOF_WORD -- pwuz1=pwuz1_plus_vbuc1 - lda #SIZEOF_WORD + // [3] main::wp#1 = main::wp#2 + SIZEOF_UNSIGNED_INT -- pwuz1=pwuz1_plus_vbuc1 + lda #SIZEOF_UNSIGNED_INT clc adc.z wp sta.z wp diff --git a/src/test/ref/word-pointer-iteration.sym b/src/test/ref/word-pointer-iteration.sym index 7e52b597e..6a5bf57f1 100644 --- a/src/test/ref/word-pointer-iteration.sym +++ b/src/test/ref/word-pointer-iteration.sym @@ -1,22 +1,22 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$0 reg byte a 22.0 -byte~ main::$1 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 2.2 -byte main::idx -byte main::idx#1 reg byte y 11.0 -byte main::idx#2 reg byte a 22.0 -byte main::idx#3 idx zp[1]:4 7.333333333333333 -byte main::idx#4 idx zp[1]:4 6.6000000000000005 -word main::w -word main::w#0 w zp[2]:5 6.6000000000000005 -constant word* main::words[] = { $3130, $3332, $3534, $3736 } -word* main::wp -word* main::wp#1 wp zp[2]:2 2.2 -word* main::wp#2 wp zp[2]:2 16.5 +char main::$0 // reg byte a 22.0 +char main::$1 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 2.2 +char main::idx +char main::idx#1 // reg byte y 11.0 +char main::idx#2 // reg byte a 22.0 +char main::idx#3 // idx zp[1]:4 7.333333333333333 +char main::idx#4 // idx zp[1]:4 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:5 6.6000000000000005 +__constant unsigned int main::words[] = { $3130, $3332, $3534, $3736 } +unsigned int *main::wp +unsigned int *main::wp#1 // wp zp[2]:2 2.2 +unsigned int *main::wp#2 // wp zp[2]:2 16.5 zp[2]:2 [ main::wp#2 main::wp#1 ] zp[1]:4 [ main::idx#4 main::idx#3 ] diff --git a/src/test/ref/word-pointer-math-0.asm b/src/test/ref/word-pointer-math-0.asm index 682db18fe..3f3c41ca4 100644 --- a/src/test/ref/word-pointer-math-0.asm +++ b/src/test/ref/word-pointer-math-0.asm @@ -7,7 +7,7 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { .label SCREEN = $400+6*$28 @@ -15,9 +15,9 @@ main: { .label w1 = 2 .label w2 = 4 // word w1 = *(words+1) - lda words+1*SIZEOF_WORD + lda words+1*SIZEOF_UNSIGNED_INT sta.z w1 - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 sta.z w1+1 // BYTE0(w1) lda.z w1 @@ -28,9 +28,9 @@ main: { // SCREEN[1] = BYTE1(w1) sta SCREEN+1 // word w2 = *(words+2) - lda words+2*SIZEOF_WORD + lda words+2*SIZEOF_UNSIGNED_INT sta.z w2 - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 sta.z w2+1 // BYTE0(w2) lda.z w2 diff --git a/src/test/ref/word-pointer-math-0.cfg b/src/test/ref/word-pointer-math-0.cfg index 909af388b..204d4ffda 100644 --- a/src/test/ref/word-pointer-math-0.cfg +++ b/src/test/ref/word-pointer-math-0.cfg @@ -1,12 +1,12 @@ void main() main: scope:[main] from - [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) + [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) [1] main::$1 = byte0 main::w1#0 [2] *main::SCREEN = main::$1 [3] main::$2 = byte1 main::w1#0 [4] *(main::SCREEN+1) = main::$2 - [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) + [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) [6] main::$4 = byte0 main::w2#0 [7] *(main::SCREEN+2) = main::$4 [8] main::$5 = byte1 main::w2#0 diff --git a/src/test/ref/word-pointer-math-0.log b/src/test/ref/word-pointer-math-0.log index 5df88d536..0691411f8 100644 --- a/src/test/ref/word-pointer-math-0.log +++ b/src/test/ref/word-pointer-math-0.log @@ -3,14 +3,14 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - main::$6 = 1 * SIZEOF_WORD + main::$6 = 1 * SIZEOF_UNSIGNED_INT main::$0 = main::words + main::$6 main::w1#0 = *main::$0 main::$1 = byte0 main::w1#0 main::SCREEN[0] = main::$1 main::$2 = byte1 main::w1#0 main::SCREEN[1] = main::$2 - main::$7 = 2 * SIZEOF_WORD + main::$7 = 2 * SIZEOF_UNSIGNED_INT main::$3 = main::words + main::$7 main::w2#0 = *main::$3 main::$4 = byte0 main::w2#0 @@ -24,7 +24,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -33,36 +33,36 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word*~ main::$0 -byte~ main::$1 -byte~ main::$2 -word*~ main::$3 -byte~ main::$4 -byte~ main::$5 -number~ main::$6 -number~ main::$7 -constant byte* const main::SCREEN = (byte*)$400+6*$28 -word main::w1 -word main::w1#0 -word main::w2 -word main::w2#0 -constant word* main::words = (word*)$400 +unsigned int *main::$0 +char main::$1 +char main::$2 +unsigned int *main::$3 +char main::$4 +char main::$5 +number main::$6 +number main::$7 +__constant char * const main::SCREEN = (char *)$400+6*$28 +unsigned int main::w1 +unsigned int main::w1#0 +unsigned int main::w2 +unsigned int main::w2#0 +__constant unsigned int *main::words = (unsigned int *)$400 Adding number conversion cast (unumber) 6*$28 in -Adding number conversion cast (unumber) 1 in main::$6 = 1 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$6 in main::$6 = (unumber)1 * SIZEOF_WORD +Adding number conversion cast (unumber) 1 in main::$6 = 1 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$6 in main::$6 = (unumber)1 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 0 in main::SCREEN[0] = main::$1 Adding number conversion cast (unumber) 1 in main::SCREEN[1] = main::$2 -Adding number conversion cast (unumber) 2 in main::$7 = 2 * SIZEOF_WORD -Adding number conversion cast (unumber) main::$7 in main::$7 = (unumber)2 * SIZEOF_WORD +Adding number conversion cast (unumber) 2 in main::$7 = 2 * SIZEOF_UNSIGNED_INT +Adding number conversion cast (unumber) main::$7 in main::$7 = (unumber)2 * SIZEOF_UNSIGNED_INT Adding number conversion cast (unumber) 2 in main::SCREEN[2] = main::$4 Adding number conversion cast (unumber) 3 in main::SCREEN[3] = main::$5 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (word*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (unsigned int *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -70,20 +70,20 @@ Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 3 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 3 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$6 = 1 * SIZEOF_WORD -Inferred type updated to byte in main::$7 = 2 * SIZEOF_WORD -Constant right-side identified [0] main::$6 = 1 * SIZEOF_WORD -Constant right-side identified [7] main::$7 = 2 * SIZEOF_WORD +Inferred type updated to char in main::$6 = 1 * SIZEOF_UNSIGNED_INT +Inferred type updated to char in main::$7 = 2 * SIZEOF_UNSIGNED_INT +Constant right-side identified [0] main::$6 = 1 * SIZEOF_UNSIGNED_INT +Constant right-side identified [7] main::$7 = 2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::$6 = 1*SIZEOF_WORD -Constant main::$7 = 2*SIZEOF_WORD +Constant main::$6 = 1*SIZEOF_UNSIGNED_INT +Constant main::$7 = 2*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Converting *(pointer+n) to pointer[n] [2] main::w1#0 = *main::$0 -- main::words[main::$6] Converting *(pointer+n) to pointer[n] [9] main::w2#0 = *main::$3 -- main::words[main::$7] @@ -98,17 +98,17 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant inlined main::$6 = 1*SIZEOF_WORD -Constant inlined main::$7 = 2*SIZEOF_WORD +Constant inlined main::$6 = 1*SIZEOF_UNSIGNED_INT +Constant inlined main::$7 = 2*SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantInlining -Consolidated array index constant in *(main::words+1*SIZEOF_WORD) +Consolidated array index constant in *(main::words+1*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+1) -Consolidated array index constant in *(main::words+2*SIZEOF_WORD) +Consolidated array index constant in *(main::words+2*SIZEOF_UNSIGNED_INT) Consolidated array index constant in *(main::SCREEN+2) Consolidated array index constant in *(main::SCREEN+3) Successful SSA optimization Pass2ConstantAdditionElimination -Finalized unsigned number type (byte) 6 -Finalized unsigned number type (byte) $28 +Finalized unsigned number type (char) 6 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast 6*$28 Successful SSA optimization PassNCastSimplification @@ -121,12 +121,12 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from - [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) + [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) [1] main::$1 = byte0 main::w1#0 [2] *main::SCREEN = main::$1 [3] main::$2 = byte1 main::w1#0 [4] *(main::SCREEN+1) = main::$2 - [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) + [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) [6] main::$4 = byte0 main::w2#0 [7] *(main::SCREEN+2) = main::$4 [8] main::$5 = byte1 main::w2#0 @@ -139,14 +139,14 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 4.0 -byte~ main::$2 4.0 -byte~ main::$4 4.0 -byte~ main::$5 4.0 -word main::w1 -word main::w1#0 2.0 -word main::w2 -word main::w2#0 2.0 +char main::$1 // 4.0 +char main::$2 // 4.0 +char main::$4 // 4.0 +char main::$5 // 4.0 +unsigned int main::w1 +unsigned int main::w1#0 // 2.0 +unsigned int main::w2 +unsigned int main::w2#0 // 2.0 Initial phi equivalence classes Added variable main::w1#0 to live range equivalence class [ main::w1#0 ] @@ -169,8 +169,8 @@ Allocated zp[2]:6 [ main::w2#0 ] Allocated zp[1]:8 [ main::$4 ] Allocated zp[1]:9 [ main::$5 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) [ main::w1#0 ] ( [ main::w1#0 ] { } ) always clobbers reg byte a -Statement [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) [ main::w2#0 ] ( [ main::w2#0 ] { } ) always clobbers reg byte a +Statement [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) [ main::w1#0 ] ( [ main::w1#0 ] { } ) always clobbers reg byte a +Statement [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) [ main::w2#0 ] ( [ main::w2#0 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::w1#0 ] : zp[2]:2 , Potential registers zp[1]:4 [ main::$1 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:5 [ main::$2 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y , @@ -200,7 +200,7 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -208,10 +208,10 @@ main: { .label words = $400 .label w1 = 2 .label w2 = 4 - // [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+1*SIZEOF_WORD + // [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT sta.z w1 - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 sta.z w1+1 // [1] main::$1 = byte0 main::w1#0 -- vbuaa=_byte0_vwuz1 lda.z w1 @@ -221,10 +221,10 @@ main: { lda.z w1+1 // [4] *(main::SCREEN+1) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+1 - // [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+2*SIZEOF_WORD + // [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT sta.z w2 - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 sta.z w2+1 // [6] main::$4 = byte0 main::w2#0 -- vbuaa=_byte0_vwuz1 lda.z w2 @@ -249,18 +249,18 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024+6*$28 -word main::w1 -word main::w1#0 w1 zp[2]:2 2.0 -word main::w2 -word main::w2#0 w2 zp[2]:4 2.0 -constant word* main::words = (word*) 1024 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024+6*$28 +unsigned int main::w1 +unsigned int main::w1#0 // w1 zp[2]:2 2.0 +unsigned int main::w2 +unsigned int main::w2#0 // w2 zp[2]:4 2.0 +__constant unsigned int *main::words = (unsigned int *) 1024 zp[2]:2 [ main::w1#0 ] reg byte a [ main::$1 ] @@ -285,7 +285,7 @@ Score: 62 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { @@ -294,10 +294,10 @@ main: { .label w1 = 2 .label w2 = 4 // word w1 = *(words+1) - // [0] main::w1#0 = *(main::words+1*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+1*SIZEOF_WORD + // [0] main::w1#0 = *(main::words+1*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+1*SIZEOF_UNSIGNED_INT sta.z w1 - lda words+1*SIZEOF_WORD+1 + lda words+1*SIZEOF_UNSIGNED_INT+1 sta.z w1+1 // BYTE0(w1) // [1] main::$1 = byte0 main::w1#0 -- vbuaa=_byte0_vwuz1 @@ -312,10 +312,10 @@ main: { // [4] *(main::SCREEN+1) = main::$2 -- _deref_pbuc1=vbuaa sta SCREEN+1 // word w2 = *(words+2) - // [5] main::w2#0 = *(main::words+2*SIZEOF_WORD) -- vwuz1=_deref_pwuc1 - lda words+2*SIZEOF_WORD + // [5] main::w2#0 = *(main::words+2*SIZEOF_UNSIGNED_INT) -- vwuz1=_deref_pwuc1 + lda words+2*SIZEOF_UNSIGNED_INT sta.z w2 - lda words+2*SIZEOF_WORD+1 + lda words+2*SIZEOF_UNSIGNED_INT+1 sta.z w2+1 // BYTE0(w2) // [6] main::$4 = byte0 main::w2#0 -- vbuaa=_byte0_vwuz1 diff --git a/src/test/ref/word-pointer-math-0.sym b/src/test/ref/word-pointer-math-0.sym index ba02bc58e..55418428b 100644 --- a/src/test/ref/word-pointer-math-0.sym +++ b/src/test/ref/word-pointer-math-0.sym @@ -1,15 +1,15 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -byte~ main::$1 reg byte a 4.0 -byte~ main::$2 reg byte a 4.0 -byte~ main::$4 reg byte a 4.0 -byte~ main::$5 reg byte a 4.0 -constant byte* const main::SCREEN = (byte*) 1024+6*$28 -word main::w1 -word main::w1#0 w1 zp[2]:2 2.0 -word main::w2 -word main::w2#0 w2 zp[2]:4 2.0 -constant word* main::words = (word*) 1024 +char main::$1 // reg byte a 4.0 +char main::$2 // reg byte a 4.0 +char main::$4 // reg byte a 4.0 +char main::$5 // reg byte a 4.0 +__constant char * const main::SCREEN = (char *) 1024+6*$28 +unsigned int main::w1 +unsigned int main::w1#0 // w1 zp[2]:2 2.0 +unsigned int main::w2 +unsigned int main::w2#0 // w2 zp[2]:4 2.0 +__constant unsigned int *main::words = (unsigned int *) 1024 zp[2]:2 [ main::w1#0 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/word-pointer-math-1.asm b/src/test/ref/word-pointer-math-1.asm index 9ce40f89a..675219aa0 100644 --- a/src/test/ref/word-pointer-math-1.asm +++ b/src/test/ref/word-pointer-math-1.asm @@ -7,10 +7,10 @@ .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code main: { - .const wd = (w2-w1)/SIZEOF_WORD + .const wd = (w2-w1)/SIZEOF_UNSIGNED_INT .label SCREEN = $400 .label w1 = $1000 .label w2 = $1140 diff --git a/src/test/ref/word-pointer-math-1.log b/src/test/ref/word-pointer-math-1.log index 3e0763d42..54adc50a4 100644 --- a/src/test/ref/word-pointer-math-1.log +++ b/src/test/ref/word-pointer-math-1.log @@ -5,7 +5,7 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::$1 = main::w2 - main::w1 - main::wd#0 = main::$1 / SIZEOF_WORD + main::wd#0 = main::$1 / SIZEOF_UNSIGNED_INT *main::SCREEN = main::wd#0 to:main::@return main::@return: scope:[main] from main @@ -14,7 +14,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -23,19 +23,19 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word~ main::$1 -constant word* const main::SCREEN = (word*)$400 -constant word* main::w1 = (word*)$1000 -constant word* main::w2 = (word*)$1140 -word main::wd -word main::wd#0 +unsigned int main::$1 +__constant unsigned int * const main::SCREEN = (unsigned int *)$400 +__constant unsigned int *main::w1 = (unsigned int *)$1000 +__constant unsigned int *main::w2 = (unsigned int *)$1140 +unsigned int main::wd +unsigned int main::wd#0 -Simplifying constant pointer cast (word*) 1024 -Simplifying constant pointer cast (word*) 4096 -Simplifying constant pointer cast (word*) 4416 +Simplifying constant pointer cast (unsigned int *) 1024 +Simplifying constant pointer cast (unsigned int *) 4096 +Simplifying constant pointer cast (unsigned int *) 4416 Successful SSA optimization PassNCastSimplification Constant right-side identified [0] main::$1 = main::w2 - main::w1 Successful SSA optimization Pass2ConstantRValueConsolidation @@ -46,9 +46,9 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Constant right-side identified [0] main::wd#0 = main::$1 / SIZEOF_WORD +Constant right-side identified [0] main::wd#0 = main::$1 / SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantRValueConsolidation -Constant main::wd#0 = main::$1/SIZEOF_WORD +Constant main::wd#0 = main::$1/SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2ConstantIdentification Constant inlined main::$1 = main::w2-main::w1 Successful SSA optimization Pass2ConstantInlining @@ -70,7 +70,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -word main::wd +unsigned int main::wd Initial phi equivalence classes Complete equivalence classes @@ -97,11 +97,11 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { - .const wd = (w2-w1)/SIZEOF_WORD + .const wd = (w2-w1)/SIZEOF_UNSIGNED_INT .label SCREEN = $400 .label w1 = $1000 .label w2 = $1140 @@ -125,13 +125,13 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -constant word* const main::SCREEN = (word*) 1024 -constant word* main::w1 = (word*) 4096 -constant word* main::w2 = (word*) 4416 -word main::wd -constant word main::wd#0 wd = main::w2-main::w1/SIZEOF_WORD +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +__constant unsigned int *main::w1 = (unsigned int *) 4096 +__constant unsigned int *main::w2 = (unsigned int *) 4416 +unsigned int main::wd +__constant unsigned int main::wd#0 = main::w2-main::w1/SIZEOF_UNSIGNED_INT // wd @@ -150,11 +150,11 @@ Score: 18 .segment Basic :BasicUpstart(main) // Global Constants & labels - .const SIZEOF_WORD = 2 + .const SIZEOF_UNSIGNED_INT = 2 .segment Code // main main: { - .const wd = (w2-w1)/SIZEOF_WORD + .const wd = (w2-w1)/SIZEOF_UNSIGNED_INT .label SCREEN = $400 .label w1 = $1000 .label w2 = $1140 diff --git a/src/test/ref/word-pointer-math-1.sym b/src/test/ref/word-pointer-math-1.sym index d483ef82e..e412c02e7 100644 --- a/src/test/ref/word-pointer-math-1.sym +++ b/src/test/ref/word-pointer-math-1.sym @@ -1,8 +1,8 @@ -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void main() -constant word* const main::SCREEN = (word*) 1024 -constant word* main::w1 = (word*) 4096 -constant word* main::w2 = (word*) 4416 -word main::wd -constant word main::wd#0 wd = main::w2-main::w1/SIZEOF_WORD +__constant unsigned int * const main::SCREEN = (unsigned int *) 1024 +__constant unsigned int *main::w1 = (unsigned int *) 4096 +__constant unsigned int *main::w2 = (unsigned int *) 4416 +unsigned int main::wd +__constant unsigned int main::wd#0 = main::w2-main::w1/SIZEOF_UNSIGNED_INT // wd diff --git a/src/test/ref/word-pointer-math.log b/src/test/ref/word-pointer-math.log index c32b443b6..c84741234 100644 --- a/src/test/ref/word-pointer-math.log +++ b/src/test/ref/word-pointer-math.log @@ -9,7 +9,7 @@ main: scope:[main] from __start main::@1: scope:[main] from main main::@1 main::idx#4 = phi( main/main::idx#0, main::@1/main::idx#3 ) main::i#2 = phi( main/main::i#0, main::@1/main::i#1 ) - main::$4 = main::i#2 * SIZEOF_WORD + main::$4 = main::i#2 * SIZEOF_UNSIGNED_INT main::$0 = main::words + main::$4 main::w#0 = *main::$0 main::$1 = byte0 main::w#0 @@ -29,7 +29,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -38,30 +38,30 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant byte SIZEOF_WORD = 2 +__constant char SIZEOF_UNSIGNED_INT = 2 void __start() void main() -word*~ main::$0 -byte~ main::$1 -byte~ main::$2 -bool~ main::$3 -byte~ main::$4 -constant byte* const main::SCREEN = (byte*)$400 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::idx -byte main::idx#0 -byte main::idx#1 -byte main::idx#2 -byte main::idx#3 -byte main::idx#4 -word main::w -word main::w#0 -constant word* main::words[] = { $3130, $3332, $3534, $3736 } +unsigned int *main::$0 +char main::$1 +char main::$2 +bool main::$3 +char main::$4 +__constant char * const main::SCREEN = (char *)$400 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::idx +char main::idx#0 +char main::idx#1 +char main::idx#2 +char main::idx#3 +char main::idx#4 +unsigned int main::w +unsigned int main::w#0 +__constant unsigned int main::words[] = { $3130, $3332, $3534, $3736 } -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Simple Condition main::$3 [15] if(main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification @@ -83,16 +83,16 @@ Adding number conversion cast (unumber) 4 in [11] if(main::i#1!=4) goto main::@1 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 4 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 4 +Finalized unsigned number type (char) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Rewriting multiplication to use shift [1] main::$4 = main::i#2 * SIZEOF_WORD +Rewriting multiplication to use shift [1] main::$4 = main::i#2 * SIZEOF_UNSIGNED_INT Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings main::idx#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::idx#0 = 0 Successful SSA optimization Pass2ConstantInlining -Eliminating unused constant SIZEOF_WORD +Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -133,19 +133,19 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$1 22.0 -byte~ main::$2 22.0 -byte~ main::$4 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 3.3000000000000003 -byte main::idx -byte main::idx#1 11.0 -byte main::idx#2 22.0 -byte main::idx#3 7.333333333333333 -byte main::idx#4 6.6000000000000005 -word main::w -word main::w#0 8.25 +char main::$1 // 22.0 +char main::$2 // 22.0 +char main::$4 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 3.3000000000000003 +char main::idx +char main::idx#1 // 11.0 +char main::idx#2 // 22.0 +char main::idx#3 // 7.333333333333333 +char main::idx#4 // 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // 8.25 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -301,21 +301,21 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 3.3000000000000003 -byte main::idx -byte main::idx#1 reg byte y 11.0 -byte main::idx#2 reg byte a 22.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 6.6000000000000005 -word main::w -word main::w#0 w zp[2]:3 8.25 -constant word* main::words[] = { $3130, $3332, $3534, $3736 } +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 3.3000000000000003 +char main::idx +char main::idx#1 // reg byte y 11.0 +char main::idx#2 // reg byte a 22.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:3 8.25 +__constant unsigned int main::words[] = { $3130, $3332, $3534, $3736 } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 ] diff --git a/src/test/ref/word-pointer-math.sym b/src/test/ref/word-pointer-math.sym index a4bac5dd6..589a76d99 100644 --- a/src/test/ref/word-pointer-math.sym +++ b/src/test/ref/word-pointer-math.sym @@ -1,19 +1,19 @@ void main() -byte~ main::$1 reg byte a 22.0 -byte~ main::$2 reg byte a 22.0 -byte~ main::$4 reg byte a 22.0 -constant byte* const main::SCREEN = (byte*) 1024 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 3.3000000000000003 -byte main::idx -byte main::idx#1 reg byte y 11.0 -byte main::idx#2 reg byte a 22.0 -byte main::idx#3 idx zp[1]:2 7.333333333333333 -byte main::idx#4 idx zp[1]:2 6.6000000000000005 -word main::w -word main::w#0 w zp[2]:3 8.25 -constant word* main::words[] = { $3130, $3332, $3534, $3736 } +char main::$1 // reg byte a 22.0 +char main::$2 // reg byte a 22.0 +char main::$4 // reg byte a 22.0 +__constant char * const main::SCREEN = (char *) 1024 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 3.3000000000000003 +char main::idx +char main::idx#1 // reg byte y 11.0 +char main::idx#2 // reg byte a 22.0 +char main::idx#3 // idx zp[1]:2 7.333333333333333 +char main::idx#4 // idx zp[1]:2 6.6000000000000005 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:3 8.25 +__constant unsigned int main::words[] = { $3130, $3332, $3534, $3736 } reg byte x [ main::i#2 main::i#1 ] zp[1]:2 [ main::idx#4 main::idx#3 ] diff --git a/src/test/ref/wordexpr.cfg b/src/test/ref/wordexpr.cfg index 5406aadbb..03d0508eb 100644 --- a/src/test/ref/wordexpr.cfg +++ b/src/test/ref/wordexpr.cfg @@ -6,7 +6,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [1] main::b#2 = phi( main/0, main::@1/main::b#1 ) - [2] main::b#1 = main::b#2 + (word)$28*8 + [2] main::b#1 = main::b#2 + (unsigned int)$28*8 [3] main::i#1 = ++ main::i#2 [4] if(main::i#1!=$b) goto main::@1 to:main::@return diff --git a/src/test/ref/wordexpr.log b/src/test/ref/wordexpr.log index cd4b7a6d4..33374b1c7 100644 --- a/src/test/ref/wordexpr.log +++ b/src/test/ref/wordexpr.log @@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -32,21 +32,21 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -number~ main::$0 -bool~ main::$1 -word main::b -word main::b#0 -word main::b#1 -word main::b#2 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 +number main::$0 +bool main::$1 +unsigned int main::b +unsigned int main::b#0 +unsigned int main::b#1 +unsigned int main::b#2 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 Adding number conversion cast (unumber) $28*8 in main::$0 = main::b#2 + $28*8 Adding number conversion cast (unumber) main::$0 in main::$0 = main::b#2 + (unumber)$28*8 Successful SSA optimization PassNAddNumberTypeConversions -Inferred type updated to word in main::$0 = main::b#2 + (word)$28*8 +Inferred type updated to unsigned int in main::$0 = main::b#2 + (unsigned int)$28*8 Alias main::b#1 = main::$0 Successful SSA optimization Pass2AliasElimination Simple Condition main::$1 [6] if(main::i#1!=rangelast(0,$a)) goto main::@1 @@ -65,15 +65,15 @@ Adding number conversion cast (unumber) $b in [3] if(main::i#1!=$b) goto main::@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::b#0 Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 Constant inlined main::b#0 = 0 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 8 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting main::@2(between main::@1 and main::@1) Adding NOP phi() at start of main @@ -95,7 +95,7 @@ main: scope:[main] from main::@1: scope:[main] from main main::@1 [1] main::i#2 = phi( main/0, main::@1/main::i#1 ) [1] main::b#2 = phi( main/0, main::@1/main::b#1 ) - [2] main::b#1 = main::b#2 + (word)$28*8 + [2] main::b#1 = main::b#2 + (unsigned int)$28*8 [3] main::i#1 = ++ main::i#2 [4] if(main::i#1!=$b) goto main::@1 to:main::@return @@ -106,12 +106,12 @@ main::@return: scope:[main] from main::@1 VARIABLE REGISTER WEIGHTS void main() -word main::b -word main::b#1 7.333333333333333 -word main::b#2 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 11.0 +unsigned int main::b +unsigned int main::b#1 // 7.333333333333333 +unsigned int main::b#2 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 11.0 Initial phi equivalence classes [ main::b#2 main::b#1 ] @@ -122,9 +122,9 @@ Complete equivalence classes Allocated zp[2]:2 [ main::b#2 main::b#1 ] Allocated zp[1]:4 [ main::i#2 main::i#1 ] REGISTER UPLIFT POTENTIAL REGISTERS -Statement [2] main::b#1 = main::b#2 + (word)$28*8 [ main::i#2 main::b#1 ] ( [ main::i#2 main::b#1 ] { } ) always clobbers reg byte a +Statement [2] main::b#1 = main::b#2 + (unsigned int)$28*8 [ main::i#2 main::b#1 ] ( [ main::i#2 main::b#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::i#2 main::i#1 ] -Statement [2] main::b#1 = main::b#2 + (word)$28*8 [ main::i#2 main::b#1 ] ( [ main::i#2 main::b#1 ] { } ) always clobbers reg byte a +Statement [2] main::b#1 = main::b#2 + (unsigned int)$28*8 [ main::i#2 main::b#1 ] ( [ main::i#2 main::b#1 ] { } ) always clobbers reg byte a Potential registers zp[2]:2 [ main::b#2 main::b#1 ] : zp[2]:2 , Potential registers zp[1]:4 [ main::i#2 main::i#1 ] : zp[1]:4 , reg byte x , reg byte y , @@ -169,7 +169,7 @@ main: { jmp __b1 // main::@1 __b1: - // [2] main::b#1 = main::b#2 + (word)$28*8 -- vwuz1=vwuz1_plus_vwuc1 + // [2] main::b#1 = main::b#2 + (unsigned int)$28*8 -- vwuz1=vwuz1_plus_vwuc1 lda.z b clc adc #<$28*8 @@ -208,12 +208,12 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void main() -word main::b -word main::b#1 b zp[2]:2 7.333333333333333 -word main::b#2 b zp[2]:2 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 +unsigned int main::b +unsigned int main::b#1 // b zp[2]:2 7.333333333333333 +unsigned int main::b#2 // b zp[2]:2 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 zp[2]:2 [ main::b#2 main::b#1 ] reg byte x [ main::i#2 main::i#1 ] @@ -251,7 +251,7 @@ main: { // main::@1 __b1: // b = b + 40*8 - // [2] main::b#1 = main::b#2 + (word)$28*8 -- vwuz1=vwuz1_plus_vwuc1 + // [2] main::b#1 = main::b#2 + (unsigned int)$28*8 -- vwuz1=vwuz1_plus_vwuc1 lda.z b clc adc #<$28*8 diff --git a/src/test/ref/wordexpr.sym b/src/test/ref/wordexpr.sym index b0cda183a..6cbec7f48 100644 --- a/src/test/ref/wordexpr.sym +++ b/src/test/ref/wordexpr.sym @@ -1,10 +1,10 @@ void main() -word main::b -word main::b#1 b zp[2]:2 7.333333333333333 -word main::b#2 b zp[2]:2 22.0 -byte main::i -byte main::i#1 reg byte x 16.5 -byte main::i#2 reg byte x 11.0 +unsigned int main::b +unsigned int main::b#1 // b zp[2]:2 7.333333333333333 +unsigned int main::b#2 // b zp[2]:2 22.0 +char main::i +char main::i#1 // reg byte x 16.5 +char main::i#2 // reg byte x 11.0 zp[2]:2 [ main::b#2 main::b#1 ] reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/zeropage-detect-advanced.cfg b/src/test/ref/zeropage-detect-advanced.cfg index 421c4be50..655c73d69 100644 --- a/src/test/ref/zeropage-detect-advanced.cfg +++ b/src/test/ref/zeropage-detect-advanced.cfg @@ -2,7 +2,7 @@ void main() main: scope:[main] from [0] main::t = 0 - [1] *((byte*) 1024) = *main::c + [1] *((char *) 1024) = *main::c to:main::@return main::@return: scope:[main] from main [2] return diff --git a/src/test/ref/zeropage-detect-advanced.log b/src/test/ref/zeropage-detect-advanced.log index 516698efb..74b9adc6a 100644 --- a/src/test/ref/zeropage-detect-advanced.log +++ b/src/test/ref/zeropage-detect-advanced.log @@ -1,11 +1,11 @@ -Setting inferred volatile on symbol affected by address-of main::c = (byte*)&main::t +Setting inferred volatile on symbol affected by address-of main::c = (char *)&main::t CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start main::t = 0 - *((byte*)$400) = main::c[0] + *((char *)$400) = main::c[0] to:main::@return main::@return: scope:[main] from main return @@ -13,7 +13,7 @@ main::@return: scope:[main] from main void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -24,17 +24,17 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -constant byte* main::c = (byte*)&main::t -volatile dword main::t loadstore +__constant char *main::c = (char *)&main::t +__loadstore volatile unsigned long main::t -Adding number conversion cast (unumber) 0 in *((byte*)$400) = main::c[0] +Adding number conversion cast (unumber) 0 in *((char *)$400) = main::c[0] Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 0 +Finalized unsigned number type (char) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Simplifying expression containing zero main::c in [1] *((byte*) 1024) = main::c[0] +Simplifying expression containing zero main::c in [1] *((char *) 1024) = main::c[0] Successful SSA optimization PassNSimplifyExpressionWithZero Removing unused procedure __start Removing unused procedure block __start @@ -51,7 +51,7 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] main::t = 0 - [1] *((byte*) 1024) = *main::c + [1] *((char *) 1024) = *main::c to:main::@return main::@return: scope:[main] from main [2] return @@ -60,7 +60,7 @@ main::@return: scope:[main] from main VARIABLE REGISTER WEIGHTS void main() -volatile dword main::t loadstore 20.0 +__loadstore volatile unsigned long main::t // 20.0 Initial phi equivalence classes Added variable main::t to live range equivalence class [ main::t ] @@ -69,7 +69,7 @@ Complete equivalence classes Allocated zp[4]:2 [ main::t ] REGISTER UPLIFT POTENTIAL REGISTERS Statement [0] main::t = 0 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [1] *((byte*) 1024) = *main::c [ ] ( [ ] { } ) always clobbers reg byte a +Statement [1] *((char *) 1024) = *main::c [ ] ( [ ] { } ) always clobbers reg byte a Potential registers zp[4]:2 [ main::t ] : zp[4]:2 , REGISTER UPLIFT SCOPES @@ -107,7 +107,7 @@ main: { sta.z t+2 lda #>0>>$10 sta.z t+3 - // [1] *((byte*) 1024) = *main::c -- _deref_pbuc1=_deref_pbuc2 + // [1] *((char *) 1024) = *main::c -- _deref_pbuc1=_deref_pbuc2 lda.z c sta $400 jmp __breturn @@ -128,8 +128,8 @@ Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE void main() -constant byte* main::c = (byte*)&main::t -volatile dword main::t loadstore zp[4]:2 20.0 +__constant char *main::c = (char *)&main::t +__loadstore volatile unsigned long main::t // zp[4]:2 20.0 zp[4]:2 [ main::t ] @@ -165,7 +165,7 @@ main: { lda #>0>>$10 sta.z t+3 // *(unsigned char *)0x0400 = c[0] - // [1] *((byte*) 1024) = *main::c -- _deref_pbuc1=_deref_pbuc2 + // [1] *((char *) 1024) = *main::c -- _deref_pbuc1=_deref_pbuc2 lda.z c sta $400 // main::@return diff --git a/src/test/ref/zeropage-detect-advanced.sym b/src/test/ref/zeropage-detect-advanced.sym index 0efb561ba..88f42ee91 100644 --- a/src/test/ref/zeropage-detect-advanced.sym +++ b/src/test/ref/zeropage-detect-advanced.sym @@ -1,5 +1,5 @@ void main() -constant byte* main::c = (byte*)&main::t -volatile dword main::t loadstore zp[4]:2 20.0 +__constant char *main::c = (char *)&main::t +__loadstore volatile unsigned long main::t // zp[4]:2 20.0 zp[4]:2 [ main::t ] diff --git a/src/test/ref/zeropage-sinus.cfg b/src/test/ref/zeropage-sinus.cfg index b8023dd12..5f45a3e09 100644 --- a/src/test/ref/zeropage-sinus.cfg +++ b/src/test/ref/zeropage-sinus.cfg @@ -5,20 +5,20 @@ main: scope:[main] from [1] *SPRITES_ENABLE = 1 [2] *SPRITES_YPOS = $64 [3] *SPRITES_XPOS = $64 - [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 - [5] call saveZeropage + [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 + [5] call saveZeropage to:main::@1 main::@1: scope:[main] from main [6] phi() - [7] call sinZeropage + [7] call sinZeropage to:main::@2 main::@2: scope:[main] from main::@1 [8] phi() - [9] call animSprite + [9] call animSprite to:main::@3 main::@3: scope:[main] from main::@2 [10] phi() - [11] call restoreZeropage + [11] call restoreZeropage to:main::@return main::@return: scope:[main] from main::@3 [12] return diff --git a/src/test/ref/zeropage-sinus.log b/src/test/ref/zeropage-sinus.log index 8eef28085..c0c2ed378 100644 --- a/src/test/ref/zeropage-sinus.log +++ b/src/test/ref/zeropage-sinus.log @@ -8,17 +8,17 @@ main: scope:[main] from __start *SPRITES_ENABLE = 1 SPRITES_YPOS[0] = $64 SPRITES_XPOS[0] = $64 - *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 - call saveZeropage + *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 + call saveZeropage to:main::@1 main::@1: scope:[main] from main - call sinZeropage + call sinZeropage to:main::@2 main::@2: scope:[main] from main::@1 - call animSprite + call animSprite to:main::@3 main::@3: scope:[main] from main::@2 - call restoreZeropage + call restoreZeropage to:main::@4 main::@4: scope:[main] from main::@3 to:main::@return @@ -80,7 +80,7 @@ animSprite::@return: scope:[animSprite] from animSprite void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -89,16 +89,16 @@ __start::@return: scope:[__start] from __start::@1 to:@return SYMBOL TABLE SSA -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte* const SCREEN = (byte*)$400 -constant const byte* SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char * const SCREEN = (char *)$400 +__constant const char SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) .byte round(127.5+127.5*cos(toRadians(360*i/256))) }} -constant const byte* SPRITE[$40] = kickasm {{ .fill $40,$ff }} -constant byte* const SPRITES_ENABLE = (byte*)$d015 -constant byte* const SPRITES_XPOS = (byte*)$d000 -constant byte* const SPRITES_YPOS = (byte*)$d001 -constant const byte* ZP_STORAGE[$100] = { fill( $100, 0) } +__constant const char SPRITE[$40] = kickasm {{ .fill $40,$ff }} +__constant char * const SPRITES_ENABLE = (char *)$d015 +__constant char * const SPRITES_XPOS = (char *)$d000 +__constant char * const SPRITES_YPOS = (char *)$d001 +__constant const char ZP_STORAGE[$100] = { fill( $100, 0) } void __start() void animSprite() void main() @@ -111,16 +111,16 @@ Adding number conversion cast (unumber) $64 in SPRITES_YPOS[0] = $64 Adding number conversion cast (unumber) 0 in SPRITES_YPOS[0] = ((unumber)) $64 Adding number conversion cast (unumber) $64 in SPRITES_XPOS[0] = $64 Adding number conversion cast (unumber) 0 in SPRITES_XPOS[0] = ((unumber)) $64 -Adding number conversion cast (unumber) $40 in *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 +Adding number conversion cast (unumber) $40 in *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast *SPRITES_ENABLE = (unumber)1 Inlining cast SPRITES_YPOS[(unumber)0] = (unumber)$64 Inlining cast SPRITES_XPOS[(unumber)0] = (unumber)$64 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 53248 -Simplifying constant pointer cast (byte*) 53249 -Simplifying constant pointer cast (byte*) 53269 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 53248 +Simplifying constant pointer cast (char *) 53249 +Simplifying constant pointer cast (char *) 53269 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast 1 Simplifying constant integer cast $64 Simplifying constant integer cast 0 @@ -128,12 +128,12 @@ Simplifying constant integer cast $64 Simplifying constant integer cast 0 Simplifying constant integer cast $40 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $64 -Finalized unsigned number type (byte) 0 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $64 +Finalized unsigned number type (char) 0 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying expression containing zero SPRITES_YPOS in [2] SPRITES_YPOS[0] = $64 Simplifying expression containing zero SPRITES_XPOS in [3] SPRITES_XPOS[0] = $64 @@ -143,10 +143,10 @@ Removing unused procedure block __start Removing unused procedure block __start::@1 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (word) $100 -Finalized unsigned number type (byte) $40 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (unsigned int) $100 +Finalized unsigned number type (char) $40 Successful SSA optimization PassNFinalizeNumberTypeConversions Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@2 @@ -170,20 +170,20 @@ main: scope:[main] from [1] *SPRITES_ENABLE = 1 [2] *SPRITES_YPOS = $64 [3] *SPRITES_XPOS = $64 - [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 - [5] call saveZeropage + [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 + [5] call saveZeropage to:main::@1 main::@1: scope:[main] from main [6] phi() - [7] call sinZeropage + [7] call sinZeropage to:main::@2 main::@2: scope:[main] from main::@1 [8] phi() - [9] call animSprite + [9] call animSprite to:main::@3 main::@3: scope:[main] from main::@2 [10] phi() - [11] call restoreZeropage + [11] call restoreZeropage to:main::@return main::@return: scope:[main] from main::@3 [12] return @@ -255,7 +255,7 @@ REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] *SPRITES_ENABLE = 1 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *SPRITES_YPOS = $64 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *SPRITES_XPOS = $64 [ ] ( [ ] { } ) always clobbers reg byte a -Statement [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 [ ] ( [ ] { } ) always clobbers reg byte a +Statement [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 [ ] ( [ ] { } ) always clobbers reg byte a Statement asm { ldx#0 !: lda$00,x staZP_STORAGE,x inx bne!- } always clobbers reg byte a reg byte x Statement asm { ldx#0 !: ldaSINTABLE,x sta$00,x inx bne!- } always clobbers reg byte a reg byte x Statement asm { ldx#0 !: ldaZP_STORAGE,x sta$00,x inx bne!- } always clobbers reg byte a reg byte x @@ -320,31 +320,31 @@ main: { // [3] *SPRITES_XPOS = $64 -- _deref_pbuc1=vbuc2 lda #$64 sta SPRITES_XPOS - // [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 -- _deref_pbuc1=vbuc2 + // [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SCREEN+OFFSET_SPRITE_PTRS - // [5] call saveZeropage + // [5] call saveZeropage jsr saveZeropage // [6] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [7] call sinZeropage + // [7] call sinZeropage jsr sinZeropage // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] __b2_from___b1: jmp __b2 // main::@2 __b2: - // [9] call animSprite + // [9] call animSprite jsr animSprite // [10] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [11] call restoreZeropage + // [11] call restoreZeropage jsr restoreZeropage jmp __breturn // main::@return @@ -474,16 +474,16 @@ Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char * const SCREEN = (char *) 1024 +__constant const char SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) .byte round(127.5+127.5*cos(toRadians(360*i/256))) }} -constant const byte* SPRITE[$40] = kickasm {{ .fill $40,$ff }} -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant const byte* ZP_STORAGE[$100] = { fill( $100, 0) } +__constant const char SPRITE[$40] = kickasm {{ .fill $40,$ff }} +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant const char ZP_STORAGE[$100] = { fill( $100, 0) } void animSprite() void main() void restoreZeropage() @@ -537,26 +537,26 @@ main: { // [3] *SPRITES_XPOS = $64 -- _deref_pbuc1=vbuc2 sta SPRITES_XPOS // *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)(SPRITE/0x40) - // [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (byte)SPRITE/$40 -- _deref_pbuc1=vbuc2 + // [4] *(SCREEN+OFFSET_SPRITE_PTRS) = (char)SPRITE/$40 -- _deref_pbuc1=vbuc2 lda #$ff&SPRITE/$40 sta SCREEN+OFFSET_SPRITE_PTRS // saveZeropage() - // [5] call saveZeropage + // [5] call saveZeropage jsr saveZeropage // [6] phi from main to main::@1 [phi:main->main::@1] // main::@1 // sinZeropage() - // [7] call sinZeropage + // [7] call sinZeropage jsr sinZeropage // [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] // main::@2 // animSprite() - // [9] call animSprite + // [9] call animSprite jsr animSprite // [10] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // restoreZeropage() - // [11] call restoreZeropage + // [11] call restoreZeropage jsr restoreZeropage // main::@return // } diff --git a/src/test/ref/zeropage-sinus.sym b/src/test/ref/zeropage-sinus.sym index 7fedbedf7..8e3c3a4ae 100644 --- a/src/test/ref/zeropage-sinus.sym +++ b/src/test/ref/zeropage-sinus.sym @@ -1,13 +1,13 @@ -constant const word OFFSET_SPRITE_PTRS = $3f8 -constant byte* const SCREEN = (byte*) 1024 -constant const byte* SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) +__constant const unsigned int OFFSET_SPRITE_PTRS = $3f8 +__constant char * const SCREEN = (char *) 1024 +__constant const char SINTABLE[$100] = kickasm {{ .for(var i=0;i<$100;i++) .byte round(127.5+127.5*cos(toRadians(360*i/256))) }} -constant const byte* SPRITE[$40] = kickasm {{ .fill $40,$ff }} -constant byte* const SPRITES_ENABLE = (byte*) 53269 -constant byte* const SPRITES_XPOS = (byte*) 53248 -constant byte* const SPRITES_YPOS = (byte*) 53249 -constant const byte* ZP_STORAGE[$100] = { fill( $100, 0) } +__constant const char SPRITE[$40] = kickasm {{ .fill $40,$ff }} +__constant char * const SPRITES_ENABLE = (char *) 53269 +__constant char * const SPRITES_XPOS = (char *) 53248 +__constant char * const SPRITES_YPOS = (char *) 53249 +__constant const char ZP_STORAGE[$100] = { fill( $100, 0) } void animSprite() void main() void restoreZeropage() diff --git a/src/test/ref/zp-reserve-coalesce-problem.cfg b/src/test/ref/zp-reserve-coalesce-problem.cfg index 9e48799cd..2f5177e6c 100644 --- a/src/test/ref/zp-reserve-coalesce-problem.cfg +++ b/src/test/ref/zp-reserve-coalesce-problem.cfg @@ -2,11 +2,11 @@ void main() main: scope:[main] from [0] phi() - [1] call benchmarkCountdownFor + [1] call benchmarkCountdownFor to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call benchmarkLandscape + [3] call benchmarkLandscape to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -74,7 +74,7 @@ benchmarkLandscape::@8: scope:[benchmarkLandscape] from benchmarkLandscape::@6 [28] benchmarkLandscape::x#1 = -- benchmarkLandscape::x#2 to:benchmarkLandscape::@3 benchmarkLandscape::@7: scope:[benchmarkLandscape] from benchmarkLandscape::@6 - [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(byte)benchmarkLandscape::c#2] + [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(char)benchmarkLandscape::c#2] to:benchmarkLandscape::@9 benchmarkLandscape::@9: scope:[benchmarkLandscape] from benchmarkLandscape::@10 benchmarkLandscape::@7 [30] benchmarkLandscape::screenAddress#2 = phi( benchmarkLandscape::@10/benchmarkLandscape::screenAddress#1, benchmarkLandscape::@7/benchmarkLandscape::screenAddress#4 ) @@ -87,7 +87,7 @@ benchmarkLandscape::@11: scope:[benchmarkLandscape] from benchmarkLandscape::@9 to:benchmarkLandscape::@6 benchmarkLandscape::@10: scope:[benchmarkLandscape] from benchmarkLandscape::@9 [34] benchmarkLandscape::$5 = *benchmarkLandscape::screenAddress#2 & $f - [35] benchmarkLandscape::$6 = (byte)benchmarkLandscape::c#2 << 4 + [35] benchmarkLandscape::$6 = (char)benchmarkLandscape::c#2 << 4 [36] benchmarkLandscape::$7 = benchmarkLandscape::$5 | benchmarkLandscape::$6 [37] *benchmarkLandscape::screenAddress#2 = benchmarkLandscape::$7 [38] benchmarkLandscape::screenAddress#1 = benchmarkLandscape::screenAddress#2 + $28 diff --git a/src/test/ref/zp-reserve-coalesce-problem.log b/src/test/ref/zp-reserve-coalesce-problem.log index 59d25f730..a3d2092c9 100644 --- a/src/test/ref/zp-reserve-coalesce-problem.log +++ b/src/test/ref/zp-reserve-coalesce-problem.log @@ -4,10 +4,10 @@ CONTROL FLOW GRAPH SSA void main() main: scope:[main] from __start - call benchmarkCountdownFor + call benchmarkCountdownFor to:main::@1 main::@1: scope:[main] from main - call benchmarkLandscape + call benchmarkLandscape to:main::@2 main::@2: scope:[main] from main::@1 to:main::@return @@ -96,7 +96,7 @@ benchmarkLandscape::@8: scope:[benchmarkLandscape] from benchmarkLandscape::@7 benchmarkLandscape::screenAddress#4 = phi( benchmarkLandscape::@7/benchmarkLandscape::screenAddress#5 ) benchmarkLandscape::start#5 = phi( benchmarkLandscape::@7/benchmarkLandscape::start#6 ) benchmarkLandscape::c#3 = phi( benchmarkLandscape::@7/benchmarkLandscape::c#2 ) - benchmarkLandscape::uc#0 = (byte)benchmarkLandscape::c#3 + benchmarkLandscape::uc#0 = (char)benchmarkLandscape::c#3 benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[benchmarkLandscape::uc#0] to:benchmarkLandscape::@10 benchmarkLandscape::@9: scope:[benchmarkLandscape] from benchmarkLandscape::@7 @@ -145,7 +145,7 @@ benchmarkLandscape::@return: scope:[benchmarkLandscape] from benchmarkLandscape void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -156,86 +156,86 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void benchmarkCountdownFor() -bool~ benchmarkCountdownFor::$0 -bool~ benchmarkCountdownFor::$1 -signed byte benchmarkCountdownFor::a loadstore !zp[-1]:65 -signed byte benchmarkCountdownFor::b loadstore !zp[-1]:75 +bool benchmarkCountdownFor::$0 +bool benchmarkCountdownFor::$1 +__loadstore signed char benchmarkCountdownFor::a // !zp[-1]:65 +__loadstore signed char benchmarkCountdownFor::b // !zp[-1]:75 void benchmarkLandscape() -bool~ benchmarkLandscape::$0 -bool~ benchmarkLandscape::$1 -bool~ benchmarkLandscape::$3 -bool~ benchmarkLandscape::$4 -number~ benchmarkLandscape::$5 -byte~ benchmarkLandscape::$6 -number~ benchmarkLandscape::$7 -bool~ benchmarkLandscape::$8 -signed byte benchmarkLandscape::c -signed byte benchmarkLandscape::c#0 -signed byte benchmarkLandscape::c#1 -signed byte benchmarkLandscape::c#2 -signed byte benchmarkLandscape::c#3 -signed byte benchmarkLandscape::c#4 -signed byte benchmarkLandscape::c#5 -signed byte benchmarkLandscape::c#6 -constant byte* benchmarkLandscape::colHeight[$e] = { fill( $e, 0) } -byte benchmarkLandscape::i -byte benchmarkLandscape::i#0 -byte benchmarkLandscape::i#1 -byte benchmarkLandscape::i#2 -byte* benchmarkLandscape::screenAddress -byte* benchmarkLandscape::screenAddress#0 -byte* benchmarkLandscape::screenAddress#1 -byte* benchmarkLandscape::screenAddress#2 -byte* benchmarkLandscape::screenAddress#3 -byte* benchmarkLandscape::screenAddress#4 -byte* benchmarkLandscape::screenAddress#5 -byte* benchmarkLandscape::screenAddress#6 -byte benchmarkLandscape::start -byte benchmarkLandscape::start#0 -byte benchmarkLandscape::start#1 -byte benchmarkLandscape::start#2 -byte benchmarkLandscape::start#3 -byte benchmarkLandscape::start#4 -byte benchmarkLandscape::start#5 -byte benchmarkLandscape::start#6 -byte benchmarkLandscape::stop -byte benchmarkLandscape::stop#0 -byte benchmarkLandscape::stop#1 -byte benchmarkLandscape::stop#2 -byte benchmarkLandscape::stop#3 -byte benchmarkLandscape::uc -byte benchmarkLandscape::uc#0 -byte benchmarkLandscape::uc#1 -byte benchmarkLandscape::uc#2 -signed byte benchmarkLandscape::x -signed byte benchmarkLandscape::x#0 -signed byte benchmarkLandscape::x#1 -signed byte benchmarkLandscape::x#2 -signed byte benchmarkLandscape::x#3 -signed byte benchmarkLandscape::x#4 -signed byte benchmarkLandscape::x#5 -signed byte benchmarkLandscape::x#6 -signed byte benchmarkLandscape::x#7 -signed byte benchmarkLandscape::x#8 -signed byte benchmarkLandscape::x#9 -byte benchmarkLandscape::z -byte benchmarkLandscape::z#0 -byte benchmarkLandscape::z#1 -byte benchmarkLandscape::z#10 -byte benchmarkLandscape::z#11 -byte benchmarkLandscape::z#12 -byte benchmarkLandscape::z#13 -byte benchmarkLandscape::z#2 -byte benchmarkLandscape::z#3 -byte benchmarkLandscape::z#4 -byte benchmarkLandscape::z#5 -byte benchmarkLandscape::z#6 -byte benchmarkLandscape::z#7 -byte benchmarkLandscape::z#8 -byte benchmarkLandscape::z#9 -constant byte* landscapeBase[] = kickasm {{ .fill 14, 0 +bool benchmarkLandscape::$0 +bool benchmarkLandscape::$1 +bool benchmarkLandscape::$3 +bool benchmarkLandscape::$4 +number benchmarkLandscape::$5 +char benchmarkLandscape::$6 +number benchmarkLandscape::$7 +bool benchmarkLandscape::$8 +signed char benchmarkLandscape::c +signed char benchmarkLandscape::c#0 +signed char benchmarkLandscape::c#1 +signed char benchmarkLandscape::c#2 +signed char benchmarkLandscape::c#3 +signed char benchmarkLandscape::c#4 +signed char benchmarkLandscape::c#5 +signed char benchmarkLandscape::c#6 +__constant char benchmarkLandscape::colHeight[$e] = { fill( $e, 0) } +char benchmarkLandscape::i +char benchmarkLandscape::i#0 +char benchmarkLandscape::i#1 +char benchmarkLandscape::i#2 +char *benchmarkLandscape::screenAddress +char *benchmarkLandscape::screenAddress#0 +char *benchmarkLandscape::screenAddress#1 +char *benchmarkLandscape::screenAddress#2 +char *benchmarkLandscape::screenAddress#3 +char *benchmarkLandscape::screenAddress#4 +char *benchmarkLandscape::screenAddress#5 +char *benchmarkLandscape::screenAddress#6 +char benchmarkLandscape::start +char benchmarkLandscape::start#0 +char benchmarkLandscape::start#1 +char benchmarkLandscape::start#2 +char benchmarkLandscape::start#3 +char benchmarkLandscape::start#4 +char benchmarkLandscape::start#5 +char benchmarkLandscape::start#6 +char benchmarkLandscape::stop +char benchmarkLandscape::stop#0 +char benchmarkLandscape::stop#1 +char benchmarkLandscape::stop#2 +char benchmarkLandscape::stop#3 +char benchmarkLandscape::uc +char benchmarkLandscape::uc#0 +char benchmarkLandscape::uc#1 +char benchmarkLandscape::uc#2 +signed char benchmarkLandscape::x +signed char benchmarkLandscape::x#0 +signed char benchmarkLandscape::x#1 +signed char benchmarkLandscape::x#2 +signed char benchmarkLandscape::x#3 +signed char benchmarkLandscape::x#4 +signed char benchmarkLandscape::x#5 +signed char benchmarkLandscape::x#6 +signed char benchmarkLandscape::x#7 +signed char benchmarkLandscape::x#8 +signed char benchmarkLandscape::x#9 +char benchmarkLandscape::z +char benchmarkLandscape::z#0 +char benchmarkLandscape::z#1 +char benchmarkLandscape::z#10 +char benchmarkLandscape::z#11 +char benchmarkLandscape::z#12 +char benchmarkLandscape::z#13 +char benchmarkLandscape::z#2 +char benchmarkLandscape::z#3 +char benchmarkLandscape::z#4 +char benchmarkLandscape::z#5 +char benchmarkLandscape::z#6 +char benchmarkLandscape::z#7 +char benchmarkLandscape::z#8 +char benchmarkLandscape::z#9 +__constant char landscapeBase[] = kickasm {{ .fill 14, 0 }} -constant byte* const lms = (byte*)$a000 +__constant char * const lms = (char *)$a000 void main() Adding number conversion cast (snumber) 1 in benchmarkCountdownFor::a = 1 @@ -253,7 +253,7 @@ Successful SSA optimization PassNAddNumberTypeConversions Inlining cast benchmarkCountdownFor::a = (snumber)1 Inlining cast benchmarkCountdownFor::b = (snumber)9 Successful SSA optimization Pass2InlineCast -Simplifying constant pointer cast (byte*) 40960 +Simplifying constant pointer cast (char *) 40960 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 9 @@ -264,18 +264,18 @@ Simplifying constant integer cast $f Simplifying constant integer cast 4 Simplifying constant integer cast $28 Successful SSA optimization PassNCastSimplification -Finalized signed number type (signed byte) 1 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 9 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized signed number type (signed byte) 0 -Finalized unsigned number type (byte) $f -Finalized unsigned number type (byte) 4 -Finalized unsigned number type (byte) $28 +Finalized signed number type (signed char) 1 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 9 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized signed number type (signed char) 0 +Finalized unsigned number type (char) $f +Finalized unsigned number type (char) 4 +Finalized unsigned number type (char) $28 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in benchmarkLandscape::$5 = *benchmarkLandscape::screenAddress#2 & $f -Inferred type updated to byte in benchmarkLandscape::$7 = benchmarkLandscape::$5 | benchmarkLandscape::$6 +Inferred type updated to char in benchmarkLandscape::$5 = *benchmarkLandscape::screenAddress#2 & $f +Inferred type updated to char in benchmarkLandscape::$7 = benchmarkLandscape::$5 | benchmarkLandscape::$6 Alias benchmarkLandscape::z#4 = benchmarkLandscape::z#6 Alias benchmarkLandscape::x#2 = benchmarkLandscape::x#3 Alias benchmarkLandscape::z#10 = benchmarkLandscape::z#3 benchmarkLandscape::z#2 @@ -333,10 +333,10 @@ Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $e Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) $a +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) $a Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining Noop Cast [24] benchmarkLandscape::uc#0 = (byte)benchmarkLandscape::c#2 keeping benchmarkLandscape::c#2 +Inlining Noop Cast [24] benchmarkLandscape::uc#0 = (char)benchmarkLandscape::c#2 keeping benchmarkLandscape::c#2 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings benchmarkLandscape::z#0 Inlining constant with var siblings benchmarkLandscape::i#0 @@ -349,8 +349,8 @@ Constant inlined benchmarkLandscape::i#0 = 0 Constant inlined benchmarkLandscape::z#0 = 0 Constant inlined benchmarkLandscape::x#0 = $27 Successful SSA optimization Pass2ConstantInlining -Finalized unsigned number type (byte) $e -Finalized unsigned number type (byte) $e +Finalized unsigned number type (char) $e +Finalized unsigned number type (char) $e Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting benchmarkLandscape::@13(between benchmarkLandscape::@6 and benchmarkLandscape::@1) Added new block during phi lifting benchmarkLandscape::@14(between benchmarkLandscape::@2 and benchmarkLandscape::@2) @@ -397,11 +397,11 @@ FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() - [1] call benchmarkCountdownFor + [1] call benchmarkCountdownFor to:main::@1 main::@1: scope:[main] from main [2] phi() - [3] call benchmarkLandscape + [3] call benchmarkLandscape to:main::@return main::@return: scope:[main] from main::@1 [4] return @@ -469,7 +469,7 @@ benchmarkLandscape::@8: scope:[benchmarkLandscape] from benchmarkLandscape::@6 [28] benchmarkLandscape::x#1 = -- benchmarkLandscape::x#2 to:benchmarkLandscape::@3 benchmarkLandscape::@7: scope:[benchmarkLandscape] from benchmarkLandscape::@6 - [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(byte)benchmarkLandscape::c#2] + [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(char)benchmarkLandscape::c#2] to:benchmarkLandscape::@9 benchmarkLandscape::@9: scope:[benchmarkLandscape] from benchmarkLandscape::@10 benchmarkLandscape::@7 [30] benchmarkLandscape::screenAddress#2 = phi( benchmarkLandscape::@10/benchmarkLandscape::screenAddress#1, benchmarkLandscape::@7/benchmarkLandscape::screenAddress#4 ) @@ -482,7 +482,7 @@ benchmarkLandscape::@11: scope:[benchmarkLandscape] from benchmarkLandscape::@9 to:benchmarkLandscape::@6 benchmarkLandscape::@10: scope:[benchmarkLandscape] from benchmarkLandscape::@9 [34] benchmarkLandscape::$5 = *benchmarkLandscape::screenAddress#2 & $f - [35] benchmarkLandscape::$6 = (byte)benchmarkLandscape::c#2 << 4 + [35] benchmarkLandscape::$6 = (char)benchmarkLandscape::c#2 << 4 [36] benchmarkLandscape::$7 = benchmarkLandscape::$5 | benchmarkLandscape::$6 [37] *benchmarkLandscape::screenAddress#2 = benchmarkLandscape::$7 [38] benchmarkLandscape::screenAddress#1 = benchmarkLandscape::screenAddress#2 + $28 @@ -492,37 +492,37 @@ benchmarkLandscape::@10: scope:[benchmarkLandscape] from benchmarkLandscape::@9 VARIABLE REGISTER WEIGHTS void benchmarkCountdownFor() -signed byte benchmarkCountdownFor::a loadstore !zp[-1]:65 54.16666666666666 -signed byte benchmarkCountdownFor::b loadstore !zp[-1]:75 1038.3333333333335 +__loadstore signed char benchmarkCountdownFor::a // !zp[-1]:65 54.16666666666666 +__loadstore signed char benchmarkCountdownFor::b // !zp[-1]:75 1038.3333333333335 void benchmarkLandscape() -byte~ benchmarkLandscape::$5 100001.0 -byte~ benchmarkLandscape::$6 200002.0 -byte~ benchmarkLandscape::$7 200002.0 -signed byte benchmarkLandscape::c -signed byte benchmarkLandscape::c#1 10001.0 -signed byte benchmarkLandscape::c#2 2727.5454545454545 -byte benchmarkLandscape::i -byte benchmarkLandscape::i#1 1501.5 -byte benchmarkLandscape::i#2 2002.0 -byte* benchmarkLandscape::screenAddress -byte* benchmarkLandscape::screenAddress#0 2002.0 -byte* benchmarkLandscape::screenAddress#1 100001.0 -byte* benchmarkLandscape::screenAddress#2 52500.75 -byte* benchmarkLandscape::screenAddress#4 7001.0 -byte benchmarkLandscape::start -byte benchmarkLandscape::start#1 200002.0 -byte benchmarkLandscape::start#3 44286.28571428572 -byte benchmarkLandscape::start#5 6667.333333333333 -byte benchmarkLandscape::start#7 20002.0 -byte benchmarkLandscape::stop -byte benchmarkLandscape::stop#0 12000.300000000001 -byte benchmarkLandscape::uc -signed byte benchmarkLandscape::x -signed byte benchmarkLandscape::x#1 2002.0 -signed byte benchmarkLandscape::x#2 250.25 -byte benchmarkLandscape::z -byte benchmarkLandscape::z#1 151.5 -byte benchmarkLandscape::z#8 9.181818181818182 +char benchmarkLandscape::$5 // 100001.0 +char benchmarkLandscape::$6 // 200002.0 +char benchmarkLandscape::$7 // 200002.0 +signed char benchmarkLandscape::c +signed char benchmarkLandscape::c#1 // 10001.0 +signed char benchmarkLandscape::c#2 // 2727.5454545454545 +char benchmarkLandscape::i +char benchmarkLandscape::i#1 // 1501.5 +char benchmarkLandscape::i#2 // 2002.0 +char *benchmarkLandscape::screenAddress +char *benchmarkLandscape::screenAddress#0 // 2002.0 +char *benchmarkLandscape::screenAddress#1 // 100001.0 +char *benchmarkLandscape::screenAddress#2 // 52500.75 +char *benchmarkLandscape::screenAddress#4 // 7001.0 +char benchmarkLandscape::start +char benchmarkLandscape::start#1 // 200002.0 +char benchmarkLandscape::start#3 // 44286.28571428572 +char benchmarkLandscape::start#5 // 6667.333333333333 +char benchmarkLandscape::start#7 // 20002.0 +char benchmarkLandscape::stop +char benchmarkLandscape::stop#0 // 12000.300000000001 +char benchmarkLandscape::uc +signed char benchmarkLandscape::x +signed char benchmarkLandscape::x#1 // 2002.0 +signed char benchmarkLandscape::x#2 // 250.25 +char benchmarkLandscape::z +char benchmarkLandscape::z#1 // 151.5 +char benchmarkLandscape::z#8 // 9.181818181818182 void main() Initial phi equivalence classes @@ -582,7 +582,7 @@ Removing always clobbered register reg byte a as potential for zp[1]:135 [ bench Removing always clobbered register reg byte y as potential for zp[1]:135 [ benchmarkLandscape::stop#0 ] Removing always clobbered register reg byte a as potential for zp[1]:134 [ benchmarkLandscape::start#3 benchmarkLandscape::start#1 benchmarkLandscape::start#5 benchmarkLandscape::start#7 ] Removing always clobbered register reg byte y as potential for zp[1]:134 [ benchmarkLandscape::start#3 benchmarkLandscape::start#1 benchmarkLandscape::start#5 benchmarkLandscape::start#7 ] -Statement [35] benchmarkLandscape::$6 = (byte)benchmarkLandscape::c#2 << 4 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] { } ) always clobbers reg byte a +Statement [35] benchmarkLandscape::$6 = (char)benchmarkLandscape::c#2 << 4 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:136 [ benchmarkLandscape::$5 ] Statement [37] *benchmarkLandscape::screenAddress#2 = benchmarkLandscape::$7 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 ] { } ) always clobbers reg byte y Statement [38] benchmarkLandscape::screenAddress#1 = benchmarkLandscape::screenAddress#2 + $28 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::screenAddress#1 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::screenAddress#1 ] { } ) always clobbers reg byte a @@ -595,7 +595,7 @@ Statement [11] if(benchmarkCountdownFor::b>=0) goto benchmarkCountdownFor::@4 [ Statement [17] benchmarkLandscape::colHeight[benchmarkLandscape::i#2] = landscapeBase[benchmarkLandscape::i#2] [ benchmarkLandscape::z#8 benchmarkLandscape::i#2 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::i#2 ] { } ) always clobbers reg byte a Statement [25] benchmarkLandscape::screenAddress#0 = lms + benchmarkLandscape::x#2 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::screenAddress#0 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::screenAddress#0 ] { } ) always clobbers reg byte a Statement [34] benchmarkLandscape::$5 = *benchmarkLandscape::screenAddress#2 & $f [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 ] { } ) always clobbers reg byte a reg byte y -Statement [35] benchmarkLandscape::$6 = (byte)benchmarkLandscape::c#2 << 4 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] { } ) always clobbers reg byte a +Statement [35] benchmarkLandscape::$6 = (char)benchmarkLandscape::c#2 << 4 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::$5 benchmarkLandscape::$6 ] { } ) always clobbers reg byte a Statement [37] *benchmarkLandscape::screenAddress#2 = benchmarkLandscape::$7 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::screenAddress#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 ] { } ) always clobbers reg byte y Statement [38] benchmarkLandscape::screenAddress#1 = benchmarkLandscape::screenAddress#2 + $28 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::screenAddress#1 ] ( benchmarkLandscape:3 [ benchmarkLandscape::z#8 benchmarkLandscape::x#2 benchmarkLandscape::c#2 benchmarkLandscape::stop#0 benchmarkLandscape::start#3 benchmarkLandscape::screenAddress#1 ] { } ) always clobbers reg byte a Potential registers zp[1]:128 [ benchmarkLandscape::z#8 benchmarkLandscape::z#1 ] : zp[1]:128 , reg byte x , @@ -662,14 +662,14 @@ ASSEMBLER BEFORE OPTIMIZATION .segment Code // main main: { - // [1] call benchmarkCountdownFor + // [1] call benchmarkCountdownFor jsr benchmarkCountdownFor // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: - // [3] call benchmarkLandscape + // [3] call benchmarkLandscape // [14] phi from main::@1 to benchmarkLandscape [phi:main::@1->benchmarkLandscape] benchmarkLandscape_from___b1: jsr benchmarkLandscape @@ -833,7 +833,7 @@ benchmarkLandscape: { jmp __b3 // benchmarkLandscape::@7 __b7: - // [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(byte)benchmarkLandscape::c#2] -- vbuz1=pbuc1_derefidx_vbuz2 + // [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(char)benchmarkLandscape::c#2] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z c lda colHeight,y sta.z stop @@ -868,7 +868,7 @@ benchmarkLandscape: { ldy #0 and (screenAddress),y sta.z __5 - // [35] benchmarkLandscape::$6 = (byte)benchmarkLandscape::c#2 << 4 -- vbuaa=vbuz1_rol_4 + // [35] benchmarkLandscape::$6 = (char)benchmarkLandscape::c#2 << 4 -- vbuaa=vbuz1_rol_4 lda.z c asl asl @@ -949,41 +949,41 @@ Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE void benchmarkCountdownFor() -signed byte benchmarkCountdownFor::a loadstore !zp[-1]:65 zp[1]:65 54.16666666666666 -signed byte benchmarkCountdownFor::b loadstore !zp[-1]:75 zp[1]:75 1038.3333333333335 +__loadstore signed char benchmarkCountdownFor::a // !zp[-1]:65 zp[1]:65 54.16666666666666 +__loadstore signed char benchmarkCountdownFor::b // !zp[-1]:75 zp[1]:75 1038.3333333333335 void benchmarkLandscape() -byte~ benchmarkLandscape::$5 zp[1]:134 100001.0 -byte~ benchmarkLandscape::$6 reg byte a 200002.0 -byte~ benchmarkLandscape::$7 reg byte a 200002.0 -signed byte benchmarkLandscape::c -signed byte benchmarkLandscape::c#1 c zp[1]:130 10001.0 -signed byte benchmarkLandscape::c#2 c zp[1]:130 2727.5454545454545 -constant byte* benchmarkLandscape::colHeight[$e] = { fill( $e, 0) } -byte benchmarkLandscape::i -byte benchmarkLandscape::i#1 reg byte x 1501.5 -byte benchmarkLandscape::i#2 reg byte x 2002.0 -byte* benchmarkLandscape::screenAddress -byte* benchmarkLandscape::screenAddress#0 screenAddress zp[2]:131 2002.0 -byte* benchmarkLandscape::screenAddress#1 screenAddress zp[2]:131 100001.0 -byte* benchmarkLandscape::screenAddress#2 screenAddress zp[2]:131 52500.75 -byte* benchmarkLandscape::screenAddress#4 screenAddress zp[2]:131 7001.0 -byte benchmarkLandscape::start -byte benchmarkLandscape::start#1 reg byte x 200002.0 -byte benchmarkLandscape::start#3 reg byte x 44286.28571428572 -byte benchmarkLandscape::start#5 reg byte x 6667.333333333333 -byte benchmarkLandscape::start#7 reg byte x 20002.0 -byte benchmarkLandscape::stop -byte benchmarkLandscape::stop#0 stop zp[1]:133 12000.300000000001 -byte benchmarkLandscape::uc -signed byte benchmarkLandscape::x -signed byte benchmarkLandscape::x#1 x zp[1]:129 2002.0 -signed byte benchmarkLandscape::x#2 x zp[1]:129 250.25 -byte benchmarkLandscape::z -byte benchmarkLandscape::z#1 z zp[1]:128 151.5 -byte benchmarkLandscape::z#8 z zp[1]:128 9.181818181818182 -constant byte* landscapeBase[] = kickasm {{ .fill 14, 0 +char benchmarkLandscape::$5 // zp[1]:134 100001.0 +char benchmarkLandscape::$6 // reg byte a 200002.0 +char benchmarkLandscape::$7 // reg byte a 200002.0 +signed char benchmarkLandscape::c +signed char benchmarkLandscape::c#1 // c zp[1]:130 10001.0 +signed char benchmarkLandscape::c#2 // c zp[1]:130 2727.5454545454545 +__constant char benchmarkLandscape::colHeight[$e] = { fill( $e, 0) } +char benchmarkLandscape::i +char benchmarkLandscape::i#1 // reg byte x 1501.5 +char benchmarkLandscape::i#2 // reg byte x 2002.0 +char *benchmarkLandscape::screenAddress +char *benchmarkLandscape::screenAddress#0 // screenAddress zp[2]:131 2002.0 +char *benchmarkLandscape::screenAddress#1 // screenAddress zp[2]:131 100001.0 +char *benchmarkLandscape::screenAddress#2 // screenAddress zp[2]:131 52500.75 +char *benchmarkLandscape::screenAddress#4 // screenAddress zp[2]:131 7001.0 +char benchmarkLandscape::start +char benchmarkLandscape::start#1 // reg byte x 200002.0 +char benchmarkLandscape::start#3 // reg byte x 44286.28571428572 +char benchmarkLandscape::start#5 // reg byte x 6667.333333333333 +char benchmarkLandscape::start#7 // reg byte x 20002.0 +char benchmarkLandscape::stop +char benchmarkLandscape::stop#0 // stop zp[1]:133 12000.300000000001 +char benchmarkLandscape::uc +signed char benchmarkLandscape::x +signed char benchmarkLandscape::x#1 // x zp[1]:129 2002.0 +signed char benchmarkLandscape::x#2 // x zp[1]:129 250.25 +char benchmarkLandscape::z +char benchmarkLandscape::z#1 // z zp[1]:128 151.5 +char benchmarkLandscape::z#8 // z zp[1]:128 9.181818181818182 +__constant char landscapeBase[] = kickasm {{ .fill 14, 0 }} -constant byte* const lms = (byte*) 40960 +__constant char * const lms = (char *) 40960 void main() zp[1]:128 [ benchmarkLandscape::z#8 benchmarkLandscape::z#1 ] @@ -1021,12 +1021,12 @@ Score: 649273 // main main: { // benchmarkCountdownFor() - // [1] call benchmarkCountdownFor + // [1] call benchmarkCountdownFor jsr benchmarkCountdownFor // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // benchmarkLandscape() - // [3] call benchmarkLandscape + // [3] call benchmarkLandscape // [14] phi from main::@1 to benchmarkLandscape [phi:main::@1->benchmarkLandscape] jsr benchmarkLandscape // main::@return @@ -1180,7 +1180,7 @@ benchmarkLandscape: { // benchmarkLandscape::@7 __b7: // char stop = colHeight[uc] - // [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(byte)benchmarkLandscape::c#2] -- vbuz1=pbuc1_derefidx_vbuz2 + // [29] benchmarkLandscape::stop#0 = benchmarkLandscape::colHeight[(char)benchmarkLandscape::c#2] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z c lda colHeight,y sta.z stop @@ -1213,7 +1213,7 @@ benchmarkLandscape: { and (screenAddress),y sta.z __5 // uc << 4 - // [35] benchmarkLandscape::$6 = (byte)benchmarkLandscape::c#2 << 4 -- vbuaa=vbuz1_rol_4 + // [35] benchmarkLandscape::$6 = (char)benchmarkLandscape::c#2 << 4 -- vbuaa=vbuz1_rol_4 lda.z c asl asl diff --git a/src/test/ref/zp-reserve-coalesce-problem.sym b/src/test/ref/zp-reserve-coalesce-problem.sym index b36bd223c..393182cf4 100644 --- a/src/test/ref/zp-reserve-coalesce-problem.sym +++ b/src/test/ref/zp-reserve-coalesce-problem.sym @@ -1,39 +1,39 @@ void benchmarkCountdownFor() -signed byte benchmarkCountdownFor::a loadstore !zp[-1]:65 zp[1]:65 54.16666666666666 -signed byte benchmarkCountdownFor::b loadstore !zp[-1]:75 zp[1]:75 1038.3333333333335 +__loadstore signed char benchmarkCountdownFor::a // !zp[-1]:65 zp[1]:65 54.16666666666666 +__loadstore signed char benchmarkCountdownFor::b // !zp[-1]:75 zp[1]:75 1038.3333333333335 void benchmarkLandscape() -byte~ benchmarkLandscape::$5 zp[1]:134 100001.0 -byte~ benchmarkLandscape::$6 reg byte a 200002.0 -byte~ benchmarkLandscape::$7 reg byte a 200002.0 -signed byte benchmarkLandscape::c -signed byte benchmarkLandscape::c#1 c zp[1]:130 10001.0 -signed byte benchmarkLandscape::c#2 c zp[1]:130 2727.5454545454545 -constant byte* benchmarkLandscape::colHeight[$e] = { fill( $e, 0) } -byte benchmarkLandscape::i -byte benchmarkLandscape::i#1 reg byte x 1501.5 -byte benchmarkLandscape::i#2 reg byte x 2002.0 -byte* benchmarkLandscape::screenAddress -byte* benchmarkLandscape::screenAddress#0 screenAddress zp[2]:131 2002.0 -byte* benchmarkLandscape::screenAddress#1 screenAddress zp[2]:131 100001.0 -byte* benchmarkLandscape::screenAddress#2 screenAddress zp[2]:131 52500.75 -byte* benchmarkLandscape::screenAddress#4 screenAddress zp[2]:131 7001.0 -byte benchmarkLandscape::start -byte benchmarkLandscape::start#1 reg byte x 200002.0 -byte benchmarkLandscape::start#3 reg byte x 44286.28571428572 -byte benchmarkLandscape::start#5 reg byte x 6667.333333333333 -byte benchmarkLandscape::start#7 reg byte x 20002.0 -byte benchmarkLandscape::stop -byte benchmarkLandscape::stop#0 stop zp[1]:133 12000.300000000001 -byte benchmarkLandscape::uc -signed byte benchmarkLandscape::x -signed byte benchmarkLandscape::x#1 x zp[1]:129 2002.0 -signed byte benchmarkLandscape::x#2 x zp[1]:129 250.25 -byte benchmarkLandscape::z -byte benchmarkLandscape::z#1 z zp[1]:128 151.5 -byte benchmarkLandscape::z#8 z zp[1]:128 9.181818181818182 -constant byte* landscapeBase[] = kickasm {{ .fill 14, 0 +char benchmarkLandscape::$5 // zp[1]:134 100001.0 +char benchmarkLandscape::$6 // reg byte a 200002.0 +char benchmarkLandscape::$7 // reg byte a 200002.0 +signed char benchmarkLandscape::c +signed char benchmarkLandscape::c#1 // c zp[1]:130 10001.0 +signed char benchmarkLandscape::c#2 // c zp[1]:130 2727.5454545454545 +__constant char benchmarkLandscape::colHeight[$e] = { fill( $e, 0) } +char benchmarkLandscape::i +char benchmarkLandscape::i#1 // reg byte x 1501.5 +char benchmarkLandscape::i#2 // reg byte x 2002.0 +char *benchmarkLandscape::screenAddress +char *benchmarkLandscape::screenAddress#0 // screenAddress zp[2]:131 2002.0 +char *benchmarkLandscape::screenAddress#1 // screenAddress zp[2]:131 100001.0 +char *benchmarkLandscape::screenAddress#2 // screenAddress zp[2]:131 52500.75 +char *benchmarkLandscape::screenAddress#4 // screenAddress zp[2]:131 7001.0 +char benchmarkLandscape::start +char benchmarkLandscape::start#1 // reg byte x 200002.0 +char benchmarkLandscape::start#3 // reg byte x 44286.28571428572 +char benchmarkLandscape::start#5 // reg byte x 6667.333333333333 +char benchmarkLandscape::start#7 // reg byte x 20002.0 +char benchmarkLandscape::stop +char benchmarkLandscape::stop#0 // stop zp[1]:133 12000.300000000001 +char benchmarkLandscape::uc +signed char benchmarkLandscape::x +signed char benchmarkLandscape::x#1 // x zp[1]:129 2002.0 +signed char benchmarkLandscape::x#2 // x zp[1]:129 250.25 +char benchmarkLandscape::z +char benchmarkLandscape::z#1 // z zp[1]:128 151.5 +char benchmarkLandscape::z#8 // z zp[1]:128 9.181818181818182 +__constant char landscapeBase[] = kickasm {{ .fill 14, 0 }} -constant byte* const lms = (byte*) 40960 +__constant char * const lms = (char *) 40960 void main() zp[1]:128 [ benchmarkLandscape::z#8 benchmarkLandscape::z#1 ] diff --git a/src/test/ref/zpparammin.asm b/src/test/ref/zpparammin.asm index 2462c52b5..fa102c0e1 100644 --- a/src/test/ref/zpparammin.asm +++ b/src/test/ref/zpparammin.asm @@ -45,7 +45,7 @@ main: { // } rts } -// sum(byte register(Y) a, byte register(A) b, byte register(X) c) +// __register(A) char sum(__register(Y) char a, __register(A) char b, __register(X) char c) sum: { // a+b sty.z $ff @@ -58,7 +58,7 @@ sum: { // } rts } -// sum2(byte register(Y) a, byte register(A) b, byte register(X) c) +// __register(A) char sum2(__register(Y) char a, __register(A) char b, __register(X) char c) sum2: { // a+b sty.z $ff diff --git a/src/test/ref/zpparammin.cfg b/src/test/ref/zpparammin.cfg index 9b1955b2d..56efaf726 100644 --- a/src/test/ref/zpparammin.cfg +++ b/src/test/ref/zpparammin.cfg @@ -8,7 +8,7 @@ main::@1: scope:[main] from main main::@3 [2] sum::b#0 = main::i#2 + 1 [3] sum::c#0 = main::i#2 + 2 [4] sum::a#0 = main::i#2 - [5] call sum + [5] call sum [6] sum::return#0 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -17,7 +17,7 @@ main::@2: scope:[main] from main::@1 [9] sum2::b#0 = main::i#2 + 1 [10] sum2::c#0 = main::i#2 + 2 [11] sum2::a#0 = main::i#2 - [12] call sum2 + [12] call sum2 [13] sum2::return#0 = sum2::return#1 to:main::@3 main::@3: scope:[main] from main::@2 @@ -30,7 +30,7 @@ main::@return: scope:[main] from main::@3 [18] return to:@return -byte sum(byte sum::a , byte sum::b , byte sum::c) +char sum(char a , char b , char c) sum: scope:[sum] from main::@1 [19] sum::$0 = sum::a#0 + sum::b#0 [20] sum::return#1 = sum::$0 + sum::c#0 @@ -39,7 +39,7 @@ sum::@return: scope:[sum] from sum [21] return to:@return -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) +char sum2(char a , char b , char c) sum2: scope:[sum2] from main::@2 [22] sum2::$0 = sum2::a#0 + sum2::b#0 [23] sum2::return#1 = sum2::$0 + sum2::c#0 diff --git a/src/test/ref/zpparammin.log b/src/test/ref/zpparammin.log index 5a57e5064..db862667e 100644 --- a/src/test/ref/zpparammin.log +++ b/src/test/ref/zpparammin.log @@ -1,4 +1,4 @@ -Inlined call call __init +Inlined call call __init CONTROL FLOW GRAPH SSA @@ -13,7 +13,7 @@ main::@1: scope:[main] from main main::@3 sum::a#0 = main::i#2 sum::b#0 = main::$0 sum::c#0 = main::$1 - call sum + call sum sum::return#0 = sum::return#2 to:main::@2 main::@2: scope:[main] from main::@1 @@ -26,7 +26,7 @@ main::@2: scope:[main] from main::@1 sum2::a#0 = main::i#3 sum2::b#0 = main::$3 sum2::c#0 = main::$4 - call sum2 + call sum2 sum2::return#0 = sum2::return#2 to:main::@3 main::@3: scope:[main] from main::@2 @@ -42,7 +42,7 @@ main::@return: scope:[main] from main::@3 return to:@return -byte sum(byte sum::a , byte sum::b , byte sum::c) +char sum(char a , char b , char c) sum: scope:[sum] from main::@1 sum::c#1 = phi( main::@1/sum::c#0 ) sum::b#1 = phi( main::@1/sum::b#0 ) @@ -57,7 +57,7 @@ sum::@return: scope:[sum] from sum return to:@return -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) +char sum2(char a , char b , char c) sum2: scope:[sum2] from main::@2 sum2::c#1 = phi( main::@2/sum2::c#0 ) sum2::b#1 = phi( main::@2/sum2::b#0 ) @@ -78,7 +78,7 @@ __start: scope:[__start] from __start::__init1: scope:[__start] from __start to:__start::@1 __start::@1: scope:[__start] from __start::__init1 - call main + call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 to:__start::@return @@ -87,59 +87,59 @@ __start::@return: scope:[__start] from __start::@2 to:@return SYMBOL TABLE SSA -constant byte* SCREEN = (byte*)$400 -constant byte* SCREEN2 = (byte*)$400+$28 +__constant char *SCREEN = (char *)$400 +__constant char *SCREEN2 = (char *)$400+$28 void __start() void main() -number~ main::$0 -number~ main::$1 -byte~ main::$2 -number~ main::$3 -number~ main::$4 -byte~ main::$5 -bool~ main::$6 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte sum(byte sum::a , byte sum::b , byte sum::c) -byte~ sum::$0 -byte~ sum::$1 -byte sum::a -byte sum::a#0 -byte sum::a#1 -byte sum::b -byte sum::b#0 -byte sum::b#1 -byte sum::c -byte sum::c#0 -byte sum::c#1 -byte sum::return -byte sum::return#0 -byte sum::return#1 -byte sum::return#2 -byte sum::return#3 -byte sum::return#4 -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) -byte~ sum2::$0 -byte~ sum2::$1 -byte sum2::a -byte sum2::a#0 -byte sum2::a#1 -byte sum2::b -byte sum2::b#0 -byte sum2::b#1 -byte sum2::c -byte sum2::c#0 -byte sum2::c#1 -byte sum2::return -byte sum2::return#0 -byte sum2::return#1 -byte sum2::return#2 -byte sum2::return#3 -byte sum2::return#4 +number main::$0 +number main::$1 +char main::$2 +number main::$3 +number main::$4 +char main::$5 +bool main::$6 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char sum(char a , char b , char c) +char sum::$0 +char sum::$1 +char sum::a +char sum::a#0 +char sum::a#1 +char sum::b +char sum::b#0 +char sum::b#1 +char sum::c +char sum::c#0 +char sum::c#1 +char sum::return +char sum::return#0 +char sum::return#1 +char sum::return#2 +char sum::return#3 +char sum::return#4 +char sum2(char a , char b , char c) +char sum2::$0 +char sum2::$1 +char sum2::a +char sum2::a#0 +char sum2::a#1 +char sum2::b +char sum2::b#0 +char sum2::b#1 +char sum2::c +char sum2::c#0 +char sum2::c#1 +char sum2::return +char sum2::return#0 +char sum2::return#1 +char sum2::return#2 +char sum2::return#3 +char sum2::return#4 Adding number conversion cast (unumber) $28 in Adding number conversion cast (unumber) 1 in main::$0 = main::i#2 + 1 @@ -151,24 +151,24 @@ Adding number conversion cast (unumber) main::$3 in main::$3 = main::i#3 + (unum Adding number conversion cast (unumber) 2 in main::$4 = main::i#3 + 2 Adding number conversion cast (unumber) main::$4 in main::$4 = main::i#3 + (unumber)2 Successful SSA optimization PassNAddNumberTypeConversions -Simplifying constant pointer cast (byte*) 1024 -Simplifying constant pointer cast (byte*) 1024 +Simplifying constant pointer cast (char *) 1024 +Simplifying constant pointer cast (char *) 1024 Simplifying constant integer cast $28 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $28 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 -Finalized unsigned number type (byte) 1 -Finalized unsigned number type (byte) 2 +Finalized unsigned number type (char) $28 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 +Finalized unsigned number type (char) 1 +Finalized unsigned number type (char) 2 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inferred type updated to byte in main::$0 = main::i#2 + 1 -Inferred type updated to byte in main::$1 = main::i#2 + 2 -Inferred type updated to byte in main::$3 = main::i#3 + 1 -Inferred type updated to byte in main::$4 = main::i#3 + 2 +Inferred type updated to char in main::$0 = main::i#2 + 1 +Inferred type updated to char in main::$1 = main::i#2 + 2 +Inferred type updated to char in main::$3 = main::i#3 + 1 +Inferred type updated to char in main::$4 = main::i#3 + 2 Alias sum::b#0 = main::$0 Alias sum::c#0 = main::$1 Alias sum::return#0 = sum::return#3 @@ -203,7 +203,7 @@ Adding number conversion cast (unumber) $b in [16] if(main::i#1!=$b) goto main:: Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::i#0 Constant inlined main::i#0 = 0 @@ -230,7 +230,7 @@ main::@1: scope:[main] from main main::@3 [2] sum::b#0 = main::i#2 + 1 [3] sum::c#0 = main::i#2 + 2 [4] sum::a#0 = main::i#2 - [5] call sum + [5] call sum [6] sum::return#0 = sum::return#1 to:main::@2 main::@2: scope:[main] from main::@1 @@ -239,7 +239,7 @@ main::@2: scope:[main] from main::@1 [9] sum2::b#0 = main::i#2 + 1 [10] sum2::c#0 = main::i#2 + 2 [11] sum2::a#0 = main::i#2 - [12] call sum2 + [12] call sum2 [13] sum2::return#0 = sum2::return#1 to:main::@3 main::@3: scope:[main] from main::@2 @@ -252,7 +252,7 @@ main::@return: scope:[main] from main::@3 [18] return to:@return -byte sum(byte sum::a , byte sum::b , byte sum::c) +char sum(char a , char b , char c) sum: scope:[sum] from main::@1 [19] sum::$0 = sum::a#0 + sum::b#0 [20] sum::return#1 = sum::$0 + sum::c#0 @@ -261,7 +261,7 @@ sum::@return: scope:[sum] from sum [21] return to:@return -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) +char sum2(char a , char b , char c) sum2: scope:[sum2] from main::@2 [22] sum2::$0 = sum2::a#0 + sum2::b#0 [23] sum2::return#1 = sum2::$0 + sum2::c#0 @@ -273,33 +273,33 @@ sum2::@return: scope:[sum2] from sum2 VARIABLE REGISTER WEIGHTS void main() -byte~ main::$2 22.0 -byte~ main::$5 22.0 -byte main::i -byte main::i#1 16.5 -byte main::i#2 7.333333333333333 -byte sum(byte sum::a , byte sum::b , byte sum::c) -byte~ sum::$0 202.0 -byte sum::a -byte sum::a#0 112.0 -byte sum::b -byte sum::b#0 37.33333333333333 -byte sum::c -byte sum::c#0 37.33333333333333 -byte sum::return -byte sum::return#0 22.0 -byte sum::return#1 37.33333333333333 -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) -byte~ sum2::$0 202.0 -byte sum2::a -byte sum2::a#0 112.0 -byte sum2::b -byte sum2::b#0 37.33333333333333 -byte sum2::c -byte sum2::c#0 37.33333333333333 -byte sum2::return -byte sum2::return#0 22.0 -byte sum2::return#1 37.33333333333333 +char main::$2 // 22.0 +char main::$5 // 22.0 +char main::i +char main::i#1 // 16.5 +char main::i#2 // 7.333333333333333 +char sum(char a , char b , char c) +char sum::$0 // 202.0 +char sum::a +char sum::a#0 // 112.0 +char sum::b +char sum::b#0 // 37.33333333333333 +char sum::c +char sum::c#0 // 37.33333333333333 +char sum::return +char sum::return#0 // 22.0 +char sum::return#1 // 37.33333333333333 +char sum2(char a , char b , char c) +char sum2::$0 // 202.0 +char sum2::a +char sum2::a#0 // 112.0 +char sum2::b +char sum2::b#0 // 37.33333333333333 +char sum2::c +char sum2::c#0 // 37.33333333333333 +char sum2::return +char sum2::return#0 // 22.0 +char sum2::return#1 // 37.33333333333333 Initial phi equivalence classes [ main::i#2 main::i#1 ] @@ -439,7 +439,7 @@ main: { inx // [4] sum::a#0 = main::i#2 -- vbuyy=vbuz1 ldy.z i - // [5] call sum + // [5] call sum jsr sum // [6] sum::return#0 = sum::return#1 jmp __b2 @@ -459,7 +459,7 @@ main: { inx // [11] sum2::a#0 = main::i#2 -- vbuyy=vbuz1 ldy.z i - // [12] call sum2 + // [12] call sum2 jsr sum2 // [13] sum2::return#0 = sum2::return#1 jmp __b3 @@ -482,7 +482,7 @@ main: { rts } // sum -// sum(byte register(Y) a, byte register(A) b, byte register(X) c) +// __register(A) char sum(__register(Y) char a, __register(A) char b, __register(X) char c) sum: { // [19] sum::$0 = sum::a#0 + sum::b#0 -- vbuaa=vbuyy_plus_vbuaa sty.z $ff @@ -499,7 +499,7 @@ sum: { rts } // sum2 -// sum2(byte register(Y) a, byte register(A) b, byte register(X) c) +// __register(A) char sum2(__register(Y) char a, __register(A) char b, __register(X) char c) sum2: { // [22] sum2::$0 = sum2::a#0 + sum2::b#0 -- vbuaa=vbuyy_plus_vbuaa sty.z $ff @@ -542,36 +542,36 @@ Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination FINAL SYMBOL TABLE -constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1024+$28 +__constant char *SCREEN = (char *) 1024 +__constant char *SCREEN2 = (char *) 1024+$28 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$5 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 7.333333333333333 -byte sum(byte sum::a , byte sum::b , byte sum::c) -byte~ sum::$0 reg byte a 202.0 -byte sum::a -byte sum::a#0 reg byte y 112.0 -byte sum::b -byte sum::b#0 reg byte a 37.33333333333333 -byte sum::c -byte sum::c#0 reg byte x 37.33333333333333 -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 37.33333333333333 -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) -byte~ sum2::$0 reg byte a 202.0 -byte sum2::a -byte sum2::a#0 reg byte y 112.0 -byte sum2::b -byte sum2::b#0 reg byte a 37.33333333333333 -byte sum2::c -byte sum2::c#0 reg byte x 37.33333333333333 -byte sum2::return -byte sum2::return#0 reg byte a 22.0 -byte sum2::return#1 reg byte a 37.33333333333333 +char main::$2 // reg byte a 22.0 +char main::$5 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 7.333333333333333 +char sum(char a , char b , char c) +char sum::$0 // reg byte a 202.0 +char sum::a +char sum::a#0 // reg byte y 112.0 +char sum::b +char sum::b#0 // reg byte a 37.33333333333333 +char sum::c +char sum::c#0 // reg byte x 37.33333333333333 +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 37.33333333333333 +char sum2(char a , char b , char c) +char sum2::$0 // reg byte a 202.0 +char sum2::a +char sum2::a#0 // reg byte y 112.0 +char sum2::b +char sum2::b#0 // reg byte a 37.33333333333333 +char sum2::c +char sum2::c#0 // reg byte x 37.33333333333333 +char sum2::return +char sum2::return#0 // reg byte a 22.0 +char sum2::return#1 // reg byte a 37.33333333333333 zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ sum::b#0 ] @@ -629,7 +629,7 @@ main: { inx // [4] sum::a#0 = main::i#2 -- vbuyy=vbuz1 ldy.z i - // [5] call sum + // [5] call sum jsr sum // [6] sum::return#0 = sum::return#1 // main::@2 @@ -648,7 +648,7 @@ main: { inx inx // [11] sum2::a#0 = main::i#2 -- vbuyy=vbuz1 - // [12] call sum2 + // [12] call sum2 jsr sum2 // [13] sum2::return#0 = sum2::return#1 // main::@3 @@ -670,7 +670,7 @@ main: { rts } // sum -// sum(byte register(Y) a, byte register(A) b, byte register(X) c) +// __register(A) char sum(__register(Y) char a, __register(A) char b, __register(X) char c) sum: { // a+b // [19] sum::$0 = sum::a#0 + sum::b#0 -- vbuaa=vbuyy_plus_vbuaa @@ -688,7 +688,7 @@ sum: { rts } // sum2 -// sum2(byte register(Y) a, byte register(A) b, byte register(X) c) +// __register(A) char sum2(__register(Y) char a, __register(A) char b, __register(X) char c) sum2: { // a+b // [22] sum2::$0 = sum2::a#0 + sum2::b#0 -- vbuaa=vbuyy_plus_vbuaa diff --git a/src/test/ref/zpparammin.sym b/src/test/ref/zpparammin.sym index 1a59407ba..5053bade5 100644 --- a/src/test/ref/zpparammin.sym +++ b/src/test/ref/zpparammin.sym @@ -1,33 +1,33 @@ -constant byte* SCREEN = (byte*) 1024 -constant byte* SCREEN2 = (byte*) 1024+$28 +__constant char *SCREEN = (char *) 1024 +__constant char *SCREEN2 = (char *) 1024+$28 void main() -byte~ main::$2 reg byte a 22.0 -byte~ main::$5 reg byte a 22.0 -byte main::i -byte main::i#1 i zp[1]:2 16.5 -byte main::i#2 i zp[1]:2 7.333333333333333 -byte sum(byte sum::a , byte sum::b , byte sum::c) -byte~ sum::$0 reg byte a 202.0 -byte sum::a -byte sum::a#0 reg byte y 112.0 -byte sum::b -byte sum::b#0 reg byte a 37.33333333333333 -byte sum::c -byte sum::c#0 reg byte x 37.33333333333333 -byte sum::return -byte sum::return#0 reg byte a 22.0 -byte sum::return#1 reg byte a 37.33333333333333 -byte sum2(byte sum2::a , byte sum2::b , byte sum2::c) -byte~ sum2::$0 reg byte a 202.0 -byte sum2::a -byte sum2::a#0 reg byte y 112.0 -byte sum2::b -byte sum2::b#0 reg byte a 37.33333333333333 -byte sum2::c -byte sum2::c#0 reg byte x 37.33333333333333 -byte sum2::return -byte sum2::return#0 reg byte a 22.0 -byte sum2::return#1 reg byte a 37.33333333333333 +char main::$2 // reg byte a 22.0 +char main::$5 // reg byte a 22.0 +char main::i +char main::i#1 // i zp[1]:2 16.5 +char main::i#2 // i zp[1]:2 7.333333333333333 +char sum(char a , char b , char c) +char sum::$0 // reg byte a 202.0 +char sum::a +char sum::a#0 // reg byte y 112.0 +char sum::b +char sum::b#0 // reg byte a 37.33333333333333 +char sum::c +char sum::c#0 // reg byte x 37.33333333333333 +char sum::return +char sum::return#0 // reg byte a 22.0 +char sum::return#1 // reg byte a 37.33333333333333 +char sum2(char a , char b , char c) +char sum2::$0 // reg byte a 202.0 +char sum2::a +char sum2::a#0 // reg byte y 112.0 +char sum2::b +char sum2::b#0 // reg byte a 37.33333333333333 +char sum2::c +char sum2::c#0 // reg byte x 37.33333333333333 +char sum2::return +char sum2::return#0 // reg byte a 22.0 +char sum2::return#1 // reg byte a 37.33333333333333 zp[1]:2 [ main::i#2 main::i#1 ] reg byte a [ sum::b#0 ] diff --git a/src/test/ref/zpptr.cfg b/src/test/ref/zpptr.cfg index 30e72e227..3958b8018 100644 --- a/src/test/ref/zpptr.cfg +++ b/src/test/ref/zpptr.cfg @@ -12,7 +12,7 @@ main::@2: scope:[main] from main::@1 main::@4 main::@3: scope:[main] from main::@2 main::@3 [3] main::k#2 = phi( main::@2/0, main::@3/main::k#1 ) [4] main::zpptr2#0 = main::zpptr + main::i#4 - [5] main::w#0 = (word)main::j#6 + [5] main::w#0 = (unsigned int)main::j#6 [6] main::zpptr2#1 = main::zpptr2#0 + main::w#0 [7] *main::zpptr2#1 = main::k#2 [8] main::k#1 = ++ main::k#2 diff --git a/src/test/ref/zpptr.log b/src/test/ref/zpptr.log index 784ec8fce..6ec2a1aec 100644 --- a/src/test/ref/zpptr.log +++ b/src/test/ref/zpptr.log @@ -20,7 +20,7 @@ main::@3: scope:[main] from main::@2 main::@3 main::j#2 = phi( main::@2/main::j#4, main::@3/main::j#2 ) main::i#2 = phi( main::@2/main::i#4, main::@3/main::i#2 ) main::zpptr2#0 = main::zpptr + main::i#2 - main::w#0 = (word)main::j#2 + main::w#0 = (unsigned int)main::j#2 main::$1 = main::zpptr2#0 + main::w#0 main::zpptr2#1 = main::$1 *main::zpptr2#1 = main::k#2 @@ -47,7 +47,7 @@ main::@return: scope:[main] from main::@5 void __start() __start: scope:[__start] from - call main + call main to:__start::@1 __start::@1: scope:[__start] from __start to:__start::@return @@ -58,36 +58,36 @@ __start::@return: scope:[__start] from __start::@1 SYMBOL TABLE SSA void __start() void main() -byte*~ main::$1 -bool~ main::$2 -bool~ main::$3 -bool~ main::$4 -byte main::i -byte main::i#0 -byte main::i#1 -byte main::i#2 -byte main::i#3 -byte main::i#4 -byte main::j -byte main::j#0 -byte main::j#1 -byte main::j#2 -byte main::j#3 -byte main::j#4 -byte main::j#5 -byte main::j#6 -byte main::k -byte main::k#0 -byte main::k#1 -byte main::k#2 -word main::w -word main::w#0 -constant byte* main::zpptr = (byte*)$1000 -byte* main::zpptr2 -byte* main::zpptr2#0 -byte* main::zpptr2#1 +char *main::$1 +bool main::$2 +bool main::$3 +bool main::$4 +char main::i +char main::i#0 +char main::i#1 +char main::i#2 +char main::i#3 +char main::i#4 +char main::j +char main::j#0 +char main::j#1 +char main::j#2 +char main::j#3 +char main::j#4 +char main::j#5 +char main::j#6 +char main::k +char main::k#0 +char main::k#1 +char main::k#2 +unsigned int main::w +unsigned int main::w#0 +__constant char *main::zpptr = (char *)$1000 +char *main::zpptr2 +char *main::zpptr2#0 +char *main::zpptr2#1 -Simplifying constant pointer cast (byte*) 4096 +Simplifying constant pointer cast (char *) 4096 Successful SSA optimization PassNCastSimplification Alias main::zpptr2#1 = main::$1 Alias main::i#2 = main::i#3 @@ -125,9 +125,9 @@ Simplifying constant integer cast $b Simplifying constant integer cast $b Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b -Finalized unsigned number type (byte) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b +Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inlining constant with var siblings main::j#0 Inlining constant with var siblings main::i#0 @@ -167,7 +167,7 @@ main::@2: scope:[main] from main::@1 main::@4 main::@3: scope:[main] from main::@2 main::@3 [3] main::k#2 = phi( main::@2/0, main::@3/main::k#1 ) [4] main::zpptr2#0 = main::zpptr + main::i#4 - [5] main::w#0 = (word)main::j#6 + [5] main::w#0 = (unsigned int)main::j#6 [6] main::zpptr2#1 = main::zpptr2#0 + main::w#0 [7] *main::zpptr2#1 = main::k#2 [8] main::k#1 = ++ main::k#2 @@ -188,20 +188,20 @@ main::@return: scope:[main] from main::@5 VARIABLE REGISTER WEIGHTS void main() -byte main::i -byte main::i#1 151.5 -byte main::i#4 150.375 -byte main::j -byte main::j#1 16.5 -byte main::j#6 2.0 -byte main::k -byte main::k#1 1501.5 -byte main::k#2 600.5999999999999 -word main::w -word main::w#0 2002.0 -byte* main::zpptr2 -byte* main::zpptr2#0 1001.0 -byte* main::zpptr2#1 2002.0 +char main::i +char main::i#1 // 151.5 +char main::i#4 // 150.375 +char main::j +char main::j#1 // 16.5 +char main::j#6 // 2.0 +char main::k +char main::k#1 // 1501.5 +char main::k#2 // 600.5999999999999 +unsigned int main::w +unsigned int main::w#0 // 2002.0 +char *main::zpptr2 +char *main::zpptr2#0 // 1001.0 +char *main::zpptr2#1 // 2002.0 Initial phi equivalence classes [ main::j#6 main::j#1 ] @@ -228,14 +228,14 @@ Statement [4] main::zpptr2#0 = main::zpptr + main::i#4 [ main::j#6 main::i#4 mai Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::j#6 main::j#1 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i#4 main::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ main::k#2 main::k#1 ] -Statement [5] main::w#0 = (word)main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] { } ) always clobbers reg byte a +Statement [5] main::w#0 = (unsigned int)main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] { } ) always clobbers reg byte a Statement [6] main::zpptr2#1 = main::zpptr2#0 + main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] { } ) always clobbers reg byte a Statement [7] *main::zpptr2#1 = main::k#2 [ main::j#6 main::i#4 main::k#2 ] ( [ main::j#6 main::i#4 main::k#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ main::j#6 main::j#1 ] Removing always clobbered register reg byte y as potential for zp[1]:3 [ main::i#4 main::i#1 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ main::k#2 main::k#1 ] Statement [4] main::zpptr2#0 = main::zpptr + main::i#4 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] { } ) always clobbers reg byte a -Statement [5] main::w#0 = (word)main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] { } ) always clobbers reg byte a +Statement [5] main::w#0 = (unsigned int)main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] { } ) always clobbers reg byte a Statement [6] main::zpptr2#1 = main::zpptr2#0 + main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ( [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] { } ) always clobbers reg byte a Statement [7] *main::zpptr2#1 = main::k#2 [ main::j#6 main::i#4 main::k#2 ] ( [ main::j#6 main::i#4 main::k#2 ] { } ) always clobbers reg byte a reg byte y Potential registers zp[1]:2 [ main::j#6 main::j#1 ] : zp[1]:2 , reg byte x , @@ -322,7 +322,7 @@ main: { lda #>zpptr adc #0 sta.z zpptr2+1 - // [5] main::w#0 = (word)main::j#6 -- vwuz1=_word_vbuz2 + // [5] main::w#0 = (unsigned int)main::j#6 -- vwuz1=_word_vbuz2 lda.z j sta.z w lda #0 @@ -401,21 +401,21 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination FINAL SYMBOL TABLE void main() -byte main::i -byte main::i#1 i zp[1]:3 151.5 -byte main::i#4 i zp[1]:3 150.375 -byte main::j -byte main::j#1 j zp[1]:2 16.5 -byte main::j#6 j zp[1]:2 2.0 -byte main::k -byte main::k#1 reg byte x 1501.5 -byte main::k#2 reg byte x 600.5999999999999 -word main::w -word main::w#0 w zp[2]:6 2002.0 -constant byte* main::zpptr = (byte*) 4096 -byte* main::zpptr2 -byte* main::zpptr2#0 zpptr2 zp[2]:4 1001.0 -byte* main::zpptr2#1 zpptr2 zp[2]:4 2002.0 +char main::i +char main::i#1 // i zp[1]:3 151.5 +char main::i#4 // i zp[1]:3 150.375 +char main::j +char main::j#1 // j zp[1]:2 16.5 +char main::j#6 // j zp[1]:2 2.0 +char main::k +char main::k#1 // reg byte x 1501.5 +char main::k#2 // reg byte x 600.5999999999999 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:6 2002.0 +__constant char *main::zpptr = (char *) 4096 +char *main::zpptr2 +char *main::zpptr2#0 // zpptr2 zp[2]:4 1001.0 +char *main::zpptr2#1 // zpptr2 zp[2]:4 2002.0 zp[1]:2 [ main::j#6 main::j#1 ] zp[1]:3 [ main::i#4 main::i#1 ] @@ -479,7 +479,7 @@ main: { adc #0 sta.z zpptr2+1 // word w = (word)j - // [5] main::w#0 = (word)main::j#6 -- vwuz1=_word_vbuz2 + // [5] main::w#0 = (unsigned int)main::j#6 -- vwuz1=_word_vbuz2 lda.z j sta.z w lda #0 diff --git a/src/test/ref/zpptr.sym b/src/test/ref/zpptr.sym index 2febcbc85..491ba30fd 100644 --- a/src/test/ref/zpptr.sym +++ b/src/test/ref/zpptr.sym @@ -1,19 +1,19 @@ void main() -byte main::i -byte main::i#1 i zp[1]:3 151.5 -byte main::i#4 i zp[1]:3 150.375 -byte main::j -byte main::j#1 j zp[1]:2 16.5 -byte main::j#6 j zp[1]:2 2.0 -byte main::k -byte main::k#1 reg byte x 1501.5 -byte main::k#2 reg byte x 600.5999999999999 -word main::w -word main::w#0 w zp[2]:6 2002.0 -constant byte* main::zpptr = (byte*) 4096 -byte* main::zpptr2 -byte* main::zpptr2#0 zpptr2 zp[2]:4 1001.0 -byte* main::zpptr2#1 zpptr2 zp[2]:4 2002.0 +char main::i +char main::i#1 // i zp[1]:3 151.5 +char main::i#4 // i zp[1]:3 150.375 +char main::j +char main::j#1 // j zp[1]:2 16.5 +char main::j#6 // j zp[1]:2 2.0 +char main::k +char main::k#1 // reg byte x 1501.5 +char main::k#2 // reg byte x 600.5999999999999 +unsigned int main::w +unsigned int main::w#0 // w zp[2]:6 2002.0 +__constant char *main::zpptr = (char *) 4096 +char *main::zpptr2 +char *main::zpptr2#0 // zpptr2 zp[2]:4 1001.0 +char *main::zpptr2#1 // zpptr2 zp[2]:4 2002.0 zp[1]:2 [ main::j#6 main::j#1 ] zp[1]:3 [ main::i#4 main::i#1 ]